ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggN2M2Yzc4Ni4uYzcxMWRmNiAxMDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTE3MDEsNyArMTcwMSw3IEBACiBJU1BBTl9SRVZCX2NvbmZpZzoJdW5jb25maWcKIAlAbWtkaXIgLXAgJChvYmopaW5jbHVkZQogCUBpZiBbICIkKGZpbmRzdHJpbmcgX1JFVkJfLCRAKSIgXSA7IHRoZW4gXAotCQllY2hvICIjZGVmaW5lIENGR19SRVZfQiIgPiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCQllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfUkVWX0IiID4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAlmaQogCUAkKE1LQ09ORklHKSAtYSBJU1BBTiBwcGMgbXBjODI2MCBpc3BhbgogCkBAIC0xNzI4LDggKzE3MjgsOCBAQAogCUBta2RpciAtcCAkKG9iailpbmNsdWRlCiAJQG1rZGlyIC1wICQob2JqKWJvYXJkL2ZyZWVzY2FsZS9tcGM4MjYwYWRzCiAJJChpZiAkKGZpbmRzdHJpbmcgUFEyRkFEUywkQCksIFwKLQlAZWNobyAiI2RlZmluZSBDT05GSUdfQURTVFlQRSBDRkdfUFEyRkFEUyIgPiAkKG9iailpbmNsdWRlL2NvbmZpZy5oLCBcCi0JQGVjaG8gIiNkZWZpbmUgQ09ORklHX0FEU1RZUEUgQ0ZHXyIkKHN1YnN0IE1QQywsJCh3b3JkIDEsJChzdWJzdCBfLCAsJEApKSkgPiAkKG9iailpbmNsdWRlL2NvbmZpZy5oKQorCUBlY2hvICIjZGVmaW5lIENPTkZJR19BRFNUWVBFIENPTkZJR19TWVNfUFEyRkFEUyIgPiAkKG9iailpbmNsdWRlL2NvbmZpZy5oLCBcCisJQGVjaG8gIiNkZWZpbmUgQ09ORklHX0FEU1RZUEUgQ09ORklHX1NZU18iJChzdWJzdCBNUEMsLCQod29yZCAxLCQoc3Vic3QgXywgLCRAKSkpID4gJChvYmopaW5jbHVkZS9jb25maWcuaCkKIAkkKGlmICQoZmluZHN0cmluZyBNSHosJEApLCBcCiAJQGVjaG8gIiNkZWZpbmUgQ09ORklHXzgyNjBfQ0xLSU4iICQoc3Vic3QgTUh6LCwkKHdvcmQgMiwkKHN1YnN0IF8sICwkQCkpKSIwMDAwMDAiID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmgsIFwKIAkkKGlmICQoZmluZHN0cmluZyBWUiwkQCksIFwKQEAgLTE5ODEsMTkgKzE5ODEsMTkgQEAKIAlNNTQ0NTFFVkJfc3RtaWNyb19jb25maWcpCUZMQVNIPVNUTUlDUk87OyBcCiAJZXNhYzsgXAogCWlmIFsgIiQke0ZMQVNIfSIgPSAiU1BBTlNJT04iIF0gOyB0aGVuIFwKLQkJZWNobyAiI2RlZmluZSBDRkdfU1BBTlNJT05fQk9PVCIJPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwkJZWNobyAiI2RlZmluZSBDT05GSUdfU1lTX1NQQU5TSU9OX0JPT1QiCT4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCiAJCWVjaG8gIlRFWFRfQkFTRSA9IDB4MDAwMDAwMDAiID4gJChvYmopYm9hcmQvZnJlZXNjYWxlL201NDQ1MWV2Yi9jb25maWcudG1wIDsgXAogCQljcCAkKG9iailib2FyZC9mcmVlc2NhbGUvbTU0NDUxZXZiL3UtYm9vdC5zcGEgJChvYmopYm9hcmQvZnJlZXNjYWxlL201NDQ1MWV2Yi91LWJvb3QubGRzIDsgXAogCQkkKFhFQ0hPKSAiLi4uIHdpdGggU1BBTlNJT04gYm9vdC4uLiIgOyBcCiAJZmk7IFwKIAlpZiBbICIkJHtGTEFTSH0iID0gIlNUTUlDUk8iIF0gOyB0aGVuIFwKIAkJZWNobyAiI2RlZmluZSBDT05GSUdfQ0ZfU0JGIgk+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAotCQllY2hvICIjZGVmaW5lIENGR19TVE1JQ1JPX0JPT1QiCT4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCisJCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19TVE1JQ1JPX0JPT1QiCT4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCiAJCWVjaG8gIlRFWFRfQkFTRSA9IDB4NDdFMDAwMDAiID4gJChvYmopYm9hcmQvZnJlZXNjYWxlL201NDQ1MWV2Yi9jb25maWcudG1wIDsgXAogCQljcCAkKG9iailib2FyZC9mcmVlc2NhbGUvbTU0NDUxZXZiL3UtYm9vdC5zdG0gJChvYmopYm9hcmQvZnJlZXNjYWxlL201NDQ1MWV2Yi91LWJvb3QubGRzIDsgXAogCQkkKFhFQ0hPKSAiLi4uIHdpdGggU1QgTWljcm8gYm9vdC4uLiIgOyBcCiAJZmk7IFwKLQllY2hvICIjZGVmaW5lIENGR19JTlBVVF9DTEtTUkMgMjQwMDAwMDAiID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOworCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19JTlBVVF9DTEtTUkMgMjQwMDAwMDAiID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOwogCUAkKE1LQ09ORklHKSAtYSBNNTQ0NTFFVkIgbTY4ayBtY2Y1NDQ1eCBtNTQ0NTFldmIgZnJlZXNjYWxlCiAKIE01NDQ1NUVWQl9jb25maWcgXApAQCAtMjAxNSwyNSArMjAxNSwyNSBAQAogCU01NDQ1NUVWQl9zdG0zM19jb25maWcpCQlGTEFTSD1TVE1JQ1JPOyBGUkVRPTMzMzMzMzMzOzsgXAogCWVzYWM7IFwKIAlpZiBbICIkJHtGTEFTSH0iID0gIklOVEVMIiBdIDsgdGhlbiBcCi0JCWVjaG8gIiNkZWZpbmUgQ0ZHX0lOVEVMX0JPT1QiID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCisJCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19JTlRFTF9CT09UIiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAogCQllY2hvICJURVhUX0JBU0UgPSAweDAwMDAwMDAwIiA+ICQob2JqKWJvYXJkL2ZyZWVzY2FsZS9tNTQ0NTVldmIvY29uZmlnLnRtcCA7IFwKIAkJY3AgJChvYmopYm9hcmQvZnJlZXNjYWxlL201NDQ1NWV2Yi91LWJvb3QuaW50ICQob2JqKWJvYXJkL2ZyZWVzY2FsZS9tNTQ0NTVldmIvdS1ib290LmxkcyA7IFwKIAkJJChYRUNITykgIi4uLiB3aXRoIElOVEVMIGJvb3QuLi4iIDsgXAogCWZpOyBcCiAJaWYgWyAiJCR7RkxBU0h9IiA9ICJBVE1FTCIgXSA7IHRoZW4gXAotCQllY2hvICIjZGVmaW5lIENGR19BVE1FTF9CT09UIgk+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCQllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfQVRNRUxfQk9PVCIJPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAkJZWNobyAiVEVYVF9CQVNFID0gMHgwNDAwMDAwMCIgPiAkKG9iailib2FyZC9mcmVlc2NhbGUvbTU0NDU1ZXZiL2NvbmZpZy50bXAgOyBcCiAJCWNwICQob2JqKWJvYXJkL2ZyZWVzY2FsZS9tNTQ0NTVldmIvdS1ib290LmF0bSAkKG9iailib2FyZC9mcmVlc2NhbGUvbTU0NDU1ZXZiL3UtYm9vdC5sZHMgOyBcCiAJCSQoWEVDSE8pICIuLi4gd2l0aCBBVE1FTCBib290Li4uIiA7IFwKIAlmaTsgXAogCWlmIFsgIiQke0ZMQVNIfSIgPSAiU1RNSUNSTyIgXSA7IHRoZW4gXAogCQllY2hvICIjZGVmaW5lIENPTkZJR19DRl9TQkYiCT4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCi0JCWVjaG8gIiNkZWZpbmUgQ0ZHX1NUTUlDUk9fQk9PVCIJPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwkJZWNobyAiI2RlZmluZSBDT05GSUdfU1lTX1NUTUlDUk9fQk9PVCIJPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAkJZWNobyAiVEVYVF9CQVNFID0gMHg0RkUwMDAwMCIgPiAkKG9iailib2FyZC9mcmVlc2NhbGUvbTU0NDU1ZXZiL2NvbmZpZy50bXAgOyBcCiAJCWNwICQob2JqKWJvYXJkL2ZyZWVzY2FsZS9tNTQ0NTVldmIvdS1ib290LnN0bSAkKG9iailib2FyZC9mcmVlc2NhbGUvbTU0NDU1ZXZiL3UtYm9vdC5sZHMgOyBcCiAJCSQoWEVDSE8pICIuLi4gd2l0aCBTVCBNaWNybyBib290Li4uIiA7IFwKIAlmaTsgXAotCWVjaG8gIiNkZWZpbmUgQ0ZHX0lOUFVUX0NMS1NSQyAkJHtGUkVRfSIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDICQke0ZSRVF9IiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAogCSQoWEVDSE8pICIuLi4gd2l0aCAkJHtGUkVRfUh6IGlucHV0IGNsb2NrIgogCUAkKE1LQ09ORklHKSAtYSBNNTQ0NTVFVkIgbTY4ayBtY2Y1NDQ1eCBtNTQ0NTVldmIgZnJlZXNjYWxlCiAKQEAgLTIwNTMsMjAgKzIwNTMsMjAgQEAKIAlNNTQ3NUZGRV9jb25maWcpCUJPT1Q9MjtDT0RFPTMyO1ZJRD0xO1VTQj0xO1JBTT02NDtSQU0xPTY0OzsgXAogCU01NDc1R0ZFX2NvbmZpZykJQk9PVD00O0NPREU9MDtWSUQ9MDtVU0I9MDtSQU09NjQ7UkFNMT0wOzsgXAogCWVzYWM7IFwKLQllY2hvICIjZGVmaW5lIENGR19CVVNDTEsJMTMzMzMzMzMzIiA+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCi0JZWNobyAiI2RlZmluZSBDRkdfQk9PVFNaCSQke0JPT1R9IiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAotCWVjaG8gIiNkZWZpbmUgQ0ZHX0RSQU1TWgkkJHtSQU19IiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19CVVNDTEsJMTMzMzMzMzMzIiA+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCisJZWNobyAiI2RlZmluZSBDT05GSUdfU1lTX0JPT1RTWgkkJHtCT09UfSIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfRFJBTVNaCSQke1JBTX0iID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCiAJaWYgWyAiJCR7UkFNMX0iICE9ICIwIiBdIDsgdGhlbiBcCi0JCWVjaG8gIiNkZWZpbmUgQ0ZHX0RSQU1TWjEJJCR7UkFNMX0iID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCisJCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19EUkFNU1oxCSQke1JBTTF9IiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAogCWZpOyBcCiAJaWYgWyAiJCR7Q09ERX0iICE9ICIwIiBdIDsgdGhlbiBcCi0JCWVjaG8gIiNkZWZpbmUgQ0ZHX05PUjFTWgkkJHtDT0RFfSIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwkJZWNobyAiI2RlZmluZSBDT05GSUdfU1lTX05PUjFTWgkkJHtDT0RFfSIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAlmaTsgXAogCWlmIFsgIiQke1ZJRH0iID09ICIxIiBdIDsgdGhlbiBcCi0JCWVjaG8gIiNkZWZpbmUgQ0ZHX1ZJREVPIiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCQllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfVklERU8iID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCiAJZmk7IFwKIAlpZiBbICIkJHtVU0J9IiA9PSAiMSIgXSA7IHRoZW4gXAotCQllY2hvICIjZGVmaW5lIENGR19VU0JDVFJMIiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCQllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfVVNCQ1RSTCIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAlmaQogCUAkKE1LQ09ORklHKSAtYSBNNTQ3NUVWQiBtNjhrIG1jZjU0N3hfOHggbTU0N3hldmIgZnJlZXNjYWxlCiAKQEAgLTIwODgsMjAgKzIwODgsMjAgQEAKIAlNNTQ4NUdGRV9jb25maWcpCUJPT1Q9NDtDT0RFPTA7VklEPTA7VVNCPTA7UkFNPTY0O1JBTTE9MDs7IFwKIAlNNTQ4NUhGRV9jb25maWcpCUJPT1Q9MjtDT0RFPTE2O1ZJRD0xO1VTQj0wO1JBTT02NDtSQU0xPTA7OyBcCiAJZXNhYzsgXAotCWVjaG8gIiNkZWZpbmUgQ0ZHX0JVU0NMSwkxMDAwMDAwMDAiID4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKLQllY2hvICIjZGVmaW5lIENGR19CT09UU1oJJCR7Qk9PVH0iID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCi0JZWNobyAiI2RlZmluZSBDRkdfRFJBTVNaCSQke1JBTX0iID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCisJZWNobyAiI2RlZmluZSBDT05GSUdfU1lTX0JVU0NMSwkxMDAwMDAwMDAiID4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfQk9PVFNaCSQke0JPT1R9IiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19EUkFNU1oJJCR7UkFNfSIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAlpZiBbICIkJHtSQU0xfSIgIT0gIjAiIF0gOyB0aGVuIFwKLQkJZWNobyAiI2RlZmluZSBDRkdfRFJBTVNaMQkkJHtSQU0xfSIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwkJZWNobyAiI2RlZmluZSBDT05GSUdfU1lTX0RSQU1TWjEJJCR7UkFNMX0iID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCiAJZmk7IFwKIAlpZiBbICIkJHtDT0RFfSIgIT0gIjAiIF0gOyB0aGVuIFwKLQkJZWNobyAiI2RlZmluZSBDRkdfTk9SMVNaCSQke0NPREV9IiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCQllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfTk9SMVNaCSQke0NPREV9IiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAogCWZpOyBcCiAJaWYgWyAiJCR7VklEfSIgPT0gIjEiIF0gOyB0aGVuIFwKLQkJZWNobyAiI2RlZmluZSBDRkdfVklERU8iID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCisJCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19WSURFTyIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAlmaTsgXAogCWlmIFsgIiQke1VTQn0iID09ICIxIiBdIDsgdGhlbiBcCi0JCWVjaG8gIiNkZWZpbmUgQ0ZHX1VTQkNUUkwiID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCisJCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19VU0JDVFJMIiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAogCWZpCiAJQCQoTUtDT05GSUcpIC1hIE01NDg1RVZCIG02OGsgbWNmNTQ3eF84eCBtNTQ4eGV2YiBmcmVlc2NhbGUKIApAQCAtMjEyMCwxMSArMjEyMCwxMSBAQAogCUBta2RpciAtcCAkKG9iailib2FyZC9mcmVlc2NhbGUvbXBjODMxM2VyZGIKIAlAaWYgWyAiJChmaW5kc3RyaW5nIF8zM18sJEApIiBdIDsgdGhlbiBcCiAJCSQoWEVDSE8pIC1uICIuLi4zM00gLi4uIiA7IFwKLQkJZWNobyAiI2RlZmluZSBDRkdfMzNNSFoiID4+JChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwkJZWNobyAiI2RlZmluZSBDT05GSUdfU1lTXzMzTUhaIiA+PiQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCiAJZmkgOyBcCiAJaWYgWyAiJChmaW5kc3RyaW5nIF82Nl8sJEApIiBdIDsgdGhlbiBcCiAJCSQoWEVDSE8pIC1uICIuLi42Nk0uLi4iIDsgXAotCQllY2hvICIjZGVmaW5lIENGR182Nk1IWiIgPj4kKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCQllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfNjZNSFoiID4+JChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAlmaSA7IFwKIAlpZiBbICIkKGZpbmRzdHJpbmcgX05BTkRfLCRAKSIgXSA7IHRoZW4gXAogCQkkKFhFQ0hPKSAtbiAiLi4uTkFORC4uLiIgOyBcCmRpZmYgLS1naXQgYS9SRUFETUUgYi9SRUFETUUKaW5kZXggYzYzYzcyMC4uZWJlZTIwZiAxMDA2NDQKLS0tIGEvUkVBRE1FCisrKyBiL1JFQURNRQpAQCAtMjEwLDcgKzIxMCw3IEBACiAqIENvbmZpZ3VyYXRpb24gX1NFVFRJTkdTXzoKICAgVGhlc2UgZGVwZW5kIG9uIHRoZSBoYXJkd2FyZSBldGMuIGFuZCBzaG91bGQgbm90IGJlIG1lZGRsZWQgd2l0aCBpZgogICB5b3UgZG9uJ3Qga25vdyB3aGF0IHlvdSdyZSBkb2luZzsgdGhleSBoYXZlIG5hbWVzIGJlZ2lubmluZyB3aXRoCi0gICJDRkdfIi4KKyAgIkNPTkZJR19TWVNfIi4KIAogTGF0ZXIgd2Ugd2lsbCBhZGQgYSBjb25maWd1cmF0aW9uIHRvb2wgLSBwcm9iYWJseSBzaW1pbGFyIHRvIG9yIGV2ZW4KIGlkZW50aWNhbCB0byB3aGF0J3MgdXNlZCBmb3IgdGhlIExpbnV4IGtlcm5lbC4gUmlnaHQgbm93LCB3ZSBoYXZlIHRvCkBAIC0yODQsMTAgKzI4NCwxMCBAQAogLSBCb2FyZCBmbGF2b3VyOiAoaWYgQ09ORklHX01QQzgyNjBBRFMgaXMgZGVmaW5lZCkKIAkJQ09ORklHX0FEU1RZUEUKIAkJUG9zc2libGUgdmFsdWVzIGFyZToKLQkJCUNGR184MjYwQURTCS0gb3JpZ2luYWwgTVBDODI2MEFEUwotCQkJQ0ZHXzgyNjZBRFMJLSBNUEM4MjY2QURTCi0JCQlDRkdfUFEyRkFEUwktIFBRMkZBRFMtWlUgb3IgUFEyRkFEUy1WUgotCQkJQ0ZHXzgyNzJBRFMJLSBNUEM4MjcyQURTCisJCQlDT05GSUdfU1lTXzgyNjBBRFMJLSBvcmlnaW5hbCBNUEM4MjYwQURTCisJCQlDT05GSUdfU1lTXzgyNjZBRFMJLSBNUEM4MjY2QURTCisJCQlDT05GSUdfU1lTX1BRMkZBRFMJLSBQUTJGQURTLVpVIG9yIFBRMkZBRFMtVlIKKwkJCUNPTkZJR19TWVNfODI3MkFEUwktIE1QQzgyNzJBRFMKIAogLSBNUEM4MjRYIEZhbWlseSBNZW1iZXIgKGlmIENPTkZJR19NUEM4MjRYIGlzIGRlZmluZWQpCiAJCURlZmluZSBleGFjdGx5IG9uZSBvZgpAQCAtMzAyLDI4ICszMDIsMjggQEAKIAkJCQkJICBvciBYVEFML0VYVEFMKQogCiAtIDg1OS84NjYvODg1IENQVSBvcHRpb25zOiAoaWYgdXNpbmcgYSBNUEM4NTkgb3IgTVBDODY2IG9yIE1QQzg4NSBDUFUpOgotCQlDRkdfOHh4X0NQVUNMS19NSU4KLQkJQ0ZHXzh4eF9DUFVDTEtfTUFYCisJCUNPTkZJR19TWVNfOHh4X0NQVUNMS19NSU4KKwkJQ09ORklHX1NZU184eHhfQ1BVQ0xLX01BWAogCQlDT05GSUdfOHh4X0NQVUNMS19ERUZBVUxUCiAJCQlTZWUgZG9jL1JFQURNRS5NUEM4NjYKIAotCQlDRkdfTUVBU1VSRV9DUFVDTEsKKwkJQ09ORklHX1NZU19NRUFTVVJFX0NQVUNMSwogCiAJCURlZmluZSB0aGlzIHRvIG1lYXN1cmUgdGhlIGFjdHVhbCBDUFUgY2xvY2sgaW5zdGVhZAogCQlvZiByZWx5aW5nIG9uIHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgY29uZmlndXJlZAogCQl2YWx1ZXMuIE1vc3RseSB1c2VmdWwgZm9yIGJvYXJkIGJyaW5ndXAgdG8gbWFrZSBzdXJlCiAJCXRoZSBQTEwgaXMgbG9ja2VkIGF0IHRoZSBpbnRlbmRlZCBmcmVxdWVuY3kuIE5vdGUKIAkJdGhhdCB0aGlzIHJlcXVpcmVzIGEgKHN0YWJsZSkgcmVmZXJlbmNlIGNsb2NrICgzMiBrSHoKLQkJUlRDIGNsb2NrIG9yIENGR184WFhfWElOKQorCQlSVEMgY2xvY2sgb3IgQ09ORklHX1NZU184WFhfWElOKQogCiAtIEludGVsIE1vbmFoYW5zIG9wdGlvbnM6Ci0JCUNGR19NT05BSEFOU19SVU5fTU9ERV9PU0NfUkFUSU8KKwkJQ09ORklHX1NZU19NT05BSEFOU19SVU5fTU9ERV9PU0NfUkFUSU8KIAogCQlEZWZpbmVzIHRoZSBNb25haGFucyBydW4gbW9kZSB0byBvc2NpbGxhdG9yCiAJCXJhdGlvLiBWYWxpZCB2YWx1ZXMgYXJlIDgsIDE2LCAyNCwgMzEuIFRoZSBjb3JlCiAJCWZyZXF1ZW5jeSBpcyB0aGlzIHZhbHVlIG11bHRpcGxpZWQgYnkgMTMgTUh6LgogCi0JCUNGR19NT05BSEFOU19UVVJCT19SVU5fTU9ERV9SQVRJTworCQlDT05GSUdfU1lTX01PTkFIQU5TX1RVUkJPX1JVTl9NT0RFX1JBVElPCiAKIAkJRGVmaW5lcyB0aGUgTW9uYWhhbnMgdHVyYm8gbW9kZSB0byBvc2NpbGxhdG9yCiAJCXJhdGlvLiBWYWxpZCB2YWx1ZXMgYXJlIDEgKGRlZmF1bHQgaWYgdW5kZWZpbmVkKSBhbmQKQEAgLTQzNiw3ICs0MzYsNyBAQAogCQkJQ09ORklHX0NPTlNPTEVfQ1VSU09SCWN1cnNvciBkcmF3aW5nIG9uL29mZgogCQkJCQkJKHJlcXVpcmVzIGJsaW5rIHRpbWVyCiAJCQkJCQljZi4gaTgwNDIuYykKLQkJCUNGR19DT05TT0xFX0JMSU5LX0NPVU5UIGJsaW5rIGludGVydmFsIChjZi4gaTgwNDIuYykKKwkJCUNPTkZJR19TWVNfQ09OU09MRV9CTElOS19DT1VOVCBibGluayBpbnRlcnZhbCAoY2YuIGk4MDQyLmMpCiAJCQlDT05GSUdfQ09OU09MRV9USU1FCWRpc3BsYXkgdGltZS9kYXRlIGluZm8gaW4KIAkJCQkJCXVwcGVyIHJpZ2h0IGNvcm5lcgogCQkJCQkJKHJlcXVpcmVzIENPTkZJR19DTURfREFURSkKQEAgLTQ2MSw4ICs0NjEsOCBAQAogLSBDb25zb2xlIEJhdWRyYXRlOgogCQlDT05GSUdfQkFVRFJBVEUgLSBpbiBicHMKIAkJU2VsZWN0IG9uZSBvZiB0aGUgYmF1ZHJhdGVzIGxpc3RlZCBpbgotCQlDRkdfQkFVRFJBVEVfVEFCTEUsIHNlZSBiZWxvdy4KLQkJQ0ZHX0JSR0NMS19QUkVTQ0FMRSwgYmF1ZHJhdGUgcHJlc2NhbGUKKwkJQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSwgc2VlIGJlbG93LgorCQlDT05GSUdfU1lTX0JSR0NMS19QUkVTQ0FMRSwgYmF1ZHJhdGUgcHJlc2NhbGUKIAogLSBJbnRlcnJ1cHQgZHJpdmVuIHNlcmlhbCBwb3J0IGlucHV0OgogCQlDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KQEAgLTU0Niw3ICs1NDYsNyBAQAogLSBLZ2RiIFNlcmlhbCBCYXVkcmF0ZTogKGlmIENPTkZJR19DTURfS0dEQiBpcyBkZWZpbmVkKQogCQlDT05GSUdfS0dEQl9CQVVEUkFURQogCQlTZWxlY3Qgb25lIG9mIHRoZSBiYXVkcmF0ZXMgbGlzdGVkIGluCi0JCUNGR19CQVVEUkFURV9UQUJMRSwgc2VlIGJlbG93LgorCQlDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFLCBzZWUgYmVsb3cuCiAKIC0gTW9uaXRvciBGdW5jdGlvbnM6CiAJCU1vbml0b3IgY29tbWFuZHMgY2FuIGJlIGluY2x1ZGVkIG9yIGV4Y2x1ZGVkCkBAIC02NzMsNyArNjczLDcgQEAKIAkJQ09ORklHX1JUQ19EUzE2NHgJLSB1c2UgRGFsbGFzIERTMTY0eCBSVEMKIAkJQ09ORklHX1JUQ19JU0wxMjA4CS0gdXNlIEludGVyc2lsIElTTDEyMDggUlRDCiAJCUNPTkZJR19SVENfTUFYNjkwMAktIHVzZSBNYXhpbSwgSW5jLiBNQVg2OTAwIFJUQwotCQlDRkdfUlRDX0RTMTMzN19OT09TQwktIFR1cm4gb2ZmIHRoZSBPU0Mgb3V0cHV0IGZvciBEUzEzMzcKKwkJQ09ORklHX1NZU19SVENfRFMxMzM3X05PT1NDCS0gVHVybiBvZmYgdGhlIE9TQyBvdXRwdXQgZm9yIERTMTMzNwogCiAJCU5vdGUgdGhhdCBpZiB0aGUgUlRDIHVzZXMgSTJDLCB0aGVuIHRoZSBJMkMgaW50ZXJmYWNlCiAJCW11c3QgYWxzbyBiZSBjb25maWd1cmVkLiBTZWUgSTJDIFN1cHBvcnQsIGJlbG93LgpAQCAtNzExLDExICs3MTEsMTEgQEAKIAkJQ09ORklHX0xCQTQ4CiAKIAkJU2V0IHRoaXMgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGRpc2tzIGxhcmdlciB0aGFuIDEzN0dCCi0JCUFsc28gbG9vayBhdCBDRkdfNjRCSVRfTEJBICxDRkdfNjRCSVRfVlNQUklOVEYgYW5kIENGR182NEJJVF9TVFJUT1VMCisJCUFsc28gbG9vayBhdCBDT05GSUdfU1lTXzY0QklUX0xCQSAsQ09ORklHX1NZU182NEJJVF9WU1BSSU5URiBhbmQgQ09ORklHX1NZU182NEJJVF9TVFJUT1VMCiAJCVdoaXRob3V0IHRoZXNlICwgTEJBNDggc3VwcG9ydCB1c2VzIDMyYml0IHZhcmlhYmxlcyBhbmQgd2lsbCAnb25seScKIAkJc3VwcG9ydCBkaXNrcyB1cCB0byAyLjFUQi4KIAotCQlDRkdfNjRCSVRfTEJBOgorCQlDT05GSUdfU1lTXzY0QklUX0xCQToKIAkJCVdoZW4gZW5hYmxlZCwgbWFrZXMgdGhlIElERSBzdWJzeXN0ZW0gdXNlIDY0Yml0IHNlY3RvciBhZGRyZXNzZXMuCiAJCQlEZWZhdWx0IGlzIDMyYml0LgogCkBAIC03MjQsMTIgKzcyNCwxMiBAQAogCQlTWU01M0M4WFggU0NTSSBjb250cm9sbGVyOyBkZWZpbmUKIAkJQ09ORklHX1NDU0lfU1lNNTNDOFhYIHRvIGVuYWJsZSBpdC4KIAotCQlDRkdfU0NTSV9NQVhfTFVOIFs4XSwgQ0ZHX1NDU0lfTUFYX1NDU0lfSUQgWzddIGFuZAotCQlDRkdfU0NTSV9NQVhfREVWSUNFIFtDRkdfU0NTSV9NQVhfU0NTSV9JRCAqCi0JCUNGR19TQ1NJX01BWF9MVU5dIGNhbiBiZSBhZGp1c3RlZCB0byBkZWZpbmUgdGhlCisJCUNPTkZJR19TWVNfU0NTSV9NQVhfTFVOIFs4XSwgQ09ORklHX1NZU19TQ1NJX01BWF9TQ1NJX0lEIFs3XSBhbmQKKwkJQ09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0UgW0NPTkZJR19TWVNfU0NTSV9NQVhfU0NTSV9JRCAqCisJCUNPTkZJR19TWVNfU0NTSV9NQVhfTFVOXSBjYW4gYmUgYWRqdXN0ZWQgdG8gZGVmaW5lIHRoZQogCQltYXhpbXVtIG51bWJlcnMgb2YgTFVOcywgU0NTSSBJRCdzIGFuZCB0YXJnZXQKIAkJZGV2aWNlcy4KLQkJQ0ZHX1NDU0lfU1lNNTNDOFhYX0NDRiB0byBmaXggY2xvY2sgdGltaW5nICg4ME1oeikKKwkJQ09ORklHX1NZU19TQ1NJX1NZTTUzQzhYWF9DQ0YgdG8gZml4IGNsb2NrIHRpbWluZyAoODBNaHopCiAKIC0gTkVUV09SSyBTdXBwb3J0IChQQ0kpOgogCQlDT05GSUdfRTEwMDAKQEAgLTgxMSw3ICs4MTEsNyBAQAogCQkJQ09ORklHX1VTQl9DT05GSUcKIAkJCQlmb3IgZGlmZmVyZW50aWFsIGRyaXZlcnM6IDB4MDAwMDEwMDAKIAkJCQlmb3Igc2luZ2xlIGVuZGVkIGRyaXZlcnM6IDB4MDAwMDUwMDAKLQkJCUNGR19VU0JfRVZFTlRfUE9MTAorCQkJQ09ORklHX1NZU19VU0JfRVZFTlRfUE9MTAogCQkJCU1heSBiZSBkZWZpbmVkIHRvIGFsbG93IGludGVycnVwdCBwb2xsaW5nCiAJCQkJaW5zdGVhZCBvZiB1c2luZyBhc3luY2hyb25vdXMgaW50ZXJydXB0cwogCkBAIC04MzgsMTggKzgzOCwxOCBAQAogCQkJRGVmaW5lIHRoaXMgdG8gaGF2ZSBhIHR0eSB0eXBlIG9mIGRldmljZSBhdmFpbGFibGUgdG8KIAkJCXRhbGsgdG8gdGhlIFVEQyBkZXZpY2UKIAotCQkJQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCisJCQlDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCiAJCQlEZWZpbmUgdGhpcyBpZiB5b3Ugd2FudCBzdGRpbiwgc3Rkb3V0ICYvb3Igc3RkZXJyIHRvCiAJCQliZSBzZXQgdG8gdXNidHR5LgogCiAJCQltcGM4eHg6Ci0JCQkJQ0ZHX1VTQl9FWFRDX0NMSyAweEJMQUgKKwkJCQlDT05GSUdfU1lTX1VTQl9FWFRDX0NMSyAweEJMQUgKIAkJCQlEZXJpdmUgVVNCIGNsb2NrIGZyb20gZXh0ZXJuYWwgY2xvY2sgImJsYWgiCi0JCQkJLSBDRkdfVVNCX0VYVENfQ0xLIDB4MDIKKwkJCQktIENPTkZJR19TWVNfVVNCX0VYVENfQ0xLIDB4MDIKIAotCQkJCUNGR19VU0JfQlJHX0NMSyAweEJMQUgKKwkJCQlDT05GSUdfU1lTX1VTQl9CUkdfQ0xLIDB4QkxBSAogCQkJCURlcml2ZSBVU0IgY2xvY2sgZnJvbSBicmdjbGsKLQkJCQktIENGR19VU0JfQlJHX0NMSyAweDA0CisJCQkJLSBDT05GSUdfU1lTX1VTQl9CUkdfQ0xLIDB4MDQKIAogCQlJZiB5b3UgaGF2ZSBhIFVTQi1JRiBhc3NpZ25lZCBWZW5kb3JJRCB0aGVuIHlvdSBtYXkgd2lzaCB0bwogCQlkZWZpbmUgeW91ciBvd24gdmVuZG9yIHNwZWNpZmljIHZhbHVlcyBlaXRoZXIgaW4gQm9hcmROYW1lLmgKQEAgLTg5MSwxNiArODkxLDE2IEBACiAJCUNPTkZJR19KRkZTMl9OQU5EX0RFVgogCQlEZWZpbmUgdGhlc2UgZm9yIGEgZGVmYXVsdCBwYXJ0aXRpb24gb24gYSBOQU5EIGRldmljZQogCi0JCUNGR19KRkZTMl9GSVJTVF9TRUNUT1IsCi0JCUNGR19KRkZTMl9GSVJTVF9CQU5LLCBDRkdfSkZGUzJfTlVNX0JBTktTCisJCUNPTkZJR19TWVNfSkZGUzJfRklSU1RfU0VDVE9SLAorCQlDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTkssIENPTkZJR19TWVNfSkZGUzJfTlVNX0JBTktTCiAJCURlZmluZSB0aGVzZSBmb3IgYSBkZWZhdWx0IHBhcnRpdGlvbiBvbiBhIE5PUiBkZXZpY2UKIAotCQlDRkdfSkZGU19DVVNUT01fUEFSVAorCQlDT05GSUdfU1lTX0pGRlNfQ1VTVE9NX1BBUlQKIAkJRGVmaW5lIHRoaXMgdG8gY3JlYXRlIGFuIG93biBwYXJ0aXRpb24uIFlvdSBoYXZlIHRvIHByb3ZpZGUgYQogCQlmdW5jdGlvbiBzdHJ1Y3QgcGFydF9pbmZvKiBqZmZzMl9wYXJ0X2luZm8oaW50IHBhcnRfbnVtKQogCiAJCUlmIHlvdSBkZWZpbmUgb25seSBvbmUgSkZGUzIgcGFydGl0aW9uIHlvdSBtYXkgYWxzbyB3YW50IHRvCi0JCSNkZWZpbmUgQ0ZHX0pGRlNfU0lOR0xFX1BBUlQJMQorCQkjZGVmaW5lIENPTkZJR19TWVNfSkZGU19TSU5HTEVfUEFSVAkxCiAJCXRvIGRpc2FibGUgdGhlIGNvbW1hbmQgY2hwYXJ0LiBUaGlzIGlzIHRoZSBkZWZhdWx0IHdoZW4geW91CiAJCWhhdmUgbm90IGRlZmluZWQgYSBjdXN0b20gcGFydGl0aW9uCiAKQEAgLTEwMTQsNyArMTAxNCw3IEBACiAJCQkzMjB4MjQwLiBCbGFjayAmIHdoaXRlLgogCiAJCU5vcm1hbGx5IGRpc3BsYXkgaXMgYmxhY2sgb24gd2hpdGUgYmFja2dyb3VuZDsgZGVmaW5lCi0JCUNGR19XSElURV9PTl9CTEFDSyB0byBnZXQgaXQgaW52ZXJ0ZWQuCisJCUNPTkZJR19TWVNfV0hJVEVfT05fQkxBQ0sgdG8gZ2V0IGl0IGludmVydGVkLgogCiAtIFNwbGFzaCBTY3JlZW4gU3VwcG9ydDogQ09ORklHX1NQTEFTSF9TQ1JFRU4KIApAQCAtMTA0MSw3ICsxMDQxLDcgQEAKIAkJY29tcHJlc3NlZCBpbWFnZXMgYXJlIHN1cHBvcnRlZC4KIAogCQlOT1RFOiB0aGUgYnppcDIgYWxnb3JpdGhtIHJlcXVpcmVzIGEgbG90IG9mIFJBTSwgc28KLQkJdGhlIG1hbGxvYyBhcmVhIChhcyBkZWZpbmVkIGJ5IENGR19NQUxMT0NfTEVOKSBzaG91bGQKKwkJdGhlIG1hbGxvYyBhcmVhIChhcyBkZWZpbmVkIGJ5IENPTkZJR19TWVNfTUFMTE9DX0xFTikgc2hvdWxkCiAJCWJlIGF0IGxlYXN0IDRNQi4KIAogCQlDT05GSUdfTFpNQQpAQCAtMTA2NSw3ICsxMDY1LDcgQEAKIAogCQlVc2UgdGhlIGx6bWFpbmZvIHRvb2wgdG8gZGV0ZXJtaW5hdGUgdGhlIGxjIGFuZCBscCB2YWx1ZXMgYW5kCiAJCXRoZW4gY2FsY3VsYXRlIHRoZSBhbW91bnQgb2YgbmVlZGVkIGR5bmFtaWMgbWVtb3J5IChlbnN1cmluZwotCQl0aGUgYXBwcm9wcmlhdGUgQ0ZHX01BTExPQ19MRU4gdmFsdWUpLgorCQl0aGUgYXBwcm9wcmlhdGUgQ09ORklHX1NZU19NQUxMT0NfTEVOIHZhbHVlKS4KIAogLSBNSUkvUEhZIHN1cHBvcnQ6CiAJCUNPTkZJR19QSFlfQUREUgpAQCAtMTI4MiwxNSArMTI4MiwxNSBAQAogCQlUaGVyZSBhcmUgc2V2ZXJhbCBvdGhlciBxdWFudGl0aWVzIHRoYXQgbXVzdCBhbHNvIGJlCiAJCWRlZmluZWQgd2hlbiB5b3UgZGVmaW5lIENPTkZJR19IQVJEX0kyQyBvciBDT05GSUdfU09GVF9JMkMuCiAKLQkJSW4gYm90aCBjYXNlcyB5b3Ugd2lsbCBuZWVkIHRvIGRlZmluZSBDRkdfSTJDX1NQRUVECisJCUluIGJvdGggY2FzZXMgeW91IHdpbGwgbmVlZCB0byBkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQKIAkJdG8gYmUgdGhlIGZyZXF1ZW5jeSAoaW4gSHopIGF0IHdoaWNoIHlvdSB3aXNoIHlvdXIgaTJjIGJ1cwotCQl0byBydW4gYW5kIENGR19JMkNfU0xBVkUgdG8gYmUgdGhlIGFkZHJlc3Mgb2YgdGhpcyBub2RlIChpZQorCQl0byBydW4gYW5kIENPTkZJR19TWVNfSTJDX1NMQVZFIHRvIGJlIHRoZSBhZGRyZXNzIG9mIHRoaXMgbm9kZSAoaWUKIAkJdGhlIENQVSdzIGkyYyBub2RlIGFkZHJlc3MpLgogCiAJCU5vdywgdGhlIHUtYm9vdCBpMmMgY29kZSBmb3IgdGhlIG1wYzh4eCAoY3B1L21wYzh4eC9pMmMuYykKIAkJc2V0cyB0aGUgQ1BVIHVwIGFzIGEgbWFzdGVyIG5vZGUgYW5kIHNvIGl0cyBhZGRyZXNzIHNob3VsZAogCQl0aGVyZWZvcmUgYmUgY2xlYXJlZCB0byAwIChTZWUsIGVnLCBNUEM4MjNlIFVzZXIncyBNYW51YWwKLQkJcC4xNi00NzMpLiBTbywgc2V0IENGR19JMkNfU0xBVkUgdG8gMC4KKwkJcC4xNi00NzMpLiBTbywgc2V0IENPTkZJR19TWVNfSTJDX1NMQVZFIHRvIDAuCiAKIAkJVGhhdCdzIGFsbCB0aGF0J3MgcmVxdWlyZWQgZm9yIENPTkZJR19IQVJEX0kyQy4KIApAQCAtMTM2MSw3ICsxMzYxLDcgQEAKIAogCQkjZGVmaW5lIEkyQ19ERUxBWSAgdWRlbGF5KDIpCiAKLQkJQ0ZHX0kyQ19JTklUX0JPQVJECisJCUNPTkZJR19TWVNfSTJDX0lOSVRfQk9BUkQKIAogCQlXaGVuIGEgYm9hcmQgaXMgcmVzZXQgZHVyaW5nIGFuIGkyYyBidXMgdHJhbnNmZXIKIAkJY2hpcHMgbWlnaHQgdGhpbmsgdGhhdCB0aGUgY3VycmVudCB0cmFuc2ZlciBpcyBzdGlsbApAQCAtMTM4NSw3ICsxMzg1LDcgQEAKIAkJYWN0aXZlLiAgVG8gc3dpdGNoIHRvIGEgZGlmZmVyZW50IGJ1cywgdXNlIHRoZSAnaTJjIGRldicgY29tbWFuZC4KIAkJTm90ZSB0aGF0IGJ1cyBudW1iZXJpbmcgaXMgemVyby1iYXNlZC4KIAotCQlDRkdfSTJDX05PUFJPQkVTCisJCUNPTkZJR19TWVNfSTJDX05PUFJPQkVTCiAKIAkJVGhpcyBvcHRpb24gc3BlY2lmaWVzIGEgbGlzdCBvZiBJMkMgZGV2aWNlcyB0aGF0IHdpbGwgYmUgc2tpcHBlZAogCQl3aGVuIHRoZSAnaTJjIHByb2JlJyBjb21tYW5kIGlzIGlzc3VlZCAob3IgJ2lwcm9iZScgdXNpbmcgdGhlIGxlZ2FjeQpAQCAtMTM5NCwzMSArMTM5NCwzMSBAQAogCiAJCWUuZy4KIAkJCSN1bmRlZglDT05GSUdfSTJDX01VTFRJX0JVUwotCQkJI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXsweDUwLDB4Njh9CisJCQkjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsweDUwLDB4Njh9CiAKIAkJd2lsbCBza2lwIGFkZHJlc3NlcyAweDUwIGFuZCAweDY4IG9uIGEgYm9hcmQgd2l0aCBvbmUgSTJDIGJ1cwogCiAJCQkjZGVmaW5lCUNPTkZJR19JMkNfTVVMVElfQlVTCi0JCQkjZGVmaW5lIENGR19JMkNfTVVMVElfTk9QUk9CRVMJe3swLDB4NTB9LHswLDB4Njh9LHsxLDB4NTR9fQorCQkJI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9OT1BST0JFUwl7ezAsMHg1MH0sezAsMHg2OH0sezEsMHg1NH19CiAKIAkJd2lsbCBza2lwIGFkZHJlc3NlcyAweDUwIGFuZCAweDY4IG9uIGJ1cyAwIGFuZCBhZGRyZXNzIDB4NTQgb24gYnVzIDEKIAotCQlDRkdfU1BEX0JVU19OVU0KKwkJQ09ORklHX1NZU19TUERfQlVTX05VTQogCiAJCUlmIGRlZmluZWQsIHRoZW4gdGhpcyBpbmRpY2F0ZXMgdGhlIEkyQyBidXMgbnVtYmVyIGZvciBERFIgU1BELgogCQlJZiBub3QgZGVmaW5lZCwgdGhlbiBVLUJvb3QgYXNzdW1lcyB0aGF0IFNQRCBpcyBvbiBJMkMgYnVzIDAuCiAKLQkJQ0ZHX1JUQ19CVVNfTlVNCisJCUNPTkZJR19TWVNfUlRDX0JVU19OVU0KIAogCQlJZiBkZWZpbmVkLCB0aGVuIHRoaXMgaW5kaWNhdGVzIHRoZSBJMkMgYnVzIG51bWJlciBmb3IgdGhlIFJUQy4KIAkJSWYgbm90IGRlZmluZWQsIHRoZW4gVS1Cb290IGFzc3VtZXMgdGhhdCBSVEMgaXMgb24gSTJDIGJ1cyAwLgogCi0JCUNGR19EVFRfQlVTX05VTQorCQlDT05GSUdfU1lTX0RUVF9CVVNfTlVNCiAKIAkJSWYgZGVmaW5lZCwgdGhlbiB0aGlzIGluZGljYXRlcyB0aGUgSTJDIGJ1cyBudW1iZXIgZm9yIHRoZSBEVFQuCiAJCUlmIG5vdCBkZWZpbmVkLCB0aGVuIFUtQm9vdCBhc3N1bWVzIHRoYXQgRFRUIGlzIG9uIEkyQyBidXMgMC4KIAotCQlDRkdfSTJDX0RUVF9BRERSOgorCQlDT05GSUdfU1lTX0kyQ19EVFRfQUREUjoKIAogCQlJZiBkZWZpbmVkLCBzcGVjaWZpZXMgdGhlIEkyQyBhZGRyZXNzIG9mIHRoZSBEVFQgZGV2aWNlLgogCQlJZiBub3QgZGVmaW5lZCwgdGhlbiBVLUJvb3QgdXNlcyBwcmVkZWZpbmVkIHZhbHVlIGZvcgpAQCAtMTUyOSwxMSArMTUyOSwxMSBAQAogCiAJCVNwZWNpZnkgdGhlIG51bWJlciBvZiBGUEdBIGRldmljZXMgdG8gc3VwcG9ydC4KIAotCQlDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisJCUNPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAKIAkJRW5hYmxlIHByaW50aW5nIG9mIGhhc2ggbWFya3MgZHVyaW5nIEZQR0EgY29uZmlndXJhdGlvbi4KIAotCQlDRkdfRlBHQV9DSEVDS19CVVNZCisJCUNPTkZJR19TWVNfRlBHQV9DSEVDS19CVVNZCiAKIAkJRW5hYmxlIGNoZWNrcyBvbiBGUEdBIGNvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGJ1c3kKIAkJc3RhdHVzIGJ5IHRoZSBjb25maWd1cmF0aW9uIGZ1bmN0aW9uLiBUaGlzIG9wdGlvbgpAQCAtMTU0NSwyOSArMTU0NSwyOSBAQAogCQlJZiBkZWZpbmVkLCBhIGZ1bmN0aW9uIHRoYXQgcHJvdmlkZXMgZGVsYXlzIGluIHRoZSBGUEdBCiAJCWNvbmZpZ3VyYXRpb24gZHJpdmVyLgogCi0JCUNGR19GUEdBX0NIRUNLX0NUUkxDCisJCUNPTkZJR19TWVNfRlBHQV9DSEVDS19DVFJMQwogCQlBbGxvdyBDb250cm9sLUMgdG8gaW50ZXJydXB0IEZQR0EgY29uZmlndXJhdGlvbgogCi0JCUNGR19GUEdBX0NIRUNLX0VSUk9SCisJCUNPTkZJR19TWVNfRlBHQV9DSEVDS19FUlJPUgogCiAJCUNoZWNrIGZvciBjb25maWd1cmF0aW9uIGVycm9ycyBkdXJpbmcgRlBHQSBiaXRmaWxlCiAJCWxvYWRpbmcuIEZvciBleGFtcGxlLCBhYm9ydCBkdXJpbmcgVmlydGV4IElJCiAJCWNvbmZpZ3VyYXRpb24gaWYgdGhlIElOSVRfQiBsaW5lIGdvZXMgbG93ICh3aGljaAogCQlpbmRpY2F0ZWQgYSBDUkMgZXJyb3IpLgogCi0JCUNGR19GUEdBX1dBSVRfSU5JVAorCQlDT05GSUdfU1lTX0ZQR0FfV0FJVF9JTklUCiAKIAkJTWF4aW11bSB0aW1lIHRvIHdhaXQgZm9yIHRoZSBJTklUX0IgbGluZSB0byBkZWFzc2VydAogCQlhZnRlciBQUk9CX0IgaGFzIGJlZW4gZGVhc3NlcnRlZCBkdXJpbmcgYSBWaXJ0ZXggSUkKIAkJRlBHQSBjb25maWd1cmF0aW9uIHNlcXVlbmNlLiBUaGUgZGVmYXVsdCB0aW1lIGlzIDUwMAogCQltcy4KIAotCQlDRkdfRlBHQV9XQUlUX0JVU1kKKwkJQ09ORklHX1NZU19GUEdBX1dBSVRfQlVTWQogCiAJCU1heGltdW0gdGltZSB0byB3YWl0IGZvciBCVVNZIHRvIGRlYXNzZXJ0IGR1cmluZwogCQlWaXJ0ZXggSUkgRlBHQSBjb25maWd1cmF0aW9uLiBUaGUgZGVmYXVsdCBpcyA1IG1zLgogCi0JCUNGR19GUEdBX1dBSVRfQ09ORklHCisJCUNPTkZJR19TWVNfRlBHQV9XQUlUX0NPTkZJRwogCiAJCVRpbWUgdG8gd2FpdCBhZnRlciBGUEdBIGNvbmZpZ3VyYXRpb24uIFRoZSBkZWZhdWx0IGlzCiAJCTIwMCBtcy4KQEAgLTE2NjUsNyArMTY2NSw3IEBACiAJCWZvciB0aGUgImh1c2giIHNoZWxsLgogCiAKLQkJQ0ZHX0hVU0hfUEFSU0VSCisJCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKIAogCQlEZWZpbmUgdGhpcyB2YXJpYWJsZSB0byBlbmFibGUgdGhlICJodXNoIiBzaGVsbCAoZnJvbQogCQlCdXN5Ym94KSBhcyBjb21tYW5kIGxpbmUgaW50ZXJwcmV0ZXIsIHRodXMgZW5hYmxpbmcKQEAgLTE2NzcsNyArMTY3Nyw3IEBACiAJCXdpdGggYSBzb21ld2hhdCBzbWFsbGVyIG1lbW9yeSBmb290cHJpbnQuCiAKIAotCQlDRkdfUFJPTVBUX0hVU0hfUFMyCisJCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCiAKIAkJVGhpcyBkZWZpbmVzIHRoZSBzZWNvbmRhcnkgcHJvbXB0IHN0cmluZywgd2hpY2ggaXMKIAkJcHJpbnRlZCB3aGVuIHRoZSBjb21tYW5kIGludGVycHJldGVyIG5lZWRzIG1vcmUgaW5wdXQKQEAgLTE3NDksMTAgKzE3NDksMTAgQEAKIAkJQWRkaW5nIHRoaXMgb3B0aW9uIGFkZHMgc3VwcG9ydCBmb3IgWGlsaW54IFN5c3RlbUFDRQogCQljaGlwcyBhdHRhY2hlZCB2aWEgc29tZSBzb3J0IG9mIGxvY2FsIGJ1cy4gVGhlIGFkZHJlc3MKIAkJb2YgdGhlIGNoaXAgbXVzdCBhbHNvIGJlIGRlZmluZWQgaW4gdGhlCi0JCUNGR19TWVNURU1BQ0VfQkFTRSBtYWNyby4gRm9yIGV4YW1wbGU6CisJCUNPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UgbWFjcm8uIEZvciBleGFtcGxlOgogCiAJCSNkZWZpbmUgQ09ORklHX1NZU1RFTUFDRQotCQkjZGVmaW5lIENGR19TWVNURU1BQ0VfQkFTRSAweGYwMDAwMDAwCisJCSNkZWZpbmUgQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRSAweGYwMDAwMDAwCiAKIAkJV2hlbiBTeXN0ZW1BQ0Ugc3VwcG9ydCBpcyBhZGRlZCwgdGhlICJhY2UiIGRldmljZSB0eXBlCiAJCWJlY29tZXMgYXZhaWxhYmxlIHRvIHRoZSBmYXQgY29tbWFuZHMsIGkuZS4gZmF0bHMuCkBAIC0yMDAwLDUzICsyMDAwLDUzIEBACiBDb25maWd1cmF0aW9uIFNldHRpbmdzOgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotLSBDRkdfTE9OR0hFTFA6IERlZmluZWQgd2hlbiB5b3Ugd2FudCBsb25nIGhlbHAgbWVzc2FnZXMgaW5jbHVkZWQ7CistIENPTkZJR19TWVNfTE9OR0hFTFA6IERlZmluZWQgd2hlbiB5b3Ugd2FudCBsb25nIGhlbHAgbWVzc2FnZXMgaW5jbHVkZWQ7CiAJCXVuZGVmaW5lIHRoaXMgd2hlbiB5b3UncmUgc2hvcnQgb2YgbWVtb3J5LgogCi0tIENGR19QUk9NUFQ6CVRoaXMgaXMgd2hhdCBVLUJvb3QgcHJpbnRzIG9uIHRoZSBjb25zb2xlIHRvCistIENPTkZJR19TWVNfUFJPTVBUOglUaGlzIGlzIHdoYXQgVS1Cb290IHByaW50cyBvbiB0aGUgY29uc29sZSB0bwogCQlwcm9tcHQgZm9yIHVzZXIgaW5wdXQuCiAKLS0gQ0ZHX0NCU0laRToJQnVmZmVyIHNpemUgZm9yIGlucHV0IGZyb20gdGhlIENvbnNvbGUKKy0gQ09ORklHX1NZU19DQlNJWkU6CUJ1ZmZlciBzaXplIGZvciBpbnB1dCBmcm9tIHRoZSBDb25zb2xlCiAKLS0gQ0ZHX1BCU0laRToJQnVmZmVyIHNpemUgZm9yIENvbnNvbGUgb3V0cHV0CistIENPTkZJR19TWVNfUEJTSVpFOglCdWZmZXIgc2l6ZSBmb3IgQ29uc29sZSBvdXRwdXQKIAotLSBDRkdfTUFYQVJHUzoJbWF4LiBOdW1iZXIgb2YgYXJndW1lbnRzIGFjY2VwdGVkIGZvciBtb25pdG9yIGNvbW1hbmRzCistIENPTkZJR19TWVNfTUFYQVJHUzoJbWF4LiBOdW1iZXIgb2YgYXJndW1lbnRzIGFjY2VwdGVkIGZvciBtb25pdG9yIGNvbW1hbmRzCiAKLS0gQ0ZHX0JBUkdTSVpFOiBCdWZmZXIgc2l6ZSBmb3IgQm9vdCBBcmd1bWVudHMgd2hpY2ggYXJlIHBhc3NlZCB0bworLSBDT05GSUdfU1lTX0JBUkdTSVpFOiBCdWZmZXIgc2l6ZSBmb3IgQm9vdCBBcmd1bWVudHMgd2hpY2ggYXJlIHBhc3NlZCB0bwogCQl0aGUgYXBwbGljYXRpb24gKHVzdWFsbHkgYSBMaW51eCBrZXJuZWwpIHdoZW4gaXQgaXMKIAkJYm9vdGVkCiAKLS0gQ0ZHX0JBVURSQVRFX1RBQkxFOgorLSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFOgogCQlMaXN0IG9mIGxlZ2FsIGJhdWRyYXRlIHNldHRpbmdzIGZvciB0aGlzIGJvYXJkLgogCi0tIENGR19DT05TT0xFX0lORk9fUVVJRVQKKy0gQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQKIAkJU3VwcHJlc3MgZGlzcGxheSBvZiBjb25zb2xlIGluZm9ybWF0aW9uIGF0IGJvb3QuCiAKLS0gQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCistIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYKIAkJSWYgdGhlIGJvYXJkIHNwZWNpZmljIGZ1bmN0aW9uCiAJCQlleHRlcm4gaW50IG92ZXJ3cml0ZV9jb25zb2xlICh2b2lkKTsKIAkJcmV0dXJucyAxLCB0aGUgc3RkaW4sIHN0ZGVyciBhbmQgc3Rkb3V0IGFyZSBzd2l0Y2hlZCB0byB0aGUKIAkJc2VyaWFsIHBvcnQsIGVsc2UgdGhlIHNldHRpbmdzIGluIHRoZSBlbnZpcm9ubWVudCBhcmUgdXNlZC4KIAotLSBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQorLSBDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUKIAkJRW5hYmxlIHRoZSBjYWxsIHRvIG92ZXJ3cml0ZV9jb25zb2xlKCkuCiAKLS0gQ0ZHX0NPTlNPTEVfRU5WX09WRVJXUklURQorLSBDT05GSUdfU1lTX0NPTlNPTEVfRU5WX09WRVJXUklURQogCQlFbmFibGUgb3ZlcndyaXRlIG9mIHByZXZpb3VzIGNvbnNvbGUgZW52aXJvbm1lbnQgc2V0dGluZ3MuCiAKLS0gQ0ZHX01FTVRFU1RfU1RBUlQsIENGR19NRU1URVNUX0VORDoKKy0gQ09ORklHX1NZU19NRU1URVNUX1NUQVJULCBDT05GSUdfU1lTX01FTVRFU1RfRU5EOgogCQlCZWdpbiBhbmQgRW5kIGFkZHJlc3NlcyBvZiB0aGUgYXJlYSB1c2VkIGJ5IHRoZQogCQlzaW1wbGUgbWVtb3J5IHRlc3QuCiAKLS0gQ0ZHX0FMVF9NRU1URVNUOgorLSBDT05GSUdfU1lTX0FMVF9NRU1URVNUOgogCQlFbmFibGUgYW4gYWx0ZXJuYXRlLCBtb3JlIGV4dGVuc2l2ZSBtZW1vcnkgdGVzdC4KIAotLSBDRkdfTUVNVEVTVF9TQ1JBVENIOgorLSBDT05GSUdfU1lTX01FTVRFU1RfU0NSQVRDSDoKIAkJU2NyYXRjaCBhZGRyZXNzIHVzZWQgYnkgdGhlIGFsdGVybmF0ZSBtZW1vcnkgdGVzdAogCQlZb3Ugb25seSBuZWVkIHRvIHNldCB0aGlzIGlmIGFkZHJlc3MgemVybyBpc24ndCB3cml0ZWFibGUKIAotLSBDRkdfTUVNX1RPUF9ISURFIChQUEMgb25seSk6Ci0JCUlmIENGR19NRU1fVE9QX0hJREUgaXMgZGVmaW5lZCBpbiB0aGUgYm9hcmQgY29uZmlnIGhlYWRlciwKKy0gQ09ORklHX1NZU19NRU1fVE9QX0hJREUgKFBQQyBvbmx5KToKKwkJSWYgQ09ORklHX1NZU19NRU1fVE9QX0hJREUgaXMgZGVmaW5lZCBpbiB0aGUgYm9hcmQgY29uZmlnIGhlYWRlciwKIAkJdGhpcyBzcGVjaWZpZWQgbWVtb3J5IGFyZWEgd2lsbCBnZXQgc3VidHJhY3RlZCBmcm9tIHRoZSB0b3AKIAkJKGVuZCkgb2YgUkFNIGFuZCB3b24ndCBnZXQgInRvdWNoZWQiIGF0IGFsbCBieSBVLUJvb3QuIEJ5CiAJCWZpeGluZyB1cCBnZC0+cmFtX3NpemUgdGhlIExpbnV4IGtlcm5lbCBzaG91bGQgZ2V0cyBwYXNzZWQKQEAgLTIwNjYsNzUgKzIwNjYsNzUgQEAKIAkJbm9uIHBhZ2Ugc2l6ZSBhbGlnbmVkIGFkZHJlc3MgYW5kIHRoaXMgY291bGQgY2F1c2UgbWFqb3IKIAkJcHJvYmxlbXMuCiAKLS0gQ0ZHX1RGVFBfTE9BREFERFI6CistIENPTkZJR19TWVNfVEZUUF9MT0FEQUREUjoKIAkJRGVmYXVsdCBsb2FkIGFkZHJlc3MgZm9yIG5ldHdvcmsgZmlsZSBkb3dubG9hZHMKIAotLSBDRkdfTE9BRFNfQkFVRF9DSEFOR0U6CistIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0U6CiAJCUVuYWJsZSB0ZW1wb3JhcnkgYmF1ZHJhdGUgY2hhbmdlIHdoaWxlIHNlcmlhbCBkb3dubG9hZAogCi0tIENGR19TRFJBTV9CQVNFOgorLSBDT05GSUdfU1lTX1NEUkFNX0JBU0U6CiAJCVBoeXNpY2FsIHN0YXJ0IGFkZHJlc3Mgb2YgU0RSQU0uIF9NdXN0XyBiZSAwIGhlcmUuCiAKLS0gQ0ZHX01CSU9fQkFTRToKKy0gQ09ORklHX1NZU19NQklPX0JBU0U6CiAJCVBoeXNpY2FsIHN0YXJ0IGFkZHJlc3Mgb2YgTW90aGVyYm9hcmQgSS9PIChpZiB1c2luZyBhCiAJCUNvZ2VudCBtb3RoZXJib2FyZCkKIAotLSBDRkdfRkxBU0hfQkFTRToKKy0gQ09ORklHX1NZU19GTEFTSF9CQVNFOgogCQlQaHlzaWNhbCBzdGFydCBhZGRyZXNzIG9mIEZsYXNoIG1lbW9yeS4KIAotLSBDRkdfTU9OSVRPUl9CQVNFOgorLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRToKIAkJUGh5c2ljYWwgc3RhcnQgYWRkcmVzcyBvZiBib290IG1vbml0b3IgY29kZSAoc2V0IGJ5CiAJCW1ha2UgY29uZmlnIGZpbGVzIHRvIGJlIHNhbWUgYXMgdGhlIHRleHQgYmFzZSBhZGRyZXNzCiAJCShURVhUX0JBU0UpIHVzZWQgd2hlbiBsaW5raW5nKSAtIHNhbWUgYXMKLQkJQ0ZHX0ZMQVNIX0JBU0Ugd2hlbiBib290aW5nIGZyb20gZmxhc2guCisJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSB3aGVuIGJvb3RpbmcgZnJvbSBmbGFzaC4KIAotLSBDRkdfTU9OSVRPUl9MRU46CistIENPTkZJR19TWVNfTU9OSVRPUl9MRU46CiAJCVNpemUgb2YgbWVtb3J5IHJlc2VydmVkIGZvciBtb25pdG9yIGNvZGUsIHVzZWQgdG8KIAkJZGV0ZXJtaW5lIF9hdF9jb21waWxlX3RpbWVfICghKSBpZiB0aGUgZW52aXJvbm1lbnQgaXMKIAkJZW1iZWRkZWQgd2l0aGluIHRoZSBVLUJvb3QgaW1hZ2UsIG9yIGluIGEgc2VwYXJhdGUKIAkJZmxhc2ggc2VjdG9yLgogCi0tIENGR19NQUxMT0NfTEVOOgorLSBDT05GSUdfU1lTX01BTExPQ19MRU46CiAJCVNpemUgb2YgRFJBTSByZXNlcnZlZCBmb3IgbWFsbG9jKCkgdXNlLgogCi0tIENGR19CT09UTV9MRU46CistIENPTkZJR19TWVNfQk9PVE1fTEVOOgogCQlOb3JtYWxseSBjb21wcmVzc2VkIHVJbWFnZXMgYXJlIGxpbWl0ZWQgdG8gYW4KIAkJdW5jb21wcmVzc2VkIHNpemUgb2YgOCBNQnl0ZXMuIElmIHRoaXMgaXMgbm90IGVub3VnaCwKLQkJeW91IGNhbiBkZWZpbmUgQ0ZHX0JPT1RNX0xFTiBpbiB5b3VyIGJvYXJkIGNvbmZpZyBmaWxlCisJCXlvdSBjYW4gZGVmaW5lIENPTkZJR19TWVNfQk9PVE1fTEVOIGluIHlvdXIgYm9hcmQgY29uZmlnIGZpbGUKIAkJdG8gYWRqdXN0IHRoaXMgc2V0dGluZyB0byB5b3VyIG5lZWRzLgogCi0tIENGR19CT09UTUFQU1o6CistIENPTkZJR19TWVNfQk9PVE1BUFNaOgogCQlNYXhpbXVtIHNpemUgb2YgbWVtb3J5IG1hcHBlZCBieSB0aGUgc3RhcnR1cCBjb2RlIG9mCiAJCXRoZSBMaW51eCBrZXJuZWw7IGFsbCBkYXRhIHRoYXQgbXVzdCBiZSBwcm9jZXNzZWQgYnkKIAkJdGhlIExpbnV4IGtlcm5lbCAoYmRfaW5mbywgYm9vdCBhcmd1bWVudHMsIEZEVCBibG9iIGlmCiAJCXVzZWQpIG11c3QgYmUgcHV0IGJlbG93IHRoaXMgbGltaXQsIHVubGVzcyAiYm9vdG1fbG93IgogCQllbnZpcm9tZW50IHZhcmlhYmxlIGlzIGRlZmluZWQgYW5kIG5vbi16ZXJvLiBJbiBzdWNoIGNhc2UKIAkJYWxsIGRhdGEgZm9yIHRoZSBMaW51eCBrZXJuZWwgbXVzdCBiZSBiZXR3ZWVuICJib290bV9sb3ciCi0JCWFuZCAiYm9vdG1fbG93IiArIENGR19CT09UTUFQU1ouCisJCWFuZCAiYm9vdG1fbG93IiArIENPTkZJR19TWVNfQk9PVE1BUFNaLgogCi0tIENGR19NQVhfRkxBU0hfQkFOS1M6CistIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOgogCQlNYXggbnVtYmVyIG9mIEZsYXNoIG1lbW9yeSBiYW5rcwogCi0tIENGR19NQVhfRkxBU0hfU0VDVDoKKy0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDoKIAkJTWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIGEgRmxhc2ggY2hpcAogCi0tIENGR19GTEFTSF9FUkFTRV9UT1VUOgorLSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQ6CiAJCVRpbWVvdXQgZm9yIEZsYXNoIGVyYXNlIG9wZXJhdGlvbnMgKGluIG1zKQogCi0tIENGR19GTEFTSF9XUklURV9UT1VUOgorLSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQ6CiAJCVRpbWVvdXQgZm9yIEZsYXNoIHdyaXRlIG9wZXJhdGlvbnMgKGluIG1zKQogCi0tIENGR19GTEFTSF9MT0NLX1RPVVQKKy0gQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQKIAkJVGltZW91dCBmb3IgRmxhc2ggc2V0IHNlY3RvciBsb2NrIGJpdCBvcGVyYXRpb24gKGluIG1zKQogCi0tIENGR19GTEFTSF9VTkxPQ0tfVE9VVAorLSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCiAJCVRpbWVvdXQgZm9yIEZsYXNoIGNsZWFyIGxvY2sgYml0cyBvcGVyYXRpb24gKGluIG1zKQogCi0tIENGR19GTEFTSF9QUk9URUNUSU9OCistIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogCQlJZiBkZWZpbmVkLCBoYXJkd2FyZSBmbGFzaCBzZWN0b3JzIHByb3RlY3Rpb24gaXMgdXNlZAogCQlpbnN0ZWFkIG9mIFUtQm9vdCBzb2Z0d2FyZSBwcm90ZWN0aW9uLgogCi0tIENGR19ESVJFQ1RfRkxBU0hfVEZUUDoKKy0gQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUDoKIAogCQlFbmFibGUgVEZUUCB0cmFuc2ZlcnMgZGlyZWN0bHkgdG8gZmxhc2ggbWVtb3J5OwogCQl3aXRob3V0IHRoaXMgb3B0aW9uIHN1Y2ggYSBkb3dubG9hZCBoYXMgdG8gYmUKQEAgLTIxNDcsNyArMjE0Nyw3IEBACiAJCXRvbyBsaW1pdGVkIHRvIGFsbG93IGZvciBhIHRlbXBvcmFyeSBjb3B5IG9mIHRoZQogCQlkb3dubG9hZGVkIGltYWdlKSB0aGlzIG9wdGlvbiBtYXkgYmUgdmVyeSB1c2VmdWwuCiAKLS0gQ0ZHX0ZMQVNIX0NGSToKKy0gQ09ORklHX1NZU19GTEFTSF9DRkk6CiAJCURlZmluZSBpZiB0aGUgZmxhc2ggZHJpdmVyIHVzZXMgZXh0cmEgZWxlbWVudHMgaW4gdGhlCiAJCWNvbW1vbiBmbGFzaCBzdHJ1Y3R1cmUgZm9yIHN0b3JpbmcgZmxhc2ggZ2VvbWV0cnkuCiAKQEAgLTIxNTUsMTQgKzIxNTUsMTQgQEAKIAkJVGhpcyBvcHRpb24gYWxzbyBlbmFibGVzIHRoZSBidWlsZGluZyBvZiB0aGUgY2ZpX2ZsYXNoIGRyaXZlcgogCQlpbiB0aGUgZHJpdmVycyBkaXJlY3RvcnkKIAotLSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorLSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIAkJVXNlIGJ1ZmZlcmVkIHdyaXRlcyB0byBmbGFzaC4KIAogLSBDT05GSUdfRkxBU0hfU1BBTlNJT05fUzI5V1NfTgogCQlzMjl3cy1uIE1pcnJvckJpdCBmbGFzaCBoYXMgbm9uLXN0YW5kYXJkIGFkZHJlc3NlcyBmb3IgYnVmZmVyZWQKIAkJd3JpdGUgY29tbWFuZHMuCiAKLS0gQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKKy0gQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCiAJCUlmIHRoaXMgb3B0aW9uIGlzIGRlZmluZWQsIHRoZSBjb21tb24gQ0ZJIGZsYXNoIGRvZXNuJ3QKIAkJcHJpbnQgaXQncyB3YXJuaW5nIHVwb24gbm90IHJlY29nbml6ZWQgRkxBU0ggYmFua3MuIFRoaXMKIAkJaXMgdXNlZnVsLCBpZiBzb21lIG9mIHRoZSBjb25maWd1cmVkIGJhbmtzIGFyZSBvbmx5CkBAIC0yMTczLDcgKzIxNzMsNyBAQAogCQlkaWdpdHMgYW5kIGRvdHMuICBSZWNvbW1lbmRlZCB2YWx1ZTogNDUgKDkuLjEpIGZvciA4MAogCQljb2x1bW4gZGlzcGxheXMsIDE1ICgzLi4xKSBmb3IgNDAgY29sdW1uIGRpc3BsYXlzLgogCi0tIENGR19SWF9FVEhfQlVGRkVSOgorLSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVI6CiAJCURlZmluZXMgdGhlIG51bWJlciBvZiBFdGhlcm5ldCByZWNlaXZlIGJ1ZmZlcnMuIE9uIHNvbWUKIAkJRXRoZXJuZXQgY29udHJvbGxlcnMgaXQgaXMgcmVjb21tZW5kZWQgdG8gc2V0IHRoaXMgdmFsdWUKIAkJdG8gOCBvciBldmVuIGhpZ2hlciAoRUVQUk8xMDAgb3IgNDA1IEVNQUMpLCBzaW5jZSBhbGwKQEAgLTIyMDgsNyArMjIwOCw3IEBACiAJICAgdHlwZSBmbGFzaCBjaGlwcyB0aGUgc2Vjb25kIHNlY3RvciBjYW4gYmUgdXNlZDogdGhlIG9mZnNldAogCSAgIGZvciB0aGlzIHNlY3RvciBpcyBnaXZlbiBoZXJlLgogCi0JICAgQ09ORklHX0VOVl9PRkZTRVQgaXMgdXNlZCByZWxhdGl2ZSB0byBDRkdfRkxBU0hfQkFTRS4KKwkgICBDT05GSUdfRU5WX09GRlNFVCBpcyB1c2VkIHJlbGF0aXZlIHRvIENPTkZJR19TWVNfRkxBU0hfQkFTRS4KIAogCS0gQ09ORklHX0VOVl9BRERSOgogCkBAIC0yMjkxLDI0ICsyMjkxLDI0IEBACiAJICBUaGVzZSB0d28gI2RlZmluZXMgc3BlY2lmeSB0aGUgb2Zmc2V0IGFuZCBzaXplIG9mIHRoZQogCSAgZW52aXJvbm1lbnQgYXJlYSB3aXRoaW4gdGhlIHRvdGFsIG1lbW9yeSBvZiB5b3VyIEVFUFJPTS4KIAotCS0gQ0ZHX0kyQ19FRVBST01fQUREUjoKKwktIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSOgogCSAgSWYgZGVmaW5lZCwgc3BlY2lmaWVkIHRoZSBjaGlwIGFkZHJlc3Mgb2YgdGhlIEVFUFJPTSBkZXZpY2UuCiAJICBUaGUgZGVmYXVsdCBhZGRyZXNzIGlzIHplcm8uCiAKLQktIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTOgorCS0gQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTOgogCSAgSWYgZGVmaW5lZCwgdGhlIG51bWJlciBvZiBiaXRzIHVzZWQgdG8gYWRkcmVzcyBieXRlcyBpbiBhCiAJICBzaW5nbGUgcGFnZSBpbiB0aGUgRUVQUk9NIGRldmljZS4gIEEgNjQgYnl0ZSBwYWdlLCBmb3IgZXhhbXBsZQogCSAgd291bGQgcmVxdWlyZSBzaXggYml0cy4KIAotCS0gQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TOgorCS0gQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUzoKIAkgIElmIGRlZmluZWQsIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5IGJldHdlZW4KIAkgIHBhZ2Ugd3JpdGVzLglUaGUgZGVmYXVsdCBpcyB6ZXJvIG1pbGxpc2Vjb25kcy4KIAotCS0gQ0ZHX0kyQ19FRVBST01fQUREUl9MRU46CisJLSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU46CiAJICBUaGUgbGVuZ3RoIGluIGJ5dGVzIG9mIHRoZSBFRVBST00gbWVtb3J5IGFycmF5IGFkZHJlc3MuICBOb3RlCiAJICB0aGF0IHRoaXMgaXMgTk9UIHRoZSBjaGlwIGFkZHJlc3MgbGVuZ3RoIQogCi0JLSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XOgorCS0gQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1c6CiAJICBFRVBST00gY2hpcHMgdGhhdCBpbXBsZW1lbnQgImFkZHJlc3Mgb3ZlcmZsb3ciIGFyZSBvbmVzCiAJICBsaWtlIENhdGFseXN0IDI0V0MwNC8wOC8xNiB3aGljaCBoYXMgOS8xMC8xMSBiaXRzIG9mCiAJICBhZGRyZXNzIGFuZCB0aGUgZXh0cmEgYml0cyBlbmQgdXAgaW4gdGhlICJjaGlwIGFkZHJlc3MiIGJpdApAQCAtMjMxOSw3ICsyMzE5LDcgQEAKIAkgIHN0aWxsIGJlIG9uZSBieXRlIGJlY2F1c2UgdGhlIGV4dHJhIGFkZHJlc3MgYml0cyBhcmUgaGlkZGVuCiAJICBpbiB0aGUgY2hpcCBhZGRyZXNzLgogCi0JLSBDRkdfRUVQUk9NX1NJWkU6CisJLSBDT05GSUdfU1lTX0VFUFJPTV9TSVpFOgogCSAgVGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIEVFUFJPTSBkZXZpY2UuCiAKIApAQCAtMjM1OCw3ICsyMzU4LDcgQEAKIAl0byBhIGJsb2NrIGJvdW5kYXJ5LCBhbmQgQ09ORklHX0VOVl9TSVpFIG11c3QgYmUgYSBtdWx0aXBsZSBvZgogCXRoZSBOQU5EIGRldmljZXMgYmxvY2sgc2l6ZS4KIAotLSBDRkdfU1BJX0lOSVRfT0ZGU0VUCistIENPTkZJR19TWVNfU1BJX0lOSVRfT0ZGU0VUCiAKIAlEZWZpbmVzIG9mZnNldCB0byB0aGUgaW5pdGlhbCBTUEkgYnVmZmVyIGFyZWEgaW4gRFBSQU0uIFRoZQogCWFyZWEgaXMgdXNlZCBhdCBhbiBlYXJseSBzdGFnZSAoUk9NIHBhcnQpIGlmIHRoZSBlbnZpcm9ubWVudApAQCAtMjM4NCwyOSArMjM4NCwyOSBAQAogdGhlIGRlZmF1bHQgZW52aXJvbm1lbnQgaXMgdXNlZDsgYSBuZXcgQ1JDIGlzIGNvbXB1dGVkIGFzIHNvb24gYXMgeW91CiB1c2UgdGhlICJzYXZlZW52IiBjb21tYW5kIHRvIHN0b3JlIGEgdmFsaWQgZW52aXJvbm1lbnQuCiAKLS0gQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOOgorLSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOOgogCQlFY2hvIHRoZSBpbnZlcnRlZCBFdGhlcm5ldCBsaW5rIHN0YXRlIHRvIHRoZSBmYXVsdCBMRUQuCiAKLQkJTm90ZTogSWYgdGhpcyBvcHRpb24gaXMgYWN0aXZlLCB0aGVuIENGR19GQVVMVF9NSUlfQUREUgorCQlOb3RlOiBJZiB0aGlzIG9wdGlvbiBpcyBhY3RpdmUsIHRoZW4gQ09ORklHX1NZU19GQVVMVF9NSUlfQUREUgogCQkgICAgICBhbHNvIG5lZWRzIHRvIGJlIGRlZmluZWQuCiAKLS0gQ0ZHX0ZBVUxUX01JSV9BRERSOgorLSBDT05GSUdfU1lTX0ZBVUxUX01JSV9BRERSOgogCQlNSUkgYWRkcmVzcyBvZiB0aGUgUEhZIHRvIGNoZWNrIGZvciB0aGUgRXRoZXJuZXQgbGluayBzdGF0ZS4KIAotLSBDRkdfNjRCSVRfVlNQUklOVEY6CistIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEY6CiAJCU1ha2VzIHZzcHJpbnRmIChhbmQgYWxsICpwcmludGYgZnVuY3Rpb25zKSBzdXBwb3J0IHByaW50aW5nCiAJCW9mIDY0Yml0IHZhbHVlcyBieSB1c2luZyB0aGUgTCBxdWFudGlmaWVyCiAKLS0gQ0ZHXzY0QklUX1NUUlRPVUw6CistIENPTkZJR19TWVNfNjRCSVRfU1RSVE9VTDoKIAkJQWRkcyBzaW1wbGVfc3RydG91bGwgdGhhdCByZXR1cm5zIGEgNjRiaXQgdmFsdWUKIAogTG93IExldmVsIChoYXJkd2FyZSByZWxhdGVkKSBjb25maWd1cmF0aW9uIG9wdGlvbnM6CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotLSBDRkdfQ0FDSEVMSU5FX1NJWkU6CistIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkU6CiAJCUNhY2hlIExpbmUgU2l6ZSBvZiB0aGUgQ1BVLgogCi0tIENGR19ERUZBVUxUX0lNTVI6CistIENPTkZJR19TWVNfREVGQVVMVF9JTU1SOgogCQlEZWZhdWx0IGFkZHJlc3Mgb2YgdGhlIElNTVIgYWZ0ZXIgc3lzdGVtIHJlc2V0LgogCiAJCU5lZWRlZCBvbiBzb21lIDgyNjAgc3lzdGVtcyAoTVBDODI2MEFEUywgUFEyRkFEUy1aVSwKQEAgLTI0MTQsMzYgKzI0MTQsMzYgQEAKIAkJdGhlIElNTVIgcmVnaXN0ZXIgYWZ0ZXIgYSByZXNldC4KIAogLSBGbG9wcHkgRGlzayBTdXBwb3J0OgotCQlDRkdfRkRDX0RSSVZFX05VTUJFUgorCQlDT05GSUdfU1lTX0ZEQ19EUklWRV9OVU1CRVIKIAogCQl0aGUgZGVmYXVsdCBkcml2ZSBudW1iZXIgKGRlZmF1bHQgdmFsdWUgMCkKIAotCQlDRkdfSVNBX0lPX1NUUklERQorCQlDT05GSUdfU1lTX0lTQV9JT19TVFJJREUKIAogCQlkZWZpbmVzIHRoZSBzcGFjaW5nIGJldHdlZW4gRkRDIGNoaXBzZXQgcmVnaXN0ZXJzCiAJCShkZWZhdWx0IHZhbHVlIDEpCiAKLQkJQ0ZHX0lTQV9JT19PRkZTRVQKKwkJQ09ORklHX1NZU19JU0FfSU9fT0ZGU0VUCiAKIAkJZGVmaW5lcyB0aGUgb2Zmc2V0IG9mIHJlZ2lzdGVyIGZyb20gYWRkcmVzcy4gSXQKIAkJZGVwZW5kcyBvbiB3aGljaCBwYXJ0IG9mIHRoZSBkYXRhIGJ1cyBpcyBjb25uZWN0ZWQgdG8KIAkJdGhlIEZEQyBjaGlwc2V0LiAoZGVmYXVsdCB2YWx1ZSAwKQogCi0JCUlmIENGR19JU0FfSU9fU1RSSURFIENGR19JU0FfSU9fT0ZGU0VUIGFuZAotCQlDRkdfRkRDX0RSSVZFX05VTUJFUiBhcmUgdW5kZWZpbmVkLCB0aGV5IHRha2UgdGhlaXIKKwkJSWYgQ09ORklHX1NZU19JU0FfSU9fU1RSSURFIENPTkZJR19TWVNfSVNBX0lPX09GRlNFVCBhbmQKKwkJQ09ORklHX1NZU19GRENfRFJJVkVfTlVNQkVSIGFyZSB1bmRlZmluZWQsIHRoZXkgdGFrZSB0aGVpcgogCQlkZWZhdWx0IHZhbHVlLgogCi0JCWlmIENGR19GRENfSFdfSU5JVCBpcyBkZWZpbmVkLCB0aGVuIHRoZSBmdW5jdGlvbgorCQlpZiBDT05GSUdfU1lTX0ZEQ19IV19JTklUIGlzIGRlZmluZWQsIHRoZW4gdGhlIGZ1bmN0aW9uCiAJCWZkY19od19pbml0KCkgaXMgY2FsbGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIEZEQwogCQlzZXR1cC4gZmRjX2h3X2luaXQoKSBtdXN0IGJlIHByb3ZpZGVkIGJ5IHRoZSBib2FyZAogCQlzb3VyY2UgY29kZS4gSXQgaXMgdXNlZCB0byBtYWtlIGhhcmR3YXJlIGRlcGVuZGFudAogCQlpbml0aWFsaXphdGlvbnMuCiAKLS0gQ0ZHX0lNTVI6CVBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIEludGVybmFsIE1lbW9yeS4KKy0gQ09ORklHX1NZU19JTU1SOglQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBJbnRlcm5hbCBNZW1vcnkuCiAJCURPIE5PVCBDSEFOR0UgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkgd2hhdCB5b3UncmUKIAkJZG9pbmchICgxMS00KSBbTVBDOHh4LzgyeHggc3lzdGVtcyBvbmx5XQogCi0tIENGR19JTklUX1JBTV9BRERSOgorLSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFI6CiAKIAkJU3RhcnQgYWRkcmVzcyBvZiBtZW1vcnkgYXJlYSB0aGF0IGNhbiBiZSB1c2VkIGZvcgogCQlpbml0aWFsIGRhdGEgYW5kIHN0YWNrOyBwbGVhc2Ugbm90ZSB0aGF0IHRoaXMgbXVzdCBiZQpAQCAtMjQ1OCw5MSArMjQ1OCw5MSBAQAogCQktIE1QQzgyNFg6IGRhdGEgY2FjaGUKIAkJLSBQUEM0eHg6ICBkYXRhIGNhY2hlCiAKLS0gQ0ZHX0dCTF9EQVRBX09GRlNFVDoKKy0gQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQ6CiAKIAkJT2Zmc2V0IG9mIHRoZSBpbml0aWFsIGRhdGEgc3RydWN0dXJlIGluIHRoZSBtZW1vcnkKLQkJYXJlYSBkZWZpbmVkIGJ5IENGR19JTklUX1JBTV9BRERSLiBVc3VhbGx5Ci0JCUNGR19HQkxfREFUQV9PRkZTRVQgaXMgY2hvc2VuIHN1Y2ggdGhhdCB0aGUgaW5pdGlhbAorCQlhcmVhIGRlZmluZWQgYnkgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLiBVc3VhbGx5CisJCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIGlzIGNob3NlbiBzdWNoIHRoYXQgdGhlIGluaXRpYWwKIAkJZGF0YSBpcyBsb2NhdGVkIGF0IHRoZSBlbmQgb2YgdGhlIGF2YWlsYWJsZSBzcGFjZQotCQkoc29tZXRpbWVzIHdyaXR0ZW4gYXMgKENGR19JTklUX1JBTV9FTkQgLQotCQlDRkdfSU5JVF9EQVRBX1NJWkUpLCBhbmQgdGhlIGluaXRpYWwgc3RhY2sgaXMganVzdAotCQliZWxvdyB0aGF0IGFyZWEgKGdyb3dpbmcgZnJvbSAoQ0ZHX0lOSVRfUkFNX0FERFIgKwotCQlDRkdfR0JMX0RBVEFfT0ZGU0VUKSBkb3dud2FyZC4KKwkJKHNvbWV0aW1lcyB3cml0dGVuIGFzIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtCisJCUNPTkZJR19TWVNfSU5JVF9EQVRBX1NJWkUpLCBhbmQgdGhlIGluaXRpYWwgc3RhY2sgaXMganVzdAorCQliZWxvdyB0aGF0IGFyZWEgKGdyb3dpbmcgZnJvbSAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsKKwkJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQpIGRvd253YXJkLgogCiAJTm90ZToKIAkJT24gdGhlIE1QQzgyNFggKG9yIG90aGVyIHN5c3RlbXMgdGhhdCB1c2UgdGhlIGRhdGEKIAkJY2FjaGUgZm9yIGluaXRpYWwgbWVtb3J5KSB0aGUgYWRkcmVzcyBjaG9zZW4gZm9yCi0JCUNGR19JTklUX1JBTV9BRERSIGlzIGJhc2ljYWxseSBhcmJpdHJhcnkgLSBpdCBtdXN0CisJCUNPTkZJR19TWVNfSU5JVF9SQU1fQUREUiBpcyBiYXNpY2FsbHkgYXJiaXRyYXJ5IC0gaXQgbXVzdAogCQlwb2ludCB0byBhbiBvdGhlcndpc2UgVU5VU0VEIGFkZHJlc3Mgc3BhY2UgYmV0d2VlbgogCQl0aGUgdG9wIG9mIFJBTSBhbmQgdGhlIHN0YXJ0IG9mIHRoZSBQQ0kgc3BhY2UuCiAKLS0gQ0ZHX1NJVU1DUjoJU0lVIE1vZHVsZSBDb25maWd1cmF0aW9uICgxMS02KQorLSBDT05GSUdfU1lTX1NJVU1DUjoJU0lVIE1vZHVsZSBDb25maWd1cmF0aW9uICgxMS02KQogCi0tIENGR19TWVBDUjoJU3lzdGVtIFByb3RlY3Rpb24gQ29udHJvbCAoMTEtOSkKKy0gQ09ORklHX1NZU19TWVBDUjoJU3lzdGVtIFByb3RlY3Rpb24gQ29udHJvbCAoMTEtOSkKIAotLSBDRkdfVEJTQ1I6CVRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wgKDExLTI2KQorLSBDT05GSUdfU1lTX1RCU0NSOglUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sICgxMS0yNikKIAotLSBDRkdfUElTQ1I6CVBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgKDExLTMxKQorLSBDT05GSUdfU1lTX1BJU0NSOglQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sICgxMS0zMSkKIAotLSBDRkdfUExQUkNSOglQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIgKDE1LTMwKQorLSBDT05GSUdfU1lTX1BMUFJDUjoJUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyICgxNS0zMCkKIAotLSBDRkdfU0NDUjoJU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyICgxNS0yNykKKy0gQ09ORklHX1NZU19TQ0NSOglTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIgKDE1LTI3KQogCi0tIENGR19PUl9USU1JTkdfU0RSQU06CistIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOgogCQlTRFJBTSB0aW1pbmcKIAotLSBDRkdfTUFNUl9QVEE6CistIENPTkZJR19TWVNfTUFNUl9QVEE6CiAJCXBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoCiAKLS0gQ0ZHX0RFUjoJRGVidWcgRXZlbnQgUmVnaXN0ZXIgKDM3LTQ3KQorLSBDT05GSUdfU1lTX0RFUjoJRGVidWcgRXZlbnQgUmVnaXN0ZXIgKDM3LTQ3KQogCi0tIEZMQVNIX0JBU0UwX1BSRUxJTSwgRkxBU0hfQkFTRTFfUFJFTElNLCBDRkdfUkVNQVBfT1JfQU0sCi0gIENGR19QUkVMSU1fT1JfQU0sIENGR19PUl9USU1JTkdfRkxBU0gsIENGR19PUjBfUkVNQVAsCi0gIENGR19PUjBfUFJFTElNLCBDRkdfQlIwX1BSRUxJTSwgQ0ZHX09SMV9SRU1BUCwgQ0ZHX09SMV9QUkVMSU0sCi0gIENGR19CUjFfUFJFTElNOgorLSBGTEFTSF9CQVNFMF9QUkVMSU0sIEZMQVNIX0JBU0UxX1BSRUxJTSwgQ09ORklHX1NZU19SRU1BUF9PUl9BTSwKKyAgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0sIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNILCBDT05GSUdfU1lTX09SMF9SRU1BUCwKKyAgQ09ORklHX1NZU19PUjBfUFJFTElNLCBDT05GSUdfU1lTX0JSMF9QUkVMSU0sIENPTkZJR19TWVNfT1IxX1JFTUFQLCBDT05GSUdfU1lTX09SMV9QUkVMSU0sCisgIENPTkZJR19TWVNfQlIxX1BSRUxJTToKIAkJTWVtb3J5IENvbnRyb2xsZXIgRGVmaW5pdGlvbnM6IEJSMC8xIGFuZCBPUjAvMSAoRkxBU0gpCiAKIC0gU0RSQU1fQkFTRTJfUFJFTElNLCBTRFJBTV9CQVNFM19QUkVMSU0sIFNEUkFNX01BWF9TSVpFLAotICBDRkdfT1JfVElNSU5HX1NEUkFNLCBDRkdfT1IyX1BSRUxJTSwgQ0ZHX0JSMl9QUkVMSU0sCi0gIENGR19PUjNfUFJFTElNLCBDRkdfQlIzX1BSRUxJTToKKyAgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0sIENPTkZJR19TWVNfT1IyX1BSRUxJTSwgQ09ORklHX1NZU19CUjJfUFJFTElNLAorICBDT05GSUdfU1lTX09SM19QUkVMSU0sIENPTkZJR19TWVNfQlIzX1BSRUxJTToKIAkJTWVtb3J5IENvbnRyb2xsZXIgRGVmaW5pdGlvbnM6IEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCiAKLS0gQ0ZHX01BTVJfUFRBLCBDRkdfTVBUUFJfMkJLXzRLLCBDRkdfTVBUUFJfMUJLXzRLLCBDRkdfTVBUUFJfMkJLXzhLLAotICBDRkdfTVBUUFJfMUJLXzhLLCBDRkdfTUFNUl84Q09MLCBDRkdfTUFNUl85Q09MOgorLSBDT05GSUdfU1lTX01BTVJfUFRBLCBDT05GSUdfU1lTX01QVFBSXzJCS180SywgQ09ORklHX1NZU19NUFRQUl8xQktfNEssIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLLAorICBDT05GSUdfU1lTX01QVFBSXzFCS184SywgQ09ORklHX1NZU19NQU1SXzhDT0wsIENPTkZJR19TWVNfTUFNUl85Q09MOgogCQlNYWNoaW5lIE1vZGUgUmVnaXN0ZXIgYW5kIE1lbW9yeSBQZXJpb2RpYyBUaW1lcgogCQlQcmVzY2FsZXIgZGVmaW5pdGlvbnMgKFNEUkFNIHRpbWluZykKIAotLSBDRkdfSTJDX1VDT0RFX1BBVENILCBDRkdfSTJDX0RQTUVNX09GRlNFVCBbMHgxRkMwXToKKy0gQ09ORklHX1NZU19JMkNfVUNPREVfUEFUQ0gsIENPTkZJR19TWVNfSTJDX0RQTUVNX09GRlNFVCBbMHgxRkMwXToKIAkJZW5hYmxlIEkyQyBtaWNyb2NvZGUgcmVsb2NhdGlvbiBwYXRjaCAoTVBDOHh4KTsKIAkJZGVmaW5lIHJlbG9jYXRpb24gb2Zmc2V0IGluIERQUkFNIFtEU1AyXQogCi0tIENGR19TTUNfVUNPREVfUEFUQ0gsIENGR19TTUNfRFBNRU1fT0ZGU0VUIFsweDFGQzBdOgorLSBDT05GSUdfU1lTX1NNQ19VQ09ERV9QQVRDSCwgQ09ORklHX1NZU19TTUNfRFBNRU1fT0ZGU0VUIFsweDFGQzBdOgogCQllbmFibGUgU01DIG1pY3JvY29kZSByZWxvY2F0aW9uIHBhdGNoIChNUEM4eHgpOwogCQlkZWZpbmUgcmVsb2NhdGlvbiBvZmZzZXQgaW4gRFBSQU0gW1NNQzFdCiAKLS0gQ0ZHX1NQSV9VQ09ERV9QQVRDSCwgQ0ZHX1NQSV9EUE1FTV9PRkZTRVQgWzB4MUZDMF06CistIENPTkZJR19TWVNfU1BJX1VDT0RFX1BBVENILCBDT05GSUdfU1lTX1NQSV9EUE1FTV9PRkZTRVQgWzB4MUZDMF06CiAJCWVuYWJsZSBTUEkgbWljcm9jb2RlIHJlbG9jYXRpb24gcGF0Y2ggKE1QQzh4eCk7CiAJCWRlZmluZSByZWxvY2F0aW9uIG9mZnNldCBpbiBEUFJBTSBbU0NDNF0KIAotLSBDRkdfVVNFX09TQ0NMSzoKKy0gQ09ORklHX1NZU19VU0VfT1NDQ0xLOgogCQlVc2UgT1NDTSBjbG9jayBtb2RlIG9uIE1CWDh4eCBib2FyZC4gQmUgY2FyZWZ1bCwKIAkJd3Jvbmcgc2V0dGluZyBtaWdodCBkYW1hZ2UgeW91ciBib2FyZC4gUmVhZAogCQlkb2MvUkVBRE1FLk1CWCBiZWZvcmUgc2V0dGluZyB0aGlzIHZhcmlhYmxlIQogCi0tIENGR19DUE1fUE9TVF9XT1JEX0FERFI6IChNUEM4eHgsIE1QQzgyNjAgb25seSkKKy0gQ09ORklHX1NZU19DUE1fUE9TVF9XT1JEX0FERFI6IChNUEM4eHgsIE1QQzgyNjAgb25seSkKIAkJT2Zmc2V0IG9mIHRoZSBib290bW9kZSB3b3JkIGluIERQUkFNIHVzZWQgYnkgcG9zdAogCQkoUG93ZXIgT24gU2VsZiBUZXN0cykuIFRoaXMgZGVmaW5pdGlvbiBvdmVycmlkZXMKIAkJI2RlZmluZSdkIGRlZmF1bHQgdmFsdWUgaW4gY29tbXByb2MuaCByZXNwLgogCQljcG1fODI2MC5oLgogCi0tIENGR19QQ0lfU0xWX01FTV9MT0NBTCwgQ0ZHX1BDSV9TTFZfTUVNX0JVUywgQ0ZHX1BJQ01SMF9NQVNLX0FUVFJJQiwKLSAgQ0ZHX1BDSV9NU1RSMF9MT0NBTCwgQ0ZHX1BDSU1TSzBfTUFTSywgQ0ZHX1BDSV9NU1RSMV9MT0NBTCwKLSAgQ0ZHX1BDSU1TSzFfTUFTSywgQ0ZHX1BDSV9NU1RSX01FTV9MT0NBTCwgQ0ZHX1BDSV9NU1RSX01FTV9CVVMsCi0gIENGR19DUFVfUENJX01FTV9TVEFSVCwgQ0ZHX1BDSV9NU1RSX01FTV9TSVpFLCBDRkdfUE9DTVIwX01BU0tfQVRUUklCLAotICBDRkdfUENJX01TVFJfTUVNSU9fTE9DQUwsIENGR19QQ0lfTVNUUl9NRU1JT19CVVMsIENQVV9QQ0lfTUVNSU9fU1RBUlQsCi0gIENGR19QQ0lfTVNUUl9NRU1JT19TSVpFLCBDRkdfUE9DTVIxX01BU0tfQVRUUklCLCBDRkdfUENJX01TVFJfSU9fTE9DQUwsCi0gIENGR19QQ0lfTVNUUl9JT19CVVMsIENGR19DUFVfUENJX0lPX1NUQVJULCBDRkdfUENJX01TVFJfSU9fU0laRSwKLSAgQ0ZHX1BPQ01SMl9NQVNLX0FUVFJJQjogKE1QQzgyNnggb25seSkKKy0gQ09ORklHX1NZU19QQ0lfU0xWX01FTV9MT0NBTCwgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9CVVMsIENPTkZJR19TWVNfUElDTVIwX01BU0tfQVRUUklCLAorICBDT05GSUdfU1lTX1BDSV9NU1RSMF9MT0NBTCwgQ09ORklHX1NZU19QQ0lNU0swX01BU0ssIENPTkZJR19TWVNfUENJX01TVFIxX0xPQ0FMLAorICBDT05GSUdfU1lTX1BDSU1TSzFfTUFTSywgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1fTE9DQUwsIENPTkZJR19TWVNfUENJX01TVFJfTUVNX0JVUywKKyAgQ09ORklHX1NZU19DUFVfUENJX01FTV9TVEFSVCwgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1fU0laRSwgQ09ORklHX1NZU19QT0NNUjBfTUFTS19BVFRSSUIsCisgIENPTkZJR19TWVNfUENJX01TVFJfTUVNSU9fTE9DQUwsIENPTkZJR19TWVNfUENJX01TVFJfTUVNSU9fQlVTLCBDUFVfUENJX01FTUlPX1NUQVJULAorICBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX1NJWkUsIENPTkZJR19TWVNfUE9DTVIxX01BU0tfQVRUUklCLCBDT05GSUdfU1lTX1BDSV9NU1RSX0lPX0xPQ0FMLAorICBDT05GSUdfU1lTX1BDSV9NU1RSX0lPX0JVUywgQ09ORklHX1NZU19DUFVfUENJX0lPX1NUQVJULCBDT05GSUdfU1lTX1BDSV9NU1RSX0lPX1NJWkUsCisgIENPTkZJR19TWVNfUE9DTVIyX01BU0tfQVRUUklCOiAoTVBDODI2eCBvbmx5KQogCQlPdmVycmlkZXMgdGhlIGRlZmF1bHQgUENJIG1lbW9yeSBtYXAgaW4gY3B1L21wYzgyNjAvcGNpLmMgaWYgc2V0LgogCiAtIENPTkZJR19TUERfRUVQUk9NCkBAIC0yNTUyLDE2ICsyNTUyLDE2IEBACiAgIFNQRF9FRVBST01fQUREUkVTUwogCQlJMkMgYWRkcmVzcyBvZiB0aGUgU1BEIEVFUFJPTQogCi0tIENGR19TUERfQlVTX05VTQorLSBDT05GSUdfU1lTX1NQRF9CVVNfTlVNCiAJCUlmIFNQRCBFRVBST00gaXMgb24gYW4gSTJDIGJ1cyBvdGhlciB0aGFuIHRoZSBmaXJzdAogCQlvbmUsIHNwZWNpZnkgaGVyZS4gTm90ZSB0aGF0IHRoZSB2YWx1ZSBtdXN0IHJlc29sdmUKIAkJdG8gc29tZXRoaW5nIHlvdXIgZHJpdmVyIGNhbiBkZWFsIHdpdGguCiAKLS0gQ0ZHXzgzWFhfRERSX1VTRVNfQ1MwCistIENPTkZJR19TWVNfODNYWF9ERFJfVVNFU19DUzAKIAkJT25seSBmb3IgODN4eCBzeXN0ZW1zLiBJZiBzcGVjaWZpZWQsIHRoZW4gRERSIHNob3VsZAogCQliZSBjb25maWd1cmVkIHVzaW5nIENTMCBhbmQgQ1MxIGluc3RlYWQgb2YgQ1MyIGFuZCBDUzMuCiAKLS0gQ0ZHXzgzWFhfRERSX1VTRVNfQ1MwCistIENPTkZJR19TWVNfODNYWF9ERFJfVVNFU19DUzAKIAkJT25seSBmb3IgODN4eCBzeXN0ZW1zLiBJZiBzcGVjaWZpZWQsIHRoZW4gRERSIHNob3VsZAogCQliZSBjb25maWd1cmVkIHVzaW5nIENTMCBhbmQgQ1MxIGluc3RlYWQgb2YgQ1MyIGFuZCBDUzMuCiAKQEAgLTI4NjEsNyArMjg2MSw3IEBACiAJCSAgZm9yIHVzZSBieSB0aGUgYm9vdG0gY29tbWFuZC4gU2VlIGFsc28gImJvb3RtX3NpemUiCiAJCSAgZW52aXJvbm1lbnQgdmFyaWFibGUuIEFkZHJlc3MgZGVmaW5lZCBieSAiYm9vdG1fbG93IiBpcwogCQkgIGFsc28gdGhlIGJhc2Ugb2YgdGhlIGluaXRpYWwgbWVtb3J5IG1hcHBpbmcgZm9yIHRoZSBMaW51eAotCQkgIGtlcm5lbCAtLSBzZWUgdGhlIGRlc2NyaXB0aW9uIG9mIENGR19CT09UTUFQU1ouCisJCSAga2VybmVsIC0tIHNlZSB0aGUgZGVzY3JpcHRpb24gb2YgQ09ORklHX1NZU19CT09UTUFQU1ouCiAKICAgYm9vdG1fc2l6ZQktIE1lbW9yeSByYW5nZSBhdmFpbGFibGUgZm9yIGltYWdlIHByb2Nlc3NpbmcgaW4gdGhlIGJvb3RtCiAJCSAgY29tbWFuZCBjYW4gYmUgcmVzdHJpY3RlZC4gVGhpcyB2YXJpYWJsZSBpcyBnaXZlbiBhcwpAQCAtMjkwOSw3ICsyOTA5LDcgQEAKIAkJICBpcyB1c3VhbGx5IHdoYXQgeW91IHdhbnQgc2luY2UgaXQgYWxsb3dzIGZvcgogCQkgIG1heGltdW0gaW5pdHJkIHNpemUuIElmIGZvciBzb21lIHJlYXNvbiB5b3Ugd2FudCB0bwogCQkgIG1ha2Ugc3VyZSB0aGF0IHRoZSBpbml0cmQgaW1hZ2UgaXMgbG9hZGVkIGJlbG93IHRoZQotCQkgIENGR19CT09UTUFQU1ogbGltaXQsIHlvdSBjYW4gc2V0IHRoaXMgZW52aXJvbm1lbnQKKwkJICBDT05GSUdfU1lTX0JPT1RNQVBTWiBsaW1pdCwgeW91IGNhbiBzZXQgdGhpcyBlbnZpcm9ubWVudAogCQkgIHZhcmlhYmxlIHRvIGEgdmFsdWUgb2YgIm5vIiBvciAib2ZmIiBvciAiMCIuCiAJCSAgQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBzZXQgaXQgdG8gYSBtYXhpbXVtIHVwcGVyCiAJCSAgYWRkcmVzcyB0byB1c2UgKFUtQm9vdCB3aWxsIHN0aWxsIGNoZWNrIHRoYXQgaXQKQEAgLTMxODMsNyArMzE4Myw3IEBACiBpbmNsdWRlL2FzbS1wcGMvdHFtOHh4LmgpIGluY2x1ZGVzIHRoZSBzYW1lIGRlZmluaXRpb24gb2YgdGhlIEJvYXJkCiBJbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgYXMgd2UgZGVmaW5lIGluIGluY2x1ZGUvYXNtLTxhcmNoPi91LWJvb3QuaCwKIGFuZCBtYWtlIHN1cmUgdGhhdCB5b3VyIGRlZmluaXRpb24gb2YgSU1BUF9BRERSIHVzZXMgdGhlIHNhbWUgdmFsdWUKLWFzIHlvdXIgVS1Cb290IGNvbmZpZ3VyYXRpb24gaW4gQ0ZHX0lNTVIuCithcyB5b3VyIFUtQm9vdCBjb25maWd1cmF0aW9uIGluIENPTkZJR19TWVNfSU1NUi4KIAogCiBDb25maWd1cmluZyB0aGUgTGludXgga2VybmVsOgpAQCAtMzczMCw3ICszNzMwLDcgQEAKIAljYXVzZSB5b3UgZ3JpZWYgZHVyaW5nIHRoZSBpbml0aWFsIGJvb3QhIEl0IGlzIGZyZXF1ZW50bHkgbm90CiAJdXNlZC4KIAotCUNGR19JTklUX1JBTV9BRERSIHNob3VsZCBiZSBzb21ld2hlcmUgdGhhdCB3b24ndCBpbnRlcmZlcmUKKwlDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgc2hvdWxkIGJlIHNvbWV3aGVyZSB0aGF0IHdvbid0IGludGVyZmVyZQogCXdpdGggeW91ciBwcm9jZXNzb3IvYm9hcmQvc3lzdGVtIGRlc2lnbi4gVGhlIGRlZmF1bHQgdmFsdWUKIAl5b3Ugd2lsbCBmaW5kIGluIGFueSByZWNlbnQgdS1ib290IGRpc3RyaWJ1dGlvbiBpbgogCXdhbG51dC5oIHNob3VsZCB3b3JrIGZvciB5b3UuIEknZCBzZXQgaXQgdG8gYSB2YWx1ZSBsYXJnZXIKQEAgLTM4MjcsNyArMzgyNyw3IEBACiBUUU04eHhMIG1vZHVsZXMgdGhpcyBpcyB0aGUgcmFuZ2UgMHg0MDAwMDAwMCAuLi4gMHg0MDAxRkZGRikuIEFmdGVyCiBib290aW5nIGFuZCBzaXppbmcgYW5kIGluaXRpYWxpemluZyBEUkFNLCB0aGUgY29kZSByZWxvY2F0ZXMgaXRzZWxmCiB0byB0aGUgdXBwZXIgZW5kIG9mIERSQU0uIEltbWVkaWF0ZWx5IGJlbG93IHRoZSBVLUJvb3QgY29kZSBzb21lCi1tZW1vcnkgaXMgcmVzZXJ2ZWQgZm9yIHVzZSBieSBtYWxsb2MoKSBbc2VlIENGR19NQUxMT0NfTEVOCittZW1vcnkgaXMgcmVzZXJ2ZWQgZm9yIHVzZSBieSBtYWxsb2MoKSBbc2VlIENPTkZJR19TWVNfTUFMTE9DX0xFTgogY29uZmlndXJhdGlvbiBzZXR0aW5nXS4gQmVsb3cgdGhhdCwgYSBzdHJ1Y3R1cmUgd2l0aCBnbG9iYWwgQm9hcmQKIEluZm8gZGF0YSBpcyBwbGFjZWQsIGZvbGxvd2VkIGJ5IHRoZSBzdGFjayAoZ3Jvd2luZyBkb3dud2FyZCkuCiAKZGlmZiAtLWdpdCBhL1JFQURNRS5uaW9zX0NPTkZJR19TWVNfTklPU19DUFUgYi9SRUFETUUubmlvc19DT05GSUdfU1lTX05JT1NfQ1BVCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1NDdjMzQKLS0tIC9kZXYvbnVsbAorKysgYi9SRUFETUUubmlvc19DT05GSUdfU1lTX05JT1NfQ1BVCkBAIC0wLDAgKzEsMTQwIEBACisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwlDIEYgRyBfIE4gSSBPIFMgXyBDIFAgVSBfICogICB2IHMgLiAgIE4gSSBPIFMJUyBEIEsKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworV2hlbiBldmVyIHlvdSBoYXZlIHRvIG1ha2UgYSBuZXcgTklPUyBDUFUgY29uZmlndXJhdGlvbiB5b3UgY2FuIHVzZSB0aGlzIHRhYmxlCithcyBhIHJlZmVyZW5jZSBsaXN0IHRvIHRoZSBvcmlnaW5hbCBOSU9TIFNESyBzeW1ib2xzIG1hZGUgYnkgQWx0ZXJhcyBTT1BDCitCdWlsZGVyLiBMb29rIGludG8gZXhjYWxpYnVyLmggYW5kIGV4Y2FsaWJ1ci5zIGluIHlvdXIgU0RLIHBhdGggY3B1X3Nkay9pbmMuCitTeW1ib2xzIGJlZ2lubmluZyB3aXRoIGEgJ1twdGZdOicgYXJlIGNvbWluZyBmcm9tIHlvdXIgU09QQyBzeXRlbSBkZXNjcmlwdGlvbgorKFBURiBmaWxlKSBpbiBzZWN0aW9ucyBXSVpBUkRfU0NSSVBUX0FSR1VNRU5UUyBvciBTWVNURU1fQlVJTERFUl9JTkZPLgorCitDIE8gUiBFCQkJCQlOIEkgTyBTCSAgUyBEIEsJCQlbMV0sWzddCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDT05GSUdfU1lTX05JT1NfQ1BVX0NMSwkJCQkJbmFzeXNfY2xvY2tfZnJlcQorQ09ORklHX1NZU19OSU9TX0NQVV9JQ0FDSEUJCQkJCW5hc3lzX2ljYWNoZV9zaXplCitDT05GSUdfU1lTX05JT1NfQ1BVX0RDQUNIRQkJCQkJbmFzeXNfZGNhY2hlX3NpemUKK0NPTkZJR19TWVNfTklPU19DUFVfUkVHX05VTVMJCQkJCW5hc3lzX25pb3NfbnVtX3JlZ3MKK0NPTkZJR19TWVNfTklPU19DUFVfTVVMCQkJCQlfX25pb3NfdXNlX211bHRpcGx5X18KK0NPTkZJR19TWVNfTklPU19DUFVfTVNURVAJCQkJCV9fbmlvc191c2VfbXN0ZXBfXworQ09ORklHX1NZU19OSU9TX0NQVV9TVEFDSwkJCQkJbmFzeXNfc3RhY2tfdG9wCitDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19CQVNFCQkJCQluYXN5c192ZWN0b3JfdGFibGUKK0NPTkZJR19TWVNfTklPU19DUFVfVkVDX1NJWkUJCQkJCW5hc3lzX3ZlY3Rvcl90YWJsZV9zaXplCitDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19OVU1TCitDT05GSUdfU1lTX05JT1NfQ1BVX1JTVF9WRUNUCQkJCQluYXN5c19yZXNldF9hZGRyZXNzCitDT05GSUdfU1lTX05JT1NfQ1BVX0RCR19DT1JFCQkJCQluYXN5c19kZWJ1Z19jb3JlCitDT05GSUdfU1lTX05JT1NfQ1BVX1JBTV9CQVNFCQluYV9vbmNoaXBfcmFtXzY0X2tieXRlcworQ09ORklHX1NZU19OSU9TX0NQVV9SQU1fU0laRQkJbmFfb25jaGlwX3JhbV82NF9rYnl0ZXNfc2l6ZQorQ09ORklHX1NZU19OSU9TX0NQVV9ST01fQkFTRQkJbmFfYm9vdF9tb25pdG9yX3JvbQorQ09ORklHX1NZU19OSU9TX0NQVV9ST01fU0laRQkJbmFfYm9vdF9tb25pdG9yX3JvbV9zaXplCitDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9CQVNFCQkJCQluYXN5c19vY2lfY29yZQorQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfU0laRQorQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX0JBU0UJCW5hX2V4dF9yYW0JCW5hc3lzX3Byb2dyYW1fbWVtCisJCQkJCQkJbmFzeXNfZGF0YV9tZW0KK0NPTkZJR19TWVNfTklPU19DUFVfU1JBTV9TSVpFCQluYV9leHRfcmFtX3NpemUJCW5hc3lzX3Byb2dyYW1fbWVtX3NpemUKKwkJCQkJCQluYXN5c19kYXRhX21lbV9zaXplCitDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX0JBU0UJCSBuYV9zZHJhbQorQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9TSVpFCQkgbmFfc2RyYW1fc2l6ZQorQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9CQVNFCQkgbmFfZXh0X2ZsYXNoCQluYXN5c19tYWluX2ZsYXNoCisJCQkJCQkJbmFzeXNfYW0yOWx2MDY1ZF9mbGFzaF8wCisJCQkJCQkJbmFzeXNfZmxhc2hfMAorQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFCSAgICBuYV9leHRfZmxhc2hfc2l6ZQkJbmFzeXNfbWFpbl9mbGFzaF9zaXplCisKK1QgSSBNIEUgUgkJCQlOIEkgTyBTCSAgUyBEIEsJCQkgICAgWzNdCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSX05VTVMJCQkJCW5hc3lzX3RpbWVyX2NvdW50CitDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSWzAtOV0JCQkJCW5hc3lzX3RpbWVyX1swLTldCitDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSWzAtOV1fSVJRCQkJCW5hc3lzX3RpbWVyX1swLTldX2lycQorQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUlswLTldX1BFUgkJCQlbcHRmXTpwZXJpb2QKKwkJCQkJCQlbcHRmXTpwZXJpb2RfdW5pdHMKKwkJCQkJCQlbcHRmXTptdWx0CitDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSWzAtOV1fQVIJCQkJW3B0Zl06YWx3YXlzX3J1bgorQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUlswLTldX0ZQCQkJCVtwdGZdOmZpeGVkX3BlcmlvZAorQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUlswLTldX1NTCQkJCVtwdGZdOnNuYXBzaG90CisKK1UgQSBSIFQJCQkJCU4gSSBPIFMJICBTIEQgSwkJCSAgICBbMl0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0NPTkZJR19TWVNfTklPU19DUFVfVUFSVF9OVU1TCQkJCQluYXN5c191YXJ0X2NvdW50CitDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlRbMC05XQkJCQkJbmFzeXNfdWFydF9bMC05XQorQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUWzAtOV1fSVJRCQkJCW5hc3lzX3VhcnRfWzAtOV1faXJxCitDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlRbMC05XV9CUgkJCQlbcHRmXTpiYXVkCitDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlRbMC05XV9EQgkJCQlbcHRmXTpkYXRhX2JpdHMKK0NPTkZJR19TWVNfTklPU19DUFVfVUFSVFswLTldX1NCCQkJCVtwdGZdOnN0b3BfYml0cworQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUWzAtOV1fUEEJCQkJW3B0Zl06cGFyaXR5CitDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlRbMC05XV9IUwkJCQlbcHRmXTp1c2VfY3RzX3J0cworQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUWzAtOV1fRU9QCQkJCVtwdGZdOnVzZV9lb3BfcmVnaXN0ZXIKKworUCBJIE8JCQkJCU4gSSBPIFMJICBTIEQgSwkJCSAgICBbNF0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0NPTkZJR19TWVNfTklPU19DUFVfUElPX05VTVMJCQkJCW5hc3lzX3Bpb19jb3VudAorQ09ORklHX1NZU19OSU9TX0NQVV9QSU9bMC05XQkJCQkJbmFzeXNfcGlvX1swLTldCitDT05GSUdfU1lTX05JT1NfQ1BVX1BJT1swLTldX0lSUQkJCQluYXN5c19waW9fWzAtOV1faXJxCitDT05GSUdfU1lTX05JT1NfQ1BVX1BJT1swLTldX0JJVFMJCQkJW3B0Zl06RGF0YV9XaWR0aAorQ09ORklHX1NZU19OSU9TX0NQVV9QSU9bMC05XV9UWVBFCQkJCVtwdGZdOmhhc190cmkKKwkJCQkJCQlbcHRmXTpoYXNfb3V0CisJCQkJCQkJW3B0Zl06aGFzX2luCitDT05GSUdfU1lTX05JT1NfQ1BVX1BJT1swLTldX0NBUAkJCQlbcHRmXTpjYXB0dXJlCitDT05GSUdfU1lTX05JT1NfQ1BVX1BJT1swLTldX0VER0UJCQkJW3B0Zl06ZWRnZV90eXBlCitDT05GSUdfU1lTX05JT1NfQ1BVX1BJT1swLTldX0lUWVBFCQkJCVtwdGZdOmlycV90eXBlCisKK1MgUCBJCQkJCQlOIEkgTyBTCSAgUyBEIEsJCQkgICAgWzZdCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDT05GSUdfU1lTX05JT1NfQ1BVX1NQSV9OVU1TCQkJCQluYXN5c19zcGlfY291bnQKK0NPTkZJR19TWVNfTklPU19DUFVfU1BJWzAtOV0JCQkJCW5hc3lzX3NwaV9bMC05XQorQ09ORklHX1NZU19OSU9TX0NQVV9TUElbMC05XV9JUlEJCQkJbmFzeXNfc3BpX1swLTldX2lycQorQ09ORklHX1NZU19OSU9TX0NQVV9TUElbMC05XV9CSVRTCQkJCVtwdGZdOmRhdGFiaXRzCitDT05GSUdfU1lTX05JT1NfQ1BVX1NQSVswLTldX01BCQkJCVtwdGZdOmlzbWFzdGVyCitDT05GSUdfU1lTX05JT1NfQ1BVX1NQSVswLTldX1NMTgkJCQlbcHRmXTpudW1zbGF2ZXMKK0NPTkZJR19TWVNfTklPU19DUFVfU1BJWzAtOV1fVENMSwkJCQlbcHRmXTp0YXJnZXRjbG9jaworQ09ORklHX1NZU19OSU9TX0NQVV9TUElbMC05XV9UREVMQVkJCQkJW3B0Zl06dGFyZ2V0ZGVsYXkKK0NPTkZJR19TWVNfTklPU19DUFVfU1BJWzAtOV1fKgkJCQkJW3B0Zl06KgorCitJIEQgRQkJCQkJTiBJIE8gUwkgIFMgRCBLCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDT05GSUdfU1lTX05JT1NfQ1BVX0lERV9OVU1TCQkJCQluYXN5c191c2Vyc29ja2V0X2NvdW50CitDT05GSUdfU1lTX05JT1NfQ1BVX0lERVswLTldCQkJCQluYXN5c191c2Vyc29ja2V0X1swLTldCisKK0EgUyBNIEkJCQkJCU4gSSBPIFMJICBTIEQgSwkJCSAgICBbNV0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0NPTkZJR19TWVNfTklPU19DUFVfQVNNSV9OVU1TCQkJCQluYXN5c19hc21pX2NvdW50CitDT05GSUdfU1lTX05JT1NfQ1BVX0FTTUlbMC05XQkJCQkJbmFzeXNfYXNtaV9bMC05XQorQ09ORklHX1NZU19OSU9TX0NQVV9BU01JWzAtOV1fSVJRCQkJCW5hc3lzX2FzbWlfWzAtOV1faXJxCisKK0UgdCBoIGUgciBuIGUgdAkgICggTCBBIE4gKQkJTiBJIE8gUwkgIFMgRCBLCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDT05GSUdfU1lTX05JT1NfQ1BVX0xBTl9OVU1TCitDT05GSUdfU1lTX05JT1NfQ1BVX0xBTlswLTldX0JBU0UJbmFfbGFuOTFjMTExCitDT05GSUdfU1lTX05JT1NfQ1BVX0xBTlswLTldX09GRlMJCQkJTEFOOTFDMTExX1JFR0lTVEVSU19PRkZTRVQKK0NPTkZJR19TWVNfTklPU19DUFVfTEFOWzAtOV1fSVJRCW5hX2xhbjkxYzExMV9pcnEKK0NPTkZJR19TWVNfTklPU19DUFVfTEFOWzAtOV1fQlVTVwkJCQlMQU45MUMxMTFfREFUQV9CVVNfV0lEVEgKK0NPTkZJR19TWVNfTklPU19DUFVfTEFOWzAtOV1fVFlQRQorCitzIHkgcyB0IGUgbSAgIGMgbyBtIHAgbyBzIGkgbiBnCQlOIEkgTyBTCSAgUyBEIEsKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0NPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUgkJKG5hX2xvd19wcmlvcml0eV90aW1lcjIpCitDT05GSUdfU1lTX05JT1NfQ1BVX1VTRVJfVElNRVIJCShuYV90aW1lcjEpCitDT05GSUdfU1lTX05JT1NfQ1BVX0JVVFRPTl9QSU8JCShuYV9idXR0b25fcGlvKQorQ09ORklHX1NZU19OSU9TX0NQVV9MQ0RfUElPCQkobmFfbGNkX3BpbykKK0NPTkZJR19TWVNfTklPU19DUFVfTEVEX1BJTwkJKG5hX2xlZF9waW8pCitDT05GSUdfU1lTX05JT1NfQ1BVX1NFVkVOU0VHX1BJTwkobmFfc2V2ZW5fc2VnX3BpbykKK0NPTkZJR19TWVNfTklPU19DUFVfUkVDT05GX1BJTwkJKG5hX3JlY29uZmlnX3JlcXVlc3RfcGlvKQorQ09ORklHX1NZU19OSU9TX0NQVV9DRlBSRVNFTlRfUElPCShuYV9jZl9wcmVzZW50X3BpbykKK0NPTkZJR19TWVNfTklPU19DUFVfQ0ZQT1dFUl9QSU8JKG5hX2NmX3Bvd2VyX3BpbykKK0NPTkZJR19TWVNfTklPU19DUFVfQ0ZBVEFTRUxfUElPCShuYV9jZl9hdGFfc2VsZWN0X3BpbykKK0NPTkZJR19TWVNfTklPU19DUFVfVVNFUl9TUEkJCShuYV9zcGkpCisKKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCVIgRSBGIEUgUiBFIE4gQyBFIFMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK1sxXQlodHRwOi8vd3d3LmFsdGVyYS5jb20vbGl0ZXJhdHVyZS9kcy9kc19uaW9zY3B1LnBkZgorWzJdCWh0dHA6Ly93d3cuYWx0ZXJhLmNvbS9saXRlcmF0dXJlL2RzL2RzX25pb3NfdWFydC5wZGYKK1szXQlodHRwOi8vd3d3LmFsdGVyYS5jb20vbGl0ZXJhdHVyZS9kcy9kc19uaW9zX3RpbWVyLnBkZgorWzRdCWh0dHA6Ly93d3cuYWx0ZXJhLmNvbS9saXRlcmF0dXJlL2RzL2RzX25pb3NfcGlvLnBkZgorWzVdCWh0dHA6Ly93d3cuYWx0ZXJhLmNvbS9saXRlcmF0dXJlL2RzL2RzX25pb3NfYXNtaS5wZGYKK1s2XQlodHRwOi8vd3d3LmFsdGVyYS5jb20vbGl0ZXJhdHVyZS9kcy9kc19uaW9zX3NwaS5wZGYKK1s3XQlodHRwOi8vd3d3LmFsdGVyYS5jb20vbGl0ZXJhdHVyZS9kcy9kc19sZWdhY3lfc2RyYW1fY3RybC5wZGYKKworCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitTdGVwaGFuIExpbnogPGxpbnpAbGktcHJvLm5ldD4KZGlmZiAtLWdpdCBhL2FwaS9hcGlfc3RvcmFnZS5jIGIvYXBpL2FwaV9zdG9yYWdlLmMKaW5kZXggNTY0MmRkMy4uNmZhYzk4YiAxMDA2NDQKLS0tIGEvYXBpL2FwaV9zdG9yYWdlLmMKKysrIGIvYXBpL2FwaV9zdG9yYWdlLmMKQEAgLTY3LDI4ICs2NywyOCBAQAogdm9pZCBkZXZfc3Rvcl9pbml0KHZvaWQpCiB7CiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0lERSkKLQlzcGVjc1tFTlVNX0lERV0ubWF4X2RldiA9IENGR19JREVfTUFYREVWSUNFOworCXNwZWNzW0VOVU1fSURFXS5tYXhfZGV2ID0gQ09ORklHX1NZU19JREVfTUFYREVWSUNFOwogCXNwZWNzW0VOVU1fSURFXS5lbnVtX3N0YXJ0ZWQgPSAwOwogCXNwZWNzW0VOVU1fSURFXS5lbnVtX2VuZGVkID0gMDsKIAlzcGVjc1tFTlVNX0lERV0udHlwZSA9IERFVl9UWVBfU1RPUiB8IERUX1NUT1JfSURFOwogCXNwZWNzW0VOVU1fSURFXS5uYW1lID0gImlkZSI7CiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19DTURfTU1DKQotCXNwZWNzW0VOVU1fTU1DXS5tYXhfZGV2ID0gQ0ZHX01NQ19NQVhfREVWSUNFOworCXNwZWNzW0VOVU1fTU1DXS5tYXhfZGV2ID0gQ09ORklHX1NZU19NTUNfTUFYX0RFVklDRTsKIAlzcGVjc1tFTlVNX01NQ10uZW51bV9zdGFydGVkID0gMDsKIAlzcGVjc1tFTlVNX01NQ10uZW51bV9lbmRlZCA9IDA7CiAJc3BlY3NbRU5VTV9NTUNdLnR5cGUgPSBERVZfVFlQX1NUT1IgfCBEVF9TVE9SX01NQzsKIAlzcGVjc1tFTlVNX01NQ10ubmFtZSA9ICJtbWMiOwogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX1NBVEEpCi0Jc3BlY3NbRU5VTV9TQVRBXS5tYXhfZGV2ID0gQ0ZHX1NBVEFfTUFYX0RFVklDRTsKKwlzcGVjc1tFTlVNX1NBVEFdLm1heF9kZXYgPSBDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRTsKIAlzcGVjc1tFTlVNX1NBVEFdLmVudW1fc3RhcnRlZCA9IDA7CiAJc3BlY3NbRU5VTV9TQVRBXS5lbnVtX2VuZGVkID0gMDsKIAlzcGVjc1tFTlVNX1NBVEFdLnR5cGUgPSBERVZfVFlQX1NUT1IgfCBEVF9TVE9SX1NBVEE7CiAJc3BlY3NbRU5VTV9TQVRBXS5uYW1lID0gInNhdGEiOwogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX1NDU0kpCi0Jc3BlY3NbRU5VTV9TQ1NJXS5tYXhfZGV2ID0gQ0ZHX1NDU0lfTUFYX0RFVklDRTsKKwlzcGVjc1tFTlVNX1NDU0ldLm1heF9kZXYgPSBDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRTsKIAlzcGVjc1tFTlVNX1NDU0ldLmVudW1fc3RhcnRlZCA9IDA7CiAJc3BlY3NbRU5VTV9TQ1NJXS5lbnVtX2VuZGVkID0gMDsKIAlzcGVjc1tFTlVNX1NDU0ldLnR5cGUgPSBERVZfVFlQX1NUT1IgfCBEVF9TVE9SX1NDU0k7CmRpZmYgLS1naXQgYS9ib2FyZC9BdG1hcmtUZWNobm8vc3V6YWt1L2ZsYXNoLmMgYi9ib2FyZC9BdG1hcmtUZWNobm8vc3V6YWt1L2ZsYXNoLmMKaW5kZXggNDlhMDY3My4uY2U2ZmFlMCAxMDA2NDQKLS0tIGEvYm9hcmQvQXRtYXJrVGVjaG5vL3N1emFrdS9mbGFzaC5jCisrKyBiL2JvYXJkL0F0bWFya1RlY2huby9zdXpha3UvZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQodm9pZCkKIHsKZGlmZiAtLWdpdCBhL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvRUIrTUNGLUVWMTIzLmMgYi9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL0VCK01DRi1FVjEyMy5jCmluZGV4IDM5Yzk3YjEuLmQ1MDlhOGYgMTAwNjQ0Ci0tLSBhL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvRUIrTUNGLUVWMTIzLmMKKysrIGIvYm9hcmQvQnVTL0VCK01DRi1FVjEyMy9FQitNQ0YtRVYxMjMuYwpAQCAtMzIsNyArMzIsNyBAQAogaW50IGNoZWNrYm9hcmQgKHZvaWQpCiB7CiAJcHV0cyAoIkJvYXJkOiBNQ0YtRVYxICsgTUNGLUVWMjMgKEJ1UyBFbGVrdHJvbmlrIEdtYkggJiBDby4gS0cpXG4iKTsKLSNpZiAoVEVYVF9CQVNFID09ICBDRkdfSU5UX0ZMQVNIX0JBU0UpCisjaWYgKFRFWFRfQkFTRSA9PSAgQ09ORklHX1NZU19JTlRfRkxBU0hfQkFTRSkKIAlwdXRzICgiICAgICAgIEJvb3QgZnJvbSBJbnRlcm5hbCBGTEFTSFxuIik7CiAjZW5kaWYKIApAQCAtNDUsMTAgKzQ1LDEwIEBACiAKIAlzaXplID0gMDsKIAlNQ0ZTRFJBTUNfRENSID0gTUNGU0RSQU1DX0RDUl9SVElNXzYKLQkJCXwgTUNGU0RSQU1DX0RDUl9SQyAoKDE1ICogQ0ZHX0NMSykgPj4gNCk7Ci0jaWZkZWYgQ0ZHX1NEUkFNX0JBU0UwCisJCQl8IE1DRlNEUkFNQ19EQ1JfUkMgKCgxNSAqIENPTkZJR19TWVNfQ0xLKSA+PiA0KTsKKyNpZmRlZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UwCiAKLQlNQ0ZTRFJBTUNfREFDUjAgPSBNQ0ZTRFJBTUNfREFDUl9CQVNFIChDRkdfU0RSQU1fQkFTRTApCisJTUNGU0RSQU1DX0RBQ1IwID0gTUNGU0RSQU1DX0RBQ1JfQkFTRSAoQ09ORklHX1NZU19TRFJBTV9CQVNFMCkKIAkJCXwgTUNGU0RSQU1DX0RBQ1JfQ0FTTCAoMSkKIAkJCXwgTUNGU0RSQU1DX0RBQ1JfQ0JNICgzKQogCQkJfCBNQ0ZTRFJBTUNfREFDUl9QU18xNjsKQEAgLTU3LDE3ICs1NywxNyBAQAogCiAJTUNGU0RSQU1DX0RBQ1IwIHw9IE1DRlNEUkFNQ19EQUNSX0lQOwogCi0JKih1bnNpZ25lZCBzaG9ydCAqKSAoQ0ZHX1NEUkFNX0JBU0UwKSA9IDB4QTVBNTsKKwkqKHVuc2lnbmVkIHNob3J0ICopIChDT05GSUdfU1lTX1NEUkFNX0JBU0UwKSA9IDB4QTVBNTsKIAlNQ0ZTRFJBTUNfREFDUjAgfD0gTUNGU0RSQU1DX0RBQ1JfUkU7CiAJZm9yIChpID0gMDsgaSA8IDIwMDA7IGkrKykKIAkJYXNtICgiIG5vcCIpOwogCW1iYXJfd3JpdGVMb25nIChNQ0ZTRFJBTUNfREFDUjAsCiAJCQltYmFyX3JlYWRMb25nIChNQ0ZTRFJBTUNfREFDUjApIHwgTUNGU0RSQU1DX0RBQ1JfSU1SUyk7Ci0JKih1bnNpZ25lZCBpbnQgKikgKENGR19TRFJBTV9CQVNFMCArIDB4MjIwKSA9IDB4QTVBNTsKLQlzaXplICs9IENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CisJKih1bnNpZ25lZCBpbnQgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRTAgKyAweDIyMCkgPSAweEE1QTU7CisJc2l6ZSArPSBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKICNlbmRpZgotI2lmZGVmIENGR19TRFJBTV9CQVNFMQotCU1DRlNEUkFNQ19EQUNSMSA9IE1DRlNEUkFNQ19EQUNSX0JBU0UgKENGR19TRFJBTV9CQVNFMSkKKyNpZmRlZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UxCisJTUNGU0RSQU1DX0RBQ1IxID0gTUNGU0RSQU1DX0RBQ1JfQkFTRSAoQ09ORklHX1NZU19TRFJBTV9CQVNFMSkKIAkJCXwgTUNGU0RSQU1DX0RBQ1JfQ0FTTCAoMSkKIAkJCXwgTUNGU0RSQU1DX0RBQ1JfQ0JNICgzKQogCQkJfCBNQ0ZTRFJBTUNfREFDUl9QU18xNjsKQEAgLTc2LDI1ICs3NiwyNSBAQAogCiAJTUNGU0RSQU1DX0RBQ1IxIHw9IE1DRlNEUkFNQ19EQUNSX0lQOwogCi0JKih1bnNpZ25lZCBzaG9ydCAqKSAoQ0ZHX1NEUkFNX0JBU0UxKSA9IDB4QTVBNTsKKwkqKHVuc2lnbmVkIHNob3J0ICopIChDT05GSUdfU1lTX1NEUkFNX0JBU0UxKSA9IDB4QTVBNTsKIAlNQ0ZTRFJBTUNfREFDUjEgfD0gTUNGU0RSQU1DX0RBQ1JfUkU7CiAKIAlmb3IgKGkgPSAwOyBpIDwgMjAwMDsgaSsrKQogCQlhc20gKCIgbm9wIik7CiAKIAlNQ0ZTRFJBTUNfREFDUjEgfD0gTUNGU0RSQU1DX0RBQ1JfSU1SUzsKLQkqKHVuc2lnbmVkIGludCAqKSAoQ0ZHX1NEUkFNX0JBU0UxICsgMHgyMjApID0gMHhBNUE1OwotCXNpemUgKz0gQ0ZHX1NEUkFNX1NJWkUxICogMTAyNCAqIDEwMjQ7CisJKih1bnNpZ25lZCBpbnQgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRTEgKyAweDIyMCkgPSAweEE1QTU7CisJc2l6ZSArPSBDT05GSUdfU1lTX1NEUkFNX1NJWkUxICogMTAyNCAqIDEwMjQ7CiAjZW5kaWYKIAlyZXR1cm4gc2l6ZTsKIH0KIAogCi0jaWYgZGVmaW5lZChDRkdfRFJBTV9URVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19EUkFNX1RFU1QpCiBpbnQgdGVzdGRyYW0gKHZvaWQpCiB7Ci0JdWludCAqcHN0YXJ0ID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7Ci0JdWludCAqcGVuZCA9ICh1aW50ICopIENGR19NRU1URVNUX0VORDsKKwl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CisJdWludCAqcGVuZCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9FTkQ7CiAJdWludCAqcDsKIAogCXByaW50ZigiU0RSQU0gdGVzdCBwaGFzZSAxOlxuIik7CmRpZmYgLS1naXQgYS9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL1ZDeEsuYyBiL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvVkN4Sy5jCmluZGV4IDRiNDZiN2MuLmYyZmUzNTMgMTAwNjQ0Ci0tLSBhL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvVkN4Sy5jCisrKyBiL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvVkN4Sy5jCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSA8YXNtL201MjgyLmg+CiAjaW5jbHVkZSAiVkN4Sy5oIgogCi12dV9jaGFyICp2Y3hrX2J3cyA9ICh2dV9jaGFyICopKENGR19DUzNfQkFTRSk7Cit2dV9jaGFyICp2Y3hrX2J3cyA9ICh2dV9jaGFyICopKENPTkZJR19TWVNfQ1MzX0JBU0UpOwogI2RlZmluZSBWQ1hLX0JXUyB2Y3hrX2J3cwogCiBzdGF0aWMgdWxvbmcgdmN4a19kcml2ZXI7CmRpZmYgLS1naXQgYS9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL2NmbV9mbGFzaC5jIGIvYm9hcmQvQnVTL0VCK01DRi1FVjEyMy9jZm1fZmxhc2guYwppbmRleCA5OGU1NjNmLi5mZTAzYjE3IDEwMDY0NAotLS0gYS9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL2NmbV9mbGFzaC5jCisrKyBiL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvY2ZtX2ZsYXNoLmMKQEAgLTI4LDE0ICsyOCwxNCBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfTTUyODEpIHx8IGRlZmluZWQoQ09ORklHX001MjgyKQogCi0jaWYgKENGR19DTEs+MjAwMDAwMDApCi0JI2RlZmluZSBDRk1fQ0xLICAoKChsb25nKSBDRkdfQ0xLIC8gKDQwMDAwMCAqIDgpICsgMSkgfCAweDQwKQorI2lmIChDT05GSUdfU1lTX0NMSz4yMDAwMDAwMCkKKwkjZGVmaW5lIENGTV9DTEsgICgoKGxvbmcpIENPTkZJR19TWVNfQ0xLIC8gKDQwMDAwMCAqIDgpICsgMSkgfCAweDQwKQogI2Vsc2UKLQkjZGVmaW5lIENGTV9DTEsgICgobG9uZykgQ0ZHX0NMSyAvIDQwMDAwMCArIDEpCisJI2RlZmluZSBDRk1fQ0xLICAoKGxvbmcpIENPTkZJR19TWVNfQ0xLIC8gNDAwMDAwICsgMSkKICNlbmRpZgogCiAjZGVmaW5lIGNtZl9iYWNrZG9vcl9hZGRyZXNzKGFkZHIpCSgoKGFkZHIpICYgMHgwMDA3RkZGRikgfCAweDA0MDAwMDAwIHwgXAotCQkJCQkgKENGR19NQkFSICYgMHhDMDAwMDAwMCkpCisJCQkJCSAoQ09ORklHX1NZU19NQkFSICYgMHhDMDAwMDAwMCkpCiAKIHZvaWQgY2ZtX2ZsYXNoX3ByaW50X2luZm8gKGZsYXNoX2luZm9fdCAqIGluZm8pCiB7CkBAIC02MCw4ICs2MCw4IEBACiAJTUNGQ0ZNX01DUiA9IDA7CiAJTUNGQ0ZNX0NMS0QgPSBDRk1fQ0xLOwogCWRlYnVnICgiQ0ZNIENsb2NrIGRpdmlkZXI6ICVsZCAoJWQgSHogQCAlbGQgSHopXG4iLENGTV9DTEssXAotCQlDRkdfQ0xLIC8gKDIqICgoQ0ZNX0NMSyAmIDB4M0YpKzEpICogKDErKChDRk1fQ0xLICYgMHg0MCk+PjYpKjcpKSxcCi0JCUNGR19DTEspOworCQlDT05GSUdfU1lTX0NMSyAvICgyKiAoKENGTV9DTEsgJiAweDNGKSsxKSAqICgxKygoQ0ZNX0NMSyAmIDB4NDApPj42KSo3KSksXAorCQlDT05GSUdfU1lTX0NMSyk7CiAJTUNGQ0ZNX1NBQ0MgPSAwOwogCU1DRkNGTV9EQUNDID0gMDsKIApAQCAtODYsNyArODYsNyBAQAogCXsKIAkJaWYgKHNlY3RvciA9PSAwKQogCQl7Ci0JCQlpbmZvLT5zdGFydFtzZWN0b3JdID0gQ0ZHX0lOVF9GTEFTSF9CQVNFOworCQkJaW5mby0+c3RhcnRbc2VjdG9yXSA9IENPTkZJR19TWVNfSU5UX0ZMQVNIX0JBU0U7CiAJCX0KIAkJZWxzZQogCQl7CkBAIC0xODcsNyArMTg3LDcgQEAKIAlyZXR1cm4gcmM7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogCiBpbnQgY2ZtX2ZsYXNoX3Byb3RlY3QoZmxhc2hfaW5mb190ICogaW5mbyxsb25nIHNlY3RvcixpbnQgcHJvdCkKIHsKZGlmZiAtLWdpdCBhL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvY2ZtX2ZsYXNoLmggYi9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL2NmbV9mbGFzaC5oCmluZGV4IGNjOGNkYmQuLmVkNGU3OTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvY2ZtX2ZsYXNoLmgKKysrIGIvYm9hcmQvQnVTL0VCK01DRi1FVjEyMy9jZm1fZmxhc2guaApAQCAtMzMsNyArMzMsNyBAQAogZXh0ZXJuIGludCBjZm1fZmxhc2hfZXJhc2Vfc2VjdG9yIChmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc2VjdG9yKTsKIGV4dGVybiB2b2lkIGNmbV9mbGFzaF9pbml0IChmbGFzaF9pbmZvX3QgKiBpbmZvKTsKIGV4dGVybiBpbnQgY2ZtX2ZsYXNoX3dyaXRlX2J1ZmYgKGZsYXNoX2luZm9fdCAqIGluZm8sIHVjaGFyICogc3JjLCB1bG9uZyBhZGRyLCB1bG9uZyBjbnQpOwotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiBleHRlcm4gaW50IGNmbV9mbGFzaF9wcm90ZWN0KGZsYXNoX2luZm9fdCAqIGluZm8sbG9uZyBzZWN0b3IsaW50IHByb3QpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvZmxhc2guYyBiL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvZmxhc2guYwppbmRleCBjMmExYjZmLi4zYzM2MzY3IDEwMDY0NAotLS0gYS9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL2ZsYXNoLmMKKysrIGIvYm9hcmQvQnVTL0VCK01DRi1FVjEyMy9mbGFzaC5jCkBAIC0yNywxMCArMjcsMTAgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlICAiY2ZtX2ZsYXNoLmgiCiAKLSNkZWZpbmUgUEhZU19GTEFTSF8xIENGR19GTEFTSF9CQVNFCisjZGVmaW5lIFBIWVNfRkxBU0hfMSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKICNkZWZpbmUgRkxBU0hfQkFOS19TSVpFIDB4MjAwMDAwCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiB2b2lkIGZsYXNoX3ByaW50X2luZm8gKGZsYXNoX2luZm9fdCAqIGluZm8pCiB7CkBAIC04Myw3ICs4Myw3IEBACiAJaW50IGksIGo7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJdWxvbmcgZmxhc2hiYXNlID0gMDsKIAogCQlzd2l0Y2ggKGkpCkBAIC05Myw4ICs5Myw4IEBACiAJCQkJKEFNRF9NQU5VRkFDVCAmIEZMQVNIX1ZFTkRNQVNLKSB8CiAJCQkJKEFNRF9JRF9MVjE2MEIgJiBGTEFTSF9UWVBFTUFTSyk7CiAJCQlmbGFzaF9pbmZvW2ldLnNpemUgPSBGTEFTSF9CQU5LX1NJWkU7Ci0JCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCQkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCQkJZmxhc2hiYXNlID0gUEhZU19GTEFTSF8xOwogCQkJZm9yIChqID0gMDsgaiA8IGZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50OyBqKyspIHsKIAkJCQlpZiAoaiA9PSAwKSB7CkBAIC0xMjgsOCArMTI4LDggQEAKIAl9CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSArIDB4ZmZmZiwgJmZsYXNoX2luZm9bMF0pOworCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHhmZmZmLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlyZXR1cm4gc2l6ZTsKIH0KQEAgLTE3Nyw3ICsxNzcsNyBAQAogCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCWlmIChnZXRfdGltZXIgKDApID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoMCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCU1FTV9GTEFTSF9BRERSMSA9IENNRF9SRUFEX0FSUkFZOwogCQkJc3RhdGUgPSBFUlJfVElNT1VUOwogCQl9CkBAIC0zMDMsNyArMzAzLDcgQEAKIAkJcmVzdWx0ID0gKmFkZHI7CiAKIAkJLyogY2hlY2sgdGltZW91dCAqLwotCQlpZiAoZ2V0X3RpbWVyICgwKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKDApID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJc3RhdGUgPSBFUlJfVElNT1VUOwogCQl9CiAJCWlmICghc3RhdGUgJiYgKChyZXN1bHQgJiBCSVRfUkRZX01BU0spID09IChkYXRhICYgQklUX1JEWV9NQVNLKSkpCkBAIC0zOTAsNyArMzkwLDcgQEAKIAlyZXR1cm4gcmM7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogCiBpbnQgZmxhc2hfcmVhbF9wcm90ZWN0KGZsYXNoX2luZm9fdCAqIGluZm8sbG9uZyBzZWN0b3IsaW50IHByb3QpCiB7CmRpZmYgLS1naXQgYS9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL21paS5jIGIvYm9hcmQvQnVTL0VCK01DRi1FVjEyMy9taWkuYwppbmRleCA4YWUyZWM2Li43ZjkyNTE0IDEwMDY0NAotLS0gYS9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL21paS5jCisrKyBiL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvbWlpLmMKQEAgLTM4LDE1ICszOCwxNSBAQAogewogCWlmIChzZXRjbGVhcikgewogCQlNQ0ZHUElPX1BBU1BBUiB8PSAweDBGMDA7Ci0JCU1DRkdQSU9fUEVITFBBUiA9IENGR19QRUhMUEFSOworCQlNQ0ZHUElPX1BFSExQQVIgPSBDT05GSUdfU1lTX1BFSExQQVI7CiAJfSBlbHNlIHsKIAkJTUNGR1BJT19QQVNQQVIgJj0gMHhGMEZGOwotCQlNQ0ZHUElPX1BFSExQQVIgJj0gfkNGR19QRUhMUEFSOworCQlNQ0ZHUElPX1BFSExQQVIgJj0gfkNPTkZJR19TWVNfUEVITFBBUjsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKICNpbmNsdWRlIDxtaWlwaHkuaD4KIAogLyogTWFrZSBNSUkgcmVhZC93cml0ZSBjb21tYW5kcyBmb3IgdGhlIEZFQy4gKi8KQEAgLTEzMiw5ICsxMzIsOSBAQAogCiAJcmV0dXJuIChtaWlfcmVwbHkgJiAweGZmZmYpOwkvKiBkYXRhIHJlYWQgZnJvbSBwaHkgKi8KIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgfHwgQ09ORklHX0NNRF9NSUkgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKQogaW50IG1paV9kaXNjb3Zlcl9waHkoc3RydWN0IGV0aF9kZXZpY2UgKmRldikKIHsKICNkZWZpbmUgTUFYX1BIWV9QQVNTRVMgMTEKQEAgLTE5OSw3ICsxOTksNyBAQAogCiAJcmV0dXJuIHBoeWFkZHI7CiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICovCiAKIHZvaWQgbWlpX2luaXQodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhayxhbGlhcygiX19taWlfaW5pdCIpKSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL0xFT1gvZWxwdDg2MC9lbHB0ODYwLmMgYi9ib2FyZC9MRU9YL2VscHQ4NjAvZWxwdDg2MC5jCmluZGV4IDVmNTA2MzEuLjkwNWRmOTIgMTAwNjQ0Ci0tLSBhL2JvYXJkL0xFT1gvZWxwdDg2MC9lbHB0ODYwLmMKKysrIGIvYm9hcmQvTEVPWC9lbHB0ODYwL2VscHQ4NjAuYwpAQCAtMTM4LDIzICsxMzgsMjMgQEAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCi0jZGVmaW5lIENGR19QQzQgICAgMHgwODAwCisjZGVmaW5lIENPTkZJR19TWVNfUEM0ICAgIDB4MDgwMAogCi0jZGVmaW5lIENGR19EUzEgICAgQ0ZHX1BDNAorI2RlZmluZSBDT05GSUdfU1lTX0RTMSAgICBDT05GSUdfU1lTX1BDNAogCiAvKgogICogVmVyeSBlYXJseSBib2FyZCBpbml0IGNvZGUgKGZwZ2EgYm9vdCwgZXRjLikKICAqLwogaW50IGJvYXJkX2Vhcmx5X2luaXRfZiAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCS8qCiAJICogTGlnaHQgdXAgdGhlIHJlZCBsZWQgb24gRUxQVDg2MCBwY2IgKERTMSkgKFBDREFUKQogCSAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgJj0gfkNGR19EUzE7CS8qIFBDREFUIChEUzEgPSAwKSAgICAgICAgICAgICAgICAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfkNGR19EUzE7CS8qIFBDUEFSICgwPWdlbmVyYWwgcHVycG9zZSBJL08pICAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGNkaXIgfD0gQ0ZHX0RTMTsJLyogUENESVIgKEkvTzogMD1pbnB1dCwgMT1vdXRwdXQpICovCisJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCAmPSB+Q09ORklHX1NZU19EUzE7CS8qIFBDREFUIChEUzEgPSAwKSAgICAgICAgICAgICAgICAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfkNPTkZJR19TWVNfRFMxOwkvKiBQQ1BBUiAoMD1nZW5lcmFsIHB1cnBvc2UgSS9PKSAgKi8KKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGlyIHw9IENPTkZJR19TWVNfRFMxOwkvKiBQQ0RJUiAoSS9POiAwPWlucHV0LCAxPW91dHB1dCkgKi8KIAogCXJldHVybiAoMCk7CQkvKiBzdWNjZXNzICovCiB9CkBAIC0xODEsNyArMTgxLDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemU4LCBzaXplOTsKIAlsb25nIGludCBzaXplX2IwID0gMDsKQEAgLTIwNyw3ICsyMDcsNyBAQAogCSAqIHdpdGggdHdvIFNEUkFNIGJhbmtzIG9yIGZvdXIgY3ljbGVzIGV2ZXJ5IDMxLjIgdXMgd2l0aCBvbmUKIAkgKiBiYW5rLiBJdCB3aWxsIGJlIGFkanVzdGVkIGFmdGVyIG1lbW9yeSBzaXppbmcuCiAJICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzJCS184SzsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzJCS184SzsKIAogCS8qCiAJICogVGhlIGZvbGxvd2luZyB2YWx1ZSBpcyB1c2VkIGFzIGFuIGFkZHJlc3MgKGkuZS4gb3Bjb2RlKSBmb3IKQEAgLTIyOSwxMCArMjI5LDEwIEBACiAJICogcHJlbGltaW5hcnkgYWRkcmVzc2VzIC0gdGhlc2UgaGF2ZSB0byBiZSBtb2RpZmllZCBhZnRlciB0aGUKIAkgKiBTRFJBTSBzaXplIGhhcyBiZWVuIGRldGVybWluZWQuCiAJICovCi0JbWVtY3RsLT5tZW1jX29yMSA9IENGR19PUjFfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjEgPSBDRkdfQlIxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjEgPSBDT05GSUdfU1lTX0JSMV9QUkVMSU07CiAKLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCiAKIAl1ZGVsYXkgKDIwMCk7CiAKQEAgLTI1Miw3ICsyNTIsNyBAQAogCSAqCiAJICogdHJ5IDggY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOCA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOENPTCwKKwlzaXplOCA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzhDT0wsCiAJCQkgICBTRFJBTV9CQVNFMV9QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKIAogCXVkZWxheSAoMTAwMCk7CkBAIC0yNjAsNyArMjYwLDcgQEAKIAkvKgogCSAqIHRyeSA5IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTkgPSBkcmFtX3NpemUgKENGR19NQU1SXzlDT0wsCisJc2l6ZTkgPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUl85Q09MLAogCQkJICAgU0RSQU1fQkFTRTFfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewkvKiBsZWF2ZSBjb25maWd1cmF0aW9uIGF0IDkgY29sdW1ucyAgICAgICAqLwpAQCAtMjY5LDcgKzI2OSw3IEBACiAJfSBlbHNlIHsJCS8qIGJhY2sgdG8gOCBjb2x1bW5zICAgICAgICAgICAgICAgICAgICAgICovCiAKIAkJc2l6ZV9iMCA9IHNpemU4OwotCQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0w7CisJCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0w7CiAJCXVkZWxheSAoNTAwKTsKIAkJLyogZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOCBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsgKi8KIAl9CkBAIC0yODIsMjIgKzI4MiwyMiBAQAogCSAqLwogCWlmIChzaXplX2IwIDwgMHgwMjAwMDAwMCkgewogCQkvKiByZWR1Y2UgdG8gMTUuNiB1cyAoNjIuNCB1cyAvIHF1YWQpICovCi0JCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfNEs7CisJCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzRLOwogCQl1ZGVsYXkgKDEwMDApOwogCX0KIAogCS8qCiAJICogRmluYWwgbWFwcGluZzogbWFwIGJpZ2dlciBiYW5rIGZpcnN0CiAJICovCi0JbWVtY3RsLT5tZW1jX29yMSA9ICgoLXNpemVfYjApICYgMHhGRkZGMDAwMCkgfCBDRkdfT1JfVElNSU5HX1NEUkFNOwotCW1lbWN0bC0+bWVtY19icjEgPSAoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX29yMSA9ICgoLXNpemVfYjApICYgMHhGRkZGMDAwMCkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKIAogCXsKIAkJdW5zaWduZWQgbG9uZyByZWc7CiAKIAkJLyogYWRqdXN0IHJlZnJlc2ggcmF0ZSBkZXBlbmRpbmcgb24gU0RSQU0gdHlwZSwgb25lIGJhbmsgKi8KIAkJcmVnID0gbWVtY3RsLT5tZW1jX21wdHByOwotCQlyZWcgPj49IDE7CS8qIHJlZHVjZSB0byBDRkdfTVBUUFJfMUJLXzhLIC8gXzRLICovCisJCXJlZyA+Pj0gMTsJLyogcmVkdWNlIHRvIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLIC8gXzRLICovCiAJCW1lbWN0bC0+bWVtY19tcHRwciA9IHJlZzsKIAl9CiAKQEAgLTMxOSw3ICszMTksNyBAQAogc3RhdGljIGxvbmcgaW50CiBkcmFtX3NpemUgKGxvbmcgaW50IG1hbXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLCBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpAQCAtMzI5LDIwICszMjksMjAgQEAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCi0jZGVmaW5lIENGR19QQTEgICAgIDB4NDAwMAotI2RlZmluZSBDRkdfUEEyICAgICAweDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQTEgICAgIDB4NDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BBMiAgICAgMHgyMDAwCiAKLSNkZWZpbmUgQ0ZHX0xCS3MgICAgKENGR19QQTIgfCBDRkdfUEExKQorI2RlZmluZSBDT05GSUdfU1lTX0xCS3MgICAgKENPTkZJR19TWVNfUEEyIHwgQ09ORklHX1NZU19QQTEpCiAKIHZvaWQgcmVzZXRfcGh5ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJLyoKIAkgKiBFbnN1cmUgTEJLIExYVDkwMSBldGhlcm5ldCAxICYgMiA9IDAgLi4uIGZvciBub3JtYWwgbG9vcGJhY2sgaW4gZWZmZWN0CiAJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbm8gQVVJIGxvb3BiYWNrCiAJICovCi0JaW1tci0+aW1faW9wb3J0LmlvcF9wYWRhdCAmPSB+Q0ZHX0xCS3M7CS8qIFBBREFUIChMQksgZXRoIDEmMiA9IDApICAgICAgICAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGFwYXIgJj0gfkNGR19MQktzOwkvKiBQQVBBUiAoMD1nZW5lcmFsIHB1cnBvc2UgSS9PKSAgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGlyIHw9IENGR19MQktzOwkvKiBQQURJUiAoSS9POiAwPWlucHV0LCAxPW91dHB1dCkgKi8KKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGF0ICY9IH5DT05GSUdfU1lTX0xCS3M7CS8qIFBBREFUIChMQksgZXRoIDEmMiA9IDApICAgICAgICAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGFwYXIgJj0gfkNPTkZJR19TWVNfTEJLczsJLyogUEFQQVIgKDA9Z2VuZXJhbCBwdXJwb3NlIEkvTykgICovCisJaW1tci0+aW1faW9wb3J0LmlvcF9wYWRpciB8PSBDT05GSUdfU1lTX0xCS3M7CS8qIFBBRElSIChJL086IDA9aW5wdXQsIDE9b3V0cHV0KSAqLwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvTEVPWC9lbHB0ODYwL2ZsYXNoLmMgYi9ib2FyZC9MRU9YL2VscHQ4NjAvZmxhc2guYwppbmRleCA2NjhhZWUyLi45YTc1YWFkIDEwMDY0NAotLS0gYS9ib2FyZC9MRU9YL2VscHQ4NjAvZmxhc2guYworKysgYi9ib2FyZC9MRU9YL2VscHQ4NjAvZmxhc2guYwpAQCAtMzMsNyArMzMsNyBAQAogLyoKICoqIE5vdGUgMTogSW4gdGhpcyBmaWxlLCB5b3UgaGF2ZSB0byBwcm92aWRlIHRoZSBmb2xsb3dpbmcgdmFyaWFibGU6CiAqKiAtLS0tLS0KLSoqICAgICAgICAgICAgICBmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXQorKiogICAgICAgICAgICAgIGZsYXNoX2luZm9fdCAgICBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXQogKiogJ2ZsYXNoX2luZm9fdCcgc3RydWN0dXJlIGlzIGRlZmluZWQgaW50byAnaW5jbHVkZS9mbGFzaC5oJwogKiogYW5kIGRlZmluZWQgYXMgZXh0ZXJuIGludG8gJ2NvbW1vbi9jbWRfZmxhc2guYycKICoqCkBAIC02MiwxMCArNjIsMTAgQEAKIAogCiAjaWZuZGVmCUNPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogI2VuZGlmCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBGdW5jdGlvbnMKQEAgLTgyLDEzICs4MiwxMyBAQAogdW5zaWduZWQgbG9uZwogZmxhc2hfaW5pdCAodm9pZCkKIHsKLSAgdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogICB1bnNpZ25lZCBsb25nICAgICAgICAgc2l6ZV9iMDsKICAgaW50IGk7CiAKICAgLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotICBmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpCisgIGZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpCiAgICAgewogICAgICAgZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAgICAgfQpAQCAtMTA1LDIwICsxMDUsMjAgQEAKICAgICB9CiAKICAgLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotICBtZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIE9SX0FNX01TSyk7Ci0gIG1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1BTXzggfCBCUl9WOworICBtZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiBPUl9BTV9NU0spOworICBtZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfUFNfOCB8IEJSX1Y7CiAKICAgLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotICBzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKCh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopQ0ZHX0ZMQVNIX0JBU0UsCisgIHNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSAoKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogCi0gIGZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworICBmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAgIC8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAgIGZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSBDRkdfTU9OSVRPUl9CQVNFLAotCQkgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuLTEsCisJCSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0zODMsNyArMzgzLDcgQEAKICAgYWRkciA9ICh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogICB3aGlsZSAoIChhZGRyWzBdICYgMHg4MCkgIT0gMHg4MCApCiAgICAgewotICAgICAgaWYgKCAobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCApCisgICAgICBpZiAoIChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCApCiAJewogCSAgcHJpbnRmICgiVGltZW91dFxuIik7CiAJICByZXR1cm4gKCAxICk7CkBAIC01NTYsNyArNTU2LDcgQEAKICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogICB3aGlsZSAoICgqKCh2dV9sb25nICopZGVzdCkgJiAweDAwODAwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MDAwODApICkKICAgICB7Ci0gICAgICBpZiAoIGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCApCisgICAgICBpZiAoIGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQgKQogCXsKIAkgIHJldHVybiAoMSk7CiAJfQpAQCAtNjAyLDcgKzYwMiw3IEBACiAgIHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKICAgd2hpbGUgKCAoKigodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKWRlc3QpICYgMHg4MCkgIT0gKGRhdGEgJiAweDgwKSApCiAgICAgewotICAgICAgaWYgKCBnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQgKQorICAgICAgaWYgKCBnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICkKIAl7CiAJICByZXR1cm4gKDEpOwogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvY21kX2Jvb3RhLmMgYi9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL2NtZF9ib290YS5jCmluZGV4IDQwYzk1MWQuLjk0OWFmMTggMTAwNjQ0Ci0tLSBhL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvY21kX2Jvb3RhLmMKKysrIGIvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9jbWRfYm9vdGEuYwpAQCAtMjcsNyArMjcsNyBAQAogCiBpbnQgZG9fYm9vdGEgKGNtZF90YmxfdCAqIGNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKLQl1bnNpZ25lZCBjaGFyICpsb2FkX2FkZHJlc3MgPSAodW5zaWduZWQgY2hhciAqKSBDRkdfTE9BRF9BRERSOworCXVuc2lnbmVkIGNoYXIgKmxvYWRfYWRkcmVzcyA9ICh1bnNpZ25lZCBjaGFyICopIENPTkZJR19TWVNfTE9BRF9BRERSOwogCXVuc2lnbmVkIGNoYXIgKmJhc2VfYWRkcmVzczsKIAl1bnNpZ25lZCBsb25nIG9mZnNldDsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9mbGFzaC5jIGIvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9mbGFzaC5jCmluZGV4IDQwOWI5NTUuLmE5NmQ1YmEgMTAwNjQ0Ci0tLSBhL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvZmxhc2guYworKysgYi9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL2ZsYXNoLmMKQEAgLTEsMTQgKzEsMTQgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxmbGFzaC5oPgogCi1mbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCAgICBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQodm9pZCkKIHsKICAgICBpbnQgaTsKIAotICAgIGZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspCisgICAgZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspCiAgICAgewogCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gMDsKZGlmZiAtLWdpdCBhL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvZmxhc2hfbmV3LmMgYi9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL2ZsYXNoX25ldy5jCmluZGV4IDNlZmVlN2UuLjdiN2VhMTYgMTAwNjQ0Ci0tLSBhL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvZmxhc2hfbmV3LmMKKysrIGIvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9mbGFzaF9uZXcuYwpAQCAtMzksNyArMzksNyBAQAogI2VuZGlmCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiBzdGF0aWMgdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHVsb25nIGFkZHIsIGZsYXNoX2luZm9fdCAqaW5mbyk7CiBzdGF0aWMgaW50IGZsYXNoX2dldF9vZmZzZXRzICh1bG9uZyBiYXNlLCBmbGFzaF9pbmZvX3QgKmluZm8pOwpAQCAtODAsNyArODAsNyBAQAogewogICAgIGludCBpOwogCi0gICAgZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykKKyAgICBmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykKICAgICB7CiAJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSAwOwpAQCAtMTAxLDI1ICsxMDEsMjUgQEAKIAlmbGFzaF90b194ZCgpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gMDsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gMDsKIAl9CiAKLQlERUJVR0YoIlxuIyMgR2V0IGZsYXNoIHNpemUgQCAweCUwOHhcbiIsIENGR19GTEFTSF9CQVNFKTsKKwlERUJVR0YoIlxuIyMgR2V0IGZsYXNoIHNpemUgQCAweCUwOHhcbiIsIENPTkZJR19TWVNfRkxBU0hfQkFTRSk7CiAKLQlmbGFzaF9zaXplID0gZmxhc2hfZ2V0X3NpemUgKENGR19GTEFTSF9CQVNFLCBmbGFzaF9pbmZvKTsKKwlmbGFzaF9zaXplID0gZmxhc2hfZ2V0X3NpemUgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgZmxhc2hfaW5mbyk7CiAKIAlERUJVR0YoIiMjIEZsYXNoIGJhbmsgc2l6ZTogJTA4bHhcbiIsIGZsYXNoX3NpemUpOwogCiAJaWYgKGZsYXNoX3NpemUpIHsKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFICYmIFwKLSAgICBDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfRkxBU0hfTUFYX1NJWkUKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiYgXAorICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19GTEFTSF9NQVhfU0laRQogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMjg2LDEwICsyODYsMTAgQEAKIAogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJaWYgKCEgZmxhc2hfZ2V0X29mZnNldHMgKGFkZHIsIGluZm8pKSB7CkBAIC00MTgsMTAgKzQxOCwxMCBAQAogCWxhc3QgID0gc3RhcnQ7CiAJYWRkciA9IGluZm8tPnN0YXJ0W2xfc2VjdF07CiAKLQlERUJVR0YgKCJTdGFydCBlcmFzZSB0aW1lb3V0OiAlZFxuIiwgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpOworCURFQlVHRiAoIlN0YXJ0IGVyYXNlIHRpbWVvdXQ6ICVkXG4iLCBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpOwogCiAJd2hpbGUgKChpbjgoYWRkcikgJiAweDgwKSAhPSAweDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCWZsYXNoX3Jlc2V0IChpbmZvLT5zdGFydFswXSk7CiAJCQlmbGFzaF90b19tZW0oKTsKQEAgLTU2Miw3ICs1NjIsNyBAQAogCQkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAkJd2hpbGUgKChpbjgoZGVzdCtpKSAmIDB4ODApICE9IChkYXRhX2NoW2ldICYgMHg4MCkpIHsKLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJZmxhc2hfcmVzZXQgKGFkZHIpOwogCQkJCWZsYXNoX3RvX21lbSgpOwogCQkJCXJldHVybiAoMSk7CmRpZmYgLS1naXQgYS9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL2k4MjU5LmggYi9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL2k4MjU5LmgKaW5kZXggMDVjNDA1Mi4uZWIwOGUxMyAxMDA2NDQKLS0tIGEvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9pODI1OS5oCisrKyBiL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvaTgyNTkuaApAQCAtMjEsMjAgKzIxLDIwIEBACiAgKiBNQSAwMjExMS0xMzA3IFVTQQogICovCiAKLSNkZWZpbmUgSUNXMV8xICBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQxX0lDVzEKLSNkZWZpbmUgSUNXMV8yICBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQyX0lDVzEKLSNkZWZpbmUgSUNXMl8xICBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQxX0lDVzIKLSNkZWZpbmUgSUNXMl8yICBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQyX0lDVzIKLSNkZWZpbmUgSUNXM18xICBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQxX0lDVzMKLSNkZWZpbmUgSUNXM18yICBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQyX0lDVzMKLSNkZWZpbmUgSUNXNF8xICBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQxX0lDVzQKLSNkZWZpbmUgSUNXNF8yICBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQyX0lDVzQKLSNkZWZpbmUgT0NXMV8xICBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQxX09DVzEKLSNkZWZpbmUgT0NXMV8yICBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQyX09DVzEKLSNkZWZpbmUgT0NXMl8xICBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQxX09DVzIKLSNkZWZpbmUgT0NXMl8yICBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQyX09DVzIKLSNkZWZpbmUgT0NXM18xICBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQxX09DVzMKLSNkZWZpbmUgT0NXM18yICBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQyX09DVzMKKyNkZWZpbmUgSUNXMV8xICBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMV9JQ1cxCisjZGVmaW5lIElDVzFfMiAgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgSVNBX0lOVDJfSUNXMQorI2RlZmluZSBJQ1cyXzEgIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQxX0lDVzIKKyNkZWZpbmUgSUNXMl8yICBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMl9JQ1cyCisjZGVmaW5lIElDVzNfMSAgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgSVNBX0lOVDFfSUNXMworI2RlZmluZSBJQ1czXzIgIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQyX0lDVzMKKyNkZWZpbmUgSUNXNF8xICBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMV9JQ1c0CisjZGVmaW5lIElDVzRfMiAgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgSVNBX0lOVDJfSUNXNAorI2RlZmluZSBPQ1cxXzEgIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQxX09DVzEKKyNkZWZpbmUgT0NXMV8yICBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMl9PQ1cxCisjZGVmaW5lIE9DVzJfMSAgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgSVNBX0lOVDFfT0NXMgorI2RlZmluZSBPQ1cyXzIgIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQyX09DVzIKKyNkZWZpbmUgT0NXM18xICBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMV9PQ1czCisjZGVmaW5lIE9DVzNfMiAgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgSVNBX0lOVDJfT0NXMwogCiAjZGVmaW5lIElNUl8xICAgT0NXMV8xCiAjZGVmaW5lIElNUl8yICAgT0NXMV8yCmRpZmYgLS1naXQgYS9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL2ludGVycnVwdHMuYyBiL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvaW50ZXJydXB0cy5jCmluZGV4IDg2YjQ0MTUuLmRlNDZkNmUgMTAwNjQ0Ci0tLSBhL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvaW50ZXJydXB0cy5jCisrKyBiL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvaW50ZXJydXB0cy5jCkBAIC0xMTksMTIgKzExOSwxMiBAQAogI2lmZGVmIERFQlVHCiAJcHV0cygiaW50ZXJydXB0X2luaXQ6IHNldHRpbmcgZGVjcmVtZW50ZXJfY291bnRcbiIpOwogI2VuZGlmCi0JZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsoKSAvIENGR19IWjsKKwlkZWNyZW1lbnRlcl9jb3VudCA9IGdldF90YmNsaygpIC8gQ09ORklHX1NZU19IWjsKIAogI2lmZGVmIERFQlVHCiAJcHV0cygiaW50ZXJydXB0X2luaXQ6IHNldHRpbmcgYWN0dWFsIGRlY3JlbXRlclxuIik7CiAjZW5kaWYKLQlzZXRfZGVjIChnZXRfdGJjbGsoKSAvIENGR19IWik7CisJc2V0X2RlYyAoZ2V0X3RiY2xrKCkgLyBDT05GSUdfU1lTX0haKTsKIAogI2lmZGVmIERFQlVHCiAJcHV0cygiaW50ZXJydXB0X2luaXQ6IGNsZWFyaW5nIGV4dGVybmFsIGludGVycnVwdCB0YWJsZVxuIik7CmRpZmYgLS1naXQgYS9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL3BzMmtiZC5jIGIvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9wczJrYmQuYwppbmRleCA3MjRhNDRkLi5hMjk3MDA1IDEwMDY0NAotLS0gYS9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL3BzMmtiZC5jCisrKyBiL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvcHMya2JkLmMKQEAgLTIxNCw3ICsyMTQsNyBAQAogCX0KIH0KIAotI2lmZGVmIENGR19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCisjaWZkZWYgQ09ORklHX1NZU19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCiBleHRlcm4gaW50IG92ZXJ3cml0ZV9jb25zb2xlICh2b2lkKTsKICNlbHNlCiBpbnQgb3ZlcndyaXRlX2NvbnNvbGUgKHZvaWQpCkBAIC00OTIsMjIgKzQ5MiwyMiBAQAogICovCiB1bnNpZ25lZCBjaGFyIGtiZF9yZWFkX3N0YXR1cyh2b2lkKQogewotCXJldHVybihpbjgoQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBLREJfQ09NTUFORF9QT1JUKSk7CisJcmV0dXJuKGluOChDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgKyBLREJfQ09NTUFORF9QT1JUKSk7CiB9CiAKIHVuc2lnbmVkIGNoYXIga2JkX3JlYWRfaW5wdXQodm9pZCkKIHsKLQlyZXR1cm4oaW44KENGR19JU0FfSU9fQkFTRV9BRERSRVNTICsgS0RCX0RBVEFfUE9SVCkpOworCXJldHVybihpbjgoQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgS0RCX0RBVEFfUE9SVCkpOwogfQogCiB2b2lkIGtiZF93cml0ZV9jb21tYW5kKHVuc2lnbmVkIGNoYXIgY21kKQogewotCW91dDgoQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBLREJfQ09NTUFORF9QT1JULGNtZCk7CisJb3V0OChDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgKyBLREJfQ09NTUFORF9QT1JULGNtZCk7CiB9CiAKIHZvaWQga2JkX3dyaXRlX291dHB1dCh1bnNpZ25lZCBjaGFyIGRhdGEpCiB7Ci0Jb3V0OChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIEtEQl9EQVRBX1BPUlQsIGRhdGEpOworCW91dDgoQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgS0RCX0RBVEFfUE9SVCwgZGF0YSk7CiB9CiAKIGludCBrYmRfcmVhZF9kYXRhKHZvaWQpCmRpZmYgLS1naXQgYS9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL3NlcmlhbC5jIGIvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9zZXJpYWwuYwppbmRleCBiNmY1N2M3Li44ODAzOWYzIDEwMDY0NAotLS0gYS9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL3NlcmlhbC5jCisrKyBiL2JvYXJkL01BSS9BbWlnYU9uZUczU0Uvc2VyaWFsLmMKQEAgLTYsNyArNiw3IEBACiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0jaWZuZGVmIENGR19OUzE2NTUwCisjaWZuZGVmIENPTkZJR19TWVNfTlMxNjU1MAogc3RhdGljIHVpbnQzMiBDb21Qb3J0MTsKIAogdWludDE2IFNlcmlhbEVjaG8gPSAxOwpAQCAtMTQ3LDggKzE0Nyw4IEBACiAKICNlbHNlCiAKLWNvbnN0IE5TMTY1NTBfdCBDb20wID0gKE5TMTY1NTBfdCkgQ0ZHX05TMTY1NTBfQ09NMTsKLWNvbnN0IE5TMTY1NTBfdCBDb20xID0gKE5TMTY1NTBfdCkgQ0ZHX05TMTY1NTBfQ09NMjsKK2NvbnN0IE5TMTY1NTBfdCBDb20wID0gKE5TMTY1NTBfdCkgQ09ORklHX1NZU19OUzE2NTUwX0NPTTE7Citjb25zdCBOUzE2NTUwX3QgQ29tMSA9IChOUzE2NTUwX3QpIENPTkZJR19TWVNfTlMxNjU1MF9DT00yOwogCiBpbnQgc2VyaWFsX2luaXQgKHZvaWQpCiB7CmRpZmYgLS1naXQgYS9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL3VzYl91aGNpLmMgYi9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL3VzYl91aGNpLmMKaW5kZXggMjZjZGNkZi4uNmQxMTMzZiAxMDA2NDQKLS0tIGEvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS91c2JfdWhjaS5jCisrKyBiL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvdXNiX3VoY2kuYwpAQCAtNjI3LDcgKzYyNyw3IEBACiAJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGJ1c2RldmZ1bmMsUENJX0JBU0VfQUREUkVTU180LCZ1c2JfYmFzZV9hZGRyKTsKIAlVU0JfVUhDSV9QUklOVEYoIklPIEJhc2UgQWRkcmVzcyA9IDB4JWx4XG4iLHVzYl9iYXNlX2FkZHIpOwogCXVzYl9iYXNlX2FkZHImPTB4RkZGRkZGRjA7Ci0JdXNiX2Jhc2VfYWRkcis9Q0ZHX0lTQV9JT19CQVNFX0FERFJFU1M7CisJdXNiX2Jhc2VfYWRkcis9Q09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTOwogCXJoLmRldm51bSA9IDA7CiAJdXNiX2luaXRfc2tlbCgpOwogCXJlc2V0X2hjKCk7CmRpZmYgLS1naXQgYS9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9mbGFzaC5jIGIvYm9hcmQvTWFydmVsbC9jb21tb24vZmxhc2guYwppbmRleCAzNjAzMzcyLi4yMWVhZTBlIDEwMDY0NAotLS0gYS9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9mbGFzaC5jCisrKyBiL2JvYXJkL01hcnZlbGwvY29tbW9uL2ZsYXNoLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIGludCBmbGFzaF9lcmFzZV9pbnRlbCAoZmxhc2hfaW5mb190ICogaW5mbywgaW50IHNfZmlyc3QsIGludCBzX2xhc3QpOwogaW50IHdyaXRlX3dvcmRfaW50ZWwgKGJhbmtfYWRkcl90IGFkZHIsIGJhbmtfd29yZF90IHZhbHVlKTsKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtNjgsMTQgKzY4LDE0IEBACiAJdW5zaWduZWQgbG9uZyBiYXNlLCBmbGFzaF9zaXplOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKIAkvKiB0aGUgYm9vdCBmbGFzaCAqLwotCWJhc2UgPSBDRkdfRkxBU0hfQkFTRTsKKwliYXNlID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCXNpemVfYjAgPQotCQlmbGFzaF9nZXRfc2l6ZSAoQ0ZHX0JPT1RfRkxBU0hfV0lEVEgsICh2dV9sb25nICopIGJhc2UsCisJCWZsYXNoX2dldF9zaXplIChDT05GSUdfU1lTX0JPT1RfRkxBU0hfV0lEVEgsICh2dV9sb25nICopIGJhc2UsCiAJCQkJJmZsYXNoX2luZm9bMF0pOwogCiAJcHJpbnRmICgiWyVsZGtCQCVseF0gIiwgc2l6ZV9iMCAvIDEwMjQsIGJhc2UpOwpAQCAtODQsMTEgKzg0LDExIEBACiAJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggYXQgJTA4bHg6IFNpemUgPSAweCUwOGx4ID0gJWxkIE1CXG4iLCBiYXNlLCBzaXplX2IwLCBzaXplX2IwIDw8IDIwKTsKIAl9CiAKLQliYXNlID0gbWVtb3J5R2V0RGV2aWNlQmFzZUFkZHJlc3MgKENGR19FWFRSQV9GTEFTSF9ERVZJQ0UpOworCWJhc2UgPSBtZW1vcnlHZXREZXZpY2VCYXNlQWRkcmVzcyAoQ09ORklHX1NZU19FWFRSQV9GTEFTSF9ERVZJQ0UpOwogLyoJYmFzZSA9IG1lbW9yeUdldERldmljZUJhc2VBZGRyZXNzKERFVl9DUzNfQkFTRV9BRERSKTsqLwotCWZvciAoaSA9IDE7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAxOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQl1bnNpZ25lZCBsb25nIHNpemUgPQotCQkJZmxhc2hfZ2V0X3NpemUgKENGR19FWFRSQV9GTEFTSF9XSURUSCwKKwkJCWZsYXNoX2dldF9zaXplIChDT05GSUdfU1lTX0VYVFJBX0ZMQVNIX1dJRFRILAogCQkJCQkodnVfbG9uZyAqKSBiYXNlLCAmZmxhc2hfaW5mb1tpXSk7CiAKIAkJcHJpbnRmICgiWyVsZE1CQCVseF0gIiwgc2l6ZSA+PiAyMCwgYmFzZSk7CkBAIC02MTcsNyArNjE3LDcgQEAKIAkJCQkJCQkvKiBoYXMgdGhlIHRpbWVvdXQgbGltaXQgYmVlbiByZWFjaGVkPyAqLwogCQkJCQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KQogCQkJCQkJCSAgICA+Ci0JCQkJCQkJICAgIENGR19GTEFTSF9FUkFTRV9UT1VUKQorCQkJCQkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpCiAJCQkJCQkJewogCQkJCQkJCQkvKiB0aW1lb3V0IGxpbWl0IHJlYWNoZWQgKi8KIAkJCQkJCQkJcHJpbnRmICgiVGltZSBvdXQgbGltaXQgcmVhY2hlZCBlcmFzaW5nIHNlY3RvciBhdCBhZGRyZXNzICUwOGx4XG4iLCBpbmZvLT5zdGFydFtzZWN0XSk7CkBAIC03NzYsNyArNzc2LDcgQEAKIAlhZGRyID0gKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikgKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogCS8qIGJyb2tlbiBmb3IgMngxNjogVE9ETyAqLwogCXdoaWxlICgoYWRkclswXSAmIDB4ODApICE9IDB4ODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtOTU2LDcgKzk1Niw3IEBACiAJCQkJewogCQkJCQkvKiBoYXMgdGhlIHRpbWVvdXQgbGltaXQgYmVlbiByZWFjaGVkPyAqLwogCQkJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPgotCQkJCQkgICAgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCQkJICAgIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCQkJLyogdGltZW91dCBsaW1pdCByZWFjaGVkICovCiAJCQkJCQlwcmludGYgKCJUaW1lIG91dCBsaW1pdCByZWFjaGVkIHByb2dyYW1taW5nIGFkZHJlc3MgJTA4bHggd2l0aCBkYXRhICUwOGx4XG4iLCBkZXN0LCBkYXRhKTsKIAkJCQkJCS8qIHJlc2V0IHRoZSBmbGFzaCAqLwpAQCAtMTA2NCw3ICsxMDY0LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKigodnVfbG9uZyAqKSBkZXN0KSAmIDB4MDA4MDAwODApICE9IChkYXRhICYgMHgwMDgwMDA4MCkpIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvTWFydmVsbC9jb21tb24vaTJjLmMgYi9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9pMmMuYwppbmRleCAzMmIyYjMwLi5kNDI2MDQ0IDEwMDY0NAotLS0gYS9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9pMmMuYworKysgYi9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9pMmMuYwpAQCAtNDgsNyArNDgsNyBAQAogCXVuc2lnbmVkIGludCBhY3R1YWxOID0gMCwgYWN0dWFsTSA9IDA7CiAJdW5zaWduZWQgaW50IGNvbnRyb2wsIHN0YXR1czsKIAl1bnNpZ25lZCBpbnQgbWluTWFyZ2luID0gMHhmZmZmZmZmZjsKLQl1bnNpZ25lZCBpbnQgdGNsayA9IENGR19UQ0xLOworCXVuc2lnbmVkIGludCB0Y2xrID0gQ09ORklHX1NZU19UQ0xLOwogCXVuc2lnbmVkIGludCBpMmNGcmVxID0gc3BlZWQ7CS8qIDEwMDAwMCBtYXguIEZhc3QgbW9kZSBub3Qgc3VwcG9ydGVkICovCiAKIAlEUCAocHV0cyAoImkyY19pbml0XG4iKSk7CkBAIC0zNzIsNyArMzcyLDcgQEAKIAkgIGludCBsZW4pCiB7CiAJdWNoYXIgc3RhdHVzID0gMDsKLQl1bnNpZ25lZCBpbnQgaTJjRnJlcSA9IENGR19JMkNfU1BFRUQ7CisJdW5zaWduZWQgaW50IGkyY0ZyZXEgPSBDT05GSUdfU1lTX0kyQ19TUEVFRDsKIAogCURQIChwdXRzICgiaTJjX3JlYWRcbiIpKTsKIApAQCAtNDQ3LDcgKzQ0Nyw3IEBACiAJICAgaW50IGxlbikKIHsKIAl1Y2hhciBzdGF0dXMgPSAwOwotCXVuc2lnbmVkIGludCBpMmNGcmVxID0gQ0ZHX0kyQ19TUEVFRDsKKwl1bnNpZ25lZCBpbnQgaTJjRnJlcSA9IENPTkZJR19TWVNfSTJDX1NQRUVEOwogCiAJRFAgKHB1dHMgKCJpMmNfd3JpdGVcbiIpKTsKIApAQCAtNTAwLDcgKzUwMCw3IEBACiAJdW5zaWduZWQgaW50IGkyY19zdGF0dXM7CiAjZW5kaWYKIAl1Y2hhciBzdGF0dXMgPSAwOwotCXVuc2lnbmVkIGludCBpMmNGcmVxID0gQ0ZHX0kyQ19TUEVFRDsKKwl1bnNpZ25lZCBpbnQgaTJjRnJlcSA9IENPTkZJR19TWVNfSTJDX1NQRUVEOwogCiAJRFAgKHB1dHMgKCJpMmNfcHJvYmVcbiIpKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvTWFydmVsbC9jb21tb24vaW50ZWxfZmxhc2guYyBiL2JvYXJkL01hcnZlbGwvY29tbW9uL2ludGVsX2ZsYXNoLmMKaW5kZXggZDI2Zjg4My4uNDJiM2VlMSAxMDA2NDQKLS0tIGEvYm9hcmQvTWFydmVsbC9jb21tb24vaW50ZWxfZmxhc2guYworKysgYi9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9pbnRlbF9mbGFzaC5jCkBAIC0xNTIsNyArMTUyLDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCWRvIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR2YWwgPSAxOwogCQkJZ290byBkb25lOwogCQl9CkBAIC0yMjcsNyArMjI3LDcgQEAKIAkJCWRvIHsKIAkJCQlub3cgPSBnZXRfdGltZXIgKHN0YXJ0KTsKIAotCQkJCWlmIChub3cgLSBlc3RhcnQgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChub3cgLSBlc3RhcnQgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dCAoc2VjdCAlZClcbiIsIHNlY3QpOwogCQkJCQloYWRlcnIgPSAxOwogCQkJCQlicmVhazsKZGlmZiAtLWdpdCBhL2JvYXJkL01hcnZlbGwvY29tbW9uL2ludGVsX2ZsYXNoLmggYi9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9pbnRlbF9mbGFzaC5oCmluZGV4IDY2NmE0Y2QuLmJkODk0MWUgMTAwNjQ0Ci0tLSBhL2JvYXJkL01hcnZlbGwvY29tbW9uL2ludGVsX2ZsYXNoLmgKKysrIGIvYm9hcmQvTWFydmVsbC9jb21tb24vaW50ZWxfZmxhc2guaApAQCAtNjgsNyArNjgsNyBAQAogLyogSUQgYW5kIExvY2sgQ29uZmlndXJhdGlvbiAqLwogI2RlZmluZSBDSElQX1JEX0lEX0xPQ0sJCTB4MDEJCS8qIEJpdCAwIG9mIGVhY2ggYnl0ZSAqLwogI2RlZmluZSBDSElQX1JEX0lEX01BTgkJMHg4OQkJLyogTWFudWZhY3R1cmVyIGNvZGUgPSAweDg5ICovCi0jZGVmaW5lIENISVBfUkRfSURfREVWCQlDRkdfRkxBU0hfSUQKKyNkZWZpbmUgQ0hJUF9SRF9JRF9ERVYJCUNPTkZJR19TWVNfRkxBU0hfSUQKIAogLyogZGltZW5zaW9ucyAqLwogI2RlZmluZSBDSElQX1dJRFRICQkyCQkvKiBjaGlwcyBhcmUgaW4gMTYgYml0IG1vZGUgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL01hcnZlbGwvY29tbW9uL21pc2MuUyBiL2JvYXJkL01hcnZlbGwvY29tbW9uL21pc2MuUwppbmRleCA0MWMzYTk1Li5iM2EwODk4IDEwMDY0NAotLS0gYS9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9taXNjLlMKKysrIGIvYm9hcmQvTWFydmVsbC9jb21tb24vbWlzYy5TCkBAIC0xNiw3ICsxNiw3IEBACiBib2FyZF9yZWxvY2F0ZV9yb206CiAJbWZscglyNwogCS8qIHVwZGF0ZSB0aGUgbG9jYXRpb24gb2YgdGhlIEdUIHJlZ2lzdGVycyAqLwotCWxpcwlyMTEsIENGR19HVF9SRUdTQGgKKwlsaXMJcjExLCBDT05GSUdfU1lTX0dUX1JFR1NAaAogCS8qIGlmIHdlJ3JlIHVzaW5nIEVDQywgd2UgbXVzdCB1c2UgdGhlIERNQSBlbmdpbmUgdG8gY29weSBvdXJzZWx2ZXMgKi8KIAlibAlzdGFydF9pZG1hX3RyYW5zZmVyXzAKIAlibAl3YWl0X2Zvcl9pZG1hXzAKQEAgLTI5LDEyICsyOSwxMiBAQAogYm9hcmRfaW5pdF9lY2M6CiAJbWZscglyNwogCS8qIE5PVEU6IHIxMCBzdGlsbCBjb250YWlucyB0aGUgbG9jYXRpb24gd2UndmUgYmVlbiByZWxvY2F0ZWQgdG8KLQkgKiB3aGljaCBoYXBwZW5zIHRvIGJlIFRPUF9PRl9SQU0gLSBDRkdfTU9OSVRPUl9MRU4gKi8KKwkgKiB3aGljaCBoYXBwZW5zIHRvIGJlIFRPUF9PRl9SQU0gLSBDT05GSUdfU1lTX01PTklUT1JfTEVOICovCiAKIAkvKiBub3cgdGhhdCB3ZSdyZSBydW5uaW5nIGZyb20gcmFtLCBpbml0IHRoZSByZXN0IG9mIG1haW4gbWVtb3J5CiAJICogZm9yIEVDQyB1c2UgKi8KLQlsaXMJcjgsIENGR19NT05JVE9SX0xFTkBoCi0Jb3JpCXI4LCByOCwgQ0ZHX01PTklUT1JfTEVOQGwKKwlsaXMJcjgsIENPTkZJR19TWVNfTU9OSVRPUl9MRU5AaAorCW9yaQlyOCwgcjgsIENPTkZJR19TWVNfTU9OSVRPUl9MRU5AbAogCiAJZGl2dwlyMywgcjEwLCByOAogCkBAIC0xMjAsMTUgKzEyMCwxNSBAQAogCWJscgogI2VuZGlmCiAKLSNpZmRlZiBDRkdfQk9BUkRfQVNNX0lOSVQKKyNpZmRlZiBDT05GSUdfU1lTX0JPQVJEX0FTTV9JTklUCiAJLyogTk9URTogdHJhc2hlcyByMy1yNyAqLwogCS5nbG9ibCBib2FyZF9hc21faW5pdAogYm9hcmRfYXNtX2luaXQ6CiAJLyoganVzdCBtb3ZlIHRoZSBHVCByZWdpc3RlcnMgdG8gd2hlcmUgdGhleSBiZWxvbmcgKi8KLQlsaXMJcjMsIENGR19ERkxfR1RfUkVHU0BoCi0Jb3JpCXIzLCByMywgQ0ZHX0RGTF9HVF9SRUdTQGwKLQlsaXMJcjQsIENGR19HVF9SRUdTQGgKLQlvcmkJcjQsIHI0LCBDRkdfR1RfUkVHU0BsCisJbGlzCXIzLCBDT05GSUdfU1lTX0RGTF9HVF9SRUdTQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0RGTF9HVF9SRUdTQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfR1RfUkVHU0BoCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19HVF9SRUdTQGwKIAlsaQlyNSwgSU5URVJOQUxfU1BBQ0VfREVDT0RFCiAKIAkvKiB0ZXN0IHRvIHNlZSBpZiB3ZSd2ZSBhbHJlYWR5IG1vdmVkICovCmRpZmYgLS1naXQgYS9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9uczE2NTUwLmMgYi9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9uczE2NTUwLmMKaW5kZXggNDc1NDQ1Yi4uN2ZiZjI4YSAxMDA2NDQKLS0tIGEvYm9hcmQvTWFydmVsbC9jb21tb24vbnMxNjU1MC5jCisrKyBiL2JvYXJkL01hcnZlbGwvY29tbW9uL25zMTY1NTAuYwpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDT00xIE5TMTY1NTAgc3VwcG9ydAogICogb3JpZ2luYWxseSBmcm9tIGxpbnV4IHNvdXJjZSAoYXJjaC9wcGMvYm9vdC9uczE2NTUwLmMpCi0gKiBtb2RpZmllZCB0byB1c2UgQ0ZHX0lTQV9NRU0gYW5kIG5ldyBkZWZpbmVzCisgKiBtb2RpZmllZCB0byB1c2UgQ09ORklHX1NZU19JU0FfTUVNIGFuZCBuZXcgZGVmaW5lcwogICoKICAqIGZ1cnRoZXIgbW9kaWZpZWQgYnkgSm9zaCBIdWJlciA8aHViZXJAbWNseC5jb20+IHRvIHN1cHBvcnQKICAqIHRoZSBEVUFSVCBvbiB0aGUgR2FsaWxlbyBFdmFsIGJvYXJkLiAoZGI2NDM2MCkKQEAgLTEzLDggKzEzLDggQEAKICNpZmRlZiBaVU1BX05UTAogLyogbm8gMTY1NTAgZGV2aWNlICovCiAjZWxzZQotY29uc3QgTlMxNjU1MF90IENPTV9QT1JUU1tdID0geyAoTlMxNjU1MF90KSAoQ0ZHX0RVQVJUX0lPICsgMCksCi0JKE5TMTY1NTBfdCkgKENGR19EVUFSVF9JTyArIDB4MjApCitjb25zdCBOUzE2NTUwX3QgQ09NX1BPUlRTW10gPSB7IChOUzE2NTUwX3QpIChDT05GSUdfU1lTX0RVQVJUX0lPICsgMCksCisJKE5TMTY1NTBfdCkgKENPTkZJR19TWVNfRFVBUlRfSU8gKyAweDIwKQogfTsKIAogdm9sYXRpbGUgc3RydWN0IE5TMTY1NTAgKk5TMTY1NTBfaW5pdCAoaW50IGNoYW4sIGludCBiYXVkX2Rpdmlzb3IpCmRpZmYgLS1naXQgYS9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9uczE2NTUwLmggYi9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9uczE2NTUwLmgKaW5kZXggZjJlZDJhYi4uYjk2OTFhYiAxMDA2NDQKLS0tIGEvYm9hcmQvTWFydmVsbC9jb21tb24vbnMxNjU1MC5oCisrKyBiL2JvYXJkL01hcnZlbGwvY29tbW9uL25zMTY1NTAuaApAQCAtMiw3ICsyLDcgQEAKICAqIE5TMTY1NTAgU2VyaWFsIFBvcnQKICAqIG9yaWdpbmFsbHkgZnJvbSBsaW51eCBzb3VyY2UgKGFyY2gvcHBjL2Jvb3QvbnMxNjU1MC5oKQogICogbW9kaWZpZWQgc2xpZ2h0bHkgdG8KLSAqIGhhdmUgYWRkcmVzc2VzIGFzIG9mZnNldHMgZnJvbSBDRkdfSVNBX0JBU0UKKyAqIGhhdmUgYWRkcmVzc2VzIGFzIG9mZnNldHMgZnJvbSBDT05GSUdfU1lTX0lTQV9CQVNFCiAgKiBhZGRlZCBhIGZldyBtb3JlIGRlZmluaXRpb25zCiAgKiBhZGRlZCBwcm90b3R5cGVzIGZvciBuczE2NTUwLmMKICAqIHJlZHVjZWQgbm8gb2YgY29tIHBvcnRzIHRvIDIKZGlmZiAtLWdpdCBhL2JvYXJkL01hcnZlbGwvY29tbW9uL3NlcmlhbC5jIGIvYm9hcmQvTWFydmVsbC9jb21tb24vc2VyaWFsLmMKaW5kZXggMDFlZmJlYS4uM2U3ZjQwNiAxMDA2NDQKLS0tIGEvYm9hcmQvTWFydmVsbC9jb21tb24vc2VyaWFsLmMKKysrIGIvYm9hcmQvTWFydmVsbC9jb21tb24vc2VyaWFsLmMKQEAgLTUyLDE3ICs1MiwxNyBAQAogCiBpbnQgc2VyaWFsX2luaXQgKHZvaWQpCiB7Ci0jaWYgKGRlZmluZWQgQ0ZHX0lOSVRfQ0hBTjEpIHx8IChkZWZpbmVkIENGR19JTklUX0NIQU4yKQorI2lmIChkZWZpbmVkIENPTkZJR19TWVNfSU5JVF9DSEFOMSkgfHwgKGRlZmluZWQgQ09ORklHX1NZU19JTklUX0NIQU4yKQogCWludCBjbG9ja19kaXZpc29yID0gMjMwNDAwIC8gZ2QtPmJhdWRyYXRlOwogI2VuZGlmCiAKIAltcHNjX2luaXQgKGdkLT5iYXVkcmF0ZSk7CiAKIAkvKiBpbml0IHRoZSBEVUFSVCBjaGFucyBzbyB0aGF0IEtHREIgaW4gdGhlIGtlcm5lbCBjYW4gdXNlIHRoZW0gKi8KLSNpZmRlZiBDRkdfSU5JVF9DSEFOMQorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMQogCU5TMTY1NTBfcmVpbml0IChDT01fUE9SVFNbMF0sIGNsb2NrX2Rpdmlzb3IpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0lOSVRfQ0hBTjIKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfQ0hBTjIKIAlOUzE2NTUwX3JlaW5pdCAoQ09NX1BPUlRTWzFdLCBjbG9ja19kaXZpc29yKTsKICNlbmRpZgogCXJldHVybiAoMCk7CkBAIC05NywxMCArOTcsMTAgQEAKIHsKIAlpbnQgY2xvY2tfZGl2aXNvciA9IDIzMDQwMCAvIGdkLT5iYXVkcmF0ZTsKIAotI2lmZGVmIENGR19JTklUX0NIQU4xCisjaWZkZWYgQ09ORklHX1NZU19JTklUX0NIQU4xCiAJKHZvaWQpIE5TMTY1NTBfaW5pdCAoMCwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKLSNpZmRlZiBDRkdfSU5JVF9DSEFOMgorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMgogCSh2b2lkKSBOUzE2NTUwX2luaXQgKDEsIGNsb2NrX2Rpdmlzb3IpOwogI2VuZGlmCiAJcmV0dXJuICgwKTsKQEAgLTEwOSwyOSArMTA5LDI5IEBACiB2b2lkIHNlcmlhbF9wdXRjIChjb25zdCBjaGFyIGMpCiB7CiAJaWYgKGMgPT0gJ1xuJykKLQkJTlMxNjU1MF9wdXRjIChDT01fUE9SVFNbQ0ZHX0RVQVJUX0NIQU5dLCAnXHInKTsKKwkJTlMxNjU1MF9wdXRjIChDT01fUE9SVFNbQ09ORklHX1NZU19EVUFSVF9DSEFOXSwgJ1xyJyk7CiAKLQlOUzE2NTUwX3B1dGMgKENPTV9QT1JUU1tDRkdfRFVBUlRfQ0hBTl0sIGMpOworCU5TMTY1NTBfcHV0YyAoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0sIGMpOwogfQogCiBpbnQgc2VyaWFsX2dldGMgKHZvaWQpCiB7Ci0JcmV0dXJuIE5TMTY1NTBfZ2V0YyAoQ09NX1BPUlRTW0NGR19EVUFSVF9DSEFOXSk7CisJcmV0dXJuIE5TMTY1NTBfZ2V0YyAoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0pOwogfQogCiBpbnQgc2VyaWFsX3RzdGMgKHZvaWQpCiB7Ci0JcmV0dXJuIE5TMTY1NTBfdHN0YyAoQ09NX1BPUlRTW0NGR19EVUFSVF9DSEFOXSk7CisJcmV0dXJuIE5TMTY1NTBfdHN0YyAoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0pOwogfQogCiB2b2lkIHNlcmlhbF9zZXRicmcgKHZvaWQpCiB7CiAJaW50IGNsb2NrX2Rpdmlzb3IgPSAyMzA0MDAgLyBnZC0+YmF1ZHJhdGU7CiAKLSNpZmRlZiBDRkdfSU5JVF9DSEFOMQorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMQogCU5TMTY1NTBfcmVpbml0IChDT01fUE9SVFNbMF0sIGNsb2NrX2Rpdmlzb3IpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0lOSVRfQ0hBTjIKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfQ0hBTjIKIAlOUzE2NTUwX3JlaW5pdCAoQ09NX1BPUlRTWzFdLCBjbG9ja19kaXZpc29yKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvTWFydmVsbC9kYjY0MzYwL2RiNjQzNjAuYyBiL2JvYXJkL01hcnZlbGwvZGI2NDM2MC9kYjY0MzYwLmMKaW5kZXggYzAzZDAzZC4uMzViNjk1ZSAxMDA2NDQKLS0tIGEvYm9hcmQvTWFydmVsbC9kYjY0MzYwL2RiNjQzNjAuYworKysgYi9ib2FyZC9NYXJ2ZWxsL2RiNjQzNjAvZGI2NDM2MC5jCkBAIC01NSw3ICs1NSw3IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIC8qIHRoaXMgaXMgdGhlIGN1cnJlbnQgR1QgcmVnaXN0ZXIgc3BhY2UgbG9jYXRpb24gKi8KLS8qIGl0IHN0YXJ0cyBhdCBDRkdfREZMX0dUX1JFR1MgYnV0IG1vdmVzIGxhdGVyIHRvIENGR19HVF9SRUdTICovCisvKiBpdCBzdGFydHMgYXQgQ09ORklHX1NZU19ERkxfR1RfUkVHUyBidXQgbW92ZXMgbGF0ZXIgdG8gQ09ORklHX1NZU19HVF9SRUdTICovCiAKIC8qIFVuZm9ydHVuYXRlbHksIHdlIGNhbnQgY2hhbmdlIGl0IHdoaWxlIHdlIGFyZSBpbiBmbGFzaCwgc28gd2UgaW5pdGlhbGl6ZSBpdAogICogdG8gdGhlICJmaW5hbCIgdmFsdWUuIFRoaXMgbWVhbnMgdGhhdCBhbnkgZGVidWdfbGVkIGNhbGxzIGJlZm9yZQpAQCAtNjQsNyArNjQsNyBAQAogICovCiAKIHZvaWQgYm9hcmRfcHJlYm9vdG1faW5pdCAodm9pZCk7Ci11bnNpZ25lZCBpbnQgSU5URVJOQUxfUkVHX0JBU0VfQUREUiA9IENGR19HVF9SRUdTOwordW5zaWduZWQgaW50IElOVEVSTkFMX1JFR19CQVNFX0FERFIgPSBDT05GSUdfU1lTX0dUX1JFR1M7CiBpbnQgZGlzcGxheV9tZW1fbWFwICh2b2lkKTsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtMTI3LDcgKzEyNyw3IEBACiAKIAkJR1RfUkVHX1dSSVRFIChQQ0lfMF9DT05GSUdfQUREUiwgQklUMzEgfCB2YWwpOwogCQlHVF9SRUdfV1JJVEUgKFBDSV8wX0NPTkZJR19EQVRBX1ZJUlRVQUxfUkVHLAotCQkJICAgICAgKHN0YXQgJiAweGZmZmYwMDAwKSB8IENGR19QQ0lfSURTRUwpOworCQkJICAgICAgKHN0YXQgJiAweGZmZmYwMDAwKSB8IENPTkZJR19TWVNfUENJX0lEU0VMKTsKIAogCX0KIAlpZiAoKEdUUkVHUkVBRCAoUENJXzFfTU9ERSkgJiAoQklUNCB8IEJJVDUpKSAhPSAwKSB7CS8qaWYgIFBDSS1YICovCkBAIC0xMzYsNyArMTM2LDcgQEAKIAogCQlHVF9SRUdfV1JJVEUgKFBDSV8xX0NPTkZJR19BRERSLCBCSVQzMSB8IHZhbCk7CiAJCUdUX1JFR19XUklURSAoUENJXzFfQ09ORklHX0RBVEFfVklSVFVBTF9SRUcsCi0JCQkgICAgICAoc3RhdCAmIDB4ZmZmZjAwMDApIHwgQ0ZHX1BDSV9JRFNFTCk7CisJCQkgICAgICAoc3RhdCAmIDB4ZmZmZjAwMDApIHwgQ09ORklHX1NZU19QQ0lfSURTRUwpOwogCX0KIAogCS8qIEVuYWJsZSBtYXN0ZXIgKi8KQEAgLTE1NCwyMSArMTU0LDIxIEBACiAJLyogcm9uZW4tIGFkZCB3cml0ZSB0byBwY2kgcmVtYXAgcmVnaXN0ZXJzIGZvciA2NDQ2MC4KIAkgICBpbiA2NDM2MCB3aGVuIHdyaXRpbmcgdG8gcGNpIGJhc2UgZ28gYW5kIG92ZXJpZGUgcmVtYXAgYXV0b21hdGljYWx5LAogCSAgIGluIDY0NDYwIGl0IGRvZXNuJ3QgKi8KLQlHVF9SRUdfV1JJVEUgKFBDSV8wX0lPX0JBU0VfQUREUiwgQ0ZHX1BDSTBfSU9fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMElfT19BRERSRVNTX1JFTUFQLCBDRkdfUENJMF9JT19CQVNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8wX0lPX1NJWkUsIChDRkdfUENJMF9JT19TSVpFIC0gMSkgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBfSU9fQkFTRV9BRERSLCBDT05GSUdfU1lTX1BDSTBfSU9fQkFTRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMElfT19BRERSRVNTX1JFTUFQLCBDT05GSUdfU1lTX1BDSTBfSU9fQkFTRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMF9JT19TSVpFLCAoQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUgLSAxKSA+PiAxNik7CiAKLQlHVF9SRUdfV1JJVEUgKFBDSV8wX01FTU9SWTBfQkFTRV9BRERSLCBDRkdfUENJMF9NRU1fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfME1FTU9SWTBfQUREUkVTU19SRU1BUCwgQ0ZHX1BDSTBfTUVNX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzBfTUVNT1JZMF9TSVpFLCAoQ0ZHX1BDSTBfTUVNX1NJWkUgLSAxKSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMF9NRU1PUlkwX0JBU0VfQUREUiwgQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8wTUVNT1JZMF9BRERSRVNTX1JFTUFQLCBDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBfTUVNT1JZMF9TSVpFLCAoQ09ORklHX1NZU19QQ0kwX01FTV9TSVpFIC0gMSkgPj4gMTYpOwogCi0JR1RfUkVHX1dSSVRFIChQQ0lfMV9JT19CQVNFX0FERFIsIENGR19QQ0kxX0lPX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzFJX09fQUREUkVTU19SRU1BUCwgQ0ZHX1BDSTFfSU9fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMV9JT19TSVpFLCAoQ0ZHX1BDSTFfSU9fU0laRSAtIDEpID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xX0lPX0JBU0VfQUREUiwgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFJX09fQUREUkVTU19SRU1BUCwgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFfSU9fU0laRSwgKENPTkZJR19TWVNfUENJMV9JT19TSVpFIC0gMSkgPj4gMTYpOwogCi0JR1RfUkVHX1dSSVRFIChQQ0lfMV9NRU1PUlkwX0JBU0VfQUREUiwgQ0ZHX1BDSTFfTUVNX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzFNRU1PUlkwX0FERFJFU1NfUkVNQVAsIENGR19QQ0kxX01FTV9CQVNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8xX01FTU9SWTBfU0laRSwgKENGR19QQ0kxX01FTV9TSVpFIC0gMSkgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFfTUVNT1JZMF9CQVNFX0FERFIsIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMU1FTU9SWTBfQUREUkVTU19SRU1BUCwgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xX01FTU9SWTBfU0laRSwgKENPTkZJR19TWVNfUENJMV9NRU1fU0laRSAtIDEpID4+IDE2KTsKIAogCS8qIFBDSSBpbnRlcmZhY2Ugc2V0dGluZ3MgKi8KIAkvKiBUaW1lb3V0IHNldCB0byByZXRyeSBmb3JldmVyICovCkBAIC0xODQsNyArMTg0LDcgQEAKIAlmb3IgKHN0YXQgPSAwOyBzdGF0IDw9IFBDSV9IT1NUMTsgc3RhdCsrKQogCQlwY2lXcml0ZUNvbmZpZ1JlZyAoc3RhdCwKIAkJCQkgICBQQ0lfSU5URVJOQUxfUkVHSVNURVJTX01FTU9SWV9NQVBQRURfQkFTRV9BRERSRVNTLAotCQkJCSAgIFNFTEYsIENGR19HVF9SRUdTKTsKKwkJCQkgICBTRUxGLCBDT05GSUdfU1lTX0dUX1JFR1MpOwogI2VuZGlmCiAKIH0KQEAgLTIwMCw3ICsyMDAsNyBAQAogCXRtcCA9IEdUUkVHUkVBRCAoQ1BVX0NPTkZJR1VSQVRJT04pOwogCiAJLyogc2V0IHRoZSBTSU5HTEVfQ1BVIGJpdCAgc2VlIE1WNjQzNjAgUC4zOTkgKi8KLSNpZm5kZWYgQ0ZHX0dUX0RVQUxfQ1BVCQkvKiBTSU5HTEVfQ1BVIHNlZW1zIHRvIGNhdXNlIEpUQUcgcHJvYmxlbXMgKi8KKyNpZm5kZWYgQ09ORklHX1NZU19HVF9EVUFMX0NQVQkJLyogU0lOR0xFX0NQVSBzZWVtcyB0byBjYXVzZSBKVEFHIHByb2JsZW1zICovCiAJdG1wIHw9IENQVV9DT05GX1NJTkdMRV9DUFU7CiAjZW5kaWYKIApAQCAtMjUxLDcgKzI1MSw3IEBACiAJICogaXQgbGFzdCB0aW1lLiAoaHViZXIpCiAJICovCiAKLQlteV9yZW1hcF9ndF9yZWdzIChDRkdfREZMX0dUX1JFR1MsIENGR19HVF9SRUdTKTsKKwlteV9yZW1hcF9ndF9yZWdzIChDT05GSUdfU1lTX0RGTF9HVF9SRUdTLCBDT05GSUdfU1lTX0dUX1JFR1MpOwogCiAJLyogTm8gUENJIGluIGZpcnN0IHJlbGVhc2Ugb2YgUG9ydCBUb19kbzogZW5hYmxlIGl0LiAqLwogI2lmZGVmIENPTkZJR19QQ0kKQEAgLTI5Nyw1NiArMjk3LDU2IEBACiAJICogb24tYm9hcmQgc3JhbSBvbiB0aGUgZXZhbCBib2FyZCwgYW5kIHVwZGF0ZXMgdGhlIGNvcnJlY3QKIAkgKiByZWdpc3RlcnMgdG8gYm9vdCBmcm9tIHRoZSBzcmFtLiAoZGV2aWNlMCkKIAkgKi8KLQlpZiAobWVtb3J5R2V0RGV2aWNlQmFzZUFkZHJlc3MgKERFVklDRTApID09IENGR19ERkxfQk9PVENTX0JBU0UpCisJaWYgKG1lbW9yeUdldERldmljZUJhc2VBZGRyZXNzIChERVZJQ0UwKSA9PSBDT05GSUdfU1lTX0RGTF9CT09UQ1NfQkFTRSkKIAkJc3JhbV9ib290ID0gMTsKIAlpZiAoIXNyYW1fYm9vdCkKLQkJbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTAsIENGR19ERVYwX1NQQUNFLCBDRkdfREVWMF9TSVpFKTsKKwkJbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTAsIENPTkZJR19TWVNfREVWMF9TUEFDRSwgQ09ORklHX1NZU19ERVYwX1NJWkUpOwogCi0JbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTEsIENGR19ERVYxX1NQQUNFLCBDRkdfREVWMV9TSVpFKTsKLQltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMiwgQ0ZHX0RFVjJfU1BBQ0UsIENGR19ERVYyX1NJWkUpOwotCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UzLCBDRkdfREVWM19TUEFDRSwgQ0ZHX0RFVjNfU0laRSk7CisJbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTEsIENPTkZJR19TWVNfREVWMV9TUEFDRSwgQ09ORklHX1NZU19ERVYxX1NJWkUpOworCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UyLCBDT05GSUdfU1lTX0RFVjJfU1BBQ0UsIENPTkZJR19TWVNfREVWMl9TSVpFKTsKKwltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMywgQ09ORklHX1NZU19ERVYzX1NQQUNFLCBDT05GSUdfU1lTX0RFVjNfU0laRSk7CiAKIAogCS8qIGNvbmZpZ3VyZSBkZXZpY2UgdGltaW5nICovCi0jaWZkZWYgQ0ZHX0RFVjBfUEFSCQkvKiBzZXQgcG9ydCBwYXJhbWV0ZXJzIGZvciBTUkFNIGRldmljZSBtb2R1bGUgYWNjZXNzICovCisjaWZkZWYgQ09ORklHX1NZU19ERVYwX1BBUgkJLyogc2V0IHBvcnQgcGFyYW1ldGVycyBmb3IgU1JBTSBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLwogCWlmICghc3JhbV9ib290KQotCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LMFBBUkFNRVRFUlMsIENGR19ERVYwX1BBUik7CisJCUdUX1JFR19XUklURSAoREVWSUNFX0JBTkswUEFSQU1FVEVSUywgQ09ORklHX1NZU19ERVYwX1BBUik7CiAjZW5kaWYKIAotI2lmZGVmIENGR19ERVYxX1BBUgkJLyogc2V0IHBvcnQgcGFyYW1ldGVycyBmb3IgUlRDIGRldmljZSBtb2R1bGUgYWNjZXNzICovCi0JR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzFQQVJBTUVURVJTLCBDRkdfREVWMV9QQVIpOworI2lmZGVmIENPTkZJR19TWVNfREVWMV9QQVIJCS8qIHNldCBwb3J0IHBhcmFtZXRlcnMgZm9yIFJUQyBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLworCUdUX1JFR19XUklURSAoREVWSUNFX0JBTksxUEFSQU1FVEVSUywgQ09ORklHX1NZU19ERVYxX1BBUik7CiAjZW5kaWYKLSNpZmRlZiBDRkdfREVWMl9QQVIJCS8qIHNldCBwb3J0IHBhcmFtZXRlcnMgZm9yIERVQVJUIGRldmljZSBtb2R1bGUgYWNjZXNzICovCi0JR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzJQQVJBTUVURVJTLCBDRkdfREVWMl9QQVIpOworI2lmZGVmIENPTkZJR19TWVNfREVWMl9QQVIJCS8qIHNldCBwb3J0IHBhcmFtZXRlcnMgZm9yIERVQVJUIGRldmljZSBtb2R1bGUgYWNjZXNzICovCisJR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzJQQVJBTUVURVJTLCBDT05GSUdfU1lTX0RFVjJfUEFSKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHXzMyQklUX0JPT1RfUEFSCS8qIHNldCBwb3J0IHBhcmFtZXRlcnMgZm9yIEZsYXNoIGRldmljZSBtb2R1bGUgYWNjZXNzICovCisjaWZkZWYgQ09ORklHX1NZU18zMkJJVF9CT09UX1BBUgkvKiBzZXQgcG9ydCBwYXJhbWV0ZXJzIGZvciBGbGFzaCBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLwogCS8qIGRldGVjdCBpZiB3ZSBhcmUgYm9vdGluZyBmcm9tIHRoZSAzMiBiaXQgZmxhc2ggKi8KIAlpZiAoR1RSRUdSRUFEIChERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMpICYgKDB4MyA8PCAyMCkpIHsKIAkJLyogMzIgYml0IGJvb3QgZmxhc2ggKi8KLQkJR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzNQQVJBTUVURVJTLCBDRkdfOEJJVF9CT09UX1BBUik7CisJCUdUX1JFR19XUklURSAoREVWSUNFX0JBTkszUEFSQU1FVEVSUywgQ09ORklHX1NZU184QklUX0JPT1RfUEFSKTsKIAkJR1RfUkVHX1dSSVRFIChERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMsCi0JCQkgICAgICBDRkdfMzJCSVRfQk9PVF9QQVIpOworCQkJICAgICAgQ09ORklHX1NZU18zMkJJVF9CT09UX1BBUik7CiAJfSBlbHNlIHsKIAkJLyogOCBiaXQgYm9vdCBmbGFzaCAqLwotCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LM1BBUkFNRVRFUlMsIENGR18zMkJJVF9CT09UX1BBUik7Ci0JCUdUX1JFR19XUklURSAoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDRkdfOEJJVF9CT09UX1BBUik7CisJCUdUX1JFR19XUklURSAoREVWSUNFX0JBTkszUEFSQU1FVEVSUywgQ09ORklHX1NZU18zMkJJVF9CT09UX1BBUik7CisJCUdUX1JFR19XUklURSAoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDT05GSUdfU1lTXzhCSVRfQk9PVF9QQVIpOwogCX0KICNlbHNlCiAJLyogOCBiaXQgYm9vdCBmbGFzaCBvbmx5ICovCi0vKglHVF9SRUdfV1JJVEUoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDRkdfOEJJVF9CT09UX1BBUik7Ki8KKy8qCUdUX1JFR19XUklURShERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMsIENPTkZJR19TWVNfOEJJVF9CT09UX1BBUik7Ki8KICNlbmRpZgogCiAKIAlndF9jcHVfY29uZmlnICgpOwogCiAJLyogTVBQIHNldHVwICovCi0JR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDAsIENGR19NUFBfQ09OVFJPTF8wKTsKLQlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMSwgQ0ZHX01QUF9DT05UUk9MXzEpOwotCUdUX1JFR19XUklURSAoTVBQX0NPTlRST0wyLCBDRkdfTVBQX0NPTlRST0xfMik7Ci0JR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDMsIENGR19NUFBfQ09OVFJPTF8zKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMCwgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8wKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMSwgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8xKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMiwgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8yKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMywgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8zKTsKIAotCUdUX1JFR19XUklURSAoR1BQX0xFVkVMX0NPTlRST0wsIENGR19HUFBfTEVWRUxfQ09OVFJPTCk7CisJR1RfUkVHX1dSSVRFIChHUFBfTEVWRUxfQ09OVFJPTCwgQ09ORklHX1NZU19HUFBfTEVWRUxfQ09OVFJPTCk7CiAJREVCVUdfTEVEMF9PTiAoKTsKIAlERUJVR19MRUQxX09OICgpOwogCURFQlVHX0xFRDJfT04gKCk7CkBAIC0zNTksNyArMzU5LDcgQEAKIGludCBtaXNjX2luaXRfciAoKQogewogCWljYWNoZV9lbmFibGUgKCk7Ci0jaWZkZWYgQ0ZHX0wyCisjaWZkZWYgQ09ORklHX1NZU19MMgogCWwyY2FjaGVfZW5hYmxlICgpOwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX01QU0MKQEAgLTM4MCw5ICszODAsOSBAQAogCS8qIGNoZWNrIHRvIHNlZSBpZiB3ZSBib290ZWQgZnJvbSB0aGUgc3JhbS4gIElmIHNvLCBtb3ZlIHRoaW5ncwogCSAqIGJhY2sgdG8gdGhlIHdheSB0aGV5IHNob3VsZCBiZS4gKHdlJ3JlIHJ1bm5pbmcgZnJvbSBtYWluCiAJICogbWVtb3J5IGF0IHRoaXMgcG9pbnQgbm93ICovCi0JaWYgKG1lbW9yeUdldERldmljZUJhc2VBZGRyZXNzIChERVZJQ0UwKSA9PSBDRkdfREZMX0JPT1RDU19CQVNFKSB7Ci0JCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UwLCBDRkdfREVWMF9TUEFDRSwgQ0ZHX0RFVjBfU0laRSk7Ci0JCW1lbW9yeU1hcERldmljZVNwYWNlIChCT09UX0RFVklDRSwgQ0ZHX0RGTF9CT09UQ1NfQkFTRSwgXzhNKTsKKwlpZiAobWVtb3J5R2V0RGV2aWNlQmFzZUFkZHJlc3MgKERFVklDRTApID09IENPTkZJR19TWVNfREZMX0JPT1RDU19CQVNFKSB7CisJCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UwLCBDT05GSUdfU1lTX0RFVjBfU1BBQ0UsIENPTkZJR19TWVNfREVWMF9TSVpFKTsKKwkJbWVtb3J5TWFwRGV2aWNlU3BhY2UgKEJPT1RfREVWSUNFLCBDT05GSUdfU1lTX0RGTF9CT09UQ1NfQkFTRSwgXzhNKTsKIAl9CiAJZGlzcGxheV9tZW1fbWFwICgpOwogCS8qIG5vdywganVtcCB0byB0aGUgbWFpbiBwcGNib290IGJvYXJkIGluaXQgY29kZSAqLwpAQCAtNDAyLDcgKzQwMiw3IEBACiB7CiAJaW50IGxfdHlwZSA9IDA7CiAKLQlwcmludGYgKCJCT0FSRDogJXNcbiIsIENGR19CT0FSRF9OQU1FKTsKKwlwcmludGYgKCJCT0FSRDogJXNcbiIsIENPTkZJR19TWVNfQk9BUkRfTkFNRSk7CiAJcmV0dXJuIChsX3R5cGUpOwogfQogCkBAIC00MTUsMzQgKzQxNSwzNCBAQAogCWlmIChtb2RlID09IDEpIHsKIAkJc3dpdGNoIChsZWQpIHsKIAkJY2FzZSAwOgotCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENGR19ERVYxX1NQQUNFIHwKKwkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDT05GSUdfU1lTX0RFVjFfU1BBQ0UgfAogCQkJCQkweDA4MDAwKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgMToKLQkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDRkdfREVWMV9TUEFDRSB8CisJCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ09ORklHX1NZU19ERVYxX1NQQUNFIHwKIAkJCQkJMHgwYzAwMCk7CiAJCQlicmVhazsKIAogCQljYXNlIDI6Ci0JCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ0ZHX0RFVjFfU1BBQ0UgfAorCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENPTkZJR19TWVNfREVWMV9TUEFDRSB8CiAJCQkJCTB4MTAwMDApOwogCQkJYnJlYWs7CiAJCX0KIAl9IGVsc2UgaWYgKG1vZGUgPT0gMCkgewogCQlzd2l0Y2ggKGxlZCkgewogCQljYXNlIDA6Ci0JCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ0ZHX0RFVjFfU1BBQ0UgfAorCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENPTkZJR19TWVNfREVWMV9TUEFDRSB8CiAJCQkJCTB4MTQwMDApOwogCQkJYnJlYWs7CiAKIAkJY2FzZSAxOgotCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENGR19ERVYxX1NQQUNFIHwKKwkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDT05GSUdfU1lTX0RFVjFfU1BBQ0UgfAogCQkJCQkweDE4MDAwKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgMjoKLQkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDRkdfREVWMV9TUEFDRSB8CisJCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ09ORklHX1NZU19ERVYxX1NQQUNFIHwKIAkJCQkJMHgxYzAwMCk7CiAJCQlicmVhazsKIAkJfQpAQCAtNTEzLDcgKzUxMyw3IEBACiAKIC8qIERSQU0gY2hlY2sgcm91dGluZXMgY29waWVkIGZyb20gZ3c4MjYwICovCiAKLSNpZiBkZWZpbmVkIChDRkdfRFJBTV9URVNUKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUKQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogTkFNRTogIG1vdmU2NCgpIC0gIG1vdmVzIGEgZG91YmxlIHdvcmQgKDY0LWJpdCkJCSAgICAgKi8KQEAgLTU0NCw3ICs1NDQsNyBAQAogfQogCiAKLSNpZiBkZWZpbmVkIChDRkdfRFJBTV9URVNUX0RBVEEpCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQSkKIAogdW5zaWduZWQgbG9uZyBsb25nIHBhdHRlcm5bXSA9IHsKIAkweGFhYWFhYWFhYWFhYWFhYWFVTEwsCkBAIC02MDcsNyArNjA3LDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBpbnQgbWVtX3Rlc3RfZGF0YSAodm9pZCkKIHsKLQl1bnNpZ25lZCBsb25nIGxvbmcgKnBtZW0gPSAodW5zaWduZWQgbG9uZyBsb25nICopIENGR19NRU1URVNUX1NUQVJUOworCXVuc2lnbmVkIGxvbmcgbG9uZyAqcG1lbSA9ICh1bnNpZ25lZCBsb25nIGxvbmcgKikgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOwogCXVuc2lnbmVkIGxvbmcgbG9uZyB0ZW1wNjQgPSAwOwogCWludCBudW1fcGF0dGVybnMgPSBzaXplb2YgKHBhdHRlcm4pIC8gc2l6ZW9mIChwYXR0ZXJuWzBdKTsKIAlpbnQgaTsKQEAgLTYzNCw5ICs2MzQsOSBAQAogCiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVF9EQVRBICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQSAqLwogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVF9BRERSRVNTKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUX0FERFJFU1MpCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogTkFNRTogIG1lbV90ZXN0X2FkZHJlc3MoKSAtCXRlc3QgYWRkcmVzcyBsaW5lcwkJICAgICAqLwogLyoJCQkJCQkJCSAgICAgKi8KQEAgLTY2MSw4ICs2NjEsOCBAQAogaW50IG1lbV90ZXN0X2FkZHJlc3MgKHZvaWQpCiB7CiAJdm9sYXRpbGUgdW5zaWduZWQgaW50ICpwbWVtID0KLQkJKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQljb25zdCB1bnNpZ25lZCBpbnQgc2l6ZSA9IChDRkdfTUVNVEVTVF9FTkQgLSBDRkdfTUVNVEVTVF9TVEFSVCkgLyA0OworCQkodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwljb25zdCB1bnNpZ25lZCBpbnQgc2l6ZSA9IChDT05GSUdfU1lTX01FTVRFU1RfRU5EIC0gQ09ORklHX1NZU19NRU1URVNUX1NUQVJUKSAvIDQ7CiAJdW5zaWduZWQgaW50IGk7CiAKIAkvKiB3cml0ZSBhZGRyZXNzIHRvIGVhY2ggbG9jYXRpb24gKi8KQEAgLTY3OSw5ICs2NzksOSBAQAogCX0KIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUX0FERFJFU1MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTICovCiAKLSNpZiBkZWZpbmVkIChDRkdfRFJBTV9URVNUX1dBTEspCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19EUkFNX1RFU1RfV0FMSykKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBOQU1FOiAgIG1lbV9tYXJjaCgpIC0gIG1lbW9yeSBtYXJjaAkJCQkgICAgICovCiAvKgkJCQkJCQkJICAgICAqLwpAQCAtNzM5LDcgKzczOSw3IEBACiAJfQogCXJldHVybiAwOwogfQotI2VuZGlmIC8qIENGR19EUkFNX1RFU1RfV0FMSyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEsgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE5BTUU6ICAgbWVtX3Rlc3Rfd2FsaygpIC0gIGEgc2ltcGxlIHdhbGtpbmcgb25lcyB0ZXN0CSAgICAgKi8KQEAgLTc3MSw4ICs3NzEsOCBAQAogewogCXVuc2lnbmVkIGxvbmcgbG9uZyBtYXNrOwogCXZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgbG9uZyAqcG1lbSA9Ci0JCSh2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGxvbmcgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7Ci0JY29uc3QgdW5zaWduZWQgbG9uZyBzaXplID0gKENGR19NRU1URVNUX0VORCAtIENGR19NRU1URVNUX1NUQVJUKSAvIDg7CisJCSh2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGxvbmcgKikgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOworCWNvbnN0IHVuc2lnbmVkIGxvbmcgc2l6ZSA9IChDT05GSUdfU1lTX01FTVRFU1RfRU5EIC0gQ09ORklHX1NZU19NRU1URVNUX1NUQVJUKSAvIDg7CiAKIAl1bnNpZ25lZCBpbnQgaTsKIApAQCAtODQ4LDkgKzg0OCw5IEBACiAvKiAgICBydW53YWxrID0gMDsgKi8KIAogCWlmICgocnVuZGF0YSA9PSAxKSB8fCAocnVuYWRkcmVzcyA9PSAxKSB8fCAocnVud2FsayA9PSAxKSkgewotCQlwcmludGYgKCJUZXN0aW5nIFJBTSBmcm9tIDB4JTA4eCB0byAweCUwOHggLi4uICAoZG9uJ3QgcGFuaWMuLi4gdGhhdCB3aWxsIHRha2UgYSBtb21lbnQgISEhISlcbiIsIENGR19NRU1URVNUX1NUQVJULCBDRkdfTUVNVEVTVF9FTkQpOworCQlwcmludGYgKCJUZXN0aW5nIFJBTSBmcm9tIDB4JTA4eCB0byAweCUwOHggLi4uICAoZG9uJ3QgcGFuaWMuLi4gdGhhdCB3aWxsIHRha2UgYSBtb21lbnQgISEhISlcbiIsIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCwgQ09ORklHX1NZU19NRU1URVNUX0VORCk7CiAJfQotI2lmZGVmIENGR19EUkFNX1RFU1RfREFUQQorI2lmZGVmIENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEKIAlpZiAocnVuZGF0YSA9PSAxKSB7CiAJCXByaW50ZiAoIlRlc3QgREFUQSAuLi4gICIpOwogCQlpZiAobWVtX3Rlc3RfZGF0YSAoKSA9PSAxKSB7CkBAIC04NjAsNyArODYwLDcgQEAKIAkJCXByaW50ZiAoIm9rIFxuIik7CiAJfQogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RSQU1fVEVTVF9BRERSRVNTCisjaWZkZWYgQ09ORklHX1NZU19EUkFNX1RFU1RfQUREUkVTUwogCWlmIChydW5hZGRyZXNzID09IDEpIHsKIAkJcHJpbnRmICgiVGVzdCBBRERSRVNTIC4uLiAgIik7CiAJCWlmIChtZW1fdGVzdF9hZGRyZXNzICgpID09IDEpIHsKQEAgLTg3MCw3ICs4NzAsNyBAQAogCQkJcHJpbnRmICgib2sgXG4iKTsKIAl9CiAjZW5kaWYKLSNpZmRlZiBDRkdfRFJBTV9URVNUX1dBTEsKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVF9XQUxLCiAJaWYgKHJ1bndhbGsgPT0gMSkgewogCQlwcmludGYgKCJUZXN0IFdBTEtJTkcgT05FcyAuLi4gICIpOwogCQlpZiAobWVtX3Rlc3Rfd2FsayAoKSA9PSAxKSB7CkBAIC04ODYsNyArODg2LDcgQEAKIAlyZXR1cm4gMDsKIAogfQotI2VuZGlmIC8qIENGR19EUkFNX1RFU1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVCAqLwogCiAvKiByb25lbiAtIHRoZSBiZWxvdyBmdW5jdGlvbnMgYXJlIHVzZWQgYnkgdGhlIGJvb3RtIGZ1bmN0aW9uICAgICAgICAgICAqLwogLyogIC0gd2UgbWFwIHRoZSBiYXNlIHJlZ2lzdGVyIHRvIGZiZTAwMDAwIChzYW1lIG1hcHBpbmcgYXMgaW4gdGhlIExTUCkgKi8KQEAgLTkyNSw3ICs5MjUsNyBAQAogLyogTVZfUkVHX1dSSVRFIChNVjY0MzYwX0VUSF9SRUNFSVZFX1FVRVVFX0NPTU1BTkRfUkVHKDIpLCAweDAwMDBmZjAwKTsgKi8KIAogLyogUmVsb2NhdGUgTVY2NDM2MCBpbnRlcm5hbCByZWdzICovCi0JbXlfcmVtYXBfZ3RfcmVnc19ib290bSAoQ0ZHX0dUX1JFR1MsIEJSSURHRV9SRUdfQkFTRV9CT09UTSk7CisJbXlfcmVtYXBfZ3RfcmVnc19ib290bSAoQ09ORklHX1NZU19HVF9SRUdTLCBCUklER0VfUkVHX0JBU0VfQk9PVE0pOwogCiAJaWNhY2hlX2Rpc2FibGUgKCk7CiAJZGNhY2hlX2Rpc2FibGUgKCk7CmRpZmYgLS1naXQgYS9ib2FyZC9NYXJ2ZWxsL2RiNjQzNjAvbXBzYy5jIGIvYm9hcmQvTWFydmVsbC9kYjY0MzYwL21wc2MuYwppbmRleCA5MjNkOTU1Li43YWQ2YWU4IDEwMDY0NAotLS0gYS9ib2FyZC9NYXJ2ZWxsL2RiNjQzNjAvbXBzYy5jCisrKyBiL2JvYXJkL01hcnZlbGwvZGI2NDM2MC9tcHNjLmMKQEAgLTQyNiw3ICs0MjYsNyBAQAogCQkJICAoTVY2NDM2MF9DVU5JVF9CQVNFX0FERFJfV0lOXzBfQklUICogMikpKTsKIAogLyogU2V0dXAgTVBTQyBpbnRlcm5hbCBhZGRyZXNzIHNwYWNlIGJhc2UgYWRkcmVzcwkqLwotCUdUX1JFR19XUklURSAoQ1VOSVRfSU5URVJOQUxfU1BBQ0VfQkFTRV9BRERSX1JFRywgQ0ZHX0dUX1JFR1MpOworCUdUX1JFR19XUklURSAoQ1VOSVRfSU5URVJOQUxfU1BBQ0VfQkFTRV9BRERSX1JFRywgQ09ORklHX1NZU19HVF9SRUdTKTsKIAogLyogbm8gaGlnaCBhZGRyZXNzIHJlbWFwKi8KIAlHVF9SRUdfV1JJVEUgKENVTklUX0hJR0hfQUREUl9SRU1BUF9SRUcwLCAweDAwKTsKQEAgLTUxNiw5ICs1MTYsOSBAQAogCiAjaWZkZWYgWlVNQV9OVEwKIAkvKiBmcm9tIHRjbGsgKi8KLQljbG9jayA9IChDRkdfVENMSyAvICgxNiAqIHJhdGUpKSAtIDE7CisJY2xvY2sgPSAoQ09ORklHX1NZU19UQ0xLIC8gKDE2ICogcmF0ZSkpIC0gMTsKICNlbHNlCi0JY2xvY2sgPSAoQ0ZHX1RDTEsgLyAoMTYgKiByYXRlKSkgLSAxOworCWNsb2NrID0gKENPTkZJR19TWVNfVENMSyAvICgxNiAqIHJhdGUpKSAtIDE7CiAjZW5kaWYKIAogCWdhbGJyZ19zZXRfQ0RWIChjaGFubmVsLCBjbG9jayk7CS8qIHNldCB0aW1lciBSZWcuIGZvciBCUkcgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL01hcnZlbGwvZGI2NDM2MC9wY2kuYyBiL2JvYXJkL01hcnZlbGwvZGI2NDM2MC9wY2kuYwppbmRleCA1NjM3Mjg0Li5hN2UzYzk1IDEwMDY0NAotLS0gYS9ib2FyZC9NYXJ2ZWxsL2RiNjQzNjAvcGNpLmMKKysrIGIvYm9hcmQvTWFydmVsbC9kYjY0MzYwL3BjaS5jCkBAIC04NTksMTQgKzg1OSwxNCBAQAogCiAJLyogUENJIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uIChwY2kwX2hvc2UucmVnaW9ucyArIDAsCi0JCQlDRkdfUENJMF8wX01FTV9TUEFDRSwKLQkJCUNGR19QQ0kwXzBfTUVNX1NQQUNFLAotCQkJQ0ZHX1BDSTBfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKKwkJCUNPTkZJR19TWVNfUENJMF8wX01FTV9TUEFDRSwKKwkJCUNPTkZJR19TWVNfUENJMF8wX01FTV9TUEFDRSwKKwkJCUNPTkZJR19TWVNfUENJMF9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOwogCiAJLyogUENJIEkvTyBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uIChwY2kwX2hvc2UucmVnaW9ucyArIDEsCi0JCQlDRkdfUENJMF9JT19TUEFDRV9QQ0ksCi0JCQlDRkdfUENJMF9JT19TUEFDRSwgQ0ZHX1BDSTBfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CisJCQlDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0VfUENJLAorCQkJQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFLCBDT05GSUdfU1lTX1BDSTBfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CiAKIAlwY2lfc2V0X29wcyAoJnBjaTBfaG9zZSwKIAkJICAgICBwY2lfaG9zZV9yZWFkX2NvbmZpZ19ieXRlX3ZpYV9kd29yZCwKQEAgLTkwMSwxNCArOTAxLDE0IEBACiAKIAkvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKHBjaTFfaG9zZS5yZWdpb25zICsgMCwKLQkJCUNGR19QQ0kxXzBfTUVNX1NQQUNFLAotCQkJQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UsCi0JCQlDRkdfUENJMV9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOworCQkJQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFLAorCQkJQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFLAorCQkJQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CiAKIAkvKiBQQ0kgSS9PIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKHBjaTFfaG9zZS5yZWdpb25zICsgMSwKLQkJCUNGR19QQ0kxX0lPX1NQQUNFX1BDSSwKLQkJCUNGR19QQ0kxX0lPX1NQQUNFLCBDRkdfUENJMV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKKwkJCUNPTkZJR19TWVNfUENJMV9JT19TUEFDRV9QQ0ksCisJCQlDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0UsIENPTkZJR19TWVNfUENJMV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKIAogCXBjaV9zZXRfb3BzICgmcGNpMV9ob3NlLAogCQkgICAgIHBjaV9ob3NlX3JlYWRfY29uZmlnX2J5dGVfdmlhX2R3b3JkLApkaWZmIC0tZ2l0IGEvYm9hcmQvTWFydmVsbC9kYjY0MzYwL3NkcmFtX2luaXQuYyBiL2JvYXJkL01hcnZlbGwvZGI2NDM2MC9zZHJhbV9pbml0LmMKaW5kZXggZWNhZGFmMi4uZDA4MTdkNyAxMDA2NDQKLS0tIGEvYm9hcmQvTWFydmVsbC9kYjY0MzYwL3NkcmFtX2luaXQuYworKysgYi9ib2FyZC9NYXJ2ZWxsL2RiNjQzNjAvc2RyYW1faW5pdC5jCkBAIC0zMTIsNyArMzEyLDcgQEAKIAl9IGVsc2UKIAkJZGltbUluZm8tPnNsb3QgPSBzbG90OwkvKiBzdGFydCB0byBmaWxsIHVwIGRpbW1pbmZvIGZvciB0aGlzICJzbG90IiAqLwogCi0jaWZkZWYgQ0ZHX0RJU1BMQVlfRElNTV9TUERfQ09OVEVOVAorI2lmZGVmIENPTkZJR19TWVNfRElTUExBWV9ESU1NX1NQRF9DT05URU5UCiAKIAlmb3IgKGkgPSAwOyBpIDw9IDEyNzsgaSsrKSB7CiAJCXByaW50ZiAoIlNQRC1FRVBST00gQnl0ZSAlM2QgPSAlM3ggKCUzZClcbiIsIGksIGRhdGFbaV0sCkBAIC02OTAsMTYgKzY5MCwxNiBAQAogCQkJCQkJaWYgKChkaW1tSW5mby0+CiAJCQkJCQkgICAgIG1pbmltdW1DeWNsZVRpbWVBdE1heENhc0xhdGFuY3lfTG9QCiAJCQkJCQkgICAgIDwKLQkJCQkJCSAgICAgQ0ZHX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1ApCisJCQkJCQkgICAgIENPTkZJR19TWVNfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX0xPUCkKIAkJCQkJCSAgICB8fAogCQkJCQkJICAgICgoZGltbUluZm8tPgogCQkJCQkJICAgICAgbWluaW11bUN5Y2xlVGltZUF0TWF4Q2FzTGF0YW5jeV9Mb1AKIAkJCQkJCSAgICAgID09Ci0JCQkJCQkgICAgICBDRkdfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX0xPUCkKKwkJCQkJCSAgICAgIENPTkZJR19TWVNfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX0xPUCkKIAkJCQkJCSAgICAgJiYgKGRpbW1JbmZvLT4KIAkJCQkJCQkgbWluaW11bUN5Y2xlVGltZUF0TWF4Q2FzTGF0YW5jeV9Sb1AKIAkJCQkJCQkgPAotCQkJCQkJCSBDRkdfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX1JPUCkpKQorCQkJCQkJCSBDT05GSUdfU1lTX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9ST1ApKSkKIAkJCQkJCXsKIAkJCQkJCQlkaW1tSW5mby0+CiAJCQkJCQkJCW1heENsU3VwcG9ydGVkX0REUgpAQCAtNzE0LDE2ICs3MTQsMTYgQEAKIAkJCQkJCWlmICgoZGltbUluZm8tPgogCQkJCQkJICAgICBtaW5pbXVtQ3ljbGVUaW1lQXRNYXhDYXNMYXRhbmN5X0xvUAogCQkJCQkJICAgICA+Ci0JCQkJCQkgICAgIENGR19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfTE9QKQorCQkJCQkJICAgICBDT05GSUdfU1lTX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1ApCiAJCQkJCQkgICAgfHwKIAkJCQkJCSAgICAoKGRpbW1JbmZvLT4KIAkJCQkJCSAgICAgIG1pbmltdW1DeWNsZVRpbWVBdE1heENhc0xhdGFuY3lfTG9QCiAJCQkJCQkgICAgICA9PQotCQkJCQkJICAgICAgQ0ZHX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1ApCisJCQkJCQkgICAgICBDT05GSUdfU1lTX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1ApCiAJCQkJCQkgICAgICYmIChkaW1tSW5mby0+CiAJCQkJCQkJIG1pbmltdW1DeWNsZVRpbWVBdE1heENhc0xhdGFuY3lfUm9QCiAJCQkJCQkJID4KLQkJCQkJCQkgQ0ZHX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9ST1ApKSkKKwkJCQkJCQkgQ09ORklHX1NZU19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfUk9QKSkpCiAJCQkJCQl7CiAJCQkJCQkJcHJpbnRmICgiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4iKTsKIAkJCQkJCQlwcmludGYgKCIqKiogc3lzQ2xvY2sgaXMgaGlnaGVyIHRoYW4gU0RSQU0ncyBhbGxvd2VkIGZyZXF1ZW5jeSAqKipcbiIpOwpAQCAtMTI5MCwzNyArMTI5MCwzNyBAQAogCWNhc2UgMHgwOgogCWNhc2UgMHg4MDoJCS8qIHJlZnJlc2ggcGVyaW9kIGlzIDE1LjYyNSB1c2VjICovCiAJCXNkcmFtX2NvbmZpZ19yZWcgPQotCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDE1LjYyNSAqIChmbG9hdCkgQ0ZHX0JVU19IWikKKwkJCSh1bnNpZ25lZCBpbnQpICgoKGZsb2F0KSAxNS42MjUgKiAoZmxvYXQpIENPTkZJR19TWVNfQlVTX0haKQogCQkJCQkvIChmbG9hdCkgMTAwMDAwMC4wKTsKIAkJYnJlYWs7CiAJY2FzZSAweDE6CiAJY2FzZSAweDgxOgkJLyogcmVmcmVzaCBwZXJpb2QgaXMgMy45IHVzZWMgKi8KIAkJc2RyYW1fY29uZmlnX3JlZyA9Ci0JCQkodW5zaWduZWQgaW50KSAoKChmbG9hdCkgMy45ICogKGZsb2F0KSBDRkdfQlVTX0haKSAvCisJCQkodW5zaWduZWQgaW50KSAoKChmbG9hdCkgMy45ICogKGZsb2F0KSBDT05GSUdfU1lTX0JVU19IWikgLwogCQkJCQkoZmxvYXQpIDEwMDAwMDAuMCk7CiAJCWJyZWFrOwogCWNhc2UgMHgyOgogCWNhc2UgMHg4MjoJCS8qIHJlZnJlc2ggcGVyaW9kIGlzIDcuOCB1c2VjICovCiAJCXNkcmFtX2NvbmZpZ19yZWcgPQotCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDcuOCAqIChmbG9hdCkgQ0ZHX0JVU19IWikgLworCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDcuOCAqIChmbG9hdCkgQ09ORklHX1NZU19CVVNfSFopIC8KIAkJCQkJKGZsb2F0KSAxMDAwMDAwLjApOwogCQlicmVhazsKIAljYXNlIDB4MzoKIAljYXNlIDB4ODM6CQkvKiByZWZyZXNoIHBlcmlvZCBpcyAzMS4zIHVzZWMgKi8KIAkJc2RyYW1fY29uZmlnX3JlZyA9Ci0JCQkodW5zaWduZWQgaW50KSAoKChmbG9hdCkgMzEuMyAqIChmbG9hdCkgQ0ZHX0JVU19IWikgLworCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDMxLjMgKiAoZmxvYXQpIENPTkZJR19TWVNfQlVTX0haKSAvCiAJCQkJCShmbG9hdCkgMTAwMDAwMC4wKTsKIAkJYnJlYWs7CiAJY2FzZSAweDQ6CiAJY2FzZSAweDg0OgkJLyogcmVmcmVzaCBwZXJpb2QgaXMgNjIuNSB1c2VjICovCiAJCXNkcmFtX2NvbmZpZ19yZWcgPQotCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDYyLjUgKiAoZmxvYXQpIENGR19CVVNfSFopIC8KKwkJCSh1bnNpZ25lZCBpbnQpICgoKGZsb2F0KSA2Mi41ICogKGZsb2F0KSBDT05GSUdfU1lTX0JVU19IWikgLwogCQkJCQkoZmxvYXQpIDEwMDAwMDAuMCk7CiAJCWJyZWFrOwogCWNhc2UgMHg1OgogCWNhc2UgMHg4NToJCS8qIHJlZnJlc2ggcGVyaW9kIGlzIDEyNSB1c2VjICovCiAJCXNkcmFtX2NvbmZpZ19yZWcgPQotCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDEyNSAqIChmbG9hdCkgQ0ZHX0JVU19IWikgLworCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDEyNSAqIChmbG9hdCkgQ09ORklHX1NZU19CVVNfSFopIC8KIAkJCQkJKGZsb2F0KSAxMDAwMDAwLjApOwogCQlicmVhazsKIAlkZWZhdWx0OgkJLyogcmVmcmVzaCBwZXJpb2QgdW5kZWZpbmVkICovCkBAIC0xODA3LDcgKzE4MDcsNyBAQAogCiAJcHJpbnRmICgiLS0gRElNTTIgaGFzICVkIGJhbmtzXG4iLCBkaW1tSW5mbzIubnVtT2ZNb2R1bGVCYW5rcyk7CiAKLQlmb3IgKGJhbmtfbm8gPSAwOyBiYW5rX25vIDwgQ0ZHX0RSQU1fQkFOS1M7IGJhbmtfbm8rKykgeworCWZvciAoYmFua19ubyA9IDA7IGJhbmtfbm8gPCBDT05GSUdfU1lTX0RSQU1fQkFOS1M7IGJhbmtfbm8rKykgewogCQkvKiBza2lwIG92ZXIgYmFua3MgdGhhdCBhcmUgbm90IHBvcHVsYXRlZCAqLwogCQlpZiAoIWNoZWNrYmFua1tiYW5rX25vXSkKIAkJCWNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvTWFydmVsbC9kYjY0NDYwL2RiNjQ0NjAuYyBiL2JvYXJkL01hcnZlbGwvZGI2NDQ2MC9kYjY0NDYwLmMKaW5kZXggOGEwNWNkMi4uMTRlNjM1NSAxMDA2NDQKLS0tIGEvYm9hcmQvTWFydmVsbC9kYjY0NDYwL2RiNjQ0NjAuYworKysgYi9ib2FyZC9NYXJ2ZWxsL2RiNjQ0NjAvZGI2NDQ2MC5jCkBAIC01NSw3ICs1NSw3IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIC8qIHRoaXMgaXMgdGhlIGN1cnJlbnQgR1QgcmVnaXN0ZXIgc3BhY2UgbG9jYXRpb24gKi8KLS8qIGl0IHN0YXJ0cyBhdCBDRkdfREZMX0dUX1JFR1MgYnV0IG1vdmVzIGxhdGVyIHRvIENGR19HVF9SRUdTICovCisvKiBpdCBzdGFydHMgYXQgQ09ORklHX1NZU19ERkxfR1RfUkVHUyBidXQgbW92ZXMgbGF0ZXIgdG8gQ09ORklHX1NZU19HVF9SRUdTICovCiAKIC8qIFVuZm9ydHVuYXRlbHksIHdlIGNhbnQgY2hhbmdlIGl0IHdoaWxlIHdlIGFyZSBpbiBmbGFzaCwgc28gd2UgaW5pdGlhbGl6ZSBpdAogICogdG8gdGhlICJmaW5hbCIgdmFsdWUuIFRoaXMgbWVhbnMgdGhhdCBhbnkgZGVidWdfbGVkIGNhbGxzIGJlZm9yZQpAQCAtNjQsNyArNjQsNyBAQAogICovCiAKIHZvaWQgYm9hcmRfcHJlYm9vdG1faW5pdCAodm9pZCk7Ci11bnNpZ25lZCBpbnQgSU5URVJOQUxfUkVHX0JBU0VfQUREUiA9IENGR19HVF9SRUdTOwordW5zaWduZWQgaW50IElOVEVSTkFMX1JFR19CQVNFX0FERFIgPSBDT05GSUdfU1lTX0dUX1JFR1M7CiBpbnQgZGlzcGxheV9tZW1fbWFwICh2b2lkKTsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtMTI3LDcgKzEyNyw3IEBACiAKIAkJR1RfUkVHX1dSSVRFIChQQ0lfMF9DT05GSUdfQUREUiwgQklUMzEgfCB2YWwpOwogCQlHVF9SRUdfV1JJVEUgKFBDSV8wX0NPTkZJR19EQVRBX1ZJUlRVQUxfUkVHLAotCQkJICAgICAgKHN0YXQgJiAweGZmZmYwMDAwKSB8IENGR19QQ0lfSURTRUwpOworCQkJICAgICAgKHN0YXQgJiAweGZmZmYwMDAwKSB8IENPTkZJR19TWVNfUENJX0lEU0VMKTsKIAogCX0KIAlpZiAoKEdUUkVHUkVBRCAoUENJXzFfTU9ERSkgJiAoQklUNCB8IEJJVDUpKSAhPSAwKSB7CS8qaWYgIFBDSS1YICovCkBAIC0xMzYsNyArMTM2LDcgQEAKIAogCQlHVF9SRUdfV1JJVEUgKFBDSV8xX0NPTkZJR19BRERSLCBCSVQzMSB8IHZhbCk7CiAJCUdUX1JFR19XUklURSAoUENJXzFfQ09ORklHX0RBVEFfVklSVFVBTF9SRUcsCi0JCQkgICAgICAoc3RhdCAmIDB4ZmZmZjAwMDApIHwgQ0ZHX1BDSV9JRFNFTCk7CisJCQkgICAgICAoc3RhdCAmIDB4ZmZmZjAwMDApIHwgQ09ORklHX1NZU19QQ0lfSURTRUwpOwogCX0KIAogCS8qIEVuYWJsZSBtYXN0ZXIgKi8KQEAgLTE1NCwyMSArMTU0LDIxIEBACiAJLyogcm9uZW4tIGFkZCB3cml0ZSB0byBwY2kgcmVtYXAgcmVnaXN0ZXJzIGZvciA2NDQ2MC4KIAkgICBpbiA2NDM2MCB3aGVuIHdyaXRpbmcgdG8gcGNpIGJhc2UgZ28gYW5kIG92ZXJpZGUgcmVtYXAgYXV0b21hdGljYWx5LAogCSAgIGluIDY0NDYwIGl0IGRvZXNuJ3QgKi8KLQlHVF9SRUdfV1JJVEUgKFBDSV8wX0lPX0JBU0VfQUREUiwgQ0ZHX1BDSTBfSU9fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMElfT19BRERSRVNTX1JFTUFQLCBDRkdfUENJMF9JT19CQVNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8wX0lPX1NJWkUsIChDRkdfUENJMF9JT19TSVpFIC0gMSkgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBfSU9fQkFTRV9BRERSLCBDT05GSUdfU1lTX1BDSTBfSU9fQkFTRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMElfT19BRERSRVNTX1JFTUFQLCBDT05GSUdfU1lTX1BDSTBfSU9fQkFTRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMF9JT19TSVpFLCAoQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUgLSAxKSA+PiAxNik7CiAKLQlHVF9SRUdfV1JJVEUgKFBDSV8wX01FTU9SWTBfQkFTRV9BRERSLCBDRkdfUENJMF9NRU1fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfME1FTU9SWTBfQUREUkVTU19SRU1BUCwgQ0ZHX1BDSTBfTUVNX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzBfTUVNT1JZMF9TSVpFLCAoQ0ZHX1BDSTBfTUVNX1NJWkUgLSAxKSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMF9NRU1PUlkwX0JBU0VfQUREUiwgQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8wTUVNT1JZMF9BRERSRVNTX1JFTUFQLCBDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBfTUVNT1JZMF9TSVpFLCAoQ09ORklHX1NZU19QQ0kwX01FTV9TSVpFIC0gMSkgPj4gMTYpOwogCi0JR1RfUkVHX1dSSVRFIChQQ0lfMV9JT19CQVNFX0FERFIsIENGR19QQ0kxX0lPX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzFJX09fQUREUkVTU19SRU1BUCwgQ0ZHX1BDSTFfSU9fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMV9JT19TSVpFLCAoQ0ZHX1BDSTFfSU9fU0laRSAtIDEpID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xX0lPX0JBU0VfQUREUiwgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFJX09fQUREUkVTU19SRU1BUCwgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFfSU9fU0laRSwgKENPTkZJR19TWVNfUENJMV9JT19TSVpFIC0gMSkgPj4gMTYpOwogCi0JR1RfUkVHX1dSSVRFIChQQ0lfMV9NRU1PUlkwX0JBU0VfQUREUiwgQ0ZHX1BDSTFfTUVNX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzFNRU1PUlkwX0FERFJFU1NfUkVNQVAsIENGR19QQ0kxX01FTV9CQVNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8xX01FTU9SWTBfU0laRSwgKENGR19QQ0kxX01FTV9TSVpFIC0gMSkgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFfTUVNT1JZMF9CQVNFX0FERFIsIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMU1FTU9SWTBfQUREUkVTU19SRU1BUCwgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xX01FTU9SWTBfU0laRSwgKENPTkZJR19TWVNfUENJMV9NRU1fU0laRSAtIDEpID4+IDE2KTsKIAogCS8qIFBDSSBpbnRlcmZhY2Ugc2V0dGluZ3MgKi8KIAkvKiBUaW1lb3V0IHNldCB0byByZXRyeSBmb3JldmVyICovCkBAIC0xODQsNyArMTg0LDcgQEAKIAlmb3IgKHN0YXQgPSAwOyBzdGF0IDw9IFBDSV9IT1NUMTsgc3RhdCsrKQogCQlwY2lXcml0ZUNvbmZpZ1JlZyAoc3RhdCwKIAkJCQkgICBQQ0lfSU5URVJOQUxfUkVHSVNURVJTX01FTU9SWV9NQVBQRURfQkFTRV9BRERSRVNTLAotCQkJCSAgIFNFTEYsIENGR19HVF9SRUdTKTsKKwkJCQkgICBTRUxGLCBDT05GSUdfU1lTX0dUX1JFR1MpOwogI2VuZGlmCiAKIH0KQEAgLTIwMCw3ICsyMDAsNyBAQAogCXRtcCA9IEdUUkVHUkVBRCAoQ1BVX0NPTkZJR1VSQVRJT04pOwogCiAJLyogc2V0IHRoZSBTSU5HTEVfQ1BVIGJpdCAgc2VlIE1WNjQ0NjAgUC4zOTkgKi8KLSNpZm5kZWYgQ0ZHX0dUX0RVQUxfQ1BVCQkvKiBTSU5HTEVfQ1BVIHNlZW1zIHRvIGNhdXNlIEpUQUcgcHJvYmxlbXMgKi8KKyNpZm5kZWYgQ09ORklHX1NZU19HVF9EVUFMX0NQVQkJLyogU0lOR0xFX0NQVSBzZWVtcyB0byBjYXVzZSBKVEFHIHByb2JsZW1zICovCiAJdG1wIHw9IENQVV9DT05GX1NJTkdMRV9DUFU7CiAjZW5kaWYKIApAQCAtMjUxLDcgKzI1MSw3IEBACiAJICogaXQgbGFzdCB0aW1lLiAoaHViZXIpCiAJICovCiAKLQlteV9yZW1hcF9ndF9yZWdzIChDRkdfREZMX0dUX1JFR1MsIENGR19HVF9SRUdTKTsKKwlteV9yZW1hcF9ndF9yZWdzIChDT05GSUdfU1lTX0RGTF9HVF9SRUdTLCBDT05GSUdfU1lTX0dUX1JFR1MpOwogCiAJLyogTm8gUENJIGluIGZpcnN0IHJlbGVhc2Ugb2YgUG9ydCBUb19kbzogZW5hYmxlIGl0LiAqLwogI2lmZGVmIENPTkZJR19QQ0kKQEAgLTI5Nyw1NiArMjk3LDU2IEBACiAJICogb24tYm9hcmQgc3JhbSBvbiB0aGUgZXZhbCBib2FyZCwgYW5kIHVwZGF0ZXMgdGhlIGNvcnJlY3QKIAkgKiByZWdpc3RlcnMgdG8gYm9vdCBmcm9tIHRoZSBzcmFtLiAoZGV2aWNlMCkKIAkgKi8KLQlpZiAobWVtb3J5R2V0RGV2aWNlQmFzZUFkZHJlc3MgKERFVklDRTApID09IENGR19ERkxfQk9PVENTX0JBU0UpCisJaWYgKG1lbW9yeUdldERldmljZUJhc2VBZGRyZXNzIChERVZJQ0UwKSA9PSBDT05GSUdfU1lTX0RGTF9CT09UQ1NfQkFTRSkKIAkJc3JhbV9ib290ID0gMTsKIAlpZiAoIXNyYW1fYm9vdCkKLQkJbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTAsIENGR19ERVYwX1NQQUNFLCBDRkdfREVWMF9TSVpFKTsKKwkJbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTAsIENPTkZJR19TWVNfREVWMF9TUEFDRSwgQ09ORklHX1NZU19ERVYwX1NJWkUpOwogCi0JbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTEsIENGR19ERVYxX1NQQUNFLCBDRkdfREVWMV9TSVpFKTsKLQltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMiwgQ0ZHX0RFVjJfU1BBQ0UsIENGR19ERVYyX1NJWkUpOwotCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UzLCBDRkdfREVWM19TUEFDRSwgQ0ZHX0RFVjNfU0laRSk7CisJbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTEsIENPTkZJR19TWVNfREVWMV9TUEFDRSwgQ09ORklHX1NZU19ERVYxX1NJWkUpOworCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UyLCBDT05GSUdfU1lTX0RFVjJfU1BBQ0UsIENPTkZJR19TWVNfREVWMl9TSVpFKTsKKwltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMywgQ09ORklHX1NZU19ERVYzX1NQQUNFLCBDT05GSUdfU1lTX0RFVjNfU0laRSk7CiAKIAogCS8qIGNvbmZpZ3VyZSBkZXZpY2UgdGltaW5nICovCi0jaWZkZWYgQ0ZHX0RFVjBfUEFSCQkvKiBzZXQgcG9ydCBwYXJhbWV0ZXJzIGZvciBTUkFNIGRldmljZSBtb2R1bGUgYWNjZXNzICovCisjaWZkZWYgQ09ORklHX1NZU19ERVYwX1BBUgkJLyogc2V0IHBvcnQgcGFyYW1ldGVycyBmb3IgU1JBTSBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLwogCWlmICghc3JhbV9ib290KQotCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LMFBBUkFNRVRFUlMsIENGR19ERVYwX1BBUik7CisJCUdUX1JFR19XUklURSAoREVWSUNFX0JBTkswUEFSQU1FVEVSUywgQ09ORklHX1NZU19ERVYwX1BBUik7CiAjZW5kaWYKIAotI2lmZGVmIENGR19ERVYxX1BBUgkJLyogc2V0IHBvcnQgcGFyYW1ldGVycyBmb3IgUlRDIGRldmljZSBtb2R1bGUgYWNjZXNzICovCi0JR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzFQQVJBTUVURVJTLCBDRkdfREVWMV9QQVIpOworI2lmZGVmIENPTkZJR19TWVNfREVWMV9QQVIJCS8qIHNldCBwb3J0IHBhcmFtZXRlcnMgZm9yIFJUQyBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLworCUdUX1JFR19XUklURSAoREVWSUNFX0JBTksxUEFSQU1FVEVSUywgQ09ORklHX1NZU19ERVYxX1BBUik7CiAjZW5kaWYKLSNpZmRlZiBDRkdfREVWMl9QQVIJCS8qIHNldCBwb3J0IHBhcmFtZXRlcnMgZm9yIERVQVJUIGRldmljZSBtb2R1bGUgYWNjZXNzICovCi0JR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzJQQVJBTUVURVJTLCBDRkdfREVWMl9QQVIpOworI2lmZGVmIENPTkZJR19TWVNfREVWMl9QQVIJCS8qIHNldCBwb3J0IHBhcmFtZXRlcnMgZm9yIERVQVJUIGRldmljZSBtb2R1bGUgYWNjZXNzICovCisJR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzJQQVJBTUVURVJTLCBDT05GSUdfU1lTX0RFVjJfUEFSKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHXzMyQklUX0JPT1RfUEFSCS8qIHNldCBwb3J0IHBhcmFtZXRlcnMgZm9yIEZsYXNoIGRldmljZSBtb2R1bGUgYWNjZXNzICovCisjaWZkZWYgQ09ORklHX1NZU18zMkJJVF9CT09UX1BBUgkvKiBzZXQgcG9ydCBwYXJhbWV0ZXJzIGZvciBGbGFzaCBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLwogCS8qIGRldGVjdCBpZiB3ZSBhcmUgYm9vdGluZyBmcm9tIHRoZSAzMiBiaXQgZmxhc2ggKi8KIAlpZiAoR1RSRUdSRUFEIChERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMpICYgKDB4MyA8PCAyMCkpIHsKIAkJLyogMzIgYml0IGJvb3QgZmxhc2ggKi8KLQkJR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzNQQVJBTUVURVJTLCBDRkdfOEJJVF9CT09UX1BBUik7CisJCUdUX1JFR19XUklURSAoREVWSUNFX0JBTkszUEFSQU1FVEVSUywgQ09ORklHX1NZU184QklUX0JPT1RfUEFSKTsKIAkJR1RfUkVHX1dSSVRFIChERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMsCi0JCQkgICAgICBDRkdfMzJCSVRfQk9PVF9QQVIpOworCQkJICAgICAgQ09ORklHX1NZU18zMkJJVF9CT09UX1BBUik7CiAJfSBlbHNlIHsKIAkJLyogOCBiaXQgYm9vdCBmbGFzaCAqLwotCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LM1BBUkFNRVRFUlMsIENGR18zMkJJVF9CT09UX1BBUik7Ci0JCUdUX1JFR19XUklURSAoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDRkdfOEJJVF9CT09UX1BBUik7CisJCUdUX1JFR19XUklURSAoREVWSUNFX0JBTkszUEFSQU1FVEVSUywgQ09ORklHX1NZU18zMkJJVF9CT09UX1BBUik7CisJCUdUX1JFR19XUklURSAoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDT05GSUdfU1lTXzhCSVRfQk9PVF9QQVIpOwogCX0KICNlbHNlCiAJLyogOCBiaXQgYm9vdCBmbGFzaCBvbmx5ICovCi0vKglHVF9SRUdfV1JJVEUoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDRkdfOEJJVF9CT09UX1BBUik7Ki8KKy8qCUdUX1JFR19XUklURShERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMsIENPTkZJR19TWVNfOEJJVF9CT09UX1BBUik7Ki8KICNlbmRpZgogCiAKIAlndF9jcHVfY29uZmlnICgpOwogCiAJLyogTVBQIHNldHVwICovCi0JR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDAsIENGR19NUFBfQ09OVFJPTF8wKTsKLQlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMSwgQ0ZHX01QUF9DT05UUk9MXzEpOwotCUdUX1JFR19XUklURSAoTVBQX0NPTlRST0wyLCBDRkdfTVBQX0NPTlRST0xfMik7Ci0JR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDMsIENGR19NUFBfQ09OVFJPTF8zKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMCwgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8wKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMSwgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8xKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMiwgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8yKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMywgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8zKTsKIAotCUdUX1JFR19XUklURSAoR1BQX0xFVkVMX0NPTlRST0wsIENGR19HUFBfTEVWRUxfQ09OVFJPTCk7CisJR1RfUkVHX1dSSVRFIChHUFBfTEVWRUxfQ09OVFJPTCwgQ09ORklHX1NZU19HUFBfTEVWRUxfQ09OVFJPTCk7CiAJREVCVUdfTEVEMF9PTiAoKTsKIAlERUJVR19MRUQxX09OICgpOwogCURFQlVHX0xFRDJfT04gKCk7CkBAIC0zNTksNyArMzU5LDcgQEAKIGludCBtaXNjX2luaXRfciAoKQogewogCWljYWNoZV9lbmFibGUgKCk7Ci0jaWZkZWYgQ0ZHX0wyCisjaWZkZWYgQ09ORklHX1NZU19MMgogCWwyY2FjaGVfZW5hYmxlICgpOwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX01QU0MKQEAgLTM4MCw5ICszODAsOSBAQAogCS8qIGNoZWNrIHRvIHNlZSBpZiB3ZSBib290ZWQgZnJvbSB0aGUgc3JhbS4gIElmIHNvLCBtb3ZlIHRoaW5ncwogCSAqIGJhY2sgdG8gdGhlIHdheSB0aGV5IHNob3VsZCBiZS4gKHdlJ3JlIHJ1bm5pbmcgZnJvbSBtYWluCiAJICogbWVtb3J5IGF0IHRoaXMgcG9pbnQgbm93ICovCi0JaWYgKG1lbW9yeUdldERldmljZUJhc2VBZGRyZXNzIChERVZJQ0UwKSA9PSBDRkdfREZMX0JPT1RDU19CQVNFKSB7Ci0JCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UwLCBDRkdfREVWMF9TUEFDRSwgQ0ZHX0RFVjBfU0laRSk7Ci0JCW1lbW9yeU1hcERldmljZVNwYWNlIChCT09UX0RFVklDRSwgQ0ZHX0RGTF9CT09UQ1NfQkFTRSwgXzhNKTsKKwlpZiAobWVtb3J5R2V0RGV2aWNlQmFzZUFkZHJlc3MgKERFVklDRTApID09IENPTkZJR19TWVNfREZMX0JPT1RDU19CQVNFKSB7CisJCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UwLCBDT05GSUdfU1lTX0RFVjBfU1BBQ0UsIENPTkZJR19TWVNfREVWMF9TSVpFKTsKKwkJbWVtb3J5TWFwRGV2aWNlU3BhY2UgKEJPT1RfREVWSUNFLCBDT05GSUdfU1lTX0RGTF9CT09UQ1NfQkFTRSwgXzhNKTsKIAl9CiAJZGlzcGxheV9tZW1fbWFwICgpOwogCS8qIG5vdywganVtcCB0byB0aGUgbWFpbiBwcGNib290IGJvYXJkIGluaXQgY29kZSAqLwpAQCAtNDAyLDcgKzQwMiw3IEBACiB7CiAJaW50IGxfdHlwZSA9IDA7CiAKLQlwcmludGYgKCJCT0FSRDogJXNcbiIsIENGR19CT0FSRF9OQU1FKTsKKwlwcmludGYgKCJCT0FSRDogJXNcbiIsIENPTkZJR19TWVNfQk9BUkRfTkFNRSk7CiAJcmV0dXJuIChsX3R5cGUpOwogfQogCkBAIC00MTUsMzQgKzQxNSwzNCBAQAogCWlmIChtb2RlID09IDEpIHsKIAkJc3dpdGNoIChsZWQpIHsKIAkJY2FzZSAwOgotCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENGR19ERVYxX1NQQUNFIHwKKwkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDT05GSUdfU1lTX0RFVjFfU1BBQ0UgfAogCQkJCQkweDA4MDAwKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgMToKLQkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDRkdfREVWMV9TUEFDRSB8CisJCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ09ORklHX1NZU19ERVYxX1NQQUNFIHwKIAkJCQkJMHgwYzAwMCk7CiAJCQlicmVhazsKIAogCQljYXNlIDI6Ci0JCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ0ZHX0RFVjFfU1BBQ0UgfAorCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENPTkZJR19TWVNfREVWMV9TUEFDRSB8CiAJCQkJCTB4MTAwMDApOwogCQkJYnJlYWs7CiAJCX0KIAl9IGVsc2UgaWYgKG1vZGUgPT0gMCkgewogCQlzd2l0Y2ggKGxlZCkgewogCQljYXNlIDA6Ci0JCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ0ZHX0RFVjFfU1BBQ0UgfAorCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENPTkZJR19TWVNfREVWMV9TUEFDRSB8CiAJCQkJCTB4MTQwMDApOwogCQkJYnJlYWs7CiAKIAkJY2FzZSAxOgotCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENGR19ERVYxX1NQQUNFIHwKKwkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDT05GSUdfU1lTX0RFVjFfU1BBQ0UgfAogCQkJCQkweDE4MDAwKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgMjoKLQkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDRkdfREVWMV9TUEFDRSB8CisJCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ09ORklHX1NZU19ERVYxX1NQQUNFIHwKIAkJCQkJMHgxYzAwMCk7CiAJCQlicmVhazsKIAkJfQpAQCAtNTEzLDcgKzUxMyw3IEBACiAKIC8qIERSQU0gY2hlY2sgcm91dGluZXMgY29waWVkIGZyb20gZ3c4MjYwICovCiAKLSNpZiBkZWZpbmVkIChDRkdfRFJBTV9URVNUKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUKQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogTkFNRTogIG1vdmU2NCgpIC0gIG1vdmVzIGEgZG91YmxlIHdvcmQgKDY0LWJpdCkJCSAgICAgKi8KQEAgLTU0NCw3ICs1NDQsNyBAQAogfQogCiAKLSNpZiBkZWZpbmVkIChDRkdfRFJBTV9URVNUX0RBVEEpCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQSkKIAogdW5zaWduZWQgbG9uZyBsb25nIHBhdHRlcm5bXSA9IHsKIAkweGFhYWFhYWFhYWFhYWFhYWFVTEwsCkBAIC02MDcsNyArNjA3LDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBpbnQgbWVtX3Rlc3RfZGF0YSAodm9pZCkKIHsKLQl1bnNpZ25lZCBsb25nIGxvbmcgKnBtZW0gPSAodW5zaWduZWQgbG9uZyBsb25nICopIENGR19NRU1URVNUX1NUQVJUOworCXVuc2lnbmVkIGxvbmcgbG9uZyAqcG1lbSA9ICh1bnNpZ25lZCBsb25nIGxvbmcgKikgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOwogCXVuc2lnbmVkIGxvbmcgbG9uZyB0ZW1wNjQgPSAwOwogCWludCBudW1fcGF0dGVybnMgPSBzaXplb2YgKHBhdHRlcm4pIC8gc2l6ZW9mIChwYXR0ZXJuWzBdKTsKIAlpbnQgaTsKQEAgLTYzNCw5ICs2MzQsOSBAQAogCiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVF9EQVRBICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQSAqLwogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVF9BRERSRVNTKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUX0FERFJFU1MpCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogTkFNRTogIG1lbV90ZXN0X2FkZHJlc3MoKSAtCXRlc3QgYWRkcmVzcyBsaW5lcwkJICAgICAqLwogLyoJCQkJCQkJCSAgICAgKi8KQEAgLTY2MSw4ICs2NjEsOCBAQAogaW50IG1lbV90ZXN0X2FkZHJlc3MgKHZvaWQpCiB7CiAJdm9sYXRpbGUgdW5zaWduZWQgaW50ICpwbWVtID0KLQkJKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQljb25zdCB1bnNpZ25lZCBpbnQgc2l6ZSA9IChDRkdfTUVNVEVTVF9FTkQgLSBDRkdfTUVNVEVTVF9TVEFSVCkgLyA0OworCQkodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwljb25zdCB1bnNpZ25lZCBpbnQgc2l6ZSA9IChDT05GSUdfU1lTX01FTVRFU1RfRU5EIC0gQ09ORklHX1NZU19NRU1URVNUX1NUQVJUKSAvIDQ7CiAJdW5zaWduZWQgaW50IGk7CiAKIAkvKiB3cml0ZSBhZGRyZXNzIHRvIGVhY2ggbG9jYXRpb24gKi8KQEAgLTY3OSw5ICs2NzksOSBAQAogCX0KIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUX0FERFJFU1MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTICovCiAKLSNpZiBkZWZpbmVkIChDRkdfRFJBTV9URVNUX1dBTEspCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19EUkFNX1RFU1RfV0FMSykKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBOQU1FOiAgIG1lbV9tYXJjaCgpIC0gIG1lbW9yeSBtYXJjaAkJCQkgICAgICovCiAvKgkJCQkJCQkJICAgICAqLwpAQCAtNzM5LDcgKzczOSw3IEBACiAJfQogCXJldHVybiAwOwogfQotI2VuZGlmIC8qIENGR19EUkFNX1RFU1RfV0FMSyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEsgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE5BTUU6ICAgbWVtX3Rlc3Rfd2FsaygpIC0gIGEgc2ltcGxlIHdhbGtpbmcgb25lcyB0ZXN0CSAgICAgKi8KQEAgLTc3MSw4ICs3NzEsOCBAQAogewogCXVuc2lnbmVkIGxvbmcgbG9uZyBtYXNrOwogCXZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgbG9uZyAqcG1lbSA9Ci0JCSh2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGxvbmcgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7Ci0JY29uc3QgdW5zaWduZWQgbG9uZyBzaXplID0gKENGR19NRU1URVNUX0VORCAtIENGR19NRU1URVNUX1NUQVJUKSAvIDg7CisJCSh2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGxvbmcgKikgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOworCWNvbnN0IHVuc2lnbmVkIGxvbmcgc2l6ZSA9IChDT05GSUdfU1lTX01FTVRFU1RfRU5EIC0gQ09ORklHX1NZU19NRU1URVNUX1NUQVJUKSAvIDg7CiAKIAl1bnNpZ25lZCBpbnQgaTsKIApAQCAtODQ4LDkgKzg0OCw5IEBACiAvKiAgICBydW53YWxrID0gMDsgKi8KIAogCWlmICgocnVuZGF0YSA9PSAxKSB8fCAocnVuYWRkcmVzcyA9PSAxKSB8fCAocnVud2FsayA9PSAxKSkgewotCQlwcmludGYgKCJUZXN0aW5nIFJBTSBmcm9tIDB4JTA4eCB0byAweCUwOHggLi4uICAoZG9uJ3QgcGFuaWMuLi4gdGhhdCB3aWxsIHRha2UgYSBtb21lbnQgISEhISlcbiIsIENGR19NRU1URVNUX1NUQVJULCBDRkdfTUVNVEVTVF9FTkQpOworCQlwcmludGYgKCJUZXN0aW5nIFJBTSBmcm9tIDB4JTA4eCB0byAweCUwOHggLi4uICAoZG9uJ3QgcGFuaWMuLi4gdGhhdCB3aWxsIHRha2UgYSBtb21lbnQgISEhISlcbiIsIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCwgQ09ORklHX1NZU19NRU1URVNUX0VORCk7CiAJfQotI2lmZGVmIENGR19EUkFNX1RFU1RfREFUQQorI2lmZGVmIENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEKIAlpZiAocnVuZGF0YSA9PSAxKSB7CiAJCXByaW50ZiAoIlRlc3QgREFUQSAuLi4gICIpOwogCQlpZiAobWVtX3Rlc3RfZGF0YSAoKSA9PSAxKSB7CkBAIC04NjAsNyArODYwLDcgQEAKIAkJCXByaW50ZiAoIm9rIFxuIik7CiAJfQogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RSQU1fVEVTVF9BRERSRVNTCisjaWZkZWYgQ09ORklHX1NZU19EUkFNX1RFU1RfQUREUkVTUwogCWlmIChydW5hZGRyZXNzID09IDEpIHsKIAkJcHJpbnRmICgiVGVzdCBBRERSRVNTIC4uLiAgIik7CiAJCWlmIChtZW1fdGVzdF9hZGRyZXNzICgpID09IDEpIHsKQEAgLTg3MCw3ICs4NzAsNyBAQAogCQkJcHJpbnRmICgib2sgXG4iKTsKIAl9CiAjZW5kaWYKLSNpZmRlZiBDRkdfRFJBTV9URVNUX1dBTEsKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVF9XQUxLCiAJaWYgKHJ1bndhbGsgPT0gMSkgewogCQlwcmludGYgKCJUZXN0IFdBTEtJTkcgT05FcyAuLi4gICIpOwogCQlpZiAobWVtX3Rlc3Rfd2FsayAoKSA9PSAxKSB7CkBAIC04ODYsNyArODg2LDcgQEAKIAlyZXR1cm4gMDsKIAogfQotI2VuZGlmIC8qIENGR19EUkFNX1RFU1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVCAqLwogCiAvKiByb25lbiAtIHRoZSBiZWxvdyBmdW5jdGlvbnMgYXJlIHVzZWQgYnkgdGhlIGJvb3RtIGZ1bmN0aW9uICAgICAgICAgICAqLwogLyogIC0gd2UgbWFwIHRoZSBiYXNlIHJlZ2lzdGVyIHRvIGZiZTAwMDAwIChzYW1lIG1hcHBpbmcgYXMgaW4gdGhlIExTUCkgKi8KQEAgLTkyNSw3ICs5MjUsNyBAQAogCUdUX1JFR19XUklURSAoTVY2NDQ2MF9FVEhfUkVDRUlWRV9RVUVVRV9DT01NQU5EX1JFRyAoMiksIDB4MDAwMGZmMDApOwogCiAvKiBSZWxvY2F0ZSBNVjY0NDYwIGludGVybmFsIHJlZ3MgKi8KLQlteV9yZW1hcF9ndF9yZWdzX2Jvb3RtIChDRkdfR1RfUkVHUywgQlJJREdFX1JFR19CQVNFX0JPT1RNKTsKKwlteV9yZW1hcF9ndF9yZWdzX2Jvb3RtIChDT05GSUdfU1lTX0dUX1JFR1MsIEJSSURHRV9SRUdfQkFTRV9CT09UTSk7CiAKIAlpY2FjaGVfZGlzYWJsZSAoKTsKIAlkY2FjaGVfZGlzYWJsZSAoKTsKZGlmZiAtLWdpdCBhL2JvYXJkL01hcnZlbGwvZGI2NDQ2MC9tcHNjLmMgYi9ib2FyZC9NYXJ2ZWxsL2RiNjQ0NjAvbXBzYy5jCmluZGV4IDM1OWI4MzEuLjMwM2E2MzYgMTAwNjQ0Ci0tLSBhL2JvYXJkL01hcnZlbGwvZGI2NDQ2MC9tcHNjLmMKKysrIGIvYm9hcmQvTWFydmVsbC9kYjY0NDYwL21wc2MuYwpAQCAtNDI2LDcgKzQyNiw3IEBACiAJCQkgIChNVjY0NDYwX0NVTklUX0JBU0VfQUREUl9XSU5fMF9CSVQgKiAyKSkpOwogCiAvKiBTZXR1cCBNUFNDIGludGVybmFsIGFkZHJlc3Mgc3BhY2UgYmFzZSBhZGRyZXNzCSovCi0JR1RfUkVHX1dSSVRFIChDVU5JVF9JTlRFUk5BTF9TUEFDRV9CQVNFX0FERFJfUkVHLCBDRkdfR1RfUkVHUyk7CisJR1RfUkVHX1dSSVRFIChDVU5JVF9JTlRFUk5BTF9TUEFDRV9CQVNFX0FERFJfUkVHLCBDT05GSUdfU1lTX0dUX1JFR1MpOwogCiAvKiBubyBoaWdoIGFkZHJlc3MgcmVtYXAqLwogCUdUX1JFR19XUklURSAoQ1VOSVRfSElHSF9BRERSX1JFTUFQX1JFRzAsIDB4MDApOwpAQCAtNTE2LDkgKzUxNiw5IEBACiAKICNpZmRlZiBaVU1BX05UTAogCS8qIGZyb20gdGNsayAqLwotCWNsb2NrID0gKENGR19UQ0xLIC8gKDE2ICogcmF0ZSkpIC0gMTsKKwljbG9jayA9IChDT05GSUdfU1lTX1RDTEsgLyAoMTYgKiByYXRlKSkgLSAxOwogI2Vsc2UKLQljbG9jayA9IChDRkdfVENMSyAvICgxNiAqIHJhdGUpKSAtIDE7CisJY2xvY2sgPSAoQ09ORklHX1NZU19UQ0xLIC8gKDE2ICogcmF0ZSkpIC0gMTsKICNlbmRpZgogCiAJZ2FsYnJnX3NldF9DRFYgKGNoYW5uZWwsIGNsb2NrKTsJLyogc2V0IHRpbWVyIFJlZy4gZm9yIEJSRyAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvTWFydmVsbC9kYjY0NDYwL3BjaS5jIGIvYm9hcmQvTWFydmVsbC9kYjY0NDYwL3BjaS5jCmluZGV4IDU2MzcyODQuLmE3ZTNjOTUgMTAwNjQ0Ci0tLSBhL2JvYXJkL01hcnZlbGwvZGI2NDQ2MC9wY2kuYworKysgYi9ib2FyZC9NYXJ2ZWxsL2RiNjQ0NjAvcGNpLmMKQEAgLTg1OSwxNCArODU5LDE0IEBACiAKIAkvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKHBjaTBfaG9zZS5yZWdpb25zICsgMCwKLQkJCUNGR19QQ0kwXzBfTUVNX1NQQUNFLAotCQkJQ0ZHX1BDSTBfMF9NRU1fU1BBQ0UsCi0JCQlDRkdfUENJMF9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOworCQkJQ09ORklHX1NZU19QQ0kwXzBfTUVNX1NQQUNFLAorCQkJQ09ORklHX1NZU19QQ0kwXzBfTUVNX1NQQUNFLAorCQkJQ09ORklHX1NZU19QQ0kwX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CiAKIAkvKiBQQ0kgSS9PIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKHBjaTBfaG9zZS5yZWdpb25zICsgMSwKLQkJCUNGR19QQ0kwX0lPX1NQQUNFX1BDSSwKLQkJCUNGR19QQ0kwX0lPX1NQQUNFLCBDRkdfUENJMF9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKKwkJCUNPTkZJR19TWVNfUENJMF9JT19TUEFDRV9QQ0ksCisJCQlDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0UsIENPTkZJR19TWVNfUENJMF9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKIAogCXBjaV9zZXRfb3BzICgmcGNpMF9ob3NlLAogCQkgICAgIHBjaV9ob3NlX3JlYWRfY29uZmlnX2J5dGVfdmlhX2R3b3JkLApAQCAtOTAxLDE0ICs5MDEsMTQgQEAKIAogCS8qIFBDSSBtZW1vcnkgc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbiAocGNpMV9ob3NlLnJlZ2lvbnMgKyAwLAotCQkJQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UsCi0JCQlDRkdfUENJMV8wX01FTV9TUEFDRSwKLQkJCUNGR19QQ0kxX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CisJCQlDT05GSUdfU1lTX1BDSTFfMF9NRU1fU1BBQ0UsCisJCQlDT05GSUdfU1lTX1BDSTFfMF9NRU1fU1BBQ0UsCisJCQlDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKIAogCS8qIFBDSSBJL08gc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbiAocGNpMV9ob3NlLnJlZ2lvbnMgKyAxLAotCQkJQ0ZHX1BDSTFfSU9fU1BBQ0VfUENJLAotCQkJQ0ZHX1BDSTFfSU9fU1BBQ0UsIENGR19QQ0kxX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOworCQkJQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFX1BDSSwKKwkJCUNPTkZJR19TWVNfUENJMV9JT19TUEFDRSwgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOwogCiAJcGNpX3NldF9vcHMgKCZwY2kxX2hvc2UsCiAJCSAgICAgcGNpX2hvc2VfcmVhZF9jb25maWdfYnl0ZV92aWFfZHdvcmQsCmRpZmYgLS1naXQgYS9ib2FyZC9NYXJ2ZWxsL2RiNjQ0NjAvc2RyYW1faW5pdC5jIGIvYm9hcmQvTWFydmVsbC9kYjY0NDYwL3NkcmFtX2luaXQuYwppbmRleCBmMzZmMzQ4Li42ZDZiMTI2IDEwMDY0NAotLS0gYS9ib2FyZC9NYXJ2ZWxsL2RiNjQ0NjAvc2RyYW1faW5pdC5jCisrKyBiL2JvYXJkL01hcnZlbGwvZGI2NDQ2MC9zZHJhbV9pbml0LmMKQEAgLTMxMiw3ICszMTIsNyBAQAogCX0gZWxzZQogCQlkaW1tSW5mby0+c2xvdCA9IHNsb3Q7CS8qIHN0YXJ0IHRvIGZpbGwgdXAgZGltbWluZm8gZm9yIHRoaXMgInNsb3QiICovCiAKLSNpZmRlZiBDRkdfRElTUExBWV9ESU1NX1NQRF9DT05URU5UCisjaWZkZWYgQ09ORklHX1NZU19ESVNQTEFZX0RJTU1fU1BEX0NPTlRFTlQKIAogCWZvciAoaSA9IDA7IGkgPD0gMTI3OyBpKyspIHsKIAkJcHJpbnRmICgiU1BELUVFUFJPTSBCeXRlICUzZCA9ICUzeCAoJTNkKVxuIiwgaSwgZGF0YVtpXSwKQEAgLTY5MCwxNiArNjkwLDE2IEBACiAJCQkJCQlpZiAoKGRpbW1JbmZvLT4KIAkJCQkJCSAgICAgbWluaW11bUN5Y2xlVGltZUF0TWF4Q2FzTGF0YW5jeV9Mb1AKIAkJCQkJCSAgICAgPAotCQkJCQkJICAgICBDRkdfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX0xPUCkKKwkJCQkJCSAgICAgQ09ORklHX1NZU19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfTE9QKQogCQkJCQkJICAgIHx8CiAJCQkJCQkgICAgKChkaW1tSW5mby0+CiAJCQkJCQkgICAgICBtaW5pbXVtQ3ljbGVUaW1lQXRNYXhDYXNMYXRhbmN5X0xvUAogCQkJCQkJICAgICAgPT0KLQkJCQkJCSAgICAgIENGR19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfTE9QKQorCQkJCQkJICAgICAgQ09ORklHX1NZU19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfTE9QKQogCQkJCQkJICAgICAmJiAoZGltbUluZm8tPgogCQkJCQkJCSBtaW5pbXVtQ3ljbGVUaW1lQXRNYXhDYXNMYXRhbmN5X1JvUAogCQkJCQkJCSA8Ci0JCQkJCQkJIENGR19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfUk9QKSkpCisJCQkJCQkJIENPTkZJR19TWVNfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX1JPUCkpKQogCQkJCQkJewogCQkJCQkJCWRpbW1JbmZvLT4KIAkJCQkJCQkJbWF4Q2xTdXBwb3J0ZWRfRERSCkBAIC03MTQsMTYgKzcxNCwxNiBAQAogCQkJCQkJaWYgKChkaW1tSW5mby0+CiAJCQkJCQkgICAgIG1pbmltdW1DeWNsZVRpbWVBdE1heENhc0xhdGFuY3lfTG9QCiAJCQkJCQkgICAgID4KLQkJCQkJCSAgICAgQ0ZHX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1ApCisJCQkJCQkgICAgIENPTkZJR19TWVNfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX0xPUCkKIAkJCQkJCSAgICB8fAogCQkJCQkJICAgICgoZGltbUluZm8tPgogCQkJCQkJICAgICAgbWluaW11bUN5Y2xlVGltZUF0TWF4Q2FzTGF0YW5jeV9Mb1AKIAkJCQkJCSAgICAgID09Ci0JCQkJCQkgICAgICBDRkdfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX0xPUCkKKwkJCQkJCSAgICAgIENPTkZJR19TWVNfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX0xPUCkKIAkJCQkJCSAgICAgJiYgKGRpbW1JbmZvLT4KIAkJCQkJCQkgbWluaW11bUN5Y2xlVGltZUF0TWF4Q2FzTGF0YW5jeV9Sb1AKIAkJCQkJCQkgPgotCQkJCQkJCSBDRkdfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX1JPUCkpKQorCQkJCQkJCSBDT05GSUdfU1lTX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9ST1ApKSkKIAkJCQkJCXsKIAkJCQkJCQlwcmludGYgKCIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiIpOwogCQkJCQkJCXByaW50ZiAoIioqKiBzeXNDbG9jayBpcyBoaWdoZXIgdGhhbiBTRFJBTSdzIGFsbG93ZWQgZnJlcXVlbmN5ICoqKlxuIik7CkBAIC0xMjg5LDM3ICsxMjg5LDM3IEBACiAJY2FzZSAweDA6CiAJY2FzZSAweDgwOgkJLyogcmVmcmVzaCBwZXJpb2QgaXMgMTUuNjI1IHVzZWMgKi8KIAkJc2RyYW1fY29uZmlnX3JlZyA9Ci0JCQkodW5zaWduZWQgaW50KSAoKChmbG9hdCkgMTUuNjI1ICogKGZsb2F0KSBDRkdfQlVTX0haKQorCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDE1LjYyNSAqIChmbG9hdCkgQ09ORklHX1NZU19CVVNfSFopCiAJCQkJCS8gKGZsb2F0KSAxMDAwMDAwLjApOwogCQlicmVhazsKIAljYXNlIDB4MToKIAljYXNlIDB4ODE6CQkvKiByZWZyZXNoIHBlcmlvZCBpcyAzLjkgdXNlYyAqLwogCQlzZHJhbV9jb25maWdfcmVnID0KLQkJCSh1bnNpZ25lZCBpbnQpICgoKGZsb2F0KSAzLjkgKiAoZmxvYXQpIENGR19CVVNfSFopIC8KKwkJCSh1bnNpZ25lZCBpbnQpICgoKGZsb2F0KSAzLjkgKiAoZmxvYXQpIENPTkZJR19TWVNfQlVTX0haKSAvCiAJCQkJCShmbG9hdCkgMTAwMDAwMC4wKTsKIAkJYnJlYWs7CiAJY2FzZSAweDI6CiAJY2FzZSAweDgyOgkJLyogcmVmcmVzaCBwZXJpb2QgaXMgNy44IHVzZWMgKi8KIAkJc2RyYW1fY29uZmlnX3JlZyA9Ci0JCQkodW5zaWduZWQgaW50KSAoKChmbG9hdCkgNy44ICogKGZsb2F0KSBDRkdfQlVTX0haKSAvCisJCQkodW5zaWduZWQgaW50KSAoKChmbG9hdCkgNy44ICogKGZsb2F0KSBDT05GSUdfU1lTX0JVU19IWikgLwogCQkJCQkoZmxvYXQpIDEwMDAwMDAuMCk7CiAJCWJyZWFrOwogCWNhc2UgMHgzOgogCWNhc2UgMHg4MzoJCS8qIHJlZnJlc2ggcGVyaW9kIGlzIDMxLjMgdXNlYyAqLwogCQlzZHJhbV9jb25maWdfcmVnID0KLQkJCSh1bnNpZ25lZCBpbnQpICgoKGZsb2F0KSAzMS4zICogKGZsb2F0KSBDRkdfQlVTX0haKSAvCisJCQkodW5zaWduZWQgaW50KSAoKChmbG9hdCkgMzEuMyAqIChmbG9hdCkgQ09ORklHX1NZU19CVVNfSFopIC8KIAkJCQkJKGZsb2F0KSAxMDAwMDAwLjApOwogCQlicmVhazsKIAljYXNlIDB4NDoKIAljYXNlIDB4ODQ6CQkvKiByZWZyZXNoIHBlcmlvZCBpcyA2Mi41IHVzZWMgKi8KIAkJc2RyYW1fY29uZmlnX3JlZyA9Ci0JCQkodW5zaWduZWQgaW50KSAoKChmbG9hdCkgNjIuNSAqIChmbG9hdCkgQ0ZHX0JVU19IWikgLworCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDYyLjUgKiAoZmxvYXQpIENPTkZJR19TWVNfQlVTX0haKSAvCiAJCQkJCShmbG9hdCkgMTAwMDAwMC4wKTsKIAkJYnJlYWs7CiAJY2FzZSAweDU6CiAJY2FzZSAweDg1OgkJLyogcmVmcmVzaCBwZXJpb2QgaXMgMTI1IHVzZWMgKi8KIAkJc2RyYW1fY29uZmlnX3JlZyA9Ci0JCQkodW5zaWduZWQgaW50KSAoKChmbG9hdCkgMTI1ICogKGZsb2F0KSBDRkdfQlVTX0haKSAvCisJCQkodW5zaWduZWQgaW50KSAoKChmbG9hdCkgMTI1ICogKGZsb2F0KSBDT05GSUdfU1lTX0JVU19IWikgLwogCQkJCQkoZmxvYXQpIDEwMDAwMDAuMCk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CQkvKiByZWZyZXNoIHBlcmlvZCB1bmRlZmluZWQgKi8KQEAgLTE4MTYsNyArMTgxNiw3IEBACiAKIAlwcmludGYgKCItLSBESU1NMiBoYXMgJWQgYmFua3NcbiIsIGRpbW1JbmZvMi5udW1PZk1vZHVsZUJhbmtzKTsKIAotCWZvciAoYmFua19ubyA9IDA7IGJhbmtfbm8gPCBDRkdfRFJBTV9CQU5LUzsgYmFua19ubysrKSB7CisJZm9yIChiYW5rX25vID0gMDsgYmFua19ubyA8IENPTkZJR19TWVNfRFJBTV9CQU5LUzsgYmFua19ubysrKSB7CiAJCS8qIHNraXAgb3ZlciBiYW5rcyB0aGF0IGFyZSBub3QgcG9wdWxhdGVkICovCiAJCWlmICghY2hlY2tiYW5rW2Jhbmtfbm9dKQogCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9ib2FyZC9NaWdvUi9taWdvX3IuYyBiL2JvYXJkL01pZ29SL21pZ29fci5jCmluZGV4IGIzMWYzN2QuLjIwNGNhNzggMTAwNjQ0Ci0tLSBhL2JvYXJkL01pZ29SL21pZ29fci5jCisrKyBiL2JvYXJkL01pZ29SL21pZ29fci5jCkBAIC00Miw5ICs0Miw5IEBACiB7CiAJREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLQlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ0ZHX1NEUkFNX0JBU0U7Ci0JZ2QtPmJkLT5iaV9tZW1zaXplID0gQ0ZHX1NEUkFNX1NJWkU7Ci0JcHJpbnRmKCJEUkFNOiAgJWRNQlxuIiwgQ0ZHX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKKwlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRTsKKwlwcmludGYoIkRSQU06ICAlZE1CXG4iLCBDT05GSUdfU1lTX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvUlBYQ2xhc3NpYy9SUFhDbGFzc2ljLmMgYi9ib2FyZC9SUFhDbGFzc2ljL1JQWENsYXNzaWMuYwppbmRleCA4MDQ2MzVhLi45ZmRmNzAwIDEwMDY0NAotLS0gYS9ib2FyZC9SUFhDbGFzc2ljL1JQWENsYXNzaWMuYworKysgYi9ib2FyZC9SUFhDbGFzc2ljL1JQWENsYXNzaWMuYwpAQCAtMTExLDcgKzExMSw3IEBACiAJY2hhciBidWZmWzI1Nl0sICpjcDsKIAogCS8qIEluaXRpYWxpemUgSTJDCQkJCQkqLwotCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAogCS8qIFJlYWQgMjU2IGJ5dGVzIGluIEVFUFJPTQkJCQkqLwogCWkyY19yZWFkICgweDU0LCAwLCAxLCAodWNoYXIgKilidWZmLCAxMjgpOwpAQCAtMTY3LDcgKzE2Nyw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplMTA7CiAKQEAgLTE3NSwxNSArMTc1LDE1IEBACiAJCQkgICBzaXplb2YgKHNkcmFtX3RhYmxlKSAvIHNpemVvZiAodWludCkpOwogCiAJLyogUmVmcmVzaCBjbG9jayBwcmVzY2FsYXIgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAogCW1lbWN0bC0+bWVtY19tYXIgPSAweDAwMDAwMDAwOwogCiAJLyogTWFwIGNvbnRyb2xsZXIgYmFua3MgMSB0byB0aGUgU0RSQU0gYmFuayAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1IxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl8xMENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzEwQ09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCiAKIAl1ZGVsYXkgKDIwMCk7CiAKQEAgLTIwMCw3ICsyMDAsNyBAQAogCSAqIHRyeSAxMCBjb2x1bW4gbW9kZQogCSAqLwogCi0Jc2l6ZTEwID0gZHJhbV9zaXplIChDRkdfTUFNUl8xMENPTCwgU0RSQU1fQkFTRV9QUkVMSU0sCisJc2l6ZTEwID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfMTBDT0wsIFNEUkFNX0JBU0VfUFJFTElNLAogCQkJCQkJU0RSQU1fTUFYX1NJWkUpOwogCiAJcmV0dXJuIChzaXplMTApOwpAQCAtMjE4LDcgKzIxOCw3IEBACiAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1hbXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLCBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvUlBYQ2xhc3NpYy9lY2N4LmMgYi9ib2FyZC9SUFhDbGFzc2ljL2VjY3guYwppbmRleCBjYzc2YmJkLi5lMWYzZjlkIDEwMDY0NAotLS0gYS9ib2FyZC9SUFhDbGFzc2ljL2VjY3guYworKysgYi9ib2FyZC9SUFhDbGFzc2ljL2VjY3guYwpAQCAtMjk5LDcgKzI5OSw3IEBACiAgKi8KIHVuc2lnbmVkIGludCBib2FyZF92aWRlb19pbml0ICh2b2lkKQogewotICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICB2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKICAgICAvKiBQcm9ncmFtIEVDQ1ggcmVnaXN0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL1JQWENsYXNzaWMvZmxhc2guYyBiL2JvYXJkL1JQWENsYXNzaWMvZmxhc2guYwppbmRleCAyZTBiOGY5Li5mMDdkOTYwIDEwMDY0NAotLS0gYS9ib2FyZC9SUFhDbGFzc2ljL2ZsYXNoLmMKKysrIGIvYm9hcmQvUlBYQ2xhc3NpYy9mbGFzaC5jCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTUxLDIwICs1MSwyMCBAQAogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMzEzLDcgKzMxMyw3IEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gKHZ1X2xvbmcgKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJd2hpbGUgKChhZGRyWzBdICYgMHg4MDgwODA4MCkgIT0gMHg4MDgwODA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtNDM2LDcgKzQzNiw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIDB4ODA4MDgwODApICE9IChkYXRhICYgMHg4MDgwODA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL1JQWGxpdGUvUlBYbGl0ZS5jIGIvYm9hcmQvUlBYbGl0ZS9SUFhsaXRlLmMKaW5kZXggYmNhMzFlNC4uZGNhNTNhNCAxMDA2NDQKLS0tIGEvYm9hcmQvUlBYbGl0ZS9SUFhsaXRlLmMKKysrIGIvYm9hcmQvUlBYbGl0ZS9SUFhsaXRlLmMKQEAgLTEwNCw3ICsxMDQsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZTEwOwogCkBAIC0xMTIsMTUgKzExMiwxNSBAQAogCQkgICBzaXplb2YgKHNkcmFtX3RhYmxlKSAvIHNpemVvZiAodWludCkpOwogCiAJLyogUmVmcmVzaCBjbG9jayBwcmVzY2FsYXIgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAogCW1lbWN0bC0+bWVtY19tYXIgPSAweDAwMDAwMDAwOwogCiAJLyogTWFwIGNvbnRyb2xsZXIgYmFua3MgMSB0byB0aGUgU0RSQU0gYmFuayAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1IxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl8xMENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzEwQ09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCiAKIAl1ZGVsYXkgKDIwMCk7CiAKQEAgLTEzNyw3ICsxMzcsNyBAQAogCSAqIHRyeSAxMCBjb2x1bW4gbW9kZQogCSAqLwogCi0Jc2l6ZTEwID0gZHJhbV9zaXplIChDRkdfTUFNUl8xMENPTCwgU0RSQU1fQkFTRV9QUkVMSU0sCisJc2l6ZTEwID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfMTBDT0wsIFNEUkFNX0JBU0VfUFJFTElNLAogCQkJICAgIFNEUkFNX01BWF9TSVpFKTsKIAogCXJldHVybiAoc2l6ZTEwKTsKQEAgLTE1Niw3ICsxNTYsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvUlBYbGl0ZS9mbGFzaC5jIGIvYm9hcmQvUlBYbGl0ZS9mbGFzaC5jCmluZGV4IDY1OWQ2MGEuLjc4OGZjZGYgMTAwNjQ0Ci0tLSBhL2JvYXJkL1JQWGxpdGUvZmxhc2guYworKysgYi9ib2FyZC9SUFhsaXRlL2ZsYXNoLmMKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtNTIsMTMgKzUyLDEzIEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLS8qCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOyAqLworLyoJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOyAqLwogLyoJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOyAqLwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMCA7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTczLDE5ICs3MywxOSBAQAogKi8KIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCiAvKiUlJQotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsKICUlJSovCiAJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwogCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKLQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0zOTAsNyArMzkwLDcgQEAKIAlsYXN0ICA9IHN0YXJ0OwogCWFkZHIgPSAodnVfbG9uZyAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAweDgwODA4MDgwKSAhPSAweDgwODA4MDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC01MTMsNyArNTEzLDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKigodnVfbG9uZyAqKWRlc3QpICYgMHg4MDgwODA4MCkgIT0gKGRhdGEgJiAweDgwODA4MDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvUlBYbGl0ZV9kdy9SUFhsaXRlX2R3LmMgYi9ib2FyZC9SUFhsaXRlX2R3L1JQWGxpdGVfZHcuYwppbmRleCBkNmZhYmYwLi4zNjRhMzE2IDEwMDY0NAotLS0gYS9ib2FyZC9SUFhsaXRlX2R3L1JQWGxpdGVfZHcuYworKysgYi9ib2FyZC9SUFhsaXRlX2R3L1JQWGxpdGVfZHcuYwpAQCAtMTA2LDIyICsxMDYsMjIgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZTk7CiAKIAl1cG1jb25maWcoVVBNQSwgKHVpbnQgKilzZHJhbV90YWJsZSwgc2l6ZW9mKHNkcmFtX3RhYmxlKS9zaXplb2YodWludCkpOwogCiAJLyogUmVmcmVzaCBjbG9jayBwcmVzY2FsYXIgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFIgOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFIgOwogCiAJbWVtY3RsLT5tZW1jX21hciAgPSAweDAwMDAwMDg4OwogCiAJLyogTWFwIGNvbnRyb2xsZXIgYmFua3MgMSB0byB0aGUgU0RSQU0gYmFuayAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1IxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl85Q09MICYgKH4oTUFNUl9QVEFFKSk7IC8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOUNPTCAmICh+KE1BTVJfUFRBRSkpOyAvKiBubyByZWZyZXNoIHlldCAqLwogCS8qRGlzYWJsZSBQZXJpb2RpYyB0aW1lciBBLiAqLwogCiAJdWRlbGF5KDIwMCk7CkBAIC0xNDIsMTMgKzE0MiwxMyBAQAogCSAgKiB0cnkgOSBjb2x1bW4gbW9kZQogCSAgKi8KIAotCXNpemU5ID0gZHJhbV9zaXplIChDRkdfTUFNUl85Q09MLCBTRFJBTV9CQVNFX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOworCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwgU0RSQU1fQkFTRV9QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKIAogCS8qCiAJICogRmluYWwgbWFwcGluZzoKIAkgKi8KIAotCW1lbWN0bC0+bWVtY19vcjEgPSAoKC1zaXplOSkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07CisJbWVtY3RsLT5tZW1jX29yMSA9ICgoLXNpemU5KSAmIDB4RkZGRjAwMDApIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU07CiAKIAl1ZGVsYXkgKDEwMDApOwogCkBAIC0xNzEsNyArMTcxLDcgQEAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1hbXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLAogCQkJICAgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKZGlmZiAtLWdpdCBhL2JvYXJkL1JQWGxpdGVfZHcvZmxhc2guYyBiL2JvYXJkL1JQWGxpdGVfZHcvZmxhc2guYwppbmRleCA0MWNiMDM2Li45MTc4OGFmIDEwMDY0NAotLS0gYS9ib2FyZC9SUFhsaXRlX2R3L2ZsYXNoLmMKKysrIGIvYm9hcmQvUlBYbGl0ZV9kdy9mbGFzaC5jCkBAIC00OSw3ICs0OSw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMgICB2dV9sb25nIDogdm9sYXRpbGUgdW5zaWduZWQgbG9uZyBJTiBpbmNsdWRlL2NvbW1vbi5oCkBAIC02NCwyMiArNjQsMjIgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7Ci0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIElmIE1vbml0b3IgaXMgaW4gdGhlIGNvcGUgb2YgRkxBU0gsdGhlbgogCSAqIHByb3RlY3QgdGhpcyBhcmVhIGJ5IGRlZmF1bHQgaW4gY2FzZSBmb3IKIAkgKiBvdGhlciBvY2N1cGF0aW9uLiBbU0FNXSAqLwogCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrQ0ZHX01PTklUT1JfTEVOLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRStDT05GSUdfU1lTX01PTklUT1JfTEVOLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IHNpemVfYjA7CkBAIC0zNjAsNyArMzYwLDcgQEAKIAlsYXN0ICA9IHN0YXJ0OwogCWFkZHIgPSAodnVfbG9uZyAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAweDgwODA4MDgwKSAhPSAweDgwODA4MDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC00ODIsNyArNDgyLDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKigodnVfbG9uZyAqKWRlc3QpICYgMHg4MDgwODA4MCkgIT0gKGRhdGEgJiAweDgwODA4MDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvUlJ2aXNpb24vUlJ2aXNpb24uYyBiL2JvYXJkL1JSdmlzaW9uL1JSdmlzaW9uLmMKaW5kZXggYzBiNzcyZC4uOWQwMTZjNSAxMDA2NDQKLS0tIGEvYm9hcmQvUlJ2aXNpb24vUlJ2aXNpb24uYworKysgYi9ib2FyZC9SUnZpc2lvbi9SUnZpc2lvbi5jCkBAIC0xMTIsNyArMTEyLDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgcmVnOwogCWxvbmcgaW50IHNpemU4LCBzaXplOTsKQEAgLTEyNiwxNyArMTI2LDE3IEBACiAJICogd2l0aCB0d28gU0RSQU0gYmFua3Mgb3IgZm91ciBjeWNsZXMgZXZlcnkgMzEuMiB1cyB3aXRoIG9uZQogCSAqIGJhbmsuIEl0IHdpbGwgYmUgYWRqdXN0ZWQgYWZ0ZXIgbWVtb3J5IHNpemluZy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzhLOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzhLOwogCiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIGJhbmsgMSB0aGUgU0RSQU0gYmFuayAyIGF0IHBoeXNpY2FsIGFkZHJlc3MgMC4KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMl9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAogCXVkZWxheSAoMjAwKTsKIApAQCAtMTU2LDcgKzE1Niw3IEBACiAJICoKIAkgKiB0cnkgOCBjb2x1bW4gbW9kZQogCSAqLwotCXNpemU4ID0gZHJhbV9zaXplIChDRkdfTUFNUl84Q09MLAorCXNpemU4ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOENPTCwKIAkJCSAgIFNEUkFNX0JBU0UyX1BSRUxJTSwKIAkJCSAgIFNEUkFNX01BWF9TSVpFKTsKIApAQCAtMTY1LDcgKzE2NSw3IEBACiAJLyoKIAkgKiB0cnkgOSBjb2x1bW4gbW9kZQogCSAqLwotCXNpemU5ID0gZHJhbV9zaXplIChDRkdfTUFNUl85Q09MLAorCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwKIAkJCSAgIFNEUkFNX0JBU0UyX1BSRUxJTSwKIAkJCSAgIFNEUkFNX01BWF9TSVpFKTsKIApAQCAtMTc0LDcgKzE3NCw3IEBACiAvKgkJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOSBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsJKi8KIAl9IGVsc2UgewkJCS8qIGJhY2sgdG8gOCBjb2x1bW5zICAgICAgICAgICAgKi8KIAkJc2l6ZSA9IHNpemU4OwotCQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0w7CisJCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0w7CiAJCXVkZWxheSAoNTAwKTsKIC8qCQlkZWJ1ZyAoIlNEUkFNIEJhbmsgMCBpbiA4IGNvbHVtbiBtb2RlOiAlbGQgTUJcbiIsIHNpemUgPj4gMjApOwkqLwogCX0KQEAgLTE4NywxNSArMTg3LDE1IEBACiAJICovCiAJaWYgKHNpemUgPCAweDAyMDAwMDAwKSB7CiAJCS8qIHJlZHVjZSB0byAxNS42IHVzICg2Mi40IHVzIC8gcXVhZCkgKi8KLQkJbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzJCS180SzsKKwkJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfNEs7CiAJCXVkZWxheSAoMTAwMCk7CiAJfQogCiAJLyoKIAkgKiBGaW5hbCBtYXBwaW5nCiAJICovCi0JbWVtY3RsLT5tZW1jX29yMSA9ICgoLXNpemUpICYgMHhGRkZGMDAwMCkgfCBDRkdfT1JfVElNSU5HX1NEUkFNOwotCW1lbWN0bC0+bWVtY19icjEgPSAoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX29yMSA9ICgoLXNpemUpICYgMHhGRkZGMDAwMCkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKIAogCS8qCiAJICogTm8gYmFuayAxCkBAIC0yMDYsNyArMjA2LDcgQEAKIAogCS8qIGFkanVzdCByZWZyZXNoIHJhdGUgZGVwZW5kaW5nIG9uIFNEUkFNIHR5cGUsIG9uZSBiYW5rICovCiAJcmVnID0gbWVtY3RsLT5tZW1jX21wdHByOwotCXJlZyA+Pj0gMTsJCQkvKiByZWR1Y2UgdG8gQ0ZHX01QVFBSXzFCS184SyAvIF80SyAqLworCXJlZyA+Pj0gMTsJCQkvKiByZWR1Y2UgdG8gQ09ORklHX1NZU19NUFRQUl8xQktfOEsgLyBfNEsgKi8KIAltZW1jdGwtPm1lbWNfbXB0cHIgPSByZWc7CiAKIAl1ZGVsYXkgKDEwMDAwKTsKQEAgLTIyNyw3ICsyMjcsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvUlJ2aXNpb24vZmxhc2guYyBiL2JvYXJkL1JSdmlzaW9uL2ZsYXNoLmMKaW5kZXggNjYwOGJjYS4uZmRiZTkyOCAxMDA2NDQKLS0tIGEvYm9hcmQvUlJ2aXNpb24vZmxhc2guYworKysgYi9ib2FyZC9SUnZpc2lvbi9mbGFzaC5jCkBAIC0yNywxMCArMjcsMTAgQEAKICNpbmNsdWRlIDxtcGM4eHguaD4KIAogI2lmbmRlZglDT05GSUdfRU5WX0FERFIKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogI2VuZGlmCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTQzLDEzICs0MywxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemU7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTYzLDE3ICs2MywxNyBAQAogCX0KIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZSAmIE9SX0FNX01TSyk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemUgJiBPUl9BTV9NU0spOworCW1lbWN0bC0+bWVtY19icjAgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOwogCiAJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0zODgsNyArMzg4LDcgQEAKIAlsYXN0ICA9IHN0YXJ0OwogCWFkZHIgPSAodnVfbG9uZyopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogCXdoaWxlICgoYWRkclswXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXB1dHMgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC01MTEsNyArNTExLDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKigodnVfbG9uZyAqKWRlc3QpICYgMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAweDAwODAwMDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvYTMwMDAvYTMwMDAuYyBiL2JvYXJkL2EzMDAwL2EzMDAwLmMKaW5kZXggMWJhMjFlZC4uY2UyY2YyOCAxMDA2NDQKLS0tIGEvYm9hcmQvYTMwMDAvYTMwMDAuYworKysgYi9ib2FyZC9hMzAwMC9hMzAwMC5jCkBAIC00Niw3ICs0Niw3IEBACiAJbG9uZyBtZWFyMTsKIAlsb25nIGVtZWFyMTsKIAotCXNpemUgPSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIENGR19NQVhfUkFNX1NJWkUpOworCXNpemUgPSBnZXRfcmFtX3NpemUoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX01BWF9SQU1fU0laRSk7CiAKIAluZXdfYmFuazBfZW5kID0gc2l6ZSAtIDE7CiAJbWVhcjEgPSBtcGM4MjR4X21wYzEwN19nZXRyZWcoTUVBUjEpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYTMwMDAvZmxhc2guYyBiL2JvYXJkL2EzMDAwL2ZsYXNoLmMKaW5kZXggYWRkMmEyOC4uYjY3MWNlNyAxMDA2NDQKLS0tIGEvYm9hcmQvYTMwMDAvZmxhc2guYworKysgYi9ib2FyZC9hMzAwMC9mbGFzaC5jCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSICAoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICMgZW5kaWYKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUgIENPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC00OCw3ICs0OCw3IEBACiAjZW5kaWYKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtNjUsMTMgKzY1LDEzIEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl1bnNpZ25lZCBsb25nIGZsYXNoX2JhbmtzW0NGR19NQVhfRkxBU0hfQkFOS1NdID0gQ0ZHX0ZMQVNIX0JBTktTOwotCXVuc2lnbmVkIGxvbmcgc2l6ZSwgc2l6ZV9iW0NGR19NQVhfRkxBU0hfQkFOS1NdOworCXVuc2lnbmVkIGxvbmcgZmxhc2hfYmFua3NbQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdID0gQ09ORklHX1NZU19GTEFTSF9CQU5LUzsKKwl1bnNpZ25lZCBsb25nIHNpemUsIHNpemVfYltDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpCisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkKIAl7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCkBAIC05OSwxMiArOTksMTIgQEAKIAl9CiAKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKLQlERUJVR0YoInByb3RlY3QgbW9uaXRvciAleCBAICV4XG4iLCBDRkdfTU9OSVRPUl9CQVNFLCBDRkdfTU9OSVRPUl9MRU4pOworI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQorCURFQlVHRigicHJvdGVjdCBtb25pdG9yICV4IEAgJXhcbiIsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCBDT05GSUdfU1lTX01PTklUT1JfTEVOKTsKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRStDRkdfTU9OSVRPUl9MRU4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK0NPTkZJR19TWVNfTU9OSVRPUl9MRU4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTExOSw3ICsxMTksNyBAQAogCiAJc2l6ZSA9IDA7CiAJREVCVUdGKCIjIyBGaW5hbCBGbGFzaCBiYW5rIHNpemVzOiAiKTsKLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpCisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkKIAl7CiAJCURFQlVHRigiJTA4bHggIiwgc2l6ZV9iW2ldKTsKIAkJc2l6ZSArPSBzaXplX2JbaV07CkBAIC0yODUsMTAgKzI4NSwxMCBAQAogCiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlhZGRyWzBdID0gQlMoMHhGRik7CQkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMzU2LDcgKzM1Niw3IEBACiAJCQl1ZGVsYXkgKDEwMDApOwogCiAJCQl3aGlsZSAoKChzdGF0dXMgPSBCUygqYWRkcikpICYgQllURU1FKDB4MDA4MDAwODApKSAhPSBCWVRFTUUoMHgwMDgwMDA4MCkpIHsKLQkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCSphZGRyID0gQlMoMHhCMCk7IC8qIHN1c3BlbmQgZXJhc2UJICAqLwogCQkJCQkqYWRkciA9IEJTKDB4RkYpOyAvKiByZXNldCB0byByZWFkIG1vZGUgKi8KQEAgLTQzOSw3ICs0MzksNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAogCXdoaWxlICgoKHN0YXR1cyA9IEJTKCphZGRyKSkgJiBCWVRFTUUoMHgwMDgwMDA4MCkpICE9IEJZVEVNRSgweDAwODAwMDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IEJTKDB4RkYpOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuIDE7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2FjdHV4MS9hY3R1eDEuYyBiL2JvYXJkL2FjdHV4MS9hY3R1eDEuYwppbmRleCBkMWQ3ZjZjLi4zOTliZTIzIDEwMDY0NAotLS0gYS9ib2FyZC9hY3R1eDEvYWN0dXgxLmMKKysrIGIvYm9hcmQvYWN0dXgxL2FjdHV4MS5jCkBAIC00OSwxNiArNDksMTYgQEAKIAkvKiBhZHJlc3Mgb2YgYm9vdCBwYXJhbWV0ZXJzICovCiAJZ2QtPmJkLT5iaV9ib290X3BhcmFtcyA9IDB4MDAwMDAxMDA7CiAKLQlHUElPX09VVFBVVF9DTEVBUiAoQ0ZHX0dQSU9fSU9SU1QpOwotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fSU9SU1QpOworCUdQSU9fT1VUUFVUX0NMRUFSIChDT05GSUdfU1lTX0dQSU9fSU9SU1QpOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX0lPUlNUKTsKIAogCS8qIFNldHVwIEdQSU8ncyBmb3IgUENJIElOVEEgKi8KLQlHUElPX09VVFBVVF9ESVNBQkxFIChDRkdfR1BJT19QQ0kxX0lOVEEpOwotCUdQSU9fSU5UX0FDVF9MT1dfU0VUIChDRkdfR1BJT19QQ0kxX0lOVEEpOworCUdQSU9fT1VUUFVUX0RJU0FCTEUgKENPTkZJR19TWVNfR1BJT19QQ0kxX0lOVEEpOworCUdQSU9fSU5UX0FDVF9MT1dfU0VUIChDT05GSUdfU1lTX0dQSU9fUENJMV9JTlRBKTsKIAogCS8qIFNldHVwIEdQSU8ncyBmb3IgMzNNSHogY2xvY2sgb3V0cHV0ICovCi0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19QQ0lfQ0xLKTsKLQlHUElPX09VVFBVVF9FTkFCTEUgKENGR19HUElPX0VYVEJVU19DTEspOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX1BDSV9DTEspOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX0VYVEJVU19DTEspOwogCSpJWFA0MjVfR1BJT19HUENMS1IgPSAweDAxMTAwMUZGOwogCiAJLyogQ1M1OiBEZWJ1ZyBwb3J0ICovCkBAIC02OSw3ICs2OSw3IEBACiAJKklYUDQyNV9FWFBfQ1M3ID0gMHg4MDkwMDAwMzsKIAogCXVkZWxheSAoNTMzKTsKLQlHUElPX09VVFBVVF9TRVQgKENGR19HUElPX0lPUlNUKTsKKwlHUElPX09VVFBVVF9TRVQgKENPTkZJR19TWVNfR1BJT19JT1JTVCk7CiAKIAlBQ1RVWDFfTEVEMSAoMik7CiAJQUNUVVgxX0xFRDIgKDIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYWN0dXgxL2FjdHV4MV9ody5oIGIvYm9hcmQvYWN0dXgxL2FjdHV4MV9ody5oCmluZGV4IGJiM2I3ZjkuLmZlNDU0YzUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FjdHV4MS9hY3R1eDFfaHcuaAorKysgYi9ib2FyZC9hY3R1eDEvYWN0dXgxX2h3LmgKQEAgLTQyLDE2ICs0MiwxNiBAQAogI2RlZmluZSBBQ1RVWDFfQk9BUkRSRUwJKHJlYWRiKElYUDQyNV9FWFBfQlVTX0NTNl9CQVNFX1BIWVMpICYgMHgwRikKIAogLyogR1BJTyBzZXR0aW5ncyAqLwotI2RlZmluZSBDRkdfR1BJT19QQ0kxX0lOVEEJCTIKLSNkZWZpbmUgQ0ZHX0dQSU9fUENJMl9JTlRBCQkzCi0jZGVmaW5lIENGR19HUElPX0kyQ19TREEJCTQKLSNkZWZpbmUgQ0ZHX0dQSU9fSTJDX1NDTAkJNQotI2RlZmluZSBDRkdfR1BJT19EQkdKVU1QRVIJCTkKLSNkZWZpbmUgQ0ZHX0dQSU9fQlVUVE9OMQkJMTAKLSNkZWZpbmUgQ0ZHX0dQSU9fREJHU0VOU0UJCTExCi0jZGVmaW5lIENGR19HUElPX0RUUgkJCTEyCi0jZGVmaW5lIENGR19HUElPX0lPUlNUCQkJMTMJLyogT3V0ICovCi0jZGVmaW5lIENGR19HUElPX1BDSV9DTEsJCTE0CS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19FWFRCVVNfQ0xLCQkxNQkvKiBPdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BDSTFfSU5UQQkJMgorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUENJMl9JTlRBCQkzCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19JMkNfU0RBCQk0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19JMkNfU0NMCQk1CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19EQkdKVU1QRVIJCTkKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0JVVFRPTjEJCTEwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19EQkdTRU5TRQkJMTEKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0RUUgkJCTEyCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19JT1JTVAkJCTEzCS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUENJX0NMSwkJMTQJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19FWFRCVVNfQ0xLCQkxNQkvKiBPdXQgKi8KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9hY3R1eDIvYWN0dXgyLmMgYi9ib2FyZC9hY3R1eDIvYWN0dXgyLmMKaW5kZXggOTlkYWVmNi4uZDZhYWFkNiAxMDA2NDQKLS0tIGEvYm9hcmQvYWN0dXgyL2FjdHV4Mi5jCisrKyBiL2JvYXJkL2FjdHV4Mi9hY3R1eDIuYwpAQCAtNTAsMjQgKzUwLDI0IEBACiAJLyogYWRyZXNzIG9mIGJvb3QgcGFyYW1ldGVycyAqLwogCWdkLT5iZC0+YmlfYm9vdF9wYXJhbXMgPSAweDAwMDAwMTAwOwogCi0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19JT1JTVCk7Ci0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19FVEhSU1QpOwotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fRFNSKTsKLQlHUElPX09VVFBVVF9FTkFCTEUgKENGR19HUElPX0RDRCk7CisJR1BJT19PVVRQVVRfRU5BQkxFIChDT05GSUdfU1lTX0dQSU9fSU9SU1QpOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX0VUSFJTVCk7CisJR1BJT19PVVRQVVRfRU5BQkxFIChDT05GSUdfU1lTX0dQSU9fRFNSKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19EQ0QpOwogCi0JR1BJT19PVVRQVVRfQ0xFQVIgKENGR19HUElPX0lPUlNUKTsKLQlHUElPX09VVFBVVF9DTEVBUiAoQ0ZHX0dQSU9fRVRIUlNUKTsKKwlHUElPX09VVFBVVF9DTEVBUiAoQ09ORklHX1NZU19HUElPX0lPUlNUKTsKKwlHUElPX09VVFBVVF9DTEVBUiAoQ09ORklHX1NZU19HUElPX0VUSFJTVCk7CiAKLQlHUElPX09VVFBVVF9DTEVBUiAoQ0ZHX0dQSU9fRFNSKTsKLQlHUElPX09VVFBVVF9TRVQgKENGR19HUElPX0RDRCk7CisJR1BJT19PVVRQVVRfQ0xFQVIgKENPTkZJR19TWVNfR1BJT19EU1IpOworCUdQSU9fT1VUUFVUX1NFVCAoQ09ORklHX1NZU19HUElPX0RDRCk7CiAKIAkvKiBTZXR1cCBHUElPJ3MgZm9yIEludGVycnVwdCBpbnB1dHMgKi8KLQlHUElPX09VVFBVVF9ESVNBQkxFIChDRkdfR1BJT19EQkdJTlQpOwotCUdQSU9fT1VUUFVUX0RJU0FCTEUgKENGR19HUElPX0VUSElOVCk7CisJR1BJT19PVVRQVVRfRElTQUJMRSAoQ09ORklHX1NZU19HUElPX0RCR0lOVCk7CisJR1BJT19PVVRQVVRfRElTQUJMRSAoQ09ORklHX1NZU19HUElPX0VUSElOVCk7CiAKIAkvKiBTZXR1cCBHUElPJ3MgZm9yIDMzTUh6IGNsb2NrIG91dHB1dCAqLwotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fUENJX0NMSyk7Ci0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19FWFRCVVNfQ0xLKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19QQ0lfQ0xLKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19FWFRCVVNfQ0xLKTsKIAkqSVhQNDI1X0dQSU9fR1BDTEtSID0gMHgwMTEwMDFGRjsKIAogCS8qIENTMTogSVBBQy1YICovCkBAIC04MCw4ICs4MCw4IEBACiAJKklYUDQyNV9FWFBfQ1M3ID0gMHg4MDkwMDAwMzsKIAogCXVkZWxheSAoNTMzKTsKLQlHUElPX09VVFBVVF9TRVQgKENGR19HUElPX0lPUlNUKTsKLQlHUElPX09VVFBVVF9TRVQgKENGR19HUElPX0VUSFJTVCk7CisJR1BJT19PVVRQVVRfU0VUIChDT05GSUdfU1lTX0dQSU9fSU9SU1QpOworCUdQSU9fT1VUUFVUX1NFVCAoQ09ORklHX1NZU19HUElPX0VUSFJTVCk7CiAKIAlBQ1RVWDJfTEVEMSAoMSk7CiAJQUNUVVgyX0xFRDIgKDApOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYWN0dXgyL2FjdHV4Ml9ody5oIGIvYm9hcmQvYWN0dXgyL2FjdHV4Ml9ody5oCmluZGV4IDhmZmI4MmEuLjBmNWViY2IgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FjdHV4Mi9hY3R1eDJfaHcuaAorKysgYi9ib2FyZC9hY3R1eDIvYWN0dXgyX2h3LmgKQEAgLTM5LDIxICszOSwyMSBAQAogLyoKICAqIEdQSU8gc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfR1BJT19EQkdJTlQJCQkwCi0jZGVmaW5lIENGR19HUElPX0VUSElOVAkJCTEKLSNkZWZpbmUgQ0ZHX0dQSU9fRVRIUlNUCQkJMgkvKiBPdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fTEVENV9HTgkJMwkvKiBPdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fVU5VU0VENAkJNAotI2RlZmluZSBDRkdfR1BJT19VTlVTRUQ1CQk1Ci0jZGVmaW5lIENGR19HUElPX0RTUgkJCTYJLyogT3V0ICovCi0jZGVmaW5lIENGR19HUElPX0RDRAkJCTcJLyogT3V0ICovCi0jZGVmaW5lIENGR19HUElPX0lQQUNfSU5UCQk4Ci0jZGVmaW5lIENGR19HUElPX0RCR0pVTVBFUgkJOQotI2RlZmluZSBDRkdfR1BJT19CVVRUT04xCQkxMAotI2RlZmluZSBDRkdfR1BJT19EQkdTRU5TRQkJMTEKLSNkZWZpbmUgQ0ZHX0dQSU9fRFRSCQkJMTIKLSNkZWZpbmUgQ0ZHX0dQSU9fSU9SU1QJCQkxMwkvKiBPdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fUENJX0NMSwkJMTQJLyogT3V0ICovCi0jZGVmaW5lIENGR19HUElPX0VYVEJVU19DTEsJCTE1CS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fREJHSU5UCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fRVRISU5UCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fRVRIUlNUCQkJMgkvKiBPdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0xFRDVfR04JCTMJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19VTlVTRUQ0CQk0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19VTlVTRUQ1CQk1CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19EU1IJCQk2CS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fRENECQkJNwkvKiBPdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0lQQUNfSU5UCQk4CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19EQkdKVU1QRVIJCTkKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0JVVFRPTjEJCTEwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19EQkdTRU5TRQkJMTEKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0RUUgkJCTEyCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19JT1JTVAkJCTEzCS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUENJX0NMSwkJMTQJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19FWFRCVVNfQ0xLCQkxNQkvKiBPdXQgKi8KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9hY3R1eDMvYWN0dXgzLmMgYi9ib2FyZC9hY3R1eDMvYWN0dXgzLmMKaW5kZXggODEyYmMyYi4uNjNiZjM2NSAxMDA2NDQKLS0tIGEvYm9hcmQvYWN0dXgzL2FjdHV4My5jCisrKyBiL2JvYXJkL2FjdHV4My9hY3R1eDMuYwpAQCAtNTAsMzUgKzUwLDM1IEBACiAJLyogYWRyZXNzIG9mIGJvb3QgcGFyYW1ldGVycyAqLwogCWdkLT5iZC0+YmlfYm9vdF9wYXJhbXMgPSAweDAwMDAwMTAwOwogCi0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19JT1JTVCk7Ci0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19FVEhSU1QpOwotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fRFNSKTsKLQlHUElPX09VVFBVVF9FTkFCTEUgKENGR19HUElPX0RDRCk7Ci0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19MRUQ1X0dOKTsKLQlHUElPX09VVFBVVF9FTkFCTEUgKENGR19HUElPX0xFRDZfUlQpOwotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fTEVENl9HTik7CisJR1BJT19PVVRQVVRfRU5BQkxFIChDT05GSUdfU1lTX0dQSU9fSU9SU1QpOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX0VUSFJTVCk7CisJR1BJT19PVVRQVVRfRU5BQkxFIChDT05GSUdfU1lTX0dQSU9fRFNSKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19EQ0QpOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX0xFRDVfR04pOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX0xFRDZfUlQpOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX0xFRDZfR04pOwogCi0JR1BJT19PVVRQVVRfQ0xFQVIgKENGR19HUElPX0lPUlNUKTsKLQlHUElPX09VVFBVVF9DTEVBUiAoQ0ZHX0dQSU9fRVRIUlNUKTsKKwlHUElPX09VVFBVVF9DTEVBUiAoQ09ORklHX1NZU19HUElPX0lPUlNUKTsKKwlHUElPX09VVFBVVF9DTEVBUiAoQ09ORklHX1NZU19HUElPX0VUSFJTVCk7CiAKLQlHUElPX09VVFBVVF9DTEVBUiAoQ0ZHX0dQSU9fRFNSKTsKLQlHUElPX09VVFBVVF9TRVQgKENGR19HUElPX0RDRCk7CisJR1BJT19PVVRQVVRfQ0xFQVIgKENPTkZJR19TWVNfR1BJT19EU1IpOworCUdQSU9fT1VUUFVUX1NFVCAoQ09ORklHX1NZU19HUElPX0RDRCk7CiAKLQlHUElPX09VVFBVVF9DTEVBUiAoQ0ZHX0dQSU9fTEVENV9HTik7Ci0JR1BJT19PVVRQVVRfQ0xFQVIgKENGR19HUElPX0xFRDZfUlQpOwotCUdQSU9fT1VUUFVUX0NMRUFSIChDRkdfR1BJT19MRUQ2X0dOKTsKKwlHUElPX09VVFBVVF9DTEVBUiAoQ09ORklHX1NZU19HUElPX0xFRDVfR04pOworCUdQSU9fT1VUUFVUX0NMRUFSIChDT05GSUdfU1lTX0dQSU9fTEVENl9SVCk7CisJR1BJT19PVVRQVVRfQ0xFQVIgKENPTkZJR19TWVNfR1BJT19MRUQ2X0dOKTsKIAogCS8qCiAJICogU2V0dXAgR1BJTydzIGZvciBJbnRlcnJ1cHQgaW5wdXRzCiAJICovCi0JR1BJT19PVVRQVVRfRElTQUJMRSAoQ0ZHX0dQSU9fREJHSU5UKTsKLQlHUElPX09VVFBVVF9ESVNBQkxFIChDRkdfR1BJT19FVEhJTlQpOworCUdQSU9fT1VUUFVUX0RJU0FCTEUgKENPTkZJR19TWVNfR1BJT19EQkdJTlQpOworCUdQSU9fT1VUUFVUX0RJU0FCTEUgKENPTkZJR19TWVNfR1BJT19FVEhJTlQpOwogCiAJLyoKIAkgKiBTZXR1cCBHUElPJ3MgZm9yIDMzTUh6IGNsb2NrIG91dHB1dAogCSAqLwotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fUENJX0NMSyk7Ci0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19FWFRCVVNfQ0xLKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19QQ0lfQ0xLKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19FWFRCVVNfQ0xLKTsKIAkqSVhQNDI1X0dQSU9fR1BDTEtSID0gMHgwMTEwMDFGRjsKIAogCS8qIENTMTogSVBBQy1YICovCkBAIC05MSw4ICs5MSw4IEBACiAJKklYUDQyNV9FWFBfQ1M3ID0gMHg4MDkwMDAwMzsKIAogCXVkZWxheSAoNTMzKTsKLQlHUElPX09VVFBVVF9TRVQgKENGR19HUElPX0lPUlNUKTsKLQlHUElPX09VVFBVVF9TRVQgKENGR19HUElPX0VUSFJTVCk7CisJR1BJT19PVVRQVVRfU0VUIChDT05GSUdfU1lTX0dQSU9fSU9SU1QpOworCUdQSU9fT1VUUFVUX1NFVCAoQ09ORklHX1NZU19HUElPX0VUSFJTVCk7CiAKIAlBQ1RVWDNfTEVEMV9SVCAoMSk7CiAJQUNUVVgzX0xFRDFfR04gKDApOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYWN0dXgzL2FjdHV4M19ody5oIGIvYm9hcmQvYWN0dXgzL2FjdHV4M19ody5oCmluZGV4IDliN2NiY2UuLmMzYzBjZmMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FjdHV4My9hY3R1eDNfaHcuaAorKysgYi9ib2FyZC9hY3R1eDMvYWN0dXgzX2h3LmgKQEAgLTQxLDIwICs0MSwyMCBAQAogI2RlZmluZSBBQ1RVWDNfT1BUSU9OCQkocmVhZGIoSVhQNDI1X0VYUF9CVVNfQ1M2X0JBU0VfUEhZUykgJiAweEYwKQogCiAvKiBHUElPIHNldHRpbmdzICovCi0jZGVmaW5lIENGR19HUElPX0RCR0lOVAkJCTAKLSNkZWZpbmUgQ0ZHX0dQSU9fRVRISU5UCQkJMQotI2RlZmluZSBDRkdfR1BJT19FVEhSU1QJCQkyCS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19MRUQ1X0dOCQkzCS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19MRUQ2X1JUCQk0CS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19MRUQ2X0dOCQk1CS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19EU1IJCQk2CS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19EQ0QJCQk3CS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19EQkdKVU1QRVIJCTkKLSNkZWZpbmUgQ0ZHX0dQSU9fQlVUVE9OMQkJMTAKLSNkZWZpbmUgQ0ZHX0dQSU9fREJHU0VOU0UJCTExCi0jZGVmaW5lIENGR19HUElPX0RUUgkJCTEyCi0jZGVmaW5lIENGR19HUElPX0lPUlNUCQkJMTMJLyogT3V0ICovCi0jZGVmaW5lIENGR19HUElPX1BDSV9DTEsJCTE0CS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19FWFRCVVNfQ0xLCQkxNQkvKiBPdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0RCR0lOVAkJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0VUSElOVAkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0VUSFJTVAkJCTIJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19MRUQ1X0dOCQkzCS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fTEVENl9SVAkJNAkvKiBPdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0xFRDZfR04JCTUJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19EU1IJCQk2CS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fRENECQkJNwkvKiBPdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0RCR0pVTVBFUgkJOQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fQlVUVE9OMQkJMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0RCR1NFTlNFCQkxMQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fRFRSCQkJMTIKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0lPUlNUCQkJMTMJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19QQ0lfQ0xLCQkxNAkvKiBPdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0VYVEJVU19DTEsJCTE1CS8qIE91dCAqLwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL2FjdHV4NC9hY3R1eDQuYyBiL2JvYXJkL2FjdHV4NC9hY3R1eDQuYwppbmRleCA4NDAzN2ZhLi5mMzczYjU4IDEwMDY0NAotLS0gYS9ib2FyZC9hY3R1eDQvYWN0dXg0LmMKKysrIGIvYm9hcmQvYWN0dXg0L2FjdHV4NC5jCkBAIC00OSw1MyArNDksNTMgQEAKIAkvKiBhZHJlc3Mgb2YgYm9vdCBwYXJhbWV0ZXJzICovCiAJZ2QtPmJkLT5iaV9ib290X3BhcmFtcyA9IDB4MDAwMDAxMDA7CiAKLQlHUElPX09VVFBVVF9DTEVBUiAoQ0ZHX0dQSU9fblBXUk9OKTsKLQlHUElPX09VVFBVVF9FTkFCTEUgKENGR19HUElPX25QV1JPTik7CisJR1BJT19PVVRQVVRfQ0xFQVIgKENPTkZJR19TWVNfR1BJT19uUFdST04pOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX25QV1JPTik7CiAKLQlHUElPX09VVFBVVF9DTEVBUiAoQ0ZHX0dQSU9fSU9SU1QpOwotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fSU9SU1QpOworCUdQSU9fT1VUUFVUX0NMRUFSIChDT05GSUdfU1lTX0dQSU9fSU9SU1QpOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX0lPUlNUKTsKIAogCS8qIGxlZCBub3QgcG9wdWxhdGVkIG9uIGJvYXJkKi8KLQlHUElPX09VVFBVVF9FTkFCTEUgKENGR19HUElPX0xFRDMpOwotCUdQSU9fT1VUUFVUX1NFVCAoQ0ZHX0dQSU9fTEVEMyk7CisJR1BJT19PVVRQVVRfRU5BQkxFIChDT05GSUdfU1lTX0dQSU9fTEVEMyk7CisJR1BJT19PVVRQVVRfU0VUIChDT05GSUdfU1lTX0dQSU9fTEVEMyk7CiAKIAkvKiBtaWRkbGUgTEVEICovCi0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19MRUQyKTsKLQlHUElPX09VVFBVVF9TRVQgKENGR19HUElPX0xFRDIpOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX0xFRDIpOworCUdQSU9fT1VUUFVUX1NFVCAoQ09ORklHX1NZU19HUElPX0xFRDIpOwogCiAJLyogcmlnaHQgTEVEICovCiAJLyogd2VhayBwdWxsZG93biA9IExFRCB3ZWFrIG9uICovCi0JR1BJT19PVVRQVVRfRElTQUJMRSAoQ0ZHX0dQSU9fTEVEMSk7Ci0JR1BJT19PVVRQVVRfU0VUIChDRkdfR1BJT19MRUQxKTsKKwlHUElPX09VVFBVVF9ESVNBQkxFIChDT05GSUdfU1lTX0dQSU9fTEVEMSk7CisJR1BJT19PVVRQVVRfU0VUIChDT05GSUdfU1lTX0dQSU9fTEVEMSk7CiAKIAkvKiBTZXR1cCBHUElPJ3MgZm9yIEludGVycnVwdCBpbnB1dHMgKi8KLQlHUElPX09VVFBVVF9ESVNBQkxFIChDRkdfR1BJT19VU0JJTlRBKTsKLQlHUElPX09VVFBVVF9ESVNBQkxFIChDRkdfR1BJT19VU0JJTlRCKTsKLQlHUElPX09VVFBVVF9ESVNBQkxFIChDRkdfR1BJT19VU0JJTlRDKTsKLQlHUElPX09VVFBVVF9ESVNBQkxFIChDRkdfR1BJT19SVENJTlQpOwotCUdQSU9fT1VUUFVUX0RJU0FCTEUgKENGR19HUElPX1BDSV9JTlRBKTsKLQlHUElPX09VVFBVVF9ESVNBQkxFIChDRkdfR1BJT19QQ0lfSU5UQik7CisJR1BJT19PVVRQVVRfRElTQUJMRSAoQ09ORklHX1NZU19HUElPX1VTQklOVEEpOworCUdQSU9fT1VUUFVUX0RJU0FCTEUgKENPTkZJR19TWVNfR1BJT19VU0JJTlRCKTsKKwlHUElPX09VVFBVVF9ESVNBQkxFIChDT05GSUdfU1lTX0dQSU9fVVNCSU5UQyk7CisJR1BJT19PVVRQVVRfRElTQUJMRSAoQ09ORklHX1NZU19HUElPX1JUQ0lOVCk7CisJR1BJT19PVVRQVVRfRElTQUJMRSAoQ09ORklHX1NZU19HUElPX1BDSV9JTlRBKTsKKwlHUElPX09VVFBVVF9ESVNBQkxFIChDT05GSUdfU1lTX0dQSU9fUENJX0lOVEIpOwogCi0JR1BJT19JTlRfQUNUX0xPV19TRVQgKENGR19HUElPX1VTQklOVEEpOwotCUdQSU9fSU5UX0FDVF9MT1dfU0VUIChDRkdfR1BJT19VU0JJTlRCKTsKLQlHUElPX0lOVF9BQ1RfTE9XX1NFVCAoQ0ZHX0dQSU9fVVNCSU5UQyk7Ci0JR1BJT19JTlRfQUNUX0xPV19TRVQgKENGR19HUElPX1JUQ0lOVCk7Ci0JR1BJT19JTlRfQUNUX0xPV19TRVQgKENGR19HUElPX1BDSV9JTlRBKTsKLQlHUElPX0lOVF9BQ1RfTE9XX1NFVCAoQ0ZHX0dQSU9fUENJX0lOVEIpOworCUdQSU9fSU5UX0FDVF9MT1dfU0VUIChDT05GSUdfU1lTX0dQSU9fVVNCSU5UQSk7CisJR1BJT19JTlRfQUNUX0xPV19TRVQgKENPTkZJR19TWVNfR1BJT19VU0JJTlRCKTsKKwlHUElPX0lOVF9BQ1RfTE9XX1NFVCAoQ09ORklHX1NZU19HUElPX1VTQklOVEMpOworCUdQSU9fSU5UX0FDVF9MT1dfU0VUIChDT05GSUdfU1lTX0dQSU9fUlRDSU5UKTsKKwlHUElPX0lOVF9BQ1RfTE9XX1NFVCAoQ09ORklHX1NZU19HUElPX1BDSV9JTlRBKTsKKwlHUElPX0lOVF9BQ1RfTE9XX1NFVCAoQ09ORklHX1NZU19HUElPX1BDSV9JTlRCKTsKIAogCS8qIFNldHVwIEdQSU8ncyBmb3IgMzNNSHogY2xvY2sgb3V0cHV0ICovCiAJKklYUDQyNV9HUElPX0dQQ0xLUiA9IDB4MDExMDAxRkY7Ci0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19FWFRCVVNfQ0xLKTsKLQlHUElPX09VVFBVVF9FTkFCTEUgKENGR19HUElPX1BDSV9DTEspOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX0VYVEJVU19DTEspOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX1BDSV9DTEspOwogCiAJKklYUDQyNV9FWFBfQ1MxID0gMHhiZDExM2M0MjsKIAogCXVkZWxheSAoMTAwMDApOwotCUdQSU9fT1VUUFVUX1NFVCAoQ0ZHX0dQSU9fSU9SU1QpOworCUdQSU9fT1VUUFVUX1NFVCAoQ09ORklHX1NZU19HUElPX0lPUlNUKTsKIAl1ZGVsYXkgKDEwMDAwKTsKLQlHUElPX09VVFBVVF9DTEVBUiAoQ0ZHX0dQSU9fSU9SU1QpOworCUdQSU9fT1VUUFVUX0NMRUFSIChDT05GSUdfU1lTX0dQSU9fSU9SU1QpOwogCXVkZWxheSAoMTAwMDApOwotCUdQSU9fT1VUUFVUX1NFVCAoQ0ZHX0dQSU9fSU9SU1QpOworCUdQSU9fT1VUUFVUX1NFVCAoQ09ORklHX1NZU19HUElPX0lPUlNUKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvYWN0dXg0L2FjdHV4NF9ody5oIGIvYm9hcmQvYWN0dXg0L2FjdHV4NF9ody5oCmluZGV4IDhiM2VjZjMuLmFmZDFjMDYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FjdHV4NC9hY3R1eDRfaHcuaAorKysgYi9ib2FyZC9hY3R1eDQvYWN0dXg0X2h3LmgKQEAgLTI5LDIxICsyOSwyMSBAQAogLyoKICAqIEdQSU8gc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfR1BJT19VU0JJTlRBCQkwCi0jZGVmaW5lIENGR19HUElPX1VTQklOVEIJCTEKLSNkZWZpbmUgQ0ZHX0dQSU9fVVNCSU5UQwkJMgotI2RlZmluZSBDRkdfR1BJT19uUFdST04JCQkzCS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19JMkNfU0NMCQk0Ci0jZGVmaW5lIENGR19HUElPX0kyQ19TREEJCTUKLSNkZWZpbmUgQ0ZHX0dQSU9fUENJX0lOVEIJCTYKLSNkZWZpbmUgQ0ZHX0dQSU9fQlVUVE9OMQkJNwotI2RlZmluZSBDRkdfR1BJT19MRUQxCQkJOAkvKiBPdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fUlRDSU5UCQkJOQotI2RlZmluZSBDRkdfR1BJT19MRUQyCQkJMTAJLyogT3V0ICovCi0jZGVmaW5lIENGR19HUElPX1BDSV9JTlRBCQkxMQotI2RlZmluZSBDRkdfR1BJT19JT1JTVAkJCTEyCS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19MRUQzCQkJMTMJLyogT3V0ICovCi0jZGVmaW5lIENGR19HUElPX1BDSV9DTEsJCTE0CS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19FWFRCVVNfQ0xLCQkxNQkvKiBPdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1VTQklOVEEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1VTQklOVEIJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1VTQklOVEMJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX25QV1JPTgkJCTMJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19JMkNfU0NMCQk0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19JMkNfU0RBCQk1CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19QQ0lfSU5UQgkJNgorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fQlVUVE9OMQkJNworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fTEVEMQkJCTgJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19SVENJTlQJCQk5CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19MRUQyCQkJMTAJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19QQ0lfSU5UQQkJMTEKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0lPUlNUCQkJMTIJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19MRUQzCQkJMTMJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19QQ0lfQ0xLCQkxNAkvKiBPdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0VYVEJVU19DTEsJCTE1CS8qIE91dCAqLwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL2FkZGVyL2FkZGVyLmMgYi9ib2FyZC9hZGRlci9hZGRlci5jCmluZGV4IGU4YTU3MzcuLjg3NzkxZGUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FkZGVyL2FkZGVyLmMKKysrIGIvYm9hcmQvYWRkZXIvYWRkZXIuYwpAQCAtNjgsNyArNjgsNyBAQAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewogCWxvbmcgaW50IG1zaXplOwotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAl1cG1jb25maWcoVVBNQSwgc2RyYW1fdGFibGUsIHNpemVvZihzZHJhbV90YWJsZSkgLyBzaXplb2YodWludCkpOwpAQCAtNzYsNyArNzYsNyBAQAogCS8qIENvbmZpZ3VyZSBTRFJBTSByZWZyZXNoICovCiAJbWVtY3RsLT5tZW1jX21wdHByID0gTVBUUFJfUFRQX0RJVjMyOyAvKiBCUkdDTEsvMzIgKi8KIAotCW1lbWN0bC0+bWVtY19tYW1yID0gKDk0IDw8IDI0KSB8IENGR19NQU1SOyAvKiBObyByZWZyZXNoICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSAoOTQgPDwgMjQpIHwgQ09ORklHX1NZU19NQU1SOyAvKiBObyByZWZyZXNoICovCiAJdWRlbGF5KDIwMCk7CiAKIAkvKiBSdW4gcHJlY2hhcmdlIGZyb20gbG9jYXRpb24gMHgxNSAqLwpAQCAtOTQsMTAgKzk0LDEwIEBACiAJdWRlbGF5KDIwMCk7CiAKIAltZW1jdGwtPm1lbWNfbWFtciB8PSAgTUFNUl9QVEFFOyAvKiBFbmFibGUgcmVmcmVzaCAqLwotCW1lbWN0bC0+bWVtY19vcjEgICA9IH4oQ0ZHX1NEUkFNX01BWF9TSVpFIC0gMSkgfCBPUl9DU05UX1NBTTsKLQltZW1jdGwtPm1lbWNfYnIxICAgPSAgQ0ZHX1NEUkFNX0JBU0UgfCBCUl9QU18zMiB8IEJSX01TX1VQTUEgfCBCUl9WOworCW1lbWN0bC0+bWVtY19vcjEgICA9IH4oQ09ORklHX1NZU19TRFJBTV9NQVhfU0laRSAtIDEpIHwgT1JfQ1NOVF9TQU07CisJbWVtY3RsLT5tZW1jX2JyMSAgID0gIENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJSX1BTXzMyIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CiAKLQltc2l6ZSA9IGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgQ0ZHX1NEUkFNX01BWF9TSVpFKTsKKwltc2l6ZSA9IGdldF9yYW1fc2l6ZShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfU0RSQU1fTUFYX1NJWkUpOwogCW1lbWN0bC0+bWVtY19vcjEgIHw9IH4obXNpemUgLSAxKTsKIAogCXJldHVybiBtc2l6ZTsKZGlmZiAtLWdpdCBhL2JvYXJkL2FkczUxMjEvYWRzNTEyMS5jIGIvYm9hcmQvYWRzNTEyMS9hZHM1MTIxLmMKaW5kZXggZGVhYTI5Mi4uMDYxMDkyOCAxMDA2NDQKLS0tIGEvYm9hcmQvYWRzNTEyMS9hZHM1MTIxLmMKKysrIGIvYm9hcmQvYWRzNTEyMS9hZHM1MTIxLmMKQEAgLTUzLDE2ICs1MywxNiBAQAogCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdTMyIGxwY2F3OwogCiAJLyoKIAkgKiBJbml0aWFsaXplIExvY2FsIFdpbmRvdyBmb3IgdGhlIENQTEQgcmVnaXN0ZXJzIGFjY2VzcyAoQ1MyIHNlbGVjdHMKIAkgKiB0aGUgQ1BMRCBjaGlwKQogCSAqLwotCWltLT5zeXNjb25mLmxwY3MyYXcgPSBDU0FXX1NUQVJUKENGR19DUExEX0JBU0UpIHwKLQkJCSAgICAgIENTQVdfU1RPUChDRkdfQ1BMRF9CQVNFLCBDRkdfQ1BMRF9TSVpFKTsKLQlpbS0+bHBjLmNzX2NmZ1syXSA9IENGR19DUzJfQ0ZHOworCWltLT5zeXNjb25mLmxwY3MyYXcgPSBDU0FXX1NUQVJUKENPTkZJR19TWVNfQ1BMRF9CQVNFKSB8CisJCQkgICAgICBDU0FXX1NUT1AoQ09ORklHX1NZU19DUExEX0JBU0UsIENPTkZJR19TWVNfQ1BMRF9TSVpFKTsKKwlpbS0+bHBjLmNzX2NmZ1syXSA9IENPTkZJR19TWVNfQ1MyX0NGRzsKIAogCS8qCiAJICogQWNjb3JkaW5nIHRvIE1QQzUxMjFlIFJNLCBjb25maWd1cmluZyBsb2NhbCBhY2Nlc3Mgd2luZG93cyBzaG91bGQKQEAgLTgwLDIxICs4MCwyMSBAQAogCSAqLwogCiAjaWZkZWYgQ09ORklHX0FEUzUxMjFfUkVWMgotCSooKHZvbGF0aWxlIHU4ICopKENGR19DUExEX0JBU0UgKyAweDA4KSkgPSAweEMxOworCSooKHZvbGF0aWxlIHU4ICopKENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMHgwOCkpID0gMHhDMTsKICNlbHNlCi0JaWYgKCooKHU4ICopKENGR19DUExEX0JBU0UgKyAweDA4KSkgJiAweDA0KSB7Ci0JCSooKHZvbGF0aWxlIHU4ICopKENGR19DUExEX0JBU0UgKyAweDA4KSkgPSAweEMxOworCWlmICgqKCh1OCAqKShDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4MDgpKSAmIDB4MDQpIHsKKwkJKigodm9sYXRpbGUgdTggKikoQ09ORklHX1NZU19DUExEX0JBU0UgKyAweDA4KSkgPSAweEMxOwogCX0gZWxzZSB7CiAJCS8qIHJ1bm5pbmcgZnJvbSBCYWNrdXAgZmxhc2ggKi8KLQkJKigodm9sYXRpbGUgdTggKikoQ0ZHX0NQTERfQkFTRSArIDB4MDgpKSA9IDB4MzI7CisJCSooKHZvbGF0aWxlIHU4ICopKENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMHgwOCkpID0gMHgzMjsKIAl9CiAjZW5kaWYKIAkvKgogCSAqIENvbmZpZ3VyZSBGbGFzaCBTcGVlZAogCSAqLwotCSooKHZvbGF0aWxlIHUzMiAqKShDRkdfSU1NUiArIExQQ19PRkZTRVQgKyBDUzBfQ09ORklHKSkgPSBDRkdfQ1MwX0NGRzsKKwkqKCh2b2xhdGlsZSB1MzIgKikoQ09ORklHX1NZU19JTU1SICsgTFBDX09GRlNFVCArIENTMF9DT05GSUcpKSA9IENPTkZJR19TWVNfQ1MwX0NGRzsKIAlpZiAoU1ZSX01KUkVWIChpbS0+c3lzY29uZi5zcHJpZHIpID49IDIpIHsKLQkJKigodm9sYXRpbGUgdTMyICopKENGR19JTU1SICsgTFBDX09GRlNFVCArIENTX0FMRV9USU1JTkdfQ09ORklHKSkgPSBDRkdfQ1NfQUxFVElNSU5HOworCQkqKCh2b2xhdGlsZSB1MzIgKikoQ09ORklHX1NZU19JTU1SICsgTFBDX09GRlNFVCArIENTX0FMRV9USU1JTkdfQ09ORklHKSkgPSBDT05GSUdfU1lTX0NTX0FMRVRJTUlORzsKIAl9CiAJLyoKIAkgKiBFbmFibGUgY2xvY2tzCkBAIC0xMjAsOCArMTIwLDggQEAKICAqLwogbG9uZyBpbnQgZml4ZWRfc2RyYW0gKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKLQl1MzIgbXNpemUgPSBDRkdfRERSX1NJWkUgKiAxMDI0ICogMTAyNDsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKKwl1MzIgbXNpemUgPSBDT05GSUdfU1lTX0REUl9TSVpFICogMTAyNCAqIDEwMjQ7CiAJdTMyIG1zaXplX2xvZzIgPSBfX2lsb2cyIChtc2l6ZSk7CiAJdTMyIGk7CiAKQEAgLTEyOSw3ICsxMjksNyBAQAogCWltLT5pb19jdHJsLnJlZ3NbSU9DVExfTUVNLzRdID0gSU9DVFJMX01VWF9ERFI7CiAKIAkvKiBJbml0aWFsaXplIEREUiBMb2NhbCBXaW5kb3cgKi8KLQlpbS0+c3lzY29uZi5kZHJsYXcuYmFyID0gQ0ZHX0REUl9CQVNFICYgMHhGRkZGRjAwMDsKKwlpbS0+c3lzY29uZi5kZHJsYXcuYmFyID0gQ09ORklHX1NZU19ERFJfQkFTRSAmIDB4RkZGRkYwMDA7CiAJaW0tPnN5c2NvbmYuZGRybGF3LmFyID0gbXNpemVfbG9nMiAtIDE7CiAKIAkvKgpAQCAtMTQxLDY4ICsxNDEsNjggQEAKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImlzeW5jIik7CiAKIAkvKiBFbmFibGUgRERSICovCi0JaW0tPm1kZHJjLmRkcl9zeXNfY29uZmlnID0gQ0ZHX01ERFJDX1NZU19DRkdfRU47CisJaW0tPm1kZHJjLmRkcl9zeXNfY29uZmlnID0gQ09ORklHX1NZU19NRERSQ19TWVNfQ0ZHX0VOOwogCiAJLyogSW5pdGlhbGl6ZSBERFIgUHJpb3JpdHkgTWFuYWdlciAqLwotCWltLT5tZGRyYy5wcmlvbWFuX2NvbmZpZzEgPSBDRkdfTUREUkNHUlBfUE1fQ0ZHMTsKLQlpbS0+bWRkcmMucHJpb21hbl9jb25maWcyID0gQ0ZHX01ERFJDR1JQX1BNX0NGRzI7Ci0JaW0tPm1kZHJjLmhpcHJpb19jb25maWcgPSBDRkdfTUREUkNHUlBfSElQUklPX0NGRzsKLQlpbS0+bWRkcmMubHV0X3RhYmxlMF9tYWluX3VwcGVyID0gQ0ZHX01ERFJDR1JQX0xVVDBfTVU7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTBfbWFpbl9sb3dlciA9IENGR19NRERSQ0dSUF9MVVQwX01MOwotCWltLT5tZGRyYy5sdXRfdGFibGUxX21haW5fdXBwZXIgPSBDRkdfTUREUkNHUlBfTFVUMV9NVTsKLQlpbS0+bWRkcmMubHV0X3RhYmxlMV9tYWluX2xvd2VyID0gQ0ZHX01ERFJDR1JQX0xVVDFfTUw7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTJfbWFpbl91cHBlciA9IENGR19NRERSQ0dSUF9MVVQyX01VOwotCWltLT5tZGRyYy5sdXRfdGFibGUyX21haW5fbG93ZXIgPSBDRkdfTUREUkNHUlBfTFVUMl9NTDsKLQlpbS0+bWRkcmMubHV0X3RhYmxlM19tYWluX3VwcGVyID0gQ0ZHX01ERFJDR1JQX0xVVDNfTVU7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTNfbWFpbl9sb3dlciA9IENGR19NRERSQ0dSUF9MVVQzX01MOwotCWltLT5tZGRyYy5sdXRfdGFibGU0X21haW5fdXBwZXIgPSBDRkdfTUREUkNHUlBfTFVUNF9NVTsKLQlpbS0+bWRkcmMubHV0X3RhYmxlNF9tYWluX2xvd2VyID0gQ0ZHX01ERFJDR1JQX0xVVDRfTUw7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTBfYWx0ZXJuYXRlX3VwcGVyID0gQ0ZHX01ERFJDR1JQX0xVVDBfQVU7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTBfYWx0ZXJuYXRlX2xvd2VyID0gQ0ZHX01ERFJDR1JQX0xVVDBfQUw7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTFfYWx0ZXJuYXRlX3VwcGVyID0gQ0ZHX01ERFJDR1JQX0xVVDFfQVU7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTFfYWx0ZXJuYXRlX2xvd2VyID0gQ0ZHX01ERFJDR1JQX0xVVDFfQUw7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTJfYWx0ZXJuYXRlX3VwcGVyID0gQ0ZHX01ERFJDR1JQX0xVVDJfQVU7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTJfYWx0ZXJuYXRlX2xvd2VyID0gQ0ZHX01ERFJDR1JQX0xVVDJfQUw7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTNfYWx0ZXJuYXRlX3VwcGVyID0gQ0ZHX01ERFJDR1JQX0xVVDNfQVU7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTNfYWx0ZXJuYXRlX2xvd2VyID0gQ0ZHX01ERFJDR1JQX0xVVDNfQUw7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTRfYWx0ZXJuYXRlX3VwcGVyID0gQ0ZHX01ERFJDR1JQX0xVVDRfQVU7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTRfYWx0ZXJuYXRlX2xvd2VyID0gQ0ZHX01ERFJDR1JQX0xVVDRfQUw7CisJaW0tPm1kZHJjLnByaW9tYW5fY29uZmlnMSA9IENPTkZJR19TWVNfTUREUkNHUlBfUE1fQ0ZHMTsKKwlpbS0+bWRkcmMucHJpb21hbl9jb25maWcyID0gQ09ORklHX1NZU19NRERSQ0dSUF9QTV9DRkcyOworCWltLT5tZGRyYy5oaXByaW9fY29uZmlnID0gQ09ORklHX1NZU19NRERSQ0dSUF9ISVBSSU9fQ0ZHOworCWltLT5tZGRyYy5sdXRfdGFibGUwX21haW5fdXBwZXIgPSBDT05GSUdfU1lTX01ERFJDR1JQX0xVVDBfTVU7CisJaW0tPm1kZHJjLmx1dF90YWJsZTBfbWFpbl9sb3dlciA9IENPTkZJR19TWVNfTUREUkNHUlBfTFVUMF9NTDsKKwlpbS0+bWRkcmMubHV0X3RhYmxlMV9tYWluX3VwcGVyID0gQ09ORklHX1NZU19NRERSQ0dSUF9MVVQxX01VOworCWltLT5tZGRyYy5sdXRfdGFibGUxX21haW5fbG93ZXIgPSBDT05GSUdfU1lTX01ERFJDR1JQX0xVVDFfTUw7CisJaW0tPm1kZHJjLmx1dF90YWJsZTJfbWFpbl91cHBlciA9IENPTkZJR19TWVNfTUREUkNHUlBfTFVUMl9NVTsKKwlpbS0+bWRkcmMubHV0X3RhYmxlMl9tYWluX2xvd2VyID0gQ09ORklHX1NZU19NRERSQ0dSUF9MVVQyX01MOworCWltLT5tZGRyYy5sdXRfdGFibGUzX21haW5fdXBwZXIgPSBDT05GSUdfU1lTX01ERFJDR1JQX0xVVDNfTVU7CisJaW0tPm1kZHJjLmx1dF90YWJsZTNfbWFpbl9sb3dlciA9IENPTkZJR19TWVNfTUREUkNHUlBfTFVUM19NTDsKKwlpbS0+bWRkcmMubHV0X3RhYmxlNF9tYWluX3VwcGVyID0gQ09ORklHX1NZU19NRERSQ0dSUF9MVVQ0X01VOworCWltLT5tZGRyYy5sdXRfdGFibGU0X21haW5fbG93ZXIgPSBDT05GSUdfU1lTX01ERFJDR1JQX0xVVDRfTUw7CisJaW0tPm1kZHJjLmx1dF90YWJsZTBfYWx0ZXJuYXRlX3VwcGVyID0gQ09ORklHX1NZU19NRERSQ0dSUF9MVVQwX0FVOworCWltLT5tZGRyYy5sdXRfdGFibGUwX2FsdGVybmF0ZV9sb3dlciA9IENPTkZJR19TWVNfTUREUkNHUlBfTFVUMF9BTDsKKwlpbS0+bWRkcmMubHV0X3RhYmxlMV9hbHRlcm5hdGVfdXBwZXIgPSBDT05GSUdfU1lTX01ERFJDR1JQX0xVVDFfQVU7CisJaW0tPm1kZHJjLmx1dF90YWJsZTFfYWx0ZXJuYXRlX2xvd2VyID0gQ09ORklHX1NZU19NRERSQ0dSUF9MVVQxX0FMOworCWltLT5tZGRyYy5sdXRfdGFibGUyX2FsdGVybmF0ZV91cHBlciA9IENPTkZJR19TWVNfTUREUkNHUlBfTFVUMl9BVTsKKwlpbS0+bWRkcmMubHV0X3RhYmxlMl9hbHRlcm5hdGVfbG93ZXIgPSBDT05GSUdfU1lTX01ERFJDR1JQX0xVVDJfQUw7CisJaW0tPm1kZHJjLmx1dF90YWJsZTNfYWx0ZXJuYXRlX3VwcGVyID0gQ09ORklHX1NZU19NRERSQ0dSUF9MVVQzX0FVOworCWltLT5tZGRyYy5sdXRfdGFibGUzX2FsdGVybmF0ZV9sb3dlciA9IENPTkZJR19TWVNfTUREUkNHUlBfTFVUM19BTDsKKwlpbS0+bWRkcmMubHV0X3RhYmxlNF9hbHRlcm5hdGVfdXBwZXIgPSBDT05GSUdfU1lTX01ERFJDR1JQX0xVVDRfQVU7CisJaW0tPm1kZHJjLmx1dF90YWJsZTRfYWx0ZXJuYXRlX2xvd2VyID0gQ09ORklHX1NZU19NRERSQ0dSUF9MVVQ0X0FMOwogCiAJLyogSW5pdGlhbGl6ZSBNRERSQyAqLwotCWltLT5tZGRyYy5kZHJfc3lzX2NvbmZpZyA9IENGR19NRERSQ19TWVNfQ0ZHOwotCWltLT5tZGRyYy5kZHJfdGltZV9jb25maWcwID0gQ0ZHX01ERFJDX1RJTUVfQ0ZHMDsKLQlpbS0+bWRkcmMuZGRyX3RpbWVfY29uZmlnMSA9IENGR19NRERSQ19USU1FX0NGRzE7Ci0JaW0tPm1kZHJjLmRkcl90aW1lX2NvbmZpZzIgPSBDRkdfTUREUkNfVElNRV9DRkcyOworCWltLT5tZGRyYy5kZHJfc3lzX2NvbmZpZyA9IENPTkZJR19TWVNfTUREUkNfU1lTX0NGRzsKKwlpbS0+bWRkcmMuZGRyX3RpbWVfY29uZmlnMCA9IENPTkZJR19TWVNfTUREUkNfVElNRV9DRkcwOworCWltLT5tZGRyYy5kZHJfdGltZV9jb25maWcxID0gQ09ORklHX1NZU19NRERSQ19USU1FX0NGRzE7CisJaW0tPm1kZHJjLmRkcl90aW1lX2NvbmZpZzIgPSBDT05GSUdfU1lTX01ERFJDX1RJTUVfQ0ZHMjsKIAogCS8qIEluaXRpYWxpemUgRERSICovCiAJZm9yIChpID0gMDsgaSA8IDEwOyBpKyspCi0JCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENGR19NSUNST05fTk9QOworCQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDT05GSUdfU1lTX01JQ1JPTl9OT1A7CiAKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX1BDSEdfQUxMOwotCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENGR19NSUNST05fTk9QOwotCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENGR19NSUNST05fUkZTSDsKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX05PUDsKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX1JGU0g7Ci0JaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ0ZHX01JQ1JPTl9OT1A7Ci0JaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ0ZHX01JQ1JPTl9JTklUX0RFVl9PUDsKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX05PUDsKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX0VNMjsKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX05PUDsKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX1BDSEdfQUxMOwotCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENGR19NSUNST05fRU0yOwotCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENGR19NSUNST05fRU0zOwotCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENGR19NSUNST05fRU5fRExMOwotCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENGR19NSUNST05fSU5JVF9ERVZfT1A7Ci0JaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ0ZHX01JQ1JPTl9QQ0hHX0FMTDsKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX1JGU0g7Ci0JaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ0ZHX01JQ1JPTl9JTklUX0RFVl9PUDsKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX09DRF9ERUZBVUxUOwotCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENGR19NSUNST05fUENIR19BTEw7Ci0JaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ0ZHX01JQ1JPTl9OT1A7CisJaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ09ORklHX1NZU19NSUNST05fUENIR19BTEw7CisJaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ09ORklHX1NZU19NSUNST05fTk9QOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX1JGU0g7CisJaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ09ORklHX1NZU19NSUNST05fTk9QOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX1JGU0g7CisJaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ09ORklHX1NZU19NSUNST05fTk9QOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX0lOSVRfREVWX09QOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX05PUDsKKwlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDT05GSUdfU1lTX01JQ1JPTl9FTTI7CisJaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ09ORklHX1NZU19NSUNST05fTk9QOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX1BDSEdfQUxMOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX0VNMjsKKwlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDT05GSUdfU1lTX01JQ1JPTl9FTTM7CisJaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ09ORklHX1NZU19NSUNST05fRU5fRExMOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX0lOSVRfREVWX09QOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX1BDSEdfQUxMOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX1JGU0g7CisJaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ09ORklHX1NZU19NSUNST05fSU5JVF9ERVZfT1A7CisJaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ09ORklHX1NZU19NSUNST05fT0NEX0RFRkFVTFQ7CisJaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ09ORklHX1NZU19NSUNST05fUENIR19BTEw7CisJaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ09ORklHX1NZU19NSUNST05fTk9QOwogCiAJLyogU3RhcnQgTUREUkMgKi8KLQlpbS0+bWRkcmMuZGRyX3RpbWVfY29uZmlnMCA9IENGR19NRERSQ19USU1FX0NGRzBfUlVOOwotCWltLT5tZGRyYy5kZHJfc3lzX2NvbmZpZyA9IENGR19NRERSQ19TWVNfQ0ZHX1JVTjsKKwlpbS0+bWRkcmMuZGRyX3RpbWVfY29uZmlnMCA9IENPTkZJR19TWVNfTUREUkNfVElNRV9DRkcwX1JVTjsKKwlpbS0+bWRkcmMuZGRyX3N5c19jb25maWcgPSBDT05GSUdfU1lTX01ERFJDX1NZU19DRkdfUlVOOwogCiAJcmV0dXJuIG1zaXplOwogfQpAQCAtMjkyLDggKzI5Miw4IEBACiAKIGludCBjaGVja2JvYXJkICh2b2lkKQogewotCXVzaG9ydCBicmRfcmV2ID0gKih2dV9zaG9ydCAqKSAoQ0ZHX0NQTERfQkFTRSArIDB4MDApOwotCXVjaGFyIGNwbGRfcmV2ID0gKih2dV9jaGFyICopIChDRkdfQ1BMRF9CQVNFICsgMHgwMik7CisJdXNob3J0IGJyZF9yZXYgPSAqKHZ1X3Nob3J0ICopIChDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4MDApOworCXVjaGFyIGNwbGRfcmV2ID0gKih2dV9jaGFyICopIChDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4MDIpOwogCiAJcHJpbnRmICgiQm9hcmQ6IEFEUzUxMjEgcmV2LiAweCUwNHggKENQTEQgcmV2LiAweCUwMngpXG4iLAogCQlicmRfcmV2LCBjcGxkX3Jldik7CmRpZmYgLS1naXQgYS9ib2FyZC9hZHM1MTIxL2FkczUxMjFfZGl1LmMgYi9ib2FyZC9hZHM1MTIxL2FkczUxMjFfZGl1LmMKaW5kZXggMjY2MjhkMy4uMTE0NTBhYSAxMDA2NDQKLS0tIGEvYm9hcmQvYWRzNTEyMS9hZHM1MTIxX2RpdS5jCisrKyBiL2JvYXJkL2FkczUxMjEvYWRzNTEyMV9kaXUuYwpAQCAtNDMsNyArNDMsNyBAQAogCiB2b2lkIGRpdV9zZXRfcGl4ZWxfY2xvY2sodW5zaWduZWQgaW50IHBpeGNsb2NrKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNsazUxMnhfdCAqY2xrID0gJmltbWFwLT5jbGs7CiAJdm9sYXRpbGUgdW5zaWduZWQgaW50ICpjbGtkdmRyID0gJmNsay0+c2NmclswXTsKIAl1bnNpZ25lZCBsb25nIHNwZWVkX2NjYiwgdGVtcCwgcGl4dmFsOwpAQCAtMTAwLDcgKzEwMCw3IEBACiB9CiAKIFVfQk9PVF9DTUQoCi0JZGl1ZmIsIENGR19NQVhBUkdTLCAxLCBhZHM1MTIxZGl1X2luaXRfc2hvd19ibXAsCisJZGl1ZmIsIENPTkZJR19TWVNfTUFYQVJHUywgMSwgYWRzNTEyMWRpdV9pbml0X3Nob3dfYm1wLAogCSJkaXVmYiBpbml0IHwgYWRkciAtIEluaXQgb3IgRGlzcGxheSBCTVAgZmlsZVxuIiwKIAkiaW5pdFxuICAgIC0gaW5pdGlhbGl6ZSBESVVcbiIKIAkiYWRkclxuICAgIC0gZGlzcGxheSBibXAgYXQgYWRkcmVzcyAnYWRkcidcbiIKZGlmZiAtLWdpdCBhL2JvYXJkL2FkczUxMjEvcGNpLmMgYi9ib2FyZC9hZHM1MTIxL3BjaS5jCmluZGV4IGEzMzg2MDQuLmI3NDdlODEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FkczUxMjEvcGNpLmMKKysrIGIvYm9hcmQvYWRzNTEyMS9wY2kuYwpAQCAtMzMsOCArMzMsOCBAQAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKIC8qIFN5c3RlbSBSQU0gbWFwcGVkIHRvIFBDSSBzcGFjZSAqLwotI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fQlVTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9QSFlTCUNGR19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9CVVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9QSFlTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQogCiBzdGF0aWMgc3RydWN0IHBjaV9jb250cm9sbGVyIHBjaV9ob3NlOwogCkBAIC00Niw3ICs0Niw3IEBACiB2b2lkCiBwY2lfaW5pdF9ib2FyZCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGxhdzUxMnhfdCAqcGNpX2xhdzsKIAl2b2xhdGlsZSBwb3Q1MTJ4X3QgKnBjaV9wb3Q7CiAJdm9sYXRpbGUgcGNpY3RybDUxMnhfdCAqcGNpX2N0cmw7CkBAIC04NywxMCArODcsMTAgQEAKIAkvKgogCSAqIENvbmZpZ3VyZSBQQ0kgTG9jYWwgQWNjZXNzIFdpbmRvd3MKIAkgKi8KLQlwY2lfbGF3WzBdLmJhciA9IENGR19QQ0lfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMF0uYmFyID0gQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMF0uYXIgPSBMQVdBUl9FTiB8IExBV0FSX1NJWkVfNTEyTTsKIAotCXBjaV9sYXdbMV0uYmFyID0gQ0ZHX1BDSV9JT19QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzFdLmJhciA9IENPTkZJR19TWVNfUENJX0lPX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMV0uYXIgPSBMQVdBUl9FTiB8IExBV0FSX1NJWkVfMTZNOwogCiAJLyoKQEAgLTk4LDE4ICs5OCwxOCBAQAogCSAqLwogCiAJLyogUENJIG1lbSBzcGFjZSAtIHByZWZldGNoICovCi0JcGNpX3BvdFswXS5wb3RhciA9IChDRkdfUENJX01FTV9CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFswXS5wb2JhciA9IChDRkdfUENJX01FTV9QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CisJcGNpX3BvdFswXS5wb3RhciA9IChDT05GSUdfU1lTX1BDSV9NRU1fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbMF0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzBdLnBvY21yID0gUE9DTVJfRU4gfCBQT0NNUl9QUkUgfCBQT0NNUl9DTV8yNTZNOwogCiAJLyogUENJIElPIHNwYWNlICovCi0JcGNpX3BvdFsxXS5wb3RhciA9IChDRkdfUENJX0lPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKLQlwY2lfcG90WzFdLnBvYmFyID0gKENGR19QQ0lfSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbMV0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0lfSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbMV0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0lfSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOwogCXBjaV9wb3RbMV0ucG9jbXIgPSBQT0NNUl9FTiB8IFBPQ01SX0lPIHwgUE9DTVJfQ01fMTZNOwogCiAJLyogUENJIG1taW8gLSBub24tcHJlZmV0Y2ggbWVtIHNwYWNlICovCi0JcGNpX3BvdFsyXS5wb3RhciA9IChDRkdfUENJX01NSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOwotCXBjaV9wb3RbMl0ucG9iYXIgPSAoQ0ZHX1BDSV9NTUlPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKKwlwY2lfcG90WzJdLnBvdGFyID0gKENPTkZJR19TWVNfUENJX01NSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbMl0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0lfTU1JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CiAJcGNpX3BvdFsyXS5wb2NtciA9IFBPQ01SX0VOIHwgUE9DTVJfQ01fMjU2TTsKIAogCS8qCkBAIC0xMjksMjMgKzEyOSwyMyBAQAogCiAJLyogUENJIG1lbW9yeSBwcmVmZXRjaCBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkgICAgICAgQ0ZHX1BDSV9NRU1fQkFTRSwKLQkJICAgICAgIENGR19QQ0lfTUVNX1BIWVMsCi0JCSAgICAgICBDRkdfUENJX01FTV9TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTV9TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9NRU18UENJX1JFR0lPTl9QUkVGRVRDSCk7CiAKIAkvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCSAgICAgICBDRkdfUENJX01NSU9fQkFTRSwKLQkJICAgICAgIENGR19QQ0lfTU1JT19QSFlTLAotCQkgICAgICAgQ0ZHX1BDSV9NTUlPX1NJWkUsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NTUlPX1NJWkUsCiAJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAKIAkvKiBQQ0kgSU8gc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJICAgICAgIENGR19QQ0lfSU9fQkFTRSwKLQkJICAgICAgIENGR19QQ0lfSU9fUEhZUywKLQkJICAgICAgIENGR19QQ0lfSU9fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJX0lPX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9JT19QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfSU9fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCiAJLyogU3lzdGVtIG1lbW9yeSBzcGFjZSAqLwpAQCAtMTU4LDggKzE1OCw4IEBACiAJaG9zZS0+cmVnaW9uX2NvdW50ID0gNDsKIAogCXBjaV9zZXR1cF9pbmRpcmVjdChob3NlLAotCQkJICAgKENGR19JTU1SICsgMHg4MzAwKSwKLQkJCSAgIChDRkdfSU1NUiArIDB4ODMwNCkpOworCQkJICAgKENPTkZJR19TWVNfSU1NUiArIDB4ODMwMCksCisJCQkgICAoQ09ORklHX1NZU19JTU1SICsgMHg4MzA0KSk7CiAKIAlwY2lfcmVnaXN0ZXJfaG9zZShob3NlKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvYWxhc2thL2FsYXNrYS5jIGIvYm9hcmQvYWxhc2thL2FsYXNrYS5jCmluZGV4IDQ5YThmNzEuLjMzYjRhNmUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FsYXNrYS9hbGFza2EuYworKysgYi9ib2FyZC9hbGFza2EvYWxhc2thLmMKQEAgLTMyLDQ4ICszMiw0OCBAQAogCWludCBibG9ja3NpemUgPSAwOwogCiAJLyogRmxhc2ggMCAqLwotI2lmIGRlZmluZWQgKENGR19BTURfQk9PVCkKLQliYXR1ID0gQ0ZHX0ZMQVNIMF9CQVNFIHwgKEJMXzUxMksgPDwgMikgfCBCUFBfUlcgfCBCUFBfUlg7CisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19BTURfQk9PVCkKKwliYXR1ID0gQ09ORklHX1NZU19GTEFTSDBfQkFTRSB8IChCTF81MTJLIDw8IDIpIHwgQlBQX1JXIHwgQlBQX1JYOwogI2Vsc2UKLQliYXR1ID0gQ0ZHX0ZMQVNIMF9CQVNFIHwgKEJMXzE2TSA8PCAyKSB8IEJQUF9SVyB8IEJQUF9SWDsKKwliYXR1ID0gQ09ORklHX1NZU19GTEFTSDBfQkFTRSB8IChCTF8xNk0gPDwgMikgfCBCUFBfUlcgfCBCUFBfUlg7CiAjZW5kaWYKLQliYXRsID0gQ0ZHX0ZMQVNIMF9CQVNFIHwgMHgyMjsKKwliYXRsID0gQ09ORklHX1NZU19GTEFTSDBfQkFTRSB8IDB4MjI7CiAJd3JpdGVfYmF0IChJQkFUMCwgYmF0dSwgYmF0bCk7CiAJd3JpdGVfYmF0IChEQkFUMCwgYmF0dSwgYmF0bCk7CiAKIAkvKiBGbGFzaCAxICovCi0jaWYgZGVmaW5lZCAoQ0ZHX0FNRF9CT09UKQotCWJhdHUgPSBDRkdfRkxBU0gxX0JBU0UgfCAoQkxfMTZNIDw8IDIpIHwgQlBQX1JXIHwgQlBQX1JYOworI2lmIGRlZmluZWQgKENPTkZJR19TWVNfQU1EX0JPT1QpCisJYmF0dSA9IENPTkZJR19TWVNfRkxBU0gxX0JBU0UgfCAoQkxfMTZNIDw8IDIpIHwgQlBQX1JXIHwgQlBQX1JYOwogI2Vsc2UKLQliYXR1ID0gQ0ZHX0ZMQVNIMV9CQVNFIHwgKEJMXzUxMksgPDwgMikgfCBCUFBfUlcgfCBCUFBfUlg7CisJYmF0dSA9IENPTkZJR19TWVNfRkxBU0gxX0JBU0UgfCAoQkxfNTEySyA8PCAyKSB8IEJQUF9SVyB8IEJQUF9SWDsKICNlbmRpZgotCWJhdGwgPSBDRkdfRkxBU0gxX0JBU0UgfCAweDIyOworCWJhdGwgPSBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFIHwgMHgyMjsKIAl3cml0ZV9iYXQgKElCQVQxLCBiYXR1LCBiYXRsKTsKIAl3cml0ZV9iYXQgKERCQVQxLCBiYXR1LCBiYXRsKTsKIAogCS8qIENQTEQgKi8KLQliYXR1ID0gQ0ZHX0NQTERfQkFTRSB8IChCTF81MTJLIDw8IDIpIHwgQlBQX1JXIHwgQlBQX1JYOwotCWJhdGwgPSBDRkdfQ1BMRF9CQVNFIHwgMHgyMjsKKwliYXR1ID0gQ09ORklHX1NZU19DUExEX0JBU0UgfCAoQkxfNTEySyA8PCAyKSB8IEJQUF9SVyB8IEJQUF9SWDsKKwliYXRsID0gQ09ORklHX1NZU19DUExEX0JBU0UgfCAweDIyOwogCXdyaXRlX2JhdCAoSUJBVDIsIDAsIDApOwogCXdyaXRlX2JhdCAoREJBVDIsIGJhdHUsIGJhdGwpOwogCiAJLyogRlBHQSAqLwotCWJhdHUgPSBDRkdfRlBHQV9CQVNFIHwgKEJMXzUxMksgPDwgMikgfCBCUFBfUlcgfCBCUFBfUlg7Ci0JYmF0bCA9IENGR19GUEdBX0JBU0UgfCAweDIyOworCWJhdHUgPSBDT05GSUdfU1lTX0ZQR0FfQkFTRSB8IChCTF81MTJLIDw8IDIpIHwgQlBQX1JXIHwgQlBQX1JYOworCWJhdGwgPSBDT05GSUdfU1lTX0ZQR0FfQkFTRSB8IDB4MjI7CiAJd3JpdGVfYmF0IChJQkFUMywgMCwgMCk7CiAJd3JpdGVfYmF0IChEQkFUMywgYmF0dSwgYmF0bCk7CiAKIAkvKiBNQkFSIC0gRGF0YSBvbmx5ICovCi0JYmF0dSA9IENGR19NQkFSIHwgQlBQX1JXIHwgQlBQX1JYOwotCWJhdGwgPSBDRkdfTUJBUiB8IDB4MjI7CisJYmF0dSA9IENPTkZJR19TWVNfTUJBUiB8IEJQUF9SVyB8IEJQUF9SWDsKKwliYXRsID0gQ09ORklHX1NZU19NQkFSIHwgMHgyMjsKIAltdHNwciAoSUJBVDRMLCAwKTsKIAltdHNwciAoSUJBVDRVLCAwKTsKIAltdHNwciAoREJBVDRMLCBiYXRsKTsKIAltdHNwciAoREJBVDRVLCBiYXR1KTsKIAogCS8qIE1CQVIgLSBTUkFNICovCi0JYmF0dSA9IENGR19TUkFNX0JBU0UgfCBCUFBfUlcgfCBCUFBfUlg7Ci0JYmF0bCA9IENGR19TUkFNX0JBU0UgfCAweDQyOworCWJhdHUgPSBDT05GSUdfU1lTX1NSQU1fQkFTRSB8IEJQUF9SVyB8IEJQUF9SWDsKKwliYXRsID0gQ09ORklHX1NZU19TUkFNX0JBU0UgfCAweDQyOwogCW10c3ByIChJQkFUNUwsIGJhdGwpOwogCW10c3ByIChJQkFUNVUsIGJhdHUpOwogCW10c3ByIChEQkFUNUwsIGJhdGwpOwpAQCAtOTMsOCArOTMsOCBAQAogCQlibG9ja3NpemUgPSBCTF8yNTZNIDw8IDI7CiAKIAkvKiBNZW1vcnkgKi8KLQliYXR1ID0gQ0ZHX1NEUkFNX0JBU0UgfCBibG9ja3NpemUgfCBCUFBfUlcgfCBCUFBfUlg7Ci0JYmF0bCA9IENGR19TRFJBTV9CQVNFIHwgMHg0MjsKKwliYXR1ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgYmxvY2tzaXplIHwgQlBQX1JXIHwgQlBQX1JYOworCWJhdGwgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCAweDQyOwogCW10c3ByIChJQkFUNkwsIGJhdGwpOwogCW10c3ByIChJQkFUNlUsIGJhdHUpOwogCW10c3ByIChEQkFUNkwsIGJhdGwpOwpAQCAtMTIwLDkgKzEyMCw5IEBACiAJCWVsc2UgaWYgKHNpemUgPD0gMHgxMDAwMDAwMCkJLyogMjU2TUIgKi8KIAkJCWJsb2Nrc2l6ZSA9IEJMXzI1Nk0gPDwgMjsKIAotCQliYXR1ID0gKENGR19TRFJBTV9CQVNFICsKKwkJYmF0dSA9IChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKwogCQkJMHgxMDAwMDAwMCkgfCBibG9ja3NpemUgfCBCUFBfUlcgfCBCUFBfUlg7Ci0JCWJhdGwgPSAoQ0ZHX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwKSB8IDB4NDI7CisJCWJhdGwgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCkgfCAweDQyOwogCX0KIAogCW10c3ByIChJQkFUN0wsIGJhdGwpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYWxhc2thL2ZsYXNoLmMgYi9ib2FyZC9hbGFza2EvZmxhc2guYwppbmRleCA1NTZjMTY4Li5hZWQzYjZmIDEwMDY0NAotLS0gYS9ib2FyZC9hbGFza2EvZmxhc2guYworKysgYi9ib2FyZC9hbGFza2EvZmxhc2guYwpAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2J5dGVvcmRlci9zd2FiLmg+CiAKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCiAKIC8qIEJvYXJkIHN1cHBvcnQgZm9yIDEgb3IgMiBmbGFzaCBkZXZpY2VzICovCiAjZGVmaW5lIEZMQVNIX1BPUlRfV0lEVEg4CkBAIC04NiwzMCArODYsMzAgQEAKIAl1bG9uZyBzaXplID0gMDsKIAl1bG9uZyBmc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJbWVtc2V0ICgmZmxhc2hfaW5mb1tpXSwgMCwgc2l6ZW9mIChmbGFzaF9pbmZvX3QpKTsKIAogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgotCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ0ZHX0ZMQVNIMV9CQVNFLAorCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ09ORklHX1NZU19GTEFTSDFfQkFTRSwKIAkJCQkJJmZsYXNoX2luZm9baV0pOwotCQkJZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSDFfQkFTRSwgJmZsYXNoX2luZm9baV0pOworCQkJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0gxX0JBU0UsICZmbGFzaF9pbmZvW2ldKTsKIAkJCWJyZWFrOwogCQljYXNlIDE6Ci0JCQlmbGFzaF9nZXRfc2l6ZSAoKEZQVyAqKSBDRkdfRkxBU0gxX0JBU0UsCisJCQlmbGFzaF9nZXRfc2l6ZSAoKEZQVyAqKSBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFLAogCQkJCQkmZmxhc2hfaW5mb1tpXSk7Ci0JCQlmc2l6ZSA9IENGR19GTEFTSDFfQkFTRSArIGZsYXNoX2luZm9baSAtIDFdLnNpemU7CisJCQlmc2l6ZSA9IENPTkZJR19TWVNfRkxBU0gxX0JBU0UgKyBmbGFzaF9pbmZvW2kgLSAxXS5zaXplOwogCQkJZmxhc2hfZ2V0X29mZnNldHMgKGZzaXplLCAmZmxhc2hfaW5mb1tpXSk7CiAJCQlicmVhazsKIAkJY2FzZSAyOgotCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ0ZHX0ZMQVNIMF9CQVNFLAorCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ09ORklHX1NZU19GTEFTSDBfQkFTRSwKIAkJCQkJJmZsYXNoX2luZm9baV0pOwotCQkJZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9baV0pOworCQkJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvW2ldKTsKIAkJCWJyZWFrOwogCQljYXNlIDM6Ci0JCQlmbGFzaF9nZXRfc2l6ZSAoKEZQVyAqKSBDRkdfRkxBU0gwX0JBU0UsCisJCQlmbGFzaF9nZXRfc2l6ZSAoKEZQVyAqKSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFLAogCQkJCQkmZmxhc2hfaW5mb1tpXSk7Ci0JCQlmc2l6ZSA9IENGR19GTEFTSDBfQkFTRSArIGZsYXNoX2luZm9baSAtIDFdLnNpemU7CisJCQlmc2l6ZSA9IENPTkZJR19TWVNfRkxBU0gwX0JBU0UgKyBmbGFzaF9pbmZvW2kgLSAxXS5zaXplOwogCQkJZmxhc2hfZ2V0X29mZnNldHMgKGZzaXplLCAmZmxhc2hfaW5mb1tpXSk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKQEAgLTEyNCwyMyArMTI0LDIzIEBACiAKIAkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KLSNpZiBkZWZpbmVkIChDRkdfQU1EX0JPT1QpCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19BTURfQk9PVCkKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkgICAgICAgJmZsYXNoX2luZm9bMl0pOwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfSU5URUxfQkFTRSwKLQkJICAgICAgIENGR19JTlRFTF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkgICAgICAgQ09ORklHX1NZU19JTlRFTF9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19JTlRFTF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkgICAgICAgJmZsYXNoX2luZm9bMV0pOwogI2Vsc2UKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkgICAgICAgJmZsYXNoX2luZm9bM10pOwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfQU1EX0JBU0UsCi0JCSAgICAgICBDRkdfQU1EX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdKTsKKwkJICAgICAgIENPTkZJR19TWVNfQU1EX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX0FNRF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIAogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCkBAIC0yOTQsMTAgKzI5NCwxMCBAQAogCQlicmVhazsKIAl9CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmICgiKiogRVJST1I6IHNlY3RvciBjb3VudCAlZCA+IG1heCAoJWQpICoqXG4iLAotCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOwotCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWlmICh2YWx1ZSA9PSAoRlBXKSBJTlRFTF9JRF8yOEYxMjhKM0EpCkBAIC0zNDgsNyArMzQ4LDcgQEAKIAkvKgogCSAqIGZpcnN0LCB3YWl0IGZvciB0aGUgV1NNIHRvIGJlIGZpbmlzaGVkLiBUaGUgcmF0aW9uYWxlIGZvcgogCSAqIHdhaXRpbmcgZm9yIHRoZSBXU00gdG8gYmVjb21lIGlkbGUgZm9yIGF0IG1vc3QKLQkgKiBDRkdfRkxBU0hfRVJBU0VfVE9VVCBpcyBhcyBmb2xsb3dzLiBUaGUgV1NNIGNhbiBiZSBidXN5CisJICogQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUIGlzIGFzIGZvbGxvd3MuIFRoZSBXU00gY2FuIGJlIGJ1c3kKIAkgKiBiZWNhdXNlIG9mOiAoMSkgZXJhc2UsICgyKSBwcm9ncmFtIG9yICgzKSBsb2NrIGJpdAogCSAqIGNvbmZpZ3VyYXRpb24uIFNvIHdlIGp1c3Qgd2FpdCBmb3IgdGhlIGxvbmdlc3QgdGltZW91dCBvZgogCSAqIHRoZSAoMSktKDMpLCBpLmUuIHRoZSBlcmFzZSB0aW1lb3V0LgpAQCAtMzYxLDcgKzM2MSw3IEBACiAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqYWRkciAmIChGUFcpIElOVEVMX0ZJTklTSEVEKSAhPSAoRlBXKSBJTlRFTF9GSU5JU0hFRCkgewotCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCSphZGRyID0gKEZQVykgSU5URUxfUkVTRVQ7IC8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlwcmludGYoIldTTSBidXN5IHRvbyBsb25nLCBjYW4ndCBnZXQgcHJvdCBzdGF0dXNcbiIpOwogCQkJcmV0dXJuIDE7CkBAIC0zOTEsNyArMzkxLDcgQEAKICAqLwogc3RhdGljIHVuc2lnbmVkIGNoYXIgc2FtZV9jaGlwX2JhbmtzIChpbnQgYmFuazEsIGludCBiYW5rMikKIHsKLQl1bnNpZ25lZCBjaGFyIHNhbWVfY2hpcFtDRkdfTUFYX0ZMQVNIX0JBTktTXVtDRkdfTUFYX0ZMQVNIX0JBTktTXSA9IHsKKwl1bnNpZ25lZCBjaGFyIHNhbWVfY2hpcFtDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU11bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdID0gewogCQl7MSwgMSwgMCwgMH0sCiAJCXsxLCAxLCAwLCAwfSwKIAkJezAsIDAsIDEsIDF9LApAQCAtNDY3LDcgKzQ2Nyw3IEBACiAJCQl9IGVsc2UgewogCQkJCUZQV1YgKmJhc2U7CS8qIGZpcnN0IGFkZHJlc3MgaW4gYmFuayAqLwogCi0JCQkJYmFzZSA9IChGUFdWICopIChDRkdfQU1EX0JBU0UpOworCQkJCWJhc2UgPSAoRlBXViAqKSAoQ09ORklHX1NZU19BTURfQkFTRSk7CiAJCQkJYmFzZVtGTEFTSF9DWUNMRTFdID0gKEZQVykgMHgwMEFBMDBBQTsJLyogdW5sb2NrICovCiAJCQkJYmFzZVtGTEFTSF9DWUNMRTJdID0gKEZQVykgMHgwMDU1MDA1NTsJLyogdW5sb2NrICovCiAJCQkJYmFzZVtGTEFTSF9DWUNMRTFdID0gKEZQVykgMHgwMDgwMDA4MDsJLyogZXJhc2UgbW9kZSAqLwpAQCAtNDc5LDcgKzQ3OSw3IEBACiAJCQl3aGlsZSAoKChzdGF0dXMgPQogCQkJCSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPQogCQkJICAgICAgIChGUFcpIDB4MDA4MDAwODApIHsKLQkJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJaWYgKGludGVsKSB7CiAJCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CS8qIHN1c3BlbmQgZXJhc2UgICAgICovCkBAIC02ODQsNyArNjg0LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgqYWRkciAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CkBAIC03MjgsNyArNzI4LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgqZHN0YWRkciAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqZHN0YWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CkBAIC03NDYsNyArNzQ2LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgqZHN0YWRkciAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqZHN0YWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CkBAIC03NzksNyArNzc5LDcgQEAKIAkJcmV0dXJuICgyKTsKIAl9CiAKLQliYXNlID0gKEZQV1YgKikgKENGR19BTURfQkFTRSk7CisJYmFzZSA9IChGUFdWICopIChDT05GSUdfU1lTX0FNRF9CQVNFKTsKIAogCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMgKCk7CkBAIC03OTksNyArNzk5LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJd2hpbGUgKHJlcyA9PSAwCiAJICAgICAgICYmICgqZGVzdCAmIChGUFcpIDB4MDA4MDAwODApICE9IChkYXRhICYgKEZQVykgMHgwMDgwMDA4MCkpIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqZGVzdCA9IChGUFcpIDB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCXJlcyA9IDE7CiAJCX0KQEAgLTg1Niw3ICs4NTYsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAogCXdoaWxlICgoKmFkZHIgJiBJTlRFTF9GSU5JU0hFRCkgIT0gSU5URUxfRklOSVNIRUQpIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfVU5MT0NLX1RPVVQpIHsKIAkJCXByaW50ZiAoIkZsYXNoIGxvY2sgYml0IG9wZXJhdGlvbiB0aW1lZCBvdXRcbiIpOwogCQkJcmMgPSAxOwogCQkJYnJlYWs7CkBAIC04ODYsMTcgKzg4NiwxNyBAQAogCQkgKi8KIAogCQkvKiBmaW5kIHRoZSBjdXJyZW50IGJhbmsgbnVtYmVyICovCi0JCWN1cnJfYmFuayA9IENGR19NQVhfRkxBU0hfQkFOS1MgKyAxOwotCQlmb3IgKGogPSAwOyBqIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytqKSB7CisJCWN1cnJfYmFuayA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICsgMTsKKwkJZm9yIChqID0gMDsgaiA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2opIHsKIAkJCWlmICgmZmxhc2hfaW5mb1tqXSA9PSBpbmZvKSB7CiAJCQkJY3Vycl9iYW5rID0gajsKIAkJCX0KIAkJfQotCQlpZiAoY3Vycl9iYW5rID09IENGR19NQVhfRkxBU0hfQkFOS1MgKyAxKSB7CisJCWlmIChjdXJyX2JhbmsgPT0gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgKyAxKSB7CiAJCQlwcmludGYoIkVycm9yOiBjYW4ndCBkZXRlcm1pbmUgYmFuayBudW1iZXIhXG4iKTsKIAkJfQogCi0JCWZvciAoYmFuayA9IDA7IGJhbmsgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmspIHsKKwkJZm9yIChiYW5rID0gMDsgYmFuayA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmspIHsKIAkJCWlmICghc2FtZV9jaGlwX2JhbmtzKGN1cnJfYmFuaywgYmFuaykpIHsKIAkJCQljb250aW51ZTsKIAkJCX0KQEAgLTkxMCw3ICs5MTAsNyBAQAogCQkJCQl3aGlsZSAoKCphZGRyICYgSU5URUxfRklOSVNIRUQpICE9CiAJCQkJCSAgICAgICBJTlRFTF9GSU5JU0hFRCkgewogCQkJCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4KLQkJCQkJCSAgICBDRkdfRkxBU0hfVU5MT0NLX1RPVVQpIHsKKwkJCQkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUKSB7CiAJCQkJCQkJcHJpbnRmICgiRmxhc2ggbG9jayBiaXQgb3BlcmF0aW9uIHRpbWVkIG91dFxuIik7CiAJCQkJCQkJcmMgPSAxOwogCQkJCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYWx0ZXJhL2NvbW1vbi9BTURMVjA2NUQuYyBiL2JvYXJkL2FsdGVyYS9jb21tb24vQU1ETFYwNjVELmMKaW5kZXggOGE3YjE0ZS4uMGZjZjM1NCAxMDA2NDQKLS0tIGEvYm9hcmQvYWx0ZXJhL2NvbW1vbi9BTURMVjA2NUQuYworKysgYi9ib2FyZC9hbHRlcmEvY29tbW9uL0FNRExWMDY1RC5jCkBAIC0zMCw3ICszMCw3IEBACiAjZW5kaWYKIAogI2RlZmluZSBTRUNUU1oJCSg2NCAqIDEwMjQpCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKQEAgLTM5LDE4ICszOSwxOCBAQAogCXVuc2lnbmVkIGxvbmcgYWRkcjsKIAlmbGFzaF9pbmZvX3QgKmZsaSA9ICZmbGFzaF9pbmZvWzBdOwogCi0JZmxpLT5zaXplID0gQ0ZHX0ZMQVNIX1NJWkU7Ci0JZmxpLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJZmxpLT5zaXplID0gQ09ORklHX1NZU19GTEFTSF9TSVpFOworCWZsaS0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAlmbGktPmZsYXNoX2lkID0gRkxBU0hfTUFOX0FNRCArIEZMQVNIX0FNRExWMDY1RDsKIAotCWFkZHIgPSBDRkdfRkxBU0hfQkFTRTsKKwlhZGRyID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCWZvciAoaSA9IDA7IGkgPCBmbGktPnNlY3Rvcl9jb3VudDsgKytpKSB7CiAJCWZsaS0+c3RhcnRbaV0gPSBhZGRyOwogCQlhZGRyICs9IFNFQ1RTWjsKIAkJZmxpLT5wcm90ZWN0W2ldID0gMTsKIAl9CiAKLQlyZXR1cm4gKENGR19GTEFTSF9TSVpFKTsKKwlyZXR1cm4gKENPTkZJR19TWVNfRkxBU0hfU0laRSk7CiB9CiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIHZvaWQgZmxhc2hfcHJpbnRfaW5mbyAoZmxhc2hfaW5mb190ICogaW5mbykKQEAgLTEzNSw3ICsxMzUsNyBAQAogCQkJd2hpbGUgKCByZWFkYiAoYWRkcjIpICE9IDB4ZmYpIHsKIAkJCQl1ZGVsYXkgKDEwMDAgKiAxMDAwKTsKIAkJCQlwdXRjICgnLicpOwotCQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoInRpbWVvdXRcbiIpOwogCQkJCQlyZXR1cm4gMTsKIAkJCQl9CkBAIC0xNzcsNyArMTc3LDcgQEAKIAkJLyogVmVyaWZ5IHdyaXRlICovCiAJCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAkJd2hpbGUgKHJlYWRiIChkc3QpICE9IGIpIHsKLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gMTsKIAkJCX0KIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvYWx0ZXJhL2NvbW1vbi9lcGxlZC5jIGIvYm9hcmQvYWx0ZXJhL2NvbW1vbi9lcGxlZC5jCmluZGV4IGM3NWZlOGMuLmU1ZTc3MDUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FsdGVyYS9jb21tb24vZXBsZWQuYworKysgYi9ib2FyZC9hbHRlcmEvY29tbW9uL2VwbGVkLmMKQEAgLTMzLDcgKzMzLDcgQEAKIAogdm9pZCBfX2xlZF9pbml0IChsZWRfaWRfdCBtYXNrLCBpbnQgc3RhdGUpCiB7Ci0Jbmlvc19waW9fdCAqcGlvID0gKG5pb3NfcGlvX3QgKilDRkdfTEVEUElPX0FERFI7CisJbmlvc19waW9fdCAqcGlvID0gKG5pb3NfcGlvX3QgKilDT05GSUdfU1lTX0xFRFBJT19BRERSOwogCiAJaWYgKHN0YXRlID09IFNUQVRVU19MRURfT04pCiAJCXZhbCAmPSB+bWFzazsKQEAgLTQ0LDcgKzQ0LDcgQEAKIAogdm9pZCBfX2xlZF9zZXQgKGxlZF9pZF90IG1hc2ssIGludCBzdGF0ZSkKIHsKLQluaW9zX3Bpb190ICpwaW8gPSAobmlvc19waW9fdCAqKUNGR19MRURQSU9fQUREUjsKKwluaW9zX3Bpb190ICpwaW8gPSAobmlvc19waW9fdCAqKUNPTkZJR19TWVNfTEVEUElPX0FERFI7CiAKIAlpZiAoc3RhdGUgPT0gU1RBVFVTX0xFRF9PTikKIAkJdmFsICY9IH5tYXNrOwpAQCAtNTUsNyArNTUsNyBAQAogCiB2b2lkIF9fbGVkX3RvZ2dsZSAobGVkX2lkX3QgbWFzaykKIHsKLQluaW9zX3Bpb190ICpwaW8gPSAobmlvc19waW9fdCAqKUNGR19MRURQSU9fQUREUjsKKwluaW9zX3Bpb190ICpwaW8gPSAobmlvc19waW9fdCAqKUNPTkZJR19TWVNfTEVEUElPX0FERFI7CiAKIAl2YWwgXj0gbWFzazsKIAl3cml0ZWwgKCZwaW8tPmRhdGEsIHZhbCk7CmRpZmYgLS1naXQgYS9ib2FyZC9hbHRlcmEvY29tbW9uL2ZsYXNoLmMgYi9ib2FyZC9hbHRlcmEvY29tbW9uL2ZsYXNoLmMKaW5kZXggMjYzOGVhOC4uODNiYjdjMiAxMDA2NDQKLS0tIGEvYm9hcmQvYWx0ZXJhL2NvbW1vbi9mbGFzaC5jCisrKyBiL2JvYXJkL2FsdGVyYS9jb21tb24vZmxhc2guYwpAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG5pb3MuaD4KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogdm9pZCBmbGFzaF9wcmludF9pbmZvIChmbGFzaF9pbmZvX3QgKiBpbmZvKQpAQCAtNjgsOCArNjgsOCBAQAogCiBpbnQgZmxhc2hfZXJhc2UgKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KQogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOwogCWludCBwcm90LCBzZWN0OwogCXVuc2lnbmVkIG9sZHByaTsKIAl1bG9uZyBzdGFydDsKQEAgLTExMiw3ICsxMTIsNyBAQAogCSAqLwogCWZvciAoc2VjdCA9IHNfZmlyc3Q7IHNlY3QgPD0gc19sYXN0OyBzZWN0KyspIHsKIAkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCi0JCQlhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJCQlhZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOwogCQkJKmFkZHIgPSAweGFhOwogCQkJKmFkZHIgPSAweDU1OwogCQkJKmFkZHIgPSAweDgwOwpAQCAtMTI4LDcgKzEyOCw3IEBACiAJCQl3aGlsZSAoKmFkZHIyICE9IDB4ZmYpIHsKIAkJCQl1ZGVsYXkgKDEwMDAgKiAxMDAwKTsKIAkJCQlwdXRjICgnLicpOwotCQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoInRpbWVvdXRcbiIpOwogCQkJCQlyZXR1cm4gMTsKIAkJCQl9CkBAIC0xODEsNyArMTgxLDcgQEAKIAkJLyogVmVyaWZ5IHdyaXRlICovCiAJCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAkJd2hpbGUgKCpkc3QgIT0gYikgewotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCWlwcmkgKG9sZHByaSk7CiAJCQkJcmV0dXJuIDE7CiAJCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9hbHRlcmEvZGsxYzIwL2RrMWMyMC5jIGIvYm9hcmQvYWx0ZXJhL2RrMWMyMC9kazFjMjAuYwppbmRleCA0NjY5NWJlLi4xMWMxOWI3IDEwMDY0NAotLS0gYS9ib2FyZC9hbHRlcmEvZGsxYzIwL2RrMWMyMC5jCisrKyBiL2JvYXJkL2FsdGVyYS9kazFjMjAvZGsxYzIwLmMKQEAgLTU4LDkgKzU4LDkgQEAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfSURFKQogaW50IGlkZV9wcmVpbml0ICh2b2lkKQogewotCW5pb3NfcGlvX3QgKnByZXNlbnQgPSAobmlvc19waW9fdCAqKSBDRkdfQ0ZfUFJFU0VOVDsKLQluaW9zX3Bpb190ICpwb3dlciA9IChuaW9zX3Bpb190ICopIENGR19DRl9QT1dFUjsKLQluaW9zX3Bpb190ICphdGFzZWwgPSAobmlvc19waW9fdCAqKSBDRkdfQ0ZfQVRBU0VMOworCW5pb3NfcGlvX3QgKnByZXNlbnQgPSAobmlvc19waW9fdCAqKSBDT05GSUdfU1lTX0NGX1BSRVNFTlQ7CisJbmlvc19waW9fdCAqcG93ZXIgPSAobmlvc19waW9fdCAqKSBDT05GSUdfU1lTX0NGX1BPV0VSOworCW5pb3NfcGlvX3QgKmF0YXNlbCA9IChuaW9zX3Bpb190ICopIENPTkZJR19TWVNfQ0ZfQVRBU0VMOwogCiAJLyogc2V0dXAgZGF0YSBkaXJlY3Rpb24gcmVnaXN0ZXJzICovCiAJcHJlc2VudC0+ZGlyZWN0aW9uID0gTklPU19QSU9fSU47CmRpZmYgLS1naXQgYS9ib2FyZC9hbHRlcmEvZGsxYzIwL2ZsYXNoLmMgYi9ib2FyZC9hbHRlcmEvZGsxYzIwL2ZsYXNoLmMKaW5kZXggMWYzNDRkZC4uOGJkZGQzOCAxMDA2NDQKLS0tIGEvYm9hcmQvYWx0ZXJhL2RrMWMyMC9mbGFzaC5jCisrKyBiL2JvYXJkL2FsdGVyYS9kazFjMjAvZmxhc2guYwpAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIi4uL2NvbW1vbi9mbGFzaC5jIgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBCQU5LU1oJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIEJBTktTWgkJQ09ORklHX1NZU19GTEFTSF9TSVpFCiAjZGVmaW5lIFNFQ1RTWgkJKDY0ICogMTAyNCkKICNkZWZpbmUgVVNFUkZMQVNICSgyICogMTAyNCAqIDEwMjQpCS8qIGJvdHRvbSAyIE1CIGZvciB1c2VyCSovCiAKQEAgLTQzLDE2ICs0MywxNiBAQAogCWZsYXNoX2luZm9fdCAqZmxpID0gJmZsYXNoX2luZm9bMF07CiAKIAlmbGktPnNpemUgPSBCQU5LU1o7Ci0JZmxpLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJZmxpLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCWZsaS0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fQU1EICsgRkxBU0hfQU1ETFYwNjVEOwogCi0JYWRkciA9IENGR19GTEFTSF9CQVNFOworCWFkZHIgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJZm9yIChpID0gMDsgaSA8IGZsaS0+c2VjdG9yX2NvdW50OyArK2kpIHsKIAkJZmxpLT5zdGFydFtpXSA9IGFkZHI7CiAJCWFkZHIgKz0gU0VDVFNaOwogCiAJCS8qIFByb3RlY3QgYWxsIGJ1dCAyIE1CeXRlIHVzZXIgYXJlYSAqLwotCQlpZiAoYWRkciA8IChDRkdfRkxBU0hfQkFTRSArIFVTRVJGTEFTSCkpCisJCWlmIChhZGRyIDwgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIFVTRVJGTEFTSCkpCiAJCQlmbGktPnByb3RlY3RbaV0gPSAwOwogCQllbHNlCiAJCQlmbGktPnByb3RlY3RbaV0gPSAxOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYWx0ZXJhL2RrMXMxMC9mbGFzaC5jIGIvYm9hcmQvYWx0ZXJhL2RrMXMxMC9mbGFzaC5jCmluZGV4IDVjNzA5MzMuLmQxZjJkYjEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FsdGVyYS9kazFzMTAvZmxhc2guYworKysgYi9ib2FyZC9hbHRlcmEvZGsxczEwL2ZsYXNoLmMKQEAgLTQzLDE2ICs0MywxNiBAQAogCWZsYXNoX2luZm9fdCAqZmxpID0gJmZsYXNoX2luZm9bMF07CiAKIAlmbGktPnNpemUgPSBCQU5LU1o7Ci0JZmxpLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJZmxpLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCWZsaS0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fQU1EICsgRkxBU0hfQU1ETFYwNjVEOwogCi0JYWRkciA9IENGR19GTEFTSF9CQVNFOworCWFkZHIgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJZm9yIChpID0gMDsgaSA8IGZsaS0+c2VjdG9yX2NvdW50OyArK2kpIHsKIAkJZmxpLT5zdGFydFtpXSA9IGFkZHI7CiAJCWFkZHIgKz0gU0VDVFNaOwogCiAJCS8qIFByb3RlY3QgYWxsIGJ1dCAyIE1CeXRlIHVzZXIgYXJlYSAqLwotCQlpZiAoYWRkciA8IChDRkdfRkxBU0hfQkFTRSArIFVTRVJGTEFTSCkpCisJCWlmIChhZGRyIDwgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIFVTRVJGTEFTSCkpCiAJCQlmbGktPnByb3RlY3RbaV0gPSAwOwogCQllbHNlCiAJCQlmbGktPnByb3RlY3RbaV0gPSAxOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYWx0ZXJhL2RrMXMxMC92ZWN0b3JzLlMgYi9ib2FyZC9hbHRlcmEvZGsxczEwL3ZlY3RvcnMuUwppbmRleCAyZjQ0ODc1Li4yMjZmNjViIDEwMDY0NAotLS0gYS9ib2FyZC9hbHRlcmEvZGsxczEwL3ZlY3RvcnMuUworKysgYi9ib2FyZC9hbHRlcmEvZGsxczEwL3ZlY3RvcnMuUwpAQCAtNTgsMTIgKzU4LDEyIEBACiAJLmFsaWduCTQKIF92ZWN0b3JzOgogCi0jaWYJZGVmaW5lZChDRkdfTklPU19DUFVfT0NJX0JBU0UpCisjaWYJZGVmaW5lZChDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9CQVNFKQogCS8qIE9DSSBkb2VzIHRoZSByZXNldCBqb2IgKi8KIAkubG9uZwlfZGVmX3hoYW5kbGVyQGgJCS8qIFZlY3RvciAwICAtIE5NSSAvIFJlc2V0ICovCiAjZWxzZQogCS8qIHRoZXJlIGlzIG5vIE9DSSwgc28gd2UgaGF2ZSB0byBkbyBhIGRpcmVjdCByZXNldCBqdW1wIGhlcmUgKi8KLQkubG9uZwlDRkdfTklPU19DUFVfUlNUX1ZFQ1QJLyogVmVjdG9yIDAgIC0gUmVzZXQgdG8gR0VSTVMgKi8KKwkubG9uZwlDT05GSUdfU1lTX05JT1NfQ1BVX1JTVF9WRUNUCS8qIFZlY3RvciAwICAtIFJlc2V0IHRvIEdFUk1TICovCiAjZW5kaWYKIAkubG9uZwlfY3dwX2xvbGltaXRAaAkJLyogVmVjdG9yIDEgIC0gdW5kZXJmbG93ICovCiAJLmxvbmcJX2N3cF9oaWxpbWl0QGgJCS8qIFZlY3RvciAyICAtIG92ZXJmbG93CSovCkBAIC04MSw3ICs4MSw3IEBACiAJLmxvbmcJX2RlZl94aGFuZGxlckBoCQkvKiBWZWN0b3IgMTMgLSBmdXR1cmUgcmVzZXJ2ZWQgKi8KIAkubG9uZwlfZGVmX3hoYW5kbGVyQGgJCS8qIFZlY3RvciAxNCAtIGZ1dHVyZSByZXNlcnZlZCAqLwogCS5sb25nCV9kZWZfeGhhbmRsZXJAaAkJLyogVmVjdG9yIDE1IC0gZnV0dXJlIHJlc2VydmVkICovCi0jaWYJKENGR19OSU9TX1RNUklSUSA9PSAxNikKKyNpZgkoQ09ORklHX1NZU19OSU9TX1RNUklSUSA9PSAxNikKIAkubG9uZwlfdGltZWJhc2VfaW50QGgJCS8qIFZlY3RvciAxNiAtIGxvcHJpIHRpbWVyKi8KICNlbHNlCiAJLmxvbmcJX2RlZl94aGFuZGxlckBoCQkvKiBWZWN0b3IgMTYgKi8KQEAgLTExOSw3ICsxMTksNyBAQAogCS5sb25nCV9kZWZfeGhhbmRsZXJAaAkJLyogVmVjdG9yIDQ3ICovCiAJLmxvbmcJX2RlZl94aGFuZGxlckBoCQkvKiBWZWN0b3IgNDggKi8KIAkubG9uZwlfZGVmX3hoYW5kbGVyQGgJCS8qIFZlY3RvciA0OSAqLwotI2lmCShDRkdfTklPU19UTVJJUlEgPT0gNTApCisjaWYJKENPTkZJR19TWVNfTklPU19UTVJJUlEgPT0gNTApCiAJLmxvbmcJX3RpbWViYXNlX2ludEBoCQkvKiBWZWN0b3IgNTAgLSBsb3ByaSB0aW1lciovCiAjZWxzZQogCS5sb25nCV9kZWZfeGhhbmRsZXJAaAkJLyogVmVjdG9yIDUwICovCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2FjYWRpYS9hY2FkaWEuYyBiL2JvYXJkL2FtY2MvYWNhZGlhL2FjYWRpYS5jCmluZGV4IDhiODJlYTQuLjhkNzliZTIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvYWNhZGlhL2FjYWRpYS5jCisrKyBiL2JvYXJkL2FtY2MvYWNhZGlhL2FjYWRpYS5jCkBAIC0zMSwyNCArMzEsMjQgQEAKIAkvKgogCSAqIEdQSU8wIHNldHVwIChzZWxlY3QgR1BJTyBvciBhbHRlcm5hdGUgZnVuY3Rpb24pCiAJICovCi0Jb3V0MzIoR1BJTzBfT1NSTCwgQ0ZHX0dQSU8wX09TUkwpOwotCW91dDMyKEdQSU8wX09TUkgsIENGR19HUElPMF9PU1JIKTsJLyogb3V0cHV0IHNlbGVjdCAqLwotCW91dDMyKEdQSU8wX0lTUjFMLCBDRkdfR1BJTzBfSVNSMUwpOwotCW91dDMyKEdQSU8wX0lTUjFILCBDRkdfR1BJTzBfSVNSMUgpOwkvKiBpbnB1dCBzZWxlY3QgKi8KLQlvdXQzMihHUElPMF9UU1JMLCBDRkdfR1BJTzBfVFNSTCk7Ci0Jb3V0MzIoR1BJTzBfVFNSSCwgQ0ZHX0dQSU8wX1RTUkgpOwkvKiB0aHJlZS1zdGF0ZSBzZWxlY3QgKi8KLQlvdXQzMihHUElPMF9UQ1IsIENGR19HUElPMF9UQ1IpOyAgLyogZW5hYmxlIG91dHB1dCBkcml2ZXIgZm9yIG91dHB1dHMgKi8KKwlvdXQzMihHUElPMF9PU1JMLCBDT05GSUdfU1lTX0dQSU8wX09TUkwpOworCW91dDMyKEdQSU8wX09TUkgsIENPTkZJR19TWVNfR1BJTzBfT1NSSCk7CS8qIG91dHB1dCBzZWxlY3QgKi8KKwlvdXQzMihHUElPMF9JU1IxTCwgQ09ORklHX1NZU19HUElPMF9JU1IxTCk7CisJb3V0MzIoR1BJTzBfSVNSMUgsIENPTkZJR19TWVNfR1BJTzBfSVNSMUgpOwkvKiBpbnB1dCBzZWxlY3QgKi8KKwlvdXQzMihHUElPMF9UU1JMLCBDT05GSUdfU1lTX0dQSU8wX1RTUkwpOworCW91dDMyKEdQSU8wX1RTUkgsIENPTkZJR19TWVNfR1BJTzBfVFNSSCk7CS8qIHRocmVlLXN0YXRlIHNlbGVjdCAqLworCW91dDMyKEdQSU8wX1RDUiwgQ09ORklHX1NZU19HUElPMF9UQ1IpOyAgLyogZW5hYmxlIG91dHB1dCBkcml2ZXIgZm9yIG91dHB1dHMgKi8KIAogCS8qCiAJICogVWx0cmEgKDQwNUVaKSB3YXMgbmljZSBlbm91Z2ggdG8gYWRkIGFub3RoZXIgR1BJTyBjb250cm9sbGVyCiAJICovCi0Jb3V0MzIoR1BJTzFfT1NSSCwgQ0ZHX0dQSU8xX09TUkgpOwkvKiBvdXRwdXQgc2VsZWN0ICovCi0Jb3V0MzIoR1BJTzFfT1NSTCwgQ0ZHX0dQSU8xX09TUkwpOwotCW91dDMyKEdQSU8xX0lTUjFILCBDRkdfR1BJTzFfSVNSMUgpOwkvKiBpbnB1dCBzZWxlY3QgKi8KLQlvdXQzMihHUElPMV9JU1IxTCwgQ0ZHX0dQSU8xX0lTUjFMKTsKLQlvdXQzMihHUElPMV9UU1JILCBDRkdfR1BJTzFfVFNSSCk7CS8qIHRocmVlLXN0YXRlIHNlbGVjdCAqLwotCW91dDMyKEdQSU8xX1RTUkwsIENGR19HUElPMV9UU1JMKTsKLQlvdXQzMihHUElPMV9UQ1IsIENGR19HUElPMV9UQ1IpOyAgLyogZW5hYmxlIG91dHB1dCBkcml2ZXIgZm9yIG91dHB1dHMgKi8KKwlvdXQzMihHUElPMV9PU1JILCBDT05GSUdfU1lTX0dQSU8xX09TUkgpOwkvKiBvdXRwdXQgc2VsZWN0ICovCisJb3V0MzIoR1BJTzFfT1NSTCwgQ09ORklHX1NZU19HUElPMV9PU1JMKTsKKwlvdXQzMihHUElPMV9JU1IxSCwgQ09ORklHX1NZU19HUElPMV9JU1IxSCk7CS8qIGlucHV0IHNlbGVjdCAqLworCW91dDMyKEdQSU8xX0lTUjFMLCBDT05GSUdfU1lTX0dQSU8xX0lTUjFMKTsKKwlvdXQzMihHUElPMV9UU1JILCBDT05GSUdfU1lTX0dQSU8xX1RTUkgpOwkvKiB0aHJlZS1zdGF0ZSBzZWxlY3QgKi8KKwlvdXQzMihHUElPMV9UU1JMLCBDT05GSUdfU1lTX0dQSU8xX1RTUkwpOworCW91dDMyKEdQSU8xX1RDUiwgQ09ORklHX1NZU19HUElPMV9UQ1IpOyAgLyogZW5hYmxlIG91dHB1dCBkcml2ZXIgZm9yIG91dHB1dHMgKi8KIH0KIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZih2b2lkKQpAQCAtNjgsNyArNjgsNyBAQAogCW10c2RyKHNkcm5hbmQwLCBTRFJfTkFORDBfTkRFTiB8IFNEUl9OQU5EMF9OREFSRU4gfCBTRFJfTkFORDBfTkRSQkVOKTsKIAltZnNkcihzZHJ1bHRyYTAsIHJlZyk7CiAJcmVnICY9IH5TRFJfVUxUUkEwX0NTTl9NQVNLOwotCXJlZyB8PSAoU0RSX1VMVFJBMF9DU05TRUwwID4+IENGR19OQU5EX0NTKSB8CisJcmVnIHw9IChTRFJfVUxUUkEwX0NTTlNFTDAgPj4gQ09ORklHX1NZU19OQU5EX0NTKSB8CiAJCVNEUl9VTFRSQTBfTkRHUElPQlAgfAogCQlTRFJfVUxUUkEwX0VCQ1JEWUVOIHwKIAkJU0RSX1VMVFJBMF9ORlNSU1RFTjsKQEAgLTkxLDcgKzkxLDcgQEAKIGludCBtaXNjX2luaXRfZih2b2lkKQogewogCS8qIFNldCBFUExEIHRvIHRha2UgUEhZIG91dCBvZiByZXNldCAqLwotCW91dDgoQ0ZHX0NQTERfQkFTRSArIDB4MDUsIDB4MDApOworCW91dDgoQ09ORklHX1NZU19DUExEX0JBU0UgKyAweDA1LCAweDAwKTsKIAl1ZGVsYXkoMTAwMDAwKTsKIAogCXJldHVybiAwOwpAQCAtMTA1LDcgKzEwNSw3IEBACiAJY2hhciAqcyA9IGdldGVudigic2VyaWFsIyIpOwogCXU4IHJldjsKIAotCXJldiA9IGluOChDRkdfQ1BMRF9CQVNFICsgMCk7CisJcmV2ID0gaW44KENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMCk7CiAJcHJpbnRmKCJCb2FyZDogQWNhZGlhIC0gQU1DQyBQUEM0MDVFWiBFdmFsdWF0aW9uIEJvYXJkLCBSZXYuICVYIiwgcmV2KTsKIAogCWlmIChzICE9IE5VTEwpIHsKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvYWNhZGlhL2NtZF9hY2FkaWEuYyBiL2JvYXJkL2FtY2MvYWNhZGlhL2NtZF9hY2FkaWEuYwppbmRleCBmYjdlYTM1Li4wNTJjZjYxIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2FjYWRpYS9jbWRfYWNhZGlhLmMKKysrIGIvYm9hcmQvYW1jYy9hY2FkaWEvY21kX2FjYWRpYS5jCkBAIC04NCw3ICs4NCw3IEBACiAKIAlpZiAoaTJjX3dyaXRlKGNoaXAsIDAsIDEsIGJ1ZiwgMTYpICE9IDApCiAJCXByaW50ZigiRXJyb3Igd3JpdGluZyB0byBFRVBST00gYXQgYWRkcmVzcyAweCV4XG4iLCBjaGlwKTsKLQl1ZGVsYXkoQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TICogMTAwMCk7CisJdWRlbGF5KENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgKiAxMDAwKTsKIAlpZiAoaTJjX3dyaXRlKGNoaXAsIDB4MTAsIDEsIGJ1ZisxNiwgNCkgIT0gMCkKIAkJcHJpbnRmKCJFcnJvcjIgd3JpdGluZyB0byBFRVBST00gYXQgYWRkcmVzcyAweCV4XG4iLCBjaGlwKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9hY2FkaWEvbWVtb3J5LmMgYi9ib2FyZC9hbWNjL2FjYWRpYS9tZW1vcnkuYwppbmRleCA0OGE2NzI1Li4zZTVjODBlIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2FjYWRpYS9tZW1vcnkuYworKysgYi9ib2FyZC9hbWNjL2FjYWRpYS9tZW1vcnkuYwpAQCAtMzksNyArMzksNyBAQAogCXdyX3ZhbCA8PD0gMjsKIAogCS8qIHNldCBDUkFNX0NSRSB0byAxICovCi0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fQ1JBTV9DUkUsIDEpOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19DUkFNX0NSRSwgMSk7CiAKIAkvKiBXcml0ZSBCQ1IgdG8gQ1JBTSBvbiBDUzEgKi8KIAlvdXQzMih3cl92YWwgKyAweDAwMjAwMDAwLCAwKTsKQEAgLTUzLDcgKzUzLDcgQEAKIAllaWVpbygpOwogCiAJLyogc2V0IENSQU1fQ1JFIGJhY2sgdG8gMCAobm9ybWFsIG9wZXJhdGlvbikgKi8KLQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19DUkFNX0NSRSwgMCk7CisJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX0NSQU1fQ1JFLCAwKTsKIAogCXJldHVybjsKIH0KQEAgLTc1LDEwICs3NSwxMCBAQAogCXUzMiB2YWw7CiAKIAkvKiAxLiBFQkMgbmVlZCB0byBwcm9ncmFtIFJFQURZLCBDTEssIEFEViBmb3IgQVN5bmMgbW9kZSAqLwotCWdwaW9fY29uZmlnKENGR19HUElPX0NSQU1fQ0xLLCBHUElPX09VVCwgR1BJT19TRUwsIEdQSU9fT1VUXzApOwotCWdwaW9fY29uZmlnKENGR19HUElPX0NSQU1fQURWLCBHUElPX09VVCwgR1BJT19TRUwsIEdQSU9fT1VUXzApOwotCWdwaW9fY29uZmlnKENGR19HUElPX0NSQU1fQ1JFLCBHUElPX09VVCwgR1BJT19TRUwsIEdQSU9fT1VUXzApOwotCWdwaW9fY29uZmlnKENGR19HUElPX0NSQU1fV0FJVCwgR1BJT19JTiwgR1BJT19TRUwsIEdQSU9fT1VUX05PX0NIRyk7CisJZ3Bpb19jb25maWcoQ09ORklHX1NZU19HUElPX0NSQU1fQ0xLLCBHUElPX09VVCwgR1BJT19TRUwsIEdQSU9fT1VUXzApOworCWdwaW9fY29uZmlnKENPTkZJR19TWVNfR1BJT19DUkFNX0FEViwgR1BJT19PVVQsIEdQSU9fU0VMLCBHUElPX09VVF8wKTsKKwlncGlvX2NvbmZpZyhDT05GSUdfU1lTX0dQSU9fQ1JBTV9DUkUsIEdQSU9fT1VULCBHUElPX1NFTCwgR1BJT19PVVRfMCk7CisJZ3Bpb19jb25maWcoQ09ORklHX1NZU19HUElPX0NSQU1fV0FJVCwgR1BJT19JTiwgR1BJT19TRUwsIEdQSU9fT1VUX05PX0NIRyk7CiAKIAkvKiAyLiBFQkMgaW4gQXN5bmMgbW9kZSAqLwogCW10ZWJjKHBiMWFwLCAweDA3OEYxRUMwKTsKQEAgLTk0LDggKzk0LDggQEAKIAltdGViYyhwYjJhcCwgMHg5QzAyMDFDMCk7CiAKIAkvKiBTZXQgR1BJTyBwaW5zIGJhY2sgdG8gYWx0ZXJuYXRlIGZ1bmN0aW9uICovCi0JZ3Bpb19jb25maWcoQ0ZHX0dQSU9fQ1JBTV9DTEssIEdQSU9fT1VULCBHUElPX0FMVDEsIEdQSU9fT1VUX05PX0NIRyk7Ci0JZ3Bpb19jb25maWcoQ0ZHX0dQSU9fQ1JBTV9BRFYsIEdQSU9fT1VULCBHUElPX0FMVDEsIEdQSU9fT1VUX05PX0NIRyk7CisJZ3Bpb19jb25maWcoQ09ORklHX1NZU19HUElPX0NSQU1fQ0xLLCBHUElPX09VVCwgR1BJT19BTFQxLCBHUElPX09VVF9OT19DSEcpOworCWdwaW9fY29uZmlnKENPTkZJR19TWVNfR1BJT19DUkFNX0FEViwgR1BJT19PVVQsIEdQSU9fQUxUMSwgR1BJT19PVVRfTk9fQ0hHKTsKIAogCS8qIENvbmZpZyBFQkMgdG8gdXNlIFJEWSAqLwogCW1mc2RyKHNkcnVsdHJhMCwgdmFsKTsKQEAgLTEwNiw1ICsxMDYsNSBAQAogCQk7CiAjZW5kaWYKIAotCXJldHVybiAoQ0ZHX01CWVRFU19SQU0gPDwgMjApOworCXJldHVybiAoQ09ORklHX1NZU19NQllURVNfUkFNIDw8IDIwKTsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvYmFtYm9vL2JhbWJvby5jIGIvYm9hcmQvYW1jYy9iYW1ib28vYmFtYm9vLmMKaW5kZXggZjQxNTcwMS4uZmViYzYxYSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9iYW1ib28vYmFtYm9vLmMKKysrIGIvYm9hcmQvYW1jYy9iYW1ib28vYmFtYm9vLmMKQEAgLTQ2Miw3ICs0NjIsNyBAQAogCiAJcmV0dXJuIGRyYW1fc2l6ZTsKICNlbHNlCi0JcmV0dXJuIENGR19NQllURVNfU0RSQU0gPDwgMjA7CisJcmV0dXJuIENPTkZJR19TWVNfTUJZVEVTX1NEUkFNIDw8IDIwOwogI2VuZGlmCiB9CiAKQEAgLTUyOSw3ICs1MjksNyBAQAogICoJbWF5IG5vdCBiZSBzdWZmaWNpZW50IGZvciBhIGdpdmVuIGJvYXJkLgogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogdm9pZCBwY2lfdGFyZ2V0X2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC01NDMsMTQgKzU0MywxNCBAQAogCSAgfCBNYWtlIHRoaXMgcmVnaW9uIG5vbi1wcmVmZXRjaGFibGUuCiAJICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCW91dDMycihQQ0lYMF9QTU0wTUEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIE1hc2svQXR0cmlidXRlIC0gZGlzYWJsZWQgYjQgc2V0dGluZyAqLwotCW91dDMycihQQ0lYMF9QTU0wTEEsIENGR19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLwotCW91dDMycihQQ0lYMF9QTU0wUENJTEEsIENGR19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTBMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0wUENJTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UpOwkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0wUENJSEEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIFBDSSBIaWdoIEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NME1BLCAweEUwMDAwMDAxKTsJLyogNTEyTSArIE5vIHByZWZldGNoaW5nLCBhbmQgZW5hYmxlIHJlZ2lvbiAqLwogCiAJb3V0MzJyKFBDSVgwX1BNTTFNQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgTWFzay9BdHRyaWJ1dGUgLSBkaXNhYmxlZCBiNCBzZXR0aW5nICovCi0Jb3V0MzJyKFBDSVgwX1BNTTFMQSwgQ0ZHX1BDSV9NRU1CQVNFMik7IC8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLwotCW91dDMycihQQ0lYMF9QTU0xUENJTEEsIENGR19QQ0lfTUVNQkFTRTIpOwkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0xTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UyKTsgLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTFQQ0lMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIpOwkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0xUENJSEEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIFBDSSBIaWdoIEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMU1BLCAweEUwMDAwMDAxKTsJLyogNTEyTSArIE5vIHByZWZldGNoaW5nLCBhbmQgZW5hYmxlIHJlZ2lvbiAqLwogCkBAIC01NjUsOCArNTY1LDggQEAKIAogCS8qIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL3ZlbmRvciBpZCAqLwogCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX1ZFTkRPUl9JRCwKLQkJCSAgICAgIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKLQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX1NVQlNZU1RFTV9JRCwgQ0ZHX1BDSV9TVUJTWVNfSUQpOworCQkJICAgICAgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKKwlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX1NVQlNZU1RFTV9JRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0lEKTsKIAogCS8qIENvbmZpZ3VyZSBjb21tYW5kIHJlZ2lzdGVyIGFzIGJ1cyBtYXN0ZXIgKi8KIAlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX0NPTU1BTkQsIFBDSV9DT01NQU5EX01BU1RFUik7CkBAIC01ODAsMTMgKzU4MCwxMyBAQAogCXBjaV93cml0ZV9jb25maWdfZHdvcmQoMCwgUENJX0JSREdPUFQyLCAweDAwMDAwMTAxKTsKIAogfQotI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKSAqLworI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICBwY2lfbWFzdGVyX2luaXQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX01BU1RFUl9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVCkKIHZvaWQgcGNpX21hc3Rlcl9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSkKIHsKIAl1bnNpZ25lZCBzaG9ydCB0ZW1wX3Nob3J0OwpAQCAtNjAxLDcgKzYwMSw3IEBACiAJCQkgICAgICB0ZW1wX3Nob3J0IHwgUENJX0NPTU1BTkRfTUFTVEVSIHwKIAkJCSAgICAgIFBDSV9DT01NQU5EX01FTU9SWSk7CiB9Ci0jZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfTUFTVEVSX0lOSVQpICovCisjZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUKSAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogIGlzX3BjaV9ob3N0CmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2JhbWJvby9jb25maWcubWsgYi9ib2FyZC9hbWNjL2JhbWJvby9jb25maWcubWsKaW5kZXggYjQ2NTI3ZC4uYTM3NjM2YSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9iYW1ib28vY29uZmlnLm1rCisrKyBiL2JvYXJkL2FtY2MvYmFtYm9vL2NvbmZpZy5tawpAQCAtMzQsNSArMzQsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvYmFtYm9vL2ZsYXNoLmMgYi9ib2FyZC9hbWNjL2JhbWJvby9mbGFzaC5jCmluZGV4IGQwMDRlZDcuLjAwMTM0OGEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvYmFtYm9vL2ZsYXNoLmMKKysrIGIvYm9hcmQvYW1jYy9iYW1ib28vZmxhc2guYwpAQCAtNDUsMTIgKzQ1LDEyIEBACiAjZGVmaW5lIERFQlVHRih4Li4uKQogI2VuZGlmCQkJCS8qIERFQlVHICovCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgICAgICovCiAKIC8qCiAgKiBNYXJrIGJpZyBmbGFzaCBiYW5rICgxNiBiaXQgaW5zdGVhZCBvZiA4IGJpdCBhY2Nlc3MpIGluIGFkZHJlc3Mgd2l0aCBiaXQgMAogICovCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBmbGFzaF9hZGRyX3RhYmxlW11bQ0ZHX01BWF9GTEFTSF9CQU5LU10gPSB7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBmbGFzaF9hZGRyX3RhYmxlW11bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdID0gewogCXsweDg3ODAwMDAxLCAweEZGRjAwMDAwLCAweEZGRjgwMDAwfSwgLyogMDpib290IGZyb20gc21hbGwgZmxhc2ggKi8KIAl7MHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMH0sIC8qIDE6Ym9vdCBmcm9tIHBjaSA2NiAgICAgICovCiAJezB4ODc4MDAwMDEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDB9LCAvKiAwOmJvb3QgZnJvbSBuYW5kIGZsYXNoICAqLwpAQCAtNzksNyArNzksNyBAQAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0KHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyB0b3RhbF9iID0gMDsKLQl1bnNpZ25lZCBsb25nIHNpemVfYltDRkdfTUFYX0ZMQVNIX0JBTktTXTsKKwl1bnNpZ25lZCBsb25nIHNpemVfYltDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAJdW5zaWduZWQgc2hvcnQgaW5kZXggPSAwOwogCWludCBpOwogCXVuc2lnbmVkIGxvbmcgdmFsOwpAQCAtMTI4LDcgKzEyOCw3IEBACiAJREVCVUdGKCJGTEFTSDogSW5kZXg6ICVkXG4iLCBpbmRleCk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IC0xOwogCQlmbGFzaF9pbmZvW2ldLnNpemUgPSAwOwpAQCAtMTUwLDggKzE1MCw4IEBACiAJCX0KIAogCQkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwotCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENGR19NT05JVE9SX0JBU0UsCi0JCQkJICAgIENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4gLSAxLAorCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJCSAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gLSAxLAogCQkJCSAgICAmZmxhc2hfaW5mb1tpXSk7CiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENPTkZJR19FTlZfQUREUiwKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvYmFtYm9vL2luaXQuUyBiL2JvYXJkL2FtY2MvYmFtYm9vL2luaXQuUwppbmRleCBmNGQyYWUzLi5hNWM5ZDZkIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2JhbWJvby9pbml0LlMKKysrIGIvYm9hcmQvYW1jYy9iYW1ib28vaW5pdC5TCkBAIC00OCwyOSArNDgsMjkgQEAKIAkgKiBzcGVlZCB1cCBib290IHByb2Nlc3MuIEl0IGlzIHBhdGNoZWQgYWZ0ZXIgcmVsb2NhdGlvbiB0byBlbmFibGUgU0FfSQogCSAqLwogI2lmbmRlZiBDT05GSUdfTkFORF9TUEwKLQl0bGJlbnRyeShDRkdfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0sIENGR19CT09UX0JBU0VfQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRykKKwl0bGJlbnRyeShDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNLCBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HKQogI2Vsc2UKLQl0bGJlbnRyeShDRkdfTkFORF9CT09UX1NQTF9TUkMsIFNaXzRLLCBDRkdfTkFORF9CT09UX1NQTF9TUkMsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cpCi0JdGxiZW50cnkoQ0ZHX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIENGR19TRFJBTV9CQVNFLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQywgU1pfNEssIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkMsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cpCisJdGxiZW50cnkoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBTWl8yNTZNLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKICNlbmRpZgogCiAJLyogVExCLWVudHJ5IGZvciBpbml0LXJhbSBpbiBkY2FjaGUgKFNBX0kgbXVzdCBiZSB0dXJuZWQgb2ZmISkgKi8KLQl0bGJlbnRyeShDRkdfSU5JVF9SQU1fQUREUiwgU1pfNEssIENGR19JTklUX1JBTV9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HKQorCXRsYmVudHJ5KENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgU1pfNEssIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRykKIAogCS8qIFBDSSBiYXNlICYgcGVyaXBoZXJhbHMgKi8KLQl0bGJlbnRyeShDRkdfUENJX0JBU0UsIFNaXzI1Nk0sIENGR19QQ0lfQkFTRSwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSV9CQVNFLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9CQVNFLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCi0JdGxiZW50cnkoQ0ZHX05WUkFNX0JBU0VfQUREUiwgU1pfMjU2TSwgQ0ZHX05WUkFNX0JBU0VfQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfV3xTQV9JKQotCXRsYmVudHJ5KENGR19OQU5EX0FERFIsIFNaXzRLLCBDRkdfTkFORF9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9XfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIsIFNaXzI1Nk0sIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9XfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19OQU5EX0FERFIsIFNaXzRLLCBDT05GSUdfU1lTX05BTkRfQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfV3xTQV9JKQogCiAJLyogUENJICovCi0JdGxiZW50cnkoQ0ZHX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSV9NRU1CQVNFMSwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFMSwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJX01FTUJBU0UyLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UyLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lfTUVNQkFTRTMsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRTMsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UyLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX01FTUJBU0UzLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMywgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAogCS8qIFVTQiAyLjAgRGV2aWNlICovCi0JdGxiZW50cnkoQ0ZHX1VTQl9ERVZJQ0UsIFNaXzFLLCBDRkdfVVNCX0RFVklDRSwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1VTQl9ERVZJQ0UsIFNaXzFLLCBDT05GSUdfU1lTX1VTQl9ERVZJQ0UsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAKIAl0bGJ0YWJfZW5kCiAKQEAgLTc5LDggKzc5LDggQEAKIAkgKiBGb3IgTkFORCBib290aW5nIHRoZSBmaXJzdCBUTEIgaGFzIHRvIGJlIHJlY29uZmlndXJlZCB0byBmdWxsIHNpemUKIAkgKiBhbmQgd2l0aCBjYWNoaW5nIGRpc2FibGVkIGFmdGVyIHJ1bm5pbmcgZnJvbSBSQU0hCiAJICovCi0jZGVmaW5lIFRMQjAwCVRMQjAoQ0ZHX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNKQotI2RlZmluZSBUTEIwMQlUTEIxKENGR19CT09UX0JBU0VfQUREUiwgMCkKKyNkZWZpbmUgVExCMDAJVExCMChDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNKQorI2RlZmluZSBUTEIwMQlUTEIxKENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIDApCiAjZGVmaW5lIFRMQjAyCVRMQjIoQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQogCiAJLmdsb2JsCXJlY29uZmlnX3RsYjAKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvYnViaW5nYS9mbGFzaC5jIGIvYm9hcmQvYW1jYy9idWJpbmdhL2ZsYXNoLmMKaW5kZXggZDcxY2MyOS4uYTEwYmFiYiAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9idWJpbmdhL2ZsYXNoLmMKKysrIGIvYm9hcmQvYW1jYy9idWJpbmdhL2ZsYXNoLmMKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlIDxwcGM0eHguaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgICAgICovCiAKICN1bmRlZiBERUJVRwogI2lmZGVmIERFQlVHCkBAIC02MCw3ICs2MCw3IEBACiAJdW5zaWduZWQgbG9uZyBiYXNlX2IwLCBiYXNlX2IxOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTc1LDE0ICs3NSwxNCBAQAogCX0KIAogCS8qIE9ubHkgb25lIGJhbmsgKi8KLQlpZiAoQ0ZHX01BWF9GTEFTSF9CQU5LUyA9PSAxKSB7CisJaWYgKENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID09IDEpIHsKIAkJLyogU2V0dXAgb2Zmc2V0cyAqLwogCQlmbGFzaF9nZXRfb2Zmc2V0cyhGTEFTSF9CQVNFMF9QUkVMSU0sICZmbGFzaF9pbmZvWzBdKTsKIAogCQkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkJICAgIENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4gLSAxLAorCQkJCSAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQkgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOIC0gMSwKIAkJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfRU5WX0FERFIsCkBAIC0xMzMsNyArMTMzLDcgQEAKIAogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJICAgIGJhc2VfYjAgKyBzaXplX2IwIC0gQ0ZHX01PTklUT1JfTEVOLAorCQkJCSAgICBiYXNlX2IwICsgc2l6ZV9iMCAtIENPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCQkJICAgIGJhc2VfYjAgKyBzaXplX2IwIC0gMSwgJmZsYXNoX2luZm9bMF0pOwogCQkvKiBBbHNvIHByb3RlY3Qgc2VjdG9yIGNvbnRhaW5pbmcgaW5pdGlhbCBwb3dlci11cCBpbnN0cnVjdGlvbiAqLwogCQkvKiAoZmxhc2hfcHJvdGVjdCgpIGNoZWNrcyBhZGRyZXNzIHJhbmdlIC0gb3RoZXIgY2FsbCBpZ25vcmVkKSAqLwpAQCAtMTUxLDEyICsxNTEsMTIgQEAKIAogCQkJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCQkJICAgIGJhc2VfYjEgKyBzaXplX2IxIC0gQ0ZHX01PTklUT1JfTEVOLAorCQkJCQkgICAgYmFzZV9iMSArIHNpemVfYjEgLSBDT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJCQkgICAgYmFzZV9iMSArIHNpemVfYjEgLSAxLAogCQkJCQkgICAgJmZsYXNoX2luZm9bMV0pOwogCQkJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9GRiBieSBkZWZhdWx0IChvbmUgaXMgZW5vdWdoKSAqLwogCQkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfQ0xFQVIsCi0JCQkJCSAgICBiYXNlX2IwICsgc2l6ZV9iMCAtIENGR19NT05JVE9SX0xFTiwKKwkJCQkJICAgIGJhc2VfYjAgKyBzaXplX2IwIC0gQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCQkJICAgIGJhc2VfYjAgKyBzaXplX2IwIC0gMSwKIAkJCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIAkJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvY2FueW9ubGFuZHMvYm9vdHN0cmFwLmMgYi9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2Jvb3RzdHJhcC5jCmluZGV4IDFkMTI1YjYuLjZiNzQ3NDMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvY2FueW9ubGFuZHMvYm9vdHN0cmFwLmMKKysrIGIvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9ib290c3RyYXAuYwpAQCAtMTY4LDcgKzE2OCw3IEBACiAKIAlpZiAoaTJjX3dyaXRlKEkyQ19FRVBST01fQUREUiwgMCwgMSwgYnVmLCAxNikgIT0gMCkKIAkJcHJpbnRmKCJFcnJvciB3cml0aW5nIHRvIEVFUFJPTSBhdCBhZGRyZXNzIDB4JXhcbiIsIEkyQ19FRVBST01fQUREUik7Ci0JdWRlbGF5KENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAqIDEwMDApOworCXVkZWxheShDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TICogMTAwMCk7CiAKIAlwcmludGYoIkRvbmVcbiIpOwogCXByaW50ZigiUGxlYXNlIHBvd2VyLWN5Y2xlIHRoZSBib2FyZCBmb3IgdGhlIGNoYW5nZXMgdG8gdGFrZSBlZmZlY3RcbiIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9jYW55b25sYW5kcy5jIGIvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9jYW55b25sYW5kcy5jCmluZGV4IDQ3NjY3ZWUuLmU5MTg2ZjggMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvY2FueW9ubGFuZHMvY2FueW9ubGFuZHMuYworKysgYi9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2NhbnlvbmxhbmRzLmMKQEAgLTI5LDExICsyOSwxMSBAQAogI2luY2x1ZGUgPGFzbS80eHhfcGNpZS5oPgogI2luY2x1ZGUgPGFzbS9ncGlvLmg+CiAKLWV4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2V4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0jZGVmaW5lIENGR19CQ1NSM19QQ0lFCQkweDEwCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUjNfUENJRQkJMHgxMAogCiAjZGVmaW5lIEJPQVJEX0NBTllPTkxBTkRTX1BDSUUJMQogI2RlZmluZSBCT0FSRF9DQU5ZT05MQU5EU19TQVRBCTIKQEAgLTg2LDcgKzg2LDcgQEAKIAkJU0RSMF9DVVNUMF9OREZDX0JXXzhfQklUCXwKIAkJU0RSMF9DVVNUMF9OREZDX0FSRV9NQVNLCXwKIAkJU0RSMF9DVVNUMF9OREZDX0JBQ19FTkNPREUoMykJfAotCQkoMHg4MDAwMDAwMCA+PiAoMjggKyBDRkdfTkFORF9DUykpOworCQkoMHg4MDAwMDAwMCA+PiAoMjggKyBDT05GSUdfU1lTX05BTkRfQ1MpKTsKIAltdHNkcihTRFIwX0NVU1QwLCBzZHIwX2N1c3QwKTsKIAogCS8qCkBAIC05OSwxMyArOTksMTMgQEAKIAltdHNkcihTRFIwX1BDSTAsIDB4ZTAwMDAwMDApOwogCiAJLyogRW5hYmxlIGV0aGVybmV0IGFuZCB0YWtlIG91dCBvZiByZXNldCAqLwotCW91dF84KCh2b2lkICopQ0ZHX0JDU1JfQkFTRSArIDYsIDApOworCW91dF84KCh2b2lkICopQ09ORklHX1NZU19CQ1NSX0JBU0UgKyA2LCAwKTsKIAogCS8qIFJlbW92ZSBOT1ItRkxBU0gsIE5BTkQtRkxBU0ggJiBFRVBST00gaGFyZHdhcmUgd3JpdGUgcHJvdGVjdGlvbiAqLwotCW91dF84KCh2b2lkICopQ0ZHX0JDU1JfQkFTRSArIDUsIDApOworCW91dF84KCh2b2lkICopQ09ORklHX1NZU19CQ1NSX0JBU0UgKyA1LCAwKTsKIAogCS8qIEVuYWJsZSBVU0IgaG9zdCAmIFVTQi1PVEcgKi8KLQlvdXRfOCgodm9pZCAqKUNGR19CQ1NSX0JBU0UgKyA3LCAwKTsKKwlvdXRfOCgodm9pZCAqKUNPTkZJR19TWVNfQkNTUl9CQVNFICsgNywgMCk7CiAKIAltdHNkcihTRFIwX1NSU1QxLCAwKTsJLyogUHVsbCBBSEIgb3V0IG9mIHJlc2V0IGRlZmF1bHQ9MSAqLwogCkBAIC0xNTgsNyArMTU4LDcgQEAKIAkJZ2QtPmJvYXJkX3R5cGUgPSBCT0FSRF9HTEFDSUVSOwogCX0gZWxzZSB7CiAJCXByaW50ZigiQm9hcmQ6IENhbnlvbmxhbmRzIC0gQU1DQyBQUEM0NjBFWCBFdmFsdWF0aW9uIEJvYXJkIik7Ci0JCWlmIChpbl84KCh2b2lkICopKENGR19CQ1NSX0JBU0UgKyAzKSkgJiBDRkdfQkNTUjNfUENJRSkKKwkJaWYgKGluXzgoKHZvaWQgKikoQ09ORklHX1NZU19CQ1NSX0JBU0UgKyAzKSkgJiBDT05GSUdfU1lTX0JDU1IzX1BDSUUpCiAJCQlnZC0+Ym9hcmRfdHlwZSA9IEJPQVJEX0NBTllPTkxBTkRTX1BDSUU7CiAJCWVsc2UKIAkJCWdkLT5ib2FyZF90eXBlID0gQk9BUkRfQ0FOWU9OTEFORFNfU0FUQTsKQEAgLTE3NSw3ICsxNzUsNyBAQAogCQlicmVhazsKIAl9CiAKLQlwcmludGYoIiwgUmV2LiAlWCIsIGluXzgoKHZvaWQgKikoQ0ZHX0JDU1JfQkFTRSArIDApKSk7CisJcHJpbnRmKCIsIFJldi4gJVgiLCBpbl84KCh2b2lkICopKENPTkZJR19TWVNfQkNTUl9CQVNFICsgMCkpKTsKIAogCWlmIChzICE9IE5VTEwpIHsKIAkJcHV0cygiLCBzZXJpYWwjICIpOwpAQCAtMjA4LDcgKzIwOCw3IEBACiAgKi8KIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCXJldHVybiBDRkdfTUJZVEVTX1NEUkFNIDw8IDIwOworCXJldHVybiBDT05GSUdfU1lTX01CWVRFU19TRFJBTSA8PCAyMDsKIH0KICNlbmRpZgogCkBAIC0yMTksNyArMjE5LDcgQEAKICAqCWluYm91bmQgbWFwIChQSU0pLiBCdXQgdGhlIGJvb3RzdHJhcCBjb25maWcgY2hvaWNlcyBhcmUgbGltaXRlZCBhbmQKICAqCW1heSBub3QgYmUgc3VmZmljaWVudCBmb3IgYSBnaXZlbiBib2FyZC4KICAqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkKIHZvaWQgcGNpX3RhcmdldF9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqIGhvc2UgKQogewogCS8qCkBAIC0yMzQsNyArMjM0LDcgQEAKIAkgKiBNYXAgYWxsIG9mIFNEUkFNIHRvIFBDSSBhZGRyZXNzIDB4MDAwMF8wMDAwLiBOb3RlIHRoYXQgdGhlIDQ0MAogCSAqIHN0cmFwcGluZyBvcHRpb25zIHRvIG5vdCBzdXBwb3J0IHNpemVzIHN1Y2ggYXMgMTI4LzI1NiBNQi4KIAkgKi8KLQlvdXRfbGUzMigodm9pZCAqKVBDSVgwX1BJTTBMQUwsIENGR19TRFJBTV9CQVNFKTsKKwlvdXRfbGUzMigodm9pZCAqKVBDSVgwX1BJTTBMQUwsIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAJb3V0X2xlMzIoKHZvaWQgKilQQ0lYMF9QSU0wTEFILCAwKTsKIAlvdXRfbGUzMigodm9pZCAqKVBDSVgwX1BJTTBTQSwgfihnZC0+cmFtX3NpemUgLSAxKSB8IDEpOwogCW91dF9sZTMyKCh2b2lkICopUENJWDBfQkFSMCwgMCk7CkBAIC0yNDIsMTIgKzI0MiwxMiBAQAogCS8qCiAJICogUHJvZ3JhbSB0aGUgYm9hcmQncyBzdWJzeXN0ZW0gaWQvdmVuZG9yIGlkCiAJICovCi0Jb3V0X2xlMTYoKHZvaWQgKilQQ0lYMF9TQlNZU1ZJRCwgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQpOwotCW91dF9sZTE2KCh2b2lkICopUENJWDBfU0JTWVNJRCwgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQpOworCW91dF9sZTE2KCh2b2lkICopUENJWDBfU0JTWVNWSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCk7CisJb3V0X2xlMTYoKHZvaWQgKilQQ0lYMF9TQlNZU0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQpOwogCiAJb3V0X2xlMTYoKHZvaWQgKilQQ0lYMF9DTUQsIGluMTZyKFBDSVgwX0NNRCkgfCBQQ0lfQ09NTUFORF9NRU1PUlkpOwogfQotI2VuZGlmCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKSAqLworI2VuZGlmCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKIC8qCkBAIC0zMTQsOSArMzE0LDkgQEAKIAogCQkvKiBzZXR1cCBtZW0gcmVzb3VyY2UgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgICAgICAgQ0ZHX1BDSUVfTUVNQkFTRSArIGkgKiBDRkdfUENJRV9NRU1TSVpFLAotCQkJICAgICAgIENGR19QQ0lFX01FTUJBU0UgKyBpICogQ0ZHX1BDSUVfTUVNU0laRSwKLQkJCSAgICAgICBDRkdfUENJRV9NRU1TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRV9NRU1CQVNFICsgaSAqIENPTkZJR19TWVNfUENJRV9NRU1TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRV9NRU1CQVNFICsgaSAqIENPTkZJR19TWVNfUENJRV9NRU1TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRV9NRU1TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMTsKIAkJcGNpX3JlZ2lzdGVyX2hvc2UoaG9zZSk7CkBAIC0zNjIsMTYgKzM2MiwxNiBAQAogCiAJLyogUmVtYXAgdGhlIE5PUiBGTEFTSCB0byAweGNjMDAuMDAwMCAuLi4gMHhjZmZmLmZmZmYgKi8KICNpZiBkZWZpbmVkKENPTkZJR19OQU5EX1VfQk9PVCkgfHwgZGVmaW5lZChDT05GSUdfTkFORF9TUEwpCi0JbXRlYmMocGIzY3IsIENGR19GTEFTSF9CQVNFX1BIWVNfTCB8IDB4ZGEwMDApOworCW10ZWJjKHBiM2NyLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0VfUEhZU19MIHwgMHhkYTAwMCk7CiAjZWxzZQotCW10ZWJjKHBiMGNyLCBDRkdfRkxBU0hfQkFTRV9QSFlTX0wgfCAweGRhMDAwKTsKKwltdGViYyhwYjBjciwgQ09ORklHX1NZU19GTEFTSF9CQVNFX1BIWVNfTCB8IDB4ZGEwMDApOwogI2VuZGlmCiAKIAkvKiBSZW1vdmUgVExCIGVudHJ5IG9mIGJvb3QgRUJDIG1hcHBpbmcgKi8KLQlyZW1vdmVfdGxiKENGR19CT09UX0JBU0VfQUREUiwgMTYgPDwgMjApOworCXJlbW92ZV90bGIoQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiwgMTYgPDwgMjApOwogCiAJLyogQWRkIFRMQiBlbnRyeSBmb3IgMHhmYzAwLjAwMDAgLT4gMHg0LmNjMDAuMDAwMCAqLwotCXByb2dyYW1fdGxiKENGR19GTEFTSF9CQVNFX1BIWVMsIENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfU0laRSwKKwlwcm9ncmFtX3RsYihDT05GSUdfU1lTX0ZMQVNIX0JBU0VfUEhZUywgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX1NJWkUsCiAJCSAgICBUTEJfV09SRDJfSV9FTkFCTEUpOwogCiAJLyoKQEAgLTQyNyw5ICs0MjcsOSBAQAogCSAqIERpc2FibGUgc3F1YXJlIHdhdmUgb3V0cHV0OiBCYXR0ZXJpZSB3aWxsIGJlIGRyYWluZWQKIAkgKiBxdWlja2x5LCB3aGVuIHRoaXMgb3V0cHV0IGlzIG5vdCBkaXNhYmxlZAogCSAqLwotCXZhbCA9IGkyY19yZWdfcmVhZChDRkdfSTJDX1JUQ19BRERSLCAweGEpOworCXZhbCA9IGkyY19yZWdfcmVhZChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgMHhhKTsKIAl2YWwgJj0gfjB4NDA7Ci0JaTJjX3JlZ193cml0ZShDRkdfSTJDX1JUQ19BRERSLCAweGEsIHZhbCk7CisJaTJjX3JlZ193cml0ZShDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgMHhhLCB2YWwpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC00NDUsNyArNDQ1LDcgQEAKIAkvKiBGaXh1cCBOT1IgbWFwcGluZyAqLwogCXZhbFswXSA9IDA7CQkJCS8qIGNoaXAgc2VsZWN0IG51bWJlciAqLwogCXZhbFsxXSA9IDA7CQkJCS8qIGFsd2F5cyAwICovCi0JdmFsWzJdID0gQ0ZHX0ZMQVNIX0JBU0VfUEhZU19MOwkJLyogd2UgZml4ZWQgdXAgdGhpcyBhZGRyZXNzICovCisJdmFsWzJdID0gQ09ORklHX1NZU19GTEFTSF9CQVNFX1BIWVNfTDsJCS8qIHdlIGZpeGVkIHVwIHRoaXMgYWRkcmVzcyAqLwogCXZhbFszXSA9IGdkLT5iZC0+YmlfZmxhc2hzaXplOwogCXJjID0gZmR0X2ZpbmRfYW5kX3NldHByb3AoYmxvYiwgIi9wbGIvb3BiL2ViYyIsICJyYW5nZXMiLAogCQkJCSAgdmFsLCBzaXplb2YodmFsKSwgMSk7CmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2NvbmZpZy5tayBiL2JvYXJkL2FtY2MvY2FueW9ubGFuZHMvY29uZmlnLm1rCmluZGV4IDIzMzBjYWUuLjU1MWE4MTcgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvY2FueW9ubGFuZHMvY29uZmlnLm1rCisrKyBiL2JvYXJkL2FtY2MvY2FueW9ubGFuZHMvY29uZmlnLm1rCkBAIC0zNyw1ICszNyw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9pbml0LlMgYi9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2luaXQuUwppbmRleCAyNThmYjVkLi4xNzlkZDMyIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2luaXQuUworKysgYi9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2luaXQuUwpAQCAtNDcsMTAgKzQ3LDEwIEBACiAJICogZW5hYmxlIFNBX0kKIAkgKi8KICNpZm5kZWYgQ09ORklHX05BTkRfU1BMCi0JdGxiZW50cnkoQ0ZHX0JPT1RfQkFTRV9BRERSLCBTWl8xNk0sIENGR19CT09UX0JBU0VfQUREUiwgNCwgQUNfUnxBQ19XfEFDX1h8U0FfRykgLyogVExCIDAgKi8KKwl0bGJlbnRyeShDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCBTWl8xNk0sIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0cpIC8qIFRMQiAwICovCiAjZWxzZQotCXRsYmVudHJ5KENGR19OQU5EX0JPT1RfU1BMX1NSQywgU1pfNEssIENGR19OQU5EX0JPT1RfU1BMX1NSQywgNCwgQUNfUnxBQ19XfEFDX1h8U0FfRykKLQl0bGJlbnRyeShDRkdfU0RSQU1fQkFTRSwgU1pfMjU2TSwgQ0ZHX1NEUkFNX0JBU0UsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfU1JDLCBTWl80SywgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQywgNCwgQUNfUnxBQ19XfEFDX1h8U0FfRykKKwl0bGJlbnRyeShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQogCXRsYmVudHJ5KDI1NiA8PCAyMCwgU1pfMjU2TSwgMjU2IDw8IDIwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCiAjZW5kaWYKIApAQCAtNjAsMzcgKzYwLDM3IEBACiAJICogcm91dGluZS4KIAkgKi8KIAotI2lmZGVmIENGR19JTklUX1JBTV9EQ0FDSEUKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfUkFNX0RDQUNIRQogCS8qIFRMQi1lbnRyeSBmb3IgaW5pdC1yYW0gaW4gZGNhY2hlIChTQV9JIG11c3QgYmUgdHVybmVkIG9mZiEpICovCi0JdGxiZW50cnkoQ0ZHX0lOSVRfUkFNX0FERFIsIFNaXzRLLCBDRkdfSU5JVF9SQU1fQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRykKKwl0bGJlbnRyeShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIFNaXzRLLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cpCiAjZW5kaWYKIAotCXRsYmVudHJ5KENGR19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgyMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFX01FTUJBU0UsIFNaXzI1Nk0sIDB4QjAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgyMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRV9NRU1CQVNFLCBTWl8yNTZNLCAweEIwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAKLQl0bGJlbnRyeShDRkdfUENJRTBfQ0ZHQkFTRSwgU1pfMTZNLCAweDAwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUxX0NGR0JBU0UsIFNaXzE2TSwgMHgyMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMF9YQ0ZHQkFTRSwgU1pfMUssIDB4MTAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTFfWENGR0JBU0UsIFNaXzFLLCAweDMwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMF9DRkdCQVNFLCBTWl8xNk0sIDB4MDAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUxX0NGR0JBU0UsIFNaXzE2TSwgMHgyMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTBfWENGR0JBU0UsIFNaXzFLLCAweDEwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMV9YQ0ZHQkFTRSwgU1pfMUssIDB4MzAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAogCS8qIFBDSWUgVVRMIHJlZ2lzdGVyICovCi0JdGxiZW50cnkoQ0ZHX1BDSUVfQkFTRSwgU1pfMTZLLCAweDA4MDEwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFX0JBU0UsIFNaXzE2SywgMHgwODAxMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCiAJLyogVExCLWVudHJ5IGZvciBOQU5EICovCi0JdGxiZW50cnkoQ0ZHX05BTkRfQUREUiwgU1pfMTZNLCBDRkdfTkFORF9BRERSLCA0LCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19OQU5EX0FERFIsIFNaXzE2TSwgQ09ORklHX1NZU19OQU5EX0FERFIsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKIAogCS8qIFRMQi1lbnRyeSBmb3IgQ1BMRCAqLwotCXRsYmVudHJ5KENGR19CQ1NSX0JBU0UsIFNaXzFLLCBDRkdfQkNTUl9CQVNFLCA0LCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfQkNTUl9CQVNFLCBTWl8xSywgQ09ORklHX1NZU19CQ1NSX0JBU0UsIDQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAKIAkvKiBUTEItZW50cnkgZm9yIE9DTSAqLwotCXRsYmVudHJ5KENGR19PQ01fQkFTRSwgU1pfMTZLLCAweDAwMDQwMDAwLCA0LCBBQ19SfEFDX1d8QUNfWHxTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfT0NNX0JBU0UsIFNaXzE2SywgMHgwMDA0MDAwMCwgNCwgQUNfUnxBQ19XfEFDX1h8U0FfSSkKIAogCS8qIFRMQi1lbnRyeSBmb3IgTG9jYWwgQ29uZmlndXJhdGlvbiByZWdpc3RlcnMgPT4gcGVyaXBoZXJhbHMgKi8KLQl0bGJlbnRyeShDRkdfTE9DQUxfQ09ORl9SRUdTLCBTWl8xNk0sIENGR19MT0NBTF9DT05GX1JFR1MsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX0xPQ0FMX0NPTkZfUkVHUywgU1pfMTZNLCBDT05GSUdfU1lTX0xPQ0FMX0NPTkZfUkVHUywgNCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQogCiAJLyogQUhCOiBJbnRlcm5hbCBVU0IgUGVyaXBoZXJhbHMgKFVTQiwgU0FUQSkgKi8KLQl0bGJlbnRyeShDRkdfQUhCX0JBU0UsIFNaXzFNLCAweGJmZjAwMDAwLCA0LCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19BSEJfQkFTRSwgU1pfMU0sIDB4YmZmMDAwMDAsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKIAogCXRsYnRhYl9lbmQKIApAQCAtOTksOCArOTksOCBAQAogCSAqIEZvciBOQU5EIGJvb3RpbmcgdGhlIGZpcnN0IFRMQiBoYXMgdG8gYmUgcmVjb25maWd1cmVkIHRvIGZ1bGwgc2l6ZQogCSAqIGFuZCB3aXRoIGNhY2hpbmcgZGlzYWJsZWQgYWZ0ZXIgcnVubmluZyBmcm9tIFJBTSEKIAkgKi8KLSNkZWZpbmUgVExCMDAJVExCMChDRkdfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0pCi0jZGVmaW5lIFRMQjAxCVRMQjEoQ0ZHX0JPT1RfQkFTRV9BRERSLCAxKQorI2RlZmluZSBUTEIwMAlUTEIwKENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0pCisjZGVmaW5lIFRMQjAxCVRMQjEoQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiwgMSkKICNkZWZpbmUgVExCMDIJVExCMihBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCiAKIAkuZ2xvYmwJcmVjb25maWdfdGxiMApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9jb21tb24vZmxhc2guYyBiL2JvYXJkL2FtY2MvY29tbW9uL2ZsYXNoLmMKaW5kZXggZWJhMDUxMS4uOTk0M2M3NCAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9jb21tb24vZmxhc2guYworKysgYi9ib2FyZC9hbWNjL2NvbW1vbi9mbGFzaC5jCkBAIC0zNSwxMyArMzUsMTMgQEAKICNpbmNsdWRlIDxwcGM0eHguaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKICAqLwogc3RhdGljIGludCB3cml0ZV93b3JkKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpOwotI2lmZGVmIENGR19GTEFTSF8yTkRfMTZCSVRfREVWCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF8yTkRfMTZCSVRfREVWCiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfMShmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKTsKIHN0YXRpYyBpbnQgd3JpdGVfd29yZF8yKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpOwogc3RhdGljIGludCBmbGFzaF9lcmFzZV8xKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KTsKQEAgLTE3MSw3ICsxNzEsNyBAQAogLyoKICAqIFRoZSBmb2xsb3dpbmcgY29kZSBjYW5ub3QgYmUgcnVuIGZyb20gRkxBU0ghCiAgKi8KLSNpZmRlZiBDRkdfRkxBU0hfMk5EXzE2QklUX0RFVgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFVgogc3RhdGljIHVsb25nIGZsYXNoX2dldF9zaXplKHZ1X2xvbmcgKiBhZGRyLCBmbGFzaF9pbmZvX3QgKiBpbmZvKQogewogCS8qIGJpdCAwIHVzZWQgZm9yIGJpZyBmbGFzaCBtYXJraW5nICovCkBAIC0xODgsMzIgKzE4OCwzMiBAQAogI2VuZGlmCiB7CiAJc2hvcnQgaTsKLQlDRkdfRkxBU0hfV09SRF9TSVpFIHZhbHVlOworCUNPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFIHZhbHVlOwogCXVsb25nIGJhc2UgPSAodWxvbmcpIGFkZHI7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBhZGRyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBhZGRyOwogCiAJREVCVUdGKCJGTEFTSCBBRERSOiAlMDh4XG4iLCAodW5zaWduZWQpYWRkcik7CiAKIAkvKiBXcml0ZSBhdXRvIHNlbGVjdCBjb21tYW5kOiByZWFkIE1hbnVmYWN0dXJlciBJRCAqLwotCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwOTAwMDkwOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwOTAwMDkwOwogCXVkZWxheSgxMDAwKTsKIAogCXZhbHVlID0gYWRkcjJbMF07CiAJREVCVUdGKCJGTEFTSCBNQU5VRkFDVDogJXhcbiIsIHZhbHVlKTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fQU1EOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBGVUpfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEZVSl9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fRlVKOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBTU1RfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIFNTVF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fU1NUOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBTVE1fTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIFNUTV9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fU1RNOwogCQlicmVhazsKIAlkZWZhdWx0OgpAQCAtMjI3LDY3ICsyMjcsNjcgQEAKIAlERUJVR0YoIlxuRkxBU0ggREVWSUNFSUQ6ICV4XG4iLCB2YWx1ZSk7CiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMDQwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMDQwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0wNDA7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDg7CiAJCWluZm8tPnNpemUgPSAweDAwODAwMDA7CQkvKiA9PiA1MTIgS2lCICovCiAJCWJyZWFrOwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0YwNDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfRjA0MEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMDQwOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA4OwogCQlpbmZvLT5zaXplID0gMHgwMDgwMDAwOwkJLyogPT4gNTEyIEtpQiAqLwogCQlicmVhazsKIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIFNUTV9JRF9NMjlXMDQwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgU1RNX0lEX00yOVcwNDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTA0MDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gODsKIAkJaW5mby0+c2l6ZSA9IDB4MDA4MDAwMDsJCS8qID0+IDUxMiBLaUIgKi8KIAkJYnJlYWs7CiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfRjAxNkQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9GMDE2RDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1EMDE2OwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAzMjsKIAkJaW5mby0+c2l6ZSA9IDB4MDAyMDAwMDA7CS8qID0+IDIgTWlCICovCiAJCWJyZWFrOwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMDMzQzoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMDMzQzoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1ETFYwMzNDOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA2NDsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7CS8qID0+IDQgTWlCICovCiAJCWJyZWFrOwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWNDAwVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWNDAwVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU00MDBUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxMTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAwODAwMDA7CS8qID0+IDUxMiBLaUIgKi8KIAkJYnJlYWs7CiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY0MDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY0MDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTQwMEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDExOwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsJLyogPT4gNTEyIEtpQiAqLwogCQlicmVhazsKIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjgwMFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjgwMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNODAwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTk7CiAJCWluZm8tPnNpemUgPSAweDAwMTAwMDAwOwkvKiA9PiAxIE1pQiAqLwogCQlicmVhazsKIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjgwMEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjgwMEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNODAwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTk7CiAJCWluZm8tPnNpemUgPSAweDAwMTAwMDAwOwkvKiA9PiAxIE1pQiAqLwogCQlicmVhazsKIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjE2MFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjE2MFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMTYwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwkvKiA9PiAyIE1pQiAqLwogCQlicmVhazsKIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjE2MEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjE2MEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMTYwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwkvKiA9PiAyIE1pQiAqLwpAQCAtMzMxLDE0ICszMzEsMTQgQEAKIAlmb3IgKGkgPSAwOyBpIDwgaW5mby0+c2VjdG9yX2NvdW50OyBpKyspIHsKIAkJLyogcmVhZCBzZWN0b3IgcHJvdGVjdGlvbiBhdCBzZWN0b3IgYWRkcmVzcywgKEE3IC4uIEEwKSA9IDB4MDIgKi8KIAkJLyogRDAgPSAxIGlmIHByb3RlY3RlZCAqLwotCQlhZGRyMiA9ICh2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKKwkJYWRkcjIgPSAodm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOwogCiAJCS8qIEZvciBBTUQyOTAzM0MgZmxhc2ggd2UgbmVlZCB0byByZXNlbmQgdGhlIGNvbW1hbmQgb2YgKgogCQkgKiByZWFkaW5nIGZsYXNoIHByb3RlY3Rpb24gZm9yIHVwcGVyIDggTWIgb2YgZmxhc2ggICAgICovCiAJCWlmIChpID09IDMyKSB7Ci0JCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7Ci0JCQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7Ci0JCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4OTA5MDkwOTA7CisJCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhBQUFBQUFBQTsKKwkJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDU1NTU1NTU1OworCQkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4OTA5MDkwOTA7CiAJCX0KIAogCQlpZiAoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVkVORE1BU0spID09IEZMQVNIX01BTl9TU1QpCkBAIC0zNDgsNyArMzQ4LDcgQEAKIAl9CiAKIAkvKiBpc3N1ZSBiYW5rIHJlc2V0IHRvIHJldHVybiB0byByZWFkIG1vZGUgKi8KLQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOworCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwogCiAJcmV0dXJuIChpbmZvLT5zaXplKTsKIH0KQEAgLTM1NiwxNCArMzU2LDE0IEBACiBzdGF0aWMgaW50IHdhaXRfZm9yX0RRN18xKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzZWN0KQogewogCXVsb25nIHN0YXJ0LCBub3csIGxhc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9Ci0JICAgIChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPQorCSAgICAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAogCXN0YXJ0ID0gZ2V0X3RpbWVyKDApOwogCWxhc3QgPSBzdGFydDsKLQl3aGlsZSAoKGFkZHJbMF0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KLQkgICAgICAgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJd2hpbGUgKChhZGRyWzBdICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQorCSAgICAgICAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAtMTsKIAkJfQpAQCAtMzc2LDcgKzM3Niw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfMk5EXzE2QklUX0RFVgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFVgogaW50IGZsYXNoX2VyYXNlKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KQogewogCWlmICgoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVFlQRU1BU0spID09IEZMQVNIX0FNMzIwQikgfHwKQEAgLTM5NCw4ICszOTQsOCBAQAogaW50IGZsYXNoX2VyYXNlKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KQogI2VuZGlmCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CiAJaW50IGZsYWcsIHByb3QsIHNlY3QsIGxfc2VjdDsKIAlpbnQgaTsKIApAQCAtNDM1LDI0ICs0MzUsMjQgQEAKIAkvKiBTdGFydCBlcmFzZSBvbiB1bnByb3RlY3RlZCBzZWN0b3JzICovCiAJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdCA8PSBzX2xhc3Q7IHNlY3QrKykgewogCQlpZiAoaW5mby0+cHJvdGVjdFtzZWN0XSA9PSAwKSB7CS8qIG5vdCBwcm90ZWN0ZWQgKi8KLQkJCWFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwkJCWFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAKIAkJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkgewotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1MDAwNTA7CS8qIGJsb2NrIGVyYXNlICovCisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTAwMDUwOwkvKiBibG9jayBlcmFzZSAqLwogCQkJCWZvciAoaSA9IDA7IGkgPCA1MDsgaSsrKQogCQkJCQl1ZGVsYXkoMTAwMCk7CS8qIHdhaXQgMSBtcyAqLwogCQkJfSBlbHNlIHsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwMzAwMDMwOwkvKiBzZWN0b3IgZXJhc2UgKi8KKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDAzMDAwMzA7CS8qIHNlY3RvciBlcmFzZSAqLwogCQkJfQogCQkJbF9zZWN0ID0gc2VjdDsKIAkJCS8qCkBAIC00NzQsOCArNDc0LDggQEAKIAl1ZGVsYXkoMTAwMCk7CiAKIAkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgaW5mby0+c3RhcnRbMF07Ci0JYWRkclswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCisJYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBpbmZvLT5zdGFydFswXTsKKwlhZGRyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAKIAlwcmludGYoIiBkb25lXG4iKTsKIAlyZXR1cm4gMDsKQEAgLTU1Nyw3ICs1NTcsNyBAQAogICogMSAtIHdyaXRlIHRpbWVvdXQKICAqIDIgLSBGbGFzaCBub3QgZXJhc2VkCiAgKi8KLSNpZmRlZiBDRkdfRkxBU0hfMk5EXzE2QklUX0RFVgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFVgogc3RhdGljIGludCB3cml0ZV93b3JkKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpCiB7CiAJaWYgKCgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9UWVBFTUFTSykgPT0gRkxBU0hfQU0zMjBCKSB8fApAQCAtNTc1LDkgKzU3NSw5IEBACiBzdGF0aWMgaW50IHdyaXRlX3dvcmQoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSkKICNlbmRpZgogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAmIGRhdGE7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopICYgZGF0YTsKIAl1bG9uZyBzdGFydDsKIAlpbnQgaTsKIApAQCAtNTg2LDE1ICs1ODYsMTUgQEAKIAkJcmV0dXJuICgyKTsKIAl9CiAKLQlmb3IgKGkgPSAwOyBpIDwgNCAvIHNpemVvZihDRkdfRkxBU0hfV09SRF9TSVpFKTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IDQgLyBzaXplb2YoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpOyBpKyspIHsKIAkJaW50IGZsYWc7CiAKIAkJLyogRGlzYWJsZSBpbnRlcnJ1cHRzIHdoaWNoIG1pZ2h0IGNhdXNlIGEgdGltZW91dCBoZXJlICovCiAJCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKIAotCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQTAwMEEwOworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQTAwMEEwOwogCiAJCWRlc3QyW2ldID0gZGF0YTJbaV07CiAKQEAgLTYwNCwxMCArNjA0LDEwIEBACiAKIAkJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCQlzdGFydCA9IGdldF90aW1lcigwKTsKLQkJd2hpbGUgKChkZXN0MltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQotCQkgICAgICAgKGRhdGEyW2ldICYgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApKSB7CisJCXdoaWxlICgoZGVzdDJbaV0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9CisJCSAgICAgICAoZGF0YTJbaV0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApKSB7CiAKLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KIAkJfQpAQCAtNjE2LDEwICs2MTYsMTAgQEAKIAlyZXR1cm4gKDApOwogfQogCi0jaWZkZWYgQ0ZHX0ZMQVNIXzJORF8xNkJJVF9ERVYKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIXzJORF8xNkJJVF9ERVYKIAotI3VuZGVmICBDRkdfRkxBU0hfV09SRF9TSVpFCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUgdW5zaWduZWQgc2hvcnQKKyN1bmRlZiAgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgdW5zaWduZWQgc2hvcnQKIAogLyoKICAqIFRoZSBmb2xsb3dpbmcgY29kZSBjYW5ub3QgYmUgcnVuIGZyb20gRkxBU0ghCkBAIC02MjgsMzUgKzYyOCwzNSBAQAogewogCXNob3J0IGk7CiAJaW50IG47Ci0JQ0ZHX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKKwlDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKIAl1bG9uZyBiYXNlID0gKHVsb25nKSBhZGRyOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKIAogCURFQlVHRigiRkxBU0ggQUREUjogJTA4eFxuIiwgKHVuc2lnbmVkKWFkZHIpOwogCiAJLyogV3JpdGUgYXV0byBzZWxlY3QgY29tbWFuZDogcmVhZCBNYW51ZmFjdHVyZXIgSUQgKi8KLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDkwMDA5MDsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDkwMDA5MDsKIAl1ZGVsYXkoMTAwMCk7CiAKIAl2YWx1ZSA9IGFkZHIyWzBdOwogCURFQlVHRigiRkxBU0ggTUFOVUZBQ1Q6ICV4XG4iLCB2YWx1ZSk7CiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0FNRDsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgRlVKX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBGVUpfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0ZVSjsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgU1NUX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBTU1RfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX1NTVDsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgU1RNX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBTVE1fTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX1NUTTsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgTVhfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIE1YX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9NWDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKQEAgLTY3MiwyMiArNjcyLDIyIEBACiAKIAlzd2l0Y2ggKHZhbHVlKSB7CiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0zMjBUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNaUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTMyMEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsgIGJyZWFrOwkvKiA9PiA0IE1pQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlTVE1fSURfMjlXMzIwRFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1RNX0lEXzI5VzMyMERUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9TVE1XMzIwRFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDY3OwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsgIGJyZWFrOwkvKiA9PiA0IE1pQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlNWF9JRF9MVjMyMFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpTVhfSURfTFYzMjBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9NWExWMzIwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOwpAQCAtNzc2LDE0ICs3NzYsMTQgQEAKIAlmb3IgKGkgPSAwOyBpIDwgaW5mby0+c2VjdG9yX2NvdW50OyBpKyspIHsKIAkJLyogcmVhZCBzZWN0b3IgcHJvdGVjdGlvbiBhdCBzZWN0b3IgYWRkcmVzcywgKEE3IC4uIEEwKSA9IDB4MDIgKi8KIAkJLyogRDAgPSAxIGlmIHByb3RlY3RlZCAqLwotCQlhZGRyMiA9ICh2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKKwkJYWRkcjIgPSAodm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOwogCiAJCS8qIEZvciBBTUQyOTAzM0MgZmxhc2ggd2UgbmVlZCB0byByZXNlbmQgdGhlIGNvbW1hbmQgb2YgKgogCQkgKiByZWFkaW5nIGZsYXNoIHByb3RlY3Rpb24gZm9yIHVwcGVyIDggTWIgb2YgZmxhc2ggICAgICovCiAJCWlmIChpID09IDMyKSB7Ci0JCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7Ci0JCQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7Ci0JCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4OTA5MDkwOTA7CisJCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhBQUFBQUFBQTsKKwkJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDU1NTU1NTU1OworCQkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4OTA5MDkwOTA7CiAJCX0KIAogCQlpZiAoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVkVORE1BU0spID09IEZMQVNIX01BTl9TU1QpCkBAIC03OTMsNyArNzkzLDcgQEAKIAl9CiAKIAkvKiBpc3N1ZSBiYW5rIHJlc2V0IHRvIHJldHVybiB0byByZWFkIG1vZGUgKi8KLQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOworCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwogCiAJcmV0dXJuIChpbmZvLT5zaXplKTsKIH0KQEAgLTgwMSwxNCArODAxLDE0IEBACiBzdGF0aWMgaW50IHdhaXRfZm9yX0RRN18yKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzZWN0KQogewogCXVsb25nIHN0YXJ0LCBub3csIGxhc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9Ci0JICAgIChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPQorCSAgICAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAogCXN0YXJ0ID0gZ2V0X3RpbWVyKDApOwogCWxhc3QgPSBzdGFydDsKLQl3aGlsZSAoKGFkZHJbMF0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KLQkgICAgICAgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJd2hpbGUgKChhZGRyWzBdICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQorCSAgICAgICAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAtMTsKIAkJfQpAQCAtODIzLDggKzgyMyw4IEBACiAKIHN0YXRpYyBpbnQgZmxhc2hfZXJhc2VfMihmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc19maXJzdCwgaW50IHNfbGFzdCkKIHsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMjsKIAlpbnQgZmxhZywgcHJvdCwgc2VjdCwgbF9zZWN0OwogCWludCBpOwogCkBAIC04NjQsMjQgKzg2NCwyNCBAQAogCS8qIFN0YXJ0IGVyYXNlIG9uIHVucHJvdGVjdGVkIHNlY3RvcnMgKi8KIAlmb3IgKHNlY3QgPSBzX2ZpcnN0OyBzZWN0IDw9IHNfbGFzdDsgc2VjdCsrKSB7CiAJCWlmIChpbmZvLT5wcm90ZWN0W3NlY3RdID09IDApIHsJLyogbm90IHByb3RlY3RlZCAqLwotCQkJYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOworCQkJYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAogCQkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fU1NUKSB7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDUwMDA1MDsJLyogYmxvY2sgZXJhc2UgKi8KKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1MDAwNTA7CS8qIGJsb2NrIGVyYXNlICovCiAJCQkJZm9yIChpID0gMDsgaSA8IDUwOyBpKyspCiAJCQkJCXVkZWxheSgxMDAwKTsJLyogd2FpdCAxIG1zICovCiAJCQl9IGVsc2UgewotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDAzMDAwMzA7CS8qIHNlY3RvciBlcmFzZSAqLworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCQlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDMwMDAzMDsJLyogc2VjdG9yIGVyYXNlICovCiAJCQl9CiAJCQlsX3NlY3QgPSBzZWN0OwogCQkJLyoKQEAgLTkwMyw4ICs5MDMsOCBAQAogCXVkZWxheSgxMDAwKTsKIAogCS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwotCWFkZHIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBpbmZvLT5zdGFydFswXTsKLQlhZGRyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KKwlhZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIGluZm8tPnN0YXJ0WzBdOworCWFkZHJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAogCXByaW50ZigiIGRvbmVcbiIpOwogCXJldHVybiAwOwpAQCAtOTEyLDkgKzkxMiw5IEBACiAKIHN0YXRpYyBpbnQgd3JpdGVfd29yZF8yKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgZGVzdDsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpkYXRhMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopICYgZGF0YTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqZGVzdDIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgZGVzdDsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgJiBkYXRhOwogCXVsb25nIHN0YXJ0OwogCWludCBpOwogCkBAIC05MjMsMTUgKzkyMywxNSBAQAogCQlyZXR1cm4gKDIpOwogCX0KIAotCWZvciAoaSA9IDA7IGkgPCA0IC8gc2l6ZW9mKENGR19GTEFTSF9XT1JEX1NJWkUpOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgNCAvIHNpemVvZihDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykgewogCQlpbnQgZmxhZzsKIAogCQkvKiBEaXNhYmxlIGludGVycnVwdHMgd2hpY2ggbWlnaHQgY2F1c2UgYSB0aW1lb3V0IGhlcmUgKi8KIAkJZmxhZyA9IGRpc2FibGVfaW50ZXJydXB0cygpOwogCi0JCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBMDAwQTA7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBMDAwQTA7CiAKIAkJZGVzdDJbaV0gPSBkYXRhMltpXTsKIApAQCAtOTQxLDEwICs5NDEsMTAgQEAKIAogCQkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJCXN0YXJ0ID0gZ2V0X3RpbWVyKDApOwotCQl3aGlsZSAoKGRlc3QyW2ldICYgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9Ci0JCSAgICAgICAoZGF0YTJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKKwkJd2hpbGUgKChkZXN0MltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KKwkJICAgICAgIChkYXRhMltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKIAotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gKDEpOwogCQkJfQogCQl9CkBAIC05NTIsNCArOTUyLDQgQEAKIAogCXJldHVybiAoMCk7CiB9Ci0jZW5kaWYgLyogQ0ZHX0ZMQVNIXzJORF8xNkJJVF9ERVYgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0ZMQVNIXzJORF8xNkJJVF9ERVYgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvZWJvbnkvY29uZmlnLm1rIGIvYm9hcmQvYW1jYy9lYm9ueS9jb25maWcubWsKaW5kZXggZTU3MjJkZC4uNjBkM2JmNCAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9lYm9ueS9jb25maWcubWsKKysrIGIvYm9hcmQvYW1jYy9lYm9ueS9jb25maWcubWsKQEAgLTQwLDUgKzQwLDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2Vib255L2Vib255LmMgYi9ib2FyZC9hbWNjL2Vib255L2Vib255LmMKaW5kZXggOWJjZGY1OS4uYWQwOWU2MiAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9lYm9ueS9lYm9ueS5jCisrKyBiL2JvYXJkL2FtY2MvZWJvbnkvZWJvbnkuYwpAQCAtMzUsNyArMzUsNyBAQAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZih2b2lkKQogewogCXVpbnQgcmVnOwotCXVuc2lnbmVkIGNoYXIgKmZwZ2FfYmFzZSA9ICh1bnNpZ25lZCBjaGFyICopQ0ZHX0ZQR0FfQkFTRTsKKwl1bnNpZ25lZCBjaGFyICpmcGdhX2Jhc2UgPSAodW5zaWduZWQgY2hhciAqKUNPTkZJR19TWVNfRlBHQV9CQVNFOwogCXVuc2lnbmVkIGNoYXIgc3RhdHVzOwogCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjA0LDcgKzIwNCw3IEBACiAgKgltYXkgbm90IGJlIHN1ZmZpY2llbnQgZm9yIGEgZ2l2ZW4gYm9hcmQuCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpCiB2b2lkIHBjaV90YXJnZXRfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpCiB7CiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKQEAgLTIxOSw3ICsyMTksNyBAQAogCSAqIE1hcCBhbGwgb2YgU0RSQU0gdG8gUENJIGFkZHJlc3MgMHgwMDAwXzAwMDAuIE5vdGUgdGhhdCB0aGUgNDQwIHN0cmFwcGluZwogICAgICAqIG9wdGlvbnMgdG8gbm90IHN1cHBvcnQgc2l6ZXMgc3VjaCBhcyAxMjgvMjU2IE1CLgogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDMycihQQ0lYMF9QSU0wTEFMLCBDRkdfU0RSQU1fQkFTRSk7CisJb3V0MzJyKFBDSVgwX1BJTTBMQUwsIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAJb3V0MzJyKFBDSVgwX1BJTTBMQUgsIDApOwogCW91dDMycihQQ0lYMF9QSU0wU0EsIH4oZ2QtPnJhbV9zaXplIC0gMSkgfCAxKTsKIApAQCAtMjI4LDEyICsyMjgsMTIgQEAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCSAqIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL3ZlbmRvciBpZAogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDE2cihQQ0lYMF9TQlNZU1ZJRCwgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQpOwotCW91dDE2cihQQ0lYMF9TQlNZU0lELCBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCk7CisJb3V0MTZyKFBDSVgwX1NCU1lTVklELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQpOworCW91dDE2cihQQ0lYMF9TQlNZU0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQpOwogCiAJb3V0MTZyKFBDSVgwX0NNRCwgaW4xNnIoUENJWDBfQ01EKSB8IFBDSV9DT01NQU5EX01FTU9SWSk7CiB9Ci0jZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpICovCisjZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKSAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogIGlzX3BjaV9ob3N0CmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2Vib255L2ZsYXNoLmMgYi9ib2FyZC9hbWNjL2Vib255L2ZsYXNoLmMKaW5kZXggZDljNjk3NC4uOGZlM2JhMSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9lYm9ueS9mbGFzaC5jCisrKyBiL2JvYXJkL2FtY2MvZWJvbnkvZmxhc2guYwpAQCAtNTAsNyArNTAsNyBAQAogI2RlZmluZSAgICAgRkxBU0hfT05CRF9OX1ZBTCAgICAgICAgMgogI2RlZmluZSAgICAgRkxBU0hfU1JBTV9TRUxfVkFMICAgICAgMQogCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBmbGFzaF9hZGRyX3RhYmxlWzhdW0NGR19NQVhfRkxBU0hfQkFOS1NdID0geworc3RhdGljIHVuc2lnbmVkIGxvbmcgZmxhc2hfYWRkcl90YWJsZVs4XVtDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU10gPSB7CiAJezB4ZmZjMDAwMDAsIDB4ZmZlMDAwMDAsIDB4ZmY4ODAwMDB9LAkvKiAwOjAwMDogY29uZmlndXJhdG9uIDMgKi8KIAl7MHhmZmMwMDAwMCwgMHhmZmUwMDAwMCwgMHhmZjgwMDAwMH0sCS8qIDE6MDAxOiBjb25maWd1cmF0b24gNCAqLwogCXsweGZmYzAwMDAwLCAweGZmZTAwMDAwLCAweDAwMDAwMDAwfSwJLyogMjowMTA6IGNvbmZpZ3VyYXRvbiA3ICovCkBAIC03NCw4ICs3NCw4IEBACiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHRvdGFsX2IgPSAwOwotCXVuc2lnbmVkIGxvbmcgc2l6ZV9iW0NGR19NQVhfRkxBU0hfQkFOS1NdOwotCXVuc2lnbmVkIGNoYXIgKmZwZ2FfYmFzZSA9ICh1bnNpZ25lZCBjaGFyICopQ0ZHX0ZQR0FfQkFTRTsKKwl1bnNpZ25lZCBsb25nIHNpemVfYltDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CisJdW5zaWduZWQgY2hhciAqZnBnYV9iYXNlID0gKHVuc2lnbmVkIGNoYXIgKilDT05GSUdfU1lTX0ZQR0FfQkFTRTsKIAl1bnNpZ25lZCBjaGFyIHN3aXRjaF9zdGF0dXM7CiAJdW5zaWduZWQgc2hvcnQgaW5kZXggPSAwOwogCWludCBpOwpAQCAtOTgsNyArOTgsNyBAQAogCURFQlVHRigiRkxBU0g6IEluZGV4OiAlZFxuIiwgaW5kZXgpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSAtMTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gMDsKQEAgLTEyMSw4ICsxMjEsOCBAQAogCQl9CiAKIAkJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLQkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDRkdfTU9OSVRPUl9CQVNFLAotCQkJCSAgICBDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOIC0gMSwKKwkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQkgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOIC0gMSwKIAkJCQkgICAgJmZsYXNoX2luZm9bMl0pOwogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfRU5WX0FERFIsCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2Vib255L2luaXQuUyBiL2JvYXJkL2FtY2MvZWJvbnkvaW5pdC5TCmluZGV4IGM4NjA3NmUuLjgxMWE5NmEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvZWJvbnkvaW5pdC5TCisrKyBiL2JvYXJkL2FtY2MvZWJvbnkvaW5pdC5TCkBAIC00OSw5ICs0OSw5IEBACiAJICogcm91dGluZS4KIAkgKi8KIAotCXRsYmVudHJ5KENGR19QRVJJUEhFUkFMX0JBU0UsIFNaXzI1Nk0sIDB4NDAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX0lTUkFNX0JBU0UsIFNaXzRLLCAweDgwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWCkKLQl0bGJlbnRyeShDRkdfSVNSQU1fQkFTRSArIDB4MTAwMCwgU1pfNEssIDB4ODAwMDEwMDAsIDAsIEFDX1J8QUNfV3xBQ19YKQotCXRsYmVudHJ5KENGR19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMiwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UsIFNaXzI1Nk0sIDB4NDAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19JU1JBTV9CQVNFLCBTWl80SywgMHg4MDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1gpCisJdGxiZW50cnkoQ09ORklHX1NZU19JU1JBTV9CQVNFICsgMHgxMDAwLCBTWl80SywgMHg4MDAwMTAwMCwgMCwgQUNfUnxBQ19XfEFDX1gpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMiwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAzLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCXRsYnRhYl9lbmQKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2Mva2F0bWFpL2NvbmZpZy5tayBiL2JvYXJkL2FtY2Mva2F0bWFpL2NvbmZpZy5tawppbmRleCBjNTEyYjUzLi5lZjBjZjk2IDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2thdG1haS9jb25maWcubWsKKysrIGIvYm9hcmQvYW1jYy9rYXRtYWkvY29uZmlnLm1rCkBAIC0zNCw1ICszNCw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9rYXRtYWkvaW5pdC5TIGIvYm9hcmQvYW1jYy9rYXRtYWkvaW5pdC5TCmluZGV4IGUzZjNkYTYuLjFjNzRhODIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2Mva2F0bWFpL2luaXQuUworKysgYi9ib2FyZC9hbWNjL2thdG1haS9pbml0LlMKQEAgLTU5LDIwICs1OSwyMCBAQAogCSAqIHJvdXRpbmUuCiAJICovCiAKLQl0bGJlbnRyeShDRkdfSVNSQU1fQkFTRSwgU1pfMjU2SywgMHgwMDAwMDAwMCwgNCwgQUNfUnxBQ19XfEFDX1h8U0FfSSkKLQl0bGJlbnRyeShDRkdfUEVSSVBIRVJBTF9CQVNFLCBTWl80SywgMHhGMDAwMDAwMCwgNCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX0lTUkFNX0JBU0UsIFNaXzI1NkssIDB4MDAwMDAwMDAsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UsIFNaXzRLLCAweEYwMDAwMDAwLCA0LCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCi0JdGxiZW50cnkoQ0ZHX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAweDEwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUVfTUVNQkFTRSwgU1pfMjU2TSwgMHhCMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFX0JBU0UsIFNaXzE2SywgMHgyMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAweDEwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFX01FTUJBU0UsIFNaXzI1Nk0sIDB4QjAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUVfQkFTRSwgU1pfMTZLLCAweDIwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAKLQl0bGJlbnRyeShDRkdfUENJRTBfQ0ZHQkFTRSwgU1pfMTZNLCAweDQwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUxX0NGR0JBU0UsIFNaXzE2TSwgMHg4MDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMl9DRkdCQVNFLCBTWl8xNk0sIDB4QzAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTBfWENGR0JBU0UsIFNaXzFLLCAweDUwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUxX1hDRkdCQVNFLCBTWl8xSywgMHg5MDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMl9YQ0ZHQkFTRSwgU1pfMUssIDB4RDAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUwX0NGR0JBU0UsIFNaXzE2TSwgMHg0MDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTFfQ0ZHQkFTRSwgU1pfMTZNLCAweDgwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMl9DRkdCQVNFLCBTWl8xNk0sIDB4QzAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUwX1hDRkdCQVNFLCBTWl8xSywgMHg1MDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTFfWENGR0JBU0UsIFNaXzFLLCAweDkwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMl9YQ0ZHQkFTRSwgU1pfMUssIDB4RDAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAl0bGJ0YWJfZW5kCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtOTksMjAgKzk5LDIwIEBACiAJICogcm91dGluZS4KIAkgKi8KIAotCXRsYmVudHJ5KENGR19JU1JBTV9CQVNFLCBTWl8yNTZLLCAweDAwMDAwMDAwLCA0LCBBQ19SfEFDX1d8QUNfWHxTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfSVNSQU1fQkFTRSwgU1pfMjU2SywgMHgwMDAwMDAwMCwgNCwgQUNfUnxBQ19XfEFDX1h8U0FfSSkKIAotCXRsYmVudHJ5KENGR19QRVJJUEhFUkFMX0JBU0UsIFNaXzRLLCAweEYwMDAwMDAwLCA0LCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFLCBTWl80SywgMHhGMDAwMDAwMCwgNCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAotCXRsYmVudHJ5KENGR19BQ0VfQkFTRSwgU1pfMUssIENGR19BQ0VfQkFTRSwgNCxBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfQUNFX0JBU0UsIFNaXzFLLCBDT05GSUdfU1lTX0FDRV9CQVNFLCA0LEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAKLQl0bGJlbnRyeShDRkdfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MTAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRV9NRU1CQVNFLCBTWl8yNTZNLCAweEIwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MTAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUVfTUVNQkFTRSwgU1pfMjU2TSwgMHhCMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCi0JdGxiZW50cnkoQ0ZHX1BDSUUwX0NGR0JBU0UsIFNaXzE2TSwgMHgwMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMV9DRkdCQVNFLCBTWl8xNk0sIDB4MjAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTJfQ0ZHQkFTRSwgU1pfMTZNLCAweDQwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUwX1hDRkdCQVNFLCBTWl8xSywgMHgxMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMV9YQ0ZHQkFTRSwgU1pfMUssIDB4MzAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTJfWENGR0JBU0UsIFNaXzFLLCAweDUwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMF9DRkdCQVNFLCBTWl8xNk0sIDB4MDAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUxX0NGR0JBU0UsIFNaXzE2TSwgMHgyMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTJfQ0ZHQkFTRSwgU1pfMTZNLCAweDQwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMF9YQ0ZHQkFTRSwgU1pfMUssIDB4MTAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUxX1hDRkdCQVNFLCBTWl8xSywgMHgzMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTJfWENGR0JBU0UsIFNaXzFLLCAweDUwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAJdGxidGFiX2VuZApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9rYXRtYWkva2F0bWFpLmMgYi9ib2FyZC9hbWNjL2thdG1haS9rYXRtYWkuYwppbmRleCAxNzJiNTgxLi5iNmMwYzExIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2thdG1haS9rYXRtYWkuYworKysgYi9ib2FyZC9hbWNjL2thdG1haS9rYXRtYWkuYwpAQCAtMjI0LDExICsyMjQsMTEgQEAKIAltZnIgfD0gU0RSMF9NRlJfRklYRDsJCS8qIFdvcmthcm91bmQgZm9yIFBDSS9ETUEgKi8KIAltdHNkcihzZHJfbWZyLCBtZnIpOwogCi0JbXRzZHIoU0RSMF9QRkMwLCBDRkdfUEZDMCk7CisJbXRzZHIoU0RSMF9QRkMwLCBDT05GSUdfU1lTX1BGQzApOwogCi0Jb3V0MzIoR1BJTzBfT1IsIENGR19HUElPX09SKTsKLQlvdXQzMihHUElPMF9PRFIsIENGR19HUElPX09EUik7Ci0Jb3V0MzIoR1BJTzBfVENSLCBDRkdfR1BJT19UQ1IpOworCW91dDMyKEdQSU8wX09SLCBDT05GSUdfU1lTX0dQSU9fT1IpOworCW91dDMyKEdQSU8wX09EUiwgQ09ORklHX1NZU19HUElPX09EUik7CisJb3V0MzIoR1BJTzBfVENSLCBDT05GSUdfU1lTX0dQSU9fVENSKTsKIAogCXJldHVybiAwOwogfQpAQCAtMjk4LDcgKzI5OCw3IEBACiAgKgltYXkgbm90IGJlIHN1ZmZpY2llbnQgZm9yIGEgZ2l2ZW4gYm9hcmQuCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpCiB2b2lkIHBjaV90YXJnZXRfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKiBob3NlICkKIHsKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0zMTMsNyArMzEzLDcgQEAKIAkgKiBNYXAgYWxsIG9mIFNEUkFNIHRvIFBDSSBhZGRyZXNzIDB4MDAwMF8wMDAwLiBOb3RlIHRoYXQgdGhlIDQ0MAogCSAqIHN0cmFwcGluZyBvcHRpb25zIHRvIG5vdCBzdXBwb3J0IHNpemVzIHN1Y2ggYXMgMTI4LzI1NiBNQi4KIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDMyciggUENJWDBfUElNMExBTCwgQ0ZHX1NEUkFNX0JBU0UgKTsKKwlvdXQzMnIoIFBDSVgwX1BJTTBMQUwsIENPTkZJR19TWVNfU0RSQU1fQkFTRSApOwogCW91dDMyciggUENJWDBfUElNMExBSCwgMCApOwogCW91dDMyciggUENJWDBfUElNMFNBLCB+KGdkLT5yYW1fc2l6ZSAtIDEpIHwgMSApOwogCW91dDMyciggUENJWDBfQkFSMCwgMCApOwpAQCAtMzIxLDEyICszMjEsMTIgQEAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAJICogUHJvZ3JhbSB0aGUgYm9hcmQncyBzdWJzeXN0ZW0gaWQvdmVuZG9yIGlkCiAJICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlvdXQxNnIoIFBDSVgwX1NCU1lTVklELCBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCApOwotCW91dDE2ciggUENJWDBfU0JTWVNJRCwgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgKTsKKwlvdXQxNnIoIFBDSVgwX1NCU1lTVklELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgKTsKKwlvdXQxNnIoIFBDSVgwX1NCU1lTSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCApOwogCiAJb3V0MTZyKCBQQ0lYMF9DTUQsIGluMTZyKFBDSVgwX0NNRCkgfCBQQ0lfQ09NTUFORF9NRU1PUlkgKTsKIH0KLSNlbmRpZgkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkgKi8KKyNlbmRpZgkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMzU3LDExICszNTcsMTEgQEAKIAl2YWwgPSBpbjMyKEdQSU8wX0lSKTsKIAlzd2l0Y2ggKHBvcnQpIHsKIAljYXNlIDA6Ci0JCXJldHVybiAhKHZhbCAmIEdQSU9fVkFMKENGR19HUElPX1BDSUVfUFJFU0VOVDApKTsKKwkJcmV0dXJuICEodmFsICYgR1BJT19WQUwoQ09ORklHX1NZU19HUElPX1BDSUVfUFJFU0VOVDApKTsKIAljYXNlIDE6Ci0JCXJldHVybiAhKHZhbCAmIEdQSU9fVkFMKENGR19HUElPX1BDSUVfUFJFU0VOVDEpKTsKKwkJcmV0dXJuICEodmFsICYgR1BJT19WQUwoQ09ORklHX1NZU19HUElPX1BDSUVfUFJFU0VOVDEpKTsKIAljYXNlIDI6Ci0JCXJldHVybiAhKHZhbCAmIEdQSU9fVkFMKENGR19HUElPX1BDSUVfUFJFU0VOVDIpKTsKKwkJcmV0dXJuICEodmFsICYgR1BJT19WQUwoQ09ORklHX1NZU19HUElPX1BDSUVfUFJFU0VOVDIpKTsKIAlkZWZhdWx0OgogCQlyZXR1cm4gMDsKIAl9CkBAIC00MDQsOSArNDA0LDkgQEAKIAogCQkvKiBzZXR1cCBtZW0gcmVzb3VyY2UgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgICAgICAgQ0ZHX1BDSUVfTUVNQkFTRSArIGkgKiBDRkdfUENJRV9NRU1TSVpFLAotCQkJICAgICAgIENGR19QQ0lFX01FTUJBU0UgKyBpICogQ0ZHX1BDSUVfTUVNU0laRSwKLQkJCSAgICAgICBDRkdfUENJRV9NRU1TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRV9NRU1CQVNFICsgaSAqIENPTkZJR19TWVNfUENJRV9NRU1TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRV9NRU1CQVNFICsgaSAqIENPTkZJR19TWVNfUENJRV9NRU1TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRV9NRU1TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMTsKIAkJcGNpX3JlZ2lzdGVyX2hvc2UoaG9zZSk7CmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2tpbGF1ZWEvY21kX3BsbC5jIGIvYm9hcmQvYW1jYy9raWxhdWVhL2NtZF9wbGwuYwppbmRleCAwZDJmMjdmLi4wZjU3MWZlIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2tpbGF1ZWEvY21kX3BsbC5jCisrKyBiL2JvYXJkL2FtY2Mva2lsYXVlYS9jbWRfcGxsLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIAlkbyB7CQkJCQkJCQlcCiAJCWludCBfX2k7CQkJCQkJXAogCQlmb3IgKF9faSA9IDA7IF9faSA8IDI7IF9faSsrKQkJCQlcCi0JCQllZXByb21fd3JpdGUgKENGR19JMkNfRUVQUk9NX0FERFIsCQlcCisJCQllZXByb21fd3JpdGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLAkJXAogCQkJCSAgICAgIEVFUFJPTV9DT05GX09GRlNFVCArIF9faSpCVUZfU1RFUCwgXAogCQkJCSAgICAgIHBsbF9zZWxlY3RbZnJlcV0sCQkJXAogCQkJCSAgICAgIEJVRl9TVEVQICsgX19pKkJVRl9TVEVQKTsJCVwKQEAgLTE1MSw3ICsxNTEsNyBAQAogCXVjaGFyIGJ1ZmZlcltFRVBST01fU0RTVFBfUEFSQU1dOwogCiAJbWVtc2V0KGJ1ZmZlciwgMCwgc2l6ZW9mKGJ1ZmZlcikpOwotCWVlcHJvbV9yZWFkKENGR19JMkNfRUVQUk9NX0FERFIsIG9mZiwKKwllZXByb21fcmVhZChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgb2ZmLAogCQkgICAgYnVmZmVyLCBFRVBST01fU0RTVFBfUEFSQU0pOwogCiAJcHJpbnRmKCJEZWJ1ZzogU0RTVFBbMC0zXSBhdCBvZmZzZXQgXCIweCUwMnhcIiBsaXN0cyBhcyBmb2xsb3dzOiBcbiIsIG9mZik7CkBAIC0xNjgsOSArMTY4LDkgQEAKIAkvKgogCSAqIFdyaXRlIHR3aWNlLCA4IGJ5dGVzIHBlciB3cml0ZQogCSAqLwotCWVlcHJvbV93cml0ZSAoQ0ZHX0kyQ19FRVBST01fQUREUiwgRUVQUk9NX1RFU1RfT0ZGU0VULAorCWVlcHJvbV93cml0ZSAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIEVFUFJPTV9URVNUX09GRlNFVCwKIAkJICAgICAgdGVzdGJ1ZiwgOCk7Ci0JZWVwcm9tX3dyaXRlIChDRkdfSTJDX0VFUFJPTV9BRERSLCBFRVBST01fVEVTVF9PRkZTRVQrOCwKKwllZXByb21fd3JpdGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCBFRVBST01fVEVTVF9PRkZTRVQrOCwKIAkJICAgICAgdGVzdGJ1ZiwgMTYpOwogCXByaW50ZigiZG9uZVxuIik7CiAKQEAgLTIzNiw3ICsyMzYsNyBAQAogfQogCiBVX0JPT1RfQ01EKAotCXBsbGFsdGVyLCBDRkdfTUFYQVJHUywgMSwgICAgICAgIGRvX3BsbF9hbHRlciwKKwlwbGxhbHRlciwgQ09ORklHX1NZU19NQVhBUkdTLCAxLCAgICAgICAgZG9fcGxsX2FsdGVyLAogCSJwbGxhbHRlci0gY2hhbmdlIHBsbCBmcmVxdWVuY2UgXG4iLAogCSJwbGxhbHRlciA8c2VsZWN0aW9uPiAgICAgIC0gY2hhbmdlIHBsbCBmcmVxdWVuY2UgXG5cblwKIAkqKiBOZXcgZnJlcSB0YWtlIGVmZmVjdCBhZnRlciByZXNldC4gKiogXG5cCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2tpbGF1ZWEva2lsYXVlYS5jIGIvYm9hcmQvYW1jYy9raWxhdWVhL2tpbGF1ZWEuYwppbmRleCBmNDA3ZTE5Li43ZTg0YTYxIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2tpbGF1ZWEva2lsYXVlYS5jCisrKyBiL2JvYXJkL2FtY2Mva2lsYXVlYS9raWxhdWVhLmMKQEAgLTM2LDcgKzM2LDcgQEAKIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLWV4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2V4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qCiAgKiBCb2FyZCBlYXJseSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbgpAQCAtMTk3LDcgKzE5Nyw3IEBACiAJCVNEUjBfQ1VTVDBfTkRGQ19FTkFCTEUgfAogCQlTRFIwX0NVU1QwX05ERkNfQldfOF9CSVQgfAogCQlTRFIwX0NVU1QwX05SQl9CVVNZIHwKLQkJKDB4ODAwMDAwMDAgPj4gKDI4ICsgQ0ZHX05BTkRfQ1MpKTsKKwkJKDB4ODAwMDAwMDAgPj4gKDI4ICsgQ09ORklHX1NZU19OQU5EX0NTKSk7CiAJbXRzZHIoU0RSMF9DVVNUMCwgdmFsKTsKIAogCS8qCkBAIC0yMTAsOSArMjEwLDkgQEAKIAkvKgogCSAqIENvbmZpZ3VyZSBGUEdBIHJlZ2lzdGVyIHdpdGggUENJZSByZXNldAogCSAqLwotCW91dF9iZTMyKCh2b2lkICopQ0ZHX0ZQR0FfQkFTRSwgMHhmZjU3MGNjNCk7CS8qIGFzc2VydCBQQ0llIHJlc2V0ICovCisJb3V0X2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX0ZQR0FfQkFTRSwgMHhmZjU3MGNjNCk7CS8qIGFzc2VydCBQQ0llIHJlc2V0ICovCiAJbWRlbGF5KDUwKTsKLQlvdXRfYmUzMigodm9pZCAqKUNGR19GUEdBX0JBU0UsIDB4ZmY1NzBjYzcpOwkvKiBkZWFzc2VydCBQQ0llIHJlc2V0ICovCisJb3V0X2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX0ZQR0FfQkFTRSwgMHhmZjU3MGNjNyk7CS8qIGRlYXNzZXJ0IFBDSWUgcmVzZXQgKi8KIAogCXJldHVybiAwOwogfQpAQCAtMjIyLDcgKzIyMiw3IEBACiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAtQ0ZHX01PTklUT1JfTEVOLAorCQkgICAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJICAgICAgMHhmZmZmZmZmZiwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCkBAIC0zMzAsOSArMzMwLDkgQEAKIAogCQkvKiBzZXR1cCBtZW0gcmVzb3VyY2UgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgICAgICAgQ0ZHX1BDSUVfTUVNQkFTRSArIGkgKiBDRkdfUENJRV9NRU1TSVpFLAotCQkJICAgICAgIENGR19QQ0lFX01FTUJBU0UgKyBpICogQ0ZHX1BDSUVfTUVNU0laRSwKLQkJCSAgICAgICBDRkdfUENJRV9NRU1TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRV9NRU1CQVNFICsgaSAqIENPTkZJR19TWVNfUENJRV9NRU1TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRV9NRU1CQVNFICsgaSAqIENPTkZJR19TWVNfUENJRV9NRU1TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRV9NRU1TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMTsKIAkJcGNpX3JlZ2lzdGVyX2hvc2UoaG9zZSk7CmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2x1YW4vY29uZmlnLm1rIGIvYm9hcmQvYW1jYy9sdWFuL2NvbmZpZy5tawppbmRleCBmNTJjMjA2Li5jZDAyYWFiIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2x1YW4vY29uZmlnLm1rCisrKyBiL2JvYXJkL2FtY2MvbHVhbi9jb25maWcubWsKQEAgLTQwLDUgKzQwLDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2x1YW4vZmxhc2guYyBiL2JvYXJkL2FtY2MvbHVhbi9mbGFzaC5jCmluZGV4IGQyOGJmOWQuLjJkM2IxNTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvbHVhbi9mbGFzaC5jCisrKyBiL2JvYXJkL2FtY2MvbHVhbi9mbGFzaC5jCkBAIC00Miw3ICs0Miw3IEBACiAjZGVmaW5lIERFQlVHRih4Li4uKQogI2VuZGlmCQkJCS8qIERFQlVHICovCiAKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGZsYXNoX2FkZHJfdGFibGVbMV1bQ0ZHX01BWF9GTEFTSF9CQU5LU10gPSB7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBmbGFzaF9hZGRyX3RhYmxlWzFdW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXSA9IHsKIAl7MHhmZjkwMDAwMCwgMHhmZjk4MDAwMCwgMHhmZmMwMDAwMH0sCS8qIDA6MDAwOiBjb25maWd1cmF0b24gMyAqLwogfTsKIApAQCAtNTksNyArNTksNyBAQAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0KHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyB0b3RhbF9iID0gMDsKLQl1bnNpZ25lZCBsb25nIHNpemVfYltDRkdfTUFYX0ZMQVNIX0JBTktTXTsKKwl1bnNpZ25lZCBsb25nIHNpemVfYltDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAJdW5zaWduZWQgc2hvcnQgaW5kZXggPSAwOwogCWludCBpOwogCkBAIC02OSw3ICs2OSw3IEBACiAJREVCVUdGKCJGTEFTSDogSW5kZXg6ICVkXG4iLCBpbmRleCk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IC0xOwogCQlmbGFzaF9pbmZvW2ldLnNpemUgPSAwOwpAQCAtOTIsOCArOTIsOCBAQAogCQl9CiAKIAkJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLQkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDRkdfTU9OSVRPUl9CQVNFLAotCQkJCSAgICBDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOIC0gMSwKKwkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQkgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOIC0gMSwKIAkJCQkgICAgJmZsYXNoX2luZm9bMl0pOwogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfRU5WX0FERFIsCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2x1YW4vaW5pdC5TIGIvYm9hcmQvYW1jYy9sdWFuL2luaXQuUwppbmRleCBkNWVlMTE3Li5mYjU0ZGVhIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2x1YW4vaW5pdC5TCisrKyBiL2JvYXJkL2FtY2MvbHVhbi9pbml0LlMKQEAgLTU0LDcgKzU0LDcgQEAKIAl0bGJlbnRyeSgweGZmZDAwMDAwLCBTWl8xTSwgMHhmZmQwMDAwMCwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQogCXRsYmVudHJ5KDB4ZmZlMDAwMDAsIFNaXzFNLCAweGZmZTAwMDAwLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCiAJdGxiZW50cnkoMHhmZjkwMDAwMCwgU1pfMU0sIDB4ZmY5MDAwMDAsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfRVBMRF9CQVNFLCBTWl8yNTZLLCAweGZmMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfRVBMRF9CQVNFLCBTWl8yNTZLLCAweGZmMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCiAJLyoKIAkgKiBUTEIgZW50cmllcyBmb3IgU0RSQU0gYXJlIG5vdCBuZWVkZWQgb24gdGhpcyBwbGF0Zm9ybS4KQEAgLTYzLDEyICs2MywxMiBAQAogCSAqLwogCiAJLyogaW50ZXJuYWwgcmFtIChsMiBjYWNoZSkgKi8KLQl0bGJlbnRyeShDRkdfSVNSQU1fQkFTRSwgU1pfMjU2SywgMHg4MDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX0lTUkFNX0JBU0UsIFNaXzI1NkssIDB4ODAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0kpCiAKIAkvKiBwZXJpcGhlcmFscyBhdCBmMDAwMDAwMCAqLwotCXRsYmVudHJ5KENGR19QRVJJUEhFUkFMX0JBU0UsIFNaXzRLLCBDRkdfUEVSSVBIRVJBTF9CQVNFLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFLCBTWl80SywgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAKIAkvKiBQQ0kgKi8KLQl0bGJlbnRyeShDRkdfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDksIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAweDEwMDAwMDAwLCA5LCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDksIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgxMDAwMDAwMCwgOSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAl0bGJ0YWJfZW5kCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2x1YW4vbHVhbi5jIGIvYm9hcmQvYW1jYy9sdWFuL2x1YW4uYwppbmRleCBiMTRiNmUxLi5iMjhlYmY5IDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2x1YW4vbHVhbi5jCisrKyBiL2JvYXJkL2FtY2MvbHVhbi9sdWFuLmMKQEAgLTMwLDcgKzMwLDcgQEAKIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLWV4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2V4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTgwLDcgKzgwLDcgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBpbnQgbWlzY19pbml0X3Iodm9pZCkKIHsKLQl2b2xhdGlsZSBlcGxkX3QgKnggPSAoZXBsZF90ICopIENGR19FUExEX0JBU0U7CisJdm9sYXRpbGUgZXBsZF90ICp4ID0gKGVwbGRfdCAqKSBDT05GSUdfU1lTX0VQTERfQkFTRTsKIAogCS8qIHNldCBtb2RlcyBvZiBvcGVyYXRpb24gKi8KIAl4LT5ldGh1YXJ0IHw9IEVQTEQyX0VUSF9NT0RFXzEwIHwgRVBMRDJfRVRIX01PREVfMTAwIHwKQEAgLTE2Niw3ICsxNjYsNyBAQAogICoJbWF5IG5vdCBiZSBzdWZmaWNpZW50IGZvciBhIGdpdmVuIGJvYXJkLgogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogdm9pZCBwY2lfdGFyZ2V0X2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0xODEsNyArMTgxLDcgQEAKIAkgKiBNYXAgYWxsIG9mIFNEUkFNIHRvIFBDSSBhZGRyZXNzIDB4MDAwMF8wMDAwLiBOb3RlIHRoYXQgdGhlIDQ0MCBzdHJhcHBpbmcKIAkgKiBvcHRpb25zIHRvIG5vdCBzdXBwb3J0IHNpemVzIHN1Y2ggYXMgMTI4LzI1NiBNQi4KIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlvdXQzMnIoIFBDSVgwX1BJTTBMQUwsIENGR19TRFJBTV9CQVNFICk7CisJb3V0MzJyKCBQQ0lYMF9QSU0wTEFMLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKTsKIAlvdXQzMnIoIFBDSVgwX1BJTTBMQUgsIDAgKTsKIAlvdXQzMnIoIFBDSVgwX1BJTTBTQSwgfihnZC0+cmFtX3NpemUgLSAxKSB8IDEgKTsKIApAQCAtMTkwLDEyICsxOTAsMTIgQEAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCSAqIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL3ZlbmRvciBpZAogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDE2ciggUENJWDBfU0JTWVNWSUQsIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEICk7Ci0Jb3V0MTZyKCBQQ0lYMF9TQlNZU0lELCBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCApOworCW91dDE2ciggUENJWDBfU0JTWVNWSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCApOworCW91dDE2ciggUENJWDBfU0JTWVNJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEICk7CiAKIAlvdXQxNnIoIFBDSVgwX0NNRCwgaW4xNnIoUENJWDBfQ01EKSB8IFBDSV9DT01NQU5EX01FTU9SWSApOwogfQotI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkgKi8KIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9tYWthbHUvY21kX3BsbC5jIGIvYm9hcmQvYW1jYy9tYWthbHUvY21kX3BsbC5jCmluZGV4IDBkMmYyN2YuLjBmNTcxZmUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvbWFrYWx1L2NtZF9wbGwuYworKysgYi9ib2FyZC9hbWNjL21ha2FsdS9jbWRfcGxsLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIAlkbyB7CQkJCQkJCQlcCiAJCWludCBfX2k7CQkJCQkJXAogCQlmb3IgKF9faSA9IDA7IF9faSA8IDI7IF9faSsrKQkJCQlcCi0JCQllZXByb21fd3JpdGUgKENGR19JMkNfRUVQUk9NX0FERFIsCQlcCisJCQllZXByb21fd3JpdGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLAkJXAogCQkJCSAgICAgIEVFUFJPTV9DT05GX09GRlNFVCArIF9faSpCVUZfU1RFUCwgXAogCQkJCSAgICAgIHBsbF9zZWxlY3RbZnJlcV0sCQkJXAogCQkJCSAgICAgIEJVRl9TVEVQICsgX19pKkJVRl9TVEVQKTsJCVwKQEAgLTE1MSw3ICsxNTEsNyBAQAogCXVjaGFyIGJ1ZmZlcltFRVBST01fU0RTVFBfUEFSQU1dOwogCiAJbWVtc2V0KGJ1ZmZlciwgMCwgc2l6ZW9mKGJ1ZmZlcikpOwotCWVlcHJvbV9yZWFkKENGR19JMkNfRUVQUk9NX0FERFIsIG9mZiwKKwllZXByb21fcmVhZChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgb2ZmLAogCQkgICAgYnVmZmVyLCBFRVBST01fU0RTVFBfUEFSQU0pOwogCiAJcHJpbnRmKCJEZWJ1ZzogU0RTVFBbMC0zXSBhdCBvZmZzZXQgXCIweCUwMnhcIiBsaXN0cyBhcyBmb2xsb3dzOiBcbiIsIG9mZik7CkBAIC0xNjgsOSArMTY4LDkgQEAKIAkvKgogCSAqIFdyaXRlIHR3aWNlLCA4IGJ5dGVzIHBlciB3cml0ZQogCSAqLwotCWVlcHJvbV93cml0ZSAoQ0ZHX0kyQ19FRVBST01fQUREUiwgRUVQUk9NX1RFU1RfT0ZGU0VULAorCWVlcHJvbV93cml0ZSAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIEVFUFJPTV9URVNUX09GRlNFVCwKIAkJICAgICAgdGVzdGJ1ZiwgOCk7Ci0JZWVwcm9tX3dyaXRlIChDRkdfSTJDX0VFUFJPTV9BRERSLCBFRVBST01fVEVTVF9PRkZTRVQrOCwKKwllZXByb21fd3JpdGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCBFRVBST01fVEVTVF9PRkZTRVQrOCwKIAkJICAgICAgdGVzdGJ1ZiwgMTYpOwogCXByaW50ZigiZG9uZVxuIik7CiAKQEAgLTIzNiw3ICsyMzYsNyBAQAogfQogCiBVX0JPT1RfQ01EKAotCXBsbGFsdGVyLCBDRkdfTUFYQVJHUywgMSwgICAgICAgIGRvX3BsbF9hbHRlciwKKwlwbGxhbHRlciwgQ09ORklHX1NZU19NQVhBUkdTLCAxLCAgICAgICAgZG9fcGxsX2FsdGVyLAogCSJwbGxhbHRlci0gY2hhbmdlIHBsbCBmcmVxdWVuY2UgXG4iLAogCSJwbGxhbHRlciA8c2VsZWN0aW9uPiAgICAgIC0gY2hhbmdlIHBsbCBmcmVxdWVuY2UgXG5cblwKIAkqKiBOZXcgZnJlcSB0YWtlIGVmZmVjdCBhZnRlciByZXNldC4gKiogXG5cCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL21ha2FsdS9tYWthbHUuYyBiL2JvYXJkL2FtY2MvbWFrYWx1L21ha2FsdS5jCmluZGV4IGZjNzk5MDcuLjlmYzBlYzYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvbWFrYWx1L21ha2FsdS5jCisrKyBiL2JvYXJkL2FtY2MvbWFrYWx1L21ha2FsdS5jCkBAIC0zNyw3ICszNyw3IEBACiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi1leHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitleHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKgogICogQm9hcmQgZWFybHkgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24KQEAgLTE5NCw5ICsxOTQsOSBAQAogCW10c2RyKFNEUjBfU1JTVCwgMCk7CiAKIAkvKiBSZXNldCBQQ0llIHNsb3RzICovCi0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fUENJRV9SU1QsIDApOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19QQ0lFX1JTVCwgMCk7CiAJdWRlbGF5KDEwMCk7Ci0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fUENJRV9SU1QsIDEpOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19QQ0lFX1JTVCwgMSk7CiAKIAkvKgogCSAqIENvbmZpZ3VyZSBQRkMgKFBpbiBGdW5jdGlvbiBDb250cm9sKSByZWdpc3RlcnMKQEAgLTIxMyw3ICsyMTMsNyBAQAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJICAgICAgLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCSAgICAgIDB4ZmZmZmZmZmYsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgpAQCAtMjg2LDkgKzI4Niw5IEBACiAKIAkJLyogc2V0dXAgbWVtIHJlc291cmNlICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJICAgICAgIENGR19QQ0lFX01FTUJBU0UgKyBpICogQ0ZHX1BDSUVfTUVNU0laRSwKLQkJCSAgICAgICBDRkdfUENJRV9NRU1CQVNFICsgaSAqIENGR19QQ0lFX01FTVNJWkUsCi0JCQkgICAgICAgQ0ZHX1BDSUVfTUVNU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUVfTUVNQkFTRSArIGkgKiBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUVfTUVNQkFTRSArIGkgKiBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDE7CiAJCXBjaV9yZWdpc3Rlcl9ob3NlKGhvc2UpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9vY290ZWEvY29uZmlnLm1rIGIvYm9hcmQvYW1jYy9vY290ZWEvY29uZmlnLm1rCmluZGV4IDllMTgzMzUuLmI2MmU3NzYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2Mvb2NvdGVhL2NvbmZpZy5taworKysgYi9ib2FyZC9hbWNjL29jb3RlYS9jb25maWcubWsKQEAgLTQwLDUgKzQwLDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL29jb3RlYS9mbGFzaC5jIGIvYm9hcmQvYW1jYy9vY290ZWEvZmxhc2guYwppbmRleCA0NmM2OTQ2Li5hODNmOTNhIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL29jb3RlYS9mbGFzaC5jCisrKyBiL2JvYXJkL2FtY2Mvb2NvdGVhL2ZsYXNoLmMKQEAgLTUzLDkgKzUzLDkgQEAKICNkZWZpbmUgICAgIEZMQVNIX09OQkRfTl9WQUwgICAgICAgIDIKICNkZWZpbmUgICAgIEZMQVNIX1NSQU1fU0VMX1ZBTCAgICAgIDEKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAgICAgKi8KIAotc3RhdGljIHVuc2lnbmVkIGxvbmcgZmxhc2hfYWRkcl90YWJsZVs4XVtDRkdfTUFYX0ZMQVNIX0JBTktTXSA9IHsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGZsYXNoX2FkZHJfdGFibGVbOF1bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdID0gewogCXsweEZGODAwMDAwLCAweEZGODgwMDAwLCAweEZGQzAwMDAwfSwJLyogMDowMDA6IGNvbmZpZ3VyYXRvbiA0ICovCiAJezB4RkY5MDAwMDAsIDB4RkY5ODAwMDAsIDB4RkZDMDAwMDB9LAkvKiAxOjAwMTogY29uZmlndXJhdG9uIDMgKi8KIAl7MHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMH0sCS8qIDI6MDEwOiBjb25maWd1cmF0b24gOCAqLwpAQCAtODMsOCArODMsOCBAQAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0KHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyB0b3RhbF9iID0gMDsKLQl1bnNpZ25lZCBsb25nIHNpemVfYltDRkdfTUFYX0ZMQVNIX0JBTktTXTsKLQl1bnNpZ25lZCBjaGFyICpmcGdhX2Jhc2UgPSAodW5zaWduZWQgY2hhciAqKUNGR19GUEdBX0JBU0U7CisJdW5zaWduZWQgbG9uZyBzaXplX2JbQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOworCXVuc2lnbmVkIGNoYXIgKmZwZ2FfYmFzZSA9ICh1bnNpZ25lZCBjaGFyICopQ09ORklHX1NZU19GUEdBX0JBU0U7CiAJdW5zaWduZWQgY2hhciBzd2l0Y2hfc3RhdHVzOwogCXVuc2lnbmVkIHNob3J0IGluZGV4ID0gMDsKIAlpbnQgaTsKQEAgLTEwNyw3ICsxMDcsNyBAQAogCURFQlVHRigiRkxBU0g6IEluZGV4OiAlZFxuIiwgaW5kZXgpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSAtMTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gMDsKQEAgLTEzMSw4ICsxMzEsOCBAQAogCQl9CiAKIAkJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLQkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDRkdfTU9OSVRPUl9CQVNFLAotCQkJCSAgICBDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOIC0gMSwKKwkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQkgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOIC0gMSwKIAkJCQkgICAgJmZsYXNoX2luZm9baV0pOwogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfRU5WX0FERFIsCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL29jb3RlYS9pbml0LlMgYi9ib2FyZC9hbWNjL29jb3RlYS9pbml0LlMKaW5kZXggZDIxMWM3MS4uOGJjZmJiMSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9vY290ZWEvaW5pdC5TCisrKyBiL2JvYXJkL2FtY2Mvb2NvdGVhL2luaXQuUwpAQCAtNDksOSArNDksOSBAQAogCSAqIHJvdXRpbmUuCiAJICovCiAKLQl0bGJlbnRyeShDRkdfUEVSSVBIRVJBTF9CQVNFLCBTWl8yNTZNLCAweDQwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19JU1JBTV9CQVNFLCBTWl80SywgMHg4MDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1gpCi0JdGxiZW50cnkoQ0ZHX0lTUkFNX0JBU0UgKyAweDEwMDAsIFNaXzRLLCAweDgwMDAxMDAwLCAwLCBBQ19SfEFDX1d8QUNfWCkKLQl0bGJlbnRyeShDRkdfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDIsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAzLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFLCBTWl8yNTZNLCAweDQwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfSVNSQU1fQkFTRSwgU1pfNEssIDB4ODAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YKQorCXRsYmVudHJ5KENPTkZJR19TWVNfSVNSQU1fQkFTRSArIDB4MTAwMCwgU1pfNEssIDB4ODAwMDEwMDAsIDAsIEFDX1J8QUNfV3xBQ19YKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDIsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAl0bGJ0YWJfZW5kCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL29jb3RlYS9vY290ZWEuYyBiL2JvYXJkL2FtY2Mvb2NvdGVhL29jb3RlYS5jCmluZGV4IDRkMWQwOTMuLmZlNDU0MDggMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2Mvb2NvdGVhL29jb3RlYS5jCisrKyBiL2JvYXJkL2FtY2Mvb2NvdGVhL29jb3RlYS5jCkBAIC00Miw3ICs0Miw3IEBACiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mICh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgbWZyOwotCXVuc2lnbmVkIGNoYXIgKmZwZ2FfYmFzZSA9ICh1bnNpZ25lZCBjaGFyICopIENGR19GUEdBX0JBU0U7CisJdW5zaWduZWQgY2hhciAqZnBnYV9iYXNlID0gKHVuc2lnbmVkIGNoYXIgKikgQ09ORklHX1NZU19GUEdBX0JBU0U7CiAJdW5zaWduZWQgY2hhciBzd2l0Y2hfc3RhdHVzOwogCXVuc2lnbmVkIGxvbmcgY3MwX2Jhc2U7CiAJdW5zaWduZWQgbG9uZyBjczBfc2l6ZTsKQEAgLTMxNSw3ICszMTUsNyBAQAogICoJbWF5IG5vdCBiZSBzdWZmaWNpZW50IGZvciBhIGdpdmVuIGJvYXJkLgogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogdm9pZCBwY2lfdGFyZ2V0X2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICogaG9zZSApCiB7CiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKQEAgLTMzMCw3ICszMzAsNyBAQAogCSAqIE1hcCBhbGwgb2YgU0RSQU0gdG8gUENJIGFkZHJlc3MgMHgwMDAwXzAwMDAuIE5vdGUgdGhhdCB0aGUgNDQwIHN0cmFwcGluZwogCSAqIG9wdGlvbnMgdG8gbm90IHN1cHBvcnQgc2l6ZXMgc3VjaCBhcyAxMjgvMjU2IE1CLgogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDMyciggUENJWDBfUElNMExBTCwgQ0ZHX1NEUkFNX0JBU0UgKTsKKwlvdXQzMnIoIFBDSVgwX1BJTTBMQUwsIENPTkZJR19TWVNfU0RSQU1fQkFTRSApOwogCW91dDMyciggUENJWDBfUElNMExBSCwgMCApOwogCW91dDMyciggUENJWDBfUElNMFNBLCB+KGdkLT5yYW1fc2l6ZSAtIDEpIHwgMSApOwogCkBAIC0zMzksMTIgKzMzOSwxMiBAQAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAJICogUHJvZ3JhbSB0aGUgYm9hcmQncyBzdWJzeXN0ZW0gaWQvdmVuZG9yIGlkCiAJICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0Jb3V0MTZyKCBQQ0lYMF9TQlNZU1ZJRCwgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgKTsKLQlvdXQxNnIoIFBDSVgwX1NCU1lTSUQsIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEICk7CisJb3V0MTZyKCBQQ0lYMF9TQlNZU1ZJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEICk7CisJb3V0MTZyKCBQQ0lYMF9TQlNZU0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgKTsKIAogCW91dDE2ciggUENJWDBfQ01ELCBpbjE2cihQQ0lYMF9DTUQpIHwgUENJX0NPTU1BTkRfTUVNT1JZICk7CiB9Ci0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKSAqLwogCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL29jb3RlYS9vY290ZWEuaCBiL2JvYXJkL2FtY2Mvb2NvdGVhL29jb3RlYS5oCmluZGV4IDk1Y2UxZmQuLjQwMDg1MmEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2Mvb2NvdGVhL29jb3RlYS5oCisrKyBiL2JvYXJkL2FtY2Mvb2NvdGVhL29jb3RlYS5oCkBAIC0yMiw3ICsyMiw3IEBACiAgKi8KIAogLyogQm9hcmQgc3BlY2lmaWMgRlBHQSBzdHVmZiAuLi4gKi8KLSNkZWZpbmUgRlBHQV9SRUcwICAgICAgICAgICAgICAgICAgICAgICAoQ0ZHX0ZQR0FfQkFTRSArIDB4MDApCisjZGVmaW5lIEZQR0FfUkVHMCAgICAgICAgICAgICAgICAgICAgICAgKENPTkZJR19TWVNfRlBHQV9CQVNFICsgMHgwMCkKICNkZWZpbmUgICBGUEdBX1JFRzBfU1NDR19NQVNLICAgICAgICAgICAgIDB4ODAKICNkZWZpbmUgICBGUEdBX1JFRzBfU1NDR19ESVNBQkxFICAgICAgICAgIDB4MDAKICNkZWZpbmUgICBGUEdBX1JFRzBfU1NDR19FTkFCTEUgICAgICAgICAgIDB4ODAKQEAgLTQ4LDcgKzQ4LDcgQEAKICNkZWZpbmUgICBGUEdBX1JFRzBfT05CT0FSRF9GTEFTSF9FTkFCTEUgIDB4MDAKICNkZWZpbmUgICBGUEdBX1JFRzBfT05CT0FSRF9GTEFTSF9ESVNBQkxFIDB4MDIKICNkZWZpbmUgICBGUEdBX1JFRzBfRkxBU0ggICAgICAgICAgICAgICAgIDB4MDEKLSNkZWZpbmUgRlBHQV9SRUcxICAgICAgICAgICAgICAgICAgICAgICAoQ0ZHX0ZQR0FfQkFTRSArIDB4MDEpCisjZGVmaW5lIEZQR0FfUkVHMSAgICAgICAgICAgICAgICAgICAgICAgKENPTkZJR19TWVNfRlBHQV9CQVNFICsgMHgwMSkKICNkZWZpbmUgICBGUEdBX1JFRzFfOTc3Ml9GU0VMRkJYX01BU0sgICAgIDB4ODAKICNkZWZpbmUgICBGUEdBX1JFRzFfOTc3Ml9GU0VMRkJYXzYgICAgICAgIDB4MDAKICNkZWZpbmUgICBGUEdBX1JFRzFfOTc3Ml9GU0VMRkJYXzEwICAgICAgIDB4ODAKQEAgLTcxLDcgKzcxLDcgQEAKICNkZWZpbmUgICBGUEdBX1JFRzFfU09VUkNFX1NTRElWMSAgICAgICAgIDB4MDUKICNkZWZpbmUgICBGUEdBX1JFRzFfU09VUkNFX1NTRElWMiAgICAgICAgIDB4MDYKICNkZWZpbmUgICBGUEdBX1JFRzFfU09VUkNFX1NTRElWNCAgICAgICAgIDB4MDcKLSNkZWZpbmUgRlBHQV9SRUcyICAgICAgICAgICAgICAgICAgICAgICAoQ0ZHX0ZQR0FfQkFTRSArIDB4MDIpCisjZGVmaW5lIEZQR0FfUkVHMiAgICAgICAgICAgICAgICAgICAgICAgKENPTkZJR19TWVNfRlBHQV9CQVNFICsgMHgwMikKICNkZWZpbmUgICBGUEdBX1JFRzJfVEMwICAgICAgICAgICAgICAgICAgIDB4ODAKICNkZWZpbmUgICBGUEdBX1JFRzJfVEMxICAgICAgICAgICAgICAgICAgIDB4NDAKICNkZWZpbmUgICBGUEdBX1JFRzJfVEMyICAgICAgICAgICAgICAgICAgIDB4MjAKQEAgLTgyLDcgKzgyLDcgQEAKICNkZWZpbmUgICBGUEdBX1JFRzJfRVhUX0lOVEZBQ0VfRElTQUJMRSAgIDB4MDQKICNkZWZpbmUgICBGUEdBX1JFRzJfU01JSV9SRVNFVF9ESVNBQkxFICAgIDB4MDIgICAvKlVzZSBvbiBPY290ZWEgcGFzcyAzIGJvYXJkcyovCiAjZGVmaW5lICAgRlBHQV9SRUcyX0RFRkFVTFRfVUFSVDFfTiAgICAgICAweDAxCi0jZGVmaW5lIEZQR0FfUkVHMyAgICAgICAgICAgICAgICAgICAgICAgKENGR19GUEdBX0JBU0UgKyAweDAzKQorI2RlZmluZSBGUEdBX1JFRzMgICAgICAgICAgICAgICAgICAgICAgIChDT05GSUdfU1lTX0ZQR0FfQkFTRSArIDB4MDMpCiAjZGVmaW5lICAgRlBHQV9SRUczX0dJR0FCSVRfUkVTRVRfRElTQUJMRSAweDgwICAgLypVc2Ugb24gT2NvdGVhIHBhc3MgMSBib2FyZHMqLwogI2RlZmluZSAgIEZQR0FfUkVHM19FTkVUX01BU0sxICAgICAgICAgICAgMHg3MCAgIC8qVXNlIG9uIE9jb3RlYSBwYXNzIDEgYm9hcmRzKi8KICNkZWZpbmUgICBGUEdBX1JFRzNfRU5FVF9NQVNLMiAgICAgICAgICAgIDB4RjAgICAvKlVzZSBvbiBPY290ZWEgcGFzcyAyIGJvYXJkcyovCkBAIC0xMDgsNyArMTA4LDcgQEAKICNkZWZpbmUgICBGUEdBX1JFRzNfU1RBVF9MRUQ0X0RJU0FCICAgICAgIDB4MDAKICNkZWZpbmUgICBGUEdBX1JFRzNfU1RBVF9MRUQyX0RJU0FCICAgICAgIDB4MDAKICNkZWZpbmUgICBGUEdBX1JFRzNfU1RBVF9MRUQxX0RJU0FCICAgICAgIDB4MDAKLSNkZWZpbmUgRlBHQV9SRUc0ICAgICAgICAgICAgICAgICAgICAgICAoQ0ZHX0ZQR0FfQkFTRSArIDB4MDQpCisjZGVmaW5lIEZQR0FfUkVHNCAgICAgICAgICAgICAgICAgICAgICAgKENPTkZJR19TWVNfRlBHQV9CQVNFICsgMHgwNCkKICNkZWZpbmUgICBGUEdBX1JFRzRfR1BIWV9NT0RFMTAgICAgICAgICAgIDB4ODAKICNkZWZpbmUgICBGUEdBX1JFRzRfR1BIWV9NT0RFMTAwICAgICAgICAgIDB4NDAKICNkZWZpbmUgICBGUEdBX1JFRzRfR1BIWV9NT0RFMTAwMCAgICAgICAgIDB4MjAKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvcmVkd29vZC9jb25maWcubWsgYi9ib2FyZC9hbWNjL3JlZHdvb2QvY29uZmlnLm1rCmluZGV4IGYzMzMzNmQuLjM4MWYyYjIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvcmVkd29vZC9jb25maWcubWsKKysrIGIvYm9hcmQvYW1jYy9yZWR3b29kL2NvbmZpZy5tawpAQCAtMzgsNSArMzgsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvcmVkd29vZC9pbml0LlMgYi9ib2FyZC9hbWNjL3JlZHdvb2QvaW5pdC5TCmluZGV4IGZjZmZhZGEuLjM2M2Q3OTMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvcmVkd29vZC9pbml0LlMKKysrIGIvYm9hcmQvYW1jYy9yZWR3b29kL2luaXQuUwpAQCAtNTQsMjQgKzU0LDI0IEBACiAJICovCiAKIAkvKiBBbHRob3VnaCA1MTIgS0IsIG1hcCAyNTZrIGF0IGEgdGltZSAqLwotCXRsYmVudHJ5KENGR19JU1JBTV9CQVNFLCBTWl8yNTZLLCAweDAwMDAwMDAwLCA0LCBBQ19SfEFDX1d8QUNfWHxTQV9JKQotCXRsYmVudHJ5KENGR19JU1JBTV9CQVNFICsgMHg0MDAwMCwgU1pfMjU2SywgMHgwMDA0MDAwMCwgNCwgQUNfUnxBQ19XfEFDX1h8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX0lTUkFNX0JBU0UsIFNaXzI1NkssIDB4MDAwMDAwMDAsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19JU1JBTV9CQVNFICsgMHg0MDAwMCwgU1pfMjU2SywgMHgwMDA0MDAwMCwgNCwgQUNfUnxBQ19XfEFDX1h8U0FfSSkKIAotCXRsYmVudHJ5KENGR19PUEVSX0ZMQVNILCBTWl8xNk0sIDB4RTcwMDAwMDAsIDQsQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfT1BFUl9GTEFTSCwgU1pfMTZNLCAweEU3MDAwMDAwLCA0LEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKIAogCS8qCiAJICogUGVyaXBoZXJhbCBiYXNlCiAJICovCi0JdGxiZW50cnkoQ0ZHX1BFUklQSEVSQUxfQkFTRSwgU1pfMTZLLCAweEVGNjAwMDAwLCA0LCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFLCBTWl8xNkssIDB4RUY2MDAwMDAsIDQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAKLQl0bGJlbnRyeShDRkdfUENJRTBfWENGR0JBU0UsU1pfMTZNLCAweDAwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUxX1hDRkdCQVNFLFNaXzE2TSwgMHgxMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMl9YQ0ZHQkFTRSxTWl8xNk0sIDB4MjAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUwX1hDRkdCQVNFLFNaXzE2TSwgMHgwMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTFfWENGR0JBU0UsU1pfMTZNLCAweDEwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMl9YQ0ZHQkFTRSxTWl8xNk0sIDB4MjAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAotCXRsYmVudHJ5KENGR19QQ0lFMF9NRU1CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUxX01FTUJBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDB4RSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUwX01FTUJBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUxX01FTUJBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDB4RSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAotCXRsYmVudHJ5KENGR19QQ0lFMF9SRUdCQVNFLCBTWl82NEssIDB4MzAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTFfUkVHQkFTRSwgU1pfNjRLLCAweDMwMDEwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUyX1JFR0JBU0UsIFNaXzY0SywgMHgzMDAyMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTBfUkVHQkFTRSwgU1pfNjRLLCAweDMwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMV9SRUdCQVNFLCBTWl82NEssIDB4MzAwMTAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUyX1JFR0JBU0UsIFNaXzY0SywgMHgzMDAyMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCXRsYnRhYl9lbmQKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2Mvc2VxdW9pYS9jbWRfc2VxdW9pYS5jIGIvYm9hcmQvYW1jYy9zZXF1b2lhL2NtZF9zZXF1b2lhLmMKaW5kZXggNmI5MDQzYS4uMzQwMmY4NCAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9zZXF1b2lhL2NtZF9zZXF1b2lhLmMKKysrIGIvYm9hcmQvYW1jYy9zZXF1b2lhL2NtZF9zZXF1b2lhLmMKQEAgLTQ2LDcgKzQ2LDcgQEAKICNkZWZpbmUgTkFORF9DT01QQVRJQkxFCTB4MDEKICNkZWZpbmUgTk9SX0NPTVBBVElCTEUgIDB4MDIKIAotLyogY2hlY2sgd2l0aCBTdGVmYW4gb24gQ0ZHX0kyQ19FRVBST01fQUREUiAqLworLyogY2hlY2sgd2l0aCBTdGVmYW4gb24gQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgKi8KICNkZWZpbmUgSTJDX0VFUFJPTV9BRERSIDB4NTIKIAogc3RhdGljIGNoYXIgKmNvbmZpZ19sYWJlbHNbXSA9IHsKQEAgLTIwNyw3ICsyMDcsNyBAQAogCX0KIAogCS8qIGNoZWNrIENQTEQgcmVnaXN0ZXIgKzUgZm9yIFBDSSA2Nk1IeiBmbGFnICovCi0JaWYgKChpbl84KCh2b2lkICopKENGR19CQ1NSX0JBU0UgKyA1KSkgJiBDRkdfQkNTUjVfUENJNjZFTikgPT0gMCkKKwlpZiAoKGluXzgoKHZvaWQgKikoQ09ORklHX1NZU19CQ1NSX0JBU0UgKyA1KSkgJiBDT05GSUdfU1lTX0JDU1I1X1BDSTY2RU4pID09IDApCiAJCS8qCiAJCSAqIFBMQi10by1QQ0kgZGl2aXNvciA9IDMgZm9yIDMzTUh6IHN5bmMgUENJCiAJCSAqIGluc3RlYWQgb2YgMiBmb3IgNjZNSHogc3lzdGVtcwpAQCAtMjE2LDcgKzIxNiw3IEBACiAKIAlpZiAoaTJjX3dyaXRlKEkyQ19FRVBST01fQUREUiwgMCwgMSwgYnVmLCAxNikgIT0gMCkKIAkJcHJpbnRmKCJFcnJvciB3cml0aW5nIHRvIEVFUFJPTSBhdCBhZGRyZXNzIDB4JXhcbiIsIEkyQ19FRVBST01fQUREUik7Ci0JdWRlbGF5KENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAqIDEwMDApOworCXVkZWxheShDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TICogMTAwMCk7CiAKIAlwcmludGYoIkRvbmVcbiIpOwogCXByaW50ZigiUGxlYXNlIHBvd2VyLWN5Y2xlIHRoZSBib2FyZCBmb3IgdGhlIGNoYW5nZXMgdG8gdGFrZSBlZmZlY3RcbiIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9zZXF1b2lhL2NvbmZpZy5tayBiL2JvYXJkL2FtY2Mvc2VxdW9pYS9jb25maWcubWsKaW5kZXggNWUwNGVlNC4uNmM3NDhjOSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9zZXF1b2lhL2NvbmZpZy5taworKysgYi9ib2FyZC9hbWNjL3NlcXVvaWEvY29uZmlnLm1rCkBAIC00MSw1ICs0MSw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9zZXF1b2lhL2luaXQuUyBiL2JvYXJkL2FtY2Mvc2VxdW9pYS9pbml0LlMKaW5kZXggNDZhMzdjNi4uYmQzNDZiZiAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9zZXF1b2lhL2luaXQuUworKysgYi9ib2FyZC9hbWNjL3NlcXVvaWEvaW5pdC5TCkBAIC00NSwzNiArNDUsMzYgQEAKIAogCS8qIFRMQi1lbnRyeSBmb3IgRERSIFNEUkFNIChVcCB0byAyR0IpICovCiAjaWZkZWYgQ09ORklHXzR4eF9EQ0FDSEUKLQl0bGJlbnRyeSggQ0ZHX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIENGR19TRFJBTV9CQVNFLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRykKICNlbHNlCi0JdGxiZW50cnkoIENGR19TRFJBTV9CQVNFLCBTWl8yNTZNLCBDRkdfU0RSQU1fQkFTRSwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19TRFJBTV9CQVNFLCBTWl8yNTZNLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCiAjZW5kaWYKIAogCS8qIFRMQi1lbnRyeSBmb3IgRUJDICovCi0JdGxiZW50cnkoIENGR19CQ1NSX0JBU0UsIFNaXzI1Nk0sIENGR19CQ1NSX0JBU0UsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfQkNTUl9CQVNFLCBTWl8yNTZNLCBDT05GSUdfU1lTX0JDU1JfQkFTRSwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKIAogCS8qIEJPT1RfQ1MgKEZMQVNIKSBtdXN0IGJlIGZvcnRoLiBCZWZvcmUgcmVsb2NhdGlvbiBTQV9JIGNhbiBiZSBvZmYgdG8gdXNlIHRoZQogCSAqIHNwZWVkIHVwIGJvb3QgcHJvY2Vzcy4gSXQgaXMgcGF0Y2hlZCBhZnRlciByZWxvY2F0aW9uIHRvIGVuYWJsZSBTQV9JCiAJICovCiAjaWZuZGVmIENPTkZJR19OQU5EX1NQTAotCXRsYmVudHJ5KCBDRkdfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0sIENGR19CT09UX0JBU0VfQUREUiwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfRyApCisJdGxiZW50cnkoIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0sIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQogI2Vsc2UKLQl0bGJlbnRyeSggQ0ZHX05BTkRfQk9PVF9TUExfU1JDLCBTWl80SywgQ0ZHX05BTkRfQk9PVF9TUExfU1JDLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQywgU1pfNEssIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkMsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQogI2VuZGlmCiAKLSNpZmRlZiBDRkdfSU5JVF9SQU1fRENBQ0hFCisjaWZkZWYgQ09ORklHX1NZU19JTklUX1JBTV9EQ0FDSEUKIAkvKiBUTEItZW50cnkgZm9yIGluaXQtcmFtIGluIGRjYWNoZSAoU0FfSSBtdXN0IGJlIHR1cm5lZCBvZmYhKSAqLwotCXRsYmVudHJ5KCBDRkdfSU5JVF9SQU1fQUREUiwgU1pfNjRLLCBDRkdfSU5JVF9SQU1fQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRyApCisJdGxiZW50cnkoIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgU1pfNjRLLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQogI2VuZGlmCiAKIAkvKiBUTEItZW50cnkgZm9yIFBDSSBNZW1vcnkgKi8KLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UxLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UxLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFMiwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFMiwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRTMsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRTMsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UxLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UyLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRTMsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UzLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKIAogCS8qIFRMQi1lbnRyeSBmb3IgTkFORCAqLwotCXRsYmVudHJ5KCBDRkdfTkFORF9BRERSLCBTWl8xSywgQ0ZHX05BTkRfQUREUiwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19OQU5EX0FERFIsIFNaXzFLLCBDT05GSUdfU1lTX05BTkRfQUREUiwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKIAogCS8qIFRMQi1lbnRyeSBmb3IgSW50ZXJuYWwgUmVnaXN0ZXJzICYgT0NNICovCiAJdGxiZW50cnkoIDB4ZTAwMDAwMDAsIFNaXzE2TSwgMHhlMDAwMDAwMCwgMCwgIEFDX1J8QUNfV3xBQ19YfFNBX0kgKQpAQCAtOTUsOCArOTUsOCBAQAogCSAqIEZvciBOQU5EIGJvb3RpbmcgdGhlIGZpcnN0IFRMQiBoYXMgdG8gYmUgcmVjb25maWd1cmVkIHRvIGZ1bGwgc2l6ZQogCSAqIGFuZCB3aXRoIGNhY2hpbmcgZGlzYWJsZWQgYWZ0ZXIgcnVubmluZyBmcm9tIFJBTSEKIAkgKi8KLSNkZWZpbmUgVExCMDAJVExCMChDRkdfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0pCi0jZGVmaW5lIFRMQjAxCVRMQjEoQ0ZHX0JPT1RfQkFTRV9BRERSLCAxKQorI2RlZmluZSBUTEIwMAlUTEIwKENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0pCisjZGVmaW5lIFRMQjAxCVRMQjEoQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiwgMSkKICNkZWZpbmUgVExCMDIJVExCMihBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCiAKIAkuZ2xvYmwJcmVjb25maWdfdGxiMApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9zZXF1b2lhL3NkcmFtLmMgYi9ib2FyZC9hbWNjL3NlcXVvaWEvc2RyYW0uYwppbmRleCA3N2U2YzdiLi42NGViMDYzIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL3NlcXVvaWEvc2RyYW0uYworKysgYi9ib2FyZC9hbWNjL3NlcXVvaWEvc2RyYW0uYwpAQCAtMTEzLDUgKzExMyw1IEBACiAJICovCiAJc2V0X21jc3IoZ2V0X21jc3IoKSk7CiAKLQlyZXR1cm4gKENGR19NQllURVNfU0RSQU0gPDwgMjApOworCXJldHVybiAoQ09ORklHX1NZU19NQllURVNfU0RSQU0gPDwgMjApOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9zZXF1b2lhL3NlcXVvaWEuYyBiL2JvYXJkL2FtY2Mvc2VxdW9pYS9zZXF1b2lhLmMKaW5kZXggZTQzOWZiOS4uZDY2NjhlMiAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9zZXF1b2lhL3NlcXVvaWEuYworKysgYi9ib2FyZC9hbWNjL3NlcXVvaWEvc2VxdW9pYS5jCkBAIC0zMyw3ICszMyw3IEBACiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi1leHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitleHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiB1bG9uZyBmbGFzaF9nZXRfc2l6ZSAodWxvbmcgYmFzZSwgaW50IGJhbmtudW0pOwogCkBAIC03NCwxNiArNzQsMTYgQEAKIAltdGRjcih1aWMyc3IsIDB4ZmZmZmZmZmYpOwkvKiBjbGVhciBhbGwgKi8KIAogCS8qIDUwTUh6IHRtcmNsayAqLwotCW91dF84KCh1OCAqKSBDRkdfQkNTUl9CQVNFICsgMHgwNCwgMHgwMCk7CisJb3V0XzgoKHU4ICopIENPTkZJR19TWVNfQkNTUl9CQVNFICsgMHgwNCwgMHgwMCk7CiAKIAkvKiBjbGVhciB3cml0ZSBwcm90ZWN0cyAqLwotCW91dF84KCh1OCAqKSBDRkdfQkNTUl9CQVNFICsgMHgwNywgMHgwMCk7CisJb3V0XzgoKHU4ICopIENPTkZJR19TWVNfQkNTUl9CQVNFICsgMHgwNywgMHgwMCk7CiAKIAkvKiBlbmFibGUgRXRoZXJuZXQgKi8KLQlvdXRfOCgodTggKikgQ0ZHX0JDU1JfQkFTRSArIDB4MDgsIDB4MDApOworCW91dF84KCh1OCAqKSBDT05GSUdfU1lTX0JDU1JfQkFTRSArIDB4MDgsIDB4MDApOwogCiAJLyogZW5hYmxlIFVTQiBkZXZpY2UgKi8KLQlvdXRfOCgodTggKikgQ0ZHX0JDU1JfQkFTRSArIDB4MDksIDB4MjApOworCW91dF84KCh1OCAqKSBDT05GSUdfU1lTX0JDU1JfQkFTRSArIDB4MDksIDB4MjApOwogCiAJLyogc2VsZWN0IEV0aGVybmV0IChhbmQgb3B0aW9uYWxseSBJSUMxKSBwaW5zICovCiAJbWZzZHIoU0RSMF9QRkMxLCBzZHIwX3BmYzEpOwpAQCAtMTEzLDcgKzExMyw3IEBACiAJCVNEUjBfQ1VTVDBfTkRGQ19FTkFCTEUJCXwKIAkJU0RSMF9DVVNUMF9OREZDX0JXXzhfQklUCXwKIAkJU0RSMF9DVVNUMF9OREZDX0FSRV9NQVNLCXwKLQkJKDB4ODAwMDAwMDAgPj4gKDI4ICsgQ0ZHX05BTkRfQ1MpKTsKKwkJKDB4ODAwMDAwMDAgPj4gKDI4ICsgQ09ORklHX1NZU19OQU5EX0NTKSk7CiAJbXRzZHIoU0RSMF9DVVNUMCwgc2RyMF9jdXN0MCk7CiAKIAlyZXR1cm4gMDsKQEAgLTE2MCw3ICsxNjAsNyBAQAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAtQ0ZHX01PTklUT1JfTEVOLAorCQkJICAgIC1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJICAgIDB4ZmZmZmZmZmYsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogCkBAIC0zMjAsOCArMzIwLDggQEAKIAlwcmludGYoIkJvYXJkOiBSYWluaWVyIC0gQU1DQyBQUEM0NDBHUnggRXZhbHVhdGlvbiBCb2FyZCIpOwogI2VuZGlmCiAKLQlyZXYgPSBpbl84KCh2b2lkICopKENGR19CQ1NSX0JBU0UgKyAwKSk7Ci0JdmFsID0gaW5fOCgodm9pZCAqKShDRkdfQkNTUl9CQVNFICsgNSkpICYgQ0ZHX0JDU1I1X1BDSTY2RU47CisJcmV2ID0gaW5fOCgodm9pZCAqKShDT05GSUdfU1lTX0JDU1JfQkFTRSArIDApKTsKKwl2YWwgPSBpbl84KCh2b2lkICopKENPTkZJR19TWVNfQkNTUl9CQVNFICsgNSkpICYgQ09ORklHX1NZU19CQ1NSNV9QQ0k2NkVOOwogCXByaW50ZigiLCBSZXYuICVYLCBQQ0k9JWQgTUh6IiwgcmV2LCB2YWwgPyA2NiA6IDMzKTsKIAogCWlmIChzICE9IE5VTEwpIHsKQEAgLTQwNyw3ICs0MDcsNyBAQAogICogaW5ib3VuZCBtYXAgKFBJTSkuIEJ1dCB0aGUgYm9vdHN0cmFwIGNvbmZpZyBjaG9pY2VzIGFyZSBsaW1pdGVkIGFuZAogICogbWF5IG5vdCBiZSBzdWZmaWNpZW50IGZvciBhIGdpdmVuIGJvYXJkLgogICovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogdm9pZCBwY2lfdGFyZ2V0X2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewogCS8qCkBAIC00MjMsMTYgKzQyMywxNiBAQAogCSAqLwogCW91dDMycihQQ0lYMF9QTU0wTUEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIE1hc2svQXR0cmlidXRlICovCiAJCQkJCQkvKiAtIGRpc2FibGVkIGI0IHNldHRpbmcgKi8KLQlvdXQzMnIoUENJWDBfUE1NMExBLCBDRkdfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KLQlvdXQzMnIoUENJWDBfUE1NMFBDSUxBLCBDRkdfUENJX01FTUJBU0UpOyAvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0wTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMFBDSUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFKTsgLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMFBDSUhBLCAweDAwMDAwMDAwKTsJLyogUE1NMCBQQ0kgSGlnaCBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTBNQSwgMHhFMDAwMDAwMSk7CS8qIDUxMk0gKyBObyBwcmVmZXRjaGluZywgKi8KIAkJCQkJCS8qIGFuZCBlbmFibGUgcmVnaW9uICovCiAKIAlvdXQzMnIoUENJWDBfUE1NMU1BLCAweDAwMDAwMDAwKTsJLyogUE1NMCBNYXNrL0F0dHJpYnV0ZSAqLwogCQkJCQkJLyogLSBkaXNhYmxlZCBiNCBzZXR0aW5nICovCi0Jb3V0MzJyKFBDSVgwX1BNTTFMQSwgQ0ZHX1BDSV9NRU1CQVNFMik7IC8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLwotCW91dDMycihQQ0lYMF9QTU0xUENJTEEsIENGR19QQ0lfTUVNQkFTRTIpOyAvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0xTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UyKTsgLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTFQQ0lMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIpOyAvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0xUENJSEEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIFBDSSBIaWdoIEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMU1BLCAweEUwMDAwMDAxKTsJLyogNTEyTSArIE5vIHByZWZldGNoaW5nLCAqLwogCQkJCQkJLyogYW5kIGVuYWJsZSByZWdpb24gKi8KQEAgLTQ0OCw4ICs0NDgsOCBAQAogCiAJLyogUHJvZ3JhbSB0aGUgYm9hcmQncyBzdWJzeXN0ZW0gaWQvdmVuZG9yIGlkICovCiAJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fVkVORE9SX0lELAotCQkJICAgICAgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQpOwotCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX0lELCBDRkdfUENJX1NVQlNZU19JRCk7CisJCQkgICAgICBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQpOworCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSUQpOwogCiAJLyogQ29uZmlndXJlIGNvbW1hbmQgcmVnaXN0ZXIgYXMgYnVzIG1hc3RlciAqLwogCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfQ09NTUFORCwgUENJX0NPTU1BTkRfTUFTVEVSKTsKQEAgLTQ2Myw5ICs0NjMsOSBAQAogCXBjaV93cml0ZV9jb25maWdfZHdvcmQoMCwgUENJX0JSREdPUFQyLCAweDAwMDAwMTAxKTsKIAogfQotI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkgKi8KIAotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX01BU1RFUl9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVCkKIHZvaWQgcGNpX21hc3Rlcl9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSkKIHsKIAl1bnNpZ25lZCBzaG9ydCB0ZW1wX3Nob3J0OwpAQCAtNDgwLDcgKzQ4MCw3IEBACiAJCQkgICAgICB0ZW1wX3Nob3J0IHwgUENJX0NPTU1BTkRfTUFTVEVSIHwKIAkJCSAgICAgIFBDSV9DT01NQU5EX01FTU9SWSk7CiB9Ci0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfTUFTVEVSX0lOSVQpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUKSAqLwogCiAvKgogICogaXNfcGNpX2hvc3QKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2Mvc2VxdW9pYS91LWJvb3QubGRzIGIvYm9hcmQvYW1jYy9zZXF1b2lhL3UtYm9vdC5sZHMKaW5kZXggYjIwZmIxYy4uM2NmZWM4MyAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9zZXF1b2lhL3UtYm9vdC5sZHMKKysrIGIvYm9hcmQvYW1jYy9zZXF1b2lhL3UtYm9vdC5sZHMKQEAgLTEzNyw3ICsxMzcsNyBAQAogICAgKihDT01NT04pCiAgIH0KIAotICBwcGNlbnZfYXNzZXJ0ID0gQVNTRVJUKC4gPCAweEZGRkY4MDAwLCAiLmJzcyBzZWN0aW9uIHRvbyBiaWcsIG92ZXJsYXBzIC5wcGNlbnYgc2VjdGlvbi4gUGxlYXNlIHVwZGF0ZSB5b3VyIGNvbmZndXJhdGlvbjogQ0ZHX01PTklUT1JfQkFTRSwgQ0ZHX01PTklUT1JfTEVOIGFuZCBURVhUX0JBU0UgbWF5IG5lZWQgdG8gYmUgbW9kaWZpZWQuIik7CisgIHBwY2Vudl9hc3NlcnQgPSBBU1NFUlQoLiA8IDB4RkZGRjgwMDAsICIuYnNzIHNlY3Rpb24gdG9vIGJpZywgb3ZlcmxhcHMgLnBwY2VudiBzZWN0aW9uLiBQbGVhc2UgdXBkYXRlIHlvdXIgY29uZmd1cmF0aW9uOiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgQ09ORklHX1NZU19NT05JVE9SX0xFTiBhbmQgVEVYVF9CQVNFIG1heSBuZWVkIHRvIGJlIG1vZGlmaWVkLiIpOwogCiAgIF9lbmQgPSAuIDsKICAgUFJPVklERSAoZW5kID0gLik7CmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL3RhaWh1L2ZsYXNoLmMgYi9ib2FyZC9hbWNjL3RhaWh1L2ZsYXNoLmMKaW5kZXggYWU5MmJiMi4uMTEwY2JlNSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy90YWlodS9mbGFzaC5jCisrKyBiL2JvYXJkL2FtY2MvdGFpaHUvZmxhc2guYwpAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgPHBwYzR4eC5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAgICAgKi8KIAogI3VuZGVmIERFQlVHCiAjaWZkZWYgREVCVUcKQEAgLTQxLDkgKzQxLDkgQEAKICNkZWZpbmUgREVCVUdGKHguLi4pCiAjZW5kaWYJCQkJLyogREVCVUcgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0hBUl9TSVpFIHVuc2lnbmVkIGNoYXIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NIQVJfQUREUjAgKDB4MGFhYSkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NIQVJfQUREUjEgKDB4MDU1NSkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUgdW5zaWduZWQgY2hhcgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NIQVJfQUREUjAgKDB4MGFhYSkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DSEFSX0FERFIxICgweDA1NTUpCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKICAqLwpAQCAtNjUsNyArNjUsNyBAQAogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTg0LDggKzg0LDggQEAKIAkJZmxhc2hfZ2V0X29mZnNldHMoRkxBU0hfQkFTRTBfUFJFTElNLCAmZmxhc2hfaW5mb1swXSk7CiAJCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCQkgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCQkgICAgQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTiAtIDEsCisJCQkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJCSAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gLSAxLAogCQkJCSAgICAmZmxhc2hfaW5mb1swXSk7CiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENPTkZJR19FTlZfQUREUiwKQEAgLTI5OSwzMiArMjk5LDMyIEBACiAjZW5kaWYKIHsKIAlzaG9ydCBpOwotCUNGR19GTEFTSF9XT1JEX1NJWkUgdmFsdWU7CisJQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgdmFsdWU7CiAJdWxvbmcgYmFzZSA9ICh1bG9uZykgYWRkcjsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGFkZHI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIGFkZHI7CiAKIAlERUJVR0YoIkZMQVNIIEFERFI6ICUwOHhcbiIsICh1bnNpZ25lZClhZGRyKTsKIAogCS8qIFdyaXRlIGF1dG8gc2VsZWN0IGNvbW1hbmQ6IHJlYWQgTWFudWZhY3R1cmVyIElEICovCi0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA5MDAwOTA7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA5MDAwOTA7CiAJdWRlbGF5KDEwMDApOwogCiAJdmFsdWUgPSBhZGRyMlswXTsKIAlERUJVR0YoIkZMQVNIIE1BTlVGQUNUOiAleFxuIiwgdmFsdWUpOwogCiAJc3dpdGNoICh2YWx1ZSkgewotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9BTUQ7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEZVSl9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgRlVKX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9GVUo7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIFNTVF9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgU1NUX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9TU1Q7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIFNUTV9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgU1RNX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9TVE07CiAJCWJyZWFrOwogCWRlZmF1bHQ6CkBAIC0zMzgsNjcgKzMzOCw2NyBAQAogCURFQlVHRigiXG5GTEFTSCBERVZJQ0VJRDogJXhcbiIsIHZhbHVlKTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFYwNDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFYwNDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTA0MDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gODsKIAkJaW5mby0+c2l6ZSA9IDB4MDA4MDAwMDsJLyogPT4gNTEyIGtvICovCiAJCWJyZWFrOwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0YwNDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfRjA0MEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMDQwOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA4OwogCQlpbmZvLT5zaXplID0gMHgwMDgwMDAwOwkvKiA9PiA1MTIga28gKi8KIAkJYnJlYWs7CiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBTVE1fSURfTTI5VzA0MEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIFNUTV9JRF9NMjlXMDQwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0wNDA7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDg7CiAJCWluZm8tPnNpemUgPSAweDAwODAwMDA7CS8qID0+IDUxMiBrbyAqLwogCQlicmVhazsKIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9GMDE2RDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0YwMTZEOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTUQwMTY7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDMyOwogCQlpbmZvLT5zaXplID0gMHgwMDIwMDAwMDsKIAkJYnJlYWs7CQkvKiA9PiAyIE1CICAgICAgICAgICAgICAqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMDMzQzoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMDMzQzoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1ETFYwMzNDOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA2NDsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7CiAJCWJyZWFrOwkJLyogPT4gNCBNQiAgICAgICAgICAgICAgKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjQwMFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjQwMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNNDAwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTE7CiAJCWluZm8tPnNpemUgPSAweDAwMDgwMDAwOwogCQlicmVhazsJCS8qID0+IDAuNSBNQiAgICAgICAgICAgICovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY0MDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY0MDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTQwMEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDExOwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKIAkJYnJlYWs7CQkvKiA9PiAwLjUgTUIgICAgICAgICAgICAqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWODAwVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWODAwVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU04MDBUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxOTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAxMDAwMDA7CiAJCWJyZWFrOwkJLyogPT4gMSBNQiAgICAgICAgICAgICAgKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjgwMEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjgwMEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNODAwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTk7CiAJCWluZm8tPnNpemUgPSAweDAwMTAwMDAwOwogCQlicmVhazsJCS8qID0+IDEgTUIgICAgICAgICAgICAgICovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFYxNjBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFYxNjBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTE2MFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDM1OwogCQlpbmZvLT5zaXplID0gMHgwMDIwMDAwMDsKIAkJYnJlYWs7CQkvKiA9PiAyIE1CICAgICAgICAgICAgICAqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMTYwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMTYwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0xNjBCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAzNTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAyMDAwMDA7CkBAIC00NDUsMTQgKzQ0NSwxNCBAQAogCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5zZWN0b3JfY291bnQ7IGkrKykgewogCQkvKiByZWFkIHNlY3RvciBwcm90ZWN0aW9uIGF0IHNlY3RvciBhZGRyZXNzLCAoQTcgLi4gQTApID0gMHgwMiAqLwogCQkvKiBEMCA9IDEgaWYgcHJvdGVjdGVkICovCi0JCWFkZHIyID0gKHZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOworCQlhZGRyMiA9ICh2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CiAKIAkJLyogRm9yIEFNRDI5MDMzQyBmbGFzaCB3ZSBuZWVkIHRvIHJlc2VuZCB0aGUgY29tbWFuZCBvZiAqCiAJCSAqIHJlYWRpbmcgZmxhc2ggcHJvdGVjdGlvbiBmb3IgdXBwZXIgOCBNYiBvZiBmbGFzaCAgICAgKi8KIAkJaWYgKGkgPT0gMzIpIHsKLQkJCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHhBQUFBQUFBQTsKLQkJCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKLQkJCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg5MDkwOTA5MDsKKwkJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOworCQkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7CisJCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg5MDkwOTA5MDsKIAkJfQogCiAJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkKQEAgLTQ2Miw3ICs0NjIsNyBAQAogCX0KIAogCS8qIGlzc3VlIGJhbmsgcmVzZXQgdG8gcmV0dXJuIHRvIHJlYWQgbW9kZSAqLwotCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBGMDAwRjA7CisJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBGMDAwRjA7CiAKIAlyZXR1cm4gaW5mby0+c2l6ZTsKIH0KQEAgLTQ3MCwxNCArNDcwLDE0IEBACiBzdGF0aWMgaW50IHdhaXRfZm9yX0RRN18xKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzZWN0KQogewogCXVsb25nIHN0YXJ0LCBub3csIGxhc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9Ci0JICAgIChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPQorCSAgICAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAogCXN0YXJ0ID0gZ2V0X3RpbWVyKDApOwogCWxhc3QgPSBzdGFydDsKLQl3aGlsZSAoKGFkZHJbMF0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KLQkgICAgICAgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJd2hpbGUgKChhZGRyWzBdICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQorCSAgICAgICAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAtMTsKIAkJfQpAQCAtNTA5LDggKzUwOSw4IEBACiBpbnQgZmxhc2hfZXJhc2UoZmxhc2hfaW5mb190ICogaW5mbywgaW50IHNfZmlyc3QsIGludCBzX2xhc3QpCiAjZW5kaWYKIHsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMjsKIAlpbnQgZmxhZywgcHJvdCwgc2VjdCwgbF9zZWN0OwogCWludCBpOwogCkBAIC01NTAsMjQgKzU1MCwyNCBAQAogCS8qIFN0YXJ0IGVyYXNlIG9uIHVucHJvdGVjdGVkIHNlY3RvcnMgKi8KIAlmb3IgKHNlY3QgPSBzX2ZpcnN0OyBzZWN0IDw9IHNfbGFzdDsgc2VjdCsrKSB7CiAJCWlmIChpbmZvLT5wcm90ZWN0W3NlY3RdID09IDApIHsJLyogbm90IHByb3RlY3RlZCAqLwotCQkJYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOworCQkJYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAogCQkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fU1NUKSB7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDUwMDA1MDsJLyogYmxvY2sgZXJhc2UgKi8KKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1MDAwNTA7CS8qIGJsb2NrIGVyYXNlICovCiAJCQkJZm9yIChpID0gMDsgaSA8IDUwOyBpKyspCiAJCQkJCXVkZWxheSgxMDAwKTsJLyogd2FpdCAxIG1zICovCiAJCQl9IGVsc2UgewotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDAzMDAwMzA7CS8qIHNlY3RvciBlcmFzZSAqLworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCQlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDMwMDAzMDsJLyogc2VjdG9yIGVyYXNlICovCiAJCQl9CiAJCQlsX3NlY3QgPSBzZWN0OwogCQkJLyoKQEAgLTU4OSw4ICs1ODksOCBAQAogCXVkZWxheSgxMDAwKTsKIAogCS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwotCWFkZHIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBpbmZvLT5zdGFydFswXTsKLQlhZGRyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KKwlhZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIGluZm8tPnN0YXJ0WzBdOworCWFkZHJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAogCXByaW50ZigiIGRvbmVcbiIpOwogCXJldHVybiAwOwpAQCAtNjkxLDkgKzY5MSw5IEBACiBzdGF0aWMgaW50IHdyaXRlX3dvcmQoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSkKICNlbmRpZgogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAmIGRhdGE7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopICYgZGF0YTsKIAl1bG9uZyBzdGFydDsKIAlpbnQgaTsKIApAQCAtNzAyLDE1ICs3MDIsMTUgQEAKIAkJcmV0dXJuIDI7CiAJfQogCi0JZm9yIChpID0gMDsgaSA8IDQgLyBzaXplb2YoQ0ZHX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCA0IC8gc2l6ZW9mKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTsgaSsrKSB7CiAJCWludCBmbGFnOwogCiAJCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCQlmbGFnID0gZGlzYWJsZV9pbnRlcnJ1cHRzKCk7CiAKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEEwMDBBMDsKKwkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEEwMDBBMDsKIAogCQlkZXN0MltpXSA9IGRhdGEyW2ldOwogCkBAIC03MjAsMTAgKzcyMCwxMCBAQAogCiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJc3RhcnQgPSBnZXRfdGltZXIoMCk7Ci0JCXdoaWxlICgoZGVzdDJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KLQkJICAgICAgIChkYXRhMltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSkgeworCQl3aGlsZSAoKGRlc3QyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQorCQkgICAgICAgKGRhdGEyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSkgewogCi0JCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAxOwogCQkJfQogCQl9CkBAIC03NDAsMzIgKzc0MCwzMiBAQAogc3RhdGljIHVsb25nIGZsYXNoX2dldF9zaXplXzIodnVfbG9uZyAqIGFkZHIsIGZsYXNoX2luZm9fdCAqIGluZm8pCiB7CiAJc2hvcnQgaTsKLQlDRkdfRkxBU0hfQ0hBUl9TSVpFIHZhbHVlOworCUNPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFIHZhbHVlOwogCXVsb25nIGJhc2UgPSAodWxvbmcpIGFkZHI7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBhZGRyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBhZGRyOwogCiAJREVCVUdGKCJGTEFTSCBBRERSOiAlMDh4XG4iLCAodW5zaWduZWQpYWRkcik7CiAKIAkvKiBXcml0ZSBhdXRvIHNlbGVjdCBjb21tYW5kOiByZWFkIE1hbnVmYWN0dXJlciBJRCAqLwotCWFkZHIyW0NGR19GTEFTSF9DSEFSX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOwotCWFkZHIyW0NGR19GTEFTSF9DSEFSX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDU1NTU1NTU1OwotCWFkZHIyW0NGR19GTEFTSF9DSEFSX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDkwOTA5MDkwOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQ0hBUl9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9DSEFSX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0NIQVJfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDkwOTA5MDkwOwogCXVkZWxheSgxMDAwKTsKIAotCXZhbHVlID0gKENGR19GTEFTSF9DSEFSX1NJWkUpYWRkcjJbMF07CisJdmFsdWUgPSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpYWRkcjJbMF07CiAJREVCVUdGKCJGTEFTSCBNQU5VRkFDVDogJXhcbiIsIHZhbHVlKTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQljYXNlIChDRkdfRkxBU0hfQ0hBUl9TSVpFKSBBTURfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpIEFNRF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fQU1EOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfQ0hBUl9TSVpFKSBGVUpfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpIEZVSl9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fRlVKOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfQ0hBUl9TSVpFKSBTU1RfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpIFNTVF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fU1NUOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfQ0hBUl9TSVpFKSBTVE1fTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpIFNUTV9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fU1RNOwogCQlicmVhazsKIAlkZWZhdWx0OgpAQCAtNzc1LDgzICs3NzUsODMgQEAKIAkJcmV0dXJuIDA7CQkvKiBubyBvciB1bmtub3duIGZsYXNoICovCiAJfQogCi0JdmFsdWUgPSAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSlhZGRyMlsyXTsJLyogZGV2aWNlIElEICovCisJdmFsdWUgPSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpYWRkcjJbMl07CS8qIGRldmljZSBJRCAqLwogCURFQlVHRigiXG5GTEFTSCBERVZJQ0VJRDogJXhcbiIsIHZhbHVlKTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQljYXNlIChDRkdfRkxBU0hfQ0hBUl9TSVpFKSBBTURfSURfTFYwNDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKSBBTURfSURfTFYwNDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTA0MDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gODsKIAkJaW5mby0+c2l6ZSA9IDB4MDA4MDAwMDsJLyogPT4gNTEyIGtvICovCiAJCWJyZWFrOwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSkgQU1EX0lEX0YwNDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKSBBTURfSURfRjA0MEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMDQwOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA4OwogCQlpbmZvLT5zaXplID0gMHgwMDgwMDAwOwkvKiA9PiA1MTIga28gKi8KIAkJYnJlYWs7CiAKLQljYXNlIChDRkdfRkxBU0hfQ0hBUl9TSVpFKSBTVE1fSURfTTI5VzA0MEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpIFNUTV9JRF9NMjlXMDQwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0wNDA7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDg7CiAJCWluZm8tPnNpemUgPSAweDAwODAwMDA7CS8qID0+IDUxMiBrbyAqLwogCQlicmVhazsKIAotCWNhc2UgKENGR19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9GMDE2RDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX0NIQVJfU0laRSkgQU1EX0lEX0YwMTZEOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTUQwMTY7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDMyOwogCQlpbmZvLT5zaXplID0gMHgwMDIwMDAwMDsKIAkJYnJlYWs7CQkJLyogPT4gMiBNQiAqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSkgQU1EX0lEX0xWMDMzQzoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX0NIQVJfU0laRSkgQU1EX0lEX0xWMDMzQzoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1ETFYwMzNDOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA2NDsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7CiAJCWJyZWFrOwkJCS8qID0+IDQgTUIgKi8KIAotCWNhc2UgKENGR19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9MVjQwMFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9MVjQwMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNNDAwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTE7CiAJCWluZm8tPnNpemUgPSAweDAwMDgwMDAwOwogCQlicmVhazsJCQkvKiA9PiAwLjUgTUIgKi8KIAotCWNhc2UgKENGR19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9MVjQwMEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9MVjQwMEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNNDAwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTE7CiAJCWluZm8tPnNpemUgPSAweDAwMDgwMDAwOwogCQlicmVhazsJCQkvKiA9PiAwLjUgTUIgKi8KIAotCWNhc2UgKENGR19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9MVjgwMFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9MVjgwMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNODAwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTk7CiAJCWluZm8tPnNpemUgPSAweDAwMTAwMDAwOwogCQlicmVhazsJCQkvKiA9PiAxIE1CICovCiAKLQljYXNlIChDRkdfRkxBU0hfQ0hBUl9TSVpFKSBBTURfSURfTFY4MDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKSBBTURfSURfTFY4MDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTgwMEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDE5OwogCQlpbmZvLT5zaXplID0gMHgwMDEwMDAwMDsKIAkJYnJlYWs7CQkJLyogPT4gMSBNQiAqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSkgQU1EX0lEX0xWMTYwVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX0NIQVJfU0laRSkgQU1EX0lEX0xWMTYwVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0xNjBUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAzNTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAyMDAwMDA7CiAJCWJyZWFrOwkJCS8qID0+IDIgTUIgKi8KIAotCWNhc2UgKENGR19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9MVjE2MEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9MVjE2MEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMTYwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwogCQlicmVhazsJCQkvKiA9PiAyIE1CICovCi0JY2FzZSAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSkgQU1EX0lEX01JUlJPUjoKLQkJaWYgKChDRkdfRkxBU0hfQ0hBUl9TSVpFKWFkZHIyWzB4MWNdID09IChDRkdfRkxBU0hfQ0hBUl9TSVpFKUFNRF9JRF9MVjEyOFVfMgotCQkJCSYmIChDRkdfRkxBU0hfQ0hBUl9TSVpFKWFkZHIyWzB4MWVdID09ICAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSlBTURfSURfTFYxMjhVXzMpIHsKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX0NIQVJfU0laRSkgQU1EX0lEX01JUlJPUjoKKwkJaWYgKChDT05GSUdfU1lTX0ZMQVNIX0NIQVJfU0laRSlhZGRyMlsweDFjXSA9PSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpQU1EX0lEX0xWMTI4VV8yCisJCQkJJiYgKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKWFkZHIyWzB4MWVdID09ICAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpQU1EX0lEX0xWMTI4VV8zKSB7CiAJCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTUxWMTI4VTsKIAkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDI1NjsKIAkJCWluZm8tPnNpemUgPSAweDAxMDAwMDAwOwotCQl9IGVsc2UgaWYgKChDRkdfRkxBU0hfQ0hBUl9TSVpFKWFkZHIyWzB4MWNdID09IChDRkdfRkxBU0hfQ0hBUl9TSVpFKUFNRF9JRF9HTDEyOE5fMgotCQkJCSYmIChDRkdfRkxBU0hfQ0hBUl9TSVpFKWFkZHIyWzB4MWVdID09ICAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSlBTURfSURfR0wxMjhOXzMgKSB7CisJCX0gZWxzZSBpZiAoKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKWFkZHIyWzB4MWNdID09IChDT05GSUdfU1lTX0ZMQVNIX0NIQVJfU0laRSlBTURfSURfR0wxMjhOXzIKKwkJCQkmJiAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpYWRkcjJbMHgxZV0gPT0gIChDT05GSUdfU1lTX0ZMQVNIX0NIQVJfU0laRSlBTURfSURfR0wxMjhOXzMgKSB7CiAJCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9TMjlHTDEyOE47CiAJCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxMjg7CiAJCQlpbmZvLT5zaXplID0gMHgwMTAwMDAwMDsKQEAgLTkwNCwzOCArOTA0LDM4IEBACiAJZm9yIChpID0gMDsgaSA8IGluZm8tPnNlY3Rvcl9jb3VudDsgaSsrKSB7CiAJCS8qIHJlYWQgc2VjdG9yIHByb3RlY3Rpb24gYXQgc2VjdG9yIGFkZHJlc3MsIChBNyAuLiBBMCkgPSAweDAyICovCiAJCS8qIEQwID0gMSBpZiBwcm90ZWN0ZWQgKi8KLQkJYWRkcjIgPSAodm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CisJCWFkZHIyID0gKHZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKIAogCQkvKiBGb3IgQU1EMjkwMzNDIGZsYXNoIHdlIG5lZWQgdG8gcmVzZW5kIHRoZSBjb21tYW5kIG9mICoKIAkJICogcmVhZGluZyBmbGFzaCBwcm90ZWN0aW9uIGZvciB1cHBlciA4IE1iIG9mIGZsYXNoICAgICAqLwogCQlpZiAoaSA9PSAzMikgewotCQkJYWRkcjJbQ0ZHX0ZMQVNIX0NIQVJfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7Ci0JCQlhZGRyMltDRkdfRkxBU0hfQ0hBUl9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKLQkJCWFkZHIyW0NGR19GTEFTSF9DSEFSX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDkwOTA5MDkwOworCQkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9DSEFSX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhBQUFBQUFBQTsKKwkJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQ0hBUl9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7CisJCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0NIQVJfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDkwOTA5MDkwOwogCQl9CiAKIAkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fU1NUKQogCQkJaW5mby0+cHJvdGVjdFtpXSA9IDA7CiAJCWVsc2UKLQkJCWluZm8tPnByb3RlY3RbaV0gPSAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSlhZGRyMls0XSAmIDE7CisJCQlpbmZvLT5wcm90ZWN0W2ldID0gKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKWFkZHIyWzRdICYgMTsKIAl9CiAKIAkvKiBpc3N1ZSBiYW5rIHJlc2V0IHRvIHJldHVybiB0byByZWFkIG1vZGUgKi8KLQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEYwRjBGMEYwOworCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweEYwRjBGMEYwOwogCXJldHVybiBpbmZvLT5zaXplOwogfQogCiBzdGF0aWMgaW50IHdhaXRfZm9yX0RRN18yKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzZWN0KQogewogCXVsb25nIHN0YXJ0LCBub3csIGxhc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9Ci0JICAgIChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPQorCSAgICAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAogCXN0YXJ0ID0gZ2V0X3RpbWVyKDApOwogCWxhc3QgPSBzdGFydDsKLQl3aGlsZSAoKChDRkdfRkxBU0hfV09SRF9TSVpFKWFkZHJbMF0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg4MDgwODA4MCkgIT0KLQkgICAgICAgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4ODA4MDgwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJd2hpbGUgKCgoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpYWRkclswXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg4MDgwODA4MCkgIT0KKwkgICAgICAgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDgwODA4MDgwKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZigiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0KQEAgLTk1MCw4ICs5NTAsOCBAQAogCiBzdGF0aWMgaW50IGZsYXNoX2VyYXNlXzIoZmxhc2hfaW5mb190ICogaW5mbywgaW50IHNfZmlyc3QsIGludCBzX2xhc3QpCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CiAJaW50IGZsYWcsIHByb3QsIHNlY3QsIGxfc2VjdDsKIAlpbnQgaTsKIApAQCAtOTkxLDI0ICs5OTEsMjQgQEAKIAkvKiBTdGFydCBlcmFzZSBvbiB1bnByb3RlY3RlZCBzZWN0b3JzICovCiAJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdCA8PSBzX2xhc3Q7IHNlY3QrKykgewogCQlpZiAoaW5mby0+cHJvdGVjdFtzZWN0XSA9PSAwKSB7CS8qIG5vdCBwcm90ZWN0ZWQgKi8KLQkJCWFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwkJCWFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAKIAkJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkgewotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0NIQVJfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQ0hBUl9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKLQkJCQlhZGRyW0NGR19GTEFTSF9DSEFSX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDgwODA4MDgwOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0NIQVJfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQ0hBUl9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKLQkJCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDUwNTA1MDUwOwkvKiBibG9jayBlcmFzZSAqLworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9DSEFSX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhBQUFBQUFBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQ0hBUl9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0NIQVJfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDgwODA4MDgwOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9DSEFSX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhBQUFBQUFBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQ0hBUl9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7CisJCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4NTA1MDUwNTA7CS8qIGJsb2NrIGVyYXNlICovCiAJCQkJZm9yIChpID0gMDsgaSA8IDUwOyBpKyspCiAJCQkJCXVkZWxheSgxMDAwKTsJLyogd2FpdCAxIG1zICovCiAJCQl9IGVsc2UgewotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0NIQVJfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQ0hBUl9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKLQkJCQlhZGRyW0NGR19GTEFTSF9DSEFSX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDgwODA4MDgwOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0NIQVJfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQ0hBUl9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKLQkJCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDMwMzAzMDMwOwkvKiBzZWN0b3IgZXJhc2UgKi8KKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQ0hBUl9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0NIQVJfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDU1NTU1NTU1OworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9DSEFSX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg4MDgwODA4MDsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQ0hBUl9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0NIQVJfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDU1NTU1NTU1OworCQkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDMwMzAzMDMwOwkvKiBzZWN0b3IgZXJhc2UgKi8KIAkJCX0KIAkJCWxfc2VjdCA9IHNlY3Q7CiAJCQkvKgpAQCAtMTAzMCw4ICsxMDMwLDggQEAKIAl1ZGVsYXkoMTAwMCk7CiAKIAkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgaW5mby0+c3RhcnRbMF07Ci0JYWRkclswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEYwRjBGMEYwOyAvKiByZXNldCBiYW5rICovCisJYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBpbmZvLT5zdGFydFswXTsKKwlhZGRyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweEYwRjBGMEYwOyAvKiByZXNldCBiYW5rICovCiAKIAlwcmludGYoIiBkb25lXG4iKTsKIAlyZXR1cm4gMDsKQEAgLTEwMzksOSArMTAzOSw5IEBACiAKIHN0YXRpYyBpbnQgd3JpdGVfd29yZF8yKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgZGVzdDsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpkYXRhMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopICYgZGF0YTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqZGVzdDIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgZGVzdDsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgJiBkYXRhOwogCXVsb25nIHN0YXJ0OwogCWludCBpOwogCkBAIC0xMDUwLDE1ICsxMDUwLDE1IEBACiAJCXJldHVybiAyOwogCX0KIAotCWZvciAoaSA9IDA7IGkgPCA0IC8gc2l6ZW9mKENGR19GTEFTSF9XT1JEX1NJWkUpOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgNCAvIHNpemVvZihDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykgewogCQlpbnQgZmxhZzsKIAogCQkvKiBEaXNhYmxlIGludGVycnVwdHMgd2hpY2ggbWlnaHQgY2F1c2UgYSB0aW1lb3V0IGhlcmUgKi8KIAkJZmxhZyA9IGRpc2FibGVfaW50ZXJydXB0cygpOwogCi0JCWFkZHIyW0NGR19GTEFTSF9DSEFSX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOwotCQlhZGRyMltDRkdfRkxBU0hfQ0hBUl9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0NIQVJfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4QTBBMEEwQTA7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQ0hBUl9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQ0hBUl9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQ0hBUl9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4QTBBMEEwQTA7CiAKIAkJZGVzdDJbaV0gPSBkYXRhMltpXTsKIApAQCAtMTA2OCwxMCArMTA2OCwxMCBAQAogCiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJc3RhcnQgPSBnZXRfdGltZXIoMCk7Ci0JCXdoaWxlICgoZGVzdDJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg4MDgwODA4MCkgIT0KLQkJICAgICAgIChkYXRhMltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDgwODA4MDgwKSkgeworCQl3aGlsZSAoKGRlc3QyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDgwODA4MDgwKSAhPQorCQkgICAgICAgKGRhdGEyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDgwODA4MDgwKSkgewogCi0JCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAxOwogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL3RhaWh1L3RhaWh1LmMgYi9ib2FyZC9hbWNjL3RhaWh1L3RhaWh1LmMKaW5kZXggZWUwOTM5YS4uNmU5MzMwZiAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy90YWlodS90YWlodS5jCisrKyBiL2JvYXJkL2FtY2MvdGFpaHUvdGFpaHUuYwpAQCAtNDgsOCArNDgsOCBAQAogCW10ZGNyKHVpY3NyLCAweEZGRkZGRkZGKTsJLyogY2xlYXIgYWxsIGludHMgKi8KIAltdGRjcih1aWN2Y3IsIDB4MDAwMDAwMDEpOwkvKiBzZXQgdmVjdCBiYXNlPTAsSU5UMCBoaWdoZXN0IHByaW9yaXR5ICovCiAKLQltdGViYyhwYjNhcCwgQ0ZHX0VCQ19QQjNBUCk7CS8qIG1lbW9yeSBiYW5rIDMgKENQTERfTENNKSBpbml0aWFsaXphdGlvbiAqLwotCW10ZWJjKHBiM2NyLCBDRkdfRUJDX1BCM0NSKTsKKwltdGViYyhwYjNhcCwgQ09ORklHX1NZU19FQkNfUEIzQVApOwkvKiBtZW1vcnkgYmFuayAzIChDUExEX0xDTSkgaW5pdGlhbGl6YXRpb24gKi8KKwltdGViYyhwYjNjciwgQ09ORklHX1NZU19FQkNfUEIzQ1IpOwogCiAJLyoKIAkgKiBDb25maWd1cmUgQ1BDMF9QQ0kgdG8gZW5hYmxlIFBlcldFIGFzIG91dHB1dApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy90YWlodS91cGRhdGUuYyBiL2JvYXJkL2FtY2MvdGFpaHUvdXBkYXRlLmMKaW5kZXggNTVhZDUzNS4uNTJiYWQ1NiAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy90YWlodS91cGRhdGUuYworKysgYi9ib2FyZC9hbWNjL3RhaWh1L3VwZGF0ZS5jCkBAIC0xMDEsNyArMTAxLDcgQEAKIHN0YXRpYyBpbnQgdXBkYXRlX2Jvb3RfZWVwcm9tKGNtZF90YmxfdCogY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogCXVsb25nIGxlbiA9IDB4MjA7Ci0JdWNoYXIgY2hpcCA9IENGR19JMkNfRUVQUk9NX0FERFI7CisJdWNoYXIgY2hpcCA9IENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSOwogCXVjaGFyICpwYnVmOwogCXVjaGFyIGJhc2U7CiAJaW50IGk7CmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL3RhaXNoYW4vY29uZmlnLm1rIGIvYm9hcmQvYW1jYy90YWlzaGFuL2NvbmZpZy5tawppbmRleCA0ZWVmZmYyLi5lZTVlYjFiIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL3RhaXNoYW4vY29uZmlnLm1rCisrKyBiL2JvYXJkL2FtY2MvdGFpc2hhbi9jb25maWcubWsKQEAgLTQwLDUgKzQwLDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL3RhaXNoYW4vaW5pdC5TIGIvYm9hcmQvYW1jYy90YWlzaGFuL2luaXQuUwppbmRleCA4ZGIwNDNiLi43NDhlYzBhIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL3RhaXNoYW4vaW5pdC5TCisrKyBiL2JvYXJkL2FtY2MvdGFpc2hhbi9pbml0LlMKQEAgLTg5LDkgKzg5LDkgQEAKIHRsYnRhYjoKIAl0bGJ0YWJfc3RhcnQKIAl0bGJlbnRyeSggMHhmMDAwMDAwMCwgU1pfMjU2TSwgMHhmMDAwMDAwMCwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQotCXRsYmVudHJ5KCBDRkdfUEVSSVBIRVJBTF9CQVNFLCBTWl8yNTZNLCAweDQwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KCBDRkdfSVNSQU1fQkFTRSwgU1pfMjU2SywgMHg4MDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1ggKQotCXRsYmVudHJ5KCBDRkdfU0RSQU1fQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAyLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAzLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UsIFNaXzI1Nk0sIDB4NDAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoIENPTkZJR19TWVNfSVNSQU1fQkFTRSwgU1pfMjU2SywgMHg4MDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1ggKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDIsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAzLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKIAl0bGJ0YWJfZW5kCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL3RhaXNoYW4vbGNkLmMgYi9ib2FyZC9hbWNjL3RhaXNoYW4vbGNkLmMKaW5kZXggOGQyZGNlMy4uNjI0YWU0MCAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy90YWlzaGFuL2xjZC5jCisrKyBiL2JvYXJkL2FtY2MvdGFpc2hhbi9sY2QuYwpAQCAtMzEsOSArMzEsOSBAQAogCiAjZGVmaW5lIExDRF9ERUxBWV9OT1JNQUxfVVMJMTAwCiAjZGVmaW5lIExDRF9ERUxBWV9OT1JNQUxfTVMJMgotI2RlZmluZSBMQ0RfQ01EX0FERFIJCSgodm9sYXRpbGUgY2hhciAqKShDRkdfRUJDMl9MQ01fQkFTRSkpCi0jZGVmaW5lIExDRF9EQVRBX0FERFIJCSgodm9sYXRpbGUgY2hhciAqKShDRkdfRUJDMl9MQ01fQkFTRSsxKSkKLSNkZWZpbmUgTENEX0JMS19DVFJMCQkoKHZvbGF0aWxlIGNoYXIgKikoQ0ZHX0VCQzFfRlBHQV9CQVNFKzB4MikpCisjZGVmaW5lIExDRF9DTURfQUREUgkJKCh2b2xhdGlsZSBjaGFyICopKENPTkZJR19TWVNfRUJDMl9MQ01fQkFTRSkpCisjZGVmaW5lIExDRF9EQVRBX0FERFIJCSgodm9sYXRpbGUgY2hhciAqKShDT05GSUdfU1lTX0VCQzJfTENNX0JBU0UrMSkpCisjZGVmaW5lIExDRF9CTEtfQ1RSTAkJKCh2b2xhdGlsZSBjaGFyICopKENPTkZJR19TWVNfRUJDMV9GUEdBX0JBU0UrMHgyKSkKIAogI2RlZmluZSBtZGVsYXkodCkJKHt1bnNpZ25lZCBsb25nIG1zZWM9KHQpOyB3aGlsZSAobXNlYy0tKSB7IHVkZWxheSgxMDAwKTt9fSkKIApAQCAtMzU5LDcgKzM1OSw3IEBACiBzdGF0aWMgaW50IGRvX2xlZF90ZXN0X29mZihjbWRfdGJsX3QgKiBjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CiAJdm9sYXRpbGUgdW5zaWduZWQgaW50ICpHcGlvT3IgPQotCQkodm9sYXRpbGUgdW5zaWduZWQgaW50ICopKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDcwMCk7CisJCSh2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDcwMCk7CiAJKkdwaW9PciB8PSAweDAwMzAwMDAwOwogCXJldHVybiAwOwogfQpAQCAtMzY3LDcgKzM2Nyw3IEBACiBzdGF0aWMgaW50IGRvX2xlZF90ZXN0X29uKGNtZF90YmxfdCAqIGNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKIAl2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKkdwaW9PciA9Ci0JCSh2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4NzAwKTsKKwkJKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqKShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4NzAwKTsKIAkqR3Bpb09yICY9IH4weDAwMzAwMDAwOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy90YWlzaGFuL3RhaXNoYW4uYyBiL2JvYXJkL2FtY2MvdGFpc2hhbi90YWlzaGFuLmMKaW5kZXggY2Q0MzJjYi4uMjhiZGFiNSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy90YWlzaGFuL3RhaXNoYW4uYworKysgYi9ib2FyZC9hbWNjL3RhaXNoYW4vdGFpc2hhbi5jCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8cHBjNHh4X2VuZXQuaD4KICNpbmNsdWRlIDxuZXRkZXYuaD4KIAotI2lmZGVmIENGR19JTklUX1NIT1dfUkVTRVRfUkVHCisjaWZkZWYgQ09ORklHX1NZU19JTklUX1NIT1dfUkVTRVRfUkVHCiB2b2lkIHNob3dfcmVzZXRfcmVnKHZvaWQpOwogI2VuZGlmCiAKQEAgLTYzLDcgKzYzLDcgQEAKIAkgICAgICBFQkNfQlhBUF9USF9FTkNPREUoMykgfCBFQkNfQlhBUF9SRV9ESVNBQkxFRCB8CiAJICAgICAgRUJDX0JYQVBfQkVNX1dSSVRFT05MWSB8CiAJICAgICAgRUJDX0JYQVBfUEVOX0RJU0FCTEVEKTsKLQltdGViYyhwYjBjciwgRUJDX0JYQ1JfQkFTX0VOQ09ERShDRkdfRkxBU0hfQkFTRSkgfAorCW10ZWJjKHBiMGNyLCBFQkNfQlhDUl9CQVNfRU5DT0RFKENPTkZJR19TWVNfRkxBU0hfQkFTRSkgfAogCSAgICAgIEVCQ19CWENSX0JTXzY0TUIgfCBFQkNfQlhDUl9CVV9SV3xFQkNfQlhDUl9CV18zMkJJVCk7CiAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0xNzMsOSArMTczLDkgQEAKIAltdHNkcihzZHJfcGZjMSxyZWcpOwogCiAJLyogU2V0IEdQSU8gMTAgYW5kIDExIGFzIG91dHB1dCAqLwotCUdwaW9PZHIJPSAodm9sYXRpbGUgdW5zaWduZWQgaW50KikoQ0ZHX1BFUklQSEVSQUxfQkFTRSsweDcxOCk7Ci0JR3Bpb1RjciA9ICh2b2xhdGlsZSB1bnNpZ25lZCBpbnQqKShDRkdfUEVSSVBIRVJBTF9CQVNFKzB4NzA0KTsKLQlHcGlvT3IgID0gKHZvbGF0aWxlIHVuc2lnbmVkIGludCopKENGR19QRVJJUEhFUkFMX0JBU0UrMHg3MDApOworCUdwaW9PZHIJPSAodm9sYXRpbGUgdW5zaWduZWQgaW50KikoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UrMHg3MTgpOworCUdwaW9UY3IgPSAodm9sYXRpbGUgdW5zaWduZWQgaW50KikoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UrMHg3MDQpOworCUdwaW9PciAgPSAodm9sYXRpbGUgdW5zaWduZWQgaW50KikoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UrMHg3MDApOwogCiAJKkdwaW9PZHIgJj0gfigweDAwMzAwMDAwKTsKIAkqR3Bpb1RjciB8PSAweDAwMzAwMDAwOwpAQCAtMjAyLDcgKzIwMiw3IEBACiAJfQogCXB1dGMgKCdcbicpOwogCi0jaWZkZWYgQ0ZHX0lOSVRfU0hPV19SRVNFVF9SRUcKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfU0hPV19SRVNFVF9SRUcKIAlzaG93X3Jlc2V0X3JlZygpOwogI2VuZGlmCiAKQEAgLTI0OCw3ICsyNDgsNyBAQAogICoJbWF5IG5vdCBiZSBzdWZmaWNpZW50IGZvciBhIGdpdmVuIGJvYXJkLgogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogdm9pZCBwY2lfdGFyZ2V0X2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICogaG9zZSApCiB7CiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKQEAgLTI2Myw3ICsyNjMsNyBAQAogCSAqIE1hcCBhbGwgb2YgU0RSQU0gdG8gUENJIGFkZHJlc3MgMHgwMDAwXzAwMDAuIE5vdGUgdGhhdCB0aGUgNDQwIHN0cmFwcGluZwogCSAqIG9wdGlvbnMgdG8gbm90IHN1cHBvcnQgc2l6ZXMgc3VjaCBhcyAxMjgvMjU2IE1CLgogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDMyciggUENJWDBfUElNMExBTCwgQ0ZHX1NEUkFNX0JBU0UgKTsKKwlvdXQzMnIoIFBDSVgwX1BJTTBMQUwsIENPTkZJR19TWVNfU0RSQU1fQkFTRSApOwogCW91dDMyciggUENJWDBfUElNMExBSCwgMCApOwogCW91dDMyciggUENJWDBfUElNMFNBLCB+KGdkLT5yYW1fc2l6ZSAtIDEpIHwgMSApOwogCkBAIC0yNzIsMTIgKzI3MiwxMiBAQAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAJICogUHJvZ3JhbSB0aGUgYm9hcmQncyBzdWJzeXN0ZW0gaWQvdmVuZG9yIGlkCiAJICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0Jb3V0MTZyKCBQQ0lYMF9TQlNZU1ZJRCwgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgKTsKLQlvdXQxNnIoIFBDSVgwX1NCU1lTSUQsIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEICk7CisJb3V0MTZyKCBQQ0lYMF9TQlNZU1ZJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEICk7CisJb3V0MTZyKCBQQ0lYMF9TQlNZU0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgKTsKIAogCW91dDE2ciggUENJWDBfQ01ELCBpbjE2cihQQ0lYMF9DTUQpIHwgUENJX0NPTU1BTkRfTUVNT1JZICk7CiB9Ci0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKSAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogIGlzX3BjaV9ob3N0CmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL3RhaXNoYW4vdXBkYXRlLmMgYi9ib2FyZC9hbWNjL3RhaXNoYW4vdXBkYXRlLmMKaW5kZXggZWQyYzE5Ni4uOTZiOTE4YiAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy90YWlzaGFuL3VwZGF0ZS5jCisrKyBiL2JvYXJkL2FtY2MvdGFpc2hhbi91cGRhdGUuYwpAQCAtNTEsNyArNTEsNyBAQAogc3RhdGljIGludCB1cGRhdGVfYm9vdF9lZXByb20odm9pZCkKIHsKIAl1bG9uZyBsZW4gPSAweDEwOwotCXVjaGFyIGNoaXAgPSBDRkdfQk9PVFNUUkFQX0lJQ19BRERSOworCXVjaGFyIGNoaXAgPSBDT05GSUdfU1lTX0JPT1RTVFJBUF9JSUNfQUREUjsKIAl1Y2hhciAqcGJ1ZiA9ICh1Y2hhciAqKWJvb3RzdHJhcF9idWY7CiAJaW50IGlpLCBqajsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy93YWxudXQvZmxhc2guYyBiL2JvYXJkL2FtY2Mvd2FsbnV0L2ZsYXNoLmMKaW5kZXggZmU2Y2E2Yy4uZDM2MzU2NCAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy93YWxudXQvZmxhc2guYworKysgYi9ib2FyZC9hbWNjL3dhbG51dC9mbGFzaC5jCkBAIC01OCw3ICs1OCw3IEBACiAJdW5zaWduZWQgbG9uZyBiYXNlX2IwLCBiYXNlX2IxOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTczLDE0ICs3MywxNCBAQAogCX0KIAogCS8qIE9ubHkgb25lIGJhbmsgKi8KLQlpZiAoQ0ZHX01BWF9GTEFTSF9CQU5LUyA9PSAxKSB7CisJaWYgKENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID09IDEpIHsKIAkJLyogU2V0dXAgb2Zmc2V0cyAqLwogCQlmbGFzaF9nZXRfb2Zmc2V0cyhGTEFTSF9CQVNFMF9QUkVMSU0sICZmbGFzaF9pbmZvWzBdKTsKIAogCQkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkJICAgIENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4gLSAxLAorCQkJCSAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQkgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOIC0gMSwKIAkJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfRU5WX0FERFIsCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL3lvc2VtaXRlL2NvbmZpZy5tayBiL2JvYXJkL2FtY2MveW9zZW1pdGUvY29uZmlnLm1rCmluZGV4IDRhYjBlYTAuLmRmNTQ2NmUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MveW9zZW1pdGUvY29uZmlnLm1rCisrKyBiL2JvYXJkL2FtY2MveW9zZW1pdGUvY29uZmlnLm1rCkBAIC00MCw1ICs0MCw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy95b3NlbWl0ZS9pbml0LlMgYi9ib2FyZC9hbWNjL3lvc2VtaXRlL2luaXQuUwppbmRleCA0MjVhZDA4Li5mOTM4MjM2IDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL3lvc2VtaXRlL2luaXQuUworKysgYi9ib2FyZC9hbWNjL3lvc2VtaXRlL2luaXQuUwpAQCAtOTEsMjIgKzkxLDIyIEBACiAgICAgICogQk9PVF9DUyAoRkxBU0gpIG11c3QgYmUgZmlyc3QuIEJlZm9yZSByZWxvY2F0aW9uIFNBX0kgY2FuIGJlIG9mZiB0byB1c2UgdGhlCiAgICAgICogc3BlZWQgdXAgYm9vdCBwcm9jZXNzLiBJdCBpcyBwYXRjaGVkIGFmdGVyIHJlbG9jYXRpb24gdG8gZW5hYmxlIFNBX0kKICAgICAgKi8KLSAgICB0bGJlbnRyeSggQ0ZHX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNLCBDRkdfQk9PVF9CQVNFX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cvKnxTQV9JKi8pCisgICAgdGxiZW50cnkoIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0sIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cvKnxTQV9JKi8pCiAKICAgICAvKiBUTEItZW50cnkgZm9yIGluaXQtcmFtIGluIGRjYWNoZSAoU0FfSSBtdXN0IGJlIHR1cm5lZCBvZmYhKSAqLwotICAgIHRsYmVudHJ5KCBDRkdfSU5JVF9SQU1fQUREUiwgU1pfNjRLLCBDRkdfSU5JVF9SQU1fQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRyApCisgICAgdGxiZW50cnkoIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgU1pfNjRLLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQogCi0gICAgdGxiZW50cnkoIENGR19TRFJBTV9CQVNFLCBTWl8yNTZNLCBDRkdfU0RSQU1fQkFTRSwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKLSAgICB0bGJlbnRyeSggQ0ZHX1BDSV9CQVNFLCBTWl8yNTZNLCBDRkdfUENJX0JBU0UsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotICAgIHRsYmVudHJ5KCBDRkdfTlZSQU1fQkFTRV9BRERSLCBTWl8yNTZNLCBDRkdfTlZSQU1fQkFTRV9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9XfFNBX0kgKQorICAgIHRsYmVudHJ5KCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKyAgICB0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfQkFTRSwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfQkFTRSwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisgICAgdGxiZW50cnkoIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSLCBTWl8yNTZNLCBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfV3xTQV9JICkKIAogICAgIC8qIFBDSSAqLwotICAgIHRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRSwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0gICAgdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRTEsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRTEsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotICAgIHRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UyLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UyLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKLSAgICB0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFMywgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFMywgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisgICAgdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorICAgIHRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorICAgIHRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorICAgIHRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMywgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTMsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCiAgICAgLyogVVNCIDIuMCBEZXZpY2UgKi8KLSAgICB0bGJlbnRyeSggQ0ZHX1VTQl9ERVZJQ0UsIFNaXzFLLCAweDUwMDAwMDAwLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKyAgICB0bGJlbnRyeSggQ09ORklHX1NZU19VU0JfREVWSUNFLCBTWl8xSywgMHg1MDAwMDAwMCwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCiAKICAgICB0bGJ0YWJfZW5kCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL3lvc2VtaXRlL3lvc2VtaXRlLmMgYi9ib2FyZC9hbWNjL3lvc2VtaXRlL3lvc2VtaXRlLmMKaW5kZXggMDViZTQwYS4uMzk4Mjg5NiAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy95b3NlbWl0ZS95b3NlbWl0ZS5jCisrKyBiL2JvYXJkL2FtY2MveW9zZW1pdGUveW9zZW1pdGUuYwpAQCAtMzEsNyArMzEsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZih2b2lkKQogewpAQCAtMTA3LDE4ICsxMDcsMTggQEAKIAltdHNkcihzZHJfcGZjMSwgMHgwMDA0ODAwMCk7CS8qIFBpbiBmdW5jdGlvbjogVUFSVDAgaGFzIDQgcGlucyAqLwogCiAJLypjbGVhciB0bXJjbGsgZGl2aXNvciAqLwotCSoodW5zaWduZWQgY2hhciAqKShDRkdfQkNTUl9CQVNFIHwgMHgwNCkgPSAweDAwOworCSoodW5zaWduZWQgY2hhciAqKShDT05GSUdfU1lTX0JDU1JfQkFTRSB8IDB4MDQpID0gMHgwMDsKIAogCS8qZW5hYmxlIGV0aGVybmV0ICovCi0JKih1bnNpZ25lZCBjaGFyICopKENGR19CQ1NSX0JBU0UgfCAweDA4KSA9IDB4ZjA7CisJKih1bnNpZ25lZCBjaGFyICopKENPTkZJR19TWVNfQkNTUl9CQVNFIHwgMHgwOCkgPSAweGYwOwogCiAjaWZkZWYgQ09ORklHXzQ0MEVQCiAJLyplbmFibGUgdXNiIDEuMSBmcyBkZXZpY2UgYW5kIHJlbW92ZSB1c2IgMi4wIHJlc2V0ICovCi0JKih1bnNpZ25lZCBjaGFyICopKENGR19CQ1NSX0JBU0UgfCAweDA5KSA9IDB4MDA7CisJKih1bnNpZ25lZCBjaGFyICopKENPTkZJR19TWVNfQkNTUl9CQVNFIHwgMHgwOSkgPSAweDAwOwogI2VuZGlmCiAKIAkvKmdldCByaWQgb2YgZmxhc2ggd3JpdGUgcHJvdGVjdCAqLwotCSoodW5zaWduZWQgY2hhciAqKShDRkdfQkNTUl9CQVNFIHwgMHgwNykgPSAweDAwOworCSoodW5zaWduZWQgY2hhciAqKShDT05GSUdfU1lTX0JDU1JfQkFTRSB8IDB4MDcpID0gMHgwMDsKIAogCXJldHVybiAwOwogfQpAQCAtMTY3LDcgKzE2Nyw3IEBACiAKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAtQ0ZHX01PTklUT1JfTEVOLAorCQkJICAgIC1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJICAgIDB4ZmZmZmZmZmYsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogCkBAIC0xODYsOCArMTg2LDggQEAKIAlwcmludGYoIkJvYXJkOiBZZWxsb3dzdG9uZSAtIEFNQ0MgUFBDNDQwR1IgRXZhbHVhdGlvbiBCb2FyZCIpOwogI2VuZGlmCiAKLQlyZXYgPSBpbl84KCh2b2lkICopKENGR19CQ1NSX0JBU0UgKyAwKSk7Ci0JdmFsID0gaW5fOCgodm9pZCAqKShDRkdfQkNTUl9CQVNFICsgNSkpICYgQ0ZHX0JDU1I1X1BDSTY2RU47CisJcmV2ID0gaW5fOCgodm9pZCAqKShDT05GSUdfU1lTX0JDU1JfQkFTRSArIDApKTsKKwl2YWwgPSBpbl84KCh2b2lkICopKENPTkZJR19TWVNfQkNTUl9CQVNFICsgNSkpICYgQ09ORklHX1NZU19CQ1NSNV9QQ0k2NkVOOwogCXByaW50ZigiLCBSZXYuICVYLCBQQ0k9JWQgTUh6IiwgcmV2LCB2YWwgPyA2NiA6IDMzKTsKIAogCWlmIChzICE9IE5VTEwpIHsKQEAgLTMyOSw3ICszMjksNyBAQAogCXNkcmFtX3RyMV9zZXQoMHgwODAwMDAwMCwgJnRyMV9iYW5rMik7CiAJbXRzZHJhbShtZW1fdHIxLCAoKCh0cjFfYmFuazErdHIxX2JhbmsyKS8yKSB8IDB4ODA4MDA4MDApKTsKIAotCXJldHVybiBDRkdfU0RSQU1fQkFOS1MgKiAoQ0ZHX0tCWVRFU19TRFJBTSAqIDEwMjQpOwkvKiByZXR1cm4gYnl0ZXMgKi8KKwlyZXR1cm4gQ09ORklHX1NZU19TRFJBTV9CQU5LUyAqIChDT05GSUdfU1lTX0tCWVRFU19TRFJBTSAqIDEwMjQpOwkvKiByZXR1cm4gYnl0ZXMgKi8KIH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTM5NSw3ICszOTUsNyBAQAogICoJbWF5IG5vdCBiZSBzdWZmaWNpZW50IGZvciBhIGdpdmVuIGJvYXJkLgogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogdm9pZCBwY2lfdGFyZ2V0X2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC00MDksMTQgKzQwOSwxNCBAQAogCSAgfCBNYWtlIHRoaXMgcmVnaW9uIG5vbi1wcmVmZXRjaGFibGUuCiAJICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCW91dDMycihQQ0lYMF9QTU0wTUEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIE1hc2svQXR0cmlidXRlIC0gZGlzYWJsZWQgYjQgc2V0dGluZyAqLwotCW91dDMycihQQ0lYMF9QTU0wTEEsIENGR19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLwotCW91dDMycihQQ0lYMF9QTU0wUENJTEEsIENGR19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTBMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0wUENJTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UpOwkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0wUENJSEEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIFBDSSBIaWdoIEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NME1BLCAweEUwMDAwMDAxKTsJLyogNTEyTSArIE5vIHByZWZldGNoaW5nLCBhbmQgZW5hYmxlIHJlZ2lvbiAqLwogCiAJb3V0MzJyKFBDSVgwX1BNTTFNQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgTWFzay9BdHRyaWJ1dGUgLSBkaXNhYmxlZCBiNCBzZXR0aW5nICovCi0Jb3V0MzJyKFBDSVgwX1BNTTFMQSwgQ0ZHX1BDSV9NRU1CQVNFMik7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLwotCW91dDMycihQQ0lYMF9QTU0xUENJTEEsIENGR19QQ0lfTUVNQkFTRTIpOwkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0xTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UyKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTFQQ0lMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIpOwkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0xUENJSEEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIFBDSSBIaWdoIEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMU1BLCAweEUwMDAwMDAxKTsJLyogNTEyTSArIE5vIHByZWZldGNoaW5nLCBhbmQgZW5hYmxlIHJlZ2lvbiAqLwogCkBAIC00MzEsOCArNDMxLDggQEAKIAogCS8qIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL3ZlbmRvciBpZCAqLwogCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX1ZFTkRPUl9JRCwKLQkJCSAgICAgIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKLQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX1NVQlNZU1RFTV9JRCwgQ0ZHX1BDSV9TVUJTWVNfSUQpOworCQkJICAgICAgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKKwlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX1NVQlNZU1RFTV9JRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0lEKTsKIAogCS8qIENvbmZpZ3VyZSBjb21tYW5kIHJlZ2lzdGVyIGFzIGJ1cyBtYXN0ZXIgKi8KIAlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX0NPTU1BTkQsIFBDSV9DT01NQU5EX01BU1RFUik7CkBAIC00NDYsMTMgKzQ0NiwxMyBAQAogCXBjaV93cml0ZV9jb25maWdfZHdvcmQoMCwgUENJX0JSREdPUFQyLCAweDAwMDAwMTAxKTsKIAogfQotI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKSAqLworI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICBwY2lfbWFzdGVyX2luaXQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX01BU1RFUl9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVCkKIHZvaWQgcGNpX21hc3Rlcl9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSkKIHsKIAl1bnNpZ25lZCBzaG9ydCB0ZW1wX3Nob3J0OwpAQCAtNDY3LDcgKzQ2Nyw3IEBACiAJCQkgICAgICB0ZW1wX3Nob3J0IHwgUENJX0NPTU1BTkRfTUFTVEVSIHwKIAkJCSAgICAgIFBDSV9DT01NQU5EX01FTU9SWSk7CiB9Ci0jZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfTUFTVEVSX0lOSVQpICovCisjZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUKSAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogIGlzX3BjaV9ob3N0CkBAIC01MDgsNSArNTA4LDUgQEAKIHZvaWQgYm9hcmRfcmVzZXQodm9pZCkKIHsKIAkvKiBnaXZlIHJlc2V0IHRvIEJDU1IgKi8KLQkqKHVuc2lnbmVkIGNoYXIgKikoQ0ZHX0JDU1JfQkFTRSB8IDB4MDYpID0gMHgwOTsKKwkqKHVuc2lnbmVkIGNoYXIgKikoQ09ORklHX1NZU19CQ1NSX0JBU0UgfCAweDA2KSA9IDB4MDk7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL3l1Y2NhL2NvbmZpZy5tayBiL2JvYXJkL2FtY2MveXVjY2EvY29uZmlnLm1rCmluZGV4IGZmNDU0ZWIuLjNjZTNjYzEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MveXVjY2EvY29uZmlnLm1rCisrKyBiL2JvYXJkL2FtY2MveXVjY2EvY29uZmlnLm1rCkBAIC0zOCw1ICszOCw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy95dWNjYS9mbGFzaC5jIGIvYm9hcmQvYW1jYy95dWNjYS9mbGFzaC5jCmluZGV4IGM0MDUzNDYuLmVkYTQ5ZWIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MveXVjY2EvZmxhc2guYworKysgYi9ib2FyZC9hbWNjL3l1Y2NhL2ZsYXNoLmMKQEAgLTQzLDEyICs0MywxMiBAQAogI2RlZmluZSBERUJVR0YoeC4uLikKICNlbmRpZgkJCQkvKiBERUJVRyAqLwogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogLyoKICAqIE1hcmsgYmlnIGZsYXNoIGJhbmsgKDE2IGJpdCBpbnN0ZWFkIG9mIDggYml0IGFjY2VzcykgaW4gYWRkcmVzcyB3aXRoIGJpdCAwCiAgKi8KLXN0YXRpYyB1bnNpZ25lZCBsb25nIGZsYXNoX2FkZHJfdGFibGVbXVtDRkdfTUFYX0ZMQVNIX0JBTktTXSA9IHsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGZsYXNoX2FkZHJfdGFibGVbXVtDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU10gPSB7CiAJezB4ZmZmMDAwMDAsIDB4ZmZmODAwMDAsIDB4ZTdjMDAwMDF9LCAvKiAwOmJvb3QgZnJvbSBzbWFsbCBmbGFzaCAqLwogCXsweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwfSwgLyogMTpib290IGZyb20gcGNpIDY2ICAgICAgKi8KIAl7MHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMH0sIC8qIDI6Ym9vdCBmcm9tIG5hbmQgZmxhc2ggICovCkBAIC02Nyw3ICs2Nyw3IEBACiAgKiBGdW5jdGlvbnMKICAqLwogc3RhdGljIGludCB3cml0ZV93b3JkKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpOwotI2lmZGVmIENGR19GTEFTSF8yTkRfMTZCSVRfREVWCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF8yTkRfMTZCSVRfREVWCiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfMShmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKTsKIHN0YXRpYyBpbnQgd3JpdGVfd29yZF8yKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpOwogc3RhdGljIGludCBmbGFzaF9lcmFzZV8xKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KTsKQEAgLTE5OCw3ICsxOTgsNyBAQAogLyoKICAqIFRoZSBmb2xsb3dpbmcgY29kZSBjYW5ub3QgYmUgcnVuIGZyb20gRkxBU0ghCiAgKi8KLSNpZmRlZiBDRkdfRkxBU0hfMk5EXzE2QklUX0RFVgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFVgogc3RhdGljIHVsb25nIGZsYXNoX2dldF9zaXplKHZ1X2xvbmcgKiBhZGRyLCBmbGFzaF9pbmZvX3QgKiBpbmZvKQogewogCS8qIGJpdCAwIHVzZWQgZm9yIGJpZyBmbGFzaCBtYXJraW5nICovCkBAIC0yMTQsMzIgKzIxNCwzMiBAQAogI2VuZGlmCiB7CiAJc2hvcnQgaTsKLQlDRkdfRkxBU0hfV09SRF9TSVpFIHZhbHVlOworCUNPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFIHZhbHVlOwogCXVsb25nIGJhc2UgPSAodWxvbmcpIGFkZHI7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBhZGRyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBhZGRyOwogCiAJREVCVUdGKCJGTEFTSCBBRERSOiAlMDh4XG4iLCAodW5zaWduZWQpYWRkcik7CiAKIAkvKiBXcml0ZSBhdXRvIHNlbGVjdCBjb21tYW5kOiByZWFkIE1hbnVmYWN0dXJlciBJRCAqLwotCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwOTAwMDkwOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwOTAwMDkwOwogCXVkZWxheSgxMDAwKTsKIAogCXZhbHVlID0gYWRkcjJbMF07CiAJREVCVUdGKCJGTEFTSCBNQU5VRkFDVDogJXhcbiIsIHZhbHVlKTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgogCQkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fQU1EOwogCQkJYnJlYWs7Ci0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEZVSl9NQU5VRkFDVDoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEZVSl9NQU5VRkFDVDoKIAkJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0ZVSjsKIAkJCWJyZWFrOwotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBTU1RfTUFOVUZBQ1Q6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBTU1RfTUFOVUZBQ1Q6CiAJCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9TU1Q7CiAJCQlicmVhazsKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgU1RNX01BTlVGQUNUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgU1RNX01BTlVGQUNUOgogCQkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fU1RNOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CkBAIC0yNTMsNjcgKzI1Myw2NyBAQAogCURFQlVHRigiXG5GTEFTSCBERVZJQ0VJRDogJXhcbiIsIHZhbHVlKTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMDQwQjoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjA0MEI6CiAJCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTA0MDsKIAkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDg7CiAJCQlpbmZvLT5zaXplID0gMHgwMDgwMDAwOwkvKiA9PiA1MTIga28gKi8KIAkJCWJyZWFrOwogCi0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9GMDQwQjoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9GMDQwQjoKIAkJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMDQwOwogCQkJaW5mby0+c2VjdG9yX2NvdW50ID0gODsKIAkJCWluZm8tPnNpemUgPSAweDAwODAwMDA7CS8qID0+IDUxMiBrbyAqLwogCQkJYnJlYWs7CiAKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgU1RNX0lEX00yOVcwNDBCOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgU1RNX0lEX00yOVcwNDBCOgogCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0wNDA7CiAJCQlpbmZvLT5zZWN0b3JfY291bnQgPSA4OwogCQkJaW5mby0+c2l6ZSA9IDB4MDA4MDAwMDsJLyogPT4gNTEyIGtvICovCiAJCQlicmVhazsKIAotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfRjAxNkQ6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfRjAxNkQ6CiAJCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTUQwMTY7CiAJCQlpbmZvLT5zZWN0b3JfY291bnQgPSAzMjsKIAkJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwogCQkJYnJlYWs7CQkvKiA9PiAyIE1CICAgICAgICAgICAgICAqLwogCi0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjAzM0M6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFYwMzNDOgogCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1ETFYwMzNDOwogCQkJaW5mby0+c2VjdG9yX2NvdW50ID0gNjQ7CiAJCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsKIAkJCWJyZWFrOwkJLyogPT4gNCBNQiAgICAgICAgICAgICAgKi8KIAotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY0MDBUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWNDAwVDoKIAkJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNNDAwVDsKIAkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDExOwogCQkJaW5mby0+c2l6ZSA9IDB4MDAwODAwMDA7CiAJCQlicmVhazsJCS8qID0+IDAuNSBNQiAgICAgICAgICAgICovCiAKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWNDAwQjoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjQwMEI6CiAJCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTQwMEI7CiAJCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxMTsKIAkJCWluZm8tPnNpemUgPSAweDAwMDgwMDAwOwogCQkJYnJlYWs7CQkvKiA9PiAwLjUgTUIgICAgICAgICAgICAqLwogCi0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjgwMFQ6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY4MDBUOgogCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU04MDBUOwogCQkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTk7CiAJCQlpbmZvLT5zaXplID0gMHgwMDEwMDAwMDsKIAkJCWJyZWFrOwkJLyogPT4gMSBNQiAgICAgICAgICAgICAgKi8KIAotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY4MDBCOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWODAwQjoKIAkJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNODAwQjsKIAkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDE5OwogCQkJaW5mby0+c2l6ZSA9IDB4MDAxMDAwMDA7CiAJCQlicmVhazsJCS8qID0+IDEgTUIgICAgICAgICAgICAgICovCiAKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMTYwVDoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjE2MFQ6CiAJCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTE2MFQ7CiAJCQlpbmZvLT5zZWN0b3JfY291bnQgPSAzNTsKIAkJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwogCQkJYnJlYWs7CQkvKiA9PiAyIE1CICAgICAgICAgICAgICAqLwogCi0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjE2MEI6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFYxNjBCOgogCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0xNjBCOwogCQkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCQlpbmZvLT5zaXplID0gMHgwMDIwMDAwMDsKQEAgLTM1NywxNCArMzU3LDE0IEBACiAJZm9yIChpID0gMDsgaSA8IGluZm8tPnNlY3Rvcl9jb3VudDsgaSsrKSB7CiAJCS8qIHJlYWQgc2VjdG9yIHByb3RlY3Rpb24gYXQgc2VjdG9yIGFkZHJlc3MsIChBNyAuLiBBMCkgPSAweDAyICovCiAJCS8qIEQwID0gMSBpZiBwcm90ZWN0ZWQgKi8KLQkJYWRkcjIgPSAodm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CisJCWFkZHIyID0gKHZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKIAogCQkvKiBGb3IgQU1EMjkwMzNDIGZsYXNoIHdlIG5lZWQgdG8gcmVzZW5kIHRoZSBjb21tYW5kIG9mICoKIAkJICogcmVhZGluZyBmbGFzaCBwcm90ZWN0aW9uIGZvciB1cHBlciA4IE1iIG9mIGZsYXNoICAgICAqLwogCQlpZiAoaSA9PSAzMikgewotCQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOwotCQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDU1NTU1NTU1OwotCQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDkwOTA5MDkwOworCQkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7CisJCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKKwkJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDkwOTA5MDkwOwogCQl9CiAKIAkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fU1NUKQpAQCAtMzc0LDcgKzM3NCw3IEBACiAJfQogCiAJLyogaXNzdWUgYmFuayByZXNldCB0byByZXR1cm4gdG8gcmVhZCBtb2RlICovCi0JYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsKKwlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsKIAogCXJldHVybiAoaW5mby0+c2l6ZSk7CiB9CkBAIC0zODIsMTQgKzM4MiwxNCBAQAogc3RhdGljIGludCB3YWl0X2Zvcl9EUTdfMShmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc2VjdCkKIHsKIAl1bG9uZyBzdGFydCwgbm93LCBsYXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPQotCQkoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0KKwkJKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAKIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAlsYXN0ID0gc3RhcnQ7Ci0Jd2hpbGUgKChhZGRyWzBdICYgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9Ci0JCQkoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwl3aGlsZSAoKGFkZHJbMF0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9CisJCQkoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAtMTsKIAkJfQpAQCAtNDAyLDcgKzQwMiw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfMk5EXzE2QklUX0RFVgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFVgogaW50IGZsYXNoX2VyYXNlKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KQogewogCWlmICgoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVFlQRU1BU0spID09IEZMQVNIX0FNMzIwQikgfHwKQEAgLTQyMCw4ICs0MjAsOCBAQAogaW50IGZsYXNoX2VyYXNlKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KQogI2VuZGlmCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CiAJaW50IGZsYWcsIHByb3QsIHNlY3QsIGxfc2VjdDsKIAlpbnQgaTsKIApAQCAtNDU3LDI0ICs0NTcsMjQgQEAKIAkvKiBTdGFydCBlcmFzZSBvbiB1bnByb3RlY3RlZCBzZWN0b3JzICovCiAJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdCA8PSBzX2xhc3Q7IHNlY3QrKykgewogCQlpZiAoaW5mby0+cHJvdGVjdFtzZWN0XSA9PSAwKSB7CS8qIG5vdCBwcm90ZWN0ZWQgKi8KLQkJCWFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwkJCWFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAKIAkJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkgewotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1MDAwNTA7CS8qIGJsb2NrIGVyYXNlICovCisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTAwMDUwOwkvKiBibG9jayBlcmFzZSAqLwogCQkJCWZvciAoaSA9IDA7IGkgPCA1MDsgaSsrKQogCQkJCQl1ZGVsYXkoMTAwMCk7CS8qIHdhaXQgMSBtcyAqLwogCQkJfSBlbHNlIHsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwMzAwMDMwOwkvKiBzZWN0b3IgZXJhc2UgKi8KKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDAzMDAwMzA7CS8qIHNlY3RvciBlcmFzZSAqLwogCQkJfQogCQkJbF9zZWN0ID0gc2VjdDsKIAkJCS8qCkBAIC00OTYsOCArNDk2LDggQEAKIAl1ZGVsYXkoMTAwMCk7CiAKIAkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgaW5mby0+c3RhcnRbMF07Ci0JYWRkclswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCisJYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBpbmZvLT5zdGFydFswXTsKKwlhZGRyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAKIAlwcmludGYoIiBkb25lXG4iKTsKIAlyZXR1cm4gMDsKQEAgLTU3Nyw3ICs1NzcsNyBAQAogICogMSAtIHdyaXRlIHRpbWVvdXQKICAqIDIgLSBGbGFzaCBub3QgZXJhc2VkCiAgKi8KLSNpZmRlZiBDRkdfRkxBU0hfMk5EXzE2QklUX0RFVgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFVgogc3RhdGljIGludCB3cml0ZV93b3JkKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpCiB7CiAJaWYgKCgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9UWVBFTUFTSykgPT0gRkxBU0hfQU0zMjBCKSB8fApAQCAtNTk1LDkgKzU5NSw5IEBACiBzdGF0aWMgaW50IHdyaXRlX3dvcmQoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSkKICNlbmRpZgogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAmIGRhdGE7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopICYgZGF0YTsKIAl1bG9uZyBzdGFydDsKIAlpbnQgaSwgZmxhZzsKIApAQCAtNjA1LDEzICs2MDUsMTMgQEAKIAlpZiAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIGRhdGEpICE9IGRhdGEpCiAJCXJldHVybiAoMik7CiAKLQlmb3IgKGkgPSAwOyBpIDwgNCAvIHNpemVvZihDRkdfRkxBU0hfV09SRF9TSVpFKTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IDQgLyBzaXplb2YoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpOyBpKyspIHsKIAkJLyogRGlzYWJsZSBpbnRlcnJ1cHRzIHdoaWNoIG1pZ2h0IGNhdXNlIGEgdGltZW91dCBoZXJlICovCiAJCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKIAotCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQTAwMEEwOworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQTAwMEEwOwogCiAJCWRlc3QyW2ldID0gZGF0YTJbaV07CiAKQEAgLTYyMSwxMCArNjIxLDEwIEBACiAKIAkJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCQlzdGFydCA9IGdldF90aW1lcigwKTsKLQkJd2hpbGUgKChkZXN0MltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQotCQkJCShkYXRhMltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSkgeworCQl3aGlsZSAoKGRlc3QyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQorCQkJCShkYXRhMltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKIAotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKQogCQkJCXJldHVybiAoMSk7CiAJCX0KIAl9CkBAIC02MzIsMTAgKzYzMiwxMCBAQAogCXJldHVybiAoMCk7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfMk5EXzE2QklUX0RFVgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFVgogCi0jdW5kZWYgIENGR19GTEFTSF9XT1JEX1NJWkUKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSB1bnNpZ25lZCBzaG9ydAorI3VuZGVmICBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSB1bnNpZ25lZCBzaG9ydAogCiAvKgogICogVGhlIGZvbGxvd2luZyBjb2RlIGNhbm5vdCBiZSBydW4gZnJvbSBGTEFTSCEKQEAgLTY0NCwzNyArNjQ0LDM3IEBACiB7CiAJc2hvcnQgaTsKIAlpbnQgbjsKLQlDRkdfRkxBU0hfV09SRF9TSVpFIHZhbHVlOworCUNPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFIHZhbHVlOwogCXVsb25nIGJhc2UgPSAodWxvbmcpIGFkZHI7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBhZGRyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBhZGRyOwogCiAJREVCVUdGKCJGTEFTSCBBRERSOiAlMDh4XG4iLCAodW5zaWduZWQpYWRkcik7CiAKIAkvKiBpc3N1ZSBiYW5rIHJlc2V0IHRvIHJldHVybiB0byByZWFkIG1vZGUgKi8KLQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOworCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwogCS8qIFdyaXRlIGF1dG8gc2VsZWN0IGNvbW1hbmQ6IHJlYWQgTWFudWZhY3R1cmVyIElEICovCi0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA5MDAwOTA7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA5MDAwOTA7CiAJdWRlbGF5KDEwMDApOwogCiAJdmFsdWUgPSBhZGRyMlswXTsKIAlERUJVR0YoIkZMQVNIIE1BTlVGQUNUOiAleFxuIiwgdmFsdWUpOwogCiAJc3dpdGNoICh2YWx1ZSkgewotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfTUFOVUZBQ1Q6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfTUFOVUZBQ1Q6CiAJCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9BTUQ7CiAJCQlicmVhazsKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgRlVKX01BTlVGQUNUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgRlVKX01BTlVGQUNUOgogCQkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fRlVKOwogCQkJYnJlYWs7Ci0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIFNTVF9NQU5VRkFDVDoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIFNTVF9NQU5VRkFDVDoKIAkJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX1NTVDsKIAkJCWJyZWFrOwotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBTVE1fTUFOVUZBQ1Q6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBTVE1fTUFOVUZBQ1Q6CiAJCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9TVE07CiAJCQlicmVhazsKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgTVhfTUFOVUZBQ1Q6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBNWF9NQU5VRkFDVDoKIAkJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX01YOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CkBAIC02ODgsMjIgKzY4OCwyMiBAQAogCURFQlVHRigiXG5GTEFTSCBERVZJQ0VJRDogJXhcbiIsIHZhbHVlKTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBUOgogCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0zMjBUOwogCQkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsKIAkJCWJyZWFrOwkvKiA9PiA0IE1CCSovCi0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwQjoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwQjoKIAkJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMzIwQjsKIAkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7CiAJCQlicmVhazsJLyogPT4gNCBNQgkqLwotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNUTV9JRF8yOVczMjBEVDoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1RNX0lEXzI5VzMyMERUOgogCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfU1RNVzMyMERUOwogCQkJaW5mby0+c2VjdG9yX2NvdW50ID0gNjc7CiAJCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsKIAkJCWJyZWFrOwkvKiA9PiA0IE1CCSovCi0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpTVhfSURfTFYzMjBUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlNWF9JRF9MVjMyMFQ6CiAJCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9NWExWMzIwVDsKIAkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7CkBAIC03ODIsMTQgKzc4MiwxNCBAQAogCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5zZWN0b3JfY291bnQ7IGkrKykgewogCQkvKiByZWFkIHNlY3RvciBwcm90ZWN0aW9uIGF0IHNlY3RvciBhZGRyZXNzLCAoQTcgLi4gQTApID0gMHgwMiAqLwogCQkvKiBEMCA9IDEgaWYgcHJvdGVjdGVkICovCi0JCWFkZHIyID0gKHZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOworCQlhZGRyMiA9ICh2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CiAKIAkJLyogRm9yIEFNRDI5MDMzQyBmbGFzaCB3ZSBuZWVkIHRvIHJlc2VuZCB0aGUgY29tbWFuZCBvZiAqCiAJCSAqIHJlYWRpbmcgZmxhc2ggcHJvdGVjdGlvbiBmb3IgdXBwZXIgOCBNYiBvZiBmbGFzaCAgICAgKi8KIAkJaWYgKGkgPT0gMzIpIHsKLQkJCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHhBQUFBQUFBQTsKLQkJCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKLQkJCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg5MDkwOTA5MDsKKwkJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOworCQkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7CisJCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg5MDkwOTA5MDsKIAkJfQogCiAJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkKQEAgLTc5OSw3ICs3OTksNyBAQAogCX0KIAogCS8qIGlzc3VlIGJhbmsgcmVzZXQgdG8gcmV0dXJuIHRvIHJlYWQgbW9kZSAqLwotCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBGMDAwRjA7CisJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBGMDAwRjA7CiAKIAlyZXR1cm4gKGluZm8tPnNpemUpOwogfQpAQCAtODA3LDE0ICs4MDcsMTQgQEAKIHN0YXRpYyBpbnQgd2FpdF9mb3JfRFE3XzIoZmxhc2hfaW5mb190ICogaW5mbywgaW50IHNlY3QpCiB7CiAJdWxvbmcgc3RhcnQsIG5vdywgbGFzdDsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyID0KLQkJKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9CisJCShDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOwogCiAJc3RhcnQgPSBnZXRfdGltZXIoMCk7CiAJbGFzdCA9IHN0YXJ0OwotCXdoaWxlICgoYWRkclswXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQotCQkJKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJd2hpbGUgKChhZGRyWzBdICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQorCQkJKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZigiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0KQEAgLTgyOSw4ICs4MjksOCBAQAogCiBzdGF0aWMgaW50IGZsYXNoX2VyYXNlXzIoZmxhc2hfaW5mb190ICogaW5mbywgaW50IHNfZmlyc3QsIGludCBzX2xhc3QpCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CiAJaW50IGZsYWcsIHByb3QsIHNlY3QsIGxfc2VjdDsKIAlpbnQgaTsKIApAQCAtODY2LDI0ICs4NjYsMjQgQEAKIAkvKiBTdGFydCBlcmFzZSBvbiB1bnByb3RlY3RlZCBzZWN0b3JzICovCiAJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdCA8PSBzX2xhc3Q7IHNlY3QrKykgewogCQlpZiAoaW5mby0+cHJvdGVjdFtzZWN0XSA9PSAwKSB7CS8qIG5vdCBwcm90ZWN0ZWQgKi8KLQkJCWFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwkJCWFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAKIAkJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkgewotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1MDAwNTA7CS8qIGJsb2NrIGVyYXNlICovCisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTAwMDUwOwkvKiBibG9jayBlcmFzZSAqLwogCQkJCWZvciAoaSA9IDA7IGkgPCA1MDsgaSsrKQogCQkJCQl1ZGVsYXkoMTAwMCk7CS8qIHdhaXQgMSBtcyAqLwogCQkJfSBlbHNlIHsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwMzAwMDMwOwkvKiBzZWN0b3IgZXJhc2UgKi8KKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDAzMDAwMzA7CS8qIHNlY3RvciBlcmFzZSAqLwogCQkJfQogCQkJbF9zZWN0ID0gc2VjdDsKIAkJCS8qCkBAIC05MDUsOCArOTA1LDggQEAKIAl1ZGVsYXkoMTAwMCk7CiAKIAkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgaW5mby0+c3RhcnRbMF07Ci0JYWRkclswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCisJYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBpbmZvLT5zdGFydFswXTsKKwlhZGRyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAKIAlwcmludGYoIiBkb25lXG4iKTsKIAlyZXR1cm4gMDsKQEAgLTkxNCw5ICs5MTQsOSBAQAogCiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfMihmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKQogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAmIGRhdGE7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopICYgZGF0YTsKIAl1bG9uZyBzdGFydDsKIAlpbnQgaTsKIApAQCAtOTI0LDE1ICs5MjQsMTUgQEAKIAlpZiAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIGRhdGEpICE9IGRhdGEpCiAJCXJldHVybiAoMik7CiAKLQlmb3IgKGkgPSAwOyBpIDwgNCAvIHNpemVvZihDRkdfRkxBU0hfV09SRF9TSVpFKTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IDQgLyBzaXplb2YoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpOyBpKyspIHsKIAkJaW50IGZsYWc7CiAKIAkJLyogRGlzYWJsZSBpbnRlcnJ1cHRzIHdoaWNoIG1pZ2h0IGNhdXNlIGEgdGltZW91dCBoZXJlICovCiAJCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKIAotCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQTAwMEEwOworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQTAwMEEwOwogCiAJCWRlc3QyW2ldID0gZGF0YTJbaV07CiAKQEAgLTk0MiwxNyArOTQyLDE3IEBACiAKIAkJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCQlzdGFydCA9IGdldF90aW1lcigwKTsKLQkJd2hpbGUgKChkZXN0MltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQotCQkJCShkYXRhMltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSkgeworCQl3aGlsZSAoKGRlc3QyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQorCQkJCShkYXRhMltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKIAotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKQogCQkJCXJldHVybiAoMSk7CiAJCX0KIAl9CiAKIAlyZXR1cm4gKDApOwogfQotI2VuZGlmIC8qIENGR19GTEFTSF8yTkRfMTZCSVRfREVWICovCisjZW5kaWYgLyogQ09ORklHX1NZU19GTEFTSF8yTkRfMTZCSVRfREVWICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtOTY2LDcgKzk2Niw3IEBACiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHRvdGFsX2IgPSAwOwotCXVuc2lnbmVkIGxvbmcgc2l6ZV9iW0NGR19NQVhfRkxBU0hfQkFOS1NdOworCXVuc2lnbmVkIGxvbmcgc2l6ZV9iW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAl1bnNpZ25lZCBzaG9ydCBpbmRleCA9IDA7CiAJaW50IGk7CiAJdW5zaWduZWQgbG9uZyB2YWw7CkBAIC0xMDExLDcgKzEwMTEsNyBAQAogCURFQlVHRigiRkxBU0g6IEluZGV4OiAlZFxuIiwgaW5kZXgpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSAtMTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gMDsKQEAgLTEwMzQsOCArMTAzNCw4IEBACiAJCX0KIAogCQkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwotCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENGR19NT05JVE9SX0JBU0UsCi0JCQkJICAgIENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4gLSAxLAorCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJCSAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gLSAxLAogCQkJCSAgICAmZmxhc2hfaW5mb1tpXSk7CiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENPTkZJR19FTlZfQUREUiwKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MveXVjY2EvaW5pdC5TIGIvYm9hcmQvYW1jYy95dWNjYS9pbml0LlMKaW5kZXggNjdlOGY4Zi4uOTMwOGZkYSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy95dWNjYS9pbml0LlMKKysrIGIvYm9hcmQvYW1jYy95dWNjYS9pbml0LlMKQEAgLTU5LDIzICs1OSwyMyBAQAogCSAqIHJvdXRpbmUuCiAJICovCiAKLQl0bGJlbnRyeShDRkdfSVNSQU1fQkFTRSwgU1pfMjU2SywgMHgwMDAwMDAwMCwgNCwgQUNfUnxBQ19XfEFDX1h8U0FfSSkKLQl0bGJlbnRyeShDRkdfRlBHQV9CQVNFLCBTWl8xSywgMHhFMjAwMDAwMCwgNCxBQ19SfEFDX1d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX0lTUkFNX0JBU0UsIFNaXzI1NkssIDB4MDAwMDAwMDAsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19GUEdBX0JBU0UsIFNaXzFLLCAweEUyMDAwMDAwLCA0LEFDX1J8QUNfV3xTQV9JKQogCi0JdGxiZW50cnkoQ0ZHX09QRVJfRkxBU0gsIFNaXzE2TSwgMHhFNzAwMDAwMCwgNCxBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BFUklQSEVSQUxfQkFTRSwgU1pfNEssIDB4RjAwMDAwMDAsIDQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19PUEVSX0ZMQVNILCBTWl8xNk0sIDB4RTcwMDAwMDAsIDQsQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFLCBTWl80SywgMHhGMDAwMDAwMCwgNCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAotCXRsYmVudHJ5KENGR19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgxMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFX01FTUJBU0UsIFNaXzI1Nk0sIDB4QjAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRV9CQVNFLCBTWl8xNkssIDB4MjAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgxMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRV9NRU1CQVNFLCBTWl8yNTZNLCAweEIwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFX0JBU0UsIFNaXzE2SywgMHgyMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCi0JdGxiZW50cnkoQ0ZHX1BDSUUwX0NGR0JBU0UsIFNaXzE2TSwgMHg0MDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMV9DRkdCQVNFLCBTWl8xNk0sIDB4ODAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTJfQ0ZHQkFTRSwgU1pfMTZNLCAweEMwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUwX1hDRkdCQVNFLCBTWl8xSywgMHg1MDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMV9YQ0ZHQkFTRSwgU1pfMUssIDB4OTAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTJfWENGR0JBU0UsIFNaXzFLLCAweEQwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMF9DRkdCQVNFLCBTWl8xNk0sIDB4NDAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUxX0NGR0JBU0UsIFNaXzE2TSwgMHg4MDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTJfQ0ZHQkFTRSwgU1pfMTZNLCAweEMwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMF9YQ0ZHQkFTRSwgU1pfMUssIDB4NTAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUxX1hDRkdCQVNFLCBTWl8xSywgMHg5MDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTJfWENGR0JBU0UsIFNaXzFLLCAweEQwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAJdGxidGFiX2VuZAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEwMiwyMCArMTAyLDIwIEBACiAJICogcm91dGluZS4KIAkgKi8KIAotCXRsYmVudHJ5KENGR19JU1JBTV9CQVNFLCBTWl8yNTZLLCAweDAwMDAwMDAwLCA0LCBBQ19SfEFDX1d8QUNfWHxTQV9JKQotCXRsYmVudHJ5KENGR19GUEdBX0JBU0UsIFNaXzFLLCAweEUyMDAwMDAwLCA0LEFDX1J8QUNfV3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfSVNSQU1fQkFTRSwgU1pfMjU2SywgMHgwMDAwMDAwMCwgNCwgQUNfUnxBQ19XfEFDX1h8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX0ZQR0FfQkFTRSwgU1pfMUssIDB4RTIwMDAwMDAsIDQsQUNfUnxBQ19XfFNBX0kpCiAKLQl0bGJlbnRyeShDRkdfT1BFUl9GTEFTSCwgU1pfMTZNLCAweEU3MDAwMDAwLCA0LEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUEVSSVBIRVJBTF9CQVNFLCBTWl80SywgMHhGMDAwMDAwMCwgNCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX09QRVJfRkxBU0gsIFNaXzE2TSwgMHhFNzAwMDAwMCwgNCxBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UsIFNaXzRLLCAweEYwMDAwMDAwLCA0LCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCi0JdGxiZW50cnkoQ0ZHX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAweDEwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUVfTUVNQkFTRSwgU1pfMjU2TSwgMHhCMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAweDEwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFX01FTUJBU0UsIFNaXzI1Nk0sIDB4QjAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAotCXRsYmVudHJ5KENGR19QQ0lFMF9DRkdCQVNFLCBTWl8xNk0sIDB4MDAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTFfQ0ZHQkFTRSwgU1pfMTZNLCAweDIwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUyX0NGR0JBU0UsIFNaXzE2TSwgMHg0MDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMF9YQ0ZHQkFTRSwgU1pfMUssIDB4MTAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTFfWENGR0JBU0UsIFNaXzFLLCAweDMwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUyX1hDRkdCQVNFLCBTWl8xSywgMHg1MDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTBfQ0ZHQkFTRSwgU1pfMTZNLCAweDAwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMV9DRkdCQVNFLCBTWl8xNk0sIDB4MjAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUyX0NGR0JBU0UsIFNaXzE2TSwgMHg0MDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTBfWENGR0JBU0UsIFNaXzFLLCAweDEwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMV9YQ0ZHQkFTRSwgU1pfMUssIDB4MzAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUyX1hDRkdCQVNFLCBTWl8xSywgMHg1MDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCXRsYnRhYl9lbmQKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MveXVjY2EveXVjY2EuYyBiL2JvYXJkL2FtY2MveXVjY2EveXVjY2EuYwppbmRleCBlMGMxMjY4Li5jODA1NTY4IDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL3l1Y2NhL3l1Y2NhLmMKKysrIGIvYm9hcmQvYW1jYy95dWNjYS95dWNjYS5jCkBAIC02MjYsNyArNjI2LDcgQEAKICAqCW1heSBub3QgYmUgc3VmZmljaWVudCBmb3IgYSBnaXZlbiBib2FyZC4KICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkKIHZvaWQgcGNpX3RhcmdldF9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqIGhvc2UgKQogewogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKQEAgLTY0MSw3ICs2NDEsNyBAQAogCSAqIE1hcCBhbGwgb2YgU0RSQU0gdG8gUENJIGFkZHJlc3MgMHgwMDAwXzAwMDAuIE5vdGUgdGhhdCB0aGUgNDQwCiAJICogc3RyYXBwaW5nIG9wdGlvbnMgdG8gbm90IHN1cHBvcnQgc2l6ZXMgc3VjaCBhcyAxMjgvMjU2IE1CLgogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0Jb3V0MzJyKCBQQ0lYMF9QSU0wTEFMLCBDRkdfU0RSQU1fQkFTRSApOworCW91dDMyciggUENJWDBfUElNMExBTCwgQ09ORklHX1NZU19TRFJBTV9CQVNFICk7CiAJb3V0MzJyKCBQQ0lYMF9QSU0wTEFILCAwICk7CiAJb3V0MzJyKCBQQ0lYMF9QSU0wU0EsIH4oZ2QtPnJhbV9zaXplIC0gMSkgfCAxICk7CiAJb3V0MzJyKCBQQ0lYMF9CQVIwLCAwICk7CkBAIC02NDksMTIgKzY0OSwxMiBAQAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAkgKiBQcm9ncmFtIHRoZSBib2FyZCdzIHN1YnN5c3RlbSBpZC92ZW5kb3IgaWQKIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDE2ciggUENJWDBfU0JTWVNWSUQsIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEICk7Ci0Jb3V0MTZyKCBQQ0lYMF9TQlNZU0lELCBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCApOworCW91dDE2ciggUENJWDBfU0JTWVNWSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCApOworCW91dDE2ciggUENJWDBfU0JTWVNJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEICk7CiAKIAlvdXQxNnIoIFBDSVgwX0NNRCwgaW4xNnIoUENJWDBfQ01EKSB8IFBDSV9DT01NQU5EX01FTU9SWSApOwogfQotI2VuZGlmCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKSAqLworI2VuZGlmCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC04NDMsOSArODQzLDkgQEAKIAogCQkvKiBzZXR1cCBtZW0gcmVzb3VyY2UgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQlDRkdfUENJRV9NRU1CQVNFICsgaSAqIENGR19QQ0lFX01FTVNJWkUsCi0JCQlDRkdfUENJRV9NRU1CQVNFICsgaSAqIENGR19QQ0lFX01FTVNJWkUsCi0JCQlDRkdfUENJRV9NRU1TSVpFLAorCQkJQ09ORklHX1NZU19QQ0lFX01FTUJBU0UgKyBpICogQ09ORklHX1NZU19QQ0lFX01FTVNJWkUsCisJCQlDT05GSUdfU1lTX1BDSUVfTUVNQkFTRSArIGkgKiBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSwKKwkJCUNPTkZJR19TWVNfUENJRV9NRU1TSVpFLAogCQkJUENJX1JFR0lPTl9NRU0pOwogCQlob3NlLT5yZWdpb25fY291bnQgPSAxOwogCQlwY2lfcmVnaXN0ZXJfaG9zZShob3NlKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2FtaXJpeC9hcDEwMDAvZmxhc2guYyBiL2JvYXJkL2FtaXJpeC9hcDEwMDAvZmxhc2guYwppbmRleCAxYTNiMjUyLi4xZTc0MmU1IDEwMDY0NAotLS0gYS9ib2FyZC9hbWlyaXgvYXAxMDAwL2ZsYXNoLmMKKysrIGIvYm9hcmQvYW1pcml4L2FwMTAwMC9mbGFzaC5jCkBAIC0xMTAsNyArMTEwLDcgQEAKIAogI2RlZmluZSBOVU1fRVJBU0VfUkVHSU9OUyA0CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTEzMCw3ICsxMzAsNyBAQAogCQkJCWNmaXdvcmRfdCBjd29yZCk7CiBzdGF0aWMgaW50IGZsYXNoX2Z1bGxfc3RhdHVzX2NoZWNrIChmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBzZWN0b3IsCiAJCQkJICAgIHVsb25nIHRvdXQsIGNoYXIgKnByb21wdCk7Ci0jaWZkZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIHN0YXRpYyBpbnQgZmxhc2hfd3JpdGVfY2ZpYnVmZmVyIChmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1Y2hhciAqIGNwLAogCQkJCSAgaW50IGxlbik7CiAjZW5kaWYKQEAgLTI3MCw3ICsyNzAsNyBAQAogCWZsYXNoX2luZm9bMF0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCWZsYXNoX2luZm9bMF0ucG9ydHdpZHRoID0gRkxBU0hfQ0ZJXzE2QklUOwogCWZsYXNoX2luZm9bMF0uY2hpcHdpZHRoID0gRkxBU0hfQ0ZJXzE2QklUOwotCXNpemUgKz0gZmxhc2hfaW5mb1swXS5zaXplID0gZmxhc2hfZ2V0X3NpemUgKENGR19QUk9HRkxBU0hfQkFTRSwgMCk7CisJc2l6ZSArPSBmbGFzaF9pbmZvWzBdLnNpemUgPSBmbGFzaF9nZXRfc2l6ZSAoQ09ORklHX1NZU19QUk9HRkxBU0hfQkFTRSwgMCk7CiAJaWYgKGZsYXNoX2luZm9bMF0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTikgewogCQlwcmludGYgKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgJWQgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwgMSwgZmxhc2hfaW5mb1swXS5zaXplLCBmbGFzaF9pbmZvWzBdLnNpemUgPDwgMjApOwogCX07CkBAIC0yNzgsNyArMjc4LDcgQEAKIAlmbGFzaF9pbmZvWzFdLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAlmbGFzaF9pbmZvWzFdLnBvcnR3aWR0aCA9IEZMQVNIX0NGSV84QklUOwogCWZsYXNoX2luZm9bMV0uY2hpcHdpZHRoID0gRkxBU0hfQ0ZJXzE2QklUOwotCXNpemUgKz0gZmxhc2hfaW5mb1sxXS5zaXplID0gZmxhc2hfZ2V0X3NpemUgKENGR19DT05GRkxBU0hfQkFTRSwgMSk7CisJc2l6ZSArPSBmbGFzaF9pbmZvWzFdLnNpemUgPSBmbGFzaF9nZXRfc2l6ZSAoQ09ORklHX1NZU19DT05GRkxBU0hfQkFTRSwgMSk7CiAJaWYgKGZsYXNoX2luZm9bMV0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTikgewogCQlwcmludGYgKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgJWQgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwgMiwgZmxhc2hfaW5mb1sxXS5zaXplLCBmbGFzaF9pbmZvWzFdLnNpemUgPDwgMjApOwogCX07CkBAIC0zOTgsNyArMzk4LDcgQEAKIAkJCXJldHVybiByYzsKIAkJd3AgPSBjcDsKIAl9Ci0jaWZkZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIAl3aGlsZSAoY250ID49IGluZm8tPnBvcnR3aWR0aCkgewogCQlpID0gaW5mby0+YnVmZmVyX3NpemUgPiBjbnQgPyBjbnQgOiBpbmZvLT5idWZmZXJfc2l6ZTsKIAkJaWYgKChyYyA9IGZsYXNoX3dyaXRlX2NmaWJ1ZmZlciAoaW5mbywgd3AsIHNyYywgaSkpICE9IEVSUl9PSykKQEAgLTQxOSw3ICs0MTksNyBAQAogCQl3cCArPSBpbmZvLT5wb3J0d2lkdGg7CiAJCWNudCAtPSBpbmZvLT5wb3J0d2lkdGg7CiAJfQotI2VuZGlmIC8qIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFICovCiAJaWYgKGNudCA9PSAwKSB7CiAJCXJldHVybiAoMCk7CiAJfQpAQCAtODI0LDcgKzgyNCw3IEBACiAJcmV0dXJuIGZsYXNoX2Z1bGxfc3RhdHVzX2NoZWNrIChpbmZvLCAwLCBpbmZvLT53cml0ZV90b3V0LCAid3JpdGUiKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAKIC8qIGxvb3AgdGhyb3VnaCB0aGUgc2VjdG9ycyBmcm9tIHRoZSBoaWdoZXN0IGFkZHJlc3MKICAqIHdoZW4gdGhlIHBhc3NlZCBhZGRyZXNzIGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gdGhlIHNlY3RvciBhZGRyZXNzCkBAIC05MDAsNCArOTAwLDQgQEAKIAlmbGFzaF93cml0ZV9jbWQgKGluZm8sIHNlY3RvciwgMCwgRkxBU0hfQ01EX0NMRUFSX1NUQVRVUyk7CiAJcmV0dXJuIHJldGNvZGU7CiB9Ci0jZW5kaWYgLyogQ0ZHX1VTRV9GTEFTSF9CVUZGRVJfV1JJVEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1VTRV9GTEFTSF9CVUZGRVJfV1JJVEUgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2FtaXJpeC9hcDEwMDAvcGNpLmMgYi9ib2FyZC9hbWlyaXgvYXAxMDAwL3BjaS5jCmluZGV4IGE2NDM2YWMuLmE5YjNmZDggMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtaXJpeC9hcDEwMDAvcGNpLmMKKysrIGIvYm9hcmQvYW1pcml4L2FwMTAwMC9wY2kuYwpAQCAtMjY3LDEwICsyNjcsMTAgQEAKIHN0YXRpYyBzdHJ1Y3QgcGNpX2NvbmZpZ190YWJsZSBhcDEwMDBfY29uZmlnX3RhYmxlW10gPSB7CiAjaWZkZWYgQ09ORklHX0FQMTAwMAogCXtQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELAotCSBQQ0lfQlVTIChDRkdfRVRIX0RFVl9GTiksIFBDSV9ERVYgKENGR19FVEhfREVWX0ZOKSwKLQkgUENJX0ZVTkMgKENGR19FVEhfREVWX0ZOKSwKKwkgUENJX0JVUyAoQ09ORklHX1NZU19FVEhfREVWX0ZOKSwgUENJX0RFViAoQ09ORklHX1NZU19FVEhfREVWX0ZOKSwKKwkgUENJX0ZVTkMgKENPTkZJR19TWVNfRVRIX0RFVl9GTiksCiAJIHBjaV9jZmdmdW5jX2NvbmZpZ19kZXZpY2UsCi0JIHtDRkdfRVRIX0lPQkFTRSwgQ0ZHX0VUSF9NRU1CQVNFLAorCSB7Q09ORklHX1NZU19FVEhfSU9CQVNFLCBDT05GSUdfU1lTX0VUSF9NRU1CQVNFLAogCSAgUENJX0NPTU1BTkRfSU8gfCBQQ0lfQ09NTUFORF9NRU1PUlkgfCBQQ0lfQ09NTUFORF9NQVNURVJ9fSwKICNlbmRpZgogCXt9CmRpZmYgLS1naXQgYS9ib2FyZC9hbWlyaXgvYXAxMDAwL3NlcmlhbC5jIGIvYm9hcmQvYW1pcml4L2FwMTAwMC9zZXJpYWwuYwppbmRleCA1MDhlODgwLi44NzAwM2JlIDEwMDY0NAotLS0gYS9ib2FyZC9hbWlyaXgvYXAxMDAwL3NlcmlhbC5jCisrKyBiL2JvYXJkL2FtaXJpeC9hcDEwMDAvc2VyaWFsLmMKQEAgLTMwLDE1ICszMCwxNSBAQAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKIGNvbnN0IE5TMTY1NTBfdCBDT01fUE9SVFNbXSA9Ci0JeyAoTlMxNjU1MF90KSBDRkdfTlMxNjU1MF9DT00xLCAoTlMxNjU1MF90KSBDRkdfTlMxNjU1MF9DT00yIH07CisJeyAoTlMxNjU1MF90KSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMSwgKE5TMTY1NTBfdCkgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIgfTsKIAotI3VuZGVmIENGR19EVUFSVF9DSEFOCi0jZGVmaW5lIENGR19EVUFSVF9DSEFOIGdDb21Qb3J0CisjdW5kZWYgQ09ORklHX1NZU19EVUFSVF9DSEFOCisjZGVmaW5lIENPTkZJR19TWVNfRFVBUlRfQ0hBTiBnQ29tUG9ydAogc3RhdGljIGludCBnQ29tUG9ydCA9IDA7CiAKIGludCBzZXJpYWxfaW5pdCAodm9pZCkKIHsKLQlpbnQgY2xvY2tfZGl2aXNvciA9IENGR19OUzE2NTUwX0NMSyAvIDE2IC8gZ2QtPmJhdWRyYXRlOworCWludCBjbG9ja19kaXZpc29yID0gQ09ORklHX1NZU19OUzE2NTUwX0NMSyAvIDE2IC8gZ2QtPmJhdWRyYXRlOwogCiAJKHZvaWQpIE5TMTY1NTBfaW5pdCAoQ09NX1BPUlRTWzBdLCBjbG9ja19kaXZpc29yKTsKIAlnQ29tUG9ydCA9IDA7CkBAIC00OSwzMCArNDksMzAgQEAKIHZvaWQgc2VyaWFsX3B1dGMgKGNvbnN0IGNoYXIgYykKIHsKIAlpZiAoYyA9PSAnXG4nKSB7Ci0JCU5TMTY1NTBfcHV0YyAoQ09NX1BPUlRTW0NGR19EVUFSVF9DSEFOXSwgJ1xyJyk7CisJCU5TMTY1NTBfcHV0YyAoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0sICdccicpOwogCX0KIAotCU5TMTY1NTBfcHV0YyAoQ09NX1BPUlRTW0NGR19EVUFSVF9DSEFOXSwgYyk7CisJTlMxNjU1MF9wdXRjIChDT01fUE9SVFNbQ09ORklHX1NZU19EVUFSVF9DSEFOXSwgYyk7CiB9CiAKIGludCBzZXJpYWxfZ2V0YyAodm9pZCkKIHsKLQlyZXR1cm4gTlMxNjU1MF9nZXRjIChDT01fUE9SVFNbQ0ZHX0RVQVJUX0NIQU5dKTsKKwlyZXR1cm4gTlMxNjU1MF9nZXRjIChDT01fUE9SVFNbQ09ORklHX1NZU19EVUFSVF9DSEFOXSk7CiB9CiAKIGludCBzZXJpYWxfdHN0YyAodm9pZCkKIHsKLQlyZXR1cm4gTlMxNjU1MF90c3RjIChDT01fUE9SVFNbQ0ZHX0RVQVJUX0NIQU5dKTsKKwlyZXR1cm4gTlMxNjU1MF90c3RjIChDT01fUE9SVFNbQ09ORklHX1NZU19EVUFSVF9DSEFOXSk7CiB9CiAKIHZvaWQgc2VyaWFsX3NldGJyZyAodm9pZCkKIHsKLQlpbnQgY2xvY2tfZGl2aXNvciA9IENGR19OUzE2NTUwX0NMSyAvIDE2IC8gZ2QtPmJhdWRyYXRlOworCWludCBjbG9ja19kaXZpc29yID0gQ09ORklHX1NZU19OUzE2NTUwX0NMSyAvIDE2IC8gZ2QtPmJhdWRyYXRlOwogCi0jaWZkZWYgQ0ZHX0lOSVRfQ0hBTjEKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfQ0hBTjEKIAlOUzE2NTUwX3JlaW5pdCAoQ09NX1BPUlRTWzBdLCBjbG9ja19kaXZpc29yKTsKICNlbmRpZgotI2lmZGVmIENGR19JTklUX0NIQU4yCisjaWZkZWYgQ09ORklHX1NZU19JTklUX0NIQU4yCiAJTlMxNjU1MF9yZWluaXQgKENPTV9QT1JUU1sxXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2FwMzI1cnhhL2FwMzI1cnhhLmMgYi9ib2FyZC9hcDMyNXJ4YS9hcDMyNXJ4YS5jCmluZGV4IGNmYTAyNjEuLjlmMTExMmEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FwMzI1cnhhL2FwMzI1cnhhLmMKKysrIGIvYm9hcmQvYXAzMjVyeGEvYXAzMjVyeGEuYwpAQCAtMTQ0LDkgKzE0NCw5IEBACiB7CiAJREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLQlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ0ZHX1NEUkFNX0JBU0U7Ci0JZ2QtPmJkLT5iaV9tZW1zaXplID0gQ0ZHX1NEUkFNX1NJWkU7Ci0JcHJpbnRmKCJEUkFNOiAgJWRNQlxuIiwgQ0ZHX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKKwlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRTsKKwlwcmludGYoIkRSQU06ICAlZE1CXG4iLCBDT05GSUdfU1lTX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvYXBvbGxvbi9hcG9sbG9uLmMgYi9ib2FyZC9hcG9sbG9uL2Fwb2xsb24uYwppbmRleCA4ZWZhNzAzLi44OTY0ZWJhIDEwMDY0NAotLS0gYS9ib2FyZC9hcG9sbG9uL2Fwb2xsb24uYworKysgYi9ib2FyZC9hcG9sbG9uL2Fwb2xsb24uYwpAQCAtMjQ1LDcgKzI0NSw3IEBACiAJX19yYXdfd3JpdGVsKHYsIENNX0NMS1NFTDJfQ09SRSk7CiAJX19yYXdfd3JpdGVsKDB4MSwgQ01fQ0xLU0VMX1dLVVApOwogCi0jaWZkZWYgQ0ZHX05TMTY1NTAKKyNpZmRlZiBDT05GSUdfU1lTX05TMTY1NTAKIAkvKiBFbmFibGUgVUFSVDEgY2xvY2sgKi8KIAlmdW5jX2Nsa3MgfD0gQklUMjE7CiAJaWZfY2xrcyB8PSBCSVQyMTsKZGlmZiAtLWdpdCBhL2JvYXJkL2Fwb2xsb24vbG93bGV2ZWxfaW5pdC5TIGIvYm9hcmQvYXBvbGxvbi9sb3dsZXZlbF9pbml0LlMKaW5kZXggODM4MWZlYS4uNjQ1NTBmNiAxMDA2NDQKLS0tIGEvYm9hcmQvYXBvbGxvbi9sb3dsZXZlbF9pbml0LlMKKysrIGIvYm9hcmQvYXBvbGxvbi9sb3dsZXZlbF9pbml0LlMKQEAgLTUxLDcgKzUxLDcgQEAKIC5nbG9ibCBsb3dsZXZlbF9pbml0CiBsb3dsZXZlbF9pbml0OgogCi0jaWZkZWYgQ0ZHX05PUl9CT09UCisjaWZkZWYgQ09ORklHX1NZU19OT1JfQk9PVAogCS8qIENoZWNrIHJ1bm5pbmcgaW4gU0RSQU0gKi8KIAltb3YJcjAsIHBjLCBsc3IgIzI4CiAJY21wCXIwLCAjOApkaWZmIC0tZ2l0IGEvYm9hcmQvYXBvbGxvbi9tZW0uYyBiL2JvYXJkL2Fwb2xsb24vbWVtLmMKaW5kZXggMDIxMWM2YS4uMzZiZjZlOSAxMDA2NDQKLS0tIGEvYm9hcmQvYXBvbGxvbi9tZW0uYworKysgYi9ib2FyZC9hcG9sbG9uL21lbS5jCkBAIC0xNDYsNyArMTQ2LDcgQEAKIAlfX3Jhd193cml0ZWwoMHgxMCwgR1BNQ19TWVNDT05GSUcpOwkvKiBzbWFydCBpZGxlICovCiAJX19yYXdfd3JpdGVsKDB4MCwgR1BNQ19JUlFFTkFCTEUpOwkvKiBpc3IncyBzb3VyY2VzIG1hc2tlZCAqLwogCV9fcmF3X3dyaXRlbCh0dmFsLCBHUE1DX1RJTUVPVVRfQ09OVFJPTCk7CS8qIHRpbWVvdXQgZGlzYWJsZSAqLwotI2lmZGVmIENGR19OQU5EX0JPT1QKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfQk9PVAogCS8qIHNldCBuV1AsIGRpc2FibGUgbGltaXRlZCBhZGRyICovCiAJX19yYXdfd3JpdGVsKDB4MDAxLCBHUE1DX0NPTkZJRyk7CiAjZWxzZQpAQCAtMTY0LDcgKzE2NCw3IEBACiAJX19yYXdfd3JpdGVsKDB4MCwgR1BNQ19DT05GSUc3XzApOwkvKiBkaXNhYmxlIGN1cnJlbnQgbWFwICovCiAJc2RlbGF5KDEwMDApOwogCi0jaWZkZWYgQ0ZHX05PUl9CT09UCisjaWZkZWYgQ09ORklHX1NZU19OT1JfQk9PVAogCV9fcmF3X3dyaXRlbChBUE9MTE9OXzI0WFhfR1BNQ19DT05GSUcxXzMsIEdQTUNfQ09ORklHMV8wKTsKIAlfX3Jhd193cml0ZWwoQVBPTExPTl8yNFhYX0dQTUNfQ09ORklHMl8zLCBHUE1DX0NPTkZJRzJfMCk7CiAJX19yYXdfd3JpdGVsKEFQT0xMT05fMjRYWF9HUE1DX0NPTkZJRzNfMywgR1BNQ19DT05GSUczXzApOwpAQCAtMjA4LDEzICsyMDgsMTMgQEAKIAlfX3Jhd193cml0ZWwoQVBPTExPTl8yNFhYX0dQTUNfQ09ORklHNF8wLCBHUE1DX0NPTkZJRzRfMik7CiAJX19yYXdfd3JpdGVsKEFQT0xMT05fMjRYWF9HUE1DX0NPTkZJRzVfMCwgR1BNQ19DT05GSUc1XzIpOwogCV9fcmF3X3dyaXRlbChBUE9MTE9OXzI0WFhfR1BNQ19DT05GSUc2XzAsIEdQTUNfQ09ORklHNl8yKTsKLSNpZmRlZiBDRkdfTk9SX0JPT1QKKyNpZmRlZiBDT05GSUdfU1lTX05PUl9CT09UCiAJX19yYXdfd3JpdGVsKEFQT0xMT05fMjRYWF9HUE1DX0NPTkZJRzdfMCwgR1BNQ19DT05GSUc3XzIpOwogI2Vsc2UKIAlfX3Jhd193cml0ZWwoQVBPTExPTl8yNFhYX0dQTUNfQ09ORklHN18yLCBHUE1DX0NPTkZJRzdfMik7CiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfTk9SX0JPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19OT1JfQk9PVAogCS8qIHNldHVwIGNzMyAqLwogCV9fcmF3X3dyaXRlbCgwLCBHUE1DX0NPTkZJRzdfMyk7CS8qIGRpc2FibGUgYW55IG1hcHBpbmcgKi8KIAlzZGVsYXkoMTAwMCk7CmRpZmYgLS1naXQgYS9ib2FyZC9hcG9sbG9uL21lbS5oIGIvYm9hcmQvYXBvbGxvbi9tZW0uaAppbmRleCBkNDYzNmY0Li4wOWM0ZWE0IDEwMDY0NAotLS0gYS9ib2FyZC9hcG9sbG9uL21lbS5oCisrKyBiL2JvYXJkL2Fwb2xsb24vbWVtLmgKQEAgLTE0Miw3ICsxNDIsNyBAQAogI2VuZGlmIC8qIGVuZGlmIFBSQ01fQ09ORklHX0lJICovCiAKICNpZmRlZiBQUkNNX0NPTkZJR19JSUkJCS8qIEwzIGF0IDEzM01IeiAqLwotIyBpZmRlZiBDRkdfTkFORF9CT09UCisjIGlmZGVmIENPTkZJR19TWVNfTkFORF9CT09UCiAjICBkZWZpbmUgQVBPTExPTl8yNFhYX0dQTUNfQ09ORklHMV8wICAgMHgwCiAjICBkZWZpbmUgQVBPTExPTl8yNFhYX0dQTUNfQ09ORklHMl8wICAgMHgwMDE0MTQwMAogIyAgZGVmaW5lIEFQT0xMT05fMjRYWF9HUE1DX0NPTkZJRzNfMCAgIDB4MDAxNDE0MDAKQEAgLTE1Niw3ICsxNTYsNyBAQAogIyAgZGVmaW5lIEFQT0xMT05fMjRYWF9HUE1DX0NPTkZJRzRfMCAgIDB4MTAwODEwMDgKICMgIGRlZmluZSBBUE9MTE9OXzI0WFhfR1BNQ19DT05GSUc1XzAgICAweDAxMTMxRjFGCiAjICBkZWZpbmUgQVBPTExPTl8yNFhYX0dQTUNfQ09ORklHNl8wICAgMHgwMDAwMDRjNAotIyBlbmRpZgkvKiBlbmRpZiBDRkdfTkFORF9CT09UICovCisjIGVuZGlmCS8qIGVuZGlmIENPTkZJR19TWVNfTkFORF9CT09UICovCiAjIGRlZmluZSBBUE9MTE9OXzI0WFhfR1BNQ19DT05GSUc3XzAJKDB4MDAwMDBDNDB8KEFQT0xMT05fQ1MwX0JBU0UgPj4gMjQpKQogIyBkZWZpbmUgQVBPTExPTl8yNFhYX0dQTUNfQ09ORklHMV8xCTB4MDAwMTEwMDAKICMgZGVmaW5lIEFQT0xMT05fMjRYWF9HUE1DX0NPTkZJRzJfMQkweDAwMWYxZjAxCkBAIC0xNjUsNiArMTY1LDYgQEAKICMgZGVmaW5lIEFQT0xMT05fMjRYWF9HUE1DX0NPTkZJRzVfMQkweDA0MWYxRjFGCiAjIGRlZmluZSBBUE9MTE9OXzI0WFhfR1BNQ19DT05GSUc2XzEJMHgwMDAwMDRDNAogIyBkZWZpbmUgQVBPTExPTl8yNFhYX0dQTUNfQ09ORklHN18xCSgweDAwMDAwRjQwfChBUE9MTE9OX0NTMV9CQVNFID4+IDI0KSkKLSNlbmRpZiAvKiBlbmRpZiBDRkdfUFJDTV9JSUkgKi8KKyNlbmRpZiAvKiBlbmRpZiBDT05GSUdfU1lTX1BSQ01fSUlJICovCiAKICNlbmRpZiAvKiBlbmRpZiBfQVBPTExPTl9PTUFQMjRYWF9NRU1fSF8gKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2FybWFkaWxsby9mbGFzaC5jIGIvYm9hcmQvYXJtYWRpbGxvL2ZsYXNoLmMKaW5kZXggNmVkODhmNC4uY2RiYmZkMCAxMDA2NDQKLS0tIGEvYm9hcmQvYXJtYWRpbGxvL2ZsYXNoLmMKKysrIGIvYm9hcmQvYXJtYWRpbGxvL2ZsYXNoLmMKQEAgLTM3LDcgKzM3LDcgQEAKICNkZWZpbmUgRkxfV09SRChhZGRyKSAoKih2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCopKGFkZHIpKQogI2RlZmluZSBGTEFTSF9USU1FT1VUIDIwMDAwMDAwCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KQEAgLTQ3LDE0ICs0NywxNCBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IChGVUpfTUFOVUZBQ1QgJiBGTEFTSF9WRU5ETUFTSyk7CiAJCS8qKElOVEVMX0lEXzI4RjEyOEozICYgRkxBU0hfVFlQRU1BU0spOyAqLwogCQlmbGFzaF9pbmZvW2ldLnNpemUgPSBGTEFTSF9CQU5LX1NJWkU7Ci0JCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOwotCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAJCWlmIChpID09IDApCiAJCQlmbGFzaGJhc2UgPSBQSFlTX0ZMQVNIXzE7CiAJCWVsc2UKQEAgLTY5LDggKzY5LDggQEAKIAkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJICAgICAgICZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCmRpZmYgLS1naXQgYS9ib2FyZC9hdGMvYXRjLmMgYi9ib2FyZC9hdGMvYXRjLmMKaW5kZXggYjYyN2MxYy4uOTM2YzAzMSAxMDA2NDQKLS0tIGEvYm9hcmQvYXRjL2F0Yy5jCisrKyBiL2JvYXJkL2F0Yy9hdGMuYwpAQCAtMjgxLDcgKzI4MSw3IEBACiAJICovCiAJbWF4c2l6ZSA9ICgxICsgKH5vcnggfCAweDdmZmYpKSAvIDI7CiAKLQkvKiBTaW5jZSBDRkdfU0RSQU1fQkFTRSBpcyBhbHdheXMgMCAoPz8pLCB3ZSBhc3N1bWUgdGhhdAorCS8qIFNpbmNlIENPTkZJR19TWVNfU0RSQU1fQkFTRSBpcyBhbHdheXMgMCAoPz8pLCB3ZSBhc3N1bWUgdGhhdAogCSAqIHdlIGFyZSBjb25maWd1cmluZyBDUzEgaWYgYmFzZSAhPSAwCiAJICovCiAJc2Rtcl9wdHIgPSAmbWVtY3RsLT5tZW1jX3BzZG1yOwpAQCAtMzA2LDcgKzMwNiw3IEBACiAJICogIGFjY2Vzc2luZyB0aGUgU0RSQU0gd2l0aCBhIHNpbmdsZS1ieXRlIHRyYW5zYWN0aW9uLiIKIAkgKgogCSAqIFRoZSBhcHByb3ByaWF0ZSBCUngvT1J4IHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzZXQgd2hlbiB3ZQotCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENGR19TRFJBTV9CQVNFLgorCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENPTkZJR19TWVNfU0RSQU1fQkFTRS4KIAkgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9QUkVBOwpAQCAtMzE3LDcgKzMxNyw3IEBACiAJCSpiYXNlID0gYzsKIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9NUlc7Ci0JKihiYXNlICsgQ0ZHX01SU19PRkZTKSA9IGM7CS8qIHNldHRpbmcgTVIgb24gYWRkcmVzcyBsaW5lcyAqLworCSooYmFzZSArIENPTkZJR19TWVNfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfTk9STSB8IFBTRE1SX1JGRU47CiAJKmJhc2UgPSBjOwpAQCAtMzMxLDcgKzMzMSw3IEBACiAKIGludCBtaXNjX2luaXRfcih2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCXVwbWNvbmZpZyhVUE1BLCAodWludCAqKXJ0Y190YWJsZSwgc2l6ZW9mKHJ0Y190YWJsZSkgLyBzaXplb2YodWludCkpOwpAQCAtMzQyLDM3ICszNDIsMzcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAl1bG9uZyBzaXplOCwgc2l6ZTk7CiAjZW5kaWYKIAlsb25nIHBzaXplOwogCiAJcHNpemUgPSA4ICogMTAyNCAqIDEwMjQ7CiAKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7Ci0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCS8qIDYweCBTRFJBTSBzZXR1cDoKIAkgKi8KLQlzaXplOCA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl84Q09MLCBDRkdfT1IyXzhDT0wsCi0JCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSk7Ci0Jc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfOUNPTCwgQ0ZHX09SMl85Q09MLAotCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOworCXNpemU4ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl84Q09MLCBDT05GSUdfU1lTX09SMl84Q09MLAorCQkJICAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKKwlzaXplOSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOUNPTCwgQ09ORklHX1NZU19PUjJfOUNPTCwKKwkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewogCQlwc2l6ZSA9IHNpemU5OwogCQlwcmludGYgKCIoNjB4OjlDT0wpICIpOwogCX0gZWxzZSB7Ci0JCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzhDT0wsIENGR19PUjJfOENPTCwKLQkJCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSk7CisJCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl84Q09MLCBDT05GSUdfU1lTX09SMl84Q09MLAorCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAJCXByaW50ZiAoIig2MHg6OENPTCkgIik7CiAJfQogCi0jZW5kaWYJLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCWljYWNoZV9lbmFibGUgKCk7CiAKQEAgLTM4Miw3ICszODIsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9ET0MpCiB2b2lkIGRvY19pbml0ICh2b2lkKQogewotCWRvY19wcm9iZSAoQ0ZHX0RPQ19CQVNFKTsKKwlkb2NfcHJvYmUgKENPTkZJR19TWVNfRE9DX0JBU0UpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2F0Yy9jb25maWcubWsgYi9ib2FyZC9hdGMvY29uZmlnLm1rCmluZGV4IGVlZTdhNjAuLmRkODU0ZTcgMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0Yy9jb25maWcubWsKKysrIGIvYm9hcmQvYXRjL2NvbmZpZy5tawpAQCAtMjUsNyArMjUsNyBAQAogIyBBVEMgYm9hcmRzCiAjCiAKLSMgVGhpcyBzaG91bGQgYmUgZXF1YWwgdG8gdGhlIENGR19GTEFTSF9CQVNFIGRlZmluZSBpbiBjb25maWdfYXRjLmgKKyMgVGhpcyBzaG91bGQgYmUgZXF1YWwgdG8gdGhlIENPTkZJR19TWVNfRkxBU0hfQkFTRSBkZWZpbmUgaW4gY29uZmlnX2F0Yy5oCiAjIGZvciB0aGUgImZpbmFsIiBjb25maWd1cmF0aW9uLCB3aXRoIFUtQm9vdCBpbiBmbGFzaCwgb3IgdGhlIGFkZHJlc3MKICMgaW4gUkFNIHdoZXJlIFUtQm9vdCBpcyBsb2FkZWQgYXQgZm9yIGRlYnVnZ2luZy4KICMKZGlmZiAtLWdpdCBhL2JvYXJkL2F0Yy9mbGFzaC5jIGIvYm9hcmQvYXRjL2ZsYXNoLmMKaW5kZXggNzgzNWU4Zi4uZmQ3NjcyMyAxMDA2NDQKLS0tIGEvYm9hcmQvYXRjL2ZsYXNoLmMKKysrIGIvYm9hcmQvYXRjL2ZsYXNoLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyogTk9URSAtIENPTkZJR19GTEFTSF8xNkJJVCBtZWFucyB0aGUgQ1BVIGludGVyZmFjZSBpcyAxNi1iaXQsIGl0CiAgKiAgICAgICAgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgZmxhc2ggY2hpcCBiZWluZyA4LWJpdCBvciAxNi1iaXQuCkBAIC02NywxMSArNjcsMTEgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogI2lmIDAKIAkJdWxvbmcgZmxhc2hiYXNlID0gKGkgPT0gMCkgPyBQSFlTX0ZMQVNIXzEgOiBQSFlTX0ZMQVNIXzI7CiAjZWxzZQotCQl1bG9uZyBmbGFzaGJhc2UgPSBDRkdfRkxBU0hfQkFTRTsKKwkJdWxvbmcgZmxhc2hiYXNlID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogI2VuZGlmCiAKIAkJbWVtc2V0KCZmbGFzaF9pbmZvW2ldLCAwLCBzaXplb2YoZmxhc2hfaW5mb190KSk7CkBAIC04NywxMiArODcsMTIgQEAKIAkJc2l6ZSArPSBmbGFzaF9pbmZvW2ldLnNpemU7CiAJfQogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCi0JCSAgICAgIGZsYXNoX2dldF9pbmZvKENGR19NT05JVE9SX0JBU0UpKTsKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIGZsYXNoX2dldF9pbmZvKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSk7CiAjZW5kaWYKIAogI2lmZGVmCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gKQEAgLTE2NCwxMyArMTY0LDEzIEBACiAJaW50IGk7CiAJZmxhc2hfaW5mb190ICogaW5mbzsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpICsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpICsrKSB7CiAJCWluZm8gPSAmIGZsYXNoX2luZm9baV07CiAJCWlmIChpbmZvLT5zdGFydFswXSA8PSBiYXNlICYmIGJhc2UgPCBpbmZvLT5zdGFydFswXSArIGluZm8tPnNpemUpCiAJCQlicmVhazsKIAl9CiAKLQlyZXR1cm4gaSA9PSBDRkdfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm87CisJcmV0dXJuIGkgPT0gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgPyAwIDogaW5mbzsKIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDc2LDcgKzQ3Niw3IEBACiAJCXVkZWxheSAoMTAwMCk7CiAKIAkJd2hpbGUgKCgqYWRkciAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKEZQVykweDAwODAwMDgwKSB7Ci0JCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAogCQkJCWlmIChpbnRlbCkgewpAQCAtNDkwLDE0ICs0OTAsMTQgQEAKIAkJCX0KIAogCQkJLyogc2hvdyB0aGF0IHdlJ3JlIHdhaXRpbmcgKi8KLQkJCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENGR19IWikgey8qIGV2ZXJ5IHNlY29uZCAqLworCQkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ09ORklHX1NZU19IWikgey8qIGV2ZXJ5IHNlY29uZCAqLwogCQkJCXB1dGMgKCcuJyk7CiAJCQkJbGFzdCA9IGdldF90aW1lcigwKTsKIAkJCX0KIAkJfQogCiAJCS8qIHNob3cgdGhhdCB3ZSdyZSB3YWl0aW5nICovCi0JCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENGR19IWikgewkvKiBldmVyeSBzZWNvbmQgKi8KKwkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ09ORklHX1NZU19IWikgewkvKiBldmVyeSBzZWNvbmQgKi8KIAkJCXB1dGMgKCcuJyk7CiAJCQlsYXN0ID0gZ2V0X3RpbWVyKDApOwogCQl9CkBAIC02MDEsNyArNjAxLDcgQEAKIAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAl3aGlsZSAocmVzID09IDAgJiYgKCpkZXN0ICYgKEZQVykweDAwODAwMDgwKSAhPSAoZGF0YSAmIChGUFcpMHgwMDgwMDA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmRlc3QgPSAoRlBXKTB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCXJlcyA9IDE7CiAJCX0KQEAgLTY0Nyw3ICs2NDcsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAogCXdoaWxlIChyZXMgPT0gMCAmJiAoKmRlc3QgJiAoRlBXKTB4MDA4MDAwODApICE9IChGUFcpMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqZGVzdCA9IChGUFcpMHgwMEIwMDBCMDsJLyogU3VzcGVuZCBwcm9ncmFtCSovCiAJCQlyZXMgPSAxOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9hdGMvdGkxMTN4LmMgYi9ib2FyZC9hdGMvdGkxMTN4LmMKaW5kZXggZTExMmVjYS4uNDczYmIxMCAxMDA2NDQKLS0tIGEvYm9hcmQvYXRjL3RpMTEzeC5jCisrKyBiL2JvYXJkL2F0Yy90aTExM3guYwpAQCAtNTI2LDggKzUyNiw4IEBACiAJbWVtLm1hcCA9IDA7CiAJbWVtLmZsYWdzID0gTUFQX0FUVFJJQiB8IE1BUF9BQ1RJVkU7CiAJbWVtLnNwZWVkID0gMzAwOwotCW1lbS5zeXNfc3RhcnQgPSBDRkdfUENNQ0lBX01FTV9BRERSOwotCW1lbS5zeXNfc3RvcCA9IENGR19QQ01DSUFfTUVNX0FERFIgKyBDRkdfUENNQ0lBX01FTV9TSVpFIC0gMTsKKwltZW0uc3lzX3N0YXJ0ID0gQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFI7CisJbWVtLnN5c19zdG9wID0gQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIgKyBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSAtIDE7CiAJbWVtLmNhcmRfc3RhcnQgPSAwOwogCWkzNjVfc2V0X21lbV9tYXAgKCZzb2NrZXQsICZtZW0pOwogCkBAIC02MTMsOCArNjEzLDggQEAKIHsKIAl1X2ludCB0bXBbMl07CiAJdV9pbnQgKm1lbSA9ICh2b2lkICopIHNvY2tldC5jYl9waHlzOwotCXVfY2hhciAqY2lzID0gKHZvaWQgKikgQ0ZHX1BDTUNJQV9NRU1fQUREUjsKLQl1X2NoYXIgKmlkZSA9ICh2b2lkICopIChDRkdfQVRBX0JBU0VfQUREUiArIENGR19BVEFfUkVHX09GRlNFVCk7CisJdV9jaGFyICpjaXMgPSAodm9pZCAqKSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUjsKKwl1X2NoYXIgKmlkZSA9ICh2b2lkICopIChDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUKTsKIAogCXBjaV9yZWFkX2NvbmZpZ19kd29yZCAoZGV2LCAweDAwLCB0bXAgKyAwKTsKIAlwY2lfcmVhZF9jb25maWdfZHdvcmQgKGRldiwgMHg4MCwgdG1wICsgMSk7CmRpZmYgLS1naXQgYS9ib2FyZC9hdG1lbC9hdDkxY2FwOWFkay9hdDkxY2FwOWFkay5jIGIvYm9hcmQvYXRtZWwvYXQ5MWNhcDlhZGsvYXQ5MWNhcDlhZGsuYwppbmRleCA3ODdkNjRkLi41NDRjOTMyIDEwMDY0NAotLS0gYS9ib2FyZC9hdG1lbC9hdDkxY2FwOWFkay9hdDkxY2FwOWFkay5jCisrKyBiL2JvYXJkL2F0bWVsL2F0OTFjYXA5YWRrL2F0OTFjYXA5YWRrLmMKQEAgLTE0Nyw5ICsxNDcsOSBAQAogCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX01PREUoMyksCiAJCSAgICAgICBBVDkxX1NNQ19SRUFETU9ERSB8IEFUOTFfU01DX1dSSVRFTU9ERSB8CiAJCSAgICAgICBBVDkxX1NNQ19FWE5XTU9ERV9ESVNBQkxFIHwKLSNpZmRlZiBDRkdfTkFORF9EQldfMTYKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfREJXXzE2CiAJCSAgICAgICBBVDkxX1NNQ19EQldfMTYgfAotI2Vsc2UgLyogQ0ZHX05BTkRfREJXXzggKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfTkFORF9EQldfOCAqLwogCQkgICAgICAgQVQ5MV9TTUNfREJXXzggfAogI2VuZGlmCiAJCSAgICAgICBBVDkxX1NNQ19UREZfKDEpKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2F0bWVsL2F0OTFjYXA5YWRrL25hbmQuYyBiL2JvYXJkL2F0bWVsL2F0OTFjYXA5YWRrL25hbmQuYwppbmRleCAxZGVjNTU4Li5jYzIyNjNiIDEwMDY0NAotLS0gYS9ib2FyZC9hdG1lbC9hdDkxY2FwOWFkay9uYW5kLmMKKysrIGIvYm9hcmQvYXRtZWwvYXQ5MWNhcDlhZGsvbmFuZC5jCkBAIC02Miw3ICs2Miw3IEBACiBpbnQgYm9hcmRfbmFuZF9pbml0KHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQpCiB7CiAJbmFuZC0+ZWNjLm1vZGUgPSBOQU5EX0VDQ19TT0ZUOwotI2lmZGVmIENGR19OQU5EX0RCV18xNgorI2lmZGVmIENPTkZJR19TWVNfTkFORF9EQldfMTYKIAluYW5kLT5vcHRpb25zID0gTkFORF9CVVNXSURUSF8xNjsKICNlbmRpZgogCW5hbmQtPmNtZF9jdHJsID0gYXQ5MWNhcDlhZGtfbmFuZF9od2NvbnRyb2w7CmRpZmYgLS1naXQgYS9ib2FyZC9hdG1lbC9hdDkxY2FwOWFkay9wYXJ0aXRpb24uYyBiL2JvYXJkL2F0bWVsL2F0OTFjYXA5YWRrL3BhcnRpdGlvbi5jCmluZGV4IGViMWE3MjQuLjdlMWQ0NmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0bWVsL2F0OTFjYXA5YWRrL3BhcnRpdGlvbi5jCisrKyBiL2JvYXJkL2F0bWVsL2F0OTFjYXA5YWRrL3BhcnRpdGlvbi5jCkBAIC0yMywxMCArMjMsMTAgQEAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxkYXRhZmxhc2guaD4KIAotQVQ5MVNfREFUQUZMQVNIX0lORk8gZGF0YWZsYXNoX2luZm9bQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1NdOworQVQ5MVNfREFUQUZMQVNIX0lORk8gZGF0YWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTXTsKIAotc3RydWN0IGRhdGFmbGFzaF9hZGRyIGNzW0NGR19NQVhfREFUQUZMQVNIX0JBTktTXSA9IHsKLQl7Q0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCwgMH0sCS8qIExvZ2ljYWwgYWRyZXNzLCBDUyAqLworc3RydWN0IGRhdGFmbGFzaF9hZGRyIGNzW0NPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LU10gPSB7CisJe0NPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwLCAwfSwJLyogTG9naWNhbCBhZHJlc3MsIENTICovCiB9OwogCiAvKmRlZmluZSB0aGUgYXJlYSBvZmZzZXRzKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2F0bWVsL2F0OTFybTkyMDBkay9mbGFzaC5jIGIvYm9hcmQvYXRtZWwvYXQ5MXJtOTIwMGRrL2ZsYXNoLmMKaW5kZXggZWY4ZDlhOC4uOTAyYzNjNCAxMDA2NDQKLS0tIGEvYm9hcmQvYXRtZWwvYXQ5MXJtOTIwMGRrL2ZsYXNoLmMKKysrIGIvYm9hcmQvYXRtZWwvYXQ5MXJtOTIwMGRrL2ZsYXNoLmMKQEAgLTU5LDcgKzU5LDcgQEAKIAl7IDEyNywgNjQqMTAyNCB9LAkvKiAxMjcgKiA2NCBrQnl0ZXMgc2VjdG9ycyAqLwogfTsKIAotZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIC8qIEFUNDlCVjE2MTRBIENvZGVzICovCiAjZGVmaW5lIEZMQVNIX0NPREUxCQkweEFBCkBAIC03Nyw4ICs3Nyw4IEBACiAjZGVmaW5lIENNRF9VTkxPQ0tfQllQQVNTCTB4MDAyMAogI2RlZmluZSBDTURfU0VDVE9SX1VOTE9DSwkweDAwNzAKIAotI2RlZmluZSBNRU1fRkxBU0hfQUREUjEJCSgqKHZvbGF0aWxlIHUxNiAqKShDRkdfRkxBU0hfQkFTRSArICgweDAwMDA1NTU1PDwxKSkpCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDJBQUE8PDEpKSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDB4MDAwMDU1NTU8PDEpKSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIyCQkoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDB4MDAwMDJBQUE8PDEpKSkKIAogI2RlZmluZSBCSVRfRVJBU0VfRE9ORQkJMHgwMDgwCiAjZGVmaW5lIEJJVF9SRFlfTUFTSwkJMHgwMDgwCkBAIC05OSw5ICs5OSw5IEBACiAJTUVNX0ZMQVNIX0FERFIyID0gRkxBU0hfQ09ERTI7CiAJTUVNX0ZMQVNIX0FERFIxID0gSURfSU5fQ09ERTsKIAotCW1hbnVmX2NvZGUgPSAqKHZvbGF0aWxlIHUxNiAqKSBDRkdfRkxBU0hfQkFTRTsKLQlkZXZpY2VfY29kZSA9ICoodm9sYXRpbGUgdTE2ICopIChDRkdfRkxBU0hfQkFTRSArIDIpOwotCWFkZF9kZXZpY2VfY29kZSA9ICoodm9sYXRpbGUgdTE2ICopIChDRkdfRkxBU0hfQkFTRSArICgzIDw8IDEpKTsKKwltYW51Zl9jb2RlID0gKih2b2xhdGlsZSB1MTYgKikgQ09ORklHX1NZU19GTEFTSF9CQVNFOworCWRldmljZV9jb2RlID0gKih2b2xhdGlsZSB1MTYgKikgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDIpOworCWFkZF9kZXZpY2VfY29kZSA9ICoodm9sYXRpbGUgdTE2ICopIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMyA8PCAxKSk7CiAKIAlNRU1fRkxBU0hfQUREUjEgPSBGTEFTSF9DT0RFMTsKIAlNRU1fRkxBU0hfQUREUjIgPSBGTEFTSF9DT0RFMjsKQEAgLTE1Nyw3ICsxNTcsNyBAQAogCiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJdWxvbmcgZmxhc2hiYXNlID0gMDsKIAogCQlmbGFzaF9pZGVudGlmaWNhdGlvbiAoJmZsYXNoX2luZm9baV0pOwpAQCAtMjE2LDggKzIxNiw4IEBACiAKIAkvKiBQcm90ZWN0IGJpbmFyeSBib290IGltYWdlICovCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfQk9PVF9TSVpFIC0gMSwgJmZsYXNoX2luZm9bMF0pOworCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19CT09UX1NJWkUgLSAxLCAmZmxhc2hfaW5mb1swXSk7CiAKIAkvKiBQcm90ZWN0IGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCkBAIC0yMjYsOCArMjI2LDggQEAKIAogCS8qIFByb3RlY3QgVS1Cb290IGd6aXBwZWQgaW1hZ2UgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX1VfQk9PVF9CQVNFLAotCQkgICAgICAgQ0ZHX1VfQk9PVF9CQVNFICsgQ0ZHX1VfQk9PVF9TSVpFIC0gMSwgJmZsYXNoX2luZm9bMF0pOworCQkgICAgICAgQ09ORklHX1NZU19VX0JPT1RfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfVV9CT09UX0JBU0UgKyBDT05GSUdfU1lTX1VfQk9PVF9TSVpFIC0gMSwgJmZsYXNoX2luZm9bMF0pOwogCiAJcmV0dXJuIHNpemU7CiB9CkBAIC0zNDUsNyArMzQ1LDcgQEAKIAkJCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJTUVNX0ZMQVNIX0FERFIxID0gQ01EX1JFQURfQVJSQVk7CiAJCQkJCWNoaXAxID0gVE1POwogCQkJCQlicmVhazsKQEAgLTQzMyw3ICs0MzMsNyBAQAogCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCWNoaXAxID0gRVJSIHwgVE1POwogCQkJYnJlYWs7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2F0bWVsL2F0OTFybTkyMDBkay9wYXJ0aXRpb24uYyBiL2JvYXJkL2F0bWVsL2F0OTFybTkyMDBkay9wYXJ0aXRpb24uYwppbmRleCA5NzViZTE3Li5jNzM5YjExIDEwMDY0NAotLS0gYS9ib2FyZC9hdG1lbC9hdDkxcm05MjAwZGsvcGFydGl0aW9uLmMKKysrIGIvYm9hcmQvYXRtZWwvYXQ5MXJtOTIwMGRrL3BhcnRpdGlvbi5jCkBAIC0yMywxMSArMjMsMTEgQEAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxkYXRhZmxhc2guaD4KIAotQVQ5MVNfREFUQUZMQVNIX0lORk8gZGF0YWZsYXNoX2luZm9bQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1NdOworQVQ5MVNfREFUQUZMQVNIX0lORk8gZGF0YWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTXTsKIAotc3RydWN0IGRhdGFmbGFzaF9hZGRyIGNzW0NGR19NQVhfREFUQUZMQVNIX0JBTktTXSA9IHsKLQl7Q0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCwgMH0sCS8qIExvZ2ljYWwgYWRyZXNzLCBDUyAqLwotCXtDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MzLCAzfQorc3RydWN0IGRhdGFmbGFzaF9hZGRyIGNzW0NPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LU10gPSB7CisJe0NPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwLCAwfSwJLyogTG9naWNhbCBhZHJlc3MsIENTICovCisJe0NPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MzLCAzfQogfTsKIAogLypkZWZpbmUgdGhlIGFyZWEgb2Zmc2V0cyovCmRpZmYgLS1naXQgYS9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MGVrL2F0OTFzYW05MjYwZWsuYyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYwZWsvYXQ5MXNhbTkyNjBlay5jCmluZGV4IDkxM2UzZmIuLjM3MmNmYjIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYwZWsvYXQ5MXNhbTkyNjBlay5jCisrKyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYwZWsvYXQ5MXNhbTkyNjBlay5jCkBAIC05Miw5ICs5Miw5IEBACiAJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfTU9ERSgzKSwKIAkJICAgICAgIEFUOTFfU01DX1JFQURNT0RFIHwgQVQ5MV9TTUNfV1JJVEVNT0RFIHwKIAkJICAgICAgIEFUOTFfU01DX0VYTldNT0RFX0RJU0FCTEUgfAotI2lmZGVmIENGR19OQU5EX0RCV18xNgorI2lmZGVmIENPTkZJR19TWVNfTkFORF9EQldfMTYKIAkJICAgICAgIEFUOTFfU01DX0RCV18xNiB8Ci0jZWxzZSAvKiBDRkdfTkFORF9EQldfOCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19OQU5EX0RCV184ICovCiAJCSAgICAgICBBVDkxX1NNQ19EQldfOCB8CiAjZW5kaWYKIAkJICAgICAgIEFUOTFfU01DX1RERl8oMikpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjBlay9uYW5kLmMgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MGVrL25hbmQuYwppbmRleCA2NjVlMzVjLi5jNWFjNjM0IDEwMDY0NAotLS0gYS9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MGVrL25hbmQuYworKysgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MGVrL25hbmQuYwpAQCAtNjcsNyArNjcsNyBAQAogaW50IGJvYXJkX25hbmRfaW5pdChzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kKQogewogCW5hbmQtPmVjYy5tb2RlID0gTkFORF9FQ0NfU09GVDsKLSNpZmRlZiBDRkdfTkFORF9EQldfMTYKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfREJXXzE2CiAJbmFuZC0+b3B0aW9ucyA9IE5BTkRfQlVTV0lEVEhfMTY7CiAjZW5kaWYKIAluYW5kLT5jbWRfY3RybCA9IGF0OTFzYW05MjYwZWtfbmFuZF9od2NvbnRyb2w7CmRpZmYgLS1naXQgYS9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MGVrL3BhcnRpdGlvbi5jIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjBlay9wYXJ0aXRpb24uYwppbmRleCA1NTdkNjk1Li4yNjI5YzY3IDEwMDY0NAotLS0gYS9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MGVrL3BhcnRpdGlvbi5jCisrKyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYwZWsvcGFydGl0aW9uLmMKQEAgLTIzLDExICsyMywxMSBAQAogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgogI2luY2x1ZGUgPGRhdGFmbGFzaC5oPgogCi1BVDkxU19EQVRBRkxBU0hfSU5GTyBkYXRhZmxhc2hfaW5mb1tDRkdfTUFYX0RBVEFGTEFTSF9CQU5LU107CitBVDkxU19EQVRBRkxBU0hfSU5GTyBkYXRhZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1NdOwogCi1zdHJ1Y3QgZGF0YWZsYXNoX2FkZHIgY3NbQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1NdID0gewotCXtDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwLCAwfSwJLyogTG9naWNhbCBhZHJlc3MsIENTICovCi0Je0NGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzEsIDF9CitzdHJ1Y3QgZGF0YWZsYXNoX2FkZHIgY3NbQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTXSA9IHsKKwl7Q09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAsIDB9LAkvKiBMb2dpY2FsIGFkcmVzcywgQ1MgKi8KKwl7Q09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzEsIDF9CiB9OwogCiAvKmRlZmluZSB0aGUgYXJlYSBvZmZzZXRzKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYxZWsvYXQ5MXNhbTkyNjFlay5jIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjFlay9hdDkxc2FtOTI2MWVrLmMKaW5kZXggNjQ3YWFiNS4uNzZmNTZkNiAxMDA2NDQKLS0tIGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjFlay9hdDkxc2FtOTI2MWVrLmMKKysrIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjFlay9hdDkxc2FtOTI2MWVrLmMKQEAgLTkyLDkgKzkyLDkgQEAKIAlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19NT0RFKDMpLAogCQkgICAgICAgQVQ5MV9TTUNfUkVBRE1PREUgfCBBVDkxX1NNQ19XUklURU1PREUgfAogCQkgICAgICAgQVQ5MV9TTUNfRVhOV01PREVfRElTQUJMRSB8Ci0jaWZkZWYgQ0ZHX05BTkRfREJXXzE2CisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0RCV18xNgogCQkgICAgICAgQVQ5MV9TTUNfREJXXzE2IHwKLSNlbHNlIC8qIENGR19OQU5EX0RCV184ICovCisjZWxzZSAvKiBDT05GSUdfU1lTX05BTkRfREJXXzggKi8KIAkJICAgICAgIEFUOTFfU01DX0RCV184IHwKICNlbmRpZgogCQkgICAgICAgQVQ5MV9TTUNfVERGXygyKSk7CmRpZmYgLS1naXQgYS9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MWVrL25hbmQuYyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYxZWsvbmFuZC5jCmluZGV4IGZjY2I5ZDcuLjA2Mzk1ZWUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYxZWsvbmFuZC5jCisrKyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYxZWsvbmFuZC5jCkBAIC02Nyw3ICs2Nyw3IEBACiBpbnQgYm9hcmRfbmFuZF9pbml0KHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQpCiB7CiAJbmFuZC0+ZWNjLm1vZGUgPSBOQU5EX0VDQ19TT0ZUOwotI2lmZGVmIENGR19OQU5EX0RCV18xNgorI2lmZGVmIENPTkZJR19TWVNfTkFORF9EQldfMTYKIAluYW5kLT5vcHRpb25zID0gTkFORF9CVVNXSURUSF8xNjsKICNlbmRpZgogCW5hbmQtPmNtZF9jdHJsID0gYXQ5MXNhbTkyNjFla19uYW5kX2h3Y29udHJvbDsKZGlmZiAtLWdpdCBhL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYxZWsvcGFydGl0aW9uLmMgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MWVrL3BhcnRpdGlvbi5jCmluZGV4IDk3NWJlMTcuLmM3MzliMTEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYxZWsvcGFydGl0aW9uLmMKKysrIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjFlay9wYXJ0aXRpb24uYwpAQCAtMjMsMTEgKzIzLDExIEBACiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8ZGF0YWZsYXNoLmg+CiAKLUFUOTFTX0RBVEFGTEFTSF9JTkZPIGRhdGFmbGFzaF9pbmZvW0NGR19NQVhfREFUQUZMQVNIX0JBTktTXTsKK0FUOTFTX0RBVEFGTEFTSF9JTkZPIGRhdGFmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LU107CiAKLXN0cnVjdCBkYXRhZmxhc2hfYWRkciBjc1tDRkdfTUFYX0RBVEFGTEFTSF9CQU5LU10gPSB7Ci0Je0NGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAsIDB9LAkvKiBMb2dpY2FsIGFkcmVzcywgQ1MgKi8KLQl7Q0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMywgM30KK3N0cnVjdCBkYXRhZmxhc2hfYWRkciBjc1tDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1NdID0geworCXtDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCwgMH0sCS8qIExvZ2ljYWwgYWRyZXNzLCBDUyAqLworCXtDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMywgM30KIH07CiAKIC8qZGVmaW5lIHRoZSBhcmVhIG9mZnNldHMqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjNlay9hdDkxc2FtOTI2M2VrLmMgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2M2VrL2F0OTFzYW05MjYzZWsuYwppbmRleCBjNzA1MDc0Li5kZDUxM2I5IDEwMDY0NAotLS0gYS9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2M2VrL2F0OTFzYW05MjYzZWsuYworKysgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2M2VrL2F0OTFzYW05MjYzZWsuYwpAQCAtOTUsOSArOTUsOSBAQAogCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX01PREUoMyksCiAJCSAgICAgICBBVDkxX1NNQ19SRUFETU9ERSB8IEFUOTFfU01DX1dSSVRFTU9ERSB8CiAJCSAgICAgICBBVDkxX1NNQ19FWE5XTU9ERV9ESVNBQkxFIHwKLSNpZmRlZiBDRkdfTkFORF9EQldfMTYKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfREJXXzE2CiAJCSAgICAgICBBVDkxX1NNQ19EQldfMTYgfAotI2Vsc2UgLyogQ0ZHX05BTkRfREJXXzggKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfTkFORF9EQldfOCAqLwogCQkgICAgICAgQVQ5MV9TTUNfREJXXzggfAogI2VuZGlmCiAJCSAgICAgICBBVDkxX1NNQ19UREZfKDIpKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYzZWsvbmFuZC5jIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjNlay9uYW5kLmMKaW5kZXggMjUwZWM3Zi4uM2MyNDdmNiAxMDA2NDQKLS0tIGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjNlay9uYW5kLmMKKysrIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjNlay9uYW5kLmMKQEAgLTY3LDcgKzY3LDcgQEAKIGludCBib2FyZF9uYW5kX2luaXQoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCkKIHsKIAluYW5kLT5lY2MubW9kZSA9IE5BTkRfRUNDX1NPRlQ7Ci0jaWZkZWYgQ0ZHX05BTkRfREJXXzE2CisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0RCV18xNgogCW5hbmQtPm9wdGlvbnMgPSBOQU5EX0JVU1dJRFRIXzE2OwogI2VuZGlmCiAJbmFuZC0+Y21kX2N0cmwgPSBhdDkxc2FtOTI2M2VrX25hbmRfaHdjb250cm9sOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjNlay9wYXJ0aXRpb24uYyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYzZWsvcGFydGl0aW9uLmMKaW5kZXggZWIxYTcyNC4uN2UxZDQ2ZiAxMDA2NDQKLS0tIGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjNlay9wYXJ0aXRpb24uYworKysgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2M2VrL3BhcnRpdGlvbi5jCkBAIC0yMywxMCArMjMsMTAgQEAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxkYXRhZmxhc2guaD4KIAotQVQ5MVNfREFUQUZMQVNIX0lORk8gZGF0YWZsYXNoX2luZm9bQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1NdOworQVQ5MVNfREFUQUZMQVNIX0lORk8gZGF0YWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTXTsKIAotc3RydWN0IGRhdGFmbGFzaF9hZGRyIGNzW0NGR19NQVhfREFUQUZMQVNIX0JBTktTXSA9IHsKLQl7Q0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCwgMH0sCS8qIExvZ2ljYWwgYWRyZXNzLCBDUyAqLworc3RydWN0IGRhdGFmbGFzaF9hZGRyIGNzW0NPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LU10gPSB7CisJe0NPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwLCAwfSwJLyogTG9naWNhbCBhZHJlc3MsIENTICovCiB9OwogCiAvKmRlZmluZSB0aGUgYXJlYSBvZmZzZXRzKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2F0bWVsL2F0OTFzYW05cmxlay9hdDkxc2FtOXJsZWsuYyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05cmxlay9hdDkxc2FtOXJsZWsuYwppbmRleCA1MDllN2MzLi43YmYxZjQzIDEwMDY0NAotLS0gYS9ib2FyZC9hdG1lbC9hdDkxc2FtOXJsZWsvYXQ5MXNhbTlybGVrLmMKKysrIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTlybGVrL2F0OTFzYW05cmxlay5jCkBAIC05Miw5ICs5Miw5IEBACiAJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfTU9ERSgzKSwKIAkJICAgICAgIEFUOTFfU01DX1JFQURNT0RFIHwgQVQ5MV9TTUNfV1JJVEVNT0RFIHwKIAkJICAgICAgIEFUOTFfU01DX0VYTldNT0RFX0RJU0FCTEUgfAotI2lmZGVmIENGR19OQU5EX0RCV18xNgorI2lmZGVmIENPTkZJR19TWVNfTkFORF9EQldfMTYKIAkJICAgICAgIEFUOTFfU01DX0RCV18xNiB8Ci0jZWxzZSAvKiBDRkdfTkFORF9EQldfOCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19OQU5EX0RCV184ICovCiAJCSAgICAgICBBVDkxX1NNQ19EQldfOCB8CiAjZW5kaWYKIAkJICAgICAgIEFUOTFfU01DX1RERl8oMikpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTlybGVrL25hbmQuYyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05cmxlay9uYW5kLmMKaW5kZXggZWIzNDJiOC4uNjI1ZjZlYyAxMDA2NDQKLS0tIGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTlybGVrL25hbmQuYworKysgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOXJsZWsvbmFuZC5jCkBAIC02Nyw3ICs2Nyw3IEBACiBpbnQgYm9hcmRfbmFuZF9pbml0KHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQpCiB7CiAJbmFuZC0+ZWNjLm1vZGUgPSBOQU5EX0VDQ19TT0ZUOwotI2lmZGVmIENGR19OQU5EX0RCV18xNgorI2lmZGVmIENPTkZJR19TWVNfTkFORF9EQldfMTYKIAluYW5kLT5vcHRpb25zID0gTkFORF9CVVNXSURUSF8xNjsKICNlbmRpZgogCW5hbmQtPmNtZF9jdHJsID0gYXQ5MXNhbTlybGVrX25hbmRfaHdjb250cm9sOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTlybGVrL3BhcnRpdGlvbi5jIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTlybGVrL3BhcnRpdGlvbi5jCmluZGV4IGViMWE3MjQuLjdlMWQ0NmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0bWVsL2F0OTFzYW05cmxlay9wYXJ0aXRpb24uYworKysgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOXJsZWsvcGFydGl0aW9uLmMKQEAgLTIzLDEwICsyMywxMCBAQAogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgogI2luY2x1ZGUgPGRhdGFmbGFzaC5oPgogCi1BVDkxU19EQVRBRkxBU0hfSU5GTyBkYXRhZmxhc2hfaW5mb1tDRkdfTUFYX0RBVEFGTEFTSF9CQU5LU107CitBVDkxU19EQVRBRkxBU0hfSU5GTyBkYXRhZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1NdOwogCi1zdHJ1Y3QgZGF0YWZsYXNoX2FkZHIgY3NbQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1NdID0gewotCXtDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwLCAwfSwJLyogTG9naWNhbCBhZHJlc3MsIENTICovCitzdHJ1Y3QgZGF0YWZsYXNoX2FkZHIgY3NbQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTXSA9IHsKKwl7Q09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAsIDB9LAkvKiBMb2dpY2FsIGFkcmVzcywgQ1MgKi8KIH07CiAKIC8qZGVmaW5lIHRoZSBhcmVhIG9mZnNldHMqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvYXRtZWwvYXRzdGsxMDAwL2ZsYXNoLmMgYi9ib2FyZC9hdG1lbC9hdHN0azEwMDAvZmxhc2guYwppbmRleCBlMmJmZDRhLi40ZDM4MGYzIDEwMDY0NAotLS0gYS9ib2FyZC9hdG1lbC9hdHN0azEwMDAvZmxhc2guYworKysgYi9ib2FyZC9hdG1lbC9hdHN0azEwMDAvZmxhc2guYwpAQCAtNTUsMTcgKzU1LDE3IEBACiAJdW5zaWduZWQgbG9uZyBhZGRyOwogCXVuc2lnbmVkIGludCBpOwogCi0JZmxhc2hfaW5mb1swXS5zaXplID0gQ0ZHX0ZMQVNIX1NJWkU7CisJZmxhc2hfaW5mb1swXS5zaXplID0gQ09ORklHX1NZU19GTEFTSF9TSVpFOwogCWZsYXNoX2luZm9bMF0uc2VjdG9yX2NvdW50ID0gMTM1OwogCi0JZmxhc2hfaWRlbnRpZnkodW5jYWNoZWQoKHZvaWQgKilDRkdfRkxBU0hfQkFTRSksICZmbGFzaF9pbmZvWzBdKTsKKwlmbGFzaF9pZGVudGlmeSh1bmNhY2hlZCgodm9pZCAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSksICZmbGFzaF9pbmZvWzBdKTsKIAogCWZvciAoaSA9IDAsIGFkZHIgPSAwOyBpIDwgODsgaSsrLCBhZGRyICs9IDB4MjAwMCkKIAkJZmxhc2hfaW5mb1swXS5zdGFydFtpXSA9IGFkZHI7CiAJZm9yICg7IGkgPCBmbGFzaF9pbmZvWzBdLnNlY3Rvcl9jb3VudDsgaSsrLCBhZGRyICs9IDB4MTAwMDApCiAJCWZsYXNoX2luZm9bMF0uc3RhcnRbaV0gPSBhZGRyOwogCi0JcmV0dXJuIENGR19GTEFTSF9TSVpFOworCXJldHVybiBDT05GSUdfU1lTX0ZMQVNIX1NJWkU7CiB9CiAKIHZvaWQgZmxhc2hfcHJpbnRfaW5mbyhmbGFzaF9pbmZvX3QgKmluZm8pCmRpZmYgLS1naXQgYS9ib2FyZC9hdHVtODU0OC9hdHVtODU0OC5jIGIvYm9hcmQvYXR1bTg1NDgvYXR1bTg1NDguYwppbmRleCAzMzdjZjMxLi4yZWYxOWNlIDEwMDY0NAotLS0gYS9ib2FyZC9hdHVtODU0OC9hdHVtODU0OC5jCisrKyBiL2JvYXJkL2F0dW04NTQ4L2F0dW04NTQ4LmMKQEAgLTUwLDkgKzUwLDkgQEAKIAogaW50IGNoZWNrYm9hcmQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKLQl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7Ci0Jdm9sYXRpbGUgY2Nzcl9sb2NhbF9lY21fdCAqZWNtID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRUNNX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9sb2NhbF9lY21fdCAqZWNtID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0VDTV9BRERSKTsKIAogCWlmICgodWludCkmZ3VyLT5wb3JwbGxzciAhPSAweGUwMGUwMDAwKSB7CiAJCXByaW50ZigiaW1tYXAgc2l6ZSBlcnJvciAlbHhcbiIsKHVsb25nKSZndXItPnBvcnBsbHNyKTsKQEAgLTczLDE1ICs3MywxNSBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGxvbmcgaW50IGZpeGVkX3NkcmFtICh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkcj0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRERSX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkcj0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0REUl9BRERSKTsKIAotCWRkci0+Y3MwX2JuZHMgPSBDRkdfRERSX0NTMF9CTkRTOwotCWRkci0+Y3MwX2NvbmZpZyA9IENGR19ERFJfQ1MwX0NPTkZJRzsKLQlkZHItPnRpbWluZ19jZmdfMCA9IENGR19ERFJfVElNSU5HXzA7Ci0JZGRyLT50aW1pbmdfY2ZnXzEgPSBDRkdfRERSX1RJTUlOR18xOwotCWRkci0+dGltaW5nX2NmZ18yID0gQ0ZHX0REUl9USU1JTkdfMjsKLQlkZHItPnNkcmFtX21vZGUgPSBDRkdfRERSX01PREU7Ci0JZGRyLT5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFJfSU5URVJWQUw7CisJZGRyLT5jczBfYm5kcyA9IENPTkZJR19TWVNfRERSX0NTMF9CTkRTOworCWRkci0+Y3MwX2NvbmZpZyA9IENPTkZJR19TWVNfRERSX0NTMF9DT05GSUc7CisJZGRyLT50aW1pbmdfY2ZnXzAgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMDsKKwlkZHItPnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWRkci0+dGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJZGRyLT5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERTsKKwlkZHItPnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CiAgICAgI2lmIGRlZmluZWQgKENPTkZJR19ERFJfRUNDKQogCWRkci0+ZXJyX2Rpc2FibGUgPSAweDAwMDAwMDBEOwogCWRkci0+ZXJyX3NiZSA9IDB4MDBmZjAwMDA7CkBAIC05MCwxMyArOTAsMTMgQEAKIAl1ZGVsYXkoNTAwKTsKICAgICAjaWYgZGVmaW5lZCAoQ09ORklHX0REUl9FQ0MpCiAJLyogRW5hYmxlIEVDQyBjaGVja2luZyAqLwotCWRkci0+c2RyYW1fY2ZnID0gKENGR19ERFJfQ09OVFJPTCB8IDB4MjAwMDAwMDApOworCWRkci0+c2RyYW1fY2ZnID0gKENPTkZJR19TWVNfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKICAgICAjZWxzZQotCWRkci0+c2RyYW1fY2ZnID0gQ0ZHX0REUl9DT05UUk9MOworCWRkci0+c2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfQ09OVFJPTDsKICAgICAjZW5kaWYKIAlhc20oInN5bmM7IGlzeW5jOyBtc3luYyIpOwogCXVkZWxheSg1MDApOwotCXJldHVybiBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OworCXJldHVybiBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKIH0KICNlbmRpZgkvKiAhZGVmaW5lZChDT05GSUdfU1BEX0VFUFJPTSkgKi8KIApAQCAtMTI3LDE3ICsxMjcsMTcgQEAKIAlyZXR1cm4gZHJhbV9zaXplOwogfQogCi0jaWYgZGVmaW5lZChDRkdfRFJBTV9URVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19EUkFNX1RFU1QpCiBpbnQKIHRlc3RkcmFtKHZvaWQpCiB7Ci0JdWludCAqcHN0YXJ0ID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7Ci0JdWludCAqcGVuZCA9ICh1aW50ICopIENGR19NRU1URVNUX0VORDsKKwl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CisJdWludCAqcGVuZCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9FTkQ7CiAJdWludCAqcDsKIAogCXByaW50ZigiVGVzdGluZyBEUkFNIGZyb20gMHglMDh4IHRvIDB4JTA4eFxuIiwKLQkgICAgICAgQ0ZHX01FTVRFU1RfU1RBUlQsCi0JICAgICAgIENGR19NRU1URVNUX0VORCk7CisJICAgICAgIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCwKKwkgICAgICAgQ09ORklHX1NZU19NRU1URVNUX0VORCk7CiAKIAlwcmludGYoIkRSQU0gdGVzdCBwaGFzZSAxOlxuIik7CiAJZm9yIChwID0gcHN0YXJ0OyBwIDwgcGVuZDsgcCsrKSB7CkBAIC0xODUsNyArMTg1LDcgQEAKIHZvaWQKIHBjaV9pbml0X2JvYXJkKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAogCXVpbnQgZGV2ZGlzciA9IGd1ci0+ZGV2ZGlzcjsKIAl1aW50IGlvX3NlbCA9IChndXItPnBvcmRldnNyICYgTVBDODV4eF9QT1JERVZTUl9JT19TRUwpID4+IDE5OwpAQCAtMjEwLDcgKzIxMCw3IEBACiAKICNpZmRlZiBDT05GSUdfUENJRTEKICB7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJRTFfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJRTFfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpZTFfaG9zZTsKIAlpbnQgcGNpZV9lcCA9IChob3N0X2FnZW50ID09IDUpOwpAQCAtMjI4LDMyICsyMjgsMzIgQEAKIAogCQkvKiBpbmJvdW5kICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX0JVUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9CQVNFLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fUEhZUywKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJCS8qIG91dGJvdW5kIGlvICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkJICAgICAgIENGR19QQ0lFMV9JT19CQVNFLAotCQkJICAgICAgIENGR19QQ0lFMV9JT19QSFlTLAotCQkJICAgICAgIENGR19QQ0lFMV9JT19TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfSU9fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9JT19TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7Ci0jaWZkZWYgQ0ZHX1BDSUUxX01FTV9CQVNFMgorI2lmZGVmIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UyCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMywKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX0JBU0UyLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fUEhZUzIsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9TSVpFMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9QSFlTMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFMiwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAJCWhvc2UtPnJlZ2lvbl9jb3VudCsrOwogI2VuZGlmCkBAIC0yNzgsNyArMjc4LDcgQEAKIAogI2lmZGVmIENPTkZJR19QQ0kxCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJMV9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0kxX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaTFfaG9zZTsKIApAQCAtMzAxLDIzICszMDEsMjMgQEAKIAogCQkvKiBpbmJvdW5kICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX0JVUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJCS8qIG91dGJvdW5kIGlvICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkJICAgICAgIENGR19QQ0kxX0lPX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSTFfSU9fUEhZUywKLQkJCSAgICAgICBDRkdfUENJMV9JT19TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwogCQlob3NlLT5maXJzdF9idXNubz1maXJzdF9mcmVlX2J1c25vOwpAQCAtMzM3LDI3ICszMzcsMjcgQEAKIAogI2lmZGVmIENPTkZJR19QQ0kyCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJMl9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0kyX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaTJfaG9zZTsKIAogCWlmICghKGRldmRpc3IgJiBNUEM4NXh4X0RFVkRJU1JfUENJMikpIHsKIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJICAgICAgIENGR19QQ0kyX01FTV9CQVNFLAotCQkJICAgICAgIENGR19QQ0kyX01FTV9QSFlTLAotCQkJICAgICAgIENGR19QQ0kyX01FTV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSAgICAgICBDRkdfUENJMl9JT19CQVNFLAotCQkJICAgICAgIENGR19QQ0kyX0lPX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSTJfSU9fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfSU9fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfSU9fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfSU9fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKIAkJaG9zZS0+Zmlyc3RfYnVzbm89Zmlyc3RfZnJlZV9idXNubzsKZGlmZiAtLWdpdCBhL2JvYXJkL2F0dW04NTQ4L2xhdy5jIGIvYm9hcmQvYXR1bTg1NDgvbGF3LmMKaW5kZXggYjY2ZmQ3Yi4uYjcwYjA5MSAxMDA2NDQKLS0tIGEvYm9hcmQvYXR1bTg1NDgvbGF3LmMKKysrIGIvYm9hcmQvYXR1bTg1NDgvbGF3LmMKQEAgLTQ4LDE0ICs0OCwxNCBAQAogICovCiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7Ci0JU0VUX0xBVyhDRkdfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSTFfSU9fUEhZUywgTEFXQVJfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSTJfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8yKSwKLQlTRVRfTEFXKENGR19QQ0kyX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCi0JU0VUX0xBVyhDRkdfUENJRTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSUVfMSksCi0JU0VUX0xBVyhDRkdfUENJRTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSUVfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9JT19QSFlTLCBMQVdBUl9TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0lfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8yKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMl9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJXzIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSUVfMSksCiAJLyogTEJDIHdpbmRvdyAtIG1hcHMgMjU2TSAweGYwMDAwMDAwIC0+IDB4ZmZmZmZmZmYgKi8KLQlTRVRfTEFXKENGR19MQkNfQ0FDSEVfQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfTEJDX0NBQ0hFX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYXR1bTg1NDgvdGxiLmMgYi9ib2FyZC9hdHVtODU0OC90bGIuYwppbmRleCAxZWY0ZGU0Li5lZjc5NDJjIDEwMDY0NAotLS0gYS9ib2FyZC9hdHVtODU0OC90bGIuYworKysgYi9ib2FyZC9hdHVtODU0OC90bGIuYwpAQCAtMjgsMTYgKzI4LDE2IEBACiAKIHN0cnVjdCBmc2xfZV90bGJfZW50cnkgdGxiX3RhYmxlW10gPSB7CiAJLyogVExCIDAgLSBmb3IgdGVtcCBzdGFjayBpbiBjYWNoZSAqLwotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIsIENGR19JTklUX1JBTV9BRERSLAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKIApAQCAtNDcsMTEgKzQ3LDExIEBACiAJICogMHhmODAwMDAwMAkxMjhNCUZMQVNICiAJICogT3V0IG9mIHJlc2V0IHRoaXMgZW50cnkgaXMgb25seSA0Sy4KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19GTEFTSF9CQVNFICsgMHg0MDAwMDAwLCBDRkdfRkxBU0hfQkFTRSArIDB4NDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwMDAwMCwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKLQlTRVRfVExCX0VOVFJZKDEsIENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMSwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTU5LDcgKzU5LDcgQEAKIAkgKiBUTEIgMjoJMUcJTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ODAwMDAwMDAJMUcJUENJMS9QQ0lFICA4LDksYSxiCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJX1BIWVMsIENGR19QQ0lfUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJX1BIWVMsIENPTkZJR19TWVNfUENJX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAyLCBCT09LRV9QQUdFU1pfMUcsIDEpLAogCkBAIC02NywxMSArNjcsMTEgQEAKIAkgKiBUTEIgMywgNDoJNTEyTQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhjMDAwMDAwMAkxRwlQQ0kyCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMl9NRU1fUEhZUywgQ0ZHX1BDSTJfTUVNX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDMsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIAotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTJfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDRkdfUENJMl9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNCwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC04Miw3ICs4Miw3IEBACiAJICogMHhlMjEwXzAwMDAJMU0JUENJMiBJTwogCSAqIDB4ZTMwMF8wMDAwCTFNCVBDSWUgSU8KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogfTsKZGlmZiAtLWdpdCBhL2JvYXJkL2JhcmNvL2JhcmNvLmMgYi9ib2FyZC9iYXJjby9iYXJjby5jCmluZGV4IGY4YjIwODQuLmVkMzU1NzIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2JhcmNvL2JhcmNvLmMKKysrIGIvYm9hcmQvYmFyY28vYmFyY28uYwpAQCAtOTAsNyArOTAsNyBAQAogCWxvbmcgbWVhcjE7CiAJbG9uZyBlbWVhcjE7CiAKLQlzaXplID0gZ2V0X3JhbV9zaXplIChDRkdfU0RSQU1fQkFTRSwgQ0ZHX01BWF9SQU1fU0laRSk7CisJc2l6ZSA9IGdldF9yYW1fc2l6ZSAoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX01BWF9SQU1fU0laRSk7CiAKIAluZXdfYmFuazBfZW5kID0gc2l6ZSAtIDE7CiAJbWVhcjEgPSBtcGM4MjR4X21wYzEwN19nZXRyZWcgKE1FQVIxKTsKQEAgLTE4OCwxNCArMTg4LDE0IEBACiB1bnNpZ25lZCBzY2FuX2ZsYXNoICh2b2lkKQogewogCWNoYXIgc2VjdGlvbltdID0gICJrZXJuZWwiOwotCWludCBjZmdGaWxlTGVuICA9ICAoQ0ZHX0ZMQVNIX0VSQVNFX1NFQ1RPUl9MRU5HVEggPj4gMSk7CisJaW50IGNmZ0ZpbGVMZW4gID0gIChDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1NFQ1RPUl9MRU5HVEggPj4gMSk7CiAJaW50IHNlY3Rpb25QdHIgID0gMDsKIAlpbnQgZm91bmRJdGVtICAgPSAwOyAvKiAwOiBOb25lLCAxOiBzZWN0aW9uIGZvdW5kLCAyOiAiPSIgZm91bmQgKi8KIAlpbnQgYnVmUHRyOwogCXVuc2lnbmVkIGNoYXIgKmJ1ZjsKIAotCWJ1ZiA9ICh1bnNpZ25lZCBjaGFyKikoQ0ZHX0ZMQVNIX1JBTkdFX0JBU0UgKyBDRkdfRkxBU0hfUkFOR0VfU0laRSBcCi0JCQktIENGR19GTEFTSF9FUkFTRV9TRUNUT1JfTEVOR1RIKTsKKwlidWYgPSAodW5zaWduZWQgY2hhciopKENPTkZJR19TWVNfRkxBU0hfUkFOR0VfQkFTRSArIENPTkZJR19TWVNfRkxBU0hfUkFOR0VfU0laRSBcCisJCQktIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfU0VDVE9SX0xFTkdUSCk7CiAJZm9yIChidWZQdHIgPSAwOyBidWZQdHIgPCBjZmdGaWxlTGVuOyArK2J1ZlB0cikgewogCQlpZiAoKGJ1ZltidWZQdHJdPT0weEZGKSAmJiAoKihpbnQqKShidWYrYnVmUHRyKT09MHhGRkZGRkZGRikpIHsKIAkJCXJldHVybiBCT09UX0RFRkFVTFQ7CkBAIC0yMzYsMTQgKzIzNiwxNCBAQAogCiAJc3dpdGNoIChib290aW1hZ2UpIHsKIAljYXNlIFRSWV9XT1JLSU5HOgotCQlpbmZvLT5hZGRyZXNzID0gQ0ZHX1dPUktJTkdfS0VSTkVMX0FERFJFU1M7CisJCWluZm8tPmFkZHJlc3MgPSBDT05GSUdfU1lTX1dPUktJTkdfS0VSTkVMX0FERFJFU1M7CiAJCWJyZWFrOwogCWNhc2UgQk9PVF9XT1JLSU5HIDoKLQkJaW5mby0+YWRkcmVzcyA9IENGR19XT1JLSU5HX0tFUk5FTF9BRERSRVNTOworCQlpbmZvLT5hZGRyZXNzID0gQ09ORklHX1NZU19XT1JLSU5HX0tFUk5FTF9BRERSRVNTOwogCQlicmVhazsKIAljYXNlIEJPT1RfREVGQVVMVDoKIAlkZWZhdWx0OgotCQlpbmZvLT5hZGRyZXNzPSBDRkdfREVGQVVMVF9LRVJORUxfQUREUkVTUzsKKwkJaW5mby0+YWRkcmVzcz0gQ09ORklHX1NZU19ERUZBVUxUX0tFUk5FTF9BRERSRVNTOwogCiAJfQogCWluZm8tPnNpemUgPSAqKCh1bnNpZ25lZCBpbnQgKikoaW5mby0+YWRkcmVzcyApKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2JhcmNvL2JhcmNvX3N2Yy5oIGIvYm9hcmQvYmFyY28vYmFyY29fc3ZjLmgKaW5kZXggYmQ5MjRmMi4uZTEwMzI2MCAxMDA2NDQKLS0tIGEvYm9hcmQvYmFyY28vYmFyY29fc3ZjLmgKKysrIGIvYm9hcmQvYmFyY28vYmFyY29fc3ZjLmgKQEAgLTM4LDE2ICszOCwxNiBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogCiAvKiBEZWZpbmVzIGZvciB0aGUgYmFyY29oeWRyYSBib2FyZCAqLwotI2lmbmRlZiBDRkdfRkxBU0hfRVJBU0VfU0VDVE9SX0xFTkdUSAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfU0VDVE9SX0xFTkdUSCAoMHgxMDAwMCkKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9TRUNUT1JfTEVOR1RICisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfU0VDVE9SX0xFTkdUSCAoMHgxMDAwMCkKICNlbmRpZgogCi0jaWZuZGVmIENGR19ERUZBVUxUX0tFUk5FTF9BRERSRVNTCi0jZGVmaW5lIENGR19ERUZBVUxUX0tFUk5FTF9BRERSRVNTIChDRkdfRkxBU0hfQkFTRSArIDB4MzAwMDApCisjaWZuZGVmIENPTkZJR19TWVNfREVGQVVMVF9LRVJORUxfQUREUkVTUworI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfS0VSTkVMX0FERFJFU1MgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MzAwMDApCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfV09SS0lOR19LRVJORUxfQUREUkVTUwotI2RlZmluZSBDRkdfV09SS0lOR19LRVJORUxfQUREUkVTUyAoMHhGRkUwMDAwMCkKKyNpZm5kZWYgQ09ORklHX1NZU19XT1JLSU5HX0tFUk5FTF9BRERSRVNTCisjZGVmaW5lIENPTkZJR19TWVNfV09SS0lOR19LRVJORUxfQUREUkVTUyAoMHhGRkUwMDAwMCkKICNlbmRpZgogCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2JhcmNvL2Vhcmx5X2luaXQuUyBiL2JvYXJkL2JhcmNvL2Vhcmx5X2luaXQuUwppbmRleCAwN2RhZmI3Li41MzFkY2RmIDEwMDY0NAotLS0gYS9ib2FyZC9iYXJjby9lYXJseV9pbml0LlMKKysrIGIvYm9hcmQvYmFyY28vZWFybHlfaW5pdC5TCkBAIC0zMiw2OCArMzIsNjggQEAKIAogI2lmIGRlZmluZWQoVVNFX0RJTkszMikKICAgLyogV2UgYXJlIHJ1bm5pbmcgZnJvbSBSQU0sIHNvIGRvIG5vdCBjbGVhciB0aGUgTUNDUjFfTUVNR08gYml0ISAqLwotICAjZGVmaW5lIE1DQ1IxVkFMICgoQ0ZHX1JPTU5BTCA8PCBNQ0NSMV9ST01OQUxfU0hJRlQpIHwgKENGR19ST01GQUwgPDwgTUNDUjFfUk9NRkFMX1NISUZUKSB8IE1DQ1IxX01FTUdPKQorICAjZGVmaW5lIE1DQ1IxVkFMICgoQ09ORklHX1NZU19ST01OQUwgPDwgTUNDUjFfUk9NTkFMX1NISUZUKSB8IChDT05GSUdfU1lTX1JPTUZBTCA8PCBNQ0NSMV9ST01GQUxfU0hJRlQpIHwgTUNDUjFfTUVNR08pCiAjZWxzZQotICAjZGVmaW5lIE1DQ1IxVkFMIChDRkdfUk9NTkFMIDw8IE1DQ1IxX1JPTU5BTF9TSElGVCkgfCAoQ0ZHX1JPTUZBTCA8PCBNQ0NSMV9ST01GQUxfU0hJRlQpCisgICNkZWZpbmUgTUNDUjFWQUwgKENPTkZJR19TWVNfUk9NTkFMIDw8IE1DQ1IxX1JPTU5BTF9TSElGVCkgfCAoQ09ORklHX1NZU19ST01GQUwgPDwgTUNDUjFfUk9NRkFMX1NISUZUKQogI2VuZGlmCiAKIAkudGV4dAogCiAJLyogVmFsdWVzIHRvIHByb2dyYW0gaW50byBtZW1vcnkgY29udHJvbGxlciByZWdpc3RlcnMgKi8KIHRibDoJLmxvbmcJTUNDUjEsIE1DQ1IxVkFMCi0JLmxvbmcJTUNDUjIsIENGR19SRUZJTlQgPDwgTUNDUjJfUkVGSU5UX1NISUZUCisJLmxvbmcJTUNDUjIsIENPTkZJR19TWVNfUkVGSU5UIDw8IE1DQ1IyX1JFRklOVF9TSElGVAogCS5sb25nCU1DQ1IzCi0JLmxvbmcJKCgoQ0ZHX0JTVE9QUkUgJiAweDAwMDAwMGYwKSA+PiA0KSA8PCBNQ0NSM19CU1RPUFJFMlRPNV9TSElGVCkgfCBcCi0JCShDRkdfUkVGUkVDIDw8IE1DQ1IzX1JFRlJFQ19TSElGVCkgfCBcCi0JCShDRkdfUkRMQVQgIDw8IE1DQ1IzX1JETEFUX1NISUZUKQorCS5sb25nCSgoKENPTkZJR19TWVNfQlNUT1BSRSAmIDB4MDAwMDAwZjApID4+IDQpIDw8IE1DQ1IzX0JTVE9QUkUyVE81X1NISUZUKSB8IFwKKwkJKENPTkZJR19TWVNfUkVGUkVDIDw8IE1DQ1IzX1JFRlJFQ19TSElGVCkgfCBcCisJCShDT05GSUdfU1lTX1JETEFUICA8PCBNQ0NSM19SRExBVF9TSElGVCkKIAkubG9uZwlNQ0NSNAotCS5sb25nCShDRkdfUFJFVE9BQ1QgPDwgTUNDUjRfUFJFVE9BQ1RfU0hJRlQpIHwgKENGR19BQ1RUT1BSRSA8PCBNQ0NSNF9BQ1RUT1BSRV9TSElGVCkgfCBcCi0JCShDRkdfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDw8IDIwKSB8IFwKLQkJKCgoQ0ZHX0JTVE9QUkUgJiAweDAwMDAwMzAwKSA+PiA4KSA8PCBNQ0NSNF9CU1RPUFJFMFRPMV9TSElGVCApIHwgXAotCQkoKENGR19TRE1PREVfQ0FTX0xBVCA8PCA0KSB8IChDRkdfU0RNT0RFX1dSQVAgPDwgMykgfCBcCi0JCShDRkdfU0RNT0RFX0JVUlNUTEVOKSA8PCBNQ0NSNF9TRE1PREVfU0hJRlQpIHwgXAotCQkoQ0ZHX0FDVFRPUlcgPDwgTUNDUjRfQUNUVE9SV19TSElGVCkgfCBcCi0JCSgoQ0ZHX0JTVE9QUkUgJiAweDAwMDAwMDBmKSA8PCBNQ0NSNF9CU1RPUFJFNlRPOV9TSElGVCApCisJLmxvbmcJKENPTkZJR19TWVNfUFJFVE9BQ1QgPDwgTUNDUjRfUFJFVE9BQ1RfU0hJRlQpIHwgKENPTkZJR19TWVNfQUNUVE9QUkUgPDwgTUNDUjRfQUNUVE9QUkVfU0hJRlQpIHwgXAorCQkoQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgPDwgMjApIHwgXAorCQkoKChDT05GSUdfU1lTX0JTVE9QUkUgJiAweDAwMDAwMzAwKSA+PiA4KSA8PCBNQ0NSNF9CU1RPUFJFMFRPMV9TSElGVCApIHwgXAorCQkoKENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQgPDwgNCkgfCAoQ09ORklHX1NZU19TRE1PREVfV1JBUCA8PCAzKSB8IFwKKwkJKENPTkZJR19TWVNfU0RNT0RFX0JVUlNUTEVOKSA8PCBNQ0NSNF9TRE1PREVfU0hJRlQpIHwgXAorCQkoQ09ORklHX1NZU19BQ1RUT1JXIDw8IE1DQ1I0X0FDVFRPUldfU0hJRlQpIHwgXAorCQkoKENPTkZJR19TWVNfQlNUT1BSRSAmIDB4MDAwMDAwMGYpIDw8IE1DQ1I0X0JTVE9QUkU2VE85X1NISUZUICkKIAkubG9uZwlNU0FSMQotCS5sb25nCSgoKENGR19CQU5LMF9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKLQkJKCgoQ0ZHX0JBTksxX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzJfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LM19TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQorCS5sb25nCSgoKENPTkZJR19TWVNfQkFOSzBfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzFfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzJfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzNfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwlFTVNBUjEKLQkubG9uZwkoKChDRkdfQkFOSzBfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICAwKSB8IFwKLQkJKCgoQ0ZHX0JBTksxX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LMl9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwgXAotCQkoKChDRkdfQkFOSzNfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KQorCS5sb25nCSgoKENPTkZJR19TWVNfQkFOSzBfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMV9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTksyX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzNfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCU1TQVIyCi0JLmxvbmcJKCgoQ0ZHX0JBTks0X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDApIHwgXAotCQkoKChDRkdfQkFOSzVfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LNl9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8IFwKLQkJKCgoQ0ZHX0JBTks3X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CQU5LNF9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LNV9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICA4KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LNl9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LN19TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCUVNU0FSMgotCS5sb25nCSgoKENGR19CQU5LNF9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDApIHwgXAotCQkoKChDRkdfQkFOSzVfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICA4KSB8IFwKLQkJKCgoQ0ZHX0JBTks2X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LN19TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CQU5LNF9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDApIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks1X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzZfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LN19TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpCiAJLmxvbmcJTUVBUjEKLQkubG9uZwkoKChDRkdfQkFOSzBfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDApIHwgXAotCQkoKChDRkdfQkFOSzFfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzJfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAotCQkoKChDRkdfQkFOSzNfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CQU5LMF9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzFfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDgpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTksyX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LM19FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwlFTUVBUjEKLQkubG9uZwkoKChDRkdfQkFOSzBfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LMV9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICA4KSB8IFwKLQkJKCgoQ0ZHX0JBTksyX0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwgXAotCQkoKChDRkdfQkFOSzNfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTkswX0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDApIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTksxX0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTksyX0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTkszX0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpCiAJLmxvbmcJTUVBUjIKLQkubG9uZwkoKChDRkdfQkFOSzRfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDApIHwgXAotCQkoKChDRkdfQkFOSzVfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzZfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAotCQkoKChDRkdfQkFOSzdfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CQU5LNF9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzVfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDgpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks2X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LN19FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwlFTUVBUjIKLQkubG9uZwkoKChDRkdfQkFOSzRfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LNV9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICA4KSB8IFwKLQkJKCgoQ0ZHX0JBTks2X0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwgXAotCQkoKChDRkdfQkFOSzdfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTks0X0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDApIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks1X0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks2X0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks3X0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpCiAJLmxvbmcJMAogCiAKQEAgLTEyMyw3ICsxMjMsNyBAQAogCS8qIHNldCBiYW5rIGVuYWJsZSBiaXRzICovCiAJbGlzCXIwLCBNQkVSQGgKIAlvcmkJcjAsIDAsIE1CRVJAbAotCWxpCXIxLCBDRkdfQkFOS19FTkFCTEUKKwlsaQlyMSwgQ09ORklHX1NZU19CQU5LX0VOQUJMRQogCXN0d2JyeAlyMCwgMCwgcjMKIAllaWVpbwogCXN0YglyMSwgMChyNCkKQEAgLTE0NSw4ICsxNDUsOCBAQAogCWVpZWlvCiAKIAkvKiBzZXQgdXAgc3RhY2sgcG9pbnRlciAqLwotCWxpcwlyMSwgQ0ZHX0lOSVRfU1BfT0ZGU0VUQGgKLQlvcmkJcjEsIHIxLCBDRkdfSU5JVF9TUF9PRkZTRVRAbAorCWxpcwlyMSwgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVEBoCisJb3JpCXIxLCByMSwgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVEBsCiAKIAltdGxyCXIxMAogCWJscgpkaWZmIC0tZ2l0IGEvYm9hcmQvYmFyY28vZmxhc2guYyBiL2JvYXJkL2JhcmNvL2ZsYXNoLmMKaW5kZXggNTNmYzU4Yy4uYzllZmIxNSAxMDA2NDQKLS0tIGEvYm9hcmQvYmFyY28vZmxhc2guYworKysgYi9ib2FyZC9iYXJjby9mbGFzaC5jCkBAIC01NiwxMSArNTYsMTEgQEAKICNkZWZpbmUgUk9NX0NTMF9TVEFSVAkweEZGODAwMDAwCiAjZGVmaW5lIFJPTV9DUzFfU1RBUlQJMHhGRjAwMDAwMAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKICMgaWZuZGVmICBDT05GSUdfRU5WX0FERFIKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgIChDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRSAgQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTE0MCwxMCArMTQwLDEwIEBACiB7CiAJdW5zaWduZWQgbG9uZyBpOwogCXVuc2lnbmVkIGNoYXIgajsKLQlzdGF0aWMgY29uc3QgdWxvbmcgZmxhc2hfYmFua3NbXSA9IENGR19GTEFTSF9CQU5LUzsKKwlzdGF0aWMgY29uc3QgdWxvbmcgZmxhc2hfYmFua3NbXSA9IENPTkZJR19TWVNfRkxBU0hfQkFOS1M7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKyl7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspewogCQlmbGFzaF9pbmZvX3QgKiBjb25zdCBwZmxpbmZvID0gJmZsYXNoX2luZm9baV07CiAJCXBmbGluZm8tPmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJcGZsaW5mby0+c2l6ZSA9IDA7CkBAIC0yMTcsMTAgKzIxNywxMCBAQAogCQkJCWJyZWFrOwogCQl9CiAJCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycyAqLwotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJCUNGR19NT05JVE9SX0JBU0UsCi0JCQkJQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCQkmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtNDU4LDcgKzQ1OCw3IEBACiAJYWRkciA9IChGTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbMF0gKyAoCiAJCQkJKGluZm8tPnN0YXJ0W2xfc2VjdF0gLSBpbmZvLT5zdGFydFswXSkgPDwgc2g4YikpOwogCXdoaWxlICgoYWRkclswXSAmIChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0gKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC01OTksNyArNTk5LDcgQEAKIAkJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCQl3aGlsZSAoKGRlc3QyW2kgPDwgc2g4Yl0gJiAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9CiAJCQkJKGRhdGEyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSkgewotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gKDEpOwogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9iYzM0NTAvYmMzNDUwLmMgYi9ib2FyZC9iYzM0NTAvYmMzNDUwLmMKaW5kZXggN2RkZjc0Yy4uNmZiMDA5NiAxMDA2NDQKLS0tIGEvYm9hcmQvYmMzNDUwL2JjMzQ1MC5jCisrKyBiL2JvYXJkL2JjMzQ1MC9iYzM0NTAuYwpAQCAtNTMsNyArNTMsNyBAQAogdm9pZCBwczJtdWx0X2Vhcmx5X2luaXQodm9pZCk7CiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIHN0YXRpYyB2b2lkIHNkcmFtX3N0YXJ0IChpbnQgaGlfYWRkcikKIHsKIAlsb25nIGhpX2FkZHJfYml0ID0gaGlfYWRkciA/IDB4MDEwMDAwMDAgOiAwOwpAQCAtMTAwLDcgKzEwMCw3IEBACiAKIC8qCiAgKiBBVFRFTlRJT046IEFsdGhvdWdoIHBhcnRpYWxseSByZWZlcmVuY2VkIGluaXRkcmFtIGRvZXMgTk9UIG1ha2UgcmVhbCB1c2UKLSAqCSAgICAgIHVzZSBvZiBDRkdfU0RSQU1fQkFTRS4gVGhlIGNvZGUgZG9lcyBub3Qgd29yayBpZiBDRkdfU0RSQU1fQkFTRQorICoJICAgICAgdXNlIG9mIENPTkZJR19TWVNfU0RSQU1fQkFTRS4gVGhlIGNvZGUgZG9lcyBub3Qgd29yayBpZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UKICAqCSAgICAgIGlzIHNvbWV0aGluZyBlbHNlIHRoYW4gMHgwMDAwMDAwMC4KICAqLwogCkBAIC0xMDksNyArMTA5LDcgQEAKIHsKIAl1bG9uZyBkcmFtc2l6ZSA9IDA7CiAJdWxvbmcgZHJhbXNpemUyID0gMDsKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgdGVzdDEsIHRlc3QyOwogCiAJLyogc2V0dXAgU0RSQU0gY2hpcCBzZWxlY3RzICovCkBAIC0xMzAsOSArMTMwLDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MwIG9ubHkgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMTU4LDkgKzE1OCw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMSBvbmx5ICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4MjAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHgyMDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4MjAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHgyMDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CiAJCWRyYW1zaXplMiA9IHRlc3QxOwpAQCAtMTgxLDcgKzE4MSw3IEBACiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MxQ0ZHID0gZHJhbXNpemU7IC8qIGRpc2FibGVkICovCiAJfQogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiByZXRyaWV2ZSBzaXplIG9mIG1lbW9yeSBjb25uZWN0ZWQgdG8gU0RSQU0gQ1MwICovCiAJZHJhbXNpemUgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyAmIDB4RkY7CkBAIC0xOTksNyArMTk5LDcgQEAKIAkJZHJhbXNpemUyID0gMDsKIAl9CiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJcmV0dXJuIGRyYW1zaXplOwogfQpAQCAtMjA5LDcgKzIwOSw3IEBACiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7CiAJdWxvbmcgZHJhbXNpemUgPSAwOwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAl1bG9uZyB0ZXN0MSwgdGVzdDI7CiAKIAkvKiBzZXR1cCBhbmQgZW5hYmxlIFNEUkFNIGNoaXAgc2VsZWN0cyAqLwpAQCAtMjI4LDkgKzIyOCw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKHVsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKCh1bG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKHVsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKCh1bG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CiAJCWRyYW1zaXplID0gdGVzdDE7CkBAIC0yNDEsMTIgKzI0MSwxMiBAQAogCS8qIHNldCBTRFJBTSBlbmQgYWRkcmVzcyBhY2NvcmRpbmcgdG8gc2l6ZSAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fU1RPUCA9ICgoZHJhbXNpemUgLSAxKSA+PiAxNSk7CiAKLSNlbHNlIC8qIENGR19SQU1CT09UICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIFJldHJpZXZlIGFtb3VudCBvZiBTRFJBTSBhdmFpbGFibGUgKi8KIAlkcmFtc2l6ZSA9ICgoKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9TVE9QICsgMSkgPDwgMTUpOwogCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCXJldHVybiBkcmFtc2l6ZTsKIH0KQEAgLTQwNSwzNCArNDA1LDM0IEBACiAJICovCiAKIAkvKiBzYXZlIG9yaWdpbmFsIFNSQU0gY29udGVudCAgKi8KLQlzYXZlID0gKih2b2xhdGlsZSB1MTYgKilDRkdfQ1MyX1NUQVJUOworCXNhdmUgPSAqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MyX1NUQVJUOwogCXJlc3RvcmUgPSAxOwogCiAJLyogd3JpdGUgdGVzdCBwYXR0ZXJuIHRvIFNSQU0gKi8KLQkqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzJfU1RBUlQgPSAweEE1QTU7CisJKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMl9TVEFSVCA9IDB4QTVBNTsKIAlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogCS8qCiAJICogUHV0IGEgZGlmZmVyZW50IHBhdHRlcm4gb24gdGhlIGRhdGEgbGluZXM6IG90aGVyd2lzZSB0aGV5IG1heSBmbG9hdAogCSAqIGxvbmcgZW5vdWdoIHRvIHJlYWQgYmFjayB3aGF0IHdlIHdyb3RlLgogCSAqLwotCXRtcCA9ICoodm9sYXRpbGUgdTE2ICopQ0ZHX0ZMQVNIX0JBU0U7CisJdG1wID0gKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJaWYgKHRtcCA9PSAweEE1QTUpCiAJCXB1dHMgKCIhISBwb3NzaWJsZSBlcnJvciBpbiBTUkFNIGRldGVjdGlvblxuIik7CiAKLQlpZiAoKih2b2xhdGlsZSB1MTYgKilDRkdfQ1MyX1NUQVJUICE9IDB4QTVBNSkgeworCWlmICgqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MyX1NUQVJUICE9IDB4QTVBNSkgewogCQkvKiBubyBTUkFNIGF0IGFsbCwgZGlzYWJsZSBjcyAqLwogCQkqKHZ1X2xvbmcgKilNUEM1WFhYX0FEREVDUiAmPSB+KDEgPDwgMTgpOwogCQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMl9TVEFSVCA9IDB4MDAwMEZGRkY7CiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MyX1NUT1AgPSAweDAwMDBGRkZGOwogCQlyZXN0b3JlID0gMDsKIAkJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKLQl9IGVsc2UgaWYgKCoodm9sYXRpbGUgdTE2ICopKENGR19DUzJfU1RBUlQgKyAoMTw8MTkpKSA9PSAweEE1QTUpIHsKKwl9IGVsc2UgaWYgKCoodm9sYXRpbGUgdTE2ICopKENPTkZJR19TWVNfQ1MyX1NUQVJUICsgKDE8PDE5KSkgPT0gMHhBNUE1KSB7CiAJCS8qIG1ha2Ugc3VyZSB0aGF0IHdlIGFjY2VzcyBhIG1pcnJvcmVkIGFkZHJlc3MgKi8KLQkJKih2b2xhdGlsZSB1MTYgKilDRkdfQ1MyX1NUQVJUID0gMHgxMTExOworCQkqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MyX1NUQVJUID0gMHgxMTExOwogCQlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwotCQlpZiAoKih2b2xhdGlsZSB1MTYgKikoQ0ZHX0NTMl9TVEFSVCArICgxPDwxOSkpID09IDB4MTExMSkgeworCQlpZiAoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19DUzJfU1RBUlQgKyAoMTw8MTkpKSA9PSAweDExMTEpIHsKIAkJCS8qIFNSQU0gc2l6ZSA9IDUxMiBrQnl0ZSAqLwotCQkJKih2dV9sb25nICopTVBDNVhYWF9DUzJfU1RPUCA9IFNUT1BfUkVHKENGR19DUzJfU1RBUlQsCisJCQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMl9TVE9QID0gU1RPUF9SRUcoQ09ORklHX1NZU19DUzJfU1RBUlQsCiAJCQkJCQkJCTB4ODAwMDApOwogCQkJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKIAkJCXB1dHMgKCJTUkFNOiAgNTEyIGtCXG4iKTsKQEAgLTQ0NCw3ICs0NDQsNyBAQAogCX0KIAkvKiByZXN0b3JlIG9yaWdpYW5sIFNSQU0gY29udGVudCAgKi8KIAlpZiAocmVzdG9yZSkgewotCQkqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzJfU1RBUlQgPSBzYXZlOworCQkqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MyX1NUQVJUID0gc2F2ZTsKIAkJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKIAl9CiAKQEAgLTQ1MywyMSArNDUzLDIxIEBACiAJICovCiAKIAkvKiBzYXZlIG9yaWdpYW5sIEZCIGNvbnRlbnQgICovCi0Jc2F2ZSA9ICoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMV9TVEFSVDsKKwlzYXZlID0gKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMV9TVEFSVDsKIAlyZXN0b3JlID0gMTsKIAogCS8qIHdyaXRlIHRlc3QgcGF0dGVybiB0byBGQiBtZW1vcnkgKi8KLQkqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzFfU1RBUlQgPSAweEE1QTU7CisJKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMV9TVEFSVCA9IDB4QTVBNTsKIAlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogCS8qCiAJICogUHV0IGEgZGlmZmVyZW50IHBhdHRlcm4gb24gdGhlIGRhdGEgbGluZXM6IG90aGVyd2lzZSB0aGV5IG1heSBmbG9hdAogCSAqIGxvbmcgZW5vdWdoIHRvIHJlYWQgYmFjayB3aGF0IHdlIHdyb3RlLgogCSAqLwotCXRtcCA9ICoodm9sYXRpbGUgdTE2ICopQ0ZHX0ZMQVNIX0JBU0U7CisJdG1wID0gKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJaWYgKHRtcCA9PSAweEE1QTUpCiAJCXB1dHMgKCIhISBwb3NzaWJsZSBlcnJvciBpbiBncmFmaWMgY29udHJvbGxlciBkZXRlY3Rpb25cbiIpOwogCi0JaWYgKCoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMV9TVEFSVCAhPSAweEE1QTUpIHsKKwlpZiAoKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMV9TVEFSVCAhPSAweEE1QTUpIHsKIAkJLyogbm8gZ3JhZmljIGNvbnRyb2xsZXIgYXQgYWxsLCBkaXNhYmxlIGNzICovCiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQURERUNSICY9IH4oMSA8PCAxNyk7CiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MxX1NUQVJUID0gMHgwMDAwRkZGRjsKQEAgLTQ3OSw3ICs0NzksNyBAQAogCX0KIAkvKiByZXN0b3JlIG9yaWdpYW5sIEZCIGNvbnRlbnQJKi8KIAlpZiAocmVzdG9yZSkgewotCQkqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzFfU1RBUlQgPSBzYXZlOworCQkqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MxX1NUQVJUID0gc2F2ZTsKIAkJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKIAl9CiAKQEAgLTYwNywyMSArNjA3LDIxIEBACiAJICovCiAKIAkvKiBzYXZlIG9yaWdpYW5sIEZCIGNvbnRlbnQgICovCi0Jc2F2ZSA9ICoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMV9TVEFSVDsKKwlzYXZlID0gKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMV9TVEFSVDsKIAlyZXN0b3JlID0gMTsKIAogCS8qIHdyaXRlIHRlc3QgcGF0dGVybiB0byBGQiBtZW1vcnkgKi8KLQkqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzFfU1RBUlQgPSAweEE1QTU7CisJKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMV9TVEFSVCA9IDB4QTVBNTsKIAlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogCS8qCiAJICogUHV0IGEgZGlmZmVyZW50IHBhdHRlcm4gb24gdGhlIGRhdGEgbGluZXM6IG90aGVyd2lzZSB0aGV5IG1heSBmbG9hdAogCSAqIGxvbmcgZW5vdWdoIHRvIHJlYWQgYmFjayB3aGF0IHdlIHdyb3RlLgogCSAqLwotCXRtcCA9ICoodm9sYXRpbGUgdTE2ICopQ0ZHX0ZMQVNIX0JBU0U7CisJdG1wID0gKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJaWYgKHRtcCA9PSAweEE1QTUpCiAJCXB1dHMgKCIhISBwb3NzaWJsZSBlcnJvciBpbiBncmFmaWMgY29udHJvbGxlciBkZXRlY3Rpb25cbiIpOwogCi0JaWYgKCoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMV9TVEFSVCAhPSAweEE1QTUpIHsKKwlpZiAoKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMV9TVEFSVCAhPSAweEE1QTUpIHsKIAkJLyogbm8gZ3JhZmljIGNvbnRyb2xsZXIgZm91bmQgKi8KIAkJcmVzdG9yZSA9IDA7CiAJCXJldCA9IDA7CkBAIC02MzAsNyArNjMwLDcgQEAKIAl9CiAKIAlpZiAocmVzdG9yZSkgewotCQkqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzFfU1RBUlQgPSBzYXZlOworCQkqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MxX1NUQVJUID0gc2F2ZTsKIAkJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKIAl9CiAJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2JvYXJkL2JjMzQ1MC9jbWRfYmMzNDUwLmMgYi9ib2FyZC9iYzM0NTAvY21kX2JjMzQ1MC5jCmluZGV4IDQ4YmM2NWQuLmFlNTA2MWYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2JjMzQ1MC9jbWRfYmMzNDUwLmMKKysrIGIvYm9hcmQvYmMzNDUwL2NtZF9iYzM0NTAuYwpAQCAtNTIsOSArNTIsOSBAQAogI2RlZmluZSBUSEVSTV9XUklURV9UTAkJMHgwMgogI2RlZmluZSBUSEVSTV9XUklURV9USAkJMHgwMQogCi0jZGVmaW5lIENGR19DUFUJCQkyCi0jZGVmaW5lIENGR18xU0hPVAkJMQotI2RlZmluZSBDRkdfU1RBTkRBTE9ORQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NQVQkJCTIKKyNkZWZpbmUgQ09ORklHX1NZU18xU0hPVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX1NUQU5EQUxPTkUJCTAKIAogc3RydWN0IHRoZXJtIHsKIAlpbnQgaGk7CkBAIC01MTMsNyArNTEzLDcgQEAKIAkJCXRoZXJtLmhpIDw8PSAxOwogCQkJdGhlcm0ubG8gPDw9IDE7CiAJCQlkczE2MjBfd3JpdGVfc3RhdGUgKCZ0aGVybSk7Ci0JCQlkczE2MjBfb3V0IChUSEVSTV9XUklURV9DT05GSUcsIDgsIENGR19TVEFOREFMT05FKTsKKwkJCWRzMTYyMF9vdXQgKFRIRVJNX1dSSVRFX0NPTkZJRywgOCwgQ09ORklHX1NZU19TVEFOREFMT05FKTsKIAkJCXJldHVybiAwOwogCQl9CiAJfQpAQCAtNTM4LDkgKzUzOCw5IEBACiAJc3RhdGljIGludCBpbml0X2RvbmUgPSAwOwogCWludCBpOwogCXN0cnVjdCBtcGM1eHh4X21zY2FuICpjYW4xID0KLQkJKHN0cnVjdCBtcGM1eHh4X21zY2FuICopIChDRkdfTUJBUiArIDB4MDkwMCk7CisJCShzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqKSAoQ09ORklHX1NZU19NQkFSICsgMHgwOTAwKTsKIAlzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqY2FuMiA9Ci0JCShzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqKSAoQ0ZHX01CQVIgKyAweDA5ODApOworCQkoc3RydWN0IG1wYzV4eHhfbXNjYW4gKikgKENPTkZJR19TWVNfTUJBUiArIDB4MDk4MCk7CiAKIAkvKiBHUElPIGNvbmZpZ3VyYXRpb24gb2YgdGhlIENBTiBwaW5zIGlzIGRvbmUgaW4gQkMzNDUwLmggKi8KIApAQCAtNjg2LDkgKzY4Niw5IEBACiB7CiAJaW50IGk7CiAJc3RydWN0IG1wYzV4eHhfbXNjYW4gKmNhbjEgPQotCQkoc3RydWN0IG1wYzV4eHhfbXNjYW4gKikgKENGR19NQkFSICsgMHgwOTAwKTsKKwkJKHN0cnVjdCBtcGM1eHh4X21zY2FuICopIChDT05GSUdfU1lTX01CQVIgKyAweDA5MDApOwogCXN0cnVjdCBtcGM1eHh4X21zY2FuICpjYW4yID0KLQkJKHN0cnVjdCBtcGM1eHh4X21zY2FuICopIChDRkdfTUJBUiArIDB4MDk4MCk7CisJCShzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqKSAoQ09ORklHX1NZU19NQkFSICsgMHgwOTgwKTsKIAogCS8qIHNlbmQgYSBtZXNzYWdlIG9uIENBTjEgKi8KIAljYW4xLT5jYW50YnNlbCA9IDB4MDE7CmRpZmYgLS1naXQgYS9ib2FyZC9iZjUzMy1lemtpdC9iZjUzMy1lemtpdC5jIGIvYm9hcmQvYmY1MzMtZXpraXQvYmY1MzMtZXpraXQuYwppbmRleCA1ODM1NjBhLi40MmM0YjUwIDEwMDY0NAotLS0gYS9ib2FyZC9iZjUzMy1lemtpdC9iZjUzMy1lemtpdC5jCisrKyBiL2JvYXJkL2JmNTMzLWV6a2l0L2JmNTMzLWV6a2l0LmMKQEAgLTUwLDEyICs1MCwxMiBAQAogCXByaW50ZigidFJDRCAlZCBTQ0xLIEN5Y2xlcyx0UlAgJWQgU0NMSyBDeWNsZXMsdFJBUyAlZCBTQ0xLIEN5Y2xlcyIKIAkgICAgICAgInRXUiAlZCBTQ0xLIEN5Y2xlcyxDQVMgTGF0ZW5jeSAlZCBTQ0xLIGN5Y2xlcyBcbiIsCiAJICAgICAgIDMsIDMsIDYsIDIsIDMpOwotCXByaW50ZigiU0RSQU0gQmVnaW46IDB4JXhcbiIsIENGR19TRFJBTV9CQVNFKTsKLQlwcmludGYoIkJhbmsgc2l6ZSA9ICVkIE1CXG4iLCBDRkdfTUFYX1JBTV9TSVpFID4+IDIwKTsKKwlwcmludGYoIlNEUkFNIEJlZ2luOiAweCV4XG4iLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOworCXByaW50ZigiQmFuayBzaXplID0gJWQgTUJcbiIsIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFID4+IDIwKTsKICNlbmRpZgotCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDRkdfU0RSQU1fQkFTRTsKLQlnZC0+YmQtPmJpX21lbXNpemUgPSBDRkdfTUFYX1JBTV9TSVpFOwotCXJldHVybiBDRkdfTUFYX1JBTV9TSVpFOworCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CisJZ2QtPmJkLT5iaV9tZW1zaXplID0gQ09ORklHX1NZU19NQVhfUkFNX1NJWkU7CisJcmV0dXJuIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFOwogfQogCiAjaWYgZGVmaW5lZChDT05GSUdfTUlTQ19JTklUX1IpCkBAIC02MywxMCArNjMsMTAgQEAKIGludCBtaXNjX2luaXRfcih2b2lkKQogewogCS8qIFNldCBkaXJlY3Rpb24gYml0cyBmb3IgVmlkZW8gZW4vZGVjb2RlciByZXNldCBhcyBvdXRwdXQgICAgICAqLwotCSoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKShDRkdfRkxBU0gxX0JBU0UgKyBQU0RfUE9SVEFfRElSKSA9CisJKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENPTkZJR19TWVNfRkxBU0gxX0JBU0UgKyBQU0RfUE9SVEFfRElSKSA9CiAJICAgIFBTREFfVkRFQ19SU1QgfCBQU0RBX1ZFTkNfUlNUOwogCS8qIERlYWN0aXZhdGUgVmlkZW8gZW4vZGVjb2RlciByZXNldCBsaW5lcyAgICAgICAgICAgICAgICAgICAgICAqLwotCSoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKShDRkdfRkxBU0gxX0JBU0UgKyBQU0RfUE9SVEFfRE9VVCkgPQorCSoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKShDT05GSUdfU1lTX0ZMQVNIMV9CQVNFICsgUFNEX1BPUlRBX0RPVVQpID0KIAkgICAgUFNEQV9WREVDX1JTVCB8IFBTREFfVkVOQ19SU1Q7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2JvYXJkL2JmNTMzLWV6a2l0L2ZsYXNoLWRlZmluZXMuaCBiL2JvYXJkL2JmNTMzLWV6a2l0L2ZsYXNoLWRlZmluZXMuaAppbmRleCA0ZTA0M2UwLi4xYTRhYTVmIDEwMDY0NAotLS0gYS9ib2FyZC9iZjUzMy1lemtpdC9mbGFzaC1kZWZpbmVzLmgKKysrIGIvYm9hcmQvYmY1MzMtZXpraXQvZmxhc2gtZGVmaW5lcy5oCkBAIC00OSwxMCArNDksMTAgQEAKICNkZWZpbmUgRkxBU0hfVE9UX1NFQ1QJCTQwCiAjZGVmaW5lIEZMQVNIX1NJWkUJCTB4MjIwMDAwCiAjZGVmaW5lIEZMQVNIX01BTl9TVAkJMgotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRQkJMHgyMDAwMDAwMAogI2RlZmluZSBSRVNFVF9WQUwJCTB4RjAKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIGludCBnZXRfY29kZXModm9pZCk7CiBpbnQgcG9sbF90b2dnbGVfYml0KGxvbmcgbE9mZnNldCk7CmRpZmYgLS1naXQgYS9ib2FyZC9iZjUzMy1lemtpdC9mbGFzaC5jIGIvYm9hcmQvYmY1MzMtZXpraXQvZmxhc2guYwppbmRleCBjZGY0ZGM2Li5hODYxZTE2IDEwMDY0NAotLS0gYS9ib2FyZC9iZjUzMy1lemtpdC9mbGFzaC5jCisrKyBiL2JvYXJkL2JmNTMzLWV6a2l0L2ZsYXNoLmMKQEAgLTgyLDcgKzgyLDcgQEAKIAogCXNpemVfYjAgPSBzaXplX2IxID0gc2l6ZV9iMiA9IDA7CiAjaWZkZWYgREVCVUcKLQlwcmludGYoIkZsYXNoIE1lbW9yeSBTdGFydCAweCV4XG4iLCBDRkdfRkxBU0hfQkFTRSk7CisJcHJpbnRmKCJGbGFzaCBNZW1vcnkgU3RhcnQgMHgleFxuIiwgQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKIAlwcmludGYoIk1lbW9yeSBNYXAgZm9yIHRoZSBGbGFzaFxuIik7CiAJcHJpbnRmKCIweDIwMDAwMDAwIC0gMHgyMDBGRkZGRiBGbGFzaCBBIFByaW1hcnkgKDFNQilcbiIpOwogCXByaW50ZigiMHgyMDEwMDAwMCAtIDB4MjAxRkZGRkYgRmxhc2ggQiBQcmltYXJ5ICgxTUIpXG4iKTsKQEAgLTkwLDIwICs5MCwyMCBAQAogCXByaW50ZigiMHgyMDI4MDAwMCAtIDB4MjAyOEZGRkYgRmxhc2ggQiBTZWNvbmRhcnkgKDY0S0IpXG4iKTsKIAlwcmludGYoIlBsZWFzZSB0eXBlIGNvbW1hbmQgZmxpbmZvIGZvciBpbmZvcm1hdGlvbiBvbiBTZWN0b3JzIFxuIik7CiAjZW5kaWYKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKENGR19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0sIDApOwotCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZShDRkdfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzFdLCAxKTsKLQlzaXplX2IyID0gZmxhc2hfZ2V0X3NpemUoQ0ZHX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1syXSwgMik7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKENPTkZJR19TWVNfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzBdLCAwKTsKKwlzaXplX2IxID0gZmxhc2hfZ2V0X3NpemUoQ09ORklHX1NZU19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMV0sIDEpOworCXNpemVfYjIgPSBmbGFzaF9nZXRfc2l6ZShDT05GSUdfU1lTX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1syXSwgMik7CiAKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOIHx8IHNpemVfYjAgPT0gMCkgewogCQlwcmludGYoIiMjIFVua25vd24gRkxBU0ggb24gQmFuayAwIC0gU2l6ZSA9IDB4JTA4bHggPSAlbGQgTUJcbiIsCiAJCSAgICAgICBzaXplX2IwLCBzaXplX2IwID4+IDIwKTsKIAl9CiAKLQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENGR19GTEFTSDBfQkFTRSwKKwkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENPTkZJR19TWVNfRkxBU0gwX0JBU0UsCiAJCQkgICAgKGZsYXNoX2luZm9bMF0uc3RhcnRbMl0gLSAxKSwgJmZsYXNoX2luZm9bMF0pOwogCiAJcmV0dXJuIChzaXplX2IwICsgc2l6ZV9iMSArIHNpemVfYjIpOwpAQCAtMTgwLDcgKzE4MCw3IEBACiAJaW50IHJldDsKIAlpbnQgZDsKIAlpZiAoYWRkciAlIDIpIHsKLQkJcmVhZF9mbGFzaChhZGRyIC0gMSAtIENGR19GTEFTSF9CQVNFLCAmZCk7CisJCXJlYWRfZmxhc2goYWRkciAtIDEgLSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZkKTsKIAkJZCA9IChpbnQpKChkICYgMHgwMEZGKSB8ICgqc3JjKysgPDwgOCkpOwogCQlyZXQgPSB3cml0ZV9kYXRhKGFkZHIgLSAxLCAyLCAodWNoYXIgKikgJiBkKTsKIAkJaWYgKHJldCA9PSBGTEFTSF9GQUlMKQpAQCAtMTk2LDcgKzE5Niw3IEBACiBpbnQgd3JpdGVfZGF0YShsb25nIGxTdGFydCwgbG9uZyBsQ291bnQsIHVjaGFyICogcG5EYXRhKQogewogCWxvbmcgaSA9IDA7Ci0JdW5zaWduZWQgbG9uZyB1bE9mZnNldCA9IGxTdGFydCAtIENGR19GTEFTSF9CQVNFOworCXVuc2lnbmVkIGxvbmcgdWxPZmZzZXQgPSBsU3RhcnQgLSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJaW50IGQ7CiAJaW50IG5TZWN0b3IgPSAwOwogCWludCBmbGFnID0gMDsKQEAgLTI4NSw3ICsyODUsNyBAQAogewogCWxvbmcgYWRkcjsKIAotCWFkZHIgPSAoQ0ZHX0ZMQVNIX0JBU0UgKyBuT2Zmc2V0KTsKKwlhZGRyID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIG5PZmZzZXQpOwogCVNTWU5DKCk7CiAJKih1bnNpZ25lZCB2b2xhdGlsZSBzaG9ydCAqKWFkZHIgPSBuVmFsdWU7CiAJU1NZTkMoKTsKQEAgLTI5Nyw3ICsyOTcsNyBAQAogaW50IHJlYWRfZmxhc2gobG9uZyBuT2Zmc2V0LCBpbnQgKnBuVmFsdWUpCiB7CiAJaW50IG5WYWx1ZSA9IDB4MDsKLQlsb25nIGFkZHIgPSAoQ0ZHX0ZMQVNIX0JBU0UgKyBuT2Zmc2V0KTsKKwlsb25nIGFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbk9mZnNldCk7CiAKIAlpZiAobk9mZnNldCAhPSAweDIpCiAJCXJlc2V0X2ZsYXNoKCk7CkBAIC0zOTYsNyArMzk2LDcgQEAKIAlpZiAoKG5CbG9jayA8IDApIHx8IChuQmxvY2sgPiBBRlBfTnVtU2VjdG9ycykpCiAJCXJldHVybiBGQUxTRTsKIAotCXVsU2VjdG9yT2ZmID0gKGFkZHJlc3MgLSBDRkdfRkxBU0hfQkFTRSk7CisJdWxTZWN0b3JPZmYgPSAoYWRkcmVzcyAtIENPTkZJR19TWVNfRkxBU0hfQkFTRSk7CiAKIAl3cml0ZV9mbGFzaCgoV1JJVEVTRVExIHwgdWxTZWN0b3JPZmYpLCBXUklURURBVEExKTsKIAl3cml0ZV9mbGFzaCgoV1JJVEVTRVEyIHwgdWxTZWN0b3JPZmYpLCBXUklURURBVEEyKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2JmNTMzLWV6a2l0L3BzZDQyNTYuaCBiL2JvYXJkL2JmNTMzLWV6a2l0L3BzZDQyNTYuaAppbmRleCBjYzY1NGI4Li45YjM4MWQyIDEwMDY0NAotLS0gYS9ib2FyZC9iZjUzMy1lemtpdC9wc2Q0MjU2LmgKKysrIGIvYm9hcmQvYmY1MzMtZXpraXQvcHNkNDI1Ni5oCkBAIC0yNyw4ICsyNyw4IEBACiAKIC8qCiAgKiBGbGFzaCBBL0IgUG9ydCBBIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXJzLgotICogQWRkcmVzc2VzIGFyZSBvZmZzZXQgdmFsdWVzIHRvIENGR19GTEFTSDFfQkFTRQotICogZm9yIEZsYXNoIEEgYW5kIENGR19GTEFTSDJfQkFTRSBmb3IgRmxhc2ggQi4KKyAqIEFkZHJlc3NlcyBhcmUgb2Zmc2V0IHZhbHVlcyB0byBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFCisgKiBmb3IgRmxhc2ggQSBhbmQgQ09ORklHX1NZU19GTEFTSDJfQkFTRSBmb3IgRmxhc2ggQi4KICAqLwogCiAjZGVmaW5lCVBTRF9QT1JUQV9ESU4JMHgwNzAwMDAKQEAgLTM3LDggKzM3LDggQEAKIAogLyoKICAqIEZsYXNoIEEvQiBQb3J0IEIgY29uZmlndXJhdGlvbiByZWdpc3RlcnMKLSAqIEFkZHJlc3NlcyBhcmUgb2Zmc2V0IHZhbHVlcyB0byBDRkdfRkxBU0gxX0JBU0UKLSAqIGZvciBGbGFzaCBBIGFuZCBDRkdfRkxBU0gyX0JBU0UgZm9yIEZsYXNoIEIuCisgKiBBZGRyZXNzZXMgYXJlIG9mZnNldCB2YWx1ZXMgdG8gQ09ORklHX1NZU19GTEFTSDFfQkFTRQorICogZm9yIEZsYXNoIEEgYW5kIENPTkZJR19TWVNfRkxBU0gyX0JBU0UgZm9yIEZsYXNoIEIuCiAgKi8KIAogI2RlZmluZQlQU0RfUE9SVEJfRElOCTB4MDcwMDAxCmRpZmYgLS1naXQgYS9ib2FyZC9iZjUzMy1lemtpdC91LWJvb3QubGRzLlMgYi9ib2FyZC9iZjUzMy1lemtpdC91LWJvb3QubGRzLlMKaW5kZXggMWZlZGJjNS4uNTM4YTE5ZiAxMDA2NDQKLS0tIGEvYm9hcmQvYmY1MzMtZXpraXQvdS1ib290Lmxkcy5TCisrKyBiL2JvYXJkL2JmNTMzLWV6a2l0L3UtYm9vdC5sZHMuUwpAQCAtMzYsNyArMzYsNyBAQAogICogZm9yIGRpZmZlcmVudCBDUFUncyB3aGljaCBtYXkgbGFjayBub24tY2FjaGUgTDEgZGF0YS4KICAqLwogI2lmbmRlZiBMMV9EQVRBX0JfU1JBTQotIyBkZWZpbmUgTDFfREFUQV9CX1NSQU0gICAgICBDRkdfTU9OSVRPUl9CQVNFCisjIGRlZmluZSBMMV9EQVRBX0JfU1JBTSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCiAjIGRlZmluZSBMMV9EQVRBX0JfU1JBTV9TSVpFIDAKICNlbmRpZgogCkBAIC00NSw3ICs0NSw3IEBACiAvKiBUaGUgMHhDIG9mZnNldCBpcyBzbyB3ZSBkb24ndCBjbG9iYmVyIHRoZSB0aW55IExEUiBqdW1wIGJsb2NrLiAqLwogTUVNT1JZCiB7Ci0JcmFtICAgICA6IE9SSUdJTiA9IENGR19NT05JVE9SX0JBU0UsIExFTkdUSCA9IENGR19NT05JVE9SX0xFTgorCXJhbSAgICAgOiBPUklHSU4gPSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgTEVOR1RIID0gQ09ORklHX1NZU19NT05JVE9SX0xFTgogCWwxX2NvZGUgOiBPUklHSU4gPSBMMV9JTlNUX1NSQU0rMHhDLCBMRU5HVEggPSBMMV9JTlNUX1NSQU1fU0laRQogCWwxX2RhdGEgOiBPUklHSU4gPSBMMV9EQVRBX0JfU1JBTSwgICBMRU5HVEggPSBMMV9EQVRBX0JfU1JBTV9TSVpFCiB9CmRpZmYgLS1naXQgYS9ib2FyZC9iZjUzMy1zdGFtcC9iZjUzMy1zdGFtcC5jIGIvYm9hcmQvYmY1MzMtc3RhbXAvYmY1MzMtc3RhbXAuYwppbmRleCA3YTE3ZGZhLi5hMTEzYzQwIDEwMDY0NAotLS0gYS9ib2FyZC9iZjUzMy1zdGFtcC9iZjUzMy1zdGFtcC5jCisrKyBiL2JvYXJkL2JmNTMzLXN0YW1wL2JmNTMzLXN0YW1wLmMKQEAgLTU2LDExICs1NiwxMSBAQAogCSAgICAoIiAgdFJDRDolZCBDeWNsZXM7IHRSUDolZCBDeWNsZXM7IHRSQVM6JWQgQ3ljbGVzOyB0V1I6JWQgQ3ljbGVzOyAiCiAJICAgICAiQ0FTIExhdGVuY3k6JWQgY3ljbGVzXG4iLCAoU0RSQU1fdFJDRCA+PiAxNSksIChTRFJBTV90UlAgPj4gMTEpLAogCSAgICAgKFNEUkFNX3RSQVMgPj4gNiksIChTRFJBTV90V1IgPj4gMTkpLCAoU0RSQU1fQ0wgPj4gMikpOwotCXByaW50ZigiU0RSQU0gQmVnaW46IDB4JXhcbiIsIENGR19TRFJBTV9CQVNFKTsKKwlwcmludGYoIlNEUkFNIEJlZ2luOiAweCV4XG4iLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCXByaW50ZigiQmFuayBzaXplID0gJWQgTUJcbiIsIDEyOCk7CiAjZW5kaWYKLQlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ0ZHX1NEUkFNX0JBU0U7Ci0JZ2QtPmJkLT5iaV9tZW1zaXplID0gQ0ZHX01BWF9SQU1fU0laRTsKKwlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENPTkZJR19TWVNfTUFYX1JBTV9TSVpFOwogCXJldHVybiAoZ2QtPmJkLT5iaV9tZW1zaXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvYmY1MzMtc3RhbXAvdS1ib290Lmxkcy5TIGIvYm9hcmQvYmY1MzMtc3RhbXAvdS1ib290Lmxkcy5TCmluZGV4IDRlN2ZkN2MuLjk3ZWJkNzkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2JmNTMzLXN0YW1wL3UtYm9vdC5sZHMuUworKysgYi9ib2FyZC9iZjUzMy1zdGFtcC91LWJvb3QubGRzLlMKQEAgLTM2LDcgKzM2LDcgQEAKICAqIGZvciBkaWZmZXJlbnQgQ1BVJ3Mgd2hpY2ggbWF5IGxhY2sgbm9uLWNhY2hlIEwxIGRhdGEuCiAgKi8KICNpZm5kZWYgTDFfREFUQV9CX1NSQU0KLSMgZGVmaW5lIEwxX0RBVEFfQl9TUkFNICAgICAgQ0ZHX01PTklUT1JfQkFTRQorIyBkZWZpbmUgTDFfREFUQV9CX1NSQU0gICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRQogIyBkZWZpbmUgTDFfREFUQV9CX1NSQU1fU0laRSAwCiAjZW5kaWYKIApAQCAtNDUsNyArNDUsNyBAQAogLyogVGhlIDB4QyBvZmZzZXQgaXMgc28gd2UgZG9uJ3QgY2xvYmJlciB0aGUgdGlueSBMRFIganVtcCBibG9jay4gKi8KIE1FTU9SWQogewotCXJhbSAgICAgOiBPUklHSU4gPSBDRkdfTU9OSVRPUl9CQVNFLCBMRU5HVEggPSBDRkdfTU9OSVRPUl9MRU4KKwlyYW0gICAgIDogT1JJR0lOID0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UsIExFTkdUSCA9IENPTkZJR19TWVNfTU9OSVRPUl9MRU4KIAlsMV9jb2RlIDogT1JJR0lOID0gTDFfSU5TVF9TUkFNKzB4QywgTEVOR1RIID0gTDFfSU5TVF9TUkFNX1NJWkUKIAlsMV9kYXRhIDogT1JJR0lOID0gTDFfREFUQV9CX1NSQU0sICAgTEVOR1RIID0gTDFfREFUQV9CX1NSQU1fU0laRQogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvYmY1Mzctc3RhbXAvYmY1Mzctc3RhbXAuYyBiL2JvYXJkL2JmNTM3LXN0YW1wL2JmNTM3LXN0YW1wLmMKaW5kZXggNDU2NzIxMy4uNzMwM2YxYiAxMDA2NDQKLS0tIGEvYm9hcmQvYmY1Mzctc3RhbXAvYmY1Mzctc3RhbXAuYworKysgYi9ib2FyZC9iZjUzNy1zdGFtcC9iZjUzNy1zdGFtcC5jCkBAIC0xMDksMTIgKzEwOSwxMiBAQAogCXByaW50ZigidFJDRCAlZCBTQ0xLIEN5Y2xlcyx0UlAgJWQgU0NMSyBDeWNsZXMsdFJBUyAlZCBTQ0xLIEN5Y2xlcyIKIAkgICAgICAgInRXUiAlZCBTQ0xLIEN5Y2xlcyxDQVMgTGF0ZW5jeSAlZCBTQ0xLIGN5Y2xlcyBcbiIsCiAJICAgICAgIDMsIDMsIDYsIDIsIDMpOwotCXByaW50ZigiU0RSQU0gQmVnaW46IDB4JXhcbiIsIENGR19TRFJBTV9CQVNFKTsKLQlwcmludGYoIkJhbmsgc2l6ZSA9ICVkIE1CXG4iLCBDRkdfTUFYX1JBTV9TSVpFID4+IDIwKTsKKwlwcmludGYoIlNEUkFNIEJlZ2luOiAweCV4XG4iLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOworCXByaW50ZigiQmFuayBzaXplID0gJWQgTUJcbiIsIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFID4+IDIwKTsKICNlbmRpZgotCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDRkdfU0RSQU1fQkFTRTsKLQlnZC0+YmQtPmJpX21lbXNpemUgPSBDRkdfTUFYX1JBTV9TSVpFOwotCXJldHVybiBDRkdfTUFYX1JBTV9TSVpFOworCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CisJZ2QtPmJkLT5iaV9tZW1zaXplID0gQ09ORklHX1NZU19NQVhfUkFNX1NJWkU7CisJcmV0dXJuIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFOwogfQogCiAjaWYgZGVmaW5lZChDT05GSUdfTUlTQ19JTklUX1IpCkBAIC0yMzYsMTEgKzIzNiwxMSBAQAogCQllcmFzZV9ibG9ja19mbGFzaChuKTsKIAkJcHJpbnRmKCJPS1xyIik7CiAJCXByaW50ZigiLS0tLS0tLS1Qcm9ncmFtIGJsb2NrOiUyZC4uLiIsIG4pOwotCQl3cml0ZV9kYXRhKENGR19GTEFTSF9CQVNFICsgb2Zmc2V0LCBCTE9DS19TSVpFLCBwYnVmKTsKKwkJd3JpdGVfZGF0YShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBvZmZzZXQsIEJMT0NLX1NJWkUsIHBidWYpOwogCQlwcmludGYoIk9LXHIiKTsKIAkJcHJpbnRmKCItLS0tLS0tLVZlcmlmeSAgYmxvY2s6JTJkLi4uIiwgbik7CiAJCWZvciAoaSA9IDA7IGkgPCBCTE9DS19TSVpFOyBpICs9IDIpIHsKLQkJCWlmICgqKHVuc2lnbmVkIHNob3J0ICopKENGR19GTEFTSF9CQVNFICsgb2Zmc2V0ICsgaSkgIT0KKwkJCWlmICgqKHVuc2lnbmVkIHNob3J0ICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIG9mZnNldCArIGkpICE9CiAJCQkgICAgKnRlbXArKykgewogCQkJCXZhbHVlID0gMTsKIAkJCQlyZXN1bHQgPSAxOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYmY1Mzctc3RhbXAvbmFuZC5jIGIvYm9hcmQvYmY1Mzctc3RhbXAvbmFuZC5jCmluZGV4IDk4MDAwODMuLmM1OTdmMmQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2JmNTM3LXN0YW1wL25hbmQuYworKysgYi9ib2FyZC9iZjUzNy1zdGFtcC9uYW5kLmMKQEAgLTQ0LDEzICs0NCwxMyBAQAogCiAJaWYgKGN0cmwgJiBOQU5EX0NUUkxfQ0hBTkdFKSB7CiAJCWlmKCBjdHJsICYgTkFORF9DTEUgKQotCQkJSU9fQUREUl9XID0gQ0ZHX05BTkRfQkFTRSArIEJGSU5fTkFORF9DTEU7CisJCQlJT19BRERSX1cgPSBDT05GSUdfU1lTX05BTkRfQkFTRSArIEJGSU5fTkFORF9DTEU7CiAJCWVsc2UKLQkJCUlPX0FERFJfVyA9IENGR19OQU5EX0JBU0U7CisJCQlJT19BRERSX1cgPSBDT05GSUdfU1lTX05BTkRfQkFTRTsKIAkJaWYoIGN0cmwgJiBOQU5EX0FMRSApCi0JCQlJT19BRERSX1cgPSBDRkdfTkFORF9CQVNFICsgQkZJTl9OQU5EX0FMRTsKKwkJCUlPX0FERFJfVyA9IENPTkZJR19TWVNfTkFORF9CQVNFICsgQkZJTl9OQU5EX0FMRTsKIAkJZWxzZQotCQkJSU9fQUREUl9XID0gQ0ZHX05BTkRfQkFTRTsKKwkJCUlPX0FERFJfVyA9IENPTkZJR19TWVNfTkFORF9CQVNFOwogCQl0aGlzLT5JT19BRERSX1cgPSAodm9pZCBfX2lvbWVtICopIElPX0FERFJfVzsKIAl9CiAJdGhpcy0+SU9fQUREUl9SID0gdGhpcy0+SU9fQUREUl9XOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYmY1Mzctc3RhbXAvcG9zdC1tZW1vcnkuYyBiL2JvYXJkL2JmNTM3LXN0YW1wL3Bvc3QtbWVtb3J5LmMKaW5kZXggZmExMTk5MS4uN2MzNmM4MSAxMDA2NDQKLS0tIGEvYm9hcmQvYmY1Mzctc3RhbXAvcG9zdC1tZW1vcnkuYworKysgYi9ib2FyZC9iZjUzNy1zdGFtcC9wb3N0LW1lbW9yeS5jCkBAIC02LDcgKzYsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlIDx3YXRjaGRvZy5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9NRU1PUlkKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9NRU1PUlkKICNkZWZpbmUgQ0xLSU4gMjUwMDAwMDAKICNkZWZpbmUgUEFUVEVSTjEgMHg1QTVBNUE1QQogI2RlZmluZSBQQVRURVJOMiAweEFBQUFBQUFBCkBAIC03MSwxMCArNzEsMTAgQEAKIAkJCXBvc3RfaW5pdF91YXJ0KHNjbGspOwogCQkJcG9zdF9vdXRfYnVmZigiXG5cclwwIik7CiAJCQlwb3N0X291dF9idWZmKGxvZ1ttXVtuXSk7Ci0JCQlmb3IgKGFkZHIgPSAweDA7IGFkZHIgPCBDRkdfTUFYX1JBTV9TSVpFOyBhZGRyICs9IDQpCisJCQlmb3IgKGFkZHIgPSAweDA7IGFkZHIgPCBDT05GSUdfU1lTX01BWF9SQU1fU0laRTsgYWRkciArPSA0KQogCQkJCSoodW5zaWduZWQgbG9uZyAqKWFkZHIgPSBQQVRURVJOMTsKIAkJCXBvc3Rfb3V0X2J1ZmYoIlJlYWRpbmcuLi5cMCIpOwotCQkJZm9yIChhZGRyID0gMHgwOyBhZGRyIDwgQ0ZHX01BWF9SQU1fU0laRTsgYWRkciArPSA0KSB7CisJCQlmb3IgKGFkZHIgPSAweDA7IGFkZHIgPCBDT05GSUdfU1lTX01BWF9SQU1fU0laRTsgYWRkciArPSA0KSB7CiAJCQkJaWYgKCgqKHVuc2lnbmVkIGxvbmcgKilhZGRyKSAhPSBQQVRURVJOMSkgewogCQkJCQlwb3N0X291dF9idWZmKCJFcnJvclxuXHJcMCIpOwogCQkJCQlyZXQgPSAwOwpAQCAtMzE4LDUgKzMxOCw1IEBACiAJcmV0dXJuIG1lbV9TRFJSQzsKIH0KIAotI2VuZGlmCQkJCS8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfTUVNT1JZICovCisjZW5kaWYJCQkJLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfTUVNT1JZICovCiAjZW5kaWYJCQkJLyogQ09ORklHX1BPU1QgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2JmNTM3LXN0YW1wL3NwaV9mbGFzaC5jIGIvYm9hcmQvYmY1Mzctc3RhbXAvc3BpX2ZsYXNoLmMKaW5kZXggN2M3M2RkZC4uMTFhMjgwMyAxMDA2NDQKLS0tIGEvYm9hcmQvYmY1Mzctc3RhbXAvc3BpX2ZsYXNoLmMKKysrIGIvYm9hcmQvYmY1Mzctc3RhbXAvc3BpX2ZsYXNoLmMKQEAgLTQxMiw3ICs0MTIsNyBAQAogICovCiB2b2lkIHNwaV9pbml0X3Iodm9pZCkKIHsKLSNpZiBkZWZpbmVkKENPTkZJR19QT1NUKSAmJiAoQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TUEkpCisjaWYgZGVmaW5lZChDT05GSUdfUE9TVCkgJiYgKENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX1NQSSkKIAkvKiBPdXIgdGVzdGluZyBzdHJhdGVneSBoZXJlIGlzIHByZXR0eSBiYXNpYzoKIAkgKiAgLSBmaWxsIHNyYyBtZW1vcnkgd2l0aCBhbiA4LWJpdCBwYXR0ZXJuCiAJICogIC0gd3JpdGUgdGhlIHNyYyBtZW1vcnkgdG8gdGhlIFNQSSBmbGFzaApkaWZmIC0tZ2l0IGEvYm9hcmQvYmY1Mzctc3RhbXAvdS1ib290Lmxkcy5TIGIvYm9hcmQvYmY1Mzctc3RhbXAvdS1ib290Lmxkcy5TCmluZGV4IDRlN2ZkN2MuLjk3ZWJkNzkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2JmNTM3LXN0YW1wL3UtYm9vdC5sZHMuUworKysgYi9ib2FyZC9iZjUzNy1zdGFtcC91LWJvb3QubGRzLlMKQEAgLTM2LDcgKzM2LDcgQEAKICAqIGZvciBkaWZmZXJlbnQgQ1BVJ3Mgd2hpY2ggbWF5IGxhY2sgbm9uLWNhY2hlIEwxIGRhdGEuCiAgKi8KICNpZm5kZWYgTDFfREFUQV9CX1NSQU0KLSMgZGVmaW5lIEwxX0RBVEFfQl9TUkFNICAgICAgQ0ZHX01PTklUT1JfQkFTRQorIyBkZWZpbmUgTDFfREFUQV9CX1NSQU0gICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRQogIyBkZWZpbmUgTDFfREFUQV9CX1NSQU1fU0laRSAwCiAjZW5kaWYKIApAQCAtNDUsNyArNDUsNyBAQAogLyogVGhlIDB4QyBvZmZzZXQgaXMgc28gd2UgZG9uJ3QgY2xvYmJlciB0aGUgdGlueSBMRFIganVtcCBibG9jay4gKi8KIE1FTU9SWQogewotCXJhbSAgICAgOiBPUklHSU4gPSBDRkdfTU9OSVRPUl9CQVNFLCBMRU5HVEggPSBDRkdfTU9OSVRPUl9MRU4KKwlyYW0gICAgIDogT1JJR0lOID0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UsIExFTkdUSCA9IENPTkZJR19TWVNfTU9OSVRPUl9MRU4KIAlsMV9jb2RlIDogT1JJR0lOID0gTDFfSU5TVF9TUkFNKzB4QywgTEVOR1RIID0gTDFfSU5TVF9TUkFNX1NJWkUKIAlsMV9kYXRhIDogT1JJR0lOID0gTDFfREFUQV9CX1NSQU0sICAgTEVOR1RIID0gTDFfREFUQV9CX1NSQU1fU0laRQogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvYmY1NjEtZXpraXQvYmY1NjEtZXpraXQuYyBiL2JvYXJkL2JmNTYxLWV6a2l0L2JmNTYxLWV6a2l0LmMKaW5kZXggNzM0NWI0Mi4uYTc0ZmYwZCAxMDA2NDQKLS0tIGEvYm9hcmQvYmY1NjEtZXpraXQvYmY1NjEtZXpraXQuYworKysgYi9ib2FyZC9iZjU2MS1lemtpdC9iZjU2MS1lemtpdC5jCkBAIC01MCwxMiArNTAsMTIgQEAKIAlwcmludGYoInRSQ0QgJWQgU0NMSyBDeWNsZXMsdFJQICVkIFNDTEsgQ3ljbGVzLHRSQVMgJWQgU0NMSyBDeWNsZXMiCiAJICAgICAgICJ0V1IgJWQgU0NMSyBDeWNsZXMsQ0FTIExhdGVuY3kgJWQgU0NMSyBjeWNsZXMgXG4iLAogCSAgICAgICAzLCAzLCA2LCAyLCAzKTsKLQlwcmludGYoIlNEUkFNIEJlZ2luOiAweCV4XG4iLCBDRkdfU0RSQU1fQkFTRSk7Ci0JcHJpbnRmKCJCYW5rIHNpemUgPSAlZCBNQlxuIiwgQ0ZHX01BWF9SQU1fU0laRSA+PiAyMCk7CisJcHJpbnRmKCJTRFJBTSBCZWdpbjogMHgleFxuIiwgQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKKwlwcmludGYoIkJhbmsgc2l6ZSA9ICVkIE1CXG4iLCBDT05GSUdfU1lTX01BWF9SQU1fU0laRSA+PiAyMCk7CiAjZW5kaWYKLQlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ0ZHX1NEUkFNX0JBU0U7Ci0JZ2QtPmJkLT5iaV9tZW1zaXplID0gQ0ZHX01BWF9SQU1fU0laRTsKLQlyZXR1cm4gQ0ZHX01BWF9SQU1fU0laRTsKKwlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENPTkZJR19TWVNfTUFYX1JBTV9TSVpFOworCXJldHVybiBDT05GSUdfU1lTX01BWF9SQU1fU0laRTsKIH0KIAogI2lmIGRlZmluZWQoQ09ORklHX01JU0NfSU5JVF9SKQpkaWZmIC0tZ2l0IGEvYm9hcmQvYmY1NjEtZXpraXQvdS1ib290Lmxkcy5TIGIvYm9hcmQvYmY1NjEtZXpraXQvdS1ib290Lmxkcy5TCmluZGV4IGFiNWVmMDguLjNkZWZlZjQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2JmNTYxLWV6a2l0L3UtYm9vdC5sZHMuUworKysgYi9ib2FyZC9iZjU2MS1lemtpdC91LWJvb3QubGRzLlMKQEAgLTM2LDcgKzM2LDcgQEAKICAqIGZvciBkaWZmZXJlbnQgQ1BVJ3Mgd2hpY2ggbWF5IGxhY2sgbm9uLWNhY2hlIEwxIGRhdGEuCiAgKi8KICNpZm5kZWYgTDFfREFUQV9CX1NSQU0KLSMgZGVmaW5lIEwxX0RBVEFfQl9TUkFNICAgICAgQ0ZHX01PTklUT1JfQkFTRQorIyBkZWZpbmUgTDFfREFUQV9CX1NSQU0gICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRQogIyBkZWZpbmUgTDFfREFUQV9CX1NSQU1fU0laRSAwCiAjZW5kaWYKIApAQCAtNDUsNyArNDUsNyBAQAogLyogVGhlIDB4QyBvZmZzZXQgaXMgc28gd2UgZG9uJ3QgY2xvYmJlciB0aGUgdGlueSBMRFIganVtcCBibG9jay4gKi8KIE1FTU9SWQogewotCXJhbSAgICAgOiBPUklHSU4gPSBDRkdfTU9OSVRPUl9CQVNFLCBMRU5HVEggPSBDRkdfTU9OSVRPUl9MRU4KKwlyYW0gICAgIDogT1JJR0lOID0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UsIExFTkdUSCA9IENPTkZJR19TWVNfTU9OSVRPUl9MRU4KIAlsMV9jb2RlIDogT1JJR0lOID0gTDFfSU5TVF9TUkFNKzB4QywgTEVOR1RIID0gTDFfSU5TVF9TUkFNX1NJWkUKIAlsMV9kYXRhIDogT1JJR0lOID0gTDFfREFUQV9CX1NSQU0sICAgTEVOR1RIID0gTDFfREFUQV9CX1NSQU1fU0laRQogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvYm13L1JFQURNRSBiL2JvYXJkL2Jtdy9SRUFETUUKaW5kZXggMWYwNGIxYi4uMWZiZWY3OSAxMDA2NDQKLS0tIGEvYm9hcmQvYm13L1JFQURNRQorKysgYi9ib2FyZC9ibXcvUkVBRE1FCkBAIC02MiwyNiArNjIsMjYgQEAKIFRoZSBmb2xsb3dpbmcgQmxvY2stQWRkcmVzcy1UcmFuc2xhdGlvbiAoQkFUKSBjb25maWd1cmF0aW9uCiBpcyByZWNvbW1lbmRlZCB0byBhY2Nlc3MgYWxsIEkvTyBkZXZpY2VzLgogCi0jZGVmaW5lIENGR19JQkFUMEwgICgweDAwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVICAoMHgwMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAgKDB4MDAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVICAoMHgwMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUMUwgICgweDcwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDFVICAoMHg3MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAgKDB4NzAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICAoMHg3MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUMkwgICgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDJVICAoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTCAgKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVICAoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUM0wgICgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVICAoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTCAgKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVICAoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUMEwgIENGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVSAgQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDFMICBDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUgIENGR19JQkFUMVUKLSNkZWZpbmUgQ0ZHX0RCQVQyTCAgQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVICBDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wgIENGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVSAgQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCAgQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUgIENPTkZJR19TWVNfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMICBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVSAgQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwgIENPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVICBDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTCAgQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UgIENPTkZJR19TWVNfSUJBVDNVCiAKIAogSW50ZXJydXB0IE1hcHBpbmdzCmRpZmYgLS1naXQgYS9ib2FyZC9ibXcvZWFybHlfaW5pdC5TIGIvYm9hcmQvYm13L2Vhcmx5X2luaXQuUwppbmRleCA1N2EwNmE5Li42M2MyOWQ1IDEwMDY0NAotLS0gYS9ib2FyZC9ibXcvZWFybHlfaW5pdC5TCisrKyBiL2JvYXJkL2Jtdy9lYXJseV9pbml0LlMKQEAgLTg2LDEwICs4NiwxMCBAQAogLyoKICAqICBTZXQgdXAgSS9EIEJBVDAKICAqLwotCWxpcyAgICAgcjQsIENGR19EQkFUMExAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfREJBVDBMQGwKLQlsaXMgICAgIHIzLCBDRkdfREJBVDBVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0RCQVQwVUBsCisJbGlzICAgICByNCwgQ09ORklHX1NZU19EQkFUMExAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQwTEBsCisJbGlzICAgICByMywgQ09ORklHX1NZU19EQkFUMFVAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0RCQVQwVUBsCiAKIAltdGRiYXQwbChyNCkKIAlpc3luYwpAQCAtOTcsMTAgKzk3LDEwIEBACiAJaXN5bmMKIAlzeW5jCiAKLQlsaXMgICAgIHI0LCBDRkdfSUJBVDBMQGgKLQlvcmkgICAgIHI0LCByNCwgQ0ZHX0lCQVQwTEBsCi0JbGlzICAgICByMywgQ0ZHX0lCQVQwVUBoCi0Jb3JpICAgICByMywgcjMsIENGR19JQkFUMFVAbAorCWxpcyAgICAgcjQsIENPTkZJR19TWVNfSUJBVDBMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19JQkFUMExAbAorCWxpcyAgICAgcjMsIENPTkZJR19TWVNfSUJBVDBVQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19JQkFUMFVAbAogCiAJaXN5bmMKIAltdGliYXQwbChyNCkKQEAgLTExMSwxMCArMTExLDEwIEBACiAvKgogICogIFNldCB1cCBJL0QgQkFUMQogICovCi0JbGlzICAgICByNCwgQ0ZHX0lCQVQxTEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19JQkFUMUxAbAotCWxpcyAgICAgcjMsIENGR19JQkFUMVVAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfSUJBVDFVQGwKKwlsaXMgICAgIHI0LCBDT05GSUdfU1lTX0lCQVQxTEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfSUJBVDFMQGwKKwlsaXMgICAgIHIzLCBDT05GSUdfU1lTX0lCQVQxVUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfSUJBVDFVQGwKIAogCWlzeW5jCiAJbXRpYmF0MWwocjQpCkBAIC0xMzAsMTAgKzEzMCwxMCBAQAogLyoKICAqICBTZXQgdXAgSS9EIEJBVDIKICAqLwotCWxpcyAgICAgcjQsIENGR19JQkFUMkxAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfSUJBVDJMQGwKLQlsaXMgICAgIHIzLCBDRkdfSUJBVDJVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0lCQVQyVUBsCisJbGlzICAgICByNCwgQ09ORklHX1NZU19JQkFUMkxAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQyTEBsCisJbGlzICAgICByMywgQ09ORklHX1NZU19JQkFUMlVAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQyVUBsCiAKIAlpc3luYwogCW10aWJhdDJsKHI0KQpAQCAtMTQ5LDEwICsxNDksMTAgQEAKIC8qCiAgKiAgU2V0dXAgSS9EIEJBVDMKICAqLwotCWxpcyAgICAgcjQsIENGR19JQkFUM0xAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfSUJBVDNMQGwKLQlsaXMgICAgIHIzLCBDRkdfSUJBVDNVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0lCQVQzVUBsCisJbGlzICAgICByNCwgQ09ORklHX1NZU19JQkFUM0xAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQzTEBsCisJbGlzICAgICByMywgQ09ORklHX1NZU19JQkFUM1VAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQzVUBsCiAKIAlpc3luYwogCW10aWJhdDNsKHI0KQpAQCAtNDY2LDcgKzQ2Niw3IEBACiAKIAlMT0FEUFRSIChyMywgRVVNQkJBUikKIAlzdHdicngJcjMsMCxyNQotCUxPQURQVFIgKHI0LCBDRkdfRVVNQl9BRERSKQorCUxPQURQVFIgKHI0LCBDT05GSUdfU1lTX0VVTUJfQUREUikKIAlzdHdicngJcjQsMCxyNgogCiBMMW5vdDgyNDU6CmRpZmYgLS1naXQgYS9ib2FyZC9ibXcvZmxhc2guYyBiL2JvYXJkL2Jtdy9mbGFzaC5jCmluZGV4IDBkMGJjMmYuLjU3ZmZlMDggMTAwNjQ0Ci0tLSBhL2JvYXJkL2Jtdy9mbGFzaC5jCisrKyBiL2JvYXJkL2Jtdy9mbGFzaC5jCkBAIC0yOSwxMSArMjksMTEgQEAKICNkZWZpbmUgUk9NX0NTMF9TVEFSVAkweEZGODAwMDAwCiAjZGVmaW5lIFJPTV9DUzFfU1RBUlQJMHhGRjAwMDAwMAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKICMgaWZuZGVmICBDT05GSUdfRU5WX0FERFIKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgIChDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRSAgQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTE0MSwxMCArMTQxLDEwIEBACiB7CiAJdW5zaWduZWQgbG9uZyBpOwogCXVuc2lnbmVkIGNoYXIgajsKLQlzdGF0aWMgY29uc3QgdWxvbmcgZmxhc2hfYmFua3NbXSA9IENGR19GTEFTSF9CQU5LUzsKKwlzdGF0aWMgY29uc3QgdWxvbmcgZmxhc2hfYmFua3NbXSA9IENPTkZJR19TWVNfRkxBU0hfQkFOS1M7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCWZsYXNoX2luZm9fdCAqY29uc3QgcGZsaW5mbyA9ICZmbGFzaF9pbmZvW2ldOwogCiAJCXBmbGluZm8tPmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKQEAgLTIxNywxMCArMjE3LDEwIEBACiAJCX0KIAkJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJCSAqLwotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkgICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTYyNyw3ICs2MjcsNyBAQAogCQkJCQkJICAgICAgIHN0YXJ0WzBdKSA8PCBzaDhiKSk7CiAJd2hpbGUgKChhZGRyWzBdICYgKEZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KIAkgICAgICAgKEZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC03NjYsNyArNzY2LDcgQEAKIAkJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCQl3aGlsZSAoKGRlc3QyW2kgPDwgc2g4Yl0gJiAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQogCQkgICAgICAgKGRhdGEyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gKDEpOwogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9ibXcvbnMxNjU1MC5jIGIvYm9hcmQvYm13L25zMTY1NTAuYwppbmRleCA3MDY0NTY3Li43MjUwNTkxIDEwMDY0NAotLS0gYS9ib2FyZC9ibXcvbnMxNjU1MC5jCisrKyBiL2JvYXJkL2Jtdy9uczE2NTUwLmMKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ09NMSBOUzE2NTUwIHN1cHBvcnQKICAqIG9yaWdpbmFsbHkgZnJvbSBsaW51eCBzb3VyY2UgKGFyY2gvcHBjL2Jvb3QvbnMxNjU1MC5jKQotICogbW9kaWZpZWQgdG8gdXNlIENGR19JU0FfTUVNIGFuZCBuZXcgZGVmaW5lcworICogbW9kaWZpZWQgdG8gdXNlIENPTkZJR19TWVNfSVNBX01FTSBhbmQgbmV3IGRlZmluZXMKICAqLwogCiAjaW5jbHVkZSA8Y29uZmlnLmg+CkBAIC0xMCw4ICsxMCw4IEBACiB0eXBlZGVmIHN0cnVjdCBOUzE2NTUwICpOUzE2NTUwX3Q7CiAKIGNvbnN0IE5TMTY1NTBfdCBDT01fUE9SVFNbXSA9Ci0JeyAoTlMxNjU1MF90KSAoKENGR19FVU1CX0FERFIpICsgMHg0NTAwKSwKLShOUzE2NTUwX3QpICgoQ0ZHX0VVTUJfQUREUikgKyAweDQ2MDApIH07CisJeyAoTlMxNjU1MF90KSAoKENPTkZJR19TWVNfRVVNQl9BRERSKSArIDB4NDUwMCksCisoTlMxNjU1MF90KSAoKENPTkZJR19TWVNfRVVNQl9BRERSKSArIDB4NDYwMCkgfTsKIAogdm9sYXRpbGUgc3RydWN0IE5TMTY1NTAgKk5TMTY1NTBfaW5pdCAoaW50IGNoYW4sIGludCBiYXVkX2Rpdmlzb3IpCiB7CmRpZmYgLS1naXQgYS9ib2FyZC9ibXcvbnMxNjU1MC5oIGIvYm9hcmQvYm13L25zMTY1NTAuaAppbmRleCAxMDRmNDViLi4yMTBhZWE0IDEwMDY0NAotLS0gYS9ib2FyZC9ibXcvbnMxNjU1MC5oCisrKyBiL2JvYXJkL2Jtdy9uczE2NTUwLmgKQEAgLTIsNyArMiw3IEBACiAgKiBOUzE2NTUwIFNlcmlhbCBQb3J0CiAgKiBvcmlnaW5hbGx5IGZyb20gbGludXggc291cmNlIChhcmNoL3BwYy9ib290L25zMTY1NTAuaCkKICAqIG1vZGlmaWVkIHNsaWdodGx5IHRvCi0gKiBoYXZlIGFkZHJlc3NlcyBhcyBvZmZzZXRzIGZyb20gQ0ZHX0lTQV9CQVNFCisgKiBoYXZlIGFkZHJlc3NlcyBhcyBvZmZzZXRzIGZyb20gQ09ORklHX1NZU19JU0FfQkFTRQogICogYWRkZWQgYSBmZXcgbW9yZSBkZWZpbml0aW9ucwogICogYWRkZWQgcHJvdG90eXBlcyBmb3IgbnMxNjU1MC5jCiAgKiByZWR1Y2VkIG5vIG9mIGNvbSBwb3J0cyB0byAyCmRpZmYgLS1naXQgYS9ib2FyZC9ibXcvc2VyaWFsLmMgYi9ib2FyZC9ibXcvc2VyaWFsLmMKaW5kZXggNzEyYTk1Yi4uMGM5N2YxMiAxMDA2NDQKLS0tIGEvYm9hcmQvYm13L3NlcmlhbC5jCisrKyBiL2JvYXJkL2Jtdy9zZXJpYWwuYwpAQCAtMjgsMTAgKzI4LDEwIEBACiAKICNpZiBDT05GSUdfQ09OU19JTkRFWCA9PSAxCiBzdGF0aWMgc3RydWN0IE5TMTY1NTAgKmNvbnNvbGUgPQotCQkoc3RydWN0IE5TMTY1NTAgKikgKENGR19FVU1CX0FERFIgKyAweDQ1MDApOworCQkoc3RydWN0IE5TMTY1NTAgKikgKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NTAwKTsKICNlbGlmIENPTkZJR19DT05TX0lOREVYID09IDIKIHN0YXRpYyBzdHJ1Y3QgTlMxNjU1MCAqY29uc29sZSA9Ci0JCShzdHJ1Y3QgTlMxNjU1MCAqKSAoQ0ZHX0VVTUJfQUREUiArIDB4NDUwMCk7CisJCShzdHJ1Y3QgTlMxNjU1MCAqKSAoQ09ORklHX1NZU19FVU1CX0FERFIgKyAweDQ1MDApOwogI2Vsc2UKICNlcnJvciBubyB2YWxpZCBjb25zb2xlIGRlZmluZWQKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvYzJtb24vYzJtb24uYyBiL2JvYXJkL2MybW9uL2MybW9uLmMKaW5kZXggN2QyZjc0Ni4uNzE3YTY0YiAxMDA2NDQKLS0tIGEvYm9hcmQvYzJtb24vYzJtb24uYworKysgYi9ib2FyZC9jMm1vbi9jMm1vbi5jCkBAIC0xMTAsNyArMTEwLDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgcmVnOwogCWxvbmcgaW50IHNpemU4LCBzaXplOTsKQEAgLTEyNCwxNyArMTI0LDE3IEBACiAJICogd2l0aCB0d28gU0RSQU0gYmFua3Mgb3IgZm91ciBjeWNsZXMgZXZlcnkgMzEuMiB1cyB3aXRoIG9uZQogCSAqIGJhbmsuIEl0IHdpbGwgYmUgYWRqdXN0ZWQgYWZ0ZXIgbWVtb3J5IHNpemluZy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzhLOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzhLOwogCiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIGJhbmsgMiB0aGUgU0RSQU0gYmFuayAyIGF0IHBoeXNpY2FsIGFkZHJlc3MgMC4KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IyID0gQ0ZHX09SMl9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjIgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAogCXVkZWxheSAoMjAwKTsKIApAQCAtMTU0LDcgKzE1NCw3IEBACiAJICoKIAkgKiB0cnkgOCBjb2x1bW4gbW9kZQogCSAqLwotCXNpemU4ID0gZHJhbV9zaXplIChDRkdfTUFNUl84Q09MLAorCXNpemU4ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOENPTCwKIAkJCSAgIFNEUkFNX0JBU0UyX1BSRUxJTSwKIAkJCSAgIFNEUkFNX01BWF9TSVpFKTsKIApAQCAtMTYzLDcgKzE2Myw3IEBACiAJLyoKIAkgKiB0cnkgOSBjb2x1bW4gbW9kZQogCSAqLwotCXNpemU5ID0gZHJhbV9zaXplIChDRkdfTUFNUl85Q09MLAorCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwKIAkJCSAgIFNEUkFNX0JBU0UyX1BSRUxJTSwKIAkJCSAgIFNEUkFNX01BWF9TSVpFKTsKIApAQCAtMTcyLDcgKzE3Miw3IEBACiAvKgkJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOSBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsJKi8KIAl9IGVsc2UgewkJCS8qIGJhY2sgdG8gOCBjb2x1bW5zICAgICAgICAgICAgKi8KIAkJc2l6ZSA9IHNpemU4OwotCQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0w7CisJCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0w7CiAJCXVkZWxheSAoNTAwKTsKIC8qCQlkZWJ1ZyAoIlNEUkFNIEJhbmsgMCBpbiA4IGNvbHVtbiBtb2RlOiAlbGQgTUJcbiIsIHNpemUgPj4gMjApOwkqLwogCX0KQEAgLTE4NSwxNSArMTg1LDE1IEBACiAJICovCiAJaWYgKHNpemUgPCAweDAyMDAwMDAwKSB7CiAJCS8qIHJlZHVjZSB0byAxNS42IHVzICg2Mi40IHVzIC8gcXVhZCkgKi8KLQkJbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzJCS180SzsKKwkJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfNEs7CiAJCXVkZWxheSAoMTAwMCk7CiAJfQogCiAJLyoKIAkgKiBGaW5hbCBtYXBwaW5nCiAJICovCi0JbWVtY3RsLT5tZW1jX29yMiA9ICgoLXNpemUpICYgMHhGRkZGMDAwMCkgfCBDRkdfT1JfVElNSU5HX1NEUkFNOwotCW1lbWN0bC0+bWVtY19icjIgPSAoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX29yMiA9ICgoLXNpemUpICYgMHhGRkZGMDAwMCkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKKwltZW1jdGwtPm1lbWNfYnIyID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKIAogCS8qCiAJICogTm8gYmFuayAxCkBAIC0yMDQsNyArMjA0LDcgQEAKIAogCS8qIGFkanVzdCByZWZyZXNoIHJhdGUgZGVwZW5kaW5nIG9uIFNEUkFNIHR5cGUsIG9uZSBiYW5rICovCiAJcmVnID0gbWVtY3RsLT5tZW1jX21wdHByOwotCXJlZyA+Pj0gMTsJCQkvKiByZWR1Y2UgdG8gQ0ZHX01QVFBSXzFCS184SyAvIF80SyAqLworCXJlZyA+Pj0gMTsJCQkvKiByZWR1Y2UgdG8gQ09ORklHX1NZU19NUFRQUl8xQktfOEsgLyBfNEsgKi8KIAltZW1jdGwtPm1lbWNfbXB0cHIgPSByZWc7CiAKIAl1ZGVsYXkgKDEwMDAwKTsKQEAgLTIyNSw3ICsyMjUsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYzJtb24vZmxhc2guYyBiL2JvYXJkL2MybW9uL2ZsYXNoLmMKaW5kZXggN2NjNWVmMC4uZDMzY2I2YyAxMDA2NDQKLS0tIGEvYm9hcmQvYzJtb24vZmxhc2guYworKysgYi9ib2FyZC9jMm1vbi9mbGFzaC5jCkBAIC0yNSwxMCArMjUsMTAgQEAKICNpbmNsdWRlIDxtcGM4eHguaD4KIAogI2lmbmRlZglDT05GSUdfRU5WX0FERFIKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogI2VuZGlmCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTQyLDEzICs0MiwxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjAsIHNpemVfYjE7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTc5LDE5ICs3OSwxOSBAQAogCX0KIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIE9SX0FNX01TSyk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiBPUl9BTV9NU0spOworCW1lbWN0bC0+bWVtY19icjAgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOwogCiAJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0xMDQsMjEgKzEwNCwyMSBAQAogI2VuZGlmCiAKIAlpZiAoc2l6ZV9iMSkgewotCQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMSAmIDB4RkZGRjgwMDApOwotCQltZW1jdGwtPm1lbWNfYnIxID0gKChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApICYgQlJfQkFfTVNLKSB8CisJCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMSAmIDB4RkZGRjgwMDApOworCQltZW1jdGwtPm1lbWNfYnIxID0gKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSAmIEJSX0JBX01TSykgfAogCQkJCSAgICBCUl9NU19HUENNIHwgQlJfVjsKIAogCQkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0JCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKShDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApLAorCQlzaXplX2IxID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCksCiAJCQkJCSAgJmZsYXNoX2luZm9bMV0pOwogCi0JCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKKwkJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJCSAgICAgICZmbGFzaF9pbmZvWzFdKTsKICNlbmRpZgogCkBAIC00MzYsNyArNDM2LDcgQEAKIAlsYXN0ICA9IHN0YXJ0OwogCWFkZHIgPSAodnVfbG9uZyopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogCXdoaWxlICgoYWRkclswXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTU1OSw3ICs1NTksNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDAwODAwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9jMm1vbi9wY21jaWEuYyBiL2JvYXJkL2MybW9uL3BjbWNpYS5jCmluZGV4IDU3ODQ2YjEuLmM4MzNiMjAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2MybW9uL3BjbWNpYS5jCisrKyBiL2JvYXJkL2MybW9uL3BjbWNpYS5jCkBAIC0yMiw4ICsyMiw4IEBACiAJdm9sYXRpbGUgY3BtOHh4X3QJKmNwOwogCXVzaG9ydCBzcmVnOwogCi0JaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOwotCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0pKTsKKwlpbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtKSk7CiAKIAkvKgogCSogQ29uZmlndXJlIFBvcnQgQyBmb3IgVFBTMjIxMSBQQy1DYXJkIFBvd2VyLUludGVyZmFjZSBTd2l0Y2gKQEAgLTY5LDEwICs2OSwxMCBAQAogCiAJdWRlbGF5KDEwMDAwKTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlzeXNwICA9IChzeXNjb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3NpdV9jb25mKSk7Ci0JcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKLQljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwlzeXNwICA9IChzeXNjb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9zaXVfY29uZikpOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOworCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtKSk7CiAKIAkvKiBDb25maWd1cmUgUG9ydHMgZm9yIFRQUzIyMTFBIFBDLUNhcmQgUG93ZXItSW50ZXJmYWNlIFN3aXRjaCAqLwogCWNmZ19wb3J0cyAoKTsKQEAgLTE3NSw4ICsxNzUsOCBAQAogCiAJZGVidWcgKCJoYXJkd2FyZV9kaXNhYmxlOiAiIFBDTUNJQV9CT0FSRF9NU0cgIiBTbG90ICVjXG4iLCAnQScrc2xvdCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKKwlpbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogCiAJLyogQ29uZmlndXJlIFBDTUNJQSBHZW5lcmFsIENvbnRyb2wgUmVnaXN0ZXIgKi8KIAlkZWJ1ZyAoIkRpc2FibGUgUENNQ0lBIGJ1ZmZlcnMgYW5kIGFzc2VydCBSRVNFVFxuIik7CkBAIC0yMDksOSArMjA5LDkgQEAKIAkJCSIgU2xvdCAlYywgVmNjPSVkLiVkLCBWcHA9JWQuJWRcbiIsCiAJJ0EnK3Nsb3QsIHZjYy8xMCwgdmNjJTEwLCB2cHAvMTAsIHZjYyUxMCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSkpOwotCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbSkpOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogCS8qCiAJKiBEaXNhYmxlIFBDTUNJQSBidWZmZXJzIChpc29sYXRlIHRoZSBpbnRlcmZhY2UpCiAJKiBhbmQgYXNzZXJ0IFJFU0VUIHNpZ25hbApkaWZmIC0tZ2l0IGEvYm9hcmQvY2FubWIvY2FubWIuYyBiL2JvYXJkL2Nhbm1iL2Nhbm1iLmMKaW5kZXggZDM3MTFkMC4uZGNlMDdiZiAxMDA2NDQKLS0tIGEvYm9hcmQvY2FubWIvY2FubWIuYworKysgYi9ib2FyZC9jYW5tYi9jYW5tYi5jCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAibXQ0OGxjMTZtMzJzMi03NS5oIgogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiBzdGF0aWMgdm9pZCBzZHJhbV9zdGFydCAoaW50IGhpX2FkZHIpCiB7CiAJbG9uZyBoaV9hZGRyX2JpdCA9IGhpX2FkZHIgPyAweDAxMDAwMDAwIDogMDsKQEAgLTc3LDcgKzc3LDcgQEAKIAogLyoKICAqIEFUVEVOVElPTjogQWx0aG91Z2ggcGFydGlhbGx5IHJlZmVyZW5jZWQgaW5pdGRyYW0gZG9lcyBOT1QgbWFrZSByZWFsIHVzZQotICogICAgICAgICAgICB1c2Ugb2YgQ0ZHX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ0ZHX1NEUkFNX0JBU0UKKyAqICAgICAgICAgICAgdXNlIG9mIENPTkZJR19TWVNfU0RSQU1fQkFTRS4gVGhlIGNvZGUgZG9lcyBub3Qgd29yayBpZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UKICAqICAgICAgICAgICAgaXMgc29tZXRoaW5nIGVsc2UgdGhhbiAweDAwMDAwMDAwLgogICovCiAKQEAgLTg2LDcgKzg2LDcgQEAKIHsKIAl1bG9uZyBkcmFtc2l6ZSA9IDA7CiAJdWxvbmcgZHJhbXNpemUyID0gMDsKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgdGVzdDEsIHRlc3QyOwogCiAJLyogc2V0dXAgU0RSQU0gY2hpcCBzZWxlY3RzICovCkBAIC0xMDcsOSArMTA3LDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MwIG9ubHkgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgodWxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKHVsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxKTsKLQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgodWxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKHVsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKIAkJZHJhbXNpemUgPSB0ZXN0MTsKQEAgLTEzNSwxMCArMTM1LDEwIEBACiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzEgb25seSAqLwogCWlmICghZHJhbXNpemUpCiAJCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKHVsb25nICopKENGR19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKKwl0ZXN0MiA9IHRlc3QxID0gZ2V0X3JhbV9zaXplKCh1bG9uZyAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOwogCWlmICghZHJhbXNpemUpIHsKIAkJc2RyYW1fc3RhcnQoMSk7Ci0JCXRlc3QyID0gZ2V0X3JhbV9zaXplKCh1bG9uZyAqKShDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJCXRlc3QyID0gZ2V0X3JhbV9zaXplKCh1bG9uZyAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOwogCX0KIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKQEAgLTE2MCw3ICsxNjAsNyBAQAogCQkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMUNGRyA9IGRyYW1zaXplOyAvKiBkaXNhYmxlZCAqLwogCX0KIAotI2Vsc2UgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyogcmV0cmlldmUgc2l6ZSBvZiBtZW1vcnkgY29ubmVjdGVkIHRvIFNEUkFNIENTMCAqLwogCWRyYW1zaXplID0gKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzBDRkcgJiAweEZGOwpAQCAtMTc4LDcgKzE3OCw3IEBACiAJCWRyYW1zaXplMiA9IDA7CiAJfQogCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCXJldHVybiBkcmFtc2l6ZSArIGRyYW1zaXplMjsKIH0KQEAgLTE4OCw3ICsxODgsNyBAQAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewogCXVsb25nIGRyYW1zaXplID0gMDsKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgdGVzdDEsIHRlc3QyOwogCiAJLyogc2V0dXAgYW5kIGVuYWJsZSBTRFJBTSBjaGlwIHNlbGVjdHMgKi8KQEAgLTIwNyw5ICsyMDcsOSBAQAogCiAJLyogZmluZCBSQU0gc2l6ZSAqLwogCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QxID0gZ2V0X3JhbV9zaXplKCh1bG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgodWxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCXNkcmFtX3N0YXJ0KDEpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKCh1bG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgodWxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMjIwLDEyICsyMjAsMTIgQEAKIAkvKiBzZXQgU0RSQU0gZW5kIGFkZHJlc3MgYWNjb3JkaW5nIHRvIHNpemUgKi8KIAkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX1NUT1AgPSAoKGRyYW1zaXplIC0gMSkgPj4gMTUpOwogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiBSZXRyaWV2ZSBhbW91bnQgb2YgU0RSQU0gYXZhaWxhYmxlICovCiAJZHJhbXNpemUgPSAoKCoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fU1RPUCArIDEpIDw8IDE1KTsKIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAlyZXR1cm4gZHJhbXNpemU7CiB9CkBAIC0yNDQsOCArMjQ0LDggQEAKIHsKIAkqKHZ1X2xvbmcgKilNUEM1WFhYX0JPT1RDU19DRkcgJj0gfjB4MTsgLyogY2xlYXIgUk8gKi8KIAkqKHZ1X2xvbmcgKilNUEM1WFhYX0JPT1RDU19TVEFSVCA9Ci0JKih2dV9sb25nICopTVBDNVhYWF9DUzBfU1RBUlQgPSBTVEFSVF9SRUcoQ0ZHX0ZMQVNIX0JBU0UpOworCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MwX1NUQVJUID0gU1RBUlRfUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRSk7CiAJKih2dV9sb25nICopTVBDNVhYWF9CT09UQ1NfU1RPUCA9Ci0JKih2dV9sb25nICopTVBDNVhYWF9DUzBfU1RPUCA9IFNUT1BfUkVHKENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfU0laRSk7CisJKih2dV9sb25nICopTVBDNVhYWF9DUzBfU1RPUCA9IFNUT1BfUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9TSVpFKTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2NlcmYyNTAvZmxhc2guYyBiL2JvYXJkL2NlcmYyNTAvZmxhc2guYwppbmRleCAzZmYxOWJjLi5hNGIyMDFlIDEwMDY0NAotLS0gYS9ib2FyZC9jZXJmMjUwL2ZsYXNoLmMKKysrIGIvYm9hcmQvY2VyZjI1MC9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyogQm9hcmQgc3VwcG9ydCBmb3IgMSBvciAyIGZsYXNoIGRldmljZXMgKi8KICNkZWZpbmUgRkxBU0hfUE9SVF9XSURUSDMyCkBAIC02NSw3ICs2NSw3IEBACiAJaW50IGk7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDoKIAkJCWZsYXNoX2dldF9zaXplICgoRlBXICopIFBIWVNfRkxBU0hfMSwgJmZsYXNoX2luZm9baV0pOwpAQCAtODUsOCArODUsOCBAQAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCWZsYXNoX3Byb3RlY3QgKCBGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCQlDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSZmbGFzaF9pbmZvWzBdICk7CiAKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKQEAgLTIwMywxMCArMjAzLDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IChGUFcpIDB4MDBGRjAwRkY7CQkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMjc2LDcgKzI3Niw3IEBACiAJCQkqYWRkciA9IChGUFcpIDB4MDBEMDAwRDA7CS8qIGVyYXNlIGNvbmZpcm0gKi8KIAogCQkJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJKmFkZHIgPSAoRlBXKSAweDAwQjAwMEIwOwkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwpAQCAtNDEwLDcgKzQxMCw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuICgxKTsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvY2VyZjI1MC9sb3dsZXZlbF9pbml0LlMgYi9ib2FyZC9jZXJmMjUwL2xvd2xldmVsX2luaXQuUwppbmRleCBhZDNjNTlmLi41YmZlNTNjIDEwMDY0NAotLS0gYS9ib2FyZC9jZXJmMjUwL2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC9jZXJmMjUwL2xvd2xldmVsX2luaXQuUwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPHZlcnNpb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogCi1EUkFNX1NJWkU6ICAubG9uZyAgIENGR19EUkFNX1NJWkUKK0RSQU1fU0laRTogIC5sb25nICAgQ09ORklHX1NZU19EUkFNX1NJWkUKIAogLyogd2FpdCBmb3IgY29wcm9jZXNzb3Igd3JpdGUgY29tcGxldGUgKi8KICAgIC5tYWNybyBDUFdBSVQgcmVnCkBAIC00OSw2NyArNDksNjcgQEAKIAkvKiBTZXQgdXAgR1BJTyBwaW5zIGZpcnN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIAlsZHIJcjAsID1HUFNSMAotCWxkcglyMSwgPUNGR19HUFNSMF9WQUwKKwlsZHIJcjEsID1DT05GSUdfU1lTX0dQU1IwX1ZBTAogCXN0cglyMSwgW3IwXQogCiAJbGRyCXIwLCA9R1BTUjEKLQlsZHIJcjEsID1DRkdfR1BTUjFfVkFMCisJbGRyCXIxLCA9Q09ORklHX1NZU19HUFNSMV9WQUwKIAlzdHIJcjEsIFtyMF0KIAogCWxkcglyMCwgPUdQU1IyCi0JbGRyCXIxLCA9Q0ZHX0dQU1IyX1ZBTAorCWxkcglyMSwgPUNPTkZJR19TWVNfR1BTUjJfVkFMCiAJc3RyCXIxLCBbcjBdCiAKIAlsZHIJcjAsID1HUENSMAotCWxkcglyMSwgPUNGR19HUENSMF9WQUwKKwlsZHIJcjEsID1DT05GSUdfU1lTX0dQQ1IwX1ZBTAogCXN0cglyMSwgW3IwXQogCiAJbGRyCXIwLCA9R1BDUjEKLQlsZHIJcjEsID1DRkdfR1BDUjFfVkFMCisJbGRyCXIxLCA9Q09ORklHX1NZU19HUENSMV9WQUwKIAlzdHIJcjEsIFtyMF0KIAogCWxkcglyMCwgPUdQQ1IyCi0JbGRyCXIxLCA9Q0ZHX0dQQ1IyX1ZBTAorCWxkcglyMSwgPUNPTkZJR19TWVNfR1BDUjJfVkFMCiAJc3RyCXIxLCBbcjBdCiAKIAlsZHIJcjAsID1HUERSMAotCWxkcglyMSwgPUNGR19HUERSMF9WQUwKKwlsZHIJcjEsID1DT05GSUdfU1lTX0dQRFIwX1ZBTAogCXN0cglyMSwgW3IwXQogCiAJbGRyCXIwLCA9R1BEUjEKLQlsZHIJcjEsID1DRkdfR1BEUjFfVkFMCisJbGRyCXIxLCA9Q09ORklHX1NZU19HUERSMV9WQUwKIAlzdHIJcjEsIFtyMF0KIAogCWxkcglyMCwgPUdQRFIyCi0JbGRyCXIxLCA9Q0ZHX0dQRFIyX1ZBTAorCWxkcglyMSwgPUNPTkZJR19TWVNfR1BEUjJfVkFMCiAJc3RyCXIxLCBbcjBdCiAKIAlsZHIJcjAsID1HQUZSMF9MCi0JbGRyCXIxLCA9Q0ZHX0dBRlIwX0xfVkFMCisJbGRyCXIxLCA9Q09ORklHX1NZU19HQUZSMF9MX1ZBTAogCXN0cglyMSwgW3IwXQogCiAJbGRyCXIwLCA9R0FGUjBfVQotCWxkcglyMSwgPUNGR19HQUZSMF9VX1ZBTAorCWxkcglyMSwgPUNPTkZJR19TWVNfR0FGUjBfVV9WQUwKIAlzdHIJcjEsIFtyMF0KIAogCWxkcglyMCwgPUdBRlIxX0wKLQlsZHIJcjEsID1DRkdfR0FGUjFfTF9WQUwKKwlsZHIJcjEsID1DT05GSUdfU1lTX0dBRlIxX0xfVkFMCiAJc3RyCXIxLCBbcjBdCiAKIAlsZHIJcjAsID1HQUZSMV9VCi0JbGRyCXIxLCA9Q0ZHX0dBRlIxX1VfVkFMCisJbGRyCXIxLCA9Q09ORklHX1NZU19HQUZSMV9VX1ZBTAogCXN0cglyMSwgW3IwXQogCiAJbGRyCXIwLCA9R0FGUjJfTAotCWxkcglyMSwgPUNGR19HQUZSMl9MX1ZBTAorCWxkcglyMSwgPUNPTkZJR19TWVNfR0FGUjJfTF9WQUwKIAlzdHIJcjEsIFtyMF0KIAogCWxkcglyMCwgPUdBRlIyX1UKLQlsZHIJcjEsID1DRkdfR0FGUjJfVV9WQUwKKwlsZHIJcjEsID1DT05GSUdfU1lTX0dBRlIyX1VfVkFMCiAJc3RyCXIxLCBbcjBdCiAKIAlsZHIJcjAsID1QU1NSCQkJLyogZW5hYmxlIEdQSU8gcGlucyAqLwotCWxkcglyMSwgPUNGR19QU1NSX1ZBTAorCWxkcglyMSwgPUNPTkZJR19TWVNfUFNTUl9WQUwKIAlzdHIJcjEsIFtyMF0KIAogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KQEAgLTE0NywxNyArMTQ3LDE3IEBACiAJLyogTVNDIHJlZ2lzdGVyczogdGltaW5nLCBidXMgd2lkdGgsIG1lbSB0eXBlICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAJLyogTVNDMDogbkNTKDAsMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkcglyMiwgPUNGR19NU0MwX1ZBTAorCWxkcglyMiwgPUNPTkZJR19TWVNfTVNDMF9WQUwKIAlzdHIJcjIsIFtyMSwgI01TQzBfT0ZGU0VUXQogCWxkcglyMiwgW3IxLCAjTVNDMF9PRkZTRVRdCQkvKiByZWFkIGJhY2sgdG8gZW5zdXJlICAgICAgKi8KIAkJCQkJCS8qIHRoYXQgZGF0YSBsYXRjaGVzICAgICAgICAqLwogCS8qIE1TQzE6IG5DUygyLDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIJcjIsID1DRkdfTVNDMV9WQUwKKwlsZHIJcjIsID1DT05GSUdfU1lTX01TQzFfVkFMCiAJc3RyCXIyLCBbcjEsICNNU0MxX09GRlNFVF0KIAlsZHIJcjIsIFtyMSwgI01TQzFfT0ZGU0VUXQogCiAJLyogTVNDMjogbkNTKDQsNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkcglyMiwgPUNGR19NU0MyX1ZBTAorCWxkcglyMiwgPUNPTkZJR19TWVNfTVNDMl9WQUwKIAlzdHIJcjIsIFtyMSwgI01TQzJfT0ZGU0VUXQogCWxkcglyMiwgW3IxLCAjTVNDMl9PRkZTRVRdCiAKQEAgLTE2NiwzNyArMTY2LDM3IEBACiAJLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAJLyogTUVDUjogTWVtb3J5IEV4cGFuc2lvbiBDYXJkIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkcglyMiwgPUNGR19NRUNSX1ZBTAorCWxkcglyMiwgPUNPTkZJR19TWVNfTUVDUl9WQUwKIAlzdHIJcjIsIFtyMSwgI01FQ1JfT0ZGU0VUXQogCWxkcglyMiwgW3IxLCAjTUVDUl9PRkZTRVRdCiAKIAkvKiBNQ01FTTA6IENhcmQgSW50ZXJmYWNlIHNsb3QgMCB0aW1pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyCXIyLCA9Q0ZHX01DTUVNMF9WQUwKKwlsZHIJcjIsID1DT05GSUdfU1lTX01DTUVNMF9WQUwKIAlzdHIJcjIsIFtyMSwgI01DTUVNMF9PRkZTRVRdCiAJbGRyCXIyLCBbcjEsICNNQ01FTTBfT0ZGU0VUXQogCiAJLyogTUNNRU0xOiBDYXJkIEludGVyZmFjZSBzbG90IDEgdGltaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkcglyMiwgPUNGR19NQ01FTTFfVkFMCisJbGRyCXIyLCA9Q09ORklHX1NZU19NQ01FTTFfVkFMCiAJc3RyCXIyLCBbcjEsICNNQ01FTTFfT0ZGU0VUXQogCWxkcglyMiwgW3IxLCAjTUNNRU0xX09GRlNFVF0KIAogCS8qIE1DQVRUMDogQ2FyZCBJbnRlcmZhY2UgQXR0cmlidXRlIFNwYWNlIFRpbWluZywgc2xvdCAwICAgICAgICAgICAgKi8KLQlsZHIJcjIsID1DRkdfTUNBVFQwX1ZBTAorCWxkcglyMiwgPUNPTkZJR19TWVNfTUNBVFQwX1ZBTAogCXN0cglyMiwgW3IxLCAjTUNBVFQwX09GRlNFVF0KIAlsZHIJcjIsIFtyMSwgI01DQVRUMF9PRkZTRVRdCiAKIAkvKiBNQ0FUVDE6IENhcmQgSW50ZXJmYWNlIEF0dHJpYnV0ZSBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICovCi0JbGRyCXIyLCA9Q0ZHX01DQVRUMV9WQUwKKwlsZHIJcjIsID1DT05GSUdfU1lTX01DQVRUMV9WQUwKIAlzdHIJcjIsIFtyMSwgI01DQVRUMV9PRkZTRVRdCiAJbGRyCXIyLCBbcjEsICNNQ0FUVDFfT0ZGU0VUXQogCiAJLyogTUNJTzA6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMCAgICAgICAgICAgICAgICAgICAqLwotCWxkcglyMiwgPUNGR19NQ0lPMF9WQUwKKwlsZHIJcjIsID1DT05GSUdfU1lTX01DSU8wX1ZBTAogCXN0cglyMiwgW3IxLCAjTUNJTzBfT0ZGU0VUXQogCWxkcglyMiwgW3IxLCAjTUNJTzBfT0ZGU0VUXQogCiAJLyogTUNJTzE6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICAgICAgICAqLwotCWxkcglyMiwgPUNGR19NQ0lPMV9WQUwKKwlsZHIJcjIsID1DT05GSUdfU1lTX01DSU8xX1ZBTAogCXN0cglyMiwgW3IxLCAjTUNJTzFfT0ZGU0VUXQogCWxkcglyMiwgW3IxLCAjTUNJTzFfT0ZGU0VUXQogCkBAIC0yMTIsNyArMjEyLDcgQEAKIAkvKiBCZWZvcmUgYWNjZXNzaW5nIE1EUkVGUiB3ZSBuZWVkIGEgdmFsaWQgRFJJIGZpZWxkLCBzbyB3ZSBzZXQgICAgICovCiAJLyogdGhpcyB0byBwb3dlciBvbiBkZWZhdWx0cyArIERSSSBmaWVsZCwgc2V0IFNEUkFNIGNsb2NrcyBmcmVlIHJ1bm5pbmcgKi8KIAotCWxkcglyMywgPUNGR19NRFJFRlJfVkFMCisJbGRyCXIzLCA9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAJbGRyCXIyLCA9MHhGRkYKIAlhbmQJcjMsIHIzLCAgcjIKIApAQCAtMjQzLDcgKzI0Myw3IEBACiAKIAkvKiBzZXQgTURSRUZSIGFjY29yZGluZyB0byB1c2VyIGRlZmluZSB3aXRoIGV4Y2VwdGlvbiBvZiBhIGZldyBiaXRzICovCiAKLQlsZHIgICAgIHI0LCA9Q0ZHX01EUkVGUl9WQUwKKwlsZHIgICAgIHI0LCA9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAJbGRyCXIyLCA9KE1EUkVGUl9LMFJVTnxNRFJFRlJfSzBEQjJ8TURSRUZSX0sxUlVOfE1EUkVGUl9LMURCMnxcCiAJCQkJCU1EUkVGUl9LMlJVTiB8TURSRUZSX0syREIyKQogCWFuZAlyNCwgcjQsIHIyCkBAIC0yNjIsNyArMjYyLDcgQEAKIAogCS8qIFN0ZXAgNGM6IGFzc2VydCBNRFJFRlI6RTFQSU4gYW5kIEUwUElPIGFzIGRlc2lyZWQsIHNldCBLWEZSRUUgICovCiAKLQlsZHIgICAgIHI0LCA9Q0ZHX01EUkVGUl9WQUwKKwlsZHIgICAgIHI0LCA9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAJbGRyCXIyLCA9KE1EUkVGUl9FMFBJTnxNRFJFRlJfRTFQSU58TURSRUZSX0swRlJFRXwgXAogCQkJTURSRUZSX0sxRlJFRSB8IE1EUkVGUl9LMkZSRUUpCiAJYW5kCXI0LCByNCwgcjIKQEAgLTI3NCw3ICsyNzQsNyBAQAogCS8qIFN0ZXAgNGQ6IHdyaXRlIE1EQ05GRyB3aXRoIE1EQ05GRzpERXggZGVhc3NlcnRlZCAoc2V0IHRvIDApLCB0byAgKi8KIAkvKiAgICAgICAgICBjb25maWd1cmUgYnV0IG5vdCBlbmFibGUgZWFjaCBTRFJBTSBwYXJ0aXRpb24gcGFpci4gICAgICovCiAKLQlsZHIJcjQsID1DRkdfTURDTkZHX1ZBTAorCWxkcglyNCwgPUNPTkZJR19TWVNfTURDTkZHX1ZBTAogCWJpYwlyNCwgcjQsICMoTURDTkZHX0RFMHxNRENORkdfREUxKQogCWJpYwlyNCwgcjQsICMoTURDTkZHX0RFMnxNRENORkdfREUzKQogCXN0ciAgICAgcjQsIFtyMSwgI01EQ05GR19PRkZTRVRdCS8qIHdyaXRlIGJhY2sgTURDTkZHICAgICAgICAqLwpAQCAtMzAxLDcgKzMwMSw3IEBACiAJLyogICAgICAgICAgZG9jdW1lbnRlZCBpbiBTRFJBTSBkYXRhIHNoZWV0cy4gVGhlIGFkZHJlc3MoZXMpIHVzZWQgICAqLwogCS8qICAgICAgICAgIGZvciB0aGlzIHB1cnBvc2UgbXVzdCBub3QgYmUgY2FjaGVhYmxlLiAgICAgICAgICAgICAgICAgKi8KIAotCWxkcglyMywgPUNGR19EUkFNX0JBU0UKKwlsZHIJcjMsID1DT05GSUdfU1lTX0RSQU1fQkFTRQogLnJlcHQgOAogCXN0cglyMiwgW3IzXQogLmVuZHIKQEAgLTMxNSw3ICszMTUsNyBAQAogCiAJLyogU3RlcCA0aDogV3JpdGUgTURNUlMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCi0JbGRyICAgICByMiwgPUNGR19NRE1SU19WQUwKKwlsZHIgICAgIHIyLCA9Q09ORklHX1NZU19NRE1SU19WQUwKIAlzdHIgICAgIHIyLCBbcjEsICNNRE1SU19PRkZTRVRdCiAKIApkaWZmIC0tZ2l0IGEvYm9hcmQvY200MDA4L2ZsYXNoLmMgYi9ib2FyZC9jbTQwMDgvZmxhc2guYwppbmRleCA4NmM4ZTJhLi4yZTY2ODcyIDEwMDY0NAotLS0gYS9ib2FyZC9jbTQwMDgvZmxhc2guYworKysgYi9ib2FyZC9jbTQwMDgvZmxhc2guYwpAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2J5dGVvcmRlci9zd2FiLmg+CiAKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKICNkZWZpbmUgbWIoKSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIgOiA6IDogIm1lbW9yeSIpCiAKQEAgLTUxLDcgKzUxLDcgQEAKIAlpbnQgaTsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkJZmxhc2hfZ2V0X3NpemUgKCh1bnNpZ25lZCBjaGFyICopIFBIWVNfRkxBU0hfMSwgJmZsYXNoX2luZm9baV0pOwpAQCAtNzEsOCArNzEsOCBAQAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFICsgX2Jzc19zdGFydCAtIF9hcm1ib290X3N0YXJ0LAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgX2Jzc19zdGFydCAtIF9hcm1ib290X3N0YXJ0LAogCQkgICAgICAgJmZsYXNoX2luZm9bMF0pOwogCiAJcmV0dXJuIHNpemU7CkBAIC0xODksMTAgKzE4OSwxMCBAQAogCQlicmVhazsKIAl9CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmICgiKiogRVJST1I6IHNlY3RvciBjb3VudCAlZCA+IG1heCAoJWQpICoqXG4iLAotCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOwotCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSAweEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMjU5LDcgKzI1OSw3IEBACiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIDB4ODApICE9IDB4ODApIHsKIAkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+Ci0JCQkJICAgIENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJICAgIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJKmFkZHIgPSAweEIwOwkvKiBzdXNwZW5kIGVyYXNlICovCiAJCQkJCSphZGRyID0gMHhGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC0zODgsNyArMzg4LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgMHg4MCkgIT0gMHg4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IDB4RkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9jbTQxeHgvZmxhc2guYyBiL2JvYXJkL2NtNDF4eC9mbGFzaC5jCmluZGV4IDg2YzhlMmEuLjJlNjY4NzIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NtNDF4eC9mbGFzaC5jCisrKyBiL2JvYXJkL2NtNDF4eC9mbGFzaC5jCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogI2RlZmluZSBtYigpIF9fYXNtX18gX192b2xhdGlsZV9fICgiIiA6IDogOiAibWVtb3J5IikKIApAQCAtNTEsNyArNTEsNyBAQAogCWludCBpOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXN3aXRjaCAoaSkgewogCQljYXNlIDA6CiAJCQlmbGFzaF9nZXRfc2l6ZSAoKHVuc2lnbmVkIGNoYXIgKikgUEhZU19GTEFTSF8xLCAmZmxhc2hfaW5mb1tpXSk7CkBAIC03MSw4ICs3MSw4IEBACiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyBfYnNzX3N0YXJ0IC0gX2FybWJvb3Rfc3RhcnQsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBfYnNzX3N0YXJ0IC0gX2FybWJvb3Rfc3RhcnQsCiAJCSAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlyZXR1cm4gc2l6ZTsKQEAgLTE4OSwxMCArMTg5LDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IDB4RkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0yNTksNyArMjU5LDcgQEAKIAogCQkJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgMHg4MCkgIT0gMHg4MCkgewogCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4KLQkJCQkgICAgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQkgICAgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IDB4QjA7CS8qIHN1c3BlbmQgZXJhc2UgKi8KIAkJCQkJKmFkZHIgPSAweEZGOwkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KQEAgLTM4OCw3ICszODgsNyBAQAogCiAJLyogd2FpdCB3aGlsZSBwb2xsaW5nIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAweDgwKSAhPSAweDgwKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gMHhGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2NtNTIwMC9jbTUyMDAuYyBiL2JvYXJkL2NtNTIwMC9jbTUyMDAuYwppbmRleCAyNGU4ZGIwLi45ZTJmMWE1IDEwMDY0NAotLS0gYS9ib2FyZC9jbTUyMDAvY201MjAwLmMKKysrIGIvYm9hcmQvY201MjAwL2NtNTIwMC5jCkBAIC01Nyw3ICs1Nyw3IEBACiBzdGF0aWMgaHdfaWRfdCBod19pZDsKIAogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogLyoKICAqIEhlbHBlciBmdW5jdGlvbiB0byBpbml0aWFsaXplIFNEUkFNIGNvbnRyb2xsZXIuCiAgKi8KQEAgLTg3LDcgKzg3LDcgQEAKIAkvKiBub3JtYWwgb3BlcmF0aW9uICovCiAJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DVFJMID0gbWVtX2NvbmYtPmNvbnRyb2wgfCBoaV9hZGRyX2JpdDsKIH0KLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAKIC8qCkBAIC0xMTcsNyArMTE3LDcgQEAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewogCXVsb25nIGRyYW1zaXplID0gMDsKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgdGVzdDEsIHRlc3QyOwogCW1lbV9jb25mX3QgKm1lbV9jb25mOwogCkBAIC0xMzEsOSArMTMxLDkgQEAKIAkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NPTkZJRzIgPSBtZW1fY29uZi0+Y29uZmlnMjsKIAogCXNkcmFtX3N0YXJ0KDAsIG1lbV9jb25mKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSwgbWVtX2NvbmYpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwLCBtZW1fY29uZik7CiAJCWRyYW1zaXplID0gdGVzdDE7CkBAIC0xNTAsMTQgKzE1MCwxNCBAQAogCQkJX19idWlsdGluX2ZmcyhkcmFtc2l6ZSA+PiAyMCkgLSAxOwogCX0gZWxzZQogCQkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyA9IDA7IC8qIGRpc2FibGVkICovCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAJLyogcmV0cmlldmUgc2l6ZSBvZiBtZW1vcnkgY29ubmVjdGVkIHRvIFNEUkFNIENTMCAqLwogCWRyYW1zaXplID0gKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzBDRkcgJiAweEZGOwogCWlmIChkcmFtc2l6ZSA+PSAweDEzKQogCQlkcmFtc2l6ZSA9ICgxIDw8IChkcmFtc2l6ZSAtIDB4MTMpKSA8PCAyMDsKIAllbHNlCiAJCWRyYW1zaXplID0gMDsKLSNlbmRpZiAvKiAhQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiAhQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKgogCSAqIE9uIE1QQzUyMDBCIHdlIG5lZWQgdG8gc2V0IHRoZSBzcGVjaWFsIGNvbmZpZ3VyYXRpb24gZGVsYXkgaW4gdGhlCkBAIC0xNzgsNyArMTc4LDcgQEAKIHsKIAlpbnQgaTsKIAlmb3IgKGkgPSAwOyBpIDwgSFdfSURfRUxFTV9DT1VOVDsgKytpKQotCQlpZiAoaTJjX3JlYWQoQ0ZHX0kyQ19FRVBST00sCisJCWlmIChpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19FRVBST00sCiAJCQkJaHdfaWRfZm9ybWF0W2ldLm9mZnNldCwKIAkJCQkyLAogCQkJCSh1Y2hhciAqKSZod19pZFtpXVswXSwKQEAgLTI5OCw3ICsyOTgsNyBAQAogCSAqIGFsc28gdXNlIGEgbGl0dGxlIHRyaWNrIHRvIHNpbGVuY2UgSTJDLXJlbGF0ZWQgb3V0cHV0LgogCSAqLwogCWdkLT5mbGFncyB8PSBHRF9GTEdfU0lMRU5UOwotCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAlnZC0+ZmxhZ3MgJj0gfkdEX0ZMR19TSUxFTlQ7CiAKIAlyZWFkX2h3X2lkKGh3X2lkX3RtcCk7CkBAIC0zNjMsNyArMzYzLDcgQEAKIAljaGFyIGhvc3RuYW1lW01PRFVMRV9OQU1FX01BWExFTl07CiAKIAkvKiBSZWFkIGV0aGFkZHIgZnJvbSBFRVBST00gKi8KLQlpZiAoaTJjX3JlYWQoQ0ZHX0kyQ19FRVBST00sIENPTkZJR19NQUNfT0ZGU0VULCAyLCBidWYsIDYpID09IDApIHsKKwlpZiAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfRUVQUk9NLCBDT05GSUdfTUFDX09GRlNFVCwgMiwgYnVmLCA2KSA9PSAwKSB7CiAJCXNwcmludGYoc3RyLCAiJTAyWDolMDJYOiUwMlg6JTAyWDolMDJYOiUwMlgiLAogCQkJYnVmWzBdLCBidWZbMV0sIGJ1ZlsyXSwgYnVmWzNdLCBidWZbNF0sIGJ1Zls1XSk7CiAJCS8qIENoZWNrIGlmIE1BQyBhZGRyIGlzIG93bmVkIGJ5IFNjaGluZGxlciAqLwpAQCAtMzc3LDcgKzM3Nyw3IEBACiAJCX0KIAl9IGVsc2UgewogCQlwcmludGYoTE9HX1BSRUZJWCAiV2FybmluZyAtIFVuYWJsZSB0byByZWFkIE1BQyBmcm9tIEkyQyIKLQkJCSIgZGV2aWNlIGF0IGFkZHJlc3MgJTAyWDolMDRYXG4iLCBDRkdfSTJDX0VFUFJPTSwKKwkJCSIgZGV2aWNlIGF0IGFkZHJlc3MgJTAyWDolMDRYXG4iLCBDT05GSUdfU1lTX0kyQ19FRVBST00sCiAJCQlDT05GSUdfTUFDX09GRlNFVCk7CiAJfQogI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX0hBUkRfSTJDKSB8fCBkZWZpbmVkKENPTkZJR19TT0ZUX0kyQykgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2NtNTIwMC9jbWRfY201MjAwLmMgYi9ib2FyZC9jbTUyMDAvY21kX2NtNTIwMC5jCmluZGV4IDIyMDFiZGQuLjAwZjA2NzEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NtNTIwMC9jbWRfY201MjAwLmMKKysrIGIvYm9hcmQvY201MjAwL2NtZF9jbTUyMDAuYwpAQCAtMzksMTggKzM5LDE4IEBACiAJZ2V0YygpOwogCiAJdGVtcCA9IDB4ZjA7IC8qIHNldCBpbyAwLTQgYXMgb3V0cHV0ICovCi0JaTJjX3dyaXRlKENGR19JMkNfSU8sIDMsIDEsICh1Y2hhciAqKSZ0ZW1wLCAxKTsKKwlpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfSU8sIDMsIDEsICh1Y2hhciAqKSZ0ZW1wLCAxKTsKIAogCXByaW50ZigiUHJlc3MgSTJDNC03LiBMRUQgSTJDMC0zIHNob3VsZCBoYXZlIHRoZSBzYW1lIHN0YXRlXG5cbiIKIAkJIlByZXNzIGFueSBrZXkgdG8gc3RvcFxuXG4iKTsKIAogCXdoaWxlICghdHN0YygpKSB7Ci0JCWkyY19yZWFkKENGR19JMkNfSU8sIDAsIDEsICh1Y2hhciAqKSZ0ZW1wLCAxKTsKKwkJaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfSU8sIDAsIDEsICh1Y2hhciAqKSZ0ZW1wLCAxKTsKIAkJdGVtcDEgPSAodGVtcCA+PiA0KSAmIDB4MDM7CiAJCXRlbXAxIHw9ICh0ZW1wID4+IDMpICYgMHgwODsgLyogUzMwMiAtPiBMRUQzMDMgKi8KIAkJdGVtcDEgfD0gKHRlbXAgPj4gNSkgJiAweDA0OyAvKiBTMzAzIC0+IExFRDMwMiAqLwogCQl0ZW1wID0gdGVtcDE7Ci0JCWkyY193cml0ZShDRkdfSTJDX0lPLCAxLCAxLCAodWNoYXIgKikmdGVtcCwgMSk7CisJCWkyY193cml0ZShDT05GSUdfU1lTX0kyQ19JTywgMSwgMSwgKHVjaGFyICopJnRlbXAsIDEpOwogCX0KIAlnZXRjKCk7CiAKQEAgLTM5Miw3ICszOTIsNyBAQAogCQllcnJvcl9zdGF0dXMgPSAxOwogCQlicmVhazsKIAl9Ci0JZ3Bpby0+cG9ydF9jb25maWcgfD0gKENGR19HUFNfUE9SVF9DT05GSUcgJiAweEZGMEZGODBGKTsKKwlncGlvLT5wb3J0X2NvbmZpZyB8PSAoQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcgJiAweEZGMEZGODBGKTsKIAogCXJldHVybiBlcnJvcl9zdGF0dXM7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9jbWNfcHUyL2ZsYXNoLmMgYi9ib2FyZC9jbWNfcHUyL2ZsYXNoLmMKaW5kZXggODk2NjM5OS4uZDgzMmU2MiAxMDA2NDQKLS0tIGEvYm9hcmQvY21jX3B1Mi9mbGFzaC5jCisrKyBiL2JvYXJkL2NtY19wdTIvZmxhc2guYwpAQCAtMzAsMTAgKzMwLDEwIEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAKICNpZm5kZWYJQ09ORklHX0VOVl9BRERSCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICNlbmRpZgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogI2RlZmluZSBGTEFTSF9DWUNMRTEJMHgwNTU1CiAjZGVmaW5lIEZMQVNIX0NZQ0xFMgkweDAyQUEKQEAgLTU0LDcgKzU0LDcgQEAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHNpemUgPSAwOwotCXVsb25nIGZsYXNoYmFzZSA9IENGR19GTEFTSF9CQVNFOworCXVsb25nIGZsYXNoYmFzZSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KIAltZW1zZXQoJmZsYXNoX2luZm9bMF0sIDAsIHNpemVvZihmbGFzaF9pbmZvX3QpKTsKQEAgLTYzLDEyICs2MywxMiBAQAogCiAJc2l6ZSA9IGZsYXNoX2luZm9bMF0uc2l6ZTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAotCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDRkdfTU9OSVRPUl9CQVNFKSk7CisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDT05GSUdfU1lTX01PTklUT1JfQkFTRSkpOwogI2VuZGlmCiAKICNpZmRlZglDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC0xMDQsMTQgKzEwNCwxNCBAQAogCWZsYXNoX2luZm9fdCAqIGluZm87CiAKIAlpbmZvID0gTlVMTDsKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSArKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSArKykgewogCQlpbmZvID0gJiBmbGFzaF9pbmZvW2ldOwogCQlpZiAoaW5mby0+c2l6ZSAmJiBpbmZvLT5zdGFydFswXSA8PSBiYXNlICYmCiAJCSAgICBiYXNlIDw9IGluZm8tPnN0YXJ0WzBdICsgaW5mby0+c2l6ZSAtIDEpCiAJCQlicmVhazsKIAl9CiAKLQlyZXR1cm4gaSA9PSBDRkdfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm87CisJcmV0dXJuIGkgPT0gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgPyAwIDogaW5mbzsKIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzM5LDcgKzMzOSw3IEBACiAJCWxhc3QgID0gMDsKIAkJYWRkciA9ICh2dV9zaG9ydCAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAkJd2hpbGUgKChhZGRyWzBdICYgMHgwMDgwKSAhPSAweDAwODApIHsKLQkJCWlmICgobm93ID0gZ2V0X3RpbWVyX21hc2tlZCAoKSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJaWYgKChub3cgPSBnZXRfdGltZXJfbWFza2VkICgpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCXJldHVybiAxOwogCQkJfQpAQCAtNDU5LDcgKzQ1OSw3IEBACiAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJd2hpbGUgKCgqZGVzdCAmIDB4MDA4MCkgIT0gKGRhdGEgJiAweDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSpkZXN0ID0gMHgwMEYwOwkvKiByZXNldCBiYW5rICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9jbWkvY21pLmMgYi9ib2FyZC9jbWkvY21pLmMKaW5kZXggZWUyNDNkYi4uYjc4MTgzZSAxMDA2NDQKLS0tIGEvYm9hcmQvY21pL2NtaS5jCisrKyBiL2JvYXJkL2NtaS9jbWkuYwpAQCAtNzAsNCArNzAsNCBAQAogLyoKICAqIEFic29sdXRlIGVudmlyb25tZW50IGFkZHJlc3MgZm9yIGxpbmtlciBmaWxlLgogICovCi1HRU5fQUJTKGVudl9zdGFydCwgQ09ORklHX0VOVl9PRkZTRVQgKyBDRkdfRkxBU0hfQkFTRSk7CitHRU5fQUJTKGVudl9zdGFydCwgQ09ORklHX0VOVl9PRkZTRVQgKyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvY21pL2ZsYXNoLmMgYi9ib2FyZC9jbWkvZmxhc2guYwppbmRleCAwZDQ1ODJiLi42MzBjMzMwIDEwMDY0NAotLS0gYS9ib2FyZC9jbWkvZmxhc2guYworKysgYi9ib2FyZC9jbWkvZmxhc2guYwpAQCAtMzgsNyArMzgsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNjIsNyArNjIsNyBAQAogI2RlZmluZSBGTEFTSF9DTURfUFJPVEVDVF9DTEVBUgkJMHgwMEQwCiAjZGVmaW5lIEZMQVNIX1NUQVRVU19ET05FCQkweDAwODAKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIC8qCiAgKiBMb2NhbCBmdW5jdGlvbiBwcm90b3R5cGVzCkBAIC04MSw3ICs4MSw3IEBACiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTEwMiwxMSArMTAyLDExIEBACiAKIAlmbGFzaF9pbmZvWzBdLnNpemUgPSBzaXplX2IwOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMjY4LDEwICsyNjgsMTAgQEAKIAogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IEZMQVNIX0NNRF9SRVNFVDsJCS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0zNDUsNyArMzQ1LDcgQEAKIAkJCXVkZWxheSAoMTAwMCk7CiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIEZMQVNIX1NUQVRVU19ET05FKSAhPSBGTEFTSF9TVEFUVVNfRE9ORSkgewotCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYoIkZsYXNoIGVyYXNlIHRpbWVvdXQgYXQgYWRkcmVzcyAlbHhcbiIsIGluZm8tPnN0YXJ0W3NlY3RdKTsKIAkJCQkJKmFkZHIgPSBGTEFTSF9DTURfU1VTUEVORF9FUkFTRTsKIAkJCQkJKmFkZHIgPSBGTEFTSF9DTURfUkVTRVQ7CkBAIC00NzMsNyArNDczLDcgQEAKIAogCS8qIHdhaXQgZm9yIGVycm9yIG9yIGZpbmlzaCAqLwogCXdoaWxlKCEoYWRkclswXSAmIEZMQVNIX1NUQVRVU19ET05FKSl7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCWFkZHJbMF0gPSBGTEFTSF9DTURfUkVTRVQ7CiAJCQlyZXR1cm4gKDEpOwogCQl9CkBAIC01MDQsNyArNTA0LDcgQEAKIAkvKiB3YWl0IGZvciBlcnJvciBvciBmaW5pc2ggKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUoIShhZGRyWzBdICYgRkxBU0hfU1RBVFVTX0RPTkUpKXsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmKCJGbGFzaCBwcm90ZWN0IHRpbWVvdXQgYXQgYWRkcmVzcyAlbHhcbiIsICBpbmZvLT5zdGFydFtzZWN0b3JdKTsKIAkJCWFkZHJbMF0gPSBGTEFTSF9DTURfUkVTRVQ7CiAJCQlyZXR1cm4gKDEpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvY29icmE1MjcyL2NvYnJhNTI3Mi5jIGIvYm9hcmQvY29icmE1MjcyL2NvYnJhNTI3Mi5jCmluZGV4IGI5Mjg1NTAuLmE2MjIxNGMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NvYnJhNTI3Mi9jb2JyYTUyNzIuYworKysgYi9ib2FyZC9jb2JyYTUyNzIvY29icmE1MjcyLmMKQEAgLTQyLDcgKzQyLDcgQEAKIAkvKiBEdW1teSB3cml0ZSB0byBzdGFydCBTRFJBTSAqLwogCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgMCkgPSAwOwogCi0JcmV0dXJuIENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OwogfTsKIAogaW50IHRlc3RkcmFtICh2b2lkKQpkaWZmIC0tZ2l0IGEvYm9hcmQvY29icmE1MjcyL2ZsYXNoLmMgYi9ib2FyZC9jb2JyYTUyNzIvZmxhc2guYwppbmRleCA4MjQ1MmUyLi4zM2M5MzYxIDEwMDY0NAotLS0gYS9ib2FyZC9jb2JyYTUyNzIvZmxhc2guYworKysgYi9ib2FyZC9jb2JyYTUyNzIvZmxhc2guYwpAQCAtMjMsMTAgKzIzLDEwIEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KIAotI2RlZmluZSBQSFlTX0ZMQVNIXzEgQ0ZHX0ZMQVNIX0JBU0UKKyNkZWZpbmUgUEhZU19GTEFTSF8xIENPTkZJR19TWVNfRkxBU0hfQkFTRQogI2RlZmluZSBGTEFTSF9CQU5LX1NJWkUgMHgyMDAwMDAKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIHZvaWQgZmxhc2hfcHJpbnRfaW5mbyAoZmxhc2hfaW5mb190ICogaW5mbykKIHsKQEAgLTc0LDE1ICs3NCwxNSBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9CiAJCQkoQU1EX01BTlVGQUNUICYgRkxBU0hfVkVORE1BU0spIHwKIAkJCShBTURfSURfUEwxNjBDQiAmIEZMQVNIX1RZUEVNQVNLKTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCQlpZiAoaSA9PSAwKQogCQkJZmxhc2hiYXNlID0gUEhZU19GTEFTSF8xOwogCQllbHNlCkBAIC0xMTMsOCArMTEzLDggQEAKIAl9CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSArIDB4M2ZmZmYsICZmbGFzaF9pbmZvWzBdKTsKKwkJICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4M2ZmZmYsICZmbGFzaF9pbmZvWzBdKTsKIAogCXJldHVybiBzaXplOwogfQpAQCAtMTI4LDggKzEyOCw4IEBACiAjZGVmaW5lIENNRF9QUk9HUkFNCQkweDAwQTAKICNkZWZpbmUgQ01EX1VOTE9DS19CWVBBU1MJMHgwMDIwCiAKLSNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MTYgKikoQ0ZHX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NTw8MSkpKQotI2RlZmluZSBNRU1fRkxBU0hfQUREUjIJCSgqKHZvbGF0aWxlIHUxNiAqKShDRkdfRkxBU0hfQkFTRSArICgweDAwMDAwMkFBPDwxKSkpCisjZGVmaW5lIE1FTV9GTEFTSF9BRERSMQkJKCoodm9sYXRpbGUgdTE2ICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgweDAwMDAwNTU1PDwxKSkpCisjZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgweDAwMDAwMkFBPDwxKSkpCiAKICNkZWZpbmUgQklUX0VSQVNFX0RPTkUJCTB4MDA4MAogI2RlZmluZSBCSVRfUkRZX01BU0sJCTB4MDA4MApAQCAtMjExLDcgKzIxMSw3IEBACiAJCQkJcmVzdWx0ID0gKmFkZHI7CiAKIAkJCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCQkJaWYgKGdldF90aW1lciAoMCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXIgKDApID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCU1FTV9GTEFTSF9BRERSMSA9IENNRF9SRUFEX0FSUkFZOwogCQkJCQljaGlwMSA9IFRNTzsKIAkJCQkJYnJlYWs7CkBAIC0yOTksNyArMjk5LDcgQEAKIAkJcmVzdWx0ID0gKmFkZHI7CiAKIAkJLyogY2hlY2sgdGltZW91dCAqLwotCQlpZiAoZ2V0X3RpbWVyICgwKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKDApID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQljaGlwMSA9IEVSUiB8IFRNTzsKIAkJCWJyZWFrOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9jb2JyYTUyNzIvbWlpLmMgYi9ib2FyZC9jb2JyYTUyNzIvbWlpLmMKaW5kZXggYjMwYmE4MC4uMTYxYzY5NCAxMDA2NDQKLS0tIGEvYm9hcmQvY29icmE1MjcyL21paS5jCisrKyBiL2JvYXJkL2NvYnJhNTI3Mi9taWkuYwpAQCAtNDUsNyArNDUsNyBAQAogCXJldHVybiAwOwogfQogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCiAjaW5jbHVkZSA8bWlpcGh5Lmg+CiAKIC8qIE1ha2UgTUlJIHJlYWQvd3JpdGUgY29tbWFuZHMgZm9yIHRoZSBGRUMuICovCkBAIC0xMzEsOSArMTMxLDkgQEAKIAogCXJldHVybiAobWlpX3JlcGx5ICYgMHhmZmZmKTsJLyogZGF0YSByZWFkIGZyb20gcGh5ICovCiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSB8fCBDT05GSUdfQ01EX01JSSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkKIGludCBtaWlfZGlzY292ZXJfcGh5KHN0cnVjdCBldGhfZGV2aWNlICpkZXYpCiB7CiAjZGVmaW5lIE1BWF9QSFlfUEFTU0VTIDExCkBAIC0xOTgsNyArMTk4LDcgQEAKIAogCXJldHVybiBwaHlhZGRyOwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogCiB2b2lkIG1paV9pbml0KHZvaWQpIF9fYXR0cmlidXRlX18oKHdlYWssYWxpYXMoIl9fbWlpX2luaXQiKSkpOwogCmRpZmYgLS1naXQgYS9ib2FyZC9jb2dlbnQvUkVBRE1FIGIvYm9hcmQvY29nZW50L1JFQURNRQppbmRleCBlNmVlZjY2Li4zMWNhMTg3IDEwMDY0NAotLS0gYS9ib2FyZC9jb2dlbnQvUkVBRE1FCisrKyBiL2JvYXJkL2NvZ2VudC9SRUFETUUKQEAgLTgwLDE2ICs4MCwxNiBAQAogImluY2x1ZGUvY29uZmlnX2NvZ2VudF9tcGM4eHguaCIgYW5kIHJldmlld2luZyBhbGwgdGhlIG9wdGlvbnMgYW5kCiBzZXR0aW5ncyBpbiB0aGVyZS4gSW4gcGFydGljdWxhciwgY2hlY2sgdGhlIGNoaXAgc2VsZWN0IHZhbHVlcwogaW5zdGFsbGVkIGludG8gdGhlIG1lbW9yeSBjb250cm9sbGVyJ3MgdmFyaW91cyBvcHRpb24gYW5kIGJhc2UKLXJlZ2lzdGVycyAtIHRoZXNlIGFyZSBzZXQgYnkgdGhlIGRlZmluZXMgQ0ZHX0NNQV9DU25fe0JBU0UsU0laRX0gYW5kCi1DRkdfe0IsT31Sbl9QUkVMSU0uIEFsc28gYmUgY2FyZWZ1bCBvZiB0aGUgY2xvY2sgc2V0dGluZ3MgaW5zdGFsbGVkCi1pbnRvIHRoZSBTQ0NSIC0gdmlhIHRoZSBkZWZpbmUgQ0ZHX1NDQ1IuIEZpbmFsbHksIGRlY2lkZSB3aGV0aGVyIHlvdQorcmVnaXN0ZXJzIC0gdGhlc2UgYXJlIHNldCBieSB0aGUgZGVmaW5lcyBDT05GSUdfU1lTX0NNQV9DU25fe0JBU0UsU0laRX0gYW5kCitDT05GSUdfU1lTX3tCLE99Um5fUFJFTElNLiBBbHNvIGJlIGNhcmVmdWwgb2YgdGhlIGNsb2NrIHNldHRpbmdzIGluc3RhbGxlZAoraW50byB0aGUgU0NDUiAtIHZpYSB0aGUgZGVmaW5lIENPTkZJR19TWVNfU0NDUi4gRmluYWxseSwgZGVjaWRlIHdoZXRoZXIgeW91CiB3YW50IHRoZSBzZXJpYWwgY29uc29sZSBvbiBtb3RoZXJib2FyZCBzZXJpYWwgcG9ydCBBIG9yIG9uIG9uZSBvZiB0aGUKIDh4eCBTTUMgcG9ydHMsIGFuZCBzZXQgQ09ORklHXzh4eF9DT05TX3tTTUMxLFNNQzIsTk9ORX0gYWNjb3JkaW5nbHkKIChOT05FIG1lYW5zIHVzZSBDb2dlbnQgbW90aGVyYm9hcmQgc2VyaWFsIHBvcnQgQSkuCiAKIFRoZW4gZWRpdCB0aGUgZmlsZSAiY29nZW50L2NvbmZpZy5tayIuIEZpcnN0bHksIHNldCBURVhUX0JBU0UgdG8gYmUKIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIEVQUk9NIGZvciB0aGUgQ1BVIG1vZHVsZS4gVGhpcyBzaG91bGQgYmUgdGhlCi1zYW1lIGFzIHRoZSB2YWx1ZSBzZWxlY3RlZCBmb3IgQ0ZHX01PTklUT1JfQkFTRSBpbgorc2FtZSBhcyB0aGUgdmFsdWUgc2VsZWN0ZWQgZm9yIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIGluCiAiaW5jbHVkZS9jb25maWdfY29nZW50XyouaCIgKGluIGZhY3QsIEkgaGF2ZSBtYWRlIHRoaXMgYXV0b21hdGljIHZpYQogdGhlIC1EVEVYVF9CQVNFPS4uLiBvcHRpb24gaW4gQ1BQRkxBR1MpLgogCmRpZmYgLS1naXQgYS9ib2FyZC9jb2dlbnQvZmxhc2guYyBiL2JvYXJkL2NvZ2VudC9mbGFzaC5jCmluZGV4IDk0MmYzM2EuLmU2Yzg1YjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NvZ2VudC9mbGFzaC5jCisrKyBiL2JvYXJkL2NvZ2VudC9mbGFzaC5jCkBAIC0yNCwxMSArMjQsMTEgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxib2FyZC9jb2dlbnQvZmxhc2guaD4KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC0xMjEsNyArMTIxLDcgQEAKIAkJZmlwLT5zaXplICs9IEMzMDJGX0JOS19TSVpFOwogCQlvc2MgPSBmaXAtPnNlY3Rvcl9jb3VudDsKIAkJZmlwLT5zZWN0b3JfY291bnQgKz0gQzMwMkZfQk5LX05CTE9DS1M7Ci0JCWlmICgobnNjID0gZmlwLT5zZWN0b3JfY291bnQpID49IENGR19NQVhfRkxBU0hfU0VDVCkKKwkJaWYgKChuc2MgPSBmaXAtPnNlY3Rvcl9jb3VudCkgPj0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkKIAkJCXBhbmljKCJUb28gbWFueSBzZWN0b3JzIGluIGZsYXNoIGF0IGFkZHJlc3MgMHglMDhseFxuIiwKIAkJCQkodW5zaWduZWQgbG9uZyliYXNlKTsKIApAQCAtMjY0LDcgKzI2NCw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAlkbyB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHZhbCA9IDE7CiAJCQlnb3RvIGRvbmU7CiAJCX0KQEAgLTI5NSw3ICsyOTUsNyBAQAogCWZsYXNoX2luZm9fdCAqZmlwOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC0zMDMsNyArMzAzLDcgQEAKIAl0b3RhbCA9IDBMOwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01BMzAyKQotCWMzMDJmX3Byb2JlKGZpcCwgKGMzMDJmX2FkZHJfdClDRkdfRkxBU0hfQkFTRSk7CisJYzMwMmZfcHJvYmUoZmlwLCAoYzMwMmZfYWRkcl90KUNPTkZJR19TWVNfRkxBU0hfQkFTRSk7CiAJdG90YWwgKz0gZmlwLT5zaXplOwogCWZpcCsrOwogI2VuZGlmCkBAIC0zMjAsMTAgKzMyMCwxMCBAQAogCSAqIHByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA9PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID09IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTQ3Miw3ICs0NzIsNyBAQAogCQkJZG8gewogCQkJCW5vdyA9IGdldF90aW1lcihzdGFydCk7CiAKLQkJCQlpZiAobm93IC0gZXN0YXJ0ID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAobm93IC0gZXN0YXJ0ID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXQgKHNlY3QgJWQpXG4iLCBzZWN0KTsKIAkJCQkJaGFkZXJyID0gMTsKIAkJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9ib2FyZC9jb2dlbnQvbGNkLmMgYi9ib2FyZC9jb2dlbnQvbGNkLmMKaW5kZXggODE0YjRjOC4uNzZmNWFkMSAxMDA2NDQKLS0tIGEvYm9hcmQvY29nZW50L2xjZC5jCisrKyBiL2JvYXJkL2NvZ2VudC9sY2QuYwpAQCAtMTk3LDcgKzE5Nyw3IEBACiBsY2RfcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogICAgIHZhX2xpc3QgYXJnczsKLSAgICBjaGFyIGJ1ZltDRkdfUEJTSVpFXTsKKyAgICBjaGFyIGJ1ZltDT05GSUdfU1lTX1BCU0laRV07CiAKICAgICB2YV9zdGFydChhcmdzLCBmbXQpOwogICAgICh2b2lkKXZzcHJpbnRmKGJ1ZiwgZm10LCBhcmdzKTsKQEAgLTIzNCw3ICsyMzQsNyBAQAogdm9pZCBib2FyZF9zaG93X2FjdGl2aXR5ICh1bG9uZyB0aW1lc3RhbXApCiB7CiAjaWZkZWYgQ09ORklHX1NUQVRVU19MRUQKLQlpZiAoKHRpbWVzdGFtcCAlIChDRkdfSFogLyAyKSA9PSAwKQorCWlmICgodGltZXN0YW1wICUgKENPTkZJR19TWVNfSFogLyAyKSA9PSAwKQogCQlsY2RfaGVhcnRiZWF0ICgpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9ib2FyZC9jb2dlbnQvbWIuaCBiL2JvYXJkL2NvZ2VudC9tYi5oCmluZGV4IGY2ZWFmMGEuLmIzYWJhNDggMTAwNjQ0Ci0tLSBhL2JvYXJkL2NvZ2VudC9tYi5oCisrKyBiL2JvYXJkL2NvZ2VudC9tYi5oCkBAIC02OSw1MSArNjksNTEgQEAKICAqIDB4QTAwMDAwMC0weERGRkZGRkYuCiAgKi8KIAotI2RlZmluZSBDTUFfTUJfUkFNX0JBU0UJCShDRkdfQ01BX01CX0JBU0UrMHgwMDAwMDAwKQorI2RlZmluZSBDTUFfTUJfUkFNX0JBU0UJCShDT05GSUdfU1lTX0NNQV9NQl9CQVNFKzB4MDAwMDAwMCkKICNkZWZpbmUgQ01BX01CX1JBTV9TSVpFCQkweDIwMDAwMDAJLyogZGlwIHN3cyBzZXQgYWN0dWFsIHNpemUgKi8KIAogI2lmIChDTUFfTUJfQ0FQUyAmIENNQV9NQl9DQVBfU0xPVDEpCi0jZGVmaW5lIENNQV9NQl9TTE9UMV9CQVNFCShDRkdfQ01BX01CX0JBU0UrMHgyMDAwMDAwKQorI2RlZmluZSBDTUFfTUJfU0xPVDFfQkFTRQkoQ09ORklHX1NZU19DTUFfTUJfQkFTRSsweDIwMDAwMDApCiAjZGVmaW5lIENNQV9NQl9TTE9UMV9TSVpFCTB4MjAwMDAwMAogI2VuZGlmCiAKICNpZiAoQ01BX01CX0NBUFMgJiBDTUFfTUJfQ0FQX1NMT1QyKQotI2RlZmluZSBDTUFfTUJfU0xPVDJfQkFTRQkoQ0ZHX0NNQV9NQl9CQVNFKzB4NDAwMDAwMCkKKyNkZWZpbmUgQ01BX01CX1NMT1QyX0JBU0UJKENPTkZJR19TWVNfQ01BX01CX0JBU0UrMHg0MDAwMDAwKQogI2RlZmluZSBDTUFfTUJfU0xPVDJfU0laRQkweDIwMDAwMDAKICNlbmRpZgogI2lmIChDTUFfTUJfQ0FQUyAmIENNQV9NQl9DQVBfUENJKQotI2RlZmluZSBDTUFfTUJfU1REUENJX0JBU0UJKENGR19DTUFfTUJfQkFTRSsweDQwMDAwMDApCisjZGVmaW5lIENNQV9NQl9TVERQQ0lfQkFTRQkoQ09ORklHX1NZU19DTUFfTUJfQkFTRSsweDQwMDAwMDApCiAjZGVmaW5lIENNQV9NQl9TVERQQ0lfU0laRQkweDFmZjAwMDAKLSNkZWZpbmUgQ01BX01CX1YzNjBFUENfQkFTRQkoQ0ZHX0NNQV9NQl9CQVNFKzB4NWZmMDAwMCkKKyNkZWZpbmUgQ01BX01CX1YzNjBFUENfQkFTRQkoQ09ORklHX1NZU19DTUFfTUJfQkFTRSsweDVmZjAwMDApCiAjZGVmaW5lIENNQV9NQl9WMzYwRVBDX1NJWkUJMHgxMDAwMAogI2VuZGlmCiAKICNpZiAoQ01BX01CX0NBUFMgJiBDTUFfTUJfQ0FQX1NMT1QzKQotI2RlZmluZSBDTUFfTUJfU0xPVDNfQkFTRQkoQ0ZHX0NNQV9NQl9CQVNFKzB4NjAwMDAwMCkKKyNkZWZpbmUgQ01BX01CX1NMT1QzX0JBU0UJKENPTkZJR19TWVNfQ01BX01CX0JBU0UrMHg2MDAwMDAwKQogI2RlZmluZSBDTUFfTUJfU0xPVDNfU0laRQkweDIwMDAwMDAKICNlbmRpZgogCiAjaWYgKENNQV9NQl9DQVBTICYgQ01BX01CX0NBUF9QQ0lfRVhUKQotI2RlZmluZSBDTUFfTUJfRVhUUENJX0JBU0UJKENGR19DTUFfTUJfQkFTRSsweGEwMDAwMDApCisjZGVmaW5lIENNQV9NQl9FWFRQQ0lfQkFTRQkoQ09ORklHX1NZU19DTUFfTUJfQkFTRSsweGEwMDAwMDApCiAjZGVmaW5lIENNQV9NQl9FWFRQQ0lfU0laRQkweDQwMDAwMDAKICNlbmRpZgogCi0jZGVmaW5lIENNQV9NQl9ST01MT1dfQkFTRQkoQ0ZHX0NNQV9NQl9CQVNFKzB4ZTAwMDAwMCkKKyNkZWZpbmUgQ01BX01CX1JPTUxPV19CQVNFCShDT05GSUdfU1lTX0NNQV9NQl9CQVNFKzB4ZTAwMDAwMCkKICNkZWZpbmUgQ01BX01CX1JPTUxPV19TSVpFCTB4ODAwMDAwCiAjaWYgKENNQV9NQl9DQVBTICYgQ01BX01CX0NBUF9GTEFTSCkKLSNkZWZpbmUgQ01BX01CX0ZMTE9XX0VYRUNfQkFTRQkoQ0ZHX0NNQV9NQl9CQVNFKzB4ZTAwMDAwMCkKKyNkZWZpbmUgQ01BX01CX0ZMTE9XX0VYRUNfQkFTRQkoQ09ORklHX1NZU19DTUFfTUJfQkFTRSsweGUwMDAwMDApCiAjZGVmaW5lIENNQV9NQl9GTExPV19FWEVDX1NJWkUJMHgxMDAwMDAKLSNkZWZpbmUgQ01BX01CX0ZMTE9XX1JEV1JfQkFTRQkoQ0ZHX0NNQV9NQl9CQVNFKzB4ZTQwMDAwMCkKKyNkZWZpbmUgQ01BX01CX0ZMTE9XX1JEV1JfQkFTRQkoQ09ORklHX1NZU19DTUFfTUJfQkFTRSsweGU0MDAwMDApCiAjZGVmaW5lIENNQV9NQl9GTExPV19SRFdSX1NJWkUJMHg0MDAwMDAKICNlbmRpZgogCiAjaWYgKENNQV9NQl9DQVBTICYgQ01BX01CX0NBUF9SVEMpCi0jZGVmaW5lIENNQV9NQl9SVENfQkFTRQkJKENGR19DTUFfTUJfQkFTRSsweGU4MDAwMDApCisjZGVmaW5lIENNQV9NQl9SVENfQkFTRQkJKENPTkZJR19TWVNfQ01BX01CX0JBU0UrMHhlODAwMDAwKQogI2RlZmluZSBDTUFfTUJfUlRDX1NJWkUJCTB4NDAwMAogI2VuZGlmCiAKICNpZiAoQ01BX01CX0NBUFMgJiBDTUFfTUJfQ0FQX1NFUlBBUikKLSNkZWZpbmUgQ01BX01CX1NFUlBBUl9CQVNFCShDRkdfQ01BX01CX0JBU0UrMHhlOTAwMDAwKQorI2RlZmluZSBDTUFfTUJfU0VSUEFSX0JBU0UJKENPTkZJR19TWVNfQ01BX01CX0JBU0UrMHhlOTAwMDAwKQogI2RlZmluZSAgIENNQV9NQl9TRVJJQUxCX0JBU0UJICAoQ01BX01CX1NFUlBBUl9CQVNFKzB4MDApCiAjZGVmaW5lICAgQ01BX01CX1NFUklBTEFfQkFTRQkgIChDTUFfTUJfU0VSUEFSX0JBU0UrMHg0MCkKICNkZWZpbmUgICBDTUFfTUJfUEFSQUxMRUxfQkFTRQkgIChDTUFfTUJfU0VSUEFSX0JBU0UrMHg4MCkKQEAgLTEyMSwyMCArMTIxLDIwIEBACiAjZW5kaWYKIAogI2lmIChDTUFfTUJfQ0FQUyAmIENNQV9NQl9DQVBfS0JNKQotI2RlZmluZSBDTUFfTUJfUEtCTV9CQVNFCShDRkdfQ01BX01CX0JBU0UrMHhlOTAwMTAwKQorI2RlZmluZSBDTUFfTUJfUEtCTV9CQVNFCShDT05GSUdfU1lTX0NNQV9NQl9CQVNFKzB4ZTkwMDEwMCkKICNkZWZpbmUgQ01BX01CX1BLQk1fU0laRQkweDEwCiAjZW5kaWYKIAogI2lmIChDTUFfTUJfQ0FQUyAmIENNQV9NQl9DQVBfTENEKQotI2RlZmluZSBDTUFfTUJfTENEX0JBU0UJCShDRkdfQ01BX01CX0JBU0UrMHhlYjAwMDAwKQorI2RlZmluZSBDTUFfTUJfTENEX0JBU0UJCShDT05GSUdfU1lTX0NNQV9NQl9CQVNFKzB4ZWIwMDAwMCkKICNkZWZpbmUgQ01BX01CX0xDRF9TSVpFCQkweDEwCiAjZW5kaWYKIAotI2RlZmluZSBDTUFfTUJfRElQU1dfQkFTRQkoQ0ZHX0NNQV9NQl9CQVNFKzB4ZWMwMDAwMCkKKyNkZWZpbmUgQ01BX01CX0RJUFNXX0JBU0UJKENPTkZJR19TWVNfQ01BX01CX0JBU0UrMHhlYzAwMDAwKQogI2RlZmluZSBDTUFfTUJfRElQU1dfU0laRQkweDEwCiAKICNpZiAoQ01BX01CX0NBUFMgJiAoQ01BX01CX0NBUF9TTE9UMXxDTUFfTUJfQ0FQX1NFUjJ8Q01BX01CX0NBUF9LQk0pKQotI2RlZmluZSBDTUFfTUJfU0xPVDFDRkdfQkFTRQkoQ0ZHX0NNQV9NQl9CQVNFKzB4ZjEwMDAwMCkKKyNkZWZpbmUgQ01BX01CX1NMT1QxQ0ZHX0JBU0UJKENPTkZJR19TWVNfQ01BX01CX0JBU0UrMHhmMTAwMDAwKQogI2lmIChDTUFfTUJfQ0FQUyAmIENNQV9NQl9DQVBfU0VSMikKICNkZWZpbmUgICBDTUFfTUJfU0VSMl9CQVNFCSAgKENNQV9NQl9TTE9UMUNGR19CQVNFKzB4ODApCiAjZGVmaW5lICAgICBDTUFfTUJfU0VSMkJfQkFTRQkgICAgKENNQV9NQl9TRVIyX0JBU0UrMHgwMCkKQEAgLTE1Miw3ICsxNTIsNyBAQAogI2VuZGlmCiAKICNpZiAoQ01BX01CX0NBUFMgJiBDTUFfTUJfQ0FQX1NMT1QyKQotI2RlZmluZSBDTUFfTUJfU0xPVDJDRkdfQkFTRQkoQ0ZHX0NNQV9NQl9CQVNFKzB4ZjIwMDAwMCkKKyNkZWZpbmUgQ01BX01CX1NMT1QyQ0ZHX0JBU0UJKENPTkZJR19TWVNfQ01BX01CX0JBU0UrMHhmMjAwMDAwKQogI2lmIGRlZmluZWQoQ09ORklHX0NNQTMwMikgJiYgZGVmaW5lZChDT05GSUdfQ01BMzAyX1NMT1QyKQogI2RlZmluZSAgIENNQV9NQl9TMktCTV9CQVNFCSAgKENNQV9NQl9TTE9UMkNGR19CQVNFKzB4MjAwKQogI2VuZGlmCkBAIC0xNjAsNyArMTYwLDcgQEAKICNlbmRpZgogCiAjaWYgKENNQV9NQl9DQVBTICYgQ01BX01CX0NBUF9QQ0kpCi0jZGVmaW5lIENNQV9NQl9QQ0lDVExfQkFTRQkoQ0ZHX0NNQV9NQl9CQVNFKzB4ZjIwMDAwMCkKKyNkZWZpbmUgQ01BX01CX1BDSUNUTF9CQVNFCShDT05GSUdfU1lTX0NNQV9NQl9CQVNFKzB4ZjIwMDAwMCkKICNkZWZpbmUgICBDTUFfTUJfUENJX1YzQ1RMX0JBU0UJICAoQ01BX01CX1BDSUNUTF9CQVNFKzB4MTAwKQogI2RlZmluZSAgIENNQV9NQl9QQ0lfSURTRUxfQkFTRQkgIChDTUFfTUJfUENJQ1RMX0JBU0UrMHgyMDApCiAjZGVmaW5lICAgQ01BX01CX1BDSV9JTUFTS19CQVNFCSAgKENNQV9NQl9QQ0lDVExfQkFTRSsweDMwMCkKQEAgLTE3MSwxOSArMTcxLDE5IEBACiAjZW5kaWYKIAogI2lmIChDTUFfTUJfQ0FQUyAmIENNQV9NQl9DQVBfU0xPVDMpCi0jZGVmaW5lIENNQV9NQl9TTE9UM0NGR19CQVNFCShDRkdfQ01BX01CX0JBU0UrMHhmMzAwMDAwKQorI2RlZmluZSBDTUFfTUJfU0xPVDNDRkdfQkFTRQkoQ09ORklHX1NZU19DTUFfTUJfQkFTRSsweGYzMDAwMDApCiAjaWYgZGVmaW5lZChDT05GSUdfQ01BMzAyKSAmJiBkZWZpbmVkKENPTkZJR19DTUEzMDJfU0xPVDMpCiAjZGVmaW5lICAgQ01BX01CX1MzS0JNX0JBU0UJICAoQ01BX01CX1NMT1QzQ0ZHX0JBU0UrMHgyMDApCiAjZW5kaWYKICNkZWZpbmUgQ01BX01CX1NMT1QzQ0ZHX1NJWkUJMHg0MDAKICNlbmRpZgogCi0jZGVmaW5lIENNQV9NQl9ST01ISUdIX0JBU0UJKENGR19DTUFfTUJfQkFTRSsweGY4MDAwMDApCisjZGVmaW5lIENNQV9NQl9ST01ISUdIX0JBU0UJKENPTkZJR19TWVNfQ01BX01CX0JBU0UrMHhmODAwMDAwKQogI2RlZmluZSBDTUFfTUJfUk9NSElHSF9TSVpFCTB4ODAwMDAwCiAjaWYgKENNQV9NQl9DQVBTICYgQ01BX01CX0NBUF9GTEFTSCkKLSNkZWZpbmUgQ01BX01CX0ZMSElHSF9FWEVDX0JBU0UJKENGR19DTUFfTUJfQkFTRSsweGY4MDAwMDApCisjZGVmaW5lIENNQV9NQl9GTEhJR0hfRVhFQ19CQVNFCShDT05GSUdfU1lTX0NNQV9NQl9CQVNFKzB4ZjgwMDAwMCkKICNkZWZpbmUgQ01BX01CX0ZMSElHSF9FWEVDX1NJWkUJMHgxMDAwMDAKLSNkZWZpbmUgQ01BX01CX0ZMSElHSF9SRFdSX0JBU0UJKENGR19DTUFfTUJfQkFTRSsweGZjMDAwMDApCisjZGVmaW5lIENNQV9NQl9GTEhJR0hfUkRXUl9CQVNFCShDT05GSUdfU1lTX0NNQV9NQl9CQVNFKzB4ZmMwMDAwMCkKICNkZWZpbmUgQ01BX01CX0ZMSElHSF9SRFdSX1NJWkUJMHg0MDAwMDAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9ib2FyZC9jcGM0NS9jcGM0NS5jIGIvYm9hcmQvY3BjNDUvY3BjNDUuYwppbmRleCAxNmVhZDc1Li4xMTc4ODIyIDEwMDY0NAotLS0gYS9ib2FyZC9jcGM0NS9jcGM0NS5jCisrKyBiL2JvYXJkL2NwYzQ1L2NwYzQ1LmMKQEAgLTcyLDcgKzcyLDcgQEAKIAl1aW50OF90IG1iZXIgPSAwOwogCXVuc2lnbmVkIGludCB0bXA7CiAKLQlpMmNfaW5pdChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCiAJaWYgKGkyY19yZWdfcmVhZCAoMHg1MCwgMikgIT0gMHgwNCkKIAkJcmV0dXJuIDA7CS8qIE1lbW9yeSB0eXBlICovCkBAIC04OSw3ICs4OSw3IEBACiAJQ09ORklHX1JFQURfV09SRChNQ0NSMiwgbWNjcjIpOwogCW1jY3IyICY9IDB4ZmZmZjAwMDA7CiAKLQlzdGFydCA9IENGR19TRFJBTV9CQVNFOworCXN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOwogCWVuZCA9IHN0YXJ0ICsgKDEgPDwgKGNvbCArIHJvdyArIDMpICkgKiBiYW5rIC0gMTsKIAogCWZvciAoaSA9IDA7IGkgPCBtOyBpKyspIHsKQEAgLTI0Myw4ICsyNDMsOCBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX1BDTUNJQSkKIAotI2lmZGVmIENGR19QQ01DSUFfTUVNX0FERFIKLXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKnBjbWNpYV9tZW0gPSAodW5zaWduZWQgY2hhciopQ0ZHX1BDTUNJQV9NRU1fQUREUjsKKyNpZmRlZiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgordm9sYXRpbGUgdW5zaWduZWQgY2hhciAqcGNtY2lhX21lbSA9ICh1bnNpZ25lZCBjaGFyKilDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUjsKICNlbmRpZgogCiBpbnQgcGNtY2lhX2luaXQodm9pZCkKZGlmZiAtLWdpdCBhL2JvYXJkL2NwYzQ1L2ZsYXNoLmMgYi9ib2FyZC9jcGM0NS9mbGFzaC5jCmluZGV4IDM4MjZhNTQuLjhmZTc1ODQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NwYzQ1L2ZsYXNoLmMKKysrIGIvYm9hcmQvY3BjNDUvZmxhc2guYwpAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNDEsNyArNDEsNyBAQAogI2RlZmluZSBNQUlOX1NFQ1RfU0laRSAgMHg0MDAwMAogI2RlZmluZSBQQVJBTV9TRUNUX1NJWkUgMHg4MDAwCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiBzdGF0aWMgaW50IHdyaXRlX2RhdGEgKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nICogZGF0YSk7CiBzdGF0aWMgdm9pZCB3cml0ZV92aWFfZnB1ICh2dV9sb25nICogYWRkciwgdWxvbmcgKiBkYXRhKTsKQEAgLTgxLDggKzgxLDggQEAKIAogCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jXG4gZWllaW8iKTsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKLQkJdnVfbG9uZyAqYWRkciA9ICh2dV9sb25nICopIChDRkdfRkxBU0hfQkFTRSArIGkgKiBGTEFTSF9CQU5LX1NJWkUpOworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJCXZ1X2xvbmcgKmFkZHIgPSAodnVfbG9uZyAqKSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgaSAqIEZMQVNIX0JBTktfU0laRSk7CiAKIAkJYWRkclswXSA9IDB4MDA5MDAwOTA7CiAKQEAgLTEyNCwxNyArMTI0LDE3IEBACiAJCWFkZHJbMF0gPSAweEZGRkZGRkZGOwogCiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IEZMQVNIX0JBTktfU0laRTsKLQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CisJCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAkJZm9yIChqID0gMDsgaiA8IGZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50OyBqKyspIHsKIAkJCWlmIChqID4gMzApIHsKLQkJCQlmbGFzaF9pbmZvW2ldLnN0YXJ0W2pdID0gQ0ZHX0ZMQVNIX0JBU0UgKworCQkJCWZsYXNoX2luZm9baV0uc3RhcnRbal0gPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKwogCQkJCQlpICogRkxBU0hfQkFOS19TSVpFICsKIAkJCQkJKE1BSU5fU0VDVF9TSVpFICogMzEpICsgKGogLQogCQkJCQkJCQkgMzEpICoKIAkJCQkJUEFSQU1fU0VDVF9TSVpFOwogCQkJfSBlbHNlIHsKLQkJCQlmbGFzaF9pbmZvW2ldLnN0YXJ0W2pdID0gQ0ZHX0ZMQVNIX0JBU0UgKworCQkJCWZsYXNoX2luZm9baV0uc3RhcnRbal0gPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKwogCQkJCQlpICogRkxBU0hfQkFOS19TSVpFICsKIAkJCQkJaiAqIE1BSU5fU0VDVF9TSVpFOwogCQkJfQpAQCAtMTYyLDIwICsxNjIsMjAgQEAKIAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UgKyBGTEFTSF9CQU5LX1NJWkUKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBGTEFTSF9CQU5LX1NJWkUKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkgICAgICAgJmZsYXNoX2luZm9bMV0pOwogI2Vsc2UKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkgICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpICYmIGRlZmluZWQoQ09ORklHX0VOVl9BRERSKQotI2lmIENPTkZJR19FTlZfQUREUiA+PSBDRkdfRkxBU0hfQkFTRSArIEZMQVNIX0JBTktfU0laRQorI2lmIENPTkZJR19FTlZfQUREUiA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBGTEFTSF9CQU5LX1NJWkUKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAogCQkgICAgICAgQ09ORklHX0VOVl9BRERSLAogCQkgICAgICAgQ09ORklHX0VOVl9BRERSICsgQ09ORklHX0VOVl9TSVpFIC0gMSwgJmZsYXNoX2luZm9bMV0pOwpAQCAtMzA5LDcgKzMwOSw3IEBACiAJCQl3aGlsZSAoKChhZGRyWzBdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgfHwKIAkJCSAgICAgICAoKGFkZHJbMV0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSkgewogCQkJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4KLQkJCQkgICAgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQkgICAgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQlhZGRyWzBdID0gMHgwMEIwMDBCMDsJLyogc3VzcGVuZCBlcmFzZSAqLwogCQkJCQlhZGRyWzBdID0gMHgwMEZGMDBGRjsJLyogdG8gcmVhZCBtb2RlICAqLwpAQCAtNDg2LDcgKzQ4Niw3IEBACiAKIAl3aGlsZSAoKChhZGRyWzBdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgfHwKIAkgICAgICAgKChhZGRyWzFdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkpIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlhZGRyWzBdID0gMHgwMEZGMDBGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2NwYzQ1L3BkNjcyOTAuYyBiL2JvYXJkL2NwYzQ1L3BkNjcyOTAuYwppbmRleCBkOGY0YmU1Li4xMmM5Yzc0IDEwMDY0NAotLS0gYS9ib2FyZC9jcGM0NS9wZDY3MjkwLmMKKysrIGIvYm9hcmQvY3BjNDUvcGQ2NzI5MC5jCkBAIC02OTksMTYgKzY5OSwxNiBAQAogCW1lbS5tYXAgPSAwOwogCW1lbS5mbGFncyA9IE1BUF9BVFRSSUIgfCBNQVBfQUNUSVZFOwogCW1lbS5zcGVlZCA9IDMwMDsKLQltZW0uc3lzX3N0YXJ0ID0gQ0ZHX1BDTUNJQV9NRU1fQUREUjsKLQltZW0uc3lzX3N0b3AgPSBDRkdfUENNQ0lBX01FTV9BRERSICsgQ0ZHX1BDTUNJQV9NRU1fU0laRSAtIDE7CisJbWVtLnN5c19zdGFydCA9IENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSOworCW1lbS5zeXNfc3RvcCA9IENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSICsgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgLSAxOwogCW1lbS5jYXJkX3N0YXJ0ID0gMDsKIAlpMzY1X3NldF9tZW1fbWFwICgmc29ja2V0LCAmbWVtKTsKIAogCW1lbS5tYXAgPSAxOwogCW1lbS5mbGFncyA9IE1BUF9BQ1RJVkU7CiAJbWVtLnNwZWVkID0gMzAwOwotCW1lbS5zeXNfc3RhcnQgPSBDRkdfUENNQ0lBX01FTV9BRERSICsgQ0ZHX1BDTUNJQV9NRU1fU0laRTsKLQltZW0uc3lzX3N0b3AgPSBDRkdfUENNQ0lBX01FTV9BRERSICsgKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFKSAtIDE7CisJbWVtLnN5c19zdGFydCA9IENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSICsgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkU7CisJbWVtLnN5c19zdG9wID0gQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIgKyAoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFKSAtIDE7CiAJbWVtLmNhcmRfc3RhcnQgPSAwOwogCWkzNjVfc2V0X21lbV9tYXAgKCZzb2NrZXQsICZtZW0pOwogCkBAIC03OTQsOCArNzk0LDggQEAKIHsKIAl1X2ludCB0bXBbMl07CiAJdV9pbnQgKm1lbSA9ICh2b2lkICopIHNvY2tldC5jYl9waHlzOwotCXVfY2hhciAqY2lzID0gKHZvaWQgKikgQ0ZHX1BDTUNJQV9NRU1fQUREUjsKLQl1X2NoYXIgKmlkZSA9ICh2b2lkICopIChDRkdfQVRBX0JBU0VfQUREUiArIENGR19BVEFfUkVHX09GRlNFVCk7CisJdV9jaGFyICpjaXMgPSAodm9pZCAqKSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUjsKKwl1X2NoYXIgKmlkZSA9ICh2b2lkICopIChDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUKTsKIAogCXBjaV9yZWFkX2NvbmZpZ19kd29yZCAoZGV2LCAweDAwLCB0bXAgKyAwKTsKIAlwY2lfcmVhZF9jb25maWdfZHdvcmQgKGRldiwgMHg4MCwgdG1wICsgMSk7CmRpZmYgLS1naXQgYS9ib2FyZC9jcHU4Ni9jb25maWcubWsgYi9ib2FyZC9jcHU4Ni9jb25maWcubWsKaW5kZXggMDAzNTRjNC4uNWZlMGNhMCAxMDA2NDQKLS0tIGEvYm9hcmQvY3B1ODYvY29uZmlnLm1rCisrKyBiL2JvYXJkL2NwdTg2L2NvbmZpZy5tawpAQCAtMjUsNyArMjUsNyBAQAogIyBDUFU4NiBib2FyZHMKICMKIAotIyBUaGlzIHNob3VsZCBiZSBlcXVhbCB0byB0aGUgQ0ZHX0ZMQVNIX0JBU0UgZGVmaW5lIGluIGNvbmZpZ19DUFU4Ni5oCisjIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgZGVmaW5lIGluIGNvbmZpZ19DUFU4Ni5oCiAjIGZvciB0aGUgImZpbmFsIiBjb25maWd1cmF0aW9uLCB3aXRoIFUtQm9vdCBpbiBmbGFzaCwgb3IgdGhlIGFkZHJlc3MKICMgaW4gUkFNIHdoZXJlIFUtQm9vdCBpcyBsb2FkZWQgYXQgZm9yIGRlYnVnZ2luZy4KICMKZGlmZiAtLWdpdCBhL2JvYXJkL2NwdTg2L2NwdTg2LmMgYi9ib2FyZC9jcHU4Ni9jcHU4Ni5jCmluZGV4IDIzZWMyODMuLmJjN2ViZmUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NwdTg2L2NwdTg2LmMKKysrIGIvYm9hcmQvY3B1ODYvY3B1ODYuYwpAQCAtMjI1LDcgKzIyNSw3IEBACiAJICovCiAJbWF4c2l6ZSA9ICgxICsgKH5vcnggfCAweDdmZmYpKSAvIDI7CiAKLQkvKiBTaW5jZSBDRkdfU0RSQU1fQkFTRSBpcyBhbHdheXMgMCAoPz8pLCB3ZSBhc3N1bWUgdGhhdAorCS8qIFNpbmNlIENPTkZJR19TWVNfU0RSQU1fQkFTRSBpcyBhbHdheXMgMCAoPz8pLCB3ZSBhc3N1bWUgdGhhdAogCSAqIHdlIGFyZSBjb25maWd1cmluZyBDUzEgaWYgYmFzZSAhPSAwCiAJICovCiAJc2Rtcl9wdHIgPSAmbWVtY3RsLT5tZW1jX3BzZG1yOwpAQCAtMjUwLDcgKzI1MCw3IEBACiAJICogIGFjY2Vzc2luZyB0aGUgU0RSQU0gd2l0aCBhIHNpbmdsZS1ieXRlIHRyYW5zYWN0aW9uLiIKIAkgKgogCSAqIFRoZSBhcHByb3ByaWF0ZSBCUngvT1J4IHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzZXQgd2hlbiB3ZQotCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENGR19TRFJBTV9CQVNFLgorCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENPTkZJR19TWVNfU0RSQU1fQkFTRS4KIAkgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9QUkVBOwpAQCAtMjYxLDcgKzI2MSw3IEBACiAJCSpiYXNlID0gYzsKIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9NUlc7Ci0JKihiYXNlICsgQ0ZHX01SU19PRkZTKSA9IGM7CS8qIHNldHRpbmcgTVIgb24gYWRkcmVzcyBsaW5lcyAqLworCSooYmFzZSArIENPTkZJR19TWVNfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfTk9STSB8IFBTRE1SX1JGRU47CiAJKmJhc2UgPSBjOwpAQCAtMjc1LDM3ICsyNzUsMzcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAl1bG9uZyBzaXplOCwgc2l6ZTk7CiAjZW5kaWYKIAlsb25nIHBzaXplOwogCiAJcHNpemUgPSAzMiAqIDEwMjQgKiAxMDI0OwogCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOwotCW1lbWN0bC0+bWVtY19wc3J0ID0gQ0ZHX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKKwltZW1jdGwtPm1lbWNfcHNydCA9IENPTkZJR19TWVNfUFNSVDsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkvKiA2MHggU0RSQU0gc2V0dXA6CiAJICovCi0Jc2l6ZTggPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfOENPTCwgQ0ZHX09SMl84Q09MLAotCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOwotCXNpemU5ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzlDT0wsIENGR19PUjJfOUNPTCwKLQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKKwlzaXplOCA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOENPTCwgQ09ORklHX1NZU19PUjJfOENPTCwKKwkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CisJc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzlDT0wsIENPTkZJR19TWVNfT1IyXzlDT0wsCisJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCiAJaWYgKHNpemU4IDwgc2l6ZTkpIHsKIAkJcHNpemUgPSBzaXplOTsKIAkJcHJpbnRmICgiKDYweDo5Q09MKSAiKTsKIAl9IGVsc2UgewotCQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl84Q09MLCBDRkdfT1IyXzhDT0wsCi0JCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOworCQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOENPTCwgQ09ORklHX1NZU19PUjJfOENPTCwKKwkJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCQlwcmludGYgKCIoNjB4OjhDT0wpICIpOwogCX0KIAotI2VuZGlmCS8qIENGR19SQU1CT09UICovCisjZW5kaWYJLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAlpY2FjaGVfZW5hYmxlICgpOwogCkBAIC0zMTUsNiArMzE1LDYgQEAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfRE9DKQogdm9pZCBkb2NfaW5pdCAodm9pZCkKIHsKLQlkb2NfcHJvYmUgKENGR19ET0NfQkFTRSk7CisJZG9jX3Byb2JlIChDT05GSUdfU1lTX0RPQ19CQVNFKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvY3B1ODYvY3B1ODYuaCBiL2JvYXJkL2NwdTg2L2NwdTg2LmgKaW5kZXggY2Y3ODUyYy4uY2EwYzM5ZiAxMDA2NDQKLS0tIGEvYm9hcmQvY3B1ODYvY3B1ODYuaAorKysgYi9ib2FyZC9jcHU4Ni9jcHU4Ni5oCkBAIC02LDE5ICs2LDE5IEBACiAjZGVmaW5lIFJFRzgoeCkJCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKHgpKQogCiAvKiBDUFU4NiByZWdpc3RlciBkZWZpbml0aW9ucyAqLwotI2RlZmluZSBDUFU4Nl9WTUVfRUFDCQlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDAwKQotI2RlZmluZSBDUFU4Nl9WTUVfU0FDCQlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDAxKQotI2RlZmluZSBDUFU4Nl9WTUVfTUFDCQlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDAyKQotI2RlZmluZSBDUFU4Nl9CQ1IJCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4MDMpCi0jZGVmaW5lIENQVTg2X0JTUgkJUkVHOChDRkdfQkNSU19CQVNFICsgMHgwNCkKLSNkZWZpbmUgQ1BVODZfV0RPR19SUE9SVAlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDA1KQotI2RlZmluZSBDUFU4Nl9NQk9YX0lSUQkJUkVHOChDRkdfQkNSU19CQVNFICsgMHgwNCkKLSNkZWZpbmUgQ1BVODZfUkVWCQlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDA3KQotI2RlZmluZSBDUFU4Nl9WTUVfSVJRTUFTSwlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDgwKQotI2RlZmluZSBDUFU4Nl9WTUVfSVJRU1RBVFVTCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4ODEpCi0jZGVmaW5lIENQVTg2X0xPQ0FMX0lSUU1BU0sJUkVHOChDRkdfQkNSU19CQVNFICsgMHg4MikKLSNkZWZpbmUgQ1BVODZfTE9DQUxfSVJRU1RBVFVTCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4ODMpCi0jZGVmaW5lIENQVTg2X1BNQ0xfSVJRU1RBVFVTCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4ODQpCisjZGVmaW5lIENQVTg2X1ZNRV9FQUMJCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDAwKQorI2RlZmluZSBDUFU4Nl9WTUVfU0FDCQlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHgwMSkKKyNkZWZpbmUgQ1BVODZfVk1FX01BQwkJUkVHOChDT05GSUdfU1lTX0JDUlNfQkFTRSArIDB4MDIpCisjZGVmaW5lIENQVTg2X0JDUgkJUkVHOChDT05GSUdfU1lTX0JDUlNfQkFTRSArIDB4MDMpCisjZGVmaW5lIENQVTg2X0JTUgkJUkVHOChDT05GSUdfU1lTX0JDUlNfQkFTRSArIDB4MDQpCisjZGVmaW5lIENQVTg2X1dET0dfUlBPUlQJUkVHOChDT05GSUdfU1lTX0JDUlNfQkFTRSArIDB4MDUpCisjZGVmaW5lIENQVTg2X01CT1hfSVJRCQlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHgwNCkKKyNkZWZpbmUgQ1BVODZfUkVWCQlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHgwNykKKyNkZWZpbmUgQ1BVODZfVk1FX0lSUU1BU0sJUkVHOChDT05GSUdfU1lTX0JDUlNfQkFTRSArIDB4ODApCisjZGVmaW5lIENQVTg2X1ZNRV9JUlFTVEFUVVMJUkVHOChDT05GSUdfU1lTX0JDUlNfQkFTRSArIDB4ODEpCisjZGVmaW5lIENQVTg2X0xPQ0FMX0lSUU1BU0sJUkVHOChDT05GSUdfU1lTX0JDUlNfQkFTRSArIDB4ODIpCisjZGVmaW5lIENQVTg2X0xPQ0FMX0lSUVNUQVRVUwlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHg4MykKKyNkZWZpbmUgQ1BVODZfUE1DTF9JUlFTVEFUVVMJUkVHOChDT05GSUdfU1lTX0JDUlNfQkFTRSArIDB4ODQpCiAKIC8qIEJvYXJkIENvbnRyb2wgUmVnaXN0ZXIgYml0cyAqLwogI2RlZmluZSBDUFU4Nl9CQ1JfRldQVAkJMHgwMQpkaWZmIC0tZ2l0IGEvYm9hcmQvY3B1ODYvZmxhc2guYyBiL2JvYXJkL2NwdTg2L2ZsYXNoLmMKaW5kZXggODQ1YTNiMi4uODEzNTc4MCAxMDA2NDQKLS0tIGEvYm9hcmQvY3B1ODYvZmxhc2guYworKysgYi9ib2FyZC9jcHU4Ni9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAjaW5jbHVkZSAiY3B1ODYuaCIKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwpAQCAtMTc3LDcgKzE3Nyw3IEBACiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duCiAJICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtMTg2LDggKzE4Niw4IEBACiAKIAkvKiBTdGF0aWMgRkxBU0ggQmFuayBjb25maWd1cmF0aW9uIGhlcmUgKG9ubHkgb25lIGJhbmspICovCiAKLQlzaXplX2IwID0gZmxhc2hfaW50X2dldF9zaXplICgodWxvbmcgKikgQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKLQlzaXplX2IxID0gZmxhc2hfYW1kX2dldF9zaXplICgodWNoYXIgKikgQ0ZHX0JPT1RST01fQkFTRSwgJmZsYXNoX2luZm9bMV0pOworCXNpemVfYjAgPSBmbGFzaF9pbnRfZ2V0X3NpemUgKCh1bG9uZyAqKSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IxID0gZmxhc2hfYW1kX2dldF9zaXplICgodWNoYXIgKikgQ09ORklHX1NZU19CT09UUk9NX0JBU0UsICZmbGFzaF9pbmZvWzFdKTsKIAogCWlmIChzaXplX2IwID4gMCB8fCBzaXplX2IxID4gMCkgewogCkBAIC0yMTAsMjIgKzIxMCwyMiBAQAogCS8qIHByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfQk9PVFJPTV9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19CT09UUk9NX0JBU0UKIAlpZiAoc2l6ZV9iMSkgewotCQkvKiBJZiBVLUJvb3QgaXMgYm9vdGVkIGZyb20gUk9NIHRoZSBDRkdfTU9OSVRPUl9CQVNFID4gQ0ZHX0ZMQVNIX0JBU0UKKwkJLyogSWYgVS1Cb290IGlzIGJvb3RlZCBmcm9tIFJPTSB0aGUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPiBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkJICogYnV0IHdlIHNob3VsZG4ndCBwcm90ZWN0IGl0LgogCQkgKi8KIAogCQlmbGFzaF9wcm90ZWN0ICAoRkxBR19QUk9URUNUX1NFVCwKLQkJCQlDRkdfTU9OSVRPUl9CQVNFLAotCQkJCUNGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzFdCisJCQkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzFdCiAJCSk7CiAJfQogI2Vsc2UKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXQorCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0KIAkpOwogI2VuZGlmCiAjZW5kaWYKQEAgLTIzNCw3ICsyMzQsNyBAQAogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQogIyBlbmRpZgotIyBpZiBDT05GSUdfRU5WX0FERFIgPj0gQ0ZHX0JPT1RST01fQkFTRQorIyBpZiBDT05GSUdfRU5WX0FERFIgPj0gQ09ORklHX1NZU19CT09UUk9NX0JBU0UKIAlpZiAoc2l6ZV9iMSkgewogCQlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAogCQkJCUNPTkZJR19FTlZfQUREUiwKQEAgLTM4Miw3ICszODIsNyBAQAogCQlsYXN0ICA9IHN0YXJ0OwogCQlhZGRyID0gKHZ1X2NoYXIgKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJCXdoaWxlICgoYWRkclswXSAmIDB4ODApICE9IDB4ODApIHsKLQkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCXJldHVybiAxOwogCQkJfQpAQCAtNDM0LDcgKzQzNCw3IEBACiAJCQkJbGFzdCA9IHN0YXJ0OwogCQkJCXdoaWxlICgoYWRkclswXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODAgfHwKIAkJCQkgICAoYWRkclsxXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJCQkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQkJcHJpbnRmICgiVGltZW91dCAoZXJhc2Ugc3VzcGVuZGVkISlcbiIpOwogCQkJCQkJLyogU3VzcGVuZCBlcmFzZQogCQkJCQkJICovCkBAIC01NDksNyArNTQ5LDcgQEAKIAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCphZGRyICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCS8qIFN1c3BlbmQgcHJvZ3JhbQogCQkJICovCiAJCQkqYWRkciA9IDB4MDBCMDAwQjA7CkBAIC02MDQsNyArNjA0LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKigodnVfY2hhciAqKWRlc3QpICYgMHg4MCkgIT0gKGRhdGEgJiAweDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvY3B1ODcvY29uZmlnLm1rIGIvYm9hcmQvY3B1ODcvY29uZmlnLm1rCmluZGV4IDYzODRjNzguLjZhNjk0YTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NwdTg3L2NvbmZpZy5taworKysgYi9ib2FyZC9jcHU4Ny9jb25maWcubWsKQEAgLTI1LDcgKzI1LDcgQEAKICMgQ1BVODcgYm9hcmQKICMKIAotIyBUaGlzIHNob3VsZCBiZSBlcXVhbCB0byB0aGUgQ0ZHX0ZMQVNIX0JBU0UgZGVmaW5lIGluIGNvbmZpZ3MvY3B1ODcuaAorIyBUaGlzIHNob3VsZCBiZSBlcXVhbCB0byB0aGUgQ09ORklHX1NZU19GTEFTSF9CQVNFIGRlZmluZSBpbiBjb25maWdzL2NwdTg3LmgKICMgZm9yIHRoZSAiZmluYWwiIGNvbmZpZ3VyYXRpb24sIHdpdGggVS1Cb290IGluIGZsYXNoLCBvciB0aGUgYWRkcmVzcwogIyBpbiBSQU0gd2hlcmUgVS1Cb290IGlzIGxvYWRlZCBhdCBmb3IgZGVidWdnaW5nLgogIwpkaWZmIC0tZ2l0IGEvYm9hcmQvY3B1ODcvY3B1ODcuYyBiL2JvYXJkL2NwdTg3L2NwdTg3LmMKaW5kZXggYzdhOTZmOS4uMDU3YTM0YyAxMDA2NDQKLS0tIGEvYm9hcmQvY3B1ODcvY3B1ODcuYworKysgYi9ib2FyZC9jcHU4Ny9jcHU4Ny5jCkBAIC0yMjcsNyArMjI3LDcgQEAKIAkgKi8KIAltYXhzaXplID0gKDEgKyAofm9yeCB8IDB4N2ZmZikpIC8gMjsKIAotCS8qIFNpbmNlIENGR19TRFJBTV9CQVNFIGlzIGFsd2F5cyAwICg/PyksIHdlIGFzc3VtZSB0aGF0CisJLyogU2luY2UgQ09ORklHX1NZU19TRFJBTV9CQVNFIGlzIGFsd2F5cyAwICg/PyksIHdlIGFzc3VtZSB0aGF0CiAJICogd2UgYXJlIGNvbmZpZ3VyaW5nIENTMSBpZiBiYXNlICE9IDAKIAkgKi8KIAlzZG1yX3B0ciA9ICZtZW1jdGwtPm1lbWNfcHNkbXI7CkBAIC0yNTIsNyArMjUyLDcgQEAKIAkgKiAgYWNjZXNzaW5nIHRoZSBTRFJBTSB3aXRoIGEgc2luZ2xlLWJ5dGUgdHJhbnNhY3Rpb24uIgogCSAqCiAJICogVGhlIGFwcHJvcHJpYXRlIEJSeC9PUnggcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCB3aGVuIHdlCi0JICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ0ZHX1NEUkFNX0JBU0UuCisJICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogCSAqLwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX1BSRUE7CkBAIC0yNjMsNyArMjYzLDcgQEAKIAkJKmJhc2UgPSBjOwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX01SVzsKLQkqKGJhc2UgKyBDRkdfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCisJKihiYXNlICsgQ09ORklHX1NZU19NUlNfT0ZGUykgPSBjOwkvKiBzZXR0aW5nIE1SIG9uIGFkZHJlc3MgbGluZXMgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9OT1JNIHwgUFNETVJfUkZFTjsKIAkqYmFzZSA9IGM7CkBAIC0yNzcsNDUgKzI3Nyw0NSBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHNpemU4LCBzaXplOSwgc2l6ZTEwOwogI2VuZGlmCiAJbG9uZyBwc2l6ZTsKIAogCXBzaXplID0gMzIgKiAxMDI0ICogMTAyNDsKIAotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKLQltZW1jdGwtPm1lbWNfcHNydCA9IENGR19QU1JUOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJLyogNjB4IFNEUkFNIHNldHVwOgogCSAqLwotCXNpemU4ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzhDT0wsIENGR19PUjJfOENPTCwKLQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKKwlzaXplOCA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOENPTCwgQ09ORklHX1NZU19PUjJfOENPTCwKKwkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAKLQlzaXplOSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl85Q09MLCBDRkdfT1IyXzlDT0wsCi0JCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSk7CisJc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzlDT0wsIENPTkZJR19TWVNfT1IyXzlDT0wsCisJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCi0Jc2l6ZTEwID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzEwQ09MLCBDRkdfT1IyXzEwQ09MLAotCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOworCXNpemUxMCA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfMTBDT0wsIENPTkZJR19TWVNfT1IyXzEwQ09MLAorCQkJICAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKIAogCXBzaXplID0gbWF4KHNpemU4LG1heChzaXplOSxzaXplMTApKTsKIAogCWlmIChwc2l6ZSA9PSBzaXplOCkgewotCQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl84Q09MLCBDRkdfT1IyXzhDT0wsCi0JCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOworCQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOENPTCwgQ09ORklHX1NZU19PUjJfOENPTCwKKwkJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCQlwcmludGYgKCIoNjB4OjhDT0wpICIpOwogCX0gZWxzZSBpZiAocHNpemUgPT0gc2l6ZTkpewotCQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl85Q09MLCBDRkdfT1IyXzlDT0wsCi0JCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOworCQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOUNPTCwgQ09ORklHX1NZU19PUjJfOUNPTCwKKwkJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCQlwcmludGYgKCIoNjB4OjlDT0wpICIpOwogCX0gZWxzZQogCQlwcmludGYgKCIoNjB4OjEwQ09MKSAiKTsKIAotI2VuZGlmCS8qIENGR19SQU1CT09UICovCisjZW5kaWYJLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAlpY2FjaGVfZW5hYmxlICgpOwogCkBAIC0zMjUsNyArMzI1LDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfRE9DKQogdm9pZCBkb2NfaW5pdCAodm9pZCkKIHsKLQlkb2NfcHJvYmUgKENGR19ET0NfQkFTRSk7CisJZG9jX3Byb2JlIChDT05GSUdfU1lTX0RPQ19CQVNFKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9ib2FyZC9jcHU4Ny9jcHU4Ny5oIGIvYm9hcmQvY3B1ODcvY3B1ODcuaAppbmRleCA1ZGJkNGFlLi40NWNiODUzIDEwMDY0NAotLS0gYS9ib2FyZC9jcHU4Ny9jcHU4Ny5oCisrKyBiL2JvYXJkL2NwdTg3L2NwdTg3LmgKQEAgLTYsMTkgKzYsMTkgQEAKICNkZWZpbmUgUkVHOCh4KQkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikoeCkpCiAKIC8qIENQVTg2IHJlZ2lzdGVyIGRlZmluaXRpb25zICovCi0jZGVmaW5lIENQVTg2X1ZNRV9FQUMJCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4MDApCi0jZGVmaW5lIENQVTg2X1ZNRV9TQUMJCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4MDEpCi0jZGVmaW5lIENQVTg2X1ZNRV9NQUMJCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4MDIpCi0jZGVmaW5lIENQVTg2X0JDUgkJUkVHOChDRkdfQkNSU19CQVNFICsgMHgwMykKLSNkZWZpbmUgQ1BVODZfQlNSCQlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDA0KQotI2RlZmluZSBDUFU4Nl9XRE9HX1JQT1JUCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4MDUpCi0jZGVmaW5lIENQVTg2X01CT1hfSVJRCQlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDA0KQotI2RlZmluZSBDUFU4Nl9SRVYJCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4MDcpCi0jZGVmaW5lIENQVTg2X1ZNRV9JUlFNQVNLCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4ODApCi0jZGVmaW5lIENQVTg2X1ZNRV9JUlFTVEFUVVMJUkVHOChDRkdfQkNSU19CQVNFICsgMHg4MSkKLSNkZWZpbmUgQ1BVODZfTE9DQUxfSVJRTUFTSwlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDgyKQotI2RlZmluZSBDUFU4Nl9MT0NBTF9JUlFTVEFUVVMJUkVHOChDRkdfQkNSU19CQVNFICsgMHg4MykKLSNkZWZpbmUgQ1BVODZfUE1DTF9JUlFTVEFUVVMJUkVHOChDRkdfQkNSU19CQVNFICsgMHg4NCkKKyNkZWZpbmUgQ1BVODZfVk1FX0VBQwkJUkVHOChDT05GSUdfU1lTX0JDUlNfQkFTRSArIDB4MDApCisjZGVmaW5lIENQVTg2X1ZNRV9TQUMJCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDAxKQorI2RlZmluZSBDUFU4Nl9WTUVfTUFDCQlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHgwMikKKyNkZWZpbmUgQ1BVODZfQkNSCQlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHgwMykKKyNkZWZpbmUgQ1BVODZfQlNSCQlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHgwNCkKKyNkZWZpbmUgQ1BVODZfV0RPR19SUE9SVAlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHgwNSkKKyNkZWZpbmUgQ1BVODZfTUJPWF9JUlEJCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDA0KQorI2RlZmluZSBDUFU4Nl9SRVYJCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDA3KQorI2RlZmluZSBDUFU4Nl9WTUVfSVJRTUFTSwlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHg4MCkKKyNkZWZpbmUgQ1BVODZfVk1FX0lSUVNUQVRVUwlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHg4MSkKKyNkZWZpbmUgQ1BVODZfTE9DQUxfSVJRTUFTSwlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHg4MikKKyNkZWZpbmUgQ1BVODZfTE9DQUxfSVJRU1RBVFVTCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDgzKQorI2RlZmluZSBDUFU4Nl9QTUNMX0lSUVNUQVRVUwlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHg4NCkKIAogLyogQm9hcmQgQ29udHJvbCBSZWdpc3RlciBiaXRzICovCiAjZGVmaW5lIENQVTg2X0JDUl9GV1BUCQkweDAxCmRpZmYgLS1naXQgYS9ib2FyZC9jcHU4Ny9mbGFzaC5jIGIvYm9hcmQvY3B1ODcvZmxhc2guYwppbmRleCBmN2UxMjFmLi5jMzU3NTdiIDEwMDY0NAotLS0gYS9ib2FyZC9jcHU4Ny9mbGFzaC5jCisrKyBiL2JvYXJkL2NwdTg3L2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxtcGM4eHguaD4KICNpbmNsdWRlICJjcHU4Ny5oIgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCkBAIC0xODMsNyArMTgzLDcgQEAKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24KIAkgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC0xOTIsOCArMTkyLDggQEAKIAogCS8qIFN0YXRpYyBGTEFTSCBCYW5rIGNvbmZpZ3VyYXRpb24gaGVyZSAob25seSBvbmUgYmFuaykgKi8KIAotCXNpemVfYjAgPSBmbGFzaF9pbnRfZ2V0X3NpemUgKCh1bG9uZyAqKSBDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwotCXNpemVfYjEgPSBmbGFzaF9hbWRfZ2V0X3NpemUgKCh1Y2hhciAqKSBDRkdfQk9PVFJPTV9CQVNFLCAmZmxhc2hfaW5mb1sxXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2ludF9nZXRfc2l6ZSAoKHVsb25nICopIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjEgPSBmbGFzaF9hbWRfZ2V0X3NpemUgKCh1Y2hhciAqKSBDT05GSUdfU1lTX0JPT1RST01fQkFTRSwgJmZsYXNoX2luZm9bMV0pOwogCiAJaWYgKHNpemVfYjAgPiAwIHx8IHNpemVfYjEgPiAwKSB7CiAKQEAgLTIxNiwyMiArMjE2LDIyIEBACiAJLyogcHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19CT09UUk9NX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0JPT1RST01fQkFTRQogCWlmIChzaXplX2IxKSB7Ci0JCS8qIElmIFUtQm9vdCBpcyBib290ZWQgZnJvbSBST00gdGhlIENGR19NT05JVE9SX0JBU0UgPiBDRkdfRkxBU0hfQkFTRQorCQkvKiBJZiBVLUJvb3QgaXMgYm9vdGVkIGZyb20gUk9NIHRoZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQkgKiBidXQgd2Ugc2hvdWxkbid0IHByb3RlY3QgaXQuCiAJCSAqLwogCiAJCWZsYXNoX3Byb3RlY3QgIChGTEFHX1BST1RFQ1RfU0VULAotCQkJCUNGR19NT05JVE9SX0JBU0UsCi0JCQkJQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMV0KKwkJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMV0KIAkJKTsKIAl9CiAjZWxzZQotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXQogCSk7CiAjZW5kaWYKICNlbmRpZgpAQCAtMjQwLDcgKzI0MCw3IEBACiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCiAjIGVuZGlmCi0jIGlmIENPTkZJR19FTlZfQUREUiA+PSBDRkdfQk9PVFJPTV9CQVNFCisjIGlmIENPTkZJR19FTlZfQUREUiA+PSBDT05GSUdfU1lTX0JPT1RST01fQkFTRQogCWlmIChzaXplX2IxKSB7CiAJCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCiAJCQkJQ09ORklHX0VOVl9BRERSLApAQCAtMzkxLDcgKzM5MSw3IEBACiAJCWxhc3QgID0gc3RhcnQ7CiAJCWFkZHIgPSAodnVfY2hhciAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAkJd2hpbGUgKChhZGRyWzBdICYgMHg4MCkgIT0gMHg4MCkgewotCQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJcmV0dXJuIDE7CiAJCQl9CkBAIC00NDMsNyArNDQzLDcgQEAKIAkJCQlsYXN0ID0gc3RhcnQ7CiAJCQkJd2hpbGUgKChhZGRyWzBdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCB8fAogCQkJCSAgIChhZGRyWzFdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQkJCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCQlwcmludGYgKCJUaW1lb3V0IChlcmFzZSBzdXNwZW5kZWQhKVxuIik7CiAJCQkJCQkvKiBTdXNwZW5kIGVyYXNlCiAJCQkJCQkgKi8KQEAgLTU1OCw3ICs1NTgsNyBAQAogCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKmFkZHIgJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJLyogU3VzcGVuZCBwcm9ncmFtCiAJCQkgKi8KIAkJCSphZGRyID0gMHgwMEIwMDBCMDsKQEAgLTYxMyw3ICs2MTMsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqKCh2dV9jaGFyICopZGVzdCkgJiAweDgwKSAhPSAoZGF0YSAmIDB4ODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9jcmFkbGUvZmxhc2guYyBiL2JvYXJkL2NyYWRsZS9mbGFzaC5jCmluZGV4IDQ3ODNkOTIuLmI1NjM1ZmIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NyYWRsZS9mbGFzaC5jCisrKyBiL2JvYXJkL2NyYWRsZS9mbGFzaC5jCkBAIC0zMCw3ICszMCw3IEBACiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRSAweDQwMDAwMAogI2RlZmluZSBNQUlOX1NFQ1RfU0laRSAgMHgyMDAwMAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MSwxNSArNDEsMTUgQEAKIAlpbnQgaSwgajsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQl1bG9uZyBmbGFzaGJhc2UgPSAwOwogCiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPQogCQkJKElOVEVMX01BTlVGQUNUICYgRkxBU0hfVkVORE1BU0spIHwKIAkJCShJTlRFTF9JRF8yOEYxMjhKMyAmIEZMQVNIX1RZUEVNQVNLKTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkJZmxhc2hiYXNlID0gUEhZU19GTEFTSF8xOwpAQCAtNzEsOCArNzEsOCBAQAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkgICAgICAgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKQEAgLTg4LDcgKzg4LDcgQEAKIHsKIAlpbnQgaSwgajsKIAotCWZvciAoaiA9IDA7IGogPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBqKyspIHsKKwlmb3IgKGogPSAwOyBqIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGorKykgewogCQlzd2l0Y2ggKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVkVORE1BU0spIHsKIAkJY2FzZSAoSU5URUxfTUFOVUZBQ1QgJiBGTEFTSF9WRU5ETUFTSyk6CiAJCQlwcmludGYgKCJJbnRlbDogIik7CkBAIC0xODMsNyArMTgzLDcgQEAKIAogCQkJd2hpbGUgKCgqYWRkciAmIDB4ODApICE9IDB4ODApIHsKIAkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+Ci0JCQkJICAgIENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJICAgIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQkqYWRkciA9IDB4QjA7CS8qIHN1c3BlbmQgZXJhc2UgKi8KIAkJCQkJKmFkZHIgPSAweEZGOwkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KIAkJCQkJcmMgPSBFUlJfVElNT1VUOwpAQCAtMjUwLDcgKzI1MCw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlICgoKHZhbCA9ICphZGRyKSAmIDB4ODApICE9IDB4ODApIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmMgPSBFUlJfVElNT1VUOwogCQkJLyogc3VzcGVuZCBwcm9ncmFtIGNvbW1hbmQgKi8KIAkJCSphZGRyID0gMHhCMDsKZGlmZiAtLWdpdCBhL2JvYXJkL2NyYWRsZS9sb3dsZXZlbF9pbml0LlMgYi9ib2FyZC9jcmFkbGUvbG93bGV2ZWxfaW5pdC5TCmluZGV4IDJmZDMwN2YuLjZiNWNmYjkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NyYWRsZS9sb3dsZXZlbF9pbml0LlMKKysrIGIvYm9hcmQvY3JhZGxlL2xvd2xldmVsX2luaXQuUwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPHZlcnNpb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogCi1EUkFNX1NJWkU6ICAubG9uZyAgIENGR19EUkFNX1NJWkUKK0RSQU1fU0laRTogIC5sb25nICAgQ09ORklHX1NZU19EUkFNX1NJWkUKIAogLyogd2FpdCBmb3IgY29wcm9jZXNzb3Igd3JpdGUgY29tcGxldGUgKi8KICAgIC5tYWNybyBDUFdBSVQgcmVnCkBAIC01MSw5OCArNTEsOTggQEAKICAgICAvKiBTZXQgdXAgR1BJTyBwaW5zIGZpcnN0ICovCiAKICAgIGxkciAgICAgIHIwLCAgID1HUFNSMAotICAgbGRyICAgICAgcjEsICAgPUNGR19HUFNSMF9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dQU1IwX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICBsZHIgICAgICByMCwgICA9R1BTUjEKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1BTUjFfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUFNSMV9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgbGRyICAgICAgcjAsICAgPUdQU1IyCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dQU1IyX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1BTUjJfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIGxkciAgICAgIHIwLCAgID1HUENSMAotICAgbGRyICAgICAgcjEsICAgPUNGR19HUENSMF9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dQQ1IwX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICBsZHIgICAgICByMCwgICA9R1BDUjEKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1BDUjFfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUENSMV9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgbGRyICAgICAgcjAsICAgPUdQQ1IyCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dQQ1IyX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1BDUjJfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIGxkciAgICAgIHIwLCAgID1HUkVSMAotICAgbGRyICAgICAgcjEsICAgPUNGR19HUkVSMF9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dSRVIwX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICBsZHIgICAgICByMCwgICA9R1JFUjEKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1JFUjFfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUkVSMV9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgbGRyICAgICAgcjAsICAgPUdSRVIyCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dSRVIyX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1JFUjJfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIGxkciAgICAgIHIwLCAgID1HRkVSMAotICAgbGRyICAgICAgcjEsICAgPUNGR19HRkVSMF9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dGRVIwX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICBsZHIgICAgICByMCwgICA9R0ZFUjEKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR0ZFUjFfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HRkVSMV9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgbGRyICAgICAgcjAsICAgPUdGRVIyCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dGRVIyX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR0ZFUjJfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIGxkciAgICAgIHIwLCAgID1HUERSMAotICAgbGRyICAgICAgcjEsICAgPUNGR19HUERSMF9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dQRFIwX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICBsZHIgICAgICByMCwgICA9R1BEUjEKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1BEUjFfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUERSMV9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgbGRyICAgICAgcjAsICAgPUdQRFIyCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dQRFIyX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1BEUjJfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIGxkciAgICAgIHIwLCAgID1HQUZSMF9MCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dBRlIwX0xfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HQUZSMF9MX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICBsZHIgICAgICByMCwgICA9R0FGUjBfVQotICAgbGRyICAgICAgcjEsICAgPUNGR19HQUZSMF9VX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR0FGUjBfVV9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgbGRyICAgICAgcjAsICAgPUdBRlIxX0wKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR0FGUjFfTF9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dBRlIxX0xfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIGxkciAgICAgIHIwLCAgID1HQUZSMV9VCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dBRlIxX1VfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HQUZSMV9VX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICBsZHIgICAgICByMCwgICA9R0FGUjJfTAotICAgbGRyICAgICAgcjEsICAgPUNGR19HQUZSMl9MX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR0FGUjJfTF9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgbGRyICAgICAgcjAsICAgPUdBRlIyX1UKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR0FGUjJfVV9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dBRlIyX1VfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIC8qIGVuYWJsZSBHUElPIHBpbnMgKi8KICAgIGxkciAgICAgIHIwLCAgID1QU1NSCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX1BTU1JfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19QU1NSX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICBTRVRfTEVEIDEKIAogICAgbGRyICAgIHIzLCA9TVNDMSAgICAgICAgICAgICAvKiBsb3cgLSBiYW5rIDIgTHViYm9jayBSZWdpc3RlcnMgLyBTUkFNICovCi0gICBsZHIgICAgcjIsID1DRkdfTVNDMV9WQUwgICAgIC8qIGhpZ2ggLSBiYW5rIDMgRXRoZXJuZXQgQ29udHJvbGxlciAqLworICAgbGRyICAgIHIyLCA9Q09ORklHX1NZU19NU0MxX1ZBTCAgICAgLyogaGlnaCAtIGJhbmsgMyBFdGhlcm5ldCBDb250cm9sbGVyICovCiAgICBzdHIgICAgcjIsIFtyM10gICAgICAgICAgICAgIC8qIG5lZWQgdG8gc2V0IE1TQzEgYmVmb3JlIHRyeWluZyB0byB3cml0ZSB0byB0aGUgSEVYIExFRHMgKi8KICAgIGxkciAgICByMiwgW3IzXSAgICAgICAgICAgICAgLyogbmVlZCB0byByZWFkIGl0IGJhY2sgdG8gbWFrZSBzdXJlIHRoZSB2YWx1ZSBsYXRjaGVzIChzZWUgTVNDIHNlY3Rpb24gb2YgbWFudWFsKSAqLwogCkBAIC0xODEsNDcgKzE4MSw0NyBAQAogICAgQCBTdGVwIDJhCiAgICBAIHdyaXRlIG1zYzAsIHJlYWQgYmFjayB0byBlbnN1cmUgZGF0YSBsYXRjaGVzCiAgICBACi0gICBsZHIgICAgIHIyLCAgID1DRkdfTVNDMF9WQUwKKyAgIGxkciAgICAgcjIsICAgPUNPTkZJR19TWVNfTVNDMF9WQUwKICAgIHN0ciAgICAgcjIsICAgW3IxLCAjTVNDMF9PRkZTRVRdCiAgICBsZHIgICAgIHIyLCAgIFtyMSwgI01TQzBfT0ZGU0VUXQogCiAgICBAIHdyaXRlIG1zYzEKLSAgIGxkciAgICAgcjIsICA9Q0ZHX01TQzFfVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTVNDMV9WQUwKICAgIHN0ciAgICAgcjIsICBbcjEsICNNU0MxX09GRlNFVF0KICAgIGxkciAgICAgcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAogICAgQCB3cml0ZSBtc2MyCi0gICBsZHIgICAgIHIyLCAgPUNGR19NU0MyX1ZBTAorICAgbGRyICAgICByMiwgID1DT05GSUdfU1lTX01TQzJfVkFMCiAgICBzdHIgICAgIHIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAgICBsZHIgICAgIHIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAKICAgIEAgU3RlcCAyYgogICAgQCB3cml0ZSBtZWNyCi0gICBsZHIgICAgIHIyLCAgPUNGR19NRUNSX1ZBTAorICAgbGRyICAgICByMiwgID1DT05GSUdfU1lTX01FQ1JfVkFMCiAgICBzdHIgICAgIHIyLCAgW3IxLCAjTUVDUl9PRkZTRVRdCiAKICAgIEAgd3JpdGUgbWNtZW0wCi0gICBsZHIgICAgIHIyLCAgPUNGR19NQ01FTTBfVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNNRU0wX1ZBTAogICAgc3RyICAgICByMiwgIFtyMSwgI01DTUVNMF9PRkZTRVRdCiAKICAgIEAgd3JpdGUgbWNtZW0xCi0gICBsZHIgICAgIHIyLCAgPUNGR19NQ01FTTFfVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNNRU0xX1ZBTAogICAgc3RyICAgICByMiwgIFtyMSwgI01DTUVNMV9PRkZTRVRdCiAKICAgIEAgd3JpdGUgbWNhdHQwCi0gICBsZHIgICAgIHIyLCAgPUNGR19NQ0FUVDBfVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNBVFQwX1ZBTAogICAgc3RyICAgICByMiwgIFtyMSwgI01DQVRUMF9PRkZTRVRdCiAKICAgIEAgd3JpdGUgbWNhdHQxCi0gICBsZHIgICAgIHIyLCAgPUNGR19NQ0FUVDFfVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNBVFQxX1ZBTAogICAgc3RyICAgICByMiwgIFtyMSwgI01DQVRUMV9PRkZTRVRdCiAKICAgIEAgd3JpdGUgbWNpbzAKLSAgIGxkciAgICAgcjIsICA9Q0ZHX01DSU8wX1ZBTAorICAgbGRyICAgICByMiwgID1DT05GSUdfU1lTX01DSU8wX1ZBTAogICAgc3RyICAgICByMiwgIFtyMSwgI01DSU8wX09GRlNFVF0KIAogICAgQCB3cml0ZSBtY2lvMQotICAgbGRyICAgICByMiwgID1DRkdfTUNJTzFfVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNJTzFfVkFMCiAgICBzdHIgICAgIHIyLCAgW3IxLCAjTUNJTzFfT0ZGU0VUXQogCiAgICAvKlNFVF9MRUQgMyAqLwpAQCAtMjI5LDE0ICsyMjksMTQgQEAKICAgIEAgU3RlcCAyYwogICAgQCBmbHktYnktZG1hIGlzIGRlZmVhdHVyZWQgb24gdGhpcyBwYXJ0CiAgICBAIHdyaXRlIGZseWNuZmcKLSAgIEBsZHIgICAgIHIyLCAgPUNGR19GTFlDTkZHX1ZBTAorICAgQGxkciAgICAgcjIsICA9Q09ORklHX1NZU19GTFlDTkZHX1ZBTAogICAgQHN0ciAgICAgcjIsICBbcjEsICNGTFlDTkZHX09GRlNFVF0KIAogLyogRklYTUUgRG9lcyB0aGlzIHNlcXVlbmNlIHJlYWxseSBtYWtlIHNlbnNlICovCiAjaWZkZWYgUkVEQk9PVF9XQVkKICAgIEAgU3RlcCAyZAogICAgQCBnZXQgdGhlIG1kcmVmciBzZXR0aW5ncwotICAgbGRyICAgICByMywgID1DRkdfTURSRUZSX1ZBTAorICAgbGRyICAgICByMywgID1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAogICAgQCBleHRyYWN0IERSSSBmaWVsZCAod2UgbmVlZCBhIHZhbGlkIERSSSBmaWVsZCkKICAgIEAKQEAgLTMxOSw3ICszMTksNyBAQAogI2Vsc2UKICAgIEAgU3RlcCAyZAogICAgQCBnZXQgdGhlIG1kcmVmciBzZXR0aW5ncwotICAgbGRyICAgICByMywgID1DRkdfTURSRUZSX1ZBTAorICAgbGRyICAgICByMywgID1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAogICAgQCB3cml0ZSBiYWNrIG1kcmVmcgogICAgQApAQCAtMzYzLDcgKzM2Myw3IEBACiAgICBAIFN0ZXAgNGQKICAgIEAgZmV0Y2ggcGxhdGZvcm0gdmFsdWUgb2YgbWRjbmZnCiAgICBACi0gICBsZHIgICAgIHIyLCAgPUNGR19NRENORkdfVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTURDTkZHX1ZBTAogCiAgICBAIGRpc2FibGUgYWxsIHNkcmFtIGJhbmtzCiAgICBACkBAIC00MDAsNyArNDAwLDcgQEAKICAgIEAgQWNjZXNzIG1lbW9yeSAqbm90IHlldCBlbmFibGVkKiBmb3IgQ0JSIHJlZnJlc2ggY3ljbGVzICg4KQogICAgQCAtIENCUiBpcyBnZW5lcmF0ZWQgZm9yIGFsbCBiYW5rcwogCi0gICBsZHIgICAgIHIyLCA9Q0ZHX0RSQU1fQkFTRQorICAgbGRyICAgICByMiwgPUNPTkZJR19TWVNfRFJBTV9CQVNFCiAgICBzdHIgICAgIHIyLCBbcjJdCiAgICBzdHIgICAgIHIyLCBbcjJdCiAgICBzdHIgICAgIHIyLCBbcjJdCkBAIC00MzAsNyArNDMwLDcgQEAKICAgIEAgU3RlcCA0aAogICAgQCB3cml0ZSBtZG1ycwogICAgQAotICAgbGRyICAgICByMiwgID1DRkdfTURNUlNfVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTURNUlNfVkFMCiAgICBzdHIgICAgIHIyLCAgW3IxLCAjTURNUlNfT0ZGU0VUXQogCiAgICBAIERvbmUgTWVtb3J5IEluaXQKQEAgLTQ0OSw3ICs0NDksNyBAQAogCiAgICBAIFNldCBpbnRlcnJ1cHQgbWFzayByZWdpc3RlcgogICAgQAotICAgbGRyICAgICByMSwgID1DRkdfSUNNUl9WQUwKKyAgIGxkciAgICAgcjEsICA9Q09ORklHX1NZU19JQ01SX1ZBTAogICAgbGRyICAgICByMiwgID1JQ01SCiAgICBzdHIgICAgIHIxLCAgW3IyXQogCkBAIC00NjUsNyArNDY1LDcgQEAKIAogICAgQCBzZXQgY29yZSBjbG9ja3MKICAgIEAKLSAgIGxkciAgICAgcjIsICA9Q0ZHX0NDQ1JfVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfQ0NDUl9WQUwKICAgIGxkciAgICAgcjEsICA9Q0NDUgogICAgc3RyICAgICByMiwgIFtyMV0KIApAQCAtNDg4LDcgKzQ4OCw3IEBACiAJQCBUdXJuIG9uIG5lZWRlZCBjbG9ja3MKIAlACiAgICBsZHIgICAgIHIxLCAgPUNLRU4KLSAgIGxkciAgICAgcjIsICA9Q0ZHX0NLRU5fVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfQ0tFTl9WQUwKICAgIHN0ciAgICAgcjIsICBbcjFdCiAKICAgIC8qU0VUX0xFRCA3ICovCmRpZmYgLS1naXQgYS9ib2FyZC9jcmF5L0wxL0wxLmMgYi9ib2FyZC9jcmF5L0wxL0wxLmMKaW5kZXggNDlhOWU1ZS4uMmJhYmQyZCAxMDA2NDQKLS0tIGEvYm9hcmQvY3JheS9MMS9MMS5jCisrKyBiL2JvYXJkL2NyYXkvTDEvTDEuYwpAQCAtMTM5LDcgKzEzOSw3IEBACiAJc3RydWN0IHJ0Y190aW1lIHRtOwogCWNoYXIgYm9vdGNtZFszMl07CiAKLQloZHIgPSAoaW1hZ2VfaGVhZGVyX3QgKikgKENGR19NT05JVE9SX0JBU0UgLSBpbWFnZV9nZXRfaGVhZGVyX3NpemUgKCkpOworCWhkciA9IChpbWFnZV9oZWFkZXJfdCAqKSAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBpbWFnZV9nZXRfaGVhZGVyX3NpemUgKCkpOwogI2lmIGRlZmluZWQoQ09ORklHX0ZJVCkKIAlpZiAoZ2VuaW1nX2dldF9mb3JtYXQgKCh2b2lkICopaGRyKSAhPSBJTUFHRV9GT1JNQVRfTEVHQUNZKSB7CiAJCXB1dHMgKCJOb24gbGVnYWN5IGltYWdlIGZvcm1hdCBub3Qgc3VwcG9ydGVkXG4iKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2NyYXkvTDEvZmxhc2guYyBiL2JvYXJkL2NyYXkvTDEvZmxhc2guYwppbmRleCBmMzEzMjc0Li4zNmQxODZmIDEwMDY0NAotLS0gYS9ib2FyZC9jcmF5L0wxL2ZsYXNoLmMKKysrIGIvYm9hcmQvY3JheS9MMS9mbGFzaC5jCkBAIC00Myw3ICs0Myw3IEBACiAjZGVmaW5lIEZMQVNIX0FNMzIwQiAgICAweDAwMDkKIAogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC02NSw3ICs2NSw3IEBACiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTc5LDcgKzc5LDcgQEAKIAl9CiAKIAkvKiBPbmx5IG9uZSBiYW5rICovCi0JaWYgKENGR19NQVhfRkxBU0hfQkFOS1MgPT0gMSkKKwlpZiAoQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgPT0gMSkKIAkgIHsKIAkgICAgLyogU2V0dXAgb2Zmc2V0cyAqLwogCSAgICBmbGFzaF9nZXRfb2Zmc2V0cyAoRkxBU0hfQkFTRTBfUFJFTElNLCAmZmxhc2hfaW5mb1swXSk7CkBAIC0yNTMsNyArMjUzLDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAgICAgbGFzdCAgPSBzdGFydDsKICAgICB3aGlsZSAoKGFkZHJbMF0gJiAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9IChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgewotCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkgICAgcHJpbnRmICgiVGltZW91dFxuIik7CiAJICAgIHJldHVybiAtMTsKIAl9CkBAIC00NTcsNyArNDU3LDcgQEAKIAkgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCSAgICB3aGlsZSAoKGRlc3QyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPQogCQkgICAoZGF0YTJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApKSB7Ci0JICAgICAgaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCSAgICAgIGlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCXJldHVybiAoMSk7CiAJICAgICAgfQogCSAgICB9CmRpZmYgLS1naXQgYS9ib2FyZC9jc2IyMjYvZmxhc2guYyBiL2JvYXJkL2NzYjIyNi9mbGFzaC5jCmluZGV4IDJhNjA5MDkuLjAyZGVkMWMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NzYjIyNi9mbGFzaC5jCisrKyBiL2JvYXJkL2NzYjIyNi9mbGFzaC5jCkBAIC0zNyw3ICszNyw3IEBACiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRSAweDAyMDAwMDAwCiAjZGVmaW5lIE1BSU5fU0VDVF9TSVpFCTB4NDAwMDAJCS8qIDJ4MTYgPSAyNTZrIHBlciBzZWN0b3IgKi8KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIAogLyoqCkBAIC01MSwxNCArNTEsMTQgQEAKIAlpbnQgaSwgajsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQl1bG9uZyBmbGFzaGJhc2UgPSAwOwogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0KIAkJCShJTlRFTF9NQU5VRkFDVCAmIEZMQVNIX1ZFTkRNQVNLKSB8CiAJCQkoSU5URUxfSURfMjhGMTI4SjMgJiBGTEFTSF9UWVBFTUFTSyk7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IEZMQVNIX0JBTktfU0laRTsKLQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDoKQEAgLTc2LDggKzc2LDggQEAKIAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycyAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLAotCQkJQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCkBAIC05Nyw3ICs5Nyw3IEBACiB7CiAJaW50IGksIGo7CiAKLQlmb3IgKGo9MDsgajxDRkdfTUFYX0ZMQVNIX0JBTktTOyBqKyspIHsKKwlmb3IgKGo9MDsgajxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaisrKSB7CiAKIAkJc3dpdGNoIChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSB7CiAJCWNhc2UgKElOVEVMX01BTlVGQUNUICYgRkxBU0hfVkVORE1BU0spOgpAQCAtMTg5LDcgKzE4OSw3IEBACiAJCQkqYWRkciA9IDB4MDBEMDAwRDA7CS8qIGVyYXNlIGNvbmZpcm0gKi8KIAogCQkJd2hpbGUgKCgqYWRkciAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCSphZGRyID0gMHgwMEIwMDBCMDsgLyogc3VzcGVuZCBlcmFzZSovCiAJCQkJCSphZGRyID0gMHgwMEZGMDBGRjsgLyogcmVhZCBtb2RlICAgICovCiAJCQkJCXJjID0gRVJSX1RJTU9VVDsKQEAgLTI1MSw3ICsyNTEsNyBAQAogCiAJLyogd2FpdCB3aGlsZSBwb2xsaW5nIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAl3aGlsZSgoKHZhbCA9ICphZGRyKSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJjID0gRVJSX1RJTU9VVDsKIAkJCS8qIHN1c3BlbmQgcHJvZ3JhbSBjb21tYW5kICovCiAJCQkqYWRkciA9IDB4MDBCMDAwQjA7CmRpZmYgLS1naXQgYS9ib2FyZC9jc2IyMjYvbG93bGV2ZWxfaW5pdC5TIGIvYm9hcmQvY3NiMjI2L2xvd2xldmVsX2luaXQuUwppbmRleCA0YzlmMTBmLi45ODkyNDMwIDEwMDY0NAotLS0gYS9ib2FyZC9jc2IyMjYvbG93bGV2ZWxfaW5pdC5TCisrKyBiL2JvYXJkL2NzYjIyNi9sb3dsZXZlbF9pbml0LlMKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDx2ZXJzaW9uLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KIAotRFJBTV9TSVpFOiAgLmxvbmcgICBDRkdfRFJBTV9TSVpFCitEUkFNX1NJWkU6ICAubG9uZyAgIENPTkZJR19TWVNfRFJBTV9TSVpFCiAKIC8qIHdhaXQgZm9yIGNvcHJvY2Vzc29yIHdyaXRlIGNvbXBsZXRlICovCiAgICAubWFjcm8gQ1BXQUlUIHJlZwpAQCAtNTQsNzEgKzU0LDcxIEBACiAJLyogU2V0IHVwIEdQSU8gcGlucyBmaXJzdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAJbGRyCQlyMCwJPUdQU1IwCi0JbGRyCQlyMSwJPUNGR19HUFNSMF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFNSMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUFNSMQotCWxkcgkJcjEsCT1DRkdfR1BTUjFfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BTUjFfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BTUjIKLQlsZHIJCXIxLAk9Q0ZHX0dQU1IyX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQU1IyX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQQ1IwCi0JbGRyCQlyMSwJPUNGR19HUENSMF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUENSMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUENSMQotCWxkcgkJcjEsCT1DRkdfR1BDUjFfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BDUjFfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BDUjIKLQlsZHIJCXIxLAk9Q0ZHX0dQQ1IyX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQQ1IyX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQRFIwCi0JbGRyCQlyMSwJPUNGR19HUERSMF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUERSMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUERSMQotCWxkcgkJcjEsCT1DRkdfR1BEUjFfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BEUjFfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BEUjIKLQlsZHIJCXIxLAk9Q0ZHX0dQRFIyX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQRFIyX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIwX0wKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIwX0xfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjBfTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMF9VCi0JbGRyCQlyMSwJPUNGR19HQUZSMF9VX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIwX1VfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjFfTAotCWxkcgkJcjEsCT1DRkdfR0FGUjFfTF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMV9MX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIxX1UKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIxX1VfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjFfVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMl9MCi0JbGRyCQlyMSwJPUNGR19HQUZSMl9MX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIyX0xfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjJfVQotCWxkcgkJcjEsCT1DRkdfR0FGUjJfVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMl9VX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCXIwLAk9UFNTUgkJLyogZW5hYmxlIEdQSU8gcGlucyAqLwotCWxkcgkJcjEsCT1DRkdfUFNTUl9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19QU1NSX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAvKglsZHIJcjMsCT1NU0MxCQkvICBsb3cgLSBiYW5rIDIgTHViYm9jayBSZWdpc3RlcnMgLyBTUkFNICovCi0vKglsZHIJcjIsCT1DRkdfTVNDMV9WQUwJLyAgaGlnaCAtIGJhbmsgMyBFdGhlcm5ldCBDb250cm9sbGVyICovCisvKglsZHIJcjIsCT1DT05GSUdfU1lTX01TQzFfVkFMCS8gIGhpZ2ggLSBiYW5rIDMgRXRoZXJuZXQgQ29udHJvbGxlciAqLwogLyoJc3RyCXIyLAlbcjNdCQkvICBuZWVkIHRvIHNldCBNU0MxIGJlZm9yZSB0cnlpbmcgdG8gd3JpdGUgdG8gdGhlIEhFWCBMRURzICovCiAvKglsZHIJcjIsCVtyM10JCS8gIG5lZWQgdG8gcmVhZCBpdCBiYWNrIHRvIG1ha2Ugc3VyZSB0aGUgdmFsdWUgbGF0Y2hlcyAoc2VlIE1TQyBzZWN0aW9uIG9mIG1hbnVhbCkgKi8KIC8qICovCkBAIC0xNjgsMTcgKzE2OCwxNyBAQAogCS8qIE1TQyByZWdpc3RlcnM6IHRpbWluZywgYnVzIHdpZHRoLCBtZW0gdHlwZSAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogCS8qIE1TQzA6IG5DUygwLDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgID1DRkdfTVNDMF9WQUwKKwlsZHIgICAgIHIyLCAgID1DT05GSUdfU1lTX01TQzBfVkFMCiAJc3RyICAgICByMiwgICBbcjEsICNNU0MwX09GRlNFVF0KIAlsZHIgICAgIHIyLCAgIFtyMSwgI01TQzBfT0ZGU0VUXQkvKiByZWFkIGJhY2sgdG8gZW5zdXJlICAgICAgKi8KIAkJCQkJCS8qIHRoYXQgZGF0YSBsYXRjaGVzICAgICAgICAqLwogCS8qIE1TQzE6IG5DUygyLDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NU0MxX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NU0MxX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAlsZHIgICAgIHIyLCAgW3IxLCAjTVNDMV9PRkZTRVRdCiAKIAkvKiBNU0MyOiBuQ1MoNCw1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTVNDMl9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTVNDMl9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAJbGRyICAgICByMiwgIFtyMSwgI01TQzJfT0ZGU0VUXQogCkBAIC0xODcsMzcgKzE4NywzNyBAQAogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogCS8qIE1FQ1I6IE1lbW9yeSBFeHBhbnNpb24gQ2FyZCBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NRUNSX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NRUNSX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNRUNSX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01FQ1JfT0ZGU0VUXQogCiAJLyogTUNNRU0wOiBDYXJkIEludGVyZmFjZSBzbG90IDAgdGltaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DTUVNMF9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNNRU0wX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNQ01FTTBfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNNRU0wX09GRlNFVF0KIAogCS8qIE1DTUVNMTogQ2FyZCBJbnRlcmZhY2Ugc2xvdCAxIHRpbWluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ01FTTFfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01DTUVNMV9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNNRU0xX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DTUVNMV9PRkZTRVRdCiAKIAkvKiBNQ0FUVDA6IENhcmQgSW50ZXJmYWNlIEF0dHJpYnV0ZSBTcGFjZSBUaW1pbmcsIHNsb3QgMCAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNBVFQwX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0FUVDBfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DQVRUMF9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ0FUVDBfT0ZGU0VUXQogCiAJLyogTUNBVFQxOiBDYXJkIEludGVyZmFjZSBBdHRyaWJ1dGUgU3BhY2UgVGltaW5nLCBzbG90IDEgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DQVRUMV9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNBVFQxX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNQ0FUVDFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNBVFQxX09GRlNFVF0KIAogCS8qIE1DSU8wOiBDYXJkIEludGVyZmFjZSBJL08gU3BhY2UgVGltaW5nLCBzbG90IDAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ0lPMF9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNJTzBfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DSU8wX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DSU8wX09GRlNFVF0KIAogCS8qIE1DSU8xOiBDYXJkIEludGVyZmFjZSBJL08gU3BhY2UgVGltaW5nLCBzbG90IDEgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ0lPMV9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNJTzFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DSU8xX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DSU8xX09GRlNFVF0KIApAQCAtMjM5LDcgKzIzOSw3IEBACiAJLyogQmVmb3JlIGFjY2Vzc2luZyBNRFJFRlIgd2UgbmVlZCBhIHZhbGlkIERSSSBmaWVsZCwgc28gd2Ugc2V0ICAgICAqLwogCS8qIHRoaXMgdG8gcG93ZXIgb24gZGVmYXVsdHMgKyBEUkkgZmllbGQuICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAotCWxkcglyMywJPUNGR19NRFJFRlJfVkFMCisJbGRyCXIzLAk9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAJbGRyCXIyLAk9MHhGRkYKIAlhbmQJcjMsCXIzLCByMgogCWxkcglyNCwJPTB4MDNjYTQwMDAKQEAgLTI2OSw3ICsyNjksNyBAQAogCS8qIFN0ZXAgNGE6IGFzc2VydCBNRFJFRlI6Sz9SVU4gYW5kIGNvbmZpZ3VyZSAgICAgICAgICAgICAgICAgICAgICAgKi8KIAkvKiAgICAgICAgICBNRFJFRlI6SzFEQjIgYW5kIE1EUkVGUjpLMkRCMiBhcyBkZXNpcmVkLiAgICAgICAgICAgICAgICovCiAKLQlsZHIJcjQsCT1DRkdfTURSRUZSX1ZBTAorCWxkcglyNCwJPUNPTkZJR19TWVNfTURSRUZSX1ZBTAogCXN0cglyNCwJW3IxLCAjTURSRUZSX09GRlNFVF0JLyogd3JpdGUgYmFjayBNRFJFRlIgICAgICAgICovCiAJbGRyCXI0LAlbcjEsICNNRFJFRlJfT0ZGU0VUXQogCkBAIC0yOTIsNyArMjkyLDcgQEAKIAkvKiBTdGVwIDRkOiB3cml0ZSBNRENORkcgd2l0aCBNRENORkc6REV4IGRlYXNzZXJ0ZWQgKHNldCB0byAwKSwgdG8gICovCiAJLyogICAgICAgICAgY29uZmlndXJlIGJ1dCBub3QgZW5hYmxlIGVhY2ggU0RSQU0gcGFydGl0aW9uIHBhaXIuICAgICAqLwogCi0JbGRyCXI0LAk9Q0ZHX01EQ05GR19WQUwKKwlsZHIJcjQsCT1DT05GSUdfU1lTX01EQ05GR19WQUwKIAliaWMJcjQsCXI0LAkjKE1EQ05GR19ERTB8TURDTkZHX0RFMSkKIAogCXN0ciAgICAgcjQsICAgICBbcjEsICNNRENORkdfT0ZGU0VUXQkvKiB3cml0ZSBiYWNrIE1EQ05GRyAgICAgICAgKi8KQEAgLTMyNSw3ICszMjUsNyBAQAogCS8qICAgICAgICAgIEphbiAyMDAzLCBFcnJhdGEgIzExNiwgcGFnZSAzMC4gICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogCi0JbGRyCXIzLAk9Q0ZHX0RSQU1fQkFTRQorCWxkcglyMywJPUNPTkZJR19TWVNfRFJBTV9CQVNFCiAJc3RyCXIyLCBbcjNdCiAJc3RyCXIyLCBbcjNdCiAJc3RyCXIyLCBbcjNdCkBAIC0zNDUsNyArMzQ1LDcgQEAKIAogCS8qIFN0ZXAgNGg6IFdyaXRlIE1ETVJTLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAotCWxkciAgICAgcjIsICA9Q0ZHX01ETVJTX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NRE1SU19WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTURNUlNfT0ZGU0VUXQogCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2NzYjI3Mi9jc2IyNzIuYyBiL2JvYXJkL2NzYjI3Mi9jc2IyNzIuYwppbmRleCA1YTU4NWFlLi4xMTU5NmQyIDEwMDY0NAotLS0gYS9ib2FyZC9jc2IyNzIvY3NiMjcyLmMKKysrIGIvYm9hcmQvY3NiMjcyL2NzYjI3Mi5jCkBAIC01MSw5ICs1MSw5IEBACiAgKi8KIGludCBwbGxfaW5pdCh2b2lkKQogewotCWkyY19pbml0KENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0KENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKLQlyZXR1cm4gIGkyY193cml0ZShDRkdfSTJDX1BMTF9BRERSLCAwLCAxLAorCXJldHVybiAgaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX1BMTF9BRERSLCAwLCAxLAogCQkodWNoYXIgKikgcGxsX2ZzNjM3N19yZWdzLCBzaXplb2YocGxsX2ZzNjM3N19yZWdzKSk7CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2NzYjI3Mi9pbml0LlMgYi9ib2FyZC9jc2IyNzIvaW5pdC5TCmluZGV4IGUwMGViZjguLmFiMzcxZjIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NzYjI3Mi9pbml0LlMKKysrIGIvYm9hcmQvY3NiMjcyL2luaXQuUwpAQCAtODIsMTEgKzgyLDExIEBACiAJbWZscglyMwkJCS8qIGdldCBhZGRyZXNzIG9mIC4uZ2V0QWRkciAqLwogCiAJLyogQ2FsY3VsYXRlIG51bWJlciBvZiBjYWNoZSBsaW5lcyBmb3IgdGhpcyBmdW5jdGlvbiAqLwotCWFkZGkJcjQsIDAsICgoKC5MZmUwIC0gLi5nZXRBZGRyKSAvIENGR19DQUNIRUxJTkVfU0laRSkgKyAyKQorCWFkZGkJcjQsIDAsICgoKC5MZmUwIC0gLi5nZXRBZGRyKSAvIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUpICsgMikKIAltdGN0cglyNAogLi5lYmNsb29wOgogCWljYnQJcjAsIHIzCQkJLyogcHJlZmV0Y2ggY2FjaGUgbGluZSBmb3IgYWRkciBpbiByMyovCi0JYWRkaQlyMywgcjMsIENGR19DQUNIRUxJTkVfU0laRSAvKiBtb3ZlIHRvIG5leHQgY2FjaGUgbGluZSAqLworCWFkZGkJcjMsIHIzLCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFIC8qIG1vdmUgdG8gbmV4dCBjYWNoZSBsaW5lICovCiAJYmRuegkuLmViY2xvb3AJCS8qIGNvbnRpbnVlIGZvciAkQ1RSIGNhY2hlIGxpbmVzICovCiAKIAkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBhL2JvYXJkL2NzYjQ3Mi9pbml0LlMgYi9ib2FyZC9jc2I0NzIvaW5pdC5TCmluZGV4IGFlYzQyYTEuLjRiNjk1OGEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NzYjQ3Mi9pbml0LlMKKysrIGIvYm9hcmQvY3NiNDcyL2luaXQuUwpAQCAtODIsMTEgKzgyLDExIEBACiAJbWZscglyMwkJCS8qIGdldCBhZGRyZXNzIG9mIC4uZ2V0QWRkciAqLwogCiAJLyogQ2FsY3VsYXRlIG51bWJlciBvZiBjYWNoZSBsaW5lcyBmb3IgdGhpcyBmdW5jdGlvbiAqLwotCWFkZGkJcjQsIDAsICgoKC5MZmUwIC0gLi5nZXRBZGRyKSAvIENGR19DQUNIRUxJTkVfU0laRSkgKyAyKQorCWFkZGkJcjQsIDAsICgoKC5MZmUwIC0gLi5nZXRBZGRyKSAvIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUpICsgMikKIAltdGN0cglyNAogLi5lYmNsb29wOgogCWljYnQJcjAsIHIzCQkJLyogcHJlZmV0Y2ggY2FjaGUgbGluZSBmb3IgYWRkciBpbiByMyovCi0JYWRkaQlyMywgcjMsIENGR19DQUNIRUxJTkVfU0laRSAvKiBtb3ZlIHRvIG5leHQgY2FjaGUgbGluZSAqLworCWFkZGkJcjMsIHIzLCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFIC8qIG1vdmUgdG8gbmV4dCBjYWNoZSBsaW5lICovCiAJYmRuegkuLmViY2xvb3AJCS8qIGNvbnRpbnVlIGZvciAkQ1RSIGNhY2hlIGxpbmVzICovCiAKIAkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBhL2JvYXJkL2N1ODI0L2N1ODI0LmMgYi9ib2FyZC9jdTgyNC9jdTgyNC5jCmluZGV4IDBmZDQyMjMuLjcyMGM1NmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2N1ODI0L2N1ODI0LmMKKysrIGIvYm9hcmQvY3U4MjQvY3U4MjQuYwpAQCAtNTMsNyArNTMsNyBAQAogCWxvbmcgbWVhcjE7CiAJbG9uZyBlbWVhcjE7CiAKLQlzaXplID0gZ2V0X3JhbV9zaXplKENGR19TRFJBTV9CQVNFLCBDRkdfTUFYX1JBTV9TSVpFKTsKKwlzaXplID0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUpOwogCiAJbmV3X2JhbmswX2VuZCA9IHNpemUgLSAxOwogCW1lYXIxID0gbXBjODI0eF9tcGMxMDdfZ2V0cmVnKE1FQVIxKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2N1ODI0L2ZsYXNoLmMgYi9ib2FyZC9jdTgyNC9mbGFzaC5jCmluZGV4IDZmZTI5NzguLmJkMGY4ZDMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2N1ODI0L2ZsYXNoLmMKKysrIGIvYm9hcmQvY3U4MjQvZmxhc2guYwpAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNDMsNyArNDMsNyBAQAogCiAjZGVmaW5lIEJPQVJEX0NUUkxfUkVHIDB4RkU4MDAwMTMKIAotZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIHN0YXRpYyBpbnQgd3JpdGVfZGF0YSAoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyAqZGF0YSk7CiBzdGF0aWMgdm9pZCB3cml0ZV92aWFfZnB1KHZ1X2xvbmcgKmFkZHIsIHVsb25nICpkYXRhKTsKQEAgLTc1LDggKzc1LDggQEAKICAgICAqYmNyIHw9IDB4NjsJLyogRldQMCA9IEZXUDEgPSAxICovCiAgICAgREVCVUdGKCJXcml0ZSBwcm90ZWN0IGlzOiAgMHglMDJYXG4iLCAqYmNyKTsKIAotICAgIGZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKLQl2dV9sb25nICphZGRyID0gKHZ1X2xvbmcgKikoQ0ZHX0ZMQVNIX0JBU0UgKyBpICogRkxBU0hfQkFOS19TSVpFKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCXZ1X2xvbmcgKmFkZHIgPSAodnVfbG9uZyAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBpICogRkxBU0hfQkFOS19TSVpFKTsKIAogCWFkZHJbMF0gPSAweDAwOTAwMDkwOwogCkBAIC0xMDMsMTUgKzEwMywxNSBAQAogCWFkZHJbMF0gPSAweEZGRkZGRkZGOwogCiAJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOwotCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCWZvciAoaiA9IDA7IGogPCBmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudDsgaisrKSB7CiAJCWlmIChqIDw9IDcpIHsKLQkJCWZsYXNoX2luZm9baV0uc3RhcnRbal0gPSBDRkdfRkxBU0hfQkFTRSArCisJCQlmbGFzaF9pbmZvW2ldLnN0YXJ0W2pdID0gQ09ORklHX1NZU19GTEFTSF9CQVNFICsKIAkJCQkJCSBpICogRkxBU0hfQkFOS19TSVpFICsKIAkJCQkJCSBqICogUEFSQU1fU0VDVF9TSVpFOwogCQl9IGVsc2UgewotCQkJZmxhc2hfaW5mb1tpXS5zdGFydFtqXSA9IENGR19GTEFTSF9CQVNFICsKKwkJCWZsYXNoX2luZm9baV0uc3RhcnRbal0gPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKwogCQkJCQkJIGkgKiBGTEFTSF9CQU5LX1NJWkUgKwogCQkJCQkJIChqIC0gNykqTUFJTl9TRUNUX1NJWkU7CiAJCX0KQEAgLTEyMSwyMiArMTIxLDIyIEBACiAKICAgICAvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKICAgICAgKi8KLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRSArIEZMQVNIX0JBTktfU0laRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIEZMQVNIX0JBTktfU0laRQogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCSAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJICAgICAgJmZsYXNoX2luZm9bMV0pOwogI2Vsc2UKICAgICBmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpICYmIGRlZmluZWQoQ09ORklHX0VOVl9BRERSKQotI2lmIENPTkZJR19FTlZfQUREUiA+PSBDRkdfRkxBU0hfQkFTRSArIEZMQVNIX0JBTktfU0laRQorI2lmIENPTkZJR19FTlZfQUREUiA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBGTEFTSF9CQU5LX1NJWkUKICAgICBmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCiAJICAgICAgQ09ORklHX0VOVl9BRERSLAogCSAgICAgIENPTkZJR19FTlZfQUREUiArIENPTkZJR19FTlZfU0laRSAtIDEsCkBAIC0yNjgsNyArMjY4LDcgQEAKIAkJCXdoaWxlICgoKGFkZHJbMF0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB8fAogCQkJICAgICAgICgoYWRkclsxXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApICkgewogCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4KLQkJCQkJICAgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQkJICAgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQlhZGRyWzBdID0gMHgwMEIwMDBCMDsgLyogc3VzcGVuZCBlcmFzZSAqLwogCQkJCQlhZGRyWzBdID0gMHgwMEZGMDBGRjsgLyogdG8gcmVhZCBtb2RlICAqLwpAQCAtNDUyLDcgKzQ1Miw3IEBACiAKIAl3aGlsZSAoKChhZGRyWzBdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgfHwKIAkgICAgICAgKChhZGRyWzFdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCWFkZHJbMF0gPSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuICgxKTsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZGF2ZS9CMi9mbGFzaC5jIGIvYm9hcmQvZGF2ZS9CMi9mbGFzaC5jCmluZGV4IGFkNjdlODYuLmJiODkyZTYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2RhdmUvQjIvZmxhc2guYworKysgYi9ib2FyZC9kYXZlL0IyL2ZsYXNoLmMKQEAgLTQxLDE5ICs0MSwxOSBAQAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewogI2lmZGVmIF9fREVCVUdfU1RBUlRfRlJPTV9TUkFNX18KLQlyZXR1cm4gQ0ZHX0RVTU1ZX0ZMQVNIX1NJWkU7CisJcmV0dXJuIENPTkZJR19TWVNfRFVNTVlfRkxBU0hfU0laRTsKICNlbHNlCiAJdW5zaWduZWQgbG9uZyBzaXplX2IwOwogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCiAJLyogU3RhdGljIEZMQVNIIEJhbmsgY29uZmlndXJhdGlvbiBoZXJlIC0gRklYTUUgWFhYICovCiAKLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJaWYgKGZsYXNoX2luZm9bMF0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTikgewogCQlwcmludGYgKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgMCAtIFNpemUgPSAweCUwOGx4ID0gJWxkIE1CXG4iLApAQCAtNjUsNyArNjUsNyBAQAogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZGF2ZS9QUENoYW1lbGVvbkVWQi9QUENoYW1lbGVvbkVWQi5jIGIvYm9hcmQvZGF2ZS9QUENoYW1lbGVvbkVWQi9QUENoYW1lbGVvbkVWQi5jCmluZGV4IGM3MTVhZDQuLmE2YWE2NTUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2RhdmUvUFBDaGFtZWxlb25FVkIvUFBDaGFtZWxlb25FVkIuYworKysgYi9ib2FyZC9kYXZlL1BQQ2hhbWVsZW9uRVZCL1BQQ2hhbWVsZW9uRVZCLmMKQEAgLTM4LDggKzM4LDggQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZiAodm9pZCkKIHsKLQlvdXQzMihHUElPMF9PUiwgQ0ZHX05BTkQwX0NFKTsgICAgICAgICAgICAgICAgIC8qIHNldCBpbml0aWFsIG91dHB1dHMgICAgICovCi0Jb3V0MzIoR1BJTzBfT1IsIENGR19OQU5EMV9DRSk7ICAgICAgICAgICAgICAgICAvKiBzZXQgaW5pdGlhbCBvdXRwdXRzICAgICAqLworCW91dDMyKEdQSU8wX09SLCBDT05GSUdfU1lTX05BTkQwX0NFKTsgICAgICAgICAgICAgICAgIC8qIHNldCBpbml0aWFsIG91dHB1dHMgICAgICovCisJb3V0MzIoR1BJTzBfT1IsIENPTkZJR19TWVNfTkFORDFfQ0UpOyAgICAgICAgICAgICAgICAgLyogc2V0IGluaXRpYWwgb3V0cHV0cyAgICAgKi8KIAogCS8qCiAJICogSVJRIDAtMTUgIDQwNUdQIGludGVybmFsbHkgZ2VuZXJhdGVkOyBhY3RpdmUgaGlnaDsgbGV2ZWwgc2Vuc2l0aXZlCkBAIC04NSwxMCArODUsMTAgQEAKIHsKIAkvKiBhZGp1c3QgZmxhc2ggc3RhcnQgYW5kIHNpemUgYXMgd2VsbCBhcyB0aGUgb2Zmc2V0ICovCiAJZ2QtPmJkLT5iaV9mbGFzaHN0YXJ0ID0gMCAtIGZsYXNoX2luZm9bMF0uc2l6ZTsKLQlnZC0+YmQtPmJpX2ZsYXNob2Zmc2V0PSBmbGFzaF9pbmZvWzBdLnNpemUgLSBDRkdfTU9OSVRPUl9MRU47CisJZ2QtPmJkLT5iaV9mbGFzaG9mZnNldD0gZmxhc2hfaW5mb1swXS5zaXplIC0gQ09ORklHX1NZU19NT05JVE9SX0xFTjsKICNpZiAwCiAJdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKmZwZ2FfbW9kZSA9Ci0JCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ0ZHX0ZQR0FfQkFTRV9BRERSICsgQ0ZHX0ZQR0FfQ1RSTCk7CisJCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUiArIENPTkZJR19TWVNfRlBHQV9DVFJMKTsKIAl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpkdWFydDBfbWNyID0KIAkJKHVuc2lnbmVkIGNoYXIgKikoKHVsb25nKURVQVJUMF9CQSArIDQpOwogCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmR1YXJ0MV9tY3IgPQpAQCAtMTAzLDggKzEwMyw4IEBACiAJaW50IGk7CiAJdW5zaWduZWQgbG9uZyBjbnRybDBSZWc7CiAKLQlkc3QgPSBtYWxsb2MoQ0ZHX0ZQR0FfTUFYX1NJWkUpOwotCWlmIChndW56aXAgKGRzdCwgQ0ZHX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CisJZHN0ID0gbWFsbG9jKENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSk7CisJaWYgKGd1bnppcCAoZHN0LCBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CiAJCXByaW50ZiAoIkdVTlpJUCBFUlJPUiAtIG11c3QgUkVTRVQgYm9hcmQgdG8gcmVjb3ZlclxuIik7CiAJCWRvX3Jlc2V0IChOVUxMLCAwLCAwLCBOVUxMKTsKIAl9CkBAIC0xNjgsNyArMTY4LDcgQEAKIAkvKgogCSAqIEVuYWJsZSBwb3dlciBvbiBQUy8yIGludGVyZmFjZQogCSAqLwotCSpmcGdhX21vZGUgfD0gQ0ZHX0ZQR0FfQ1RSTF9QUzJfUkVTRVQ7CisJKmZwZ2FfbW9kZSB8PSBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9QUzJfUkVTRVQ7CiAKIAkvKgogCSAqIEVuYWJsZSBpbnRlcnJ1cHRzIGluIGV4YXIgZHVhcnQgbWNyWzNdCmRpZmYgLS1naXQgYS9ib2FyZC9kYXZlL1BQQ2hhbWVsZW9uRVZCL2ZsYXNoLmMgYi9ib2FyZC9kYXZlL1BQQ2hhbWVsZW9uRVZCL2ZsYXNoLmMKaW5kZXggNjkyZDI3NS4uZTVhMGQzZCAxMDA2NDQKLS0tIGEvYm9hcmQvZGF2ZS9QUENoYW1lbGVvbkVWQi9mbGFzaC5jCisrKyBiL2JvYXJkL2RhdmUvUFBDaGFtZWxlb25FVkIvZmxhc2guYwpAQCAtNDIsNyArNDIsNyBAQAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewogI2lmZGVmIF9fREVCVUdfU1RBUlRfRlJPTV9TUkFNX18KLQlyZXR1cm4gQ0ZHX0RVTU1ZX0ZMQVNIX1NJWkU7CisJcmV0dXJuIENPTkZJR19TWVNfRFVNTVlfRkxBU0hfU0laRTsKICNlbHNlCiAJdW5zaWduZWQgbG9uZyBzaXplOwogCWludCBpOwpAQCAtNTQsNyArNTQsNyBAQAogCWRlYnVnKCJbJXMsICVkXSBmbGFzaF9pbmZvID0gMHglMDhYIC4uLlxuIiwgX19GVU5DVElPTl9fLCBfX0xJTkVfXywgZmxhc2hfaW5mbyk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTEwMiw3ICsxMDIsNyBAQAogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZGF2ZS9QUENoYW1lbGVvbkVWQi9uYW5kLmMgYi9ib2FyZC9kYXZlL1BQQ2hhbWVsZW9uRVZCL25hbmQuYwppbmRleCAzY2NiZjY1MC4uMTRiNjFhNCAxMDA2NDQKLS0tIGEvYm9hcmQvZGF2ZS9QUENoYW1lbGVvbkVWQi9uYW5kLmMKKysrIGIvYm9hcmQvZGF2ZS9QUENoYW1lbGVvbkVWQi9uYW5kLmMKQEAgLTY3LDExICs2NywxMSBAQAogCiAJLyogdXNlIHRoZSBiYXNlIGFkZHIgdG8gZmluZCBvdXQgd2hpY2ggY2hpcCBhcmUgd2UgZGVhbGluZyB3aXRoICovCiAJc3dpdGNoKCh1bG9uZykgdGhpcy0+SU9fQUREUl9XKSB7Ci0JY2FzZSBDRkdfTkFORDBfQkFTRToKLQkJcmJfZ3Bpb19waW4gPSBDRkdfTkFORDBfUkRZOworCWNhc2UgQ09ORklHX1NZU19OQU5EMF9CQVNFOgorCQlyYl9ncGlvX3BpbiA9IENPTkZJR19TWVNfTkFORDBfUkRZOwogCQlicmVhazsKLQljYXNlIENGR19OQU5EMV9CQVNFOgotCQlyYl9ncGlvX3BpbiA9IENGR19OQU5EMV9SRFk7CisJY2FzZSBDT05GSUdfU1lTX05BTkQxX0JBU0U6CisJCXJiX2dwaW9fcGluID0gQ09ORklHX1NZU19OQU5EMV9SRFk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6IC8qIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiAqLwogCQlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2JvYXJkL2RhdmUvUFBDaGFtZWxlb25FVkIvdS1ib290LmxkcyBiL2JvYXJkL2RhdmUvUFBDaGFtZWxlb25FVkIvdS1ib290LmxkcwppbmRleCBlNDJjNzZmLi5lZDAyY2VmIDEwMDY0NAotLS0gYS9ib2FyZC9kYXZlL1BQQ2hhbWVsZW9uRVZCL3UtYm9vdC5sZHMKKysrIGIvYm9hcmQvZGF2ZS9QUENoYW1lbGVvbkVWQi91LWJvb3QubGRzCkBAIC0xNDMsNyArMTQzLDcgQEAKICAgICooQ09NTU9OKQogICB9CiAKLSAgcHBjZW52X2Fzc2VydCA9IEFTU0VSVCguIDwgMHhGRkZGODAwMCwgIi5ic3Mgc2VjdGlvbiB0b28gYmlnLCBvdmVybGFwcyAucHBjZW52IHNlY3Rpb24uIFBsZWFzZSB1cGRhdGUgeW91ciBjb25mZ3VyYXRpb246IENGR19NT05JVE9SX0JBU0UsIENGR19NT05JVE9SX0xFTiBhbmQgVEVYVF9CQVNFIG1heSBuZWVkIHRvIGJlIG1vZGlmaWVkLiIpOworICBwcGNlbnZfYXNzZXJ0ID0gQVNTRVJUKC4gPCAweEZGRkY4MDAwLCAiLmJzcyBzZWN0aW9uIHRvbyBiaWcsIG92ZXJsYXBzIC5wcGNlbnYgc2VjdGlvbi4gUGxlYXNlIHVwZGF0ZSB5b3VyIGNvbmZndXJhdGlvbjogQ09ORklHX1NZU19NT05JVE9SX0JBU0UsIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gYW5kIFRFWFRfQkFTRSBtYXkgbmVlZCB0byBiZSBtb2RpZmllZC4iKTsKICAgLiA9IDB4RkZGRjgwMDA7CiAgIC5wcGNlbnYgOgogICB7CmRpZmYgLS1naXQgYS9ib2FyZC9kYXZlL2NvbW1vbi9mbGFzaC5jIGIvYm9hcmQvZGF2ZS9jb21tb24vZmxhc2guYwppbmRleCBiZjBmMmJmLi5iNmFmNjNiIDEwMDY0NAotLS0gYS9ib2FyZC9kYXZlL2NvbW1vbi9mbGFzaC5jCisrKyBiL2JvYXJkL2RhdmUvY29tbW9uL2ZsYXNoLmMKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTE2Miw3ICsxNjIsNyBAQAogCiAJcHJpbnRmICgiICBTZWN0b3IgU3RhcnQgQWRkcmVzc2VzOiIpOwogCWZvciAoaT0wOyBpPGluZm8tPnNlY3Rvcl9jb3VudDsgKytpKSB7Ci0jaWZkZWYgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAkJLyoKIAkJICogQ2hlY2sgaWYgd2hvbGUgc2VjdG9yIGlzIGVyYXNlZAogCQkgKi8KQEAgLTIxNiwzMCArMjE2LDMwIEBACiB7CiAJc2hvcnQgaTsKIAlzaG9ydCBuOwotCUNGR19GTEFTSF9XT1JEX1NJWkUgdmFsdWU7CisJQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgdmFsdWU7CiAJdWxvbmcgYmFzZSA9ICh1bG9uZylhZGRyOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilhZGRyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKWFkZHI7CiAKIAlkZWJ1ZygiWyVzLCAlZF0gRW50ZXJpbmcgLi4uXG4iLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsKIAogCS8qIFdyaXRlIGF1dG8gc2VsZWN0IGNvbW1hbmQ6IHJlYWQgTWFudWZhY3R1cmVyIElEICovCi0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA5MDAwOTA7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA5MDAwOTA7CiAKLQl2YWx1ZSA9IGFkZHIyW0NGR19GTEFTSF9SRUFEMF07CisJdmFsdWUgPSBhZGRyMltDT05GSUdfU1lTX0ZMQVNIX1JFQUQwXTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0FNRDsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlGVUpfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpRlVKX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9GVUo7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1NUX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNTVF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fU1NUOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNUTV9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTVE1fTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX1NUTTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKQEAgLTI0OSw5MiArMjQ5LDkyIEBACiAJCXJldHVybiAoMCk7CQkJLyogbm8gb3IgdW5rbm93biBmbGFzaAkqLwogCX0KIAotCXZhbHVlID0gYWRkcjJbQ0ZHX0ZMQVNIX1JFQUQxXTsJCS8qIGRldmljZSBJRAkJKi8KKwl2YWx1ZSA9IGFkZHIyW0NPTkZJR19TWVNfRkxBU0hfUkVBRDFdOwkJLyogZGV2aWNlIElECQkqLwogCiAJc3dpdGNoICh2YWx1ZSkgewotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWNDAwVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY0MDBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTQwMFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDExOwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDAuNSBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWNDAwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY0MDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTQwMEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDExOwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDAuNSBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWODAwVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY4MDBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTgwMFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDE5OwogCQlpbmZvLT5zaXplID0gMHgwMDEwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDEgTUIJCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjgwMEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWODAwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU04MDBCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxOTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAxMDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAxIE1CCQkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYxNjBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjE2MFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMTYwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMiBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMTYwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYxNjBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTE2MEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDM1OwogCQlpbmZvLT5zaXplID0gMHgwMDIwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDIgTUIJCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNUTV9JRF8yOVczMjBEVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTVE1fSURfMjlXMzIwRFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX1NUTVczMjBEVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNjc7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOyAgYnJlYWs7CS8qID0+IDQgTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTMyMFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsgIGJyZWFrOwkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0zMjBCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjJUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyMlQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNREwzMjJUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjJCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyMkI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNREwzMjJCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyM1Q6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNREwzMjNUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjNCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyM0I6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNREwzMjNCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY2NDBVOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjY0MFU6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNNjQwVTsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTI4OwogCQlpbmZvLT5zaXplID0gMHgwMDgwMDAwMDsgIGJyZWFrOwkvKiA9PiA4IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjgwMEE6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGODAwQToKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfU1NUODAwQTsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTY7CiAJCWluZm8tPnNpemUgPSAweDAwMTAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMSBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGMTYwQToKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEYxNjBBOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9TU1QxNjBBOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAzMjsKIAkJaW5mby0+c2l6ZSA9IDB4MDAyMDAwMDA7CkBAIC00MzIsMTkgKzQzMiwxOSBAQAogCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5zZWN0b3JfY291bnQ7IGkrKykgewogCQkvKiByZWFkIHNlY3RvciBwcm90ZWN0aW9uIGF0IHNlY3RvciBhZGRyZXNzLCAoQTcgLi4gQTApID0gMHgwMiAqLwogCQkvKiBEMCA9IDEgaWYgcHJvdGVjdGVkICovCi0JCWFkZHIyID0gKHZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOworCQlhZGRyMiA9ICh2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CiAJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkKIAkJICBpbmZvLT5wcm90ZWN0W2ldID0gMDsKIAkJZWxzZQotCQkgIGluZm8tPnByb3RlY3RbaV0gPSBhZGRyMltDRkdfRkxBU0hfUkVBRDJdICYgMTsKKwkJICBpbmZvLT5wcm90ZWN0W2ldID0gYWRkcjJbQ09ORklHX1NZU19GTEFTSF9SRUFEMl0gJiAxOwogCX0KIAogCS8qCiAJICogUHJldmVudCB3cml0ZXMgdG8gdW5pbml0aWFsaXplZCBGTEFTSC4KIAkgKi8KIAlpZiAoaW5mby0+Zmxhc2hfaWQgIT0gRkxBU0hfVU5LTk9XTikgewotCQlhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopaW5mby0+c3RhcnRbMF07Ci0JCSphZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KKwkJYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKilpbmZvLT5zdGFydFswXTsKKwkJKmFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAl9CiAKIAlyZXR1cm4gKGluZm8tPnNpemUpOwpAQCAtNDU2LDggKzQ1Niw4IEBACiAKIGludAlmbGFzaF9lcmFzZSAoZmxhc2hfaW5mb190ICppbmZvLCBpbnQgc19maXJzdCwgaW50IHNfbGFzdCkKIHsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CiAJaW50IGZsYWcsIHByb3QsIHNlY3QsIGxfc2VjdDsKIAl1bG9uZyBzdGFydCwgbm93LCBsYXN0OwogCWludCBpOwpAQCAtNDk4LDI1ICs0OTgsMjUgQEAKIAkvKiBTdGFydCBlcmFzZSBvbiB1bnByb3RlY3RlZCBzZWN0b3JzICovCiAJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdDw9c19sYXN0OyBzZWN0KyspIHsKIAkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCi0JCSAgICBhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwkJICAgIGFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAkJICAgIGlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkgewotCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7Ci0JCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOwotCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7Ci0JCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA1MDAwNTA7ICAvKiBibG9jayBlcmFzZSAqLworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDUwMDA1MDsgIC8qIGJsb2NrIGVyYXNlICovCiAJCQlmb3IgKGk9MDsgaTw1MDsgaSsrKQogCQkJICB1ZGVsYXkoMTAwMCk7ICAvKiB3YWl0IDEgbXMgKi8KIAkJICAgIH0gZWxzZSB7CiAJCQlpZiAoc2VjdCA9PSBzX2ZpcnN0KSB7Ci0JCQkgICAgYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKLQkJCSAgICBhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCQkJICAgIGFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODA7Ci0JCQkgICAgYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKLQkJCSAgICBhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJICAgIGFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKKwkJCSAgICBhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7CisJCQkgICAgYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOworCQkJICAgIGFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKKwkJCSAgICBhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7CiAJCQl9Ci0JCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDAzMDAwMzA7ICAvKiBzZWN0b3IgZXJhc2UgKi8KKwkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDAzMDAwMzA7ICAvKiBzZWN0b3IgZXJhc2UgKi8KIAkJICAgIH0KIAkJICAgIGxfc2VjdCA9IHNlY3Q7CiAJCX0KQEAgLTUzNyw5ICs1MzcsOSBAQAogCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCWxhc3QgID0gc3RhcnQ7Ci0JYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwotCXdoaWxlICgoYWRkclswXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKKwl3aGlsZSAoKGFkZHJbMF0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtNTUyLDggKzU1Miw4IEBACiAKIERPTkU6CiAJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCi0JYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopaW5mby0+c3RhcnRbMF07Ci0JYWRkclswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KKwlhZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopaW5mby0+c3RhcnRbMF07CisJYWRkclswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAKIAlwcmludGYgKCIgZG9uZVxuIik7CiAJcmV0dXJuIDA7CkBAIC02NjMsOSArNjYzLDkgQEAKICAqLwogc3RhdGljIGludCB3cml0ZV93b3JkIChmbGFzaF9pbmZvX3QgKmluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGVzdDIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKWRlc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSZkYXRhOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopZGVzdDsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikmZGF0YTsKIAl1bG9uZyBzdGFydDsKIAlpbnQgZmxhZzsKIAlpbnQgaTsKQEAgLTY3NywxMSArNjc3LDExIEBACiAJLyogRGlzYWJsZSBpbnRlcnJ1cHRzIHdoaWNoIG1pZ2h0IGNhdXNlIGEgdGltZW91dCBoZXJlICovCiAJZmxhZyA9IGRpc2FibGVfaW50ZXJydXB0cygpOwogCi0JZm9yIChpPTA7IGk8NC9zaXplb2YoQ0ZHX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykKKwlmb3IgKGk9MDsgaTw0L3NpemVvZihDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykKIAkgIHsKLQkgICAgYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JICAgIGFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCSAgICBhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEEwMDBBMDsKKwkgICAgYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKKwkgICAgYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKKwkgICAgYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEEwMDBBMDsKIAogCSAgICBkZXN0MltpXSA9IGRhdGEyW2ldOwogCkBAIC02OTEsOSArNjkxLDkgQEAKIAogCSAgICAvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJICAgIHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKLQkgICAgd2hpbGUgKChkZXN0MltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9Ci0JCSAgIChkYXRhMltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApKSB7Ci0JICAgICAgaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCSAgICB3aGlsZSAoKGRlc3QyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9CisJCSAgIChkYXRhMltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSkgeworCSAgICAgIGlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCXJldHVybiAoMSk7CiAJICAgICAgfQogCSAgICB9CmRpZmYgLS1naXQgYS9ib2FyZC9kYXZlL2NvbW1vbi9mcGdhLmMgYi9ib2FyZC9kYXZlL2NvbW1vbi9mcGdhLmMKaW5kZXggNWI1YjVlOS4uMzBiYzE5NiAxMDA2NDQKLS0tIGEvYm9hcmQvZGF2ZS9jb21tb24vZnBnYS5jCisrKyBiL2JvYXJkL2RhdmUvY29tbW9uL2ZwZ2EuYwpAQCAtMzYsMTIgKzM2LDEyIEBACiAKICNkZWZpbmUgTUFYX09ORVMgICAgICAgICAgICAgICAyMjYKIAotI2lmZGVmIENGR19GUEdBX1BSRwotIyBkZWZpbmUgRlBHQV9QUkcgICAgICAgICAgICAgIENGR19GUEdBX1BSRyAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSovCi0jIGRlZmluZSBGUEdBX0NMSyAgICAgICAgICAgICAgQ0ZHX0ZQR0FfQ0xLIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgKi8KLSMgZGVmaW5lIEZQR0FfREFUQSAgICAgICAgICAgICBDRkdfRlBHQV9EQVRBIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAqLwotIyBkZWZpbmUgRlBHQV9ET05FICAgICAgICAgICAgIENGR19GUEdBX0RPTkUgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICovCi0jIGRlZmluZSBGUEdBX0lOSVQgICAgICAgICAgICAgQ0ZHX0ZQR0FfSU5JVCAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgKi8KKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJHCisjIGRlZmluZSBGUEdBX1BSRyAgICAgICAgICAgICAgQ09ORklHX1NZU19GUEdBX1BSRyAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSovCisjIGRlZmluZSBGUEdBX0NMSyAgICAgICAgICAgICAgQ09ORklHX1NZU19GUEdBX0NMSyAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICovCisjIGRlZmluZSBGUEdBX0RBVEEgICAgICAgICAgICAgQ09ORklHX1NZU19GUEdBX0RBVEEgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICovCisjIGRlZmluZSBGUEdBX0RPTkUgICAgICAgICAgICAgQ09ORklHX1NZU19GUEdBX0RPTkUgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICovCisjIGRlZmluZSBGUEdBX0lOSVQgICAgICAgICAgICAgQ09ORklHX1NZU19GUEdBX0lOSVQgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICovCiAjZWxzZQogIyBkZWZpbmUgRlBHQV9QUkcgICAgICAgICAgICAgIDB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCiAjIGRlZmluZSBGUEdBX0NMSyAgICAgICAgICAgICAgMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KQEAgLTc0LDcgKzc0LDcgQEAKIAlpbnQgaSwgaW5kZXgsIGxlbjsKIAlpbnQgY291bnQ7CiAKLSNpZmRlZiBDRkdfRlBHQV9TUEFSVEFOMgorI2lmZGVmIENPTkZJR19TWVNfRlBHQV9TUEFSVEFOMgogCWludCBqOwogI2Vsc2UKIAl1bnNpZ25lZCBjaGFyIGI7CkBAIC04OSw3ICs4OSw3IEBACiAJCWluZGV4ICs9IGxlbiArIDM7CiAJfQogCi0jaWZkZWYgQ0ZHX0ZQR0FfU1BBUlRBTjIKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIKIAkvKiBzZWFyY2ggZm9yIHByZWFtYmxlIDB4RkZGRkZGRkYgKi8KIAl3aGlsZSAoMSkgewogCQlpZiAoKGZwZ2FkYXRhW2luZGV4XSA9PSAweGZmKSAmJiAoZnBnYWRhdGFbaW5kZXggKyAxXSA9PSAweGZmKQpAQCAtMTY3LDcgKzE2Nyw3IEBACiAJREJHICgid3JpdGUgY29uZmlndXJhdGlvbiBkYXRhIGludG8gZnBnYVxuIik7CiAJLyogd3JpdGUgY29uZmlndXJhdGlvbi1kYXRhIGludG8gZnBnYS4uLiAqLwogCi0jaWZkZWYgQ0ZHX0ZQR0FfU1BBUlRBTjIKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIKIAkvKgogCSAqIExvYWQgdW5jb21wcmVzc2VkIGltYWdlIGludG8gZnBnYQogCSAqLwpAQCAtMTgxLDcgKzE4MSw3IEBACiAJCQlmcGdhZGF0YVtpXSA8PD0gMTsKIAkJfQogCX0KLSNlbHNlCS8qICEgQ0ZHX0ZQR0FfU1BBUlRBTjIgKi8KKyNlbHNlCS8qICEgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yICovCiAJLyogc2VuZCAweGZmIDB4MjAgKi8KIAlGUEdBX1dSSVRFXzE7CiAJRlBHQV9XUklURV8xOwpAQCAtMjI4LDcgKzIyOCw3IEBACiAJCQlGUEdBX1dSSVRFXzE7CiAJCX0KIAl9Ci0jZW5kaWYJLyogQ0ZHX0ZQR0FfU1BBUlRBTjIgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIgKi8KIAogCURCRyAoIiVzLCAiLAogCSAgICAgKChpbjMyIChHUElPMF9JUikgJiBGUEdBX0RPTkUpID09IDApID8gIk5PVCBET05FIiA6ICJET05FIik7CmRpZmYgLS1naXQgYS9ib2FyZC9kYXZlL2NvbW1vbi9wY2kuYyBiL2JvYXJkL2RhdmUvY29tbW9uL3BjaS5jCmluZGV4IGY4ZjE4MGMuLmVjMGQ3NjEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2RhdmUvY29tbW9uL3BjaS5jCisrKyBiL2JvYXJkL2RhdmUvY29tbW9uL3BjaS5jCkBAIC0xMTksMjQgKzExOSwyNCBAQAogICAvKgogICAgKiBDb25maWd1cmUgUExYIFBDSTkwNTQKICAgICovCi0gIHBjaV9yZWFkX2NvbmZpZ193b3JkKENGR19QQ0k5MDU0X0RFVl9GTiwgUENJX0NPTU1BTkQsICZzdGF0dXMpOworICBwY2lfcmVhZF9jb25maWdfd29yZChDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOLCBQQ0lfQ09NTUFORCwgJnN0YXR1cyk7CiAgIHN0YXR1cyB8PSBQQ0lfQ09NTUFORF9NQVNURVIgfCBQQ0lfQ09NTUFORF9JTyB8IFBDSV9DT01NQU5EX01FTU9SWTsKLSAgcGNpX3dyaXRlX2NvbmZpZ193b3JkKENGR19QQ0k5MDU0X0RFVl9GTiwgUENJX0NPTU1BTkQsIHN0YXR1cyk7CisgIHBjaV93cml0ZV9jb25maWdfd29yZChDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOLCBQQ0lfQ09NTUFORCwgc3RhdHVzKTsKIAogICAvKiBDaGVjayB0aGUgbGF0ZW5jeSB0aW1lciBmb3IgdmFsdWVzID49IDB4NjAuCiAgICAqLwotICBwY2lfcmVhZF9jb25maWdfYnl0ZShDRkdfUENJOTA1NF9ERVZfRk4sIFBDSV9MQVRFTkNZX1RJTUVSLCAmdGltZXIpOworICBwY2lfcmVhZF9jb25maWdfYnl0ZShDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOLCBQQ0lfTEFURU5DWV9USU1FUiwgJnRpbWVyKTsKICAgaWYgKHRpbWVyIDwgMHg2MCkKICAgICB7Ci0gICAgICBwY2lfd3JpdGVfY29uZmlnX2J5dGUoQ0ZHX1BDSTkwNTRfREVWX0ZOLCBQQ0lfTEFURU5DWV9USU1FUiwgMHg2MCk7CisgICAgICBwY2lfd3JpdGVfY29uZmlnX2J5dGUoQ09ORklHX1NZU19QQ0k5MDU0X0RFVl9GTiwgUENJX0xBVEVOQ1lfVElNRVIsIDB4NjApOwogICAgIH0KIAogICAvKiBTZXQgSS9PIGJhc2UgcmVnaXN0ZXIuCiAgICAqLwotICBwY2lfd3JpdGVfY29uZmlnX2R3b3JkKENGR19QQ0k5MDU0X0RFVl9GTiwgUENJX0JBU0VfQUREUkVTU18wLCBDRkdfUENJOTA1NF9JT0JBU0UpOwotICBwY2lfcmVhZF9jb25maWdfZHdvcmQoQ0ZHX1BDSTkwNTRfREVWX0ZOLCBQQ0lfQkFTRV9BRERSRVNTXzAsICZpb2Jhc2UpOworICBwY2lfd3JpdGVfY29uZmlnX2R3b3JkKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sIFBDSV9CQVNFX0FERFJFU1NfMCwgQ09ORklHX1NZU19QQ0k5MDU0X0lPQkFTRSk7CisgIHBjaV9yZWFkX2NvbmZpZ19kd29yZChDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOLCBQQ0lfQkFTRV9BRERSRVNTXzAsICZpb2Jhc2UpOwogCi0gIHBjaTkwNTRfaW9iYXNlID0gcGNpX21lbV90b19waHlzKENGR19QQ0k5MDU0X0RFVl9GTiwgaW9iYXNlICYgUENJX0JBU0VfQUREUkVTU19NRU1fTUFTSyk7CisgIHBjaTkwNTRfaW9iYXNlID0gcGNpX21lbV90b19waHlzKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sIGlvYmFzZSAmIFBDSV9CQVNFX0FERFJFU1NfTUVNX01BU0spOwogCiAgIGlmIChwY2k5MDU0X2lvYmFzZSA9PSAweGZmZmZmZmZmKQogICAgIHsKQEAgLTE0OSwxMyArMTQ5LDEzIEBACiBzdGF0aWMgc3RydWN0IHBjaV9jb25maWdfdGFibGUgcGNpOTA1NF9jb25maWdfdGFibGVbXSA9IHsKICNpZm5kZWYgQ09ORklHX1BDSV9QTlAKICAgeyBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELAotICAgIFBDSV9CVVMoQ0ZHX0VUSF9ERVZfRk4pLCBQQ0lfREVWKENGR19FVEhfREVWX0ZOKSwgUENJX0ZVTkMoQ0ZHX0VUSF9ERVZfRk4pLAotICAgIHBjaV9jZmdmdW5jX2NvbmZpZ19kZXZpY2UsIHsgQ0ZHX0VUSF9JT0JBU0UsCi0JCQkJIENGR19FVEhfSU9CQVNFLAorICAgIFBDSV9CVVMoQ09ORklHX1NZU19FVEhfREVWX0ZOKSwgUENJX0RFVihDT05GSUdfU1lTX0VUSF9ERVZfRk4pLCBQQ0lfRlVOQyhDT05GSUdfU1lTX0VUSF9ERVZfRk4pLAorICAgIHBjaV9jZmdmdW5jX2NvbmZpZ19kZXZpY2UsIHsgQ09ORklHX1NZU19FVEhfSU9CQVNFLAorCQkJCSBDT05GSUdfU1lTX0VUSF9JT0JBU0UsCiAJCQkJIFBDSV9DT01NQU5EX0lPIHwgUENJX0NPTU1BTkRfTUFTVEVSIH19LAogI2lmZGVmIENPTkZJR19EQVNBX1NJTQogICB7IFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsCi0gICAgUENJX0JVUyhDRkdfUENJOTA1NF9ERVZfRk4pLCBQQ0lfREVWKENGR19QQ0k5MDU0X0RFVl9GTiksIFBDSV9GVU5DKENGR19QQ0k5MDU0X0RFVl9GTiksCisgICAgUENJX0JVUyhDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOKSwgUENJX0RFVihDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOKSwgUENJX0ZVTkMoQ09ORklHX1NZU19QQ0k5MDU0X0RFVl9GTiksCiAgICAgcGNpX2Rhc2Ffc2ltX2NvbmZpZ19wY2k5MDU0IH0sCiAjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvZGF2aW5jaS9jb21tb24vbWlzYy5jIGIvYm9hcmQvZGF2aW5jaS9jb21tb24vbWlzYy5jCmluZGV4IDcxYTNiODcuLmJlNzA5YmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2RhdmluY2kvY29tbW9uL21pc2MuYworKysgYi9ib2FyZC9kYXZpbmNpL2NvbW1vbi9taXNjLmMKQEAgLTM5LDcgKzM5LDcgQEAKIAogc3RhdGljIGludCBkdl9nZXRfcGxsbV9vdXRwdXQodWludDMyX3QgcGxsbSkKIHsKLQlyZXR1cm4gKHBsbG0gKyAxKSAqIChDRkdfSFpfQ0xPQ0sgLyAxMDAwMDAwKTsKKwlyZXR1cm4gKHBsbG0gKyAxKSAqIChDT05GSUdfU1lTX0haX0NMT0NLIC8gMTAwMDAwMCk7CiB9CiAKIHZvaWQgZHZfZGlzcGxheV9jbGtfaW5mb3Modm9pZCkKQEAgLTU0LDkgKzU0LDkgQEAKICAqLwogaW50IGR2ZXZtX3JlYWRfbWFjX2FkZHJlc3ModWludDhfdCAqYnVmKQogewotI2lmZGVmIENGR19JMkNfRUVQUk9NX0FERFIKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgogCS8qIFJlYWQgTUFDIGFkZHJlc3MuICovCi0JaWYgKGkyY19yZWFkKENGR19JMkNfRUVQUk9NX0FERFIsIDB4N0YwMCwgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4sCisJaWYgKGkyY19yZWFkKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAweDdGMDAsIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiwKIAkJICAgICAodWludDhfdCAqKSAmYnVmWzBdLCA2KSkKIAkJZ290byBpMmNlcnI7CiAKQEAgLTY3LDkgKzY3LDkgQEAKIAlyZXR1cm4gMTsgLyogRm91bmQgKi8KIAogaTJjZXJyOgotCXByaW50ZigiUmVhZCBmcm9tIEVFUFJPTSBAIDB4JTAyeCBmYWlsZWRcbiIsIENGR19JMkNfRUVQUk9NX0FERFIpOworCXByaW50ZigiUmVhZCBmcm9tIEVFUFJPTSBAIDB4JTAyeCBmYWlsZWRcbiIsIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSKTsKIGVycjoKLSNlbmRpZiAvKiBDRkdfSTJDX0VFUFJPTV9BRERSICovCisjZW5kaWYgLyogQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgKi8KIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZGF2aW5jaS9jb21tb24vcHNjLmMgYi9ib2FyZC9kYXZpbmNpL2NvbW1vbi9wc2MuYwppbmRleCAwMGRjMDdjLi5kNTM4ZDUxIDEwMDY0NAotLS0gYS9ib2FyZC9kYXZpbmNpL2NvbW1vbi9wc2MuYworKysgYi9ib2FyZC9kYXZpbmNpL2NvbW1vbi9wc2MuYwpAQCAtODEsNyArODEsNyBAQAogfQogCiAvKiBJZiBEU1BMSU5LIGlzIHVzZWQsIHdlIGRvbid0IHdhbnQgVS1Cb290IHRvIHBvd2VyIG9uIHRoZSBEU1AuICovCi0jaWYgIWRlZmluZWQoQ0ZHX1VTRV9EU1BMSU5LKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfVVNFX0RTUExJTkspCiB2b2lkIGRzcF9vbih2b2lkKQogewogCWludCBpOwpAQCAtMTE0LDQgKzExNCw0IEBACiAKIAlSRUcoUFNDX0dCTENUTCkgJj0gfjB4MWY7CiB9Ci0jZW5kaWYgLyogQ0ZHX1VTRV9EU1BMSU5LICovCisjZW5kaWYgLyogQ09ORklHX1NZU19VU0VfRFNQTElOSyAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZGF2aW5jaS9kdmV2bS9kdmV2bS5jIGIvYm9hcmQvZGF2aW5jaS9kdmV2bS9kdmV2bS5jCmluZGV4IDE1MWY4YTkuLmFiZjYwYjMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2RhdmluY2kvZHZldm0vZHZldm0uYworKysgYi9ib2FyZC9kYXZpbmNpL2R2ZXZtL2R2ZXZtLmMKQEAgLTUzLDEwICs1MywxMCBAQAogCWxwc2Nfb24oREFWSU5DSV9MUFNDX1RJTUVSMSk7CiAJbHBzY19vbihEQVZJTkNJX0xQU0NfR1BJTyk7CiAKLSNpZiAhZGVmaW5lZChDRkdfVVNFX0RTUExJTkspCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19VU0VfRFNQTElOSykKIAkvKiBQb3dlcnVwIHRoZSBEU1AgKi8KIAlkc3Bfb24oKTsKLSNlbmRpZiAvKiBDRkdfVVNFX0RTUExJTksgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1VTRV9EU1BMSU5LICovCiAKIAkvKiBCcmluZ3VwIFVBUlQwIG91dCBvZiByZXNldCAqLwogCVJFRyhVQVJUMF9QV1JFTVVfTUdNVCkgPSAweDAwMDBlMDAzOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZGF2aW5jaS9zY2htb29naWUvc2NobW9vZ2llLmMgYi9ib2FyZC9kYXZpbmNpL3NjaG1vb2dpZS9zY2htb29naWUuYwppbmRleCA5OWZkMzI2Li4zNTA0YTJlIDEwMDY0NAotLS0gYS9ib2FyZC9kYXZpbmNpL3NjaG1vb2dpZS9zY2htb29naWUuYworKysgYi9ib2FyZC9kYXZpbmNpL3NjaG1vb2dpZS9zY2htb29naWUuYwpAQCAtNTMsMTAgKzUzLDEwIEBACiAJbHBzY19vbihEQVZJTkNJX0xQU0NfVElNRVIxKTsKIAlscHNjX29uKERBVklOQ0lfTFBTQ19HUElPKTsKIAotI2lmICFkZWZpbmVkKENGR19VU0VfRFNQTElOSykKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX1VTRV9EU1BMSU5LKQogCS8qIFBvd2VydXAgdGhlIERTUCAqLwogCWRzcF9vbigpOwotI2VuZGlmIC8qIENGR19VU0VfRFNQTElOSyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfVVNFX0RTUExJTksgKi8KIAogCS8qIEJyaW5ndXAgVUFSVDAgb3V0IG9mIHJlc2V0ICovCiAJUkVHKFVBUlQwX1BXUkVNVV9NR01UKSA9IDB4MDAwMGUwMDM7CkBAIC0xMjUsMTMgKzEyNSwxMyBAQAogCWR2X2Rpc3BsYXlfY2xrX2luZm9zKCk7CiAKIAkvKiBTZXQgc2VyaWFsIG51bWJlciBmcm9tIFVJRCBjaGlwICovCi0JaWYgKGkyY19yZWFkKENGR19VSURfQUREUiwgMCwgMSwgYnVmLCA4KSkgewotCQlwcmludGYoIlxuVUlEIEAgMHglMDJ4IHJlYWQgRkFJTEVEISEhXG4iLCBDRkdfVUlEX0FERFIpOworCWlmIChpMmNfcmVhZChDT05GSUdfU1lTX1VJRF9BRERSLCAwLCAxLCBidWYsIDgpKSB7CisJCXByaW50ZigiXG5VSUQgQCAweCUwMnggcmVhZCBGQUlMRUQhISFcbiIsIENPTkZJR19TWVNfVUlEX0FERFIpOwogCQlmb3JjZWVudigic2VyaWFsIyIsICJGQUlMRUQiKTsKIAl9IGVsc2UgewogCQlpZiAoYnVmWzBdICE9IDB4NzApIHsKIAkJCS8qIERldmljZSBGYW1pbHkgQ29kZSAqLwotCQkJcHJpbnRmKCJcblVJRCBAIDB4JTAyeCByZWFkIEZBSUxFRCEhIVxuIiwgQ0ZHX1VJRF9BRERSKTsKKwkJCXByaW50ZigiXG5VSUQgQCAweCUwMnggcmVhZCBGQUlMRUQhISFcbiIsIENPTkZJR19TWVNfVUlEX0FERFIpOwogCQkJZm9yY2VlbnYoInNlcmlhbCMiLCAiRkFJTEVEIik7CiAJCX0KIAl9CkBAIC0xNDEsNyArMTQxLDcgQEAKIAkJdG1wWzBdID0gY3JjX3RibFt0bXBbMF0gXiBidWZbaV1dOwogCiAJaWYgKHRtcFswXSAhPSAwKSB7Ci0JCXByaW50ZigiXG5VSUQgQCAweCUwMnggLSBCQUQgQ1JDISEhXG4iLCBDRkdfVUlEX0FERFIpOworCQlwcmludGYoIlxuVUlEIEAgMHglMDJ4IC0gQkFEIENSQyEhIVxuIiwgQ09ORklHX1NZU19VSURfQUREUik7CiAJCWZvcmNlZW52KCJzZXJpYWwjIiwgIkZBSUxFRCIpOwogCX0gZWxzZSB7CiAJCS8qIENSQyBPSywgc2V0ICJzZXJpYWwiIGVudiB2YXJpYWJsZSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZGF2aW5jaS9zZmZzZHIvc2Zmc2RyLmMgYi9ib2FyZC9kYXZpbmNpL3NmZnNkci9zZmZzZHIuYwppbmRleCA2ZTg3OGViLi45Mjk2ZDdiIDEwMDY0NAotLS0gYS9ib2FyZC9kYXZpbmNpL3NmZnNkci9zZmZzZHIuYworKysgYi9ib2FyZC9kYXZpbmNpL3NmZnNkci9zZmZzZHIuYwpAQCAtNjMsMTAgKzYzLDEwIEBACiAJbHBzY19vbihEQVZJTkNJX0xQU0NfVElNRVIxKTsKIAlscHNjX29uKERBVklOQ0lfTFBTQ19HUElPKTsKIAotI2lmICFkZWZpbmVkKENGR19VU0VfRFNQTElOSykKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX1VTRV9EU1BMSU5LKQogCS8qIFBvd2VydXAgdGhlIERTUCAqLwogCWRzcF9vbigpOwotI2VuZGlmIC8qIENGR19VU0VfRFNQTElOSyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfVVNFX0RTUExJTksgKi8KIAogCS8qIEJyaW5ndXAgVUFSVDAgb3V0IG9mIHJlc2V0ICovCiAJUkVHKFVBUlQwX1BXUkVNVV9NR01UKSA9IDB4MDAwMGUwMDM7CkBAIC05OSwzNSArOTksMzUgQEAKIAl1X2ludDMyX3QgdmFsdWUsIG1hY1syXSwgYWRkcmVzczsKIAogCS8qIFJlYWQgSW50ZWdyaXR5IGRhdGEgc3RydWN0dXJlIGNoZWNrd29yZC4gKi8KLQlpZiAoaTJjX3JlYWQoQ0ZHX0kyQ19FRVBST01fQUREUiwgSU5URUdSSVRZX0NIRUNLV09SRF9PRkZTRVQsCi0JCSAgICAgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4sICh1aW50OF90ICopICZ2YWx1ZSwgNCkpCisJaWYgKGkyY19yZWFkKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCBJTlRFR1JJVFlfQ0hFQ0tXT1JEX09GRlNFVCwKKwkJICAgICBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4sICh1aW50OF90ICopICZ2YWx1ZSwgNCkpCiAJCWdvdG8gZXJyOwogCWlmICh2YWx1ZSAhPSBJTlRFR1JJVFlfQ0hFQ0tXT1JEX1ZBTFVFKQogCQlyZXR1cm4gMDsKIAogCS8qIFJlYWQgU1lTQ0ZHIHN0cnVjdHVyZSBvZmZzZXQuICovCi0JaWYgKGkyY19yZWFkKENGR19JMkNfRUVQUk9NX0FERFIsIElOVEVHUklUWV9TWVNDRkdfT0ZGU0VULAotCQkgICAgIENGR19JMkNfRUVQUk9NX0FERFJfTEVOLCAodWludDhfdCAqKSAmdmFsdWUsIDQpKQorCWlmIChpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgSU5URUdSSVRZX1NZU0NGR19PRkZTRVQsCisJCSAgICAgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOLCAodWludDhfdCAqKSAmdmFsdWUsIDQpKQogCQlnb3RvIGVycjsKIAlhZGRyZXNzID0gMHg4MDAgKyAoaW50KSB2YWx1ZTsgLyogQWRkcmVzcyBvZiBTWVNDRkcgc3RydWN0dXJlLiAqLwogCiAJLyogUmVhZCBORVQgQ09ORklHIHN0cnVjdHVyZSBvZmZzZXQuICovCi0JaWYgKGkyY19yZWFkKENGR19JMkNfRUVQUk9NX0FERFIsIGFkZHJlc3MsCi0JCSAgICAgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4sICh1aW50OF90ICopICZ2YWx1ZSwgNCkpCisJaWYgKGkyY19yZWFkKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCBhZGRyZXNzLAorCQkgICAgIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiwgKHVpbnQ4X3QgKikgJnZhbHVlLCA0KSkKIAkJZ290byBlcnI7CiAJYWRkcmVzcyA9IDB4ODAwICsgKGludCkgdmFsdWU7IC8qIEFkZHJlc3Mgb2YgTkVUIENPTkZJRyBzdHJ1Y3R1cmUuICovCiAJYWRkcmVzcyArPSAxMjsgLyogQWRkcmVzcyBvZiBORVQgSU5URVJGQUNFIENPTkZJRyBzdHJ1Y3R1cmUuICovCiAKIAkvKiBSZWFkIE5FVCBJTlRFUkZBQ0UgQ09ORklHIDIgc3RydWN0dXJlIG9mZnNldC4gKi8KLQlpZiAoaTJjX3JlYWQoQ0ZHX0kyQ19FRVBST01fQUREUiwgYWRkcmVzcywKLQkJICAgICBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiwgKHVpbnQ4X3QgKikgJnZhbHVlLCA0KSkKKwlpZiAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIGFkZHJlc3MsCisJCSAgICAgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOLCAodWludDhfdCAqKSAmdmFsdWUsIDQpKQogCQlnb3RvIGVycjsKIAlhZGRyZXNzID0gMHg4MDAgKyAxNiArIChpbnQpIHZhbHVlOwkvKiBBZGRyZXNzIG9mIE5FVCBJTlRFUkZBQ0UKIAkJCQkJCSAqIENPTkZJRyAyIHN0cnVjdHVyZS4gKi8KIAogCS8qIFJlYWQgTUFDIGFkZHJlc3MuICovCi0JaWYgKGkyY19yZWFkKENGR19JMkNfRUVQUk9NX0FERFIsIGFkZHJlc3MsCi0JCSAgICAgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4sICh1aW50OF90ICopICZtYWNbMF0sIDgpKQorCWlmIChpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgYWRkcmVzcywKKwkJICAgICBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4sICh1aW50OF90ICopICZtYWNbMF0sIDgpKQogCQlnb3RvIGVycjsKIAogCWJ1ZlswXSA9IG1hY1swXSA+PiAyNDsKQEAgLTE0MCw3ICsxNDAsNyBAQAogCXJldHVybiAxOyAvKiBGb3VuZCAqLwogCiBlcnI6Ci0JcHJpbnRmKCJSZWFkIGZyb20gRUVQUk9NIEAgMHglMDJ4IGZhaWxlZFxuIiwgQ0ZHX0kyQ19FRVBST01fQUREUik7CisJcHJpbnRmKCJSZWFkIGZyb20gRUVQUk9NIEAgMHglMDJ4IGZhaWxlZFxuIiwgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIpOwogCXJldHVybiAwOwogfQogCkBAIC0xNTYsMTAgKzE1NiwxMCBAQAogCWR2X2Rpc3BsYXlfY2xrX2luZm9zKCk7CiAKIAkvKiBDb25maWd1cmUgSTJDIHN3aXRjaCAoUENBOTU0MykgdG8gZW5hYmxlIGNoYW5uZWwgMC4gKi8KLQlpMmNidWYgPSBDRkdfSTJDX1BDQTk1NDNfRU5BQkxFX0NIMDsKLQlpZiAoaTJjX3dyaXRlKENGR19JMkNfUENBOTU0M19BRERSLCAwLAotCQkgICAgICBDRkdfSTJDX1BDQTk1NDNfQUREUl9MRU4sICZpMmNidWYsIDEpKSB7Ci0JCXByaW50ZigiV3JpdGUgdG8gTVVYIEAgMHglMDJ4IGZhaWxlZFxuIiwgQ0ZHX0kyQ19QQ0E5NTQzX0FERFIpOworCWkyY2J1ZiA9IENPTkZJR19TWVNfSTJDX1BDQTk1NDNfRU5BQkxFX0NIMDsKKwlpZiAoaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX1BDQTk1NDNfQUREUiwgMCwKKwkJICAgICAgQ09ORklHX1NZU19JMkNfUENBOTU0M19BRERSX0xFTiwgJmkyY2J1ZiwgMSkpIHsKKwkJcHJpbnRmKCJXcml0ZSB0byBNVVggQCAweCUwMnggZmFpbGVkXG4iLCBDT05GSUdfU1lTX0kyQ19QQ0E5NTQzX0FERFIpOwogCQlyZXR1cm4gMTsKIAl9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2RhdmluY2kvc29uYXRhL3NvbmF0YS5jIGIvYm9hcmQvZGF2aW5jaS9zb25hdGEvc29uYXRhLmMKaW5kZXggYTZmZTgyNS4uNmRlOTM1NiAxMDA2NDQKLS0tIGEvYm9hcmQvZGF2aW5jaS9zb25hdGEvc29uYXRhLmMKKysrIGIvYm9hcmQvZGF2aW5jaS9zb25hdGEvc29uYXRhLmMKQEAgLTUyLDEwICs1MiwxMCBAQAogCWxwc2Nfb24oREFWSU5DSV9MUFNDX1RJTUVSMSk7CiAJbHBzY19vbihEQVZJTkNJX0xQU0NfR1BJTyk7CiAKLSNpZiAhZGVmaW5lZChDRkdfVVNFX0RTUExJTkspCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19VU0VfRFNQTElOSykKIAkvKiBQb3dlcnVwIHRoZSBEU1AgKi8KIAlkc3Bfb24oKTsKLSNlbmRpZiAvKiBDRkdfVVNFX0RTUExJTksgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1VTRV9EU1BMSU5LICovCiAKIAkvKiBCcmluZ3VwIFVBUlQwIG91dCBvZiByZXNldCAqLwogCVJFRyhVQVJUMF9QV1JFTVVfTUdNVCkgPSAweDAwMDBlMDAzOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZGJhdTF4MDAvZGJhdTF4MDAuYyBiL2JvYXJkL2RiYXUxeDAwL2RiYXUxeDAwLmMKaW5kZXggNjI5ZGMzMS4uNDI3NTZmNSAxMDA2NDQKLS0tIGEvYm9hcmQvZGJhdTF4MDAvZGJhdTF4MDAuYworKysgYi9ib2FyZC9kYmF1MXgwMC9kYmF1MXgwMC5jCkBAIC0xMDYsMTkgKzEwNiwxOSBAQAogCS8qIFdlIGRvbnQgbmVlZCB0aGVlc2UgdW5sZXNzIHdlIHJ1biB3aG9sZSBwY21jaWEgcGFja2FnZSAqLwogCXdyaXRlX29uZV90bGIoMjAsICAgICAgICAgICAgICAgICAvKiBpbmRleCAqLwogCQkgICAgICAweDAxZmZlMDAwLCAgICAgICAgIC8qIFBhZ2VtYXNrLCAxNiBNQiBwYWdlcyAqLwotCQkgICAgICBDRkdfUENNQ0lBX0lPX0JBU0UsIC8qIEhpICovCisJCSAgICAgIENPTkZJR19TWVNfUENNQ0lBX0lPX0JBU0UsIC8qIEhpICovCiAJCSAgICAgIDB4M0MwMDAwMTcsICAgICAgICAgLyogTG8wICovCiAJCSAgICAgIDB4M0MyMDAwMTcpOyAgICAgICAgLyogTG8xICovCiAKIAl3cml0ZV9vbmVfdGxiKDIxLCAgICAgICAgICAgICAgICAgICAvKiBpbmRleCAqLwogCQkgICAgICAweDAxZmZlMDAwLCAgICAgICAgICAgLyogUGFnZW1hc2ssIDE2IE1CIHBhZ2VzICovCi0JCSAgICAgIENGR19QQ01DSUFfQVRUUl9CQVNFLCAvKiBIaSAqLworCQkgICAgICBDT05GSUdfU1lTX1BDTUNJQV9BVFRSX0JBU0UsIC8qIEhpICovCiAJCSAgICAgIDB4M0QwMDAwMTcsICAgICAgICAgICAvKiBMbzAgKi8KIAkJICAgICAgMHgzRDIwMDAxNyk7ICAgICAgICAgIC8qIExvMSAqLwogI2VuZGlmCS8qIDAgKi8KIAl3cml0ZV9vbmVfdGxiKDIyLCAgICAgICAgICAgICAgICAgICAvKiBpbmRleCAqLwogCQkgICAgICAweDAxZmZlMDAwLCAgICAgICAgICAgLyogUGFnZW1hc2ssIDE2IE1CIHBhZ2VzICovCi0JCSAgICAgIENGR19QQ01DSUFfTUVNX0FERFIsICAvKiBIaSAqLworCQkgICAgICBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUiwgIC8qIEhpICovCiAJCSAgICAgIDB4M0UwMDAwMTcsICAgICAgICAgICAvKiBMbzAgKi8KIAkJICAgICAgMHgzRTIwMDAxNyk7ICAgICAgICAgIC8qIExvMSAqLwogI2VuZGlmCS8qIENPTkZJR19JREVfUENNQ0lBICovCmRpZmYgLS1naXQgYS9ib2FyZC9kYmF1MXgwMC9mbGFzaC5jIGIvYm9hcmQvZGJhdTF4MDAvZmxhc2guYwppbmRleCAzY2YyOWU4Li5hMmZlZDFkIDEwMDY0NAotLS0gYS9ib2FyZC9kYmF1MXgwMC9mbGFzaC5jCisrKyBiL2JvYXJkL2RiYXUxeDAwL2ZsYXNoLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogZmxhc2hfaW5pdCgpCmRpZmYgLS1naXQgYS9ib2FyZC9kYmF1MXgwMC9sb3dsZXZlbF9pbml0LlMgYi9ib2FyZC9kYmF1MXgwMC9sb3dsZXZlbF9pbml0LlMKaW5kZXggMTNlNmJmYy4uODQyZmI3NiAxMDA2NDQKLS0tIGEvYm9hcmQvZGJhdTF4MDAvbG93bGV2ZWxfaW5pdC5TCisrKyBiL2JvYXJkL2RiYXUxeDAwL2xvd2xldmVsX2luaXQuUwpAQCAtOCw4ICs4LDggQEAKICNkZWZpbmUgQVUxNTAwX1NZU19BRERSCQkweEIxOTAwMDAwCiAjZGVmaW5lIHN5c19lbmRpYW4JCTB4MDAzOAogI2RlZmluZSBDUDBfQ29uZmlnMAkJJDE2Ci0jZGVmaW5lIENQVV9TQ0FMRQkJKChDRkdfTUhaKSAvIDEyKSAvKiBDUFUgY2xvY2sgaXMgYSBtdWx0aXBsZSBvZiAxMiBNSHogKi8KLSNkZWZpbmUgTUVNXzFNUwkJCSgoQ0ZHX01IWikgKiAxMDAwKQorI2RlZmluZSBDUFVfU0NBTEUJCSgoQ09ORklHX1NZU19NSFopIC8gMTIpIC8qIENQVSBjbG9jayBpcyBhIG11bHRpcGxlIG9mIDEyIE1IeiAqLworI2RlZmluZSBNRU1fMU1TCQkJKChDT05GSUdfU1lTX01IWikgKiAxMDAwKQogCiAJLnRleHQKIAkuc2V0IG5vcmVvcmRlcgpkaWZmIC0tZ2l0IGEvYm9hcmQvZGVsdGEvZGVsdGEuYyBiL2JvYXJkL2RlbHRhL2RlbHRhLmMKaW5kZXggNmUyMjc3NC4uODc4NDE2ZiAxMDA2NDQKLS0tIGEvYm9hcmQvZGVsdGEvZGVsdGEuYworKysgYi9ib2FyZC9kZWx0YS9kZWx0YS5jCkBAIC0zMDQsOCArMzA0LDggQEAKIAlHUENSMCA9ICgxPDwxNyk7CS8qIGRyaXZlIEdQSU8xNyBsb3cgKi8KIAlHUFNSMCA9ICgxPDwxNyk7CS8qIGRyaXZlIEdQSU8xNyBoaWdoICovCiAKLSNpZiBDRkdfREE5MDMwX0VYVE9OX0RFTEFZCi0JdWRlbGF5KCh1bnNpZ25lZCBsb25nKSBDRkdfREE5MDMwX0VYVE9OX0RFTEFZKTsJLyogd2FpdCBmb3IgREE5MDMwICovCisjaWYgQ09ORklHX1NZU19EQTkwMzBfRVhUT05fREVMQVkKKwl1ZGVsYXkoKHVuc2lnbmVkIGxvbmcpIENPTkZJR19TWVNfREE5MDMwX0VYVE9OX0RFTEFZKTsJLyogd2FpdCBmb3IgREE5MDMwICovCiAjZW5kaWYKIAlHUENSMCA9ICgxPDwxNyk7CS8qIGRyaXZlIEdQSU8xNyBsb3cgKi8KIApkaWZmIC0tZ2l0IGEvYm9hcmQvZGVsdGEvbG93bGV2ZWxfaW5pdC5TIGIvYm9hcmQvZGVsdGEvbG93bGV2ZWxfaW5pdC5TCmluZGV4IGYwNTlkYjUuLmVlZjYzMTggMTAwNjQ0Ci0tLSBhL2JvYXJkL2RlbHRhL2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC9kZWx0YS9sb3dsZXZlbF9pbml0LlMKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDx2ZXJzaW9uLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KIAotRFJBTV9TSVpFOiAgLmxvbmcgICBDRkdfRFJBTV9TSVpFCitEUkFNX1NJWkU6ICAubG9uZyAgIENPTkZJR19TWVNfRFJBTV9TSVpFCiAKIC5tYWNybyB3YWl0IHRpbWUKIAlsZHIJCXIyLCA9T1NDUgpAQCAtMTA4LDEwICsxMDgsMTAgQEAKIAlvcnIJCXIxLCByMSwgI01EQ05GR19ETUNFTgogCXN0cgkJcjEsIFtyMF0KIAotI2lmbmRlZiBDRkdfU0tJUF9EUkFNX1NDUlVCCisjaWZuZGVmIENPTkZJR19TWVNfU0tJUF9EUkFNX1NDUlVCCiAJLyogc2NydWIvaW5pdCBTRFJBTSBpZiBlbmFibGVkL3ByZXNlbnQgKi8KLQlsZHIJcjgsID1DRkdfRFJBTV9CQVNFCS8qIGJhc2UgYWRkcmVzcyBvZiBTRFJBTSAoQ0ZHX0RSQU1fQkFTRSkgKi8KLQlsZHIJcjksID1DRkdfRFJBTV9TSVpFCS8qIHNpemUgb2YgbWVtb3J5IHRvIHNjcnViIChDRkdfRFJBTV9TSVpFKSAqLworCWxkcglyOCwgPUNPTkZJR19TWVNfRFJBTV9CQVNFCS8qIGJhc2UgYWRkcmVzcyBvZiBTRFJBTSAoQ09ORklHX1NZU19EUkFNX0JBU0UpICovCisJbGRyCXI5LCA9Q09ORklHX1NZU19EUkFNX1NJWkUJLyogc2l6ZSBvZiBtZW1vcnkgdG8gc2NydWIgKENPTkZJR19TWVNfRFJBTV9TSVpFKSAqLwogCW1vdglyMCwgIzAJCQkvKiBzY3J1YiB3aXRoIDB4MDAwMDowMDAwICovCiAJbW92CXIxLCAjMAogCW1vdglyMiwgIzAKQEAgLTEyNSw3ICsxMjUsNyBAQAogCXN0bWlhCXI4ISwge3IwLXI3fQogCWJlcQkxNWYKIAliCTEwYgotI2VuZGlmIC8qIENGR19TS0lQX0RSQU1fU0NSVUIgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1NLSVBfRFJBTV9TQ1JVQiAqLwogCiAxNToKIAkvKiBNYXNrIGFsbCBpbnRlcnJ1cHRzICovCmRpZmYgLS1naXQgYS9ib2FyZC9kZWx0YS9uYW5kLmMgYi9ib2FyZC9kZWx0YS9uYW5kLmMKaW5kZXggY2ViNzk4Yi4uMTQzODJmNSAxMDA2NDQKLS0tIGEvYm9hcmQvZGVsdGEvbmFuZC5jCisrKyBiL2JvYXJkL2RlbHRhL25hbmQuYwpAQCAtMjgsMTkgKzI4LDE5IEBACiAjaW5jbHVkZSA8bmFuZC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAKLSNpZmRlZiBDRkdfREZDX0RFQlVHMQorI2lmZGVmIENPTkZJR19TWVNfREZDX0RFQlVHMQogIyBkZWZpbmUgREZDX0RFQlVHMShmbXQsIGFyZ3MuLi4pIHByaW50ZihmbXQsICMjYXJncykKICNlbHNlCiAjIGRlZmluZSBERkNfREVCVUcxKGZtdCwgYXJncy4uLikKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0RGQ19ERUJVRzIKKyNpZmRlZiBDT05GSUdfU1lTX0RGQ19ERUJVRzIKICMgZGVmaW5lIERGQ19ERUJVRzIoZm10LCBhcmdzLi4uKSBwcmludGYoZm10LCAjI2FyZ3MpCiAjZWxzZQogIyBkZWZpbmUgREZDX0RFQlVHMihmbXQsIGFyZ3MuLi4pCiAjZW5kaWYKIAotI2lmZGVmIENGR19ERkNfREVCVUczCisjaWZkZWYgQ09ORklHX1NZU19ERkNfREVCVUczCiAjIGRlZmluZSBERkNfREVCVUczKGZtdCwgYXJncy4uLikgcHJpbnRmKGZtdCwgIyNhcmdzKQogI2Vsc2UKICMgZGVmaW5lIERGQ19ERUJVRzMoZm10LCBhcmdzLi4uKQpAQCAtMjA2LDcgKzIwNiw3IEBACiBzdGF0aWMgdm9pZCBkZmNfY2xlYXJfbmRkYih2b2lkKQogewogCU5EQ1IgJj0gfk5EQ1JfTkRfUlVOOwotCXdhaXRfdXMoQ0ZHX05BTkRfT1RIRVJfVE8pOworCXdhaXRfdXMoQ09ORklHX1NZU19OQU5EX09USEVSX1RPKTsKIH0KIAogLyogd2FpdF9ldmVudCB3aXRoIHRpbWVvdXQgKi8KQEAgLTIxNyw5ICsyMTcsOSBAQAogCWlmKCFldmVudCkKIAkJcmV0dXJuIDB4ZmYwMDAwMDA7CiAJZWxzZSBpZihldmVudCAmIChORFNSX0NTMF9DTUREIHwgTkRTUl9DUzBfQkJEKSkKLQkJdGltZW91dCA9IENGR19OQU5EX1BST0dfRVJBU0VfVE8gKiBPU0NSX0NMS19GUkVROworCQl0aW1lb3V0ID0gQ09ORklHX1NZU19OQU5EX1BST0dfRVJBU0VfVE8gKiBPU0NSX0NMS19GUkVROwogCWVsc2UKLQkJdGltZW91dCA9IENGR19OQU5EX09USEVSX1RPICogT1NDUl9DTEtfRlJFUTsKKwkJdGltZW91dCA9IENPTkZJR19TWVNfTkFORF9PVEhFUl9UTyAqIE9TQ1JfQ0xLX0ZSRVE7CiAKIAl3aGlsZSgxKSB7CiAJCW5kc3IgPSBORFNSOwpAQCAtMjQyLDcgKzI0Miw3IEBACiAJaW50IHJldHJ5ID0gMDsKIAl1bnNpZ25lZCBsb25nIHN0YXR1czsKIAotCXdoaWxlKHJldHJ5KysgPD0gQ0ZHX05BTkRfU0VORENNRF9SRVRSWSkgeworCXdoaWxlKHJldHJ5KysgPD0gQ09ORklHX1NZU19OQU5EX1NFTkRDTURfUkVUUlkpIHsKIAkJLyogQ2xlYXIgTkRTUiAqLwogCQlORFNSID0gMHhGRkY7CiAKQEAgLTQzMyw4ICs0MzMsOCBAQAogCS8qIHR1cm4gb24gdGhlIE5BTkQgQ29udHJvbGxlciBDbG9jayAoMTA0IE1IeiBAIEQwKSAqLwogCUNLRU5BIHw9IChDS0VOQV80X05BTkQgfCBDS0VOQV85X1NNQyk7CiAKLSN1bmRlZiBDRkdfVElNSU5HX1RJR0hUCi0jaWZuZGVmIENGR19USU1JTkdfVElHSFQKKyN1bmRlZiBDT05GSUdfU1lTX1RJTUlOR19USUdIVAorI2lmbmRlZiBDT05GSUdfU1lTX1RJTUlOR19USUdIVAogCXRDSCA9IE1JTigoKHVuc2lnbmVkIGxvbmcpIChOQU5EX1RJTUlOR190Q0ggKiBERkNfQ0xLX1BFUl9VUykgKyAxKSwKIAkJICBERkNfTUFYX3RDSCk7CiAJdENTID0gTUlOKCgodW5zaWduZWQgbG9uZykgKE5BTkRfVElNSU5HX3RDUyAqIERGQ19DTEtfUEVSX1VTKSArIDEpLApAQCAtNDczLDcgKzQ3Myw3IEBACiAJCSAgIERGQ19NQVhfdFdIUik7CiAJdEFSID0gTUlOKCgodW5zaWduZWQgbG9uZykgKE5BTkRfVElNSU5HX3RBUiAqIERGQ19DTEtfUEVSX1VTKSAtIDIpLAogCQkgIERGQ19NQVhfdEFSKTsKLSNlbmRpZiAvKiBDRkdfVElNSU5HX1RJR0hUICovCisjZW5kaWYgLyogQ09ORklHX1NZU19USU1JTkdfVElHSFQgKi8KIAogCiAJREZDX0RFQlVHMigidENIPSV1LCB0Q1M9JXUsIHRXSD0ldSwgdFdQPSV1LCB0Ukg9JXUsIHRSUD0ldSwgdFI9JXUsIHRXSFI9JXUsIHRBUj0ldS5cbiIsIHRDSCwgdENTLCB0V0gsIHRXUCwgdFJILCB0UlAsIHRSLCB0V0hSLCB0QVIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZG5wMTExMC9mbGFzaC5jIGIvYm9hcmQvZG5wMTExMC9mbGFzaC5jCmluZGV4IDg0YjgyMGEuLmM4MWFiYzUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2RucDExMTAvZmxhc2guYworKysgYi9ib2FyZC9kbnAxMTEwL2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvc3dhYi5oPgogCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKiBCb2FyZCBzdXBwb3J0IGZvciAxIG9yIDIgZmxhc2ggZGV2aWNlcyAqLwogI3VuZGVmIEZMQVNIX1BPUlRfV0lEVEgzMgpAQCAtNjUsNyArNjUsNyBAQAogICAgaW50IGk7CiAgICAgdWxvbmcgc2l6ZSA9IDA7CiAKLSAgICBmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKQorICAgIGZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKQogICAgIHsKIAlzd2l0Y2ggKGkpCiAJewpAQCAtODMsOCArODMsOCBAQAogICAgIC8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogICAgICAqLwogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICBDRkdfRkxBU0hfQkFTRSwKLQkJICBDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuICAtIDEsCisJCSAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkgIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuICAtIDEsCiAJCSAgJmZsYXNoX2luZm9bMF0pOwogCiAgICAgZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULApAQCAtMTk0LDEwICsxOTQsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKICAgICB9CiAKIAlhZGRyWzBdID0gKEZQVykweDAwRkYwMEZGOyAgICAgIC8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0yNjcsNyArMjY3LDcgQEAKIAkJCSphZGRyID0gKEZQVykweDAwRDAwMEQwOwkvKiBlcmFzZSBjb25maXJtICovCiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKEZQVykweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IChGUFcpMHgwMEIwMDBCMDsgLyogc3VzcGVuZCBlcmFzZQkgICovCiAJCQkJCSphZGRyID0gKEZQVykweDAwRkYwMEZGOyAvKiByZXNldCB0byByZWFkIG1vZGUgKi8KQEAgLTQwMiw3ICs0MDIsNyBAQAogCiAJLyogd2FpdCB3aGlsZSBwb2xsaW5nIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKTB4MDA4MDAwODApICE9IChGUFcpMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAoRlBXKTB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9lWGFsaW9uL2VYYWxpb24uYyBiL2JvYXJkL2VYYWxpb24vZVhhbGlvbi5jCmluZGV4IGM1ZGZmMjQuLjM0NTM4YzQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VYYWxpb24vZVhhbGlvbi5jCisrKyBiL2JvYXJkL2VYYWxpb24vZVhhbGlvbi5jCkBAIC01NiwxMiArNTYsMTIgQEAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKIAlpbnQgaSwgY250OwotCXZvbGF0aWxlIHVjaGFyICpiYXNlID0gQ0ZHX1NEUkFNX0JBU0U7CisJdm9sYXRpbGUgdWNoYXIgKmJhc2UgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAJdm9sYXRpbGUgdWxvbmcgKmFkZHI7CiAJdWxvbmcgc2F2ZVszMl07CiAJdWxvbmcgdmFsLCByZXQgPSAwOwogCi0JZm9yIChpID0gMCwgY250ID0gKENGR19NQVhfUkFNX1NJWkUgLyBzaXplb2YgKGxvbmcpKSA+PiAxOyBjbnQgPiAwOworCWZvciAoaSA9IDAsIGNudCA9IChDT05GSUdfU1lTX01BWF9SQU1fU0laRSAvIHNpemVvZiAobG9uZykpID4+IDE7IGNudCA+IDA7CiAJICAgICBjbnQgPj49IDEpIHsKIAkJYWRkciA9ICh2b2xhdGlsZSB1bG9uZyAqKSBiYXNlICsgY250OwogCQlzYXZlW2krK10gPSAqYWRkcjsKQEAgLTc3LDcgKzc3LDcgQEAKIAkJZ290byBEb25lOwogCX0KIAotCWZvciAoY250ID0gMTsgY250IDw9IENGR19NQVhfUkFNX1NJWkUgLyBzaXplb2YgKGxvbmcpOyBjbnQgPDw9IDEpIHsKKwlmb3IgKGNudCA9IDE7IGNudCA8PSBDT05GSUdfU1lTX01BWF9SQU1fU0laRSAvIHNpemVvZiAobG9uZyk7IGNudCA8PD0gMSkgewogCQlhZGRyID0gKHZvbGF0aWxlIHVsb25nICopIGJhc2UgKyBjbnQ7CiAJCXZhbCA9ICphZGRyOwogCQkqYWRkciA9IHNhdmVbLS1pXTsKQEAgLTEwMCw3ICsxMDAsNyBAQAogCQl9CiAJfQogCi0JcmV0ID0gQ0ZHX01BWF9SQU1fU0laRTsKKwlyZXQgPSBDT05GSUdfU1lTX01BWF9SQU1fU0laRTsKICAgICAgIERvbmU6CiAJcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2VhcnRobGNkL2ZhdnItMzItZXpraXQvZmxhc2guYyBiL2JvYXJkL2VhcnRobGNkL2ZhdnItMzItZXpraXQvZmxhc2guYwppbmRleCAyYWE5NDE1Li41ZjczZmYwIDEwMDY0NAotLS0gYS9ib2FyZC9lYXJ0aGxjZC9mYXZyLTMyLWV6a2l0L2ZsYXNoLmMKKysrIGIvYm9hcmQvZWFydGhsY2QvZmF2ci0zMi1lemtpdC9mbGFzaC5jCkBAIC01MywxNyArNTMsMTcgQEAKIAl1bnNpZ25lZCBsb25nIGFkZHI7CiAJdW5zaWduZWQgaW50IGk7CiAKLQlmbGFzaF9pbmZvWzBdLnNpemUgPSBDRkdfRkxBU0hfU0laRTsKKwlmbGFzaF9pbmZvWzBdLnNpemUgPSBDT05GSUdfU1lTX0ZMQVNIX1NJWkU7CiAJZmxhc2hfaW5mb1swXS5zZWN0b3JfY291bnQgPSAxMzU7CiAKLQlmbGFzaF9pZGVudGlmeSh1bmNhY2hlZCgodm9pZCAqKUNGR19GTEFTSF9CQVNFKSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2lkZW50aWZ5KHVuY2FjaGVkKCh2b2lkICopQ09ORklHX1NZU19GTEFTSF9CQVNFKSwgJmZsYXNoX2luZm9bMF0pOwogCiAJZm9yIChpID0gMCwgYWRkciA9IDA7IGkgPCA4OyBpKyssIGFkZHIgKz0gMHgyMDAwKQogCQlmbGFzaF9pbmZvWzBdLnN0YXJ0W2ldID0gYWRkcjsKIAlmb3IgKDsgaSA8IGZsYXNoX2luZm9bMF0uc2VjdG9yX2NvdW50OyBpKyssIGFkZHIgKz0gMHgxMDAwMCkKIAkJZmxhc2hfaW5mb1swXS5zdGFydFtpXSA9IGFkZHI7CiAKLQlyZXR1cm4gQ0ZHX0ZMQVNIX1NJWkU7CisJcmV0dXJuIENPTkZJR19TWVNfRkxBU0hfU0laRTsKIH0KIAogdm9pZCBmbGFzaF9wcmludF9pbmZvKGZsYXNoX2luZm9fdCAqaW5mbykKZGlmZiAtLWdpdCBhL2JvYXJkL2VsdGVjL2JhYjd4eC9hc21faW5pdC5TIGIvYm9hcmQvZWx0ZWMvYmFiN3h4L2FzbV9pbml0LlMKaW5kZXggMmE5YjMzZS4uYTg1ZmI4YiAxMDA2NDQKLS0tIGEvYm9hcmQvZWx0ZWMvYmFiN3h4L2FzbV9pbml0LlMKKysrIGIvYm9hcmQvZWx0ZWMvYmFiN3h4L2FzbV9pbml0LlMKQEAgLTEyNSw3ICsxMjUsNyBAQAogICAgIGxpcyAgICAgcjIsIDB4ZmVlMAogICAgIG9yaSAgICAgcjIsIHIyLCAweGNmYwogCi0jaWZkZWYgQ0ZHX0FERFJFU1NfTUFQX0EKKyNpZmRlZiBDT05GSUdfU1lTX0FERFJFU1NfTUFQX0EKIC8qCiAgKiBTd2l0Y2ggdG8gYWRkcmVzcyBtYXAgQSBpZiBuZWNlc3NhcnkuCiAgKi8KQEAgLTgzNSwxNyArODM1LDE3IEBACiAvKgogICogR2V0IGJhc2UgYWRkciBvZiBJU0EgSS9PIHNwYWNlCiAgKi8KLSAgICBsaXMgICAgIHI2LCBDRkdfSVNBX0lPQGgKLSAgICBvcmkgICAgIHI2LCByNiwgQ0ZHX0lTQV9JT0BsCisgICAgbGlzICAgICByNiwgQ09ORklHX1NZU19JU0FfSU9AaAorICAgIG9yaSAgICAgcjYsIHI2LCBDT05GSUdfU1lTX0lTQV9JT0BsCiAKIC8qCiAgKiBTZXQgb2Zmc2V0IHRvIGJhc2UgYWRkcmVzcyBmb3IgY29uZmlnIHJlZ2lzdGVycy4KICAqLwotI2lmIGRlZmluZWQoQ0ZHX05TODczMDhfQkFERFJfMHgpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX05TODczMDhfQkFERFJfMHgpCiAgICAgYWRkaSAgICByNCwgcjAsIDB4MDI3OQotI2VsaWYgZGVmaW5lZChDRkdfTlM4NzMwOF9CQUREUl8xMCkKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19OUzg3MzA4X0JBRERSXzEwKQogICAgIGFkZGkgICAgcjQsIHIwLCAweDAxNUMKLSNlbGlmIGRlZmluZWQoQ0ZHX05TODczMDhfQkFERFJfMTEpCisjZWxpZiBkZWZpbmVkKENPTkZJR19TWVNfTlM4NzMwOF9CQUREUl8xMSkKICAgICBhZGRpICAgIHI0LCByMCwgMHgwMDJFCiAjZW5kaWYKICAgICBhZGQgICAgIHI2LCByNiwgcjQgICAgICAgICAgLyogYWRkIG9mZnNldCB0byBiYXNlICovCkBAIC04NjcsNyArODY3LDcgQEAKICAgICBhZGRpICAgIHI1LCByMCwgU0lPX0xVTkVOQUJMRQogICAgIGJsICAgICAgLnNpb19idwogCi0gICAgbGlzICAgICByOCwgQ0ZHX0lTQV9JT0BoCisgICAgbGlzICAgICByOCwgQ09ORklHX1NZU19JU0FfSU9AaAogICAgIG9yaSAgICAgcjgsIHI4LCAweDA0NjAKICAgICBsaSAgICAgIHI5LCAweDAzCiAgICAgc3RiICAgICByOSwgMChyOCkgICAgICAgICAgICAgICAvKiBzZWxlY3QgUE1DMiByZWdpc3RlciAqLwpAQCAtODk4LDcgKzg5OCw3IEBACiAvKgogICogSW5pdCBDT00xIGZvciBwb2xsZWQgb3V0cHV0CiAgKi8KLSAgICBsaXMgICAgIHI4LCBDRkdfSVNBX0lPQGgKKyAgICBsaXMgICAgIHI4LCBDT05GSUdfU1lTX0lTQV9JT0BoCiAgICAgb3JpICAgICByOCwgcjgsIDB4MDNmOAogICAgIGxpICAgICAgcjksIDB4MDAKICAgICBzdGIgICAgIHI5LCAxKHI4KSAgICAgICAgICAgLyogaW50IGRpc2FibGVkICovCkBAIC05NzIsOCArOTcyLDggQEAKIC8qCiAgKiBHZXQgYmFzZSBhZGRyIG9mIElTQSBJL08gc3BhY2UKICAqLwotICAgIGxpcyAgICAgcjMsIENGR19JU0FfSU9AaAotICAgIG9yaSAgICAgcjMsIHIzLCBDRkdfSVNBX0lPQGwKKyAgICBsaXMgICAgIHIzLCBDT05GSUdfU1lTX0lTQV9JT0BoCisgICAgb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfSVNBX0lPQGwKIAogICAgIGFkZGkgICAgcjMsIHIzLCAweDAxNUMgICAgICAvKiBhZGp1c3QgdG8gc3VwZXJJL08gODczMDggYmFzZSAqLwogICAgIG9yICAgICAgcjYsIHIzLCByMyAgICAgICAgICAvKiBtYWtlIGEgY29weSAqLwpAQCAtMTA3Niw3ICsxMDc2LDcgQEAKICAqLwogLmdsb2JsIFByaW50ZgogUHJpbnRmOgotICAgIGxpcyAgICAgcjEwLCBDRkdfSVNBX0lPQGggICAvKiBDT00xIHBvcnQgKi8KKyAgICBsaXMgICAgIHIxMCwgQ09ORklHX1NZU19JU0FfSU9AaCAgIC8qIENPTTEgcG9ydCAqLwogICAgIG9yaSAgICAgcjEwLCByMTAsIDB4MDNmOAogCiBXYWl0Q2hyOgpAQCAtMTEwNyw3ICsxMTA3LDcgQEAKIE91dEhleDoKICAgICBsaSAgICAgIHI5LCAyOCAgICAgICAgICAgICAgLyogc2hpZnQgcmVnIGZvciA4IGRpZ2l0cyAqLwogT0hzdGFydDoKLSAgICBsaXMgICAgIHIxMCwgQ0ZHX0lTQV9JT0BoICAgLyogQ09NMSBwb3J0ICovCisgICAgbGlzICAgICByMTAsIENPTkZJR19TWVNfSVNBX0lPQGggICAvKiBDT00xIHBvcnQgKi8KICAgICBvcmkgICAgIHIxMCwgcjEwLCAweDAzZjgKIE91dERpZzoKICAgICBsYnogICAgIHIwLCA1KHIxMCkgICAgICAgICAgLyogcmVhZCBsaW5rIHN0YXR1cyAqLwpAQCAtMTE0OSw3ICsxMTQ5LDcgQEAKICAgICBtdWxsdyAgIHIxMCwgcjAsIHI2CiAgICAgc3ViZiAgICByNywgcjEwLCByMwogCi0gICAgbGlzICAgICByMTAsIENGR19JU0FfSU9AaCAgIC8qIENPTTEgcG9ydCAqLworICAgIGxpcyAgICAgcjEwLCBDT05GSUdfU1lTX0lTQV9JT0BoICAgLyogQ09NMSBwb3J0ICovCiAgICAgb3JpICAgICByMTAsIHIxMCwgMHgwM2Y4CiAKICAgICBvci4gICAgIHI3LCByNywgcjcKQEAgLTExOTgsNyArMTE5OCw3IEBACiAgKi8KIC5nbG9ibCAgICBPdXRDaHIKIE91dENocjoKLSAgICBsaXMgICAgIHIxMCwgQ0ZHX0lTQV9JT0BoICAgLyogQ09NMSBwb3J0ICovCisgICAgbGlzICAgICByMTAsIENPTkZJR19TWVNfSVNBX0lPQGggICAvKiBDT00xIHBvcnQgKi8KICAgICBvcmkgICAgIHIxMCwgcjEwLCAweDAzZjgKIAogT3V0Q2hyMToKQEAgLTEyMTYsNyArMTIxNiw3IEBACiBzcGRSZWFkOgogICAgIG1mc3ByICAgcjI2LCA4ICAgICAgICAgICAgICAvKiBzYXZlIGxpbmsgcmVnaXN0ZXIgKi8KIAotICAgIGxpcyAgICAgcjMwLCBDRkdfSVNBX0lPQGgKKyAgICBsaXMgICAgIHIzMCwgQ09ORklHX1NZU19JU0FfSU9AaAogICAgIG9yaSAgICAgcjMwLCByMzAsIDB4MjIwICAgICAvKiBHUElPIFBvcnQgMSAqLwogICAgIGxpICAgICAgcjcsIDB4MDAKICAgICBsaSAgICAgIHI4LCAweDEwMApkaWZmIC0tZ2l0IGEvYm9hcmQvZWx0ZWMvYmFiN3h4L2JhYjd4eC5jIGIvYm9hcmQvZWx0ZWMvYmFiN3h4L2JhYjd4eC5jCmluZGV4IDhjNTYxMTYuLjFmNzhmOGQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VsdGVjL2JhYjd4eC9iYWI3eHguYworKysgYi9ib2FyZC9lbHRlYy9iYWI3eHgvYmFiN3h4LmMKQEAgLTQ0LDcgKzQ0LDcgQEAKIAkgKiBUaGUgR1BJTyBQb3J0IDEgb24gQkFCN3h4IHJlZmxlY3RzIHRoZSBidXMgc3BlZWQuCiAJICovCiAJdm9sYXRpbGUgc3RydWN0IEdQSU8gKmdwaW8gPQotCQkoc3RydWN0IEdQSU8gKikgKENGR19JU0FfSU8gKyBDRkdfTlM4NzMwOF9HUElPX0JBU0UpOworCQkoc3RydWN0IEdQSU8gKikgKENPTkZJR19TWVNfSVNBX0lPICsgQ09ORklHX1NZU19OUzg3MzA4X0dQSU9fQkFTRSk7CiAKIAl1bnNpZ25lZCBjaGFyIGRhdGEgPSBncGlvLT5kdGExOwogCkBAIC04Nyw3ICs4Nyw3IEBACiAKIGludCBjaGVja2JvYXJkICh2b2lkKQogewotI2lmZGVmIENGR19BRERSRVNTX01BUF9BCisjaWZkZWYgQ09ORklHX1NZU19BRERSRVNTX01BUF9BCiAJcHV0cyAoIkJvYXJkOiBFTFRFQyBCQUI3eHggUFJlUFxuIik7CiAjZWxzZQogCXB1dHMgKCJCb2FyZDogRUxURUMgQkFCN3h4IENIUlBcbiIpOwpAQCAtMTI2LDE2ICsxMjYsMTYgQEAKIAogCXJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgaSwgbXNhcjEsIG1lYXIxLCBtZW1TaXplOwogCi0jaWYgZGVmaW5lZChDRkdfTUVNVEVTVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTUVNVEVTVCkKIAlyZWdpc3RlciB1bnNpZ25lZCBsb25nIHJlZzsKIAogCXByaW50ZiAoIlRlc3RpbmcgRFJBTVxuIik7CiAKIAkvKiB3cml0ZSBlYWNoIG1lbSBhZGRyIHdpdGggaXQncyBhZGRyZXNzICovCi0JZm9yIChyZWcgPSBDRkdfTUVNVEVTVF9TVEFSVDsgcmVnIDwgQ0ZHX01FTVRFU1RfRU5EOyByZWcgKz0gNCkKKwlmb3IgKHJlZyA9IENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsgcmVnIDwgQ09ORklHX1NZU19NRU1URVNUX0VORDsgcmVnICs9IDQpCiAJCSpyZWcgPSByZWc7CiAKLQlmb3IgKHJlZyA9IENGR19NRU1URVNUX1NUQVJUOyByZWcgPCBDRkdfTUVNVEVTVF9FTkQ7IHJlZyArPSA0KSB7CisJZm9yIChyZWcgPSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7IHJlZyA8IENPTkZJR19TWVNfTUVNVEVTVF9FTkQ7IHJlZyArPSA0KSB7CiAJCWlmICgqcmVnICE9IHJlZykKIAkJCXJldHVybiAtMTsKIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9lbHRlYy9iYWI3eHgvZmxhc2guYyBiL2JvYXJkL2VsdGVjL2JhYjd4eC9mbGFzaC5jCmluZGV4IDQ0MmRkMDAuLjIxYWUwOTggMTAwNjQ0Ci0tLSBhL2JvYXJkL2VsdGVjL2JhYjd4eC9mbGFzaC5jCisrKyBiL2JvYXJkL2VsdGVjL2JhYjd4eC9mbGFzaC5jCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9wY2lfaW8uaD4KIAotZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKIHVsb25nIGZsYXNoX2dldF9zaXplICh2dV9sb25nICphZGRyLCBmbGFzaF9pbmZvX3QgKmluZm8pOwogc3RhdGljIGludCB3cml0ZV93b3JkIChmbGFzaF9pbmZvX3QgKmluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpOwpAQCAtNTUsNyArNTUsNyBAQAogICAgIGludCBpOwogCiAgICAgLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotICAgIGZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkKKyAgICBmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKQogICAgIHsKIAlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKICAgICB9CkBAIC05Niw4ICs5Niw4IEBACiAgICAgaWYgKHNpemUyID09IDQqMTAyNCoxMDI0KQogICAgIHsKIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCUNGR19GTEFTSF9CQVNFLAotCQlDRkdfRkxBU0hfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkmZmxhc2hfaW5mb1sxXSk7CiAgICAgfQogCkBAIC0zNzAsNyArMzcwLDcgQEAKICAgICBsYXN0ICA9IHN0YXJ0OwogICAgIGFkZHIgPSAoRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogICAgIHdoaWxlICgoYWRkclswXSAmIChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0gKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSB7Ci0JaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCSAgICBwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkgICAgcmV0dXJuIDE7CiAJfQpAQCAtNTAwLDcgKzUwMCw3IEBACiAJICAgIHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAkgICAgd2hpbGUgKChkZXN0MltpXSAmIChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0KIAkJICAgKGRhdGEyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSkgewotCSAgICAgIGlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkgICAgICBpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQlyZXR1cm4gKDEpOwogCSAgICAgIH0KIAkgICAgfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZWx0ZWMvYmFiN3h4L2wyY2FjaGUuYyBiL2JvYXJkL2VsdGVjL2JhYjd4eC9sMmNhY2hlLmMKaW5kZXggMWU3NTM3Ny4uNzg3NzA0ZiAxMDA2NDQKLS0tIGEvYm9hcmQvZWx0ZWMvYmFiN3h4L2wyY2FjaGUuYworKysgYi9ib2FyZC9lbHRlYy9iYWI3eHgvbDJjYWNoZS5jCkBAIC0yMyw3ICsyMyw3IEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KIAotI2lmIGRlZmluZWQoQ0ZHX0wyX0JBQjd4eCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTDJfQkFCN3h4KQogCiAjaW5jbHVkZSA8cGNpLmg+CiAjaW5jbHVkZSA8bXBjMTA2Lmg+CkBAIC03Nyw3ICs3Nyw3IEBACiAJcGNpX3dyaXRlX2NvbmZpZ19kd29yZCAoZGV2YnVzZm4sIFBDSV9QSUNSMiwgcmVnMzIpOwogCiAJLyogY2FjaGUgc2l6ZSAqLwotCWlmICgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikgKENGR19JU0FfSU8gKyAweDIyMCkgJiAweDA0KQorCWlmICgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikgKENPTkZJR19TWVNfSVNBX0lPICsgMHgyMjApICYgMHgwNCkKIAl7CiAJICAgIC8qIGNhY2hlIHNpemUgaXMgNTEyIEtCICovCiAJICAgIHBpY3IyQ2FjaGVTaXplID0gUElDUjJfTDJfU0laRV81MTJLOwpAQCAtMTU2LDQgKzE1Niw0IEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNlbmRpZiAvKiAoQ0ZHX0wyX0JBQjd4eCkgKi8KKyNlbmRpZiAvKiAoQ09ORklHX1NZU19MMl9CQUI3eHgpICovCmRpZmYgLS1naXQgYS9ib2FyZC9lbHRlYy9iYWI3eHgvbWlzYy5jIGIvYm9hcmQvZWx0ZWMvYmFiN3h4L21pc2MuYwppbmRleCA2YTI0ODA3Li4xYzk0YTc2IDEwMDY0NAotLS0gYS9ib2FyZC9lbHRlYy9iYWI3eHgvbWlzYy5jCisrKyBiL2JvYXJkL2VsdGVjL2JhYjd4eC9taXNjLmMKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJzcm9tLmgiCiAKIC8qIGltcG9ydHMgICovCi1leHRlcm4gY2hhciBjb25zb2xlX2J1ZmZlcltDRkdfQ0JTSVpFXTsKK2V4dGVybiBjaGFyIGNvbnNvbGVfYnVmZmVyW0NPTkZJR19TWVNfQ0JTSVpFXTsKIGV4dGVybiBpbnQgbDJfY2FjaGVfZW5hYmxlIChpbnQgbDJjb250cm9sKTsKIGV4dGVybiB2b2lkICpudnJhbV9yZWFkICh2b2lkICpkZXN0LCBjb25zdCBzaG9ydCBzcmMsIHNpemVfdCBjb3VudCk7CiBleHRlcm4gdm9pZCBudnJhbV93cml0ZSAoc2hvcnQgZGVzdCwgY29uc3Qgdm9pZCAqc3JjLCBzaXplX3QgY291bnQpOwpAQCAtMTM0LDcgKzEzNCw3IEBACiAJCVNFQ09ORF9ERVZJQ0UsIEZJUlNUX0JMT0NLKTsKIAogICAgIC8qIHJlYWQgb3V0IGN1cnJlbnQgbnZyYW0gc2hhZG93IGltYWdlICovCi0gICAgbnZyYW1fcmVhZCAoYnVmLCBDRkdfTlZfU1JPTV9DT1BZX0FERFIsIENGR19TUk9NX1NJWkUpOworICAgIG52cmFtX3JlYWQgKGJ1ZiwgQ09ORklHX1NZU19OVl9TUk9NX0NPUFlfQUREUiwgQ09ORklHX1NZU19TUk9NX1NJWkUpOwogCiAgICAgaWYgKHN0cmNtcCAoZWVyZXYubWFnaWMsICJFTFRFQyIpICE9IDApCiAgICAgewpAQCAtMTYyLDggKzE2Miw4IEBACiAJY29weU52ICAgPSAxOyAgLyogY29weSB0byBudnJhbSAqLwogICAgIH0KIAotICAgIGlmICgoY29weU52ID09IDApICYmICAgKGVsX3Nyb21fY2hlY2tzdW0oKHVfY2hhciopJmVlcmV2LCBDRkdfU1JPTV9TSVpFKSAhPQotCQllbF9zcm9tX2NoZWNrc3VtKCh1X2NoYXIqKWJ1ZiwgQ0ZHX1NST01fU0laRSkpKQorICAgIGlmICgoY29weU52ID09IDApICYmICAgKGVsX3Nyb21fY2hlY2tzdW0oKHVfY2hhciopJmVlcmV2LCBDT05GSUdfU1lTX1NST01fU0laRSkgIT0KKwkJZWxfc3JvbV9jaGVja3N1bSgodV9jaGFyKilidWYsIENPTkZJR19TWVNfU1JPTV9TSVpFKSkpCiAgICAgewogCXByaW50ZiAoIkludmFsaWQgcmV2aXNpb24gaW5mbyBjb3B5IGluIG52cmFtICFcbiIpOwogCXByaW50ZiAoIlByZXNzIGtleTpcbiAgPGM+IHRvIGNvcHkgY3VycmVudCByZXZpc2lvbiBpbmZvIHRvIG52cmFtLlxuIik7CkBAIC0zMDQsMTMgKzMwNCwxMyBAQAogCSAgICBwcmludGYoIk9LXG5cbiIpOwogCiAJLyogd3JpdGUgbmV3IHZhbHVlcyBhcyBzaGFkb3cgaW1hZ2UgdG8gbnZyYW0gKi8KLQludnJhbV93cml0ZSAoQ0ZHX05WX1NST01fQ09QWV9BRERSLCAodm9pZCAqKSZlZXJldiwgQ0ZHX1NST01fU0laRSk7CisJbnZyYW1fd3JpdGUgKENPTkZJR19TWVNfTlZfU1JPTV9DT1BZX0FERFIsICh2b2lkICopJmVlcmV2LCBDT05GSUdfU1lTX1NST01fU0laRSk7CiAKICAgICB9IC8qaWYgKGluaXRTcm9tKSAqLwogCiAgICAgLyogY29weSBjdXJyZW50IHZhbHVlcyBhcyBzaGFkb3cgaW1hZ2UgdG8gbnZyYW0gKi8KICAgICBpZiAoaW5pdFNyb20gPT0gMCAmJiBjb3B5TnYgPT0gMSkKLQludnJhbV93cml0ZSAoQ0ZHX05WX1NST01fQ09QWV9BRERSLCAodm9pZCAqKSZlZXJldiwgQ0ZHX1NST01fU0laRSk7CisJbnZyYW1fd3JpdGUgKENPTkZJR19TWVNfTlZfU1JPTV9DT1BZX0FERFIsICh2b2lkICopJmVlcmV2LCBDT05GSUdfU1lTX1NST01fU0laRSk7CiAKICAgICAvKiB1cGRhdGUgZW52aXJvbm1lbnQgKi8KICAgICBzcHJpbnRmIChidWYsICIlMDJ4OiUwMng6JTAyeDolMDJ4OiUwMng6JTAyeCIsCkBAIC0zMzMsNyArMzMzLDcgQEAKICAgIC8qCiAgICAgKiBMMiBjYWNoZSBjb25maWd1cmF0aW9uCiAgICAgKi8KLSNpZiBkZWZpbmVkKENGR19MMl9CQUI3eHgpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0wyX0JBQjd4eCkKICAgICBwdHIgPSBnZXRlbnYoImwyY2FjaGUiKTsKICAgICBpZiAoKnB0ciA9PSAnMCcpCiAgICAgewpkaWZmIC0tZ2l0IGEvYm9hcmQvZWx0ZWMvYmFiN3h4L3BjaS5jIGIvYm9hcmQvZWx0ZWMvYmFiN3h4L3BjaS5jCmluZGV4IGVkYmQzZGQuLjQ2ZTVhOGIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VsdGVjL2JhYjd4eC9wY2kuYworKysgYi9ib2FyZC9lbHRlYy9iYWI3eHgvcGNpLmMKQEAgLTQzLDQxICs0Myw0MSBAQAogICAgIGhvc2UtPmxhc3RfYnVzbm8gPSAweGZmOwogCiAgICAgcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JQ0ZHX1BDSV9NRU1PUllfQlVTLAotCUNGR19QQ0lfTUVNT1JZX1BIWVMsCisJQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwlDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKICAgICAvKgogICAgICogQXR0ZW50aW9uOiBwY2lfaG9zZV9waHlzX3RvX2J1cygpIGZhaWxlcyBpbiBhZGRyZXNzIGNvbXBhcmUsCi0gICAgKiBzbyB3ZSBuZWVkIChDRkdfUENJX01FTU9SWV9TSVpFLTEpCisgICAgKiBzbyB3ZSBuZWVkIChDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRS0xKQogICAgICovCi0JQ0ZHX1BDSV9NRU1PUllfU0laRS0xLAorCUNPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLTEsCiAJUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKICAgICAvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAgICAgcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JQ0ZHX1BDSV9NRU1fQlVTLAotCUNGR19QQ0lfTUVNX1BIWVMsCi0JQ0ZHX1BDSV9NRU1fU0laRSwKKwlDT05GSUdfU1lTX1BDSV9NRU1fQlVTLAorCUNPTkZJR19TWVNfUENJX01FTV9QSFlTLAorCUNPTkZJR19TWVNfUENJX01FTV9TSVpFLAogCVBDSV9SRUdJT05fTUVNKTsKIAogICAgIC8qIElTQS9QQ0kgbWVtb3J5IHNwYWNlICovCiAgICAgcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JQ0ZHX0lTQV9NRU1fQlVTLAotCUNGR19JU0FfTUVNX1BIWVMsCi0JQ0ZHX0lTQV9NRU1fU0laRSwKKwlDT05GSUdfU1lTX0lTQV9NRU1fQlVTLAorCUNPTkZJR19TWVNfSVNBX01FTV9QSFlTLAorCUNPTkZJR19TWVNfSVNBX01FTV9TSVpFLAogCVBDSV9SRUdJT05fTUVNKTsKIAogICAgIC8qIFBDSSBJL08gc3BhY2UgKi8KICAgICBwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMywKLQlDRkdfUENJX0lPX0JVUywKLQlDRkdfUENJX0lPX1BIWVMsCi0JQ0ZHX1BDSV9JT19TSVpFLAorCUNPTkZJR19TWVNfUENJX0lPX0JVUywKKwlDT05GSUdfU1lTX1BDSV9JT19QSFlTLAorCUNPTkZJR19TWVNfUENJX0lPX1NJWkUsCiAJUENJX1JFR0lPTl9JTyk7CiAKICAgICAvKiBJU0EvUENJIEkvTyBzcGFjZSAqLwogICAgIHBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyA0LAotCUNGR19JU0FfSU9fQlVTLAotCUNGR19JU0FfSU9fUEhZUywKLQlDRkdfSVNBX0lPX1NJWkUsCisJQ09ORklHX1NZU19JU0FfSU9fQlVTLAorCUNPTkZJR19TWVNfSVNBX0lPX1BIWVMsCisJQ09ORklHX1NZU19JU0FfSU9fU0laRSwKIAlQQ0lfUkVHSU9OX0lPKTsKIAogICAgIGhvc2UtPnJlZ2lvbl9jb3VudCA9IDU7CmRpZmYgLS1naXQgYS9ib2FyZC9lbHRlYy9iYWI3eHgvc3JvbS5oIGIvYm9hcmQvZWx0ZWMvYmFiN3h4L3Nyb20uaAppbmRleCBjMThhYjkxLi41MDRiNzQyIDEwMDY0NAotLS0gYS9ib2FyZC9lbHRlYy9iYWI3eHgvc3JvbS5oCisrKyBiL2JvYXJkL2VsdGVjL2JhYjd4eC9zcm9tLmgKQEAgLTQwLDggKzQwLDggQEAKICNkZWZpbmUgU1JPTV9TSE9SVChwWCkgICAgICAgICAgKCoodTggKikocFgpIHwgKigodTggKikocFgpKzEpIDw8IDgpCiAKIC8qIGJhYjd4eCBFTFRFQyBzcm9tICovCi0jZGVmaW5lIEkyQ19CVVNfREFUICAgICAgICAgICAgIChDRkdfSVNBX0lPICsgMHgyMjApCi0jZGVmaW5lIEkyQ19CVVNfRElSICAgICAgICAgICAgIChDRkdfSVNBX0lPICsgMHgyMjEpCisjZGVmaW5lIEkyQ19CVVNfREFUICAgICAgICAgICAgIChDT05GSUdfU1lTX0lTQV9JTyArIDB4MjIwKQorI2RlZmluZSBJMkNfQlVTX0RJUiAgICAgICAgICAgICAoQ09ORklHX1NZU19JU0FfSU8gKyAweDIyMSkKIAogLyogc3JvbSBhdCBtcGMxMDcgKi8KICNkZWZpbmUgTVBDMTA3X0kyQ0FERFIgICAgICAgICAgKG1wYzEwN19ldW1iX2FkZHIgKyAweDMwMDApICAgICAvKiBhZGRyZXNzICAgICAgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2VsdGVjL2VscHBjL2FzbV9pbml0LlMgYi9ib2FyZC9lbHRlYy9lbHBwYy9hc21faW5pdC5TCmluZGV4IDFiOGQzOTkuLjhjYmU5ZDggMTAwNjQ0Ci0tLSBhL2JvYXJkL2VsdGVjL2VscHBjL2FzbV9pbml0LlMKKysrIGIvYm9hcmQvZWx0ZWMvZWxwcGMvYXNtX2luaXQuUwpAQCAtMjcyLDE1ICsyNzIsMTUgQEAKICAqIHNldCBMRURzIGZpcnN0IHRpbWUKICAqLwogICAgIGxpICAgICAgcjMsIDB4MQotICAgIGxpcyAgICAgcjMwLCBDRkdfVVNSX0xFRF9CQVNFQGgKKyAgICBsaXMgICAgIHIzMCwgQ09ORklHX1NZU19VU1JfTEVEX0JBU0VAaAogICAgIHN0YiAgICAgcjMsIDIocjMwKQogICAgIHN5bmMKIAogLyoKICAqIGluaXQgQ09NMSBmb3IgcG9sbGVkIG91dHB1dAogICovCi0gICAgbGlzICAgICByOCwgQ0ZHX05TMTY1NTBfQ09NMUBoICAvKiBDT00xIGJhc2UgYWRkcmVzcyovCi0gICAgb3JpICAgICByOCwgcjgsIENGR19OUzE2NTUwX0NPTTFAbAorICAgIGxpcyAgICAgcjgsIENPTkZJR19TWVNfTlMxNjU1MF9DT00xQGggIC8qIENPTTEgYmFzZSBhZGRyZXNzKi8KKyAgICBvcmkgICAgIHI4LCByOCwgQ09ORklHX1NZU19OUzE2NTUwX0NPTTFAbAogICAgIGxpICAgICAgcjksIDB4MDAKICAgICBzdGIgICAgIHI5LCAxKHI4KSAgICAgICAgICAgLyogaW50IGRpc2FibGVkICovCiAgICAgZWllaW8KQEAgLTI5MCwxMCArMjkwLDEwIEBACiAgICAgbGkgICAgICByOSwgMHg4MAogICAgIHN0YiAgICAgcjksIDMocjgpICAgICAgICAgICAvKiBsaW5rIGN0cmwgKi8KICAgICBlaWVpbwotICAgIGxpICAgICAgcjksIChDRkdfTlMxNjU1MF9DTEsgLyAxNiAvIENPTkZJR19CQVVEUkFURSkKKyAgICBsaSAgICAgIHI5LCAoQ09ORklHX1NZU19OUzE2NTUwX0NMSyAvIDE2IC8gQ09ORklHX0JBVURSQVRFKQogICAgIHN0YiAgICAgcjksIDAocjgpICAgICAgICAgICAvKiBiYXVkIHJhdGUgKExTQikqLwogICAgIGVpZWlvCi0gICAgbGkgICAgICByOSwgKChDRkdfTlMxNjU1MF9DTEsgLyAxNiAvIENPTkZJR19CQVVEUkFURSkgPj4gOCkKKyAgICBsaSAgICAgIHI5LCAoKENPTkZJR19TWVNfTlMxNjU1MF9DTEsgLyAxNiAvIENPTkZJR19CQVVEUkFURSkgPj4gOCkKICAgICBzdGIgICAgIHI5LCAxKHI4KSAgICAgICAgICAgLyogYmF1ZCByYXRlIChNU0IpICovCiAgICAgZWllaW8KICAgICBsaSAgICAgIHI5LCAweDA3CkBAIC01ODksNyArNTg5LDcgQEAKICAqIHNldCBMRURzIGVuZAogICovCiAgICAgbGkgICAgICByMywgMHhmCi0gICAgbGlzICAgICByMzAsIENGR19VU1JfTEVEX0JBU0VAaAorICAgIGxpcyAgICAgcjMwLCBDT05GSUdfU1lTX1VTUl9MRURfQkFTRUBoCiAgICAgc3RiICAgICByMywgMihyMzApCiAgICAgc3luYwogCkBAIC02MDIsOCArNjAyLDggQEAKICAqLwogCiBQcmludGY6Ci0gICAgbGlzICAgICByMTAsIENGR19OUzE2NTUwX0NPTTFAaCAvKiBDT00xIGJhc2UgYWRkcmVzcyovCi0gICAgb3JpICAgICByMTAsIHIxMCwgQ0ZHX05TMTY1NTBfQ09NMUBsCisgICAgbGlzICAgICByMTAsIENPTkZJR19TWVNfTlMxNjU1MF9DT00xQGggLyogQ09NMSBiYXNlIGFkZHJlc3MqLworICAgIG9yaSAgICAgcjEwLCByMTAsIENPTkZJR19TWVNfTlMxNjU1MF9DT00xQGwKIFdhaXRDaHI6CiAgICAgbGJ6ICAgICByMCwgNShyMTApICAgICAgICAgIC8qIHJlYWQgbGluayBzdGF0dXMgKi8KICAgICBlaWVpbwpAQCAtNjIyLDggKzYyMiw4IEBACiAgKiBwcmludCBhIGNoYXIgdG8gQ09NMSBpbiBwb2xsaW5nIG1vZGUgKHIxMD1DT00xIHBvcnQsIHIzPWNoYXIpCiAgKi8KIE91dENocjoKLSAgICBsaXMgICAgIHIxMCwgQ0ZHX05TMTY1NTBfQ09NMUBoIC8qIENPTTEgYmFzZSBhZGRyZXNzKi8KLSAgICBvcmkgICAgIHIxMCwgcjEwLCBDRkdfTlMxNjU1MF9DT00xQGwKKyAgICBsaXMgICAgIHIxMCwgQ09ORklHX1NZU19OUzE2NTUwX0NPTTFAaCAvKiBDT00xIGJhc2UgYWRkcmVzcyovCisgICAgb3JpICAgICByMTAsIHIxMCwgQ09ORklHX1NZU19OUzE2NTUwX0NPTTFAbAogT3V0Q2hyMToKICAgICBsYnogICAgIHIwLCA1KHIxMCkgICAgICAgICAgLyogcmVhZCBsaW5rIHN0YXR1cyAqLwogICAgIGVpZWlvCkBAIC02NDUsOCArNjQ1LDggQEAKIE91dEhleDoKICAgICBsaSAgICAgIHI5LCAyOCAgICAgICAgICAgICAgLyogc2hpZnQgcmVnIGZvciA4IGRpZ2l0cyAqLwogT0hzdGFydDoKLSAgICBsaXMgICAgIHIxMCwgQ0ZHX05TMTY1NTBfQ09NMUBoIC8qIENPTTEgYmFzZSBhZGRyZXNzKi8KLSAgICBvcmkgICAgIHIxMCwgcjEwLCBDRkdfTlMxNjU1MF9DT00xQGwKKyAgICBsaXMgICAgIHIxMCwgQ09ORklHX1NZU19OUzE2NTUwX0NPTTFAaCAvKiBDT00xIGJhc2UgYWRkcmVzcyovCisgICAgb3JpICAgICByMTAsIHIxMCwgQ09ORklHX1NZU19OUzE2NTUwX0NPTTFAbAogT3V0RGlnOgogICAgIGxieiAgICAgcjAsIDAocjI5KSAgICAgICAgICAvKiBzbG93IGRvd24gZHVtbXkgcmVhZCAqLwogICAgIGxieiAgICAgcjAsIDUocjEwKSAgICAgICAgICAvKiByZWFkIGxpbmsgc3RhdHVzICovCkBAIC02ODUsOCArNjg1LDggQEAKICAgICBkaXZ3dSAgIHIwLCByMywgcjYgICAgICAgICAgLyogcjAgPSByMyAvIDEwLCByNyA9IHIzIG1vZCAxMCAqLwogICAgIG11bGx3ICAgcjEwLCByMCwgcjYKICAgICBzdWJmICAgIHI3LCByMTAsIHIzCi0gICAgbGlzICAgICByMTAsIENGR19OUzE2NTUwX0NPTTFAaCAvKiBDT00xIGJhc2UgYWRkcmVzcyovCi0gICAgb3JpICAgICByMTAsIHIxMCwgQ0ZHX05TMTY1NTBfQ09NMUBsCisgICAgbGlzICAgICByMTAsIENPTkZJR19TWVNfTlMxNjU1MF9DT00xQGggLyogQ09NMSBiYXNlIGFkZHJlc3MqLworICAgIG9yaSAgICAgcjEwLCByMTAsIENPTkZJR19TWVNfTlMxNjU1MF9DT00xQGwKICAgICBvci4gICAgIHI3LCByNywgcjcKICAgICBibmUgICAgIG5vYmxhbmsxCiAgICAgbGkgICAgICByMywgMHgyMApkaWZmIC0tZ2l0IGEvYm9hcmQvZWx0ZWMvZWxwcGMvZWxwcGMuYyBiL2JvYXJkL2VsdGVjL2VscHBjL2VscHBjLmMKaW5kZXggZDNhYzI3OC4uZTczYzcxMiAxMDA2NDQKLS0tIGEvYm9hcmQvZWx0ZWMvZWxwcGMvZWxwcGMuYworKysgYi9ib2FyZC9lbHRlYy9lbHBwYy9lbHBwYy5jCkBAIC02OCwxNiArNjgsMTYgQEAKIAogCXJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgaSwgbXNhcjEsIG1lYXIxLCBtZW1TaXplOwogCi0jaWYgZGVmaW5lZChDRkdfTUVNVEVTVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTUVNVEVTVCkKIAlyZWdpc3RlciB1bnNpZ25lZCBsb25nIHJlZzsKIAogCXByaW50ZiAoIlRlc3RpbmcgRFJBTVxuIik7CiAKIAkvKiB3cml0ZSBlYWNoIG1lbSBhZGRyIHdpdGggaXQncyBhZGRyZXNzICovCi0JZm9yIChyZWcgPSBDRkdfTUVNVEVTVF9TVEFSVDsgcmVnIDwgQ0ZHX01FTVRFU1RfRU5EOyByZWcgKz0gNCkKKwlmb3IgKHJlZyA9IENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsgcmVnIDwgQ09ORklHX1NZU19NRU1URVNUX0VORDsgcmVnICs9IDQpCiAJCSpyZWcgPSByZWc7CiAKLQlmb3IgKHJlZyA9IENGR19NRU1URVNUX1NUQVJUOyByZWcgPCBDRkdfTUVNVEVTVF9FTkQ7IHJlZyArPSA0KSB7CisJZm9yIChyZWcgPSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7IHJlZyA8IENPTkZJR19TWVNfTUVNVEVTVF9FTkQ7IHJlZyArPSA0KSB7CiAJCWlmICgqcmVnICE9IHJlZykKIAkJCXJldHVybiAtMTsKIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9lbHRlYy9lbHBwYy9mbGFzaC5jIGIvYm9hcmQvZWx0ZWMvZWxwcGMvZmxhc2guYwppbmRleCA0NDJkZDAwLi4yMWFlMDk4IDEwMDY0NAotLS0gYS9ib2FyZC9lbHRlYy9lbHBwYy9mbGFzaC5jCisrKyBiL2JvYXJkL2VsdGVjL2VscHBjL2ZsYXNoLmMKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAjaW5jbHVkZSA8YXNtL3BjaV9pby5oPgogCi1mbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdCAgICBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHZ1X2xvbmcgKmFkZHIsIGZsYXNoX2luZm9fdCAqaW5mbyk7CiBzdGF0aWMgaW50IHdyaXRlX3dvcmQgKGZsYXNoX2luZm9fdCAqaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSk7CkBAIC01NSw3ICs1NSw3IEBACiAgICAgaW50IGk7CiAKICAgICAvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0gICAgZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKQorICAgIGZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpCiAgICAgewogCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogICAgIH0KQEAgLTk2LDggKzk2LDggQEAKICAgICBpZiAoc2l6ZTIgPT0gNCoxMDI0KjEwMjQpCiAgICAgewogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCUNGR19GTEFTSF9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJQ09ORklHX1NZU19GTEFTSF9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSZmbGFzaF9pbmZvWzFdKTsKICAgICB9CiAKQEAgLTM3MCw3ICszNzAsNyBAQAogICAgIGxhc3QgID0gc3RhcnQ7CiAgICAgYWRkciA9IChGTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAgICAgd2hpbGUgKChhZGRyWzBdICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPSAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApIHsKLQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJICAgIHByaW50ZiAoIlRpbWVvdXRcbiIpOwogCSAgICByZXR1cm4gMTsKIAl9CkBAIC01MDAsNyArNTAwLDcgQEAKIAkgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCSAgICB3aGlsZSAoKGRlc3QyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPQogCQkgICAoZGF0YTJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApKSB7Ci0JICAgICAgaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCSAgICAgIGlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCXJldHVybiAoMSk7CiAJICAgICAgfQogCSAgICB9CmRpZmYgLS1naXQgYS9ib2FyZC9lbHRlYy9lbHBwYy9taXNjLmMgYi9ib2FyZC9lbHRlYy9lbHBwYy9taXNjLmMKaW5kZXggNWUzYTgxYy4uY2JhZjEwYiAxMDA2NDQKLS0tIGEvYm9hcmQvZWx0ZWMvZWxwcGMvbWlzYy5jCisrKyBiL2JvYXJkL2VsdGVjL2VscHBjL21pc2MuYwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgInNyb20uaCIKIAogLyogaW1wb3J0cyAgKi8KLWV4dGVybiBjaGFyIGNvbnNvbGVfYnVmZmVyW0NGR19DQlNJWkVdOworZXh0ZXJuIGNoYXIgY29uc29sZV9idWZmZXJbQ09ORklHX1NZU19DQlNJWkVdOwogZXh0ZXJuIGludCBsMl9jYWNoZV9lbmFibGUgKGludCBsMmNvbnRyb2wpOwogZXh0ZXJuIGludCBlZXBybzEwMF93cml0ZV9lZXByb20gKHN0cnVjdCBldGhfZGV2aWNlICpkZXYsIGludCBsb2NhdGlvbiwKIAkJCQkgIGludCBhZGRyX2xlbiwgdW5zaWduZWQgc2hvcnQgZGF0YSk7CkBAIC05NSw3ICs5NSw3IEBACiAJCQkgIFNFQ09ORF9ERVZJQ0UsIEZJUlNUX0JMT0NLKTsKIAogCS8qIHJlYWQgb3V0IGN1cnJlbnQgbnZyYW0gc2hhZG93IGltYWdlICovCi0JbnZyYW1fcmVhZCAoYnVmLCBDRkdfTlZfU1JPTV9DT1BZX0FERFIsIENGR19TUk9NX1NJWkUpOworCW52cmFtX3JlYWQgKGJ1ZiwgQ09ORklHX1NZU19OVl9TUk9NX0NPUFlfQUREUiwgQ09ORklHX1NZU19TUk9NX1NJWkUpOwogCiAJaWYgKHN0cmNtcCAoZWVyZXYubWFnaWMsICJFTFRFQyIpICE9IDApIHsKIAkJLyogc3JvbSBpcyBub3QgaW5pdGlhbGl6ZWQgLT4gY3JlYXRlIGEgZGVmYXVsdCByZXZpc2lvbiBpbmZvICovCkBAIC0xMjQsOCArMTI0LDggQEAKIAl9CiAKIAlpZiAoKGNvcHlOdiA9PSAwKQotCSAgICAmJiAoZWxfc3JvbV9jaGVja3N1bSAoKHVfY2hhciAqKSAmIGVlcmV2LCBDRkdfU1JPTV9TSVpFKSAhPQotCQllbF9zcm9tX2NoZWNrc3VtICgodV9jaGFyICopIGJ1ZiwgQ0ZHX1NST01fU0laRSkpKSB7CisJICAgICYmIChlbF9zcm9tX2NoZWNrc3VtICgodV9jaGFyICopICYgZWVyZXYsIENPTkZJR19TWVNfU1JPTV9TSVpFKSAhPQorCQllbF9zcm9tX2NoZWNrc3VtICgodV9jaGFyICopIGJ1ZiwgQ09ORklHX1NZU19TUk9NX1NJWkUpKSkgewogCQlwcmludGYgKCJJbnZhbGlkIHJldmlzaW9uIGluZm8gY29weSBpbiBudnJhbSAhXG4iKTsKIAkJcHJpbnRmICgiUHJlc3Mga2V5OlxuICA8Yz4gdG8gY29weSBjdXJyZW50IHJldmlzaW9uIGluZm8gdG8gbnZyYW0uXG4iKTsKIAkJcHJpbnRmICgiICA8cj4gdG8gcmVlbnRlciByZXZpc2lvbiBpbmZvLlxuIik7CkBAIC0yMzIsMTYgKzIzMiwxNiBAQAogCQkJcHJpbnRmICgiT0tcblxuIik7CiAKIAkJLyogd3JpdGUgbmV3IHZhbHVlcyBhcyBzaGFkb3cgaW1hZ2UgdG8gbnZyYW0gKi8KLQkJbnZyYW1fd3JpdGUgKENGR19OVl9TUk9NX0NPUFlfQUREUiwgKHZvaWQgKikgJmVlcmV2LAotCQkJICAgICBDRkdfU1JPTV9TSVpFKTsKKwkJbnZyYW1fd3JpdGUgKENPTkZJR19TWVNfTlZfU1JPTV9DT1BZX0FERFIsICh2b2lkICopICZlZXJldiwKKwkJCSAgICAgQ09ORklHX1NZU19TUk9NX1NJWkUpOwogCiAJfQogCiAJLyppZiAoaW5pdFNyb20pICovCiAJLyogY29weSBjdXJyZW50IHZhbHVlcyBhcyBzaGFkb3cgaW1hZ2UgdG8gbnZyYW0gKi8KIAlpZiAoaW5pdFNyb20gPT0gMCAmJiBjb3B5TnYgPT0gMSkKLQkJbnZyYW1fd3JpdGUgKENGR19OVl9TUk9NX0NPUFlfQUREUiwgKHZvaWQgKikgJmVlcmV2LAotCQkJICAgICBDRkdfU1JPTV9TSVpFKTsKKwkJbnZyYW1fd3JpdGUgKENPTkZJR19TWVNfTlZfU1JPTV9DT1BZX0FERFIsICh2b2lkICopICZlZXJldiwKKwkJCSAgICAgQ09ORklHX1NZU19TUk9NX1NJWkUpOwogCiAJLyogdXBkYXRlIGVudmlyb25tZW50ICovCiAJc3ByaW50ZiAoYnVmLCAiJTAyeDolMDJ4OiUwMng6JTAyeDolMDJ4OiUwMngiLApkaWZmIC0tZ2l0IGEvYm9hcmQvZWx0ZWMvZWxwcGMvcGNpLmMgYi9ib2FyZC9lbHRlYy9lbHBwYy9wY2kuYwppbmRleCA1YjExNWVhLi5iZjEzM2I3IDEwMDY0NAotLS0gYS9ib2FyZC9lbHRlYy9lbHBwYy9wY2kuYworKysgYi9ib2FyZC9lbHRlYy9lbHBwYy9wY2kuYwpAQCAtNDIsMzcgKzQyLDM3IEBACiAgICAgaG9zZS0+bGFzdF9idXNubyA9IDB4ZmY7CiAKICAgICBwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQlDRkdfUENJX01FTU9SWV9CVVMsCi0JQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQlDRkdfUENJX01FTU9SWV9TSVpFLAorCUNPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKICAgICAvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAgICAgcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JQ0ZHX1BDSV9NRU1fQlVTLAotCUNGR19QQ0lfTUVNX1BIWVMsCi0JQ0ZHX1BDSV9NRU1fU0laRSwKKwlDT05GSUdfU1lTX1BDSV9NRU1fQlVTLAorCUNPTkZJR19TWVNfUENJX01FTV9QSFlTLAorCUNPTkZJR19TWVNfUENJX01FTV9TSVpFLAogCVBDSV9SRUdJT05fTUVNKTsKIAogICAgIC8qIElTQS9QQ0kgbWVtb3J5IHNwYWNlICovCiAgICAgcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JQ0ZHX0lTQV9NRU1fQlVTLAotCUNGR19JU0FfTUVNX1BIWVMsCi0JQ0ZHX0lTQV9NRU1fU0laRSwKKwlDT05GSUdfU1lTX0lTQV9NRU1fQlVTLAorCUNPTkZJR19TWVNfSVNBX01FTV9QSFlTLAorCUNPTkZJR19TWVNfSVNBX01FTV9TSVpFLAogCVBDSV9SRUdJT05fTUVNKTsKIAogICAgIC8qIFBDSSBJL08gc3BhY2UgKi8KICAgICBwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMywKLQlDRkdfUENJX0lPX0JVUywKLQlDRkdfUENJX0lPX1BIWVMsCi0JQ0ZHX1BDSV9JT19TSVpFLAorCUNPTkZJR19TWVNfUENJX0lPX0JVUywKKwlDT05GSUdfU1lTX1BDSV9JT19QSFlTLAorCUNPTkZJR19TWVNfUENJX0lPX1NJWkUsCiAJUENJX1JFR0lPTl9JTyk7CiAKICAgICAvKiBJU0EvUENJIEkvTyBzcGFjZSAqLwogICAgIHBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyA0LAotCUNGR19JU0FfSU9fQlVTLAotCUNGR19JU0FfSU9fUEhZUywKLQlDRkdfSVNBX0lPX1NJWkUsCisJQ09ORklHX1NZU19JU0FfSU9fQlVTLAorCUNPTkZJR19TWVNfSVNBX0lPX1BIWVMsCisJQ09ORklHX1NZU19JU0FfSU9fU0laRSwKIAlQQ0lfUkVHSU9OX0lPKTsKIAogICAgIGhvc2UtPnJlZ2lvbl9jb3VudCA9IDU7CmRpZmYgLS1naXQgYS9ib2FyZC9lbHRlYy9lbHBwYy9zcm9tLmggYi9ib2FyZC9lbHRlYy9lbHBwYy9zcm9tLmgKaW5kZXggYzE4YWI5MS4uNTA0Yjc0MiAxMDA2NDQKLS0tIGEvYm9hcmQvZWx0ZWMvZWxwcGMvc3JvbS5oCisrKyBiL2JvYXJkL2VsdGVjL2VscHBjL3Nyb20uaApAQCAtNDAsOCArNDAsOCBAQAogI2RlZmluZSBTUk9NX1NIT1JUKHBYKSAgICAgICAgICAoKih1OCAqKShwWCkgfCAqKCh1OCAqKShwWCkrMSkgPDwgOCkKIAogLyogYmFiN3h4IEVMVEVDIHNyb20gKi8KLSNkZWZpbmUgSTJDX0JVU19EQVQgICAgICAgICAgICAgKENGR19JU0FfSU8gKyAweDIyMCkKLSNkZWZpbmUgSTJDX0JVU19ESVIgICAgICAgICAgICAgKENGR19JU0FfSU8gKyAweDIyMSkKKyNkZWZpbmUgSTJDX0JVU19EQVQgICAgICAgICAgICAgKENPTkZJR19TWVNfSVNBX0lPICsgMHgyMjApCisjZGVmaW5lIEkyQ19CVVNfRElSICAgICAgICAgICAgIChDT05GSUdfU1lTX0lTQV9JTyArIDB4MjIxKQogCiAvKiBzcm9tIGF0IG1wYzEwNyAqLwogI2RlZmluZSBNUEMxMDdfSTJDQUREUiAgICAgICAgICAobXBjMTA3X2V1bWJfYWRkciArIDB4MzAwMCkgICAgIC8qIGFkZHJlc3MgICAgICAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZWx0ZWMvbWhwYy9mbGFzaC5jIGIvYm9hcmQvZWx0ZWMvbWhwYy9mbGFzaC5jCmluZGV4IDRjYzY2YTkuLjJmYmRiMjcgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VsdGVjL21ocGMvZmxhc2guYworKysgYi9ib2FyZC9lbHRlYy9taHBjL2ZsYXNoLmMKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlIDxtcGM4eHguaD4KICNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvc3dhYi5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUHJvdGVjdGlvbiBGbGFnczoKQEAgLTYyLDEzICs2MiwxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjA7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTgxLDE4ICs4MSwxOCBAQAogCX0KIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9NU19HUENNIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX01TX0dQQ00gfCBCUl9WOwogCiAJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgoRlBXICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKEZQVyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgQ0ZHX0ZMQVNIX0JBU0UsCi0JCQkgICAgQ0ZHX0ZMQVNIX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQkgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZV9iMDsKQEAgLTIwMywxMCArMjAzLDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IChGUFcpMHhGRjAwRkYwMDsgICAgICAvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMjc3LDcgKzI3Nyw3IEBACiAJCQl1ZGVsYXkgKDEwMDApOwogCiAJCQl3aGlsZSAoKChzdGF0dXMgPSBTV0FQKCphZGRyKSkgJiAoRlBXKTB4MDA4MDAwODApICE9IChGUFcpMHgwMDgwMDA4MCkgewotCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJKmFkZHIgPSAoRlBXKTB4QjAwMEIwMDA7IC8qIHN1c3BlbmQgZXJhc2UgKi8KIAkJCQkJKmFkZHIgPSAoRlBXKTB4RkYwMEZGMDA7IC8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwpAQCAtNDE5LDcgKzQxOSw3IEBACiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCiAJd2hpbGUgKCgoc3RhdHVzID0gU1dBUCgqYWRkcikpICYgKEZQVykweDAwODAwMDgwKSAhPSAoRlBXKTB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAoRlBXKTB4RkYwMEZGMDA7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9lbHRlYy9taHBjL21ocGMuYyBiL2JvYXJkL2VsdGVjL21ocGMvbWhwYy5jCmluZGV4IDM2NjY3OTEuLjdjY2E2YjIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VsdGVjL21ocGMvbWhwYy5jCisrKyBiL2JvYXJkL2VsdGVjL21ocGMvbWhwYy5jCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8dmlkZW9fZmIuaD4KIAogLyogaW1wb3J0cyBmcm9tIGNvbW1vbi9tYWluLmMgKi8KLWV4dGVybiBjaGFyIGNvbnNvbGVfYnVmZmVyW0NGR19DQlNJWkVdOworZXh0ZXJuIGNoYXIgY29uc29sZV9idWZmZXJbQ09ORklHX1NZU19DQlNJWkVdOwogCiBleHRlcm4gdm9pZCBlZXByb21faW5pdCAodm9pZCk7CiBleHRlcm4gaW50IGVlcHJvbV9yZWFkICh1bnNpZ25lZCBkZXZfYWRkciwgdW5zaWduZWQgb2Zmc2V0LApAQCAtMTA1LDcgKzEwNSw3IEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdCAqY3AgPSAmKGltLT5pbV9jcG0pOwogCXZvbGF0aWxlIGlvcDh4eF90ICppcCA9IChpb3A4eHhfdCAqKSAmIChpbS0+aW1faW9wb3J0KTsKIApAQCAtMTYwLDcgKzE2MCw3IEBACiAJaW50IGk7CiAKIAkvKiBjaGVjayByZXZpc2lvbiBkYXRhICovCi0JZWVwcm9tX3JlYWQgKENGR19JMkNfRUVQUk9NX0FERFIsIDQ4MCwgKHVjaGFyICopICZtaHBjUmV2SW5mbywgMzIpOworCWVlcHJvbV9yZWFkIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgNDgwLCAodWNoYXIgKikgJm1ocGNSZXZJbmZvLCAzMik7CiAKIAlpZiAoc3RybmNtcCAoKGNoYXIgKikgJm1ocGNSZXZJbmZvLmJvYXJkWzJdLCAiTUhQQyIsIDQpICE9IDApIHsKIAkJcHJpbnRmICgiRW50ZXIgcmV2aXNpb24gbnVtYmVyICgwLTkpOiAlYyAgIiwKQEAgLTIyOCw3ICsyMjgsNyBAQAogCQl9CiAKIAkJLyogc2V0dXAgbmV3IHJldmlzaW9uIGRhdGEgKi8KLQkJZWVwcm9tX3dyaXRlIChDRkdfSTJDX0VFUFJPTV9BRERSLCA0ODAsICh1Y2hhciAqKSAmbWhwY1JldkluZm8sCisJCWVlcHJvbV93cml0ZSAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIDQ4MCwgKHVjaGFyICopICZtaHBjUmV2SW5mbywKIAkJCSAgICAgIDMyKTsKIAl9CiAKQEAgLTI1MywxMyArMjUzLDEzIEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCXVwbWNvbmZpZyAoVVBNQSwgKHVpbnQgKikgc2RyYW1fdGFibGUsCiAJCSAgIHNpemVvZiAoc2RyYW1fdGFibGUpIC8gc2l6ZW9mICh1aW50KSk7CiAKLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVIgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAltZW1jdGwtPm1lbWNfbWJtciA9IE1CTVJfR1BMX0I0RElTOwkvKiBzaG91bGQgdGhpcyBiZSBtYW1yPyAtIE5UTCAqLwogCW1lbWN0bC0+bWVtY19tcHRwciA9IE1QVFBSX1BUUF9ESVY2NDsKIAltZW1jdGwtPm1lbWNfbWFyID0gMHgwMDAwODgwMDsKQEAgLTI2NywxNSArMjY3LDE1IEBACiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBTRFJBTSBiYW5rIDAKIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKIAl1ZGVsYXkgKDIwMCk7CiAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIFNEUkFNIGJhbmsgMQogCSAqLwotCW1lbWN0bC0+bWVtY19vcjIgPSBDRkdfT1IyOwotCW1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyOworCW1lbWN0bC0+bWVtY19vcjIgPSBDT05GSUdfU1lTX09SMjsKKwltZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19CUjI7CiAKIAkvKgogCSAqIFBlcmZvcm0gU0RSQU0gaW5pdGlhbGl6c2F0aW9uIHNlcXVlbmNlCkBAIC00MTksNyArNDE5LDcgQEAKIHsKIAl1bnNpZ25lZCBpbnQgY2x1dCA9IDA7CiAJdW5zaWduZWQgY2hhciAqcGVudjsKLQlpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCS8qIGVuYWJsZSB2aWRlbyBvbmx5IG9uIENMVVQgdmFsdWUgKi8KIAlpZiAoKHBlbnYgPSAodWNoYXIgKilnZXRlbnYgKCJjbHV0IikpICE9IE5VTEwpCkBAIC00NzAsNyArNDcwLDcgQEAKIAkJICAgIHVuc2lnbmVkIGNoYXIgciwgdW5zaWduZWQgY2hhciBnLCB1bnNpZ25lZCBjaGFyIGIpCiB7CiAJdW5zaWduZWQgaW50IGx1bTsKLQl1bnNpZ25lZCBzaG9ydCAqcEx1dCA9ICh1bnNpZ25lZCBzaG9ydCAqKSAoQ0ZHX0lNTVIgKyAweDBlMDApOworCXVuc2lnbmVkIHNob3J0ICpwTHV0ID0gKHVuc2lnbmVkIHNob3J0ICopIChDT05GSUdfU1lTX0lNTVIgKyAweDBlMDApOwogCiAJLyogMTYgYml0IGx1dCB2YWx1ZXMsIDEyIGJpdCB1c2VkLCB4eHh4IEJCR0cgUlJpaSBpaWlpICovCiAJLyogeSA9IDAuMjk5KlIgKyAwLjU4NypHICsgMC4xMTQqQiAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZW1rL2NvbW1vbi9mbGFzaC5jIGIvYm9hcmQvZW1rL2NvbW1vbi9mbGFzaC5jCmluZGV4IDA0YzM1YmMuLjMzMDk3OGIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2Vtay9jb21tb24vZmxhc2guYworKysgYi9ib2FyZC9lbWsvY29tbW9uL2ZsYXNoLmMKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogI2lmIGRlZmluZWQgKENPTkZJR19UT1A4NjApCiAgIHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgRkxBU0hfUE9SVF9XSURUSDsKQEAgLTk1LDcgKzk1LDcgQEAKIAlpbnQgaSA9IDA7CiAJZXh0ZXJuIHZvaWQgZmxhc2hfcHJlaW5pdCh2b2lkKTsKIAlleHRlcm4gdm9pZCBmbGFzaF9hZnRlcmluaXQodWludCwgdWxvbmcsIHVsb25nKTsKLQl1bG9uZyBmbGFzaGJhc2UgPSBDRkdfRkxBU0hfQkFTRTsKKwl1bG9uZyBmbGFzaGJhc2UgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAKIAlmbGFzaF9wcmVpbml0KCk7CiAKQEAgLTEwNSwxMiArMTA1LDEyIEBACiAJCQlmbGFzaF9nZXRfc2l6ZSgoRlBXICopZmxhc2hiYXNlLCAmZmxhc2hfaW5mb1tpXSk7CiAJc2l6ZSArPSBmbGFzaF9pbmZvW2ldLnNpemU7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKLQkJICAgICAgZmxhc2hfZ2V0X2luZm8oQ0ZHX01PTklUT1JfQkFTRSkpOworCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgZmxhc2hfZ2V0X2luZm8oQ09ORklHX1NZU19NT05JVE9SX0JBU0UpKTsKICNlbmRpZgogCiAjaWZkZWYJQ09ORklHX0VOVl9JU19JTl9GTEFTSApAQCAtMTQ3LDE0ICsxNDcsMTQgQEAKIAlpbnQgaTsKIAlmbGFzaF9pbmZvX3QgKiBpbmZvOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkgKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkgKyspIHsKIAkJaW5mbyA9ICYgZmxhc2hfaW5mb1tpXTsKIAkJaWYgKGluZm8tPnNpemUgJiYKIAkJCWluZm8tPnN0YXJ0WzBdIDw9IGJhc2UgJiYgYmFzZSA8PSBpbmZvLT5zdGFydFswXSArIGluZm8tPnNpemUgLSAxKQogCQkJYnJlYWs7CiAJfQogCi0JcmV0dXJuIGkgPT0gQ0ZHX01BWF9GTEFTSF9CQU5LUyA/IDAgOiBpbmZvOworCXJldHVybiBpID09IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm87CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ1OSw3ICs0NTksNyBAQAogCQl1ZGVsYXkgKDEwMDApOwogCiAJCXdoaWxlICgoKmFkZHIgJiAoRlBXKTB4MDA4MDAwODApICE9IChGUFcpMHgwMDgwMDA4MCkgewotCQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAKIAkJCQlpZiAoaW50ZWwpIHsKQEAgLTQ3MywxNCArNDczLDE0IEBACiAJCQl9CiAKIAkJCS8qIHNob3cgdGhhdCB3ZSdyZSB3YWl0aW5nICovCi0JCQlpZiAoKGdldF90aW1lcihsYXN0KSkgPiBDRkdfSFopIHsvKiBldmVyeSBzZWNvbmQgKi8KKwkJCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENPTkZJR19TWVNfSFopIHsvKiBldmVyeSBzZWNvbmQgKi8KIAkJCQlwdXRjICgnLicpOwogCQkJCWxhc3QgPSBnZXRfdGltZXIoMCk7CiAJCQl9CiAJCX0KIAogCQkvKiBzaG93IHRoYXQgd2UncmUgd2FpdGluZyAqLwotCQlpZiAoKGdldF90aW1lcihsYXN0KSkgPiBDRkdfSFopIHsJLyogZXZlcnkgc2Vjb25kICovCisJCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENPTkZJR19TWVNfSFopIHsJLyogZXZlcnkgc2Vjb25kICovCiAJCQlwdXRjICgnLicpOwogCQkJbGFzdCA9IGdldF90aW1lcigwKTsKIAkJfQpAQCAtNTgxLDcgKzU4MSw3IEBACiAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJd2hpbGUgKHJlcyA9PSAwICYmICgqZGVzdCAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAoRlBXKTB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSpkZXN0ID0gKEZQVykweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAJCQlyZXMgPSAxOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9lbWsvY29tbW9uL3ZwZC5jIGIvYm9hcmQvZW1rL2NvbW1vbi92cGQuYwppbmRleCA4YTNhMTJiLi5jMmFmMjE5IDEwMDY0NAotLS0gYS9ib2FyZC9lbWsvY29tbW9uL3ZwZC5jCisrKyBiL2JvYXJkL2Vtay9jb21tb24vdnBkLmMKQEAgLTM2LDggKzM2LDggQEAKIAl1aW50IGxlbjsKIAogCS8qIGdldCBsZW5ndGggZmlyc3QgKi8KLQlhZGRyID0gQ0ZHX0ZBQ1RfT0ZGU0VUOwotCWlmIChlZXByb21fcmVhZCAoQ0ZHX0kyQ19GQUNUX0FERFIsIGFkZHIsIGJ1ZiwgMikpIHsKKwlhZGRyID0gQ09ORklHX1NZU19GQUNUX09GRlNFVDsKKwlpZiAoZWVwcm9tX3JlYWQgKENPTkZJR19TWVNfSTJDX0ZBQ1RfQUREUiwgYWRkciwgYnVmLCAyKSkgewogCSAgYmFpbG91dDoKIAkJcHJpbnRmICgiY2Fubm90IHJlYWQgZmFjdG9yeSBjb25maWd1cmF0aW9uXG4iKTsKIAkJcHJpbnRmICgiYmUgc3VyZSB0byBzZXQgZXRoYWRkcgl5b3Vyc2VsZiFcbiIpOwpAQCAtNDcsMTQgKzQ3LDE0IEBACiAJYWRkciArPSAyOwogCiAJLyogc2FuaXR5IGNoZWNrICovCi0JaWYgKGxlbmd0aCA8IDIwIHx8IGxlbmd0aCA+IENGR19GQUNUX1NJWkUgLSAyKQorCWlmIChsZW5ndGggPCAyMCB8fCBsZW5ndGggPiBDT05GSUdfU1lTX0ZBQ1RfU0laRSAtIDIpCiAJCWdvdG8gYmFpbG91dDsKIAogCS8qIHJlYWQgbGluZXMgKi8KIAl3aGlsZSAobGVuZ3RoID4gMCkgewogCQkvKiByZWFkIG9uZSBsaW5lICovCiAJCWxlbiA9IGxlbmd0aCA+IDgwID8gODAgOiBsZW5ndGg7Ci0JCWlmIChlZXByb21fcmVhZCAoQ0ZHX0kyQ19GQUNUX0FERFIsIGFkZHIsIGJ1ZiwgbGVuKSkKKwkJaWYgKGVlcHJvbV9yZWFkIChDT05GSUdfU1lTX0kyQ19GQUNUX0FERFIsIGFkZHIsIGJ1ZiwgbGVuKSkKIAkJCWdvdG8gYmFpbG91dDsKIAkJLyogbWFyayBlbmQgb2YgYnVmZmVyICovCiAJCWJ1ZltsZW5dID0gMDsKZGlmZiAtLWdpdCBhL2JvYXJkL2Vtay90b3A1MjAwL3RvcDUyMDAuYyBiL2JvYXJkL2Vtay90b3A1MjAwL3RvcDUyMDAuYwppbmRleCAyNzg4NjI2Li43ZWZiY2IwIDEwMDY0NAotLS0gYS9ib2FyZC9lbWsvdG9wNTIwMC90b3A1MjAwLmMKKysrIGIvYm9hcmQvZW1rL3RvcDUyMDAvdG9wNTIwMC5jCkBAIC0zNSw3ICszNSw3IEBACiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7CiAJdWxvbmcgZHJhbXNpemUgPSAwOwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICNpZiAwCiAJdWxvbmcJdDsKIAl1bG9uZwl0YXBfZGVsOwpAQCAtNDYsMzMgKzQ2LDMzIEBACiAJI2RlZmluZQlTT0ZUX1JFRgk0CiAKIAkvKiBjb25maWd1cmUgU0RSQU0gc3RhcnQvZW5kICovCi0JKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzBDRkcgPSAoQ0ZHX1NEUkFNX0JBU0UgJiAweEZGRjAwMDAwKSB8IENGR19EUkFNX1JBTV9TSVpFOworCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MwQ0ZHID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIDB4RkZGMDAwMDApIHwgQ09ORklHX1NZU19EUkFNX1JBTV9TSVpFOwogCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MxQ0ZHID0gMHg4MDAwMDAwMDsJLyogZGlzYWJsZWQgKi8KIAogCS8qIHNldHVwIGNvbmZpZyByZWdpc3RlcnMgKi8KLQkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NPTkZJRzEgPSBDRkdfRFJBTV9DT05GSUcxOwotCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ09ORklHMiA9IENGR19EUkFNX0NPTkZJRzI7CisJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DT05GSUcxID0gQ09ORklHX1NZU19EUkFNX0NPTkZJRzE7CisJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DT05GSUcyID0gQ09ORklHX1NZU19EUkFNX0NPTkZJRzI7CiAKIAkvKiB1bmxvY2sgbW9kZSByZWdpc3RlciAqLwotCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1RSTCA9IENGR19EUkFNX0NPTlRST0wgfCBNT0RFX0VOOworCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1RSTCA9IENPTkZJR19TWVNfRFJBTV9DT05UUk9MIHwgTU9ERV9FTjsKIAkvKiBwcmVjaGFyZ2UgYWxsIGJhbmtzICovCi0JKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DVFJMID0gQ0ZHX0RSQU1fQ09OVFJPTCB8IE1PREVfRU4gfCBTT0ZUX1BSRTsKLSNpZmRlZiBDRkdfRFJBTV9ERFIKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NUUkwgPSBDT05GSUdfU1lTX0RSQU1fQ09OVFJPTCB8IE1PREVfRU4gfCBTT0ZUX1BSRTsKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1fRERSCiAJLyogc2V0IGV4dGVuZGVkIG1vZGUgcmVnaXN0ZXIgKi8KLQkqKHZ1X3Nob3J0ICopTVBDNVhYWF9TRFJBTV9NT0RFID0gQ0ZHX0RSQU1fRU1PREU7CisJKih2dV9zaG9ydCAqKU1QQzVYWFhfU0RSQU1fTU9ERSA9IENPTkZJR19TWVNfRFJBTV9FTU9ERTsKICNlbmRpZgogCS8qIHNldCBtb2RlIHJlZ2lzdGVyICovCi0JKih2dV9zaG9ydCAqKU1QQzVYWFhfU0RSQU1fTU9ERSA9IENGR19EUkFNX01PREUgfCAweDA0MDA7CisJKih2dV9zaG9ydCAqKU1QQzVYWFhfU0RSQU1fTU9ERSA9IENPTkZJR19TWVNfRFJBTV9NT0RFIHwgMHgwNDAwOwogCS8qIHByZWNoYXJnZSBhbGwgYmFua3MgKi8KLQkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NUUkwgPSBDRkdfRFJBTV9DT05UUk9MIHwgTU9ERV9FTiB8IFNPRlRfUFJFOworCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1RSTCA9IENPTkZJR19TWVNfRFJBTV9DT05UUk9MIHwgTU9ERV9FTiB8IFNPRlRfUFJFOwogCS8qIGF1dG8gcmVmcmVzaCAqLwotCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1RSTCA9IENGR19EUkFNX0NPTlRST0wgfCBNT0RFX0VOIHwgU09GVF9SRUY7CisJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DVFJMID0gQ09ORklHX1NZU19EUkFNX0NPTlRST0wgfCBNT0RFX0VOIHwgU09GVF9SRUY7CiAJLyogc2V0IG1vZGUgcmVnaXN0ZXIgKi8KLQkqKHZ1X3Nob3J0ICopTVBDNVhYWF9TRFJBTV9NT0RFID0gQ0ZHX0RSQU1fTU9ERTsKKwkqKHZ1X3Nob3J0ICopTVBDNVhYWF9TRFJBTV9NT0RFID0gQ09ORklHX1NZU19EUkFNX01PREU7CiAJLyogbm9ybWFsIG9wZXJhdGlvbiAqLwotCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1RSTCA9IENGR19EUkFNX0NPTlRST0w7CisJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DVFJMID0gQ09ORklHX1NZU19EUkFNX0NPTlRST0w7CiAJLyogd3JpdGUgZGVmYXVsdCBUQVAgZGVsYXkgKi8KLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NETV9QT1JDRkcgPSBDRkdfRFJBTV9UQVBfREVMIDw8IDI0OworCSoodnVfbG9uZyAqKU1QQzVYWFhfQ0RNX1BPUkNGRyA9IENPTkZJR19TWVNfRFJBTV9UQVBfREVMIDw8IDI0OwogCiAjaWYgMAogCWZvciAodGFwX2RlbCA9IDA7IHRhcF9kZWwgPCAzMjsgdGFwX2RlbCsrKQpAQCAtOTcsNyArOTcsNyBAQAogCQl9CiAJfQogI2VuZGlmCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCWRyYW1zaXplID0gKCgxIDw8ICgqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyAtIDB4MTMpKSA8PCAyMCk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2Vtay90b3A4NjAvdG9wODYwLmMgYi9ib2FyZC9lbWsvdG9wODYwL3RvcDg2MC5jCmluZGV4IGFjYTQ5OTEuLjc2ZjdhMGMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2Vtay90b3A4NjAvdG9wODYwLmMKKysrIGIvYm9hcmQvZW1rL3RvcDg2MC90b3A4NjAuYwpAQCAtNzgsNyArNzgsNyBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJLyoKQEAgLTkzLDggKzkzLDggQEAKIAkJCSAgIHNpemVvZiAoZWRvXzYwbnNfMjVNSHpfdGJsKSAvIHNpemVvZiAodWludCkpOwogCQltZW1jdGwtPm1lbWNfbXB0cHIgPSAweDAyMDA7CiAJCW1lbWN0bC0+bWVtY19tYW1yID0gMHgwY2EyMDMzMDsKLQkJbWVtY3RsLT5tZW1jX29yMiA9IC1DRkdfRFJBTV9NQVggfCBPUl9DU05UX1NBTTsKLQkJbWVtY3RsLT5tZW1jX2JyMiA9IENGR19EUkFNX0JBU0UgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwkJbWVtY3RsLT5tZW1jX29yMiA9IC1DT05GSUdfU1lTX0RSQU1fTUFYIHwgT1JfQ1NOVF9TQU07CisJCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0RSQU1fQkFTRSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCQkvKgogCQkgKiBEbyA4IHJlYWQgYWNjZXNzZXMgdG8gRFJBTQogCQkgKi8KQEAgLTExMiw3ICsxMTIsNyBAQAogCQlhZGRyMlsxXSA9IDB4NDcxMTA4MTU7CiAJCWlmIChhZGRyMVswXSA9PSAweGZlZWRjMGRlICYmIGFkZHIxWzFdID09IDB4NDcxMTA4MTUpIHsKIAkJCS8qIG9ubHkgNE1CIHBvcHVsYXRlZCAqLwotCQkJbWVtY3RsLT5tZW1jX29yMiA9IC0oQ0ZHX0RSQU1fTUFYIC8gNCkgfCBPUl9DU05UX1NBTTsKKwkJCW1lbWN0bC0+bWVtY19vcjIgPSAtKENPTkZJR19TWVNfRFJBTV9NQVggLyA0KSB8IE9SX0NTTlRfU0FNOwogCQl9CiAJfQogCmRpZmYgLS1naXQgYS9ib2FyZC9lcDczMTIvZmxhc2guYyBiL2JvYXJkL2VwNzMxMi9mbGFzaC5jCmluZGV4IDFlZjA2ZjguLjBjMmIzYWUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VwNzMxMi9mbGFzaC5jCisrKyBiL2JvYXJkL2VwNzMxMi9mbGFzaC5jCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRSAweDEwMDAwMDAKICNkZWZpbmUgTUFJTl9TRUNUX1NJWkUgIDB4MjAwMDAKIAotZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzgsMTUgKzM4LDE1IEBACiAJaW50IGksIGo7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJdWxvbmcgZmxhc2hiYXNlID0gMDsKIAogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0KIAkJCQkoSU5URUxfTUFOVUZBQ1QgJiBGTEFTSF9WRU5ETUFTSykgfAogCQkJCShJTlRFTF9JRF8yOEYxMjhKMyAmIEZMQVNIX1RZUEVNQVNLKTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCQlpZiAoaSA9PSAwKQogCQkJZmxhc2hiYXNlID0gUEhZU19GTEFTSF8xOwogCQllbHNlCkBAIC02MCw4ICs2MCw4IEBACiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCi0JCQlDRkdfRkxBU0hfQkFTRSwKLQkJCUNGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCkBAIC0xNjUsNyArMTY1LDcgQEAKIAkJCSphZGRyID0gMHhEMDsJCS8qIGVyYXNlIGNvbmZpcm0gKi8KIAogCQkJd2hpbGUgKCgqYWRkciAmIDB4ODApICE9IDB4ODApIHsKLQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJKmFkZHIgPSAweEIwOwkvKiBzdXNwZW5kIGVyYXNlICovCiAJCQkJCSphZGRyID0gMHhGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCiAJCQkJCXJjID0gRVJSX1RJTU9VVDsKQEAgLTIzMiw3ICsyMzIsNyBAQAogCiAJLyogd2FpdCB3aGlsZSBwb2xsaW5nIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAl3aGlsZSAoKCh2YWwgPSAqYWRkcikgJiAweDgwKSAhPSAweDgwKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJjID0gRVJSX1RJTU9VVDsKIAkJCS8qIHN1c3BlbmQgcHJvZ3JhbSBjb21tYW5kICovCiAJCQkqYWRkciA9IDB4QjA7CmRpZmYgLS1naXQgYS9ib2FyZC9lcDgyNDgvZXA4MjQ4LmMgYi9ib2FyZC9lcDgyNDgvZXA4MjQ4LmMKaW5kZXggNGNmYjJhYy4uYmMyMGJhNyAxMDA2NDQKLS0tIGEvYm9hcmQvZXA4MjQ4L2VwODI0OC5jCisrKyBiL2JvYXJkL2VwODI0OC9lcDgyNDguYwpAQCAtMzUsMzEgKzM1LDMxIEBACiAgKiBhY2NvcmRpbmcgdG8gdGhlIGZpdmUgdmFsdWVzIHBvZHIvcGRpci9wcGFyL3Bzb3IvcGRhdCBmb3IgdGhhdCBlbnRyeQogICovCiAKLSNkZWZpbmUgQ0ZHX0ZDQzEgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAxKQotI2RlZmluZSBDRkdfRkNDMiAoQ09ORklHX0VUSEVSX0lOREVYID09IDIpCisjZGVmaW5lIENPTkZJR19TWVNfRkNDMSAoQ09ORklHX0VUSEVSX0lOREVYID09IDEpCisjZGVmaW5lIENPTkZJR19TWVNfRkNDMiAoQ09ORklHX0VUSEVSX0lOREVYID09IDIpCiAKIGNvbnN0IGlvcF9jb25mX3QgaW9wX2NvbmZfdGFiWzRdWzMyXSA9IHsKIAogICAgIC8qIFBvcnQgQSAqLwogICAgIHsJLyoJICAgICAgY29uZiAgICAgIHBwYXIgcHNvciBwZGlyIHBvZHIgcGRhdCAqLwotCS8qIFBBMzEgKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgQ09MICAgICovCi0JLyogUEEzMCAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBDUlMgICAgKi8KLQkvKiBQQTI5ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFRYX0VSICAqLwotCS8qIFBBMjggKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVFhfRU4gICovCi0JLyogUEEyNyAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBSWF9EViAgKi8KLQkvKiBQQTI2ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJYX0VSICAqLworCS8qIFBBMzEgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIENPTCAgICAqLworCS8qIFBBMzAgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIENSUyAgICAqLworCS8qIFBBMjkgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFRYX0VSICAqLworCS8qIFBBMjggKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFRYX0VOICAqLworCS8qIFBBMjcgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJYX0RWICAqLworCS8qIFBBMjYgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJYX0VSICAqLwogCS8qIFBBMjUgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEEyNSAgICAgICAgICAgICovCiAJLyogUEEyNCAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTI0ICAgICAgICAgICAgKi8KIAkvKiBQQTIzICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBBMjMgICAgICAgICAgICAqLwogCS8qIFBBMjIgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEEyMiAgICAgICAgICAgICovCi0JLyogUEEyMSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUeERbM10gKi8KLQkvKiBQQTIwICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFsyXSAqLwotCS8qIFBBMTkgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzFdICovCi0JLyogUEExOCAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUeERbMF0gKi8KLQkvKiBQQTE3ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFswXSAqLwotCS8qIFBBMTYgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzFdICovCi0JLyogUEExNSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBSeERbMl0gKi8KLQkvKiBQQTE0ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFszXSAqLworCS8qIFBBMjEgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFszXSAqLworCS8qIFBBMjAgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFsyXSAqLworCS8qIFBBMTkgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFsxXSAqLworCS8qIFBBMTggKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFswXSAqLworCS8qIFBBMTcgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFswXSAqLworCS8qIFBBMTYgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFsxXSAqLworCS8qIFBBMTUgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFsyXSAqLworCS8qIFBBMTQgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFszXSAqLwogCS8qIFBBMTMgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEExMyAgICAgICAgICAgICovCiAJLyogUEExMiAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTEyICAgICAgICAgICAgKi8KIAkvKiBQQTExICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBBMTEgICAgICAgICAgICAqLwpAQCAtNzgsMjAgKzc4LDIwIEBACiAKICAgICAvKiBQb3J0IEIgKi8KICAgICB7ICAgLyoJICAgICAgY29uZiAgICAgIHBwYXIgcHNvciBwZGlyIHBvZHIgcGRhdCAqLwotCS8qIFBCMzEgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRVIgICovCi0JLyogUEIzMCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9EViAgKi8KLQkvKiBQQjI5ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFRYX0VOICAqLwotCS8qIFBCMjggKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUlhfRVIgICovCi0JLyogUEIyNyAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBDT0wgICAgKi8KLQkvKiBQQjI2ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIENSUyAgICAqLwotCS8qIFBCMjUgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzNdICovCi0JLyogUEIyNCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMl0gKi8KLQkvKiBQQjIzICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFsxXSAqLwotCS8qIFBCMjIgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzBdICovCi0JLyogUEIyMSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMF0gKi8KLQkvKiBQQjIwICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFsxXSAqLwotCS8qIFBCMTkgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzJdICovCi0JLyogUEIxOCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbM10gKi8KKwkvKiBQQjMxICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUWF9FUiAgKi8KKwkvKiBQQjMwICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9EViAgKi8KKwkvKiBQQjI5ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMSwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUWF9FTiAgKi8KKwkvKiBQQjI4ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9FUiAgKi8KKwkvKiBQQjI3ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBDT0wgICAgKi8KKwkvKiBQQjI2ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBDUlMgICAgKi8KKwkvKiBQQjI1ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbM10gKi8KKwkvKiBQQjI0ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMl0gKi8KKwkvKiBQQjIzICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMV0gKi8KKwkvKiBQQjIyICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMF0gKi8KKwkvKiBQQjIxICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMF0gKi8KKwkvKiBQQjIwICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMV0gKi8KKwkvKiBQQjE5ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMl0gKi8KKwkvKiBQQjE4ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbM10gKi8KIAkvKiBQQjE3ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIG5vbi1leGlzdGVudCAgICAqLwogCS8qIFBCMTYgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogbm9uLWV4aXN0ZW50ICAgICovCiAJLyogUEIxNSAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBub24tZXhpc3RlbnQgICAgKi8KQEAgLTEyMywxMSArMTIzLDExIEBACiAJLyogUEMyNSAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzI1ICAgICAgICAgICAgKi8KIAkvKiBQQzI0ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMjQgICAgICAgICAgICAqLwogCS8qIFBDMjMgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMyMyAgICAgICAgICAgICovCi0JLyogUEMyMiAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIFJ4Q2xrIChDTEsxMCkgKi8KLQkvKiBQQzIxICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgVHhDbGsgKENMSzExKSAqLworCS8qIFBDMjIgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgUnhDbGsgKENMSzEwKSAqLworCS8qIFBDMjEgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgVHhDbGsgKENMSzExKSAqLwogCS8qIFBDMjAgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMyMCAgICAgICAgICAgICovCi0JLyogUEMxOSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIFJ4Q2xrIChDTEsxMykgKi8KLQkvKiBQQzE4ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgVHhDbGsgKENMSzE0KSAqLworCS8qIFBDMTkgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgUnhDbGsgKENMSzEzKSAqLworCS8qIFBDMTggKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgVHhDbGsgKENMSzE0KSAqLwogCS8qIFBDMTcgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxNyAgICAgICAgICAgICovCiAJLyogUEMxNiAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzE2ICAgICAgICAgICAgKi8KIAkvKiBQQzE1ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMTUgICAgICAgICAgICAqLwpAQCAtMTg3LDcgKzE4Nyw3IEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7Ci0JdnVfY2hhciAqYmNzciA9ICh2dV9jaGFyICopQ0ZHX0JDU1I7CisJdnVfY2hhciAqYmNzciA9ICh2dV9jaGFyICopQ09ORklHX1NZU19CQ1NSOwogCiAJYmNzcls0XSB8PSAweDMwOyAvKiBUdXJuIHRoZSBMRURzIG9mZiAqLwogCkBAIC0xOTgsMzkgKzE5OCwzOSBAQAogCWJjc3JbN10gfD0gMHgxMDsKICNlbmRpZgogCi0jaWYgQ0ZHX0ZDQzEKKyNpZiBDT05GSUdfU1lTX0ZDQzEKIAliY3NyWzhdIHw9IDB4QzA7Ci0jZW5kaWYgLyogQ0ZHX0ZDQzEgKi8KLSNpZiBDRkdfRkNDMgorI2VuZGlmIC8qIENPTkZJR19TWVNfRkNDMSAqLworI2lmIENPTkZJR19TWVNfRkNDMgogCWJjc3JbOF0gfD0gMHgzMDsKLSNlbmRpZiAvKiBDRkdfRkNDMiAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkNDMiAqLwogCiAJcmV0dXJuIDA7CiB9CiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCXZ1X2NoYXIgKmJjc3IgPSAodnVfY2hhciAqKUNGR19CQ1NSOworCXZ1X2NoYXIgKmJjc3IgPSAodnVfY2hhciAqKUNPTkZJR19TWVNfQkNTUjsKIAlsb25nIGludCBtc2l6ZSA9IDE2TCA8PCAoYmNzclsyXSAmIDMpOwogCi0jaWZuZGVmIENGR19SQU1CT09UCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7Ci0JdnVfY2hhciAqcmFtYWRkciA9ICh2dV9jaGFyICopQ0ZHX1NEUkFNX0JBU0U7CisJdnVfY2hhciAqcmFtYWRkciA9ICh2dV9jaGFyICopQ09ORklHX1NZU19TRFJBTV9CQVNFOwogCXVjaGFyIGMgPSAweEZGOwotCXVpbnQgcHNkbXIgPSBDRkdfUFNETVI7CisJdWludCBwc2RtciA9IENPTkZJR19TWVNfUFNETVI7CiAJaW50IGk7CiAKIAlpbW1hcC0+aW1fc2l1X2NvbmYuc2NfcHBjX2FjciAgPSAweDAyOwogCWltbWFwLT5pbV9zaXVfY29uZi5zY19wcGNfYWxyaCA9IDB4MzAxMjY3NDU7CiAJaW1tYXAtPmltX3NpdV9jb25mLnNjX3Rlc2NyMSAgID0gMHgwMDAwNDAwMDsKIAotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCiAJLyogSW5pdGlhbGlzZSA2MHggYnVzIFNEUkFNICovCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfb3IxICA9IENGR19TRFJBTV9PUjsKLQltZW1jdGwtPm1lbWNfYnIxICA9IENGR19TRFJBTV9CUjsKKwltZW1jdGwtPm1lbWNfcHNydCA9IENPTkZJR19TWVNfUFNSVDsKKwltZW1jdGwtPm1lbWNfb3IxICA9IENPTkZJR19TWVNfU0RSQU1fT1I7CisJbWVtY3RsLT5tZW1jX2JyMSAgPSBDT05GSUdfU1lTX1NEUkFNX0JSOwogCW1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgUFNETVJfT1BfUFJFQTsgLyogUHJlY2hhcmdlIGFsbCBiYW5rcyAqLwogCSpyYW1hZGRyID0gYzsKIAltZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IFBTRE1SX09QX0NCUlI7IC8qIENCUiByZWZyZXNoICovCkBAIC0yNDAsNyArMjQwLDcgQEAKIAkqcmFtYWRkciA9IGM7CiAJbWVtY3RsLT5tZW1jX3BzZG1yID0gcHNkbXIgfCBQU0RNUl9SRkVOOyAgICAvKiBSZWZyZXNoIGVuYWJsZSAqLwogCSpyYW1hZGRyID0gYzsKLSNlbmRpZiAvKiAhQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiAhQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiBSZXR1cm4gdG90YWwgNjB4IGJ1cyBTRFJBTSBzaXplICovCiAJcmV0dXJuIG1zaXplICogMTAyNCAqIDEwMjQ7CkBAIC0yNDgsNyArMjQ4LDcgQEAKIAogaW50IGNoZWNrYm9hcmQodm9pZCkKIHsKLQl2dV9jaGFyICpiY3NyID0gKHZ1X2NoYXIgKilDRkdfQkNTUjsKKwl2dV9jaGFyICpiY3NyID0gKHZ1X2NoYXIgKilDT05GSUdfU1lTX0JDU1I7CiAKIAlwdXRzKCJCb2FyZDogIik7CiAJc3dpdGNoIChiY3NyWzBdKSB7CmRpZmYgLS1naXQgYS9ib2FyZC9lcDgyNjAvY29uZmlnLm1rIGIvYm9hcmQvZXA4MjYwL2NvbmZpZy5tawppbmRleCBlYWYxNTYwLi4xMjI1ODMwIDEwMDY0NAotLS0gYS9ib2FyZC9lcDgyNjAvY29uZmlnLm1rCisrKyBiL2JvYXJkL2VwODI2MC9jb25maWcubWsKQEAgLTI1LDcgKzI1LDcgQEAKICMgRVA4MjYwIGJvYXJkcwogIwogCi0jIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDRkdfRkxBU0hfQkFTRSBkZWZpbmUgaW4gY29uZmlnX2VwODI2MC5oCisjIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgZGVmaW5lIGluIGNvbmZpZ19lcDgyNjAuaAogIyBmb3IgdGhlICJmaW5hbCIgY29uZmlndXJhdGlvbiwgd2l0aCBVLUJvb3QgaW4gZmxhc2gsIG9yIHRoZSBhZGRyZXNzCiAjIGluIFJBTSB3aGVyZSBVLUJvb3QgaXMgbG9hZGVkIGF0IGZvciBkZWJ1Z2dpbmcuCiAjCmRpZmYgLS1naXQgYS9ib2FyZC9lcDgyNjAvZXA4MjYwLmMgYi9ib2FyZC9lcDgyNjAvZXA4MjYwLmMKaW5kZXggMGU0M2M2ZC4uOTBhYjA0NyAxMDA2NDQKLS0tIGEvYm9hcmQvZXA4MjYwL2VwODI2MC5jCisrKyBiL2JvYXJkL2VwODI2MC9lcDgyNjAuYwpAQCAtMTkwLDEyICsxOTAsMTIgQEAKICovCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mICh2b2lkKQogewotCXZvbGF0aWxlIHRfZXBfcmVncyAqcmVncyA9ICh0X2VwX3JlZ3MgKikgQ0ZHX1JFR1NfQkFTRTsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIHRfZXBfcmVncyAqcmVncyA9ICh0X2VwX3JlZ3MgKikgQ09ORklHX1NZU19SRUdTX0JBU0U7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAotCW1lbWN0bC0+bWVtY19icjQgPSBDRkdfQlI0X1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfb3I0ID0gQ0ZHX09SNF9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyNCA9IENPTkZJR19TWVNfQlI0X1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3I0ID0gQ09ORklHX1NZU19PUjRfUFJFTElNOwogCXJlZ3MtPmJjc3IxID0gMHg2MjsJLyogdG8gZW5hYmxlIHRlcm1pbmFsIG9uIFNNQzEgKi8KIAlyZWdzLT5iY3NyMiA9IDB4MzA7CS8qIGVuYWJsZSBOVlJBTSBhbmQgd3JpdGluZyBGTEFTSCAqLwogCXJldHVybiAwOwpAQCAtMjAzLDcgKzIwMyw3IEBACiAKIHZvaWQgcmVzZXRfcGh5ICh2b2lkKQogewotCXZvbGF0aWxlIHRfZXBfcmVncyAqcmVncyA9ICh0X2VwX3JlZ3MgKikgQ0ZHX1JFR1NfQkFTRTsKKwl2b2xhdGlsZSB0X2VwX3JlZ3MgKnJlZ3MgPSAodF9lcF9yZWdzICopIENPTkZJR19TWVNfUkVHU19CQVNFOwogCiAJcmVncy0+YmNzcjQgPSAweEMwOwogfQpAQCAtMjE2LDcgKzIxNiw3IEBACiAKIGludCBjaGVja2JvYXJkICh2b2lkKQogewotCXZvbGF0aWxlIHRfZXBfcmVncyAqcmVncyA9ICh0X2VwX3JlZ3MgKikgQ0ZHX1JFR1NfQkFTRTsKKwl2b2xhdGlsZSB0X2VwX3JlZ3MgKnJlZ3MgPSAodF9lcF9yZWdzICopIENPTkZJR19TWVNfUkVHU19CQVNFOwogCXVpbnQgbWFqb3IgPSAwLCBtaW5vciA9IDA7CiAKIAlzd2l0Y2ggKHJlZ3MtPmJjc3IwKSB7CkBAIC0yNDUsMTggKzI0NSwxOCBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXZvbGF0aWxlIHVjaGFyIGMgPSAwOwotCXZvbGF0aWxlIHVjaGFyICpyYW1hZGRyID0gKHVjaGFyICopIChDRkdfU0RSQU1fQkFTRSkgKyAweDExMDsKKwl2b2xhdGlsZSB1Y2hhciAqcmFtYWRkciA9ICh1Y2hhciAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFKSArIDB4MTEwOwogCiAvKgotCXVsb25nIHBzZG1yID0gQ0ZHX1BTRE1SOwotI2lmZGVmIENGR19MU0RSQU0KLQl1bG9uZyBsc2RtciA9IENGR19MU0RNUjsKKwl1bG9uZyBwc2RtciA9IENPTkZJR19TWVNfUFNETVI7CisjaWZkZWYgQ09ORklHX1NZU19MU0RSQU0KKwl1bG9uZyBsc2RtciA9IENPTkZJR19TWVNfTFNETVI7CiAjZW5kaWYKICovCi0JbG9uZyBzaXplID0gQ0ZHX1NEUkFNMF9TSVpFOworCWxvbmcgc2l6ZSA9IENPTkZJR19TWVNfU0RSQU0wX1NJWkU7CiAJaW50IGk7CiAKIApAQCAtMjc3LDQ0ICsyNzcsNDQgQEAKICogIGFjY2Vzc2luZyB0aGUgU0RSQU0gd2l0aCBhIHNpbmdsZS1ieXRlIHRyYW5zYWN0aW9uLiIKICoKICogVGhlIGFwcHJvcHJpYXRlIEJSeC9PUnggcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCB3aGVuIHdlCi0qIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENGR19TRFJBTV9CQVNFLgorKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDT05GSUdfU1lTX1NEUkFNX0JBU0UuCiAqLwogCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAotCW1lbWN0bC0+bWVtY19wc2RtciA9ICh1bG9uZykgQ0ZHX1BTRE1SIHwgUFNETVJfT1BfUFJFQTsKKwltZW1jdGwtPm1lbWNfcHNkbXIgPSAodWxvbmcpIENPTkZJR19TWVNfUFNETVIgfCBQU0RNUl9PUF9QUkVBOwogCSpyYW1hZGRyID0gYzsKIAotCW1lbWN0bC0+bWVtY19wc2RtciA9ICh1bG9uZykgQ0ZHX1BTRE1SIHwgUFNETVJfT1BfQ0JSUjsKKwltZW1jdGwtPm1lbWNfcHNkbXIgPSAodWxvbmcpIENPTkZJR19TWVNfUFNETVIgfCBQU0RNUl9PUF9DQlJSOwogCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCiAJCSpyYW1hZGRyID0gYzsKIAotCW1lbWN0bC0+bWVtY19wc2RtciA9ICh1bG9uZykgQ0ZHX1BTRE1SIHwgUFNETVJfT1BfTVJXOworCW1lbWN0bC0+bWVtY19wc2RtciA9ICh1bG9uZykgQ09ORklHX1NZU19QU0RNUiB8IFBTRE1SX09QX01SVzsKIAkqcmFtYWRkciA9IGM7CiAKLQltZW1jdGwtPm1lbWNfcHNkbXIgPSAodWxvbmcpIENGR19QU0RNUiB8IFBTRE1SX09QX05PUk0gfCBQU0RNUl9SRkVOOworCW1lbWN0bC0+bWVtY19wc2RtciA9ICh1bG9uZykgQ09ORklHX1NZU19QU0RNUiB8IFBTRE1SX09QX05PUk0gfCBQU0RNUl9SRkVOOwogCSpyYW1hZGRyID0gYzsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAotI2lmZGVmIENGR19MU0RSQU0KLQlzaXplICs9IENGR19TRFJBTTFfU0laRTsKLQlyYW1hZGRyID0gKHVjaGFyICopIChDRkdfU0RSQU0xX0JBU0UpICsgMHg4YzsKLQltZW1jdGwtPm1lbWNfbHNydCA9IENGR19MU1JUOworI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKyNpZmRlZiBDT05GSUdfU1lTX0xTRFJBTQorCXNpemUgKz0gQ09ORklHX1NZU19TRFJBTTFfU0laRTsKKwlyYW1hZGRyID0gKHVjaGFyICopIChDT05GSUdfU1lTX1NEUkFNMV9CQVNFKSArIDB4OGM7CisJbWVtY3RsLT5tZW1jX2xzcnQgPSBDT05GSUdfU1lTX0xTUlQ7CiAKLQltZW1jdGwtPm1lbWNfbHNkbXIgPSAodWxvbmcpIENGR19MU0RNUiB8IFBTRE1SX09QX1BSRUE7CisJbWVtY3RsLT5tZW1jX2xzZG1yID0gKHVsb25nKSBDT05GSUdfU1lTX0xTRE1SIHwgUFNETVJfT1BfUFJFQTsKIAkqcmFtYWRkciA9IGM7CiAKLQltZW1jdGwtPm1lbWNfbHNkbXIgPSAodWxvbmcpIENGR19MU0RNUiB8IFBTRE1SX09QX0NCUlI7CisJbWVtY3RsLT5tZW1jX2xzZG1yID0gKHVsb25nKSBDT05GSUdfU1lTX0xTRE1SIHwgUFNETVJfT1BfQ0JSUjsKIAlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQogCQkqcmFtYWRkciA9IGM7CiAKLQltZW1jdGwtPm1lbWNfbHNkbXIgPSAodWxvbmcpIENGR19MU0RNUiB8IFBTRE1SX09QX01SVzsKKwltZW1jdGwtPm1lbWNfbHNkbXIgPSAodWxvbmcpIENPTkZJR19TWVNfTFNETVIgfCBQU0RNUl9PUF9NUlc7CiAJKnJhbWFkZHIgPSBjOwogCi0JbWVtY3RsLT5tZW1jX2xzZG1yID0gKHVsb25nKSBDRkdfTFNETVIgfCBQU0RNUl9PUF9OT1JNIHwgUFNETVJfUkZFTjsKKwltZW1jdGwtPm1lbWNfbHNkbXIgPSAodWxvbmcpIENPTkZJR19TWVNfTFNETVIgfCBQU0RNUl9PUF9OT1JNIHwgUFNETVJfUkZFTjsKIAkqcmFtYWRkciA9IGM7Ci0jZW5kaWYgLyogQ0ZHX0xTRFJBTSAqLwotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19MU0RSQU0gKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAlyZXR1cm4gKHNpemUgKiAxMDI0ICogMTAyNCk7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9lcDgyNjAvZmxhc2guYyBiL2JvYXJkL2VwODI2MC9mbGFzaC5jCmluZGV4IGQzMjQ4NmQuLjJhODFkZTUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VwODI2MC9mbGFzaC5jCisrKyBiL2JvYXJkL2VwODI2MC9mbGFzaC5jCkBAIC0zNSw3ICszNSw3IEBACiAjZGVmaW5lIFZfQllURShhKQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKCBhICkpCiAKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTM0LDEzICsxMzQsMTMgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAogCS8qIFN0YXRpYyBGTEFTSCBCYW5rIGNvbmZpZ3VyYXRpb24gaGVyZSAob25seSBvbmUgYmFuaykgKi8KIAotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZShDRkdfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoQ09ORklHX1NZU19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCWlmIChmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04gfHwgc2l6ZV9iMCA9PSAwKSB7CiAJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggb24gQmFuayAwIC0gU2l6ZSA9IDB4JTA4bHggPSAlbGQgTUJcbiIsCiAJCQlzaXplX2IwLCBzaXplX2IwPj4yMCk7CkBAIC0xNTAsMTAgKzE1MCwxMCBAQAogCSAqIHByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0gwX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMjg0LDcgKzI4NCw3IEBACiAJd2hpbGUgKChWX1VMT05HKCBpbmZvLT5zdGFydFtsX3NlY3RdICkgJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwIHx8CiAJICAgICAgIChWX1VMT05HKCBpbmZvLT5zdGFydFtsX3NlY3RdICsgNCApICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkKIAl7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC00MDMsNyArNDAzLDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgoVl9VTE9ORyggZGVzdCApICYgMHgwMDgwMDA4MCkgIT0gKGNoICYgMHgwMDgwMDA4MCkpIHx8CiAJICAgICAgICgoVl9VTE9ORyggZGVzdCArIDQgKSAmIDB4MDA4MDAwODApICE9IChjbCAmIDB4MDA4MDAwODApKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZXA4MjYwL21paV9waHkuYyBiL2JvYXJkL2VwODI2MC9taWlfcGh5LmMKaW5kZXggODEzZjAyMC4uYzdhYTI3NSAxMDA2NDQKLS0tIGEvYm9hcmQvZXA4MjYwL21paV9waHkuYworKysgYi9ib2FyZC9lcDgyNjAvbWlpX3BoeS5jCkBAIC01NCw3ICs1NCw3IEBACiB7CiAgICAgaW50IGk7CiAgICAgdW5zaWduZWQgc2hvcnQgdG1wLCB2YWwgPSAwLCBhZHIgPSAwOwotICAgIHRfZXBfcmVncyAqcmVncyA9ICh0X2VwX3JlZ3MqKUNGR19SRUdTX0JBU0U7CisgICAgdF9lcF9yZWdzICpyZWdzID0gKHRfZXBfcmVncyopQ09ORklHX1NZU19SRUdTX0JBU0U7CiAKICAgICB0bXAgPSAweDYwMDIgfCAoYWRyIDw8IDcpIHwgKHJlZyA8PCAyKTsKICAgICByZWdzLT5iY3NyNCA9IDB4QzM7CkBAIC04Myw3ICs4Myw3IEBACiB7CiAgICAgaW50IGk7CiAgICAgdW5zaWduZWQgc2hvcnQgdG1wLCBhZHIgPSAwOwotICAgIHRfZXBfcmVncyAqcmVncyA9ICh0X2VwX3JlZ3MqKUNGR19SRUdTX0JBU0U7CisgICAgdF9lcF9yZWdzICpyZWdzID0gKHRfZXBfcmVncyopQ09ORklHX1NZU19SRUdTX0JBU0U7CiAKICAgICB0bXAgPSAweDUwMDIgfCAoYWRyIDw8IDcpIHwgKHJlZyA8PCAyKTsKICAgICByZWdzLT5iY3NyNCA9IDB4QzM7CmRpZmYgLS1naXQgYS9ib2FyZC9lcDgyeHhtL2VwODJ4eG0uYyBiL2JvYXJkL2VwODJ4eG0vZXA4Mnh4bS5jCmluZGV4IDAzYmFmMGIuLmMxZDZlOTEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VwODJ4eG0vZXA4Mnh4bS5jCisrKyBiL2JvYXJkL2VwODJ4eG0vZXA4Mnh4bS5jCkBAIC0zOSw4ICszOSw4IEBACiAgKiBhY2NvcmRpbmcgdG8gdGhlIGZpdmUgdmFsdWVzIHBvZHIvcGRpci9wcGFyL3Bzb3IvcGRhdCBmb3IgdGhhdCBlbnRyeQogICovCiAKLSNkZWZpbmUgQ0ZHX0ZDQzIgMQotI2RlZmluZSBDRkdfRkNDMyAxCisjZGVmaW5lIENPTkZJR19TWVNfRkNDMiAxCisjZGVmaW5lIENPTkZJR19TWVNfRkNDMyAxCiAKIGNvbnN0IGlvcF9jb25mX3QgaW9wX2NvbmZfdGFiWzRdWzMyXSA9IHsKIApAQCAtODIsMzQgKzgyLDM0IEBACiAKICAgICAvKiBQb3J0IEIgKi8KICAgICB7CS8qCSAgICAgY29uZglwcGFyIHBzb3IgcGRpciBwb2RyIHBkYXQgKi8KLQkvKiBQQjMxICovIHsgQ0ZHX0ZDQzIsCSAxLCAgIDAsICAgMSwJMCwgICAwIH0sIC8qIEZDQzIgTUlJIFRYX0VSICAqLwotCS8qIFBCMzAgKi8geyBDRkdfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgUlhfRFYgICovCi0JLyogUEIyOSAqLyB7IENGR19GQ0MyLAkgMSwgICAxLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUWF9FTiAgKi8KLQkvKiBQQjI4ICovIHsgQ0ZHX0ZDQzIsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJYX0VSICAqLwotCS8qIFBCMjcgKi8geyBDRkdfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgQ09MICAgICovCi0JLyogUEIyNiAqLyB7IENGR19GQ0MyLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBDUlMgICAgKi8KLQkvKiBQQjI1ICovIHsgQ0ZHX0ZDQzIsCSAxLCAgIDAsICAgMSwJMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFszXSAqLwotCS8qIFBCMjQgKi8geyBDRkdfRkNDMiwJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzJdICovCi0JLyogUEIyMyAqLyB7IENGR19GQ0MyLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMV0gKi8KLQkvKiBQQjIyICovIHsgQ0ZHX0ZDQzIsCSAxLCAgIDAsICAgMSwJMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFswXSAqLwotCS8qIFBCMjEgKi8geyBDRkdfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzBdICovCi0JLyogUEIyMCAqLyB7IENGR19GQ0MyLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMV0gKi8KLQkvKiBQQjE5ICovIHsgQ0ZHX0ZDQzIsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFsyXSAqLwotCS8qIFBCMTggKi8geyBDRkdfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzNdICovCi0JLyogUEIxNyAqLyB7IENGR19GQ0MzLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MzOlJYX0RJViAgICAgKi8KLQkvKiBQQjE2ICovIHsgQ0ZHX0ZDQzMsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIEZDQzM6UlhfRVJSICAgICAqLwotCS8qIFBCMTUgKi8geyBDRkdfRkNDMywJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMzpUWF9FUlIgICAgICovCi0JLyogUEIxNCAqLyB7IENGR19GQ0MzLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MzOlRYX0VOICAgICAgKi8KLQkvKiBQQjEzICovIHsgQ0ZHX0ZDQzMsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIEZDQzM6Q09MCSAgICAgKi8KLQkvKiBQQjEyICovIHsgQ0ZHX0ZDQzMsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIEZDQzM6Q1JTCSAgICAgKi8KLQkvKiBQQjExICovIHsgQ0ZHX0ZDQzMsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIEZDQzM6UlhECSAgICAgKi8KLQkvKiBQQjEwICovIHsgQ0ZHX0ZDQzMsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIEZDQzM6UlhECSAgICAgKi8KLQkvKiBQQjkJKi8geyBDRkdfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMzpSWEQJICAgICAqLwotCS8qIFBCOAkqLyB7IENGR19GQ0MzLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MzOlJYRAkgICAgICovCisJLyogUEIzMSAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRVIgICovCisJLyogUEIzMCAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgUlhfRFYgICovCisJLyogUEIyOSAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMSwgICAxLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRU4gICovCisJLyogUEIyOCAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgUlhfRVIgICovCisJLyogUEIyNyAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgQ09MICAgICovCisJLyogUEIyNiAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgQ1JTICAgICovCisJLyogUEIyNSAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzNdICovCisJLyogUEIyNCAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzJdICovCisJLyogUEIyMyAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzFdICovCisJLyogUEIyMiAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzBdICovCisJLyogUEIyMSAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzBdICovCisJLyogUEIyMCAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzFdICovCisJLyogUEIxOSAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzJdICovCisJLyogUEIxOCAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzNdICovCisJLyogUEIxNyAqLyB7IENPTkZJR19TWVNfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMzpSWF9ESVYgICAgICovCisJLyogUEIxNiAqLyB7IENPTkZJR19TWVNfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMzpSWF9FUlIgICAgICovCisJLyogUEIxNSAqLyB7IENPTkZJR19TWVNfRkNDMywJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMzpUWF9FUlIgICAgICovCisJLyogUEIxNCAqLyB7IENPTkZJR19TWVNfRkNDMywJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMzpUWF9FTiAgICAgICovCisJLyogUEIxMyAqLyB7IENPTkZJR19TWVNfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMzpDT0wJICAgICAqLworCS8qIFBCMTIgKi8geyBDT05GSUdfU1lTX0ZDQzMsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIEZDQzM6Q1JTCSAgICAgKi8KKwkvKiBQQjExICovIHsgQ09ORklHX1NZU19GQ0MzLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MzOlJYRAkgICAgICovCisJLyogUEIxMCAqLyB7IENPTkZJR19TWVNfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMzpSWEQJICAgICAqLworCS8qIFBCOQkqLyB7IENPTkZJR19TWVNfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMzpSWEQJICAgICAqLworCS8qIFBCOAkqLyB7IENPTkZJR19TWVNfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMzpSWEQJICAgICAqLwogCS8qIFBCNwkqLyB7IDAsCQkgMCwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBQQjcJICAgICAqLwotCS8qIFBCNgkqLyB7IENGR19GQ0MzLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MzOlRYRAkgICAgICovCi0JLyogUEI1CSovIHsgQ0ZHX0ZDQzMsCSAxLCAgIDAsICAgMSwJMCwgICAwIH0sIC8qIEZDQzM6VFhECSAgICAgKi8KLQkvKiBQQjQJKi8geyBDRkdfRkNDMywJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMzpUWEQJICAgICAqLworCS8qIFBCNgkqLyB7IENPTkZJR19TWVNfRkNDMywJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMzpUWEQJICAgICAqLworCS8qIFBCNQkqLyB7IENPTkZJR19TWVNfRkNDMywJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMzpUWEQJICAgICAqLworCS8qIFBCNAkqLyB7IENPTkZJR19TWVNfRkNDMywJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMzpUWEQJICAgICAqLwogCS8qIFBCMwkqLyB7IDAsCQkgMCwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBub24tZXhpc3RlbnQgICAgKi8KIAkvKiBQQjIJKi8geyAwLAkJIDAsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogbm9uLWV4aXN0ZW50ICAgICovCiAJLyogUEIxCSovIHsgMCwJCSAwLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIG5vbi1leGlzdGVudCAgICAqLwpAQCAtMTIyLDcgKzEyMiw3IEBACiAJLyogUEMzMCAqLyB7IDAsCQkgMCwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBQQzMwCSAgICAgKi8KIAkvKiBQQzI5ICovIHsgMSwJCSAxLCAgIDEsICAgMCwJMCwgICAwIH0sIC8qIFNDQzEgQ1RTIwkgICAgICovCiAJLyogUEMyOCAqLyB7IDAsCQkgMCwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBQQzI4CSAgICAgKi8KLQkvKiBQQzI3ICovIHsgQ0ZHX0ZDQzMsCSAxLCAgIDAsICAgMSwJMCwgICAwIH0sIC8qIEZDQzM6IFRYRFswXSAgICAqLworCS8qIFBDMjcgKi8geyBDT05GSUdfU1lTX0ZDQzMsCSAxLCAgIDAsICAgMSwJMCwgICAwIH0sIC8qIEZDQzM6IFRYRFswXSAgICAqLwogCS8qIFBDMjYgKi8geyAwLAkJIDAsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogUEMyNgkgICAgICovCiAJLyogUEMyNSAqLyB7IDAsCQkgMCwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBQQzI1CSAgICAgKi8KIAkvKiBQQzI0ICovIHsgMCwJCSAwLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFBDMjQJICAgICAqLwpAQCAtMTMwLDEwICsxMzAsMTAgQEAKIAkvKiBQQzIyICovIHsgMCwJCSAwLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFBDMjIJICAgICAqLwogCS8qIFBDMjEgKi8geyAwLAkJIDAsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogUEMyMQkgICAgICovCiAJLyogUEMyMCAqLyB7IDAsCQkgMCwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBQQzIwCSAgICAgKi8KLQkvKiBQQzE5ICovIHsgQ0ZHX0ZDQzIsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFJ4Q2xrIChDTEsxMykgICAqLwotCS8qIFBDMTggKi8geyBDRkdfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogVHhDbGsgKENMSzE0KSAgICovCi0JLyogUEMxNyAqLyB7IENGR19GQ0MzLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBSeENsayAoQ0xLMTUpICAgKi8KLQkvKiBQQzE2ICovIHsgQ0ZHX0ZDQzMsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFR4Q2xrIChDTEsxNikgICAqLworCS8qIFBDMTkgKi8geyBDT05GSUdfU1lTX0ZDQzIsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFJ4Q2xrIChDTEsxMykgICAqLworCS8qIFBDMTggKi8geyBDT05GSUdfU1lTX0ZDQzIsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFR4Q2xrIChDTEsxNCkgICAqLworCS8qIFBDMTcgKi8geyBDT05GSUdfU1lTX0ZDQzMsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFJ4Q2xrIChDTEsxNSkgICAqLworCS8qIFBDMTYgKi8geyBDT05GSUdfU1lTX0ZDQzMsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFR4Q2xrIChDTEsxNikgICAqLwogCS8qIFBDMTUgKi8geyAwLAkJIDAsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogUEMxNQkgICAgICovCiAJLyogUEMxNCAqLyB7IDEsCQkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBTQ0MxIENEIwkgICAgICovCiAJLyogUEMxMyAqLyB7IDEsCQkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBTQ0MyIENUUyMJICAgICAqLwpAQCAtMTk4LDcgKzE5OCw3IEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7Ci0JdnVfY2hhciAqYmNzciA9ICh2dV9jaGFyICopQ0ZHX0JDU1I7CisJdnVfY2hhciAqYmNzciA9ICh2dV9jaGFyICopQ09ORklHX1NZU19CQ1NSOwogCiAJYmNzcls0XSB8PSAweDMwOyAvKiBUdXJuIHRoZSBMRURzIG9mZiAqLwogCkBAIC0yMDksMTIgKzIwOSwxMiBAQAogCWJjc3JbN10gfD0gMHgxMDsKICNlbmRpZgogCi0jaWYgQ0ZHX0ZDQzMKKyNpZiBDT05GSUdfU1lTX0ZDQzMKIAliY3NyWzhdIHw9IDB4QzA7Ci0jZW5kaWYgLyogQ0ZHX0ZDQzMgKi8KLSNpZiBDRkdfRkNDMgorI2VuZGlmIC8qIENPTkZJR19TWVNfRkNDMyAqLworI2lmIENPTkZJR19TWVNfRkNDMgogCWJjc3JbOF0gfD0gMHgzMDsKLSNlbmRpZiAvKiBDRkdfRkNDMiAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkNDMiAqLwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yMjQsMjMgKzIyNCwyMyBAQAogCS8qIFNpemUgaW4gTUIgb2YgU0RSQU0gcG9wdWxhdGVkIG9uIGJvYXJkKi8KIAlsb25nIGludCBtc2l6ZSA9IDI1NjsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwotCXVpbnQgcHNkbXIgPSBDRkdfUFNETVI7CisJdWludCBwc2RtciA9IENPTkZJR19TWVNfUFNETVI7CiAJaW50IGk7CiAKIAl1bnNpZ25lZCBjaGFyCXJhbXRtcDsKIAl1bnNpZ25lZCBjaGFyCSpyYW1wdHIxID0gKHVuc2lnbmVkIGNoYXIgKikweDAwMDAwMTEwOwogCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIHVkZWxheSg0MDApOwogCiAJLyogSW5pdGlhbGlzZSA2MHggYnVzIFNEUkFNICovCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfb3IxICA9IENGR19TRFJBTV9PUjsKLQltZW1jdGwtPm1lbWNfYnIxICA9IENGR19TRFJBTV9CUjsKKwltZW1jdGwtPm1lbWNfcHNydCA9IENPTkZJR19TWVNfUFNSVDsKKwltZW1jdGwtPm1lbWNfb3IxICA9IENPTkZJR19TWVNfU0RSQU1fT1I7CisJbWVtY3RsLT5tZW1jX2JyMSAgPSBDT05GSUdfU1lTX1NEUkFNX0JSOwogCW1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yOwogCiB1ZGVsYXkoNDAwKTsKQEAgLTI1NSw3ICsyNTUsNyBAQAogCW1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgUFNETVJfT1BfTVJXOyAgLyogTW9kZSBSZWdpc3RlciB3cml0ZSAqLwogCSpyYW1wdHIxICA9IDB4RkY7CiAJbWVtY3RsLT5tZW1jX3BzZG1yID0gcHNkbXIgfCBQU0RNUl9SRkVOOyAgICAvKiBSZWZyZXNoIGVuYWJsZSAqLwotI2VuZGlmIC8qICFDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qICFDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIFJldHVybiB0b3RhbCA2MHggYnVzIFNEUkFNIHNpemUgKi8KIAlyZXR1cm4gbXNpemUgKiAxMDI0ICogMTAyNDsKQEAgLTI2Myw3ICsyNjMsNyBAQAogCiBpbnQgY2hlY2tib2FyZCh2b2lkKQogewotCXZ1X2NoYXIgKmJjc3IgPSAodnVfY2hhciAqKUNGR19CQ1NSOworCXZ1X2NoYXIgKmJjc3IgPSAodnVfY2hhciAqKUNPTkZJR19TWVNfQkNTUjsKIAogCXB1dHMoIkJvYXJkOiAiKTsKIAlzd2l0Y2ggKGJjc3JbMF0pIHsKZGlmZiAtLWdpdCBhL2JvYXJkL2VwODh4L2VwODh4LmMgYi9ib2FyZC9lcDg4eC9lcDg4eC5jCmluZGV4IDkyZTVmMGMuLjdlOTUwMDcgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VwODh4L2VwODh4LmMKKysrIGIvYm9hcmQvZXA4OHgvZXA4OHguYwpAQCAtNjMsNyArNjMsNyBAQAogCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mICh2b2lkKQogewotCXZ1X2NoYXIgKmJjc3IgPSAodnVfY2hhciAqKUNGR19CQ1NSOworCXZ1X2NoYXIgKmJjc3IgPSAodnVfY2hhciAqKUNPTkZJR19TWVNfQkNTUjsKIAogCWJjc3JbMF0gfD0gMHgwQzsgLyogVHVybiB0aGUgTEVEcyBvZmYgKi8KIAliY3NyWzJdIHw9IDB4MDg7IC8qIEVuYWJsZSBmbGFzaCBXRSMgbGluZSAtIG5lY2Vzc2FyeSBmb3IKQEAgLTg5LDcgKzg5LDcgQEAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKIAlsb25nIGludCBtc2l6ZTsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJdXBtY29uZmlnKFVQTUEsIHNkcmFtX3RhYmxlLCBzaXplb2Yoc2RyYW1fdGFibGUpIC8gc2l6ZW9mKHVpbnQpKTsKQEAgLTk3LDcgKzk3LDcgQEAKIAkvKiBDb25maWd1cmUgU0RSQU0gcmVmcmVzaCAqLwogCW1lbWN0bC0+bWVtY19tcHRwciA9IE1QVFBSX1BUUF9ESVYyOyAvKiBCUkdDTEsvMiAqLwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSAoNjUgPDwgMjQpIHwgQ0ZHX01BTVI7IC8qIE5vIHJlZnJlc2ggKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9ICg2NSA8PCAyNCkgfCBDT05GSUdfU1lTX01BTVI7IC8qIE5vIHJlZnJlc2ggKi8KIAl1ZGVsYXkoMTAwKTsKIAogCS8qIFJ1biBNUlMgcGF0dGVybiBmcm9tIGxvY2F0aW9uIDB4MzYgKi8KQEAgLTEwNiwxMCArMTA2LDEwIEBACiAJdWRlbGF5KDEwMCk7CiAKIAltZW1jdGwtPm1lbWNfbWFtciB8PSAgTUFNUl9QVEFFOyAvKiBFbmFibGUgcmVmcmVzaCAqLwotCW1lbWN0bC0+bWVtY19vcjEgICA9IH4oQ0ZHX1NEUkFNX01BWF9TSVpFIC0gMSkgfCBPUl9DU05UX1NBTTsKLQltZW1jdGwtPm1lbWNfYnIxICAgPSAgQ0ZHX1NEUkFNX0JBU0UgfCBCUl9QU18zMiB8IEJSX01TX1VQTUEgfCBCUl9WOworCW1lbWN0bC0+bWVtY19vcjEgICA9IH4oQ09ORklHX1NZU19TRFJBTV9NQVhfU0laRSAtIDEpIHwgT1JfQ1NOVF9TQU07CisJbWVtY3RsLT5tZW1jX2JyMSAgID0gIENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJSX1BTXzMyIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CiAKLQltc2l6ZSA9IGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgQ0ZHX1NEUkFNX01BWF9TSVpFKTsKKwltc2l6ZSA9IGdldF9yYW1fc2l6ZShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfU0RSQU1fTUFYX1NJWkUpOwogCW1lbWN0bC0+bWVtY19vcjEgIHw9IH4obXNpemUgLSAxKTsKIAogCXJldHVybiBtc2l6ZTsKQEAgLTExNyw3ICsxMTcsNyBAQAogCiBpbnQgY2hlY2tib2FyZCggdm9pZCApCiB7Ci0JdnVfY2hhciAqYmNzciA9ICh2dV9jaGFyICopQ0ZHX0JDU1I7CisJdnVfY2hhciAqYmNzciA9ICh2dV9jaGFyICopQ09ORklHX1NZU19CQ1NSOwogCiAJcHV0cygiQm9hcmQ6ICIpOwogCXN3aXRjaCAoYmNzclsxNV0pIHsKZGlmZiAtLWdpdCBhL2JvYXJkL2VyaWMvZXJpYy5jIGIvYm9hcmQvZXJpYy9lcmljLmMKaW5kZXggOTcyZDQ4NS4uNjAwYjlkNyAxMDA2NDQKLS0tIGEvYm9hcmQvZXJpYy9lcmljLmMKKysrIGIvYm9hcmQvZXJpYy9lcmljLmMKQEAgLTE0Miw3ICsxNDIsNyBAQAogCSAqIHNvIGxldCBpbml0LlMgZG8gdGhlIGluaXQgam9iIGZvciBTRFJBTQogCSAqIGFuZCBzaW1wbHkgcmV0dXJuIDMyTUJ5dGUgaGVyZQogCSAqLwotCXJldHVybiAoQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCk7CisJcmV0dXJuIChDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCk7CiAjZWxzZQogCiAJLyogUmVhZCBTZXJpYWwgUHJlc2VuY2UgRGV0ZWN0IEluZm9ybWF0aW9uICovCmRpZmYgLS1naXQgYS9ib2FyZC9lcmljL2ZsYXNoLmMgYi9ib2FyZC9lcmljL2ZsYXNoLmMKaW5kZXggMmM3ZDJhMC4uN2U1NzUxMyAxMDA2NDQKLS0tIGEvYm9hcmQvZXJpYy9mbGFzaC5jCisrKyBiL2JvYXJkL2VyaWMvZmxhc2guYwpAQCAtMjUsMTAgKzI1LDEwIEBACiAjaW5jbHVkZSA8cHBjNHh4Lmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogCi0jaWZkZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogI2RlZmluZSBGTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQKICNkZWZpbmUJRkxBU0hfSURfTUFTSwkweEZGRkYKICNlbHNlCkBAIC00Miw3ICs0Miw3IEBACiAvKiBzdG9sZW4gZnJvbSBlc3RlZW0xOTJlL2ZsYXNoLmMgKi8KIHVsb25nIGZsYXNoX2dldF9zaXplICh2b2xhdGlsZSBGTEFTSF9XT1JEX1NJWkUgKmFkZHIsIGZsYXNoX2luZm9fdCAqaW5mbyk7CiAKLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIHN0YXRpYyBpbnQgd3JpdGVfd29yZCAoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKTsKICNlbHNlCiBzdGF0aWMgaW50IHdyaXRlX3Nob3J0IChmbGFzaF9pbmZvX3QgKmluZm8sIHVsb25nIGRlc3QsIHVzaG9ydCBkYXRhKTsKQEAgLTYxLDcgKzYxLDcgQEAKIAl1bnNpZ25lZCBsb25nIGJhc2VfYjAsIGJhc2VfYjE7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTc1LDcgKzc1LDcgQEAKIAl9CiAKIAkvKiBPbmx5IG9uZSBiYW5rICovCi0JaWYgKENGR19NQVhfRkxBU0hfQkFOS1MgPT0gMSkKKwlpZiAoQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgPT0gMSkKIAkgIHsKIAkgICAgLyogU2V0dXAgb2Zmc2V0cyAqLwogCSAgICBmbGFzaF9nZXRfb2Zmc2V0cyAoRkxBU0hfQkFTRTBfUFJFTElNLCAmZmxhc2hfaW5mb1swXSk7CkBAIC04OCw4ICs4OCw4IEBACiAJCQkJJmZsYXNoX2luZm9bMF0pOwogI2Vsc2UKIAkgICAgKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJCUNGR19NT05JVE9SX0JBU0UsCi0JCQkJQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCQkJJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAJICAgIHNpemVfYjEgPSAwIDsKQEAgLTEzNyw4ICsxMzcsOCBAQAogCQkJCSZmbGFzaF9pbmZvWzBdKTsKICNlbHNlCiAJICAgICh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCQlDRkdfTU9OSVRPUl9CQVNFLAotCQkJCUNGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkJCSZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0xODcsNyArMTg3LDcgQEAKIAl9IGVsc2UgaWYgKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfQlRZUEUpIHsKIAkgICAgIGlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX0lOVEVMKSB7CiAKLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIAkJLyogc2V0IHNlY3RvciBvZmZzZXRzIGZvciBib3R0b20gYm9vdCBibG9jayB0eXBlCSovCiAJCWluZm8tPnN0YXJ0WzBdID0gYmFzZSArIDB4MDAwMDAwMDA7CiAJCWluZm8tPnN0YXJ0WzFdID0gYmFzZSArIDB4MDAwMDQwMDA7CkBAIC0yNDEsNyArMjQxLDcgQEAKIAkJaSA9IGluZm8tPnNlY3Rvcl9jb3VudCAtIDE7CiAJICAgICBpZiAoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVkVORE1BU0spID09IEZMQVNIX01BTl9JTlRFTCkgewogCi0jaWZuZGVmIENGR19GTEFTSF8xNkJJVAorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAJCWluZm8tPnN0YXJ0W2ktLV0gPSBiYXNlICsgaW5mby0+c2l6ZSAtIDB4MDAwMDQwMDA7CiAJCWluZm8tPnN0YXJ0W2ktLV0gPSBiYXNlICsgaW5mby0+c2l6ZSAtIDB4MDAwMDgwMDA7CiAJCWluZm8tPnN0YXJ0W2ktLV0gPSBiYXNlICsgaW5mby0+c2l6ZSAtIDB4MDAwMEMwMDA7CkBAIC00MDMsNyArNDAzLDcgQEAKIAkvKiBXcml0ZSBhdXRvIHNlbGVjdCBjb21tYW5kOiByZWFkIE1hbnVmYWN0dXJlciBJRCAqLwogCiAKLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIAogCS8qCiAJICogTm90ZTogaWYgaXQgaXMgYW4gQU1EIGZsYXNoIGFuZCB0aGUgd29yZCBhdCBhZGRyWzAwMDBdCkBAIC02NTQsNyArNjU0LDcgQEAKIAkvKiBEaXNhYmxlIGludGVycnVwdHMgd2hpY2ggbWlnaHQgY2F1c2UgYSB0aW1lb3V0IGhlcmUgKi8KIAlmbGFnID0gZGlzYWJsZV9pbnRlcnJ1cHRzKCk7CiAgICAgaWYoaW5mby0+Zmxhc2hfaWQgPCBGTEFTSF9BTURfQ09NUCkgewotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCWFkZHJbMHgwNTU1XSA9IDB4MDBBQTAwQUE7CiAJYWRkclsweDAyQUFdID0gMHgwMDU1MDA1NTsKIAlhZGRyWzB4MDU1NV0gPSAweDAwODAwMDgwOwpAQCAtNjk1LDcgKzY5NSw3IEBACiAJd2hpbGUgKChhZGRyWzBdICYgKDB4MDA4MDAwODAmRkxBU0hfSURfTUFTSykpICE9CiAJCQkgICgweDAwODAwMDgwJkZMQVNIX0lEX01BU0spICApCiAJewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtNzE2LDcgKzcxNiw3IEBACiAJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdDw9c19sYXN0OyBzZWN0KyspIHsKIAkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCiAJCQliYXJmID0gMDsKLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIAkJCWFkZHIgPSAodnVfbG9uZyopKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAkJCWFkZHJbMF0gPSAweDAwMjAwMDIwOwogCQkJYWRkclswXSA9IDB4MDBEMDAwRDA7CkBAIC03NjcsNyArNzY3LDcgQEAKIAlmbGFzaF9pbmZvX3QgKmluZm87CiAJaW50IGk7CiAKLQlmb3IgKGk9MCwgaW5mbz0mZmxhc2hfaW5mb1swXTsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2ksICsraW5mbykgeworCWZvciAoaT0wLCBpbmZvPSZmbGFzaF9pbmZvWzBdOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2ksICsraW5mbykgewogCQlpZiAoKGFkZHIgPj0gaW5mby0+c3RhcnRbMF0pICYmCiAJCSAgICAoYWRkciA8IChpbmZvLT5zdGFydFswXSArIGluZm8tPnNpemUpKSApIHsKIAkJCXJldHVybiAoaW5mbyk7CkBAIC04NDQsNyArODQ0LDcgQEAKIAogaW50IHdyaXRlX2J1ZmYgKGZsYXNoX2luZm9fdCAqaW5mbywgdWNoYXIgKnNyYywgdWxvbmcgYWRkciwgdWxvbmcgY250KQogewotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCXVsb25nIGNwLCB3cCwgZGF0YTsKIAlpbnQgbDsKICNlbHNlCkBAIC04NTMsNyArODUzLDcgQEAKICNlbmRpZgogCWludCBpLCByYzsKIAotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCiAKIAl3cCA9IChhZGRyICYgfjMpOwkvKiBnZXQgbG93ZXIgd29yZCBhbGlnbmVkIGFkZHJlc3MgKi8KQEAgLTk4MCw3ICs5ODAsNyBAQAogICogMSAtIHdyaXRlIHRpbWVvdXQKICAqIDIgLSBGbGFzaCBub3QgZXJhc2VkCiAgKi8KLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIHN0YXRpYyBpbnQgd3JpdGVfd29yZCAoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSkKIHsKIAl2dV9sb25nICphZGRyID0gKHZ1X2xvbmcgKikgKGluZm8tPnN0YXJ0WzBdKTsKQEAgLTEwMTgsNyArMTAxOCw3IEBACiAKIAkJd2hpbGUgKCgqKCh2dV9sb25nICopIGRlc3QpICYgMHgwMDgwMDA4MCkgIT0KIAkJICAgICAgIChkYXRhICYgMHgwMDgwMDA4MCkpIHsKLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gKDEpOwogCQkJfQogCQl9CkBAIC0xMDI2LDcgKzEwMjYsNyBAQAogCX0gZWxzZSB7CiAKIAkJd2hpbGUgKCEoYWRkclswXSAmIDB4MDA4MDAwODApKSB7CS8qIHdhaXQgZm9yIGVycm9yIG9yIGZpbmlzaCAqLwotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAKQEAgLTEwOTMsNyArMTA5Myw3IEBACiAJaWYgKGluZm8tPmZsYXNoX2lkIDwgRkxBU0hfQU1EX0NPTVApIHsKIAkJLyogQU1EIHN0dWZmICovCiAJCXdoaWxlICgoKigodnVfc2hvcnQgKikgZGVzdCkgJiAweDAwODApICE9IChkYXRhICYgMHgwMDgwKSkgewotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KQEAgLTExMDEsNyArMTEwMSw3IEBACiAJfSBlbHNlIHsKIAkJLyogaW50ZWwgc3R1ZmYgKi8KIAkJd2hpbGUgKCEoYWRkclswXSAmIDB4MDA4MCkpIHsJLyogd2FpdCBmb3IgZXJyb3Igb3IgZmluaXNoICovCi0JCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkKIAkJCQlyZXR1cm4gKDEpOwogCQl9CiAKQEAgLTExMjAsNyArMTEyMCw3IEBACiAJCSphZGRyID0gMHgwMEIwOwogCQkqYWRkciA9IDB4MDA3MDsKIAkJd2hpbGUgKCEoYWRkclswXSAmIDB4MDA4MCkpIHsJLyogd2FpdCBmb3IgZXJyb3Igb3IgZmluaXNoICovCi0JCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkKIAkJCQlyZXR1cm4gKDEpOwogCQl9CiAJCSphZGRyID0gMHgwMEZGOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXJpYy9pbml0LlMgYi9ib2FyZC9lcmljL2luaXQuUwppbmRleCA5ZDRlN2ZmLi4yMzA0Y2M3IDEwMDY0NAotLS0gYS9ib2FyZC9lcmljL2luaXQuUworKysgYi9ib2FyZC9lcmljL2luaXQuUwpAQCAtMjE5LDcgKzIxOSw3IEBACiAKIAltZmxyCXIzMQogCi0jaWZkZWYgQ0ZHX1NEUkFNX01BTlVBTExZCisjaWZkZWYgQ09ORklHX1NZU19TRFJBTV9NQU5VQUxMWQogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCS8qIFNldCBNQjBDRiBmb3IgYmFuayAwLiAoMC0zMk1CKSBBZGRyZXNzIE1vZGUgNCBzaW5jZSAxMng4KDIpICovCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvYWRjaW9wL2ZsYXNoLmMgYi9ib2FyZC9lc2QvYWRjaW9wL2ZsYXNoLmMKaW5kZXggZDllY2NiYS4uZGQ1NzhjOCAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2FkY2lvcC9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9hZGNpb3AvZmxhc2guYwpAQCAtNDUsNyArNDUsNyBAQAogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvYXBjNDA1L2FwYzQwNS5jIGIvYm9hcmQvZXNkL2FwYzQwNS9hcGM0MDUuYwppbmRleCBlNjI5ZmQ5Li5hYzliYmIzIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvYXBjNDA1L2FwYzQwNS5jCisrKyBiL2JvYXJkL2VzZC9hcGM0MDUvYXBjNDA1LmMKQEAgLTQxLDcgKzQxLDcgQEAKIGV4dGVybiB2b2lkIGx4dDk3MV9ub19zbGVlcCh2b2lkKTsKIGV4dGVybiB1bG9uZyBmbGFzaF9nZXRfc2l6ZSAodWxvbmcgYmFzZSwgaW50IGJhbmtudW0pOwogCi1pbnQgZmxhc2hfYmFua3MgPSBDRkdfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVDsKK2ludCBmbGFzaF9iYW5rcyA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVDsKIAogLyogZnBnYSBjb25maWd1cmF0aW9uIGRhdGEgLSBnemlwIGNvbXByZXNzZWQgYW5kIGdlbmVyYXRlZCBieSBiaW4yYyAqLwogY29uc3QgdW5zaWduZWQgY2hhciBmcGdhZGF0YVtdID0KQEAgLTE0MCw3ICsxNDAsNyBAQAogCSAqIEZpcnN0IHB1bGwgZnBnYS1wcmcgcGluIGxvdywgdG8gZGlzYWJsZSBmcGdhIGxvZ2ljCiAJICovCiAJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09EUiwgMHgwMDAwMDAwMCk7ICAgICAgICAvKiBubyBvcGVuIGRyYWluIHBpbnMgKi8KLQlvdXRfYmUzMigodm9pZCopR1BJTzBfVENSLCBDRkdfRlBHQV9QUkcpOyAgICAgIC8qIHNldHVwIGZvciBvdXRwdXQgICAqLworCW91dF9iZTMyKCh2b2lkKilHUElPMF9UQ1IsIENPTkZJR19TWVNfRlBHQV9QUkcpOyAgICAgIC8qIHNldHVwIGZvciBvdXRwdXQgICAqLwogCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgMCk7ICAgICAgICAgICAgICAgICAgLyogcHVsbCBwcmcgbG93ICAgICAgICovCiAKIAkvKgpAQCAtMTc4LDggKzE3OCw4IEBACiAJCW10ZWJjKHBiMWNyLCAwKTsKIAogCQkvKiByZXNpemUgQ1MwIHRvIDMyTUIgKi8KLQkJbXRlYmMocGIwYXAsIENGR19FQkNfUEIwQVBfSFdSRVY4KTsKLQkJbXRlYmMocGIwY3IsIENGR19FQkNfUEIwQ1JfSFdSRVY4KTsKKwkJbXRlYmMocGIwYXAsIENPTkZJR19TWVNfRUJDX1BCMEFQX0hXUkVWOCk7CisJCW10ZWJjKHBiMGNyLCBDT05GSUdfU1lTX0VCQ19QQjBDUl9IV1JFVjgpOwogCX0KIAogCXJldHVybiAwOwpAQCAtMjAwLDggKzIwMCw4IEBACiAKIGludCBtaXNjX2luaXRfcih2b2lkKQogewotCXUxNiAqZnBnYV9tb2RlID0gKHUxNiAqKShDRkdfRlBHQV9CQVNFX0FERFIgKyBDRkdfRlBHQV9DVFJMKTsKLQl1MTYgKmZwZ2FfY3RybDIgPSh1MTYgKikoQ0ZHX0ZQR0FfQkFTRV9BRERSICsgQ0ZHX0ZQR0FfQ1RSTDIpOworCXUxNiAqZnBnYV9tb2RlID0gKHUxNiAqKShDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSICsgQ09ORklHX1NZU19GUEdBX0NUUkwpOworCXUxNiAqZnBnYV9jdHJsMiA9KHUxNiAqKShDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSICsgQ09ORklHX1NZU19GUEdBX0NUUkwyKTsKIAl1OCAqZHVhcnQwX21jciA9ICh1OCAqKShEVUFSVDBfQkEgKyA0KTsKIAl1OCAqZHVhcnQxX21jciA9ICh1OCAqKShEVUFSVDFfQkEgKyA0KTsKIAl1bnNpZ25lZCBjaGFyICpkc3Q7CkBAIC0yMjIsOCArMjIyLDggQEAKIAljbnRybDBSZWcgPSBtZmRjcihjbnRybDApOwogCW10ZGNyKGNudHJsMCwgY250cmwwUmVnIHwgMHgwMDMwMDAwMCk7CiAKLQlkc3QgPSBtYWxsb2MoQ0ZHX0ZQR0FfTUFYX1NJWkUpOwotCWlmIChndW56aXAoZHN0LCBDRkdfRlBHQV9NQVhfU0laRSwgKHVjaGFyICopZnBnYWRhdGEsICZsZW4pICE9IDApIHsKKwlkc3QgPSBtYWxsb2MoQ09ORklHX1NZU19GUEdBX01BWF9TSVpFKTsKKwlpZiAoZ3VuemlwKGRzdCwgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFLCAodWNoYXIgKilmcGdhZGF0YSwgJmxlbikgIT0gMCkgewogCQlwcmludGYoIkdVTlpJUCBFUlJPUiAtIG11c3QgUkVTRVQgYm9hcmQgdG8gcmVjb3ZlclxuIik7CiAJCWRvX3Jlc2V0KE5VTEwsIDAsIDAsIE5VTEwpOwogCX0KQEAgLTI5NywxMSArMjk3LDExIEBACiAJLyoKIAkgKiBFbmFibGUgcG93ZXIgb24gUFMvMiBpbnRlcmZhY2UgKHdpdGggcmVzZXQpCiAJICovCi0Jb3V0X2JlMTYoZnBnYV9tb2RlLCBpbl9iZTE2KGZwZ2FfbW9kZSkgfCBDRkdfRlBHQV9DVFJMX1BTMl9SRVNFVCk7CisJb3V0X2JlMTYoZnBnYV9tb2RlLCBpbl9iZTE2KGZwZ2FfbW9kZSkgfCBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9QUzJfUkVTRVQpOwogCWZvciAoaT0wO2k8MTAwO2krKykKIAkJdWRlbGF5KDEwMDApOwogCXVkZWxheSgxMDAwKTsKLQlvdXRfYmUxNihmcGdhX21vZGUsIGluX2JlMTYoZnBnYV9tb2RlKSAmIH5DRkdfRlBHQV9DVFJMX1BTMl9SRVNFVCk7CisJb3V0X2JlMTYoZnBnYV9tb2RlLCBpbl9iZTE2KGZwZ2FfbW9kZSkgJiB+Q09ORklHX1NZU19GUEdBX0NUUkxfUFMyX1JFU0VUKTsKIAogCS8qCiAJICogRW5hYmxlIGludGVycnVwdHMgaW4gZXhhciBkdWFydCBtY3JbM10KQEAgLTMxNSwxNSArMzE1LDE1IEBACiAJc3RyID0gZ2V0ZW52KCJzcGxhc2hpbWFnZSIpOwogCWlmIChzdHIpIHsKIAkJbG9nb19hZGRyID0gKHVjaGFyICopc2ltcGxlX3N0cnRvdWwoc3RyLCBOVUxMLCAxNik7Ci0JCWxvZ29fc2l6ZSA9IENGR19WSURFT19MT0dPX01BWF9TSVpFOworCQlsb2dvX3NpemUgPSBDT05GSUdfU1lTX1ZJREVPX0xPR09fTUFYX1NJWkU7CiAJfSBlbHNlIHsKIAkJbG9nb19hZGRyID0gbG9nb19ibXA7CiAJCWxvZ29fc2l6ZSA9IHNpemVvZihsb2dvX2JtcCk7CiAJfQogCiAJaWYgKGdkLT5ib2FyZF90eXBlID49IDYpIHsKLQkJcmVzdWx0ID0gbGNkX2luaXQoKHVjaGFyICopQ0ZHX0xDRF9CSUdfUkVHLAotCQkJCSAgKHVjaGFyICopQ0ZHX0xDRF9CSUdfTUVNLAorCQlyZXN1bHQgPSBsY2RfaW5pdCgodWNoYXIgKilDT05GSUdfU1lTX0xDRF9CSUdfUkVHLAorCQkJCSAgKHVjaGFyICopQ09ORklHX1NZU19MQ0RfQklHX01FTSwKIAkJCQkgIHJlZ3NfMTM1MDVfNjQwXzQ4MF8xNmJwcCwKIAkJCQkgIHNpemVvZihyZWdzXzEzNTA1XzY0MF80ODBfMTZicHApIC8KIAkJCQkgIHNpemVvZihyZWdzXzEzNTA1XzY0MF80ODBfMTZicHBbMF0pLApAQCAtMzMyLDE2ICszMzIsMTYgQEAKIAkJCS8qIHJldHJ5IHdpdGggaW50ZXJuYWwgaW1hZ2UgKi8KIAkJCWxvZ29fYWRkciA9IGxvZ29fYm1wOwogCQkJbG9nb19zaXplID0gc2l6ZW9mKGxvZ29fYm1wKTsKLQkJCWxjZF9pbml0KCh1Y2hhciAqKUNGR19MQ0RfQklHX1JFRywKLQkJCQkgKHVjaGFyICopQ0ZHX0xDRF9CSUdfTUVNLAorCQkJbGNkX2luaXQoKHVjaGFyICopQ09ORklHX1NZU19MQ0RfQklHX1JFRywKKwkJCQkgKHVjaGFyICopQ09ORklHX1NZU19MQ0RfQklHX01FTSwKIAkJCQkgcmVnc18xMzUwNV82NDBfNDgwXzE2YnBwLAogCQkJCSBzaXplb2YocmVnc18xMzUwNV82NDBfNDgwXzE2YnBwKSAvCiAJCQkJIHNpemVvZihyZWdzXzEzNTA1XzY0MF80ODBfMTZicHBbMF0pLAogCQkJCSBsb2dvX2FkZHIsIGxvZ29fc2l6ZSk7CiAJCX0KIAl9IGVsc2UgewotCQlyZXN1bHQgPSBsY2RfaW5pdCgodWNoYXIgKilDRkdfTENEX0JJR19SRUcsCi0JCQkJICAodWNoYXIgKilDRkdfTENEX0JJR19NRU0sCisJCXJlc3VsdCA9IGxjZF9pbml0KCh1Y2hhciAqKUNPTkZJR19TWVNfTENEX0JJR19SRUcsCisJCQkJICAodWNoYXIgKilDT05GSUdfU1lTX0xDRF9CSUdfTUVNLAogCQkJCSAgcmVnc18xMzgwNl82NDBfNDgwXzE2YnBwLAogCQkJCSAgc2l6ZW9mKHJlZ3NfMTM4MDZfNjQwXzQ4MF8xNmJwcCkgLwogCQkJCSAgc2l6ZW9mKHJlZ3NfMTM4MDZfNjQwXzQ4MF8xNmJwcFswXSksCkBAIC0zNTAsOCArMzUwLDggQEAKIAkJCS8qIHJldHJ5IHdpdGggaW50ZXJuYWwgaW1hZ2UgKi8KIAkJCWxvZ29fYWRkciA9IGxvZ29fYm1wOwogCQkJbG9nb19zaXplID0gc2l6ZW9mKGxvZ29fYm1wKTsKLQkJCWxjZF9pbml0KCh1Y2hhciAqKUNGR19MQ0RfQklHX1JFRywKLQkJCQkgKHVjaGFyICopQ0ZHX0xDRF9CSUdfTUVNLAorCQkJbGNkX2luaXQoKHVjaGFyICopQ09ORklHX1NZU19MQ0RfQklHX1JFRywKKwkJCQkgKHVjaGFyICopQ09ORklHX1NZU19MQ0RfQklHX01FTSwKIAkJCQkgcmVnc18xMzgwNl82NDBfNDgwXzE2YnBwLAogCQkJCSBzaXplb2YocmVnc18xMzgwNl82NDBfNDgwXzE2YnBwKSAvCiAJCQkJIHNpemVvZihyZWdzXzEzODA2XzY0MF80ODBfMTZicHBbMF0pLApAQCAtMzg5LDEyICszODksMTIgQEAKIAkgKiBmaXggZW52aXJvbm1lbnQgZm9yIGZpZWxkIHVwZGF0ZWQgdW5pdHMKIAkgKi8KIAlpZiAoZ2V0ZW52KCJhbHRib290Y21kIikgPT0gTlVMTCkgewotCQlzZXRlbnYoInVzYl9sb2FkIiwgQ0ZHX1VTQl9MT0FEX0NPTU1BTkQpOwotCQlzZXRlbnYoInVzYmFyZ3MiLCBDRkdfVVNCX0FSR1MpOworCQlzZXRlbnYoInVzYl9sb2FkIiwgQ09ORklHX1NZU19VU0JfTE9BRF9DT01NQU5EKTsKKwkJc2V0ZW52KCJ1c2JhcmdzIiwgQ09ORklHX1NZU19VU0JfQVJHUyk7CiAJCXNldGVudigiYm9vdGNtZCIsIENPTkZJR19CT09UQ09NTUFORCk7Ci0JCXNldGVudigidXNiX3NlbGYiLCBDRkdfVVNCX1NFTEZfQ09NTUFORCk7Ci0JCXNldGVudigiYm9vdGxpbWl0IiwgQ0ZHX0JPT1RMSU1JVCk7Ci0JCXNldGVudigiYWx0Ym9vdGNtZCIsIENGR19BTFRfQk9PVENPTU1BTkQpOworCQlzZXRlbnYoInVzYl9zZWxmIiwgQ09ORklHX1NZU19VU0JfU0VMRl9DT01NQU5EKTsKKwkJc2V0ZW52KCJib290bGltaXQiLCBDT05GSUdfU1lTX0JPT1RMSU1JVCk7CisJCXNldGVudigiYWx0Ym9vdGNtZCIsIENPTkZJR19TWVNfQUxUX0JPT1RDT01NQU5EKTsKIAkJc2F2ZWVudigpOwogCX0KIApAQCAtNDI2LDE3ICs0MjYsMTcgQEAKICNpZmRlZiBDT05GSUdfSURFX1JFU0VUCiB2b2lkIGlkZV9zZXRfcmVzZXQoaW50IG9uKQogewotCXUxNiAqZnBnYV9tb2RlID0gKHUxNiAqKShDRkdfRlBHQV9CQVNFX0FERFIgKyBDRkdfRlBHQV9DVFJMKTsKKwl1MTYgKmZwZ2FfbW9kZSA9ICh1MTYgKikoQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUiArIENPTkZJR19TWVNfRlBHQV9DVFJMKTsKIAogCS8qCiAJICogQXNzZXJ0IG9yIGRlYXNzZXJ0IENvbXBhY3RGbGFzaCBSZXNldCBQaW4KIAkgKi8KIAlpZiAob24pIHsKIAkJb3V0X2JlMTYoZnBnYV9tb2RlLAotCQkJIGluX2JlMTYoZnBnYV9tb2RlKSAmIH5DRkdfRlBHQV9DVFJMX0NGX1JFU0VUKTsKKwkJCSBpbl9iZTE2KGZwZ2FfbW9kZSkgJiB+Q09ORklHX1NZU19GUEdBX0NUUkxfQ0ZfUkVTRVQpOwogCX0gZWxzZSB7CiAJCW91dF9iZTE2KGZwZ2FfbW9kZSwKLQkJCSBpbl9iZTE2KGZwZ2FfbW9kZSkgfCBDRkdfRlBHQV9DVFJMX0NGX1JFU0VUKTsKKwkJCSBpbl9iZTE2KGZwZ2FfbW9kZSkgfCBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9DRl9SRVNFVCk7CiAJfQogfQogI2VuZGlmIC8qIENPTkZJR19JREVfUkVTRVQgKi8KQEAgLTQ0OSw3ICs0NDksNyBAQAogCWx4dDk3MV9ub19zbGVlcCgpOwogfQogCi0jaWYgZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENGR19VU0JfT0hDSV9CT0FSRF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1VTQl9PSENJX05FVykgJiYgZGVmaW5lZChDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQpCiBpbnQgdXNiX2JvYXJkX2luaXQodm9pZCkKIHsKIAlyZXR1cm4gMDsKQEAgLTQ4MCw0ICs0ODAsNCBAQAogCXVzYl9ib2FyZF9zdG9wKCk7CiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfVVNCX09IQ0kpICYmIGRlZmluZWQoQ0ZHX1VTQl9PSENJX0JPQVJEX0lOSVQpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfVVNCX09IQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19VU0JfT0hDSV9CT0FSRF9JTklUKSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2FyNDA1L2ZsYXNoLmMgYi9ib2FyZC9lc2QvYXI0MDUvZmxhc2guYwppbmRleCA4OWFmMTE5Li4yNzRhZGE5IDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvYXI0MDUvZmxhc2guYworKysgYi9ib2FyZC9lc2QvYXI0MDUvZmxhc2guYwpAQCAtNDgsNyArNDgsNyBAQAogCWludCBzaXplX3ZhbCA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTkxLDcgKzkxLDcgQEAKIAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgIC1DRkdfTU9OSVRPUl9MRU4sCisJCQkgICAgLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCQkgICAgMHhmZmZmZmZmZiwKIAkJCSAgICAmZmxhc2hfaW5mb1swXSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9hc2g0MDUvYXNoNDA1LmMgYi9ib2FyZC9lc2QvYXNoNDA1L2FzaDQwNS5jCmluZGV4IGMzNzEwYWIuLmRkMWUyZWMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9hc2g0MDUvYXNoNDA1LmMKKysrIGIvYm9hcmQvZXNkL2FzaDQwNS9hc2g0MDUuYwpAQCAtOTQsOCArOTQsOCBAQAogCWludCBpbmRleDsKIAlpbnQgaTsKIAotCWRzdCA9IG1hbGxvYyhDRkdfRlBHQV9NQVhfU0laRSk7Ci0JaWYgKGd1bnppcCAoZHN0LCBDRkdfRlBHQV9NQVhfU0laRSwgKHVjaGFyICopZnBnYWRhdGEsICZsZW4pICE9IDApIHsKKwlkc3QgPSBtYWxsb2MoQ09ORklHX1NZU19GUEdBX01BWF9TSVpFKTsKKwlpZiAoZ3VuemlwIChkc3QsIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSwgKHVjaGFyICopZnBnYWRhdGEsICZsZW4pICE9IDApIHsKIAkJcHJpbnRmICgiR1VOWklQIEVSUk9SIC0gbXVzdCBSRVNFVCBib2FyZCB0byByZWNvdmVyXG4iKTsKIAkJZG9fcmVzZXQgKE5VTEwsIDAsIDAsIE5VTEwpOwogCX0KQEAgLTE1Nyw5ICsxNTcsOSBAQAogCS8qCiAJICogUmVzZXQgZXh0ZXJuYWwgRFVBUlRzCiAJICovCi0Jb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSB8IENGR19EVUFSVF9SU1QpOworCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgfCBDT05GSUdfU1lTX0RVQVJUX1JTVCk7CiAJdWRlbGF5KDEwKTsgLyogd2FpdCAxMHVzICovCi0Jb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSAmIH5DRkdfRFVBUlRfUlNUKTsKKwlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfRFVBUlRfUlNUKTsKIAl1ZGVsYXkoMTAwMCk7IC8qIHdhaXQgMW1zICovCiAKIAkvKgpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2FzaDQwNS9mbGFzaC5jIGIvYm9hcmQvZXNkL2FzaDQwNS9mbGFzaC5jCmluZGV4IDg5YWYxMTkuLjI3NGFkYTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9hc2g0MDUvZmxhc2guYworKysgYi9ib2FyZC9lc2QvYXNoNDA1L2ZsYXNoLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIAlpbnQgc2l6ZV92YWwgPSAwOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC05MSw3ICs5MSw3IEBACiAKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAtQ0ZHX01PTklUT1JfTEVOLAorCQkJICAgIC1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJICAgIDB4ZmZmZmZmZmYsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY2FuYnQvZmxhc2guYyBiL2JvYXJkL2VzZC9jYW5idC9mbGFzaC5jCmluZGV4IGRlODQ3ZjkuLjU2YzgyMmUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jYW5idC9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9jYW5idC9mbGFzaC5jCkBAIC00Nyw3ICs0Nyw3IEBACiAJdW5zaWduZWQgbG9uZyBiYXNlX2IwOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY21zNzAwL2NtczcwMC5jIGIvYm9hcmQvZXNkL2NtczcwMC9jbXM3MDAuYwppbmRleCA4MDZjNzU1Li41NzA5ZDQ1IDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY21zNzAwL2NtczcwMC5jCisrKyBiL2JvYXJkL2VzZC9jbXM3MDAvY21zNzAwLmMKQEAgLTY5LDkgKzY5LDkgQEAKIAkvKgogCSAqIFJlc2V0IENQTEQgdmlhIEdQSU8xMiAoQ1MzKSBwaW4KIAkgKi8KLQlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpICYgfkNGR19QTERfUkVTRVQpOworCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgJiB+Q09ORklHX1NZU19QTERfUkVTRVQpOwogCXVkZWxheSgxMDAwKTsgLyogd2FpdCAxbXMgKi8KLQlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpIHwgQ0ZHX1BMRF9SRVNFVCk7CisJb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSB8IENPTkZJR19TWVNfUExEX1JFU0VUKTsKIAl1ZGVsYXkoMTAwMCk7IC8qIHdhaXQgMW1zICovCiAKIAlyZXR1cm4gMDsKQEAgLTg2LDcgKzg2LDcgQEAKIAkvKgogCSAqIFNldHVwIGFuZCBlbmFibGUgRUVQUk9NIHdyaXRlIHByb3RlY3Rpb24KIAkgKi8KLQlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpIHwgQ0ZHX0VFUFJPTV9XUCk7CisJb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSB8IENPTkZJR19TWVNfRUVQUk9NX1dQKTsKIAogCXJldHVybiAoMCk7CiB9CkBAIC0xMDEsOCArMTAxLDggQEAKIAljaGFyIHN0cls2NF07CiAJaW50IGZsYXNoY250OwogCWludCBkZWxheTsKLQl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpsZWRfcmVnID0gKHVuc2lnbmVkIGNoYXIgKikoKHVsb25nKUNGR19QTERfQkFTRSArIDB4MTAwMCk7Ci0Jdm9sYXRpbGUgdW5zaWduZWQgY2hhciAqdmVyX3JlZyA9ICh1bnNpZ25lZCBjaGFyICopKCh1bG9uZylDRkdfUExEX0JBU0UgKyAweDEwMDEpOworCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmxlZF9yZWcgPSAodW5zaWduZWQgY2hhciAqKSgodWxvbmcpQ09ORklHX1NZU19QTERfQkFTRSArIDB4MTAwMCk7CisJdm9sYXRpbGUgdW5zaWduZWQgY2hhciAqdmVyX3JlZyA9ICh1bnNpZ25lZCBjaGFyICopKCh1bG9uZylDT05GSUdfU1lTX1BMRF9CQVNFICsgMHgxMDAxKTsKIAogCXB1dHMgKCJCb2FyZDogIik7CiAKQEAgLTEzMiw3ICsxMzIsNyBAQAogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKLSNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pCiAvKiBJbnB1dDogPGRldl9hZGRyPiAgSTJDIGFkZHJlc3Mgb2YgRUVQUk9NIGRldmljZSB0byBlbmFibGUuCiAgKiAgICAgICAgIDxzdGF0ZT4gICAgIC0xOiBkZWxpdmVyIGN1cnJlbnQgc3RhdGUKICAqCSAgICAgICAgICAgICAgIDA6IGRpc2FibGUgd3JpdGUKQEAgLTE0MywyMyArMTQzLDIzIEBACiAgKi8KIGludCBlZXByb21fd3JpdGVfZW5hYmxlICh1bnNpZ25lZCBkZXZfYWRkciwgaW50IHN0YXRlKQogewotCWlmIChDRkdfSTJDX0VFUFJPTV9BRERSICE9IGRldl9hZGRyKSB7CisJaWYgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSICE9IGRldl9hZGRyKSB7CiAJCXJldHVybiAtMTsKIAl9IGVsc2UgewogCQlzd2l0Y2ggKHN0YXRlKSB7CiAJCWNhc2UgMToKIAkJCS8qIEVuYWJsZSB3cml0ZSBhY2Nlc3MsIGNsZWFyIGJpdCBHUElPX1NJTlQyLiAqLwotCQkJb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSAmIH5DRkdfRUVQUk9NX1dQKTsKKwkJCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgJiB+Q09ORklHX1NZU19FRVBST01fV1ApOwogCQkJc3RhdGUgPSAwOwogCQkJYnJlYWs7CiAJCWNhc2UgMDoKIAkJCS8qIERpc2FibGUgd3JpdGUgYWNjZXNzLCBzZXQgYml0IEdQSU9fU0lOVDIuICovCi0JCQlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpIHwgQ0ZHX0VFUFJPTV9XUCk7CisJCQlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19FRVBST01fV1ApOwogCQkJc3RhdGUgPSAwOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQkvKiBSZWFkIGN1cnJlbnQgc3RhdHVzIGJhY2suICovCi0JCQlzdGF0ZSA9ICgwID09IChpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpICYgQ0ZHX0VFUFJPTV9XUCkpOworCQkJc3RhdGUgPSAoMCA9PSAoaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSAmIENPTkZJR19TWVNfRUVQUk9NX1dQKSk7CiAJCQlicmVhazsKIAkJfQogCX0KQEAgLTE3MywyMSArMTczLDIxIEBACiAKIAlpZiAocXVlcnkpIHsKIAkJLyogUXVlcnkgd3JpdGUgYWNjZXNzIHN0YXRlLiAqLwotCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENGR19JMkNfRUVQUk9NX0FERFIsIC0xKTsKKwkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgLTEpOwogCQlpZiAoc3RhdGUgPCAwKSB7CiAJCQlwdXRzICgiUXVlcnkgb2Ygd3JpdGUgYWNjZXNzIHN0YXRlIGZhaWxlZC5cbiIpOwogCQl9IGVsc2UgewogCQkJcHJpbnRmICgiV3JpdGUgYWNjZXNzIGZvciBkZXZpY2UgMHglMHggaXMgJXNhYmxlZC5cbiIsCi0JCQkJQ0ZHX0kyQ19FRVBST01fQUREUiwgc3RhdGUgPyAiZW4iIDogImRpcyIpOworCQkJCUNPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCBzdGF0ZSA/ICJlbiIgOiAiZGlzIik7CiAJCQlzdGF0ZSA9IDA7CiAJCX0KIAl9IGVsc2UgewogCQlpZiAoJzAnID09IGFyZ3ZbMV1bMF0pIHsKIAkJCS8qIERpc2FibGUgd3JpdGUgYWNjZXNzLiAqLwotCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDRkdfSTJDX0VFUFJPTV9BRERSLCAwKTsKKwkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIDApOwogCQl9IGVsc2UgewogCQkJLyogRW5hYmxlIHdyaXRlIGFjY2Vzcy4gKi8KLQkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ0ZHX0kyQ19FRVBST01fQUREUiwgMSk7CisJCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAxKTsKIAkJfQogCQlpZiAoc3RhdGUgPCAwKSB7CiAJCQlwdXRzICgiU2V0dXAgb2Ygd3JpdGUgYWNjZXNzIHN0YXRlIGZhaWxlZC5cbiIpOwpAQCAtMjAwLDcgKzIwMCw3IEBACiBVX0JPT1RfQ01EKGVlcHdyZW4sCTIsCTAsCWRvX2VlcF93cmVuLAogCSAgICJlZXB3cmVuIC0gRW5hYmxlIC8gZGlzYWJsZSAvIHF1ZXJ5IEVFUFJPTSB3cml0ZSBhY2Nlc3NcbiIsCiAJICAgTlVMTCk7Ci0jZW5kaWYgLyogI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9XUkVOKSAqLworI2VuZGlmIC8qICNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pICovCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NtczcwMC9mbGFzaC5jIGIvYm9hcmQvZXNkL2NtczcwMC9mbGFzaC5jCmluZGV4IDg5YWYxMTkuLjI3NGFkYTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jbXM3MDAvZmxhc2guYworKysgYi9ib2FyZC9lc2QvY21zNzAwL2ZsYXNoLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIAlpbnQgc2l6ZV92YWwgPSAwOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC05MSw3ICs5MSw3IEBACiAKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAtQ0ZHX01PTklUT1JfTEVOLAorCQkJICAgIC1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJICAgIDB4ZmZmZmZmZmYsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY29tbW9uL2F1dG9fdXBkYXRlLmMgYi9ib2FyZC9lc2QvY29tbW9uL2F1dG9fdXBkYXRlLmMKaW5kZXggYTFlMGNlNS4uNjMzZjY0MSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NvbW1vbi9hdXRvX3VwZGF0ZS5jCisrKyBiL2JvYXJkL2VzZC9jb21tb24vYXV0b191cGRhdGUuYwpAQCAtNzIsNyArNzIsNyBAQAogCQkJICAgICBzaXplX3QgbGVuLCBpbnQgY2xlYW4pOwogI2VuZGlmCiAKLWV4dGVybiBibG9ja19kZXZfZGVzY190IGlkZV9kZXZfZGVzY1tDRkdfSURFX01BWERFVklDRV07CitleHRlcm4gYmxvY2tfZGV2X2Rlc2NfdCBpZGVfZGV2X2Rlc2NbQ09ORklHX1NZU19JREVfTUFYREVWSUNFXTsKIAogaW50IGF1X2NoZWNrX2Nrc3VtX3ZhbGlkKGludCBpLCBsb25nIG5ieXRlcykKIHsKQEAgLTMzNSw3ICszMzUsNyBAQAogCWNoYXIgYywgcHJldjsKIAljb25zdCBjaGFyICp2YXJuYW1lX3N0YXJ0ID0gTlVMTDsKIAlpbnQgaW5wdXRjbnQgID0gc3RybGVuIChpbnB1dCk7Ci0JaW50IG91dHB1dGNudCA9IENGR19DQlNJWkU7CisJaW50IG91dHB1dGNudCA9IENPTkZJR19TWVNfQ0JTSVpFOwogCWludCBzdGF0ZSA9IDA7CS8qIDAgPSB3YWl0aW5nIGZvciAnJCcJKi8KIAkJCS8qIDEgPSB3YWl0aW5nIGZvciAnKCcgb3IgJ3snICovCiAJCQkvKiAyID0gd2FpdGluZyBmb3IgJyknIG9yICd9JyAqLwpAQCAtMzk0LDcgKzM5NCw3IEBACiAJICAgIGNhc2UgMjoJCQkvKiBXYWl0aW5nIGZvciApCSovCiAJCWlmIChjID09ICcpJyB8fCBjID09ICd9JykgewogCQkJaW50IGk7Ci0JCQljaGFyIGVudm5hbWVbQ0ZHX0NCU0laRV0sICplbnZ2YWw7CisJCQljaGFyIGVudm5hbWVbQ09ORklHX1NZU19DQlNJWkVdLCAqZW52dmFsOwogCQkJLyogVmFybmFtZSAjIG9mIGNoYXJzICovCiAJCQlpbnQgZW52Y250ID0gaW5wdXQgLSB2YXJuYW1lX3N0YXJ0IC0gMTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NvbW1vbi9lc2Q0MDVlcF9uYW5kLmMgYi9ib2FyZC9lc2QvY29tbW9uL2VzZDQwNWVwX25hbmQuYwppbmRleCA0MGQxZWZiLi43MzYxNzZmIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY29tbW9uL2VzZDQwNWVwX25hbmQuYworKysgYi9ib2FyZC9lc2QvY29tbW9uL2VzZDQwNWVwX25hbmQuYwpAQCAtMzUsMTcgKzM1LDE3IEBACiAJc3RydWN0IG5hbmRfY2hpcCAqdGhpcyA9IG10ZC0+cHJpdjsKIAlpZiAoY3RybCAmIE5BTkRfQ1RSTF9DSEFOR0UpIHsKIAkJaWYgKCBjdHJsICYgTkFORF9DTEUgKQotCQkJb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSB8IENGR19OQU5EX0NMRSk7CisJCQlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19OQU5EX0NMRSk7CiAJCWVsc2UKLQkJCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgJiB+Q0ZHX05BTkRfQ0xFKTsKKwkJCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgJiB+Q09ORklHX1NZU19OQU5EX0NMRSk7CiAJCWlmICggY3RybCAmIE5BTkRfQUxFICkKLQkJCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgfCBDRkdfTkFORF9BTEUpOworCQkJb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSB8IENPTkZJR19TWVNfTkFORF9BTEUpOwogCQllbHNlCi0JCQlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpICYgfkNGR19OQU5EX0FMRSk7CisJCQlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfTkFORF9BTEUpOwogCQlpZiAoIGN0cmwgJiBOQU5EX05DRSApCi0JCQlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpICYgfkNGR19OQU5EX0NFKTsKKwkJCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgJiB+Q09ORklHX1NZU19OQU5EX0NFKTsKIAkJZWxzZQotCQkJb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSB8IENGR19OQU5EX0NFKTsKKwkJCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkRfQ0UpOwogCX0KIAogCWlmIChjbWQgIT0gTkFORF9DTURfTk9ORSkKQEAgLTU4LDcgKzU4LDcgQEAKICAqLwogc3RhdGljIGludCBlc2Q0MDVlcF9uYW5kX2RldmljZV9yZWFkeShzdHJ1Y3QgbXRkX2luZm8gKm10ZGluZm8pCiB7Ci0JaWYgKGluX2JlMzIoKHZvaWQgKilHUElPMF9JUikgJiBDRkdfTkFORF9SRFkpCisJaWYgKGluX2JlMzIoKHZvaWQgKilHUElPMF9JUikgJiBDT05GSUdfU1lTX05BTkRfUkRZKQogCQlyZXR1cm4gMTsKIAlyZXR1cm4gMDsKIH0KQEAgLTY5LDggKzY5LDggQEAKIAkvKgogCSAqIFNldCBOQU5ELUZMQVNIIEdQSU8gc2lnbmFscyB0byBkZWZhdWx0cwogCSAqLwotCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgJiB+KENGR19OQU5EX0NMRSB8IENGR19OQU5EX0FMRSkpOwotCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgfCBDRkdfTkFORF9DRSk7CisJb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSAmIH4oQ09ORklHX1NZU19OQU5EX0NMRSB8IENPTkZJR19TWVNfTkFORF9BTEUpKTsKKwlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19OQU5EX0NFKTsKIAogCS8qCiAJICogSW5pdGlhbGl6ZSBuYW5kX2NoaXAgc3RydWN0dXJlCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY29tbW9uL2ZsYXNoLmMgYi9ib2FyZC9lc2QvY29tbW9uL2ZsYXNoLmMKaW5kZXggYmRhMzYxZS4uM2VhMDUzYiAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NvbW1vbi9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9jb21tb24vZmxhc2guYwpAQCAtMjcsNyArMjcsNyBAQAogI2VuZGlmCiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC0xNjcsNyArMTY3LDcgQEAKIAogCXByaW50ZiAoIiAgU2VjdG9yIFN0YXJ0IEFkZHJlc3NlczoiKTsKIAlmb3IgKGk9MDsgaTxpbmZvLT5zZWN0b3JfY291bnQ7ICsraSkgewotI2lmZGVmIENGR19GTEFTSF9FTVBUWV9JTkZPCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAJCS8qCiAJCSAqIENoZWNrIGlmIHdob2xlIHNlY3RvciBpcyBlcmFzZWQKIAkJICovCkBAIC0yMjEsMjggKzIyMSwyOCBAQAogewogCXNob3J0IGk7CiAJc2hvcnQgbjsKLQlDRkdfRkxBU0hfV09SRF9TSVpFIHZhbHVlOworCUNPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFIHZhbHVlOwogCXVsb25nIGJhc2UgPSAodWxvbmcpYWRkcjsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopYWRkcjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKilhZGRyOwogCiAJLyogV3JpdGUgYXV0byBzZWxlY3QgY29tbWFuZDogcmVhZCBNYW51ZmFjdHVyZXIgSUQgKi8KLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDkwMDA5MDsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDkwMDA5MDsKIAotCXZhbHVlID0gYWRkcjJbQ0ZHX0ZMQVNIX1JFQUQwXTsKKwl2YWx1ZSA9IGFkZHIyW0NPTkZJR19TWVNfRkxBU0hfUkVBRDBdOwogCiAJc3dpdGNoICh2YWx1ZSkgewotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fQU1EOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUZVSl9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlGVUpfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0ZVSjsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlTU1RfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1NUX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9TU1Q7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpRVhDRUxfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpRVhDRUxfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0VYQ0VMOwogCQlicmVhazsKIAlkZWZhdWx0OgpAQCAtMjUyLDEwNCArMjUyLDEwNCBAQAogCQlyZXR1cm4gKDApOwkJCS8qIG5vIG9yIHVua25vd24gZmxhc2gJKi8KIAl9CiAKLQl2YWx1ZSA9IGFkZHIyW0NGR19GTEFTSF9SRUFEMV07CQkvKiBkZXZpY2UgSUQJCSovCisJdmFsdWUgPSBhZGRyMltDT05GSUdfU1lTX0ZMQVNIX1JFQUQxXTsJCS8qIGRldmljZSBJRAkJKi8KIAogCXN3aXRjaCAodmFsdWUpIHsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjQwMFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWNDAwVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU00MDBUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxMTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAwODAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAwLjUgTUIJCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjQwMEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWNDAwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU00MDBCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxMTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAwODAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAwLjUgTUIJCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjgwMFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWODAwVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU04MDBUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxOTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAxMDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAxIE1CCQkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY4MDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjgwMEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNODAwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTk7CiAJCWluZm8tPnNpemUgPSAweDAwMTAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMSBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMTYwVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYxNjBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTE2MFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDM1OwogCQlpbmZvLT5zaXplID0gMHgwMDIwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDIgTUIJCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjE2MEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMTYwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0xNjBCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAzNTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAyMDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAyIE1CCQkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMzIwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOyAgYnJlYWs7CS8qID0+IDQgTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTMyMEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsgIGJyZWFrOwkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyMlQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIyVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1ETDMyMlQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsgIGJyZWFrOwkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyMkI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIyQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1ETDMyMkI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsgIGJyZWFrOwkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyM1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIzVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1ETDMyM1Q7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsgIGJyZWFrOwkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyM0I6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIzQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1ETDMyM0I7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsgIGJyZWFrOwkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjY0MFU6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWNjQwVToKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU02NDBVOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxMjg7CiAJCWluZm8tPnNpemUgPSAweDAwODAwMDAwOyAgYnJlYWs7CS8qID0+IDggTUIJKi8KIAogI2lmICEoZGVmaW5lZChDT05GSUdfQURDSU9QKSB8fCBkZWZpbmVkKENPTkZJR19EQVNBX1NJTSkpCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEY4MDBBOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjgwMEE6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX1NTVDgwMEE7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDE2OwogCQlpbmZvLT5zaXplID0gMHgwMDEwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDEgTUIJCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjE2MEE6Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEYxNjAxOgotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGMTYwMjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEYxNjBBOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjE2MDE6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGMTYwMjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfU1NUMTYwQTsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzI7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMiBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGMzIwMToKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjMyMDI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGMzIwMToKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEYzMjAyOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9TU1QzMjA7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDY0OwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDQgTUIJCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjY0MDE6Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEY2NDAyOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjY0MDE6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGNjQwMjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfU1NUNjQwOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxMjg7CiAJCWluZm8tPnNpemUgPSAweDAwODAwMDAwOwpAQCAtNDI0LDE5ICs0MjQsMTkgQEAKIAlmb3IgKGkgPSAwOyBpIDwgaW5mby0+c2VjdG9yX2NvdW50OyBpKyspIHsKIAkJLyogcmVhZCBzZWN0b3IgcHJvdGVjdGlvbiBhdCBzZWN0b3IgYWRkcmVzcywgKEE3IC4uIEEwKSA9IDB4MDIgKi8KIAkJLyogRDAgPSAxIGlmIHByb3RlY3RlZCAqLwotCQlhZGRyMiA9ICh2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKKwkJYWRkcjIgPSAodm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOwogCQlpZiAoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVkVORE1BU0spICE9IEZMQVNIX01BTl9BTUQpCiAJCSAgaW5mby0+cHJvdGVjdFtpXSA9IDA7CiAJCWVsc2UKLQkJICBpbmZvLT5wcm90ZWN0W2ldID0gYWRkcjJbQ0ZHX0ZMQVNIX1JFQUQyXSAmIDE7CisJCSAgaW5mby0+cHJvdGVjdFtpXSA9IGFkZHIyW0NPTkZJR19TWVNfRkxBU0hfUkVBRDJdICYgMTsKIAl9CiAKIAkvKgogCSAqIFByZXZlbnQgd3JpdGVzIHRvIHVuaW5pdGlhbGl6ZWQgRkxBU0guCiAJICovCiAJaWYgKGluZm8tPmZsYXNoX2lkICE9IEZMQVNIX1VOS05PV04pIHsKLQkJYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKWluZm8tPnN0YXJ0WzBdOwotCQkqYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCisJCWFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopaW5mby0+c3RhcnRbMF07CisJCSphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAJfQogCiAJcmV0dXJuIChpbmZvLT5zaXplKTsKQEAgLTQ0OCw4ICs0NDgsOCBAQAogCiBpbnQJZmxhc2hfZXJhc2UgKGZsYXNoX2luZm9fdCAqaW5mbywgaW50IHNfZmlyc3QsIGludCBzX2xhc3QpCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOwogCWludCBmbGFnLCBwcm90LCBzZWN0LCBsX3NlY3Q7CiAJdWxvbmcgc3RhcnQsIG5vdywgbGFzdDsKIAlpbnQgaTsKQEAgLTQ5MCwyNSArNDkwLDI1IEBACiAJLyogU3RhcnQgZXJhc2Ugb24gdW5wcm90ZWN0ZWQgc2VjdG9ycyAqLwogCWZvciAoc2VjdCA9IHNfZmlyc3Q7IHNlY3Q8PXNfbGFzdDsgc2VjdCsrKSB7CiAJCWlmIChpbmZvLT5wcm90ZWN0W3NlY3RdID09IDApIHsJLyogbm90IHByb3RlY3RlZCAqLwotCQkgICAgYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtzZWN0XSk7CisJCSAgICBhZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtzZWN0XSk7CiAJCSAgICBpZiAoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVkVORE1BU0spID09IEZMQVNIX01BTl9TU1QpIHsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MDsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTAwMDUwOyAgLyogYmxvY2sgZXJhc2UgKi8KKwkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKKwkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKKwkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MDsKKwkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKKwkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKKwkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA1MDAwNTA7ICAvKiBibG9jayBlcmFzZSAqLwogCQkJZm9yIChpPTA7IGk8NTA7IGkrKykKIAkJCSAgdWRlbGF5KDEwMDApOyAgLyogd2FpdCAxIG1zICovCiAJCSAgICB9IGVsc2UgewogCQkJaWYgKHNlY3QgPT0gc19maXJzdCkgewotCQkJICAgIGFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JCQkgICAgYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKLQkJCSAgICBhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOwotCQkJICAgIGFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JCQkgICAgYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKKwkJCSAgICBhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQkgICAgYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJICAgIGFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MDsKKwkJCSAgICBhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQkgICAgYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwogCQkJfQotCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwMzAwMDMwOyAgLyogc2VjdG9yIGVyYXNlICovCisJCQlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwMzAwMDMwOyAgLyogc2VjdG9yIGVyYXNlICovCiAJCSAgICB9CiAJCSAgICBsX3NlY3QgPSBzZWN0OwogCQl9CkBAIC01MjksOSArNTI5LDkgQEAKIAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAlsYXN0ICA9IHN0YXJ0OwotCWFkZHIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKLQl3aGlsZSAoKGFkZHJbMF0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCWFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CisJd2hpbGUgKChhZGRyWzBdICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTU0NCw4ICs1NDQsOCBAQAogCiBET05FOgogCS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwotCWFkZHIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKWluZm8tPnN0YXJ0WzBdOwotCWFkZHJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCisJYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKWluZm8tPnN0YXJ0WzBdOworCWFkZHJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLwogCiAJcHJpbnRmICgiIGRvbmVcbiIpOwogCXJldHVybiAwOwpAQCAtNjMwLDkgKzYzMCw5IEBACiAgKi8KIHN0YXRpYyBpbnQgd3JpdGVfd29yZCAoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKQogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilkZXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikmZGF0YTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKWRlc3Q7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopJmRhdGE7CiAJdWxvbmcgc3RhcnQ7CiAJaW50IGZsYWc7CiAJaW50IGk7CkBAIC02NDUsMTEgKzY0NSwxMSBAQAogCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKIAotCWZvciAoaT0wOyBpPDQvc2l6ZW9mKENGR19GTEFTSF9XT1JEX1NJWkUpOyBpKyspCisJZm9yIChpPTA7IGk8NC9zaXplb2YoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpOyBpKyspCiAJICB7Ci0JICAgIGFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOwotCSAgICBhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKLQkgICAgYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBMDAwQTA7CisJICAgIGFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJICAgIGFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7CisJICAgIGFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBMDAwQTA7CiAKIAkgICAgZGVzdDJbaV0gPSBkYXRhMltpXTsKIApAQCAtNjU5LDkgKzY1OSw5IEBACiAKIAkgICAgLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCSAgICBzdGFydCA9IGdldF90aW1lciAoMCk7Ci0JICAgIHdoaWxlICgoZGVzdDJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPQotCQkgICAoZGF0YTJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSkgewotCSAgICAgIGlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkgICAgd2hpbGUgKChkZXN0MltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPQorCQkgICAoZGF0YTJbaV0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkpIHsKKwkgICAgICBpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQlyZXR1cm4gKDEpOwogCSAgICAgIH0KIAkgICAgfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NvbW1vbi9mcGdhLmMgYi9ib2FyZC9lc2QvY29tbW9uL2ZwZ2EuYwppbmRleCA5ZTJiZTdlLi41MjMyZGRkIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY29tbW9uL2ZwZ2EuYworKysgYi9ib2FyZC9lc2QvY29tbW9uL2ZwZ2EuYwpAQCAtMzYsMTIgKzM2LDEyIEBACiAKICNkZWZpbmUgTUFYX09ORVMgICAgICAgICAgICAgICAyMjYKIAotI2lmZGVmIENGR19GUEdBX1BSRwotIyBkZWZpbmUgRlBHQV9QUkcgICAgICAgICAgICAgIENGR19GUEdBX1BSRwkvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwotIyBkZWZpbmUgRlBHQV9DTEsgICAgICAgICAgICAgIENGR19GUEdBX0NMSwkvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICovCi0jIGRlZmluZSBGUEdBX0RBVEEgICAgICAgICAgICAgQ0ZHX0ZQR0FfREFUQQkvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgKi8KLSMgZGVmaW5lIEZQR0FfRE9ORSAgICAgICAgICAgICBDRkdfRlBHQV9ET05FCS8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAqLwotIyBkZWZpbmUgRlBHQV9JTklUICAgICAgICAgICAgIENGR19GUEdBX0lOSVQJLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICovCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BSRworIyBkZWZpbmUgRlBHQV9QUkcgICAgICAgICAgICAgIENPTkZJR19TWVNfRlBHQV9QUkcJLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KKyMgZGVmaW5lIEZQR0FfQ0xLICAgICAgICAgICAgICBDT05GSUdfU1lTX0ZQR0FfQ0xLCS8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgKi8KKyMgZGVmaW5lIEZQR0FfREFUQSAgICAgICAgICAgICBDT05GSUdfU1lTX0ZQR0FfREFUQQkvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgKi8KKyMgZGVmaW5lIEZQR0FfRE9ORSAgICAgICAgICAgICBDT05GSUdfU1lTX0ZQR0FfRE9ORQkvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgKi8KKyMgZGVmaW5lIEZQR0FfSU5JVCAgICAgICAgICAgICBDT05GSUdfU1lTX0ZQR0FfSU5JVAkvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgKi8KICNlbHNlCiAjIGRlZmluZSBGUEdBX1BSRyAgICAgICAgICAgICAgMHgwNDAwMDAwMAkvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwogIyBkZWZpbmUgRlBHQV9DTEsgICAgICAgICAgICAgIDB4MDIwMDAwMDAJLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KQEAgLTk4LDcgKzk4LDcgQEAKIAlpbnQgY291bnQ7CiAJdW5zaWduZWQgY2hhciBiOwogCi0jaWZkZWYgQ0ZHX0ZQR0FfU1BBUlRBTjIKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIKIAlpbnQgajsKICNlbHNlCiAJaW50IGJpdDsKQEAgLTExMiw3ICsxMTIsNyBAQAogCQlpbmRleCArPSBsZW4gKyAzOwogCX0KIAotI2lmZGVmIENGR19GUEdBX1NQQVJUQU4yCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCiAJLyogc2VhcmNoIGZvciBwcmVhbWJsZSAweEZGRkZGRkZGICovCiAJd2hpbGUgKDEpIHsKIAkJaWYgKChmcGdhZGF0YVtpbmRleF0gPT0gMHhmZikgJiYgKGZwZ2FkYXRhW2luZGV4ICsgMV0gPT0gMHhmZikKQEAgLTE4Niw3ICsxODYsNyBAQAogCURCRyAoIndyaXRlIGNvbmZpZ3VyYXRpb24gZGF0YSBpbnRvIGZwZ2FcbiIpOwogCS8qIHdyaXRlIGNvbmZpZ3VyYXRpb24tZGF0YSBpbnRvIGZwZ2EuLi4gKi8KIAotI2lmZGVmIENGR19GUEdBX1NQQVJUQU4yCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCiAJLyoKIAkgKiBMb2FkIHVuY29tcHJlc3NlZCBpbWFnZSBpbnRvIGZwZ2EKIAkgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9jb21tb24vbGNkLmMgYi9ib2FyZC9lc2QvY29tbW9uL2xjZC5jCmluZGV4IGMyM2RjODEuLjFlZWE1OWUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jb21tb24vbGNkLmMKKysrIGIvYm9hcmQvZXNkL2NvbW1vbi9sY2QuYwpAQCAtMzcsNyArMzcsNyBAQAogdW5zaWduZWQgY2hhciAqZ2xvYl9sY2RfcmVnOwogdW5zaWduZWQgY2hhciAqZ2xvYl9sY2RfbWVtOwogCi0jaWYgZGVmaW5lZChDRkdfTENEX0VORElBTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTENEX0VORElBTikKIHZvaWQgbGNkX3NldHVwKGludCBsY2QsIGludCBjb25maWcpCiB7CiAJaWYgKGxjZCA9PSAwKSB7CkBAIC00NywyMSArNDcsMjEgQEAKIAogCQkvKiBzZXQgcmVzZXQgdG8gbG93ICovCiAJCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwKLQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiB+Q0ZHX0xDRDBfUlNUKTsKKwkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiB+Q09ORklHX1NZU19MQ0QwX1JTVCk7CiAJCXVkZWxheSgxMCk7IC8qIHdhaXQgMTB1cyAqLwogCQlpZiAoY29uZmlnID09IDEpIHsKIAkJCS8qIGJpZy1lbmRpYW4gKi8KIAkJCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwKLQkJCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ0ZHX0xDRF9FTkRJQU4pOworCQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDT05GSUdfU1lTX0xDRF9FTkRJQU4pOwogCQl9IGVsc2UgewogCQkJLyogbGl0dGxlLWVuZGlhbiAqLwogCQkJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLAotCQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiB+Q0ZHX0xDRF9FTkRJQU4pOworCQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiB+Q09ORklHX1NZU19MQ0RfRU5ESUFOKTsKIAkJfQogCQl1ZGVsYXkoMTApOyAvKiB3YWl0IDEwdXMgKi8KIAkJLyogc2V0IHJlc2V0IHRvIGhpZ2ggKi8KIAkJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLAotCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSB8IENGR19MQ0QwX1JTVCk7CisJCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19MQ0QwX1JTVCk7CiAJfSBlbHNlIHsKIAkJLyoKIAkJICogU2V0IGVuZGlhbmVzcyBhbmQgcmVzZXQgbGNkIGNvbnRyb2xsZXIgMSAoYmlnKQpAQCAtNjksMjkgKzY5LDI5IEBACiAKIAkJLyogc2V0IHJlc2V0IHRvIGxvdyAqLwogCQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsCi0JCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgfkNGR19MQ0QxX1JTVCk7CisJCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfTENEMV9SU1QpOwogCQl1ZGVsYXkoMTApOyAvKiB3YWl0IDEwdXMgKi8KIAkJaWYgKGNvbmZpZyA9PSAxKSB7CiAJCQkvKiBiaWctZW5kaWFuICovCiAJCQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsCi0JCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSB8IENGR19MQ0RfRU5ESUFOKTsKKwkJCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19MQ0RfRU5ESUFOKTsKIAkJfSBlbHNlIHsKIAkJCS8qIGxpdHRsZS1lbmRpYW4gKi8KIAkJCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwKLQkJCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgfkNGR19MQ0RfRU5ESUFOKTsKKwkJCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfTENEX0VORElBTik7CiAJCX0KIAkJdWRlbGF5KDEwKTsgLyogd2FpdCAxMHVzICovCiAJCS8qIHNldCByZXNldCB0byBoaWdoICovCiAJCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwKLQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDRkdfTENEMV9SU1QpOworCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSB8IENPTkZJR19TWVNfTENEMV9SU1QpOwogCX0KIAogCS8qCi0JICogQ0ZHX0xDRF9FTkRJQU4gbWF5IGFsc28gYmUgRlBHQV9SRVNFVCwgc28gc2V0IGluYWN0aXZlCisJICogQ09ORklHX1NZU19MQ0RfRU5ESUFOIG1heSBhbHNvIGJlIEZQR0FfUkVTRVQsIHNvIHNldCBpbmFjdGl2ZQogCSAqLwotCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ0ZHX0xDRF9FTkRJQU4pOworCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19MQ0RfRU5ESUFOKTsKIH0KLSNlbmRpZiAvKiBDRkdfTENEX0VORElBTiAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTENEX0VORElBTiAqLwogCiAKIGludCBsY2RfYm1wKHVjaGFyICpsb2dvX2JtcCkKQEAgLTExNiwyMCArMTE2LDIwIEBACiAJCS8qCiAJCSAqIERlY29tcHJlc3MgYm1wIGltYWdlCiAJCSAqLwotCQlsZW4gPSBDRkdfVklERU9fTE9HT19NQVhfU0laRTsKLQkJZHN0ID0gbWFsbG9jKENGR19WSURFT19MT0dPX01BWF9TSVpFKTsKKwkJbGVuID0gQ09ORklHX1NZU19WSURFT19MT0dPX01BWF9TSVpFOworCQlkc3QgPSBtYWxsb2MoQ09ORklHX1NZU19WSURFT19MT0dPX01BWF9TSVpFKTsKIAkJaWYgKGRzdCA9PSBOVUxMKSB7CiAJCQlwcmludGYoIkVycm9yOiBtYWxsb2MgZm9yIGd1bnppcCBmYWlsZWQhXG4iKTsKIAkJCXJldHVybiAxOwogCQl9Ci0JCWlmIChndW56aXAoZHN0LCBDRkdfVklERU9fTE9HT19NQVhfU0laRSwKKwkJaWYgKGd1bnppcChkc3QsIENPTkZJR19TWVNfVklERU9fTE9HT19NQVhfU0laRSwKIAkJCSAgICh1Y2hhciAqKWxvZ29fYm1wLCAmbGVuKSAhPSAwKSB7CiAJCQlmcmVlKGRzdCk7CiAJCQlyZXR1cm4gMTsKIAkJfQotCQlpZiAobGVuID09IENGR19WSURFT19MT0dPX01BWF9TSVpFKSB7CisJCWlmIChsZW4gPT0gQ09ORklHX1NZU19WSURFT19MT0dPX01BWF9TSVpFKSB7CiAJCQlwcmludGYoIkltYWdlIGNvdWxkIGJlIHRydW5jYXRlZCIKLQkJCSAgICAgICAiIChpbmNyZWFzZSBDRkdfVklERU9fTE9HT19NQVhfU0laRSkhXG4iKTsKKwkJCSAgICAgICAiIChpbmNyZWFzZSBDT05GSUdfU1lTX1ZJREVPX0xPR09fTUFYX1NJWkUpIVxuIik7CiAJCX0KIAogCQkvKgpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NvbW1vbi9wY2kuYyBiL2JvYXJkL2VzZC9jb21tb24vcGNpLmMKaW5kZXggZjcxMTIwNS4uZGNiNzY0YyAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NvbW1vbi9wY2kuYworKysgYi9ib2FyZC9lc2QvY29tbW9uL3BjaS5jCkBAIC0xMTksMjQgKzExOSwyNCBAQAogICAvKgogICAgKiBDb25maWd1cmUgUExYIFBDSTkwNTQKICAgICovCi0gIHBjaV9yZWFkX2NvbmZpZ193b3JkKENGR19QQ0k5MDU0X0RFVl9GTiwgUENJX0NPTU1BTkQsICZzdGF0dXMpOworICBwY2lfcmVhZF9jb25maWdfd29yZChDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOLCBQQ0lfQ09NTUFORCwgJnN0YXR1cyk7CiAgIHN0YXR1cyB8PSBQQ0lfQ09NTUFORF9NQVNURVIgfCBQQ0lfQ09NTUFORF9JTyB8IFBDSV9DT01NQU5EX01FTU9SWTsKLSAgcGNpX3dyaXRlX2NvbmZpZ193b3JkKENGR19QQ0k5MDU0X0RFVl9GTiwgUENJX0NPTU1BTkQsIHN0YXR1cyk7CisgIHBjaV93cml0ZV9jb25maWdfd29yZChDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOLCBQQ0lfQ09NTUFORCwgc3RhdHVzKTsKIAogICAvKiBDaGVjayB0aGUgbGF0ZW5jeSB0aW1lciBmb3IgdmFsdWVzID49IDB4NjAuCiAgICAqLwotICBwY2lfcmVhZF9jb25maWdfYnl0ZShDRkdfUENJOTA1NF9ERVZfRk4sIFBDSV9MQVRFTkNZX1RJTUVSLCAmdGltZXIpOworICBwY2lfcmVhZF9jb25maWdfYnl0ZShDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOLCBQQ0lfTEFURU5DWV9USU1FUiwgJnRpbWVyKTsKICAgaWYgKHRpbWVyIDwgMHg2MCkKICAgICB7Ci0gICAgICBwY2lfd3JpdGVfY29uZmlnX2J5dGUoQ0ZHX1BDSTkwNTRfREVWX0ZOLCBQQ0lfTEFURU5DWV9USU1FUiwgMHg2MCk7CisgICAgICBwY2lfd3JpdGVfY29uZmlnX2J5dGUoQ09ORklHX1NZU19QQ0k5MDU0X0RFVl9GTiwgUENJX0xBVEVOQ1lfVElNRVIsIDB4NjApOwogICAgIH0KIAogICAvKiBTZXQgSS9PIGJhc2UgcmVnaXN0ZXIuCiAgICAqLwotICBwY2lfd3JpdGVfY29uZmlnX2R3b3JkKENGR19QQ0k5MDU0X0RFVl9GTiwgUENJX0JBU0VfQUREUkVTU18wLCBDRkdfUENJOTA1NF9JT0JBU0UpOwotICBwY2lfcmVhZF9jb25maWdfZHdvcmQoQ0ZHX1BDSTkwNTRfREVWX0ZOLCBQQ0lfQkFTRV9BRERSRVNTXzAsICZpb2Jhc2UpOworICBwY2lfd3JpdGVfY29uZmlnX2R3b3JkKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sIFBDSV9CQVNFX0FERFJFU1NfMCwgQ09ORklHX1NZU19QQ0k5MDU0X0lPQkFTRSk7CisgIHBjaV9yZWFkX2NvbmZpZ19kd29yZChDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOLCBQQ0lfQkFTRV9BRERSRVNTXzAsICZpb2Jhc2UpOwogCi0gIHBjaTkwNTRfaW9iYXNlID0gcGNpX21lbV90b19waHlzKENGR19QQ0k5MDU0X0RFVl9GTiwgaW9iYXNlICYgUENJX0JBU0VfQUREUkVTU19NRU1fTUFTSyk7CisgIHBjaTkwNTRfaW9iYXNlID0gcGNpX21lbV90b19waHlzKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sIGlvYmFzZSAmIFBDSV9CQVNFX0FERFJFU1NfTUVNX01BU0spOwogCiAgIGlmIChwY2k5MDU0X2lvYmFzZSA9PSAweGZmZmZmZmZmKQogICAgIHsKQEAgLTE0OSwxMyArMTQ5LDEzIEBACiBzdGF0aWMgc3RydWN0IHBjaV9jb25maWdfdGFibGUgcGNpOTA1NF9jb25maWdfdGFibGVbXSA9IHsKICNpZm5kZWYgQ09ORklHX1BDSV9QTlAKICAgeyBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELAotICAgIFBDSV9CVVMoQ0ZHX0VUSF9ERVZfRk4pLCBQQ0lfREVWKENGR19FVEhfREVWX0ZOKSwgUENJX0ZVTkMoQ0ZHX0VUSF9ERVZfRk4pLAotICAgIHBjaV9jZmdmdW5jX2NvbmZpZ19kZXZpY2UsIHsgQ0ZHX0VUSF9JT0JBU0UsCi0JCQkJIENGR19FVEhfSU9CQVNFLAorICAgIFBDSV9CVVMoQ09ORklHX1NZU19FVEhfREVWX0ZOKSwgUENJX0RFVihDT05GSUdfU1lTX0VUSF9ERVZfRk4pLCBQQ0lfRlVOQyhDT05GSUdfU1lTX0VUSF9ERVZfRk4pLAorICAgIHBjaV9jZmdmdW5jX2NvbmZpZ19kZXZpY2UsIHsgQ09ORklHX1NZU19FVEhfSU9CQVNFLAorCQkJCSBDT05GSUdfU1lTX0VUSF9JT0JBU0UsCiAJCQkJIFBDSV9DT01NQU5EX0lPIHwgUENJX0NPTU1BTkRfTUFTVEVSIH19LAogI2lmZGVmIENPTkZJR19EQVNBX1NJTQogICB7IFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsCi0gICAgUENJX0JVUyhDRkdfUENJOTA1NF9ERVZfRk4pLCBQQ0lfREVWKENGR19QQ0k5MDU0X0RFVl9GTiksIFBDSV9GVU5DKENGR19QQ0k5MDU0X0RFVl9GTiksCisgICAgUENJX0JVUyhDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOKSwgUENJX0RFVihDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOKSwgUENJX0ZVTkMoQ09ORklHX1NZU19QQ0k5MDU0X0RFVl9GTiksCiAgICAgcGNpX2Rhc2Ffc2ltX2NvbmZpZ19wY2k5MDU0IH0sCiAjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NvbW1vbi94aWxpbnhfanRhZy9wb3J0cy5oIGIvYm9hcmQvZXNkL2NvbW1vbi94aWxpbnhfanRhZy9wb3J0cy5oCmluZGV4IDBlMzg5OTAuLmI3MDJmZGQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jb21tb24veGlsaW54X2p0YWcvcG9ydHMuaAorKysgYi9ib2FyZC9lc2QvY29tbW9uL3hpbGlueF9qdGFnL3BvcnRzLmgKQEAgLTM4LDEyICszOCwxMiBAQAogI2RlZmluZSBUREkgKHNob3J0KSAyCiAKIC8qCi0gKiBVc2UgQ0ZHX0ZQR0FfeHh4IGRlZmluZXMgZnJvbSBib2FyZCBpbmNsdWRlIGZpbGUuCisgKiBVc2UgQ09ORklHX1NZU19GUEdBX3h4eCBkZWZpbmVzIGZyb20gYm9hcmQgaW5jbHVkZSBmaWxlLgogICovCi0jZGVmaW5lIEpUQUdfVE1TICAgQ0ZHX0ZQR0FfUFJHICAgICAvKiBvdXRwdXQgKi8KLSNkZWZpbmUgSlRBR19UQ0sgICBDRkdfRlBHQV9DTEsgICAgIC8qIG91dHB1dCAqLwotI2RlZmluZSBKVEFHX1RESSAgIENGR19GUEdBX0RBVEEgICAgLyogb3V0cHV0ICovCi0jZGVmaW5lIEpUQUdfVERPICAgQ0ZHX0ZQR0FfRE9ORSAgICAvKiBpbnB1dCAqLworI2RlZmluZSBKVEFHX1RNUyAgIENPTkZJR19TWVNfRlBHQV9QUkcgICAgIC8qIG91dHB1dCAqLworI2RlZmluZSBKVEFHX1RDSyAgIENPTkZJR19TWVNfRlBHQV9DTEsgICAgIC8qIG91dHB1dCAqLworI2RlZmluZSBKVEFHX1RESSAgIENPTkZJR19TWVNfRlBHQV9EQVRBICAgIC8qIG91dHB1dCAqLworI2RlZmluZSBKVEFHX1RETyAgIENPTkZJR19TWVNfRlBHQV9ET05FICAgIC8qIGlucHV0ICovCiAKIC8qIHNldCB0aGUgcG9ydCAicCIgKFRDSywgVE1TLCBvciBUREkpIHRvIHZhbCAoMCBvciAxKSAqLwogdm9pZCBzZXRQb3J0KHNob3J0IHAsIHNob3J0IHZhbCk7CmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY3BjaTJkcC9jcGNpMmRwLmMgYi9ib2FyZC9lc2QvY3BjaTJkcC9jcGNpMmRwLmMKaW5kZXggOGJjNDBkNS4uZGNhYjkwNiAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NwY2kyZHAvY3BjaTJkcC5jCisrKyBiL2JvYXJkL2VzZC9jcGNpMmRwL2NwY2kyZHAuYwpAQCAtMzYsMTIgKzM2LDEyIEBACiAJICogU2V0dXAgR1BJTyBwaW5zCiAJICovCiAJY250cmwwUmVnID0gbWZkY3IoY250cmwwKTsKLQltdGRjcihjbnRybDAsIGNudHJsMFJlZyB8ICgoQ0ZHX0VFUFJPTV9XUCB8IENGR19QQl9MRUQgfCBDRkdfU0VMRl9SU1QgfCBDRkdfSU5UQV9GQUtFKSA8PCA1KSk7CisJbXRkY3IoY250cmwwLCBjbnRybDBSZWcgfCAoKENPTkZJR19TWVNfRUVQUk9NX1dQIHwgQ09ORklHX1NZU19QQl9MRUQgfCBDT05GSUdfU1lTX1NFTEZfUlNUIHwgQ09ORklHX1NZU19JTlRBX0ZBS0UpIDw8IDUpKTsKIAogCS8qIHNldCBvdXRwdXQgcGlucyB0byBoaWdoICovCi0Jb3V0MzIoR1BJTzBfT1IsICBDRkdfRUVQUk9NX1dQKTsKKwlvdXQzMihHUElPMF9PUiwgIENPTkZJR19TWVNfRUVQUk9NX1dQKTsKIAkvKiBzZXR1cCBmb3Igb3V0cHV0IChMRUQ9b2ZmKSAqLwotCW91dDMyKEdQSU8wX1RDUiwgQ0ZHX0VFUFJPTV9XUCB8IENGR19QQl9MRUQpOworCW91dDMyKEdQSU8wX1RDUiwgQ09ORklHX1NZU19FRVBST01fV1AgfCBDT05GSUdfU1lTX1BCX0xFRCk7CiAKIAkvKgogCSAqIElSUSAwLTE1ICA0MDVHUCBpbnRlcm5hbGx5IGdlbmVyYXRlZDsgYWN0aXZlIGhpZ2g7IGxldmVsIHNlbnNpdGl2ZQpAQCAtMTA4LDcgKzEwOCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pCiAvKiBJbnB1dDogPGRldl9hZGRyPiAgSTJDIGFkZHJlc3Mgb2YgRUVQUk9NIGRldmljZSB0byBlbmFibGUuCiAgKgkgICA8c3RhdGU+ICAgICAtMTogZGVsaXZlciBjdXJyZW50IHN0YXRlCiAgKgkJICAgICAgIDA6IGRpc2FibGUgd3JpdGUKQEAgLTExOCwyMyArMTE4LDIzIEBACiAgKgkJICAgICAwLzE6IGN1cnJlbnQgc3RhdGUgaWYgPHN0YXRlPiB3YXMgLTEuCiAgKi8KIGludCBlZXByb21fd3JpdGVfZW5hYmxlICh1bnNpZ25lZCBkZXZfYWRkciwgaW50IHN0YXRlKSB7Ci0JaWYgKENGR19JMkNfRUVQUk9NX0FERFIgIT0gZGV2X2FkZHIpIHsKKwlpZiAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgIT0gZGV2X2FkZHIpIHsKIAkJcmV0dXJuIC0xOwogCX0gZWxzZSB7CiAJCXN3aXRjaCAoc3RhdGUpIHsKIAkJY2FzZSAxOgogCQkJLyogRW5hYmxlIHdyaXRlIGFjY2VzcywgY2xlYXIgYml0IEdQSU9fU0lOVDIuICovCi0JCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q0ZHX0VFUFJPTV9XUCk7CisJCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q09ORklHX1NZU19FRVBST01fV1ApOwogCQkJc3RhdGUgPSAwOwogCQkJYnJlYWs7CiAJCWNhc2UgMDoKIAkJCS8qIERpc2FibGUgd3JpdGUgYWNjZXNzLCBzZXQgYml0IEdQSU9fU0lOVDIuICovCi0JCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDRkdfRUVQUk9NX1dQKTsKKwkJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfRUVQUk9NX1dQKTsKIAkJCXN0YXRlID0gMDsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJLyogUmVhZCBjdXJyZW50IHN0YXR1cyBiYWNrLiAqLwotCQkJc3RhdGUgPSAoMCA9PSAoaW4zMihHUElPMF9PUikgJiBDRkdfRUVQUk9NX1dQKSk7CisJCQlzdGF0ZSA9ICgwID09IChpbjMyKEdQSU8wX09SKSAmIENPTkZJR19TWVNfRUVQUk9NX1dQKSk7CiAJCQlicmVhazsKIAkJfQogCX0KQEAgLTE0Miw3ICsxNDIsNyBAQAogfQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pCiBpbnQgZG9fZWVwX3dyZW4gKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogCWludCBxdWVyeSA9IGFyZ2MgPT0gMTsKQEAgLTE1MCwyMSArMTUwLDIxIEBACiAKIAlpZiAocXVlcnkpIHsKIAkJLyogUXVlcnkgd3JpdGUgYWNjZXNzIHN0YXRlLiAqLwotCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENGR19JMkNfRUVQUk9NX0FERFIsIC0xKTsKKwkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgLTEpOwogCQlpZiAoc3RhdGUgPCAwKSB7CiAJCQlwdXRzICgiUXVlcnkgb2Ygd3JpdGUgYWNjZXNzIHN0YXRlIGZhaWxlZC5cbiIpOwogCQl9IGVsc2UgewogCQkJcHJpbnRmICgiV3JpdGUgYWNjZXNzIGZvciBkZXZpY2UgMHglMHggaXMgJXNhYmxlZC5cbiIsCi0JCQkJQ0ZHX0kyQ19FRVBST01fQUREUiwgc3RhdGUgPyAiZW4iIDogImRpcyIpOworCQkJCUNPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCBzdGF0ZSA/ICJlbiIgOiAiZGlzIik7CiAJCQlzdGF0ZSA9IDA7CiAJCX0KIAl9IGVsc2UgewogCQlpZiAoJzAnID09IGFyZ3ZbMV1bMF0pIHsKIAkJCS8qIERpc2FibGUgd3JpdGUgYWNjZXNzLiAqLwotCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDRkdfSTJDX0VFUFJPTV9BRERSLCAwKTsKKwkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIDApOwogCQl9IGVsc2UgewogCQkJLyogRW5hYmxlIHdyaXRlIGFjY2Vzcy4gKi8KLQkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ0ZHX0kyQ19FRVBST01fQUREUiwgMSk7CisJCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAxKTsKIAkJfQogCQlpZiAoc3RhdGUgPCAwKSB7CiAJCQlwdXRzICgiU2V0dXAgb2Ygd3JpdGUgYWNjZXNzIHN0YXRlIGZhaWxlZC5cbiIpOwpAQCAtMTc5LDQgKzE3OSw0IEBACiAJImVlcHdyZW4gLSBFbmFibGUgLyBkaXNhYmxlIC8gcXVlcnkgRUVQUk9NIHdyaXRlIGFjY2Vzc1xuIiwKIAlOVUxMCiAJKTsKLSNlbmRpZiAvKiAjaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pICovCisjZW5kaWYgLyogI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9jcGNpMmRwL2ZsYXNoLmMgYi9ib2FyZC9lc2QvY3BjaTJkcC9mbGFzaC5jCmluZGV4IGRlODQ3ZjkuLjU2YzgyMmUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jcGNpMmRwL2ZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL2NwY2kyZHAvZmxhc2guYwpAQCAtNDcsNyArNDcsNyBAQAogCXVuc2lnbmVkIGxvbmcgYmFzZV9iMDsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NwY2k0MDUvY3BjaTQwNS5jIGIvYm9hcmQvZXNkL2NwY2k0MDUvY3BjaTQwNS5jCmluZGV4IGZiMzQ5NTcuLmM1Y2NiMzQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jcGNpNDA1L2NwY2k0MDUuYworKysgYi9ib2FyZC9lc2QvY3BjaTQwNS9jcGNpNDA1LmMKQEAgLTExMCw4ICsxMTAsOCBAQAogCSAqIEZpcnN0IHB1bGwgZnBnYS1wcmcgcGluIGxvdywgdG8gZGlzYWJsZSBmcGdhIGxvZ2ljIChvbiB2ZXJzaW9uIDIgYm9hcmQpCiAJICovCiAJb3V0MzIoR1BJTzBfT0RSLCAweDAwMDAwMDAwKTsJICAgICAvKiBubyBvcGVuIGRyYWluIHBpbnMJKi8KLQlvdXQzMihHUElPMF9UQ1IsIENGR19GUEdBX1BSRyk7ICAgICAgLyogc2V0dXAgZm9yIG91dHB1dAkqLwotCW91dDMyKEdQSU8wX09SLCAgQ0ZHX0ZQR0FfUFJHKTsgICAgICAvKiBzZXQgb3V0cHV0IHBpbnMgdG8gaGlnaCAqLworCW91dDMyKEdQSU8wX1RDUiwgQ09ORklHX1NZU19GUEdBX1BSRyk7ICAgICAgLyogc2V0dXAgZm9yIG91dHB1dAkqLworCW91dDMyKEdQSU8wX09SLCAgQ09ORklHX1NZU19GUEdBX1BSRyk7ICAgICAgLyogc2V0IG91dHB1dCBwaW5zIHRvIGhpZ2ggKi8KIAlvdXQzMihHUElPMF9PUiwgMCk7CQkgICAgIC8qIHB1bGwgcHJnIGxvdwkJKi8KIAogCS8qCkBAIC0yODIsOCArMjgyLDggQEAKIAkJY250cmwwUmVnID0gbWZkY3IoY250cmwwKTsKIAkJbXRkY3IoY250cmwwLCBjbnRybDBSZWcgfCAweDAwMzAwMDAwKTsKIAotCQlkc3QgPSBtYWxsb2MoQ0ZHX0ZQR0FfTUFYX1NJWkUpOwotCQlpZiAoZ3VuemlwIChkc3QsIENGR19GUEdBX01BWF9TSVpFLCAodWNoYXIgKilmcGdhZGF0YSwgJmxlbikgIT0gMCkgeworCQlkc3QgPSBtYWxsb2MoQ09ORklHX1NZU19GUEdBX01BWF9TSVpFKTsKKwkJaWYgKGd1bnppcCAoZHN0LCBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CiAJCQlwcmludGYgKCJHVU5aSVAgRVJST1IgLSBtdXN0IFJFU0VUIGJvYXJkIHRvIHJlY292ZXJcbiIpOwogCQkJZG9fcmVzZXQgKE5VTEwsIDAsIDAsIE5VTEwpOwogCQl9CkBAIC0zNDcsMTMgKzM0NywxMyBAQAogCiAjaWZkZWYgQ09ORklHX0NQQ0k0MDVfNlUKIAkJaWYgKGNwY2k0MDVfdmVyc2lvbigpID09IDMpIHsKLQkJCXZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICpmcGdhX21vZGUgPSAodW5zaWduZWQgc2hvcnQgKilDRkdfRlBHQV9CQVNFX0FERFI7Ci0JCQl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpsZWRzID0gKHVuc2lnbmVkIGNoYXIgKilDRkdfTEVEX0FERFI7CisJCQl2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqZnBnYV9tb2RlID0gKHVuc2lnbmVkIHNob3J0ICopQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUjsKKwkJCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmxlZHMgPSAodW5zaWduZWQgY2hhciAqKUNPTkZJR19TWVNfTEVEX0FERFI7CiAKIAkJCS8qCiAJCQkgKiBFbmFibGUgb3V0cHV0cyBpbiBmcGdhIG9uIHZlcnNpb24gMyBib2FyZAogCQkJICovCi0JCQkqZnBnYV9tb2RlIHw9IENGR19GUEdBX01PREVfRU5BQkxFX09VVFBVVDsKKwkJCSpmcGdhX21vZGUgfD0gQ09ORklHX1NZU19GUEdBX01PREVfRU5BQkxFX09VVFBVVDsKIAogCQkJLyoKIAkJCSAqIFNldCBvdXRwdXRzIHRvIDAKQEAgLTM2Myw5ICszNjMsOSBAQAogCQkJLyoKIAkJCSAqIFJlc2V0IGV4dGVybmFsIERVQVJUCiAJCQkgKi8KLQkJCSpmcGdhX21vZGUgfD0gQ0ZHX0ZQR0FfTU9ERV9EVUFSVF9SRVNFVDsKKwkJCSpmcGdhX21vZGUgfD0gQ09ORklHX1NZU19GUEdBX01PREVfRFVBUlRfUkVTRVQ7CiAJCQl1ZGVsYXkoMTAwKTsKLQkJCSpmcGdhX21vZGUgJj0gfihDRkdfRlBHQV9NT0RFX0RVQVJUX1JFU0VUKTsKKwkJCSpmcGdhX21vZGUgJj0gfihDT05GSUdfU1lTX0ZQR0FfTU9ERV9EVUFSVF9SRVNFVCk7CiAJCX0KICNlbmRpZgogCX0KQEAgLTQ0NSw5ICs0NDUsOSBAQAogCiAjaWYgMCAvKiB0ZXN0LW9ubHkgKi8KIAlpZiAodmVyID49IDIpIHsKLQkJdm9sYXRpbGUgdTE2ICpmcGdhX3N0YXR1cyA9ICh1MTYgKilDRkdfRlBHQV9CQVNFX0FERFIgKyAxOworCQl2b2xhdGlsZSB1MTYgKmZwZ2Ffc3RhdHVzID0gKHUxNiAqKUNPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIgKyAxOwogCi0JCWlmICgqZnBnYV9zdGF0dXMgJiBDRkdfRlBHQV9TVEFUVVNfRkxBU0gpIHsKKwkJaWYgKCpmcGdhX3N0YXR1cyAmIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRkxBU0gpIHsKIAkJCXB1dHMgKCJGTEFTSCBCYW5rIEIsICIpOwogCQl9IGVsc2UgewogCQkJcHV0cyAoIkZMQVNIIEJhbmsgQSwgIik7CkBAIC01MDQsMTUgKzUwNCwxNSBAQAogCiB2b2lkIGlkZV9zZXRfcmVzZXQoaW50IG9uKQogewotCXZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICpmcGdhX21vZGUgPSAodW5zaWduZWQgc2hvcnQgKilDRkdfRlBHQV9CQVNFX0FERFI7CisJdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKmZwZ2FfbW9kZSA9ICh1bnNpZ25lZCBzaG9ydCAqKUNPTkZJR19TWVNfRlBHQV9CQVNFX0FERFI7CiAKIAkvKgogCSAqIEFzc2VydCBvciBkZWFzc2VydCBDb21wYWN0Rmxhc2ggUmVzZXQgUGluCiAJICovCiAJaWYgKG9uKSB7CQkvKiBhc3NlcnQgUkVTRVQgKi8KLQkJKmZwZ2FfbW9kZSAmPSB+KENGR19GUEdBX01PREVfQ0ZfUkVTRVQpOworCQkqZnBnYV9tb2RlICY9IH4oQ09ORklHX1NZU19GUEdBX01PREVfQ0ZfUkVTRVQpOwogCX0gZWxzZSB7CQkvKiByZWxlYXNlIFJFU0VUICovCi0JCSpmcGdhX21vZGUgfD0gQ0ZHX0ZQR0FfTU9ERV9DRl9SRVNFVDsKKwkJKmZwZ2FfbW9kZSB8PSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9DRl9SRVNFVDsKIAl9CiB9CiAKQEAgLTU1NSwxMiArNTU1LDEyIEBACiAKICNpZmRlZiBDT05GSUdfQ1BDSTQwNUFCCiAKLSNkZWZpbmUgT05FX1dJUkVfQ0xFQVIJICgqKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopKENGR19GUEdBX0JBU0VfQUREUiArIENGR19GUEdBX01PREUpIFwKLQkJCSAgfD0gQ0ZHX0ZQR0FfTU9ERV8xV0lSRV9ESVIpCi0jZGVmaW5lIE9ORV9XSVJFX1NFVAkgKCoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikoQ0ZHX0ZQR0FfQkFTRV9BRERSICsgQ0ZHX0ZQR0FfTU9ERSkgXAotCQkJICAmPSB+Q0ZHX0ZQR0FfTU9ERV8xV0lSRV9ESVIpCi0jZGVmaW5lIE9ORV9XSVJFX0dFVAkgKCoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikoQ0ZHX0ZQR0FfQkFTRV9BRERSICsgQ0ZHX0ZQR0FfU1RBVFVTKSBcCi0JCQkgICYgQ0ZHX0ZQR0FfTU9ERV8xV0lSRSkKKyNkZWZpbmUgT05FX1dJUkVfQ0xFQVIJICgqKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopKENPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0ZQR0FfTU9ERSkgXAorCQkJICB8PSBDT05GSUdfU1lTX0ZQR0FfTU9ERV8xV0lSRV9ESVIpCisjZGVmaW5lIE9ORV9XSVJFX1NFVAkgKCoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikoQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUiArIENPTkZJR19TWVNfRlBHQV9NT0RFKSBcCisJCQkgICY9IH5DT05GSUdfU1lTX0ZQR0FfTU9ERV8xV0lSRV9ESVIpCisjZGVmaW5lIE9ORV9XSVJFX0dFVAkgKCoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikoQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUiArIENPTkZJR19TWVNfRlBHQV9TVEFUVVMpIFwKKwkJCSAgJiBDT05GSUdfU1lTX0ZQR0FfTU9ERV8xV0lSRSkKIAogLyoKICAqIEdlbmVyYXRlIGEgMS13aXJlIHJlc2V0LCByZXR1cm4gMSBpZiBubyBwcmVzZW5jZSBkZXRlY3Qgd2FzIGZvdW5kLApAQCAtNjkwLDcgKzY5MCw3IEBACiAJTlVMTAogCSk7CiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl8yCTB4NTEJLyogRUVQUk9NIENBVDI4V0MzMgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfMgkweDUxCS8qIEVFUFJPTSBDQVQyOFdDMzIJCSovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV8yCTB4ODAwCS8qIDIwNDggYnl0ZXMgbWF5IGJlIHVzZWQgZm9yIGVudiB2YXJzKi8KIAogLyoKQEAgLTcwNiw3ICs3MDYsNyBAQAogCUlQYWRkcl90IGlwYWRkcjsKIAogCWJ1ZiA9IG1hbGxvYyhDT05GSUdfRU5WX1NJWkVfMik7Ci0JaWYgKGVlcHJvbV9yZWFkKENGR19JMkNfRUVQUk9NX0FERFJfMiwgMCwgKHVjaGFyICopYnVmLCBDT05GSUdfRU5WX1NJWkVfMikpIHsKKwlpZiAoZWVwcm9tX3JlYWQoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfMiwgMCwgKHVjaGFyICopYnVmLCBDT05GSUdfRU5WX1NJWkVfMikpIHsKIAkJcHV0cygiXG5FcnJvciByZWFkaW5nIGJhY2twbGFuZSBFRVBST00hXG4iKTsKIAl9IGVsc2UgewogCQljcmMgPSBjcmMzMigwLCAodWNoYXIgKikoYnVmKzQpLCBDT05GSUdfRU5WX1NJWkVfMi00KTsKQEAgLTc3MSw3ICs3NzEsNyBAQAogCWNyYyA9IGNyYzMyKDAsICh1Y2hhciAqKShidWYrNCksIENPTkZJR19FTlZfU0laRV8yLTQpOwogCSoodWxvbmcgKilidWYgPSBjcmM7CiAKLQlpZiAoZWVwcm9tX3dyaXRlKENGR19JMkNfRUVQUk9NX0FERFJfMiwgMCwgKHVjaGFyICopYnVmLCBDT05GSUdfRU5WX1NJWkVfMikpIHsKKwlpZiAoZWVwcm9tX3dyaXRlKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSXzIsIDAsICh1Y2hhciAqKWJ1ZiwgQ09ORklHX0VOVl9TSVpFXzIpKSB7CiAJCXB1dHMoIlxuRXJyb3Igd3JpdGluZyBiYWNrcGxhbmUgRUVQUk9NIVxuIik7CiAJfQogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY3BjaTQwNS9mbGFzaC5jIGIvYm9hcmQvZXNkL2NwY2k0MDUvZmxhc2guYwppbmRleCBlNzY2ODk1Li5kNTM1OTI0IDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY3BjaTQwNS9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9jcGNpNDA1L2ZsYXNoLmMKQEAgLTY2LDcgKzY2LDcgQEAKIAl1bnNpZ25lZCBsb25nIGJhc2VfYjAsIGJhc2VfYjE7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NwY2k1MjAwL2NwY2k1MjAwLmMgYi9ib2FyZC9lc2QvY3BjaTUyMDAvY3BjaTUyMDAuYwppbmRleCAyYTQyZTY1Li42ZWVkYjgzIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY3BjaTUyMDAvY3BjaTUyMDAuYworKysgYi9ib2FyZC9lc2QvY3BjaTUyMDAvY3BjaTUyMDAuYwpAQCAtODEsNyArODEsNyBAQAogCiAvKgogICogQVRURU5USU9OOiBBbHRob3VnaCBwYXJ0aWFsbHkgcmVmZXJlbmNlZCBpbml0ZHJhbSBkb2VzIE5PVCBtYWtlIHJlYWwgdXNlCi0gKiAgICAgICAgICAgIHVzZSBvZiBDRkdfU0RSQU1fQkFTRS4gVGhlIGNvZGUgZG9lcyBub3Qgd29yayBpZiBDRkdfU0RSQU1fQkFTRQorICogICAgICAgICAgICB1c2Ugb2YgQ09ORklHX1NZU19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENPTkZJR19TWVNfU0RSQU1fQkFTRQogICogICAgICAgICAgICBpcyBzb21ldGhpbmcgZWxzZSB0aGFuIDB4MDAwMDAwMDAuCiAgKi8KIApAQCAtMTA2LDkgKzEwNiw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMCBvbmx5ICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikgQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikgQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKQEAgLTE0NCw5ICsxNDQsOSBAQAogI2lmIDAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMSBvbmx5ICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JZ2V0X3JhbV9zaXplKCh1bG9uZyAqKSAoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCWdldF9yYW1fc2l6ZSgodWxvbmcgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JZ2V0X3JhbV9zaXplKCh1bG9uZyAqKSAoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCWdldF9yYW1fc2l6ZSgodWxvbmcgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMCk7CiAjZW5kaWYKIAkvKiBzZXQgU0RSQU0gQ1MxIHNpemUgYWNjb3JkaW5nIHRvIHRoZSBhbW91bnQgb2YgUkFNIGZvdW5kICovCkBAIC0xODAsMTAgKzE4MCwxMCBAQAogCQkvKiBhZGp1c3QgbWFwcGluZyAqLwogCQkqKHZ1X2xvbmcgKikgTVBDNVhYWF9CT09UQ1NfU1RBUlQgPQogCQkgICAgKih2dV9sb25nICopIE1QQzVYWFhfQ1MwX1NUQVJUID0KLQkJICAgIFNUQVJUX1JFRyhDRkdfQk9PVENTX1NUQVJUIHwgc2l6ZSk7CisJCSAgICBTVEFSVF9SRUcoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQgfCBzaXplKTsKIAkJKih2dV9sb25nICopIE1QQzVYWFhfQk9PVENTX1NUT1AgPQogCQkgICAgKih2dV9sb25nICopIE1QQzVYWFhfQ1MwX1NUT1AgPQotCQkgICAgU1RPUF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCB8IHNpemUsIHNpemUpOworCQkgICAgU1RPUF9SRUcoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQgfCBzaXplLCBzaXplKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9jcGNpNTIwMC9zdHJhdGFmbGFzaC5jIGIvYm9hcmQvZXNkL2NwY2k1MjAwL3N0cmF0YWZsYXNoLmMKaW5kZXggZDc2YWYwMi4uOWI1NzhiNSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NwY2k1MjAwL3N0cmF0YWZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL2NwY2k1MjAwL3N0cmF0YWZsYXNoLmMKQEAgLTEwMiw3ICsxMDIsNyBAQAogCiAjZGVmaW5lIE5VTV9FUkFTRV9SRUdJT05TIDQKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC0xMjEsNyArMTIxLDcgQEAKIAkJCSAgICAgICBjZml3b3JkX3QgY3dvcmQpOwogc3RhdGljIGludCBmbGFzaF9mdWxsX3N0YXR1c19jaGVjayhmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBzZWN0b3IsCiAJCQkJICAgdWxvbmcgdG91dCwgY2hhciAqcHJvbXB0KTsKLSNpZmRlZiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQogc3RhdGljIGludCBmbGFzaF93cml0ZV9jZmlidWZmZXIoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWNoYXIgKiBjcCwKIAkJCQkgaW50IGxlbik7CiAjZW5kaWYKQEAgLTE4NSwxNCArMTg1LDE0IEBACiAJICoKIAkgKi8KIAotCWFkZHJlc3MgPSBDRkdfRkxBU0hfQkFTRTsKKwlhZGRyZXNzID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCXNpemUgPSAwOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJc2l6ZSArPSBmbGFzaF9pbmZvW2ldLnNpemUgPSBmbGFzaF9nZXRfc2l6ZShhZGRyZXNzLCBpKTsKLQkJYWRkcmVzcyArPSBDRkdfRkxBU0hfSU5DUkVNRU5UOworCQlhZGRyZXNzICs9IENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UOwogCQlpZiAoZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCQlwcmludGYKIAkJCSAgICAoIiMjIFVua25vd24gRkxBU0ggb24gQmFuayAlZCAtIFNpemUgPSAweCUwOGx4ID0gJWxkIE1CXG4iLApAQCAtMjAyLDkgKzIwMiw5IEBACiAKICNpZiAwCQkJCS8qIHRlc3Qtb25seSAqLwogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UpCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKIAlmb3IgKGkgPSAwOwotCSAgICAgZmxhc2hfaW5mb1swXS5zdGFydFtpXSA8IENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDE7CisJICAgICBmbGFzaF9pbmZvWzBdLnN0YXJ0W2ldIDwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDE7CiAJICAgICBpKyspCiAJCSh2b2lkKWZsYXNoX3JlYWxfcHJvdGVjdCgmZmxhc2hfaW5mb1swXSwgaSwgMSk7CiAjZW5kaWYKQEAgLTMyNiw3ICszMjYsNyBAQAogCQkJcmV0dXJuIHJjOwogCQl3cCA9IGNwOwogCX0KLSNpZmRlZiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQogCXdoaWxlIChjbnQgPj0gaW5mby0+cG9ydHdpZHRoKSB7CiAJCWkgPSBpbmZvLT5idWZmZXJfc2l6ZSA+IGNudCA/IGNudCA6IGluZm8tPmJ1ZmZlcl9zaXplOwogCQlpZiAoKHJjID0gZmxhc2hfd3JpdGVfY2ZpYnVmZmVyKGluZm8sIHdwLCBzcmMsIGkpKSAhPSBFUlJfT0spCkBAIC0zNDcsNyArMzQ3LDcgQEAKIAkJd3AgKz0gaW5mby0+cG9ydHdpZHRoOwogCQljbnQgLT0gaW5mby0+cG9ydHdpZHRoOwogCX0KLSNlbmRpZgkJCQkvKiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLwogCWlmIChjbnQgPT0gMCkgewogCQlyZXR1cm4gKDApOwogCX0KQEAgLTcyNyw3ICs3MjcsNyBAQAogCXJldHVybiBmbGFzaF9mdWxsX3N0YXR1c19jaGVjayhpbmZvLCAwLCBpbmZvLT53cml0ZV90b3V0LCAid3JpdGUiKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAKIC8qIGxvb3AgdGhyb3VnaCB0aGUgc2VjdG9ycyBmcm9tIHRoZSBoaWdoZXN0IGFkZHJlc3MKICAqIHdoZW4gdGhlIHBhc3NlZCBhZGRyZXNzIGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gdGhlIHNlY3RvciBhZGRyZXNzCkBAIC04MDEsNCArODAxLDQgQEAKIAlmbGFzaF93cml0ZV9jbWQoaW5mbywgc2VjdG9yLCAwLCBGTEFTSF9DTURfQ0xFQVJfU1RBVFVTKTsKIAlyZXR1cm4gcmV0Y29kZTsKIH0KLSNlbmRpZgkJCQkvKiBDRkdfVVNFX0ZMQVNIX0JVRkZFUl9XUklURSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfVVNFX0ZMQVNIX0JVRkZFUl9XUklURSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NwY2k3NTAvY3BjaTc1MC5jIGIvYm9hcmQvZXNkL2NwY2k3NTAvY3BjaTc1MC5jCmluZGV4IDVhYjc2YzYuLjcwYmFlNjAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jcGNpNzUwL2NwY2k3NTAuYworKysgYi9ib2FyZC9lc2QvY3BjaTc1MC9jcGNpNzUwLmMKQEAgLTEyNSw3ICsxMjUsNyBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAvKiB0aGlzIGlzIHRoZSBjdXJyZW50IEdUIHJlZ2lzdGVyIHNwYWNlIGxvY2F0aW9uICovCi0vKiBpdCBzdGFydHMgYXQgQ0ZHX0RGTF9HVF9SRUdTIGJ1dCBtb3ZlcyBsYXRlciB0byBDRkdfR1RfUkVHUyAqLworLyogaXQgc3RhcnRzIGF0IENPTkZJR19TWVNfREZMX0dUX1JFR1MgYnV0IG1vdmVzIGxhdGVyIHRvIENPTkZJR19TWVNfR1RfUkVHUyAqLwogCiAvKiBVbmZvcnR1bmF0ZWx5LCB3ZSBjYW50IGNoYW5nZSBpdCB3aGlsZSB3ZSBhcmUgaW4gZmxhc2gsIHNvIHdlIGluaXRpYWxpemUgaXQKICAqIHRvIHRoZSAiZmluYWwiIHZhbHVlLiBUaGlzIG1lYW5zIHRoYXQgYW55IGRlYnVnX2xlZCBjYWxscyBiZWZvcmUKQEAgLTEzNCw3ICsxMzQsNyBAQAogICovCiAKIHZvaWQgYm9hcmRfcHJlYm9vdG1faW5pdCAodm9pZCk7Ci11bnNpZ25lZCBpbnQgSU5URVJOQUxfUkVHX0JBU0VfQUREUiA9IENGR19HVF9SRUdTOwordW5zaWduZWQgaW50IElOVEVSTkFMX1JFR19CQVNFX0FERFIgPSBDT05GSUdfU1lTX0dUX1JFR1M7CiBpbnQgZGlzcGxheV9tZW1fbWFwICh2b2lkKTsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtMTk3LDcgKzE5Nyw3IEBACiAKIAkJR1RfUkVHX1dSSVRFIChQQ0lfMF9DT05GSUdfQUREUiwgQklUMzEgfCB2YWwpOwogCQlHVF9SRUdfV1JJVEUgKFBDSV8wX0NPTkZJR19EQVRBX1ZJUlRVQUxfUkVHLAotCQkJICAgICAgKHN0YXQgJiAweGZmZmYwMDAwKSB8IENGR19QQ0lfSURTRUwpOworCQkJICAgICAgKHN0YXQgJiAweGZmZmYwMDAwKSB8IENPTkZJR19TWVNfUENJX0lEU0VMKTsKIAogCX0KIAlpZiAoKEdUUkVHUkVBRCAoUENJXzFfTU9ERSkgJiAoQklUNCB8IEJJVDUpKSAhPSAwKSB7CS8qaWYgIFBDSS1YICovCkBAIC0yMDYsNyArMjA2LDcgQEAKIAogCQlHVF9SRUdfV1JJVEUgKFBDSV8xX0NPTkZJR19BRERSLCBCSVQzMSB8IHZhbCk7CiAJCUdUX1JFR19XUklURSAoUENJXzFfQ09ORklHX0RBVEFfVklSVFVBTF9SRUcsCi0JCQkgICAgICAoc3RhdCAmIDB4ZmZmZjAwMDApIHwgQ0ZHX1BDSV9JRFNFTCk7CisJCQkgICAgICAoc3RhdCAmIDB4ZmZmZjAwMDApIHwgQ09ORklHX1NZU19QQ0lfSURTRUwpOwogCX0KIAogCS8qIEVuYWJsZSBtYXN0ZXIgKi8KQEAgLTIyNCwyMSArMjI0LDIxIEBACiAJLyogcm9uZW4tIGFkZCB3cml0ZSB0byBwY2kgcmVtYXAgcmVnaXN0ZXJzIGZvciA2NDQ2MC4KIAkgICBpbiA2NDM2MCB3aGVuIHdyaXRpbmcgdG8gcGNpIGJhc2UgZ28gYW5kIG92ZXJpZGUgcmVtYXAgYXV0b21hdGljYWx5LAogCSAgIGluIDY0NDYwIGl0IGRvZXNuJ3QgKi8KLQlHVF9SRUdfV1JJVEUgKFBDSV8wX0lPX0JBU0VfQUREUiwgQ0ZHX1BDSTBfSU9fU1BBQ0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzBJX09fQUREUkVTU19SRU1BUCwgQ0ZHX1BDSTBfSU9fU1BBQ0VfUENJID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8wX0lPX1NJWkUsIChDRkdfUENJMF9JT19TSVpFIC0gMSkgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBfSU9fQkFTRV9BRERSLCBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBJX09fQUREUkVTU19SRU1BUCwgQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFX1BDSSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMF9JT19TSVpFLCAoQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUgLSAxKSA+PiAxNik7CiAKLQlHVF9SRUdfV1JJVEUgKFBDSV8wX01FTU9SWTBfQkFTRV9BRERSLCBDRkdfUENJMF9NRU1fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfME1FTU9SWTBfQUREUkVTU19SRU1BUCwgQ0ZHX1BDSTBfTUVNX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzBfTUVNT1JZMF9TSVpFLCAoQ0ZHX1BDSTBfTUVNX1NJWkUgLSAxKSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMF9NRU1PUlkwX0JBU0VfQUREUiwgQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8wTUVNT1JZMF9BRERSRVNTX1JFTUFQLCBDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBfTUVNT1JZMF9TSVpFLCAoQ09ORklHX1NZU19QQ0kwX01FTV9TSVpFIC0gMSkgPj4gMTYpOwogCi0JR1RfUkVHX1dSSVRFIChQQ0lfMV9JT19CQVNFX0FERFIsIENGR19QQ0kxX0lPX1NQQUNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8xSV9PX0FERFJFU1NfUkVNQVAsIENGR19QQ0kxX0lPX1NQQUNFX1BDSSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMV9JT19TSVpFLCAoQ0ZHX1BDSTFfSU9fU0laRSAtIDEpID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xX0lPX0JBU0VfQUREUiwgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xSV9PX0FERFJFU1NfUkVNQVAsIENPTkZJR19TWVNfUENJMV9JT19TUEFDRV9QQ0kgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFfSU9fU0laRSwgKENPTkZJR19TWVNfUENJMV9JT19TSVpFIC0gMSkgPj4gMTYpOwogCi0JR1RfUkVHX1dSSVRFIChQQ0lfMV9NRU1PUlkwX0JBU0VfQUREUiwgQ0ZHX1BDSTFfTUVNX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzFNRU1PUlkwX0FERFJFU1NfUkVNQVAsIENGR19QQ0kxX01FTV9CQVNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8xX01FTU9SWTBfU0laRSwgKENGR19QQ0kxX01FTV9TSVpFIC0gMSkgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFfTUVNT1JZMF9CQVNFX0FERFIsIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMU1FTU9SWTBfQUREUkVTU19SRU1BUCwgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xX01FTU9SWTBfU0laRSwgKENPTkZJR19TWVNfUENJMV9NRU1fU0laRSAtIDEpID4+IDE2KTsKIAogCS8qIFBDSSBpbnRlcmZhY2Ugc2V0dGluZ3MgKi8KIAkvKiBUaW1lb3V0IHNldCB0byByZXRyeSBmb3JldmVyICovCkBAIC0yNTQsNyArMjU0LDcgQEAKIAlmb3IgKHN0YXQgPSAwOyBzdGF0IDw9IFBDSV9IT1NUMTsgc3RhdCsrKQogCQlwY2lXcml0ZUNvbmZpZ1JlZyAoc3RhdCwKIAkJCQkgICBQQ0lfSU5URVJOQUxfUkVHSVNURVJTX01FTU9SWV9NQVBQRURfQkFTRV9BRERSRVNTLAotCQkJCSAgIFNFTEYsIENGR19HVF9SRUdTKTsKKwkJCQkgICBTRUxGLCBDT05GSUdfU1lTX0dUX1JFR1MpOwogI2VuZGlmCiAKIH0KQEAgLTI3MCw3ICsyNzAsNyBAQAogCXRtcCA9IEdUUkVHUkVBRCAoQ1BVX0NPTkZJR1VSQVRJT04pOwogCiAJLyogc2V0IHRoZSBTSU5HTEVfQ1BVIGJpdCAgc2VlIE1WNjQzNjAgUC4zOTkgKi8KLSNpZm5kZWYgQ0ZHX0dUX0RVQUxfQ1BVCQkvKiBTSU5HTEVfQ1BVIHNlZW1zIHRvIGNhdXNlIEpUQUcgcHJvYmxlbXMgKi8KKyNpZm5kZWYgQ09ORklHX1NZU19HVF9EVUFMX0NQVQkJLyogU0lOR0xFX0NQVSBzZWVtcyB0byBjYXVzZSBKVEFHIHByb2JsZW1zICovCiAJdG1wIHw9IENQVV9DT05GX1NJTkdMRV9DUFU7CiAjZW5kaWYKIApAQCAtMzIwLDcgKzMyMCw3IEBACiAJICogaXQgbGFzdCB0aW1lLiAoaHViZXIpCiAJICovCiAKLQlteV9yZW1hcF9ndF9yZWdzIChDRkdfREZMX0dUX1JFR1MsIENGR19HVF9SRUdTKTsKKwlteV9yZW1hcF9ndF9yZWdzIChDT05GSUdfU1lTX0RGTF9HVF9SRUdTLCBDT05GSUdfU1lTX0dUX1JFR1MpOwogCiAJLyogTm8gUENJIGluIGZpcnN0IHJlbGVhc2Ugb2YgUG9ydCBUb19kbzogZW5hYmxlIGl0LiAqLwogI2lmZGVmIENPTkZJR19QQ0kKQEAgLTM2NCw0NSArMzY0LDQ1IEBACiAJICogcmVnaXN0ZXJzIHRvIGJvb3QgZnJvbSB0aGUgc3JhbS4gKGRldmljZTApCiAJICovCiAKLQltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMCwgQ0ZHX0RFVjBfU1BBQ0UsIENGR19ERVYwX1NJWkUpOwotCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UxLCBDRkdfREVWMV9TUEFDRSwgQ0ZHX0RFVjFfU0laRSk7Ci0JbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTIsIENGR19ERVYyX1NQQUNFLCBDRkdfREVWMl9TSVpFKTsKLQltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMywgQ0ZHX0RFVjNfU1BBQ0UsIENGR19ERVYzX1NJWkUpOworCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UwLCBDT05GSUdfU1lTX0RFVjBfU1BBQ0UsIENPTkZJR19TWVNfREVWMF9TSVpFKTsKKwltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMSwgQ09ORklHX1NZU19ERVYxX1NQQUNFLCBDT05GSUdfU1lTX0RFVjFfU0laRSk7CisJbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTIsIENPTkZJR19TWVNfREVWMl9TUEFDRSwgQ09ORklHX1NZU19ERVYyX1NJWkUpOworCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UzLCBDT05GSUdfU1lTX0RFVjNfU1BBQ0UsIENPTkZJR19TWVNfREVWM19TSVpFKTsKIAogCiAJLyogY29uZmlndXJlIGRldmljZSB0aW1pbmcgKi8KLQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LMFBBUkFNRVRFUlMsIENGR19ERVYwX1BBUik7Ci0JR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzFQQVJBTUVURVJTLCBDRkdfREVWMV9QQVIpOwotCUdUX1JFR19XUklURSAoREVWSUNFX0JBTksyUEFSQU1FVEVSUywgQ0ZHX0RFVjJfUEFSKTsKLQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LM1BBUkFNRVRFUlMsIENGR19ERVYzX1BBUik7CisJR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzBQQVJBTUVURVJTLCBDT05GSUdfU1lTX0RFVjBfUEFSKTsKKwlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LMVBBUkFNRVRFUlMsIENPTkZJR19TWVNfREVWMV9QQVIpOworCUdUX1JFR19XUklURSAoREVWSUNFX0JBTksyUEFSQU1FVEVSUywgQ09ORklHX1NZU19ERVYyX1BBUik7CisJR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzNQQVJBTUVURVJTLCBDT05GSUdfU1lTX0RFVjNfUEFSKTsKIAotI2lmZGVmIENGR18zMkJJVF9CT09UX1BBUgkvKiBzZXQgcG9ydCBwYXJhbWV0ZXJzIGZvciBGbGFzaCBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLworI2lmZGVmIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIJLyogc2V0IHBvcnQgcGFyYW1ldGVycyBmb3IgRmxhc2ggZGV2aWNlIG1vZHVsZSBhY2Nlc3MgKi8KIAkvKiBkZXRlY3QgaWYgd2UgYXJlIGJvb3RpbmcgZnJvbSB0aGUgMzIgYml0IGZsYXNoICovCiAJaWYgKEdUUkVHUkVBRCAoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTKSAmICgweDMgPDwgMjApKSB7CiAJCS8qIDMyIGJpdCBib290IGZsYXNoICovCi0JCUdUX1JFR19XUklURSAoREVWSUNFX0JBTkszUEFSQU1FVEVSUywgQ0ZHXzhCSVRfQk9PVF9QQVIpOworCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LM1BBUkFNRVRFUlMsIENPTkZJR19TWVNfOEJJVF9CT09UX1BBUik7CiAJCUdUX1JFR19XUklURSAoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLAotCQkJICAgICAgQ0ZHXzMyQklUX0JPT1RfUEFSKTsKKwkJCSAgICAgIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIpOwogCX0gZWxzZSB7CiAJCS8qIDggYml0IGJvb3QgZmxhc2ggKi8KLQkJR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzNQQVJBTUVURVJTLCBDRkdfMzJCSVRfQk9PVF9QQVIpOwotCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ0ZHXzhCSVRfQk9PVF9QQVIpOworCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LM1BBUkFNRVRFUlMsIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIpOworCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ09ORklHX1NZU184QklUX0JPT1RfUEFSKTsKIAl9CiAjZWxzZQogCS8qIDggYml0IGJvb3QgZmxhc2ggb25seSAqLwotLyoJR1RfUkVHX1dSSVRFKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ0ZHXzhCSVRfQk9PVF9QQVIpOyovCisvKglHVF9SRUdfV1JJVEUoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDT05GSUdfU1lTXzhCSVRfQk9PVF9QQVIpOyovCiAjZW5kaWYKIAogCiAJZ3RfY3B1X2NvbmZpZyAoKTsKIAogCS8qIE1QUCBzZXR1cCAqLwotCUdUX1JFR19XUklURSAoTVBQX0NPTlRST0wwLCBDRkdfTVBQX0NPTlRST0xfMCk7Ci0JR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDEsIENGR19NUFBfQ09OVFJPTF8xKTsKLQlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMiwgQ0ZHX01QUF9DT05UUk9MXzIpOwotCUdUX1JFR19XUklURSAoTVBQX0NPTlRST0wzLCBDRkdfTVBQX0NPTlRST0xfMyk7CisJR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDAsIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMCk7CisJR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDEsIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMSk7CisJR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDIsIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMik7CisJR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDMsIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMyk7CiAKLQlHVF9SRUdfV1JJVEUgKEdQUF9MRVZFTF9DT05UUk9MLCBDRkdfR1BQX0xFVkVMX0NPTlRST0wpOworCUdUX1JFR19XUklURSAoR1BQX0xFVkVMX0NPTlRST0wsIENPTkZJR19TWVNfR1BQX0xFVkVMX0NPTlRST0wpOwogCURFQlVHX0xFRDBfT04gKCk7CiAJREVCVUdfTEVEMV9PTiAoKTsKIAlERUJVR19MRUQyX09OICgpOwpAQCAtNDE1LDcgKzQxNSw3IEBACiBpbnQgbWlzY19pbml0X3IgKCkKIHsKIAlpY2FjaGVfZW5hYmxlICgpOwotI2lmZGVmIENGR19MMgorI2lmZGVmIENPTkZJR19TWVNfTDIKIAlsMmNhY2hlX2VuYWJsZSAoKTsKICNlbmRpZgogI2lmZGVmIENPTkZJR19NUFNDCkBAIC00MjgsMTkgKzQyOCwxOSBAQAogCS8qIGRpc2FibGUgdGhlIGRjYWNoZSBhbmQgTU1VICovCiAJZGNhY2hlX2xvY2sgKCk7CiAjZW5kaWYKLQlpZiAoZmxhc2hfaW5mb1szXS5zaXplIDwgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVCkgeworCWlmIChmbGFzaF9pbmZvWzNdLnNpemUgPCBDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVCkgewogCQl1bnNpZ25lZCBpbnQgZmxhc2hfb2Zmc2V0OwogCQl1bnNpZ25lZCBpbnQgbDsKIAotCQlmbGFzaF9vZmZzZXQgPSAgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVCAtIGZsYXNoX2luZm9bM10uc2l6ZTsKLQkJZm9yIChsID0gMDsgbCA8IENGR19NQVhfRkxBU0hfU0VDVDsgbCsrKSB7CisJCWZsYXNoX29mZnNldCA9ICBDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVCAtIGZsYXNoX2luZm9bM10uc2l6ZTsKKwkJZm9yIChsID0gMDsgbCA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7IGwrKykgewogCQkJaWYgKGZsYXNoX2luZm9bM10uc3RhcnRbbF0gIT0gMCkgewogCQkJICAgICAgZmxhc2hfaW5mb1szXS5zdGFydFtsXSArPSBmbGFzaF9vZmZzZXQ7CiAJCQl9CiAJCX0KIAkJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAgLSAxLAorCQkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gIC0gMSwKIAkJCSAgICAgICAmZmxhc2hfaW5mb1szXSk7CiAJfQogCXJldHVybiAwOwpAQCAtNDQ5LDcgKzQ0OSw3IEBACiB2b2lkIGFmdGVyX3JlbG9jICh1bG9uZyBkZXN0X2FkZHIsIGdkX3QgKiBnZCkKIHsKIAotICBtZW1vcnlNYXBEZXZpY2VTcGFjZSAoQk9PVF9ERVZJQ0UsIENGR19CT09UX1NQQUNFLCBDRkdfQk9PVF9TSVpFKTsKKyAgbWVtb3J5TWFwRGV2aWNlU3BhY2UgKEJPT1RfREVWSUNFLCBDT05GSUdfU1lTX0JPT1RfU1BBQ0UsIENPTkZJR19TWVNfQk9PVF9TSVpFKTsKIAogICBkaXNwbGF5X21lbV9tYXAgKCk7CiAgIC8qIG5vdywganVtcCB0byB0aGUgbWFpbiBwcGNib290IGJvYXJkIGluaXQgY29kZSAqLwpAQCAtNDY5LDcgKzQ2OSw3IEBACiB7CiAJaW50IGxfdHlwZSA9IDA7CiAKLQlwcmludGYgKCJCT0FSRDogJXNcbiIsIENGR19CT0FSRF9OQU1FKTsKKwlwcmludGYgKCJCT0FSRDogJXNcbiIsIENPTkZJR19TWVNfQk9BUkRfTkFNRSk7CiAJcmV0dXJuIChsX3R5cGUpOwogfQogCkBAIC01NDAsNyArNTQwLDcgQEAKIAogLyogRFJBTSBjaGVjayByb3V0aW5lcyBjb3BpZWQgZnJvbSBndzgyNjAgKi8KIAotI2lmIGRlZmluZWQgKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19EUkFNX1RFU1QpCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBOQU1FOiAgbW92ZTY0KCkgLSAgbW92ZXMgYSBkb3VibGUgd29yZCAoNjQtYml0KQkJICAgICAqLwpAQCAtNTcxLDcgKzU3MSw3IEBACiB9CiAKIAotI2lmIGRlZmluZWQgKENGR19EUkFNX1RFU1RfREFUQSkKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBKQogCiB1bnNpZ25lZCBsb25nIGxvbmcgcGF0dGVybltdID0gewogCTB4YWFhYWFhYWFhYWFhYWFhYUxMLApAQCAtNjM0LDcgKzYzNCw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IG1lbV90ZXN0X2RhdGEgKHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBsb25nICpwbWVtID0gKHVuc2lnbmVkIGxvbmcgbG9uZyAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKKwl1bnNpZ25lZCBsb25nIGxvbmcgKnBtZW0gPSAodW5zaWduZWQgbG9uZyBsb25nICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKIAl1bnNpZ25lZCBsb25nIGxvbmcgdGVtcDY0ID0gMDsKIAlpbnQgbnVtX3BhdHRlcm5zID0gc2l6ZW9mIChwYXR0ZXJuKSAvIHNpemVvZiAocGF0dGVyblswXSk7CiAJaW50IGk7CkBAIC02NjEsOSArNjYxLDkgQEAKIAogCXJldHVybiAwOwogfQotI2VuZGlmIC8qIENGR19EUkFNX1RFU1RfREFUQSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEgKi8KIAotI2lmIGRlZmluZWQgKENGR19EUkFNX1RFU1RfQUREUkVTUykKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTKQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE5BTUU6ICBtZW1fdGVzdF9hZGRyZXNzKCkgLQl0ZXN0IGFkZHJlc3MgbGluZXMJCSAgICAgKi8KIC8qCQkJCQkJCQkgICAgICovCkBAIC02ODgsOCArNjg4LDggQEAKIGludCBtZW1fdGVzdF9hZGRyZXNzICh2b2lkKQogewogCXZvbGF0aWxlIHVuc2lnbmVkIGludCAqcG1lbSA9Ci0JCSh2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7Ci0JY29uc3QgdW5zaWduZWQgaW50IHNpemUgPSAoQ0ZHX01FTVRFU1RfRU5EIC0gQ0ZHX01FTVRFU1RfU1RBUlQpIC8gNDsKKwkJKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CisJY29uc3QgdW5zaWduZWQgaW50IHNpemUgPSAoQ09ORklHX1NZU19NRU1URVNUX0VORCAtIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCkgLyA0OwogCXVuc2lnbmVkIGludCBpOwogCiAJLyogd3JpdGUgYWRkcmVzcyB0byBlYWNoIGxvY2F0aW9uICovCkBAIC03MDYsOSArNzA2LDkgQEAKIAl9CiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVF9BRERSRVNTICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1RfQUREUkVTUyAqLwogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVF9XQUxLKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEspCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogTkFNRTogICBtZW1fbWFyY2goKSAtICBtZW1vcnkgbWFyY2gJCQkJICAgICAqLwogLyoJCQkJCQkJCSAgICAgKi8KQEAgLTc2Niw3ICs3NjYsNyBAQAogCX0KIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUX1dBTEsgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVF9XQUxLICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBOQU1FOiAgIG1lbV90ZXN0X3dhbGsoKSAtICBhIHNpbXBsZSB3YWxraW5nIG9uZXMgdGVzdAkgICAgICovCkBAIC03OTgsOCArNzk4LDggQEAKIHsKIAl1bnNpZ25lZCBsb25nIGxvbmcgbWFzazsKIAl2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGxvbmcgKnBtZW0gPQotCQkodm9sYXRpbGUgdW5zaWduZWQgbG9uZyBsb25nICopIENGR19NRU1URVNUX1NUQVJUOwotCWNvbnN0IHVuc2lnbmVkIGxvbmcgc2l6ZSA9IChDRkdfTUVNVEVTVF9FTkQgLSBDRkdfTUVNVEVTVF9TVEFSVCkgLyA4OworCQkodm9sYXRpbGUgdW5zaWduZWQgbG9uZyBsb25nICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwljb25zdCB1bnNpZ25lZCBsb25nIHNpemUgPSAoQ09ORklHX1NZU19NRU1URVNUX0VORCAtIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCkgLyA4OwogCiAJdW5zaWduZWQgaW50IGk7CiAKQEAgLTg2NSwyMyArODY1LDIzIEBACiAJaW50IHJ1bmFkZHJlc3MgPSAwOwogCWludCBydW53YWxrICAgID0gMDsKIAotI2lmZGVmIENGR19EUkFNX1RFU1RfREFUQQorI2lmZGVmIENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEKIAlzID0gZ2V0ZW52ICgidGVzdGRyYW1kYXRhIik7CiAJcnVuZGF0YSA9IChzICYmICgqcyA9PSAneScpKSA/IDEgOiAwOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RSQU1fVEVTVF9BRERSRVNTCisjaWZkZWYgQ09ORklHX1NZU19EUkFNX1RFU1RfQUREUkVTUwogCXMgPSBnZXRlbnYgKCJ0ZXN0ZHJhbWFkZHJlc3MiKTsKIAlydW5hZGRyZXNzID0gKHMgJiYgKCpzID09ICd5JykpID8gMSA6IDA7CiAjZW5kaWYKLSNpZmRlZiBDRkdfRFJBTV9URVNUX1dBTEsKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVF9XQUxLCiAJcyA9IGdldGVudiAoInRlc3RkcmFtd2FsayIpOwogCXJ1bndhbGsgPSAocyAmJiAoKnMgPT0gJ3knKSkgPyAxIDogMDsKICNlbmRpZgogCiAJaWYgKChydW5kYXRhID09IDEpIHx8IChydW5hZGRyZXNzID09IDEpIHx8IChydW53YWxrID09IDEpKSB7Ci0JCXByaW50ZiAoIlRlc3RpbmcgUkFNIGZyb20gMHglMDh4IHRvIDB4JTA4eCAuLi4gIChkb24ndCBwYW5pYy4uLiB0aGF0IHdpbGwgdGFrZSBhIG1vbWVudCAhISEhKVxuIiwgQ0ZHX01FTVRFU1RfU1RBUlQsIENGR19NRU1URVNUX0VORCk7CisJCXByaW50ZiAoIlRlc3RpbmcgUkFNIGZyb20gMHglMDh4IHRvIDB4JTA4eCAuLi4gIChkb24ndCBwYW5pYy4uLiB0aGF0IHdpbGwgdGFrZSBhIG1vbWVudCAhISEhKVxuIiwgQ09ORklHX1NZU19NRU1URVNUX1NUQVJULCBDT05GSUdfU1lTX01FTVRFU1RfRU5EKTsKIAl9Ci0jaWZkZWYgQ0ZHX0RSQU1fVEVTVF9EQVRBCisjaWZkZWYgQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQQogCWlmIChydW5kYXRhID09IDEpIHsKIAkJcHJpbnRmICgiVGVzdCBEQVRBIC4uLiAgIik7CiAJCWlmIChtZW1fdGVzdF9kYXRhICgpID09IDEpIHsKQEAgLTg5MSw3ICs4OTEsNyBAQAogCQkJcHJpbnRmICgib2sgXG4iKTsKIAl9CiAjZW5kaWYKLSNpZmRlZiBDRkdfRFJBTV9URVNUX0FERFJFU1MKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTCiAJaWYgKHJ1bmFkZHJlc3MgPT0gMSkgewogCQlwcmludGYgKCJUZXN0IEFERFJFU1MgLi4uICAiKTsKIAkJaWYgKG1lbV90ZXN0X2FkZHJlc3MgKCkgPT0gMSkgewpAQCAtOTAxLDcgKzkwMSw3IEBACiAJCQlwcmludGYgKCJvayBcbiIpOwogCX0KICNlbmRpZgotI2lmZGVmIENGR19EUkFNX1RFU1RfV0FMSworI2lmZGVmIENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEsKIAlpZiAocnVud2FsayA9PSAxKSB7CiAJCXByaW50ZiAoIlRlc3QgV0FMS0lORyBPTkVzIC4uLiAgIik7CiAJCWlmIChtZW1fdGVzdF93YWxrICgpID09IDEpIHsKQEAgLTkxNyw3ICs5MTcsNyBAQAogCXJldHVybiAwOwogCiB9Ci0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUICovCiAKIC8qIHJvbmVuIC0gdGhlIGJlbG93IGZ1bmN0aW9ucyBhcmUgdXNlZCBieSB0aGUgYm9vdG0gZnVuY3Rpb24JCSovCiAvKiAgLSB3ZSBtYXAgdGhlIGJhc2UgcmVnaXN0ZXIgdG8gZmJlMDAwMDAgKHNhbWUgbWFwcGluZyBhcyBpbiB0aGUgTFNQKSAqLwpAQCAtOTU2LDcgKzk1Niw3IEBACiAvKiAgICAgIEdWX1JFR19XUklURSAoTVY2NDM2MF9FVEhfUkVDRUlWRV9RVUVVRV9DT01NQU5EX1JFRyAoMiksIDB4MDAwMGZmMDApOyAqLwogCiAvKiBSZWxvY2F0ZSBNVjY0MzYwIGludGVybmFsIHJlZ3MgKi8KLQlteV9yZW1hcF9ndF9yZWdzX2Jvb3RtIChDRkdfR1RfUkVHUywgQ0ZHX0RGTF9HVF9SRUdTKTsKKwlteV9yZW1hcF9ndF9yZWdzX2Jvb3RtIChDT05GSUdfU1lTX0dUX1JFR1MsIENPTkZJR19TWVNfREZMX0dUX1JFR1MpOwogCiAJaWNhY2hlX2Rpc2FibGUgKCk7CiAJZGNhY2hlX2Rpc2FibGUgKCk7CmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY3BjaTc1MC9pMmMuYyBiL2JvYXJkL2VzZC9jcGNpNzUwL2kyYy5jCmluZGV4IDViMWJjMDEuLmQ5NTU2N2YgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jcGNpNzUwL2kyYy5jCisrKyBiL2JvYXJkL2VzZC9jcGNpNzUwL2kyYy5jCkBAIC00Niw3ICs0Niw3IEBACiAJdW5zaWduZWQgaW50IG4sIG0sIGZyZXEsIG1hcmdpbiwgcG93ZXI7CiAJdW5zaWduZWQgaW50IGFjdHVhbE4gPSAwLCBhY3R1YWxNID0gMDsKIAl1bnNpZ25lZCBpbnQgbWluTWFyZ2luID0gMHhmZmZmZmZmZjsKLQl1bnNpZ25lZCBpbnQgdGNsayA9IENGR19UQ0xLOworCXVuc2lnbmVkIGludCB0Y2xrID0gQ09ORklHX1NZU19UQ0xLOwogCXVuc2lnbmVkIGludCBpMmNGcmVxID0gc3BlZWQ7CS8qIDEwMDAwMCBtYXguIEZhc3QgbW9kZSBub3Qgc3VwcG9ydGVkICovCiAKIAlEUCAocHV0cyAoImkyY19pbml0XG4iKSk7CkBAIC0zODAsNyArMzgwLDcgQEAKIAkgIGludCBsZW4pCiB7CiAJdWNoYXIgc3RhdHVzID0gMDsKLQl1bnNpZ25lZCBpbnQgaTJjRnJlcSA9IENGR19JMkNfU1BFRUQ7CisJdW5zaWduZWQgaW50IGkyY0ZyZXEgPSBDT05GSUdfU1lTX0kyQ19TUEVFRDsKIAogCURQIChwdXRzICgiaTJjX3JlYWRcbiIpKTsKIApAQCAtNDI4LDcgKzQyOCw3IEBACiAJICAgaW50IGxlbikKIHsKIAl1Y2hhciBzdGF0dXMgPSAwOwotCXVuc2lnbmVkIGludCBpMmNGcmVxID0gQ0ZHX0kyQ19TUEVFRDsKKwl1bnNpZ25lZCBpbnQgaTJjRnJlcSA9IENPTkZJR19TWVNfSTJDX1NQRUVEOwogCiAJRFAgKHB1dHMgKCJpMmNfd3JpdGVcbiIpKTsKIApAQCAtNDY0LDcgKzQ2NCw3IEBACiAJdW5zaWduZWQgaW50IGkyY19zdGF0dXM7CiAjZW5kaWYKIAl1Y2hhciBzdGF0dXMgPSAwOwotCXVuc2lnbmVkIGludCBpMmNGcmVxID0gQ0ZHX0kyQ19TUEVFRDsKKwl1bnNpZ25lZCBpbnQgaTJjRnJlcSA9IENPTkZJR19TWVNfSTJDX1NQRUVEOwogCiAJRFAgKHB1dHMgKCJpMmNfcHJvYmVcbiIpKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NwY2k3NTAvaWRlLmMgYi9ib2FyZC9lc2QvY3BjaTc1MC9pZGUuYwppbmRleCAwYWRhZmUyLi45YmRjNTIzIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY3BjaTc1MC9pZGUuYworKysgYi9ib2FyZC9lc2QvY3BjaTc1MC9pZGUuYwpAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPGlkZS5oPgogI2luY2x1ZGUgPHBjaS5oPgogCi1leHRlcm4gdWxvbmcgaWRlX2J1c19vZmZzZXRbQ0ZHX0lERV9NQVhCVVNdOworZXh0ZXJuIHVsb25nIGlkZV9idXNfb2Zmc2V0W0NPTkZJR19TWVNfSURFX01BWEJVU107CiAKIGludCBpZGVfcHJlaW5pdCAodm9pZCkKIHsKQEAgLTM5LDcgKzM5LDcgQEAKIAlpbnQgbDsKIAogCXN0YXR1cyA9IDE7Ci0JZm9yIChsID0gMDsgbCA8IENGR19JREVfTUFYQlVTOyBsKyspIHsKKwlmb3IgKGwgPSAwOyBsIDwgQ09ORklHX1NZU19JREVfTUFYQlVTOyBsKyspIHsKIAkJaWRlX2J1c19vZmZzZXRbbF0gPSAtQVRBX1NUQVRVUzsKIAl9CiAJZGV2YnVzZm4gPSBwY2lfZmluZF9kZXZpY2UgKDB4MTEwMywgMHgwMDA0LCAwKTsKQEAgLTUxLDExICs1MSwxMSBAQAogCQlwY2lfcmVhZF9jb25maWdfZHdvcmQgKGRldmJ1c2ZuLCBQQ0lfQkFTRV9BRERSRVNTXzAsCiAJCQkJICAgICAgICh1MzIgKikgJiBpZGVfYnVzX29mZnNldFswXSk7CiAJCWlkZV9idXNfb2Zmc2V0WzBdICY9IDB4ZmZmZmZmZmU7Ci0JCWlkZV9idXNfb2Zmc2V0WzBdICs9IENGR19QQ0kwX0lPX1NQQUNFOworCQlpZGVfYnVzX29mZnNldFswXSArPSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0U7CiAJCXBjaV9yZWFkX2NvbmZpZ19kd29yZCAoZGV2YnVzZm4sIFBDSV9CQVNFX0FERFJFU1NfMiwKIAkJCQkgICAgICAgKHUzMiAqKSAmIGlkZV9idXNfb2Zmc2V0WzFdKTsKIAkJaWRlX2J1c19vZmZzZXRbMV0gJj0gMHhmZmZmZmZmZTsKLQkJaWRlX2J1c19vZmZzZXRbMV0gKz0gQ0ZHX1BDSTBfSU9fU1BBQ0U7CisJCWlkZV9idXNfb2Zmc2V0WzFdICs9IENPTkZJR19TWVNfUENJMF9JT19TUEFDRTsKIAl9CiAJcmV0dXJuIChzdGF0dXMpOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NwY2k3NTAvbG9jYWwuaCBiL2JvYXJkL2VzZC9jcGNpNzUwL2xvY2FsLmgKaW5kZXggYmNhMGUxZi4uZGUzNzU4YSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NwY2k3NTAvbG9jYWwuaAorKysgYi9ib2FyZC9lc2QvY3BjaTc1MC9sb2NhbC5oCkBAIC00OCw3ICs0OCw3IEBACiAvKiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORCAqLwogLyogI2RlZmluZSBDT05GSUdfUkFNQk9PVENPTU1BTkQgKi8KIC8qICNkZWZpbmUgQ09ORklHX05GU0JPT1RDT01NQU5EICovCi0vKiAjZGVmaW5lIENGR19BVVRPTE9BRCAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX0FVVE9MT0FEICovCiAvKiAjZGVmaW5lIENPTkZJR19QUkVCT09UICovCiAKIC8qIFRoZXNlIGRvbid0ICovCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY3BjaTc1MC9taXNjLlMgYi9ib2FyZC9lc2QvY3BjaTc1MC9taXNjLlMKaW5kZXggMTYwYjFkMy4uMjMzZmQ4MyAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NwY2k3NTAvbWlzYy5TCisrKyBiL2JvYXJkL2VzZC9jcGNpNzUwL21pc2MuUwpAQCAtMTYsNyArMTYsNyBAQAogYm9hcmRfcmVsb2NhdGVfcm9tOgogCW1mbHIJcjcKIAkvKiB1cGRhdGUgdGhlIGxvY2F0aW9uIG9mIHRoZSBHVCByZWdpc3RlcnMgKi8KLQlsaXMJcjExLCBDRkdfR1RfUkVHU0BoCisJbGlzCXIxMSwgQ09ORklHX1NZU19HVF9SRUdTQGgKIAkvKiBpZiB3ZSdyZSB1c2luZyBFQ0MsIHdlIG11c3QgdXNlIHRoZSBETUEgZW5naW5lIHRvIGNvcHkgb3Vyc2VsdmVzICovCiAJYmwJc3RhcnRfaWRtYV90cmFuc2Zlcl8wCiAJYmwJd2FpdF9mb3JfaWRtYV8wCkBAIC0yOSwxMiArMjksMTIgQEAKIGJvYXJkX2luaXRfZWNjOgogCW1mbHIJcjcKIAkvKiBOT1RFOiByMTAgc3RpbGwgY29udGFpbnMgdGhlIGxvY2F0aW9uIHdlJ3ZlIGJlZW4gcmVsb2NhdGVkIHRvCi0JICogd2hpY2ggaGFwcGVucyB0byBiZSBUT1BfT0ZfUkFNIC0gQ0ZHX01PTklUT1JfTEVOICovCisJICogd2hpY2ggaGFwcGVucyB0byBiZSBUT1BfT0ZfUkFNIC0gQ09ORklHX1NZU19NT05JVE9SX0xFTiAqLwogCiAJLyogbm93IHRoYXQgd2UncmUgcnVubmluZyBmcm9tIHJhbSwgaW5pdCB0aGUgcmVzdCBvZiBtYWluIG1lbW9yeQogCSAqIGZvciBFQ0MgdXNlICovCi0JbGlzCXI4LCBDRkdfTU9OSVRPUl9MRU5AaAotCW9yaQlyOCwgcjgsIENGR19NT05JVE9SX0xFTkBsCisJbGlzCXI4LCBDT05GSUdfU1lTX01PTklUT1JfTEVOQGgKKwlvcmkJcjgsIHI4LCBDT05GSUdfU1lTX01PTklUT1JfTEVOQGwKIAogCWRpdncJcjMsIHIxMCwgcjgKIApAQCAtMTIwLDE1ICsxMjAsMTUgQEAKIAlibHIKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0JPQVJEX0FTTV9JTklUCisjaWZkZWYgQ09ORklHX1NZU19CT0FSRF9BU01fSU5JVAogCS8qIE5PVEU6IHRyYXNoZXMgcjMtcjcgKi8KIAkuZ2xvYmwgYm9hcmRfYXNtX2luaXQKIGJvYXJkX2FzbV9pbml0OgogCS8qIGp1c3QgbW92ZSB0aGUgR1QgcmVnaXN0ZXJzIHRvIHdoZXJlIHRoZXkgYmVsb25nICovCi0JbGlzCXIzLCBDRkdfREZMX0dUX1JFR1NAaAotCW9yaQlyMywgcjMsIENGR19ERkxfR1RfUkVHU0BsCi0JbGlzCXI0LCBDRkdfR1RfUkVHU0BoCi0Jb3JpCXI0LCByNCwgQ0ZHX0dUX1JFR1NAbAorCWxpcwlyMywgQ09ORklHX1NZU19ERkxfR1RfUkVHU0BoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19ERkxfR1RfUkVHU0BsCisJbGlzCXI0LCBDT05GSUdfU1lTX0dUX1JFR1NAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfR1RfUkVHU0BsCiAJbGkJcjUsIElOVEVSTkFMX1NQQUNFX0RFQ09ERQogCiAJLyogdGVzdCB0byBzZWUgaWYgd2UndmUgYWxyZWFkeSBtb3ZlZCAqLwpAQCAtMTUzLDExICsxNTMsMTEgQEAKIAljbXAJY3IwLCByNywgcjYKIAlibmUJMWIKIAotCWxpcwlyMywgQ0ZHX0lOVF9TUkFNX0JBU0VAaAotCW9yaQlyMywgcjMsIENGR19JTlRfU1JBTV9CQVNFQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfSU5UX1NSQU1fQkFTRUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19JTlRfU1JBTV9CQVNFQGwKIAlybHdpbm0gIHIzLCByMywgMTYsIDE2LCAzMQotCWxpcwlyNCwgQ0ZHX0dUX1JFR1NAaAotCW9yaQlyNCwgcjQsIENGR19HVF9SRUdTQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfR1RfUkVHU0BoCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19HVF9SRUdTQGwKIAlsaQlyNSwgSU5URUdSQVRFRF9TUkFNX0JBU0VfQUREUgogCXN0d2JyeCAgcjMsIHI1LCByNAogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY3BjaTc1MC9tcHNjLmMgYi9ib2FyZC9lc2QvY3BjaTc1MC9tcHNjLmMKaW5kZXggZmE4ZDNiZC4uYzg5NDI2ZCAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NwY2k3NTAvbXBzYy5jCisrKyBiL2JvYXJkL2VzZC9jcGNpNzUwL21wc2MuYwpAQCAtNDI3LDcgKzQyNyw3IEBACiAJCQkgIChNVjY0MzYwX0NVTklUX0JBU0VfQUREUl9XSU5fMF9CSVQgKiAyKSkpOwogCiAvKiBTZXR1cCBNUFNDIGludGVybmFsIGFkZHJlc3Mgc3BhY2UgYmFzZSBhZGRyZXNzCSovCi0JR1RfUkVHX1dSSVRFIChDVU5JVF9JTlRFUk5BTF9TUEFDRV9CQVNFX0FERFJfUkVHLCBDRkdfR1RfUkVHUyk7CisJR1RfUkVHX1dSSVRFIChDVU5JVF9JTlRFUk5BTF9TUEFDRV9CQVNFX0FERFJfUkVHLCBDT05GSUdfU1lTX0dUX1JFR1MpOwogCiAvKiBubyBoaWdoIGFkZHJlc3MgcmVtYXAqLwogCUdUX1JFR19XUklURSAoQ1VOSVRfSElHSF9BRERSX1JFTUFQX1JFRzAsIDB4MDApOwpAQCAtNTE3LDkgKzUxNyw5IEBACiAKICNpZmRlZiBaVU1BX05UTAogCS8qIGZyb20gdGNsayAqLwotCWNsb2NrID0gKENGR19UQ0xLIC8gKDE2ICogcmF0ZSkpIC0gMTsKKwljbG9jayA9IChDT05GSUdfU1lTX1RDTEsgLyAoMTYgKiByYXRlKSkgLSAxOwogI2Vsc2UKLQljbG9jayA9IChDRkdfVENMSyAvICgxNiAqIHJhdGUpKSAtIDE7CisJY2xvY2sgPSAoQ09ORklHX1NZU19UQ0xLIC8gKDE2ICogcmF0ZSkpIC0gMTsKICNlbmRpZgogCiAJZ2FsYnJnX3NldF9DRFYgKGNoYW5uZWwsIGNsb2NrKTsJLyogc2V0IHRpbWVyIFJlZy4gZm9yIEJSRyAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NwY2k3NTAvcGNpLmMgYi9ib2FyZC9lc2QvY3BjaTc1MC9wY2kuYwppbmRleCBjMzM1ZWJmLi5jYmU3NjZmIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY3BjaTc1MC9wY2kuYworKysgYi9ib2FyZC9lc2QvY3BjaTc1MC9wY2kuYwpAQCAtOTMyLDE0ICs5MzIsMTQgQEAKIAogCS8qIFBDSSBtZW1vcnkgc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbiAocGNpMF9ob3NlLnJlZ2lvbnMgKyAwLAotCQkJQ0ZHX1BDSTBfMF9NRU1fU1BBQ0UsCi0JCQlDRkdfUENJMF8wX01FTV9TUEFDRSwKLQkJCUNGR19QQ0kwX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CisJCQlDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UsCisJCQlDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UsCisJCQlDT05GSUdfU1lTX1BDSTBfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKIAogCS8qIFBDSSBJL08gc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbiAocGNpMF9ob3NlLnJlZ2lvbnMgKyAxLAotCQkJQ0ZHX1BDSTBfSU9fU1BBQ0VfUENJLAotCQkJQ0ZHX1BDSTBfSU9fU1BBQ0UsIENGR19QQ0kwX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOworCQkJQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFX1BDSSwKKwkJCUNPTkZJR19TWVNfUENJMF9JT19TUEFDRSwgQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOwogCiAJcGNpX3NldF9vcHMgKCZwY2kwX2hvc2UsCiAJCSAgICAgcGNpX2hvc2VfcmVhZF9jb25maWdfYnl0ZV92aWFfZHdvcmQsCkBAIC05ODEsMTQgKzk4MSwxNCBAQAogCiAJLyogUENJIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uIChwY2kxX2hvc2UucmVnaW9ucyArIDAsCi0JCQlDRkdfUENJMV8wX01FTV9TUEFDRSwKLQkJCUNGR19QQ0kxXzBfTUVNX1NQQUNFLAotCQkJQ0ZHX1BDSTFfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKKwkJCUNPTkZJR19TWVNfUENJMV8wX01FTV9TUEFDRSwKKwkJCUNPTkZJR19TWVNfUENJMV8wX01FTV9TUEFDRSwKKwkJCUNPTkZJR19TWVNfUENJMV9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOwogCiAJLyogUENJIEkvTyBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uIChwY2kxX2hvc2UucmVnaW9ucyArIDEsCi0JCQlDRkdfUENJMV9JT19TUEFDRV9QQ0ksCi0JCQlDRkdfUENJMV9JT19TUEFDRSwgQ0ZHX1BDSTFfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CisJCQlDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0VfUENJLAorCQkJQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFLCBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CiAKIAlwY2lfc2V0X29wcyAoJnBjaTFfaG9zZSwKIAkJICAgICBwY2lfaG9zZV9yZWFkX2NvbmZpZ19ieXRlX3ZpYV9kd29yZCwKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9jcGNpNzUwL3NkcmFtX2luaXQuYyBiL2JvYXJkL2VzZC9jcGNpNzUwL3NkcmFtX2luaXQuYwppbmRleCAwMjkxOTM3Li40YzAzNjMwIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY3BjaTc1MC9zZHJhbV9pbml0LmMKKysrIGIvYm9hcmQvZXNkL2NwY2k3NTAvc2RyYW1faW5pdC5jCkBAIC0zNTAsNyArMzUwLDcgQEAKIAl9IGVsc2UKIAkJZGltbUluZm8tPnNsb3QgPSBzbG90OwkvKiBzdGFydCB0byBmaWxsIHVwIGRpbW1pbmZvIGZvciB0aGlzICJzbG90IiAqLwogCi0jaWZkZWYgQ0ZHX0RJU1BMQVlfRElNTV9TUERfQ09OVEVOVAorI2lmZGVmIENPTkZJR19TWVNfRElTUExBWV9ESU1NX1NQRF9DT05URU5UCiAKIAlmb3IgKGkgPSAwOyBpIDw9IDEyNzsgaSsrKSB7CiAJCXByaW50ZiAoIlNQRC1FRVBST00gQnl0ZSAlM2QgPSAlM3ggKCUzZClcbiIsIGksIGRhdGFbaV0sCkBAIC0xNjU2LDEzICsxNjU2LDEzIEBACiAJaWYgKGRpbW1JbmZvMi5udW1PZk1vZHVsZUJhbmtzID4gMikKIAkJcHJpbnRmKCJFcnJvciwgU1BEIGNsYWltcyBESU1NMiBoYXMgPjIgYmFua3NcbiIpOwogCi0JZm9yIChiYW5rX25vID0gMDsgYmFua19ubyA8IENGR19EUkFNX0JBTktTOyBiYW5rX25vKyspIHsKKwlmb3IgKGJhbmtfbm8gPSAwOyBiYW5rX25vIDwgQ09ORklHX1NZU19EUkFNX0JBTktTOyBiYW5rX25vKyspIHsKIAkJLyogc2tpcCBvdmVyIGJhbmtzIHRoYXQgYXJlIG5vdCBwb3B1bGF0ZWQgKi8KIAkJaWYgKCEgY2hlY2tiYW5rW2Jhbmtfbm9dKQogCQkJY29udGludWU7CiAKLQkJaWYgKCh0b3RhbCArIGNoZWNrKSA+IENGR19HVF9SRUdTKQotCQkJY2hlY2sgPSBDRkdfR1RfUkVHUyAtIHRvdGFsOworCQlpZiAoKHRvdGFsICsgY2hlY2spID4gQ09ORklHX1NZU19HVF9SRUdTKQorCQkJY2hlY2sgPSBDT05GSUdfU1lTX0dUX1JFR1MgLSB0b3RhbDsKIAogCQltZW1vcnlfbWFwX2JhbmsoYmFua19ubywgdG90YWwsIGNoZWNrKTsKIAkJcmVhbHNpemUgPSBkcmFtX3NpemUoKGxvbmcgaW50ICopdG90YWwsIGNoZWNrKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9jcGNpaXNlcjQvZmxhc2guYyBiL2JvYXJkL2VzZC9jcGNpaXNlcjQvZmxhc2guYwppbmRleCBkZTg0N2Y5Li41NmM4MjJlIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY3BjaWlzZXI0L2ZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL2NwY2lpc2VyNC9mbGFzaC5jCkBAIC00Nyw3ICs0Nyw3IEBACiAJdW5zaWduZWQgbG9uZyBiYXNlX2IwOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvZGFzYV9zaW0vY21kX2Rhc2Ffc2ltLmMgYi9ib2FyZC9lc2QvZGFzYV9zaW0vY21kX2Rhc2Ffc2ltLmMKaW5kZXggODlhNGFhZi4uMzZkZDU4YyAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2Rhc2Ffc2ltL2NtZF9kYXNhX3NpbS5jCisrKyBiL2JvYXJkL2VzZC9kYXNhX3NpbS9jbWRfZGFzYV9zaW0uYwpAQCAtNDgsMTMgKzQ4LDEzIEBACiAJdW5zaWduZWQgaW50IHJldDsKIAlpbnQgY291bnQ7CiAKLQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkIChDRkdfUENJOTA1NF9ERVZfRk4sIDB4NGMsCisJcGNpX3dyaXRlX2NvbmZpZ19kd29yZCAoQ09ORklHX1NZU19QQ0k5MDU0X0RFVl9GTiwgMHg0YywKIAkJCQkob2ZmcyA8PCAxNikgfCAweDAwMDMpOwogCWNvdW50ID0gMDsKIAogCWZvciAoOzspIHsKIAkJdWRlbGF5ICgxMCAqIDEwMDApOwotCQlwY2lfcmVhZF9jb25maWdfZHdvcmQgKENGR19QQ0k5MDU0X0RFVl9GTiwgMHg0YywgJnJldCk7CisJCXBjaV9yZWFkX2NvbmZpZ19kd29yZCAoQ09ORklHX1NZU19QQ0k5MDU0X0RFVl9GTiwgMHg0YywgJnJldCk7CiAJCWlmICgocmV0ICYgMHg4MDAwMDAwMCkgIT0gMCkgewogCQkJYnJlYWs7CiAJCX0gZWxzZSB7CkBAIC02Niw3ICs2Niw3IEBACiAJCX0KIAl9CiAKLQlwY2lfcmVhZF9jb25maWdfZHdvcmQgKENGR19QQ0k5MDU0X0RFVl9GTiwgMHg1MCwgJnZhbHVlKTsKKwlwY2lfcmVhZF9jb25maWdfZHdvcmQgKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sIDB4NTAsICZ2YWx1ZSk7CiAKIAlyZXR1cm4gdmFsdWU7CiB9CkBAIC03NywxNCArNzcsMTQgQEAKIAl1bnNpZ25lZCBpbnQgcmV0OwogCWludCBjb3VudDsKIAotCXBjaV93cml0ZV9jb25maWdfZHdvcmQgKENGR19QQ0k5MDU0X0RFVl9GTiwgMHg1MCwgdmFsdWUpOwotCXBjaV93cml0ZV9jb25maWdfZHdvcmQgKENGR19QQ0k5MDU0X0RFVl9GTiwgMHg0YywKKwlwY2lfd3JpdGVfY29uZmlnX2R3b3JkIChDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOLCAweDUwLCB2YWx1ZSk7CisJcGNpX3dyaXRlX2NvbmZpZ19kd29yZCAoQ09ORklHX1NZU19QQ0k5MDU0X0RFVl9GTiwgMHg0YywKIAkJCQkob2ZmcyA8PCAxNikgfCAweDgwMDAwMDAzKTsKIAljb3VudCA9IDA7CiAKIAlmb3IgKDs7KSB7CiAJCXVkZWxheSAoMTAgKiAxMDAwKTsKLQkJcGNpX3JlYWRfY29uZmlnX2R3b3JkIChDRkdfUENJOTA1NF9ERVZfRk4sIDB4NGMsICZyZXQpOworCQlwY2lfcmVhZF9jb25maWdfZHdvcmQgKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sIDB4NGMsICZyZXQpOwogCQlpZiAoKHJldCAmIDB4ODAwMDAwMDApID09IDApIHsKIAkJCWJyZWFrOwogCQl9IGVsc2UgewpAQCAtMTA5LDcgKzEwOSw3IEBACiAJZm9yIChsID0gMDsgbCA8IDY7IGwrKykgewogCQlwcmludGYgKCIlMDJ4OiAiLCBsICogMHgxMCk7CiAJCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKLQkJCXBjaV9yZWFkX2NvbmZpZ19kd29yZCAoQ0ZHX1BDSTkwNTRfREVWX0ZOLAorCQkJcGNpX3JlYWRfY29uZmlnX2R3b3JkIChDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOLAogCQkJCQkJbCAqIDE2ICsgaSAqIDQsCiAJCQkJCQkodW5zaWduZWQgaW50ICopJnZhbCk7CiAJCQlwcmludGYgKCIlMDh4ICIsIHZhbCk7CmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvZGFzYV9zaW0vZmxhc2guYyBiL2JvYXJkL2VzZC9kYXNhX3NpbS9mbGFzaC5jCmluZGV4IGQyYWMxM2YuLjljNzFiMDQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9kYXNhX3NpbS9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9kYXNhX3NpbS9mbGFzaC5jCkBAIC00Nyw3ICs0Nyw3IEBACiAJdW5zaWduZWQgbG9uZyBiYXNlX2IwOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvZHA0MDUvZmxhc2guYyBiL2JvYXJkL2VzZC9kcDQwNS9mbGFzaC5jCmluZGV4IDg5YWYxMTkuLjI3NGFkYTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9kcDQwNS9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9kcDQwNS9mbGFzaC5jCkBAIC00OCw3ICs0OCw3IEBACiAJaW50IHNpemVfdmFsID0gMDsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtOTEsNyArOTEsNyBAQAogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2R1NDA1L2ZsYXNoLmMgYi9ib2FyZC9lc2QvZHU0MDUvZmxhc2guYwppbmRleCAxNDU0OWMwLi4yNDBhYTA5IDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvZHU0MDUvZmxhc2guYworKysgYi9ib2FyZC9lc2QvZHU0MDUvZmxhc2guYwpAQCAtNDcsNyArNDcsNyBAQAogCXVuc2lnbmVkIGxvbmcgYmFzZV9iMCwgYmFzZV9iMTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvZHU0NDAvY29uZmlnLm1rIGIvYm9hcmQvZXNkL2R1NDQwL2NvbmZpZy5tawppbmRleCA1MTY0MzM0Li45MWU2NWVjIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvZHU0NDAvY29uZmlnLm1rCisrKyBiL2JvYXJkL2VzZC9kdTQ0MC9jb25maWcubWsKQEAgLTMzLDUgKzMzLDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvZHU0NDAvZHU0NDAuYyBiL2JvYXJkL2VzZC9kdTQ0MC9kdTQ0MC5jCmluZGV4IDZkY2EzNWQuLjJmOTdhMTIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9kdTQ0MC9kdTQ0MC5jCisrKyBiL2JvYXJkL2VzZC9kdTQ0MC9kdTQ0MC5jCkBAIC0yOSw3ICsyOSw3IEBACiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi1leHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitleHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogZXh0ZXJuIHVsb25nIGZsYXNoX2dldF9zaXplICh1bG9uZyBiYXNlLCBpbnQgYmFua251bSk7CiAKIGludCB1c2JodWJfaW5pdCh2b2lkKTsKQEAgLTUxLDggKzUxLDggQEAKIAkvKgogCSAqIFNldHVwIHRoZSBHUElPIHBpbnMKIAkgKi8KLQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIDB4MDAwMDAwMDAgfCBDRkdfR1BJTzBfRVBfRUVQKTsKLQlvdXRfYmUzMigodm9pZCopR1BJTzBfVENSLCAweDAwMDAwMDFmIHwgQ0ZHX0dQSU8wX0VQX0VFUCk7CisJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCAweDAwMDAwMDAwIHwgQ09ORklHX1NZU19HUElPMF9FUF9FRVApOworCW91dF9iZTMyKCh2b2lkKilHUElPMF9UQ1IsIDB4MDAwMDAwMWYgfCBDT05GSUdfU1lTX0dQSU8wX0VQX0VFUCk7CiAJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09TUkwsIDB4NTAwNTU0MDApOwogCW91dF9iZTMyKCh2b2lkKilHUElPMF9PU1JILCAweDU1MDA1MDAwKTsKIAlvdXRfYmUzMigodm9pZCopR1BJTzBfVFNSTCwgMHg1MDA1NTQwMCk7CkBAIC02NiwxMyArNjYsMTMgQEAKIAogCW91dF9iZTMyKCh2b2lkKilHUElPMV9PUiwgMHgwMDAwMDAwMCk7CiAJb3V0X2JlMzIoKHZvaWQqKUdQSU8xX1RDUiwgMHhjMjAwMDAwMCB8Ci0JCSBDRkdfR1BJTzFfSU9SU1ROIHwKLQkJIENGR19HUElPMV9JT1JTVDJOIHwKLQkJIENGR19HUElPMV9MRURVU1IxIHwKLQkJIENGR19HUElPMV9MRURVU1IyIHwKLQkJIENGR19HUElPMV9MRURQT1NUIHwKLQkJIENGR19HUElPMV9MRUREVSk7Ci0Jb3V0X2JlMzIoKHZvaWQqKUdQSU8xX09EUiwgQ0ZHX0dQSU8xX0xFRERVKTsKKwkJIENPTkZJR19TWVNfR1BJTzFfSU9SU1ROIHwKKwkJIENPTkZJR19TWVNfR1BJTzFfSU9SU1QyTiB8CisJCSBDT05GSUdfU1lTX0dQSU8xX0xFRFVTUjEgfAorCQkgQ09ORklHX1NZU19HUElPMV9MRURVU1IyIHwKKwkJIENPTkZJR19TWVNfR1BJTzFfTEVEUE9TVCB8CisJCSBDT05GSUdfU1lTX0dQSU8xX0xFRERVKTsKKwlvdXRfYmUzMigodm9pZCopR1BJTzFfT0RSLCBDT05GSUdfU1lTX0dQSU8xX0xFRERVKTsKIAlvdXRfYmUzMigodm9pZCopR1BJTzFfT1NSTCwgMHgwYzI4MDAwMCk7CiAJb3V0X2JlMzIoKHZvaWQqKUdQSU8xX09TUkgsIDB4MDAwMDAwMDApOwogCW91dF9iZTMyKCh2b2lkKilHUElPMV9UU1JMLCAweGNjMDAwMDAwKTsKQEAgLTE1NCw4ICsxNTQsOCBAQAogCQlTRFIwX0NVU1QwX05ERkNfRU5BQkxFCQl8CiAJCVNEUjBfQ1VTVDBfTkRGQ19CV184X0JJVAl8CiAJCVNEUjBfQ1VTVDBfTkRGQ19BUkVfTUFTSwl8Ci0JCSgweDgwMDAwMDAwID4+ICgyOCArIENGR19OQU5EMF9DUykpIHwKLQkJKDB4ODAwMDAwMDAgPj4gKDI4ICsgQ0ZHX05BTkQxX0NTKSk7CisJCSgweDgwMDAwMDAwID4+ICgyOCArIENPTkZJR19TWVNfTkFORDBfQ1MpKSB8CisJCSgweDgwMDAwMDAwID4+ICgyOCArIENPTkZJR19TWVNfTkFORDFfQ1MpKTsKIAltdHNkcihTRFIwX0NVU1QwLCBzZHIwX2N1c3QwKTsKIAogCXJldHVybiAwOwpAQCAtMjczLDcgKzI3Myw3IEBACiAJICogV2UgaGF2ZSB0byB3YWl0IGF0IGxlYXN0IDU2MG1zIHVudGlsIHdlIG1heSBjYWxsIHVzYmh1Yl9pbml0CiAJICovCiAJb3V0X2JlMzIoKHZvaWQqKUdQSU8xX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMV9PUikgfAotCQkgQ0ZHX0dQSU8xX0lPUlNUTiB8IENGR19HUElPMV9JT1JTVDJOKTsKKwkJIENPTkZJR19TWVNfR1BJTzFfSU9SU1ROIHwgQ09ORklHX1NZU19HUElPMV9JT1JTVDJOKTsKIAogCS8qCiAJICogZmxhc2ggVVNSMS8yIExFRHMgKDYwMG1zKQpAQCAtMjgyLDIyICsyODIsMjIgQEAKIAkgKi8KIAlmb3IgKGogPSAwOyBqIDwgMzsgaisrKSB7CiAJCW91dF9iZTMyKCh2b2lkKilHUElPMV9PUiwKLQkJCSAoaW5fYmUzMigodm9pZCopR1BJTzFfT1IpICYgfkNGR19HUElPMV9MRURVU1IyKSB8Ci0JCQkgQ0ZHX0dQSU8xX0xFRFVTUjEpOworCQkJIChpbl9iZTMyKCh2b2lkKilHUElPMV9PUikgJiB+Q09ORklHX1NZU19HUElPMV9MRURVU1IyKSB8CisJCQkgQ09ORklHX1NZU19HUElPMV9MRURVU1IxKTsKIAogCQlmb3IgKGkgPSAwOyBpIDwgMTAwOyBpKyspCiAJCQl1ZGVsYXkoMTAwMCk7CiAKIAkJb3V0X2JlMzIoKHZvaWQqKUdQSU8xX09SLAotCQkJIChpbl9iZTMyKCh2b2lkKilHUElPMV9PUikgJiB+Q0ZHX0dQSU8xX0xFRFVTUjEpIHwKLQkJCSBDRkdfR1BJTzFfTEVEVVNSMik7CisJCQkgKGluX2JlMzIoKHZvaWQqKUdQSU8xX09SKSAmIH5DT05GSUdfU1lTX0dQSU8xX0xFRFVTUjEpIHwKKwkJCSBDT05GSUdfU1lTX0dQSU8xX0xFRFVTUjIpOwogCiAJCWZvciAoaSA9IDA7IGkgPCAxMDA7IGkrKykKIAkJCXVkZWxheSgxMDAwKTsKIAl9CiAKIAlvdXRfYmUzMigodm9pZCopR1BJTzFfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8xX09SKSAmCi0JCSB+KENGR19HUElPMV9MRURVU1IxIHwgQ0ZHX0dQSU8xX0xFRFVTUjIpKTsKKwkJIH4oQ09ORklHX1NZU19HUElPMV9MRURVU1IxIHwgQ09ORklHX1NZU19HUElPMV9MRURVU1IyKSk7CiAKIAlpZiAodXNiaHViX2luaXQoKSkKIAkJZHU0NDBfcG9zdF9lcnJvcnMrKzsKQEAgLTMxMCwxNCArMzEwLDE0IEBACiAKIGludCBwbGRfcmV2aXNpb24odm9pZCkKIHsKLQlvdXQ4KENGR19DUExEX0JBU0UsIDB4MDApOwotCXJldHVybiAoaW50KShpbjgoQ0ZHX0NQTERfQkFTRSkgJiBDUExEX1ZFUlNJT05fTUFTSyk7CisJb3V0OChDT05GSUdfU1lTX0NQTERfQkFTRSwgMHgwMCk7CisJcmV0dXJuIChpbnQpKGluOChDT05GSUdfU1lTX0NQTERfQkFTRSkgJiBDUExEX1ZFUlNJT05fTUFTSyk7CiB9CiAKIGludCBib2FyZF9yZXZpc2lvbih2b2lkKQogewotCWludCBycGlucyA9IChpbnQpKChpbl9iZTMyKCh2b2lkKilHUElPMV9JUikgJiBDRkdfR1BJTzFfSFdWRVJfTUFTSykKLQkJCSAgPj4gQ0ZHX0dQSU8xX0hXVkVSX1NISUZUKTsKKwlpbnQgcnBpbnMgPSAoaW50KSgoaW5fYmUzMigodm9pZCopR1BJTzFfSVIpICYgQ09ORklHX1NZU19HUElPMV9IV1ZFUl9NQVNLKQorCQkJICA+PiBDT05GSUdfU1lTX0dQSU8xX0hXVkVSX1NISUZUKTsKIAogCXJldHVybiAoKHJwaW5zICYgMSkgPDwgMykgfCAoKHJwaW5zICYgMikgPDwgMSkgfAogCQkoKHJwaW5zICYgNCkgPj4gMSkgfCAoKHJwaW5zICYgOCkgPj4gMyk7CkBAIC0zMjgsNyArMzI4LDcgQEAKIHsKIAlpZiAoKHRpbWVzdGFtcCAlIDEwMCkgPT0gMCkKIAkJb3V0X2JlMzIoKHZvaWQqKUdQSU8xX09SLAotCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8xX09SKSBeIENGR19HUElPMV9MRURVU1IxKTsKKwkJCSBpbl9iZTMyKCh2b2lkKilHUElPMV9PUikgXiBDT05GSUdfU1lTX0dQSU8xX0xFRFVTUjEpOwogfQogCiB2b2lkIHNob3dfYWN0aXZpdHkoaW50IGFyZykKQEAgLTQyMSw3ICs0MjEsNyBAQAogICogaW5ib3VuZCBtYXAgKFBJTSkuIEJ1dCB0aGUgYm9vdHN0cmFwIGNvbmZpZyBjaG9pY2VzIGFyZSBsaW1pdGVkIGFuZAogICogbWF5IG5vdCBiZSBzdWZmaWNpZW50IGZvciBhIGdpdmVuIGJvYXJkLgogICovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogdm9pZCBwY2lfdGFyZ2V0X2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewogCS8qCkBAIC00MzcsMTYgKzQzNywxNiBAQAogCSAqLwogCW91dDMycihQQ0lYMF9QTU0wTUEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIE1hc2svQXR0cmlidXRlICovCiAJCQkJCQkvKiAtIGRpc2FibGVkIGI0IHNldHRpbmcgKi8KLQlvdXQzMnIoUENJWDBfUE1NMExBLCBDRkdfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KLQlvdXQzMnIoUENJWDBfUE1NMFBDSUxBLCBDRkdfUENJX01FTUJBU0UpOyAvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0wTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMFBDSUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFKTsgLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMFBDSUhBLCAweDAwMDAwMDAwKTsJLyogUE1NMCBQQ0kgSGlnaCBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTBNQSwgMHhFMDAwMDAwMSk7CS8qIDUxMk0gKyBObyBwcmVmZXRjaGluZywgKi8KIAkJCQkJCS8qIGFuZCBlbmFibGUgcmVnaW9uICovCiAKIAlvdXQzMnIoUENJWDBfUE1NMU1BLCAweDAwMDAwMDAwKTsJLyogUE1NMCBNYXNrL0F0dHJpYnV0ZSAqLwogCQkJCQkJLyogLSBkaXNhYmxlZCBiNCBzZXR0aW5nICovCi0Jb3V0MzJyKFBDSVgwX1BNTTFMQSwgQ0ZHX1BDSV9NRU1CQVNFMik7IC8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLwotCW91dDMycihQQ0lYMF9QTU0xUENJTEEsIENGR19QQ0lfTUVNQkFTRTIpOyAvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0xTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UyKTsgLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTFQQ0lMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIpOyAvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0xUENJSEEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIFBDSSBIaWdoIEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMU1BLCAweEUwMDAwMDAxKTsJLyogNTEyTSArIE5vIHByZWZldGNoaW5nLCAqLwogCQkJCQkJLyogYW5kIGVuYWJsZSByZWdpb24gKi8KQEAgLTQ3OSw5ICs0NzksOSBAQAogCXBjaV93cml0ZV9jb25maWdfZHdvcmQoMCwgUENJX0JSREdPUFQyLCAweDAwMDAwMTAxKTsKIAogfQotI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkgKi8KIAotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX01BU1RFUl9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVCkKIHZvaWQgcGNpX21hc3Rlcl9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSkKIHsKIAl1bnNpZ25lZCBzaG9ydCB0ZW1wX3Nob3J0OwpAQCAtNDk2LDcgKzQ5Niw3IEBACiAJCQkgICAgICB0ZW1wX3Nob3J0IHwgUENJX0NPTU1BTkRfTUFTVEVSIHwKIAkJCSAgICAgIFBDSV9DT01NQU5EX01FTU9SWSk7CiB9Ci0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfTUFTVEVSX0lOSVQpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUKSAqLwogCiAvKgogICogaXNfcGNpX2hvc3QKQEAgLTUyNCwxOCArNTI0LDE4IEBACiAJaW50IGUsIGk7CiAKIAkvKiBldmVyeXRpbmcgaXMgb2s6IHR1cm4gb24gUE9TVC1MRUQgKi8KLQlvdXRfYmUzMigodm9pZCopR1BJTzFfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8xX09SKSB8IENGR19HUElPMV9MRURQT1NUKTsKKwlvdXRfYmUzMigodm9pZCopR1BJTzFfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8xX09SKSB8IENPTkZJR19TWVNfR1BJTzFfTEVEUE9TVCk7CiAKIAkvKiBzbG93bHkgYmxpbmsgb24gZXJyb3JzIGFuZCBmaW5hbGx5IGtlZXAgTEVEIG9mZiAqLwogCWZvciAoZSA9IDA7IGUgPCBkdTQ0MF9wb3N0X2Vycm9yczsgZSsrKSB7CiAJCW91dF9iZTMyKCh2b2lkKilHUElPMV9PUiwKLQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMV9PUikgfCBDRkdfR1BJTzFfTEVEUE9TVCk7CisJCQkgaW5fYmUzMigodm9pZCopR1BJTzFfT1IpIHwgQ09ORklHX1NZU19HUElPMV9MRURQT1NUKTsKIAogCQlmb3IgKGkgPSAwOyBpIDwgNTAwOyBpKyspCiAJCQl1ZGVsYXkoMTAwMCk7CiAKIAkJb3V0X2JlMzIoKHZvaWQqKUdQSU8xX09SLAotCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8xX09SKSAmIH5DRkdfR1BJTzFfTEVEUE9TVCk7CisJCQkgaW5fYmUzMigodm9pZCopR1BJTzFfT1IpICYgfkNPTkZJR19TWVNfR1BJTzFfTEVEUE9TVCk7CiAKIAkJZm9yIChpID0gMDsgaSA8IDUwMDsgaSsrKQogCQkJdWRlbGF5KDEwMDApOwpAQCAtNTgzLDkgKzU4Myw5IEBACiAJCXByaW50ZigiRVJST1IgLSBubyBzaWduYWxcbiIpOwogCiAJdDEgPSB0MiA9IDA7Ci0JcGlub2xkID0gaW5fYmUzMigodm9pZCopR1BJTzFfSVIpICYgQ0ZHX0dQSU8xX0RDRjc3OworCXBpbm9sZCA9IGluX2JlMzIoKHZvaWQqKUdQSU8xX0lSKSAmIENPTkZJR19TWVNfR1BJTzFfRENGNzc7CiAJd2hpbGUgKCFjdHJsYygpKSB7Ci0JCXBpbiA9IGluX2JlMzIoKHZvaWQqKUdQSU8xX0lSKSAmIENGR19HUElPMV9EQ0Y3NzsKKwkJcGluID0gaW5fYmUzMigodm9pZCopR1BJTzFfSVIpICYgQ09ORklHX1NZU19HUElPMV9EQ0Y3NzsKIAkJaWYgKHBpbiAmJiAhcGlub2xkKSB7IC8qIGJpdCBzdGFydCAqLwogCQkJdDEgPSBnZXRfdGlja3MoKTsKIAkJCWlmICh0MiAmJiAoKHVuc2lnbmVkIGludCkodDEgLSB0MikgLwpAQCAtNjYxLDcgKzY2MSw3IEBACiAJKTsKICNlbmRpZiAvKiBDT05GSUdfSTJDX01VTFRJX0JVUyAqLwogCi0jZGVmaW5lIENGR19CT09UX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCiBpbnQgYm9vdF9lZXByb21fd3JpdGUgKHVuc2lnbmVkIGRldl9hZGRyLAogCQkgICAgICAgdW5zaWduZWQgb2Zmc2V0LAogCQkgICAgICAgdWNoYXIgKmJ1ZmZlciwKQEAgLTY3MSw3ICs2NzEsNyBAQAogCXVuc2lnbmVkIGJsa19vZmY7CiAJaW50IHJjb2RlID0gMDsKIAotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9XUkVOKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikKIAllZXByb21fd3JpdGVfZW5hYmxlKGRldl9hZGRyLCAxKTsKICNlbmRpZgogCS8qCkBAIC03MDAsOSArNzAwLDkgQEAKIAkJICogYnl0ZXMgdGhhdCBjYW4gYmUgY2Nlc3NlZCB3aXRoIHRoZSBzaW5nbGUgcmVhZCBvciB3cml0ZQogCQkgKiBvcGVyYXRpb24uCiAJCSAqLwotI2lmIGRlZmluZWQoQ0ZHX0JPT1RfRUVQUk9NX1BBR0VfV1JJVEVfQklUUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQk9PVF9FRVBST01fUEFHRV9XUklURV9CSVRTKQogCi0jZGVmaW5lCUJPT1RfRUVQUk9NX1BBR0VfU0laRSAoMSA8PCBDRkdfQk9PVF9FRVBST01fUEFHRV9XUklURV9CSVRTKQorI2RlZmluZQlCT09UX0VFUFJPTV9QQUdFX1NJWkUgKDEgPDwgQ09ORklHX1NZU19CT09UX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMpCiAjZGVmaW5lIEJPT1RfRUVQUk9NX1BBR0VfT0ZGU0VUKHgpICgoeCkgJiAoQk9PVF9FRVBST01fUEFHRV9TSVpFIC0gMSkpCiAKIAkJbWF4bGVuID0gQk9PVF9FRVBST01fUEFHRV9TSVpFIC0KQEAgLTcyMiwxMSArNzIyLDExIEBACiAJCWJ1ZmZlciArPSBsZW47CiAJCW9mZnNldCArPSBsZW47CiAKLSNpZiBkZWZpbmVkKENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUykKLQkJdWRlbGF5KENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAqIDEwMDApOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUykKKwkJdWRlbGF5KENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgKiAxMDAwKTsKICNlbmRpZgogCX0KLSNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pCiAJZWVwcm9tX3dyaXRlX2VuYWJsZShkZXZfYWRkciwgMCk7CiAjZW5kaWYKIAlyZXR1cm4gcmNvZGU7CkBAIC03NzksNyArNzc5LDcgQEAKIAl9CiAKIAlwcmludGYoIldyaXRpbmcgYm9vdCBFRVBST00gLi4uXG4iKTsKLQlpZiAoYm9vdF9lZXByb21fd3JpdGUoQ0ZHX0kyQ19CT09UX0VFUFJPTV9BRERSLAorCWlmIChib290X2VlcHJvbV93cml0ZShDT05GSUdfU1lTX0kyQ19CT09UX0VFUFJPTV9BRERSLAogCQkJICAgICAgMCwgKHVjaGFyKilzZHNkcCwgMTYpICE9IDApCiAJCXByaW50ZigiYm9vdF9lZXByb21fd3JpdGUgZmFpbGVkXG4iKTsKIAllbHNlCkBAIC03OTMsNyArNzkzLDcgQEAKIAlOVUxMCiAJKTsKIAotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9XUkVOKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikKIC8qCiAgKiBJbnB1dDogPGRldl9hZGRyPiAgSTJDIGFkZHJlc3Mgb2YgRUVQUk9NIGRldmljZSB0byBlbmFibGUuCiAgKiAgICAgICAgIDxzdGF0ZT4gICAgIC0xOiBkZWxpdmVyIGN1cnJlbnQgc3RhdGUKQEAgLTgwNSwyNyArODA1LDI3IEBACiAgKi8KIGludCBlZXByb21fd3JpdGVfZW5hYmxlICh1bnNpZ25lZCBkZXZfYWRkciwgaW50IHN0YXRlKQogewotCWlmICgoQ0ZHX0kyQ19FRVBST01fQUREUiAhPSBkZXZfYWRkcikgJiYKLQkgICAgKENGR19JMkNfQk9PVF9FRVBST01fQUREUiAhPSBkZXZfYWRkcikpCisJaWYgKChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiAhPSBkZXZfYWRkcikgJiYKKwkgICAgKENPTkZJR19TWVNfSTJDX0JPT1RfRUVQUk9NX0FERFIgIT0gZGV2X2FkZHIpKQogCQlyZXR1cm4gLTE7CiAJZWxzZSB7CiAJCXN3aXRjaCAoc3RhdGUpIHsKIAkJY2FzZSAxOgogCQkJLyogRW5hYmxlIHdyaXRlIGFjY2VzcywgY2xlYXIgYml0IEdQSU9fU0lOVDIuICovCiAJCQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsCi0JCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmIH5DRkdfR1BJTzBfRVBfRUVQKTsKKwkJCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfR1BJTzBfRVBfRUVQKTsKIAkJCXN0YXRlID0gMDsKIAkJCWJyZWFrOwogCQljYXNlIDA6CiAJCQkvKiBEaXNhYmxlIHdyaXRlIGFjY2Vzcywgc2V0IGJpdCBHUElPX1NJTlQyLiAqLwogCQkJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLAotCQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDRkdfR1BJTzBfRVBfRUVQKTsKKwkJCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19HUElPMF9FUF9FRVApOwogCQkJc3RhdGUgPSAwOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQkvKiBSZWFkIGN1cnJlbnQgc3RhdHVzIGJhY2suICovCiAJCQlzdGF0ZSA9ICgwID09IChpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJgotCQkJCSAgICAgICBDRkdfR1BJTzBfRVBfRUVQKSk7CisJCQkJICAgICAgIENPTkZJR19TWVNfR1BJTzBfRVBfRUVQKSk7CiAJCQlicmVhazsKIAkJfQogCX0KQEAgLTgzOSwyMSArODM5LDIxIEBACiAKIAlpZiAocXVlcnkpIHsKIAkJLyogUXVlcnkgd3JpdGUgYWNjZXNzIHN0YXRlLiAqLwotCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUoQ0ZHX0kyQ19FRVBST01fQUREUiwgLTEpOworCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIC0xKTsKIAkJaWYgKHN0YXRlIDwgMCkKIAkJCXB1dHMgKCJRdWVyeSBvZiB3cml0ZSBhY2Nlc3Mgc3RhdGUgZmFpbGVkLlxuIik7CiAJCWVsc2UgewogCQkJcHJpbnRmICgiV3JpdGUgYWNjZXNzIGZvciBkZXZpY2UgMHglMHggaXMgJXNhYmxlZC5cbiIsCi0JCQkJQ0ZHX0kyQ19FRVBST01fQUREUiwgc3RhdGUgPyAiZW4iIDogImRpcyIpOworCQkJCUNPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCBzdGF0ZSA/ICJlbiIgOiAiZGlzIik7CiAJCQlzdGF0ZSA9IDA7CiAJCX0KIAl9IGVsc2UgewogCQlpZiAoJzAnID09IGFyZ3ZbMV1bMF0pIHsKIAkJCS8qIERpc2FibGUgd3JpdGUgYWNjZXNzLiAqLwotCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlKENGR19JMkNfRUVQUk9NX0FERFIsIDApOworCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAwKTsKIAkJfSBlbHNlIHsKIAkJCS8qIEVuYWJsZSB3cml0ZSBhY2Nlc3MuICovCi0JCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUoQ0ZHX0kyQ19FRVBST01fQUREUiwgMSk7CisJCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIDEpOwogCQl9CiAJCWlmIChzdGF0ZSA8IDApCiAJCQlwdXRzICgiU2V0dXAgb2Ygd3JpdGUgYWNjZXNzIHN0YXRlIGZhaWxlZC5cbiIpOwpAQCAtODY1LDE5ICs4NjUsMTkgQEAKIFVfQk9PVF9DTUQoZWVwd3JlbiwgMiwgMCwgZG9fZWVwX3dyZW4sCiAJICAgImVlcHdyZW4gLSBFbmFibGUgLyBkaXNhYmxlIC8gcXVlcnkgRUVQUk9NIHdyaXRlIGFjY2Vzc1xuIiwKIAkgICBOVUxMKTsKLSNlbmRpZiAvKiAjaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pICovCisjZW5kaWYgLyogI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikgKi8KIAogc3RhdGljIGludCBnb3RfcGxkaXJxOwogCiBzdGF0aWMgaW50IHBsZF9pbnRlcnJ1cHQodTMyIGFyZykKIHsKIAlpbnQgcmMgPSAtMTsgLyogbm90IGZvciB1cyAqLwotCXU4IHN0YXR1cyA9IGluOChDRkdfQ1BMRF9CQVNFKTsKKwl1OCBzdGF0dXMgPSBpbjgoQ09ORklHX1NZU19DUExEX0JBU0UpOwogCiAJLyogY2hlY2sgZm9yIFBMRCBpbnRlcnJ1cHQgKi8KIAlpZiAoc3RhdHVzICYgUFdSX0lOVF9GTEFHKSB7CiAJCS8qIHJlc2V0IHRoaXMgaW50ICovCi0JCW91dDgoQ0ZHX0NQTERfQkFTRSwgMCk7CisJCW91dDgoQ09ORklHX1NZU19DUExEX0JBU0UsIDApOwogCQlyYyA9IDA7CiAJCWdvdF9wbGRpcnEgPSAxOyAvKiB0cmlnZ2VyIGJhY2tlbmQgKi8KIAl9CkBAIC04OTAsNyArODkwLDcgQEAKIAlnb3RfcGxkaXJxID0gMDsKIAogCS8qIGNsZWFyIGFueSBwZW5kaW5nIGludGVycnVwdCAqLwotCW91dDgoQ0ZHX0NQTERfQkFTRSwgMCk7CisJb3V0OChDT05GSUdfU1lTX0NQTERfQkFTRSwgMCk7CiAKIAlpcnFfaW5zdGFsbF9oYW5kbGVyKENQTERfSVJRLAogCQkJICAgIChpbnRlcnJ1cHRfaGFuZGxlcl90ICopcGxkX2ludGVycnVwdCwgMCk7CkBAIC05MDYsNyArOTA2LDcgQEAKIAlpZiAoZ290X3BsZGlycSkgewogCQlwcmludGYoIkdvdCBpbnRlcnJ1cHQhXG4iKTsKIAkJcHJpbnRmKCJQb3dlciAlc3JlYWR5IVxuIiwKLQkJICAgICAgIGluOChDRkdfQ1BMRF9CQVNFKSAmIFBXUl9SRFkgPyAiIjoiTk9UICIpOworCQkgICAgICAgaW44KENPTkZJR19TWVNfQ1BMRF9CQVNFKSAmIFBXUl9SRFkgPyAiIjoiTk9UICIpOwogCX0KIAogCWlycV9mcmVlX2hhbmRsZXIoQ1BMRF9JUlEpOwpAQCAtOTcwLDcgKzk3MCw3IEBACiBpbnQgZG9fdGltZShjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKIAl1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnQsIGVuZDsKLQljaGFyIGMsIGNtZFtDRkdfQ0JTSVpFXTsKKwljaGFyIGMsIGNtZFtDT05GSUdfU1lTX0NCU0laRV07CiAJY2hhciAqcCwgKmQgPSBjbWQ7CiAJaW50IHJldCwgaTsKIAl1bG9uZyB1czsKQEAgLTk5OCw3ICs5OTgsNyBAQAogCXJldHVybiByZXQ7CiB9CiBVX0JPT1RfQ01EKAotCXRpbWUsCUNGR19NQVhBUkdTLAkxLAlkb190aW1lLAorCXRpbWUsCUNPTkZJR19TWVNfTUFYQVJHUywJMSwJZG9fdGltZSwKIAkidGltZSAgICAtIHJ1biBjb21tYW5kIGFuZCBvdXRwdXQgZXhlY3V0aW9uIHRpbWVcbiIsCiAJTlVMTAogCSk7CkBAIC0xMDQ4LDcgKzEwNDgsNyBAQAogCXJldHVybiAwOwogfQogVV9CT09UX0NNRCgKLQlnZnhkZW1vLAlDRkdfTUFYQVJHUywJMSwJZG9fZ2Z4ZGVtbywKKwlnZnhkZW1vLAlDT05GSUdfU1lTX01BWEFSR1MsCTEsCWRvX2dmeGRlbW8sCiAJImdmeGRlbW8gLSBkZW1vXG4iLAogCU5VTEwKIAkpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2R1NDQwL2R1NDQwLmggYi9ib2FyZC9lc2QvZHU0NDAvZHU0NDAuaAppbmRleCA4M2ZkYWM3Li5hMTI0YTdlIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvZHU0NDAvZHU0NDAuaAorKysgYi9ib2FyZC9lc2QvZHU0NDAvZHU0NDAuaApAQCAtMjAsMTggKzIwLDE4IEBACiAKICNkZWZpbmUgU0RSMF9VU0IwCQkweDAzMjAgICAgIC8qIFVTQiBDb250cm9sIFJlZ2lzdGVyICovCiAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0VQX0VFUAkoMHg4MDAwMDAwMCA+PiAyMykgICAgICAgLyogR1BJTzBfMjMgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8xX0RDRjc3CQkoMHg4MDAwMDAwMCA+PiAoNDItMzIpKSAgLyogR1BJTzFfNDIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9FUF9FRVAJKDB4ODAwMDAwMDAgPj4gMjMpICAgICAgIC8qIEdQSU8wXzIzICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfRENGNzcJCSgweDgwMDAwMDAwID4+ICg0Mi0zMikpICAvKiBHUElPMV80MiAqLwogCi0jZGVmaW5lIENGR19HUElPMV9JT1JTVE4JKDB4ODAwMDAwMDAgPj4gKDU1LTMyKSkgIC8qIEdQSU8xXzU1ICovCi0jZGVmaW5lIENGR19HUElPMV9JT1JTVDJOCSgweDgwMDAwMDAwID4+ICg0Ny0zMikpICAvKiBHUElPMV80NyAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX0lPUlNUTgkoMHg4MDAwMDAwMCA+PiAoNTUtMzIpKSAgLyogR1BJTzFfNTUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9JT1JTVDJOCSgweDgwMDAwMDAwID4+ICg0Ny0zMikpICAvKiBHUElPMV80NyAqLwogCi0jZGVmaW5lIENGR19HUElPMV9IV1ZFUl9NQVNLCTB4MDAwMDAwZjAgLyogR1BJTzFfNTYtNTkgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8xX0hXVkVSX1NISUZUCTQKLSNkZWZpbmUgQ0ZHX0dQSU8xX0xFRFVTUjEJMHgwMDAwMDAwOCAvKiBHUElPMV82MCAqLwotI2RlZmluZSBDRkdfR1BJTzFfTEVEVVNSMgkweDAwMDAwMDA0IC8qIEdQSU8xXzYxICovCi0jZGVmaW5lIENGR19HUElPMV9MRURQT1NUCTB4MDAwMDAwMDIgLyogR1BJTzFfNjIgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8xX0xFRERVCQkweDAwMDAwMDAxIC8qIEdQSU8xXzYzICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfSFdWRVJfTUFTSwkweDAwMDAwMGYwIC8qIEdQSU8xXzU2LTU5ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfSFdWRVJfU0hJRlQJNAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX0xFRFVTUjEJMHgwMDAwMDAwOCAvKiBHUElPMV82MCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX0xFRFVTUjIJMHgwMDAwMDAwNCAvKiBHUElPMV82MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX0xFRFBPU1QJMHgwMDAwMDAwMiAvKiBHUElPMV82MiAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX0xFRERVCQkweDAwMDAwMDAxIC8qIEdQSU8xXzYzICovCiAKICNkZWZpbmUgQ1BMRF9WRVJTSU9OX01BU0sJMHgwZgogI2RlZmluZSBQV1JfSU5UX0ZMQUcJCTB4ODAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9kdTQ0MC9pbml0LlMgYi9ib2FyZC9lc2QvZHU0NDAvaW5pdC5TCmluZGV4IDQzOTBiNTAuLjNjYWM2YjEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9kdTQ0MC9pbml0LlMKKysrIGIvYm9hcmQvZXNkL2R1NDQwL2luaXQuUwpAQCAtNDQsMzAgKzQ0LDMwIEBACiAJICogQk9PVF9DUyAoRkxBU0gpIG11c3QgYmUgZmlyc3QuIEJlZm9yZSByZWxvY2F0aW9uIFNBX0kgY2FuIGJlIG9mZiB0byB1c2UgdGhlCiAJICogc3BlZWQgdXAgYm9vdCBwcm9jZXNzLiBJdCBpcyBwYXRjaGVkIGFmdGVyIHJlbG9jYXRpb24gdG8gZW5hYmxlIFNBX0kKIAkgKi8KLQl0bGJlbnRyeSggQ0ZHX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNLCBDRkdfQk9PVF9CQVNFX0FERFIsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNLCBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HICkKIAotI2lmZGVmIENGR19JTklUX1JBTV9EQ0FDSEUKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfUkFNX0RDQUNIRQogCS8qIFRMQi1lbnRyeSBmb3IgaW5pdC1yYW0gaW4gZGNhY2hlIChTQV9JIG11c3QgYmUgdHVybmVkIG9mZiEpICovCi0JdGxiZW50cnkoIENGR19JTklUX1JBTV9BRERSLCBTWl82NEssIENGR19JTklUX1JBTV9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBTWl82NEssIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRyApCiAjZW5kaWYKIAogCS8qIFRMQi1lbnRyeSBmb3IgUENJIE1lbW9yeSAqLwotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UsIFNaXzI1Nk0sICBDRkdfUENJX01FTUJBU0UsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UxLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UxLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFMiwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFMiwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRTMsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRTMsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UxLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UyLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UzLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMywgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCiAKIAkvKiBUTEItZW50cnkgZm9yIFBDSSBJTyAqLwotCXRsYmVudHJ5KCBDRkdfUENJX0lPQkFTRSwgU1pfNjRLLCBDRkdfUENJX0lPQkFTRSwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX0lPQkFTRSwgU1pfNjRLLCBDT05GSUdfU1lTX1BDSV9JT0JBU0UsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCiAJLyogVExCLWVudHJpZXMgZm9yIEVCQzoJIENQTEQsIERVTUVNLCBEVUlPICovCi0JdGxiZW50cnkoIENGR19DUExEX0JBU0UsIFNaXzFLLCBDRkdfQ1BMRF9CQVNFLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfRFVNRU1fQkFTRSwgU1pfMU0sIENGR19EVU1FTV9CQVNFLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfRFVJT19CQVNFLCBTWl82NEssIENGR19EVUlPX0JBU0UsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfQ1BMRF9CQVNFLCBTWl8xSywgQ09ORklHX1NZU19DUExEX0JBU0UsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfRFVNRU1fQkFTRSwgU1pfMU0sIENPTkZJR19TWVNfRFVNRU1fQkFTRSwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19EVUlPX0JBU0UsIFNaXzY0SywgQ09ORklHX1NZU19EVUlPX0JBU0UsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCiAKIAkvKiBUTEItZW50cnkgZm9yIE5BTkQgKi8KLQl0bGJlbnRyeSggQ0ZHX05BTkQwX0FERFIsIFNaXzFLLCBDRkdfTkFORDBfQUREUiwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX05BTkQxX0FERFIsIFNaXzFLLCBDRkdfTkFORDFfQUREUiwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19OQU5EMF9BRERSLCBTWl8xSywgQ09ORklHX1NZU19OQU5EMF9BRERSLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX05BTkQxX0FERFIsIFNaXzFLLCBDT05GSUdfU1lTX05BTkQxX0FERFIsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCiAKIAkvKiBUTEItZW50cnkgZm9yIEludGVybmFsIFJlZ2lzdGVycyAmIE9DTSAqLwogCXRsYmVudHJ5KCAweGUwMDAwMDAwLCBTWl8xNk0sIDB4ZTAwMDAwMDAsIDAsICBBQ19SfEFDX1d8QUNfWHxTQV9JICkKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9kdTQ0MC91LWJvb3QubGRzIGIvYm9hcmQvZXNkL2R1NDQwL3UtYm9vdC5sZHMKaW5kZXggYjIwZmIxYy4uM2NmZWM4MyAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2R1NDQwL3UtYm9vdC5sZHMKKysrIGIvYm9hcmQvZXNkL2R1NDQwL3UtYm9vdC5sZHMKQEAgLTEzNyw3ICsxMzcsNyBAQAogICAgKihDT01NT04pCiAgIH0KIAotICBwcGNlbnZfYXNzZXJ0ID0gQVNTRVJUKC4gPCAweEZGRkY4MDAwLCAiLmJzcyBzZWN0aW9uIHRvbyBiaWcsIG92ZXJsYXBzIC5wcGNlbnYgc2VjdGlvbi4gUGxlYXNlIHVwZGF0ZSB5b3VyIGNvbmZndXJhdGlvbjogQ0ZHX01PTklUT1JfQkFTRSwgQ0ZHX01PTklUT1JfTEVOIGFuZCBURVhUX0JBU0UgbWF5IG5lZWQgdG8gYmUgbW9kaWZpZWQuIik7CisgIHBwY2Vudl9hc3NlcnQgPSBBU1NFUlQoLiA8IDB4RkZGRjgwMDAsICIuYnNzIHNlY3Rpb24gdG9vIGJpZywgb3ZlcmxhcHMgLnBwY2VudiBzZWN0aW9uLiBQbGVhc2UgdXBkYXRlIHlvdXIgY29uZmd1cmF0aW9uOiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgQ09ORklHX1NZU19NT05JVE9SX0xFTiBhbmQgVEVYVF9CQVNFIG1heSBuZWVkIHRvIGJlIG1vZGlmaWVkLiIpOwogCiAgIF9lbmQgPSAuIDsKICAgUFJPVklERSAoZW5kID0gLik7CmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvaGg0MDUvZmxhc2guYyBiL2JvYXJkL2VzZC9oaDQwNS9mbGFzaC5jCmluZGV4IDg5YWYxMTkuLjI3NGFkYTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9oaDQwNS9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9oaDQwNS9mbGFzaC5jCkBAIC00OCw3ICs0OCw3IEBACiAJaW50IHNpemVfdmFsID0gMDsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtOTEsNyArOTEsNyBAQAogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2hoNDA1L2hoNDA1LmMgYi9ib2FyZC9lc2QvaGg0MDUvaGg0MDUuYwppbmRleCA5ZmM0MWM4Li5lZmFkZjE2IDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvaGg0MDUvaGg0MDUuYworKysgYi9ib2FyZC9lc2QvaGg0MDUvaGg0MDUuYwpAQCAtMzQ1LDcgKzM0NSw3IEBACiAJbXRkY3IodWljc3IsIDB4RkZGRkZGRkYpOyAgICAgICAvKiBjbGVhciBhbGwgaW50cyAqLwogCW10ZGNyKHVpY2VyLCAweDAwMDAwMDAwKTsgICAgICAgLyogZGlzYWJsZSBhbGwgaW50cyAqLwogCW10ZGNyKHVpY2NyLCAweDAwMDAwMDAwKTsgICAgICAgLyogc2V0IGFsbCB0byBiZSBub24tY3JpdGljYWwqLwotCW10ZGNyKHVpY3ByLCBDRkdfVUlDMF9QT0xBUklUWSk7Lyogc2V0IGludCBwb2xhcml0aWVzICovCisJbXRkY3IodWljcHIsIENPTkZJR19TWVNfVUlDMF9QT0xBUklUWSk7Lyogc2V0IGludCBwb2xhcml0aWVzICovCiAJbXRkY3IodWljdHIsIDB4MTAwMDAwMDApOyAgICAgICAvKiBzZXQgaW50IHRyaWdnZXIgbGV2ZWxzICovCiAJbXRkY3IodWljdmNyLCAweDAwMDAwMDAxKTsgICAgICAvKiBzZXQgdmVjdCBiYXNlPTAsSU5UMCBoaWdoZXN0IHByaW9yaXR5Ki8KIAltdGRjcih1aWNzciwgMHhGRkZGRkZGRik7ICAgICAgIC8qIGNsZWFyIGFsbCBpbnRzICovCkBAIC0zNjMsMjYgKzM2MywyNiBAQAogCWludCBpOwogCiAJdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKmZwZ2FfY3RybCA9Ci0JCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ0ZHX0ZQR0FfQkFTRV9BRERSICsgQ0ZHX0ZQR0FfQ1RSTCk7CisJCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUiArIENPTkZJR19TWVNfRlBHQV9DVFJMKTsKIAl2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqZnBnYV9zdGF0dXMgPQotCQkodW5zaWduZWQgc2hvcnQgKikoKHVsb25nKUNGR19GUEdBX0JBU0VfQUREUiArIENGR19GUEdBX0NUUkwgKyAyKTsKKwkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSICsgQ09ORklHX1NZU19GUEdBX0NUUkwgKyAyKTsKIAogCWlmIChnZC0+Ym9hcmRfdHlwZSA+PSAyKSB7Ci0JCWlmICgqZnBnYV9zdGF0dXMgJiBDRkdfRlBHQV9TVEFUVVNfQ0ZfREVURUNUKSB7Ci0JCQlpZiAoISgqZnBnYV9jdHJsICYgQ0ZHX0ZQR0FfQ1RSTF9DRl9CVVNfRU4pKSB7Ci0JCQkJKmZwZ2FfY3RybCAmPSB+Q0ZHX0ZQR0FfQ1RSTF9DRl9QV1JOOworCQlpZiAoKmZwZ2Ffc3RhdHVzICYgQ09ORklHX1NZU19GUEdBX1NUQVRVU19DRl9ERVRFQ1QpIHsKKwkJCWlmICghKCpmcGdhX2N0cmwgJiBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9DRl9CVVNfRU4pKSB7CisJCQkJKmZwZ2FfY3RybCAmPSB+Q09ORklHX1NZU19GUEdBX0NUUkxfQ0ZfUFdSTjsKIAogCQkJCWZvciAoaT0wOyBpPDMwMDsgaSsrKQogCQkJCQl1ZGVsYXkoMTAwMCk7CiAKLQkJCQkqZnBnYV9jdHJsIHw9IENGR19GUEdBX0NUUkxfQ0ZfQlVTX0VOOworCQkJCSpmcGdhX2N0cmwgfD0gQ09ORklHX1NZU19GUEdBX0NUUkxfQ0ZfQlVTX0VOOwogCiAJCQkJZm9yIChpPTA7IGk8MjA7IGkrKykKIAkJCQkJdWRlbGF5KDEwMDApOwogCQkJfQogCQl9IGVsc2UgewotCQkJKmZwZ2FfY3RybCAmPSB+Q0ZHX0ZQR0FfQ1RSTF9DRl9CVVNfRU47Ci0JCQkqZnBnYV9jdHJsIHw9IENGR19GUEdBX0NUUkxfQ0ZfUFdSTjsKKwkJCSpmcGdhX2N0cmwgJj0gfkNPTkZJR19TWVNfRlBHQV9DVFJMX0NGX0JVU19FTjsKKwkJCSpmcGdhX2N0cmwgfD0gQ09ORklHX1NZU19GUEdBX0NUUkxfQ0ZfUFdSTjsKIAkJfQogCX0KIApAQCAtMzkyLDExICszOTIsMTEgQEAKIGludCBtaXNjX2luaXRfciAodm9pZCkKIHsKIAl2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqZnBnYV9jdHJsID0KLQkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDRkdfRlBHQV9CQVNFX0FERFIgKyBDRkdfRlBHQV9DVFJMKTsKKwkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSICsgQ09ORklHX1NZU19GUEdBX0NUUkwpOwogCXZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICpsY2RfY29udHJhc3QgPQotCQkodW5zaWduZWQgc2hvcnQgKikoKHVsb25nKUNGR19GUEdBX0JBU0VfQUREUiArIENGR19GUEdBX0NUUkwgKyA0KTsKKwkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSICsgQ09ORklHX1NZU19GUEdBX0NUUkwgKyA0KTsKIAl2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqbGNkX2JhY2tsaWdodCA9Ci0JCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ0ZHX0ZQR0FfQkFTRV9BRERSICsgQ0ZHX0ZQR0FfQ1RSTCArIDYpOworCQkodW5zaWduZWQgc2hvcnQgKikoKHVsb25nKUNPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0ZQR0FfQ1RSTCArIDYpOwogCXVuc2lnbmVkIGNoYXIgKmRzdDsKIAl1bG9uZyBsZW4gPSBzaXplb2YoZnBnYWRhdGEpOwogCWludCBzdGF0dXM7CkBAIC00MDUsOCArNDA1LDggQEAKIAljaGFyICpzdHI7CiAJdW5zaWduZWQgbG9uZyBjb250cmFzdDAgPSAweGZmZmZmZmZmOwogCi0JZHN0ID0gbWFsbG9jKENGR19GUEdBX01BWF9TSVpFKTsKLQlpZiAoZ3VuemlwIChkc3QsIENGR19GUEdBX01BWF9TSVpFLCAodWNoYXIgKilmcGdhZGF0YSwgJmxlbikgIT0gMCkgeworCWRzdCA9IG1hbGxvYyhDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUpOworCWlmIChndW56aXAgKGRzdCwgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFLCAodWNoYXIgKilmcGdhZGF0YSwgJmxlbikgIT0gMCkgewogCQlwcmludGYgKCJHVU5aSVAgRVJST1IgLSBtdXN0IFJFU0VUIGJvYXJkIHRvIHJlY292ZXJcbiIpOwogCQlkb19yZXNldCAoTlVMTCwgMCwgMCwgTlVMTCk7CiAJfQpAQCAtNDc0LDIyICs0NzQsMjIgQEAKIAkvKgogCSAqIFNldHVwIGFuZCBlbmFibGUgRUVQUk9NIHdyaXRlIHByb3RlY3Rpb24KIAkgKi8KLQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDRkdfRUVQUk9NX1dQKTsKKwlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDT05GSUdfU1lTX0VFUFJPTV9XUCk7CiAKIAkvKgogCSAqIFJlc2V0IHRvdWNoLXNjcmVlbiBjb250cm9sbGVyCiAJICovCi0Jb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNGR19UT1VDSF9SU1QpOworCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX1RPVUNIX1JTVCk7CiAJdWRlbGF5KDEwMDApOwotCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19UT1VDSF9SU1QpOworCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfVE9VQ0hfUlNUKTsKIAogCS8qCiAJICogRW5hYmxlIHBvd2VyIG9uIFBTLzIgaW50ZXJmYWNlICh3aXRoIHJlc2V0KQogCSAqLwotCSpmcGdhX2N0cmwgJj0gfihDRkdfRlBHQV9DVFJMX1BTMl9QV1IpOworCSpmcGdhX2N0cmwgJj0gfihDT05GSUdfU1lTX0ZQR0FfQ1RSTF9QUzJfUFdSKTsKIAlmb3IgKGk9MDtpPDUwMDtpKyspCiAJCXVkZWxheSgxMDAwKTsKLQkqZnBnYV9jdHJsIHw9IChDRkdfRlBHQV9DVFJMX1BTMl9QV1IpOworCSpmcGdhX2N0cmwgfD0gKENPTkZJR19TWVNfRlBHQV9DVFJMX1BTMl9QV1IpOwogCiAJLyoKIAkgKiBHZXQgY29udHJhc3QgdmFsdWUgZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZQpAQCAtNTEyLDExICs1MTIsMTEgQEAKIAkJLyoKIAkJICogU3dpdGNoIGJhY2tsaWdodCBvbgogCQkgKi8KLQkJKmZwZ2FfY3RybCB8PSBDRkdfRlBHQV9DVFJMX1ZHQTBfQkw7CisJCSpmcGdhX2N0cmwgfD0gQ09ORklHX1NZU19GUEdBX0NUUkxfVkdBMF9CTDsKIAkJKmxjZF9iYWNrbGlnaHQgPSAweDAwMDA7CiAKIAkJbGNkX3NldHVwKDEsIDApOwotCQlsY2RfaW5pdCgodWNoYXIgKilDRkdfTENEX0JJR19SRUcsICh1Y2hhciAqKUNGR19MQ0RfQklHX01FTSwKKwkJbGNkX2luaXQoKHVjaGFyICopQ09ORklHX1NZU19MQ0RfQklHX1JFRywgKHVjaGFyICopQ09ORklHX1NZU19MQ0RfQklHX01FTSwKIAkJCSByZWdzXzEzODA2XzEwMjRfNzY4XzhicHAsCiAJCQkgc2l6ZW9mKHJlZ3NfMTM4MDZfMTAyNF83NjhfOGJwcCkvc2l6ZW9mKHJlZ3NfMTM4MDZfMTAyNF83NjhfOGJwcFswXSksCiAJCQkgbG9nb19ibXBfMTAyNCwgc2l6ZW9mKGxvZ29fYm1wXzEwMjQpKTsKQEAgLTUyNCwxMSArNTI0LDExIEBACiAJCS8qCiAJCSAqIFN3aXRjaCBiYWNrbGlnaHQgb24KIAkJICovCi0JCSpmcGdhX2N0cmwgJj0gfkNGR19GUEdBX0NUUkxfVkdBMF9CTDsKKwkJKmZwZ2FfY3RybCAmPSB+Q09ORklHX1NZU19GUEdBX0NUUkxfVkdBMF9CTDsKIAkJKmxjZF9iYWNrbGlnaHQgPSAweDAwMDA7CiAKIAkJbGNkX3NldHVwKDEsIDApOwotCQlsY2RfaW5pdCgodWNoYXIgKilDRkdfTENEX0JJR19SRUcsICh1Y2hhciAqKUNGR19MQ0RfQklHX01FTSwKKwkJbGNkX2luaXQoKHVjaGFyICopQ09ORklHX1NZU19MQ0RfQklHX1JFRywgKHVjaGFyICopQ09ORklHX1NZU19MQ0RfQklHX01FTSwKIAkJCSByZWdzXzEzODA2XzY0MF80ODBfMTZicHAsCiAJCQkgc2l6ZW9mKHJlZ3NfMTM4MDZfNjQwXzQ4MF8xNmJwcCkvc2l6ZW9mKHJlZ3NfMTM4MDZfNjQwXzQ4MF8xNmJwcFswXSksCiAJCQkgbG9nb19ibXBfNjQwLCBzaXplb2YobG9nb19ibXBfNjQwKSk7CkBAIC01NDUsNyArNTQ1LDcgQEAKIAkJLyoKIAkJICogU3dpdGNoIGJhY2tsaWdodCBvbgogCQkgKi8KLQkJKmZwZ2FfY3RybCB8PSBDRkdfRlBHQV9DVFJMX1ZHQTBfQkwgfCBDRkdfRlBHQV9DVFJMX1ZHQTBfQkxfTU9ERTsKKwkJKmZwZ2FfY3RybCB8PSBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9WR0EwX0JMIHwgQ09ORklHX1NZU19GUEdBX0NUUkxfVkdBMF9CTF9NT0RFOwogCQkvKgogCQkgKiBTZXQgbGNkIGNsb2NrIChzbWFsbCBlcHNvbikKIAkJICovCkBAIC01NTMsNyArNTUzLDcgQEAKIAkJdWRlbGF5KDEwMCk7ICAgICAgICAgICAgICAgLyogd2FpdCBmb3IgMTAwIHVzICovCiAKIAkJbGNkX3NldHVwKDAsIDEpOwotCQlsY2RfaW5pdCgodWNoYXIgKilDRkdfTENEX1NNQUxMX1JFRywgKHVjaGFyICopQ0ZHX0xDRF9TTUFMTF9NRU0sCisJCWxjZF9pbml0KCh1Y2hhciAqKUNPTkZJR19TWVNfTENEX1NNQUxMX1JFRywgKHVjaGFyICopQ09ORklHX1NZU19MQ0RfU01BTExfTUVNLAogCQkJIHJlZ3NfMTM3MDVfMzIwXzI0MF84YnBwLAogCQkJIHNpemVvZihyZWdzXzEzNzA1XzMyMF8yNDBfOGJwcCkvc2l6ZW9mKHJlZ3NfMTM3MDVfMzIwXzI0MF84YnBwWzBdKSwKIAkJCSBsb2dvX2JtcF8zMjBfOGJwcCwgc2l6ZW9mKGxvZ29fYm1wXzMyMF84YnBwKSk7CkBAIC01NzAsMTQgKzU3MCwxNCBAQAogCQkvKgogCQkgKiBTd2l0Y2ggYmFja2xpZ2h0IG9uCiAJCSAqLwotCQkqZnBnYV9jdHJsIHw9IENGR19GUEdBX0NUUkxfVkdBMF9CTCB8IENGR19GUEdBX0NUUkxfVkdBMF9CTF9NT0RFOworCQkqZnBnYV9jdHJsIHw9IENPTkZJR19TWVNfRlBHQV9DVFJMX1ZHQTBfQkwgfCBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9WR0EwX0JMX01PREU7CiAJCS8qCiAJCSAqIFNldCBsY2QgY2xvY2sgKHNtYWxsIGVwc29uKSwgZW5hYmxlIDEtd2lyZSBpbnRlcmZhY2UKIAkJICovCi0JCSpmcGdhX2N0cmwgfD0gTENEX0NMS18wODMzMCB8IENGR19GUEdBX0NUUkxfT1dfRU5BQkxFOworCQkqZnBnYV9jdHJsIHw9IExDRF9DTEtfMDgzMzAgfCBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9PV19FTkFCTEU7CiAKIAkJbGNkX3NldHVwKDAsIDEpOwotCQlsY2RfaW5pdCgodWNoYXIgKilDRkdfTENEX1NNQUxMX1JFRywgKHVjaGFyICopQ0ZHX0xDRF9TTUFMTF9NRU0sCisJCWxjZF9pbml0KCh1Y2hhciAqKUNPTkZJR19TWVNfTENEX1NNQUxMX1JFRywgKHVjaGFyICopQ09ORklHX1NZU19MQ0RfU01BTExfTUVNLAogCQkJIHJlZ3NfMTM3MDRfMzIwXzI0MF80YnBwLAogCQkJIHNpemVvZihyZWdzXzEzNzA0XzMyMF8yNDBfNGJwcCkvc2l6ZW9mKHJlZ3NfMTM3MDRfMzIwXzI0MF80YnBwWzBdKSwKIAkJCSBsb2dvX2JtcF8zMjAsIHNpemVvZihsb2dvX2JtcF8zMjApKTsKQEAgLTY0NywyNyArNjQ3LDI3IEBACiB2b2lkIGlkZV9zZXRfcmVzZXQoaW50IG9uKQogewogCXZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICpmcGdhX21vZGUgPQotCQkodW5zaWduZWQgc2hvcnQgKikoKHVsb25nKUNGR19GUEdBX0JBU0VfQUREUiArIENGR19GUEdBX0NUUkwpOworCQkodW5zaWduZWQgc2hvcnQgKikoKHVsb25nKUNPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0ZQR0FfQ1RSTCk7CiAJdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKmZwZ2Ffc3RhdHVzID0KLQkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDRkdfRlBHQV9CQVNFX0FERFIgKyBDRkdfRlBHQV9DVFJMICsgMik7CisJCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUiArIENPTkZJR19TWVNfRlBHQV9DVFJMICsgMik7CiAKLQlpZiAoKChnZC0+Ym9hcmRfdHlwZSA+PSAyKSAmJiAoKmZwZ2Ffc3RhdHVzICYgQ0ZHX0ZQR0FfU1RBVFVTX0NGX0RFVEVDVCkpIHx8CisJaWYgKCgoZ2QtPmJvYXJkX3R5cGUgPj0gMikgJiYgKCpmcGdhX3N0YXR1cyAmIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfQ0ZfREVURUNUKSkgfHwKIAkgICAgKGdkLT5ib2FyZF90eXBlIDwgMikpIHsKIAkJLyoKIAkJICogQXNzZXJ0IG9yIGRlYXNzZXJ0IENvbXBhY3RGbGFzaCBSZXNldCBQaW4KIAkJICovCiAJCWlmIChvbikgewkJLyogYXNzZXJ0IFJFU0VUICovCiAJCQljZl9lbmFibGUoKTsKLQkJCSpmcGdhX21vZGUgJj0gfihDRkdfRlBHQV9DVFJMX0NGX1JFU0VUKTsKKwkJCSpmcGdhX21vZGUgJj0gfihDT05GSUdfU1lTX0ZQR0FfQ1RSTF9DRl9SRVNFVCk7CiAJCX0gZWxzZSB7CQkvKiByZWxlYXNlIFJFU0VUICovCi0JCQkqZnBnYV9tb2RlIHw9IENGR19GUEdBX0NUUkxfQ0ZfUkVTRVQ7CisJCQkqZnBnYV9tb2RlIHw9IENPTkZJR19TWVNfRlBHQV9DVFJMX0NGX1JFU0VUOwogCQl9CiAJfQogfQogI2VuZGlmIC8qIENPTkZJR19JREVfUkVTRVQgKi8KIAogCi0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9XUkVOKQogLyogSW5wdXQ6IDxkZXZfYWRkcj4gIEkyQyBhZGRyZXNzIG9mIEVFUFJPTSBkZXZpY2UgdG8gZW5hYmxlLgogICogICAgICAgICA8c3RhdGU+ICAgICAtMTogZGVsaXZlciBjdXJyZW50IHN0YXRlCiAgKgkgICAgICAgICAgICAgICAwOiBkaXNhYmxlIHdyaXRlCkBAIC02NzgsMjMgKzY3OCwyMyBAQAogICovCiBpbnQgZWVwcm9tX3dyaXRlX2VuYWJsZSAodW5zaWduZWQgZGV2X2FkZHIsIGludCBzdGF0ZSkKIHsKLQlpZiAoQ0ZHX0kyQ19FRVBST01fQUREUiAhPSBkZXZfYWRkcikgeworCWlmIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiAhPSBkZXZfYWRkcikgewogCQlyZXR1cm4gLTE7CiAJfSBlbHNlIHsKIAkJc3dpdGNoIChzdGF0ZSkgewogCQljYXNlIDE6CiAJCQkvKiBFbmFibGUgd3JpdGUgYWNjZXNzLCBjbGVhciBiaXQgR1BJT19TSU5UMi4gKi8KLQkJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfRUVQUk9NX1dQKTsKKwkJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX0VFUFJPTV9XUCk7CiAJCQlzdGF0ZSA9IDA7CiAJCQlicmVhazsKIAkJY2FzZSAwOgogCQkJLyogRGlzYWJsZSB3cml0ZSBhY2Nlc3MsIHNldCBiaXQgR1BJT19TSU5UMi4gKi8KLQkJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19FRVBST01fV1ApOworCQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19FRVBST01fV1ApOwogCQkJc3RhdGUgPSAwOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQkvKiBSZWFkIGN1cnJlbnQgc3RhdHVzIGJhY2suICovCi0JCQlzdGF0ZSA9ICgwID09IChpbjMyKEdQSU8wX09SKSAmIENGR19FRVBST01fV1ApKTsKKwkJCXN0YXRlID0gKDAgPT0gKGluMzIoR1BJTzBfT1IpICYgQ09ORklHX1NZU19FRVBST01fV1ApKTsKIAkJCWJyZWFrOwogCQl9CiAJfQpAQCAtNzA4LDIxICs3MDgsMjEgQEAKIAogCWlmIChxdWVyeSkgewogCQkvKiBRdWVyeSB3cml0ZSBhY2Nlc3Mgc3RhdGUuICovCi0JCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ0ZHX0kyQ19FRVBST01fQUREUiwgLTEpOworCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAtMSk7CiAJCWlmIChzdGF0ZSA8IDApIHsKIAkJCXB1dHMgKCJRdWVyeSBvZiB3cml0ZSBhY2Nlc3Mgc3RhdGUgZmFpbGVkLlxuIik7CiAJCX0gZWxzZSB7CiAJCQlwcmludGYgKCJXcml0ZSBhY2Nlc3MgZm9yIGRldmljZSAweCUweCBpcyAlc2FibGVkLlxuIiwKLQkJCQlDRkdfSTJDX0VFUFJPTV9BRERSLCBzdGF0ZSA/ICJlbiIgOiAiZGlzIik7CisJCQkJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIHN0YXRlID8gImVuIiA6ICJkaXMiKTsKIAkJCXN0YXRlID0gMDsKIAkJfQogCX0gZWxzZSB7CiAJCWlmICgnMCcgPT0gYXJndlsxXVswXSkgewogCQkJLyogRGlzYWJsZSB3cml0ZSBhY2Nlc3MuICovCi0JCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENGR19JMkNfRUVQUk9NX0FERFIsIDApOworCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgMCk7CiAJCX0gZWxzZSB7CiAJCQkvKiBFbmFibGUgd3JpdGUgYWNjZXNzLiAqLwotCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDRkdfSTJDX0VFUFJPTV9BRERSLCAxKTsKKwkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIDEpOwogCQl9CiAJCWlmIChzdGF0ZSA8IDApIHsKIAkJCXB1dHMgKCJTZXR1cCBvZiB3cml0ZSBhY2Nlc3Mgc3RhdGUgZmFpbGVkLlxuIik7CkBAIC03MzUsNyArNzM1LDcgQEAKIFVfQk9PVF9DTUQoZWVwd3JlbiwJMiwJMCwJZG9fZWVwX3dyZW4sCiAJICAgImVlcHdyZW4gLSBFbmFibGUgLyBkaXNhYmxlIC8gcXVlcnkgRUVQUk9NIHdyaXRlIGFjY2Vzc1xuIiwKIAkgICBOVUxMKTsKLSNlbmRpZiAvKiAjaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pICovCisjZW5kaWYgLyogI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikgKi8KIAogCiAjaWZkZWYgQ09ORklHX1ZJREVPX1NNNTAxCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvaHViNDA1L2ZsYXNoLmMgYi9ib2FyZC9lc2QvaHViNDA1L2ZsYXNoLmMKaW5kZXggODlhZjExOS4uMjc0YWRhOSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2h1YjQwNS9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9odWI0MDUvZmxhc2guYwpAQCAtNDgsNyArNDgsNyBAQAogCWludCBzaXplX3ZhbCA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTkxLDcgKzkxLDcgQEAKIAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgIC1DRkdfTU9OSVRPUl9MRU4sCisJCQkgICAgLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCQkgICAgMHhmZmZmZmZmZiwKIAkJCSAgICAmZmxhc2hfaW5mb1swXSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9odWI0MDUvaHViNDA1LmMgYi9ib2FyZC9lc2QvaHViNDA1L2h1YjQwNS5jCmluZGV4IDM4YTZmN2EuLjg3ODVlNmMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9odWI0MDUvaHViNDA1LmMKKysrIGIvYm9hcmQvZXNkL2h1YjQwNS9odWI0MDUuYwpAQCAtMTI1LDIzICsxMjUsMjMgQEAKIAkgKiBTZXQgUlMyMzIvUlM0MjIgY29udHJvbCAoUlMyMzIgPSBoaWdoIG9uIEdQSU8pCiAJICovCiAJdmFsID0gaW4zMihHUElPMF9PUik7Ci0JdmFsICY9IH4oQ0ZHX1VBUlQyX1JTMjMyIHwgQ0ZHX1VBUlQzX1JTMjMyIHwgQ0ZHX1VBUlQ0X1JTMjMyIHwgQ0ZHX1VBUlQ1X1JTMjMyKTsKKwl2YWwgJj0gfihDT05GSUdfU1lTX1VBUlQyX1JTMjMyIHwgQ09ORklHX1NZU19VQVJUM19SUzIzMiB8IENPTkZJR19TWVNfVUFSVDRfUlMyMzIgfCBDT05GSUdfU1lTX1VBUlQ1X1JTMjMyKTsKIAogCXN0ciA9IGdldGVudigicGh5czAiKTsKIAlpZiAoIXN0ciB8fCAoc3RyICYmIChzdHJbMF0gPT0gJzAnKSkpCi0JCXZhbCB8PSBDRkdfVUFSVDJfUlMyMzI7CisJCXZhbCB8PSBDT05GSUdfU1lTX1VBUlQyX1JTMjMyOwogCiAJc3RyID0gZ2V0ZW52KCJwaHlzMSIpOwogCWlmICghc3RyIHx8IChzdHIgJiYgKHN0clswXSA9PSAnMCcpKSkKLQkJdmFsIHw9IENGR19VQVJUM19SUzIzMjsKKwkJdmFsIHw9IENPTkZJR19TWVNfVUFSVDNfUlMyMzI7CiAKIAlzdHIgPSBnZXRlbnYoInBoeXMyIik7CiAJaWYgKCFzdHIgfHwgKHN0ciAmJiAoc3RyWzBdID09ICcwJykpKQotCQl2YWwgfD0gQ0ZHX1VBUlQ0X1JTMjMyOworCQl2YWwgfD0gQ09ORklHX1NZU19VQVJUNF9SUzIzMjsKIAogCXN0ciA9IGdldGVudigicGh5czMiKTsKIAlpZiAoIXN0ciB8fCAoc3RyICYmIChzdHJbMF0gPT0gJzAnKSkpCi0JCXZhbCB8PSBDRkdfVUFSVDVfUlMyMzI7CisJCXZhbCB8PSBDT05GSUdfU1lTX1VBUlQ1X1JTMjMyOwogCiAJb3V0MzIoR1BJTzBfT1IsIHZhbCk7CiAKQEAgLTE3NCw5ICsxNzQsOSBAQAogCS8qCiAJICogUmVzZXQgZXh0ZXJuYWwgRFVBUlRzCiAJICovCi0Jb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX0RVQVJUX1JTVCk7IC8qIHNldCByZXNldCB0byBoaWdoICovCisJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19EVUFSVF9SU1QpOyAvKiBzZXQgcmVzZXQgdG8gaGlnaCAqLwogCXVkZWxheSgxMCk7IC8qIHdhaXQgMTB1cyAqLwotCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfRFVBUlRfUlNUKTsgLyogc2V0IHJlc2V0IHRvIGxvdyAqLworCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX0RVQVJUX1JTVCk7IC8qIHNldCByZXNldCB0byBsb3cgKi8KIAl1ZGVsYXkoMTAwMCk7IC8qIHdhaXQgMW1zICovCiAKIAkvKgpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL21lY3A1MjAwL21lY3A1MjAwLmMgYi9ib2FyZC9lc2QvbWVjcDUyMDAvbWVjcDUyMDAuYwppbmRleCBmZjQ0YWJkLi4zMTkyNDUwIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvbWVjcDUyMDAvbWVjcDUyMDAuYworKysgYi9ib2FyZC9lc2QvbWVjcDUyMDAvbWVjcDUyMDAuYwpAQCAtODEsNyArODEsNyBAQAogCiAvKgogICogQVRURU5USU9OOiBBbHRob3VnaCBwYXJ0aWFsbHkgcmVmZXJlbmNlZCBpbml0ZHJhbSBkb2VzIE5PVCBtYWtlIHJlYWwgdXNlCi0gKiAgICAgICAgICAgIHVzZSBvZiBDRkdfU0RSQU1fQkFTRS4gVGhlIGNvZGUgZG9lcyBub3Qgd29yayBpZiBDRkdfU0RSQU1fQkFTRQorICogICAgICAgICAgICB1c2Ugb2YgQ09ORklHX1NZU19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENPTkZJR19TWVNfU0RSQU1fQkFTRQogICogICAgICAgICAgICBpcyBzb21ldGhpbmcgZWxzZSB0aGFuIDB4MDAwMDAwMDAuCiAgKi8KIApAQCAtMTA2LDkgKzEwNiw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMCBvbmx5ICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKQEAgLTE0Myw5ICsxNDMsOSBAQAogI2lmIDAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMSBvbmx5ICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JZ2V0X3JhbV9zaXplKCh1bG9uZyAqKSAoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCWdldF9yYW1fc2l6ZSgodWxvbmcgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JZ2V0X3JhbV9zaXplKCh1bG9uZyAqKSAoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCWdldF9yYW1fc2l6ZSgodWxvbmcgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMCk7CiAjZW5kaWYKIAkvKiBzZXQgU0RSQU0gQ1MxIHNpemUgYWNjb3JkaW5nIHRvIHRoZSBhbW91bnQgb2YgUkFNIGZvdW5kICovCkBAIC0xNzUsMTQgKzE3NSwxNCBAQAogCiB2b2lkIGZsYXNoX2FmdGVyaW5pdCh1bG9uZyBzaXplKQogewotCWlmIChzaXplID09IENGR19GTEFTSF9TSVpFKSB7CisJaWYgKHNpemUgPT0gQ09ORklHX1NZU19GTEFTSF9TSVpFKSB7CiAJCS8qIGFkanVzdCBtYXBwaW5nICovCiAJCSoodnVfbG9uZyAqKSBNUEM1WFhYX0JPT1RDU19TVEFSVCA9CiAJCSAgICAqKHZ1X2xvbmcgKikgTVBDNVhYWF9DUzBfU1RBUlQgPQotCQkgICAgU1RBUlRfUkVHKENGR19CT09UQ1NfU1RBUlQgfCBzaXplKTsKKwkJICAgIFNUQVJUX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB8IHNpemUpOwogCQkqKHZ1X2xvbmcgKikgTVBDNVhYWF9CT09UQ1NfU1RPUCA9CiAJCSAgICAqKHZ1X2xvbmcgKikgTVBDNVhYWF9DUzBfU1RPUCA9Ci0JCSAgICBTVE9QX1JFRyhDRkdfQk9PVENTX1NUQVJUIHwgc2l6ZSwgc2l6ZSk7CisJCSAgICBTVE9QX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB8IHNpemUsIHNpemUpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL29jcnRjL2ZsYXNoLmMgYi9ib2FyZC9lc2Qvb2NydGMvZmxhc2guYwppbmRleCBjM2Q4YmVjLi5lNzYzYTg5IDEwMDY0NAotLS0gYS9ib2FyZC9lc2Qvb2NydGMvZmxhc2guYworKysgYi9ib2FyZC9lc2Qvb2NydGMvZmxhc2guYwpAQCAtNDgsNyArNDgsNyBAQAogCWludCBzaXplX3ZhbCA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL3BjaTQwNS9mbGFzaC5jIGIvYm9hcmQvZXNkL3BjaTQwNS9mbGFzaC5jCmluZGV4IDNiMjE3ODEuLjkwNTg0ODMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9wY2k0MDUvZmxhc2guYworKysgYi9ib2FyZC9lc2QvcGNpNDA1L2ZsYXNoLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIAlpbnQgc2l6ZV92YWwgPSAwOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvcGNpNDA1L3BjaTQwNS5jIGIvYm9hcmQvZXNkL3BjaTQwNS9wY2k0MDUuYwppbmRleCBmOGQ3YzI4Li40ZGI3MDUyIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvcGNpNDA1L3BjaTQwNS5jCisrKyBiL2JvYXJkL2VzZC9wY2k0MDUvcGNpNDA1LmMKQEAgLTU3LDExICs1NywxMSBAQAogICovCiAjaW5jbHVkZSAiLi4vY29tbW9uL2ZwZ2EuYyIKIAotI2RlZmluZSBGUEdBX0RPTkVfU1RBVEVfVjExIChpbjMyKEdQSU8wX0lSKSAmIENGR19GUEdBX0RPTkUpCi0jZGVmaW5lIEZQR0FfRE9ORV9TVEFURV9WMTIgKGluMzIoR1BJTzBfSVIpICYgQ0ZHX0ZQR0FfRE9ORV9WMTIpCisjZGVmaW5lIEZQR0FfRE9ORV9TVEFURV9WMTEgKGluMzIoR1BJTzBfSVIpICYgQ09ORklHX1NZU19GUEdBX0RPTkUpCisjZGVmaW5lIEZQR0FfRE9ORV9TVEFURV9WMTIgKGluMzIoR1BJTzBfSVIpICYgQ09ORklHX1NZU19GUEdBX0RPTkVfVjEyKQogCi0jZGVmaW5lIEZQR0FfSU5JVF9TVEFURV9WMTEgKGluMzIoR1BJTzBfSVIpICYgQ0ZHX0ZQR0FfSU5JVCkKLSNkZWZpbmUgRlBHQV9JTklUX1NUQVRFX1YxMiAoaW4zMihHUElPMF9JUikgJiBDRkdfRlBHQV9JTklUX1YxMikKKyNkZWZpbmUgRlBHQV9JTklUX1NUQVRFX1YxMSAoaW4zMihHUElPMF9JUikgJiBDT05GSUdfU1lTX0ZQR0FfSU5JVCkKKyNkZWZpbmUgRlBHQV9JTklUX1NUQVRFX1YxMiAoaW4zMihHUElPMF9JUikgJiBDT05GSUdfU1lTX0ZQR0FfSU5JVF9WMTIpCiAKIAogaW50IGJvYXJkX3JldmlzaW9uKHZvaWQpCkBAIC0xMzgsOCArMTM4LDggQEAKIAkgKiBGaXJzdCBwdWxsIGZwZ2EtcHJnIHBpbiBsb3csIHRvIGRpc2FibGUgZnBnYSBsb2dpYyAob24gdmVyc2lvbiAxLjIgYm9hcmQpCiAJICovCiAJb3V0MzIoR1BJTzBfT0RSLCAweDAwMDAwMDAwKTsgICAgICAgIC8qIG5vIG9wZW4gZHJhaW4gcGlucyAgICAgICovCi0Jb3V0MzIoR1BJTzBfVENSLCBDRkdfRlBHQV9QUkcpOyAgICAgIC8qIHNldHVwIGZvciBvdXRwdXQgICAgICAgICovCi0Jb3V0MzIoR1BJTzBfT1IsICBDRkdfRlBHQV9QUkcpOyAgICAgIC8qIHNldCBvdXRwdXQgcGlucyB0byBoaWdoICovCisJb3V0MzIoR1BJTzBfVENSLCBDT05GSUdfU1lTX0ZQR0FfUFJHKTsgICAgICAvKiBzZXR1cCBmb3Igb3V0cHV0ICAgICAgICAqLworCW91dDMyKEdQSU8wX09SLCAgQ09ORklHX1NZU19GUEdBX1BSRyk7ICAgICAgLyogc2V0IG91dHB1dCBwaW5zIHRvIGhpZ2ggKi8KIAlvdXQzMihHUElPMF9PUiwgMCk7ICAgICAgICAgICAgICAgICAgLyogcHVsbCBwcmcgbG93ICAgICAgICAgICAgKi8KIAogCS8qCkBAIC0yMDUsOCArMjA1LDggQEAKIAkgKiBGUEdBIGNhbiBiZSBnemlwIGNvbXByZXNzZWQgKG1hbGxvYykgYW5kIGJvb3RlZCB0aGlzIGxhdGUuCiAJICovCiAKLQlkc3QgPSBtYWxsb2MoQ0ZHX0ZQR0FfTUFYX1NJWkUpOwotCWlmIChndW56aXAgKGRzdCwgQ0ZHX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CisJZHN0ID0gbWFsbG9jKENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSk7CisJaWYgKGd1bnppcCAoZHN0LCBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CiAJCXByaW50ZiAoIkdVTlpJUCBFUlJPUiAtIG11c3QgUkVTRVQgYm9hcmQgdG8gcmVjb3ZlclxuIik7CiAJCWRvX3Jlc2V0IChOVUxMLCAwLCAwLCBOVUxMKTsKIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvcGY1MjAwL2ZsYXNoLmMgYi9ib2FyZC9lc2QvcGY1MjAwL2ZsYXNoLmMKaW5kZXggODE3OGI1Ni4uOTg1MDQ0NSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL3BmNTIwMC9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9wZjUyMDAvZmxhc2guYwpAQCAtMjMsNyArMjMsNyBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IEZMQVNIX1BPUlRfV0lEVEg7CiB0eXBlZGVmIHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0IEZMQVNIX1BPUlRfV0lEVEhWOwpAQCAtNjAsNyArNjAsNyBAQAogCWV4dGVybiB2b2lkIGZsYXNoX3ByZWluaXQodm9pZCk7CiAJZXh0ZXJuIHZvaWQgZmxhc2hfYWZ0ZXJpbml0KHVpbnQsIHVsb25nLCB1bG9uZyk7CiAKLQl1bG9uZyBmbGFzaGJhc2UgPSBDRkdfRkxBU0hfQkFTRTsKKwl1bG9uZyBmbGFzaGJhc2UgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAKIAlmbGFzaF9wcmVpbml0KCk7CiAKQEAgLTY5LDExICs2OSwxMSBAQAogCWZsYXNoX2luZm9baV0uc2l6ZSA9IGZsYXNoX2dldF9zaXplKChGUFcgKikgZmxhc2hiYXNlLCAmZmxhc2hfaW5mb1tpXSk7CiAJc2l6ZSArPSBmbGFzaF9pbmZvW2ldLnNpemU7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLQlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCi0JCSAgICAgIGZsYXNoX2dldF9pbmZvKENGR19NT05JVE9SX0JBU0UpKTsKKwlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJICAgICAgZmxhc2hfZ2V0X2luZm8oQ09ORklHX1NZU19NT05JVE9SX0JBU0UpKTsKICNlbmRpZgogCiAjaWZkZWYgIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKQEAgLTEwNywxNCArMTA3LDE0IEBACiAJaW50IGk7CiAJZmxhc2hfaW5mb190ICppbmZvOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCWluZm8gPSAmZmxhc2hfaW5mb1tpXTsKIAkJaWYgKChpbmZvLT5zaXplKSAmJiAoaW5mby0+c3RhcnRbMF0gPD0gYmFzZSkKIAkJICAgICYmIChiYXNlIDw9IGluZm8tPnN0YXJ0WzBdICsgaW5mby0+c2l6ZSAtIDEpKSB7CiAJCQlicmVhazsKIAkJfQogCX0KLQlyZXR1cm4gKGkgPT0gQ0ZHX01BWF9GTEFTSF9CQU5LUyA/IDAgOiBpbmZvKTsKKwlyZXR1cm4gKGkgPT0gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgPyAwIDogaW5mbyk7CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMzNiw3ICszMzYsNyBAQAogCQl1ZGVsYXkoMTAwMCk7CiAKIAkJd2hpbGUgKCgqYWRkciAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCXByaW50ZigiVGltZW91dFxuIik7CiAJCQkJaWYgKGludGVsKSB7CiAJCQkJCS8qIHN1c3BlbmQgZXJhc2UgICAgICAgICovCkBAIC0zNDcsMTQgKzM0NywxNCBAQAogCQkJCWJyZWFrOwogCQkJfQogCQkJLyogc2hvdyB0aGF0IHdlJ3JlIHdhaXRpbmcgKi8KLQkJCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENGR19IWikgeworCQkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ09ORklHX1NZU19IWikgewogCQkJCS8qIGV2ZXJ5IHNlY29uZCAqLwogCQkJCXB1dGMoJy4nKTsKIAkJCQlsYXN0ID0gZ2V0X3RpbWVyKDApOwogCQkJfQogCQl9CiAJCS8qIHNob3cgdGhhdCB3ZSdyZSB3YWl0aW5nICovCi0JCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENGR19IWikgeworCQlpZiAoKGdldF90aW1lcihsYXN0KSkgPiBDT05GSUdfU1lTX0haKSB7CiAJCQkvKiBldmVyeSBzZWNvbmQgKi8KIAkJCXB1dGMoJy4nKTsKIAkJCWxhc3QgPSBnZXRfdGltZXIoMCk7CkBAIC00NTIsNyArNDUyLDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJd2hpbGUgKHJlcyA9PSAwCiAJICAgICAgICYmICgqZGVzdCAmIChGUFcpIDB4MDA4MDAwODApICE9IChkYXRhICYgKEZQVykgMHgwMDgwMDA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmRlc3QgPSAoRlBXKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAJCQlyZXMgPSAxOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvcGY1MjAwL3BmNTIwMC5jIGIvYm9hcmQvZXNkL3BmNTIwMC9wZjUyMDAuYwppbmRleCBjNGMwMjIxLi5mNzk2MmFmIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvcGY1MjAwL3BmNTIwMC5jCisrKyBiL2JvYXJkL2VzZC9wZjUyMDAvcGY1MjAwLmMKQEAgLTgxLDcgKzgxLDcgQEAKIAogLyoKICAqIEFUVEVOVElPTjogQWx0aG91Z2ggcGFydGlhbGx5IHJlZmVyZW5jZWQgaW5pdGRyYW0gZG9lcyBOT1QgbWFrZSByZWFsIHVzZQotICogICAgICAgICAgICB1c2Ugb2YgQ0ZHX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ0ZHX1NEUkFNX0JBU0UKKyAqICAgICAgICAgICAgdXNlIG9mIENPTkZJR19TWVNfU0RSQU1fQkFTRS4gVGhlIGNvZGUgZG9lcyBub3Qgd29yayBpZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UKICAqICAgICAgICAgICAgaXMgc29tZXRoaW5nIGVsc2UgdGhhbiAweDAwMDAwMDAwLgogICovCiAKQEAgLTEwNiw5ICsxMDYsOSBAQAogCiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzAgb25seSAqLwogCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopIENGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCXNkcmFtX3N0YXJ0KDEpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopIENGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CkBAIC0xNDQsOSArMTQ0LDkgQEAKICNpZiAwCiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzEgb25seSAqLwogCXNkcmFtX3N0YXJ0KDApOwotCWdldF9yYW1fc2l6ZSgodWxvbmcgKikgKENGR19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKKwlnZXRfcmFtX3NpemUoKHVsb25nICopIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOwogCXNkcmFtX3N0YXJ0KDEpOwotCWdldF9yYW1fc2l6ZSgodWxvbmcgKikgKENGR19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKKwlnZXRfcmFtX3NpemUoKHVsb25nICopIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOwogCXNkcmFtX3N0YXJ0KDApOwogI2VuZGlmCiAJLyogc2V0IFNEUkFNIENTMSBzaXplIGFjY29yZGluZyB0byB0aGUgYW1vdW50IG9mIFJBTSBmb3VuZCAqLwpAQCAtMTgwLDEwICsxODAsMTAgQEAKIAkJLyogYWRqdXN0IG1hcHBpbmcgKi8KIAkJKih2dV9sb25nICopIE1QQzVYWFhfQk9PVENTX1NUQVJUID0KIAkJICAgICoodnVfbG9uZyAqKSBNUEM1WFhYX0NTMF9TVEFSVCA9Ci0JCSAgICBTVEFSVF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCB8IHNpemUpOworCQkgICAgU1RBUlRfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJUIHwgc2l6ZSk7CiAJCSoodnVfbG9uZyAqKSBNUEM1WFhYX0JPT1RDU19TVE9QID0KIAkJICAgICoodnVfbG9uZyAqKSBNUEM1WFhYX0NTMF9TVE9QID0KLQkJICAgIFNUT1BfUkVHKENGR19CT09UQ1NfU1RBUlQgfCBzaXplLCBzaXplKTsKKwkJICAgIFNUT1BfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJUIHwgc2l6ZSwgc2l6ZSk7CiAJfQogfQogCkBAIC0yNTgsMTAgKzI1OCwxMCBAQAogCQkqKHZ1X2xvbmcgKikgTVBDNVhYWF9TSU1QTEVJT19HUElPX0RBVEFfT1VUUFVUIHw9IEdQSU9fVVNCMDsKIAkJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKIAl9Ci0JKih2dV9jaGFyICopIENGR19DUzFfU1RBUlQgPSAweDAyOwkvKiBSZWQgUG93ZXIgTEVEIG9uICovCisJKih2dV9jaGFyICopIENPTkZJR19TWVNfQ1MxX1NUQVJUID0gMHgwMjsJLyogUmVkIFBvd2VyIExFRCBvbiAqLwogCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7CiAKLQkqKHZ1X2NoYXIgKikgKENGR19DUzFfU1RBUlQgKyAxKSA9IDB4MDI7CS8qIERpc2FibGUgZHJpdmVyIGZvciBLQjExICovCisJKih2dV9jaGFyICopIChDT05GSUdfU1lTX0NTMV9TVEFSVCArIDEpID0gMHgwMjsJLyogRGlzYWJsZSBkcml2ZXIgZm9yIEtCMTEgKi8KIAlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogfQogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvcGx1NDA1L2ZsYXNoLmMgYi9ib2FyZC9lc2QvcGx1NDA1L2ZsYXNoLmMKaW5kZXggODlhZjExOS4uMjc0YWRhOSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL3BsdTQwNS9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9wbHU0MDUvZmxhc2guYwpAQCAtNDgsNyArNDgsNyBAQAogCWludCBzaXplX3ZhbCA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTkxLDcgKzkxLDcgQEAKIAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgIC1DRkdfTU9OSVRPUl9MRU4sCisJCQkgICAgLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCQkgICAgMHhmZmZmZmZmZiwKIAkJCSAgICAmZmxhc2hfaW5mb1swXSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9wbHU0MDUvcGx1NDA1LmMgYi9ib2FyZC9lc2QvcGx1NDA1L3BsdTQwNS5jCmluZGV4IDNkYjljMGEuLjYxMTg2YTggMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9wbHU0MDUvcGx1NDA1LmMKKysrIGIvYm9hcmQvZXNkL3BsdTQwNS9wbHU0MDUuYwpAQCAtMTEzLDggKzExMyw4IEBACiAJZ2QtPmJkLT5iaV9mbGFzaHN0YXJ0ID0gMCAtIGdkLT5iZC0+YmlfZmxhc2hzaXplOwogCWdkLT5iZC0+YmlfZmxhc2hvZmZzZXQgPSAwOwogCi0JZHN0ID0gbWFsbG9jKENGR19GUEdBX01BWF9TSVpFKTsKLQlpZiAoZ3VuemlwIChkc3QsIENGR19GUEdBX01BWF9TSVpFLCAodWNoYXIgKilmcGdhZGF0YSwgJmxlbikgIT0gMCkgeworCWRzdCA9IG1hbGxvYyhDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUpOworCWlmIChndW56aXAgKGRzdCwgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFLCAodWNoYXIgKilmcGdhZGF0YSwgJmxlbikgIT0gMCkgewogCQlwcmludGYgKCJHVU5aSVAgRVJST1IgLSBtdXN0IFJFU0VUIGJvYXJkIHRvIHJlY292ZXJcbiIpOwogCQlkb19yZXNldCAoTlVMTCwgMCwgMCwgTlVMTCk7CiAJfQpAQCAtMTc5LDIzICsxNzksMjMgQEAKIAkvKgogCSAqIFJlc2V0IGV4dGVybmFsIERVQVJUcwogCSAqLwotCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ0ZHX0RVQVJUX1JTVCk7CisJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDT05GSUdfU1lTX0RVQVJUX1JTVCk7CiAJdWRlbGF5KDEwKTsKLQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmIH5DRkdfRFVBUlRfUlNUKTsKKwlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmIH5DT05GSUdfU1lTX0RVQVJUX1JTVCk7CiAJdWRlbGF5KDEwMDApOwogCiAJLyoKIAkgKiBTZXQgTkFORC1GTEFTSCBHUElPIHNpZ25hbHMgdG8gZGVmYXVsdAogCSAqLwogCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwKLQkJIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmIH4oQ0ZHX05BTkRfQ0xFIHwgQ0ZHX05BTkRfQUxFKSk7Ci0Jb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDRkdfTkFORF9DRSk7CisJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiB+KENPTkZJR19TWVNfTkFORF9DTEUgfCBDT05GSUdfU1lTX05BTkRfQUxFKSk7CisJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkRfQ0UpOwogCiAJLyoKIAkgKiBTZXR1cCBFRVBST00gd3JpdGUgcHJvdGVjdGlvbgogCSAqLwotCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ0ZHX0VFUFJPTV9XUCk7Ci0Jb3V0X2JlMzIoKHZvaWQqKUdQSU8wX1RDUiwgaW5fYmUzMigodm9pZCopR1BJTzBfVENSKSB8IENGR19FRVBST01fV1ApOworCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19FRVBST01fV1ApOworCW91dF9iZTMyKCh2b2lkKilHUElPMF9UQ1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX1RDUikgfCBDT05GSUdfU1lTX0VFUFJPTV9XUCk7CiAKIAkvKgogCSAqIEVuYWJsZSBpbnRlcnJ1cHRzIGluIGV4YXIgZHVhcnQgbWNyWzNdCkBAIC0yMzAsMTUgKzIzMCwxNSBAQAogdm9pZCBpZGVfc2V0X3Jlc2V0KGludCBvbikKIHsKIAl2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqZnBnYV9tb2RlID0KLQkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDRkdfRlBHQV9CQVNFX0FERFIgKyBDRkdfRlBHQV9DVFJMKTsKKwkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSICsgQ09ORklHX1NZU19GUEdBX0NUUkwpOwogCiAJLyoKIAkgKiBBc3NlcnQgb3IgZGVhc3NlcnQgQ29tcGFjdEZsYXNoIFJlc2V0IFBpbgogCSAqLwogCWlmIChvbikgewkJLyogYXNzZXJ0IFJFU0VUICovCi0JCSpmcGdhX21vZGUgJj0gfihDRkdfRlBHQV9DVFJMX0NGX1JFU0VUKTsKKwkJKmZwZ2FfbW9kZSAmPSB+KENPTkZJR19TWVNfRlBHQV9DVFJMX0NGX1JFU0VUKTsKIAl9IGVsc2UgewkJLyogcmVsZWFzZSBSRVNFVCAqLwotCQkqZnBnYV9tb2RlIHw9IENGR19GUEdBX0NUUkxfQ0ZfUkVTRVQ7CisJCSpmcGdhX21vZGUgfD0gQ09ORklHX1NZU19GUEdBX0NUUkxfQ0ZfUkVTRVQ7CiAJfQogfQogI2VuZGlmIC8qIENPTkZJR19JREVfUkVTRVQgKi8KQEAgLTI1NCw3ICsyNTQsNyBAQAogI2VuZGlmCiB9CiAKLSNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pCiAvKiBJbnB1dDogPGRldl9hZGRyPiAgSTJDIGFkZHJlc3Mgb2YgRUVQUk9NIGRldmljZSB0byBlbmFibGUuCiAgKiAgICAgICAgIDxzdGF0ZT4gICAgIC0xOiBkZWxpdmVyIGN1cnJlbnQgc3RhdGUKICAqCSAgICAgICAgICAgICAgIDA6IGRpc2FibGUgd3JpdGUKQEAgLTI2NSwyNiArMjY1LDI2IEBACiAgKi8KIGludCBlZXByb21fd3JpdGVfZW5hYmxlICh1bnNpZ25lZCBkZXZfYWRkciwgaW50IHN0YXRlKQogewotCWlmIChDRkdfSTJDX0VFUFJPTV9BRERSICE9IGRldl9hZGRyKSB7CisJaWYgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSICE9IGRldl9hZGRyKSB7CiAJCXJldHVybiAtMTsKIAl9IGVsc2UgewogCQlzd2l0Y2ggKHN0YXRlKSB7CiAJCWNhc2UgMToKIAkJCS8qIEVuYWJsZSB3cml0ZSBhY2Nlc3MsIGNsZWFyIGJpdCBHUElPMC4gKi8KIAkJCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwKLQkJCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgfkNGR19FRVBST01fV1ApOworCQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiB+Q09ORklHX1NZU19FRVBST01fV1ApOwogCQkJc3RhdGUgPSAwOwogCQkJYnJlYWs7CiAJCWNhc2UgMDoKIAkJCS8qIERpc2FibGUgd3JpdGUgYWNjZXNzLCBzZXQgYml0IEdQSU8wLiAqLwogCQkJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLAotCQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDRkdfRUVQUk9NX1dQKTsKKwkJCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19FRVBST01fV1ApOwogCQkJc3RhdGUgPSAwOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQkvKiBSZWFkIGN1cnJlbnQgc3RhdHVzIGJhY2suICovCiAJCQlzdGF0ZSA9ICgwID09IChpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJgotCQkJCSAgICAgICBDRkdfRUVQUk9NX1dQKSk7CisJCQkJICAgICAgIENPTkZJR19TWVNfRUVQUk9NX1dQKSk7CiAJCQlicmVhazsKIAkJfQogCX0KQEAgLTI5OCwyMSArMjk4LDIxIEBACiAKIAlpZiAocXVlcnkpIHsKIAkJLyogUXVlcnkgd3JpdGUgYWNjZXNzIHN0YXRlLiAqLwotCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENGR19JMkNfRUVQUk9NX0FERFIsIC0xKTsKKwkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgLTEpOwogCQlpZiAoc3RhdGUgPCAwKSB7CiAJCQlwdXRzICgiUXVlcnkgb2Ygd3JpdGUgYWNjZXNzIHN0YXRlIGZhaWxlZC5cbiIpOwogCQl9IGVsc2UgewogCQkJcHJpbnRmICgiV3JpdGUgYWNjZXNzIGZvciBkZXZpY2UgMHglMHggaXMgJXNhYmxlZC5cbiIsCi0JCQkJQ0ZHX0kyQ19FRVBST01fQUREUiwgc3RhdGUgPyAiZW4iIDogImRpcyIpOworCQkJCUNPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCBzdGF0ZSA/ICJlbiIgOiAiZGlzIik7CiAJCQlzdGF0ZSA9IDA7CiAJCX0KIAl9IGVsc2UgewogCQlpZiAoJzAnID09IGFyZ3ZbMV1bMF0pIHsKIAkJCS8qIERpc2FibGUgd3JpdGUgYWNjZXNzLiAqLwotCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDRkdfSTJDX0VFUFJPTV9BRERSLCAwKTsKKwkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIDApOwogCQl9IGVsc2UgewogCQkJLyogRW5hYmxlIHdyaXRlIGFjY2Vzcy4gKi8KLQkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ0ZHX0kyQ19FRVBST01fQUREUiwgMSk7CisJCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAxKTsKIAkJfQogCQlpZiAoc3RhdGUgPCAwKSB7CiAJCQlwdXRzICgiU2V0dXAgb2Ygd3JpdGUgYWNjZXNzIHN0YXRlIGZhaWxlZC5cbiIpOwpAQCAtMzI1LDQgKzMyNSw0IEBACiBVX0JPT1RfQ01EKGVlcHdyZW4sCTIsCTAsCWRvX2VlcF93cmVuLAogCSAgICJlZXB3cmVuIC0gRW5hYmxlIC8gZGlzYWJsZSAvIHF1ZXJ5IEVFUFJPTSB3cml0ZSBhY2Nlc3NcbiIsCiAJICAgTlVMTCk7Ci0jZW5kaWYgLyogI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9XUkVOKSAqLworI2VuZGlmIC8qICNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pICovCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvcG1jNDA1L3BtYzQwNS5jIGIvYm9hcmQvZXNkL3BtYzQwNS9wbWM0MDUuYwppbmRleCA5MGEyMTJiLi5jMDc4MWRjIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvcG1jNDA1L3BtYzQwNS5jCisrKyBiL2JvYXJkL2VzZC9wbWM0MDUvcG1jNDA1LmMKQEAgLTcyLDIzICs3MiwyMyBAQAogCSAqIFNldHVwIEdQSU8gcGlucwogCSAqLwogCi0JbXRkY3IoY250cmwwLCBtZmRjcihjbnRybDApIHwgKChDRkdfRlBHQV9JTklUIHwgXAotCQkJCQlDRkdfRlBHQV9ET05FIHwgXAotCQkJCQlDRkdfWEVSRUFEWSB8IFwKLQkJCQkJQ0ZHX05PTk1PTkFSQ0ggfCBcCi0JCQkJCUNGR19SRVYxXzIpIDw8IDUpKTsKKwltdGRjcihjbnRybDAsIG1mZGNyKGNudHJsMCkgfCAoKENPTkZJR19TWVNfRlBHQV9JTklUIHwgXAorCQkJCQlDT05GSUdfU1lTX0ZQR0FfRE9ORSB8IFwKKwkJCQkJQ09ORklHX1NZU19YRVJFQURZIHwgXAorCQkJCQlDT05GSUdfU1lTX05PTk1PTkFSQ0ggfCBcCisJCQkJCUNPTkZJR19TWVNfUkVWMV8yKSA8PCA1KSk7CiAKLQlpZiAoIShpbjMyKEdQSU8wX0lSKSAmIENGR19SRVYxXzIpKSB7CisJaWYgKCEoaW4zMihHUElPMF9JUikgJiBDT05GSUdfU1lTX1JFVjFfMikpIHsKIAkJLyogcmV2IDEuMiBib2FyZHMgKi8KLQkJbXRkY3IoY250cmwwLCBtZmRjcihjbnRybDApIHwgKChDRkdfSU5UQV9GQUtFIHwgXAotCQkJCQkJQ0ZHX1NFTEZfUlNUKSA8PCA1KSk7CisJCW10ZGNyKGNudHJsMCwgbWZkY3IoY250cmwwKSB8ICgoQ09ORklHX1NZU19JTlRBX0ZBS0UgfCBcCisJCQkJCQlDT05GSUdfU1lTX1NFTEZfUlNUKSA8PCA1KSk7CiAJfQogCiAJb3V0MzIoR1BJTzBfT1IsIDApOwotCW91dDMyKEdQSU8wX1RDUiwgQ0ZHX0ZQR0FfUFJHIHwgQ0ZHX0ZQR0FfQ0xLIHwgQ0ZHX0ZQR0FfREFUQSB8IENGR19YRVJFQURZKTsgLyogc2V0dXAgZm9yIG91dHB1dCAqLworCW91dDMyKEdQSU8wX1RDUiwgQ09ORklHX1NZU19GUEdBX1BSRyB8IENPTkZJR19TWVNfRlBHQV9DTEsgfCBDT05GSUdfU1lTX0ZQR0FfREFUQSB8IENPTkZJR19TWVNfWEVSRUFEWSk7IC8qIHNldHVwIGZvciBvdXRwdXQgKi8KIAogCS8qIC0gY2hlY2sgaWYgcmV2MV8yIGlzIGxvdywgdGhlbjoKLQkgKiAtIHNldC9yZXNldCBDRkdfSU5UQV9GQUtFL0NGR19TRUxGX1JTVCBpbiBUQ1IgdG8gYXNzZXJ0IElOVEEjIG9yIFNFTEZSU1QjCisJICogLSBzZXQvcmVzZXQgQ09ORklHX1NZU19JTlRBX0ZBS0UvQ09ORklHX1NZU19TRUxGX1JTVCBpbiBUQ1IgdG8gYXNzZXJ0IElOVEEjIG9yIFNFTEZSU1QjCiAJICovCiAKIAlyZXR1cm4gMDsKQEAgLTEwNCw3ICsxMDQsNyBAQAogCWdkLT5iZC0+YmlfZmxhc2hzdGFydCA9IDAgLSBnZC0+YmQtPmJpX2ZsYXNoc2l6ZTsKIAlnZC0+YmQtPmJpX2ZsYXNob2Zmc2V0ID0gMDsKIAotCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19YRVJFQURZKTsgLyogZGVhc3NlcnQgRVJFQURZIyAqLworCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfWEVSRUFEWSk7IC8qIGRlYXNzZXJ0IEVSRUFEWSMgKi8KIAlyZXR1cm4gKDApOwogfQogCkBAIC0xMTIsMTMgKzExMiwxMyBAQAogewogCXVsb25nIHZhbDsKIAl2YWwgPSBpbjMyKEdQSU8wX0lSKTsKLQlpZiAoISh2YWwgJiBDRkdfUkVWMV8yKSkgeyAvKiBsb3c9cmV2MS4yICovCi0JCWlmICh2YWwgJiBDRkdfTk9OTU9OQVJDSCkgeyAvKiBtb25hcmNoIyBzaWduYWwgKi8KLQkJCXJldHVybiBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRF9OT05NT05BUkNIOworCWlmICghKHZhbCAmIENPTkZJR19TWVNfUkVWMV8yKSkgeyAvKiBsb3c9cmV2MS4yICovCisJCWlmICh2YWwgJiBDT05GSUdfU1lTX05PTk1PTkFSQ0gpIHsgLyogbW9uYXJjaCMgc2lnbmFsICovCisJCQlyZXR1cm4gQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEX05PTk1PTkFSQ0g7CiAJCX0KLQkJcmV0dXJuIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEX01PTkFSQ0g7CisJCXJldHVybiBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSURfTU9OQVJDSDsKIAl9Ci0JcmV0dXJuIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEX05PTk1PTkFSQ0g7CisJcmV0dXJuIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRF9OT05NT05BUkNIOwogfQogCiAvKgpAQCAtMTQwLDkgKzE0MCw5IEBACiAJfQogCiAJdmFsID0gaW4zMihHUElPMF9JUik7Ci0JaWYgKCEodmFsICYgQ0ZHX1JFVjFfMikpIHsgLyogbG93PXJldjEuMiAqLworCWlmICghKHZhbCAmIENPTkZJR19TWVNfUkVWMV8yKSkgeyAvKiBsb3c9cmV2MS4yICovCiAJCXB1dHMoIiByZXYxLjIgKCIpOwotCQlpZiAodmFsICYgQ0ZHX05PTk1PTkFSQ0gpIHsgLyogbW9uYXJjaCMgc2lnbmFsICovCisJCWlmICh2YWwgJiBDT05GSUdfU1lTX05PTk1PTkFSQ0gpIHsgLyogbW9uYXJjaCMgc2lnbmFsICovCiAJCQlwdXRzKCJub24tIik7CiAJCX0KIAkJcHV0cygibW9uYXJjaCkiKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9wbWM0NDAvY21kX3BtYzQ0MC5jIGIvYm9hcmQvZXNkL3BtYzQ0MC9jbWRfcG1jNDQwLmMKaW5kZXggNzRjZjRjMy4uMzhlZTc0ZSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL3BtYzQ0MC9jbWRfcG1jNDQwLmMKKysrIGIvYm9hcmQvZXNkL3BtYzQ0MC9jbWRfcG1jNDQwLmMKQEAgLTMyMyw3ICszMjMsNyBAQAogCX0KIAogCXByaW50ZigiV3JpdGluZyBib290IEVFUFJPTSAuLi5cbiIpOwotCWlmIChib290c3RyYXBfZWVwcm9tX3dyaXRlKENGR19JMkNfQk9PVF9FRVBST01fQUREUiwKKwlpZiAoYm9vdHN0cmFwX2VlcHJvbV93cml0ZShDT05GSUdfU1lTX0kyQ19CT09UX0VFUFJPTV9BRERSLAogCQkJCSAgIDAsICh1Y2hhciopc2RzZHAsIGNvdW50KSAhPSAwKQogCQlwcmludGYoImJvb3RzdHJhcF9lZXByb21fd3JpdGUgZmFpbGVkXG4iKTsKIAllbHNlCkBAIC01MTMsNyArNTEzLDcgQEAKIAkiPHBjaWFkZHI+IChwY2lhZGRyIHdpbGwgYmUgYWxpZ25lZCB0byAyNTZNQilcbiIKIAkpOwogCi0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9XUkVOKQogaW50IGRvX2VlcF93cmVuKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogCWludCBxdWVyeSA9IGFyZ2MgPT0gMTsKQEAgLTUyMSwyMSArNTIxLDIxIEBACiAKIAlpZiAocXVlcnkpIHsKIAkJLyogUXVlcnkgd3JpdGUgYWNjZXNzIHN0YXRlLiAqLwotCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUoQ0ZHX0kyQ19FRVBST01fQUREUiwgLTEpOworCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIC0xKTsKIAkJaWYgKHN0YXRlIDwgMCkgewogCQkJcHV0cygiUXVlcnkgb2Ygd3JpdGUgYWNjZXNzIHN0YXRlIGZhaWxlZC5cbiIpOwogCQl9IGVsc2UgewogCQkJcHJpbnRmKCJXcml0ZSBhY2Nlc3MgZm9yIGRldmljZSAweCUweCBpcyAlc2FibGVkLlxuIiwKLQkJCSAgICAgICBDRkdfSTJDX0VFUFJPTV9BRERSLCBzdGF0ZSA/ICJlbiIgOiAiZGlzIik7CisJCQkgICAgICAgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIHN0YXRlID8gImVuIiA6ICJkaXMiKTsKIAkJCXN0YXRlID0gMDsKIAkJfQogCX0gZWxzZSB7CiAJCWlmICgnMCcgPT0gYXJndlsxXVswXSkgewogCQkJLyogRGlzYWJsZSB3cml0ZSBhY2Nlc3MuICovCi0JCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUoQ0ZHX0kyQ19FRVBST01fQUREUiwgMCk7CisJCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIDApOwogCQl9IGVsc2UgewogCQkJLyogRW5hYmxlIHdyaXRlIGFjY2Vzcy4gKi8KLQkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZShDRkdfSTJDX0VFUFJPTV9BRERSLCAxKTsKKwkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZShDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgMSk7CiAJCX0KIAkJaWYgKHN0YXRlIDwgMCkgewogCQkJcHV0cygiU2V0dXAgb2Ygd3JpdGUgYWNjZXNzIHN0YXRlIGZhaWxlZC5cbiIpOwpAQCAtNTQ3LDYgKzU0Nyw2IEBACiBVX0JPT1RfQ01EKGVlcHdyZW4sIDIsIDAsIGRvX2VlcF93cmVuLAogCSAgICJlZXB3cmVuIC0gRW5hYmxlIC8gZGlzYWJsZSAvIHF1ZXJ5IEVFUFJPTSB3cml0ZSBhY2Nlc3NcbiIsCiAJICAgTlVMTCk7Ci0jZW5kaWYgLyogI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9XUkVOKSAqLworI2VuZGlmIC8qICNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pICovCiAKICNlbmRpZiAvKiBDT05GSUdfQ01EX0JTUCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL3BtYzQ0MC9jb25maWcubWsgYi9ib2FyZC9lc2QvcG1jNDQwL2NvbmZpZy5tawppbmRleCBlNjJiOGQzLi4wYzRkNTgyIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvcG1jNDQwL2NvbmZpZy5taworKysgYi9ib2FyZC9lc2QvcG1jNDQwL2NvbmZpZy5tawpAQCAtMzcsNSArMzcsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9wbWM0NDAvaW5pdC5TIGIvYm9hcmQvZXNkL3BtYzQ0MC9pbml0LlMKaW5kZXggMTQ4YWY3MS4uMjZhODI4MiAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL3BtYzQ0MC9pbml0LlMKKysrIGIvYm9hcmQvZXNkL3BtYzQ0MC9pbml0LlMKQEAgLTQ0LDI4ICs0NCwyOCBAQAogCSAqIHNwZWVkIHVwIGJvb3QgcHJvY2Vzcy4gSXQgaXMgcGF0Y2hlZCBhZnRlciByZWxvY2F0aW9uIHRvIGVuYWJsZSBTQV9JCiAJICovCiAjaWZuZGVmIENPTkZJR19OQU5EX1NQTAotCXRsYmVudHJ5KCBDRkdfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0sIENGR19CT09UX0JBU0VfQUREUiwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfRyApCisJdGxiZW50cnkoIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0sIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQogI2Vsc2UKLQl0bGJlbnRyeSggQ0ZHX05BTkRfQk9PVF9TUExfU1JDLCBTWl80SywgQ0ZHX05BTkRfQk9PVF9TUExfU1JDLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQywgU1pfNEssIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkMsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQogI2VuZGlmCiAKIAkvKiBUTEItZW50cnkgZm9yIEREUiBTRFJBTSAoVXAgdG8gMkdCKSAqLwogI2lmZGVmIENPTkZJR180eHhfRENBQ0hFCi0JdGxiZW50cnkoIENGR19TRFJBTV9CQVNFLCBTWl8yNTZNLCBDRkdfU0RSQU1fQkFTRSwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRykKKwl0bGJlbnRyeSggQ09ORklHX1NZU19TRFJBTV9CQVNFLCBTWl8yNTZNLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cpCiAjZWxzZQotCXRsYmVudHJ5KCBDRkdfU0RSQU1fQkFTRSwgU1pfMjU2TSwgQ0ZHX1NEUkFNX0JBU0UsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgU1pfMjU2TSwgQ09ORklHX1NZU19TRFJBTV9CQVNFLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQogI2VuZGlmCiAKLSNpZmRlZiBDRkdfSU5JVF9SQU1fRENBQ0hFCisjaWZkZWYgQ09ORklHX1NZU19JTklUX1JBTV9EQ0FDSEUKIAkvKiBUTEItZW50cnkgZm9yIGluaXQtcmFtIGluIGRjYWNoZSAoU0FfSSBtdXN0IGJlIHR1cm5lZCBvZmYhKSAqLwotCXRsYmVudHJ5KCBDRkdfSU5JVF9SQU1fQUREUiwgU1pfNjRLLCBDRkdfSU5JVF9SQU1fQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRyApCisJdGxiZW50cnkoIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgU1pfNjRLLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQogI2VuZGlmCiAKIAkvKiBUTEItZW50cnkgZm9yIFBDSSBNZW1vcnkgKi8KLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UxLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UxLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFMiwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFMiwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRTMsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRTMsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UxLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UyLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRTMsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UzLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKIAogCS8qIFRMQi1lbnRyaWVzIGZvciBFQkMgKi8KIAkvKiBQTUM0NDAgbWFwcyBFQkMgdG8gMHhlZjAwMDAwMCB3aGljaCBpcyBoYW5kbGVkIGJ5IHRoZSBwZXJpcGhlcmFsCkBAIC03Niw3ICs3Niw3IEBACiAJdGxiZW50cnkoIDB4YzAwMDAwMDAsIFNaXzI1Nk0sIDB4YzAwMDAwMDAsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCiAKIAkvKiBUTEItZW50cnkgZm9yIE5BTkQgKi8KLQl0bGJlbnRyeSggQ0ZHX05BTkRfQUREUiwgU1pfMUssIENGR19OQU5EX0FERFIsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfTkFORF9BRERSLCBTWl8xSywgQ09ORklHX1NZU19OQU5EX0FERFIsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCiAKIAkvKiBUTEItZW50cnkgZm9yIEludGVybmFsIFJlZ2lzdGVycyAmIE9DTSAqLwogCXRsYmVudHJ5KCAweGUwMDAwMDAwLCBTWl8xNk0sIDB4ZTAwMDAwMDAsIDAsICBBQ19SfEFDX1d8QUNfWHxTQV9JICkKQEAgLTk4LDggKzk4LDggQEAKIAkgKiBGb3IgTkFORCBib290aW5nIHRoZSBmaXJzdCBUTEIgaGFzIHRvIGJlIHJlY29uZmlndXJlZCB0byBmdWxsIHNpemUKIAkgKiBhbmQgd2l0aCBjYWNoaW5nIGRpc2FibGVkIGFmdGVyIHJ1bm5pbmcgZnJvbSBSQU0hCiAJICovCi0jZGVmaW5lIFRMQjAwCVRMQjAoQ0ZHX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNKQotI2RlZmluZSBUTEIwMQlUTEIxKENGR19CT09UX0JBU0VfQUREUiwgMSkKKyNkZWZpbmUgVExCMDAJVExCMChDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNKQorI2RlZmluZSBUTEIwMQlUTEIxKENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIDEpCiAjZGVmaW5lIFRMQjAyCVRMQjIoQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQogCiAJLmdsb2JsCXJlY29uZmlnX3RsYjAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9wbWM0NDAvcG1jNDQwLmMgYi9ib2FyZC9lc2QvcG1jNDQwL3BtYzQ0MC5jCmluZGV4IDg1ZWYyNmYuLjAxMzgxNWUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9wbWM0NDAvcG1jNDQwLmMKKysrIGIvYm9hcmQvZXNkL3BtYzQ0MC9wbWM0NDAuYwpAQCAtNDQsNyArNDQsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogdWxvbmcgZmxhc2hfZ2V0X3NpemUodWxvbmcgYmFzZSwgaW50IGJhbmtudW0pOwogaW50IHBjaV9pc182Nm1oeih2b2lkKTsKQEAgLTcxLDcgKzcxLDcgQEAKIAkJLyogbWFyayBzY3JhdGNocmVnIHZhbGlkICovCiAJCXNjcmF0Y2hyZWcgPSAoc2NyYXRjaHJlZyAmIDB4ZmZmZmZmMDApIHwgMHg4MDsKIAotCQlpID0gYm9vdHN0cmFwX2VlcHJvbV9yZWFkKENGR19JMkNfQk9PVF9FRVBST01fQUREUiwKKwkJaSA9IGJvb3RzdHJhcF9lZXByb21fcmVhZChDT05GSUdfU1lTX0kyQ19CT09UX0VFUFJPTV9BRERSLAogCQkJCQkgIDB4MTAsIGJ1ZiwgNCk7CiAJCWlmICgoaSAhPSAtMSkgJiYgKGJ1ZlswXSA9PSAweDE5KSAmJiAoYnVmWzFdID09IDB4NzUpKSB7CiAJCQlzY3JhdGNocmVnIHw9IGJ1ZlsyXTsKQEAgLTEwMyw3ICsxMDMsNyBAQAogCiAJLyoKIAkgKiBTZXR1cCB0aGUgR1BJTyBwaW5zCi0JICogVE9ETzogc2V0dXAgR1BJT3MgdmlhIENGR180eHhfR1BJT19UQUJMRSBpbiBib2FyZCdzIGNvbmZpZyBmaWxlCisJICogVE9ETzogc2V0dXAgR1BJT3MgdmlhIENPTkZJR19TWVNfNHh4X0dQSU9fVEFCTEUgaW4gYm9hcmQncyBjb25maWcgZmlsZQogCSAqLwogCW91dDMyKEdQSU8wX09SLCAgICAweDQwMDAwMDAyKTsKIAlvdXQzMihHUElPMF9UQ1IsICAgMHg0YzkwMDExZik7CkBAIC0xOTAsNyArMTkwLDcgQEAKIAkJU0RSMF9DVVNUMF9OREZDX0VOQUJMRQkJfAogCQlTRFIwX0NVU1QwX05ERkNfQldfOF9CSVQJfAogCQlTRFIwX0NVU1QwX05ERkNfQVJFX01BU0sJfAotCQkoMHg4MDAwMDAwMCA+PiAoMjggKyBDRkdfTkFORF9DUykpOworCQkoMHg4MDAwMDAwMCA+PiAoMjggKyBDT05GSUdfU1lTX05BTkRfQ1MpKTsKIAltdHNkcihTRFIwX0NVU1QwLCBzZHIwX2N1c3QwKTsKIAogCXJldHVybiAwOwpAQCAtMjQyLDcgKzI0Miw3IEBACiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgIC1DRkdfTU9OSVRPUl9MRU4sCisJCQkgICAgLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCQkgICAgMHhmZmZmZmZmZiwKIAkJCSAgICAmZmxhc2hfaW5mb1swXSk7CiAKQEAgLTQ5OCw3ICs0OTgsNyBAQAogICogaW5ib3VuZCBtYXAgKFBJTSkuIEJ1dCB0aGUgYm9vdHN0cmFwIGNvbmZpZyBjaG9pY2VzIGFyZSBsaW1pdGVkIGFuZAogICogbWF5IG5vdCBiZSBzdWZmaWNpZW50IGZvciBhIGdpdmVuIGJvYXJkLgogICovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogdm9pZCBwY2lfdGFyZ2V0X2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewogCWNoYXIgKnB0bWxhX3N0ciwgKnB0bW1zX3N0cjsKQEAgLTUxNiw4ICs1MTYsOCBAQAogCSAqLwogCW91dDMycihQQ0lYMF9QTU0wTUEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIE1hc2svQXR0cmlidXRlICovCiAJCQkJCQkvKiAtIGRpc2FibGVkIGI0IHNldHRpbmcgKi8KLQlvdXQzMnIoUENJWDBfUE1NMExBLCBDRkdfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KLQlvdXQzMnIoUENJWDBfUE1NMFBDSUxBLCBDRkdfUENJX01FTUJBU0UpOyAvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0wTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMFBDSUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFKTsgLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMFBDSUhBLCAweDAwMDAwMDAwKTsJLyogUE1NMCBQQ0kgSGlnaCBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTBNQSwgMHhjMDAwMDAwMSk7CS8qIDFHICsgTm8gcHJlZmV0Y2hpbmcsICovCiAJCQkJCQkvKiBhbmQgZW5hYmxlIHJlZ2lvbiAqLwpAQCAtNTYzLDcgKzU2Myw3IEBACiAKIAkvKiBQcm9ncmFtIHRoZSBib2FyZCdzIHZlbmRvciBpZCAqLwogCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX1ZFTkRPUl9JRCwKLQkJCSAgICAgIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKKwkJCSAgICAgIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCk7CiAKIAkvKiBkaXNhYmxlZCBmb3IgUE1DNDA1IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgKi8KIAkvKiBDb25maWd1cmUgY29tbWFuZCByZWdpc3RlciBhcyBidXMgbWFzdGVyICovCkBAIC01ODEsOSArNTgxLDkgQEAKIAlpZiAoIWlzX21vbmFyY2goKSkgewogCQkvKiBQcm9ncmFtIHRoZSBib2FyZCdzIHN1YnN5c3RlbSBpZC9jbGFzc2NvZGUgKi8KIAkJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fSUQsCi0JCQkJICAgICAgQ0ZHX1BDSV9TVUJTWVNfSURfTk9OTU9OQVJDSCk7CisJCQkJICAgICAgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0lEX05PTk1PTkFSQ0gpOwogCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX0NMQVNTX1NVQl9DT0RFLAotCQkJCSAgICAgIENGR19QQ0lfQ0xBU1NDT0RFX05PTk1PTkFSQ0gpOworCQkJCSAgICAgIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERV9OT05NT05BUkNIKTsKIAogCQkvKiBQQ0kgY29uZmlndXJhdGlvbiBkb25lOiByZWxlYXNlIEVSUkVBRFkgKi8KIAkJb3V0X2JlMzIoKHZvaWQqKUdQSU8xX09SLApAQCAtNTkzLDE3ICs1OTMsMTcgQEAKIAl9IGVsc2UgewogCQkvKiBQcm9ncmFtIHRoZSBib2FyZCdzIHN1YnN5c3RlbSBpZC9jbGFzc2NvZGUgKi8KIAkJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fSUQsCi0JCQkJICAgICAgQ0ZHX1BDSV9TVUJTWVNfSURfTU9OQVJDSCk7CisJCQkJICAgICAgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0lEX01PTkFSQ0gpOwogCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX0NMQVNTX1NVQl9DT0RFLAotCQkJCSAgICAgIENGR19QQ0lfQ0xBU1NDT0RFX01PTkFSQ0gpOworCQkJCSAgICAgIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERV9NT05BUkNIKTsKIAl9CiB9Ci0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKSAqLwogCiAvKgogICogcGNpX21hc3Rlcl9pbml0CiAgKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9NQVNURVJfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQpCiB2b2lkIHBjaV9tYXN0ZXJfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpCiB7CiAJdW5zaWduZWQgc2hvcnQgdGVtcF9zaG9ydDsKQEAgLTYyMCw3ICs2MjAsNyBAQAogCQkJCSAgICAgIFBDSV9DT01NQU5EX01FTU9SWSk7CiAJfQogfQotI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX01BU1RFUl9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVCkgKi8KIAogc3RhdGljIHZvaWQgd2FpdF9mb3JfcGNpX3JlYWR5KHZvaWQpCiB7CkBAIC03MDgsNyArNzA4LDcgQEAKIH0KICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9XUkVOKQogLyoKICAqICBJbnB1dDogPGRldl9hZGRyPiBJMkMgYWRkcmVzcyBvZiBFRVBST00gZGV2aWNlIHRvIGVuYWJsZS4KICAqICAgICAgICAgPHN0YXRlPiAgICAtMTogZGVsaXZlciBjdXJyZW50IHN0YXRlCkBAIC03MjAsOCArNzIwLDggQEAKICAqLwogaW50IGVlcHJvbV93cml0ZV9lbmFibGUodW5zaWduZWQgZGV2X2FkZHIsIGludCBzdGF0ZSkKIHsKLQlpZiAoKENGR19JMkNfRUVQUk9NX0FERFIgIT0gZGV2X2FkZHIpICYmCi0JICAgIChDRkdfSTJDX0JPT1RfRUVQUk9NX0FERFIgIT0gZGV2X2FkZHIpKSB7CisJaWYgKChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiAhPSBkZXZfYWRkcikgJiYKKwkgICAgKENPTkZJR19TWVNfSTJDX0JPT1RfRUVQUk9NX0FERFIgIT0gZGV2X2FkZHIpKSB7CiAJCXJldHVybiAtMTsKIAl9IGVsc2UgewogCQlzd2l0Y2ggKHN0YXRlKSB7CkBAIC03NDMsOSArNzQzLDkgQEAKIAl9CiAJcmV0dXJuIHN0YXRlOwogfQotI2VuZGlmIC8qICNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikgKi8KKyNlbmRpZiAvKiAjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9XUkVOKSAqLwogCi0jZGVmaW5lIENGR19CT09UX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCiBpbnQgYm9vdHN0cmFwX2VlcHJvbV93cml0ZSh1bnNpZ25lZCBkZXZfYWRkciwgdW5zaWduZWQgb2Zmc2V0LAogCQkJICAgdWNoYXIgKmJ1ZmZlciwgdW5zaWduZWQgY250KQogewpAQCAtNzUzLDcgKzc1Myw3IEBACiAJdW5zaWduZWQgYmxrX29mZjsKIAlpbnQgcmNvZGUgPSAwOwogCi0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9XUkVOKQogCWVlcHJvbV93cml0ZV9lbmFibGUoZGV2X2FkZHIsIDEpOwogI2VuZGlmCiAJLyoKQEAgLTc3Niw3ICs3NzYsNyBAQAogCiAJCWxlbiA9IGVuZCAtIG9mZnNldDsKIAotI2RlZmluZQlCT09UX0VFUFJPTV9QQUdFX1NJWkUJICAgKDEgPDwgQ0ZHX0JPT1RfRUVQUk9NX1BBR0VfV1JJVEVfQklUUykKKyNkZWZpbmUJQk9PVF9FRVBST01fUEFHRV9TSVpFCSAgICgxIDw8IENPTkZJR19TWVNfQk9PVF9FRVBST01fUEFHRV9XUklURV9CSVRTKQogI2RlZmluZQlCT09UX0VFUFJPTV9QQUdFX09GRlNFVCh4KSAoKHgpICYgKEJPT1RfRUVQUk9NX1BBR0VfU0laRSAtIDEpKQogCiAJCW1heGxlbiA9IEJPT1RfRUVQUk9NX1BBR0VfU0laRSAtCkBAIC03OTMsMTEgKzc5MywxMSBAQAogCQlidWZmZXIgKz0gbGVuOwogCQlvZmZzZXQgKz0gbGVuOwogCi0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMpCi0JCXVkZWxheShDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgKiAxMDAwKTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMpCisJCXVkZWxheShDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TICogMTAwMCk7CiAjZW5kaWYKIAl9Ci0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9XUkVOKQogCWVlcHJvbV93cml0ZV9lbmFibGUoZGV2X2FkZHIsIDApOwogI2VuZGlmCiAJcmV0dXJuIHJjb2RlOwpAQCAtODQ1LDcgKzg0NSw3IEBACiAJcmV0dXJuIHJjb2RlOwogfQogCi0jaWYgZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENGR19VU0JfT0hDSV9CT0FSRF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1VTQl9PSENJX05FVykgJiYgZGVmaW5lZChDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQpCiBpbnQgdXNiX2JvYXJkX2luaXQodm9pZCkKIHsKIAljaGFyICphY3QgPSBnZXRlbnYoInVzYmFjdCIpOwpAQCAtODc1LDQgKzg3NSw0IEBACiAJdXNiX2JvYXJkX3N0b3AoKTsKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSSkgJiYgZGVmaW5lZChDRkdfVVNCX09IQ0lfQk9BUkRfSU5JVCkgKi8KKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQpICovCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvcG1jNDQwL3BtYzQ0MC5oIGIvYm9hcmQvZXNkL3BtYzQ0MC9wbWM0NDAuaAppbmRleCA3ZTcwZmQxLi5kODM0ZjI1IDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvcG1jNDQwL3BtYzQ0MC5oCisrKyBiL2JvYXJkL2VzZC9wbWM0NDAvcG1jNDQwLmgKQEAgLTU0LDcgKzU0LDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZQR0EgaW50ZXJmYWNlCiAgKi8KLSNkZWZpbmUgRlBHQV9CQSBDRkdfRlBHQV9CQVNFMAorI2RlZmluZSBGUEdBX0JBIENPTkZJR19TWVNfRlBHQV9CQVNFMAogI2RlZmluZSBGUEdBX09VVDMyKHAsdikgb3V0X2JlMzIoKCh2b2lkKikocCkpLCAodikpCiAjZGVmaW5lIEZQR0FfSU4zMihwKSBpbl9iZTMyKCh2b2lkKikocCkpCiAjZGVmaW5lIEZQR0FfU0VUQklUUyhwLHYpIG91dF9iZTMyKCgodm9pZCopKHApKSwgaW5fYmUzMigodm9pZCopKHApKSB8ICh2KSkKQEAgLTEzNCw3ICsxMzQsNyBAQAogI2RlZmluZSBIT1NUQ1RSTF9IQ0lOVF9HQVRFICAoMSA8PCAgMSkKICNkZWZpbmUgSE9TVENUUkxfSENJTlRfRkxBRyAgKDEgPDwgIDApCiAKLSNkZWZpbmUgTkdDQ19DVFJMX0JBU0UgICAgICAgICAoQ0ZHX0ZQR0FfQkFTRTAgKyAweDgwMDAwKQorI2RlZmluZSBOR0NDX0NUUkxfQkFTRSAgICAgICAgIChDT05GSUdfU1lTX0ZQR0FfQkFTRTAgKyAweDgwMDAwKQogI2RlZmluZSBOR0NDX0NUUkxfRlBHQVJTVF9OICAgICgxIDw8ICAyKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvcG1jNDQwL3NkcmFtLmMgYi9ib2FyZC9lc2QvcG1jNDQwL3NkcmFtLmMKaW5kZXggYzcyOTRjOS4uMTk3ODU3YSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL3BtYzQ0MC9zZHJhbS5jCisrKyBiL2JvYXJkL2VzZC9wbWM0NDAvc2RyYW0uYwpAQCAtMTExLDUgKzExMSw1IEBACiAJICovCiAJc2V0X21jc3IoZ2V0X21jc3IoKSk7CiAKLQlyZXR1cm4gKENGR19NQllURVNfU0RSQU0gPDwgMjApOworCXJldHVybiAoQ09ORklHX1NZU19NQllURVNfU0RSQU0gPDwgMjApOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL3BtYzQ0MC91LWJvb3QubGRzIGIvYm9hcmQvZXNkL3BtYzQ0MC91LWJvb3QubGRzCmluZGV4IGIyMGZiMWMuLjNjZmVjODMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9wbWM0NDAvdS1ib290LmxkcworKysgYi9ib2FyZC9lc2QvcG1jNDQwL3UtYm9vdC5sZHMKQEAgLTEzNyw3ICsxMzcsNyBAQAogICAgKihDT01NT04pCiAgIH0KIAotICBwcGNlbnZfYXNzZXJ0ID0gQVNTRVJUKC4gPCAweEZGRkY4MDAwLCAiLmJzcyBzZWN0aW9uIHRvbyBiaWcsIG92ZXJsYXBzIC5wcGNlbnYgc2VjdGlvbi4gUGxlYXNlIHVwZGF0ZSB5b3VyIGNvbmZndXJhdGlvbjogQ0ZHX01PTklUT1JfQkFTRSwgQ0ZHX01PTklUT1JfTEVOIGFuZCBURVhUX0JBU0UgbWF5IG5lZWQgdG8gYmUgbW9kaWZpZWQuIik7CisgIHBwY2Vudl9hc3NlcnQgPSBBU1NFUlQoLiA8IDB4RkZGRjgwMDAsICIuYnNzIHNlY3Rpb24gdG9vIGJpZywgb3ZlcmxhcHMgLnBwY2VudiBzZWN0aW9uLiBQbGVhc2UgdXBkYXRlIHlvdXIgY29uZmd1cmF0aW9uOiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgQ09ORklHX1NZU19NT05JVE9SX0xFTiBhbmQgVEVYVF9CQVNFIG1heSBuZWVkIHRvIGJlIG1vZGlmaWVkLiIpOwogCiAgIF9lbmQgPSAuIDsKICAgUFJPVklERSAoZW5kID0gLik7CmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvdGFzcmVnL2ZsYXNoLmMgYi9ib2FyZC9lc2QvdGFzcmVnL2ZsYXNoLmMKaW5kZXggMTNjMDdkMi4uY2U5MDVlOSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL3Rhc3JlZy9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC90YXNyZWcvZmxhc2guYwpAQCAtNDUsMTMgKzQ1LDEzIEBACiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKIAkvKiBTdGF0aWMgRkxBU0ggQmFuayBjb25maWd1cmF0aW9uIGhlcmUgLSBGSVhNRSBYWFggKi8KIAotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggb24gQmFuayAwIC0gU2l6ZSA9IDB4JTA4bHggPSAlbGQgTUJcbiIsCkBAIC02NSw4ICs2NSw4IEBACiAKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICBDRkdfRkxBU0hfQkFTRSwKLQkJCSAgICBDRkdfRkxBU0hfQkFTRStDRkdfTU9OSVRPUl9MRU4tMSwKKwkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQkgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFK0NPTkZJR19TWVNfTU9OSVRPUl9MRU4tMSwKIAkJCSAgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9pbmZvWzBdLnNpemUgPSBzaXplX2IwOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL3Rhc3JlZy90YXNyZWcuYyBiL2JvYXJkL2VzZC90YXNyZWcvdGFzcmVnLmMKaW5kZXggZmFiYjc0Ni4uNjRlNmQ2MyAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL3Rhc3JlZy90YXNyZWcuYworKysgYi9ib2FyZC9lc2QvdGFzcmVnL3Rhc3JlZy5jCkBAIC00MCw4ICs0MCw4IEBACiAKIC8qIHByZWRlZmluZSB0aGVzZSBoZXJlIGZvciBGUEdBIHByb2dyYW1taW5nIChiZWZvcmUgaW5jbHVkaW5nIGZwZ2EuYykgKi8KICNkZWZpbmUgU0VUX0ZQR0EoZGF0YSkgIG1iYXIyX3dyaXRlTG9uZyhNQ0ZTSU1fR1BJTzFfT1VULCBkYXRhKQotI2RlZmluZSBGUEdBX0RPTkVfU1RBVEUgKG1iYXIyX3JlYWRMb25nKE1DRlNJTV9HUElPMV9SRUFEKSAmIENGR19GUEdBX0RPTkUpCi0jZGVmaW5lIEZQR0FfSU5JVF9TVEFURSAobWJhcjJfcmVhZExvbmcoTUNGU0lNX0dQSU8xX1JFQUQpICYgQ0ZHX0ZQR0FfSU5JVCkKKyNkZWZpbmUgRlBHQV9ET05FX1NUQVRFIChtYmFyMl9yZWFkTG9uZyhNQ0ZTSU1fR1BJTzFfUkVBRCkgJiBDT05GSUdfU1lTX0ZQR0FfRE9ORSkKKyNkZWZpbmUgRlBHQV9JTklUX1NUQVRFIChtYmFyMl9yZWFkTG9uZyhNQ0ZTSU1fR1BJTzFfUkVBRCkgJiBDT05GSUdfU1lTX0ZQR0FfSU5JVCkKICNkZWZpbmUgRlBHQV9QUk9HX0FDVElWRV9ISUdIICAgICAgICAgIC8qIG9uIHRoaXMgcGxhdGZvcm0gaXMgUFJPRyBhY3RpdmUgaGlnaCEgICAqLwogI2RlZmluZSBvdXQzMihhLGIpICAgICAgICAgICAgICAgICAgICAgLyogbm90aGluZyB0byBkbyAoZ3BpbyBhbHJlYWR5IGNvbmZpZ3VyZWQpICovCiAKQEAgLTcwLDcgKzcwLDcgQEAKIAkvKgogCSAqIFNldCBMRUQgb24KIAkgKi8KLQl2YWwgPSBtYmFyMl9yZWFkTG9uZyhNQ0ZTSU1fR1BJTzFfT1VUKSAmIH5DRkdfR1BJTzFfTEVEOworCXZhbCA9IG1iYXIyX3JlYWRMb25nKE1DRlNJTV9HUElPMV9PVVQpICYgfkNPTkZJR19TWVNfR1BJTzFfTEVEOwogCW1iYXIyX3dyaXRlTG9uZyhNQ0ZTSU1fR1BJTzFfT1VULCB2YWwpOyAgIC8qIFNldCBMRUQgb24gKi8KIAogCXJldHVybiAwOwpAQCAtODUsMTMgKzg1LDEzIEBACiAJICoJUkMgPSAoWyhSZWZyZXNoVGltZS8jcm93cykgLyAoMS9CdXNDbGspXSAvIDE2KSAtIDEKIAkgKi8KIAotI2lmZGVmIENGR19GQVNUX0NMSworI2lmZGVmIENPTkZJR19TWVNfRkFTVF9DTEsKIAkvKgogCSAqIEJ1c2Nsaz03ME1IeiwgUmVmcmVzaFRpbWU9NjRtcywgI3Jvd3M9NDA5NiAoNEspCiAJICogU089MSwgTkFNPTAsIENPQz0wLCBSVElNPTAxICg2Y2xrIHJlZnJlc2gpLCBSQz0zOQogCSAqLwogCW1iYXJfd3JpdGVTaG9ydChNQ0ZTSU1fRENSLCAweDgyMzkpOwotI2VsaWYgQ0ZHX1BMTF9CWVBBU1MKKyNlbGlmIENPTkZJR19TWVNfUExMX0JZUEFTUwogCS8qCiAJICogQnVzY2xrPTUuNjQ0OE1IeiwgUmVmcmVzaFRpbWU9NjRtcywgI3Jvd3M9ODE5MiAoOEspCiAJICogU089MSwgTkFNPTAsIENPQz0wLCBSVElNPTAxICg2Y2xrIHJlZnJlc2gpLCBSQz0wMgpAQCAtMTI5LDcgKzEyOSw3IEBACiAJbWJhcl93cml0ZUxvbmcoTUNGU0lNX0RBQ1IwLCAweDAwMDBiMzY0KTsgIC8qIEVuYWJsZSBEQUNSMFtJTVJTXSAoYml0IDYpOyBSRSByZW1haW5zIGVuYWJsZWQgKi8KIAkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopIDB4ODAwKSA9IGp1bms7IC8qIEFjY2VzcyBSQU0gdG8gaW5pdGlhbGl6ZSB0aGUgbW9kZSByZWdpc3RlciAqLwogCi0JcmV0dXJuIENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OwogfTsKIAogCkBAIC0xNTAsOCArMTUwLDggQEAKIAlpbnQgaTsKIAl1Y2hhciBidWZbOF07CiAKLQlkc3QgPSBtYWxsb2MoQ0ZHX0ZQR0FfTUFYX1NJWkUpOwotCWlmIChndW56aXAgKGRzdCwgQ0ZHX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CisJZHN0ID0gbWFsbG9jKENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSk7CisJaWYgKGd1bnppcCAoZHN0LCBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CiAJCXByaW50ZiAoIkdVTlpJUCBFUlJPUiAtIG11c3QgUkVTRVQgYm9hcmQgdG8gcmVjb3ZlclxuIik7CiAJCWRvX3Jlc2V0IChOVUxMLCAwLCAwLCBOVUxMKTsKIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9lc2Qvdm9oNDA1L2ZsYXNoLmMgYi9ib2FyZC9lc2Qvdm9oNDA1L2ZsYXNoLmMKaW5kZXggODlhZjExOS4uMjc0YWRhOSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL3ZvaDQwNS9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC92b2g0MDUvZmxhc2guYwpAQCAtNDgsNyArNDgsNyBAQAogCWludCBzaXplX3ZhbCA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTkxLDcgKzkxLDcgQEAKIAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgIC1DRkdfTU9OSVRPUl9MRU4sCisJCQkgICAgLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCQkgICAgMHhmZmZmZmZmZiwKIAkJCSAgICAmZmxhc2hfaW5mb1swXSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC92b2g0MDUvdm9oNDA1LmMgYi9ib2FyZC9lc2Qvdm9oNDA1L3ZvaDQwNS5jCmluZGV4IDExNWY4YjQuLmVjNjVmZmQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC92b2g0MDUvdm9oNDA1LmMKKysrIGIvYm9hcmQvZXNkL3ZvaDQwNS92b2g0MDUuYwpAQCAtMTA5LDkgKzEwOSw5IEBACiAJdW5zaWduZWQgY2hhciAqZHVhcnQwX21jciA9ICh1bnNpZ25lZCBjaGFyICopKCh1bG9uZylEVUFSVDBfQkEgKyA0KTsKIAl1bnNpZ25lZCBjaGFyICpkdWFydDFfbWNyID0gKHVuc2lnbmVkIGNoYXIgKikoKHVsb25nKURVQVJUMV9CQSArIDQpOwogCXVuc2lnbmVkIHNob3J0ICpsY2RfY29udHJhc3QgPQotCQkodW5zaWduZWQgc2hvcnQgKikoKHVsb25nKUNGR19GUEdBX0JBU0VfQUREUiArIENGR19GUEdBX0NUUkwgKyA0KTsKKwkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSICsgQ09ORklHX1NZU19GUEdBX0NUUkwgKyA0KTsKIAl1bnNpZ25lZCBzaG9ydCAqbGNkX2JhY2tsaWdodCA9Ci0JCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ0ZHX0ZQR0FfQkFTRV9BRERSICsgQ0ZHX0ZQR0FfQ1RSTCArIDYpOworCQkodW5zaWduZWQgc2hvcnQgKikoKHVsb25nKUNPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0ZQR0FfQ1RSTCArIDYpOwogCXVuc2lnbmVkIGNoYXIgKmRzdDsKIAl1bG9uZyBsZW4gPSBzaXplb2YoZnBnYWRhdGEpOwogCWludCBzdGF0dXM7CkBAIC0xMTksOCArMTE5LDggQEAKIAlpbnQgaTsKIAljaGFyICpzdHI7CiAKLQlkc3QgPSBtYWxsb2MoQ0ZHX0ZQR0FfTUFYX1NJWkUpOwotCWlmIChndW56aXAgKGRzdCwgQ0ZHX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CisJZHN0ID0gbWFsbG9jKENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSk7CisJaWYgKGd1bnppcCAoZHN0LCBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CiAJCXByaW50ZiAoIkdVTlpJUCBFUlJPUiAtIG11c3QgUkVTRVQgYm9hcmQgdG8gcmVjb3ZlclxuIik7CiAJCWRvX3Jlc2V0IChOVUxMLCAwLCAwLCBOVUxMKTsKIAl9CkBAIC0xODMsMjIgKzE4MywyMiBAQAogCS8qCiAJICogUmVzZXQgZXh0ZXJuYWwgRFVBUlRzCiAJICovCi0Jb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDRkdfRFVBUlRfUlNUKTsgLyogc2V0IHJlc2V0IHRvIGhpZ2ggKi8KKwlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSB8IENPTkZJR19TWVNfRFVBUlRfUlNUKTsgLyogc2V0IHJlc2V0IHRvIGhpZ2ggKi8KIAl1ZGVsYXkoMTApOyAvKiB3YWl0IDEwdXMgKi8KLQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmIH5DRkdfRFVBUlRfUlNUKTsgLyogc2V0IHJlc2V0IHRvIGxvdyAqLworCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfRFVBUlRfUlNUKTsgLyogc2V0IHJlc2V0IHRvIGxvdyAqLwogCXVkZWxheSgxMDAwKTsgLyogd2FpdCAxbXMgKi8KIAogCS8qCiAJICogU2V0IE5BTkQtRkxBU0ggR1BJTyBzaWduYWxzIHRvIGRlZmF1bHQKIAkgKi8KLQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmIH4oQ0ZHX05BTkRfQ0xFIHwgQ0ZHX05BTkRfQUxFKSk7Ci0Jb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDRkdfTkFORF9DRSk7CisJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiB+KENPTkZJR19TWVNfTkFORF9DTEUgfCBDT05GSUdfU1lTX05BTkRfQUxFKSk7CisJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkRfQ0UpOwogCiAJLyoKIAkgKiBTZXR1cCBFRVBST00gd3JpdGUgcHJvdGVjdGlvbgogCSAqLwotCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ0ZHX0VFUFJPTV9XUCk7Ci0Jb3V0X2JlMzIoKHZvaWQqKUdQSU8wX1RDUiwgaW5fYmUzMigodm9pZCopR1BJTzBfVENSKSB8IENGR19FRVBST01fV1ApOworCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19FRVBST01fV1ApOworCW91dF9iZTMyKCh2b2lkKilHUElPMF9UQ1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX1RDUikgfCBDT05GSUdfU1lTX0VFUFJPTV9XUCk7CiAKIAkvKgogCSAqIEVuYWJsZSBpbnRlcnJ1cHRzIGluIGV4YXIgZHVhcnQgbWNyWzNdCkBAIC0yMTIsMjkgKzIxMiwyOSBAQAogCXN0ciA9IGdldGVudigiYmRfdHlwZSIpOwogCWlmIChzdHJjbXAoc3RyLCAidm9oNDA1X2J3IikgPT0gMCkgewogCQlsY2Rfc2V0dXAoMCwgMSk7Ci0JCWxjZF9pbml0KCh1Y2hhciAqKUNGR19MQ0RfU01BTExfUkVHLCAodWNoYXIgKilDRkdfTENEX1NNQUxMX01FTSwKKwkJbGNkX2luaXQoKHVjaGFyICopQ09ORklHX1NZU19MQ0RfU01BTExfUkVHLCAodWNoYXIgKilDT05GSUdfU1lTX0xDRF9TTUFMTF9NRU0sCiAJCQkgcmVnc18xMzcwNF8zMjBfMjQwXzRicHAsCiAJCQkgc2l6ZW9mKHJlZ3NfMTM3MDRfMzIwXzI0MF80YnBwKS9zaXplb2YocmVnc18xMzcwNF8zMjBfMjQwXzRicHBbMF0pLAogCQkJIGxvZ29fYm1wXzMyMCwgc2l6ZW9mKGxvZ29fYm1wXzMyMCkpOwogCX0gZWxzZSBpZiAoc3RyY21wKHN0ciwgInZvaDQwNV9id2J3IikgPT0gMCkgewogCQlsY2Rfc2V0dXAoMCwgMSk7Ci0JCWxjZF9pbml0KCh1Y2hhciAqKUNGR19MQ0RfU01BTExfUkVHLCAodWNoYXIgKilDRkdfTENEX1NNQUxMX01FTSwKKwkJbGNkX2luaXQoKHVjaGFyICopQ09ORklHX1NZU19MQ0RfU01BTExfUkVHLCAodWNoYXIgKilDT05GSUdfU1lTX0xDRF9TTUFMTF9NRU0sCiAJCQkgcmVnc18xMzcwNF8zMjBfMjQwXzRicHAsCiAJCQkgc2l6ZW9mKHJlZ3NfMTM3MDRfMzIwXzI0MF80YnBwKS9zaXplb2YocmVnc18xMzcwNF8zMjBfMjQwXzRicHBbMF0pLAogCQkJIGxvZ29fYm1wXzMyMCwgc2l6ZW9mKGxvZ29fYm1wXzMyMCkpOwogCQlsY2Rfc2V0dXAoMSwgMSk7Ci0JCWxjZF9pbml0KCh1Y2hhciAqKUNGR19MQ0RfQklHX1JFRywgKHVjaGFyICopQ0ZHX0xDRF9CSUdfTUVNLAorCQlsY2RfaW5pdCgodWNoYXIgKilDT05GSUdfU1lTX0xDRF9CSUdfUkVHLCAodWNoYXIgKilDT05GSUdfU1lTX0xDRF9CSUdfTUVNLAogCQkJIHJlZ3NfMTM4MDZfMzIwXzI0MF80YnBwLAogCQkJIHNpemVvZihyZWdzXzEzODA2XzMyMF8yNDBfNGJwcCkvc2l6ZW9mKHJlZ3NfMTM4MDZfMzIwXzI0MF80YnBwWzBdKSwKIAkJCSBsb2dvX2JtcF8zMjAsIHNpemVvZihsb2dvX2JtcF8zMjApKTsKIAl9IGVsc2UgaWYgKHN0cmNtcChzdHIsICJ2b2g0MDVfYndjIikgPT0gMCkgewogCQlsY2Rfc2V0dXAoMCwgMSk7Ci0JCWxjZF9pbml0KCh1Y2hhciAqKUNGR19MQ0RfU01BTExfUkVHLCAodWNoYXIgKilDRkdfTENEX1NNQUxMX01FTSwKKwkJbGNkX2luaXQoKHVjaGFyICopQ09ORklHX1NZU19MQ0RfU01BTExfUkVHLCAodWNoYXIgKilDT05GSUdfU1lTX0xDRF9TTUFMTF9NRU0sCiAJCQkgcmVnc18xMzcwNF8zMjBfMjQwXzRicHAsCiAJCQkgc2l6ZW9mKHJlZ3NfMTM3MDRfMzIwXzI0MF80YnBwKS9zaXplb2YocmVnc18xMzcwNF8zMjBfMjQwXzRicHBbMF0pLAogCQkJIGxvZ29fYm1wXzMyMCwgc2l6ZW9mKGxvZ29fYm1wXzMyMCkpOwogCQlsY2Rfc2V0dXAoMSwgMCk7Ci0JCWxjZF9pbml0KCh1Y2hhciAqKUNGR19MQ0RfQklHX1JFRywgKHVjaGFyICopQ0ZHX0xDRF9CSUdfTUVNLAorCQlsY2RfaW5pdCgodWNoYXIgKilDT05GSUdfU1lTX0xDRF9CSUdfUkVHLCAodWNoYXIgKilDT05GSUdfU1lTX0xDRF9CSUdfTUVNLAogCQkJIHJlZ3NfMTM4MDZfNjQwXzQ4MF8xNmJwcCwKIAkJCSBzaXplb2YocmVnc18xMzgwNl82NDBfNDgwXzE2YnBwKS9zaXplb2YocmVnc18xMzgwNl82NDBfNDgwXzE2YnBwWzBdKSwKIAkJCSBsb2dvX2JtcF82NDAsIHNpemVvZihsb2dvX2JtcF82NDApKTsKQEAgLTI0Niw4ICsyNDYsOCBAQAogCS8qCiAJICogU2V0IGludmVydCBiaXQgaW4gc21hbGwgbGNkIGNvbnRyb2xsZXIKIAkgKi8KLQlvdXRfOCgodW5zaWduZWQgY2hhciAqKShDRkdfTENEX1NNQUxMX1JFRyArIDIpLAotCSAgICAgIGluXzgoKHVuc2lnbmVkIGNoYXIgKikoQ0ZHX0xDRF9TTUFMTF9SRUcgKyAyKSkgfCAweDAxKTsKKwlvdXRfOCgodW5zaWduZWQgY2hhciAqKShDT05GSUdfU1lTX0xDRF9TTUFMTF9SRUcgKyAyKSwKKwkgICAgICBpbl84KCh1bnNpZ25lZCBjaGFyICopKENPTkZJR19TWVNfTENEX1NNQUxMX1JFRyArIDIpKSB8IDB4MDEpOwogCiAJLyoKIAkgKiBTZXQgZGVmYXVsdCBjb250cmFzdCB2b2x0YWdlIG9uIGVwc29uIHZnYSBjb250cm9sbGVyCkBAIC0yNjIsNyArMjYyLDcgQEAKIAkvKgogCSAqIEVuYWJsZSBleHRlcm5hbCBJMkMgYnVzCiAJICovCi0Jb3V0X2JlMzIoKHZvaWQqKUdQSU8wX1RDUiwgaW5fYmUzMigodm9pZCopR1BJTzBfVENSKSB8IENGR19JSUNfT04pOworCW91dF9iZTMyKCh2b2lkKilHUElPMF9UQ1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX1RDUikgfCBDT05GSUdfU1lTX0lJQ19PTik7CiAKIAlyZXR1cm4gKDApOwogfQpAQCAtMzAwLDE1ICszMDAsMTUgQEAKIHZvaWQgaWRlX3NldF9yZXNldChpbnQgb24pCiB7CiAJdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKmZwZ2FfbW9kZSA9Ci0JCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ0ZHX0ZQR0FfQkFTRV9BRERSICsgQ0ZHX0ZQR0FfQ1RSTCk7CisJCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUiArIENPTkZJR19TWVNfRlBHQV9DVFJMKTsKIAogCS8qCiAJICogQXNzZXJ0IG9yIGRlYXNzZXJ0IENvbXBhY3RGbGFzaCBSZXNldCBQaW4KIAkgKi8KIAlpZiAob24pIHsJCS8qIGFzc2VydCBSRVNFVCAqLwotCQkqZnBnYV9tb2RlICY9IH4oQ0ZHX0ZQR0FfQ1RSTF9DRl9SRVNFVCk7CisJCSpmcGdhX21vZGUgJj0gfihDT05GSUdfU1lTX0ZQR0FfQ1RSTF9DRl9SRVNFVCk7CiAJfSBlbHNlIHsJCS8qIHJlbGVhc2UgUkVTRVQgKi8KLQkJKmZwZ2FfbW9kZSB8PSBDRkdfRlBHQV9DVFJMX0NGX1JFU0VUOworCQkqZnBnYV9tb2RlIHw9IENPTkZJR19TWVNfRlBHQV9DVFJMX0NGX1JFU0VUOwogCX0KIH0KICNlbmRpZiAvKiBDT05GSUdfSURFX1JFU0VUICovCkBAIC0zMjYsNyArMzI2LDcgQEAKIH0KICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9XUkVOKQogLyogSW5wdXQ6IDxkZXZfYWRkcj4gIEkyQyBhZGRyZXNzIG9mIEVFUFJPTSBkZXZpY2UgdG8gZW5hYmxlLgogICogICAgICAgICA8c3RhdGU+ICAgICAtMTogZGVsaXZlciBjdXJyZW50IHN0YXRlCiAgKgkgICAgICAgICAgICAgICAwOiBkaXNhYmxlIHdyaXRlCkBAIC0zMzcsMjMgKzMzNywyMyBAQAogICovCiBpbnQgZWVwcm9tX3dyaXRlX2VuYWJsZSAodW5zaWduZWQgZGV2X2FkZHIsIGludCBzdGF0ZSkKIHsKLQlpZiAoQ0ZHX0kyQ19FRVBST01fQUREUiAhPSBkZXZfYWRkcikgeworCWlmIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiAhPSBkZXZfYWRkcikgewogCQlyZXR1cm4gLTE7CiAJfSBlbHNlIHsKIAkJc3dpdGNoIChzdGF0ZSkgewogCQljYXNlIDE6CiAJCQkvKiBFbmFibGUgd3JpdGUgYWNjZXNzLCBjbGVhciBiaXQgR1BJTzAuICovCi0JCQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmIH5DRkdfRUVQUk9NX1dQKTsKKwkJCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfRUVQUk9NX1dQKTsKIAkJCXN0YXRlID0gMDsKIAkJCWJyZWFrOwogCQljYXNlIDA6CiAJCQkvKiBEaXNhYmxlIHdyaXRlIGFjY2Vzcywgc2V0IGJpdCBHUElPMC4gKi8KLQkJCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ0ZHX0VFUFJPTV9XUCk7CisJCQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSB8IENPTkZJR19TWVNfRUVQUk9NX1dQKTsKIAkJCXN0YXRlID0gMDsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJLyogUmVhZCBjdXJyZW50IHN0YXR1cyBiYWNrLiAqLwotCQkJc3RhdGUgPSAoMCA9PSAoaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgQ0ZHX0VFUFJPTV9XUCkpOworCQkJc3RhdGUgPSAoMCA9PSAoaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgQ09ORklHX1NZU19FRVBST01fV1ApKTsKIAkJCWJyZWFrOwogCQl9CiAJfQpAQCAtMzY3LDIxICszNjcsMjEgQEAKIAogCWlmIChxdWVyeSkgewogCQkvKiBRdWVyeSB3cml0ZSBhY2Nlc3Mgc3RhdGUuICovCi0JCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ0ZHX0kyQ19FRVBST01fQUREUiwgLTEpOworCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAtMSk7CiAJCWlmIChzdGF0ZSA8IDApIHsKIAkJCXB1dHMgKCJRdWVyeSBvZiB3cml0ZSBhY2Nlc3Mgc3RhdGUgZmFpbGVkLlxuIik7CiAJCX0gZWxzZSB7CiAJCQlwcmludGYgKCJXcml0ZSBhY2Nlc3MgZm9yIGRldmljZSAweCUweCBpcyAlc2FibGVkLlxuIiwKLQkJCQlDRkdfSTJDX0VFUFJPTV9BRERSLCBzdGF0ZSA/ICJlbiIgOiAiZGlzIik7CisJCQkJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIHN0YXRlID8gImVuIiA6ICJkaXMiKTsKIAkJCXN0YXRlID0gMDsKIAkJfQogCX0gZWxzZSB7CiAJCWlmICgnMCcgPT0gYXJndlsxXVswXSkgewogCQkJLyogRGlzYWJsZSB3cml0ZSBhY2Nlc3MuICovCi0JCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENGR19JMkNfRUVQUk9NX0FERFIsIDApOworCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgMCk7CiAJCX0gZWxzZSB7CiAJCQkvKiBFbmFibGUgd3JpdGUgYWNjZXNzLiAqLwotCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDRkdfSTJDX0VFUFJPTV9BRERSLCAxKTsKKwkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIDEpOwogCQl9CiAJCWlmIChzdGF0ZSA8IDApIHsKIAkJCXB1dHMgKCJTZXR1cCBvZiB3cml0ZSBhY2Nlc3Mgc3RhdGUgZmFpbGVkLlxuIik7CkBAIC0zOTQsNCArMzk0LDQgQEAKIFVfQk9PVF9DTUQoZWVwd3JlbiwJMiwJMCwJZG9fZWVwX3dyZW4sCiAJICAgImVlcHdyZW4gLSBFbmFibGUgLyBkaXNhYmxlIC8gcXVlcnkgRUVQUk9NIHdyaXRlIGFjY2Vzc1xuIiwKIAkgICBOVUxMKTsKLSNlbmRpZiAvKiAjaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pICovCisjZW5kaWYgLyogI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC92b200MDUvZmxhc2guYyBiL2JvYXJkL2VzZC92b200MDUvZmxhc2guYwppbmRleCA4OWFmMTE5Li4yNzRhZGE5IDEwMDY0NAotLS0gYS9ib2FyZC9lc2Qvdm9tNDA1L2ZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL3ZvbTQwNS9mbGFzaC5jCkBAIC00OCw3ICs0OCw3IEBACiAJaW50IHNpemVfdmFsID0gMDsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtOTEsNyArOTEsNyBAQAogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL3d1aDQwNS9mbGFzaC5jIGIvYm9hcmQvZXNkL3d1aDQwNS9mbGFzaC5jCmluZGV4IDg5YWYxMTkuLjI3NGFkYTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC93dWg0MDUvZmxhc2guYworKysgYi9ib2FyZC9lc2Qvd3VoNDA1L2ZsYXNoLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIAlpbnQgc2l6ZV92YWwgPSAwOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC05MSw3ICs5MSw3IEBACiAKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAtQ0ZHX01PTklUT1JfTEVOLAorCQkJICAgIC1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJICAgIDB4ZmZmZmZmZmYsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2Qvd3VoNDA1L3d1aDQwNS5jIGIvYm9hcmQvZXNkL3d1aDQwNS93dWg0MDUuYwppbmRleCAzYTk0ZmQ4Li41ZWNhM2JkIDEwMDY0NAotLS0gYS9ib2FyZC9lc2Qvd3VoNDA1L3d1aDQwNS5jCisrKyBiL2JvYXJkL2VzZC93dWg0MDUvd3VoNDA1LmMKQEAgLTkyLDggKzkyLDggQEAKIAlpbnQgaW5kZXg7CiAJaW50IGk7CiAKLQlkc3QgPSBtYWxsb2MoQ0ZHX0ZQR0FfTUFYX1NJWkUpOwotCWlmIChndW56aXAgKGRzdCwgQ0ZHX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CisJZHN0ID0gbWFsbG9jKENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSk7CisJaWYgKGd1bnppcCAoZHN0LCBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CiAJCXByaW50ZiAoIkdVTlpJUCBFUlJPUiAtIG11c3QgUkVTRVQgYm9hcmQgdG8gcmVjb3ZlclxuIik7CiAJCWRvX3Jlc2V0IChOVUxMLCAwLCAwLCBOVUxMKTsKIAl9CkBAIC0xNTUsOSArMTU1LDkgQEAKIAkvKgogCSAqIFJlc2V0IGV4dGVybmFsIERVQVJUcwogCSAqLwotCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19EVUFSVF9SU1QpOyAvKiBzZXQgcmVzZXQgdG8gaGlnaCAqLworCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfRFVBUlRfUlNUKTsgLyogc2V0IHJlc2V0IHRvIGhpZ2ggKi8KIAl1ZGVsYXkoMTApOyAvKiB3YWl0IDEwdXMgKi8KLQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q0ZHX0RVQVJUX1JTVCk7IC8qIHNldCByZXNldCB0byBsb3cgKi8KKwlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q09ORklHX1NZU19EVUFSVF9SU1QpOyAvKiBzZXQgcmVzZXQgdG8gbG93ICovCiAJdWRlbGF5KDEwMDApOyAvKiB3YWl0IDFtcyAqLwogCiAJLyoKZGlmZiAtLWdpdCBhL2JvYXJkL2VzdGVlbTE5MmUvZXN0ZWVtMTkyZS5jIGIvYm9hcmQvZXN0ZWVtMTkyZS9lc3RlZW0xOTJlLmMKaW5kZXggZjNjODY2Mi4uYjc4NGNiYiAxMDA2NDQKLS0tIGEvYm9hcmQvZXN0ZWVtMTkyZS9lc3RlZW0xOTJlLmMKKysrIGIvYm9hcmQvZXN0ZWVtMTkyZS9lc3RlZW0xOTJlLmMKQEAgLTEwMyw3ICsxMDMsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZV9iMCwgc2l6ZV9iMTsKIApAQCAtMTEzLDcgKzExMyw3IEBACiAKIAltZW1jdGwtPm1lbWNfbXB0cHIgPSAweDAyMDA7CS8qIGRpdmlkZSBieSAzMiAqLwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSAweDE4MDAzMTEyOwkvKkNGR19NQU1SXzhDT0w7ICovIC8qIDB4MTgwMDUxMTIgVE9ETzogZXhwbGFpbiBoZXJlICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSAweDE4MDAzMTEyOwkvKkNPTkZJR19TWVNfTUFNUl84Q09MOyAqLyAvKiAweDE4MDA1MTEyIFRPRE86IGV4cGxhaW4gaGVyZSAqLwogCiAJdXBtY29uZmlnIChVUE1BLCAodWludCAqKSBzZHJhbV90YWJsZSwKIAkJICAgc2l6ZW9mIChzZHJhbV90YWJsZSkgLyBzaXplb2YgKHVpbnQpKTsKQEAgLTEyNCwxMSArMTI0LDExIEBACiAJICogU0RSQU0gc2l6ZSBoYXMgYmVlbiBkZXRlcm1pbmVkLgogCSAqLwogCi0JbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjJfUFJFTElNOwkvKiBub3QgZGVmaW5lZCB5ZXQgKi8KLQltZW1jdGwtPm1lbWNfYnIyID0gQ0ZHX0JSMl9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsJLyogbm90IGRlZmluZWQgeWV0ICovCisJbWVtY3RsLT5tZW1jX2JyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKIAotCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfT1IzX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogCiAKIAkvKiBwZXJmb3JtIFNEUkFNIGluaXRpYWxpenNhdGlvbiBzZXF1ZW5jZSAqLwpAQCAtMTM5LDcgKzEzOSw3IEBACiAJbWVtY3RsLT5tZW1jX21jciA9IDB4ODAwMDY4MzA7CS8qIFNEUkFNIGJhbmsgMSBleGVjdXRlIDggcmVmcmVzaCAqLwogCW1lbWN0bC0+bWVtY19tY3IgPSAweDgwMDA2MTA1OwkvKiBTRFJBTSBiYW5rIDEgKi8KIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOENPTDsJLyogMHgxODgwMzExMiAgc3RhcnQgcmVmcmVzaCB0aW1lciBUT0RPOiBleHBsYWluIGhlcmUgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MOwkvKiAweDE4ODAzMTEyICBzdGFydCByZWZyZXNoIHRpbWVyIFRPRE86IGV4cGxhaW4gaGVyZSAqLwogCiAvKiBwcmludGYgKCJiYW5rcyAwIGFuZCAxIGFyZSBwcm9ncmFtZWRcbiIpOyAqLwogCmRpZmYgLS1naXQgYS9ib2FyZC9lc3RlZW0xOTJlL2ZsYXNoLmMgYi9ib2FyZC9lc3RlZW0xOTJlL2ZsYXNoLmMKaW5kZXggZDVlYjIwMS4uY2NlNzNmYSAxMDA2NDQKLS0tIGEvYm9hcmQvZXN0ZWVtMTkyZS9mbGFzaC5jCisrKyBiL2JvYXJkL2VzdGVlbTE5MmUvZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgICAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICAgICAqLwogCiAjaWZkZWYgQ09ORklHX0ZMQVNIXzE2QklUCiAjZGVmaW5lIEZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydApAQCAtNTQsMTMgKzU0LDEzIEBACiAgKi8KIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjAsIHNpemVfYjE7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtOTEsNDQgKzkxLDQ0IEBACiAJfQogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IENGR19GTEFTSF9CQVNFIHwgMHgwMDAwMDgwMTsJLyogIChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsgKi8KKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgMHgwMDAwMDgwMTsJLyogIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7ICovCiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCiAKLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKCh2b2xhdGlsZSBGTEFTSF9XT1JEX1NJWkUgKikgQ0ZHX0ZMQVNIX0JBU0UsCisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplICgodm9sYXRpbGUgRkxBU0hfV09SRF9TSVpFICopIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKIAkJCQkgICZmbGFzaF9pbmZvWzBdKTsKLQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZCkgZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCiAJaWYgKHNpemVfYjEpIHsKIAkJbWVtY3RsLT5tZW1jX29yMSA9Ci0JCQlDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IxICYgMHhGRkZGODAwMCk7CisJCQlDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMSAmIDB4RkZGRjgwMDApOwogCQltZW1jdGwtPm1lbWNfYnIxID0KLQkJCShDRkdfRkxBU0hfQkFTRSB8IDB4MDAwMDA4MDEpICsgKHNpemVfYjAgJiBCUl9CQV9NU0spOwotCQkvKigoQ0ZHX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSAmIEJSX0JBX01TSykgfAorCQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IDB4MDAwMDA4MDEpICsgKHNpemVfYjAgJiBCUl9CQV9NU0spOworCQkvKigoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCkgJiBCUl9CQV9NU0spIHwKIAkJICAgQlJfTVNfR1BDTSB8IEJSX1Y7ICovCiAKIAkJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwogCQlzaXplX2IxID0KIAkJCWZsYXNoX2dldF9zaXplICgodm9sYXRpbGUgRkxBU0hfV09SRF9TSVpFCi0JCQkJCSAqKSAoQ0ZHX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSwKKwkJCQkJICopIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSwKIAkJCQkJJmZsYXNoX2luZm9bMV0pOwogCi0JCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKKwkJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJKHZvaWQpIGZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLQorCQkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLQogCQkJCSAgICAgIDEsICZmbGFzaF9pbmZvWzFdKTsKICNlbmRpZgogCX0gZWxzZSB7CkBAIC03NjksNyArNzY5LDcgQEAKIAkJYWRkciA9ICh2b2xhdGlsZSBGTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogCQl3aGlsZSAoKGFkZHJbMF0gJiAoMHgwMDgwMDA4MCAmIEZMQVNIX0lEX01BU0spKSAhPQogCQkgICAgICAgKDB4MDA4MDAwODAgJiBGTEFTSF9JRF9NQVNLKSkgewotCQkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQlyZXR1cm4gMTsKIAkJCX0KQEAgLTEwMjIsNyArMTAyMiw3IEBACiAKIAkJd2hpbGUgKCgqKCh2dV9sb25nICopIGRlc3QpICYgMHgwMDgwMDA4MCkgIT0KIAkJICAgICAgIChkYXRhICYgMHgwMDgwMDA4MCkpIHsKLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gKDEpOwogCQkJfQogCQl9CkBAIC0xMDMwLDcgKzEwMzAsNyBAQAogCX0gZWxzZSB7CiAKIAkJd2hpbGUgKCEoYWRkclswXSAmIDB4MDA4MDAwODApKSB7CS8qIHdhaXQgZm9yIGVycm9yIG9yIGZpbmlzaCAqLwotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAKQEAgLTEwOTYsNyArMTA5Niw3IEBACiAJaWYgKGluZm8tPmZsYXNoX2lkIDwgRkxBU0hfQU1EX0NPTVApIHsKIAkJLyogQU1EIHN0dWZmICovCiAJCXdoaWxlICgoKigodnVfc2hvcnQgKikgZGVzdCkgJiAweDAwODApICE9IChkYXRhICYgMHgwMDgwKSkgewotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KQEAgLTExMDQsNyArMTEwNCw3IEBACiAJfSBlbHNlIHsKIAkJLyogaW50ZWwgc3R1ZmYgKi8KIAkJd2hpbGUgKCEoYWRkclswXSAmIDB4MDA4MCkpIHsJLyogd2FpdCBmb3IgZXJyb3Igb3IgZmluaXNoICovCi0JCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkKIAkJCQlyZXR1cm4gKDEpOwogCQl9CiAKQEAgLTExMjMsNyArMTEyMyw3IEBACiAJCSphZGRyID0gMHgwMEIwOwogCQkqYWRkciA9IDB4MDA3MDsKIAkJd2hpbGUgKCEoYWRkclswXSAmIDB4MDA4MCkpIHsJLyogd2FpdCBmb3IgZXJyb3Igb3IgZmluaXNoICovCi0JCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkKIAkJCQlyZXR1cm4gKDEpOwogCQl9CiAJCSphZGRyID0gMHgwMEZGOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXRpbi9kZWJyaXMvZGVicmlzLmMgYi9ib2FyZC9ldGluL2RlYnJpcy9kZWJyaXMuYwppbmRleCBhNWQzOTRjLi4yMjdjNDlhIDEwMDY0NAotLS0gYS9ib2FyZC9ldGluL2RlYnJpcy9kZWJyaXMuYworKysgYi9ib2FyZC9ldGluL2RlYnJpcy9kZWJyaXMuYwpAQCAtNjMsNyArNjMsNyBAQAogCXVpbnQzMl90IG1lYXIyID0gMCwgZW1lYXIyID0gMCwgbXNhcjIgPSAwLCBlbXNhcjIgPSAwOwogCXVpbnQ4X3QgbWJlciA9IDA7CiAKLQlpMmNfaW5pdChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCiAJaWYgKGkyY19yZWdfcmVhZCAoMHg1MCwgMikgIT0gMHgwNCkgcmV0dXJuIDA7CS8qIE1lbW9yeSB0eXBlICovCiAJbSA9IGkyY19yZWdfcmVhZCAoMHg1MCwgNSk7CS8qICMgb2YgcGh5c2ljYWwgYmFua3MgKi8KQEAgLTc0LDcgKzc0LDcgQEAKIAlDT05GSUdfUkVBRF9XT1JEKE1DQ1IxLCBtY2NyMSk7CiAJbWNjcjEgJj0gMHhmZmZmMDAwMDsKIAotCXN0YXJ0ID0gQ0ZHX1NEUkFNX0JBU0U7CisJc3RhcnQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAJZW5kID0gc3RhcnQgKyAoMSA8PCAoY29sICsgcm93ICsgMykgKSAqIGJhbmsgLSAxOwogCiAJZm9yIChpID0gMDsgaSA8IG07IGkrKykgewpAQCAtMTc0LDcgKzE3NCw3IEBACiBpbnQgbWlzY19pbml0X3Iodm9pZCkKIHsKIAkvKiBXcml0ZSBldGhlcm5ldCBhZGRyIGluIE5WUkFNIGZvciBWeFdvcmtzICovCi0JbnZyYW1fd3JpdGUoQ09ORklHX0VOVl9BRERSICsgQ0ZHX05WUkFNX1ZYV09SS1NfT0ZGUywKKwludnJhbV93cml0ZShDT05GSUdfRU5WX0FERFIgKyBDT05GSUdfU1lTX05WUkFNX1ZYV09SS1NfT0ZGUywKIAkJCShjaGFyKikmZ2QtPmJkLT5iaV9lbmV0YWRkclswXSwgNik7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9ldGluL2RlYnJpcy9mbGFzaC5jIGIvYm9hcmQvZXRpbi9kZWJyaXMvZmxhc2guYwppbmRleCBhNDEwMGU1Li5hM2M4MTM4IDEwMDY0NAotLS0gYS9ib2FyZC9ldGluL2RlYnJpcy9mbGFzaC5jCisrKyBiL2JvYXJkL2V0aW4vZGVicmlzL2ZsYXNoLmMKQEAgLTcxLDcgKzcxLDcgQEAKIAlyZXR1cm4gKHVpbnQxNl90KXJlYWQzMihiYXNlICsgYWRkcik7CiB9CiAKLWZsYXNoX2luZm9fdCAgICBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiBzdGF0aWMgdm9pZCBtb3ZlNjQodWludDY0X3QgKnNyYywgdWludDY0X3QgKmRlc3QpCiB7CkBAIC05OSw3ICs5OSw3IEBACiAJCXN0YXR1cyAmPSBDTUQoMHg4MCk7CiAJCWlmKHN0YXR1cyA9PSBDTUQoMHg4MCkpCiAJCQlicmVhazsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJY2ZpX2NtZChmbGFzaCwgMHhmZiwgMCk7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtMTI4LDcgKzEyOCw3IEBACiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXN0YXR1cyA9IH5kYXRhOwogCXdoaWxlKHN0YXR1cyAhPSBkYXRhKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpCisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKQogCQkJcmV0dXJuIDE7CiAJCXN0YXR1cyA9IGNmaV9yZWFkKGZsYXNoLCBkZXN0KTsKIAkJdWRlbGF5KDEpOwpAQCAtMjMwLDcgKzIzMCw3IEBACiAJCXN0YXR1cyAmPSBDTUQoMHg4MCk7CiAJCWlmIChzdGF0dXMgPT0gQ01EKDB4ODApKQogCQkJYnJlYWs7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQljZmlfY21kKGZsYXNoLCAweGZmLCAwKTsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIEVSUl9USU1PVVQ7CkBAIC0yOTYsNyArMjk2LDcgQEAKIAkJaWYgKHN0YXR1cyA9PSBDTUQoMHhmZmZmKSkKIAkJCWJyZWFrOwogCi0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiBFUlJfVElNT1VUOwogCQl9CkBAIC01ODEsNyArNTgxLDcgQEAKIAltdGRiYXQxdSgweDcwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApOwogCXNldF9tc3IobXNyKTsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspCisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspCiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCXNpemUgPSBjZmlfaW5pdChGTEFTSF9CQVNFMF9QUkVMSU0sICZmbGFzaF9pbmZvWzBdKTsKIAlpZiAoIXNpemUpCmRpZmYgLS1naXQgYS9ib2FyZC9ldGluL2RlYnJpcy9waGFudG9tLmMgYi9ib2FyZC9ldGluL2RlYnJpcy9waGFudG9tLmMKaW5kZXggNDhiODFmNy4uZmNiNGM0MCAxMDA2NDQKLS0tIGEvYm9hcmQvZXRpbi9kZWJyaXMvcGhhbnRvbS5jCisrKyBiL2JvYXJkL2V0aW4vZGVicmlzL3BoYW50b20uYwpAQCAtMjAsNyArMjAsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0RBVEUpCiAKLSNkZWZpbmUgUlRDX0JBU0UgKENGR19OVlJBTV9CQVNFX0FERFIgKyAweDdmZmY4KQorI2RlZmluZSBSVENfQkFTRSAoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgKyAweDdmZmY4KQogCiAjZGVmaW5lIFJUQ19ZRUFSICAgICAgICAgICAgICAgICggUlRDX0JBU0UgKyA3ICkKICNkZWZpbmUgUlRDX01PTlRIICAgICAgICAgICAgICAgKCBSVENfQkFTRSArIDYgKQpkaWZmIC0tZ2l0IGEvYm9hcmQvZXRpbi9rdm1lMDgwL2t2bWUwODAuYyBiL2JvYXJkL2V0aW4va3ZtZTA4MC9rdm1lMDgwLmMKaW5kZXggYmU2OTI0ZC4uOGM2YWZjOSAxMDA2NDQKLS0tIGEvYm9hcmQvZXRpbi9rdm1lMDgwL2t2bWUwODAuYworKysgYi9ib2FyZC9ldGluL2t2bWUwODAva3ZtZTA4MC5jCkBAIC00Niw3ICs0Niw3IEBACiAJQ09ORklHX1JFQURfV09SRChNQ0NSMSwgbWNjcjEpOwogCW1jY3IxICY9IDB4ZmZmZjAwMDA7CiAKLQlzdGFydCA9IENGR19TRFJBTV9CQVNFOworCXN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOwogCWVuZCA9IHN0YXJ0ICsgKDEgPDwgKGNvbCArIHJvdyArIDMpICkgKiBiYW5rIC0gMTsKIAogCWZvciAoaSA9IDA7IGkgPCBtOyBpKyspIHsKQEAgLTEwMSwzMSArMTAxLDMxIEBACiAKIAltc3IgPSBtZm1zcigpOwogCW10bXNyKG1zciAmIH4oTVNSX0lSIHwgTVNSX0RSKSk7Ci0JbXRzcHIoSUJBVDJMLCBDRkdfSUJBVDBMICsgMHgxMDAwMDAwMCk7Ci0JbXRzcHIoSUJBVDJVLCBDRkdfSUJBVDBVICsgMHgxMDAwMDAwMCk7Ci0JbXRzcHIoREJBVDJMLCBDRkdfREJBVDBMICsgMHgxMDAwMDAwMCk7Ci0JbXRzcHIoREJBVDJVLCBDRkdfREJBVDBVICsgMHgxMDAwMDAwMCk7CisJbXRzcHIoSUJBVDJMLCBDT05GSUdfU1lTX0lCQVQwTCArIDB4MTAwMDAwMDApOworCW10c3ByKElCQVQyVSwgQ09ORklHX1NZU19JQkFUMFUgKyAweDEwMDAwMDAwKTsKKwltdHNwcihEQkFUMkwsIENPTkZJR19TWVNfREJBVDBMICsgMHgxMDAwMDAwMCk7CisJbXRzcHIoREJBVDJVLCBDT05GSUdfU1lTX0RCQVQwVSArIDB4MTAwMDAwMDApOwogCW10bXNyKG1zcik7CiAKLQlpZiAoc2V0ZHJhbSgyLDEzLDEwLDQpID09IGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCkpCisJaWYgKHNldGRyYW0oMiwxMywxMCw0KSA9PSBnZXRfcmFtX3NpemUoQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKSkKIAkJc2l6ZSA9IDB4MjAwMDAwMDA7CS8qIDUxMk1CICovCi0JZWxzZSBpZiAoc2V0ZHJhbSgxLDEzLDEwLDQpID09IGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgMHgxMDAwMDAwMCkpCisJZWxzZSBpZiAoc2V0ZHJhbSgxLDEzLDEwLDQpID09IGdldF9yYW1fc2l6ZShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4MTAwMDAwMDApKQogCQlzaXplID0gMHgxMDAwMDAwMDsJLyogMjU2TUIgKi8KLQllbHNlIGlmIChzZXRkcmFtKDIsMTMsOSw0KSA9PSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIDB4MTAwMDAwMDApKQorCWVsc2UgaWYgKHNldGRyYW0oMiwxMyw5LDQpID09IGdldF9yYW1fc2l6ZShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4MTAwMDAwMDApKQogCQlzaXplID0gMHgxMDAwMDAwMDsJLyogMjU2TUIgKi8KLQllbHNlIGlmIChzZXRkcmFtKDEsMTMsOSw0KSA9PSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIDB4MDgwMDAwMDApKQorCWVsc2UgaWYgKHNldGRyYW0oMSwxMyw5LDQpID09IGdldF9yYW1fc2l6ZShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4MDgwMDAwMDApKQogCQlzaXplID0gMHgwODAwMDAwMDsJLyogMTI4TUIgKi8KLQllbHNlIGlmIChzZXRkcmFtKDIsMTIsOSw0KSA9PSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIDB4MDgwMDAwMDApKQorCWVsc2UgaWYgKHNldGRyYW0oMiwxMiw5LDQpID09IGdldF9yYW1fc2l6ZShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4MDgwMDAwMDApKQogCQlzaXplID0gMHgwODAwMDAwMDsJLyogMTI4TUIgKi8KLQllbHNlIGlmIChzZXRkcmFtKDEsMTIsOSw0KSA9PSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIDB4MDQwMDAwMDApKQorCWVsc2UgaWYgKHNldGRyYW0oMSwxMiw5LDQpID09IGdldF9yYW1fc2l6ZShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4MDQwMDAwMDApKQogCQlzaXplID0gMHgwNDAwMDAwMDsJLyogNjRNQiAqLwogCiAJbXNyID0gbWZtc3IoKTsKIAltdG1zcihtc3IgJiB+KE1TUl9JUiB8IE1TUl9EUikpOwotCW10c3ByKElCQVQyTCwgQ0ZHX0lCQVQyTCk7Ci0JbXRzcHIoSUJBVDJVLCBDRkdfSUJBVDJVKTsKLQltdHNwcihEQkFUMkwsIENGR19EQkFUMkwpOwotCW10c3ByKERCQVQyVSwgQ0ZHX0RCQVQyVSk7CisJbXRzcHIoSUJBVDJMLCBDT05GSUdfU1lTX0lCQVQyTCk7CisJbXRzcHIoSUJBVDJVLCBDT05GSUdfU1lTX0lCQVQyVSk7CisJbXRzcHIoREJBVDJMLCBDT05GSUdfU1lTX0RCQVQyTCk7CisJbXRzcHIoREJBVDJVLCBDT05GSUdfU1lTX0RCQVQyVSk7CiAJbXRtc3IobXNyKTsKIAogCXJldHVybiBzaXplOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXR4MDk0L2V0eDA5NC5jIGIvYm9hcmQvZXR4MDk0L2V0eDA5NC5jCmluZGV4IDc4MDY1MTkuLmQ2ZjYzOGEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2V0eDA5NC9ldHgwOTQuYworKysgYi9ib2FyZC9ldHgwOTQvZXR4MDk0LmMKQEAgLTEyNyw3ICsxMjcsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZV9iMCwgc2l6ZV9iMSwgc2l6ZTgsIHNpemU5OwogCkBAIC0xNDAsNyArMTQwLDcgQEAKIAkgKiB3aXRoIHR3byBTRFJBTSBiYW5rcyBvciBmb3VyIGN5Y2xlcyBldmVyeSAzMS4yIHVzIHdpdGggb25lCiAJICogYmFuay4gSXQgd2lsbCBiZSBhZGp1c3RlZCBhZnRlciBtZW1vcnkgc2l6aW5nLgogCSAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8xQktfNEs7CS8qIE1QVFBSX1BUUF9ESVYzMiAweDAyMDAgKi8KKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzFCS180SzsJLyogTVBUUFJfUFRQX0RJVjMyIDB4MDIwMCAqLwogCiAJLyogQTMoU0RSQU0pPTAgICAgICA9PiBCdXJzdHR5cGUgPSBTZXF1ZW50aWFsCiAJICogQTItQTAoU0RSQU0pPTAxMCA9PiBCdXJzdCBsZW5ndGggPSA0CkBAIC0xNTMsMTUgKzE1MywxNSBAQAogCSAqIHByZWxpbWluYXJ5IGFkZHJlc3NlcyAtIHRoZXNlIGhhdmUgdG8gYmUgbW9kaWZpZWQgYWZ0ZXIgdGhlCiAJICogU0RSQU0gc2l6ZSBoYXMgYmVlbiBkZXRlcm1pbmVkLgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjIgPSBDRkdfT1IyX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIyID0gQ0ZHX0JSMl9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOwogCiAJaWYgKGJvYXJkX3R5cGUgPT0gMCkgewkvKiAiTCIgdHlwZSBib2FyZHMgaGF2ZSBvbmx5IG9uZSBiYW5rIFNEUkFNICovCi0JCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfT1IzX1BSRUxJTTsKLQkJbWVtY3RsLT5tZW1jX2JyMyA9IENGR19CUjNfUFJFTElNOworCQltZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19PUjNfUFJFTElNOworCQltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogCX0KIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAogCXVkZWxheSAoMjAwKTsKIApAQCAtMTg2LDcgKzE4Niw3IEBACiAJICoKIAkgKiB0cnkgOCBjb2x1bW4gbW9kZQogCSAqLwotCXNpemU4ID0gZHJhbV9zaXplIChDRkdfTUFNUl84Q09MLCAobG9uZyAqKSBTRFJBTV9CQVNFMl9QUkVMSU0sCisJc2l6ZTggPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUl84Q09MLCAobG9uZyAqKSBTRFJBTV9CQVNFMl9QUkVMSU0sCiAJCQkJCSAgIFNEUkFNX01BWF9TSVpFKTsKIAogCXVkZWxheSAoMTAwMCk7CkBAIC0xOTQsNyArMTk0LDcgQEAKIAkvKgogCSAqIHRyeSA5IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTkgPSBkcmFtX3NpemUgKENGR19NQU1SXzlDT0wsIChsb25nICopIFNEUkFNX0JBU0UyX1BSRUxJTSwKKwlzaXplOSA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzlDT0wsIChsb25nICopIFNEUkFNX0JBU0UyX1BSRUxJTSwKIAkJCQkJICAgU0RSQU1fTUFYX1NJWkUpOwogCiAJaWYgKHNpemU4IDwgc2l6ZTkpIHsJCS8qIGxlYXZlIGNvbmZpZ3VyYXRpb24gYXQgOSBjb2x1bW5zICovCkBAIC0yMDIsNyArMjAyLDcgQEAKIC8qCWRlYnVnICgiU0RSQU0gQmFuayAwIGluIDkgY29sdW1uIG1vZGU6ICVsZCBNQlxuIiwgc2l6ZSA+PiAyMCk7CSovCiAJfSBlbHNlIHsJCQkJCS8qIGJhY2sgdG8gOCBjb2x1bW5zICAgICAgICAgICAgKi8KIAkJc2l6ZV9iMCA9IHNpemU4OwotCQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0w7CisJCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0w7CiAJCXVkZWxheSAoNTAwKTsKIC8qCWRlYnVnICgiU0RSQU0gQmFuayAwIGluIDggY29sdW1uIG1vZGU6ICVsZCBNQlxuIiwgc2l6ZSA+PiAyMCk7CSovCiAJfQpAQCAtMjMwLDcgKzIzMCw3IEBACiAJICovCiAJaWYgKChzaXplX2IwIDwgMHgwMjAwMDAwMCkgJiYgKHNpemVfYjEgPCAweDAyMDAwMDAwKSkgewogCQkvKiByZWR1Y2UgdG8gMTUuNiB1cyAoNjIuNCB1cyAvIHF1YWQpICovCi0JCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfNEs7CS8qRElWMTYgKi8KKwkJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfNEs7CS8qRElWMTYgKi8KIAkJdWRlbGF5ICgxMDAwKTsKIAl9CiAKQEAgLTIzOSwxOCArMjM5LDE4IEBACiAJICovCiAJaWYgKHNpemVfYjEgPiBzaXplX2IwKSB7CS8qIFNEUkFNIEJhbmsgMSBpcyBiaWdnZXIgLSBtYXAgZmlyc3QgICAqLwogCi0JCW1lbWN0bC0+bWVtY19vcjMgPSAoKC1zaXplX2IxKSAmIDB4RkZGRjAwMDApIHwgQ0ZHX09SX1RJTUlOR19TRFJBTTsKKwkJbWVtY3RsLT5tZW1jX29yMyA9ICgoLXNpemVfYjEpICYgMHhGRkZGMDAwMCkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKIAkJbWVtY3RsLT5tZW1jX2JyMyA9Ci0JCQkoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CisJCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCiAJCWlmIChzaXplX2IwID4gMCkgewogCQkJLyoKIAkJCSAqIFBvc2l0aW9uIEJhbmsgMCBpbW1lZGlhdGVseSBhYm92ZSBCYW5rIDEKIAkJCSAqLwogCQkJbWVtY3RsLT5tZW1jX29yMiA9Ci0JCQkJKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07CisJCQkJKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOwogCQkJbWVtY3RsLT5tZW1jX2JyMiA9Ci0JCQkJKChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVikKKwkJCQkoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVikKIAkJCQkrIHNpemVfYjE7CiAJCX0gZWxzZSB7CiAJCQl1bnNpZ25lZCBsb25nIHJlZzsKQEAgLTI2NCwyNCArMjY0LDI0IEBACiAKIAkJCS8qIGFkanVzdCByZWZyZXNoIHJhdGUgZGVwZW5kaW5nIG9uIFNEUkFNIHR5cGUsIG9uZSBiYW5rICovCiAJCQlyZWcgPSBtZW1jdGwtPm1lbWNfbXB0cHI7Ci0JCQlyZWcgPj49IDE7CS8qIHJlZHVjZSB0byBDRkdfTVBUUFJfMUJLXzhLIC8gXzRLICovCisJCQlyZWcgPj49IDE7CS8qIHJlZHVjZSB0byBDT05GSUdfU1lTX01QVFBSXzFCS184SyAvIF80SyAqLwogCQkJbWVtY3RsLT5tZW1jX21wdHByID0gcmVnOwogCQl9CiAKIAl9IGVsc2UgewkJCS8qIFNEUkFNIEJhbmsgMCBpcyBiaWdnZXIgLSBtYXAgZmlyc3QgICAqLwogCi0JCW1lbWN0bC0+bWVtY19vcjIgPSAoKC1zaXplX2IwKSAmIDB4RkZGRjAwMDApIHwgQ0ZHX09SX1RJTUlOR19TRFJBTTsKKwkJbWVtY3RsLT5tZW1jX29yMiA9ICgoLXNpemVfYjApICYgMHhGRkZGMDAwMCkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKIAkJbWVtY3RsLT5tZW1jX2JyMiA9Ci0JCQkJKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOworCQkJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CiAKIAkJaWYgKHNpemVfYjEgPiAwKSB7CiAJCQkvKgogCQkJICogUG9zaXRpb24gQmFuayAxIGltbWVkaWF0ZWx5IGFib3ZlIEJhbmsgMAogCQkJICovCiAJCQltZW1jdGwtPm1lbWNfb3IzID0KLQkJCQkJKCgtc2l6ZV9iMSkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07CisJCQkJCSgoLXNpemVfYjEpICYgMHhGRkZGMDAwMCkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKIAkJCW1lbWN0bC0+bWVtY19icjMgPQotCQkJCQkoKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WKQorCQkJCQkoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVikKIAkJCQkJKyBzaXplX2IwOwogCQl9IGVsc2UgewogCQkJdW5zaWduZWQgbG9uZyByZWc7CkBAIC0yOTUsNyArMjk1LDcgQEAKIAogCQkJLyogYWRqdXN0IHJlZnJlc2ggcmF0ZSBkZXBlbmRpbmcgb24gU0RSQU0gdHlwZSwgb25lIGJhbmsgKi8KIAkJCXJlZyA9IG1lbWN0bC0+bWVtY19tcHRwcjsKLQkJCXJlZyA+Pj0gMTsJLyogcmVkdWNlIHRvIENGR19NUFRQUl8xQktfOEsgLyBfNEsgKi8KKwkJCXJlZyA+Pj0gMTsJLyogcmVkdWNlIHRvIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLIC8gXzRLICovCiAJCQltZW1jdGwtPm1lbWNfbXB0cHIgPSByZWc7CiAJCX0KIAl9CkBAIC0zMTgsNyArMzE4LDcgQEAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1hbXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLAogCQkJCQkJICAgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKQEAgLTM0Myw3ICszNDMsNyBAQAogCXVuc2lnbmVkIHNob3J0IHJkX21zayA9IDB4MDJBMDsKIAogCS8qIEhXLUlEIHBpbi1kZWZpbml0aW9uICovCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlpbW1yLT5pbV9pb3BvcnQuaW9wX3BkZGlyICY9IH4ocmRfbXNrKTsKIAlpbW1yLT5pbV9pb3BvcnQuaW9wX3BkcGFyICY9IH4ocmRfbXNrKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2V0eDA5NC9mbGFzaC5jIGIvYm9hcmQvZXR4MDk0L2ZsYXNoLmMKaW5kZXggOThhN2MwYy4uZmE1MWM5MCAxMDA2NDQKLS0tIGEvYm9hcmQvZXR4MDk0L2ZsYXNoLmMKKysrIGIvYm9hcmQvZXR4MDk0L2ZsYXNoLmMKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtMzgsMTMgKzM4LDEzIEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMCwgc2l6ZV9iMTsKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtNzUsNDcgKzc1LDQ3IEBACiAJfQogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7CiAjaWZkZWYgQ09ORklHX0ZMQVNIXzE2QklUCi0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfViB8IEJSX1BTXzE2OyAvKiAxNiBCaXQgZGF0YSBwb3J0ICovCisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1YgfCBCUl9QU18xNjsgLyogMTYgQml0IGRhdGEgcG9ydCAqLwogI2Vsc2UKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOworCW1lbWN0bC0+bWVtY19icjAgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOwogI2VuZGlmCiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKIAlpZiAoc2l6ZV9iMSkgewotCQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMSAmIDB4RkZGRjgwMDApOworCQltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjEgJiAweEZGRkY4MDAwKTsKICNpZmRlZiBDT05GSUdfRkxBU0hfMTZCSVQKLQkJbWVtY3RsLT5tZW1jX2JyMSA9ICgoQ0ZHX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSAmIEJSX0JBX01TSykgfAorCQltZW1jdGwtPm1lbWNfYnIxID0gKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSAmIEJSX0JBX01TSykgfAogCQkJCSAgICBCUl9NU19HUENNIHwgQlJfViB8IEJSX1BTXzE2OwogI2Vsc2UKLQkJbWVtY3RsLT5tZW1jX2JyMSA9ICgoQ0ZHX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSAmIEJSX0JBX01TSykgfAorCQltZW1jdGwtPm1lbWNfYnIxID0gKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSAmIEJSX0JBX01TSykgfAogCQkJCSAgICBCUl9NU19HUENNIHwgQlJfVjsKICNlbmRpZgogCiAJCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQkJc2l6ZV9iMSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCksCisJCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSwKIAkJCQkJICAmZmxhc2hfaW5mb1sxXSk7CiAKLQkJZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOworCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkJICAgICAgJmZsYXNoX2luZm9bMV0pOwogI2VuZGlmCiAJfSBlbHNlIHsKQEAgLTM4OCwxMCArMzg4LDEwIEBACiAKIAl9CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmICgiKiogRVJST1I6IHNlY3RvciBjb3VudCAlZCA+IG1heCAoJWQpICoqXG4iLAotCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOwotCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkgewpAQCAtNTQ4LDcgKzU0OCw3IEBACiAjZWxzZQogCQkJd2hpbGUgKChzZWN0X2FkZHJbMF0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7CiAjZW5kaWYKLQkJCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQlyZXR1cm4gMTsKIAkJCQl9CkBAIC02OTMsNyArNjkzLDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKigodnVfc2hvcnQgKilkZXN0KSAmIDB4MDA4MCkgIT0gKGhpZ2hfZGF0YSAmIDB4MDA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KQEAgLTczMyw3ICs3MzMsNyBAQAogCXdoaWxlICgoKigodnVfbG9uZyAqKWRlc3QpICYgMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAweDAwODAwMDgwKSkgewogI2VuZGlmCiAKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2V2YjQ1MTAvZmxhc2guYyBiL2JvYXJkL2V2YjQ1MTAvZmxhc2guYwppbmRleCBiY2VmYWZjLi5jOWM2ZTAyIDEwMDY0NAotLS0gYS9ib2FyZC9ldmI0NTEwL2ZsYXNoLmMKKysrIGIvYm9hcmQvZXZiNDUxMC9mbGFzaC5jCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8Zmxhc2guaD4KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIHR5cGVkZWYgZW51bSB7CiAJRkxBU0hfREVWX1U5XzUxMktCID0gMCwKQEAgLTMyNyw3ICszMjcsNyBAQAogCXMxNiBhbWQxNjAgPSAtMTsKIAl1MzIgYW1kMTYwYmFzZSA9IDA7CiAKLSNpZiBDRkdfTUFYX0ZMQVNIX0JBTktTID09IDIKKyNpZiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyA9PSAyCiAJczE2IGFtZDA0MCA9IC0xOwogCXUzMiBhbWQwNDBiYXNlID0gMDsKICNlbmRpZgpAQCAtMzM2LDcgKzMzNiw3IEBACiAJaWYgKF9kZXRlY3RGbGFzaCAoRkxBU0hfREVWX1U3XzJNQiwgUEhZU19GTEFTSF8xLCAweDEsIDB4NDkpKSB7CiAJCWFtZDE2MCA9IDA7CiAJCWFtZDE2MGJhc2UgPSBQSFlTX0ZMQVNIXzE7Ci0jaWYgQ0ZHX01BWF9GTEFTSF9CQU5LUyA9PSAxCisjaWYgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgPT0gMQogCX0KICNlbHNlCiAJCWlmIChfZGV0ZWN0Rmxhc2gKQEAgLTQwMSw3ICs0MDEsNyBAQAogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCiAJCSAgICAgICBDT05GSUdfRU5WX0FERFIsIENPTkZJR19FTlZfQUREUiArIENPTkZJR19FTlZfU0laRSAtIDEsIGluZm8pOwogCi0jaWYgQ0ZHX01BWF9GTEFTSF9CQU5LUyA9PSAyCisjaWYgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgPT0gMgogCS8qIENvbmZpZ3VyZSBBTUQgQW0yOUxWMDQwQiAoNTEyS0IpICovCiAJaW5mbyA9ICZmbGFzaF9pbmZvW2FtZDA0MF07CiAJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9ERVZfVTlfNTEyS0I7CkBAIC00MjEsNyArNDIxLDcgQEAKICNlbmRpZgogCiAJcmV0dXJuIGZsYXNoX2luZm9bMF0uc2l6ZQotI2lmIENGR19NQVhfRkxBU0hfQkFOS1MgPT0gMgorI2lmIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID09IDIKIAkJKyBmbGFzaF9pbmZvWzFdLnNpemUKICNlbmRpZgogCQk7CkBAIC00NzgsNyArNDc4LDcgQEAKIAkJCWVycm9yID0gX2ZsYXNoX3BvbGwgKGluZm8tPmZsYXNoX2lkLAogCQkJCQkgICAgIGluZm8tPgogCQkJCQkgICAgIHN0YXJ0W2ldIHwgQ0FDSEVfRElTQUJMRV9NQVNLLAotCQkJCQkgICAgIDB4RkYsIENGR19GTEFTSF9FUkFTRV9UT1VUKTsKKwkJCQkJICAgICAweEZGLCBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpOwogCQkJRkxBU0hfQ01EX1JFU0VUIChpbmZvLT5mbGFzaF9pZCwKIAkJCQkJIChpbmZvLT4KIAkJCQkJICBzdGFydFswXSB8IENBQ0hFX0RJU0FCTEVfTUFTSykpOwpAQCAtNTI0LDcgKzUyNCw3IEBACiAJCS8qICBDaGVjayBpZiB0aGUgd3JpdGUgaXMgZG9uZSAqLwogCQlmb3IgKGkgPSAwOyBpIDwgMHhmZjsgaSsrKTsKIAkJZXJyb3IgPSBfZmxhc2hfcG9sbCAoaW5mby0+Zmxhc2hfaWQsICh1MzIpIGJwLCAqYnBzLAotCQkJCSAgICAgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpOworCQkJCSAgICAgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKTsKIAkJaWYgKGVycm9yKSB7CiAJCQlyZXR1cm4gZXJyb3I7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2V2YjY0MjYwL2V2YjY0MjYwLmMgYi9ib2FyZC9ldmI2NDI2MC9ldmI2NDI2MC5jCmluZGV4IGJjMTA4ZDAuLjgwNzU2YTUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2V2YjY0MjYwL2V2YjY0MjYwLmMKKysrIGIvYm9hcmQvZXZiNjQyNjAvZXZiNjQyNjAuYwpAQCAtNTcsNyArNTcsNyBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAvKiB0aGlzIGlzIHRoZSBjdXJyZW50IEdUIHJlZ2lzdGVyIHNwYWNlIGxvY2F0aW9uICovCi0vKiBpdCBzdGFydHMgYXQgQ0ZHX0RGTF9HVF9SRUdTIGJ1dCBtb3ZlcyBsYXRlciB0byBDRkdfR1RfUkVHUyAqLworLyogaXQgc3RhcnRzIGF0IENPTkZJR19TWVNfREZMX0dUX1JFR1MgYnV0IG1vdmVzIGxhdGVyIHRvIENPTkZJR19TWVNfR1RfUkVHUyAqLwogCiAvKiBVbmZvcnR1bmF0ZWx5LCB3ZSBjYW50IGNoYW5nZSBpdCB3aGlsZSB3ZSBhcmUgaW4gZmxhc2gsIHNvIHdlIGluaXRpYWxpemUgaXQKICAqIHRvIHRoZSAiZmluYWwiIHZhbHVlLiBUaGlzIG1lYW5zIHRoYXQgYW55IGRlYnVnX2xlZCBjYWxscyBiZWZvcmUKQEAgLTY1LDcgKzY1LDcgQEAKICAqIFNlZSBhbHNvIG15X3JlbWFwX2d0X3JlZ3MgYmVsb3cuIChOVEwpCiAgKi8KIAotdW5zaWduZWQgaW50IElOVEVSTkFMX1JFR19CQVNFX0FERFIgPSBDRkdfR1RfUkVHUzsKK3Vuc2lnbmVkIGludCBJTlRFUk5BTF9SRUdfQkFTRV9BRERSID0gQ09ORklHX1NZU19HVF9SRUdTOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKQEAgLTEwMCwyNiArMTAwLDI2IEBACiB7CiAJLyogbW92ZSBQQ0kgc3R1ZmYgb3V0IG9mIHRoZSB3YXkgLSBOVEwgKi8KIAkvKiBtYXAgUENJIEhvc3QgMCAqLwotCXBjaU1hcFNwYWNlKFBDSV9IT1NUMCwgUENJX1JFR0lPTjAsIENGR19QQ0kwXzBfTUVNX1NQQUNFLAotCQlDRkdfUENJMF8wX01FTV9TUEFDRSwgQ0ZHX1BDSTBfTUVNX1NJWkUpOworCXBjaU1hcFNwYWNlKFBDSV9IT1NUMCwgUENJX1JFR0lPTjAsIENPTkZJR19TWVNfUENJMF8wX01FTV9TUEFDRSwKKwkJQ09ORklHX1NZU19QQ0kwXzBfTUVNX1NQQUNFLCBDT05GSUdfU1lTX1BDSTBfTUVNX1NJWkUpOwogCiAJcGNpTWFwU3BhY2UoUENJX0hPU1QwLCBQQ0lfUkVHSU9OMSwgMCwgMCwgMCk7CiAJcGNpTWFwU3BhY2UoUENJX0hPU1QwLCBQQ0lfUkVHSU9OMiwgMCwgMCwgMCk7CiAJcGNpTWFwU3BhY2UoUENJX0hPU1QwLCBQQ0lfUkVHSU9OMywgMCwgMCwgMCk7CiAKLQlwY2lNYXBTcGFjZShQQ0lfSE9TVDAsIFBDSV9JTywgQ0ZHX1BDSTBfSU9fU1BBQ0VfUENJLAotCQlDRkdfUENJMF9JT19TUEFDRSwgQ0ZHX1BDSTBfSU9fU0laRSk7CisJcGNpTWFwU3BhY2UoUENJX0hPU1QwLCBQQ0lfSU8sIENPTkZJR19TWVNfUENJMF9JT19TUEFDRV9QQ0ksCisJCUNPTkZJR19TWVNfUENJMF9JT19TUEFDRSwgQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUpOwogCiAJLyogbWFwIFBDSSBIb3N0IDEgKi8KLQlwY2lNYXBTcGFjZShQQ0lfSE9TVDEsIFBDSV9SRUdJT04wLCBDRkdfUENJMV8wX01FTV9TUEFDRSwKLQkJQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UsIENGR19QQ0kxX01FTV9TSVpFKTsKKwlwY2lNYXBTcGFjZShQQ0lfSE9TVDEsIFBDSV9SRUdJT04wLCBDT05GSUdfU1lTX1BDSTFfMF9NRU1fU1BBQ0UsCisJCUNPTkZJR19TWVNfUENJMV8wX01FTV9TUEFDRSwgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFKTsKIAogCXBjaU1hcFNwYWNlKFBDSV9IT1NUMSwgUENJX1JFR0lPTjEsIDAsIDAsIDApOwogCXBjaU1hcFNwYWNlKFBDSV9IT1NUMSwgUENJX1JFR0lPTjIsIDAsIDAsIDApOwogCXBjaU1hcFNwYWNlKFBDSV9IT1NUMSwgUENJX1JFR0lPTjMsIDAsIDAsIDApOwogCi0JcGNpTWFwU3BhY2UoUENJX0hPU1QxLCBQQ0lfSU8sIENGR19QQ0kxX0lPX1NQQUNFX1BDSSwKLQkJQ0ZHX1BDSTFfSU9fU1BBQ0UsIENGR19QQ0kxX0lPX1NJWkUpOworCXBjaU1hcFNwYWNlKFBDSV9IT1NUMSwgUENJX0lPLCBDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0VfUENJLAorCQlDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0UsIENPTkZJR19TWVNfUENJMV9JT19TSVpFKTsKIAogCS8qIFBDSSBpbnRlcmZhY2Ugc2V0dGluZ3MgKi8KIAlHVF9SRUdfV1JJVEUoUENJXzBUSU1FT1VUX1JFVFJZLCAweGZmZmYpOwpAQCAtMjAxLDcgKzIwMSw3IEBACiAJICogdGhhdCBpZiBpdCdzIG5vdCBhdCB0aGUgcG93ZXItb24gbG9jYXRpb24sIGl0J3Mgd2hlcmUgd2UgcHV0CiAJICogaXQgbGFzdCB0aW1lLiAoaHViZXIpCiAJICovCi0JbXlfcmVtYXBfZ3RfcmVncyhDRkdfREZMX0dUX1JFR1MsIENGR19HVF9SRUdTKTsKKwlteV9yZW1hcF9ndF9yZWdzKENPTkZJR19TWVNfREZMX0dUX1JFR1MsIENPTkZJR19TWVNfR1RfUkVHUyk7CiAKIAlndF9wY2lfY29uZmlnKCk7CiAKQEAgLTIxOCw3ICsyMTgsNyBAQAogCUdUX1JFR19XUklURShDUFVfSU5UXzNfTUFTSywgMCk7CiAKIAkvKiBub3csIG9udG8gdGhlIGNvbmZpZ3VyYXRpb24gKi8KLQlHVF9SRUdfV1JJVEUoU0RSQU1fQ09ORklHVVJBVElPTiwgQ0ZHX1NEUkFNX0NPTkZJRyk7CisJR1RfUkVHX1dSSVRFKFNEUkFNX0NPTkZJR1VSQVRJT04sIENPTkZJR19TWVNfU0RSQU1fQ09ORklHKTsKIAogCS8qIC0tLS0tIERFVklDRSBCVVMgU0VUVElOR1MgLS0tLS0tICovCiAKQEAgLTI0NSw2MSArMjQ1LDYxIEBACiAJLyogWnVtYSBoYXMgbm8gU1JBTSAqLwogCXNyYW1fYm9vdCA9IDA7CiAjZWxzZQotCWlmIChtZW1vcnlHZXREZXZpY2VCYXNlQWRkcmVzcyhERVZJQ0UwKSAmJiAweGZmZjAwMDAwID09IENGR19NT05JVE9SX0JBU0UpCisJaWYgKG1lbW9yeUdldERldmljZUJhc2VBZGRyZXNzKERFVklDRTApICYmIDB4ZmZmMDAwMDAgPT0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpCiAJCXNyYW1fYm9vdCA9IDE7CiAjZW5kaWYKIAotCQltZW1vcnlNYXBEZXZpY2VTcGFjZShERVZJQ0UwLCBDRkdfREVWMF9TUEFDRSwgQ0ZHX0RFVjBfU0laRSk7CisJCW1lbW9yeU1hcERldmljZVNwYWNlKERFVklDRTAsIENPTkZJR19TWVNfREVWMF9TUEFDRSwgQ09ORklHX1NZU19ERVYwX1NJWkUpOwogCi0JbWVtb3J5TWFwRGV2aWNlU3BhY2UoREVWSUNFMSwgQ0ZHX0RFVjFfU1BBQ0UsIENGR19ERVYxX1NJWkUpOwotCW1lbW9yeU1hcERldmljZVNwYWNlKERFVklDRTIsIENGR19ERVYyX1NQQUNFLCBDRkdfREVWMl9TSVpFKTsKLQltZW1vcnlNYXBEZXZpY2VTcGFjZShERVZJQ0UzLCBDRkdfREVWM19TUEFDRSwgQ0ZHX0RFVjNfU0laRSk7CisJbWVtb3J5TWFwRGV2aWNlU3BhY2UoREVWSUNFMSwgQ09ORklHX1NZU19ERVYxX1NQQUNFLCBDT05GSUdfU1lTX0RFVjFfU0laRSk7CisJbWVtb3J5TWFwRGV2aWNlU3BhY2UoREVWSUNFMiwgQ09ORklHX1NZU19ERVYyX1NQQUNFLCBDT05GSUdfU1lTX0RFVjJfU0laRSk7CisJbWVtb3J5TWFwRGV2aWNlU3BhY2UoREVWSUNFMywgQ09ORklHX1NZU19ERVYzX1NQQUNFLCBDT05GSUdfU1lTX0RFVjNfU0laRSk7CiAKIAkvKiBjb25maWd1cmUgZGV2aWNlIHRpbWluZyAqLwotI2lmZGVmIENGR19ERVYwX1BBUgorI2lmZGVmIENPTkZJR19TWVNfREVWMF9QQVIKIAlpZiAoIXNyYW1fYm9vdCkKLQkJR1RfUkVHX1dSSVRFKERFVklDRV9CQU5LMFBBUkFNRVRFUlMsIENGR19ERVYwX1BBUik7CisJCUdUX1JFR19XUklURShERVZJQ0VfQkFOSzBQQVJBTUVURVJTLCBDT05GSUdfU1lTX0RFVjBfUEFSKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0RFVjFfUEFSCi0JR1RfUkVHX1dSSVRFKERFVklDRV9CQU5LMVBBUkFNRVRFUlMsIENGR19ERVYxX1BBUik7CisjaWZkZWYgQ09ORklHX1NZU19ERVYxX1BBUgorCUdUX1JFR19XUklURShERVZJQ0VfQkFOSzFQQVJBTUVURVJTLCBDT05GSUdfU1lTX0RFVjFfUEFSKTsKICNlbmRpZgotI2lmZGVmIENGR19ERVYyX1BBUgotCUdUX1JFR19XUklURShERVZJQ0VfQkFOSzJQQVJBTUVURVJTLCBDRkdfREVWMl9QQVIpOworI2lmZGVmIENPTkZJR19TWVNfREVWMl9QQVIKKwlHVF9SRUdfV1JJVEUoREVWSUNFX0JBTksyUEFSQU1FVEVSUywgQ09ORklHX1NZU19ERVYyX1BBUik7CiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19FVkI2NDI2MAotI2lmZGVmIENGR18zMkJJVF9CT09UX1BBUgorI2lmZGVmIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIKIAkvKiBkZXRlY3QgaWYgd2UgYXJlIGJvb3RpbmcgZnJvbSB0aGUgMzIgYml0IGZsYXNoICovCiAJaWYgKEdUUkVHUkVBRChERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMpICYgKDB4MyA8PCAyMCkpIHsKIAkJLyogMzIgYml0IGJvb3QgZmxhc2ggKi8KLQkJR1RfUkVHX1dSSVRFKERFVklDRV9CQU5LM1BBUkFNRVRFUlMsIENGR184QklUX0JPT1RfUEFSKTsKLQkJR1RfUkVHX1dSSVRFKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ0ZHXzMyQklUX0JPT1RfUEFSKTsKKwkJR1RfUkVHX1dSSVRFKERFVklDRV9CQU5LM1BBUkFNRVRFUlMsIENPTkZJR19TWVNfOEJJVF9CT09UX1BBUik7CisJCUdUX1JFR19XUklURShERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMsIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIpOwogCX0gZWxzZSB7CiAJCS8qIDggYml0IGJvb3QgZmxhc2ggKi8KLQkJR1RfUkVHX1dSSVRFKERFVklDRV9CQU5LM1BBUkFNRVRFUlMsIENGR18zMkJJVF9CT09UX1BBUik7Ci0JCUdUX1JFR19XUklURShERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMsIENGR184QklUX0JPT1RfUEFSKTsKKwkJR1RfUkVHX1dSSVRFKERFVklDRV9CQU5LM1BBUkFNRVRFUlMsIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIpOworCQlHVF9SRUdfV1JJVEUoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDT05GSUdfU1lTXzhCSVRfQk9PVF9QQVIpOwogCX0KICNlbHNlCiAJLyogOCBiaXQgYm9vdCBmbGFzaCBvbmx5ICovCi0JR1RfUkVHX1dSSVRFKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ0ZHXzhCSVRfQk9PVF9QQVIpOworCUdUX1JFR19XUklURShERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMsIENPTkZJR19TWVNfOEJJVF9CT09UX1BBUik7CiAjZW5kaWYKICNlbHNlIC8qIENPTkZJR19FVkI2NDI2MCBub3QgZGVmaW5lZCAqLwogCQkvKiBXZSBhcmUgYm9vdGluZyBmcm9tIDE2LWJpdCBmbGFzaC4KIAkJICovCi0JR1RfUkVHX1dSSVRFKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ0ZHXzE2QklUX0JPT1RfUEFSKTsKKwlHVF9SRUdfV1JJVEUoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDT05GSUdfU1lTXzE2QklUX0JPT1RfUEFSKTsKICNlbmRpZgogCiAJZ3RfY3B1X2NvbmZpZygpOwogCiAJLyogTVBQIHNldHVwICovCi0JR1RfUkVHX1dSSVRFKE1QUF9DT05UUk9MMCwgQ0ZHX01QUF9DT05UUk9MXzApOwotCUdUX1JFR19XUklURShNUFBfQ09OVFJPTDEsIENGR19NUFBfQ09OVFJPTF8xKTsKLQlHVF9SRUdfV1JJVEUoTVBQX0NPTlRST0wyLCBDRkdfTVBQX0NPTlRST0xfMik7Ci0JR1RfUkVHX1dSSVRFKE1QUF9DT05UUk9MMywgQ0ZHX01QUF9DT05UUk9MXzMpOworCUdUX1JFR19XUklURShNUFBfQ09OVFJPTDAsIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMCk7CisJR1RfUkVHX1dSSVRFKE1QUF9DT05UUk9MMSwgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8xKTsKKwlHVF9SRUdfV1JJVEUoTVBQX0NPTlRST0wyLCBDT05GSUdfU1lTX01QUF9DT05UUk9MXzIpOworCUdUX1JFR19XUklURShNUFBfQ09OVFJPTDMsIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMyk7CiAKLQlHVF9SRUdfV1JJVEUoR1BQX0xFVkVMX0NPTlRST0wsIENGR19HUFBfTEVWRUxfQ09OVFJPTCk7Ci0JR1RfUkVHX1dSSVRFKFNFUklBTF9QT1JUX01VTFRJUExFWCwgQ0ZHX1NFUklBTF9QT1JUX01VWCk7CisJR1RfUkVHX1dSSVRFKEdQUF9MRVZFTF9DT05UUk9MLCBDT05GSUdfU1lTX0dQUF9MRVZFTF9DT05UUk9MKTsKKwlHVF9SRUdfV1JJVEUoU0VSSUFMX1BPUlRfTVVMVElQTEVYLCBDT05GSUdfU1lTX1NFUklBTF9QT1JUX01VWCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTMwOSw3ICszMDksNyBAQAogaW50IG1pc2NfaW5pdF9yICh2b2lkKQogewogCWljYWNoZV9lbmFibGUoKTsKLSNpZmRlZiBDRkdfTDIKKyNpZmRlZiBDT05GSUdfU1lTX0wyCiAJbDJjYWNoZV9lbmFibGUoKTsKICNlbmRpZgogCkBAIC0zMzAsOSArMzMwLDkgQEAKIAkgKiBiYWNrIHRvIHRoZSB3YXkgdGhleSBzaG91bGQgYmUuICh3ZSdyZSBydW5uaW5nIGZyb20gbWFpbgogCSAqIG1lbW9yeSBhdCB0aGlzIHBvaW50IG5vdyAqLwogCi0JaWYgKG1lbW9yeUdldERldmljZUJhc2VBZGRyZXNzKERFVklDRTApID09IENGR19NT05JVE9SX0JBU0UpIHsKLQkJbWVtb3J5TWFwRGV2aWNlU3BhY2UoREVWSUNFMCwgQ0ZHX0RFVjBfU1BBQ0UsIENGR19ERVYwX1NJWkUpOwotCQltZW1vcnlNYXBEZXZpY2VTcGFjZShCT09UX0RFVklDRSwgQ0ZHX0ZMQVNIX0JBU0UsIF8xTSk7CisJaWYgKG1lbW9yeUdldERldmljZUJhc2VBZGRyZXNzKERFVklDRTApID09IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSB7CisJCW1lbW9yeU1hcERldmljZVNwYWNlKERFVklDRTAsIENPTkZJR19TWVNfREVWMF9TUEFDRSwgQ09ORklHX1NZU19ERVYwX1NJWkUpOworCQltZW1vcnlNYXBEZXZpY2VTcGFjZShCT09UX0RFVklDRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBfMU0pOwogCX0KIAogCS8qIG5vdywganVtcCB0byB0aGUgbWFpbiBVLUJvb3QgYm9hcmQgaW5pdCBjb2RlICovCkBAIC0zNTAsNyArMzUwLDcgQEAKIGludAogY2hlY2tib2FyZCAodm9pZCkKIHsKLQlwdXRzICgiQm9hcmQ6ICIgQ0ZHX0JPQVJEX05BTUUgIlxuIik7CisJcHV0cyAoIkJvYXJkOiAiIENPTkZJR19TWVNfQk9BUkRfTkFNRSAiXG4iKTsKIAlyZXR1cm4gKDApOwogfQogCkBAIC0zNjUsMjkgKzM2NSwyOSBAQAogCWlmIChtb2RlID09IDEpIHsKIAkJc3dpdGNoIChsZWQpIHsKIAkJY2FzZSAwOgotCQkJYWRkciA9IChpbnQgKikoKHVuc2lnbmVkIGludClDRkdfREVWMV9TUEFDRSB8IDB4MDgwMDApOworCQkJYWRkciA9IChpbnQgKikoKHVuc2lnbmVkIGludClDT05GSUdfU1lTX0RFVjFfU1BBQ0UgfCAweDA4MDAwKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgMToKLQkJCWFkZHIgPSAoaW50ICopKCh1bnNpZ25lZCBpbnQpQ0ZHX0RFVjFfU1BBQ0UgfCAweDBjMDAwKTsKKwkJCWFkZHIgPSAoaW50ICopKCh1bnNpZ25lZCBpbnQpQ09ORklHX1NZU19ERVYxX1NQQUNFIHwgMHgwYzAwMCk7CiAJCQlicmVhazsKIAogCQljYXNlIDI6Ci0JCQlhZGRyID0gKGludCAqKSgodW5zaWduZWQgaW50KUNGR19ERVYxX1NQQUNFIHwgMHgxMDAwMCk7CisJCQlhZGRyID0gKGludCAqKSgodW5zaWduZWQgaW50KUNPTkZJR19TWVNfREVWMV9TUEFDRSB8IDB4MTAwMDApOwogCQkJYnJlYWs7CiAJCX0KIAl9IGVsc2UgaWYgKG1vZGUgPT0gMCkgewogCQlzd2l0Y2ggKGxlZCkgewogCQljYXNlIDA6Ci0JCQlhZGRyID0gKGludCAqKSgodW5zaWduZWQgaW50KUNGR19ERVYxX1NQQUNFIHwgMHgxNDAwMCk7CisJCQlhZGRyID0gKGludCAqKSgodW5zaWduZWQgaW50KUNPTkZJR19TWVNfREVWMV9TUEFDRSB8IDB4MTQwMDApOwogCQkJYnJlYWs7CiAKIAkJY2FzZSAxOgotCQkJYWRkciA9IChpbnQgKikoKHVuc2lnbmVkIGludClDRkdfREVWMV9TUEFDRSB8IDB4MTgwMDApOworCQkJYWRkciA9IChpbnQgKikoKHVuc2lnbmVkIGludClDT05GSUdfU1lTX0RFVjFfU1BBQ0UgfCAweDE4MDAwKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgMjoKLQkJCWFkZHIgPSAoaW50ICopKCh1bnNpZ25lZCBpbnQpQ0ZHX0RFVjFfU1BBQ0UgfCAweDFjMDAwKTsKKwkJCWFkZHIgPSAoaW50ICopKCh1bnNpZ25lZCBpbnQpQ09ORklHX1NZU19ERVYxX1NQQUNFIHwgMHgxYzAwMCk7CiAJCQlicmVhazsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2V2YjY0MjYwL2ZsYXNoLmMgYi9ib2FyZC9ldmI2NDI2MC9mbGFzaC5jCmluZGV4IGYyZDUzOTAuLjExNWU4Y2QgMTAwNjQ0Ci0tLSBhL2JvYXJkL2V2YjY0MjYwL2ZsYXNoLmMKKysrIGIvYm9hcmQvZXZiNjQyNjAvZmxhc2guYwpAQCAtNDYsNyArNDYsNyBAQAogaW50IGZsYXNoX2VyYXNlX2ludGVsKGZsYXNoX2luZm9fdCAqaW5mbywgaW50IHNfZmlyc3QsIGludCBzX2xhc3QpOwogaW50IHdyaXRlX3dvcmRfaW50ZWwoYmFua19hZGRyX3QgYWRkciwgYmFua193b3JkX3QgdmFsdWUpOwogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC02NywxNiArNjcsMTYgQEAKIAl1bnNpZ25lZCBsb25nIGJhc2UsIGZsYXNoX3NpemU7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKIAkvKiB0aGUgYm9vdCBmbGFzaCAqLwotCWJhc2UgPSBDRkdfRkxBU0hfQkFTRTsKLSNpZm5kZWYgQ0ZHX0JPT1RfRkxBU0hfV0lEVEgKLSNkZWZpbmUgQ0ZHX0JPT1RfRkxBU0hfV0lEVEgJMQorCWJhc2UgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CisjaWZuZGVmIENPTkZJR19TWVNfQk9PVF9GTEFTSF9XSURUSAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfRkxBU0hfV0lEVEgJMQogI2VuZGlmCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKENGR19CT09UX0ZMQVNIX1dJRFRILCAodnVfbG9uZyAqKWJhc2UsCisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKENPTkZJR19TWVNfQk9PVF9GTEFTSF9XSURUSCwgKHZ1X2xvbmcgKiliYXNlLAogCSAgICAgICAgICAgICAgICAgICAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKICNpZm5kZWYgQ09ORklHX1AzRzQKQEAgLTkwLDkgKzkwLDkgQEAKIAkJCWJhc2UsIHNpemVfYjAsIHNpemVfYjA8PDIwKTsKIAl9CiAKLQliYXNlID0gbWVtb3J5R2V0RGV2aWNlQmFzZUFkZHJlc3MoQ0ZHX0VYVFJBX0ZMQVNIX0RFVklDRSk7Ci0JZm9yKGk9MTtpPENGR19NQVhfRkxBU0hfQkFOS1M7aSsrKSB7Ci0JICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSA9IGZsYXNoX2dldF9zaXplKENGR19FWFRSQV9GTEFTSF9XSURUSCwgKHZ1X2xvbmcgKiliYXNlLCAmZmxhc2hfaW5mb1tpXSk7CisJYmFzZSA9IG1lbW9yeUdldERldmljZUJhc2VBZGRyZXNzKENPTkZJR19TWVNfRVhUUkFfRkxBU0hfREVWSUNFKTsKKwlmb3IoaT0xO2k8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7aSsrKSB7CisJICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSA9IGZsYXNoX2dldF9zaXplKENPTkZJR19TWVNfRVhUUkFfRkxBU0hfV0lEVEgsICh2dV9sb25nICopYmFzZSwgJmZsYXNoX2luZm9baV0pOwogCiAjaWZuZGVmIENPTkZJR19QM0c0CiAJICAgIHByaW50ZigiWyIpOwpAQCAtMTExLDEyICsxMTEsMTIgQEAKIAkgICAgYmFzZSs9c2l6ZTsKIAl9CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JICAgICAgICAgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCSAgICAgICAgICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKLQkgICAgICAgICAgICAgIGZsYXNoX2dldF9pbmZvKENGR19NT05JVE9SX0JBU0UpKTsKKwkgICAgICAgICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCSAgICAgICAgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJICAgICAgICAgICAgICBmbGFzaF9nZXRfaW5mbyhDT05GSUdfU1lTX01PTklUT1JfQkFTRSkpOwogI2VuZGlmCiAKICNpZmRlZiAgQ09ORklHX0VOVl9JU19JTl9GTEFTSApAQCAtMTgzLDEzICsxODMsMTMgQEAKIAlpbnQgaTsKIAlmbGFzaF9pbmZvX3QgKiBpbmZvOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkgKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkgKyspIHsKIAkJaW5mbyA9ICYgZmxhc2hfaW5mb1tpXTsKIAkJaWYgKGluZm8tPnN0YXJ0WzBdIDw9IGJhc2UgJiYgYmFzZSA8PSBpbmZvLT5zdGFydFswXSArIGluZm8tPnNpemUgLSAxKQogCQkJYnJlYWs7CiAJfQogCi0JcmV0dXJuIGkgPT0gQ0ZHX01BWF9GTEFTSF9CQU5LUyA/IDAgOiBpbmZvOworCXJldHVybiBpID09IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm87CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTY4Miw3ICs2ODIsNyBAQAogCWFkZHIgPSAodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAkvKiBicm9rZW4gZm9yIDJ4MTY6IFRPRE8gKi8KIAl3aGlsZSAoKGFkZHJbMF0gJiAweDgwKSAhPSAweDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC04NDYsNyArODQ2LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKigodnVfbG9uZyAqKWRlc3QpICYgMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAweDAwODAwMDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZXZiNjQyNjAvaW50ZWxfZmxhc2guYyBiL2JvYXJkL2V2YjY0MjYwL2ludGVsX2ZsYXNoLmMKaW5kZXggZWQ2YTJhMC4uOTk0MjY0YSAxMDA2NDQKLS0tIGEvYm9hcmQvZXZiNjQyNjAvaW50ZWxfZmxhc2guYworKysgYi9ib2FyZC9ldmI2NDI2MC9pbnRlbF9mbGFzaC5jCkBAIC0xNTcsNyArMTU3LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCWRvIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dmFsID0gMTsKIAkJCWdvdG8gZG9uZTsKIAkJfQpAQCAtMjM0LDcgKzIzNCw3IEBACiAJCQlkbyB7CiAJCQkJbm93ID0gZ2V0X3RpbWVyKHN0YXJ0KTsKIAotCQkJCWlmIChub3cgLSBlc3RhcnQgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChub3cgLSBlc3RhcnQgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dCAoc2VjdCAlZClcbiIsIHNlY3QpOwogCQkJCQloYWRlcnIgPSAxOwogCQkJCQlicmVhazsKZGlmZiAtLWdpdCBhL2JvYXJkL2V2YjY0MjYwL2ludGVsX2ZsYXNoLmggYi9ib2FyZC9ldmI2NDI2MC9pbnRlbF9mbGFzaC5oCmluZGV4IGRjMmFhMDAuLmNjM2EzMzkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2V2YjY0MjYwL2ludGVsX2ZsYXNoLmgKKysrIGIvYm9hcmQvZXZiNjQyNjAvaW50ZWxfZmxhc2guaApAQCAtNDIsNyArNDIsNyBAQAogLyogSUQgYW5kIExvY2sgQ29uZmlndXJhdGlvbiAqLwogI2RlZmluZSBDSElQX1JEX0lEX0xPQ0sJCTB4MDEJCS8qIEJpdCAwIG9mIGVhY2ggYnl0ZSAqLwogI2RlZmluZSBDSElQX1JEX0lEX01BTgkJMHg4OQkJLyogTWFudWZhY3R1cmVyIGNvZGUgPSAweDg5ICovCi0jZGVmaW5lIENISVBfUkRfSURfREVWCQlDRkdfRkxBU0hfSUQKKyNkZWZpbmUgQ0hJUF9SRF9JRF9ERVYJCUNPTkZJR19TWVNfRkxBU0hfSUQKIAogLyogZGltZW5zaW9ucyAqLwogI2RlZmluZSBDSElQX1dJRFRICQkyCQkvKiBjaGlwcyBhcmUgaW4gMTYgYml0IG1vZGUgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2V2YjY0MjYwL2xvY2FsLmggYi9ib2FyZC9ldmI2NDI2MC9sb2NhbC5oCmluZGV4IDNkOWI0NDMuLjhhM2Y0YjIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2V2YjY0MjYwL2xvY2FsLmgKKysrIGIvYm9hcmQvZXZiNjQyNjAvbG9jYWwuaApAQCAtMjYsNyArMjYsNyBAQAogLyogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQgKi8KIC8qICNkZWZpbmUgQ09ORklHX1JBTUJPT1RDT01NQU5EICovCiAvKiAjZGVmaW5lIENPTkZJR19ORlNCT09UQ09NTUFORCAqLwotLyogI2RlZmluZSBDRkdfQVVUT0xPQUQgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19BVVRPTE9BRCAqLwogLyogI2RlZmluZSBDT05GSUdfUFJFQk9PVCAqLwogCiAvKiBUaGVzZSBkb24ndCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXZiNjQyNjAvbWlzYy5TIGIvYm9hcmQvZXZiNjQyNjAvbWlzYy5TCmluZGV4IDQzOGRlYTYuLmYwOTUyOGQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2V2YjY0MjYwL21pc2MuUworKysgYi9ib2FyZC9ldmI2NDI2MC9taXNjLlMKQEAgLTE2LDcgKzE2LDcgQEAKIGJvYXJkX3JlbG9jYXRlX3JvbToKIAltZmxyCXI3CiAJLyogdXBkYXRlIHRoZSBsb2NhdGlvbiBvZiB0aGUgR1QgcmVnaXN0ZXJzICovCi0JbGlzCXIxMSwgQ0ZHX0dUX1JFR1NAaAorCWxpcwlyMTEsIENPTkZJR19TWVNfR1RfUkVHU0BoCiAJLyogaWYgd2UncmUgdXNpbmcgRUNDLCB3ZSBtdXN0IHVzZSB0aGUgRE1BIGVuZ2luZSB0byBjb3B5IG91cnNlbHZlcyAqLwogCWJsCXN0YXJ0X2lkbWFfdHJhbnNmZXJfMAogCWJsCXdhaXRfZm9yX2lkbWFfMApAQCAtMjksMTIgKzI5LDEyIEBACiBib2FyZF9pbml0X2VjYzoKIAltZmxyCXI3CiAJLyogTk9URTogcjEwIHN0aWxsIGNvbnRhaW5zIHRoZSBsb2NhdGlvbiB3ZSd2ZSBiZWVuIHJlbG9jYXRlZCB0bwotCSAqIHdoaWNoIGhhcHBlbnMgdG8gYmUgVE9QX09GX1JBTSAtIENGR19NT05JVE9SX0xFTiAqLworCSAqIHdoaWNoIGhhcHBlbnMgdG8gYmUgVE9QX09GX1JBTSAtIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gKi8KIAogCS8qIG5vdyB0aGF0IHdlJ3JlIHJ1bm5pbmcgZnJvbSByYW0sIGluaXQgdGhlIHJlc3Qgb2YgbWFpbiBtZW1vcnkKIAkgKiBmb3IgRUNDIHVzZSAqLwotCWxpcwlyOCwgQ0ZHX01PTklUT1JfTEVOQGgKLQlvcmkJcjgsIHI4LCBDRkdfTU9OSVRPUl9MRU5AbAorCWxpcwlyOCwgQ09ORklHX1NZU19NT05JVE9SX0xFTkBoCisJb3JpCXI4LCByOCwgQ09ORklHX1NZU19NT05JVE9SX0xFTkBsCiAKIAlkaXZ3CXIzLCByMTAsIHI4CiAKQEAgLTEyMCwxNSArMTIwLDE1IEBACiAJYmxyCiAjZW5kaWYKIAotI2lmZGVmIENGR19CT0FSRF9BU01fSU5JVAorI2lmZGVmIENPTkZJR19TWVNfQk9BUkRfQVNNX0lOSVQKIAkvKiBOT1RFOiB0cmFzaGVzIHIzLXI3ICovCiAJLmdsb2JsIGJvYXJkX2FzbV9pbml0CiBib2FyZF9hc21faW5pdDoKIAkvKiBqdXN0IG1vdmUgdGhlIEdUIHJlZ2lzdGVycyB0byB3aGVyZSB0aGV5IGJlbG9uZyAqLwotCWxpcwlyMywgQ0ZHX0RGTF9HVF9SRUdTQGgKLQlvcmkJcjMsIHIzLCBDRkdfREZMX0dUX1JFR1NAbAotCWxpcwlyNCwgQ0ZHX0dUX1JFR1NAaAotCW9yaQlyNCwgcjQsIENGR19HVF9SRUdTQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfREZMX0dUX1JFR1NAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfREZMX0dUX1JFR1NAbAorCWxpcwlyNCwgQ09ORklHX1NZU19HVF9SRUdTQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0dUX1JFR1NAbAogCWxpCXI1LCBJTlRFUk5BTF9TUEFDRV9ERUNPREUKIAogCS8qIHRlc3QgdG8gc2VlIGlmIHdlJ3ZlIGFscmVhZHkgbW92ZWQgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2V2YjY0MjYwL21wc2MuYyBiL2JvYXJkL2V2YjY0MjYwL21wc2MuYwppbmRleCAzYjMzOGM3Li44YzRhNGM4IDEwMDY0NAotLS0gYS9ib2FyZC9ldmI2NDI2MC9tcHNjLmMKKysrIGIvYm9hcmQvZXZiNjQyNjAvbXBzYy5jCkBAIC0zOTAsNyArMzkwLDcgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX1pVTUFfVjIpIHx8IGRlZmluZWQoQ09ORklHX1AzRzQpCiAJLyogZnJvbSB0Y2xrICovCi0JY2xvY2sgPSAoQ0ZHX0JVU19IWi8oMTYqcmF0ZSkpIC0gMTsKKwljbG9jayA9IChDT05GSUdfU1lTX0JVU19IWi8oMTYqcmF0ZSkpIC0gMTsKICNlbHNlCiAJY2xvY2sgPSAoMzY4NjQwMC8oMTYqcmF0ZSkpIC0gMTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvZXZiNjQyNjAvcGNpLmMgYi9ib2FyZC9ldmI2NDI2MC9wY2kuYwppbmRleCA1OWI5YWNiLi41ODJmMjRjIDEwMDY0NAotLS0gYS9ib2FyZC9ldmI2NDI2MC9wY2kuYworKysgYi9ib2FyZC9ldmI2NDI2MC9wY2kuYwpAQCAtNjc1LDE0ICs2NzUsMTQgQEAKIAlsb2NhbF9idXNlc1swXSA9IHBjaTBfaG9zZS5maXJzdF9idXNubzsKIAkvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKHBjaTBfaG9zZS5yZWdpb25zICsgMCwKLQkJCUNGR19QQ0kwXzBfTUVNX1NQQUNFLAotCQkJQ0ZHX1BDSTBfMF9NRU1fU1BBQ0UsCi0JCQlDRkdfUENJMF9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOworCQkJQ09ORklHX1NZU19QQ0kwXzBfTUVNX1NQQUNFLAorCQkJQ09ORklHX1NZU19QQ0kwXzBfTUVNX1NQQUNFLAorCQkJQ09ORklHX1NZU19QQ0kwX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CiAKIAkvKiBQQ0kgSS9PIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKHBjaTBfaG9zZS5yZWdpb25zICsgMSwKLQkJCUNGR19QQ0kwX0lPX1NQQUNFX1BDSSwKLQkJCUNGR19QQ0kwX0lPX1NQQUNFLCBDRkdfUENJMF9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKKwkJCUNPTkZJR19TWVNfUENJMF9JT19TUEFDRV9QQ0ksCisJCQlDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0UsIENPTkZJR19TWVNfUENJMF9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKIAogCXBjaV9zZXRfb3BzICgmcGNpMF9ob3NlLAogCQkgICAgIHBjaV9ob3NlX3JlYWRfY29uZmlnX2J5dGVfdmlhX2R3b3JkLApAQCAtNzIwLDE0ICs3MjAsMTQgQEAKIAogCS8qIFBDSSBtZW1vcnkgc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbiAocGNpMV9ob3NlLnJlZ2lvbnMgKyAwLAotCQkJQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UsCi0JCQlDRkdfUENJMV8wX01FTV9TUEFDRSwKLQkJCUNGR19QQ0kxX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CisJCQlDT05GSUdfU1lTX1BDSTFfMF9NRU1fU1BBQ0UsCisJCQlDT05GSUdfU1lTX1BDSTFfMF9NRU1fU1BBQ0UsCisJCQlDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKIAogCS8qIFBDSSBJL08gc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbiAocGNpMV9ob3NlLnJlZ2lvbnMgKyAxLAotCQkJQ0ZHX1BDSTFfSU9fU1BBQ0VfUENJLAotCQkJQ0ZHX1BDSTFfSU9fU1BBQ0UsIENGR19QQ0kxX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOworCQkJQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFX1BDSSwKKwkJCUNPTkZJR19TWVNfUENJMV9JT19TUEFDRSwgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOwogCiAJcGNpX3NldF9vcHMgKCZwY2kxX2hvc2UsCiAJCSAgICAgcGNpX2hvc2VfcmVhZF9jb25maWdfYnl0ZV92aWFfZHdvcmQsCmRpZmYgLS1naXQgYS9ib2FyZC9ldmI2NDI2MC9zZHJhbV9pbml0LmMgYi9ib2FyZC9ldmI2NDI2MC9zZHJhbV9pbml0LmMKaW5kZXggOWFlNDQ2NS4uZTJmMDc2OSAxMDA2NDQKLS0tIGEvYm9hcmQvZXZiNjQyNjAvc2RyYW1faW5pdC5jCisrKyBiL2JvYXJkL2V2YjY0MjYwL3NkcmFtX2luaXQuYwpAQCAtMzAwLDcgKzMwMCw3IEBACiAKIAlEUCAocHJpbnRmICgidHBhciBzZXQgdG86ICVkXG4iLCBpbmZvLT50cGFyKSk7CiAKLSNpZmRlZiBDRkdfQlJPS0VOX0NMMgorI2lmZGVmIENPTkZJR19TWVNfQlJPS0VOX0NMMgogCWlmIChpbmZvLT50cGFyID09IDIpIHsKIAkJaW5mby0+dHBhciA9IDM7CiAJCURQIChwcmludGYgKCJ0cGFyIGZpeGVkLXVwIHRvOiAlZFxuIiwgaW5mby0+dHBhcikpOwpAQCAtNTk4LDcgKzU5OCw3IEBACiAJICogICAgICAgICBsaW1pdGF0aW9uOiB3ZSBvbmx5IHN1cHBvcnQgMjU2TSBwZXIgYmFuayBkdWUgdG8KIAkgKiAgICAgICAgIHVzIG9ubHkgaGF2aW5nIDEgQkFUIGZvciBhbGwgRFJBTQogCSAqLwotCWZvciAoYmFua19ubyA9IDA7IGJhbmtfbm8gPCBDRkdfRFJBTV9CQU5LUzsgYmFua19ubysrKSB7CisJZm9yIChiYW5rX25vID0gMDsgYmFua19ubyA8IENPTkZJR19TWVNfRFJBTV9CQU5LUzsgYmFua19ubysrKSB7CiAJCS8qIHNraXAgb3ZlciBiYW5rcyB0aGF0IGFyZSBub3QgcG9wdWxhdGVkICovCiAJCWlmICghY2hlY2tiYW5rW2Jhbmtfbm9dKQogCQkJY29udGludWU7CkBAIC02MTcsNyArNjE3LDcgQEAKIAkgKiAgICAgICAgIHNwYWNlLgogCSAqLwogCWRpbW1faW5mb1swXS5iYW5rcyA9IGRpbW1faW5mb1sxXS5iYW5rcyA9IDA7Ci0JZm9yIChiYW5rX25vID0gMDsgYmFua19ubyA8IENGR19EUkFNX0JBTktTOyBiYW5rX25vKyspIHsKKwlmb3IgKGJhbmtfbm8gPSAwOyBiYW5rX25vIDwgQ09ORklHX1NZU19EUkFNX0JBTktTOyBiYW5rX25vKyspIHsKIAkJaWYgKCFjaGVja2JhbmtbYmFua19ub10pCiAJCQljb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXZiNjQyNjAvc2VyaWFsLmMgYi9ib2FyZC9ldmI2NDI2MC9zZXJpYWwuYwppbmRleCBmMWJjYWIzLi45ZDcxMTE1IDEwMDY0NAotLS0gYS9ib2FyZC9ldmI2NDI2MC9zZXJpYWwuYworKysgYi9ib2FyZC9ldmI2NDI2MC9zZXJpYWwuYwpAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgPGNvbW1hbmQuaD4KICNpbmNsdWRlIDxnYWxpbGVvL21lbW9yeS5oPgogCi0jaWYgKGRlZmluZWQgQ0ZHX0lOSVRfQ0hBTjEpIHx8IChkZWZpbmVkIENGR19JTklUX0NIQU4yKQorI2lmIChkZWZpbmVkIENPTkZJR19TWVNfSU5JVF9DSEFOMSkgfHwgKGRlZmluZWQgQ09ORklHX1NZU19JTklUX0NIQU4yKQogI2luY2x1ZGUgPG5zMTY1NTAuaD4KICNlbmRpZgogCkBAIC00MSwyNiArNDEsMjYgQEAKIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLSNpZiAoZGVmaW5lZCBDRkdfSU5JVF9DSEFOMSkgfHwgKGRlZmluZWQgQ0ZHX0lOSVRfQ0hBTjIpCi1jb25zdCBOUzE2NTUwX3QgQ09NX1BPUlRTW10gPSB7IChOUzE2NTUwX3QpIENGR19OUzE2NTUwX0NPTTEsCi0JCQkJKE5TMTY1NTBfdCkgQ0ZHX05TMTY1NTBfQ09NMiB9OworI2lmIChkZWZpbmVkIENPTkZJR19TWVNfSU5JVF9DSEFOMSkgfHwgKGRlZmluZWQgQ09ORklHX1NZU19JTklUX0NIQU4yKQorY29uc3QgTlMxNjU1MF90IENPTV9QT1JUU1tdID0geyAoTlMxNjU1MF90KSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMSwKKwkJCQkoTlMxNjU1MF90KSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMiB9OwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTVBTQwogCiBpbnQgc2VyaWFsX2luaXQgKHZvaWQpCiB7Ci0jaWYgKGRlZmluZWQgQ0ZHX0lOSVRfQ0hBTjEpIHx8IChkZWZpbmVkIENGR19JTklUX0NIQU4yKQotCWludCBjbG9ja19kaXZpc29yID0gQ0ZHX05TMTY1NTBfQ0xLIC8gMTYgLyBnZC0+YmF1ZHJhdGU7CisjaWYgKGRlZmluZWQgQ09ORklHX1NZU19JTklUX0NIQU4xKSB8fCAoZGVmaW5lZCBDT05GSUdfU1lTX0lOSVRfQ0hBTjIpCisJaW50IGNsb2NrX2Rpdmlzb3IgPSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLIC8gMTYgLyBnZC0+YmF1ZHJhdGU7CiAjZW5kaWYKIAogCW1wc2NfaW5pdChnZC0+YmF1ZHJhdGUpOwogCiAJLyogaW5pdCB0aGUgRFVBUlQgY2hhbnMgc28gdGhhdCBLR0RCIGluIHRoZSBrZXJuZWwgY2FuIHVzZSB0aGVtICovCi0jaWZkZWYgQ0ZHX0lOSVRfQ0hBTjEKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfQ0hBTjEKIAlOUzE2NTUwX3JlaW5pdChDT01fUE9SVFNbMF0sIGNsb2NrX2Rpdmlzb3IpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0lOSVRfQ0hBTjIKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfQ0hBTjIKIAlOUzE2NTUwX3JlaW5pdChDT01fUE9SVFNbMV0sIGNsb2NrX2Rpdmlzb3IpOwogI2VuZGlmCiAJcmV0dXJuICgwKTsKQEAgLTk3LDEyICs5NywxMiBAQAogCiBpbnQgc2VyaWFsX2luaXQgKHZvaWQpCiB7Ci0JaW50IGNsb2NrX2Rpdmlzb3IgPSBDRkdfTlMxNjU1MF9DTEsgLyAxNiAvIGdkLT5iYXVkcmF0ZTsKKwlpbnQgY2xvY2tfZGl2aXNvciA9IENPTkZJR19TWVNfTlMxNjU1MF9DTEsgLyAxNiAvIGdkLT5iYXVkcmF0ZTsKIAotI2lmZGVmIENGR19JTklUX0NIQU4xCisjaWZkZWYgQ09ORklHX1NZU19JTklUX0NIQU4xCiAJKHZvaWQpTlMxNjU1MF9pbml0KENPTV9QT1JUU1swXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKLSNpZmRlZiBDRkdfSU5JVF9DSEFOMgorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMgogCSh2b2lkKU5TMTY1NTBfaW5pdChDT01fUE9SVFNbMV0sIGNsb2NrX2Rpdmlzb3IpOwogI2VuZGlmCiAKQEAgLTExMywzMiArMTEzLDMyIEBACiBzZXJpYWxfcHV0Yyhjb25zdCBjaGFyIGMpCiB7CiAJaWYgKGMgPT0gJ1xuJykKLQkJTlMxNjU1MF9wdXRjKENPTV9QT1JUU1tDRkdfRFVBUlRfQ0hBTl0sICdccicpOworCQlOUzE2NTUwX3B1dGMoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0sICdccicpOwogCi0JTlMxNjU1MF9wdXRjKENPTV9QT1JUU1tDRkdfRFVBUlRfQ0hBTl0sIGMpOworCU5TMTY1NTBfcHV0YyhDT01fUE9SVFNbQ09ORklHX1NZU19EVUFSVF9DSEFOXSwgYyk7CiB9CiAKIGludAogc2VyaWFsX2dldGModm9pZCkKIHsKLQlyZXR1cm4gTlMxNjU1MF9nZXRjKENPTV9QT1JUU1tDRkdfRFVBUlRfQ0hBTl0pOworCXJldHVybiBOUzE2NTUwX2dldGMoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0pOwogfQogCiBpbnQKIHNlcmlhbF90c3RjKHZvaWQpCiB7Ci0JcmV0dXJuIE5TMTY1NTBfdHN0YyhDT01fUE9SVFNbQ0ZHX0RVQVJUX0NIQU5dKTsKKwlyZXR1cm4gTlMxNjU1MF90c3RjKENPTV9QT1JUU1tDT05GSUdfU1lTX0RVQVJUX0NIQU5dKTsKIH0KIAogdm9pZAogc2VyaWFsX3NldGJyZyAodm9pZCkKIHsKLQlpbnQgY2xvY2tfZGl2aXNvciA9IENGR19OUzE2NTUwX0NMSyAvIDE2IC8gZ2QtPmJhdWRyYXRlOworCWludCBjbG9ja19kaXZpc29yID0gQ09ORklHX1NZU19OUzE2NTUwX0NMSyAvIDE2IC8gZ2QtPmJhdWRyYXRlOwogCi0jaWZkZWYgQ0ZHX0lOSVRfQ0hBTjEKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfQ0hBTjEKIAlOUzE2NTUwX3JlaW5pdChDT01fUE9SVFNbMF0sIGNsb2NrX2Rpdmlzb3IpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0lOSVRfQ0hBTjIKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfQ0hBTjIKIAlOUzE2NTUwX3JlaW5pdChDT01fUE9SVFNbMV0sIGNsb2NrX2Rpdmlzb3IpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9ib2FyZC9leGJpdGdlbi9mbGFzaC5jIGIvYm9hcmQvZXhiaXRnZW4vZmxhc2guYwppbmRleCA3NDVmYmEyLi5jZDQ1Y2I2IDEwMDY0NAotLS0gYS9ib2FyZC9leGJpdGdlbi9mbGFzaC5jCisrKyBiL2JvYXJkL2V4Yml0Z2VuL2ZsYXNoLmMKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAjaW5jbHVkZSA8cHBjNHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTY4LDcgKzY4LDcgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IDA7CiAJfQpAQCAtNzYsNyArNzYsNyBAQAogCXRvdF9zaXplID0gMDsKIAogCS8qIERldGVjdCBCb290IEZsYXNoICovCi0JYmFua19hZGRyID0gQ0ZHX0ZMQVNIMF9CQVNFOworCWJhbmtfYWRkciA9IENPTkZJR19TWVNfRkxBU0gwX0JBU0U7CiAJYmFua19zaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKiliYW5rX2FkZHIsICZmbGFzaF9pbmZvWzBdKTsKIAlpZiAoYmFua19zaXplID4gMCkgewogCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9DTEVBUiwKQEAgLTkxLDggKzkxLDggQEAKIAl0b3Rfc2l6ZSArPSBiYW5rX3NpemU7CiAKIAkvKiBEZXRlY3QgQXBwbGljYXRpb24gRmxhc2ggKi8KLQliYW5rX2FkZHIgPSBDRkdfRkxBU0gxX0JBU0U7Ci0JZm9yIChpID0gMTsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWJhbmtfYWRkciA9IENPTkZJR19TWVNfRkxBU0gxX0JBU0U7CisJZm9yIChpID0gMTsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJYmFua19zaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKiliYW5rX2FkZHIsICZmbGFzaF9pbmZvW2ldKTsKIAkJaWYgKGZsYXNoX2luZm9baV0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTikgewogCQkJYnJlYWs7CkBAIC0xMTIsMTMgKzExMiwxMyBAQAogCX0KIAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycyAqLwotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIMF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSDBfQkFTRQogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJQ0ZHX01PTklUT1JfQkFTRSwKLQkJQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkmZmxhc2hfaW5mb1swXSk7Ci0jaWYgMHhmZmZmZmZmYyA+PSBDRkdfRkxBU0gwX0JBU0UKLSNpZiAweGZmZmZmZmZjIDw9IENGR19GTEFTSDBfQkFTRSArIENGR19GTEFTSDBfU0laRSAtIDEKKyNpZiAweGZmZmZmZmZjID49IENPTkZJR19TWVNfRkxBU0gwX0JBU0UKKyNpZiAweGZmZmZmZmZjIDw9IENPTkZJR19TWVNfRkxBU0gwX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFIC0gMQogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKIAkJMHhmZmZmZmZmYywgMHhmZmZmZmZmZiwKIAkJJmZsYXNoX2luZm9bMF0pOwpAQCAtNDUwLDcgKzQ1MCw3IEBACiAJCQl3aGlsZSAoKGFkZHIyWzBdICYgMHgwMDgwMDA4MCkgIT0KIAkJCQkoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSB7CiAJCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPgotCQkJCQkgICBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCQkgICBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCWFkZHJbMF0gPSAoRkxBU0hfV09SRF9TSVpFKTB4MDBGMDAwRjA7CiAJCQkJCXJldHVybiAxOwpAQCAtNTgxLDcgKzU4MSw3IEBACiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCQl3aGlsZSAoKGRlc3QyW2ldICYgMHgwMDgwMDA4MCkgIT0gKGRhdGEyW2ldICYgMHgwMDgwMDA4MCkpIHsKLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJYWRkcjJbMF0gPSAoRkxBU0hfV09SRF9TSVpFKTB4MDBGMDAwRjA7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2V4Yml0Z2VuL2luaXQuUyBiL2JvYXJkL2V4Yml0Z2VuL2luaXQuUwppbmRleCA3MWFlZmI5Li43NjA4MzVhIDEwMDY0NAotLS0gYS9ib2FyZC9leGJpdGdlbi9pbml0LlMKKysrIGIvYm9hcmQvZXhiaXRnZW4vaW5pdC5TCkBAIC0yNjUsNyArMjY1LDcgQEAKIAkuZ2xvYmwgIHNkcmFtX2luaXQKIAogc2RyYW1faW5pdDoKLSNpZiBDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCWJscgogI2Vsc2UKIAltZmxyCXIzMQpAQCAtNDAyLDcgKzQwMiw3IEBACiAJYWRkaQlyOSwgMCwgMTMJLyogYml0IG9mZnNldCBvZiBhZGRyZXNzaW5nIG1vZGUgaW4gY29uZmlndXJhdGlvbiByZWdpc3RlciAgKi8KIAlzbHcJcjI5LCByMjksIHI5CS8qICAqLwogCW9yCXIzLCByMjksIHIzCS8qIG1lcmdlIHNpemUgY29kZSBhbmQgYWRkcmVzc2luZyBtb2RlICovCi0Jb3JpCXI2LCByMywgQ0ZHX1NEUkFNX0JBU0UgKyAxIC8qIGluc2VydCBiYXNlIGFkZHJlc3MgYW5kIGVuYWJsZSBiYW5rICovCisJb3JpCXI2LCByMywgQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMSAvKiBpbnNlcnQgYmFzZSBhZGRyZXNzIGFuZCBlbmFibGUgYmFuayAqLwogCiAJLyogQ2FsY3VsYXRlIGJhbmtzaXplIHIxNSA9IChkZW5zaXR5IDw8IDIyKSAvIDIgKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZmFkcy9mYWRzLmMgYi9ib2FyZC9mYWRzL2ZhZHMuYwppbmRleCA5ZTYwMWRmLi4yNzhmYTJhIDEwMDY0NAotLS0gYS9ib2FyZC9mYWRzL2ZhZHMuYworKysgYi9ib2FyZC9mYWRzL2ZhZHMuYwpAQCAtMTkwLDcgKzE5MCw3IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiBzdGF0aWMgaW50IF9kcmFtaW5pdCAodWludCBiYXNlLCB1aW50IG5vTWJ5dGVzLCB1aW50IGVkbywgdWludCBkZWxheSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCS8qIGluaXQgdXBtICovCkBAIC0yODMsNyArMjgzLDcgQEAKIAogc3RhdGljIHZvaWQgX2RyYW1kaXNhYmxlKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAltZW1jdGwtPm1lbWNfYnIyID0gMHgwMDAwMDAwMDsKQEAgLTQyMyw3ICs0MjMsNyBAQAogCiBzdGF0aWMgaW50IF9pbml0c2RyYW0odWludCBiYXNlLCB1aW50IG5vTWJ5dGVzKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJdXBtY29uZmlnKFVQTUIsICh1aW50ICopc2RyYW1fdGFibGUsc2l6ZW9mKHNkcmFtX3RhYmxlKS9zaXplb2YodWludCkpOwpAQCAtNTAxLDcgKzUwMSw3IEBACiAKIHN0YXRpYyBpbnQgX2luaXRzZHJhbSh1aW50IGJhc2UsIHVpbnQgbm9NYnl0ZXMpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAl1cG1jb25maWcoVVBNQiwgKHVpbnQgKilzZHJhbV90YWJsZSxzaXplb2Yoc2RyYW1fdGFibGUpL3NpemVvZih1aW50KSk7CkBAIC01NjQsNyArNTY0LDcgQEAKIAogc3RhdGljIHZvaWQgX3NkcmFtZGlzYWJsZSh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX2JyNCA9IDB4MDAwMDAwMDA7CkBAIC01NzYsNyArNTc2LDcgQEAKIAogc3RhdGljIGludCBpbml0c2RyYW0odWludCBiYXNlLCB1aW50ICpub01ieXRlcykKIHsKLQl1aW50IG0gPSBDRkdfU0RSQU1fU0laRT4+MjA7CisJdWludCBtID0gQ09ORklHX1NZU19TRFJBTV9TSVpFPj4yMDsKIAogCS8qIF9pbml0c2RyYW0gbmVlZHMgYWNjZXNzIHRvIHNkcmFtICovCiAJKigodWludCAqKUJDU1IxKSB8PSBCQ1NSMV9TRFJBTV9FTjsgLyogZW5hYmxlIHNkcmFtICovCkBAIC02ODgsNyArNjg4LDcgQEAKICAqIENoZWNrIEJvYXJkIElkZW50aXR5OgogICovCiAKLSNpZiBkZWZpbmVkKENPTkZJR19GQURTKSAmJiBkZWZpbmVkKENGR19EQVVHSFRFUkJPQVJEKQorI2lmIGRlZmluZWQoQ09ORklHX0ZBRFMpICYmIGRlZmluZWQoQ09ORklHX1NZU19EQVVHSFRFUkJPQVJEKQogc3RhdGljIHZvaWQgY2hlY2tkYm9hcmQodm9pZCkKIHsKIAkvKiBnZXQgZGIgdHlwZSBmcm9tIEJDU1IgMyAqLwpAQCAtNzIyLDcgKzcyMiw3IEBACiAJZGVmYXVsdCA6IHByaW50ZigiMHgleCIsIGspOwogCX0KIH0KLSNlbmRpZgkvKiBkZWZpbmVkKENPTkZJR19GQURTKSAmJiBkZWZpbmVkKENGR19EQVVHSFRFUkJPQVJEKSAqLworI2VuZGlmCS8qIGRlZmluZWQoQ09ORklHX0ZBRFMpICYmIGRlZmluZWQoQ09ORklHX1NZU19EQVVHSFRFUkJPQVJEKSAqLwogCiBpbnQgY2hlY2tib2FyZCAodm9pZCkKIHsKQEAgLTc4MCw4ICs3ODAsOCBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX1BDTUNJQSkKIAotI2lmZGVmIENGR19QQ01DSUFfTUVNX0FERFIKLXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKnBjbWNpYV9tZW0gPSAodW5zaWduZWQgY2hhciopQ0ZHX1BDTUNJQV9NRU1fQUREUjsKKyNpZmRlZiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgordm9sYXRpbGUgdW5zaWduZWQgY2hhciAqcGNtY2lhX21lbSA9ICh1bnNpZ25lZCBjaGFyKilDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUjsKICNlbmRpZgogCiBpbnQgcGNtY2lhX2luaXQodm9pZCkKQEAgLTc5MiwxMCArNzkyLDEwIEBACiAJLyoKIAkqKiBFbmFibGUgdGhlIFBDTUNJQSBmb3IgYSBGbGFzaCBjYXJkLgogCSovCi0JcGNtcCA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOworCXBjbXAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CiAKICNpZiAwCi0JcGNtcC0+cGNtY19wYnIwID0gQ0ZHX1BDTUNJQV9NRU1fQUREUjsKKwlwY21wLT5wY21jX3BicjAgPSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUjsKIAlwY21wLT5wY21jX3BvcjAgPSAweGMwMGZmMDVkOwogI2VuZGlmCiAKQEAgLTkyNSwyNSArOTI1LDI1IEBACiAKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KIAotI2lmZGVmIENGR19QQ19JREVfUkVTRVQKKyNpZmRlZiBDT05GSUdfU1lTX1BDX0lERV9SRVNFVAogCiB2b2lkIGlkZV9zZXRfcmVzZXQoaW50IG9uKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAogCS8qCiAJICogQ29uZmlndXJlIFBDIGZvciBJREUgUmVzZXQgUGluCiAJICovCiAJaWYgKG9uKSB7CQkvKiBhc3NlcnQgUkVTRVQgKi8KLQkJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCAmPSB+KENGR19QQ19JREVfUkVTRVQpOworCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICY9IH4oQ09ORklHX1NZU19QQ19JREVfUkVTRVQpOwogCX0gZWxzZSB7CQkvKiByZWxlYXNlIFJFU0VUICovCi0JCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgfD0gICBDRkdfUENfSURFX1JFU0VUOworCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0IHw9ICAgQ09ORklHX1NZU19QQ19JREVfUkVTRVQ7CiAJfQogCiAJLyogcHJvZ3JhbSBwb3J0IHBpbiBhcyBHUElPIG91dHB1dCAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfihDRkdfUENfSURFX1JFU0VUKTsKLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3Bjc28gICY9IH4oQ0ZHX1BDX0lERV9SRVNFVCk7Ci0JaW1tci0+aW1faW9wb3J0LmlvcF9wY2RpciB8PSAgIENGR19QQ19JREVfUkVTRVQ7CisJaW1tci0+aW1faW9wb3J0LmlvcF9wY3BhciAmPSB+KENPTkZJR19TWVNfUENfSURFX1JFU0VUKTsKKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3Bjc28gICY9IH4oQ09ORklHX1NZU19QQ19JREVfUkVTRVQpOworCWltbXItPmltX2lvcG9ydC5pb3BfcGNkaXIgfD0gICBDT05GSUdfU1lTX1BDX0lERV9SRVNFVDsKIH0KIAotI2VuZGlmCS8qIENGR19QQ19JREVfUkVTRVQgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX1BDX0lERV9SRVNFVCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZmFkcy9mYWRzLmggYi9ib2FyZC9mYWRzL2ZhZHMuaAppbmRleCAyMzMxMGE0Li4yNGU0M2VhIDEwMDY0NAotLS0gYS9ib2FyZC9mYWRzL2ZhZHMuaAorKysgYi9ib2FyZC9mYWRzL2ZhZHMuaApAQCAtOTUsNyArOTUsNyBAQAogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfRkVDX0VORVQKLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2RlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKICNlbmRpZgogCkBAIC0xMzAsMjQgKzEzMCwyNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4iCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qICN1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+IgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiAjdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikgLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAKIAotI2RlZmluZQlDRkdfSFoJCSAgICAgICAgMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCSAgICAgICAgMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTU4LDI1ICsxNTgsMjUgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkYwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKICNpZiBkZWZpbmVkKENPTkZJR19NUEM4NnhBRFMpIHx8IGRlZmluZWQoQ09ORklHX01QQzg4NUFEUykgLyogTmV3IEFEUyBvciBEdWV0ICovCi0jZGVmaW5lCUNGR19TRFJBTV9TSVpFCQkweDAwODAwMDAwCS8qIDggTWJ5dGUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9TSVpFCQkweDAwODAwMDAwCS8qIDggTWJ5dGUgKi8KIC8qCiAgKiAyMDQ4CVNEUkFNIHJvd3MKICAqIDEwMDAJZmFjdG9yIHMgLT4gbXMKQEAgLTE4NCw1NSArMTg0LDU1IEBACiAgKiA0CU51bWJlciBvZiByZWZyZXNoIGN5Y2xlcyBwZXIgcGVyaW9kCiAgKiA2NAlSZWZyZXNoIGN5Y2xlIGluIG1zIHBlciBudW1iZXIgb2Ygcm93cwogICovCi0jZGVmaW5lIENGR19QVEFfUEVSX0NMSwkJKCgyMDQ4ICogNjQgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX1BUQV9QRVJfQ0xLCQkoKDIwNDggKiA2NCAqIDEwMDApIC8gKDQgKiA2NCkpCiAjZWxpZiBkZWZpbmVkKENPTkZJR19GQURTKQkJCQkvKiBPbGQvbmV3IEZBRFMgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX1NJWkUJCTB4MDA0MDAwMDAJCS8qIDQgTWJ5dGUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9TSVpFCQkweDAwNDAwMDAwCQkvKiA0IE1ieXRlICovCiAjZWxzZQkJCQkJCQkvKiBPbGQgQURTICovCi0jZGVmaW5lCUNGR19TRFJBTV9TSVpFCQkweDAwMDAwMDAwCQkvKiBObyBTRFJBTSAqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTB4MDAwMDAwMDAJCS8qIE5vIFNEUkFNICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2lmIChDRkdfU0RSQU1fU0laRSkKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQlDRkdfU0RSQU1fU0laRQkvKiAxIC4uLiBTRFJBTV9TSVpFCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2lmIChDT05GSUdfU1lTX1NEUkFNX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCUNPTkZJR19TWVNfU0RSQU1fU0laRQkvKiAxIC4uLiBTRFJBTV9TSVpFCSovCiAjZWxzZQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMAkvKiAxIC4uLiA0IE1CIGluIERSQU0JKi8KLSNlbmRpZiAvKiBDRkdfU0RSQU1fU0laRSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA0MDAwMDAJLyogMSAuLi4gNCBNQiBpbiBEUkFNCSovCisjZW5kaWYgLyogQ09ORklHX1NZU19TRFJBTV9TSVpFICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIG1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IEtCIGZvciBtb25pdG9yCSovCiAKICNpZmRlZiBDT05GSUdfQlpJUDIKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgyNTAwIDw8IDEwKQkvKiBSZXNlcnZlIH4yLjUgTUIgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1MDAgPDwgMTApCS8qIFJlc2VydmUgfjIuNSBNQiBmb3IgbWFsbG9jKCkJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgbWFsbG9jKCkJKi8KICNlbmRpZiAvKiBDT05GSUdfQlpJUDIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRmxhc2ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19NT05JVE9SX0JBU0UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCSgodWludCkoOCAqIDEwMjQgKiAxMDI0KSkJLyogbWF4IDhNYnl0ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJKCh1aW50KSg4ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggOE1ieXRlCSovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwk0CS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJNAkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiBzZWUgUkVBRE1FIC0gZW52IHNlY3RvciB0b3RhbCBzaXplCSovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQlDT05GSUdfRU5WX1NFQ1RfU0laRQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50CQkqLwotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAotI2RlZmluZQlDRkdfRElSRUNUX0ZMQVNIX1RGVFAKKyNkZWZpbmUJQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0pGRlMyKQogCkBAIC0yNTQsMjIgKzI1NCwyMiBAQAogI2RlZmluZSBNVERQQVJUU19ERUZBVUxUCSJtdGRwYXJ0cz1mYWRzLTA6LUAxbSh1c2VyMSksZmFkcy0xOi0odXNlcjIpLGZhZHMtMjotKHVzZXIzKSxmYWRzLTM6LSh1c2VyNCkiCiAqLwogCi0jZGVmaW5lIENGR19KRkZTMl9TT1JUX0ZSQUdNRU5UUworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX1NPUlRfRlJBR01FTlRTCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIGNvbmZpZ3VyYXRpb24KICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9JMkMpCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgZGVmYXVsdHMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyBkZWZhdWx0cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI3OSwxMCArMjc5LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yOTAsMjEgKzI5MCwyMSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzEzLDE0ICszMTMsMTQgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCVNDQ1JfVEJTCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUglTQ0NSX1RCUwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBERVIgLSBEZWJ1ZyBFbmFibGUgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNldCB0byB6ZXJvIHRvIHByZXZlbnQgdGhlIHByb2Nlc3NvciBmcm9tIGVudGVyaW5nIGRlYnVnIG1vZGUKICAqLwotI2RlZmluZSBDRkdfREVSCQkgMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJIDAKIAogLyogQmVjYXVzZSBvZiB0aGUgd2F5IHRoZSA4NjAgc3RhcnRzIHVwIGFuZCBhc3NpZ25zIENTMCB0aGUgZW50aXJlCiAgKiBhZGRyZXNzIHNwYWNlLCB3ZSBoYXZlIHRvIHNldCB0aGUgbWVtb3J5IGNvbnRyb2xsZXIgZGlmZmVyZW50bHkuCkBAIC0zMzksMTcgKzMzOSwxNyBAQAogCiAjZGVmaW5lIEJDU1JfQUREUgkJKCh1aW50KSAweEZGMDgwMDAwKQogCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRjgwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRjgwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMCwgVFJMWCA9IDEsIENTTlQgPSAxLCBTQ1kgPSAzLCBFSFRSID0gMCAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzNfQ0xLIHwgT1JfVFJMWCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfM19DTEsgfCBPUl9UUkxYKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkgICAvKiA4IE1ieXRlIHVudGlsIGRldGVjdGVkICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkgICAvKiA4IE1ieXRlIHVudGlsIGRldGVjdGVkICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyogQkNTUnggLSBCb2FyZCBDb250cm9sIGFuZCBTdGF0dXMgUmVnaXN0ZXJzICovCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCTB4RkZGRjgxMTAJCS8qIDY0S2J5dGUgYWRkcmVzcyBzcGFjZSAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEJDU1JfQUREUikgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JMHhGRkZGODExMAkJLyogNjRLYnl0ZSBhZGRyZXNzIHNwYWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEJDU1JfQUREUikgfCBCUl9WKQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKQEAgLTQ0Miw5ICs0NDIsOSBAQAogCiAvKiBCU0NSNSBleGlzdHMgb24gTVBDODZ4QURTIGFuZCBNUEM4ODVBRFMgb25seSAqLwogCi0jZGVmaW5lIENGR19QSFlERVZfQUREUgkJKEJDU1JfQUREUiArIDB4MjAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUEhZREVWX0FERFIJCShCQ1NSX0FERFIgKyAweDIwMDAwKQogCi0jZGVmaW5lIEJDU1I1CQkJKENGR19QSFlERVZfQUREUiArIDB4MzAwKQorI2RlZmluZSBCQ1NSNQkJCShDT05GSUdfU1lTX1BIWURFVl9BRERSICsgMHgzMDApCiAKICNkZWZpbmUgQkNTUjVfTUlJMl9FTgkJMHg0MAogI2RlZmluZSBCQ1NSNV9NSUkyX1JTVAkJMHgyMApAQCAtNDYyLDE0ICs0NjIsMTQgQEAKICAqIFBDTUNJQSBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYKQEAgLTQ4NywxOCArNDg3LDE4IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQJIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMiBJREUgYnVzc2VzCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCShDRkdfSURFX01BWEJVUyoyKSAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDIgSURFIGJ1c3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoyKSAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCiAKICNkZWZpbmUgQ09ORklHX0RJU0tfU1BJTlVQX1RJTUUgMTAwMDAwMAogLyogI3VuZGVmIENPTkZJR19ESVNLX1NQSU5VUF9USU1FICovCS8qIHVzaW4gIENvbXBhY3QgRmxhc2ggKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2ZhZHMvZmxhc2guYyBiL2JvYXJkL2ZhZHMvZmxhc2guYwppbmRleCBjZDBlNGQ1Li5iOWFmYjc1IDEwMDY0NAotLS0gYS9ib2FyZC9mYWRzL2ZsYXNoLmMKKysrIGIvYm9hcmQvZmFkcy9mbGFzaC5jCkBAIC0yNCwxMSArMjQsMTEgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC01NCwxNCArNTQsMTQgQEAKICAqLwogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXZ1X2xvbmcgKmJjc3IgPSAodnVfbG9uZyAqKUJDU1JfQUREUjsKIAl1bnNpZ25lZCBsb25nIHBkX3NpemUsIHRvdGFsX3NpemUsIGJzaXplLCBvcl9hbTsKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IDA7CiAJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gMDsKQEAgLTk0LDggKzk0LDggQEAKIAl9CiAKIAl0b3RhbF9zaXplID0gMDsKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUyAmJiB0b3RhbF9zaXplIDwgcGRfc2l6ZTsgKytpKSB7Ci0JCWJzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikoQ0ZHX0ZMQVNIX0JBU0UgKyB0b3RhbF9zaXplKSwKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgJiYgdG90YWxfc2l6ZSA8IHBkX3NpemU7ICsraSkgeworCQlic2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHRvdGFsX3NpemUpLAogCQkJCSAgICAgICAmZmxhc2hfaW5mb1tpXSk7CiAKIAkJaWYgKGZsYXNoX2luZm9baV0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTikgewpAQCAtMTEyLDE1ICsxMTIsMTUgQEAKIAl9CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0JbWVtY3RsLT5tZW1jX29yMCA9IG9yX2FtIHwgQ0ZHX09SX1RJTUlOR19GTEFTSDsKKwltZW1jdGwtPm1lbWNfb3IwID0gb3JfYW0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTICYmIGZsYXNoX2luZm9baV0uc2l6ZSAhPSAwOyArK2kpIHsKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICYmIGZsYXNoX2luZm9baV0uc2l6ZSAhPSAwOyArK2kpIHsKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLQkJaWYgKENGR19NT05JVE9SX0JBU0UgPj0gZmxhc2hfaW5mb1tpXS5zdGFydFswXSkKKwkJaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IGZsYXNoX2luZm9baV0uc3RhcnRbMF0pCiAJCQlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkJICAgICAgICZmbGFzaF9pbmZvW2ldKTsKICNlbmRpZgogCkBAIC00MjgsNyArNDI4LDcgQEAKIAlhZGRyID0gKHZ1X2xvbmcgKikgKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogCXdoaWxlICgoYWRkclswXSAmIDB4RkZGRkZGRkYpICE9IDB4RkZGRkZGRkYpCiAJewotCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiBFUlJfVElNT1VUOwogCQl9CkBAIC01NTIsNyArNTUyLDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqKCh2dV9sb25nICopIGRlc3QpICYgMHg4MDgwODA4MCkgIT0gKGRhdGEgJiAweDgwODA4MDgwKSkKIAl7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuIEVSUl9USU1PVVQ7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9mbGFnYWRtL2ZsYWdhZG0uYyBiL2JvYXJkL2ZsYWdhZG0vZmxhZ2FkbS5jCmluZGV4IDdjYWVkYzkuLmRjOWUyZGMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZsYWdhZG0vZmxhZ2FkbS5jCisrKyBiL2JvYXJkL2ZsYWdhZG0vZmxhZ2FkbS5jCkBAIC05OCwxOCArOTgsMTggQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZV9iMDsKIAotCW1lbWN0bC0+bWVtY19vcjIgPSBDRkdfT1IyOwotCW1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyOworCW1lbWN0bC0+bWVtY19vcjIgPSBDT05GSUdfU1lTX09SMjsKKwltZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19CUjI7CiAKIAl1ZGVsYXkoMTAwKTsKIAl1cG1jb25maWcoVVBNQSwgKHVpbnQgKilzZHJhbV90YWJsZSwgc2l6ZW9mKHNkcmFtX3RhYmxlKS9zaXplb2YodWludCkpOwogCiAJbWVtY3RsLT5tZW1jX21wdHByID0gTVBUUFJfUFRQX0RJVjE2OwotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfNDhfU0RSIHwgTUFNUl9UTEZBXzFYOworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzQ4X1NEUiB8IE1BTVJfVExGQV8xWDsKIAogCS8qRG8gdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBTRFJBTSovCiAJLypTdGFydCB3aXRoIHRoZSBwcmVjaGFyZ2UgY3ljbGUqLwpAQCAtMTE3LDcgKzExNyw3IEBACiAJCQkJTUNSX01MQ0YoMSkgfCBNQ1JfTUFEKDB4NSkpOwogCiAJLypUaGVuIHdlIG5lZWQgdHdvIHJlZnJlc2ggY3ljbGVzKi8KLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzQ4X1NEUiB8IE1BTVJfVExGQV8yWDsKKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl80OF9TRFIgfCBNQU1SX1RMRkFfMlg7CiAJbWVtY3RsLT5tZW1jX21jciA9IChNQ1JfT1BfUlVOIHwgTUNSX1VQTV9BIHwgTUNSX01CX0NTMiB8IFwKIAkJCQlNQ1JfTUxDRigyKSB8IE1DUl9NQUQoMHgzMCkpOwogCkBAIC0xMjcsNyArMTI3LDcgQEAKIAkJCQlNQ1JfTUxDRigxKSB8IE1DUl9NQUQoMHgxQykpOwogCiAJLyogVGhhdCBzaG91bGQgZG8gaXQsIGp1c3QgZW5hYmxlIHRoZSBwZXJpb2RpYyByZWZyZXNoIGluIGJ1cnN0IG9mIDQqLwotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfNDhfU0RSIHwgTUFNUl9UTEZBXzRYOworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzQ4X1NEUiB8IE1BTVJfVExGQV80WDsKIAltZW1jdGwtPm1lbWNfbWFtciB8PSAoTUFNUl9QVEFFIHwgTUFNUl9HUExfQTRESVMpOwogCiAJc2l6ZV9iMCA9IDE2KjEwMjQqMTAyNDsKQEAgLTE0Myw4ICsxNDMsOCBAQAogCiAJbWVtY3RsLT5tZW1jX21ibXIgPSBNQk1SX0dQTF9CNERJUzsKIAotCW1lbWN0bC0+bWVtY19vcjQgPSBDRkdfT1I0OwotCW1lbWN0bC0+bWVtY19icjQgPSBDRkdfQlI0OworCW1lbWN0bC0+bWVtY19vcjQgPSBDT05GSUdfU1lTX09SNDsKKwltZW1jdGwtPm1lbWNfYnI0ID0gQ09ORklHX1NZU19CUjQ7CiAKIAlyZXR1cm4gKHNpemVfYjApOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZmxhZ2FkbS9mbGFzaC5jIGIvYm9hcmQvZmxhZ2FkbS9mbGFzaC5jCmluZGV4IGFhOGIwZjkuLmJiZWZiYWMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZsYWdhZG0vZmxhc2guYworKysgYi9ib2FyZC9mbGFnYWRtL2ZsYXNoLmMKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlIDxtcGM4eHguaD4KICNpbmNsdWRlIDxmbGFzaC5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC0zOSw0NSArMzksNDUgQEAKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QJKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdAkqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QJKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWludCBpOwogCWludCByZWM7CiAKLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAotCSooKHZ1X3Nob3J0KilDRkdfRkxBU0hfQkFTRSkgPSAweGZmZmY7CisJKigodnVfc2hvcnQqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSkgPSAweGZmZmY7CiAKLQlmbGFzaF9nZXRfZ2VvbWV0cnkgKCh2dV9sb25nKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9nZW9tZXRyeSAoKHZ1X2xvbmcqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1mbGFzaF9pbmZvWzBdLnNpemUgJiAweEZGRkY4MDAwKTsKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1mbGFzaF9pbmZvWzBdLnNpemUgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfAogCQkobWVtY3RsLT5tZW1jX2JyMCAmIH4oQlJfQkFfTVNLKSk7CiAKLQlyZWMgPSBmbGFzaF9yZWNvZ25pemUoKHZ1X2xvbmcqKUNGR19GTEFTSF9CQVNFKTsKKwlyZWMgPSBmbGFzaF9yZWNvZ25pemUoKHZ1X2xvbmcqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSk7CiAKIAlpZiAocmVjID09IEZMQVNIX1VOS05PV04pIHsKIAkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rIDAgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwKIAkJCQlmbGFzaF9pbmZvWzBdLnNpemUsIGZsYXNoX2luZm9bMF0uc2l6ZTw8MjApOwogCX0KIAotI2lmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAJLypVbnByb3RlY3QgYWxsIHRoZSBmbGFzaCBtZW1vcnkqLwogCWZsYXNoX3VucHJvdGVjdCgmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIAotCSooKHZ1X3Nob3J0KilDRkdfRkxBU0hfQkFTRSkgPSAweGZmZmY7CisJKigodnVfc2hvcnQqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSkgPSAweGZmZmY7CiAKIAlyZXR1cm4gKGZsYXNoX2luZm9bMF0uc2l6ZSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC00MDAsNyArNDAwLDcgQEAKIAkJCSphZGRyID0gMHg3MDsgLypSZWFkIHN0YXR1cyByZWdpc3RlciBjb21tYW5kKi8KIAkJCXRtcCA9IChzaG9ydCkqYWRkciAmIDB4MDBGRjsgLyogUmVhZCB0aGUgc3RhdHVzICovCiAJCQl3aGlsZSAoISh0bXAgJiBJTlRFTF9GTEFTSF9TVEFUVVNfV1NNUykpIHsKLQkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJKmFkZHIgPSAweDAwNTA7IC8qIFJlc2V0IHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAkJCQkJKmFkZHIgPSAweGZmZmY7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwpAQCAtNDQwLDcgKzQ0MCw3IEBACiAJZm9yKGkgPSAwOyBpIDwgaW5mby0+c2VjdG9yX2NvdW50OyBpKyspCiAJCWluZm8tPnByb3RlY3RbaV0gPSAwOwogCi0jaWZkZWYgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIAkJX2ZsYXNoX3JlYWxfcHJvdGVjdChpbmZvLCAwLCAwKTsKICNlbmRpZgogfQpAQCAtNTU1LDcgKzU1NSw3IEBACiAJCWZsYWcgID0gMDsKIAkJKmFkZHIgPSAweDAwNzA7IC8qUmVhZCBzdGF0dXNyZWdpc3RlciBjb21tYW5kICovCiAJCXdoaWxlICgoKGNzciA9ICphZGRyKSAmIElOVEVMX0ZMQVNIX1NUQVRVU19XU01TKSE9SU5URUxfRkxBU0hfU1RBVFVTX1dTTVMpIHsKLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJZmxhZyA9IDE7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC02NDIsNyArNjQyLDcgQEAKIAl3aGlsZSghKHRtcCAmIElOVEVMX0ZMQVNIX1NUQVRVU19XU01TKSkgewogCQkvKldyaXRlIFN0YXRlIE1hY2hpbmUgQnVzeSovCiAJCS8qV2FpdCB1bnRpbGwgZG9uZSBvciB0aW1lb3V0LiovCi0JCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gMHgwMDUwOyAvKiBSZXNldCB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJCQkqYWRkciA9IDB4ZmZmZjsgLyogUmVzZXQgdGhlIGNoaXAgKi8KIAkJCXByaW50ZiAoIlRUaW1lb3V0XG4iKTsKQEAgLTY3MCw3ICs2NzAsNyBAQAogCXRtcCA9ICgodXNob3J0KSgqYWRkcikpICYgMHgwMEZGOyAvKiBSZWFkIHRoZSBzdGF0dXMgKi8KIAl3aGlsZSAoISh0bXAgJiBJTlRFTF9GTEFTSF9TVEFUVVNfV1NNUykpIHsKIAkJLyogV3JpdGUgU3RhdGUgTWFjaGluZSBCdXN5ICovCi0JCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gMHgwMDUwOyAvKiBSZXNldCB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJCQkqYWRkciA9IDB4ZmZmZjsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9jYWRtdXMuYyBiL2JvYXJkL2ZyZWVzY2FsZS9jb21tb24vY2FkbXVzLmMKaW5kZXggNWY4NmRlNS4uZGI1NGJjNCAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9jYWRtdXMuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvY29tbW9uL2NhZG11cy5jCkBAIC0yNyw4ICsyNyw4IEBACiAvKgogICogQ0FETVVTIEJvYXJkIFN5c3RlbSBSZWdpc3RlcnMKICAqLwotI2lmbmRlZiBDRkdfQ0FETVVTX0JBU0VfUkVHCi0jZGVmaW5lIENGR19DQURNVVNfQkFTRV9SRUcJKENBRE1VU19CQVNFX0FERFIgKyAweDQwMDApCisjaWZuZGVmIENPTkZJR19TWVNfQ0FETVVTX0JBU0VfUkVHCisjZGVmaW5lIENPTkZJR19TWVNfQ0FETVVTX0JBU0VfUkVHCShDQURNVVNfQkFTRV9BRERSICsgMHg0MDAwKQogI2VuZGlmCiAKIHR5cGVkZWYgc3RydWN0IGNhZG11c19yZWcgewpAQCAtNDcsNyArNDcsNyBAQAogdW5zaWduZWQgaW50CiBnZXRfYm9hcmRfdmVyc2lvbih2b2lkKQogewotCXZvbGF0aWxlIGNhZG11c19yZWdfdCAqY2FkbXVzID0gKGNhZG11c19yZWdfdCAqKUNGR19DQURNVVNfQkFTRV9SRUc7CisJdm9sYXRpbGUgY2FkbXVzX3JlZ190ICpjYWRtdXMgPSAoY2FkbXVzX3JlZ190ICopQ09ORklHX1NZU19DQURNVVNfQkFTRV9SRUc7CiAKIAlyZXR1cm4gY2FkbXVzLT5jbV92ZXI7CiB9CkBAIC01Niw3ICs1Niw3IEBACiB1bnNpZ25lZCBsb25nCiBnZXRfY2xvY2tfZnJlcSh2b2lkKQogewotCXZvbGF0aWxlIGNhZG11c19yZWdfdCAqY2FkbXVzID0gKGNhZG11c19yZWdfdCAqKUNGR19DQURNVVNfQkFTRV9SRUc7CisJdm9sYXRpbGUgY2FkbXVzX3JlZ190ICpjYWRtdXMgPSAoY2FkbXVzX3JlZ190ICopQ09ORklHX1NZU19DQURNVVNfQkFTRV9SRUc7CiAKIAl1aW50IHBjaTFfc3BlZWQgPSAoY2FkbXVzLT5jbV9wY2kgPj4gMikgJiAweDM7IC8qIFBTUEVFRCBpbiBbNDo1XSAqLwogCkBAIC03NCw3ICs3NCw3IEBACiB1bnNpZ25lZCBpbnQKIGdldF9wY2lfc2xvdCh2b2lkKQogewotCXZvbGF0aWxlIGNhZG11c19yZWdfdCAqY2FkbXVzID0gKGNhZG11c19yZWdfdCAqKUNGR19DQURNVVNfQkFTRV9SRUc7CisJdm9sYXRpbGUgY2FkbXVzX3JlZ190ICpjYWRtdXMgPSAoY2FkbXVzX3JlZ190ICopQ09ORklHX1NZU19DQURNVVNfQkFTRV9SRUc7CiAKIAkvKgogCSAqIFBDSSBzbG90IGluIFVTRVIgYml0cyBDU1JbNjo3XSBieSBjb252ZW50aW9uLgpAQCAtODYsNyArODYsNyBAQAogdW5zaWduZWQgaW50CiBnZXRfcGNpX2R1YWwodm9pZCkKIHsKLQl2b2xhdGlsZSBjYWRtdXNfcmVnX3QgKmNhZG11cyA9IChjYWRtdXNfcmVnX3QgKilDRkdfQ0FETVVTX0JBU0VfUkVHOworCXZvbGF0aWxlIGNhZG11c19yZWdfdCAqY2FkbXVzID0gKGNhZG11c19yZWdfdCAqKUNPTkZJR19TWVNfQ0FETVVTX0JBU0VfUkVHOwogCiAJLyoKIAkgKiBQQ0kgRFVBTCBpbiBDTV9QQ0lbM10KZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9jb21tb24vZnNsX2RpdV9mYi5jIGIvYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9mc2xfZGl1X2ZiLmMKaW5kZXggNGQ0YjBhMS4uMmZjODc4YiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9mc2xfZGl1X2ZiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9mc2xfZGl1X2ZiLmMKQEAgLTIwNSw3ICsyMDUsNyBAQAogCXVuc2lnbmVkIGludCBpLCBqOwogCiAJZGVidWcoIkVudGVyIGZzbF9kaXVfaW5pdFxuIik7Ci0JZHIuZGl1X3JlZyA9IChzdHJ1Y3QgZGl1ICopIChDRkdfRElVX0FERFIpOworCWRyLmRpdV9yZWcgPSAoc3RydWN0IGRpdSAqKSAoQ09ORklHX1NZU19ESVVfQUREUik7CiAJaHcgPSAoc3RydWN0IGRpdSAqKSBkci5kaXVfcmVnOwogCiAJZGlzYWJsZV9sY2RjKCk7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvY29tbW9uL3BpeGlzLmMgYi9ib2FyZC9mcmVlc2NhbGUvY29tbW9uL3BpeGlzLmMKaW5kZXggYjVhMGU4NC4uMzQ4Njk2ZSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9waXhpcy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9jb21tb24vcGl4aXMuYwpAQCAtMjA3LDggKzIwNyw4IEBACiAJb3V0OChQSVhJU19CQVNFICsgUElYSVNfVkNGR0VOMSwgdG1wKTsKIH0KIAotI2lmbmRlZiBDRkdfUElYSVNfVkJPT1RfTUFTSwotI2RlZmluZSBDRkdfUElYSVNfVkJPT1RfTUFTSwkoMHg0MCkKKyNpZm5kZWYgQ09ORklHX1NZU19QSVhJU19WQk9PVF9NQVNLCisjZGVmaW5lIENPTkZJR19TWVNfUElYSVNfVkJPT1RfTUFTSwkoMHg0MCkKICNlbmRpZgogCiB2b2lkIGNsZWFyX2FsdGJhbmsodm9pZCkKQEAgLTIxNiw3ICsyMTYsNyBAQAogCXU4IHRtcDsKIAogCXRtcCA9IGluOChQSVhJU19CQVNFICsgUElYSVNfVkJPT1QpOwotCXRtcCAmPSB+Q0ZHX1BJWElTX1ZCT09UX01BU0s7CisJdG1wICY9IH5DT05GSUdfU1lTX1BJWElTX1ZCT09UX01BU0s7CiAKIAlvdXQ4KFBJWElTX0JBU0UgKyBQSVhJU19WQk9PVCwgdG1wKTsKIH0KQEAgLTIyNyw3ICsyMjcsNyBAQAogCXU4IHRtcDsKIAogCXRtcCA9IGluOChQSVhJU19CQVNFICsgUElYSVNfVkJPT1QpOwotCXRtcCB8PSBDRkdfUElYSVNfVkJPT1RfTUFTSzsKKwl0bXAgfD0gQ09ORklHX1NZU19QSVhJU19WQk9PVF9NQVNLOwogCiAJb3V0OChQSVhJU19CQVNFICsgUElYSVNfVkJPT1QsIHRtcCk7CiB9CkBAIC0zMjcsNyArMzI3LDcgQEAKIH0KIAogVV9CT09UX0NNRCgKLQkJcGl4aXNfc2V0X3NnbWlpLCBDRkdfTUFYQVJHUywgMSwgcGl4aXNfc2V0X3NnbWlpLAorCQlwaXhpc19zZXRfc2dtaWksIENPTkZJR19TWVNfTUFYQVJHUywgMSwgcGl4aXNfc2V0X3NnbWlpLAogCQkicGl4aXNfc2V0X3NnbWlpIgogCQkiIC0gRW5hYmxlIG9yIGRpc2FibGUgU0dNSUkgbW9kZSBmb3IgYSBnaXZlbiBUU0VDIFxuIiwKIAkJIlxucGl4aXNfc2V0X3NnbWlpIFtUU0VDIG51bV0gPG9ufG9mZnxzd2l0Y2g+XG4iCkBAIC01MTgsNyArNTE4LDcgQEAKIAogCiBVX0JPT1RfQ01EKAotCXBpeGlzX3Jlc2V0LCBDRkdfTUFYQVJHUywgMSwgcGl4aXNfcmVzZXRfY21kLAorCXBpeGlzX3Jlc2V0LCBDT05GSUdfU1lTX01BWEFSR1MsIDEsIHBpeGlzX3Jlc2V0X2NtZCwKIAkicGl4aXNfcmVzZXQgLSBSZXNldCB0aGUgYm9hcmQgdXNpbmcgdGhlIEZQR0Egc2VxdWVuY2VyXG4iLAogCSIgICAgcGl4aXNfcmVzZXRcbiIKIAkiICAgIHBpeGlzX3Jlc2V0IFthbHRiYW5rXVxuIgpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9zeXNfZWVwcm9tLmMgYi9ib2FyZC9mcmVlc2NhbGUvY29tbW9uL3N5c19lZXByb20uYwppbmRleCA5YmVmOTJlLi5lYjU4YzdmIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvY29tbW9uL3N5c19lZXByb20uYworKysgYi9ib2FyZC9mcmVlc2NhbGUvY29tbW9uL3N5c19lZXByb20uYwpAQCAtMzAsOCArMzAsOCBAQAogCiAjaW5jbHVkZSAiLi4vY29tbW9uL2VlcHJvbS5oIgogCi0jaWYgIWRlZmluZWQoQ0ZHX0kyQ19FRVBST01fQ0NJRCkgJiYgIWRlZmluZWQoQ0ZHX0kyQ19FRVBST01fTlhJRCkKLSNlcnJvciAiUGxlYXNlIGRlZmluZSBlaXRoZXIgQ0ZHX0kyQ19FRVBST01fQ0NJRCBvciBDRkdfSTJDX0VFUFJPTV9OWElEIgorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfSTJDX0VFUFJPTV9DQ0lEKSAmJiAhZGVmaW5lZChDT05GSUdfU1lTX0kyQ19FRVBST01fTlhJRCkKKyNlcnJvciAiUGxlYXNlIGRlZmluZSBlaXRoZXIgQ09ORklHX1NZU19JMkNfRUVQUk9NX0NDSUQgb3IgQ09ORklHX1NZU19JMkNfRUVQUk9NX05YSUQiCiAjZW5kaWYKIAogLyoqCkBAIC00MCw3ICs0MCw3IEBACiAgKiBTZWUgYXBwbGljYXRpb24gbm90ZSBBTjM2MzggZm9yIGRldGFpbHMuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgX19hdHRyaWJ1dGVfXyAoKF9fcGFja2VkX18pKSBlZXByb20gewotI2lmZGVmIENGR19JMkNfRUVQUk9NX0NDSUQKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19FRVBST01fQ0NJRAogCXU4IGlkWzRdOyAgICAgICAgIC8qIDB4MDAgLSAweDAzIEVFUFJPTSBUYWcgJ0NDSUQnICovCiAJdTggbWFqb3I7ICAgICAgICAgLyogMHgwNCAgICAgICAgQm9hcmQgcmV2aXNpb24sIG1ham9yICovCiAJdTggbWlub3I7ICAgICAgICAgLyogMHgwNSAgICAgICAgQm9hcmQgcmV2aXNpb24sIG1pbm9yICovCkBAIC01Myw3ICs1Myw3IEBACiAJdTggbWFjWzhdWzZdOyAgICAgLyogMHg0MiAtIDB4NzEgTUFDIGFkZHJlc3NlcyAqLwogCXUzMiBjcmM7ICAgICAgICAgIC8qIDB4NzIgICAgICAgIENSQzMyIGNoZWNrc3VtICovCiAjZW5kaWYKLSNpZmRlZiBDRkdfSTJDX0VFUFJPTV9OWElECisjaWZkZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX05YSUQKIAl1OCBpZFs0XTsgICAgICAgICAvKiAweDAwIC0gMHgwMyBFRVBST00gVGFnICdOWElEJyAqLwogCXU4IHNuWzEyXTsgICAgICAgIC8qIDB4MDQgLSAweDBGIFNlcmlhbCBOdW1iZXIgKi8KIAl1OCBlcnJhdGFbNV07ICAgICAvKiAweDEwIC0gMHgxNCBFcnJhdGEgTGV2ZWwgKi8KQEAgLTc0LDEyICs3NCwxMiBAQAogLyogU2V0IHRvIDEgaWYgd2UndmUgcmVhZCBFRVBST00gaW50byBtZW1vcnkgKi8KIHN0YXRpYyBpbnQgaGFzX2JlZW5fcmVhZCA9IDA7CiAKLSNpZmRlZiBDRkdfSTJDX0VFUFJPTV9OWElECisjaWZkZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX05YSUQKIC8qIElzIHRoaXMgYSB2YWxpZCBOWElEIEVFUFJPTT8gKi8KICNkZWZpbmUgaXNfdmFsaWQgKCooKHUzMiAqKWUuaWQpID09ICgoJ04nIDw8IDI0KSB8ICgnWCcgPDwgMTYpIHwgKCdJJyA8PCA4KSB8ICdEJykpCiAjZW5kaWYKIAotI2lmZGVmIENGR19JMkNfRUVQUk9NX0NDSUQKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19FRVBST01fQ0NJRAogLyogSXMgdGhpcyBhIHZhbGlkIENDSUQgRUVQUk9NPyAqLwogI2RlZmluZSBpc192YWxpZCAoKigodTMyICopZS5pZCkgPT0gKCgnQycgPDwgMjQpIHwgKCdDJyA8PCAxNikgfCAoJ0knIDw8IDgpIHwgJ0QnKSkKICNlbmRpZgpAQCAtOTMsNyArOTMsNyBAQAogCXVuc2lnbmVkIGludCBjcmM7CiAKIAkvKiBFRVBST00gdGFnIElELCBlaXRoZXIgQ0NJRCBvciBOWElEICovCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fTlhJRAorI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9OWElECiAJcHJpbnRmKCJJRDogJWMlYyVjJWMgdiV1XG4iLCBlLmlkWzBdLCBlLmlkWzFdLCBlLmlkWzJdLCBlLmlkWzNdLAogCQliZTMyX3RvX2NwdShlLnZlcnNpb24pKTsKICNlbHNlCkBAIC0xMDQsNyArMTA0LDcgQEAKIAlwcmludGYoIlNOOiAlc1xuIiwgZS5zbik7CiAKIAkvKiBFcnJhdGEgbGV2ZWwuICovCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fTlhJRAorI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9OWElECiAJcHJpbnRmKCJFcnJhdGE6ICVzXG4iLCBlLmVycmF0YSk7CiAjZWxzZQogCXByaW50ZigiRXJyYXRhOiAlYyVjXG4iLApAQCAtMTUyLDIyICsxNTIsMjIgQEAKIHN0YXRpYyBpbnQgcmVhZF9lZXByb20odm9pZCkKIHsKIAlpbnQgcmV0OwotI2lmZGVmIENGR19FRVBST01fQlVTX05VTQorI2lmZGVmIENPTkZJR19TWVNfRUVQUk9NX0JVU19OVU0KIAl1bnNpZ25lZCBpbnQgYnVzOwogI2VuZGlmCiAKIAlpZiAoaGFzX2JlZW5fcmVhZCkKIAkJcmV0dXJuIDA7CiAKLSNpZmRlZiBDRkdfRUVQUk9NX0JVU19OVU0KKyNpZmRlZiBDT05GSUdfU1lTX0VFUFJPTV9CVVNfTlVNCiAJYnVzID0gaTJjX2dldF9idXNfbnVtKCk7Ci0JaTJjX3NldF9idXNfbnVtKENGR19FRVBST01fQlVTX05VTSk7CisJaTJjX3NldF9idXNfbnVtKENPTkZJR19TWVNfRUVQUk9NX0JVU19OVU0pOwogI2VuZGlmCiAKLQlyZXQgPSBpMmNfcmVhZChDRkdfSTJDX0VFUFJPTV9BRERSLCAwLCBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiwKKwlyZXQgPSBpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgMCwgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOLAogCQkodm9pZCAqKSZlLCBzaXplb2YoZSkpOwogCi0jaWZkZWYgQ0ZHX0VFUFJPTV9CVVNfTlVNCisjaWZkZWYgQ09ORklHX1NZU19FRVBST01fQlVTX05VTQogCWkyY19zZXRfYnVzX251bShidXMpOwogI2VuZGlmCiAKQEAgLTE4OCwxMiArMTg4LDEyIEBACiAJaW50IHJldCwgaSwgbGVuZ3RoOwogCXVuc2lnbmVkIGludCBjcmM7CiAJdm9pZCAqcDsKLSNpZmRlZiBDRkdfRUVQUk9NX0JVU19OVU0KKyNpZmRlZiBDT05GSUdfU1lTX0VFUFJPTV9CVVNfTlVNCiAJdW5zaWduZWQgaW50IGJ1czsKICNlbmRpZgogCiAJLyogU2V0IHRoZSByZXNlcnZlZCB2YWx1ZXMgdG8gMHhGRiAgICovCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fTlhJRAorI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9OWElECiAJZS5yZXNfMCA9IDB4RkY7CiAJbWVtc2V0KGUucmVzXzEsIDB4RkYsIHNpemVvZihlLnJlc18xKSk7CiAjZWxzZQpAQCAtMjA0LDIwICsyMDQsMjAgQEAKIAljcmMgPSBjcmMzMigwLCAodm9pZCAqKSZlLCBsZW5ndGggLSA0KTsKIAllLmNyYyA9IGNwdV90b19iZTMyKGNyYyk7CiAKLSNpZmRlZiBDRkdfRUVQUk9NX0JVU19OVU0KKyNpZmRlZiBDT05GSUdfU1lTX0VFUFJPTV9CVVNfTlVNCiAJYnVzID0gaTJjX2dldF9idXNfbnVtKCk7Ci0JaTJjX3NldF9idXNfbnVtKENGR19FRVBST01fQlVTX05VTSk7CisJaTJjX3NldF9idXNfbnVtKENPTkZJR19TWVNfRUVQUk9NX0JVU19OVU0pOwogI2VuZGlmCiAKIAlmb3IgKGkgPSAwLCBwID0gJmU7IGkgPCBsZW5ndGg7IGkgKz0gOCwgcCArPSA4KSB7Ci0JCXJldCA9IGkyY193cml0ZShDRkdfSTJDX0VFUFJPTV9BRERSLCBpLCBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiwKKwkJcmV0ID0gaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCBpLCBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4sCiAJCQlwLCBtaW4oKGxlbmd0aCAtIGkpLCA4KSk7CiAJCWlmIChyZXQpCiAJCQlicmVhazsKIAkJdWRlbGF5KDUwMDApOwkvKiA1bXMgd3JpdGUgY3ljbGUgdGltaW5nICovCiAJfQogCi0jaWZkZWYgQ0ZHX0VFUFJPTV9CVVNfTlVNCisjaWZkZWYgQ09ORklHX1NZU19FRVBST01fQlVTX05VTQogCWkyY19zZXRfYnVzX251bShidXMpOwogI2VuZGlmCiAKQEAgLTM0Myw3ICszNDMsNyBAQAogCQlzdHJuY3B5KChjaGFyICopZS5zbiwgYXJndlsyXSwgc2l6ZW9mKGUuc24pIC0gMSk7CiAJCWJyZWFrOwogCWNhc2UgJ2UnOgkvKiBlcnJhdGEgKi8KLSNpZmRlZiBDRkdfSTJDX0VFUFJPTV9OWElECisjaWZkZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX05YSUQKIAkJbWVtc2V0KGUuZXJyYXRhLCAwLCA1KTsKIAkJc3RybmNweSgoY2hhciAqKWUuZXJyYXRhLCBhcmd2WzJdLCA0KTsKICNlbHNlCkBAIC00MjksNyArNDI5LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2lmZGVmIENGR19JMkNfRUVQUk9NX0NDSUQKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19FRVBST01fQ0NJRAogCiAvKioKICAqIGdldF9jcHVfYm9hcmRfcmV2aXNpb24gLSBnZXQgdGhlIENQVSBib2FyZCByZXZpc2lvbiBvbiA4NXh4IGJvYXJkcwpAQCAtNDM5LDExICs0MzksMTEgQEAKICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSByZWxvY2F0aW9uLCBzbyB3ZSBuZWVkIHRvIHJlYWQgYSBwcml2YXRlCiAgKiBjb3B5IG9mIHRoZSBFRVBST00gaW50byBhIGxvY2FsIHZhcmlhYmxlIG9uIHRoZSBzdGFjay4KICAqCi0gKiBBbHNvLCB3ZSBhc3N1bWUgdGhhdCBDRkdfRUVQUk9NX0JVU19OVU0gPT0gQ0ZHX1NQRF9CVVNfTlVNLiAgVGhlIGdsb2JhbAotICogdmFyaWFibGUgaTJjX2J1c19udW0gbXVzdCBiZSBjb21waWxlLXRpbWUgaW5pdGlhbGl6ZWQgdG8gQ0ZHX1NQRF9CVVNfTlVNLAorICogQWxzbywgd2UgYXNzdW1lIHRoYXQgQ09ORklHX1NZU19FRVBST01fQlVTX05VTSA9PSBDT05GSUdfU1lTX1NQRF9CVVNfTlVNLiAgVGhlIGdsb2JhbAorICogdmFyaWFibGUgaTJjX2J1c19udW0gbXVzdCBiZSBjb21waWxlLXRpbWUgaW5pdGlhbGl6ZWQgdG8gQ09ORklHX1NZU19TUERfQlVTX05VTSwKICAqIHNvIHRoYXQgdGhlIFNQRCBjb2RlIHdpbGwgd29yay4gIFRoaXMgbWVhbnMgdGhhdCBhbGwgcHJlLXJlbG9jYXRpb24gSTJDCi0gKiBvcGVyYXRpb25zIGNhbiBvbmx5IG9jY3VyIG9uIHRoZSBDRkdfU1BEX0JVU19OVU0gYnVzLiAgU28gaWYKLSAqIENGR19FRVBST01fQlVTX05VTSAhPSBDRkdfU1BEX0JVU19OVU0sIHRoZW4gd2UgY2FuJ3QgcmVhZCB0aGUgRUVQUk9NIHdoZW4KKyAqIG9wZXJhdGlvbnMgY2FuIG9ubHkgb2NjdXIgb24gdGhlIENPTkZJR19TWVNfU1BEX0JVU19OVU0gYnVzLiAgU28gaWYKKyAqIENPTkZJR19TWVNfRUVQUk9NX0JVU19OVU0gIT0gQ09ORklHX1NZU19TUERfQlVTX05VTSwgdGhlbiB3ZSBjYW4ndCByZWFkIHRoZSBFRVBST00gd2hlbgogICogdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQuICBPaCB3ZWxsLgogICovCiB1bnNpZ25lZCBpbnQgZ2V0X2NwdV9ib2FyZF9yZXZpc2lvbih2b2lkKQpAQCAtNDU0LDcgKzQ1NCw3IEBACiAJCXU4IG1pbm9yOyAgICAgICAgIC8qIDB4MDUgICAgICAgIEJvYXJkIHJldmlzaW9uLCBtaW5vciAqLwogCX0gYmU7CiAKLQlpMmNfcmVhZChDRkdfSTJDX0VFUFJPTV9BRERSLCAwLCBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiwKKwlpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgMCwgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOLAogCQkodm9pZCAqKSZiZSwgc2l6ZW9mKGJlKSk7CiAKIAlpZiAoYmUuaWQgIT0gKCgnQycgPDwgMjQpIHwgKCdDJyA8PCAxNikgfCAoJ0knIDw8IDgpIHwgJ0QnKSkKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTIyNzdldmIvbTUyMjc3ZXZiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTUyMjc3ZXZiL201MjI3N2V2Yi5jCmluZGV4IGU1ZjQ3ZDIuLjgzOGE2ZGUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTIyNzdldmIvbTUyMjc3ZXZiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MjI3N2V2Yi9tNTIyNzdldmIuYwpAQCAtNDEsNyArNDEsNyBAQAogCXZvbGF0aWxlIHNkcmFtY190ICpzZHJhbSA9ICh2b2xhdGlsZSBzZHJhbWNfdCAqKShNTUFQX1NEUkFNKTsKIAl1MzIgZHJhbXNpemUsIGk7CiAKLQlkcmFtc2l6ZSA9IENGR19TRFJBTV9TSVpFICogMHgxMDAwMDA7CisJZHJhbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAweDEwMDAwMDsKIAogCWZvciAoaSA9IDB4MTM7IGkgPCAweDIwOyBpKyspIHsKIAkJaWYgKGRyYW1zaXplID09ICgxIDw8IGkpKQpAQCAtNDksMjggKzQ5LDI4IEBACiAJfQogCWktLTsKIAotCXNkcmFtLT5zZGNzMCA9IChDRkdfU0RSQU1fQkFTRSB8IGkpOworCXNkcmFtLT5zZGNzMCA9IChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBpKTsKIAotCXNkcmFtLT5zZGNmZzEgPSBDRkdfU0RSQU1fQ0ZHMTsKLQlzZHJhbS0+c2RjZmcyID0gQ0ZHX1NEUkFNX0NGRzI7CisJc2RyYW0tPnNkY2ZnMSA9IENPTkZJR19TWVNfU0RSQU1fQ0ZHMTsKKwlzZHJhbS0+c2RjZmcyID0gQ09ORklHX1NZU19TRFJBTV9DRkcyOwogCiAJLyogSXNzdWUgUEFMTCAqLwotCXNkcmFtLT5zZGNyID0gQ0ZHX1NEUkFNX0NUUkwgfCAyOworCXNkcmFtLT5zZGNyID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgMjsKIAogCS8qIElzc3VlIExFTVIgKi8KLQkvKnNkcmFtLT5zZG1yID0gQ0ZHX1NEUkFNX0VNT0Q7ICovCi0Jc2RyYW0tPnNkbXIgPSBDRkdfU0RSQU1fTU9ERTsKKwkvKnNkcmFtLT5zZG1yID0gQ09ORklHX1NZU19TRFJBTV9FTU9EOyAqLworCXNkcmFtLT5zZG1yID0gQ09ORklHX1NZU19TRFJBTV9NT0RFOwogCiAJdWRlbGF5KDEwMDApOwogCiAJLyogSXNzdWUgUEFMTCAqLwotCXNkcmFtLT5zZGNyID0gQ0ZHX1NEUkFNX0NUUkwgfCAyOworCXNkcmFtLT5zZGNyID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgMjsKIAogCS8qIFBlcmZvcm0gdHdvIHJlZnJlc2ggY3ljbGVzICovCi0Jc2RyYW0tPnNkY3IgPSBDRkdfU0RSQU1fQ1RSTCB8IDQ7Ci0Jc2RyYW0tPnNkY3IgPSBDRkdfU0RSQU1fQ1RSTCB8IDQ7CisJc2RyYW0tPnNkY3IgPSBDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCA0OworCXNkcmFtLT5zZGNyID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgNDsKIAotCXNkcmFtLT5zZGNyID0gKENGR19TRFJBTV9DVFJMICYgfjB4ODAwMDAwMDApIHwgMHgxMDAwMGMwMDsKKwlzZHJhbS0+c2RjciA9IChDT05GSUdfU1lTX1NEUkFNX0NUUkwgJiB+MHg4MDAwMDAwMCkgfCAweDEwMDAwYzAwOwogCiAJdWRlbGF5KDEwMCk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTIzNWV2Yi9tNTIzNWV2Yi5jIGIvYm9hcmQvZnJlZXNjYWxlL201MjM1ZXZiL201MjM1ZXZiLmMKaW5kZXggYmQ4YTRlNS4uYjllNjEyNiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201MjM1ZXZiL201MjM1ZXZiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MjM1ZXZiL201MjM1ZXZiLmMKQEAgLTU3LDcgKzU3LDcgQEAKIAkgICAgR1BJT19QQVJfU0RSQU1fU0RXRSB8IEdQSU9fUEFSX1NEUkFNX1NDQVMgfCBHUElPX1BBUl9TRFJBTV9TUkFTIHwKIAkgICAgR1BJT19QQVJfU0RSQU1fU0NLRSB8IEdQSU9fUEFSX1NEUkFNX1NEQ1MoMyk7CiAKLQlkcmFtc2l6ZSA9IENGR19TRFJBTV9TSVpFICogMHgxMDAwMDA7CisJZHJhbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAweDEwMDAwMDsKIAlmb3IgKGkgPSAweDEzOyBpIDwgMHgyMDsgaSsrKSB7CiAJCWlmIChkcmFtc2l6ZSA9PSAoMSA8PCBpKSkKIAkJCWJyZWFrOwpAQCAtNjUsNyArNjUsNyBAQAogCWktLTsKIAogCWlmICghKHNkcmFtLT5kYWNyMCAmIFNEUkFNQ19EQVJDbl9SRSkpIHsKLQkJZHJhbWNsayA9IGdkLT5idXNfY2xrIC8gKENGR19IWiAqIENGR19IWik7CisJCWRyYW1jbGsgPSBnZC0+YnVzX2NsayAvIChDT05GSUdfU1lTX0haICogQ09ORklHX1NZU19IWik7CiAKIAkJLyogSW5pdGlhbGl6ZSBEUkFNIENvbnRyb2wgUmVnaXN0ZXI6IERDUiAqLwogCQlzZHJhbS0+ZGNyID0gU0RSQU1DX0RDUl9SVElNXzlDTEtTIHwKQEAgLTczLDcgKzczLDcgQEAKIAogCQkvKiBJbml0aWFsaXplIERBQ1IwICovCiAJCXNkcmFtLT5kYWNyMCA9Ci0JCSAgICBTRFJBTUNfREFSQ25fQkEoQ0ZHX1NEUkFNX0JBU0UpIHwgU0RSQU1DX0RBUkNuX0NBU0xfQzEgfAorCQkgICAgU0RSQU1DX0RBUkNuX0JBKENPTkZJR19TWVNfU0RSQU1fQkFTRSkgfCBTRFJBTUNfREFSQ25fQ0FTTF9DMSB8CiAJCSAgICBTRFJBTUNfREFSQ25fQ0JNX0NNRDIwIHwgU0RSQU1DX0RBUkNuX1BTXzMyOwogCQlhc20oIm5vcCIpOwogCkBAIC05MCw3ICs5MCw3IEBACiAJCX0KIAogCQkvKiBXcml0ZSB0byB0aGlzIGJsb2NrIHRvIGluaXRpYXRlIHByZWNoYXJnZSAqLwotCQkqKHUzMiAqKSAoQ0ZHX1NEUkFNX0JBU0UpID0gMHhBNUE1OTY5NjsKKwkJKih1MzIgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRSkgPSAweEE1QTU5Njk2OwogCiAJCS8qICBTZXQgUkUgKGJpdCAxNSkgaW4gREFDUiAqLwogCQlzZHJhbS0+ZGFjcjAgfD0gU0RSQU1DX0RBUkNuX1JFOwpAQCAtMTA1LDcgKzEwNSw3IEBACiAJCWFzbSgibm9wIik7CiAKIAkJLyogV3JpdGUgdG8gdGhlIFNEUkFNIE1vZGUgUmVnaXN0ZXIgKi8KLQkJKih1MzIgKikgKENGR19TRFJBTV9CQVNFICsgMHg0MDApID0gMHhBNUE1OTY5NjsKKwkJKih1MzIgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NDAwKSA9IDB4QTVBNTk2OTY7CiAJfQogCiAJcmV0dXJuIGRyYW1zaXplOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201MjM1ZXZiL21paS5jIGIvYm9hcmQvZnJlZXNjYWxlL201MjM1ZXZiL21paS5jCmluZGV4IDFmZDRkOTkuLjVmYmJkNjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTIzNWV2Yi9taWkuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTUyMzVldmIvbWlpLmMKQEAgLTQ5LDcgKzQ5LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfTUlJKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX01JSSkKICNpbmNsdWRlIDxtaWlwaHkuaD4KIAogLyogTWFrZSBNSUkgcmVhZC93cml0ZSBjb21tYW5kcyBmb3IgdGhlIEZFQy4gKi8KQEAgLTEzNSw5ICsxMzUsOSBAQAogCiAJcmV0dXJuIChtaWlfcmVwbHkgJiAweGZmZmYpOwkvKiBkYXRhIHJlYWQgZnJvbSBwaHkgKi8KIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZIHx8IChDT05GSUdfTUlJKSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIHx8IChDT05GSUdfTUlJKSAqLwogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpCiBpbnQgbWlpX2Rpc2NvdmVyX3BoeShzdHJ1Y3QgZXRoX2RldmljZSAqZGV2KQogewogI2RlZmluZSBNQVhfUEhZX1BBU1NFUyAxMQpAQCAtMjAyLDcgKzIwMiw3IEBACiAKIAlyZXR1cm4gcGh5YWRkcjsKIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KIAogdm9pZCBtaWlfaW5pdCh2b2lkKSBfX2F0dHJpYnV0ZV9fKCh3ZWFrLGFsaWFzKCJfX21paV9pbml0IikpKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201MjQ5ZXZiL201MjQ5ZXZiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTUyNDlldmIvbTUyNDlldmIuYwppbmRleCBjOWVkMzQxLi5iMWNjYmViIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTUyNDlldmIvbTUyNDlldmIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTUyNDlldmIvbTUyNDlldmIuYwpAQCAtNDIsNyArNDIsNyBAQAogCS8qCiAJICogU2V0IExFRCBvbgogCSAqLwotCXZhbCA9IG1iYXIyX3JlYWRMb25nKE1DRlNJTV9HUElPMV9PVVQpICYgfkNGR19HUElPMV9MRUQ7CisJdmFsID0gbWJhcjJfcmVhZExvbmcoTUNGU0lNX0dQSU8xX09VVCkgJiB+Q09ORklHX1NZU19HUElPMV9MRUQ7CiAJbWJhcjJfd3JpdGVMb25nKE1DRlNJTV9HUElPMV9PVVQsIHZhbCk7ICAgLyogU2V0IExFRCBvbiAqLwogCiAJcmV0dXJuIDA7CkBAIC01NywxMyArNTcsMTMgQEAKIAkgKglSQyA9IChbKFJlZnJlc2hUaW1lLyNyb3dzKSAvICgxL0J1c0NsayldIC8gMTYpIC0gMQogCSAqLwogCi0jaWZkZWYgQ0ZHX0ZBU1RfQ0xLCisjaWZkZWYgQ09ORklHX1NZU19GQVNUX0NMSwogCS8qCiAJICogQnVzY2xrPTcwTUh6LCBSZWZyZXNoVGltZT02NG1zLCAjcm93cz00MDk2ICg0SykKIAkgKiBTTz0xLCBOQU09MCwgQ09DPTAsIFJUSU09MDEgKDZjbGsgcmVmcmVzaCksIFJDPTM5CiAJICovCiAJbWJhcl93cml0ZVNob3J0KE1DRlNJTV9EQ1IsIDB4ODIzOSk7Ci0jZWxpZiBDRkdfUExMX0JZUEFTUworI2VsaWYgQ09ORklHX1NZU19QTExfQllQQVNTCiAJLyoKIAkgKiBCdXNjbGs9NS42NDQ4TUh6LCBSZWZyZXNoVGltZT02NG1zLCAjcm93cz04MTkyICg4SykKIAkgKiBTTz0xLCBOQU09MCwgQ09DPTAsIFJUSU09MDEgKDZjbGsgcmVmcmVzaCksIFJDPTAyCkBAIC0xMDEsNyArMTAxLDcgQEAKIAltYmFyX3dyaXRlTG9uZyhNQ0ZTSU1fREFDUjAsIDB4MDAwMGIzNjQpOyAgLyogRW5hYmxlIERBQ1IwW0lNUlNdIChiaXQgNik7IFJFIHJlbWFpbnMgZW5hYmxlZCAqLwogCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgMHg4MDApID0ganVuazsgLyogQWNjZXNzIFJBTSB0byBpbml0aWFsaXplIHRoZSBtb2RlIHJlZ2lzdGVyICovCiAKLQlyZXR1cm4gQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKKwlyZXR1cm4gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CiB9OwogCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI1M2RlbW8vZmxhc2guYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI1M2RlbW8vZmxhc2guYwppbmRleCAxYmYxZTk3Li4wOGY3NjdkIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTUyNTNkZW1vL2ZsYXNoLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MjUzZGVtby9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlIDxhc20vaW1tYXAuaD4KIAotI2lmbmRlZiBDRkdfRkxBU0hfQ0ZJCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IEZMQVNIX1BPUlRfV0lEVEg7CiB0eXBlZGVmIHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0IEZMQVNIX1BPUlRfV0lEVEhWOwogCkBAIC00OSwxNCArNDksMTQgQEAKIGludCB3cml0ZV93b3JkKGZsYXNoX2luZm9fdCAqIGluZm8sIEZQV1YgKiBkZXN0LCB1MTYgZGF0YSk7CiB2b2lkIGlubGluZSBzcGluX3doZWVsKHZvaWQpOwogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogdWxvbmcgZmxhc2hfaW5pdCh2b2lkKQogewogCXVsb25nIHNpemUgPSAwOwogCXVsb25nIGZiYXNlID0gMDsKIAotCWZiYXNlID0gKHVsb25nKSBDRkdfRkxBU0hfQkFTRTsKKwlmYmFzZSA9ICh1bG9uZykgQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCWZsYXNoX2dldF9zaXplKChGUFdWICopIGZiYXNlLCAmZmxhc2hfaW5mb1swXSk7CiAJZmxhc2hfZ2V0X29mZnNldHMoKHVsb25nKSBmYmFzZSwgJmZsYXNoX2luZm9bMF0pOwogCWZiYXNlICs9IGZsYXNoX2luZm9bMF0uc2l6ZTsKQEAgLTY0LDggKzY0LDggQEAKIAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycyAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOworCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdKTsKIAogCXJldHVybiBzaXplOwogfQpAQCAtNzcsOCArNzcsOCBAQAogCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkgewogCiAJCWluZm8tPnN0YXJ0WzBdID0gYmFzZTsKLQkJZm9yIChrID0gMCwgaiA9IDA7IGogPCBDRkdfU1NUX1NFQ1Q7IGorKywgaysrKSB7Ci0JCQlpbmZvLT5zdGFydFtrICsgMV0gPSBpbmZvLT5zdGFydFtrXSArIENGR19TU1RfU0VDVFNaOworCQlmb3IgKGsgPSAwLCBqID0gMDsgaiA8IENPTkZJR19TWVNfU1NUX1NFQ1Q7IGorKywgaysrKSB7CisJCQlpbmZvLT5zdGFydFtrICsgMV0gPSBpbmZvLT5zdGFydFtrXSArIENPTkZJR19TWVNfU1NUX1NFQ1RTWjsKIAkJCWluZm8tPnByb3RlY3Rba10gPSAwOwogCQl9CiAJfQpAQCAtMTc0LDE2ICsxNzQsMTYgQEAKIAogCWluZm8tPnNlY3Rvcl9jb3VudCA9IDA7CiAJaW5mby0+c2l6ZSA9IDA7Ci0JaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX1NTVF9TRUNUOwotCWluZm8tPnNpemUgPSBDRkdfU1NUX1NFQ1QgKiBDRkdfU1NUX1NFQ1RTWjsKKwlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX1NTVF9TRUNUOworCWluZm8tPnNpemUgPSBDT05GSUdfU1lTX1NTVF9TRUNUICogQ09ORklHX1NZU19TU1RfU0VDVFNaOwogCiAJLyogcmVzZXQgSUQgbW9kZSAqLwogCSphZGRyID0gKEZQV1YpIDB4MDBGMDAwRjA7CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCSAgICAgICBpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJICAgICAgIGluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJcmV0dXJuIChpbmZvLT5zaXplKTsKQEAgLTIzNSw3ICsyMzUsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyKDApOwogCWxhc3QgPSBzdGFydDsKIAotCWlmICgoc19sYXN0IC0gc19maXJzdCkgPT0gKENGR19TU1RfU0VDVCAtIDEpKSB7CisJaWYgKChzX2xhc3QgLSBzX2ZpcnN0KSA9PSAoQ09ORklHX1NZU19TU1RfU0VDVCAtIDEpKSB7CiAJCWlmIChwcm90ID09IDApIHsKIAkJCWFkZHIgPSAoRlBXViAqKSBpbmZvLT5zdGFydFswXTsKIApAQCAtMjU1LDcgKzI1NSw3IEBACiAJCQkJCWNvdW50ID0gMDsKIAkJCQl9CiAKLQkJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAkJCQkJKmFkZHIgPSAweDAwRjA7CS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwogCkBAIC0yNzEsNyArMjcxLDcgQEAKIAkJCQllbmFibGVfaW50ZXJydXB0cygpOwogCiAJCQlyZXR1cm4gMDsKLQkJfSBlbHNlIGlmIChwcm90ID09IENGR19TU1RfU0VDVCkgeworCQl9IGVsc2UgaWYgKHByb3QgPT0gQ09ORklHX1NZU19TU1RfU0VDVCkgewogCQkJcmV0dXJuIDE7CiAJCX0KIAl9CkBAIC0yOTQsNyArMjk0LDcgQEAKIAogCQkJCQlmbGFnID0gZGlzYWJsZV9pbnRlcnJ1cHRzKCk7CiAKLQkJCQkJYmFzZSA9IChGUFdWICopIChDRkdfRkxBU0hfQkFTRSk7CS8qIEZpcnN0IHNlY3RvciAqLworCQkJCQliYXNlID0gKEZQV1YgKikgKENPTkZJR19TWVNfRkxBU0hfQkFTRSk7CS8qIEZpcnN0IHNlY3RvciAqLwogCiAJCQkJCWJhc2VbRkxBU0hfQ1lDTEUxXSA9IDB4MDBBQTsJLyogdW5sb2NrICovCiAJCQkJCWJhc2VbRkxBU0hfQ1lDTEUyXSA9IDB4MDA1NTsJLyogdW5sb2NrICovCkBAIC0zMDgsNyArMzA4LDcgQEAKIAogCQkJCQl3aGlsZSAoKCphZGRyICYgMHgwMDgwKSAhPSAweDAwODApIHsKIAkJCQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4KLQkJCQkJCSAgICBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCQkJICAgIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQkJCXByaW50ZigiVGltZW91dFxuIik7CiAJCQkJCQkJKmFkZHIgPSAweDAwRjA7CS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwogCkBAIC00MjQsNyArNDI0LDcgQEAKIAkJcmV0dXJuICgyKTsKIAl9CiAKLQliYXNlID0gKEZQV1YgKikgKENGR19GTEFTSF9CQVNFKTsKKwliYXNlID0gKEZQV1YgKikgKENPTkZJR19TWVNfRkxBU0hfQkFTRSk7CiAKIAkvKiBEaXNhYmxlIGludGVycnVwdHMgd2hpY2ggbWlnaHQgY2F1c2UgYSB0aW1lb3V0IGhlcmUgKi8KIAlmbGFnID0gZGlzYWJsZV9pbnRlcnJ1cHRzKCk7CkBAIC00NDQsNyArNDQ0LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJd2hpbGUgKHJlcyA9PSAwCiAJICAgICAgICYmICgqZGVzdCAmICh1OCkgMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAodTgpIDB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSpkZXN0ID0gKHU4KSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAJCQlyZXMgPSAxOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTUyNTNkZW1vL201MjUzZGVtby5jIGIvYm9hcmQvZnJlZXNjYWxlL201MjUzZGVtby9tNTI1M2RlbW8uYwppbmRleCAyZWI2YTA0Li5iMzljZDRkIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTUyNTNkZW1vL201MjUzZGVtby5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI1M2RlbW8vbTUyNTNkZW1vLmMKQEAgLTQ1LDcgKzQ1LDcgQEAKIAlpZiAoIShtYmFyX3JlYWRMb25nKE1DRlNJTV9EQ1IpICYgMHg4MDAwKSkgewogCQl1MzIgUkMsIHRlbXA7CiAKLQkJUkMgPSAoQ0ZHX0NMSyAvIDEwMDAwMDApID4+IDE7CisJCVJDID0gKENPTkZJR19TWVNfQ0xLIC8gMTAwMDAwMCkgPj4gMTsKIAkJUkMgPSAoUkMgKiAxNSkgPj4gNDsKIAogCQkvKiBJbml0aWFsaXplIERSQU0gQ29udHJvbCBSZWdpc3RlcjogRENSICovCkBAIC01Niw3ICs1Niw3IEBACiAJCV9fYXNtX18oIm5vcCIpOwogCiAJCS8qIEluaXRpYWxpemUgRE1SMCAqLwotCQlkcmFtc2l6ZSA9IChDRkdfU0RSQU1fU0laRSA8PCAyMCk7CisJCWRyYW1zaXplID0gKENPTkZJR19TWVNfU0RSQU1fU0laRSA8PCAyMCk7CiAJCXRlbXAgPSAoZHJhbXNpemUgLSAxKSAmIDB4RkZGQzAwMDA7CiAJCW1iYXJfd3JpdGVMb25nKE1DRlNJTV9ETVIwLCB0ZW1wIHwgMSk7CiAJCV9fYXNtX18oIm5vcCIpOwpAQCAtNjUsNyArNjUsNyBAQAogCQlfX2FzbV9fKCJub3AiKTsKIAogCQkvKiBXcml0ZSB0byB0aGlzIGJsb2NrIHRvIGluaXRpYXRlIHByZWNoYXJnZSAqLwotCQkqKHUzMiAqKSAoQ0ZHX1NEUkFNX0JBU0UpID0gMHhhNWE1YTVhNTsKKwkJKih1MzIgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRSkgPSAweGE1YTVhNWE1OwogCQlfX2FzbV9fKCJub3AiKTsKIAogCQkvKiBTZXQgUkUgYml0IGluIERBQ1IgKi8KQEAgLTgxLDcgKzgxLDcgQEAKIAkJCSAgICAgICBtYmFyX3JlYWRMb25nKE1DRlNJTV9EQUNSMCkgfCAweDAwNDApOwogCQlfX2FzbV9fKCJub3AiKTsKIAotCQkqKHUzMiAqKSAoQ0ZHX1NEUkFNX0JBU0UgKyAweDgwMCkgPSAweGE1YTVhNWE1OworCQkqKHUzMiAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg4MDApID0gMHhhNWE1YTVhNTsKIAl9CiAKIAlyZXR1cm4gZHJhbXNpemU7CkBAIC0xMDQsNyArMTA0LDcgQEAKIAogdm9pZCBpZGVfc2V0X3Jlc2V0KGludCBpZGVyZXNldCkKIHsKLQl2b2xhdGlsZSBhdGFjX3QgKmF0YSA9IChhdGFjX3QgKikgQ0ZHX0FUQV9CQVNFX0FERFI7CisJdm9sYXRpbGUgYXRhY190ICphdGEgPSAoYXRhY190ICopIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUjsKIAlsb25nIHBlcmlvZDsKIAkvKiAgdDEsICB0MiwgIHQzLCAgdDQsICB0NSwgIHQ2LCAgdDksIHRSRCwgIHRBICovCiAJaW50IHBpb3Rtc1s1XVs5XSA9IHsgezcwLCAxNjUsIDYwLCAzMCwgNTAsIDUsIDIwLCAwLCAzNX0sCS8qIFBJTyAwICovCkBAIC0xMjEsNyArMTIxLDcgQEAKIAkJbWJhcjJfd3JpdGVMb25nKENJTV9NSVNDQ1IsIENJTV9NSVNDQ1JfQ1BVRU5EKTsKIAogI2RlZmluZSBDQUxDX1RJTUlORyh0KSAodCArIHBlcmlvZCAtIDEpIC8gcGVyaW9kCi0JCXBlcmlvZCA9IDEwMDAwMDAwMDAgLyAoQ0ZHX0NMSyAvIDIpOwkvKiBwZXJpb2QgaW4gbnMgKi8KKwkJcGVyaW9kID0gMTAwMDAwMDAwMCAvIChDT05GSUdfU1lTX0NMSyAvIDIpOwkvKiBwZXJpb2QgaW4gbnMgKi8KIAogCQkvKmF0YS0+dG9uID0gQ0FMQ19USU1JTkcgKDE4MCk7ICovCiAJCWF0YS0+dDEgPSBDQUxDX1RJTUlORyhwaW90bXNbMl1bMF0pOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201MjUzZXZiZS9tNTI1M2V2YmUuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI1M2V2YmUvbTUyNTNldmJlLmMKaW5kZXggZjNiMWVmZC4uYWU2OWY2NyAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201MjUzZXZiZS9tNTI1M2V2YmUuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTUyNTNldmJlL201MjUzZXZiZS5jCkBAIC00Myw3ICs0Myw3IEBACiAJaWYgKCEobWJhcl9yZWFkTG9uZyhNQ0ZTSU1fRENSKSAmIDB4ODAwMCkpIHsKIAkJdTMyIFJDLCBkcmFtc2l6ZTsKIAotCQlSQyA9IChDRkdfQ0xLIC8gMTAwMDAwMCkgPj4gMTsKKwkJUkMgPSAoQ09ORklHX1NZU19DTEsgLyAxMDAwMDAwKSA+PiAxOwogCQlSQyA9IChSQyAqIDE1KSA+PiA0OwogCiAJCS8qIEluaXRpYWxpemUgRFJBTSBDb250cm9sIFJlZ2lzdGVyOiBEQ1IgKi8KQEAgLTU0LDcgKzU0LDcgQEAKIAkJYXNtKCJub3AiKTsKIAogCQkvKiBJbml0aWFsaXplIERNUjAgKi8KLQkJZHJhbXNpemUgPSAoKENGR19TRFJBTV9TSVpFIDw8IDIwKSAtIDEpICYgMHhGRkZDMDAwMDsKKwkJZHJhbXNpemUgPSAoKENPTkZJR19TWVNfU0RSQU1fU0laRSA8PCAyMCkgLSAxKSAmIDB4RkZGQzAwMDA7CiAJCW1iYXJfd3JpdGVMb25nKE1DRlNJTV9ETVIwLCBkcmFtc2l6ZSB8IDEpOwogCQlhc20oIm5vcCIpOwogCkBAIC02Miw3ICs2Miw3IEBACiAJCWFzbSgibm9wIik7CiAKIAkJLyogV3JpdGUgdG8gdGhpcyBibG9jayB0byBpbml0aWF0ZSBwcmVjaGFyZ2UgKi8KLQkJKih1MzIgKikgKENGR19TRFJBTV9CQVNFKSA9IDB4YTVhNWE1YTU7CisJCSoodTMyICopIChDT05GSUdfU1lTX1NEUkFNX0JBU0UpID0gMHhhNWE1YTVhNTsKIAkJYXNtKCJub3AiKTsKIAogCQkvKiBTZXQgUkUgYml0IGluIERBQ1IgKi8KQEAgLTc4LDEwICs3OCwxMCBAQAogCQkJICAgICAgIG1iYXJfcmVhZExvbmcoTUNGU0lNX0RBQ1IwKSB8IDB4MDA0MCk7CiAJCWFzbSgibm9wIik7CiAKLQkJKih1MzIgKikgKENGR19TRFJBTV9CQVNFICsgMHg4MDApID0gMHhhNWE1YTVhNTsKKwkJKih1MzIgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4ODAwKSA9IDB4YTVhNWE1YTU7CiAJfQogCi0JcmV0dXJuIENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OwogfQogCiBpbnQgdGVzdGRyYW0odm9pZCkKQEAgLTEwMSw3ICsxMDEsNyBAQAogCiB2b2lkIGlkZV9zZXRfcmVzZXQoaW50IGlkZXJlc2V0KQogewotCXZvbGF0aWxlIGF0YWNfdCAqYXRhID0gKGF0YWNfdCAqKSBDRkdfQVRBX0JBU0VfQUREUjsKKwl2b2xhdGlsZSBhdGFjX3QgKmF0YSA9IChhdGFjX3QgKikgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSOwogCWxvbmcgcGVyaW9kOwogCS8qICB0MSwgIHQyLCAgdDMsICB0NCwgIHQ1LCAgdDYsICB0OSwgdFJELCAgdEEgKi8KIAlpbnQgcGlvdG1zWzVdWzldID0geyB7NzAsIDE2NSwgNjAsIDMwLCA1MCwgNSwgMjAsIDAsIDM1fSwJLyogUElPIDAgKi8KQEAgLTExOCw3ICsxMTgsNyBAQAogCQltYmFyMl93cml0ZUxvbmcoQ0lNX01JU0NDUiwgQ0lNX01JU0NDUl9DUFVFTkQpOwogCiAjZGVmaW5lIENBTENfVElNSU5HKHQpICh0ICsgcGVyaW9kIC0gMSkgLyBwZXJpb2QKLQkJcGVyaW9kID0gMTAwMDAwMDAwMCAvIChDRkdfQ0xLIC8gMik7CS8qIHBlcmlvZCBpbiBucyAqLworCQlwZXJpb2QgPSAxMDAwMDAwMDAwIC8gKENPTkZJR19TWVNfQ0xLIC8gMik7CS8qIHBlcmlvZCBpbiBucyAqLwogCiAJCS8qYXRhLT50b24gPSBDQUxDX1RJTUlORyAoMTgwKTsgKi8KIAkJYXRhLT50MSA9IENBTENfVElNSU5HKHBpb3Rtc1syXVswXSk7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTUyNzFldmIvbTUyNzFldmIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI3MWV2Yi9tNTI3MWV2Yi5jCmluZGV4IGUwODlkNWYuLjU1MDVjYzQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI3MWV2Yi9tNTI3MWV2Yi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI3MWV2Yi9tNTI3MWV2Yi5jCkBAIC02Niw3ICs2Niw3IEBACiAJCSAqIFBTOiAzMmJpdCBwb3J0IHNpemUKIAkJICovCiAJCW1iYXJfd3JpdGVMb25nKE1DRl9TRFJBTUNfREFDUjAsCi0JCQkJTUNGX1NEUkFNQ19EQUNSbl9CQShDRkdfU0RSQU1fQkFTRT4+MTgpCisJCQkJTUNGX1NEUkFNQ19EQUNSbl9CQShDT05GSUdfU1lTX1NEUkFNX0JBU0U+PjE4KQogCQkJCXwgTUNGX1NEUkFNQ19EQUNSbl9DQVNMKDEpCiAJCQkJfCBNQ0ZfU0RSQU1DX0RBQ1JuX0NCTSgzKQogCQkJCXwgTUNGX1NEUkFNQ19EQUNSbl9QUygwKSk7CkBAIC04NSw3ICs4NSw3IEBACiAJCQlhc20oIiBub3AiKTsKIAogCQkvKiBXcml0ZSB0byB0aGlzIGJsb2NrIHRvIGluaXRpYXRlIHByZWNoYXJnZSAqLwotCQkqKHUzMiAqKShDRkdfU0RSQU1fQkFTRSkgPSAweGE1YTVhNWE1OworCQkqKHUzMiAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UpID0gMHhhNWE1YTVhNTsKIAogCQkvKiBTZXQgUkUgYml0IGluIERBQ1IgKi8KIAkJbWJhcl93cml0ZUxvbmcoTUNGX1NEUkFNQ19EQUNSMCwgbWJhcl9yZWFkTG9uZyhNQ0ZfU0RSQU1DX0RBQ1IwKQpAQCAtMTA4LDEwICsxMDgsMTAgQEAKIAkJICogQnVyc3QgVHlwZSA9IFNlcXVlbnRpYWwKIAkJICogQnVyc3QgTGVuZ3RoID0gMQogCQkgKi8KLQkJKih1MzIgKikoQ0ZHX1NEUkFNX0JBU0UgKyAweDQwMCkgPSAweGE1YTVhNWE1OworCQkqKHUzMiAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDQwMCkgPSAweGE1YTVhNWE1OwogCX0KIAotCXJldHVybiBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OworCXJldHVybiBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKIH07CiAKIGludCB0ZXN0ZHJhbSAodm9pZCkgewpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201MjcxZXZiL21paS5jIGIvYm9hcmQvZnJlZXNjYWxlL201MjcxZXZiL21paS5jCmluZGV4IDc4YTcwMjguLmU3OWZhMTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI3MWV2Yi9taWkuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTUyNzFldmIvbWlpLmMKQEAgLTM4LDE0ICszOCwxNCBAQAogewogCWlmIChzZXRjbGVhcikgewogCQkvKiBFbmFibGUgRXRoZXJuZXQgcGlucyAqLwotCQltYmFyX3dyaXRlQnl0ZShNQ0ZfR1BJT19QQVJfRkVDSTJDLCBDRkdfRkVDSTJDKTsKKwkJbWJhcl93cml0ZUJ5dGUoTUNGX0dQSU9fUEFSX0ZFQ0kyQywgQ09ORklHX1NZU19GRUNJMkMpOwogCX0gZWxzZSB7CiAJfQogCiAJcmV0dXJuIDA7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKICNpbmNsdWRlIDxtaWlwaHkuaD4KIAogLyogTWFrZSBNSUkgcmVhZC93cml0ZSBjb21tYW5kcyBmb3IgdGhlIEZFQy4gKi8KQEAgLTEzMSw5ICsxMzEsOSBAQAogCiAJcmV0dXJuIChtaWlfcmVwbHkgJiAweGZmZmYpOwkvKiBkYXRhIHJlYWQgZnJvbSBwaHkgKi8KIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgfHwgQ09ORklHX0NNRF9NSUkgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKQogaW50IG1paV9kaXNjb3Zlcl9waHkoc3RydWN0IGV0aF9kZXZpY2UgKmRldikKIHsKICNkZWZpbmUgTUFYX1BIWV9QQVNTRVMgMTEKQEAgLTE5OCw3ICsxOTgsNyBAQAogCiAJcmV0dXJuIHBoeWFkZHI7CiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICovCiAKIHZvaWQgbWlpX2luaXQodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhayxhbGlhcygiX19taWlfaW5pdCIpKSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI3MmMzL2ZsYXNoLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTUyNzJjMy9mbGFzaC5jCmluZGV4IGVhMGIxZmQuLjU4NmEyY2YgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI3MmMzL2ZsYXNoLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MjcyYzMvZmxhc2guYwpAQCAtMjMsMTAgKzIzLDEwIEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KIAotI2RlZmluZSBQSFlTX0ZMQVNIXzEgQ0ZHX0ZMQVNIX0JBU0UKKyNkZWZpbmUgUEhZU19GTEFTSF8xIENPTkZJR19TWVNfRkxBU0hfQkFTRQogI2RlZmluZSBGTEFTSF9CQU5LX1NJWkUgMHgyMDAwMDAKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIHZvaWQgZmxhc2hfcHJpbnRfaW5mbyAoZmxhc2hfaW5mb190ICogaW5mbykKIHsKQEAgLTc0LDE1ICs3NCwxNSBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9CiAJCQkoQU1EX01BTlVGQUNUICYgRkxBU0hfVkVORE1BU0spIHwKIAkJCShBTURfSURfUEwxNjBDQiAmIEZMQVNIX1RZUEVNQVNLKTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCQlpZiAoaSA9PSAwKQogCQkJZmxhc2hiYXNlID0gUEhZU19GTEFTSF8xOwogCQllbHNlCkBAIC0xMTMsOCArMTEzLDggQEAKIAl9CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSArIDB4M2ZmZmYsICZmbGFzaF9pbmZvWzBdKTsKKwkJICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4M2ZmZmYsICZmbGFzaF9pbmZvWzBdKTsKIAogCXJldHVybiBzaXplOwogfQpAQCAtMTI4LDggKzEyOCw4IEBACiAjZGVmaW5lIENNRF9QUk9HUkFNCQkweDAwQTAKICNkZWZpbmUgQ01EX1VOTE9DS19CWVBBU1MJMHgwMDIwCiAKLSNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MTYgKikoQ0ZHX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NTw8MSkpKQotI2RlZmluZSBNRU1fRkxBU0hfQUREUjIJCSgqKHZvbGF0aWxlIHUxNiAqKShDRkdfRkxBU0hfQkFTRSArICgweDAwMDAwMkFBPDwxKSkpCisjZGVmaW5lIE1FTV9GTEFTSF9BRERSMQkJKCoodm9sYXRpbGUgdTE2ICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgweDAwMDAwNTU1PDwxKSkpCisjZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgweDAwMDAwMkFBPDwxKSkpCiAKICNkZWZpbmUgQklUX0VSQVNFX0RPTkUJCTB4MDA4MAogI2RlZmluZSBCSVRfUkRZX01BU0sJCTB4MDA4MApAQCAtMjExLDcgKzIxMSw3IEBACiAJCQkJcmVzdWx0ID0gKmFkZHI7CiAKIAkJCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCQkJaWYgKGdldF90aW1lciAoMCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXIgKDApID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCU1FTV9GTEFTSF9BRERSMSA9IENNRF9SRUFEX0FSUkFZOwogCQkJCQljaGlwMSA9IFRNTzsKIAkJCQkJYnJlYWs7CkBAIC0yOTksNyArMjk5LDcgQEAKIAkJcmVzdWx0ID0gKmFkZHI7CiAKIAkJLyogY2hlY2sgdGltZW91dCAqLwotCQlpZiAoZ2V0X3RpbWVyICgwKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKDApID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQljaGlwMSA9IEVSUiB8IFRNTzsKIAkJCWJyZWFrOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTUyNzJjMy9tNTI3MmMzLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTUyNzJjMy9tNTI3MmMzLmMKaW5kZXggZDE3Y2IyZS4uOTAyY2EzYSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201MjcyYzMvbTUyNzJjMy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI3MmMzL201MjcyYzMuYwpAQCAtNDAsNyArNDAsNyBAQAogCS8qIER1bW15IHdyaXRlIHRvIHN0YXJ0IFNEUkFNICovCiAJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKTApID0gMDsKIAotCXJldHVybiBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OworCXJldHVybiBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKIAl9OwogCiBpbnQgdGVzdGRyYW0gKHZvaWQpIHsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI3MmMzL21paS5jIGIvYm9hcmQvZnJlZXNjYWxlL201MjcyYzMvbWlpLmMKaW5kZXggYjMwYmE4MC4uMTYxYzY5NCAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201MjcyYzMvbWlpLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MjcyYzMvbWlpLmMKQEAgLTQ1LDcgKzQ1LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQogI2luY2x1ZGUgPG1paXBoeS5oPgogCiAvKiBNYWtlIE1JSSByZWFkL3dyaXRlIGNvbW1hbmRzIGZvciB0aGUgRkVDLiAqLwpAQCAtMTMxLDkgKzEzMSw5IEBACiAKIAlyZXR1cm4gKG1paV9yZXBseSAmIDB4ZmZmZik7CS8qIGRhdGEgcmVhZCBmcm9tIHBoeSAqLwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgfHwgQ09ORklHX0NNRF9NSUkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSB8fCBDT05GSUdfQ01EX01JSSAqLwogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpCiBpbnQgbWlpX2Rpc2NvdmVyX3BoeShzdHJ1Y3QgZXRoX2RldmljZSAqZGV2KQogewogI2RlZmluZSBNQVhfUEhZX1BBU1NFUyAxMQpAQCAtMTk4LDcgKzE5OCw3IEBACiAKIAlyZXR1cm4gcGh5YWRkcjsKIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KIAogdm9pZCBtaWlfaW5pdCh2b2lkKSBfX2F0dHJpYnV0ZV9fKCh3ZWFrLGFsaWFzKCJfX21paV9pbml0IikpKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201Mjc1ZXZiL201Mjc1ZXZiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTUyNzVldmIvbTUyNzVldmIuYwppbmRleCBiZTE5ZTAyLi4zNWM5YjIwIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTUyNzVldmIvbTUyNzVldmIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTUyNzVldmIvbTUyNzVldmIuYwpAQCAtNDQsNyArNDQsNyBAQAogCWdwaW9fcmVnLT5wYXJfc2RyYW0gPSAweDNGRjsgLyogRW5hYmxlIFNEUkFNICovCiAKIAkvKiBTZXQgdXAgY2hpcCBzZWxlY3QgKi8KLQlzZHAtPnNkYmFyMCA9IENGR19TRFJBTV9CQVNFOworCXNkcC0+c2RiYXIwID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOwogCXNkcC0+c2RibXIwID0gTUNGX1NEUkFNQ19TRE1Sbl9CQU1fMzJNIHwgTUNGX1NEUkFNQ19TRE1Sbl9WOwogCiAJLyogU2V0IHVwIHRpbWluZyAqLwpAQCAtNTgsMzQgKzU4LDM0IEBACiAJc2RwLT5zZGNyIHw9IE1DRl9TRFJBTUNfU0RDUl9JUEFMTDsKIAogCS8qIER1bW15IHdyaXRlIHRvIHN0YXJ0IFNEUkFNICovCi0JKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKUNGR19TRFJBTV9CQVNFKSA9IDB4YTVhNTk2OTY7CisJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSkgPSAweGE1YTU5Njk2OwogCiAJLyogU2VuZCBMRU1SICovCiAJc2RwLT5zZG1yID0gTUNGX1NEUkFNQ19TRE1SX0JOS0FEX0xFTVIKIAkJCXwgTUNGX1NEUkFNQ19TRE1SX0FEKDB4MCkKIAkJCXwgTUNGX1NEUkFNQ19TRE1SX0NNRDsKLQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopQ0ZHX1NEUkFNX0JBU0UpID0gMHhhNWE1OTY5NjsKKwkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFKSA9IDB4YTVhNTk2OTY7CiAKIAkvKiBTZW5kIExNUiAqLwogCXNkcC0+c2RtciA9IDB4MDU4ZDAwMDA7Ci0JKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKUNGR19TRFJBTV9CQVNFKSA9IDB4YTVhNTk2OTY7CisJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSkgPSAweGE1YTU5Njk2OwogCiAJLyogU3RvcCBzZW5kaW5nIGNvbW1hbmRzICovCiAJc2RwLT5zZG1yICY9IH4oTUNGX1NEUkFNQ19TRE1SX0NNRCk7CiAKIAkvKiBTZXQgcHJlY2hhcmdlICovCiAJc2RwLT5zZGNyIHw9IE1DRl9TRFJBTUNfU0RDUl9JUEFMTDsKLQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopQ0ZHX1NEUkFNX0JBU0UpID0gMHhhNWE1OTY5NjsKKwkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFKSA9IDB4YTVhNTk2OTY7CiAKIAkvKiBTdG9wIG1hbnVhbCBwcmVjaGFyZ2UsIHNlbmQgMiBJUkVGICovCiAJc2RwLT5zZGNyICY9IH4oTUNGX1NEUkFNQ19TRENSX0lQQUxMKTsKIAlzZHAtPnNkY3IgfD0gTUNGX1NEUkFNQ19TRENSX0lSRUY7Ci0JKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKUNGR19TRFJBTV9CQVNFKSA9IDB4YTVhNTk2OTY7Ci0JKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKUNGR19TRFJBTV9CQVNFKSA9IDB4YTVhNTk2OTY7CisJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSkgPSAweGE1YTU5Njk2OworCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UpID0gMHhhNWE1OTY5NjsKIAogCS8qIFdyaXRlIG1vZGUgcmVnaXN0ZXIsIGNsZWFyIHJlc2V0IERMTCAqLwogCXNkcC0+c2RtciA9IDB4MDE4ZDAwMDA7Ci0JKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKUNGR19TRFJBTV9CQVNFKSA9IDB4YTVhNTk2OTY7CisJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSkgPSAweGE1YTU5Njk2OwogCiAJLyogU3RvcCBzZW5kaW5nIGNvbW1hbmRzICovCiAJc2RwLT5zZG1yICY9IH4oTUNGX1NEUkFNQ19TRE1SX0NNRCk7CkBAIC0xMDAsNyArMTAwLDcgQEAKIAkJfCBNQ0ZfU0RSQU1DX1NEQ1JfUkNOVCgoU0RSQU1fVFJFRkkvKFBFUklPRCo2NCkpIC0gMSArIDEpCiAJCXwgTUNGX1NEUkFNQ19TRENSX0RRU19PRSgweDMpOwogCi0JcmV0dXJuIENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OwogfTsKIAogaW50IHRlc3RkcmFtKHZvaWQpCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTUyNzVldmIvbWlpLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTUyNzVldmIvbWlpLmMKaW5kZXggNmM3YWNlOS4uNzA2ZDhkNiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201Mjc1ZXZiL21paS5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI3NWV2Yi9taWkuYwpAQCAtNDEsNyArNDEsNyBAQAogCiAJaWYgKHNldGNsZWFyKSB7CiAJCS8qIEVuYWJsZSBFdGhlcm5ldCBwaW5zICovCi0JCWlmIChpbmZvLT5pb2Jhc2UgPT0gQ0ZHX0ZFQzBfSU9CQVNFKSB7CisJCWlmIChpbmZvLT5pb2Jhc2UgPT0gQ09ORklHX1NZU19GRUMwX0lPQkFTRSkgewogCQkJZ3Bpby0+cGFyX2ZlY2kyYyB8PSAweDBGMDA7CiAJCQlncGlvLT5wYXJfZmVjMGhsIHw9IDB4QzA7CiAJCX0gZWxzZSB7CkBAIC00OSw3ICs0OSw3IEBACiAJCQlncGlvLT5wYXJfZmVjMWhsIHw9IDB4QzA7CiAJCX0KIAl9IGVsc2UgewotCQlpZiAoaW5mby0+aW9iYXNlID09IENGR19GRUMwX0lPQkFTRSkgeworCQlpZiAoaW5mby0+aW9iYXNlID09IENPTkZJR19TWVNfRkVDMF9JT0JBU0UpIHsKIAkJCWdwaW8tPnBhcl9mZWNpMmMgJj0gfjB4MEYwMDsKIAkJCWdwaW8tPnBhcl9mZWMwaGwgJj0gfjB4QzA7CiAJCX0gZWxzZSB7CkBAIC02MSw3ICs2MSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKICNpbmNsdWRlIDxtaWlwaHkuaD4KIAogLyogTWFrZSBNSUkgcmVhZC93cml0ZSBjb21tYW5kcyBmb3IgdGhlIEZFQy4gKi8KQEAgLTE0Nyw5ICsxNDcsOSBAQAogCiAJcmV0dXJuIChtaWlfcmVwbHkgJiAweGZmZmYpOwkvKiBkYXRhIHJlYWQgZnJvbSBwaHkgKi8KIH0KLSNlbmRpZgkvKiBDRkdfRElTQ09WRVJfUEhZIHx8IChDT05GSUdfQ09NTUFORFMgJiBDT05GSUdfQ01EX01JSSkgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSB8fCAoQ09ORklHX0NPTU1BTkRTICYgQ09ORklHX0NNRF9NSUkpICovCiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkKIGludCBtaWlfZGlzY292ZXJfcGh5KHN0cnVjdCBldGhfZGV2aWNlICpkZXYpCiB7CiAjZGVmaW5lIE1BWF9QSFlfUEFTU0VTIDExCkBAIC0yMTQsNyArMjE0LDcgQEAKIAogCXJldHVybiBwaHlhZGRyOwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogCiB2b2lkIG1paV9pbml0KHZvaWQpIF9fYXR0cmlidXRlX18oKHdlYWssYWxpYXMoIl9fbWlpX2luaXQiKSkpOwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTUyODJldmIvbTUyODJldmIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI4MmV2Yi9tNTI4MmV2Yi5jCmluZGV4IDMxZDY5MjMuLmIwYzlmYzggMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI4MmV2Yi9tNTI4MmV2Yi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI4MmV2Yi9tNTI4MmV2Yi5jCkBAIC0zNiw3ICszNiw3IEBACiB7CiAJdTMyIGRyYW1zaXplLCBpLCBkcmFtY2xrOwogCi0JZHJhbXNpemUgPSBDRkdfU0RSQU1fU0laRSAqIDB4MTAwMDAwOworCWRyYW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMHgxMDAwMDA7CiAJZm9yIChpID0gMHgxMzsgaSA8IDB4MjA7IGkrKykgewogCQlpZiAoZHJhbXNpemUgPT0gKDEgPDwgaSkpCiAJCQlicmVhazsKQEAgLTQ1LDcgKzQ1LDcgQEAKIAogCWlmICghKE1DRlNEUkFNQ19EQUNSMCAmIE1DRlNEUkFNQ19EQUNSX1JFKSkKIAl7Ci0JCWRyYW1jbGsgPSBnZC0+YnVzX2NsayAvIChDRkdfSFogKiBDRkdfSFopOworCQlkcmFtY2xrID0gZ2QtPmJ1c19jbGsgLyAoQ09ORklHX1NZU19IWiAqIENPTkZJR19TWVNfSFopOwogCiAJCS8qIEluaXRpYWxpemUgRFJBTSBDb250cm9sIFJlZ2lzdGVyOiBEQ1IgKi8KIAkJTUNGU0RSQU1DX0RDUiA9ICgwCkBAIC01NSw3ICs1NSw3IEBACiAKIAkJLyogSW5pdGlhbGl6ZSBEQUNSMCAqLwogCQlNQ0ZTRFJBTUNfREFDUjAgPSAoMAotCQkJfCBNQ0ZTRFJBTUNfREFDUl9CQVNFKENGR19TRFJBTV9CQVNFKQorCQkJfCBNQ0ZTRFJBTUNfREFDUl9CQVNFKENPTkZJR19TWVNfU0RSQU1fQkFTRSkKIAkJCXwgTUNGU0RSQU1DX0RBQ1JfQ0FTTCgxKQogCQkJfCBNQ0ZTRFJBTUNfREFDUl9DQk0oMykKIAkJCXwgTUNGU0RSQU1DX0RBQ1JfUFNfMzIpOwpAQCAtNzcsNyArNzcsNyBAQAogCQl9CiAKIAkJLyogV3JpdGUgdG8gdGhpcyBibG9jayB0byBpbml0aWF0ZSBwcmVjaGFyZ2UgKi8KLQkJKih1MzIgKikoQ0ZHX1NEUkFNX0JBU0UpID0gMHhBNUE1OTY5NjsKKwkJKih1MzIgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFKSA9IDB4QTVBNTk2OTY7CiAJCWFzbSgibm9wIik7CiAKIAkJLyogU2V0IFJFIChiaXQgMTUpIGluIERBQ1IgKi8KQEAgLTk0LDcgKzk0LDcgQEAKIAkJYXNtKCJub3AiKTsKIAogCQkvKiBXcml0ZSB0byB0aGUgU0RSQU0gTW9kZSBSZWdpc3RlciAqLwotCQkqKHUzMiAqKShDRkdfU0RSQU1fQkFTRSArIDB4NDAwKSA9IDB4QTVBNTk2OTY7CisJCSoodTMyICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NDAwKSA9IDB4QTVBNTk2OTY7CiAJfQogCXJldHVybiBkcmFtc2l6ZTsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI4MmV2Yi9taWkuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI4MmV2Yi9taWkuYwppbmRleCA4YWUyZWM2Li43ZjkyNTE0IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTUyODJldmIvbWlpLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MjgyZXZiL21paS5jCkBAIC0zOCwxNSArMzgsMTUgQEAKIHsKIAlpZiAoc2V0Y2xlYXIpIHsKIAkJTUNGR1BJT19QQVNQQVIgfD0gMHgwRjAwOwotCQlNQ0ZHUElPX1BFSExQQVIgPSBDRkdfUEVITFBBUjsKKwkJTUNGR1BJT19QRUhMUEFSID0gQ09ORklHX1NZU19QRUhMUEFSOwogCX0gZWxzZSB7CiAJCU1DRkdQSU9fUEFTUEFSICY9IDB4RjBGRjsKLQkJTUNGR1BJT19QRUhMUEFSICY9IH5DRkdfUEVITFBBUjsKKwkJTUNGR1BJT19QRUhMUEFSICY9IH5DT05GSUdfU1lTX1BFSExQQVI7CiAJfQogCXJldHVybiAwOwogfQogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCiAjaW5jbHVkZSA8bWlpcGh5Lmg+CiAKIC8qIE1ha2UgTUlJIHJlYWQvd3JpdGUgY29tbWFuZHMgZm9yIHRoZSBGRUMuICovCkBAIC0xMzIsOSArMTMyLDkgQEAKIAogCXJldHVybiAobWlpX3JlcGx5ICYgMHhmZmZmKTsJLyogZGF0YSByZWFkIGZyb20gcGh5ICovCiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSB8fCBDT05GSUdfQ01EX01JSSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkKIGludCBtaWlfZGlzY292ZXJfcGh5KHN0cnVjdCBldGhfZGV2aWNlICpkZXYpCiB7CiAjZGVmaW5lIE1BWF9QSFlfUEFTU0VTIDExCkBAIC0xOTksNyArMTk5LDcgQEAKIAogCXJldHVybiBwaHlhZGRyOwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogCiB2b2lkIG1paV9pbml0KHZvaWQpIF9fYXR0cmlidXRlX18oKHdlYWssYWxpYXMoIl9fbWlpX2luaXQiKSkpOwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTUzMjlldmIvbTUzMjlldmIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTMyOWV2Yi9tNTMyOWV2Yi5jCmluZGV4IGY5ZmE5ZmIuLmI0ZGYyMmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTMyOWV2Yi9tNTMyOWV2Yi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTMyOWV2Yi9tNTMyOWV2Yi5jCkBAIC00Miw3ICs0Miw3IEBACiAJdm9sYXRpbGUgc2RyYW1fdCAqc2RyYW0gPSAodm9sYXRpbGUgc2RyYW1fdCAqKShNTUFQX1NEUkFNKTsKIAl1MzIgZHJhbXNpemUsIGk7CiAKLQlkcmFtc2l6ZSA9IENGR19TRFJBTV9TSVpFICogMHgxMDAwMDA7CisJZHJhbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAweDEwMDAwMDsKIAogCWZvciAoaSA9IDB4MTM7IGkgPCAweDIwOyBpKyspIHsKIAkJaWYgKGRyYW1zaXplID09ICgxIDw8IGkpKQpAQCAtNTAsMjkgKzUwLDI5IEBACiAJfQogCWktLTsKIAotCXNkcmFtLT5jczAgPSAoQ0ZHX1NEUkFNX0JBU0UgfCBpKTsKLQlzZHJhbS0+Y2ZnMSA9IENGR19TRFJBTV9DRkcxOwotCXNkcmFtLT5jZmcyID0gQ0ZHX1NEUkFNX0NGRzI7CisJc2RyYW0tPmNzMCA9IChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBpKTsKKwlzZHJhbS0+Y2ZnMSA9IENPTkZJR19TWVNfU0RSQU1fQ0ZHMTsKKwlzZHJhbS0+Y2ZnMiA9IENPTkZJR19TWVNfU0RSQU1fQ0ZHMjsKIAogCS8qIElzc3VlIFBBTEwgKi8KLQlzZHJhbS0+Y3RybCA9IENGR19TRFJBTV9DVFJMIHwgMjsKKwlzZHJhbS0+Y3RybCA9IENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDI7CiAKIAkvKiBJc3N1ZSBMRU1SICovCi0Jc2RyYW0tPm1vZGUgPSBDRkdfU0RSQU1fRU1PRDsKLQlzZHJhbS0+bW9kZSA9IChDRkdfU0RSQU1fTU9ERSB8IDB4MDQwMDAwMDApOworCXNkcmFtLT5tb2RlID0gQ09ORklHX1NZU19TRFJBTV9FTU9EOworCXNkcmFtLT5tb2RlID0gKENPTkZJR19TWVNfU0RSQU1fTU9ERSB8IDB4MDQwMDAwMDApOwogCiAJdWRlbGF5KDUwMCk7CiAKIAkvKiBJc3N1ZSBQQUxMICovCi0Jc2RyYW0tPmN0cmwgPSAoQ0ZHX1NEUkFNX0NUUkwgfCAyKTsKKwlzZHJhbS0+Y3RybCA9IChDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCAyKTsKIAogCS8qIFBlcmZvcm0gdHdvIHJlZnJlc2ggY3ljbGVzICovCi0Jc2RyYW0tPmN0cmwgPSBDRkdfU0RSQU1fQ1RSTCB8IDQ7Ci0Jc2RyYW0tPmN0cmwgPSBDRkdfU0RSQU1fQ1RSTCB8IDQ7CisJc2RyYW0tPmN0cmwgPSBDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCA0OworCXNkcmFtLT5jdHJsID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgNDsKIAotCXNkcmFtLT5tb2RlID0gQ0ZHX1NEUkFNX01PREU7CisJc2RyYW0tPm1vZGUgPSBDT05GSUdfU1lTX1NEUkFNX01PREU7CiAKLQlzZHJhbS0+Y3RybCA9IChDRkdfU0RSQU1fQ1RSTCAmIH4weDgwMDAwMDAwKSB8IDB4MTAwMDBjMDA7CisJc2RyYW0tPmN0cmwgPSAoQ09ORklHX1NZU19TRFJBTV9DVFJMICYgfjB4ODAwMDAwMDApIHwgMHgxMDAwMGMwMDsKIAogCXVkZWxheSgxMDApOwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTUzMjlldmIvbWlpLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTUzMjlldmIvbWlpLmMKaW5kZXggOGY2YWJmMy4uYzBmNTgxNyAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201MzI5ZXZiL21paS5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTMyOWV2Yi9taWkuYwpAQCAtNTAsNyArNTAsNyBAQAogCXJldHVybiAwOwogfQogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCiAjaW5jbHVkZSA8bWlpcGh5Lmg+CiAKIC8qIE1ha2UgTUlJIHJlYWQvd3JpdGUgY29tbWFuZHMgZm9yIHRoZSBGRUMuICovCkBAIC0xMzQsOSArMTM0LDkgQEAKIAogCXJldHVybiAobWlpX3JlcGx5ICYgMHhmZmZmKTsJLyogZGF0YSByZWFkIGZyb20gcGh5ICovCiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSB8fCBDT05GSUdfQ01EX01JSSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkKIGludCBtaWlfZGlzY292ZXJfcGh5KHN0cnVjdCBldGhfZGV2aWNlICpkZXYpCiB7CiAjZGVmaW5lIE1BWF9QSFlfUEFTU0VTIDExCkBAIC0yMDEsNyArMjAxLDcgQEAKIAogCXJldHVybiBwaHlhZGRyOwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogCiB2b2lkIG1paV9pbml0KHZvaWQpIF9fYXR0cmlidXRlX18oKHdlYWssYWxpYXMoIl9fbWlpX2luaXQiKSkpOwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTUzMjlldmIvbmFuZC5jIGIvYm9hcmQvZnJlZXNjYWxlL201MzI5ZXZiL25hbmQuYwppbmRleCBmODQ5MTJlLi44MjQ5MmY2IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTUzMjlldmIvbmFuZC5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTMyOWV2Yi9uYW5kLmMKQEAgLTgzLDcgKzgzLDcgQEAKIHsKIAl2b2xhdGlsZSBncGlvX3QgKmdwaW8gPSAoZ3Bpb190ICopIE1NQVBfR1BJTzsKIAotCSooKHZvbGF0aWxlIHUxNiAqKUNGR19MQVRDSF9BRERSKSB8PSAweDAwMDQ7CisJKigodm9sYXRpbGUgdTE2ICopQ09ORklHX1NZU19MQVRDSF9BRERSKSB8PSAweDAwMDQ7CiAKIAkvKiBzZXQgdXAgcGluIGNvbmZpZ3VyYXRpb24gKi8KIAlncGlvLT5wYXJfdGltZXIgJj0gfkdQSU9fUEFSX1RJTjNfVElOMzsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTM3M2V2Yi9tNTM3M2V2Yi5jIGIvYm9hcmQvZnJlZXNjYWxlL201MzczZXZiL201MzczZXZiLmMKaW5kZXggYTI2OWVlNi4uMzc2ZGU0YiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201MzczZXZiL201MzczZXZiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MzczZXZiL201MzczZXZiLmMKQEAgLTQyLDcgKzQyLDcgQEAKIAl2b2xhdGlsZSBzZHJhbV90ICpzZHJhbSA9ICh2b2xhdGlsZSBzZHJhbV90ICopKE1NQVBfU0RSQU0pOwogCXUzMiBkcmFtc2l6ZSwgaTsKIAotCWRyYW1zaXplID0gQ0ZHX1NEUkFNX1NJWkUgKiAweDEwMDAwMDsKKwlkcmFtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDB4MTAwMDAwOwogCiAJZm9yIChpID0gMHgxMzsgaSA8IDB4MjA7IGkrKykgewogCQlpZiAoZHJhbXNpemUgPT0gKDEgPDwgaSkpCkBAIC01MCwyOSArNTAsMjkgQEAKIAl9CiAJaS0tOwogCi0Jc2RyYW0tPmNzMCA9IChDRkdfU0RSQU1fQkFTRSB8IGkpOwotCXNkcmFtLT5jZmcxID0gQ0ZHX1NEUkFNX0NGRzE7Ci0Jc2RyYW0tPmNmZzIgPSBDRkdfU0RSQU1fQ0ZHMjsKKwlzZHJhbS0+Y3MwID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IGkpOworCXNkcmFtLT5jZmcxID0gQ09ORklHX1NZU19TRFJBTV9DRkcxOworCXNkcmFtLT5jZmcyID0gQ09ORklHX1NZU19TRFJBTV9DRkcyOwogCiAJLyogSXNzdWUgUEFMTCAqLwotCXNkcmFtLT5jdHJsID0gQ0ZHX1NEUkFNX0NUUkwgfCAyOworCXNkcmFtLT5jdHJsID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgMjsKIAogCS8qIElzc3VlIExFTVIgKi8KLQlzZHJhbS0+bW9kZSA9IENGR19TRFJBTV9FTU9EOwotCXNkcmFtLT5tb2RlID0gKENGR19TRFJBTV9NT0RFIHwgMHgwNDAwMDAwMCk7CisJc2RyYW0tPm1vZGUgPSBDT05GSUdfU1lTX1NEUkFNX0VNT0Q7CisJc2RyYW0tPm1vZGUgPSAoQ09ORklHX1NZU19TRFJBTV9NT0RFIHwgMHgwNDAwMDAwMCk7CiAKIAl1ZGVsYXkoNTAwKTsKIAogCS8qIElzc3VlIFBBTEwgKi8KLQlzZHJhbS0+Y3RybCA9IChDRkdfU0RSQU1fQ1RSTCB8IDIpOworCXNkcmFtLT5jdHJsID0gKENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDIpOwogCiAJLyogUGVyZm9ybSB0d28gcmVmcmVzaCBjeWNsZXMgKi8KLQlzZHJhbS0+Y3RybCA9IENGR19TRFJBTV9DVFJMIHwgNDsKLQlzZHJhbS0+Y3RybCA9IENGR19TRFJBTV9DVFJMIHwgNDsKKwlzZHJhbS0+Y3RybCA9IENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDQ7CisJc2RyYW0tPmN0cmwgPSBDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCA0OwogCi0Jc2RyYW0tPm1vZGUgPSBDRkdfU0RSQU1fTU9ERTsKKwlzZHJhbS0+bW9kZSA9IENPTkZJR19TWVNfU0RSQU1fTU9ERTsKIAotCXNkcmFtLT5jdHJsID0gKENGR19TRFJBTV9DVFJMICYgfjB4ODAwMDAwMDApIHwgMHgxMDAwMGMwMDsKKwlzZHJhbS0+Y3RybCA9IChDT05GSUdfU1lTX1NEUkFNX0NUUkwgJiB+MHg4MDAwMDAwMCkgfCAweDEwMDAwYzAwOwogCiAJdWRlbGF5KDEwMCk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTM3M2V2Yi9taWkuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTM3M2V2Yi9taWkuYwppbmRleCA4ZjZhYmYzLi5jMGY1ODE3IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTUzNzNldmIvbWlpLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MzczZXZiL21paS5jCkBAIC01MCw3ICs1MCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKICNpbmNsdWRlIDxtaWlwaHkuaD4KIAogLyogTWFrZSBNSUkgcmVhZC93cml0ZSBjb21tYW5kcyBmb3IgdGhlIEZFQy4gKi8KQEAgLTEzNCw5ICsxMzQsOSBAQAogCiAJcmV0dXJuIChtaWlfcmVwbHkgJiAweGZmZmYpOwkvKiBkYXRhIHJlYWQgZnJvbSBwaHkgKi8KIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgfHwgQ09ORklHX0NNRF9NSUkgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKQogaW50IG1paV9kaXNjb3Zlcl9waHkoc3RydWN0IGV0aF9kZXZpY2UgKmRldikKIHsKICNkZWZpbmUgTUFYX1BIWV9QQVNTRVMgMTEKQEAgLTIwMSw3ICsyMDEsNyBAQAogCiAJcmV0dXJuIHBoeWFkZHI7CiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICovCiAKIHZvaWQgbWlpX2luaXQodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhayxhbGlhcygiX19taWlfaW5pdCIpKSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTM3M2V2Yi9uYW5kLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTUzNzNldmIvbmFuZC5jCmluZGV4IDQwNGE5YzMuLmQwMWI4MTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTM3M2V2Yi9uYW5kLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MzczZXZiL25hbmQuYwpAQCAtNjcsNyArNjcsNyBAQAogCXZvbGF0aWxlIGdwaW9fdCAqZ3BpbyA9IChncGlvX3QgKikgTU1BUF9HUElPOwogCXZvbGF0aWxlIGZiY3NfdCAqZmJjcyA9IChmYmNzX3QgKikgTU1BUF9GQkNTOwogCi0JKigodm9sYXRpbGUgdTE2ICopQ0ZHX0xBVENIX0FERFIpIHw9IDB4MDAwNDsKKwkqKCh2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0xBVENIX0FERFIpIHw9IDB4MDAwNDsKIAlmYmNzLT5jc21yMiAmPSB+RkJDU19DU01SX1dQOwogCiAJLyogc2V0IHVwIHBpbiBjb25maWd1cmF0aW9uICovCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTU0NDUxZXZiL201NDQ1MWV2Yi5jIGIvYm9hcmQvZnJlZXNjYWxlL201NDQ1MWV2Yi9tNTQ0NTFldmIuYwppbmRleCA3NjhmNDBiLi4wODhjOGM0IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTU0NDUxZXZiL201NDQ1MWV2Yi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTQ0NTFldmIvbTU0NDUxZXZiLmMKQEAgLTQ5LDE2ICs0OSwxNiBAQAogCSAqIFNlcmlhbCBCb290OiBUaGUgZHJhbSBpcyBhbHJlYWR5IGluaXRpYWxpemVkIGluIHN0YXJ0LlMKIAkgKiBvbmx5IHJlcXVpcmUgdG8gcmV0dXJuIERSQU0gc2l6ZQogCSAqLwotCWRyYW1zaXplID0gQ0ZHX1NEUkFNX1NJWkUgKiAweDEwMDAwMDsKKwlkcmFtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDB4MTAwMDAwOwogI2Vsc2UKIAl2b2xhdGlsZSBzZHJhbWNfdCAqc2RyYW0gPSAodm9sYXRpbGUgc2RyYW1jX3QgKikoTU1BUF9TRFJBTSk7CiAJdm9sYXRpbGUgZ3Bpb190ICpncGlvID0gKHZvbGF0aWxlIGdwaW9fdCAqKShNTUFQX0dQSU8pOwogCXUzMiBpOwogCi0JZHJhbXNpemUgPSBDRkdfU0RSQU1fU0laRSAqIDB4MTAwMDAwOworCWRyYW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMHgxMDAwMDA7CiAKLQlpZiAoKHNkcmFtLT5zZGNmZzEgPT0gQ0ZHX1NEUkFNX0NGRzEpICYmCi0JICAgIChzZHJhbS0+c2RjZmcyID09IENGR19TRFJBTV9DRkcyKSkKKwlpZiAoKHNkcmFtLT5zZGNmZzEgPT0gQ09ORklHX1NZU19TRFJBTV9DRkcxKSAmJgorCSAgICAoc2RyYW0tPnNkY2ZnMiA9PSBDT05GSUdfU1lTX1NEUkFNX0NGRzIpKQogCQlyZXR1cm4gZHJhbXNpemU7CiAKIAlmb3IgKGkgPSAweDEzOyBpIDwgMHgyMDsgaSsrKSB7CkBAIC02NywzMiArNjcsMzIgQEAKIAl9CiAJaS0tOwogCi0JZ3Bpby0+bXNjcl9zZHJhbSA9IENGR19TRFJBTV9EUlZfU1RSRU5HVEg7CisJZ3Bpby0+bXNjcl9zZHJhbSA9IENPTkZJR19TWVNfU0RSQU1fRFJWX1NUUkVOR1RIOwogCi0Jc2RyYW0tPnNkY3MwID0gKENGR19TRFJBTV9CQVNFIHwgaSk7CisJc2RyYW0tPnNkY3MwID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IGkpOwogCi0Jc2RyYW0tPnNkY2ZnMSA9IENGR19TRFJBTV9DRkcxOwotCXNkcmFtLT5zZGNmZzIgPSBDRkdfU0RSQU1fQ0ZHMjsKKwlzZHJhbS0+c2RjZmcxID0gQ09ORklHX1NZU19TRFJBTV9DRkcxOworCXNkcmFtLT5zZGNmZzIgPSBDT05GSUdfU1lTX1NEUkFNX0NGRzI7CiAKIAl1ZGVsYXkoMjAwKTsKIAogCS8qIElzc3VlIFBBTEwgKi8KLQlzZHJhbS0+c2RjciA9IENGR19TRFJBTV9DVFJMIHwgMjsKKwlzZHJhbS0+c2RjciA9IENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDI7CiAJX19hc21fXygibm9wIik7CiAKIAkvKiBQZXJmb3JtIHR3byByZWZyZXNoIGN5Y2xlcyAqLwotCXNkcmFtLT5zZGNyID0gQ0ZHX1NEUkFNX0NUUkwgfCA0OworCXNkcmFtLT5zZGNyID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgNDsKIAlfX2FzbV9fKCJub3AiKTsKLQlzZHJhbS0+c2RjciA9IENGR19TRFJBTV9DVFJMIHwgNDsKKwlzZHJhbS0+c2RjciA9IENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDQ7CiAJX19hc21fXygibm9wIik7CiAKIAkvKiBJc3N1ZSBMRU1SICovCi0Jc2RyYW0tPnNkbXIgPSBDRkdfU0RSQU1fTU9ERTsKKwlzZHJhbS0+c2RtciA9IENPTkZJR19TWVNfU0RSQU1fTU9ERTsKIAlfX2FzbV9fKCJub3AiKTsKLQlzZHJhbS0+c2RtciA9IENGR19TRFJBTV9FTU9EOworCXNkcmFtLT5zZG1yID0gQ09ORklHX1NZU19TRFJBTV9FTU9EOwogCV9fYXNtX18oIm5vcCIpOwogCi0Jc2RyYW0tPnNkY3IgPSAoQ0ZHX1NEUkFNX0NUUkwgJiB+MHg4MDAwMDAwMCkgfCAweDEwMDAwMDAwOworCXNkcmFtLT5zZGNyID0gKENPTkZJR19TWVNfU0RSQU1fQ1RSTCAmIH4weDgwMDAwMDAwKSB8IDB4MTAwMDAwMDA7CiAKIAl1ZGVsYXkoMTAwKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201NDQ1MWV2Yi9taWkuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTQ0NTFldmIvbWlpLmMKaW5kZXggNWE0MzMwYy4uNmUyNDczNiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201NDQ1MWV2Yi9taWkuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTU0NDUxZXZiL21paS5jCkBAIC00Myw3ICs0Myw3IEBACiAJCWdwaW8tPnBhcl9mZWNpMmMgfD0KIAkJICAgIChHUElPX1BBUl9GRUNJMkNfTURDMF9NREMwIHwgR1BJT19QQVJfRkVDSTJDX01ESU8wX01ESU8wKTsKIAotCQlpZiAoaW5mby0+aW9iYXNlID09IENGR19GRUMwX0lPQkFTRSkKKwkJaWYgKGluZm8tPmlvYmFzZSA9PSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFKQogCQkJZ3Bpby0+cGFyX2ZlYyB8PSBHUElPX1BBUl9GRUNfRkVDMF9STUlJX0dQSU87CiAJCWVsc2UKIAkJCWdwaW8tPnBhcl9mZWMgfD0gR1BJT19QQVJfRkVDX0ZFQzFfUk1JSV9BVEE7CkBAIC01MSw3ICs1MSw3IEBACiAJCWdwaW8tPnBhcl9mZWNpMmMgJj0KIAkJICAgIH4oR1BJT19QQVJfRkVDSTJDX01EQzBfTURDMCB8IEdQSU9fUEFSX0ZFQ0kyQ19NRElPMF9NRElPMCk7CiAKLQkJaWYgKGluZm8tPmlvYmFzZSA9PSBDRkdfRkVDMF9JT0JBU0UpCisJCWlmIChpbmZvLT5pb2Jhc2UgPT0gQ09ORklHX1NZU19GRUMwX0lPQkFTRSkKIAkJCWdwaW8tPnBhcl9mZWMgJj0gR1BJT19QQVJfRkVDX0ZFQzBfTUFTSzsKIAkJZWxzZQogCQkJZ3Bpby0+cGFyX2ZlYyAmPSBHUElPX1BBUl9GRUNfRkVDMV9NQVNLOwpAQCAtNTksNyArNTksNyBAQAogCXJldHVybiAwOwogfQogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCiAjaW5jbHVkZSA8bWlpcGh5Lmg+CiAKIC8qIE1ha2UgTUlJIHJlYWQvd3JpdGUgY29tbWFuZHMgZm9yIHRoZSBGRUMuICovCkBAIC0xMzUsOSArMTM1LDkgQEAKIAogCXJldHVybiAobWlpX3JlcGx5ICYgMHhmZmZmKTsJLyogZGF0YSByZWFkIGZyb20gcGh5ICovCiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSB8fCAoQ09ORklHX01JSSkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSB8fCAoQ09ORklHX01JSSkgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKQogaW50IG1paV9kaXNjb3Zlcl9waHkoc3RydWN0IGV0aF9kZXZpY2UgKmRldikKIHsKICNkZWZpbmUgTUFYX1BIWV9QQVNTRVMgMTEKQEAgLTIwMiw3ICsyMDIsNyBAQAogCiAJcmV0dXJuIHBoeWFkZHI7CiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICovCiAKIHZvaWQgbWlpX2luaXQodm9pZCkgX19hdHRyaWJ1dGVfXyAoKHdlYWssIGFsaWFzKCJfX21paV9pbml0IikpKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201NDQ1NWV2Yi9tNTQ0NTVldmIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTQ0NTVldmIvbTU0NDU1ZXZiLmMKaW5kZXggMTAwNjgyYS4uMjkzYjViMCAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201NDQ1NWV2Yi9tNTQ0NTVldmIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTU0NDU1ZXZiL201NDQ1NWV2Yi5jCkBAIC00NSwxMyArNDUsMTMgQEAKIAkgKiBTZXJpYWwgQm9vdDogVGhlIGRyYW0gaXMgYWxyZWFkeSBpbml0aWFsaXplZCBpbiBzdGFydC5TCiAJICogb25seSByZXF1aXJlIHRvIHJldHVybiBEUkFNIHNpemUKIAkgKi8KLQlkcmFtc2l6ZSA9IENGR19TRFJBTV9TSVpFICogMHgxMDAwMDAgPj4gMTsKKwlkcmFtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDB4MTAwMDAwID4+IDE7CiAjZWxzZQogCXZvbGF0aWxlIHNkcmFtY190ICpzZHJhbSA9ICh2b2xhdGlsZSBzZHJhbWNfdCAqKShNTUFQX1NEUkFNKTsKIAl2b2xhdGlsZSBncGlvX3QgKmdwaW8gPSAodm9sYXRpbGUgZ3Bpb190ICopKE1NQVBfR1BJTyk7CiAJdTMyIGk7CiAKLQlkcmFtc2l6ZSA9IENGR19TRFJBTV9TSVpFICogMHgxMDAwMDAgPj4gMTsKKwlkcmFtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDB4MTAwMDAwID4+IDE7CiAKIAlmb3IgKGkgPSAweDEzOyBpIDwgMHgyMDsgaSsrKSB7CiAJCWlmIChkcmFtc2l6ZSA9PSAoMSA8PCBpKSkKQEAgLTU5LDMzICs1OSwzMyBAQAogCX0KIAlpLS07CiAKLQlncGlvLT5tc2NyX3NkcmFtID0gQ0ZHX1NEUkFNX0RSVl9TVFJFTkdUSDsKKwlncGlvLT5tc2NyX3NkcmFtID0gQ09ORklHX1NZU19TRFJBTV9EUlZfU1RSRU5HVEg7CiAKLQlzZHJhbS0+c2RjczAgPSAoQ0ZHX1NEUkFNX0JBU0UgfCBpKTsKLQlzZHJhbS0+c2RjczEgPSAoQ0ZHX1NEUkFNX0JBU0UxIHwgaSk7CisJc2RyYW0tPnNkY3MwID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IGkpOworCXNkcmFtLT5zZGNzMSA9IChDT05GSUdfU1lTX1NEUkFNX0JBU0UxIHwgaSk7CiAKLQlzZHJhbS0+c2RjZmcxID0gQ0ZHX1NEUkFNX0NGRzE7Ci0Jc2RyYW0tPnNkY2ZnMiA9IENGR19TRFJBTV9DRkcyOworCXNkcmFtLT5zZGNmZzEgPSBDT05GSUdfU1lTX1NEUkFNX0NGRzE7CisJc2RyYW0tPnNkY2ZnMiA9IENPTkZJR19TWVNfU0RSQU1fQ0ZHMjsKIAogCS8qIElzc3VlIFBBTEwgKi8KLQlzZHJhbS0+c2RjciA9IENGR19TRFJBTV9DVFJMIHwgMjsKKwlzZHJhbS0+c2RjciA9IENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDI7CiAKIAkvKiBJc3N1ZSBMRU1SICovCi0Jc2RyYW0tPnNkbXIgPSBDRkdfU0RSQU1fRU1PRCB8IDB4NDA4OwotCXNkcmFtLT5zZG1yID0gQ0ZHX1NEUkFNX01PREUgfCAweDMwMDsKKwlzZHJhbS0+c2RtciA9IENPTkZJR19TWVNfU0RSQU1fRU1PRCB8IDB4NDA4OworCXNkcmFtLT5zZG1yID0gQ09ORklHX1NZU19TRFJBTV9NT0RFIHwgMHgzMDA7CiAKIAl1ZGVsYXkoNTAwKTsKIAogCS8qIElzc3VlIFBBTEwgKi8KLQlzZHJhbS0+c2RjciA9IENGR19TRFJBTV9DVFJMIHwgMjsKKwlzZHJhbS0+c2RjciA9IENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDI7CiAKIAkvKiBQZXJmb3JtIHR3byByZWZyZXNoIGN5Y2xlcyAqLwotCXNkcmFtLT5zZGNyID0gQ0ZHX1NEUkFNX0NUUkwgfCA0OwotCXNkcmFtLT5zZGNyID0gQ0ZHX1NEUkFNX0NUUkwgfCA0OworCXNkcmFtLT5zZGNyID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgNDsKKwlzZHJhbS0+c2RjciA9IENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDQ7CiAKLQlzZHJhbS0+c2RtciA9IENGR19TRFJBTV9NT0RFIHwgMHgyMDA7CisJc2RyYW0tPnNkbXIgPSBDT05GSUdfU1lTX1NEUkFNX01PREUgfCAweDIwMDsKIAotCXNkcmFtLT5zZGNyID0gKENGR19TRFJBTV9DVFJMICYgfjB4ODAwMDAwMDApIHwgMHgxMDAwMGMwMDsKKwlzZHJhbS0+c2RjciA9IChDT05GSUdfU1lTX1NEUkFNX0NUUkwgJiB+MHg4MDAwMDAwMCkgfCAweDEwMDAwYzAwOwogCiAJdWRlbGF5KDEwMCk7CiAjZW5kaWYKQEAgLTE3NSwxMSArMTc1LDExIEBACiAjaW5jbHVkZSA8Zmxhc2guaD4KIHVsb25nIGJvYXJkX2ZsYXNoX2dldF9sZWdhY3kgKHVsb25nIGJhc2UsIGludCBiYW5rbnVtLCBmbGFzaF9pbmZvX3QgKiBpbmZvKQogewotCWludCBzZWN0W10gPSBDRkdfQVRNRUxfU0VDVDsKLQlpbnQgc2VjdHN6W10gPSBDRkdfQVRNRUxfU0VDVFNaOworCWludCBzZWN0W10gPSBDT05GSUdfU1lTX0FUTUVMX1NFQ1Q7CisJaW50IHNlY3RzeltdID0gQ09ORklHX1NZU19BVE1FTF9TRUNUU1o7CiAJaW50IGksIGosIGs7CiAKLQlpZiAoYmFzZSAhPSBDRkdfQVRNRUxfQkFTRSkKKwlpZiAoYmFzZSAhPSBDT05GSUdfU1lTX0FUTUVMX0JBU0UpCiAJCXJldHVybiAwOwogCiAJaW5mby0+Zmxhc2hfaWQgICAgICAgICAgPSAweDAxMDAwMDAwOwpAQCAtMjA1LDkgKzIwNSw5IEBACiAJaW5mby0+bmFtZSAgICAgICAgICAgICAgPSAiQ0ZJIGNvbmZvcm1hbnQiOwogCiAJaW5mby0+c2l6ZSAgICAgICAgICAgICAgPSAwOwotCWluZm8tPnNlY3Rvcl9jb3VudCAgICAgID0gQ0ZHX0FUTUVMX1RPVEFMU0VDVDsKKwlpbmZvLT5zZWN0b3JfY291bnQgICAgICA9IENPTkZJR19TWVNfQVRNRUxfVE9UQUxTRUNUOwogCWluZm8tPnN0YXJ0WzBdID0gYmFzZTsKLQlmb3IgKGsgPSAwLCBpID0gMDsgaSA8IENGR19BVE1FTF9SRUdJT047IGkrKykgeworCWZvciAoayA9IDAsIGkgPSAwOyBpIDwgQ09ORklHX1NZU19BVE1FTF9SRUdJT047IGkrKykgewogCQlpbmZvLT5zaXplICs9IHNlY3RbaV0gKiBzZWN0c3pbaV07CiAKIAkJZm9yIChqID0gMDsgaiA8IHNlY3RbaV07IGorKywgaysrKSB7CkBAIC0yMTgsNCArMjE4LDQgQEAKIAogCXJldHVybiAxOwogfQotI2VuZGlmCQkJCS8qIENGR19GTEFTSF9DRkkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0ZMQVNIX0NGSSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201NDQ1NWV2Yi9taWkuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTQ0NTVldmIvbWlpLmMKaW5kZXggMGJlNTQzOS4uYzE5NTE5MSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201NDQ1NWV2Yi9taWkuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTU0NDU1ZXZiL21paS5jCkBAIC00Myw3ICs0Myw3IEBACiAJCWdwaW8tPnBhcl9mZWNpMmMgfD0KIAkJICAgIChHUElPX1BBUl9GRUNJMkNfTURDMF9NREMwIHwgR1BJT19QQVJfRkVDSTJDX01ESU8wX01ESU8wKTsKIAotCQlpZiAoaW5mby0+aW9iYXNlID09IENGR19GRUMwX0lPQkFTRSkKKwkJaWYgKGluZm8tPmlvYmFzZSA9PSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFKQogCQkJZ3Bpby0+cGFyX2ZlYyB8PSBHUElPX1BBUl9GRUNfRkVDMF9STUlJX0dQSU87CiAJCWVsc2UKIAkJCWdwaW8tPnBhcl9mZWMgfD0gR1BJT19QQVJfRkVDX0ZFQzFfUk1JSV9BVEE7CkBAIC01MSw3ICs1MSw3IEBACiAJCWdwaW8tPnBhcl9mZWNpMmMgJj0KIAkJICAgIH4oR1BJT19QQVJfRkVDSTJDX01EQzBfTURDMCB8IEdQSU9fUEFSX0ZFQ0kyQ19NRElPMF9NRElPMCk7CiAKLQkJaWYgKGluZm8tPmlvYmFzZSA9PSBDRkdfRkVDMF9JT0JBU0UpCisJCWlmIChpbmZvLT5pb2Jhc2UgPT0gQ09ORklHX1NZU19GRUMwX0lPQkFTRSkKIAkJCWdwaW8tPnBhcl9mZWMgJj0gR1BJT19QQVJfRkVDX0ZFQzBfTUFTSzsKIAkJZWxzZQogCQkJZ3Bpby0+cGFyX2ZlYyAmPSBHUElPX1BBUl9GRUNfRkVDMV9NQVNLOwpAQCAtNTksNyArNTksNyBAQAogCXJldHVybiAwOwogfQogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCiAjaW5jbHVkZSA8bWlpcGh5Lmg+CiAKIC8qIE1ha2UgTUlJIHJlYWQvd3JpdGUgY29tbWFuZHMgZm9yIHRoZSBGRUMuICovCkBAIC0xNTIsOSArMTUyLDkgQEAKIAogCXJldHVybiAobWlpX3JlcGx5ICYgMHhmZmZmKTsJLyogZGF0YSByZWFkIGZyb20gcGh5ICovCiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSB8fCAoQ09ORklHX01JSSkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSB8fCAoQ09ORklHX01JSSkgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKQogaW50IG1paV9kaXNjb3Zlcl9waHkoc3RydWN0IGV0aF9kZXZpY2UgKmRldikKIHsKICNkZWZpbmUgTUFYX1BIWV9QQVNTRVMgMTEKQEAgLTIxOSw3ICsyMTksNyBAQAogCiAJcmV0dXJuIHBoeWFkZHI7CiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICovCiAKIHZvaWQgbWlpX2luaXQodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhayxhbGlhcygiX19taWlfaW5pdCIpKSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTQ3eGV2Yi9tNTQ3eGV2Yi5jIGIvYm9hcmQvZnJlZXNjYWxlL201NDd4ZXZiL201NDd4ZXZiLmMKaW5kZXggNmQ3ZDI3MC4uOWYxZWMzOCAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201NDd4ZXZiL201NDd4ZXZiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201NDd4ZXZiL201NDd4ZXZiLmMKQEAgLTQzLDUzICs0Myw1MyBAQAogCXZvbGF0aWxlIHNpdV90ICpzaXUgPSAoc2l1X3QgKikgKE1NQVBfU0lVKTsKIAl2b2xhdGlsZSBzZHJhbV90ICpzZHJhbSA9ICh2b2xhdGlsZSBzZHJhbV90ICopKE1NQVBfU0RSQU0pOwogCXUzMiBkcmFtc2l6ZSwgaTsKLSNpZmRlZiBDRkdfRFJBTVNaMQorI2lmZGVmIENPTkZJR19TWVNfRFJBTVNaMQogCXUzMiB0ZW1wOwogI2VuZGlmCiAKLQlzaXUtPmRydiA9IENGR19TRFJBTV9EUlZTVFJFTkdUSDsKKwlzaXUtPmRydiA9IENPTkZJR19TWVNfU0RSQU1fRFJWU1RSRU5HVEg7CiAKLQlkcmFtc2l6ZSA9IENGR19EUkFNU1ogKiAweDEwMDAwMDsKKwlkcmFtc2l6ZSA9IENPTkZJR19TWVNfRFJBTVNaICogMHgxMDAwMDA7CiAJZm9yIChpID0gMHgxMzsgaSA8IDB4MjA7IGkrKykgewogCQlpZiAoZHJhbXNpemUgPT0gKDEgPDwgaSkpCiAJCQlicmVhazsKIAl9CiAJaS0tOwotCXNpdS0+Y3MwY2ZnID0gKENGR19TRFJBTV9CQVNFIHwgaSk7CisJc2l1LT5jczBjZmcgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgaSk7CiAKLSNpZmRlZiBDRkdfRFJBTVNaMQotCXRlbXAgPSBDRkdfRFJBTVNaMSAqIDB4MTAwMDAwOworI2lmZGVmIENPTkZJR19TWVNfRFJBTVNaMQorCXRlbXAgPSBDT05GSUdfU1lTX0RSQU1TWjEgKiAweDEwMDAwMDsKIAlmb3IgKGkgPSAweDEzOyBpIDwgMHgyMDsgaSsrKSB7CiAJCWlmICh0ZW1wID09ICgxIDw8IGkpKQogCQkJYnJlYWs7CiAJfQogCWktLTsKIAlkcmFtc2l6ZSArPSB0ZW1wOwotCXNpdS0+Y3MxY2ZnID0gKChDRkdfU0RSQU1fQkFTRSArIHRlbXApIHwgaSk7CisJc2l1LT5jczFjZmcgPSAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIHRlbXApIHwgaSk7CiAjZW5kaWYKIAotCXNkcmFtLT5jZmcxID0gQ0ZHX1NEUkFNX0NGRzE7Ci0Jc2RyYW0tPmNmZzIgPSBDRkdfU0RSQU1fQ0ZHMjsKKwlzZHJhbS0+Y2ZnMSA9IENPTkZJR19TWVNfU0RSQU1fQ0ZHMTsKKwlzZHJhbS0+Y2ZnMiA9IENPTkZJR19TWVNfU0RSQU1fQ0ZHMjsKIAogCS8qIElzc3VlIFBBTEwgKi8KLQlzZHJhbS0+Y3RybCA9IENGR19TRFJBTV9DVFJMIHwgMjsKKwlzZHJhbS0+Y3RybCA9IENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDI7CiAKIAkvKiBJc3N1ZSBMRU1SICovCi0Jc2RyYW0tPm1vZGUgPSBDRkdfU0RSQU1fRU1PRDsKLQlzZHJhbS0+bW9kZSA9IChDRkdfU0RSQU1fTU9ERSB8IDB4MDQwMDAwMDApOworCXNkcmFtLT5tb2RlID0gQ09ORklHX1NZU19TRFJBTV9FTU9EOworCXNkcmFtLT5tb2RlID0gKENPTkZJR19TWVNfU0RSQU1fTU9ERSB8IDB4MDQwMDAwMDApOwogCiAJdWRlbGF5KDUwMCk7CiAKIAkvKiBJc3N1ZSBQQUxMICovCi0Jc2RyYW0tPmN0cmwgPSAoQ0ZHX1NEUkFNX0NUUkwgfCAyKTsKKwlzZHJhbS0+Y3RybCA9IChDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCAyKTsKIAogCS8qIFBlcmZvcm0gdHdvIHJlZnJlc2ggY3ljbGVzICovCi0Jc2RyYW0tPmN0cmwgPSBDRkdfU0RSQU1fQ1RSTCB8IDQ7Ci0Jc2RyYW0tPmN0cmwgPSBDRkdfU0RSQU1fQ1RSTCB8IDQ7CisJc2RyYW0tPmN0cmwgPSBDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCA0OworCXNkcmFtLT5jdHJsID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgNDsKIAotCXNkcmFtLT5tb2RlID0gQ0ZHX1NEUkFNX01PREU7CisJc2RyYW0tPm1vZGUgPSBDT05GSUdfU1lTX1NEUkFNX01PREU7CiAKLQlzZHJhbS0+Y3RybCA9IChDRkdfU0RSQU1fQ1RSTCAmIH4weDgwMDAwMDAwKSB8IDB4MTAwMDBGMDA7CisJc2RyYW0tPmN0cmwgPSAoQ09ORklHX1NZU19TRFJBTV9DVFJMICYgfjB4ODAwMDAwMDApIHwgMHgxMDAwMEYwMDsKIAogCXVkZWxheSgxMDApOwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTU0N3hldmIvbWlpLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTU0N3hldmIvbWlpLmMKaW5kZXggNWIyNjgzYi4uNGQxMTUwNiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201NDd4ZXZiL21paS5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTQ3eGV2Yi9taWkuYwpAQCAtNDEsMTIgKzQxLDEyIEBACiAJc3RydWN0IGZlY19pbmZvX2RtYSAqaW5mbyA9IChzdHJ1Y3QgZmVjX2luZm9fZG1hICopZGV2LT5wcml2OwogCiAJaWYgKHNldGNsZWFyKSB7Ci0JCWlmIChpbmZvLT5pb2Jhc2UgPT0gQ0ZHX0ZFQzBfSU9CQVNFKQorCQlpZiAoaW5mby0+aW9iYXNlID09IENPTkZJR19TWVNfRkVDMF9JT0JBU0UpCiAJCQlncGlvLT5wYXJfZmVjaTJjaXJxIHw9IDB4RjAwMDsKIAkJZWxzZQogCQkJZ3Bpby0+cGFyX2ZlY2kyY2lycSB8PSAweDBGQzA7CiAJfSBlbHNlIHsKLQkJaWYgKGluZm8tPmlvYmFzZSA9PSBDRkdfRkVDMF9JT0JBU0UpCisJCWlmIChpbmZvLT5pb2Jhc2UgPT0gQ09ORklHX1NZU19GRUMwX0lPQkFTRSkKIAkJCWdwaW8tPnBhcl9mZWNpMmNpcnEgJj0gMHgwRkZGOwogCQllbHNlCiAJCQlncGlvLT5wYXJfZmVjaTJjaXJxICY9IDB4RjAzRjsKQEAgLTU0LDcgKzU0LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQogI2luY2x1ZGUgPG1paXBoeS5oPgogCiAvKiBNYWtlIE1JSSByZWFkL3dyaXRlIGNvbW1hbmRzIGZvciB0aGUgRkVDLiAqLwpAQCAtMTQwLDkgKzE0MCw5IEBACiAKIAlyZXR1cm4gKG1paV9yZXBseSAmIDB4ZmZmZik7CS8qIGRhdGEgcmVhZCBmcm9tIHBoeSAqLwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgfHwgQ09ORklHX0NNRF9NSUkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSB8fCBDT05GSUdfQ01EX01JSSAqLwogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpCiBpbnQgbWlpX2Rpc2NvdmVyX3BoeShzdHJ1Y3QgZXRoX2RldmljZSAqZGV2KQogewogI2RlZmluZSBNQVhfUEhZX1BBU1NFUyAxMQpAQCAtMjE3LDcgKzIxNyw3IEBACiAKIAlyZXR1cm4gcGh5YWRkcjsKIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KIAogdm9pZCBtaWlfaW5pdCh2b2lkKSBfX2F0dHJpYnV0ZV9fICgod2VhaywgYWxpYXMoIl9fbWlpX2luaXQiKSkpOwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTU0OHhldmIvbTU0OHhldmIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTQ4eGV2Yi9tNTQ4eGV2Yi5jCmluZGV4IGU2NTEwYzkuLjRhMmE1YzcgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTQ4eGV2Yi9tNTQ4eGV2Yi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTQ4eGV2Yi9tNTQ4eGV2Yi5jCkBAIC00NCw0OSArNDQsNDkgQEAKIAl2b2xhdGlsZSBzZHJhbV90ICpzZHJhbSA9ICh2b2xhdGlsZSBzZHJhbV90ICopKE1NQVBfU0RSQU0pOwogCXUzMiBkcmFtc2l6ZSwgaTsKIAotCXNpdS0+ZHJ2ID0gQ0ZHX1NEUkFNX0RSVlNUUkVOR1RIOworCXNpdS0+ZHJ2ID0gQ09ORklHX1NZU19TRFJBTV9EUlZTVFJFTkdUSDsKIAotCWRyYW1zaXplID0gQ0ZHX0RSQU1TWiAqIDB4MTAwMDAwOworCWRyYW1zaXplID0gQ09ORklHX1NZU19EUkFNU1ogKiAweDEwMDAwMDsKIAlmb3IgKGkgPSAweDEzOyBpIDwgMHgyMDsgaSsrKSB7CiAJCWlmIChkcmFtc2l6ZSA9PSAoMSA8PCBpKSkKIAkJCWJyZWFrOwogCX0KIAlpLS07Ci0Jc2l1LT5jczBjZmcgPSAoQ0ZHX1NEUkFNX0JBU0UgfCBpKTsKKwlzaXUtPmNzMGNmZyA9IChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBpKTsKIAotI2lmZGVmIENGR19EUkFNU1oxCi0JdGVtcCA9IENGR19EUkFNU1oxICogMHgxMDAwMDA7CisjaWZkZWYgQ09ORklHX1NZU19EUkFNU1oxCisJdGVtcCA9IENPTkZJR19TWVNfRFJBTVNaMSAqIDB4MTAwMDAwOwogCWZvciAoaSA9IDB4MTM7IGkgPCAweDIwOyBpKyspIHsKIAkJaWYgKHRlbXAgPT0gKDEgPDwgaSkpCiAJCQlicmVhazsKIAl9CiAJaS0tOwogCWRyYW1zaXplICs9IHRlbXA7Ci0Jc2l1LT5jczFjZmcgPSAoKENGR19TRFJBTV9CQVNFICsgdGVtcCkgfCBpKTsKKwlzaXUtPmNzMWNmZyA9ICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgdGVtcCkgfCBpKTsKICNlbmRpZgogCi0Jc2RyYW0tPmNmZzEgPSBDRkdfU0RSQU1fQ0ZHMTsKLQlzZHJhbS0+Y2ZnMiA9IENGR19TRFJBTV9DRkcyOworCXNkcmFtLT5jZmcxID0gQ09ORklHX1NZU19TRFJBTV9DRkcxOworCXNkcmFtLT5jZmcyID0gQ09ORklHX1NZU19TRFJBTV9DRkcyOwogCiAJLyogSXNzdWUgUEFMTCAqLwotCXNkcmFtLT5jdHJsID0gQ0ZHX1NEUkFNX0NUUkwgfCAyOworCXNkcmFtLT5jdHJsID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgMjsKIAogCS8qIElzc3VlIExFTVIgKi8KLQlzZHJhbS0+bW9kZSA9IENGR19TRFJBTV9FTU9EOwotCXNkcmFtLT5tb2RlID0gKENGR19TRFJBTV9NT0RFIHwgMHgwNDAwMDAwMCk7CisJc2RyYW0tPm1vZGUgPSBDT05GSUdfU1lTX1NEUkFNX0VNT0Q7CisJc2RyYW0tPm1vZGUgPSAoQ09ORklHX1NZU19TRFJBTV9NT0RFIHwgMHgwNDAwMDAwMCk7CiAKIAl1ZGVsYXkoNTAwKTsKIAogCS8qIElzc3VlIFBBTEwgKi8KLQlzZHJhbS0+Y3RybCA9IChDRkdfU0RSQU1fQ1RSTCB8IDIpOworCXNkcmFtLT5jdHJsID0gKENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDIpOwogCiAJLyogUGVyZm9ybSB0d28gcmVmcmVzaCBjeWNsZXMgKi8KLQlzZHJhbS0+Y3RybCA9IENGR19TRFJBTV9DVFJMIHwgNDsKLQlzZHJhbS0+Y3RybCA9IENGR19TRFJBTV9DVFJMIHwgNDsKKwlzZHJhbS0+Y3RybCA9IENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDQ7CisJc2RyYW0tPmN0cmwgPSBDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCA0OwogCi0Jc2RyYW0tPm1vZGUgPSBDRkdfU0RSQU1fTU9ERTsKKwlzZHJhbS0+bW9kZSA9IENPTkZJR19TWVNfU0RSQU1fTU9ERTsKIAotCXNkcmFtLT5jdHJsID0gKENGR19TRFJBTV9DVFJMICYgfjB4ODAwMDAwMDApIHwgMHgxMDAwMEYwMDsKKwlzZHJhbS0+Y3RybCA9IChDT05GSUdfU1lTX1NEUkFNX0NUUkwgJiB+MHg4MDAwMDAwMCkgfCAweDEwMDAwRjAwOwogCiAJdWRlbGF5KDEwMCk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTQ4eGV2Yi9taWkuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTQ4eGV2Yi9taWkuYwppbmRleCA1YjI2ODNiLi40ZDExNTA2IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTU0OHhldmIvbWlpLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201NDh4ZXZiL21paS5jCkBAIC00MSwxMiArNDEsMTIgQEAKIAlzdHJ1Y3QgZmVjX2luZm9fZG1hICppbmZvID0gKHN0cnVjdCBmZWNfaW5mb19kbWEgKilkZXYtPnByaXY7CiAKIAlpZiAoc2V0Y2xlYXIpIHsKLQkJaWYgKGluZm8tPmlvYmFzZSA9PSBDRkdfRkVDMF9JT0JBU0UpCisJCWlmIChpbmZvLT5pb2Jhc2UgPT0gQ09ORklHX1NZU19GRUMwX0lPQkFTRSkKIAkJCWdwaW8tPnBhcl9mZWNpMmNpcnEgfD0gMHhGMDAwOwogCQllbHNlCiAJCQlncGlvLT5wYXJfZmVjaTJjaXJxIHw9IDB4MEZDMDsKIAl9IGVsc2UgewotCQlpZiAoaW5mby0+aW9iYXNlID09IENGR19GRUMwX0lPQkFTRSkKKwkJaWYgKGluZm8tPmlvYmFzZSA9PSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFKQogCQkJZ3Bpby0+cGFyX2ZlY2kyY2lycSAmPSAweDBGRkY7CiAJCWVsc2UKIAkJCWdwaW8tPnBhcl9mZWNpMmNpcnEgJj0gMHhGMDNGOwpAQCAtNTQsNyArNTQsNyBAQAogCXJldHVybiAwOwogfQogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCiAjaW5jbHVkZSA8bWlpcGh5Lmg+CiAKIC8qIE1ha2UgTUlJIHJlYWQvd3JpdGUgY29tbWFuZHMgZm9yIHRoZSBGRUMuICovCkBAIC0xNDAsOSArMTQwLDkgQEAKIAogCXJldHVybiAobWlpX3JlcGx5ICYgMHhmZmZmKTsJLyogZGF0YSByZWFkIGZyb20gcGh5ICovCiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSB8fCBDT05GSUdfQ01EX01JSSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkKIGludCBtaWlfZGlzY292ZXJfcGh5KHN0cnVjdCBldGhfZGV2aWNlICpkZXYpCiB7CiAjZGVmaW5lIE1BWF9QSFlfUEFTU0VTIDExCkBAIC0yMTcsNyArMjE3LDcgQEAKIAogCXJldHVybiBwaHlhZGRyOwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogCiB2b2lkIG1paV9pbml0KHZvaWQpIF9fYXR0cmlidXRlX18gKCh3ZWFrLCBhbGlhcygiX19taWlfaW5pdCIpKSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM3NDQ4aHBjMi9hc21faW5pdC5TIGIvYm9hcmQvZnJlZXNjYWxlL21wYzc0NDhocGMyL2FzbV9pbml0LlMKaW5kZXggNTIxMzAxZi4uYjk0OTVmZCAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzc0NDhocGMyL2FzbV9pbml0LlMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzc0NDhocGMyL2FzbV9pbml0LlMKQEAgLTEyMyw3ICsxMjMsNyBAQAogCiAvKiBJbml0aWFsaXplIHBvaW50ZXIgdG8gVHNpMTA4IHJlZ2lzdGVyIHNwYWNlICovCiAKLQlMT0FEX1BUUihyMjksQ0ZHX1RTSTEwOF9DU1JfUlNUX0JBU0UpLyogcjI5IC0gcG9pbnRlciB0byB0c2kxMDggQ1NSIHNwYWNlICovCisJTE9BRF9QVFIocjI5LENPTkZJR19TWVNfVFNJMTA4X0NTUl9SU1RfQkFTRSkvKiByMjkgLSBwb2ludGVyIHRvIHRzaTEwOCBDU1Igc3BhY2UgKi8KIAlvcmkgcjQscjI5LFRTSTEwOF9QQl9SRUdfT0ZGU0VUCiAKIC8qIENoZWNrIFByb2Nlc3NvciBWZXJzaW9uIE51bWJlciAqLwpAQCAtMjE0LDEyICsyMTQsMTIgQEAKIAogCW9yaSByNCxyMjksVFNJMTA4X1BCX1JFR19PRkZTRVQKIAotI2lmIChDRkdfVFNJMTA4X0NTUl9CQVNFICE9IENGR19UU0kxMDhfQ1NSX1JTVF9CQVNFKQorI2lmIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSAhPSBDT05GSUdfU1lTX1RTSTEwOF9DU1JfUlNUX0JBU0UpCiAJLyogUmVsb2NhdGUgKGlmIHJlcXVpcmVkKSBUc2kxMDggcmVnaXN0ZXJzLiBTZXQgbmV3IHZhbHVlIGZvcgogCSAqIFBCX1JFR19CQVI6CiAJICogTm90ZSB3ZSBhcmUgaW4gdGhlIDMyLWJpdCBhZGRyZXNzIG1vZGUuCiAJICovCi0JTE9BRF9VMzIocjUsKENGR19UU0kxMDhfQ1NSX0JBU0UgfCAweDAxKSkgLyogUEJfUkVHX0JBUjogQkEgKyBFTiAqLworCUxPQURfVTMyKHI1LChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSB8IDB4MDEpKSAvKiBQQl9SRUdfQkFSOiBCQSArIEVOICovCiAJc3R3CXI1LFBCX1JFR19CQVIocjQpCiAJYW5kaXMuCXIyOSxyNSwweEZGRkYKIAlzeW5jCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjNzQ0OGhwYzIvbXBjNzQ0OGhwYzIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM3NDQ4aHBjMi9tcGM3NDQ4aHBjMi5jCmluZGV4IGNmZGJlZDUuLjExN2I5NTEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM3NDQ4aHBjMi9tcGM3NDQ4aHBjMi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM3NDQ4aHBjMi9tcGM3NDQ4aHBjMi5jCkBAIC02MCw3ICs2MCw3IEBACiB7CiAJaW50IGxfdHlwZSA9IDA7CiAKLQlwcmludGYgKCJCT0FSRDogJXNcbiIsIENGR19CT0FSRF9OQU1FKTsKKwlwcmludGYgKCJCT0FSRDogJXNcbiIsIENPTkZJR19TWVNfQk9BUkRfTkFNRSk7CiAJcmV0dXJuIChsX3R5cGUpOwogfQogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjNzQ0OGhwYzIvdHNpMTA4X2luaXQuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM3NDQ4aHBjMi90c2kxMDhfaW5pdC5jCmluZGV4IDljNDBiNzIuLjc0YmI1NjQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM3NDQ4aHBjMi90c2kxMDhfaW5pdC5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM3NDQ4aHBjMi90c2kxMDhfaW5pdC5jCkBAIC04OCw3ICs4OCw3IEBACiAJezB4MDAwMDAwMDAsIDB4MDAwMDAyNDB9ICAvKiBQQkE9MHhGRjAwXzAwMDAgLT4gSExQIDogKFRyYW5zbGF0aW9uIEVuYWJsZWQgKyBCeXRlLVN3YXApKi8KIH07CiAKLSNpZmRlZiBDRkdfQ0xLX1NQUkVBRAorI2lmZGVmIENPTkZJR19TWVNfQ0xLX1NQUkVBRAogdHlwZWRlZiBzdHJ1Y3QgewogCXVsb25nIGN0cmwwOwogCXVsb25nIGN0cmwxOwpAQCAtMTExLDcgKzExMSw3IEBACiAJezB4MDA1YzAwNDQsIDB4MDAwMDAwMzl9LAkvKiA2OiBDR19QQl9DTEtPID0gMjAwIE1IeiAqLwogCXsweDAwNGYwMDQ0LCAweDAwMDAwMDNlfQkvKiA3OiBDR19QQl9DTEtPID0gMjMzIE1IeiAqLwogfTsKLSNlbmRpZgkvKiBDRkdfQ0xLX1NQUkVBRCAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfQ0xLX1NQUkVBRCAqLwogCiAvKgogICogUHJvc2Vzc29yIEJ1cyBDbG9jayAoaW4gTUh6KSBkZWZpbmVkIGJ5IENHX1BCX1NFTEVDVApAQCAtMTI5LDcgKzEyOSw3IEBACiAJdWxvbmcgaTsKIAogCS8qIERldGVjdCBQQiBjbG9jayBmcmVxLiAqLwotCWkgPSBpbjMyKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfQ0xLX1JFR19PRkZTRVQgKyBDR19QV1JVUF9TVEFUVVMpOworCWkgPSBpbjMyKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0NMS19SRUdfT0ZGU0VUICsgQ0dfUFdSVVBfU1RBVFVTKTsKIAlpID0gKGkgPj4gMTYpICYgMHgwNzsJLyogR2V0IFBCIFBMTCBtdWx0aXBsaWVyICovCiAKIAlyZXR1cm4gcGJfY2xrX3NlbFtpXSAqIDEwMDAwMDA7CkBAIC0xNDYsNyArMTQ2LDcgQEAKIAl1bG9uZyBpOwogCiAJZ2QtPm1lbV9jbGsgPSAwOwotCWkgPSBpbjMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0NMS19SRUdfT0ZGU0VUICsKKwlpID0gaW4zMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfQ0xLX1JFR19PRkZTRVQgKwogCQkJQ0dfUFdSVVBfU1RBVFVTKTsKIAlpID0gKGkgPj4gMjApICYgMHgwNzsJLyogR2V0IEdEIFBMTCBtdWx0aXBsaWVyICovCiAJc3dpdGNoIChpKSB7CkBAIC0xODIsNyArMTgyLDcgQEAKIAl2b2xhdGlsZSB1bG9uZyAqcmVnX3B0cjsKIAogCXJlZ19wdHIgPQotCQkodWxvbmcgKikgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUEJfUkVHX09GRlNFVCArIDB4OTAwKTsKKwkJKHVsb25nICopIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQl9SRUdfT0ZGU0VUICsgMHg5MDApOwogCiAJZm9yIChpID0gMDsgaSA8IDMyOyBpKyspIHsKIAkJKnJlZ19wdHIrKyA9IDB4MDAwMDAyMDE7CS8qIFNXQVAgRU5BQkxFRCAqLwpAQCAtMTk0LDcgKzE5NCw3IEBACiAKIAkvKiBTZXR1cCBQQl9PQ05fQkFSMjogc2l6ZSAyNTZCICsgRU5hYmxlIEAgMHgwXzgwMDAwMDAwICovCiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQl9SRUdfT0ZGU0VUICsgUEJfT0NOX0JBUjIsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BCX1JFR19PRkZTRVQgKyBQQl9PQ05fQkFSMiwKIAkJMHg4MDAwMDAwMSk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKQEAgLTIwMiw3ICsyMDIsNyBAQAogCSAqIHJlYWQgZnJvbSBTRFJBTSkKIAkgKi8KIAotCXRlbXAgPSBpbjMyKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUEJfUkVHX09GRlNFVCArIFBCX09DTl9CQVIyKTsKKwl0ZW1wID0gaW4zMihDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQl9SRUdfT0ZGU0VUICsgUEJfT0NOX0JBUjIpOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCiAJLyoKQEAgLTIyMSw3ICsyMjEsNyBAQAogCSAqIGluaXRpYWxpemUgcG9pbnRlciB0byBMVVQgYXNzb2NpYXRlZCB3aXRoIFBCX09DTl9CQVIxCiAJICovCiAJcmVnX3B0ciA9Ci0JCSh1bG9uZyAqKSAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQl9SRUdfT0ZGU0VUICsgMHg4MDApOworCQkodWxvbmcgKikgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BCX1JFR19PRkZTRVQgKyAweDgwMCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgMzI7IGkrKykgewogCQkqcmVnX3B0cisrID0gcGIyb2NuX2x1dDFbaV0ubG93ZXI7CkBAIC0yMzIsNzMgKzIzMiw3MyBAQAogCiAJLyogQmFzZSBhZGRyZXNzZXMgZm9yIENTMCwgQ1MxLCBDUzIsIENTMyAqLwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjBfQUREUiwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjBfQUREUiwKIAkJMHgwMDAwMDAwMCk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMV9BRERSLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMV9BRERSLAogCQkweDAwMTAwMDAwKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IyX0FERFIsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IyX0FERFIsCiAJCTB4MDAyMDAwMDApOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjNfQUREUiwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjNfQUREUiwKIAkJMHgwMDMwMDAwMCk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKIAkvKiBNYXNrcyBmb3IgSExQIGJhbmtzICovCiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMF9NQVNLLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMF9NQVNLLAogCQkweEZGRjAwMDAwKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IxX01BU0ssCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IxX01BU0ssCiAJCTB4RkZGMDAwMDApOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjJfTUFTSywKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjJfTUFTSywKIAkJMHhGRkYwMDAwMCk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CM19NQVNLLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CM19NQVNLLAogCQkweEZGRjAwMDAwKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAogCS8qIFNldCBDVFJMMCB2YWx1ZXMgZm9yIGJhbmtzICovCiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMF9DVFJMMCwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjBfQ1RSTDAsCiAJCTB4N0ZGQzQ0QzIpOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjFfQ1RSTDAsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IxX0NUUkwwLAogCQkweDdGRkM0NEMwKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IyX0NUUkwwLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMl9DVFJMMCwKIAkJMHg3RkZDNDRDMCk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CM19DVFJMMCwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjNfQ1RSTDAsCiAJCTB4N0ZGQzQ0QzIpOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCiAJLyogU2V0IGJhbmtzIHRvIGxhdGNoZWQgbW9kZSwgZW5hYmxlZCwgYW5kIG90aGVyIGRlZmF1bHQgc2V0dGluZ3MgKi8KIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IwX0NUUkwxLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMF9DVFJMMSwKIAkJMHg3QzBGMjAwMCk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMV9DVFJMMSwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjFfQ1RSTDEsCiAJCTB4N0MwRjIwMDApOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjJfQ1RSTDEsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IyX0NUUkwxLAogCQkweDdDMEYyMDAwKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IzX0NUUkwxLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CM19DVFJMMSwKIAkJMHg3QzBGMjAwMCk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKQEAgLTMwNiw3ICszMDYsNyBAQAogCSAqIFNldCBuZXcgdmFsdWUgZm9yIFBCX09DTl9CQVIxOiBzd2l0Y2ggZnJvbSBCT09UIHRvIExVVCBtb2RlLgogCSAqIHZhbHVlIGZvciBQQl9PQ05fQkFSMTogKEJBLTB4RTAwMF8wMDAwICsgc2l6ZSA1MTJNQiArIEVOYWJsZSkKIAkgKi8KLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQl9SRUdfT0ZGU0VUICsgUEJfT0NOX0JBUjEsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BCX1JFR19PRkZTRVQgKyBQQl9PQ05fQkFSMSwKIAkJMHhFMDAwMDAxMSk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKQEAgLTMxNCw3ICszMTQsNyBAQAogCSAqIGltbWVkaWF0ZSByZWFkIGZyb20gU0RSQU0pCiAJICovCiAKLQl0ZW1wID0gaW4zMihDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BCX1JFR19PRkZTRVQgKyBQQl9PQ05fQkFSMSk7CisJdGVtcCA9IGluMzIoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUEJfUkVHX09GRlNFVCArIFBCX09DTl9CQVIxKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAogCS8qCkBAIC0zNDEsNyArMzQxLDcgQEAKIAl0ZW1wID0gZ2V0X2NwdV90eXBlICgpOwogCiAJaWYgKChDUFVfNzUwRlggPT0gdGVtcCkgfHwgKENQVV83NTBHWCA9PSB0ZW1wKSkKLQkJb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUEJfUkVHX09GRlNFVCArIFBCX01DTUQsCisJCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQl9SRUdfT0ZGU0VUICsgUEJfTUNNRCwKIAkJCTB4MDAwMDk5NTUpOwogI2VuZGlmCS8qIERJU0FCTEVfUEJNICovCiAKQEAgLTM1MSwyNyArMzUxLDI3IEBACiAJICovCiAKIAkvKiBNYXAgUENJL1ggQ29uZmlndXJhdGlvbiBTcGFjZSAoMTZNQiBAIDB4MF9GRTAwMDAwMCkgKi8KLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsKIAkJUENJX1BGQUJfQkFSMF9VUFBFUiwgMCk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QRkFCX0JBUjAsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1BGQUJfQkFSMCwKIAkJMHhGQjAwMDAwMSk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKIAkvKiBTZXQgQnVzIE51bWJlciBmb3IgdGhlIGF0dGFjaGVkIFBDSS9YIGJ1cyAod2Ugd2lsbCB1c2UgMCBmb3IgTkIpICovCiAKLQl0ZW1wID0JaW4zMihDRkdfVFNJMTA4X0NTUl9CQVNFICsKKwl0ZW1wID0JaW4zMihDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArCiAJCVRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QQ0lYX1NUQVQpOwogCiAJdGVtcCAmPSB+MHhGRjAwOwkvKiBDbGVhciB0aGUgQlVTX05VTSBmaWVsZCAqLwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUENJWF9TVEFULAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QQ0lYX1NUQVQsCiAJCXRlbXApOwogCiAJLyogTWFwIFBDSS9YIElPIFNwYWNlICg2NEtCIEAgMHgwX0ZEMDAwMDAwKSB0YWtlcyBvbmUgMTZNQiBMVVQgZW50cnkgKi8KIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1BGQUJfSU9fVVBQRVIsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1BGQUJfSU9fVVBQRVIsCiAJCTApOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCkBAIC0zNzksNyArMzc5LDcgQEAKIAkgKiBhbmQgbWFwcyBpdCBhcyBhIElPIGFkZHJlc3MuCiAJICovCiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QRkFCX0lPLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QRkFCX0lPLAogCQkweDAwMDAwMDAxKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIApAQCAtNDA1LDcgKzQwNSw3IEBACiAJICovCiAKIAlyZWdfcHRyID0KLQkJKHVsb25nICopIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgMHg1MDApOworCQkodWxvbmcgKikgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgMHg1MDApOwogCiAjaWZkZWYgRElTQUJMRV9QQk0KIApAQCAtNDQyLDcgKzQ0Miw3IEBACiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJlaWVpbyIpOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUDJPX1BBR0VfU0laRVMsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1AyT19QQUdFX1NJWkVTLAogCQlyZWdfdmFsKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIApAQCAtNDUwLDkgKzQ1MCw5IEBACiAJICogKCAwIGlzIHRoZSBiZXN0IGNob2ljZSBmb3IgZWFzeSBtYXBwaW5nKQogCSAqLwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUDJPX0JBUjIsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1AyT19CQVIyLAogCQkweDAwMDAwMDAwKTsKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QMk9fQkFSMl9VUFBFUiwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUDJPX0JBUjJfVVBQRVIsCiAJCTB4MDAwMDAwMDApOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCkBAIC00NzAsNyArNDcwLDcgQEAKIAkgKiAgc2V0IHBvaW50ZXIgdG8gTFVUIGFzc29jaWF0ZWQgd2l0aCBQQ0kgUDJPX0JBUjMKIAkgKi8KIAlyZWdfcHRyID0KLQkJKHVsb25nICopIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgMHg2MDApOworCQkodWxvbmcgKikgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgMHg2MDApOwogCiAJcmVnX3ZhbCA9IDB4MDAwMDAwMDQ7CS8qIERlc3RpbmF0aW9uIHBvcnQgPSBTREMgKi8KIApAQCAtNDkwLDE5ICs0OTAsMTkgQEAKIAkvKiBDb25maWd1cmUgUENJIFAyT19CQVIzIChzaXplID0gNTEyTUIsIEVuYWJsZWQpICovCiAKIAlyZWdfdmFsID0KLQkJaW4zMihDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsKKwkJaW4zMihDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArCiAJCSBQQ0lfUDJPX1BBR0VfU0laRVMpOwogCXJlZ192YWwgJj0gfjB4MDBGRjsKIAlyZWdfdmFsIHw9IDB4MDA3MTsKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QMk9fUEFHRV9TSVpFUywKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUDJPX1BBR0VfU0laRVMsCiAJCXJlZ192YWwpOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCiAJLyogU2V0IDY0LWJpdCBiYXNlIFBDSSBidXMgYWRkcmVzcyBmb3Igd2luZG93ICgweDIwMDAwMDAwKSAqLwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUDJPX0JBUjNfVVBQRVIsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1AyT19CQVIzX1VQUEVSLAogCQkweDAwMDAwMDAwKTsKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QMk9fQkFSMywKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUDJPX0JBUjMsCiAJCTB4MjAwMDAwMDApOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCkBAIC01MTEsMTcgKzUxMSwxNyBAQAogI2lmZGVmIEVOQUJMRV9QQ0lfQ1NSX0JBUgogCS8qIG9wZW4gaWYgcmVxdWlyZWQgYWNjZXNzIHRvIFRzaTEwOCBDU1JzIGZyb20gdGhlIFBDSS9YIGJ1cyAqLwogCS8qIGVuYWJsZSBCQVIwIG9uIHRoZSBQQ0kvWCBidXMgKi8KLQlyZWdfdmFsID0gaW4zMihDRkdfVFNJMTA4X0NTUl9CQVNFICsKKwlyZWdfdmFsID0gaW4zMihDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArCiAJCVRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9NSVNDX0NTUik7CiAJcmVnX3ZhbCB8PSAweDAyOwotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX01JU0NfQ1NSLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9NSVNDX0NTUiwKIAkJcmVnX3ZhbCk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QMk9fQkFSMF9VUFBFUiwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUDJPX0JBUjBfVVBQRVIsCiAJCTB4MDAwMDAwMDApOwotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1AyT19CQVIwLAotCQlDRkdfVFNJMTA4X0NTUl9CQVNFKTsKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUDJPX0JBUjAsCisJCUNPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAogI2VuZGlmCkBAIC01MzAsOSArNTMwLDkgQEAKIAkgKiBGaW5hbGx5IGVuYWJsZSBQQ0kvWCBCdXMgTWFzdGVyIGFuZCBNZW1vcnkgU3BhY2UgYWNjZXNzCiAJICovCiAKLQlyZWdfdmFsID0gaW4zMihDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX0NTUik7CisJcmVnX3ZhbCA9IGluMzIoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfQ1NSKTsKIAlyZWdfdmFsIHw9IDB4MDY7Ci0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfQ1NSLCByZWdfdmFsKTsKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfQ1NSLCByZWdfdmFsKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAogI2VuZGlmCS8qIENPTkZJR19QQ0kgKi8KQEAgLTU0NiwxMCArNTQ2LDEwIEBACiAJICogUEJfSU5UWzNdIC0+IE1DUCAoQ1BVMSkKIAkgKiBTZXQgaW50ZXJydXB0IGNvbnRyb2xsZXIgb3V0cHV0cyBhcyBMZXZlbF9TZW5zaXRpdmUvQWN0aXZlX0xvdwogCSAqLwotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X01QSUNfUkVHX09GRlNFVCArIE1QSUNfQ1NSKDApLCAweDAyKTsKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9NUElDX1JFR19PRkZTRVQgKyBNUElDX0NTUigxKSwgMHgwMik7Ci0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfTVBJQ19SRUdfT0ZGU0VUICsgTVBJQ19DU1IoMiksIDB4MDIpOwotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X01QSUNfUkVHX09GRlNFVCArIE1QSUNfQ1NSKDMpLCAweDAyKTsKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfTVBJQ19SRUdfT0ZGU0VUICsgTVBJQ19DU1IoMCksIDB4MDIpOworCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9NUElDX1JFR19PRkZTRVQgKyBNUElDX0NTUigxKSwgMHgwMik7CisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X01QSUNfUkVHX09GRlNFVCArIE1QSUNfQ1NSKDIpLCAweDAyKTsKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfTVBJQ19SRUdfT0ZGU0VUICsgTVBJQ19DU1IoMyksIDB4MDIpOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCiAJLyoKQEAgLTU4NCw0MiArNTg0LDQyIEBACiAKIGludCBtaXNjX2luaXRfciAodm9pZCkKIHsKLSNpZmRlZiBDRkdfQ0xLX1NQUkVBRAkvKiBJbml0aWFsaXplIFNwcmVhZC1TcGVjdHJ1bSBDbG9jayBnZW5lcmF0aW9uICovCisjaWZkZWYgQ09ORklHX1NZU19DTEtfU1BSRUFECS8qIEluaXRpYWxpemUgU3ByZWFkLVNwZWN0cnVtIENsb2NrIGdlbmVyYXRpb24gKi8KIAl1bG9uZyBpOwogCiAJLyogRW5zdXJlIHRoYXQgU3ByZWFkLVNwZWN0cnVtIGlzIGRpc2FibGVkICovCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfQ0xLX1JFR19PRkZTRVQgKyBDR19QTEwwX0NUUkwwLCAwKTsKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9DTEtfUkVHX09GRlNFVCArIENHX1BMTDFfQ1RSTDAsIDApOworCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9DTEtfUkVHX09GRlNFVCArIENHX1BMTDBfQ1RSTDAsIDApOworCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9DTEtfUkVHX09GRlNFVCArIENHX1BMTDFfQ1RSTDAsIDApOwogCiAJLyogSW5pdGlhbGl6ZSBQTEwxOiBDR19QQ0lfQ0xLICwgaW50ZXJuYWwgT0NOX0NMSwogCSAqIFVzZXMgcHJlLWNhbGN1bGF0ZWQgdmFsdWUgZm9yIEZvdXQgPSA4MDAgTUh6LCBGcyA9IDMwIGtIeiwgRCA9IDAuNSUKIAkgKi8KIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0NMS19SRUdfT0ZGU0VUICsgQ0dfUExMMV9DVFJMMCwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfQ0xLX1JFR19PRkZTRVQgKyBDR19QTEwxX0NUUkwwLAogCQkweDAwMmUwMDQ0KTsJLyogRCA9IDAuMjUlICovCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfQ0xLX1JFR19PRkZTRVQgKyBDR19QTEwxX0NUUkwxLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9DTEtfUkVHX09GRlNFVCArIENHX1BMTDFfQ1RSTDEsCiAJCTB4MDAwMDAwMzkpOwkvKiBCV0FESiAqLwogCiAJLyogSW5pdGlhbGl6ZSBQTEwwOiBDR19QQl9DTEtPICAqLwogCS8qIERldGVjdCBQQiBjbG9jayBmcmVxLiAqLwotCWkgPSBpbjMyKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfQ0xLX1JFR19PRkZTRVQgKyBDR19QV1JVUF9TVEFUVVMpOworCWkgPSBpbjMyKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0NMS19SRUdfT0ZGU0VUICsgQ0dfUFdSVVBfU1RBVFVTKTsKIAlpID0gKGkgPj4gMTYpICYgMHgwNzsJLyogR2V0IFBCIFBMTCBtdWx0aXBsaWVyICovCiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsKIAkJVFNJMTA4X0NMS19SRUdfT0ZGU0VUICsgQ0dfUExMMF9DVFJMMCwgcGxsMF9jb25maWdbaV0uY3RybDApOwotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKwogCQlUU0kxMDhfQ0xLX1JFR19PRkZTRVQgKyBDR19QTEwwX0NUUkwxLCBwbGwwX2NvbmZpZ1tpXS5jdHJsMSk7CiAKIAkvKiBXYWl0IGFuZCBzZXQgU1NFTiBmb3IgYm90aCBQTEwwIGFuZCAxICovCiAJdWRlbGF5ICgxMDAwKTsKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9DTEtfUkVHX09GRlNFVCArIENHX1BMTDFfQ1RSTDAsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0NMS19SRUdfT0ZGU0VUICsgQ0dfUExMMV9DVFJMMCwKIAkJMHg4MDJlMDA0NCk7CS8qIEQ9MC4yNSUgKi8KLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsKIAkJVFNJMTA4X0NMS19SRUdfT0ZGU0VUICsgQ0dfUExMMF9DVFJMMCwKIAkJMHg4MDAwMDAwMCB8IHBsbDBfY29uZmlnW2ldLmN0cmwwKTsKLSNlbmRpZgkvKiBDRkdfQ0xLX1NQUkVBRCAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfQ0xLX1NQUkVBRCAqLwogCi0jaWZkZWYgQ0ZHX0wyCisjaWZkZWYgQ09ORklHX1NZU19MMgogCWwyY2FjaGVfZW5hYmxlICgpOwogI2VuZGlmCiAJcHJpbnRmICgiQlVTOiAgICVsdSBNSHpcbiIsIGdkLT5idXNfY2xrIC8gMTAwMDAwMCk7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODI2MGFkcy9mbGFzaC5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgyNjBhZHMvZmxhc2guYwppbmRleCA3ZmNjODc0Li5lMDM4NTJmIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODI2MGFkcy9mbGFzaC5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MjYwYWRzL2ZsYXNoLmMKQEAgLTUyLDcgKzUyLDcgQEAKICNkZWZpbmUgSU5URUxfRklOSVNIRUQgMHg4MDgwODA4MAogI2RlZmluZSBJTlRFTF9PSyAgICAgICAweDgwODA4MDgwCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUaGlzIGJvYXJkIHN1cHBvcnRzIDMyLWJpdCB3aWRlIGZsYXNoIFNJTU1zICg0eDgtYml0IGNvbmZpZ3VyYXRpb24uKQpAQCAtNjYsOCArNjYsOCBAQAogCXVsb25nIHNpemUgPSAwLCBzZWN0X3N0YXJ0LCBzZWN0X3NpemUgPSAwLCBiYW5rX3NpemU7CiAJdXNob3J0IHNlY3RfY291bnQgPSAwOwogCWludCBpLCBqLCBuYmFua3M7Ci0JdnVfbG9uZyAqYWRkciA9ICh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0U7Ci0JdnVfbG9uZyAqYmNzciA9ICh2dV9sb25nICopQ0ZHX0JDU1I7CisJdnVfbG9uZyAqYWRkciA9ICh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSF9CQVNFOworCXZ1X2xvbmcgKmJjc3IgPSAodnVfbG9uZyAqKUNPTkZJR19TWVNfQkNTUjsKIAogCXN3aXRjaCAoYmNzclsyXSAmIDB4RikgewogCWNhc2UgMDoKQEAgLTgwLDExICs4MCwxMSBAQAogCQluYmFua3MgPSAxOwogCQlicmVhazsKIAlkZWZhdWx0OgkJLyogVW5zdXBwb3J0ZWQgY29uZmlndXJhdGlvbnMgKi8KLQkJbmJhbmtzID0gQ0ZHX01BWF9GTEFTSF9CQU5LUzsKKwkJbmJhbmtzID0gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7CiAJfQogCi0JaWYgKG5iYW5rcyA+IENGR19NQVhfRkxBU0hfQkFOS1MpCi0JCW5iYW5rcyA9IENGR19NQVhfRkxBU0hfQkFOS1M7CisJaWYgKG5iYW5rcyA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKQorCQluYmFua3MgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsKIAogCWZvciAoaSA9IDA7IGkgPCBuYmFua3M7IGkrKykgewogCQkqYWRkciA9IElOVEVMX1JFQURJRDsJLyogUmVhZCBJbnRlbGxpZ2VudCBJZGVudGlmaWVyICovCkBAIC05OCw5ICs5OCw5IEBACiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwotCQkJCXNlY3RfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJCQkJc2VjdF9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJCQkJc2VjdF9zaXplID0KLQkJCQkgICBDRkdfRkxBU0hfU0laRSAvIENGR19NQVhfRkxBU0hfQkFOS1MgLyBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJCQkJICAgQ09ORklHX1NZU19GTEFTSF9TSVpFIC8gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgLyBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCQkJfQogCQl9CiAJCWVsc2UKQEAgLTEyNywxMCArMTI3LDEwIEBACiAJfQogCiAJaWYgKHNpemUgPT0gMCkgewkvKiBVbmtub3duIGZsYXNoLCBmaWxsIHdpdGggaGFyZC1jb2RlZCB2YWx1ZXMgKi8KLQkJc2VjdF9zdGFydCA9IENGR19GTEFTSF9CQVNFOwotCQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJCXNlY3Rfc3RhcnQgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CisJCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKLQkJCWZsYXNoX2luZm9baV0uc2l6ZSA9IENGR19GTEFTSF9TSVpFIC8gQ0ZHX01BWF9GTEFTSF9CQU5LUzsKKwkJCWZsYXNoX2luZm9baV0uc2l6ZSA9IENPTkZJR19TWVNfRkxBU0hfU0laRSAvIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOwogCQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBzZWN0X2NvdW50OwogCQkJZm9yIChqID0gMDsgaiA8IHNlY3RfY291bnQ7IGorKykgewogCQkJCWZsYXNoX2luZm9baV0uc3RhcnRbal0gICA9IHNlY3Rfc3RhcnQ7CkBAIC0xMzgsMjAgKzEzOCwyMCBAQAogCQkJCXNlY3Rfc3RhcnQgKz0gc2VjdF9zaXplOwogCQkJfQogCQl9Ci0JCXNpemUgPSBDRkdfRkxBU0hfU0laRTsKKwkJc2l6ZSA9IENPTkZJR19TWVNfRkxBU0hfU0laRTsKIAl9CiAJZWxzZQotCQlmb3IgKGkgPSBuYmFua3M7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwkJZm9yIChpID0gbmJhbmtzOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCQlmbGFzaF9pbmZvW2ldLnNpemUgPSAwOwogCQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSAwOwogCQl9CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0yNzQsNyArMjc0LDcgQEAKIAkJCQllbmFibGVfaW50ZXJydXB0cygpOwogCiAJCQl3aGlsZSAoKCphZGRyICYgSU5URUxfRklOSVNIRUQpICE9IElOVEVMX0ZJTklTSEVEKSB7Ci0JCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IElOVEVMX1JFU0VUOwkvKiByZXNldCBiYW5rICovCiAJCQkJCXJldHVybiAxOwpAQCAtMzM4LDcgKzMzOCw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCphZGRyICYgSU5URUxfRklOSVNIRUQpICE9IElOVEVMX0ZJTklTSEVEKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXByaW50ZigiV3JpdGUgdGltZWQgb3V0XG4iKTsKIAkJCXJjID0gMTsKIAkJCWJyZWFrOwpAQCAtNDU0LDcgKzQ1NCw3IEBACiAKIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAl3aGlsZSAoKCphZGRyICYgSU5URUxfRklOSVNIRUQpICE9IElOVEVMX0ZJTklTSEVEKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVCkgewogCQkJcHJpbnRmKCJGbGFzaCBsb2NrIGJpdCBvcGVyYXRpb24gdGltZWQgb3V0XG4iKTsKIAkJCXJjID0gMTsKIAkJCWJyZWFrOwpAQCAtNDgwLDcgKzQ4MCw3IEBACiAJCQkJYWRkciA9ICh2dV9sb25nICopKGluZm8tPnN0YXJ0W2ldKTsKIAkJCQkqYWRkciA9IElOVEVMX0xPQ0tCSVQ7CS8qIFNlY3RvciBsb2NrIGJpdCAqLwogCQkJCSphZGRyID0gSU5URUxfUFJPVEVDVDsJLyogc2V0ICovCi0JCQkJdWRlbGF5KENGR19GTEFTSF9MT0NLX1RPVVQgKiAxMDAwKTsKKwkJCQl1ZGVsYXkoQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQgKiAxMDAwKTsKIAkJCX0KIAogCWlmIChmbGFnKQpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzgyNjBhZHMvbXBjODI2MGFkcy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgyNjBhZHMvbXBjODI2MGFkcy5jCmluZGV4IDhhYjdkMzUuLjQ5YTg4YmIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MjYwYWRzL21wYzgyNjBhZHMuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODI2MGFkcy9tcGM4MjYwYWRzLmMKQEAgLTU4LDMyICs1OCwzMiBAQAogICogYWNjb3JkaW5nIHRvIHRoZSBmaXZlIHZhbHVlcyBwb2RyL3BkaXIvcHBhci9wc29yL3BkYXQgZm9yIHRoYXQgZW50cnkKICAqLwogCi0jZGVmaW5lIENGR19GQ0MxIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMSkKLSNkZWZpbmUgQ0ZHX0ZDQzIgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAyKQotI2RlZmluZSBDRkdfRkNDMyAoQ09ORklHX0VUSEVSX0lOREVYID09IDMpCisjZGVmaW5lIENPTkZJR19TWVNfRkNDMSAoQ09ORklHX0VUSEVSX0lOREVYID09IDEpCisjZGVmaW5lIENPTkZJR19TWVNfRkNDMiAoQ09ORklHX0VUSEVSX0lOREVYID09IDIpCisjZGVmaW5lIENPTkZJR19TWVNfRkNDMyAoQ09ORklHX0VUSEVSX0lOREVYID09IDMpCiAKIGNvbnN0IGlvcF9jb25mX3QgaW9wX2NvbmZfdGFiWzRdWzMyXSA9IHsKIAogICAgIC8qIFBvcnQgQSBjb25maWd1cmF0aW9uICovCiAgICAgewkvKgkgICAgICBjb25mICAgICAgcHBhciBwc29yIHBkaXIgcG9kciBwZGF0ICovCi0JLyogUEEzMSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBDT0wgICAqLwotCS8qIFBBMzAgKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgQ1JTICAgKi8KLQkvKiBQQTI5ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFRYX0VSICovCi0JLyogUEEyOCAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUWF9FTiAqLwotCS8qIFBBMjcgKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUlhfRFYgKi8KLQkvKiBQQTI2ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJYX0VSICovCisJLyogUEEzMSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgQ09MICAgKi8KKwkvKiBQQTMwICovIHsgQ09ORklHX1NZU19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBDUlMgICAqLworCS8qIFBBMjkgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFRYX0VSICovCisJLyogUEEyOCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVFhfRU4gKi8KKwkvKiBQQTI3ICovIHsgQ09ORklHX1NZU19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBSWF9EViAqLworCS8qIFBBMjYgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJYX0VSICovCiAJLyogUEEyNSAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTI1ICovCiAJLyogUEEyNCAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTI0ICovCiAJLyogUEEyMyAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTIzICovCiAJLyogUEEyMiAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTIyICovCi0JLyogUEEyMSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUeERbM10gKi8KLQkvKiBQQTIwICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFsyXSAqLwotCS8qIFBBMTkgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzFdICovCi0JLyogUEExOCAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUeERbMF0gKi8KLQkvKiBQQTE3ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFswXSAqLwotCS8qIFBBMTYgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzFdICovCi0JLyogUEExNSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBSeERbMl0gKi8KLQkvKiBQQTE0ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFszXSAqLworCS8qIFBBMjEgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFszXSAqLworCS8qIFBBMjAgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFsyXSAqLworCS8qIFBBMTkgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFsxXSAqLworCS8qIFBBMTggKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFswXSAqLworCS8qIFBBMTcgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFswXSAqLworCS8qIFBBMTYgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFsxXSAqLworCS8qIFBBMTUgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFsyXSAqLworCS8qIFBBMTQgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFszXSAqLwogCS8qIFBBMTMgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEExMyAqLwogCS8qIFBBMTIgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEExMiAqLwogCS8qIFBBMTEgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEExMSAqLwpAQCAtMTAyLDM0ICsxMDIsMzQgQEAKIAogICAgIC8qIFBvcnQgQiBjb25maWd1cmF0aW9uICovCiAgICAgeyAgIC8qCSAgICAgIGNvbmYgICAgICBwcGFyIHBzb3IgcGRpciBwb2RyIHBkYXQgKi8KLQkvKiBQQjMxICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFRYX0VSICovCi0JLyogUEIzMCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9EViAqLwotCS8qIFBCMjkgKi8geyBDRkdfRkNDMiwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRU4gKi8KLQkvKiBQQjI4ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJYX0VSICovCi0JLyogUEIyNyAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBDT0wgKi8KLQkvKiBQQjI2ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIENSUyAqLwotCS8qIFBCMjUgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzNdICovCi0JLyogUEIyNCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMl0gKi8KLQkvKiBQQjIzICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFsxXSAqLwotCS8qIFBCMjIgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzBdICovCi0JLyogUEIyMSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMF0gKi8KLQkvKiBQQjIwICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFsxXSAqLwotCS8qIFBCMTkgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzJdICovCi0JLyogUEIxOCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbM10gKi8KLQkvKiBQQjE3ICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzM6UlhfRElWICovCi0JLyogUEIxNiAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzOlJYX0VSUiAqLwotCS8qIFBCMTUgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMzpUWF9FUlIgKi8KLQkvKiBQQjE0ICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzM6VFhfRU4gKi8KLQkvKiBQQjEzICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzM6Q09MICovCi0JLyogUEIxMiAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzOkNSUyAqLwotCS8qIFBCMTEgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMzpSWEQgKi8KLQkvKiBQQjEwICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzM6UlhEICovCi0JLyogUEI5ICAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzOlJYRCAqLwotCS8qIFBCOCAgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMzpSWEQgKi8KLQkvKiBQQjcgICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzM6VFhEICovCi0JLyogUEI2ICAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MzOlRYRCAqLwotCS8qIFBCNSAgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMzpUWEQgKi8KLQkvKiBQQjQgICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzM6VFhEICovCisJLyogUEIzMSAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRVIgKi8KKwkvKiBQQjMwICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9EViAqLworCS8qIFBCMjkgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFRYX0VOICovCisJLyogUEIyOCAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUlhfRVIgKi8KKwkvKiBQQjI3ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBDT0wgKi8KKwkvKiBQQjI2ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBDUlMgKi8KKwkvKiBQQjI1ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbM10gKi8KKwkvKiBQQjI0ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMl0gKi8KKwkvKiBQQjIzICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMV0gKi8KKwkvKiBQQjIyICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMF0gKi8KKwkvKiBQQjIxICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMF0gKi8KKwkvKiBQQjIwICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMV0gKi8KKwkvKiBQQjE5ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMl0gKi8KKwkvKiBQQjE4ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbM10gKi8KKwkvKiBQQjE3ICovIHsgQ09ORklHX1NZU19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzOlJYX0RJViAqLworCS8qIFBCMTYgKi8geyBDT05GSUdfU1lTX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzM6UlhfRVJSICovCisJLyogUEIxNSAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMzpUWF9FUlIgKi8KKwkvKiBQQjE0ICovIHsgQ09ORklHX1NZU19GQ0MzLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MzOlRYX0VOICovCisJLyogUEIxMyAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMzpDT0wgKi8KKwkvKiBQQjEyICovIHsgQ09ORklHX1NZU19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzOkNSUyAqLworCS8qIFBCMTEgKi8geyBDT05GSUdfU1lTX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzM6UlhEICovCisJLyogUEIxMCAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMzpSWEQgKi8KKwkvKiBQQjkgICovIHsgQ09ORklHX1NZU19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzOlJYRCAqLworCS8qIFBCOCAgKi8geyBDT05GSUdfU1lTX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzM6UlhEICovCisJLyogUEI3ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMzpUWEQgKi8KKwkvKiBQQjYgICovIHsgQ09ORklHX1NZU19GQ0MzLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MzOlRYRCAqLworCS8qIFBCNSAgKi8geyBDT05GSUdfU1lTX0ZDQzMsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzM6VFhEICovCisJLyogUEI0ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMzpUWEQgKi8KIAkvKiBQQjMgICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIHBpbiBkb2Vzbid0IGV4aXN0ICovCiAJLyogUEIyICAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBwaW4gZG9lc24ndCBleGlzdCAqLwogCS8qIFBCMSAgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogcGluIGRvZXNuJ3QgZXhpc3QgKi8KQEAgLTE0NywzMiArMTQ3LDMyIEBACiAJLyogUEMyNSAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzI1ICovCiAJLyogUEMyNCAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzI0ICovCiAJLyogUEMyMyAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzIzICovCi0JLyogUEMyMiAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUeCBDbG9jayAoQ0xLMTApICovCi0JLyogUEMyMSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBSeCBDbG9jayAoQ0xLMTEpICovCisJLyogUEMyMiAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHggQ2xvY2sgKENMSzEwKSAqLworCS8qIFBDMjEgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4IENsb2NrIChDTEsxMSkgKi8KIAkvKiBQQzIwICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMjAgKi8KLSNpZiBDT05GSUdfQURTVFlQRSA9PSBDRkdfODI3MkFEUworI2lmIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUwogCS8qIFBDMTkgKi8geyAxLCAgICAgICAgICAwLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkVUSE1EQyAgKi8KIAkvKiBQQzE4ICovIHsgMSwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZFVEhNRElPICovCi0JLyogUEMxNyAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeCBDbG9jayAoQ0xLMTUpICovCi0JLyogUEMxNiAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeCBDbG9jayAoQ0xLMTYpICovCisJLyogUEMxNyAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnggQ2xvY2sgKENMSzE1KSAqLworCS8qIFBDMTYgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4IENsb2NrIChDTEsxNikgKi8KICNlbHNlCi0JLyogUEMxOSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeCBDbG9jayAoQ0xLMTMpICovCi0JLyogUEMxOCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeCBDbG9jayAoQ0xLMTQpICovCisJLyogUEMxOSAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnggQ2xvY2sgKENMSzEzKSAqLworCS8qIFBDMTggKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4IENsb2NrIChDTEsxNCkgKi8KIAkvKiBQQzE3ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMTcgKi8KIAkvKiBQQzE2ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMTYgKi8KLSNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSA9PSBDRkdfODI3MkFEUyAqLworI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUyAqLwogCS8qIFBDMTUgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxNSAqLwogCS8qIFBDMTQgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxNCAqLwogCS8qIFBDMTMgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxMyAqLwogCS8qIFBDMTIgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxMiAqLwogCS8qIFBDMTEgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxMSAqLwotI2lmIENPTkZJR19BRFNUWVBFID09IENGR184MjcyQURTCisjaWYgQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU184MjcyQURTCiAJLyogUEMxMCAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzEwICovCiAJLyogUEM5ICAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzkgICovCiAjZWxzZQogCS8qIFBDMTAgKi8geyAxLCAgICAgICAgICAwLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkVUSE1EQyAgKi8KIAkvKiBQQzkgICovIHsgMSwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZFVEhNRElPICovCi0jZW5kaWYgLyogQ09ORklHX0FEU1RZUEUgPT0gQ0ZHXzgyNzJBRFMgKi8KKyNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTXzgyNzJBRFMgKi8KIAkvKiBQQzggICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDOCAqLwogCS8qIFBDNyAgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEM3ICovCiAJLyogUEM2ICAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzYgKi8KQEAgLTIyMywxMCArMjIzLDEwIEBACiAKIHZvaWQgcmVzZXRfcGh5ICh2b2lkKQogewotCXZ1X2xvbmcgKmJjc3IgPSAodnVfbG9uZyAqKUNGR19CQ1NSOworCXZ1X2xvbmcgKmJjc3IgPSAodnVfbG9uZyAqKUNPTkZJR19TWVNfQkNTUjsKIAogCS8qIFJlc2V0IHRoZSBQSFkgKi8KLSNpZiBDRkdfUEhZX0FERFIgPT0gMAorI2lmIENPTkZJR19TWVNfUEhZX0FERFIgPT0gMAogCWJjc3JbMV0gJj0gfihGRVRISUVOMSB8IEZFVEgxX1JTVCk7CiAJdWRlbGF5KDIpOwogCWJjc3JbMV0gfD0gIEZFVEgxX1JTVDsKQEAgLTIzNCwxNiArMjM0LDE2IEBACiAJYmNzclszXSAmPSB+KEZFVEhJRU4yIHwgRkVUSDJfUlNUKTsKIAl1ZGVsYXkoMik7CiAJYmNzclszXSB8PSAgRkVUSDJfUlNUOwotI2VuZGlmIC8qIENGR19QSFlfQUREUiA9PSAwICovCisjZW5kaWYgLyogQ09ORklHX1NZU19QSFlfQUREUiA9PSAwICovCiAJdWRlbGF5KDEwMDApOwogI2lmZGVmIENPTkZJR19NSUkKLSNpZiBDT05GSUdfQURTVFlQRSA+PSBDRkdfUFEyRkFEUworI2lmIENPTkZJR19BRFNUWVBFID49IENPTkZJR19TWVNfUFEyRkFEUwogCS8qCiAJICogRG8gbm90IGJ5cGFzcyBSeC9UeCAoZGUpc2NyYW1ibGVyIChmaXggY29uZmlndXJhdGlvbiBlcnJvcikKIAkgKiBFbmFibGUgYXV0b25lZ290aWF0aW9uLgogCSAqLwotCWJiX21paXBoeV93cml0ZShOVUxMLCBDRkdfUEhZX0FERFIsIDE2LCAweDYxMCk7Ci0JYmJfbWlpcGh5X3dyaXRlKE5VTEwsIENGR19QSFlfQUREUiwgUEhZX0JNQ1IsCisJYmJfbWlpcGh5X3dyaXRlKE5VTEwsIENPTkZJR19TWVNfUEhZX0FERFIsIDE2LCAweDYxMCk7CisJYmJfbWlpcGh5X3dyaXRlKE5VTEwsIENPTkZJR19TWVNfUEhZX0FERFIsIFBIWV9CTUNSLAogCQkJUEhZX0JNQ1JfQVVUT04gfCBQSFlfQk1DUl9SU1RfTkVHKTsKICNlbHNlCiAJLyoKQEAgLTI1NCwxNCArMjU0LDE0IEBACiAJICovCiAKIAkvKiBBZHZlcnRpc2UgYWxsIGNhcGFiaWxpdGllcyAqLwotCWJiX21paXBoeV93cml0ZShOVUxMLCBDRkdfUEhZX0FERFIsIFBIWV9BTkFSLCAweDAxRTEpOworCWJiX21paXBoeV93cml0ZShOVUxMLCBDT05GSUdfU1lTX1BIWV9BRERSLCBQSFlfQU5BUiwgMHgwMUUxKTsKIAogCS8qIERvIG5vdCBieXBhc3MgUngvVHggKGRlKXNjcmFtYmxlciAqLwotCWJiX21paXBoeV93cml0ZShOVUxMLCBDRkdfUEhZX0FERFIsIFBIWV9EQ1IsICAweDAwMDApOworCWJiX21paXBoeV93cml0ZShOVUxMLCBDT05GSUdfU1lTX1BIWV9BRERSLCBQSFlfRENSLCAgMHgwMDAwKTsKIAotCWJiX21paXBoeV93cml0ZShOVUxMLCBDRkdfUEhZX0FERFIsIFBIWV9CTUNSLAorCWJiX21paXBoeV93cml0ZShOVUxMLCBDT05GSUdfU1lTX1BIWV9BRERSLCBQSFlfQk1DUiwKIAkJCVBIWV9CTUNSX0FVVE9OIHwgUEhZX0JNQ1JfUlNUX05FRyk7Ci0jZW5kaWYgLyogQ09ORklHX0FEU1RZUEUgPT0gQ0ZHX1BRMkZBRFMgKi8KKyNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTX1BRMkZBRFMgKi8KICNlbmRpZiAvKiBDT05GSUdfTUlJICovCiB9CiAKQEAgLTI3NCwxMCArMjc0LDEwIEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7Ci0JdnVfbG9uZyAqYmNzciA9ICh2dV9sb25nICopQ0ZHX0JDU1I7CisJdnVfbG9uZyAqYmNzciA9ICh2dV9sb25nICopQ09ORklHX1NZU19CQ1NSOwogCiAjaWZkZWYgQ09ORklHX1BDSQotCXZvbGF0aWxlIHBjaV9pY190KiBwY2lfaWMgPSAocGNpX2ljX3QgKikgQ0ZHX1BDSV9JTlQ7CisJdm9sYXRpbGUgcGNpX2ljX3QqIHBjaV9pYyA9IChwY2lfaWNfdCAqKSBDT05GSUdfU1lTX1BDSV9JTlQ7CiAKIAkvKiBtYXNrIGFsbGwgdGhlIFBDSSBpbnRlcnJ1cHRzICovCiAJcGNpX2ljLT5wY2lfaW50X21hc2sgfD0gMHhmZmYwMDAwMDsKQEAgLTI4OSwxOSArMjg5LDE5IEBACiAJYmNzclsxXSAmPSB+UlMyMzJFTl8yOwogI2VuZGlmCiAKLSNpZiBDT05GSUdfQURTVFlQRSAhPSBDRkdfODI2MEFEUyAvKiBQQ0kgbW9kZSBjYW4gYmUgc2VsZWN0ZWQgKi8KLSNpZiBDT05GSUdfQURTVFlQRSA9PSBDRkdfUFEyRkFEUworI2lmIENPTkZJR19BRFNUWVBFICE9IENPTkZJR19TWVNfODI2MEFEUyAvKiBQQ0kgbW9kZSBjYW4gYmUgc2VsZWN0ZWQgKi8KKyNpZiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTX1BRMkZBRFMKIAlpZiAoKGJjc3JbM10gJiBCQ1NSX1BDSV9NT0RFKSA9PSAwKSAvKiBQQ0kgbW9kZSBzZWxlY3RlZCBieSBKUDkgKi8KLSNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSA9PSBDRkdfUFEyRkFEUyAqLworI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfUFEyRkFEUyAqLwogCXsKLQkJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwkJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAkJaW1tYXAtPmltX2Nsa3JzdC5jYXJfc2NjciB8PSBNODI2WF9TQ0NSX1BDSV9NT0RFX0VOOwogCQlpbW1hcC0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyID0KIAkJCShpbW1hcC0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyICYgflNJVU1DUl9MQlBDMTEpCiAJCQl8IFNJVU1DUl9MQlBDMDE7CiAJfQotI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFICE9IENGR184MjYwQURTICovCisjZW5kaWYgLyogQ09ORklHX0FEU1RZUEUgIT0gQ09ORklHX1NZU184MjYwQURTICovCiAKIAlyZXR1cm4gMDsKIH0KQEAgLTMxMCwxNiArMzEwLDE2IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLSNpZiAgIENPTkZJR19BRFNUWVBFID09IENGR19QUTJGQURTCisjaWYgICBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTX1BRMkZBRFMKIAlsb25nIGludCBtc2l6ZSA9IDMyOwotI2VsaWYgQ09ORklHX0FEU1RZUEUgPT0gQ0ZHXzgyNzJBRFMKKyNlbGlmIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUwogCWxvbmcgaW50IG1zaXplID0gNjQ7CiAjZWxzZQogCWxvbmcgaW50IG1zaXplID0gMTY7CiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAorCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdm9sYXRpbGUgdWNoYXIgKnJhbWFkZHIsIGMgPSAweGZmOwogCXVpbnQgb3I7CkBAIC0zMzIsMzMgKzMzMiwzMyBAQAogCWltbWFwLT5pbV9zaXVfY29uZi5zY19wcGNfYWxyaCA9IDB4MDEyNjc4OTM7CiAJaW1tYXAtPmltX3NpdV9jb25mLnNjX3Rlc2NyMSAgID0gMHgwMDAwNDAwMDsKIAotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKLSNpZmRlZiBDRkdfTFNEUkFNX0JBU0UKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOworI2lmZGVmIENPTkZJR19TWVNfTFNEUkFNX0JBU0UKIAkvKgogCSAgSW5pdGlhbGlzZSBsb2NhbCBidXMgU0RSQU0gb25seSBpZiB0aGUgcGlucwogCSAgYXJlIGNvbmZpZ3VyZWQgYXMgbG9jYWwgYnVzIHBpbnMgYW5kIG5vdCBhcyBQQ0kuCiAJICBUaGUgY29uZmlndXJhdGlvbiBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBIUkNXLgogCSovCiAJaWYgKChpbW1hcC0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyICYgU0lVTUNSX0xCUEMxMSkgPT0gU0lVTUNSX0xCUEMwMCkgewotCQltZW1jdGwtPm1lbWNfbHNydCAgPSBDRkdfTFNSVDsKLSNpZiBDT05GSUdfQURTVFlQRSA9PSBDRkdfUFEyRkFEUyAvKiBDUzMgKi8KKwkJbWVtY3RsLT5tZW1jX2xzcnQgID0gQ09ORklHX1NZU19MU1JUOworI2lmIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfUFEyRkFEUyAvKiBDUzMgKi8KIAkJbWVtY3RsLT5tZW1jX29yMyAgID0gMHhGRjgwMzI4MDsKLQkJbWVtY3RsLT5tZW1jX2JyMyAgID0gQ0ZHX0xTRFJBTV9CQVNFIHwgMHgwMDAwMTg2MTsKKwkJbWVtY3RsLT5tZW1jX2JyMyAgID0gQ09ORklHX1NZU19MU0RSQU1fQkFTRSB8IDB4MDAwMDE4NjE7CiAjZWxzZQkJCQkgIC8qIENTNCAqLwogCQltZW1jdGwtPm1lbWNfb3I0ICAgPSAweEZGQzAxNDgwOwotCQltZW1jdGwtPm1lbWNfYnI0ICAgPSBDRkdfTFNEUkFNX0JBU0UgfCAweDAwMDAxODYxOwotI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENGR19QUTJGQURTICovCi0JCW1lbWN0bC0+bWVtY19sc2RtciA9IENGR19MU0RNUiB8IDB4MjgwMDAwMDA7Ci0JCXJhbWFkZHIgPSAodWNoYXIgKikgQ0ZHX0xTRFJBTV9CQVNFOworCQltZW1jdGwtPm1lbWNfYnI0ICAgPSBDT05GSUdfU1lTX0xTRFJBTV9CQVNFIHwgMHgwMDAwMTg2MTsKKyNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTX1BRMkZBRFMgKi8KKwkJbWVtY3RsLT5tZW1jX2xzZG1yID0gQ09ORklHX1NZU19MU0RNUiB8IDB4MjgwMDAwMDA7CisJCXJhbWFkZHIgPSAodWNoYXIgKikgQ09ORklHX1NZU19MU0RSQU1fQkFTRTsKIAkJKnJhbWFkZHIgPSBjOwotCQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDRkdfTFNETVIgfCAweDA4MDAwMDAwOworCQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDT05GSUdfU1lTX0xTRE1SIHwgMHgwODAwMDAwMDsKIAkJZm9yIChpID0gMDsgaSA8IDg7IGkrKykKIAkJCSpyYW1hZGRyID0gYzsKLQkJbWVtY3RsLT5tZW1jX2xzZG1yID0gQ0ZHX0xTRE1SIHwgMHgxODAwMDAwMDsKKwkJbWVtY3RsLT5tZW1jX2xzZG1yID0gQ09ORklHX1NZU19MU0RNUiB8IDB4MTgwMDAwMDA7CiAJCSpyYW1hZGRyID0gYzsKLQkJbWVtY3RsLT5tZW1jX2xzZG1yID0gQ0ZHX0xTRE1SIHwgMHg0MDAwMDAwMDsKKwkJbWVtY3RsLT5tZW1jX2xzZG1yID0gQ09ORklHX1NZU19MU0RNUiB8IDB4NDAwMDAwMDA7CiAJfQotI2VuZGlmIC8qIENGR19MU0RSQU1fQkFTRSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTFNEUkFNX0JBU0UgKi8KIAogCS8qIEluaXQgNjB4IGJ1cyBTRFJBTSAqLwogI2lmZGVmIENPTkZJR19TUERfRUVQUk9NCkBAIC00OTgsMTQgKzQ5OCwxNCBAQAogI2VuZGlmIC8qIFNQRF9ERUJVRyAqLwogCX0KICNlbHNlICAvKiAhQ09ORklHX1NQRF9FRVBST00gKi8KLQlvciAgICA9IENGR19PUjI7Ci0JcHNkbXIgPSBDRkdfUFNETVI7Ci0JcHNydCAgPSBDRkdfUFNSVDsKKwlvciAgICA9IENPTkZJR19TWVNfT1IyOworCXBzZG1yID0gQ09ORklHX1NZU19QU0RNUjsKKwlwc3J0ICA9IENPTkZJR19TWVNfUFNSVDsKICNlbmRpZiAvKiBDT05GSUdfU1BEX0VFUFJPTSAqLwogCW1lbWN0bC0+bWVtY19wc3J0ID0gcHNydDsKIAltZW1jdGwtPm1lbWNfb3IyID0gb3I7Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IENGR19TRFJBTV9CQVNFIHwgMHgwMDAwMDA0MTsKLQlyYW1hZGRyID0gKHVjaGFyICopIENGR19TRFJBTV9CQVNFOworCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCAweDAwMDAwMDQxOworCXJhbWFkZHIgPSAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFOwogCW1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgMHgyODAwMDAwMDsJLyogUHJlY2hhcmdlIGFsbCBiYW5rcyAqLwogCSpyYW1hZGRyID0gYzsKIAltZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IDB4MDgwMDAwMDA7CS8qIENCUiByZWZyZXNoICovCkBAIC01MTYsNyArNTE2LDcgQEAKIAkqcmFtYWRkciA9IGM7CiAJbWVtY3RsLT5tZW1jX3BzZG1yID0gcHNkbXIgfCAweDQwMDAwMDAwOwkvKiBSZWZyZXNoIGVuYWJsZSAqLwogCSpyYW1hZGRyID0gYzsKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyogcmV0dXJuIHRvdGFsIDYweCBidXMgU0RSQU0gc2l6ZSAqLwogCXJldHVybiAobXNpemUgKiAxMDI0ICogMTAyNCk7CkBAIC01MjQsMTMgKzUyNCwxMyBAQAogCiBpbnQgY2hlY2tib2FyZCAodm9pZCkKIHsKLSNpZiAgIENPTkZJR19BRFNUWVBFID09IENGR184MjYwQURTCisjaWYgICBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTXzgyNjBBRFMKIAlwdXRzICgiQm9hcmQ6IE1vdG9yb2xhIE1QQzgyNjBBRFNcbiIpOwotI2VsaWYgQ09ORklHX0FEU1RZUEUgPT0gQ0ZHXzgyNjZBRFMKKyNlbGlmIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI2NkFEUwogCXB1dHMgKCJCb2FyZDogTW90b3JvbGEgTVBDODI2NkFEU1xuIik7Ci0jZWxpZiBDT05GSUdfQURTVFlQRSA9PSBDRkdfUFEyRkFEUworI2VsaWYgQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU19QUTJGQURTCiAJcHV0cyAoIkJvYXJkOiBNb3Rvcm9sYSBQUTJGQURTLVpVXG4iKTsKLSNlbGlmIENPTkZJR19BRFNUWVBFID09IENGR184MjcyQURTCisjZWxpZiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTXzgyNzJBRFMKIAlwdXRzICgiQm9hcmQ6IE1vdG9yb2xhIE1QQzgyNzJBRFNcbiIpOwogI2Vsc2UKIAlwdXRzICgiQm9hcmQ6IHVua25vd25cbiIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzgyNjZhZHMvZmxhc2guYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MjY2YWRzL2ZsYXNoLmMKaW5kZXggYjRjZGNkOS4uMDZkZGUzNiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzgyNjZhZHMvZmxhc2guYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODI2NmFkcy9mbGFzaC5jCkBAIC0yOSwxMSArMjksMTEgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KIAogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKICMgaWZuZGVmICBDT05GSUdfRU5WX0FERFIKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICMgZW5kaWYKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTU2LDcgKzU2LDcgQEAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKICNpZm5kZWYgQ09ORklHX01QQzgyNjZBRFMKLQl2b2xhdGlsZSBpbW1hcF90CSppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QJKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90CSptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl2b2xhdGlsZSBpcDg2MF9iY3NyX3QJKmJjc3IgICA9IChpcDg2MF9iY3NyX3QgKilCQ1NSX0JBU0U7CiAjZW5kaWYKQEAgLTcxLDcgKzcxLDcgQEAKICNlbmRpZgogCiAKLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCiAJCS8qIHNldCB0aGUgZGVmYXVsdCBzZWN0b3Igb2Zmc2V0ICovCkBAIC04OCwyMCArODgsMjAgQEAKIAogI2lmbmRlZiBDT05GSUdfTVBDODI2NkFEUwogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZSAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjEgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemUgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfYnIxID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfAogCQkJCShtZW1jdGwtPm1lbWNfYnIxICYgfihCUl9CQV9NU0spKTsKICNlbmRpZgogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTMzNiw3ICszMzYsNyBAQAogCQkJCQkqYWRkciA9IDB4RkZGRkZGRkY7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCQkJcmV0dXJuIDE7CiAJCQkJfQotCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJKmFkZHIgPSAweEZGRkZGRkZGOwkvKiByZXNldCBiYW5rICovCiAJCQkJCXJldHVybiAxOwpAQCAtNDYxLDcgKzQ2MSw3IEBACiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCWZsYWcgID0gMDsKIAl3aGlsZSAoKChjc3IgPSAqYWRkcikgJiAweDgwODA4MDgwKSAhPSAweDgwODA4MDgwKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCWZsYWcgPSAxOwogCQkJYnJlYWs7CiAJCX0KQEAgLTQ5OSw3ICs0OTksNyBAQAogCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlKCphZGRyICE9IDB4ODA4MDgwODApewotCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0IG9uIGNsZWFyaW5nIEJsb2NrIExvY2sgQml0XG4iKTsKIAkJCSphZGRyID0gMHhGRkZGRkZGRjsJLyogcmVzZXQgYmFuayAqLwogCQkJcmV0dXJuIDE7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODI2NmFkcy9tcGM4MjY2YWRzLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODI2NmFkcy9tcGM4MjY2YWRzLmMKaW5kZXggMDkwYTUzNC4uNjZhY2M0MSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzgyNjZhZHMvbXBjODI2NmFkcy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MjY2YWRzL21wYzgyNjZhZHMuYwpAQCAtMjI0LDcgKzIyNCw3IEBACiAKIHZvaWQgcmVzZXRfcGh5KHZvaWQpCiB7Ci0gICAgdm9sYXRpbGUgYmNzcl90ICAqYmNzciAgICAgICAgICAgPSAoYmNzcl90ICopQ0ZHX0JDU1I7CisgICAgdm9sYXRpbGUgYmNzcl90ICAqYmNzciAgICAgICAgICAgPSAoYmNzcl90ICopQ09ORklHX1NZU19CQ1NSOwogCiAgICAgLyogcmVzZXQgdGhlIEZFQyBwb3J0ICovCiAgICAgYmNzci0+YmNzcjEgICAgICAgICAgICAgICAgICAgICY9IH5GRVRIX1JTVDsKQEAgLTIzNCw4ICsyMzQsOCBAQAogCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mICh2b2lkKQogewotICAgIHZvbGF0aWxlIGJjc3JfdCAgKmJjc3IgICAgICAgICA9IChiY3NyX3QgKilDRkdfQkNTUjsKLSAgICB2b2xhdGlsZSBwY2lfaWNfdCAqcGNpX2ljICAgICAgPSAocGNpX2ljX3QgKikgQ0ZHX1BDSV9JTlQ7CisgICAgdm9sYXRpbGUgYmNzcl90ICAqYmNzciAgICAgICAgID0gKGJjc3JfdCAqKUNPTkZJR19TWVNfQkNTUjsKKyAgICB2b2xhdGlsZSBwY2lfaWNfdCAqcGNpX2ljICAgICAgPSAocGNpX2ljX3QgKikgQ09ORklHX1NZU19QQ0lfSU5UOwogCiAgICAgYmNzci0+YmNzcjEgICAgICAgICAgICAgICAgICAgID0gfkZFVEhJRU4gJiB+UlMyMzJFTl8xICYgflJTMjMyRU5fMjsKIApAQCAtMjU0LDE3ICsyNTQsMTcgQEAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewogCS8qIEF1dG9pbml0IHBhcnQgc3RvbGVuIGZyb20gYm9hcmQvc2Fjc25nL3NhY3NuZy5jICovCi0gICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgICAgICAgICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgICAgICAgICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgIHZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsICAgPSAmaW1tYXAtPmltX21lbWN0bDsKICAgICB2b2xhdGlsZSB1Y2hhciBjID0gMHhmZjsKLSAgICB2b2xhdGlsZSB1Y2hhciAqcmFtYWRkciA9ICh1Y2hhciAqKShDRkdfU0RSQU1fQkFTRSArIDB4OCk7Ci0gICAgdWludCAgcHNkbXIgPSBDRkdfUFNETVI7CisgICAgdm9sYXRpbGUgdWNoYXIgKnJhbWFkZHIgPSAodWNoYXIgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg4KTsKKyAgICB1aW50ICBwc2RtciA9IENPTkZJR19TWVNfUFNETVI7CiAgICAgaW50IGk7CiAKICAgICB1aW50ICAgcHNydCA9IDB4MjE7CQkJCQkvKiBmb3Igbm8gU1BEICovCiAgICAgdWludCAgIGNoaXBzZWxlY3RzID0gMTsJCQkJLyogZm9yIG5vIFNQRCAqLwotICAgIHVpbnQgICBzZHJhbV9zaXplID0gQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsJLyogZm9yIG5vIFNQRCAqLwotICAgIHVpbnQgICBvciA9IENGR19PUjJfUFJFTElNOwkJCQkvKiBmb3Igbm8gU1BEICovCisgICAgdWludCAgIHNkcmFtX3NpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsJLyogZm9yIG5vIFNQRCAqLworICAgIHVpbnQgICBvciA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsJCQkJLyogZm9yIG5vIFNQRCAqLwogICAgIHVpbnQgICBkYXRhX3dpZHRoOwogICAgIHVpbnQgICByb3dzOwogICAgIHVpbnQgICBiYW5rczsKQEAgLTI4Niw3ICsyODYsNyBAQAogICAgIC8qCiAgICAgICogUmVhZCB0aGUgU0RSQU0gU1BEIEVFUFJPTSB2aWEgSTJDLgogICAgICAqLwotCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAogICAgIGkyY19yZWFkKFNEUkFNX1NQRF9BRERSLCAwLCAxLCAmZGF0YSwgMSk7CiAgICAgc3BkX3NpemUgPSBkYXRhOwpAQCAtNTA2LDEzICs1MDYsMTMgQEAKICAgICAgKiAgYWNjZXNzaW5nIHRoZSBTRFJBTSB3aXRoIGEgc2luZ2xlLWJ5dGUgdHJhbnNhY3Rpb24uIgogICAgICAqCiAgICAgICogVGhlIGFwcHJvcHJpYXRlIEJSeC9PUnggcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCB3aGVuIHdlCi0gICAgICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ0ZHX1NEUkFNX0JBU0UuCisgICAgICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogICAgICAqLwogCi0gICAgbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworICAgIG1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAgICAgbWVtY3RsLT5tZW1jX3BzcnQgID0gcHNydDsKIAotICAgIG1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyX1BSRUxJTTsKKyAgICBtZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOwogICAgIG1lbWN0bC0+bWVtY19vcjIgPSBvcjsKIAogICAgIG1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgUFNETVJfT1BfUFJFQTsKQEAgLTUzNiw3ICs1MzYsNyBAQAogCXsKIAlyYW1hZGRyICs9IHNkcmFtX3NpemU7CiAKLQkJbWVtY3RsLT5tZW1jX2JyMyA9IENGR19CUjNfUFJFTElNICsgc2RyYW1fc2l6ZTsKKwkJbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfQlIzX1BSRUxJTSArIHNkcmFtX3NpemU7CiAJCW1lbWN0bC0+bWVtY19vcjMgPSBvcjsKIAogCQltZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IFBTRE1SX09QX1BSRUE7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODMxM2VyZGIvbXBjODMxM2VyZGIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzEzZXJkYi9tcGM4MzEzZXJkYi5jCmluZGV4IGViYjcwM2QuLjlmZmQ0YmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzEzZXJkYi9tcGM4MzEzZXJkYi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzEzZXJkYi9tcGM4MzEzZXJkYi5jCkBAIC0zNiw4ICszNiw4IEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2Yodm9pZCkKIHsKLSNpZm5kZWYgQ0ZHXzgzMTNFUkRCX0JST0tFTl9QTUMKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisjaWZuZGVmIENPTkZJR19TWVNfODMxM0VSREJfQlJPS0VOX1BNQworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAKIAlpZiAoaW0tPnBtYy5wbWNjcjEgJiBQTUNDUjFfUE9XRVJfT0ZGKQogCQlnZC0+ZmxhZ3MgfD0gR0RfRkxHX1NJTEVOVDsKQEAgLTU1LDI4ICs1NSwyOCBAQAogI2lmbmRlZiBDT05GSUdfTkFORF9TUEwKIHN0YXRpYyBzdHJ1Y3QgcGNpX3JlZ2lvbiBwY2lfcmVnaW9uc1tdID0gewogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJMV9NRU1fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSTFfTUVNX1BIWVMsCi0JCXNpemU6IENGR19QQ0kxX01FTV9TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAorCQlzaXplOiBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fUFJFRkVUQ0gKIAl9LAogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJMV9NTUlPX0JBU0UsCi0JCXBoeXNfc3RhcnQ6IENGR19QQ0kxX01NSU9fUEhZUywKLQkJc2l6ZTogQ0ZHX1BDSTFfTU1JT19TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UsCisJCXBoeXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMV9NTUlPX1BIWVMsCisJCXNpemU6IENPTkZJR19TWVNfUENJMV9NTUlPX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX01FTQogCX0sCiAJewotCQlidXNfc3RhcnQ6IENGR19QQ0kxX0lPX0JBU0UsCi0JCXBoeXNfc3RhcnQ6IENGR19QQ0kxX0lPX1BIWVMsCi0JCXNpemU6IENGR19QQ0kxX0lPX1NJWkUsCisJCWJ1c19zdGFydDogQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UsCisJCXBoeXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMV9JT19QSFlTLAorCQlzaXplOiBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwKIAkJZmxhZ3M6IFBDSV9SRUdJT05fSU8KIAl9CiB9OwogCiB2b2lkIHBjaV9pbml0X2JvYXJkKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNsazgzeHhfdCAqY2xrID0gKHZvbGF0aWxlIGNsazgzeHhfdCAqKSZpbW1yLT5jbGs7CiAJdm9sYXRpbGUgbGF3ODN4eF90ICpwY2lfbGF3ID0gaW1tci0+c3lzY29uZi5wY2lsYXc7CiAJc3RydWN0IHBjaV9yZWdpb24gKnJlZ1tdID0geyBwY2lfcmVnaW9ucyB9OwpAQCAtODgsMTQgKzg4LDE0IEBACiAJLyoKIAkgKiBDb25maWd1cmUgUENJIExvY2FsIEFjY2VzcyBXaW5kb3dzCiAJICovCi0JcGNpX2xhd1swXS5iYXIgPSBDRkdfUENJMV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1swXS5iYXIgPSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMF0uYXIgPSBMQkxBV0FSX0VOIHwgTEJMQVdBUl81MTJNQjsKIAotCXBjaV9sYXdbMV0uYmFyID0gQ0ZHX1BDSTFfSU9fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1sxXS5iYXIgPSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1sxXS5hciA9IExCTEFXQVJfRU4gfCBMQkxBV0FSXzFNQjsKIAogCXdhcm1ib290ID0gZ2QtPmJkLT5iaV9ib290ZmxhZ3MgJiBCT09URkxBR19XQVJNOwotI2lmbmRlZiBDRkdfODMxM0VSREJfQlJPS0VOX1BNQworI2lmbmRlZiBDT05GSUdfU1lTXzgzMTNFUkRCX0JST0tFTl9QTUMKIAl3YXJtYm9vdCB8PSBpbW1yLT5wbWMucG1jY3IxICYgUE1DQ1IxX1BPV0VSX09GRjsKICNlbmRpZgogCkBAIC0xMzUsMTMgKzEzNSwxMyBAQAogdm9pZCBib2FyZF9pbml0X2YodWxvbmcgYm9vdGZsYWcpCiB7CiAJYm9hcmRfZWFybHlfaW5pdF9mKCk7Ci0JTlMxNjU1MF9pbml0KChOUzE2NTUwX3QpKENGR19JTU1SICsgMHg0NTAwKSwKLQkgICAgICAgICAgICAgQ0ZHX05TMTY1NTBfQ0xLIC8gMTYgLyBDT05GSUdfQkFVRFJBVEUpOworCU5TMTY1NTBfaW5pdCgoTlMxNjU1MF90KShDT05GSUdfU1lTX0lNTVIgKyAweDQ1MDApLAorCSAgICAgICAgICAgICBDT05GSUdfU1lTX05TMTY1NTBfQ0xLIC8gMTYgLyBDT05GSUdfQkFVRFJBVEUpOwogCXB1dHMoIk5BTkQgYm9vdC4uLiAiKTsKIAlpbml0X3RpbWViYXNlKCk7CiAJaW5pdGRyYW0oMCk7Ci0JcmVsb2NhdGVfY29kZShDRkdfTkFORF9VX0JPT1RfUkVMT0MgKyAweDEwMDAwLCAoZ2RfdCAqKWdkLAotCSAgICAgICAgICAgICAgQ0ZHX05BTkRfVV9CT09UX1JFTE9DKTsKKwlyZWxvY2F0ZV9jb2RlKENPTkZJR19TWVNfTkFORF9VX0JPT1RfUkVMT0MgKyAweDEwMDAwLCAoZ2RfdCAqKWdkLAorCSAgICAgICAgICAgICAgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9SRUxPQyk7CiB9CiAKIHZvaWQgYm9hcmRfaW5pdF9yKGdkX3QgKmdkLCB1bG9uZyBkZXN0X2FkZHIpCkBAIC0xNTUsOCArMTU1LDggQEAKIAkJcmV0dXJuOwogCiAJaWYgKGMgPT0gJ1xuJykKLQkJTlMxNjU1MF9wdXRjKChOUzE2NTUwX3QpKENGR19JTU1SICsgMHg0NTAwKSwgJ1xyJyk7CisJCU5TMTY1NTBfcHV0YygoTlMxNjU1MF90KShDT05GSUdfU1lTX0lNTVIgKyAweDQ1MDApLCAnXHInKTsKIAotCU5TMTY1NTBfcHV0YygoTlMxNjU1MF90KShDRkdfSU1NUiArIDB4NDUwMCksIGMpOworCU5TMTY1NTBfcHV0YygoTlMxNjU1MF90KShDT05GSUdfU1lTX0lNTVIgKyAweDQ1MDApLCBjKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzMTNlcmRiL3NkcmFtLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODMxM2VyZGIvc2RyYW0uYwppbmRleCAxMjhjZDQwLi45OWU4YTQzIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODMxM2VyZGIvc2RyYW0uYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODMxM2VyZGIvc2RyYW0uYwpAQCAtMzUsNyArMzUsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotI2lmbmRlZiBDRkdfODMxM0VSREJfQlJPS0VOX1BNQworI2lmbmRlZiBDT05GSUdfU1lTXzgzMTNFUkRCX0JST0tFTl9QTUMKIHN0YXRpYyB2b2lkIHJlc3VtZV9mcm9tX3NsZWVwKHZvaWQpCiB7CiAJdTMyIG1hZ2ljID0gKih1MzIgKikwOwpAQCAtNTgsMTUgKzU4LDE1IEBACiAgKi8KIHN0YXRpYyBsb25nIGZpeGVkX3NkcmFtKHZvaWQpCiB7Ci0JdTMyIG1zaXplID0gQ0ZHX0REUl9TSVpFICogMTAyNCAqIDEwMjQ7CisJdTMyIG1zaXplID0gQ09ORklHX1NZU19ERFJfU0laRSAqIDEwMjQgKiAxMDI0OwogCi0jaWZuZGVmIENGR19SQU1CT09UCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXUzMiBtc2l6ZV9sb2cyID0gX19pbG9nMihtc2l6ZSk7CiAKLQlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ0ZHX0REUl9TRFJBTV9CQVNFICYgMHhmZmZmZjAwMDsKKwlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSAmIDB4ZmZmZmYwMDA7CiAJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmFyID0gTEJMQVdBUl9FTiB8IChtc2l6ZV9sb2cyIC0gMSk7Ci0JaW0tPnN5c2NvbmYuZGRyY2RyID0gQ0ZHX0REUkNEUl9WQUxVRTsKKwlpbS0+c3lzY29uZi5kZHJjZHIgPSBDT05GSUdfU1lTX0REUkNEUl9WQUxVRTsKIAogCS8qCiAJICogRXJyYXR1bSBERFIzIHJlcXVpcmVzIGEgNTBtcyBkZWxheSBhZnRlciBjbGVhcmluZyBERFJDRFJbRERSX2NmZ10sCkBAIC03NSwyOSArNzUsMjkgQEAKIAl1ZGVsYXkoNTAwMDApOwogCiAJaW0tPmRkci5jc2JuZHNbMF0uY3NibmRzID0gKG1zaXplIC0gMSkgPj4gMjQ7Ci0JaW0tPmRkci5jc19jb25maWdbMF0gPSBDRkdfRERSX0NPTkZJRzsKKwlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENPTkZJR19TWVNfRERSX0NPTkZJRzsKIAogCS8qIEN1cnJlbnRseSB3ZSB1c2Ugb25seSBvbmUgQ1MsIHNvIGRpc2FibGUgdGhlIG90aGVyIGJhbmsuICovCiAJaW0tPmRkci5jc19jb25maWdbMV0gPSAwOwogCi0JaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENGR19ERFJfQ0xLX0NOVEw7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzMgPSBDRkdfRERSX1RJTUlOR18zOwotCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzAgPSBDRkdfRERSX1RJTUlOR18wOworCWltLT5kZHIuc2RyYW1fY2xrX2NudGwgPSBDT05GSUdfU1lTX0REUl9DTEtfQ05UTDsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMyA9IENPTkZJR19TWVNfRERSX1RJTUlOR18zOworCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzE7CisJaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMjsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMCA9IENPTkZJR19TWVNfRERSX1RJTUlOR18wOwogCi0jaWZuZGVmIENGR184MzEzRVJEQl9CUk9LRU5fUE1DCisjaWZuZGVmIENPTkZJR19TWVNfODMxM0VSREJfQlJPS0VOX1BNQwogCWlmIChpbS0+cG1jLnBtY2NyMSAmIFBNQ0NSMV9QT1dFUl9PRkYpCi0JCWltLT5kZHIuc2RyYW1fY2ZnID0gQ0ZHX1NEUkFNX0NGRyB8IFNEUkFNX0NGR19CSTsKKwkJaW0tPmRkci5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX1NEUkFNX0NGRyB8IFNEUkFNX0NGR19CSTsKIAllbHNlCiAjZW5kaWYKLQkJaW0tPmRkci5zZHJhbV9jZmcgPSBDRkdfU0RSQU1fQ0ZHOworCQlpbS0+ZGRyLnNkcmFtX2NmZyA9IENPTkZJR19TWVNfU0RSQU1fQ0ZHOwogCi0JaW0tPmRkci5zZHJhbV9jZmcyID0gQ0ZHX1NEUkFNX0NGRzI7Ci0JaW0tPmRkci5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFOwotCWltLT5kZHIuc2RyYW1fbW9kZTIgPSBDRkdfRERSX01PREVfMjsKKwlpbS0+ZGRyLnNkcmFtX2NmZzIgPSBDT05GSUdfU1lTX1NEUkFNX0NGRzI7CisJaW0tPmRkci5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERTsKKwlpbS0+ZGRyLnNkcmFtX21vZGUyID0gQ09ORklHX1NZU19ERFJfTU9ERV8yOwogCi0JaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFJfSU5URVJWQUw7CisJaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENPTkZJR19TWVNfRERSX0lOVEVSVkFMOwogCXN5bmMoKTsKIAogCS8qIGVuYWJsZSBERFIgY29udHJvbGxlciAqLwpAQCAtMTA5LDcgKzEwOSw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGxidXM4M3h4X3QgKmxiYyA9ICZpbS0+bGJ1czsKIAl1MzIgbXNpemU7CiAKQEAgLTEyMCwxMSArMTIwLDExIEBACiAJbXNpemUgPSBmaXhlZF9zZHJhbSgpOwogCiAJLyogTG9jYWwgQnVzIHNldHVwIGxiY3IgYW5kIG1ydHByICovCi0JbGJjLT5sYmNyID0gQ0ZHX0xCQ19MQkNSOwotCWxiYy0+bXJ0cHIgPSBDRkdfTEJDX01SVFBSOworCWxiYy0+bGJjciA9IENPTkZJR19TWVNfTEJDX0xCQ1I7CisJbGJjLT5tcnRwciA9IENPTkZJR19TWVNfTEJDX01SVFBSOwogCXN5bmMoKTsKIAotI2lmbmRlZiBDRkdfODMxM0VSREJfQlJPS0VOX1BNQworI2lmbmRlZiBDT05GSUdfU1lTXzgzMTNFUkRCX0JST0tFTl9QTUMKIAlpZiAoaW0tPnBtYy5wbWNjcjEgJiBQTUNDUjFfUE9XRVJfT0ZGKQogCQlyZXN1bWVfZnJvbV9zbGVlcCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODMxNWVyZGIvbXBjODMxNWVyZGIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzE1ZXJkYi9tcGM4MzE1ZXJkYi5jCmluZGV4IDAzMzAyMTguLmVhNGIwNGYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzE1ZXJkYi9tcGM4MzE1ZXJkYi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzE1ZXJkYi9tcGM4MzE1ZXJkYi5jCkBAIC0zNSw3ICszNSw3IEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2Yodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAogCWlmIChpbS0+cG1jLnBtY2NyMSAmIFBNQ0NSMV9QT1dFUl9PRkYpCiAJCWdkLT5mbGFncyB8PSBHRF9GTEdfU0lMRU5UOwpAQCAtNDgsNyArNDgsNyBAQAogCXU4IHZhbDg7CiAJaTJjX3NldF9idXNfbnVtKDApOwogCi0JaWYgKGkyY19yZWFkKENGR19JMkNfUENGODU3NEFfQUREUiwgMCwgMCwgJnZhbDgsIDEpID09IDApCisJaWYgKGkyY19yZWFkKENPTkZJR19TWVNfSTJDX1BDRjg1NzRBX0FERFIsIDAsIDAsICZ2YWw4LCAxKSA9PSAwKQogCQlyZXR1cm4gdmFsODsKIAllbHNlCiAJCXJldHVybiAwOwpAQCAtNzYsMjggKzc2LDI4IEBACiAKIHN0YXRpYyBzdHJ1Y3QgcGNpX3JlZ2lvbiBwY2lfcmVnaW9uc1tdID0gewogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJX01FTV9CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJX01FTV9QSFlTLAotCQlzaXplOiBDRkdfUENJX01FTV9TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJX01FTV9CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fUFJFRkVUQ0gKIAl9LAogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJX01NSU9fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSV9NTUlPX1BIWVMsCi0JCXNpemU6IENGR19QQ0lfTU1JT19TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJX01NSU9fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0lfTU1JT19QSFlTLAorCQlzaXplOiBDT05GSUdfU1lTX1BDSV9NTUlPX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX01FTQogCX0sCiAJewotCQlidXNfc3RhcnQ6IENGR19QQ0lfSU9fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSV9JT19QSFlTLAotCQlzaXplOiBDRkdfUENJX0lPX1NJWkUsCisJCWJ1c19zdGFydDogQ09ORklHX1NZU19QQ0lfSU9fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0lfSU9fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0lfSU9fU0laRSwKIAkJZmxhZ3M6IFBDSV9SRUdJT05fSU8KIAl9CiB9OwogCiB2b2lkIHBjaV9pbml0X2JvYXJkKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNsazgzeHhfdCAqY2xrID0gKHZvbGF0aWxlIGNsazgzeHhfdCAqKSZpbW1yLT5jbGs7CiAJdm9sYXRpbGUgbGF3ODN4eF90ICpwY2lfbGF3ID0gaW1tci0+c3lzY29uZi5wY2lsYXc7CiAJc3RydWN0IHBjaV9yZWdpb24gKnJlZ1tdID0geyBwY2lfcmVnaW9ucyB9OwpAQCAtMTA5LDEwICsxMDksMTAgQEAKIAkvKgogCSAqIENvbmZpZ3VyZSBQQ0kgTG9jYWwgQWNjZXNzIFdpbmRvd3MKIAkgKi8KLQlwY2lfbGF3WzBdLmJhciA9IENGR19QQ0lfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMF0uYmFyID0gQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMF0uYXIgPSBMQkxBV0FSX0VOIHwgTEJMQVdBUl81MTJNQjsKIAotCXBjaV9sYXdbMV0uYmFyID0gQ0ZHX1BDSV9JT19QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzFdLmJhciA9IENPTkZJR19TWVNfUENJX0lPX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMV0uYXIgPSBMQkxBV0FSX0VOIHwgTEJMQVdBUl8xTUI7CiAKIAl3YXJtYm9vdCA9IGdkLT5iZC0+YmlfYm9vdGZsYWdzICYgQk9PVEZMQUdfV0FSTTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzE1ZXJkYi9zZHJhbS5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzMTVlcmRiL3NkcmFtLmMKaW5kZXggMzcxNGMyYy4uZWFkN2IxZSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzMTVlcmRiL3NkcmFtLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzMTVlcmRiL3NkcmFtLmMKQEAgLTU2LDEzICs1NiwxMyBAQAogICovCiBzdGF0aWMgbG9uZyBmaXhlZF9zZHJhbSh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUjsKLQl1MzIgbXNpemUgPSBDRkdfRERSX1NJWkUgKiAxMDI0ICogMTAyNDsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCXUzMiBtc2l6ZSA9IENPTkZJR19TWVNfRERSX1NJWkUgKiAxMDI0ICogMTAyNDsKIAl1MzIgbXNpemVfbG9nMiA9IF9faWxvZzIobXNpemUpOwogCi0JaW0tPnN5c2NvbmYuZGRybGF3WzBdLmJhciA9IENGR19ERFJfU0RSQU1fQkFTRSAgJiAweGZmZmZmMDAwOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICAmIDB4ZmZmZmYwMDA7CiAJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmFyID0gTEJMQVdBUl9FTiB8IChtc2l6ZV9sb2cyIC0gMSk7Ci0JaW0tPnN5c2NvbmYuZGRyY2RyID0gQ0ZHX0REUkNEUl9WQUxVRTsKKwlpbS0+c3lzY29uZi5kZHJjZHIgPSBDT05GSUdfU1lTX0REUkNEUl9WQUxVRTsKIAogCS8qCiAJICogRXJyYXR1bSBERFIzIHJlcXVpcmVzIGEgNTBtcyBkZWxheSBhZnRlciBjbGVhcmluZyBERFJDRFJbRERSX2NmZ10sCkBAIC03MSwyNyArNzEsMjcgQEAKIAl1ZGVsYXkoNTAwMDApOwogCiAJaW0tPmRkci5jc2JuZHNbMF0uY3NibmRzID0gKG1zaXplIC0gMSkgPj4gMjQ7Ci0JaW0tPmRkci5jc19jb25maWdbMF0gPSBDRkdfRERSX0NTMF9DT05GSUc7CisJaW0tPmRkci5jc19jb25maWdbMF0gPSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHOwogCiAJLyogQ3VycmVudGx5IHdlIHVzZSBvbmx5IG9uZSBDUywgc28gZGlzYWJsZSB0aGUgb3RoZXIgYmFuay4gKi8KIAlpbS0+ZGRyLmNzX2NvbmZpZ1sxXSA9IDA7CiAKLQlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ0ZHX0REUl9TRFJBTV9DTEtfQ05UTDsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMyA9IENGR19ERFJfVElNSU5HXzM7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDRkdfRERSX1RJTUlOR18xOwotCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ0ZHX0REUl9USU1JTkdfMjsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMCA9IENGR19ERFJfVElNSU5HXzA7CisJaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NMS19DTlRMOworCWltLT5kZHIudGltaW5nX2NmZ18zID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzM7CisJaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWltLT5kZHIudGltaW5nX2NmZ18wID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzA7CiAKIAlpZiAoaW0tPnBtYy5wbWNjcjEgJiBQTUNDUjFfUE9XRVJfT0ZGKQotCQlpbS0+ZGRyLnNkcmFtX2NmZyA9IENGR19ERFJfU0RSQU1fQ0ZHIHwgU0RSQU1fQ0ZHX0JJOworCQlpbS0+ZGRyLnNkcmFtX2NmZyA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NGRyB8IFNEUkFNX0NGR19CSTsKIAllbHNlCi0JCWltLT5kZHIuc2RyYW1fY2ZnID0gQ0ZHX0REUl9TRFJBTV9DRkc7CisJCWltLT5kZHIuc2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHOwogCi0JaW0tPmRkci5zZHJhbV9jZmcyID0gQ0ZHX0REUl9TRFJBTV9DRkcyOwotCWltLT5kZHIuc2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERTsKLQlpbS0+ZGRyLnNkcmFtX21vZGUyID0gQ0ZHX0REUl9NT0RFMjsKKwlpbS0+ZGRyLnNkcmFtX2NmZzIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcyOworCWltLT5kZHIuc2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREU7CisJaW0tPmRkci5zZHJhbV9tb2RlMiA9IENPTkZJR19TWVNfRERSX01PREUyOwogCi0JaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFJfSU5URVJWQUw7CisJaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENPTkZJR19TWVNfRERSX0lOVEVSVkFMOwogCXN5bmMoKTsKIAogCS8qIGVuYWJsZSBERFIgY29udHJvbGxlciAqLwpAQCAtMTAzLDcgKzEwMyw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXUzMiBtc2l6ZTsKIAogCWlmICgoaW0tPnN5c2NvbmYuaW1tcmJhciAmIElNTVJCQVJfQkFTRV9BRERSKSAhPSAodTMyKWltKQpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzMjNlcmRiL21wYzgzMjNlcmRiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODMyM2VyZGIvbXBjODMyM2VyZGIuYwppbmRleCBmNTIyMGFiLi44NjgwYTE5IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODMyM2VyZGIvbXBjODMyM2VyZGIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODMyM2VyZGIvbXBjODMyM2VyZGIuYwpAQCAtNzUsMTQgKzc1LDE0IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdTMyIG1zaXplID0gMDsKIAogCWlmICgoaW0tPnN5c2NvbmYuaW1tcmJhciAmIElNTVJCQVJfQkFTRV9BRERSKSAhPSAodTMyKSBpbSkKIAkJcmV0dXJuIC0xOwogCiAJLyogRERSIFNEUkFNIC0gTWFpbiBTT0RJTU0gKi8KLQlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ0ZHX0REUl9CQVNFICYgTEFXQkFSX0JBUjsKKwlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ09ORklHX1NZU19ERFJfQkFTRSAmIExBV0JBUl9CQVI7CiAKIAltc2l6ZSA9IGZpeGVkX3NkcmFtKCk7CiAKQEAgLTk1LDEyICs5NSwxMiBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGludCBmaXhlZF9zZHJhbSh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdTMyIG1zaXplID0gMDsKIAl1MzIgZGRyX3NpemU7CiAJdTMyIGRkcl9zaXplX2xvZzI7CiAKLQltc2l6ZSA9IENGR19ERFJfU0laRTsKKwltc2l6ZSA9IENPTkZJR19TWVNfRERSX1NJWkU7CiAJZm9yIChkZHJfc2l6ZSA9IG1zaXplIDw8IDIwLCBkZHJfc2l6ZV9sb2cyID0gMDsKIAkgICAgIChkZHJfc2l6ZSA+IDEpOyBkZHJfc2l6ZSA9IGRkcl9zaXplID4+IDEsIGRkcl9zaXplX2xvZzIrKykgewogCQlpZiAoZGRyX3NpemUgJiAxKSB7CkBAIC0xMDksMTggKzEwOSwxOCBAQAogCX0KIAlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYXIgPQogCSAgICBMQVdBUl9FTiB8ICgoZGRyX3NpemVfbG9nMiAtIDEpICYgTEFXQVJfU0laRSk7Ci0JaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENGR19ERFJfQ0xLX0NOVEw7Ci0JaW0tPmRkci5jc2JuZHNbMF0uY3NibmRzID0gQ0ZHX0REUl9DUzBfQk5EUzsKLQlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENGR19ERFJfQ1MwX0NPTkZJRzsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMCA9IENGR19ERFJfVElNSU5HXzA7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDRkdfRERSX1RJTUlOR18xOwotCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ0ZHX0REUl9USU1JTkdfMjsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMyA9IENGR19ERFJfVElNSU5HXzM7Ci0JaW0tPmRkci5zZHJhbV9jZmcgPSBDRkdfRERSX1NEUkFNX0NGRzsKLQlpbS0+ZGRyLnNkcmFtX2NmZzIgPSBDRkdfRERSX1NEUkFNX0NGRzI7Ci0JaW0tPmRkci5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFOwotCWltLT5kZHIuc2RyYW1fbW9kZTIgPSBDRkdfRERSX01PREUyOwotCWltLT5kZHIuc2RyYW1faW50ZXJ2YWwgPSBDRkdfRERSX0lOVEVSVkFMOworCWltLT5kZHIuc2RyYW1fY2xrX2NudGwgPSBDT05GSUdfU1lTX0REUl9DTEtfQ05UTDsKKwlpbS0+ZGRyLmNzYm5kc1swXS5jc2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUzsKKwlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENPTkZJR19TWVNfRERSX0NTMF9DT05GSUc7CisJaW0tPmRkci50aW1pbmdfY2ZnXzAgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMDsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJaW0tPmRkci50aW1pbmdfY2ZnXzMgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMzsKKwlpbS0+ZGRyLnNkcmFtX2NmZyA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NGRzsKKwlpbS0+ZGRyLnNkcmFtX2NmZzIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcyOworCWltLT5kZHIuc2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREU7CisJaW0tPmRkci5zZHJhbV9tb2RlMiA9IENPTkZJR19TWVNfRERSX01PREUyOworCWltLT5kZHIuc2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAl1ZGVsYXkoMjAwKTsKIApAQCAtMTM3LDI4ICsxMzcsMjggQEAKIAogc3RhdGljIHN0cnVjdCBwY2lfcmVnaW9uIHBjaV9yZWdpb25zW10gPSB7CiAJewotCQlidXNfc3RhcnQ6IENGR19QQ0kxX01FTV9CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJMV9NRU1fUEhZUywKLQkJc2l6ZTogQ0ZHX1BDSTFfTUVNX1NJWkUsCisJCWJ1c19zdGFydDogQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCXNpemU6IENPTkZJR19TWVNfUENJMV9NRU1fU0laRSwKIAkJZmxhZ3M6IFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9QUkVGRVRDSAogCX0sCiAJewotCQlidXNfc3RhcnQ6IENGR19QQ0kxX01NSU9fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSTFfTU1JT19QSFlTLAotCQlzaXplOiBDRkdfUENJMV9NTUlPX1NJWkUsCisJCWJ1c19zdGFydDogQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0kxX01NSU9fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0kxX01NSU9fU0laRSwKIAkJZmxhZ3M6IFBDSV9SRUdJT05fTUVNCiAJfSwKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSTFfSU9fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSTFfSU9fUEhZUywKLQkJc2l6ZTogQ0ZHX1BDSTFfSU9fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsCisJCXNpemU6IENPTkZJR19TWVNfUENJMV9JT19TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9JTwogCX0KIH07CiAKIHZvaWQgcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY2xrODN4eF90ICpjbGsgPSAodm9sYXRpbGUgY2xrODN4eF90ICopJmltbXItPmNsazsKIAl2b2xhdGlsZSBsYXc4M3h4X3QgKnBjaV9sYXcgPSBpbW1yLT5zeXNjb25mLnBjaWxhdzsKIAlzdHJ1Y3QgcGNpX3JlZ2lvbiAqcmVnW10gPSB7IHBjaV9yZWdpb25zIH07CkBAIC0xNjcsMTAgKzE2NywxMCBAQAogCWNsay0+b2NjciB8PSAweGUwMDAwMDAwOwogCiAJLyogQ29uZmlndXJlIFBDSSBMb2NhbCBBY2Nlc3MgV2luZG93cyAqLwotCXBjaV9sYXdbMF0uYmFyID0gQ0ZHX1BDSTFfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMF0uYmFyID0gQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzBdLmFyID0gTEJMQVdBUl9FTiB8IExCTEFXQVJfNTEyTUI7CiAKLQlwY2lfbGF3WzFdLmJhciA9IENGR19QQ0kxX0lPX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMV0uYmFyID0gQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMV0uYXIgPSBMQkxBV0FSX0VOIHwgTEJMQVdBUl8xTUI7CiAKIAltcGM4M3h4X3BjaV9pbml0KDEsIHJlZywgMCk7CkBAIC0xODYsNyArMTg2LDcgQEAKIH0KICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfSTJDX01BQ19PRkZTRVQpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0kyQ19NQUNfT0ZGU0VUKQogaW50IG1hY19yZWFkX2Zyb21fZWVwcm9tKHZvaWQpCiB7CiAJdWNoYXIgYnVmWzI4XTsKQEAgLTE5Niw5ICsxOTYsOSBAQAogCXVuc2lnbmVkIGNoYXIgZW5ldHZhclszMl07CiAKIAkvKiBSZWFkIE1BQyBhZGRyZXNzZXMgZnJvbSBFRVBST00gKi8KLQlpZiAoZWVwcm9tX3JlYWQoQ0ZHX0kyQ19FRVBST01fQUREUiwgQ0ZHX0kyQ19NQUNfT0ZGU0VULCBidWYsIDI4KSkgeworCWlmIChlZXByb21fcmVhZChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgQ09ORklHX1NZU19JMkNfTUFDX09GRlNFVCwgYnVmLCAyOCkpIHsKIAkJcHJpbnRmKCJcbkVFUFJPTSBAIDB4JTAyeCByZWFkIEZBSUxFRCEhIVxuIiwKLQkJICAgICAgIENGR19JMkNfRUVQUk9NX0FERFIpOworCQkgICAgICAgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIpOwogCX0gZWxzZSB7CiAJCWlmIChjcmMzMihjcmMsIGJ1ZiwgMjQpID09ICoodW5zaWduZWQgaW50ICopJmJ1ZlsyNF0pIHsKIAkJCXByaW50ZigiUmVhZGluZyBNQUMgZnJvbSBFRVBST01cbiIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzMnhlbWRzL21wYzgzMnhlbWRzLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODMyeGVtZHMvbXBjODMyeGVtZHMuYwppbmRleCA0YWQ2ZTlkLi5kNGQ0NDc5IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODMyeGVtZHMvbXBjODMyeGVtZHMuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODMyeGVtZHMvbXBjODMyeGVtZHMuYwpAQCAtNzYsNyArNzYsNyBAQAogCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgdTggKmJjc3IgPSAodm9sYXRpbGUgdTggKilDRkdfQkNTUjsKKwl2b2xhdGlsZSB1OCAqYmNzciA9ICh2b2xhdGlsZSB1OCAqKUNPTkZJR19TWVNfQkNTUjsKIAogCS8qIEVuYWJsZSBmbGFzaCB3cml0ZSAqLwogCWJjc3JbOV0gJj0gfjB4MDg7CkBAIC05NiwxNCArOTYsMTQgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1MzIgbXNpemUgPSAwOwogCiAJaWYgKChpbS0+c3lzY29uZi5pbW1yYmFyICYgSU1NUkJBUl9CQVNFX0FERFIpICE9ICh1MzIpIGltKQogCQlyZXR1cm4gLTE7CiAKIAkvKiBERFIgU0RSQU0gLSBNYWluIFNPRElNTSAqLwotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX0JBU0UgJiBMQVdCQVJfQkFSOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9CQVNFICYgTEFXQkFSX0JBUjsKIAogCW1zaXplID0gZml4ZWRfc2RyYW0oKTsKIApAQCAtMTE2LDEyICsxMTYsMTIgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBpbnQgZml4ZWRfc2RyYW0odm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXUzMiBtc2l6ZSA9IDA7CiAJdTMyIGRkcl9zaXplOwogCXUzMiBkZHJfc2l6ZV9sb2cyOwogCi0JbXNpemUgPSBDRkdfRERSX1NJWkU7CisJbXNpemUgPSBDT05GSUdfU1lTX0REUl9TSVpFOwogCWZvciAoZGRyX3NpemUgPSBtc2l6ZSA8PCAyMCwgZGRyX3NpemVfbG9nMiA9IDA7CiAJICAgICAoZGRyX3NpemUgPiAxKTsgZGRyX3NpemUgPSBkZHJfc2l6ZSA+PiAxLCBkZHJfc2l6ZV9sb2cyKyspIHsKIAkJaWYgKGRkcl9zaXplICYgMSkgewpAQCAtMTMwLDIxICsxMzAsMjEgQEAKIAl9CiAJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmFyID0KIAkgICAgTEFXQVJfRU4gfCAoKGRkcl9zaXplX2xvZzIgLSAxKSAmIExBV0FSX1NJWkUpOwotI2lmIChDRkdfRERSX1NJWkUgIT0gMTI4KQorI2lmIChDT05GSUdfU1lTX0REUl9TSVpFICE9IDEyOCkKICN3YXJuaW5nIEN1cnJlbmx5IGFueSBkZHIgc2l6ZSBvdGhlciB0aGFuIDEyOCBpcyBub3Qgc3VwcG9ydGVkCiAjZW5kaWYKLQlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ0ZHX0REUl9DTEtfQ05UTDsKLQlpbS0+ZGRyLmNzYm5kc1swXS5jc2JuZHMgPSBDRkdfRERSX0NTMF9CTkRTOwotCWltLT5kZHIuY3NfY29uZmlnWzBdID0gQ0ZHX0REUl9DUzBfQ09ORklHOwotCWltLT5kZHIudGltaW5nX2NmZ18wID0gQ0ZHX0REUl9USU1JTkdfMDsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWltLT5kZHIudGltaW5nX2NmZ18zID0gQ0ZHX0REUl9USU1JTkdfMzsKLQlpbS0+ZGRyLnNkcmFtX2NmZyA9IENGR19ERFJfU0RSQU1fQ0ZHOwotCWltLT5kZHIuc2RyYW1fY2ZnMiA9IENGR19ERFJfU0RSQU1fQ0ZHMjsKLQlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDRkdfRERSX01PREU7Ci0JaW0tPmRkci5zZHJhbV9tb2RlMiA9IENGR19ERFJfTU9ERTI7Ci0JaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFJfSU5URVJWQUw7CisJaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENPTkZJR19TWVNfRERSX0NMS19DTlRMOworCWltLT5kZHIuY3NibmRzWzBdLmNzYm5kcyA9IENPTkZJR19TWVNfRERSX0NTMF9CTkRTOworCWltLT5kZHIuY3NfY29uZmlnWzBdID0gQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRzsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMCA9IENPTkZJR19TWVNfRERSX1RJTUlOR18wOworCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzE7CisJaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMjsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMyA9IENPTkZJR19TWVNfRERSX1RJTUlOR18zOworCWltLT5kZHIuc2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHOworCWltLT5kZHIuc2RyYW1fY2ZnMiA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NGRzI7CisJaW0tPmRkci5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERTsKKwlpbS0+ZGRyLnNkcmFtX21vZGUyID0gQ09ORklHX1NZU19ERFJfTU9ERTI7CisJaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENPTkZJR19TWVNfRERSX0lOVEVSVkFMOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCXVkZWxheSgyMDApOwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODMyeGVtZHMvcGNpLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODMyeGVtZHMvcGNpLmMKaW5kZXggYjAzMDQyMi4uMmE0OGRkMiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzMnhlbWRzL3BjaS5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzJ4ZW1kcy9wY2kuYwpAQCAtNjcsNyArNjcsNyBAQAogCXZvbGF0aWxlIHBjaWN0cmw4M3h4X3QgKnBjaV9jdHJsOwogCXZvbGF0aWxlIHBjaWNvbmY4M3h4X3QgKnBjaV9jb25mOwogCi0JaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJcGNpX2xhdyA9IGltbXItPnN5c2NvbmYucGNpbGF3OwogCXBjaV9wb3QgPSBpbW1yLT5pb3MucG90OwogCXBjaV9jdHJsID0gaW1tci0+cGNpX2N0cmw7CkBAIC05Myw3ICs5Myw3IEBACiAJaG9zZVswXS5maXJzdF9idXNubyA9IDA7CiAJaG9zZVswXS5sYXN0X2J1c25vID0gMHhmZjsKIAlwY2lfc2V0dXBfaW5kaXJlY3QoJmhvc2VbMF0sCi0JCQkgICAoQ0ZHX0lNTVIgKyAweDgzMDApLCAoQ0ZHX0lNTVIgKyAweDgzMDQpKTsKKwkJCSAgIChDT05GSUdfU1lTX0lNTVIgKyAweDgzMDApLCAoQ09ORklHX1NZU19JTU1SICsgMHg4MzA0KSk7CiAJcmVnMTYgPSAweGZmOwogCiAJcGNpX2hvc2VfcmVhZF9jb25maWdfd29yZCgmaG9zZVswXSwgUENJX0JERigwLCAwLCAwKSwKQEAgLTEzNCw3ICsxMzQsNyBAQAogCXUzMiB2YWwzMjsKIAl1MzIgZGV2OwogCi0JaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJY2xrID0gKGNsazgzeHhfdCAqKSAmIGltbXItPmNsazsKIAlwY2lfbGF3ID0gaW1tci0+c3lzY29uZi5wY2lsYXc7CiAJcGNpX3BvdCA9IGltbXItPmlvcy5wb3Q7CkBAIC0xNjEsMTAgKzE2MSwxMCBAQAogCS8qCiAJICogQ29uZmlndXJlIFBDSSBMb2NhbCBBY2Nlc3MgV2luZG93cwogCSAqLwotCXBjaV9sYXdbMF0uYmFyID0gQ0ZHX1BDSV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1swXS5iYXIgPSBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1swXS5hciA9IExBV0FSX0VOIHwgTEFXQVJfU0laRV81MTJNOwogCi0JcGNpX2xhd1sxXS5iYXIgPSBDRkdfUENJX0lPX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMV0uYmFyID0gQ09ORklHX1NZU19QQ0lfSU9fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1sxXS5hciA9IExBV0FSX0VOIHwgTEFXQVJfU0laRV8xTTsKIAogCS8qCkBAIC0xNzIsMjYgKzE3MiwyNiBAQAogCSAqLwogCiAJLyogUENJIG1lbSBzcGFjZSAtIHByZWZldGNoICovCi0JcGNpX3BvdFswXS5wb3RhciA9IChDRkdfUENJX01FTV9CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFswXS5wb2JhciA9IChDRkdfUENJX01FTV9QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CisJcGNpX3BvdFswXS5wb3RhciA9IChDT05GSUdfU1lTX1BDSV9NRU1fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbMF0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzBdLnBvY21yID0KIAkgICAgUE9DTVJfRU4gfCBQT0NNUl9TRSB8IChQT0NNUl9DTV8yNTZNICYgUE9DTVJfQ01fTUFTSyk7CiAKIAkvKiBQQ0kgbW1pbyAtIG5vbi1wcmVmZXRjaCBtZW0gc3BhY2UgKi8KLQlwY2lfcG90WzFdLnBvdGFyID0gKENGR19QQ0lfTU1JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFsxXS5wb2JhciA9IChDRkdfUENJX01NSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbMV0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0lfTU1JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7CisJcGNpX3BvdFsxXS5wb2JhciA9IChDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzFdLnBvY21yID0gUE9DTVJfRU4gfCAoUE9DTVJfQ01fMjU2TSAmIFBPQ01SX0NNX01BU0spOwogCiAJLyogUENJIElPIHNwYWNlICovCi0JcGNpX3BvdFsyXS5wb3RhciA9IChDRkdfUENJX0lPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKLQlwY2lfcG90WzJdLnBvYmFyID0gKENGR19QQ0lfSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbMl0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0lfSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbMl0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0lfSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOwogCXBjaV9wb3RbMl0ucG9jbXIgPSBQT0NNUl9FTiB8IFBPQ01SX0lPIHwgKFBPQ01SX0NNXzFNICYgUE9DTVJfQ01fTUFTSyk7CiAKIAkvKgogCSAqIENvbmZpZ3VyZSBQQ0kgSW5ib3VuZCBUcmFuc2xhdGlvbiBXaW5kb3dzCiAJICovCi0JcGNpX2N0cmxbMF0ucGl0YXIxID0gKENGR19QQ0lfU0xWX01FTV9MT0NBTCA+PiAxMikgJiBQSVRBUl9UQV9NQVNLOwotCXBjaV9jdHJsWzBdLnBpYmFyMSA9IChDRkdfUENJX1NMVl9NRU1fQlVTID4+IDEyKSAmIFBJQkFSX01BU0s7CisJcGNpX2N0cmxbMF0ucGl0YXIxID0gKENPTkZJR19TWVNfUENJX1NMVl9NRU1fTE9DQUwgPj4gMTIpICYgUElUQVJfVEFfTUFTSzsKKwlwY2lfY3RybFswXS5waWJhcjEgPSAoQ09ORklHX1NZU19QQ0lfU0xWX01FTV9CVVMgPj4gMTIpICYgUElCQVJfTUFTSzsKIAlwY2lfY3RybFswXS5waWViYXIxID0gMHgwOwogCXBjaV9jdHJsWzBdLnBpd2FyMSA9CiAJICAgIFBJV0FSX0VOIHwgUElXQVJfUEYgfCBQSVdBUl9SVFRfU05PT1AgfCBQSVdBUl9XVFRfU05PT1AgfApAQCAtMjA5LDMxICsyMDksMzEgQEAKIAogCS8qIFBDSSBtZW1vcnkgcHJlZmV0Y2ggc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlWzBdLnJlZ2lvbnMgKyAwLAotCQkgICAgICAgQ0ZHX1BDSV9NRU1fQkFTRSwKLQkJICAgICAgIENGR19QQ0lfTUVNX1BIWVMsCi0JCSAgICAgICBDRkdfUENJX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fUFJFRkVUQ0gpOworCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fUFJFRkVUQ0gpOwogCiAJLyogUENJIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2VbMF0ucmVnaW9ucyArIDEsCi0JCSAgICAgICBDRkdfUENJX01NSU9fQkFTRSwKLQkJICAgICAgIENGR19QQ0lfTU1JT19QSFlTLCBDRkdfUENJX01NSU9fU0laRSwgUENJX1JFR0lPTl9NRU0pOworCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTU1JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTU1JT19QSFlTLCBDT05GSUdfU1lTX1BDSV9NTUlPX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKIAogCS8qIFBDSSBJTyBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2VbMF0ucmVnaW9ucyArIDIsCi0JCSAgICAgICBDRkdfUENJX0lPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJX0lPX1BIWVMsIENGR19QQ0lfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfSU9fUEhZUywgQ09ORklHX1NZU19QQ0lfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CiAKIAkvKiBTeXN0ZW0gbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZVswXS5yZWdpb25zICsgMywKLQkJICAgICAgIENGR19QQ0lfU0xWX01FTV9MT0NBTCwKLQkJICAgICAgIENGR19QQ0lfU0xWX01FTV9CVVMsCi0JCSAgICAgICBDRkdfUENJX1NMVl9NRU1fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJX1NMVl9NRU1fTE9DQUwsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0JVUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJX1NMVl9NRU1fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJaG9zZVswXS5yZWdpb25fY291bnQgPSA0OwogCiAJcGNpX3NldHVwX2luZGlyZWN0KCZob3NlWzBdLAotCQkJICAgKENGR19JTU1SICsgMHg4MzAwKSwgKENGR19JTU1SICsgMHg4MzA0KSk7CisJCQkgICAoQ09ORklHX1NZU19JTU1SICsgMHg4MzAwKSwgKENPTkZJR19TWVNfSU1NUiArIDB4ODMwNCkpOwogCiAJcGNpX3JlZ2lzdGVyX2hvc2UoaG9zZSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzQ5ZW1kcy9tcGM4MzQ5ZW1kcy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzNDllbWRzL21wYzgzNDllbWRzLmMKaW5kZXggZWY5NDdmZS4uZmE0NDM2MCAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzNDllbWRzL21wYzgzNDllbWRzLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzNDllbWRzL21wYzgzNDllbWRzLmMKQEAgLTQ0LDEyICs0NCwxMiBAQAogCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mICh2b2lkKQogewotCXZvbGF0aWxlIHU4KiBiY3NyID0gKHZvbGF0aWxlIHU4KilDRkdfQkNTUjsKKwl2b2xhdGlsZSB1OCogYmNzciA9ICh2b2xhdGlsZSB1OCopQ09ORklHX1NZU19CQ1NSOwogCiAJLyogRW5hYmxlIGZsYXNoIHdyaXRlICovCiAJYmNzclsxXSAmPSB+MHgwMTsKIAotI2lmZGVmIENGR19VU0VfTVBDODM0WFNZU19VU0JfUEhZCisjaWZkZWYgQ09ORklHX1NZU19VU0VfTVBDODM0WFNZU19VU0JfUEhZCiAJLyogVXNlIFVTQiBQSFkgb24gU1lTIGJvYXJkICovCiAJYmNzcls1XSB8PSAweDAyOwogI2VuZGlmCkBAIC02MSwxNCArNjEsMTQgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXUzMiBtc2l6ZSA9IDA7CiAKIAlpZiAoKGltLT5zeXNjb25mLmltbXJiYXIgJiBJTU1SQkFSX0JBU0VfQUREUikgIT0gKHUzMilpbSkKIAkJcmV0dXJuIC0xOwogCiAJLyogRERSIFNEUkFNIC0gTWFpbiBTT0RJTU0gKi8KLQlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ0ZHX0REUl9CQVNFICYgTEFXQkFSX0JBUjsKKwlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ09ORklHX1NZU19ERFJfQkFTRSAmIExBV0JBUl9CQVI7CiAjaWYgZGVmaW5lZChDT05GSUdfU1BEX0VFUFJPTSkKIAltc2l6ZSA9IHNwZF9zZHJhbSgpOwogI2Vsc2UKQEAgLTk2LDEyICs5NiwxMiBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGludCBmaXhlZF9zZHJhbSh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXUzMiBtc2l6ZSA9IDA7CiAJdTMyIGRkcl9zaXplOwogCXUzMiBkZHJfc2l6ZV9sb2cyOwogCi0JbXNpemUgPSBDRkdfRERSX1NJWkU7CisJbXNpemUgPSBDT05GSUdfU1lTX0REUl9TSVpFOwogCWZvciAoZGRyX3NpemUgPSBtc2l6ZSA8PCAyMCwgZGRyX3NpemVfbG9nMiA9IDA7CiAJICAgICAoZGRyX3NpemUgPiAxKTsKIAkgICAgIGRkcl9zaXplID0gZGRyX3NpemU+PjEsIGRkcl9zaXplX2xvZzIrKykgewpAQCAtMTA5LDM2ICsxMDksMzYgQEAKIAkJCXJldHVybiAtMTsKIAkJfQogCX0KLQlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ0ZHX0REUl9TRFJBTV9CQVNFICYgMHhmZmZmZjAwMDsKKwlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSAmIDB4ZmZmZmYwMDA7CiAJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmFyID0gTEFXQVJfRU4gfCAoKGRkcl9zaXplX2xvZzIgLSAxKSAmIExBV0FSX1NJWkUpOwogCi0jaWYgKENGR19ERFJfU0laRSAhPSAyNTYpCisjaWYgKENPTkZJR19TWVNfRERSX1NJWkUgIT0gMjU2KQogI3dhcm5pbmcgQ3VycmVubHkgYW55IGRkciBzaXplIG90aGVyIHRoYW4gMjU2IGlzIG5vdCBzdXBwb3J0ZWQKICNlbmRpZgogI2lmZGVmIENPTkZJR19ERFJfSUkKLQlpbS0+ZGRyLmNzYm5kc1syXS5jc2JuZHMgPSBDRkdfRERSX0NTMl9CTkRTOwotCWltLT5kZHIuY3NfY29uZmlnWzJdID0gQ0ZHX0REUl9DUzJfQ09ORklHOwotCWltLT5kZHIudGltaW5nX2NmZ18wID0gQ0ZHX0REUl9USU1JTkdfMDsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWltLT5kZHIudGltaW5nX2NmZ18zID0gQ0ZHX0REUl9USU1JTkdfMzsKLQlpbS0+ZGRyLnNkcmFtX2NmZyA9IENGR19ERFJfU0RSQU1fQ0ZHOwotCWltLT5kZHIuc2RyYW1fY2ZnMiA9IENGR19ERFJfU0RSQU1fQ0ZHMjsKLQlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDRkdfRERSX01PREU7Ci0JaW0tPmRkci5zZHJhbV9tb2RlMiA9IENGR19ERFJfTU9ERTI7Ci0JaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFJfSU5URVJWQUw7Ci0JaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENGR19ERFJfQ0xLX0NOVEw7CisJaW0tPmRkci5jc2JuZHNbMl0uY3NibmRzID0gQ09ORklHX1NZU19ERFJfQ1MyX0JORFM7CisJaW0tPmRkci5jc19jb25maWdbMl0gPSBDT05GSUdfU1lTX0REUl9DUzJfQ09ORklHOworCWltLT5kZHIudGltaW5nX2NmZ18wID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzA7CisJaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWltLT5kZHIudGltaW5nX2NmZ18zID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzM7CisJaW0tPmRkci5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkc7CisJaW0tPmRkci5zZHJhbV9jZmcyID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHMjsKKwlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDT05GSUdfU1lTX0REUl9NT0RFOworCWltLT5kZHIuc2RyYW1fbW9kZTIgPSBDT05GSUdfU1lTX0REUl9NT0RFMjsKKwlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CisJaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENPTkZJR19TWVNfRERSX0NMS19DTlRMOwogI2Vsc2UKIAlpbS0+ZGRyLmNzYm5kc1syXS5jc2JuZHMgPSAweDAwMDAwMDBmOwotCWltLT5kZHIuY3NfY29uZmlnWzJdID0gQ0ZHX0REUl9DT05GSUc7CisJaW0tPmRkci5jc19jb25maWdbMl0gPSBDT05GSUdfU1lTX0REUl9DT05GSUc7CiAKIAkvKiBjdXJyZW50bHkgd2UgdXNlIG9ubHkgb25lIENTLCBzbyBkaXNhYmxlIHRoZSBvdGhlciBiYW5rcyAqLwogCWltLT5kZHIuY3NfY29uZmlnWzBdID0gMDsKIAlpbS0+ZGRyLmNzX2NvbmZpZ1sxXSA9IDA7CiAJaW0tPmRkci5jc19jb25maWdbM10gPSAwOwogCi0JaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDRkdfRERSX1RJTUlOR18xOwotCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ0ZHX0REUl9USU1JTkdfMjsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CiAKIAlpbS0+ZGRyLnNkcmFtX2NmZyA9CiAJCVNEUkFNX0NGR19TUkVOCkBAIC0xNTAsOSArMTUwLDkgQEAKIAkvKiBmb3IgMzItYml0IG1vZGUgYnVyc3QgbGVuZ3RoIGlzIDggKi8KIAlpbS0+ZGRyLnNkcmFtX2NmZyB8PSAoU0RSQU1fQ0ZHXzMyX0JFIHwgU0RSQU1fQ0ZHXzhfQkUpOwogI2VuZGlmCi0JaW0tPmRkci5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFOworCWltLT5kZHIuc2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREU7CiAKLQlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKKwlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CiAjZW5kaWYKIAl1ZGVsYXkoMjAwKTsKIApAQCAtMTYwLDcgKzE2MCw3IEBACiAJaW0tPmRkci5zZHJhbV9jZmcgfD0gU0RSQU1fQ0ZHX01FTV9FTjsKIAlyZXR1cm4gbXNpemU7CiB9Ci0jZW5kaWYvKiFDRkdfU1BEX0VFUFJPTSovCisjZW5kaWYvKiFDT05GSUdfU1lTX1NQRF9FRVBST00qLwogCiAKIGludCBjaGVja2JvYXJkICh2b2lkKQpAQCAtMTgxLDQxICsxODEsNDEgQEAKIC8qCiAgKiBpZiBNUEM4MzQ5RU1EUyBpcyBzb2xkZXJlZCB3aXRoIFNEUkFNCiAgKi8KLSNpZiBkZWZpbmVkKENGR19CUjJfUFJFTElNKSAgXAotCSYmIGRlZmluZWQoQ0ZHX09SMl9QUkVMSU0pIFwKLQkmJiBkZWZpbmVkKENGR19MQkxBV0JBUjJfUFJFTElNKSBcCi0JJiYgZGVmaW5lZChDRkdfTEJMQVdBUjJfUFJFTElNKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjJfUFJFTElNKSAgXAorCSYmIGRlZmluZWQoQ09ORklHX1NZU19PUjJfUFJFTElNKSBcCisJJiYgZGVmaW5lZChDT05GSUdfU1lTX0xCTEFXQkFSMl9QUkVMSU0pIFwKKwkmJiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdBUjJfUFJFTElNKQogLyoKICAqIEluaXRpYWxpemUgU0RSQU0gbWVtb3J5IG9uIHRoZSBMb2NhbCBCdXMuCiAgKi8KIAogdm9pZCBzZHJhbV9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbGJ1czgzeHhfdCAqbGJjPSAmaW1tYXAtPmxidXM7Ci0JdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopQ0ZHX0xCQ19TRFJBTV9CQVNFOworCXVpbnQgKnNkcmFtX2FkZHIgPSAodWludCAqKUNPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0U7CiAKIAkvKgogCSAqIFNldHVwIFNEUkFNIEJhc2UgYW5kIE9wdGlvbiBSZWdpc3RlcnMsIGFscmVhZHkgZG9uZSBpbiBjcHVfaW5pdC5jCiAJICovCiAKIAkvKiBzZXR1cCBtdHJwdCwgbHNydCBhbmQgbGJjciBmb3IgTEIgYnVzICovCi0JbGJjLT5sYmNyID0gQ0ZHX0xCQ19MQkNSOwotCWxiYy0+bXJ0cHIgPSBDRkdfTEJDX01SVFBSOwotCWxiYy0+bHNydCA9IENGR19MQkNfTFNSVDsKKwlsYmMtPmxiY3IgPSBDT05GSUdfU1lTX0xCQ19MQkNSOworCWxiYy0+bXJ0cHIgPSBDT05GSUdfU1lTX0xCQ19NUlRQUjsKKwlsYmMtPmxzcnQgPSBDT05GSUdfU1lTX0xCQ19MU1JUOwogCWFzbSgic3luYyIpOwogCiAJLyoKIAkgKiBDb25maWd1cmUgdGhlIFNEUkFNIGNvbnRyb2xsZXIgTWFjaGluZSBNb2RlIFJlZ2lzdGVyLgogCSAqLwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzU7IC8qIDB4NDA2MzY3MzM7IG5vcm1hbCBvcGVyYXRpb24gKi8KKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfNTsgLyogMHg0MDYzNjczMzsgbm9ybWFsIG9wZXJhdGlvbiAqLwogCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfMTsgLyogMHg2ODYzNjczMzsgcHJlY2hhcmdlIGFsbCB0aGUgYmFua3MgKi8KKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfMTsgLyogMHg2ODYzNjczMzsgcHJlY2hhcmdlIGFsbCB0aGUgYmFua3MgKi8KIAlhc20oInN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJdWRlbGF5KDEwMCk7CiAKLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl8yOyAvKiAweDQ4NjM2NzMzOyBhdXRvIHJlZnJlc2ggKi8KKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfMjsgLyogMHg0ODYzNjczMzsgYXV0byByZWZyZXNoICovCiAJYXNtKCJzeW5jIik7CiAJLyoxIHRpbWVzKi8KIAkqc2RyYW1fYWRkciA9IDB4ZmY7CkBAIC0yNDMsMTIgKzI0MywxMiBAQAogCXVkZWxheSgxMDApOwogCiAJLyogMHg1ODYzNjczMzsgbW9kZSByZWdpc3RlciB3cml0ZSBvcGVyYXRpb24gKi8KLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl80OworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl80OwogCWFzbSgic3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAl1ZGVsYXkoMTAwKTsKIAotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzU7IC8qIDB4NDA2MzY3MzM7IG5vcm1hbCBvcGVyYXRpb24gKi8KKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfNTsgLyogMHg0MDYzNjczMzsgbm9ybWFsIG9wZXJhdGlvbiAqLwogCWFzbSgic3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAl1ZGVsYXkoMTAwKTsKQEAgLTI3MywxNCArMjczLDE0IEBACiAKIHZvaWQgc3BpX2NzX2FjdGl2YXRlKHN0cnVjdCBzcGlfc2xhdmUgKnNsYXZlKQogewotCXZvbGF0aWxlIGdwaW84M3h4X3QgKmlvcGQgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5ncGlvWzBdOworCXZvbGF0aWxlIGdwaW84M3h4X3QgKmlvcGQgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+Z3Bpb1swXTsKIAogCWlvcGQtPmRhdCAmPSB+U1BJX0NTX01BU0s7CiB9CiAKIHZvaWQgc3BpX2NzX2RlYWN0aXZhdGUoc3RydWN0IHNwaV9zbGF2ZSAqc2xhdmUpCiB7Ci0Jdm9sYXRpbGUgZ3BpbzgzeHhfdCAqaW9wZCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmdwaW9bMF07CisJdm9sYXRpbGUgZ3BpbzgzeHhfdCAqaW9wZCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5ncGlvWzBdOwogCiAJaW9wZC0+ZGF0IHw9ICBTUElfQ1NfTUFTSzsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzQ5ZW1kcy9wY2kuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzQ5ZW1kcy9wY2kuYwppbmRleCA5YzE5ZTMwLi5hZDdiZjVkIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODM0OWVtZHMvcGNpLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzNDllbWRzL3BjaS5jCkBAIC0zMywyMSArMzMsMjEgQEAKIAogc3RhdGljIHN0cnVjdCBwY2lfcmVnaW9uIHBjaTFfcmVnaW9uc1tdID0gewogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJMV9NRU1fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSTFfTUVNX1BIWVMsCi0JCXNpemU6IENGR19QQ0kxX01FTV9TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAorCQlzaXplOiBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fUFJFRkVUQ0gKIAl9LAogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJMV9JT19CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJMV9JT19QSFlTLAotCQlzaXplOiBDRkdfUENJMV9JT19TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMV9JT19CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX0lPCiAJfSwKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSTFfTU1JT19CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJMV9NTUlPX1BIWVMsCi0JCXNpemU6IENGR19QQ0kxX01NSU9fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTLAorCQlzaXplOiBDT05GSUdfU1lTX1BDSTFfTU1JT19TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9NRU0KIAl9LAogfTsKQEAgLTU1LDIxICs1NSwyMSBAQAogI2lmZGVmIENPTkZJR19NUEM4M1hYX1BDSTIKIHN0YXRpYyBzdHJ1Y3QgcGNpX3JlZ2lvbiBwY2kyX3JlZ2lvbnNbXSA9IHsKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSTJfTUVNX0JBU0UsCi0JCXBoeXNfc3RhcnQ6IENGR19QQ0kyX01FTV9QSFlTLAotCQlzaXplOiBDRkdfUENJMl9NRU1fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UsCisJCXBoeXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMl9NRU1fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX1BSRUZFVENICiAJfSwKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSTJfSU9fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSTJfSU9fUEhZUywKLQkJc2l6ZTogQ0ZHX1BDSTJfSU9fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTJfSU9fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMsCisJCXNpemU6IENPTkZJR19TWVNfUENJMl9JT19TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9JTwogCX0sCiAJewotCQlidXNfc3RhcnQ6IENGR19QQ0kyX01NSU9fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSTJfTU1JT19QSFlTLAotCQlzaXplOiBDRkdfUENJMl9NTUlPX1NJWkUsCisJCWJ1c19zdGFydDogQ09ORklHX1NZU19QQ0kyX01NSU9fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0kyX01NSU9fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0kyX01NSU9fU0laRSwKIAkJZmxhZ3M6IFBDSV9SRUdJT05fTUVNCiAJfSwKIH07CkBAIC0xMzUsNyArMTM1LDcgQEAKIAogdm9pZCBwY2lfaW5pdF9ib2FyZCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjbGs4M3h4X3QgKmNsayA9ICh2b2xhdGlsZSBjbGs4M3h4X3QgKikmaW1tci0+Y2xrOwogCXZvbGF0aWxlIGxhdzgzeHhfdCAqcGNpX2xhdyA9IGltbXItPnN5c2NvbmYucGNpbGF3OwogI2lmbmRlZiBDT05GSUdfTVBDODNYWF9QQ0kyCkBAIC0xNTIsMTAgKzE1MiwxMCBAQAogCXVkZWxheSgyMDAwKTsKIAogCS8qIENvbmZpZ3VyZSBQQ0kgTG9jYWwgQWNjZXNzIFdpbmRvd3MgKi8KLQlwY2lfbGF3WzBdLmJhciA9IENGR19QQ0kxX01FTV9QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzBdLmJhciA9IENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1swXS5hciA9IExBV0FSX0VOIHwgTEFXQVJfU0laRV8xRzsKIAotCXBjaV9sYXdbMV0uYmFyID0gQ0ZHX1BDSTFfSU9fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1sxXS5iYXIgPSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1sxXS5hciA9IExBV0FSX0VOIHwgTEFXQVJfU0laRV80TTsKIAogCXVkZWxheSgyMDAwKTsKQEAgLTE3MCw3ICsxNzAsNyBAQAogI2Vsc2UKIHZvaWQgcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY2xrODN4eF90ICpjbGsgPSAodm9sYXRpbGUgY2xrODN4eF90ICopJmltbXItPmNsazsKIAl2b2xhdGlsZSBsYXc4M3h4X3QgKnBjaV9sYXcgPSBpbW1yLT5zeXNjb25mLnBjaWxhdzsKIAl2b2xhdGlsZSBwY2ljdHJsODN4eF90ICpwY2lfY3RybCA9ICZpbW1yLT5wY2lfY3RybFswXTsKQEAgLTE4MSwxMCArMTgxLDEwIEBACiAJdWRlbGF5KDIwMDApOwogCiAJLyogQ29uZmlndXJlIFBDSSBMb2NhbCBBY2Nlc3MgV2luZG93cyAqLwotCXBjaV9sYXdbMF0uYmFyID0gQ0ZHX1BDSTFfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMF0uYmFyID0gQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzBdLmFyID0gTEFXQVJfRU4gfCBMQVdBUl9TSVpFXzFHOwogCi0JcGNpX2xhd1sxXS5iYXIgPSBDRkdfUENJMV9JT19QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzFdLmJhciA9IENPTkZJR19TWVNfUENJMV9JT19QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzFdLmFyID0gTEFXQVJfRU4gfCBMQVdBUl9TSVpFXzRNOwogCiAJdWRlbGF5KDIwMDApOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzNDlpdHgvbXBjODM0OWl0eC5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzNDlpdHgvbXBjODM0OWl0eC5jCmluZGV4IDBhMjBlMmIuLjMxNjk1MzYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzQ5aXR4L21wYzgzNDlpdHguYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODM0OWl0eC9tcGM4MzQ5aXR4LmMKQEAgLTQyLDExICs0MiwxMSBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGludCBmaXhlZF9zZHJhbSh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdTMyIGRkcl9zaXplOwkJLyogVGhlIHNpemUgb2YgUkFNLCBpbiBieXRlcyAqLwogCXUzMiBkZHJfc2l6ZV9sb2cyID0gMDsKIAotCWZvciAoZGRyX3NpemUgPSBDRkdfRERSX1NJWkUgKiAweDEwMDAwMDsgZGRyX3NpemUgPiAxOyBkZHJfc2l6ZSA+Pj0gMSkgeworCWZvciAoZGRyX3NpemUgPSBDT05GSUdfU1lTX0REUl9TSVpFICogMHgxMDAwMDA7IGRkcl9zaXplID4gMTsgZGRyX3NpemUgPj49IDEpIHsKIAkJaWYgKGRkcl9zaXplICYgMSkgewogCQkJcmV0dXJuIC0xOwogCQl9CkBAIC01NSwxMSArNTUsMTEgQEAKIAogCWltLT5zeXNjb25mLmRkcmxhd1swXS5hciA9CiAJICAgIExBV0FSX0VOIHwgKChkZHJfc2l6ZV9sb2cyIC0gMSkgJiBMQVdBUl9TSVpFKTsKLQlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ0ZHX0REUl9TRFJBTV9CQVNFICYgMHhmZmZmZjAwMDsKKwlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSAmIDB4ZmZmZmYwMDA7CiAKIAkvKiBPbmx5IG9uZSBDUzAgZm9yIEREUiAqLwogCWltLT5kZHIuY3NibmRzWzBdLmNzYm5kcyA9IDB4MDAwMDAwMGY7Ci0JaW0tPmRkci5jc19jb25maWdbMF0gPSBDRkdfRERSX0NPTkZJRzsKKwlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENPTkZJR19TWVNfRERSX0NPTkZJRzsKIAogCWRlYnVnKCJjczBfYm5kcyA9IDB4JTA4eFxuIiwgaW0tPmRkci5jc2JuZHNbMF0uY3NibmRzKTsKIAlkZWJ1ZygiY3MwX2NvbmZpZyA9IDB4JTA4eFxuIiwgaW0tPmRkci5jc19jb25maWdbMF0pOwpAQCAtNjcsMTUgKzY3LDE1IEBACiAJZGVidWcoIkREUjpiYXI9MHglMDh4XG4iLCBpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyKTsKIAlkZWJ1ZygiRERSOmFyPTB4JTA4eFxuIiwgaW0tPnN5c2NvbmYuZGRybGF3WzBdLmFyKTsKIAotCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7LyogV2FzICIyIDw8IFRJTUlOR19DRkcyX1dSX0RBVEFfREVMQVlfU0hJRlQiICovCisJaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOy8qIFdhcyAiMiA8PCBUSU1JTkdfQ0ZHMl9XUl9EQVRBX0RFTEFZX1NISUZUIiAqLwogCWltLT5kZHIuc2RyYW1fY2ZnID0gU0RSQU1fQ0ZHX1NSRU4gfCBTRFJBTV9DRkdfU0RSQU1fVFlQRV9ERFIxOwogCWltLT5kZHIuc2RyYW1fbW9kZSA9CiAJICAgICgweDAwMDAgPDwgU0RSQU1fTU9ERV9FU0RfU0hJRlQpIHwgKDB4MDAzMiA8PCBTRFJBTV9NT0RFX1NEX1NISUZUKTsKIAlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0KIAkgICAgKDB4MDQxMCA8PCBTRFJBTV9JTlRFUlZBTF9SRUZJTlRfU0hJRlQpIHwgKDB4MDEwMCA8PAogCQkJCQkJICAgICAgIFNEUkFNX0lOVEVSVkFMX0JTVE9QUkVfU0hJRlQpOwotCWltLT5kZHIuc2RyYW1fY2xrX2NudGwgPSBDRkdfRERSX1NEUkFNX0NMS19DTlRMOworCWltLT5kZHIuc2RyYW1fY2xrX2NudGwgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9DTEtfQ05UTDsKIAogCXVkZWxheSgyMDApOwogCkBAIC04Nyw3ICs4Nyw3IEBACiAJZGVidWcoIkREUjpzZHJhbV9pbnRlcnZhbD0weCUwOHhcbiIsIGltLT5kZHIuc2RyYW1faW50ZXJ2YWwpOwogCWRlYnVnKCJERFI6c2RyYW1fY2ZnPTB4JTA4eFxuIiwgaW0tPmRkci5zZHJhbV9jZmcpOwogCi0JcmV0dXJuIENGR19ERFJfU0laRTsKKwlyZXR1cm4gQ09ORklHX1NZU19ERFJfU0laRTsKIH0KICNlbmRpZgogCkBAIC0xMzAsNyArMTMwLDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1MzIgbXNpemUgPSAwOwogI2lmZGVmIENPTkZJR19ERFJfRUNDCiAJdm9sYXRpbGUgZGRyODN4eF90ICpkZHIgPSAmaW0tPmRkcjsKQEAgLTE0MCw3ICsxNDAsNyBAQAogCQlyZXR1cm4gLTE7CiAKIAkvKiBERFIgU0RSQU0gLSBNYWluIFNPRElNTSAqLwotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX0JBU0UgJiBMQVdCQVJfQkFSOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9CQVNFICYgTEFXQkFSX0JBUjsKICNpZmRlZiBDT05GSUdfU1BEX0VFUFJPTQogCW1zaXplID0gc3BkX3NkcmFtKCk7CiAjZWxzZQpAQCAtMTk2LDcgKzE5Niw3IEBACiAJICAgZG9uJ3QgZW5hYmxlIGNvbXBhY3QgZmxhc2ggZm9yIFUtQm9vdC4KIAkgKi8KIAotCXZzYzczODVfY3B1Y3RybCA9ICh2b2xhdGlsZSB1MzIgKikoQ0ZHX1ZTQzczODVfQkFTRSArIDB4MWMwYzApOworCXZzYzczODVfY3B1Y3RybCA9ICh2b2xhdGlsZSB1MzIgKikoQ09ORklHX1NZU19WU0M3Mzg1X0JBU0UgKyAweDFjMGMwKTsKIAkqdnNjNzM4NV9jcHVjdHJsIHw9IDB4MGM7CiAjZW5kaWYKIApAQCAtMjIwLDExICsyMjAsMTEgQEAKIAkJMHhmZmZmZmMwMCwgMHhmZmZmZmMwMCwgMHhmZmZmZmMwMCwgMHhmZmZmZmMwMSwKIAkJMHhmZmZmZmMwMCwgMHhmZmZmZmMwMCwgMHhmZmZmZmMwMCwgMHhmZmZmZmMwMQogCX07Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBsYnVzODN4eF90ICpsYnVzID0gJmltbWFwLT5sYnVzOwogCi0JbGJ1cy0+YmFua1szXS5iciA9IENGR19CUjNfUFJFTElNOwotCWxidXMtPmJhbmtbM10ub3IgPSBDRkdfT1IzX1BSRUxJTTsKKwlsYnVzLT5iYW5rWzNdLmJyID0gQ09ORklHX1NZU19CUjNfUFJFTElNOworCWxidXMtPmJhbmtbM10ub3IgPSBDT05GSUdfU1lTX09SM19QUkVMSU07CiAKIAkvKiBQcm9ncmFtIHRoZSBNQU1SLiBSRkVOPTAsIE9QPTAwLCBVV1BMPTEsIEFNPTAwMCwgRFM9MDEsIEcwQ0w9MDAwLAogCSAgIEdQTDQ9MCwgUkxGPTAwMDEsIFdMRj0wMDAxLCBUTEY9MDAwMSwgTUFEPTAwMDAwMApAQCAtMjY1LDI2ICsyNjUsMjYgQEAKIAl1bnNpZ25lZCBpbnQgb3JpZ19idXMgPSBpMmNfZ2V0X2J1c19udW0oKTsKIAl1OCBpMmNfZGF0YTsKIAotI2lmZGVmIENGR19JMkNfUlRDX0FERFIKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19SVENfQUREUgogCXU4IGRzMTMzOV9kYXRhWzE3XTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUgorI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCiAJc3RhdGljIHU4IGVlcHJvbV9kYXRhW10gPQkvKiBIUkNXIGRhdGEgKi8KIAl7CiAJCTB4QUEsIDB4NTUsIDB4QUEsICAgICAgIC8qIFByZWFtYmxlICovCiAJCTB4N0MsCQkgICAgICAgIC8qIEFDUz0wLCBCWVRFX0VOPTExMTEsIENPTlQ9MSAqLwogCQkweDAyLCAweDQwLAkgICAgICAgIC8qIFJDV0wgQUREUj0weDBfMDkwMCAqLwotCQkoQ0ZHX0hSQ1dfTE9XID4+IDI0KSAmIDB4RkYsCi0JCShDRkdfSFJDV19MT1cgPj4gMTYpICYgMHhGRiwKLQkJKENGR19IUkNXX0xPVyA+PiA4KSAmIDB4RkYsCi0JCUNGR19IUkNXX0xPVyAmIDB4RkYsCisJCShDT05GSUdfU1lTX0hSQ1dfTE9XID4+IDI0KSAmIDB4RkYsCisJCShDT05GSUdfU1lTX0hSQ1dfTE9XID4+IDE2KSAmIDB4RkYsCisJCShDT05GSUdfU1lTX0hSQ1dfTE9XID4+IDgpICYgMHhGRiwKKwkJQ09ORklHX1NZU19IUkNXX0xPVyAmIDB4RkYsCiAJCTB4N0MsCQkgICAgICAgIC8qIEFDUz0wLCBCWVRFX0VOPTExMTEsIENPTlQ9MSAqLwogCQkweDAyLCAweDQxLAkgICAgICAgIC8qIFJDV0ggQUREUj0weDBfMDkwNCAqLwotCQkoQ0ZHX0hSQ1dfSElHSCA+PiAyNCkgJiAweEZGLAotCQkoQ0ZHX0hSQ1dfSElHSCA+PiAxNikgJiAweEZGLAotCQkoQ0ZHX0hSQ1dfSElHSCA+PiA4KSAmIDB4RkYsCi0JCUNGR19IUkNXX0hJR0ggJiAweEZGCisJCShDT05GSUdfU1lTX0hSQ1dfSElHSCA+PiAyNCkgJiAweEZGLAorCQkoQ09ORklHX1NZU19IUkNXX0hJR0ggPj4gMTYpICYgMHhGRiwKKwkJKENPTkZJR19TWVNfSFJDV19ISUdIID4+IDgpICYgMHhGRiwKKwkJQ09ORklHX1NZU19IUkNXX0hJR0ggJiAweEZGCiAJfTsKIAogCXU4IGRhdGFbc2l6ZW9mKGVlcHJvbV9kYXRhKV07CkBAIC0yOTIsMjIgKzI5MiwyMiBAQAogCiAJcHJpbnRmKCJCb2FyZCByZXZpc2lvbjogIik7CiAJaTJjX3NldF9idXNfbnVtKDEpOwotCWlmIChpMmNfcmVhZChDRkdfSTJDXzg1NzRBX0FERFIyLCAwLCAwLCAmaTJjX2RhdGEsIHNpemVvZihpMmNfZGF0YSkpID09IDApCisJaWYgKGkyY19yZWFkKENPTkZJR19TWVNfSTJDXzg1NzRBX0FERFIyLCAwLCAwLCAmaTJjX2RhdGEsIHNpemVvZihpMmNfZGF0YSkpID09IDApCiAJCXByaW50ZigiJXUuJXUgKFBDRjg0NzVBKVxuIiwgKGkyY19kYXRhICYgMHgwMikgPj4gMSwgaTJjX2RhdGEgJiAweDAxKTsKLQllbHNlIGlmIChpMmNfcmVhZChDRkdfSTJDXzg1NzRfQUREUjIsIDAsIDAsICZpMmNfZGF0YSwgc2l6ZW9mKGkyY19kYXRhKSkgPT0gMCkKKwllbHNlIGlmIChpMmNfcmVhZChDT05GSUdfU1lTX0kyQ184NTc0X0FERFIyLCAwLCAwLCAmaTJjX2RhdGEsIHNpemVvZihpMmNfZGF0YSkpID09IDApCiAJCXByaW50ZigiJXUuJXUgKFBDRjg0NzUpXG4iLCAgKGkyY19kYXRhICYgMHgwMikgPj4gMSwgaTJjX2RhdGEgJiAweDAxKTsKIAllbHNlIHsKIAkJcHJpbnRmKCJVbmtub3duXG4iKTsKIAkJcmMgPSAxOwogCX0KIAotI2lmZGVmIENGR19JMkNfRUVQUk9NX0FERFIKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgogCWkyY19zZXRfYnVzX251bSgwKTsKIAotCWlmIChpMmNfcmVhZChDRkdfSTJDX0VFUFJPTV9BRERSLCAwLCAyLCBkYXRhLCBzaXplb2YoZGF0YSkpID09IDApIHsKKwlpZiAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIDAsIDIsIGRhdGEsIHNpemVvZihkYXRhKSkgPT0gMCkgewogCQlpZiAobWVtY21wKGRhdGEsIGVlcHJvbV9kYXRhLCBzaXplb2YoZGF0YSkpICE9IDApIHsKIAkJCWlmIChpMmNfd3JpdGUKLQkJCSAgICAoQ0ZHX0kyQ19FRVBST01fQUREUiwgMCwgMiwgZWVwcm9tX2RhdGEsCisJCQkgICAgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAwLCAyLCBlZXByb21fZGF0YSwKIAkJCSAgICAgc2l6ZW9mKGVlcHJvbV9kYXRhKSkgIT0gMCkgewogCQkJCXB1dHMoIkZhaWx1cmUgd3JpdGluZyB0aGUgSFJDVyB0byBFRVBST00gdmlhIEkyQy5cbiIpOwogCQkJCXJjID0gMTsKQEAgLTMxOSwxMCArMzE5LDEwIEBACiAJfQogI2VuZGlmCiAKLSNpZmRlZiBDRkdfSTJDX1JUQ19BRERSCisjaWZkZWYgQ09ORklHX1NZU19JMkNfUlRDX0FERFIKIAlpMmNfc2V0X2J1c19udW0oMSk7CiAKLQlpZiAoaTJjX3JlYWQoQ0ZHX0kyQ19SVENfQUREUiwgMCwgMSwgZHMxMzM5X2RhdGEsIHNpemVvZihkczEzMzlfZGF0YSkpCisJaWYgKGkyY19yZWFkKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCAwLCAxLCBkczEzMzlfZGF0YSwgc2l6ZW9mKGRzMTMzOV9kYXRhKSkKIAkgICAgPT0gMCkgewogCiAJCS8qIFdvcmstYXJvdW5kIGZvciBNUEM4MzQ5RS1tSVRYIGJ1ZyAjMTM2MDEuCkBAIC0zNjYsNyArMzY2LDcgQEAKIAkJICovCiAKIAkJaWYgKGkyY193cml0ZQotCQkgICAgKENGR19JMkNfUlRDX0FERFIsIDAsIDEsIGRzMTMzOV9kYXRhLAorCQkgICAgKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCAwLCAxLCBkczEzMzlfZGF0YSwKIAkJICAgICBzaXplb2YoZHMxMzM5X2RhdGEpKSkgewogCQkJcHV0cygiRmFpbHVyZSB3cml0aW5nIHRvIHRoZSBSVEMgdmlhIEkyQy5cbiIpOwogCQkJcmMgPSAxOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzNDlpdHgvcGNpLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODM0OWl0eC9wY2kuYwppbmRleCBkMzNlZGYzLi5mZDJjMTcyIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODM0OWl0eC9wY2kuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODM0OWl0eC9wY2kuYwpAQCAtMzcsOCArMzcsOCBAQAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKIC8qIFN5c3RlbSBSQU0gbWFwcGVkIHRvIFBDSSBzcGFjZSAqLwotI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fQlVTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9QSFlTCUNGR19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9CVVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9QSFlTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQogCiAjaWZuZGVmIENPTkZJR19QQ0lfUE5QCiBzdGF0aWMgc3RydWN0IHBjaV9jb25maWdfdGFibGUgcGNpX21wYzgzNDlpdHhfY29uZmlnX3RhYmxlW10gPSB7CkBAIC05Miw3ICs5Miw3IEBACiAJdTMyIGRldjsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2U7CiAKLQlpbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAljbGsgPSAoY2xrODN4eF90ICopICYgaW1tci0+Y2xrOwogCXBjaV9sYXcgPSBpbW1yLT5zeXNjb25mLnBjaWxhdzsKIAlwY2lfcG90ID0gaW1tci0+aW9zLnBvdDsKQEAgLTExMSw4ICsxMTEsOCBAQAogI2lmZGVmIENPTkZJR19IQVJEX0kyQwogCWkyY19zZXRfYnVzX251bSgxKTsKIAkvKiBSZWFkIHRoZSBQQ0lfTTY2RU4ganVtcGVyIHNldHRpbmcgKi8KLQlpZiAoKGkyY19yZWFkKENGR19JMkNfODU3NF9BRERSMiwgMCwgMCwgJnJlZzgsIHNpemVvZihyZWc4KSkgPT0gMCkgfHwKLQkgICAgKGkyY19yZWFkKENGR19JMkNfODU3NEFfQUREUjIsIDAsIDAsICZyZWc4LCBzaXplb2YocmVnOCkpID09IDApKSB7CisJaWYgKChpMmNfcmVhZChDT05GSUdfU1lTX0kyQ184NTc0X0FERFIyLCAwLCAwLCAmcmVnOCwgc2l6ZW9mKHJlZzgpKSA9PSAwKSB8fAorCSAgICAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfODU3NEFfQUREUjIsIDAsIDAsICZyZWc4LCBzaXplb2YocmVnOCkpID09IDApKSB7CiAJCWlmIChyZWc4ICYgSTJDXzg1NzRfUENJNjYpCiAJCQljbGstPm9jY3IgPSAweGZmMDAwMDAwOwkvKiA2NiBNSHogUENJICovCiAJCWVsc2UKQEAgLTE1MCwxMCArMTUwLDEwIEBACiAJLyoKIAkgKiBDb25maWd1cmUgUENJIExvY2FsIEFjY2VzcyBXaW5kb3dzCiAJICovCi0JcGNpX2xhd1swXS5iYXIgPSBDRkdfUENJMV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1swXS5iYXIgPSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMF0uYXIgPSBMQVdBUl9FTiB8IExBV0FSX1NJWkVfMUc7CiAKLQlwY2lfbGF3WzFdLmJhciA9IENGR19QQ0kxX0lPX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMV0uYmFyID0gQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMV0uYXIgPSBMQVdBUl9FTiB8IExBV0FSX1NJWkVfMzJNOwogCiAJLyoKQEAgLTE2MSwxOCArMTYxLDE4IEBACiAJICovCiAKIAkvKiBQQ0kxIG1lbSBzcGFjZSAtIHByZWZldGNoICovCi0JcGNpX3BvdFswXS5wb3RhciA9IChDRkdfUENJMV9NRU1fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOwotCXBjaV9wb3RbMF0ucG9iYXIgPSAoQ0ZHX1BDSTFfTUVNX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKKwlwY2lfcG90WzBdLnBvdGFyID0gKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbMF0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CiAJcGNpX3BvdFswXS5wb2NtciA9IFBPQ01SX0VOIHwgUE9DTVJfUFJFRkVUQ0hfRU4gfCBQT0NNUl9DTV8yNTZNOwogCiAJLyogUENJMSBJTyBzcGFjZSAqLwotCXBjaV9wb3RbMV0ucG90YXIgPSAoQ0ZHX1BDSTFfSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOwotCXBjaV9wb3RbMV0ucG9iYXIgPSAoQ0ZHX1BDSTFfSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbMV0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzFdLnBvYmFyID0gKENPTkZJR19TWVNfUENJMV9JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CiAJcGNpX3BvdFsxXS5wb2NtciA9IFBPQ01SX0VOIHwgUE9DTVJfSU8gfCBQT0NNUl9DTV8xNk07CiAKIAkvKiBQQ0kxIG1taW8gLSBub24tcHJlZmV0Y2ggbWVtIHNwYWNlICovCi0JcGNpX3BvdFsyXS5wb3RhciA9IChDRkdfUENJMV9NTUlPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKLQlwY2lfcG90WzJdLnBvYmFyID0gKENGR19QQ0kxX01NSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbMl0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbMl0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0kxX01NSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOwogCXBjaV9wb3RbMl0ucG9jbXIgPSBQT0NNUl9FTiB8IFBPQ01SX0NNXzI1Nk07CiAKIAkvKgpAQCAtMTkyLDE5ICsxOTIsMTkgQEAKIAogCS8qIFBDSSBtZW1vcnkgcHJlZmV0Y2ggc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJICAgICAgIENGR19QQ0kxX01FTV9CQVNFLAotCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1BIWVMsCi0JCSAgICAgICBDRkdfUENJMV9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX1BSRUZFVENIKTsKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX1BSRUZFVENIKTsKIAogCS8qIFBDSSBtZW1vcnkgc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJICAgICAgIENGR19QQ0kxX01NSU9fQkFTRSwKLQkJICAgICAgIENGR19QQ0kxX01NSU9fUEhZUywgQ0ZHX1BDSTFfTU1JT19TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01NSU9fUEhZUywgQ09ORklHX1NZU19QQ0kxX01NSU9fU0laRSwgUENJX1JFR0lPTl9NRU0pOwogCiAJLyogUENJIElPIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCSAgICAgICBDRkdfUENJMV9JT19CQVNFLAotCQkgICAgICAgQ0ZHX1BDSTFfSU9fUEhZUywgQ0ZHX1BDSTFfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19QSFlTLCBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CiAKIAkvKiBTeXN0ZW0gbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDMsCkBAIC0yMTUsNyArMjE1LDcgQEAKIAlob3NlLT5yZWdpb25fY291bnQgPSA0OwogCiAJcGNpX3NldHVwX2luZGlyZWN0KGhvc2UsCi0JCQkgICAoQ0ZHX0lNTVIgKyAweDgzMDApLCAoQ0ZHX0lNTVIgKyAweDgzMDQpKTsKKwkJCSAgIChDT05GSUdfU1lTX0lNTVIgKyAweDgzMDApLCAoQ09ORklHX1NZU19JTU1SICsgMHg4MzA0KSk7CiAKIAlwY2lfcmVnaXN0ZXJfaG9zZShob3NlKTsKIApAQCAtMjUxLDE4ICsyNTEsMTggQEAKIAkgKi8KIAogCS8qIFBDSTIgbWVtIHNwYWNlIC0gcHJlZmV0Y2ggKi8KLQlwY2lfcG90WzNdLnBvdGFyID0gKENGR19QQ0kyX01FTV9CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFszXS5wb2JhciA9IChDRkdfUENJMl9NRU1fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbM10ucG90YXIgPSAoQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7CisJcGNpX3BvdFszXS5wb2JhciA9IChDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzNdLnBvY21yID0gUE9DTVJfRU4gfCBQT0NNUl9QQ0kyIHwgUE9DTVJfUFJFRkVUQ0hfRU4gfCBQT0NNUl9DTV8yNTZNOwogCiAJLyogUENJMiBJTyBzcGFjZSAqLwotCXBjaV9wb3RbNF0ucG90YXIgPSAoQ0ZHX1BDSTJfSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOwotCXBjaV9wb3RbNF0ucG9iYXIgPSAoQ0ZHX1BDSTJfSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbNF0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0kyX0lPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzRdLnBvYmFyID0gKENPTkZJR19TWVNfUENJMl9JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CiAJcGNpX3BvdFs0XS5wb2NtciA9IFBPQ01SX0VOIHwgUE9DTVJfUENJMiB8IFBPQ01SX0lPIHwgUE9DTVJfQ01fMTZNOwogCiAJLyogUENJMiBtbWlvIC0gbm9uLXByZWZldGNoIG1lbSBzcGFjZSAqLwotCXBjaV9wb3RbNV0ucG90YXIgPSAoQ0ZHX1BDSTJfTU1JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFs1XS5wb2JhciA9IChDRkdfUENJMl9NTUlPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKKwlwY2lfcG90WzVdLnBvdGFyID0gKENPTkZJR19TWVNfUENJMl9NTUlPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzVdLnBvYmFyID0gKENPTkZJR19TWVNfUENJMl9NTUlPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzVdLnBvY21yID0gUE9DTVJfRU4gfCBQT0NNUl9QQ0kyIHwgUE9DTVJfQ01fMjU2TTsKIAogCS8qCkBAIC0yODMsMTkgKzI4MywxOSBAQAogCiAJLyogUENJIG1lbW9yeSBwcmVmZXRjaCBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkgICAgICAgQ0ZHX1BDSTJfTUVNX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMl9NRU1fUEhZUywKLQkJICAgICAgIENGR19QQ0kyX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fUFJFRkVUQ0gpOworCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fUFJFRkVUQ0gpOwogCiAJLyogUENJIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkgICAgICAgQ0ZHX1BDSTJfTU1JT19CQVNFLAotCQkgICAgICAgQ0ZHX1BDSTJfTU1JT19QSFlTLCBDRkdfUENJMl9NTUlPX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9NTUlPX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfTU1JT19QSFlTLCBDT05GSUdfU1lTX1BDSTJfTU1JT19TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CiAKIAkvKiBQQ0kgSU8gc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJICAgICAgIENGR19QQ0kyX0lPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMl9JT19QSFlTLCBDRkdfUENJMl9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMsIENPTkZJR19TWVNfUENJMl9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKIAogCS8qIFN5c3RlbSBtZW1vcnkgc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMywKQEAgLTMwNiw3ICszMDYsNyBAQAogCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDQ7CiAKIAlwY2lfc2V0dXBfaW5kaXJlY3QoaG9zZSwKLQkJCSAgIChDRkdfSU1NUiArIDB4ODM4MCksIChDRkdfSU1NUiArIDB4ODM4NCkpOworCQkJICAgKENPTkZJR19TWVNfSU1NUiArIDB4ODM4MCksIChDT05GSUdfU1lTX0lNTVIgKyAweDgzODQpKTsKIAogCXBjaV9yZWdpc3Rlcl9ob3NlKGhvc2UpOwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODM2MGVtZHMvbXBjODM2MGVtZHMuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZW1kcy9tcGM4MzYwZW1kcy5jCmluZGV4IDVjM2I1ZGIuLmZjMGEwZTUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZW1kcy9tcGM4MzYwZW1kcy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZW1kcy9tcGM4MzYwZW1kcy5jCkBAIC05Miw4ICs5Miw4IEBACiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mKHZvaWQpCiB7CiAKLQl1OCAqYmNzciA9ICh1OCAqKUNGR19CQ1NSOwotCWNvbnN0IGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXU4ICpiY3NyID0gKHU4ICopQ09ORklHX1NZU19CQ1NSOworCWNvbnN0IGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAogCS8qIEVuYWJsZSBmbGFzaCB3cml0ZSAqLwogCWJjc3JbMHhhXSAmPSB+MHgwNDsKQEAgLTEyNCwxNCArMTI0LDE0IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdTMyIG1zaXplID0gMDsKIAogCWlmICgoaW0tPnN5c2NvbmYuaW1tcmJhciAmIElNTVJCQVJfQkFTRV9BRERSKSAhPSAodTMyKSBpbSkKIAkJcmV0dXJuIC0xOwogCiAJLyogRERSIFNEUkFNIC0gTWFpbiBTT0RJTU0gKi8KLQlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ0ZHX0REUl9CQVNFICYgTEFXQkFSX0JBUjsKKwlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ09ORklHX1NZU19ERFJfQkFTRSAmIExBV0JBUl9CQVI7CiAjaWYgZGVmaW5lZChDT05GSUdfU1BEX0VFUFJPTSkKIAltc2l6ZSA9IHNwZF9zZHJhbSgpOwogI2Vsc2UKQEAgLTE1OSwxMiArMTU5LDEyIEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IGZpeGVkX3NkcmFtKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1MzIgbXNpemUgPSAwOwogCXUzMiBkZHJfc2l6ZTsKIAl1MzIgZGRyX3NpemVfbG9nMjsKIAotCW1zaXplID0gQ0ZHX0REUl9TSVpFOworCW1zaXplID0gQ09ORklHX1NZU19ERFJfU0laRTsKIAlmb3IgKGRkcl9zaXplID0gbXNpemUgPDwgMjAsIGRkcl9zaXplX2xvZzIgPSAwOwogCSAgICAgKGRkcl9zaXplID4gMSk7IGRkcl9zaXplID0gZGRyX3NpemUgPj4gMSwgZGRyX3NpemVfbG9nMisrKSB7CiAJCWlmIChkZHJfc2l6ZSAmIDEpIHsKQEAgLTE3Myw0MiArMTczLDQyIEBACiAJfQogCWltLT5zeXNjb25mLmRkcmxhd1swXS5hciA9CiAJICAgIExBV0FSX0VOIHwgKChkZHJfc2l6ZV9sb2cyIC0gMSkgJiBMQVdBUl9TSVpFKTsKLSNpZiAoQ0ZHX0REUl9TSVpFICE9IDI1NikKKyNpZiAoQ09ORklHX1NZU19ERFJfU0laRSAhPSAyNTYpCiAjd2FybmluZyBDdXJyZW5seSBhbnkgZGRyIHNpemUgb3RoZXIgdGhhbiAyNTYgaXMgbm90IHN1cHBvcnRlZAogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0REUl9JSQotCWltLT5kZHIuY3NibmRzWzBdLmNzYm5kcyA9IENGR19ERFJfQ1MwX0JORFM7Ci0JaW0tPmRkci5jc19jb25maWdbMF0gPSBDRkdfRERSX0NTMF9DT05GSUc7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzAgPSBDRkdfRERSX1RJTUlOR18wOwotCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzMgPSBDRkdfRERSX1RJTUlOR18zOwotCWltLT5kZHIuc2RyYW1fY2ZnID0gQ0ZHX0REUl9TRFJBTV9DRkc7Ci0JaW0tPmRkci5zZHJhbV9jZmcyID0gQ0ZHX0REUl9TRFJBTV9DRkcyOwotCWltLT5kZHIuc2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERTsKLQlpbS0+ZGRyLnNkcmFtX21vZGUyID0gQ0ZHX0REUl9NT0RFMjsKLQlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKLQlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ0ZHX0REUl9DTEtfQ05UTDsKKwlpbS0+ZGRyLmNzYm5kc1swXS5jc2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUzsKKwlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENPTkZJR19TWVNfRERSX0NTMF9DT05GSUc7CisJaW0tPmRkci50aW1pbmdfY2ZnXzAgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMDsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJaW0tPmRkci50aW1pbmdfY2ZnXzMgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMzsKKwlpbS0+ZGRyLnNkcmFtX2NmZyA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NGRzsKKwlpbS0+ZGRyLnNkcmFtX2NmZzIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcyOworCWltLT5kZHIuc2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREU7CisJaW0tPmRkci5zZHJhbV9tb2RlMiA9IENPTkZJR19TWVNfRERSX01PREUyOworCWltLT5kZHIuc2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKKwlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFJfQ0xLX0NOVEw7CiAjZWxzZQogCWltLT5kZHIuY3NibmRzWzBdLmNzYm5kcyA9IDB4MDAwMDAwMDc7CiAJaW0tPmRkci5jc2JuZHNbMV0uY3NibmRzID0gMHgwMDA4MDAwZjsKIAotCWltLT5kZHIuY3NfY29uZmlnWzBdID0gQ0ZHX0REUl9DT05GSUc7Ci0JaW0tPmRkci5jc19jb25maWdbMV0gPSBDRkdfRERSX0NPTkZJRzsKKwlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENPTkZJR19TWVNfRERSX0NPTkZJRzsKKwlpbS0+ZGRyLmNzX2NvbmZpZ1sxXSA9IENPTkZJR19TWVNfRERSX0NPTkZJRzsKIAotCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7Ci0JaW0tPmRkci5zZHJhbV9jZmcgPSBDRkdfRERSX0NPTlRST0w7CisJaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWltLT5kZHIuc2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfQ09OVFJPTDsKIAotCWltLT5kZHIuc2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERTsKLQlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKKwlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDT05GSUdfU1lTX0REUl9NT0RFOworCWltLT5kZHIuc2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKICNlbmRpZgogCXVkZWxheSgyMDApOwogCWltLT5kZHIuc2RyYW1fY2ZnIHw9IFNEUkFNX0NGR19NRU1fRU47CiAKIAlyZXR1cm4gbXNpemU7CiB9Ci0jZW5kaWYJCQkJLyohQ0ZHX1NQRF9FRVBST00gKi8KKyNlbmRpZgkJCQkvKiFDT05GSUdfU1lTX1NQRF9FRVBST00gKi8KIAogaW50IGNoZWNrYm9hcmQodm9pZCkKIHsKQEAgLTIxOSwzNCArMjE5LDM0IEBACiAvKgogICogaWYgTVBDODM2MEVNRFMgaXMgc29sZGVyZWQgd2l0aCBTRFJBTQogICovCi0jaWYgZGVmaW5lZChDRkdfQlIyX1BSRUxJTSkgIFwKLQkmJiBkZWZpbmVkKENGR19PUjJfUFJFTElNKSBcCi0JJiYgZGVmaW5lZChDRkdfTEJMQVdCQVIyX1BSRUxJTSkgXAotCSYmIGRlZmluZWQoQ0ZHX0xCTEFXQVIyX1BSRUxJTSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlIyX1BSRUxJTSkgIFwKKwkmJiBkZWZpbmVkKENPTkZJR19TWVNfT1IyX1BSRUxJTSkgXAorCSYmIGRlZmluZWQoQ09ORklHX1NZU19MQkxBV0JBUjJfUFJFTElNKSBcCisJJiYgZGVmaW5lZChDT05GSUdfU1lTX0xCTEFXQVIyX1BSRUxJTSkKIC8qCiAgKiBJbml0aWFsaXplIFNEUkFNIG1lbW9yeSBvbiB0aGUgTG9jYWwgQnVzLgogICovCiAKIHZvaWQgc2RyYW1faW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbGJ1czgzeHhfdCAqbGJjID0gJmltbWFwLT5sYnVzOwotCXVpbnQgKnNkcmFtX2FkZHIgPSAodWludCAqKSBDRkdfTEJDX1NEUkFNX0JBU0U7CisJdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0U7CiAKIAkvKgogCSAqIFNldHVwIFNEUkFNIEJhc2UgYW5kIE9wdGlvbiBSZWdpc3RlcnMsIGFscmVhZHkgZG9uZSBpbiBjcHVfaW5pdC5jCiAJICovCiAJLypzZXR1cCBtdHJwdCwgbHNydCBhbmQgbGJjciBmb3IgTEIgYnVzICovCi0JbGJjLT5sYmNyID0gQ0ZHX0xCQ19MQkNSOwotCWxiYy0+bXJ0cHIgPSBDRkdfTEJDX01SVFBSOwotCWxiYy0+bHNydCA9IENGR19MQkNfTFNSVDsKKwlsYmMtPmxiY3IgPSBDT05GSUdfU1lTX0xCQ19MQkNSOworCWxiYy0+bXJ0cHIgPSBDT05GSUdfU1lTX0xCQ19NUlRQUjsKKwlsYmMtPmxzcnQgPSBDT05GSUdfU1lTX0xCQ19MU1JUOwogCWFzbSgic3luYyIpOwogCiAJLyoKIAkgKiBDb25maWd1cmUgdGhlIFNEUkFNIGNvbnRyb2xsZXIgTWFjaGluZSBNb2RlIFJlZ2lzdGVyLgogCSAqLwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzU7CS8qIE5vcm1hbCBPcGVyYXRpb24gKi8KLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl8xOwkvKiBQcmVjaGFyZ2UgQWxsIEJhbmtzICovCisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzU7CS8qIE5vcm1hbCBPcGVyYXRpb24gKi8KKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfMTsJLyogUHJlY2hhcmdlIEFsbCBCYW5rcyAqLwogCWFzbSgic3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAl1ZGVsYXkoMTAwKTsKQEAgLTI1NCw3ICsyNTQsNyBAQAogCS8qCiAJICogV2UgbmVlZCBkbyA4IHRpbWVzIGF1dG8gcmVmcmVzaCBvcGVyYXRpb24uCiAJICovCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfMjsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfMjsKIAlhc20oInN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CS8qIDEgdGltZXMgKi8KIAl1ZGVsYXkoMTAwKTsKQEAgLTI3NCwxMyArMjc0LDEzIEBACiAJdWRlbGF5KDEwMCk7CiAKIAkvKiBNb2RlIHJlZ2lzdGVyIHdyaXRlIG9wZXJhdGlvbiAqLwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzQ7CisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzQ7CiAJYXNtKCJzeW5jIik7CiAJKihzZHJhbV9hZGRyICsgMHhjYykgPSAweGZmOwogCXVkZWxheSgxMDApOwogCiAJLyogTm9ybWFsIG9wZXJhdGlvbiAqLwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzUgfCAweDQwMDAwMDAwOworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl81IHwgMHg0MDAwMDAwMDsKIAlhc20oInN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJdWRlbGF5KDEwMCk7CkBAIC0yOTQsNyArMjk0LDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19PRl9CT0FSRF9TRVRVUCkKIHZvaWQgZnRfYm9hcmRfc2V0dXAodm9pZCAqYmxvYiwgYmRfdCAqYmQpCiB7Ci0JY29uc3QgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJY29uc3QgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCiAJZnRfY3B1X3NldHVwKGJsb2IsIGJkKTsKICNpZmRlZiBDT05GSUdfUENJCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODM2MGVtZHMvcGNpLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODM2MGVtZHMvcGNpLmMKaW5kZXggNGEwZDQ2MC4uOTM1YWNhMjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZW1kcy9wY2kuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODM2MGVtZHMvcGNpLmMKQEAgLTY3LDcgKzY3LDcgQEAKIAl2b2xhdGlsZSBwY2ljdHJsODN4eF90ICpwY2lfY3RybDsKIAl2b2xhdGlsZSBwY2ljb25mODN4eF90ICpwY2lfY29uZjsKIAotCWltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwlpbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXBjaV9sYXcgPSBpbW1yLT5zeXNjb25mLnBjaWxhdzsKIAlwY2lfcG90ID0gaW1tci0+aW9zLnBvdDsKIAlwY2lfY3RybCA9IGltbXItPnBjaV9jdHJsOwpAQCAtOTMsNyArOTMsNyBAQAogCWhvc2VbMF0uZmlyc3RfYnVzbm8gPSAwOwogCWhvc2VbMF0ubGFzdF9idXNubyA9IDB4ZmY7CiAJcGNpX3NldHVwX2luZGlyZWN0KCZob3NlWzBdLAotCQkJICAgKENGR19JTU1SICsgMHg4MzAwKSwgKENGR19JTU1SICsgMHg4MzA0KSk7CisJCQkgICAoQ09ORklHX1NZU19JTU1SICsgMHg4MzAwKSwgKENPTkZJR19TWVNfSU1NUiArIDB4ODMwNCkpOwogCXJlZzE2ID0gMHhmZjsKIAogCXBjaV9ob3NlX3JlYWRfY29uZmlnX3dvcmQoJmhvc2VbMF0sIFBDSV9CREYoMCwgMCwgMCksCkBAIC0xMzQsNyArMTM0LDcgQEAKIAl1MzIgdmFsMzI7CiAJdTMyIGRldjsKIAotCWltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwlpbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCWNsayA9IChjbGs4M3h4X3QgKikgJiBpbW1yLT5jbGs7CiAJcGNpX2xhdyA9IGltbXItPnN5c2NvbmYucGNpbGF3OwogCXBjaV9wb3QgPSBpbW1yLT5pb3MucG90OwpAQCAtMTYxLDEwICsxNjEsMTAgQEAKIAkvKgogCSAqIENvbmZpZ3VyZSBQQ0kgTG9jYWwgQWNjZXNzIFdpbmRvd3MKIAkgKi8KLQlwY2lfbGF3WzBdLmJhciA9IENGR19QQ0lfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMF0uYmFyID0gQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMF0uYXIgPSBMQVdBUl9FTiB8IExBV0FSX1NJWkVfNTEyTTsKIAotCXBjaV9sYXdbMV0uYmFyID0gQ0ZHX1BDSV9JT19QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzFdLmJhciA9IENPTkZJR19TWVNfUENJX0lPX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMV0uYXIgPSBMQVdBUl9FTiB8IExBV0FSX1NJWkVfMU07CiAKIAkvKgpAQCAtMTcyLDI2ICsxNzIsMjYgQEAKIAkgKi8KIAogCS8qIFBDSSBtZW0gc3BhY2UgLSBwcmVmZXRjaCAqLwotCXBjaV9wb3RbMF0ucG90YXIgPSAoQ0ZHX1BDSV9NRU1fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOwotCXBjaV9wb3RbMF0ucG9iYXIgPSAoQ0ZHX1BDSV9NRU1fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbMF0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzBdLnBvYmFyID0gKENPTkZJR19TWVNfUENJX01FTV9QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CiAJcGNpX3BvdFswXS5wb2NtciA9CiAJICAgIFBPQ01SX0VOIHwgUE9DTVJfU0UgfCAoUE9DTVJfQ01fMjU2TSAmIFBPQ01SX0NNX01BU0spOwogCiAJLyogUENJIG1taW8gLSBub24tcHJlZmV0Y2ggbWVtIHNwYWNlICovCi0JcGNpX3BvdFsxXS5wb3RhciA9IChDRkdfUENJX01NSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOwotCXBjaV9wb3RbMV0ucG9iYXIgPSAoQ0ZHX1BDSV9NTUlPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKKwlwY2lfcG90WzFdLnBvdGFyID0gKENPTkZJR19TWVNfUENJX01NSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbMV0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0lfTU1JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CiAJcGNpX3BvdFsxXS5wb2NtciA9IFBPQ01SX0VOIHwgKFBPQ01SX0NNXzI1Nk0gJiBQT0NNUl9DTV9NQVNLKTsKIAogCS8qIFBDSSBJTyBzcGFjZSAqLwotCXBjaV9wb3RbMl0ucG90YXIgPSAoQ0ZHX1BDSV9JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFsyXS5wb2JhciA9IChDRkdfUENJX0lPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKKwlwY2lfcG90WzJdLnBvdGFyID0gKENPTkZJR19TWVNfUENJX0lPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzJdLnBvYmFyID0gKENPTkZJR19TWVNfUENJX0lPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzJdLnBvY21yID0gUE9DTVJfRU4gfCBQT0NNUl9JTyB8IChQT0NNUl9DTV8xTSAmIFBPQ01SX0NNX01BU0spOwogCiAJLyoKIAkgKiBDb25maWd1cmUgUENJIEluYm91bmQgVHJhbnNsYXRpb24gV2luZG93cwogCSAqLwotCXBjaV9jdHJsWzBdLnBpdGFyMSA9IChDRkdfUENJX1NMVl9NRU1fTE9DQUwgPj4gMTIpICYgUElUQVJfVEFfTUFTSzsKLQlwY2lfY3RybFswXS5waWJhcjEgPSAoQ0ZHX1BDSV9TTFZfTUVNX0JVUyA+PiAxMikgJiBQSUJBUl9NQVNLOworCXBjaV9jdHJsWzBdLnBpdGFyMSA9IChDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0xPQ0FMID4+IDEyKSAmIFBJVEFSX1RBX01BU0s7CisJcGNpX2N0cmxbMF0ucGliYXIxID0gKENPTkZJR19TWVNfUENJX1NMVl9NRU1fQlVTID4+IDEyKSAmIFBJQkFSX01BU0s7CiAJcGNpX2N0cmxbMF0ucGllYmFyMSA9IDB4MDsKIAlwY2lfY3RybFswXS5waXdhcjEgPQogCSAgICBQSVdBUl9FTiB8IFBJV0FSX1BGIHwgUElXQVJfUlRUX1NOT09QIHwgUElXQVJfV1RUX1NOT09QIHwKQEAgLTIwOSwzMSArMjA5LDMxIEBACiAKIAkvKiBQQ0kgbWVtb3J5IHByZWZldGNoIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZVswXS5yZWdpb25zICsgMCwKLQkJICAgICAgIENGR19QQ0lfTUVNX0JBU0UsCi0JCSAgICAgICBDRkdfUENJX01FTV9QSFlTLAotCQkgICAgICAgQ0ZHX1BDSV9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX1BSRUZFVENIKTsKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTV9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX1BSRUZFVENIKTsKIAogCS8qIFBDSSBtZW1vcnkgc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlWzBdLnJlZ2lvbnMgKyAxLAotCQkgICAgICAgQ0ZHX1BDSV9NTUlPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJX01NSU9fUEhZUywgQ0ZHX1BDSV9NTUlPX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01NSU9fQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01NSU9fUEhZUywgQ09ORklHX1NZU19QQ0lfTU1JT19TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CiAKIAkvKiBQQ0kgSU8gc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlWzBdLnJlZ2lvbnMgKyAyLAotCQkgICAgICAgQ0ZHX1BDSV9JT19CQVNFLAotCQkgICAgICAgQ0ZHX1BDSV9JT19QSFlTLCBDRkdfUENJX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOworCQkgICAgICAgQ09ORklHX1NZU19QQ0lfSU9fQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJX0lPX1BIWVMsIENPTkZJR19TWVNfUENJX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOwogCiAJLyogU3lzdGVtIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2VbMF0ucmVnaW9ucyArIDMsCi0JCSAgICAgICBDRkdfUENJX1NMVl9NRU1fTE9DQUwsCi0JCSAgICAgICBDRkdfUENJX1NMVl9NRU1fQlVTLAotCQkgICAgICAgQ0ZHX1BDSV9TTFZfTUVNX1NJWkUsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0xPQ0FMLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9CVVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX1NJWkUsCiAJCSAgICAgICBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCWhvc2VbMF0ucmVnaW9uX2NvdW50ID0gNDsKIAogCXBjaV9zZXR1cF9pbmRpcmVjdCgmaG9zZVswXSwKLQkJCSAgIChDRkdfSU1NUiArIDB4ODMwMCksIChDRkdfSU1NUiArIDB4ODMwNCkpOworCQkJICAgKENPTkZJR19TWVNfSU1NUiArIDB4ODMwMCksIChDT05GSUdfU1lTX0lNTVIgKyAweDgzMDQpKTsKIAogCXBjaV9yZWdpc3Rlcl9ob3NlKGhvc2UpOwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODM2MGVyZGsvbXBjODM2MGVyZGsuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZXJkay9tcGM4MzYwZXJkay5jCmluZGV4IDYxZDcwMDAuLmFmM2I4Y2UgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZXJkay9tcGM4MzYwZXJkay5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZXJkay9tcGM4MzYwZXJkay5jCkBAIC0yMTQsNyArMjE0LDcgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfcih2b2lkKQogewotCXZvaWQgKnJlZyA9ICh2b2lkICopKENGR19JTU1SICsgMHgxNGE4KTsKKwl2b2lkICpyZWcgPSAodm9pZCAqKShDT05GSUdfU1lTX0lNTVIgKyAweDE0YTgpOwogCXUzMiB2YWw7CiAKIAkvKgpAQCAtMjMzLDEyICsyMzMsMTIgQEAKIAogaW50IGZpeGVkX3NkcmFtKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdTMyIG1zaXplID0gMDsKIAl1MzIgZGRyX3NpemU7CiAJdTMyIGRkcl9zaXplX2xvZzI7CiAKLQltc2l6ZSA9IENGR19ERFJfU0laRTsKKwltc2l6ZSA9IENPTkZJR19TWVNfRERSX1NJWkU7CiAJZm9yIChkZHJfc2l6ZSA9IG1zaXplIDw8IDIwLCBkZHJfc2l6ZV9sb2cyID0gMDsKIAkgICAgIChkZHJfc2l6ZSA+IDEpOyBkZHJfc2l6ZSA9IGRkcl9zaXplID4+IDEsIGRkcl9zaXplX2xvZzIrKykgewogCQlpZiAoZGRyX3NpemUgJiAxKQpAQCAtMjQ4LDE4ICsyNDgsMTggQEAKIAlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYXIgPQogCSAgICBMQVdBUl9FTiB8ICgoZGRyX3NpemVfbG9nMiAtIDEpICYgTEFXQVJfU0laRSk7CiAKLQlpbS0+ZGRyLmNzYm5kc1swXS5jc2JuZHMgPSBDRkdfRERSX0NTMF9CTkRTOwotCWltLT5kZHIuY3NfY29uZmlnWzBdID0gQ0ZHX0REUl9DUzBfQ09ORklHOwotCWltLT5kZHIudGltaW5nX2NmZ18wID0gQ0ZHX0REUl9USU1JTkdfMDsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWltLT5kZHIudGltaW5nX2NmZ18zID0gQ0ZHX0REUl9USU1JTkdfMzsKLQlpbS0+ZGRyLnNkcmFtX2NmZyA9IENGR19ERFJfU0RSQU1fQ0ZHOwotCWltLT5kZHIuc2RyYW1fY2ZnMiA9IENGR19ERFJfU0RSQU1fQ0ZHMjsKLQlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDRkdfRERSX01PREU7Ci0JaW0tPmRkci5zZHJhbV9tb2RlMiA9IENGR19ERFJfTU9ERTI7Ci0JaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFJfSU5URVJWQUw7Ci0JaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENGR19ERFJfQ0xLX0NOVEw7CisJaW0tPmRkci5jc2JuZHNbMF0uY3NibmRzID0gQ09ORklHX1NZU19ERFJfQ1MwX0JORFM7CisJaW0tPmRkci5jc19jb25maWdbMF0gPSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHOworCWltLT5kZHIudGltaW5nX2NmZ18wID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzA7CisJaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWltLT5kZHIudGltaW5nX2NmZ18zID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzM7CisJaW0tPmRkci5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkc7CisJaW0tPmRkci5zZHJhbV9jZmcyID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHMjsKKwlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDT05GSUdfU1lTX0REUl9NT0RFOworCWltLT5kZHIuc2RyYW1fbW9kZTIgPSBDT05GSUdfU1lTX0REUl9NT0RFMjsKKwlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CisJaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENPTkZJR19TWVNfRERSX0NMS19DTlRMOwogCXVkZWxheSgyMDApOwogCWltLT5kZHIuc2RyYW1fY2ZnIHw9IFNEUkFNX0NGR19NRU1fRU47CiAKQEAgLTI3MSwxNCArMjcxLDE0IEBACiAjaWYgZGVmaW5lZChDT05GSUdfRERSX0VDQykgJiYgIWRlZmluZWQoQ09ORklHX0VDQ19JTklUX1ZJQV9ERFJDKQogCWV4dGVybiB2b2lkIGRkcl9lbmFibGVfZWNjKHVuc2lnbmVkIGludCBkcmFtX3NpemUpOwogI2VuZGlmCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdTMyIG1zaXplID0gMDsKIAogCWlmICgoaW0tPnN5c2NvbmYuaW1tcmJhciAmIElNTVJCQVJfQkFTRV9BRERSKSAhPSAodTMyKWltKQogCQlyZXR1cm4gLTE7CiAKIAkvKiBERFIgU0RSQU0gLSBNYWluIFNPRElNTSAqLwotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX0JBU0UgJiBMQVdCQVJfQkFSOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9CQVNFICYgTEFXQkFSX0JBUjsKIAltc2l6ZSA9IGZpeGVkX3NkcmFtKCk7CiAKICNpZiBkZWZpbmVkKENPTkZJR19ERFJfRUNDKSAmJiAhZGVmaW5lZChDT05GSUdfRUNDX0lOSVRfVklBX0REUkMpCkBAIC0zMDAsMjggKzMwMCwyOCBAQAogCiBzdGF0aWMgc3RydWN0IHBjaV9yZWdpb24gcGNpX3JlZ2lvbnNbXSA9IHsKIAl7Ci0JCS5idXNfc3RhcnQgPSBDRkdfUENJMV9NRU1fQkFTRSwKLQkJLnBoeXNfc3RhcnQgPSBDRkdfUENJMV9NRU1fUEhZUywKLQkJLnNpemUgPSBDRkdfUENJMV9NRU1fU0laRSwKKwkJLmJ1c19zdGFydCA9IENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwKKwkJLnBoeXNfc3RhcnQgPSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCS5zaXplID0gQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLAogCQkuZmxhZ3MgPSBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fUFJFRkVUQ0gsCiAJfSwKIAl7Ci0JCS5idXNfc3RhcnQgPSBDRkdfUENJMV9NTUlPX0JBU0UsCi0JCS5waHlzX3N0YXJ0ID0gQ0ZHX1BDSTFfTU1JT19QSFlTLAotCQkuc2l6ZSA9IENGR19QQ0kxX01NSU9fU0laRSwKKwkJLmJ1c19zdGFydCA9IENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UsCisJCS5waHlzX3N0YXJ0ID0gQ09ORklHX1NZU19QQ0kxX01NSU9fUEhZUywKKwkJLnNpemUgPSBDT05GSUdfU1lTX1BDSTFfTU1JT19TSVpFLAogCQkuZmxhZ3MgPSBQQ0lfUkVHSU9OX01FTSwKIAl9LAogCXsKLQkJLmJ1c19zdGFydCA9IENGR19QQ0kxX0lPX0JBU0UsCi0JCS5waHlzX3N0YXJ0ID0gQ0ZHX1BDSTFfSU9fUEhZUywKLQkJLnNpemUgPSBDRkdfUENJMV9JT19TSVpFLAorCQkuYnVzX3N0YXJ0ID0gQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UsCisJCS5waHlzX3N0YXJ0ID0gQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsCisJCS5zaXplID0gQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUsCiAJCS5mbGFncyA9IFBDSV9SRUdJT05fSU8sCiAJfSwKIH07CiAKIHZvaWQgcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY2xrODN4eF90ICpjbGsgPSAodm9sYXRpbGUgY2xrODN4eF90ICopJmltbXItPmNsazsKIAl2b2xhdGlsZSBsYXc4M3h4X3QgKnBjaV9sYXcgPSBpbW1yLT5zeXNjb25mLnBjaWxhdzsKIAlzdHJ1Y3QgcGNpX3JlZ2lvbiAqcmVnW10gPSB7IHBjaV9yZWdpb25zLCB9OwpAQCAtMzM4LDEwICszMzgsMTAgQEAKIAl1ZGVsYXkoMjAwMCk7CiAKIAkvKiBDb25maWd1cmUgUENJIExvY2FsIEFjY2VzcyBXaW5kb3dzICovCi0JcGNpX2xhd1swXS5iYXIgPSBDRkdfUENJMV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1swXS5iYXIgPSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMF0uYXIgPSBMQkxBV0FSX0VOIHwgTEJMQVdBUl81MTJNQjsKIAotCXBjaV9sYXdbMV0uYmFyID0gQ0ZHX1BDSTFfSU9fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1sxXS5iYXIgPSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1sxXS5hciA9IExCTEFXQVJfRU4gfCBMQkxBV0FSXzFNQjsKIAogCW1wYzgzeHhfcGNpX2luaXQoMSwgcmVnLCAwKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZXJkay9uYW5kLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODM2MGVyZGsvbmFuZC5jCmluZGV4IDhiNDRhMGYuLjhlMjJlMTMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZXJkay9uYW5kLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzNjBlcmRrL25hbmQuYwpAQCAtMTgsNyArMTgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L210ZC9mc2xfdXBtLmg+CiAjaW5jbHVkZSA8bmFuZC5oPgogCi1zdGF0aWMgc3RydWN0IGltbWFwICppbSA9IChzdHJ1Y3QgaW1tYXAgKilDRkdfSU1NUjsKK3N0YXRpYyBzdHJ1Y3QgaW1tYXAgKmltID0gKHN0cnVjdCBpbW1hcCAqKUNPTkZJR19TWVNfSU1NUjsKIAogc3RhdGljIGNvbnN0IHUzMiB1cG1fYXJyYXlbXSA9IHsKIAkweDBmZjAzYzMwLCAweDBmZjAzYzMwLCAweDBmZjAzYzM0LCAweDBmZjMzYzMwLCAvKiBXb3JkcyAgMCB0byAgMyAqLwpAQCAtNzAsNyArNzAsNyBAQAogCiBzdGF0aWMgc3RydWN0IGZzbF91cG1fbmFuZCBmdW4gPSB7CiAJLnVwbSA9IHsKLQkJLmlvX2FkZHIgPSAodm9pZCAqKUNGR19OQU5EX0JBU0UsCisJCS5pb19hZGRyID0gKHZvaWQgKilDT05GSUdfU1lTX05BTkRfQkFTRSwKIAl9LAogCS53aWR0aCA9IDgsCiAJLnVwbV9jbWRfb2Zmc2V0ID0gOCwKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4Mzd4ZW1kcy9tcGM4Mzd4ZW1kcy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzN3hlbWRzL21wYzgzN3hlbWRzLmMKaW5kZXggODAwM2VjMS4uNmM1MzdlMiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzN3hlbWRzL21wYzgzN3hlbWRzLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzN3hlbWRzL21wYzgzN3hlbWRzLmMKQEAgLTI0LDcgKzI0LDcgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZih2b2lkKQogewotCXU4ICpiY3NyID0gKHU4ICopQ0ZHX0JDU1I7CisJdTggKmJjc3IgPSAodTggKilDT05GSUdfU1lTX0JDU1I7CiAKIAkvKiBFbmFibGUgZmxhc2ggd3JpdGUgKi8KIAliY3NyWzB4OV0gJj0gfjB4MDQ7CkBAIC0zMiw3ICszMiw3IEBACiAJYmNzclsweGVdID0gMHhmZjsKIAogI2lmZGVmIENPTkZJR19GU0xfU0VSREVTCi0JaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXUzMiBzcHJpZHIgPSBpbl9iZTMyKCZpbW1yLT5zeXNjb25mLnNwcmlkcik7CiAKIAkvKiB3ZSBjaGVjayBvbmx5IHBhcnQgbnVtLCBhbmQgZG9uJ3QgbG9vayBmb3IgQ1BVIHJldmlzaW9ucyAqLwpAQCAtNzcsNyArNzcsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbShpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXUzMiBtc2l6ZSA9IDA7CiAKIAlpZiAoKGltLT5zeXNjb25mLmltbXJiYXIgJiBJTU1SQkFSX0JBU0VfQUREUikgIT0gKHUzMikgaW0pCkBAIC0xMDQsNDMgKzEwNCw0MyBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGludCBmaXhlZF9zZHJhbSh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7Ci0JdTMyIG1zaXplID0gQ0ZHX0REUl9TSVpFICogMTAyNCAqIDEwMjQ7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CisJdTMyIG1zaXplID0gQ09ORklHX1NZU19ERFJfU0laRSAqIDEwMjQgKiAxMDI0OwogCXUzMiBtc2l6ZV9sb2cyID0gX19pbG9nMihtc2l6ZSk7CiAKLQlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ0ZHX0REUl9TRFJBTV9CQVNFICYgMHhmZmZmZjAwMDsKKwlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSAmIDB4ZmZmZmYwMDA7CiAJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmFyID0gTEJMQVdBUl9FTiB8IChtc2l6ZV9sb2cyIC0gMSk7CiAKLSNpZiAoQ0ZHX0REUl9TSVpFICE9IDUxMikKKyNpZiAoQ09ORklHX1NZU19ERFJfU0laRSAhPSA1MTIpCiAjd2FybmluZyBDdXJyZW5seSBhbnkgZGRyIHNpemUgb3RoZXIgdGhhbiA1MTIgaXMgbm90IHN1cHBvcnRlZAogI2VuZGlmCi0JaW0tPnN5c2NvbmYuZGRyY2RyID0gQ0ZHX0REUkNEUl9WQUxVRTsKKwlpbS0+c3lzY29uZi5kZHJjZHIgPSBDT05GSUdfU1lTX0REUkNEUl9WQUxVRTsKIAl1ZGVsYXkoNTAwMDApOwogCi0JaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENGR19ERFJfU0RSQU1fQ0xLX0NOVEw7CisJaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NMS19DTlRMOwogCXVkZWxheSgxMDAwKTsKIAotCWltLT5kZHIuY3NibmRzWzBdLmNzYm5kcyA9IENGR19ERFJfQ1MwX0JORFM7Ci0JaW0tPmRkci5jc19jb25maWdbMF0gPSBDRkdfRERSX0NTMF9DT05GSUc7CisJaW0tPmRkci5jc2JuZHNbMF0uY3NibmRzID0gQ09ORklHX1NZU19ERFJfQ1MwX0JORFM7CisJaW0tPmRkci5jc19jb25maWdbMF0gPSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHOwogCXVkZWxheSgxMDAwKTsKIAotCWltLT5kZHIudGltaW5nX2NmZ18wID0gQ0ZHX0REUl9USU1JTkdfMDsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWltLT5kZHIudGltaW5nX2NmZ18zID0gQ0ZHX0REUl9USU1JTkdfMzsKLQlpbS0+ZGRyLnNkcmFtX2NmZyA9IENGR19ERFJfU0RSQU1fQ0ZHOwotCWltLT5kZHIuc2RyYW1fY2ZnMiA9IENGR19ERFJfU0RSQU1fQ0ZHMjsKLQlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDRkdfRERSX01PREU7Ci0JaW0tPmRkci5zZHJhbV9tb2RlMiA9IENGR19ERFJfTU9ERTI7Ci0JaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFJfSU5URVJWQUw7CisJaW0tPmRkci50aW1pbmdfY2ZnXzAgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMDsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJaW0tPmRkci50aW1pbmdfY2ZnXzMgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMzsKKwlpbS0+ZGRyLnNkcmFtX2NmZyA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NGRzsKKwlpbS0+ZGRyLnNkcmFtX2NmZzIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcyOworCWltLT5kZHIuc2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREU7CisJaW0tPmRkci5zZHJhbV9tb2RlMiA9IENPTkZJR19TWVNfRERSX01PREUyOworCWltLT5kZHIuc2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXygic3luYyIpOwogCXVkZWxheSgxMDAwKTsKIAogCWltLT5kZHIuc2RyYW1fY2ZnIHw9IFNEUkFNX0NGR19NRU1fRU47CiAJdWRlbGF5KDIwMDApOwotCXJldHVybiBDRkdfRERSX1NJWkU7CisJcmV0dXJuIENPTkZJR19TWVNfRERSX1NJWkU7CiB9Ci0jZW5kaWYgLyohQ0ZHX1NQRF9FRVBST00gKi8KKyNlbmRpZiAvKiFDT05GSUdfU1lTX1NQRF9FRVBST00gKi8KIAogaW50IGNoZWNrYm9hcmQodm9pZCkKIHsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4Mzd4ZW1kcy9wY2kuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4Mzd4ZW1kcy9wY2kuYwppbmRleCBhYjkwOTc5Li4yNGNjMTMwIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODM3eGVtZHMvcGNpLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzN3hlbWRzL3BjaS5jCkBAIC0yMSwyOCArMjEsMjggQEAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiBzdGF0aWMgc3RydWN0IHBjaV9yZWdpb24gcGNpX3JlZ2lvbnNbXSA9IHsKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSV9NRU1fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSV9NRU1fUEhZUywKLQkJc2l6ZTogQ0ZHX1BDSV9NRU1fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSV9NRU1fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMsCisJCXNpemU6IENPTkZJR19TWVNfUENJX01FTV9TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX1BSRUZFVENICiAJfSwKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSV9NTUlPX0JBU0UsCi0JCXBoeXNfc3RhcnQ6IENGR19QQ0lfTU1JT19QSFlTLAotCQlzaXplOiBDRkdfUENJX01NSU9fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UsCisJCXBoeXNfc3RhcnQ6IENPTkZJR19TWVNfUENJX01NSU9fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0lfTU1JT19TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9NRU0KIAl9LAogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJX0lPX0JBU0UsCi0JCXBoeXNfc3RhcnQ6IENGR19QQ0lfSU9fUEhZUywKLQkJc2l6ZTogQ0ZHX1BDSV9JT19TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJX0lPX0JBU0UsCisJCXBoeXNfc3RhcnQ6IENPTkZJR19TWVNfUENJX0lPX1BIWVMsCisJCXNpemU6IENPTkZJR19TWVNfUENJX0lPX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX0lPCiAJfQogfTsKIAogdm9pZCBwY2lfaW5pdF9ib2FyZCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjbGs4M3h4X3QgKmNsayA9ICh2b2xhdGlsZSBjbGs4M3h4X3QgKikmaW1tci0+Y2xrOwogCXZvbGF0aWxlIGxhdzgzeHhfdCAqcGNpX2xhdyA9IGltbXItPnN5c2NvbmYucGNpbGF3OwogCXN0cnVjdCBwY2lfcmVnaW9uICpyZWdbXSA9IHsgcGNpX3JlZ2lvbnMgfTsKQEAgLTUyLDEwICs1MiwxMCBAQAogCXVkZWxheSgyMDAwKTsKIAogCS8qIENvbmZpZ3VyZSBQQ0kgTG9jYWwgQWNjZXNzIFdpbmRvd3MgKi8KLQlwY2lfbGF3WzBdLmJhciA9IENGR19QQ0lfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMF0uYmFyID0gQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMF0uYXIgPSBMQkxBV0FSX0VOIHwgTEJMQVdBUl81MTJNQjsKIAotCXBjaV9sYXdbMV0uYmFyID0gQ0ZHX1BDSV9JT19QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzFdLmJhciA9IENPTkZJR19TWVNfUENJX0lPX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMV0uYXIgPSBMQkxBV0FSX0VOIHwgTEJMQVdBUl8xTUI7CiAKIAl1ZGVsYXkoMjAwMCk7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODM3eGVyZGIvbXBjODM3eGVyZGIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4Mzd4ZXJkYi9tcGM4Mzd4ZXJkYi5jCmluZGV4IGU1NDdiNTEuLjE4YTIxYTEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4Mzd4ZXJkYi9tcGM4Mzd4ZXJkYi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4Mzd4ZXJkYi9tcGM4Mzd4ZXJkYi5jCkBAIC0yMCwxNyArMjAsMTcgQEAKICNpbmNsdWRlIDxzcGRfc2RyYW0uaD4KICNpbmNsdWRlIDx2c2M3Mzg1Lmg+CiAKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIGludAogdGVzdGRyYW0odm9pZCkKIHsKLQl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQl1aW50ICpwZW5kID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfRU5EOworCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwl1aW50ICpwZW5kID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX0VORDsKIAl1aW50ICpwOwogCiAJcHJpbnRmKCJUZXN0aW5nIERSQU0gZnJvbSAweCUwOHggdG8gMHglMDh4XG4iLAotCSAgICAgICBDRkdfTUVNVEVTVF9TVEFSVCwKLQkgICAgICAgQ0ZHX01FTVRFU1RfRU5EKTsKKwkgICAgICAgQ09ORklHX1NZU19NRU1URVNUX1NUQVJULAorCSAgICAgICBDT05GSUdfU1lTX01FTVRFU1RfRU5EKTsKIAogCXByaW50ZigiRFJBTSB0ZXN0IHBoYXNlIDE6XG4iKTsKIAlmb3IgKHAgPSBwc3RhcnQ7IHAgPCBwZW5kOyBwKyspCkBAIC02Niw3ICs2Niw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCWltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdTMyIG1zaXplID0gMDsKIAogCWlmICgoaW0tPnN5c2NvbmYuaW1tcmJhciAmIElNTVJCQVJfQkFTRV9BRERSKSAhPSAodTMyKSBpbSkKQEAgLTkyLDQwICs5Miw0MCBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGludCBmaXhlZF9zZHJhbSh2b2lkKQogewotCWltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7Ci0JdTMyIG1zaXplID0gQ0ZHX0REUl9TSVpFICogMTAyNCAqIDEwMjQ7CisJaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CisJdTMyIG1zaXplID0gQ09ORklHX1NZU19ERFJfU0laRSAqIDEwMjQgKiAxMDI0OwogCXUzMiBtc2l6ZV9sb2cyID0gX19pbG9nMihtc2l6ZSk7CiAKLQlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ0ZHX0REUl9TRFJBTV9CQVNFICYgMHhmZmZmZjAwMDsKKwlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSAmIDB4ZmZmZmYwMDA7CiAJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmFyID0gTEJMQVdBUl9FTiB8IChtc2l6ZV9sb2cyIC0gMSk7CiAKLQlpbS0+c3lzY29uZi5kZHJjZHIgPSBDRkdfRERSQ0RSX1ZBTFVFOworCWltLT5zeXNjb25mLmRkcmNkciA9IENPTkZJR19TWVNfRERSQ0RSX1ZBTFVFOwogCXVkZWxheSg1MDAwMCk7CiAKLQlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ0ZHX0REUl9TRFJBTV9DTEtfQ05UTDsKKwlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0xLX0NOVEw7CiAJdWRlbGF5KDEwMDApOwogCi0JaW0tPmRkci5jc2JuZHNbMF0uY3NibmRzID0gQ0ZHX0REUl9DUzBfQk5EUzsKLQlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENGR19ERFJfQ1MwX0NPTkZJRzsKKwlpbS0+ZGRyLmNzYm5kc1swXS5jc2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUzsKKwlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENPTkZJR19TWVNfRERSX0NTMF9DT05GSUc7CiAJdWRlbGF5KDEwMDApOwogCi0JaW0tPmRkci50aW1pbmdfY2ZnXzAgPSBDRkdfRERSX1RJTUlOR18wOwotCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzMgPSBDRkdfRERSX1RJTUlOR18zOwotCWltLT5kZHIuc2RyYW1fY2ZnID0gQ0ZHX0REUl9TRFJBTV9DRkc7Ci0JaW0tPmRkci5zZHJhbV9jZmcyID0gQ0ZHX0REUl9TRFJBTV9DRkcyOwotCWltLT5kZHIuc2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERTsKLQlpbS0+ZGRyLnNkcmFtX21vZGUyID0gQ0ZHX0REUl9NT0RFMjsKLQlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMCA9IENPTkZJR19TWVNfRERSX1RJTUlOR18wOworCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzE7CisJaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMjsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMyA9IENPTkZJR19TWVNfRERSX1RJTUlOR18zOworCWltLT5kZHIuc2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHOworCWltLT5kZHIuc2RyYW1fY2ZnMiA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NGRzI7CisJaW0tPmRkci5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERTsKKwlpbS0+ZGRyLnNkcmFtX21vZGUyID0gQ09ORklHX1NZU19ERFJfTU9ERTI7CisJaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENPTkZJR19TWVNfRERSX0lOVEVSVkFMOwogCXN5bmMoKTsKIAl1ZGVsYXkoMTAwMCk7CiAKIAlpbS0+ZGRyLnNkcmFtX2NmZyB8PSBTRFJBTV9DRkdfTUVNX0VOOwogCXVkZWxheSgyMDAwKTsKLQlyZXR1cm4gQ0ZHX0REUl9TSVpFOworCXJldHVybiBDT05GSUdfU1lTX0REUl9TSVpFOwogfQotI2VuZGlmCS8qIUNGR19TUERfRUVQUk9NICovCisjZW5kaWYJLyohQ09ORklHX1NZU19TUERfRUVQUk9NICovCiAKIGludCBjaGVja2JvYXJkKHZvaWQpCiB7CkBAIC0xMzYsNyArMTM2LDcgQEAKIGludCBib2FyZF9lYXJseV9pbml0X2Yodm9pZCkKIHsKICNpZmRlZiBDT05GSUdfRlNMX1NFUkRFUwotCWltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCWltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1MzIgc3ByaWRyID0gaW5fYmUzMigmaW1tci0+c3lzY29uZi5zcHJpZHIpOwogCiAJLyogd2UgY2hlY2sgb25seSBwYXJ0IG51bSwgYW5kIGRvbid0IGxvb2sgZm9yIENQVSByZXZpc2lvbnMgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4Mzd4ZXJkYi9wY2kuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4Mzd4ZXJkYi9wY2kuYwppbmRleCAyNmU3MzIwLi44YmIzMWZjIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODM3eGVyZGIvcGNpLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzN3hlcmRiL3BjaS5jCkBAIC0xNywyOCArMTcsMjggQEAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiBzdGF0aWMgc3RydWN0IHBjaV9yZWdpb24gcGNpX3JlZ2lvbnNbXSA9IHsKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSV9NRU1fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSV9NRU1fUEhZUywKLQkJc2l6ZTogQ0ZHX1BDSV9NRU1fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSV9NRU1fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMsCisJCXNpemU6IENPTkZJR19TWVNfUENJX01FTV9TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX1BSRUZFVENICiAJfSwKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSV9NTUlPX0JBU0UsCi0JCXBoeXNfc3RhcnQ6IENGR19QQ0lfTU1JT19QSFlTLAotCQlzaXplOiBDRkdfUENJX01NSU9fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UsCisJCXBoeXNfc3RhcnQ6IENPTkZJR19TWVNfUENJX01NSU9fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0lfTU1JT19TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9NRU0KIAl9LAogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJX0lPX0JBU0UsCi0JCXBoeXNfc3RhcnQ6IENGR19QQ0lfSU9fUEhZUywKLQkJc2l6ZTogQ0ZHX1BDSV9JT19TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJX0lPX0JBU0UsCisJCXBoeXNfc3RhcnQ6IENPTkZJR19TWVNfUENJX0lPX1BIWVMsCisJCXNpemU6IENPTkZJR19TWVNfUENJX0lPX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX0lPCiAJfQogfTsKIAogdm9pZCBwY2lfaW5pdF9ib2FyZCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjbGs4M3h4X3QgKmNsayA9ICh2b2xhdGlsZSBjbGs4M3h4X3QgKikmaW1tci0+Y2xrOwogCXZvbGF0aWxlIGxhdzgzeHhfdCAqcGNpX2xhdyA9IGltbXItPnN5c2NvbmYucGNpbGF3OwogCXN0cnVjdCBwY2lfcmVnaW9uICpyZWdbXSA9IHsgcGNpX3JlZ2lvbnMgfTsKQEAgLTQ4LDEwICs0OCwxMCBAQAogCXVkZWxheSgyMDAwKTsKIAogCS8qIENvbmZpZ3VyZSBQQ0kgTG9jYWwgQWNjZXNzIFdpbmRvd3MgKi8KLQlwY2lfbGF3WzBdLmJhciA9IENGR19QQ0lfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMF0uYmFyID0gQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMF0uYXIgPSBMQkxBV0FSX0VOIHwgTEJMQVdBUl81MTJNQjsKIAotCXBjaV9sYXdbMV0uYmFyID0gQ0ZHX1BDSV9JT19QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzFdLmJhciA9IENPTkZJR19TWVNfUENJX0lPX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMV0uYXIgPSBMQkxBV0FSX0VOIHwgTEJMQVdBUl8xTUI7CiAKIAltcGM4M3h4X3BjaV9pbml0KDEsIHJlZywgMCk7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODUzNmRzL2xhdy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1MzZkcy9sYXcuYwppbmRleCBjZGY1MjE1Li44MDEzZDQxIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODUzNmRzL2xhdy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTM2ZHMvbGF3LmMKQEAgLTI4LDE1ICsyOCwxNSBAQAogI2luY2x1ZGUgPGFzbS9tbXUuaD4KIAogc3RydWN0IGxhd19lbnRyeSBsYXdfdGFibGVbXSA9IHsKLQlTRVRfTEFXKENGR19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfNjRLLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX0ZMQVNIX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCi0JU0VUX0xBVyhDRkdfUENJRTFfTUVNX1BIWVMsIExBV0FSX1NJWkVfMTI4TSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKLQlTRVRfTEFXKENGR19QQ0lFMV9JT19QSFlTLCBMQVdfU0laRV82NEssIExBV19UUkdUX0lGX1BDSUVfMSksCi0JU0VUX0xBVyhDRkdfUENJRTJfTUVNX1BIWVMsIExBV0FSX1NJWkVfMTI4TSwgTEFXX1RSR1RfSUZfUENJRV8yKSwKLQlTRVRfTEFXKENGR19QQ0lFMl9JT19QSFlTLCBMQVdfU0laRV82NEssIExBV19UUkdUX0lGX1BDSUVfMiksCi0JU0VUX0xBVyhDRkdfUENJRTNfTUVNX1BIWVMsIExBV0FSX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJRV8zKSwKLQlTRVRfTEFXKENGR19QQ0lFM19JT19QSFlTLCBMQVdfU0laRV82NEssIExBV19UUkdUX0lGX1BDSUVfMyksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfNjRLLCBMQVdfVFJHVF9JRl9QQ0kpLAorCVNFVF9MQVcoQ09ORklHX1NZU19GTEFTSF9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUywgTEFXQVJfU0laRV8xMjhNLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTLCBMQVdfU0laRV82NEssIExBV19UUkdUX0lGX1BDSUVfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUyX01FTV9QSFlTLCBMQVdBUl9TSVpFXzEyOE0sIExBV19UUkdUX0lGX1BDSUVfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUyX0lPX1BIWVMsIExBV19TSVpFXzY0SywgTEFXX1RSR1RfSUZfUENJRV8yKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTNfTUVNX1BIWVMsIExBV0FSX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJRV8zKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTNfSU9fUEhZUywgTEFXX1NJWkVfNjRLLCBMQVdfVFJHVF9JRl9QQ0lFXzMpLAogCVNFVF9MQVcoUElYSVNfQkFTRSwgTEFXX1NJWkVfNEssIExBV19UUkdUX0lGX0xCQyksCiB9OwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODUzNmRzL21wYzg1MzZkcy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1MzZkcy9tcGM4NTM2ZHMuYwppbmRleCAzMDY2YjI0Li5mNjM0ZTE3IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODUzNmRzL21wYzg1MzZkcy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTM2ZHMvbXBjODUzNmRzLmMKQEAgLTg2LDM0ICs4NiwzNCBAQAogCiBwaHlzX3NpemVfdCBmaXhlZF9zZHJhbSAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICZpbW1hcC0+aW1fZGRyOwogCXVpbnQgZF9pbml0OwogCi0JZGRyLT5jczBfYm5kcyA9IENGR19ERFJfQ1MwX0JORFM7Ci0JZGRyLT5jczBfY29uZmlnID0gQ0ZHX0REUl9DUzBfQ09ORklHOworCWRkci0+Y3MwX2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUzsKKwlkZHItPmNzMF9jb25maWcgPSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHOwogCi0JZGRyLT50aW1pbmdfY2ZnXzMgPSBDRkdfRERSX1RJTUlOR18zOwotCWRkci0+dGltaW5nX2NmZ18wID0gQ0ZHX0REUl9USU1JTkdfMDsKLQlkZHItPnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JZGRyLT50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWRkci0+c2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERV8xOwotCWRkci0+c2RyYW1fbW9kZV8yID0gQ0ZHX0REUl9NT0RFXzI7Ci0JZGRyLT5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFJfSU5URVJWQUw7Ci0JZGRyLT5zZHJhbV9kYXRhX2luaXQgPSBDRkdfRERSX0RBVEFfSU5JVDsKLQlkZHItPnNkcmFtX2Nsa19jbnRsID0gQ0ZHX0REUl9DTEtfQ1RSTDsKLQlkZHItPnNkcmFtX2NmZ18yID0gQ0ZHX0REUl9DT05UUk9MMjsKKwlkZHItPnRpbWluZ19jZmdfMyA9IENPTkZJR19TWVNfRERSX1RJTUlOR18zOworCWRkci0+dGltaW5nX2NmZ18wID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzA7CisJZGRyLT50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlkZHItPnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWRkci0+c2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREVfMTsKKwlkZHItPnNkcmFtX21vZGVfMiA9IENPTkZJR19TWVNfRERSX01PREVfMjsKKwlkZHItPnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CisJZGRyLT5zZHJhbV9kYXRhX2luaXQgPSBDT05GSUdfU1lTX0REUl9EQVRBX0lOSVQ7CisJZGRyLT5zZHJhbV9jbGtfY250bCA9IENPTkZJR19TWVNfRERSX0NMS19DVFJMOworCWRkci0+c2RyYW1fY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9DT05UUk9MMjsKIAogI2lmIGRlZmluZWQgKENPTkZJR19ERFJfRUNDKQotCWRkci0+ZXJyX2ludF9lbiA9IENGR19ERFJfRVJSX0lOVF9FTjsKLQlkZHItPmVycl9kaXNhYmxlID0gQ0ZHX0REUl9FUlJfRElTOwotCWRkci0+ZXJyX3NiZSA9IENGR19ERFJfU0JFOworCWRkci0+ZXJyX2ludF9lbiA9IENPTkZJR19TWVNfRERSX0VSUl9JTlRfRU47CisJZGRyLT5lcnJfZGlzYWJsZSA9IENPTkZJR19TWVNfRERSX0VSUl9ESVM7CisJZGRyLT5lcnJfc2JlID0gQ09ORklHX1NZU19ERFJfU0JFOwogI2VuZGlmCiAJYXNtKCJzeW5jO2lzeW5jIik7CiAKIAl1ZGVsYXkoNTAwKTsKIAotCWRkci0+c2RyYW1fY2ZnID0gQ0ZHX0REUl9DT05UUk9MOworCWRkci0+c2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfQ09OVFJPTDsKIAogI2lmIGRlZmluZWQoQ09ORklHX0VDQ19JTklUX1ZJQV9ERFJDT05UUk9MTEVSKQogCWRfaW5pdCA9IDE7CkBAIC0xNTYsNyArMTU2LDcgQEAKIHZvaWQKIHBjaV9pbml0X2JvYXJkKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAl1aW50IGRldmRpc3IgPSBndXItPmRldmRpc3I7CiAJdWludCBzZHJzMl9pb19zZWwgPQogCQkoZ3VyLT5wb3JkZXZzciAmIE1QQzg1eHhfUE9SREVWU1JfU1JEUzJfSU9fU0VMKSA+PiAyNzsKQEAgLTE3Niw3ICsxNzYsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BDSUUzCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJRTNfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJRTNfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpZTNfaG9zZTsKIAlpbnQgcGNpZV9lcCA9IChob3N0X2FnZW50ID09IDEpOwpAQCAtMTk0LDIzICsxOTQsMjMgQEAKIAogCQkvKiBpbmJvdW5kICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX0JVUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCQkgICAgICAgQ0ZHX1BDSUUzX01FTV9CQVNFLAotCQkJICAgICAgIENGR19QQ0lFM19NRU1fUEhZUywKLQkJCSAgICAgICBDRkdfUENJRTNfTUVNX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFM19NRU1fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTNfTUVNX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJCS8qIG91dGJvdW5kIGlvICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkJICAgICAgIENGR19QQ0lFM19JT19CQVNFLAotCQkJICAgICAgIENGR19QQ0lFM19JT19QSFlTLAotCQkJICAgICAgIENGR19QQ0lFM19JT19TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTNfSU9fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUzX0lPX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFM19JT19TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7CkBAIC0yMzQsNyArMjM0LDcgQEAKIAogI2lmZGVmIENPTkZJR19QQ0lFMQogIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0lFMV9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0lFMV9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2llMV9ob3NlOwogCWludCBwY2llX2VwID0gKGhvc3RfYWdlbnQgPT0gNSk7CkBAIC0yNTMsMzIgKzI1MywzMiBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX0lPX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX0lPX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX0lPX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfSU9fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX0lPX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9JTyk7CiAKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKLSNpZmRlZiBDRkdfUENJRTFfTUVNX0JBU0UyCisjaWZkZWYgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRTIKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAzLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fQkFTRTIsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9QSFlTMiwKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX1NJWkUyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX1NJWkUyLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50Kys7CiAjZW5kaWYKQEAgLTMwMyw3ICszMDMsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BDSUUyCiAgewotCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ0ZHX1BDSUUyX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSUUyX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaWUyX2hvc2U7CiAJaW50IHBjaWVfZXAgPSAoaG9zdF9hZ2VudCA9PSAzKTsKQEAgLTMyMSwzMiArMzIxLDMyIEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJICAgICAgIENGR19QQ0lFMl9NRU1fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJRTJfTUVNX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSUUyX01FTV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTJfTUVNX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMl9NRU1fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUyX01FTV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSAgICAgICBDRkdfUENJRTJfSU9fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJRTJfSU9fUEhZUywKLQkJCSAgICAgICBDRkdfUENJRTJfSU9fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUyX0lPX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMl9JT19QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTJfSU9fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAogCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwotI2lmZGVmIENGR19QQ0lFMl9NRU1fQkFTRTIKKyNpZmRlZiBDT05GSUdfU1lTX1BDSUUyX01FTV9CQVNFMgogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDMsCi0JCQkgICAgICAgQ0ZHX1BDSUUyX01FTV9CQVNFMiwKLQkJCSAgICAgICBDRkdfUENJRTJfTUVNX1BIWVMyLAotCQkJICAgICAgIENGR19QQ0lFMl9NRU1fU0laRTIsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMl9NRU1fQkFTRTIsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMl9NRU1fUEhZUzIsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMl9NRU1fU0laRTIsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCQlob3NlLT5yZWdpb25fY291bnQrKzsKICNlbmRpZgpAQCAtMzcwLDcgKzM3MCw3IEBACiAKICNpZmRlZiBDT05GSUdfUENJMQogewotCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ0ZHX1BDSTFfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJMV9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2kxX2hvc2U7CiAKQEAgLTM5NCwzMSArMzk0LDMxIEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9CQVNFLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9QSFlTLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSAgICAgICBDRkdfUENJMV9JT19CQVNFLAotCQkJICAgICAgIENGR19QQ0kxX0lPX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSTFfSU9fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKLSNpZmRlZiBDRkdfUENJMV9NRU1fQkFTRTIKKyNpZmRlZiBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UyCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMywKLQkJCSAgICAgICBDRkdfUENJMV9NRU1fQkFTRTIsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1BIWVMyLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9TSVpFMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUzIsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFMiwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAJCWhvc2UtPnJlZ2lvbl9jb3VudCsrOwogI2VuZGlmCkBAIC00NDIsNyArNDQyLDcgQEAKIGludCBib2FyZF9lYXJseV9pbml0X3Iodm9pZCkKIHsKIAl1bnNpZ25lZCBpbnQgaTsKLQljb25zdCB1bnNpZ25lZCBpbnQgZmxhc2hiYXNlID0gQ0ZHX0ZMQVNIX0JBU0U7CisJY29uc3QgdW5zaWduZWQgaW50IGZsYXNoYmFzZSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAljb25zdCB1OCBmbGFzaF9lc2VsID0gMTsKIAogCS8qCkBAIC02MTAsNyArNjEwLDcgQEAKIAogaW50IGlzX3NhdGFfc3VwcG9ydGVkKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAl1aW50IGRldmRpc3IgPSBndXItPmRldmRpc3I7CiAJdWludCBzZHJzMl9pb19zZWwgPQogCQkoZ3VyLT5wb3JkZXZzciAmIE1QQzg1eHhfUE9SREVWU1JfU1JEUzJfSU9fU0VMKSA+PiAyNzsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTM2ZHMvdGxiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODUzNmRzL3RsYi5jCmluZGV4IDI4YTlmYTguLjdjY2MxNTAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTM2ZHMvdGxiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1MzZkcy90bGIuYwpAQCAtMjgsMTYgKzI4LDE2IEBACiAKIHN0cnVjdCBmc2xfZV90bGJfZW50cnkgdGxiX3RhYmxlW10gPSB7CiAJLyogVExCIDAgLSBmb3IgdGVtcCBzdGFjayBpbiBjYWNoZSAqLwotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIsIENGR19JTklUX1JBTV9BRERSLAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKIApAQCAtNDcsMjMgKzQ3LDIzIEBACiAKIAkvKiBUTEIgMSAqLwogCS8qICpJKkcqIC0gQ0NTUkJBUiAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0NDU1JCQVIsIENGR19DQ1NSQkFSX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0NDU1JCQVIsIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzFNLCAxKSwKIAogCS8qIFcqKkcqIC0gRmxhc2gvcHJvbWpldCwgbG9jYWxidXMgKi8KIAkvKiBUaGlzIHdpbGwgYmUgY2hhbmdlZCB0byAqSSpHKiBhZnRlciByZWxvY2F0aW9uIHRvIFJBTS4gKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9XfE1BUzJfRywKIAkJICAgICAgMCwgMSwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCiAJLyogKkkqRyogLSBQQ0kgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTLCBDRkdfUENJMV9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzFHLCAxKSwKIAogCS8qICpJKkcqIC0gUENJIEkvTyAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTFfSU9fUEhZUywgQ0ZHX1BDSTFfSU9fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9JT19QSFlTLCBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDMsIEJPT0tFX1BBR0VTWl8yNTZLLCAxKSwKIH07CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MGFkcy9sYXcuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQwYWRzL2xhdy5jCmluZGV4IDNiOGJkMDUuLjdkZDhmMjkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQwYWRzL2xhdy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQwYWRzL2xhdy5jCkBAIC00NiwxMyArNDYsMTMgQEAKIAogc3RydWN0IGxhd19lbnRyeSBsYXdfdGFibGVbXSA9IHsKICNpZm5kZWYgQ09ORklHX1NQRF9FRVBST00KLQlTRVRfTEFXKENGR19ERFJfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMTI4TSwgTEFXX1RSR1RfSUZfRERSKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzEyOE0sIExBV19UUkdUX0lGX0REUiksCiAjZW5kaWYKLQlTRVRfTEFXKENGR19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0kpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0kpLAogCS8qIFRoaXMgaXMgbm90IHNvIG11Y2ggdGhlIFNEUkFNIG1hcCBhcyBpdCBpcyB0aGUgd2hvbGUgbG9jYWxidXMgbWFwLiAqLwotCVNFVF9MQVcoQ0ZHX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAotCVNFVF9MQVcoQ0ZHX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSSksCi0JU0VUX0xBVyhDRkdfUklPX01FTV9CQVNFLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1JJTyksCisJU0VUX0xBVyhDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0kpLAorCVNFVF9MQVcoQ09ORklHX1NZU19SSU9fTUVNX0JBU0UsIExBV0FSX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUklPKSwKIH07CiAKIGludCBudW1fbGF3X2VudHJpZXMgPSBBUlJBWV9TSVpFKGxhd190YWJsZSk7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MGFkcy9tcGM4NTQwYWRzLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MGFkcy9tcGM4NTQwYWRzLmMKaW5kZXggMDA1ZTRkOS4uN2RjY2QzNyAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDBhZHMvbXBjODU0MGFkcy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQwYWRzL21wYzg1NDBhZHMuYwpAQCAtNzEsNyArNzEsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfRERSX0RMTCkKIAl7Ci0JICAgIHZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7CisJICAgIHZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCSAgICB1aW50IHRlbXBfZGRyZGxsID0gMDsKIAogCSAgICAvKgpAQCAtMTE2LDggKzExNiw4IEBACiB2b2lkCiBsb2NhbF9idXNfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAKIAl1aW50IGNsa2RpdjsKIAl1aW50IGxiY19oejsKQEAgLTEzNywxMCArMTM3LDEwIEBACiAJbGJjX2h6ID0gc3lzaW5mby5mcmVxU3lzdGVtQnVzIC8gMTAwMDAwMCAvIGNsa2RpdjsKIAogCWlmIChsYmNfaHogPCA2NikgewotCQlsYmMtPmxjcnIgPSBDRkdfTEJDX0xDUlIgfCAweDgwMDAwMDAwOwkvKiBETEwgQnlwYXNzICovCisJCWxiYy0+bGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlIgfCAweDgwMDAwMDAwOwkvKiBETEwgQnlwYXNzICovCiAKIAl9IGVsc2UgaWYgKGxiY19oeiA+PSAxMzMpIHsKLQkJbGJjLT5sY3JyID0gQ0ZHX0xCQ19MQ1JSICYgKH4weDgwMDAwMDAwKTsgLyogRExMIEVuYWJsZWQgKi8KKwkJbGJjLT5sY3JyID0gQ09ORklHX1NZU19MQkNfTENSUiAmICh+MHg4MDAwMDAwMCk7IC8qIERMTCBFbmFibGVkICovCiAKIAl9IGVsc2UgewogCQkvKgpAQCAtMTU1LDcgKzE1NSw3IEBACiAJCQlsYmMtPmxjcnIgPSAweDEwMDAwMDA0OwogCQl9CiAKLQkJbGJjLT5sY3JyID0gQ0ZHX0xCQ19MQ1JSICYgKH4weDgwMDAwMDAwKTsgLyogRExMIEVuYWJsZWQgKi8KKwkJbGJjLT5sY3JyID0gQ09ORklHX1NZU19MQkNfTENSUiAmICh+MHg4MDAwMDAwMCk7IC8qIERMTCBFbmFibGVkICovCiAJCXVkZWxheSgyMDApOwogCiAJCS8qCkBAIC0xNzYsNTIgKzE3Niw1MiBAQAogdm9pZAogc2RyYW1faW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKLQl1aW50ICpzZHJhbV9hZGRyID0gKHVpbnQgKilDRkdfTEJDX1NEUkFNX0JBU0U7CisJdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0xCQ19BRERSKTsKKwl1aW50ICpzZHJhbV9hZGRyID0gKHVpbnQgKilDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFOwogCiAJcHV0cygiICAgIFNEUkFNOiAiKTsKLQlwcmludF9zaXplIChDRkdfTEJDX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCwgIlxuIik7CisJcHJpbnRfc2l6ZSAoQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0LCAiXG4iKTsKIAogCS8qCiAJICogU2V0dXAgU0RSQU0gQmFzZSBhbmQgT3B0aW9uIFJlZ2lzdGVycwogCSAqLwotCWxiYy0+b3IyID0gQ0ZHX09SMl9QUkVMSU07Ci0JbGJjLT5icjIgPSBDRkdfQlIyX1BSRUxJTTsKLQlsYmMtPmxiY3IgPSBDRkdfTEJDX0xCQ1I7CisJbGJjLT5vcjIgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07CisJbGJjLT5icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CisJbGJjLT5sYmNyID0gQ09ORklHX1NZU19MQkNfTEJDUjsKIAlhc20oIm1zeW5jIik7CiAKLQlsYmMtPmxzcnQgPSBDRkdfTEJDX0xTUlQ7Ci0JbGJjLT5tcnRwciA9IENGR19MQkNfTVJUUFI7CisJbGJjLT5sc3J0ID0gQ09ORklHX1NZU19MQkNfTFNSVDsKKwlsYmMtPm1ydHByID0gQ09ORklHX1NZU19MQkNfTVJUUFI7CiAJYXNtKCJzeW5jIik7CiAKIAkvKgogCSAqIENvbmZpZ3VyZSB0aGUgU0RSQU0gY29udHJvbGxlci4KIAkgKi8KLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl8xOworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xOwogCWFzbSgic3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKIAl1ZGVsYXkoMTAwKTsKIAotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzI7CisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzI7CiAJYXNtKCJzeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwogCXVkZWxheSgxMDApOwogCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfMzsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfMzsKIAlhc20oInN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CiAJdWRlbGF5KDEwMCk7CiAKLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl80OworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl80OwogCWFzbSgic3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKIAl1ZGVsYXkoMTAwKTsKIAotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzU7CisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzU7CiAJYXNtKCJzeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwpAQCAtMjM0LDE1ICsyMzQsMTUgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBsb25nIGludCBmaXhlZF9zZHJhbSAodm9pZCkKIHsKLSAgI2lmbmRlZiBDRkdfUkFNQk9PVAotCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkcj0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRERSX0FERFIpOworICAjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAorCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkcj0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0REUl9BRERSKTsKIAotCWRkci0+Y3MwX2JuZHMgPSBDRkdfRERSX0NTMF9CTkRTOwotCWRkci0+Y3MwX2NvbmZpZyA9IENGR19ERFJfQ1MwX0NPTkZJRzsKLQlkZHItPnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JZGRyLT50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWRkci0+c2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERTsKLQlkZHItPnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKKwlkZHItPmNzMF9ibmRzID0gQ09ORklHX1NZU19ERFJfQ1MwX0JORFM7CisJZGRyLT5jczBfY29uZmlnID0gQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRzsKKwlkZHItPnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWRkci0+dGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJZGRyLT5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERTsKKwlkZHItPnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CiAgICAgI2lmIGRlZmluZWQgKENPTkZJR19ERFJfRUNDKQogCWRkci0+ZXJyX2Rpc2FibGUgPSAweDAwMDAwMDBEOwogCWRkci0+ZXJyX3NiZSA9IDB4MDBmZjAwMDA7CkBAIC0yNTEsMTQgKzI1MSwxNCBAQAogCXVkZWxheSg1MDApOwogICAgICNpZiBkZWZpbmVkIChDT05GSUdfRERSX0VDQykKIAkvKiBFbmFibGUgRUNDIGNoZWNraW5nICovCi0JZGRyLT5zZHJhbV9jZmcgPSAoQ0ZHX0REUl9DT05UUk9MIHwgMHgyMDAwMDAwMCk7CisJZGRyLT5zZHJhbV9jZmcgPSAoQ09ORklHX1NZU19ERFJfQ09OVFJPTCB8IDB4MjAwMDAwMDApOwogICAgICNlbHNlCi0JZGRyLT5zZHJhbV9jZmcgPSBDRkdfRERSX0NPTlRST0w7CisJZGRyLT5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX0REUl9DT05UUk9MOwogICAgICNlbmRpZgogCWFzbSgic3luYzsgaXN5bmM7IG1zeW5jIik7CiAJdWRlbGF5KDUwMCk7CiAgICNlbmRpZgotCXJldHVybiBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OworCXJldHVybiBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKIH0KICNlbmRpZgkvKiAhZGVmaW5lZChDT05GSUdfU1BEX0VFUFJPTSkgKi8KIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDBhZHMvdGxiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MGFkcy90bGIuYwppbmRleCA0ZmUyODYyLi4yZWMzY2NjIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MGFkcy90bGIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MGFkcy90bGIuYwpAQCAtMjgsMTYgKzI4LDE2IEBACiAKIHN0cnVjdCBmc2xfZV90bGJfZW50cnkgdGxiX3RhYmxlW10gPSB7CiAJLyogVExCIDAgLSBmb3IgdGVtcCBzdGFjayBpbiBjYWNoZSAqLwotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIsIENGR19JTklUX1JBTV9BRERSLAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKIApAQCAtNDYsNyArNDYsNyBAQAogCSAqIDB4ZmYwMDAwMDAJMTZNCUZMQVNICiAJICogT3V0IG9mIHJlc2V0IHRoaXMgZW50cnkgaXMgb25seSA0Sy4KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzE2TSwgMSksCiAKQEAgLTU0LDcgKzU0LDcgQEAKIAkgKiBUTEIgMToJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg4MDAwMDAwMAkyNTZNCVBDSTEgTUVNIEZpcnN0IGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTLCBDRkdfUENJMV9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMSwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC02Miw3ICs2Miw3IEBACiAJICogVExCIDI6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4OTAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBTZWNvbmQgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDRkdfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC03MCw3ICs3MCw3IEBACiAJICogVExCIDM6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4YzAwMDAwMDAJMjU2TQlSYXBpZCBJTyBNRU0gRmlyc3QgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1JJT19NRU1fQkFTRSwgQ0ZHX1JJT19NRU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUklPX01FTV9CQVNFLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDMsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNzgsNyArNzgsNyBAQAogCSAqIFRMQiA0OgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGQwMDAwMDAwCTI1Nk0JUmFwaWQgSU8gTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwgQ0ZHX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsIENPTkZJR19TWVNfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDQsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtODcsNyArODcsNyBAQAogCSAqIDB4ZTAwMF8wMDAwCTFNCUNDU1JCQVIKIAkgKiAweGUyMDBfMDAwMAkxNk0JUENJMSBJTwogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0NDU1JCQVIsIENGR19DQ1NSQkFSX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0NDU1JCQVIsIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNSwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTk1LDcgKzk1LDcgQEAKIAkgKiBUTEIgNjoJNjRNCUNhY2hlYWJsZSwgbm9uLWd1YXJkZWQKIAkgKiAweGYwMDBfMDAwMAk2NE0JTEJDIFNEUkFNCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfTEJDX1NEUkFNX0JBU0UsIENGR19MQkNfU0RSQU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCA2LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtMTAzLDcgKzEwMyw3IEBACiAJICogVExCIDc6CTE2SwlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhmODAwMDAwMAkxNksJQkNTUiByZWdpc3RlcnMKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19CQ1NSLCBDRkdfQkNTUiwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQkNTUiwgQ09ORklHX1NZU19CQ1NSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNywgQk9PS0VfUEFHRVNaXzE2SywgMSksCiAKQEAgLTExNywxMSArMTE3LDExIEBACiAJICogTGlrZWx5IGl0IG5lZWRzIHRvIGJlIGluY3JlYXNlZCBieSB0d28gZm9yIHRoZXNlIGVudHJpZXMuCiAJICovCiAjZXJyb3IoIlVwZGF0ZSB0aGUgbnVtYmVyIG9mIHRhYmxlIGVudHJpZXMgaW4gdGxiMV9lbnRyeSIpCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRERSX1NEUkFNX0JBU0UsIENGR19ERFJfU0RSQU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCA4LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIAotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0REUl9TRFJBTV9CQVNFICsgMHg0MDAwMDAwLCBDRkdfRERSX1NEUkFNX0JBU0UgKyAweDQwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICsgMHg0MDAwMDAwLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICsgMHg0MDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgOSwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQxY2RzL2xhdy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDFjZHMvbGF3LmMKaW5kZXggZmJmMmJkYy4uOGUzZGUyMiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDFjZHMvbGF3LmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDFjZHMvbGF3LmMKQEAgLTQ3LDEyICs0NywxMiBAQAogICovCiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7Ci0JU0VUX0xBVyhDRkdfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKLQlTRVRfTEFXKENGR19QQ0kyX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCi0JU0VUX0xBVyhDRkdfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJKSwKLQlTRVRfTEFXKENGR19QQ0kyX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8yKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMl9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJXzIpLAogCS8qIExCQyB3aW5kb3cgLSBtYXBzIDI1Nk0gMHhmMDAwMDAwMCAtPiAweGZmZmZmZmZmICovCi0JU0VUX0xBVyhDRkdfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCisJU0VUX0xBVyhDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAogfTsKIAogaW50IG51bV9sYXdfZW50cmllcyA9IEFSUkFZX1NJWkUobGF3X3RhYmxlKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQxY2RzL21wYzg1NDFjZHMuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQxY2RzL21wYzg1NDFjZHMuYwppbmRleCBkZTNhNzkxLi43YzM1YzM1IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MWNkcy9tcGM4NTQxY2RzLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDFjZHMvbXBjODU0MWNkcy5jCkBAIC0yMDAsNyArMjAwLDcgQEAKIAogaW50IGNoZWNrYm9hcmQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAogCS8qIFBDSSBzbG90IGluIFVTRVIgYml0cyBDU1JbNjo3XSBieSBjb252ZW50aW9uLiAqLwogCXVpbnQgcGNpX3Nsb3QgPSBnZXRfcGNpX3Nsb3QgKCk7CkBAIC0yNTgsNyArMjU4LDcgQEAKIAkJICogICAgT3ZlcnJpZGUgRExMID0gMSwgQ291cnNlIEFkaiA9IDEsIFRhcCBTZWxlY3QgPSAwCiAJCSAqLwogCi0JCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7CisJCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCiAJCWd1ci0+ZGRyZGxsY3IgPSAweDgxMDAwMDAwOwogCQlhc20oInN5bmM7aXN5bmM7bXN5bmMiKTsKQEAgLTI5MCw4ICsyOTAsOCBAQAogdm9pZAogbG9jYWxfYnVzX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOwotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCiAJdWludCBjbGtkaXY7CiAJdWludCBsYmNfaHo7CkBAIC0zMzcsNTYgKzMzNyw1NiBAQAogdm9pZAogc2RyYW1faW5pdCh2b2lkKQogewotI2lmIGRlZmluZWQoQ0ZHX09SMl9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX0JSMl9QUkVMSU0pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX09SMl9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjJfUFJFTElNKQogCiAJdWludCBpZHg7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOwotCXVpbnQgKnNkcmFtX2FkZHIgPSAodWludCAqKUNGR19MQkNfU0RSQU1fQkFTRTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOworCXVpbnQgKnNkcmFtX2FkZHIgPSAodWludCAqKUNPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0U7CiAJdWludCBjcHVfYm9hcmRfcmV2OwogCXVpbnQgbHNkbXJfY29tbW9uOwogCiAJcHV0cygiICAgIFNEUkFNOiAiKTsKIAotCXByaW50X3NpemUgKENGR19MQkNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0LCAiXG4iKTsKKwlwcmludF9zaXplIChDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQsICJcbiIpOwogCiAJLyoKIAkgKiBTZXR1cCBTRFJBTSBCYXNlIGFuZCBPcHRpb24gUmVnaXN0ZXJzCiAJICovCi0JbGJjLT5vcjIgPSBDRkdfT1IyX1BSRUxJTTsKKwlsYmMtPm9yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsKIAlhc20oIm1zeW5jIik7CiAKLQlsYmMtPmJyMiA9IENGR19CUjJfUFJFTElNOworCWxiYy0+YnIyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOwogCWFzbSgibXN5bmMiKTsKIAotCWxiYy0+bGJjciA9IENGR19MQkNfTEJDUjsKKwlsYmMtPmxiY3IgPSBDT05GSUdfU1lTX0xCQ19MQkNSOwogCWFzbSgibXN5bmMiKTsKIAogCi0JbGJjLT5sc3J0ID0gQ0ZHX0xCQ19MU1JUOwotCWxiYy0+bXJ0cHIgPSBDRkdfTEJDX01SVFBSOworCWxiYy0+bHNydCA9IENPTkZJR19TWVNfTEJDX0xTUlQ7CisJbGJjLT5tcnRwciA9IENPTkZJR19TWVNfTEJDX01SVFBSOwogCWFzbSgibXN5bmMiKTsKIAogCS8qCiAJICogRGV0ZXJtaW5lIHdoaWNoIGFkZHJlc3MgbGluZXMgdG8gdXNlIGJhZWQgb24gQ1BVIGJvYXJkIHJldi4KIAkgKi8KIAljcHVfYm9hcmRfcmV2ID0gZ2V0X2NwdV9ib2FyZF9yZXZpc2lvbigpOwotCWxzZG1yX2NvbW1vbiA9IENGR19MQkNfTFNETVJfQ09NTU9OOworCWxzZG1yX2NvbW1vbiA9IENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTjsKIAlpZiAoY3B1X2JvYXJkX3JldiA9PSBNUEM4NVhYX0NQVV9CT0FSRF9SRVZfMV8wKSB7Ci0JCWxzZG1yX2NvbW1vbiB8PSBDRkdfTEJDX0xTRE1SX0JTTUExNjE3OworCQlsc2Rtcl9jb21tb24gfD0gQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE2MTc7CiAJfSBlbHNlIGlmIChjcHVfYm9hcmRfcmV2ID09IE1QQzg1WFhfQ1BVX0JPQVJEX1JFVl8xXzEpIHsKLQkJbHNkbXJfY29tbW9uIHw9IENGR19MQkNfTFNETVJfQlNNQTE1MTY7CisJCWxzZG1yX2NvbW1vbiB8PSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTUxNjsKIAl9IGVsc2UgewogCQkvKgogCQkgKiBBc3N1bWUgc29tZXRoaW5nIHVuYWJsZSB0byBpZGVudGlmeSBpdHNlbGYgaXMKIAkJICogcmVhbGx5IG9sZCwgYW5kIGxpa2VseSBoYXMgbGluZXMgMTYvMTcgbWFwcGVkLgogCQkgKi8KLQkJbHNkbXJfY29tbW9uIHw9IENGR19MQkNfTFNETVJfQlNNQTE2MTc7CisJCWxzZG1yX2NvbW1vbiB8PSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTYxNzsKIAl9CiAKIAkvKgogCSAqIElzc3VlIFBSRUNIQVJHRSBBTEwgY29tbWFuZC4KIAkgKi8KLQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEw7CisJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTDsKIAlhc20oInN5bmM7bXN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC0zOTYsNyArMzk2LDcgQEAKIAkgKiBJc3N1ZSA4IEFVVE8gUkVGUkVTSCBjb21tYW5kcy4KIAkgKi8KIAlmb3IgKGlkeCA9IDA7IGlkeCA8IDg7IGlkeCsrKSB7Ci0JCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSDsKKwkJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSDsKIAkJYXNtKCJzeW5jO21zeW5jIik7CiAJCSpzZHJhbV9hZGRyID0gMHhmZjsKIAkJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC00MDYsNyArNDA2LDcgQEAKIAkvKgogCSAqIElzc3VlIDggTU9ERS1zZXQgY29tbWFuZC4KIAkgKi8KLQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9NUlc7CisJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVzsKIAlhc20oInN5bmM7bXN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC00MTUsNyArNDE1LDcgQEAKIAkvKgogCSAqIElzc3VlIE5PUk1BTCBPUCBjb21tYW5kLgogCSAqLwotCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDRkdfTEJDX0xTRE1SX09QX05PUk1BTDsKKwlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMOwogCWFzbSgic3luYzttc3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQxY2RzL3RsYi5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDFjZHMvdGxiLmMKaW5kZXggYzU0MzRhMC4uYmY5NTdjMCAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDFjZHMvdGxiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDFjZHMvdGxiLmMKQEAgLTI4LDE2ICsyOCwxNiBAQAogCiBzdHJ1Y3QgZnNsX2VfdGxiX2VudHJ5IHRsYl90YWJsZVtdID0gewogCS8qIFRMQiAwIC0gZm9yIHRlbXAgc3RhY2sgaW4gY2FjaGUgKi8KLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSLCBDRkdfSU5JVF9SQU1fQUREUiwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCiAKQEAgLTQ2LDcgKzQ2LDcgQEAKIAkgKiAweGZmMDAwMDAwCTE2TQlGTEFTSAogCSAqIE91dCBvZiByZXNldCB0aGlzIGVudHJ5IGlzIG9ubHkgNEsuCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl8xNk0sIDEpLAogCkBAIC01NCw3ICs1NCw3IEBACiAJICogVExCIDE6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ODAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMV9NRU1fUEhZUywgQ0ZHX1BDSTFfTUVNX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDEsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNjIsNyArNjIsNyBAQAogCSAqIFRMQiAyOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweDkwMDAwMDAwCTI1Nk0JUENJMSBNRU0gU2Vjb25kIGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDIsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNzAsNyArNzAsNyBAQAogCSAqIFRMQiAzOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGEwMDAwMDAwCTI1Nk0JUENJMiBNRU0gRmlyc3QgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTJfTUVNX1BIWVMsIENGR19QQ0kyX01FTV9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTLCBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAzLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTc4LDcgKzc4LDcgQEAKIAkgKiBUTEIgNDoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhiMDAwMDAwMAkyNTZNCVBDSTIgTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMl9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENGR19QQ0kyX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA0LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTg4LDcgKzg4LDcgQEAKIAkgKiAweGUyMDBfMDAwMAkxNk0JUENJMSBJTwogCSAqIDB4ZTMwMF8wMDAwCTE2TQlQQ0kyIElPCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfQ0NTUkJBUiwgQ0ZHX0NDU1JCQVJfUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQ0NTUkJBUiwgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA1LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtOTYsNyArOTYsNyBAQAogCSAqIFRMQiA2Ogk2NE0JQ2FjaGVhYmxlLCBub24tZ3VhcmRlZAogCSAqIDB4ZjAwMF8wMDAwCTY0TQlMQkMgU0RSQU0KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19MQkNfU0RSQU1fQkFTRSwgQ0ZHX0xCQ19TRFJBTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDYsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0NGRzL2xhdy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDRkcy9sYXcuYwppbmRleCA1NGNmMzZiLi4zMTdiYTI2IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0NGRzL2xhdy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQ0ZHMvbGF3LmMKQEAgLTI4LDE1ICsyOCwxNSBAQAogI2luY2x1ZGUgPGFzbS9tbXUuaD4KIAogc3RydWN0IGxhd19lbnRyeSBsYXdfdGFibGVbXSA9IHsKLQlTRVRfTEFXKENGR19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfNjRLLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX0xCQ19OT05DQUNIRV9CQVNFLCBMQVdBUl9TSVpFXzEyOE0sIExBV19UUkdUX0lGX0xCQyksCi0JU0VUX0xBVyhDRkdfUENJRTFfTUVNX1BIWVMsIExBV0FSX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKLQlTRVRfTEFXKENGR19QQ0lFMV9JT19QSFlTLCBMQVdfU0laRV82NEssIExBV19UUkdUX0lGX1BDSUVfMSksCi0JU0VUX0xBVyhDRkdfUENJRTJfTUVNX1BIWVMsIExBV0FSX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJRV8yKSwKLQlTRVRfTEFXKENGR19QQ0lFMl9JT19QSFlTLCBMQVdfU0laRV82NEssIExBV19UUkdUX0lGX1BDSUVfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfNjRLLCBMQVdfVFJHVF9JRl9QQ0kpLAorCVNFVF9MQVcoQ09ORklHX1NZU19MQkNfTk9OQ0FDSEVfQkFTRSwgTEFXQVJfU0laRV8xMjhNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUywgTEFXQVJfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTLCBMQVdfU0laRV82NEssIExBV19UUkdUX0lGX1BDSUVfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUyX01FTV9QSFlTLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSUVfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUyX0lPX1BIWVMsIExBV19TSVpFXzY0SywgTEFXX1RSR1RfSUZfUENJRV8yKSwKIAkvKiBjb250YWlucyBib3RoIFBDSUUzIE1FTSAmIElPIHNwYWNlICovCi0JU0VUX0xBVyhDRkdfUENJRTNfTUVNX1BIWVMsIExBV19TSVpFXzRNLCBMQVdfVFJHVF9JRl9QQ0lFXzMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFM19NRU1fUEhZUywgTEFXX1NJWkVfNE0sIExBV19UUkdUX0lGX1BDSUVfMyksCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDRkcy9tcGM4NTQ0ZHMuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQ0ZHMvbXBjODU0NGRzLmMKaW5kZXggZWFmNmZhMy4uODI2MTgwYyAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDRkcy9tcGM4NTQ0ZHMuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0NGRzL21wYzg1NDRkcy5jCkBAIC00NCw5ICs0NCw5IEBACiAKIGludCBjaGVja2JvYXJkICh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOwotCXZvbGF0aWxlIGNjc3JfbG9jYWxfZWNtX3QgKmVjbSA9ICh2b2lkICopKENGR19NUEM4NXh4X0VDTV9BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbG9jYWxfZWNtX3QgKmVjbSA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9FQ01fQUREUik7CiAKIAlpZiAoKHVpbnQpJmd1ci0+cG9ycGxsc3IgIT0gMHhlMDBlMDAwMCkgewogCQlwcmludGYoImltbWFwIHNpemUgZXJyb3IgJWx4XG4iLCh1bG9uZykmZ3VyLT5wb3JwbGxzcik7CkBAIC0xMDgsNyArMTA4LDcgQEAKIHZvaWQKIHBjaV9pbml0X2JvYXJkKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAl1aW50IGRldmRpc3IgPSBndXItPmRldmRpc3I7CiAJdWludCBpb19zZWwgPSAoZ3VyLT5wb3JkZXZzciAmIE1QQzg1eHhfUE9SREVWU1JfSU9fU0VMKSA+PiAxOTsKIAl1aW50IGhvc3RfYWdlbnQgPSAoZ3VyLT5wb3JibXNyICYgTVBDODV4eF9QT1JCTVNSX0hBKSA+PiAxNjsKQEAgLTEyNSw3ICsxMjUsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BDSUUzCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJRTNfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJRTNfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpZTNfaG9zZTsKIAlpbnQgcGNpZV9lcCA9IChob3N0X2FnZW50ID09IDEpOwpAQCAtMTQzLDMyICsxNDMsMzIgQEAKIAogCQkvKiBpbmJvdW5kICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX0JVUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCQkgICAgICAgQ0ZHX1BDSUUzX01FTV9CQVNFLAotCQkJICAgICAgIENGR19QQ0lFM19NRU1fUEhZUywKLQkJCSAgICAgICBDRkdfUENJRTNfTUVNX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFM19NRU1fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTNfTUVNX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJCS8qIG91dGJvdW5kIGlvICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkJICAgICAgIENGR19QQ0lFM19JT19CQVNFLAotCQkJICAgICAgIENGR19QQ0lFM19JT19QSFlTLAotCQkJICAgICAgIENGR19QQ0lFM19JT19TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTNfSU9fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUzX0lPX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFM19JT19TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7Ci0jaWZkZWYgQ0ZHX1BDSUUzX01FTV9CQVNFMgorI2lmZGVmIENPTkZJR19TWVNfUENJRTNfTUVNX0JBU0UyCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMywKLQkJCSAgICAgICBDRkdfUENJRTNfTUVNX0JBU0UyLAotCQkJICAgICAgIENGR19QQ0lFM19NRU1fUEhZUzIsCi0JCQkgICAgICAgQ0ZHX1BDSUUzX01FTV9TSVpFMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUzX01FTV9CQVNFMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUzX01FTV9TSVpFMiwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAJCWhvc2UtPnJlZ2lvbl9jb3VudCsrOwogI2VuZGlmCkBAIC0xODUsNyArMTg1LDcgQEAKIAkJICogQWN0aXZhdGUgVUxJMTU3NSBsZWdhY3kgY2hpcCBieSBwZXJmb3JtaW5nIGEgZmFrZQogCQkgKiBtZW1vcnkgYWNjZXNzLiAgTmVlZGVkIHRvIG1ha2UgVUxJIFJUQyB3b3JrLgogCQkgKi8KLQkJaW5fYmUzMigodTMyICopQ0ZHX1BDSUUzX01FTV9CQVNFKTsKKwkJaW5fYmUzMigodTMyICopQ09ORklHX1NZU19QQ0lFM19NRU1fQkFTRSk7CiAJfSBlbHNlIHsKIAkJcHJpbnRmICgiICAgIFBDSUUzOiBkaXNhYmxlZFxuIik7CiAJfQpAQCAtMTk3LDcgKzE5Nyw3IEBACiAKICNpZmRlZiBDT05GSUdfUENJRTEKICB7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJRTFfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJRTFfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpZTFfaG9zZTsKIAlpbnQgcGNpZV9lcCA9IChob3N0X2FnZW50ID09IDUpOwpAQCAtMjE1LDMyICsyMTUsMzIgQEAKIAogCQkvKiBpbmJvdW5kICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX0JVUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9CQVNFLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fUEhZUywKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJCS8qIG91dGJvdW5kIGlvICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkJICAgICAgIENGR19QQ0lFMV9JT19CQVNFLAotCQkJICAgICAgIENGR19QQ0lFMV9JT19QSFlTLAotCQkJICAgICAgIENGR19QQ0lFMV9JT19TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfSU9fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9JT19TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7Ci0jaWZkZWYgQ0ZHX1BDSUUxX01FTV9CQVNFMgorI2lmZGVmIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UyCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMywKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX0JBU0UyLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fUEhZUzIsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9TSVpFMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9QSFlTMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFMiwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAJCWhvc2UtPnJlZ2lvbl9jb3VudCsrOwogI2VuZGlmCkBAIC0yNjUsNyArMjY1LDcgQEAKIAogI2lmZGVmIENPTkZJR19QQ0lFMgogIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0lFMl9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0lFMl9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2llMl9ob3NlOwogCWludCBwY2llX2VwID0gKGhvc3RfYWdlbnQgPT0gMyk7CkBAIC0yODMsMzIgKzI4MywzMiBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCSAgICAgICBDRkdfUENJRTJfTUVNX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSUUyX01FTV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lFMl9NRU1fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUyX01FTV9CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTJfTUVNX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMl9NRU1fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkgICAgICAgQ0ZHX1BDSUUyX0lPX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSUUyX0lPX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSUUyX0lPX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMl9JT19CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTJfSU9fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUyX0lPX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9JTyk7CiAKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKLSNpZmRlZiBDRkdfUENJRTJfTUVNX0JBU0UyCisjaWZkZWYgQ09ORklHX1NZU19QQ0lFMl9NRU1fQkFTRTIKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAzLAotCQkJICAgICAgIENGR19QQ0lFMl9NRU1fQkFTRTIsCi0JCQkgICAgICAgQ0ZHX1BDSUUyX01FTV9QSFlTMiwKLQkJCSAgICAgICBDRkdfUENJRTJfTUVNX1NJWkUyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTJfTUVNX0JBU0UyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTJfTUVNX1BIWVMyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTJfTUVNX1NJWkUyLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50Kys7CiAjZW5kaWYKQEAgLTMzMiw3ICszMzIsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BDSTEKIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0kxX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSTFfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpMV9ob3NlOwogCkBAIC0zNTYsMzEgKzM1NiwzMSBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCSAgICAgICBDRkdfUENJMV9NRU1fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJMV9NRU1fUEhZUywKLQkJCSAgICAgICBDRkdfUENJMV9NRU1fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkgICAgICAgQ0ZHX1BDSTFfSU9fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJMV9JT19QSFlTLAotCQkJICAgICAgIENGR19QQ0kxX0lPX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9JTyk7CiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7Ci0jaWZkZWYgQ0ZHX1BDSUUzX01FTV9CQVNFMgorI2lmZGVmIENPTkZJR19TWVNfUENJRTNfTUVNX0JBU0UyCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMywKLQkJCSAgICAgICBDRkdfUENJRTNfTUVNX0JBU0UyLAotCQkJICAgICAgIENGR19QQ0lFM19NRU1fUEhZUzIsCi0JCQkgICAgICAgQ0ZHX1BDSUUzX01FTV9TSVpFMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUzX01FTV9CQVNFMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUzX01FTV9TSVpFMiwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAJCWhvc2UtPnJlZ2lvbl9jb3VudCsrOwogI2VuZGlmCkBAIC00NzAsNyArNDcwLDcgQEAKIHsKICNpZmRlZiBDT05GSUdfVFNFQ19FTkVUCiAJc3RydWN0IHRzZWNfaW5mb19zdHJ1Y3QgdHNlY19pbmZvWzJdOwotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAJdWludCBpb19zZWwgPSAoZ3VyLT5wb3JkZXZzciAmIE1QQzg1eHhfUE9SREVWU1JfSU9fU0VMKSA+PiAxOTsKIAlpbnQgbnVtID0gMDsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDRkcy90bGIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQ0ZHMvdGxiLmMKaW5kZXggNDBlMDQ5OS4uYzc0NDJiMiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDRkcy90bGIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0NGRzL3RsYi5jCkBAIC0yOCwxNiArMjgsMTYgQEAKIAogc3RydWN0IGZzbF9lX3RsYl9lbnRyeSB0bGJfdGFibGVbXSA9IHsKIAkvKiBUTEIgMCAtIGZvciB0ZW1wIHN0YWNrIGluIGNhY2hlICovCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiwgQ0ZHX0lOSVRfUkFNX0FERFIsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAogCS8qCkBAIC00NSwyOCArNDUsMjggQEAKIAkgKiAweGZjMDAwMDAwCTY0TQlDb3ZlcnMgRkxBU0ggYXQgMHhGRTgwMDAwMCBhbmQgMHhGRjgwMDAwMAogCSAqIE91dCBvZiByZXNldCB0aGlzIGVudHJ5IGlzIG9ubHkgNEsuCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfQk9PVF9CTE9DSywgQ0ZHX0JPT1RfQkxPQ0ssCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0JPT1RfQkxPQ0ssIENPTkZJR19TWVNfQk9PVF9CTE9DSywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCS8qCiAJICogVExCIDE6CTFHCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweDgwMDAwMDAwCTFHCVBDSUUgIDgsOSxhLGIKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0lFX1BIWVMsIENGR19QQ0lFX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSUVfUEhZUywgQ09ORklHX1NZU19QQ0lFX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAxLCBCT09LRV9QQUdFU1pfMUcsIDEpLAogCiAJLyoKIAkgKiBUTEIgMjoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJX1BIWVMsIENGR19QQ0lfUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJX1BIWVMsIENPTkZJR19TWVNfUENJX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAyLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKIAkvKgogCSAqIFRMQiAzOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0lfUEhZUyArIDB4MTAwMDAwMDAsIENGR19QQ0lfUEhZUyArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSV9QSFlTICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19QQ0lfUEhZUyArIDB4MTAwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAzLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTc1LDcgKzc1LDcgQEAKIAkgKiAweGUwMDBfMDAwMAkxTQlDQ1NSQkFSCiAJICogMHhlMTAwXzAwMDAJMjU1TQlQQ0kgSU8gcmFuZ2UKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDQsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC04Myw3ICs4Myw3IEBACiAJICogVExCIDU6CTY0TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhmODAwMDAwMAk2NE0JUElYSVMgMHhGODAwMDAwMCAtIDB4RkJGRkZGRkYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19MQkNfTk9OQ0FDSEVfQkFTRSwgQ0ZHX0xCQ19OT05DQUNIRV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19MQkNfTk9OQ0FDSEVfQkFTRSwgQ09ORklHX1NZU19MQkNfTk9OQ0FDSEVfQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogfTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQ4Y2RzL2xhdy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDhjZHMvbGF3LmMKaW5kZXggMzRiOWQxYy4uOTg3NDhhYSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDhjZHMvbGF3LmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDhjZHMvbGF3LmMKQEAgLTUxLDIyICs1MSwyMiBAQAogICovCiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7Ci0jaWZkZWYgQ0ZHX1BDSTFfTUVNX1BIWVMKLQlTRVRfTEFXKENGR19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSSksCisjaWZkZWYgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSSksCiAjZW5kaWYKLSNpZmRlZiBDRkdfUENJMl9NRU1fUEhZUwotCVNFVF9MQVcoQ0ZHX1BDSTJfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8yKSwKLQlTRVRfTEFXKENGR19QQ0kyX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCisjaWZkZWYgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8yKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMl9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJXzIpLAogI2VuZGlmCi0jaWZkZWYgQ0ZHX1BDSUUxX01FTV9QSFlTCi0JU0VUX0xBVyhDRkdfUENJRTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSUVfMSksCi0JU0VUX0xBVyhDRkdfUENJRTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSUVfMSksCisjaWZkZWYgQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUworCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSUVfMSksCiAjZW5kaWYKIAkvKiBMQkMgd2luZG93IC0gbWFwcyAyNTZNIDB4ZjAwMDAwMDAgLT4gMHhmZmZmZmZmZiAqLwotCVNFVF9MQVcoQ0ZHX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAotI2lmZGVmIENGR19SSU9fTUVNX1BIWVMKLQlTRVRfTEFXKENGR19SSU9fTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1JJTyksCisJU0VUX0xBVyhDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAorI2lmZGVmIENPTkZJR19TWVNfUklPX01FTV9QSFlTCisJU0VUX0xBVyhDT05GSUdfU1lTX1JJT19NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUklPKSwKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDhjZHMvbXBjODU0OGNkcy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDhjZHMvbXBjODU0OGNkcy5jCmluZGV4IDg0ZDM4NTAuLjg3NTYyOGQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQ4Y2RzL21wYzg1NDhjZHMuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0OGNkcy9tcGM4NTQ4Y2RzLmMKQEAgLTQ5LDggKzQ5LDggQEAKIAogaW50IGNoZWNrYm9hcmQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKLQl2b2xhdGlsZSBjY3NyX2xvY2FsX2VjbV90ICplY20gPSAodm9pZCAqKShDRkdfTVBDODV4eF9FQ01fQUREUik7CisJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9sb2NhbF9lY21fdCAqZWNtID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0VDTV9BRERSKTsKIAogCS8qIFBDSSBzbG90IGluIFVTRVIgYml0cyBDU1JbNjo3XSBieSBjb252ZW50aW9uLiAqLwogCXVpbnQgcGNpX3Nsb3QgPSBnZXRfcGNpX3Nsb3QgKCk7CkBAIC0xMDYsNyArMTA2LDcgQEAKIAkJICogICAgT3ZlcnJpZGUgRExMID0gMSwgQ291cnNlIEFkaiA9IDEsIFRhcCBTZWxlY3QgPSAwCiAJCSAqLwogCi0JCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7CisJCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCiAJCWd1ci0+ZGRyZGxsY3IgPSAweDgxMDAwMDAwOwogCQlhc20oInN5bmM7aXN5bmM7bXN5bmMiKTsKQEAgLTE0MCw4ICsxNDAsOCBAQAogdm9pZAogbG9jYWxfYnVzX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOwotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCiAJdWludCBjbGtkaXY7CiAJdWludCBsYmNfaHo7CkBAIC0xNzQsNDYgKzE3NCw0NiBAQAogdm9pZAogc2RyYW1faW5pdCh2b2lkKQogewotI2lmIGRlZmluZWQoQ0ZHX09SMl9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX0JSMl9QUkVMSU0pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX09SMl9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjJfUFJFTElNKQogCiAJdWludCBpZHg7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOwotCXVpbnQgKnNkcmFtX2FkZHIgPSAodWludCAqKUNGR19MQkNfU0RSQU1fQkFTRTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOworCXVpbnQgKnNkcmFtX2FkZHIgPSAodWludCAqKUNPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0U7CiAJdWludCBjcHVfYm9hcmRfcmV2OwogCXVpbnQgbHNkbXJfY29tbW9uOwogCiAJcHV0cygiICAgIFNEUkFNOiAiKTsKIAotCXByaW50X3NpemUgKENGR19MQkNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0LCAiXG4iKTsKKwlwcmludF9zaXplIChDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQsICJcbiIpOwogCiAJLyoKIAkgKiBTZXR1cCBTRFJBTSBCYXNlIGFuZCBPcHRpb24gUmVnaXN0ZXJzCiAJICovCi0JbGJjLT5vcjIgPSBDRkdfT1IyX1BSRUxJTTsKKwlsYmMtPm9yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsKIAlhc20oIm1zeW5jIik7CiAKLQlsYmMtPmJyMiA9IENGR19CUjJfUFJFTElNOworCWxiYy0+YnIyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOwogCWFzbSgibXN5bmMiKTsKIAotCWxiYy0+bGJjciA9IENGR19MQkNfTEJDUjsKKwlsYmMtPmxiY3IgPSBDT05GSUdfU1lTX0xCQ19MQkNSOwogCWFzbSgibXN5bmMiKTsKIAogCi0JbGJjLT5sc3J0ID0gQ0ZHX0xCQ19MU1JUOwotCWxiYy0+bXJ0cHIgPSBDRkdfTEJDX01SVFBSOworCWxiYy0+bHNydCA9IENPTkZJR19TWVNfTEJDX0xTUlQ7CisJbGJjLT5tcnRwciA9IENPTkZJR19TWVNfTEJDX01SVFBSOwogCWFzbSgibXN5bmMiKTsKIAogCS8qCiAJICogTVBDODU0OCB1c2VzICJuZXciIDE1LTE2IHN0eWxlIGFkZHJlc3NpbmcuCiAJICovCiAJY3B1X2JvYXJkX3JldiA9IGdldF9jcHVfYm9hcmRfcmV2aXNpb24oKTsKLQlsc2Rtcl9jb21tb24gPSBDRkdfTEJDX0xTRE1SX0NPTU1PTjsKLQlsc2Rtcl9jb21tb24gfD0gQ0ZHX0xCQ19MU0RNUl9CU01BMTUxNjsKKwlsc2Rtcl9jb21tb24gPSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT047CisJbHNkbXJfY29tbW9uIHw9IENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNTE2OwogCiAJLyoKIAkgKiBJc3N1ZSBQUkVDSEFSR0UgQUxMIGNvbW1hbmQuCiAJICovCi0JbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENGR19MQkNfTFNETVJfT1BfUENIQUxMOworCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEw7CiAJYXNtKCJzeW5jO21zeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwpAQCAtMjIzLDcgKzIyMyw3IEBACiAJICogSXNzdWUgOCBBVVRPIFJFRlJFU0ggY29tbWFuZHMuCiAJICovCiAJZm9yIChpZHggPSAwOyBpZHggPCA4OyBpZHgrKykgewotCQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0g7CisJCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0g7CiAJCWFzbSgic3luYzttc3luYyIpOwogCQkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwpAQCAtMjMzLDcgKzIzMyw3IEBACiAJLyoKIAkgKiBJc3N1ZSA4IE1PREUtc2V0IGNvbW1hbmQuCiAJICovCi0JbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENGR19MQkNfTFNETVJfT1BfTVJXOworCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlc7CiAJYXNtKCJzeW5jO21zeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwpAQCAtMjQyLDcgKzI0Miw3IEBACiAJLyoKIAkgKiBJc3N1ZSBOT1JNQUwgT1AgY29tbWFuZC4KIAkgKi8KLQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUw7CisJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTDsKIAlhc20oInN5bmM7bXN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC0yOTAsMTQgKzI5MCwxNCBAQAogdm9pZAogcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCXVpbnQgaW9fc2VsID0gKGd1ci0+cG9yZGV2c3IgJiBNUEM4NXh4X1BPUkRFVlNSX0lPX1NFTCkgPj4gMTk7CiAJdWludCBob3N0X2FnZW50ID0gKGd1ci0+cG9yYm1zciAmIE1QQzg1eHhfUE9SQk1TUl9IQSkgPj4gMTY7CiAKIAogI2lmZGVmIENPTkZJR19QQ0kxCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJMV9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0kxX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaTFfaG9zZTsKIAlzdHJ1Y3QgcGNpX2NvbmZpZ190YWJsZSAqdGFibGU7CkBAIC0zMjMsMjQgKzMyMywyNCBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9CQVNFLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9QSFlTLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSAgICAgICBDRkdfUENJMV9JT19CQVNFLAotCQkJICAgICAgIENGR19QQ0kxX0lPX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSTFfSU9fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKIApAQCAtMzkyLDcgKzM5Miw3IEBACiAKICNpZmRlZiBDT05GSUdfUENJRTEKIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0lFMV9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0lFMV9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2llMV9ob3NlOwogCWludCBwY2llX2VwID0gIChob3N0X2FnZW50ID09IDApIHx8IChob3N0X2FnZW50ID09IDIgKSB8fCAoaG9zdF9hZ2VudCA9PSAzKTsKQEAgLTQxMiwyMyArNDEyLDIzIEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSAgICAgICBDRkdfUENJRTFfSU9fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJRTFfSU9fUEhZUywKLQkJCSAgICAgICBDRkdfUENJRTFfSU9fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfSU9fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAogCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDhjZHMvdGxiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0OGNkcy90bGIuYwppbmRleCBhYjk5YWY3Li5lYWIyMTJhIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0OGNkcy90bGIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0OGNkcy90bGIuYwpAQCAtMjgsMTYgKzI4LDE2IEBACiAKIHN0cnVjdCBmc2xfZV90bGJfZW50cnkgdGxiX3RhYmxlW10gPSB7CiAJLyogVExCIDAgLSBmb3IgdGVtcCBzdGFjayBpbiBjYWNoZSAqLwotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIsIENGR19JTklUX1JBTV9BRERSLAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKIApAQCAtNDYsNyArNDYsNyBAQAogCSAqIDB4ZmYwMDAwMDAJMTZNCUZMQVNICiAJICogT3V0IG9mIHJlc2V0IHRoaXMgZW50cnkgaXMgb25seSA0Sy4KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19CT09UX0JMT0NLLCBDRkdfQk9PVF9CTE9DSywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQk9PVF9CTE9DSywgQ09ORklHX1NZU19CT09UX0JMT0NLLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzE2TSwgMSksCiAKQEAgLTU0LDIyICs1NCwyMiBAQAogCSAqIFRMQiAxOgkxRwlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg4MDAwMDAwMAkxRwlQQ0kxL1BDSUUgIDgsOSxhLGIKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0lfUEhZUywgQ0ZHX1BDSV9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0lfUEhZUywgQ09ORklHX1NZU19QQ0lfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDEsIEJPT0tFX1BBR0VTWl8xRywgMSksCiAKLSNpZmRlZiBDRkdfUklPX01FTV9QSFlTCisjaWZkZWYgQ09ORklHX1NZU19SSU9fTUVNX1BIWVMKIAkvKgogCSAqIFRMQiAyOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19SSU9fTUVNX0JBU0UsIENGR19SSU9fTUVNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAyLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKIAkvKgogCSAqIFRMQiAzOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLCBDRkdfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogI2VuZGlmCkBAIC04MCw3ICs4MCw3IEBACiAJICogMHhlMjEwXzAwMDAJMU0JUENJMiBJTwogCSAqIDB4ZTMwMF8wMDAwCTFNCVBDSWUgSU8KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC04OCw3ICs4OCw3IEBACiAJICogVExCIDY6CTY0TQlDYWNoZWFibGUsIG5vbi1ndWFyZGVkCiAJICogMHhmMDAwXzAwMDAJNjRNCUxCQyBTRFJBTQogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0xCQ19DQUNIRV9CQVNFLCBDRkdfTEJDX0NBQ0hFX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0xCQ19DQUNIRV9CQVNFLCBDT05GSUdfU1lTX0xCQ19DQUNIRV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgNiwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTk2LDcgKzk2LDcgQEAKIAkgKiBUTEIgNzoJNjRNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGY4MDAwMDAwCTY0TQlDQURNVVMgcmVnaXN0ZXJzLCByZWxvY2F0ZWQgTDJTUkFNCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfTEJDX05PTkNBQ0hFX0JBU0UsIENGR19MQkNfTk9OQ0FDSEVfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfTEJDX05PTkNBQ0hFX0JBU0UsIENPTkZJR19TWVNfTEJDX05PTkNBQ0hFX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA3LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIH07CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU1NWNkcy9sYXcuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTU1Y2RzL2xhdy5jCmluZGV4IGZiZjJiZGMuLjhlM2RlMjIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTU1Y2RzL2xhdy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTU1Y2RzL2xhdy5jCkBAIC00NywxMiArNDcsMTIgQEAKICAqLwogCiBzdHJ1Y3QgbGF3X2VudHJ5IGxhd190YWJsZVtdID0gewotCVNFVF9MQVcoQ0ZHX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCi0JU0VUX0xBVyhDRkdfUENJMl9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzIpLAotCVNFVF9MQVcoQ0ZHX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSSksCi0JU0VUX0xBVyhDRkdfUENJMl9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJXzIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0kpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTJfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSV8yKSwKIAkvKiBMQkMgd2luZG93IC0gbWFwcyAyNTZNIDB4ZjAwMDAwMDAgLT4gMHhmZmZmZmZmZiAqLwotCVNFVF9MQVcoQ0ZHX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKIH07CiAKIGludCBudW1fbGF3X2VudHJpZXMgPSBBUlJBWV9TSVpFKGxhd190YWJsZSk7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU1NWNkcy9tcGM4NTU1Y2RzLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU1NWNkcy9tcGM4NTU1Y2RzLmMKaW5kZXggODI2MDU2YS4uNGNkMjViNiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NTVjZHMvbXBjODU1NWNkcy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTU1Y2RzL21wYzg1NTVjZHMuYwpAQCAtMTk4LDcgKzE5OCw3IEBACiAKIGludCBjaGVja2JvYXJkICh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAKIAkvKiBQQ0kgc2xvdCBpbiBVU0VSIGJpdHMgQ1NSWzY6N10gYnkgY29udmVudGlvbi4gKi8KIAl1aW50IHBjaV9zbG90ID0gZ2V0X3BjaV9zbG90ICgpOwpAQCAtMjU2LDcgKzI1Niw3IEBACiAJCSAqICAgIE92ZXJyaWRlIERMTCA9IDEsIENvdXJzZSBBZGogPSAxLCBUYXAgU2VsZWN0ID0gMAogCQkgKi8KIAotCQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAogCQlndXItPmRkcmRsbGNyID0gMHg4MTAwMDAwMDsKIAkJYXNtKCJzeW5jO2lzeW5jO21zeW5jIik7CkBAIC0yOTAsOCArMjkwLDggQEAKIHZvaWQKIGxvY2FsX2J1c19pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKLQl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0xCQ19BRERSKTsKIAogCXVpbnQgY2xrZGl2OwogCXVpbnQgbGJjX2h6OwpAQCAtMzM3LDU1ICszMzcsNTUgQEAKIHZvaWQKIHNkcmFtX2luaXQodm9pZCkKIHsKLSNpZiBkZWZpbmVkKENGR19PUjJfUFJFTElNKSAmJiBkZWZpbmVkKENGR19CUjJfUFJFTElNKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjJfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlIyX1BSRUxJTSkKIAogCXVpbnQgaWR4OwotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKLQl1aW50ICpzZHJhbV9hZGRyID0gKHVpbnQgKilDRkdfTEJDX1NEUkFNX0JBU0U7CisJdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0xCQ19BRERSKTsKKwl1aW50ICpzZHJhbV9hZGRyID0gKHVpbnQgKilDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFOwogCXVpbnQgY3B1X2JvYXJkX3JldjsKIAl1aW50IGxzZG1yX2NvbW1vbjsKIAogCXB1dHMoIiAgICBTRFJBTTogIik7CiAKLQlwcmludF9zaXplIChDRkdfTEJDX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCwgIlxuIik7CisJcHJpbnRfc2l6ZSAoQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0LCAiXG4iKTsKIAogCS8qCiAJICogU2V0dXAgU0RSQU0gQmFzZSBhbmQgT3B0aW9uIFJlZ2lzdGVycwogCSAqLwotCWxiYy0+b3IyID0gQ0ZHX09SMl9QUkVMSU07CisJbGJjLT5vcjIgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07CiAJYXNtKCJtc3luYyIpOwogCi0JbGJjLT5icjIgPSBDRkdfQlIyX1BSRUxJTTsKKwlsYmMtPmJyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKIAlhc20oIm1zeW5jIik7CiAKLQlsYmMtPmxiY3IgPSBDRkdfTEJDX0xCQ1I7CisJbGJjLT5sYmNyID0gQ09ORklHX1NZU19MQkNfTEJDUjsKIAlhc20oIm1zeW5jIik7CiAKLQlsYmMtPmxzcnQgPSBDRkdfTEJDX0xTUlQ7Ci0JbGJjLT5tcnRwciA9IENGR19MQkNfTVJUUFI7CisJbGJjLT5sc3J0ID0gQ09ORklHX1NZU19MQkNfTFNSVDsKKwlsYmMtPm1ydHByID0gQ09ORklHX1NZU19MQkNfTVJUUFI7CiAJYXNtKCJtc3luYyIpOwogCiAJLyoKIAkgKiBEZXRlcm1pbmUgd2hpY2ggYWRkcmVzcyBsaW5lcyB0byB1c2UgYmFlZCBvbiBDUFUgYm9hcmQgcmV2LgogCSAqLwogCWNwdV9ib2FyZF9yZXYgPSBnZXRfY3B1X2JvYXJkX3JldmlzaW9uKCk7Ci0JbHNkbXJfY29tbW9uID0gQ0ZHX0xCQ19MU0RNUl9DT01NT047CisJbHNkbXJfY29tbW9uID0gQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OOwogCWlmIChjcHVfYm9hcmRfcmV2ID09IE1QQzg1WFhfQ1BVX0JPQVJEX1JFVl8xXzApIHsKLQkJbHNkbXJfY29tbW9uIHw9IENGR19MQkNfTFNETVJfQlNNQTE2MTc7CisJCWxzZG1yX2NvbW1vbiB8PSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTYxNzsKIAl9IGVsc2UgaWYgKGNwdV9ib2FyZF9yZXYgPT0gTVBDODVYWF9DUFVfQk9BUkRfUkVWXzFfMSkgewotCQlsc2Rtcl9jb21tb24gfD0gQ0ZHX0xCQ19MU0RNUl9CU01BMTUxNjsKKwkJbHNkbXJfY29tbW9uIHw9IENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNTE2OwogCX0gZWxzZSB7CiAJCS8qCiAJCSAqIEFzc3VtZSBzb21ldGhpbmcgdW5hYmxlIHRvIGlkZW50aWZ5IGl0c2VsZiBpcwogCQkgKiByZWFsbHkgb2xkLCBhbmQgbGlrZWx5IGhhcyBsaW5lcyAxNi8xNyBtYXBwZWQuCiAJCSAqLwotCQlsc2Rtcl9jb21tb24gfD0gQ0ZHX0xCQ19MU0RNUl9CU01BMTYxNzsKKwkJbHNkbXJfY29tbW9uIHw9IENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNjE3OwogCX0KIAogCS8qCiAJICogSXNzdWUgUFJFQ0hBUkdFIEFMTCBjb21tYW5kLgogCSAqLwotCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTDsKKwlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUENIQUxMOwogCWFzbSgic3luYzttc3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKQEAgLTM5NSw3ICszOTUsNyBAQAogCSAqIElzc3VlIDggQVVUTyBSRUZSRVNIIGNvbW1hbmRzLgogCSAqLwogCWZvciAoaWR4ID0gMDsgaWR4IDwgODsgaWR4KyspIHsKLQkJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENGR19MQkNfTFNETVJfT1BfQVJGUlNIOworCQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNIOwogCQlhc20oInN5bmM7bXN5bmMiKTsKIAkJKnNkcmFtX2FkZHIgPSAweGZmOwogCQlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKQEAgLTQwNSw3ICs0MDUsNyBAQAogCS8qCiAJICogSXNzdWUgOCBNT0RFLXNldCBjb21tYW5kLgogCSAqLwotCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDRkdfTEJDX0xTRE1SX09QX01SVzsKKwlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTVJXOwogCWFzbSgic3luYzttc3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKQEAgLTQxNCw3ICs0MTQsNyBAQAogCS8qCiAJICogSXNzdWUgTk9STUFMIE9QIGNvbW1hbmQuCiAJICovCi0JbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENGR19MQkNfTFNETVJfT1BfTk9STUFMOworCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9OT1JNQUw7CiAJYXNtKCJzeW5jO21zeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NTVjZHMvdGxiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU1NWNkcy90bGIuYwppbmRleCBjNTQzNGEwLi5iZjk1N2MwIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU1NWNkcy90bGIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU1NWNkcy90bGIuYwpAQCAtMjgsMTYgKzI4LDE2IEBACiAKIHN0cnVjdCBmc2xfZV90bGJfZW50cnkgdGxiX3RhYmxlW10gPSB7CiAJLyogVExCIDAgLSBmb3IgdGVtcCBzdGFjayBpbiBjYWNoZSAqLwotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIsIENGR19JTklUX1JBTV9BRERSLAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKIApAQCAtNDYsNyArNDYsNyBAQAogCSAqIDB4ZmYwMDAwMDAJMTZNCUZMQVNICiAJICogT3V0IG9mIHJlc2V0IHRoaXMgZW50cnkgaXMgb25seSA0Sy4KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzE2TSwgMSksCiAKQEAgLTU0LDcgKzU0LDcgQEAKIAkgKiBUTEIgMToJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg4MDAwMDAwMAkyNTZNCVBDSTEgTUVNIEZpcnN0IGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTLCBDRkdfUENJMV9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMSwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC02Miw3ICs2Miw3IEBACiAJICogVExCIDI6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4OTAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBTZWNvbmQgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDRkdfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC03MCw3ICs3MCw3IEBACiAJICogVExCIDM6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4YTAwMDAwMDAJMjU2TQlQQ0kyIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMl9NRU1fUEhZUywgQ0ZHX1BDSTJfTUVNX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDMsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNzgsNyArNzgsNyBAQAogCSAqIFRMQiA0OgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGIwMDAwMDAwCTI1Nk0JUENJMiBNRU0gU2Vjb25kIGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kyX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ0ZHX1BDSTJfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDQsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtODgsNyArODgsNyBAQAogCSAqIDB4ZTIwMF8wMDAwCTE2TQlQQ0kxIElPCiAJICogMHhlMzAwXzAwMDAJMTZNCVBDSTIgSU8KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC05Niw3ICs5Niw3IEBACiAJICogVExCIDY6CTY0TQlDYWNoZWFibGUsIG5vbi1ndWFyZGVkCiAJICogMHhmMDAwXzAwMDAJNjRNCUxCQyBTRFJBTQogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0xCQ19TRFJBTV9CQVNFLCBDRkdfTEJDX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgNiwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTYwYWRzL2xhdy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjBhZHMvbGF3LmMKaW5kZXggM2I4YmQwNS4uN2RkOGYyOSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjBhZHMvbGF3LmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjBhZHMvbGF3LmMKQEAgLTQ2LDEzICs0NiwxMyBAQAogCiBzdHJ1Y3QgbGF3X2VudHJ5IGxhd190YWJsZVtdID0gewogI2lmbmRlZiBDT05GSUdfU1BEX0VFUFJPTQotCVNFVF9MQVcoQ0ZHX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8xMjhNLCBMQVdfVFJHVF9JRl9ERFIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMTI4TSwgTEFXX1RSR1RfSUZfRERSKSwKICNlbmRpZgotCVNFVF9MQVcoQ0ZHX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCiAJLyogVGhpcyBpcyBub3Qgc28gbXVjaCB0aGUgU0RSQU0gbWFwIGFzIGl0IGlzIHRoZSB3aG9sZSBsb2NhbGJ1cyBtYXAuICovCi0JU0VUX0xBVyhDRkdfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCi0JU0VUX0xBVyhDRkdfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJKSwKLQlTRVRfTEFXKENGR19SSU9fTUVNX0JBU0UsIExBV0FSX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUklPKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1JJT19NRU1fQkFTRSwgTEFXQVJfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9SSU8pLAogfTsKIAogaW50IG51bV9sYXdfZW50cmllcyA9IEFSUkFZX1NJWkUobGF3X3RhYmxlKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTYwYWRzL21wYzg1NjBhZHMuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTYwYWRzL21wYzg1NjBhZHMuYwppbmRleCA4NTFmYzU3Li40ZmUxZDg1IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU2MGFkcy9tcGM4NTYwYWRzLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjBhZHMvbXBjODU2MGFkcy5jCkBAIC0yMTcsNyArMjE3LDcgQEAKIHZvaWQgcmVzZXRfcGh5ICh2b2lkKQogewogI2lmIGRlZmluZWQoQ09ORklHX0VUSEVSX09OX0ZDQykgLyogYXZvaWQgY29tcGlsZSB3YXJuaW5ncyBmb3Igbm93ICovCi0Jdm9sYXRpbGUgYmNzcl90ICpiY3NyID0gKGJjc3JfdCAqKSBDRkdfQkNTUjsKKwl2b2xhdGlsZSBiY3NyX3QgKmJjc3IgPSAoYmNzcl90ICopIENPTkZJR19TWVNfQkNTUjsKICNlbmRpZgogCS8qIHJlc2V0IEdpZ2EgYml0IEV0aGVybmV0IHBvcnQgaWYgbmVlZGVkIGhlcmUgKi8KIApAQCAtMjc1LDcgKzI3NSw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19ERFJfRExMKQogCXsKLQkgICAgdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwkgICAgdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAJICAgIHVpbnQgdGVtcF9kZHJkbGwgPSAwOwogCiAJICAgIC8qCkBAIC0zMjAsOCArMzIwLDggQEAKIHZvaWQKIGxvY2FsX2J1c19pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKLQl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0xCQ19BRERSKTsKIAogCXVpbnQgY2xrZGl2OwogCXVpbnQgbGJjX2h6OwpAQCAtMzQxLDEwICszNDEsMTAgQEAKIAlsYmNfaHogPSBzeXNpbmZvLmZyZXFTeXN0ZW1CdXMgLyAxMDAwMDAwIC8gY2xrZGl2OwogCiAJaWYgKGxiY19oeiA8IDY2KSB7Ci0JCWxiYy0+bGNyciA9IENGR19MQkNfTENSUiB8IDB4ODAwMDAwMDA7CS8qIERMTCBCeXBhc3MgKi8KKwkJbGJjLT5sY3JyID0gQ09ORklHX1NZU19MQkNfTENSUiB8IDB4ODAwMDAwMDA7CS8qIERMTCBCeXBhc3MgKi8KIAogCX0gZWxzZSBpZiAobGJjX2h6ID49IDEzMykgewotCQlsYmMtPmxjcnIgPSBDRkdfTEJDX0xDUlIgJiAofjB4ODAwMDAwMDApOyAvKiBETEwgRW5hYmxlZCAqLworCQlsYmMtPmxjcnIgPSBDT05GSUdfU1lTX0xCQ19MQ1JSICYgKH4weDgwMDAwMDAwKTsgLyogRExMIEVuYWJsZWQgKi8KIAogCX0gZWxzZSB7CiAJCS8qCkBAIC0zNTksNyArMzU5LDcgQEAKIAkJCWxiYy0+bGNyciA9IDB4MTAwMDAwMDQ7CiAJCX0KIAotCQlsYmMtPmxjcnIgPSBDRkdfTEJDX0xDUlIgJiAofjB4ODAwMDAwMDApOy8qIERMTCBFbmFibGVkICovCisJCWxiYy0+bGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlIgJiAofjB4ODAwMDAwMDApOy8qIERMTCBFbmFibGVkICovCiAJCXVkZWxheSgyMDApOwogCiAJCS8qCkBAIC0zODAsNTIgKzM4MCw1MiBAQAogdm9pZAogc2RyYW1faW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKLQl1aW50ICpzZHJhbV9hZGRyID0gKHVpbnQgKilDRkdfTEJDX1NEUkFNX0JBU0U7CisJdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0xCQ19BRERSKTsKKwl1aW50ICpzZHJhbV9hZGRyID0gKHVpbnQgKilDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFOwogCiAJcHV0cygiICAgIFNEUkFNOiAiKTsKLQlwcmludF9zaXplIChDRkdfTEJDX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCwgIlxuIik7CisJcHJpbnRfc2l6ZSAoQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0LCAiXG4iKTsKIAogCS8qCiAJICogU2V0dXAgU0RSQU0gQmFzZSBhbmQgT3B0aW9uIFJlZ2lzdGVycwogCSAqLwotCWxiYy0+b3IyID0gQ0ZHX09SMl9QUkVMSU07Ci0JbGJjLT5icjIgPSBDRkdfQlIyX1BSRUxJTTsKLQlsYmMtPmxiY3IgPSBDRkdfTEJDX0xCQ1I7CisJbGJjLT5vcjIgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07CisJbGJjLT5icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CisJbGJjLT5sYmNyID0gQ09ORklHX1NZU19MQkNfTEJDUjsKIAlhc20oIm1zeW5jIik7CiAKLQlsYmMtPmxzcnQgPSBDRkdfTEJDX0xTUlQ7Ci0JbGJjLT5tcnRwciA9IENGR19MQkNfTVJUUFI7CisJbGJjLT5sc3J0ID0gQ09ORklHX1NZU19MQkNfTFNSVDsKKwlsYmMtPm1ydHByID0gQ09ORklHX1NZU19MQkNfTVJUUFI7CiAJYXNtKCJzeW5jIik7CiAKIAkvKgogCSAqIENvbmZpZ3VyZSB0aGUgU0RSQU0gY29udHJvbGxlci4KIAkgKi8KLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl8xOworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xOwogCWFzbSgic3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKIAl1ZGVsYXkoMTAwKTsKIAotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzI7CisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzI7CiAJYXNtKCJzeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwogCXVkZWxheSgxMDApOwogCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfMzsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfMzsKIAlhc20oInN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CiAJdWRlbGF5KDEwMCk7CiAKLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl80OworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl80OwogCWFzbSgic3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKIAl1ZGVsYXkoMTAwKTsKIAotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzU7CisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzU7CiAJYXNtKCJzeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwpAQCAtNDM4LDE1ICs0MzgsMTUgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBsb25nIGludCBmaXhlZF9zZHJhbSAodm9pZCkKIHsKLSAgI2lmbmRlZiBDRkdfUkFNQk9PVAotCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkcj0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRERSX0FERFIpOworICAjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAorCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkcj0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0REUl9BRERSKTsKIAotCWRkci0+Y3MwX2JuZHMgPSBDRkdfRERSX0NTMF9CTkRTOwotCWRkci0+Y3MwX2NvbmZpZyA9IENGR19ERFJfQ1MwX0NPTkZJRzsKLQlkZHItPnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JZGRyLT50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWRkci0+c2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERTsKLQlkZHItPnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKKwlkZHItPmNzMF9ibmRzID0gQ09ORklHX1NZU19ERFJfQ1MwX0JORFM7CisJZGRyLT5jczBfY29uZmlnID0gQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRzsKKwlkZHItPnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWRkci0+dGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJZGRyLT5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERTsKKwlkZHItPnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CiAgICAgI2lmIGRlZmluZWQgKENPTkZJR19ERFJfRUNDKQogCWRkci0+ZXJyX2Rpc2FibGUgPSAweDAwMDAwMDBEOwogCWRkci0+ZXJyX3NiZSA9IDB4MDBmZjAwMDA7CkBAIC00NTUsMTQgKzQ1NSwxNCBAQAogCXVkZWxheSg1MDApOwogICAgICNpZiBkZWZpbmVkIChDT05GSUdfRERSX0VDQykKIAkvKiBFbmFibGUgRUNDIGNoZWNraW5nICovCi0JZGRyLT5zZHJhbV9jZmcgPSAoQ0ZHX0REUl9DT05UUk9MIHwgMHgyMDAwMDAwMCk7CisJZGRyLT5zZHJhbV9jZmcgPSAoQ09ORklHX1NZU19ERFJfQ09OVFJPTCB8IDB4MjAwMDAwMDApOwogICAgICNlbHNlCi0JZGRyLT5zZHJhbV9jZmcgPSBDRkdfRERSX0NPTlRST0w7CisJZGRyLT5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX0REUl9DT05UUk9MOwogICAgICNlbmRpZgogCWFzbSgic3luYzsgaXN5bmM7IG1zeW5jIik7CiAJdWRlbGF5KDUwMCk7CiAgICNlbmRpZgotCXJldHVybiBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OworCXJldHVybiBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKIH0KICNlbmRpZgkvKiAhZGVmaW5lZChDT05GSUdfU1BEX0VFUFJPTSkgKi8KIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjBhZHMvdGxiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU2MGFkcy90bGIuYwppbmRleCA0ZmUyODYyLi4yZWMzY2NjIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU2MGFkcy90bGIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU2MGFkcy90bGIuYwpAQCAtMjgsMTYgKzI4LDE2IEBACiAKIHN0cnVjdCBmc2xfZV90bGJfZW50cnkgdGxiX3RhYmxlW10gPSB7CiAJLyogVExCIDAgLSBmb3IgdGVtcCBzdGFjayBpbiBjYWNoZSAqLwotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIsIENGR19JTklUX1JBTV9BRERSLAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKIApAQCAtNDYsNyArNDYsNyBAQAogCSAqIDB4ZmYwMDAwMDAJMTZNCUZMQVNICiAJICogT3V0IG9mIHJlc2V0IHRoaXMgZW50cnkgaXMgb25seSA0Sy4KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzE2TSwgMSksCiAKQEAgLTU0LDcgKzU0LDcgQEAKIAkgKiBUTEIgMToJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg4MDAwMDAwMAkyNTZNCVBDSTEgTUVNIEZpcnN0IGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTLCBDRkdfUENJMV9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMSwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC02Miw3ICs2Miw3IEBACiAJICogVExCIDI6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4OTAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBTZWNvbmQgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDRkdfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC03MCw3ICs3MCw3IEBACiAJICogVExCIDM6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4YzAwMDAwMDAJMjU2TQlSYXBpZCBJTyBNRU0gRmlyc3QgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1JJT19NRU1fQkFTRSwgQ0ZHX1JJT19NRU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUklPX01FTV9CQVNFLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDMsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNzgsNyArNzgsNyBAQAogCSAqIFRMQiA0OgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGQwMDAwMDAwCTI1Nk0JUmFwaWQgSU8gTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwgQ0ZHX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsIENPTkZJR19TWVNfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDQsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtODcsNyArODcsNyBAQAogCSAqIDB4ZTAwMF8wMDAwCTFNCUNDU1JCQVIKIAkgKiAweGUyMDBfMDAwMAkxNk0JUENJMSBJTwogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0NDU1JCQVIsIENGR19DQ1NSQkFSX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0NDU1JCQVIsIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNSwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTk1LDcgKzk1LDcgQEAKIAkgKiBUTEIgNjoJNjRNCUNhY2hlYWJsZSwgbm9uLWd1YXJkZWQKIAkgKiAweGYwMDBfMDAwMAk2NE0JTEJDIFNEUkFNCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfTEJDX1NEUkFNX0JBU0UsIENGR19MQkNfU0RSQU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCA2LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtMTAzLDcgKzEwMyw3IEBACiAJICogVExCIDc6CTE2SwlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhmODAwMDAwMAkxNksJQkNTUiByZWdpc3RlcnMKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19CQ1NSLCBDRkdfQkNTUiwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQkNTUiwgQ09ORklHX1NZU19CQ1NSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNywgQk9PS0VfUEFHRVNaXzE2SywgMSksCiAKQEAgLTExNywxMSArMTE3LDExIEBACiAJICogTGlrZWx5IGl0IG5lZWRzIHRvIGJlIGluY3JlYXNlZCBieSB0d28gZm9yIHRoZXNlIGVudHJpZXMuCiAJICovCiAjZXJyb3IoIlVwZGF0ZSB0aGUgbnVtYmVyIG9mIHRhYmxlIGVudHJpZXMgaW4gdGxiMV9lbnRyeSIpCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRERSX1NEUkFNX0JBU0UsIENGR19ERFJfU0RSQU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCA4LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIAotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0REUl9TRFJBTV9CQVNFICsgMHg0MDAwMDAwLCBDRkdfRERSX1NEUkFNX0JBU0UgKyAweDQwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICsgMHg0MDAwMDAwLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICsgMHg0MDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgOSwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTY4bWRzL2Jjc3IuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTY4bWRzL2Jjc3IuYwppbmRleCA3OTFhNTBmLi4zMDY3NmUxIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU2OG1kcy9iY3NyLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjhtZHMvYmNzci5jCkBAIC0yNyw5ICsyNyw5IEBACiAKIHZvaWQgZW5hYmxlXzg1NjhtZHNfZHVhcnQoKQogewotCXZvbGF0aWxlIHVpbnQqIGR1YXJ0X211eAk9ICh1aW50ICopKENGR19DQ1NSQkFSICsgMHhlMDA2MCk7Ci0Jdm9sYXRpbGUgdWludCogZGV2aWNlcwkJPSAodWludCAqKShDRkdfQ0NTUkJBUiArIDB4ZTAwNzApOwotCXZvbGF0aWxlIHU4ICpiY3NyCQk9ICh1OCAqKShDRkdfQkNTUik7CisJdm9sYXRpbGUgdWludCogZHVhcnRfbXV4CT0gKHVpbnQgKikoQ09ORklHX1NZU19DQ1NSQkFSICsgMHhlMDA2MCk7CisJdm9sYXRpbGUgdWludCogZGV2aWNlcwkJPSAodWludCAqKShDT05GSUdfU1lTX0NDU1JCQVIgKyAweGUwMDcwKTsKKwl2b2xhdGlsZSB1OCAqYmNzcgkJPSAodTggKikoQ09ORklHX1NZU19CQ1NSKTsKIAogCSpkdWFydF9tdXggPSAweDgwMDAwMDAwOwkvKiBTZXQgdGhlIG11eCB0byBEdWFydCBvbiBQTVVYQ1IgKi8KIAkqZGV2aWNlcyAgPSAwOwkJCS8qIEVuYWJsZSBhbGwgcGVyaXBoZXJhbCBkZXZpY2VzICovCkBAIC0zOCwyMSArMzgsMjEgQEAKIAogdm9pZCBlbmFibGVfODU2OG1kc19mbGFzaF93cml0ZSgpCiB7Ci0Jdm9sYXRpbGUgdTggKmJjc3IgPSAodTggKikoQ0ZHX0JDU1IpOworCXZvbGF0aWxlIHU4ICpiY3NyID0gKHU4ICopKENPTkZJR19TWVNfQkNTUik7CiAKIAliY3NyWzldIHw9IDB4MDE7CiB9CiAKIHZvaWQgZGlzYWJsZV84NTY4bWRzX2ZsYXNoX3dyaXRlKCkKIHsKLQl2b2xhdGlsZSB1OCAqYmNzciA9ICh1OCAqKShDRkdfQkNTUik7CisJdm9sYXRpbGUgdTggKmJjc3IgPSAodTggKikoQ09ORklHX1NZU19CQ1NSKTsKIAogCWJjc3JbOV0gJj0gfigweDAxKTsKIH0KIAogdm9pZCBlbmFibGVfODU2OG1kc19xZV9tZGlvKCkKIHsKLQl1OCAqYmNzciA9ICh1OCAqKShDRkdfQkNTUik7CisJdTggKmJjc3IgPSAodTggKikoQ09ORklHX1NZU19CQ1NSKTsKIAogCWJjc3JbN10gfD0gMHgwMTsKIH0KQEAgLTYwLDcgKzYwLDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19VRUNfRVRIMSkgfHwgZGVmaW5lZChDT05GSUdfVUVDX0VUSDIpCiB2b2lkIHJlc2V0Xzg1NjhtZHNfdWNjcyh2b2lkKQogewotCXZvbGF0aWxlIHU4ICpiY3NyID0gKHU4ICopKENGR19CQ1NSKTsKKwl2b2xhdGlsZSB1OCAqYmNzciA9ICh1OCAqKShDT05GSUdfU1lTX0JDU1IpOwogCiAJLyogVHVybiBvZmYgVUNDMSAmIFVDQzIgKi8KIAlvdXRfOCgmYmNzcls4XSwgaW5fOCgmYmNzcls4XSkgJiB+QkNTUl9VQ0MxX0dFVEhfRU4pOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjhtZHMvbGF3LmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU2OG1kcy9sYXcuYwppbmRleCAzYmMyNGM1Li5kYTdiNmRjIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU2OG1kcy9sYXcuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU2OG1kcy9sYXcuYwpAQCAtNTAsMTMgKzUwLDEzIEBACiAgKi8KIAogc3RydWN0IGxhd19lbnRyeSBsYXdfdGFibGVbXSA9IHsKLQlTRVRfTEFXKENGR19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX1BDSUUxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfOE0sIExBV19UUkdUX0lGX1BDSSksCi0JU0VUX0xBVyhDRkdfUENJRTFfSU9fUEhZUywgTEFXX1NJWkVfOE0sIExBV19UUkdUX0lGX1BDSUVfMSksCi0JU0VUX0xBVyhDRkdfU1JJT19NRU1fQkFTRSwgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUklPKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSUVfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfOE0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMsIExBV19TSVpFXzhNLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAorCVNFVF9MQVcoQ09ORklHX1NZU19TUklPX01FTV9CQVNFLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9SSU8pLAogCS8qIExCQyB3aW5kb3cgLSBtYXBzIDI1Nk0uICBUaGF0J3MgU0RSQU0sIEJDU1IsIFBJQnMsIGFuZCBGbGFzaCAqLwotCVNFVF9MQVcoQ0ZHX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKIH07CiAKIGludCBudW1fbGF3X2VudHJpZXMgPSBBUlJBWV9TSVpFKGxhd190YWJsZSk7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU2OG1kcy9tcGM4NTY4bWRzLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU2OG1kcy9tcGM4NTY4bWRzLmMKaW5kZXggZjllMzVjYy4uZWFiMTkwMCAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjhtZHMvbXBjODU2OG1kcy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTY4bWRzL21wYzg1NjhtZHMuYwpAQCAtMTIzLDEwICsxMjMsMTAgQEAKIAllbmFibGVfODU2OG1kc19xZV9tZGlvKCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19JMkMyX09GRlNFVAorI2lmZGVmIENPTkZJR19TWVNfSTJDMl9PRkZTRVQKIAkvKiBFbmFibGUgSTJDMl9TQ0wgYW5kIEkyQzJfU0RBICovCiAJdm9sYXRpbGUgc3RydWN0IHBhcl9pbyAqcG9ydF9jOwotCXBvcnRfYyA9IChzdHJ1Y3QgcGFyX2lvKikoQ0ZHX0lNTVIgKyAweGUwMTQwKTsKKwlwb3J0X2MgPSAoc3RydWN0IHBhcl9pbyopKENPTkZJR19TWVNfSU1NUiArIDB4ZTAxNDApOwogCXBvcnRfYy0+Y3BkaXIyIHw9IDB4MGYwMDAwMDA7CiAJcG9ydF9jLT5jcHBhcjIgJj0gfjB4MGYwMDAwMDA7CiAJcG9ydF9jLT5jcHBhcjIgfD0gMHgwYTAwMDAwMDsKQEAgLTE1OCw3ICsxNTgsNyBAQAogCQkgKiAgICBPdmVycmlkZSBETEwgPSAxLCBDb3Vyc2UgQWRqID0gMSwgVGFwIFNlbGVjdCA9IDAKIAkJICovCiAKLQkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAKIAkJZ3VyLT5kZHJkbGxjciA9IDB4ODEwMDAwMDA7CiAJCWFzbSgic3luYztpc3luYzttc3luYyIpOwpAQCAtMTkyLDggKzE5Miw4IEBACiB2b2lkCiBsb2NhbF9idXNfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAKIAl1aW50IGNsa2RpdjsKIAl1aW50IGxiY19oejsKQEAgLTIyMyw0NCArMjIzLDQ0IEBACiB2b2lkCiBzZHJhbV9pbml0KHZvaWQpCiB7Ci0jaWYgZGVmaW5lZChDRkdfT1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlIyX1BSRUxJTSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSMl9QUkVMSU0pCiAKIAl1aW50IGlkeDsKLQl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7Ci0JdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopQ0ZHX0xCQ19TRFJBTV9CQVNFOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CisJdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRTsKIAl1aW50IGxzZG1yX2NvbW1vbjsKIAogCXB1dHMoIiAgICBTRFJBTTogIik7CiAKLQlwcmludF9zaXplIChDRkdfTEJDX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCwgIlxuIik7CisJcHJpbnRfc2l6ZSAoQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0LCAiXG4iKTsKIAogCS8qCiAJICogU2V0dXAgU0RSQU0gQmFzZSBhbmQgT3B0aW9uIFJlZ2lzdGVycwogCSAqLwotCWxiYy0+b3IyID0gQ0ZHX09SMl9QUkVMSU07CisJbGJjLT5vcjIgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07CiAJYXNtKCJtc3luYyIpOwogCi0JbGJjLT5icjIgPSBDRkdfQlIyX1BSRUxJTTsKKwlsYmMtPmJyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKIAlhc20oIm1zeW5jIik7CiAKLQlsYmMtPmxiY3IgPSBDRkdfTEJDX0xCQ1I7CisJbGJjLT5sYmNyID0gQ09ORklHX1NZU19MQkNfTEJDUjsKIAlhc20oIm1zeW5jIik7CiAKIAotCWxiYy0+bHNydCA9IENGR19MQkNfTFNSVDsKLQlsYmMtPm1ydHByID0gQ0ZHX0xCQ19NUlRQUjsKKwlsYmMtPmxzcnQgPSBDT05GSUdfU1lTX0xCQ19MU1JUOworCWxiYy0+bXJ0cHIgPSBDT05GSUdfU1lTX0xCQ19NUlRQUjsKIAlhc20oIm1zeW5jIik7CiAKIAkvKgogCSAqIE1QQzg1NjggdXNlcyAibmV3IiAxNS0xNiBzdHlsZSBhZGRyZXNzaW5nLgogCSAqLwotCWxzZG1yX2NvbW1vbiA9IENGR19MQkNfTFNETVJfQ09NTU9OOwotCWxzZG1yX2NvbW1vbiB8PSBDRkdfTEJDX0xTRE1SX0JTTUExNTE2OworCWxzZG1yX2NvbW1vbiA9IENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTjsKKwlsc2Rtcl9jb21tb24gfD0gQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE1MTY7CiAKIAkvKgogCSAqIElzc3VlIFBSRUNIQVJHRSBBTEwgY29tbWFuZC4KIAkgKi8KLQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEw7CisJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTDsKIAlhc20oInN5bmM7bXN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC0yNzAsNyArMjcwLDcgQEAKIAkgKiBJc3N1ZSA4IEFVVE8gUkVGUkVTSCBjb21tYW5kcy4KIAkgKi8KIAlmb3IgKGlkeCA9IDA7IGlkeCA8IDg7IGlkeCsrKSB7Ci0JCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSDsKKwkJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSDsKIAkJYXNtKCJzeW5jO21zeW5jIik7CiAJCSpzZHJhbV9hZGRyID0gMHhmZjsKIAkJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC0yODAsNyArMjgwLDcgQEAKIAkvKgogCSAqIElzc3VlIDggTU9ERS1zZXQgY29tbWFuZC4KIAkgKi8KLQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9NUlc7CisJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVzsKIAlhc20oInN5bmM7bXN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC0yODksNyArMjg5LDcgQEAKIAkvKgogCSAqIElzc3VlIE5PUk1BTCBPUCBjb21tYW5kLgogCSAqLwotCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDRkdfTEJDX0xTRE1SX09QX05PUk1BTDsKKwlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMOwogCWFzbSgic3luYzttc3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKQEAgLTM3MSw3ICszNzEsNyBAQAogdm9pZAogcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCXVpbnQgaW9fc2VsID0gKGd1ci0+cG9yZGV2c3IgJiBNUEM4NXh4X1BPUkRFVlNSX0lPX1NFTCkgPj4gMTk7CiAJdWludCBob3N0X2FnZW50ID0gKGd1ci0+cG9yYm1zciAmIE1QQzg1eHhfUE9SQk1TUl9IQSkgPj4gMTY7CiAKQEAgLTM3OSw3ICszNzksNyBAQAogewogCXBpYl9pbml0KCk7CiAKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0kxX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSTFfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpMV9ob3NlOwogCkBAIC00MDMsMjMgKzQwMywyMyBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkJQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJCUNGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkJQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCQlDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJCVBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCQlDRkdfUENJMV9NRU1fQkFTRSwKLQkJCQlDRkdfUENJMV9NRU1fUEhZUywKLQkJCQlDRkdfUENJMV9NRU1fU0laRSwKKwkJCQlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UsCisJCQkJQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAorCQkJCUNPTkZJR19TWVNfUENJMV9NRU1fU0laRSwKIAkJCQlQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkJQ0ZHX1BDSTFfSU9fQkFTRSwKLQkJCQlDRkdfUENJMV9JT19QSFlTLAotCQkJCUNGR19QQ0kxX0lPX1NJWkUsCisJCQkJQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UsCisJCQkJQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsCisJCQkJQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUsCiAJCQkJUENJX1JFR0lPTl9JTyk7CiAKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKQEAgLTQ0MCw3ICs0NDAsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BDSUUxCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJRTFfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJRTFfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpZTFfaG9zZTsKIAlpbnQgcGNpZV9lcCA9ICAoaG9zdF9hZ2VudCA9PSAwKSB8fCAoaG9zdF9hZ2VudCA9PSAyICkgfHwgKGhvc3RfYWdlbnQgPT0gMyk7CkBAIC00NjAsMjMgKzQ2MCwyMyBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkJQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJCUNGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkJQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCQlDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJCVBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCQlDRkdfUENJRTFfTUVNX0JBU0UsCi0JCQkJQ0ZHX1BDSUUxX01FTV9QSFlTLAotCQkJCUNGR19QQ0lFMV9NRU1fU0laRSwKKwkJCQlDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFLAorCQkJCUNPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMsCisJCQkJQ09ORklHX1NZU19QQ0lFMV9NRU1fU0laRSwKIAkJCQlQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkJQ0ZHX1BDSUUxX0lPX0JBU0UsCi0JCQkJQ0ZHX1BDSUUxX0lPX1BIWVMsCi0JCQkJQ0ZHX1BDSUUxX0lPX1NJWkUsCisJCQkJQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFLAorCQkJCUNPTkZJR19TWVNfUENJRTFfSU9fUEhZUywKKwkJCQlDT05GSUdfU1lTX1BDSUUxX0lPX1NJWkUsCiAJCQkJUENJX1JFR0lPTl9JTyk7CiAKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTY4bWRzL3RsYi5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjhtZHMvdGxiLmMKaW5kZXggNzU2NTE3Ni4uMTA3NzU1MiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjhtZHMvdGxiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjhtZHMvdGxiLmMKQEAgLTI4LDE2ICsyOCwxNiBAQAogCiBzdHJ1Y3QgZnNsX2VfdGxiX2VudHJ5IHRsYl90YWJsZVtdID0gewogCS8qIFRMQiAwIC0gZm9yIHRlbXAgc3RhY2sgaW4gY2FjaGUgKi8KLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSLCBDRkdfSU5JVF9SQU1fQUREUiwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCiAKQEAgLTQ3LDcgKzQ3LDcgQEAKIAkgKiAweGZmMDAwMDAwCTE2TQlGTEFTSCAodXBwZXIgaGFsZikKIAkgKiBPdXQgb2YgcmVzZXQgdGhpcyBlbnRyeSBpcyBvbmx5IDRLLgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0ZMQVNIX0JBU0UgKyAweDEwMDAwMDAsIENGR19GTEFTSF9CQVNFICsgMHgxMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgxMDAwMDAwLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDEwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfMTZNLCAxKSwKIApAQCAtNTUsNyArNTUsNyBAQAogCSAqIFRMQmUgMToJMTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGZlMDAwMDAwCTE2TQlGTEFTSCAobG93ZXIgaGFsZikKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMSwgQk9PS0VfUEFHRVNaXzE2TSwgMSksCiAKQEAgLTY0LDcgKzY0LDcgQEAKIAkgKiAweDgwMDAwMDAwCTUxMk0JUENJMSBNRU0KIAkgKiAweGEwMDAwMDAwCTUxMk0JUENJZSBNRU0KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTLCBDRkdfUENJMV9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzFHLCAxKSwKIApAQCAtNzQsNyArNzQsNyBAQAogCSAqIDB4ZTIwMF8wMDAwCThNCVBDSTEgSU8KIAkgKiAweGUyODBfMDAwMAk4TQlQQ0llIElPCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfQ0NTUkJBUiwgQ0ZHX0NDU1JCQVJfUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQ0NTUkJBUiwgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAzLCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtODIsNyArODIsNyBAQAogCSAqIFRMQmUgNDoJNjRNCUNhY2hlYWJsZSwgbm9uLWd1YXJkZWQKIAkgKiAweGYwMDBfMDAwMAk2NE0JTEJDIFNEUkFNCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfTEJDX1NEUkFNX0JBU0UsIENGR19MQkNfU0RSQU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCA0LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtOTIsNyArOTIsNyBAQAogCSAqIDB4ZjgwMDgwMDAJMzJLIFBJQiAoQ1M0KQogCSAqIDB4ZjgwMTAwMDAJMzJLIFBJQiAoQ1M1KQogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0JDU1JfQkFTRSwgQ0ZHX0JDU1JfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQkNTUl9CQVNFLCBDT05GSUdfU1lTX0JDU1JfQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl8yNTZLLCAxKSwKIH07CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU3MmRzL2xhdy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NzJkcy9sYXcuYwppbmRleCBkNjliNTkzLi45ZjExOTAyIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU3MmRzL2xhdy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTcyZHMvbGF3LmMKQEAgLTI4LDEzICsyOCwxMyBAQAogI2luY2x1ZGUgPGFzbS9tbXUuaD4KIAogc3RydWN0IGxhd19lbnRyeSBsYXdfdGFibGVbXSA9IHsKLQlTRVRfTEFXKENGR19GTEFTSF9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAotCVNFVF9MQVcoQ0ZHX1BDSUUxX01FTV9QSFlTLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSUVfMSksCi0JU0VUX0xBVyhDRkdfUENJRTFfSU9fUEhZUywgTEFXX1NJWkVfNjRLLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSUUyX01FTV9QSFlTLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSUVfMiksCi0JU0VUX0xBVyhDRkdfUENJRTJfSU9fUEhZUywgTEFXX1NJWkVfNjRLLCBMQVdfVFJHVF9JRl9QQ0lFXzIpLAotCVNFVF9MQVcoQ0ZHX1BDSUUzX01FTV9QSFlTLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSUVfMyksCi0JU0VUX0xBVyhDRkdfUENJRTNfSU9fUEhZUywgTEFXX1NJWkVfNjRLLCBMQVdfVFJHVF9JRl9QQ0lFXzMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19GTEFTSF9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUywgTEFXQVJfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTLCBMQVdfU0laRV82NEssIExBV19UUkdUX0lGX1BDSUVfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUyX01FTV9QSFlTLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSUVfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUyX0lPX1BIWVMsIExBV19TSVpFXzY0SywgTEFXX1RSR1RfSUZfUENJRV8yKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTNfTUVNX1BIWVMsIExBV0FSX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJRV8zKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTNfSU9fUEhZUywgTEFXX1NJWkVfNjRLLCBMQVdfVFJHVF9JRl9QQ0lFXzMpLAogCVNFVF9MQVcoUElYSVNfQkFTRSwgTEFXX1NJWkVfNEssIExBV19UUkdUX0lGX0xCQyksCiB9OwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU3MmRzL21wYzg1NzJkcy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NzJkcy9tcGM4NTcyZHMuYwppbmRleCA3MGI1NDhiLi5iNmViMjhlIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU3MmRzL21wYzg1NzJkcy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTcyZHMvbXBjODU3MmRzLmMKQEAgLTgzLDM0ICs4MywzNCBAQAogCiBwaHlzX3NpemVfdCBmaXhlZF9zZHJhbSAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICZpbW1hcC0+aW1fZGRyOwogCXVpbnQgZF9pbml0OwogCi0JZGRyLT5jczBfYm5kcyA9IENGR19ERFJfQ1MwX0JORFM7Ci0JZGRyLT5jczBfY29uZmlnID0gQ0ZHX0REUl9DUzBfQ09ORklHOworCWRkci0+Y3MwX2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUzsKKwlkZHItPmNzMF9jb25maWcgPSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHOwogCi0JZGRyLT50aW1pbmdfY2ZnXzMgPSBDRkdfRERSX1RJTUlOR18zOwotCWRkci0+dGltaW5nX2NmZ18wID0gQ0ZHX0REUl9USU1JTkdfMDsKLQlkZHItPnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JZGRyLT50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWRkci0+c2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERV8xOwotCWRkci0+c2RyYW1fbW9kZV8yID0gQ0ZHX0REUl9NT0RFXzI7Ci0JZGRyLT5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFJfSU5URVJWQUw7Ci0JZGRyLT5zZHJhbV9kYXRhX2luaXQgPSBDRkdfRERSX0RBVEFfSU5JVDsKLQlkZHItPnNkcmFtX2Nsa19jbnRsID0gQ0ZHX0REUl9DTEtfQ1RSTDsKLQlkZHItPnNkcmFtX2NmZ18yID0gQ0ZHX0REUl9DT05UUk9MMjsKKwlkZHItPnRpbWluZ19jZmdfMyA9IENPTkZJR19TWVNfRERSX1RJTUlOR18zOworCWRkci0+dGltaW5nX2NmZ18wID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzA7CisJZGRyLT50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlkZHItPnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWRkci0+c2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREVfMTsKKwlkZHItPnNkcmFtX21vZGVfMiA9IENPTkZJR19TWVNfRERSX01PREVfMjsKKwlkZHItPnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CisJZGRyLT5zZHJhbV9kYXRhX2luaXQgPSBDT05GSUdfU1lTX0REUl9EQVRBX0lOSVQ7CisJZGRyLT5zZHJhbV9jbGtfY250bCA9IENPTkZJR19TWVNfRERSX0NMS19DVFJMOworCWRkci0+c2RyYW1fY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9DT05UUk9MMjsKIAogI2lmIGRlZmluZWQgKENPTkZJR19ERFJfRUNDKQotCWRkci0+ZXJyX2ludF9lbiA9IENGR19ERFJfRVJSX0lOVF9FTjsKLQlkZHItPmVycl9kaXNhYmxlID0gQ0ZHX0REUl9FUlJfRElTOwotCWRkci0+ZXJyX3NiZSA9IENGR19ERFJfU0JFOworCWRkci0+ZXJyX2ludF9lbiA9IENPTkZJR19TWVNfRERSX0VSUl9JTlRfRU47CisJZGRyLT5lcnJfZGlzYWJsZSA9IENPTkZJR19TWVNfRERSX0VSUl9ESVM7CisJZGRyLT5lcnJfc2JlID0gQ09ORklHX1NZU19ERFJfU0JFOwogI2VuZGlmCiAJYXNtKCJzeW5jO2lzeW5jIik7CiAKIAl1ZGVsYXkoNTAwKTsKIAotCWRkci0+c2RyYW1fY2ZnID0gQ0ZHX0REUl9DT05UUk9MOworCWRkci0+c2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfQ09OVFJPTDsKIAogI2lmIGRlZmluZWQoQ09ORklHX0VDQ19JTklUX1ZJQV9ERFJDT05UUk9MTEVSKQogCWRfaW5pdCA9IDE7CkBAIC0xNDgsNyArMTQ4LDcgQEAKICNpZmRlZiBDT05GSUdfUENJCiB2b2lkIHBjaV9pbml0X2JvYXJkKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAl1aW50IGRldmRpc3IgPSBndXItPmRldmRpc3I7CiAJdWludCBpb19zZWwgPSAoZ3VyLT5wb3JkZXZzciAmIE1QQzg1eHhfUE9SREVWU1JfSU9fU0VMKSA+PiAxOTsKIAl1aW50IGhvc3RfYWdlbnQgPSAoZ3VyLT5wb3JibXNyICYgTVBDODV4eF9QT1JCTVNSX0hBKSA+PiAxNjsKQEAgLTE2OCw3ICsxNjgsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BDSUUzCiAJewotCQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0lFM19BRERSOworCQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJRTNfQUREUjsKIAkJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2llM19ob3NlOwogCQlpbnQgcGNpZV9lcCA9IChob3N0X2FnZW50ID09IDApIHx8IChob3N0X2FnZW50ID09IDMpIHx8CkBAIC0xODgsMjMgKzE4OCwyMyBAQAogCiAJCQkvKiBpbmJvdW5kICovCiAJCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCQkJQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJCQlDRkdfUENJX01FTU9SWV9QSFlTLAotCQkJCQlDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJCQlDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJCQlDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJCQkJQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkJCVBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJCQlDRkdfUENJRTNfTUVNX0JBU0UsCi0JCQkJCUNGR19QQ0lFM19NRU1fUEhZUywKLQkJCQkJQ0ZHX1BDSUUzX01FTV9TSVpFLAorCQkJCQlDT05GSUdfU1lTX1BDSUUzX01FTV9CQVNFLAorCQkJCQlDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTLAorCQkJCQlDT05GSUdfU1lTX1BDSUUzX01FTV9TSVpFLAogCQkJCQlQQ0lfUkVHSU9OX01FTSk7CiAKIAkJCS8qIG91dGJvdW5kIGlvICovCiAJCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCQkJQ0ZHX1BDSUUzX0lPX0JBU0UsCi0JCQkJCUNGR19QQ0lFM19JT19QSFlTLAotCQkJCQlDRkdfUENJRTNfSU9fU0laRSwKKwkJCQkJQ09ORklHX1NZU19QQ0lFM19JT19CQVNFLAorCQkJCQlDT05GSUdfU1lTX1BDSUUzX0lPX1BIWVMsCisJCQkJCUNPTkZJR19TWVNfUENJRTNfSU9fU0laRSwKIAkJCQkJUENJX1JFR0lPTl9JTyk7CiAKIAkJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7CkBAIC0yMjUsNyArMjI1LDcgQEAKIAogCQkJcGNpX2hvc2VfcmVhZF9jb25maWdfZHdvcmQoaG9zZSwgUENJX0JERigyLCAweDFkLCAwICksCiAJCQkJCVBDSV9CQVNFX0FERFJFU1NfMSwgJnRlbXAzMik7Ci0JCQlpZiAodGVtcDMyID49IENGR19QQ0lFM19NRU1fUEhZUykgeworCQkJaWYgKHRlbXAzMiA+PSBDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTKSB7CiAJCQkJZGVidWcoIiB1bGkxNTcyIHJlYWQgdG8gJXhcbiIsIHRlbXAzMik7CiAJCQkJaW5fYmUzMigodW5zaWduZWQgKil0ZW1wMzIpOwogCQkJfQpAQCAtMjQwLDcgKzI0MCw3IEBACiAKICNpZmRlZiBDT05GSUdfUENJRTIKIAl7Ci0JCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ0ZHX1BDSUUyX0FERFI7CisJCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0lFMl9BRERSOwogCQlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAkJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaWUyX2hvc2U7CiAJCWludCBwY2llX2VwID0gKGhvc3RfYWdlbnQgPT0gMikgfHwgKGhvc3RfYWdlbnQgPT0gNCkgfHwKQEAgLTI1OSwyMyArMjU5LDIzIEBACiAKIAkJCS8qIGluYm91bmQgKi8KIAkJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJCQlDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkJCUNGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkJCUNGR19QQ0lfTUVNT1JZX1NJWkUsCisJCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJCQlDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSwKIAkJCQkJUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCQkJCUNGR19QQ0lFMl9NRU1fQkFTRSwKLQkJCQkJQ0ZHX1BDSUUyX01FTV9QSFlTLAotCQkJCQlDRkdfUENJRTJfTUVNX1NJWkUsCisJCQkJCUNPTkZJR19TWVNfUENJRTJfTUVNX0JBU0UsCisJCQkJCUNPTkZJR19TWVNfUENJRTJfTUVNX1BIWVMsCisJCQkJCUNPTkZJR19TWVNfUENJRTJfTUVNX1NJWkUsCiAJCQkJCVBDSV9SRUdJT05fTUVNKTsKIAogCQkJLyogb3V0Ym91bmQgaW8gKi8KIAkJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkJCQlDRkdfUENJRTJfSU9fQkFTRSwKLQkJCQkJQ0ZHX1BDSUUyX0lPX1BIWVMsCi0JCQkJCUNGR19QQ0lFMl9JT19TSVpFLAorCQkJCQlDT05GSUdfU1lTX1BDSUUyX0lPX0JBU0UsCisJCQkJCUNPTkZJR19TWVNfUENJRTJfSU9fUEhZUywKKwkJCQkJQ09ORklHX1NZU19QQ0lFMl9JT19TSVpFLAogCQkJCQlQQ0lfUkVHSU9OX0lPKTsKIAogCQkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKQEAgLTI5Nyw3ICsyOTcsNyBAQAogI2VuZGlmCiAjaWZkZWYgQ09ORklHX1BDSUUxCiAJewotCQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0lFMV9BRERSOworCQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJRTFfQUREUjsKIAkJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2llMV9ob3NlOwogCQlpbnQgcGNpZV9lcCA9IChob3N0X2FnZW50ID09IDEpIHx8IChob3N0X2FnZW50ID09IDQpIHx8CkBAIC0zMTYsMjMgKzMxNiwyMyBAQAogCiAJCQkvKiBpbmJvdW5kICovCiAJCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCQkJQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJCQlDRkdfUENJX01FTU9SWV9QSFlTLAotCQkJCQlDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJCQlDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJCQlDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJCQkJQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkJCVBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJCQlDRkdfUENJRTFfTUVNX0JBU0UsCi0JCQkJCUNGR19QQ0lFMV9NRU1fUEhZUywKLQkJCQkJQ0ZHX1BDSUUxX01FTV9TSVpFLAorCQkJCQlDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFLAorCQkJCQlDT05GSUdfU1lTX1BDSUUxX01FTV9QSFlTLAorCQkJCQlDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFLAogCQkJCQlQQ0lfUkVHSU9OX01FTSk7CiAKIAkJCS8qIG91dGJvdW5kIGlvICovCiAJCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCQkJQ0ZHX1BDSUUxX0lPX0JBU0UsCi0JCQkJCUNGR19QQ0lFMV9JT19QSFlTLAotCQkJCQlDRkdfUENJRTFfSU9fU0laRSwKKwkJCQkJQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFLAorCQkJCQlDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMsCisJCQkJCUNPTkZJR19TWVNfUENJRTFfSU9fU0laRSwKIAkJCQkJUENJX1JFR0lPTl9JTyk7CiAKIAkJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7CkBAIC0zNjAsNyArMzYwLDcgQEAKIGludCBib2FyZF9lYXJseV9pbml0X3Iodm9pZCkKIHsKIAl1bnNpZ25lZCBpbnQgaTsKLQljb25zdCB1bnNpZ25lZCBpbnQgZmxhc2hiYXNlID0gQ0ZHX0ZMQVNIX0JBU0U7CisJY29uc3QgdW5zaWduZWQgaW50IGZsYXNoYmFzZSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAljb25zdCB1OCBmbGFzaF9lc2VsID0gMjsKIAogCS8qCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU3MmRzL3RsYi5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NzJkcy90bGIuYwppbmRleCA5NjUzNTZhLi40NmQ5ZTRhIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU3MmRzL3RsYi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTcyZHMvdGxiLmMKQEAgLTI4LDE2ICsyOCwxNiBAQAogCiBzdHJ1Y3QgZnNsX2VfdGxiX2VudHJ5IHRsYl90YWJsZVtdID0gewogCS8qIFRMQiAwIC0gZm9yIHRlbXAgc3RhY2sgaW4gY2FjaGUgKi8KLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSLCBDRkdfSU5JVF9SQU1fQUREUiwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCiAKQEAgLTUyLDMyICs1MiwzMiBAQAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDEpLAogCiAJLyogKkkqRyogLSBDQ1NSQkFSICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfQ0NTUkJBUiwgQ0ZHX0NDU1JCQVJfUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQ0NTUkJBUiwgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAxLCBCT09LRV9QQUdFU1pfMU0sIDEpLAogCiAJLyogVyoqRyogLSBGbGFzaC9wcm9tamV0LCBsb2NhbGJ1cyAqLwogCS8qIFRoaXMgd2lsbCBiZSBjaGFuZ2VkIHRvICpJKkcqIGFmdGVyIHJlbG9jYXRpb24gdG8gUkFNLiAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX1d8TUFTMl9HLAogCQkgICAgICAwLCAyLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKIAkvKiAqSSpHKiAtIFBDSSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSUUzX01FTV9QSFlTLCBDRkdfUENJRTNfTUVNX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTLCBDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMywgQk9PS0VfUEFHRVNaXzFHLCAxKSwKIAogCS8qICpJKkcqIC0gUENJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJRTNfTUVNX1BIWVMgKyAweDQwMDAwMDAwLCBDRkdfUENJRTNfTUVNX1BIWVMgKyAweDQwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0lFM19NRU1fUEhZUyArIDB4NDAwMDAwMDAsIENPTkZJR19TWVNfUENJRTNfTUVNX1BIWVMgKyAweDQwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNCwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJRTNfTUVNX1BIWVMgKyAweDUwMDAwMDAwLCBDRkdfUENJRTNfTUVNX1BIWVMgKyAweDUwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0lFM19NRU1fUEhZUyArIDB4NTAwMDAwMDAsIENPTkZJR19TWVNfUENJRTNfTUVNX1BIWVMgKyAweDUwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNSwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCiAJLyogKkkqRyogLSBQQ0kgSS9PICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJRTNfSU9fUEhZUywgQ0ZHX1BDSUUzX0lPX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSUUzX0lPX1BIWVMsIENPTkZJR19TWVNfUENJRTNfSU9fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDYsIEJPT0tFX1BBR0VTWl8yNTZLLCAxKSwKIH07CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODYxMGhwY2QvbGF3LmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODYxMGhwY2QvbGF3LmMKaW5kZXggOTFiOTIyYi4uMmFhZDI4YSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg2MTBocGNkL2xhdy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NjEwaHBjZC9sYXcuYwpAQCAtMjksMTYgKzI5LDE2IEBACiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7CiAjaWYgIWRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pCi0JU0VUX0xBVyhDRkdfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX0REUl8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX0REUl8xKSwKICNlbmRpZgotCVNFVF9MQVcoQ0ZHX1BDSUUxX01FTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSUUyX01FTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9QQ0lFXzIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTJfTUVNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX1BDSUVfMiksCiAJU0VUX0xBVyhQSVhJU19CQVNFLCBMQVdfU0laRV8yTSwgTEFXX1RSR1RfSUZfTEJDKSwKLQlTRVRfTEFXKENGR19QQ0lFMV9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKLQlTRVRfTEFXKENGR19QQ0lFMl9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJRV8yKSwKLQlTRVRfTEFXKENGR19GTEFTSF9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAotCVNFVF9MQVcoQ0ZHX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX1BDSV8xKSwKLQlTRVRfTEFXKENGR19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0lfMSkKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSUVfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUyX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0lFXzIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19GTEFTSF9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9QQ0lfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSV8xKQogfTsKIAogaW50IG51bV9sYXdfZW50cmllcyA9IEFSUkFZX1NJWkUobGF3X3RhYmxlKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NjEwaHBjZC9tcGM4NjEwaHBjZC5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg2MTBocGNkL21wYzg2MTBocGNkLmMKaW5kZXggMTMwZjdhYS4uNWZhZWNhMSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg2MTBocGNkL21wYzg2MTBocGNkLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg2MTBocGNkL21wYzg2MTBocGNkLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIC8qIGNhbGxlZCBiZWZvcmUgYW55IGNvbnNvbGUgb3V0cHV0ICovCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gJmltbWFwLT5pbV9ndXI7CiAKIAlndXItPmdwaW9jciB8PSAweDg4YWE1NTAwOyAvKiBESVUxNiwgSVIxLCBVQVJUMCwgVUFSVDIgKi8KQEAgLTk4LDcgKzk4LDcgQEAKIAogaW50IGNoZWNrYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjY3NyX2xvY2FsX21jbV90ICptY20gPSAmaW1tYXAtPmltX2xvY2FsX21jbTsKIAogCXByaW50ZiAoIkJvYXJkOiBNUEM4NjEwSFBDRCwgU3lzdGVtIElEOiAweCUwMngsICIKQEAgLTEyOSw3ICsxMjksNyBAQAogCWRyYW1fc2l6ZSA9IGZpeGVkX3NkcmFtKCk7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAJcHV0cygiIEREUjogIik7CiAJcmV0dXJuIGRyYW1fc2l6ZTsKICNlbmRpZgpAQCAtMTUzLDggKzE1Myw4IEBACiAKIGxvbmcgaW50IGZpeGVkX3NkcmFtKHZvaWQpCiB7Ci0jaWYgIWRlZmluZWQoQ0ZHX1JBTUJPT1QpCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworI2lmICFkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkciA9ICZpbW1hcC0+aW1fZGRyMTsKIAl1aW50IGRfaW5pdDsKIApAQCAtMjAxLDcgKzIwMSw3IEBACiAKIAlyZXR1cm4gNTEyICogMTAyNCAqIDEwMjQ7CiAjZW5kaWYKLQlyZXR1cm4gQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKKwlyZXR1cm4gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CiB9CiAKICNlbmRpZgpAQCAtMjQyLDcgKzI0Miw3IEBACiAKIHZvaWQgcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19DQ1NSQkFSOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19DQ1NSQkFSOwogCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICZpbW1hcC0+aW1fZ3VyOwogCXVpbnQgZGV2ZGlzciA9IGd1ci0+ZGV2ZGlzcjsKIAl1aW50IGlvX3NlbCA9IChndXItPnBvcmRldnNyICYgTVBDODYxMF9QT1JERVZTUl9JT19TRUwpCkBAIC0yNTUsNyArMjU1LDcgQEAKIAogI2lmZGVmIENPTkZJR19QQ0lFMQogIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0lFMV9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0lFMV9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2llMV9ob3NlOwogCWludCBwY2llX2NvbmZpZ3VyZWQgPSAoaW9fc2VsID09IDEpIHx8IChpb19zZWwgPT0gNCk7CkBAIC0yNzEsMjMgKzI3MSwyMyBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCSBDRkdfUENJRTFfTUVNX0JBU0UsCi0JCQkgQ0ZHX1BDSUUxX01FTV9QSFlTLAotCQkJIENGR19QQ0lFMV9NRU1fU0laRSwKKwkJCSBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFLAorCQkJIENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMsCisJCQkgQ09ORklHX1NZU19QQ0lFMV9NRU1fU0laRSwKIAkJCSBQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkgQ0ZHX1BDSUUxX0lPX0JBU0UsCi0JCQkgQ0ZHX1BDSUUxX0lPX1BIWVMsCi0JCQkgQ0ZHX1BDSUUxX0lPX1NJWkUsCisJCQkgQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFLAorCQkJIENPTkZJR19TWVNfUENJRTFfSU9fUEhZUywKKwkJCSBDT05GSUdfU1lTX1BDSUUxX0lPX1NJWkUsCiAJCQkgUENJX1JFR0lPTl9JTyk7CiAKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKQEAgLTMxMiw3ICszMTIsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BDSUUyCiAgewotCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ0ZHX1BDSUUyX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSUUyX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaWUyX2hvc2U7CiAKQEAgLTMzMCwyMyArMzMwLDIzIEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSBDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkgQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCSBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJIENGR19QQ0lFMl9NRU1fQkFTRSwKLQkJCSBDRkdfUENJRTJfTUVNX1BIWVMsCi0JCQkgQ0ZHX1BDSUUyX01FTV9TSVpFLAorCQkJIENPTkZJR19TWVNfUENJRTJfTUVNX0JBU0UsCisJCQkgQ09ORklHX1NZU19QQ0lFMl9NRU1fUEhZUywKKwkJCSBDT05GSUdfU1lTX1BDSUUyX01FTV9TSVpFLAogCQkJIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSBDRkdfUENJRTJfSU9fQkFTRSwKLQkJCSBDRkdfUENJRTJfSU9fUEhZUywKLQkJCSBDRkdfUENJRTJfSU9fU0laRSwKKwkJCSBDT05GSUdfU1lTX1BDSUUyX0lPX0JBU0UsCisJCQkgQ09ORklHX1NZU19QQ0lFMl9JT19QSFlTLAorCQkJIENPTkZJR19TWVNfUENJRTJfSU9fU0laRSwKIAkJCSBQQ0lfUkVHSU9OX0lPKTsKIAogCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwpAQCAtMzcwLDcgKzM3MCw3IEBACiAKICNpZmRlZiBDT05GSUdfUENJMQogIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0kxX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSTFfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpMV9ob3NlOwogCWludCBwY2lfYWdlbnQgPSAoaG9zdF9hZ2VudCA+PSA0KSAmJiAoaG9zdF9hZ2VudCA8PSA2KTsKQEAgLTM4MywyMyArMzgzLDIzIEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSBDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkgQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCSBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJIENGR19QQ0kxX01FTV9CQVNFLAotCQkJIENGR19QQ0kxX01FTV9QSFlTLAotCQkJIENGR19QQ0kxX01FTV9TSVpFLAorCQkJIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwKKwkJCSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCQkgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLAogCQkJIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSBDRkdfUENJMV9JT19CQVNFLAotCQkJIENGR19QQ0kxX0lPX1BIWVMsCi0JCQkgQ0ZHX1BDSTFfSU9fU0laRSwKKwkJCSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwKKwkJCSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKKwkJCSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwKIAkJCSBQQ0lfUkVHSU9OX0lPKTsKIAogCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg2MTBocGNkL21wYzg2MTBocGNkX2RpdS5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg2MTBocGNkL21wYzg2MTBocGNkX2RpdS5jCmluZGV4IDRkYjk0MWMuLmNkMjVkNGEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NjEwaHBjZC9tcGM4NjEwaHBjZF9kaXUuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODYxMGhwY2QvbXBjODYxMGhwY2RfZGl1LmMKQEAgLTQzLDcgKzQzLDcgQEAKIAogdm9pZCBkaXVfc2V0X3BpeGVsX2Nsb2NrKHVuc2lnbmVkIGludCBwaXhjbG9jaykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAmaW1tYXAtPmltX2d1cjsKIAl2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKmd1dHNfY2xrZHZkciA9ICZndXItPmNsa2R2ZHI7CiAJdW5zaWduZWQgbG9uZyBzcGVlZF9jY2IsIHRlbXAsIHBpeHZhbDsKQEAgLTEzNyw3ICsxMzcsNyBAQAogfQogCiBVX0JPT1RfQ01EKAotCWRpdWZiLCBDRkdfTUFYQVJHUywgMSwgbXBjODYxMGRpdV9pbml0X3Nob3dfYm1wLAorCWRpdWZiLCBDT05GSUdfU1lTX01BWEFSR1MsIDEsIG1wYzg2MTBkaXVfaW5pdF9zaG93X2JtcCwKIAkiZGl1ZmIgaW5pdCB8IGFkZHIgLSBJbml0IG9yIERpc3BsYXkgQk1QIGZpbGVcbiIsCiAJImluaXRcbiAgICAtIGluaXRpYWxpemUgRElVXG4iCiAJImFkZHJcbiAgICAtIGRpc3BsYXkgYm1wIGF0IGFkZHJlc3MgJ2FkZHInXG4iCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODY0MWhwY24vbGF3LmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODY0MWhwY24vbGF3LmMKaW5kZXggMmQ2YzNjMS4uMTgyYjRjNSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg2NDFocGNuL2xhdy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NjQxaHBjbi9sYXcuYwpAQCAtNDcsMTggKzQ3LDE4IEBACiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7CiAjaWYgIWRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pCi0JU0VUX0xBVyhDRkdfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0REUl8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0REUl8xKSwKICNlbmRpZgotCVNFVF9MQVcoQ0ZHX1BDSTFfTUVNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8xKSwKLQlTRVRfTEFXKENGR19QQ0kyX01FTV9CQVNFLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSwgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzIpLAogCVNFVF9MQVcoUElYSVNfQkFTRSwgTEFXX1NJWkVfMk0sIExBV19UUkdUX0lGX0xCQyksCi0JU0VUX0xBVyhDRkdfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSV8xKSwKLQlTRVRfTEFXKENGR19QQ0kyX0lPX1BIWVMsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJXzIpLAotCVNFVF9MQVcoKENGR19GTEFTSF9CQVNFICYgMHhmZTAwMDAwMCksIExBV19TSVpFXzMyTSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMl9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSV8yKSwKKwlTRVRfTEFXKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiAweGZlMDAwMDAwKSwgTEFXX1NJWkVfMzJNLCBMQVdfVFJHVF9JRl9MQkMpLAogI2lmICFkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKQotCVNFVF9MQVcoQ0ZHX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9ERFJfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9ERFJfMiksCiAjZW5kaWYKLQlTRVRfTEFXKENGR19SSU9fTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1JJTykKKwlTRVRfTEFXKENPTkZJR19TWVNfUklPX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9SSU8pCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg2NDFocGNuL21wYzg2NDFocGNuLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODY0MWhwY24vbXBjODY0MWhwY24uYwppbmRleCA5N2Y3ZjQ5Li5mY2FhYWNiIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODY0MWhwY24vbXBjODY0MWhwY24uYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODY0MWhwY24vbXBjODY0MWhwY24uYwpAQCAtNjUsNyArNjUsNyBAQAogCWRyYW1fc2l6ZSA9IGZpeGVkX3NkcmFtKCk7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAJcHV0cygiICAgIEREUjogIik7CiAJcmV0dXJuIGRyYW1fc2l6ZTsKICNlbmRpZgpAQCAtODksMjMgKzg5LDIzIEBACiBsb25nIGludAogZml4ZWRfc2RyYW0odm9pZCkKIHsKLSNpZiAhZGVmaW5lZChDRkdfUkFNQk9PVCkKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworI2lmICFkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHIgPSAmaW1tYXAtPmltX2RkcjE7CiAKLQlkZHItPmNzMF9ibmRzID0gQ0ZHX0REUl9DUzBfQk5EUzsKLQlkZHItPmNzMF9jb25maWcgPSBDRkdfRERSX0NTMF9DT05GSUc7Ci0JZGRyLT50aW1pbmdfY2ZnXzMgPSBDRkdfRERSX1RJTUlOR18zOwotCWRkci0+dGltaW5nX2NmZ18wID0gQ0ZHX0REUl9USU1JTkdfMDsKLQlkZHItPnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JZGRyLT50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWRkci0+c2RyYW1fbW9kZV8xID0gQ0ZHX0REUl9NT0RFXzE7Ci0JZGRyLT5zZHJhbV9tb2RlXzIgPSBDRkdfRERSX01PREVfMjsKLQlkZHItPnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKLQlkZHItPnNkcmFtX2RhdGFfaW5pdCA9IENGR19ERFJfREFUQV9JTklUOwotCWRkci0+c2RyYW1fY2xrX2NudGwgPSBDRkdfRERSX0NMS19DVFJMOwotCWRkci0+c2RyYW1fb2NkX2NudGwgPSBDRkdfRERSX09DRF9DVFJMOwotCWRkci0+c2RyYW1fb2NkX3N0YXR1cyA9IENGR19ERFJfT0NEX1NUQVRVUzsKKwlkZHItPmNzMF9ibmRzID0gQ09ORklHX1NZU19ERFJfQ1MwX0JORFM7CisJZGRyLT5jczBfY29uZmlnID0gQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRzsKKwlkZHItPnRpbWluZ19jZmdfMyA9IENPTkZJR19TWVNfRERSX1RJTUlOR18zOworCWRkci0+dGltaW5nX2NmZ18wID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzA7CisJZGRyLT50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlkZHItPnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWRkci0+c2RyYW1fbW9kZV8xID0gQ09ORklHX1NZU19ERFJfTU9ERV8xOworCWRkci0+c2RyYW1fbW9kZV8yID0gQ09ORklHX1NZU19ERFJfTU9ERV8yOworCWRkci0+c2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKKwlkZHItPnNkcmFtX2RhdGFfaW5pdCA9IENPTkZJR19TWVNfRERSX0RBVEFfSU5JVDsKKwlkZHItPnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFJfQ0xLX0NUUkw7CisJZGRyLT5zZHJhbV9vY2RfY250bCA9IENPTkZJR19TWVNfRERSX09DRF9DVFJMOworCWRkci0+c2RyYW1fb2NkX3N0YXR1cyA9IENPTkZJR19TWVNfRERSX09DRF9TVEFUVVM7CiAKICNpZiBkZWZpbmVkIChDT05GSUdfRERSX0VDQykKIAlkZHItPmVycl9kaXNhYmxlID0gMHgwMDAwMDA4RDsKQEAgLTExNywxNiArMTE3LDE2IEBACiAKICNpZiBkZWZpbmVkIChDT05GSUdfRERSX0VDQykKIAkvKiBFbmFibGUgRUNDIGNoZWNraW5nICovCi0JZGRyLT5zZHJhbV9jZmdfMSA9IChDRkdfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKKwlkZHItPnNkcmFtX2NmZ18xID0gKENPTkZJR19TWVNfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKICNlbHNlCi0JZGRyLT5zZHJhbV9jZmdfMSA9IENGR19ERFJfQ09OVFJPTDsKLQlkZHItPnNkcmFtX2NmZ18yID0gQ0ZHX0REUl9DT05UUk9MMjsKKwlkZHItPnNkcmFtX2NmZ18xID0gQ09ORklHX1NZU19ERFJfQ09OVFJPTDsKKwlkZHItPnNkcmFtX2NmZ18yID0gQ09ORklHX1NZU19ERFJfQ09OVFJPTDI7CiAjZW5kaWYKIAlhc20oInN5bmM7IGlzeW5jIik7CiAKIAl1ZGVsYXkoNTAwKTsKICNlbmRpZgotCXJldHVybiBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OworCXJldHVybiBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKIH0KICNlbmRpZgkvKiAhZGVmaW5lZChDT05GSUdfU1BEX0VFUFJPTSkgKi8KIApAQCAtMTY0LDcgKzE2NCw3IEBACiAKIHZvaWQgcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19DQ1NSQkFSOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19DQ1NSQkFSOwogCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICZpbW1hcC0+aW1fZ3VyOwogCXVpbnQgZGV2ZGlzciA9IGd1ci0+ZGV2ZGlzcjsKIAl1aW50IGlvX3NlbCA9IChndXItPnBvcmRldnNyICYgTVBDODY0MV9QT1JERVZTUl9JT19TRUwpCkBAIC0xNzIsNyArMTcyLDcgQEAKIAogI2lmZGVmIENPTkZJR19QQ0kxCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJMV9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0kxX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaTFfaG9zZTsKICNpZmRlZiBERUJVRwpAQCAtMTk0LDIzICsxOTQsMjMgQEAKIAogCQkvKiBpbmJvdW5kICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX0JVUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJCS8qIG91dGJvdW5kIGlvICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkJICAgICAgIENGR19QQ0kxX0lPX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSTFfSU9fUEhZUywKLQkJCSAgICAgICBDRkdfUENJMV9JT19TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7CkBAIC0yMjgsOCArMjI4LDggQEAKIAkJICogQWN0aXZhdGUgVUxJMTU3NSBsZWdhY3kgY2hpcCBieSBwZXJmb3JtaW5nIGEgZmFrZQogCQkgKiBtZW1vcnkgYWNjZXNzLiAgTmVlZGVkIHRvIG1ha2UgVUxJIFJUQyB3b3JrLgogCQkgKi8KLQkJaW5fYmUzMigodW5zaWduZWQgKikgKChjaGFyICopKENGR19QQ0kxX01FTV9CQVNFCi0JCQkJICAgICAgICsgQ0ZHX1BDSTFfTUVNX1NJWkUgLSAweDEwMDAwMDApKSk7CisJCWluX2JlMzIoKHVuc2lnbmVkICopICgoY2hhciAqKShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKwkJCQkgICAgICAgKyBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUgLSAweDEwMDAwMDApKSk7CiAKIAl9IGVsc2UgewogCQlwdXRzKCJQQ0ktRVhQUkVTUyAxOiBEaXNhYmxlZFxuIik7CkBAIC0yNDEsMzAgKzI0MSwzMCBAQAogCiAjaWZkZWYgQ09ORklHX1BDSTIKIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0kyX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSTJfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpMl9ob3NlOwogCiAKIAkvKiBpbmJvdW5kICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCSAgICAgICBDRkdfUENJX01FTU9SWV9CVVMsCi0JCSAgICAgICBDRkdfUENJX01FTU9SWV9QSFlTLAotCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJICAgICAgIENGR19QQ0kyX01FTV9CQVNFLAotCQkgICAgICAgQ0ZHX1BDSTJfTUVNX1BIWVMsCi0JCSAgICAgICBDRkdfUENJMl9NRU1fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9NRU1fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCS8qIG91dGJvdW5kIGlvICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCSAgICAgICBDRkdfUENJMl9JT19CQVNFLAotCQkgICAgICAgQ0ZHX1BDSTJfSU9fUEhZUywKLQkJICAgICAgIENGR19QQ0kyX0lPX1NJWkUsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfSU9fQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9JT19QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX0lPX1NJWkUsCiAJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAogCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7CmRpZmYgLS1naXQgYS9ib2FyZC9mdW5rd2Vyay92b3Zwbi1ndy9mbGFzaC5jIGIvYm9hcmQvZnVua3dlcmsvdm92cG4tZ3cvZmxhc2guYwppbmRleCAwMzA4NjExLi5mZDNiMTZlIDEwMDY0NAotLS0gYS9ib2FyZC9mdW5rd2Vyay92b3Zwbi1ndy9mbGFzaC5jCisrKyBiL2JvYXJkL2Z1bmt3ZXJrL3ZvdnBuLWd3L2ZsYXNoLmMKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi1mbGFzaF9pbmZvX3QJCQkJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdAkJCQlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogI2RlZmluZSBGTEFTSF9DTURfUkVBRF9JRAkJMHg5MAogI2RlZmluZSBGTEFTSF9DTURfUkVBRF9TVEFUVVMJCTB4NzAKQEAgLTQ2LDcgKzQ2LDcgQEAKIAogI2RlZmluZSBGTEFTSF9XUklURV9CVUZGRVJfU0laRQkJMzIKIAotI2lmZGVmIENGR19GTEFTSF8xNkJJVAorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKICNkZWZpbmUgRkxBU0hfV09SRF9TSVpFCQkJdW5zaWduZWQgc2hvcnQKICNkZWZpbmUgRkxBU0hfSURfTUFTSwkJCTB4ZmZmZgogI2RlZmluZSBGTEFTSF9DTURfQUREUl9TSElGVAkJMApAQCAtMTMwLDEwICsxMzAsMTAgQEAKIAl1bnNpZ25lZCBsb25nCXNpemU7CiAJaW50CQlpOwogCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9Ci0Jc2l6ZSA9IGZsYXNoX2dldCgodm9sYXRpbGUgRkxBU0hfV09SRF9TSVpFICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplID0gZmxhc2hfZ2V0KCh2b2xhdGlsZSBGTEFTSF9XT1JEX1NJWkUgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggU2l6ZT0weCUwOGx4XG4iLCBzaXplKTsKIAkJcmV0dXJuICgwKTsKQEAgLTE0NSwxMCArMTQ1LDEwIEBACiAJCSAgICAgIGZsYXNoX2luZm9bMF0uc3RhcnRbMV0gLSAxLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9GTEFTSCwKLQkJICAgICAgQ0ZHX01PTklUT1JfRkxBU0grQ0ZHX01PTklUT1JfTEVOLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9GTEFTSCwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0ZMQVNIK0NPTkZJR19TWVNfTU9OSVRPUl9MRU4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAjaWZkZWYJQ09ORklHX0VOVl9JU19JTl9GTEFTSApAQCAtMjY1LDcgKzI2NSw3IEBACiAJCXVkZWxheSAoMTAwMCk7CiAKIAkJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgRkxBU0hfU1RBVFVTX0RPTkUpICE9IEZMQVNIX1NUQVRVU19ET05FKSB7Ci0JCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCXByaW50ZigiRmxhc2ggZXJhc2UgdGltZW91dCBhdCBhZGRyZXNzICVseFxuIiwgaW5mby0+c3RhcnRbc2VjdF0pOwogCQkJCSphZGRyID0gRkxBU0hfQ01EX1NVU1BFTkRfRVJBU0U7CiAJCQkJKmFkZHIgPSBGTEFTSF9DTURfUkVTRVQ7CkBAIC0zMDcsNyArMzA3LDcgQEAKIAkJCWVuYWJsZV9pbnRlcnJ1cHRzKCk7CiAJCX0KIAotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKC0xKTsKIAkJfQogCX0KQEAgLTMzNyw3ICszMzcsNyBAQAogCQkJCWJyZWFrOwogCQkJfQogCQl9Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gRkxBU0hfQ01EX1JFU0VUOwogCQkJcmV0dXJuICgtMSk7CiAJCX0KQEAgLTM2Nyw3ICszNjcsNyBAQAogCWFkZHIgPSAodm9sYXRpbGUgRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0WzBdKTsKIAlkc3QgPSAodm9sYXRpbGUgRkxBU0hfV09SRF9TSVpFICopIHVkc3Q7CiAKLSNpZmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAjZXJyb3IgTllJCiAjZWxzZQogCXdoaWxlIChjbnQgPiAwKSB7CkBAIC00MzUsNyArNDM1LDcgQEAKIAkvKiB3YWl0IGZvciBlcnJvciBvciBmaW5pc2ggKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUoIShhZGRyWzBdICYgRkxBU0hfU1RBVFVTX0RPTkUpKXsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmKCJGbGFzaCBwcm90ZWN0IHRpbWVvdXQgYXQgYWRkcmVzcyAlbHhcbiIsICBpbmZvLT5zdGFydFtzZWN0b3JdKTsKIAkJCWFkZHJbMF0gPSBGTEFTSF9DTURfUkVTRVQ7CiAJCQlyZXR1cm4gKDEpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnVua3dlcmsvdm92cG4tZ3cvdm92cG4tZ3cuYyBiL2JvYXJkL2Z1bmt3ZXJrL3ZvdnBuLWd3L3ZvdnBuLWd3LmMKaW5kZXggMWMzZjYyNy4uOGM0YWJkZCAxMDA2NDQKLS0tIGEvYm9hcmQvZnVua3dlcmsvdm92cG4tZ3cvdm92cG4tZ3cuYworKysgYi9ib2FyZC9mdW5rd2Vyay92b3Zwbi1ndy92b3Zwbi1ndy5jCkBAIC0xODksNyArMTg5LDcgQEAKIAl1bnNpZ25lZCBzaG9ydCB2YWw7CiAjZW5kaWYKIAotCWlvcCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ0ZHX0lNTVIsIDApOworCWlvcCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SLCAwKTsKIAogCS8qIFJlc2V0IHRoZSBQSFkgKi8KIAlpb3AtPnBkYXQgJj0gMHhmZmY3ZmZmZjsJLyogUEExMiA9IHxTV0lUQ0hfUkVTRVQgKi8KQEAgLTE5OCwxMiArMTk4LDEyIEBACiAJaW9wLT5wZGF0IHw9IDB4MDAwODAwMDA7CiAJZm9yIChpPTA7IGk8MTAwOyBpKyspIHsKIAkJdWRlbGF5KDIwMDAwKTsKLQkJaWYgKGJiX21paXBoeV9yZWFkKCJGQ0MxIEVUSEVSTkVUIiwgQ0ZHX1BIWV9BRERSLDIsJnZhbCApID09IDApIHsKKwkJaWYgKGJiX21paXBoeV9yZWFkKCJGQ0MxIEVUSEVSTkVUIiwgQ09ORklHX1NZU19QSFlfQUREUiwyLCZ2YWwgKSA9PSAwKSB7CiAJCQlicmVhazsKIAkJfQogCX0KIAkvKiBpbml0aWFsaXplIHN3aXRjaCAqLwotCW04OGU2MDYwX2luaXRpYWxpemUoIENGR19QSFlfQUREUiApOworCW04OGU2MDYwX2luaXRpYWxpemUoIENPTkZJR19TWVNfUEhZX0FERFIgKTsKICNlbmRpZgogfQogCkBAIC0yMzMsNyArMjMzLDcgQEAKIAl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpkdW1teTsKIAlpbnQgaTsKIAotCWltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKICNpZiAwCkBAIC0yNzIsNyArMjcyLDcgQEAKIAl1bnNpZ25lZCBjaGFyIGM7CiAJaW50IGk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCWltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCW1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAKQEAgLTI4OSw3ICsyODksNyBAQAogCW1lbWN0bC0+bWVtY19tYW1yID0gMHgwMDA0NDQ0MDsKICNlbmRpZgogCS8qIGVuYWJsZSBidWZmZXJzIChEU1AsIERQUkFNKSAqLwotCWlvcCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ0ZHX0lNTVIsIDApOworCWlvcCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SLCAwKTsKIAlpb3AtPnBkYXQgJj0gMHhmZmZiZmZmZjsJLyogUEExMyA9IHxFTl9NX0JDVEwxICovCiAKIAkvKiBkZXN0cm95IERQUkFNIG1hZ2ljICovCkBAIC0zMTAsNyArMzEwLDcgQEAKIHsKIAl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wOwogCi0JaW9wID0gaW9wb3J0X2FkZHIoKGltbWFwX3QgKilDRkdfSU1NUiwgMik7CisJaW9wID0gaW9wb3J0X2FkZHIoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIsIDIpOwogCWlvcC0+cGRhdCB8PSAweDAwMDAyMDAwOwkvKiBQQzE4ID0gSFdfUkVTRVQgKi8KIAlyZXR1cm4gMTsKIH0KQEAgLTMyMCwxNiArMzIwLDE2IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXA7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGw7CiAJdm9sYXRpbGUgdWNoYXIgKnJhbWFkZHI7CiAJaW50IGk7CiAJdWNoYXIgYzsKIAotCWltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7Ci0JcmFtYWRkciA9ICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRTsKKwlyYW1hZGRyID0gKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRTsKIAljID0gMHhmZjsKIAogCWltbWFwLT5pbV9zaXVfY29uZi5zY19wcGNfYWNyICA9IDB4MDI7CkBAIC0zMzgsMzAgKzMzOCwzMCBAQAogCWltbWFwLT5pbV9zaXVfY29uZi5zY190ZXNjcjEgICA9IDB4MDAwMDAwMDA7CiAJaW1tYXAtPmltX3NpdV9jb25mLnNjX3Rlc2NyMiAgID0gMHgwMDAwMDAwMDsKIAotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKLQltZW1jdGwtPm1lbWNfcHNydCA9IENGR19QU1JUOwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX1NEUkFNX0JBU0UgfCBDRkdfQlIxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKIAogCS8qIFByZWNoYXJnZSBhbGwgYmFua3MgKi8KLQltZW1jdGwtPm1lbWNfcHNkbXIgPSBDRkdfUFNETVIgfCAweDI4MDAwMDAwOworCW1lbWN0bC0+bWVtY19wc2RtciA9IENPTkZJR19TWVNfUFNETVIgfCAweDI4MDAwMDAwOwogCSpyYW1hZGRyID0gYzsKIAogCS8qIENCUiByZWZyZXNoICovCi0JbWVtY3RsLT5tZW1jX3BzZG1yID0gQ0ZHX1BTRE1SIHwgMHgwODAwMDAwMDsKKwltZW1jdGwtPm1lbWNfcHNkbXIgPSBDT05GSUdfU1lTX1BTRE1SIHwgMHgwODAwMDAwMDsKIAlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQogCQkqcmFtYWRkciA9IGM7CiAKIAkvKiBNb2RlIFJlZ2lzdGVyIHdyaXRlICovCi0JbWVtY3RsLT5tZW1jX3BzZG1yID0gQ0ZHX1BTRE1SIHwgMHgxODAwMDAwMDsKKwltZW1jdGwtPm1lbWNfcHNkbXIgPSBDT05GSUdfU1lTX1BTRE1SIHwgMHgxODAwMDAwMDsKIAkqcmFtYWRkciA9IGM7CiAKIAkvKiBSZWZyZXNoIGVuYWJsZSAqLwotCW1lbWN0bC0+bWVtY19wc2RtciA9IENGR19QU0RNUiB8IDB4NDAwMDAwMDA7CisJbWVtY3RsLT5tZW1jX3BzZG1yID0gQ09ORklHX1NZU19QU0RNUiB8IDB4NDAwMDAwMDA7CiAJKnJhbWFkZHIgPSBjOwotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKLQlyZXR1cm4gKENGR19TRFJBTV9TSVpFKTsKKwlyZXR1cm4gKENPTkZJR19TWVNfU0RSQU1fU0laRSk7CiB9CiAKIGludCBjaGVja2JvYXJkICh2b2lkKQpkaWZmIC0tZ2l0IGEvYm9hcmQvZzIwMDAvZzIwMDAuYyBiL2JvYXJkL2cyMDAwL2cyMDAwLmMKaW5kZXggNjQ3ZjRiNy4uNDhmYzY0MyAxMDA2NDQKLS0tIGEvYm9hcmQvZzIwMDAvZzIwMDAuYworKysgYi9ib2FyZC9nMjAwMC9nMjAwMC5jCkBAIC0zMyw3ICszMyw3IEBACiAjZGVmaW5lIE1FTV9TRFRSMV9JTklUX1ZBTCAgICAgIDB4MDA4NTQwMDUKICNkZWZpbmUgU0RSQU0wX0NGR19FTkFCTEUgICAgICAgMHg4MDAwMDAwMAogCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFICAgICAgICAgIDB4MDQwMDAwMDAgICAgICAvKiA2NCBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUgICAgICAgICAgMHgwNDAwMDAwMCAgICAgIC8qIDY0IE1CICovCiAKIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7CkBAIC03Nyw4ICs3Nyw4IEBACiAJLyoKIAkgKiBTZXQgTkFORC1GTEFTSCBHUElPIHNpZ25hbHMgdG8gZGVmYXVsdAogCSAqLwotCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH4oQ0ZHX05BTkRfQ0xFIHwgQ0ZHX05BTkRfQUxFKSk7Ci0Jb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX05BTkRfQ0UpOworCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH4oQ09ORklHX1NZU19OQU5EX0NMRSB8IENPTkZJR19TWVNfTkFORF9BTEUpKTsKKwlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkRfQ0UpOwogI2VuZGlmCiAKIAlyZXR1cm4gKDApOwpAQCAtMTI3LDcgKzEyNyw3IEBACiAJdWRlbGF5KDUwMCk7CiAJbXRzZHJhbTAoIG1lbV9tY29wdDEsIE1FTV9NQ09QVDFfSU5JVF9WQUx8U0RSQU0wX0NGR19FTkFCTEUgKTsKIAotCXJldHVybiAoQ0ZHX1NEUkFNX1NJWkUpOyAvKiBDRkdfU0RSQU1fU0laRSBpcyBpbiBHMjAwMC5oICovCisJcmV0dXJuIChDT05GSUdfU1lTX1NEUkFNX1NJWkUpOyAvKiBDT05GSUdfU1lTX1NEUkFNX1NJWkUgaXMgaW4gRzIwMDAuaCAqLwogIH0KIAogCkBAIC0xNTEsMTEgKzE1MSwxMSBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX05BTkQpCiAjaW5jbHVkZSA8bGludXgvbXRkL25hbmRfbGVnYWN5Lmg+Ci1leHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NGR19NQVhfTkFORF9ERVZJQ0VdOworZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRV07CiAKIHZvaWQgbmFuZF9pbml0KHZvaWQpCiB7Ci0JbmFuZF9wcm9iZShDRkdfTkFORF9CQVNFKTsKKwluYW5kX3Byb2JlKENPTkZJR19TWVNfTkFORF9CQVNFKTsKIAlpZiAobmFuZF9kZXZfZGVzY1swXS5DaGlwSUQgIT0gTkFORF9DaGlwSURfVU5LTk9XTikgewogCQlwcmludF9zaXplKG5hbmRfZGV2X2Rlc2NbMF0udG90bGVuLCAiXG4iKTsKIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9nMjAwMC9zdHJhdGFmbGFzaC5jIGIvYm9hcmQvZzIwMDAvc3RyYXRhZmxhc2guYwppbmRleCA4NDQ2ZTAyLi5lZmZlNjVhIDEwMDY0NAotLS0gYS9ib2FyZC9nMjAwMC9zdHJhdGFmbGFzaC5jCisrKyBiL2JvYXJkL2cyMDAwL3N0cmF0YWZsYXNoLmMKQEAgLTEwMSw3ICsxMDEsNyBAQAogCiAjZGVmaW5lIE5VTV9FUkFTRV9SRUdJT05TIDQKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtMTE2LDcgKzExNiw3IEBACiBzdGF0aWMgdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHVsb25nIGJhc2UsIGludCBiYW5rbnVtKTsKIHN0YXRpYyBpbnQgZmxhc2hfd3JpdGVfY2Zpd29yZCAoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCBjZml3b3JkX3QgY3dvcmQpOwogc3RhdGljIGludCBmbGFzaF9mdWxsX3N0YXR1c19jaGVjayhmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBzZWN0b3IsIHVsb25nIHRvdXQsIGNoYXIgKiBwcm9tcHQpOwotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiBzdGF0aWMgaW50IGZsYXNoX3dyaXRlX2NmaWJ1ZmZlcihmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1Y2hhciAqIGNwLCBpbnQgbGVuKTsKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTc2LDE0ICsxNzYsMTQgQEAKIAkgKgogCSAqLwogCi0JYWRkcmVzcyA9IENGR19GTEFTSF9CQVNFOworCWFkZHJlc3MgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJc2l6ZSA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJc2l6ZSArPSBmbGFzaF9pbmZvW2ldLnNpemUgPSBmbGFzaF9nZXRfc2l6ZShhZGRyZXNzLCBpKTsKLQkJYWRkcmVzcyArPSBDRkdfRkxBU0hfSU5DUkVNRU5UOworCQlhZGRyZXNzICs9IENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UOwogCQlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCQlwcmludGYgKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgJWQgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIixpLAogCQkJCWZsYXNoX2luZm9bMF0uc2l6ZSwgZmxhc2hfaW5mb1tpXS5zaXplPDwyMCk7CkBAIC0xOTIsMTQgKzE5MiwxNCBAQAogCiAjaWYgMCAvKiB0ZXN0LW9ubHkgKi8KIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwotI2lmIChDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFKQotCWZvcihpPTA7IGZsYXNoX2luZm9bMF0uc3RhcnRbaV0gPCBDRkdfTU9OSVRPUl9CQVNFK0NGR19NT05JVE9SX0xFTi0xOyBpKyspCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKwlmb3IoaT0wOyBmbGFzaF9pbmZvWzBdLnN0YXJ0W2ldIDwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrQ09ORklHX1NZU19NT05JVE9SX0xFTi0xOyBpKyspCiAJCSh2b2lkKWZsYXNoX3JlYWxfcHJvdGVjdCgmZmxhc2hfaW5mb1swXSwgaSwgMSk7CiAjZW5kaWYKICNlbHNlCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgLSBDRkdfTU9OSVRPUl9MRU4sCisJCSAgICAgICAtIENPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCSAgICAgICAtIDEsICZmbGFzaF9pbmZvWzFdKTsKICNlbmRpZgogCkBAIC0yNzMsNyArMjczLDcgQEAKIAogCXByaW50ZiAoIiAgU2VjdG9yIFN0YXJ0IEFkZHJlc3NlczoiKTsKIAlmb3IgKGk9MDsgaTxpbmZvLT5zZWN0b3JfY291bnQ7ICsraSkgewotI2lmZGVmIENGR19GTEFTSF9FTVBUWV9JTkZPCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAJCWludCBrOwogCQlpbnQgc2l6ZTsKIAkJaW50IGVyYXNlZDsKQEAgLTM1Myw3ICszNTMsNyBAQAogCQl3cCA9IGNwOwogCX0KIAotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAJd2hpbGUoY250ID49IGluZm8tPnBvcnR3aWR0aCkgewogCQlpID0gaW5mby0+YnVmZmVyX3NpemUgPiBjbnQ/IGNudDogaW5mby0+YnVmZmVyX3NpemU7CiAJCWlmKChyYyA9IGZsYXNoX3dyaXRlX2NmaWJ1ZmZlcihpbmZvLCB3cCwgc3JjLGkpKSAhPSBFUlJfT0spCkBAIC0zNzQsNyArMzc0LDcgQEAKIAkJd3AgKz0gaW5mby0+cG9ydHdpZHRoOwogCQljbnQgLT0gaW5mby0+cG9ydHdpZHRoOwogCX0KLSNlbmRpZiAvKiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLwogCWlmIChjbnQgPT0gMCkgewogCQlyZXR1cm4gKDApOwogCX0KQEAgLTcxNiw3ICs3MTYsNyBAQAogCXJldHVybiBmbGFzaF9mdWxsX3N0YXR1c19jaGVjayhpbmZvLCAwLCBpbmZvLT53cml0ZV90b3V0LCAid3JpdGUiKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAKIC8qIGxvb3AgdGhyb3VnaCB0aGUgc2VjdG9ycyBmcm9tIHRoZSBoaWdoZXN0IGFkZHJlc3MKICAqIHdoZW4gdGhlIHBhc3NlZCBhZGRyZXNzIGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gdGhlIHNlY3RvciBhZGRyZXNzCkBAIC03OTAsNCArNzkwLDQgQEAKIAlmbGFzaF93cml0ZV9jbWQoaW5mbywgc2VjdG9yLCAwLCBGTEFTSF9DTURfQ0xFQVJfU1RBVFVTKTsKIAlyZXR1cm4gcmV0Y29kZTsKIH0KLSNlbmRpZiAvKiBDRkdfVVNFX0ZMQVNIX0JVRkZFUl9XUklURSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfVVNFX0ZMQVNIX0JVRkZFUl9XUklURSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZ2Fpc2xlci9ncl9jcGNpX2F4MjAwMC91LWJvb3QubGRzIGIvYm9hcmQvZ2Fpc2xlci9ncl9jcGNpX2F4MjAwMC91LWJvb3QubGRzCmluZGV4IDM5NTg2NzAuLmEwODc2MzEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2dhaXNsZXIvZ3JfY3BjaV9heDIwMDAvdS1ib290LmxkcworKysgYi9ib2FyZC9nYWlzbGVyL2dyX2NwY2lfYXgyMDAwL3UtYm9vdC5sZHMKQEAgLTYxLDcgKzYxLDcgQEAKIAogCQkqKC5zdGFydCkKIAkJY3B1L2xlb24zL3N0YXJ0Lm8gKC50ZXh0KQotLyogOGsgaXMgdGhlIHNhbWUgYXMgdGhlIFBST00gb2Zmc2V0IGZyb20gZW5kIG9mIG1haW4gbWVtb3J5LCAoQ0ZHX1BST01fU0laRSkgKi8KKy8qIDhrIGlzIHRoZSBzYW1lIGFzIHRoZSBQUk9NIG9mZnNldCBmcm9tIGVuZCBvZiBtYWluIG1lbW9yeSwgKENPTkZJR19TWVNfUFJPTV9TSVpFKSAqLwogCQkuID0gQUxJR04oODE5Mik7CiAvKiBQUk9NIENPREUsIFdpbGwgYmUgcmVsb2NhdGVkIHRvIHRoZSBlbmQgb2YgbWVtb3J5LAogICogbm8gZ2xvYmFsIGRhdGEgYWNjZXNzZXMgcGxlYXNlLgpkaWZmIC0tZ2l0IGEvYm9hcmQvZ2Fpc2xlci9ncl9lcDJzNjAvdS1ib290LmxkcyBiL2JvYXJkL2dhaXNsZXIvZ3JfZXAyczYwL3UtYm9vdC5sZHMKaW5kZXggMTAwMzUwZC4uZTQ2MWEzNiAxMDA2NDQKLS0tIGEvYm9hcmQvZ2Fpc2xlci9ncl9lcDJzNjAvdS1ib290LmxkcworKysgYi9ib2FyZC9nYWlzbGVyL2dyX2VwMnM2MC91LWJvb3QubGRzCkBAIC02MSw3ICs2MSw3IEBACiAKIAkJKiguc3RhcnQpCiAJCWNwdS9sZW9uMy9zdGFydC5vICgudGV4dCkKLS8qIDhrIGlzIHRoZSBzYW1lIGFzIHRoZSBQUk9NIG9mZnNldCBmcm9tIGVuZCBvZiBtYWluIG1lbW9yeSwgKENGR19QUk9NX1NJWkUpICovCisvKiA4ayBpcyB0aGUgc2FtZSBhcyB0aGUgUFJPTSBvZmZzZXQgZnJvbSBlbmQgb2YgbWFpbiBtZW1vcnksIChDT05GSUdfU1lTX1BST01fU0laRSkgKi8KIAkJLiA9IEFMSUdOKDgxOTIpOwogLyogUFJPTSBDT0RFLCBXaWxsIGJlIHJlbG9jYXRlZCB0byB0aGUgZW5kIG9mIG1lbW9yeSwKICAqIG5vIGdsb2JhbCBkYXRhIGFjY2Vzc2VzIHBsZWFzZS4KZGlmZiAtLWdpdCBhL2JvYXJkL2dhaXNsZXIvZ3JfeGMzc18xNTAwL3UtYm9vdC5sZHMgYi9ib2FyZC9nYWlzbGVyL2dyX3hjM3NfMTUwMC91LWJvb3QubGRzCmluZGV4IDM4NDhjNjguLmRkZDI3ZDQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2dhaXNsZXIvZ3JfeGMzc18xNTAwL3UtYm9vdC5sZHMKKysrIGIvYm9hcmQvZ2Fpc2xlci9ncl94YzNzXzE1MDAvdS1ib290LmxkcwpAQCAtNjEsNyArNjEsNyBAQAogCiAJCSooLnN0YXJ0KQogCQljcHUvbGVvbjMvc3RhcnQubyAoLnRleHQpCi0vKiA4ayBpcyB0aGUgc2FtZSBhcyB0aGUgUFJPTSBvZmZzZXQgZnJvbSBlbmQgb2YgbWFpbiBtZW1vcnksIChDRkdfUFJPTV9TSVpFKSAqLworLyogOGsgaXMgdGhlIHNhbWUgYXMgdGhlIFBST00gb2Zmc2V0IGZyb20gZW5kIG9mIG1haW4gbWVtb3J5LCAoQ09ORklHX1NZU19QUk9NX1NJWkUpICovCiAJCS4gPSBBTElHTig4MTkyKTsKIC8qIFBST00gQ09ERSwgV2lsbCBiZSByZWxvY2F0ZWQgdG8gdGhlIGVuZCBvZiBtZW1vcnksCiAgKiBubyBnbG9iYWwgZGF0YSBhY2Nlc3NlcyBwbGVhc2UuCmRpZmYgLS1naXQgYS9ib2FyZC9nYWlzbGVyL2dyc2ltL3UtYm9vdC5sZHMgYi9ib2FyZC9nYWlzbGVyL2dyc2ltL3UtYm9vdC5sZHMKaW5kZXggMWU4YmI2OS4uYTljYzdjYSAxMDA2NDQKLS0tIGEvYm9hcmQvZ2Fpc2xlci9ncnNpbS91LWJvb3QubGRzCisrKyBiL2JvYXJkL2dhaXNsZXIvZ3JzaW0vdS1ib290LmxkcwpAQCAtNjAsNyArNjAsNyBAQAogCiAJCSooLnN0YXJ0KQogCQljcHUvbGVvbjMvc3RhcnQubyAoLnRleHQpCi0vKiA4ayBpcyB0aGUgc2FtZSBhcyB0aGUgUFJPTSBvZmZzZXQgZnJvbSBlbmQgb2YgbWFpbiBtZW1vcnksIChDRkdfUFJPTV9TSVpFKSAqLworLyogOGsgaXMgdGhlIHNhbWUgYXMgdGhlIFBST00gb2Zmc2V0IGZyb20gZW5kIG9mIG1haW4gbWVtb3J5LCAoQ09ORklHX1NZU19QUk9NX1NJWkUpICovCiAJCS4gPSBBTElHTig4MTkyKTsKIC8qIFBST00gQ09ERSwgV2lsbCBiZSByZWxvY2F0ZWQgdG8gdGhlIGVuZCBvZiBtZW1vcnksCiAgKiBubyBnbG9iYWwgZGF0YSBhY2Nlc3NlcyBwbGVhc2UuCmRpZmYgLS1naXQgYS9ib2FyZC9nYWlzbGVyL2dyc2ltX2xlb24yL3UtYm9vdC5sZHMgYi9ib2FyZC9nYWlzbGVyL2dyc2ltX2xlb24yL3UtYm9vdC5sZHMKaW5kZXggMmEyMjA4Mi4uYjM0NjJkNCAxMDA2NDQKLS0tIGEvYm9hcmQvZ2Fpc2xlci9ncnNpbV9sZW9uMi91LWJvb3QubGRzCisrKyBiL2JvYXJkL2dhaXNsZXIvZ3JzaW1fbGVvbjIvdS1ib290LmxkcwpAQCAtNjAsNyArNjAsNyBAQAogCiAJCSooLnN0YXJ0KQogCQljcHUvbGVvbjIvc3RhcnQubyAoLnRleHQpCi0vKiA4ayBpcyB0aGUgc2FtZSBhcyB0aGUgUFJPTSBvZmZzZXQgZnJvbSBlbmQgb2YgbWFpbiBtZW1vcnksIChDRkdfUFJPTV9TSVpFKSAqLworLyogOGsgaXMgdGhlIHNhbWUgYXMgdGhlIFBST00gb2Zmc2V0IGZyb20gZW5kIG9mIG1haW4gbWVtb3J5LCAoQ09ORklHX1NZU19QUk9NX1NJWkUpICovCiAJCS4gPSBBTElHTig4MTkyKTsKIC8qIFBST00gQ09ERSwgV2lsbCBiZSByZWxvY2F0ZWQgdG8gdGhlIGVuZCBvZiBtZW1vcnksCiAgKiBubyBnbG9iYWwgZGF0YSBhY2Nlc3NlcyBwbGVhc2UuCmRpZmYgLS1naXQgYS9ib2FyZC9nY3BsdXMvZmxhc2guYyBiL2JvYXJkL2djcGx1cy9mbGFzaC5jCmluZGV4IDQ4ZjMzYjIuLjg1MTE1ODIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2djcGx1cy9mbGFzaC5jCisrKyBiL2JvYXJkL2djcGx1cy9mbGFzaC5jCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKIC8qIEJvYXJkIHN1cHBvcnQgZm9yIDEgb3IgMiBmbGFzaCBkZXZpY2VzICovCiAjZGVmaW5lIEZMQVNIX1BPUlRfV0lEVEgzMgpAQCAtNjcsNyArNjcsNyBAQAogCWludCBpOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXN3aXRjaCAoaSkgewogCQljYXNlIDA6CiAJCQlmbGFzaF9nZXRfc2l6ZSgoRlBXICopIFBIWVNfRkxBU0hfMSwgJmZsYXNoX2luZm9baV0pOwpAQCAtODMsOCArODMsOCBAQAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX0ZMQVNIX0JBU0UsCi0JCSAgICAgIENGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CisJCSAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCiAJCSAgICAgIENPTkZJR19FTlZfQUREUiwKQEAgLTIwNywxMCArMjA3LDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJICAgICAgIGluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkgICAgICAgaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlhZGRyWzBdID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KQEAgLTI4Miw3ICsyODIsNyBAQAogCQkJd2hpbGUgKCgoc3RhdHVzID0KIAkJCQkgKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0KIAkJCSAgICAgICAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCQkJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CS8qIHN1c3BlbmQgZXJhc2UgICAgICAgICAqLwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwpAQCAtNDE4LDcgKzQxOCw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2dlbjg2MHQvYmVlcGVyLmMgYi9ib2FyZC9nZW44NjB0L2JlZXBlci5jCmluZGV4IGI0YzJjODkuLmI0NzJiOTEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2dlbjg2MHQvYmVlcGVyLmMKKysrIGIvYm9hcmQvZ2VuODYwdC9iZWVwZXIuYwpAQCAtNDMsNyArNDMsNyBAQAogICovCiB2b2lkIGluaXRfYmVlcGVyICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlpbW1hcC0+aW1fY3BtdGltZXIuY3BtdF90Z2NyICY9IH5UR0NSX1JTVDEgfCBUR0NSX1NUUDE7CiAJaW1tYXAtPmltX2NwbXRpbWVyLmNwbXRfdG1yMSA9ICgoMzMgPDwgVE1SX1BTX1NISUZUKSAmIFRNUl9QU19NU0spCkBAIC02Miw3ICs2Miw3IEBACiB7CiAjZGVmaW5lIEZSRVFfTElNSVQJMjUwMAogCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCS8qCiAJICogQ29tcHV0ZSB0aW1lciB0aWNrcyBnaXZlbiBkZXNpcmVkIGZyZXF1ZW5jeS4gIFRoZSB0aW1lciBpcyBzZXQgdXAKQEAgLTc5LDcgKzc5LDcgQEAKICAqLwogdm9pZCBiZWVwZXJfb24gKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCWltbWFwLT5pbV9jcG10aW1lci5jcG10X3RnY3IgJj0gflRHQ1JfU1RQMTsKIH0KQEAgLTg5LDcgKzg5LDcgQEAKICAqLwogdm9pZCBiZWVwZXJfb2ZmICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlpbW1hcC0+aW1fY3BtdGltZXIuY3BtdF90Z2NyIHw9IFRHQ1JfU1RQMTsKIH0KQEAgLTEwNCw3ICsxMDQsNyBAQAogICovCiB2b2lkIHNldF9iZWVwZXJfdm9sdW1lIChpbnQgc3RlcHMpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlpbnQgaTsKIAogCWlmIChzdGVwcyA+PSAwKSB7CmRpZmYgLS1naXQgYS9ib2FyZC9nZW44NjB0L2ZsYXNoLmMgYi9ib2FyZC9nZW44NjB0L2ZsYXNoLmMKaW5kZXggYTQ2ZTdlNi4uODI3ZDllMCAxMDA2NDQKLS0tIGEvYm9hcmQvZ2VuODYwdC9mbGFzaC5jCisrKyBiL2JvYXJkL2dlbjg2MHQvZmxhc2guYwpAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNDEsMTUgKzQxLDE1IEBACiAgKiBVc2UgYnVmZmVyZWQgd3JpdGVzIHRvIGZsYXNoIGJ5IGRlZmF1bHQgLSB0aGV5IGFyZSBhYm91dCAzMnggZmFzdGVyIHRoYW4KICAqIHNpbmdsZSBieXRlIHdyaXRlcy4KICAqLwotI2lmbmRlZiAgQ0ZHX0dFTjg2MFRfRkxBU0hfVVNFX1dSSVRFX0JVRkZFUgotI2RlZmluZSBDRkdfR0VOODYwVF9GTEFTSF9VU0VfV1JJVEVfQlVGRkVSCisjaWZuZGVmICBDT05GSUdfU1lTX0dFTjg2MFRfRkxBU0hfVVNFX1dSSVRFX0JVRkZFUgorI2RlZmluZSBDT05GSUdfU1lTX0dFTjg2MFRfRkxBU0hfVVNFX1dSSVRFX0JVRkZFUgogI2VuZGlmCiAKIC8qCiAgKiBNYXggdGltZSB0byB3YWl0IChpbiBtUykgZm9yIGZsYXNoIGRldmljZSB0byBhbGxvY2F0ZSBhIHdyaXRlIGJ1ZmZlci4KICAqLwotI2lmbmRlZiBDRkdfRkxBU0hfQUxMT0NfQlVGRkVSX1RPVVQKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FMTE9DX0JVRkZFUl9UT1VUCQkxMDAKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF9BTExPQ19CVUZGRVJfVE9VVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FMTE9DX0JVRkZFUl9UT1VUCQkxMDAKICNlbmRpZgogCiAvKgpAQCAtOTQsNyArOTQsNyBAQAogI2VuZGlmCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTEwOSwxMiArMTA5LDEyIEBACiB1bnNpZ25lZCBsb25nCiBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBzaXplX2IwOwogCWludCBpOwogCi0JZm9yIChpPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTEzOSw3ICsxMzksNyBAQAogCSAqIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUKIAkgKi8KIAltZW1jdGwtPm1lbWNfb3IwIHw9ICgtc2l6ZV9iMCAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjAgfD0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKTsKKwltZW1jdGwtPm1lbWNfYnIwIHw9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spOwogCiAJUFJJTlRGKCIjIyBBZnRlciByZW1hcDpcbiIKIAkJICAgIiAgQlIwOiAweCUwOHggICAgT1IwOiAweCUwOHhcbiIsIG1lbWN0bC0+bWVtY19icjAsIG1lbWN0bC0+bWVtY19vcjApOwpAQCAtMTQ3LDE3ICsxNDcsMTcgQEAKIAkvKgogCSAqIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8KIAkgKi8KLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKCh2dV9jaGFyICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKLQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKCh2dV9jaGFyICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IHNpemVfYjA7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyoKIAkgKiBNb25pdG9yIHByb3RlY3Rpb24gaXMgT04gYnkgZGVmYXVsdAogCSAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCSAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCSAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMzA3LDEwICszMDcsMTAgQEAKIAkJCXJldHVybiAoTk9fRkxBU0gpOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOwotCQkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCXJldHVybiAoaW5mby0+c2l6ZSk7CiB9CkBAIC0zODUsNyArMzg1LDcgQEAKIAkJCXVkZWxheSAoMTAwMCk7CiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIFNDU19TUjcpICE9IFNDU19TUjcpIHsKLQkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCSphZGRyID0gU0NTX0JMT0NLX0VSQVNFX1NVU1BFTkRfQ01EOwogCQkJCQkqYWRkciA9IFNDU19SRUFEX0NNRDsKQEAgLTQwOCw3ICs0MDgsNyBAQAogfQogCiAKLSNpZmRlZiBDRkdfR0VOODYwVF9GTEFTSF9VU0VfV1JJVEVfQlVGRkVSCisjaWZkZWYgQ09ORklHX1NZU19HRU44NjBUX0ZMQVNIX1VTRV9XUklURV9CVUZGRVIKIC8qCiAgKiBBbGxvY2F0ZSBhIGZsYXNoIGJ1ZmZlciwgZmlsbCBpdCB3aXRoIGRhdGEgYW5kIHdyaXRlIGl0IHRvIHRoZSBmbGFzaC4KICAqIDAgLSBPSwpAQCAtNDUxLDEwICs0NTEsMTAgQEAKIAkgKi8KIAkqYmxvY2tfYWRkcl9wID0gU0NTX1dSSVRFX0JVRl9DTUQ7CiAJd2hpbGUgKCgqYmxvY2tfYWRkcl9wICYgU0NTX1hTUjcpICE9IFNDU19YU1I3KSB7Ci0JCWlmIChnZXRfdGltZXIodGltZSkgPiAgQ0ZHX0ZMQVNIX0FMTE9DX0JVRkZFUl9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIodGltZSkgPiAgQ09ORklHX1NZU19GTEFTSF9BTExPQ19CVUZGRVJfVE9VVCkgewogCQkJUFJJTlRGKCIlczolZDogQnVmZmVyIGFsbG9jYXRpb24gdGltZW91dCBAIDB4JXAgKHdhaXRlZCAlZCBtUylcbiIsCiAJCQkJICAgX19GVU5DVElPTl9fLCBfX0xJTkVfXywgYmxvY2tfYWRkcl9wLAotCQkJCSAgIENGR19GTEFTSF9BTExPQ19CVUZGRVJfVE9VVCk7CisJCQkJICAgQ09ORklHX1NZU19GTEFTSF9BTExPQ19CVUZGRVJfVE9VVCk7CiAJCQlyZXR1cm4gMTsKIAkJfQogCQkqYmxvY2tfYWRkcl9wID0gU0NTX1dSSVRFX0JVRl9DTUQ7CkBAIC00NzgsOSArNDc4LDkgQEAKICNpZiAxCiAJdGltZSA9IGdldF90aW1lcigwKTsKIAl3aGlsZSAoKCpibG9ja19hZGRyX3AgJiBTQ1NfU1I3KSAhPSBTQ1NfU1I3KSB7Ci0JCWlmIChnZXRfdGltZXIodGltZSkgPiAgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcih0aW1lKSA+ICBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCVBSSU5URigiJXM6JWQ6IFdyaXRlIHRpbWVvdXQgQCAweCVwICh3YWl0ZWQgJWQgbVMpXG4iLAotCQkJCSAgIF9fRlVOQ1RJT05fXywgX19MSU5FX18sIGJsb2NrX2FkZHJfcCwgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpOworCQkJCSAgIF9fRlVOQ1RJT05fXywgX19MSU5FX18sIGJsb2NrX2FkZHJfcCwgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKTsKIAkJCXJldHVybiAxOwogCQl9CiAJfQpAQCAtNTAyLDcgKzUwMiw3IEBACiB3cml0ZV9idWZmKGZsYXNoX2luZm9fdCAqaW5mb19wLCB1Y2hhciAqc3JjX3AsIHVsb25nIGFkZHIsIHVsb25nIGNvdW50KQogewogCWludCByYyA9IDA7Ci0jaWZkZWYgQ0ZHX0dFTjg2MFRfRkxBU0hfVVNFX1dSSVRFX0JVRkZFUgorI2lmZGVmIENPTkZJR19TWVNfR0VOODYwVF9GTEFTSF9VU0VfV1JJVEVfQlVGRkVSCiAjZGVmaW5lIEZMQVNIX1dSSVRFX0JVRl9TSVpFCTB4MDAwMDAwMjAJLyogMzIgYnl0ZXMgKi8KIAlpbnQgaTsKIAl1aW50IGJ1ZnM7CkBAIC01MjAsNyArNTIwLDcgQEAKIAkJcmV0dXJuIDQ7CiAJfQogCi0jaWZkZWYgQ0ZHX0dFTjg2MFRfRkxBU0hfVVNFX1dSSVRFX0JVRkZFUgorI2lmZGVmIENPTkZJR19TWVNfR0VOODYwVF9GTEFTSF9VU0VfV1JJVEVfQlVGRkVSCiAJc3AgPSBzcmNfcDsKIAlkcCA9ICh1Y2hhciAqKWFkZHI7CiAKQEAgLTYzMiw3ICs2MzIsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAogCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIFNDU19TUjcpICE9IFNDU19TUjcpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSBTQ1NfUkVBRF9DTUQ7CiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9nZW44NjB0L2ZwZ2EuYyBiL2JvYXJkL2dlbjg2MHQvZnBnYS5jCmluZGV4IDFlNmJkZjEuLjI5Y2FkMmUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2dlbjg2MHQvZnBnYS5jCisrKyBiL2JvYXJkL2dlbjg2MHQvZnBnYS5jCkBAIC0xNjEsNyArMTYxLDcgQEAKICAqLwogdm9pZCBmcGdhX3Jlc2V0IChpbnQgYXNzZXJ0KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlQUklOVEYgKCIlczolZDogUkVTRVQgIiwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7CiAJaWYgKGFzc2VydCkgewpAQCAtMjEwLDcgKzIxMCw3IEBACiAgKi8KIGludCBmcGdhX3BnbV9mbiAoaW50IGFzc2VydCwgaW50IGZsdXNoLCBpbnQgY29va2llKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlQUklOVEYgKCIlczolZDogRlBHQSBQUk9HUkFNICIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwogCkBAIC0yMzMsNyArMjMzLDcgQEAKICAqLwogaW50IGZwZ2FfaW5pdF9mbiAoaW50IGNvb2tpZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJUFJJTlRGICgiJXM6JWQ6IElOSVQgY2hlY2suLi4gIiwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7CiAJaWYgKGltbWFwLT5pbV9jcG0uY3BfcGJkYXQgJiAoMHg4MDAwMDAwMCA+PiBGUEdBX0lOSVRfQklUX05VTSkpIHsKQEAgLTI1MSw3ICsyNTEsNyBAQAogICovCiBpbnQgZnBnYV9kb25lX2ZuIChpbnQgY29va2llKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlQUklOVEYgKCIlczolZDogRE9ORSBjaGVjay4uLiAiLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsKIAlpZiAoaW1tYXAtPmltX2NwbS5jcF9wYmRhdCAmICgweDgwMDAwMDAwID4+IEZQR0FfRE9ORV9CSVRfTlVNKSkgewpkaWZmIC0tZ2l0IGEvYm9hcmQvZ2VuODYwdC9nZW44NjB0LmMgYi9ib2FyZC9nZW44NjB0L2dlbjg2MHQuYwppbmRleCA1YzQ5N2I2Li4wMDhmNzY1IDEwMDY0NAotLS0gYS9ib2FyZC9nZW44NjB0L2dlbjg2MHQuYworKysgYi9ib2FyZC9nZW44NjB0L2dlbjg2MHQuYwpAQCAtMTYwLDcgKzE2MCw3IEBACiAgKi8KIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKIAogCXVwbWNvbmZpZyAoVVBNQSwKQEAgLTE3MSwxNCArMTcxLDE0IEBACiAJLyoKIAkgKiBTZXR1cCBNQU1SIHJlZ2lzdGVyCiAJICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzFCS184SzsKLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzFCS184SzsKKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCiAKIAkvKgogCSAqIE1hcCBDUzEqIHRvIFNEUkFNIGJhbmsKIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMTsKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjE7CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxOwogCiAJLyoKIAkgKiBQZXJmb3JtIFNEUkFNIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlOgpAQCAtMjM1LDcgKzIzNSw3IEBACiAgKi8KIGludCBtaXNjX2luaXRfciAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKIAogCS8qCmRpZmYgLS1naXQgYS9ib2FyZC9nZW5pZXR2L2ZsYXNoLmMgYi9ib2FyZC9nZW5pZXR2L2ZsYXNoLmMKaW5kZXggNzI5MmM5Yy4uNTMxM2FkOCAxMDA2NDQKLS0tIGEvYm9hcmQvZ2VuaWV0di9mbGFzaC5jCisrKyBiL2JvYXJkL2dlbmlldHYvZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC00MiwyMCArNDIsMjAgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkKKwlmb3IgKGk9MDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpCiAJICAgIGZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCiAJLyogRGV0ZWN0IHNpemUgKi8KLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJLyogU2V0dXAgb2Zmc2V0cyAqLwotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTMyMiw3ICszMjIsNyBAQAogCiAJd2hpbGUgKChhZGRyWzBdICYgMHhGRikgIT0gMHhGRikKIAl7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC00NTQsNyArNDU0LDcgQEAKIAkgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCSAgICB3aGlsZSAoKCpjZGVzdCBeICpjZGF0YSkgJiAweDgwKQogCSAgICB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAkgICAgfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZ2VuaWV0di9nZW5pZXR2LmMgYi9ib2FyZC9nZW5pZXR2L2dlbmlldHYuYwppbmRleCBmYzIxMTY5Li4wYTAxNWVhIDEwMDY0NAotLS0gYS9ib2FyZC9nZW5pZXR2L2dlbmlldHYuYworKysgYi9ib2FyZC9nZW5pZXR2L2dlbmlldHYuYwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi0jZGVmaW5lIENGR19QQTcJCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1BBNwkJMHgwMTAwCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApAQCAtMTA0LDcgKzEwNCw3IEBACiAjaWYgMAogc3RhdGljIHZvaWQgUHJpbnRTdGF0ZSAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW0tPmltX21lbWN0bDsKIAogCXByaW50ZiAoIlxuMCAtIEZMQVNIOiBCPSUwOHggTz0lMDh4IiwgbWVtY3RsLT5tZW1jX2JyMCwKQEAgLTEyMCwxOCArMTIwLDE4IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW0tPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplX2IwLCBzaXplX2IxLCBzaXplODsKIAogCS8qIEVuYWJsZSBTRFJBTSAqLwogCiAJLyogQ29uZmlndXJpbmcgUEE3IGZvciBnZW5lcmFsIHB1cnBvdXNlIG91dHB1dCBwaW4gKi8KLQlpbS0+aW1faW9wb3J0LmlvcF9wYXBhciAmPSB+Q0ZHX1BBNzsJLyogMCA9IGdlbmVyYWwgcHVycG91c2UgKi8KLQlpbS0+aW1faW9wb3J0LmlvcF9wYWRpciB8PSBDRkdfUEE3OwkvKiAxID0gb3V0cHV0ICovCisJaW0tPmltX2lvcG9ydC5pb3BfcGFwYXIgJj0gfkNPTkZJR19TWVNfUEE3OwkvKiAwID0gZ2VuZXJhbCBwdXJwb3VzZSAqLworCWltLT5pbV9pb3BvcnQuaW9wX3BhZGlyIHw9IENPTkZJR19TWVNfUEE3OwkvKiAxID0gb3V0cHV0ICovCiAKIAkvKiBFbmFibGUgU0RSQU0gLSBQQTcgPSAxICovCi0JaW0tPmltX2lvcG9ydC5pb3BfcGFkYXQgfD0gQ0ZHX1BBNzsJLyogdmFsdWUgb2YgUEE3ICovCisJaW0tPmltX2lvcG9ydC5pb3BfcGFkYXQgfD0gQ09ORklHX1NZU19QQTc7CS8qIHZhbHVlIG9mIFBBNyAqLwogCiAJLyoKIAkgKiBQcmVsaW1pbmFyeSBwcmVzY2FsZXIgZm9yIHJlZnJlc2ggKGRlcGVuZHMgb24gbnVtYmVyIG9mCkBAIC0xMzksOSArMTM5LDkgQEAKIAkgKiB3aXRoIHR3byBTRFJBTSBiYW5rcyBvciBmb3VyIGN5Y2xlcyBldmVyeSAzMS4yIHVzIHdpdGggb25lCiAJICogYmFuay4gSXQgd2lsbCBiZSBhZGp1c3RlZCBhZnRlciBtZW1vcnkgc2l6aW5nLgogCSAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfNEs7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfNEs7CiAKLQltZW1jdGwtPm1lbWNfbWJtciA9IENGR19NQk1SXzhDT0w7CisJbWVtY3RsLT5tZW1jX21ibXIgPSBDT05GSUdfU1lTX01CTVJfOENPTDsKIAogCXVwbWNvbmZpZyAoVVBNQiwgKHVpbnQgKikgc2RyYW1fdGFibGUsCiAJCSAgIHNpemVvZiAoc2RyYW1fdGFibGUpIC8gc2l6ZW9mICh1aW50KSk7CkBAIC0xNTIsMTEgKzE1MiwxMSBAQAogCSAqIFNEUkFNIHNpemUgaGFzIGJlZW4gZGV0ZXJtaW5lZC4KIAkgKi8KIAotCW1lbWN0bC0+bWVtY19vcjEgPSAweEYwMDAwMDAwIHwgQ0ZHX09SX1RJTUlOR19TRFJBTTsKKwltZW1jdGwtPm1lbWNfb3IxID0gMHhGMDAwMDAwMCB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOwogCW1lbWN0bC0+bWVtY19icjEgPQogCQkoKFNEUkFNX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1CIHwgQlJfVik7CiAKLQltZW1jdGwtPm1lbWNfb3IyID0gMHhGMDAwMDAwMCB8IENGR19PUl9USU1JTkdfU0RSQU07CisJbWVtY3RsLT5tZW1jX29yMiA9IDB4RjAwMDAwMDAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKIAltZW1jdGwtPm1lbWNfYnIyID0KIAkJKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1YpOwogCkBAIC0xNjgsMTQgKzE2OCwxNCBAQAogCW1lbWN0bC0+bWVtY19tY3IgPSAweDgwODA0MTA1OwkvKiBTRFJBTSBiYW5rIDEgKi8KIAogCS8qIEV4ZWN1dGUgcmVmcmVzaCA4IHRpbWVzICovCi0JbWVtY3RsLT5tZW1jX21ibXIgPSAoQ0ZHX01CTVJfOENPTCAmIH5NQk1SX1RMRkJfTVNLKSB8IE1CTVJfVExGQl84WDsKKwltZW1jdGwtPm1lbWNfbWJtciA9IChDT05GSUdfU1lTX01CTVJfOENPTCAmIH5NQk1SX1RMRkJfTVNLKSB8IE1CTVJfVExGQl84WDsKIAogCW1lbWN0bC0+bWVtY19tY3IgPSAweDgwODAyMTMwOwkvKiBTRFJBTSBiYW5rIDAgLSBleGVjdXRlIHR3aWNlICovCiAKIAltZW1jdGwtPm1lbWNfbWNyID0gMHg4MDgwNDEzMDsJLyogU0RSQU0gYmFuayAxIC0gZXhlY3V0ZSB0d2ljZSAqLwogCiAJLyogRXhlY3V0ZSByZWZyZXNoIDQgdGltZXMgKi8KLQltZW1jdGwtPm1lbWNfbWJtciA9IENGR19NQk1SXzhDT0w7CisJbWVtY3RsLT5tZW1jX21ibXIgPSBDT05GSUdfU1lTX01CTVJfOENPTDsKIAogCS8qCiAJICogQ2hlY2sgQmFuayAwIE1lbW9yeSBTaXplIGZvciByZS1jb25maWd1cmF0aW9uCkBAIC0xODcsNyArMTg3LDcgQEAKIAlQcmludFN0YXRlICgpOwogI2VuZGlmCiAvKiAgICBwcmludGYgKCJcbkNoZWNraW5nIGJhbmsxLi4uIik7ICovCi0Jc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQk1SXzhDT0wsIChsb25nICopIFNEUkFNX0JBU0UxX1BSRUxJTSwKKwlzaXplOCA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQk1SXzhDT0wsIChsb25nICopIFNEUkFNX0JBU0UxX1BSRUxJTSwKIAkJCSAgIFNEUkFNX01BWF9TSVpFKTsKIAogCXNpemVfYjAgPSBzaXplODsKQEAgLTIwMSwxNyArMjAxLDE3IEBACiAJICogRmluYWwgbWFwcGluZzogbWFwIGJpZ2dlciBiYW5rIGZpcnN0CiAJICovCiAKLQltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1CIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOworCW1lbWN0bC0+bWVtY19icjEgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUIgfCBCUl9WOwogCiAJaWYgKHNpemVfYjEgPiAwKSB7CiAJCS8qCiAJCSAqIFBvc2l0aW9uIEJhbmsgMSBpbW1lZGlhdGVseSBhYm92ZSBCYW5rIDAKIAkJICovCiAJCW1lbWN0bC0+bWVtY19vcjIgPQotCQkJKCgtc2l6ZV9iMSkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07CisJCQkoKC1zaXplX2IxKSAmIDB4RkZGRjAwMDApIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU07CiAJCW1lbWN0bC0+bWVtY19icjIgPQotCQkJKChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1CIHwgQlJfVikgKworCQkJKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1YpICsKIAkJCShzaXplX2IwICYgQlJfQkFfTVNLKTsKIAl9IGVsc2UgewogCQkvKgpAQCAtMjIxLDE0ICsyMjEsMTQgQEAKIAkJICovCiAJCW1lbWN0bC0+bWVtY19icjIgPSAwOwogCQkvKiBhZGp1c3QgcmVmcmVzaCByYXRlIGRlcGVuZGluZyBvbiBTRFJBTSB0eXBlLCBvbmUgYmFuayAqLwotCQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMUJLXzRLOworCQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzFCS180SzsKIAl9CiAKIAkvKiBJZiBubyBtZW1vcnkgZGV0ZWN0ZWQsIGRpc2FibGUgU0RSQU0gKi8KIAlpZiAoKHNpemVfYjAgKyBzaXplX2IxKSA9PSAwKSB7CiAJCXByaW50ZiAoImRpc2FibGluZyBTRFJBTSFcbiIpOwogCQkvKiBEaXNhYmxlIFNEUkFNIC0gUEE3ID0gMSAqLwotCQlpbS0+aW1faW9wb3J0LmlvcF9wYWRhdCAmPSB+Q0ZHX1BBNzsJLyogdmFsdWUgb2YgUEE3ICovCisJCWltLT5pbV9pb3BvcnQuaW9wX3BhZGF0ICY9IH5DT05GSUdfU1lTX1BBNzsJLyogdmFsdWUgb2YgUEE3ICovCiAJfQogLyoJZWxzZSAqLwogLyogICAgcHJpbnRmKCJkb25lISAoJTA4bHgpXG4iLCBzaXplX2IwICsgc2l6ZV9iMSk7ICovCkBAIC0yNjksOCArMjY5LDggQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9QQ01DSUEpCiAKLSNpZmRlZglDRkdfUENNQ0lBX01FTV9BRERSCi12b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpwY21jaWFfbWVtID0gKHVuc2lnbmVkIGNoYXIgKikgQ0ZHX1BDTUNJQV9NRU1fQUREUjsKKyNpZmRlZglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgordm9sYXRpbGUgdW5zaWduZWQgY2hhciAqcGNtY2lhX21lbSA9ICh1bnNpZ25lZCBjaGFyICopIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSOwogI2VuZGlmCiAKIGludCBwY21jaWFfaW5pdCAodm9pZCkKQEAgLTI4MSwxMCArMjgxLDEwIEBACiAJLyoKIAkgKiogRW5hYmxlIHRoZSBQQ01DSUEgZm9yIGEgRmxhc2ggY2FyZC4KIAkgKi8KLQlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKKwlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CiAKICNpZiAwCi0JcGNtcC0+cGNtY19wYnIwID0gQ0ZHX1BDTUNJQV9NRU1fQUREUjsKKwlwY21wLT5wY21jX3BicjAgPSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUjsKIAlwY21wLT5wY21jX3BvcjAgPSAweGMwMGZmMDVkOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2d0aC9lZV9hY2Nlc3MuYyBiL2JvYXJkL2d0aC9lZV9hY2Nlc3MuYwppbmRleCA3MTZjOTBlLi4yYTMzYTBlIDEwMDY0NAotLS0gYS9ib2FyZC9ndGgvZWVfYWNjZXNzLmMKKysrIGIvYm9hcmQvZ3RoL2VlX2FjY2Vzcy5jCkBAIC0xNTIsNyArMTUyLDcgQEAKICAgaW50IGk7CiAgIGludCBWYWx1ZTsKICAgdTggUmVzdWx0PTA7Ci0jaWZuZGVmIENGR19JTU1SCisjaWZuZGVmIENPTkZJR19TWVNfSU1NUgogICB1MzIgRmxhZ3M7CiAjZW5kaWYKIApAQCAtMTYyLDcgKzE2Miw3IEBACiAgICAgLyogU21hbGwgZGVsYXkgYmV0d2VlbiBwdWxzZXMgKi8KICAgICB1ZGVsYXkoMSk7CiAKLSNpZm5kZWYgQ0ZHX0lNTVIKKyNpZm5kZWYgQ09ORklHX1NZU19JTU1SCiAgICAgLyogRGlzYWJsZSBpcnEgKi8KICAgICBzYXZlX2ZsYWdzKEZsYWdzKTsKICAgICBjbGkoKTsKQEAgLTE4Miw3ICsxODIsNyBAQAogICAgIGlmKFZhbHVlKQogICAgICAgVmFsdWU9MTsKIAotI2lmbmRlZiBDRkdfSU1NUgorI2lmbmRlZiBDT05GSUdfU1lTX0lNTVIKICAgICAvKiBFbmFibGUgaXJxICovCiAgICAgcmVzdG9yZV9mbGFncyhGbGFncyk7CiAjZW5kaWYKQEAgLTIwNSw3ICsyMDUsNyBAQAogICAgICBXcml0ZSBMU2IgZmlyc3QgKi8KICAgaW50IGk7CiAgIGludCBWYWx1ZTsKLSNpZm5kZWYgQ0ZHX0lNTVIKKyNpZm5kZWYgQ09ORklHX1NZU19JTU1SCiAgIHUzMiBGbGFnczsKICNlbmRpZgogCkBAIC0yMTYsNyArMjE2LDcgQEAKICAgICB1ZGVsYXkoMSk7CiAgICAgVmFsdWUgPSBCeXRlJjE7CiAKLSNpZm5kZWYgQ0ZHX0lNTVIKKyNpZm5kZWYgQ09ORklHX1NZU19JTU1SCiAgICAgLyogRGlzYWJsZSBpcnEgKi8KICAgICBzYXZlX2ZsYWdzKEZsYWdzKTsKICAgICBjbGkoKTsKQEAgLTIzNyw3ICsyMzcsNyBAQAogCiAgICAgV1JJVEVfUE9SVCgxKTsKIAotI2lmbmRlZiBDRkdfSU1NUgorI2lmbmRlZiBDT05GSUdfU1lTX0lNTVIKICAgICAvKiBFbmFibGUgaXJxICovCiAgICAgcmVzdG9yZV9mbGFncyhGbGFncyk7CiAjZW5kaWYKQEAgLTI4OSw3ICsyODksNyBAQAogICBpbnQgaTsKICAgdTggVHhbMTBdOwogICBpbnQgdG1wOwotICB2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgIHZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAKICAgd2hpbGUoMCl7CiAgICAgdG1wID0gMS10bXA7CmRpZmYgLS1naXQgYS9ib2FyZC9ndGgvZWVfZGV2LmggYi9ib2FyZC9ndGgvZWVfZGV2LmgKaW5kZXggNDE3YzdiNi4uMzAwNGI0NiAxMDA2NDQKLS0tIGEvYm9hcmQvZ3RoL2VlX2Rldi5oCisrKyBiL2JvYXJkL2d0aC9lZV9kZXYuaApAQCAtOSwxMCArOSwxMCBAQAogCiAjZGVmaW5lIEVfREVCVUcoZm10LGFyZ3MuLi4pIGlmKCBEZWJ1ZyApIHByaW50ayhLRVJOX0RFQlVHIkVFOiAiIGZtdCwgIyNhcmdzKQogCi0jZGVmaW5lIFBPUlRfQl9QQVIgKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJwYXIKLSNkZWZpbmUgUE9SVF9CX09EUiAoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYm9kcgotI2RlZmluZSBQT1JUX0JfRElSICgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGlyCi0jZGVmaW5lIFBPUlRfQl9EQVQgKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQKKyNkZWZpbmUgUE9SVF9CX1BBUiAoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJwYXIKKyNkZWZpbmUgUE9SVF9CX09EUiAoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJvZHIKKyNkZWZpbmUgUE9SVF9CX0RJUiAoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJkaXIKKyNkZWZpbmUgUE9SVF9CX0RBVCAoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQKIAogI2RlZmluZSBTRVRfUE9SVF9CX0lOUFVUKE1hc2spICBQT1JUX0JfRElSICY9IH4oTWFzaykKICNkZWZpbmUgU0VUX1BPUlRfQl9PVVRQVVQoTWFzaykgUE9SVF9CX0RJUiB8PSBNYXNrCmRpZmYgLS1naXQgYS9ib2FyZC9ndGgvZmxhc2guYyBiL2JvYXJkL2d0aC9mbGFzaC5jCmluZGV4IDExZTEwNWUuLjE2OTI3MGIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2d0aC9mbGFzaC5jCisrKyBiL2JvYXJkL2d0aC9mbGFzaC5jCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTQ0LDcgKzQ0LDcgQEAKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBzaXplX2IwLCBzaXplX2IxOwogCWludCBpOwpAQCAtNTQsNyArNTQsNyBAQAogCXJldHVybigweDFmZmZmZik7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpCisJZm9yIChpPTA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKQogCXsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQpAQCAtOTAsNDUgKzkwLDQ1IEBACiAJICBzaXplX2IxID0gMDsKIAogCSAgLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCSAgbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUjBfUFJFTElNOwotCSAgbWVtY3RsLT5tZW1jX2JyMCA9IENGR19CUjBfUFJFTElNOworCSAgbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1IwX1BSRUxJTTsKKwkgIG1lbWN0bC0+bWVtY19icjAgPSBDT05GSUdfU1lTX0JSMF9QUkVMSU07CiAKIAkgIC8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQkgIHNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJICBzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotCSAgZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJICBmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJICAvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSAgKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKIAlpZiAoc2l6ZV9iMSkKIAl7Ci0JICAvKiBtZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JICAgICBtZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07ICovCisJICAvKiBtZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjFfUFJFTElNOworCSAgICAgbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsgKi8KIAogCQkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0JCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKShDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApLAorCQlzaXplX2IxID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCksCiAJCQkJCSAmZmxhc2hfaW5mb1sxXSk7CiAKLQkJZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOworCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkJICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCQkgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCQkJICAgICZmbGFzaF9pbmZvWzFdKTsKICNlbmRpZgogCX0KIAllbHNlCiAJewotLyoJICAgIG1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLSBGSVhNRQkgICAgbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjFfUFJFTElNOyAgKi8KKy8qCSAgICBtZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjFfUFJFTElNOworIEZJWE1FCSAgICBtZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOyAgKi8KIAogCQlmbGFzaF9pbmZvWzFdLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJZmxhc2hfaW5mb1sxXS5zZWN0b3JfY291bnQgPSAtMTsKQEAgLTUwMSw3ICs1MDEsNyBAQAogCXdoaWxlICgoYWRkclswXSAmIDB4RkZGRkZGRkYpICE9IDB4RkZGRkZGRkYpCiAjZW5kaWYKIAl7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC02MzgsNyArNjM4LDcgQEAKIAl3aGlsZSAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIDB4ODA4MDgwODApICE9IChkYXRhICYgMHg4MDgwODA4MCkpCiAjZW5kaWYKIAl7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9ndGgvZ3RoLmMgYi9ib2FyZC9ndGgvZ3RoLmMKaW5kZXggNzg4YTZhMC4uNDM5OWRiMiAxMDA2NDQKLS0tIGEvYm9hcmQvZ3RoL2d0aC5jCisrKyBiL2JvYXJkL2d0aC9ndGguYwpAQCAtMzgsNyArMzgsNyBAQAogCiBpbnQgY2hlY2tib2FyZCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCWludCBJZCA9IDA7CiAJaW50IFJldiA9IDA7CiAJdTMyIFBiZGF0OwpAQCAtMTYyLDcgKzE2Miw3IEBACiAKIGludCBfaW5pdHNkcmFtICh1aW50IGJhc2UsIHVpbnQgKiBub01ieXRlcykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptYyA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXZvbGF0aWxlIHUzMiAqbWVtcHRyOwogCkBAIC0yMzUsNyArMjM1LDcgQEAKIAogdm9pZCBfc2RyYW1kaXNhYmxlICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX2JyMSA9IDB4MDAwMDAwMDA7CkBAIC0zNDUsNyArMzQ1LDcgQEAKIHN0YXRpYyB2b2lkIHdyaXRlX2Jvb3RkYXRhICh2b2xhdGlsZSB1MTYgKiBhZGRyLCB1OCBTeXN0ZW0sIHU4IENvdW50KQogewogCXUxNiBkYXRhOwotCXZvbGF0aWxlIHUxNiAqZmxhc2ggPSAodTE2ICopIChDRkdfRkxBU0hfQkFTRSk7CisJdm9sYXRpbGUgdTE2ICpmbGFzaCA9ICh1MTYgKikgKENPTkZJR19TWVNfRkxBU0hfQkFTRSk7CiAKIAlpZiAoKFN5c3RlbSAhPSBGQUlMU0FGRV9CT09UKSAmIChTeXN0ZW0gIT0gU1lTVEVNX0JPT1QpKSB7CiAJCXByaW50ZiAoIkludmFsaWQgc3lzdGVtIGRhdGEgJXUsIHNldHRpbmcgZmFpbHNhZmVcbiIsIFN5c3RlbSk7CkBAIC0zNzYsMTIgKzM3NiwxMiBAQAogc3RhdGljIHZvaWQgbWF5YmVfdXBkYXRlX3Jlc3RhcnRfcmVhc29uICh2b2xhdGlsZSB1MzIgKiBhZGRyMzIpCiB7CiAJLyogVXBkYXRlIGFkZHIgaWYgc3cgd2QgcmVzdGFydCAqLwotCXZvbGF0aWxlIHUxNiAqZmxhc2ggPSAodTE2ICopIChDRkdfRkxBU0hfQkFTRSk7CisJdm9sYXRpbGUgdTE2ICpmbGFzaCA9ICh1MTYgKikgKENPTkZJR19TWVNfRkxBU0hfQkFTRSk7CiAJdm9sYXRpbGUgdTE2ICphZGRyXzE2ID0gKHUxNiAqKSBhZGRyMzI7CiAJdTMyIHJzcjsKIAogCS8qIERvbnQgcmVzZXQgcmVnaXN0ZXIgbm93ICovCi0JcnNyID0gKCh2b2xhdGlsZSBpbW1hcF90ICopIENGR19JTU1SKS0+aW1fY2xrcnN0LmNhcl9yc3I7CisJcnNyID0gKCh2b2xhdGlsZSBpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUiktPmltX2Nsa3JzdC5jYXJfcnNyOwogCiAJcnNyID4+PSAyNDsKIApAQCAtNDE5LDcgKzQxOSw3IEBACiAJaW50IGk7CiAJdm9sYXRpbGUgdTMyICpyYWRkcjsKIAotCXJhZGRyID0gKHUzMiAqKSAoQ0ZHX0ZMQVNIX0JBU0UgKyBQT1dFUl9PRkZTRVQpOworCXJhZGRyID0gKHUzMiAqKSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgUE9XRVJfT0ZGU0VUKTsKIAogCWlmICgqcmFkZHIgPT0gMHhGRkZGRkZGRikgewogCQkvKiBOb3RoaW5nIHdyaXR0ZW4gKi8KQEAgLTQ1Niw3ICs0NTYsNyBAQAogCXU4IHN5c3RlbTsKIAl1OCBjb3VudDsKIAotCWFkZHIgPSAodTE2ICopIChDRkdfRkxBU0hfQkFTRSArIEJPT1REQVRBX09GRlNFVCk7CisJYWRkciA9ICh1MTYgKikgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIEJPT1REQVRBX09GRlNFVCk7CiAKIAlpZiAoKmFkZHIgPT0gMHhGRkZGKSB7CiAJCXByaW50ZiAoIioqKiBObyBib290ZGF0YSBleGlzdHMuICoqKlxuIik7CkBAIC01MjgsNyArNTI4LDcgQEAKIAl1OCBUeFs1XTsKIAlpbnQgcGFnZTsKIAlpbnQgcmVhZCA9IDA7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCS8qIEtpbGwgZnBnYSAqLwogCWltbWFwLT5pbV9pb3BvcnQuaW9wX3BhcGFyICY9IH4oUEFfRkxfQ09ORklHIHwgUEFfRkxfQ0UpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZ3RoL3BjbWNpYS5jIGIvYm9hcmQvZ3RoL3BjbWNpYS5jCmluZGV4IGNmZmNiZGUuLmE0ZGIxNmQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2d0aC9wY21jaWEuYworKysgYi9ib2FyZC9ndGgvcGNtY2lhLmMKQEAgLTMxLDEwICszMSwxMCBAQAogCiAJZGVidWcgKCJoYXJkd2FyZV9lbmFibGU6IEdUSCBTbG90ICVjXG4iLCAnQScgKyBzbG90KTsKIAotCWltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7Ci0Jc3lzcCA9IChzeXNjb25mOHh4X3QgKikgKCYoKChpbW1hcF90ICopIENGR19JTU1SKS0+aW1fc2l1X2NvbmYpKTsKLQlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKLQljcCA9IChjcG04eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ0ZHX0lNTVIpLT5pbV9jcG0pKTsKKwlpbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKKwlzeXNwID0gKHN5c2NvbmY4eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKS0+aW1fc2l1X2NvbmYpKTsKKwlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CisJY3AgPSAoY3BtOHh4X3QgKikgKCYoKChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUiktPmltX2NwbSkpOwogCiAJLyogY2xlYXIgaW50ZXJydXB0IHN0YXRlLCBhbmQgZGlzYWJsZSBpbnRlcnJ1cHRzICovCiAJcGNtcC0+cGNtY19wc2NyID0gUENNQ0lBX01BU0sgKF9zbG90Xyk7CmRpZmYgLS1naXQgYS9ib2FyZC9ndGgyL2ZsYXNoLmMgYi9ib2FyZC9ndGgyL2ZsYXNoLmMKaW5kZXggZjk2ZWRmZi4uMWIzYzQzYyAxMDA2NDQKLS0tIGEvYm9hcmQvZ3RoMi9mbGFzaC5jCisrKyBiL2JvYXJkL2d0aDIvZmxhc2guYwpAQCAtMjMsNyArMjMsNyBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBmbGFzaF9pbml0KCkKZGlmZiAtLWdpdCBhL2JvYXJkL2d0aDIvZ3RoMi5jIGIvYm9hcmQvZ3RoMi9ndGgyLmMKaW5kZXggY2VhNjVjNi4uNTk4NzNkNSAxMDA2NDQKLS0tIGEvYm9hcmQvZ3RoMi9ndGgyLmMKKysrIGIvYm9hcmQvZ3RoMi9ndGgyLmMKQEAgLTE1NCwxOSArMTU0LDE5IEBACiAJICAgV2UgbmVlZCB0byBtYXAgaXQgaW50byBhIDMyIGJpdCBhZGRyZXNzZXMgKi8KIAl3cml0ZV9vbmVfdGxiKDIwLCAgICAgICAgICAgICAgICAgLyogaW5kZXggKi8KIAkJICAgICAgMHgwMWZmZTAwMCwgICAgICAgICAvKiBQYWdlbWFzaywgMTYgTUIgcGFnZXMgKi8KLQkJICAgICAgQ0ZHX1BDTUNJQV9JT19CQVNFLCAvKiBIaSAqLworCQkgICAgICBDT05GSUdfU1lTX1BDTUNJQV9JT19CQVNFLCAvKiBIaSAqLwogCQkgICAgICAweDNDMDAwMDE3LCAgICAgICAgIC8qIExvMCAqLwogCQkgICAgICAweDNDMjAwMDE3KTsgICAgICAgIC8qIExvMSAqLwogCiAJd3JpdGVfb25lX3RsYigyMSwgICAgICAgICAgICAgICAgICAgLyogaW5kZXggKi8KIAkJICAgICAgMHgwMWZmZTAwMCwgICAgICAgICAgIC8qIFBhZ2VtYXNrLCAxNiBNQiBwYWdlcyAqLwotCQkgICAgICBDRkdfUENNQ0lBX0FUVFJfQkFTRSwgLyogSGkgKi8KKwkJICAgICAgQ09ORklHX1NZU19QQ01DSUFfQVRUUl9CQVNFLCAvKiBIaSAqLwogCQkgICAgICAweDNEMDAwMDE3LCAgICAgICAgICAgLyogTG8wICovCiAJCSAgICAgIDB4M0QyMDAwMTcpOyAgICAgICAgICAvKiBMbzEgKi8KIAogCXdyaXRlX29uZV90bGIoMjIsICAgICAgICAgICAgICAgICAgIC8qIGluZGV4ICovCiAJCSAgICAgIDB4MDFmZmUwMDAsICAgICAgICAgICAvKiBQYWdlbWFzaywgMTYgTUIgcGFnZXMgKi8KLQkJICAgICAgQ0ZHX1BDTUNJQV9NRU1fQUREUiwgIC8qIEhpICovCisJCSAgICAgIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSLCAgLyogSGkgKi8KIAkJICAgICAgMHgzRTAwMDAxNywgICAgICAgICAgIC8qIExvMCAqLwogCQkgICAgICAweDNFMjAwMDE3KTsgICAgICAgICAgLyogTG8xICovCiAKQEAgLTIwOSw3ICsyMDksNyBAQAogc3RhdGljIHZvaWQgd3JpdGVfYm9vdGRhdGEgKHZvbGF0aWxlIHUxNiAqIGFkZHIsIHU4IFN5c3RlbSwgdTggQ291bnQpCiB7CiAJdTE2IGRhdGE7Ci0Jdm9sYXRpbGUgdTE2ICpmbGFzaCA9ICh1MTYgKikgKENGR19GTEFTSF9CQVNFKTsKKwl2b2xhdGlsZSB1MTYgKmZsYXNoID0gKHUxNiAqKSAoQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKIAogCXN3aXRjaChTeXN0ZW0pewogCWNhc2UgRkFJTFNBRkVfQk9PVDoKQEAgLTMwMiw3ICszMDIsNyBAQAogCXU4IHN5c3RlbSA9IEZBSUxTQUZFX0JPT1Q7CiAJdTggY291bnQ7CiAKLQlhZGRyID0gKHUxNiAqKSAoQ0ZHX0ZMQVNIX0JBU0UgKyBCT09UREFUQV9PRkZTRVQpOworCWFkZHIgPSAodTE2ICopIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBCT09UREFUQV9PRkZTRVQpOwogCiAJaWYgKCphZGRyID09IDB4RkZGRikgewogCQlwcmludGYgKCIqKiogTm8gYm9vdGRhdGEgZXhpc3RzLiAqKipcbiIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZ3RoMi9sb3dsZXZlbF9pbml0LlMgYi9ib2FyZC9ndGgyL2xvd2xldmVsX2luaXQuUwppbmRleCA0YzRmMGViLi5iYzMxYzAwIDEwMDY0NAotLS0gYS9ib2FyZC9ndGgyL2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC9ndGgyL2xvd2xldmVsX2luaXQuUwpAQCAtNiw3ICs2LDcgQEAKICNpbmNsdWRlIDxhc20vbWlwc3JlZ3MuaD4KIAogI2RlZmluZSBDUDBfQ29uZmlnMAkJJDE2Ci0jZGVmaW5lIE1FTV8xTVMJCQkoKENGR19NSFopICogMTAwMCkKKyNkZWZpbmUgTUVNXzFNUwkJCSgoQ09ORklHX1NZU19NSFopICogMTAwMCkKICNkZWZpbmUgR1BJT19SSjFMWSAgICAgKDE8PDIyKQogI2RlZmluZSBHUElPX0NGUkVTRVQgICAoMTw8MTApCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2d3ODI2MC9mbGFzaC5jIGIvYm9hcmQvZ3c4MjYwL2ZsYXNoLmMKaW5kZXggNmNmMzExZi4uNjAzNWY2OSAxMDA2NDQKLS0tIGEvYm9hcmQvZ3c4MjYwL2ZsYXNoLmMKKysrIGIvYm9hcmQvZ3c4MjYwL2ZsYXNoLmMKQEAgLTU0LDcgKzU0LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4MjYwLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiBzdGF0aWMgdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHZ1X2xvbmcgKmFkZHIsIGZsYXNoX2luZm9fdCAqaW5mbyk7CiBzdGF0aWMgaW50IHdyaXRlX3dvcmQgKGZsYXNoX2luZm9fdCAqaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSk7CkBAIC04MiwyMSArODIsMjEgQEAKICAgICBpbnQgaTsKIAogICAgIC8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLSAgICBmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKyAgICBmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAgICAgfQogCiAgICAgLyogZm9yIG5vdywgb25seSBzdXBwb3J0IHRoZSA0IE1CIEZsYXNoIFNJTU0gKi8KLSAgICBzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKyAgICBzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKICAgICAvKgogICAgICAqIHByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogICAgICAqLwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0gwX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCiAgICAgZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTExMCw3ICsxMTAsNyBAQAogCQkgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIChDRkdfRkxBU0gwX1NJWkUgKiAxMDI0ICogMTAyNCk7ICAvKnNpemUqLworICAgIHJldHVybiAoQ09ORklHX1NZU19GTEFTSDBfU0laRSAqIDEwMjQgKiAxMDI0KTsgIC8qc2l6ZSovCiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0zNTcsNyArMzU3LDcgQEAKICAgICBsYXN0ICA9IHN0YXJ0OwogICAgIGFkZHIgPSAodnVfbG9uZyopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogICAgIHdoaWxlICgoYWRkclswXSAmIDB4ODA4MDgwODApICE9IDB4ODA4MDgwODApIHsKLQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJICAgIHByaW50ZiAoIlRpbWVvdXRcbiIpOwogCSAgICByZXR1cm4gMTsKIAl9CkBAIC01MTIsNyArNTEyLDcgQEAKICAgICAvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogICAgIHdoaWxlICgoKigodnVfbG9uZyAqKWRlc3QpICYgMHg4MDgwODA4MCkgIT0gKGRhdGEgJiAweDgwODA4MDgwKSkgewotCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCSAgICByZXR1cm4gKDEpOwogCX0KICAgICB9CmRpZmYgLS1naXQgYS9ib2FyZC9ndzgyNjAvZ3c4MjYwLmMgYi9ib2FyZC9ndzgyNjAvZ3c4MjYwLmMKaW5kZXggNDJjOWUwZC4uMjhmNWNhOSAxMDA2NDQKLS0tIGEvYm9hcmQvZ3c4MjYwL2d3ODI2MC5jCisrKyBiL2JvYXJkL2d3ODI2MC9ndzgyNjAuYwpAQCAtMjI2LDcgKzIyNiw3IEBACiB9CiAKIAotI2lmIGRlZmluZWQgKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19EUkFNX1RFU1QpCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogTkFNRTogIG1vdmU2NCgpIC0gIG1vdmVzIGEgZG91YmxlIHdvcmQgKDY0LWJpdCkJCSAgICAgKi8KIC8qCQkJCQkJCQkgICAgICovCkBAIC0yNTYsNyArMjU2LDcgQEAKIH0KIAogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVF9EQVRBKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEpCiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBwYXR0ZXJuW10gPSB7CiAJMHhhYWFhYWFhYWFhYWFhYWFhVUxMLApAQCAtMzE5LDcgKzMxOSw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IG1lbV90ZXN0X2RhdGEgKHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBsb25nICpwbWVtID0gKHVuc2lnbmVkIGxvbmcgbG9uZyAqKSBDRkdfU0RSQU1fQkFTRTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgKnBtZW0gPSAodW5zaWduZWQgbG9uZyBsb25nICopIENPTkZJR19TWVNfU0RSQU1fQkFTRTsKIAl1bnNpZ25lZCBsb25nIGxvbmcgdGVtcDY0ID0gMDsKIAlpbnQgbnVtX3BhdHRlcm5zID0gc2l6ZW9mIChwYXR0ZXJuKSAvIHNpemVvZiAocGF0dGVyblswXSk7CiAJaW50IGk7CkBAIC0zNDYsOSArMzQ2LDkgQEAKIAogCXJldHVybiAwOwogfQotI2VuZGlmIC8qIENGR19EUkFNX1RFU1RfREFUQSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEgKi8KIAotI2lmIGRlZmluZWQgKENGR19EUkFNX1RFU1RfQUREUkVTUykKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTKQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE5BTUU6ICBtZW1fdGVzdF9hZGRyZXNzKCkgLQl0ZXN0IGFkZHJlc3MgbGluZXMJCSAgICAgKi8KIC8qCQkJCQkJCQkgICAgICovCkBAIC0zNzMsOCArMzczLDggQEAKIGludCBtZW1fdGVzdF9hZGRyZXNzICh2b2lkKQogewogCXZvbGF0aWxlIHVuc2lnbmVkIGludCAqcG1lbSA9Ci0JCSh2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikgQ0ZHX1NEUkFNX0JBU0U7Ci0JY29uc3QgdW5zaWduZWQgaW50IHNpemUgPSAoQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCkgLyA0OworCQkodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIENPTkZJR19TWVNfU0RSQU1fQkFTRTsKKwljb25zdCB1bnNpZ25lZCBpbnQgc2l6ZSA9IChDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCkgLyA0OwogCXVuc2lnbmVkIGludCBpOwogCiAJLyogd3JpdGUgYWRkcmVzcyB0byBlYWNoIGxvY2F0aW9uICovCkBAIC0zOTEsOSArMzkxLDkgQEAKIAl9CiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVF9BRERSRVNTICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1RfQUREUkVTUyAqLwogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVF9XQUxLKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEspCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogTkFNRTogICBtZW1fbWFyY2goKSAtICBtZW1vcnkgbWFyY2gJCQkJICAgICAqLwogLyoJCQkJCQkJCSAgICAgKi8KQEAgLTQ1MSw3ICs0NTEsNyBAQAogCX0KIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUX1dBTEsgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVF9XQUxLICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBOQU1FOiAgIG1lbV90ZXN0X3dhbGsoKSAtICBhIHNpbXBsZSB3YWxraW5nIG9uZXMgdGVzdAkgICAgICovCkBAIC00ODMsOCArNDgzLDggQEAKIHsKIAl1bnNpZ25lZCBsb25nIGxvbmcgbWFzazsKIAl2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGxvbmcgKnBtZW0gPQotCQkodm9sYXRpbGUgdW5zaWduZWQgbG9uZyBsb25nICopIENGR19TRFJBTV9CQVNFOwotCWNvbnN0IHVuc2lnbmVkIGxvbmcgc2l6ZSA9IChDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0KSAvIDg7CisJCSh2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGxvbmcgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWNvbnN0IHVuc2lnbmVkIGxvbmcgc2l6ZSA9IChDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCkgLyA4OwogCiAJdW5zaWduZWQgaW50IGk7CiAKQEAgLTU1NywyMSArNTU3LDIxIEBACiAJaWYgKChydW5kYXRhID09IDEpIHx8IChydW5hZGRyZXNzID09IDEpIHx8IChydW53YWxrID09IDEpKSB7CiAJCXByaW50ZiAoIlRlc3RpbmcgUkFNIC4uLiAiKTsKIAl9Ci0jaWZkZWYgQ0ZHX0RSQU1fVEVTVF9EQVRBCisjaWZkZWYgQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQQogCWlmIChydW5kYXRhID09IDEpIHsKIAkJaWYgKG1lbV90ZXN0X2RhdGEgKCkgPT0gMSkgewogCQkJcmV0dXJuIDE7CiAJCX0KIAl9CiAjZW5kaWYKLSNpZmRlZiBDRkdfRFJBTV9URVNUX0FERFJFU1MKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTCiAJaWYgKHJ1bmFkZHJlc3MgPT0gMSkgewogCQlpZiAobWVtX3Rlc3RfYWRkcmVzcyAoKSA9PSAxKSB7CiAJCQlyZXR1cm4gMTsKIAkJfQogCX0KICNlbmRpZgotI2lmZGVmIENGR19EUkFNX1RFU1RfV0FMSworI2lmZGVmIENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEsKIAlpZiAocnVud2FsayA9PSAxKSB7CiAJCWlmIChtZW1fdGVzdF93YWxrICgpID09IDEpIHsKIAkJCXJldHVybiAxOwpAQCAtNTg0LDcgKzU4NCw3IEBACiAJcmV0dXJuIDA7CiAKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1QgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE5BTUU6IGluaXRkcmFtKCkgLSAgaW5pdGlhbGl6ZXMgU0RSQU0gY29udHJvbGxlcgkJICAgICAqLwpAQCAtNTkzLDExICs1OTMsMTEgQEAKIC8qICAgSW5pdGlhbGl6ZXMgdGhlIE1QQzgyNjAncyBTRFJBTSBjb250cm9sbGVyLgkJICAgICAqLwogLyoJCQkJCQkJCSAgICAgKi8KIC8qIElOUFVUUzoJCQkJCQkJICAgICAqLwotLyogICBDRkdfSU1NUgkgICAgLSAgTVBDODI2MCBJbnRlcm5hbCBtZW1vcnkgbWFwCQkgICAgICovCi0vKiAgIENGR19TRFJBTV9CQVNFIC0gIFBoeXNpY2FsIHN0YXJ0IGFkZHJlc3Mgb2YgU0RSQU0JCSAgICAgKi8KLS8qICAgQ0ZHX1BTRE1SIC0gICAgICAgU0RSQU0gbW9kZSByZWdpc3RlcgkJCSAgICAgKi8KLS8qICAgQ0ZHX01QVFBSIC0gICAgICAgTWVtb3J5IHJlZnJlc2ggdGltZXIgcHJlc2NhbGVyIHJlZ2lzdGVyCSAgICAgKi8KLS8qICAgQ0ZHX1NEUkFNMF9TSVpFIC0gU0RSQU0gc2l6ZQkJCQkgICAgICovCisvKiAgIENPTkZJR19TWVNfSU1NUgkgICAgLSAgTVBDODI2MCBJbnRlcm5hbCBtZW1vcnkgbWFwCQkgICAgICovCisvKiAgIENPTkZJR19TWVNfU0RSQU1fQkFTRSAtICBQaHlzaWNhbCBzdGFydCBhZGRyZXNzIG9mIFNEUkFNCQkgICAgICovCisvKiAgIENPTkZJR19TWVNfUFNETVIgLSAgICAgICBTRFJBTSBtb2RlIHJlZ2lzdGVyCQkJICAgICAqLworLyogICBDT05GSUdfU1lTX01QVFBSIC0gICAgICAgTWVtb3J5IHJlZnJlc2ggdGltZXIgcHJlc2NhbGVyIHJlZ2lzdGVyCSAgICAgKi8KKy8qICAgQ09ORklHX1NZU19TRFJBTTBfU0laRSAtIFNEUkFNIHNpemUJCQkJICAgICAqLwogLyoJCQkJCQkJCSAgICAgKi8KIC8qIFJFVFVSTlM6CQkJCQkJCSAgICAgKi8KIC8qICAgU0RSQU0gc2l6ZSBpbiBieXRlcwkJCQkJICAgICAqLwpAQCAtNjA4LDEwICs2MDgsMTAgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwotCXZvbGF0aWxlIHVjaGFyIGMgPSAwLCAqcmFtYWRkciA9ICh1Y2hhciAqKSAoQ0ZHX1NEUkFNX0JBU0UgKyAweDgpOwotCXVsb25nIHBzZG1yID0gQ0ZHX1BTRE1SOworCXZvbGF0aWxlIHVjaGFyIGMgPSAwLCAqcmFtYWRkciA9ICh1Y2hhciAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg4KTsKKwl1bG9uZyBwc2RtciA9IENPTkZJR19TWVNfUFNETVI7CiAJaW50IGk7CiAKIAkvKgpAQCAtNjMxLDExICs2MzEsMTEgQEAKIAkgKiAgYWNjZXNzaW5nIHRoZSBTRFJBTSB3aXRoIGEgc2luZ2xlLWJ5dGUgdHJhbnNhY3Rpb24uIgogCSAqCiAJICogVGhlIGFwcHJvcHJpYXRlIEJSeC9PUnggcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCB3aGVuIHdlCi0JICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ0ZHX1NEUkFNX0JBU0UuCisJICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogCSAqLwogCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAogCW1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgUFNETVJfT1BfUFJFQTsKIAkqcmFtYWRkciA9IGM7CkBAIC02NTEsNyArNjUxLDcgQEAKIAkqcmFtYWRkciA9IGM7CiAKIAkvKiByZXR1cm4gdG90YWwgcmFtIHNpemUgKi8KLQlyZXR1cm4gKENGR19TRFJBTTBfU0laRSAqIDEwMjQgKiAxMDI0KTsKKwlyZXR1cm4gKENPTkZJR19TWVNfU0RSQU0wX1NJWkUgKiAxMDI0ICogMTAyNCk7CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCmRpZmYgLS1naXQgYS9ib2FyZC9oZXJtZXMvZmxhc2guYyBiL2JvYXJkL2hlcm1lcy9mbGFzaC5jCmluZGV4IDc5OWZlODMuLjg4ODIzMWMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2hlcm1lcy9mbGFzaC5jCisrKyBiL2JvYXJkL2hlcm1lcy9mbGFzaC5jCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTM4LDEzICszOCwxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemU7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTU4LDIwICs1OCwyMCBAQAogCX0KIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZSAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemUgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfAogCQkJCShtZW1jdGwtPm1lbWNfYnIwICYgfihCUl9CQV9NU0spKTsKIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMzc2LDcgKzM3Niw3IEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gKHZ1X2NoYXIqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAweDgwKSAhPSAweDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC00NDksNyArNDQ5LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKigodnVfY2hhciAqKWRlc3QpICYgMHg4MCkgIT0gKGRhdGEgJiAweDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvaGVybWVzL2hlcm1lcy5jIGIvYm9hcmQvaGVybWVzL2hlcm1lcy5jCmluZGV4IGY5YjU3MjAuLjlhM2U1ZjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2hlcm1lcy9oZXJtZXMuYworKysgYi9ib2FyZC9oZXJtZXMvaGVybWVzLmMKQEAgLTEzNiw3ICsxMzYsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZSwgc2l6ZTgsIHNpemU5OwogCkBAIC0xNTMsOCArMTUzLDggQEAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIGJhbmtzIDEgdG8gdGhlIFNEUkFNIGJhbmtzIGF0IHByZWxpbWluYXJ5IGFkZHJlc3MKIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKIAogCS8qIEhFUk1FUy1QUk8gYm9hcmRzIGhhdmUgb25seSBvbmUgYmFuayBTRFJBTSAqLwogCkBAIC0xNzksNyArMTc5LDcgQEAKIAkgKgogCSAqIHRyeSA4IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQU1SXzhDT0wsIChsb25nICopIFNEUkFNX0JBU0VfUFJFTElNLAorCXNpemU4ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOENPTCwgKGxvbmcgKikgU0RSQU1fQkFTRV9QUkVMSU0sCiAJCQkJCSAgIFNEUkFNX01BWF9TSVpFKTsKIAogCXVkZWxheSAoMTAwMCk7CkBAIC0xODcsNyArMTg3LDcgQEAKIAkvKgogCSAqIHRyeSA5IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTkgPSBkcmFtX3NpemUgKENGR19NQU1SXzlDT0wsIChsb25nICopIFNEUkFNX0JBU0VfUFJFTElNLAorCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwgKGxvbmcgKikgU0RSQU1fQkFTRV9QUkVMSU0sCiAJCQkJCSAgIFNEUkFNX01BWF9TSVpFKTsKIAogCWlmIChzaXplOCA8IHNpemU5KSB7CQkvKiBsZWF2ZSBjb25maWd1cmF0aW9uIGF0IDkgY29sdW1ucyAqLwpAQCAtMTk1LDcgKzE5NSw3IEBACiAvKglkZWJ1ZyAoIlNEUkFNIEJhbmsgMCBpbiA5IGNvbHVtbiBtb2RlOiAlbGQgTUJcbiIsIHNpemUgPj4gMjApOwkqLwogCX0gZWxzZSB7CQkJCQkvKiBiYWNrIHRvIDggY29sdW1ucyAgICAgICAgICAgICovCiAJCXNpemUgPSBzaXplODsKLQkJbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MOworCQltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MOwogCQl1ZGVsYXkgKDUwMCk7CiAvKglkZWJ1ZyAoIlNEUkFNIEJhbmsgMCBpbiA4IGNvbHVtbiBtb2RlOiAlbGQgTUJcbiIsIHNpemUgPj4gMjApOwkqLwogCX0KQEAgLTIwMyw3ICsyMDMsNyBAQAogCXVkZWxheSAoMTAwMCk7CiAKIAltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZSkgJiAweEZGRkYwMDAwKSB8IFNEUkFNX1RJTUlORzsKLQltZW1jdGwtPm1lbWNfYnIxID0gKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOworCW1lbWN0bC0+bWVtY19icjEgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCiAJdWRlbGF5ICgxMDAwMCk7CiAKQEAgLTIyMyw3ICsyMjMsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpAQCAtMjY0LDcgKzI2NCw3IEBACiAKIHN0YXRpYyB1bG9uZyBib2FyZF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXVsb25nIHJlZywgcmV2aXNpb24sIHNwZWVkID0gMTAwOwogCWludCBldGhzcGVlZDsKIAljaGFyICpzOwpAQCAtNDAzLDcgKzQwMyw3IEBACiAgKi8KIHZvaWQgaGVybWVzX3N0YXJ0X2x4dDk4MCAoaW50IHNwZWVkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcCA9IChjcG04eHhfdCAqKSAmIChpbW1yLT5pbV9jcG0pOwogCXZvbGF0aWxlIHNjY190ICpzcCA9IChzY2NfdCAqKSAmIChjcC0+Y3Bfc2NjW1NDQ19TTV0pOwogCXZvbGF0aWxlIGNiZF90ICpiZDsKQEAgLTU5NSw3ICs1OTUsNyBAQAogCiB2b2lkIHNob3dfYm9vdF9wcm9ncmVzcyAoaW50IHN0YXR1cykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCWlmIChzdGF0dXMgPCAtMzIpIHN0YXR1cyA9IC0xOwkvKiBsZXQgdGhpbmdzIGNvbXBhdGlibGUgKi8KIAlzdGF0dXMgXj0gMHgwRjsKZGlmZiAtLWdpdCBhL2JvYXJkL2hpZGRlbl9kcmFnb24vZWFybHlfaW5pdC5TIGIvYm9hcmQvaGlkZGVuX2RyYWdvbi9lYXJseV9pbml0LlMKaW5kZXggMDdkYWZiNy4uNTMxZGNkZiAxMDA2NDQKLS0tIGEvYm9hcmQvaGlkZGVuX2RyYWdvbi9lYXJseV9pbml0LlMKKysrIGIvYm9hcmQvaGlkZGVuX2RyYWdvbi9lYXJseV9pbml0LlMKQEAgLTMyLDY4ICszMiw2OCBAQAogCiAjaWYgZGVmaW5lZChVU0VfRElOSzMyKQogICAvKiBXZSBhcmUgcnVubmluZyBmcm9tIFJBTSwgc28gZG8gbm90IGNsZWFyIHRoZSBNQ0NSMV9NRU1HTyBiaXQhICovCi0gICNkZWZpbmUgTUNDUjFWQUwgKChDRkdfUk9NTkFMIDw8IE1DQ1IxX1JPTU5BTF9TSElGVCkgfCAoQ0ZHX1JPTUZBTCA8PCBNQ0NSMV9ST01GQUxfU0hJRlQpIHwgTUNDUjFfTUVNR08pCisgICNkZWZpbmUgTUNDUjFWQUwgKChDT05GSUdfU1lTX1JPTU5BTCA8PCBNQ0NSMV9ST01OQUxfU0hJRlQpIHwgKENPTkZJR19TWVNfUk9NRkFMIDw8IE1DQ1IxX1JPTUZBTF9TSElGVCkgfCBNQ0NSMV9NRU1HTykKICNlbHNlCi0gICNkZWZpbmUgTUNDUjFWQUwgKENGR19ST01OQUwgPDwgTUNDUjFfUk9NTkFMX1NISUZUKSB8IChDRkdfUk9NRkFMIDw8IE1DQ1IxX1JPTUZBTF9TSElGVCkKKyAgI2RlZmluZSBNQ0NSMVZBTCAoQ09ORklHX1NZU19ST01OQUwgPDwgTUNDUjFfUk9NTkFMX1NISUZUKSB8IChDT05GSUdfU1lTX1JPTUZBTCA8PCBNQ0NSMV9ST01GQUxfU0hJRlQpCiAjZW5kaWYKIAogCS50ZXh0CiAKIAkvKiBWYWx1ZXMgdG8gcHJvZ3JhbSBpbnRvIG1lbW9yeSBjb250cm9sbGVyIHJlZ2lzdGVycyAqLwogdGJsOgkubG9uZwlNQ0NSMSwgTUNDUjFWQUwKLQkubG9uZwlNQ0NSMiwgQ0ZHX1JFRklOVCA8PCBNQ0NSMl9SRUZJTlRfU0hJRlQKKwkubG9uZwlNQ0NSMiwgQ09ORklHX1NZU19SRUZJTlQgPDwgTUNDUjJfUkVGSU5UX1NISUZUCiAJLmxvbmcJTUNDUjMKLQkubG9uZwkoKChDRkdfQlNUT1BSRSAmIDB4MDAwMDAwZjApID4+IDQpIDw8IE1DQ1IzX0JTVE9QUkUyVE81X1NISUZUKSB8IFwKLQkJKENGR19SRUZSRUMgPDwgTUNDUjNfUkVGUkVDX1NISUZUKSB8IFwKLQkJKENGR19SRExBVCAgPDwgTUNDUjNfUkRMQVRfU0hJRlQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CU1RPUFJFICYgMHgwMDAwMDBmMCkgPj4gNCkgPDwgTUNDUjNfQlNUT1BSRTJUTzVfU0hJRlQpIHwgXAorCQkoQ09ORklHX1NZU19SRUZSRUMgPDwgTUNDUjNfUkVGUkVDX1NISUZUKSB8IFwKKwkJKENPTkZJR19TWVNfUkRMQVQgIDw8IE1DQ1IzX1JETEFUX1NISUZUKQogCS5sb25nCU1DQ1I0Ci0JLmxvbmcJKENGR19QUkVUT0FDVCA8PCBNQ0NSNF9QUkVUT0FDVF9TSElGVCkgfCAoQ0ZHX0FDVFRPUFJFIDw8IE1DQ1I0X0FDVFRPUFJFX1NISUZUKSB8IFwKLQkJKENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgPDwgMjApIHwgXAotCQkoKChDRkdfQlNUT1BSRSAmIDB4MDAwMDAzMDApID4+IDgpIDw8IE1DQ1I0X0JTVE9QUkUwVE8xX1NISUZUICkgfCBcCi0JCSgoQ0ZHX1NETU9ERV9DQVNfTEFUIDw8IDQpIHwgKENGR19TRE1PREVfV1JBUCA8PCAzKSB8IFwKLQkJKENGR19TRE1PREVfQlVSU1RMRU4pIDw8IE1DQ1I0X1NETU9ERV9TSElGVCkgfCBcCi0JCShDRkdfQUNUVE9SVyA8PCBNQ0NSNF9BQ1RUT1JXX1NISUZUKSB8IFwKLQkJKChDRkdfQlNUT1BSRSAmIDB4MDAwMDAwMGYpIDw8IE1DQ1I0X0JTVE9QUkU2VE85X1NISUZUICkKKwkubG9uZwkoQ09ORklHX1NZU19QUkVUT0FDVCA8PCBNQ0NSNF9QUkVUT0FDVF9TSElGVCkgfCAoQ09ORklHX1NZU19BQ1RUT1BSRSA8PCBNQ0NSNF9BQ1RUT1BSRV9TSElGVCkgfCBcCisJCShDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiA8PCAyMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQlNUT1BSRSAmIDB4MDAwMDAzMDApID4+IDgpIDw8IE1DQ1I0X0JTVE9QUkUwVE8xX1NISUZUICkgfCBcCisJCSgoQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVCA8PCA0KSB8IChDT05GSUdfU1lTX1NETU9ERV9XUkFQIDw8IDMpIHwgXAorCQkoQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4pIDw8IE1DQ1I0X1NETU9ERV9TSElGVCkgfCBcCisJCShDT05GSUdfU1lTX0FDVFRPUlcgPDwgTUNDUjRfQUNUVE9SV19TSElGVCkgfCBcCisJCSgoQ09ORklHX1NZU19CU1RPUFJFICYgMHgwMDAwMDAwZikgPDwgTUNDUjRfQlNUT1BSRTZUTzlfU0hJRlQgKQogCS5sb25nCU1TQVIxCi0JLmxvbmcJKCgoQ0ZHX0JBTkswX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDApIHwgXAotCQkoKChDRkdfQkFOSzFfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LMl9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8IFwKLQkJKCgoQ0ZHX0JBTkszX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CQU5LMF9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMV9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICA4KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMl9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LM19TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCUVNU0FSMQotCS5sb25nCSgoKENGR19CQU5LMF9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDApIHwgXAotCQkoKChDRkdfQkFOSzFfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICA4KSB8IFwKLQkJKCgoQ0ZHX0JBTksyX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LM19TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CQU5LMF9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDApIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTksxX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzJfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LM19TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpCiAJLmxvbmcJTVNBUjIKLQkubG9uZwkoKChDRkdfQkFOSzRfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LNV9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICA4KSB8IFwKLQkJKCgoQ0ZHX0JBTks2X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAotCQkoKChDRkdfQkFOSzdfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTks0X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDApIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks1X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDgpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks2X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks3X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpCiAJLmxvbmcJRU1TQVIyCi0JLmxvbmcJKCgoQ0ZHX0JBTks0X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LNV9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzZfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8IFwKLQkJKCgoQ0ZHX0JBTks3X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTks0X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzVfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICA4KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LNl9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks3X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwlNRUFSMQotCS5sb25nCSgoKENGR19CQU5LMF9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LMV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LMl9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LM19FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTkswX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzJfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTkszX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCUVNRUFSMQotCS5sb25nCSgoKENGR19CQU5LMF9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICAwKSB8IFwKLQkJKCgoQ0ZHX0JBTksxX0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzJfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LM19FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KQorCS5sb25nCSgoKENPTkZJR19TWVNfQkFOSzBfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzFfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzJfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzNfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwlNRUFSMgotCS5sb25nCSgoKENGR19CQU5LNF9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LNV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LNl9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LN19FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTks0X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LNV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzZfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks3X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCUVNRUFSMgotCS5sb25nCSgoKENGR19CQU5LNF9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICAwKSB8IFwKLQkJKCgoQ0ZHX0JBTks1X0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzZfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LN19FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KQorCS5sb25nCSgoKENPTkZJR19TWVNfQkFOSzRfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzVfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzZfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzdfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwkwCiAKIApAQCAtMTIzLDcgKzEyMyw3IEBACiAJLyogc2V0IGJhbmsgZW5hYmxlIGJpdHMgKi8KIAlsaXMJcjAsIE1CRVJAaAogCW9yaQlyMCwgMCwgTUJFUkBsCi0JbGkJcjEsIENGR19CQU5LX0VOQUJMRQorCWxpCXIxLCBDT05GSUdfU1lTX0JBTktfRU5BQkxFCiAJc3R3YnJ4CXIwLCAwLCByMwogCWVpZWlvCiAJc3RiCXIxLCAwKHI0KQpAQCAtMTQ1LDggKzE0NSw4IEBACiAJZWllaW8KIAogCS8qIHNldCB1cCBzdGFjayBwb2ludGVyICovCi0JbGlzCXIxLCBDRkdfSU5JVF9TUF9PRkZTRVRAaAotCW9yaQlyMSwgcjEsIENGR19JTklUX1NQX09GRlNFVEBsCisJbGlzCXIxLCBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUQGgKKwlvcmkJcjEsIHIxLCBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUQGwKIAogCW10bHIJcjEwCiAJYmxyCmRpZmYgLS1naXQgYS9ib2FyZC9oaWRkZW5fZHJhZ29uL2ZsYXNoLmMgYi9ib2FyZC9oaWRkZW5fZHJhZ29uL2ZsYXNoLmMKaW5kZXggMTAyOTNiNC4uMmNlMWRjNCAxMDA2NDQKLS0tIGEvYm9hcmQvaGlkZGVuX2RyYWdvbi9mbGFzaC5jCisrKyBiL2JvYXJkL2hpZGRlbl9kcmFnb24vZmxhc2guYwpAQCAtMzMsMTEgKzMzLDExIEBACiAjZGVmaW5lIFJPTV9DUzBfU1RBUlQJMHhGRjgwMDAwMAogI2RlZmluZSBST01fQ1MxX1NUQVJUCTB4RkYwMDAwMDAKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSICAoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICMgZW5kaWYKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUgIENPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC0xMjAsMTAgKzEyMCwxMCBAQAogewogCXVuc2lnbmVkIGxvbmcgaTsKIAl1bnNpZ25lZCBjaGFyIGo7Ci0Jc3RhdGljIGNvbnN0IHVsb25nIGZsYXNoX2JhbmtzW10gPSBDRkdfRkxBU0hfQkFOS1M7CisJc3RhdGljIGNvbnN0IHVsb25nIGZsYXNoX2JhbmtzW10gPSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlmbGFzaF9pbmZvX3QgKmNvbnN0IHBmbGluZm8gPSAmZmxhc2hfaW5mb1tpXTsKIAogCQlwZmxpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CkBAIC0xMzUsMTAgKzEzNSwxMCBAQAogCXsKIAkJcmVnaXN0ZXIgdW5zaWduZWQgY2hhciB0ZW1wOwogCi0JCUNPTkZJR19SRUFEX0JZVEUgKENGR19XSU5CT05EX0lTQV9DRkdfQUREUiArIFdJTkJPTkRfQ1NDUiwKKwkJQ09ORklHX1JFQURfQllURSAoQ09ORklHX1NZU19XSU5CT05EX0lTQV9DRkdfQUREUiArIFdJTkJPTkRfQ1NDUiwKIAkJCQkgIHRlbXApOwogCQl0ZW1wICY9IH4weDIwOwkvKiBjbGVhciBCSU9TV1AgYml0ICovCi0JCUNPTkZJR19XUklURV9CWVRFIChDRkdfV0lOQk9ORF9JU0FfQ0ZHX0FERFIgKyBXSU5CT05EX0NTQ1IsCisJCUNPTkZJR19XUklURV9CWVRFIChDT05GSUdfU1lTX1dJTkJPTkRfSVNBX0NGR19BRERSICsgV0lOQk9ORF9DU0NSLAogCQkJCSAgIHRlbXApOwogCX0KIApAQCAtMjA1LDEwICsyMDUsMTAgQEAKIAkJfQogCQkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkJICovCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtNDI2LDcgKzQyNiw3IEBACiAJCQkJCQkgICAgICAgc3RhcnRbMF0pIDw8IHNoOGIpKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQogCSAgICAgICAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTU2NSw3ICs1NjUsNyBAQAogCQlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJCXdoaWxlICgoZGVzdDJbaSA8PCBzaDhiXSAmIChGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9CiAJCSAgICAgICAoZGF0YTJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSkgewotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2hpZGRlbl9kcmFnb24vaGlkZGVuX2RyYWdvbi5jIGIvYm9hcmQvaGlkZGVuX2RyYWdvbi9oaWRkZW5fZHJhZ29uLmMKaW5kZXggMmQ3YTc4Ny4uMDI3YWE0NSAxMDA2NDQKLS0tIGEvYm9hcmQvaGlkZGVuX2RyYWdvbi9oaWRkZW5fZHJhZ29uLmMKKysrIGIvYm9hcmQvaGlkZGVuX2RyYWdvbi9oaWRkZW5fZHJhZ29uLmMKQEAgLTUyLDcgKzUyLDcgQEAKIAlsb25nIG1lYXIxOwogCWxvbmcgZW1lYXIxOwogCi0Jc2l6ZSA9IGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgQ0ZHX01BWF9SQU1fU0laRSk7CisJc2l6ZSA9IGdldF9yYW1fc2l6ZShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFKTsKIAogCW5ld19iYW5rMF9lbmQgPSBzaXplIC0gMTsKIAltZWFyMSA9IG1wYzgyNHhfbXBjMTA3X2dldHJlZyhNRUFSMSk7CmRpZmYgLS1naXQgYS9ib2FyZC9obWkxMDAxL2htaTEwMDEuYyBiL2JvYXJkL2htaTEwMDEvaG1pMTAwMS5jCmluZGV4IDhjZmQ3NWIuLjljYmVkNGIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2htaTEwMDEvaG1pMTAwMS5jCisrKyBiL2JvYXJkL2htaTEwMDEvaG1pMTAwMS5jCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPG1hbGxvYy5oPgogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogc3RhdGljIHZvaWQgc2RyYW1fc3RhcnQgKGludCBoaV9hZGRyKQogewogCWxvbmcgaGlfYWRkcl9iaXQgPSBoaV9hZGRyID8gMHgwMTAwMDAwMCA6IDA7CkBAIC03NiwxNCArNzYsMTQgQEAKIAogLyoKICAqIEFUVEVOVElPTjogQWx0aG91Z2ggcGFydGlhbGx5IHJlZmVyZW5jZWQgaW5pdGRyYW0gZG9lcyBOT1QgbWFrZSByZWFsIHVzZQotICoJICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKgkgICAgICB1c2Ugb2YgQ09ORklHX1NZU19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENPTkZJR19TWVNfU0RSQU1fQkFTRQogICoJICAgICAgaXMgc29tZXRoaW5nIGVsc2UgdGhhbiAweDAwMDAwMDAwLgogICovCiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKIAl1bG9uZyBkcmFtc2l6ZSA9IDA7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHRlc3QxLCB0ZXN0MjsKIAl1aW50IHN2ciwgcHZyOwogCkBAIC0xMDUsOSArMTA1LDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MwIG9ubHkgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMTI5LDcgKzEyOSw3IEBACiAJfQogCiAJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzFDRkcgPSBkcmFtc2l6ZTsgLyogZGlzYWJsZWQgKi8KLSNlbHNlIC8qIENGR19SQU1CT09UICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIHJldHJpZXZlIHNpemUgb2YgbWVtb3J5IGNvbm5lY3RlZCB0byBTRFJBTSBDUzAgKi8KIAlkcmFtc2l6ZSA9ICoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MwQ0ZHICYgMHhGRjsKQEAgLTE0Nyw3ICsxNDcsNyBAQAogCQlkcmFtc2l6ZTIgPSAwOwogCX0KIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKgogCSAqIE9uIE1QQzUyMDBCIHdlIG5lZWQgdG8gc2V0IHRoZSBzcGVjaWFsIGNvbmZpZ3VyYXRpb24gZGVsYXkgaW4gdGhlCkBAIC0xOTMsOCArMTkzLDggQEAKIAogc3RydWN0IGtiZF9kYXRhX3QqIGdldF9rZXlzIChzdHJ1Y3Qga2JkX2RhdGFfdCAqa2JkX2RhdGEpCiB7Ci0Ja2JkX2RhdGEtPnMxID0gKigodm9sYXRpbGUgdWNoYXIqKShDRkdfU1RBVFVTMV9CQVNFKSk7Ci0Ja2JkX2RhdGEtPnMyID0gKigodm9sYXRpbGUgdWNoYXIqKShDRkdfU1RBVFVTMl9CQVNFKSk7CisJa2JkX2RhdGEtPnMxID0gKigodm9sYXRpbGUgdWNoYXIqKShDT05GSUdfU1lTX1NUQVRVUzFfQkFTRSkpOworCWtiZF9kYXRhLT5zMiA9ICooKHZvbGF0aWxlIHVjaGFyKikoQ09ORklHX1NZU19TVEFUVVMyX0JBU0UpKTsKIAogCXJldHVybiBrYmRfZGF0YTsKIH0KQEAgLTMwMCw5ICszMDAsOSBAQAogewogCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX0NGRyAmPSB+MHgxOyAvKiBjbGVhciBSTyAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX1NUQVJUID0KLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVEFSVCA9IFNUQVJUX1JFRyhDRkdfRkxBU0hfQkFTRSk7CisJKih2dV9sb25nICopTVBDNVhYWF9DUzBfU1RBUlQgPSBTVEFSVF9SRUcoQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKIAkqKHZ1X2xvbmcgKilNUEM1WFhYX0JPT1RDU19TVE9QID0KLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVE9QID0gU1RPUF9SRUcoQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9TSVpFKTsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVE9QID0gU1RPUF9SRUcoQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX1NJWkUpOwogCXJldHVybiAwOwogfQogI2lmZGVmCUNPTkZJR19QQ0kKZGlmZiAtLWdpdCBhL2JvYXJkL2h5bW9kL2JzcC5jIGIvYm9hcmQvaHltb2QvYnNwLmMKaW5kZXggMTJmMTQwMi4uMTg0OGJiMyAxMDA2NDQKLS0tIGEvYm9hcmQvaHltb2QvYnNwLmMKKysrIGIvYm9hcmQvaHltb2QvYnNwLmMKQEAgLTMwNCw3ICszMDQsNyBAQAogZG9fZWVjbCAoY21kX3RibF90ICogY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogCXVjaGFyIGRhdGFbSFlNT0RfRUVQUk9NX1NJWkVdOwotCXVpbnQgYWRkciA9IENGR19JMkNfRUVQUk9NX0FERFI7CisJdWludCBhZGRyID0gQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFI7CiAKIAlzd2l0Y2ggKGFyZ2MpIHsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvaHltb2QvZWVwcm9tLmMgYi9ib2FyZC9oeW1vZC9lZXByb20uYwppbmRleCBjOWI5YjE4Li40ZDQ4ZDdkIDEwMDY0NAotLS0gYS9ib2FyZC9oeW1vZC9lZXByb20uYworKysgYi9ib2FyZC9oeW1vZC9lZXByb20uYwpAQCAtMzYsNyArMzYsNyBAQAogc3RhdGljIGludAogaHltb2RfZWVwcm9tX2xvYWQgKGludCB3aGljaCwgaHltb2RfZWVwcm9tX3QgKmVwKQogewotCXVuc2lnbmVkIGRldl9hZGRyID0gQ0ZHX0kyQ19FRVBST01fQUREUiB8IFwKKwl1bnNpZ25lZCBkZXZfYWRkciA9IENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSIHwgXAogCQkod2hpY2ggPyBIWU1PRF9FRU9GRl9NRVpaIDogSFlNT0RfRUVPRkZfTUFJTik7CiAJdW5zaWduZWQgb2Zmc2V0ID0gMDsKIAl1Y2hhciBkYXRhW0hZTU9EX0VFUFJPTV9NQVhMRU5dLCAqZHAsICplZHA7CkBAIC00NjYsNyArNDY2LDcgQEAKIHN0YXRpYyBpbnQKIGh5bW9kX2VlcHJvbV9mZXRjaChpbnQgd2hpY2gsIGNoYXIgKmZpbGVuYW1lLCB1bG9uZyBhZGRyKQogewotCXVuc2lnbmVkIGRldl9hZGRyID0gQ0ZHX0kyQ19FRVBST01fQUREUiB8IFwKKwl1bnNpZ25lZCBkZXZfYWRkciA9IENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSIHwgXAogCQkod2hpY2ggPyBIWU1PRF9FRU9GRl9NRVpaIDogSFlNT0RfRUVPRkZfTUFJTik7CiAJaHltb2RfZWVoZHJfdCAqaHAgPSAoaHltb2RfZWVoZHJfdCAqKSZkYXRhWzBdOwogCXVsb25nIGNyYzsKQEAgLTYzNSw3ICs2MzUsNyBAQAogaHltb2RfZWVwcm9tX3JlYWQgKGludCB3aGljaCwgaHltb2RfZWVwcm9tX3QgKmVwKQogewogCWNoYXIgKmxhYmVsID0gd2hpY2ggPyAibWV6emFuaW5lIiA6ICJtYWluIjsKLQl1bnNpZ25lZCBkZXZfYWRkciA9IENGR19JMkNfRUVQUk9NX0FERFIgfCBcCisJdW5zaWduZWQgZGV2X2FkZHIgPSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiB8IFwKIAkJKHdoaWNoID8gSFlNT0RfRUVPRkZfTUVaWiA6IEhZTU9EX0VFT0ZGX01BSU4pOwogCWNoYXIgZmlsZW5hbWVbNTBdLCBwcm9tcHRbNTBdLCAqZGlyOwogCWludCBzZXJubywgY291bnQgPSAwLCByYzsKQEAgLTY4Miw3ICs2ODIsNyBAQAogCQlwcmludGYgKCIqKiogZmV0Y2hpbmcgJXMgYm9hcmQgRUVQUk9NIGNvbnRlbnRzIGZyb20gc2VydmVyXG4iLAogCQkJbGFiZWwpOwogCi0JCXJjID0gaHltb2RfZWVwcm9tX2ZldGNoICh3aGljaCwgZmlsZW5hbWUsIENGR19MT0FEX0FERFIpOworCQlyYyA9IGh5bW9kX2VlcHJvbV9mZXRjaCAod2hpY2gsIGZpbGVuYW1lLCBDT05GSUdfU1lTX0xPQURfQUREUik7CiAKIAkJaWYgKHJjID09IDApIHsKIAkJCXB1dHMgKCIqKiogZmV0Y2ggZmFpbGVkIC0gaWdub3JpbmcgZWVwcm9tIGNvbnRlbnRzXG4iKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2h5bW9kL2Vudi5jIGIvYm9hcmQvaHltb2QvZW52LmMKaW5kZXggMDYyNTUzYi4uYzBlMmNkNSAxMDA2NDQKLS0tIGEvYm9hcmQvaHltb2QvZW52LmMKKysrIGIvYm9hcmQvaHltb2QvZW52LmMKQEAgLTM1LDcgKzM1LDcgQEAKIGVudl9jYWxsYmFjayAodWNoYXIgKm5hbWUsIHVjaGFyICp2YWx1ZSkKIHsKIAloeW1vZF9jb25mX3QgKmNwID0gJmdkLT5iZC0+YmlfaHltb2RfY29uZjsKLQljaGFyIG92W0NGR19DQlNJWkVdLCBudltDRkdfQ0JTSVpFXSwgKnAsICpxLCAqbm4sIGMsICpjdXJ2ZXIsICpuZXd2ZXI7CisJY2hhciBvdltDT05GSUdfU1lTX0NCU0laRV0sIG52W0NPTkZJR19TWVNfQ0JTSVpFXSwgKnAsICpxLCAqbm4sIGMsICpjdXJ2ZXIsICpuZXd2ZXI7CiAJaW50IG92ZXJyaWRlID0gMSwgYXBwZW5kID0gMCwgcmVtb3ZlID0gMCwgbm5sLCBvdmwsIG52bDsKIAogCW5uID0gKGNoYXIgKiluYW1lOwpAQCAtMjA1LDcgKzIwNSw3IEBACiAJaWYgKChwYXRoID0gZ2V0ZW52ICgiZ2xvYmFsX2Vudl9wYXRoIikpID09IE5VTEwgfHwgKnBhdGggPT0gJ1wwJykKIAkJcGF0aCA9IGRlZl9nbG9iYWxfZW52X3BhdGg7CiAKLQlpZiAoZmV0Y2hfYW5kX3BhcnNlIChwYXRoLCBDRkdfTE9BRF9BRERSLCBlbnZfY2FsbGJhY2spID09IDApIHsKKwlpZiAoZmV0Y2hfYW5kX3BhcnNlIChwYXRoLCBDT05GSUdfU1lTX0xPQURfQUREUiwgZW52X2NhbGxiYWNrKSA9PSAwKSB7CiAJCXB1dHMgKCIqKiogRmV0Y2ggb2YgZ2xvYmFsIGVudmlyb25tZW50IGZhaWxlZCFcbiIpOwogCQlyZXR1cm47CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvaHltb2QvZmxhc2guYyBiL2JvYXJkL2h5bW9kL2ZsYXNoLmMKaW5kZXggYWQwYTIyOS4uZTJjZjM4YyAxMDA2NDQKLS0tIGEvYm9hcmQvaHltb2QvZmxhc2guYworKysgYi9ib2FyZC9oeW1vZC9mbGFzaC5jCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSA8bXBjODI2MC5oPgogI2luY2x1ZGUgPGJvYXJkL2h5bW9kL2ZsYXNoLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQcm90ZWN0aW9uIEZsYWdzOgpAQCAtOTUsNyArOTUsNyBAQAogCQkJKHVuc2lnbmVkIGxvbmcpd29yZCwgKHVuc2lnbmVkIGxvbmcpYmFzZSk7CiAJfQogCi0JaWYgKGZpcC0+c2VjdG9yX2NvdW50ID49IENGR19NQVhfRkxBU0hfU0VDVCkKKwlpZiAoZmlwLT5zZWN0b3JfY291bnQgPj0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkKIAkJcGFuaWMgKCJcbnRvbyBtYW55IHNlY3RvcnMgKCVkKSBpbiBmbGFzaCBhdCBhZGRyZXNzIDB4JTA4bHgiLAogCQkJZmlwLT5zZWN0b3JfY291bnQsICh1bnNpZ25lZCBsb25nKWJhc2UpOwogCkBAIC0xOTgsNyArMTk4LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCWRvIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR2YWwgPSAxOwogCQkJZ290byBkb25lOwogCQl9CkBAIC0yMjgsMzAgKzIyOCwzMCBAQAogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCi0JYmFua19wcm9iZSAoJmZsYXNoX2luZm9bMF0sIChiYW5rX2FkZHJfdClDRkdfRkxBU0hfQkFTRSk7CisJYmFua19wcm9iZSAoJmZsYXNoX2luZm9bMF0sIChiYW5rX2FkZHJfdClDT05GSUdfU1lTX0ZMQVNIX0JBU0UpOwogCiAJLyoKIAkgKiBwcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPT0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA9PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkodm9pZClmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX0VOVl9BRERSKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9FTlZfQUREUikKIAkodm9pZClmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfRkxBU0hfRU5WX0FERFIsCi0jaWYgZGVmaW5lZChDRkdfRkxBU0hfRU5WX0JVRikKLQkJICAgICAgQ0ZHX0ZMQVNIX0VOVl9BRERSICsgQ0ZHX0ZMQVNIX0VOVl9CVUYgLSAxLAorCQkgICAgICBDT05GSUdfU1lTX0ZMQVNIX0VOVl9BRERSLAorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9FTlZfQlVGKQorCQkgICAgICBDT05GSUdfU1lTX0ZMQVNIX0VOVl9BRERSICsgQ09ORklHX1NZU19GTEFTSF9FTlZfQlVGIC0gMSwKICNlbHNlCi0JCSAgICAgIENGR19GTEFTSF9FTlZfQUREUiArIENGR19GTEFTSF9FTlZfU0laRSAtIDEsCisJCSAgICAgIENPTkZJR19TWVNfRkxBU0hfRU5WX0FERFIgKyBDT05GSUdfU1lTX0ZMQVNIX0VOVl9TSVpFIC0gMSwKICNlbmRpZgogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKQEAgLTM2OCw3ICszNjgsNyBAQAogCQkJZG8gewogCQkJCW5vdyA9IGdldF90aW1lciAoc3RhcnQpOwogCi0JCQkJaWYgKG5vdyAtIGVzdGFydCA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKG5vdyAtIGVzdGFydCA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0IChzZWN0ICVkKVxuIiwgc2VjdCk7CiAJCQkJCWhhZGVyciA9IDE7CiAJCQkJCXJjb2RlID0gMTsKZGlmZiAtLWdpdCBhL2JvYXJkL2h5bW9kL2h5bW9kLmMgYi9ib2FyZC9oeW1vZC9oeW1vZC5jCmluZGV4IDkxYWFhYjEuLjJhZjMwNDkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2h5bW9kL2h5bW9kLmMKKysrIGIvYm9hcmQvaHltb2QvaHltb2QuYwpAQCAtMjU1LDcgKzI1NSw3IEBACiBpbnQKIGJvYXJkX3Bvc3RjbGtfaW5pdCAodm9pZCkKIHsKLQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKIAkvKgogCSAqIEluaXRpYWxpc2UgdGhlIEZTNjM3NyBjbG9jayBjaGlwCkBAIC0zNDcsMTYgKzM0NywxNiBAQAogaW50CiBtaXNjX2luaXRfZiAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAlwcmludGYgKCJVUE1zOiAgIik7CiAKIAl1cG1jb25maWcgKFVQTUIsIHVwbWJfdGFibGUsIHNpemVvZiB1cG1iX3RhYmxlIC8gc2l6ZW9mIHVwbWJfdGFibGVbMF0pOwotCW1lbWN0bC0+bWVtY19tYm1yID0gQ0ZHX01CTVI7CisJbWVtY3RsLT5tZW1jX21ibXIgPSBDT05GSUdfU1lTX01CTVI7CiAKIAl1cG1jb25maWcgKFVQTUMsIHVwbWNfdGFibGUsIHNpemVvZiB1cG1jX3RhYmxlIC8gc2l6ZW9mIHVwbWNfdGFibGVbMF0pOwotCW1lbWN0bC0+bWVtY19tY21yID0gQ0ZHX01DTVI7CisJbWVtY3RsLT5tZW1jX21jbXIgPSBDT05GSUdfU1lTX01DTVI7CiAKIAlwcmludGYgKCJjb25maWd1cmVkXG4iKTsKIAlyZXR1cm4gKDApOwpAQCAtMzY3LDEwICszNjcsMTAgQEAKIHBoeXNfc2l6ZV90CiBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwotCXZvbGF0aWxlIHVjaGFyIGMgPSAwLCAqcmFtYWRkciA9ICh1Y2hhciAqKSAoQ0ZHX1NEUkFNX0JBU0UgKyAweDgpOwotCXVsb25nIHBzZG1yID0gQ0ZHX1BTRE1SOworCXZvbGF0aWxlIHVjaGFyIGMgPSAwLCAqcmFtYWRkciA9ICh1Y2hhciAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg4KTsKKwl1bG9uZyBwc2RtciA9IENPTkZJR19TWVNfUFNETVI7CiAJaW50IGk7CiAKIAkvKgpAQCAtMzkwLDExICszOTAsMTEgQEAKIAkgKiAgYWNjZXNzaW5nIHRoZSBTRFJBTSB3aXRoIGEgc2luZ2xlLWJ5dGUgdHJhbnNhY3Rpb24uIgogCSAqCiAJICogVGhlIGFwcHJvcHJpYXRlIEJSeC9PUnggcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCB3aGVuIHdlCi0JICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ0ZHX1NEUkFNX0JBU0UuCisJICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogCSAqLwogCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAogCW1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgUFNETVJfT1BfUFJFQTsKIAkqcmFtYWRkciA9IGM7CkBAIC00MDksNyArNDA5LDcgQEAKIAltZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IFBTRE1SX09QX05PUk0gfCBQU0RNUl9SRkVOOwogCSpyYW1hZGRyID0gYzsKIAotCXJldHVybiAoQ0ZHX1NEUkFNX1NJWkUgPDwgMjApOworCXJldHVybiAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKTsKIH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtNTE3LDE4ICs1MTcsMTggQEAKICNpZmRlZiBDT05GSUdfU0hPV19BQ1RJVklUWQogdm9pZCBib2FyZF9zaG93X2FjdGl2aXR5ICh1bG9uZyB0aW1lYmFzZSkKIHsKLSNpZmRlZiBDRkdfSFlNT0RfREJMRURTCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworI2lmZGVmIENPTkZJR19TWVNfSFlNT0RfREJMRURTCisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBpb3A4MjYwX3QgKmlvcCA9ICZpbW1yLT5pbV9pb3BvcnQ7CiAJc3RhdGljIGludCBzaGlmdCA9IDA7CiAKLQlpZiAoKHRpbWVzdGFtcCAlIENGR19IWikgPT0gMCkgeworCWlmICgodGltZXN0YW1wICUgQ09ORklHX1NZU19IWikgPT0gMCkgewogCQlpZiAoKytzaGlmdCA+IDMpCiAJCQlzaGlmdCA9IDA7CiAJCWlvcC0+aW9wX3BkYXRkID0KIAkJCQkoaW9wLT5pb3BfcGRhdGQgJiB+MHgwZjAwMDAwMCkgfCAoMSA8PCAoMjQgKyBzaGlmdCkpOwogCX0KLSNlbmRpZiAvKiBDRkdfSFlNT0RfREJMRURTICovCisjZW5kaWYgLyogQ09ORklHX1NZU19IWU1PRF9EQkxFRFMgKi8KIH0KIAogdm9pZCBzaG93X2FjdGl2aXR5KGludCBhcmcpCmRpZmYgLS1naXQgYS9ib2FyZC9oeW1vZC9pbnB1dC5jIGIvYm9hcmQvaHltb2QvaW5wdXQuYwppbmRleCA2M2FhMTNjLi45OTgxMzJkIDEwMDY0NAotLS0gYS9ib2FyZC9oeW1vZC9pbnB1dC5jCisrKyBiL2JvYXJkL2h5bW9kL2lucHV0LmMKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KIAogLyogaW1wb3J0cyBmcm9tIGNvbW1vbi9tYWluLmMgKi8KLWV4dGVybiBjaGFyIGNvbnNvbGVfYnVmZmVyW0NGR19DQlNJWkVdOworZXh0ZXJuIGNoYXIgY29uc29sZV9idWZmZXJbQ09ORklHX1NZU19DQlNJWkVdOwogCiBpbnQKIGh5bW9kX2dldF9zZXJubyAoY29uc3QgY2hhciAqcHJvbXB0KQpkaWZmIC0tZ2l0IGEvYm9hcmQvaWNlY3ViZS9mbGFzaC5jIGIvYm9hcmQvaWNlY3ViZS9mbGFzaC5jCmluZGV4IDBhYTc4ZWIuLjdhNDMzYjMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ljZWN1YmUvZmxhc2guYworKysgYi9ib2FyZC9pY2VjdWJlL2ZsYXNoLmMKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KIAogI2lmbmRlZiBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qIE5PVEUgLSBDT05GSUdfRkxBU0hfMTZCSVQgbWVhbnMgdGhlIENQVSBpbnRlcmZhY2UgaXMgMTYtYml0LCBpdAogICogICAgICAgIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggdGhlIGZsYXNoIGNoaXAgYmVpbmcgOC1iaXQgb3IgMTYtYml0LgpAQCAtNjYsMTIgKzY2LDEyIEBACiAJaW50IGk7CiAJZXh0ZXJuIHZvaWQgZmxhc2hfcHJlaW5pdCh2b2lkKTsKIAlleHRlcm4gdm9pZCBmbGFzaF9hZnRlcmluaXQodWxvbmcpOwotCXVsb25nIGZsYXNoYmFzZSA9IENGR19GTEFTSF9CQVNFOworCXVsb25nIGZsYXNoYmFzZSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAogCWZsYXNoX3ByZWluaXQoKTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQltZW1zZXQoJmZsYXNoX2luZm9baV0sIDAsIHNpemVvZihmbGFzaF9pbmZvX3QpKTsKIAogCQlmbGFzaF9pbmZvW2ldLnNpemUgPQpAQCAtODAsMTIgKzgwLDEyIEBACiAJCXNpemUgKz0gZmxhc2hfaW5mb1tpXS5zaXplOwogCQlmbGFzaGJhc2UgKz0gMHg4MDAwMDA7CiAJfQotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAotCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDRkdfTU9OSVRPUl9CQVNFKSk7CisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDT05GSUdfU1lTX01PTklUT1JfQkFTRSkpOwogI2VuZGlmCiAKICNpZmRlZglDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC0xMjIsMTQgKzEyMiwxNCBAQAogCWludCBpOwogCWZsYXNoX2luZm9fdCAqIGluZm87CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSArKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSArKykgewogCQlpbmZvID0gJiBmbGFzaF9pbmZvW2ldOwogCQlpZiAoaW5mby0+c2l6ZSAmJgogCQkJaW5mby0+c3RhcnRbMF0gPD0gYmFzZSAmJiBiYXNlIDw9IGluZm8tPnN0YXJ0WzBdICsgaW5mby0+c2l6ZSAtIDEpCiAJCQlicmVhazsKIAl9CiAKLQlyZXR1cm4gaSA9PSBDRkdfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm87CisJcmV0dXJuIGkgPT0gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgPyAwIDogaW5mbzsKIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzYwLDcgKzM2MCw3IEBACiAJCXVkZWxheSAoMTAwMCk7CiAKIAkJd2hpbGUgKCgqYWRkciAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKEZQVykweDAwODAwMDgwKSB7Ci0JCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAogCQkJCWlmIChpbnRlbCkgewpAQCAtMzc0LDE0ICszNzQsMTQgQEAKIAkJCX0KIAogCQkJLyogc2hvdyB0aGF0IHdlJ3JlIHdhaXRpbmcgKi8KLQkJCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENGR19IWikgey8qIGV2ZXJ5IHNlY29uZCAqLworCQkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ09ORklHX1NZU19IWikgey8qIGV2ZXJ5IHNlY29uZCAqLwogCQkJCXB1dGMgKCcuJyk7CiAJCQkJbGFzdCA9IGdldF90aW1lcigwKTsKIAkJCX0KIAkJfQogCiAJCS8qIHNob3cgdGhhdCB3ZSdyZSB3YWl0aW5nICovCi0JCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENGR19IWikgewkvKiBldmVyeSBzZWNvbmQgKi8KKwkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ09ORklHX1NZU19IWikgewkvKiBldmVyeSBzZWNvbmQgKi8KIAkJCXB1dGMgKCcuJyk7CiAJCQlsYXN0ID0gZ2V0X3RpbWVyKDApOwogCQl9CkBAIC00ODIsNyArNDgyLDcgQEAKIAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAl3aGlsZSAocmVzID09IDAgJiYgKCpkZXN0ICYgKEZQVykweDAwODAwMDgwKSAhPSAoZGF0YSAmIChGUFcpMHgwMDgwMDA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmRlc3QgPSAoRlBXKTB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCXJlcyA9IDE7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2ljZWN1YmUvaWNlY3ViZS5jIGIvYm9hcmQvaWNlY3ViZS9pY2VjdWJlLmMKaW5kZXggZDg0YWIzYS4uNzUyNDQ2MSAxMDA2NDQKLS0tIGEvYm9hcmQvaWNlY3ViZS9pY2VjdWJlLmMKKysrIGIvYm9hcmQvaWNlY3ViZS9pY2VjdWJlLmMKQEAgLTg3LDcgKzg3LDcgQEAKICNkZWZpbmUgbGl0ZTUyMDBiX3dha2V1cCgpCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIHN0YXRpYyB2b2lkIHNkcmFtX3N0YXJ0IChpbnQgaGlfYWRkcikKIHsKIAlsb25nIGhpX2FkZHJfYml0ID0gaGlfYWRkciA/IDB4MDEwMDAwMDAgOiAwOwpAQCAtMTMwLDcgKzEzMCw3IEBACiAKIC8qCiAgKiBBVFRFTlRJT046IEFsdGhvdWdoIHBhcnRpYWxseSByZWZlcmVuY2VkIGluaXRkcmFtIGRvZXMgTk9UIG1ha2UgcmVhbCB1c2UKLSAqICAgICAgICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKiAgICAgICAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKiAgICAgICAgICAgIGlzIHNvbWV0aGluZyBlbHNlIHRoYW4gMHgwMDAwMDAwMC4KICAqLwogCkBAIC0xNDEsNyArMTQxLDcgQEAKIAl1bG9uZyBkcmFtc2l6ZTIgPSAwOwogCXVpbnQgc3ZyLCBwdnI7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgdGVzdDEsIHRlc3QyOwogCiAJLyogc2V0dXAgU0RSQU0gY2hpcCBzZWxlY3RzICovCkBAIC0xNjIsOSArMTYyLDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MwIG9ubHkgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMTkwLDEwICsxOTAsMTAgQEAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMSBvbmx5ICovCiAJaWYgKCFkcmFtc2l6ZSkKIAkJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDIgPSB0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSB0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOwogCWlmICghZHJhbXNpemUpIHsKIAkJc2RyYW1fc3RhcnQoMSk7Ci0JCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopKENGR19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKKwkJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKIAl9CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CkBAIC0yMTUsNyArMjE1LDcgQEAKIAkJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzFDRkcgPSBkcmFtc2l6ZTsgLyogZGlzYWJsZWQgKi8KIAl9CiAKLSNlbHNlIC8qIENGR19SQU1CT09UICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIHJldHJpZXZlIHNpemUgb2YgbWVtb3J5IGNvbm5lY3RlZCB0byBTRFJBTSBDUzAgKi8KIAlkcmFtc2l6ZSA9ICoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MwQ0ZHICYgMHhGRjsKQEAgLTIzMyw3ICsyMzMsNyBAQAogCQlkcmFtc2l6ZTIgPSAwOwogCX0KIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKgogCSAqIE9uIE1QQzUyMDBCIHdlIG5lZWQgdG8gc2V0IHRoZSBzcGVjaWFsIGNvbmZpZ3VyYXRpb24gZGVsYXkgaW4gdGhlCkBAIC0yNjMsNyArMjYzLDcgQEAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKIAl1bG9uZyBkcmFtc2l6ZSA9IDA7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHRlc3QxLCB0ZXN0MjsKIAogCS8qIHNldHVwIGFuZCBlbmFibGUgU0RSQU0gY2hpcCBzZWxlY3RzICovCkBAIC0yODIsOSArMjgyLDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMjk1LDEyICsyOTUsMTIgQEAKIAkvKiBzZXQgU0RSQU0gZW5kIGFkZHJlc3MgYWNjb3JkaW5nIHRvIHNpemUgKi8KIAkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX1NUT1AgPSAoKGRyYW1zaXplIC0gMSkgPj4gMTUpOwogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiBSZXRyaWV2ZSBhbW91bnQgb2YgU0RSQU0gYXZhaWxhYmxlICovCiAJZHJhbXNpemUgPSAoKCoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fU1RPUCArIDEpIDw8IDE1KTsKIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAlyZXR1cm4gZHJhbXNpemU7CiB9CkBAIC0zNDAsOSArMzQwLDkgQEAKIHsKIAlpZiAoc2l6ZSA9PSAweDgwMDAwMCkgeyAvKiBhZGp1c3QgbWFwcGluZyAqLwogCQkqKHZ1X2xvbmcgKilNUEM1WFhYX0JPT1RDU19TVEFSVCA9ICoodnVfbG9uZyAqKU1QQzVYWFhfQ1MwX1NUQVJUID0KLQkJCVNUQVJUX1JFRyhDRkdfQk9PVENTX1NUQVJUIHwgc2l6ZSk7CisJCQlTVEFSVF9SRUcoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQgfCBzaXplKTsKIAkJKih2dV9sb25nICopTVBDNVhYWF9CT09UQ1NfU1RPUCA9ICoodnVfbG9uZyAqKU1QQzVYWFhfQ1MwX1NUT1AgPQotCQkJU1RPUF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCB8IHNpemUsIHNpemUpOworCQkJU1RPUF9SRUcoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQgfCBzaXplLCBzaXplKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ljdTg2Mi9mbGFzaC5jIGIvYm9hcmQvaWN1ODYyL2ZsYXNoLmMKaW5kZXggZTYzODJmNS4uMmFmZWZmNCAxMDA2NDQKLS0tIGEvYm9hcmQvaWN1ODYyL2ZsYXNoLmMKKysrIGIvYm9hcmQvaWN1ODYyL2ZsYXNoLmMKQEAgLTI0LDExICsyNCwxMSBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKICMgaWZuZGVmICBDT05GSUdfRU5WX0FERFIKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICMgZW5kaWYKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTUwLDEzICs1MCwxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjAsIHNpemVfYjE7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC05MiwxOSArOTIsMTkgQEAKIAl9CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiBPUl9BTV9NU0spOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgT1JfQU1fTVNLKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsKIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtNDY4LDcgKzQ2OCw3IEBACiAJd2hpbGUgKChhZGRyWzBdICYgMHhGRkZGRkZGRikgIT0gMHhGRkZGRkZGRikKICNlbmRpZgogCXsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXB1dHMgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC02MDYsNyArNjA2LDcgQEAKIAl3aGlsZSAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIDB4ODA4MDgwODApICE9IChkYXRhICYgMHg4MDgwODA4MCkpCiAjZW5kaWYKIAl7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9pY3U4NjIvaWN1ODYyLmMgYi9ib2FyZC9pY3U4NjIvaWN1ODYyLmMKaW5kZXggMThhYThiZi4uYjk5ZDI1NiAxMDA2NDQKLS0tIGEvYm9hcmQvaWN1ODYyL2ljdTg2Mi5jCisrKyBiL2JvYXJkL2ljdTg2Mi9pY3U4NjIuYwpAQCAtOTYsNyArOTYsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZTgsIHNpemU5OwogCWxvbmcgaW50IHNpemVfYjAgPSAwOwpAQCAtMTExLDcgKzExMSw3IEBACiAJICogd2l0aCB0d28gU0RSQU0gYmFua3Mgb3IgZm91ciBjeWNsZXMgZXZlcnkgMzEuMiB1cyB3aXRoIG9uZQogCSAqIGJhbmsuIEl0IHdpbGwgYmUgYWRqdXN0ZWQgYWZ0ZXIgbWVtb3J5IHNpemluZy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzhLOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzhLOwogCiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKQEAgLTEyMCwxMCArMTIwLDEwIEBACiAJICogcHJlbGltaW5hcnkgYWRkcmVzcyAtIHRoZXNlIGhhdmUgdG8gYmUgbW9kaWZpZWQgYWZ0ZXIgdGhlCiAJICogU0RSQU0gc2l6ZSBoYXMgYmVlbiBkZXRlcm1pbmVkLgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1IxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0xNDMsNyArMTQzLDcgQEAKIAkgKgogCSAqIHRyeSA4IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQU1SXzhDT0wsIFNEUkFNX0JBU0UxX1BSRUxJTSwKKwlzaXplOCA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzhDT0wsIFNEUkFNX0JBU0UxX1BSRUxJTSwKIAkJCQkJICAgU0RSQU1fTUFYX1NJWkUpOwogCiAJdWRlbGF5ICgxMDAwKTsKQEAgLTE1MSw3ICsxNTEsNyBAQAogCS8qCiAJICogdHJ5IDkgY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOSA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOUNPTCwgU0RSQU1fQkFTRTFfUFJFTElNLAorCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwgU0RSQU1fQkFTRTFfUFJFTElNLAogCQkJCQkgICBTRFJBTV9NQVhfU0laRSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewkJLyogbGVhdmUgY29uZmlndXJhdGlvbiBhdCA5IGNvbHVtbnMgKi8KQEAgLTE1OSw3ICsxNTksNyBAQAogLyoJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOSBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsJKi8KIAl9IGVsc2UgewkJCQkJLyogYmFjayB0byA4IGNvbHVtbnMgICAgICAgICAgICAqLwogCQlzaXplX2IwID0gc2l6ZTg7Ci0JCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOENPTDsKKwkJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTDsKIAkJdWRlbGF5ICg1MDApOwogLyoJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOCBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsJKi8KIAl9CkBAIC0xNzIsNyArMTcyLDcgQEAKIAkgKi8KIAlpZiAoKHNpemVfYjAgPCAweDAyMDAwMDAwKSkgewogCQkvKiByZWR1Y2UgdG8gMTUuNiB1cyAoNjIuNCB1cyAvIHF1YWQpICovCi0JCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfNEs7CisJCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzRLOwogCQl1ZGVsYXkgKDEwMDApOwogCX0KIApAQCAtMTgwLDEyICsxODAsMTIgQEAKIAkgKiBGaW5hbCBtYXBwaW5nCiAJICovCiAKLQltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOworCW1lbWN0bC0+bWVtY19icjEgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCiAJLyogYWRqdXN0IHJlZnJlc2ggcmF0ZSBkZXBlbmRpbmcgb24gU0RSQU0gdHlwZSwgb25lIGJhbmsgKi8KIAlyZWcgPSBtZW1jdGwtPm1lbWNfbXB0cHI7Ci0JcmVnID4+PSAxOwkJCQkJLyogcmVkdWNlIHRvIENGR19NUFRQUl8xQktfOEsgLyBfNEsgKi8KKwlyZWcgPj49IDE7CQkJCQkvKiByZWR1Y2UgdG8gQ09ORklHX1NZU19NUFRQUl8xQktfOEsgLyBfNEsgKi8KIAltZW1jdGwtPm1lbWNfbXB0cHIgPSByZWc7CiAKIAl1ZGVsYXkgKDEwMDAwKTsKQEAgLTIwNiw3ICsyMDYsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvaWN1ODYyL3BjbWNpYS5jIGIvYm9hcmQvaWN1ODYyL3BjbWNpYS5jCmluZGV4IDIwOTIyZDguLmE0YzBiNTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ljdTg2Mi9wY21jaWEuYworKysgYi9ib2FyZC9pY3U4NjIvcGNtY2lhLmMKQEAgLTIyLDggKzIyLDggQEAKIAl2b2xhdGlsZSBjcG04eHhfdAkqY3A7CiAJdWludCByZWc7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0pKTsKIAogCS8qCiAJKiBDb25maWd1cmUgUG9ydCBCIGZvciBUUFMyMjA1IFBDLUNhcmQgUG93ZXItSW50ZXJmYWNlIFN3aXRjaApAQCAtNTgsMTAgKzU4LDEwIEBACiAKIAl1ZGVsYXkoMTAwMDApOwogCi0JaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOwotCXN5c3AgID0gKHN5c2NvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fc2l1X2NvbmYpKTsKLQlwY21wICA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOwotCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0pKTsKKwlpbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCXN5c3AgID0gKHN5c2NvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3NpdV9jb25mKSk7CisJcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CisJY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0pKTsKIAogCS8qIENvbmZpZ3VyZSBQb3J0IEIgZm9yIFRQUzIyMDUgUEMtQ2FyZCBQb3dlci1JbnRlcmZhY2UgU3dpdGNoICovCiAJY2ZnX3BvcnRfQiAoKTsKQEAgLTE2NSw5ICsxNjUsOSBAQAogCiAJZGVidWcgKCJoYXJkd2FyZV9kaXNhYmxlOiAiIFBDTUNJQV9CT0FSRF9NU0cgIiBTbG90ICVjXG4iLCAnQScrc2xvdCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSkpOwotCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbSkpOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogCiAJLyogU2h1dCBkb3duICovCiAJY3AtPmNwX3BiZGF0ICY9IH4oVFBTMjIwNV9TSEROKTsKQEAgLTE5OCw5ICsxOTgsOSBAQAogCQkJIiBTbG90ICVjLCBWY2M9JWQuJWQsIFZwcD0lZC4lZFxuIiwKIAknQScrc2xvdCwgdmNjLzEwLCB2Y2MlMTAsIHZwcC8xMCwgdmNjJTEwKTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtKSk7Ci0JcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKKwlpbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtKSk7CisJcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CiAJLyoKIAkqIERpc2FibGUgUENNQ0lBIGJ1ZmZlcnMgKGlzb2xhdGUgdGhlIGludGVyZmFjZSkKIAkqIGFuZCBhc3NlcnQgUkVTRVQgc2lnbmFsCmRpZmYgLS1naXQgYS9ib2FyZC9pZG1yL2ZsYXNoLmMgYi9ib2FyZC9pZG1yL2ZsYXNoLmMKaW5kZXggMzM1MTJiOC4uNTdjOTk0OCAxMDA2NDQKLS0tIGEvYm9hcmQvaWRtci9mbGFzaC5jCisrKyBiL2JvYXJkL2lkbXIvZmxhc2guYwpAQCAtMjMsMTEgKzIzLDExIEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KIAotI2RlZmluZSBQSFlTX0ZMQVNIXzEgQ0ZHX0ZMQVNIX0JBU0UKKyNkZWZpbmUgUEhZU19GTEFTSF8xIENPTkZJR19TWVNfRkxBU0hfQkFTRQogI2RlZmluZSBGTEFTSF9CQU5LX1NJWkUgMHg4MDAwMDAKICNkZWZpbmUgRU4yOUxWNjQwIDB4MjI3ZTIyN2UKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIHZvaWQgZmxhc2hfcHJpbnRfaW5mbyAoZmxhc2hfaW5mb190ICogaW5mbykKIHsKQEAgLTc1LDE1ICs3NSwxNSBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9CiAJCQkoQU1EX01BTlVGQUNUICYgRkxBU0hfVkVORE1BU0spIHwKIAkJCShFTjI5TFY2NDAgJiBGTEFTSF9UWVBFTUFTSyk7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IEZMQVNIX0JBTktfU0laRTsKLQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CisJCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAkJaWYgKGkgPT0gMCkKIAkJCWZsYXNoYmFzZSA9IFBIWVNfRkxBU0hfMTsKIAkJZWxzZQpAQCAtOTYsOCArOTYsOCBAQAogCX0KIAogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFICsgMHgyZmZmZiwgJmZsYXNoX2luZm9bMF0pOworCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgyZmZmZiwgJmZsYXNoX2luZm9bMF0pOwogCiAJcmV0dXJuIHNpemU7CiB9CkBAIC0xMTEsOCArMTExLDggQEAKICNkZWZpbmUgQ01EX1BST0dSQU0JCTB4MDBBMAogI2RlZmluZSBDTURfVU5MT0NLX0JZUEFTUwkweDAwMjAKIAotI2RlZmluZSBNRU1fRkxBU0hfQUREUjEJCSgqKHZvbGF0aWxlIHUxNiAqKShDRkdfRkxBU0hfQkFTRSArICgweDAwMDAwNTU1PDwxKSkpCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUE8PDEpKSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDB4MDAwMDA1NTU8PDEpKSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIyCQkoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUE8PDEpKSkKIAogI2RlZmluZSBCSVRfRVJBU0VfRE9ORQkJMHgwMDgwCiAjZGVmaW5lIEJJVF9SRFlfTUFTSwkJMHgwMDgwCkBAIC0xOTEsNyArMTkxLDcgQEAKIAkJCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJCQlpZiAoZ2V0X3RpbWVyICgwKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUICogQ0ZHX0haIC8gMTAwMCkgeworCQkJCWlmIChnZXRfdGltZXIgKDApID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICogQ09ORklHX1NZU19IWiAvIDEwMDApIHsKIAkJCQkJTUVNX0ZMQVNIX0FERFIxID0gQ01EX1JFQURfQVJSQVk7CiAJCQkJCWNoaXAxID0gVE1POwogCQkJCQlicmVhazsKQEAgLTI4MCw3ICsyODAsNyBAQAogCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCWlmIChnZXRfdGltZXIgKDApID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQgKiBDRkdfSFogLyAxMDAwKSB7CisJCWlmIChnZXRfdGltZXIgKDApID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICogQ09ORklHX1NZU19IWiAvIDEwMDApIHsKIAkJCWNoaXAxID0gRVJSIHwgVE1POwogCQkJYnJlYWs7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2lkbXIvaWRtci5jIGIvYm9hcmQvaWRtci9pZG1yLmMKaW5kZXggNGYwNzNmYy4uMzc3MWMxOSAxMDA2NDQKLS0tIGEvYm9hcmQvaWRtci9pZG1yLmMKKysrIGIvYm9hcmQvaWRtci9pZG1yLmMKQEAgLTM1LDcgKzM1LDcgQEAKIAkvKgogCSAqIEFmdGVyIHJlc2V0LCBDUzAgaXMgY29uZmlndXJlZCB0byBjb3ZlciBlbnRpcmUgYWRkcmVzcyBzcGFjZS4gV2UKIAkgKiBuZWVkIHRvIGNvbmZpZ3VyZSBpdCB0byBpdHMgcHJvcGVyIHZhbHVlcywgc28gdGhhdCB3cml0ZXMgdG8KLQkgKiBDRkdfU0RSQU1fQkFTRSBhbmQgdmljaW5pdHkgZHVyaW5nIFNEUkFNIGNvbnRyb2xsZXIgc2V0dXAgYmVsb3cgZG8KKwkgKiBDT05GSUdfU1lTX1NEUkFNX0JBU0UgYW5kIHZpY2luaXR5IGR1cmluZyBTRFJBTSBjb250cm9sbGVyIHNldHVwIGJlbG93IGRvCiAJICogbm93IGZhbGwgdW5kZXIgQ1MwIChzZWUgMTYuMy4xIG9mIHRoZSBNQ0Y1MjcxIFJlZmVyZW5jZSBNYW51YWwpLgogCSAqLwogCkBAIC05OSw3ICs5OSw3IEBACiAJICogUFM6IDE2IGJpdAogCSAqLwogCW1iYXJfd3JpdGVMb25nKE1DRl9TRFJBTUNfREFDUjAsCi0JCQlNQ0ZfU0RSQU1DX0RBQ1JuX0JBKENGR19TRFJBTV9CQVNFPj4xOCkgfAorCQkJTUNGX1NEUkFNQ19EQUNSbl9CQShDT05GSUdfU1lTX1NEUkFNX0JBU0U+PjE4KSB8CiAJCQlNQ0ZfU0RSQU1DX0RBQ1JuX0JBKDB4MDApIHwKIAkJCU1DRl9TRFJBTUNfREFDUm5fQ0FTTCgweDAzKSB8CiAJCQlNQ0ZfU0RSQU1DX0RBQ1JuX0NCTSgweDAzKSB8CkBAIC0xMTcsNyArMTE3LDcgQEAKIAkJCU1DRl9TRFJBTUNfREFDUm5fSVApOwogCiAJLyogV3JpdGUgdG8gdGhpcyBibG9jayB0byBpbml0aWF0ZSBwcmVjaGFyZ2UgKi8KLQkqKHZvbGF0aWxlIHUxNiAqKShDRkdfU0RSQU1fQkFTRSkgPSAweGE1YTU7CisJKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFKSA9IDB4YTVhNTsKIAogCS8qCiAJICogV2FpdCBhdCBsZWFzdCAyMG5zIHRvIGFsbG93IGJhbmtzIHRvIHByZWNoYXJnZSAodF9SUCA9IDIwbnMpLiBXZQpAQCAtMTUzLDkgKzE1Myw5IEBACiAJICogQnVyc3QgVHlwZSA9IFNlcXVlbnRpYWwKIAkgKiBCdXJzdCBMZW5ndGggPSAxCiAJICovCi0JKih2b2xhdGlsZSB1MzIgKikoQ0ZHX1NEUkFNX0JBU0UgKyAweDE4MDApID0gMHhhNWE1YTVhNTsKKwkqKHZvbGF0aWxlIHUzMiAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDE4MDApID0gMHhhNWE1YTVhNTsKIAotCXJldHVybiBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OworCXJldHVybiBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKIH07CiAKIApkaWZmIC0tZ2l0IGEvYm9hcmQvaWRtci9taWkuYyBiL2JvYXJkL2lkbXIvbWlpLmMKaW5kZXggNzhhNzAyOC4uZTc5ZmExOSAxMDA2NDQKLS0tIGEvYm9hcmQvaWRtci9taWkuYworKysgYi9ib2FyZC9pZG1yL21paS5jCkBAIC0zOCwxNCArMzgsMTQgQEAKIHsKIAlpZiAoc2V0Y2xlYXIpIHsKIAkJLyogRW5hYmxlIEV0aGVybmV0IHBpbnMgKi8KLQkJbWJhcl93cml0ZUJ5dGUoTUNGX0dQSU9fUEFSX0ZFQ0kyQywgQ0ZHX0ZFQ0kyQyk7CisJCW1iYXJfd3JpdGVCeXRlKE1DRl9HUElPX1BBUl9GRUNJMkMsIENPTkZJR19TWVNfRkVDSTJDKTsKIAl9IGVsc2UgewogCX0KIAogCXJldHVybiAwOwogfQogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCiAjaW5jbHVkZSA8bWlpcGh5Lmg+CiAKIC8qIE1ha2UgTUlJIHJlYWQvd3JpdGUgY29tbWFuZHMgZm9yIHRoZSBGRUMuICovCkBAIC0xMzEsOSArMTMxLDkgQEAKIAogCXJldHVybiAobWlpX3JlcGx5ICYgMHhmZmZmKTsJLyogZGF0YSByZWFkIGZyb20gcGh5ICovCiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSB8fCBDT05GSUdfQ01EX01JSSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkKIGludCBtaWlfZGlzY292ZXJfcGh5KHN0cnVjdCBldGhfZGV2aWNlICpkZXYpCiB7CiAjZGVmaW5lIE1BWF9QSFlfUEFTU0VTIDExCkBAIC0xOTgsNyArMTk4LDcgQEAKIAogCXJldHVybiBwaHlhZGRyOwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogCiB2b2lkIG1paV9pbml0KHZvaWQpIF9fYXR0cmlidXRlX18oKHdlYWssYWxpYXMoIl9fbWlpX2luaXQiKSkpOwogCmRpZmYgLS1naXQgYS9ib2FyZC9pZHM4MjQ3L2NvbmZpZy5tayBiL2JvYXJkL2lkczgyNDcvY29uZmlnLm1rCmluZGV4IDEzNmNkYjguLjJhN2YzZGQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2lkczgyNDcvY29uZmlnLm1rCisrKyBiL2JvYXJkL2lkczgyNDcvY29uZmlnLm1rCkBAIC0yNSw3ICsyNSw3IEBACiAjIElEUyA4MjQ3IEJvYXJkCiAjCiAKLSMgVGhpcyBzaG91bGQgYmUgZXF1YWwgdG8gdGhlIENGR19GTEFTSF9CQVNFIGRlZmluZSBpbiBjb25maWdfSURTODI0Ny5oCisjIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgZGVmaW5lIGluIGNvbmZpZ19JRFM4MjQ3LmgKICMgZm9yIHRoZSAiZmluYWwiIGNvbmZpZ3VyYXRpb24sIHdpdGggVS1Cb290IGluIGZsYXNoLCBvciB0aGUgYWRkcmVzcwogIyBpbiBSQU0gd2hlcmUgVS1Cb290IGlzIGxvYWRlZCBhdCBmb3IgZGVidWdnaW5nLgogIwpkaWZmIC0tZ2l0IGEvYm9hcmQvaWRzODI0Ny9mbGFzaC5jIGIvYm9hcmQvaWRzODI0Ny9mbGFzaC5jCmluZGV4IDU4MDBjZTIuLjUxMDc1NTMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2lkczgyNDcvZmxhc2guYworKysgYi9ib2FyZC9pZHM4MjQ3L2ZsYXNoLmMKQEAgLTMxLDExICszMSwxMSBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtODQsMTYgKzg0LDE2IEBACiB7CiAJdW5zaWduZWQgbG9uZyBzaXplX2IwOwogCWludCBpOwotCXZvbGF0aWxlIGltbWFwX3QgKiBpbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICogaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCiAJLyogU3RhdGljIEZMQVNIIEJhbmsgY29uZmlndXJhdGlvbiBoZXJlIC0gRklYTUUgWFhYICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplICgoRlBXICopIENGR19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSAoKEZQVyAqKSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggb24gQmFuayAwIC0gU2l6ZSA9IDB4JTA4bHggPSAlbGQgTUJcbiIsCkBAIC0xMDUsMTEgKzEwNSwxMSBAQAogCiAJZmxhc2hfZ2V0X29mZnNldHMgKDB4ZmY4MDAwMDAsICZmbGFzaF9pbmZvWzBdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKSBmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJCUNGR19NT05JVE9SX0JBU0UsCi0JCQkJQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCQkmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMjU4LDEwICsyNTgsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMzMyLDcgKzMzMiw3IEBACiAJCQl1ZGVsYXkgKDEwMDApOwogCiAJCQl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCQkgICAgaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJICAgIGlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJKmFkZHIgPSAoRlBXKSAweDAwQjAwMEIwOwkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwogCQkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC00NzIsNyArNDcyLDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAKIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuICgxKTsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvaWRzODI0Ny9pZHM4MjQ3LmMgYi9ib2FyZC9pZHM4MjQ3L2lkczgyNDcuYwppbmRleCAwNjUwMTRhLi42OGI3MDcwIDEwMDY0NAotLS0gYS9ib2FyZC9pZHM4MjQ3L2lkczgyNDcuYworKysgYi9ib2FyZC9pZHM4MjQ3L2lkczgyNDcuYwpAQCAtMjU0LDcgKzI1NCw3IEBACiAJICogIGFjY2Vzc2luZyB0aGUgU0RSQU0gd2l0aCBhIHNpbmdsZS1ieXRlIHRyYW5zYWN0aW9uLiIKIAkgKgogCSAqIFRoZSBhcHByb3ByaWF0ZSBCUngvT1J4IHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzZXQgd2hlbiB3ZQotCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENGR19TRFJBTV9CQVNFLgorCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENPTkZJR19TWVNfU0RSQU1fQkFTRS4KIAkgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9QUkVBOwpAQCAtMjY1LDcgKzI2NSw3IEBACiAJCSpiYXNlID0gYzsKIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9NUlc7Ci0JKihiYXNlICsgQ0ZHX01SU19PRkZTKSA9IGM7CS8qIHNldHRpbmcgTVIgb24gYWRkcmVzcyBsaW5lcyAqLworCSooYmFzZSArIENPTkZJR19TWVNfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfTk9STSB8IFBTRE1SX1JGRU47CiAJKmJhc2UgPSBjOwpAQCAtMjc4LDcgKzI3OCw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAlsb25nIHBzaXplLCBsc2l6ZTsKQEAgLTI4NiwxNSArMjg2LDE1IEBACiAJcHNpemUgPSAxNiAqIDEwMjQgKiAxMDI0OwogCWxzaXplID0gMDsKIAotCW1lbWN0bC0+bWVtY19wc3J0ID0gQ0ZHX1BTUlQ7Ci0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJLyogNjB4IFNEUkFNIHNldHVwOgogCSAqLwotCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SLCBDRkdfT1IyLAotCQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOwotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisJcHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SLCBDT05GSUdfU1lTX09SMiwKKwkJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAlpY2FjaGVfZW5hYmxlICgpOwogCkBAIC0zMTUsOCArMzE1LDggQEAKIHsKIAl1bG9uZyB0b3RsZW4gPSAwOwogCi0JZGVidWcgKCJQcm9iaW5nIGF0IDB4JS44eFxuIiwgQ0ZHX05BTkQwX0JBU0UpOwotCXRvdGxlbiArPSBuYW5kX3Byb2JlIChDRkdfTkFORDBfQkFTRSk7CisJZGVidWcgKCJQcm9iaW5nIGF0IDB4JS44eFxuIiwgQ09ORklHX1NZU19OQU5EMF9CQVNFKTsKKwl0b3RsZW4gKz0gbmFuZF9wcm9iZSAoQ09ORklHX1NZU19OQU5EMF9CQVNFKTsKIAogCXByaW50ZiAoIiU0bHUgTUJcbiIsIHRvdGxlbiA+PjIwKTsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2ltcGE3L2ZsYXNoLmMgYi9ib2FyZC9pbXBhNy9mbGFzaC5jCmluZGV4IDFkZWEyMmIuLmQwYzU4ODAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ltcGE3L2ZsYXNoLmMKKysrIGIvYm9hcmQvaW1wYTcvZmxhc2guYwpAQCAtMjgsNyArMjgsNyBAQAogI2RlZmluZSBNQUlOX1NFQ1RfU0laRSAgMHgyMDAwMAogI2RlZmluZSBQQVJBTV9TRUNUX1NJWkUgMHg0MDAwCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM5LDE1ICszOSwxNSBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9CiAJCQkoSU5URUxfTUFOVUZBQ1QgJiBGTEFTSF9WRU5ETUFTSykgfAogCQkJKElOVEVMX0lEXzI4RjMyMEIzVCAmIEZMQVNIX1RZUEVNQVNLKTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCQlpZiAoaSA9PSAwKQogCQkJZmxhc2hiYXNlID0gUEhZU19GTEFTSF8xOwogCQllbHNlIGlmIChpID09IDEpCkBAIC02OSw4ICs2OSw4IEBACiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCSAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULApAQCAtMTc1LDcgKzE3NSw3IEBACiAKIAkJCXdoaWxlICgoKmFkZHIgJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7CiAJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPgotCQkJCSAgICBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJKmFkZHIgPSAweDAwQjAwMEIwOwkvKiBzdXNwZW5kIGVyYXNlICovCiAJCQkJCSphZGRyID0gMHgwMEZGMDBGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCiAJCQkJCXJjID0gRVJSX1RJTU9VVDsKQEAgLTI0Myw3ICsyNDMsNyBAQAogCiAJLyogd2FpdCB3aGlsZSBwb2xsaW5nIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAl3aGlsZSAoKCphZGRyICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyYyA9IEVSUl9USU1PVVQ7CiAJCQkvKiBzdXNwZW5kIHByb2dyYW0gY29tbWFuZCAqLwogCQkJKmFkZHIgPSAweDAwQjAwMEIwOwpkaWZmIC0tZ2l0IGEvYm9hcmQvaW5jYWlwL2ZsYXNoLmMgYi9ib2FyZC9pbmNhaXAvZmxhc2guYwppbmRleCA3NGRkNmZlLi5jYzExZTI0IDEwMDY0NAotLS0gYS9ib2FyZC9pbmNhaXAvZmxhc2guYworKysgYi9ib2FyZC9pbmNhaXAvZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPGFzbS9pbmNhLWlwLmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKiBOT1RFIC0gQ09ORklHX0ZMQVNIXzE2QklUIG1lYW5zIHRoZSBDUFUgaW50ZXJmYWNlIGlzIDE2LWJpdCwgaXQKICAqICAgICAgICBoYXMgbm90aGluZyB0byBkbyB3aXRoIHRoZSBmbGFzaCBjaGlwIGJlaW5nIDgtYml0IG9yIDE2LWJpdC4KQEAgLTczLDcgKzczLDcgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQl1bG9uZyBmbGFzaGJhc2UgPSAoaSA9PSAwKSA/IFBIWVNfRkxBU0hfMSA6IFBIWVNfRkxBU0hfMjsKIAkJdWxvbmcgKiBidXNjb24gPSAodWxvbmcgKikKIAkJCSgoaSA9PSAwKSA/IElOQ0FfSVBfRUJVX0VCVV9CVVNDT04wIDogSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjIpOwpAQCAtOTYsMTIgKzk2LDEyIEBACiAJCXNpemUgKz0gZmxhc2hfaW5mb1tpXS5zaXplOwogCX0KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAotCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDRkdfTU9OSVRPUl9CQVNFKSk7CisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDT05GSUdfU1lTX01PTklUT1JfQkFTRSkpOwogI2VuZGlmCiAKICNpZmRlZglDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC0xNzMsMTMgKzE3MywxMyBAQAogCWludCBpOwogCWZsYXNoX2luZm9fdCAqIGluZm87CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSArKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSArKykgewogCQlpbmZvID0gJiBmbGFzaF9pbmZvW2ldOwogCQlpZiAoaW5mby0+c3RhcnRbMF0gPD0gYmFzZSAmJiBiYXNlIDwgaW5mby0+c3RhcnRbMF0gKyBpbmZvLT5zaXplKQogCQkJYnJlYWs7CiAJfQogCi0JcmV0dXJuIGkgPT0gQ0ZHX01BWF9GTEFTSF9CQU5LUyA/IDAgOiBpbmZvOworCXJldHVybiBpID09IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm87CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ4NCw3ICs0ODQsNyBAQAogCQl1ZGVsYXkgKDEwMDApOwogCiAJCXdoaWxlICgoKmFkZHIgJiAoRlBXKTB4MDA4MDAwODApICE9IChGUFcpMHgwMDgwMDA4MCkgewotCQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAKIAkJCQlpZiAoaW50ZWwpIHsKQEAgLTQ5OCwxNCArNDk4LDE0IEBACiAJCQl9CiAKIAkJCS8qIHNob3cgdGhhdCB3ZSdyZSB3YWl0aW5nICovCi0JCQlpZiAoKGdldF90aW1lcihsYXN0KSkgPiBDRkdfSFopIHsvKiBldmVyeSBzZWNvbmQgKi8KKwkJCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENPTkZJR19TWVNfSFopIHsvKiBldmVyeSBzZWNvbmQgKi8KIAkJCQlwdXRjICgnLicpOwogCQkJCWxhc3QgPSBnZXRfdGltZXIoMCk7CiAJCQl9CiAJCX0KIAogCQkvKiBzaG93IHRoYXQgd2UncmUgd2FpdGluZyAqLwotCQlpZiAoKGdldF90aW1lcihsYXN0KSkgPiBDRkdfSFopIHsJLyogZXZlcnkgc2Vjb25kICovCisJCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENPTkZJR19TWVNfSFopIHsJLyogZXZlcnkgc2Vjb25kICovCiAJCQlwdXRjICgnLicpOwogCQkJbGFzdCA9IGdldF90aW1lcigwKTsKIAkJfQpAQCAtNjA5LDcgKzYwOSw3IEBACiAKICAgICAvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAgICAgd2hpbGUgKHJlcyA9PSAwICYmICgqZGVzdCAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAoRlBXKTB4MDA4MDAwODApKSB7Ci0JaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJICAgICpkZXN0ID0gKEZQVykweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAJICAgIHJlcyA9IDE7CiAJfQpAQCAtNjU1LDcgKzY1NSw3IEBACiAgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCiAgICAgd2hpbGUgKHJlcyA9PSAwICYmICgqZGVzdCAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKEZQVykweDAwODAwMDgwKSB7Ci0JaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJICAgICpkZXN0ID0gKEZQVykweDAwQjAwMEIwOwkvKiBTdXNwZW5kIHByb2dyYW0JKi8KIAkgICAgcmVzID0gMTsKIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9pbmNhaXAvaW5jYWlwLmMgYi9ib2FyZC9pbmNhaXAvaW5jYWlwLmMKaW5kZXggNmZlODUyYy4uM2IzMDk3MCAxMDA2NDQKLS0tIGEvYm9hcmQvaW5jYWlwL2luY2FpcC5jCisrKyBiL2JvYXJkL2luY2FpcC9pbmNhaXAuYwpAQCAtNDAsMTYgKzQwLDE2IEBACiB7CiAJLyogVGhlIG9ubHkgc3VwcG9ydGVkIFNEUkFNIGRhdGEgd2lkdGggaXMgMTZiaXQuCiAJICovCi0jZGVmaW5lIENGR19EVwkyCisjZGVmaW5lIENPTkZJR19TWVNfRFcJMgogCiAJLyogVGhlIG9ubHkgc3VwcG9ydGVkIG51bWJlciBvZiBTRFJBTSBiYW5rcyBpcyA0LgogCSAqLwotI2RlZmluZSBDRkdfTkIJNAorI2RlZmluZSBDT05GSUdfU1lTX05CCTQKIAogCXVsb25nIGNmZ3BiMCA9ICpJTkNBX0lQX1NEUkFNX01DX0NGR1BCMDsKIAlpbnQgICBjb2xzICAgPSBjZmdwYjAgJiAweEY7CiAJaW50ICAgcm93cyAgID0gKGNmZ3BiMCAmIDB4RjApID4+IDQ7Ci0JdWxvbmcgc2l6ZSAgID0gKDEgPDwgKHJvd3MgKyBjb2xzKSkgKiBDRkdfRFcgKiBDRkdfTkI7CisJdWxvbmcgc2l6ZSAgID0gKDEgPDwgKHJvd3MgKyBjb2xzKSkgKiBDT05GSUdfU1lTX0RXICogQ09ORklHX1NZU19OQjsKIAogCXJldHVybiBzaXplOwogfQpAQCAtNzUsNyArNzUsNyBAQAogCQl7CiAJCQkqSU5DQV9JUF9TRFJBTV9NQ19DRkdQQjAgPSAoMHgxNCA8PCA4KSB8CiAJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAocm93cyA8PCA0KSB8IGNvbHM7Ci0JCQlzaXplID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsCisJCQlzaXplID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLAogCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heF9zZHJhbV9zaXplKCkpOwogCiAJCQlpZiAoc2l6ZSA+IG1heF9zaXplKQpkaWZmIC0tZ2l0IGEvYm9hcmQvaW5rYTR4MC9pbmthNHgwLmMgYi9ib2FyZC9pbmthNHgwL2lua2E0eDAuYwppbmRleCBhMmUzNWZmLi41MDcxOTZiIDEwMDY0NAotLS0gYS9ib2FyZC9pbmthNHgwL2lua2E0eDAuYworKysgYi9ib2FyZC9pbmthNHgwL2lua2E0eDAuYwpAQCAtNDUsNyArNDUsNyBAQAogI2Vycm9yICJJTktBNHgwIFNEUkFNOiBpbnZhbGlkIGNoaXAgdHlwZSBzcGVjaWZpZWQhIgogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiBzdGF0aWMgdm9pZCBzZHJhbV9zdGFydCAoaW50IGhpX2FkZHIpCiB7CiAJbG9uZyBoaV9hZGRyX2JpdCA9IGhpX2FkZHIgPyAweDAxMDAwMDAwIDogMDsKQEAgLTg4LDE0ICs4OCwxNCBAQAogCiAvKgogICogQVRURU5USU9OOiBBbHRob3VnaCBwYXJ0aWFsbHkgcmVmZXJlbmNlZCBpbml0ZHJhbSBkb2VzIE5PVCBtYWtlIHJlYWwgdXNlCi0gKgkgICAgICB1c2Ugb2YgQ0ZHX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ0ZHX1NEUkFNX0JBU0UKKyAqCSAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKgkgICAgICBpcyBzb21ldGhpbmcgZWxzZSB0aGFuIDB4MDAwMDAwMDAuCiAgKi8KIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewogCXVsb25nIGRyYW1zaXplID0gMDsKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJbG9uZyB0ZXN0MSwgdGVzdDI7CiAKIAkvKiBzZXR1cCBTRFJBTSBjaGlwIHNlbGVjdHMgKi8KQEAgLTExNiw5ICsxMTYsOSBAQAogCiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzAgb25seSAqLwogCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxKTsKLQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKTsKKwl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CiAJCWRyYW1zaXplID0gdGVzdDE7CkBAIC0xNDAsNyArMTQwLDcgQEAKIAl9CiAKIAkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMUNGRyA9IGRyYW1zaXplOyAvKiBkaXNhYmxlZCAqLwotI2Vsc2UgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyogcmV0cmlldmUgc2l6ZSBvZiBtZW1vcnkgY29ubmVjdGVkIHRvIFNEUkFNIENTMCAqLwogCWRyYW1zaXplID0gKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzBDRkcgJiAweEZGOwpAQCAtMTQ5LDcgKzE0OSw3IEBACiAJfSBlbHNlIHsKIAkJZHJhbXNpemUgPSAwOwogCX0KLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJcmV0dXJuIGRyYW1zaXplOwogfQpAQCAtMTc5LDcgKzE3OSw3IEBACiAJaSA9IGdldGVudl9yKCJicmlnaHRuZXNzIiwgdG1wLCBzaXplb2YodG1wKSk7CiAJYnIgPSAoaSA+IDApCiAJCT8gKGludCkgc2ltcGxlX3N0cnRvdWwgKHRtcCwgTlVMTCwgMTApCi0JCTogQ0ZHX0JSSUdIVE5FU1M7CisJCTogQ09ORklHX1NZU19CUklHSFRORVNTOwogCWlmIChiciA+IDI1NSkKIAkJYnIgPSAyNTU7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2lubm9rb20vZmxhc2guYyBiL2JvYXJkL2lubm9rb20vZmxhc2guYwppbmRleCA3ZjE3YmE2Li44Yzk1MzQxIDEwMDY0NAotLS0gYS9ib2FyZC9pbm5va29tL2ZsYXNoLmMKKysrIGIvYm9hcmQvaW5ub2tvbS9mbGFzaC5jCkBAIC03Miw3ICs3Miw3IEBACiAjZGVmaW5lIE1BSU5fU0VDVF9TSVpFICAweDAwMDIwMDAwCS8qIDEyOGsgcGVyIHNlY3RvciAgICAgICAgICAgICAgICAgICovCiAjZW5kaWYKIAotZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIC8qKgogICogZmxhc2hfaW5pdDogLSBpbml0aWFsaXplIGRhdGEgc3RydWN0dXJlcyBmb3IgZmxhc2ggY2hpcHMKQEAgLTg1LDE0ICs4NSwxNCBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPQogCQkJKElOVEVMX01BTlVGQUNUICYgRkxBU0hfVkVORE1BU0spIHwKIAkJCShJTlRFTF9JRF8yOEYxMjhKMyAmIEZMQVNIX1RZUEVNQVNLKTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCQltZW1zZXQoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAogCQlzd2l0Y2ggKGkpIHsKIAkJCWNhc2UgMDoKQEAgLTExMCw4ICsxMTAsOCBAQAogCiAJLyogUHJvdGVjdCB1LWJvb3Qgc2VjdG9ycyAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLAotCQkJQ0ZHX0ZMQVNIX0JBU0UgKyAoMjU2KjEwMjQpIC0gMSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArICgyNTYqMTAyNCkgLSAxLAogCQkJJmZsYXNoX2luZm9bMF0pOwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSApAQCAtMTM1LDcgKzEzNSw3IEBACiB7CiAJaW50IGksIGo7CiAKLQlmb3IgKGo9MDsgajxDRkdfTUFYX0ZMQVNIX0JBTktTOyBqKyspIHsKKwlmb3IgKGo9MDsgajxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaisrKSB7CiAKIAkJc3dpdGNoIChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSB7CiAKQEAgLTIzNSw3ICsyMzUsNyBAQAogCiAJCQl3aGlsZSAoKCphZGRyICYgMHgwMDgwKSAhPSAweDAwODApIHsKIAkJCQlQUklOVEsoIi4iKTsKLQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCSphZGRyID0gMHgwMEIwOyAvKiBzdXNwZW5kIGVyYXNlKi8KIAkJCQkJKmFkZHIgPSAweDAwRkY7IC8qIHJlYWQgbW9kZSAgICAqLwogCQkJCQlyYyA9IEVSUl9USU1PVVQ7CkBAIC0zMDYsNyArMzA2LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUoKCh2YWwgPSAqYWRkcikgJiAweDgwKSAhPSAweDgwKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyYyA9IEVSUl9USU1PVVQ7CiAJCQkqYWRkciA9IDB4QjA7IC8qIHN1c3BlbmQgcHJvZ3JhbSBjb21tYW5kICovCiAJCQlnb3RvIG91dGFoZXJlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvaW5ub2tvbS9sb3dsZXZlbF9pbml0LlMgYi9ib2FyZC9pbm5va29tL2xvd2xldmVsX2luaXQuUwppbmRleCA0YzlmMTBmLi45ODkyNDMwIDEwMDY0NAotLS0gYS9ib2FyZC9pbm5va29tL2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC9pbm5va29tL2xvd2xldmVsX2luaXQuUwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPHZlcnNpb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogCi1EUkFNX1NJWkU6ICAubG9uZyAgIENGR19EUkFNX1NJWkUKK0RSQU1fU0laRTogIC5sb25nICAgQ09ORklHX1NZU19EUkFNX1NJWkUKIAogLyogd2FpdCBmb3IgY29wcm9jZXNzb3Igd3JpdGUgY29tcGxldGUgKi8KICAgIC5tYWNybyBDUFdBSVQgcmVnCkBAIC01NCw3MSArNTQsNzEgQEAKIAkvKiBTZXQgdXAgR1BJTyBwaW5zIGZpcnN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIAlsZHIJCXIwLAk9R1BTUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQU1IwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQU1IwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQU1IxCi0JbGRyCQlyMSwJPUNGR19HUFNSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFNSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUFNSMgotCWxkcgkJcjEsCT1DRkdfR1BTUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BTUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BDUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQQ1IwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQQ1IwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQQ1IxCi0JbGRyCQlyMSwJPUNGR19HUENSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUENSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUENSMgotCWxkcgkJcjEsCT1DRkdfR1BDUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BDUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BEUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQRFIwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQRFIwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQRFIxCi0JbGRyCQlyMSwJPUNGR19HUERSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUERSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUERSMgotCWxkcgkJcjEsCT1DRkdfR1BEUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BEUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjBfTAotCWxkcgkJcjEsCT1DRkdfR0FGUjBfTF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMF9MX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIwX1UKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIwX1VfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjBfVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMV9MCi0JbGRyCQlyMSwJPUNGR19HQUZSMV9MX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIxX0xfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjFfVQotCWxkcgkJcjEsCT1DRkdfR0FGUjFfVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMV9VX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIyX0wKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIyX0xfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjJfTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMl9VCi0JbGRyCQlyMSwJPUNGR19HQUZSMl9VX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIyX1VfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJcjAsCT1QU1NSCQkvKiBlbmFibGUgR1BJTyBwaW5zICovCi0JbGRyCQlyMSwJPUNGR19QU1NSX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX1BTU1JfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIC8qCWxkcglyMywJPU1TQzEJCS8gIGxvdyAtIGJhbmsgMiBMdWJib2NrIFJlZ2lzdGVycyAvIFNSQU0gKi8KLS8qCWxkcglyMiwJPUNGR19NU0MxX1ZBTAkvICBoaWdoIC0gYmFuayAzIEV0aGVybmV0IENvbnRyb2xsZXIgKi8KKy8qCWxkcglyMiwJPUNPTkZJR19TWVNfTVNDMV9WQUwJLyAgaGlnaCAtIGJhbmsgMyBFdGhlcm5ldCBDb250cm9sbGVyICovCiAvKglzdHIJcjIsCVtyM10JCS8gIG5lZWQgdG8gc2V0IE1TQzEgYmVmb3JlIHRyeWluZyB0byB3cml0ZSB0byB0aGUgSEVYIExFRHMgKi8KIC8qCWxkcglyMiwJW3IzXQkJLyAgbmVlZCB0byByZWFkIGl0IGJhY2sgdG8gbWFrZSBzdXJlIHRoZSB2YWx1ZSBsYXRjaGVzIChzZWUgTVNDIHNlY3Rpb24gb2YgbWFudWFsKSAqLwogLyogKi8KQEAgLTE2OCwxNyArMTY4LDE3IEBACiAJLyogTVNDIHJlZ2lzdGVyczogdGltaW5nLCBidXMgd2lkdGgsIG1lbSB0eXBlICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAJLyogTVNDMDogbkNTKDAsMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICAgPUNGR19NU0MwX1ZBTAorCWxkciAgICAgcjIsICAgPUNPTkZJR19TWVNfTVNDMF9WQUwKIAlzdHIgICAgIHIyLCAgIFtyMSwgI01TQzBfT0ZGU0VUXQogCWxkciAgICAgcjIsICAgW3IxLCAjTVNDMF9PRkZTRVRdCS8qIHJlYWQgYmFjayB0byBlbnN1cmUgICAgICAqLwogCQkJCQkJLyogdGhhdCBkYXRhIGxhdGNoZXMgICAgICAgICovCiAJLyogTVNDMTogbkNTKDIsMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01TQzFfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01TQzFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01TQzFfT0ZGU0VUXQogCWxkciAgICAgcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAogCS8qIE1TQzI6IG5DUyg0LDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NU0MyX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NU0MyX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNU0MyX09GRlNFVF0KIAlsZHIgICAgIHIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAKQEAgLTE4NywzNyArMTg3LDM3IEBACiAJLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAJLyogTUVDUjogTWVtb3J5IEV4cGFuc2lvbiBDYXJkIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01FQ1JfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01FQ1JfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01FQ1JfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUVDUl9PRkZTRVRdCiAKIAkvKiBNQ01FTTA6IENhcmQgSW50ZXJmYWNlIHNsb3QgMCB0aW1pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNNRU0wX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ01FTTBfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DTUVNMF9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ01FTTBfT0ZGU0VUXQogCiAJLyogTUNNRU0xOiBDYXJkIEludGVyZmFjZSBzbG90IDEgdGltaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DTUVNMV9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNNRU0xX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNQ01FTTFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNNRU0xX09GRlNFVF0KIAogCS8qIE1DQVRUMDogQ2FyZCBJbnRlcmZhY2UgQXR0cmlidXRlIFNwYWNlIFRpbWluZywgc2xvdCAwICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ0FUVDBfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01DQVRUMF9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNBVFQwX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DQVRUMF9PRkZTRVRdCiAKIAkvKiBNQ0FUVDE6IENhcmQgSW50ZXJmYWNlIEF0dHJpYnV0ZSBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNBVFQxX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0FUVDFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DQVRUMV9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ0FUVDFfT0ZGU0VUXQogCiAJLyogTUNJTzA6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMCAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DSU8wX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0lPMF9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNJTzBfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNJTzBfT0ZGU0VUXQogCiAJLyogTUNJTzE6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DSU8xX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0lPMV9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNJTzFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNJTzFfT0ZGU0VUXQogCkBAIC0yMzksNyArMjM5LDcgQEAKIAkvKiBCZWZvcmUgYWNjZXNzaW5nIE1EUkVGUiB3ZSBuZWVkIGEgdmFsaWQgRFJJIGZpZWxkLCBzbyB3ZSBzZXQgICAgICovCiAJLyogdGhpcyB0byBwb3dlciBvbiBkZWZhdWx0cyArIERSSSBmaWVsZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCi0JbGRyCXIzLAk9Q0ZHX01EUkVGUl9WQUwKKwlsZHIJcjMsCT1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAlsZHIJcjIsCT0weEZGRgogCWFuZAlyMywJcjMsIHIyCiAJbGRyCXI0LAk9MHgwM2NhNDAwMApAQCAtMjY5LDcgKzI2OSw3IEBACiAJLyogU3RlcCA0YTogYXNzZXJ0IE1EUkVGUjpLP1JVTiBhbmQgY29uZmlndXJlICAgICAgICAgICAgICAgICAgICAgICAqLwogCS8qICAgICAgICAgIE1EUkVGUjpLMURCMiBhbmQgTURSRUZSOksyREIyIGFzIGRlc2lyZWQuICAgICAgICAgICAgICAgKi8KIAotCWxkcglyNCwJPUNGR19NRFJFRlJfVkFMCisJbGRyCXI0LAk9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAJc3RyCXI0LAlbcjEsICNNRFJFRlJfT0ZGU0VUXQkvKiB3cml0ZSBiYWNrIE1EUkVGUiAgICAgICAgKi8KIAlsZHIJcjQsCVtyMSwgI01EUkVGUl9PRkZTRVRdCiAKQEAgLTI5Miw3ICsyOTIsNyBAQAogCS8qIFN0ZXAgNGQ6IHdyaXRlIE1EQ05GRyB3aXRoIE1EQ05GRzpERXggZGVhc3NlcnRlZCAoc2V0IHRvIDApLCB0byAgKi8KIAkvKiAgICAgICAgICBjb25maWd1cmUgYnV0IG5vdCBlbmFibGUgZWFjaCBTRFJBTSBwYXJ0aXRpb24gcGFpci4gICAgICovCiAKLQlsZHIJcjQsCT1DRkdfTURDTkZHX1ZBTAorCWxkcglyNCwJPUNPTkZJR19TWVNfTURDTkZHX1ZBTAogCWJpYwlyNCwJcjQsCSMoTURDTkZHX0RFMHxNRENORkdfREUxKQogCiAJc3RyICAgICByNCwgICAgIFtyMSwgI01EQ05GR19PRkZTRVRdCS8qIHdyaXRlIGJhY2sgTURDTkZHICAgICAgICAqLwpAQCAtMzI1LDcgKzMyNSw3IEBACiAJLyogICAgICAgICAgSmFuIDIwMDMsIEVycmF0YSAjMTE2LCBwYWdlIDMwLiAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAKLQlsZHIJcjMsCT1DRkdfRFJBTV9CQVNFCisJbGRyCXIzLAk9Q09ORklHX1NZU19EUkFNX0JBU0UKIAlzdHIJcjIsIFtyM10KIAlzdHIJcjIsIFtyM10KIAlzdHIJcjIsIFtyM10KQEAgLTM0NSw3ICszNDUsNyBAQAogCiAJLyogU3RlcCA0aDogV3JpdGUgTURNUlMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCi0JbGRyICAgICByMiwgID1DRkdfTURNUlNfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01ETVJTX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNRE1SU19PRkZTRVRdCiAKIApkaWZmIC0tZ2l0IGEvYm9hcmQvaW50ZWdyYXRvcmFwL2ZsYXNoLmMgYi9ib2FyZC9pbnRlZ3JhdG9yYXAvZmxhc2guYwppbmRleCBiMTIwZDYzLi4wNDkyYmU3IDEwMDY0NAotLS0gYS9ib2FyZC9pbnRlZ3JhdG9yYXAvZmxhc2guYworKysgYi9ib2FyZC9pbnRlZ3JhdG9yYXAvZmxhc2guYwpAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2J5dGVvcmRlci9zd2FiLmg+CiAKICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUJMHgwMDAyMDAwMAkvKiAyNTYgS0Igc2VjdG9ycyAoeDIpICovCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyogQm9hcmQgc3VwcG9ydCBmb3IgMSBvciAyIGZsYXNoIGRldmljZXMgKi8KICN1bmRlZiBGTEFTSF9QT1JUX1dJRFRIMzIKQEAgLTg4LDcgKzg4LDcgQEAKIHsKIAlpbnQgaTsKIAl1bG9uZyBzaXplID0gMDsKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDoKIAkJCWZsYXNoX2dldF9zaXplICgoRlBXICopIFBIWVNfRkxBU0hfMSwgJmZsYXNoX2luZm9baV0pOwpAQCAtMTA0LDggKzEwNCw4IEBACiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLAotCQkJQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdKTsKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOwogCiAJcmV0dXJuIHNpemU7CiB9CkBAIC0yMjMsMTAgKzIyMywxMCBAQAogCQlicmVhazsKIAl9CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmICgiKiogRVJST1I6IHNlY3RvciBjb3VudCAlZCA+IG1heCAoJWQpICoqXG4iLAotCQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0zMTgsNyArMzE4LDcgQEAKIAkJCQkqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPQogCQkJCShGUFcpIDB4MDA4MDAwODApIHsKIAkJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPgotCQkJCQlDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCQlDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCS8qIHN1c3BlbmQgZXJhc2UgICAgICovCiAJCQkJCSphZGRyID0gKEZQVykgMHgwMEIwMDBCMDsKQEAgLTQ1NCw3ICs0NTQsNyBAQAogCiAJLyogd2FpdCB3aGlsZSBwb2xsaW5nIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2ludGVncmF0b3JhcC9pbnRlZ3JhdG9yYXAuYyBiL2JvYXJkL2ludGVncmF0b3JhcC9pbnRlZ3JhdG9yYXAuYwppbmRleCA2ODdjNDg2Li5kZGFjYWJiIDEwMDY0NAotLS0gYS9ib2FyZC9pbnRlZ3JhdG9yYXAvaW50ZWdyYXRvcmFwLmMKKysrIGIvYm9hcmQvaW50ZWdyYXRvcmFwL2ludGVncmF0b3JhcC5jCkBAIC01MTksNyArNTE5LDcgQEAKICAqIGNhbiBiZSBkaXZpZGVkIGJ5IDE2IG9yIDI1NgogICogYW5kIGlzIGEgMTYtYml0IGNvdW50ZXIKICAqLwotLyogVS1Cb290IGV4cGVjdHMgYSAzMiBiaXQgdGltZXIgcnVubmluZyBhdCBDRkdfSFoqLworLyogVS1Cb290IGV4cGVjdHMgYSAzMiBiaXQgdGltZXIgcnVubmluZyBhdCBDT05GSUdfU1lTX0haKi8KIHN0YXRpYyB1bG9uZyB0aW1lc3RhbXA7CQkvKiBVLUJvb3QgdGlja3Mgc2luY2Ugc3RhcnR1cAkgICAgICAqLwogc3RhdGljIHVsb25nIHRvdGFsX2NvdW50ID0gMDsJLyogVG90YWwgdGltZXIgY291bnQJCSAgICAgICovCiBzdGF0aWMgdWxvbmcgbGFzdGRlYzsJCS8qIFRpbWVyIHJlYWRpbmcgYXQgbGFzdCBjYWxsCSAgICAgICovCkBAIC01MjcsMTIgKzUyNywxMiBAQAogc3RhdGljIHVsb25nIGRpdl90aW1lcgkgPSAxOwkvKiBEaXZpc29yIHRvIGNvbnZlcnQgdGltZXIgcmVhZGluZwogCQkJCSAqIGNoYW5nZSB0byBVLUJvb3QgdGlja3MKIAkJCQkgKi8KLS8qIENGR19IWiA9IENGR19IWl9DTE9DSy8oZGl2X2Nsb2NrICogZGl2X3RpbWVyKSAqLworLyogQ09ORklHX1NZU19IWiA9IENPTkZJR19TWVNfSFpfQ0xPQ0svKGRpdl9jbG9jayAqIGRpdl90aW1lcikgKi8KIAogI2RlZmluZSBUSU1FUl9MT0FEX1ZBTCAweDAwMDBGRkZGTAotI2RlZmluZSBSRUFEX1RJTUVSICgoKih2b2xhdGlsZSB1bG9uZyAqKShDRkdfVElNRVJCQVNFKzQpKSAmIDB4MDAwMEZGRkZMKQorI2RlZmluZSBSRUFEX1RJTUVSICgoKih2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX1RJTUVSQkFTRSs0KSkgJiAweDAwMDBGRkZGTCkKIAotLyogYWxsIGZ1bmN0aW9uIHJldHVybiB2YWx1ZXMgaW4gVS1Cb290IHRpY2tzIGkuZS4gKDEvQ0ZHX0haKSBzZWMKKy8qIGFsbCBmdW5jdGlvbiByZXR1cm4gdmFsdWVzIGluIFUtQm9vdCB0aWNrcyBpLmUuICgxL0NPTkZJR19TWVNfSFopIHNlYwogICogIC0gdW5sZXNzIG90aGVyd2lzZSBzdGF0ZWQKICAqLwogCkBAIC01NDMsNyArNTQzLDcgQEAKIGludCBpbnRlcnJ1cHRfaW5pdCAodm9pZCkKIHsKIAkvKiBMb2FkIHRpbWVyIHdpdGggaW5pdGlhbCB2YWx1ZSAqLwotCSoodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX1RJTUVSQkFTRSArIDApID0gVElNRVJfTE9BRF9WQUw7CisJKih2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX1RJTUVSQkFTRSArIDApID0gVElNRVJfTE9BRF9WQUw7CiAJLyogU2V0IHRpbWVyIHRvIGJlCiAJICoJZW5hYmxlZAkJICAxCiAJICoJZnJlZS1ydW5uaW5nCSAgMApAQCAtNTUxLDEyICs1NTEsMTIgQEAKIAkgKglkaXZpZGVyIDI1NgkgMTAKIAkgKglYWAkJIDAwCiAJICovCi0JKih2b2xhdGlsZSB1bG9uZyAqKShDRkdfVElNRVJCQVNFICsgOCkgPSAweDAwMDAwMDg4OworCSoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UgKyA4KSA9IDB4MDAwMDAwODg7CiAJdG90YWxfY291bnQgPSAwOwogCS8qIGluaXQgdGhlIHRpbWVzdGFtcCBhbmQgbGFzdGRlYyB2YWx1ZSAqLwogCXJlc2V0X3RpbWVyX21hc2tlZCgpOwogCi0JZGl2X3RpbWVyICA9IENGR19IWl9DTE9DSyAvIENGR19IWjsKKwlkaXZfdGltZXIgID0gQ09ORklHX1NZU19IWl9DTE9DSyAvIENPTkZJR19TWVNfSFo7CiAJZGl2X3RpbWVyIC89IGRpdl9jbG9jazsKIAogCXJldHVybiAoMCk7CkBAIC01ODgsNyArNTg4LDcgQEAKIAl1bG9uZyB0bW8sIHRtcDsKIAogCS8qIENvbnZlcnQgdG8gVS1Cb290IHRpY2tzICovCi0JdG1vICA9IHVzZWMgKiBDRkdfSFo7CisJdG1vICA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCXRtbyAvPSAoMTAwMDAwMEwpOwogCiAJdG1wICA9IGdldF90aW1lcl9tYXNrZWQoKTsJLyogZ2V0IGN1cnJlbnQgdGltZXN0YW1wICovCkBAIC02NDcsNyArNjQ3LDcgQEAKICAqLwogdWxvbmcgZ2V0X3RiY2xrICh2b2lkKQogewotCXJldHVybiBDRkdfSFpfQ0xPQ0svZGl2X2Nsb2NrOworCXJldHVybiBDT05GSUdfU1lTX0haX0NMT0NLL2Rpdl9jbG9jazsKIH0KIAogaW50IGJvYXJkX2V0aF9pbml0KGJkX3QgKmJpcykKZGlmZiAtLWdpdCBhL2JvYXJkL2ludGVncmF0b3JjcC9mbGFzaC5jIGIvYm9hcmQvaW50ZWdyYXRvcmNwL2ZsYXNoLmMKaW5kZXggN2VmZmVhNi4uNTA1OWRhZSAxMDA2NDQKLS0tIGEvYm9hcmQvaW50ZWdyYXRvcmNwL2ZsYXNoLmMKKysrIGIvYm9hcmQvaW50ZWdyYXRvcmNwL2ZsYXNoLmMKQEAgLTM3LDcgKzM3LDcgQEAKICNkZWZpbmUgREVCVUcKIAogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDQwMDAwCS8qIDI1NiBLQiBzZWN0b3JzICh4MikgKi8KLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAvKiBCb2FyZCBzdXBwb3J0IGZvciAxIG9yIDIgZmxhc2ggZGV2aWNlcyAqLwogI2RlZmluZSBGTEFTSF9QT1JUX1dJRFRIMzIKQEAgLTEwNiwyMyArMTA2LDIzIEBACiAJZWxzZQogCQluYmFua3MgPSAxOwogCi0JaWYgKG5iYW5rcyA+IENGR19NQVhfRkxBU0hfQkFOS1MpCi0JCW5iYW5rcyA9IENGR19NQVhfRkxBU0hfQkFOS1M7CisJaWYgKG5iYW5rcyA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKQorCQluYmFua3MgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsKIAogCS8qIEVuYWJsZSBmbGFzaCB3cml0ZSAqLwogCWNwY3JbMV0gfD0gMzsKIAogCWZvciAoaSA9IDA7IGkgPCBuYmFua3M7IGkrKykgewotCQlmbGFzaF9nZXRfc2l6ZSAoKEZQVyAqKShDRkdfRkxBU0hfQkFTRSArIHNpemUpLCAmZmxhc2hfaW5mb1tpXSk7Ci0JCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSArIHNpemUsICZmbGFzaF9pbmZvW2ldKTsKKwkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZSksICZmbGFzaF9pbmZvW2ldKTsKKwkJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemUsICZmbGFzaF9pbmZvW2ldKTsKIAkJc2l6ZSArPSBmbGFzaF9pbmZvW2ldLnNpemU7CiAJfQogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOworCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC0yMjgsOCArMjI4LDggQEAKIAllbHNlCiAJCW5zZWN0cyA9IDY0OwogCi0JaWYgKG5zZWN0cyA+IENGR19NQVhfRkxBU0hfU0VDVCkKLQkJbnNlY3RzID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCWlmIChuc2VjdHMgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKQorCQluc2VjdHMgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCiAJLyogV3JpdGUgYXV0byBzZWxlY3QgY29tbWFuZDogcmVhZCBNYW51ZmFjdHVyZXIgSUQgKi8KIAlhZGRyWzB4NTU1NV0gPSAoRlBXKSAweDAwQUEwMEFBOwpAQCAtMjgwLDEwICsyODAsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMzA4LDcgKzMwOCw3IEBACiAKIAlyZXNldF90aW1lcl9tYXNrZWQoKTsKIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKTB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZigiVGltZW91dCIpOwogCQkJYnJlYWs7CiAJCX0KQEAgLTM4NCw3ICszODQsNyBAQAogCQkJCWVuYWJsZV9pbnRlcnJ1cHRzKCk7CiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJKmFkZHIgPSAoRlBXKTB4MDA3MDAwNzA7CiAJCQkJCXN0YXR1cyA9ICphZGRyOwogCQkJCQlpZiAoKHN0YXR1cyAmIChGUFcpIDB4MDA0MDAwNDApID09IChGUFcpIDB4MDA0MDAwNDApIHsKQEAgLTUzOCw3ICs1MzgsNyBAQAogCiAJLyogd2FpdCB3aGlsZSBwb2xsaW5nIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKICNpZmRlZiBERUJVRwogCQkJKmFkZHIgPSAoRlBXKSAweDAwNzAwMDcwOwogCQkJc3RhdHVzID0gKmFkZHI7CmRpZmYgLS1naXQgYS9ib2FyZC9pbnRlZ3JhdG9yY3AvaW50ZWdyYXRvcmNwLmMgYi9ib2FyZC9pbnRlZ3JhdG9yY3AvaW50ZWdyYXRvcmNwLmMKaW5kZXggMjIwNTEzZi4uNzI2MjljZSAxMDA2NDQKLS0tIGEvYm9hcmQvaW50ZWdyYXRvcmNwL2ludGVncmF0b3JjcC5jCisrKyBiL2JvYXJkL2ludGVncmF0b3JjcC9pbnRlZ3JhdG9yY3AuYwpAQCAtMTQzLDcgKzE0Myw3IEBACiAgKiBjYW4gYmUgZGl2aWRlZCBieSAxNiBvciAyNTYKICAqIGFuZCBjYW4gYmUgc2V0IHVwIGFzIGEgMzItYml0IHRpbWVyCiAgKi8KLS8qIFUtQm9vdCBleHBlY3RzIGEgMzIgYml0IHRpbWVyLCBydW5uaW5nIGF0IENGR19IWiAqLworLyogVS1Cb290IGV4cGVjdHMgYSAzMiBiaXQgdGltZXIsIHJ1bm5pbmcgYXQgQ09ORklHX1NZU19IWiAqLwogLyogS2VlcCB0b3RhbCB0aW1lciBjb3VudCB0byBhdm9pZCBsb3NpbmcgZGVjcmVtZW50cyA8IGRpdl90aW1lciAqLwogc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbF9jb3VudCA9IDA7CiBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIGxhc3RkZWM7CSAvKiBUaW1lciByZWFkaW5nIGF0IGxhc3QgY2FsbAkgICAqLwpAQCAtMTUxLDEzICsxNTEsMTMgQEAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgZGl2X3RpbWVyID0gMTsgLyogRGl2aXNvciB0byBjb252ZXJ0IHRpbWVyIHJlYWRpbmcKIAkJCQkJICAqIGNoYW5nZSB0byBVLUJvb3QgdGlja3MKIAkJCQkJICAqLwotLyogQ0ZHX0haID0gQ0ZHX0haX0NMT0NLLyhkaXZfY2xvY2sgKiBkaXZfdGltZXIpICovCisvKiBDT05GSUdfU1lTX0haID0gQ09ORklHX1NZU19IWl9DTE9DSy8oZGl2X2Nsb2NrICogZGl2X3RpbWVyKSAqLwogc3RhdGljIHVsb25nIHRpbWVzdGFtcDsJCS8qIFUtQm9vdCB0aWNrcyBzaW5jZSBzdGFydHVwCSAgICAgICovCiAKICNkZWZpbmUgVElNRVJfTE9BRF9WQUwgKCh1bG9uZykweEZGRkZGRkZGKQotI2RlZmluZSBSRUFEX1RJTUVSICgqKHZvbGF0aWxlIHVsb25nICopKENGR19USU1FUkJBU0UrNCkpCisjZGVmaW5lIFJFQURfVElNRVIgKCoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UrNCkpCiAKLS8qIGFsbCBmdW5jdGlvbiByZXR1cm4gdmFsdWVzIGluIFUtQm9vdCB0aWNrcyBpLmUuICgxL0NGR19IWikgc2VjCisvKiBhbGwgZnVuY3Rpb24gcmV0dXJuIHZhbHVlcyBpbiBVLUJvb3QgdGlja3MgaS5lLiAoMS9DT05GSUdfU1lTX0haKSBzZWMKICAqICAtIHVubGVzcyBvdGhlcndpc2Ugc3RhdGVkCiAgKi8KIApAQCAtMTY2LDcgKzE2Niw3IEBACiBpbnQgaW50ZXJydXB0X2luaXQgKHZvaWQpCiB7CiAJLyogTG9hZCB0aW1lciB3aXRoIGluaXRpYWwgdmFsdWUgKi8KLQkqKHZvbGF0aWxlIHVsb25nICopKENGR19USU1FUkJBU0UgKyAwKSA9IFRJTUVSX0xPQURfVkFMOworCSoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UgKyAwKSA9IFRJTUVSX0xPQURfVkFMOwogCS8qIFNldCB0aW1lciB0byBiZQogCSAqCWVuYWJsZWQJCSAgMQogCSAqCXBlcmlvZGljCSAgMQpAQCAtMTc2LDEyICsxNzYsMTIgQEAKIAkgKgkzMiBiaXQJCSAgMQogCSAqCXdyYXBwaW5nCSAgMAogCSAqLwotCSoodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX1RJTUVSQkFTRSArIDgpID0gMHgwMDAwMDBDMjsKKwkqKHZvbGF0aWxlIHVsb25nICopKENPTkZJR19TWVNfVElNRVJCQVNFICsgOCkgPSAweDAwMDAwMEMyOwogCS8qIGluaXQgdGhlIHRpbWVzdGFtcCAqLwogCXRvdGFsX2NvdW50ID0gMFVMTDsKIAlyZXNldF90aW1lcl9tYXNrZWQoKTsKIAotCWRpdl90aW1lciAgPSAodW5zaWduZWQgbG9uZyBsb25nKShDRkdfSFpfQ0xPQ0sgLyBDRkdfSFopOworCWRpdl90aW1lciAgPSAodW5zaWduZWQgbG9uZyBsb25nKShDT05GSUdfU1lTX0haX0NMT0NLIC8gQ09ORklHX1NZU19IWik7CiAJZGl2X3RpbWVyIC89IGRpdl9jbG9jazsKIAogCXJldHVybiAoMCk7CkBAIC0yMTIsNyArMjEyLDcgQEAKIAl1bG9uZyB0bW8sIHRtcDsKIAogCS8qIENvbnZlcnQgdG8gVS1Cb290IHRpY2tzICovCi0JdG1vICA9IHVzZWMgKiBDRkdfSFo7CisJdG1vICA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCXRtbyAvPSAoMTAwMDAwMEwpOwogCiAJdG1wICA9IGdldF90aW1lcl9tYXNrZWQoKTsJLyogZ2V0IGN1cnJlbnQgdGltZXN0YW1wICovCkBAIC0yNzUsNSArMjc1LDUgQEAKICAqLwogdWxvbmcgZ2V0X3RiY2xrICh2b2lkKQogewotCXJldHVybiAodWxvbmcpKCgodW5zaWduZWQgbG9uZyBsb25nKUNGR19IWl9DTE9DSykvZGl2X2Nsb2NrKTsKKwlyZXR1cm4gKHVsb25nKSgoKHVuc2lnbmVkIGxvbmcgbG9uZylDT05GSUdfU1lTX0haX0NMT0NLKS9kaXZfY2xvY2spOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvaXA4NjAvZmxhc2guYyBiL2JvYXJkL2lwODYwL2ZsYXNoLmMKaW5kZXggMTBhOTZjNS4uNjQ5MWFmMiAxMDA2NDQKLS0tIGEvYm9hcmQvaXA4NjAvZmxhc2guYworKysgYi9ib2FyZC9pcDg2MC9mbGFzaC5jCkBAIC0yNCwxMSArMjQsMTEgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC01MCw3ICs1MCw3IEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90CSppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QJKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90CSptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl2b2xhdGlsZSBpcDg2MF9iY3NyX3QJKmJjc3IgICA9IChpcDg2MF9iY3NyX3QgKilCQ1NSX0JBU0U7CiAJdW5zaWduZWQgbG9uZyBzaXplOwpAQCAtNjEsNyArNjEsNyBAQAogCSAqLwogCWJjc3ItPmJkX2N0cmwgfD0gQkRfQ1RSTF9GTFdFOwogCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTc1LDIyICs3NSwyMiBAQAogCX0KIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZSAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjEgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemUgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfYnIxID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfAogCQkJCShtZW1jdGwtPm1lbWNfYnIxICYgfihCUl9CQV9NU0spKTsKIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTMwOSw3ICszMDksNyBAQAogCQkJdWRlbGF5ICgxMDAwKTsKIAogCQkJd2hpbGUgKCgqYWRkciAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCSphZGRyID0gMHhGRkZGRkZGRjsJLyogcmVzZXQgYmFuayAqLwogCQkJCQlyZXR1cm4gMTsKQEAgLTQzNCw3ICs0MzQsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAlmbGFnICA9IDA7CiAJd2hpbGUgKCgoY3NyID0gKmFkZHIpICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlmbGFnID0gMTsKIAkJCWJyZWFrOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9pcDg2MC9pcDg2MC5jIGIvYm9hcmQvaXA4NjAvaXA4NjAuYwppbmRleCAzNzVjZDRkLi5lMmExODUxIDEwMDY0NAotLS0gYS9ib2FyZC9pcDg2MC9pcDg2MC5jCisrKyBiL2JvYXJkL2lwODYwL2lwODYwLmMKQEAgLTg3LDEyICs4NywxMiBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogaW50IGJvYXJkX2Vhcmx5X2luaXRfZih2b2lkKQogewotICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICB2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIC8qIGluaXQgQkNTUiBjaGlwc2VsZWN0IGxpbmUgZm9yIGlwODYwX2dldF9jbGtfZnJlcSgpIGFuZCBpcDg2MF9nZXRfZHJhbV9zaXplKCkgKi8KLSAgICBtZW1jdGwtPm1lbWNfb3I0ID0gQ0ZHX09SNDsKLSAgICBtZW1jdGwtPm1lbWNfYnI0ID0gQ0ZHX0JSNDsKKyAgICBtZW1jdGwtPm1lbWNfb3I0ID0gQ09ORklHX1NZU19PUjQ7CisgICAgbWVtY3RsLT5tZW1jX2JyNCA9IENPTkZJR19TWVNfQlI0OwogCiAgICAgcmV0dXJuIDA7CiB9CkBAIC0xMzksNyArMTM5LDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemU7CiAJdWxvbmcgcmVmcmVzaF92YWw7CkBAIC0xNjcsOCArMTY3LDggQEAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIGJhbmtzIDIgdG8gdGhlIFNEUkFNIGFkZHJlc3MKIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IyID0gQ0ZHX09SMjsKLQltZW1jdGwtPm1lbWNfYnIyID0gQ0ZHX0JSMjsKKwltZW1jdGwtPm1lbWNfb3IyID0gQ09ORklHX1NZU19PUjI7CisJbWVtY3RsLT5tZW1jX2JyMiA9IENPTkZJR19TWVNfQlIyOwogCiAJLyogSVA4NjAgYm9hcmRzIGhhdmUgb25seSBvbmUgYmFuayBTRFJBTSAqLwogCkBAIC0xOTcsNyArMTk3LDcgQEAKIAl1ZGVsYXkgKDEwMDApOwogCiAJbWVtY3RsLT5tZW1jX29yMiA9ICgoLXNpemUpICYgMHhGRkZGMDAwMCkgfCBTRFJBTV9USU1JTkc7Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfYnIyID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKIAogCXVkZWxheSAoMTAwMDApOwogCkBAIC0yMDUsMzQgKzIwNSwzNCBAQAogCSAqIEFsc28sIG1hcCBvdGhlciBtZW1vcnkgdG8gY29ycmVjdCBwb3NpdGlvbgogCSAqLwogCi0jaWYgKGRlZmluZWQoQ0ZHX09SMSkgJiYgZGVmaW5lZChDRkdfQlIxX1BSRUxJTSkpCi0JbWVtY3RsLT5tZW1jX29yMSA9IENGR19PUjE7Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjE7CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19PUjEpICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjFfUFJFTElNKSkKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjE7CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19PUjMpICYmIGRlZmluZWQoQ0ZHX0JSMykKLQltZW1jdGwtPm1lbWNfb3IzID0gQ0ZHX09SMzsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSMzsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IzKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlIzKQorCW1lbWN0bC0+bWVtY19vcjMgPSBDT05GSUdfU1lTX09SMzsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjM7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SNCkgJiYgZGVmaW5lZChDRkdfQlI0KQotCW1lbWN0bC0+bWVtY19vcjQgPSBDRkdfT1I0OwotCW1lbWN0bC0+bWVtY19icjQgPSBDRkdfQlI0OworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjQpICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjQpCisJbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfT1I0OworCW1lbWN0bC0+bWVtY19icjQgPSBDT05GSUdfU1lTX0JSNDsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfT1I1KSAmJiBkZWZpbmVkKENGR19CUjUpCi0JbWVtY3RsLT5tZW1jX29yNSA9IENGR19PUjU7Ci0JbWVtY3RsLT5tZW1jX2JyNSA9IENGR19CUjU7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX09SNSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSNSkKKwltZW1jdGwtPm1lbWNfb3I1ID0gQ09ORklHX1NZU19PUjU7CisJbWVtY3RsLT5tZW1jX2JyNSA9IENPTkZJR19TWVNfQlI1OwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19PUjYpICYmIGRlZmluZWQoQ0ZHX0JSNikKLQltZW1jdGwtPm1lbWNfb3I2ID0gQ0ZHX09SNjsKLQltZW1jdGwtPm1lbWNfYnI2ID0gQ0ZHX0JSNjsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1I2KSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlI2KQorCW1lbWN0bC0+bWVtY19vcjYgPSBDT05GSUdfU1lTX09SNjsKKwltZW1jdGwtPm1lbWNfYnI2ID0gQ09ORklHX1NZU19CUjY7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SNykgJiYgZGVmaW5lZChDRkdfQlI3KQotCW1lbWN0bC0+bWVtY19vcjcgPSBDRkdfT1I3OwotCW1lbWN0bC0+bWVtY19icjcgPSBDRkdfQlI3OworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjcpICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjcpCisJbWVtY3RsLT5tZW1jX29yNyA9IENPTkZJR19TWVNfT1I3OworCW1lbWN0bC0+bWVtY19icjcgPSBDT05GSUdfU1lTX0JSNzsKICNlbmRpZgogCiAJcmV0dXJuIChzaXplKTsKQEAgLTI1MSw3ICsyNTEsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpAQCAtMjYzLDcgKzI2Myw3IEBACiAKIHZvaWQgcmVzZXRfcGh5ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXVsb25nIG1hc2sgPSBQQl9FTkVUX1JFU0VUIHwgUEJfRU5FVF9KQUJEOwogCXVsb25nIHJlZzsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvaXBoYXNlNDUzOS9mbGFzaC5jIGIvYm9hcmQvaXBoYXNlNDUzOS9mbGFzaC5jCmluZGV4IDA5OGRjYzIuLjNkZmVlMWYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2lwaGFzZTQ1MzkvZmxhc2guYworKysgYi9ib2FyZC9pcGhhc2U0NTM5L2ZsYXNoLmMKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlIDxmbGFzaC5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogZXh0ZXJuIGludCBod2NfZmxhc2hfc2l6ZSh2b2lkKTsKIHN0YXRpYyB1bG9uZyBmbGFzaF9nZXRfc2l6ZSAodTMyIGFkZHIsIGZsYXNoX2luZm9fdCAqaW5mbyk7CkBAIC01MiwyNiArNTIsMjYgQEAKIAl1bnNpZ25lZCBpbnQgYmFuayA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gMDsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gMDsKIAl9CiAKIAkvKiBJbml0aWFsaXNlIHRoZSBCT09UIEZsYXNoICovCi0JaWYgKGJhbmsgPT0gQ0ZHX01BWF9GTEFTSF9CQU5LUykgeworCWlmIChiYW5rID09IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKSB7CiAJCXB1dHMgKCJXYXJuaW5nOiBub3QgYWxsIEZsYXNoZXMgYXJlIGluaXRpYWxpc2VkICEiKTsKIAkJcmV0dXJuIGZsYXNoX3NpemU7CiAJfQogCi0JYmFua19zaXplID0gZmxhc2hfZ2V0X3NpemUgKENGR19GTEFTSF9CQVNFLCBmbGFzaF9pbmZvICsgYmFuayk7CisJYmFua19zaXplID0gZmxhc2hfZ2V0X3NpemUgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgZmxhc2hfaW5mbyArIGJhbmspOwogCWlmIChiYW5rX3NpemUpIHsKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFICYmIFwKLSAgICBDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfTUFYX0ZMQVNIX1NJWkUKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiYgXAorICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19NQVhfRkxBU0hfU0laRQogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkgICAgICBmbGFzaF9pbmZvICsgYmFuayk7CiAjZW5kaWYKIApAQCAtODUsOCArODUsOCBAQAogCiAJCS8qIEhXQyBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgQ0ZHX0ZMQVNIX0JBU0UsCi0JCQkgICAgICBDRkdfRkxBU0hfQkFTRSArIDB4MTAwMDAgLSAxLAorCQkJICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgxMDAwMCAtIDEsCiAJCQkgICAgICBmbGFzaF9pbmZvICsgYmFuayk7CiAKIAkJZmxhc2hfc2l6ZSArPSBiYW5rX3NpemU7CkBAIC0xNDQsMTAgKzE0NCwxMCBAQAogCWNhc2UgQU1EX0lEX0xWMDMzQzoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0wMzNDOwogCQlpbmZvLT5zaXplID0gaHdjX2ZsYXNoX3NpemUoKTsKLQkJaWYgKGluZm8tPnNpemUgPiBDRkdfTUFYX0ZMQVNIX1NJWkUpIHsKKwkJaWYgKGluZm8tPnNpemUgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TSVpFKSB7CiAJCQlwcmludGYoIlUtQm9vdCBzdXBwb3J0cyBvbmx5ICVkIE1CXG4iLAotCQkJICAgICAgIENGR19NQVhfRkxBU0hfU0laRSk7Ci0JCQlpbmZvLT5zaXplID0gQ0ZHX01BWF9GTEFTSF9TSVpFOworCQkJICAgICAgIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NJWkUpOworCQkJaW5mby0+c2l6ZSA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NJWkU7CiAJCX0KIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gaW5mby0+c2l6ZSAvIDB4MTAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiA0IE1CCQkqLwpAQCAtMjgxLDcgKzI4MSw3IEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gaW5mby0+c3RhcnRbbF9zZWN0XTsKIAl3aGlsZSAoKGluOChhZGRyKSAmIDB4ODApICE9IDB4ODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTQyMSw3ICs0MjEsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKChpbjMyKGRlc3QpICYgMHg4MDgwODA4MCkgIT0gKGRhdGEgJiAweDgwODA4MDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJCWlvYmFycmllcl9ydygpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvaXBoYXNlNDUzOS9pcGhhc2U0NTM5LmMgYi9ib2FyZC9pcGhhc2U0NTM5L2lwaGFzZTQ1MzkuYwppbmRleCBlNWQwMjU0Li43ZmVjMmNjIDEwMDY0NAotLS0gYS9ib2FyZC9pcGhhc2U0NTM5L2lwaGFzZTQ1MzkuYworKysgYi9ib2FyZC9pcGhhc2U0NTM5L2lwaGFzZTQ1MzkuYwpAQCAtMTk1LDE2ICsxOTUsMTYgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl2b2xhdGlsZSB1Y2hhciAqYmFzZTsKIAl1bG9uZyBtYXhzaXplOwogCWludCBpOwogCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAlpbW1hcC0+aW1fc2l1X2NvbmYuc2NfcHBjX2FjciA9IDB4MDAwMDAwMjY7CiAJaW1tYXAtPmltX3NpdV9jb25mLnNjX3BwY19hbHJoID0gMHgwMTI3NjM0NTsKIAlpbW1hcC0+aW1fc2l1X2NvbmYuc2NfcHBjX2FscmwgPSAweDg5QUJDREVGOwpAQCAtMjE3LDcgKzIxNyw3IEBACiAJLyogSW5pdCBNYWluIFNEUkFNICovCiAjZGVmaW5lIE9QX1ZBTFVFICAgMHg0MDRBMjQxQQogI2RlZmluZSBPUF9WQUxVRV9NIChPUF9WQUxVRSAmIDB4ODdGRkZGRkYpOwotCWJhc2UgPSAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0U7CisJYmFzZSA9ICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAJbWVtY3RsLT5tZW1jX3BzZG1yID0gMHgyODAwMDAwMCB8IE9QX1ZBTFVFX007CiAJKmJhc2UgPSAweEZGOwogCW1lbWN0bC0+bWVtY19wc2RtciA9IDB4MDgwMDAwMDAgfCBPUF9WQUxVRV9NOwpkaWZmIC0tZ2l0IGEvYm9hcmQvaXNwYW4vaXNwYW4uYyBiL2JvYXJkL2lzcGFuL2lzcGFuLmMKaW5kZXggMTJmYjkxZi4uOTI1NGUwYSAxMDA2NDQKLS0tIGEvYm9hcmQvaXNwYW4vaXNwYW4uYworKysgYi9ib2FyZC9pc3Bhbi9pc3Bhbi5jCkBAIC0zOSwzMSArMzksMzEgQEAKICAqIGFjY29yZGluZyB0byB0aGUgZml2ZSB2YWx1ZXMgcG9kci9wZGlyL3BwYXIvcHNvci9wZGF0IGZvciB0aGF0IGVudHJ5CiAgKi8KIAotI2RlZmluZSBDRkdfRkNDMSAoQ09ORklHX0VUSEVSX0lOREVYID09IDEpCi0jZGVmaW5lIENGR19GQ0MyIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMikKLSNkZWZpbmUgQ0ZHX0ZDQzMgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAzKQorI2RlZmluZSBDT05GSUdfU1lTX0ZDQzEgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0ZDQzIgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAyKQorI2RlZmluZSBDT05GSUdfU1lTX0ZDQzMgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAzKQogCiBjb25zdCBpb3BfY29uZl90IGlvcF9jb25mX3RhYls0XVszMl0gPSB7CiAgICAgLyogUG9ydCBBICovCiAgICAgewkvKgkgICAgICBjb25mICAgICAgcHBhciBwc29yIHBkaXIgcG9kciBwZGF0ICovCi0JLyogUEEzMSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBDT0wgICAqLwotCS8qIFBBMzAgKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgQ1JTICAgKi8KLQkvKiBQQTI5ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFRYX0VSICovCi0JLyogUEEyOCAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUWF9FTiAqLwotCS8qIFBBMjcgKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUlhfRFYgKi8KLQkvKiBQQTI2ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJYX0VSICovCisJLyogUEEzMSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgQ09MICAgKi8KKwkvKiBQQTMwICovIHsgQ09ORklHX1NZU19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBDUlMgICAqLworCS8qIFBBMjkgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFRYX0VSICovCisJLyogUEEyOCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVFhfRU4gKi8KKwkvKiBQQTI3ICovIHsgQ09ORklHX1NZU19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBSWF9EViAqLworCS8qIFBBMjYgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJYX0VSICovCiAJLyogUEEyNSAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTI1ICovCiAJLyogUEEyNCAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTI0ICovCiAJLyogUEEyMyAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTIzICovCiAJLyogUEEyMiAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTIyICovCi0JLyogUEEyMSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUeERbM10gKi8KLQkvKiBQQTIwICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFsyXSAqLwotCS8qIFBBMTkgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzFdICovCi0JLyogUEExOCAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUeERbMF0gKi8KLQkvKiBQQTE3ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFswXSAqLwotCS8qIFBBMTYgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzFdICovCi0JLyogUEExNSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBSeERbMl0gKi8KLQkvKiBQQTE0ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFszXSAqLworCS8qIFBBMjEgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFszXSAqLworCS8qIFBBMjAgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFsyXSAqLworCS8qIFBBMTkgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFsxXSAqLworCS8qIFBBMTggKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFswXSAqLworCS8qIFBBMTcgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFswXSAqLworCS8qIFBBMTYgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFsxXSAqLworCS8qIFBBMTUgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFsyXSAqLworCS8qIFBBMTQgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFszXSAqLwogCS8qIFBBMTMgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEExMyAqLwogCS8qIFBBMTIgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEExMiAqLwogCS8qIFBBMTEgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEExMSAqLwpAQCAtODIsMzQgKzgyLDM0IEBACiAKICAgICAvKiBQb3J0IEIgKi8KICAgICB7ICAgLyoJICAgICAgY29uZiAgICAgIHBwYXIgcHNvciBwZGlyIHBvZHIgcGRhdCAqLwotCS8qIFBCMzEgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRVIgICovCi0JLyogUEIzMCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9EViAgKi8KLQkvKiBQQjI5ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFRYX0VOICAqLwotCS8qIFBCMjggKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUlhfRVIgICovCi0JLyogUEIyNyAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBDT0wgICAgKi8KLQkvKiBQQjI2ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIENSUyAgICAqLwotCS8qIFBCMjUgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzNdICovCi0JLyogUEIyNCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMl0gKi8KLQkvKiBQQjIzICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFsxXSAqLwotCS8qIFBCMjIgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzBdICovCi0JLyogUEIyMSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMF0gKi8KLQkvKiBQQjIwICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFsxXSAqLwotCS8qIFBCMTkgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzJdICovCi0JLyogUEIxOCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbM10gKi8KLQkvKiBQQjE3ICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzMgTUlJIFJYX0RWICAqLwotCS8qIFBCMTYgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUlhfRVIgICovCi0JLyogUEIxNSAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MzIE1JSSBUWF9FUiAgKi8KLQkvKiBQQjE0ICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzMgTUlJIFRYX0VOICAqLwotCS8qIFBCMTMgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgQ09MICAgICovCi0JLyogUEIxMiAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzIE1JSSBDUlMgICAgKi8KLQkvKiBQQjExICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzMgTUlJIFJ4RFszXSAqLwotCS8qIFBCMTAgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUnhEWzJdICovCi0JLyogUEI5ICAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzIE1JSSBSeERbMV0gKi8KLQkvKiBQQjggICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzMgTUlJIFJ4RFswXSAqLwotCS8qIFBCNyAgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVHhEWzBdICovCi0JLyogUEI2ICAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MzIE1JSSBUeERbMV0gKi8KLQkvKiBQQjUgICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzMgTUlJIFR4RFsyXSAqLwotCS8qIFBCNCAgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVHhEWzNdICovCisJLyogUEIzMSAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRVIgICovCisJLyogUEIzMCAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUlhfRFYgICovCisJLyogUEIyOSAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRU4gICovCisJLyogUEIyOCAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUlhfRVIgICovCisJLyogUEIyNyAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgQ09MICAgICovCisJLyogUEIyNiAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgQ1JTICAgICovCisJLyogUEIyNSAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzNdICovCisJLyogUEIyNCAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzJdICovCisJLyogUEIyMyAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzFdICovCisJLyogUEIyMiAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzBdICovCisJLyogUEIyMSAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzBdICovCisJLyogUEIyMCAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzFdICovCisJLyogUEIxOSAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzJdICovCisJLyogUEIxOCAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzNdICovCisJLyogUEIxNyAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUlhfRFYgICovCisJLyogUEIxNiAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUlhfRVIgICovCisJLyogUEIxNSAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVFhfRVIgICovCisJLyogUEIxNCAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVFhfRU4gICovCisJLyogUEIxMyAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgQ09MICAgICovCisJLyogUEIxMiAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgQ1JTICAgICovCisJLyogUEIxMSAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUnhEWzNdICovCisJLyogUEIxMCAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUnhEWzJdICovCisJLyogUEI5ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUnhEWzFdICovCisJLyogUEI4ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUnhEWzBdICovCisJLyogUEI3ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVHhEWzBdICovCisJLyogUEI2ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVHhEWzFdICovCisJLyogUEI1ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVHhEWzJdICovCisJLyogUEI0ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVHhEWzNdICovCiAJLyogUEIzICAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBwaW4gZG9lc24ndCBleGlzdCAqLwogCS8qIFBCMiAgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogcGluIGRvZXNuJ3QgZXhpc3QgKi8KIAkvKiBQQjEgICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIHBpbiBkb2Vzbid0IGV4aXN0ICovCkBAIC0xMzEsOSArMTMxLDkgQEAKIAkvKiBQQzIxICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMjEgKi8KIAkvKiBQQzIwICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMjAgKi8KIAkvKiBQQzE5ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMTkgKi8KLQkvKiBQQzE4ICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzMgTUlJIFJ4IENsb2NrIChDTEsxNCkgKi8KKwkvKiBQQzE4ICovIHsgQ09ORklHX1NZU19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzIE1JSSBSeCBDbG9jayAoQ0xLMTQpICovCiAJLyogUEMxNyAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzE3ICovCi0JLyogUEMxNiAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzIE1JSSBUeCBDbG9jayAoQ0xLMTYpICovCisJLyogUEMxNiAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVHggQ2xvY2sgKENMSzE2KSAqLwogCS8qIFBDMTUgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxNSAqLwogCS8qIFBDMTQgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxNCAqLwogCS8qIFBDMTMgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxMyAqLwpAQCAtMTc5LDggKzE3OSw4IEBACiAJLyogUEQ5ICAqLyB7IDEsICAgICAgICAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBTTUMxIFNNVFhEICovCiAJLyogUEQ4ICAqLyB7IDEsICAgICAgICAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBTTUMxIFNNUlhEICovCiAJLyogUEQ3ICAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQRDcgKi8KLQkvKiBQRDYgICovIHsgQ0ZHX0ZDQzMsICAgMCwgICAwLCAgIDEsICAgMCwgICAxIH0sIC8qIE1JSSBQSFkgUmVzZXQgICovCi0JLyogUEQ1ICAqLyB7IENGR19GQ0MzLCAgIDAsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBNSUkgUEhZIEVuYWJsZSAqLworCS8qIFBENiAgKi8geyBDT05GSUdfU1lTX0ZDQzMsICAgMCwgICAwLCAgIDEsICAgMCwgICAxIH0sIC8qIE1JSSBQSFkgUmVzZXQgICovCisJLyogUEQ1ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAwLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogTUlJIFBIWSBFbmFibGUgKi8KIAkvKiBQRDQgICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBENCAqLwogCS8qIFBEMyAgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogcGluIGRvZXNuJ3QgZXhpc3QgKi8KIAkvKiBQRDIgICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIHBpbiBkb2Vzbid0IGV4aXN0ICovCkBAIC0zNjAsOCArMzYwLDggQEAKIHsKIAlsb25nIG1heHNpemUgPSBod2NfbWFpbl9zZHJhbV9zaXplKCk7CiAKLSNpZiAhZGVmaW5lZChDRkdfUkFNQk9PVCkgJiYgIWRlZmluZWQoQ0ZHX1VTRV9GSVJNV0FSRSkKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworI2lmICFkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkgJiYgIWRlZmluZWQoQ09ORklHX1NZU19VU0VfRklSTVdBUkUpCisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl2b2xhdGlsZSB1Y2hhciAqYmFzZTsKIAlpbnQgaTsKQEAgLTM3NSwzNyArMzc1LDM3IEBACiAJaW1tYXAtPmltX3NpdV9jb25mLnNjX3Rlc2NyMSAgID0gMHgwMDAwNDAwMDsKIAlpbW1hcC0+aW1fc2l1X2NvbmYuc2NfbHRlc2NyMSAgPSAweDAwMDA0MDAwOwogCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIAkvKiBJbml0aWFsaXNlIDYweCBidXMgU0RSQU0gKi8KLQliYXNlID0gKHVjaGFyICopKENGR19TRFJBTV9CQVNFIHwgMHgxMTApOwotCW1lbWN0bC0+bWVtY19wc3J0ICA9IENGR19QU1JUOwotCW1lbWN0bC0+bWVtY19vcjEgICA9IENGR182MHhfT1I7Ci0JbWVtY3RsLT5tZW1jX2JyMSAgID0gQ0ZHX1NEUkFNX0JBU0UgfCBDRkdfNjB4X0JSOworCWJhc2UgPSAodWNoYXIgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgMHgxMTApOworCW1lbWN0bC0+bWVtY19wc3J0ICA9IENPTkZJR19TWVNfUFNSVDsKKwltZW1jdGwtPm1lbWNfb3IxICAgPSBDT05GSUdfU1lTXzYweF9PUjsKKwltZW1jdGwtPm1lbWNfYnIxICAgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBDT05GSUdfU1lTXzYweF9CUjsKIAotCW1lbWN0bC0+bWVtY19wc2RtciA9IENGR19QU0RNUiB8IDB4MjgwMDAwMDA7CisJbWVtY3RsLT5tZW1jX3BzZG1yID0gQ09ORklHX1NZU19QU0RNUiB8IDB4MjgwMDAwMDA7CiAJKmJhc2UgPSAweEZGOwotCW1lbWN0bC0+bWVtY19wc2RtciA9IENGR19QU0RNUiB8IDB4MDgwMDAwMDA7CisJbWVtY3RsLT5tZW1jX3BzZG1yID0gQ09ORklHX1NZU19QU0RNUiB8IDB4MDgwMDAwMDA7CiAJZm9yIChpID0gMDsgaSA8IDg7IGkrKykKIAkJKmJhc2UgPSAweEZGOwotCW1lbWN0bC0+bWVtY19wc2RtciA9IENGR19QU0RNUiB8IDB4MTgwMDAwMDA7CisJbWVtY3RsLT5tZW1jX3BzZG1yID0gQ09ORklHX1NZU19QU0RNUiB8IDB4MTgwMDAwMDA7CiAJKmJhc2UgPSAweEZGOwotCW1lbWN0bC0+bWVtY19wc2RtciA9IENGR19QU0RNUiB8IDB4NDAwMDAwMDA7CisJbWVtY3RsLT5tZW1jX3BzZG1yID0gQ09ORklHX1NZU19QU0RNUiB8IDB4NDAwMDAwMDA7CiAKIAkvKiBJbml0aWFsaXNlIGxvY2FsIGJ1cyBTRFJBTSAqLwotCWJhc2UgPSAodWNoYXIgKilDRkdfTFNEUkFNX0JBU0U7Ci0JbWVtY3RsLT5tZW1jX2xzcnQgID0gQ0ZHX0xTUlQ7Ci0JbWVtY3RsLT5tZW1jX29yMiAgID0gQ0ZHX0xPQ19PUjsKLQltZW1jdGwtPm1lbWNfYnIyICAgPSBDRkdfTFNEUkFNX0JBU0UgfCBDRkdfTE9DX0JSOworCWJhc2UgPSAodWNoYXIgKilDT05GSUdfU1lTX0xTRFJBTV9CQVNFOworCW1lbWN0bC0+bWVtY19sc3J0ICA9IENPTkZJR19TWVNfTFNSVDsKKwltZW1jdGwtPm1lbWNfb3IyICAgPSBDT05GSUdfU1lTX0xPQ19PUjsKKwltZW1jdGwtPm1lbWNfYnIyICAgPSBDT05GSUdfU1lTX0xTRFJBTV9CQVNFIHwgQ09ORklHX1NZU19MT0NfQlI7CiAKLQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDRkdfTFNETVIgfCAweDI4MDAwMDAwOworCW1lbWN0bC0+bWVtY19sc2RtciA9IENPTkZJR19TWVNfTFNETVIgfCAweDI4MDAwMDAwOwogCSpiYXNlID0gMHhGRjsKLQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDRkdfTFNETVIgfCAweDA4MDAwMDAwOworCW1lbWN0bC0+bWVtY19sc2RtciA9IENPTkZJR19TWVNfTFNETVIgfCAweDA4MDAwMDAwOwogCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCiAJCSpiYXNlID0gMHhGRjsKLQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDRkdfTFNETVIgfCAweDE4MDAwMDAwOworCW1lbWN0bC0+bWVtY19sc2RtciA9IENPTkZJR19TWVNfTFNETVIgfCAweDE4MDAwMDAwOwogCSpiYXNlID0gMHhGRjsKLQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDRkdfTFNETVIgfCAweDQwMDAwMDAwOworCW1lbWN0bC0+bWVtY19sc2RtciA9IENPTkZJR19TWVNfTFNETVIgfCAweDQwMDAwMDAwOwogCiAJLyogV2UgbXVzdCBiZSBhYmxlIHRvIHRlc3QgYSBsb2NhdGlvbiBvdXRzaXplIHRoZSBtYXhpbXVtIGxlZ2FsIHNpemUKIAkgKiB0byBmaW5kIG91dCBUSEFUIHdlIGFyZSBvdXRzaWRlOyBidXQgdGhpcyBhZGRyZXNzIHN0aWxsIGhhcyB0byBiZQpAQCAtNDIwLDcgKzQyMCw3IEBACiAKIAlpZiAobWF4c2l6ZSAhPSBod2NfbWFpbl9zZHJhbV9zaXplKCkpCiAJCXB1dHMoIk9vcHM6IG1lbW9yeSB0ZXN0IGhhcyBub3QgZm91bmQgYWxsIG1lbW9yeSFcbiIpOwotI2VuZGlmIC8qICFDRkdfUkFNQk9PVCAmJiAhQ0ZHX1VTRV9GSVJNV0FSRSAqLworI2VuZGlmIC8qICFDT05GSUdfU1lTX1JBTUJPT1QgJiYgIUNPTkZJR19TWVNfVVNFX0ZJUk1XQVJFICovCiAKIAkvKiBSZXR1cm4gdG90YWwgUkFNIHNpemUgKHNpemUgb2YgNjB4IFNEUkFNKSAqLwogCXJldHVybiBtYXhzaXplOwpkaWZmIC0tZ2l0IGEvYm9hcmQvaXZtL2ZsYXNoLmMgYi9ib2FyZC9pdm0vZmxhc2guYwppbmRleCAyOTgyMWJhLi5jZjMwOWQ3IDEwMDY0NAotLS0gYS9ib2FyZC9pdm0vZmxhc2guYworKysgYi9ib2FyZC9pdm0vZmxhc2guYwpAQCAtMjQsMTEgKzI0LDExIEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNTAsMTMgKzUwLDEzIEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMDsKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtNzIsMjIgKzcyLDIyIEBACiAJfQogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBcCisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCUJSX01TX0dQQ00gfCBCUl9QU18xNiB8IEJSX1Y7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IHNpemVfYjA7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0zODMsMTAgKzM4MywxMCBAQAogCiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlzYWRkclswXSA9IDB4MDBGRjsJCS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC00NTQsNyArNDU0LDcgQEAKIAkJCXVkZWxheSAoMTAwMCk7CiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIDB4MDA4MCkgIT0gMHgwMDgwKSB7Ci0JCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IDB4MDBGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCiAJCQkJCXJldHVybiAxOwpAQCAtNTgzLDcgKzU4Myw3IEBACiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgMHgwMDgwKSAhPSAweDAwODApIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAweDAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9pdm0vaXZtLmMgYi9ib2FyZC9pdm0vaXZtLmMKaW5kZXggNDg4MmYwNC4uOWJlYzE5OCAxMDA2NDQKLS0tIGEvYm9hcmQvaXZtL2l2bS5jCisrKyBiL2JvYXJkL2l2bS9pdm0uYwpAQCAtMTYxLDI4ICsxNjEsMjggQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tci0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemVfYjA7CiAKIAkvKiBlbmFibGUgU0RSQU0gY2xvY2sgKCJzd2l0Y2ggb24iIFNEUkFNKSAqLwotCWltbXItPmltX2NwbS5jcF9wYnBhciAmPSB+KENGR19QQl9TRFJBTV9DTEtFKTsJLyogR1BJTyAqLwotCWltbXItPmltX2NwbS5jcF9wYm9kciAmPSB+KENGR19QQl9TRFJBTV9DTEtFKTsJLyogYWN0aXZlIG91dHB1dCAqLwotCWltbXItPmltX2NwbS5jcF9wYmRpciB8PSBDRkdfUEJfU0RSQU1fQ0xLRTsJLyogb3V0cHV0ICovCi0JaW1tci0+aW1fY3BtLmNwX3BiZGF0IHw9IENGR19QQl9TRFJBTV9DTEtFOwkvKiBhc3NlcnQgU0RSQU0gQ0xLRSAqLworCWltbXItPmltX2NwbS5jcF9wYnBhciAmPSB+KENPTkZJR19TWVNfUEJfU0RSQU1fQ0xLRSk7CS8qIEdQSU8gKi8KKwlpbW1yLT5pbV9jcG0uY3BfcGJvZHIgJj0gfihDT05GSUdfU1lTX1BCX1NEUkFNX0NMS0UpOwkvKiBhY3RpdmUgb3V0cHV0ICovCisJaW1tci0+aW1fY3BtLmNwX3BiZGlyIHw9IENPTkZJR19TWVNfUEJfU0RSQU1fQ0xLRTsJLyogb3V0cHV0ICovCisJaW1tci0+aW1fY3BtLmNwX3BiZGF0IHw9IENPTkZJR19TWVNfUEJfU0RSQU1fQ0xLRTsJLyogYXNzZXJ0IFNEUkFNIENMS0UgKi8KIAl1ZGVsYXkgKDEpOwogCiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDEgZm9yIEVMSUMgU0FDQ08KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMTsKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjE7CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxOwogCiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDIgZm9yIEVMSUMgRVBJQwogCSAqLwotCW1lbWN0bC0+bWVtY19vcjIgPSBDRkdfT1IyOwotCW1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyOworCW1lbWN0bC0+bWVtY19vcjIgPSBDT05GSUdfU1lTX09SMjsKKwltZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19CUjI7CiAKIAkvKgogCSAqIENvbmZpZ3VyZSBVUE1BIGZvciBTSEFSQwpAQCAtMTk0LDE1ICsxOTQsMTUgQEAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIGJhbmsgNCBmb3IgSERMQyBBZGRyZXNzIHNwYWNlCiAJICovCi0JbWVtY3RsLT5tZW1jX29yNCA9IENGR19PUjQ7Ci0JbWVtY3RsLT5tZW1jX2JyNCA9IENGR19CUjQ7CisJbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfT1I0OworCW1lbWN0bC0+bWVtY19icjQgPSBDT05GSUdfU1lTX0JSNDsKICNlbmRpZgogCiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDUgZm9yIFNIQVJDCiAJICovCi0JbWVtY3RsLT5tZW1jX29yNSA9IENGR19PUjU7Ci0JbWVtY3RsLT5tZW1jX2JyNSA9IENGR19CUjU7CisJbWVtY3RsLT5tZW1jX29yNSA9IENPTkZJR19TWVNfT1I1OworCW1lbWN0bC0+bWVtY19icjUgPSBDT05GSUdfU1lTX0JSNTsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gMHgwMDAwMTAwMDsKIApAQCAtMjEyLDE3ICsyMTIsMTcgQEAKIAl1cG1jb25maWcgKFVQTUIsICh1aW50ICopIHNkcmFtX3RhYmxlLAogCQkgICBzaXplb2YgKHNkcmFtX3RhYmxlKSAvIHNpemVvZiAodWludCkpOwogCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzFCS184SzsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzFCS184SzsKIAogCW1lbWN0bC0+bWVtY19tYXIgPSAweDAwMDAwMDg4OwogCiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDMgdG8gdGhlIFNEUkFNIGJhbmsgYXQgcHJlbGltaW5hcnkgYWRkcmVzcy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IzID0gQ0ZHX09SM19QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMyA9IENGR19CUjNfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjMgPSBDT05GSUdfU1lTX09SM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfQlIzX1BSRUxJTTsKIAotCW1lbWN0bC0+bWVtY19tYm1yID0gQ0ZHX01CTVJfOENPTDsJLyogcmVmcmVzaCBub3QgZW5hYmxlZCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWJtciA9IENPTkZJR19TWVNfTUJNUl84Q09MOwkvKiByZWZyZXNoIG5vdCBlbmFibGVkIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCW1lbWN0bC0+bWVtY19tY3IgPSAweDgwODA2MTA1OwkvKiBwcmVjaGFyZ2UgKi8KQEAgLTI1MSwxMCArMjUxLDEwIEBACiAJICogQ2hlY2sgQmFuayAwIE1lbW9yeSBTaXplIGZvciByZS1jb25maWd1cmF0aW9uCiAJICovCiAJc2l6ZV9iMCA9Ci0JCWRyYW1fc2l6ZSAoQ0ZHX01CTVJfOENPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTNfUFJFTElNLAorCQlkcmFtX3NpemUgKENPTkZJR19TWVNfTUJNUl84Q09MLCAobG9uZyAqKSBTRFJBTV9CQVNFM19QUkVMSU0sCiAJCQkgICBTRFJBTV9NQVhfU0laRSk7CiAKLQltZW1jdGwtPm1lbWNfbWJtciA9IENGR19NQk1SXzhDT0wgfCBNQk1SX1BUQkU7CisJbWVtY3RsLT5tZW1jX21ibXIgPSBDT05GSUdfU1lTX01CTVJfOENPTCB8IE1CTVJfUFRCRTsKIAogCXJldHVybiAoc2l6ZV9iMCk7CiB9CkBAIC0yNzIsNyArMjcyLDcgQEAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1hbXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLAogCQkJICAgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYm1yID0gbWFtcl92YWx1ZTsKQEAgLTI4NCwxMyArMjg0LDEzIEBACiAKIHZvaWQgcmVzZXRfcGh5ICh2b2lkKQogewotCWltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwlpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJLyogRGUtYXNzZXJ0IEV0aGVybmV0IFBvd2VyZG93biAqLwotCWltbXItPmltX2NwbS5jcF9wYnBhciAmPSB+KENGR19QQl9FVEhfUE9XRVJET1dOKTsJLyogR1BJTyAqLwotCWltbXItPmltX2NwbS5jcF9wYm9kciAmPSB+KENGR19QQl9FVEhfUE9XRVJET1dOKTsJLyogYWN0aXZlIG91dHB1dCAqLwotCWltbXItPmltX2NwbS5jcF9wYmRpciB8PSBDRkdfUEJfRVRIX1BPV0VSRE9XTjsJLyogb3V0cHV0ICovCi0JaW1tci0+aW1fY3BtLmNwX3BiZGF0ICY9IH4oQ0ZHX1BCX0VUSF9QT1dFUkRPV04pOwkvKiBFbmFibGUgUEhZIHBvd2VyICovCisJaW1tci0+aW1fY3BtLmNwX3BicGFyICY9IH4oQ09ORklHX1NZU19QQl9FVEhfUE9XRVJET1dOKTsJLyogR1BJTyAqLworCWltbXItPmltX2NwbS5jcF9wYm9kciAmPSB+KENPTkZJR19TWVNfUEJfRVRIX1BPV0VSRE9XTik7CS8qIGFjdGl2ZSBvdXRwdXQgKi8KKwlpbW1yLT5pbV9jcG0uY3BfcGJkaXIgfD0gQ09ORklHX1NZU19QQl9FVEhfUE9XRVJET1dOOwkvKiBvdXRwdXQgKi8KKwlpbW1yLT5pbV9jcG0uY3BfcGJkYXQgJj0gfihDT05GSUdfU1lTX1BCX0VUSF9QT1dFUkRPV04pOwkvKiBFbmFibGUgUEhZIHBvd2VyICovCiAJdWRlbGF5ICgxMDAwKTsKIAogCS8qCkBAIC0zMDIsMTMgKzMwMiwxMyBAQAogCSAqIE5vdGU6IFRoZSBSRVNFVCBwaW4gaXMgaGlnaCBhY3RpdmUsIGJ1dCB0aGVyZSBpcyBhbgogCSAqICAgICAgIGludmVydGVyIG9uIHRoZSBTUEQ4MjNUUyBib2FyZC4uLgogCSAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfihDRkdfUENfRVRIX1JFU0VUKTsKLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGlyIHw9IENGR19QQ19FVEhfUkVTRVQ7CisJaW1tci0+aW1faW9wb3J0LmlvcF9wY3BhciAmPSB+KENPTkZJR19TWVNfUENfRVRIX1JFU0VUKTsKKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGlyIHw9IENPTkZJR19TWVNfUENfRVRIX1JFU0VUOwogCS8qIGFzc2VydCBSRVNFVCBzaWduYWwgb2YgUEhZICovCi0JaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCAmPSB+KENGR19QQ19FVEhfUkVTRVQpOworCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgJj0gfihDT05GSUdfU1lTX1BDX0VUSF9SRVNFVCk7CiAJdWRlbGF5ICgxMCk7CiAJLyogZGUtYXNzZXJ0IFJFU0VUIHNpZ25hbCBvZiBQSFkgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0IHw9IENGR19QQ19FVEhfUkVTRVQ7CisJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCB8PSBDT05GSUdfU1lTX1BDX0VUSF9SRVNFVDsKIAl1ZGVsYXkgKDEwKTsKIH0KIApAQCAtMzMyLDIxICszMzIsMjEgQEAKIAogdm9pZCBpZGVfc2V0X3Jlc2V0IChpbnQgb24pCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAkvKgogCSAqIENvbmZpZ3VyZSBQQyBmb3IgSURFIFJlc2V0IFBpbgogCSAqLwogCWlmIChvbikgewkJLyogYXNzZXJ0IFJFU0VUICovCi0JCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgJj0gfihDRkdfUENfSURFX1JFU0VUKTsKKwkJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCAmPSB+KENPTkZJR19TWVNfUENfSURFX1JFU0VUKTsKIAl9IGVsc2UgewkJLyogcmVsZWFzZSBSRVNFVCAqLwotCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0IHw9IENGR19QQ19JREVfUkVTRVQ7CisJCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgfD0gQ09ORklHX1NZU19QQ19JREVfUkVTRVQ7CiAJfQogCiAJLyogcHJvZ3JhbSBwb3J0IHBpbiBhcyBHUElPIG91dHB1dCAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfihDRkdfUENfSURFX1JFU0VUKTsKLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3Bjc28gJj0gfihDRkdfUENfSURFX1JFU0VUKTsKLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGlyIHw9IENGR19QQ19JREVfUkVTRVQ7CisJaW1tci0+aW1faW9wb3J0LmlvcF9wY3BhciAmPSB+KENPTkZJR19TWVNfUENfSURFX1JFU0VUKTsKKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3Bjc28gJj0gfihDT05GSUdfU1lTX1BDX0lERV9SRVNFVCk7CisJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RpciB8PSBDT05GSUdfU1lTX1BDX0lERV9SRVNFVDsKIH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvaXhkcDQyNS9mbGFzaC5jIGIvYm9hcmQvaXhkcDQyNS9mbGFzaC5jCmluZGV4IDBiYWU5ZTAuLmYxZDkxOTAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2l4ZHA0MjUvZmxhc2guYworKysgYi9ib2FyZC9peGRwNDI1L2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvc3dhYi5oPgogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgICAgICovCiAKIC8qIEJvYXJkIHN1cHBvcnQgZm9yIDEgb3IgMiBmbGFzaCBkZXZpY2VzICovCiAjdW5kZWYgRkxBU0hfUE9SVF9XSURUSDMyCkBAIC02NSw3ICs2NSw3IEBACiAJaW50IGk7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDoKIAkJCWZsYXNoX2dldF9zaXplICgoRlBXICopIFBIWVNfRkxBU0hfMSwgJmZsYXNoX2luZm9baV0pOwpAQCAtODEsOCArODEsOCBAQAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFICsgX2Jzc19zdGFydCAtIF9hcm1ib290X3N0YXJ0LAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgX2Jzc19zdGFydCAtIF9hcm1ib290X3N0YXJ0LAogCQkgICAgICAgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKQEAgLTE5OCwxMCArMTk4LDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0yNzAsNyArMjcwLDcgQEAKIAkJCQkgKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0KIAkJCSAgICAgICAoRlBXKSAweDAwODAwMDgwKSB7CiAJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPgotCQkJCSAgICBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCSphZGRyID0gKEZQVykgMHgwMEIwMDBCMDsJLyogc3VzcGVuZCBlcmFzZSAgICAgICAgICovCiAJCQkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC00MDYsNyArNDA2LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9peGRwNDI1L2l4ZHA0MjUuYyBiL2JvYXJkL2l4ZHA0MjUvaXhkcDQyNS5jCmluZGV4IGIzNzljNzUuLjQzYWM4ZjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2l4ZHA0MjUvaXhkcDQyNS5jCisrKyBiL2JvYXJkL2l4ZHA0MjUvaXhkcDQyNS5jCkBAIC01NCwyNSArNTQsMjUgQEAKIAkvKgogCSAqIEdldCByZWFsdGVrIFJUTDgzMDUgc3dpdGNoIGFuZCBTTElDIG91dCBvZiByZXNldAogCSAqLwotCUdQSU9fT1VUUFVUX1NFVChDRkdfR1BJT19TV0lUQ0hfUkVTRVRfTik7Ci0JR1BJT19PVVRQVVRfRU5BQkxFKENGR19HUElPX1NXSVRDSF9SRVNFVF9OKTsKLQlHUElPX09VVFBVVF9TRVQoQ0ZHX0dQSU9fU0xJQ19SRVNFVF9OKTsKLQlHUElPX09VVFBVVF9FTkFCTEUoQ0ZHX0dQSU9fU0xJQ19SRVNFVF9OKTsKKwlHUElPX09VVFBVVF9TRVQoQ09ORklHX1NZU19HUElPX1NXSVRDSF9SRVNFVF9OKTsKKwlHUElPX09VVFBVVF9FTkFCTEUoQ09ORklHX1NZU19HUElPX1NXSVRDSF9SRVNFVF9OKTsKKwlHUElPX09VVFBVVF9TRVQoQ09ORklHX1NZU19HUElPX1NMSUNfUkVTRVRfTik7CisJR1BJT19PVVRQVVRfRU5BQkxFKENPTkZJR19TWVNfR1BJT19TTElDX1JFU0VUX04pOwogCiAJLyoKIAkgKiBTZXR1cCBHUElPJ3MgZm9yIFBDSSBJTlRBICYgSU5UQgogCSAqLwotCUdQSU9fT1VUUFVUX0RJU0FCTEUoQ0ZHX0dQSU9fUENJX0lOVEFfTik7Ci0JR1BJT19JTlRfQUNUX0xPV19TRVQoQ0ZHX0dQSU9fUENJX0lOVEFfTik7Ci0JR1BJT19PVVRQVVRfRElTQUJMRShDRkdfR1BJT19QQ0lfSU5UQl9OKTsKLQlHUElPX0lOVF9BQ1RfTE9XX1NFVChDRkdfR1BJT19QQ0lfSU5UQl9OKTsKKwlHUElPX09VVFBVVF9ESVNBQkxFKENPTkZJR19TWVNfR1BJT19QQ0lfSU5UQV9OKTsKKwlHUElPX0lOVF9BQ1RfTE9XX1NFVChDT05GSUdfU1lTX0dQSU9fUENJX0lOVEFfTik7CisJR1BJT19PVVRQVVRfRElTQUJMRShDT05GSUdfU1lTX0dQSU9fUENJX0lOVEJfTik7CisJR1BJT19JTlRfQUNUX0xPV19TRVQoQ09ORklHX1NZU19HUElPX1BDSV9JTlRCX04pOwogCiAJLyoKIAkgKiBTZXR1cCBHUElPJ3MgZm9yIDMzTUh6IGNsb2NrIG91dHB1dAogCSAqLwogCSpJWFA0MjVfR1BJT19HUENMS1IgPSAweDAxRkYwMUZGOwotCUdQSU9fT1VUUFVUX0VOQUJMRShDRkdfR1BJT19QQ0lfQ0xLKTsKLQlHUElPX09VVFBVVF9FTkFCTEUoQ0ZHX0dQSU9fRVhUQlVTX0NMSyk7CisJR1BJT19PVVRQVVRfRU5BQkxFKENPTkZJR19TWVNfR1BJT19QQ0lfQ0xLKTsKKwlHUElPX09VVFBVVF9FTkFCTEUoQ09ORklHX1NZU19HUElPX0VYVEJVU19DTEspOwogI2VuZGlmCiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2JvYXJkL2pzZS9mbGFzaC5jIGIvYm9hcmQvanNlL2ZsYXNoLmMKaW5kZXggYzQ2MmZlMC4uOTJhY2RiMSAxMDA2NDQKLS0tIGEvYm9hcmQvanNlL2ZsYXNoLmMKKysrIGIvYm9hcmQvanNlL2ZsYXNoLmMKQEAgLTMyLDEwICszMiwxMCBAQAogI2luY2x1ZGUgPHBwYzR4eC5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KIAotI2lmIENGR19NQVhfRkxBU0hfQkFOS1MgIT0gMQotI2Vycm9yICJDRkdfTUFYX0ZMQVNIX0JBTktTIG11c3QgYmUgMSIKKyNpZiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAhPSAxCisjZXJyb3IgIkNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTIG11c3QgYmUgMSIKICNlbmRpZgotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtMjgxLDcgKzI4MSw3IEBACiAJbGFzdCA9IHN0YXJ0OwogCXdoaWxlICgoYWRkclswXSAmIChGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9CiAJICAgICAgIChGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0KQEAgLTUxMCw3ICs1MTAsNyBAQAogCQl3aGlsZSAoKGRlc3QyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KIAkJICAgICAgIChkYXRhMltpXSAmIChGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApKSB7CiAKLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gKDEpOwogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9qc2UvanNlLmMgYi9ib2FyZC9qc2UvanNlLmMKaW5kZXggOTI5MDgxNC4uNmE2YjlkZCAxMDA2NDQKLS0tIGEvYm9hcmQvanNlL2pzZS5jCisrKyBiL2JvYXJkL2pzZS9qc2UuYwpAQCAtNjcsNyArNjcsNyBAQAogCiAJLyogRUJDMF9CMUNSOiBCQVM9eCwgQlM9MCgxTUIpLCBCVT0zKFIvVyksIEJXPTAoOGJpdHMpICovCiAJbXRkY3IgKGViY2NmZ2EsIHBiMWNyKTsKLQltdGRjciAoZWJjY2ZnZCwgQ0ZHX1NZU1RFTUFDRV9CQVNFIHwgMHgwMDAxODAwMCk7CisJbXRkY3IgKGViY2NmZ2QsIENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UgfCAweDAwMDE4MDAwKTsKIAogCS8qIEVuYWJsZSB0aGUgL1BlcldFIG91dHB1dCBhcyAvUGVyV0UsIGluc3RlYWQgb2YgL1BDSUlOVC4gKi8KIAkvKiBDUEMwX0NSMSB8PSBQQ0lQVyAqLwpAQCAtOTUsMTEgKzk1LDExIEBACiAKIAkvKiBjaGVjayB0aGF0IHRoZSBTeXN0ZW1BQ0UgY2hpcCBpcyBhbGl2ZS4gKi8KIAlwcmludGYgKCJBQ0U6ICAgIik7Ci0JdmVycyA9IHJlYWR3IChDRkdfU1lTVEVNQUNFX0JBU0UgKyAweDE2KTsKKwl2ZXJzID0gcmVhZHcgKENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UgKyAweDE2KTsKIAlwcmludGYgKCJTeXN0ZW1BQ0UgJXUuJXUgKGJ1aWxkICV1KSIsCiAJCSh2ZXJzID4+IDEyKSAmIDB4MGYsICh2ZXJzID4+IDgpICYgMHgwZiwgdmVycyAmIDB4ZmYpOwogCi0Jc3RhdHVzID0gcmVhZGwgKENGR19TWVNURU1BQ0VfQkFTRSArIDB4MDQpOworCXN0YXR1cyA9IHJlYWRsIChDT05GSUdfU1lTX1NZU1RFTUFDRV9CQVNFICsgMHgwNCk7CiAjaWZkZWYgREVCVUcKIAlwcmludGYgKCIgU1RBVFVTPTB4JTA4eCIsIHN0YXR1cyk7CiAjZW5kaWYKQEAgLTExMCwyMyArMTEwLDIzIEBACiAKIAkJaWYgKHN0YXR1cyAmIDB4MDQpIHsKIAkJCS8qIENPTlRST0xSRUcgPSBDRkdQUk9HICovCi0JCQl3cml0ZXcgKDB4MTAwMCwgQ0ZHX1NZU1RFTUFDRV9CQVNFICsgMHgxOCk7CisJCQl3cml0ZXcgKDB4MTAwMCwgQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRSArIDB4MTgpOwogCQkJdWRlbGF5ICg1MDApOwogCQkJLyogQ09OVFJPTFJFRyA9IENGR1JFU0VUICovCi0JCQl3cml0ZXcgKDB4MDA4MCwgQ0ZHX1NZU1RFTUFDRV9CQVNFICsgMHgxOCk7CisJCQl3cml0ZXcgKDB4MDA4MCwgQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRSArIDB4MTgpOwogCQkJdWRlbGF5ICg1MDApOwotCQkJd3JpdGV3ICgweDAwMDAsIENGR19TWVNURU1BQ0VfQkFTRSArIDB4MTgpOworCQkJd3JpdGV3ICgweDAwMDAsIENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UgKyAweDE4KTsKIAkJCS8qIENPTlRST0xSRUcgPSBDRkdTVEFSVCAqLwotCQkJd3JpdGV3ICgweDAwMjAsIENGR19TWVNURU1BQ0VfQkFTRSArIDB4MTgpOworCQkJd3JpdGV3ICgweDAwMjAsIENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UgKyAweDE4KTsKIAotCQkJc3RhdHVzID0gcmVhZGwgKENGR19TWVNURU1BQ0VfQkFTRSArIDB4MDQpOworCQkJc3RhdHVzID0gcmVhZGwgKENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UgKyAweDA0KTsKIAkJfQogCX0KIAogCS8qIFdhaXQgZm9yIHRoZSBTeXN0ZW1BQ0UgdG8gcHJvZ3JhbSBpdHMgY2hhaW4gb2YgZGV2aWNlcy4gKi8KIAl3aGlsZSAoKHN0YXR1cyAmIDB4ODQpID09IDB4MDApIHsKIAkJdWRlbGF5ICg1MDApOwotCQlzdGF0dXMgPSByZWFkbCAoQ0ZHX1NZU1RFTUFDRV9CQVNFICsgMHgwNCk7CisJCXN0YXR1cyA9IHJlYWRsIChDT05GSUdfU1lTX1NZU1RFTUFDRV9CQVNFICsgMHgwNCk7CiAJfQogCiAJaWYgKHN0YXR1cyAmIDB4MDQpCmRpZmYgLS1naXQgYS9ib2FyZC9qc2Uvc2RyYW0uYyBiL2JvYXJkL2pzZS9zZHJhbS5jCmluZGV4IDhiYTZjNDUuLmExZjUyNmQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2pzZS9zZHJhbS5jCisrKyBiL2JvYXJkL2pzZS9zZHJhbS5jCkBAIC0xNTEsNyArMTUxLDcgQEAKIAkvKiBTdGFydCBtZW1vcnkgdGVzdC4gKi8KIAlwcmludGYgKCJ0ZXN0OiAldSBNQiAtICIsIFNEUkFNX0xFTiAvIDEwNDg1NzYpOwogCi0Jc2RyYW0gPSAodW5zaWduZWQgbG9uZyAqKSBDRkdfU0RSQU1fQkFTRTsKKwlzZHJhbSA9ICh1bnNpZ25lZCBsb25nICopIENPTkZJR19TWVNfU0RSQU1fQkFTRTsKIAogCXByaW50ZiAoIndyaXRlIC0gIik7CiAJZm9yIChpZHggPSAyOyBpZHggPCBTRFJBTV9MRU4gLyA0OyBpZHggKz0gMikgewpkaWZmIC0tZ2l0IGEvYm9hcmQvanVwaXRlci9qdXBpdGVyLmMgYi9ib2FyZC9qdXBpdGVyL2p1cGl0ZXIuYwppbmRleCA3OTEzYzc1Li42ZTc1MmM2IDEwMDY0NAotLS0gYS9ib2FyZC9qdXBpdGVyL2p1cGl0ZXIuYworKysgYi9ib2FyZC9qdXBpdGVyL2p1cGl0ZXIuYwpAQCAtNDUsNyArNDUsNyBAQAogI2RlZmluZSBTRFJBTV9DT05GSUcyCTB4ODhiNzAwMDQKICNlbmRpZgogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogc3RhdGljIHZvaWQgc2RyYW1fc3RhcnQgKGludCBoaV9hZGRyKQogewogCWxvbmcgaGlfYWRkcl9iaXQgPSBoaV9hZGRyID8gMHgwMTAwMDAwMCA6IDA7CkBAIC04OCw3ICs4OCw3IEBACiAKIC8qCiAgKiBBVFRFTlRJT046IEFsdGhvdWdoIHBhcnRpYWxseSByZWZlcmVuY2VkIGluaXRkcmFtIGRvZXMgTk9UIG1ha2UgcmVhbCB1c2UKLSAqICAgICAgICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKiAgICAgICAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKiAgICAgICAgICAgIGlzIHNvbWV0aGluZyBlbHNlIHRoYW4gMHgwMDAwMDAwMC4KICAqLwogCkBAIC05OCw3ICs5OCw3IEBACiAJdWxvbmcgZHJhbXNpemUyID0gMDsKIAl1aW50IHN2ciwgcHZyOwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHRlc3QxLCB0ZXN0MjsKIAogCS8qIHNldHVwIFNEUkFNIGNoaXAgc2VsZWN0cyAqLwpAQCAtMTE5LDkgKzExOSw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMCBvbmx5ICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCXNkcmFtX3N0YXJ0KDEpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKIAkJZHJhbXNpemUgPSB0ZXN0MTsKQEAgLTE0NywxMCArMTQ3LDEwIEBACiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzEgb25seSAqLwogCWlmICghZHJhbXNpemUpCiAJCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKIAlpZiAoIWRyYW1zaXplKSB7CiAJCXNkcmFtX3N0YXJ0KDEpOwotCQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJfQogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwpAQCAtMTcyLDcgKzE3Miw3IEBACiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MxQ0ZHID0gZHJhbXNpemU7IC8qIGRpc2FibGVkICovCiAJfQogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiByZXRyaWV2ZSBzaXplIG9mIG1lbW9yeSBjb25uZWN0ZWQgdG8gU0RSQU0gQ1MwICovCiAJZHJhbXNpemUgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyAmIDB4RkY7CkBAIC0xOTAsNyArMTkwLDcgQEAKIAkJZHJhbXNpemUyID0gMDsKIAl9CiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyoKIAkgKiBPbiBNUEM1MjAwQiB3ZSBuZWVkIHRvIHNldCB0aGUgc3BlY2lhbCBjb25maWd1cmF0aW9uIGRlbGF5IGluIHRoZQpAQCAtMjQ0LDkgKzI0NCw5IEBACiB7CiAJaWYgKHNpemUgPT0gMHgxMDAwMDAwKSB7IC8qIGFkanVzdCBtYXBwaW5nICovCiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX1NUQVJUID0gKih2dV9sb25nICopTVBDNVhYWF9DUzBfU1RBUlQgPQotCQkJU1RBUlRfUkVHKENGR19CT09UQ1NfU1RBUlQgfCBzaXplKTsKKwkJCVNUQVJUX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB8IHNpemUpOwogCQkqKHZ1X2xvbmcgKilNUEM1WFhYX0JPT1RDU19TVE9QID0gKih2dV9sb25nICopTVBDNVhYWF9DUzBfU1RPUCA9Ci0JCQlTVE9QX1JFRyhDRkdfQk9PVENTX1NUQVJUIHwgc2l6ZSwgc2l6ZSk7CisJCQlTVE9QX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB8IHNpemUsIHNpemUpOwogCX0KICNpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQogCSoodnVfbG9uZyAqKU1QQzVYWFhfQURERUNSICY9IH4oMSA8PCAyNSk7IC8qIGRpc2FibGUgQ1NfQk9PVCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQva2V5bWlsZS9jb21tb24vY29tbW9uLmMgYi9ib2FyZC9rZXltaWxlL2NvbW1vbi9jb21tb24uYwppbmRleCAxODk4MmNkLi42MTI3NmQyIDEwMDY0NAotLS0gYS9ib2FyZC9rZXltaWxlL2NvbW1vbi9jb21tb24uYworKysgYi9ib2FyZC9rZXltaWxlL2NvbW1vbi9jb21tb24uYwpAQCAtMTk2LDkgKzE5Niw5IEBACiAJdW5zaWduZWQgbG9uZwljcmM7CiAJdW5zaWduZWQgbG9uZwljcmNlZXByb207CiAKLQljcmMgPSBpdm1fY2FsY19jcmMgKGJ1ZiwgQ0ZHX0lWTV9FRVBST01fUEFHRV9MRU4gLSAyKTsKLQljcmNlZXByb20gPSAoYnVmW0NGR19JVk1fRUVQUk9NX1BBR0VfTEVOIC0gMV0gKyBcCi0JCQlidWZbQ0ZHX0lWTV9FRVBST01fUEFHRV9MRU4gLSAyXSAqIDI1Nik7CisJY3JjID0gaXZtX2NhbGNfY3JjIChidWYsIENPTkZJR19TWVNfSVZNX0VFUFJPTV9QQUdFX0xFTiAtIDIpOworCWNyY2VlcHJvbSA9IChidWZbQ09ORklHX1NZU19JVk1fRUVQUk9NX1BBR0VfTEVOIC0gMV0gKyBcCisJCQlidWZbQ09ORklHX1NZU19JVk1fRUVQUk9NX1BBR0VfTEVOIC0gMl0gKiAyNTYpOwogCWlmIChjcmMgIT0gY3JjZWVwcm9tKSB7CiAJCXByaW50ZiAoIkVycm9yIENSQyBCbG9jazogJWQgRUVwcm9tOiBjYWxjdWxhdGVkOiAlbHggRUVwcm9tOiAlbHhcbiIsCiAJCQlibG9jaywgY3JjLCBjcmNlZXByb20pOwpAQCAtMjA5LDcgKzIwOSw3IEBACiAKIHN0YXRpYyBpbnQgaXZtX2FuYWx5emVfYmxvY2syICh1bnNpZ25lZCBjaGFyICpidWYsIGludCBsZW4pCiB7Ci0JdW5zaWduZWQgY2hhcgl2YWxidWZbQ0ZHX0lWTV9FRVBST01fUEFHRV9MRU5dOworCXVuc2lnbmVkIGNoYXIJdmFsYnVmW0NPTkZJR19TWVNfSVZNX0VFUFJPTV9QQUdFX0xFTl07CiAJdW5zaWduZWQgbG9uZwljb3VudDsKIAogCS8qIElWTV9NYWNBZGRyZXNzICovCkBAIC0yMzgsMjEgKzIzOCwyMSBAQAogaW50IGl2bV9hbmFseXplX2VlcHJvbSAodW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbGVuKQogewogCXVuc2lnbmVkIHNob3J0CXZhbDsKLQl1bnNpZ25lZCBjaGFyCXZhbGJ1ZltDRkdfSVZNX0VFUFJPTV9QQUdFX0xFTl07CisJdW5zaWduZWQgY2hhcgl2YWxidWZbQ09ORklHX1NZU19JVk1fRUVQUk9NX1BBR0VfTEVOXTsKIAl1bnNpZ25lZCBjaGFyCSp0bXA7CiAKIAlpZiAoaXZtX2NoZWNrX2NyYyAoYnVmLCAwKSAhPSAwKQogCQlyZXR1cm4gLTE7CiAKLQlpdm1fZ2V0X3ZhbHVlIChidWYsIENGR19JVk1fRUVQUk9NX1BBR0VfTEVOLCAiSVZNX0JvYXJkSWQiLCAwLCAxKTsKLQl2YWwgPSBpdm1fZ2V0X3ZhbHVlIChidWYsIENGR19JVk1fRUVQUk9NX1BBR0VfTEVOLCAiSVZNX0hXS2V5IiwgNiwgMSk7CisJaXZtX2dldF92YWx1ZSAoYnVmLCBDT05GSUdfU1lTX0lWTV9FRVBST01fUEFHRV9MRU4sICJJVk1fQm9hcmRJZCIsIDAsIDEpOworCXZhbCA9IGl2bV9nZXRfdmFsdWUgKGJ1ZiwgQ09ORklHX1NZU19JVk1fRUVQUk9NX1BBR0VfTEVOLCAiSVZNX0hXS2V5IiwgNiwgMSk7CiAJaWYgKHZhbCAhPSAweGZmZmYpIHsKIAkJc3ByaW50ZiAoKGNoYXIgKil2YWxidWYsICIleCIsICgodmFsIC8xMDApICUgMTApKTsKIAkJaXZtX3NldF92YWx1ZSAoIklWTV9IV1ZhcmlhbnQiLCAoY2hhciAqKXZhbGJ1Zik7CiAJCXNwcmludGYgKChjaGFyICopdmFsYnVmLCAiJXgiLCAodmFsICUgMTAwKSk7CiAJCWl2bV9zZXRfdmFsdWUgKCJJVk1fSFdWZXJzaW9uIiwgKGNoYXIgKil2YWxidWYpOwogCX0KLQlpdm1fZ2V0X3ZhbHVlIChidWYsIENGR19JVk1fRUVQUk9NX1BBR0VfTEVOLCAiSVZNX0Z1bmN0aW9ucyIsIDEyLCAwKTsKKwlpdm1fZ2V0X3ZhbHVlIChidWYsIENPTkZJR19TWVNfSVZNX0VFUFJPTV9QQUdFX0xFTiwgIklWTV9GdW5jdGlvbnMiLCAxMiwgMCk7CiAKIAlHRVRfU1RSSU5HKCJJVk1fU3ltYm9sIiwgSVZNX1BPU19TWU1CT0xfT05MWSwgOCkKIAlHRVRfU1RSSU5HKCJJVk1fRGV2aWNlTmFtZSIsIElWTV9QT1NfU0hPUlRfVEVYVCwgNjQpCkBAIC0yODMsOSArMjgzLDkgQEAKIAlHRVRfU1RSSU5HKCJJVk1fQ3VzdG9tZXJJRCIsIElWTV9QT1NfQ1VTVE9NRVJfSUQsIDMyKQogCUdFVF9TVFJJTkcoIklWTV9DdXN0b21lclByb2R1Y3RJRCIsIElWTV9QT1NfQ1VTVE9NRVJfUFJPRF9JRCwgMzIpCiAKLQlpZiAoaXZtX2NoZWNrX2NyYyAoJmJ1ZltDRkdfSVZNX0VFUFJPTV9QQUdFX0xFTiAqIDJdLCAyKSAhPSAwKQorCWlmIChpdm1fY2hlY2tfY3JjICgmYnVmW0NPTkZJR19TWVNfSVZNX0VFUFJPTV9QQUdFX0xFTiAqIDJdLCAyKSAhPSAwKQogCQlyZXR1cm4gLTI7Ci0JaXZtX2FuYWx5emVfYmxvY2syICgmYnVmW0NGR19JVk1fRUVQUk9NX1BBR0VfTEVOICogMl0sIENGR19JVk1fRUVQUk9NX1BBR0VfTEVOKTsKKwlpdm1fYW5hbHl6ZV9ibG9jazIgKCZidWZbQ09ORklHX1NZU19JVk1fRUVQUk9NX1BBR0VfTEVOICogMl0sIENPTkZJR19TWVNfSVZNX0VFUFJPTV9QQUdFX0xFTik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTI5MywxMyArMjkzLDEzIEBACiBpbnQgaXZtX3JlYWRfZWVwcm9tICh2b2lkKQogewogCUkyQ19NVVhfREVWSUNFICpkZXYgPSBOVUxMOwotCXVjaGFyIGkyY19idWZmZXJbQ0ZHX0lWTV9FRVBST01fTUFYX0xFTl07CisJdWNoYXIgaTJjX2J1ZmZlcltDT05GSUdfU1lTX0lWTV9FRVBST01fTUFYX0xFTl07CiAJdWNoYXIJKmJ1ZjsKLQl1bnNpZ25lZCBkZXZfYWRkciA9IENGR19JVk1fRUVQUk9NX0FEUjsKKwl1bnNpZ25lZCBkZXZfYWRkciA9IENPTkZJR19TWVNfSVZNX0VFUFJPTV9BRFI7CiAKIAkvKiBGaXJzdCBpbml0IHRoZSBCdXMsIHNlbGVjdCB0aGUgQnVzICovCi0jaWYgZGVmaW5lZChDRkdfSTJDX0lWTV9CVVMpCi0JZGV2ID0gaTJjX211eF9pZGVudF9tdXhzdHJpbmcgKCh1Y2hhciAqKUNGR19JMkNfSVZNX0JVUyk7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0kyQ19JVk1fQlVTKQorCWRldiA9IGkyY19tdXhfaWRlbnRfbXV4c3RyaW5nICgodWNoYXIgKilDT05GSUdfU1lTX0kyQ19JVk1fQlVTKTsKICNlbHNlCiAJYnVmID0gKHVuc2lnbmVkIGNoYXIgKikgZ2V0ZW52ICgiRUVwcm9tX2l2bSIpOwogCWlmIChidWYgIT0gTlVMTCkKQEAgLTMxNSwyNCArMzE1LDI0IEBACiAJaWYgKGJ1ZiAhPSBOVUxMKQogCQlkZXZfYWRkciA9IHNpbXBsZV9zdHJ0b3VsICgoY2hhciAqKWJ1ZiwgTlVMTCwgMTYpOwogCi0JaWYgKGVlcHJvbV9yZWFkIChkZXZfYWRkciwgMCwgaTJjX2J1ZmZlciwgQ0ZHX0lWTV9FRVBST01fTUFYX0xFTikgIT0gMCkgeworCWlmIChlZXByb21fcmVhZCAoZGV2X2FkZHIsIDAsIGkyY19idWZmZXIsIENPTkZJR19TWVNfSVZNX0VFUFJPTV9NQVhfTEVOKSAhPSAwKSB7CiAJCXByaW50ZiAoIkVycm9yIHJlYWRpbmcgRUVwcm9tXG4iKTsKIAkJcmV0dXJuIC0yOwogCX0KIAotCXJldHVybiBpdm1fYW5hbHl6ZV9lZXByb20gKGkyY19idWZmZXIsIENGR19JVk1fRUVQUk9NX01BWF9MRU4pOworCXJldHVybiBpdm1fYW5hbHl6ZV9lZXByb20gKGkyY19idWZmZXIsIENPTkZJR19TWVNfSVZNX0VFUFJPTV9NQVhfTEVOKTsKIH0KIAotI2lmIGRlZmluZWQoQ0ZHX0kyQ19JTklUX0JPQVJEKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JMkNfSU5JVF9CT0FSRCkKICNkZWZpbmUgREVMQVlfQUJPUlRfU0VRCQk2MgotI2RlZmluZSBERUxBWV9IQUxGX1BFUklPRAkoNTAwIC8gKENGR19JMkNfU1BFRUQgLyAxMDAwKSkKKyNkZWZpbmUgREVMQVlfSEFMRl9QRVJJT0QJKDUwMCAvIChDT05GSUdfU1lTX0kyQ19TUEVFRCAvIDEwMDApKQogCiAjaWYgZGVmaW5lZChDT05GSUdfTUdDT0dFKQogI2RlZmluZSBTREFfTUFTSwkweDAwMDEwMDAwCiAjZGVmaW5lIFNDTF9NQVNLCTB4MDAwMjAwMDAKIHN0YXRpYyB2b2lkIHNldF9waW4gKGludCBzdGF0ZSwgdW5zaWduZWQgbG9uZyBtYXNrKQogewotCXZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkciAoKGltbWFwX3QgKilDRkdfSU1NUiwgMyk7CisJdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyICgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiwgMyk7CiAKIAlpZiAoc3RhdGUpCiAJCWlvcC0+cGRhdCB8PSAobWFzayk7CkBAIC0zNDQsNyArMzQ0LDcgQEAKIAogc3RhdGljIGludCBnZXRfcGluICh1bnNpZ25lZCBsb25nIG1hc2spCiB7Ci0Jdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyICgoaW1tYXBfdCAqKUNGR19JTU1SLCAzKTsKKwl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wID0gaW9wb3J0X2FkZHIgKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SLCAzKTsKIAogCWlvcC0+cGRpciAmPSB+KG1hc2spOwogCXJldHVybiAoMCAhPSAoaW9wLT5wZGF0ICYgKG1hc2spKSk7CkBAIC0zNzMsNyArMzczLDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19IQVJEX0kyQykKIHN0YXRpYyB2b2lkIHNldHBvcnRzIChpbnQgZ3BpbykKIHsKLQl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wID0gaW9wb3J0X2FkZHIgKChpbW1hcF90ICopQ0ZHX0lNTVIsIDMpOworCXZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkciAoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIsIDMpOwogCiAJaWYgKGdwaW8pIHsKIAkJaW9wLT5wcGFyICY9IH4oU0RBX01BU0sgfCBTQ0xfTUFTSyk7CkBAIC00NzQsNyArNDc0LDcgQEAKIHZvaWQgaTJjX2luaXRfYm9hcmQodm9pZCkKIHsKICNpZiBkZWZpbmVkKENPTkZJR19IQVJEX0kyQykKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVIgOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIgOwogCXZvbGF0aWxlIGkyYzgyNjBfdCAqaTJjCT0gKGkyYzgyNjBfdCAqKSZpbW1hcC0+aW1faTJjOwogCiAJLyogZGlzYWJsZSBJMkMgY29udHJvbGxlciBmaXJzdCwgb3RoZXJ3aGlzZSBpdCB0aGlua3Mgd2Ugd2FudCB0byAgICAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQva2V5bWlsZS9tZ2NvZ2UvbWdjb2dlLmMgYi9ib2FyZC9rZXltaWxlL21nY29nZS9tZ2NvZ2UuYwppbmRleCAzMTcwM2FiLi43ZDRkOWU2IDEwMDY0NAotLS0gYS9ib2FyZC9rZXltaWxlL21nY29nZS9tZ2NvZ2UuYworKysgYi9ib2FyZC9rZXltaWxlL21nY29nZS9tZ2NvZ2UuYwpAQCAtMjM4LDcgKzIzOCw3IEBACiAJICogIGFjY2Vzc2luZyB0aGUgU0RSQU0gd2l0aCBhIHNpbmdsZS1ieXRlIHRyYW5zYWN0aW9uLiIKIAkgKgogCSAqIFRoZSBhcHByb3ByaWF0ZSBCUngvT1J4IHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzZXQgd2hlbiB3ZQotCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENGR19TRFJBTV9CQVNFLgorCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENPTkZJR19TWVNfU0RSQU1fQkFTRS4KIAkgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9QUkVBOwpAQCAtMjQ5LDcgKzI0OSw3IEBACiAJCSpiYXNlID0gYzsKIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9NUlc7Ci0JKihiYXNlICsgQ0ZHX01SU19PRkZTKSA9IGM7CS8qIHNldHRpbmcgTVIgb24gYWRkcmVzcyBsaW5lcyAqLworCSooYmFzZSArIENPTkZJR19TWVNfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfTk9STSB8IFBTRE1SX1JGRU47CiAJKmJhc2UgPSBjOwpAQCAtMjYyLDIwICsyNjIsMjAgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCWxvbmcgcHNpemU7CiAKLQltZW1jdGwtPm1lbWNfcHNydCA9IENGR19QU1JUOwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfcHNydCA9IENPTkZJR19TWVNfUFNSVDsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCS8qIDYweCBTRFJBTSBzZXR1cDoKIAkgKi8KLQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUiwgQ0ZHX09SMSwKLQkJCQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUiwgQ09ORklHX1NZU19PUjEsCisJCQkJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJaWNhY2hlX2VuYWJsZSAoKTsKIApAQCAtMjk1LDggKzI5NSw4IEBACiBpbnQgYm9hcmRfZWFybHlfaW5pdF9yICh2b2lkKQogewogCS8qIHNldHVwIHRoZSBVUElPeCAqLwotCSooY2hhciAqKShDRkdfUElHR1lfQkFTRSArIDB4MDIpID0gMHhjMDsKLQkqKGNoYXIgKikoQ0ZHX1BJR0dZX0JBU0UgKyAweDAzKSA9IDB4MTU7CisJKihjaGFyICopKENPTkZJR19TWVNfUElHR1lfQkFTRSArIDB4MDIpID0gMHhjMDsKKwkqKGNoYXIgKikoQ09ORklHX1NZU19QSUdHWV9CQVNFICsgMHgwMykgPSAweDE1OwogCXJldHVybiAwOwogfQogCkBAIC0zMzIsMTIgKzMzMiwxMiBAQAogCQkJImVycjolc1xuIiwgZmR0X3N0cmVycm9yIChub2Rlb2Zmc2V0KSk7CiAJfQogCS8qIHVwZGF0ZSBGbGFzaCBhZGRyLCBzaXplICovCi0JZmxhc2hfZGF0YVsyXSA9IGNwdV90b19iZTMyIChDRkdfRkxBU0hfQkFTRSk7Ci0JZmxhc2hfZGF0YVszXSA9IGNwdV90b19iZTMyIChDRkdfRkxBU0hfU0laRSk7CisJZmxhc2hfZGF0YVsyXSA9IGNwdV90b19iZTMyIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UpOworCWZsYXNoX2RhdGFbM10gPSBjcHVfdG9fYmUzMiAoQ09ORklHX1NZU19GTEFTSF9TSVpFKTsKIAlmbGFzaF9kYXRhWzRdID0gY3B1X3RvX2JlMzIgKDEpOwogCWZsYXNoX2RhdGFbNV0gPSBjcHVfdG9fYmUzMiAoMCk7Ci0JZmxhc2hfZGF0YVs2XSA9IGNwdV90b19iZTMyIChDRkdfRkxBU0hfQkFTRV8xKTsKLQlmbGFzaF9kYXRhWzddID0gY3B1X3RvX2JlMzIgKENGR19GTEFTSF9TSVpFXzEpOworCWZsYXNoX2RhdGFbNl0gPSBjcHVfdG9fYmUzMiAoQ09ORklHX1NZU19GTEFTSF9CQVNFXzEpOworCWZsYXNoX2RhdGFbN10gPSBjcHVfdG9fYmUzMiAoQ09ORklHX1NZU19GTEFTSF9TSVpFXzEpOwogCW5vZGVvZmZzZXQgPSBmZHRfcGF0aF9vZmZzZXQgKGJsb2IsICIvbG9jYWxidXMiKTsKIAlpZiAobm9kZW9mZnNldCA+PSAwKSB7CiAJCXJldCA9IGZkdF9zZXRwcm9wIChibG9iLCBub2Rlb2Zmc2V0LCAicmFuZ2VzIiwgZmxhc2hfZGF0YSwKZGlmZiAtLWdpdCBhL2JvYXJkL2tleW1pbGUvbWdzdXZkL21nc3V2ZC5jIGIvYm9hcmQva2V5bWlsZS9tZ3N1dmQvbWdzdXZkLmMKaW5kZXggZWNjOGQ3NS4uOTEyZTE3NyAxMDA2NDQKLS0tIGEvYm9hcmQva2V5bWlsZS9tZ3N1dmQvbWdzdXZkLmMKKysrIGIvYm9hcmQva2V5bWlsZS9tZ3N1dmQvbWdzdXZkLmMKQEAgLTcwLDcgKzcwLDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemU7CiAKQEAgLTgzLDcgKzgzLDcgQEAKIAkgKiB3aXRoIHR3byBTRFJBTSBiYW5rcyBvciBmb3VyIGN5Y2xlcyBldmVyeSAzMS4yIHVzIHdpdGggb25lCiAJICogYmFuay4gSXQgd2lsbCBiZSBhZGp1c3RlZCBhZnRlciBtZW1vcnkgc2l6aW5nLgogCSAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCiAJLyoKIAkgKiBUaGUgZm9sbG93aW5nIHZhbHVlIGlzIHVzZWQgYXMgYW4gYWRkcmVzcyAoaS5lLiBvcGNvZGUpIGZvcgpAQCAtOTgsMTcgKzk4LDE3IEBACiAJICogICAgICAgfCAgKy0tLS0tLS0tLS0tIE9wZXJhdGluZyBNb2RlID0gU3RhbmRhcmQKIAkgKiAgICAgICArLS0tLS0tLS0tLS0tLS0gV3JpdGUgQnVyc3QgTW9kZSA9IFByb2dyYW1tZWQgQnVyc3QgTGVuZ3RoCiAJICovCi0JbWVtY3RsLT5tZW1jX21hciA9IENGR19NQVI7CisJbWVtY3RsLT5tZW1jX21hciA9IENPTkZJR19TWVNfTUFSOwogCiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rcyAxIHRvIHRoZSBTRFJBTSBiYW5rcyAxIGF0CiAJICogcHJlbGltaW5hcnkgYWRkcmVzc2VzIC0gdGhlc2UgaGF2ZSB0byBiZSBtb2RpZmllZCBhZnRlciB0aGUKIAkgKiBTRFJBTSBzaXplIGhhcyBiZWVuIGRldGVybWluZWQuCiAJICovCi0JbWVtY3RsLT5tZW1jX29yMSA9IENGR19PUjFfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjEgPSBDRkdfQlIxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjEgPSBDT05GSUdfU1lTX0JSMV9QUkVMSU07CiAKLQltZW1jdGwtPm1lbWNfbWJtciA9IENGR19NQk1SICYgKH4oTUJNUl9QVEJFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21ibXIgPSBDT05GSUdfU1lTX01CTVIgJiAofihNQk1SX1BUQkUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAogCXVkZWxheSAoMjAwKTsKIApAQCAtMTQyLDggKzE0Miw4IEBACiBpbnQgYm9hcmRfZWFybHlfaW5pdF9yKHZvaWQpCiB7CiAJLyogc2V0dXAgdGhlIFVQSU94ICovCi0JKihjaGFyICopKENGR19QSUdHWV9CQVNFICsgMHgwMikgPSAweGMwOwotCSooY2hhciAqKShDRkdfUElHR1lfQkFTRSArIDB4MDMpID0gMHgzNTsKKwkqKGNoYXIgKikoQ09ORklHX1NZU19QSUdHWV9CQVNFICsgMHgwMikgPSAweGMwOworCSooY2hhciAqKShDT05GSUdfU1lTX1BJR0dZX0JBU0UgKyAweDAzKSA9IDB4MzU7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2tvcmF0L2NvbmZpZy5tayBiL2JvYXJkL2tvcmF0L2NvbmZpZy5tawppbmRleCBmYTgzNzRmLi43MzE4MGRiIDEwMDY0NAotLS0gYS9ib2FyZC9rb3JhdC9jb25maWcubWsKKysrIGIvYm9hcmQva29yYXQvY29uZmlnLm1rCkBAIC0zNSw3ICszNSw3IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Q0ZGMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhDRkYwMDAwCiBlbmRpZgogCiBpZmVxICgkKHBlcm0pLDEpCmRpZmYgLS1naXQgYS9ib2FyZC9rb3JhdC9pbml0LlMgYi9ib2FyZC9rb3JhdC9pbml0LlMKaW5kZXggYmY4YjJjOC4uZWE0M2ExZiAxMDA2NDQKLS0tIGEvYm9hcmQva29yYXQvaW5pdC5TCisrKyBiL2JvYXJkL2tvcmF0L2luaXQuUwpAQCAtNTAsMjcgKzUwLDI3IEBACiAJICogZ2VuZXJhdGVkIGR5bmFtaWNhbGx5IGluIHRoZSBTUEQgRERSMiBkZXRlY3Rpb24gcm91dGluZS4KIAkgKi8KIAotI2lmZGVmIENGR19JTklUX1JBTV9EQ0FDSEUKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfUkFNX0RDQUNIRQogCS8qIFRMQi1lbnRyeSBmb3IgaW5pdC1yYW0gaW4gZGNhY2hlIChTQV9JIG11c3QgYmUgdHVybmVkIG9mZiEpICovCi0JdGxiZW50cnkoIENGR19JTklUX1JBTV9BRERSLCBTWl82NEssIENGR19JTklUX1JBTV9BRERSLCAwLAorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIFNaXzY0SywgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCAwLAogCQkgIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQogI2VuZGlmCiAKIAkvKiBUTEItZW50cnkgZm9yIFBDSSBNZW1vcnkgKi8KLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFICsgMHgwMDAwMDAwMCwgU1pfMjU2TSwKLQkJICBDRkdfUENJX01FTUJBU0UgKyAweDAwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRSArIDB4MDAwMDAwMDAsIFNaXzI1Nk0sCisJCSAgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSArIDB4MDAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRSArIDB4MTAwMDAwMDAsIFNaXzI1Nk0sCi0JCSAgQ0ZHX1BDSV9NRU1CQVNFICsgMHgxMDAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UgKyAweDEwMDAwMDAwLCBTWl8yNTZNLAorCQkgIENPTkZJR19TWVNfUENJX01FTUJBU0UgKyAweDEwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKIAotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UgKyAweDIwMDAwMDAwLCBTWl8yNTZNLAotCQkgIENGR19QQ0lfTUVNQkFTRSArIDB4MjAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFICsgMHgyMDAwMDAwMCwgU1pfMjU2TSwKKwkJICBDT05GSUdfU1lTX1BDSV9NRU1CQVNFICsgMHgyMDAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCiAKLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFICsgMHgzMDAwMDAwMCwgU1pfMjU2TSwKLQkJICBDRkdfUENJX01FTUJBU0UgKyAweDMwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRSArIDB4MzAwMDAwMDAsIFNaXzI1Nk0sCisJCSAgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSArIDB4MzAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCiAJLyogVExCLWVudHJ5IGZvciBFQkMgKi8KLQl0bGJlbnRyeSggQ0ZHX0NQTERfQkFTRSwgU1pfMUssIENGR19DUExEX0JBU0UsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0NQTERfQkFTRSwgU1pfMUssIENPTkZJR19TWVNfQ1BMRF9CQVNFLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKIAogCS8qIFRMQi1lbnRyeSBmb3IgSW50ZXJuYWwgUmVnaXN0ZXJzICYgT0NNICovCiAJLyogSSB3b25kZXIgd2h5IHRoaXMgbXVzdCBiZSBleGVjdXRhYmxlIC0tIGxyakBhY20ub3JnIDIwMDctMTAtMDggKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2tvcmF0L2tvcmF0LmMgYi9ib2FyZC9rb3JhdC9rb3JhdC5jCmluZGV4IDg3ODdlMjMuLjVhZDc1ZjcgMTAwNjQ0Ci0tLSBhL2JvYXJkL2tvcmF0L2tvcmF0LmMKKysrIGIvYm9hcmQva29yYXQva29yYXQuYwpAQCAtMzgsNyArMzgsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogdWxvbmcgZmxhc2hfZ2V0X3NpemUodWxvbmcgYmFzZSwgaW50IGJhbmtudW0pOwogCkBAIC00NiwxMSArNDYsMTEgQEAKIHZvaWQga29yYXRfYnV6emVyKGludCBjb25zdCBvbikKIHsKIAlpZiAob24pIHsKLQkJb3V0XzgoKHU4ICopIENGR19DUExEX0JBU0UgKyAweDA1LAotCQkgICAgICBpbl84KCh1OCAqKSBDRkdfQ1BMRF9CQVNFICsgMHgwNSkgfCAweDgwKTsKKwkJb3V0XzgoKHU4ICopIENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMHgwNSwKKwkJICAgICAgaW5fOCgodTggKikgQ09ORklHX1NZU19DUExEX0JBU0UgKyAweDA1KSB8IDB4ODApOwogCX0gZWxzZSB7Ci0JCW91dF84KCh1OCAqKSBDRkdfQ1BMRF9CQVNFICsgMHgwNSwKLQkJICAgICAgaW5fOCgodTggKikgQ0ZHX0NQTERfQkFTRSArIDB4MDUpICYgfjB4ODApOworCQlvdXRfOCgodTggKikgQ09ORklHX1NZU19DUExEX0JBU0UgKyAweDA1LAorCQkgICAgICBpbl84KCh1OCAqKSBDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4MDUpICYgfjB4ODApOwogCX0KIH0KICNlbmRpZgpAQCAtNjYsMTYgKzY2LDE2IEBACiAKIAlleHRlcm4gdm9pZCBrb3JhdF9icmFuY2hfYWJzb2x1dGUodWludDMyX3QgYWRkcik7CiAKLQlmb3IgKG1zY291bnQgPSAwOyAgbXNjb3VudCA8IENGR19LT1JBVF9NQU5fUkVTRVRfTVM7ICsrbXNjb3VudCkgeworCWZvciAobXNjb3VudCA9IDA7ICBtc2NvdW50IDwgQ09ORklHX1NZU19LT1JBVF9NQU5fUkVTRVRfTVM7ICsrbXNjb3VudCkgewogCQl1ZGVsYXkoMTAwMCk7Ci0JCWlmIChncGlvX3JlYWRfaW5fYml0KENGR19HUElPX1JFU0VUX1BSRVNTRURfKSkgeworCQlpZiAoZ3Bpb19yZWFkX2luX2JpdChDT05GSUdfU1lTX0dQSU9fUkVTRVRfUFJFU1NFRF8pKSB7CiAJCQkvKiBUaGlzIGNhbGwgZG9lcyBub3QgcmV0dXJuLiAqLwogCQkJa29yYXRfYnJhbmNoX2Fic29sdXRlKAotCQkJCUNGR19GTEFTSDFfVE9QIC0gMiAqIENPTkZJR19FTlZfU0VDVF9TSVpFIC0gNCk7CisJCQkJQ09ORklHX1NZU19GTEFTSDFfVE9QIC0gMiAqIENPTkZJR19FTlZfU0VDVF9TSVpFIC0gNCk7CiAJCX0KIAl9CiAJa29yYXRfYnV6emVyKDEpOwotCXdoaWxlICghZ3Bpb19yZWFkX2luX2JpdChDRkdfR1BJT19SRVNFVF9QUkVTU0VEXykpCisJd2hpbGUgKCFncGlvX3JlYWRfaW5fYml0KENPTkZJR19TWVNfR1BJT19SRVNFVF9QUkVTU0VEXykpCiAJCXVkZWxheSgxMDAwKTsKIAogCWtvcmF0X2J1enplcigwKTsKQEAgLTExNSwzMyArMTE1LDMzIEBACiAJICogVGFrZSBzaW0gY2FyZCByZWFkZXIgYW5kIENGIGNvbnRyb2xsZXIgb3V0IG9mIHJlc2V0LiAgQWxzbyBlbmFibGUgUEhZCiAJICogYXV0by1kZXRlY3QgdW50aWwgYm9hcmQtc3BlY2lmaWMgUEhZIHJlc2V0cyBhcmUgYXZhaWxhYmxlLgogCSAqLwotCW91dF84KCh1OCAqKSBDRkdfQ1BMRF9CQVNFICsgMHgwMiwgMHhDMCk7CisJb3V0XzgoKHU4ICopIENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMHgwMiwgMHhDMCk7CiAKIAkvKiBDb25maWd1cmUgdGhlIHR3byBFdGhlcm5ldCBQSFlzLiAgRm9yIGVhY2ggUEhZLCBjb25maWd1cmUgZm9yIGZpYmVyCiAJICogaWYgdGhlIFNGUCBtb2R1bGUgaXMgcHJlc2VudCwgYW5kIGZvciBjb3BwZXIgaWYgaXQgaXMgbm90IHByZXNlbnQuCiAJICovCiAJZm9yIChldGggPSAwOyBldGggPCAyOyArK2V0aCkgewotCQlpZiAoZ3Bpb19yZWFkX2luX2JpdChDRkdfR1BJT19TRlAwX1BSRVNFTlRfICsgZXRoKSkgeworCQlpZiAoZ3Bpb19yZWFkX2luX2JpdChDT05GSUdfU1lTX0dQSU9fU0ZQMF9QUkVTRU5UXyArIGV0aCkpIHsKIAkJCS8qIFNGUCBtb2R1bGUgbm90IHByZXNlbnQ6IGNvbmZpZ3VyZSBQSFkgZm9yIGNvcHBlci4gKi8KIAkJCS8qIFNldCBQSFkgdG8gYXV0b25lZ290YXRlIDEwIE1CLCAxMDBNQiwgb3IgMSBHQiAqLwotCQkJb3V0XzgoKHU4ICopIENGR19DUExEX0JBU0UgKyAweDAzLAotCQkJICAgICAgaW5fOCgodTggKikgQ0ZHX0NQTERfQkFTRSArIDB4MDMpIHwKKwkJCW91dF84KCh1OCAqKSBDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4MDMsCisJCQkgICAgICBpbl84KCh1OCAqKSBDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4MDMpIHwKIAkJCSAgICAgIDB4MDYgPDwgKDQgKiBldGgpKTsKIAkJfSBlbHNlIHsKIAkJCS8qIFNGUCBtb2R1bGUgcHJlc2VudDogY29uZmlndXJlIFBIWSBmb3IgZmliZXIgYW5kCiAJCQkgICBlbmFibGUgb3V0cHV0ICovCi0JCQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19QSFkwX0ZJQkVSX1NFTCArIGV0aCwgMSk7Ci0JCQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19TRlAwX1RYX0VOXyArIGV0aCwgMCk7CisJCQlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fUEhZMF9GSUJFUl9TRUwgKyBldGgsIDEpOworCQkJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX1NGUDBfVFhfRU5fICsgZXRoLCAwKTsKIAkJfQogCX0KIAkvKiBlbmFibGUgRXRoZXJuZXQ6IHNldCBHUElPNDUgYW5kIEdQSU80NiB0byAxICovCi0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fUEhZMF9FTiwgMSk7Ci0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fUEhZMV9FTiwgMSk7CisJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX1BIWTBfRU4sIDEpOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19QSFkxX0VOLCAxKTsKIAogCS8qIFdhaXQgMSBtcywgdGhlbiBlbmFibGUgRmliZXIgc2lnbmFsIGRldGVjdCB0byBQSFlzLiAqLwogCXVkZWxheSgxMDAwKTsKLQlvdXRfOCgodTggKikgQ0ZHX0NQTERfQkFTRSArIDB4MDMsCi0JICAgICAgaW5fOCgodTggKikgQ0ZHX0NQTERfQkFTRSArIDB4MDMpIHwgMHg4OCk7CisJb3V0XzgoKHU4ICopIENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMHgwMywKKwkgICAgICBpbl84KCh1OCAqKSBDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4MDMpIHwgMHg4OCk7CiAKIAkvKiBzZWxlY3QgRXRoZXJuZXQgKGFuZCBvcHRpb25hbGx5IElJQzEpIHBpbnMgKi8KIAltZnNkcihTRFIwX1BGQzEsIHNkcjBfcGZjMSk7CkBAIC0xNzYsOCArMTc2LDggQEAKIAlpZiAoMSAhPSBiYW5rbnVtKQogCQlyZXR1cm4gMDsKIAotCWluZm8tPnNpemUJCT0gQ0ZHX0ZMQVNIMF9TSVpFOwotCWluZm8tPnNlY3Rvcl9jb3VudAk9IENGR19GTEFTSDBfU0laRSAvIDB4MjAwMDA7CisJaW5mby0+c2l6ZQkJPSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFOworCWluZm8tPnNlY3Rvcl9jb3VudAk9IENPTkZJR19TWVNfRkxBU0gwX1NJWkUgLyAweDIwMDAwOwogCWluZm8tPmZsYXNoX2lkCQk9IDB4MDEwMDAwMDA7CiAJaW5mby0+cG9ydHdpZHRoCQk9IDI7CiAJaW5mby0+Y2hpcHdpZHRoCQk9IDI7CkBAIC0xOTIsMTIgKzE5MiwxMiBAQAogCWluZm8tPm1hbnVmYWN0dXJlcl9pZAk9IDE7CiAJaW5mby0+ZGV2aWNlX2lkCQk9IDB4MDA3RTsKIAotI2lmIENGR19GTEFTSDBfU0laRSA9PSAweDAxMDAwMDAwCisjaWYgQ09ORklHX1NZU19GTEFTSDBfU0laRSA9PSAweDAxMDAwMDAwCiAJaW5mby0+ZGV2aWNlX2lkMgk9IDB4MjEwMTsKLSNlbGlmIENGR19GTEFTSDBfU0laRSA9PSAweDA0MDAwMDAwCisjZWxpZiBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFID09IDB4MDQwMDAwMDAKIAlpbmZvLT5kZXZpY2VfaWQyCT0gMHgyMzAxOwogI2Vsc2UKLSNlcnJvciBVbmFibGUgdG8gc2V0IGRldmljZV9pZDIgZm9yIGN1cnJlbnQgQ0ZHX0ZMQVNIMF9TSVpFCisjZXJyb3IgVW5hYmxlIHRvIHNldCBkZXZpY2VfaWQyIGZvciBjdXJyZW50IENPTkZJR19TWVNfRkxBU0gwX1NJWkUKICNlbmRpZgogCiAJaW5mby0+ZXh0X2FkZHIJCT0gMHgwMDQwOwpAQCAtMzQ5LDEzICszNDksMTMgQEAKIAl1bnNpZ25lZCBsb25nIHVzYjJkMGNyID0gMDsKIAl1bnNpZ25lZCBsb25nIHVzYjJwaHkwY3IsIHVzYjJoMGNyID0gMDsKIAl1bnNpZ25lZCBsb25nIHNkcjBfcGZjMTsKLQl1aW50MzJfdCBjb25zdCBmbGFzaDFfc2l6ZSA9IGdkLT5iZC0+YmlfZmxhc2hzaXplIC0gQ0ZHX0ZMQVNIMF9TSVpFOworCXVpbnQzMl90IGNvbnN0IGZsYXNoMV9zaXplID0gZ2QtPmJkLT5iaV9mbGFzaHNpemUgLSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFOwogCWNoYXIgY29uc3QgKmNvbnN0IGFjdCA9IGdldGVudigidXNiYWN0Iik7CiAKIAkvKgogCSAqIFJlLWRvIEZMQVNIMSBzaXppbmcgYW5kIGFkanVzdCBmbGFzaCBzdGFydCBhbmQgb2Zmc2V0LgogCSAqLwotCWdkLT5iZC0+YmlfZmxhc2hzdGFydCA9IENGR19GTEFTSDFfVE9QIC0gZmxhc2gxX3NpemU7CisJZ2QtPmJkLT5iaV9mbGFzaHN0YXJ0ID0gQ09ORklHX1NZU19GTEFTSDFfVE9QIC0gZmxhc2gxX3NpemU7CiAJZ2QtPmJkLT5iaV9mbGFzaG9mZnNldCA9IDA7CiAKIAltdGRjcihlYmNjZmdhLCBwYjFjcik7CkBAIC0zNzUsMjMgKzM3NSwyMyBAQAogCSAqIGVudmlyb25tZW50CiAJICovCiAJZ2QtPmJkLT5iaV9mbGFzaG9mZnNldCA9Ci0JCUNPTkZJR19FTlZfQUREUl9SRURVTkQgKyBDT05GSUdfRU5WX1NFQ1RfU0laRSAtIENGR19GTEFTSDFfQUREUjsKKwkJQ09ORklHX0VOVl9BRERSX1JFRFVORCArIENPTkZJR19FTlZfU0VDVF9TSVpFIC0gQ09ORklHX1NZU19GTEFTSDFfQUREUjsKIAogCW10ZGNyKGViY2NmZ2EsIHBiMWNyKTsKIAlwYmNyID0gbWZkY3IoZWJjY2ZnZCk7Ci0Jc2l6ZV92YWwgPSBmZnMoZ2QtPmJkLT5iaV9mbGFzaHNpemUgLSBDRkdfRkxBU0gwX1NJWkUpIC0gMjE7CisJc2l6ZV92YWwgPSBmZnMoZ2QtPmJkLT5iaV9mbGFzaHNpemUgLSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFKSAtIDIxOwogCXBiY3IgPSAocGJjciAmIDB4MDAwMWZmZmYpIHwgZ2QtPmJkLT5iaV9mbGFzaHN0YXJ0IHwgKHNpemVfdmFsIDw8IDE3KTsKIAltdGRjcihlYmNjZmdhLCBwYjFjcik7CiAJbXRkY3IoZWJjY2ZnZCwgcGJjcik7CiAKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogI2lmIGRlZmluZWQoQ09ORklHX0tPUkFUX1BFUk1BTkVOVCkKLQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTiAtIDEsCisJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCSAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gLSAxLAogCQkJICAgIGZsYXNoX2luZm8gKyAxKTsKICNlbHNlCi0JKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDRkdfTU9OSVRPUl9CQVNFLAotCQkJICAgIENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4gLSAxLAorCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOIC0gMSwKIAkJCSAgICBmbGFzaF9pbmZvKTsKICNlbmRpZgogCS8qIEVudiBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KQEAgLTUzNiw3ICs1MzYsNyBAQAogCiAJc2V0X3NlcmlhbF9udW1iZXIoKTsKIAlzZXRfbWFjX2FkZHJlc3NlcygpOwotCWdwaW9fd3JpdGVfYml0KENGR19HUElPX0FUTUVHQV9SRVNFVF8sIDEpOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19BVE1FR0FfUkVTRVRfLCAxKTsKIAogCXJldHVybiAwOwogfQpAQCAtNTQ0LDIwICs1NDQsMjAgQEAKIGludCBjaGVja2JvYXJkKHZvaWQpCiB7CiAJY2hhciBjb25zdCAqY29uc3QgcyA9IGdldGVudigic2VyaWFsIyIpOwotCXU4IGNvbnN0IHJldiA9IGluXzgoKHU4ICopIENGR19DUExEX0JBU0UgKyAwKTsKKwl1OCBjb25zdCByZXYgPSBpbl84KCh1OCAqKSBDT05GSUdfU1lTX0NQTERfQkFTRSArIDApOwogCiAJcHJpbnRmKCJCb2FyZDogS29yYXQsIFJldi4gJVgiLCByZXYpOwogCWlmIChzKQogCQlwcmludGYoIiwgc2VyaWFsIyAlcyIsIHMpOwogCiAJcHJpbnRmKCIuXG4gICAgICAgRXRoZXJuZXQgUEhZIDA6ICIpOwotCWlmIChncGlvX3JlYWRfb3V0X2JpdChDRkdfR1BJT19QSFkwX0ZJQkVSX1NFTCkpCisJaWYgKGdwaW9fcmVhZF9vdXRfYml0KENPTkZJR19TWVNfR1BJT19QSFkwX0ZJQkVSX1NFTCkpCiAJCXByaW50ZigiZmliZXIiKTsKIAllbHNlCiAJCXByaW50ZigiY29wcGVyIik7CiAKIAlwcmludGYoIiwgUEhZIDE6ICIpOwotCWlmIChncGlvX3JlYWRfb3V0X2JpdChDRkdfR1BJT19QSFkxX0ZJQkVSX1NFTCkpCisJaWYgKGdwaW9fcmVhZF9vdXRfYml0KENPTkZJR19TWVNfR1BJT19QSFkxX0ZJQkVSX1NFTCkpCiAJCXByaW50ZigiZmliZXIiKTsKIAllbHNlCiAJCXByaW50ZigiY29wcGVyIik7CkBAIC02NDQsNyArNjQ0LDcgQEAKICAqIGluYm91bmQgbWFwIChQSU0pLiBCdXQgdGhlIGJvb3RzdHJhcCBjb25maWcgY2hvaWNlcyBhcmUgbGltaXRlZCBhbmQKICAqIG1heSBub3QgYmUgc3VmZmljaWVudCBmb3IgYSBnaXZlbiBib2FyZC4KICAqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkKIHZvaWQgcGNpX3RhcmdldF9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSkKIHsKIAkvKgpAQCAtNjYwLDkgKzY2MCw5IEBACiAJICovCiAJb3V0MzJyKFBDSVgwX1BNTTBNQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgTWFzay9BdHRyaWJ1dGUgKi8KIAkJCQkJCS8qIC0gZGlzYWJsZWQgYjQgc2V0dGluZyAqLwotCW91dDMycihQQ0lYMF9QTU0wTEEsIENGR19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0wTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMFBDSUxBLAotCSAgICAgICBDRkdfUENJX01FTUJBU0UpOwkJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KKwkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSk7CQkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0wUENJSEEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIFBDSSBIaWdoIEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NME1BLCAweEUwMDAwMDAxKTsJLyogNTEyTSArIE5vIHByZWZldGNoaW5nLCAqLwogCQkJCQkJLyogYW5kIGVuYWJsZSByZWdpb24gKi8KQEAgLTY3MCw5ICs2NzAsOSBAQAogCW91dDMycihQQ0lYMF9QTU0xTUEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIE1hc2svQXR0cmlidXRlICovCiAJCQkJCQkvKiAtIGRpc2FibGVkIGI0IHNldHRpbmcgKi8KIAlvdXQzMnIoUENJWDBfUE1NMUxBLAotCSAgICAgICBDRkdfUENJX01FTUJBU0UgKyAweDIwMDAwMDAwKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCisJICAgICAgIENPTkZJR19TWVNfUENJX01FTUJBU0UgKyAweDIwMDAwMDAwKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTFQQ0lMQSwKLQkgICAgICAgQ0ZHX1BDSV9NRU1CQVNFICsgMHgyMDAwMDAwMCk7CS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCisJICAgICAgIENPTkZJR19TWVNfUENJX01FTUJBU0UgKyAweDIwMDAwMDAwKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMVBDSUhBLCAweDAwMDAwMDAwKTsJLyogUE1NMCBQQ0kgSGlnaCBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTFNQSwgMHhFMDAwMDAwMSk7CS8qIDUxMk0gKyBObyBwcmVmZXRjaGluZywgKi8KIAkJCQkJCS8qIGFuZCBlbmFibGUgcmVnaW9uICovCkBAIC02ODgsOCArNjg4LDggQEAKIAogCS8qIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL3ZlbmRvciBpZCAqLwogCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX1ZFTkRPUl9JRCwKLQkJCSAgICAgIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKLQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX1NVQlNZU1RFTV9JRCwgQ0ZHX1BDSV9TVUJTWVNfSUQpOworCQkJICAgICAgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKKwlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX1NVQlNZU1RFTV9JRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0lEKTsKIAogCS8qIENvbmZpZ3VyZSBjb21tYW5kIHJlZ2lzdGVyIGFzIGJ1cyBtYXN0ZXIgKi8KIAlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX0NPTU1BTkQsIFBDSV9DT01NQU5EX01BU1RFUik7CkBAIC03MDgsOSArNzA4LDkgQEAKIAkgKi8KIAlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKFBDSV9CREYoMHgwLCAweEMsIDB4MCksIDB4RTQsIDB4MDAwMDAwMjApOwogfQotI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkgKi8KIAotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX01BU1RFUl9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVCkKIHZvaWQgcGNpX21hc3Rlcl9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSkKIHsKIAl1bnNpZ25lZCBzaG9ydCB0ZW1wX3Nob3J0OwpAQCAtNzcxLDcgKzc3MSw3IEBACiAJdmFsWzBdID0gMTsJCQkJLyogY2hpcCBzZWxlY3QgbnVtYmVyICovCiAJdmFsWzFdID0gMDsJCQkJLyogYWx3YXlzIDAgKi8KIAl2YWxbMl0gPSBnZC0+YmQtPmJpX2ZsYXNoc3RhcnQ7Ci0JdmFsWzNdID0gZ2QtPmJkLT5iaV9mbGFzaHNpemUgLSBDRkdfRkxBU0gwX1NJWkU7CisJdmFsWzNdID0gZ2QtPmJkLT5iaV9mbGFzaHNpemUgLSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFOwogCXJjID0gZmR0X2ZpbmRfYW5kX3NldHByb3AoYmxvYiwgIi9wbGIvb3BiL2ViYyIsICJyYW5nZXMiLAogCQkJCSAgdmFsLCBzaXplb2YodmFsKSwgMSk7CiAJaWYgKHJjKQpkaWZmIC0tZ2l0IGEvYm9hcmQva29yYXQvdS1ib290LmxkcyBiL2JvYXJkL2tvcmF0L3UtYm9vdC5sZHMKaW5kZXggYjIwZmIxYy4uM2NmZWM4MyAxMDA2NDQKLS0tIGEvYm9hcmQva29yYXQvdS1ib290LmxkcworKysgYi9ib2FyZC9rb3JhdC91LWJvb3QubGRzCkBAIC0xMzcsNyArMTM3LDcgQEAKICAgICooQ09NTU9OKQogICB9CiAKLSAgcHBjZW52X2Fzc2VydCA9IEFTU0VSVCguIDwgMHhGRkZGODAwMCwgIi5ic3Mgc2VjdGlvbiB0b28gYmlnLCBvdmVybGFwcyAucHBjZW52IHNlY3Rpb24uIFBsZWFzZSB1cGRhdGUgeW91ciBjb25mZ3VyYXRpb246IENGR19NT05JVE9SX0JBU0UsIENGR19NT05JVE9SX0xFTiBhbmQgVEVYVF9CQVNFIG1heSBuZWVkIHRvIGJlIG1vZGlmaWVkLiIpOworICBwcGNlbnZfYXNzZXJ0ID0gQVNTRVJUKC4gPCAweEZGRkY4MDAwLCAiLmJzcyBzZWN0aW9uIHRvbyBiaWcsIG92ZXJsYXBzIC5wcGNlbnYgc2VjdGlvbi4gUGxlYXNlIHVwZGF0ZSB5b3VyIGNvbmZndXJhdGlvbjogQ09ORklHX1NZU19NT05JVE9SX0JBU0UsIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gYW5kIFRFWFRfQkFTRSBtYXkgbmVlZCB0byBiZSBtb2RpZmllZC4iKTsKIAogICBfZW5kID0gLiA7CiAgIFBST1ZJREUgKGVuZCA9IC4pOwpkaWZmIC0tZ2l0IGEvYm9hcmQva3VwL2NvbW1vbi9mbGFzaC5jIGIvYm9hcmQva3VwL2NvbW1vbi9mbGFzaC5jCmluZGV4IDc2ODhjZTIuLjEzNGE5ZDUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2t1cC9jb21tb24vZmxhc2guYworKysgYi9ib2FyZC9rdXAvY29tbW9uL2ZsYXNoLmMKQEAgLTI1LDEyICsyNSwxMiBAQAogI2luY2x1ZGUgPG1wYzh4eC5oPgogCiAjaWZuZGVmCUNPTkZJR19FTlZfQUREUgotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfRkxBU0hfMTZCSVQKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtNDMsMTMgKzQzLDEzIEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMDsKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtNjQsMTcgKzY0LDE3IEBACiAKIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIE9SX0FNX01TSyk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfViB8IEJSX1BTXzE2OworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIE9SX0FNX01TSyk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1YgfCBCUl9QU18xNjsKIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMzI1LDcgKzMyNSw3IEBACiAjZWxzZQogCQkJd2hpbGUgKChzZWN0X2FkZHJbMF0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7CiAjZW5kaWYKLQkJCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQlyZXR1cm4gMTsKIAkJCQl9CkBAIC00NjcsNyArNDY3LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKigodnVfc2hvcnQgKilkZXN0KSAmIDB4MDA4MCkgIT0gKGhpZ2hfZGF0YSAmIDB4MDA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KQEAgLTUwNyw3ICs1MDcsNyBAQAogCXdoaWxlICgoKigodnVfbG9uZyAqKWRlc3QpICYgMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAweDAwODAwMDgwKSkgewogI2VuZGlmCiAKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2t1cC9jb21tb24va3VwLmMgYi9ib2FyZC9rdXAvY29tbW9uL2t1cC5jCmluZGV4IGQwMThlM2MuLmZlYzU0MDcgMTAwNjQ0Ci0tLSBhL2JvYXJkL2t1cC9jb21tb24va3VwLmMKKysrIGIvYm9hcmQva3VwL2NvbW1vbi9rdXAuYwpAQCAtMjcsNyArMjcsNyBAQAogCiBpbnQgbWlzY19pbml0X2YgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBzeXNjb25mOHh4X3QgKnNpdSA9ICZpbW1hcC0+aW1fc2l1X2NvbmY7CiAKIAl3aGlsZSAoc2l1LT5zY19zaXBlbmQgJiAweDIwMDAwMDAwKSB7CkBAIC00Nyw3ICs0Nyw3IEBACiAjaWZkZWYgQ09ORklHX0lERV9MRUQKIHZvaWQgaWRlX2xlZCAodWNoYXIgbGVkLCB1Y2hhciBzdGF0dXMpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCS8qIFdlIGhhdmUgb25lIGxlZCBmb3IgYm90aCBwY21jaWEgc2xvdHMgKi8KIAlpZiAoc3RhdHVzKSB7CQkvKiBsZWQgb24gKi8KQEAgLTYwLDcgKzYwLDcgQEAKIAogdm9pZCBwb3dlcm9uX2tleSAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJaW1tYXAtPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfihQQ19TV0lUQ0gxKTsKIAlpbW1hcC0+aW1faW9wb3J0LmlvcF9wY2RpciAmPSB+KFBDX1NXSVRDSDEpOwpkaWZmIC0tZ2l0IGEvYm9hcmQva3VwL2NvbW1vbi9sb2FkX3Nlcm51bV9ldGhhZGRyLmMgYi9ib2FyZC9rdXAvY29tbW9uL2xvYWRfc2VybnVtX2V0aGFkZHIuYwppbmRleCBiN2I3NDk5Li43NDFlOWE1IDEwMDY0NAotLS0gYS9ib2FyZC9rdXAvY29tbW9uL2xvYWRfc2VybnVtX2V0aGFkZHIuYworKysgYi9ib2FyZC9rdXAvY29tbW9uL2xvYWRfc2VybnVtX2V0aGFkZHIuYwpAQCAtMzMsOCArMzMsOCBAQAogICogVGhlIEtVUCBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jayBpcyBkZWZpbmVkIGFzCiAgKiBmb2xsb3dzOgogICogLSBsb2NhdGVkIGluIGZpcnN0IGZsYXNoIGJhbmsKLSAqIC0gc3RhcnRzIGF0IG9mZnNldCBDRkdfSFdJTkZPX09GRlNFVAotICogLSBzaXplIENGR19IV0lORk9fU0laRQorICogLSBzdGFydHMgYXQgb2Zmc2V0IENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAorICogLSBzaXplIENPTkZJR19TWVNfSFdJTkZPX1NJWkUKICAqCiAgKiBJbnRlcm5hbCBzdHJ1Y3R1cmU6CiAgKiAtIHNlcXVlbmNlIG9mIEFTQ0lJIGNoYXJhY3RlciBsaW5lcwpAQCAtNTUsMTUgKzU1LDE1IEBACiB7CiAJdW5zaWduZWQgY2hhciAqaHdpOwogCWNoYXIgKnZhcjsKLQl1bnNpZ25lZCBjaGFyIGh3aV9zdGFja1tDRkdfSFdJTkZPX1NJWkVdOworCXVuc2lnbmVkIGNoYXIgaHdpX3N0YWNrW0NPTkZJR19TWVNfSFdJTkZPX1NJWkVdOwogCWNoYXIgKnA7CiAKLQlod2kgPSAodW5zaWduZWQgY2hhciAqKSAoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfSFdJTkZPX09GRlNFVCk7Ci0JaWYgKCooKHVuc2lnbmVkIGxvbmcgKikgaHdpKSAhPSAodW5zaWduZWQgbG9uZykgQ0ZHX0hXSU5GT19NQUdJQykgeworCWh3aSA9ICh1bnNpZ25lZCBjaGFyICopIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQpOworCWlmICgqKCh1bnNpZ25lZCBsb25nICopIGh3aSkgIT0gKHVuc2lnbmVkIGxvbmcpIENPTkZJR19TWVNfSFdJTkZPX01BR0lDKSB7CiAJCXByaW50ZiAoIkhhcmR3YXJlSW5mbyBub3QgZm91bmQhXG4iKTsKIAkJcmV0dXJuOwogCX0KLQltZW1jcHkgKGh3aV9zdGFjaywgaHdpLCBDRkdfSFdJTkZPX1NJWkUpOworCW1lbWNweSAoaHdpX3N0YWNrLCBod2ksIENPTkZJR19TWVNfSFdJTkZPX1NJWkUpOwogCiAJLyoKIAkgKiogZXRoYWRkcgpAQCAtNzIsNyArNzIsNyBAQAogCWlmICh2YXIpIHsKIAkJdmFyICs9IHNpemVvZiAoRVRIQUREUl9UT0tFTikgLSAxOwogCQlwID0gc3RyY2hyICh2YXIsICdccicpOwotCQlpZiAoKHVuc2lnbmVkIGNoYXIgKilwIDwgaHdpICsgQ0ZHX0hXSU5GT19TSVpFKSB7CisJCWlmICgodW5zaWduZWQgY2hhciAqKXAgPCBod2kgKyBDT05GSUdfU1lTX0hXSU5GT19TSVpFKSB7CiAJCQkqcCA9ICdcMCc7CiAJCQlzZXRlbnYgKCJldGhhZGRyIiwgdmFyKTsKIAkJCSpwID0gJ1xyJzsKQEAgLTg1LDcgKzg1LDcgQEAKIAlpZiAodmFyKSB7CiAJCXZhciArPSBzaXplb2YgKExDRF9UT0tFTikgLSAxOwogCQlwID0gc3RyY2hyICh2YXIsICdccicpOwotCQlpZiAoKHVuc2lnbmVkIGNoYXIgKilwIDwgaHdpICsgQ0ZHX0hXSU5GT19TSVpFKSB7CisJCWlmICgodW5zaWduZWQgY2hhciAqKXAgPCBod2kgKyBDT05GSUdfU1lTX0hXSU5GT19TSVpFKSB7CiAJCQkqcCA9ICdcMCc7CiAJCQlzZXRlbnYgKCJsY2QiLCB2YXIpOwogCQkJKnAgPSAnXHInOwpkaWZmIC0tZ2l0IGEvYm9hcmQva3VwL2NvbW1vbi9wY21jaWEuYyBiL2JvYXJkL2t1cC9jb21tb24vcGNtY2lhLmMKaW5kZXggOGYwY2YxNy4uY2U2YjE4NiAxMDA2NDQKLS0tIGEvYm9hcmQva3VwL2NvbW1vbi9wY21jaWEuYworKysgYi9ib2FyZC9rdXAvY29tbW9uL3BjbWNpYS5jCkBAIC0zMCwxMCArMzAsMTAgQEAKIAogCXVkZWxheSgxMDAwMCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0Jc3lzcCAgPSAoc3lzY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9zaXVfY29uZikpOwotCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7Ci0JY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJc3lzcCAgPSAoc3lzY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fc2l1X2NvbmYpKTsKKwlwY21wICA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEpKTsKKwljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbSkpOwogCiAJLyoKIAkqIENvbmZpZ3VyZSBTSVVNQ1IgdG8gZW5hYmxlIFBDTUNJQSBwb3J0IEIKQEAgLTEyNSw5ICsxMjUsOSBAQAogCiAJZGVidWcgKCJoYXJkd2FyZV9kaXNhYmxlOiAiIFBDTUNJQV9CT0FSRF9NU0cgIiBTbG90ICVjXG4iLCAnQScrc2xvdCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JcGNtcCA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOwotCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0pKTsKKwlpbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCXBjbXAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CisJY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0pKTsKIAogCS8qIHJlbW92ZSBhbGwgcG93ZXIgKi8KIAlpZiAoc2xvdCkKQEAgLTE2Miw5ICsxNjIsOSBAQAogCWlmICghc2xvdCkgLyogU2xvdCBBIGlzIG5vdCBjb25maWd1cmFibGUgKi8KIAkJcmV0dXJuIDA7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JcGNtcCA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOwotCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0pKTsKKwlpbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCXBjbXAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CisJY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0pKTsKIAogCS8qCiAJKiBEaXNhYmxlIFBDTUNJQSBidWZmZXJzIChpc29sYXRlIHRoZSBpbnRlcmZhY2UpCmRpZmYgLS1naXQgYS9ib2FyZC9rdXAva3VwNGsva3VwNGsuYyBiL2JvYXJkL2t1cC9rdXA0ay9rdXA0ay5jCmluZGV4IDY2ZDYxODAuLmRmM2ZmYjQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2t1cC9rdXA0ay9rdXA0ay5jCisrKyBiL2JvYXJkL2t1cC9rdXA0ay9rdXA0ay5jCkBAIC0xMTksNyArMTE5LDcgQEAKIAogaW50IGNoZWNrYm9hcmQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1Y2hhciAqbGF0Y2gscmV2LG1vZDsKIAogCS8qCkBAIC0xMzksNyArMTM5LDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemVfYjAgPSAwOwogCWxvbmcgaW50IHNpemVfYjEgPSAwOwpAQCAtMTU0LDcgKzE1NCw3IEBACiAJICogd2l0aCB0d28gU0RSQU0gYmFua3Mgb3IgZm91ciBjeWNsZXMgZXZlcnkgMzEuMiB1cyB3aXRoIG9uZQogCSAqIGJhbmsuIEl0IHdpbGwgYmUgYWRqdXN0ZWQgYWZ0ZXIgbWVtb3J5IHNpemluZy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAogCW1lbWN0bC0+bWVtY19tYXIgPSAweDAwMDAwMDg4OwogCkBAIC0xNjMsMTQgKzE2MywxNCBAQAogCSAqIHByZWxpbWluYXJ5IGFkZHJlc3NlcyAtIHRoZXNlIGhhdmUgdG8gYmUgbW9kaWZpZWQgYWZ0ZXIgdGhlCiAJICogU0RSQU0gc2l6ZSBoYXMgYmVlbiBkZXRlcm1pbmVkLgogCSAqLwotLyoJbWVtY3RsLT5tZW1jX29yMSA9IENGR19PUjFfUFJFTElNOwkqLwotLyoJbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjFfUFJFTElNOwkqLworLyoJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1IxX1BSRUxJTTsJKi8KKy8qCW1lbWN0bC0+bWVtY19icjEgPSBDT05GSUdfU1lTX0JSMV9QUkVMSU07CSovCiAKLS8qCW1lbWN0bC0+bWVtY19vcjIgPSBDRkdfT1IyX1BSRUxJTTsJKi8KLS8qCW1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyX1BSRUxJTTsJKi8KKy8qCW1lbWN0bC0+bWVtY19vcjIgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07CSovCisvKgltZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOwkqLwogCiAKLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVIgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAogCXVkZWxheSAoMjAwKTsKIApAQCAtMjA0LDcgKzIwNCw3IEBACiAJc2l6ZV9iMCA9IDB4MDA4MDAwMDA7CiAJc2l6ZV9iMSA9IDB4MDA4MDAwMDA7CiAJc2l6ZV9iMiA9IDB4MDA4MDAwMDA7Ci0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAJdWRlbGF5ICgxMDAwKTsKIAltZW1jdGwtPm1lbWNfb3IxID0gMHhGRjgwMEEwMDsKIAltZW1jdGwtPm1lbWNfYnIxID0gMHgwMDAwMDA4MTsKQEAgLTIxNiw3ICsyMTYsNyBAQAogCXNpemVfYjAgPSAweDAxMDAwMDAwOwogCXNpemVfYjEgPSAweDAxMDAwMDAwOwogCXNpemVfYjIgPSAweDAxMDAwMDAwOwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCXVkZWxheSAoMTAwMCk7CiAJbWVtY3RsLT5tZW1jX29yMSA9IDB4RkYwMDBBMDA7CiAJbWVtY3RsLT5tZW1jX2JyMSA9IDB4MDAwMDAwODE7CkBAIC0yMzYsNyArMjM2LDcgQEAKIGludCBtaXNjX2luaXRfciAodm9pZCkKIHsKICNpZmRlZiBDT05GSUdfU1RBVFVTX0xFRAotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAjZW5kaWYKICNpZmRlZiBDT05GSUdfS1VQNEtfTE9HTwogCWJkX3QgKmJkID0gZ2QtPmJkOwpAQCAtMjYzLDcgKzI2Myw3IEBACiAJRkJfSU5GT19TMUQxM3h4eCBmYl9pbmZvOwogCVMxRF9JTkRFWCBzMWRSZWc7CiAJUzFEX1ZBTFVFIHMxZFZhbHVlOwotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGw7CiAJdXNob3J0IGk7CiAJdWNoYXIgKmZiOwpkaWZmIC0tZ2l0IGEvYm9hcmQva3VwL2t1cDR4L2t1cDR4LmMgYi9ib2FyZC9rdXAva3VwNHgva3VwNHguYwppbmRleCBmMDdlZjE4Li5jNWI3NDJkIDEwMDY0NAotLS0gYS9ib2FyZC9rdXAva3VwNHgva3VwNHguYworKysgYi9ib2FyZC9rdXAva3VwNHgva3VwNHguYwpAQCAtMTE0LDcgKzExNCw3IEBACiAKIGludCBjaGVja2JvYXJkICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXZvbGF0aWxlIHVjaGFyICpsYXRjaDsKIAl1Y2hhciByZXYsIG1vZDsKQEAgLTEzNiw3ICsxMzYsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZV9iMCA9IDA7CiAJbG9uZyBpbnQgc2l6ZV9iMSA9IDA7CkBAIC0xNTEsNyArMTUxLDcgQEAKIAkgKiB3aXRoIHR3byBTRFJBTSBiYW5rcyBvciBmb3VyIGN5Y2xlcyBldmVyeSAzMS4yIHVzIHdpdGggb25lCiAJICogYmFuay4gSXQgd2lsbCBiZSBhZGp1c3RlZCBhZnRlciBtZW1vcnkgc2l6aW5nLgogCSAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKQEAgLTE2MCwxMyArMTYwLDEzIEBACiAJICogcHJlbGltaW5hcnkgYWRkcmVzc2VzIC0gdGhlc2UgaGF2ZSB0byBiZSBtb2RpZmllZCBhZnRlciB0aGUKIAkgKiBTRFJBTSBzaXplIGhhcyBiZWVuIGRldGVybWluZWQuCiAJICovCi0vKgltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07CSovCi0vKgltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07CSovCisvKgltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjFfUFJFTElNOwkqLworLyoJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsJKi8KIAotLyoJbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjJfUFJFTElNOwkqLwotLyoJbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjJfUFJFTElNOwkqLworLyoJbWVtY3RsLT5tZW1jX29yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsJKi8KKy8qCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CSovCiAKLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVIgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAogCXVkZWxheSAoMjAwKTsKIApAQCAtMjA3LDcgKzIwNyw3IEBACiAJc2l6ZV9iMSA9IDB4MDA4MDAwMDA7CiAJc2l6ZV9iMiA9IDB4MDA4MDAwMDA7CiAJc2l6ZV9iMyA9IDB4MDA4MDAwMDA7Ci0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAJdWRlbGF5ICgxMDAwKTsKIAltZW1jdGwtPm1lbWNfb3IxID0gMHhGRjgwMEEwMDsKIAltZW1jdGwtPm1lbWNfYnIxID0gMHgwMDAwMDA4MTsKQEAgLTIyMiw3ICsyMjIsNyBAQAogCXNpemVfYjEgPSAweDAxMDAwMDAwOwogCXNpemVfYjIgPSAweDAxMDAwMDAwOwogCXNpemVfYjMgPSAweDAxMDAwMDAwOwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCXVkZWxheSAoMTAwMCk7CiAJbWVtY3RsLT5tZW1jX29yMSA9IDB4RkYwMDBBMDA7CiAJbWVtY3RsLT5tZW1jX2JyMSA9IDB4MDAwMDAwODE7CkBAIC0yNTEsNyArMjUxLDcgQEAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1hbXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLAogCQkJICAgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl2b2xhdGlsZSBsb25nIGludCAqYWRkcjsKIAl1bG9uZyBjbnQsIHZhbDsKQEAgLTI5NCw3ICsyOTQsNyBAQAogCiBpbnQgbWlzY19pbml0X3IgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogI2lmZGVmIENPTkZJR19JREVfTEVECiAJLyogQ29uZmlndXJlIFBBOCBhcyBvdXRwdXQgcG9ydCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvbGFudGVjL2ZsYXNoLmMgYi9ib2FyZC9sYW50ZWMvZmxhc2guYwppbmRleCBlMDhkYTMzLi45N2VkMDU0IDEwMDY0NAotLS0gYS9ib2FyZC9sYW50ZWMvZmxhc2guYworKysgYi9ib2FyZC9sYW50ZWMvZmxhc2guYwpAQCAtMzEsNyArMzEsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNTEsNyArNTEsNyBAQAogI2VuZGlmCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTY1LDEzICs2NSwxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjAsIHNpemVfYjE7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTExNiwyNSArMTE2LDI1IEBACiAJCW1lbWN0bC0+bWVtY19icjEsIG1lbWN0bC0+bWVtY19vcjEpOwogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBcCisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCUJSX01TX0dQQ00gfCBCUl9QU18zMiB8IEJSX1Y7CiAKIAlERUJVR0YoIiMjIEJSMDogMHglMDh4ICAgIE9SMDogMHglMDh4XG4iLAogCQltZW1jdGwtPm1lbWNfYnIwLCBtZW1jdGwtPm1lbWNfb3IwKTsKIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZV9iMDsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTE0NywyNiArMTQ3LDI2IEBACiAjZW5kaWYKIAogCWlmIChzaXplX2IxKSB7Ci0JCW1lbWN0bC0+bWVtY19vcjUgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IxICYgMHhGRkZGODAwMCk7Ci0JCW1lbWN0bC0+bWVtY19icjUgPSAoKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCkgJiBCUl9CQV9NU0spIHwKKwkJbWVtY3RsLT5tZW1jX29yNSA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IxICYgMHhGRkZGODAwMCk7CisJCW1lbWN0bC0+bWVtY19icjUgPSAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjApICYgQlJfQkFfTVNLKSB8CiAJCQkJICAgIEJSX01TX0dQQ00gfCBCUl9QU18zMiB8IEJSX1Y7CiAKIAkJREVCVUdGKCIjIyBCUjU6IDB4JTA4eCAgICBPUjU6IDB4JTA4eFxuIiwKIAkJCW1lbWN0bC0+bWVtY19icjUsIG1lbWN0bC0+bWVtY19vcjUpOwogCiAJCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQkJc2l6ZV9iMSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCksCisJCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSwKIAkJCQkJICAmZmxhc2hfaW5mb1sxXSk7CiAKIAkJZmxhc2hfaW5mb1sxXS5zaXplID0gc2l6ZV9iMTsKIAotCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UgKyBzaXplX2IwLCAmZmxhc2hfaW5mb1sxXSk7CisJCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwLCAmZmxhc2hfaW5mb1sxXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCQkgICAgICAmZmxhc2hfaW5mb1sxXSk7CiAjZW5kaWYKIApAQCAtNDkxLDcgKzQ5MSw3IEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gKHZ1X2xvbmcqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC02MTQsNyArNjE0LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKigodnVfbG9uZyAqKWRlc3QpICYgMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAweDAwODAwMDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbGFudGVjL2xhbnRlYy5jIGIvYm9hcmQvbGFudGVjL2xhbnRlYy5jCmluZGV4IDQ2ZjRkYTkuLjZkMzQ4NmMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2xhbnRlYy9sYW50ZWMuYworKysgYi9ib2FyZC9sYW50ZWMvbGFudGVjLmMKQEAgLTExMSw3ICsxMTEsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZV9iMDsKIAlpbnQgaTsKQEAgLTEyMiw3ICsxMjIsNyBAQAogCXVwbWNvbmZpZyAoVVBNQSwgKHVpbnQgKikgc2RyYW1fdGFibGUsCiAJCSAgIHNpemVvZiAoc2RyYW1fdGFibGUpIC8gc2l6ZW9mICh1aW50KSk7CiAKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMUJLXzhLIC8qIFhYWCBDRkdfTVBUUFIgWFhYICovIDsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzFCS184SyAvKiBYWFggQ09ORklHX1NZU19NUFRQUiBYWFggKi8gOwogCiAJLyogYnVyc3QgbGVuZ3RoPTQsIGJ1cnN0IHR5cGU9c2VxdWVudGlhbCwgQ0FTIGxhdGVuY3k9MiAqLwogCW1lbWN0bC0+bWVtY19tYXIgPSAweDAwMDAwMDg4OwpAQCAtMTMwLDExICsxMzAsMTEgQEAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIGJhbmsgMyB0byB0aGUgU0RSQU0gYmFuayBhdCBwcmVsaW1pbmFyeSBhZGRyZXNzLgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfT1IzX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogCiAJLyogaW5pdGlhbGl6ZSBtZW1vcnkgYWRkcmVzcyByZWdpc3RlciAqLwotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOENPTDsJLyogcmVmcmVzaCBub3QgZW5hYmxlZCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MOwkvKiByZWZyZXNoIG5vdCBlbmFibGVkIHlldCAqLwogCiAJLyogbW9kZSBpbml0aWFsaXphdGlvbiAob2Zmc2V0IDUpICovCiAJdWRlbGF5ICgyMDApOwkJLyogMHg4MDAwNjEwNSAqLwpAQCAtMTcwLDE3ICsxNzAsMTcgQEAKIAkvKgogCSAqIENoZWNrIEJhbmsgMCBNZW1vcnkgU2l6ZSBmb3IgcmUtY29uZmlndXJhdGlvbgogCSAqLwotCXNpemVfYjAgPSBkcmFtX3NpemUgKENGR19NQU1SXzhDT0wsCisJc2l6ZV9iMCA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzhDT0wsCiAJCQkgICAgIChsb25nICopIFNEUkFNX0JBU0UzX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MIHwgTUFNUl9QVEFFOworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0wgfCBNQU1SX1BUQUU7CiAKIAkvKgogCSAqIEZpbmFsIG1hcHBpbmc6CiAJICovCiAKLQltZW1jdGwtPm1lbWNfb3IzID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07Ci0JbWVtY3RsLT5tZW1jX2JyMyA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IzID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOworCW1lbWN0bC0+bWVtY19icjMgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCXVkZWxheSAoMTAwMCk7CiAKIAlyZXR1cm4gKHNpemVfYjApOwpAQCAtMTk5LDcgKzE5OSw3IEBACiBzdGF0aWMgbG9uZyBpbnQgZHJhbV9zaXplIChsb25nIGludCBtYW1yX3ZhbHVlLCBsb25nIGludCAqYmFzZSwKIAkJCSAgIGxvbmcgaW50IG1heHNpemUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAltZW1jdGwtPm1lbWNfbWFtciA9IG1hbXJfdmFsdWU7CmRpZmYgLS1naXQgYS9ib2FyZC9sYXJ0L2ZsYXNoLmMgYi9ib2FyZC9sYXJ0L2ZsYXNoLmMKaW5kZXggNDMyNmQwNy4uMjlhMzMxZSAxMDA2NDQKLS0tIGEvYm9hcmQvbGFydC9mbGFzaC5jCisrKyBiL2JvYXJkL2xhcnQvZmxhc2guYwpAQCAtNDEsNyArNDEsNyBAQAogI2RlZmluZSBQVVpaTEVfRlJPTV9GTEFTSCh4KQlkYXRhX2Zyb21fZmxhc2goKHgpKQogI2RlZmluZSBQVVpaTEVfVE9fRkxBU0goeCkJZGF0YV90b19mbGFzaCgoeCkpCiAKLWZsYXNoX2luZm9fdCAgICBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAKICNkZWZpbmUgQ01EX1JFQURfQVJSQVkJCTB4MDBGRjAwRkYKQEAgLTc0LDE1ICs3NCwxNSBAQAogICAgIGludCBpLCBqOwogICAgIHVsb25nIHNpemUgPSAwOwogCi0gICAgZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykKKyAgICBmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykKICAgICB7CiAJdWxvbmcgZmxhc2hiYXNlID0gMDsKIAlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0KIAkgIChJTlRFTF9NQU5VRkFDVCAmIEZMQVNIX1ZFTkRNQVNLKSB8CiAJICAoSU5URUxfSURfMjhGMTYwRjNCICYgRkxBU0hfVFlQRU1BU0spOwogCWZsYXNoX2luZm9baV0uc2l6ZSA9IEZMQVNIX0JBTktfU0laRTsKLQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQltZW1zZXQoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwltZW1zZXQoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAlpZiAoaSA9PSAwKQogCSAgZmxhc2hiYXNlID0gUEhZU19GTEFTSF8xOwogCWVsc2UKQEAgLTEwNCw4ICsxMDQsOCBAQAogICAgIC8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogICAgICAqLwogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICBDRkdfRkxBU0hfQkFTRSwKLQkJICBDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkgICZmbGFzaF9pbmZvWzBdKTsKIAogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKQEAgLTMwNSw3ICszMDUsNyBAQAogCSAgICBkbwogCSAgICB7CiAJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKQorCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKQogCQl7CiAJCSAgICAqYWRkciA9IFBVWlpMRV9UT19GTEFTSChDTURfU1VTUEVORCk7CiAJCSAgICByZXN1bHQgPSBCSVRfVElNRU9VVDsKQEAgLTM4Myw3ICszODMsNyBAQAogICAgIGRvCiAgICAgewogCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpCisJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkKIAl7CiAJICAgICphZGRyID0gUFVaWkxFX1RPX0ZMQVNIKENNRF9TVVNQRU5EKTsKIAkgICAgcmVzdWx0ID0gQklUX1RJTUVPVVQ7CmRpZmYgLS1naXQgYS9ib2FyZC9saW5rc3RhdGlvbi9hdnIuYyBiL2JvYXJkL2xpbmtzdGF0aW9uL2F2ci5jCmluZGV4IGE2ODljNjMuLmZkYTFiOTEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2xpbmtzdGF0aW9uL2F2ci5jCisrKyBiL2JvYXJkL2xpbmtzdGF0aW9uL2F2ci5jCkBAIC03OSw4ICs3OSw4IEBACiAKIHZvaWQgaW5pdF9BVlJfRFVBUlQgKHZvaWQpCiB7Ci0JTlMxNjU1MF90IEFWUl9wb3J0ID0gKE5TMTY1NTBfdCkgQ0ZHX05TMTY1NTBfQ09NMjsKLQlpbnQgY2xvY2tfZGl2aXNvciA9IENGR19OUzE2NTUwX0NMSyAvIDE2IC8gOTYwMDsKKwlOUzE2NTUwX3QgQVZSX3BvcnQgPSAoTlMxNjU1MF90KSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMjsKKwlpbnQgY2xvY2tfZGl2aXNvciA9IENPTkZJR19TWVNfTlMxNjU1MF9DTEsgLyAxNiAvIDk2MDA7CiAKIAkvKgogCSAqIEFWUiBwb3J0IGluaXQgc2VxdWVuY2UgdGFrZW4gZnJvbQpAQCAtMTA1LDEyICsxMDUsMTIgQEAKIAogc3RhdGljIGlubGluZSBpbnQgYXZyX3RzdGModm9pZCkKIHsKLQlyZXR1cm4gKE5TMTY1NTBfdHN0YygoTlMxNjU1MF90KUNGR19OUzE2NTUwX0NPTTIpKTsKKwlyZXR1cm4gKE5TMTY1NTBfdHN0YygoTlMxNjU1MF90KUNPTkZJR19TWVNfTlMxNjU1MF9DT00yKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgY2hhciBhdnJfZ2V0Yyh2b2lkKQogewotCXJldHVybiAoTlMxNjU1MF9nZXRjKChOUzE2NTUwX3QpQ0ZHX05TMTY1NTBfQ09NMikpOworCXJldHVybiAoTlMxNjU1MF9nZXRjKChOUzE2NTUwX3QpQ09ORklHX1NZU19OUzE2NTUwX0NPTTIpKTsKIH0KIAogc3RhdGljIGludCBwdXNoX3RpbWVvdXQoY2hhciBidXR0b25fY29kZSkKZGlmZiAtLWdpdCBhL2JvYXJkL2xpbmtzdGF0aW9uL2h3Y3RsLmMgYi9ib2FyZC9saW5rc3RhdGlvbi9od2N0bC5jCmluZGV4IDJlNWI1YzguLjlmZDU2YWUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2xpbmtzdGF0aW9uL2h3Y3RsLmMKKysrIGIvYm9hcmQvbGlua3N0YXRpb24vaHdjdGwuYwpAQCAtMjEsNyArMjEsNyBAQAogCiAjZGVmaW5lIG1kZWxheShuKQl1ZGVsYXkoKG4pKjEwMDApCiAKLSNkZWZpbmUgQVZSX1BPUlQgQ0ZHX05TMTY1NTBfQ09NMgorI2RlZmluZSBBVlJfUE9SVCBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgogCiAvKiAyMDA1LjUuMTAgQlVGRkFMTyBhZGQgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvYm9hcmQvbGlua3N0YXRpb24vaWRlLmMgYi9ib2FyZC9saW5rc3RhdGlvbi9pZGUuYwppbmRleCAwMjA4NmEwLi4yYzg5ZDYyIDEwMDY0NAotLS0gYS9ib2FyZC9saW5rc3RhdGlvbi9pZGUuYworKysgYi9ib2FyZC9saW5rc3RhdGlvbi9pZGUuYwpAQCAtMzcsNyArMzcsNyBAQAogI2RlZmluZSBJVDgyMTJfUENJX0lkZUJ1c1NrZXdDT05UUk9MCTB4NGMKICNkZWZpbmUgSVQ4MjEyX1BDSV9JZGVEcml2aW5nQ1VSUkVOVAkweDQyCiAKLWV4dGVybiB1bG9uZyBpZGVfYnVzX29mZnNldFtDRkdfSURFX01BWEJVU107CitleHRlcm4gdWxvbmcgaWRlX2J1c19vZmZzZXRbQ09ORklHX1NZU19JREVfTUFYQlVTXTsKIGV4dGVybiBzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgaG9zZTsKIAogaW50IGlkZV9wcmVpbml0ICh2b2lkKQpAQCAtNDcsNyArNDcsNyBAQAogCWludCBsOwogCiAJc3RhdHVzID0gMTsKLQlmb3IgKGwgPSAwOyBsIDwgQ0ZHX0lERV9NQVhCVVM7IGwrKykgeworCWZvciAobCA9IDA7IGwgPCBDT05GSUdfU1lTX0lERV9NQVhCVVM7IGwrKykgewogCQlpZGVfYnVzX29mZnNldFtsXSA9IC1BVEFfU1RBVFVTOwogCX0KIAlkZXZidXNmbiA9IHBjaV9maW5kX2RldmljZShQQ0lfVkVORE9SX0lEX0NNRCwgUENJX0RFVklDRV9JRF9TSUlfNjgwLCAwKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2xpbmtzdGF0aW9uL2xpbmtzdGF0aW9uLmMgYi9ib2FyZC9saW5rc3RhdGlvbi9saW5rc3RhdGlvbi5jCmluZGV4IGFmYjk2YWUuLmMwZDQzZWIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2xpbmtzdGF0aW9uL2xpbmtzdGF0aW9uLmMKKysrIGIvYm9hcmQvbGlua3N0YXRpb24vbGlua3N0YXRpb24uYwpAQCAtNTMsNyArNTMsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0JcmV0dXJuIChnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIENGR19NQVhfUkFNX1NJWkUpKTsKKwlyZXR1cm4gKGdldF9yYW1fc2l6ZShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFKSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9ib2FyZC9sb2dvZGwvZmxhc2guYyBiL2JvYXJkL2xvZ29kbC9mbGFzaC5jCmluZGV4IDRkOWMxMTguLjU5Mzk0M2YgMTAwNjQ0Ci0tLSBhL2JvYXJkL2xvZ29kbC9mbGFzaC5jCisrKyBiL2JvYXJkL2xvZ29kbC9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRSAweDEwMDAwMDAKICNkZWZpbmUgTUFJTl9TRUNUX1NJWkUgIDB4MjAwMDAJCS8qIDJ4NjRrID0gMTI4ayBwZXIgc2VjdG9yICovCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKiBOT1RFIC0gQ09ORklHX0ZMQVNIXzE2QklUIG1lYW5zIHRoZSBDUFUgaW50ZXJmYWNlIGlzIDE2LWJpdCwgaXQKICAqICAgICAgICBoYXMgbm90aGluZyB0byBkbyB3aXRoIHRoZSBmbGFzaCBjaGlwIGJlaW5nIDgtYml0IG9yIDE2LWJpdC4KQEAgLTU5LDcgKzU5LDcgQEAKIHN0YXRpYyBpbnQgd3JpdGVfd29yZF9hbWQoZmxhc2hfaW5mb190ICppbmZvLCBGUFdWICpkZXN0LCBGUFcgZGF0YSk7CiAjZGVmaW5lIHdyaXRlX3dvcmQoaW4sIGRlLCBkYSkgICB3cml0ZV93b3JkX2FtZChpbiwgZGUsIGRhKQogc3RhdGljIHZvaWQgZmxhc2hfZ2V0X29mZnNldHModWxvbmcgYmFzZSwgZmxhc2hfaW5mb190ICppbmZvKTsKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogc3RhdGljIHZvaWQgZmxhc2hfc3luY19yZWFsX3Byb3RlY3QoZmxhc2hfaW5mb190ICppbmZvKTsKICNlbmRpZgogCkBAIC03MywxNSArNzMsMTUgQEAKICAgICBpbnQgaSwgajsKICAgICB1bG9uZyBzaXplID0gMDsKIAotICAgIGZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspCisgICAgZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspCiAgICAgewogCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9CiAJICAoRkxBU0hfTUFOX0FNRCAmIEZMQVNIX1ZFTkRNQVNLKSB8CiAJICAoRkxBU0hfQU02NDBVICYgRkxBU0hfVFlQRU1BU0spOwogCWZsYXNoX2luZm9baV0uc2l6ZSA9IEZMQVNIX0JBTktfU0laRTsKLQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQltZW1zZXQoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwltZW1zZXQoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAlzd2l0Y2ggKGkpCiAJewogCSAgIGNhc2UgMDoKQEAgLTEwNCw4ICsxMDQsOCBAQAogICAgIC8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogICAgICAqLwogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICBDRkdfRkxBU0hfQkFTRSwKLQkJICBDRkdfRkxBU0hfQkFTRSArIF9ic3Nfc3RhcnQgLSBfYXJtYm9vdF9zdGFydCwKKwkJICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgX2Jzc19zdGFydCAtIF9hcm1ib290X3N0YXJ0LAogCQkgICZmbGFzaF9pbmZvWzBdKTsKIAogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKQEAgLTM3Myw3ICszNzMsNyBAQAogCXJldHVybiAoaW5mby0+c2l6ZSk7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKQEAgLTUxMCw3ICs1MTAsNyBAQAogCQl1ZGVsYXkgKDEwMDApOwogCiAJCXdoaWxlICgoKmFkZHIgJiAoRlBXKTB4MDA4MDAwODApICE9IChGUFcpMHgwMDgwMDA4MCkgewotCQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAKIAkJCQlpZiAoaW50ZWwpIHsKQEAgLTcwMyw3ICs3MDMsNyBAQAogCiAgICAgLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogICAgIHdoaWxlIChyZXMgPT0gMCAmJiAoKmRlc3QgJiAoRlBXKTB4MDA4MDAwODApICE9IChkYXRhICYgKEZQVykweDAwODAwMDgwKSkgewotCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCSAgICAqZGVzdCA9IChGUFcpMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLwogCSAgICByZXMgPSAxOwogCX0KQEAgLTc0OSw3ICs3NDksNyBAQAogICAgIHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAogICAgIHdoaWxlIChyZXMgPT0gMCAmJiAoKmRlc3QgJiAoRlBXKTB4MDA4MDAwODApICE9IChGUFcpMHgwMDgwMDA4MCkgewotCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCSAgICAqZGVzdCA9IChGUFcpMHgwMEIwMDBCMDsJLyogU3VzcGVuZCBwcm9ncmFtCSovCiAJICAgIHJlcyA9IDE7CiAJfQpAQCAtNzY0LDcgKzc2NCw3IEBACiAgICAgcmV0dXJuIChyZXMpOwogfQogCi0jaWZkZWYgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogaW50IGZsYXNoX3JlYWxfcHJvdGVjdCAoZmxhc2hfaW5mb190ICogaW5mbywgbG9uZyBzZWN0b3IsIGludCBwcm90KQpkaWZmIC0tZ2l0IGEvYm9hcmQvbG9nb2RsL2xvZ29kbC5jIGIvYm9hcmQvbG9nb2RsL2xvZ29kbC5jCmluZGV4IDg5Nzc4N2IuLmM1NzIxMGEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2xvZ29kbC9sb2dvZGwuYworKysgYi9ib2FyZC9sb2dvZGwvbG9nb2RsLmMKQEAgLTc3LDE3ICs3NywxNyBAQAogCiAJY2FzZSAwOgogCQlpZiAoc3RhdGU9PTEpIHsKLQkJCUNGR19MRURfQV9DUiA9IENGR19MRURfQV9CSVQ7CisJCQlDT05GSUdfU1lTX0xFRF9BX0NSID0gQ09ORklHX1NZU19MRURfQV9CSVQ7CiAJCX0gZWxzZSBpZiAoc3RhdGU9PTApIHsKLQkJCUNGR19MRURfQV9TUiA9IENGR19MRURfQV9CSVQ7CisJCQlDT05GSUdfU1lTX0xFRF9BX1NSID0gQ09ORklHX1NZU19MRURfQV9CSVQ7CiAJCX0KIAkJYnJlYWs7CiAKIAljYXNlIDE6CiAJCWlmIChzdGF0ZT09MSkgewotCQkJQ0ZHX0xFRF9CX0NSID0gQ0ZHX0xFRF9CX0JJVDsKKwkJCUNPTkZJR19TWVNfTEVEX0JfQ1IgPSBDT05GSUdfU1lTX0xFRF9CX0JJVDsKIAkJfSBlbHNlIGlmIChzdGF0ZT09MCkgewotCQkJQ0ZHX0xFRF9CX1NSID0gQ0ZHX0xFRF9CX0JJVDsKKwkJCUNPTkZJR19TWVNfTEVEX0JfU1IgPSBDT05GSUdfU1lTX0xFRF9CX0JJVDsKIAkJfQogCQlicmVhazsKIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9sb2dvZGwvbG93bGV2ZWxfaW5pdC5TIGIvYm9hcmQvbG9nb2RsL2xvd2xldmVsX2luaXQuUwppbmRleCA0YzlmMTBmLi45ODkyNDMwIDEwMDY0NAotLS0gYS9ib2FyZC9sb2dvZGwvbG93bGV2ZWxfaW5pdC5TCisrKyBiL2JvYXJkL2xvZ29kbC9sb3dsZXZlbF9pbml0LlMKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDx2ZXJzaW9uLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KIAotRFJBTV9TSVpFOiAgLmxvbmcgICBDRkdfRFJBTV9TSVpFCitEUkFNX1NJWkU6ICAubG9uZyAgIENPTkZJR19TWVNfRFJBTV9TSVpFCiAKIC8qIHdhaXQgZm9yIGNvcHJvY2Vzc29yIHdyaXRlIGNvbXBsZXRlICovCiAgICAubWFjcm8gQ1BXQUlUIHJlZwpAQCAtNTQsNzEgKzU0LDcxIEBACiAJLyogU2V0IHVwIEdQSU8gcGlucyBmaXJzdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAJbGRyCQlyMCwJPUdQU1IwCi0JbGRyCQlyMSwJPUNGR19HUFNSMF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFNSMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUFNSMQotCWxkcgkJcjEsCT1DRkdfR1BTUjFfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BTUjFfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BTUjIKLQlsZHIJCXIxLAk9Q0ZHX0dQU1IyX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQU1IyX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQQ1IwCi0JbGRyCQlyMSwJPUNGR19HUENSMF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUENSMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUENSMQotCWxkcgkJcjEsCT1DRkdfR1BDUjFfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BDUjFfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BDUjIKLQlsZHIJCXIxLAk9Q0ZHX0dQQ1IyX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQQ1IyX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQRFIwCi0JbGRyCQlyMSwJPUNGR19HUERSMF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUERSMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUERSMQotCWxkcgkJcjEsCT1DRkdfR1BEUjFfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BEUjFfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BEUjIKLQlsZHIJCXIxLAk9Q0ZHX0dQRFIyX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQRFIyX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIwX0wKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIwX0xfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjBfTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMF9VCi0JbGRyCQlyMSwJPUNGR19HQUZSMF9VX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIwX1VfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjFfTAotCWxkcgkJcjEsCT1DRkdfR0FGUjFfTF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMV9MX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIxX1UKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIxX1VfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjFfVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMl9MCi0JbGRyCQlyMSwJPUNGR19HQUZSMl9MX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIyX0xfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjJfVQotCWxkcgkJcjEsCT1DRkdfR0FGUjJfVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMl9VX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCXIwLAk9UFNTUgkJLyogZW5hYmxlIEdQSU8gcGlucyAqLwotCWxkcgkJcjEsCT1DRkdfUFNTUl9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19QU1NSX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAvKglsZHIJcjMsCT1NU0MxCQkvICBsb3cgLSBiYW5rIDIgTHViYm9jayBSZWdpc3RlcnMgLyBTUkFNICovCi0vKglsZHIJcjIsCT1DRkdfTVNDMV9WQUwJLyAgaGlnaCAtIGJhbmsgMyBFdGhlcm5ldCBDb250cm9sbGVyICovCisvKglsZHIJcjIsCT1DT05GSUdfU1lTX01TQzFfVkFMCS8gIGhpZ2ggLSBiYW5rIDMgRXRoZXJuZXQgQ29udHJvbGxlciAqLwogLyoJc3RyCXIyLAlbcjNdCQkvICBuZWVkIHRvIHNldCBNU0MxIGJlZm9yZSB0cnlpbmcgdG8gd3JpdGUgdG8gdGhlIEhFWCBMRURzICovCiAvKglsZHIJcjIsCVtyM10JCS8gIG5lZWQgdG8gcmVhZCBpdCBiYWNrIHRvIG1ha2Ugc3VyZSB0aGUgdmFsdWUgbGF0Y2hlcyAoc2VlIE1TQyBzZWN0aW9uIG9mIG1hbnVhbCkgKi8KIC8qICovCkBAIC0xNjgsMTcgKzE2OCwxNyBAQAogCS8qIE1TQyByZWdpc3RlcnM6IHRpbWluZywgYnVzIHdpZHRoLCBtZW0gdHlwZSAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogCS8qIE1TQzA6IG5DUygwLDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgID1DRkdfTVNDMF9WQUwKKwlsZHIgICAgIHIyLCAgID1DT05GSUdfU1lTX01TQzBfVkFMCiAJc3RyICAgICByMiwgICBbcjEsICNNU0MwX09GRlNFVF0KIAlsZHIgICAgIHIyLCAgIFtyMSwgI01TQzBfT0ZGU0VUXQkvKiByZWFkIGJhY2sgdG8gZW5zdXJlICAgICAgKi8KIAkJCQkJCS8qIHRoYXQgZGF0YSBsYXRjaGVzICAgICAgICAqLwogCS8qIE1TQzE6IG5DUygyLDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NU0MxX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NU0MxX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAlsZHIgICAgIHIyLCAgW3IxLCAjTVNDMV9PRkZTRVRdCiAKIAkvKiBNU0MyOiBuQ1MoNCw1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTVNDMl9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTVNDMl9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAJbGRyICAgICByMiwgIFtyMSwgI01TQzJfT0ZGU0VUXQogCkBAIC0xODcsMzcgKzE4NywzNyBAQAogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogCS8qIE1FQ1I6IE1lbW9yeSBFeHBhbnNpb24gQ2FyZCBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NRUNSX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NRUNSX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNRUNSX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01FQ1JfT0ZGU0VUXQogCiAJLyogTUNNRU0wOiBDYXJkIEludGVyZmFjZSBzbG90IDAgdGltaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DTUVNMF9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNNRU0wX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNQ01FTTBfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNNRU0wX09GRlNFVF0KIAogCS8qIE1DTUVNMTogQ2FyZCBJbnRlcmZhY2Ugc2xvdCAxIHRpbWluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ01FTTFfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01DTUVNMV9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNNRU0xX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DTUVNMV9PRkZTRVRdCiAKIAkvKiBNQ0FUVDA6IENhcmQgSW50ZXJmYWNlIEF0dHJpYnV0ZSBTcGFjZSBUaW1pbmcsIHNsb3QgMCAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNBVFQwX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0FUVDBfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DQVRUMF9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ0FUVDBfT0ZGU0VUXQogCiAJLyogTUNBVFQxOiBDYXJkIEludGVyZmFjZSBBdHRyaWJ1dGUgU3BhY2UgVGltaW5nLCBzbG90IDEgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DQVRUMV9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNBVFQxX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNQ0FUVDFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNBVFQxX09GRlNFVF0KIAogCS8qIE1DSU8wOiBDYXJkIEludGVyZmFjZSBJL08gU3BhY2UgVGltaW5nLCBzbG90IDAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ0lPMF9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNJTzBfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DSU8wX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DSU8wX09GRlNFVF0KIAogCS8qIE1DSU8xOiBDYXJkIEludGVyZmFjZSBJL08gU3BhY2UgVGltaW5nLCBzbG90IDEgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ0lPMV9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNJTzFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DSU8xX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DSU8xX09GRlNFVF0KIApAQCAtMjM5LDcgKzIzOSw3IEBACiAJLyogQmVmb3JlIGFjY2Vzc2luZyBNRFJFRlIgd2UgbmVlZCBhIHZhbGlkIERSSSBmaWVsZCwgc28gd2Ugc2V0ICAgICAqLwogCS8qIHRoaXMgdG8gcG93ZXIgb24gZGVmYXVsdHMgKyBEUkkgZmllbGQuICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAotCWxkcglyMywJPUNGR19NRFJFRlJfVkFMCisJbGRyCXIzLAk9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAJbGRyCXIyLAk9MHhGRkYKIAlhbmQJcjMsCXIzLCByMgogCWxkcglyNCwJPTB4MDNjYTQwMDAKQEAgLTI2OSw3ICsyNjksNyBAQAogCS8qIFN0ZXAgNGE6IGFzc2VydCBNRFJFRlI6Sz9SVU4gYW5kIGNvbmZpZ3VyZSAgICAgICAgICAgICAgICAgICAgICAgKi8KIAkvKiAgICAgICAgICBNRFJFRlI6SzFEQjIgYW5kIE1EUkVGUjpLMkRCMiBhcyBkZXNpcmVkLiAgICAgICAgICAgICAgICovCiAKLQlsZHIJcjQsCT1DRkdfTURSRUZSX1ZBTAorCWxkcglyNCwJPUNPTkZJR19TWVNfTURSRUZSX1ZBTAogCXN0cglyNCwJW3IxLCAjTURSRUZSX09GRlNFVF0JLyogd3JpdGUgYmFjayBNRFJFRlIgICAgICAgICovCiAJbGRyCXI0LAlbcjEsICNNRFJFRlJfT0ZGU0VUXQogCkBAIC0yOTIsNyArMjkyLDcgQEAKIAkvKiBTdGVwIDRkOiB3cml0ZSBNRENORkcgd2l0aCBNRENORkc6REV4IGRlYXNzZXJ0ZWQgKHNldCB0byAwKSwgdG8gICovCiAJLyogICAgICAgICAgY29uZmlndXJlIGJ1dCBub3QgZW5hYmxlIGVhY2ggU0RSQU0gcGFydGl0aW9uIHBhaXIuICAgICAqLwogCi0JbGRyCXI0LAk9Q0ZHX01EQ05GR19WQUwKKwlsZHIJcjQsCT1DT05GSUdfU1lTX01EQ05GR19WQUwKIAliaWMJcjQsCXI0LAkjKE1EQ05GR19ERTB8TURDTkZHX0RFMSkKIAogCXN0ciAgICAgcjQsICAgICBbcjEsICNNRENORkdfT0ZGU0VUXQkvKiB3cml0ZSBiYWNrIE1EQ05GRyAgICAgICAgKi8KQEAgLTMyNSw3ICszMjUsNyBAQAogCS8qICAgICAgICAgIEphbiAyMDAzLCBFcnJhdGEgIzExNiwgcGFnZSAzMC4gICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogCi0JbGRyCXIzLAk9Q0ZHX0RSQU1fQkFTRQorCWxkcglyMywJPUNPTkZJR19TWVNfRFJBTV9CQVNFCiAJc3RyCXIyLCBbcjNdCiAJc3RyCXIyLCBbcjNdCiAJc3RyCXIyLCBbcjNdCkBAIC0zNDUsNyArMzQ1LDcgQEAKIAogCS8qIFN0ZXAgNGg6IFdyaXRlIE1ETVJTLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAotCWxkciAgICAgcjIsICA9Q0ZHX01ETVJTX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NRE1SU19WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTURNUlNfT0ZGU0VUXQogCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2xwYzIyOTJzb2RpbW0vZmxhc2guYyBiL2JvYXJkL2xwYzIyOTJzb2RpbW0vZmxhc2guYwppbmRleCA0NDlhNzY4Li5hN2UxNzVkIDEwMDY0NAotLS0gYS9ib2FyZC9scGMyMjkyc29kaW1tL2ZsYXNoLmMKKysrIGIvYm9hcmQvbHBjMjI5MnNvZGltbS9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAjZGVmaW5lIFNTVF9BRERSMiAoKHZvbGF0aWxlIHVzaG9ydCopKFNTVF9CQVNFQUREUiArICgweDJBQUEgPDwgMSkpKQogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiBleHRlcm4gaW50IGxwYzIyOTJfY29weV9idWZmZXJfdG9fZmxhc2goZmxhc2hfaW5mb190ICosIHVsb25nKTsKIGV4dGVybiBpbnQgbHBjMjI5Ml9mbGFzaF9lcmFzZShmbGFzaF9pbmZvX3QgKiwgaW50LCBpbnQpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbHBkN2E0MHgvZmxhc2guYyBiL2JvYXJkL2xwZDdhNDB4L2ZsYXNoLmMKaW5kZXggZWM0MzgwNy4uZTM1NThkMiAxMDA2NDQKLS0tIGEvYm9hcmQvbHBkN2E0MHgvZmxhc2guYworKysgYi9ib2FyZC9scGQ3YTQweC9mbGFzaC5jCkBAIC0zMyw3ICszMyw3IEBACiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRSAweDEwMDAwMDAJLyogMTZNQiAoMiB4IDggTUIpICovCiAjZGVmaW5lIE1BSU5fU0VDVF9TSVpFICAweDQwMDAwCQkvKiAyNTZLQiAoMiB4IDEyOGtCKSAqLwogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogCiAjZGVmaW5lIENNRF9SRUFEX0FSUkFZCQkweDAwRkYwMEZGCkBAIC02NiwxNyArNjYsMTcgQEAKIAlpbnQgaSwgajsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQl1bG9uZyBmbGFzaGJhc2UgPSAwOwogCiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPQogCQkJKElOVEVMX01BTlVGQUNUICAgICAmIEZMQVNIX1ZFTkRNQVNLKSB8CiAJCQkoSU5URUxfSURfMjhGNjQwSjNBICYgRkxBU0hfVFlQRU1BU0spOwogCQlmbGFzaF9pbmZvW2ldLnNpemUgPSBGTEFTSF9CQU5LX1NJWkU7Ci0JCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOwotCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAJCWlmIChpID09IDApCi0JCQlmbGFzaGJhc2UgPSBDRkdfRkxBU0hfQkFTRTsKKwkJCWZsYXNoYmFzZSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAkJZWxzZQogCQkJcGFuaWMgKCJjb25maWd1cmVkIHRvbyBtYW55IGZsYXNoIGJhbmtzIVxuIik7CiAJCWZvciAoaiA9IDA7IGogPCBmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudDsgaisrKSB7CkBAIC05Miw4ICs5Miw4IEBACiAJICogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCi0JCQlDRkdfRkxBU0hfQkFTRSwKLQkJCUNGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCkBAIC0yOTcsNyArMjk3LDcgQEAKIAkJCS8qIHdhaXQgdW50aWwgZmxhc2ggaXMgcmVhZHkgKi8KIAkJCWRvIHsKIAkJCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCSphZGRyID0gQ01EX1NUQVRVU19SRVNFVDsKIAkJCQkJcmVzdWx0ID0gQklUX1RJTUVPVVQ7CiAJCQkJCWJyZWFrOwpAQCAtMzkyLDcgKzM5Miw3IEBACiAJLyogd2FpdCB1bnRpbCBmbGFzaCBpcyByZWFkeSAqLwogCWRvIHsKIAkJLyogY2hlY2sgdGltZW91dCAqLwotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkqYWRkciA9IENNRF9TVVNQRU5EOwogCQkJcmVzdWx0ID0gQklUX1RJTUVPVVQ7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2JvYXJkL2x1YmJvY2svZmxhc2guYyBiL2JvYXJkL2x1YmJvY2svZmxhc2guYwppbmRleCAzZmYxOWJjLi5hNGIyMDFlIDEwMDY0NAotLS0gYS9ib2FyZC9sdWJib2NrL2ZsYXNoLmMKKysrIGIvYm9hcmQvbHViYm9jay9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyogQm9hcmQgc3VwcG9ydCBmb3IgMSBvciAyIGZsYXNoIGRldmljZXMgKi8KICNkZWZpbmUgRkxBU0hfUE9SVF9XSURUSDMyCkBAIC02NSw3ICs2NSw3IEBACiAJaW50IGk7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDoKIAkJCWZsYXNoX2dldF9zaXplICgoRlBXICopIFBIWVNfRkxBU0hfMSwgJmZsYXNoX2luZm9baV0pOwpAQCAtODUsOCArODUsOCBAQAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCWZsYXNoX3Byb3RlY3QgKCBGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCQlDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSZmbGFzaF9pbmZvWzBdICk7CiAKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKQEAgLTIwMywxMCArMjAzLDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IChGUFcpIDB4MDBGRjAwRkY7CQkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMjc2LDcgKzI3Niw3IEBACiAJCQkqYWRkciA9IChGUFcpIDB4MDBEMDAwRDA7CS8qIGVyYXNlIGNvbmZpcm0gKi8KIAogCQkJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJKmFkZHIgPSAoRlBXKSAweDAwQjAwMEIwOwkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwpAQCAtNDEwLDcgKzQxMCw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuICgxKTsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbHViYm9jay9sb3dsZXZlbF9pbml0LlMgYi9ib2FyZC9sdWJib2NrL2xvd2xldmVsX2luaXQuUwppbmRleCAyYTliY2JmLi5kYjZmNjlkIDEwMDY0NAotLS0gYS9ib2FyZC9sdWJib2NrL2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC9sdWJib2NrL2xvd2xldmVsX2luaXQuUwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPHZlcnNpb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogCi1EUkFNX1NJWkU6ICAubG9uZyAgIENGR19EUkFNX1NJWkUKK0RSQU1fU0laRTogIC5sb25nICAgQ09ORklHX1NZU19EUkFNX1NJWkUKIAogLyogd2FpdCBmb3IgY29wcm9jZXNzb3Igd3JpdGUgY29tcGxldGUgKi8KICAgIC5tYWNybyBDUFdBSVQgcmVnCkBAIC01MSw2NyArNTEsNjcgQEAKIAkvKiBTZXQgdXAgR1BJTyBwaW5zIGZpcnN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIAlsZHIJCXIwLAk9R1BTUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQU1IwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQU1IwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQU1IxCi0JbGRyCQlyMSwJPUNGR19HUFNSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFNSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUFNSMgotCWxkcgkJcjEsCT1DRkdfR1BTUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BTUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BDUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQQ1IwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQQ1IwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQQ1IxCi0JbGRyCQlyMSwJPUNGR19HUENSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUENSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUENSMgotCWxkcgkJcjEsCT1DRkdfR1BDUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BDUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BEUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQRFIwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQRFIwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQRFIxCi0JbGRyCQlyMSwJPUNGR19HUERSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUERSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUERSMgotCWxkcgkJcjEsCT1DRkdfR1BEUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BEUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjBfTAotCWxkcgkJcjEsCT1DRkdfR0FGUjBfTF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMF9MX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIwX1UKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIwX1VfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjBfVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMV9MCi0JbGRyCQlyMSwJPUNGR19HQUZSMV9MX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIxX0xfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjFfVQotCWxkcgkJcjEsCT1DRkdfR0FGUjFfVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMV9VX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIyX0wKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIyX0xfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjJfTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMl9VCi0JbGRyCQlyMSwJPUNGR19HQUZSMl9VX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIyX1VfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJcjAsCT1QU1NSCQkvKiBlbmFibGUgR1BJTyBwaW5zICovCi0JbGRyCQlyMSwJPUNGR19QU1NSX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX1BTU1JfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCkBAIC0xNDksMTcgKzE0OSwxNyBAQAogCS8qIE1TQyByZWdpc3RlcnM6IHRpbWluZywgYnVzIHdpZHRoLCBtZW0gdHlwZSAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogCS8qIE1TQzA6IG5DUygwLDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgID1DRkdfTVNDMF9WQUwKKwlsZHIgICAgIHIyLCAgID1DT05GSUdfU1lTX01TQzBfVkFMCiAJc3RyICAgICByMiwgICBbcjEsICNNU0MwX09GRlNFVF0KIAlsZHIgICAgIHIyLCAgIFtyMSwgI01TQzBfT0ZGU0VUXQkvKiByZWFkIGJhY2sgdG8gZW5zdXJlICAgICAgKi8KIAkJCQkJCS8qIHRoYXQgZGF0YSBsYXRjaGVzICAgICAgICAqLwogCS8qIE1TQzE6IG5DUygyLDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NU0MxX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NU0MxX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAlsZHIgICAgIHIyLCAgW3IxLCAjTVNDMV9PRkZTRVRdCiAKIAkvKiBNU0MyOiBuQ1MoNCw1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTVNDMl9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTVNDMl9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAJbGRyICAgICByMiwgIFtyMSwgI01TQzJfT0ZGU0VUXQogCkBAIC0xNjgsMzcgKzE2OCwzNyBAQAogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogCS8qIE1FQ1I6IE1lbW9yeSBFeHBhbnNpb24gQ2FyZCBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NRUNSX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NRUNSX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNRUNSX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01FQ1JfT0ZGU0VUXQogCiAJLyogTUNNRU0wOiBDYXJkIEludGVyZmFjZSBzbG90IDAgdGltaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DTUVNMF9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNNRU0wX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNQ01FTTBfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNNRU0wX09GRlNFVF0KIAogCS8qIE1DTUVNMTogQ2FyZCBJbnRlcmZhY2Ugc2xvdCAxIHRpbWluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ01FTTFfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01DTUVNMV9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNNRU0xX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DTUVNMV9PRkZTRVRdCiAKIAkvKiBNQ0FUVDA6IENhcmQgSW50ZXJmYWNlIEF0dHJpYnV0ZSBTcGFjZSBUaW1pbmcsIHNsb3QgMCAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNBVFQwX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0FUVDBfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DQVRUMF9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ0FUVDBfT0ZGU0VUXQogCiAJLyogTUNBVFQxOiBDYXJkIEludGVyZmFjZSBBdHRyaWJ1dGUgU3BhY2UgVGltaW5nLCBzbG90IDEgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DQVRUMV9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNBVFQxX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNQ0FUVDFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNBVFQxX09GRlNFVF0KIAogCS8qIE1DSU8wOiBDYXJkIEludGVyZmFjZSBJL08gU3BhY2UgVGltaW5nLCBzbG90IDAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ0lPMF9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNJTzBfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DSU8wX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DSU8wX09GRlNFVF0KIAogCS8qIE1DSU8xOiBDYXJkIEludGVyZmFjZSBJL08gU3BhY2UgVGltaW5nLCBzbG90IDEgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ0lPMV9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNJTzFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DSU8xX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DSU8xX09GRlNFVF0KIApAQCAtMjE0LDcgKzIxNCw3IEBACiAJLyogQmVmb3JlIGFjY2Vzc2luZyBNRFJFRlIgd2UgbmVlZCBhIHZhbGlkIERSSSBmaWVsZCwgc28gd2Ugc2V0ICAgICAqLwogCS8qIHRoaXMgdG8gcG93ZXIgb24gZGVmYXVsdHMgKyBEUkkgZmllbGQuICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAotCWxkciAgICAgcjMsICAgICA9Q0ZHX01EUkVGUl9WQUwKKwlsZHIgICAgIHIzLCAgICAgPUNPTkZJR19TWVNfTURSRUZSX1ZBTAogCWxkciAgICAgcjIsICAgICA9MHhGRkYKIAlhbmQgICAgIHIzLCAgICAgcjMsICByMgogCWxkcglyNCwJPTB4MDNjYTQwMDAKQEAgLTI0NCw3ICsyNDQsNyBAQAogCiAJLyogc2V0IE1EUkVGUiBhY2NvcmRpbmcgdG8gdXNlciBkZWZpbmUgd2l0aCBleGNlcHRpb24gb2YgYSBmZXcgYml0cyAqLwogCi0JbGRyICAgICByNCwgICAgID1DRkdfTURSRUZSX1ZBTAorCWxkciAgICAgcjQsICAgICA9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAJb3JyCXI0LAlyNCwJIyhNRFJFRlJfU0xGUlNIKQogCWJpYwlyNCwJcjQsCSMoTURSRUZSX0UxUElOfE1EUkVGUl9FMFBJTikKIAlzdHIgICAgIHI0LCAgICAgW3IxLCAjTURSRUZSX09GRlNFVF0gICAgLyogd3JpdGUgYmFjayBNRFJFRlIgICAgICAgICovCkBAIC0yNTksNyArMjU5LDcgQEAKIAogCS8qIFN0ZXAgNGM6IGFzc2VydCBNRFJFRlI6RTFQSU4gYW5kIEUwUElPIGFzIGRlc2lyZWQgICAgICAgICAgICAgICAgKi8KIAotCWxkciAgICAgcjQsICAgICA9Q0ZHX01EUkVGUl9WQUwKKwlsZHIgICAgIHI0LCAgICAgPUNPTkZJR19TWVNfTURSRUZSX1ZBTAogCXN0ciAgICAgcjQsICAgICBbcjEsICNNRFJFRlJfT0ZGU0VUXSAgICAvKiB3cml0ZSBiYWNrIE1EUkVGUiAgICAgICAgKi8KIAlsZHIgICAgIHI0LCAgICAgW3IxLCAjTURSRUZSX09GRlNFVF0KIApAQCAtMjY3LDcgKzI2Nyw3IEBACiAJLyogU3RlcCA0ZDogd3JpdGUgTURDTkZHIHdpdGggTURDTkZHOkRFeCBkZWFzc2VydGVkIChzZXQgdG8gMCksIHRvICAqLwogCS8qICAgICAgICAgIGNvbmZpZ3VyZSBidXQgbm90IGVuYWJsZSBlYWNoIFNEUkFNIHBhcnRpdGlvbiBwYWlyLiAgICAgKi8KIAotCWxkcglyNCwJPUNGR19NRENORkdfVkFMCisJbGRyCXI0LAk9Q09ORklHX1NZU19NRENORkdfVkFMCiAJYmljCXI0LAlyNCwJIyhNRENORkdfREUwfE1EQ05GR19ERTEpCiAKIAlzdHIgICAgIHI0LCAgICAgW3IxLCAjTURDTkZHX09GRlNFVF0JLyogd3JpdGUgYmFjayBNRENORkcgICAgICAgICovCkBAIC0yOTQsNyArMjk0LDcgQEAKIAkvKiAgICAgICAgICBkb2N1bWVudGVkIGluIFNEUkFNIGRhdGEgc2hlZXRzLiBUaGUgYWRkcmVzcyhlcykgdXNlZCAgICovCiAJLyogICAgICAgICAgZm9yIHRoaXMgcHVycG9zZSBtdXN0IG5vdCBiZSBjYWNoZWFibGUuICAgICAgICAgICAgICAgICAqLwogCi0JbGRyCXIzLAk9Q0ZHX0RSQU1fQkFTRQorCWxkcglyMywJPUNPTkZJR19TWVNfRFJBTV9CQVNFCiAJc3RyCXIyLAlbcjNdCiAJc3RyCXIyLAlbcjNdCiAJc3RyCXIyLAlbcjNdCkBAIC0zMTQsNyArMzE0LDcgQEAKIAogCS8qIFN0ZXAgNGg6IFdyaXRlIE1ETVJTLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAotCWxkciAgICAgcjIsICA9Q0ZHX01ETVJTX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NRE1SU19WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTURNUlNfT0ZGU0VUXQogCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2x3bW9uL2ZsYXNoLmMgYi9ib2FyZC9sd21vbi9mbGFzaC5jCmluZGV4IDhkOTg1NDUuLmY3MWNjMjQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2x3bW9uL2ZsYXNoLmMKKysrIGIvYm9hcmQvbHdtb24vZmxhc2guYwpAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNDAsMTQgKzQwLDE0IEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwogICovCiBzdGF0aWMgdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHZ1X2xvbmcgKmFkZHIsIGZsYXNoX2luZm9fdCAqaW5mbyk7CiBzdGF0aWMgaW50IHdyaXRlX2RhdGEgKGZsYXNoX2luZm9fdCAqaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSk7Ci0jaWZkZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIHN0YXRpYyBpbnQgd3JpdGVfZGF0YV9idWYgKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVjaGFyICogY3AsIGludCBsZW4pOwogI2VuZGlmCiBzdGF0aWMgdm9pZCBmbGFzaF9nZXRfb2Zmc2V0cyAodWxvbmcgYmFzZSwgZmxhc2hfaW5mb190ICppbmZvKTsKQEAgLTU3LDEzICs1NywxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjAsIHNpemVfYjE7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTEwOCwyNSArMTA4LDI1IEBACiAJCW1lbWN0bC0+bWVtY19icjEsIG1lbWN0bC0+bWVtY19vcjEpOwogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSAoLXNpemVfYjAgJiAweEZGRkY4MDAwKSB8IENGR19PUl9USU1JTkdfRkxBU0ggfAorCW1lbWN0bC0+bWVtY19vcjAgPSAoLXNpemVfYjAgJiAweEZGRkY4MDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwKIAkJCQlPUl9DU05UX1NBTSB8IE9SX0FDU19ESVYxOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMzIgfCBCUl9WOworCW1lbWN0bC0+bWVtY19icjAgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzMyIHwgQlJfVjsKIAogCWRlYnVnICgiIyMgQlIwOiAweCUwOHggICAgT1IwOiAweCUwOHhcbiIsCiAJCW1lbWN0bC0+bWVtY19icjAsIG1lbWN0bC0+bWVtY19vcjApOwogCiAJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9pbmZvWzBdLnNpemUgPSBzaXplX2IwOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMTM5LDI3ICsxMzksMjcgQEAKICNlbmRpZgogCiAJaWYgKHNpemVfYjEpIHsKLQkJbWVtY3RsLT5tZW1jX29yMSA9ICgtc2l6ZV9iMSAmIDB4RkZGRjgwMDApIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCB8CisJCW1lbWN0bC0+bWVtY19vcjEgPSAoLXNpemVfYjEgJiAweEZGRkY4MDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwKIAkJCQkJT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWMTsKLQkJbWVtY3RsLT5tZW1jX2JyMSA9ICgoQ0ZHX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSAmIEJSX0JBX01TSykgfAorCQltZW1jdGwtPm1lbWNfYnIxID0gKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSAmIEJSX0JBX01TSykgfAogCQkJCQlCUl9QU18zMiB8IEJSX1Y7CiAKIAkJZGVidWcgKCIjIyBCUjE6IDB4JTA4eCAgICBPUjE6IDB4JTA4eFxuIiwKIAkJCW1lbWN0bC0+bWVtY19icjEsIG1lbWN0bC0+bWVtY19vcjEpOwogCiAJCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQkJc2l6ZV9iMSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCksCisJCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSwKIAkJCQkJICAmZmxhc2hfaW5mb1sxXSk7CiAKIAkJZmxhc2hfaW5mb1sxXS5zaXplID0gc2l6ZV9iMTsKIAotCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UgKyBzaXplX2IwLCAmZmxhc2hfaW5mb1sxXSk7CisJCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwLCAmZmxhc2hfaW5mb1sxXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCQkgICAgICAmZmxhc2hfaW5mb1sxXSk7CiAjZW5kaWYKIApAQCAtMzQyLDEwICszNDIsMTAgQEAKIAogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IDB4MDBGRjAwRkY7CQkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtNDA5LDcgKzQwOSw3IEBACiAJCQl1ZGVsYXkgKDEwMDApOwogCQkJLyogVGhpcyB0YWtlcyBhd2Z1bGx5IGxvbmcgLSB1cCB0byA1MCBtcyBhbmQgbW9yZSAqLwogCQkJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJKmFkZHIgPSAweDAwRkYwMEZGOyAvKiByZXNldCB0byByZWFkIG1vZGUgKi8KIAkJCQkJcmV0dXJuIDE7CkBAIC00MzUsNyArNDM1LDcgQEAKIAkJCXVkZWxheSAoMTAwMCk7CiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCSphZGRyID0gMHgwMEIwMDBCMDsgLyogc3VzcGVuZCBlcmFzZQkgICovCiAJCQkJCSphZGRyID0gMHgwMEZGMDBGRjsgLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC01MDQsMTAgKzUwNCwxMCBAQAogCS8qCiAJICogaGFuZGxlIEZMQVNIX1dJRFRIIGFsaWduZWQgcGFydAogCSAqLwotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAJd2hpbGUoY250ID49IEZMQVNIX1dJRFRIKSB7Ci0JCWkgPSBDRkdfRkxBU0hfQlVGRkVSX1NJWkUgPiBjbnQgPwotCQkgICAgKGNudCAmIH4oRkxBU0hfV0lEVEggLSAxKSkgOiBDRkdfRkxBU0hfQlVGRkVSX1NJWkU7CisJCWkgPSBDT05GSUdfU1lTX0ZMQVNIX0JVRkZFUl9TSVpFID4gY250ID8KKwkJICAgIChjbnQgJiB+KEZMQVNIX1dJRFRIIC0gMSkpIDogQ09ORklHX1NZU19GTEFTSF9CVUZGRVJfU0laRTsKIAkJaWYoKHJjID0gd3JpdGVfZGF0YV9idWYoaW5mbywgd3AsIHNyYyxpKSkgIT0gMCkKIAkJCXJldHVybiByYzsKIAkJd3AgKz0gaTsKQEAgLTUyNiw3ICs1MjYsNyBAQAogCQl3cCAgKz0gRkxBU0hfV0lEVEg7CiAJCWNudCAtPSBGTEFTSF9XSURUSDsKIAl9Ci0jZW5kaWYgLyogQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgKi8KIAogCWlmIChjbnQgPT0gMCkgewogCQlyZXR1cm4gKDApOwpAQCAtNTk0LDcgKzU5NCw3IEBACiAJaWYgKGZsYWcpCiAJCWVuYWJsZV9pbnRlcnJ1cHRzKCk7CiAKLQlpZiAoZmxhc2hfc3RhdHVzX2NoZWNrKGFkZHIsIENGR19GTEFTSF9XUklURV9UT1VULCAid3JpdGUiKSAhPSAwKSB7CisJaWYgKGZsYXNoX3N0YXR1c19jaGVjayhhZGRyLCBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQsICJ3cml0ZSIpICE9IDApIHsKIAkJcmV0dXJuICgxKTsKIAl9CiAKQEAgLTYwMyw3ICs2MDMsNyBAQAogCXJldHVybiAoMCk7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogV3JpdGUgYSBidWZmZXIgdG8gRmxhc2gsIHJldHVybnM6CiAgKiAwIC0gT0sKQEAgLTYyNyw3ICs2MjcsNyBAQAogCSphZGRyID0gMHgwMDUwMDA1MDsJCS8qIGNsZWFyIHN0YXR1cyAqLwogCSphZGRyID0gMHgwMGU4MDBlODsJCS8qIHdyaXRlIGJ1ZmZlciAqLwogCi0JaWYoKHJldGNvZGUgPSBmbGFzaF9zdGF0dXNfY2hlY2soYWRkciwgQ0ZHX0ZMQVNIX0JVRkZFUl9XUklURV9UT1VULAorCWlmKChyZXRjb2RlID0gZmxhc2hfc3RhdHVzX2NoZWNrKGFkZHIsIENPTkZJR19TWVNfRkxBU0hfQlVGRkVSX1dSSVRFX1RPVVQsCiAJCQkJCSAid3JpdGUgdG8gYnVmZmVyIikpID09IDApIHsKIAkJY250ID0gbGVuIC8gRkxBU0hfV0lEVEg7CiAJCSphZGRyID0gKGNudC0xKSB8ICgoY250LTEpIDw8IDE2KTsKQEAgLTYzNSwxNCArNjM1LDE0IEBACiAJCQkqZHN0KysgPSAqc3JjKys7CiAJCX0KIAkJKmFkZHIgPSAweDAwZDAwMGQwOwkJLyogd3JpdGUgYnVmZmVyIGNvbmZpcm0gKi8KLQkJcmV0Y29kZSA9IGZsYXNoX3N0YXR1c19jaGVjayhhZGRyLCBDRkdfRkxBU0hfQlVGRkVSX1dSSVRFX1RPVVQsCisJCXJldGNvZGUgPSBmbGFzaF9zdGF0dXNfY2hlY2soYWRkciwgQ09ORklHX1NZU19GTEFTSF9CVUZGRVJfV1JJVEVfVE9VVCwKIAkJCQkJCSAiYnVmZmVyIHdyaXRlIik7CiAJfQogCSphZGRyID0gMHgwMEZGMDBGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkqYWRkciA9IDB4MDA1MDAwNTA7CS8qIGNsZWFyIHN0YXR1cyAqLwogCXJldHVybiByZXRjb2RlOwogfQotI2VuZGlmIC8qIENGR19VU0VfRkxBU0hfQlVGRkVSX1dSSVRFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19VU0VfRkxBU0hfQlVGRkVSX1dSSVRFICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvbHdtb24vbHdtb24uYyBiL2JvYXJkL2x3bW9uL2x3bW9uLmMKaW5kZXggNGEyZDhlNC4uYWFkZDI1NCAxMDA2NDQKLS0tIGEvYm9hcmQvbHdtb24vbHdtb24uYworKysgYi9ib2FyZC9sd21vbi9sd21vbi5jCkBAIC02Niw3ICs2Niw3IEBACiAgKi8KIGNvbnN0IHVpbnQgc2RyYW1fdGFibGVbXSA9CiB7Ci0jaWYgZGVmaW5lZChDRkdfTUVNT1JZXzc1KSB8fCBkZWZpbmVkKENGR19NRU1PUllfOEUpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX01FTU9SWV83NSkgfHwgZGVmaW5lZChDT05GSUdfU1lTX01FTU9SWV84RSkKIAkvKgogCSAqIFNpbmdsZSBSZWFkLiAoT2Zmc2V0IDAgaW4gVVBNIFJBTSkKIAkgKi8KQEAgLTExNCw3ICsxMTQsNyBAQAogCTB4N0ZGRkZDMDcsIC8qIGxhc3QgKi8KIAkJICAgIDB4RkZGRkZDRkYsIDB4RkZGRkZDRkYsIDB4RkZGRkZDRkYsCiAjZW5kaWYKLSNpZmRlZiBDRkdfTUVNT1JZXzdFCisjaWZkZWYgQ09ORklHX1NZU19NRU1PUllfN0UKIAkvKgogCSAqIFNpbmdsZSBSZWFkLiAoT2Zmc2V0IDAgaW4gVVBNIFJBTSkKIAkgKi8KQEAgLTIxMSw3ICsyMTEsNyBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tci0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemVfYjA7CiAJbG9uZyBpbnQgc2l6ZTgsIHNpemU5OwpAQCAtMjIyLDE5ICsyMjIsMTkgQEAKIAkgKi8KIAl1cG1jb25maWcgKFVQTUEsICh1aW50ICopc2RyYW1fdGFibGUsIHNpemVvZihzZHJhbV90YWJsZSkvc2l6ZW9mKHVpbnQpKTsKIAotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCiAJLyogYnVyc3QgbGVuZ3RoPTQsIGJ1cnN0IHR5cGU9c2VxdWVudGlhbCwgQ0FTIGxhdGVuY3k9MiAqLwotCW1lbWN0bC0+bWVtY19tYXIgPSBDRkdfTUFSOworCW1lbWN0bC0+bWVtY19tYXIgPSBDT05GSUdfU1lTX01BUjsKIAogCS8qCiAJICogTWFwIGNvbnRyb2xsZXIgYmFuayAzIHRvIHRoZSBTRFJBTSBiYW5rIGF0IHByZWxpbWluYXJ5IGFkZHJlc3MuCiAJICovCi0JbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjMgPSBDRkdfQlIzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19PUjNfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjMgPSBDT05GSUdfU1lTX0JSM19QUkVMSU07CiAKIAkvKiBpbml0aWFsaXplIG1lbW9yeSBhZGRyZXNzIHJlZ2lzdGVyICovCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MOwkvKiByZWZyZXNoIG5vdCBlbmFibGVkIHlldCAqLworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0w7CS8qIHJlZnJlc2ggbm90IGVuYWJsZWQgeWV0ICovCiAKIAkvKiBtb2RlIGluaXRpYWxpemF0aW9uIChvZmZzZXQgNSkgKi8KIAl1ZGVsYXkgKDIwMCk7CQkJCS8qIDB4ODAwMDYxMDUgKi8KQEAgLTI2OCwyMiArMjY4LDIyIEBACiAJICoKIAkgKiB0cnkgOCBjb2x1bW4gbW9kZQogCSAqLwotCXNpemU4ID0gZHJhbV9zaXplIChDRkdfTUFNUl84Q09MLCAobG9uZyAqKVNEUkFNX0JBU0UzX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOworCXNpemU4ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOENPTCwgKGxvbmcgKilTRFJBTV9CQVNFM19QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKIAogCXVkZWxheSAoMTAwMCk7CiAKIAkvKgogCSAqIHRyeSA5IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTkgPSBkcmFtX3NpemUgKENGR19NQU1SXzlDT0wsIChsb25nICopU0RSQU1fQkFTRTNfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CisJc2l6ZTkgPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUl85Q09MLCAobG9uZyAqKVNEUkFNX0JBU0UzX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOwogCiAJaWYgKHNpemU4IDwgc2l6ZTkpIHsJCS8qIGxlYXZlIGNvbmZpZ3VyYXRpb24gYXQgOSBjb2x1bW5zICovCiAJCXNpemVfYjAgPSBzaXplOTsKLQkJbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl85Q09MIHwgTUFNUl9QVEFFOworCQltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl85Q09MIHwgTUFNUl9QVEFFOwogCQl1ZGVsYXkgKDUwMCk7CiAJfSBlbHNlIHsJCQkvKiBiYWNrIHRvIDggY29sdW1ucyAgICAgICAgICAgICovCiAJCXNpemVfYjAgPSBzaXplODsKLQkJbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MIHwgTUFNUl9QVEFFOworCQltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MIHwgTUFNUl9QVEFFOwogCQl1ZGVsYXkgKDUwMCk7CiAJfQogCkBAIC0yOTMsNyArMjkzLDcgQEAKIAogCW1lbWN0bC0+bWVtY19vcjMgPSAoKC1zaXplX2IwKSAmIDB4RkZGRjAwMDApIHwKIAkJCU9SX0NTTlRfU0FNIHwgT1JfRzVMUyB8IFNEUkFNX1RJTUlORzsKLQltZW1jdGwtPm1lbWNfYnIzID0gKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOworCW1lbWN0bC0+bWVtY19icjMgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCXVkZWxheSAoMTAwMCk7CiAKIAlyZXR1cm4gKHNpemVfYjApOwpAQCAtMzI3LDcgKzMyNyw3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBzdGF0aWMgbG9uZyBpbnQgZHJhbV9zaXplIChsb25nIGludCBtYW1yX3ZhbHVlLCBsb25nIGludCAqYmFzZSwgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKQEAgLTM1OSw3ICszNTksNyBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IGJvYXJkX2Vhcmx5X2luaXRfZiAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCS8qIERpc2FibGUgRXRoZXJuZXQgVEVOQSBvbiBQb3J0IEIKIAkgKiBOZWNlc3NhcnkgYmVjYXVzZSBvZiBwdWxsIHVwIGluIENPTTMgcG9ydC4KQEAgLTQzNyw3ICs0MzcsNyBAQAogCiAvKiBtYXhpbXVtIG51bWJlciBvZiAibWFnaWMiIGtleSBjb2RlcyB0aGF0IGNhbiBiZSBhc3NpZ25lZCAqLwogCi1zdGF0aWMgdWNoYXIga2JkX2FkZHIgPSBDRkdfSTJDX0tFWUJEX0FERFI7CitzdGF0aWMgdWNoYXIga2JkX2FkZHIgPSBDT05GSUdfU1lTX0kyQ19LRVlCRF9BRERSOwogCiBzdGF0aWMgdWNoYXIgKmtleV9tYXRjaCAodWNoYXIgKik7CiAKQEAgLTQ4MSw3ICs0ODEsNyBAQAogCXVjaGFyIHZhbCwgZXJyY2Q7CiAJaW50IGk7CiAKLQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKIAlnZC0+a2JkX3N0YXR1cyA9IDA7CiAKQEAgLTg2Miw3ICs4NjIsNyBAQAogCWludCBpOwogCiAjaWYgMCAvKiBEb25lIGluIGtiZF9pbml0ICovCi0JaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogI2VuZGlmCiAKIAkvKiBSZWFkIGtleXMgKi8KQEAgLTg4Nyw3ICs4ODcsNyBAQAogKTsKIAogLyogUmVhZCBhbmQgc2V0IExTQiBzd2l0Y2ggKi8KLSNkZWZpbmUgQ0ZHX1BDX1RYRDFfRU5BCQkweDAwMDgJCS8qIFBDLjEyICovCisjZGVmaW5lIENPTkZJR19TWVNfUENfVFhEMV9FTkEJCTB4MDAwOAkJLyogUEMuMTIgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiBGKiBGdW5jdGlvbjogICAgIGludCBkb19sc2IgKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLApAQCAtOTIwLDcgKzkyMCw3IEBACiBpbnQgZG9fbHNiIChjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKIAl1Y2hhciB2YWw7Ci0JaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCWltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlzd2l0Y2ggKGFyZ2MpIHsKIAljYXNlIDE6CQkJCQkvKiBsc2IgLSBwcmludCBzZXR0aW5nICovCkBAIC05MzIsMTQgKzkzMiwxNCBAQAogCiAJCWlmIChzdHJjbXAgKGFyZ3ZbMV0sICJvbiIpID09IDApIHsKIAkJCXZhbCB8PSAweDIwOwotCQkJaW1tci0+aW1faW9wb3J0LmlvcF9wY3BhciAmPSB+KENGR19QQ19UWEQxX0VOQSk7Ci0JCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0IHw9IENGR19QQ19UWEQxX0VOQTsKLQkJCWltbXItPmltX2lvcG9ydC5pb3BfcGNkaXIgfD0gQ0ZHX1BDX1RYRDFfRU5BOworCQkJaW1tci0+aW1faW9wb3J0LmlvcF9wY3BhciAmPSB+KENPTkZJR19TWVNfUENfVFhEMV9FTkEpOworCQkJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCB8PSBDT05GSUdfU1lTX1BDX1RYRDFfRU5BOworCQkJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RpciB8PSBDT05GSUdfU1lTX1BDX1RYRDFfRU5BOwogCQl9IGVsc2UgaWYgKHN0cmNtcCAoYXJndlsxXSwgIm9mZiIpID09IDApIHsKIAkJCXZhbCAmPSB+MHgyMDsKLQkJCWltbXItPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfihDRkdfUENfVFhEMV9FTkEpOwotCQkJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCAmPSB+KENGR19QQ19UWEQxX0VOQSk7Ci0JCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGlyIHw9IENGR19QQ19UWEQxX0VOQTsKKwkJCWltbXItPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfihDT05GSUdfU1lTX1BDX1RYRDFfRU5BKTsKKwkJCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgJj0gfihDT05GSUdfU1lTX1BDX1RYRDFfRU5BKTsKKwkJCWltbXItPmltX2lvcG9ydC5pb3BfcGNkaXIgfD0gQ09ORklHX1NZU19QQ19UWEQxX0VOQTsKIAkJfSBlbHNlIHsKIAkJCWJyZWFrOwogCQl9CkBAIC05ODAsNyArOTgwLDcgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHVjaGFyIHBpY19yZWFkICh1Y2hhciByZWcpCiB7Ci0JcmV0dXJuIChpMmNfcmVnX3JlYWQgKENGR19JMkNfUElDSU9fQUREUiwgcmVnKSk7CisJcmV0dXJuIChpMmNfcmVnX3JlYWQgKENPTkZJR19TWVNfSTJDX1BJQ0lPX0FERFIsIHJlZykpOwogfQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEwMDEsNyArMTAwMSw3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiB2b2lkIHBpY193cml0ZSAodWNoYXIgcmVnLCB1Y2hhciB2YWwpCiB7Ci0JaTJjX3JlZ193cml0ZSAoQ0ZHX0kyQ19QSUNJT19BRERSLCByZWcsIHZhbCk7CisJaTJjX3JlZ193cml0ZSAoQ09ORklHX1NZU19JMkNfUElDSU9fQUREUiwgcmVnLCB2YWwpOwogfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQm9hcmQgQ29udHJvbCBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC0xMDIyLDcgKzEwMjIsNyBAQAogdm9pZCBib2FyZF9wb3dlcm9mZiAodm9pZCkKIHsKICAgICAvKiBUdXJuIGJhdHRlcnkgb2ZmICovCi0gICAgKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICY9IH4oMSA8PCAoMzEgLSAxMykpOworICAgICgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQgJj0gfigxIDw8ICgzMSAtIDEzKSk7CiAKICAgICB3aGlsZSAoMSk7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9sd21vbi9wY21jaWEuYyBiL2JvYXJkL2x3bW9uL3BjbWNpYS5jCmluZGV4IDg4MjViZDkuLmFkMmU2MGQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2x3bW9uL3BjbWNpYS5jCisrKyBiL2JvYXJkL2x3bW9uL3BjbWNpYS5jCkBAIC01MSwxMCArNTEsMTAgQEAKICNlbmRpZgogCXVkZWxheSgxMDAwMCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0Jc3lzcCAgPSAoc3lzY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9zaXVfY29uZikpOwotCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7Ci0JY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJc3lzcCAgPSAoc3lzY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fc2l1X2NvbmYpKTsKKwlwY21wICA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEpKTsKKwljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbSkpOwogCiAJLyoKIAkgKiBDb25maWd1cmUgU0lVTUNSIHRvIGVuYWJsZSBQQ01DSUEgcG9ydCBCCkBAIC0xMDgsOCArMTA4LDggQEAKIAogCS8qICBzd2l0Y2ggVkNDIG9uICovCiAJdmFsIHw9IE1BWDE2MDRfT1BfU1VTIHwgTUFYMTYwNF9WQ0NCT047Ci0JaTJjX2luaXQgIChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKLQlpMmNfd3JpdGUgKENGR19JMkNfUE9XRVJfQV9BRERSLCAwLCAwLCAmdmFsLCAxKTsKKwlpMmNfaW5pdCAgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CisJaTJjX3dyaXRlIChDT05GSUdfU1lTX0kyQ19QT1dFUl9BX0FERFIsIDAsIDAsICZ2YWwsIDEpOwogCiAJdWRlbGF5KDUwMDAwMCk7CiAKQEAgLTEzNywxMyArMTM3LDEzIEBACiAKIAlkZWJ1ZyAoImhhcmR3YXJlX2Rpc2FibGU6ICIgUENNQ0lBX0JPQVJEX01TRyAiIFNsb3QgJWNcbiIsICdBJytzbG90KTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogCiAJLyogcmVtb3ZlIGFsbCBwb3dlciwgcHV0IG91dHB1dCBpbiBoaWdoIGltcGVkYW5jZSBzdGF0ZSAqLwogCXZhbCAgPSBNQVgxNjA0X1ZDQ0JISVogfCBNQVgxNjA0X1ZQUEJISVo7Ci0JaTJjX2luaXQgIChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKLQlpMmNfd3JpdGUgKENGR19JMkNfUE9XRVJfQV9BRERSLCAwLCAwLCAmdmFsLCAxKTsKKwlpMmNfaW5pdCAgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CisJaTJjX3dyaXRlIChDT05GSUdfU1lTX0kyQ19QT1dFUl9BX0FERFIsIDAsIDAsICZ2YWwsIDEpOwogCiAJLyogQ29uZmlndXJlIFBDTUNJQSBHZW5lcmFsIENvbnRyb2wgUmVnaXN0ZXIgKi8KIAlkZWJ1ZyAoIkRpc2FibGUgUENNQ0lBIGJ1ZmZlcnMgYW5kIGFzc2VydCBSRVNFVFxuIik7CkBAIC0xODEsOCArMTgxLDggQEAKIAkJIiBTbG90ICVjLCBWY2M9JWQuJWQsIFZwcD0lZC4lZFxuIiwKIAkJJ0EnK3Nsb3QsIHZjYy8xMCwgdmNjJTEwLCB2cHAvMTAsIHZjYyUxMCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JcGNtcCA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJcGNtcCA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEpKTsKIAkvKgogCSAqIERpc2FibGUgUENNQ0lBIGJ1ZmZlcnMgKGlzb2xhdGUgdGhlIGludGVyZmFjZSkKIAkgKiBhbmQgYXNzZXJ0IFJFU0VUIHNpZ25hbApAQCAtMTk5LDggKzE5OSw4IEBACiAJICovCiAJZGVidWcgKCJQQ01DSUEgcG93ZXIgT0ZGXG4iKTsKIAl2YWwgID0gTUFYMTYwNF9WQ0NCSElaIHwgTUFYMTYwNF9WUFBCSElaOwotCWkyY19pbml0ICAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7Ci0JaTJjX3dyaXRlIChDRkdfSTJDX1BPV0VSX0FfQUREUiwgMCwgMCwgJnZhbCwgMSk7CisJaTJjX2luaXQgIChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOworCWkyY193cml0ZSAoQ09ORklHX1NZU19JMkNfUE9XRVJfQV9BRERSLCAwLCAwLCAmdmFsLCAxKTsKIAogCXZhbCA9IDA7CiAJc3dpdGNoKHZjYykgewpAQCAtMjE2LDcgKzIxNiw3IEBACiAJCXBjbXAtPnBjbWNfcGlwciwKIAkJKHBjbXAtPnBjbWNfcGlwciAmIDB4MDAwMDgwMDApID8gIm9ubHkgNSBWIiA6ICJjYW4gZG8gMy4zViIpOwogCi0JaTJjX3dyaXRlIChDRkdfSTJDX1BPV0VSX0FfQUREUiwgMCwgMCwgJnZhbCwgMSk7CisJaTJjX3dyaXRlIChDT05GSUdfU1lTX0kyQ19QT1dFUl9BX0FERFIsIDAsIDAsICZ2YWwsIDEpOwogCWlmICh2YWwpIHsKIAkJZGVidWcgKCJQQ01DSUEgcG93ZXJlZCBhdCAlc1ZcbiIsCiAJCQkodmFsICYgTUFYMTYwNF9WQ0NfMzUpID8gIjMuMyIgOiAiNS4wIik7CmRpZmYgLS1naXQgYS9ib2FyZC9sd21vbjUvY29uZmlnLm1rIGIvYm9hcmQvbHdtb241L2NvbmZpZy5tawppbmRleCBiZjJiODc5Li4zYzZkMDQxIDEwMDY0NAotLS0gYS9ib2FyZC9sd21vbjUvY29uZmlnLm1rCisrKyBiL2JvYXJkL2x3bW9uNS9jb25maWcubWsKQEAgLTM1LDUgKzM1LDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9sd21vbjUvaW5pdC5TIGIvYm9hcmQvbHdtb241L2luaXQuUwppbmRleCA1YWFkZTcyLi43MThjZWM2IDEwMDY0NAotLS0gYS9ib2FyZC9sd21vbjUvaW5pdC5TCisrKyBiL2JvYXJkL2x3bW9uNS9pbml0LlMKQEAgLTQ3LDcgKzQ3LDcgQEAKIAkgKiBCT09UX0NTIChGTEFTSCkgbXVzdCBiZSBmaXJzdC4gQmVmb3JlIHJlbG9jYXRpb24gU0FfSSBjYW4gYmUgb2ZmIHRvIHVzZSB0aGUKIAkgKiBzcGVlZCB1cCBib290IHByb2Nlc3MuIEl0IGlzIHBhdGNoZWQgYWZ0ZXIgcmVsb2NhdGlvbiB0byBlbmFibGUgU0FfSQogCSAqLwotCXRsYmVudHJ5KENGR19CT09UX0JBU0VfQUREUiwgU1pfMjU2TSwgQ0ZHX0JPT1RfQkFTRV9BRERSLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HKQorCXRsYmVudHJ5KENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0sIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0cpCiAKIAkvKgogCSAqIFRMQiBlbnRyaWVzIGZvciBTRFJBTSBhcmUgbm90IG5lZWRlZCBvbiB0aGlzIHBsYXRmb3JtLgpAQCAtNTUsMjggKzU1LDI4IEBACiAJICogcm91dGluZS4KIAkgKi8KIAotI2lmZGVmIENGR19JTklUX1JBTV9EQ0FDSEUKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfUkFNX0RDQUNIRQogCS8qIFRMQi1lbnRyeSBmb3IgaW5pdC1yYW0gaW4gZGNhY2hlIChTQV9JIG11c3QgYmUgdHVybmVkIG9mZiEpICovCi0JdGxiZW50cnkoQ0ZHX0lOSVRfUkFNX0FERFIsIFNaXzRLLCBDRkdfSU5JVF9SQU1fQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRykKKwl0bGJlbnRyeShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIFNaXzRLLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cpCiAjZW5kaWYKIAogCS8qIFRMQi1lbnRyeSBmb3IgUENJIE1lbW9yeSAqLwotCXRsYmVudHJ5KENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lfTUVNQkFTRTEsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRTEsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSV9NRU1CQVNFMiwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFMiwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJX01FTUJBU0UzLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UzLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX01FTUJBU0UsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UxLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX01FTUJBU0UyLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSV9NRU1CQVNFMywgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTMsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAKIAkvKiBUTEItZW50cnkgZm9yIHRoZSBGUEdBIENoaXAgc2VsZWN0IDIgKi8KLQl0bGJlbnRyeShDRkdfRlBHQV9CQVNFXzAsIFNaXzFNLCBDRkdfRlBHQV9CQVNFXzAsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0l8U0FfRykKKwl0bGJlbnRyeShDT05GSUdfU1lTX0ZQR0FfQkFTRV8wLCBTWl8xTSwgQ09ORklHX1NZU19GUEdBX0JBU0VfMCwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfSXxTQV9HKQogCiAJLyogVExCLWVudHJ5IGZvciB0aGUgRlBHQSBDaGlwIHNlbGVjdCAzICovCi0JdGxiZW50cnkoQ0ZHX0ZQR0FfQkFTRV8xLCBTWl8xTSwgQ0ZHX0ZQR0FfQkFTRV8xLCAxLEFDX1J8QUNfV3xBQ19YfFNBX0l8U0FfRykKKwl0bGJlbnRyeShDT05GSUdfU1lTX0ZQR0FfQkFTRV8xLCBTWl8xTSwgQ09ORklHX1NZU19GUEdBX0JBU0VfMSwgMSxBQ19SfEFDX1d8QUNfWHxTQV9JfFNBX0cpCiAKIAkvKiBUTEItZW50cnkgZm9yIHRoZSBMSU1FIENvbnRyb2xsZXIgKi8KLQl0bGJlbnRyeShDRkdfTElNRV9CQVNFXzAsIFNaXzE2TSwgQ0ZHX0xJTUVfQkFTRV8wLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9JfFNBX0cpCi0JdGxiZW50cnkoQ0ZHX0xJTUVfQkFTRV8xLCBTWl8xNk0sIENGR19MSU1FX0JBU0VfMSwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfSXxTQV9HKQotCXRsYmVudHJ5KENGR19MSU1FX0JBU0VfMiwgU1pfMTZNLCBDRkdfTElNRV9CQVNFXzIsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0l8U0FfRykKLQl0bGJlbnRyeShDRkdfTElNRV9CQVNFXzMsIFNaXzE2TSwgQ0ZHX0xJTUVfQkFTRV8zLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9JfFNBX0cpCisJdGxiZW50cnkoQ09ORklHX1NZU19MSU1FX0JBU0VfMCwgU1pfMTZNLCBDT05GSUdfU1lTX0xJTUVfQkFTRV8wLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9JfFNBX0cpCisJdGxiZW50cnkoQ09ORklHX1NZU19MSU1FX0JBU0VfMSwgU1pfMTZNLCBDT05GSUdfU1lTX0xJTUVfQkFTRV8xLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9JfFNBX0cpCisJdGxiZW50cnkoQ09ORklHX1NZU19MSU1FX0JBU0VfMiwgU1pfMTZNLCBDT05GSUdfU1lTX0xJTUVfQkFTRV8yLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9JfFNBX0cpCisJdGxiZW50cnkoQ09ORklHX1NZU19MSU1FX0JBU0VfMywgU1pfMTZNLCBDT05GSUdfU1lTX0xJTUVfQkFTRV8zLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9JfFNBX0cpCiAKIAkvKiBUTEItZW50cnkgZm9yIEludGVybmFsIFJlZ2lzdGVycyAmIE9DTSAqLwogCXRsYmVudHJ5KDB4ZTAwMDAwMDAsIFNaXzE2TSwgMHhlMDAwMDAwMCwgMCwgIEFDX1J8QUNfV3xBQ19YfFNBX0kpCmRpZmYgLS1naXQgYS9ib2FyZC9sd21vbjUva2JkLmMgYi9ib2FyZC9sd21vbjUva2JkLmMKaW5kZXggMWU1MzQ5YS4uMGE4Nzg3YSAxMDA2NDQKLS0tIGEvYm9hcmQvbHdtb241L2tiZC5jCisrKyBiL2JvYXJkL2x3bW9uNS9rYmQuYwpAQCAtNzQsNyArNzQsNyBAQAogCiAvKiBtYXhpbXVtIG51bWJlciBvZiAibWFnaWMiIGtleSBjb2RlcyB0aGF0IGNhbiBiZSBhc3NpZ25lZCAqLwogCi1zdGF0aWMgdWNoYXIga2JkX2FkZHIgPSBDRkdfSTJDX0tFWUJEX0FERFI7CitzdGF0aWMgdWNoYXIga2JkX2FkZHIgPSBDT05GSUdfU1lTX0kyQ19LRVlCRF9BRERSOwogCiBzdGF0aWMgdWNoYXIgKmtleV9tYXRjaCAodWNoYXIgKik7CiAKQEAgLTEwNiw3ICsxMDYsNyBAQAogCXVjaGFyIHZhbCwgZXJyY2Q7CiAJaW50IGk7CiAKLQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKIAlnZC0+a2JkX3N0YXR1cyA9IDA7CiAKQEAgLTQxMiw3ICs0MTIsNyBAQAogCWludCBpOwogCiAjaWYgMCAvKiBEb25lIGluIGtiZF9pbml0ICovCi0JaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogI2VuZGlmCiAKIAkvKiBSZWFkIGtleXMgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2x3bW9uNS9sd21vbjUuYyBiL2JvYXJkL2x3bW9uNS9sd21vbjUuYwppbmRleCA4OTc1YmZkLi5hYTYyZjM3IDEwMDY0NAotLS0gYS9ib2FyZC9sd21vbjUvbHdtb241LmMKKysrIGIvYm9hcmQvbHdtb241L2x3bW9uNS5jCkBAIC0yNyw3ICsyNyw3IEBACiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi1leHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitleHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiB1bG9uZyBmbGFzaF9nZXRfc2l6ZSh1bG9uZyBiYXNlLCBpbnQgYmFua251bSk7CiBpbnQgbWlzY19pbml0X3Jfa2JkKHZvaWQpOwpAQCAtOTQsMjQgKzk0LDI0IEBACiAJcmVnID0gMDsKIAltdHNkcihzZHJfcGNpMCwgMHgwMDAwMDAwMCB8IHJlZyk7CiAKLQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19GTEFTSF9XUCwgMSk7CisJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX0ZMQVNIX1dQLCAxKTsKIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQlNQRUMxCi0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fSElHSFNJREUsIDEpOworI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0JTUEVDMQorCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19ISUdIU0lERSwgMSk7CiAKIAlyZWcgPSAwOyAvKiByZXVzZSBhcyBjb3VudGVyICovCi0Jb3V0X2JlMzIoKHZvaWQgKilDRkdfRFNQSUNfVEVTVF9BRERSLAotCQlpbl9iZTMyKCh2b2lkICopQ0ZHX0RTUElDX1RFU1RfQUREUikKLQkJCSYgfkNGR19EU1BJQ19URVNUX01BU0spOwotCXdoaWxlICghZ3Bpb19yZWFkX2luX2JpdChDRkdfR1BJT19EU1BJQ19SRUFEWSkgJiYgcmVnKysgPCAxMDAwKSB7CisJb3V0X2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX0RTUElDX1RFU1RfQUREUiwKKwkJaW5fYmUzMigodm9pZCAqKUNPTkZJR19TWVNfRFNQSUNfVEVTVF9BRERSKQorCQkJJiB+Q09ORklHX1NZU19EU1BJQ19URVNUX01BU0spOworCXdoaWxlICghZ3Bpb19yZWFkX2luX2JpdChDT05GSUdfU1lTX0dQSU9fRFNQSUNfUkVBRFkpICYmIHJlZysrIDwgMTAwMCkgewogCQl1ZGVsYXkoMTAwMCk7CiAJfQotCWdwaW9fd3JpdGVfYml0KENGR19HUElPX0hJR0hTSURFLCAwKTsKLQlpZiAoZ3Bpb19yZWFkX2luX2JpdChDRkdfR1BJT19EU1BJQ19SRUFEWSkpIHsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fSElHSFNJREUsIDApOworCWlmIChncGlvX3JlYWRfaW5fYml0KENPTkZJR19TWVNfR1BJT19EU1BJQ19SRUFEWSkpIHsKIAkJLyogc2V0ICJib290IGVycm9yIiBmbGFnICovCi0JCW91dF9iZTMyKCh2b2lkICopQ0ZHX0RTUElDX1RFU1RfQUREUiwKLQkJCWluX2JlMzIoKHZvaWQgKilDRkdfRFNQSUNfVEVTVF9BRERSKSB8Ci0JCQlDRkdfRFNQSUNfVEVTVF9NQVNLKTsKKwkJb3V0X2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX0RTUElDX1RFU1RfQUREUiwKKwkJCWluX2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX0RTUElDX1RFU1RfQUREUikgfAorCQkJQ09ORklHX1NZU19EU1BJQ19URVNUX01BU0spOwogCX0KICNlbmRpZgogCkBAIC0xMjMsMTQgKzEyMywxNCBAQAogCSAqIE1ESU8gYWRkcmVzcy4gQSAybmQgcmVzZXQgYXQgdGhpcyB0aW1lIHdpbGwgbWFrZSBzdXJlLCB0aGF0IHRoZQogCSAqIGNvcnJlY3QgYWRkcmVzcyBpcyBsYXRjaGVkLgogCSAqLwotCWdwaW9fd3JpdGVfYml0KENGR19HUElPX1BIWTBfUlNULCAxKTsKLQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19QSFkxX1JTVCwgMSk7CisJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX1BIWTBfUlNULCAxKTsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fUEhZMV9SU1QsIDEpOwogCXVkZWxheSgxMDAwKTsKLQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19QSFkwX1JTVCwgMCk7Ci0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fUEhZMV9SU1QsIDApOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19QSFkwX1JTVCwgMCk7CisJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX1BIWTFfUlNULCAwKTsKIAl1ZGVsYXkoMTAwMCk7Ci0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fUEhZMF9SU1QsIDEpOwotCWdwaW9fd3JpdGVfYml0KENGR19HUElPX1BIWTFfUlNULCAxKTsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fUEhZMF9SU1QsIDEpOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19QSFkxX1JTVCwgMSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE5NCw3ICsxOTQsNyBAQAogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzFdKTsKIApAQCAtMzM4LDcgKzMzOCw3IEBACiAgKgltYXkgbm90IGJlIHN1ZmZpY2llbnQgZm9yIGEgZ2l2ZW4gYm9hcmQuCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpCiB2b2lkIHBjaV90YXJnZXRfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpCiB7CiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKQEAgLTM1MiwxNCArMzUyLDE0IEBACiAJICB8IE1ha2UgdGhpcyByZWdpb24gbm9uLXByZWZldGNoYWJsZS4KIAkgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAJb3V0MzJyKFBDSVgwX1BNTTBNQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgTWFzay9BdHRyaWJ1dGUgLSBkaXNhYmxlZCBiNCBzZXR0aW5nICovCi0Jb3V0MzJyKFBDSVgwX1BNTTBMQSwgQ0ZHX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCi0Jb3V0MzJyKFBDSVgwX1BNTTBQQ0lMQSwgQ0ZHX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMExBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTBQQ0lMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTBQQ0lIQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgUENJIEhpZ2ggQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0wTUEsIDB4RTAwMDAwMDEpOwkvKiA1MTJNICsgTm8gcHJlZmV0Y2hpbmcsIGFuZCBlbmFibGUgcmVnaW9uICovCiAKIAlvdXQzMnIoUENJWDBfUE1NMU1BLCAweDAwMDAwMDAwKTsJLyogUE1NMCBNYXNrL0F0dHJpYnV0ZSAtIGRpc2FibGVkIGI0IHNldHRpbmcgKi8KLQlvdXQzMnIoUENJWDBfUE1NMUxBLCBDRkdfUENJX01FTUJBU0UyKTsgLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCi0Jb3V0MzJyKFBDSVgwX1BNTTFQQ0lMQSwgQ0ZHX1BDSV9NRU1CQVNFMik7CS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTFMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIpOyAvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMVBDSUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMik7CS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTFQQ0lIQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgUENJIEhpZ2ggQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0xTUEsIDB4RTAwMDAwMDEpOwkvKiA1MTJNICsgTm8gcHJlZmV0Y2hpbmcsIGFuZCBlbmFibGUgcmVnaW9uICovCiAKQEAgLTM3NCw4ICszNzQsOCBAQAogCiAJLyogUHJvZ3JhbSB0aGUgYm9hcmQncyBzdWJzeXN0ZW0gaWQvdmVuZG9yIGlkICovCiAJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fVkVORE9SX0lELAotCQkJICAgICAgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQpOwotCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX0lELCBDRkdfUENJX1NVQlNZU19JRCk7CisJCQkgICAgICBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQpOworCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSUQpOwogCiAJLyogQ29uZmlndXJlIGNvbW1hbmQgcmVnaXN0ZXIgYXMgYnVzIG1hc3RlciAqLwogCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfQ09NTUFORCwgUENJX0NPTU1BTkRfTUFTVEVSKTsKQEAgLTM4OSwxMyArMzg5LDEzIEBACiAJcGNpX3dyaXRlX2NvbmZpZ19kd29yZCgwLCBQQ0lfQlJER09QVDIsIDB4MDAwMDAxMDEpOwogCiB9Ci0jZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpICovCisjZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKSAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogIHBjaV9tYXN0ZXJfaW5pdAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfTUFTVEVSX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUKQogdm9pZCBwY2lfbWFzdGVyX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewogCXVuc2lnbmVkIHNob3J0IHRlbXBfc2hvcnQ7CkBAIC00MTAsNyArNDEwLDcgQEAKIAkJCSAgICAgIHRlbXBfc2hvcnQgfCBQQ0lfQ09NTUFORF9NQVNURVIgfAogCQkJICAgICAgUENJX0NPTU1BTkRfTUVNT1JZKTsKIH0KLSNlbmRpZgkJCQkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9NQVNURVJfSU5JVCkgKi8KKyNlbmRpZgkJCQkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQpICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiAgaXNfcGNpX2hvc3QKQEAgLTQ2MCw4ICs0NjAsOCBAQAogCS8qCiAJICogVG9nZ2xlIHdhdGNoZG9nIG91dHB1dAogCSAqLwotCXZhbCA9IGdwaW9fcmVhZF9vdXRfYml0KENGR19HUElPX1dBVENIRE9HKSA9PSAwID8gMSA6IDA7Ci0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fV0FUQ0hET0csIHZhbCk7CisJdmFsID0gZ3Bpb19yZWFkX291dF9iaXQoQ09ORklHX1NZU19HUElPX1dBVENIRE9HKSA9PSAwID8gMSA6IDA7CisJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX1dBVENIRE9HLCB2YWwpOwogfQogCiBpbnQgZG9fZWVwcm9tX3dwKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQpAQCAtNDcyLDkgKzQ3Miw5IEBACiAJfQogCiAJaWYgKChzdHJjbXAoYXJndlsxXSwgIm9uIikgPT0gMCkpIHsKLQkJZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fRUVQUk9NX0VYVF9XUCwgMSk7CisJCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19FRVBST01fRVhUX1dQLCAxKTsKIAl9IGVsc2UgaWYgKChzdHJjbXAoYXJndlsxXSwgIm9mZiIpID09IDApKSB7Ci0JCWdwaW9fd3JpdGVfYml0KENGR19HUElPX0VFUFJPTV9FWFRfV1AsIDApOworCQlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fRUVQUk9NX0VYVF9XUCwgMCk7CiAJfSBlbHNlIHsKIAkJcHJpbnRmKCJVc2FnZTpcbiVzXG4iLCBjbWR0cC0+dXNhZ2UpOwogCQlyZXR1cm4gMTsKQEAgLTUyOCwyMyArNTI4LDIzIEBACiAJLyoKIAkgKiBSZXNldCBMaW1lIGNvbnRyb2xsZXIKIAkgKi8KLQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19MSU1FX1MsIDEpOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19MSU1FX1MsIDEpOwogCXVkZWxheSg1MDApOwotCWdwaW9fd3JpdGVfYml0KENGR19HUElPX0xJTUVfUlNULCAxKTsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fTElNRV9SU1QsIDEpOwogCiAJLyogTGltZSBtZW1vcnkgY2xvY2sgYWRqdXN0ZWQgdG8gMTAwTUh6ICovCi0Jb3V0X2JlMzIoKHZvaWQgKilDRkdfTElNRV9TRFJBTV9DTE9DSywgQ0ZHX0xJTUVfQ0xPQ0tfMTAwTUhaKTsKKwlvdXRfYmUzMigodm9pZCAqKUNPTkZJR19TWVNfTElNRV9TRFJBTV9DTE9DSywgQ09ORklHX1NZU19MSU1FX0NMT0NLXzEwME1IWik7CiAJLyogV2FpdCB1bnRpbGwgdGltZSBleHBpcmVkLiBCZWNhdXNlIG9mIHJlcXVpcmVtZW50cyBpbiBsaW1lIG1hbnVhbCAqLwogCXVkZWxheSgzMDApOwogCS8qIFdyaXRlIGxpbWUgY29udHJvbGxlciBtZW1vcnkgcGFyYW1ldGVycyAqLwotCW91dF9iZTMyKCh2b2lkICopQ0ZHX0xJTUVfTU1SLCBDRkdfTElNRV9NTVJfVkFMVUUpOworCW91dF9iZTMyKCh2b2lkICopQ09ORklHX1NZU19MSU1FX01NUiwgQ09ORklHX1NZU19MSU1FX01NUl9WQUxVRSk7CiAKIAltYjg2Mnh4LndpblNpemVYID0gNjQwOwogCW1iODYyeHgud2luU2l6ZVkgPSA0ODA7CiAJbWI4NjJ4eC5nZGZCeXRlc1BQID0gMjsKIAltYjg2Mnh4LmdkZkluZGV4ID0gR0RGXzE1QklUXzU1NVJHQjsKIAotCXJldHVybiBDRkdfTElNRV9CQVNFXzA7CisJcmV0dXJuIENPTkZJR19TWVNfTElNRV9CQVNFXzA7CiB9CiAKICNkZWZpbmUgREVGQVVMVF9CUklHSFRORVNTIDB4NjQKQEAgLTU1MywxMiArNTUzLDEyIEBACiB7CiAJaWYgKGJyaWdodG5lc3MgPiAwKSB7CiAJCS8qIHB3bSBkdXR5LCBsYW1wIG9uICovCi0JCW91dF9iZTMyKCh2b2lkICopKENGR19GUEdBX0JBU0VfMCArIDB4MDAwMDAwMjQpLCBicmlnaHRuZXNzKTsKLQkJb3V0X2JlMzIoKHZvaWQgKikoQ0ZHX0ZQR0FfQkFTRV8wICsgMHgwMDAwMDAyMCksIDB4NzAxKTsKKwkJb3V0X2JlMzIoKHZvaWQgKikoQ09ORklHX1NZU19GUEdBX0JBU0VfMCArIDB4MDAwMDAwMjQpLCBicmlnaHRuZXNzKTsKKwkJb3V0X2JlMzIoKHZvaWQgKikoQ09ORklHX1NZU19GUEdBX0JBU0VfMCArIDB4MDAwMDAwMjApLCAweDcwMSk7CiAJfSBlbHNlIHsKIAkJLyogbGFtcCBvZmYgKi8KLQkJb3V0X2JlMzIoKHZvaWQgKikoQ0ZHX0ZQR0FfQkFTRV8wICsgMHgwMDAwMDAyNCksIDB4MDApOwotCQlvdXRfYmUzMigodm9pZCAqKShDRkdfRlBHQV9CQVNFXzAgKyAweDAwMDAwMDIwKSwgMHgwMCk7CisJCW91dF9iZTMyKCh2b2lkICopKENPTkZJR19TWVNfRlBHQV9CQVNFXzAgKyAweDAwMDAwMDI0KSwgMHgwMCk7CisJCW91dF9iZTMyKCh2b2lkICopKENPTkZJR19TWVNfRlBHQV9CQVNFXzAgKyAweDAwMDAwMDIwKSwgMHgwMCk7CiAJfQogfQogCkBAIC01OTUsNSArNTk1LDUgQEAKIAogdm9pZCBib2FyZF9yZXNldCh2b2lkKQogewotCWdwaW9fd3JpdGVfYml0KENGR19HUElPX0JPQVJEX1JFU0VULCAxKTsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fQk9BUkRfUkVTRVQsIDEpOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbHdtb241L3NkcmFtLmMgYi9ib2FyZC9sd21vbjUvc2RyYW0uYwppbmRleCAxODllODI0Li43Mjk2OGQ3IDEwMDY0NAotLS0gYS9ib2FyZC9sd21vbjUvc2RyYW0uYworKysgYi9ib2FyZC9sd21vbjUvc2RyYW0uYwpAQCAtNDUsMTAgKzQ1LDEwIEBACiAgKiBtZW1vcnkuCiAgKgogICogSWYgYXQgc29tZSB0aW1lIHRoaXMgcmVzdHJpY3Rpb24gZG9lc24ndCBhcHBseSBhbnltb3JlLCBqdXN0IGRlZmluZQotICogQ0ZHX0VOQUJMRV9TRFJBTV9DQUNIRSBpbiB0aGUgYm9hcmQgY29uZmlnIGZpbGUgYW5kIHRoaXMgY29kZSBzaG91bGQgc2V0dXAKKyAqIENPTkZJR19TWVNfRU5BQkxFX1NEUkFNX0NBQ0hFIGluIHRoZSBib2FyZCBjb25maWcgZmlsZSBhbmQgdGhpcyBjb2RlIHNob3VsZCBzZXR1cAogICogZXZlcnl0aGluZyBjb3JyZWN0bHkuCiAgKi8KLSNpZmRlZiBDRkdfRU5BQkxFX1NEUkFNX0NBQ0hFCisjaWZkZWYgQ09ORklHX1NZU19FTkFCTEVfU0RSQU1fQ0FDSEUKICNkZWZpbmUgTVlfVExCX1dPUkQyX0lfRU5BQkxFCTAJCQkvKiBlbmFibGUgY2FjaGluZyBvbiBTRFJBTSAqLwogI2Vsc2UKICNkZWZpbmUgTVlfVExCX1dPUkQyX0lfRU5BQkxFCVRMQl9XT1JEMl9JX0VOQUJMRQkvKiBkaXNhYmxlIGNhY2hpbmcgb24gU0RSQU0gKi8KQEAgLTExNiw3ICsxMTYsNyBAQAogCSAqIEJlY2F1c2Ugb2YgNDQwRVB4IGVycmF0YSBDSElQIDExLCB3ZSBkb24ndCB0b3VjaCB0aGUgbGFzdCAyNTYKIAkgKiBieXRlcyBvZiBTRFJBTS4KIAkgKi8KLQlieXRlc19yZW1haW5pbmcgPSBudW1fYnl0ZXMgLSBDRkdfTUVNX1RPUF9ISURFOworCWJ5dGVzX3JlbWFpbmluZyA9IG51bV9ieXRlcyAtIENPTkZJR19TWVNfTUVNX1RPUF9ISURFOwogCiAJLyoKIAkgKiBXZSBoYXZlIHRvIHdyaXRlIHRoZSBFQ0MgYnl0ZXMgYnkgemVyb2luZyBhbmQgZmx1c2hpbmcgaW4gc21hbGxlcgpAQCAtMjUyLDI5ICsyNTIsMjkgQEAKIAkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAkgKiBQZXJmb3JtIGRhdGEgZXllIHNlYXJjaCBpZiByZXF1ZXN0ZWQuCiAJICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0JcHJvZ3JhbV90bGIoMCwgQ0ZHX1NEUkFNX0JBU0UsIENGR19NQllURVNfU0RSQU0gPDwgMjAsCisJcHJvZ3JhbV90bGIoMCwgQ09ORklHX1NZU19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX01CWVRFU19TRFJBTSA8PCAyMCwKIAkJICAgIFRMQl9XT1JEMl9JX0VOQUJMRSk7CiAJZGVuYWxpX2NvcmVfc2VhcmNoX2RhdGFfZXllKCk7Ci0JcmVtb3ZlX3RsYihDRkdfU0RSQU1fQkFTRSwgQ0ZHX01CWVRFU19TRFJBTSA8PCAyMCk7CisJcmVtb3ZlX3RsYihDT05GSUdfU1lTX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTUJZVEVTX1NEUkFNIDw8IDIwKTsKICNlbmRpZgogCiAJLyoKIAkgKiBQcm9ncmFtIHRsYiBlbnRyaWVzIGZvciB0aGlzIHNpemUgKGR5bmFtaWMpCiAJICovCi0JcHJvZ3JhbV90bGIoMCwgQ0ZHX1NEUkFNX0JBU0UsIENGR19NQllURVNfU0RSQU0gPDwgMjAsCisJcHJvZ3JhbV90bGIoMCwgQ09ORklHX1NZU19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX01CWVRFU19TRFJBTSA8PCAyMCwKIAkJICAgIE1ZX1RMQl9XT1JEMl9JX0VOQUJMRSk7CiAKIAkvKgogCSAqIFNldHVwIDJuZCBUTEIgd2l0aCBzYW1lIHBoeXNpY2FsIGFkZHJlc3MgYnV0IGRpZmZlcmVudCB2aXJ0dWFsIGFkZHJlc3MKIAkgKiB3aXRoIGNhY2hlIGVuYWJsZWQuIFRoaXMgaXMgZG9uZSBmb3IgZmFzdCBFQ0MgZ2VuZXJhdGlvbi4KIAkgKi8KLQlwcm9ncmFtX3RsYigwLCBDRkdfRERSX0NBQ0hFRF9BRERSLCBDRkdfTUJZVEVTX1NEUkFNIDw8IDIwLCAwKTsKKwlwcm9ncmFtX3RsYigwLCBDT05GSUdfU1lTX0REUl9DQUNIRURfQUREUiwgQ09ORklHX1NZU19NQllURVNfU0RSQU0gPDwgMjAsIDApOwogCiAjaWZkZWYgQ09ORklHX0REUl9FQ0MKIAkvKgogCSAqIElmIEVDQyBpcyBlbmFibGVkLCBpbml0aWFsaXplIHRoZSBwYXJpdHkgYml0cy4KIAkgKi8KLQlwcm9ncmFtX2VjYyhDRkdfRERSX0NBQ0hFRF9BRERSLCBDRkdfTUJZVEVTX1NEUkFNIDw8IDIwLCAwKTsKKwlwcm9ncmFtX2VjYyhDT05GSUdfU1lTX0REUl9DQUNIRURfQUREUiwgQ09ORklHX1NZU19NQllURVNfU0RSQU0gPDwgMjAsIDApOwogI2VuZGlmCiAKIAkvKgpAQCAtMjg0LDUgKzI4NCw1IEBACiAJICovCiAJc2V0X21jc3IoZ2V0X21jc3IoKSk7CiAKLQlyZXR1cm4gKENGR19NQllURVNfU0RSQU0gPDwgMjApOworCXJldHVybiAoQ09ORklHX1NZU19NQllURVNfU0RSQU0gPDwgMjApOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbHdtb241L3UtYm9vdC5sZHMgYi9ib2FyZC9sd21vbjUvdS1ib290LmxkcwppbmRleCBiMjBmYjFjLi4zY2ZlYzgzIDEwMDY0NAotLS0gYS9ib2FyZC9sd21vbjUvdS1ib290LmxkcworKysgYi9ib2FyZC9sd21vbjUvdS1ib290LmxkcwpAQCAtMTM3LDcgKzEzNyw3IEBACiAgICAqKENPTU1PTikKICAgfQogCi0gIHBwY2Vudl9hc3NlcnQgPSBBU1NFUlQoLiA8IDB4RkZGRjgwMDAsICIuYnNzIHNlY3Rpb24gdG9vIGJpZywgb3ZlcmxhcHMgLnBwY2VudiBzZWN0aW9uLiBQbGVhc2UgdXBkYXRlIHlvdXIgY29uZmd1cmF0aW9uOiBDRkdfTU9OSVRPUl9CQVNFLCBDRkdfTU9OSVRPUl9MRU4gYW5kIFRFWFRfQkFTRSBtYXkgbmVlZCB0byBiZSBtb2RpZmllZC4iKTsKKyAgcHBjZW52X2Fzc2VydCA9IEFTU0VSVCguIDwgMHhGRkZGODAwMCwgIi5ic3Mgc2VjdGlvbiB0b28gYmlnLCBvdmVybGFwcyAucHBjZW52IHNlY3Rpb24uIFBsZWFzZSB1cGRhdGUgeW91ciBjb25mZ3VyYXRpb246IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCBDT05GSUdfU1lTX01PTklUT1JfTEVOIGFuZCBURVhUX0JBU0UgbWF5IG5lZWQgdG8gYmUgbW9kaWZpZWQuIik7CiAKICAgX2VuZCA9IC4gOwogICBQUk9WSURFIChlbmQgPSAuKTsKZGlmZiAtLWdpdCBhL2JvYXJkL201MDFzay9lZXByb20uYyBiL2JvYXJkL201MDFzay9lZXByb20uYwppbmRleCBkODYzOTJmLi5kMWE0NmYzIDEwMDY0NAotLS0gYS9ib2FyZC9tNTAxc2svZWVwcm9tLmMKKysrIGIvYm9hcmQvbTUwMXNrL2VlcHJvbS5jCkBAIC0yMywxMyArMjMsMTMgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPGkyYy5oPgotI2lmZGVmIENGR19FRVBST01fQVQyNEMxNgorI2lmZGVmIENPTkZJR19TWVNfRUVQUk9NX0FUMjRDMTYKICN1bmRlZiBERUJVRwogCiB2b2lkIGVlcHJvbV9pbml0KHZvaWQpCiB7CiAjaWYgZGVmaW5lZChDT05GSUdfSEFSRF9JMkMpIHx8IGRlZmluZWQoQ09ORklHX1NPRlRfSTJDKQotCWkyY19pbml0KENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0KENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAjZW5kaWYKIH0KIApAQCAtNTMsMTAgKzUzLDEwIEBACiB9CiAKIC8qCi0gKiBmb3IgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gPT0gMiAoMTYtYml0IEVFUFJPTSBhZGRyZXNzKSBvZmZzZXQgaXMKKyAqIGZvciBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gPT0gMiAoMTYtYml0IEVFUFJPTSBhZGRyZXNzKSBvZmZzZXQgaXMKICAqICAgMHgwMDBueHh4eCBmb3IgRUVQUk9NIGFkZHJlc3Mgc2VsZWN0b3JzIGF0IG4sIG9mZnNldCB4eHh4IGluIEVFUFJPTS4KICAqCi0gKiBmb3IgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gPT0gMSAoOC1iaXQgRUVQUk9NIHBhZ2UgYWRkcmVzcykgb2Zmc2V0IGlzCisgKiBmb3IgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOID09IDEgKDgtYml0IEVFUFJPTSBwYWdlIGFkZHJlc3MpIG9mZnNldCBpcwogICogICAweDAwMDAwbnh4IGZvciBFRVBST00gYWRkcmVzcyBzZWxlY3RvcnMgYW5kIHBhZ2UgbnVtYmVyIGF0IG4uCiAgKi8KIGludCBlZXByb21fd3JpdGUodW5zaWduZWQgZGV2X2FkZHIsIHVuc2lnbmVkIG9mZnNldCwgdWNoYXIgKmJ1ZmZlciwKQEAgLTc2LDggKzc2LDggQEAKIAkJfQogCX0KIAotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TKQotCXVkZWxheShDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgKiAxMDAwKTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMpCisJdWRlbGF5KENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgKiAxMDAwKTsKICNlbmRpZgogCiAJcmV0dXJuIDA7CkBAIC04OSwxMSArODksMTEgQEAKIAl1bnNpZ25lZCBjaGFyIGNoaXA7CiAKIAkvKiBQcm9iZSB0aGUgY2hpcCBhZGRyZXNzICovCi0jaWYgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gPT0gMSAmJiAhZGVmaW5lZChDT05GSUdfU1BJX1gpCisjaWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOID09IDEgJiYgIWRlZmluZWQoQ09ORklHX1NQSV9YKQogCWNoaXAgPSBvZmZzZXQgPj4gODsgLyogYmxvY2sgbnVtYmVyICovCiAjZWxzZQogCWNoaXAgPSBvZmZzZXQgPj4gMTY7IC8qIGJsb2NrIG51bWJlciAqLwotI2VuZGlmIC8qIENGR19JMkNfRUVQUk9NX0FERFJfTEVOLCBDT05GSUdfU1BJX1ggKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4sIENPTkZJR19TUElfWCAqLwogCiAJY2hpcCB8PSBkZXZfYWRkcjsgLyogaW5zZXJ0IGRldmljZSBhZGRyZXNzICovCiAJcmV0dXJuIChpMmNfcHJvYmUoY2hpcCkpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbWF0cml4X3Zpc2lvbi9tdmJjX3AvbXZiY19wLmMgYi9ib2FyZC9tYXRyaXhfdmlzaW9uL212YmNfcC9tdmJjX3AuYwppbmRleCBjODhjNGE2Li5hMzAwMzQyIDEwMDY0NAotLS0gYS9ib2FyZC9tYXRyaXhfdmlzaW9uL212YmNfcC9tdmJjX3AuYworKysgYi9ib2FyZC9tYXRyaXhfdmlzaW9uL212YmNfcC9tdmJjX3AuYwpAQCAtODUsOSArODUsOSBAQAogCiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzAgb25seSAqLwogCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxKTsKLQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CiAJCWRyYW1zaXplID0gdGVzdDE7CkBAIC0xOTMsMTMgKzE5MywxMyBAQAogCiB2b2lkIGZsYXNoX2FmdGVyaW5pdCh1bG9uZyBzaXplKQogewotCW91dF9iZTMyKCh1MzIqKU1QQzVYWFhfQk9PVENTX1NUQVJULCBTVEFSVF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCB8CisJb3V0X2JlMzIoKHUzMiopTVBDNVhYWF9CT09UQ1NfU1RBUlQsIFNUQVJUX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB8CiAJCXNpemUpKTsKLQlvdXRfYmUzMigodTMyKilNUEM1WFhYX0NTMF9TVEFSVCwgU1RBUlRfUkVHKENGR19CT09UQ1NfU1RBUlQgfAorCW91dF9iZTMyKCh1MzIqKU1QQzVYWFhfQ1MwX1NUQVJULCBTVEFSVF9SRUcoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQgfAogCQlzaXplKSk7Ci0Jb3V0X2JlMzIoKHUzMiopTVBDNVhYWF9CT09UQ1NfU1RPUCwgU1RPUF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCB8IHNpemUsCisJb3V0X2JlMzIoKHUzMiopTVBDNVhYWF9CT09UQ1NfU1RPUCwgU1RPUF9SRUcoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQgfCBzaXplLAogCQlzaXplKSk7Ci0Jb3V0X2JlMzIoKHUzMiopTVBDNVhYWF9DUzBfU1RPUCwgU1RPUF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCB8IHNpemUsCisJb3V0X2JlMzIoKHUzMiopTVBDNVhYWF9DUzBfU1RPUCwgU1RPUF9SRUcoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQgfCBzaXplLAogCQlzaXplKSk7CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL21hdHJpeF92aXNpb24vbXZibG03L2ZwZ2EuYyBiL2JvYXJkL21hdHJpeF92aXNpb24vbXZibG03L2ZwZ2EuYwppbmRleCBhNjBhZjAxLi43NTI3ZDE2IDEwMDY0NAotLS0gYS9ib2FyZC9tYXRyaXhfdmlzaW9uL212YmxtNy9mcGdhLmMKKysrIGIvYm9hcmQvbWF0cml4X3Zpc2lvbi9tdmJsbTcvZnBnYS5jCkBAIC03OSw3ICs3OSw3IEBACiAKIGludCBmcGdhX2NvbmZpZ19mbihpbnQgYXNzZXJ0LCBpbnQgZmx1c2gsIGludCBjb29raWUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgZ3BpbzgzeHhfdCAqZ3BpbyA9ICh2b2xhdGlsZSBncGlvODN4eF90ICopJmltLT5ncGlvWzBdOwogCXUzMiBkdm8gPSBncGlvLT5kYXQ7CiAKQEAgLTk3LDcgKzk3LDcgQEAKIAogaW50IGZwZ2FfZG9uZV9mbihpbnQgY29va2llKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGdwaW84M3h4X3QgKmdwaW8gPSAodm9sYXRpbGUgZ3BpbzgzeHhfdCAqKSZpbS0+Z3Bpb1swXTsKIAlpbnQgcmVzdWx0ID0gMDsKIApAQCAtMTE0LDcgKzExNCw3IEBACiAKIGludCBmcGdhX3N0YXR1c19mbihpbnQgY29va2llKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGdwaW84M3h4X3QgKmdwaW8gPSAodm9sYXRpbGUgZ3BpbzgzeHhfdCAqKSZpbS0+Z3Bpb1swXTsKIAlpbnQgcmVzdWx0ID0gMDsKIApAQCAtMTMwLDcgKzEzMCw3IEBACiAKIGludCBmcGdhX2Nsa19mbihpbnQgYXNzZXJ0X2NsaywgaW50IGZsdXNoLCBpbnQgY29va2llKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGdwaW84M3h4X3QgKmdwaW8gPSAodm9sYXRpbGUgZ3BpbzgzeHhfdCAqKSZpbS0+Z3Bpb1swXTsKIAl1MzIgZHZvID0gZ3Bpby0+ZGF0OwogCkBAIC0xNDgsNyArMTQ4LDcgQEAKIAogc3RhdGljIGlubGluZSBpbnQgX3dyaXRlX2ZwZ2EodTggdmFsLCBpbnQgZHVtcCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBncGlvODN4eF90ICpncGlvID0gKHZvbGF0aWxlIGdwaW84M3h4X3QgKikmaW0tPmdwaW9bMF07CiAJaW50IGk7CiAJdTMyIGR2byA9IGdwaW8tPmRhdDsKZGlmZiAtLWdpdCBhL2JvYXJkL21hdHJpeF92aXNpb24vbXZibG03L212YmxtNy5jIGIvYm9hcmQvbWF0cml4X3Zpc2lvbi9tdmJsbTcvbXZibG03LmMKaW5kZXggM2RjZmY2Ny4uNjk4NGFmOSAxMDA2NDQKLS0tIGEvYm9hcmQvbWF0cml4X3Zpc2lvbi9tdmJsbTcvbXZibG03LmMKKysrIGIvYm9hcmQvbWF0cml4X3Zpc2lvbi9tdmJsbTcvbXZibG03LmMKQEAgLTM4LDUwICszOCw1MCBAQAogCiBpbnQgZml4ZWRfc2RyYW0odm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1MzIgbXNpemUgPSAwOwogCXUzMiBkZHJfc2l6ZTsKIAl1MzIgZGRyX3NpemVfbG9nMjsKIAotCW1zaXplID0gQ0ZHX0REUl9TSVpFOworCW1zaXplID0gQ09ORklHX1NZU19ERFJfU0laRTsKIAlmb3IgKGRkcl9zaXplID0gbXNpemUgPDwgMjAsIGRkcl9zaXplX2xvZzIgPSAwOwogCSAgICAgKGRkcl9zaXplID4gMSk7CiAJICAgICBkZHJfc2l6ZSA9IGRkcl9zaXplID4+IDEsIGRkcl9zaXplX2xvZzIrKykgewogCQlpZiAoZGRyX3NpemUgJiAxKQogCQkJcmV0dXJuIC0xOwogCX0KLQlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ0ZHX0REUl9TRFJBTV9CQVNFICYgMHhmZmZmZjAwMDsKKwlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSAmIDB4ZmZmZmYwMDA7CiAJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmFyID0gTEFXQVJfRU4gfCAoKGRkcl9zaXplX2xvZzIgLSAxKSAmCiAJCUxBV0FSX1NJWkUpOwogCi0JaW0tPmRkci5jc2JuZHNbMF0uY3NibmRzID0gQ0ZHX0REUl9DUzBfQk5EUzsKLQlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENGR19ERFJfQ1MwX0NPTkZJRzsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMCA9IENGR19ERFJfVElNSU5HXzA7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDRkdfRERSX1RJTUlOR18xOwotCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ0ZHX0REUl9USU1JTkdfMjsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMyA9IENGR19ERFJfVElNSU5HXzM7Ci0JaW0tPmRkci5zZHJhbV9jZmcgPSBDRkdfRERSX1NEUkFNX0NGRzsKLQlpbS0+ZGRyLnNkcmFtX2NmZzIgPSBDRkdfRERSX1NEUkFNX0NGRzI7Ci0JaW0tPmRkci5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFOwotCWltLT5kZHIuc2RyYW1faW50ZXJ2YWwgPSBDRkdfRERSX0lOVEVSVkFMOwotCWltLT5kZHIuc2RyYW1fY2xrX2NudGwgPSBDRkdfRERSX0NMS19DTlRMOworCWltLT5kZHIuY3NibmRzWzBdLmNzYm5kcyA9IENPTkZJR19TWVNfRERSX0NTMF9CTkRTOworCWltLT5kZHIuY3NfY29uZmlnWzBdID0gQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRzsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMCA9IENPTkZJR19TWVNfRERSX1RJTUlOR18wOworCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzE7CisJaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMjsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMyA9IENPTkZJR19TWVNfRERSX1RJTUlOR18zOworCWltLT5kZHIuc2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHOworCWltLT5kZHIuc2RyYW1fY2ZnMiA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NGRzI7CisJaW0tPmRkci5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERTsKKwlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CisJaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENPTkZJR19TWVNfRERSX0NMS19DTlRMOwogCiAJdWRlbGF5KDMwMCk7CiAKIAlpbS0+ZGRyLnNkcmFtX2NmZyB8PSBTRFJBTV9DRkdfTUVNX0VOOwogCi0JcmV0dXJuIENGR19ERFJfU0laRTsKKwlyZXR1cm4gQ09ORklHX1NZU19ERFJfU0laRTsKIH0KIAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1MzIgbXNpemUgPSAwOwogCiAJaWYgKChpbS0+c3lzY29uZi5pbW1yYmFyICYgSU1NUkJBUl9CQVNFX0FERFIpICE9ICh1MzIpIGltKQogCQlyZXR1cm4gLTE7CiAKLQlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ0ZHX0REUl9CQVNFICYgTEFXQkFSX0JBUjsKKwlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ09ORklHX1NZU19ERFJfQkFTRSAmIExBV0JBUl9CQVI7CiAJbXNpemUgPSBmaXhlZF9zZHJhbSgpOwogCiAJLyogcmV0dXJuIHRvdGFsIGJ1cyBSQU0gc2l6ZShieXRlcykgKi8KQEAgLTEzMiwxNCArMTMyLDE0IEBACiAKIHZvaWQgc3BpX2NzX2FjdGl2YXRlKHN0cnVjdCBzcGlfc2xhdmUgKnNsYXZlKQogewotCXZvbGF0aWxlIGdwaW84M3h4X3QgKmlvcGQgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5ncGlvWzBdOworCXZvbGF0aWxlIGdwaW84M3h4X3QgKmlvcGQgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+Z3Bpb1swXTsKIAogCWlvcGQtPmRhdCAmPSB+TVZCTE03X01NQ19DUzsKIH0KIAogdm9pZCBzcGlfY3NfZGVhY3RpdmF0ZShzdHJ1Y3Qgc3BpX3NsYXZlICpzbGF2ZSkKIHsKLQl2b2xhdGlsZSBncGlvODN4eF90ICppb3BkID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+Z3Bpb1swXTsKKwl2b2xhdGlsZSBncGlvODN4eF90ICppb3BkID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmdwaW9bMF07CiAKIAlpb3BkLT5kYXQgfD0gfk1WQkxNN19NTUNfQ1M7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9tYXRyaXhfdmlzaW9uL212YmxtNy9wY2kuYyBiL2JvYXJkL21hdHJpeF92aXNpb24vbXZibG03L3BjaS5jCmluZGV4IGVmMzRhNmIuLjlmMzE3MTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL21hdHJpeF92aXNpb24vbXZibG03L3BjaS5jCisrKyBiL2JvYXJkL21hdHJpeF92aXNpb24vbXZibG03L3BjaS5jCkBAIC01MiwyMSArNTIsMjEgQEAKIAogc3RhdGljIHN0cnVjdCBwY2lfcmVnaW9uIHBjaV9yZWdpb25zW10gPSB7CiAJewotCQlidXNfc3RhcnQ6IENGR19QQ0kxX01FTV9CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJMV9NRU1fUEhZUywKLQkJc2l6ZTogQ0ZHX1BDSTFfTUVNX1NJWkUsCisJCWJ1c19zdGFydDogQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCXNpemU6IENPTkZJR19TWVNfUENJMV9NRU1fU0laRSwKIAkJZmxhZ3M6IFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9QUkVGRVRDSAogCX0sCiAJewotCQlidXNfc3RhcnQ6IENGR19QQ0kxX01NSU9fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSTFfTU1JT19QSFlTLAotCQlzaXplOiBDRkdfUENJMV9NTUlPX1NJWkUsCisJCWJ1c19zdGFydDogQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0kxX01NSU9fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0kxX01NSU9fU0laRSwKIAkJZmxhZ3M6IFBDSV9SRUdJT05fTUVNCiAJfSwKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSTFfSU9fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSTFfSU9fUEhZUywKLQkJc2l6ZTogQ0ZHX1BDSTFfSU9fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsCisJCXNpemU6IENPTkZJR19TWVNfUENJMV9JT19TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9JTwogCX0KIH07CkBAIC04NSw3ICs4NSw3IEBACiAJc3RydWN0IHBjaV9yZWdpb24gKnJlZ1tdID0geyBwY2lfcmVnaW9ucyB9OwogCiAJbG9hZF9mcGdhID0gMTsKLQlpbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAljbGsgPSAoY2xrODN4eF90ICopICZpbW1yLT5jbGs7CiAJcGNpX2N0cmwgPSBpbW1yLT5wY2lfY3RybDsKIAlwY2lfbGF3ID0gaW1tci0+c3lzY29uZi5wY2lsYXc7CkBAIC0xMjEsMTAgKzEyMSwxMCBAQAogCWZvciAoaSA9IDA7IGkgPCAxMDAwOyArK2kpCiAJCXVkZWxheSgxMDAwKTsKIAotCXBjaV9sYXdbMF0uYmFyID0gQ0ZHX1BDSTFfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMF0uYmFyID0gQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzBdLmFyID0gTEJMQVdBUl9FTiB8IExCTEFXQVJfMUdCOwogCi0JcGNpX2xhd1sxXS5iYXIgPSBDRkdfUENJMV9JT19QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzFdLmJhciA9IENPTkZJR19TWVNfUENJMV9JT19QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzFdLmFyID0gTEJMQVdBUl9FTiB8IExCTEFXQVJfMU1COwogCiAJd2FybWJvb3QgPSBnZC0+YmQtPmJpX2Jvb3RmbGFncyAmIEJPT1RGTEFHX1dBUk07CmRpZmYgLS1naXQgYS9ib2FyZC9tYng4eHgvY3NyLmggYi9ib2FyZC9tYng4eHgvY3NyLmgKaW5kZXggODMyZTkyNC4uZDFhNThiNiAxMDA2NDQKLS0tIGEvYm9hcmQvbWJ4OHh4L2Nzci5oCisrKyBiL2JvYXJkL21ieDh4eC9jc3IuaApAQCAtNTQsNyArNTQsNyBAQAogI2RlZmluZSBTUjJfUkRZICAgICAgICAgMHgwMiAgICAvKiBGbGFzaCBwcm9ncmFtbWluZyBzdGF0dXMgYml0ICAgICAgICAgICAgICovCiAjZGVmaW5lIFNSMl9GVCAgICAgICAgICAweDAxICAgIC8qIFJlc2VydmVkIGZvciBGYWN0b3J5IHRlc3QgcHVycG9zZXMgICAgICAgKi8KIAotI2RlZmluZSBNQlhfQ1NSMSAoKigodWNoYXIgKilDRkdfQ1NSX0JBU0UpKQotI2RlZmluZSBNQlhfQ1NSMiAoKigodWNoYXIgKilDRkdfQ1NSX0JBU0UgKyAxKSkKKyNkZWZpbmUgTUJYX0NTUjEgKCooKHVjaGFyICopQ09ORklHX1NZU19DU1JfQkFTRSkpCisjZGVmaW5lIE1CWF9DU1IyICgqKCh1Y2hhciAqKUNPTkZJR19TWVNfQ1NSX0JBU0UgKyAxKSkKIAogI2VuZGlmIC8qIF9fY3NyX2ggKi8KZGlmZiAtLWdpdCBhL2JvYXJkL21ieDh4eC9mbGFzaC5jIGIvYm9hcmQvbWJ4OHh4L2ZsYXNoLmMKaW5kZXggYTQ5MWY3Yi4uMmVjNDIwZCAxMDA2NDQKLS0tIGEvYm9hcmQvbWJ4OHh4L2ZsYXNoLmMKKysrIGIvYm9hcmQvbWJ4OHh4L2ZsYXNoLmMKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlIDxtcGM4eHguaD4KICNpbmNsdWRlICJ2cGQuaCIKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtNTEsMTMgKzUxLDEzIEBACiAgICAgdWxvbmcgYWRkcjsKIAogICAgIC8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLSAgICBmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKyAgICBmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAgICAgfQogCiAgICAgdG90c2l6ZSA9IDA7CiAgICAgYWRkciA9IDB4ZmMwMDAwMDA7Ci0gICAgZm9yKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisgICAgZm9yKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKWFkZHIsICZmbGFzaF9pbmZvW2ldKTsKIAlpZiAoZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKQogCSAgYnJlYWs7CkBAIC02Niw3ICs2Niw3IEBACiAgICAgfQogCiAgICAgYWRkciA9IDB4ZmUwMDAwMDA7Ci0gICAgZm9yKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisgICAgZm9yKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCiAJc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopYWRkciwgJmZsYXNoX2luZm9baV0pOwogCWlmIChmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pCkBAIC03NSwxMSArNzUsMTEgQEAKIAlhZGRyICs9IHNpemU7CiAgICAgfQogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogICAgIC8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAgICAgZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTI3NCw3ICsyNzQsNyBAQAogICAgIGxhc3QgID0gc3RhcnQ7CiAgICAgYWRkciA9ICh2dV9sb25nKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAgICAgd2hpbGUgKChhZGRyWzBdICYgMHg4MDgwODA4MCkgIT0gMHg4MDgwODA4MCkgewotCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkgICAgcHJpbnRmICgiVGltZW91dFxuIik7CiAJICAgIHJldHVybiAxOwogCX0KQEAgLTM5Nyw3ICszOTcsNyBAQAogICAgIC8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KICAgICBzdGFydCA9IGdldF90aW1lciAoMCk7CiAgICAgd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDgwODA4MDgwKSAhPSAoZGF0YSAmIDB4ODA4MDgwODApKSB7Ci0JaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJICAgIHJldHVybiAoMSk7CiAJfQogICAgIH0KZGlmZiAtLWdpdCBhL2JvYXJkL21ieDh4eC9tYng4eHguYyBiL2JvYXJkL21ieDh4eC9tYng4eHguYwppbmRleCA0MTRkODc5Li5hZjRmNTdkIDEwMDY0NAotLS0gYS9ib2FyZC9tYng4eHgvbWJ4OHh4LmMKKysrIGIvYm9hcmQvbWJ4OHh4L21ieDh4eC5jCkBAIC0xMjEsNyArMTIxLDcgQEAKIAogdm9pZCBtYnhfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKIAl1bG9uZyBzcGVlZCwgcmVmY2xvY2ssIHBscHJjciwgc2NjcjsKIAl1bG9uZyBicjBfMzIgPSBtZW1jdGwtPm1lbWNfYnIwICYgMHg0MDA7CkBAIC0xNDcsMjEgKzE0NywyMSBAQAogCWltbXItPmltX2Nsa3JzdGsuY2Fya19zY2NyayA9IEtBUFdSX0tFWTsKIAlzY2NyID0gaW1tci0+aW1fY2xrcnN0LmNhcl9zY2NyOwogCXNjY3IgJj0gU0NDUl9NQVNLOwotCXNjY3IgfD0gQ0ZHX1NDQ1I7CisJc2NjciB8PSBDT05GSUdfU1lTX1NDQ1I7CiAJaW1tci0+aW1fY2xrcnN0LmNhcl9zY2NyID0gc2NjcjsKIAogCXNwZWVkID0gYm9hcmRfZ2V0X2NwdWZyZXEgKCk7CiAJcmVmY2xvY2sgPSBnZXRfcmVmZnJlcSAoKTsKIAotI2lmICgoQ0ZHX1BMUFJDUiAmIFBMUFJDUl9NRl9NU0spICE9IDApCi0JcGxwcmNyID0gQ0ZHX1BMUFJDUjsKKyNpZiAoKENPTkZJR19TWVNfUExQUkNSICYgUExQUkNSX01GX01TSykgIT0gMCkKKwlwbHByY3IgPSBDT05GSUdfU1lTX1BMUFJDUjsKICNlbHNlCiAJcGxwcmNyID0gaW1tci0+aW1fY2xrcnN0LmNhcl9wbHByY3I7CiAJcGxwcmNyICY9IFBMUFJDUl9NRl9NU0s7CS8qIGlzb2xhdGUgTUYgZmllbGQgKi8KLQlwbHByY3IgfD0gQ0ZHX1BMUFJDUjsJCS8qIHJlc2V0IGNvbnRyb2wgYml0cyAgICovCisJcGxwcmNyIHw9IENPTkZJR19TWVNfUExQUkNSOwkJLyogcmVzZXQgY29udHJvbCBiaXRzICAgKi8KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1VTRV9PU0NDTEsJCQkvKiBTZWUgZG9jL1JFQURNRS5NQlggISAqLworI2lmZGVmIENPTkZJR19TWVNfVVNFX09TQ0NMSwkJCS8qIFNlZSBkb2MvUkVBRE1FLk1CWCAhICovCiAJcGxwcmNyIHw9ICgoc3BlZWQgKyByZWZjbG9jayAvIDIpIC8gcmVmY2xvY2sgLSAxKSA8PCAyMDsKICNlbmRpZgogCkBAIC0xODEsMjQgKzE4MSwyNCBAQAogCWNhc2UgNDA6CiAJCW1lbWN0bC0+bWVtY19icjAgPSAweEZFMDAwMDAwIHwgYnIwXzMyIHwgMTsKIAkJbWVtY3RsLT5tZW1jX29yMCA9IDB4RkY4MDA5MzA7Ci0JCW1lbWN0bC0+bWVtY19vcjQgPSBDRkdfTlZSQU1fT1IgfCAweDkyMDsKLQkJbWVtY3RsLT5tZW1jX2JyNCA9IENGR19OVlJBTV9CQVNFIHwgMHg0MDE7CisJCW1lbWN0bC0+bWVtY19vcjQgPSBDT05GSUdfU1lTX05WUkFNX09SIHwgMHg5MjA7CisJCW1lbWN0bC0+bWVtY19icjQgPSBDT05GSUdfU1lTX05WUkFNX0JBU0UgfCAweDQwMTsKIAkJYnJlYWs7CiAJY2FzZSA1MDoKIAkJbWVtY3RsLT5tZW1jX2JyMCA9IDB4RkUwMDAwMDAgfCBicjBfMzIgfCAxOwogCQltZW1jdGwtPm1lbWNfb3IwID0gMHhGRjgwMDk0MDsKLQkJbWVtY3RsLT5tZW1jX29yNCA9IENGR19OVlJBTV9PUiB8IDB4OTMwOwotCQltZW1jdGwtPm1lbWNfYnI0ID0gQ0ZHX05WUkFNX0JBU0UgfCAweDQwMTsKKwkJbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfTlZSQU1fT1IgfCAweDkzMDsKKwkJbWVtY3RsLT5tZW1jX2JyNCA9IENPTkZJR19TWVNfTlZSQU1fQkFTRSB8IDB4NDAxOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQloYW5nICgpOwogCQlicmVhazsKIAl9CiAjaWZkZWYgQ09ORklHX1VTRV9QQ0kKLQltZW1jdGwtPm1lbWNfb3I1ID0gQ0ZHX1BDSU1FTV9PUjsKLQltZW1jdGwtPm1lbWNfYnI1ID0gQ0ZHX1BDSU1FTV9CQVNFIHwgMHgwMDE7Ci0JbWVtY3RsLT5tZW1jX29yNiA9IENGR19QQ0lCUklER0VfT1I7Ci0JbWVtY3RsLT5tZW1jX2JyNiA9IENGR19QQ0lCUklER0VfQkFTRSB8IDB4MDAxOworCW1lbWN0bC0+bWVtY19vcjUgPSBDT05GSUdfU1lTX1BDSU1FTV9PUjsKKwltZW1jdGwtPm1lbWNfYnI1ID0gQ09ORklHX1NZU19QQ0lNRU1fQkFTRSB8IDB4MDAxOworCW1lbWN0bC0+bWVtY19vcjYgPSBDT05GSUdfU1lTX1BDSUJSSURHRV9PUjsKKwltZW1jdGwtPm1lbWNfYnI2ID0gQ09ORklHX1NZU19QQ0lCUklER0VfQkFTRSB8IDB4MDAxOwogI2VuZGlmCiAJLyoKIAkgKiBGSVhNRTogSSBkbyBub3QgdW5kZXJzdGFuZCB3aHkgSSBoYXZlIHRvIGNhbGwgdGhpcyB0bwpAQCAtMzA2LDcgKzMwNiw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHJhbV9zeiA9IDA7CiAJdW5zaWduZWQgbG9uZyBkaW1tX3N6ID0gMDsKQEAgLTM1NCwyNCArMzU0LDI0IEBACiAJCWRpbW1fYmFuayA9IGRpbW1fc3ogLyAyOwogCQlpZiAoIWRpbW1fc3opIHsKIAkJCW1lbWN0bC0+bWVtY19vcjEgPSB+KHJhbV9zeiAtIDEpIHwgMHg0MDA7Ci0JCQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX1NEUkFNX0JBU0UgfCAweDgxOworCQkJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IDB4ODE7CiAJCQltZW1jdGwtPm1lbWNfYnIyID0gMDsKIAkJCW1lbWN0bC0+bWVtY19icjMgPSAwOwogCQl9IGVsc2UgaWYgKHJhbV9zeiA+IGRpbW1fYmFuaykgewogCQkJbWVtY3RsLT5tZW1jX29yMSA9IH4ocmFtX3N6IC0gMSkgfCAweDQwMDsKLQkJCW1lbWN0bC0+bWVtY19icjEgPSBDRkdfU0RSQU1fQkFTRSB8IDB4ODE7CisJCQltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgMHg4MTsKIAkJCW1lbWN0bC0+bWVtY19vcjIgPSB+KGRpbW1fYmFuayAtIDEpIHwgMHg0MDA7Ci0JCQltZW1jdGwtPm1lbWNfYnIyID0gKENGR19TRFJBTV9CQVNFICsgcmFtX3N6KSB8IDB4ODE7CisJCQltZW1jdGwtPm1lbWNfYnIyID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIHJhbV9zeikgfCAweDgxOwogCQkJbWVtY3RsLT5tZW1jX29yMyA9IH4oZGltbV9iYW5rIC0gMSkgfCAweDQwMDsKLQkJCW1lbWN0bC0+bWVtY19icjMgPSAoQ0ZHX1NEUkFNX0JBU0UgKyByYW1fc3ogKyBkaW1tX2JhbmspIFwKKwkJCW1lbWN0bC0+bWVtY19icjMgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgcmFtX3N6ICsgZGltbV9iYW5rKSBcCiAJCQkJCQkJCSAgICAgfCAweDgxOwogCQl9IGVsc2UgewogCQkJbWVtY3RsLT5tZW1jX29yMiA9IH4oZGltbV9iYW5rIC0gMSkgfCAweDQwMDsKLQkJCW1lbWN0bC0+bWVtY19icjIgPSBDRkdfU0RSQU1fQkFTRSB8IDB4ODE7CisJCQltZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgMHg4MTsKIAkJCW1lbWN0bC0+bWVtY19vcjMgPSB+KGRpbW1fYmFuayAtIDEpIHwgMHg0MDA7Ci0JCQltZW1jdGwtPm1lbWNfYnIzID0gKENGR19TRFJBTV9CQVNFICsgZGltbV9iYW5rKSB8IDB4ODE7CisJCQltZW1jdGwtPm1lbWNfYnIzID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRpbW1fYmFuaykgfCAweDgxOwogCQkJbWVtY3RsLT5tZW1jX29yMSA9IH4ocmFtX3N6IC0gMSkgfCAweDQwMDsKLQkJCW1lbWN0bC0+bWVtY19icjEgPSAoQ0ZHX1NEUkFNX0JBU0UgKyBkaW1tX3N6KSB8IDB4ODE7CisJCQltZW1jdGwtPm1lbWNfYnIxID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRpbW1fc3opIHwgMHg4MTsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvbWJ4OHh4L3BjbWNpYS5jIGIvYm9hcmQvbWJ4OHh4L3BjbWNpYS5jCmluZGV4IGEwMmM4NDguLjY5MzY4ZDggMTAwNjQ0Ci0tLSBhL2JvYXJkL21ieDh4eC9wY21jaWEuYworKysgYi9ib2FyZC9tYng4eHgvcGNtY2lhLmMKQEAgLTg4LDEwICs4OCwxMCBAQAogCiAJdWRlbGF5ICgxMDAwMCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOwotCXN5c3AgPSAoc3lzY29uZjh4eF90ICopICgmKCgoaW1tYXBfdCAqKSBDRkdfSU1NUiktPmltX3NpdV9jb25mKSk7Ci0JcGNtcCA9IChwY21jb25mOHh4X3QgKikgKCYoKChpbW1hcF90ICopIENGR19JTU1SKS0+aW1fcGNtY2lhKSk7Ci0JY3AgPSAoY3BtOHh4X3QgKikgKCYoKChpbW1hcF90ICopIENGR19JTU1SKS0+aW1fY3BtKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CisJc3lzcCA9IChzeXNjb25mOHh4X3QgKikgKCYoKChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUiktPmltX3NpdV9jb25mKSk7CisJcGNtcCA9IChwY21jb25mOHh4X3QgKikgKCYoKChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOworCWNwID0gKGNwbTh4eF90ICopICgmKCgoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0pKTsKIAogCS8qIGNsZWFyIGludGVycnVwdCBzdGF0ZSwgYW5kIGRpc2FibGUgaW50ZXJydXB0cyAqLwogCXBjbXAtPnBjbWNfcHNjciA9IFBDTUNJQV9NQVNLIChfc2xvdF8pOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbWJ4OHh4L3ZwZC5jIGIvYm9hcmQvbWJ4OHh4L3ZwZC5jCmluZGV4IDZmODgzNTIuLjNiYzI1MWQgMTAwNjQ0Ci0tLSBhL2JvYXJkL21ieDh4eC92cGQuYworKysgYi9ib2FyZC9tYng4eHgvdnBkLmMKQEAgLTQ3LDcgKzQ3LDcgQEAKICNkZWZpbmUgSUlDX0JEX0ZSRUUgICAgKEJEX0lJQ19TVEFSVCArIDMqc2l6ZW9mKGNiZF90KSkKIAogLyogRklYTUUgLS0gcmVwbGFjZSAweDIwMDAgd2l0aCBvZmZzZXRvZiAqLwotI2RlZmluZSBWUERfUCAoKHZwZF90ICopKENGR19JTU1SICsgMHgyMDAwICsgQ0ZHX0RQUkFNVlBEKSkKKyNkZWZpbmUgVlBEX1AgKCh2cGRfdCAqKShDT05GSUdfU1lTX0lNTVIgKyAweDIwMDAgKyBDT05GSUdfU1lTX0RQUkFNVlBEKSkKIAogLyogdHJhbnNtaXQvcmVjZWl2ZSBidWZmZXJzICovCiAjZGVmaW5lIElJQ19SWF9MRU5HVEggMTI4CkBAIC02OSw3ICs2OSw3IEBACiAKIHZvaWQgdnBkX2luaXQodm9pZCkKIHsKLSAgICB2b2xhdGlsZSBpbW1hcF90ICAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIGltbWFwX3QgICppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgIHZvbGF0aWxlIGNwbTh4eF90ICpjcCA9ICYoaW0tPmltX2NwbSk7CiAgICAgdm9sYXRpbGUgaTJjOHh4X3QgKmkyYyA9IChpMmM4eHhfdCAqKSYoaW0tPmltX2kyYyk7CiAgICAgdm9sYXRpbGUgaWljX3QgKmlpcDsKQEAgLTEyMCw3ICsxMjAsNyBAQAogICovCiBpbnQgdnBkX3JlYWQodWludCBpaWNfZGV2aWNlLCB1Y2hhciAqYnVmLCBpbnQgY291bnQsIGludCBvZmZzZXQpCiB7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAgKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICB2b2xhdGlsZSBpbW1hcF90ICAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICB2b2xhdGlsZSBjcG04eHhfdCAqY3AgPSAmKGltLT5pbV9jcG0pOwogICAgIHZvbGF0aWxlIGkyYzh4eF90ICppMmMgPSAoaTJjOHh4X3QgKikmKGltLT5pbV9pMmMpOwogICAgIHZvbGF0aWxlIGlpY190ICppaXA7CmRpZmYgLS1naXQgYS9ib2FyZC9tY2MyMDAvYXV0b191cGRhdGUuYyBiL2JvYXJkL21jYzIwMC9hdXRvX3VwZGF0ZS5jCmluZGV4IDJlZDY2ZGQuLjQ5MjEzZDAgMTAwNjQ0Ci0tLSBhL2JvYXJkL21jYzIwMC9hdXRvX3VwZGF0ZS5jCisrKyBiL2JvYXJkL21jYzIwMC9hdXRvX3VwZGF0ZS5jCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSA8dXNiLmg+CiAjaW5jbHVkZSA8cGFydC5oPgogCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogI2luY2x1ZGUgPGh1c2guaD4KICNlbmRpZgogCkBAIC00MCw4ICs0MCw4IEBACiAjZXJyb3IgIm11c3QgZGVmaW5lIENPTkZJR19VU0JfU1RPUkFHRSIKICNlbmRpZgogCi0jaWZuZGVmIENGR19IVVNIX1BBUlNFUgotI2Vycm9yICJtdXN0IGRlZmluZSBDRkdfSFVTSF9QQVJTRVIiCisjaWZuZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNlcnJvciAibXVzdCBkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUiIKICNlbmRpZgogCiAjaWYgIWRlZmluZWQoQ09ORklHX0NNRF9GQVQpCmRpZmYgLS1naXQgYS9ib2FyZC9tY2MyMDAvbWNjMjAwLmMgYi9ib2FyZC9tY2MyMDAvbWNjMjAwLmMKaW5kZXggNjViODE4NC4uMTRjZjA4ZCAxMDA2NDQKLS0tIGEvYm9hcmQvbWNjMjAwL21jYzIwMC5jCisrKyBiL2JvYXJkL21jYzIwMC9tY2MyMDAuYwpAQCAtNDcsNyArNDcsNyBAQAogZXh0ZXJuIGludCBkb19hdXRvX3VwZGF0ZSh2b2lkKTsKIHVsb25nIGZsYXNoX2dldF9zaXplICh1bG9uZyBiYXNlLCBpbnQgYmFua251bSk7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiBzdGF0aWMgdm9pZCBzZHJhbV9zdGFydCAoaW50IGhpX2FkZHIpCiB7CiAJbG9uZyBoaV9hZGRyX2JpdCA9IGhpX2FkZHIgPyAweDAxMDAwMDAwIDogMDsKQEAgLTkyLDcgKzkyLDcgQEAKIAogLyoKICAqIEFUVEVOVElPTjogQWx0aG91Z2ggcGFydGlhbGx5IHJlZmVyZW5jZWQgaW5pdGRyYW0gZG9lcyBOT1QgbWFrZSByZWFsIHVzZQotICoJICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKgkgICAgICB1c2Ugb2YgQ09ORklHX1NZU19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENPTkZJR19TWVNfU0RSQU1fQkFTRQogICoJICAgICAgaXMgc29tZXRoaW5nIGVsc2UgdGhhbiAweDAwMDAwMDAwLgogICovCiAKQEAgLTEwMSw3ICsxMDEsNyBAQAogCXVsb25nIGRyYW1zaXplID0gMDsKIAl1bG9uZyBkcmFtc2l6ZTIgPSAwOwogCXVpbnQgc3ZyLCBwdnI7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHRlc3QxLCB0ZXN0MjsKIAogCS8qIHNldHVwIFNEUkFNIGNoaXAgc2VsZWN0cyAqLwpAQCAtMTIyLDkgKzEyMiw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMCBvbmx5ICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCXNkcmFtX3N0YXJ0KDEpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKIAkJZHJhbXNpemUgPSB0ZXN0MTsKQEAgLTE1MCwxMCArMTUwLDEwIEBACiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzEgb25seSAqLwogCWlmICghZHJhbXNpemUpCiAJCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKIAlpZiAoIWRyYW1zaXplKSB7CiAJCXNkcmFtX3N0YXJ0KDEpOwotCQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJfQogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwpAQCAtMTc1LDcgKzE3NSw3IEBACiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MxQ0ZHID0gZHJhbXNpemU7IC8qIGRpc2FibGVkICovCiAJfQogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiByZXRyaWV2ZSBzaXplIG9mIG1lbW9yeSBjb25uZWN0ZWQgdG8gU0RSQU0gQ1MwICovCiAJZHJhbXNpemUgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyAmIDB4RkY7CkBAIC0xOTMsNyArMTkzLDcgQEAKIAkJZHJhbXNpemUyID0gMDsKIAl9CiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyoKIAkgKiBPbiBNUEM1MjAwQiB3ZSBuZWVkIHRvIHNldCB0aGUgc3BlY2lhbCBjb25maWd1cmF0aW9uIGRlbGF5IGluIHRoZQpAQCAtMjM3LDcgKzIzNyw3IEBACiAJLyoKIAkgKiBDaGVjayBpZiBib290IEZMQVNIIGlzbid0IG1heCBzaXplCiAJICovCi0JaWYgKGdkLT5iZC0+YmlfZmxhc2hzaXplIDwgKDAgLSBDRkdfRkxBU0hfQkFTRSkpIHsKKwlpZiAoZ2QtPmJkLT5iaV9mbGFzaHNpemUgPCAoMCAtIENPTkZJR19TWVNfRkxBU0hfQkFTRSkpIHsKIAkJLyogYWRqdXN0IG1hcHBpbmcgKi8KIAkJKih2dV9sb25nICopTVBDNVhYWF9CT09UQ1NfU1RBUlQgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVEFSVCA9CiAJCQlTVEFSVF9SRUcoZ2QtPmJkLT5iaV9mbGFzaHN0YXJ0KTsKQEAgLTI0NywzMSArMjQ3LDMxIEBACiAJCS8qCiAJCSAqIFJlLWNoZWNrIHRvIGdldCBjb3JyZWN0IGJhc2UgYWRkcmVzcwogCQkgKi8KLQkJZmxhc2hfZ2V0X3NpemUoZ2QtPmJkLT5iaV9mbGFzaHN0YXJ0LCBDRkdfTUFYX0ZMQVNIX0JBTktTIC0gMSk7CisJCWZsYXNoX2dldF9zaXplKGdkLT5iZC0+YmlfZmxhc2hzdGFydCwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgLSAxKTsKIAogCQkvKgogCQkgKiBSZS1kbyBmbGFzaCBwcm90ZWN0aW9uIHVwb24gbmV3IGFkZHJlc3NlcwogCQkgKi8KIAkJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX0NMRUFSLAogCQkJICAgICAgIGdkLT5iZC0+YmlfZmxhc2hzdGFydCwgMHhmZmZmZmZmZiwKLQkJCSAgICAgICAmZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOworCQkJICAgICAgICZmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOwogCiAJCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSwgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKLQkJCSAgICAgICAmZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOworCQkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCSAgICAgICAmZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKIAogCQkvKiBFbnZpcm9ubWVudCBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKIAkJCSAgICAgICBDT05GSUdfRU5WX0FERFIsCiAJCQkgICAgICAgQ09ORklHX0VOVl9BRERSICsgQ09ORklHX0VOVl9TRUNUX1NJWkUgLSAxLAotCQkJICAgICAgICZmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CisJCQkgICAgICAgJmZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CiAKIAkJLyogUmVkdW5kYW50IGVudmlyb25tZW50IHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAogCQkJICAgICAgIENPTkZJR19FTlZfQUREUl9SRURVTkQsCiAJCQkgICAgICAgQ09ORklHX0VOVl9BRERSX1JFRFVORCArIENPTkZJR19FTlZfU0laRV9SRURVTkQgLSAxLAotCQkJICAgICAgICZmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CisJCQkgICAgICAgJmZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CiAJfQogCiAJaWYgKGdkLT5iZC0+YmlfZmxhc2hzaXplID4gKDMyIDw8IDIwKSkgewpAQCAtMzI1LDYgKzMyNSw2IEBACiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0RPQykKIHZvaWQgZG9jX2luaXQgKHZvaWQpCiB7Ci0JZG9jX3Byb2JlIChDRkdfRE9DX0JBU0UpOworCWRvY19wcm9iZSAoQ09ORklHX1NZU19ET0NfQkFTRSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL21sMi9mbGFzaC5jIGIvYm9hcmQvbWwyL2ZsYXNoLmMKaW5kZXggYWQwZjA3NS4uYzEyNWQ0MSAxMDA2NDQKLS0tIGEvYm9hcmQvbWwyL2ZsYXNoLmMKKysrIGIvYm9hcmQvbWwyL2ZsYXNoLmMKQEAgLTIyLDcgKzIyLDcgQEAKIAogI2RlZmluZSBGTEFTSF9CQU5LX1NJWkUgKDY0KjEwMjQqMTAyNCkKIAotZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKICNkZWZpbmUgU0VDVF9TSVpFCQkoNTEyKjEwMjQpCiAKQEAgLTYxLDE2ICs2MSwxNiBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yKGk9MDtpPENGR19NQVhfRkxBU0hfQkFOS1M7aSsrKSB7CisJZm9yKGk9MDtpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTO2krKykgewogCQl1bG9uZyBmbGFzaGJhc2UgPSAwOwogCiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSAoSU5URUxfTUFOVUZBQ1QgJiBGTEFTSF9WRU5ETUFTSykgfAogCQkJCQkJCQkgKElOVEVMX0lEXzI4RjEyOEozQSAmIEZMQVNIX1RZUEVNQVNLKTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCQltZW1zZXQoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAkJaWYgKGk9PTApCi0JCQlmbGFzaGJhc2UgPSBDRkdfRkxBU0hfQkFTRTsKKwkJCWZsYXNoYmFzZSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAkJZWxzZQogCQkJcGFuaWMoImNvbmZpZ3VyZWQgdG9vIG1hbnkgZmxhc2ggYmFua3MhXG4iKTsKIAkJZm9yIChqID0gMDsgaiA8IGZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50OyBqKyspCmRpZmYgLS1naXQgYS9ib2FyZC9tbDIvc2VyaWFsLmMgYi9ib2FyZC9tbDIvc2VyaWFsLmMKaW5kZXggYzE4ODE1Yi4uZDkxMTNhYiAxMDA2NDQKLS0tIGEvYm9hcmQvbWwyL3NlcmlhbC5jCisrKyBiL2JvYXJkL21sMi9zZXJpYWwuYwpAQCAtMjUsMjYgKzI1LDI2IEBACiAjaW5jbHVkZSA8Y29tbWFuZC5oPgogI2luY2x1ZGUgPGNvbmZpZ3MvTUwyLmg+CiAKLSNpZiAoZGVmaW5lZCBDRkdfSU5JVF9DSEFOMSkgfHwgKGRlZmluZWQgQ0ZHX0lOSVRfQ0hBTjIpCisjaWYgKGRlZmluZWQgQ09ORklHX1NZU19JTklUX0NIQU4xKSB8fCAoZGVmaW5lZCBDT05GSUdfU1lTX0lOSVRfQ0hBTjIpCiAjaW5jbHVkZSA8bnMxNjU1MC5oPgogI2VuZGlmCiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0jaWYgKGRlZmluZWQgQ0ZHX0lOSVRfQ0hBTjEpIHx8IChkZWZpbmVkIENGR19JTklUX0NIQU4yKQotY29uc3QgTlMxNjU1MF90IENPTV9QT1JUU1tdID0geyAoTlMxNjU1MF90KSBDRkdfTlMxNjU1MF9DT00xLAotCShOUzE2NTUwX3QpIENGR19OUzE2NTUwX0NPTTIKKyNpZiAoZGVmaW5lZCBDT05GSUdfU1lTX0lOSVRfQ0hBTjEpIHx8IChkZWZpbmVkIENPTkZJR19TWVNfSU5JVF9DSEFOMikKK2NvbnN0IE5TMTY1NTBfdCBDT01fUE9SVFNbXSA9IHsgKE5TMTY1NTBfdCkgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEsCisJKE5TMTY1NTBfdCkgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIKIH07CiAjZW5kaWYKIAogaW50IHNlcmlhbF9pbml0ICh2b2lkKQogewotCWludCBjbG9ja19kaXZpc29yID0gQ0ZHX05TMTY1NTBfQ0xLIC8gMTYgLyBnZC0+YmF1ZHJhdGU7CisJaW50IGNsb2NrX2Rpdmlzb3IgPSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLIC8gMTYgLyBnZC0+YmF1ZHJhdGU7CiAKLSNpZmRlZiBDRkdfSU5JVF9DSEFOMQorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMQogCSh2b2lkKSBOUzE2NTUwX2luaXQgKENPTV9QT1JUU1swXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKLSNpZmRlZiBDRkdfSU5JVF9DSEFOMgorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMgogCSh2b2lkKSBOUzE2NTUwX2luaXQgKENPTV9QT1JUU1sxXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKIAlyZXR1cm4gMDsKQEAgLTU0LDI5ICs1NCwyOSBAQAogdm9pZCBzZXJpYWxfcHV0YyAoY29uc3QgY2hhciBjKQogewogCWlmIChjID09ICdcbicpCi0JCU5TMTY1NTBfcHV0YyAoQ09NX1BPUlRTW0NGR19EVUFSVF9DSEFOXSwgJ1xyJyk7CisJCU5TMTY1NTBfcHV0YyAoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0sICdccicpOwogCi0JTlMxNjU1MF9wdXRjIChDT01fUE9SVFNbQ0ZHX0RVQVJUX0NIQU5dLCBjKTsKKwlOUzE2NTUwX3B1dGMgKENPTV9QT1JUU1tDT05GSUdfU1lTX0RVQVJUX0NIQU5dLCBjKTsKIH0KIAogaW50IHNlcmlhbF9nZXRjICh2b2lkKQogewotCXJldHVybiBOUzE2NTUwX2dldGMgKENPTV9QT1JUU1tDRkdfRFVBUlRfQ0hBTl0pOworCXJldHVybiBOUzE2NTUwX2dldGMgKENPTV9QT1JUU1tDT05GSUdfU1lTX0RVQVJUX0NIQU5dKTsKIH0KIAogaW50IHNlcmlhbF90c3RjICh2b2lkKQogewotCXJldHVybiBOUzE2NTUwX3RzdGMgKENPTV9QT1JUU1tDRkdfRFVBUlRfQ0hBTl0pOworCXJldHVybiBOUzE2NTUwX3RzdGMgKENPTV9QT1JUU1tDT05GSUdfU1lTX0RVQVJUX0NIQU5dKTsKIH0KIAogdm9pZCBzZXJpYWxfc2V0YnJnICh2b2lkKQogewotCWludCBjbG9ja19kaXZpc29yID0gQ0ZHX05TMTY1NTBfQ0xLIC8gMTYgLyBnZC0+YmF1ZHJhdGU7CisJaW50IGNsb2NrX2Rpdmlzb3IgPSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLIC8gMTYgLyBnZC0+YmF1ZHJhdGU7CiAKLSNpZmRlZiBDRkdfSU5JVF9DSEFOMQorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMQogCU5TMTY1NTBfcmVpbml0IChDT01fUE9SVFNbMF0sIGNsb2NrX2Rpdmlzb3IpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0lOSVRfQ0hBTjIKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfQ0hBTjIKIAlOUzE2NTUwX3JlaW5pdCAoQ09NX1BPUlRTWzFdLCBjbG9ja19kaXZpc29yKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbW9kbmV0NTAvZmxhc2guYyBiL2JvYXJkL21vZG5ldDUwL2ZsYXNoLmMKaW5kZXggZmIxMmUwMy4uNGMzMTE0MyAxMDA2NDQKLS0tIGEvYm9hcmQvbW9kbmV0NTAvZmxhc2guYworKysgYi9ib2FyZC9tb2RuZXQ1MC9mbGFzaC5jCkBAIC03Niw3ICs3Niw3IEBACiAjZGVmaW5lIEFWQUlMX1NJWkUJCShERVZJQ0VfU0laRSpNQVhfRkxBU0hfREVWSUNFUyAtIFJFU0VSVkVEX0NFTExTKkNFTExfU0laRSkKIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIHN0YXRpYyBfX3UxNiB0b2dnbGluZ19iaXRzOwogCiAKQEAgLTEyMCw4ICsxMjAsOCBAQAogCWNhc2UgQU1EX0lEX0xWMTYwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0KIAkJCShGTEFTSF9BTTE2MExWIHwgRkxBU0hfQU0xNjBCKSAmIEZMQVNIX1RZUEVNQVNLOwotCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JCWluZm8tPnNpemUgPSBDRkdfRkxBU0hfU0laRTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJaW5mby0+c2l6ZSA9IENPTkZJR19TWVNfRkxBU0hfU0laRTsKIAkJLyogMSoxNksgQm9vdCBCbG9jawogCQkgICAyKjhLIFBhcmFtZXRlciBCbG9jawogCQkgICAxKjMySyBTbWFsbCBNYWluIEJsb2NrICovCkBAIC0xMzAsNyArMTMwLDcgQEAKIAkJaW5mby0+c3RhcnRbMl0gPSBiYXNlYWRkciArIDB4NjAwMDsKIAkJaW5mby0+c3RhcnRbM10gPSBiYXNlYWRkciArIDB4ODAwMDsKIAkJZm9yIChpID0gMTsgaSA8IGluZm8tPnNlY3Rvcl9jb3VudDsgaSsrKQotCQkJaW5mby0+c3RhcnRbMyArIGldID0gYmFzZWFkZHIgKyBpICogQ0ZHX01BSU5fU0VDVF9TSVpFOworCQkJaW5mby0+c3RhcnRbMyArIGldID0gYmFzZWFkZHIgKyBpICogQ09ORklHX1NZU19NQUlOX1NFQ1RfU0laRTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwpAQCAtMTYwLDEyICsxNjAsMTIgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCiAJLyogU3RhdGljIEZMQVNIIEJhbmsgY29uZmlndXJhdGlvbiBoZXJlIChvbmx5IG9uZSBiYW5rKSAqLwotCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplID0gZmxhc2hfZ2V0X3NpemUgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJaWYgKGZsYXNoX2luZm9bMF0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTiB8fCBzaXplID09IDApIHsKIAkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rIDAgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwKQEAgLTE3Niw4ICsxNzYsOCBAQAogCSAqIHByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkgICAgICAgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKQEAgLTM0NSw3ICszNDUsNyBAQAogCQkJCQkvKiBhcm0gc2ltcGxlLCBub24gaW50ZXJydXB0IGRlcGVuZGVudCB0aW1lciAqLwogCQkJCQlyZXNldF90aW1lcl9tYXNrZWQgKCk7CiAJCQkJCXdoaWxlIChmbGFzaF9jaGVja19lcmFzZV9hbWQgKGluZm8tPnN0YXJ0W3NlY3RdKSkgewotCQkJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJCQlwcmludGYgKCJ0aW1lb3V0IVxuIik7CiAJCQkJCQkJLyogT09QUzogcmVhY2ggdGltZW91dCwKIAkJCQkJCQkgKiB0cnkgdG8gcmVzZXQgY2hpcApAQCAtNDQ5LDcgKzQ0OSw3IEBACiAJcmVzZXRfdGltZXJfbWFza2VkICgpOwogCiAJd2hpbGUgKGZsYXNoX2NoZWNrX3dyaXRlX2FtZCAoZGVzdCkpIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcHJpbnRmICgidGltZW91dCEgQCAlMDhsWFxuIiwgZGVzdCk7CiAJCQkvKiBPT1BTOiByZWFjaCB0aW1lb3V0LAogCQkJICogICAgICAgdHJ5IHRvIHJlc2V0IGNoaXAgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL21vdGlvbnByby9tb3Rpb25wcm8uYyBiL2JvYXJkL21vdGlvbnByby9tb3Rpb25wcm8uYwppbmRleCAzYjM0MDYyLi44NDJiY2U2IDEwMDY0NAotLS0gYS9ib2FyZC9tb3Rpb25wcm8vbW90aW9ucHJvLmMKKysrIGIvYm9hcmQvbW90aW9ucHJvL21vdGlvbnByby5jCkBAIC05Niw3ICs5Niw3IEBACiAJcmV0dXJuOwogfQogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogLyoKICAqIEhlbHBlciBmdW5jdGlvbiB0byBpbml0aWFsaXplIFNEUkFNIGNvbnRyb2xsZXIuCiAgKi8KQEAgLTEyNiw3ICsxMjYsNyBAQAogCS8qIG5vcm1hbCBvcGVyYXRpb24gKi8KIAkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NUUkwgPSBTRFJBTV9DT05UUk9MIHwgaGlfYWRkcl9iaXQ7CiB9Ci0jZW5kaWYgLyogIUNGR19SQU1CT09UICovCisjZW5kaWYgLyogIUNPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAKIC8qCkBAIC0xMzUsNyArMTM1LDcgQEAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewogCXVsb25nIGRyYW1zaXplID0gMDsKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgdGVzdDEsIHRlc3QyOwogCiAJLyogQWNjb3JkaW5nIHRvIEFOMzIyMSAoTVBDNTIwMEIgU0RSQU0gSW5pdGlhbGl6YXRpb24gYW5kCkBAIC0xNTMsOSArMTUzLDkgQEAKIAkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NPTkZJRzIgPSBTRFJBTV9DT05GSUcyOwogCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCXNkcmFtX3N0YXJ0KDEpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKIAkJZHJhbXNpemUgPSB0ZXN0MTsKQEAgLTE3OCwxNCArMTc4LDE0IEBACiAJLyogbGV0IFNEUkFNIENTMSBzdGFydCByaWdodCBhZnRlciBDUzAgYW5kIGRpc2FibGUgaXQgKi8KIAkqKHZ1X2xvbmcgKikgTVBDNVhYWF9TRFJBTV9DUzFDRkcgPSBkcmFtc2l6ZTsKIAotI2Vsc2UgLyogIUNGR19SQU1CT09UICovCisjZWxzZSAvKiAhQ09ORklHX1NZU19SQU1CT09UICovCiAJLyogcmV0cmlldmUgc2l6ZSBvZiBtZW1vcnkgY29ubmVjdGVkIHRvIFNEUkFNIENTMCAqLwogCWRyYW1zaXplID0gKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzBDRkcgJiAweEZGOwogCWlmIChkcmFtc2l6ZSA+PSAweDEzKQogCQlkcmFtc2l6ZSA9ICgxIDw8IChkcmFtc2l6ZSAtIDB4MTMpKSA8PCAyMDsKIAllbHNlCiAJCWRyYW1zaXplID0gMDsKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyogcmV0dXJuIHRvdGFsIHJhbSBzaXplICovCiAJcmV0dXJuIGRyYW1zaXplOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbW91c3NlL2ZsYXNoLmMgYi9ib2FyZC9tb3Vzc2UvZmxhc2guYwppbmRleCAyYzMyYjhmLi5kNzI5ZjMzIDEwMDY0NAotLS0gYS9ib2FyZC9tb3Vzc2UvZmxhc2guYworKysgYi9ib2FyZC9tb3Vzc2UvZmxhc2guYwpAQCAtNTAsNyArNTAsNyBAQAogI2RlZmluZSBQUklWQVRFCiAjZW5kaWYKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKICNkZWZpbmUgU0xFRVBfREVMQVkgICAgMTY2CiAjZGVmaW5lIEZMQVNIX1NFQ1RPUl9TSVpFICAgKDY0KjEwMjQpCmRpZmYgLS1naXQgYS9ib2FyZC9tb3Vzc2UvbW91c3NlLmMgYi9ib2FyZC9tb3Vzc2UvbW91c3NlLmMKaW5kZXggN2I2MTI2Ni4uNmExMmI1NyAxMDA2NDQKLS0tIGEvYm9hcmQvbW91c3NlL21vdXNzZS5jCisrKyBiL2JvYXJkL21vdXNzZS9tb3Vzc2UuYwpAQCAtNTgsNyArNTgsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0JcmV0dXJuIENGR19SQU1fU0laRTsKKwlyZXR1cm4gQ09ORklHX1NZU19SQU1fU0laRTsKIH0KIAogCmRpZmYgLS1naXQgYS9ib2FyZC9tb3Vzc2UvbW91c3NlLmggYi9ib2FyZC9tb3Vzc2UvbW91c3NlLmgKaW5kZXggNTQ2ODMxNC4uMTBhMDA2MiAxMDA2NDQKLS0tIGEvYm9hcmQvbW91c3NlL21vdXNzZS5oCisrKyBiL2JvYXJkL21vdXNzZS9tb3Vzc2UuaApAQCAtMjA0LDE3ICsyMDQsMTcgQEAKICNkZWZpbmUgUFJPTUlTRV9NQkFSNSAgKFBST01JU0VfTUJBUjAgKyAweDUwMDApCiAKIC8qIEFUQS82NiBDb250cm9sbGVyIG9mZnNldHMgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIgICAgIFBST01JU0VfTUJBUjAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJICAgICAgIDIgLyogaWRlMC9pZGUxICovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFICAgICAgMiAvKiAyIGRyaXZlcyBwZXIgY29udHJvbGxlciAqLwotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUICAgIDAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUxX09GRlNFVCAgICAweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSICAgICBQUk9NSVNFX01CQVIwCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkgICAgICAgMiAvKiBpZGUwL2lkZTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFICAgICAgMiAvKiAyIGRyaXZlcyBwZXIgY29udHJvbGxlciAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVCAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VUICAgIDB4MzAwMAogLyoKICAqIERlZmluaXRpb25zIGZvciBhY2Nlc3NpbmcgSURFIGNvbnRyb2xsZXIgcmVnaXN0ZXJzCiAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVCAgICAwCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVCAgICAgMAotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQgICAgKDB4MTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQgICAgKDB4MTAwMCkKIAogLyoKICAqIFRoZSBjb25zdGFudHMgUk9NX1RFWFRfQURSUywgUk9NX1NJWkUsIFJBTV9ISUdIX0FEUlMsIGFuZCBSQU1fTE9XX0FEUlMKZGlmZiAtLWdpdCBhL2JvYXJkL21wMnVzYi9mbGFzaC5jIGIvYm9hcmQvbXAydXNiL2ZsYXNoLmMKaW5kZXggNTI3ZTc0ZS4uMjFhOGVmOSAxMDA2NDQKLS0tIGEvYm9hcmQvbXAydXNiL2ZsYXNoLmMKKysrIGIvYm9hcmQvbXAydXNiL2ZsYXNoLmMKQEAgLTMwLDEwICszMCwxMCBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPGxpbnV4L2J5dGVvcmRlci9zd2FiLmg+CiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEKICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUJMHgwMDAyMDAwMCAvKiAxMjggS0Igc2VjdG9ycyAoeDEpICovCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAjZGVmaW5lIEZMQVNIX1BPUlRfV0lEVEgJdXNob3J0CiAjZGVmaW5lIEZMQVNIX1BPUlRfV0lEVEhWCXZ1X3Nob3J0CkBAIC03Nyw3ICs3Nyw3IEBACiAJaW50IGk7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDoKIAkJCWZsYXNoX2dldF9zaXplICgoRlBXICopIFBIWVNfRkxBU0hfMSwgJmZsYXNoX2luZm9baV0pOwpAQCAtOTMsOCArOTMsOCBAQAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCWZsYXNoX3Byb3RlY3QgKCBGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCQlDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSZmbGFzaF9pbmZvWzBdICk7CiAKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKQEAgLTIyMCwxMCArMjIwLDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IChGUFcpIElOVEVMX1JFU0VUOwkJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KQEAgLTMwMyw3ICszMDMsNyBAQAogCQkJKmFkZHIgPSAoRlBXKSBJTlRFTF9DT05GSVJNOwkvKiBlcmFzZSBjb25maXJtICovCiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIElOVEVMX0ZJTklTSEVEKSAhPSAoRlBXKSBJTlRFTF9GSU5JU0hFRCkgewotCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJKmFkZHIgPSAoRlBXKSBJTlRFTF9TVVNQRU5EOwkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwogCQkJCQkqYWRkciA9IChGUFcpIElOVEVMX1JFU0VUOwkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KQEAgLTQ0OSw3ICs0NDksNyBAQAogCiAJLyogd2FpdCB3aGlsZSBwb2xsaW5nIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSBJTlRFTF9GSU5JU0hFRCkgIT0gKEZQVykgSU5URUxfRklOSVNIRUQpIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAoRlBXKSBJTlRFTF9SRVNFVDsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkJCXJldHVybiAoMSk7CiAJCX0KQEAgLTUwMCw3ICs1MDAsNyBAQAogCXJlc2V0X3RpbWVyX21hc2tlZCAoKTsKIAogCXdoaWxlICgoKmFkZHIgJiAoRlBXKSBJTlRFTF9GSU5JU0hFRCkgIT0gKEZQVykgSU5URUxfRklOSVNIRUQpIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfVU5MT0NLX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUKSB7CiAJCQlwcmludGYoIkZsYXNoIGxvY2sgYml0IG9wZXJhdGlvbiB0aW1lZCBvdXRcbiIpOwogCQkJcmMgPSAxOwogCQkJYnJlYWs7CkBAIC01MzIsNyArNTMyLDcgQEAKIAkJCQkqYWRkciA9IChGUFcpIElOVEVMX1BST1RFQ1Q7CS8qIHNldCAqLwogCQkJCXdoaWxlICgoKmFkZHIgJiAoRlBXKSBJTlRFTF9GSU5JU0hFRCkgIT0gKEZQVykgSU5URUxfRklOSVNIRUQpCiAJCQkJewotCQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9VTkxPQ0tfVE9VVCkKKwkJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUKQogCQkJCQl7CiAJCQkJCQlwcmludGYoIkZsYXNoIGxvY2sgYml0IG9wZXJhdGlvbiB0aW1lZCBvdXRcbiIpOwogCQkJCQkJcmMgPSAxOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBjODU0MGV2YWwvZmxhc2guYyBiL2JvYXJkL21wYzg1NDBldmFsL2ZsYXNoLmMKaW5kZXggOThmZDE2OC4uOWRmNWJkOSAxMDA2NDQKLS0tIGEvYm9hcmQvbXBjODU0MGV2YWwvZmxhc2guYworKysgYi9ib2FyZC9tcGM4NTQwZXZhbC9mbGFzaC5jCkBAIC0zMSwxMyArMzEsMTMgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWYgIWRlZmluZWQoQ0ZHX05PX0ZMQVNIKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTk9fRkxBU0gpCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNzQsNyArNzQsNyBAQAogCS8qIEluaXQ6IGVuYWJsZSB3cml0ZSwKIAkgKiBvciB3ZSBjYW5ub3QgZXZlbiB3cml0ZSBmbGFzaCBjb21tYW5kcwogCSAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAKIAkJLyogc2V0IHRoZSBkZWZhdWx0IHNlY3RvciBvZmZzZXQgKi8KQEAgLTgyLDcgKzgyLDcgQEAKIAogCS8qIFN0YXRpYyBGTEFTSCBCYW5rIGNvbmZpZ3VyYXRpb24gaGVyZSAtIEZJWE1FIFhYWCAqLwogCi0Jc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCWlmIChmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pIHsKIAkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rIDAgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwKQEAgLTkwLDE2ICs5MCwxNiBAQAogCX0KIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZTsKIAogI2lmICFkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMTc3LDggKzE3Nyw4IEBACiAJdWRlbGF5KDIwKTsKIAlhc20oInN5bmMiKTsKIAotI2lmbmRlZiBDRkdfRkxBU0hfQ0ZJCi0JcHJpbnRmKCJOb3QgZGVmaW5lIENGR19GTEFTSF9DRklcbiIpOworI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NGSQorCXByaW50ZigiTm90IGRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSVxuIik7CiAJcmV0dXJuICgwKTsKICNlbHNlCiAJdmFsdWUgPSBhZGRyWzBdOwpAQCAtMjM3LDcgKzIzNyw3IEBACiAJCQlicmVhazsKIAl9CiAjZW5kaWYKLSNlbmRpZgkJLyojaWZkZWYgQ0ZHX0ZMQVNIX0NGSSovCisjZW5kaWYJCS8qI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJKi8KIAogCWlmIChiaWdfZW5kaWFuPT0wKSB2YWx1ZSA9IChhZGRyWzBdICYgMHhGRjAwMDAwMCkgPj44OwogCWVsc2UgdmFsdWUgPSAoYWRkclswXSAmIDB4MDBGRjAwMDApOwpAQCAtNDUzLDcgKzQ1Myw3IEBACiAJCQkJCQkJYXNtKCJzeW5jIik7CiAJCQkJCQkJcmV0dXJuIDE7CiAJCQkJCQl9Ci0JCQkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkJCSphZGRyMTYgPSAweEZGRkY7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCQkJCQlhc20oInN5bmMiKTsKQEAgLTUwNSw3ICs1MDUsNyBAQAogCQkJCQkJCWFzbSgic3luYyIpOwogCQkJCQkJCXJldHVybiAxOwogCQkJCQkJfQotCQkJCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJCQkqYWRkciA9IDB4RkZGRkZGRkY7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCQkJCQlhc20oInN5bmMiKTsKQEAgLTY5Myw3ICs2OTMsNyBAQAogCQkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJCWZsYWcgID0gMDsKIAkJd2hpbGUgKCgoY3NyID0gKmFkZHIpICYgcmVhZHkpICE9IHJlYWR5KSB7Ci0JCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCWZsYWcgPSAxOwogCQkJCWJyZWFrOwogCQkJfQpAQCAtNzUxLDcgKzc1MSw3IEBACiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJZmxhZyAgPSAwOwogCQl3aGlsZSAoKChjc3IgPSAqYWRkcikgJiByZWFkeSkgIT0gcmVhZHkpIHsKLQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJZmxhZyA9IDE7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC04MTUsNyArODE1LDcgQEAKIAkJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCQlmbGFnICA9IDA7CiAJCXdoaWxlICgoKGNzciA9ICphZGRyKSAmIHJlYWR5KSAhPSByZWFkeSkgewotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlmbGFnID0gMTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTg4MSw3ICs4ODEsNyBAQAogCSphZGRyID0gMHg3MDcwNzA3MDsJLyogcmVhZCBzdGF0dXMgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUoKCphZGRyICYgcmVhZHkpICE9IHJlYWR5KXsKLQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dCBvbiBjbGVhcmluZyBCbG9jayBMb2NrIEJpdFxuIik7CiAJCQkqYWRkciA9IDB4RkZGRkZGRkY7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCWFzbSgic3luYyIpOwpAQCAtODkxLDQgKzg5MSw0IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNlbmRpZiAvKiAhQ0ZHX05PX0ZMQVNIICovCisjZW5kaWYgLyogIUNPTkZJR19TWVNfTk9fRkxBU0ggKi8KZGlmZiAtLWdpdCBhL2JvYXJkL21wYzg1NDBldmFsL2xhdy5jIGIvYm9hcmQvbXBjODU0MGV2YWwvbGF3LmMKaW5kZXggY2ZjZDczZS4uOTkyNmQyNSAxMDA2NDQKLS0tIGEvYm9hcmQvbXBjODU0MGV2YWwvbGF3LmMKKysrIGIvYm9hcmQvbXBjODU0MGV2YWwvbGF3LmMKQEAgLTQzLDExICs0MywxMSBAQAogCiBzdHJ1Y3QgbGF3X2VudHJ5IGxhd190YWJsZVtdID0gewogI2lmbmRlZiBDT05GSUdfU1BEX0VFUFJPTQotCVNFVF9MQVcoQ0ZHX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8xMjhNLCBMQVdfVFJHVF9JRl9ERFIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMTI4TSwgTEFXX1RSR1RfSUZfRERSKSwKICNlbmRpZgotCVNFVF9MQVcoQ0ZHX1BDSV9NRU1fUEhZUywgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJX01FTV9QSFlTLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9QQ0kpLAogI2lmbmRlZiBDT05GSUdfUkFNX0FTX0ZMQVNICi0JU0VUX0xBVyhDRkdfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzEyOE0sIExBV19UUkdUX0lGX0xCQyksCisJU0VUX0xBVyhDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8xMjhNLCBMQVdfVFJHVF9JRl9MQkMpLAogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9ib2FyZC9tcGM4NTQwZXZhbC9tcGM4NTQwZXZhbC5jIGIvYm9hcmQvbXBjODU0MGV2YWwvbXBjODU0MGV2YWwuYwppbmRleCAwMjhhNzBmLi45YjU2NGI4IDEwMDY0NAotLS0gYS9ib2FyZC9tcGM4NTQwZXZhbC9tcGM4NTQwZXZhbC5jCisrKyBiL2JvYXJkL21wYzg1NDBldmFsL21wYzg1NDBldmFsLmMKQEAgLTM2LDcgKzM2LDcgQEAKIGludCBib2FyZF9wcmVfaW5pdCAodm9pZCkKIHsKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCi0Jdm9sYXRpbGUgY2Nzcl9wY2l4X3QgKnBjaSA9ICh2b2lkICopKENGR19NUEM4NXh4X1BDSVhfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9wY2l4X3QgKnBjaSA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9QQ0lYX0FERFIpOwogCiAJcGNpLT5wZWVyICY9IDB4ZmZmZmZmZGY7IC8qIGRpc2FibGUgbWFzdGVyIGFib3J0ICovCiAjZW5kaWYKQEAgLTUzLDEwICs1MywxMCBAQAogCXByaW50ZiAoIlx0Q1BVOiAlbHUgTUh6XG4iLCBzeXNpbmZvLmZyZXFQcm9jZXNzb3IgLyAxMDAwMDAwKTsKIAlwcmludGYgKCJcdENDQjogJWx1IE1IelxuIiwgc3lzaW5mby5mcmVxU3lzdGVtQnVzIC8gMTAwMDAwMCk7CiAJcHJpbnRmICgiXHRERFI6ICVsdSBNSHpcbiIsIHN5c2luZm8uZnJlcVN5c3RlbUJ1cyAvIDIwMDAwMDApOwotCWlmKChDRkdfTEJDX0xDUlIgJiAweDBmKSA9PSAyIHx8IChDRkdfTEJDX0xDUlIgJiAweDBmKSA9PSA0IFwKLQkJfHwgKENGR19MQkNfTENSUiAmIDB4MGYpID09IDgpIHsKKwlpZigoQ09ORklHX1NZU19MQkNfTENSUiAmIDB4MGYpID09IDIgfHwgKENPTkZJR19TWVNfTEJDX0xDUlIgJiAweDBmKSA9PSA0IFwKKwkJfHwgKENPTkZJR19TWVNfTEJDX0xDUlIgJiAweDBmKSA9PSA4KSB7CiAJCXByaW50ZiAoIlx0TEJDOiAlbHUgTUh6XG4iLAotCQkJc3lzaW5mby5mcmVxU3lzdGVtQnVzIC8gMTAwMDAwMC8oQ0ZHX0xCQ19MQ1JSICYgMHgwZikpOworCQkJc3lzaW5mby5mcmVxU3lzdGVtQnVzIC8gMTAwMDAwMC8oQ09ORklHX1NZU19MQkNfTENSUiAmIDB4MGYpKTsKIAl9IGVsc2UgewogCQlwcmludGYoIlx0TEJDOiB1bmtub3duXG4iKTsKIAl9CkBAIC02OSwxMiArNjksMTIgQEAKIAlsb25nIGRyYW1fc2l6ZSA9IDA7CiAKICNpZiAhZGVmaW5lZChDT05GSUdfUkFNX0FTX0ZMQVNIKQotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCXN5c19pbmZvX3Qgc3lzaW5mbzsKIAl1aW50IHRlbXBfbGJjZGxsID0gMDsKICNlbmRpZgogI2lmICFkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpIHx8IGRlZmluZWQoQ09ORklHX0REUl9ETEwpCi0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfRERSX0RMTCkKQEAgLTk0LDQyICs5NCw0MiBAQAogCWRyYW1fc2l6ZSA9IGZpeGVkX3NkcmFtICgpOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogCXJldHVybiBkcmFtX3NpemU7CiAjZW5kaWYKIAogI2lmICFkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpIC8qIExvY2FsQnVzIGlzIG5vdCBlbXVsYXRpbmcgZmxhc2ggKi8KIAlnZXRfc3lzX2luZm8oJnN5c2luZm8pOwogCS8qIGlmIGxvY2FsYnVzIGZyZXEgaXMgbGVzcyB0aGFuIDY2TWh6LHdlIHVzZSBieXBhc3MgbW9kZSxvdGhlcndpc2UgdXNlIERMTCAqLwotCWlmKHN5c2luZm8uZnJlcVN5c3RlbUJ1cy8oQ0ZHX0xCQ19MQ1JSICYgMHgwZikgPCA2NjAwMDAwMCkgewotCQlsYmMtPmxjcnIgPSAoQ0ZHX0xCQ19MQ1JSICYgMHgwZmZmZmZmZil8IDB4ODAwMDAwMDA7CisJaWYoc3lzaW5mby5mcmVxU3lzdGVtQnVzLyhDT05GSUdfU1lTX0xCQ19MQ1JSICYgMHgwZikgPCA2NjAwMDAwMCkgeworCQlsYmMtPmxjcnIgPSAoQ09ORklHX1NZU19MQkNfTENSUiAmIDB4MGZmZmZmZmYpfCAweDgwMDAwMDAwOwogCX0gZWxzZSB7Ci0JCWxiYy0+bGNyciA9IENGR19MQkNfTENSUiAmIDB4N2ZmZmZmZmY7CisJCWxiYy0+bGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlIgJiAweDdmZmZmZmZmOwogCQl1ZGVsYXkoMjAwKTsKIAkJdGVtcF9sYmNkbGwgPSBndXItPmxiY2RsbGNyOwogCQlndXItPmxiY2RsbGNyID0gKCh0ZW1wX2xiY2RsbCAmIDB4ZmYpIDw8IDE2ICkgfCAweDgwMDAwMDAwOwogCQlhc20oInN5bmM7aXN5bmM7bXN5bmMiKTsKIAl9Ci0JbGJjLT5vcjIgPSBDRkdfT1IyX1BSRUxJTTsgLyogNjRNQiBTRFJBTSAqLwotCWxiYy0+YnIyID0gQ0ZHX0JSMl9QUkVMSU07Ci0JbGJjLT5sYmNyID0gQ0ZHX0xCQ19MQkNSOwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzE7CisJbGJjLT5vcjIgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07IC8qIDY0TUIgU0RSQU0gKi8KKwlsYmMtPmJyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKKwlsYmMtPmxiY3IgPSBDT05GSUdfU1lTX0xCQ19MQkNSOworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xOwogCWFzbSgic3luYyIpOwogCSogKHVsb25nICopMCA9IDB4MDAwMDAwZmY7Ci0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfMjsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfMjsKIAlhc20oInN5bmMiKTsKIAkqICh1bG9uZyAqKTAgPSAweDAwMDAwMGZmOwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzM7CisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzM7CiAJYXNtKCJzeW5jIik7CiAJKiAodWxvbmcgKikwID0gMHgwMDAwMDBmZjsKLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl80OworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl80OwogCWFzbSgic3luYyIpOwogCSogKHVsb25nICopMCA9IDB4MDAwMDAwZmY7Ci0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfNTsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfNTsKIAlhc20oInN5bmMiKTsKLQlsYmMtPmxzcnQgPSBDRkdfTEJDX0xTUlQ7CisJbGJjLT5sc3J0ID0gQ09ORklHX1NZU19MQkNfTFNSVDsKIAlhc20oInN5bmMiKTsKLQlsYmMtPm1ydHByID0gQ0ZHX0xCQ19NUlRQUjsKKwlsYmMtPm1ydHByID0gQ09ORklHX1NZU19MQkNfTVJUUFI7CiAJYXNtKCJzeW5jIik7CiAjZW5kaWYKIApAQCAtMTM5LDcgKzEzOSw3IEBACiAJCSAqIGVuYWJsZSBlcnJvcnMgKi8KIAkJdWludCAqcCA9IDA7CiAJCXVpbnQgaSA9IDA7Ci0JCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkcj0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRERSX0FERFIpOworCQl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9ERFJfQUREUik7CiAJCWRtYV9pbml0KCk7CiAJCWZvciAoKnAgPSAwOyBwIDwgKHVpbnQgKikoOCAqIDEwMjQpOyBwKyspIHsKIAkJCWlmICgoKHVuc2lnbmVkIGludClwICYgMHgxZikgPT0gMCkgeyBkY2J6KHApOyB9CkBAIC0xODEsMTEgKzE4MSwxMSBAQAogCXJldHVybiBkcmFtX3NpemU7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIGludCB0ZXN0ZHJhbSAodm9pZCkKIHsKLQl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQl1aW50ICpwZW5kID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfRU5EOworCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwl1aW50ICpwZW5kID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX0VORDsKIAl1aW50ICpwOwogCiAJcHJpbnRmKCJTRFJBTSB0ZXN0IHBoYXNlIDE6XG4iKTsKQEAgLTIyMSwxNSArMjIxLDE1IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogbG9uZyBpbnQgZml4ZWRfc2RyYW0gKHZvaWQpCiB7Ci0jaWZuZGVmIENGR19SQU1CT09UCi0Jdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyPSAodm9pZCAqKShDRkdfTVBDODV4eF9ERFJfQUREUik7CisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAorCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkcj0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0REUl9BRERSKTsKIAotCWRkci0+Y3MwX2JuZHMgPSBDRkdfRERSX0NTMF9CTkRTOwotCWRkci0+Y3MwX2NvbmZpZyA9IENGR19ERFJfQ1MwX0NPTkZJRzsKLQlkZHItPnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JZGRyLT50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWRkci0+c2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERTsKLQlkZHItPnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKKwlkZHItPmNzMF9ibmRzID0gQ09ORklHX1NZU19ERFJfQ1MwX0JORFM7CisJZGRyLT5jczBfY29uZmlnID0gQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRzsKKwlkZHItPnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWRkci0+dGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJZGRyLT5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERTsKKwlkZHItPnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CiAjaWYgZGVmaW5lZCAoQ09ORklHX0REUl9FQ0MpCiAJZGRyLT5lcnJfZGlzYWJsZSA9IDB4MDAwMDAwMEQ7CiAJZGRyLT5lcnJfc2JlID0gMHgwMGZmMDAwMDsKQEAgLTIzOCwxNCArMjM4LDE0IEBACiAJdWRlbGF5KDUwMCk7CiAjaWYgZGVmaW5lZCAoQ09ORklHX0REUl9FQ0MpCiAJLyogRW5hYmxlIEVDQyBjaGVja2luZyAqLwotCWRkci0+c2RyYW1fY2ZnID0gKENGR19ERFJfQ09OVFJPTCB8IDB4MjAwMDAwMDApOworCWRkci0+c2RyYW1fY2ZnID0gKENPTkZJR19TWVNfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKICNlbHNlCi0JZGRyLT5zZHJhbV9jZmcgPSBDRkdfRERSX0NPTlRST0w7CisJZGRyLT5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX0REUl9DT05UUk9MOwogI2VuZGlmCiAJYXNtKCJzeW5jOyBpc3luYzsgbXN5bmMiKTsKIAl1ZGVsYXkoNTAwKTsKICNlbmRpZgotCXJldHVybiAoQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCk7CisJcmV0dXJuIChDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCk7CiB9CiAjZW5kaWYJLyogIWRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pICovCiAKZGlmZiAtLWdpdCBhL2JvYXJkL21wYzg1NDBldmFsL3RsYi5jIGIvYm9hcmQvbXBjODU0MGV2YWwvdGxiLmMKaW5kZXggMTAwM2JmNi4uMDYwOTJmOCAxMDA2NDQKLS0tIGEvYm9hcmQvbXBjODU0MGV2YWwvdGxiLmMKKysrIGIvYm9hcmQvbXBjODU0MGV2YWwvdGxiLmMKQEAgLTI3LDM0ICsyNywzNCBAQAogI2luY2x1ZGUgPGFzbS9tbXUuaD4KIAogc3RydWN0IGZzbF9lX3RsYl9lbnRyeSB0bGJfdGFibGVbXSA9IHsKLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDEsIEJPT0tFX1BBR0VTWl8xTSwgMSksCiAKLSAgI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX1BPUlRfV0lEVEhfMTYpCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UsCisgICNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfUE9SVF9XSURUSF8xNikKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzRNLCAxKSwKLQlTRVRfVExCX0VOVFJZKDEsIENGR19GTEFTSF9CQVNFICsgMHg0MDAwMDAsIENGR19GTEFTSF9CQVNFICsgMHg0MDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMDAwMCwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAzLCBCT09LRV9QQUdFU1pfNE0sIDEpLAogICAjZWxzZQotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAyLCBCT09LRV9QQUdFU1pfMTZNLCAxKSwKICAgI2VuZGlmCiAKICAgI2lmICFkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKQotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0REUl9TRFJBTV9CQVNFLCBDRkdfRERSX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgNCwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKLQlTRVRfVExCX0VOVFJZKDEsIENGR19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwgQ0ZHX0REUl9TRFJBTV9CQVNFICsgMHg0MDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogICAjZW5kaWYKIAotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0xCQ19TRFJBTV9CQVNFLCBDRkdfTEJDX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLAogICAjaWYgZGVmaW5lZChDT05GSUdfUkFNX0FTX0ZMQVNIKQogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKICAgI2Vsc2UKQEAgLTYyLDE1ICs2MiwxNSBAQAogICAjZW5kaWYKIAkJICAgICAgMCwgNiwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKLQlTRVRfVExCX0VOVFJZKDEsIENGR19JTklUX1JBTV9BRERSLCBDRkdfSU5JVF9SQU1fQUREUiwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgNywgQk9PS0VfUEFHRVNaXzE2SywgMSksCiAKLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0lfTUVNX1BIWVMsIENGR19QQ0lfTUVNX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA4LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKLQlTRVRfVExCX0VOVFJZKDEsIENGR19CQ1NSLCBDRkdfQkNTUiwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQkNTUiwgQ09ORklHX1NZU19CQ1NSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgOSwgQk9PS0VfUEFHRVNaXzE2SywgMSksCiB9OwpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBsL2NvbW1vbi9jb21tb25fdXRpbC5jIGIvYm9hcmQvbXBsL2NvbW1vbi9jb21tb25fdXRpbC5jCmluZGV4IDg0NTQ0MjAuLjg5OTBmYzYgMTAwNjQ0Ci0tLSBhL2JvYXJkL21wbC9jb21tb24vY29tbW9uX3V0aWwuYworKysgYi9ib2FyZC9tcGwvY29tbW9uL2NvbW1vbl91dGlsLmMKQEAgLTUzLDcgKzUzLDcgQEAKIGV4dGVybiBpbnQgbWVtX3Rlc3QodWxvbmcgc3RhcnQsIHVsb25nIHJhbXNpemUsIGludCBxdWlldCk7CiAKICNkZWZpbmUgSTJDX0JBQ0tVUF9BRERSIDB4N0MwMAkJLyogMHgyMDAgYnl0ZXMgZm9yIGJhY2t1cCAqLwotI2RlZmluZSBJTUFHRV9TSVpFIENGR19NT05JVE9SX0xFTgkvKiB1Z2x5LCBidXQgaXQgd29ya3MgZm9yIG5vdyAqLworI2RlZmluZSBJTUFHRV9TSVpFIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JLyogdWdseSwgYnV0IGl0IHdvcmtzIGZvciBub3cgKi8KIAogZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKQEAgLTI3MCw3ICsyNzAsNyBAQAogI2lmICFkZWZpbmVkKENPTkZJR19QQVRJKQogdm9pZCBnZXRfYmFja3VwX3ZhbHVlcyhiYWNrdXBfdCAqYnVmKQogewotCWkyY19yZWFkKENGR19ERUZfRUVQUk9NX0FERFIsIEkyQ19CQUNLVVBfQUREUiwyLCh2b2lkICopYnVmLHNpemVvZihiYWNrdXBfdCkpOworCWkyY19yZWFkKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLCBJMkNfQkFDS1VQX0FERFIsMiwodm9pZCAqKWJ1ZixzaXplb2YoYmFja3VwX3QpKTsKIH0KIAogdm9pZCBzZXRfYmFja3VwX3ZhbHVlcyhpbnQgb3ZlcndyaXRlKQpAQCAtMjk4LDcgKzI5OCw3IEBACiAJCXJldHVybjsKIAl9CiAJYmFjay5ldGhfYWRkclsyMF09MDsKLQlpMmNfd3JpdGUoQ0ZHX0RFRl9FRVBST01fQUREUiwgSTJDX0JBQ0tVUF9BRERSLDIsKHZvaWQgKikmYmFjayxzaXplb2YoYmFja3VwX3QpKTsKKwlpMmNfd3JpdGUoQ09ORklHX1NZU19ERUZfRUVQUk9NX0FERFIsIEkyQ19CQUNLVVBfQUREUiwyLCh2b2lkICopJmJhY2ssc2l6ZW9mKGJhY2t1cF90KSk7CiB9CiAKIHZvaWQgY2xlYXJfZW52X3ZhbHVlcyh2b2lkKQpAQCAtMzA4LDggKzMwOCw4IEBACiAKIAltZW1zZXQoJmJhY2ssMHhmZixzaXplb2YoYmFja3VwX3QpKTsKIAltZW1zZXQoZW52X2NyYywweDAwLDQpOwotCWkyY193cml0ZShDRkdfREVGX0VFUFJPTV9BRERSLEkyQ19CQUNLVVBfQUREUiwyLCh2b2lkICopJmJhY2ssc2l6ZW9mKGJhY2t1cF90KSk7Ci0JaTJjX3dyaXRlKENGR19ERUZfRUVQUk9NX0FERFIsQ09ORklHX0VOVl9PRkZTRVQsMiwodm9pZCAqKWVudl9jcmMsNCk7CisJaTJjX3dyaXRlKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLEkyQ19CQUNLVVBfQUREUiwyLCh2b2lkICopJmJhY2ssc2l6ZW9mKGJhY2t1cF90KSk7CisJaTJjX3dyaXRlKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLENPTkZJR19FTlZfT0ZGU0VULDIsKHZvaWQgKillbnZfY3JjLDQpOwogfQogCiAvKgpAQCAtMzIyLDcgKzMyMiw3IEBACiAJdWNoYXIgYnVmWzY0XTsKIAogCS8qIHJlYWQgb2xkIENSQyAqLwotCWVlcHJvbV9yZWFkIChDRkdfREVGX0VFUFJPTV9BRERSLAorCWVlcHJvbV9yZWFkIChDT05GSUdfU1lTX0RFRl9FRVBST01fQUREUiwKIAkJICAgICBDT05GSUdfRU5WX09GRlNFVCwKIAkJICAgICAodWNoYXIgKikmY3JjLCBzaXplb2YodWxvbmcpKTsKIApAQCAtMzMzLDcgKzMzMyw3IEBACiAJd2hpbGUgKGxlbiA+IDApIHsKIAkJaW50IG4gPSAobGVuID4gc2l6ZW9mKGJ1ZikpID8gc2l6ZW9mKGJ1ZikgOiBsZW47CiAKLQkJZWVwcm9tX3JlYWQgKENGR19ERUZfRUVQUk9NX0FERFIsIENPTkZJR19FTlZfT0ZGU0VUK29mZiwgYnVmLCBuKTsKKwkJZWVwcm9tX3JlYWQgKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLCBDT05GSUdfRU5WX09GRlNFVCtvZmYsIGJ1Ziwgbik7CiAJCW5ldyA9IGNyYzMyIChuZXcsIGJ1Ziwgbik7CiAJCWxlbiAtPSBuOwogCQlvZmYgKz0gbjsKQEAgLTM2Miw3ICszNjIsNyBAQAogCWxlbj1zaXplOwogCW9mZiA9IHNpemVvZihsb25nKTsKIAl3aGlsZSAobGVuID4gb2ZmKSB7Ci0JCWVlcHJvbV9yZWFkIChDRkdfREVGX0VFUFJPTV9BRERSLCBDT05GSUdfRU5WX09GRlNFVCtvZmYsICZjLCAxKTsKKwkJZWVwcm9tX3JlYWQgKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLCBDT05GSUdfRU5WX09GRlNFVCtvZmYsICZjLCAxKTsKIAkJaWYoYyAhPSAnPScpIHsKIAkJCSpuYW1lKys9YzsKIAkJCW9mZisrOwpAQCAtMzcxLDcgKzM3MSw3IEBACiAJCQkqbmFtZSsrPSdcMCc7CiAJCQlvZmYrKzsKIAkJCWRvIHsKLQkJCQllZXByb21fcmVhZCAoQ0ZHX0RFRl9FRVBST01fQUREUiwgQ09ORklHX0VOVl9PRkZTRVQrb2ZmLCAmYywgMSk7CisJCQkJZWVwcm9tX3JlYWQgKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLCBDT05GSUdfRU5WX09GRlNFVCtvZmYsICZjLCAxKTsKIAkJCQkqdmFsdWUrKz1jOwogCQkJCW9mZisrOwogCQkJCWlmKGMgPT0gJ1wwJykKQEAgLTQ4NSw3ICs0ODUsNyBAQAogCQkJfQogCQkJZWxzZSB7CiAJCQkJbG9jYWxfYXJnc1sxXSA9IE5VTEw7Ci0JCQkJbGRfYWRkcj1DRkdfTE9BRF9BRERSOworCQkJCWxkX2FkZHI9Q09ORklHX1NZU19MT0FEX0FERFI7CiAJCQkJcmVzdWx0PWRvX2ZkY2Jvb3QoY21kdHAsIDAsIDEsIGxvY2FsX2FyZ3MpOwogCQkJfQogCQkJcmVzdWx0PW1wbF9wcmdfaW1hZ2UoKHVjaGFyICopbGRfYWRkcik7CkBAIC01MTksMTQgKzUxOSwxNCBAQAogCQkJcmVzdWx0ID0gKGludClzaW1wbGVfc3RydG9sKGFyZ3ZbMl0sIE5VTEwsIDE2KTsKIAkgICAgfQogCSAgICBzcmM9KHVuc2lnbmVkIGxvbmcpJnJlc3VsdDsKLQkgICAgc3JjLT1DRkdfTUVNVEVTVF9TVEFSVDsKKwkgICAgc3JjLT1DT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CiAJICAgIHNyYy09KDEwMCoxMDI0KTsgLyogLSAxMDBrICovCiAJICAgIHNyYyY9MHhmZmYwMDAwMDsKIAkgICAgc2l6ZT0wOwogCSAgICBkbyB7CiAJCXNpemUrKzsKIAkJCXByaW50ZigiXG5cblBhc3MgJWxkXG4iLHNpemUpOwotCQkJbWVtX3Rlc3QoQ0ZHX01FTVRFU1RfU1RBUlQsc3JjLDEpOworCQkJbWVtX3Rlc3QoQ09ORklHX1NZU19NRU1URVNUX1NUQVJULHNyYywxKTsKIAkJCWlmKGN0cmxjKCkpCiAJCQkJYnJlYWs7CiAJCQlpZihyZXN1bHQ+MCkKZGlmZiAtLWdpdCBhL2JvYXJkL21wbC9jb21tb24vZmxhc2guYyBiL2JvYXJkL21wbC9jb21tb24vZmxhc2guYwppbmRleCBiMmQ0ZjZmLi4zMDJkN2EzIDEwMDY0NAotLS0gYS9ib2FyZC9tcGwvY29tbW9uL2ZsYXNoLmMKKysrIGIvYm9hcmQvbXBsL2NvbW1vbi9mbGFzaC5jCkBAIC01Miw3ICs1Miw3IEBACiAjaW5jbHVkZSA8bXBjNXh4Lmg+CiAjZW5kaWYKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKICAqLwpAQCAtODksNyArODksNyBAQAogICogVGhlIGJvYXJkX2luaXRfciB3aWxsIGZpbGwgaW4gd3JvbmcgdmFsdWVzIGluIHRoZSBib2FyZCBpbml0IHN0cnVjdHVyZSwKICAqIGJ1dCB0aGlzIHdpbGwgYmUgZml4ZWQgaW4gdGhlIG1pc2NfaW5pdF9yIHJvdXRpbmU6CiAgKiBiZC0+YmlfZmxhc2hzdGFydD0wLWZsYXNoX2luZm9bMF0uc2l6ZQotICogYmQtPmJpX2ZsYXNoc2l6ZT1mbGFzaF9pbmZvWzBdLnNpemUtQ0ZHX01PTklUT1JfTEVOCisgKiBiZC0+YmlfZmxhc2hzaXplPWZsYXNoX2luZm9bMF0uc2l6ZS1DT05GSUdfU1lTX01PTklUT1JfTEVOCiAgKiBiZC0+YmlfZmxhc2hvZmZzZXQ9MAogICoKICAqLwpAQCAtMTc0LDEzICsxNzQsMTMgQEAKIAkJCSJNUFMiIDogIkZsYXNoIik7CiAjZW5kaWYgLyogI2lmICFkZWZpbmVkKENPTkZJR19QQVRJKSAqLwogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAogCS8qIFN0YXRpYyBGTEFTSCBCYW5rIGNvbmZpZ3VyYXRpb24gaGVyZSAtIEZJWE1FIFhYWCAqLwogCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX01PTklUT1JfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggb24gQmFuayAwIC0gU2l6ZSA9IDB4JTA4bHggPSAlbGQgTUJcbiIsCkBAIC0xODgsMTAgKzE4OCwxMCBAQAogCX0KIAkvKiBwcm90ZWN0IHRoZSBib290bG9hZGVyICovCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX01PTklUT1JfQkFTRSwKLQkJCUNGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJCSZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogI2lmICFkZWZpbmVkKENPTkZJR19QQVRJKQpAQCAtNTU1LDcgKzU1NSw3IEBACiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCWxhc3QgID0gc3RhcnQ7CiAJd2hpbGUgKChhZGRyWzBdICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPSAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIEVSUl9USU1PVVQ7CiAJCX0KQEAgLTU3Niw3ICs1NzYsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAlsYXN0ICA9IHN0YXJ0OwogCXdoaWxlICgoYWRkclswXSAmIChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0gKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiBFUlJfVElNT1VUOwogCQl9CkBAIC04NDgsNyArODQ4LDcgQEAKIAkJCXVkZWxheSgxMCk7CiAJCQl3aGlsZSAoKGRlc3QyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPSAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApCiAJCQl7Ci0JCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkKKwkJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkKIAkJCQkJcmV0dXJuICgxKTsKIAkJCX0KIAkJCWRlc3QyW2ldID0gKEZMQVNIX1dPUkRfU0laRSkweDAwRkYwMEZGOyAvKiByZXR1cm4gdG8gcmVhZCBtb2RlICovCkBAIC04NjksNyArODY5LDcgQEAKIAkJCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAkJCXdoaWxlICgoZGVzdDJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9CiAJCQkJKGRhdGEyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSkgewotCQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCQlyZXR1cm4gKDEpOwogCQkJCX0KIAkJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL21wbC9jb21tb24vaXNhLmMgYi9ib2FyZC9tcGwvY29tbW9uL2lzYS5jCmluZGV4IDUxYjI3NzMuLjkxODI5ZDQgMTAwNjQ0Ci0tLSBhL2JvYXJkL21wbC9jb21tb24vaXNhLmMKKysrIGIvYm9hcmQvbXBsL2NvbW1vbi9pc2EuYwpAQCAtMTEzLDkgKzExMyw5IEBACiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHVuc2lnbmVkIGNoYXIgb3Blbl9jZmdfc3VwZXJfSU8oaW50IGFkZHJlc3MpCiB7Ci0Jb3V0OChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MsMHg1NSk7IC8qIG9wZW4gY29uZmlnICovCi0Jb3V0OChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MsMHgyMCk7IC8qIHNldCBhZGRyZXNzIHRvIERFViBJRCAqLwotCWlmKGluOChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MgfCAweDEpPT0weDQwKSAvKiBvayBEZXZpY2UgSUQgaXMgY29ycmVjdCAqLworCW91dDgoQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTIHwgYWRkcmVzcywweDU1KTsgLyogb3BlbiBjb25maWcgKi8KKwlvdXQ4KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MsMHgyMCk7IC8qIHNldCBhZGRyZXNzIHRvIERFViBJRCAqLworCWlmKGluOChDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzIHwgMHgxKT09MHg0MCkgLyogb2sgRGV2aWNlIElEIGlzIGNvcnJlY3QgKi8KIAkJcmV0dXJuIFRSVUU7CiAJZWxzZQogCQlyZXR1cm4gRkFMU0U7CkBAIC0xMjMsMjYgKzEyMywyNiBAQAogCiB2b2lkIGNsb3NlX2NmZ19zdXBlcl9JTyhpbnQgYWRkcmVzcykKIHsKLQlvdXQ4KENGR19JU0FfSU9fQkFTRV9BRERSRVNTIHwgYWRkcmVzcywweEFBKTsgLyogY2xvc2UgY29uZmlnICovCisJb3V0OChDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzLDB4QUEpOyAvKiBjbG9zZSBjb25maWcgKi8KIH0KIAogCiB1bnNpZ25lZCBjaGFyIHJlYWRfY2ZnX3N1cGVyX0lPKGludCBhZGRyZXNzLCB1bnNpZ25lZCBjaGFyIGZ1bmN0aW9uLCB1bnNpZ25lZCBjaGFyIHJlZ2FkZHIpCiB7CiAJLyogYXNzdW1pbmcgY29uZmlnIHJlZyBpcyBvcGVuICovCi0Jb3V0OChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MsMHg3KTsgLyogcG9pbnRzIHRvIHRoZSBmdW5jdGlvbiByZWcgKi8KLQlvdXQ4KENGR19JU0FfSU9fQkFTRV9BRERSRVNTIHwgYWRkcmVzcyB8IDEsZnVuY3Rpb24pOyAvKiBzZXQgdGhlIGZ1bmN0aW9uIG5vICovCi0Jb3V0OChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MscmVnYWRkcik7IC8qIHNldHMgdGhlIGFkZHJlc3MgaW4gdGhlIGZ1bmN0aW9uICovCi0JcmV0dXJuIGluOChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MgfCAxKTsKKwlvdXQ4KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MsMHg3KTsgLyogcG9pbnRzIHRvIHRoZSBmdW5jdGlvbiByZWcgKi8KKwlvdXQ4KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MgfCAxLGZ1bmN0aW9uKTsgLyogc2V0IHRoZSBmdW5jdGlvbiBubyAqLworCW91dDgoQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTIHwgYWRkcmVzcyxyZWdhZGRyKTsgLyogc2V0cyB0aGUgYWRkcmVzcyBpbiB0aGUgZnVuY3Rpb24gKi8KKwlyZXR1cm4gaW44KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MgfCAxKTsKIH0KIAogdm9pZCB3cml0ZV9jZmdfc3VwZXJfSU8oaW50IGFkZHJlc3MsIHVuc2lnbmVkIGNoYXIgZnVuY3Rpb24sIHVuc2lnbmVkIGNoYXIgcmVnYWRkciwgdW5zaWduZWQgY2hhciBkYXRhKQogewogCS8qIGFzc3VtaW5nIGNvbmZpZyByZWcgaXMgb3BlbiAqLwotCW91dDgoQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzLDB4Nyk7IC8qIHBvaW50cyB0byB0aGUgZnVuY3Rpb24gcmVnICovCi0Jb3V0OChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MgfCAxLGZ1bmN0aW9uKTsgLyogc2V0IHRoZSBmdW5jdGlvbiBubyAqLwotCW91dDgoQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzLHJlZ2FkZHIpOyAvKiBzZXRzIHRoZSBhZGRyZXNzIGluIHRoZSBmdW5jdGlvbiAqLwotCW91dDgoQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzIHwgMSxkYXRhKTsgLyogd3JpdGVzIHRoZSBkYXRhICovCisJb3V0OChDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzLDB4Nyk7IC8qIHBvaW50cyB0byB0aGUgZnVuY3Rpb24gcmVnICovCisJb3V0OChDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzIHwgMSxmdW5jdGlvbik7IC8qIHNldCB0aGUgZnVuY3Rpb24gbm8gKi8KKwlvdXQ4KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MscmVnYWRkcik7IC8qIHNldHMgdGhlIGFkZHJlc3MgaW4gdGhlIGZ1bmN0aW9uICovCisJb3V0OChDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzIHwgMSxkYXRhKTsgLyogd3JpdGVzIHRoZSBkYXRhICovCiB9CiAKIHZvaWQgaXNhX3dyaXRlX3RhYmxlKFNJT19MT0dERVZfVEFCTEUgKmxkdCx1bnNpZ25lZCBjaGFyIGxkZXYpCkBAIC0yMDgsMTIgKzIwOCwxMiBAQAogCiAjZGVmaW5lIGNhY2hlZF9pbXIxCSh1bnNpZ25lZCBjaGFyKWNhY2hlZF9pcnFfbWFzawogI2RlZmluZSBjYWNoZWRfaW1yMgkodW5zaWduZWQgY2hhcikoY2FjaGVkX2lycV9tYXNrPj44KQotI2RlZmluZSBJTVJfMQkJQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBQSUlYNF9JU0FfSU5UMV9PQ1cxCi0jZGVmaW5lIElNUl8yCQlDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIFBJSVg0X0lTQV9JTlQyX09DVzEKLSNkZWZpbmUgSUNXMV8xCUNGR19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDFfSUNXMQotI2RlZmluZSBJQ1cxXzIJQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBQSUlYNF9JU0FfSU5UMl9JQ1cxCi0jZGVmaW5lIElDVzJfMQlDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIFBJSVg0X0lTQV9JTlQxX0lDVzIKLSNkZWZpbmUgSUNXMl8yCUNGR19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDJfSUNXMgorI2RlZmluZSBJTVJfMQkJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDFfT0NXMQorI2RlZmluZSBJTVJfMgkJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDJfT0NXMQorI2RlZmluZSBJQ1cxXzEJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDFfSUNXMQorI2RlZmluZSBJQ1cxXzIJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDJfSUNXMQorI2RlZmluZSBJQ1cyXzEJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDFfSUNXMgorI2RlZmluZSBJQ1cyXzIJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDJfSUNXMgogI2RlZmluZSBJQ1czXzEJSUNXMl8xCiAjZGVmaW5lIElDVzNfMglJQ1cyXzIKICNkZWZpbmUgSUNXNF8xCUlDVzJfMQpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBsL2NvbW1vbi9rYmQuYyBiL2JvYXJkL21wbC9jb21tb24va2JkLmMKaW5kZXggYjIwYjk1My4uYTQ1NzYzNSAxMDA2NDQKLS0tIGEvYm9hcmQvbXBsL2NvbW1vbi9rYmQuYworKysgYi9ib2FyZC9tcGwvY29tbW9uL2tiZC5jCkBAIC0yMDMsNyArMjAzLDcgQEAKIAl9CiB9CiAKLSNpZmRlZiBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQorI2lmZGVmIENPTkZJR19TWVNfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQogZXh0ZXJuIGludCBvdmVyd3JpdGVfY29uc29sZSAodm9pZCk7CiAjZWxzZQogaW50IG92ZXJ3cml0ZV9jb25zb2xlICh2b2lkKQpAQCAtNDUyLDIyICs0NTIsMjIgQEAKICAqLwogdW5zaWduZWQgY2hhciBrYmRfcmVhZF9zdGF0dXModm9pZCkKIHsKLQlyZXR1cm4oaW44KENGR19JU0FfSU9fQkFTRV9BRERSRVNTICsgS0RCX0NPTU1BTkRfUE9SVCkpOworCXJldHVybihpbjgoQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgS0RCX0NPTU1BTkRfUE9SVCkpOwogfQogCiB1bnNpZ25lZCBjaGFyIGtiZF9yZWFkX2lucHV0KHZvaWQpCiB7Ci0JcmV0dXJuKGluOChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIEtEQl9EQVRBX1BPUlQpKTsKKwlyZXR1cm4oaW44KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArIEtEQl9EQVRBX1BPUlQpKTsKIH0KIAogdm9pZCBrYmRfd3JpdGVfY29tbWFuZCh1bnNpZ25lZCBjaGFyIGNtZCkKIHsKLQlvdXQ4KENGR19JU0FfSU9fQkFTRV9BRERSRVNTICsgS0RCX0NPTU1BTkRfUE9SVCxjbWQpOworCW91dDgoQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgS0RCX0NPTU1BTkRfUE9SVCxjbWQpOwogfQogCiB2b2lkIGtiZF93cml0ZV9vdXRwdXQodW5zaWduZWQgY2hhciBkYXRhKQogewotCW91dDgoQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBLREJfREFUQV9QT1JULCBkYXRhKTsKKwlvdXQ4KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArIEtEQl9EQVRBX1BPUlQsIGRhdGEpOwogfQogCiBpbnQga2JkX3JlYWRfZGF0YSh2b2lkKQpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBsL2NvbW1vbi91c2JfdWhjaS5jIGIvYm9hcmQvbXBsL2NvbW1vbi91c2JfdWhjaS5jCmluZGV4IDY2NmI5OTkuLmFkMzA0NDIgMTAwNjQ0Ci0tLSBhL2JvYXJkL21wbC9jb21tb24vdXNiX3VoY2kuYworKysgYi9ib2FyZC9tcGwvY29tbW9uL3VzYl91aGNpLmMKQEAgLTYyMSw3ICs2MjEsNyBAQAogCXBjaV9yZWFkX2NvbmZpZ19kd29yZChidXNkZXZmdW5jLFBDSV9CQVNFX0FERFJFU1NfNCwmdXNiX2Jhc2VfYWRkcik7CiAJVVNCX1VIQ0lfUFJJTlRGKCJJTyBCYXNlIEFkZHJlc3MgPSAweCVseFxuIix1c2JfYmFzZV9hZGRyKTsKIAl1c2JfYmFzZV9hZGRyJj0weEZGRkZGRkYwOwotCXVzYl9iYXNlX2FkZHIrPUNGR19JU0FfSU9fQkFTRV9BRERSRVNTOworCXVzYl9iYXNlX2FkZHIrPUNPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUzsKIAlyaC5kZXZudW0gPSAwOwogCXVzYl9pbml0X3NrZWwoKTsKIAlyZXNldF9oYygpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBsL21pcDQwNS9taXA0MDUuYyBiL2JvYXJkL21wbC9taXA0MDUvbWlwNDA1LmMKaW5kZXggY2YwYWZkMS4uNWViOTBlNSAxMDA2NDQKLS0tIGEvYm9hcmQvbXBsL21pcDQwNS9taXA0MDUuYworKysgYi9ib2FyZC9tcGwvbWlwNDA1L21pcDQwNS5jCkBAIC0yNTAsNyArMjUwLDcgQEAKIAl1bnNpZ25lZCBjaGFyCWJjOwogCXVuc2lnbmVkIGxvbmcJc2RyYW1fdGltLCBzZHJhbV9iYW5rOwogCi0JLyppMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7Ki8KKwkvKmkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOyovCiAJKHZvaWQpIGdldF9jbG9ja3MgKCk7CiAJZ2QtPmJhdWRyYXRlID0gOTYwMDsKIAlzZXJpYWxfaW5pdCAoKTsKQEAgLTMyMCw3ICszMjAsNyBAQAogCXNlcmlhbF9wdXRzICgiXG4iKTsKICNlbmRpZgogCWkgPSAwOwotCWJhc2VhZGRyID0gQ0ZHX1NEUkFNX0JBU0U7CisJYmFzZWFkZHIgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAJd2hpbGUgKHNkcmFtX3RhYmxlW2ldLnN6ICE9IDB4ZmYpIHsKIAkJaWYgKHNkcmFtX3RhYmxlW2ldLmJvYXJkdHlwZSA9PSBiYykKIAkJCWJyZWFrOwpAQCAtNjc5LDcgKzY3OSw3IEBACiB7CiAJLyogYWRqdXN0IGZsYXNoIHN0YXJ0IGFuZCBzaXplIGFzIHdlbGwgYXMgdGhlIG9mZnNldCAqLwogCWdkLT5iZC0+YmlfZmxhc2hzdGFydD0wLWZsYXNoX2luZm9bMF0uc2l6ZTsKLQlnZC0+YmQtPmJpX2ZsYXNoc2l6ZT1mbGFzaF9pbmZvWzBdLnNpemUtQ0ZHX01PTklUT1JfTEVOOworCWdkLT5iZC0+YmlfZmxhc2hzaXplPWZsYXNoX2luZm9bMF0uc2l6ZS1DT05GSUdfU1lTX01PTklUT1JfTEVOOwogCWdkLT5iZC0+YmlfZmxhc2hvZmZzZXQ9MDsKIAogCS8qIGNoZWNrLCBpZiBSVEMgaXMgcnVubmluZyAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBsL3BhdGkvY21kX3BhdGkuYyBiL2JvYXJkL21wbC9wYXRpL2NtZF9wYXRpLmMKaW5kZXggOTE2ODNhMy4uOWQ5NTMxYiAxMDA2NDQKLS0tIGEvYm9hcmQvbXBsL3BhdGkvY21kX3BhdGkuYworKysgYi9ib2FyZC9tcGwvcGF0aS9jbWRfcGF0aS5jCkBAIC0zNyw3ICszNyw3IEBACiBleHRlcm4gdm9pZCB1c2VyX2xlZDEoaW50IGxlZF9vbik7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSNpZiBkZWZpbmVkKENGR19QQ0lfQ09OX0RFVklDRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUENJX0NPTl9ERVZJQ0UpCiBleHRlcm4gdm9pZCBwY2lfY29uX2Rpc2Modm9pZCk7CiBleHRlcm4gdm9pZCBwY2lfY29uX2Nvbm5lY3Qodm9pZCk7CiAjZW5kaWYKQEAgLTM3OCw3ICszNzgsNyBAQAogCQkJdXNlcl9sZWQxKGxlZF9vbik7CiAJCXJldHVybiAwOwogCX0KLSNpZiBkZWZpbmVkKENGR19QQ0lfQ09OX0RFVklDRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUENJX0NPTl9ERVZJQ0UpCiAJaWYgKHN0cmNtcChhcmd2WzFdLCAiY29uIikgPT0gMCkgewogCQlwY2lfY29uX2Nvbm5lY3QoKTsKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9ib2FyZC9tcGwvcGF0aS9wYXRpLmMgYi9ib2FyZC9tcGwvcGF0aS9wYXRpLmMKaW5kZXggMDg4M2M0Mi4uODVjNWFmOSAxMDA2NDQKLS0tIGEvYm9hcmQvbXBsL3BhdGkvcGF0aS5jCisrKyBiL2JvYXJkL21wbC9wYXRpL3BhdGkuYwpAQCAtMjI0LDcgKzIyNCw3IEBACiAJLyogcmVzdCBzdGFuZGFyZCBvcGVyYXRpb24gcHJvZ3JhbW1lZCB3cml0ZSBidXJzdCBsZW5ndGggKi8KIAkvKiB3ZSBoYXZlIGEgeDMyIGJpdCBidXMgdG8gdGhlIFNEUkFNLCBzbyBzaGlmdCB0aGUgYWRkciB3aXRoIDIgKi8KIAlsbXI8PD0yOwotCWluMzIoQ0ZHX1NEUkFNX0JBU0UgKyBsbXIpOworCWluMzIoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgbG1yKTsKIAkvKiBvaywgd2UncmUgZG9uZSwgcmV0dXJuIFNEUkFNIHNpemUgKi8KIAlyZXR1cm4gKCgweDQwMDAwMCA8PCBzZHJhbV90YWJsZVtpXS5zeikpOwkJLyogbG9nMiB2YWx1ZSBvZiA0TUJ5dGUgICovCiB9CkBAIC0yODcsNyArMjg3LDcgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogIHZvaWQgaW5pdF9pb3Modm9pZCkKICB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqIGltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICogaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBzeXNjb25mNXh4X3QgKnN5c2NvbmYgPSAmaW1tci0+aW1fc2l1X2NvbmY7CiAJdW5zaWduZWQgbG9uZyByZWc7CiAJcmVnPXN5c2NvbmYtPnNjX3NncGlvY3I7IC8qIERhdGEgZGlyZWN0aW9uIHJlZ2lzdGVyICovCkBAIC0zMDQsNyArMzA0LDcgQEAKIAogdm9pZCB1c2VyX2xlZDAoaW50IGxlZF9vbikKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICogaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKiBpbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHN5c2NvbmY1eHhfdCAqc3lzY29uZiA9ICZpbW1yLT5pbV9zaXVfY29uZjsKIAl1bnNpZ25lZCBsb25nIHJlZzsKIAlyZWc9c3lzY29uZi0+c2Nfc2dwaW9kdDI7IC8qIERhdGEgcmVnaXN0ZXIgKi8KQEAgLTMxNyw3ICszMTcsNyBAQAogCiB2b2lkIHVzZXJfbGVkMShpbnQgbGVkX29uKQogewotCXZvbGF0aWxlIGltbWFwX3QgKiBpbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqIGltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgc3lzY29uZjV4eF90ICpzeXNjb25mID0gJmltbXItPmltX3NpdV9jb25mOwogCXVuc2lnbmVkIGxvbmcgcmVnOwogCXJlZz1zeXNjb25mLT5zY19zZ3Bpb2R0MjsgLyogRGF0YSByZWdpc3RlciAqLwpAQCAtMzcwLDcgKzM3MCw3IEBACiB9CiAKIAotI2lmZGVmIENGR19QQ0lfQ09OX0RFVklDRQorI2lmZGVmIENPTkZJR19TWVNfUENJX0NPTl9ERVZJQ0UKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIFBDSSBDb21tdW5pY2F0aW9uCiAgKgpAQCAtNjEwLDkgKzYxMCw5IEBACiAJaXJxX2ZyZWVfaGFuZGxlcigweDAyKTsKIAlwY2lfY29uX2Nvbm5lY3QoKTsKIH0KLSNlbmRpZiAvKiAjaWZkZWYgQ0ZHX1BDSV9DT05fREVWSUNFICovCisjZW5kaWYgLyogI2lmZGVmIENPTkZJR19TWVNfUENJX0NPTl9ERVZJQ0UgKi8KIAogLyoKICAqIEFic29sdXRlIGVudmlyb25tZW50IGFkZHJlc3MgZm9yIGxpbmtlciBmaWxlLgogICovCi1HRU5fQUJTKGVudl9zdGFydCwgQ09ORklHX0VOVl9PRkZTRVQgKyBDRkdfRkxBU0hfQkFTRSk7CitHRU5fQUJTKGVudl9zdGFydCwgQ09ORklHX0VOVl9PRkZTRVQgKyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBsL3BpcDQwNS9waXA0MDUuYyBiL2JvYXJkL21wbC9waXA0MDUvcGlwNDA1LmMKaW5kZXggNmNiYTg5Mi4uM2JlMDEwNCAxMDA2NDQKLS0tIGEvYm9hcmQvbXBsL3BpcDQwNS9waXA0MDUuYworKysgYi9ib2FyZC9tcGwvcGlwNDA1L3BpcDQwNS5jCkBAIC0yMDgsNyArMjA4LDcgQEAKICNlbmRpZgogCiAJLyogUmVhZCBTZXJpYWwgUHJlc2VuY2UgRGV0ZWN0IEluZm9ybWF0aW9uICovCi0JaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCWRhdGFvdXRbMF0gPSAwOwogCWZvciAoaSA9IDA7IGkgPCAxMjg7IGkrKykKIAkJZGF0YWluW2ldID0gMTI3OwpAQCAtMzg2LDcgKzM4Niw3IEBACiAJLyogd3JpdGUgU0RSQU0gdGltaW5nIHJlZ2lzdGVyICovCiAJbXRkY3IgKG1lbWNmZ2EsIG1lbV9zZHRyMSk7CiAJbXRkY3IgKG1lbWNmZ2QsIHRtcCk7Ci0JYmFzZWFkZHIgPSBDRkdfU0RSQU1fQkFTRTsKKwliYXNlYWRkciA9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsKIAliYW5rX3NpemUgPSAoKCh1bnNpZ25lZCBsb25nKSBkZW5zaXR5KSA8PCAyMikgLyAyOwogCS8qIGluc2VydCBBTSB2YWx1ZSAqLwogCXRtcCA9ICgodW5zaWduZWQgbG9uZykgdC0+bW9kZSAtIDEpIDw8IDEzOwpAQCAtNjYzLDcgKzY2Myw3IEBACiB7CiAJLyogYWRqdXN0IGZsYXNoIHN0YXJ0IGFuZCBzaXplIGFzIHdlbGwgYXMgdGhlIG9mZnNldCAqLwogCWdkLT5iZC0+YmlfZmxhc2hzdGFydD0wLWZsYXNoX2luZm9bMF0uc2l6ZTsKLQlnZC0+YmQtPmJpX2ZsYXNoc2l6ZT1mbGFzaF9pbmZvWzBdLnNpemUtQ0ZHX01PTklUT1JfTEVOOworCWdkLT5iZC0+YmlfZmxhc2hzaXplPWZsYXNoX2luZm9bMF0uc2l6ZS1DT05GSUdfU1lTX01PTklUT1JfTEVOOwogCWdkLT5iZC0+YmlfZmxhc2hvZmZzZXQ9MDsKIAogCS8qIGlmIFBJUDQwNSBoYXMgYm9vdGVkIGZyb20gUENJLCByZXNldCBDQ1IwWzI0XSBhcyBkZXNjcmliZWQgaW4gZXJyYXRhIFBDSV8xOCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBsL3BpcDQwNS9waXA0MDUuaCBiL2JvYXJkL21wbC9waXA0MDUvcGlwNDA1LmgKaW5kZXggNTgxNTc4Ni4uNzA0YWIyYyAxMDA2NDQKLS0tIGEvYm9hcmQvbXBsL3BpcDQwNS9waXA0MDUuaAorKysgYi9ib2FyZC9tcGwvcGlwNDA1L3BpcDQwNS5oCkBAIC0zNSw3ICszNSw3IEBACiB2b2lkIHVzZXJfbGVkMSh1bnNpZ25lZCBjaGFyIG9uKTsKIAogCi0jZGVmaW5lIFBMRF9CQVNFX0FERFJFU1MJCUNGR19JU0FfSU9fQkFTRV9BRERSRVNTICsgMHg4MDAKKyNkZWZpbmUgUExEX0JBU0VfQUREUkVTUwkJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgMHg4MDAKICNkZWZpbmUgUExEX1BBUlRfUkVHCQkJUExEX0JBU0VfQUREUkVTUyArIDAKICNkZWZpbmUgUExEX1ZFUlNfUkVHCQkJUExEX0JBU0VfQUREUkVTUyArIDEKICNkZWZpbmUgUExEX0JPQVJEX0NGR19SRUcJCVBMRF9CQVNFX0FERFJFU1MgKyAyCmRpZmYgLS1naXQgYS9ib2FyZC9tcGwvdmNtYTkvZmxhc2guYyBiL2JvYXJkL21wbC92Y21hOS9mbGFzaC5jCmluZGV4IDM4OTUyNjMuLjdhYmY5Y2YgMTAwNjQ0Ci0tLSBhL2JvYXJkL21wbC92Y21hOS9mbGFzaC5jCisrKyBiL2JvYXJkL21wbC92Y21hOS9mbGFzaC5jCkBAIC0zMCw3ICszMCw3IEBACiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRQlQSFlTX0ZMQVNIX1NJWkUKICNkZWZpbmUgTUFJTl9TRUNUX1NJWkUgIDB4MTAwMDAJLyogNjQgS0IgKi8KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIAogI2RlZmluZSBDTURfUkVBRF9BUlJBWQkJMHgwMDAwMDBGMApAQCAtNDEsOCArNDEsOCBAQAogI2RlZmluZSBDTURfUFJPR1JBTQkJMHgwMDAwMDBBMAogI2RlZmluZSBDTURfVU5MT0NLX0JZUEFTUwkweDAwMDAwMDIwCiAKLSNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MTYgKikoQ0ZHX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NSA8PCAxKSkpCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUEgPDwgMSkpKQorI2RlZmluZSBNRU1fRkxBU0hfQUREUjEJCSgqKHZvbGF0aWxlIHUxNiAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NSA8PCAxKSkpCisjZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgweDAwMDAwMkFBIDw8IDEpKSkKIAogI2RlZmluZSBCSVRfRVJBU0VfRE9ORQkJMHgwMDAwMDA4MAogI2RlZmluZSBCSVRfUkRZX01BU0sJCTB4MDAwMDAwODAKQEAgLTYxLDcgKzYxLDcgQEAKIAlpbnQgaSwgajsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQl1bG9uZyBmbGFzaGJhc2UgPSAwOwogCiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPQpAQCAtNzUsOCArNzUsOCBAQAogI2Vycm9yICJVbmtub3duIGZsYXNoIGNvbmZpZ3VyZWQiCiAjZW5kaWYKIAkJCWZsYXNoX2luZm9baV0uc2l6ZSA9IEZMQVNIX0JBTktfU0laRTsKLQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CisJCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAkJaWYgKGkgPT0gMCkKIAkJCWZsYXNoYmFzZSA9IFBIWVNfRkxBU0hfMTsKIAkJZWxzZQpAQCAtMTExLDggKzExMSw4IEBACiAJfQogCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCSAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULApAQCAtMjM2LDcgKzIzNiw3IEBACiAKIAkJCQkvKiBjaGVjayB0aW1lb3V0ICovCiAJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPgotCQkJCSAgICBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJTUVNX0ZMQVNIX0FERFIxID0gQ01EX1JFQURfQVJSQVk7CiAJCQkJCWNoaXAgPSBUTU87CiAJCQkJCWJyZWFrOwpAQCAtMzMxLDcgKzMzMSw3IEBACiAJCXJlc3VsdCA9ICphZGRyOwogCiAJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJY2hpcCA9IEVSUiB8IFRNTzsKIAkJCWJyZWFrOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9tcHIyL21wcjIuYyBiL2JvYXJkL21wcjIvbXByMi5jCmluZGV4IDk4NTU3YjQuLjBlYzBjMTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL21wcjIvbXByMi5jCisrKyBiL2JvYXJkL21wcjIvbXByMi5jCkBAIC0xNTQsOCArMTU0LDggQEAKIHsKIAlERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDRkdfU0RSQU1fQkFTRTsKLQlnZC0+YmQtPmJpX21lbXNpemUgPSBDRkdfU0RSQU1fU0laRTsKLQlwcmludGYoIlNEUkFNOiAlZE1CXG4iLCBDRkdfU0RSQU1fU0laRSAvICgxMDI0ICogMTAyNCkpOworCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CisJZ2QtPmJkLT5iaV9tZW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFOworCXByaW50ZigiU0RSQU06ICVkTUJcbiIsIENPTkZJR19TWVNfU0RSQU1fU0laRSAvICgxMDI0ICogMTAyNCkpOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbXM3NzIwc2UvbXM3NzIwc2UuYyBiL2JvYXJkL21zNzcyMHNlL21zNzcyMHNlLmMKaW5kZXggYWY2MmNkZi4uZjgzYzEyMCAxMDA2NDQKLS0tIGEvYm9hcmQvbXM3NzIwc2UvbXM3NzIwc2UuYworKysgYi9ib2FyZC9tczc3MjBzZS9tczc3MjBzZS5jCkBAIC00Nyw5ICs0Nyw5IEBACiB7CiAJREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLQlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ0ZHX1NEUkFNX0JBU0U7Ci0JZ2QtPmJkLT5iaV9tZW1zaXplID0gQ0ZHX1NEUkFNX1NJWkU7Ci0JcHJpbnRmKCJEUkFNOiAgJWRNQlxuIiwgQ0ZHX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKKwlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRTsKKwlwcmludGYoIkRSQU06ICAlZE1CXG4iLCBDT05GSUdfU1lTX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvbXM3NzIyc2UvbXM3NzIyc2UuYyBiL2JvYXJkL21zNzcyMnNlL21zNzcyMnNlLmMKaW5kZXggY2YwMjI0Mi4uMzIyMzRkMyAxMDA2NDQKLS0tIGEvYm9hcmQvbXM3NzIyc2UvbXM3NzIyc2UuYworKysgYi9ib2FyZC9tczc3MjJzZS9tczc3MjJzZS5jCkBAIC00Nyw5ICs0Nyw5IEBACiB7CiAJREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLQlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ0ZHX1NEUkFNX0JBU0U7Ci0JZ2QtPmJkLT5iaV9tZW1zaXplID0gQ0ZHX1NEUkFNX1NJWkU7Ci0JcHJpbnRmKCJEUkFNOiAgJWRNQlxuIiwgQ0ZHX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKKwlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRTsKKwlwcmludGYoIkRSQU06ICAlZE1CXG4iLCBDT05GSUdfU1lTX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvbXM3NzUwc2UvbXM3NzUwc2UuYyBiL2JvYXJkL21zNzc1MHNlL21zNzc1MHNlLmMKaW5kZXggZDJkODI0Yy4uMDJmZjBhMyAxMDA2NDQKLS0tIGEvYm9hcmQvbXM3NzUwc2UvbXM3NzUwc2UuYworKysgYi9ib2FyZC9tczc3NTBzZS9tczc3NTBzZS5jCkBAIC0zOSw5ICszOSw5IEBACiB7CiAJREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLQlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ0ZHX1NEUkFNX0JBU0U7Ci0JZ2QtPmJkLT5iaV9tZW1zaXplID0gQ0ZHX1NEUkFNX1NJWkU7Ci0JcHJpbnRmKCJEUkFNOiAgJWRNQlxuIiwgQ0ZHX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKKwlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRTsKKwlwcmludGYoIkRSQU06ICAlZE1CXG4iLCBDT05GSUdfU1lTX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvbXVhczMwMDEvbXVhczMwMDEuYyBiL2JvYXJkL211YXMzMDAxL211YXMzMDAxLmMKaW5kZXggMTU3YzcyZC4uNmIxZTU5ZiAxMDA2NDQKLS0tIGEvYm9hcmQvbXVhczMwMDEvbXVhczMwMDEuYworKysgYi9ib2FyZC9tdWFzMzAwMS9tdWFzMzAwMS5jCkBAIC0yMzIsNyArMjMyLDcgQEAKIAkgKiAgYWNjZXNzaW5nIHRoZSBTRFJBTSB3aXRoIGEgc2luZ2xlLWJ5dGUgdHJhbnNhY3Rpb24uIgogCSAqCiAJICogVGhlIGFwcHJvcHJpYXRlIEJSeC9PUnggcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCB3aGVuIHdlCi0JICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ0ZHX1NEUkFNX0JBU0UuCisJICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogCSAqLwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX1BSRUE7CkBAIC0yNDMsNyArMjQzLDcgQEAKIAkJKmJhc2UgPSBjOwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX01SVzsKLQkqKGJhc2UgKyBDRkdfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCisJKihiYXNlICsgQ09ORklHX1NZU19NUlNfT0ZGUykgPSBjOwkvKiBzZXR0aW5nIE1SIG9uIGFkZHJlc3MgbGluZXMgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9OT1JNIHwgUFNETVJfUkZFTjsKIAkqYmFzZSA9IGM7CkBAIC0yNTYsMzAgKzI1NiwzMCBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgcHNpemU7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCWxvbmcgc2l6ZWxpdHRsZSwgc2l6ZWJpZzsKICNlbmRpZgogCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkvKiA2MHggU0RSQU0gc2V0dXA6CiAJICovCi0Jc2l6ZWxpdHRsZSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl9MSVRUTEUsIENGR19PUjFfTElUVExFLAotCQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOwotCXNpemViaWcgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfQklHLCBDRkdfT1IxX0JJRywKLQkJCQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKKwlzaXplbGl0dGxlID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl9MSVRUTEUsIENPTkZJR19TWVNfT1IxX0xJVFRMRSwKKwkJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CisJc2l6ZWJpZyA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfQklHLCBDT05GSUdfU1lTX09SMV9CSUcsCisJCQkJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCWlmIChzaXplbGl0dGxlIDwgc2l6ZWJpZykgewogCQlwc2l6ZSA9IHNpemViaWc7CiAJfSBlbHNlIHsKLQkJcHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfTElUVExFLCBDRkdfT1IxX0xJVFRMRSwKLQkJCQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKKwkJcHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SX0xJVFRMRSwgQ09ORklHX1NZU19PUjFfTElUVExFLAorCQkJCQkJICAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKIAl9Ci0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCWljYWNoZV9lbmFibGUgKCk7CiAKQEAgLTMyOSw4ICszMjksOCBAQAogCQkJImVycjolc1xuIiwgZmR0X3N0cmVycm9yKG5vZGVvZmZzZXQpKTsKIAl9CiAJLyogdXBkYXRlIEZsYXNoIGFkZHIsIHNpemUgKi8KLQlmbGFzaF9kYXRhWzJdID0gY3B1X3RvX2JlMzIgKENGR19GTEFTSF9CQVNFKTsKLQlmbGFzaF9kYXRhWzNdID0gY3B1X3RvX2JlMzIgKENGR19GTEFTSF9TSVpFKTsKKwlmbGFzaF9kYXRhWzJdID0gY3B1X3RvX2JlMzIgKENPTkZJR19TWVNfRkxBU0hfQkFTRSk7CisJZmxhc2hfZGF0YVszXSA9IGNwdV90b19iZTMyIChDT05GSUdfU1lTX0ZMQVNIX1NJWkUpOwogCW5vZGVvZmZzZXQgPSBmZHRfcGF0aF9vZmZzZXQgKGJsb2IsICIvbG9jYWxidXMiKTsKIAlpZiAobm9kZW9mZnNldCA+PSAwKSB7CiAJCXJldCA9IGZkdF9zZXRwcm9wIChibG9iLCBub2Rlb2Zmc2V0LCAicmFuZ2VzIiwgZmxhc2hfZGF0YSwKZGlmZiAtLWdpdCBhL2JvYXJkL211Y21jNTIvbXVjbWM1Mi5jIGIvYm9hcmQvbXVjbWM1Mi9tdWNtYzUyLmMKaW5kZXggNzQ0MTdjNC4uNzE4MWJkOCAxMDA2NDQKLS0tIGEvYm9hcmQvbXVjbWM1Mi9tdWNtYzUyLmMKKysrIGIvYm9hcmQvbXVjbWM1Mi9tdWNtYzUyLmMKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiBzdGF0aWMgdm9pZCBzZHJhbV9zdGFydCAoaW50IGhpX2FkZHIpCiB7CiAJbG9uZyBoaV9hZGRyX2JpdCA9IGhpX2FkZHIgPyAweDAxMDAwMDAwIDogMDsKQEAgLTg2LDcgKzg2LDcgQEAKIAogLyoKICAqIEFUVEVOVElPTjogQWx0aG91Z2ggcGFydGlhbGx5IHJlZmVyZW5jZWQgaW5pdGRyYW0gZG9lcyBOT1QgbWFrZSByZWFsIHVzZQotICoJICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKgkgICAgICB1c2Ugb2YgQ09ORklHX1NZU19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENPTkZJR19TWVNfU0RSQU1fQkFTRQogICoJICAgICAgaXMgc29tZXRoaW5nIGVsc2UgdGhhbiAweDAwMDAwMDAwLgogICovCiAKQEAgLTk2LDcgKzk2LDcgQEAKIAl1bG9uZyBkcmFtc2l6ZTIgPSAwOwogCXVpbnQgc3ZyLCBwdnI7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgdGVzdDEsIHRlc3QyOwogCiAJLyogc2V0dXAgU0RSQU0gY2hpcCBzZWxlY3RzICovCkBAIC0xMTcsOSArMTE3LDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MwIG9ubHkgKi8KIAlzZHJhbV9zdGFydCAoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUgKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplICgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUgKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplICgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQgKDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMTQ2LDEwICsxNDYsMTAgQEAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMSBvbmx5ICovCiAJaWYgKCFkcmFtc2l6ZSkKIAkJc2RyYW1fc3RhcnQgKDApOwotCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUgKChsb25nICopKENGR19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDIwMDAwMDAwKTsKKwl0ZXN0MiA9IHRlc3QxID0gZ2V0X3JhbV9zaXplICgobG9uZyAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4MjAwMDAwMDApOwogCWlmICghZHJhbXNpemUpIHsKIAkJc2RyYW1fc3RhcnQgKDEpOwotCQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSAoKGxvbmcgKikoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4MjAwMDAwMDApOworCQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSAoKGxvbmcgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDIwMDAwMDAwKTsKIAl9CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQgKDApOwpAQCAtMTcxLDcgKzE3MSw3IEBACiAJCW91dF9iZTMyICgodW5zaWduZWQgX19pb21lbSAqKU1QQzVYWFhfU0RSQU1fQ1MxQ0ZHLCBkcmFtc2l6ZSk7IC8qIGRpc2FibGVkICovCiAJfQogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiByZXRyaWV2ZSBzaXplIG9mIG1lbW9yeSBjb25uZWN0ZWQgdG8gU0RSQU0gQ1MwICovCiAJZHJhbXNpemUgPSBpbl9iZTMyICgodW5zaWduZWQgX19pb21lbSAqKU1QQzVYWFhfU0RSQU1fQ1MwQ0ZHKSAmIDB4RkY7CkBAIC0xODksNyArMTg5LDcgQEAKIAkJZHJhbXNpemUyID0gMDsKIAl9CiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJIC8qCiAJICogT24gTVBDNTIwMEIgd2UgbmVlZCB0byBzZXQgdGhlIHNwZWNpYWwgY29uZmlndXJhdGlvbiBkZWxheSBpbiB0aGUKQEAgLTIzOSw4ICsyMzksOCBAQAogCiBzdHJ1Y3Qga2JkX2RhdGFfdCogZ2V0X2tleXMgKHN0cnVjdCBrYmRfZGF0YV90ICprYmRfZGF0YSkKIHsKLQlrYmRfZGF0YS0+czEgPSBpbl84ICgodm9sYXRpbGUgdWNoYXIqKUNGR19TVEFUVVMxX0JBU0UpOwotCWtiZF9kYXRhLT5zMiA9IGluXzggKCh2b2xhdGlsZSB1Y2hhciopQ0ZHX1NUQVRVUzJfQkFTRSk7CisJa2JkX2RhdGEtPnMxID0gaW5fOCAoKHZvbGF0aWxlIHVjaGFyKilDT05GSUdfU1lTX1NUQVRVUzFfQkFTRSk7CisJa2JkX2RhdGEtPnMyID0gaW5fOCAoKHZvbGF0aWxlIHVjaGFyKilDT05GSUdfU1lTX1NUQVRVUzJfQkFTRSk7CiAKIAlyZXR1cm4ga2JkX2RhdGE7CiB9CkBAIC0zMzksMTQgKzMzOSwxNCBAQAogCWZyZWUgKHN0cik7CiAjZW5kaWYgLyogQ09ORklHX1BSRUJPT1QgKi8KIAotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4MzgpLCAnICcpOwotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4MzkpLCAnICcpOwotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4M0EpLCAnICcpOwotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4M0IpLCAnICcpOwotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4M0MpLCAnICcpOwotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4M0QpLCAnICcpOwotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4M0UpLCAnICcpOwotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4M0YpLCAnICcpOworCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDM4KSwgJyAnKTsKKwlvdXRfOCAoKHZvbGF0aWxlIHVjaGFyICopKENPTkZJR19TWVNfRElTUExBWV9CQVNFICsgMHgzOSksICcgJyk7CisJb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDT05GSUdfU1lTX0RJU1BMQVlfQkFTRSArIDB4M0EpLCAnICcpOworCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDNCKSwgJyAnKTsKKwlvdXRfOCAoKHZvbGF0aWxlIHVjaGFyICopKENPTkZJR19TWVNfRElTUExBWV9CQVNFICsgMHgzQyksICcgJyk7CisJb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDT05GSUdfU1lTX0RJU1BMQVlfQkFTRSArIDB4M0QpLCAnICcpOworCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDNFKSwgJyAnKTsKKwlvdXRfOCAoKHZvbGF0aWxlIHVjaGFyICopKENPTkZJR19TWVNfRElTUExBWV9CQVNFICsgMHgzRiksICcgJyk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTM1NCwyNSArMzU0LDI1IEBACiBpbnQgYm9hcmRfZWFybHlfaW5pdF9yICh2b2lkKQogewogCW91dF9iZTMyICgodW5zaWduZWQgX19pb21lbSAqKU1QQzVYWFhfQk9PVENTX0NGRywgaW5fYmUzMiAoKHVuc2lnbmVkIF9faW9tZW0gKilNUEM1WFhYX0JPT1RDU19DRkcpICYgfjB4MSk7Ci0Jb3V0X2JlMzIgKCh1bnNpZ25lZCBfX2lvbWVtICopTVBDNVhYWF9CT09UQ1NfU1RBUlQsIFNUQVJUX1JFRyhDRkdfRkxBU0hfQkFTRSkpOwotCW91dF9iZTMyICgodW5zaWduZWQgX19pb21lbSAqKU1QQzVYWFhfQ1MwX1NUQVJULCBTVEFSVF9SRUcoQ0ZHX0ZMQVNIX0JBU0UpKTsKKwlvdXRfYmUzMiAoKHVuc2lnbmVkIF9faW9tZW0gKilNUEM1WFhYX0JPT1RDU19TVEFSVCwgU1RBUlRfUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRSkpOworCW91dF9iZTMyICgodW5zaWduZWQgX19pb21lbSAqKU1QQzVYWFhfQ1MwX1NUQVJULCBTVEFSVF9SRUcoQ09ORklHX1NZU19GTEFTSF9CQVNFKSk7CiAJb3V0X2JlMzIgKCh1bnNpZ25lZCBfX2lvbWVtICopTVBDNVhYWF9CT09UQ1NfU1RPUCwKLQkJU1RPUF9SRUcoQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9TSVpFKSk7CisJCVNUT1BfUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9TSVpFKSk7CiAJb3V0X2JlMzIgKCh1bnNpZ25lZCBfX2lvbWVtICopTVBDNVhYWF9DUzBfU1RPUCwKLQkJU1RPUF9SRUcoQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9TSVpFKSk7CisJCVNUT1BfUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9TSVpFKSk7CiAJcmV0dXJuIDA7CiB9CiAKIGludCBsYXN0X3N0YWdlX2luaXQgKHZvaWQpCiB7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzOCksICdNJyk7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzOSksICdVJyk7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzQSksICdDJyk7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzQiksICcuJyk7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzQyksICdNJyk7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzRCksICdDJyk7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzRSksICc1Jyk7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzRiksICcyJyk7CisJb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDT05GSUdfU1lTX0RJU1BMQVlfQkFTRSArIDB4MzgpLCAnTScpOworCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDM5KSwgJ1UnKTsKKwlvdXRfOCAoKHZvbGF0aWxlIHVjaGFyICopKENPTkZJR19TWVNfRElTUExBWV9CQVNFICsgMHgzQSksICdDJyk7CisJb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDT05GSUdfU1lTX0RJU1BMQVlfQkFTRSArIDB4M0IpLCAnLicpOworCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDNDKSwgJ00nKTsKKwlvdXRfOCAoKHZvbGF0aWxlIHVjaGFyICopKENPTkZJR19TWVNfRElTUExBWV9CQVNFICsgMHgzRCksICdDJyk7CisJb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDT05GSUdfU1lTX0RJU1BMQVlfQkFTRSArIDB4M0UpLCAnNScpOworCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDNGKSwgJzInKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbXVuaWNlcy9tdW5pY2VzLmMgYi9ib2FyZC9tdW5pY2VzL211bmljZXMuYwppbmRleCAxNjJmODljLi5jMTIwN2YxIDEwMDY0NAotLS0gYS9ib2FyZC9tdW5pY2VzL211bmljZXMuYworKysgYi9ib2FyZC9tdW5pY2VzL211bmljZXMuYwpAQCAtMjcsNyArMjcsNyBAQAogCiAjaW5jbHVkZSAibXQ0OGxjMTZtMTZhMi03NS5oIgogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogc3RhdGljIHZvaWQgc2RyYW1fc3RhcnQgKGludCBoaV9hZGRyKQogewogCWxvbmcgaGlfYWRkcl9iaXQgPSBoaV9hZGRyID8gMHgwMTAwMDAwMCA6IDA7CkBAIC03MCw3ICs3MCw3IEBACiAKIC8qCiAgKiBBVFRFTlRJT046IEFsdGhvdWdoIHBhcnRpYWxseSByZWZlcmVuY2VkIGluaXRkcmFtIGRvZXMgTk9UIG1ha2UgcmVhbCB1c2UKLSAqICAgICAgICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKiAgICAgICAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKiAgICAgICAgICAgIGlzIHNvbWV0aGluZyBlbHNlIHRoYW4gMHgwMDAwMDAwMC4KICAqLwogCkBAIC03OCw3ICs3OCw3IEBACiB7CiAJdWxvbmcgZHJhbXNpemUgPSAwOwogCXVsb25nIGRyYW1zaXplMiA9IDA7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHRlc3QxLCB0ZXN0MjsKIAogCS8qIHNldHVwIFNEUkFNIGNoaXAgc2VsZWN0cyAqLwpAQCAtOTksOSArOTksOSBAQAogCiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzAgb25seSAqLwogCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QxID0gKHVsb25nIClnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHgxMDAwMDAwMCk7CisJdGVzdDEgPSAodWxvbmcgKWdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgxMDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSAodWxvbmcgKWdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDEwMDAwMDAwKTsKKwl0ZXN0MiA9ICh1bG9uZyApZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDEwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKIAkJZHJhbXNpemUgPSB0ZXN0MTsKQEAgLTEyMSw3ICsxMjEsNyBAQAogCQkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyA9IDA7IC8qIGRpc2FibGVkICovCiAJfQogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiByZXRyaWV2ZSBzaXplIG9mIG1lbW9yeSBjb25uZWN0ZWQgdG8gU0RSQU0gQ1MwICovCiAJZHJhbXNpemUgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyAmIDB4RkY7CkBAIC0xMzksNyArMTM5LDcgQEAKIAkJZHJhbXNpemUyID0gMDsKIAl9CiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJcmV0dXJuIGRyYW1zaXplICsgZHJhbXNpemUyOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbXVzZW5raS9mbGFzaC5jIGIvYm9hcmQvbXVzZW5raS9mbGFzaC5jCmluZGV4IDQ2MDM1ZDcuLjQwOTY1YmUgMTAwNjQ0Ci0tLSBhL2JvYXJkL211c2Vua2kvZmxhc2guYworKysgYi9ib2FyZC9tdXNlbmtpL2ZsYXNoLmMKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKICMgaWZuZGVmICBDT05GSUdfRU5WX0FERFIKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICMgZW5kaWYKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTQ2LDcgKzQ2LDcgQEAKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC0xMTgsMTUgKzExOCwxNSBAQAogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCiAJLyogU3RhdGljIEZMQVNIIEJhbmsgY29uZmlndXJhdGlvbiBoZXJlIC0gRklYTUUgWFhYICovCiAKLQlERUJVR0YoIlxuIyMgR2V0IGZsYXNoIGJhbmsgMSBzaXplIEAgMHglMDh4XG4iLENGR19GTEFTSF9CQVNFMF9QUkVMSU0pOworCURFQlVHRigiXG4jIyBHZXQgZmxhc2ggYmFuayAxIHNpemUgQCAweCUwOHhcbiIsQ09ORklHX1NZU19GTEFTSF9CQVNFMF9QUkVMSU0pOwogCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9jaGFyICopQ0ZHX0ZMQVNIX0JBU0UwX1BSRUxJTSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfY2hhciAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRTBfUFJFTElNLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggb24gQmFuayAwOiAiCkBAIC0xMzUsMjEgKzEzNSwyMSBAQAogCQkJc2l6ZV9iMCwgc2l6ZV9iMDw8MjApOwogCX0KIAotCURFQlVHRigiIyMgR2V0IGZsYXNoIGJhbmsgMiBzaXplIEAgMHglMDh4XG4iLENGR19GTEFTSF9CQVNFMV9QUkVMSU0pOwotCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfY2hhciAqKUNGR19GTEFTSF9CQVNFMV9QUkVMSU0sICZmbGFzaF9pbmZvWzFdKTsKKwlERUJVR0YoIiMjIEdldCBmbGFzaCBiYW5rIDIgc2l6ZSBAIDB4JTA4eFxuIixDT05GSUdfU1lTX0ZMQVNIX0JBU0UxX1BSRUxJTSk7CisJc2l6ZV9iMSA9IGZsYXNoX2dldF9zaXplKCh2dV9jaGFyICopQ09ORklHX1NZU19GTEFTSF9CQVNFMV9QUkVMSU0sICZmbGFzaF9pbmZvWzFdKTsKIAogCURFQlVHRigiIyMgUHJlbGltLiBGbGFzaCBiYW5rIHNpemVzOiAlMDhseCArIDB4JTA4bHhcbiIsc2l6ZV9iMCxzaXplX2IxKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IHNpemVfYjA7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCi0JREVCVUdGKCJwcm90ZWN0IG1vbml0b3IgJXggQCAleFxuIiwgQ0ZHX01PTklUT1JfQkFTRSwgbW9uaXRvcl9mbGFzaF9sZW4pOworI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQorCURFQlVHRigicHJvdGVjdCBtb25pdG9yICV4IEAgJXhcbiIsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCBtb25pdG9yX2ZsYXNoX2xlbik7CiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0xNjQsMTMgKzE2NCwxMyBAQAogCiAJaWYgKHNpemVfYjEpIHsKIAkJZmxhc2hfaW5mb1sxXS5zaXplID0gc2l6ZV9iMTsKLQkJZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOworCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkJICAgICAgJmZsYXNoX2luZm9bMV0pOwogI2VuZGlmCiAKQEAgLTM0MywxMCArMzQzLDEwIEBACiAKIAl9CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmICgiKiogRVJST1I6IHNlY3RvciBjb3VudCAlZCA+IG1heCAoJWQpICoqXG4iLAotCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOwotCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSBCUygweEZGKTsJCS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC00MTQsNyArNDE0LDcgQEAKIAkJCXVkZWxheSAoMTAwMCk7CiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9IEJTKCphZGRyKSkgJiBCWVRFTUUoMHgwMDgwMDA4MCkpICE9IEJZVEVNRSgweDAwODAwMDgwKSkgewotCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJKmFkZHIgPSBCUygweEIwKTsgLyogc3VzcGVuZCBlcmFzZQkgICovCiAJCQkJCSphZGRyID0gQlMoMHhGRik7IC8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwpAQCAtNDk3LDcgKzQ5Nyw3IEBACiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCiAJd2hpbGUgKCgoc3RhdHVzID0gQlMoKmFkZHIpKSAmIEJZVEVNRSgweDAwODAwMDgwKSkgIT0gQllURU1FKDB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gQlMoMHhGRik7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gMTsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbXVzZW5raS9tdXNlbmtpLmMgYi9ib2FyZC9tdXNlbmtpL211c2Vua2kuYwppbmRleCA2ZjllZWIyLi4zMGI5NWNlIDEwMDY0NAotLS0gYS9ib2FyZC9tdXNlbmtpL211c2Vua2kuYworKysgYi9ib2FyZC9tdXNlbmtpL211c2Vua2kuYwpAQCAtNTMsNyArNTMsNyBAQAogCWxvbmcgbWVhcjE7CiAJbG9uZyBlbWVhcjE7CiAKLQlzaXplID0gZ2V0X3JhbV9zaXplKENGR19TRFJBTV9CQVNFLCBDRkdfTUFYX1JBTV9TSVpFKTsKKwlzaXplID0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUpOwogCiAJbmV3X2JhbmswX2VuZCA9IHNpemUgLSAxOwogCW1lYXIxID0gbXBjODI0eF9tcGMxMDdfZ2V0cmVnKE1FQVIxKTsKZGlmZiAtLWdpdCBhL2JvYXJkL212Ymx1ZS9mbGFzaC5jIGIvYm9hcmQvbXZibHVlL2ZsYXNoLmMKaW5kZXggMGMwNzM4Yy4uMmQ2YWNmNSAxMDA2NDQKLS0tIGEvYm9hcmQvbXZibHVlL2ZsYXNoLmMKKysrIGIvYm9hcmQvbXZibHVlL2ZsYXNoLmMKQEAgLTMxLDcgKzMxLDcgQEAKIAkjZGVmaW5lIG12ZGVidWcocCkKICNlbmRpZgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogI2RlZmluZSBGTEFTSF9CVVNfV0lEVEgJCTgKIApAQCAtNjUsNyArNjUsNyBAQAogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMDsKIAlpbnQgaTsKIAotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC00MTYsNyArNDE2LDcgQEAKIAlhZGRyID0gKEZEVCAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAogCXdoaWxlICgoYWRkclswXSAmIEVSQVNFX0NPTkZJUk1fREFUQSkgIT0gRVJBU0VfQ09ORklSTV9EQVRBKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC01NTQsNyArNTU0LDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJYWRkciA9ICh2dV9jaGFyICopZGVzdDsKIAl3aGlsZSAoKCAoKmFkZHIpICYgV1JJVEVfQ09ORklSTV9EQVRBKSAhPSAoZGF0YSAmIFdSSVRFX0NPTkZJUk1fREFUQSkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcHJpbnRmKCIgKioqIEVSUk9SOiBGbGFzaCB3cml0ZSB0aW1lb3V0ICEiKTsKIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL212Ymx1ZS9tdmJsdWUuYyBiL2JvYXJkL212Ymx1ZS9tdmJsdWUuYwppbmRleCAwNTZmZWU3Li42OWFiYjA2IDEwMDY0NAotLS0gYS9ib2FyZC9tdmJsdWUvbXZibHVlLmMKKysrIGIvYm9hcmQvbXZibHVlL212Ymx1ZS5jCkBAIC0zOCw4ICszOCw4IEBACiAKIHZvaWQgaW5pdF8ybmRfRFVBUlQgKHZvaWQpCiB7Ci0JTlMxNjU1MF90IGNvbnNvbGUgPSAoTlMxNjU1MF90KSBDRkdfTlMxNjU1MF9DT00yOwotCWludCBjbG9ja19kaXZpc29yID0gQ0ZHX05TMTY1NTBfQ0xLIC8gMTYgLyBDT05GSUdfQkFVRFJBVEU7CisJTlMxNjU1MF90IGNvbnNvbGUgPSAoTlMxNjU1MF90KSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMjsKKwlpbnQgY2xvY2tfZGl2aXNvciA9IENPTkZJR19TWVNfTlMxNjU1MF9DTEsgLyAxNiAvIENPTkZJR19CQVVEUkFURTsKIAogCSoodTggKikgKDB4ZmMwMDQ1MTEpID0gMHgxOwogCU5TMTY1NTBfaW5pdCAoY29uc29sZSwgY2xvY2tfZGl2aXNvcik7CkBAIC04NCw3ICs4NCw3IEBACiAJbG9uZyBtZWFyMTsKIAlsb25nIGVtZWFyMTsKIAotCXNpemUgPSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIENGR19NQVhfUkFNX1NJWkUpOworCXNpemUgPSBnZXRfcmFtX3NpemUoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX01BWF9SQU1fU0laRSk7CiAKIAluZXdfYmFuazBfZW5kID0gc2l6ZSAtIDE7CiAJbWVhcjEgPSBtcGM4MjR4X21wYzEwN19nZXRyZWcoTUVBUjEpOwpAQCAtMTQ3LDEyICsxNDcsMTIgQEAKIHZvaWQgZHVhcnRfc2V0dXAgKHUzMiBiYXNlLCB1MTYgZGl2aXNvcikKIHsKIAlwcmludGYgKCJkdWFydCBzZXR1cCAuLi4iKTsKLQlvdXRfOCAoKHU4ICopIChDRkdfSVNBX0lPICsgYmFzZSArIDMpLCAweDgwKTsKLQlvdXRfOCAoKHU4ICopIChDRkdfSVNBX0lPICsgYmFzZSArIDApLCBkaXZpc29yICYgMHhmZik7Ci0Jb3V0XzggKCh1OCAqKSAoQ0ZHX0lTQV9JTyArIGJhc2UgKyAxKSwgZGl2aXNvciA+PiA4KTsKLQlvdXRfOCAoKHU4ICopIChDRkdfSVNBX0lPICsgYmFzZSArIDMpLCAweDAzKTsKLQlvdXRfOCAoKHU4ICopIChDRkdfSVNBX0lPICsgYmFzZSArIDQpLCAweDAzKTsKLQlvdXRfOCAoKHU4ICopIChDRkdfSVNBX0lPICsgYmFzZSArIDIpLCAweDA3KTsKKwlvdXRfOCAoKHU4ICopIChDT05GSUdfU1lTX0lTQV9JTyArIGJhc2UgKyAzKSwgMHg4MCk7CisJb3V0XzggKCh1OCAqKSAoQ09ORklHX1NZU19JU0FfSU8gKyBiYXNlICsgMCksIGRpdmlzb3IgJiAweGZmKTsKKwlvdXRfOCAoKHU4ICopIChDT05GSUdfU1lTX0lTQV9JTyArIGJhc2UgKyAxKSwgZGl2aXNvciA+PiA4KTsKKwlvdXRfOCAoKHU4ICopIChDT05GSUdfU1lTX0lTQV9JTyArIGJhc2UgKyAzKSwgMHgwMyk7CisJb3V0XzggKCh1OCAqKSAoQ09ORklHX1NZU19JU0FfSU8gKyBiYXNlICsgNCksIDB4MDMpOworCW91dF84ICgodTggKikgKENPTkZJR19TWVNfSVNBX0lPICsgYmFzZSArIDIpLCAweDA3KTsKIAlwcmludGYgKCJkb25lXG4iKTsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvbXgxYWRzL3N5bmNmbGFzaC5jIGIvYm9hcmQvbXgxYWRzL3N5bmNmbGFzaC5jCmluZGV4IDBmZmMzNzguLjQ3ZjYxM2MgMTAwNjQ0Ci0tLSBhL2JvYXJkL214MWFkcy9zeW5jZmxhc2guYworKysgYi9ib2FyZC9teDFhZHMvc3luY2ZsYXNoLmMKQEAgLTMxLDcgKzMxLDcgQEAKIAogLyogNE14MTZ4MiBJQU09MCBDU0QxICovCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAvKiAgRm9sbG93aW5nIFNldHRpbmcgaXMgZm9yIENTRDEJKi8KICNkZWZpbmUgU0ZDVEwJCQkweDAwMjIxMDA0CkBAIC00Niw3ICs0Niw3IEBACiAjZGVmaW5lIENNRF9MQ1IJCQkoQ01EX05PUk1BTCArIDB4NjAwMDAwMDApCS8qIExDUiBDb21tYW5kCQkJKi8KICNkZWZpbmUgQ01EX1BST0dSQU0JCShDTURfTk9STUFMICsgMHg3MDAwMDAwMCkKIAotI2RlZmluZSBNT0RFX1JFR19WQUwJCShDRkdfRkxBU0hfQkFTRSsweDAwMDhDQzAwKQkvKiBDYXMgTGF0ZW5jeSAzCQkqLworI2RlZmluZSBNT0RFX1JFR19WQUwJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UrMHgwMDA4Q0MwMCkJLyogQ2FzIExhdGVuY3kgMwkJKi8KIAogLyogTENSIENvbW1hbmQgKi8KICNkZWZpbmUgTENSX1JFQURTVEFUVVMJCSgweDAwMDFDMDAwKQkJCS8qIDB4NzAJCQkJKi8KQEAgLTYwLDEyICs2MCwxMiBAQAogCXUzMiB0bXAsdG1wMTsKIAogCXJlZ19TRkNUTAk9IENNRF9QUk9HUkFNOwotCXRtcAkJPSBfX1JFRyhDRkdfRkxBU0hfQkFTRSk7CisJdG1wCQk9IF9fUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRSk7CiAKIAlyZWdfU0ZDVEwJPSBDTURfTk9STUFMOwogCiAJcmVnX1NGQ1RMCT0gQ01EX0xDUjsJCQkvKiBBY3RpdmF0ZSBMQ1IgTW9kZQkJKi8KLQl0bXAxCQk9IF9fUkVHKENGR19GTEFTSF9CQVNFICsgTENSX1NSX0NMRUFSKTsKKwl0bXAxCQk9IF9fUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIExDUl9TUl9DTEVBUik7CiAKIAlyZXR1cm4gdG1wOwogfQpAQCAtOTYsNyArOTYsNyBAQAogCXUzMiB0bXA7CiAKIAlyZWdfU0ZDVEwJPSBDTURfUFJFQzsJCQkvKiBTZXQgUHJlY2hhcmdlIENvbW1hbmQJKi8KLQl0bXAJCT0gX19SRUcoQ0ZHX0ZMQVNIX0JBU0UgKyBTWU5DRkxBU0hfQTEwKTsgLyogSXNzdWUgUHJlY2hhcmdlIEFsbCBDb21tYW5kICovCisJdG1wCQk9IF9fUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIFNZTkNGTEFTSF9BMTApOyAvKiBJc3N1ZSBQcmVjaGFyZ2UgQWxsIENvbW1hbmQgKi8KIH0KIAogLyogc2V0IFN5bmNGbGFzaCB0byBub3JtYWwgbW9kZQkJCSovCkBAIC0xMzAsMTAgKzEzMCwxMCBAQAogCVNGX1ByZWNoYXJnZUFsbCgpOwogCiAJcmVnX1NGQ1RMCT0gQ01EX0xDUjsJCQkvKiBTZXQgdG8gTENSIG1vZGUJCSovCi0JX19SRUcoQ0ZHX0ZMQVNIX0JBU0UgKyBMQ1JfRVJBU0VfTlZNT0RFKSAgPSAwOwkvKiBJc3N1ZSBFcmFzZSBOdm1vZGUgUmVnIENvbW1hbmQgKi8KKwlfX1JFRyhDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBMQ1JfRVJBU0VfTlZNT0RFKSAgPSAwOwkvKiBJc3N1ZSBFcmFzZSBOdm1vZGUgUmVnIENvbW1hbmQgKi8KIAogCXJlZ19TRkNUTAk9IENNRF9OT1JNQUw7CQkJLyogUmV0dXJuIHRvIE5vcm1hbCBtb2RlCSovCi0JX19SRUcoQ0ZHX0ZMQVNIX0JBU0UgKyBMQ1JfRVJBU0VfTlZNT0RFKSA9IDB4QzBDMEMwQzA7CS8qIENvbmZpcm0JCSovCisJX19SRUcoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgTENSX0VSQVNFX05WTU9ERSkgPSAweEMwQzBDMEMwOwkvKiBDb25maXJtCQkqLwogCiAJd2hpbGUoIVNGX1JlYWR5KCkpOwogfQpAQCAtMTQyLDEwICsxNDIsMTAgQEAKIAlTRl9QcmVjaGFyZ2VBbGwoKTsKIAogCXJlZ19TRkNUTAk9IENNRF9MQ1I7CQkJLyogU2V0IHRvIExDUiBtb2RlCQkqLwotCV9fUkVHKENGR19GTEFTSF9CQVNFK0xDUl9QUk9HX05WTU9ERSkgPSAwOwkvKiBJc3N1ZSBQcm9ncmFtIE52bW9kZSByZWcgY29tbWFuZCAqLworCV9fUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRStMQ1JfUFJPR19OVk1PREUpID0gMDsJLyogSXNzdWUgUHJvZ3JhbSBOdm1vZGUgcmVnIGNvbW1hbmQgKi8KIAogCXJlZ19TRkNUTAk9IENNRF9OT1JNQUw7CQkJLyogUmV0dXJuIHRvIE5vcm1hbCBtb2RlCSovCi0JX19SRUcoQ0ZHX0ZMQVNIX0JBU0UrTENSX1BST0dfTlZNT0RFKSA9IDB4QzBDMEMwQzA7CS8qIENvbmZpcm0gbm90IG5lZWRlZAkqLworCV9fUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRStMQ1JfUFJPR19OVk1PREUpID0gMHhDMEMwQzBDMDsJLyogQ29uZmlybSBub3QgbmVlZGVkCSovCiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAtMTY5LDE3ICsxNjksMTcgQEAKIAlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkCT0gIEZMQVNIX01BTl9NVCB8IEZMQVNIX01UMjhTNE0xNkxDOwogCiAJZmxhc2hfaW5mb1tpXS5zaXplCT0gRkxBU0hfQkFOS19TSVpFOwotCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAotCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAKIAlmb3IgKGogPSAwOyBqIDwgZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQ7IGorKykgewotCQlmbGFzaF9pbmZvW2ldLnN0YXJ0W2pdID0gQ0ZHX0ZMQVNIX0JBU0UgKyBqICogMHgwMDEwMDAwMDsKKwkJZmxhc2hfaW5mb1tpXS5zdGFydFtqXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIGogKiAweDAwMTAwMDAwOwogCX0KIAogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCUNGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULApAQCAtMjgxLDcgKzI4MSw3IEBACiAJCVNGX052bW9kZUVyYXNlKCk7CiAJCVNGX052bW9kZVdyaXRlKCk7CiAKLQkJU0ZfRXJhc2UoQ0ZHX0ZMQVNIX0JBU0UgKyAoMHgwMTAwMDAwICogc2VjdCkpOworCQlTRl9FcmFzZShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMHgwMTAwMDAwICogc2VjdCkpOwogCQlTRl9Ob3JtYWwoKTsKIAogCQlwcmludGYoIm9rLlxuIik7CmRpZmYgLS1naXQgYS9ib2FyZC9teDFmczIvZmxhc2guYyBiL2JvYXJkL214MWZzMi9mbGFzaC5jCmluZGV4IDhiZTBmNDkuLmRhNGViZTYgMTAwNjQ0Ci0tLSBhL2JvYXJkL214MWZzMi9mbGFzaC5jCisrKyBiL2JvYXJkL214MWZzMi9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRSBNWDFGUzJfRkxBU0hfQkFOS19TSVpFCiAjZGVmaW5lIE1BSU5fU0VDVF9TSVpFICBNWDFGUzJfRkxBU0hfU0VDVF9TSVpFCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgKi8KIAogLyoKICAqIE5PVEUgLSBDT05GSUdfRkxBU0hfMTZCSVQgbWVhbnMgdGhlIENQVSBpbnRlcmZhY2UgaXMgMTYtYml0LCBpdApAQCAtNjIsNyArNjIsNyBAQAogc3RhdGljIGludCB3cml0ZV93b3JkX2ludGVsKGZsYXNoX2luZm9fdCAqIGluZm8sIEZQV1YgKiBkZXN0LCBGUFcgZGF0YSk7CiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfYW1kKGZsYXNoX2luZm9fdCAqIGluZm8sIEZQV1YgKiBkZXN0LCBGUFcgZGF0YSk7CiAjZGVmaW5lIHdyaXRlX3dvcmQoaW4sIGRlLCBkYSkgICB3cml0ZV93b3JkX2FtZChpbiwgZGUsIGRhKQotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiBzdGF0aWMgdm9pZCBmbGFzaF9zeW5jX3JlYWxfcHJvdGVjdChmbGFzaF9pbmZvX3QgKiBpbmZvKTsKICNlbmRpZgogCkBAIC03NywxNCArNzcsMTQgQEAKIAlpbnQgaSwgajsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQl1bG9uZyBmbGFzaGJhc2UgPSAwOwogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0KIAkJICAgIChGTEFTSF9NQU5fQU1EICYgRkxBU0hfVkVORE1BU0spIHwKIAkJICAgIChGTEFTSF9BTTY0MFUgJiBGTEFTSF9UWVBFTUFTSyk7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IEZMQVNIX0JBTktfU0laRTsKLQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAJCXN3aXRjaCAoaSkgewogCQljYXNlIDA6CiAJCQlmbGFzaGJhc2UgPSBNWDFGUzJfRkxBU0hfQkFTRTsKQEAgLTEwMSw4ICsxMDEsOCBAQAogCiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfRkxBU0hfQkFTRSwKLQkJICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyBfYnNzX3N0YXJ0IC0gX2FybWJvb3Rfc3RhcnQsCisJCSAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgX2Jzc19zdGFydCAtIF9hcm1ib290X3N0YXJ0LAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCkBAIC0zODksNyArMzg5LDcgQEAKIH0KICNlbmRpZiAvKiAwICovCiAKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKQEAgLTUyOCw3ICs1MjgsNyBAQAogCQl1ZGVsYXkoMTAwMCk7CiAKIAkJd2hpbGUgKCgqYWRkciAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJCWlmICgobm93ID0gZ2V0X3RpbWVyKDApKSAtIHN0YXJ0ID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCWlmICgobm93ID0gZ2V0X3RpbWVyKDApKSAtIHN0YXJ0ID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAogCQkJCWlmIChpbnRlbCkgewpAQCAtNzIwLDcgKzcyMCw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXdoaWxlIChyZXMgPT0gMAogCSAgICAgICAmJiAoKmRlc3QgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoZGF0YSAmIChGUFcpIDB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoMCkgLSBzdGFydCA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoMCkgLSBzdGFydCA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmRlc3QgPSAoRlBXKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAJCQlwcmludGYoIlNIQSB0aW1lb3V0XG4iKTsKIAkJCXJlcyA9IDE7CkBAIC03NjgsNyArNzY4LDcgQEAKIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAogCXdoaWxlIChyZXMgPT0gMCAmJiAoKmRlc3QgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSpkZXN0ID0gKEZQVykgMHgwMEIwMDBCMDsJLyogU3VzcGVuZCBwcm9ncmFtICAgICAgKi8KIAkJCXJlcyA9IDE7CiAJCX0KQEAgLTc4Myw3ICs3ODMsNyBAQAogCXJldHVybiAocmVzKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIGludApkaWZmIC0tZ2l0IGEvYm9hcmQvbXgxZnMyL2xvd2xldmVsX2luaXQuUyBiL2JvYXJkL214MWZzMi9sb3dsZXZlbF9pbml0LlMKaW5kZXggNGIyY2I0OC4uNTZhNDgxOSAxMDA2NDQKLS0tIGEvYm9hcmQvbXgxZnMyL2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC9teDFmczIvbG93bGV2ZWxfaW5pdC5TCkBAIC0yOSwxOSArMjksMTkgQEAKIAogLyogQ2hhbmdlIFBFUkNMSzFESVYgdG8gMTQgaWUgMTQrMSAqLwogCWxkcgkJcjAsCT1QQ0RSCi0JbGRyCQlyMSwJPUNGR19QQ0RSX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX1BDRFJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIC8qIHNldCBNQ1UgUExMIENvbnRyb2wgUmVnaXN0ZXIgMCAqLwogCiAJbGRyCQlyMCwJPU1QQ1RMMAotCWxkcgkJcjEsCT1DRkdfTVBDVEwwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX01QQ1RMMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogLyogc2V0IE1DVSBQTEwgQ29udHJvbCBSZWdpc3RlciAxICovCiAKIAlsZHIJCXIwLAk9TVBDVEwxCi0JbGRyCQlyMSwJPUNGR19NUENUTDFfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfTVBDVEwxX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAvKiBzZXQgbXBsbCByZXN0YXJ0IGJpdCAqLwpAQCAtNjMsMTMgKzYzLDEzIEBACiAvKiBzZXQgU3lzdGVtIFBMTCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KIAogCWxkcgkJcjAsCT1TUENUTDAKLQlsZHIJCXIxLAk9Q0ZHX1NQQ1RMMF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19TUENUTDBfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIC8qIHNldCBTeXN0ZW0gUExMIENvbnRyb2wgUmVnaXN0ZXIgMSAqLwogCiAJbGRyCQlyMCwJPVNQQ1RMMQotCWxkcgkJcjEsCT1DRkdfU1BDVEwxX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX1NQQ1RMMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogLyogc2V0IHNwbGwgcmVzdGFydCBiaXQgKi8KQEAgLTg5LDExICs4OSwxMSBAQAogCWJuZQkJMWIKIAogCWxkcgkJcjAsICAgPUNTQ1IKLQlsZHIJCXIxLCAgID1DRkdfQ1NDUl9WQUwKKwlsZHIJCXIxLCAgID1DT05GSUdfU1lTX0NTQ1JfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLCAgID1HUENSCi0JbGRyCQlyMSwgICA9Q0ZHX0dQQ1JfVkFMCisJbGRyCQlyMSwgICA9Q09ORklHX1NZU19HUENSX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAvKgpAQCAtMTIyLDQzICsxMjIsNDMgQEAKIAlNQ1IgcDE1LDAscjAsYzEsYzAsMAogCiAJbGRyCQlyMCwJPUdJVVMoMCkKLQlsZHIJCXIxLAk9Q0ZHX0dJVVNfQV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HSVVTX0FfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9Rk1DUgotCWxkcgkJcjEsCT1DRkdfRk1DUl9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19GTUNSX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUNTMFUKLQlsZHIJCXIxLAk9Q0ZHX0NTMFVfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfQ1MwVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1DUzBMCi0JbGRyCQlyMSwJPUNGR19DUzBMX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0NTMExfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9Q1MxVQotCWxkcgkJcjEsCT1DRkdfQ1MxVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19DUzFVX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUNTMUwKLQlsZHIJCXIxLAk9Q0ZHX0NTMUxfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfQ1MxTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1DUzRVCi0JbGRyCQlyMSwJPUNGR19DUzRVX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0NTNFVfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9Q1M0TAotCWxkcgkJcjEsCT1DRkdfQ1M0TF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19DUzRMX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUNTNVUKLQlsZHIJCXIxLAk9Q0ZHX0NTNVVfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfQ1M1VV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1DUzVMCi0JbGRyCQlyMSwJPUNGR19DUzVMX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0NTNUxfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIC8qIFNEUkFNIFNldHVwICovCmRpZmYgLS1naXQgYS9ib2FyZC9uYzY1MC9mbGFzaC5jIGIvYm9hcmQvbmM2NTAvZmxhc2guYwppbmRleCBkMjNlOTc2Li44YTBlYWI1IDEwMDY0NAotLS0gYS9ib2FyZC9uYzY1MC9mbGFzaC5jCisrKyBiL2JvYXJkL25jNjUwL2ZsYXNoLmMKQEAgLTM0LDE2ICszNCwxNiBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotI2lmbmRlZiBDRkdfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFogKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNpZm5kZWYgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFoKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFogKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgICAgICBPUl9TQ1lfMl9DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAjZW5kaWYKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC05MCwxNSArOTAsMTUgQEAKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMDsKIAlpbnQgaTsKLSNpZmRlZiBDRkdfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaCisjaWZkZWYgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFoKIAlpbnQgc2N5LCB0cmx4LCBmbGFzaF9vcl90aW1pbmcsIGNsa19kaWZmOwogCi0Jc2N5ID0gKENGR19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFogJiBPUl9TQ1lfTVNLKSA+PiA0OwotCWlmIChDRkdfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaICYgT1JfVFJMWCkgeworCXNjeSA9IChDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSF9BVF81ME1IWiAmIE9SX1NDWV9NU0spID4+IDQ7CisJaWYgKENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaICYgT1JfVFJMWCkgewogCQl0cmx4ID0gT1JfVFJMWDsKIAkJc2N5ICo9IDI7CiAJfSBlbHNlCkBAIC0xMzQsMTEgKzEzNCwxMSBAQAogCQlzY3kgPSAxOwogCiAJZmxhc2hfb3JfdGltaW5nID0gKHNjeSA8PCA0KSB8IHRybHggfAotCQkJICAoQ0ZHX09SX1RJTUlOR19GTEFTSF9BVF81ME1IWiAmIH4oT1JfVFJMWCB8IE9SX1NDWV9NU0spKTsKKwkJCSAgKENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaICYgfihPUl9UUkxYIHwgT1JfU0NZX01TSykpOwogI2VuZGlmCiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtMTUxLDIzICsxNTEsMjMgQEAKIAl9CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0jaWZuZGVmIENGR19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFoKLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIE9SX0FNX01TSyk7CisjaWZuZGVmIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaCisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgT1JfQU1fTVNLKTsKICNlbHNlCiAJbWVtY3RsLT5tZW1jX29yMCA9IGZsYXNoX29yX3RpbWluZyB8ICgtc2l6ZV9iMCAmIE9SX0FNX01TSyk7CiAjZW5kaWYKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9NU19HUENNIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfTVNfR1BDTSB8IEJSX1Y7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplICgoRlBXICopIENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplICgoRlBXICopIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJKHZvaWQpIGZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJQ0ZHX01PTklUT1JfQkFTRSwKLQkJCQlDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJCSZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0zMTYsMTAgKzMxNiwxMCBAQAogCQlicmVhazsKIAl9CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmICgiKiogRVJST1I6IHNlY3RvciBjb3VudCAlZCA+IG1heCAoJWQpICoqXG4iLAotCQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0zOTAsNyArMzkwLDcgQEAKIAkJCXVkZWxheSAoMTAwMCk7CiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJCSAgICBpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkgICAgaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CS8qIHN1c3BlbmQgZXJhc2UgICAgICovCiAJCQkJKmFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KQEAgLTUzMCw3ICs1MzAsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAogCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9uYzY1MC9uYzY1MC5jIGIvYm9hcmQvbmM2NTAvbmM2NTAuYwppbmRleCA2NTdhYmM0Li4wNTYyMzBkIDEwMDY0NAotLS0gYS9ib2FyZC9uYzY1MC9uYzY1MC5jCisrKyBiL2JvYXJkL25jNjUwL25jNjUwLmMKQEAgLTEzMCw3ICsxMzAsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZTgsIHNpemU5OwogCWxvbmcgaW50IHNpemVfYjAgPSAwOwpAQCAtMTQ1LDcgKzE0NSw3IEBACiAJICogd2l0aCB0d28gU0RSQU0gYmFua3Mgb3IgZm91ciBjeWNsZXMgZXZlcnkgMzEuMiB1cyB3aXRoIG9uZQogCSAqIGJhbmsuIEl0IHdpbGwgYmUgYWRqdXN0ZWQgYWZ0ZXIgbWVtb3J5IHNpemluZy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzhLOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzhLOwogCiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKQEAgLTE1NCwxMCArMTU0LDEwIEBACiAJICogcHJlbGltaW5hcnkgYWRkcmVzcyAtIHRoZXNlIGhhdmUgdG8gYmUgbW9kaWZpZWQgYWZ0ZXIgdGhlCiAJICogU0RSQU0gc2l6ZSBoYXMgYmVlbiBkZXRlcm1pbmVkLgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfT1IzX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0xNzcsMTQgKzE3NywxNCBAQAogCSAqCiAJICogdHJ5IDggY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOCA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOENPTCwgU0RSQU1fQkFTRTNfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CisJc2l6ZTggPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUl84Q09MLCBTRFJBTV9CQVNFM19QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKIAogCXVkZWxheSAoMTAwMCk7CiAKIAkvKgogCSAqIHRyeSA5IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTkgPSBkcmFtX3NpemUgKENGR19NQU1SXzlDT0wsIFNEUkFNX0JBU0UzX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOworCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwgU0RSQU1fQkFTRTNfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CiAKIAl1ZGVsYXkgKDEwMDApOwogCkBAIC0xOTIsNyArMTkyLDcgQEAKIAkJc2l6ZV9iMCA9IHNpemU5OwogCX0gZWxzZSB7CiAJCXNpemVfYjAgPSBzaXplODsKLQkJbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MOworCQltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MOwogCQl1ZGVsYXkgKDUwMCk7CiAJfQogCkBAIC0yMDIsNyArMjAyLDcgQEAKIAkgKi8KIAlpZiAoKHNpemVfYjAgPCAweDAyMDAwMDAwKSkgewogCQkvKiByZWR1Y2UgdG8gMTUuNiB1cyAoNjIuNCB1cyAvIHF1YWQpICovCi0JCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfNEs7CisJCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzRLOwogCQl1ZGVsYXkgKDEwMDApOwogCX0KIApAQCAtMjEwLDEyICsyMTAsMTIgQEAKIAkgKiBGaW5hbCBtYXBwaW5nCiAJICovCiAKLQltZW1jdGwtPm1lbWNfb3IzID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07Ci0JbWVtY3RsLT5tZW1jX2JyMyA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IzID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOworCW1lbWN0bC0+bWVtY19icjMgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCiAJLyogYWRqdXN0IHJlZnJlc2ggcmF0ZSBkZXBlbmRpbmcgb24gU0RSQU0gdHlwZSwgb25lIGJhbmsgKi8KIAlyZWcgPSBtZW1jdGwtPm1lbWNfbXB0cHI7Ci0JcmVnID4+PSAxOwkJCQkJLyogcmVkdWNlIHRvIENGR19NUFRQUl8xQktfOEsgLyBfNEsgKi8KKwlyZWcgPj49IDE7CQkJCQkvKiByZWR1Y2UgdG8gQ09ORklHX1NZU19NUFRQUl8xQktfOEsgLyBfNEsgKi8KIAltZW1jdGwtPm1lbWNfbXB0cHIgPSByZWc7CiAKIAl1ZGVsYXkgKDEwMDAwKTsKQEAgLTIyNCw3ICsyMjQsNyBAQAogCXVwbWNvbmZpZyAoVVBNQiwgKHVpbnQgKikgbmFuZF9mbGFzaF90YWJsZSwKIAkJCSAgIHNpemVvZiAobmFuZF9mbGFzaF90YWJsZSkgLyBzaXplb2YgKHVpbnQpKTsKIAotCW1lbWN0bC0+bWVtY19tYm1yID0gQ0ZHX01CTVJfTkFORDsKKwltZW1jdGwtPm1lbWNfbWJtciA9IENPTkZJR19TWVNfTUJNUl9OQU5EOwogCiAJcmV0dXJuIChzaXplX2IwKTsKIH0KQEAgLTI0MSw3ICsyNDEsNyBAQAogCiBzdGF0aWMgbG9uZyBpbnQgZHJhbV9zaXplIChsb25nIGludCBtYW1yX3ZhbHVlLCBsb25nIGludCAqYmFzZSwgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKQEAgLTI2OSw3ICsyNjksNyBAQAogCSAgIDAgLSBjcDg1MAogCSAgIDEgLSBrcDg1MgogCSovCi0JcFBhcmFtID0gKGNoYXIqKShDRkdfQ1BMRF9CQVNFKTsKKwlwUGFyYW0gPSAoY2hhciopKENPTkZJR19TWVNfQ1BMRF9CQVNFKTsKIAlpZiggKnBQYXJhbSAhPSAwKQogCQlpQ29tcGF0TW9kZSA9IDE7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL25ldHBob25lL2ZsYXNoLmMgYi9ib2FyZC9uZXRwaG9uZS9mbGFzaC5jCmluZGV4IGNmMGJjMDkuLjg4NTIxMjcgMTAwNjQ0Ci0tLSBhL2JvYXJkL25ldHBob25lL2ZsYXNoLmMKKysrIGIvYm9hcmQvbmV0cGhvbmUvZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC0zOCw3ICszOCw3IEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZTsKICNpZiBDT05GSUdfTkVUUEhPTkVfVkVSU0lPTiA9PSAyCkBAIC00Nyw3ICs0Nyw3IEBACiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAKIAlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikgRkxBU0hfQkFTRTBfUFJFTElNLCAmZmxhc2hfaW5mb1swXSk7CkBAIC01OCwxNyArNTgsMTcgQEAKIAl9CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemUgJiAweEZGRkY4MDAwKTsKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IChtZW1jdGwtPm1lbWNfYnIwICYgfihCUl9CQV9NU0spKTsKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemUgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCAobWVtY3RsLT5tZW1jX2JyMCAmIH4oQlJfQkFfTVNLKSk7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0Jc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopIENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlmbGFzaF9nZXRfb2Zmc2V0cyhDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKQEAgLTkyLDEzICs5MiwxMyBAQAogCQkJcHJpbnRmKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgMSAtIFNpemUgPSAweCUwOGx4ID0gJWxkIE1CXG4iLCBzaXplMSwgc2l6ZTEgPDwgMjApOwogCiAJCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQkJbWVtY3RsLT5tZW1jX29yNCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemUxICYgMHhGRkZGODAwMCk7Ci0JCW1lbWN0bC0+bWVtY19icjQgPSAoQ0ZHX0ZMQVNIX0JBU0U0ICYgQlJfQkFfTVNLKSB8IChtZW1jdGwtPm1lbWNfYnI0ICYgfihCUl9CQV9NU0spKTsKKwkJbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplMSAmIDB4RkZGRjgwMDApOworCQltZW1jdGwtPm1lbWNfYnI0ID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRTQgJiBCUl9CQV9NU0spIHwgKG1lbWN0bC0+bWVtY19icjQgJiB+KEJSX0JBX01TSykpOwogCiAJCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQkJc2l6ZTEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKSBDRkdfRkxBU0hfQkFTRTQsICZmbGFzaF9pbmZvWzFdKTsKKwkJc2l6ZTEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U0LCAmZmxhc2hfaW5mb1sxXSk7CiAKLQkJZmxhc2hfZ2V0X29mZnNldHMoQ0ZHX0ZMQVNIX0JBU0U0LCAmZmxhc2hfaW5mb1sxXSk7CisJCWZsYXNoX2dldF9vZmZzZXRzKENPTkZJR19TWVNfRkxBU0hfQkFTRTQsICZmbGFzaF9pbmZvWzFdKTsKIAogCQlzaXplICs9IHNpemUxOwogCX0gZWxzZQpAQCAtNDQ4LDcgKzQ0OCw3IEBACiAJbGFzdCA9IHN0YXJ0OwogCWFkZHIgPSAodnVfY2hhciAqKSAoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJd2hpbGUgKChhZGRyWzBdICYgMHg4MCkgIT0gMHg4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC01MjEsNyArNTIxLDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIoMCk7CiAJd2hpbGUgKCgqKCh2dV9jaGFyICopIGRlc3QpICYgMHg4MCkgIT0gKGRhdGEgJiAweDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbmV0cGhvbmUvbmV0cGhvbmUuYyBiL2JvYXJkL25ldHBob25lL25ldHBob25lLmMKaW5kZXggMzhlYjdjOC4uNTNkMzE3MiAxMDA2NDQKLS0tIGEvYm9hcmQvbmV0cGhvbmUvbmV0cGhvbmUuYworKysgYi9ib2FyZC9uZXRwaG9uZS9uZXRwaG9uZS5jCkBAIC0zNTYsNyArMzU2LDcgQEAKICNkZWZpbmUgTUFSX1NEUkFNX0lOSVQJCSgoQ0FTX0xBVEVOQ1kgPDwgNikgfCAweDAwMDAwMDA4TFUpCiAKIC8qIDggKi8KLSNkZWZpbmUgQ0ZHX01BTVIJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUgkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApAQCAtNDA2LDcgKzQwNiw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemU7CiAKQEAgLTQyMiwxMCArNDIyLDEwIEBACiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDMgdG8gdGhlIFNEUkFNIGJhbmsgYXQgcHJlbGltaW5hcnkgYWRkcmVzcy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IzID0gQ0ZHX09SM19QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMyA9IENGR19CUjNfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjMgPSBDT05GSUdfU1lTX09SM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfQlIzX1BSRUxJTTsKIAotCW1lbWN0bC0+bWVtY19tYm1yID0gQ0ZHX01BTVIgJiB+TUFNUl9QVEFFOwkvKiBubyByZWZyZXNoIHlldCAqLworCW1lbWN0bC0+bWVtY19tYm1yID0gQ09ORklHX1NZU19NQU1SICYgfk1BTVJfUFRBRTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAogCXVkZWxheSgyMDApOwogCkBAIC01NDYsNyArNTQ2LDcgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZih2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgaW9wOHh4X3QgKmlvcG9ydCA9ICZpbW1hcC0+aW1faW9wb3J0OwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcG0gPSAmaW1tYXAtPmltX2NwbTsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CkBAIC02MDIsMTMgKzYwMiwxMyBAQAogI2luY2x1ZGUgPGxpbnV4L210ZC9uYW5kX2xlZ2FjeS5oPgogCiBleHRlcm4gdWxvbmcgbmFuZF9wcm9iZSh1bG9uZyBwaHlzYWRyKTsKLWV4dGVybiBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ0ZHX01BWF9OQU5EX0RFVklDRV07CitleHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFXTsKIAogdm9pZCBuYW5kX2luaXQodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHRvdGxlbjsKIAotCXRvdGxlbiA9IG5hbmRfcHJvYmUoQ0ZHX05BTkRfQkFTRSk7CisJdG90bGVuID0gbmFuZF9wcm9iZShDT05GSUdfU1lTX05BTkRfQkFTRSk7CiAJcHJpbnRmICgiJTRsdSBNQlxuIiwgdG90bGVuID4+IDIwKTsKIH0KICNlbmRpZgpAQCAtNjI2LDcgKzYyNiw3IEBACiAKIHN0YXRpYyB2b2xhdGlsZSBpbnQgbGVmdF90b19wb2xsID0gUEhPTkVfQ09OU09MRV9QT0xMX0haOwkvKiBwb2xsICovCiAKLS8qIGNhbGxlZCBmcm9tIHRpbWVyIGludGVycnVwdCBldmVyeSAxL0NGR19IWiBzZWMgKi8KKy8qIGNhbGxlZCBmcm9tIHRpbWVyIGludGVycnVwdCBldmVyeSAxL0NPTkZJR19TWVNfSFogc2VjICovCiB2b2lkIGJvYXJkX3Nob3dfYWN0aXZpdHkodWxvbmcgdGltZXN0YW1wKQogewogCWlmIChsZWZ0X3RvX3BvbGwgPiAtUEhPTkVfQ09OU09MRV9QT0xMX0haKQpAQCAtNjU2LDcgKzY1Niw3IEBACiAKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQ09OU09MRV9JU19JTl9FTlYpICYmIGRlZmluZWQoQ0ZHX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORSkKIGludCBvdmVyd3JpdGVfY29uc29sZSh2b2lkKQogewogCS8qIHByaW50Zigib3ZlcndyaXRlX2NvbnNvbGUgY2FsbGVkXG4iKTsgKi8KQEAgLTY3OSwxNiArNjc5LDE2IEBACiAKICNpZiBDT05GSUdfTkVUUEhPTkVfVkVSU0lPTiA9PSAyCiAJLyogYXNzZXJ0IHBlcmlwaGVyYWwgcmVzZXQgKi8KLQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQgJj0gfl9CVygxMik7CisJKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCAmPSB+X0JXKDEyKTsKIAlmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykKIAkJdWRlbGF5KDEwMDApOwotCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCB8PSAgX0JXKDEyKTsKKwkoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0IHw9ICBfQlcoMTIpOwogI2VuZGlmCiAJcmVzZXRfcGh5cygpOwogCiAJLyogY2hlY2sgaW4gb3JkZXIgdG8gZW5hYmxlIHRoZSBsb2NhbCBjb25zb2xlICovCiAJbGVmdF90b19wb2xsID0gUEhPTkVfQ09OU09MRV9QT0xMX0haOwotCWkgPSBDRkdfSFogKiAyOworCWkgPSBDT05GSUdfU1lTX0haICogMjsKIAl3aGlsZSAoaSA+IDApIHsKIAogCQlpZiAodHN0YygpKSB7CkBAIC03MDIsNyArNzAyLDcgQEAKIAkJCXN0YXR1c19sZWRfc2V0KDAsIFNUQVRVU19MRURfT04pOwogCQkJd2hpbGUgKCFkcnZfcGhvbmVfaXNfaWRsZSgpKSB7CiAJCQkJZG9fcG9sbCgpOwotCQkJCXVkZWxheSgxMDAwMDAwIC8gQ0ZHX0haKTsKKwkJCQl1ZGVsYXkoMTAwMDAwMCAvIENPTkZJR19TWVNfSFopOwogCQkJfQogCiAJCQljb25zb2xlX2Fzc2lnbihzdGRpbiwgInBob25lIik7CkBAIC03MTIsNyArNzEyLDcgQEAKIAkJCWJyZWFrOwogCQl9CiAKLQkJdWRlbGF5KDEwMDAwMDAgLyBDRkdfSFopOworCQl1ZGVsYXkoMTAwMDAwMCAvIENPTkZJR19TWVNfSFopOwogCQlpLS07CiAJCWxlZnRfdG9fcG9sbC0tOwogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL25ldHBob25lL3Bob25lX2NvbnNvbGUuYyBiL2JvYXJkL25ldHBob25lL3Bob25lX2NvbnNvbGUuYwppbmRleCA0MDhhZGEwLi5kOWIwYWQzIDEwMDY0NAotLS0gYS9ib2FyZC9uZXRwaG9uZS9waG9uZV9jb25zb2xlLmMKKysrIGIvYm9hcmQvbmV0cGhvbmUvcGhvbmVfY29uc29sZS5jCkBAIC00Niw0MyArNDYsNDMgQEAKICNkZWZpbmUgUk9XUwkyNAogI2RlZmluZSBDT0xTCTgwCiAKLSNkZWZpbmUgUkVGUkVTSF9IWgkJKENGR19IWi81MCkJLyogcmVmcmVzaCBldmVyeSAyMG1zICovCi0jZGVmaW5lIEJMSU5LX0haCQkoQ0ZHX0haLzIpCS8qIGN1cnNvciBibGluayBldmVyeSA1MDBtcyAqLworI2RlZmluZSBSRUZSRVNIX0haCQkoQ09ORklHX1NZU19IWi81MCkJLyogcmVmcmVzaCBldmVyeSAyMG1zICovCisjZGVmaW5lIEJMSU5LX0haCQkoQ09ORklHX1NZU19IWi8yKQkvKiBjdXJzb3IgYmxpbmsgZXZlcnkgNTAwbXMgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLSNkZWZpbmUgRElTUExBWV9CQUNLTElUX1BPUlQJKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0CisjZGVmaW5lIERJU1BMQVlfQkFDS0xJVF9QT1JUCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQKICNkZWZpbmUgRElTUExBWV9CQUNLTElUX01BU0sJMHgwMDEwCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jZGVmaW5lIEtQX1NUQUJMRV9IWgkJKENGR19IWi8xMDApCS8qIHN0YWJsZSBmb3IgMTBtcyAqLwotI2RlZmluZSBLUF9SRVBFQVRfREVMQVlfSFoJKENGR19IWi80KQkvKiBkZWxheSBiZWZvcmUgcmVwZWF0IDI1MG1zICovCi0jZGVmaW5lIEtQX1JFUEVBVF9IWgkJKENGR19IWi8yMCkJLyogcmVwZWF0IGV2ZXJ5IDUwbXMgKi8KLSNkZWZpbmUgS1BfRk9SQ0VfREVMQVlfSFoJKENGR19IWi8yKQkvKiBrZXkgd2FzIGZvcmNlIHByZXNzZWQgKi8KLSNkZWZpbmUgS1BfSURMRV9ERUxBWV9IWgkoQ0ZHX0haLzIpCS8qIGtleSB3YXMgcmVsZWFzZWQgYW5kIGlkbGUgKi8KKyNkZWZpbmUgS1BfU1RBQkxFX0haCQkoQ09ORklHX1NZU19IWi8xMDApCS8qIHN0YWJsZSBmb3IgMTBtcyAqLworI2RlZmluZSBLUF9SRVBFQVRfREVMQVlfSFoJKENPTkZJR19TWVNfSFovNCkJLyogZGVsYXkgYmVmb3JlIHJlcGVhdCAyNTBtcyAqLworI2RlZmluZSBLUF9SRVBFQVRfSFoJCShDT05GSUdfU1lTX0haLzIwKQkvKiByZXBlYXQgZXZlcnkgNTBtcyAqLworI2RlZmluZSBLUF9GT1JDRV9ERUxBWV9IWgkoQ09ORklHX1NZU19IWi8yKQkvKiBrZXkgd2FzIGZvcmNlIHByZXNzZWQgKi8KKyNkZWZpbmUgS1BfSURMRV9ERUxBWV9IWgkoQ09ORklHX1NZU19IWi8yKQkvKiBrZXkgd2FzIHJlbGVhc2VkIGFuZCBpZGxlICovCiAKICNpZiBDT05GSUdfTkVUUEhPTkVfVkVSU0lPTiA9PSAxCi0jZGVmaW5lIEtQX1NQSV9SWERfUE9SVCAoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0KQorI2RlZmluZSBLUF9TUElfUlhEX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQpCiAjZGVmaW5lIEtQX1NQSV9SWERfTUFTSyAweDAwMDgKIAotI2RlZmluZSBLUF9TUElfVFhEX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCkKKyNkZWZpbmUgS1BfU1BJX1RYRF9QT1JUICgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0KQogI2RlZmluZSBLUF9TUElfVFhEX01BU0sgMHgwMDA0CiAKLSNkZWZpbmUgS1BfU1BJX0NMS19QT1JUICgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQpCisjZGVmaW5lIEtQX1NQSV9DTEtfUE9SVCAoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCkKICNkZWZpbmUgS1BfU1BJX0NMS19NQVNLIDB4MDAwMQogI2VsaWYgQ09ORklHX05FVFBIT05FX1ZFUlNJT04gPT0gMgotI2RlZmluZSBLUF9TUElfUlhEX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQorI2RlZmluZSBLUF9TUElfUlhEX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKICNkZWZpbmUgS1BfU1BJX1JYRF9NQVNLIDB4MDAwMDAwMDgKIAotI2RlZmluZSBLUF9TUElfVFhEX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQorI2RlZmluZSBLUF9TUElfVFhEX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKICNkZWZpbmUgS1BfU1BJX1RYRF9NQVNLIDB4MDAwMDAwMDQKIAotI2RlZmluZSBLUF9TUElfQ0xLX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQorI2RlZmluZSBLUF9TUElfQ0xLX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKICNkZWZpbmUgS1BfU1BJX0NMS19NQVNLIDB4MDAwMDAwMDIKICNlbmRpZgogCi0jZGVmaW5lIEtQX0NTX1BPUlQJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KQorI2RlZmluZSBLUF9DU19QT1JUCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpCiAjZGVmaW5lIEtQX0NTX01BU0sJMHgwMDAwMDAxMAogCiAjZGVmaW5lIEtQX1NQSV9SWEQoKSAoS1BfU1BJX1JYRF9QT1JUICYgS1BfU1BJX1JYRF9NQVNLKQpAQCAtOTgzLDcgKzk4Myw3IEBACiAjaWYgQ09ORklHX05FVFBIT05FX1ZFUlNJT04gPT0gMQogCWNvbF9tYXNrID0ga3BfZGF0YV90cmFuc2Zlcih2YWwpICYgMHgwRjsKICNlbGlmIENPTkZJR19ORVRQSE9ORV9WRVJTSU9OID09IDIKLQljb2xfbWFzayA9ICgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0ICYgMHgwZjsKKwljb2xfbWFzayA9ICgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wZWRhdCAmIDB4MGY7CiAJLyogWFhYIEZVQ0sgRlVDSyBGVUNLIEZVQ0sgRlVDSyEhISEgKi8KIAljb2xfbWFzayA9ICgoY29sX21hc2sgJiAweDA4KSA+PiAzKSB8CS8qIEJLQlIxICovCiAJCSAgICgoY29sX21hc2sgJiAweDA0KSA8PCAxKSB8CS8qIEJLQlIyICovCmRpZmYgLS1naXQgYS9ib2FyZC9uZXRzdGFsL2hjdTQvaGN1NC5jIGIvYm9hcmQvbmV0c3RhbC9oY3U0L2hjdTQuYwppbmRleCBjMTQ0NzQxLi5hYThhMDk3IDEwMDY0NAotLS0gYS9ib2FyZC9uZXRzdGFsL2hjdTQvaGN1NC5jCisrKyBiL2JvYXJkL25ldHN0YWwvaGN1NC9oY3U0LmMKQEAgLTEzNCw3ICsxMzQsNyBAQAogICovCiB1MzIgZ2V0X3NlcmlhbF9udW1iZXIodm9pZCkKIHsKLQl1MzIgc2VyaWFsID0gaW5fYmUzMigodTMyICopQ0ZHX0ZMQVNIX0JBU0UpOworCXUzMiBzZXJpYWwgPSBpbl9iZTMyKCh1MzIgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UpOwogCiAJaWYgKHNlcmlhbCA9PSAweGZmZmZmZmZmKQogCQlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2JvYXJkL25ldHN0YWwvaGN1NS9SRUFETUUudHh0IGIvYm9hcmQvbmV0c3RhbC9oY3U1L1JFQURNRS50eHQKaW5kZXggNzVjMGRkNy4uZjY0OTg3NiAxMDA2NDQKLS0tIGEvYm9hcmQvbmV0c3RhbC9oY3U1L1JFQURNRS50eHQKKysrIGIvYm9hcmQvbmV0c3RhbC9oY3U1L1JFQURNRS50eHQKQEAgLTMzLDcgKzMzLDcgQEAKIE9uLUNoaXAgTWVtb3J5CiAtLS0tLS0tLS0tLS0tLQogCi0weGUwMDEwMDAwLSAweGUwMDEzZmZmICAgQ0ZHX09DTV9CQVNFCisweGUwMDEwMDAwLSAweGUwMDEzZmZmICAgQ09ORklHX1NZU19PQ01fQkFTRQogVGhlIDQ0MEVQeCBpbmNsdWRlcyBhIDE2SyBvbi1jaGlwIG1lbW9yeSB0aGF0IGNhbiBiZSBwbGFjZWQgaG93ZXZlcgogc29mdHdhcmUgY2hvb3Nlcy4KIApAQCAtMTQ5LDcgKzE0OSw3IEBACiAJc2V0dXAgYmQgZmxhc2ggaW5mbwogCWNwdV9pbml0X3I6IChjcHUvcHBjNHh4L2NwdV9pbml0LmMpCiAJICAgIHBlcmlwaGVyYWwgY2hpcCBzZWxlY3QgaW4gdXNpbmcgZGVmaW5lcyBsaWtlCi0JICAgIENGR19FQkNfUEIwQSwgQ0ZHX0VCQ19QQjBDIGZyb20gaGN1NS5oCisJICAgIENPTkZJR19TWVNfRUJDX1BCMEEsIENPTkZJR19TWVNfRUJDX1BCMEMgZnJvbSBoY3U1LmgKIAltZW1fbWFsbG9jX2luaXQKIAltYWxsb2NfYmluX3JlbG9jCiAJc3BpX2luaXQgKHIgb3IgZik/Pz8gKENPTkZJR19FTlZfSVNfSU5fRUVQUk9NKQpAQCAtMTY4LDQgKzE2OCw0IEBACiBEcml2ZXJzIGZvciBzZXJpYWwgZXRjIGFyZSBmb3VuZCB1bmRlciBkcml2ZXJzLwogCiBEb24ndCBhc2sgcXVlc3Rpb24gaWYgeW91IGRpZCBub3QgbG9vayBhdCB0aGUgUkVBRE1FICEhCi1Nb3N0IENGR18qIGFuZCBDT05GSUdfKiBzd2l0Y2hlcyBhcmUgbWVudGlvbmVkL2V4cGxhaW5lZCB0aGVyZS4KK01vc3QgQ09ORklHX1NZU18qIGFuZCBDT05GSUdfKiBzd2l0Y2hlcyBhcmUgbWVudGlvbmVkL2V4cGxhaW5lZCB0aGVyZS4KZGlmZiAtLWdpdCBhL2JvYXJkL25ldHN0YWwvaGN1NS9oY3U1LmMgYi9ib2FyZC9uZXRzdGFsL2hjdTUvaGN1NS5jCmluZGV4IGYzNDI4YzIuLjZmNGVjMjkgMTAwNjQ0Ci0tLSBhL2JvYXJkL25ldHN0YWwvaGN1NS9oY3U1LmMKKysrIGIvYm9hcmQvbmV0c3RhbC9oY3U1L2hjdTUuYwpAQCAtMjYsNyArMjYsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogI3VuZGVmIEJPT1RTVFJBUF9PUFRJT05fQV9BQ1RJVkUKIApAQCAtNDAsOSArNDAsOSBAQAogI2RlZmluZSBTRFIwX0VDSUQyCQkweDAwODIKICNkZWZpbmUgU0RSMF9FQ0lEMwkJMHgwMDgzCiAKLSNkZWZpbmUgU1lTX0lPX0FERFJFU1MJCQkoQ0ZHX0NTXzIgKyAweDAwZTAwMDAwKQotI2RlZmluZSBTWVNfU0xPVF9BRERSRVNTCQkoQ0ZHX0NQTEQgKyAweDAwNDAwMDAwKQotI2RlZmluZSBIQ1VfRElHSVRBTF9JT19SRUdJU1RFUgkoQ0ZHX0NQTEQgKyAweDA1MDAwMDApCisjZGVmaW5lIFNZU19JT19BRERSRVNTCQkJKENPTkZJR19TWVNfQ1NfMiArIDB4MDBlMDAwMDApCisjZGVmaW5lIFNZU19TTE9UX0FERFJFU1MJCShDT05GSUdfU1lTX0NQTEQgKyAweDAwNDAwMDAwKQorI2RlZmluZSBIQ1VfRElHSVRBTF9JT19SRUdJU1RFUgkoQ09ORklHX1NZU19DUExEICsgMHgwNTAwMDAwKQogI2RlZmluZSBIQ1VfU1dfSU5TVEFMTF9SRVFVRVNURUQJMHgxMAogCiAvKgpAQCAtMjEyLDcgKzIxMiw3IEBACiAgKi8KIHUzMiBnZXRfc2VyaWFsX251bWJlcih2b2lkKQogewotCXUzMiAqc2VyaWFsID0gKHUzMiAqKUNGR19GTEFTSF9CQVNFOworCXUzMiAqc2VyaWFsID0gKHUzMiAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAogCWlmIChpbl9iZTMyKHNlcmlhbCkgPT0gMHhmZmZmZmZmZikKIAkJcmV0dXJuIDA7CkBAIC0yNDMsNyArMjQzLDcgQEAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIApAQCAtMzk5LDE4ICszOTksMTggQEAKIAkgKi8KIAkvKiBQTU0wIE1hc2svQXR0cmlidXRlIC0gZGlzYWJsZWQgYjQgc2V0dGluZyAqLwogCW91dDMycihQQ0lYMF9QTU0wTUEsIDB4MDAwMDAwMDApOwotCW91dDMycihQQ0lYMF9QTU0wTEEsIENGR19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0wTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KIAkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLwotCW91dDMycihQQ0lYMF9QTU0wUENJTEEsIENGR19QQ0lfTUVNQkFTRSk7CisJb3V0MzJyKFBDSVgwX1BNTTBQQ0lMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSk7CiAJb3V0MzJyKFBDSVgwX1BNTTBQQ0lIQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgUENJIEhpZ2ggQWRkcmVzcyAqLwogCS8qIDUxMk0gKyBObyBwcmVmZXRjaGluZywgYW5kIGVuYWJsZSByZWdpb24gKi8KIAlvdXQzMnIoUENJWDBfUE1NME1BLCAweEUwMDAwMDAxKTsKIAogCS8qIFBNTTAgTWFzay9BdHRyaWJ1dGUgLSBkaXNhYmxlZCBiNCBzZXR0aW5nICovCiAJb3V0MzJyKFBDSVgwX1BNTTFNQSwgMHgwMDAwMDAwMCk7Ci0Jb3V0MzJyKFBDSVgwX1BNTTFMQSwgQ0ZHX1BDSV9NRU1CQVNFMik7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0xTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UyKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCiAJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KLQlvdXQzMnIoUENJWDBfUE1NMVBDSUxBLCBDRkdfUENJX01FTUJBU0UyKTsKKwlvdXQzMnIoUENJWDBfUE1NMVBDSUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMik7CiAJb3V0MzJyKFBDSVgwX1BNTTFQQ0lIQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgUENJIEhpZ2ggQWRkcmVzcyAqLwogCS8qIDUxMk0gKyBObyBwcmVmZXRjaGluZywgYW5kIGVuYWJsZSByZWdpb24gKi8KIAlvdXQzMnIoUENJWDBfUE1NMU1BLCAweEUwMDAwMDAxKTsKQEAgLTQyNiw4ICs0MjYsOCBAQAogCiAJLyogUHJvZ3JhbSB0aGUgYm9hcmQncyBzdWJzeXN0ZW0gaWQvdmVuZG9yIGlkICovCiAJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fVkVORE9SX0lELAotCQkJICAgICAgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQpOwotCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX0lELCBDRkdfUENJX1NVQlNZU19JRCk7CisJCQkgICAgICBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQpOworCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSUQpOwogCiAJLyogQ29uZmlndXJlIGNvbW1hbmQgcmVnaXN0ZXIgYXMgYnVzIG1hc3RlciAqLwogCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfQ09NTUFORCwgUENJX0NPTU1BTkRfTUFTVEVSKTsKZGlmZiAtLWdpdCBhL2JvYXJkL25ldHN0YWwvaGN1NS9pbml0LlMgYi9ib2FyZC9uZXRzdGFsL2hjdTUvaW5pdC5TCmluZGV4IGQ3M2M4NjEuLjA1YjVlMzggMTAwNjQ0Ci0tLSBhL2JvYXJkL25ldHN0YWwvaGN1NS9pbml0LlMKKysrIGIvYm9hcmQvbmV0c3RhbC9oY3U1L2luaXQuUwpAQCAtNDIsNyArNDIsNyBAQAogCS8qIFRMQiMwOiB2eFdvcmtzIG5lZWRzIHRoaXMgZW50cnkgZm9yIHRoZSBNYWNoaW5lIENoZWNrIGludGVycnVwdCwgKi8KIAl0bGJlbnRyeSggMHg0MDAwMDAwMCwgU1pfMjU2TSwgMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKIAkvKiBUTEIjMTogVExCLWVudHJ5IGZvciBERFIgU0RSQU0gKFVwIHRvIDJHQikgKi8KLQl0bGJlbnRyeSggQ0ZHX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIENGR19TRFJBTV9CQVNFLCAwLAorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMCwKIAkJQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKIAogCS8qIFRMQiMyOiBUTEItZW50cnkgZm9yIEVCQyAqLwpAQCAtNTMsNyArNTMsNyBAQAogCSAqIG9mZiB0byB1c2UgdGhlIHNwZWVkIHVwIGJvb3QgcHJvY2Vzcy4gSXQgaXMgcGF0Y2hlZCBhZnRlciByZWxvY2F0aW9uCiAJICogdG8gZW5hYmxlIFNBX0kKIAkgKi8KLQl0bGJlbnRyeSggQ0ZHX0JPT1RfQkFTRV9BRERSLCBTWl8xTSwgQ0ZHX0JPT1RfQkFTRV9BRERSLCAxLAorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCBTWl8xTSwgQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiwgMSwKIAkJQUNfUnxBQ19XfEFDX1h8U0FfRykKIAogCS8qCkBAIC02MywxMyArNjMsMTMgQEAKIAkgKi8KIAogCS8qIFRMQiM0OiAqLwotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UxLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UxLCAxLAorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEsIDEsCiAJCUFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCS8qIFRMQiM1OiAqLwotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UyLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UyLCAxLAorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIsIDEsCiAJCUFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCS8qIFRMQiM2OiAqLwotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UzLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UzLCAxLAorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMywgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTMsIDEsCiAJCUFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCiAJLyogVExCLWVudHJ5IGZvciBJbnRlcm5hbCBSZWdpc3RlcnMgJiBPQ00gKi8KQEAgLTg3LDIwICs4NywyMCBAQAogCiAJLyoJCUNBTiAqLwogCS8qIFRMQiMxMDogKi8KLQl0bGJlbnRyeSggQ0ZHX0NTXzEsIFNaXzFLLCBDRkdfQ1NfMSwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19DU18xLCBTWl8xSywgQ09ORklHX1NZU19DU18xLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQogCiAJLyogVExCIzExOiAgQ1BMRCBhbmQgSU1DLVN0YW5kYXJkIDMyIE1CICovCi0JdGxiZW50cnkoIENGR19DU18yLCBTWl8xNk0sIENGR19DU18yLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0NTXzIsIFNaXzE2TSwgQ09ORklHX1NZU19DU18yLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQogCiAJLyogVExCIzEyOiAqLwotCXRsYmVudHJ5KCBDRkdfQ1NfMiArIDB4MTAwMDAwMCwgU1pfMTZNLCBDRkdfQ1NfMiArIDB4MTAwMDAwMCwgMSwKKwl0bGJlbnRyeSggQ09ORklHX1NZU19DU18yICsgMHgxMDAwMDAwLCBTWl8xNk0sIENPTkZJR19TWVNfQ1NfMiArIDB4MTAwMDAwMCwgMSwKIAkJQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKIAogCSAvKgkJSU1DLUZhc3QgMzIgTUIgKi8KIAkvKiBUTEIjMTM6ICovCi0JdGxiZW50cnkoIENGR19DU18zLCBTWl8xNk0sIENGR19DU18zLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0NTXzMsIFNaXzE2TSwgQ09ORklHX1NZU19DU18zLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQogCS8qIFRMQiMxNDogKi8KLQl0bGJlbnRyeSggQ0ZHX0NTXzMgKyAweDEwMDAwMDAsIFNaXzE2TSwgQ0ZHX0NTXzMsIDEsCisJdGxiZW50cnkoIENPTkZJR19TWVNfQ1NfMyArIDB4MTAwMDAwMCwgU1pfMTZNLCBDT05GSUdfU1lTX0NTXzMsIDEsCiAJCUFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCiAKIAl0bGJ0YWJfZW5kCmRpZmYgLS1naXQgYS9ib2FyZC9uZXRzdGFsL2hjdTUvc2RyYW0uYyBiL2JvYXJkL25ldHN0YWwvaGN1NS9zZHJhbS5jCmluZGV4IGU1ZGY2MmUuLmY1OWJkN2QgMTAwNjQ0Ci0tLSBhL2JvYXJkL25ldHN0YWwvaGN1NS9zZHJhbS5jCisrKyBiL2JvYXJkL25ldHN0YWwvaGN1NS9zZHJhbS5jCkBAIC0yNjMsMjAgKzI2MywyMCBAQAogCS8qCiAJICogUHJvZ3JhbSB0bGIgZW50cmllcyBmb3IgdGhpcyBzaXplIChkeW5hbWljKQogCSAqLwotCXJlbW92ZV90bGIoQ0ZHX1NEUkFNX0JBU0UsIDI1NiA8PCAyMCk7CisJcmVtb3ZlX3RsYihDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDI1NiA8PCAyMCk7CiAJcHJvZ3JhbV90bGIoMCwgMCwgZHJhbV9zaXplLCBUTEJfV09SRDJfV19FTkFCTEUgfCBUTEJfV09SRDJfSV9FTkFCTEUpOwogCiAJLyoKIAkgKiBTZXR1cCAybmQgVExCIHdpdGggc2FtZSBwaHlzaWNhbCBhZGRyZXNzIGJ1dCBkaWZmZXJlbnQgdmlydHVhbAogCSAqIGFkZHJlc3Mgd2l0aCBjYWNoZSBlbmFibGVkLiBUaGlzIGlzIGRvbmUgZm9yIGZhc3QgRUNDIGdlbmVyYXRpb24uCiAJICovCi0JcHJvZ3JhbV90bGIoMCwgQ0ZHX0REUl9DQUNIRURfQUREUiwgZHJhbV9zaXplLCAwKTsKKwlwcm9ncmFtX3RsYigwLCBDT05GSUdfU1lTX0REUl9DQUNIRURfQUREUiwgZHJhbV9zaXplLCAwKTsKIAogI2lmZGVmIENPTkZJR19ERFJfRUNDCiAJLyoKIAkgKiBJZiBFQ0MgaXMgZW5hYmxlZCwgaW5pdGlhbGl6ZSB0aGUgcGFyaXR5IGJpdHMuCiAJICovCi0JcHJvZ3JhbV9lY2MoQ0ZHX0REUl9DQUNIRURfQUREUiwgZHJhbV9zaXplKTsKKwlwcm9ncmFtX2VjYyhDT05GSUdfU1lTX0REUl9DQUNIRURfQUREUiwgZHJhbV9zaXplKTsKICNlbmRpZgogCiAJcmV0dXJuIChkcmFtX3NpemUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbmV0c3RhbC9oY3U1L3UtYm9vdC5sZHMgYi9ib2FyZC9uZXRzdGFsL2hjdTUvdS1ib290LmxkcwppbmRleCBjNzJlNWJhLi5mODU3ZWYzIDEwMDY0NAotLS0gYS9ib2FyZC9uZXRzdGFsL2hjdTUvdS1ib290LmxkcworKysgYi9ib2FyZC9uZXRzdGFsL2hjdTUvdS1ib290LmxkcwpAQCAtMTM2LDcgKzEzNiw3IEBACiAgICAqKENPTU1PTikKICAgfQogCi0gIHBwY2Vudl9hc3NlcnQgPSBBU1NFUlQoLiA8IDB4RkZGRkIwMDAsICIuYnNzIHNlY3Rpb24gdG9vIGJpZywgb3ZlcmxhcHMgLnBwY2VudiBzZWN0aW9uLiBQbGVhc2UgdXBkYXRlIHlvdXIgY29uZmd1cmF0aW9uOiBDRkdfTU9OSVRPUl9CQVNFLCBDRkdfTU9OSVRPUl9MRU4gYW5kIFRFWFRfQkFTRSBtYXkgbmVlZCB0byBiZSBtb2RpZmllZC4iKTsKKyAgcHBjZW52X2Fzc2VydCA9IEFTU0VSVCguIDwgMHhGRkZGQjAwMCwgIi5ic3Mgc2VjdGlvbiB0b28gYmlnLCBvdmVybGFwcyAucHBjZW52IHNlY3Rpb24uIFBsZWFzZSB1cGRhdGUgeW91ciBjb25mZ3VyYXRpb246IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCBDT05GSUdfU1lTX01PTklUT1JfTEVOIGFuZCBURVhUX0JBU0UgbWF5IG5lZWQgdG8gYmUgbW9kaWZpZWQuIik7CiAKICAgX2VuZCA9IC4gOwogICBQUk9WSURFIChlbmQgPSAuKTsKZGlmZiAtLWdpdCBhL2JvYXJkL25ldHN0YWwvbWN1MjUvbWN1MjUuYyBiL2JvYXJkL25ldHN0YWwvbWN1MjUvbWN1MjUuYwppbmRleCBlZDE3MWJmLi42NmVkOTVmIDEwMDY0NAotLS0gYS9ib2FyZC9uZXRzdGFsL21jdTI1L21jdTI1LmMKKysrIGIvYm9hcmQvbmV0c3RhbC9tY3UyNS9tY3UyNS5jCkBAIC03NCw5ICs3NCw5IEBACiAJbXRkY3IoY250cmwxLCBDUEMwX0NSMV9WQUxVRSk7CiAJbXRkY3IoZWNyLCAweDYwNjA2MDAwKTsKIAltdGRjcihDUEMwX0VJUlIsIDB4N0MwMDAwMDApOwotCW91dDMyKEdQSU8wX09SLAkJQ0ZHX0dQSU8wX09SICk7Ci0Jb3V0MzIoR1BJTzBfVENSLAlDRkdfR1BJTzBfVENSKTsKLQlvdXQzMihHUElPMF9PRFIsCUNGR19HUElPMF9PRFIpOworCW91dDMyKEdQSU8wX09SLAkJQ09ORklHX1NZU19HUElPMF9PUiApOworCW91dDMyKEdQSU8wX1RDUiwJQ09ORklHX1NZU19HUElPMF9UQ1IpOworCW91dDMyKEdQSU8wX09EUiwJQ09ORklHX1NZU19HUElPMF9PRFIpOwogCW10c3ByKGNjcjAsICAgICAgMHgwMDcwMDAwMCk7CiAKIAlyZXR1cm4gMDsKQEAgLTE0MSw3ICsxNDEsNyBAQAogICovCiB1MzIgZ2V0X3NlcmlhbF9udW1iZXIodm9pZCkKIHsKLQl1MzIgc2VyaWFsID0gaW5fYmUzMigodTMyICopQ0ZHX0ZMQVNIX0JBU0UpOworCXUzMiBzZXJpYWwgPSBpbl9iZTMyKCh1MzIgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UpOwogCiAJaWYgKHNlcmlhbCA9PSAweGZmZmZmZmZmKQogCQlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2JvYXJkL25ldHN0YXIvZmxhc2guYyBiL2JvYXJkL25ldHN0YXIvZmxhc2guYwppbmRleCA2OTJjNDE2Li5lOWVjYTM1IDEwMDY0NAotLS0gYS9ib2FyZC9uZXRzdGFyL2ZsYXNoLmMKKysrIGIvYm9hcmQvbmV0c3Rhci9mbGFzaC5jCkBAIC0zMywxMSArMzMsMTEgQEAKIAogI2luY2x1ZGUgImNyY2VrLmgiCiAKLSNpZiAoQ0ZHX01BWF9GTEFTSF9CQU5LUyA+IDEpCisjaWYgKENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID4gMSkKICNlcnJvciBUaGVyZSBpcyBhbHdheXMgb25seSBfb25lXyBmbGFzaCBjaGlwCiAjZW5kaWYKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKICNkZWZpbmUgQ01EX1JFQURfQVJSQVkJCTB4MDAwMDAwZjAKICNkZWZpbmUgQ01EX1VOTE9DSzEJCTB4MDAwMDAwYWEKQEAgLTQ3LDggKzQ3LDggQEAKICNkZWZpbmUgQ01EX1BST0dSQU0JCTB4MDAwMDAwYTAKICNkZWZpbmUgQ01EX1VOTE9DS19CWVBBU1MJMHgwMDAwMDAyMAogCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMQkJKCoodm9sYXRpbGUgdTE2ICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDA1NTUgPDwgMSkpKQotI2RlZmluZSBNRU1fRkxBU0hfQUREUjIJCSgqKHZvbGF0aWxlIHUxNiAqKShDRkdfRkxBU0hfQkFTRSArICgweDAwMDAwMmFhIDw8IDEpKSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDB4MDAwMDA1NTUgPDwgMSkpKQorI2RlZmluZSBNRU1fRkxBU0hfQUREUjIJCSgqKHZvbGF0aWxlIHUxNiAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDJhYSA8PCAxKSkpCiAKICNkZWZpbmUgQklUX0VSQVNFX0RPTkUJCTB4MDAwMDAwODAKICNkZWZpbmUgQklUX1JEWV9NQVNLCQkweDAwMDAwMDgwCkBAIC02NSwyNyArNjUsMjcgQEAKIAlmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID0gKEFNRF9NQU5VRkFDVCAmIEZMQVNIX1ZFTkRNQVNLKSB8CiAJCQkJIChBTURfSURfTFY4MDBCICYgRkxBU0hfVFlQRU1BU0spOwogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IFBIWVNfRkxBU0hfMV9TSVpFOwotCWZsYXNoX2luZm9bMF0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOwotCW1lbXNldChmbGFzaF9pbmZvWzBdLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJZmxhc2hfaW5mb1swXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCW1lbXNldChmbGFzaF9pbmZvWzBdLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCiAJZm9yIChpID0gMDsgaSA8IGZsYXNoX2luZm9bMF0uc2VjdG9yX2NvdW50OyBpKyspIHsKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDogLyogMTZrQiAqLwotCQkJZmxhc2hfaW5mb1swXS5zdGFydFswXSA9IENGR19GTEFTSF9CQVNFOworCQkJZmxhc2hfaW5mb1swXS5zdGFydFswXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAkJCWJyZWFrOwogCQljYXNlIDE6IC8qIDhrQiAqLwotCQkJZmxhc2hfaW5mb1swXS5zdGFydFsxXSA9IENGR19GTEFTSF9CQVNFICsgMHg0MDAwOworCQkJZmxhc2hfaW5mb1swXS5zdGFydFsxXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwMDsKIAkJCWJyZWFrOwogCQljYXNlIDI6IC8qIDhrQiAqLwotCQkJZmxhc2hfaW5mb1swXS5zdGFydFsyXSA9IENGR19GTEFTSF9CQVNFICsgMHg0MDAwICsKKwkJCWZsYXNoX2luZm9bMF0uc3RhcnRbMl0gPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMDAgKwogCQkJCQkJIDB4MjAwMDsKIAkJCWJyZWFrOwogCQljYXNlIDM6IC8qIDMyIEtCICovCi0JCQlmbGFzaF9pbmZvWzBdLnN0YXJ0WzNdID0gQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMDAgKworCQkJZmxhc2hfaW5mb1swXS5zdGFydFszXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwMCArCiAJCQkJCQkgMiAqIDB4MjAwMDsKIAkJCWJyZWFrOwogCQljYXNlIDQ6Ci0JCQlmbGFzaF9pbmZvWzBdLnN0YXJ0WzRdID0gQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMDAgKworCQkJZmxhc2hfaW5mb1swXS5zdGFydFs0XSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwMCArCiAJCQkJCQkgMiAqIDB4MjAwMCArIDB4ODAwMDsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OiAvKiA2NGtCICovCkBAIC0xOTYsNyArMTk2LDcgQEAKIAkJCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCU1FTV9GTEFTSF9BRERSMSA9IENNRF9SRUFEX0FSUkFZOwogCQkJCQlyYyA9IEVSUl9USU1PVVQ7CiAJCQkJCWJyZWFrOwpAQCAtMjU0LDcgKzI1NCw3IEBACiAJCXJlc3VsdCA9ICphZGRyOwogCiAJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcmMgPSBFUlJfVElNT1VUOwogCQkJYnJlYWs7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL25ldHRhL2NvZGVjLmMgYi9ib2FyZC9uZXR0YS9jb2RlYy5jCmluZGV4IDAxYWIxNGIuLjg0NGFhMTggMTAwNjQ0Ci0tLSBhL2JvYXJkL25ldHRhL2NvZGVjLmMKKysrIGIvYm9hcmQvbmV0dGEvY29kZWMuYwpAQCAtMzM5LDkgKzMzOSw5IEBACiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLSNkZWZpbmUgUE9SVEIJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKLSNkZWZpbmUgUE9SVEMJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQpCi0jZGVmaW5lIFBPUlRECQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KQorI2RlZmluZSBQT1JUQgkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKKyNkZWZpbmUgUE9SVEMJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0KQorI2RlZmluZSBQT1JURAkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpCiAKICNkZWZpbmUgX1BPUlREX1NFVChtYXNrLCBzdGF0ZSkgXAogCWRvIHsgXApkaWZmIC0tZ2l0IGEvYm9hcmQvbmV0dGEvZHNwLmMgYi9ib2FyZC9uZXR0YS9kc3AuYwppbmRleCAzNzM5ZTE2Li5jZDU3NjQ3IDEwMDY0NAotLS0gYS9ib2FyZC9uZXR0YS9kc3AuYworKysgYi9ib2FyZC9uZXR0YS9kc3AuYwpAQCAtOTUsNyArOTUsNyBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgZHNwX2dvX3Nsb3codm9pZCkKIHsKLQl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fbWVtY3RsOworCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fbWVtY3RsOwogI2lmIGRlZmluZWQoQ09ORklHX05FVFRBXzY0MTIpCiAJbWVtY3RsLT5tZW1jX29yNiB8PSBPUl9TQ1lfMTVfQ0xLIHwgT1JfVFJMWDsKICNlbHNlCkBAIC0xMDgsNyArMTA4LDcgQEAKIAogc3RhdGljIGlubGluZSB2b2lkIGRzcF9nb19mYXN0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX21lbWN0bDsKKwl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX21lbWN0bDsKICNpZiBkZWZpbmVkKENPTkZJR19ORVRUQV82NDEyKQogCW1lbWN0bC0+bWVtY19vcjYgPSAobWVtY3RsLT5tZW1jX29yNiAmIH4oT1JfU0NZXzE1X0NMSyB8IE9SX1RSTFgpKSB8IE9SX1NDWV8wX0NMSzsKICNlbHNlCkBAIC0xNDgsMTQgKzE0OCwxNCBAQAogc3RhdGljIGlubGluZSB2b2lkIGRzcF9yZXNldCh2b2lkKQogewogI2lmIGRlZmluZWQoQ09ORklHX05FVFRBXzY0MTIpCi0JKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0ICY9IH4oMSA8PCAoMTUgLSAxNSkpOworCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQgJj0gfigxIDw8ICgxNSAtIDE1KSk7CiAJdWRlbGF5KDUwMCk7Ci0JKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0IHw9ICAoMSA8PCAoMTUgLSAxNSkpOworCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQgfD0gICgxIDw8ICgxNSAtIDE1KSk7CiAJdWRlbGF5KDUwMCk7CiAjZWxzZQotCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCAmPSB+KDEgPDwgKDE1IC0gNykpOworCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQgJj0gfigxIDw8ICgxNSAtIDcpKTsKIAl1ZGVsYXkoMjUwKTsKLQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQgfD0gICgxIDw8ICgxNSAtIDcpKTsKKwkoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0IHw9ICAoMSA8PCAoMTUgLSA3KSk7CiAJdWRlbGF5KDI1MCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL25ldHRhL2ZsYXNoLmMgYi9ib2FyZC9uZXR0YS9mbGFzaC5jCmluZGV4IDUzMTIwNGMuLjQ1ZTZiMzAgMTAwNjQ0Ci0tLSBhL2JvYXJkL25ldHRhL2ZsYXNoLmMKKysrIGIvYm9hcmQvbmV0dGEvZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC0zOCwxMyArMzgsMTMgQEAKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBzaXplOwogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpCisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpCiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCiAJc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopIEZMQVNIX0JBU0UwX1BSRUxJTSwgJmZsYXNoX2luZm9bMF0pOwpAQCAtNTQsMTcgKzU0LDE3IEBACiAJfQogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplICYgMHhGRkZGODAwMCk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCAobWVtY3RsLT5tZW1jX2JyMCAmIH4oQlJfQkFfTVNLKSk7CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplICYgMHhGRkZGODAwMCk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgKG1lbWN0bC0+bWVtY19icjAgJiB+KEJSX0JBX01TSykpOwogCiAJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKSBDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCkBAIC00MjcsNyArNDI3LDcgQEAKIAlsYXN0ID0gc3RhcnQ7CiAJYWRkciA9ICh2dV9jaGFyICopIChpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAweDgwKSAhPSAweDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTUwMCw3ICs1MDAsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAl3aGlsZSAoKCooKHZ1X2NoYXIgKikgZGVzdCkgJiAweDgwKSAhPSAoZGF0YSAmIDB4ODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9uZXR0YS9uZXR0YS5jIGIvYm9hcmQvbmV0dGEvbmV0dGEuYwppbmRleCBiYzMxMzg2Li4wMmZkOTRjIDEwMDY0NAotLS0gYS9ib2FyZC9uZXR0YS9uZXR0YS5jCisrKyBiL2JvYXJkL25ldHRhL25ldHRhLmMKQEAgLTI4OSw3ICsyODksNyBAQAogI2RlZmluZSBNQVJfU0RSQU1fSU5JVAkJKChDQVNfTEFURU5DWSA8PCA2KSB8IDB4MDAwMDAwMDhMVSkKIAogLyogOCAqLwotI2RlZmluZSBDRkdfTUFNUgkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCkBAIC0zMzksNyArMzM5LDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZTsKIApAQCAtMzU1LDEwICszNTUsMTAgQEAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIGJhbmsgMyB0byB0aGUgU0RSQU0gYmFuayBhdCBwcmVsaW1pbmFyeSBhZGRyZXNzLgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfT1IzX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21ibXIgPSBDRkdfTUFNUiAmIH5NQU1SX1BUQUU7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21ibXIgPSBDT05GSUdfU1lTX01BTVIgJiB+TUFNUl9QVEFFOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5KDIwMCk7CiAKQEAgLTUwNSw3ICs1MDUsNyBAQAogCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBpb3A4eHhfdCAqaW9wb3J0ID0gJmltbWFwLT5pbV9pb3BvcnQ7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwbSA9ICZpbW1hcC0+aW1fY3BtOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKQEAgLTU2MCwxMSArNTYwLDExIEBACiAjaW5jbHVkZSA8bGludXgvbXRkL25hbmRfbGVnYWN5Lmg+CiAKIGV4dGVybiB1bG9uZyBuYW5kX3Byb2JlKHVsb25nIHBoeXNhZHIpOwotZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDRkdfTUFYX05BTkRfREVWSUNFXTsKK2V4dGVybiBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0VdOwogCiB2b2lkIG5hbmRfaW5pdCh2b2lkKQogewotCXVuc2lnbmVkIGxvbmcgdG90bGVuID0gbmFuZF9wcm9iZShDRkdfTkFORF9CQVNFKTsKKwl1bnNpZ25lZCBsb25nIHRvdGxlbiA9IG5hbmRfcHJvYmUoQ09ORklHX1NZU19OQU5EX0JBU0UpOwogCiAJcHJpbnRmICgiJTRsdSBNQlxuIiwgdG90bGVuID4+IDIwKTsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL25ldHRhL3BjbWNpYS5jIGIvYm9hcmQvbmV0dGEvcGNtY2lhLmMKaW5kZXggNjZlNmU1MS4uZWQ1OGYyYyAxMDA2NDQKLS0tIGEvYm9hcmQvbmV0dGEvcGNtY2lhLmMKKysrIGIvYm9hcmQvbmV0dGEvcGNtY2lhLmMKQEAgLTMzLDcgKzMzLDcgQEAKIAogc3RhdGljIHZvaWQgY2ZnX3ZwcGQoaW50IG5vKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXVuc2lnbmVkIHNob3J0IG1hc2s7CiAKIAlpZiAoKHVuc2lnbmVkIGludClubyA+PSBzaXplb2YodnBwZF9tYXNrcykvc2l6ZW9mKHZwcGRfbWFza3NbMF0pKQpAQCAtNDgsNyArNDgsNyBAQAogCiBzdGF0aWMgdm9pZCBzZXRfdnBwZChpbnQgbm8sIGludCB3aGF0KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXVuc2lnbmVkIHNob3J0IG1hc2s7CiAKIAlpZiAoKHVuc2lnbmVkIGludClubyA+PSBzaXplb2YodnBwZF9tYXNrcykvc2l6ZW9mKHZwcGRfbWFza3NbMF0pKQpAQCAtNjYsNyArNjYsNyBAQAogCiBzdGF0aWMgdm9pZCBjZmdfdmNjZChpbnQgbm8pCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdW5zaWduZWQgc2hvcnQgbWFzazsKIAogCWlmICgodW5zaWduZWQgaW50KW5vID49IHNpemVvZih2Y2NkX21hc2tzKS9zaXplb2YodmNjZF9tYXNrc1swXSkpCkBAIC04MSw3ICs4MSw3IEBACiAKIHN0YXRpYyB2b2lkIHNldF92Y2NkKGludCBubywgaW50IHdoYXQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdW5zaWduZWQgc2hvcnQgbWFzazsKIAogCWlmICgodW5zaWduZWQgaW50KW5vID49IHNpemVvZih2Y2NkX21hc2tzKS9zaXplb2YodmNjZF9tYXNrc1swXSkpCkBAIC05OSw3ICs5OSw3IEBACiAKIHN0YXRpYyB2b2lkIGNmZ19vYyh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXVuc2lnbmVkIHNob3J0IG1hc2sgPSBvY19tYXNrOwogCiAJaW1tYXAtPmltX2lvcG9ydC5pb3BfcGNkaXIgJj0gfm1hc2s7CkBAIC0xMTAsNyArMTEwLDcgQEAKIAogc3RhdGljIGludCBnZXRfb2Modm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1bnNpZ25lZCBzaG9ydCBtYXNrID0gb2NfbWFzazsKIAlpbnQgd2hhdDsKIApAQCAtMTIyLDcgKzEyMiw3IEBACiAKIHN0YXRpYyB2b2lkIGNmZ19zaGRuKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdW5zaWduZWQgc2hvcnQgbWFzazsKIAogCW1hc2sgPSBzaGRuX21hc2s7CkBAIC0xMzQsNyArMTM0LDcgQEAKIAogc3RhdGljIHZvaWQgc2V0X3NoZG4oaW50IHdoYXQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdW5zaWduZWQgc2hvcnQgbWFzazsKIAogCW1hc2sgPSBzaGRuX21hc2s7CkBAIC0xNTAsOCArMTUwLDggQEAKIAl2b2xhdGlsZSBpbW1hcF90CSppbW1hcDsKIAl2b2xhdGlsZSBjcG04eHhfdAkqY3A7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0pKTsKIAogCiAJY2ZnX3ZwcGQoMCk7IGNmZ192cHBkKDEpOwkvKiBWUFBEMCxWUFBEMSBWQVZQUCA9PiBIaS1aICovCkBAIC0xODQsMTAgKzE4NCwxMCBAQAogCiAJdWRlbGF5KDEwMDAwKTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlzeXNwICA9IChzeXNjb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3NpdV9jb25mKSk7Ci0JcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKLQljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwlzeXNwICA9IChzeXNjb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9zaXVfY29uZikpOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOworCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtKSk7CiAKIAkvKiBDb25maWd1cmUgUG9ydHMgZm9yIFRQUzIyMTFBIFBDLUNhcmQgUG93ZXItSW50ZXJmYWNlIFN3aXRjaCAqLwogCWNmZ19wb3J0cyAoKTsKQEAgLTI3Myw4ICsyNzMsOCBAQAogCiAJZGVidWcgKCJoYXJkd2FyZV9kaXNhYmxlOiAiIFBDTUNJQV9CT0FSRF9NU0cgIiBTbG90ICVjXG4iLCAnQScrc2xvdCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKKwlpbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogCiAJLyogQ29uZmlndXJlIFBDTUNJQSBHZW5lcmFsIENvbnRyb2wgUmVnaXN0ZXIgKi8KIAlkZWJ1ZyAoIkRpc2FibGUgUENNQ0lBIGJ1ZmZlcnMgYW5kIGFzc2VydCBSRVNFVFxuIik7CkBAIC0zMDcsOSArMzA3LDkgQEAKIAkJCSIgU2xvdCAlYywgVmNjPSVkLiVkLCBWcHA9JWQuJWRcbiIsCiAJJ0EnK3Nsb3QsIHZjYy8xMCwgdmNjJTEwLCB2cHAvMTAsIHZjYyUxMCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSkpOwotCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbSkpOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogCS8qCiAJKiBEaXNhYmxlIFBDTUNJQSBidWZmZXJzIChpc29sYXRlIHRoZSBpbnRlcmZhY2UpCiAJKiBhbmQgYXNzZXJ0IFJFU0VUIHNpZ25hbApkaWZmIC0tZ2l0IGEvYm9hcmQvbmV0dGEyL2ZsYXNoLmMgYi9ib2FyZC9uZXR0YTIvZmxhc2guYwppbmRleCBjZWZmZjcxLi5iNjNmNDU5IDEwMDY0NAotLS0gYS9ib2FyZC9uZXR0YTIvZmxhc2guYworKysgYi9ib2FyZC9uZXR0YTIvZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC0zOCwxMyArMzgsMTMgQEAKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBzaXplOwogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpCisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpCiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCiAJc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopIEZMQVNIX0JBU0UwX1BSRUxJTSwgJmZsYXNoX2luZm9bMF0pOwpAQCAtNTUsMTcgKzU1LDE3IEBACiAJfQogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplICYgMHhGRkZGODAwMCk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCAobWVtY3RsLT5tZW1jX2JyMCAmIH4oQlJfQkFfTVNLKSk7CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplICYgMHhGRkZGODAwMCk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgKG1lbWN0bC0+bWVtY19icjAgJiB+KEJSX0JBX01TSykpOwogCiAJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKSBDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCkBAIC00MjUsNyArNDI1LDcgQEAKIAlsYXN0ID0gc3RhcnQ7CiAJYWRkciA9ICh2dV9jaGFyICopIChpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAweDgwKSAhPSAweDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTQ5OCw3ICs0OTgsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAl3aGlsZSAoKCooKHZ1X2NoYXIgKikgZGVzdCkgJiAweDgwKSAhPSAoZGF0YSAmIDB4ODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9uZXR0YTIvbmV0dGEyLmMgYi9ib2FyZC9uZXR0YTIvbmV0dGEyLmMKaW5kZXggMWRiZGRlMS4uMmNlMzNjZiAxMDA2NDQKLS0tIGEvYm9hcmQvbmV0dGEyL25ldHRhMi5jCisrKyBiL2JvYXJkL25ldHRhMi9uZXR0YTIuYwpAQCAtMzU0LDcgKzM1NCw3IEBACiAjZGVmaW5lIE1BUl9TRFJBTV9JTklUCQkoKENBU19MQVRFTkNZIDw8IDYpIHwgMHgwMDAwMDAwOExVKQogCiAvKiA4ICovCi0jZGVmaW5lIENGR19NQU1SCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVIJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKQEAgLTQwNCw3ICs0MDQsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbShpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplOwogCkBAIC00MjAsMTAgKzQyMCwxMCBAQAogCS8qCiAJICogTWFwIGNvbnRyb2xsZXIgYmFuayAzIHRvIHRoZSBTRFJBTSBiYW5rIGF0IHByZWxpbWluYXJ5IGFkZHJlc3MuCiAJICovCi0JbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjMgPSBDRkdfQlIzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19PUjNfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjMgPSBDT05GSUdfU1lTX0JSM19QUkVMSU07CiAKLQltZW1jdGwtPm1lbWNfbWJtciA9IENGR19NQU1SICYgfk1BTVJfUFRBRTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWJtciA9IENPTkZJR19TWVNfTUFNUiAmIH5NQU1SX1BUQUU7CS8qIG5vIHJlZnJlc2ggeWV0ICovCiAKIAl1ZGVsYXkoMjAwKTsKIApAQCAtNTQ0LDcgKzU0NCw3IEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2Yodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGlvcDh4eF90ICppb3BvcnQgPSAmaW1tYXAtPmltX2lvcG9ydDsKIAl2b2xhdGlsZSBjcG04eHhfdCAqY3BtID0gJmltbWFwLT5pbV9jcG07CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwpAQCAtNjAwLDEzICs2MDAsMTMgQEAKICNpbmNsdWRlIDxsaW51eC9tdGQvbmFuZF9sZWdhY3kuaD4KIAogZXh0ZXJuIHVsb25nIG5hbmRfcHJvYmUodWxvbmcgcGh5c2Fkcik7Ci1leHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NGR19NQVhfTkFORF9ERVZJQ0VdOworZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRV07CiAKIHZvaWQgbmFuZF9pbml0KHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyB0b3RsZW47CiAKLQl0b3RsZW4gPSBuYW5kX3Byb2JlKENGR19OQU5EX0JBU0UpOworCXRvdGxlbiA9IG5hbmRfcHJvYmUoQ09ORklHX1NZU19OQU5EX0JBU0UpOwogCXByaW50ZiAoIiU0bHUgTUJcbiIsIHRvdGxlbiA+PiAyMCk7CiB9CiAjZW5kaWYKQEAgLTYyMCw3ICs2MjAsNyBAQAogCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WKSAmJiBkZWZpbmVkKENGR19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVikgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUpCiBpbnQgb3ZlcndyaXRlX2NvbnNvbGUodm9pZCkKIHsKIAkvKiBwcmludGYoIm92ZXJ3cml0ZV9jb25zb2xlIGNhbGxlZFxuIik7ICovCkBAIC02NDUsMTAgKzY0NSwxMCBAQAogCiAjaWYgQ09ORklHX05FVFRBMl9WRVJTSU9OID09IDIKIAkvKiBhc3NlcnQgcGVyaXBoZXJhbCByZXNldCAqLwotCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCAmPSB+X0JXKDEyKTsKKwkoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICY9IH5fQlcoMTIpOwogCWZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKQogCQl1ZGVsYXkoMTAwMCk7Ci0JKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0IHw9ICBfQlcoMTIpOworCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQgfD0gIF9CVygxMik7CiAjZW5kaWYKIAlyZXNldF9waHlzKCk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL25ldHZpYS9mbGFzaC5jIGIvYm9hcmQvbmV0dmlhL2ZsYXNoLmMKaW5kZXggNjQ3ZjU5NC4uOTg0NzlhNSAxMDA2NDQKLS0tIGEvYm9hcmQvbmV0dmlhL2ZsYXNoLmMKKysrIGIvYm9hcmQvbmV0dmlhL2ZsYXNoLmMKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtMzgsMTMgKzM4LDEzIEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZTsKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKQorCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKQogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAogCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKSBGTEFTSF9CQVNFMF9QUkVMSU0sICZmbGFzaF9pbmZvWzBdKTsKQEAgLTU0LDE3ICs1NCwxNyBAQAogCX0KIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZSAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgKG1lbWN0bC0+bWVtY19icjAgJiB+KEJSX0JBX01TSykpOworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZSAmIDB4RkZGRjgwMDApOworCW1lbWN0bC0+bWVtY19icjAgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IChtZW1jdGwtPm1lbWNfYnIwICYgfihCUl9CQV9NU0spKTsKIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikgQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikgQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLQlmbGFzaF9nZXRfb2Zmc2V0cyhDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQlDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX3Byb3RlY3QgKCBGTEFHX1BST1RFQ1RfU0VULApAQCAtNDI3LDcgKzQyNyw3IEBACiAJbGFzdCA9IHN0YXJ0OwogCWFkZHIgPSAodnVfY2hhciAqKSAoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJd2hpbGUgKChhZGRyWzBdICYgMHg4MCkgIT0gMHg4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC01MDAsNyArNTAwLDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIoMCk7CiAJd2hpbGUgKCgqKCh2dV9jaGFyICopIGRlc3QpICYgMHg4MCkgIT0gKGRhdGEgJiAweDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbmV0dmlhL25ldHZpYS5jIGIvYm9hcmQvbmV0dmlhL25ldHZpYS5jCmluZGV4IDQxNDBiYWMuLjBiMDMyYzQgMTAwNjQ0Ci0tLSBhL2JvYXJkL25ldHZpYS9uZXR2aWEuYworKysgYi9ib2FyZC9uZXR2aWEvbmV0dmlhLmMKQEAgLTI0Nyw3ICsyNDcsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbShpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplOwogCkBAIC0yNTYsMTcgKzI1NiwxNyBAQAogCS8qCiAJICogUHJlbGltaW5hcnkgcHJlc2NhbGVyIGZvciByZWZyZXNoCiAJICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzFCS184SzsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzFCS184SzsKIAogCW1lbWN0bC0+bWVtY19tYXIgPSBNQVJfU0RSQU1fSU5JVDsJLyogMzItYml0IGFkZHJlc3MgdG8gYmUgb3V0cHV0IG9uIHRoZSBhZGRyZXNzIGJ1cyBpZiBBTVggPSAwYjExICovCiAKICAgICAvKgogICAgICAqIE1hcCBjb250cm9sbGVyIGJhbmsgMyB0byB0aGUgU0RSQU0gYmFuayBhdCBwcmVsaW1pbmFyeSBhZGRyZXNzLgogICAgICAqLwotCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfT1IzX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl85Q09MICYgfk1BTVJfUFRBRTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl85Q09MICYgfk1BTVJfUFRBRTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAogCXVkZWxheSgyMDApOwogCkBAIC0yODIsNyArMjgyLDcgQEAKIAogCXVkZWxheSgxMDAwKTsKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOUNPTDsKKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl85Q09MOwogCiAJc2l6ZSA9IFNEUkFNX01BWF9TSVpFOwogCkBAIC0zNTgsNyArMzU4LDcgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZih2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgaW9wOHh4X3QgKmlvcG9ydCA9ICZpbW1hcC0+aW1faW9wb3J0OwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcG0gPSAmaW1tYXAtPmltX2NwbTsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CkBAIC00MjEsMTEgKzQyMSwxMSBAQAogI2luY2x1ZGUgPGxpbnV4L210ZC9uYW5kX2xlZ2FjeS5oPgogCiBleHRlcm4gdWxvbmcgbmFuZF9wcm9iZSh1bG9uZyBwaHlzYWRyKTsKLWV4dGVybiBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ0ZHX01BWF9OQU5EX0RFVklDRV07CitleHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFXTsKIAogdm9pZCBuYW5kX2luaXQodm9pZCkKIHsKLQl1bnNpZ25lZCBsb25nIHRvdGxlbiA9IG5hbmRfcHJvYmUoQ0ZHX05BTkRfQkFTRSk7CisJdW5zaWduZWQgbG9uZyB0b3RsZW4gPSBuYW5kX3Byb2JlKENPTkZJR19TWVNfTkFORF9CQVNFKTsKIAogCXByaW50ZiAoIiU0bHUgTUJcbiIsIHRvdGxlbiA+PiAyMCk7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9uczk3NTBkZXYvZmxhc2guYyBiL2JvYXJkL25zOTc1MGRldi9mbGFzaC5jCmluZGV4IDJiNjJiZWYuLjViNTZiOTggMTAwNjQ0Ci0tLSBhL2JvYXJkL25zOTc1MGRldi9mbGFzaC5jCisrKyBiL2JvYXJkL25zOTc1MGRldi9mbGFzaC5jCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDIwMDAwCS8qIDI1NiBLQiBzZWN0b3JzICh4MikgKi8KLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAvKiBCb2FyZCBzdXBwb3J0IGZvciAxIG9yIDIgZmxhc2ggZGV2aWNlcyAqLwogI3VuZGVmIEZMQVNIX1BPUlRfV0lEVEgzMgpAQCAtODgsNyArODgsNyBAQAogewogCWludCBpOwogCXVsb25nIHNpemUgPSAwOwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgUEhZU19GTEFTSF8xLCAmZmxhc2hfaW5mb1tpXSk7CkBAIC0xMDQsOCArMTA0LDggQEAKIAkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCQlDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOworCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAogCQkJQ09ORklHX0VOVl9BRERSLApAQCAtMjI3LDEwICsyMjcsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMzIyLDcgKzMyMiw3IEBACiAJCQkJKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0KIAkJCQkoRlBXKSAweDAwODAwMDgwKSB7CiAJCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4KLQkJCQkJQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQkJQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CkBAIC00NTgsNyArNDU4LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9ueDgyMy9mbGFzaC5jIGIvYm9hcmQvbng4MjMvZmxhc2guYwppbmRleCA1ODE5MjVlLi4xOTRkODQxIDEwMDY0NAotLS0gYS9ib2FyZC9ueDgyMy9mbGFzaC5jCisrKyBiL2JvYXJkL254ODIzL2ZsYXNoLmMKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiBleHRlcm4gdV9sb25nICAqbXlfc2VybnVtOwkJLyogZnJvbSBueDgyMy5jICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTYzLDEzICs2MywxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjA7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTgyLDE4ICs4MiwxOCBAQAogCX0KIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9NU19HUENNIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX01TX0dQQ00gfCBCUl9WOwogCiAJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgoRlBXICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKEZQVyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgQ0ZHX0ZMQVNIX0JBU0UsCi0JCQkgICAgQ0ZHX0ZMQVNIX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQkgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZV9iMDsKQEAgLTIyMCwxMCArMjIwLDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IChGUFcpMHgwMEZGMDBGRjsgICAgICAvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMjk0LDcgKzI5NCw3IEBACiAJCQl1ZGVsYXkgKDEwMDApOwogCiAJCQl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKTB4MDA4MDAwODApICE9IChGUFcpMHgwMDgwMDA4MCkgewotCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJKmFkZHIgPSAoRlBXKTB4MDBCMDAwQjA7IC8qIHN1c3BlbmQgZXJhc2UJICAqLwogCQkJCQkqYWRkciA9IChGUFcpMHgwMEZGMDBGRjsgLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC0zNDMsOSArMzQzLDkgQEAKICNlbmRpZgogCiAJLyogc2F2ZSBzZXJudW0gaWYgbmVlZGVkICovCi0JaWYgKGFkZHIgPj0gQ0ZHX0ZMQVNIX1NOX1NFQ1RPUiAmJiBhZGRyIDwgQ0ZHX0ZMQVNIX1NOX0JBU0UpCisJaWYgKGFkZHIgPj0gQ09ORklHX1NZU19GTEFTSF9TTl9TRUNUT1IgJiYgYWRkciA8IENPTkZJR19TWVNfRkxBU0hfU05fQkFTRSkKIAl7Ci0JCXVfbG9uZyBkZXN0ID0gQ0ZHX0ZMQVNIX1NOX0JBU0U7CisJCXVfbG9uZyBkZXN0ID0gQ09ORklHX1NZU19GTEFTSF9TTl9CQVNFOwogCQl1X3Nob3J0ICpzbiA9ICh1X3Nob3J0ICopbXlfc2VybnVtOwogCiAJCXByaW50ZigiKHNhdmluZyBzZXJudW0pIik7CkBAIC00NTIsNyArNDUyLDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAKIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKTB4MDA4MDAwODApICE9IChGUFcpMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpMHgwMEZGMDBGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL254ODIzL254ODIzLmMgYi9ib2FyZC9ueDgyMy9ueDgyMy5jCmluZGV4IDE4ODQwZmYuLmRmOWFhYWIgMTAwNjQ0Ci0tLSBhL2JvYXJkL254ODIzL254ODIzLmMKKysrIGIvYm9hcmQvbng4MjMvbng4MjMuYwpAQCAtMTU5LDcgKzE1OSw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplX2IwLCBzaXplX2IxLCBzaXplOCwgc2l6ZTk7CiAKQEAgLTE3MCwyMiArMTcwLDIyIEBACiAJICogVXAgdG8gMiBCYW5rcyBvZiA2NE1iaXQgeCAyIGRldmljZXMKIAkgKiBJbml0aWFsIGJ1aWxkcyBvbmx5IGhhdmUgMQogCSAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8xQktfNEs7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8xQktfNEs7CiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIFNEUkFNIGJhbmsgMAogCSAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1IxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAl1ZGVsYXkgKDIwMCk7CiAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIFNEUkFNIGJhbmsgMQogCSAqLwotCW1lbWN0bC0+bWVtY19vcjIgPSBDRkdfT1IyX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIyID0gQ0ZHX0JSMl9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOwogCiAJLyoKIAkgKiBQZXJmb3JtIFNEUkFNIGluaXRpYWxpenNhdGlvbiBzZXF1ZW5jZQpAQCAtMjA5LDcgKzIwOSw3IEBACiAJICogd2l0aCB0d28gU0RSQU0gYmFua3Mgb3IgZm91ciBjeWNsZXMgZXZlcnkgMzEuMiB1cyB3aXRoIG9uZQogCSAqIGJhbmsuIEl0IHdpbGwgYmUgYWRqdXN0ZWQgYWZ0ZXIgbWVtb3J5IHNpemluZy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzhLOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzhLOwogCiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKQEAgLTIxOSw3ICsyMTksNyBAQAogCSAqCiAJICogdHJ5IDggY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOCA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOENPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTFfUFJFTElNLAorCXNpemU4ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOENPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTFfUFJFTElNLAogCQkJICAgU0RSQU1fTUFYX1NJWkUpOwogCiAJdWRlbGF5ICgxMDAwKTsKQEAgLTIyNyw3ICsyMjcsNyBAQAogCS8qCiAJICogdHJ5IDkgY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOSA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOUNPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTFfUFJFTElNLAorCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTFfUFJFTElNLAogCQkJICAgU0RSQU1fTUFYX1NJWkUpOwogCiAJaWYgKHNpemU4IDwgc2l6ZTkpIHsJLyogbGVhdmUgY29uZmlndXJhdGlvbiBhdCA5IGNvbHVtbnMgICAgICovCkBAIC0yMzUsNyArMjM1LDcgQEAKIC8qCWRlYnVnICgiU0RSQU0gQmFuayAwIGluIDkgY29sdW1uIG1vZGU6ICVsZCBNQlxuIiwgc2l6ZSA+PiAyMCk7CSovCiAJfSBlbHNlIHsJCS8qIGJhY2sgdG8gOCBjb2x1bW5zICAgICAgICAgICAgICAgICAgICAqLwogCQlzaXplX2IwID0gc2l6ZTg7Ci0JCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOENPTDsKKwkJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTDsKIAkJdWRlbGF5ICg1MDApOwogLyoJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOCBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsJKi8KIAl9CkBAIC0yNTgsNyArMjU4LDcgQEAKIAkgKi8KIAlpZiAoKHNpemVfYjAgPCAweDAyMDAwMDAwKSAmJiAoc2l6ZV9iMSA8IDB4MDIwMDAwMDApKSB7CiAJCS8qIHJlZHVjZSB0byAxNS42IHVzICg2Mi40IHVzIC8gcXVhZCkgKi8KLQkJbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzJCS180SzsKKwkJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfNEs7CiAJCXVkZWxheSAoMTAwMCk7CiAJfQogCkBAIC0yNjgsOSArMjY4LDkgQEAKIAlpZiAoc2l6ZV9iMSA+IHNpemVfYjApIHsJLyogU0RSQU0gQmFuayAxIGlzIGJpZ2dlciAtIG1hcCBmaXJzdCAgICovCiAKIAkJbWVtY3RsLT5tZW1jX29yMiA9Ci0JCQkoKC1zaXplX2IxKSAmIDB4RkZGRjAwMDApIHwgQ0ZHX09SX1RJTUlOR19TRFJBTTsKKwkJCSgoLXNpemVfYjEpICYgMHhGRkZGMDAwMCkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKIAkJbWVtY3RsLT5tZW1jX2JyMiA9Ci0JCQkoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CisJCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCiAJCWlmIChzaXplX2IwID4gMCkgewogCQkJLyoKQEAgLTI3OCw5ICsyNzgsOSBAQAogCQkJICovCiAJCQltZW1jdGwtPm1lbWNfb3IxID0KIAkJCQkoKC1zaXplX2IwKSAmIDB4RkZGRjAwMDApIHwKLQkJCQlDRkdfT1JfVElNSU5HX1NEUkFNOworCQkJCUNPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOwogCQkJbWVtY3RsLT5tZW1jX2JyMSA9Ci0JCQkJKChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwKKwkJCQkoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwKIAkJCQkgQlJfVikKIAkJCQkrIHNpemVfYjE7CiAJCX0gZWxzZSB7CkBAIC0yOTUsMTYgKzI5NSwxNiBAQAogCiAJCQkvKiBhZGp1c3QgcmVmcmVzaCByYXRlIGRlcGVuZGluZyBvbiBTRFJBTSB0eXBlLCBvbmUgYmFuayAqLwogCQkJcmVnID0gbWVtY3RsLT5tZW1jX21wdHByOwotCQkJcmVnID4+PSAxOwkvKiByZWR1Y2UgdG8gQ0ZHX01QVFBSXzFCS184SyAvIF80SyAqLworCQkJcmVnID4+PSAxOwkvKiByZWR1Y2UgdG8gQ09ORklHX1NZU19NUFRQUl8xQktfOEsgLyBfNEsgKi8KIAkJCW1lbWN0bC0+bWVtY19tcHRwciA9IHJlZzsKIAkJfQogCiAJfSBlbHNlIHsJCS8qIFNEUkFNIEJhbmsgMCBpcyBiaWdnZXIgLSBtYXAgZmlyc3QgICAqLwogCiAJCW1lbWN0bC0+bWVtY19vcjEgPQotCQkJKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07CisJCQkoKC1zaXplX2IwKSAmIDB4RkZGRjAwMDApIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU07CiAJCW1lbWN0bC0+bWVtY19icjEgPQotCQkJKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOworCQkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKIAogCQlpZiAoc2l6ZV9iMSA+IDApIHsKIAkJCS8qCkBAIC0zMTIsOSArMzEyLDkgQEAKIAkJCSAqLwogCQkJbWVtY3RsLT5tZW1jX29yMiA9CiAJCQkJKCgtc2l6ZV9iMSkgJiAweEZGRkYwMDAwKSB8Ci0JCQkJQ0ZHX09SX1RJTUlOR19TRFJBTTsKKwkJCQlDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKIAkJCW1lbWN0bC0+bWVtY19icjIgPQotCQkJCSgoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8CisJCQkJKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8CiAJCQkJIEJSX1YpCiAJCQkJKyBzaXplX2IwOwogCQl9IGVsc2UgewpAQCAtMzI5LDcgKzMyOSw3IEBACiAKIAkJCS8qIGFkanVzdCByZWZyZXNoIHJhdGUgZGVwZW5kaW5nIG9uIFNEUkFNIHR5cGUsIG9uZSBiYW5rICovCiAJCQlyZWcgPSBtZW1jdGwtPm1lbWNfbXB0cHI7Ci0JCQlyZWcgPj49IDE7CS8qIHJlZHVjZSB0byBDRkdfTVBUUFJfMUJLXzhLIC8gXzRLICovCisJCQlyZWcgPj49IDE7CS8qIHJlZHVjZSB0byBDT05GSUdfU1lTX01QVFBSXzFCS184SyAvIF80SyAqLwogCQkJbWVtY3RsLT5tZW1jX21wdHByID0gcmVnOwogCQl9CiAJfQpAQCAtMzUyLDcgKzM1Miw3IEBACiBzdGF0aWMgbG9uZyBpbnQgZHJhbV9zaXplIChsb25nIGludCBtYW1yX3ZhbHVlLCBsb25nIGludCAqYmFzZSwKIAkJCSAgIGxvbmcgaW50IG1heHNpemUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAltZW1jdGwtPm1lbWNfbWFtciA9IG1hbXJfdmFsdWU7CkBAIC0zODcsNyArMzg3LDcgQEAKIAliZF90ICpiZCA9IGdkLT5iZDsKIAogCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLQkJYmQtPmJpX3Nlcm51bVtpXSA9ICoodV9jaGFyICopIChDRkdfRkxBU0hfU05fQkFTRSArIGkpOworCQliZC0+Ymlfc2VybnVtW2ldID0gKih1X2NoYXIgKikgKENPTkZJR19TWVNfRkxBU0hfU05fQkFTRSArIGkpOwogCX0KIAliZC0+YmlfZW5ldGFkZHJbMF0gPSAweDEwOwogCWJkLT5iaV9lbmV0YWRkclsxXSA9IDB4MjA7CmRpZmYgLS1naXQgYS9ib2FyZC9vMmRudC9mbGFzaC5jIGIvYm9hcmQvbzJkbnQvZmxhc2guYwppbmRleCAxY2Y3OGM3Li45ZjMwODgwIDEwMDY0NAotLS0gYS9ib2FyZC9vMmRudC9mbGFzaC5jCisrKyBiL2JvYXJkL28yZG50L2ZsYXNoLmMKQEAgLTU1LDcgKzU1LDcgQEAKICNkZWZpbmUgRkxBU0hfQ1lDTEUxCTB4MDU1NQogI2RlZmluZSBGTEFTSF9DWUNMRTIJMHgwMmFhCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTgyLDI1ICs4MiwyNSBAQAogCWZsYXNoX3ByZWluaXQoKTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJbWVtc2V0KCZmbGFzaF9pbmZvW2ldLCAwLCBzaXplb2YoZmxhc2hfaW5mb190KSk7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAogCS8qIFF1ZXJ5IGZsYXNoIGNoaXAgKi8KIAlmbGFzaF9pbmZvWzBdLnNpemUgPQotCQlmbGFzaF9nZXRfc2l6ZSgoRlBXICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwkJZmxhc2hfZ2V0X3NpemUoKEZQVyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCXNpemUgKz0gZmxhc2hfaW5mb1swXS5zaXplOwogCiAJLyogZ2V0IHRoZSBoL3cgYW5kIHMvdyBwcm90ZWN0aW9uIHN0YXR1cyBpbiBzeW5jICovCiAJZmxhc2hfc3luY19yZWFsX3Byb3RlY3QoJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX01PTklUT1JfQkFTRSwKLQkJCUNGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKLQkJCWZsYXNoX2dldF9pbmZvKENGR19NT05JVE9SX0JBU0UpKTsKKwkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCWZsYXNoX2dldF9pbmZvKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSk7CiAjZW5kaWYKIAogI2lmZGVmCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gKQEAgLTEzNSw3ICsxMzUsNyBAQAogCWludCBpOwogCWZsYXNoX2luZm9fdCAqIGluZm87CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSArKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSArKykgewogCQlpbmZvID0gJiBmbGFzaF9pbmZvW2ldOwogCQlpZiAoaW5mby0+c2l6ZSAmJgogCQkJCWluZm8tPnN0YXJ0WzBdIDw9IGJhc2UgJiYKQEAgLTE0Myw3ICsxNDMsNyBAQAogCQkJYnJlYWs7CiAJfQogCi0JcmV0dXJuIChpID09IENGR19NQVhfRkxBU0hfQkFOS1MgPyAwIDogaW5mbyk7CisJcmV0dXJuIChpID09IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm8pOwogfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMjgsNyArMzI4LDcgQEAKIAkJdWRlbGF5ICgxMDAwKTsKIAogCQl3aGlsZSAoKCphZGRyICYgKEZQVykgSU5URUxfRklOSVNIRUQpICE9IChGUFcpIElOVEVMX0ZJTklTSEVEKSB7Ci0JCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkqYWRkciA9IChGUFcpIElOVEVMX1NVU1BFTkQ7Lyogc3VzcGVuZCBlcmFzZSAqLwogCQkJCWZsYXNoX3Jlc2V0KGluZm8pOwkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KQEAgLTMzNyw3ICszMzcsNyBAQAogCQkJfQogCiAJCQkvKiBzaG93IHRoYXQgd2UncmUgd2FpdGluZyAqLwotCQkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ0ZHX0haKSB7IC8qIGV2ZXJ5IHNlY29uZCAqLworCQkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ09ORklHX1NZU19IWikgeyAvKiBldmVyeSBzZWNvbmQgKi8KIAkJCQlwdXRjICgnLicpOwogCQkJCWxhc3QgPSBnZXRfdGltZXIoMCk7CiAJCQl9CkBAIC00MjUsNyArNDI1LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgSU5URUxfRklOSVNIRUQpICE9IChGUFcpIElOVEVMX0ZJTklTSEVEKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gKEZQVykgSU5URUxfUkVTRVQ7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CkBAIC00NjQsNyArNDY0LDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAKIAl3aGlsZSAoKCphZGRyICYgSU5URUxfRklOSVNIRUQpICE9IElOVEVMX0ZJTklTSEVEKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9VTkxPQ0tfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUKSB7CiAJCQlwcmludGYgKCJGbGFzaCBsb2NrIGJpdCBvcGVyYXRpb24gdGltZWQgb3V0XG4iKTsKIAkJCXJjID0gMTsKIAkJCWJyZWFrOwpAQCAtNDk0LDcgKzQ5NCw3IEBACiAJCQkJd2hpbGUgKCgqYWRkciAmIElOVEVMX0ZJTklTSEVEKSAhPQogCQkJCSAgICAgICBJTlRFTF9GSU5JU0hFRCkgewogCQkJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPgotCQkJCQkgICAgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUKSB7CisJCQkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUKSB7CiAJCQkJCQlwcmludGYgKCJGbGFzaCBsb2NrIGJpdCBvcGVyYXRpb24gdGltZWQgb3V0XG4iKTsKIAkJCQkJCXJjID0gMTsKIAkJCQkJCWJyZWFrOwpAQCAtNTUwLDcgKzU1MCw3IEBACiAJLyoKIAkgKiBmaXJzdCwgd2FpdCBmb3IgdGhlIFdTTSB0byBiZSBmaW5pc2hlZC4gVGhlIHJhdGlvbmFsZSBmb3IKIAkgKiB3YWl0aW5nIGZvciB0aGUgV1NNIHRvIGJlY29tZSBpZGxlIGZvciBhdCBtb3N0Ci0JICogQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQgaXMgYXMgZm9sbG93cy4gVGhlIFdTTSBjYW4gYmUgYnVzeQorCSAqIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCBpcyBhcyBmb2xsb3dzLiBUaGUgV1NNIGNhbiBiZSBidXN5CiAJICogYmVjYXVzZSBvZjogKDEpIGVyYXNlLCAoMikgcHJvZ3JhbSBvciAoMykgbG9jayBiaXQKIAkgKiBjb25maWd1cmF0aW9uLiBTbyB3ZSBqdXN0IHdhaXQgZm9yIHRoZSBsb25nZXN0IHRpbWVvdXQgb2YKIAkgKiB0aGUgKDEpLSgzKSwgaS5lLiB0aGUgZXJhc2UgdGltZW91dC4KQEAgLTU2Myw3ICs1NjMsNyBAQAogCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKmFkZHIgJiAoRlBXKSBJTlRFTF9GSU5JU0hFRCkgIT0gKEZQVykgSU5URUxfRklOSVNIRUQpIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIElOVEVMX1JFU0VUOyAvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcHJpbnRmKCJXU00gYnVzeSB0b28gbG9uZywgY2FuJ3QgZ2V0IHByb3Qgc3RhdHVzXG4iKTsKIAkJCXJldHVybiAxOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbzJkbnQvbzJkbnQuYyBiL2JvYXJkL28yZG50L28yZG50LmMKaW5kZXggMTlmYWY1Mi4uYzcyYTc0MSAxMDA2NDQKLS0tIGEvYm9hcmQvbzJkbnQvbzJkbnQuYworKysgYi9ib2FyZC9vMmRudC9vMmRudC5jCkBAIC02NSw3ICs2NSw3IEBACiAKIC8qCiAgKiBBVFRFTlRJT046IEFsdGhvdWdoIHBhcnRpYWxseSByZWZlcmVuY2VkIGluaXRkcmFtIGRvZXMgTk9UIG1ha2UgcmVhbCB1c2UKLSAqICAgICAgICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKiAgICAgICAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKiAgICAgICAgICAgIGlzIHNvbWV0aGluZyBlbHNlIHRoYW4gMHgwMDAwMDAwMC4KICAqLwogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQpAQCAtODYsOSArODYsOSBAQAogCiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzAgb25seSAqLwogCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxKTsKLQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CiAJCWRyYW1zaXplID0gdGVzdDE7CkBAIC0xMTQsMTEgKzExNCwxMSBAQAogCWlmICghZHJhbXNpemUpCiAJCXNkcmFtX3N0YXJ0KDApOwogCi0JdGVzdDIgPSB0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSB0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOwogCiAJaWYgKCFkcmFtc2l6ZSkgewogCQlzZHJhbV9zdGFydCgxKTsKLQkJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOwogCX0KIAogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CkBAIC0xNjQsMTAgKzE2NCwxMCBAQAogewogCWlmIChzaXplID09IDB4ODAwMDAwKSB7IC8qIGFkanVzdCBtYXBwaW5nICovCiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX1NUQVJUID0gKih2dV9sb25nICopTVBDNVhYWF9DUzBfU1RBUlQgPQotCQkJU1RBUlRfUkVHKENGR19CT09UQ1NfU1RBUlQgfCBzaXplKTsKKwkJCVNUQVJUX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB8IHNpemUpOwogCiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX1NUT1AgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVE9QID0KLQkJCVNUT1BfUkVHKENGR19CT09UQ1NfU1RBUlQgfCBzaXplLCBzaXplKTsKKwkJCVNUT1BfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJUIHwgc2l6ZSwgc2l6ZSk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9ib2FyZC9vbWFwMTYxMGlubi9mbGFzaC5jIGIvYm9hcmQvb21hcDE2MTBpbm4vZmxhc2guYwppbmRleCBkODhhOTgxLi4zNjIwMGFkIDEwMDY0NAotLS0gYS9ib2FyZC9vbWFwMTYxMGlubi9mbGFzaC5jCisrKyBiL2JvYXJkL29tYXAxNjEwaW5uL2ZsYXNoLmMKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvc3dhYi5oPgogCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFCTB4MDAwMjAwMDAJLyogMjU2IEtCIHNlY3RvcnMgKHgyKSAqLwotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSAgICovCiAKIC8qIEJvYXJkIHN1cHBvcnQgZm9yIDEgb3IgMiBmbGFzaCBkZXZpY2VzICovCiAjdW5kZWYgRkxBU0hfUE9SVF9XSURUSDMyCkBAIC05MCwxMSArOTAsMTEgQEAKIAlpbnQgaTsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgotCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvW2ldKTsKLQkJCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9baV0pOworCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1tpXSk7CisJCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1tpXSk7CiAJCQkvKiB0byByZXNldCB0aGUgbG9jayBiaXQgKi8KIAkJCWZsYXNoX3VubG9jaygmZmxhc2hfaW5mb1tpXSk7CiAJCQlicmVhazsKQEAgLTEwOCw4ICsxMDgsOCBAQAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCQlDRkdfRkxBU0hfQkFTRSwKLQkJCUNGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCiAJCQlDT05GSUdfRU5WX0FERFIsCkBAIC0xMjMsNyArMTIzLDcgQEAKIHZvaWQgZmxhc2hfdW5sb2NrKGZsYXNoX2luZm9fdCAqIGluZm8pCiB7CiAJaW50IGo7Ci0JZm9yIChqPTI7ajxDRkdfTUFYX0ZMQVNIX1NFQ1Q7aisrKXsKKwlmb3IgKGo9MjtqPENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7aisrKXsKIAlGUFdWICphZGRyID0gKEZQV1YgKikgKGluZm8tPnN0YXJ0W2pdKTsKIAlmbGFzaF91bnByb3RlY3Rfc2VjdG9ycyAoYWRkcik7CiAJKmFkZHIgPSAoRlBXKSAweDAwNTAwMDUwOy8qIGNsZWFyIHN0YXR1cyByZWdpc3RlciAqLwpAQCAtMjQ0LDEwICsyNDQsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMzM5LDcgKzMzOSw3IEBACiAJCQkJKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0KIAkJCQkoRlBXKSAweDAwODAwMDgwKSB7CiAJCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4KLQkJCQkJQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQkJQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CkBAIC00NzQsNyArNDc0LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9vbWFwMjQyMGg0L21lbS5jIGIvYm9hcmQvb21hcDI0MjBoNC9tZW0uYwppbmRleCBhMzI5NWZkLi5jOGI0MTg2IDEwMDY0NAotLS0gYS9ib2FyZC9vbWFwMjQyMGg0L21lbS5jCisrKyBiL2JvYXJkL29tYXAyNDIwaDQvbWVtLmMKQEAgLTMyNyw3ICszMjcsNyBAQAogCV9fcmF3X3dyaXRlbCgweDEwLCBHUE1DX1NZU0NPTkZJRyk7CS8qIHNtYXJ0IGlkbGUgKi8KIAlfX3Jhd193cml0ZWwoMHgwLCBHUE1DX0lSUUVOQUJMRSk7CS8qIGlzcidzIHNvdXJjZXMgbWFza2VkICovCiAJX19yYXdfd3JpdGVsKHR2YWwsIEdQTUNfVElNRU9VVF9DT05UUk9MKTsvKiB0aW1lb3V0IGRpc2FibGUgKi8KLSNpZmRlZiBDRkdfTkFORF9CT09UCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0JPT1QKIAlfX3Jhd193cml0ZWwoMHgwMDEsIEdQTUNfQ09ORklHKTsJLyogc2V0IG5XUCwgZGlzYWJsZSBsaW1pdGVkIGFkZHIgKi8KICNlbHNlCiAJX19yYXdfd3JpdGVsKDB4MTExLCBHUE1DX0NPTkZJRyk7CS8qIHNldCBuV1AsIGRpc2FibGUgbGltaXRlZCBhZGRyICovCkBAIC0zNDMsNyArMzQzLDcgQEAKIAlfX3Jhd193cml0ZWwoMHgwLCBHUE1DX0NPTkZJRzdfMCk7CS8qIGRpc2FibGUgY3VycmVudCBtYXAgKi8KIAlzZGVsYXkoMTAwMCk7CiAKLSNpZmRlZiBDRkdfTkFORF9CT09UCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0JPT1QKIAlfX3Jhd193cml0ZWwoSDRfMjRYWF9HUE1DX0NPTkZJRzFfMHxtdHlwZXxtd2lkdGgsIEdQTUNfQ09ORklHMV8wKTsKICNlbHNlCiAJX19yYXdfd3JpdGVsKEg0XzI0WFhfR1BNQ19DT05GSUcxXzB8bXV4fG10eXBlfG13aWR0aCwgR1BNQ19DT05GSUcxXzApOwpkaWZmIC0tZ2l0IGEvYm9hcmQvb21hcDI0MjBoNC9vbWFwMjQyMGg0LmMgYi9ib2FyZC9vbWFwMjQyMGg0L29tYXAyNDIwaDQuYwppbmRleCAwOWIwNzBkLi4wZmU5MzgwIDEwMDY0NAotLS0gYS9ib2FyZC9vbWFwMjQyMGg0L29tYXAyNDIwaDQuYworKysgYi9ib2FyZC9vbWFwMjQyMGg0L29tYXAyNDIwaDQuYwpAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX05BTkQpCiAjaW5jbHVkZSA8bGludXgvbXRkL25hbmRfbGVnYWN5Lmg+Ci1leHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NGR19NQVhfTkFORF9ERVZJQ0VdOworZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRV07CiAjZW5kaWYKIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CkBAIC0yMDEsNyArMjAxLDcgQEAKIAl1OCB2bW9kZV9vbiA9IDB4OEM7CiAJI2RlZmluZSBOT1RfRUFSTFkgMAogCi0JaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOyAvKiBuZWVkIHRoaXMgYSBiaXQgZWFybHkgKi8KKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsgLyogbmVlZCB0aGlzIGEgYml0IGVhcmx5ICovCiAKIAlidHlwZSA9IGdldF9ib2FyZF90eXBlKCk7CiAJbXR5cGUgPSBnZXRfbWVtX3R5cGUoKTsKQEAgLTI2Nyw3ICsyNjcsNyBAQAogCV9fcmF3X3dyaXRlbCh2LCBDTV9DTEtTRUwyX0NPUkUpOwogCV9fcmF3X3dyaXRlbCgweDEsIENNX0NMS1NFTF9XS1VQKTsKIAotI2lmZGVmIENGR19OUzE2NTUwCisjaWZkZWYgQ09ORklHX1NZU19OUzE2NTUwCiAJLyogRW5hYmxlIFVBUlQxIGNsb2NrICovCiAJZnVuY19jbGtzIHw9IEJJVDIxOwogCWlmX2Nsa3MgfD0gQklUMjE7CkBAIC04NTIsMTYgKzg1MiwxNiBAQAogewogICAgIGV4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tdOwogCi0gICAgbmFuZF9wcm9iZShDRkdfTkFORF9BRERSKTsKKyAgICBuYW5kX3Byb2JlKENPTkZJR19TWVNfTkFORF9BRERSKTsKICAgICBpZiAobmFuZF9kZXZfZGVzY1swXS5DaGlwSUQgIT0gTkFORF9DaGlwSURfVU5LTk9XTikgewogCQlwcmludF9zaXplKG5hbmRfZGV2X2Rlc2NbMF0udG90bGVuLCAiXG4iKTsKICAgICB9CiAKLSNpZmRlZiBDRkdfSkZGUzJfTUVNX05BTkQKLSAgICBmbGFzaF9pbmZvW0NGR19KRkZTMl9GSVJTVF9CQU5LXS5mbGFzaF9pZCA9IG5hbmRfZGV2X2Rlc2NbMF0uaWQ7Ci0gICAgZmxhc2hfaW5mb1tDRkdfSkZGUzJfRklSU1RfQkFOS10uc2l6ZSA9IDEwMjQqMTAyNCoyOyAgICAgIC8qIG9ubHkgcmVhZCBrZXJuZWwgc2luZ2xlIG1lZyBwYXJ0aXRpb24gKi8KLQlmbGFzaF9pbmZvW0NGR19KRkZTMl9GSVJTVF9CQU5LXS5zZWN0b3JfY291bnQgPSAxMDI0OyAgIC8qIDEwMjQgYmxvY2tzIGluIDE2bWVnIGNoaXAgKHVzZSBsZXNzIGZvciByYXcvY29waWVkIHBhcnRpdGlvbikgKi8KLSAgICBmbGFzaF9pbmZvW0NGR19KRkZTMl9GSVJTVF9CQU5LXS5zdGFydFswXSA9IDB4ODAyMDAwMDA7IC8qID8sIHJhbSBmb3Igbm93LCBvcGVuIHF1ZXN0aW9uLCBjb3B5IHRvIFJBTSBvciBhZGFwdCBmb3IgTkFORCAqLworI2lmZGVmIENPTkZJR19TWVNfSkZGUzJfTUVNX05BTkQKKyAgICBmbGFzaF9pbmZvW0NPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOS10uZmxhc2hfaWQgPSBuYW5kX2Rldl9kZXNjWzBdLmlkOworICAgIGZsYXNoX2luZm9bQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LXS5zaXplID0gMTAyNCoxMDI0KjI7ICAgICAgLyogb25seSByZWFkIGtlcm5lbCBzaW5nbGUgbWVnIHBhcnRpdGlvbiAqLworCWZsYXNoX2luZm9bQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LXS5zZWN0b3JfY291bnQgPSAxMDI0OyAgIC8qIDEwMjQgYmxvY2tzIGluIDE2bWVnIGNoaXAgKHVzZSBsZXNzIGZvciByYXcvY29waWVkIHBhcnRpdGlvbikgKi8KKyAgICBmbGFzaF9pbmZvW0NPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOS10uc3RhcnRbMF0gPSAweDgwMjAwMDAwOyAvKiA/LCByYW0gZm9yIG5vdywgb3BlbiBxdWVzdGlvbiwgY29weSB0byBSQU0gb3IgYWRhcHQgZm9yIE5BTkQgKi8KICNlbmRpZgogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9vbWFwNzMwcDIvZmxhc2guYyBiL2JvYXJkL29tYXA3MzBwMi9mbGFzaC5jCmluZGV4IDJiNjJiZWYuLjViNTZiOTggMTAwNjQ0Ci0tLSBhL2JvYXJkL29tYXA3MzBwMi9mbGFzaC5jCisrKyBiL2JvYXJkL29tYXA3MzBwMi9mbGFzaC5jCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDIwMDAwCS8qIDI1NiBLQiBzZWN0b3JzICh4MikgKi8KLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAvKiBCb2FyZCBzdXBwb3J0IGZvciAxIG9yIDIgZmxhc2ggZGV2aWNlcyAqLwogI3VuZGVmIEZMQVNIX1BPUlRfV0lEVEgzMgpAQCAtODgsNyArODgsNyBAQAogewogCWludCBpOwogCXVsb25nIHNpemUgPSAwOwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgUEhZU19GTEFTSF8xLCAmZmxhc2hfaW5mb1tpXSk7CkBAIC0xMDQsOCArMTA0LDggQEAKIAkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCQlDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOworCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAogCQkJQ09ORklHX0VOVl9BRERSLApAQCAtMjI3LDEwICsyMjcsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMzIyLDcgKzMyMiw3IEBACiAJCQkJKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0KIAkJCQkoRlBXKSAweDAwODAwMDgwKSB7CiAJCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4KLQkJCQkJQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQkJQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CkBAIC00NTgsNyArNDU4LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9veGMvZmxhc2guYyBiL2JvYXJkL294Yy9mbGFzaC5jCmluZGV4IDk0ZDI2NjAuLjM2ZTBmY2EgMTAwNjQ0Ci0tLSBhL2JvYXJkL294Yy9mbGFzaC5jCisrKyBiL2JvYXJkL294Yy9mbGFzaC5jCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTQ5LDcgKzQ5LDcgQEAKICAgICBpbnQgaTsKIAogICAgIC8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLSAgICBmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKyAgICBmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAgICAgfQogCkBAIC01OSwxNyArNTksMTcgQEAKICAgICAgKiBhbmQgdGhlIHNpemUgb2YgZmxhc2ggdXNpbmcgMHhGRjgwMDAwMCBhcyB0aGUgYmFzZSBhZGRyZXNzLAogICAgICAqIGFuZCB0aGVuIGNhbGwgZmxhc2hfZ2V0X3NpemUoKSBhZ2FpbiB0byBmaWxsIGZsYXNoX2luZm8uCiAgICAgICovCi0gICAgc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9jaGFyICopQ0ZHX0ZMQVNIX1BSRUxJTUJBU0UsICZmbGFzaF9pbmZvWzBdKTsKKyAgICBzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2NoYXIgKilDT05GSUdfU1lTX0ZMQVNIX1BSRUxJTUJBU0UsICZmbGFzaF9pbmZvWzBdKTsKICAgICBpZiAoc2l6ZSkKICAgICB7CiAJZmxhc2hfZ2V0X3NpemUoKHZ1X2NoYXIgKikoLXNpemUpLCAmZmxhc2hfaW5mb1swXSk7CiAgICAgfQogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX1BSRUxJTUJBU0UpCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfUFJFTElNQkFTRSkKICAgICAvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0yODYsNyArMjg2LDcgQEAKICAgICBsYXN0ICA9IHN0YXJ0OwogICAgIGFkZHIgPSAodnVfY2hhciAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKICAgICB3aGlsZSAoKGFkZHJbMF0gJiAweDgwKSAhPSAweDgwKSB7Ci0JaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCSAgICBwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkgICAgcmV0dXJuIDE7CiAJfQpAQCAtMzYxLDcgKzM2MSw3IEBACiAgICAgLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogICAgIHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKICAgICB3aGlsZSAoKCooKHZ1X2NoYXIgKilkZXN0KSAmIDB4ODApICE9IChkYXRhICYgMHg4MCkpIHsKLQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkgICAgcmV0dXJuICgxKTsKIAl9CiAgICAgfQpkaWZmIC0tZ2l0IGEvYm9hcmQvb3hjL294Yy5jIGIvYm9hcmQvb3hjL294Yy5jCmluZGV4IGViN2VlYjguLjFhMmJkZjQgMTAwNjQ0Ci0tLSBhL2JvYXJkL294Yy9veGMuYworKysgYi9ib2FyZC9veGMvb3hjLmMKQEAgLTM3LDEzICszNywxMyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCWxvbmcgc2l6ZTsKIAlsb25nIG5ld19iYW5rMF9lbmQ7CiAJbG9uZyBtZWFyMTsKIAlsb25nIGVtZWFyMTsKIAotCXNpemUgPSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIENGR19NQVhfUkFNX1NJWkUpOworCXNpemUgPSBnZXRfcmFtX3NpemUoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX01BWF9SQU1fU0laRSk7CiAKIAluZXdfYmFuazBfZW5kID0gc2l6ZSAtIDE7CiAJbWVhcjEgPSBtcGM4MjR4X21wYzEwN19nZXRyZWcoTUVBUjEpOwpAQCAtOTIsMTQgKzkyLDE0IEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7Ci0JKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENGR19DUExEX1JFU0VUKSA9IDB4ODk7CisJKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENPTkZJR19TWVNfQ1BMRF9SRVNFVCkgPSAweDg5OwogCXJldHVybiAwOwogfQogCiAjaWZkZWYgQ09ORklHX1dBVENIRE9HCiB2b2lkIG94Y193ZHRfcmVzZXQodm9pZCkKIHsKLQkqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikoQ0ZHX0NQTERfV0FUQ0hET0cpID0gMHhmZjsKKwkqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikoQ09ORklHX1NZU19DUExEX1dBVENIRE9HKSA9IDB4ZmY7CiB9CiAKIHZvaWQgd2F0Y2hkb2dfcmVzZXQodm9pZCkKQEAgLTEzNSw3ICsxMzUsNyBAQAogCiB2b2lkIGJvYXJkX3Nob3dfYWN0aXZpdHkgKHVsb25nIHRpbWVzdGFtcCkKIHsKLQlpZiAoKHRpbWVzdGFtcCAlIChDRkdfSFogLyAxMCkpID09IDApCisJaWYgKCh0aW1lc3RhbXAgJSAoQ09ORklHX1NZU19IWiAvIDEwKSkgPT0gMCkKIAkJb3hjX3RvZ2dsZV9hY3RpdmVsZWQgKCk7CiB9CiAKQEAgLTE0OCw5ICsxNDgsOSBAQAogCiAJaWYgKChsZWR0b2dnbGUgPiAoMiAqIGFyZykpICYmIGxlZHN0YXR1cykgewogCQlsZWQgXj0gMHg4MDsKLQkJb3hjX2dldF9leHBhbmRlcihDRkdfSTJDX0VYUEFOREVSMF9BRERSLCAmdmFsKTsKKwkJb3hjX2dldF9leHBhbmRlcihDT05GSUdfU1lTX0kyQ19FWFBBTkRFUjBfQUREUiwgJnZhbCk7CiAJCXVkZWxheSgyMDApOwotCQlveGNfc2V0X2V4cGFuZGVyKENGR19JMkNfRVhQQU5ERVIwX0FERFIsICh2YWwgJiAweDdGKSB8IGxlZCk7CisJCW94Y19zZXRfZXhwYW5kZXIoQ09ORklHX1NZU19JMkNfRVhQQU5ERVIwX0FERFIsICh2YWwgJiAweDdGKSB8IGxlZCk7CiAJCWxlZHRvZ2dsZSA9IDA7CiAJfQogfQpAQCAtMTY1LDEzICsxNjUsMTMgQEAKIAogCWlmIChhcmcgPiAwICYmIGxlZHN0YXR1cykgewogCQlsZWRzdGF0dXMgPSAwOwotCQlveGNfZ2V0X2V4cGFuZGVyKENGR19JMkNfRVhQQU5ERVIwX0FERFIsICZ2YWwpOworCQlveGNfZ2V0X2V4cGFuZGVyKENPTkZJR19TWVNfSTJDX0VYUEFOREVSMF9BRERSLCAmdmFsKTsKIAkJdWRlbGF5KDIwMCk7Ci0JCW94Y19zZXRfZXhwYW5kZXIoQ0ZHX0kyQ19FWFBBTkRFUjBfQUREUiwgdmFsIHwgMHg4MCk7CisJCW94Y19zZXRfZXhwYW5kZXIoQ09ORklHX1NZU19JMkNfRVhQQU5ERVIwX0FERFIsIHZhbCB8IDB4ODApOwogCX0gZWxzZSBpZiAoYXJnIDwgMCkgewotCQlveGNfZ2V0X2V4cGFuZGVyKENGR19JMkNfRVhQQU5ERVIwX0FERFIsICZ2YWwpOworCQlveGNfZ2V0X2V4cGFuZGVyKENPTkZJR19TWVNfSTJDX0VYUEFOREVSMF9BRERSLCAmdmFsKTsKIAkJdWRlbGF5KDIwMCk7Ci0JCW94Y19zZXRfZXhwYW5kZXIoQ0ZHX0kyQ19FWFBBTkRFUjBfQUREUiwgdmFsICYgMHg3Rik7CisJCW94Y19zZXRfZXhwYW5kZXIoQ09ORklHX1NZU19JMkNfRVhQQU5ERVIwX0FERFIsIHZhbCAmIDB4N0YpOwogCQlsZWRzdGF0dXMgPSAxOwogCX0KIH0KQEAgLTE4MCwyMSArMTgwLDIxIEBACiBpbnQgbWlzY19pbml0X3IgKHZvaWQpCiB7CiAJLyogY2hlY2sgd2hldGhlciB0aGUgaTJjIGV4cGFuZGVyICMwIGlzIGFjY2Vzc2libGUgKi8KLQlpZiAoIW94Y19zZXRfZXhwYW5kZXIoQ0ZHX0kyQ19FWFBBTkRFUjBfQUREUiwgMHg3RikpIHsKKwlpZiAoIW94Y19zZXRfZXhwYW5kZXIoQ09ORklHX1NZU19JMkNfRVhQQU5ERVIwX0FERFIsIDB4N0YpKSB7CiAJCXVkZWxheSgyMDApOwogCQlleHBhbmRlcjBhbGl2ZSA9IDE7CiAJfQogCi0jaWZkZWYgQ0ZHX09YQ19HRU5FUkFURV9JUAorI2lmZGVmIENPTkZJR19TWVNfT1hDX0dFTkVSQVRFX0lQCiAJewogCQljaGFyIHN0clszMl07Ci0JCXVuc2lnbmVkIGxvbmcgaXAgPSBDRkdfT1hDX0lQTUFTSzsKKwkJdW5zaWduZWQgbG9uZyBpcCA9IENPTkZJR19TWVNfT1hDX0lQTUFTSzsKIAkJYmRfdCAqYmQgPSBnZC0+YmQ7CiAKIAkJaWYgKGV4cGFuZGVyMGFsaXZlKSB7CiAJCQl1bnNpZ25lZCBjaGFyIHZhbDsKIAotCQkJaWYgKCFveGNfZ2V0X2V4cGFuZGVyKENGR19JMkNfRVhQQU5ERVIwX0FERFIsICZ2YWwpKSB7CisJCQlpZiAoIW94Y19nZXRfZXhwYW5kZXIoQ09ORklHX1NZU19JMkNfRVhQQU5ERVIwX0FERFIsICZ2YWwpKSB7CiAJCQkJaXAgPSAoaXAgJiAweGZmZmZmZjAwKSB8ICgodmFsICYgMHg3YykgPj4gMik7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3BiMXgwMC9mbGFzaC5jIGIvYm9hcmQvcGIxeDAwL2ZsYXNoLmMKaW5kZXggM2NmMjllOC4uYTJmZWQxZCAxMDA2NDQKLS0tIGEvYm9hcmQvcGIxeDAwL2ZsYXNoLmMKKysrIGIvYm9hcmQvcGIxeDAwL2ZsYXNoLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogZmxhc2hfaW5pdCgpCmRpZmYgLS1naXQgYS9ib2FyZC9wYjF4MDAvcGIxeDAwLmMgYi9ib2FyZC9wYjF4MDAvcGIxeDAwLmMKaW5kZXggODJlMjYxMy4uNzczZTQ0NiAxMDA2NDQKLS0tIGEvYm9hcmQvcGIxeDAwL3BiMXgwMC5jCisrKyBiL2JvYXJkL3BiMXgwMC9wYjF4MDAuYwpAQCAtMTAwLDE5ICsxMDAsMTkgQEAKIAkvKiBXZSBkb250IG5lZWQgdGhlZXNlIHVubGVzcyB3ZSBydW4gd2hvbGUgcGNtY2lhIHBhY2thZ2UgKi8KIAl3cml0ZV9vbmVfdGxiKDIwLCAgICAgICAgICAgICAgICAgLyogaW5kZXggKi8KIAkJICAgICAgMHgwMWZmZTAwMCwgICAgICAgICAvKiBQYWdlbWFzaywgMTYgTUIgcGFnZXMgKi8KLQkJICAgICAgQ0ZHX1BDTUNJQV9JT19CQVNFLCAvKiBIaSAqLworCQkgICAgICBDT05GSUdfU1lTX1BDTUNJQV9JT19CQVNFLCAvKiBIaSAqLwogCQkgICAgICAweDNDMDAwMDE3LCAgICAgICAgIC8qIExvMCAqLwogCQkgICAgICAweDNDMjAwMDE3KTsgICAgICAgIC8qIExvMSAqLwogCiAJd3JpdGVfb25lX3RsYigyMSwgICAgICAgICAgICAgICAgICAgLyogaW5kZXggKi8KIAkJICAgICAgMHgwMWZmZTAwMCwgICAgICAgICAgIC8qIFBhZ2VtYXNrLCAxNiBNQiBwYWdlcyAqLwotCQkgICAgICBDRkdfUENNQ0lBX0FUVFJfQkFTRSwgLyogSGkgKi8KKwkJICAgICAgQ09ORklHX1NZU19QQ01DSUFfQVRUUl9CQVNFLCAvKiBIaSAqLwogCQkgICAgICAweDNEMDAwMDE3LCAgICAgICAgICAgLyogTG8wICovCiAJCSAgICAgIDB4M0QyMDAwMTcpOyAgICAgICAgICAvKiBMbzEgKi8KICNlbmRpZgkvKiAwICovCiAJd3JpdGVfb25lX3RsYigyMiwgICAgICAgICAgICAgICAgICAgLyogaW5kZXggKi8KIAkJICAgICAgMHgwMWZmZTAwMCwgICAgICAgICAgIC8qIFBhZ2VtYXNrLCAxNiBNQiBwYWdlcyAqLwotCQkgICAgICBDRkdfUENNQ0lBX01FTV9BRERSLCAgLyogSGkgKi8KKwkJICAgICAgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIsICAvKiBIaSAqLwogCQkgICAgICAweDNFMDAwMDE3LCAgICAgICAgICAgLyogTG8wICovCiAJCSAgICAgIDB4M0UyMDAwMTcpOyAgICAgICAgICAvKiBMbzEgKi8KICNlbmRpZgkvKiBDT05GSUdfSURFX1BDTUNJQSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvcGNpcHBjMi9jcGM3MTBfaW5pdF9yYW0uYyBiL2JvYXJkL3BjaXBwYzIvY3BjNzEwX2luaXRfcmFtLmMKaW5kZXggMTcxZjA2Yy4uODk0NTM1MSAxMDA2NDQKLS0tIGEvYm9hcmQvcGNpcHBjMi9jcGM3MTBfaW5pdF9yYW0uYworKysgYi9ib2FyZC9wY2lwcGMyL2NwYzcxMF9pbml0X3JhbS5jCkBAIC04MSw3ICs4MSw3IEBACiAJdW5zaWduZWQgbG9uZyBiYW5rX3NpemU7CiAJdTMyIG1jZXI7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJLyogQ2xlYXIgbWVtb3J5IGJhbmtzCiAJICovCiAJb3V0MzIgKFJFRyAoU0RSQU0wLCBNQ0VSMCksIDApOwpAQCAtMTA3LDE0ICsxMDcsMTQgQEAKIAkJaGFuZyAoKTsKIAl9CiAJbWVtc2l6ZSArPSBiYW5rX3NpemU7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCS8qIEVuYWJsZSBiYW5rLCB6ZXJvIHN0YXJ0CiAJICovCiAJb3V0MzIgKFJFRyAoU0RSQU0wLCBNQ0VSMCksIG1jZXIgfCAweDgwMDAwMDAwKTsKIAlpb2JhcnJpZXJfcncgKCk7CiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkvKiBFbmFibGUgbWVtb3J5CiAJICovCiAJb3V0MzIgKFJFRyAoU0RSQU0wLCBNQ0NSKSwgaW4zMiAoUkVHIChTRFJBTTAsIE1DQ1IpKSB8IDB4ODAwMDAwMDApOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcGNpcHBjMi9mbGFzaC5jIGIvYm9hcmQvcGNpcHBjMi9mbGFzaC5jCmluZGV4IGE5MTVmYmUuLmVjNjA0ZTAgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BjaXBwYzIvZmxhc2guYworKysgYi9ib2FyZC9wY2lwcGMyL2ZsYXNoLmMKQEAgLTM5LDcgKzM5LDcgQEAKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogc3RhdGljIHVsb25nIGZsYXNoX2dldF9zaXplICh1bG9uZyBhZGRyLCBmbGFzaF9pbmZvX3QgKmluZm8pOwogc3RhdGljIGludCBmbGFzaF9nZXRfb2Zmc2V0cyAodWxvbmcgYmFzZSwgZmxhc2hfaW5mb190ICppbmZvKTsKQEAgLTUyLDI1ICs1MiwyNSBAQAogCXVuc2lnbmVkIGxvbmcgZmxhc2hfc2l6ZSA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSAwOwogCQlmbGFzaF9pbmZvW2ldLnNpemUgPSAwOwogCX0KIAotCURFQlVHRigiXG4jIyBHZXQgZmxhc2ggc2l6ZSBAIDB4JTA4eFxuIiwgQ0ZHX0ZMQVNIX0JBU0UpOworCURFQlVHRigiXG4jIyBHZXQgZmxhc2ggc2l6ZSBAIDB4JTA4eFxuIiwgQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKIAotCWZsYXNoX3NpemUgPSBmbGFzaF9nZXRfc2l6ZSAoQ0ZHX0ZMQVNIX0JBU0UsIGZsYXNoX2luZm8pOworCWZsYXNoX3NpemUgPSBmbGFzaF9nZXRfc2l6ZSAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCBmbGFzaF9pbmZvKTsKIAogCURFQlVHRigiIyMgRmxhc2ggYmFuayBzaXplOiAlMDhseFxuIiwgZmxhc2hfc2l6ZSk7CiAKIAlpZiAoZmxhc2hfc2l6ZSkgewotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UgJiYgXAotICAgIENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSArIENGR19GTEFTSF9NQVhfU0laRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSAmJiBcCisgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIX01BWF9TSVpFCiAJCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0yMzEsMTAgKzIzMSwxMCBAQAogCiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlpZiAoISBmbGFzaF9nZXRfb2Zmc2V0cyAoYWRkciwgaW5mbykpIHsKQEAgLTM1NiwxMCArMzU2LDEwIEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gaW5mby0+c3RhcnRbbF9zZWN0XTsKIAotCURFQlVHRiAoIlN0YXJ0IGVyYXNlIHRpbWVvdXQ6ICVkXG4iLCBDRkdfRkxBU0hfRVJBU0VfVE9VVCk7CisJREVCVUdGICgiU3RhcnQgZXJhc2UgdGltZW91dDogJWRcbiIsIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCk7CiAKIAl3aGlsZSAoKGluOChhZGRyKSAmIDB4ODApICE9IDB4ODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJZmxhc2hfcmVzZXQgKGluZm8tPnN0YXJ0WzBdKTsKIAkJCXJldHVybiAxOwpAQCAtNDg4LDcgKzQ4OCw3IEBACiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCQl3aGlsZSAoKGluOChkZXN0K2kpICYgMHg4MCkgIT0gKGRhdGFfY2hbaV0gJiAweDgwKSkgewotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlmbGFzaF9yZXNldCAoYWRkcik7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3BjaXBwYzIvaTJjLmMgYi9ib2FyZC9wY2lwcGMyL2kyYy5jCmluZGV4IDM2YjFkMGYuLmFiNTI1NjIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BjaXBwYzIvaTJjLmMKKysrIGIvYm9hcmQvcGNpcHBjMi9pMmMuYwpAQCAtODUsNyArODUsNyBAQAogewogICBpbnQJCQl2OwogCi0gIGFzbSB2b2xhdGlsZSgibXRkZWMgJTAiIDogOiAiciIgKHRpbWUgKiAoKENGR19CVVNfQ0xLIC8gNCkgLyAxMDAwMDAwKSkpOworICBhc20gdm9sYXRpbGUoIm10ZGVjICUwIiA6IDogInIiICh0aW1lICogKChDT05GSUdfU1lTX0JVU19DTEsgLyA0KSAvIDEwMDAwMDApKSk7CiAKICAgZG8KICAgewpkaWZmIC0tZ2l0IGEvYm9hcmQvcGNpcHBjMi9zY29uc29sZS5jIGIvYm9hcmQvcGNpcHBjMi9zY29uc29sZS5jCmluZGV4IDNiMTkwNjkuLjZlZjM4ZjQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BjaXBwYzIvc2NvbnNvbGUuYworKysgYi9ib2FyZC9wY2lwcGMyL3Njb25zb2xlLmMKQEAgLTQxLDcgKzQxLDcgQEAKIAlzYi0+cG9zICA9IDA7CiAJc2ItPnNpemUgPSAwOwogCXNiLT5iYXVkID0gZ2QtPmJhdWRyYXRlOwotCXNiLT5tYXhfc2l6ZSA9IENGR19TQ09OU09MRV9TSVpFIC0gc2l6ZW9mIChzY29uc29sZV9idWZmZXJfdCk7CisJc2ItPm1heF9zaXplID0gQ09ORklHX1NZU19TQ09OU09MRV9TSVpFIC0gc2l6ZW9mIChzY29uc29sZV9idWZmZXJfdCk7CiAKIAlyZXR1cm4gKDApOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvcGNpcHBjMi9zY29uc29sZS5oIGIvYm9hcmQvcGNpcHBjMi9zY29uc29sZS5oCmluZGV4IDVkODUwYTUuLmZmMGNjYWIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BjaXBwYzIvc2NvbnNvbGUuaAorKysgYi9ib2FyZC9wY2lwcGMyL3Njb25zb2xlLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAljaGFyIGRhdGFbMV07CiB9IHNjb25zb2xlX2J1ZmZlcl90OwogCi0jZGVmaW5lIFNDT05TT0xFX0JVRkZFUgkJKChzY29uc29sZV9idWZmZXJfdCAqKSBDRkdfU0NPTlNPTEVfQUREUikKKyNkZWZpbmUgU0NPTlNPTEVfQlVGRkVSCQkoKHNjb25zb2xlX2J1ZmZlcl90ICopIENPTkZJR19TWVNfU0NPTlNPTEVfQUREUikKIAogZXh0ZXJuIHZvaWQJKCogc2NvbnNvbGVfcHV0YykJKGNoYXIpOwogZXh0ZXJuIHZvaWQJKCogc2NvbnNvbGVfcHV0cykJKGNvbnN0IGNoYXIgKik7CmRpZmYgLS1naXQgYS9ib2FyZC9wY3M0NDBlcC9jb25maWcubWsgYi9ib2FyZC9wY3M0NDBlcC9jb25maWcubWsKaW5kZXggNGQ5NDJlYi4uMDg0NGU5OCAxMDA2NDQKLS0tIGEvYm9hcmQvcGNzNDQwZXAvY29uZmlnLm1rCisrKyBiL2JvYXJkL3BjczQ0MGVwL2NvbmZpZy5tawpAQCAtNDMsNSArNDMsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL3BjczQ0MGVwL2ZsYXNoLmMgYi9ib2FyZC9wY3M0NDBlcC9mbGFzaC5jCmluZGV4IGM1YTYyZTIuLmY5MGEyMjEgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BjczQ0MGVwL2ZsYXNoLmMKKysrIGIvYm9hcmQvcGNzNDQwZXAvZmxhc2guYwpAQCAtMjQsMTMgKzI0LDEzIEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogCi0jaWZuZGVmIENGR19GTEFTSF9SRUFEMAotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAjZW5kaWYKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qCiAgKiBGdW5jdGlvbnMKQEAgLTQ1LDcgKzQ1LDcgQEAKIAl1bnNpZ25lZCBsb25nIGJhc2VfYjAsIGJhc2VfYjE7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtMTMwLDcgKzEzMCw3IEBACiAKIAlwcmludGYgKCIgIFNlY3RvciBTdGFydCBBZGRyZXNzZXM6Iik7CiAJZm9yIChpPTA7IGk8aW5mby0+c2VjdG9yX2NvdW50OyArK2kpIHsKLSNpZmRlZiBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCQkvKgogCQkgKiBDaGVjayBpZiB3aG9sZSBzZWN0b3IgaXMgZXJhc2VkCiAJCSAqLwpAQCAtMTc1LDM0ICsxNzUsMzQgQEAKIHsKIAlzaG9ydCBpOwogCXNob3J0IG47Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKIAl1bG9uZyBiYXNlID0gKHVsb25nKWFkZHI7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAodm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKWFkZHI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKHZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopYWRkcjsKIAogCS8qIFdyaXRlIGF1dG8gc2VsZWN0IGNvbW1hbmQ6IHJlYWQgTWFudWZhY3R1cmVyIElEICovCi0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA5MDAwOTA7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA5MDAwOTA7CiAKLQl2YWx1ZSA9IGFkZHIyW0NGR19GTEFTSF9SRUFEMF07CisJdmFsdWUgPSBhZGRyMltDT05GSUdfU1lTX0ZMQVNIX1JFQUQwXTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0FNRDsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlGVUpfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpRlVKX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9GVUo7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1NUX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNTVF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fU1NUOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNUTV9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTVE1fTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX1NUTTsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlFWENFTF9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlFWENFTF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fRVhDRUw7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpTVhfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpTVhfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX01YOwogCQlicmVhazsKIAlkZWZhdWx0OgpAQCAtMjEyLDk5ICsyMTIsOTkgQEAKIAkJcmV0dXJuICgwKTsJCQkvKiBubyBvciB1bmtub3duIGZsYXNoCSovCiAJfQogCi0JdmFsdWUgPSBhZGRyMltDRkdfRkxBU0hfUkVBRDFdOwkJLyogZGV2aWNlIElECSovCisJdmFsdWUgPSBhZGRyMltDT05GSUdfU1lTX0ZMQVNIX1JFQUQxXTsJCS8qIGRldmljZSBJRAkqLwogCiAJc3dpdGNoICh2YWx1ZSkgewotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWNDAwVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY0MDBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTQwMFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDExOwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDAuNSBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY0MDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjQwMEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNNDAwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTE7CiAJCWluZm8tPnNpemUgPSAweDAwMDgwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMC41IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjA0MEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMDQwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0wNDA7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDg7CiAJCWluZm8tPnNpemUgPSAweDAwODAwMDA7CQkvKiA9PiAwLjUgTUIJKi8KIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlTVE1fSURfTTI5VzA0MEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1RNX0lEX00yOVcwNDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTA0MDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gODsKIAkJaW5mby0+c2l6ZSA9IDB4MDA4MDAwMDsgLyogPT4gMCw1IE1CICovCiAJCWJyZWFrOwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY4MDBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjgwMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNODAwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTk7CiAJCWluZm8tPnNpemUgPSAweDAwMTAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMSBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY4MDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjgwMEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNODAwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTk7CiAJCWluZm8tPnNpemUgPSAweDAwMTAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMSBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYxNjBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjE2MFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMTYwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMiBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYxNjBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjE2MEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMTYwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMiBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMzIwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMzIwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjJUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyMlQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNREwzMjJUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyMkI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIyQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1ETDMyMkI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDQgTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIzVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjNUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTURMMzIzVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjNCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyM0I6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNREwzMjNCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjAyMDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEYwMjA6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX1NTVDAyMDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNjQ7CiAJCWluZm8tPnNpemUgPSAweDAwMDQwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMjU2IGtCCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjA0MDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEYwNDA6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX1NTVDA0MDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTI4OwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKQEAgLTM4MSwxOSArMzgxLDE5IEBACiAJZm9yIChpID0gMDsgaSA8IGluZm8tPnNlY3Rvcl9jb3VudDsgaSsrKSB7CiAJCS8qIHJlYWQgc2VjdG9yIHByb3RlY3Rpb24gYXQgc2VjdG9yIGFkZHJlc3MsIChBNyAuLiBBMCkgPSAweDAyICovCiAJCS8qIEQwID0gMSBpZiBwcm90ZWN0ZWQgKi8KLQkJYWRkcjIgPSAodm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CisJCWFkZHIyID0gKHZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKIAkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSAhPSBGTEFTSF9NQU5fQU1EKQogCQkJaW5mby0+cHJvdGVjdFtpXSA9IDA7CiAJCWVsc2UKLQkJCWluZm8tPnByb3RlY3RbaV0gPSBhZGRyMltDRkdfRkxBU0hfUkVBRDJdICYgMTsKKwkJCWluZm8tPnByb3RlY3RbaV0gPSBhZGRyMltDT05GSUdfU1lTX0ZMQVNIX1JFQUQyXSAmIDE7CiAJfQogCiAJLyoKIAkgKiBQcmV2ZW50IHdyaXRlcyB0byB1bmluaXRpYWxpemVkIEZMQVNILgogCSAqLwogCWlmIChpbmZvLT5mbGFzaF9pZCAhPSBGTEFTSF9VTktOT1dOKSB7Ci0JCWFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilpbmZvLT5zdGFydFswXTsKLQkJKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLworCQlhZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKWluZm8tPnN0YXJ0WzBdOworCQkqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLwogCX0KIAogCXJldHVybiAoaW5mby0+c2l6ZSk7CkBAIC00MDIsOCArNDAyLDggQEAKIAogaW50IGZsYXNoX2VyYXNlKGZsYXNoX2luZm9fdCAqaW5mbywgaW50IHNfZmlyc3QsIGludCBzX2xhc3QpCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOwogCWludCBmbGFnLCBwcm90LCBzZWN0LCBsX3NlY3Q7CiAJdWxvbmcgc3RhcnQsIG5vdywgbGFzdDsKIApAQCAtNDM4LDE0ICs0MzgsMTQgQEAKIAkvKiBTdGFydCBlcmFzZSBvbiB1bnByb3RlY3RlZCBzZWN0b3JzICovCiAJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdDw9c19sYXN0OyBzZWN0KyspIHsKIAkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCi0JCQlhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwkJCWFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAkJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkgewotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKLQkJCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDAzMDAwMzA7ICAvKiBzZWN0b3IgZXJhc2UgKi8KKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MDsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDAzMDAwMzA7ICAvKiBzZWN0b3IgZXJhc2UgKi8KIAogCQkJCS8qIHJlLWVuYWJsZSBpbnRlcnJ1cHRzIGlmIG5lY2Vzc2FyeSAqLwogCQkJCWlmIChmbGFnKSB7CkBAIC00NTUsMjAgKzQ1NSwyMCBAQAogCiAJCQkJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCQkJCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKLQkJCQl3aGlsZSAoKGFkZHIyWzBdICYgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0KLQkJCQkgICAgICAgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgewotCQkJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKQorCQkJCXdoaWxlICgoYWRkcjJbMF0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0KKwkJCQkgICAgICAgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApIHsKKwkJCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpCiAJCQkJCQlyZXR1cm4gKDEpOwogCQkJCX0KIAkJCX0gZWxzZSB7CiAJCQkJaWYgKHNlY3QgPT0gc19maXJzdCkgewotCQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOwotCQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOwotCQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOwotCQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKKwkJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOworCQkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKIAkJCQl9Ci0JCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwMzAwMDMwOyAgLyogc2VjdG9yIGVyYXNlICovCisJCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDMwMDAzMDsgIC8qIHNlY3RvciBlcmFzZSAqLwogCQkJfQogCQkJbF9zZWN0ID0gc2VjdDsKIAkJfQpAQCAtNDg5LDkgKzQ4OSw5IEBACiAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJbGFzdCAgPSBzdGFydDsKLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7Ci0Jd2hpbGUgKChhZGRyWzBdICYgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwlhZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOworCXdoaWxlICgoYWRkclswXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC01MDQsOCArNTA0LDggQEAKIAogRE9ORToKIAkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilpbmZvLT5zdGFydFswXTsKLQlhZGRyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLworCWFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKilpbmZvLT5zdGFydFswXTsKKwlhZGRyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAogCXByaW50ZiAoIiBkb25lXG4iKTsKIAlyZXR1cm4gMDsKQEAgLTU4NSw5ICs1ODUsOSBAQAogICovCiBzdGF0aWMgaW50IHdyaXRlX3dvcmQoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKQogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilkZXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikmZGF0YTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKWRlc3Q7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopJmRhdGE7CiAJdWxvbmcgc3RhcnQ7CiAJaW50IGZsYWc7CiAJaW50IGk7CkBAIC01OTksMTAgKzU5OSwxMCBAQAogCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKIAotCWZvciAoaT0wOyBpPDQvc2l6ZW9mKENGR19GTEFTSF9XT1JEX1NJWkUpOyBpKyspIHsKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEEwMDBBMDsKKwlmb3IgKGk9MDsgaTw0L3NpemVvZihDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykgeworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQTAwMEEwOwogCiAJCWRlc3QyW2ldID0gZGF0YTJbaV07CiAKQEAgLTYxMiw5ICs2MTIsOSBAQAogCiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJc3RhcnQgPSBnZXRfdGltZXIgKDApOwotCQl3aGlsZSAoKGRlc3QyW2ldICYgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0KLQkJICAgICAgIChkYXRhMltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApKSB7Ci0JCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKQorCQl3aGlsZSAoKGRlc3QyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9CisJCSAgICAgICAoZGF0YTJbaV0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkpIHsKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKQogCQkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9wY3M0NDBlcC9pbml0LlMgYi9ib2FyZC9wY3M0NDBlcC9pbml0LlMKaW5kZXggMzZhNDBjOS4uMjVlN2Y0ZiAxMDA2NDQKLS0tIGEvYm9hcmQvcGNzNDQwZXAvaW5pdC5TCisrKyBiL2JvYXJkL3BjczQ0MGVwL2luaXQuUwpAQCAtOTMsMTAgKzkzLDEwIEBACiAJICogQk9PVF9DUyAoRkxBU0gpIG11c3QgYmUgZmlyc3QuIEJlZm9yZSByZWxvY2F0aW9uIFNBX0kgY2FuIGJlIG9mZiB0byB1c2UgdGhlCiAJICogc3BlZWQgdXAgYm9vdCBwcm9jZXNzLiBJdCBpcyBwYXRjaGVkIGFmdGVyIHJlbG9jYXRpb24gdG8gZW5hYmxlIFNBX0kKIAkgKi8KLQl0bGJlbnRyeSggQ0ZHX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNLCBDRkdfQk9PVF9CQVNFX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cvKnxTQV9JKi8pCisJdGxiZW50cnkoIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0sIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cvKnxTQV9JKi8pCiAKIAkvKiBUTEItZW50cnkgZm9yIGluaXQtcmFtIGluIGRjYWNoZSAoU0FfSSBtdXN0IGJlIHR1cm5lZCBvZmYhKSAqLwotCXRsYmVudHJ5KCBDRkdfSU5JVF9SQU1fQUREUiwgU1pfNjRLLCBDRkdfSU5JVF9SQU1fQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRyApCisJdGxiZW50cnkoIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgU1pfNjRLLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQogCiAJLyoKIAkgKiBUTEIgZW50cmllcyBmb3IgU0RSQU0gYXJlIG5vdCBuZWVkZWQgb24gdGhpcyBwbGF0Zm9ybS4KQEAgLTEwNCwxNSArMTA0LDE1IEBACiAJICogcm91dGluZS4KIAkgKi8KIAotCXRsYmVudHJ5KCBDRkdfUENJX0JBU0UsIFNaXzI1Nk0sIENGR19QQ0lfQkFTRSwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX0JBU0UsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX0JBU0UsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCiAJLyogUENJICovCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFMSwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFMSwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRTIsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRTIsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UzLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UzLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UxLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UyLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UzLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMywgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCiAKIAkvKiBVU0IgMi4wIERldmljZSAqLwotCXRsYmVudHJ5KCBDRkdfVVNCX0RFVklDRSwgU1pfMUssIDB4NTAwMDAwMDAsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1VTQl9ERVZJQ0UsIFNaXzFLLCAweDUwMDAwMDAwLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKIAogCXRsYnRhYl9lbmQKZGlmZiAtLWdpdCBhL2JvYXJkL3BjczQ0MGVwL3BjczQ0MGVwLmMgYi9ib2FyZC9wY3M0NDBlcC9wY3M0NDBlcC5jCmluZGV4IDIxNDA1ODIuLjI3MTAwNWYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BjczQ0MGVwL3BjczQ0MGVwLmMKKysrIGIvYm9hcmQvcGNzNDQwZXAvcGNzNDQwZXAuYwpAQCAtMzQsNyArMzQsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogdW5zaWduZWQgY2hhcglzaGExX2NoZWNrc3VtW1NIQTFfU1VNX0xFTl07CiAKQEAgLTE5Myw3ICsxOTMsNyBAQAogCS8qIHJlYWQgdGhlIE1BQ3MgZnJvbSBFRXByb20gKi8KIAlzdGF0dXNfbGVkX3NldCAoMCwgU1RBVFVTX0xFRF9PTik7CiAJc3RhdHVzX2xlZF9zZXQgKDEsIFNUQVRVU19MRURfT04pOwotCXJldCA9IGVlcHJvbV9yZWFkIChDRkdfSTJDX0VFUFJPTV9BRERSLCAwLCAodWNoYXIgKilidWYsIEVFUFJPTV9MRU4pOworCXJldCA9IGVlcHJvbV9yZWFkIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgMCwgKHVjaGFyICopYnVmLCBFRVBST01fTEVOKTsKIAlpZiAocmV0ID09IDApIHsKIAkJY2hlY2tzdW1jcmMxNiA9IGN5Z19jcmMxNiAoKHVjaGFyICopYnVmLCBFRVBST01fTEVOIC0gMik7CiAJCS8qIGNoZWNrLCBpZiB0aGUgRUVwcm9tIGlzIHByb2dyYW1tZWQ6CkBAIC0zNzksOCArMzc5LDggQEAKIAl1bnNpZ25lZCBjaGFyIG9yZ1syMF07CiAJaW50CWksIGxlbiA9IENPTkZJR19TSEExX0xFTjsKIAotCW1lbWNweSAoKGNoYXIgKilDRkdfTE9BRF9BRERSLCAoY2hhciAqKUNPTkZJR19TSEExX1NUQVJULCBsZW4pOwotCWRhdGEgPSAodW5zaWduZWQgY2hhciAqKUNGR19MT0FEX0FERFI7CisJbWVtY3B5ICgoY2hhciAqKUNPTkZJR19TWVNfTE9BRF9BRERSLCAoY2hhciAqKUNPTkZJR19TSEExX1NUQVJULCBsZW4pOworCWRhdGEgPSAodW5zaWduZWQgY2hhciAqKUNPTkZJR19TWVNfTE9BRF9BRERSOwogCXB0cm9mZiA9ICZkYXRhW2xlbiArIFNIQTFfU1VNX1BPU107CiAKIAlmb3IgKGkgPSAwOyBpIDwgU0hBMV9TVU1fTEVOOyBpKyspIHsKQEAgLTQ4NSw3ICs0ODUsNyBAQAogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzFdKTsKIApAQCAtNjE2LDcgKzYxNiw3IEBACiAgKgltYXkgbm90IGJlIHN1ZmZpY2llbnQgZm9yIGEgZ2l2ZW4gYm9hcmQuCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpCiB2b2lkIHBjaV90YXJnZXRfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpCiB7CiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKQEAgLTYzMCwxNCArNjMwLDE0IEBACiAJICB8IE1ha2UgdGhpcyByZWdpb24gbm9uLXByZWZldGNoYWJsZS4KIAkgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAJb3V0MzJyKFBDSVgwX1BNTTBNQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgTWFzay9BdHRyaWJ1dGUgLSBkaXNhYmxlZCBiNCBzZXR0aW5nICovCi0Jb3V0MzJyKFBDSVgwX1BNTTBMQSwgQ0ZHX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCi0Jb3V0MzJyKFBDSVgwX1BNTTBQQ0lMQSwgQ0ZHX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMExBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTBQQ0lMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTBQQ0lIQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgUENJIEhpZ2ggQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0wTUEsIDB4RTAwMDAwMDEpOwkvKiA1MTJNICsgTm8gcHJlZmV0Y2hpbmcsIGFuZCBlbmFibGUgcmVnaW9uICovCiAKIAlvdXQzMnIoUENJWDBfUE1NMU1BLCAweDAwMDAwMDAwKTsJLyogUE1NMCBNYXNrL0F0dHJpYnV0ZSAtIGRpc2FibGVkIGI0IHNldHRpbmcgKi8KLQlvdXQzMnIoUENJWDBfUE1NMUxBLCBDRkdfUENJX01FTUJBU0UyKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCi0Jb3V0MzJyKFBDSVgwX1BNTTFQQ0lMQSwgQ0ZHX1BDSV9NRU1CQVNFMik7CS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTFMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMVBDSUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMik7CS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTFQQ0lIQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgUENJIEhpZ2ggQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0xTUEsIDB4RTAwMDAwMDEpOwkvKiA1MTJNICsgTm8gcHJlZmV0Y2hpbmcsIGFuZCBlbmFibGUgcmVnaW9uICovCiAKQEAgLTY1Miw4ICs2NTIsOCBAQAogCiAJLyogUHJvZ3JhbSB0aGUgYm9hcmQncyBzdWJzeXN0ZW0gaWQvdmVuZG9yIGlkICovCiAJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fVkVORE9SX0lELAotCQkJICAgICAgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQpOwotCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX0lELCBDRkdfUENJX1NVQlNZU19JRCk7CisJCQkgICAgICBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQpOworCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSUQpOwogCiAJLyogQ29uZmlndXJlIGNvbW1hbmQgcmVnaXN0ZXIgYXMgYnVzIG1hc3RlciAqLwogCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfQ09NTUFORCwgUENJX0NPTU1BTkRfTUFTVEVSKTsKQEAgLTY2NywxMyArNjY3LDEzIEBACiAJcGNpX3dyaXRlX2NvbmZpZ19kd29yZCgwLCBQQ0lfQlJER09QVDIsIDB4MDAwMDAxMDEpOwogCiB9Ci0jZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpICovCisjZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKSAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogIHBjaV9tYXN0ZXJfaW5pdAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfTUFTVEVSX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUKQogdm9pZCBwY2lfbWFzdGVyX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewogCXVuc2lnbmVkIHNob3J0IHRlbXBfc2hvcnQ7CkBAIC02ODgsNyArNjg4LDcgQEAKIAkJCSAgICAgIHRlbXBfc2hvcnQgfCBQQ0lfQ09NTUFORF9NQVNURVIgfAogCQkJICAgICAgUENJX0NPTU1BTkRfTUVNT1JZKTsKIH0KLSNlbmRpZgkJCQkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9NQVNURVJfSU5JVCkgKi8KKyNlbmRpZgkJCQkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQpICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiAgaXNfcGNpX2hvc3QKZGlmZiAtLWdpdCBhL2JvYXJkL3BsZWIyL2ZsYXNoLmMgYi9ib2FyZC9wbGViMi9mbGFzaC5jCmluZGV4IDNmMDE5MjEuLmFiYWYwYjQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BsZWIyL2ZsYXNoLmMKKysrIGIvYm9hcmQvcGxlYjIvZmxhc2guYwpAQCAtMjgsNyArMjgsNyBAQAogICovCiAjaW5jbHVkZSA8ZW52aXJvbm1lbnQuaD4KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAgICAgKi8KIAogLyogTk9URSAtIENPTkZJR19GTEFTSF8xNkJJVCBtZWFucyB0aGUgQ1BVIGludGVyZmFjZSBpcyAxNi1iaXQsIGl0CiAgKiAgICAgICAgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgZmxhc2ggY2hpcCBiZWluZyA4LWJpdCBvciAxNi1iaXQuCkBAIC01OSw3ICs1OSw3IEBACiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfYW1kIChmbGFzaF9pbmZvX3QgKiBpbmZvLCBGUFdWICogZGVzdCwgRlBXIGRhdGEpOwogc3RhdGljIHZvaWQgZmxhc2hfZ2V0X29mZnNldHMgKHVsb25nIGJhc2UsIGZsYXNoX2luZm9fdCAqIGluZm8pOwogCi0jaWZkZWYgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIHN0YXRpYyB2b2lkIGZsYXNoX3N5bmNfcmVhbF9wcm90ZWN0IChmbGFzaF9pbmZvX3QgKiBpbmZvKTsKICNlbmRpZgogCkBAIC03NCwxMSArNzQsMTEgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCi0Jc2l6ZV9iID0gZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IgPSBmbGFzaF9nZXRfc2l6ZSAoKEZQVyAqKSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IHNpemVfYjsKIApAQCAtOTAsMjAgKzkwLDIwIEBACiAJLyogRG8gdGhpcyBhZ2FpbiAod2FzIGRvbmUgYWxyZWFkeSBpbiBmbGFzdF9nZXRfc2l6ZSksIGp1c3QKIAkgKiBpbiBjYXNlIHdlIG1vdmUgaXQgd2hlbiByZW1hcCB0aGUgRkxBU0guCiAJICovCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWZkZWYgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIAkvKiByZWFkIHRoZSBoYXJkd2FyZSBwcm90ZWN0aW9uIHN0YXR1cyAoaWYgYW55KSBpbnRvIHRoZQogCSAqIHByb3RlY3Rpb24gYXJyYXkgaW4gZmxhc2hfaW5mby4KIAkgKi8KIAlmbGFzaF9zeW5jX3JlYWxfcHJvdGVjdCAoJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkgICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTQxOCw3ICs0MTgsNyBAQAogCXJldHVybiAoaW5mby0+c2l6ZSk7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKQEAgLTU1OSw3ICs1NTksNyBAQAogCiAJCXdoaWxlICgoKmFkZHIgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7CiAJCQlpZiAoKG5vdyA9Ci0JCQkgICAgIGdldF90aW1lcl9tYXNrZWQgKCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCSAgICAgZ2V0X3RpbWVyX21hc2tlZCAoKSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAogCQkJCWlmIChpbnRlbCkgewpAQCAtNTczLDcgKzU3Myw3IEBACiAJCQl9CiAKIAkJCS8qIHNob3cgdGhhdCB3ZSdyZSB3YWl0aW5nICovCi0JCQlpZiAoKG5vdyAtIGxhc3QpID4gMSAqIENGR19IWikgewkvKiBldmVyeSBzZWNvbmQgKi8KKwkJCWlmICgobm93IC0gbGFzdCkgPiAxICogQ09ORklHX1NZU19IWikgewkvKiBldmVyeSBzZWNvbmQgKi8KIAkJCQlwdXRjICgnLicpOwogCQkJCWxhc3QgPSBub3c7CiAJCQl9CkBAIC02MDksNyArNjA5LDcgQEAKIAkJLyogY29tYmluZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGRhdGEgc28gY2FuIHByb2dyYW0KIAkJICogYW4gZW50aXJlIHdvcmQgb2YgMTYgb3IgMzIgYml0cwogCQkgKi8KLSNpZmRlZiBDRkdfTElUVExFX0VORElBTgorI2lmZGVmIENPTkZJR19TWVNfTElUVExFX0VORElBTgogCQlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mIChkYXRhKTsgaSsrKSB7CiAJCQlkYXRhID4+PSA4OwogCQkJaWYgKGkgPCBieXRlcyB8fCBpIC0gYnl0ZXMgPj0gbGVmdCkKQEAgLTY4OCw3ICs2ODgsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAl3aGlsZSAocmVzID09IDAKIAkgICAgICAgJiYgKCpkZXN0ICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAoRlBXKSAweDAwODAwMDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqZGVzdCA9IChGUFcpIDB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCXJlcyA9IDE7CiAJCX0KQEAgLTczMyw3ICs3MzMsNyBAQAogCXJlc2V0X3RpbWVyX21hc2tlZCAoKTsKIAogCXdoaWxlIChyZXMgPT0gMCAmJiAoKmRlc3QgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSpkZXN0ID0gKEZQVykgMHgwMEIwMDBCMDsJLyogU3VzcGVuZCBwcm9ncmFtICAgICAgKi8KIAkJCXJlcyA9IDE7CiAJCX0KQEAgLTc0OCw3ICs3NDgsNyBAQAogCXJldHVybiAocmVzKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIGludCBmbGFzaF9yZWFsX3Byb3RlY3QgKGZsYXNoX2luZm9fdCAqIGluZm8sIGxvbmcgc2VjdG9yLCBpbnQgcHJvdCkKZGlmZiAtLWdpdCBhL2JvYXJkL3BsZWIyL2xvd2xldmVsX2luaXQuUyBiL2JvYXJkL3BsZWIyL2xvd2xldmVsX2luaXQuUwppbmRleCBhZGQyYzUzLi5iOTVmZjljIDEwMDY0NAotLS0gYS9ib2FyZC9wbGViMi9sb3dsZXZlbF9pbml0LlMKKysrIGIvYm9hcmQvcGxlYjIvbG93bGV2ZWxfaW5pdC5TCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8dmVyc2lvbi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAKLURSQU1fU0laRTogIC5sb25nICAgQ0ZHX0RSQU1fU0laRQorRFJBTV9TSVpFOiAgLmxvbmcgICBDT05GSUdfU1lTX0RSQU1fU0laRQogCiAvKiB3YWl0IGZvciBjb3Byb2Nlc3NvciB3cml0ZSBjb21wbGV0ZSAqLwogCS5tYWNybyBDUFdBSVQgcmVnCkBAIC00MSw5MiArNDEsOTIgQEAKIAkvKiBTZXQgdXAgR1BJTyBwaW5zIGZpcnN0ICovCiAKIAlsZHIJcjAsICAgPUdQU1IwCi0JbGRyCXIxLCAgID1DRkdfR1BTUjBfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQU1IwX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQU1IxCi0JbGRyCXIxLCAgID1DRkdfR1BTUjFfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQU1IxX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQU1IyCi0JbGRyCXIxLCAgID1DRkdfR1BTUjJfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQU1IyX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQQ1IwCi0JbGRyCXIxLCAgID1DRkdfR1BDUjBfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQQ1IwX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQQ1IxCi0JbGRyCXIxLCAgID1DRkdfR1BDUjFfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQQ1IxX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQQ1IyCi0JbGRyCXIxLCAgID1DRkdfR1BDUjJfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQQ1IyX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdSRVIwCi0JbGRyCXIxLCAgID1DRkdfR1JFUjBfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dSRVIwX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdSRVIxCi0JbGRyCXIxLCAgID1DRkdfR1JFUjFfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dSRVIxX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdSRVIyCi0JbGRyCXIxLCAgID1DRkdfR1JFUjJfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dSRVIyX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdGRVIwCi0JbGRyCXIxLCAgID1DRkdfR0ZFUjBfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dGRVIwX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdGRVIxCi0JbGRyCXIxLCAgID1DRkdfR0ZFUjFfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dGRVIxX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdGRVIyCi0JbGRyCXIxLCAgID1DRkdfR0ZFUjJfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dGRVIyX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQRFIwCi0JbGRyCXIxLCAgID1DRkdfR1BEUjBfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQRFIwX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQRFIxCi0JbGRyCXIxLCAgID1DRkdfR1BEUjFfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQRFIxX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQRFIyCi0JbGRyCXIxLCAgID1DRkdfR1BEUjJfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQRFIyX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIwX0wKLQlsZHIJcjEsICAgPUNGR19HQUZSMF9MX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMF9MX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIwX1UKLQlsZHIJcjEsICAgPUNGR19HQUZSMF9VX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMF9VX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIxX0wKLQlsZHIJcjEsICAgPUNGR19HQUZSMV9MX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMV9MX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIxX1UKLQlsZHIJcjEsICAgPUNGR19HQUZSMV9VX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMV9VX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIyX0wKLQlsZHIJcjEsICAgPUNGR19HQUZSMl9MX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMl9MX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIyX1UKLQlsZHIJcjEsICAgPUNGR19HQUZSMl9VX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMl9VX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAkvKiBlbmFibGUgR1BJTyBwaW5zICovCiAJbGRyCXIwLCAgID1QU1NSCi0JbGRyCXIxLCAgID1DRkdfUFNTUl9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfUFNTUl9WQUwKIAlzdHIJcjEsICAgW3IwXQogCiAKQEAgLTE2MSw2MSArMTYxLDYxIEBACiAJQCBTdGVwIDJhCiAJQCB3cml0ZSBtc2MwLCByZWFkIGJhY2sgdG8gZW5zdXJlIGRhdGEgbGF0Y2hlcwogCUAKLQlsZHIJcjIsICAgPUNGR19NU0MwX1ZBTAorCWxkcglyMiwgICA9Q09ORklHX1NZU19NU0MwX1ZBTAogCXN0cglyMiwgICBbcjEsICNNU0MwX09GRlNFVF0KIAlsZHIJcjIsICAgW3IxLCAjTVNDMF9PRkZTRVRdCiAKIAlAIHdyaXRlIG1zYzEKLQlsZHIJcjIsICA9Q0ZHX01TQzFfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTVNDMV9WQUwKIAlzdHIJcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAlsZHIJcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAogCUAgd3JpdGUgbXNjMgotCWxkcglyMiwgID1DRkdfTVNDMl9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NU0MyX1ZBTAogCXN0cglyMiwgIFtyMSwgI01TQzJfT0ZGU0VUXQogCWxkcglyMiwgIFtyMSwgI01TQzJfT0ZGU0VUXQogCiAKIEAgU3RlcCAyYgogCUAgd3JpdGUgbWVjcgotCWxkcglyMiwgID1DRkdfTUVDUl9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NRUNSX1ZBTAogCXN0cglyMiwgIFtyMSwgI01FQ1JfT0ZGU0VUXQogCiAJQCB3cml0ZSBtY21lbTAKLQlsZHIJcjIsICA9Q0ZHX01DTUVNMF9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NQ01FTTBfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTUNNRU0wX09GRlNFVF0KIAogCUAgd3JpdGUgbWNtZW0xCi0JbGRyCXIyLCAgPUNGR19NQ01FTTFfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTUNNRU0xX1ZBTAogCXN0cglyMiwgIFtyMSwgI01DTUVNMV9PRkZTRVRdCiAKIAlAIHdyaXRlIG1jYXR0MAotCWxkcglyMiwgID1DRkdfTUNBVFQwX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01DQVRUMF9WQUwKIAlzdHIJcjIsICBbcjEsICNNQ0FUVDBfT0ZGU0VUXQogCiAJQCB3cml0ZSBtY2F0dDEKLQlsZHIJcjIsICA9Q0ZHX01DQVRUMV9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NQ0FUVDFfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTUNBVFQxX09GRlNFVF0KIAogCUAgd3JpdGUgbWNpbzAKLQlsZHIJcjIsICA9Q0ZHX01DSU8wX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01DSU8wX1ZBTAogCXN0cglyMiwgIFtyMSwgI01DSU8wX09GRlNFVF0KIAogCUAgd3JpdGUgbWNpbzEKLQlsZHIJcjIsICA9Q0ZHX01DSU8xX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01DSU8xX1ZBTAogCXN0cglyMiwgIFtyMSwgI01DSU8xX09GRlNFVF0KIAogQCBTdGVwIDJjCiAJQCBmbHktYnktZG1hIGlzIGRlZmVhdHVyZWQgb24gdGhpcyBwYXJ0CiAJQCB3cml0ZSBmbHljbmZnCi0JQGxkcglyMiwgID1DRkdfRkxZQ05GR19WQUwKKwlAbGRyCXIyLCAgPUNPTkZJR19TWVNfRkxZQ05GR19WQUwKIAlAc3RyCXIyLCAgW3IxLCAjRkxZQ05GR19PRkZTRVRdCiAKIC8qIEZJWE1FIERvZXMgdGhpcyBzZXF1ZW5jZSByZWFsbHkgbWFrZSBzZW5zZSAqLwogI2lmZGVmIFJFREJPT1RfV0FZCiAJQCBTdGVwIDJkCiAJQCBnZXQgdGhlIG1kcmVmciBzZXR0aW5ncwotCWxkcglyMywgID1DRkdfTURSRUZSX1ZBTAorCWxkcglyMywgID1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAogCUAgZXh0cmFjdCBEUkkgZmllbGQgKHdlIG5lZWQgYSB2YWxpZCBEUkkgZmllbGQpCiAJQApAQCAtMjk2LDcgKzI5Niw3IEBACiAjZWxzZQogCUAgU3RlcCAyZAogCUAgZ2V0IHRoZSBtZHJlZnIgc2V0dGluZ3MKLQlsZHIJcjMsICA9Q0ZHX01EUkVGUl9WQUwKKwlsZHIJcjMsICA9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAKIAlAIHdyaXRlIGJhY2sgbWRyZWZyCiAJQApAQCAtMzQwLDcgKzM0MCw3IEBACiAJQCBTdGVwIDRkCiAJQCBmZXRjaCBwbGF0Zm9ybSB2YWx1ZSBvZiBtZGNuZmcKIAlACi0JbGRyCXIyLCAgPUNGR19NRENORkdfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTURDTkZHX1ZBTAogCiAJQCBkaXNhYmxlIGFsbCBzZHJhbSBiYW5rcwogCUAKQEAgLTM3NSw3ICszNzUsNyBAQAogCUAgQWNjZXNzIG1lbW9yeSAqbm90IHlldCBlbmFibGVkKiBmb3IgQ0JSIHJlZnJlc2ggY3ljbGVzICg4KQogCUAgLSBDQlIgaXMgZ2VuZXJhdGVkIGZvciBhbGwgYmFua3MKIAotCWxkcglyMiwgPUNGR19EUkFNX0JBU0UKKwlsZHIJcjIsID1DT05GSUdfU1lTX0RSQU1fQkFTRQogCXN0cglyMiwgW3IyXQogCXN0cglyMiwgW3IyXQogCXN0cglyMiwgW3IyXQpAQCAtNDA1LDcgKzQwNSw3IEBACiAJQCBTdGVwIDRoCiAJQCB3cml0ZSBtZG1ycwogCUAKLQlsZHIJcjIsICA9Q0ZHX01ETVJTX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01ETVJTX1ZBTAogCXN0cglyMiwgIFtyMSwgI01ETVJTX09GRlNFVF0KIAogCUAgRG9uZSBNZW1vcnkgSW5pdApAQCAtNDI0LDcgKzQyNCw3IEBACiAKIAlAIFNldCBpbnRlcnJ1cHQgbWFzayByZWdpc3RlcgogCUAKLQlsZHIJcjEsICA9Q0ZHX0lDTVJfVkFMCisJbGRyCXIxLCAgPUNPTkZJR19TWVNfSUNNUl9WQUwKIAlsZHIJcjIsICA9SUNNUgogCXN0cglyMSwgIFtyMl0KIApAQCAtNDQwLDcgKzQ0MCw3IEBACiAKIAlAIHNldCBjb3JlIGNsb2NrcwogCUAKLQlsZHIJcjIsICA9Q0ZHX0NDQ1JfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfQ0NDUl9WQUwKIAlsZHIJcjEsICA9Q0NDUgogCXN0cglyMiwgIFtyMV0KIApAQCAtNDYzLDcgKzQ2Myw3IEBACiAJQCBUdXJuIG9uIG5lZWRlZCBjbG9ja3MKIAlACiAJbGRyCXIxLCAgPUNLRU4KLQlsZHIJcjIsICA9Q0ZHX0NLRU5fVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfQ0tFTl9WQUwKIAlzdHIJcjIsICBbcjFdCiAKIAkvKlNFVF9MRUQgNyAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvcG01MjAvZmxhc2guYyBiL2JvYXJkL3BtNTIwL2ZsYXNoLmMKaW5kZXggOWVjODQzZS4uNjRjODYyNCAxMDA2NDQKLS0tIGEvYm9hcmQvcG01MjAvZmxhc2guYworKysgYi9ib2FyZC9wbTUyMC9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyogQm9hcmQgc3VwcG9ydCBmb3IgMSBvciAyIGZsYXNoIGRldmljZXMgKi8KICNkZWZpbmUgRkxBU0hfUE9SVF9XSURUSDMyCkBAIC04NywxMSArODcsMTEgQEAKIAl1bG9uZyBzaXplID0gMDsKIAlleHRlcm4gdm9pZCBmbGFzaF9wcmVpbml0KHZvaWQpOwogCWV4dGVybiB2b2lkIGZsYXNoX2FmdGVyaW5pdCh1bG9uZywgdWxvbmcpOwotCXVsb25nIGZsYXNoYmFzZSA9IENGR19GTEFTSF9CQVNFOworCXVsb25nIGZsYXNoYmFzZSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAogCWZsYXNoX3ByZWluaXQoKTsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkJbWVtc2V0KCZmbGFzaF9pbmZvW2ldLCAwLCBzaXplb2YoZmxhc2hfaW5mb190KSk7CkBAIC0xMTAsMTEgKzExMCwxMSBAQAogCiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogI2lmbmRlZiBDT05GSUdfQk9PVF9ST00KIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19NT05JVE9SX0JBU0UsCi0JCQlDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSZmbGFzaF9pbmZvWzBdICk7CiAjZW5kaWYKICNlbmRpZgpAQCAtMjQ1LDI4ICsyNDUsMjggQEAKIAkJLyogSW4gVS1Cb290IHdlIHN1cHBvcnQgb25seSAzMiBNQiAobm8gYmFuay1zd2l0Y2hpbmcpICovCiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDI1NiAvIDI7CiAJCWluZm8tPnNpemUgPSAgMHgwNDAwMDAwMCAvIDI7Ci0JCWluZm8tPnN0YXJ0WzBdID0gQ0ZHX0ZMQVNIX0JBU0UgKyAweDAyMDAwMDAwOworCQlpbmZvLT5zdGFydFswXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDIwMDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAzMiBNQiAgICAgKi8KIAogCWNhc2UgKEZQVykgSU5URUxfSURfMjhGMTI4SjNBOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF8yOEYxMjhKM0E7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDEyODsKIAkJaW5mby0+c2l6ZSA9IDB4MDIwMDAwMDA7Ci0JCWluZm8tPnN0YXJ0WzBdID0gQ0ZHX0ZMQVNIX0JBU0UgKyAweDAyMDAwMDAwOworCQlpbmZvLT5zdGFydFswXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDIwMDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAzMiBNQiAgICAgKi8KIAogCWNhc2UgKEZQVykgSU5URUxfSURfMjhGNjQwSjNBOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF8yOEY2NDBKM0E7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDY0OwogCQlpbmZvLT5zaXplID0gMHgwMTAwMDAwMDsKLQkJaW5mby0+c3RhcnRbMF0gPSBDRkdfRkxBU0hfQkFTRSArIDB4MDMwMDAwMDA7CisJCWluZm8tPnN0YXJ0WzBdID0gQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMzAwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDE2IE1CICAgICAqLwogCiAJY2FzZSAoRlBXKSBJTlRFTF9JRF8yOEYzMjBKM0E6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIXzI4RjMyMEozQTsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzI7CiAJCWluZm8tPnNpemUgPSAweDgwMDAwMDsKLQkJaW5mby0+c3RhcnRbMF0gPSBDRkdfRkxBU0hfQkFTRSArIDB4MDM4MDAwMDA7CisJCWluZm8tPnN0YXJ0WzBdID0gQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMzgwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDggTUIgICAgICovCiAKIAlkZWZhdWx0OgpAQCAtMjc0LDEwICsyNzQsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlhZGRyWzBdID0gKEZQVykgMHgwMEZGMDBGRjsJCS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0zMjgsNyArMzI4LDcgQEAKIAkvKgogCSAqIGZpcnN0LCB3YWl0IGZvciB0aGUgV1NNIHRvIGJlIGZpbmlzaGVkLiBUaGUgcmF0aW9uYWxlIGZvcgogCSAqIHdhaXRpbmcgZm9yIHRoZSBXU00gdG8gYmVjb21lIGlkbGUgZm9yIGF0IG1vc3QKLQkgKiBDRkdfRkxBU0hfRVJBU0VfVE9VVCBpcyBhcyBmb2xsb3dzLiBUaGUgV1NNIGNhbiBiZSBidXN5CisJICogQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUIGlzIGFzIGZvbGxvd3MuIFRoZSBXU00gY2FuIGJlIGJ1c3kKIAkgKiBiZWNhdXNlIG9mOiAoMSkgZXJhc2UsICgyKSBwcm9ncmFtIG9yICgzKSBsb2NrIGJpdAogCSAqIGNvbmZpZ3VyYXRpb24uIFNvIHdlIGp1c3Qgd2FpdCBmb3IgdGhlIGxvbmdlc3QgdGltZW91dCBvZgogCSAqIHRoZSAoMSktKDMpLCBpLmUuIHRoZSBlcmFzZSB0aW1lb3V0LgpAQCAtMzQxLDcgKzM0MSw3IEBACiAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqYWRkciAmIChGUFcpIElOVEVMX0ZJTklTSEVEKSAhPSAoRlBXKSBJTlRFTF9GSU5JU0hFRCkgewotCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCSphZGRyID0gKEZQVykgSU5URUxfUkVTRVQ7IC8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlwcmludGYoIldTTSBidXN5IHRvbyBsb25nLCBjYW4ndCBnZXQgcHJvdCBzdGF0dXNcbiIpOwogCQkJcmV0dXJuIDE7CkBAIC00MjUsNyArNDI1LDcgQEAKIAkJCSphZGRyID0gKEZQVykgMHgwMEQwMDBEMDsJLyogZXJhc2UgY29uZmlybSAqLwogCiAJCQl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CS8qIHN1c3BlbmQgZXJhc2UgICAgICovCiAJCQkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC01NjAsNyArNTYwLDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CkBAIC02MDYsNyArNjA2LDcgQEAKIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAogCXdoaWxlICgoKmFkZHIgJiBJTlRFTF9GSU5JU0hFRCkgIT0gSU5URUxfRklOSVNIRUQpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfVU5MT0NLX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUKSB7CiAJCQlwcmludGYoIkZsYXNoIGxvY2sgYml0IG9wZXJhdGlvbiB0aW1lZCBvdXRcbiIpOwogCQkJcmMgPSAxOwogCQkJYnJlYWs7CkBAIC02NDMsNyArNjQzLDcgQEAKIAkJCQkqYWRkciA9IElOVEVMX1BST1RFQ1Q7CS8qIHNldCAqLwogCQkJCXdoaWxlICgoKmFkZHIgJiBJTlRFTF9GSU5JU0hFRCkgIT0gSU5URUxfRklOSVNIRUQpCiAJCQkJewotCQkJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9VTkxPQ0tfVE9VVCkKKwkJCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUKQogCQkJCQl7CiAJCQkJCQlwcmludGYoIkZsYXNoIGxvY2sgYml0IG9wZXJhdGlvbiB0aW1lZCBvdXRcbiIpOwogCQkJCQkJcmMgPSAxOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcG01MjAvcG01MjAuYyBiL2JvYXJkL3BtNTIwL3BtNTIwLmMKaW5kZXggNmRiOTNmYi4uOWRhMTA0MSAxMDA2NDQKLS0tIGEvYm9hcmQvcG01MjAvcG01MjAuYworKysgYi9ib2FyZC9wbTUyMC9wbTUyMC5jCkBAIC0zNyw3ICszNyw3IEBACiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogc3RhdGljIHZvaWQgc2RyYW1fc3RhcnQgKGludCBoaV9hZGRyKQogewogCWxvbmcgaGlfYWRkcl9iaXQgPSBoaV9hZGRyID8gMHgwMTAwMDAwMCA6IDA7CkBAIC04MCw3ICs4MCw3IEBACiAKIC8qCiAgKiBBVFRFTlRJT046IEFsdGhvdWdoIHBhcnRpYWxseSByZWZlcmVuY2VkIGluaXRkcmFtIGRvZXMgTk9UIG1ha2UgcmVhbCB1c2UKLSAqICAgICAgICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKiAgICAgICAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKiAgICAgICAgICAgIGlzIHNvbWV0aGluZyBlbHNlIHRoYW4gMHgwMDAwMDAwMC4KICAqLwogCkBAIC04OSw3ICs4OSw3IEBACiB7CiAJdWxvbmcgZHJhbXNpemUgPSAwOwogCXVsb25nIGRyYW1zaXplMiA9IDA7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHRlc3QxLCB0ZXN0MjsKIAogCS8qIHNldHVwIFNEUkFNIGNoaXAgc2VsZWN0cyAqLwpAQCAtMTEwLDkgKzExMCw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMCBvbmx5ICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCXNkcmFtX3N0YXJ0KDEpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKIAkJZHJhbXNpemUgPSB0ZXN0MTsKQEAgLTEzOCwxMCArMTM4LDEwIEBACiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzEgb25seSAqLwogCWlmICghZHJhbXNpemUpCiAJCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKIAlpZiAoIWRyYW1zaXplKSB7CiAJCXNkcmFtX3N0YXJ0KDEpOwotCQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJfQogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwpAQCAtMTYzLDcgKzE2Myw3IEBACiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MxQ0ZHID0gZHJhbXNpemU7IC8qIGRpc2FibGVkICovCiAJfQogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiByZXRyaWV2ZSBzaXplIG9mIG1lbW9yeSBjb25uZWN0ZWQgdG8gU0RSQU0gQ1MwICovCiAJZHJhbXNpemUgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyAmIDB4RkY7CkBAIC0xODEsNyArMTgxLDcgQEAKIAkJZHJhbXNpemUyID0gMDsKIAl9CiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJcmV0dXJuIGRyYW1zaXplICsgZHJhbXNpemUyOwogfQpAQCAtMTkxLDcgKzE5MSw3IEBACiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7CiAJdWxvbmcgZHJhbXNpemUgPSAwOwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAl1bG9uZyB0ZXN0MSwgdGVzdDI7CiAKIAkvKiBzZXR1cCBhbmQgZW5hYmxlIFNEUkFNIGNoaXAgc2VsZWN0cyAqLwpAQCAtMjEwLDkgKzIxMCw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKHVsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKCh1bG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKHVsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKCh1bG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CiAJCWRyYW1zaXplID0gdGVzdDE7CkBAIC0yMjMsMTIgKzIyMywxMiBAQAogCS8qIHNldCBTRFJBTSBlbmQgYWRkcmVzcyBhY2NvcmRpbmcgdG8gc2l6ZSAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fU1RPUCA9ICgoZHJhbXNpemUgLSAxKSA+PiAxNSk7CiAKLSNlbHNlIC8qIENGR19SQU1CT09UICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIFJldHJpZXZlIGFtb3VudCBvZiBTRFJBTSBhdmFpbGFibGUgKi8KIAlkcmFtc2l6ZSA9ICgoKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9TVE9QICsgMSkgPDwgMTUpOwogCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCXJldHVybiBkcmFtc2l6ZTsKIH0KQEAgLTMxOCw3ICszMTgsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9ET0MpCiB2b2lkIGRvY19pbml0ICh2b2lkKQogewotCWRvY19wcm9iZSAoQ0ZHX0RPQ19CQVNFKTsKKwlkb2NfcHJvYmUgKENPTkZJR19TWVNfRE9DX0JBU0UpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2JvYXJkL3BtODI2L2ZsYXNoLmMgYi9ib2FyZC9wbTgyNi9mbGFzaC5jCmluZGV4IGJkNmQ3ZDkuLjAxMGY1OWEgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BtODI2L2ZsYXNoLmMKKysrIGIvYm9hcmQvcG04MjYvZmxhc2guYwpAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgPG1wYzh4eC5oPgogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KQEAgLTExNiwxMyArMTE2LDEzIEBACiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duCiAJICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAogCS8qIFN0YXRpYyBGTEFTSCBCYW5rIGNvbmZpZ3VyYXRpb24gaGVyZSAob25seSBvbmUgYmFuaykgKi8KIAotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSAoKHVsb25nICopIENGR19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSAoKHVsb25nICopIENPTkZJR19TWVNfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOIHx8IHNpemVfYjAgPT0gMCkgewogCQlwcmludGYgKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgMCAtIFNpemUgPSAweCUwOGx4ID0gJWxkIE1CXG4iLAogCQkJCXNpemVfYjAsIHNpemVfYjAgPj4gMjApOwpAQCAtMTMyLDE0ICsxMzIsMTQgQEAKIAkgKi8KIAogI2lmbmRlZiBDT05GSUdfQk9PVF9ST00KLQkvKiBJZiBVLUJvb3QgaXMgIGJvb3RlZCBmcm9tIFJPTSB0aGUgQ0ZHX01PTklUT1JfQkFTRSA+IENGR19GTEFTSDBfQkFTRQorCS8qIElmIFUtQm9vdCBpcyAgYm9vdGVkIGZyb20gUk9NIHRoZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+IENPTkZJR19TWVNfRkxBU0gwX0JBU0UKIAkgKiBidXQgd2Ugc2hvdWxkbid0IHByb3RlY3QgaXQuCiAJICovCiAKLSMgaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0gwX0JBU0UKKyMgaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSDBfQkFTRQogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0KKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdCiAJKTsKICMgZW5kaWYKICNlbmRpZgkvKiBDT05GSUdfQk9PVF9ST00gKi8KQEAgLTI2Nyw3ICsyNjcsNyBAQAogCQkJbGFzdCA9IHN0YXJ0OwogCQkJd2hpbGUgKChhZGRyWzBdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCB8fAogCQkJCSAgIChhZGRyWzFdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQkJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0IChlcmFzZSBzdXNwZW5kZWQhKVxuIik7CiAJCQkJCS8qIFN1c3BlbmQgZXJhc2UKIAkJCQkJICovCkBAIC0zNjIsNyArMzYyLDcgQEAKIAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCphZGRyICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCS8qIFN1c3BlbmQgcHJvZ3JhbQogCQkJICovCiAJCQkqYWRkciA9IDB4MDBCMDAwQjA7CmRpZmYgLS1naXQgYS9ib2FyZC9wbTgyNi9wbTgyNi5jIGIvYm9hcmQvcG04MjYvcG04MjYuYwppbmRleCAyMzA0NDIwLi4xOWU3YTAwIDEwMDY0NAotLS0gYS9ib2FyZC9wbTgyNi9wbTgyNi5jCisrKyBiL2JvYXJkL3BtODI2L3BtODI2LmMKQEAgLTI1Niw3ICsyNTYsNyBAQAogCSAqICBhY2Nlc3NpbmcgdGhlIFNEUkFNIHdpdGggYSBzaW5nbGUtYnl0ZSB0cmFuc2FjdGlvbi4iCiAJICoKIAkgKiBUaGUgYXBwcm9wcmlhdGUgQlJ4L09SeCByZWdpc3RlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0IHdoZW4gd2UKLQkgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDRkdfU0RSQU1fQkFTRS4KKwkgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDT05GSUdfU1lTX1NEUkFNX0JBU0UuCiAJICovCiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfUFJFQTsKQEAgLTI2Nyw3ICsyNjcsNyBAQAogCQkqYmFzZSA9IGM7CiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfTVJXOwotCSooYmFzZSArIENGR19NUlNfT0ZGUykgPSBjOwkvKiBzZXR0aW5nIE1SIG9uIGFkZHJlc3MgbGluZXMgKi8KKwkqKGJhc2UgKyBDT05GSUdfU1lTX01SU19PRkZTKSA9IGM7CS8qIHNldHRpbmcgTVIgb24gYWRkcmVzcyBsaW5lcyAqLwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX05PUk0gfCBQU0RNUl9SRkVOOwogCSpiYXNlID0gYzsKQEAgLTI4MiwyOSArMjgyLDI5IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgc2l6ZTgsIHNpemU5OwogI2VuZGlmCiAJdWxvbmcgcHNpemUgPSAzMiAqIDEwMjQgKiAxMDI0OwogCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAotCXNpemU4ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzhDT0wsIENGR19PUjJfOENPTCwKLQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOwotCXNpemU5ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzlDT0wsIENGR19PUjJfOUNPTCwKLQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOworI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKwlzaXplOCA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOENPTCwgQ09ORklHX1NZU19PUjJfOENPTCwKKwkJCQkJICAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKKwlzaXplOSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOUNPTCwgQ09ORklHX1NZU19PUjJfOUNPTCwKKwkJCQkJICAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKIAogCWlmIChzaXplOCA8IHNpemU5KSB7CiAJCXBzaXplID0gc2l6ZTk7CiAJCXByaW50ZiAoIig2MHg6OUNPTCkgIik7CiAJfSBlbHNlIHsKLQkJcHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfOENPTCwgQ0ZHX09SMl84Q09MLAotCQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOworCQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOENPTCwgQ09ORklHX1NZU19PUjJfOENPTCwKKwkJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAJCXByaW50ZiAoIig2MHg6OENPTCkgIik7CiAJfQogI2VuZGlmCkBAIC0zMTQsNyArMzE0LDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfRE9DKQogdm9pZCBkb2NfaW5pdCAodm9pZCkKIHsKLQlkb2NfcHJvYmUgKENGR19ET0NfQkFTRSk7CisJZG9jX3Byb2JlIChDT05GSUdfU1lTX0RPQ19CQVNFKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9ib2FyZC9wbTgyOC9mbGFzaC5jIGIvYm9hcmQvcG04MjgvZmxhc2guYwppbmRleCAyZTkyYzExLi40OTU4YTk1IDEwMDY0NAotLS0gYS9ib2FyZC9wbTgyOC9mbGFzaC5jCisrKyBiL2JvYXJkL3BtODI4L2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxtcGM4eHguaD4KIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCkBAIC0xMTYsMTMgKzExNiwxMyBAQAogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93bgogCSAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKIAkvKiBTdGF0aWMgRkxBU0ggQmFuayBjb25maWd1cmF0aW9uIGhlcmUgKG9ubHkgb25lIGJhbmspICovCiAKLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKCh1bG9uZyAqKSBDRkdfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKCh1bG9uZyAqKSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAJaWYgKGZsYXNoX2luZm9bMF0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTiB8fCBzaXplX2IwID09IDApIHsKIAkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rIDAgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwKIAkJCQlzaXplX2IwLCBzaXplX2IwID4+IDIwKTsKQEAgLTEzMiwxNCArMTMyLDE0IEBACiAJICovCiAKICNpZm5kZWYgQ09ORklHX0JPT1RfUk9NCi0JLyogSWYgVS1Cb290IGlzICBib290ZWQgZnJvbSBST00gdGhlIENGR19NT05JVE9SX0JBU0UgPiBDRkdfRkxBU0gwX0JBU0UKKwkvKiBJZiBVLUJvb3QgaXMgIGJvb3RlZCBmcm9tIFJPTSB0aGUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPiBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCiAJICogYnV0IHdlIHNob3VsZG4ndCBwcm90ZWN0IGl0LgogCSAqLwogCi0jIGlmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIMF9CQVNFCisjIGlmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0gwX0JBU0UKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXQogCSk7CiAjIGVuZGlmCiAjZW5kaWYJLyogQ09ORklHX0JPT1RfUk9NICovCkBAIC0yNjcsNyArMjY3LDcgQEAKIAkJCWxhc3QgPSBzdGFydDsKIAkJCXdoaWxlICgoYWRkclswXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODAgfHwKIAkJCQkgICAoYWRkclsxXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dCAoZXJhc2Ugc3VzcGVuZGVkISlcbiIpOwogCQkJCQkvKiBTdXNwZW5kIGVyYXNlCiAJCQkJCSAqLwpAQCAtMzYyLDcgKzM2Miw3IEBACiAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqYWRkciAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkvKiBTdXNwZW5kIHByb2dyYW0KIAkJCSAqLwogCQkJKmFkZHIgPSAweDAwQjAwMEIwOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcG04MjgvcG04MjguYyBiL2JvYXJkL3BtODI4L3BtODI4LmMKaW5kZXggMjk2YTE5OS4uNGEzYjJmZCAxMDA2NDQKLS0tIGEvYm9hcmQvcG04MjgvcG04MjguYworKysgYi9ib2FyZC9wbTgyOC9wbTgyOC5jCkBAIC0yNTksNyArMjU5LDcgQEAKIAkgKiAgYWNjZXNzaW5nIHRoZSBTRFJBTSB3aXRoIGEgc2luZ2xlLWJ5dGUgdHJhbnNhY3Rpb24uIgogCSAqCiAJICogVGhlIGFwcHJvcHJpYXRlIEJSeC9PUnggcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCB3aGVuIHdlCi0JICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ0ZHX1NEUkFNX0JBU0UuCisJICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogCSAqLwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX1BSRUE7CkBAIC0yNzAsNyArMjcwLDcgQEAKIAkJKmJhc2UgPSBjOwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX01SVzsKLQkqKGJhc2UgKyBDRkdfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCisJKihiYXNlICsgQ09ORklHX1NZU19NUlNfT0ZGUykgPSBjOwkvKiBzZXR0aW5nIE1SIG9uIGFkZHJlc3MgbGluZXMgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9OT1JNIHwgUFNETVJfUkZFTjsKIAkqYmFzZSA9IGM7CkBAIC0zMTUsMjkgKzMxNSwyOSBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHNpemU4LCBzaXplOTsKICNlbmRpZgogCXVsb25nIHBzaXplID0gMzIgKiAxMDI0ICogMTAyNDsKIAotCW1lbWN0bC0+bWVtY19wc3J0ID0gQ0ZHX1BTUlQ7Ci0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKLQlzaXplOCA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl84Q09MLCBDRkdfT1IyXzhDT0wsCi0JCQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKLQlzaXplOSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl85Q09MLCBDRkdfT1IyXzlDT0wsCi0JCQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCisJc2l6ZTggPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzhDT0wsIENPTkZJR19TWVNfT1IyXzhDT0wsCisJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CisJc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzlDT0wsIENPTkZJR19TWVNfT1IyXzlDT0wsCisJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewogCQlwc2l6ZSA9IHNpemU5OwogCQlwcmludGYgKCIoNjB4OjlDT0wpICIpOwogCX0gZWxzZSB7Ci0JCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzhDT0wsIENGR19PUjJfOENPTCwKLQkJCQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKKwkJcHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzhDT0wsIENPTkZJR19TWVNfT1IyXzhDT0wsCisJCQkJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCQlwcmludGYgKCIoNjB4OjhDT0wpICIpOwogCX0KICNlbmRpZgpAQCAtMzQ3LDcgKzM0Nyw3IEBACiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0RPQykKIHZvaWQgZG9jX2luaXQgKHZvaWQpCiB7Ci0JZG9jX3Byb2JlIChDRkdfRE9DX0JBU0UpOworCWRvY19wcm9iZSAoQ09ORklHX1NZU19ET0NfQkFTRSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvYm9hcmQvcG04NTQvbGF3LmMgYi9ib2FyZC9wbTg1NC9sYXcuYwppbmRleCBkNzRkMTdhLi4zOWU4ZGJiIDEwMDY0NAotLS0gYS9ib2FyZC9wbTg1NC9sYXcuYworKysgYi9ib2FyZC9wbTg1NC9sYXcuYwpAQCAtNDYsMTMgKzQ2LDEzIEBACiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7CiAjaWZuZGVmIENPTkZJR19TUERfRUVQUk9NCi0JU0VUX0xBVyhDRkdfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0REUiksCisJU0VUX0xBVyhDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9ERFIpLAogI2VuZGlmCi0JU0VUX0xBVyhDRkdfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKIAkvKiBUaGlzIGlzIG5vdCBzbyBtdWNoIHRoZSBTRFJBTSBtYXAgYXMgaXQgaXMgdGhlIHdob2xlIGxvY2FsYnVzIG1hcC4gKi8KLQlTRVRfTEFXKENGR19MQkNfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKLQlTRVRfTEFXKENGR19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJKSwKLQlTRVRfTEFXKENGR19SSU9fTUVNX0JBU0UsIExBV0FSX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUklPKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0kpLAorCVNFVF9MQVcoQ09ORklHX1NZU19SSU9fTUVNX0JBU0UsIExBV0FSX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUklPKSwKIH07CiAKIGludCBudW1fbGF3X2VudHJpZXMgPSBBUlJBWV9TSVpFKGxhd190YWJsZSk7CmRpZmYgLS1naXQgYS9ib2FyZC9wbTg1NC9wbTg1NC5jIGIvYm9hcmQvcG04NTQvcG04NTQuYwppbmRleCA5MDUyM2JkLi5kYjg1NWRmIDEwMDY0NAotLS0gYS9ib2FyZC9wbTg1NC9wbTg1NC5jCisrKyBiL2JvYXJkL3BtODU0L3BtODU0LmMKQEAgLTQ2LDcgKzQ2LDcgQEAKIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7CiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQotICAgIHZvbGF0aWxlIGNjc3JfcGNpeF90ICpwY2kgPSAodm9pZCAqKShDRkdfTVBDODV4eF9QQ0lYX0FERFIpOworICAgIHZvbGF0aWxlIGNjc3JfcGNpeF90ICpwY2kgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfUENJWF9BRERSKTsKIAogICAgIHBjaS0+cGVlciAmPSAweGZmZmZmZmRmOyAvKiBkaXNhYmxlIG1hc3RlciBhYm9ydCAqLwogI2VuZGlmCkBAIC04Myw3ICs4Myw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19ERFJfRExMKQogCXsKLQkgICAgdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwkgICAgdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAJICAgIGludCBpLHg7CiAKIAkgICAgeCA9IDEwOwpAQCAtMTMzLDggKzEzMyw4IEBACiB2b2lkCiBsb2NhbF9idXNfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAKIAl1aW50IGNsa2RpdjsKIAl1aW50IGxiY19oejsKQEAgLTE1NCwxMCArMTU0LDEwIEBACiAJbGJjX2h6ID0gc3lzaW5mby5mcmVxU3lzdGVtQnVzIC8gMTAwMDAwMCAvIGNsa2RpdjsKIAogCWlmIChsYmNfaHogPCA2NikgewotCQlsYmMtPmxjcnIgPSBDRkdfTEJDX0xDUlIgfCAweDgwMDAwMDAwOwkvKiBETEwgQnlwYXNzICovCisJCWxiYy0+bGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlIgfCAweDgwMDAwMDAwOwkvKiBETEwgQnlwYXNzICovCiAKIAl9IGVsc2UgaWYgKGxiY19oeiA+PSAxMzMpIHsKLQkJbGJjLT5sY3JyID0gQ0ZHX0xCQ19MQ1JSICYgKH4weDgwMDAwMDAwKTsgLyogRExMIEVuYWJsZWQgKi8KKwkJbGJjLT5sY3JyID0gQ09ORklHX1NZU19MQkNfTENSUiAmICh+MHg4MDAwMDAwMCk7IC8qIERMTCBFbmFibGVkICovCiAKIAl9IGVsc2UgewogCQkvKgpAQCAtMTcyLDcgKzE3Miw3IEBACiAJCQlsYmMtPmxjcnIgPSAweDEwMDAwMDA0OwogCQl9CiAKLQkJbGJjLT5sY3JyID0gQ0ZHX0xCQ19MQ1JSICYgKH4weDgwMDAwMDAwKTsgLyogRExMIEVuYWJsZWQgKi8KKwkJbGJjLT5sY3JyID0gQ09ORklHX1NZU19MQkNfTENSUiAmICh+MHg4MDAwMDAwMCk7IC8qIERMTCBFbmFibGVkICovCiAJCXVkZWxheSgyMDApOwogCiAJCS8qCkBAIC0xODYsMTEgKzE4NiwxMSBAQAogfQogCiAKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIGludCB0ZXN0ZHJhbSAodm9pZCkKIHsKLQl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQl1aW50ICpwZW5kID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfRU5EOworCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwl1aW50ICpwZW5kID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX0VORDsKIAl1aW50ICpwOwogCiAJcHJpbnRmKCJTRFJBTSB0ZXN0IHBoYXNlIDE6XG4iKTsKQEAgLTIyNywxNSArMjI3LDE1IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogbG9uZyBpbnQgZml4ZWRfc2RyYW0gKHZvaWQpCiB7Ci0gICNpZm5kZWYgQ0ZHX1JBTUJPT1QKLQl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICh2b2lkICopKENGR19NUEM4NXh4X0REUl9BRERSKTsKKyAgI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKwl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9ERFJfQUREUik7CiAKLQlkZHItPmNzMF9ibmRzID0gQ0ZHX0REUl9DUzBfQk5EUzsKLQlkZHItPmNzMF9jb25maWcgPSBDRkdfRERSX0NTMF9DT05GSUc7Ci0JZGRyLT50aW1pbmdfY2ZnXzEgPSBDRkdfRERSX1RJTUlOR18xOwotCWRkci0+dGltaW5nX2NmZ18yID0gQ0ZHX0REUl9USU1JTkdfMjsKLQlkZHItPnNkcmFtX21vZGUgPSBDRkdfRERSX01PREU7Ci0JZGRyLT5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFJfSU5URVJWQUw7CisJZGRyLT5jczBfYm5kcyA9IENPTkZJR19TWVNfRERSX0NTMF9CTkRTOworCWRkci0+Y3MwX2NvbmZpZyA9IENPTkZJR19TWVNfRERSX0NTMF9DT05GSUc7CisJZGRyLT50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlkZHItPnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWRkci0+c2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREU7CisJZGRyLT5zZHJhbV9pbnRlcnZhbCA9IENPTkZJR19TWVNfRERSX0lOVEVSVkFMOwogICAgICNpZiBkZWZpbmVkIChDT05GSUdfRERSX0VDQykKIAlkZHItPmVycl9kaXNhYmxlID0gMHgwMDAwMDAwRDsKIAlkZHItPmVycl9zYmUgPSAweDAwZmYwMDAwOwpAQCAtMjQ0LDE0ICsyNDQsMTQgQEAKIAl1ZGVsYXkoNTAwKTsKICAgICAjaWYgZGVmaW5lZCAoQ09ORklHX0REUl9FQ0MpCiAJLyogRW5hYmxlIEVDQyBjaGVja2luZyAqLwotCWRkci0+c2RyYW1fY2ZnID0gKENGR19ERFJfQ09OVFJPTCB8IDB4MjAwMDAwMDApOworCWRkci0+c2RyYW1fY2ZnID0gKENPTkZJR19TWVNfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKICAgICAjZWxzZQotCWRkci0+c2RyYW1fY2ZnID0gQ0ZHX0REUl9DT05UUk9MOworCWRkci0+c2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfQ09OVFJPTDsKICAgICAjZW5kaWYKIAlhc20oInN5bmM7IGlzeW5jOyBtc3luYyIpOwogCXVkZWxheSg1MDApOwogICAjZW5kaWYKLQlyZXR1cm4gQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKKwlyZXR1cm4gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CiB9CiAjZW5kaWYJLyogIWRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pICovCiAKZGlmZiAtLWdpdCBhL2JvYXJkL3BtODU0L3RsYi5jIGIvYm9hcmQvcG04NTQvdGxiLmMKaW5kZXggYTdmMzgxMy4uNWU3NGUyZCAxMDA2NDQKLS0tIGEvYm9hcmQvcG04NTQvdGxiLmMKKysrIGIvYm9hcmQvcG04NTQvdGxiLmMKQEAgLTI4LDE2ICsyOCwxNiBAQAogCiBzdHJ1Y3QgZnNsX2VfdGxiX2VudHJ5IHRsYl90YWJsZVtdID0gewogCS8qIFRMQiAwIC0gZm9yIHRlbXAgc3RhY2sgaW4gY2FjaGUgKi8KLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSLCBDRkdfSU5JVF9SQU1fQUREUiwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCiAKQEAgLTU0LDcgKzU0LDcgQEAKIAkgKiBUTEIgMToJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg4MDAwMDAwMAkyNTZNCVBDSTEgTUVNIEZpcnN0IGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTLCBDRkdfUENJMV9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMSwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC02Miw3ICs2Miw3IEBACiAJICogVExCIDI6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4OTAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBTZWNvbmQgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDRkdfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC03MCw3ICs3MCw3IEBACiAJICogVExCIDM6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4YzAwMDAwMDAJMjU2TQlSYXBpZCBJTyBNRU0gRmlyc3QgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1JJT19NRU1fQkFTRSwgQ0ZHX1JJT19NRU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUklPX01FTV9CQVNFLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDMsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNzgsNyArNzgsNyBAQAogCSAqIFRMQiA0OgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGQwMDAwMDAwCTI1Nk0JUmFwaWQgSU8gTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwgQ0ZHX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsIENPTkZJR19TWVNfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDQsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtODcsNyArODcsNyBAQAogCSAqIDB4ZTAwMF8wMDAwCTFNCUNDU1JCQVIKIAkgKiAweGUyMDBfMDAwMAkxNk0JUENJMSBJTwogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0NDU1JCQVIsIENGR19DQ1NSQkFSX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0NDU1JCQVIsIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNSwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTk1LDcgKzk1LDcgQEAKIAkgKiBUTEIgNjoJNjRNCUNhY2hlYWJsZSwgbm9uLWd1YXJkZWQKIAkgKiAweGYwMDBfMDAwMAk2NE0JTEJDIFNEUkFNCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfTEJDX1NEUkFNX0JBU0UsIENGR19MQkNfU0RSQU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCA2LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtMTA4LDcgKzEwOCw3IEBACiAJICogTGlrZWx5IGl0IG5lZWRzIHRvIGJlIGluY3JlYXNlZCBieSB0d28gZm9yIHRoZXNlIGVudHJpZXMuCiAJICovCiAKLQlTRVRfVExCX0VOVFJZKDEsIENGR19ERFJfU0RSQU1fQkFTRSwgQ0ZHX0REUl9TRFJBTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDcsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvcG04NTYvbGF3LmMgYi9ib2FyZC9wbTg1Ni9sYXcuYwppbmRleCBkNzRkMTdhLi4zOWU4ZGJiIDEwMDY0NAotLS0gYS9ib2FyZC9wbTg1Ni9sYXcuYworKysgYi9ib2FyZC9wbTg1Ni9sYXcuYwpAQCAtNDYsMTMgKzQ2LDEzIEBACiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7CiAjaWZuZGVmIENPTkZJR19TUERfRUVQUk9NCi0JU0VUX0xBVyhDRkdfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0REUiksCisJU0VUX0xBVyhDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9ERFIpLAogI2VuZGlmCi0JU0VUX0xBVyhDRkdfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKIAkvKiBUaGlzIGlzIG5vdCBzbyBtdWNoIHRoZSBTRFJBTSBtYXAgYXMgaXQgaXMgdGhlIHdob2xlIGxvY2FsYnVzIG1hcC4gKi8KLQlTRVRfTEFXKENGR19MQkNfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKLQlTRVRfTEFXKENGR19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJKSwKLQlTRVRfTEFXKENGR19SSU9fTUVNX0JBU0UsIExBV0FSX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUklPKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0kpLAorCVNFVF9MQVcoQ09ORklHX1NZU19SSU9fTUVNX0JBU0UsIExBV0FSX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUklPKSwKIH07CiAKIGludCBudW1fbGF3X2VudHJpZXMgPSBBUlJBWV9TSVpFKGxhd190YWJsZSk7CmRpZmYgLS1naXQgYS9ib2FyZC9wbTg1Ni9wbTg1Ni5jIGIvYm9hcmQvcG04NTYvcG04NTYuYwppbmRleCBlZTMzMjg2Li41MGM0MjgxIDEwMDY0NAotLS0gYS9ib2FyZC9wbTg1Ni9wbTg1Ni5jCisrKyBiL2JvYXJkL3BtODU2L3BtODU2LmMKQEAgLTIzOCw3ICsyMzgsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfRERSX0RMTCkKIAl7Ci0JICAgIHZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7CisJICAgIHZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCSAgICBpbnQgaSx4OwogCiAJICAgIHggPSAxMDsKQEAgLTI4OSw4ICsyODksOCBAQAogdm9pZAogbG9jYWxfYnVzX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOwotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCiAJdWludCBjbGtkaXY7CiAJdWludCBsYmNfaHo7CkBAIC0zMTAsMTAgKzMxMCwxMCBAQAogCWxiY19oeiA9IHN5c2luZm8uZnJlcVN5c3RlbUJ1cyAvIDEwMDAwMDAgLyBjbGtkaXY7CiAKIAlpZiAobGJjX2h6IDwgNjYpIHsKLQkJbGJjLT5sY3JyID0gQ0ZHX0xCQ19MQ1JSIHwgMHg4MDAwMDAwMDsJLyogRExMIEJ5cGFzcyAqLworCQlsYmMtPmxjcnIgPSBDT05GSUdfU1lTX0xCQ19MQ1JSIHwgMHg4MDAwMDAwMDsJLyogRExMIEJ5cGFzcyAqLwogCiAJfSBlbHNlIGlmIChsYmNfaHogPj0gMTMzKSB7Ci0JCWxiYy0+bGNyciA9IENGR19MQkNfTENSUiAmICh+MHg4MDAwMDAwMCk7IC8qIERMTCBFbmFibGVkICovCisJCWxiYy0+bGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlIgJiAofjB4ODAwMDAwMDApOyAvKiBETEwgRW5hYmxlZCAqLwogCiAJfSBlbHNlIHsKIAkJLyoKQEAgLTMyOCw3ICszMjgsNyBAQAogCQkJbGJjLT5sY3JyID0gMHgxMDAwMDAwNDsKIAkJfQogCi0JCWxiYy0+bGNyciA9IENGR19MQkNfTENSUiAmICh+MHg4MDAwMDAwMCk7LyogRExMIEVuYWJsZWQgKi8KKwkJbGJjLT5sY3JyID0gQ09ORklHX1NZU19MQkNfTENSUiAmICh+MHg4MDAwMDAwMCk7LyogRExMIEVuYWJsZWQgKi8KIAkJdWRlbGF5KDIwMCk7CiAKIAkJLyoKQEAgLTM0MSwxMSArMzQxLDExIEBACiAJfQogfQogCi0jaWYgZGVmaW5lZChDRkdfRFJBTV9URVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19EUkFNX1RFU1QpCiBpbnQgdGVzdGRyYW0gKHZvaWQpCiB7Ci0JdWludCAqcHN0YXJ0ID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7Ci0JdWludCAqcGVuZCA9ICh1aW50ICopIENGR19NRU1URVNUX0VORDsKKwl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CisJdWludCAqcGVuZCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9FTkQ7CiAJdWludCAqcDsKIAogCXByaW50ZigiU0RSQU0gdGVzdCBwaGFzZSAxOlxuIik7CkBAIC0zODIsMTUgKzM4MiwxNSBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGxvbmcgaW50IGZpeGVkX3NkcmFtICh2b2lkKQogewotICAjaWZuZGVmIENGR19SQU1CT09UCi0Jdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyPSAodm9pZCAqKShDRkdfTVBDODV4eF9ERFJfQUREUik7CisgICNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCisJdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfRERSX0FERFIpOwogCi0JZGRyLT5jczBfYm5kcyA9IENGR19ERFJfQ1MwX0JORFM7Ci0JZGRyLT5jczBfY29uZmlnID0gQ0ZHX0REUl9DUzBfQ09ORklHOwotCWRkci0+dGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlkZHItPnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7Ci0JZGRyLT5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFOwotCWRkci0+c2RyYW1faW50ZXJ2YWwgPSBDRkdfRERSX0lOVEVSVkFMOworCWRkci0+Y3MwX2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUzsKKwlkZHItPmNzMF9jb25maWcgPSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHOworCWRkci0+dGltaW5nX2NmZ18xID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzE7CisJZGRyLT50aW1pbmdfY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMjsKKwlkZHItPnNkcmFtX21vZGUgPSBDT05GSUdfU1lTX0REUl9NT0RFOworCWRkci0+c2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKICAgICAjaWYgZGVmaW5lZCAoQ09ORklHX0REUl9FQ0MpCiAJZGRyLT5lcnJfZGlzYWJsZSA9IDB4MDAwMDAwMEQ7CiAJZGRyLT5lcnJfc2JlID0gMHgwMGZmMDAwMDsKQEAgLTM5OSwxNCArMzk5LDE0IEBACiAJdWRlbGF5KDUwMCk7CiAgICAgI2lmIGRlZmluZWQgKENPTkZJR19ERFJfRUNDKQogCS8qIEVuYWJsZSBFQ0MgY2hlY2tpbmcgKi8KLQlkZHItPnNkcmFtX2NmZyA9IChDRkdfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKKwlkZHItPnNkcmFtX2NmZyA9IChDT05GSUdfU1lTX0REUl9DT05UUk9MIHwgMHgyMDAwMDAwMCk7CiAgICAgI2Vsc2UKLQlkZHItPnNkcmFtX2NmZyA9IENGR19ERFJfQ09OVFJPTDsKKwlkZHItPnNkcmFtX2NmZyA9IENPTkZJR19TWVNfRERSX0NPTlRST0w7CiAgICAgI2VuZGlmCiAJYXNtKCJzeW5jOyBpc3luYzsgbXN5bmMiKTsKIAl1ZGVsYXkoNTAwKTsKICAgI2VuZGlmCi0JcmV0dXJuIENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OwogfQogI2VuZGlmCS8qICFkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKSAqLwogCmRpZmYgLS1naXQgYS9ib2FyZC9wbTg1Ni90bGIuYyBiL2JvYXJkL3BtODU2L3RsYi5jCmluZGV4IGE3ZjM4MTMuLjVlNzRlMmQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BtODU2L3RsYi5jCisrKyBiL2JvYXJkL3BtODU2L3RsYi5jCkBAIC0yOCwxNiArMjgsMTYgQEAKIAogc3RydWN0IGZzbF9lX3RsYl9lbnRyeSB0bGJfdGFibGVbXSA9IHsKIAkvKiBUTEIgMCAtIGZvciB0ZW1wIHN0YWNrIGluIGNhY2hlICovCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiwgQ0ZHX0lOSVRfUkFNX0FERFIsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAogCkBAIC01NCw3ICs1NCw3IEBACiAJICogVExCIDE6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ODAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMV9NRU1fUEhZUywgQ0ZHX1BDSTFfTUVNX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDEsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNjIsNyArNjIsNyBAQAogCSAqIFRMQiAyOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweDkwMDAwMDAwCTI1Nk0JUENJMSBNRU0gU2Vjb25kIGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDIsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNzAsNyArNzAsNyBAQAogCSAqIFRMQiAzOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGMwMDAwMDAwCTI1Nk0JUmFwaWQgSU8gTUVNIEZpcnN0IGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19SSU9fTUVNX0JBU0UsIENGR19SSU9fTUVNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAzLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTc4LDcgKzc4LDcgQEAKIAkgKiBUTEIgNDoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhkMDAwMDAwMAkyNTZNCVJhcGlkIElPIE1FTSBTZWNvbmQgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsIENGR19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA0LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTg3LDcgKzg3LDcgQEAKIAkgKiAweGUwMDBfMDAwMAkxTQlDQ1NSQkFSCiAJICogMHhlMjAwXzAwMDAJMTZNCVBDSTEgSU8KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC05NSw3ICs5NSw3IEBACiAJICogVExCIDY6CTY0TQlDYWNoZWFibGUsIG5vbi1ndWFyZGVkCiAJICogMHhmMDAwXzAwMDAJNjRNCUxCQyBTRFJBTQogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0xCQ19TRFJBTV9CQVNFLCBDRkdfTEJDX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgNiwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTEwOCw3ICsxMDgsNyBAQAogCSAqIExpa2VseSBpdCBuZWVkcyB0byBiZSBpbmNyZWFzZWQgYnkgdHdvIGZvciB0aGVzZSBlbnRyaWVzLgogCSAqLwogCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRERSX1NEUkFNX0JBU0UsIENGR19ERFJfU0RSQU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCA3LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL3BuNjIvcG42Mi5jIGIvYm9hcmQvcG42Mi9wbjYyLmMKaW5kZXggNjBmYzQzMS4uMWI1NDViZiAxMDA2NDQKLS0tIGEvYm9hcmQvcG42Mi9wbjYyLmMKKysrIGIvYm9hcmQvcG42Mi9wbjYyLmMKQEAgLTg1LDcgKzg1LDcgQEAKIAogCXNob3dfc3RhcnR1cF9waGFzZSAoMik7CiAKLQlzaXplID0gZ2V0X3JhbV9zaXplKENGR19TRFJBTV9CQVNFLCBDRkdfTUFYX1JBTV9TSVpFKTsKKwlzaXplID0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUpOwogCiAJbmV3X2JhbmswX2VuZCA9IHNpemUgLSAxOwogCW1lYXIxID0gbXBjODI0eF9tcGMxMDdfZ2V0cmVnIChNRUFSMSk7CmRpZmYgLS1naXQgYS9ib2FyZC9wcG1jN3h4L2ZsYXNoLmMgYi9ib2FyZC9wcG1jN3h4L2ZsYXNoLmMKaW5kZXggMTcyMmEzNS4uZTcyNDIyNyAxMDA2NDQKLS0tIGEvYm9hcmQvcHBtYzd4eC9mbGFzaC5jCisrKyBiL2JvYXJkL3BwbWM3eHgvZmxhc2guYwpAQCAtMTksNyArMTksNyBAQAogc3RhdGljIGludAl3cml0ZV9kd29yZCAoZmxhc2hfaW5mb190KiBpbmZvLCB1bG9uZyBkZXN0LCB1bnNpZ25lZCBjaGFyICpwZGF0YSk7CiBzdGF0aWMgdm9pZAl3cml0ZV92aWFfZnB1ICh2b2xhdGlsZSBEV09SRCogYWRkciwgRFdPUkQqIGRhdGEpOwogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCkBAIC0xNzcsMTIgKzE3NywxMiBAQAogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKIAkvKiBTdGF0aWMgRkxBU0ggQmFuayBjb25maWd1cmF0aW9uIGhlcmUgKG9ubHkgb25lIGJhbmspICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAJaWYgKGZsYXNoX2luZm9bMF0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTiB8fCBzaXplX2IwID09IDApIHsKIAkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rIDAgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwKIAkJCQlzaXplX2IwLCBzaXplX2IwID4+IDIwKTsKQEAgLTE5MSwxMCArMTkxLDEwIEBACiAJLyoKIAkgKiBwcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkgJiYgZGVmaW5lZChDT05GSUdfRU5WX0FERFIpCkBAIC0zNTksNyArMzU5LDcgQEAKIAl3aGlsZSAoKCoodm9sYXRpbGUgRFdPUkQqKWluZm8tPnN0YXJ0W2xfc2VjdF0gJiAweDAwODAwMDgwMDA4MDAwODBMTCApCiAJCQkJIT0gMHgwMDgwMDA4MDAwODAwMDgwTEwgKQogCXsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtNDc3LDcgKzQ3Nyw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKih2b2xhdGlsZSBEV09SRCopZGVzdCAhPSBkYXRhICkgewotCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9wcG1jN3h4L3BjaS5jIGIvYm9hcmQvcHBtYzd4eC9wY2kuYwppbmRleCA1YjExNWVhLi5iZjEzM2I3IDEwMDY0NAotLS0gYS9ib2FyZC9wcG1jN3h4L3BjaS5jCisrKyBiL2JvYXJkL3BwbWM3eHgvcGNpLmMKQEAgLTQyLDM3ICs0MiwzNyBAQAogICAgIGhvc2UtPmxhc3RfYnVzbm8gPSAweGZmOwogCiAgICAgcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JQ0ZHX1BDSV9NRU1PUllfQlVTLAotCUNGR19QQ0lfTUVNT1JZX1BIWVMsCi0JQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwlDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCUNPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCUNPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCVBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAgICAgLyogUENJIG1lbW9yeSBzcGFjZSAqLwogICAgIHBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCUNGR19QQ0lfTUVNX0JVUywKLQlDRkdfUENJX01FTV9QSFlTLAotCUNGR19QQ0lfTUVNX1NJWkUsCisJQ09ORklHX1NZU19QQ0lfTUVNX0JVUywKKwlDT05GSUdfU1lTX1BDSV9NRU1fUEhZUywKKwlDT05GSUdfU1lTX1BDSV9NRU1fU0laRSwKIAlQQ0lfUkVHSU9OX01FTSk7CiAKICAgICAvKiBJU0EvUENJIG1lbW9yeSBzcGFjZSAqLwogICAgIHBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCUNGR19JU0FfTUVNX0JVUywKLQlDRkdfSVNBX01FTV9QSFlTLAotCUNGR19JU0FfTUVNX1NJWkUsCisJQ09ORklHX1NZU19JU0FfTUVNX0JVUywKKwlDT05GSUdfU1lTX0lTQV9NRU1fUEhZUywKKwlDT05GSUdfU1lTX0lTQV9NRU1fU0laRSwKIAlQQ0lfUkVHSU9OX01FTSk7CiAKICAgICAvKiBQQ0kgSS9PIHNwYWNlICovCiAgICAgcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDMsCi0JQ0ZHX1BDSV9JT19CVVMsCi0JQ0ZHX1BDSV9JT19QSFlTLAotCUNGR19QQ0lfSU9fU0laRSwKKwlDT05GSUdfU1lTX1BDSV9JT19CVVMsCisJQ09ORklHX1NZU19QQ0lfSU9fUEhZUywKKwlDT05GSUdfU1lTX1BDSV9JT19TSVpFLAogCVBDSV9SRUdJT05fSU8pOwogCiAgICAgLyogSVNBL1BDSSBJL08gc3BhY2UgKi8KICAgICBwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgNCwKLQlDRkdfSVNBX0lPX0JVUywKLQlDRkdfSVNBX0lPX1BIWVMsCi0JQ0ZHX0lTQV9JT19TSVpFLAorCUNPTkZJR19TWVNfSVNBX0lPX0JVUywKKwlDT05GSUdfU1lTX0lTQV9JT19QSFlTLAorCUNPTkZJR19TWVNfSVNBX0lPX1NJWkUsCiAJUENJX1JFR0lPTl9JTyk7CiAKICAgICBob3NlLT5yZWdpb25fY291bnQgPSA1OwpkaWZmIC0tZ2l0IGEvYm9hcmQvcHBtYzd4eC9wcG1jN3h4LmMgYi9ib2FyZC9wcG1jN3h4L3BwbWM3eHguYwppbmRleCA5Yzg3YzEwLi45NDRjZDRkIDEwMDY0NAotLS0gYS9ib2FyZC9wcG1jN3h4L3BwbWM3eHguYworKysgYi9ib2FyZC9wcG1jN3h4L3BwbWM3eHguYwpAQCAtMzIsNyArMzIsNyBAQAogICovCiBwaHlzX3NpemVfdCBpbml0ZHJhbSggaW50IGJvYXJkX3R5cGUgKQogewotICAgIHJldHVybiBDRkdfU0RSQU1fU0laRTsKKyAgICByZXR1cm4gQ09ORklHX1NZU19TRFJBTV9TSVpFOwogfQogCiAKZGlmZiAtLWdpdCBhL2JvYXJkL3BwbWM4MjYwL3BwbWM4MjYwLmMgYi9ib2FyZC9wcG1jODI2MC9wcG1jODI2MC5jCmluZGV4IGYzYzg1MDkuLjE4MDhhYmQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BwbWM4MjYwL3BwbWM4MjYwLmMKKysrIGIvYm9hcmQvcHBtYzgyNjAvcHBtYzgyNjAuYwpAQCAtMjAxLDE0ICsyMDEsMTQgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl2b2xhdGlsZSB1Y2hhciBjID0gMHhmZjsKLQl2b2xhdGlsZSB1Y2hhciAqcmFtYWRkcjAgPSAodWNoYXIgKikgKENGR19TRFJBTTBfQkFTRSk7Ci0Jdm9sYXRpbGUgdWNoYXIgKnJhbWFkZHIxID0gKHVjaGFyICopIChDRkdfU0RSQU0xX0JBU0UpOwotCXVsb25nIHBzZG1yID0gQ0ZHX1BTRE1SOwotCXZvbGF0aWxlIHVjaGFyICpyYW1hZGRyMiA9ICh1Y2hhciAqKSAoQ0ZHX1NEUkFNMl9CQVNFKTsKLQl1bG9uZyBsc2RtciA9IENGR19MU0RNUjsKKwl2b2xhdGlsZSB1Y2hhciAqcmFtYWRkcjAgPSAodWNoYXIgKikgKENPTkZJR19TWVNfU0RSQU0wX0JBU0UpOworCXZvbGF0aWxlIHVjaGFyICpyYW1hZGRyMSA9ICh1Y2hhciAqKSAoQ09ORklHX1NZU19TRFJBTTFfQkFTRSk7CisJdWxvbmcgcHNkbXIgPSBDT05GSUdfU1lTX1BTRE1SOworCXZvbGF0aWxlIHVjaGFyICpyYW1hZGRyMiA9ICh1Y2hhciAqKSAoQ09ORklHX1NZU19TRFJBTTJfQkFTRSk7CisJdWxvbmcgbHNkbXIgPSBDT05GSUdfU1lTX0xTRE1SOwogCWludCBpOwogCiAJLyoKQEAgLTIyOCwxMyArMjI4LDEzIEBACiAJICogIGFjY2Vzc2luZyB0aGUgU0RSQU0gd2l0aCBhIHNpbmdsZS1ieXRlIHRyYW5zYWN0aW9uLiIKIAkgKgogCSAqIFRoZSBhcHByb3ByaWF0ZSBCUngvT1J4IHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzZXQgd2hlbiB3ZQotCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENGR19TRFJBTV9CQVNFLgorCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENPTkZJR19TWVNfU0RSQU1fQkFTRS4KIAkgKi8KIAotCW1lbWN0bC0+bWVtY19wc3J0ID0gQ0ZHX1BTUlQ7Ci0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJbWVtY3RsLT5tZW1jX3BzZG1yID0gcHNkbXIgfCBQU0RNUl9PUF9QUkVBOwogCSpyYW1hZGRyMCsrID0gYzsKIAkqcmFtYWRkcjErKyA9IGM7CkBAIC0yNDYsOCArMjQ2LDggQEAKIAl9CiAKIAltZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IFBTRE1SX09QX01SVzsKLQlyYW1hZGRyMCA9ICh1Y2hhciAqKSAoQ0ZHX1NEUkFNMF9CQVNFICsgMHgxMTApOwotCXJhbWFkZHIxID0gKHVjaGFyICopIChDRkdfU0RSQU0xX0JBU0UgKyAweDExMCk7CisJcmFtYWRkcjAgPSAodWNoYXIgKikgKENPTkZJR19TWVNfU0RSQU0wX0JBU0UgKyAweDExMCk7CisJcmFtYWRkcjEgPSAodWNoYXIgKikgKENPTkZJR19TWVNfU0RSQU0xX0JBU0UgKyAweDExMCk7CiAJKnJhbWFkZHIwID0gYzsKIAkqcmFtYWRkcjEgPSBjOwogCkBAIC0yNzEsMTUgKzI3MSwxNSBAQAogI2VuZGlmCiAKIAkvKiByZXR1cm4gdG90YWwgcmFtIHNpemUgKi8KLQlyZXR1cm4gKChDRkdfU0RSQU0wX1NJWkUgKyBDRkdfU0RSQU0xX1NJWkUpICogMTAyNCAqIDEwMjQpOworCXJldHVybiAoKENPTkZJR19TWVNfU0RSQU0wX1NJWkUgKyBDT05GSUdfU1lTX1NEUkFNMV9TSVpFKSAqIDEwMjQgKiAxMDI0KTsKIH0KIAogI2lmZGVmIENPTkZJR19NSVNDX0lOSVRfUgogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogaW50IG1pc2NfaW5pdF9yICh2b2lkKQogewotI2lmZGVmIENGR19MRURfQkFTRQotCXVjaGFyIGRzID0gKih1bnNpZ25lZCBjaGFyICopIChDRkdfTEVEX0JBU0UgKyAxKTsKKyNpZmRlZiBDT05GSUdfU1lTX0xFRF9CQVNFCisJdWNoYXIgZHMgPSAqKHVuc2lnbmVkIGNoYXIgKikgKENPTkZJR19TWVNfTEVEX0JBU0UgKyAxKTsKIAl1Y2hhciBzczsKIAl1Y2hhciB0bXBbNjRdOwogCWludCByZXM7CkBAIC0yOTgsMTAgKzI5OCwxMCBAQAogCQkJdG1wWzE3XSA9ICdcMCc7CiAJCQlzZXRlbnYgKCJldGhhZGRyIiwgKGNoYXIgKil0bXApOwogCQkJLyogc2V0IHRoZSBsZWQgdG8gc2hvdyB0aGUgYWRkcmVzcyAqLwotCQkJKigodW5zaWduZWQgY2hhciAqKSAoQ0ZHX0xFRF9CQVNFICsgMSkpID0gZHM7CisJCQkqKCh1bnNpZ25lZCBjaGFyICopIChDT05GSUdfU1lTX0xFRF9CQVNFICsgMSkpID0gZHM7CiAJCX0KIAl9Ci0jZW5kaWYgLyogQ0ZHX0xFRF9CQVNFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19MRURfQkFTRSAqLwogCXJldHVybiAoMCk7CiB9CiAjZW5kaWYgLyogQ09ORklHX01JU0NfSU5JVF9SICovCmRpZmYgLS1naXQgYS9ib2FyZC9wcG1jODI2MC9zdHJhdGFmbGFzaC5jIGIvYm9hcmQvcHBtYzgyNjAvc3RyYXRhZmxhc2guYwppbmRleCBmOWFiZmFjLi5jYzkxNjI3IDEwMDY0NAotLS0gYS9ib2FyZC9wcG1jODI2MC9zdHJhdGFmbGFzaC5jCisrKyBiL2JvYXJkL3BwbWM4MjYwL3N0cmF0YWZsYXNoLmMKQEAgLTEwNCw3ICsxMDQsNyBAQAogCiAjZGVmaW5lIE5VTV9FUkFTRV9SRUdJT05TIDQKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTIxLDcgKzEyMSw3IEBACiBzdGF0aWMgdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHVsb25nIGJhc2UsIGludCBiYW5rbnVtKTsKIHN0YXRpYyBpbnQgZmxhc2hfd3JpdGVfY2Zpd29yZCAoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCBjZml3b3JkX3QgY3dvcmQpOwogc3RhdGljIGludCBmbGFzaF9mdWxsX3N0YXR1c19jaGVjayhmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBzZWN0b3IsIHVsb25nIHRvdXQsIGNoYXIgKiBwcm9tcHQpOwotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiBzdGF0aWMgaW50IGZsYXNoX3dyaXRlX2NmaWJ1ZmZlcihmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1Y2hhciAqIGNwLCBpbnQgbGVuKTsKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTgxLDE1ICsxODEsMTUgQEAKIAkgKgogCSAqLwogCi0JYWRkcmVzcyA9IENGR19GTEFTSF9CQVNFOworCWFkZHJlc3MgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJc2l6ZSA9IDA7CiAKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCQlzaXplICs9IGZsYXNoX2luZm9baV0uc2l6ZSA9IGZsYXNoX2dldF9zaXplKGFkZHJlc3MsIGkpOwotCQlhZGRyZXNzICs9IENGR19GTEFTSF9JTkNSRU1FTlQ7CisJCWFkZHJlc3MgKz0gQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQ7CiAJCWlmIChmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pIHsKIAkJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggb24gQmFuayAlZCAtIFNpemUgPSAweCUwOGx4ID0gJWxkIE1CXG4iLGksCiAJCQkJZmxhc2hfaW5mb1swXS5zaXplLCBmbGFzaF9pbmZvW2ldLnNpemU8PDIwKTsKQEAgLTE5Nyw4ICsxOTcsOCBAQAogCX0KIAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UpCi0JZm9yKGk9MDsgZmxhc2hfaW5mb1swXS5zdGFydFtpXSA8IENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMTsgaSsrKQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisJZm9yKGk9MDsgZmxhc2hfaW5mb1swXS5zdGFydFtpXSA8IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTE7IGkrKykKIAkJKHZvaWQpZmxhc2hfcmVhbF9wcm90ZWN0KCZmbGFzaF9pbmZvWzBdLCBpLCAxKTsKICNlbmRpZgogCkBAIC0zMTksNyArMzE5LDcgQEAKIAkJd3AgPSBjcDsKIAl9CiAKLSNpZmRlZiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQogCXdoaWxlKGNudCA+PSBpbmZvLT5wb3J0d2lkdGgpIHsKIAkJaSA9IGluZm8tPmJ1ZmZlcl9zaXplID4gY250PyBjbnQ6IGluZm8tPmJ1ZmZlcl9zaXplOwogCQlpZigocmMgPSBmbGFzaF93cml0ZV9jZmlidWZmZXIoaW5mbywgd3AsIHNyYyxpKSkgIT0gRVJSX09LKQpAQCAtMzQwLDcgKzM0MCw3IEBACiAJCXdwICs9IGluZm8tPnBvcnR3aWR0aDsKIAkJY250IC09IGluZm8tPnBvcnR3aWR0aDsKIAl9Ci0jZW5kaWYgLyogQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgKi8KIAlpZiAoY250ID09IDApIHsKIAkJcmV0dXJuICgwKTsKIAl9CkBAIC02NzksNyArNjc5LDcgQEAKIAlyZXR1cm4gZmxhc2hfZnVsbF9zdGF0dXNfY2hlY2soaW5mbywgMCwgaW5mby0+d3JpdGVfdG91dCwgIndyaXRlIik7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQogCiAvKiBsb29wIHRocm91Z2ggdGhlIHNlY3RvcnMgZnJvbSB0aGUgaGlnaGVzdCBhZGRyZXNzCiAgKiB3aGVuIHRoZSBwYXNzZWQgYWRkcmVzcyBpcyBncmVhdGVyIG9yIGVxdWFsIHRvIHRoZSBzZWN0b3IgYWRkcmVzcwpAQCAtNzQ5LDQgKzc0OSw0IEBACiAJZmxhc2hfd3JpdGVfY21kKGluZm8sIHNlY3RvciwgMCwgRkxBU0hfQ01EX0NMRUFSX1NUQVRVUyk7CiAJcmV0dXJuIHJldGNvZGU7CiB9Ci0jZW5kaWYgLyogQ0ZHX1VTRV9GTEFTSF9CVUZGRVJfV1JJVEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1VTRV9GTEFTSF9CVUZGRVJfV1JJVEUgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL3Byb2RyaXZlL2FscHIvYWxwci5jIGIvYm9hcmQvcHJvZHJpdmUvYWxwci9hbHByLmMKaW5kZXggY2M0OTFkMC4uZGMzNDMxOSAxMDA2NDQKLS0tIGEvYm9hcmQvcHJvZHJpdmUvYWxwci9hbHByLmMKKysrIGIvYm9hcmQvcHJvZHJpdmUvYWxwci9hbHByLmMKQEAgLTkyLDggKzkyLDggQEAKIAltdGRjciAodWljMHZyLCAweDAwMDAwMDAxKTsgLyogKi8KIAogCS8qIFNldHVwIHNodXRkb3duL1NTRCBlbXB0eSBpbnRlcnJ1cHQgYXMgaW5wdXRzICovCi0Jb3V0MzIoR1BJTzBfVENSLCBpbjMyKEdQSU8wX1RDUikgJiB+KENGR19HUElPX1NIVVRET1dOIHwgQ0ZHX0dQSU9fU1NEX0VNUFRZKSk7Ci0Jb3V0MzIoR1BJTzBfT0RSLCBpbjMyKEdQSU8wX09EUikgJiB+KENGR19HUElPX1NIVVRET1dOIHwgQ0ZHX0dQSU9fU1NEX0VNUFRZKSk7CisJb3V0MzIoR1BJTzBfVENSLCBpbjMyKEdQSU8wX1RDUikgJiB+KENPTkZJR19TWVNfR1BJT19TSFVURE9XTiB8IENPTkZJR19TWVNfR1BJT19TU0RfRU1QVFkpKTsKKwlvdXQzMihHUElPMF9PRFIsIGluMzIoR1BJTzBfT0RSKSAmIH4oQ09ORklHX1NZU19HUElPX1NIVVRET1dOIHwgQ09ORklHX1NZU19HUElPX1NTRF9FTVBUWSkpOwogCiAJLyogU2V0dXAgR1BJTy9JUlEgbXVsdGlwbGV4aW5nICovCiAJbXRzZHIoc2RyX3BmYzAsIDB4MDFhMzNlMDApOwpAQCAtMTI0LDggKzEyNCw4IEBACiBzdGF0aWMgaW50IGJvYXJkX3Jldih2b2lkKQogewogCS8qIFNldHVwIGFzIGlucHV0ICovCi0Jb3V0MzIoR1BJTzBfVENSLCBpbjMyKEdQSU8wX1RDUikgJiB+KENGR19HUElPX1JFVjAgfCBDRkdfR1BJT19SRVYxKSk7Ci0Jb3V0MzIoR1BJTzBfT0RSLCBpbjMyKEdQSU8wX09EUikgJiB+KENGR19HUElPX1JFVjAgfCBDRkdfR1BJT19SRVYxKSk7CisJb3V0MzIoR1BJTzBfVENSLCBpbjMyKEdQSU8wX1RDUikgJiB+KENPTkZJR19TWVNfR1BJT19SRVYwIHwgQ09ORklHX1NZU19HUElPX1JFVjEpKTsKKwlvdXQzMihHUElPMF9PRFIsIGluMzIoR1BJTzBfT0RSKSAmIH4oQ09ORklHX1NZU19HUElPX1JFVjAgfCBDT05GSUdfU1lTX0dQSU9fUkVWMSkpOwogCiAJcmV0dXJuIChpbjMyKEdQSU8wX0lSKSA+PiAxNikgJiAweDM7CiB9CkBAIC0xODYsNyArMTg2LDcgQEAKICAqCW1heSBub3QgYmUgc3VmZmljaWVudCBmb3IgYSBnaXZlbiBib2FyZC4KICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkKIHZvaWQgcGNpX3RhcmdldF9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqIGhvc2UgKQogewogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0yMDEsNyArMjAxLDcgQEAKIAkgKiBNYXAgYWxsIG9mIFNEUkFNIHRvIFBDSSBhZGRyZXNzIDB4MDAwMF8wMDAwLiBOb3RlIHRoYXQgdGhlIDQ0MCBzdHJhcHBpbmcKIAkgKiBvcHRpb25zIHRvIG5vdCBzdXBwb3J0IHNpemVzIHN1Y2ggYXMgMTI4LzI1NiBNQi4KIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlvdXQzMnIoIFBDSVgwX1BJTTBMQUwsIENGR19TRFJBTV9CQVNFICk7CisJb3V0MzJyKCBQQ0lYMF9QSU0wTEFMLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKTsKIAlvdXQzMnIoIFBDSVgwX1BJTTBMQUgsIDAgKTsKIAlvdXQzMnIoIFBDSVgwX1BJTTBTQSwgfihnZC0+cmFtX3NpemUgLSAxKSB8IDEgKTsKIApAQCAtMjEwLDEyICsyMTAsMTIgQEAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCSAqIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL3ZlbmRvciBpZAogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDE2ciggUENJWDBfU0JTWVNWSUQsIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEICk7Ci0Jb3V0MTZyKCBQQ0lYMF9TQlNZU0lELCBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCApOworCW91dDE2ciggUENJWDBfU0JTWVNWSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCApOworCW91dDE2ciggUENJWDBfU0JTWVNJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEICk7CiAKIAlvdXQxNnIoIFBDSVgwX0NNRCwgaW4xNnIoUENJWDBfQ01EKSB8IFBDSV9DT01NQU5EX01FTU9SWSB8IFBDSV9DT01NQU5EX01BU1RFUik7CiB9Ci0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKSAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogIGlzX3BjaV9ob3N0CkBAIC0yMzksMTEgKzIzOSwxMSBAQAogCS8qCiAJICogQ29uZmlndXJlIEVSRUFEWSBhcyBpbnB1dAogCSAqLwotCW91dDMyKEdQSU8wX1RDUiwgaW4zMihHUElPMF9UQ1IpICYgfkNGR19HUElPX0VSRUFEWSk7CisJb3V0MzIoR1BJTzBfVENSLCBpbjMyKEdQSU8wX1RDUikgJiB+Q09ORklHX1NZU19HUElPX0VSRUFEWSk7CiAJdWRlbGF5KDEwMDApOwogCiAJZm9yICg7OykgewotCQlpZiAoaW4zMihHUElPMF9JUikgJiBDRkdfR1BJT19FUkVBRFkpCisJCWlmIChpbjMyKEdQSU8wX0lSKSAmIENPTkZJR19TWVNfR1BJT19FUkVBRFkpCiAJCQlyZXR1cm47CiAJfQogCkBAIC0yNjAsNyArMjYwLDcgQEAKICAqICBwY2lfbWFzdGVyX2luaXQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX01BU1RFUl9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVCkKIHZvaWQgcGNpX21hc3Rlcl9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSkKIHsKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwpAQCAtMjc0LDE5ICsyNzQsMTkgQEAKIAlvdXQzMnIoIFBDSVgwX1BPTTFTQSwgMCApOyAvKiBkaXNhYmxlICovCiAJb3V0MzJyKCBQQ0lYMF9QT00yU0EsIDAgKTsgLyogZGlzYWJsZSAqLwogCi0Jb3V0MzJyKFBDSVgwX1BPTTBMQUwsIENGR19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QT00wTEFMLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BPTTBMQUgsIDB4MDAwMDAwMDMpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KLQlvdXQzMnIoUENJWDBfUE9NMFBDSUFMLCBDRkdfUENJX01FTUJBU0UpOwkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QT00wUENJQUwsIENPTkZJR19TWVNfUENJX01FTUJBU0UpOwkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QT00wUENJQUgsIDB4MDAwMDAwMDApOwkvKiBQTU0wIFBDSSBIaWdoIEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE9NMFNBLCB+KDB4MTAwMDAwMDAgLSAxKSB8IDEpOwkvKiAyNTZNQiArIGVuYWJsZSByZWdpb24gKi8KIAotCW91dDMycihQQ0lYMF9QT00xTEFMLCBDRkdfUENJX01FTUJBU0UyKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BPTTFMQUwsIENPTkZJR19TWVNfUENJX01FTUJBU0UyKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BPTTFMQUgsIDB4MDAwMDAwMDMpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KLQlvdXQzMnIoUENJWDBfUE9NMVBDSUFMLCBDRkdfUENJX01FTUJBU0UyKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE9NMVBDSUFMLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMik7CS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BPTTFQQ0lBSCwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgUENJIEhpZ2ggQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QT00xU0EsIH4oMHgxMDAwMDAwMCAtIDEpIHwgMSk7CS8qIDI1Nk1CICsgZW5hYmxlIHJlZ2lvbiAqLwogfQotI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX01BU1RFUl9JTklUKSAqLworI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVCkgKi8KIAogI2lmZGVmIENPTkZJR19QT1NUCiAvKgpkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvYWxwci9jb25maWcubWsgYi9ib2FyZC9wcm9kcml2ZS9hbHByL2NvbmZpZy5tawppbmRleCA5ZTE4MzM1Li5iNjJlNzc2IDEwMDY0NAotLS0gYS9ib2FyZC9wcm9kcml2ZS9hbHByL2NvbmZpZy5taworKysgYi9ib2FyZC9wcm9kcml2ZS9hbHByL2NvbmZpZy5tawpAQCAtNDAsNSArNDAsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL3Byb2RyaXZlL2FscHIvZnBnYS5jIGIvYm9hcmQvcHJvZHJpdmUvYWxwci9mcGdhLmMKaW5kZXggZTk0MzYwZi4uMGVjZWJjOSAxMDA2NDQKLS0tIGEvYm9hcmQvcHJvZHJpdmUvYWxwci9mcGdhLmMKKysrIGIvYm9hcmQvcHJvZHJpdmUvYWxwci9mcGdhLmMKQEAgLTYxLDEwICs2MSwxMCBAQAogI2RlZmluZQlTRVRfR1BJT18wKGJpdCkJCVNFVF9HUElPX1JFR18wKEdQSU8wX09SLCBiaXQpCiAjZGVmaW5lCVNFVF9HUElPXzEoYml0KQkJU0VUX0dQSU9fUkVHXzEoR1BJTzBfT1IsIGJpdCkKIAotI2RlZmluZSBGUEdBX1BSRwkJKDB4ODAwMDAwMDAgPj4gQ0ZHX0dQSU9fUFJPR19FTikKLSNkZWZpbmUgRlBHQV9DT05GSUcJCSgweDgwMDAwMDAwID4+IENGR19HUElPX0NPTkZJRykKLSNkZWZpbmUgRlBHQV9EQVRBCQkoMHg4MDAwMDAwMCA+PiBDRkdfR1BJT19EQVRBKQotI2RlZmluZSBGUEdBX0NMSwkJKDB4ODAwMDAwMDAgPj4gQ0ZHX0dQSU9fQ0xLKQorI2RlZmluZSBGUEdBX1BSRwkJKDB4ODAwMDAwMDAgPj4gQ09ORklHX1NZU19HUElPX1BST0dfRU4pCisjZGVmaW5lIEZQR0FfQ09ORklHCQkoMHg4MDAwMDAwMCA+PiBDT05GSUdfU1lTX0dQSU9fQ09ORklHKQorI2RlZmluZSBGUEdBX0RBVEEJCSgweDgwMDAwMDAwID4+IENPTkZJR19TWVNfR1BJT19EQVRBKQorI2RlZmluZSBGUEdBX0NMSwkJKDB4ODAwMDAwMDAgPj4gQ09ORklHX1NZU19HUElPX0NMSykKICNkZWZpbmUgT0xEX1ZBTAkJCShGUEdBX1BSRyB8IEZQR0FfQ09ORklHKQogCiAjZGVmaW5lIFNFVF9GUEdBKGRhdGEpCQlvdXQzMihHUElPMF9PUiwgZGF0YSkKQEAgLTg3LDQzICs4Nyw0MyBAQAogCiAJcmVnID0gaW4zMihHUElPMF9JUik7CiAJLyogRW5hYmxlIHRoZSBGUEdBIENoYWluICovCi0JU0VUX0dQSU9fUkVHXzEoR1BJTzBfVENSLCBDRkdfR1BJT19QUk9HX0VOKTsKLQlTRVRfR1BJT19SRUdfMChHUElPMF9PRFIsIENGR19HUElPX1BST0dfRU4pOwotCVNFVF9HUElPXzEoQ0ZHX0dQSU9fUFJPR19FTik7Ci0JU0VUX0dQSU9fUkVHXzEoR1BJTzBfVENSLCBDRkdfR1BJT19TRUxfRFBSKTsKLQlTRVRfR1BJT19SRUdfMChHUElPMF9PRFIsIENGR19HUElPX1NFTF9EUFIpOwotCVNFVF9HUElPXzAoKENGR19HUElPX1NFTF9EUFIpKTsKKwlTRVRfR1BJT19SRUdfMShHUElPMF9UQ1IsIENPTkZJR19TWVNfR1BJT19QUk9HX0VOKTsKKwlTRVRfR1BJT19SRUdfMChHUElPMF9PRFIsIENPTkZJR19TWVNfR1BJT19QUk9HX0VOKTsKKwlTRVRfR1BJT18xKENPTkZJR19TWVNfR1BJT19QUk9HX0VOKTsKKwlTRVRfR1BJT19SRUdfMShHUElPMF9UQ1IsIENPTkZJR19TWVNfR1BJT19TRUxfRFBSKTsKKwlTRVRfR1BJT19SRUdfMChHUElPMF9PRFIsIENPTkZJR19TWVNfR1BJT19TRUxfRFBSKTsKKwlTRVRfR1BJT18wKChDT05GSUdfU1lTX0dQSU9fU0VMX0RQUikpOwogCiAJLyogaW5pdGlhbGl6ZSB0aGUgR1BJTyBQaW5zICovCiAJLyogb3V0cHV0ICovCi0JU0VUX0dQSU9fMChDRkdfR1BJT19DTEspOwotCVNFVF9HUElPX1JFR18xKEdQSU8wX1RDUiwgQ0ZHX0dQSU9fQ0xLKTsKLQlTRVRfR1BJT19SRUdfMChHUElPMF9PRFIsIENGR19HUElPX0NMSyk7CisJU0VUX0dQSU9fMChDT05GSUdfU1lTX0dQSU9fQ0xLKTsKKwlTRVRfR1BJT19SRUdfMShHUElPMF9UQ1IsIENPTkZJR19TWVNfR1BJT19DTEspOworCVNFVF9HUElPX1JFR18wKEdQSU8wX09EUiwgQ09ORklHX1NZU19HUElPX0NMSyk7CiAKIAkvKiBvdXRwdXQgKi8KLQlTRVRfR1BJT18wKENGR19HUElPX0RBVEEpOwotCVNFVF9HUElPX1JFR18xKEdQSU8wX1RDUiwgQ0ZHX0dQSU9fREFUQSk7Ci0JU0VUX0dQSU9fUkVHXzAoR1BJTzBfT0RSLCBDRkdfR1BJT19EQVRBKTsKKwlTRVRfR1BJT18wKENPTkZJR19TWVNfR1BJT19EQVRBKTsKKwlTRVRfR1BJT19SRUdfMShHUElPMF9UQ1IsIENPTkZJR19TWVNfR1BJT19EQVRBKTsKKwlTRVRfR1BJT19SRUdfMChHUElPMF9PRFIsIENPTkZJR19TWVNfR1BJT19EQVRBKTsKIAogCS8qIEZpcnN0IHdlIHNldCBTVEFUVVMgdG8gMCB0aGVuIGFzIGFuIGlucHV0ICovCi0JU0VUX0dQSU9fUkVHXzEoR1BJTzBfVENSLCBDRkdfR1BJT19TVEFUVVMpOwotCVNFVF9HUElPX1JFR18wKEdQSU8wX09EUiwgQ0ZHX0dQSU9fU1RBVFVTKTsKLQlTRVRfR1BJT18wKENGR19HUElPX1NUQVRVUyk7Ci0JU0VUX0dQSU9fUkVHXzAoR1BJTzBfVENSLCBDRkdfR1BJT19TVEFUVVMpOwotCVNFVF9HUElPX1JFR18wKEdQSU8wX09EUiwgQ0ZHX0dQSU9fU1RBVFVTKTsKKwlTRVRfR1BJT19SRUdfMShHUElPMF9UQ1IsIENPTkZJR19TWVNfR1BJT19TVEFUVVMpOworCVNFVF9HUElPX1JFR18wKEdQSU8wX09EUiwgQ09ORklHX1NZU19HUElPX1NUQVRVUyk7CisJU0VUX0dQSU9fMChDT05GSUdfU1lTX0dQSU9fU1RBVFVTKTsKKwlTRVRfR1BJT19SRUdfMChHUElPMF9UQ1IsIENPTkZJR19TWVNfR1BJT19TVEFUVVMpOworCVNFVF9HUElPX1JFR18wKEdQSU8wX09EUiwgQ09ORklHX1NZU19HUElPX1NUQVRVUyk7CiAKIAkvKiBvdXRwdXQgKi8KLQlTRVRfR1BJT19SRUdfMShHUElPMF9UQ1IsIENGR19HUElPX0NPTkZJRyk7Ci0JU0VUX0dQSU9fUkVHXzAoR1BJTzBfT0RSLCBDRkdfR1BJT19DT05GSUcpOwotCVNFVF9HUElPXzAoQ0ZHX0dQSU9fQ09ORklHKTsKKwlTRVRfR1BJT19SRUdfMShHUElPMF9UQ1IsIENPTkZJR19TWVNfR1BJT19DT05GSUcpOworCVNFVF9HUElPX1JFR18wKEdQSU8wX09EUiwgQ09ORklHX1NZU19HUElPX0NPTkZJRyk7CisJU0VUX0dQSU9fMChDT05GSUdfU1lTX0dQSU9fQ09ORklHKTsKIAogCS8qIGlucHV0ICovCi0JU0VUX0dQSU9fMChDRkdfR1BJT19DT05fRE9OKTsKLQlTRVRfR1BJT19SRUdfMChHUElPMF9UQ1IsIENGR19HUElPX0NPTl9ET04pOwotCVNFVF9HUElPX1JFR18wKEdQSU8wX09EUiwgQ0ZHX0dQSU9fQ09OX0RPTik7CisJU0VUX0dQSU9fMChDT05GSUdfU1lTX0dQSU9fQ09OX0RPTik7CisJU0VUX0dQSU9fUkVHXzAoR1BJTzBfVENSLCBDT05GSUdfU1lTX0dQSU9fQ09OX0RPTik7CisJU0VUX0dQSU9fUkVHXzAoR1BJTzBfT0RSLCBDT05GSUdfU1lTX0dQSU9fQ09OX0RPTik7CiAKIAkvKiBDT05GSUcgPSAwIFNUQVRVUyA9IDAgLT4gRlBHQSBpbiByZXNldCBzdGF0ZSAqLwotCVNFVF9HUElPXzAoQ0ZHX0dQSU9fQ09ORklHKTsKKwlTRVRfR1BJT18wKENPTkZJR19TWVNfR1BJT19DT05GSUcpOwogCXJldHVybiBGUEdBX1NVQ0NFU1M7CiB9CiAKQEAgLTEzMSw5ICsxMzEsOSBAQAogaW50IGZwZ2FfY29uZmlnX2ZuIChpbnQgYXNzZXJ0X2NvbmZpZywgaW50IGZsdXNoLCBpbnQgY29va2llKQogewogCWlmIChhc3NlcnRfY29uZmlnKSB7Ci0JCVNFVF9HUElPXzEoQ0ZHX0dQSU9fQ09ORklHKTsKKwkJU0VUX0dQSU9fMShDT05GSUdfU1lTX0dQSU9fQ09ORklHKTsKIAl9IGVsc2UgewotCQlTRVRfR1BJT18wKENGR19HUElPX0NPTkZJRyk7CisJCVNFVF9HUElPXzAoQ09ORklHX1NZU19HUElPX0NPTkZJRyk7CiAJfQogCXJldHVybiBGUEdBX1NVQ0NFU1M7CiB9CkBAIC0xNDQsNyArMTQ0LDcgQEAKIAl1bnNpZ25lZCBsb25nCXJlZzsKIAogCXJlZyA9IGluMzIoR1BJTzBfSVIpOwotCWlmIChyZWcgJj0gKDB4ODAwMDAwMDAgPj4gQ0ZHX0dQSU9fU1RBVFVTKSkgeworCWlmIChyZWcgJj0gKDB4ODAwMDAwMDAgPj4gQ09ORklHX1NZU19HUElPX1NUQVRVUykpIHsKIAkJUFJJTlRGKCJTVEFUVVMgPSBISUdIXG4iKTsKIAkJcmV0dXJuIEZQR0FfRkFJTDsKIAl9CkBAIC0xNTcsNyArMTU3LDcgQEAKIHsKIAl1bnNpZ25lZCBsb25nCXJlZzsKIAlyZWcgPSBpbjMyKEdQSU8wX0lSKTsKLQlpZiAocmVnICY9ICgweDgwMDAwMDAwID4+IENGR19HUElPX0NPTl9ET04pKSB7CisJaWYgKHJlZyAmPSAoMHg4MDAwMDAwMCA+PiBDT05GSUdfU1lTX0dQSU9fQ09OX0RPTikpIHsKIAkJUFJJTlRGKCJDT05GX0RPTiA9IEhJR0hcbiIpOwogCQlyZXR1cm4gRlBHQV9GQUlMOwogCX0KQEAgLTE4OSwxMCArMTg5LDEwIEBACiAJCQlpIC0tOwogCQl9IHdoaWxlIChpID4gMCk7CiAKLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJaWYgKGJ5dGVjb3VudCAlIGxlbl80MCA9PSAwKSB7CiAJCQlwdXRjICgnLicpOwkJLyogbGV0IHRoZW0ga25vdyB3ZSBhcmUgYWxpdmUgKi8KLSNpZmRlZiBDRkdfRlBHQV9DSEVDS19DVFJMQworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9DSEVDS19DVFJMQwogCQkJaWYgKGN0cmxjICgpKQogCQkJCXJldHVybiBGUEdBX0ZBSUw7CiAjZW5kaWYKQEAgLTIwNSw3ICsyMDUsNyBAQAogLyogY2FsbGVkLCB3aGVuIHByb2dyYW1taW5nIGlzIGFib3J0ZWQgKi8KIGludCBmcGdhX2Fib3J0X2ZuIChpbnQgY29va2llKQogewotCVNFVF9HUElPXzEoKENGR19HUElPX1NFTF9EUFIpKTsKKwlTRVRfR1BJT18xKChDT05GSUdfU1lTX0dQSU9fU0VMX0RQUikpOwogCXJldHVybiBGUEdBX1NVQ0NFU1M7CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL3Byb2RyaXZlL2FscHIvaW5pdC5TIGIvYm9hcmQvcHJvZHJpdmUvYWxwci9pbml0LlMKaW5kZXggNzYxNjRjZS4uNGFmN2QxMyAxMDA2NDQKLS0tIGEvYm9hcmQvcHJvZHJpdmUvYWxwci9pbml0LlMKKysrIGIvYm9hcmQvcHJvZHJpdmUvYWxwci9pbml0LlMKQEAgLTg3LDI2ICs4NywyNiBAQAogdGxidGFiOgogCXRsYnRhYl9zdGFydAogCXRsYmVudHJ5KCAweGZmMDAwMDAwLCBTWl8xNk0sIDB4ZmYwMDAwMDAsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QRVJJUEhFUkFMX0JBU0UsIFNaXzI1Nk0sIDB4NDAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfSVNSQU1fQkFTRSwgU1pfNEssIDB4ODAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YICkKLQl0bGJlbnRyeSggQ0ZHX0lTUkFNX0JBU0UgKyAweDEwMDAsIFNaXzRLLCAweDgwMDAxMDAwLCAwLCBBQ19SfEFDX1d8QUNfWCApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFLCBTWl8yNTZNLCAweDQwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19JU1JBTV9CQVNFLCBTWl80SywgMHg4MDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1ggKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0lTUkFNX0JBU0UgKyAweDEwMDAsIFNaXzRLLCAweDgwMDAxMDAwLCAwLCBBQ19SfEFDX1d8QUNfWCApCiAjaWZkZWYgQ09ORklHXzR4eF9EQ0FDSEUKLQl0bGJlbnRyeSggQ0ZHX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cpCisJdGxiZW50cnkoIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRykKICNlbHNlCi0JdGxiZW50cnkoIENGR19TRFJBTV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCiAjZW5kaWYKIAotI2lmZGVmIENGR19JTklUX1JBTV9EQ0FDSEUKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfUkFNX0RDQUNIRQogCS8qIFRMQi1lbnRyeSBmb3IgaW5pdC1yYW0gaW4gZGNhY2hlIChTQV9JIG11c3QgYmUgdHVybmVkIG9mZiEpICovCi0JdGxiZW50cnkoIENGR19JTklUX1JBTV9BRERSLCBTWl82NEssIENGR19JTklUX1JBTV9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBTWl82NEssIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRyApCiAjZW5kaWYKLQl0bGJlbnRyeSggQ0ZHX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAyLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMiwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCiAKIAkvKiBQQ0kgKi8KLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UsIDMsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UxLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UxLCAzLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFMiwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFMiwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UsIDMsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEsIDMsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIsIDMsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCiAJLyogTkFORCAqLwotCXRsYmVudHJ5KCBDRkdfTkFORF9CQVNFLCBTWl80SywgQ0ZHX05BTkRfQkFTRSwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19OQU5EX0JBU0UsIFNaXzRLLCBDT05GSUdfU1lTX05BTkRfQkFTRSwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKIAl0bGJ0YWJfZW5kCmRpZmYgLS1naXQgYS9ib2FyZC9wcm9kcml2ZS9hbHByL25hbmQuYyBiL2JvYXJkL3Byb2RyaXZlL2FscHIvbmFuZC5jCmluZGV4IDk5ZjU3MzcuLmIxOGM5NmIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3Byb2RyaXZlL2FscHIvbmFuZC5jCisrKyBiL2JvYXJkL3Byb2RyaXZlL2FscHIvbmFuZC5jCkBAIC0xMzcsNyArMTM3LDcgQEAKIAogaW50IGJvYXJkX25hbmRfaW5pdChzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kKQogewotCWFscHJfbmRmYyA9IChzdHJ1Y3QgYWxwcl9uZGZjX3JlZ3MgKilDRkdfTkFORF9CQVNFOworCWFscHJfbmRmYyA9IChzdHJ1Y3QgYWxwcl9uZGZjX3JlZ3MgKilDT05GSUdfU1lTX05BTkRfQkFTRTsKIAogCW5hbmQtPmVjYy5tb2RlID0gTkFORF9FQ0NfU09GVDsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvY29tbW9uL2ZsYXNoLmMgYi9ib2FyZC9wcm9kcml2ZS9jb21tb24vZmxhc2guYwppbmRleCAzNjM2MzFmLi5jNDJmYTgzIDEwMDY0NAotLS0gYS9ib2FyZC9wcm9kcml2ZS9jb21tb24vZmxhc2guYworKysgYi9ib2FyZC9wcm9kcml2ZS9jb21tb24vZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qCiAgKiBGdW5jdGlvbnMKQEAgLTkxLDcgKzkxLDcgQEAKIAogCXByaW50ZiAoIiAgU2VjdG9yIFN0YXJ0IEFkZHJlc3NlczoiKTsKIAlmb3IgKGk9MDsgaTxpbmZvLT5zZWN0b3JfY291bnQ7ICsraSkgewotI2lmZGVmIENGR19GTEFTSF9FTVBUWV9JTkZPCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAJCS8qCiAJCSAqIENoZWNrIGlmIHdob2xlIHNlY3RvciBpcyBlcmFzZWQKIAkJICovCkBAIC0xMzYsMzEgKzEzNiwzMSBAQAogewogCXNob3J0IGk7CiAJc2hvcnQgbjsKLQlDRkdfRkxBU0hfV09SRF9TSVpFIHZhbHVlOworCUNPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFIHZhbHVlOwogCXVsb25nIGJhc2UgPSAodWxvbmcpYWRkcjsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopYWRkcjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKilhZGRyOwogCiAJLyogV3JpdGUgYXV0byBzZWxlY3QgY29tbWFuZDogcmVhZCBNYW51ZmFjdHVyZXIgSUQgKi8KLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDkwMDA5MDsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDkwMDA5MDsKIAotCXZhbHVlID0gYWRkcjJbQ0ZHX0ZMQVNIX1JFQUQwXTsKKwl2YWx1ZSA9IGFkZHIyW0NPTkZJR19TWVNfRkxBU0hfUkVBRDBdOwogCiAJc3dpdGNoICh2YWx1ZSkgewotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fQU1EOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUZVSl9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlGVUpfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0ZVSjsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlTU1RfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1NUX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9TU1Q7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1RNX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNUTV9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fU1RNOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUVYQ0VMX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUVYQ0VMX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9FWENFTDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKQEAgLTE3MCw4MiArMTcwLDgyIEBACiAJCXJldHVybiAoMCk7CQkJLyogbm8gb3IgdW5rbm93biBmbGFzaAkqLwogCX0KIAotCXZhbHVlID0gYWRkcjJbQ0ZHX0ZMQVNIX1JFQUQxXTsJCS8qIGRldmljZSBJRAkJKi8KKwl2YWx1ZSA9IGFkZHIyW0NPTkZJR19TWVNfRkxBU0hfUkVBRDFdOwkJLyogZGV2aWNlIElECQkqLwogCiAJc3dpdGNoICh2YWx1ZSkgewotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWNDAwVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY0MDBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTQwMFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDExOwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDAuNSBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWNDAwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY0MDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTQwMEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDExOwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDAuNSBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWODAwVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY4MDBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTgwMFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDE5OwogCQlpbmZvLT5zaXplID0gMHgwMDEwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDEgTUIJCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjgwMEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWODAwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU04MDBCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxOTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAxMDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAxIE1CCQkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYxNjBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjE2MFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMTYwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMiBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMTYwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYxNjBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTE2MEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDM1OwogCQlpbmZvLT5zaXplID0gMHgwMDIwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDIgTUIJCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0zMjBUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMzIwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOyAgYnJlYWs7CS8qID0+IDQgTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIyVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjJUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTURMMzIyVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOyAgYnJlYWs7CS8qID0+IDQgTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIyQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjJCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTURMMzIyQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOyAgYnJlYWs7CS8qID0+IDQgTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIzVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjNUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTURMMzIzVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOyAgYnJlYWs7CS8qID0+IDQgTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIzQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjNCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTURMMzIzQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOyAgYnJlYWs7CS8qID0+IDQgTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGMDIwOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjAyMDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfU1NUMDIwOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA2NDsKIAkJaW5mby0+c2l6ZSA9IDB4MDAwNDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAyNTYga0IJCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjA0MDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEYwNDA6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX1NTVDA0MDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTI4OwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKQEAgLTMxOCwxOSArMzE4LDE5IEBACiAJZm9yIChpID0gMDsgaSA8IGluZm8tPnNlY3Rvcl9jb3VudDsgaSsrKSB7CiAJCS8qIHJlYWQgc2VjdG9yIHByb3RlY3Rpb24gYXQgc2VjdG9yIGFkZHJlc3MsIChBNyAuLiBBMCkgPSAweDAyICovCiAJCS8qIEQwID0gMSBpZiBwcm90ZWN0ZWQgKi8KLQkJYWRkcjIgPSAodm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CisJCWFkZHIyID0gKHZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKIAkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSAhPSBGTEFTSF9NQU5fQU1EKQogCQkJaW5mby0+cHJvdGVjdFtpXSA9IDA7CiAJCWVsc2UKLQkJCWluZm8tPnByb3RlY3RbaV0gPSBhZGRyMltDRkdfRkxBU0hfUkVBRDJdICYgMTsKKwkJCWluZm8tPnByb3RlY3RbaV0gPSBhZGRyMltDT05GSUdfU1lTX0ZMQVNIX1JFQUQyXSAmIDE7CiAJfQogCiAJLyoKIAkgKiBQcmV2ZW50IHdyaXRlcyB0byB1bmluaXRpYWxpemVkIEZMQVNILgogCSAqLwogCWlmIChpbmZvLT5mbGFzaF9pZCAhPSBGTEFTSF9VTktOT1dOKSB7Ci0JCWFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilpbmZvLT5zdGFydFswXTsKLQkJKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLworCQlhZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKWluZm8tPnN0YXJ0WzBdOworCQkqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLwogCX0KIAogCXJldHVybiAoaW5mby0+c2l6ZSk7CkBAIC0zMzksOCArMzM5LDggQEAKIAogaW50IGZsYXNoX2VyYXNlKGZsYXNoX2luZm9fdCAqaW5mbywgaW50IHNfZmlyc3QsIGludCBzX2xhc3QpCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOwogCWludCBmbGFnLCBwcm90LCBzZWN0LCBsX3NlY3Q7CiAJdWxvbmcgc3RhcnQsIG5vdywgbGFzdDsKIApAQCAtMzc1LDE0ICszNzUsMTQgQEAKIAkvKiBTdGFydCBlcmFzZSBvbiB1bnByb3RlY3RlZCBzZWN0b3JzICovCiAJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdDw9c19sYXN0OyBzZWN0KyspIHsKIAkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCi0JCQlhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwkJCWFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAkJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkgewotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKLQkJCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDAzMDAwMzA7ICAvKiBzZWN0b3IgZXJhc2UgKi8KKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MDsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDAzMDAwMzA7ICAvKiBzZWN0b3IgZXJhc2UgKi8KIAogCQkJCS8qIHJlLWVuYWJsZSBpbnRlcnJ1cHRzIGlmIG5lY2Vzc2FyeSAqLwogCQkJCWlmIChmbGFnKSB7CkBAIC0zOTIsMjAgKzM5MiwyMCBAQAogCiAJCQkJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCQkJCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKLQkJCQl3aGlsZSAoKGFkZHIyWzBdICYgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0KLQkJCQkgICAgICAgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgewotCQkJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKQorCQkJCXdoaWxlICgoYWRkcjJbMF0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0KKwkJCQkgICAgICAgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApIHsKKwkJCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpCiAJCQkJCQlyZXR1cm4gKDEpOwogCQkJCX0KIAkJCX0gZWxzZSB7CiAJCQkJaWYgKHNlY3QgPT0gc19maXJzdCkgewotCQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOwotCQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOwotCQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOwotCQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKKwkJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOworCQkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKIAkJCQl9Ci0JCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwMzAwMDMwOyAgLyogc2VjdG9yIGVyYXNlICovCisJCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDMwMDAzMDsgIC8qIHNlY3RvciBlcmFzZSAqLwogCQkJfQogCQkJbF9zZWN0ID0gc2VjdDsKIAkJfQpAQCAtNDI2LDkgKzQyNiw5IEBACiAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJbGFzdCAgPSBzdGFydDsKLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7Ci0Jd2hpbGUgKChhZGRyWzBdICYgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwlhZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOworCXdoaWxlICgoYWRkclswXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC00NDEsOCArNDQxLDggQEAKIAogRE9ORToKIAkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilpbmZvLT5zdGFydFswXTsKLQlhZGRyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLworCWFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKilpbmZvLT5zdGFydFswXTsKKwlhZGRyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAogCXByaW50ZiAoIiBkb25lXG4iKTsKIAlyZXR1cm4gMDsKQEAgLTUyMiw5ICs1MjIsOSBAQAogICovCiBzdGF0aWMgaW50IHdyaXRlX3dvcmQoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKQogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilkZXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikmZGF0YTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKWRlc3Q7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopJmRhdGE7CiAJdWxvbmcgc3RhcnQ7CiAJaW50IGZsYWc7CiAJaW50IGk7CkBAIC01MzYsMTAgKzUzNiwxMCBAQAogCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKIAotCWZvciAoaT0wOyBpPDQvc2l6ZW9mKENGR19GTEFTSF9XT1JEX1NJWkUpOyBpKyspIHsKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEEwMDBBMDsKKwlmb3IgKGk9MDsgaTw0L3NpemVvZihDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykgeworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQTAwMEEwOwogCiAJCWRlc3QyW2ldID0gZGF0YTJbaV07CiAKQEAgLTU0OSw5ICs1NDksOSBAQAogCiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJc3RhcnQgPSBnZXRfdGltZXIgKDApOwotCQl3aGlsZSAoKGRlc3QyW2ldICYgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0KLQkJICAgICAgIChkYXRhMltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApKSB7Ci0JCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKQorCQl3aGlsZSAoKGRlc3QyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9CisJCSAgICAgICAoZGF0YTJbaV0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkpIHsKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKQogCQkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9wcm9kcml2ZS9jb21tb24vZnBnYS5jIGIvYm9hcmQvcHJvZHJpdmUvY29tbW9uL2ZwZ2EuYwppbmRleCBmOTQxMmEyLi4xNGJmZjA3IDEwMDY0NAotLS0gYS9ib2FyZC9wcm9kcml2ZS9jb21tb24vZnBnYS5jCisrKyBiL2JvYXJkL3Byb2RyaXZlL2NvbW1vbi9mcGdhLmMKQEAgLTM3LDExICszNywxMSBAQAogI2RlZmluZSBEQkcoeC4uLikKICNlbmRpZiAvKiBERUJVRyAqLwogCi0jZGVmaW5lIEZQR0FfUFJHCQlDRkdfRlBHQV9QUkcgLyogRlBHQSBwcm9ncmFtIHBpbiAoY3B1IG91dHB1dCkqLwotI2RlZmluZSBGUEdBX0NMSwkJQ0ZHX0ZQR0FfQ0xLIC8qIEZQR0EgY2xrIHBpbiAoY3B1IG91dHB1dCkgICAgKi8KLSNkZWZpbmUgRlBHQV9EQVRBCQlDRkdfRlBHQV9EQVRBIC8qIEZQR0EgZGF0YSBwaW4gKGNwdSBvdXRwdXQpICAqLwotI2RlZmluZSBGUEdBX0RPTkUJCUNGR19GUEdBX0RPTkUgLyogRlBHQSBkb25lIHBpbiAoY3B1IGlucHV0KSAgICovCi0jZGVmaW5lIEZQR0FfSU5JVAkJQ0ZHX0ZQR0FfSU5JVCAvKiBGUEdBIGluaXQgcGluIChjcHUgaW5wdXQpICAgKi8KKyNkZWZpbmUgRlBHQV9QUkcJCUNPTkZJR19TWVNfRlBHQV9QUkcgLyogRlBHQSBwcm9ncmFtIHBpbiAoY3B1IG91dHB1dCkqLworI2RlZmluZSBGUEdBX0NMSwkJQ09ORklHX1NZU19GUEdBX0NMSyAvKiBGUEdBIGNsayBwaW4gKGNwdSBvdXRwdXQpICAgICovCisjZGVmaW5lIEZQR0FfREFUQQkJQ09ORklHX1NZU19GUEdBX0RBVEEgLyogRlBHQSBkYXRhIHBpbiAoY3B1IG91dHB1dCkgICovCisjZGVmaW5lIEZQR0FfRE9ORQkJQ09ORklHX1NZU19GUEdBX0RPTkUgLyogRlBHQSBkb25lIHBpbiAoY3B1IGlucHV0KSAgICovCisjZGVmaW5lIEZQR0FfSU5JVAkJQ09ORklHX1NZU19GUEdBX0lOSVQgLyogRlBHQSBpbml0IHBpbiAoY3B1IGlucHV0KSAgICovCiAKICNkZWZpbmUgRVJST1JfRlBHQV9QUkdfSU5JVF9MT1cgIC0xICAgICAgICAvKiBUaW1lb3V0IGFmdGVyIFBSRyogYXNzZXJ0ZWQgICAqLwogI2RlZmluZSBFUlJPUl9GUEdBX1BSR19JTklUX0hJR0ggLTIgICAgICAgIC8qIFRpbWVvdXQgYWZ0ZXIgUFJHKiBkZWFzc2VydGVkICovCmRpZmYgLS1naXQgYS9ib2FyZC9wcm9kcml2ZS9wM214L21pc2MuUyBiL2JvYXJkL3Byb2RyaXZlL3AzbXgvbWlzYy5TCmluZGV4IDE2MGIxZDMuLjIzM2ZkODMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3Byb2RyaXZlL3AzbXgvbWlzYy5TCisrKyBiL2JvYXJkL3Byb2RyaXZlL3AzbXgvbWlzYy5TCkBAIC0xNiw3ICsxNiw3IEBACiBib2FyZF9yZWxvY2F0ZV9yb206CiAJbWZscglyNwogCS8qIHVwZGF0ZSB0aGUgbG9jYXRpb24gb2YgdGhlIEdUIHJlZ2lzdGVycyAqLwotCWxpcwlyMTEsIENGR19HVF9SRUdTQGgKKwlsaXMJcjExLCBDT05GSUdfU1lTX0dUX1JFR1NAaAogCS8qIGlmIHdlJ3JlIHVzaW5nIEVDQywgd2UgbXVzdCB1c2UgdGhlIERNQSBlbmdpbmUgdG8gY29weSBvdXJzZWx2ZXMgKi8KIAlibAlzdGFydF9pZG1hX3RyYW5zZmVyXzAKIAlibAl3YWl0X2Zvcl9pZG1hXzAKQEAgLTI5LDEyICsyOSwxMiBAQAogYm9hcmRfaW5pdF9lY2M6CiAJbWZscglyNwogCS8qIE5PVEU6IHIxMCBzdGlsbCBjb250YWlucyB0aGUgbG9jYXRpb24gd2UndmUgYmVlbiByZWxvY2F0ZWQgdG8KLQkgKiB3aGljaCBoYXBwZW5zIHRvIGJlIFRPUF9PRl9SQU0gLSBDRkdfTU9OSVRPUl9MRU4gKi8KKwkgKiB3aGljaCBoYXBwZW5zIHRvIGJlIFRPUF9PRl9SQU0gLSBDT05GSUdfU1lTX01PTklUT1JfTEVOICovCiAKIAkvKiBub3cgdGhhdCB3ZSdyZSBydW5uaW5nIGZyb20gcmFtLCBpbml0IHRoZSByZXN0IG9mIG1haW4gbWVtb3J5CiAJICogZm9yIEVDQyB1c2UgKi8KLQlsaXMJcjgsIENGR19NT05JVE9SX0xFTkBoCi0Jb3JpCXI4LCByOCwgQ0ZHX01PTklUT1JfTEVOQGwKKwlsaXMJcjgsIENPTkZJR19TWVNfTU9OSVRPUl9MRU5AaAorCW9yaQlyOCwgcjgsIENPTkZJR19TWVNfTU9OSVRPUl9MRU5AbAogCiAJZGl2dwlyMywgcjEwLCByOAogCkBAIC0xMjAsMTUgKzEyMCwxNSBAQAogCWJscgogI2VuZGlmCiAKLSNpZmRlZiBDRkdfQk9BUkRfQVNNX0lOSVQKKyNpZmRlZiBDT05GSUdfU1lTX0JPQVJEX0FTTV9JTklUCiAJLyogTk9URTogdHJhc2hlcyByMy1yNyAqLwogCS5nbG9ibCBib2FyZF9hc21faW5pdAogYm9hcmRfYXNtX2luaXQ6CiAJLyoganVzdCBtb3ZlIHRoZSBHVCByZWdpc3RlcnMgdG8gd2hlcmUgdGhleSBiZWxvbmcgKi8KLQlsaXMJcjMsIENGR19ERkxfR1RfUkVHU0BoCi0Jb3JpCXIzLCByMywgQ0ZHX0RGTF9HVF9SRUdTQGwKLQlsaXMJcjQsIENGR19HVF9SRUdTQGgKLQlvcmkJcjQsIHI0LCBDRkdfR1RfUkVHU0BsCisJbGlzCXIzLCBDT05GSUdfU1lTX0RGTF9HVF9SRUdTQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0RGTF9HVF9SRUdTQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfR1RfUkVHU0BoCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19HVF9SRUdTQGwKIAlsaQlyNSwgSU5URVJOQUxfU1BBQ0VfREVDT0RFCiAKIAkvKiB0ZXN0IHRvIHNlZSBpZiB3ZSd2ZSBhbHJlYWR5IG1vdmVkICovCkBAIC0xNTMsMTEgKzE1MywxMSBAQAogCWNtcAljcjAsIHI3LCByNgogCWJuZQkxYgogCi0JbGlzCXIzLCBDRkdfSU5UX1NSQU1fQkFTRUBoCi0Jb3JpCXIzLCByMywgQ0ZHX0lOVF9TUkFNX0JBU0VAbAorCWxpcwlyMywgQ09ORklHX1NZU19JTlRfU1JBTV9CQVNFQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lOVF9TUkFNX0JBU0VAbAogCXJsd2lubSAgcjMsIHIzLCAxNiwgMTYsIDMxCi0JbGlzCXI0LCBDRkdfR1RfUkVHU0BoCi0Jb3JpCXI0LCByNCwgQ0ZHX0dUX1JFR1NAbAorCWxpcwlyNCwgQ09ORklHX1NZU19HVF9SRUdTQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0dUX1JFR1NAbAogCWxpCXI1LCBJTlRFR1JBVEVEX1NSQU1fQkFTRV9BRERSCiAJc3R3YnJ4ICByMywgcjUsIHI0CiAKZGlmZiAtLWdpdCBhL2JvYXJkL3Byb2RyaXZlL3AzbXgvbXBzYy5jIGIvYm9hcmQvcHJvZHJpdmUvcDNteC9tcHNjLmMKaW5kZXggMjQ5NGVjNi4uY2MwNWI0NSAxMDA2NDQKLS0tIGEvYm9hcmQvcHJvZHJpdmUvcDNteC9tcHNjLmMKKysrIGIvYm9hcmQvcHJvZHJpdmUvcDNteC9tcHNjLmMKQEAgLTQyMiw3ICs0MjIsNyBAQAogCQkJICAoTVY2NDQ2MF9DVU5JVF9CQVNFX0FERFJfV0lOXzBfQklUICogMikpKTsKIAogCS8qIFNldHVwIE1QU0MgaW50ZXJuYWwgYWRkcmVzcyBzcGFjZSBiYXNlIGFkZHJlc3MJKi8KLQlHVF9SRUdfV1JJVEUgKENVTklUX0lOVEVSTkFMX1NQQUNFX0JBU0VfQUREUl9SRUcsIENGR19HVF9SRUdTKTsKKwlHVF9SRUdfV1JJVEUgKENVTklUX0lOVEVSTkFMX1NQQUNFX0JBU0VfQUREUl9SRUcsIENPTkZJR19TWVNfR1RfUkVHUyk7CiAKIAkvKiBubyBoaWdoIGFkZHJlc3MgcmVtYXAqLwogCUdUX1JFR19XUklURSAoQ1VOSVRfSElHSF9BRERSX1JFTUFQX1JFRzAsIDB4MDApOwpAQCAtNTEyLDkgKzUxMiw5IEBACiAKICNpZmRlZiBaVU1BX05UTAogCS8qIGZyb20gdGNsayAqLwotCWNsb2NrID0gKENGR19UQ0xLIC8gKDE2ICogcmF0ZSkpIC0gMTsKKwljbG9jayA9IChDT05GSUdfU1lTX1RDTEsgLyAoMTYgKiByYXRlKSkgLSAxOwogI2Vsc2UKLQljbG9jayA9IChDRkdfVENMSyAvICgxNiAqIHJhdGUpKSAtIDE7CisJY2xvY2sgPSAoQ09ORklHX1NZU19UQ0xLIC8gKDE2ICogcmF0ZSkpIC0gMTsKICNlbmRpZgogCiAJZ2FsYnJnX3NldF9DRFYgKGNoYW5uZWwsIGNsb2NrKTsJLyogc2V0IHRpbWVyIFJlZy4gZm9yIEJSRyAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvcDNteC9wM214LmMgYi9ib2FyZC9wcm9kcml2ZS9wM214L3AzbXguYwppbmRleCA2OWQ3YzliLi4wMjQ3YmI4IDEwMDY0NAotLS0gYS9ib2FyZC9wcm9kcml2ZS9wM214L3AzbXguYworKysgYi9ib2FyZC9wcm9kcml2ZS9wM214L3AzbXguYwpAQCAtNjcsNyArNjcsNyBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAvKiB0aGlzIGlzIHRoZSBjdXJyZW50IEdUIHJlZ2lzdGVyIHNwYWNlIGxvY2F0aW9uICovCi0vKiBpdCBzdGFydHMgYXQgQ0ZHX0RGTF9HVF9SRUdTIGJ1dCBtb3ZlcyBsYXRlciB0byBDRkdfR1RfUkVHUyAqLworLyogaXQgc3RhcnRzIGF0IENPTkZJR19TWVNfREZMX0dUX1JFR1MgYnV0IG1vdmVzIGxhdGVyIHRvIENPTkZJR19TWVNfR1RfUkVHUyAqLwogCiAvKiBVbmZvcnR1bmF0ZWx5LCB3ZSBjYW50IGNoYW5nZSBpdCB3aGlsZSB3ZSBhcmUgaW4gZmxhc2gsIHNvIHdlIGluaXRpYWxpemUgaXQKICAqIHRvIHRoZSAiZmluYWwiIHZhbHVlLiBUaGlzIG1lYW5zIHRoYXQgYW55IGRlYnVnX2xlZCBjYWxscyBiZWZvcmUKQEAgLTc2LDcgKzc2LDcgQEAKICAqLwogCiB2b2lkIGJvYXJkX3ByZWJvb3RtX2luaXQgKHZvaWQpOwotdW5zaWduZWQgaW50IElOVEVSTkFMX1JFR19CQVNFX0FERFIgPSBDRkdfR1RfUkVHUzsKK3Vuc2lnbmVkIGludCBJTlRFUk5BTF9SRUdfQkFTRV9BRERSID0gQ09ORklHX1NZU19HVF9SRUdTOwogaW50IGRpc3BsYXlfbWVtX21hcCAodm9pZCk7CiB2b2lkIHNldF9sZWQoaW50KTsKIApAQCAtMTI5LDcgKzEyOSw3IEBACiAKIAkJR1RfUkVHX1dSSVRFIChQQ0lfMF9DT05GSUdfQUREUiwgQklUMzEgfCB2YWwpOwogCQlHVF9SRUdfV1JJVEUgKFBDSV8wX0NPTkZJR19EQVRBX1ZJUlRVQUxfUkVHLAotCQkJICAgICAgKHN0YXQgJiAweGZmZmYwMDAwKSB8IENGR19QQ0lfSURTRUwpOworCQkJICAgICAgKHN0YXQgJiAweGZmZmYwMDAwKSB8IENPTkZJR19TWVNfUENJX0lEU0VMKTsKIAogCX0KIAlpZiAoKEdUUkVHUkVBRCAoUENJXzFfTU9ERSkgJiAoQklUNCB8IEJJVDUpKSAhPSAwKSB7CS8qIGlmICBQQ0ktWCAqLwpAQCAtMTM4LDcgKzEzOCw3IEBACiAKIAkJR1RfUkVHX1dSSVRFIChQQ0lfMV9DT05GSUdfQUREUiwgQklUMzEgfCB2YWwpOwogCQlHVF9SRUdfV1JJVEUgKFBDSV8xX0NPTkZJR19EQVRBX1ZJUlRVQUxfUkVHLAotCQkJICAgICAgKHN0YXQgJiAweGZmZmYwMDAwKSB8IENGR19QQ0lfSURTRUwpOworCQkJICAgICAgKHN0YXQgJiAweGZmZmYwMDAwKSB8IENPTkZJR19TWVNfUENJX0lEU0VMKTsKIAl9CiAKIAkvKiBFbmFibGUgbWFzdGVyICovCkBAIC0xNTcsMjEgKzE1NywyMSBAQAogCSAqIGluIDY0MzYwIHdoZW4gd3JpdGluZyB0byBwY2kgYmFzZSBnbyBhbmQgb3ZlcmlkZSByZW1hcCBhdXRvbWF0aWNhbHksCiAJICogaW4gNjQ0NjAgaXQgZG9lc24ndAogCSAqLwotCUdUX1JFR19XUklURSAoUENJXzBfSU9fQkFTRV9BRERSLCBDRkdfUENJMF9JT19TUEFDRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMElfT19BRERSRVNTX1JFTUFQLCBDRkdfUENJMF9JT19TUEFDRV9QQ0kgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzBfSU9fU0laRSwgKENGR19QQ0kwX0lPX1NJWkUgLSAxKSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMF9JT19CQVNFX0FERFIsIENPTkZJR19TWVNfUENJMF9JT19TUEFDRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMElfT19BRERSRVNTX1JFTUFQLCBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0VfUENJID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8wX0lPX1NJWkUsIChDT05GSUdfU1lTX1BDSTBfSU9fU0laRSAtIDEpID4+IDE2KTsKIAotCUdUX1JFR19XUklURSAoUENJXzBfTUVNT1JZMF9CQVNFX0FERFIsIENGR19QQ0kwX01FTV9CQVNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8wTUVNT1JZMF9BRERSRVNTX1JFTUFQLCBDRkdfUENJMF9NRU1fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMF9NRU1PUlkwX1NJWkUsIChDRkdfUENJMF9NRU1fU0laRSAtIDEpID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8wX01FTU9SWTBfQkFTRV9BRERSLCBDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBNRU1PUlkwX0FERFJFU1NfUkVNQVAsIENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMF9NRU1PUlkwX1NJWkUsIChDT05GSUdfU1lTX1BDSTBfTUVNX1NJWkUgLSAxKSA+PiAxNik7CiAKLQlHVF9SRUdfV1JJVEUgKFBDSV8xX0lPX0JBU0VfQUREUiwgQ0ZHX1BDSTFfSU9fU1BBQ0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzFJX09fQUREUkVTU19SRU1BUCwgQ0ZHX1BDSTFfSU9fU1BBQ0VfUENJID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8xX0lPX1NJWkUsIChDRkdfUENJMV9JT19TSVpFIC0gMSkgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFfSU9fQkFTRV9BRERSLCBDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFJX09fQUREUkVTU19SRU1BUCwgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFX1BDSSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMV9JT19TSVpFLCAoQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUgLSAxKSA+PiAxNik7CiAKLQlHVF9SRUdfV1JJVEUgKFBDSV8xX01FTU9SWTBfQkFTRV9BRERSLCBDRkdfUENJMV9NRU1fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMU1FTU9SWTBfQUREUkVTU19SRU1BUCwgQ0ZHX1BDSTFfTUVNX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzFfTUVNT1JZMF9TSVpFLCAoQ0ZHX1BDSTFfTUVNX1NJWkUgLSAxKSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMV9NRU1PUlkwX0JBU0VfQUREUiwgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xTUVNT1JZMF9BRERSRVNTX1JFTUFQLCBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFfTUVNT1JZMF9TSVpFLCAoQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFIC0gMSkgPj4gMTYpOwogCiAJLyogUENJIGludGVyZmFjZSBzZXR0aW5ncyAqLwogCS8qIFRpbWVvdXQgc2V0IHRvIHJldHJ5IGZvcmV2ZXIgKi8KQEAgLTE4OSw3ICsxODksNyBAQAogCWZvciAoc3RhdCA9IDA7IHN0YXQgPD0gUENJX0hPU1QxOyBzdGF0KyspCiAJCXBjaVdyaXRlQ29uZmlnUmVnIChzdGF0LAogCQkJCSAgIFBDSV9JTlRFUk5BTF9SRUdJU1RFUlNfTUVNT1JZX01BUFBFRF9CQVNFX0FERFJFU1MsCi0JCQkJICAgU0VMRiwgQ0ZHX0dUX1JFR1MpOworCQkJCSAgIFNFTEYsIENPTkZJR19TWVNfR1RfUkVHUyk7CiAjZW5kaWYKIAogfQpAQCAtMjA0LDcgKzIwNCw3IEBACiAJLyogY3B1IGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgKi8KIAl0bXAgPSBHVFJFR1JFQUQgKENQVV9DT05GSUdVUkFUSU9OKTsKIAkvKiBzZXQgdGhlIFNJTkdMRV9DUFUgYml0ICBzZWUgTVY2NDQ2MCAqLwotI2lmbmRlZiBDRkdfR1RfRFVBTF9DUFUJCS8qIFNJTkdMRV9DUFUgc2VlbXMgdG8gY2F1c2UgSlRBRyBwcm9ibGVtcyAqLworI2lmbmRlZiBDT05GSUdfU1lTX0dUX0RVQUxfQ1BVCQkvKiBTSU5HTEVfQ1BVIHNlZW1zIHRvIGNhdXNlIEpUQUcgcHJvYmxlbXMgKi8KIAl0bXAgfD0gQ1BVX0NPTkZfU0lOR0xFX0NQVTsKICNlbmRpZgogCXRtcCAmPSB+Q1BVX0NPTkZfQUFDS19ERUxBWV8yOwpAQCAtMjQ2LDcgKzI0Niw3IEBACiAJICogdGhhdCBpZiBpdCdzIG5vdCBhdCB0aGUgcG93ZXItb24gbG9jYXRpb24sIGl0J3Mgd2hlcmUgd2UgcHV0CiAJICogaXQgbGFzdCB0aW1lLiAoaHViZXIpCiAJICovCi0JbXlfcmVtYXBfZ3RfcmVncyAoQ0ZHX0RGTF9HVF9SRUdTLCBDRkdfR1RfUkVHUyk7CisJbXlfcmVtYXBfZ3RfcmVncyAoQ09ORklHX1NZU19ERkxfR1RfUkVHUywgQ09ORklHX1NZU19HVF9SRUdTKTsKIAogI2lmZGVmIENPTkZJR19QQ0kKIAlndF9wY2lfY29uZmlnICgpOwpAQCAtMjc0LDE3ICsyNzQsMTcgQEAKIAltZW1vcnlNYXBEZXZpY2VTcGFjZShERVZJQ0UzLCAwLCAwKTsKIAlHVF9SRUdfV1JJVEUoREVWSUNFX0JBTkszUEFSQU1FVEVSUywgMCk7CiAKLQlHVF9SRUdfV1JJVEUoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDRkdfQk9PVF9QQVIpOworCUdUX1JFR19XUklURShERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMsIENPTkZJR19TWVNfQk9PVF9QQVIpOwogCiAJZ3RfY3B1X2NvbmZpZygpOwogCiAJLyogTVBQIHNldHVwICovCi0JR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDAsIENGR19NUFBfQ09OVFJPTF8wKTsKLQlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMSwgQ0ZHX01QUF9DT05UUk9MXzEpOwotCUdUX1JFR19XUklURSAoTVBQX0NPTlRST0wyLCBDRkdfTVBQX0NPTlRST0xfMik7Ci0JR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDMsIENGR19NUFBfQ09OVFJPTF8zKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMCwgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8wKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMSwgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8xKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMiwgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8yKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMywgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8zKTsKIAotCUdUX1JFR19XUklURSAoR1BQX0xFVkVMX0NPTlRST0wsIENGR19HUFBfTEVWRUxfQ09OVFJPTCk7CisJR1RfUkVHX1dSSVRFIChHUFBfTEVWRUxfQ09OVFJPTCwgQ09ORklHX1NZU19HUFBfTEVWRUxfQ09OVFJPTCk7CiAKIAlzZXRfbGVkKExFRF9SRUQpOwogCkBAIC0yOTgsNyArMjk4LDcgQEAKIAl1OCB2YWw7CiAKIAlpY2FjaGVfZW5hYmxlICgpOwotI2lmZGVmIENGR19MMgorI2lmZGVmIENPTkZJR19TWVNfTDIKIAlsMmNhY2hlX2VuYWJsZSAoKTsKICNlbmRpZgogI2lmZGVmIENPTkZJR19NUFNDCkBAIC0zMTEsNyArMzExLDcgQEAKIAkgKiBObyBkaW9kZSwgMjUwIG9obSBzZXJpZXMgcmVzaXN0b3IKIAkgKi8KIAl2YWwgPSAweGE1OwotCWkyY193cml0ZShDRkdfSTJDX1JUQ19BRERSLCA4LCAxLCAmdmFsLCAxKTsKKwlpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDgsIDEsICZ2YWwsIDEpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zMjgsNyArMzI4LDcgQEAKIAogdm9pZCBhZnRlcl9yZWxvYyAodWxvbmcgZGVzdF9hZGRyLCBnZF90ICogZ2QpCiB7Ci0JbWVtb3J5TWFwRGV2aWNlU3BhY2UgKEJPT1RfREVWSUNFLCBDRkdfQk9PVF9TUEFDRSwgQ0ZHX0JPT1RfU0laRSk7CisJbWVtb3J5TWFwRGV2aWNlU3BhY2UgKEJPT1RfREVWSUNFLCBDT05GSUdfU1lTX0JPT1RfU1BBQ0UsIENPTkZJR19TWVNfQk9PVF9TSVpFKTsKIAogLyoJZGlzcGxheV9tZW1fbWFwKCk7ICovCiAKQEAgLTM0Nyw3ICszNDcsNyBAQAogewogCWNoYXIgKnMgPSBnZXRlbnYoInNlcmlhbCMiKTsKIAotCXByaW50ZigiQm9hcmQ6ICVzIiwgQ0ZHX0JPQVJEX05BTUUpOworCXByaW50ZigiQm9hcmQ6ICVzIiwgQ09ORklHX1NZU19CT0FSRF9OQU1FKTsKIAogCWlmIChzICE9IE5VTEwpIHsKIAkJcHV0cygiLCBzZXJpYWwjICIpOwpAQCAtNDU4LDcgKzQ1OCw3IEBACiAKIC8qIERSQU0gY2hlY2sgcm91dGluZXMgY29waWVkIGZyb20gZ3c4MjYwICovCiAKLSNpZiBkZWZpbmVkIChDRkdfRFJBTV9URVNUKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUKQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogTkFNRTogIG1vdmU2NCgpIC0gIG1vdmVzIGEgZG91YmxlIHdvcmQgKDY0LWJpdCkJCSAgICAgKi8KQEAgLTQ4OSw3ICs0ODksNyBAQAogfQogCiAKLSNpZiBkZWZpbmVkIChDRkdfRFJBTV9URVNUX0RBVEEpCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQSkKIAogdW5zaWduZWQgbG9uZyBsb25nIHBhdHRlcm5bXSA9IHsKIAkweGFhYWFhYWFhYWFhYWFhYWFVTEwsCkBAIC01NTIsNyArNTUyLDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBpbnQgbWVtX3Rlc3RfZGF0YSAodm9pZCkKIHsKLQl1bnNpZ25lZCBsb25nIGxvbmcgKnBtZW0gPSAodW5zaWduZWQgbG9uZyBsb25nICopIENGR19NRU1URVNUX1NUQVJUOworCXVuc2lnbmVkIGxvbmcgbG9uZyAqcG1lbSA9ICh1bnNpZ25lZCBsb25nIGxvbmcgKikgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOwogCXVuc2lnbmVkIGxvbmcgbG9uZyB0ZW1wNjQgPSAwOwogCWludCBudW1fcGF0dGVybnMgPSBzaXplb2YgKHBhdHRlcm4pIC8gc2l6ZW9mIChwYXR0ZXJuWzBdKTsKIAlpbnQgaTsKQEAgLTU3OSw5ICs1NzksOSBAQAogCiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVF9EQVRBICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQSAqLwogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVF9BRERSRVNTKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUX0FERFJFU1MpCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogTkFNRTogIG1lbV90ZXN0X2FkZHJlc3MoKSAtCXRlc3QgYWRkcmVzcyBsaW5lcwkJICAgICAqLwogLyoJCQkJCQkJCSAgICAgKi8KQEAgLTYwNiw4ICs2MDYsOCBAQAogaW50IG1lbV90ZXN0X2FkZHJlc3MgKHZvaWQpCiB7CiAJdm9sYXRpbGUgdW5zaWduZWQgaW50ICpwbWVtID0KLQkJKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQljb25zdCB1bnNpZ25lZCBpbnQgc2l6ZSA9IChDRkdfTUVNVEVTVF9FTkQgLSBDRkdfTUVNVEVTVF9TVEFSVCkgLyA0OworCQkodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwljb25zdCB1bnNpZ25lZCBpbnQgc2l6ZSA9IChDT05GSUdfU1lTX01FTVRFU1RfRU5EIC0gQ09ORklHX1NZU19NRU1URVNUX1NUQVJUKSAvIDQ7CiAJdW5zaWduZWQgaW50IGk7CiAKIAkvKiB3cml0ZSBhZGRyZXNzIHRvIGVhY2ggbG9jYXRpb24gKi8KQEAgLTYyMyw5ICs2MjMsOSBAQAogCX0KIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUX0FERFJFU1MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTICovCiAKLSNpZiBkZWZpbmVkIChDRkdfRFJBTV9URVNUX1dBTEspCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19EUkFNX1RFU1RfV0FMSykKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBOQU1FOiAgIG1lbV9tYXJjaCgpIC0gIG1lbW9yeSBtYXJjaAkJCQkgICAgICovCiAvKgkJCQkJCQkJICAgICAqLwpAQCAtNjgzLDcgKzY4Myw3IEBACiAJfQogCXJldHVybiAwOwogfQotI2VuZGlmIC8qIENGR19EUkFNX1RFU1RfV0FMSyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEsgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE5BTUU6ICAgbWVtX3Rlc3Rfd2FsaygpIC0gIGEgc2ltcGxlIHdhbGtpbmcgb25lcyB0ZXN0CSAgICAgKi8KQEAgLTcxNSw4ICs3MTUsOCBAQAogewogCXVuc2lnbmVkIGxvbmcgbG9uZyBtYXNrOwogCXZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgbG9uZyAqcG1lbSA9Ci0JCSh2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGxvbmcgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7Ci0JY29uc3QgdW5zaWduZWQgbG9uZyBzaXplID0gKENGR19NRU1URVNUX0VORCAtIENGR19NRU1URVNUX1NUQVJUKSAvIDg7CisJCSh2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGxvbmcgKikgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOworCWNvbnN0IHVuc2lnbmVkIGxvbmcgc2l6ZSA9IChDT05GSUdfU1lTX01FTVRFU1RfRU5EIC0gQ09ORklHX1NZU19NRU1URVNUX1NUQVJUKSAvIDg7CiAKIAl1bnNpZ25lZCBpbnQgaTsKIApAQCAtNzgyLDE1ICs3ODIsMTUgQEAKIAlpbnQgcnVuYWRkcmVzcyA9IDA7CiAJaW50IHJ1bndhbGsgICAgPSAwOwogCi0jaWZkZWYgQ0ZHX0RSQU1fVEVTVF9EQVRBCisjaWZkZWYgQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQQogCXMgPSBnZXRlbnYgKCJ0ZXN0ZHJhbWRhdGEiKTsKIAlydW5kYXRhID0gKHMgJiYgKCpzID09ICd5JykpID8gMSA6IDA7CiAjZW5kaWYKLSNpZmRlZiBDRkdfRFJBTV9URVNUX0FERFJFU1MKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTCiAJcyA9IGdldGVudiAoInRlc3RkcmFtYWRkcmVzcyIpOwogCXJ1bmFkZHJlc3MgPSAocyAmJiAoKnMgPT0gJ3knKSkgPyAxIDogMDsKICNlbmRpZgotI2lmZGVmIENGR19EUkFNX1RFU1RfV0FMSworI2lmZGVmIENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEsKIAlzID0gZ2V0ZW52ICgidGVzdGRyYW13YWxrIik7CiAJcnVud2FsayA9IChzICYmICgqcyA9PSAneScpKSA/IDEgOiAwOwogI2VuZGlmCkBAIC03OTgsOCArNzk4LDggQEAKIAlpZiAoKHJ1bmRhdGEgPT0gMSkgfHwgKHJ1bmFkZHJlc3MgPT0gMSkgfHwgKHJ1bndhbGsgPT0gMSkpCiAJCXByaW50ZiAoIlRlc3RpbmcgUkFNIGZyb20gMHglMDh4IHRvIDB4JTA4eCAuLi4gICIKIAkJCSIoZG9uJ3QgcGFuaWMuLi4gdGhhdCB3aWxsIHRha2UgYSBtb21lbnQgISEhISlcbiIsCi0JCQlDRkdfTUVNVEVTVF9TVEFSVCwgQ0ZHX01FTVRFU1RfRU5EKTsKLSNpZmRlZiBDRkdfRFJBTV9URVNUX0RBVEEKKwkJCUNPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCwgQ09ORklHX1NZU19NRU1URVNUX0VORCk7CisjaWZkZWYgQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQQogCWlmIChydW5kYXRhID09IDEpIHsKIAkJcHJpbnRmICgiVGVzdCBEQVRBIC4uLiAgIik7CiAJCWlmIChtZW1fdGVzdF9kYXRhICgpID09IDEpIHsKQEAgLTgwOSw3ICs4MDksNyBAQAogCQkJcHJpbnRmICgib2sgXG4iKTsKIAl9CiAjZW5kaWYKLSNpZmRlZiBDRkdfRFJBTV9URVNUX0FERFJFU1MKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTCiAJaWYgKHJ1bmFkZHJlc3MgPT0gMSkgewogCQlwcmludGYgKCJUZXN0IEFERFJFU1MgLi4uICAiKTsKIAkJaWYgKG1lbV90ZXN0X2FkZHJlc3MgKCkgPT0gMSkgewpAQCAtODE5LDcgKzgxOSw3IEBACiAJCQlwcmludGYgKCJvayBcbiIpOwogCX0KICNlbmRpZgotI2lmZGVmIENGR19EUkFNX1RFU1RfV0FMSworI2lmZGVmIENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEsKIAlpZiAocnVud2FsayA9PSAxKSB7CiAJCXByaW50ZiAoIlRlc3QgV0FMS0lORyBPTkVzIC4uLiAgIik7CiAJCWlmIChtZW1fdGVzdF93YWxrICgpID09IDEpIHsKQEAgLTgzNCw3ICs4MzQsNyBAQAogCXJldHVybiAwOwogCiB9Ci0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUICovCiAKIC8qIHJvbmVuIC0gdGhlIGJlbG93IGZ1bmN0aW9ucyBhcmUgdXNlZCBieSB0aGUgYm9vdG0gZnVuY3Rpb24gICAgICAgICAgICovCiAvKiAgLSB3ZSBtYXAgdGhlIGJhc2UgcmVnaXN0ZXIgdG8gZmJlMDAwMDAgKHNhbWUgbWFwcGluZyBhcyBpbiB0aGUgTFNQKSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvcDNteC9wY2kuYyBiL2JvYXJkL3Byb2RyaXZlL3AzbXgvcGNpLmMKaW5kZXggMTM3NzM5Yi4uODVmN2NhYSAxMDA2NDQKLS0tIGEvYm9hcmQvcHJvZHJpdmUvcDNteC9wY2kuYworKysgYi9ib2FyZC9wcm9kcml2ZS9wM214L3BjaS5jCkBAIC05MzIsMTQgKzkzMiwxNCBAQAogCiAJLyogUENJIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uIChwY2kwX2hvc2UucmVnaW9ucyArIDAsCi0JCQlDRkdfUENJMF8wX01FTV9TUEFDRSwKLQkJCUNGR19QQ0kwXzBfTUVNX1NQQUNFLAotCQkJQ0ZHX1BDSTBfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKKwkJCUNPTkZJR19TWVNfUENJMF8wX01FTV9TUEFDRSwKKwkJCUNPTkZJR19TWVNfUENJMF8wX01FTV9TUEFDRSwKKwkJCUNPTkZJR19TWVNfUENJMF9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOwogCiAJLyogUENJIEkvTyBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uIChwY2kwX2hvc2UucmVnaW9ucyArIDEsCi0JCQlDRkdfUENJMF9JT19TUEFDRV9QQ0ksCi0JCQlDRkdfUENJMF9JT19TUEFDRSwgQ0ZHX1BDSTBfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CisJCQlDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0VfUENJLAorCQkJQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFLCBDT05GSUdfU1lTX1BDSTBfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CiAKIAlwY2lfc2V0X29wcyAoJnBjaTBfaG9zZSwKIAkJICAgICBwY2lfaG9zZV9yZWFkX2NvbmZpZ19ieXRlX3ZpYV9kd29yZCwKQEAgLTk4MSwxNCArOTgxLDE0IEBACiAKIAkvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKHBjaTFfaG9zZS5yZWdpb25zICsgMCwKLQkJCUNGR19QQ0kxXzBfTUVNX1NQQUNFLAotCQkJQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UsCi0JCQlDRkdfUENJMV9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOworCQkJQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFLAorCQkJQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFLAorCQkJQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CiAKIAkvKiBQQ0kgSS9PIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKHBjaTFfaG9zZS5yZWdpb25zICsgMSwKLQkJCUNGR19QQ0kxX0lPX1NQQUNFX1BDSSwKLQkJCUNGR19QQ0kxX0lPX1NQQUNFLCBDRkdfUENJMV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKKwkJCUNPTkZJR19TWVNfUENJMV9JT19TUEFDRV9QQ0ksCisJCQlDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0UsIENPTkZJR19TWVNfUENJMV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKIAogCXBjaV9zZXRfb3BzICgmcGNpMV9ob3NlLAogCQkgICAgIHBjaV9ob3NlX3JlYWRfY29uZmlnX2J5dGVfdmlhX2R3b3JkLApkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvcDNteC9zZHJhbV9pbml0LmMgYi9ib2FyZC9wcm9kcml2ZS9wM214L3NkcmFtX2luaXQuYwppbmRleCBkODgxZDM4Li5iYWM2YzEyIDEwMDY0NAotLS0gYS9ib2FyZC9wcm9kcml2ZS9wM214L3NkcmFtX2luaXQuYworKysgYi9ib2FyZC9wcm9kcml2ZS9wM214L3NkcmFtX2luaXQuYwpAQCAtMjQzLDkgKzI0Myw5IEBACiAJdWRlbGF5KDIpOyAgLyogRklYTUUgIG1ha2UgdGhpcyBkeW5hbWljIGZvciB0aGUgc3lzdGVtIGNsb2NrICovCiAKIAkvKiBTRFJBTSBpbml0IGRvbmUgKi8KLQltZW1vcnlfbWFwX2JhbmsoMCwgQ0ZHX1NEUkFNX0JBU0UsICAoMjU2IDw8IDIwKSk7Ci0jaWZkZWYgQ0ZHX1NEUkFNMV9CQVNFCi0JbWVtb3J5X21hcF9iYW5rKDEsIENGR19TRFJBTTFfQkFTRSwgKDI1NiA8PCAyMCkpOworCW1lbW9yeV9tYXBfYmFuaygwLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsICAoMjU2IDw8IDIwKSk7CisjaWZkZWYgQ09ORklHX1NZU19TRFJBTTFfQkFTRQorCW1lbW9yeV9tYXBfYmFuaygxLCBDT05GSUdfU1lTX1NEUkFNMV9CQVNFLCAoMjU2IDw8IDIwKSk7CiAjZW5kaWYKIAogCS8qIERVTklUX01NQVNLOiBlbmFibGUgU25vb3BIaXRFbiBiaXQgdG8gYXZvaWQgZXJyYXRhIENQVS0jNApkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvcDNwNDQwL2NvbmZpZy5tayBiL2JvYXJkL3Byb2RyaXZlL3AzcDQ0MC9jb25maWcubWsKaW5kZXggZTU3MjJkZC4uNjBkM2JmNCAxMDA2NDQKLS0tIGEvYm9hcmQvcHJvZHJpdmUvcDNwNDQwL2NvbmZpZy5taworKysgYi9ib2FyZC9wcm9kcml2ZS9wM3A0NDAvY29uZmlnLm1rCkBAIC00MCw1ICs0MCw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvcDNwNDQwL2luaXQuUyBiL2JvYXJkL3Byb2RyaXZlL3AzcDQ0MC9pbml0LlMKaW5kZXggZWU2YjcwNi4uOGMxYTc5YyAxMDA2NDQKLS0tIGEvYm9hcmQvcHJvZHJpdmUvcDNwNDQwL2luaXQuUworKysgYi9ib2FyZC9wcm9kcml2ZS9wM3A0NDAvaW5pdC5TCkBAIC05MCwxMCArOTAsMTAgQEAKIHRsYnRhYjoKICAgICB0bGJ0YWJfc3RhcnQKICAgICB0bGJlbnRyeSggMHhmMDAwMDAwMCwgU1pfMjU2TSwgMHhmMDAwMDAwMCwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQotICAgIHRsYmVudHJ5KCBDRkdfUEVSSVBIRVJBTF9CQVNFLCBTWl8yNTZNLCAweDQwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotICAgIHRsYmVudHJ5KCBDRkdfSVNSQU1fQkFTRSwgU1pfNEssIDB4ODAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YICkKLSAgICB0bGJlbnRyeSggQ0ZHX0lTUkFNX0JBU0UgKyAweDEwMDAsIFNaXzRLLCAweDgwMDAxMDAwLCAwLCBBQ19SfEFDX1d8QUNfWCApCi0gICAgdGxiZW50cnkoIENGR19TRFJBTV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQotICAgIHRsYmVudHJ5KCBDRkdfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDIsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotICAgIHRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDMsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorICAgIHRsYmVudHJ5KCBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSwgU1pfMjU2TSwgMHg0MDAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKyAgICB0bGJlbnRyeSggQ09ORklHX1NZU19JU1JBTV9CQVNFLCBTWl80SywgMHg4MDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1ggKQorICAgIHRsYmVudHJ5KCBDT05GSUdfU1lTX0lTUkFNX0JBU0UgKyAweDEwMDAsIFNaXzRLLCAweDgwMDAxMDAwLCAwLCBBQ19SfEFDX1d8QUNfWCApCisgICAgdGxiZW50cnkoIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKyAgICB0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMiwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisgICAgdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDMsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQogICAgIHRsYnRhYl9lbmQKZGlmZiAtLWdpdCBhL2JvYXJkL3Byb2RyaXZlL3AzcDQ0MC9wM3A0NDAuYyBiL2JvYXJkL3Byb2RyaXZlL3AzcDQ0MC9wM3A0NDAuYwppbmRleCAxYThhYWNiLi4xYTA0ODZmIDEwMDY0NAotLS0gYS9ib2FyZC9wcm9kcml2ZS9wM3A0NDAvcDNwNDQwLmMKKysrIGIvYm9hcmQvcHJvZHJpdmUvcDNwNDQwL3AzcDQ0MC5jCkBAIC0zNSwyOSArMzUsMjkgQEAKIHsKIAlzd2l0Y2ggKGNvbG9yKSB7CiAJY2FzZSBMRURfT0ZGOgotCQlvdXQzMihHUElPMF9PUiwgIGluMzIoR1BJTzBfT1IpICYgfkNGR19MRURfR1JFRU4gJiB+Q0ZHX0xFRF9SRUQpOworCQlvdXQzMihHUElPMF9PUiwgIGluMzIoR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfTEVEX0dSRUVOICYgfkNPTkZJR19TWVNfTEVEX1JFRCk7CiAJCWJyZWFrOwogCiAJY2FzZSBMRURfR1JFRU46Ci0JCW91dDMyKEdQSU8wX09SLCAgKGluMzIoR1BJTzBfT1IpIHwgQ0ZHX0xFRF9HUkVFTikgJiB+Q0ZHX0xFRF9SRUQpOworCQlvdXQzMihHUElPMF9PUiwgIChpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfTEVEX0dSRUVOKSAmIH5DT05GSUdfU1lTX0xFRF9SRUQpOwogCQlicmVhazsKIAogCWNhc2UgTEVEX1JFRDoKLQkJb3V0MzIoR1BJTzBfT1IsICAoaW4zMihHUElPMF9PUikgfCBDRkdfTEVEX1JFRCkgJiB+Q0ZHX0xFRF9HUkVFTik7CisJCW91dDMyKEdQSU8wX09SLCAgKGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19MRURfUkVEKSAmIH5DT05GSUdfU1lTX0xFRF9HUkVFTik7CiAJCWJyZWFrOwogCiAJY2FzZSBMRURfT1JBTkdFOgotCQlvdXQzMihHUElPMF9PUiwgIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX0xFRF9HUkVFTiB8IENGR19MRURfUkVEKTsKKwkJb3V0MzIoR1BJTzBfT1IsICBpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfTEVEX0dSRUVOIHwgQ09ORklHX1NZU19MRURfUkVEKTsKIAkJYnJlYWs7CiAJfQogfQogCiBzdGF0aWMgaW50IGlzX21vbmFyY2godm9pZCkKIHsKLQlvdXQzMihHUElPMF9PUiwgIGluMzIoR1BJTzBfT1IpICYgfkNGR19HUElPX1JEWSk7CisJb3V0MzIoR1BJTzBfT1IsICBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX0dQSU9fUkRZKTsKIAl1ZGVsYXkoMTAwMCk7CiAKLQlpZiAoaW4zMihHUElPMF9JUikgJiBDRkdfTU9OQVJDSF9JTykKKwlpZiAoaW4zMihHUElPMF9JUikgJiBDT05GSUdfU1lTX01PTkFSQ0hfSU8pCiAJCXJldHVybiAwOwogCWVsc2UKIAkJcmV0dXJuIDE7CkBAIC02OCwxMSArNjgsMTEgQEAKIAkvKgogCSAqIENvbmZpZ3VyZSBFUkVBRFlfSU8gYXMgaW5wdXQKIAkgKi8KLQlvdXQzMihHUElPMF9UQ1IsIGluMzIoR1BJTzBfVENSKSAmIH5DRkdfRVJFQURZX0lPKTsKKwlvdXQzMihHUElPMF9UQ1IsIGluMzIoR1BJTzBfVENSKSAmIH5DT05GSUdfU1lTX0VSRUFEWV9JTyk7CiAJdWRlbGF5KDEwMDApOwogCiAJZm9yICg7OykgewotCQlpZiAoaW4zMihHUElPMF9JUikgJiBDRkdfRVJFQURZX0lPKQorCQlpZiAoaW4zMihHUElPMF9JUikgJiBDT05GSUdfU1lTX0VSRUFEWV9JTykKIAkJCXJldHVybjsKIAl9CiAKQEAgLTk1LDggKzk1LDggQEAKIAltdGRjcihjcGMwX2dwaW8sIDB4MDNGMDFGODApOwogCiAJb3V0MzIoR1BJTzBfT0RSLCAweDAwMDAwMDAwKTsJLyogbm8gb3BlbiBkcmFpbiBwaW5zICAgICAgKi8KLQlvdXQzMihHUElPMF9UQ1IsIENGR19HUElPX1JEWSB8IENGR19FUkVBRFlfSU8gfCBDRkdfTEVEX1JFRCB8IENGR19MRURfR1JFRU4pOwotCW91dDMyKEdQSU8wX09SLCAgQ0ZHX0dQSU9fUkRZKTsKKwlvdXQzMihHUElPMF9UQ1IsIENPTkZJR19TWVNfR1BJT19SRFkgfCBDT05GSUdfU1lTX0VSRUFEWV9JTyB8IENPTkZJR19TWVNfTEVEX1JFRCB8IENPTkZJR19TWVNfTEVEX0dSRUVOKTsKKwlvdXQzMihHUElPMF9PUiwgIENPTkZJR19TWVNfR1BJT19SRFkpOwogCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCSAqIFNldHVwIHRoZSBpbnRlcnJ1cHQgY29udHJvbGxlciBwb2xhcml0aWVzLCB0cmlnZ2VycywgZXRjLgpAQCAtMTUyLDcgKzE1Miw3IEBACiAJLyoKIAkgKiBDaGVjayBpZiBvbmx5IG9uZSBGTEFTSCBiYW5rIGlzIGF2YWlsYWJsZQogCSAqLwotCWlmIChnZC0+YmQtPmJpX2ZsYXNoc2l6ZSAhPSBDRkdfTUFYX0ZMQVNIX0JBTktTICogKDAgLSBDRkdfRkxBU0gwKSkgeworCWlmIChnZC0+YmQtPmJpX2ZsYXNoc2l6ZSAhPSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAqICgwIC0gQ09ORklHX1NZU19GTEFTSDApKSB7CiAJCW10ZWJjKHBiMWNyLCAwKTsJCQkvKiBkaXNhYmxlIGNzICovCiAJCW10ZWJjKHBiMWFwLCAwKTsKIAkJbXRlYmMocGIyY3IsIDApOwkJCS8qIGRpc2FibGUgY3MgKi8KQEAgLTIwMyw3ICsyMDMsNyBAQAogICoJbWF5IG5vdCBiZSBzdWZmaWNpZW50IGZvciBhIGdpdmVuIGJvYXJkLgogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogdm9pZCBwY2lfdGFyZ2V0X2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0yMTgsNyArMjE4LDcgQEAKIAkgKiBNYXAgYWxsIG9mIFNEUkFNIHRvIFBDSSBhZGRyZXNzIDB4MDAwMF8wMDAwLiBOb3RlIHRoYXQgdGhlIDQ0MCBzdHJhcHBpbmcKIAkgKiBvcHRpb25zIHRvIG5vdCBzdXBwb3J0IHNpemVzIHN1Y2ggYXMgMTI4LzI1NiBNQi4KIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlvdXQzMnIoUENJWDBfUElNMExBTCwgQ0ZHX1NEUkFNX0JBU0UpOworCW91dDMycihQQ0lYMF9QSU0wTEFMLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCW91dDMycihQQ0lYMF9QSU0wTEFILCAwKTsKIAlvdXQzMnIoUENJWDBfUElNMFNBLCB+KGdkLT5yYW1fc2l6ZSAtIDEpIHwgMSk7CiAKQEAgLTIyNywxMiArMjI3LDEyIEBACiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAkgKiBQcm9ncmFtIHRoZSBib2FyZCdzIHN1YnN5c3RlbSBpZC92ZW5kb3IgaWQKIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlvdXQxNnIoUENJWDBfU0JTWVNWSUQsIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKLQlvdXQxNnIoUENJWDBfU0JTWVNJRCwgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQpOworCW91dDE2cihQQ0lYMF9TQlNZU1ZJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKKwlvdXQxNnIoUENJWDBfU0JTWVNJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEKTsKIAogCW91dDE2cihQQ0lYMF9DTUQsIGluMTZyKFBDSVgwX0NNRCkgfCBQQ0lfQ09NTUFORF9NRU1PUlkpOwogfQotI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKSAqLworI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICBpc19wY2lfaG9zdApkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvcDNwNDQwL3AzcDQ0MC5oIGIvYm9hcmQvcHJvZHJpdmUvcDNwNDQwL3AzcDQ0MC5oCmluZGV4IGU0ZTg3ZDEuLjQ3ZTkwMTggMTAwNjQ0Ci0tLSBhL2JvYXJkL3Byb2RyaXZlL3AzcDQ0MC9wM3A0NDAuaAorKysgYi9ib2FyZC9wcm9kcml2ZS9wM3A0NDAvcDNwNDQwLmgKQEAgLTI0LDExICsyNCwxMSBAQAogI2lmbmRlZiBfX1AzUDQ0MF9IX18KICNkZWZpbmUgX19QM1A0NDBfSF9fCiAKLSNkZWZpbmUgQ0ZHX0dQSU9fUkRZCSgweDgwMDAwMDAwID4+IDExKQotI2RlZmluZSBDRkdfTU9OQVJDSF9JTwkoMHg4MDAwMDAwMCA+PiAxOCkKLSNkZWZpbmUgQ0ZHX0VSRUFEWV9JTwkoMHg4MDAwMDAwMCA+PiAyMCkKLSNkZWZpbmUgQ0ZHX0xFRF9HUkVFTgkoMHg4MDAwMDAwMCA+PiAyMSkKLSNkZWZpbmUgQ0ZHX0xFRF9SRUQJKDB4ODAwMDAwMDAgPj4gMjIpCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19SRFkJKDB4ODAwMDAwMDAgPj4gMTEpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OQVJDSF9JTwkoMHg4MDAwMDAwMCA+PiAxOCkKKyNkZWZpbmUgQ09ORklHX1NZU19FUkVBRFlfSU8JKDB4ODAwMDAwMDAgPj4gMjApCisjZGVmaW5lIENPTkZJR19TWVNfTEVEX0dSRUVOCSgweDgwMDAwMDAwID4+IDIxKQorI2RlZmluZSBDT05GSUdfU1lTX0xFRF9SRUQJKDB4ODAwMDAwMDAgPj4gMjIpCiAKICNkZWZpbmUgTEVEX09GRgkJMQogI2RlZmluZSBMRURfR1JFRU4JMgpkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvcGRuYjMvZmxhc2guYyBiL2JvYXJkL3Byb2RyaXZlL3BkbmIzL2ZsYXNoLmMKaW5kZXggNTczOGM1Yi4uMzUxYWVkMSAxMDA2NDQKLS0tIGEvYm9hcmQvcHJvZHJpdmUvcGRuYjMvZmxhc2guYworKysgYi9ib2FyZC9wcm9kcml2ZS9wZG5iMy9mbGFzaC5jCkBAIC01Miw3ICs1Miw3IEBACiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKQorCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspCiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCiAJc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopRkxBU0hfQkFTRTBfUFJFTElNLCAmZmxhc2hfaW5mb1swXSk7CkBAIC02NiwyMCArNjYsMjAgQEAKIAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLCBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAotCQkgICAgICAmZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOworCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICZmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOwogCiAJLyogRW52aXJvbm1lbnQgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAogCQkgICAgICBDT05GSUdfRU5WX0FERFIsCiAJCSAgICAgIENPTkZJR19FTlZfQUREUiArIENPTkZJR19FTlZfU0VDVF9TSVpFIC0gMSwKLQkJICAgICAgJmZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKKwkJICAgICAgJmZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CiAKIAkvKiBSZWR1bmRhbnQgZW52aXJvbm1lbnQgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAogCQkgICAgICBDT05GSUdfRU5WX0FERFJfUkVEVU5ELAogCQkgICAgICBDT05GSUdfRU5WX0FERFJfUkVEVU5EICsgQ09ORklHX0VOVl9TSVpFX1JFRFVORCAtIDEsCi0JCSAgICAgICZmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CisJCSAgICAgICZmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvcGRuYjMvbmFuZC5jIGIvYm9hcmQvcHJvZHJpdmUvcGRuYjMvbmFuZC5jCmluZGV4IDFjZTNjOGMuLjJlZmUwMjcgMTAwNjQ0Ci0tLSBhL2JvYXJkL3Byb2RyaXZlL3BkbmIzL25hbmQuYworKysgYi9ib2FyZC9wcm9kcml2ZS9wZG5iMy9uYW5kLmMKQEAgLTEzNiw3ICsxMzYsNyBAQAogCiBpbnQgYm9hcmRfbmFuZF9pbml0KHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQpCiB7Ci0JcGRuYjNfbmRmYyA9IChzdHJ1Y3QgcGRuYjNfbmRmY19yZWdzICopQ0ZHX05BTkRfQkFTRTsKKwlwZG5iM19uZGZjID0gKHN0cnVjdCBwZG5iM19uZGZjX3JlZ3MgKilDT05GSUdfU1lTX05BTkRfQkFTRTsKIAogCW5hbmQtPmVjYy5tb2RlID0gTkFORF9FQ0NfU09GVDsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvcGRuYjMvcGRuYjMuYyBiL2JvYXJkL3Byb2RyaXZlL3BkbmIzL3BkbmIzLmMKaW5kZXggMzQ0NWEzYS4uMzc3M2JhMSAxMDA2NDQKLS0tIGEvYm9hcmQvcHJvZHJpdmUvcGRuYjMvcGRuYjMuYworKysgYi9ib2FyZC9wcm9kcml2ZS9wZG5iMy9wZG5iMy5jCkBAIC0zNCw4ICszNCw4IEBACiAKIC8qIHByZWRlZmluZSB0aGVzZSBoZXJlIGZvciBGUEdBIHByb2dyYW1taW5nIChiZWZvcmUgaW5jbHVkaW5nIGZwZ2EuYykgKi8KICNkZWZpbmUgU0VUX0ZQR0EoZGF0YSkJKklYUDQyNV9HUElPX0dQT1VUUiA9IChkYXRhKQotI2RlZmluZSBGUEdBX0RPTkVfU1RBVEUgKCpJWFA0MjVfR1BJT19HUElOUiAmIENGR19GUEdBX0RPTkUpCi0jZGVmaW5lIEZQR0FfSU5JVF9TVEFURSAoKklYUDQyNV9HUElPX0dQSU5SICYgQ0ZHX0ZQR0FfSU5JVCkKKyNkZWZpbmUgRlBHQV9ET05FX1NUQVRFICgqSVhQNDI1X0dQSU9fR1BJTlIgJiBDT05GSUdfU1lTX0ZQR0FfRE9ORSkKKyNkZWZpbmUgRlBHQV9JTklUX1NUQVRFICgqSVhQNDI1X0dQSU9fR1BJTlIgJiBDT05GSUdfU1lTX0ZQR0FfSU5JVCkKICNkZWZpbmUgT0xEX1ZBTAkJb2xkX3ZhbAogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBvbGRfdmFsID0gMDsKQEAgLTU2LDQ2ICs1Niw0NiBAQAogCS8qIGFkcmVzcyBvZiBib290IHBhcmFtZXRlcnMgKi8KIAlnZC0+YmQtPmJpX2Jvb3RfcGFyYW1zID0gMHgwMDAwMDEwMDsKIAotCUdQSU9fT1VUUFVUX1NFVChDRkdfR1BJT19GUEdBX1JFU0VUKTsKLQlHUElPX09VVFBVVF9FTkFCTEUoQ0ZHX0dQSU9fRlBHQV9SRVNFVCk7CisJR1BJT19PVVRQVVRfU0VUKENPTkZJR19TWVNfR1BJT19GUEdBX1JFU0VUKTsKKwlHUElPX09VVFBVVF9FTkFCTEUoQ09ORklHX1NZU19HUElPX0ZQR0FfUkVTRVQpOwogCi0JR1BJT19PVVRQVVRfU0VUKENGR19HUElPX1NZU19SVU5OSU5HKTsKLQlHUElPX09VVFBVVF9FTkFCTEUoQ0ZHX0dQSU9fU1lTX1JVTk5JTkcpOworCUdQSU9fT1VUUFVUX1NFVChDT05GSUdfU1lTX0dQSU9fU1lTX1JVTk5JTkcpOworCUdQSU9fT1VUUFVUX0VOQUJMRShDT05GSUdfU1lTX0dQSU9fU1lTX1JVTk5JTkcpOwogCiAJLyoKIAkgKiBTZXR1cCBHUElPJ3MgZm9yIEZQR0EgcHJvZ3JhbW1pbmcKIAkgKi8KLQlHUElPX09VVFBVVF9DTEVBUihDRkdfR1BJT19QUkcpOwotCUdQSU9fT1VUUFVUX0NMRUFSKENGR19HUElPX0NMSyk7Ci0JR1BJT19PVVRQVVRfQ0xFQVIoQ0ZHX0dQSU9fREFUQSk7Ci0JR1BJT19PVVRQVVRfRU5BQkxFKENGR19HUElPX1BSRyk7Ci0JR1BJT19PVVRQVVRfRU5BQkxFKENGR19HUElPX0NMSyk7Ci0JR1BJT19PVVRQVVRfRU5BQkxFKENGR19HUElPX0RBVEEpOwotCUdQSU9fT1VUUFVUX0RJU0FCTEUoQ0ZHX0dQSU9fSU5JVCk7Ci0JR1BJT19PVVRQVVRfRElTQUJMRShDRkdfR1BJT19ET05FKTsKKwlHUElPX09VVFBVVF9DTEVBUihDT05GSUdfU1lTX0dQSU9fUFJHKTsKKwlHUElPX09VVFBVVF9DTEVBUihDT05GSUdfU1lTX0dQSU9fQ0xLKTsKKwlHUElPX09VVFBVVF9DTEVBUihDT05GSUdfU1lTX0dQSU9fREFUQSk7CisJR1BJT19PVVRQVVRfRU5BQkxFKENPTkZJR19TWVNfR1BJT19QUkcpOworCUdQSU9fT1VUUFVUX0VOQUJMRShDT05GSUdfU1lTX0dQSU9fQ0xLKTsKKwlHUElPX09VVFBVVF9FTkFCTEUoQ09ORklHX1NZU19HUElPX0RBVEEpOworCUdQSU9fT1VUUFVUX0RJU0FCTEUoQ09ORklHX1NZU19HUElPX0lOSVQpOworCUdQSU9fT1VUUFVUX0RJU0FCTEUoQ09ORklHX1NZU19HUElPX0RPTkUpOwogCiAJLyoKIAkgKiBTZXR1cCBHUElPJ3MgZm9yIGludGVycnVwdHMKIAkgKi8KLQlHUElPX09VVFBVVF9ESVNBQkxFKENGR19HUElPX1BDSV9JTlRBKTsKLQlHUElPX0lOVF9BQ1RfTE9XX1NFVChDRkdfR1BJT19QQ0lfSU5UQSk7Ci0JR1BJT19PVVRQVVRfRElTQUJMRShDRkdfR1BJT19QQ0lfSU5UQik7Ci0JR1BJT19JTlRfQUNUX0xPV19TRVQoQ0ZHX0dQSU9fUENJX0lOVEIpOwotCUdQSU9fT1VUUFVUX0RJU0FCTEUoQ0ZHX0dQSU9fUkVTVE9SRV9JTlQpOwotCUdQSU9fSU5UX0FDVF9MT1dfU0VUKENGR19HUElPX1JFU1RPUkVfSU5UKTsKLQlHUElPX09VVFBVVF9ESVNBQkxFKENGR19HUElPX1JFU1RBUlRfSU5UKTsKLQlHUElPX0lOVF9BQ1RfTE9XX1NFVChDRkdfR1BJT19SRVNUQVJUX0lOVCk7CisJR1BJT19PVVRQVVRfRElTQUJMRShDT05GSUdfU1lTX0dQSU9fUENJX0lOVEEpOworCUdQSU9fSU5UX0FDVF9MT1dfU0VUKENPTkZJR19TWVNfR1BJT19QQ0lfSU5UQSk7CisJR1BJT19PVVRQVVRfRElTQUJMRShDT05GSUdfU1lTX0dQSU9fUENJX0lOVEIpOworCUdQSU9fSU5UX0FDVF9MT1dfU0VUKENPTkZJR19TWVNfR1BJT19QQ0lfSU5UQik7CisJR1BJT19PVVRQVVRfRElTQUJMRShDT05GSUdfU1lTX0dQSU9fUkVTVE9SRV9JTlQpOworCUdQSU9fSU5UX0FDVF9MT1dfU0VUKENPTkZJR19TWVNfR1BJT19SRVNUT1JFX0lOVCk7CisJR1BJT19PVVRQVVRfRElTQUJMRShDT05GSUdfU1lTX0dQSU9fUkVTVEFSVF9JTlQpOworCUdQSU9fSU5UX0FDVF9MT1dfU0VUKENPTkZJR19TWVNfR1BJT19SRVNUQVJUX0lOVCk7CiAKIAkvKgogCSAqIFNldHVwIEdQSU8ncyBmb3IgMzNNSHogY2xvY2sgb3V0cHV0CiAJICovCiAJKklYUDQyNV9HUElPX0dQQ0xLUiA9IDB4MDFGRjAwMDA7Ci0JR1BJT19PVVRQVVRfRU5BQkxFKENGR19HUElPX0NMS18zM00pOworCUdQSU9fT1VUUFVUX0VOQUJMRShDT05GSUdfU1lTX0dQSU9fQ0xLXzMzTSk7CiAKIAkvKgogCSAqIFNldHVwIG90aGVyIGNoaXAgc2VsZWN0J3MKIAkgKi8KLQkqSVhQNDI1X0VYUF9DUzEgPSBDRkdfRVhQX0NTMTsKKwkqSVhQNDI1X0VYUF9DUzEgPSBDT05GSUdfU1lTX0VYUF9DUzE7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTEzMiwxNCArMTMyLDE0IEBACiAJaW50IHN0YXR1czsKIAlpbnQgaW5kZXg7CiAJaW50IGk7Ci0JdWxvbmcgbGVuID0gQ0ZHX01BTExPQ19MRU47CisJdWxvbmcgbGVuID0gQ09ORklHX1NZU19NQUxMT0NfTEVOOwogCiAJLyoKIAkgKiBTZXR1cCBHUElPJ3MgZm9yIEZQR0EgcHJvZ3JhbW1pbmcKIAkgKi8KLQlHUElPX09VVFBVVF9DTEVBUihDRkdfR1BJT19QUkcpOwotCUdQSU9fT1VUUFVUX0NMRUFSKENGR19HUElPX0NMSyk7Ci0JR1BJT19PVVRQVVRfQ0xFQVIoQ0ZHX0dQSU9fREFUQSk7CisJR1BJT19PVVRQVVRfQ0xFQVIoQ09ORklHX1NZU19HUElPX1BSRyk7CisJR1BJT19PVVRQVVRfQ0xFQVIoQ09ORklHX1NZU19HUElPX0NMSyk7CisJR1BJT19PVVRQVVRfQ0xFQVIoQ09ORklHX1NZU19HUElPX0RBVEEpOwogCiAJLyoKIAkgKiBTYXZlIHZhbHVlIHNvIG5vIHJlYWRiYWNrIGlzIHJlcXVpcmVkIHVwb24gcHJvZ3JhbW1pbmcKQEAgLTE0OSw4ICsxNDksOCBAQAogCS8qCiAJICogRmlyc3QgdHJ5IHRvIGRlY29tcHJlc3MgZnBnYSBpbWFnZSAoZ3ppcCBjb21wcmVzc2VkPykKIAkgKi8KLQlkc3QgPSBtYWxsb2MoQ0ZHX0ZQR0FfTUFYX1NJWkUpOwotCWlmIChndW56aXAoZHN0LCBDRkdfRlBHQV9NQVhfU0laRSwgKHVjaGFyICopZnBnYWRhdGEsICZsZW4pICE9IDApIHsKKwlkc3QgPSBtYWxsb2MoQ09ORklHX1NZU19GUEdBX01BWF9TSVpFKTsKKwlpZiAoZ3VuemlwKGRzdCwgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFLCAodWNoYXIgKilmcGdhZGF0YSwgJmxlbikgIT0gMCkgewogCQlwcmludGYoIkVycm9yOiBJbWFnZSBoYXMgdG8gYmUgZ3ppcHAnZWQhXG4iKTsKIAkJcmV0dXJuIC0xOwogCX0KQEAgLTIwNCw5ICsyMDQsOSBAQAogCS8qCiAJICogUmVzZXQgRlBHQQogCSAqLwotCUdQSU9fT1VUUFVUX0NMRUFSKENGR19HUElPX0ZQR0FfUkVTRVQpOworCUdQSU9fT1VUUFVUX0NMRUFSKENPTkZJR19TWVNfR1BJT19GUEdBX1JFU0VUKTsKIAl1ZGVsYXkoMTApOwotCUdQSU9fT1VUUFVUX1NFVChDRkdfR1BJT19GUEdBX1JFU0VUKTsKKwlHUElPX09VVFBVVF9TRVQoQ09ORklHX1NZU19HUElPX0ZQR0FfUkVTRVQpOwogCiAJcmV0dXJuICgwKTsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL3BzeWVudC9jb21tb24vQU1ETFYwNjVELmMgYi9ib2FyZC9wc3llbnQvY29tbW9uL0FNRExWMDY1RC5jCmluZGV4IDhhN2IxNGUuLjBmY2YzNTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BzeWVudC9jb21tb24vQU1ETFYwNjVELmMKKysrIGIvYm9hcmQvcHN5ZW50L2NvbW1vbi9BTURMVjA2NUQuYwpAQCAtMzAsNyArMzAsNyBAQAogI2VuZGlmCiAKICNkZWZpbmUgU0VDVFNaCQkoNjQgKiAxMDI0KQotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCkBAIC0zOSwxOCArMzksMTggQEAKIAl1bnNpZ25lZCBsb25nIGFkZHI7CiAJZmxhc2hfaW5mb190ICpmbGkgPSAmZmxhc2hfaW5mb1swXTsKIAotCWZsaS0+c2l6ZSA9IENGR19GTEFTSF9TSVpFOwotCWZsaS0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCWZsaS0+c2l6ZSA9IENPTkZJR19TWVNfRkxBU0hfU0laRTsKKwlmbGktPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJZmxpLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9BTUQgKyBGTEFTSF9BTURMVjA2NUQ7CiAKLQlhZGRyID0gQ0ZHX0ZMQVNIX0JBU0U7CisJYWRkciA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAlmb3IgKGkgPSAwOyBpIDwgZmxpLT5zZWN0b3JfY291bnQ7ICsraSkgewogCQlmbGktPnN0YXJ0W2ldID0gYWRkcjsKIAkJYWRkciArPSBTRUNUU1o7CiAJCWZsaS0+cHJvdGVjdFtpXSA9IDE7CiAJfQogCi0JcmV0dXJuIChDRkdfRkxBU0hfU0laRSk7CisJcmV0dXJuIChDT05GSUdfU1lTX0ZMQVNIX1NJWkUpOwogfQogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiB2b2lkIGZsYXNoX3ByaW50X2luZm8gKGZsYXNoX2luZm9fdCAqIGluZm8pCkBAIC0xMzUsNyArMTM1LDcgQEAKIAkJCXdoaWxlICggcmVhZGIgKGFkZHIyKSAhPSAweGZmKSB7CiAJCQkJdWRlbGF5ICgxMDAwICogMTAwMCk7CiAJCQkJcHV0YyAoJy4nKTsKLQkJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJ0aW1lb3V0XG4iKTsKIAkJCQkJcmV0dXJuIDE7CiAJCQkJfQpAQCAtMTc3LDcgKzE3Nyw3IEBACiAJCS8qIFZlcmlmeSB3cml0ZSAqLwogCQlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJCXdoaWxlIChyZWFkYiAoZHN0KSAhPSBiKSB7Ci0JCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJcmV0dXJuIDE7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3BzeWVudC9wazFjMjAvbGVkLmMgYi9ib2FyZC9wc3llbnQvcGsxYzIwL2xlZC5jCmluZGV4IGM3NWZlOGMuLmU1ZTc3MDUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BzeWVudC9wazFjMjAvbGVkLmMKKysrIGIvYm9hcmQvcHN5ZW50L3BrMWMyMC9sZWQuYwpAQCAtMzMsNyArMzMsNyBAQAogCiB2b2lkIF9fbGVkX2luaXQgKGxlZF9pZF90IG1hc2ssIGludCBzdGF0ZSkKIHsKLQluaW9zX3Bpb190ICpwaW8gPSAobmlvc19waW9fdCAqKUNGR19MRURQSU9fQUREUjsKKwluaW9zX3Bpb190ICpwaW8gPSAobmlvc19waW9fdCAqKUNPTkZJR19TWVNfTEVEUElPX0FERFI7CiAKIAlpZiAoc3RhdGUgPT0gU1RBVFVTX0xFRF9PTikKIAkJdmFsICY9IH5tYXNrOwpAQCAtNDQsNyArNDQsNyBAQAogCiB2b2lkIF9fbGVkX3NldCAobGVkX2lkX3QgbWFzaywgaW50IHN0YXRlKQogewotCW5pb3NfcGlvX3QgKnBpbyA9IChuaW9zX3Bpb190ICopQ0ZHX0xFRFBJT19BRERSOworCW5pb3NfcGlvX3QgKnBpbyA9IChuaW9zX3Bpb190ICopQ09ORklHX1NZU19MRURQSU9fQUREUjsKIAogCWlmIChzdGF0ZSA9PSBTVEFUVVNfTEVEX09OKQogCQl2YWwgJj0gfm1hc2s7CkBAIC01NSw3ICs1NSw3IEBACiAKIHZvaWQgX19sZWRfdG9nZ2xlIChsZWRfaWRfdCBtYXNrKQogewotCW5pb3NfcGlvX3QgKnBpbyA9IChuaW9zX3Bpb190ICopQ0ZHX0xFRFBJT19BRERSOworCW5pb3NfcGlvX3QgKnBpbyA9IChuaW9zX3Bpb190ICopQ09ORklHX1NZU19MRURQSU9fQUREUjsKIAogCXZhbCBePSBtYXNrOwogCXdyaXRlbCAoJnBpby0+ZGF0YSwgdmFsKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3B1cnBsZS9mbGFzaC5jIGIvYm9hcmQvcHVycGxlL2ZsYXNoLmMKaW5kZXggNjQwYmMyOS4uMzdjN2JlYyAxMDA2NDQKLS0tIGEvYm9hcmQvcHVycGxlL2ZsYXNoLmMKKysrIGIvYm9hcmQvcHVycGxlL2ZsYXNoLmMKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxhc20vaW5jYS1pcC5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogdHlwZWRlZiB1bnNpZ25lZCBsb25nIEZMQVNIX1BPUlRfV0lEVEg7CiB0eXBlZGVmIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgRkxBU0hfUE9SVF9XSURUSFY7CkBAIC0yMDcsNyArMjA3LDcgQEAKIAlsb2FkX2NtZChJTl9SQU1fQ01EX1JFQUQpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IFBIWVNfRkxBU0hfMTsKIAkJdWxvbmcgKiBidXNjb24gPSAodWxvbmcgKikgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjA7CiAKQEAgLTIyOSwxMiArMjI5LDEyIEBACiAJCXNpemUgKz0gZmxhc2hfaW5mb1tpXS5zaXplOwogCX0KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAotCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDRkdfTU9OSVRPUl9CQVNFKSk7CisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDT05GSUdfU1lTX01PTklUT1JfQkFTRSkpOwogI2VuZGlmCiAKICNpZmRlZglDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC0yODIsMTMgKzI4MiwxMyBAQAogCWludCBpOwogCWZsYXNoX2luZm9fdCAqIGluZm87CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSArKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSArKykgewogCQlpbmZvID0gJiBmbGFzaF9pbmZvW2ldOwogCQlpZiAoaW5mby0+c3RhcnRbMF0gPD0gYmFzZSAmJiBiYXNlIDwgaW5mby0+c3RhcnRbMF0gKyBpbmZvLT5zaXplKQogCQkJYnJlYWs7CiAJfQogCi0JcmV0dXJuIGkgPT0gQ0ZHX01BWF9GTEFTSF9CQU5LUyA/IDAgOiBpbmZvOworCXJldHVybiBpID09IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm87CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTUwNywxMCArNTA3LDEwIEBACiAKIAkJc3RhcnQgPSBnZXRfdGltZXIoMCk7CiAKLQkJd2hpbGUgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA8PSBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQl3aGlsZSAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpIDw9IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCiAJCQkvKiBzaG93IHRoYXQgd2UncmUgd2FpdGluZyAqLwotCQkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ0ZHX0haKSB7LyogZXZlcnkgc2Vjb25kICovCisJCQlpZiAoKGdldF90aW1lcihsYXN0KSkgPiBDT05GSUdfU1lTX0haKSB7LyogZXZlcnkgc2Vjb25kICovCiAJCQkJcHV0YyAoJy4nKTsKIAkJCQlsYXN0ID0gZ2V0X3RpbWVyKDApOwogCQkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvcHVycGxlL3B1cnBsZS5jIGIvYm9hcmQvcHVycGxlL3B1cnBsZS5jCmluZGV4IDkwMGU2NmYuLjU0YmVmNjUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3B1cnBsZS9wdXJwbGUuYworKysgYi9ib2FyZC9wdXJwbGUvcHVycGxlLmMKQEAgLTEyOSwxNCArMTI5LDE0IEBACiB7CiAJLyogVGhlIG9ubHkgc3VwcG9ydGVkIG51bWJlciBvZiBTRFJBTSBiYW5rcyBpcyA0LgogCSAqLwotI2RlZmluZSBDRkdfTkIJNAorI2RlZmluZSBDT05GSUdfU1lTX05CCTQKIAogCXVsb25nCWNmZ3BiMAk9ICpJTkNBX0lQX1NEUkFNX01DX0NGR1BCMDsKIAl1bG9uZwljZmdkdwk9ICpJTkNBX0lQX1NEUkFNX01DX0NGR0RXOwogCWludAljb2xzCT0gY2ZncGIwICYgMHhGOwogCWludAlyb3dzCT0gKGNmZ3BiMCAmIDB4RjApID4+IDQ7CiAJaW50CWR3CT0gY2ZnZHcgJiAweEY7Ci0JdWxvbmcJc2l6ZQk9ICgxIDw8IChyb3dzICsgY29scykpICogKDEgPDwgKGR3IC0gMSkpICogQ0ZHX05COworCXVsb25nCXNpemUJPSAoMSA8PCAocm93cyArIGNvbHMpKSAqICgxIDw8IChkdyAtIDEpKSAqIENPTkZJR19TWVNfTkI7CiAJdm9pZCAoKiAgc2RyYW1faW5pdCkgKHVsb25nKTsKIAogCXNkcmFtX2luaXQgPSAodm9pZCAoKikodWxvbmcpKSBDS1NFRzBBRERSKCZzZHJhbV90aW1pbmdfaW5pdCk7CkBAIC0yNTMsMjYgKzI1MywyNiBAQAogCiAJLyogY29weSB1LWJvb3QgY29kZQogCSAqLwotCWNvcHlMb25ncygodWxvbmcgKilDRkdfTU9OSVRPUl9CQVNFLAorCWNvcHlMb25ncygodWxvbmcgKilDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKIAkJICAodWxvbmcgKilkZXN0X2FkZHIsCi0JCSAgKCh1bG9uZykmdWJvb3RfZW5kX2RhdGEgLSBDRkdfTU9OSVRPUl9CQVNFICsgMykgLyA0KTsKKwkJICAoKHVsb25nKSZ1Ym9vdF9lbmRfZGF0YSAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMykgLyA0KTsKIAogCiAJLyogZmx1c2ggY2FjaGVzCiAJICovCiAKIAlzdGFydCA9IENLU0VHMDsKLQllbmQgPSBzdGFydCArIENGR19EQ0FDSEVfU0laRTsKKwllbmQgPSBzdGFydCArIENPTkZJR19TWVNfRENBQ0hFX1NJWkU7CiAJd2hpbGUoc3RhcnQgPCBlbmQpIHsKIAkJY2FjaGVfdW5yb2xsKHN0YXJ0LEluZGV4X1dyaXRlYmFja19JbnZfRCk7Ci0JCXN0YXJ0ICs9IENGR19DQUNIRUxJTkVfU0laRTsKKwkJc3RhcnQgKz0gQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRTsKIAl9CiAKIAlzdGFydCA9IENLU0VHMDsKLQllbmQgPSBzdGFydCArIENGR19JQ0FDSEVfU0laRTsKKwllbmQgPSBzdGFydCArIENPTkZJR19TWVNfSUNBQ0hFX1NJWkU7CiAJd2hpbGUoc3RhcnQgPCBlbmQpIHsKIAkJY2FjaGVfdW5yb2xsKHN0YXJ0LEluZGV4X0ludmFsaWRhdGVfSSk7Ci0JCXN0YXJ0ICs9IENGR19DQUNIRUxJTkVfU0laRTsKKwkJc3RhcnQgKz0gQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL3B1cnBsZS9zY29uc29sZS5jIGIvYm9hcmQvcHVycGxlL3Njb25zb2xlLmMKaW5kZXggZjUyZDUwZC4uY2Q5ZDg3MSAxMDA2NDQKLS0tIGEvYm9hcmQvcHVycGxlL3Njb25zb2xlLmMKKysrIGIvYm9hcmQvcHVycGxlL3Njb25zb2xlLmMKQEAgLTM4LDcgKzM4LDcgQEAKIAogCXNiLT5wb3MgID0gMDsKIAlzYi0+c2l6ZSA9IDA7Ci0Jc2ItPm1heF9zaXplID0gQ0ZHX1NDT05TT0xFX1NJWkUgLSBzaXplb2YgKHNjb25zb2xlX2J1ZmZlcl90KTsKKwlzYi0+bWF4X3NpemUgPSBDT05GSUdfU1lTX1NDT05TT0xFX1NJWkUgLSBzaXplb2YgKHNjb25zb2xlX2J1ZmZlcl90KTsKIAogCXJldHVybiAoMCk7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9wdXJwbGUvc2NvbnNvbGUuaCBiL2JvYXJkL3B1cnBsZS9zY29uc29sZS5oCmluZGV4IGUxMzBhZDQuLmJhZWQ1ZmIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3B1cnBsZS9zY29uc29sZS5oCisrKyBiL2JvYXJkL3B1cnBsZS9zY29uc29sZS5oCkBAIC0zMyw3ICszMyw3IEBACiAJY2hhciBkYXRhWzFdOwogfSBzY29uc29sZV9idWZmZXJfdDsKIAotI2RlZmluZSBTQ09OU09MRV9CVUZGRVIJCSgoc2NvbnNvbGVfYnVmZmVyX3QgKikgQ0ZHX1NDT05TT0xFX0FERFIpCisjZGVmaW5lIFNDT05TT0xFX0JVRkZFUgkJKChzY29uc29sZV9idWZmZXJfdCAqKSBDT05GSUdfU1lTX1NDT05TT0xFX0FERFIpCiAKIGV4dGVybiB2b2lkCSgqIHNjb25zb2xlX3B1dGMpCShjaGFyKTsKIGV4dGVybiB2b2lkCSgqIHNjb25zb2xlX3B1dHMpCShjb25zdCBjaGFyICopOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcHhhMjU1X2lkcC9sb3dsZXZlbF9pbml0LlMgYi9ib2FyZC9weGEyNTVfaWRwL2xvd2xldmVsX2luaXQuUwppbmRleCA4MGI1MTgyLi5hNTA3NjBmIDEwMDY0NAotLS0gYS9ib2FyZC9weGEyNTVfaWRwL2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC9weGEyNTVfaWRwL2xvd2xldmVsX2luaXQuUwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPHZlcnNpb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogCi1EUkFNX1NJWkU6ICAubG9uZyAgIENGR19EUkFNX1NJWkUKK0RSQU1fU0laRTogIC5sb25nICAgQ09ORklHX1NZU19EUkFNX1NJWkUKIAogLyogd2FpdCBmb3IgY29wcm9jZXNzb3Igd3JpdGUgY29tcGxldGUgKi8KIAkubWFjcm8gQ1BXQUlUIHJlZwpAQCAtNTMsNjcgKzUzLDY3IEBACiAKIAkvKiBTZXQgdXAgR1BJTyBwaW5zIGZpcnN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAJbGRyCQlyMCwJPUdQU1IwCi0JbGRyCQlyMSwJPUNGR19HUFNSMF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFNSMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUFNSMQotCWxkcgkJcjEsCT1DRkdfR1BTUjFfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BTUjFfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BTUjIKLQlsZHIJCXIxLAk9Q0ZHX0dQU1IyX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQU1IyX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQQ1IwCi0JbGRyCQlyMSwJPUNGR19HUENSMF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUENSMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUENSMQotCWxkcgkJcjEsCT1DRkdfR1BDUjFfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BDUjFfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BDUjIKLQlsZHIJCXIxLAk9Q0ZHX0dQQ1IyX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQQ1IyX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQRFIwCi0JbGRyCQlyMSwJPUNGR19HUERSMF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUERSMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUERSMQotCWxkcgkJcjEsCT1DRkdfR1BEUjFfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BEUjFfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BEUjIKLQlsZHIJCXIxLAk9Q0ZHX0dQRFIyX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQRFIyX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIwX0wKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIwX0xfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjBfTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMF9VCi0JbGRyCQlyMSwJPUNGR19HQUZSMF9VX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIwX1VfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjFfTAotCWxkcgkJcjEsCT1DRkdfR0FGUjFfTF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMV9MX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIxX1UKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIxX1VfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjFfVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMl9MCi0JbGRyCQlyMSwJPUNGR19HQUZSMl9MX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIyX0xfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjJfVQotCWxkcgkJcjEsCT1DRkdfR0FGUjJfVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMl9VX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCXIwLAk9UFNTUgkJLyogZW5hYmxlIEdQSU8gcGlucyAqLwotCWxkcgkJcjEsCT1DRkdfUFNTUl9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19QU1NSX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAjaWZkZWYgREVCVUdfQkxJTktfRU5BQkxFCkBAIC0xNTYsMTcgKzE1NiwxNyBAQAogCS8qIE1TQyByZWdpc3RlcnM6IHRpbWluZywgYnVzIHdpZHRoLCBtZW0gdHlwZSAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogCS8qIE1TQzA6IG5DUygwLDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgID1DRkdfTVNDMF9WQUwKKwlsZHIgICAgIHIyLCAgID1DT05GSUdfU1lTX01TQzBfVkFMCiAJc3RyICAgICByMiwgICBbcjEsICNNU0MwX09GRlNFVF0KIAlsZHIgICAgIHIyLCAgIFtyMSwgI01TQzBfT0ZGU0VUXQkvKiByZWFkIGJhY2sgdG8gZW5zdXJlICAgICAgKi8KIAkJCQkJCS8qIHRoYXQgZGF0YSBsYXRjaGVzICAgICAgICAqLwogCS8qIE1TQzE6IG5DUygyLDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NU0MxX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NU0MxX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAlsZHIgICAgIHIyLCAgW3IxLCAjTVNDMV9PRkZTRVRdCiAKIAkvKiBNU0MyOiBuQ1MoNCw1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTVNDMl9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTVNDMl9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAJbGRyICAgICByMiwgIFtyMSwgI01TQzJfT0ZGU0VUXQogCkBAIC0xNzUsMzcgKzE3NSwzNyBAQAogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogCS8qIE1FQ1I6IE1lbW9yeSBFeHBhbnNpb24gQ2FyZCBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NRUNSX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NRUNSX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNRUNSX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01FQ1JfT0ZGU0VUXQogCiAJLyogTUNNRU0wOiBDYXJkIEludGVyZmFjZSBzbG90IDAgdGltaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DTUVNMF9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNNRU0wX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNQ01FTTBfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNNRU0wX09GRlNFVF0KIAogCS8qIE1DTUVNMTogQ2FyZCBJbnRlcmZhY2Ugc2xvdCAxIHRpbWluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ01FTTFfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01DTUVNMV9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNNRU0xX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DTUVNMV9PRkZTRVRdCiAKIAkvKiBNQ0FUVDA6IENhcmQgSW50ZXJmYWNlIEF0dHJpYnV0ZSBTcGFjZSBUaW1pbmcsIHNsb3QgMCAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNBVFQwX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0FUVDBfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DQVRUMF9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ0FUVDBfT0ZGU0VUXQogCiAJLyogTUNBVFQxOiBDYXJkIEludGVyZmFjZSBBdHRyaWJ1dGUgU3BhY2UgVGltaW5nLCBzbG90IDEgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DQVRUMV9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNBVFQxX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNQ0FUVDFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNBVFQxX09GRlNFVF0KIAogCS8qIE1DSU8wOiBDYXJkIEludGVyZmFjZSBJL08gU3BhY2UgVGltaW5nLCBzbG90IDAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ0lPMF9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNJTzBfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DSU8wX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DSU8wX09GRlNFVF0KIAogCS8qIE1DSU8xOiBDYXJkIEludGVyZmFjZSBJL08gU3BhY2UgVGltaW5nLCBzbG90IDEgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ0lPMV9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNJTzFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DSU8xX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DSU8xX09GRlNFVF0KIApAQCAtMjI1LDcgKzIyNSw3IEBACiAJLyogQmVmb3JlIGFjY2Vzc2luZyBNRFJFRlIgd2UgbmVlZCBhIHZhbGlkIERSSSBmaWVsZCwgc28gd2Ugc2V0ICAgICAqLwogCS8qIHRoaXMgdG8gcG93ZXIgb24gZGVmYXVsdHMgKyBEUkkgZmllbGQuICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAotCWxkciAgICAgcjMsICAgICA9Q0ZHX01EUkVGUl9WQUwKKwlsZHIgICAgIHIzLCAgICAgPUNPTkZJR19TWVNfTURSRUZSX1ZBTAogCWxkciAgICAgcjIsICAgICA9MHhGRkYKIAlhbmQgICAgIHIzLCAgICAgcjMsICByMgogCWxkcglyNCwJPTB4MDNjYTQwMDAKQEAgLTI1Myw3ICsyNTMsNyBAQAogCiAJLyogc2V0IE1EUkVGUiBhY2NvcmRpbmcgdG8gdXNlciBkZWZpbmUgd2l0aCBleGNlcHRpb24gb2YgYSBmZXcgYml0cyAqLwogCi0JbGRyICAgICByNCwgICAgID1DRkdfTURSRUZSX1ZBTAorCWxkciAgICAgcjQsICAgICA9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAJb3JyCXI0LAlyNCwJIyhNRFJFRlJfU0xGUlNIKQogCWJpYwlyNCwJcjQsCSMoTURSRUZSX0UxUElOfE1EUkVGUl9FMFBJTikKIAlzdHIgICAgIHI0LCAgICAgW3IxLCAjTURSRUZSX09GRlNFVF0gICAgLyogd3JpdGUgYmFjayBNRFJFRlIgICAgICAgICovCkBAIC0yNjcsNyArMjY3LDcgQEAKIAogCS8qIFN0ZXAgNGM6IGFzc2VydCBNRFJFRlI6RTFQSU4gYW5kIEUwUElPIGFzIGRlc2lyZWQgICAgICAgICAgICAgICAgKi8KIAotCWxkciAgICAgcjQsICAgICA9Q0ZHX01EUkVGUl9WQUwKKwlsZHIgICAgIHI0LCAgICAgPUNPTkZJR19TWVNfTURSRUZSX1ZBTAogCXN0ciAgICAgcjQsICAgICBbcjEsICNNRFJFRlJfT0ZGU0VUXSAgICAvKiB3cml0ZSBiYWNrIE1EUkVGUiAgICAgICAgKi8KIAlsZHIgICAgIHI0LCAgICAgW3IxLCAjTURSRUZSX09GRlNFVF0KIApAQCAtMjc1LDcgKzI3NSw3IEBACiAJLyogU3RlcCA0ZDogd3JpdGUgTURDTkZHIHdpdGggTURDTkZHOkRFeCBkZWFzc2VydGVkIChzZXQgdG8gMCksIHRvICAqLwogCS8qICAgICAgICAgIGNvbmZpZ3VyZSBidXQgbm90IGVuYWJsZSBlYWNoIFNEUkFNIHBhcnRpdGlvbiBwYWlyLiAgICAgKi8KIAotCWxkcglyNCwJPUNGR19NRENORkdfVkFMCisJbGRyCXI0LAk9Q09ORklHX1NZU19NRENORkdfVkFMCiAJYmljCXI0LAlyNCwJIyhNRENORkdfREUwfE1EQ05GR19ERTEpCiAKIAlzdHIgICAgIHI0LCAgICAgW3IxLCAjTURDTkZHX09GRlNFVF0JLyogd3JpdGUgYmFjayBNRENORkcgICAgICAgICovCkBAIC0zMDAsNyArMzAwLDcgQEAKIAkvKiAgICAgICAgICBkb2N1bWVudGVkIGluIFNEUkFNIGRhdGEgc2hlZXRzLiBUaGUgYWRkcmVzcyhlcykgdXNlZCAgICovCiAJLyogICAgICAgICAgZm9yIHRoaXMgcHVycG9zZSBtdXN0IG5vdCBiZSBjYWNoZWFibGUuICAgICAgICAgICAgICAgICAqLwogCi0JbGRyCXIzLAk9Q0ZHX0RSQU1fQkFTRQorCWxkcglyMywJPUNPTkZJR19TWVNfRFJBTV9CQVNFCiAJc3RyCXIyLAlbcjNdCiAJc3RyCXIyLAlbcjNdCiAJc3RyCXIyLAlbcjNdCkBAIC0zMTksNyArMzE5LDcgQEAKIAogCS8qIFN0ZXAgNGg6IFdyaXRlIE1ETVJTLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAotCWxkciAgICAgcjIsICA9Q0ZHX01ETVJTX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NRE1SU19WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTURNUlNfT0ZGU0VUXQogCiAJLyogV2UgYXJlIGZpbmlzaGVkIHdpdGggSW50ZWwncyBtZW1vcnkgY29udHJvbGxlciBpbml0aWFsaXNhdGlvbiAgICAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvcHhhMjU1X2lkcC9weGFfaWRwLmMgYi9ib2FyZC9weGEyNTVfaWRwL3B4YV9pZHAuYwppbmRleCA1NzY1YzU1Li5iMGFhOGRkIDEwMDY0NAotLS0gYS9ib2FyZC9weGEyNTVfaWRwL3B4YV9pZHAuYworKysgYi9ib2FyZC9weGEyNTVfaWRwL3B4YV9pZHAuYwpAQCAtMTI3LDcgKzEyNyw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLVVfQk9PVF9DTUQoaWRwY21kLCBDRkdfTUFYQVJHUywgMCwgZG9faWRwY21kLAorVV9CT09UX0NNRChpZHBjbWQsIENPTkZJR19TWVNfTUFYQVJHUywgMCwgZG9faWRwY21kLAogCSAgICJpZHBjbWQgICAgLSBjdXN0b20gSURQIGNvbW1hbmRcbiIsCiAJICAgIm5vIGFyZ3MgYXQgdGhpcyB0aW1lXG4iCiApOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcHhhMjU1X2lkcC9weGFfcmVnX2NhbGNzLm91dCBiL2JvYXJkL3B4YTI1NV9pZHAvcHhhX3JlZ19jYWxjcy5vdXQKaW5kZXggYmRhOTk0Ni4uMzkyOTVmYiAxMDA2NDQKLS0tIGEvYm9hcmQvcHhhMjU1X2lkcC9weGFfcmVnX2NhbGNzLm91dAorKysgYi9ib2FyZC9weGEyNTVfaWRwL3B4YV9yZWdfY2FsY3Mub3V0CkBAIC0xNSwyMSArMTUsMjEgQEAKIGdwc3IyOiAweDFjMDAwCiAKIAotI2RlZmluZSBDRkdfR0FGUjBfTF9WQUwJMHg4MDAwMTAwNQotI2RlZmluZSBDRkdfR0FGUjBfVV9WQUwJMHhhNTEyODAxMgotI2RlZmluZSBDRkdfR0FGUjFfTF9WQUwJMHg2OTlhOTU1OAotI2RlZmluZSBDRkdfR0FGUjFfVV9WQUwJMHhhYWE1YWE2YQotI2RlZmluZSBDRkdfR0FGUjJfTF9WQUwJMHhhYWFhYWFhYQotI2RlZmluZSBDRkdfR0FGUjJfVV9WQUwJMHgyCi0jZGVmaW5lIENGR19HUENSMF9WQUwJMHgxODAwNDAwCi0jZGVmaW5lIENGR19HUENSMV9WQUwJMHgwCi0jZGVmaW5lIENGR19HUENSMl9WQUwJMHgwCi0jZGVmaW5lIENGR19HUERSMF9WQUwJMHhjMTgxODQ0MAotI2RlZmluZSBDRkdfR1BEUjFfVkFMCTB4ZmNmZmFiODIKLSNkZWZpbmUgQ0ZHX0dQRFIyX1ZBTAkweDFmZmZmCi0jZGVmaW5lIENGR19HUFNSMF9WQUwJMHg4MDAwCi0jZGVmaW5lIENGR19HUFNSMV9WQUwJMHgzZjAwMDIKLSNkZWZpbmUgQ0ZHX0dQU1IyX1ZBTAkweDFjMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfTF9WQUwJMHg4MDAwMTAwNQorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX1VfVkFMCTB4YTUxMjgwMTIKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9MX1ZBTAkweDY5OWE5NTU4CisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfVV9WQUwJMHhhYWE1YWE2YQorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX0xfVkFMCTB4YWFhYWFhYWEKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9VX1ZBTAkweDIKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMF9WQUwJMHgxODAwNDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjFfVkFMCTB4MAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IyX1ZBTAkweDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMF9WQUwJMHhjMTgxODQ0MAorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIxX1ZBTAkweGZjZmZhYjgyCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjJfVkFMCTB4MWZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMF9WQUwJMHg4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjFfVkFMCTB4M2YwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjJfVkFMCTB4MWMwMDAKIAogCiBHUElPOiAwLCBkaXI9MCwgc2V0PTAsIGNscj0wLCBhbHQ9bm9uZSwgZGVzYz1VU0VSX1JFU0VUIwpkaWZmIC0tZ2l0IGEvYm9hcmQvcHhhMjU1X2lkcC9weGFfcmVnX2NhbGNzLnB5IGIvYm9hcmQvcHhhMjU1X2lkcC9weGFfcmVnX2NhbGNzLnB5CmluZGV4IGM0YmNiNGIuLjJmODllMzEgMTAwNjQ0Ci0tLSBhL2JvYXJkL3B4YTI1NV9pZHAvcHhhX3JlZ19jYWxjcy5weQorKysgYi9ib2FyZC9weGEyNTVfaWRwL3B4YV9yZWdfY2FsY3MucHkKQEAgLTI0NiwxMiArMjQ2LDEyIEBACiAKICMgVS1ib290IGRlZmluZSBuYW1lcwogdWJvb3RfcmVnX25hbWVzID0gewotCSdncGRyMCc6J0NGR19HUERSMF9WQUwnLCAnZ3BkcjEnOidDRkdfR1BEUjFfVkFMJywgJ2dwZHIyJzonQ0ZHX0dQRFIyX1ZBTCcsCi0JJ2dwc3IwJzonQ0ZHX0dQU1IwX1ZBTCcsICdncHNyMSc6J0NGR19HUFNSMV9WQUwnLCAnZ3BzcjInOidDRkdfR1BTUjJfVkFMJywKLQknZ3BjcjAnOidDRkdfR1BDUjBfVkFMJywgJ2dwY3IxJzonQ0ZHX0dQQ1IxX1ZBTCcsICdncGNyMic6J0NGR19HUENSMl9WQUwnLAotCSdnYWZyMF9sJzonQ0ZHX0dBRlIwX0xfVkFMJywgJ2dhZnIwX3UnOidDRkdfR0FGUjBfVV9WQUwnLAotCSdnYWZyMV9sJzonQ0ZHX0dBRlIxX0xfVkFMJywgJ2dhZnIxX3UnOidDRkdfR0FGUjFfVV9WQUwnLAotCSdnYWZyMl9sJzonQ0ZHX0dBRlIyX0xfVkFMJywgJ2dhZnIyX3UnOidDRkdfR0FGUjJfVV9WQUwnLAorCSdncGRyMCc6J0NPTkZJR19TWVNfR1BEUjBfVkFMJywgJ2dwZHIxJzonQ09ORklHX1NZU19HUERSMV9WQUwnLCAnZ3BkcjInOidDT05GSUdfU1lTX0dQRFIyX1ZBTCcsCisJJ2dwc3IwJzonQ09ORklHX1NZU19HUFNSMF9WQUwnLCAnZ3BzcjEnOidDT05GSUdfU1lTX0dQU1IxX1ZBTCcsICdncHNyMic6J0NPTkZJR19TWVNfR1BTUjJfVkFMJywKKwknZ3BjcjAnOidDT05GSUdfU1lTX0dQQ1IwX1ZBTCcsICdncGNyMSc6J0NPTkZJR19TWVNfR1BDUjFfVkFMJywgJ2dwY3IyJzonQ09ORklHX1NZU19HUENSMl9WQUwnLAorCSdnYWZyMF9sJzonQ09ORklHX1NZU19HQUZSMF9MX1ZBTCcsICdnYWZyMF91JzonQ09ORklHX1NZU19HQUZSMF9VX1ZBTCcsCisJJ2dhZnIxX2wnOidDT05GSUdfU1lTX0dBRlIxX0xfVkFMJywgJ2dhZnIxX3UnOidDT05GSUdfU1lTX0dBRlIxX1VfVkFMJywKKwknZ2FmcjJfbCc6J0NPTkZJR19TWVNfR0FGUjJfTF9WQUwnLCAnZ2FmcjJfdSc6J0NPTkZJR19TWVNfR0FGUjJfVV9WQUwnLAogfQogCiAjIGJpdCBtYXBwaW5ncwpkaWZmIC0tZ2l0IGEvYm9hcmQvcXVhZDEwMGhkL25hbmQuYyBiL2JvYXJkL3F1YWQxMDBoZC9uYW5kLmMKaW5kZXggNzY2ZWU5NS4uMzU1MjViYyAxMDA2NDQKLS0tIGEvYm9hcmQvcXVhZDEwMGhkL25hbmQuYworKysgYi9ib2FyZC9xdWFkMTAwaGQvbmFuZC5jCkBAIC0zNyw5ICszNyw5IEBACiAJc3RydWN0IG5hbmRfY2hpcCAqdGhpcyA9IG10ZC0+cHJpdjsKIAogCWlmIChjdHJsICYgTkFORF9DVFJMX0NIQU5HRSkgewotCQlncGlvX3dyaXRlX2JpdChDRkdfTkFORF9DTEUsICEhKGN0cmwgJiBOQU5EX0NMRSkpOwotCQlncGlvX3dyaXRlX2JpdChDRkdfTkFORF9BTEUsICEhKGN0cmwgJiBOQU5EX0FMRSkpOwotCQlncGlvX3dyaXRlX2JpdChDRkdfTkFORF9DRSwgIShjdHJsICYgTkFORF9OQ0UpKTsKKwkJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19OQU5EX0NMRSwgISEoY3RybCAmIE5BTkRfQ0xFKSk7CisJCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfTkFORF9BTEUsICEhKGN0cmwgJiBOQU5EX0FMRSkpOworCQlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX05BTkRfQ0UsICEoY3RybCAmIE5BTkRfTkNFKSk7CiAJfQogCiAJaWYgKGNtZCAhPSBOQU5EX0NNRF9OT05FKQpAQCAtNDgsNyArNDgsNyBAQAogCiBzdGF0aWMgaW50IHF1YWQxMDBoZF9uYW5kX3JlYWR5KHN0cnVjdCBtdGRfaW5mbyAqbXRkKQogewotCXJldHVybiBncGlvX3JlYWRfaW5fYml0KENGR19OQU5EX1JEWSk7CisJcmV0dXJuIGdwaW9fcmVhZF9pbl9iaXQoQ09ORklHX1NZU19OQU5EX1JEWSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9ib2FyZC9xdWFudHVtL2ZwZ2EuYyBiL2JvYXJkL3F1YW50dW0vZnBnYS5jCmluZGV4IDc1YzI2NTguLjA5MmFhYWIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3F1YW50dW0vZnBnYS5jCisrKyBiL2JvYXJkL3F1YW50dW0vZnBnYS5jCkBAIC02MiwxMSArNjIsMTEgQEAKIAogaW50IGZwZ2FfYm9vdCAodW5zaWduZWQgY2hhciAqZnBnYWRhdGEsIGludCBzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCWludCBpLCBpbmRleCwgbGVuOwogCWludCBjb3VudDsKIAotI2lmZGVmIENGR19GUEdBX1NQQVJUQU4yCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCiAJaW50IGo7CiAJdW5zaWduZWQgY2hhciBkYXRhOwogI2Vsc2UKQEAgLTg5LDcgKzg5LDcgQEAKIAogCWluZGV4ID0gMDsKIAotI2lmZGVmIENGR19GUEdBX1NQQVJUQU4yCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCiAJLyogc2VhcmNoIGZvciBwcmVhbWJsZSAweEZGRkZGRkZGICovCiAJd2hpbGUgKDEpIHsKIAkJaWYgKChmcGdhZGF0YVtpbmRleF0gPT0gMHhmZikgJiYgKGZwZ2FkYXRhW2luZGV4ICsgMV0gPT0gMHhmZikKQEAgLTE1OSwxMiArMTU5LDEyIEBACiAJZGVidWcgKCJ3cml0ZSBjb25maWd1cmF0aW9uIGRhdGEgaW50byBmcGdhXG4iKTsKIAkvKiB3cml0ZSBjb25maWd1cmF0aW9uLWRhdGEgaW50byBmcGdhLi4uICovCiAKLSNpZmRlZiBDRkdfRlBHQV9TUEFSVEFOMgorI2lmZGVmIENPTkZJR19TWVNfRlBHQV9TUEFSVEFOMgogCS8qCiAJICogTG9hZCB1bmNvbXByZXNzZWQgaW1hZ2UgaW50byBmcGdhCiAJICovCiAJZm9yIChpID0gaW5kZXg7IGkgPCBzaXplOyBpKyspIHsKLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJaWYgKChpICUgMTAyNCkgPT0gMCkKIAkJCXByaW50ZiAoIiU2ZCBvdXQgb2YgJTZkXHIiLCBpLCBzaXplKTsJLyogbGV0IHRoZW0ga25vdyB3ZSBhcmUgYWxpdmUgKi8KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvcXVhbnR1bS9xdWFudHVtLmMgYi9ib2FyZC9xdWFudHVtL3F1YW50dW0uYwppbmRleCAzNDVmMTI3Li5kOTRiNWQ3IDEwMDY0NAotLS0gYS9ib2FyZC9xdWFudHVtL3F1YW50dW0uYworKysgYi9ib2FyZC9xdWFudHVtL3F1YW50dW0uYwpAQCAtMTA0LDcgKzEwNCw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplOTsKIApAQCAtMTEyLDE1ICsxMTIsMTUgQEAKIAkJICAgc2l6ZW9mIChzZHJhbV90YWJsZSkgLyBzaXplb2YgKHVpbnQpKTsKIAogCS8qIFJlZnJlc2ggY2xvY2sgcHJlc2NhbGFyICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIAltZW1jdGwtPm1lbWNfbWFyID0gMHgwMDAwMDA4ODsKIAogCS8qIE1hcCBjb250cm9sbGVyIGJhbmtzIDEgdG8gdGhlIFNEUkFNIGJhbmsgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOUNPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzlDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAogCXVkZWxheSAoMjAwKTsKIApAQCAtMTM2LDEyICsxMzYsMTIgQEAKIAkvKiBDaGVjayBCYW5rIDAgTWVtb3J5IFNpemUsCiAJICogOSBjb2x1bW4gbW9kZQogCSAqLwotCXNpemU5ID0gZHJhbV9zaXplIChDRkdfTUFNUl85Q09MLCAobG9uZyAqKSBTRFJBTV9CQVNFX1BSRUxJTSwKKwlzaXplOSA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzlDT0wsIChsb25nICopIFNEUkFNX0JBU0VfUFJFTElNLAogCQkJICAgU0RSQU1fTUFYX1NJWkUpOwogCS8qCiAJICogRmluYWwgbWFwcGluZzoKIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZTkpICYgMHhGRkZGMDAwMCkgfCBDRkdfT1JfVElNSU5HX1NEUkFNOworCW1lbWN0bC0+bWVtY19vcjEgPSAoKC1zaXplOSkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOwogCXVkZWxheSAoMTAwMCk7CiAKIAlyZXR1cm4gKHNpemU5KTsKQEAgLTE2MCw3ICsxNjAsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXZvbGF0aWxlIHVsb25nICphZGRyOwogCXVsb25nIGNudCwgdmFsLCBzaXplOwpAQCAtMjI0LDE0ICsyMjQsMTQgQEAKIAl2b2lkICpmcGdhX2RhdGE7CiAJaW50IGZwZ2Ffc2l6ZTsKIAlpbnQgc3RhdHVzOwotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWludCBmbGFzaF9zaXplOwogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwogCWZsYXNoX3NpemUgPSBmbGFzaF9pbml0ICgpOwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1mbGFzaF9zaXplICYgMHhGRkZGODAwMCk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLWZsYXNoX3NpemUgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsKIAogCWlmIChmcGdhX2RhdGFfc3RyICYmIGZwZ2Ffc2l6ZV9zdHIpIHsKIAkJZnBnYV9kYXRhID0gKHZvaWQgKikgc2ltcGxlX3N0cnRvdWwgKGZwZ2FfZGF0YV9zdHIsIE5VTEwsIDE2KTsKZGlmZiAtLWdpdCBhL2JvYXJkL3IyZHBsdXMvcjJkcGx1cy5jIGIvYm9hcmQvcjJkcGx1cy9yMmRwbHVzLmMKaW5kZXggNGUwYzY2YS4uMGMwOGQ2OCAxMDA2NDQKLS0tIGEvYm9hcmQvcjJkcGx1cy9yMmRwbHVzLmMKKysrIGIvYm9hcmQvcjJkcGx1cy9yMmRwbHVzLmMKQEAgLTQzLDkgKzQzLDkgQEAKIHsKIAlERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDRkdfU0RSQU1fQkFTRTsKLQlnZC0+YmQtPmJpX21lbXNpemUgPSBDRkdfU0RSQU1fU0laRTsKLQlwcmludGYoIkRSQU06ICAlZE1CXG4iLCBDRkdfU0RSQU1fU0laRSAvICgxMDI0ICogMTAyNCkpOworCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CisJZ2QtPmJkLT5iaV9tZW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFOworCXByaW50ZigiRFJBTTogICVkTUJcbiIsIENPTkZJR19TWVNfU0RSQU1fU0laRSAvICgxMDI0ICogMTAyNCkpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9ib2FyZC9yMzYwbXBpL2ZsYXNoLmMgYi9ib2FyZC9yMzYwbXBpL2ZsYXNoLmMKaW5kZXggODE0NTQzNy4uNDVjY2NmNyAxMDA2NDQKLS0tIGEvYm9hcmQvcjM2MG1waS9mbGFzaC5jCisrKyBiL2JvYXJkL3IzNjBtcGkvZmxhc2guYwpAQCAtMjksMTEgKzI5LDExIEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNzYsMTMgKzc2LDEzIEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjA7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtOTUsMTkgKzk1LDE5IEBACiAJfQogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX01TX0dQQ00gfCBCUl9WOworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIDB4RkZGRjgwMDApOworCW1lbWN0bC0+bWVtY19icjAgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfTVNfR1BDTSB8IEJSX1Y7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplICgoRlBXICopIENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplICgoRlBXICopIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJKHZvaWQpIGZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCQkJQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCQkmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMjYxLDEwICsyNjEsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMzM1LDcgKzMzNSw3IEBACiAJCQl1ZGVsYXkgKDEwMDApOwogCiAJCQl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCQkgICAgaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJICAgIGlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJKmFkZHIgPSAoRlBXKSAweDAwQjAwMEIwOwkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwogCQkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC00NzIsNyArNDcyLDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAKIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuICgxKTsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvcjM2MG1waS9wY21jaWEuYyBiL2JvYXJkL3IzNjBtcGkvcGNtY2lhLmMKaW5kZXggNGZkOWQxMi4uODVkYTQxYiAxMDA2NDQKLS0tIGEvYm9hcmQvcjM2MG1waS9wY21jaWEuYworKysgYi9ib2FyZC9yMzYwbXBpL3BjbWNpYS5jCkBAIC0yOCwxMCArMjgsMTAgQEAKIAogCXVkZWxheSgxMDAwMCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0Jc3lzcCAgPSAoc3lzY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9zaXVfY29uZikpOwotCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7Ci0JY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJc3lzcCAgPSAoc3lzY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fc2l1X2NvbmYpKTsKKwlwY21wICA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEpKTsKKwljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbSkpOwogCiAJLyoKIAkqIENvbmZpZ3VyZSBTSVVNQ1IgdG8gZW5hYmxlIFBDTUNJQSBwb3J0IEIKQEAgLTEzMiw4ICsxMzIsOCBAQAogCiAJZGVidWcgKCJoYXJkd2FyZV9kaXNhYmxlOiAiIFBDTUNJQV9CT0FSRF9NU0cgIiBTbG90ICVjXG4iLCAnQScrc2xvdCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JcGNtcCA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJcGNtcCA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEpKTsKIAogCS8qIHJlbW92ZSBhbGwgcG93ZXIgKi8KIAlpbW1hcC0+aW1faW9wb3J0LmlvcF9wY2RhdCB8PSAweDA0MDA7CkBAIC0xNjQsOCArMTY0LDggQEAKIAkJCSIgU2xvdCAlYywgVmNjPSVkLiVkLCBWcHA9JWQuJWRcbiIsCiAJJ0EnK3Nsb3QsIHZjYy8xMCwgdmNjJTEwLCB2cHAvMTAsIHZjYyUxMCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JcGNtcCA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJcGNtcCA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEpKTsKIAkvKgogCSogRGlzYWJsZSBQQ01DSUEgYnVmZmVycyAoaXNvbGF0ZSB0aGUgaW50ZXJmYWNlKQogCSogYW5kIGFzc2VydCBSRVNFVCBzaWduYWwKZGlmZiAtLWdpdCBhL2JvYXJkL3IzNjBtcGkvcjM2MG1waS5jIGIvYm9hcmQvcjM2MG1waS9yMzYwbXBpLmMKaW5kZXggYzUxZTQxMi4uYjUwMmU0ZCAxMDA2NDQKLS0tIGEvYm9hcmQvcjM2MG1waS9yMzYwbXBpLmMKKysrIGIvYm9hcmQvcjM2MG1waS9yMzYwbXBpLmMKQEAgLTEwNSw3ICsxMDUsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZTgsIHNpemU5OwogCWxvbmcgaW50IHNpemVfYjAgPSAwOwpAQCAtMTIwLDcgKzEyMCw3IEBACiAJICogd2l0aCB0d28gU0RSQU0gYmFua3Mgb3IgZm91ciBjeWNsZXMgZXZlcnkgMzEuMiB1cyB3aXRoIG9uZQogCSAqIGJhbmsuIEl0IHdpbGwgYmUgYWRqdXN0ZWQgYWZ0ZXIgbWVtb3J5IHNpemluZy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzhLOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzhLOwogCiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKQEAgLTEyOSwxMCArMTI5LDEwIEBACiAJICogcHJlbGltaW5hcnkgYWRkcmVzcyAtIHRoZXNlIGhhdmUgdG8gYmUgbW9kaWZpZWQgYWZ0ZXIgdGhlCiAJICogU0RSQU0gc2l6ZSBoYXMgYmVlbiBkZXRlcm1pbmVkLgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjIgPSBDRkdfT1IyX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIyID0gQ0ZHX0JSMl9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0xNTIsNyArMTUyLDcgQEAKIAkgKgogCSAqIHRyeSA4IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQU1SXzhDT0wsIChsb25nICopIFNEUkFNX0JBU0UyX1BSRUxJTSwKKwlzaXplOCA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzhDT0wsIChsb25nICopIFNEUkFNX0JBU0UyX1BSRUxJTSwKIAkJCQkJICAgU0RSQU1fTUFYX1NJWkUpOwogCiAJdWRlbGF5ICgxMDAwKTsKQEAgLTE2MCw3ICsxNjAsNyBAQAogCS8qCiAJICogdHJ5IDkgY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOSA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOUNPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTJfUFJFTElNLAorCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTJfUFJFTElNLAogCQkJCQkgICBTRFJBTV9NQVhfU0laRSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewkJLyogbGVhdmUgY29uZmlndXJhdGlvbiBhdCA5IGNvbHVtbnMgKi8KQEAgLTE2OCw3ICsxNjgsNyBAQAogLyoJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOSBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsJKi8KIAl9IGVsc2UgewkJCS8qIGJhY2sgdG8gOCBjb2x1bW5zICAgICAgICAgICAgKi8KIAkJc2l6ZV9iMCA9IHNpemU4OwotCQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0w7CisJCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0w7CiAJCXVkZWxheSAoNTAwKTsKIC8qCWRlYnVnICgiU0RSQU0gQmFuayAwIGluIDggY29sdW1uIG1vZGU6ICVsZCBNQlxuIiwgc2l6ZSA+PiAyMCk7CSovCiAJfQpAQCAtMTgxLDcgKzE4MSw3IEBACiAJICovCiAJaWYgKChzaXplX2IwIDwgMHgwMjAwMDAwMCkpIHsKIAkJLyogcmVkdWNlIHRvIDE1LjYgdXMgKDYyLjQgdXMgLyBxdWFkKSAqLwotCQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzRLOworCQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzJCS180SzsKIAkJdWRlbGF5ICgxMDAwKTsKIAl9CiAKQEAgLTE4OSwyMCArMTg5LDIwIEBACiAJICogRmluYWwgbWFwcGluZwogCSAqLwogCi0JbWVtY3RsLT5tZW1jX29yMSA9ICgoLXNpemVfYjApICYgMHhGRkZGMDAwMCkgfCBDRkdfT1JfVElNSU5HX1NEUkFNOwotCW1lbWN0bC0+bWVtY19icjEgPSAoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX29yMSA9ICgoLXNpemVfYjApICYgMHhGRkZGMDAwMCkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKIAogCS8qIGFkanVzdCByZWZyZXNoIHJhdGUgZGVwZW5kaW5nIG9uIFNEUkFNIHR5cGUsIG9uZSBiYW5rICovCiAJcmVnID0gbWVtY3RsLT5tZW1jX21wdHByOwotCXJlZyA+Pj0gMTsJCS8qIHJlZHVjZSB0byBDRkdfTVBUUFJfMUJLXzhLIC8gXzRLICovCisJcmVnID4+PSAxOwkJLyogcmVkdWNlIHRvIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLIC8gXzRLICovCiAJbWVtY3RsLT5tZW1jX21wdHByID0gcmVnOwogCiAJdWRlbGF5ICgxMDAwMCk7CiAKICNpZmRlZiBDT05GSUdfQ0FOX0RSSVZFUgogCS8qIEluaXRpYWxpemUgT1IzIC8gQlIzICovCi0JbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfQ0FOOwkJLyogc3dpdGNoIEdQTEJfNSB0byBHUExBXzUgKi8KLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19DQU47CisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzX0NBTjsJCS8qIHN3aXRjaCBHUExCXzUgdG8gR1BMQV81ICovCisJbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfQlIzX0NBTjsKIAogCS8qIEluaXRpYWxpemUgTUJNUiAqLwogCW1lbWN0bC0+bWVtY19tYm1yID0gTUJNUl9HUExfQjRESVM7CS8qIEdQTF9CNCB3b3JrcyBhcyBVUFdBSVRCICovCkBAIC0yNTYsNyArMjU2LDcgQEAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1hbXJfdmFsdWUsCiAJCQkgICBsb25nIGludCAqYmFzZSwgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKQEAgLTI2OCw3ICsyNjgsNyBAQAogCiB2b2lkIHIzNjBfaTJjX2xjZF93cml0ZSAodWNoYXIgZGF0YTAsIHVjaGFyIGRhdGExKQogewotCWlmIChpMmNfd3JpdGUgKENGR19JMkNfTENEX0FERFIsIGRhdGEwLCAxLCAmZGF0YTEsIDEpKSB7CisJaWYgKGkyY193cml0ZSAoQ09ORklHX1NZU19JMkNfTENEX0FERFIsIGRhdGEwLCAxLCAmZGF0YTEsIDEpKSB7CiAJCXByaW50ZigiQ2FuJ3Qgd3JpdGUgbGNkIGRhdGEgMHglMDJYIDB4JTAyWC5cbiIsIGRhdGEwLCBkYXRhMSk7CiAJfQogfQpAQCAtMjkyLDkgKzI5Miw5IEBACiAJY2hhciAqc3RyOwogCWludCBpOwogCi0JaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCi0JaTJjX3JlYWQgKENGR19JMkNfS0VZX0FERFIsIDAsIDAsICh1Y2hhciAqKWtiZF9kYXRhLCBLRVlCRF9EQVRBTEVOKTsKKwlpMmNfcmVhZCAoQ09ORklHX1NZU19JMkNfS0VZX0FERFIsIDAsIDAsICh1Y2hhciAqKWtiZF9kYXRhLCBLRVlCRF9EQVRBTEVOKTsKIAogCWZvciAoaSA9IDA7IGkgPCBLRVlCRF9EQVRBTEVOOyArK2kpIHsKIAkJc3ByaW50ZiAoa2V5YmRfZW52ICsgaSArIGksICIlMDJYIiwga2JkX2RhdGFbaV0pOwpAQCAtMzk3LDEwICszOTcsMTAgQEAKIAl1Y2hhciBrZXliZF9lbnZbMiAqIEtFWUJEX0RBVEFMRU4gKyAxXTsKIAlpbnQgaTsKIAotCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAogCS8qIFJlYWQga2V5cyAqLwotCWkyY19yZWFkIChDRkdfSTJDX0tFWV9BRERSLCAwLCAwLCBrYmRfZGF0YSwgS0VZQkRfREFUQUxFTik7CisJaTJjX3JlYWQgKENPTkZJR19TWVNfSTJDX0tFWV9BRERSLCAwLCAwLCBrYmRfZGF0YSwgS0VZQkRfREFUQUxFTik7CiAKIAlwdXRzICgiS2V5czoiKTsKIAlmb3IgKGkgPSAwOyBpIDwgS0VZQkRfREFUQUxFTjsgKytpKSB7CmRpZmYgLS1naXQgYS9ib2FyZC9yNzc4MG1wL3I3NzgwbXAuYyBiL2JvYXJkL3I3NzgwbXAvcjc3ODBtcC5jCmluZGV4IGVmYmVlYzkuLjM5NmU0YjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3I3NzgwbXAvcjc3ODBtcC5jCisrKyBiL2JvYXJkL3I3NzgwbXAvcjc3ODBtcC5jCkBAIC00OCw5ICs0OCw5IEBACiB7CiAJREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLQlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ0ZHX1NEUkFNX0JBU0U7Ci0JZ2QtPmJkLT5iaV9tZW1zaXplID0gQ0ZHX1NEUkFNX1NJWkU7Ci0JcHJpbnRmKCJEUkFNOiAgJWRNQlxuIiwgQ0ZHX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKKwlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRTsKKwlwcmludGYoIkRSQU06ICAlZE1CXG4iLCBDT05GSUdfU1lTX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvcmF0dGxlci9yYXR0bGVyLmMgYi9ib2FyZC9yYXR0bGVyL3JhdHRsZXIuYwppbmRleCBhZDc1YzIxLi44MGY1N2RjIDEwMDY0NAotLS0gYS9ib2FyZC9yYXR0bGVyL3JhdHRsZXIuYworKysgYi9ib2FyZC9yYXR0bGVyL3JhdHRsZXIuYwpAQCAtMzUsMzEgKzM1LDMxIEBACiAgKiBhY2NvcmRpbmcgdG8gdGhlIGZpdmUgdmFsdWVzIHBvZHIvcGRpci9wcGFyL3Bzb3IvcGRhdCBmb3IgdGhhdCBlbnRyeQogICovCiAKLSNkZWZpbmUgQ0ZHX0ZDQzEgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAxKQotI2RlZmluZSBDRkdfRkNDMiAoQ09ORklHX0VUSEVSX0lOREVYID09IDIpCisjZGVmaW5lIENPTkZJR19TWVNfRkNDMSAoQ09ORklHX0VUSEVSX0lOREVYID09IDEpCisjZGVmaW5lIENPTkZJR19TWVNfRkNDMiAoQ09ORklHX0VUSEVSX0lOREVYID09IDIpCiAKIGNvbnN0IGlvcF9jb25mX3QgaW9wX2NvbmZfdGFiWzRdWzMyXSA9IHsKIAogICAgIC8qIFBvcnQgQSAqLwogICAgIHsJLyoJICAgICAgY29uZiAgICAgIHBwYXIgcHNvciBwZGlyIHBvZHIgcGRhdCAqLwotCS8qIFBBMzEgKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgQ09MICAgICovCi0JLyogUEEzMCAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBDUlMgICAgKi8KLQkvKiBQQTI5ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFRYX0VSICAqLwotCS8qIFBBMjggKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVFhfRU4gICovCi0JLyogUEEyNyAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBSWF9EViAgKi8KLQkvKiBQQTI2ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJYX0VSICAqLworCS8qIFBBMzEgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIENPTCAgICAqLworCS8qIFBBMzAgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIENSUyAgICAqLworCS8qIFBBMjkgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFRYX0VSICAqLworCS8qIFBBMjggKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFRYX0VOICAqLworCS8qIFBBMjcgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJYX0RWICAqLworCS8qIFBBMjYgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJYX0VSICAqLwogCS8qIFBBMjUgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEEyNSAgICAgICAgICAgICovCiAJLyogUEEyNCAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTI0ICAgICAgICAgICAgKi8KIAkvKiBQQTIzICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBBMjMgICAgICAgICAgICAqLwogCS8qIFBBMjIgKi8geyAxLCAgICAgICAgICAwLCAgIDAsICAgMSwgICAwLCAgIDEgfSwgLyogRXRoIFBIWXMgcmVzZXQgICovCi0JLyogUEEyMSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUeERbM10gKi8KLQkvKiBQQTIwICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFsyXSAqLwotCS8qIFBBMTkgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzFdICovCi0JLyogUEExOCAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUeERbMF0gKi8KLQkvKiBQQTE3ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFswXSAqLwotCS8qIFBBMTYgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzFdICovCi0JLyogUEExNSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBSeERbMl0gKi8KLQkvKiBQQTE0ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFszXSAqLworCS8qIFBBMjEgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFszXSAqLworCS8qIFBBMjAgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFsyXSAqLworCS8qIFBBMTkgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFsxXSAqLworCS8qIFBBMTggKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFswXSAqLworCS8qIFBBMTcgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFswXSAqLworCS8qIFBBMTYgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFsxXSAqLworCS8qIFBBMTUgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFsyXSAqLworCS8qIFBBMTQgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFszXSAqLwogCS8qIFBBMTMgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEExMyAgICAgICAgICAgICovCiAJLyogUEExMiAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTEyICAgICAgICAgICAgKi8KIAkvKiBQQTExICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBBMTEgICAgICAgICAgICAqLwpAQCAtNzgsMjAgKzc4LDIwIEBACiAKICAgICAvKiBQb3J0IEIgKi8KICAgICB7ICAgLyoJICAgICAgY29uZiAgICAgIHBwYXIgcHNvciBwZGlyIHBvZHIgcGRhdCAqLwotCS8qIFBCMzEgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRVIgICovCi0JLyogUEIzMCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9EViAgKi8KLQkvKiBQQjI5ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFRYX0VOICAqLwotCS8qIFBCMjggKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUlhfRVIgICovCi0JLyogUEIyNyAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBDT0wgICAgKi8KLQkvKiBQQjI2ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIENSUyAgICAqLwotCS8qIFBCMjUgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzNdICovCi0JLyogUEIyNCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMl0gKi8KLQkvKiBQQjIzICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFsxXSAqLwotCS8qIFBCMjIgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzBdICovCi0JLyogUEIyMSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMF0gKi8KLQkvKiBQQjIwICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFsxXSAqLwotCS8qIFBCMTkgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzJdICovCi0JLyogUEIxOCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbM10gKi8KKwkvKiBQQjMxICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUWF9FUiAgKi8KKwkvKiBQQjMwICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9EViAgKi8KKwkvKiBQQjI5ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMSwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUWF9FTiAgKi8KKwkvKiBQQjI4ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9FUiAgKi8KKwkvKiBQQjI3ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBDT0wgICAgKi8KKwkvKiBQQjI2ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBDUlMgICAgKi8KKwkvKiBQQjI1ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbM10gKi8KKwkvKiBQQjI0ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMl0gKi8KKwkvKiBQQjIzICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMV0gKi8KKwkvKiBQQjIyICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMF0gKi8KKwkvKiBQQjIxICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMF0gKi8KKwkvKiBQQjIwICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMV0gKi8KKwkvKiBQQjE5ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMl0gKi8KKwkvKiBQQjE4ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbM10gKi8KIAkvKiBQQjE3ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIG5vbi1leGlzdGVudCAgICAqLwogCS8qIFBCMTYgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogbm9uLWV4aXN0ZW50ICAgICovCiAJLyogUEIxNSAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBub24tZXhpc3RlbnQgICAgKi8KQEAgLTEyMywxMiArMTIzLDEyIEBACiAJLyogUEMyNSAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzI1ICAgICAgICAgICAgKi8KIAkvKiBQQzI0ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMjQgICAgICAgICAgICAqLwogCS8qIFBDMjMgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMyMyAgICAgICAgICAgICovCi0JLyogUEMyMiAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIFR4Q2xrIChDTEsxMCkgKi8KLQkvKiBQQzIxICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgUnhDbGsgKENMSzExKSAqLworCS8qIFBDMjIgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgVHhDbGsgKENMSzEwKSAqLworCS8qIFBDMjEgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgUnhDbGsgKENMSzExKSAqLwogCS8qIFBDMjAgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMyMCAgICAgICAgICAgICovCiAJLyogUEMxOSAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzE5ICAgICAgICAgICAgKi8KLQkvKiBQQzE4ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgVHhDbGsgKENMSzE0KSAqLwotCS8qIFBDMTcgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBSeENsayAoQ0xLMTUpICovCisJLyogUEMxOCAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBUeENsayAoQ0xLMTQpICovCisJLyogUEMxNyAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBSeENsayAoQ0xLMTUpICovCiAJLyogUEMxNiAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzE2ICAgICAgICAgICAgKi8KIAkvKiBQQzE1ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMTUgICAgICAgICAgICAqLwogCS8qIFBDMTQgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxNCAgICAgICAgICAgICovCkBAIC0xODcsMjYgKzE4NywyNiBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbShpbnQgYm9hcmRfdHlwZSkKIHsKLQlsb25nIGludCBtc2l6ZSA9IENGR19TRFJBTV9TSVpFOworCWxvbmcgaW50IG1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFOwogCi0jaWZuZGVmIENGR19SQU1CT09UCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7Ci0JdnVfY2hhciAqcmFtYWRkciA9ICh2dV9jaGFyICopQ0ZHX1NEUkFNX0JBU0U7CisJdnVfY2hhciAqcmFtYWRkciA9ICh2dV9jaGFyICopQ09ORklHX1NZU19TRFJBTV9CQVNFOwogCXVjaGFyIGMgPSAweEZGOwotCXVpbnQgcHNkbXIgPSBDRkdfUFNETVI7CisJdWludCBwc2RtciA9IENPTkZJR19TWVNfUFNETVI7CiAJaW50IGk7CiAKIAlpbW1hcC0+aW1fc2l1X2NvbmYuc2NfcHBjX2FjciAgPSAweDAyOwogCWltbWFwLT5pbV9zaXVfY29uZi5zY19wcGNfYWxyaCA9IDB4MzAxMjY3NDU7CiAJaW1tYXAtPmltX3NpdV9jb25mLnNjX3Rlc2NyMSAgID0gMHgwMDAwNDAwMDsKIAotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCiAJLyogSW5pdGlhbGlzZSA2MHggYnVzIFNEUkFNICovCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfb3IxICA9IENGR19TRFJBTV9PUjsKLQltZW1jdGwtPm1lbWNfYnIxICA9IENGR19TRFJBTV9CUjsKKwltZW1jdGwtPm1lbWNfcHNydCA9IENPTkZJR19TWVNfUFNSVDsKKwltZW1jdGwtPm1lbWNfb3IxICA9IENPTkZJR19TWVNfU0RSQU1fT1I7CisJbWVtY3RsLT5tZW1jX2JyMSAgPSBDT05GSUdfU1lTX1NEUkFNX0JSOwogCW1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgUFNETVJfT1BfUFJFQTsgLyogUHJlY2hhcmdlIGFsbCBiYW5rcyAqLwogCSpyYW1hZGRyID0gYzsKIAltZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IFBTRE1SX09QX0NCUlI7IC8qIENCUiByZWZyZXNoICovCkBAIC0yMTYsNyArMjE2LDcgQEAKIAkqcmFtYWRkciA9IGM7CiAJbWVtY3RsLT5tZW1jX3BzZG1yID0gcHNkbXIgfCBQU0RNUl9SRkVOOyAgICAvKiBSZWZyZXNoIGVuYWJsZSAqLwogCSpyYW1hZGRyID0gYzsKLSNlbmRpZiAvKiAhQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiAhQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiBSZXR1cm4gdG90YWwgNjB4IGJ1cyBTRFJBTSBzaXplICovCiAJcmV0dXJuIG1zaXplICogMTAyNCAqIDEwMjQ7CkBAIC0yMjQsNyArMjI0LDcgQEAKIAogaW50IGNoZWNrYm9hcmQodm9pZCkKIHsKLQl2dV9jaGFyICpiY3NyID0gKHZ1X2NoYXIgKilDRkdfQkNTUjsKKwl2dV9jaGFyICpiY3NyID0gKHZ1X2NoYXIgKilDT05GSUdfU1lTX0JDU1I7CiAKIAlwcmludGYoIkJvYXJkOiBSYXR0bGVyIFJldi4gJWNcbiIsIGJjc3JbMHgyMF0gKyAweDQwKTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2JvYXJkL3JiYzgyMy9mbGFzaC5jIGIvYm9hcmQvcmJjODIzL2ZsYXNoLmMKaW5kZXggMjZlYmNhZS4uY2IxZTA4OSAxMDA2NDQKLS0tIGEvYm9hcmQvcmJjODIzL2ZsYXNoLmMKKysrIGIvYm9hcmQvcmJjODIzL2ZsYXNoLmMKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtNDIsMjAgKzQyLDIwIEBACiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpCisJZm9yIChpPTA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKQogCSAgICBmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAogCS8qIERldGVjdCBzaXplICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCS8qIFNldHVwIG9mZnNldHMgKi8KLQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0zMjIsNyArMzIyLDcgQEAKIAogCXdoaWxlICgoYWRkclswXSAmIDB4RkYpICE9IDB4RkYpCiAJewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtNDU0LDcgKzQ1NCw3IEBACiAJICAgIHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAkgICAgd2hpbGUgKCgqY2Rlc3QgXiAqY2RhdGEpICYgMHg4MCkKIAkgICAgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJICAgIH0KZGlmZiAtLWdpdCBhL2JvYXJkL3JiYzgyMy9rYmQuYyBiL2JvYXJkL3JiYzgyMy9rYmQuYwppbmRleCA2ZDUzMGY2Li4xZDQ4ZjZkIDEwMDY0NAotLS0gYS9ib2FyZC9yYmM4MjMva2JkLmMKKysrIGIvYm9hcmQvcmJjODIzL2tiZC5jCkBAIC00OCw3ICs0OCw3IEBACiAKIHZvaWQgc21jMV9zZXRicmcgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwID0gJihpbS0+aW1fY3BtKTsKIAogCS8qIFNldCB1cCB0aGUgYmF1ZCByYXRlIGdlbmVyYXRvci4KQEAgLTY1LDcgKzY1LDcgQEAKIAogaW50IHNtYzFfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBzbWNfdCAqc3A7CiAJdm9sYXRpbGUgc21jX3VhcnRfdCAqdXA7CiAJdm9sYXRpbGUgY2JkX3QgKnRiZGYsICpyYmRmOwpAQCAtODYsMTUgKzg2LDE1IEBACiAJaW0tPmltX3NpdV9jb25mLnNjX3NkY3IgPSAxOwogCiAJLyogY2xlYXIgZXJyb3IgY29uZGl0aW9ucyAqLwotI2lmZGVmCUNGR19TRFNSCi0JaW0tPmltX3NkbWEuc2RtYV9zZHNyID0gQ0ZHX1NEU1I7CisjaWZkZWYJQ09ORklHX1NZU19TRFNSCisJaW0tPmltX3NkbWEuc2RtYV9zZHNyID0gQ09ORklHX1NZU19TRFNSOwogI2Vsc2UKIAlpbS0+aW1fc2RtYS5zZG1hX3Nkc3IgPSAweDgzOwogI2VuZGlmCiAKIAkvKiBjbGVhciBTRE1BIGludGVycnVwdCBtYXNrICovCi0jaWZkZWYJQ0ZHX1NETVIKLQlpbS0+aW1fc2RtYS5zZG1hX3NkbXIgPSBDRkdfU0RNUjsKKyNpZmRlZglDT05GSUdfU1lTX1NETVIKKwlpbS0+aW1fc2RtYS5zZG1hX3NkbXIgPSBDT05GSUdfU1lTX1NETVI7CiAjZWxzZQogCWltLT5pbV9zZG1hLnNkbWFfc2RtciA9IDB4MDA7CiAjZW5kaWYKQEAgLTEwOSw3ICsxMDksNyBAQAogCSAqIHRoZSBidWZmZXIgZGVzY3JpcHRvcnMuCiAJICovCiAKLSNpZmRlZiBDRkdfQUxMT0NfRFBSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCiAJZHBhZGRyID0gZHByYW1fYWxsb2NfYWxpZ24gKHNpemVvZihjYmRfdCkqMiArIDIsIDgpIDsKICNlbHNlCiAJZHBhZGRyID0gQ1BNX0tFWUJPQVJEX0JBU0UgOwpAQCAtMTgyLDcgKzE4Miw3IEBACiAJdm9sYXRpbGUgY2JkX3QJCSp0YmRmOwogCXZvbGF0aWxlIGNoYXIJCSpidWY7CiAJdm9sYXRpbGUgc21jX3VhcnRfdAkqdXA7Ci0Jdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY3BtOHh4X3QJKmNwbXAgPSAmKGltLT5pbV9jcG0pOwogCiAJdXAgPSAoc21jX3VhcnRfdCAqKSZjcG1wLT5jcF9kcGFyYW1bUFJPRkZfU01DXTsKQEAgLTIxMCw3ICsyMTAsNyBAQAogCXZvbGF0aWxlIGNiZF90CQkqcmJkZjsKIAl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyCSpidWY7CiAJdm9sYXRpbGUgc21jX3VhcnRfdAkqdXA7Ci0Jdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY3BtOHh4X3QJKmNwbXAgPSAmKGltLT5pbV9jcG0pOwogCXVuc2lnbmVkIGNoYXIJCWM7CiAKQEAgLTIzNSw3ICsyMzUsNyBAQAogewogCXZvbGF0aWxlIGNiZF90CQkqcmJkZjsKIAl2b2xhdGlsZSBzbWNfdWFydF90CSp1cDsKLQl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdAkqY3BtcCA9ICYoaW0tPmltX2NwbSk7CiAKIAl1cCA9IChzbWNfdWFydF90ICopJmNwbXAtPmNwX2RwYXJhbVtQUk9GRl9TTUNdOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcmJjODIzL3JiYzgyMy5jIGIvYm9hcmQvcmJjODIzL3JiYzgyMy5jCmluZGV4IDViNjJhZjYuLmIyOTQ5MDYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3JiYzgyMy9yYmM4MjMuYworKysgYi9ib2FyZC9yYmM4MjMvcmJjODIzLmMKQEAgLTE0NCw3ICsxNDQsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZV9iMCwgc2l6ZTgsIHNpemU5OwogCkBAIC0xNTQsMTUgKzE1NCwxNSBAQAogCS8qCiAJICogMSBCYW5rIG9mIDY0TWJpdCB4IDIgZGV2aWNlcwogCSAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8xQktfNEs7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8xQktfNEs7CiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIFNEUkFNIGJhbmsgMAogCSAqLwotCW1lbWN0bC0+bWVtY19vcjQgPSBDRkdfT1I0X1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnI0ID0gQ0ZHX0JSNF9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfT1I0X1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnI0ID0gQ09ORklHX1NZU19CUjRfUFJFTElNOworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAl1ZGVsYXkgKDIwMCk7CiAKIAkvKgpAQCAtMTcwLDExICsxNzAsMTEgQEAKIAkgKi8KIAltZW1jdGwtPm1lbWNfbWNyID0gMHg4MDAwODEwNTsJLyogU0RSQU0gYmFuayAwICovCiAJdWRlbGF5ICgxKTsKLQltZW1jdGwtPm1lbWNfbWFtciA9IChDRkdfTUFNUl84Q09MICYgfihNQU1SX1RMRkFfTVNLKSkgfCBNQU1SX1RMRkFfOFg7CisJbWVtY3RsLT5tZW1jX21hbXIgPSAoQ09ORklHX1NZU19NQU1SXzhDT0wgJiB+KE1BTVJfVExGQV9NU0spKSB8IE1BTVJfVExGQV84WDsKIAl1ZGVsYXkgKDIwMCk7CiAJbWVtY3RsLT5tZW1jX21jciA9IDB4ODAwMDgxMzA7CS8qIFNEUkFNIGJhbmsgMCAtIGV4ZWN1dGUgdHdpY2UgKi8KIAl1ZGVsYXkgKDEpOwotCW1lbWN0bC0+bWVtY19tYW1yID0gKENGR19NQU1SXzhDT0wgJiB+KE1BTVJfVExGQV9NU0spKSB8IE1BTVJfVExGQV80WDsKKwltZW1jdGwtPm1lbWNfbWFtciA9IChDT05GSUdfU1lTX01BTVJfOENPTCAmIH4oTUFNUl9UTEZBX01TSykpIHwgTUFNUl9UTEZBXzRYOwogCXVkZWxheSAoMjAwKTsKIAogCW1lbWN0bC0+bWVtY19tYW1yIHw9IE1BTVJfUFRBRTsJLyogZW5hYmxlIHJlZnJlc2ggKi8KQEAgLTE4NiwyMSArMTg2LDIxIEBACiAJICogd2l0aCB0d28gU0RSQU0gYmFua3Mgb3IgZm91ciBjeWNsZXMgZXZlcnkgMzEuMiB1cyB3aXRoIG9uZQogCSAqIGJhbmsuIEl0IHdpbGwgYmUgYWRqdXN0ZWQgYWZ0ZXIgbWVtb3J5IHNpemluZy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzRLOwkvKiAxNjogYnV0IHNob3VsZCBiZTogQ0ZHX01QVFBSXzFCS180SyAqLworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzRLOwkvKiAxNjogYnV0IHNob3VsZCBiZTogQ09ORklHX1NZU19NUFRQUl8xQktfNEsgKi8KIAogCS8qCiAJICogQ2hlY2sgQmFuayAwIE1lbW9yeSBTaXplIGZvciByZS1jb25maWd1cmF0aW9uCiAJICoKIAkgKiB0cnkgOCBjb2x1bW4gbW9kZQogCSAqLwotCXNpemU4ID0gZHJhbV9zaXplIChDRkdfTUFNUl84Q09MLCAobG9uZyAqKSBTRFJBTV9CQVNFNF9QUkVMSU0sCisJc2l6ZTggPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUl84Q09MLCAobG9uZyAqKSBTRFJBTV9CQVNFNF9QUkVMSU0sCiAJCQkgICBTRFJBTV9NQVhfU0laRSk7CiAJdWRlbGF5ICgxMDAwKTsKIAogCS8qCiAJICogdHJ5IDkgY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOSA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOUNPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTRfUFJFTElNLAorCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTRfUFJFTElNLAogCQkJICAgU0RSQU1fTUFYX1NJWkUpOwogCiAJaWYgKHNpemU4IDwgc2l6ZTkpIHsJLyogbGVhdmUgY29uZmlndXJhdGlvbiBhdCA5IGNvbHVtbnMgICAgICovCkBAIC0yMDgsNyArMjA4LDcgQEAKIC8qCWRlYnVnICgiU0RSQU0gQmFuayAwIGluIDkgY29sdW1uIG1vZGU6ICVsZCBNQlxuIiwgc2l6ZSA+PiAyMCk7CSovCiAJfSBlbHNlIHsJCS8qIGJhY2sgdG8gOCBjb2x1bW5zICAgICAgICAgICAgICAgICAgICAqLwogCQlzaXplX2IwID0gc2l6ZTg7Ci0JCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOENPTDsKKwkJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTDsKIAkJdWRlbGF5ICg1MDApOwogLyoJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOCBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsJKi8KIAl9CkBAIC0yMjEsMTQgKzIyMSwxNCBAQAogCSAqLwogCWlmICgoc2l6ZV9iMCA8IDB4MDIwMDAwMDApKSB7CiAJCS8qIHJlZHVjZSB0byAxNS42IHVzICg2Mi40IHVzIC8gcXVhZCkgKi8KLQkJbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzJCS180SzsKKwkJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfNEs7CiAJCXVkZWxheSAoMTAwMCk7CiAJfQogCiAJLyogU0RSQU0gQmFuayAwIGlzIGJpZ2dlciAtIG1hcCBmaXJzdCAgICAgICAqLwogCi0JbWVtY3RsLT5tZW1jX29yNCA9ICgoLXNpemVfYjApICYgMHhGRkZGMDAwMCkgfCBDRkdfT1JfVElNSU5HX1NEUkFNOwotCW1lbWN0bC0+bWVtY19icjQgPSAoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX29yNCA9ICgoLXNpemVfYjApICYgMHhGRkZGMDAwMCkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKKwltZW1jdGwtPm1lbWNfYnI0ID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKIAogCXVkZWxheSAoMTAwMDApOwogCkBAIC0yNDgsNyArMjQ4LDcgQEAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1hbXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLAogCQkJICAgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKQEAgLTI1OCw3ICsyNTgsNyBAQAogCiB2b2lkIGRvY19pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJdXBtY29uZmlnIChVUE1CLCAodWludCAqKSBzdGF0aWNfdGFibGUsCmRpZmYgLS1naXQgYS9ib2FyZC9ybXUvZmxhc2guYyBiL2JvYXJkL3JtdS9mbGFzaC5jCmluZGV4IDdjMjQ4YTcuLmEzYWI4NTEgMTAwNjQ0Ci0tLSBhL2JvYXJkL3JtdS9mbGFzaC5jCisrKyBiL2JvYXJkL3JtdS9mbGFzaC5jCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTQwLDEzICs0MCwxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjAgOwogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC02NCwyMSArNjQsMjEgQEAKIAkJbWVtY3RsLT5tZW1jX2JyMCwgbWVtY3RsLT5tZW1jX29yMCk7CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIDB4RkZGRjgwMDApOworCW1lbWN0bC0+bWVtY19icjAgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOwogCiAJZGVidWcgKCIjIyBCUjA6IDB4JTA4eCAgICBPUjA6IDB4JTA4eFxuIiwKIAkJbWVtY3RsLT5tZW1jX2JyMCwgbWVtY3RsLT5tZW1jX29yMCk7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCiAKLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKICNpZmRlZglDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC00MDYsNyArNDA2LDcgQEAKIAlsYXN0ICA9IHN0YXJ0OwogCWFkZHIgPSAodnVfbG9uZyAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAweDgwODA4MDgwKSAhPSAweDgwODA4MDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC01MjksNyArNTI5LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKigodnVfbG9uZyAqKWRlc3QpICYgMHg4MDgwODA4MCkgIT0gKGRhdGEgJiAweDgwODA4MDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvcm11L3JtdS5jIGIvYm9hcmQvcm11L3JtdS5jCmluZGV4IGUyMmRjNTIuLmNkMDJiOWMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3JtdS9ybXUuYworKysgYi9ib2FyZC9ybXUvcm11LmMKQEAgLTk0LDcgKzk0LDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemU5OwogCkBAIC0xMDIsMTUgKzEwMiwxNSBAQAogCQkgICBzaXplb2YgKHNkcmFtX3RhYmxlKSAvIHNpemVvZiAodWludCkpOwogCiAJLyogUmVmcmVzaCBjbG9jayBwcmVzY2FsYXIgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAogCW1lbWN0bC0+bWVtY19tYXIgPSAweDAwMDAwMDg4OwogCiAJLyogTWFwIGNvbnRyb2xsZXIgYmFua3MgMSB0byB0aGUgU0RSQU0gYmFuayAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1IxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl85Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOUNPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0xMjcsMTQgKzEyNywxNCBAQAogCSAqIDkgY29sdW1uIG1vZGUKIAkgKi8KIAotCXNpemU5ID0gZHJhbV9zaXplIChDRkdfTUFNUl85Q09MLCAobG9uZyAqKSBTRFJBTV9CQVNFX1BSRUxJTSwKKwlzaXplOSA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzlDT0wsIChsb25nICopIFNEUkFNX0JBU0VfUFJFTElNLAogCQkJICAgU0RSQU1fTUFYX1NJWkUpOwogCiAJLyoKIAkgKiBGaW5hbCBtYXBwaW5nOgogCSAqLwogCi0JbWVtY3RsLT5tZW1jX29yMSA9ICgoLXNpemU5KSAmIDB4RkZGRjAwMDApIHwgQ0ZHX09SX1RJTUlOR19TRFJBTTsKKwltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZTkpICYgMHhGRkZGMDAwMCkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKIAl1ZGVsYXkgKDEwMDApOwogCiAJcmV0dXJuIChzaXplOSk7CkBAIC0xNTMsNyArMTUzLDcgQEAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1hbXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLAogCQkJICAgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKZGlmZiAtLWdpdCBhL2JvYXJkL3JweHN1cGVyL2ZsYXNoLmMgYi9ib2FyZC9ycHhzdXBlci9mbGFzaC5jCmluZGV4IDVmNDQ0YmYuLmJlMjliNjUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3JweHN1cGVyL2ZsYXNoLmMKKysrIGIvYm9hcmQvcnB4c3VwZXIvZmxhc2guYwpAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPG1wYzh4eC5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogI2RlZmluZSBSRF9TV1AzMih4KSBpbl9sZTMyKCh2b2xhdGlsZSB1MzIqKXgpCiAKQEAgLTUzLDIxICs1MywyMSBAQAogICAgIGludCBpOwogCiAgICAgLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotICAgIGZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworICAgIGZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKICAgICB9CiAKICAgICAvKiBmb3Igbm93LCBvbmx5IHN1cHBvcnQgdGhlIDQgTUIgRmxhc2ggU0lNTSAqLwotICAgIHNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworICAgIHNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogICAgIC8qCiAgICAgICogcHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAgICAgICovCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSDBfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0gwX0JBU0UKICAgICBmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtODEsNyArODEsNyBAQAogCQkgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIC8qc2l6ZSovIChDRkdfRkxBU0gwX1NJWkUgKiAxMDI0ICogMTAyNCk7CisgICAgcmV0dXJuIC8qc2l6ZSovIChDT05GSUdfU1lTX0ZMQVNIMF9TSVpFICogMTAyNCAqIDEwMjQpOwogfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yOTIsNyArMjkyLDcgQEAKICAgICBhZGRyID0gKHZ1X2xvbmcqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKICAgICB3aGlsZSAoCShhZGRyWzBdICYgMHg4MDgwODA4MCkgIT0gMHg4MDgwODA4MCB8fAogCQkoYWRkclsxXSAmIDB4ODA4MDgwODApICE9IDB4ODA4MDgwODApIHsKLQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJICAgIHByaW50ZiAoIlRpbWVvdXRcbiIpOwogCSAgICByZXR1cm4gMTsKIAl9CkBAIC00MjMsNyArNDIzLDcgQEAKICAgICAvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogICAgIHdoaWxlICgoKigodnVfbG9uZyAqKWRlc3QpICYgMHg4MDgwODA4MCkgIT0gKGRhdGEgJiAweDgwODA4MDgwKSkgewotCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCSAgICByZXR1cm4gKDEpOwogCX0KICAgICB9CmRpZmYgLS1naXQgYS9ib2FyZC9ycHhzdXBlci9taWlfcGh5LmMgYi9ib2FyZC9ycHhzdXBlci9taWlfcGh5LmMKaW5kZXggZWY5OWFmZi4uMTJlMjNmNCAxMDA2NDQKLS0tIGEvYm9hcmQvcnB4c3VwZXIvbWlpX3BoeS5jCisrKyBiL2JvYXJkL3JweHN1cGVyL21paV9waHkuYwpAQCAtNTQsNyArNTQsNyBAQAogewogICAgIGludCBpOwogICAgIHVuc2lnbmVkIHNob3J0IHRtcCwgdmFsID0gMCwgYWRyID0gMDsKLSAgICB0X3JweF9yZWdzICpyZWdzID0gKHRfcnB4X3JlZ3MqKUNGR19SRUdTX0JBU0U7CisgICAgdF9ycHhfcmVncyAqcmVncyA9ICh0X3JweF9yZWdzKilDT05GSUdfU1lTX1JFR1NfQkFTRTsKIAogICAgIHRtcCA9IDB4NjAwMiB8IChhZHIgPDwgNykgfCAocmVnIDw8IDIpOwogICAgIHJlZ3MtPmJjc3I0ID0gMHhDMzsKQEAgLTgzLDcgKzgzLDcgQEAKIHsKICAgICBpbnQgaTsKICAgICB1bnNpZ25lZCBzaG9ydCB0bXAsIGFkciA9IDA7Ci0gICAgdF9ycHhfcmVncyAqcmVncyA9ICh0X3JweF9yZWdzKilDRkdfUkVHU19CQVNFOworICAgIHRfcnB4X3JlZ3MgKnJlZ3MgPSAodF9ycHhfcmVncyopQ09ORklHX1NZU19SRUdTX0JBU0U7CiAKICAgICB0bXAgPSAweDUwMDIgfCAoYWRyIDw8IDcpIHwgKHJlZyA8PCAyKTsKICAgICByZWdzLT5iY3NyNCA9IDB4QzM7CmRpZmYgLS1naXQgYS9ib2FyZC9ycHhzdXBlci9ycHhzdXBlci5jIGIvYm9hcmQvcnB4c3VwZXIvcnB4c3VwZXIuYwppbmRleCBmNjMzYzVjLi5hYTU5ODAzIDEwMDY0NAotLS0gYS9ib2FyZC9ycHhzdXBlci9ycHhzdXBlci5jCisrKyBiL2JvYXJkL3JweHN1cGVyL3JweHN1cGVyLmMKQEAgLTE5MywxMSArMTkzLDExIEBACiAqLwogaW50IGJvYXJkX2Vhcmx5X2luaXRfZiAodm9pZCkKIHsKLSAgICB2b2xhdGlsZSB0X3JweF9yZWdzICpyZWdzID0gKHRfcnB4X3JlZ3MqKUNGR19SRUdTX0JBU0U7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICB2b2xhdGlsZSB0X3JweF9yZWdzICpyZWdzID0gKHRfcnB4X3JlZ3MqKUNPTkZJR19TWVNfUkVHU19CQVNFOworICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgIHZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7Ci0gICAgbWVtY3RsLT5tZW1jX2JyNCA9IENGR19CUjRfUFJFTElNOwotICAgIG1lbWN0bC0+bWVtY19vcjQgPSBDRkdfT1I0X1BSRUxJTTsKKyAgICBtZW1jdGwtPm1lbWNfYnI0ID0gQ09ORklHX1NZU19CUjRfUFJFTElNOworICAgIG1lbWN0bC0+bWVtY19vcjQgPSBDT05GSUdfU1lTX09SNF9QUkVMSU07CiAgICAgcmVncy0+YmNzcjEgPSAweDcwOyAvKiB0byBlbmFibGUgdGVybWluYWwgbm8gU01DMSAqLwogICAgIHJlZ3MtPmJjc3IyID0gMHgyMDsJLyogbXV0IGJlIHdyaXR0ZW4gdG8gZW5hYmxlIHdyaXRpbmcgRkxBU0ggKi8KICAgICByZXR1cm4gMDsKQEAgLTIwNiw3ICsyMDYsNyBAQAogdm9pZAogcmVzZXRfcGh5KHZvaWQpCiB7Ci0gICAgdm9sYXRpbGUgdF9ycHhfcmVncyAqcmVncyA9ICh0X3JweF9yZWdzKilDRkdfUkVHU19CQVNFOworICAgIHZvbGF0aWxlIHRfcnB4X3JlZ3MgKnJlZ3MgPSAodF9ycHhfcmVncyopQ09ORklHX1NZU19SRUdTX0JBU0U7CiAgICAgcmVncy0+YmNzcjQgPSAweEMzOwogfQogCkBAIC0yMTYsNyArMjE2LDcgQEAKIAogaW50IGNoZWNrYm9hcmQodm9pZCkKIHsKLSAgICB2b2xhdGlsZSB0X3JweF9yZWdzICpyZWdzID0gKHRfcnB4X3JlZ3MqKUNGR19SRUdTX0JBU0U7CisgICAgdm9sYXRpbGUgdF9ycHhfcmVncyAqcmVncyA9ICh0X3JweF9yZWdzKilDT05GSUdfU1lTX1JFR1NfQkFTRTsKICAgICBwcmludGYgKCJCb2FyZDogRW1iZWRkZWQgUGxhbmV0IFJQWCBTdXBlciwgUmV2aXNpb24gJWRcbiIsCiAJcmVncy0+YmNzcjAgPj4gNCk7CiAKQEAgLTIyNywxNSArMjI3LDE1IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKICAgICB2b2xhdGlsZSB1Y2hhciBjID0gMCwgKnJhbWFkZHI7CiAgICAgdWxvbmcgcHNkbXIsIGxzZG1yLCBiY3I7CiAgICAgbG9uZyBzaXplID0gMDsKICAgICBpbnQgaTsKIAotICAgIHBzZG1yID0gQ0ZHX1BTRE1SOwotICAgIGxzZG1yID0gQ0ZHX0xTRE1SOworICAgIHBzZG1yID0gQ09ORklHX1NZU19QU0RNUjsKKyAgICBsc2RtciA9IENPTkZJR19TWVNfTFNETVI7CiAKICAgICAvKgogICAgICAqIFF1b3RlIGZyb20gODI2MCBVTSAoMTAuNC4yIFNEUkFNIFBvd2VyLU9uIEluaXRpYWxpemF0aW9uLCAxMC0zNSk6CkBAIC0yNTQsMTcgKzI1NCwxNyBAQAogICAgICAqICBhY2Nlc3NpbmcgdGhlIFNEUkFNIHdpdGggYSBzaW5nbGUtYnl0ZSB0cmFuc2FjdGlvbi4iCiAgICAgICoKICAgICAgKiBUaGUgYXBwcm9wcmlhdGUgQlJ4L09SeCByZWdpc3RlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0IHdoZW4gd2UKLSAgICAgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDRkdfU0RSQU1fQkFTRS4KKyAgICAgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDT05GSUdfU1lTX1NEUkFNX0JBU0UuCiAgICAgICovCiAKLSAgICBzaXplID0gQ0ZHX1NEUkFNMF9TSVpFOworICAgIHNpemUgPSBDT05GSUdfU1lTX1NEUkFNMF9TSVpFOwogICAgIGJjciA9IGltbWFwLT5pbV9zaXVfY29uZi5zY19iY3I7CiAgICAgaW1tYXAtPmltX3NpdV9jb25mLnNjX2JjciA9IChiY3IgJiB+QkNSX0VCTSk7CiAKLSAgICBtZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisgICAgbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAotICAgIHJhbWFkZHIgPSAodWNoYXIgKikoQ0ZHX1NEUkFNMF9CQVNFKTsKLSAgICBtZW1jdGwtPm1lbWNfcHNydCA9IENGR19QU1JUOworICAgIHJhbWFkZHIgPSAodWNoYXIgKikoQ09ORklHX1NZU19TRFJBTTBfQkFTRSk7CisgICAgbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CiAKICAgICBtZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IFBTRE1SX09QX1BSRUE7CiAgICAgKnJhbWFkZHIgPSBjOwpAQCAtMjgxLDEwICsyODEsMTAgQEAKIAogICAgIGltbWFwLT5pbV9zaXVfY29uZi5zY19iY3IgPSBiY3I7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKLS8qICAgIHNpemUgKz0gQ0ZHX1NEUkFNMV9TSVpFOyAqLwotICAgIHJhbWFkZHIgPSAodWNoYXIgKikoQ0ZHX1NEUkFNMV9CQVNFKTsKLSAgICBtZW1jdGwtPm1lbWNfbHNydCA9IENGR19MU1JUOworI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKy8qICAgIHNpemUgKz0gQ09ORklHX1NZU19TRFJBTTFfU0laRTsgKi8KKyAgICByYW1hZGRyID0gKHVjaGFyICopKENPTkZJR19TWVNfU0RSQU0xX0JBU0UpOworICAgIG1lbWN0bC0+bWVtY19sc3J0ID0gQ09ORklHX1NZU19MU1JUOwogCiAgICAgbWVtY3RsLT5tZW1jX2xzZG1yID0gbHNkbXIgfCBQU0RNUl9PUF9QUkVBOwogICAgICpyYW1hZGRyID0gYzsKZGlmZiAtLWdpdCBhL2JvYXJkL3JzZHByb3RvL2ZsYXNoLmMgYi9ib2FyZC9yc2Rwcm90by9mbGFzaC5jCmluZGV4IDMxMmI0MDAuLmU5OWMyYTYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3JzZHByb3RvL2ZsYXNoLmMKKysrIGIvYm9hcmQvcnNkcHJvdG8vZmxhc2guYwpAQCAtNDEsNyArNDEsNyBAQAogICovCiAjdW5kZWYgV0lUSF9BVVRPU0VMRUNUCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAjaWYgMQogI2RlZmluZSBEKHgpCkBAIC05NCw3ICs5NCw3IEBACiAjZW5kaWYKIAogICAgIC8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLSAgICBmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKyAgICBmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogICAgIH0KIApAQCAtMTIwLDE0ICsxMjAsMTQgQEAKIAkgKiBwcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gUEhZU19GTEFTSAorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IFBIWVNfRkxBU0gKIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzFdKTsKICNlbmRpZgogCkBAIC0yNTksNyArMjU5LDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJZG8KIAl7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpCisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKQogCQl7CS8qIHdyaXRlIHJlc2V0IGNvbW1hbmQsIGNvbW1hbmQgYWRkcmVzcyBpcyB1bmltcG9ydGFudCAqLwogCQkJLyogdGhpcyBjb21tYW5kIHR1cm5zIHRoZSBmbGFzaCBiYWNrIHRvIHJlYWQgbW9kZSAgICAgKi8KIAkJCWZfYWRkciA9CkBAIC0zODcsNyArMzg3LDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJZG8KIAl7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpCisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKQogCQl7CiAJCQkvKiB3cml0ZSByZXNldCBjb21tYW5kLCBjb21tYW5kIGFkZHJlc3MgaXMgdW5pbXBvcnRhbnQgKi8KIAkJCS8qIHRoaXMgY29tbWFuZCB0dXJucyB0aGUgZmxhc2ggYmFjayB0byByZWFkIG1vZGUgICAgICovCmRpZmYgLS1naXQgYS9ib2FyZC9yc2Rwcm90by9yc2Rwcm90by5jIGIvYm9hcmQvcnNkcHJvdG8vcnNkcHJvdG8uYwppbmRleCBlZWVjM2I0Li4yNmVkYjJlIDEwMDY0NAotLS0gYS9ib2FyZC9yc2Rwcm90by9yc2Rwcm90by5jCisrKyBiL2JvYXJkL3JzZHByb3RvL3JzZHByb3RvLmMKQEAgLTI1Myw3ICsyNTMsNyBAQAogCXB1dHMgKCJCb2FyZDogUm9oZGUgJiBTY2h3YXJ6IDgyNjAgUHJvdG9jb2wgQm9hcmRcbiIpOwogCiAJLyogaW5pdGlhbGlzZSBpMmMgKi8KLQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKIAlyZWFkX1JTNUMzNzJfdGltZSAoJnRpbWVkYXRlKTsKIAlwcmludGYgKCIgIFRpbWU6ICAlMDJkOiUwMmQ6JTAyZFxuIiwKQEAgLTI4NCw3ICsyODQsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAjaWZkZWYgSU5JVF9MT0NBTF9CVVNfU0RSQU0KQEAgLTMxNyw3ICszMTcsNyBAQAogCQkgKgogCQkgKiBUaGUgYXBwcm9wcmlhdGUgQlJ4L09SeCByZWdpc3RlcnMgaGF2ZSBhbHJlYWR5CiAJCSAqIGJlZW4gc2V0IHdoZW4gd2UgZ2V0IGhlcmUgKHNlZSBjcHVfaW5pdF9mKS4gVGhlCi0JCSAqIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDRkdfU0RSQU1fQkFTRS4KKwkJICogU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENPTkZJR19TWVNfU0RSQU1fQkFTRS4KIAkJICovCiAJCW1lbWN0bC0+bWVtY19tcHRwciA9IDB4MjAwMDsKIAkJbWVtY3RsLT5tZW1jX21hciA9IDB4MDIwMDsKQEAgLTMzMCw3ICszMzAsNyBAQAogCQltZW1jdGwtPm1lbWNfbHNydCA9IDB4MGI7CiAJCW1lbWN0bC0+bWVtY19sdXJ0ID0gMHgwMDsKIAkJcmFtYWRkciA9ICh1Y2hhciAqKSBQSFlTX1NEUkFNX0xPQ0FMOwotCQlzZG1yID0gQ0ZHX0xTRE1SICYgfihQU0RNUl9PUF9NU0sgfCBQU0RNUl9SRkVOIHwgUFNETVJfUEJJKTsKKwkJc2RtciA9IENPTkZJR19TWVNfTFNETVIgJiB+KFBTRE1SX09QX01TSyB8IFBTRE1SX1JGRU4gfCBQU0RNUl9QQkkpOwogCQltZW1jdGwtPm1lbWNfbHNkbXIgPSBzZG1yIHwgUFNETVJfT1BfUFJFQTsKIAkJKnJhbWFkZHIgPSAweGZmOwogCQlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CkBAIC0zMzksMTMgKzMzOSwxMyBAQAogCQl9CiAJCW1lbWN0bC0+bWVtY19sc2RtciA9IHNkbXIgfCBQU0RNUl9PUF9NUlc7CiAJCSpyYW1hZGRyID0gMHhmZjsKLQkJbWVtY3RsLT5tZW1jX2xzZG1yID0gQ0ZHX0xTRE1SIHwgUFNETVJfT1BfTk9STTsKKwkJbWVtY3RsLT5tZW1jX2xzZG1yID0gQ09ORklHX1NZU19MU0RNUiB8IFBTRE1SX09QX05PUk07CiAjZW5kaWYKIAkJLyogaW5pdGlhbGlzZSA2MHggYnVzIHJhbSAqLwogCQltZW1jdGwtPm1lbWNfcHNydCA9IDB4MGI7CiAJCW1lbWN0bC0+bWVtY19wdXJ0ID0gMHgwODsKIAkJcmFtYWRkcjMyID0gKHVsb25nICopIFBIWVNfU0RSQU1fNjBYOwotCQlzZG1yID0gQ0ZHX1BTRE1SICYgfihQU0RNUl9PUF9NU0sgfCBQU0RNUl9SRkVOIHwgUFNETVJfUEJJKTsKKwkJc2RtciA9IENPTkZJR19TWVNfUFNETVIgJiB+KFBTRE1SX09QX01TSyB8IFBTRE1SX1JGRU4gfCBQU0RNUl9QQkkpOwogCQltZW1jdGwtPm1lbWNfcHNkbXIgPSBzZG1yIHwgUFNETVJfT1BfUFJFQTsKIAkJcmFtYWRkcjMyWzBdID0gMHgwMGZmMDBmZjsKIAkJcmFtYWRkcjMyWzFdID0gMHgwMGZmMDBmZjsKZGlmZiAtLWdpdCBhL2JvYXJkL3JzazcyMDMvcnNrNzIwMy5jIGIvYm9hcmQvcnNrNzIwMy9yc2s3MjAzLmMKaW5kZXggMmQ3NDM1OS4uMmNiZDQ1ZSAxMDA2NDQKLS0tIGEvYm9hcmQvcnNrNzIwMy9yc2s3MjAzLmMKKysrIGIvYm9hcmQvcnNrNzIwMy9yc2s3MjAzLmMKQEAgLTM5LDkgKzM5LDkgQEAKIHsKIAlERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDRkdfU0RSQU1fQkFTRTsKLQlnZC0+YmQtPmJpX21lbXNpemUgPSBDRkdfU0RSQU1fU0laRTsKLQlwcmludGYoIkRSQU06ICAlZE1CXG4iLCBDRkdfU0RSQU1fU0laRSAvICgxMDI0ICogMTAyNCkpOworCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CisJZ2QtPmJkLT5iaV9tZW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFOworCXByaW50ZigiRFJBTTogICVkTUJcbiIsIENPTkZJR19TWVNfU0RSQU1fU0laRSAvICgxMDI0ICogMTAyNCkpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9ib2FyZC9zYWNzbmcvY2xraW5pdC5jIGIvYm9hcmQvc2Fjc25nL2Nsa2luaXQuYwppbmRleCBlZGI3NzVkLi40YTdmMzYyIDEwMDY0NAotLS0gYS9ib2FyZC9zYWNzbmcvY2xraW5pdC5jCisrKyBiL2JvYXJkL3NhY3NuZy9jbGtpbml0LmMKQEAgLTM3LDcgKzM3LDcgQEAKIAogdm9pZCBEYXFfQlJHX1Jlc2V0KHVpbnQgYnJnKQogewotICAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgICB2b2xhdGlsZSB1aW50ICpicmdfcHRyOwogCiAgICAgIGJyZ19wdHIgPSAodWludCAqKSZpbW1yLT5pbV9icmdjMTsKQEAgLTUzLDcgKzUzLDcgQEAKIAogdm9pZCBEYXFfQlJHX0Rpc2FibGUodWludCBicmcpCiB7Ci0gICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgIHZvbGF0aWxlIHVpbnQgKmJyZ19wdHI7CiAKICAgICAgYnJnX3B0ciA9ICh1aW50ICopJmltbXItPmltX2JyZ2MxOwpAQCAtNjgsNyArNjgsNyBAQAogCiB2b2lkIERhcV9CUkdfRW5hYmxlKHVpbnQgYnJnKQogewotICAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgICB2b2xhdGlsZSB1aW50ICpicmdfcHRyOwogCiAgICAgIGJyZ19wdHIgPSAodWludCAqKSZpbW1yLT5pbV9icmdjMTsKQEAgLTgyLDcgKzgyLDcgQEAKIAogdWludCBEYXFfQlJHX0dldF9EaXYxNih1aW50IGJyZykKIHsKLSAgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICAgdWludCAqYnJnX3B0cjsKIAogICAgICBicmdfcHRyID0gKHVpbnQgKikmaW1tci0+aW1fYnJnYzE7CkBAIC0xMDQsNyArMTA0LDcgQEAKIAogdm9pZCBEYXFfQlJHX1NldF9EaXYxNih1aW50IGJyZywgdWludCBkaXYxNikKIHsKLSAgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICAgdWludCAqYnJnX3B0cjsKIAogICAgICBicmdfcHRyID0gKHVpbnQgKikmaW1tci0+aW1fYnJnYzE7CkBAIC0xMjYsNyArMTI2LDcgQEAKIAogdWludCBEYXFfQlJHX0dldF9Db3VudCh1aW50IGJyZykKIHsKLSAgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICAgdWludCAqYnJnX3B0cjsKICAgICAgdWludCBicmdfY250OwogCkBAIC0xNTMsNyArMTUzLDcgQEAKIAogdm9pZCBEYXFfQlJHX1NldF9Db3VudCh1aW50IGJyZywgdWludCBicmdfY250KQogewotICAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgICB1aW50ICpicmdfcHRyOwogCiAgICAgIGJyZ19wdHIgPSAodWludCAqKSZpbW1yLT5pbV9icmdjMTsKQEAgLTE4Myw3ICsxODMsNyBAQAogCiB1aW50IERhcV9CUkdfR2V0X0V4dENsayh1aW50IGJyZykKIHsKLSAgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICAgdWludCAqYnJnX3B0cjsKIAogICAgICBicmdfcHRyID0gKHVpbnQgKikmaW1tci0+aW1fYnJnYzE7CkBAIC0yNDMsNyArMjQzLDcgQEAKIAogdm9pZCBEYXFfQlJHX1NldF9FeHRDbGsodWludCBicmcsIHVpbnQgZXh0YykKIHsKLSAgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICAgdWludCAqYnJnX3B0cjsKIAogICAgICBicmdfcHRyID0gKHVpbnQgKikmaW1tci0+aW1fYnJnYzE7CkBAIC0yNTksNyArMjU5LDcgQEAKIAogdWludCBEYXFfQlJHX1JhdGUodWludCBicmcpCiB7Ci0gICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgIHVpbnQgKmJyZ19wdHI7CiAgICAgIHVpbnQgYnJnX2NudDsKICAgICAgdWludCBicmdfZnJlcSA9IDA7CkBAIC0yOTYsNyArMjk2LDcgQEAKIAogdm9pZCBEYXFfSW5pdF9DbG9ja3MoaW50IHNhbXBsZV9yYXRlLCBpbnQgc2FtcGxlXzY0eCkKIHsKLSAgICB2b2xhdGlsZSBpb3BvcnRfdCAqaW9wYSA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ0ZHX0lNTVIsIDAgLyogcG9ydCBBICovKTsKKyAgICB2b2xhdGlsZSBpb3BvcnRfdCAqaW9wYSA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SLCAwIC8qIHBvcnQgQSAqLyk7CiAgICAgdWludCBtY2xrX2Rpdmlzb3I7IC8qIE1DTEsgZGl2aXNvciAqLwogICAgIGludCAgZmxhZzsgICAgICAgICAvKiBJbnRlcnJ1cHQgc3RhdGUgKi8KIApAQCAtMzc4LDcgKzM3OCw3IEBACiAKIHsKICNpZmRlZiBUSUdIVEVOX1VQX0JSR19USU1JTkcKLSAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgcmVnaXN0ZXIgdWludCBtY2xrX2JyZzsgICAgICAgLyogTUNMSyAgQlJHIHZhbHVlICovCiAgICAgcmVnaXN0ZXIgdWludCBzY2xrX2JyZzsgICAgICAgLyogU0NMSyAgQlJHIHZhbHVlICovCiAgICAgcmVnaXN0ZXIgdWludCBscmNsa19icmc7ICAgICAgLyogTFJDTEsgQlJHIHZhbHVlICovCkBAIC02NjMsNyArNjYzLDcgQEAKIAogewogI2lmZGVmIFRJR0hURU5fVVBfQlJHX1RJTUlORwotICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAogICAgIHJlZ2lzdGVyIHVpbnQgbWNsa19icmc7ICAgICAgIC8qIE1DTEsgIEJSRyB2YWx1ZSAqLwogICAgIHJlZ2lzdGVyIHVpbnQgc2Nsa19icmc7ICAgICAgIC8qIFNDTEsgIEJSRyB2YWx1ZSAqLwpAQCAtOTE0LDcgKzkxNCw3IEBACiB2b2lkIERhcV9EaXNwbGF5X0Nsb2Nrcyh2b2lkKQogCiB7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgIHVpbnQgbWNsa19kaXZpc29yOyAvKiBEZXRlY3RlZCBNQ0xLIGRpdmlzb3IgKi8KICAgICB1aW50IHNjbGtfZGl2aXNvcjsgLyogRGV0ZWN0ZWQgU0NMSyBkaXZpc29yICovCiAKZGlmZiAtLWdpdCBhL2JvYXJkL3NhY3NuZy9mbGFzaC5jIGIvYm9hcmQvc2Fjc25nL2ZsYXNoLmMKaW5kZXggOGZlY2Y5NS4uOGIzMGY1MCAxMDA2NDQKLS0tIGEvYm9hcmQvc2Fjc25nL2ZsYXNoLmMKKysrIGIvYm9hcmQvc2Fjc25nL2ZsYXNoLmMKQEAgLTI4LDE0ICsyOCwxNCBAQAogI3VuZGVmICBERUJVRwogCiAjaWZuZGVmCUNPTkZJR19FTlZfQUREUgotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjZW5kaWYKICNpZm5kZWYgQ09ORklHX0VOVl9TSVpFCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQogI2VuZGlmCiAKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtNTIsMjQgKzUyLDI0IEBACiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X3Nob3J0ICopQ0ZHX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9zaG9ydCAqKUNPTkZJR19TWVNfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCWlmIChmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pIHsKIAkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rIDAgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwKIAkJCXNpemVfYjAsIHNpemVfYjA8PDIwKTsKIAl9CiAKLQlzaXplX2IxID0gZmxhc2hfZ2V0X3NpemUoKHZ1X3Nob3J0ICopQ0ZHX0ZMQVNIMV9CQVNFLCAmZmxhc2hfaW5mb1sxXSk7CisJc2l6ZV9iMSA9IGZsYXNoX2dldF9zaXplKCh2dV9zaG9ydCAqKUNPTkZJR19TWVNfRkxBU0gxX0JBU0UsICZmbGFzaF9pbmZvWzFdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTgyLDExICs4MiwxMSBAQAogI2VuZGlmCiAKIAlpZiAoc2l6ZV9iMSkgewotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJCSAgICAgICZmbGFzaF9pbmZvWzFdKTsKICNlbmRpZgogCkBAIC0yNDcsNyArMjQ3LDcgQEAKIAl9IGVsc2UgewogI2lmZGVmIERFQlVHCiAJCXByaW50ZigiVW5rbm93biBmbGFzaCB0eXBlIDB4JTA0WFxuIiwgdmFsdWUpOwotCQlpbmZvLT5zaXplID0gQ0ZHX0ZMQVNIX1NJWkU7CisJCWluZm8tPnNpemUgPSBDT05GSUdfU1lTX0ZMQVNIX1NJWkU7CiAjZWxzZQogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCXJldHVybiAoMCk7CQkJLyogPT4gbm8gb3IgdW5rbm93biBmbGFzaCAqLwpAQCAtMzc0LDcgKzM3NCw3IEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gKHZ1X3Nob3J0KikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJd2hpbGUgKChhZGRyWzBdICYgMHgwMDgwKSAhPSAweDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJYWRkclswXSA9IDB4RjBGMDsJLyogcmVzZXQgYmFuayAqLwogCQkJX19hc21fXyBfX3ZvbGF0aWxlX18oIiBzeW5jXG4gIik7CkBAIC01MDksNyArNTA5LDcgQEAKIAkJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCQlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJCXdoaWxlICgqKHZ1X3Nob3J0ICopZGVzdCAhPSAodXNob3J0KWRhdGEpIHsKLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvc2Fjc25nL3NhY3NuZy5jIGIvYm9hcmQvc2Fjc25nL3NhY3NuZy5jCmluZGV4IGMwMGYxNGUuLjI1MTM5MzcgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NhY3NuZy9zYWNzbmcuYworKysgYi9ib2FyZC9zYWNzbmcvc2Fjc25nLmMKQEAgLTE2MSwxNiArMTYxLDE2IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKICAgICB2b2xhdGlsZSB1Y2hhciBjID0gMDsKLSAgICB2b2xhdGlsZSB1Y2hhciAqcmFtYWRkciA9ICh1Y2hhciAqKShDRkdfU0RSQU1fQkFTRSArIDB4OCk7Ci0gICAgdWludCAgcHNkbXIgPSBDRkdfUFNETVI7CisgICAgdm9sYXRpbGUgdWNoYXIgKnJhbWFkZHIgPSAodWNoYXIgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg4KTsKKyAgICB1aW50ICBwc2RtciA9IENPTkZJR19TWVNfUFNETVI7CiAgICAgaW50ICAgaTsKICAgICB1aW50ICAgcHNydCA9IDE0OwkJCQkJLyogZm9yIG5vIFNQRCAqLwogICAgIHVpbnQgICBjaGlwc2VsZWN0cyA9IDE7CQkJCS8qIGZvciBubyBTUEQgKi8KLSAgICB1aW50ICAgc2RyYW1fc2l6ZSA9IENGR19TRFJBTTBfU0laRSAqIDEwMjQgKiAxMDI0OwkvKiBmb3Igbm8gU1BEICovCi0gICAgdWludCAgIG9yID0gQ0ZHX09SMl9QUkVMSU07CQkJCS8qIGZvciBubyBTUEQgKi8KKyAgICB1aW50ICAgc2RyYW1fc2l6ZSA9IENPTkZJR19TWVNfU0RSQU0wX1NJWkUgKiAxMDI0ICogMTAyNDsJLyogZm9yIG5vIFNQRCAqLworICAgIHVpbnQgICBvciA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsJCQkJLyogZm9yIG5vIFNQRCAqLwogI2lmZGVmIFNEUkFNX1NQRF9BRERSCiAgICAgdWludCAgIGRhdGFfd2lkdGg7CiAgICAgdWludCAgIHJvd3M7CkBAIC0zODMsMTAgKzM4MywxMCBAQAogICAgICAqICBhY2Nlc3NpbmcgdGhlIFNEUkFNIHdpdGggYSBzaW5nbGUtYnl0ZSB0cmFuc2FjdGlvbi4iCiAgICAgICoKICAgICAgKiBUaGUgYXBwcm9wcmlhdGUgQlJ4L09SeCByZWdpc3RlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0IHdoZW4gd2UKLSAgICAgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDRkdfU0RSQU1fQkFTRS4KKyAgICAgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDT05GSUdfU1lTX1NEUkFNX0JBU0UuCiAgICAgICovCiAKLSAgICBtZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisgICAgbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKICAgICBtZW1jdGwtPm1lbWNfcHNydCAgPSBwc3J0OwogCiAgICAgbWVtY3RsLT5tZW1jX3BzZG1yID0gcHNkbXIgfCBQU0RNUl9PUF9QUkVBOwpAQCAtNDA5LDcgKzQwOSw3IEBACiAgICAgaWYoY2hpcHNlbGVjdHMgPiAxKSB7CiAJcmFtYWRkciArPSBzZHJhbV9zaXplOwogCi0JbWVtY3RsLT5tZW1jX2JyMyA9IENGR19CUjNfUFJFTElNICsgc2RyYW1fc2l6ZTsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNICsgc2RyYW1fc2l6ZTsKIAltZW1jdGwtPm1lbWNfb3IzID0gb3I7CiAKIAltZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IFBTRE1SX09QX1BSRUE7CkBAIC00NDYsOCArNDQ2LDggQEAKICAgICAvKgogICAgICAqIE5vdGU6IGlvcCBpcyB1c2VkIGJ5IHRoZSBJMkMgbWFjcm9zLCBhbmQgaW9wYSBieSB0aGUgQURDL0RBQyBpbml0aWFsaXphdGlvbi4KICAgICAgKi8KLSAgICB2b2xhdGlsZSBpb3BvcnRfdCAqaW9wYSA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ0ZHX0lNTVIsIDAgLyogcG9ydCBBICovKTsKLSAgICB2b2xhdGlsZSBpb3BvcnRfdCAqaW9wICA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ0ZHX0lNTVIsIEkyQ19QT1JUKTsKKyAgICB2b2xhdGlsZSBpb3BvcnRfdCAqaW9wYSA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SLCAwIC8qIHBvcnQgQSAqLyk7CisgICAgdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCAgPSBpb3BvcnRfYWRkcigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiwgSTJDX1BPUlQpOwogCiAgICAgaW50ICByZWc7ICAgICAgICAgIC8qIEkyQyByZWdpc3RlciB2YWx1ZSAqLwogICAgIGNoYXIgKmVwOyAgICAgICAgICAvKiBFbnZpcm9ubWVudCBwb2ludGVyICovCkBAIC04NTQsMTQgKzg1NCwxNCBAQAogCiB2b2lkIHNwaV9jc19hY3RpdmF0ZShzdHJ1Y3Qgc3BpX3NsYXZlICpzbGF2ZSkKIHsKLSAgICB2b2xhdGlsZSBpb3BvcnRfdCAqaW9wZCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ0ZHX0lNTVIsIDMgLyogcG9ydCBEICovKTsKKyAgICB2b2xhdGlsZSBpb3BvcnRfdCAqaW9wZCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SLCAzIC8qIHBvcnQgRCAqLyk7CiAKICAgICBpb3BkLT5wZGF0ICY9IH5jc19tYXNrW3NsYXZlLT5jc107CiB9CiAKIHZvaWQgc3BpX2NzX2RlYWN0aXZhdGUoc3RydWN0IHNwaV9zbGF2ZSAqc2xhdmUpCiB7Ci0gICAgdm9sYXRpbGUgaW9wb3J0X3QgKmlvcGQgPSBpb3BvcnRfYWRkcigoaW1tYXBfdCAqKUNGR19JTU1SLCAzIC8qIHBvcnQgRCAqLyk7CisgICAgdm9sYXRpbGUgaW9wb3J0X3QgKmlvcGQgPSBpb3BvcnRfYWRkcigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiwgMyAvKiBwb3J0IEQgKi8pOwogCiAgICAgaW9wZC0+cGRhdCB8PSBjc19tYXNrW3NsYXZlLT5jc107CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9zYW1zdW5nL3NtZGs2NDAwL3NtZGs2NDAwLmMgYi9ib2FyZC9zYW1zdW5nL3NtZGs2NDAwL3NtZGs2NDAwLmMKaW5kZXggNzdmZDJjOC4uYmQyZTQ1YSAxMDA2NDQKLS0tIGEvYm9hcmQvc2Ftc3VuZy9zbWRrNjQwMC9zbWRrNjQwMC5jCisrKyBiL2JvYXJkL3NhbXN1bmcvc21kazY0MDAvc21kazY0MDAuYwpAQCAtMTA3LDEyICsxMDcsMTIgQEAKIH0KICNlbmRpZgogCi0jaWYgZGVmaW5lZChDT05GSUdfQ01EX05BTkQpICYmIGRlZmluZWQoQ0ZHX05BTkRfTEVHQUNZKQorI2lmIGRlZmluZWQoQ09ORklHX0NNRF9OQU5EKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTkFORF9MRUdBQ1kpCiAjaW5jbHVkZSA8bGludXgvbXRkL25hbmQuaD4KLWV4dGVybiBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ0ZHX01BWF9OQU5EX0RFVklDRV07CitleHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFXTsKIHZvaWQgbmFuZF9pbml0KHZvaWQpCiB7Ci0JbmFuZF9wcm9iZShDRkdfTkFORF9CQVNFKTsKKwluYW5kX3Byb2JlKENPTkZJR19TWVNfTkFORF9CQVNFKTsKIAlpZiAobmFuZF9kZXZfZGVzY1swXS5DaGlwSUQgIT0gTkFORF9DaGlwSURfVU5LTk9XTikKIAkJcHJpbnRfc2l6ZShuYW5kX2Rldl9kZXNjWzBdLnRvdGxlbiwgIlxuIik7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9zYW5kYnVyc3QvY29tbW9uL2ZsYXNoLmMgYi9ib2FyZC9zYW5kYnVyc3QvY29tbW9uL2ZsYXNoLmMKaW5kZXggNzYyZmI3My4uZGQ3MTJlMyAxMDA2NDQKLS0tIGEvYm9hcmQvc2FuZGJ1cnN0L2NvbW1vbi9mbGFzaC5jCisrKyBiL2JvYXJkL3NhbmRidXJzdC9jb21tb24vZmxhc2guYwpAQCAtNDEsOSArNDEsOSBAQAogI2VuZGlmIC8qIERFQlVHICovCiAKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGZsYXNoX2FkZHJfdGFibGVbOF1bQ0ZHX01BWF9GTEFTSF9CQU5LU10gPSB7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBmbGFzaF9hZGRyX3RhYmxlWzhdW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXSA9IHsKIAl7MHhmZmY4MDAwMH0JLyogQm9vdCBGbGFzaCAqLwogfTsKIApAQCAtNjUsNyArNjUsNyBAQAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgdG90YWxfYiA9IDA7Ci0JdW5zaWduZWQgbG9uZyBzaXplX2JbQ0ZHX01BWF9GTEFTSF9CQU5LU107CisJdW5zaWduZWQgbG9uZyBzaXplX2JbQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCXVuc2lnbmVkIHNob3J0IGluZGV4ID0gMDsKIAlpbnQgaTsKIApAQCAtNzQsNyArNzQsNyBAQAogCURFQlVHRigiRkxBU0g6IEluZGV4OiAlZFxuIiwgaW5kZXgpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gLTE7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IDA7CkBAIC0yODQsNyArMjg0LDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJbGFzdCAgPSBzdGFydDsKIAl3aGlsZSAoKGFkZHJbMF0gJiAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9IChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0KQEAgLTUwMiw3ICs1MDIsNyBAQAogCQl3aGlsZSAoKGRlc3QyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KIAkJICAgICAgIChkYXRhMltpXSAmIChGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApKSB7CiAKLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gKDEpOwogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9zYW5kYnVyc3QvY29tbW9uL3BwYzQ0MGd4X2kyYy5jIGIvYm9hcmQvc2FuZGJ1cnN0L2NvbW1vbi9wcGM0NDBneF9pMmMuYwppbmRleCAxZTNkZmZiLi45YWY2YjhkIDEwMDY0NAotLS0gYS9ib2FyZC9zYW5kYnVyc3QvY29tbW9uL3BwYzQ0MGd4X2kyYy5jCisrKyBiL2JvYXJkL3NhbmRidXJzdC9jb21tb24vcHBjNDQwZ3hfaTJjLmMKQEAgLTQzLDggKzQzLDggQEAKICNkZWZpbmUgSUlDX05PS19UT1VUCTYJCS8qIFRyYW5zZmVyIHRpbWVvdXQgKi8KIAogI2RlZmluZSBJSUNfVElNRU9VVCAxCQkJLyogMSBzZWNvbmQgKi8KLSNpZiBkZWZpbmVkKENGR19JMkNfTk9QUk9CRVMpCi1zdGF0aWMgdWNoYXIgaTJjX25vX3Byb2Jlc1tdID0gQ0ZHX0kyQ19OT1BST0JFUzsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX05PUFJPQkVTKQorc3RhdGljIHVjaGFyIGkyY19ub19wcm9iZXNbXSA9IENPTkZJR19TWVNfSTJDX05PUFJPQkVTOwogI2VuZGlmCiAKIHN0YXRpYyB2b2lkIF9pMmNfYnVzMV9yZXNldCAodm9pZCkKQEAgLTEwNSw3ICsxMDUsNyBAQAogCXVuc2lnbmVkIGxvbmcgZnJlcU9QQjsKIAlpbnQgdmFsLCBkaXZpc29yOwogCi0jaWZkZWYgQ0ZHX0kyQ19JTklUX0JPQVJECisjaWZkZWYgQ09ORklHX1NZU19JMkNfSU5JVF9CT0FSRAogCS8qIGNhbGwgYm9hcmQgc3BlY2lmaWMgaTJjIGJ1cyByZXNldCByb3V0aW5lIGJlZm9yZSBhY2Nlc3NpbmcgdGhlICAgKi8KIAkvKiBlbnZpcm9ubWVudCwgd2hpY2ggbWlnaHQgYmUgaW4gYSBjaGlwIG9uIHRoYXQgYnVzLiBGb3IgZGV0YWlscyAgICovCiAJLyogYWJvdXQgdGhpcyBwcm9ibGVtIHNlZSBkb2MvSTJDX0VkZ2VfQ29uZGl0aW9ucy4gICAgICAgICAgICAgICAgICAqLwpAQCAtMzg0LDcgKzM4NCw3IEBACiAJfQogCiAKLSNpZmRlZiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCisjaWZkZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKIAkvKgogCSAqIEVFUFJPTSBjaGlwcyB0aGF0IGltcGxlbWVudCAiYWRkcmVzcyBvdmVyZmxvdyIgYXJlIG9uZXMKIAkgKiBsaWtlIENhdGFseXN0IDI0V0MwNC8wOC8xNiB3aGljaCBoYXMgOS8xMC8xMSBiaXRzIG9mCkBAIC0zOTcsNyArMzk3LDcgQEAKIAkgKiBoaWRkZW4gaW4gdGhlIGNoaXAgYWRkcmVzcy4KIAkgKi8KIAlpZiggYWxlbiA+IDAgKQotCQljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cpOworCQljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKICNlbmRpZgogCWlmKCAocmV0ID0gaTJjX3RyYW5zZmVyMSggMSwgY2hpcDw8MSwgJnhhZGRyWzQtYWxlbl0sIGFsZW4sIGJ1ZmZlciwgbGVuICkpICE9IDApIHsKIAkJcHJpbnRmKCAiSTJjIHJlYWQ6IGZhaWxlZCAlZFxuIiwgcmV0KTsKQEAgLTQyMiw3ICs0MjIsNyBAQAogCQl4YWRkclszXSA9IGFkZHIgJiAweEZGOwogCX0KIAotI2lmZGVmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwogCS8qCiAJICogRUVQUk9NIGNoaXBzIHRoYXQgaW1wbGVtZW50ICJhZGRyZXNzIG92ZXJmbG93IiBhcmUgb25lcwogCSAqIGxpa2UgQ2F0YWx5c3QgMjRXQzA0LzA4LzE2IHdoaWNoIGhhcyA5LzEwLzExIGJpdHMgb2YKQEAgLTQzNSw3ICs0MzUsNyBAQAogCSAqIGhpZGRlbiBpbiB0aGUgY2hpcCBhZGRyZXNzLgogCSAqLwogCWlmKCBhbGVuID4gMCApCi0JCWNoaXAgfD0gKChhZGRyID4+IChhbGVuICogOCkpICYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVyk7CisJCWNoaXAgfD0gKChhZGRyID4+IChhbGVuICogOCkpICYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cpOwogI2VuZGlmCiAKIAlyZXR1cm4gKGkyY190cmFuc2ZlcjEoIDAsIGNoaXA8PDEsICZ4YWRkcls0LWFsZW5dLCBhbGVuLCBidWZmZXIsIGxlbiApICE9IDApOwpAQCAtNDY1LDEzICs0NjUsMTMgQEAKIGludCBkb19pMmMxX3Byb2JlKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogCWludCBqOwotI2lmIGRlZmluZWQoQ0ZHX0kyQ19OT1BST0JFUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX05PUFJPQkVTKQogCWludCBrLCBza2lwOwogI2VuZGlmCiAKIAlwdXRzICgiVmFsaWQgY2hpcCBhZGRyZXNzZXM6Iik7CiAJZm9yKGogPSAwOyBqIDwgMTI4OyBqKyspIHsKLSNpZiBkZWZpbmVkKENGR19JMkNfTk9QUk9CRVMpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0kyQ19OT1BST0JFUykKIAkJc2tpcCA9IDA7CiAJCWZvciAoayA9IDA7IGsgPCBzaXplb2YoaTJjX25vX3Byb2Jlcyk7IGsrKyl7CiAJCQlpZiAoaiA9PSBpMmNfbm9fcHJvYmVzW2tdKXsKQEAgLTQ4OCw3ICs0ODgsNyBAQAogCX0KIAlwdXRjICgnXG4nKTsKIAotI2lmIGRlZmluZWQoQ0ZHX0kyQ19OT1BST0JFUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX05PUFJPQkVTKQogCXB1dHMgKCJFeGNsdWRlZCBjaGlwIGFkZHJlc3NlczoiKTsKIAlmb3IoIGsgPSAwOyBrIDwgc2l6ZW9mKGkyY19ub19wcm9iZXMpOyBrKysgKQogCQlwcmludGYoIiAlMDJYIiwgaTJjX25vX3Byb2Jlc1trXSApOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2FuZGJ1cnN0L2NvbW1vbi9wcGM0NDBneF9pMmMuaCBiL2JvYXJkL3NhbmRidXJzdC9jb21tb24vcHBjNDQwZ3hfaTJjLmgKaW5kZXggMTAwMDBmNS4uMzI4YWJkNiAxMDA2NDQKLS0tIGEvYm9hcmQvc2FuZGJ1cnN0L2NvbW1vbi9wcGM0NDBneF9pMmMuaAorKysgYi9ib2FyZC9zYW5kYnVyc3QvY29tbW9uL3BwYzQ0MGd4X2kyYy5oCkBAIC0zMiw3ICszMiw3IEBACiAKICNpZmRlZiBDT05GSUdfSEFSRF9JMkMKIAotI2RlZmluZSBJMkNfQlVTMV9CQVNFX0FERFIgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNTAwKQorI2RlZmluZSBJMkNfQlVTMV9CQVNFX0FERFIgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDUwMCkKICNkZWZpbmUJICAgSTJDX1JFR0lTVEVSU19CVVMxX0JBU0VfQUREUkVTUyBJMkNfQlVTMV9CQVNFX0FERFIKICNkZWZpbmUgICAgSUlDX01EQlVGMQkoSTJDX1JFR0lTVEVSU19CVVMxX0JBU0VfQUREUkVTUytJSUNNREJVRikKICNkZWZpbmUgICAgSUlDX1NEQlVGMQkoSTJDX1JFR0lTVEVSU19CVVMxX0JBU0VfQUREUkVTUytJSUNTREJVRikKZGlmZiAtLWdpdCBhL2JvYXJkL3NhbmRidXJzdC9jb21tb24vc2JfY29tbW9uLmMgYi9ib2FyZC9zYW5kYnVyc3QvY29tbW9uL3NiX2NvbW1vbi5jCmluZGV4IDUxYjFjNzUuLmY2ZWExNmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NhbmRidXJzdC9jb21tb24vc2JfY29tbW9uLmMKKysrIGIvYm9hcmQvc2FuZGJ1cnN0L2NvbW1vbi9zYl9jb21tb24uYwpAQCAtNDMsNyArNDMsNyBAQAogewogCXBwYzQ0MF9ncGlvX3JlZ3NfdCAqZ3Bpb19yZWdzOwogCi0JZ3Bpb19yZWdzID0gKHBwYzQ0MF9ncGlvX3JlZ3NfdCAqKUNGR19HUElPX0JBU0U7CisJZ3Bpb19yZWdzID0gKHBwYzQ0MF9ncGlvX3JlZ3NfdCAqKUNPTkZJR19TWVNfR1BJT19CQVNFOwogCiAJaWYgKGdwaW9fcmVncy0+aW4gJiBTQkNPTU1PTl9HUElPX1BSSV9OKSB7CiAJCXJldHVybiAwOwpAQCAtNjMsNyArNjMsNyBAQAogewogCXBwYzQ0MF9ncGlvX3JlZ3NfdCAqZ3Bpb19yZWdzOwogCi0JZ3Bpb19yZWdzID0gKHBwYzQ0MF9ncGlvX3JlZ3NfdCAqKUNGR19HUElPX0JBU0U7CisJZ3Bpb19yZWdzID0gKHBwYzQ0MF9ncGlvX3JlZ3NfdCAqKUNPTkZJR19TWVNfR1BJT19CQVNFOwogCiAJaWYgKGdwaW9fcmVncy0+aW4gJiBTQkNPTU1PTl9HUElPX1NFQ19QUkVTKQogCQlyZXR1cm4gMDsKQEAgLTg0LDcgKzg0LDcgQEAKIAogCS8qIEdldCB0aGUgYm9hcmQgc2VyaWFsIG51bWJlciBmcm9tIGVlcHJvbSAqLwogCS8qIEluaXRpYWxpemUgSTJDICovCi0JaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCiAJLyogUmVhZCAyNTYgYnl0ZXMgaW4gRUVQUk9NICovCiAJaTJjX3JlYWQgKDB4NTAsIDAsIDEsIGJ1ZmYsIDB4MTAwKTsKQEAgLTIxOCwxMSArMjE4LDExIEBACiAgKgogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaWYgZGVmaW5lZChDRkdfRFJBTV9URVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19EUkFNX1RFU1QpCiBpbnQgdGVzdGRyYW0gKHZvaWQpCiB7Ci0JdWludCAqcHN0YXJ0ID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7Ci0JdWludCAqcGVuZCA9ICh1aW50ICopIENGR19NRU1URVNUX0VORDsKKwl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CisJdWludCAqcGVuZCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9FTkQ7CiAJdWludCAqcDsKIAogCXByaW50ZigiVGVzdGluZyBTRFJBTTogIik7CkBAIC0zNDAsNyArMzQwLDcgQEAKICAqCW1heSBub3QgYmUgc3VmZmljaWVudCBmb3IgYSBnaXZlbiBib2FyZC4KICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkKIHZvaWQgcGNpX3RhcmdldF9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqIGhvc2UgKQogewogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0zNTUsNyArMzU1LDcgQEAKIAkgKiBNYXAgYWxsIG9mIFNEUkFNIHRvIFBDSSBhZGRyZXNzIDB4MDAwMF8wMDAwLiBOb3RlIHRoYXQgdGhlIDQ0MCBzdHJhcHBpbmcKIAkgKiBvcHRpb25zIHRvIG5vdCBzdXBwb3J0IHNpemVzIHN1Y2ggYXMgMTI4LzI1NiBNQi4KIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlvdXQzMnIoIFBDSVgwX1BJTTBMQUwsIENGR19TRFJBTV9CQVNFICk7CisJb3V0MzJyKCBQQ0lYMF9QSU0wTEFMLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKTsKIAlvdXQzMnIoIFBDSVgwX1BJTTBMQUgsIDAgKTsKIAlvdXQzMnIoIFBDSVgwX1BJTTBTQSwgfihnZC0+cmFtX3NpemUgLSAxKSB8IDEgKTsKIApAQCAtMzY0LDEyICszNjQsMTIgQEAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCSAqIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL3ZlbmRvciBpZAogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDE2ciggUENJWDBfU0JTWVNWSUQsIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEICk7Ci0Jb3V0MTZyKCBQQ0lYMF9TQlNZU0lELCBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCApOworCW91dDE2ciggUENJWDBfU0JTWVNWSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCApOworCW91dDE2ciggUENJWDBfU0JTWVNJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEICk7CiAKIAlvdXQxNnIoIFBDSVgwX0NNRCwgaW4xNnIoUENJWDBfQ01EKSB8IFBDSV9DT01NQU5EX01FTU9SWSApOwogfQotI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkgKi8KIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtNDA1LDcgKzQwNSw3IEBACiAJaWYgKDAgPT0gbWFjYWRkcl9pZHgpIHsKIAogCQkvKiBJbml0aWFsaXplIEkyQyAqLwotCQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCiAJCS8qIFJlYWQgMjU2IGJ5dGVzIGluIEVFUFJPTSAqLwogCQlpMmNfcmVhZCAoMHg1MCwgMCwgMSwgYnVmZiwgMHgxMDApOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2FuZGJ1cnN0L2thcmVmL2NvbmZpZy5tayBiL2JvYXJkL3NhbmRidXJzdC9rYXJlZi9jb25maWcubWsKaW5kZXggNjVjMWU0OC4uZjJmOTRjNSAxMDA2NDQKLS0tIGEvYm9hcmQvc2FuZGJ1cnN0L2thcmVmL2NvbmZpZy5taworKysgYi9ib2FyZC9zYW5kYnVyc3Qva2FyZWYvY29uZmlnLm1rCkBAIC0zOSw1ICszOSw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvc2FuZGJ1cnN0L2thcmVmL2luaXQuUyBiL2JvYXJkL3NhbmRidXJzdC9rYXJlZi9pbml0LlMKaW5kZXggYjFkNDdhNC4uMzE5OGRmZCAxMDA2NDQKLS0tIGEvYm9hcmQvc2FuZGJ1cnN0L2thcmVmL2luaXQuUworKysgYi9ib2FyZC9zYW5kYnVyc3Qva2FyZWYvaW5pdC5TCkBAIC05MCwxMiArOTAsMTIgQEAKIHRsYnRhYjoKIAl0bGJ0YWJfc3RhcnQKIAl0bGJlbnRyeSggMHhmMDAwMDAwMCwgU1pfMjU2TSwgMHhmMDAwMDAwMCwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQotCXRsYmVudHJ5KCBDRkdfUEVSSVBIRVJBTF9CQVNFLCBTWl8yNTZNLCAweDQwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KCBDRkdfSVNSQU1fQkFTRSwgU1pfMjU2SywgMHg4MDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQotCXRsYmVudHJ5KCBDRkdfU0RSQU1fQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1NEUkFNX0JBU0UrMHgxMDAwMDAwMCwgU1pfMjU2TSwgMHgxMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1NEUkFNX0JBU0UrMHgyMDAwMDAwMCwgU1pfMjU2TSwgMHgyMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1NEUkFNX0JBU0UrMHgzMDAwMDAwMCwgU1pfMjU2TSwgMHgzMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAyLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAzLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UsIFNaXzI1Nk0sIDB4NDAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoIENPTkZJR19TWVNfSVNSQU1fQkFTRSwgU1pfMjU2SywgMHg4MDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfU0RSQU1fQkFTRSsweDEwMDAwMDAwLCBTWl8yNTZNLCAweDEwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1NEUkFNX0JBU0UrMHgyMDAwMDAwMCwgU1pfMjU2TSwgMHgyMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19TRFJBTV9CQVNFKzB4MzAwMDAwMDAsIFNaXzI1Nk0sIDB4MzAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDIsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAzLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKIAl0bGJ0YWJfZW5kCmRpZmYgLS1naXQgYS9ib2FyZC9zYW5kYnVyc3Qva2FyZWYva2FyZWYuYyBiL2JvYXJkL3NhbmRidXJzdC9rYXJlZi9rYXJlZi5jCmluZGV4IDcyY2U5NzYuLjc5MDlkMzQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NhbmRidXJzdC9rYXJlZi9rYXJlZi5jCisrKyBiL2JvYXJkL3NhbmRidXJzdC9rYXJlZi9rYXJlZi5jCkBAIC02NSw3ICs2NSw3IEBACiAJbXRzZHIoc2RyX3BmYzAsIDB4MDAxMDNFMDApOwogCiAJLyogU2V0dXAgYWNjZXNzIGZvciBMRURzLCBhbmQgc3lzdGVtIHRvcG9sb2d5IGluZm8gKi8KLQlncGlvX3JlZ3MgPSAocHBjNDQwX2dwaW9fcmVnc190ICopQ0ZHX0dQSU9fQkFTRTsKKwlncGlvX3JlZ3MgPSAocHBjNDQwX2dwaW9fcmVnc190ICopQ09ORklHX1NZU19HUElPX0JBU0U7CiAJZ3Bpb19yZWdzLT5vcGVuX2RyYWluID0gU0JDT01NT05fR1BJT19TWVNfTEVEUzsKIAlncGlvX3JlZ3MtPnRyaV9zdGF0ZSAgPSBTQkNPTU1PTl9HUElPX0RCR0xFRFM7CiAKQEAgLTkzLDcgKzkzLDcgQEAKIAkgICAgICBFQkNfQlhBUF9SRV9ESVNBQkxFRCAgfCBFQkNfQlhBUF9CRU1fV1JJVEVPTkxZIHwKIAkgICAgICBFQkNfQlhBUF9QRU5fRElTQUJMRUQpOwogCi0JbXRlYmMocGIwY3IsIEVCQ19CWENSX0JBU19FTkNPREUoQ0ZHX0ZMQVNIX0JBU0UpIHwKKwltdGViYyhwYjBjciwgRUJDX0JYQ1JfQkFTX0VOQ09ERShDT05GSUdfU1lTX0ZMQVNIX0JBU0UpIHwKIAkgICAgICBFQkNfQlhDUl9CU18xTUIgfCBFQkNfQlhDUl9CVV9SVyB8IEVCQ19CWENSX0JXXzhCSVQpOwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAJICB8IDhLQiBOVlJBTS9SVEMuIEluaXRpYWxpemUgYmFuayAxIHdpdGggZGVmYXVsdCB2YWx1ZXMuCkBAIC0yNTksOCArMjU5LDggQEAKIAlLQVJFRl9GUEdBX1JFR1NfU1QgKmthcmVmX3BzOwogCU9GRU1fRlBHQV9SRUdTX1NUICpvZmVtX3BzOwogCi0Ja2FyZWZfcHMgPSAoS0FSRUZfRlBHQV9SRUdTX1NUICopQ0ZHX0tBUkVGX0ZQR0FfQkFTRTsKLQlvZmVtX3BzID0gKE9GRU1fRlBHQV9SRUdTX1NUICopQ0ZHX09GRU1fRlBHQV9CQVNFOworCWthcmVmX3BzID0gKEtBUkVGX0ZQR0FfUkVHU19TVCAqKUNPTkZJR19TWVNfS0FSRUZfRlBHQV9CQVNFOworCW9mZW1fcHMgPSAoT0ZFTV9GUEdBX1JFR1NfU1QgKilDT05GSUdfU1lTX09GRU1fRlBHQV9CQVNFOwogCiAJc2Nhbl9pZCA9ICh1bnNpZ25lZCBjaGFyKSgoa2FyZWZfcHMtPnJldmlzaW9uX3VsICYKIAkJCQkgICBTQU5EX0hBTF9LQV9TQ19TQ0FOX1JFVklTSU9OX0lERU5USUZJQ0FUSU9OX01BU0spCkBAIC0zMTksNyArMzE5LDcgQEAKIAogCS8qIEZpeCB0aGUgYWNrIGluIHRoZSBibWUgMzIgKi8KIAl1ZGVsYXkoNTAwMCk7Ci0Jb3V0MzIoQ0ZHX0JNRTMyX0JBU0UgKyAweDAwMDAwMDBDLCAweDAwMDAwMDAxKTsKKwlvdXQzMihDT05GSUdfU1lTX0JNRTMyX0JBU0UgKyAweDAwMDAwMDBDLCAweDAwMDAwMDAxKTsKIAlhc20oImVpZWlvIik7CiAKIApAQCAtMzM1LDcgKzMzNSw3IEBACiB7CiAJLyogVHVybiBvbiBpMmMgYnVzIDEgKi8KIAlwdXRzICgiSTJDMTogICIpOwotCWkyYzFfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjMV9pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCXB1dHMgKCJyZWFkeVxuIik7CiAKIAkvKiBUdXJuIG9uIGZhbnMgMyAmIDQgKi8KQEAgLTM5Nyw4ICszOTcsOCBAQAogCX0KIAogCWlmKCBnZXRlbnYoImZha2VsZWQiKSkgewotCQlrYXJlZl9wcyA9IChLQVJFRl9GUEdBX1JFR1NfU1QgKilDRkdfS0FSRUZfRlBHQV9CQVNFOwotCQlvZmVtX3BzID0gKE9GRU1fRlBHQV9SRUdTX1NUICopQ0ZHX09GRU1fRlBHQV9CQVNFOworCQlrYXJlZl9wcyA9IChLQVJFRl9GUEdBX1JFR1NfU1QgKilDT05GSUdfU1lTX0tBUkVGX0ZQR0FfQkFTRTsKKwkJb2ZlbV9wcyA9IChPRkVNX0ZQR0FfUkVHU19TVCAqKUNPTkZJR19TWVNfT0ZFTV9GUEdBX0JBU0U7CiAJCW9mZW1fcHMtPmNvbnRyb2xfdWwgJj0gflNBTkRfSEFMX0tBX1NDX1NDQU5fQ05UTF9GQVVMVF9MRURfTUFTSzsKIAkJa2FyZWZfcHMtPmNvbnRyb2xfdWwgJj0gflNBTkRfSEFMX0tBX09GX09GRU1fQ05UTF9GQVVMVF9MRURfTUFTSzsKIAkJc2V0ZW52KCJib290ZGVsYXkiLCAiLTEiKTsKQEAgLTQxNyw3ICs0MTcsNyBAQAogewogCUtBUkVGX0ZQR0FfUkVHU19TVCAqa2FyZWZfcHM7CiAJLyogVE9ETzogaWRlIHJlc2V0ICovCi0Ja2FyZWZfcHMgPSAoS0FSRUZfRlBHQV9SRUdTX1NUICopQ0ZHX0tBUkVGX0ZQR0FfQkFTRTsKKwlrYXJlZl9wcyA9IChLQVJFRl9GUEdBX1JFR1NfU1QgKilDT05GSUdfU1lTX0tBUkVGX0ZQR0FfQkFTRTsKIAogCWlmIChvbikgewogCQlrYXJlZl9wcy0+cmVzZXRfdWwgJj0gflNBTkRfSEFMX0tBX1NDX1NDQU5fUkVTRVRfQ0ZfUkVTRVRfTl9NQVNLOwpAQCAtNDQwLDcgKzQ0MCw3IEBACiAJLyogRW5zdXJlIHdlIGhhdmUgcG93ZXIgYWxsIGFyb3VuZCAqLwogCXVkZWxheSg1MDApOwogCi0Ja2FyZWZfcHMgPSAoS0FSRUZfRlBHQV9SRUdTX1NUICopQ0ZHX0tBUkVGX0ZQR0FfQkFTRTsKKwlrYXJlZl9wcyA9IChLQVJFRl9GUEdBX1JFR1NfU1QgKilDT05GSUdfU1lTX0tBUkVGX0ZQR0FfQkFTRTsKIAl0bXAgPQogCQlTQU5EX0hBTF9LQV9TQ19TQ0FOX1JFU0VUX0NGX1JFU0VUX05fTUFTSyB8CiAJCVNBTkRfSEFMX0tBX1NDX1NDQU5fUkVTRVRfQk1FX1JFU0VUX05fTUFTSyB8CkBAIC00NzAsNyArNDcwLDcgQEAKIAkJCVNBTkRfSEFMX0tBX09GX09GRU1fUkVTRVRfTE9DSDBfUkVTRVRfTl9NQVNLIHwKIAkJCVNBTkRfSEFMX0tBX09GX09GRU1fUkVTRVRfTUFDMF9SRVNFVF9OX01BU0s7CiAKLQkJb2ZlbV9wcyA9IChPRkVNX0ZQR0FfUkVHU19TVCAqKUNGR19PRkVNX0ZQR0FfQkFTRTsKKwkJb2ZlbV9wcyA9IChPRkVNX0ZQR0FfUkVHU19TVCAqKUNPTkZJR19TWVNfT0ZFTV9GUEdBX0JBU0U7CiAJCW9mZW1fcHMtPnJlc2V0X3VsID0gdG1wOwogCiAJCW9mZW1fcHMtPmNvbnRyb2xfdWwgfD0gMSA8IFNBTkRfSEFMX0tBX09GX09GRU1fQ05UTF9GQVVMVF9MRURfU0hJRlQ7CmRpZmYgLS1naXQgYS9ib2FyZC9zYW5kYnVyc3QvbWV0cm9ib3gvY29uZmlnLm1rIGIvYm9hcmQvc2FuZGJ1cnN0L21ldHJvYm94L2NvbmZpZy5tawppbmRleCA5MWFlZTJmLi41NjVlODI2IDEwMDY0NAotLS0gYS9ib2FyZC9zYW5kYnVyc3QvbWV0cm9ib3gvY29uZmlnLm1rCisrKyBiL2JvYXJkL3NhbmRidXJzdC9tZXRyb2JveC9jb25maWcubWsKQEAgLTM0LDUgKzM0LDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9zYW5kYnVyc3QvbWV0cm9ib3gvaW5pdC5TIGIvYm9hcmQvc2FuZGJ1cnN0L21ldHJvYm94L2luaXQuUwppbmRleCBlMzk4ZjAwLi5jY2RlYzQ2IDEwMDY0NAotLS0gYS9ib2FyZC9zYW5kYnVyc3QvbWV0cm9ib3gvaW5pdC5TCisrKyBiL2JvYXJkL3NhbmRidXJzdC9tZXRyb2JveC9pbml0LlMKQEAgLTg4LDEyICs4OCwxMiBAQAogdGxidGFiOgogCXRsYnRhYl9zdGFydAogCXRsYmVudHJ5KCAweGYwMDAwMDAwLCBTWl8yNTZNLCAweGYwMDAwMDAwLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCi0JdGxiZW50cnkoIENGR19QRVJJUEhFUkFMX0JBU0UsIFNaXzI1Nk0sIDB4NDAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoIENGR19JU1JBTV9CQVNFLCBTWl8yNTZLLCAweDgwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCi0JdGxiZW50cnkoIENGR19TRFJBTV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfU0RSQU1fQkFTRSsweDEwMDAwMDAwLCBTWl8yNTZNLCAweDEwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfU0RSQU1fQkFTRSsweDIwMDAwMDAwLCBTWl8yNTZNLCAweDIwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfU0RSQU1fQkFTRSsweDMwMDAwMDAwLCBTWl8yNTZNLCAweDMwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDIsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDMsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSwgU1pfMjU2TSwgMHg0MDAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19JU1JBTV9CQVNFLCBTWl8yNTZLLCAweDgwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCisJdGxiZW50cnkoIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19TRFJBTV9CQVNFKzB4MTAwMDAwMDAsIFNaXzI1Nk0sIDB4MTAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfU0RSQU1fQkFTRSsweDIwMDAwMDAwLCBTWl8yNTZNLCAweDIwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1NEUkFNX0JBU0UrMHgzMDAwMDAwMCwgU1pfMjU2TSwgMHgzMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMiwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDMsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCXRsYnRhYl9lbmQKZGlmZiAtLWdpdCBhL2JvYXJkL3NhbmRidXJzdC9tZXRyb2JveC9tZXRyb2JveC5jIGIvYm9hcmQvc2FuZGJ1cnN0L21ldHJvYm94L21ldHJvYm94LmMKaW5kZXggYzM4ODUwZC4uYzNjNDQ1OSAxMDA2NDQKLS0tIGEvYm9hcmQvc2FuZGJ1cnN0L21ldHJvYm94L21ldHJvYm94LmMKKysrIGIvYm9hcmQvc2FuZGJ1cnN0L21ldHJvYm94L21ldHJvYm94LmMKQEAgLTU1LDcgKzU1LDcgQEAKIAltdHNkcihzZHJfcGZjMCwgMHgwMDEwM0UwMCk7CiAKIAkvKiBTZXR1cCBhY2Nlc3MgZm9yIExFRHMsIGFuZCBzeXN0ZW0gdG9wb2xvZ3kgaW5mbyAqLwotCWdwaW9fcmVncyA9IChwcGM0NDBfZ3Bpb19yZWdzX3QgKilDRkdfR1BJT19CQVNFOworCWdwaW9fcmVncyA9IChwcGM0NDBfZ3Bpb19yZWdzX3QgKilDT05GSUdfU1lTX0dQSU9fQkFTRTsKIAlncGlvX3JlZ3MtPm9wZW5fZHJhaW4gPSBTQkNPTU1PTl9HUElPX1NZU19MRURTOwogCWdwaW9fcmVncy0+dHJpX3N0YXRlICA9IFNCQ09NTU9OX0dQSU9fREJHTEVEUzsKIApAQCAtODMsNyArODMsNyBAQAogCSAgICAgIEVCQ19CWEFQX1JFX0RJU0FCTEVEICB8IEVCQ19CWEFQX0JFTV9XUklURU9OTFkgfAogCSAgICAgIEVCQ19CWEFQX1BFTl9ESVNBQkxFRCk7CiAKLQltdGViYyhwYjBjciwgRUJDX0JYQ1JfQkFTX0VOQ09ERShDRkdfRkxBU0hfQkFTRSkgfAorCW10ZWJjKHBiMGNyLCBFQkNfQlhDUl9CQVNfRU5DT0RFKENPTkZJR19TWVNfRkxBU0hfQkFTRSkgfAogCSAgICAgIEVCQ19CWENSX0JTXzFNQiB8IEVCQ19CWENSX0JVX1JXIHwgRUJDX0JYQ1JfQldfOEJJVCk7CiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAkgIHwgOEtCIE5WUkFNL1JUQy4gSW5pdGlhbGl6ZSBiYW5rIDEgd2l0aCBkZWZhdWx0IHZhbHVlcy4KQEAgLTI0Niw3ICsyNDYsNyBAQAogCXVuc2lnbmVkIGNoYXIgb3B0b19yZXYsIG9wdG9faWQ7CiAJT1BUT19GUEdBX1JFR1NfU1QgKm9wdG9fcHM7CiAKLQlvcHRvX3BzID0gKE9QVE9fRlBHQV9SRUdTX1NUICopQ0ZHX0ZQR0FfQkFTRTsKKwlvcHRvX3BzID0gKE9QVE9fRlBHQV9SRUdTX1NUICopQ09ORklHX1NZU19GUEdBX0JBU0U7CiAKIAlvcHRvX3JldiA9ICh1bnNpZ25lZCBjaGFyKSgob3B0b19wcy0+cmV2aXNpb25fdWwgJgogCQkJCSAgICBTQU5EX0hBTF9YQ19YQ1ZSX0NOVExfUkVWSVNJT05fUkVWSVNJT05fTUFTSykKQEAgLTI4Niw3ICsyODYsNyBAQAogCiAJLyogRml4IHRoZSBhY2sgaW4gdGhlIGJtZSAzMiAqLwogCXVkZWxheSg1MDAwKTsKLQlvdXQzMihDRkdfQk1FMzJfQkFTRSArIDB4MDAwMDAwMEMsIDB4MDAwMDAwMDEpOworCW91dDMyKENPTkZJR19TWVNfQk1FMzJfQkFTRSArIDB4MDAwMDAwMEMsIDB4MDAwMDAwMDEpOwogCWFzbSgiZWllaW8iKTsKIAogCkBAIC0zMDIsNyArMzAyLDcgQEAKIHsKIAkvKiBUdXJuIG9uIGkyYyBidXMgMSAqLwogCXB1dHMgKCJJMkMxOiAgIik7Ci0JaTJjMV9pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmMxX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAJcHV0cyAoInJlYWR5XG4iKTsKIAogCS8qIFR1cm4gb24gZmFucyAqLwpAQCAtMzIzLDcgKzMyMyw3IEBACiAJdW5zaWduZWQgY2hhciBvcHRvX3JldjsKIAlPUFRPX0ZQR0FfUkVHU19TVCAqb3B0b19wczsKIAotCW9wdG9fcHMgPSAoT1BUT19GUEdBX1JFR1NfU1QgKilDRkdfRlBHQV9CQVNFOworCW9wdG9fcHMgPSAoT1BUT19GUEdBX1JFR1NfU1QgKilDT05GSUdfU1lTX0ZQR0FfQkFTRTsKIAogCWlmKE5VTEwgIT0gZ2V0ZW52KCJzZWNvbmRzZXJpYWwiKSkgewogCSAgICBwdXRzKCJzZWNvbmRzZXJpYWwgaXMgc2V0LCBzd2l0Y2hpbmcgdG8gc2Vjb25kIHNlcmlhbCBwb3J0XG4iKTsKQEAgLTM4Nyw3ICszODcsNyBAQAogdm9pZCBpZGVfc2V0X3Jlc2V0KGludCBvbikKIHsKIAlPUFRPX0ZQR0FfUkVHU19TVCAqb3B0b19wczsKLQlvcHRvX3BzID0gKE9QVE9fRlBHQV9SRUdTX1NUICopQ0ZHX0ZQR0FfQkFTRTsKKwlvcHRvX3BzID0gKE9QVE9fRlBHQV9SRUdTX1NUICopQ09ORklHX1NZU19GUEdBX0JBU0U7CiAKIAlpZiAob24pIHsJCS8qIGFzc2VydCBSRVNFVCAqLwogCSAgICBvcHRvX3BzLT5yZXNldF91bCAmPSB+U0FORF9IQUxfWENfWENWUl9DTlRMX1JFU0VUX0NGX1JFU0VUX05fTUFTSzsKQEAgLTQxMiw3ICs0MTIsNyBAQAogCS8qCiAJICogVGFrZSBhcHByb3ByaWF0ZSBodyBiaXRzIG91dCBvZiByZXNldAogCSAqLwotCW9wdG9fcHMgPSAoT1BUT19GUEdBX1JFR1NfU1QgKilDRkdfRlBHQV9CQVNFOworCW9wdG9fcHMgPSAoT1BUT19GUEdBX1JFR1NfU1QgKilDT05GSUdfU1lTX0ZQR0FfQkFTRTsKIAogCXRtcCA9CiAJICAgIFNBTkRfSEFMX1hDX1hDVlJfQ05UTF9SRVNFVF9NQUMxX1JFU0VUX05fTUFTSyB8CmRpZmYgLS1naXQgYS9ib2FyZC9zYW5kcG9pbnQvZWFybHlfaW5pdC5TIGIvYm9hcmQvc2FuZHBvaW50L2Vhcmx5X2luaXQuUwppbmRleCAwN2RhZmI3Li41MzFkY2RmIDEwMDY0NAotLS0gYS9ib2FyZC9zYW5kcG9pbnQvZWFybHlfaW5pdC5TCisrKyBiL2JvYXJkL3NhbmRwb2ludC9lYXJseV9pbml0LlMKQEAgLTMyLDY4ICszMiw2OCBAQAogCiAjaWYgZGVmaW5lZChVU0VfRElOSzMyKQogICAvKiBXZSBhcmUgcnVubmluZyBmcm9tIFJBTSwgc28gZG8gbm90IGNsZWFyIHRoZSBNQ0NSMV9NRU1HTyBiaXQhICovCi0gICNkZWZpbmUgTUNDUjFWQUwgKChDRkdfUk9NTkFMIDw8IE1DQ1IxX1JPTU5BTF9TSElGVCkgfCAoQ0ZHX1JPTUZBTCA8PCBNQ0NSMV9ST01GQUxfU0hJRlQpIHwgTUNDUjFfTUVNR08pCisgICNkZWZpbmUgTUNDUjFWQUwgKChDT05GSUdfU1lTX1JPTU5BTCA8PCBNQ0NSMV9ST01OQUxfU0hJRlQpIHwgKENPTkZJR19TWVNfUk9NRkFMIDw8IE1DQ1IxX1JPTUZBTF9TSElGVCkgfCBNQ0NSMV9NRU1HTykKICNlbHNlCi0gICNkZWZpbmUgTUNDUjFWQUwgKENGR19ST01OQUwgPDwgTUNDUjFfUk9NTkFMX1NISUZUKSB8IChDRkdfUk9NRkFMIDw8IE1DQ1IxX1JPTUZBTF9TSElGVCkKKyAgI2RlZmluZSBNQ0NSMVZBTCAoQ09ORklHX1NZU19ST01OQUwgPDwgTUNDUjFfUk9NTkFMX1NISUZUKSB8IChDT05GSUdfU1lTX1JPTUZBTCA8PCBNQ0NSMV9ST01GQUxfU0hJRlQpCiAjZW5kaWYKIAogCS50ZXh0CiAKIAkvKiBWYWx1ZXMgdG8gcHJvZ3JhbSBpbnRvIG1lbW9yeSBjb250cm9sbGVyIHJlZ2lzdGVycyAqLwogdGJsOgkubG9uZwlNQ0NSMSwgTUNDUjFWQUwKLQkubG9uZwlNQ0NSMiwgQ0ZHX1JFRklOVCA8PCBNQ0NSMl9SRUZJTlRfU0hJRlQKKwkubG9uZwlNQ0NSMiwgQ09ORklHX1NZU19SRUZJTlQgPDwgTUNDUjJfUkVGSU5UX1NISUZUCiAJLmxvbmcJTUNDUjMKLQkubG9uZwkoKChDRkdfQlNUT1BSRSAmIDB4MDAwMDAwZjApID4+IDQpIDw8IE1DQ1IzX0JTVE9QUkUyVE81X1NISUZUKSB8IFwKLQkJKENGR19SRUZSRUMgPDwgTUNDUjNfUkVGUkVDX1NISUZUKSB8IFwKLQkJKENGR19SRExBVCAgPDwgTUNDUjNfUkRMQVRfU0hJRlQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CU1RPUFJFICYgMHgwMDAwMDBmMCkgPj4gNCkgPDwgTUNDUjNfQlNUT1BSRTJUTzVfU0hJRlQpIHwgXAorCQkoQ09ORklHX1NZU19SRUZSRUMgPDwgTUNDUjNfUkVGUkVDX1NISUZUKSB8IFwKKwkJKENPTkZJR19TWVNfUkRMQVQgIDw8IE1DQ1IzX1JETEFUX1NISUZUKQogCS5sb25nCU1DQ1I0Ci0JLmxvbmcJKENGR19QUkVUT0FDVCA8PCBNQ0NSNF9QUkVUT0FDVF9TSElGVCkgfCAoQ0ZHX0FDVFRPUFJFIDw8IE1DQ1I0X0FDVFRPUFJFX1NISUZUKSB8IFwKLQkJKENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgPDwgMjApIHwgXAotCQkoKChDRkdfQlNUT1BSRSAmIDB4MDAwMDAzMDApID4+IDgpIDw8IE1DQ1I0X0JTVE9QUkUwVE8xX1NISUZUICkgfCBcCi0JCSgoQ0ZHX1NETU9ERV9DQVNfTEFUIDw8IDQpIHwgKENGR19TRE1PREVfV1JBUCA8PCAzKSB8IFwKLQkJKENGR19TRE1PREVfQlVSU1RMRU4pIDw8IE1DQ1I0X1NETU9ERV9TSElGVCkgfCBcCi0JCShDRkdfQUNUVE9SVyA8PCBNQ0NSNF9BQ1RUT1JXX1NISUZUKSB8IFwKLQkJKChDRkdfQlNUT1BSRSAmIDB4MDAwMDAwMGYpIDw8IE1DQ1I0X0JTVE9QUkU2VE85X1NISUZUICkKKwkubG9uZwkoQ09ORklHX1NZU19QUkVUT0FDVCA8PCBNQ0NSNF9QUkVUT0FDVF9TSElGVCkgfCAoQ09ORklHX1NZU19BQ1RUT1BSRSA8PCBNQ0NSNF9BQ1RUT1BSRV9TSElGVCkgfCBcCisJCShDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiA8PCAyMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQlNUT1BSRSAmIDB4MDAwMDAzMDApID4+IDgpIDw8IE1DQ1I0X0JTVE9QUkUwVE8xX1NISUZUICkgfCBcCisJCSgoQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVCA8PCA0KSB8IChDT05GSUdfU1lTX1NETU9ERV9XUkFQIDw8IDMpIHwgXAorCQkoQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4pIDw8IE1DQ1I0X1NETU9ERV9TSElGVCkgfCBcCisJCShDT05GSUdfU1lTX0FDVFRPUlcgPDwgTUNDUjRfQUNUVE9SV19TSElGVCkgfCBcCisJCSgoQ09ORklHX1NZU19CU1RPUFJFICYgMHgwMDAwMDAwZikgPDwgTUNDUjRfQlNUT1BSRTZUTzlfU0hJRlQgKQogCS5sb25nCU1TQVIxCi0JLmxvbmcJKCgoQ0ZHX0JBTkswX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDApIHwgXAotCQkoKChDRkdfQkFOSzFfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LMl9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8IFwKLQkJKCgoQ0ZHX0JBTkszX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CQU5LMF9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMV9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICA4KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMl9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LM19TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCUVNU0FSMQotCS5sb25nCSgoKENGR19CQU5LMF9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDApIHwgXAotCQkoKChDRkdfQkFOSzFfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICA4KSB8IFwKLQkJKCgoQ0ZHX0JBTksyX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LM19TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CQU5LMF9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDApIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTksxX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzJfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LM19TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpCiAJLmxvbmcJTVNBUjIKLQkubG9uZwkoKChDRkdfQkFOSzRfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LNV9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICA4KSB8IFwKLQkJKCgoQ0ZHX0JBTks2X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAotCQkoKChDRkdfQkFOSzdfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTks0X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDApIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks1X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDgpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks2X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks3X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpCiAJLmxvbmcJRU1TQVIyCi0JLmxvbmcJKCgoQ0ZHX0JBTks0X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LNV9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzZfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8IFwKLQkJKCgoQ0ZHX0JBTks3X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTks0X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzVfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICA4KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LNl9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks3X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwlNRUFSMQotCS5sb25nCSgoKENGR19CQU5LMF9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LMV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LMl9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LM19FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTkswX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzJfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTkszX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCUVNRUFSMQotCS5sb25nCSgoKENGR19CQU5LMF9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICAwKSB8IFwKLQkJKCgoQ0ZHX0JBTksxX0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzJfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LM19FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KQorCS5sb25nCSgoKENPTkZJR19TWVNfQkFOSzBfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzFfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzJfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzNfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwlNRUFSMgotCS5sb25nCSgoKENGR19CQU5LNF9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LNV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LNl9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LN19FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTks0X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LNV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzZfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks3X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCUVNRUFSMgotCS5sb25nCSgoKENGR19CQU5LNF9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICAwKSB8IFwKLQkJKCgoQ0ZHX0JBTks1X0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzZfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LN19FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KQorCS5sb25nCSgoKENPTkZJR19TWVNfQkFOSzRfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzVfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzZfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzdfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwkwCiAKIApAQCAtMTIzLDcgKzEyMyw3IEBACiAJLyogc2V0IGJhbmsgZW5hYmxlIGJpdHMgKi8KIAlsaXMJcjAsIE1CRVJAaAogCW9yaQlyMCwgMCwgTUJFUkBsCi0JbGkJcjEsIENGR19CQU5LX0VOQUJMRQorCWxpCXIxLCBDT05GSUdfU1lTX0JBTktfRU5BQkxFCiAJc3R3YnJ4CXIwLCAwLCByMwogCWVpZWlvCiAJc3RiCXIxLCAwKHI0KQpAQCAtMTQ1LDggKzE0NSw4IEBACiAJZWllaW8KIAogCS8qIHNldCB1cCBzdGFjayBwb2ludGVyICovCi0JbGlzCXIxLCBDRkdfSU5JVF9TUF9PRkZTRVRAaAotCW9yaQlyMSwgcjEsIENGR19JTklUX1NQX09GRlNFVEBsCisJbGlzCXIxLCBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUQGgKKwlvcmkJcjEsIHIxLCBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUQGwKIAogCW10bHIJcjEwCiAJYmxyCmRpZmYgLS1naXQgYS9ib2FyZC9zYW5kcG9pbnQvZmxhc2guYyBiL2JvYXJkL3NhbmRwb2ludC9mbGFzaC5jCmluZGV4IDBmM2VjYTIuLmUzNjZjYzYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NhbmRwb2ludC9mbGFzaC5jCisrKyBiL2JvYXJkL3NhbmRwb2ludC9mbGFzaC5jCkBAIC0zMCwxMSArMzAsMTEgQEAKICNkZWZpbmUgUk9NX0NTMF9TVEFSVAkweEZGODAwMDAwCiAjZGVmaW5lIFJPTV9DUzFfU1RBUlQJMHhGRjAwMDAwMAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKICMgaWZuZGVmICBDT05GSUdfRU5WX0FERFIKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgIChDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRSAgQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTE0MCwxMCArMTQwLDEwIEBACiB7CiAgIHVuc2lnbmVkIGxvbmcgaTsKICAgdW5zaWduZWQgY2hhciBqOwotICBzdGF0aWMgY29uc3QgdWxvbmcgZmxhc2hfYmFua3NbXSA9IENGR19GTEFTSF9CQU5LUzsKKyAgc3RhdGljIGNvbnN0IHVsb25nIGZsYXNoX2JhbmtzW10gPSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTOwogCiAgIC8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLSAgZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykKKyAgZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspCiAgIHsKICAgICBmbGFzaF9pbmZvX3QgKiBjb25zdCBwZmxpbmZvID0gJmZsYXNoX2luZm9baV07CiAgICAgcGZsaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwpAQCAtMTU0LDkgKzE1NCw5IEBACiAgIC8qIEVuYWJsZSB3cml0ZXMgdG8gU2FuZHBvaW50IGZsYXNoICovCiAgIHsKICAgICByZWdpc3RlciB1bnNpZ25lZCBjaGFyIHRlbXA7Ci0gICAgQ09ORklHX1JFQURfQllURShDRkdfV0lOQk9ORF9JU0FfQ0ZHX0FERFIgKyBXSU5CT05EX0NTQ1IsIHRlbXApOworICAgIENPTkZJR19SRUFEX0JZVEUoQ09ORklHX1NZU19XSU5CT05EX0lTQV9DRkdfQUREUiArIFdJTkJPTkRfQ1NDUiwgdGVtcCk7CiAgICAgdGVtcCAmPSB+MHgyMDsgLyogY2xlYXIgQklPU1dQIGJpdCAqLwotICAgIENPTkZJR19XUklURV9CWVRFKENGR19XSU5CT05EX0lTQV9DRkdfQUREUiArIFdJTkJPTkRfQ1NDUiwgdGVtcCk7CisgICAgQ09ORklHX1dSSVRFX0JZVEUoQ09ORklHX1NZU19XSU5CT05EX0lTQV9DRkdfQUREUiArIFdJTkJPTkRfQ1NDUiwgdGVtcCk7CiAgIH0KIAogICBmb3IoaSA9IDA7IGkgPCBzaXplb2YgZmxhc2hfYmFua3MgLyBzaXplb2YgZmxhc2hfYmFua3NbMF07IGkrKykKQEAgLTIyMywxMCArMjIzLDEwIEBACiAgICAgfQogICAgIC8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogICAgICAqLwotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKICAgICBmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCUNGR19NT05JVE9SX0JBU0UsCi0JCUNGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTYxMiw3ICs2MTIsNyBAQAogICAgIGFkZHIgPSAoRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0WzBdICsgKAogCQkJKGluZm8tPnN0YXJ0W2xfc2VjdF0gLSBpbmZvLT5zdGFydFswXSkgPDwgc2g4YikpOwogICAgIHdoaWxlICgoYWRkclswXSAmIChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0gKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSB7Ci0JaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCSAgICBwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkgICAgcmV0dXJuIDE7CiAJfQpAQCAtNzUxLDcgKzc1MSw3IEBACiAJICAgIHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAkgICAgd2hpbGUgKChkZXN0MltpIDw8IHNoOGJdICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPQogCQkgICAoZGF0YTJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApKSB7Ci0JICAgICAgaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCSAgICAgIGlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCXJldHVybiAoMSk7CiAJICAgICAgfQogCSAgICB9CmRpZmYgLS1naXQgYS9ib2FyZC9zYW5kcG9pbnQvc2FuZHBvaW50LmMgYi9ib2FyZC9zYW5kcG9pbnQvc2FuZHBvaW50LmMKaW5kZXggODMyYmFhMi4uYmIwMWQ3MyAxMDA2NDQKLS0tIGEvYm9hcmQvc2FuZHBvaW50L3NhbmRwb2ludC5jCisrKyBiL2JvYXJkL3NhbmRwb2ludC9zYW5kcG9pbnQuYwpAQCAtNTgsNyArNTgsNyBAQAogCWxvbmcgbWVhcjE7CiAJbG9uZyBlbWVhcjE7CiAKLQlzaXplID0gZ2V0X3JhbV9zaXplKENGR19TRFJBTV9CQVNFLCBDRkdfTUFYX1JBTV9TSVpFKTsKKwlzaXplID0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUpOwogCiAJbmV3X2JhbmswX2VuZCA9IHNpemUgLSAxOwogCW1lYXIxID0gbXBjODI0eF9tcGMxMDdfZ2V0cmVnKE1FQVIxKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3NiYzI0MTB4L2ZsYXNoLmMgYi9ib2FyZC9zYmMyNDEweC9mbGFzaC5jCmluZGV4IGZhMzk5NmQuLmFiYjA5MzUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NiYzI0MTB4L2ZsYXNoLmMKKysrIGIvYm9hcmQvc2JjMjQxMHgvZmxhc2guYwpAQCAtMjksNyArMjksNyBAQAogI2RlZmluZSBGTEFTSF9CQU5LX1NJWkUJUEhZU19GTEFTSF9TSVpFCiAjZGVmaW5lIE1BSU5fU0VDVF9TSVpFICAweDEwMDAwCS8qIDY0IEtCICovCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAjZGVmaW5lIENNRF9SRUFEX0FSUkFZCQkweDAwMDAwMEYwCiAjZGVmaW5lIENNRF9VTkxPQ0sxCQkweDAwMDAwMEFBCkBAIC0zOSw4ICszOSw4IEBACiAjZGVmaW5lIENNRF9QUk9HUkFNCQkweDAwMDAwMEEwCiAjZGVmaW5lIENNRF9VTkxPQ0tfQllQQVNTCTB4MDAwMDAwMjAKIAotI2RlZmluZSBNRU1fRkxBU0hfQUREUjEJCSgqKHZvbGF0aWxlIHUxNiAqKShDRkdfRkxBU0hfQkFTRSArICgweDAwMDAwNTU1IDw8IDEpKSkKLSNkZWZpbmUgTUVNX0ZMQVNIX0FERFIyCQkoKih2b2xhdGlsZSB1MTYgKikoQ0ZHX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDJBQSA8PCAxKSkpCisjZGVmaW5lIE1FTV9GTEFTSF9BRERSMQkJKCoodm9sYXRpbGUgdTE2ICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgweDAwMDAwNTU1IDw8IDEpKSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIyCQkoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUEgPDwgMSkpKQogCiAjZGVmaW5lIEJJVF9FUkFTRV9ET05FCQkweDAwMDAwMDgwCiAjZGVmaW5lIEJJVF9SRFlfTUFTSwkJMHgwMDAwMDA4MApAQCAtNTksNyArNTksNyBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9CkBAIC03Myw4ICs3Myw4IEBACiAjZXJyb3IgIlVua25vd24gZmxhc2ggY29uZmlndXJlZCIKICNlbmRpZgogCQkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCQlpZiAoaSA9PSAwKQogCQkJZmxhc2hiYXNlID0gUEhZU19GTEFTSF8xOwogCQllbHNlCkBAIC0xMDksOCArMTA5LDggQEAKIAl9CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJICAgICAgICZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCkBAIC0yMzQsNyArMjM0LDcgQEAKIAogCQkJCS8qIGNoZWNrIHRpbWVvdXQgKi8KIAkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+Ci0JCQkJICAgIENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJICAgIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlNRU1fRkxBU0hfQUREUjEgPSBDTURfUkVBRF9BUlJBWTsKIAkJCQkJY2hpcCA9IFRNTzsKIAkJCQkJYnJlYWs7CkBAIC0zMzAsNyArMzMwLDcgQEAKIAkJcmVzdWx0ID0gKmFkZHI7CiAKIAkJLyogY2hlY2sgdGltZW91dCAqLwotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQljaGlwID0gRVJSIHwgVE1POwogCQkJYnJlYWs7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3NiYzQwNS9zdHJhdGFmbGFzaC5jIGIvYm9hcmQvc2JjNDA1L3N0cmF0YWZsYXNoLmMKaW5kZXggZDIxZDg4NS4uZTU4NjNkNiAxMDA2NDQKLS0tIGEvYm9hcmQvc2JjNDA1L3N0cmF0YWZsYXNoLmMKKysrIGIvYm9hcmQvc2JjNDA1L3N0cmF0YWZsYXNoLmMKQEAgLTEwMyw3ICsxMDMsNyBAQAogCiAjZGVmaW5lIE5VTV9FUkFTRV9SRUdJT05TIDQKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTIwLDcgKzEyMCw3IEBACiBzdGF0aWMgdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHVsb25nIGJhc2UsIGludCBiYW5rbnVtKTsKIHN0YXRpYyBpbnQgZmxhc2hfd3JpdGVfY2Zpd29yZCAoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCBjZml3b3JkX3QgY3dvcmQpOwogc3RhdGljIGludCBmbGFzaF9mdWxsX3N0YXR1c19jaGVjayhmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBzZWN0b3IsIHVsb25nIHRvdXQsIGNoYXIgKiBwcm9tcHQpOwotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiBzdGF0aWMgaW50IGZsYXNoX3dyaXRlX2NmaWJ1ZmZlcihmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1Y2hhciAqIGNwLCBpbnQgbGVuKTsKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTgwLDE0ICsxODAsMTQgQEAKIAkgKgogCSAqLwogCi0JYWRkcmVzcyA9IENGR19GTEFTSF9CQVNFOworCWFkZHJlc3MgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJc2l6ZSA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJc2l6ZSArPSBmbGFzaF9pbmZvW2ldLnNpemUgPSBmbGFzaF9nZXRfc2l6ZShhZGRyZXNzLCBpKTsKLQkJYWRkcmVzcyArPSBDRkdfRkxBU0hfSU5DUkVNRU5UOworCQlhZGRyZXNzICs9IENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UOwogCQlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCQlwcmludGYgKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgJWQgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIixpLAogCQkJCWZsYXNoX2luZm9bMF0uc2l6ZSwgZmxhc2hfaW5mb1tpXS5zaXplPDwyMCk7CkBAIC0xOTYsMTQgKzE5NiwxNCBAQAogCiAjaWYgMCAvKiB0ZXN0LW9ubHkgKi8KIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwotI2lmIChDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFKQotCWZvcihpPTA7IGZsYXNoX2luZm9bMF0uc3RhcnRbaV0gPCBDRkdfTU9OSVRPUl9CQVNFK0NGR19NT05JVE9SX0xFTi0xOyBpKyspCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKwlmb3IoaT0wOyBmbGFzaF9pbmZvWzBdLnN0YXJ0W2ldIDwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrQ09ORklHX1NZU19NT05JVE9SX0xFTi0xOyBpKyspCiAJCSh2b2lkKWZsYXNoX3JlYWxfcHJvdGVjdCgmZmxhc2hfaW5mb1swXSwgaSwgMSk7CiAjZW5kaWYKICNlbHNlCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgLSBDRkdfTU9OSVRPUl9MRU4sCisJCSAgICAgICAtIENPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCSAgICAgICAtIDEsICZmbGFzaF9pbmZvWzFdKTsKICNlbmRpZgogCkBAIC0yNzcsNyArMjc3LDcgQEAKIAogCXByaW50ZiAoIiAgU2VjdG9yIFN0YXJ0IEFkZHJlc3NlczoiKTsKIAlmb3IgKGk9MDsgaTxpbmZvLT5zZWN0b3JfY291bnQ7ICsraSkgewotI2lmZGVmIENGR19GTEFTSF9FTVBUWV9JTkZPCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAJCWludCBrOwogCQlpbnQgc2l6ZTsKIAkJaW50IGVyYXNlZDsKQEAgLTM1Nyw3ICszNTcsNyBAQAogCQl3cCA9IGNwOwogCX0KIAotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAJd2hpbGUoY250ID49IGluZm8tPnBvcnR3aWR0aCkgewogCQlpID0gaW5mby0+YnVmZmVyX3NpemUgPiBjbnQ/IGNudDogaW5mby0+YnVmZmVyX3NpemU7CiAJCWlmKChyYyA9IGZsYXNoX3dyaXRlX2NmaWJ1ZmZlcihpbmZvLCB3cCwgc3JjLGkpKSAhPSBFUlJfT0spCkBAIC0zNzgsNyArMzc4LDcgQEAKIAkJd3AgKz0gaW5mby0+cG9ydHdpZHRoOwogCQljbnQgLT0gaW5mby0+cG9ydHdpZHRoOwogCX0KLSNlbmRpZiAvKiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLwogCWlmIChjbnQgPT0gMCkgewogCQlyZXR1cm4gKDApOwogCX0KQEAgLTcyMCw3ICs3MjAsNyBAQAogCXJldHVybiBmbGFzaF9mdWxsX3N0YXR1c19jaGVjayhpbmZvLCAwLCBpbmZvLT53cml0ZV90b3V0LCAid3JpdGUiKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAKIC8qIGxvb3AgdGhyb3VnaCB0aGUgc2VjdG9ycyBmcm9tIHRoZSBoaWdoZXN0IGFkZHJlc3MKICAqIHdoZW4gdGhlIHBhc3NlZCBhZGRyZXNzIGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gdGhlIHNlY3RvciBhZGRyZXNzCkBAIC03OTAsNCArNzkwLDQgQEAKIAlmbGFzaF93cml0ZV9jbWQoaW5mbywgc2VjdG9yLCAwLCBGTEFTSF9DTURfQ0xFQVJfU1RBVFVTKTsKIAlyZXR1cm4gcmV0Y29kZTsKIH0KLSNlbmRpZiAvKiBDRkdfVVNFX0ZMQVNIX0JVRkZFUl9XUklURSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfVVNFX0ZMQVNIX0JVRkZFUl9XUklURSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2JjODI0MC9mbGFzaC5jIGIvYm9hcmQvc2JjODI0MC9mbGFzaC5jCmluZGV4IGRlYzYxNTYuLmEwOTU3NTMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NiYzgyNDAvZmxhc2guYworKysgYi9ib2FyZC9zYmM4MjQwL2ZsYXNoLmMKQEAgLTMyLDEwICszMiwxMCBAQAogI2luY2x1ZGUgPG1wYzgyNHguaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAKLSNpZiBDRkdfTUFYX0ZMQVNIX0JBTktTICE9IDEKLSNlcnJvciAiQ0ZHX01BWF9GTEFTSF9CQU5LUyBtdXN0IGJlIDEiCisjaWYgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgIT0gMQorI2Vycm9yICJDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyBtdXN0IGJlIDEiCiAjZW5kaWYKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgICAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtMzk5LDcgKzM5OSw3IEBACiAJbGFzdCA9IHN0YXJ0OwogCXdoaWxlICgoYWRkclswXSAmIChGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9CiAJICAgICAgIChGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0KQEAgLTYyOCw3ICs2MjgsNyBAQAogCQl3aGlsZSAoKGRlc3QyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KIAkJICAgICAgIChkYXRhMltpXSAmIChGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApKSB7CiAKLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gKDEpOwogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9zYmM4MjQwL3NiYzgyNDAuYyBiL2JvYXJkL3NiYzgyNDAvc2JjODI0MC5jCmluZGV4IDA3NWUzNzcuLjAxYWJlMjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NiYzgyNDAvc2JjODI0MC5jCisrKyBiL2JvYXJkL3NiYzgyNDAvc2JjODI0MC5jCkBAIC01Myw3ICs1Myw3IEBACiAJbG9uZyBtZWFyMTsKIAlsb25nIGVtZWFyMTsKIAotCXNpemUgPSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIENGR19NQVhfUkFNX1NJWkUpOworCXNpemUgPSBnZXRfcmFtX3NpemUoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX01BWF9SQU1fU0laRSk7CiAKIAluZXdfYmFuazBfZW5kID0gc2l6ZSAtIDE7CiAJbWVhcjEgPSBtcGM4MjR4X21wYzEwN19nZXRyZWcoTUVBUjEpOwpAQCAtOTcsOSArOTcsOSBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogaW50IG1pc2NfaW5pdF9yICh2b2lkKQogewotI2lmZGVmIENGR19MRURfQkFTRQotCSooKHVuc2lnbmVkIGNoYXIgKikgKENGR19MRURfQkFTRSkpID0gMHhGRjsKLSNlbmRpZiAvKiBDRkdfTEVEX0JBU0UgKi8KKyNpZmRlZiBDT05GSUdfU1lTX0xFRF9CQVNFCisJKigodW5zaWduZWQgY2hhciAqKSAoQ09ORklHX1NZU19MRURfQkFTRSkpID0gMHhGRjsKKyNlbmRpZiAvKiBDT05GSUdfU1lTX0xFRF9CQVNFICovCiAKIAlyZXR1cm4gKDApOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvc2JjODI2MC9mbGFzaC5jIGIvYm9hcmQvc2JjODI2MC9mbGFzaC5jCmluZGV4IGQzYjFmMzEuLjY0NWM2N2YgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NiYzgyNjAvZmxhc2guYworKysgYi9ib2FyZC9zYmM4MjYwL2ZsYXNoLmMKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtNDksMjEgKzQ5LDIxIEBACiAgICAgaW50IGk7CiAKICAgICAvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0gICAgZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisgICAgZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogICAgIH0KIAogICAgIC8qIGZvciBub3csIG9ubHkgc3VwcG9ydCB0aGUgNCBNQiBGbGFzaCBTSU1NICovCi0gICAgc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisgICAgc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAgICAgLyoKICAgICAgKiBwcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKICAgICAgKi8KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIMF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSDBfQkFTRQogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC03Nyw3ICs3Nyw3IEBACiAJCSAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKLSAgICByZXR1cm4gLypzaXplKi8gKENGR19GTEFTSDBfU0laRSAqIDEwMjQgKiAxMDI0KTsKKyAgICByZXR1cm4gLypzaXplKi8gKENPTkZJR19TWVNfRkxBU0gwX1NJWkUgKiAxMDI0ICogMTAyNCk7CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1OCw3ICsyNTgsNyBAQAogICAgIGxhc3QgID0gc3RhcnQ7CiAgICAgYWRkciA9ICh2dV9sb25nKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAgICAgd2hpbGUgKChhZGRyWzBdICYgMHg4MDgwODA4MCkgIT0gMHg4MDgwODA4MCkgewotCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkgICAgcHJpbnRmICgiVGltZW91dFxuIik7CiAJICAgIHJldHVybiAxOwogCX0KQEAgLTM4MSw3ICszODEsNyBAQAogICAgIC8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KICAgICBzdGFydCA9IGdldF90aW1lciAoMCk7CiAgICAgd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDgwODA4MDgwKSAhPSAoZGF0YSAmIDB4ODA4MDgwODApKSB7Ci0JaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJICAgIHJldHVybiAoMSk7CiAJfQogICAgIH0KZGlmZiAtLWdpdCBhL2JvYXJkL3NiYzgyNjAvc2JjODI2MC5jIGIvYm9hcmQvc2JjODI2MC9zYmM4MjYwLmMKaW5kZXggNTc4MWY2Mi4uZjVmMjNiZSAxMDA2NDQKLS0tIGEvYm9hcmQvc2JjODI2MC9zYmM4MjYwLmMKKysrIGIvYm9hcmQvc2JjODI2MC9zYmM4MjYwLmMKQEAgLTIxMCwxMCArMjEwLDEwIEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7Ci0Jdm9sYXRpbGUgdWNoYXIgYyA9IDAsICpyYW1hZGRyID0gKHVjaGFyICopIChDRkdfU0RSQU1fQkFTRSArIDB4OCk7Ci0JdWxvbmcgcHNkbXIgPSBDRkdfUFNETVI7CisJdm9sYXRpbGUgdWNoYXIgYyA9IDAsICpyYW1hZGRyID0gKHVjaGFyICopIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDgpOworCXVsb25nIHBzZG1yID0gQ09ORklHX1NZU19QU0RNUjsKIAlpbnQgaTsKIAogCS8qCkBAIC0yMzMsMTEgKzIzMywxMSBAQAogCSAqICBhY2Nlc3NpbmcgdGhlIFNEUkFNIHdpdGggYSBzaW5nbGUtYnl0ZSB0cmFuc2FjdGlvbi4iCiAJICoKIAkgKiBUaGUgYXBwcm9wcmlhdGUgQlJ4L09SeCByZWdpc3RlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0IHdoZW4gd2UKLQkgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDRkdfU0RSQU1fQkFTRS4KKwkgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDT05GSUdfU1lTX1NEUkFNX0JBU0UuCiAJICovCiAKLQltZW1jdGwtPm1lbWNfcHNydCA9IENGR19QU1JUOwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfcHNydCA9IENPTkZJR19TWVNfUFNSVDsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCiAJbWVtY3RsLT5tZW1jX3BzZG1yID0gcHNkbXIgfCBQU0RNUl9PUF9QUkVBOwogCSpyYW1hZGRyID0gYzsKQEAgLTI1MywxNSArMjUzLDE1IEBACiAJKnJhbWFkZHIgPSBjOwogCiAJLyogcmV0dXJuIHRvdGFsIHJhbSBzaXplICovCi0JcmV0dXJuIChDRkdfU0RSQU0wX1NJWkUgKiAxMDI0ICogMTAyNCk7CisJcmV0dXJuIChDT05GSUdfU1lTX1NEUkFNMF9TSVpFICogMTAyNCAqIDEwMjQpOwogfQogCiAjaWZkZWYgQ09ORklHX01JU0NfSU5JVF9SCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiBpbnQgbWlzY19pbml0X3IgKHZvaWQpCiB7Ci0jaWZkZWYgQ0ZHX0xFRF9CQVNFCi0JdWNoYXIgZHMgPSAqKHVuc2lnbmVkIGNoYXIgKikgKENGR19MRURfQkFTRSArIDEpOworI2lmZGVmIENPTkZJR19TWVNfTEVEX0JBU0UKKwl1Y2hhciBkcyA9ICoodW5zaWduZWQgY2hhciAqKSAoQ09ORklHX1NZU19MRURfQkFTRSArIDEpOwogCXVjaGFyIHNzOwogCXVjaGFyIHRtcFs2NF07CiAJaW50IHJlczsKQEAgLTI4MCwxMCArMjgwLDEwIEBACiAJCQl0bXBbMTddID0gJ1wwJzsKIAkJCXNldGVudiAoImV0aGFkZHIiLCB0bXApOwogCQkJLyogc2V0IHRoZSBsZWQgdG8gc2hvdyB0aGUgYWRkcmVzcyAqLwotCQkJKigodW5zaWduZWQgY2hhciAqKSAoQ0ZHX0xFRF9CQVNFICsgMSkpID0gZHM7CisJCQkqKCh1bnNpZ25lZCBjaGFyICopIChDT05GSUdfU1lTX0xFRF9CQVNFICsgMSkpID0gZHM7CiAJCX0KIAl9Ci0jZW5kaWYgLyogQ0ZHX0xFRF9CQVNFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19MRURfQkFTRSAqLwogCXJldHVybiAoMCk7CiB9CiAjZW5kaWYgLyogQ09ORklHX01JU0NfSU5JVF9SICovCmRpZmYgLS1naXQgYS9ib2FyZC9zYmM4MzQ5L3BjaS5jIGIvYm9hcmQvc2JjODM0OS9wY2kuYwppbmRleCA1MjdmN2U0Li45MDIyYzU1IDEwMDY0NAotLS0gYS9ib2FyZC9zYmM4MzQ5L3BjaS5jCisrKyBiL2JvYXJkL3NiYzgzNDkvcGNpLmMKQEAgLTQwLDggKzQwLDggQEAKICNpZmRlZiBDT05GSUdfUENJCiAKIC8qIFN5c3RlbSBSQU0gbWFwcGVkIHRvIFBDSSBzcGFjZSAqLwotI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fQlVTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9QSFlTCUNGR19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9CVVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9QSFlTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQogCiAjaWZuZGVmIENPTkZJR19QQ0lfUE5QCiBzdGF0aWMgc3RydWN0IHBjaV9jb25maWdfdGFibGUgcGNpX21wYzgzNDllbWRzX2NvbmZpZ190YWJsZVtdID0gewpAQCAtOTAsNyArOTAsNyBAQAogCXUzMiBkZXY7CiAJc3RydWN0CXBjaV9jb250cm9sbGVyICogaG9zZTsKIAotCWltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAljbGsgPSAoY2xrODN4eF90ICopJmltbXItPmNsazsKIAlwY2lfbGF3ID0gaW1tci0+c3lzY29uZi5wY2lsYXc7CiAJcGNpX3BvdCA9IGltbXItPmlvcy5wb3Q7CkBAIC0xMzIsMTAgKzEzMiwxMCBAQAogCS8qCiAJICogQ29uZmlndXJlIFBDSSBMb2NhbCBBY2Nlc3MgV2luZG93cwogCSAqLwotCXBjaV9sYXdbMF0uYmFyID0gQ0ZHX1BDSTFfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMF0uYmFyID0gQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzBdLmFyID0gTEFXQVJfRU4gfCBMQVdBUl9TSVpFXzFHOwogCi0JcGNpX2xhd1sxXS5iYXIgPSBDRkdfUENJMV9JT19QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzFdLmJhciA9IENPTkZJR19TWVNfUENJMV9JT19QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzFdLmFyID0gTEFXQVJfRU4gfCBMQVdBUl9TSVpFXzRNOwogCiAJLyoKQEAgLTE0MywxOCArMTQzLDE4IEBACiAJICovCiAKIAkvKiBQQ0kxIG1lbSBzcGFjZSAtIHByZWZldGNoICovCi0JcGNpX3BvdFswXS5wb3RhciA9IChDRkdfUENJMV9NRU1fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOwotCXBjaV9wb3RbMF0ucG9iYXIgPSAoQ0ZHX1BDSTFfTUVNX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKKwlwY2lfcG90WzBdLnBvdGFyID0gKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbMF0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CiAJcGNpX3BvdFswXS5wb2NtciA9IFBPQ01SX0VOIHwgUE9DTVJfUFJFRkVUQ0hfRU4gfCAoUE9DTVJfQ01fMjU2TSAmIFBPQ01SX0NNX01BU0spOwogCiAJLyogUENJMSBJTyBzcGFjZSAqLwotCXBjaV9wb3RbMV0ucG90YXIgPSAoQ0ZHX1BDSTFfSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOwotCXBjaV9wb3RbMV0ucG9iYXIgPSAoQ0ZHX1BDSTFfSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbMV0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzFdLnBvYmFyID0gKENPTkZJR19TWVNfUENJMV9JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CiAJcGNpX3BvdFsxXS5wb2NtciA9IFBPQ01SX0VOIHwgUE9DTVJfSU8gfCAoUE9DTVJfQ01fMU0gJiBQT0NNUl9DTV9NQVNLKTsKIAogCS8qIFBDSTEgbW1pbyAtIG5vbi1wcmVmZXRjaCBtZW0gc3BhY2UgKi8KLQlwY2lfcG90WzJdLnBvdGFyID0gKENGR19QQ0kxX01NSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOwotCXBjaV9wb3RbMl0ucG9iYXIgPSAoQ0ZHX1BDSTFfTU1JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CisJcGNpX3BvdFsyXS5wb3RhciA9IChDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7CisJcGNpX3BvdFsyXS5wb2JhciA9IChDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CiAJcGNpX3BvdFsyXS5wb2NtciA9IFBPQ01SX0VOIHwgKFBPQ01SX0NNXzI1Nk0gJiBQT0NNUl9DTV9NQVNLKTsKIAogCS8qCkBAIC0xNzMsMjMgKzE3MywyMyBAQAogCiAJLyogUENJIG1lbW9yeSBwcmVmZXRjaCBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkgICAgICAgQ0ZHX1BDSTFfTUVNX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMV9NRU1fUEhZUywKLQkJICAgICAgIENGR19QQ0kxX01FTV9TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9NRU18UENJX1JFR0lPTl9QUkVGRVRDSCk7CiAKIAkvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCSAgICAgICBDRkdfUENJMV9NTUlPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMV9NTUlPX1BIWVMsCi0JCSAgICAgICBDRkdfUENJMV9NTUlPX1NJWkUsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01NSU9fUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9NTUlPX1NJWkUsCiAJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAKIAkvKiBQQ0kgSU8gc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJICAgICAgIENGR19QQ0kxX0lPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMV9JT19QSFlTLAotCQkgICAgICAgQ0ZHX1BDSTFfSU9fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCiAJLyogU3lzdGVtIG1lbW9yeSBzcGFjZSAqLwpAQCAtMjAyLDggKzIwMiw4IEBACiAJaG9zZS0+cmVnaW9uX2NvdW50ID0gNDsKIAogCXBjaV9zZXR1cF9pbmRpcmVjdChob3NlLAotCQkJICAgKENGR19JTU1SKzB4ODMwMCksCi0JCQkgICAoQ0ZHX0lNTVIrMHg4MzA0KSk7CisJCQkgICAoQ09ORklHX1NZU19JTU1SKzB4ODMwMCksCisJCQkgICAoQ09ORklHX1NZU19JTU1SKzB4ODMwNCkpOwogCiAJcGNpX3JlZ2lzdGVyX2hvc2UoaG9zZSk7CiAKQEAgLTIzOSwxOCArMjM5LDE4IEBACiAJICovCiAKIAkvKiBQQ0kyIG1lbSBzcGFjZSAtIHByZWZldGNoICovCi0JcGNpX3BvdFszXS5wb3RhciA9IChDRkdfUENJMl9NRU1fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOwotCXBjaV9wb3RbM10ucG9iYXIgPSAoQ0ZHX1BDSTJfTUVNX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKKwlwY2lfcG90WzNdLnBvdGFyID0gKENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbM10ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CiAJcGNpX3BvdFszXS5wb2NtciA9IFBPQ01SX0VOIHwgUE9DTVJfUENJMiB8IFBPQ01SX1BSRUZFVENIX0VOIHwgKFBPQ01SX0NNXzI1Nk0gJiBQT0NNUl9DTV9NQVNLKTsKIAogCS8qIFBDSTIgSU8gc3BhY2UgKi8KLQlwY2lfcG90WzRdLnBvdGFyID0gKENGR19QQ0kyX0lPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKLQlwY2lfcG90WzRdLnBvYmFyID0gKENGR19QQ0kyX0lPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKKwlwY2lfcG90WzRdLnBvdGFyID0gKENPTkZJR19TWVNfUENJMl9JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7CisJcGNpX3BvdFs0XS5wb2JhciA9IChDT05GSUdfU1lTX1BDSTJfSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOwogCXBjaV9wb3RbNF0ucG9jbXIgPSBQT0NNUl9FTiB8IFBPQ01SX1BDSTIgfCBQT0NNUl9JTyB8IChQT0NNUl9DTV8xTSAmIFBPQ01SX0NNX01BU0spOwogCiAJLyogUENJMiBtbWlvIC0gbm9uLXByZWZldGNoIG1lbSBzcGFjZSAqLwotCXBjaV9wb3RbNV0ucG90YXIgPSAoQ0ZHX1BDSTJfTU1JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFs1XS5wb2JhciA9IChDRkdfUENJMl9NTUlPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKKwlwY2lfcG90WzVdLnBvdGFyID0gKENPTkZJR19TWVNfUENJMl9NTUlPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzVdLnBvYmFyID0gKENPTkZJR19TWVNfUENJMl9NTUlPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzVdLnBvY21yID0gUE9DTVJfRU4gfCBQT0NNUl9QQ0kyIHwgKFBPQ01SX0NNXzI1Nk0gJiBQT0NNUl9DTV9NQVNLKTsKIAogCS8qCkBAIC0yNjksMjMgKzI2OSwyMyBAQAogCiAJLyogUENJIG1lbW9yeSBwcmVmZXRjaCBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkgICAgICAgQ0ZHX1BDSTJfTUVNX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMl9NRU1fUEhZUywKLQkJICAgICAgIENGR19QQ0kyX01FTV9TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9NRU18UENJX1JFR0lPTl9QUkVGRVRDSCk7CiAKIAkvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCSAgICAgICBDRkdfUENJMl9NTUlPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMl9NTUlPX1BIWVMsCi0JCSAgICAgICBDRkdfUENJMl9NTUlPX1NJWkUsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfTU1JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01NSU9fUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9NTUlPX1NJWkUsCiAJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAKIAkvKiBQQ0kgSU8gc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJICAgICAgIENGR19QQ0kyX0lPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMl9JT19QSFlTLAotCQkgICAgICAgQ0ZHX1BDSTJfSU9fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfSU9fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCiAJLyogU3lzdGVtIG1lbW9yeSBzcGFjZSAqLwpAQCAtMjk4LDggKzI5OCw4IEBACiAJaG9zZS0+cmVnaW9uX2NvdW50ID0gNDsKIAogCXBjaV9zZXR1cF9pbmRpcmVjdChob3NlLAotCQkJICAgKENGR19JTU1SKzB4ODM4MCksCi0JCQkgICAoQ0ZHX0lNTVIrMHg4Mzg0KSk7CisJCQkgICAoQ09ORklHX1NZU19JTU1SKzB4ODM4MCksCisJCQkgICAoQ09ORklHX1NZU19JTU1SKzB4ODM4NCkpOwogCiAJcGNpX3JlZ2lzdGVyX2hvc2UoaG9zZSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL3NiYzgzNDkvc2JjODM0OS5jIGIvYm9hcmQvc2JjODM0OS9zYmM4MzQ5LmMKaW5kZXggOTNhZGEwYi4uNDE1NGYyOSAxMDA2NDQKLS0tIGEvYm9hcmQvc2JjODM0OS9zYmM4MzQ5LmMKKysrIGIvYm9hcmQvc2JjODM0OS9zYmM4MzQ5LmMKQEAgLTU0LDE0ICs1NCwxNCBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdTMyIG1zaXplID0gMDsKIAogCWlmICgoaW0tPnN5c2NvbmYuaW1tcmJhciAmIElNTVJCQVJfQkFTRV9BRERSKSAhPSAodTMyKWltKQogCQlyZXR1cm4gLTE7CiAKIAkvKiBERFIgU0RSQU0gLSBNYWluIFNPRElNTSAqLwotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX0JBU0UgJiBMQVdCQVJfQkFSOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9CQVNFICYgTEFXQkFSX0JBUjsKICNpZiBkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKQogCW1zaXplID0gc3BkX3NkcmFtKCk7CiAjZWxzZQpAQCAtODgsMTIgKzg4LDEyIEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IGZpeGVkX3NkcmFtKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdTMyIG1zaXplID0gMDsKIAl1MzIgZGRyX3NpemU7CiAJdTMyIGRkcl9zaXplX2xvZzI7CiAKLQltc2l6ZSA9IENGR19ERFJfU0laRTsKKwltc2l6ZSA9IENPTkZJR19TWVNfRERSX1NJWkU7CiAJZm9yIChkZHJfc2l6ZSA9IG1zaXplIDw8IDIwLCBkZHJfc2l6ZV9sb2cyID0gMDsKIAkgICAgIChkZHJfc2l6ZSA+IDEpOwogCSAgICAgZGRyX3NpemUgPSBkZHJfc2l6ZT4+MSwgZGRyX3NpemVfbG9nMisrKSB7CkBAIC0xMDEsMjIgKzEwMSwyMiBAQAogCQkJcmV0dXJuIC0xOwogCQl9CiAJfQotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX1NEUkFNX0JBU0UgJiAweGZmZmZmMDAwOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICYgMHhmZmZmZjAwMDsKIAlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYXIgPSBMQVdBUl9FTiB8ICgoZGRyX3NpemVfbG9nMiAtIDEpICYgTEFXQVJfU0laRSk7CiAKLSNpZiAoQ0ZHX0REUl9TSVpFICE9IDI1NikKKyNpZiAoQ09ORklHX1NZU19ERFJfU0laRSAhPSAyNTYpCiAjd2FybmluZyBDdXJyZW50bHkgYW55IGRkciBzaXplIG90aGVyIHRoYW4gMjU2IGlzIG5vdCBzdXBwb3J0ZWQKICNlbmRpZgogCWltLT5kZHIuY3NibmRzWzJdLmNzYm5kcyA9IDB4MDAwMDAwMGY7Ci0JaW0tPmRkci5jc19jb25maWdbMl0gPSBDRkdfRERSX0NPTkZJRzsKKwlpbS0+ZGRyLmNzX2NvbmZpZ1syXSA9IENPTkZJR19TWVNfRERSX0NPTkZJRzsKIAogCS8qIGN1cnJlbnRseSB3ZSB1c2Ugb25seSBvbmUgQ1MsIHNvIGRpc2FibGUgdGhlIG90aGVyIGJhbmtzICovCiAJaW0tPmRkci5jc19jb25maWdbMF0gPSAwOwogCWltLT5kZHIuY3NfY29uZmlnWzFdID0gMDsKIAlpbS0+ZGRyLmNzX2NvbmZpZ1szXSA9IDA7CiAKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOworCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzE7CisJaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMjsKIAogCWltLT5kZHIuc2RyYW1fY2ZnID0KIAkJU0RSQU1fQ0ZHX1NSRU4KQEAgLTEyOCwxNiArMTI4LDE2IEBACiAJLyogZm9yIDMyLWJpdCBtb2RlIGJ1cnN0IGxlbmd0aCBpcyA4ICovCiAJaW0tPmRkci5zZHJhbV9jZmcgfD0gKFNEUkFNX0NGR18zMl9CRSB8IFNEUkFNX0NGR184X0JFKTsKICNlbmRpZgotCWltLT5kZHIuc2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERTsKKwlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDT05GSUdfU1lTX0REUl9NT0RFOwogCi0JaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFJfSU5URVJWQUw7CisJaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENPTkZJR19TWVNfRERSX0lOVEVSVkFMOwogCXVkZWxheSgyMDApOwogCiAJLyogZW5hYmxlIEREUiBjb250cm9sbGVyICovCiAJaW0tPmRkci5zZHJhbV9jZmcgfD0gU0RSQU1fQ0ZHX01FTV9FTjsKIAlyZXR1cm4gbXNpemU7CiB9Ci0jZW5kaWYvKiFDRkdfU1BEX0VFUFJPTSovCisjZW5kaWYvKiFDT05GSUdfU1lTX1NQRF9FRVBST00qLwogCiAKIGludCBjaGVja2JvYXJkICh2b2lkKQpAQCAtMTQ5LDQ0ICsxNDksNDQgQEAKIC8qCiAgKiBpZiBib2FyZCBpcyBmaXR0ZWQgd2l0aCBTRFJBTQogICovCi0jaWYgZGVmaW5lZChDRkdfQlIyX1BSRUxJTSkgIFwKLQkmJiBkZWZpbmVkKENGR19PUjJfUFJFTElNKSBcCi0JJiYgZGVmaW5lZChDRkdfTEJMQVdCQVIyX1BSRUxJTSkgXAotCSYmIGRlZmluZWQoQ0ZHX0xCTEFXQVIyX1BSRUxJTSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlIyX1BSRUxJTSkgIFwKKwkmJiBkZWZpbmVkKENPTkZJR19TWVNfT1IyX1BSRUxJTSkgXAorCSYmIGRlZmluZWQoQ09ORklHX1NZU19MQkxBV0JBUjJfUFJFTElNKSBcCisJJiYgZGVmaW5lZChDT05GSUdfU1lTX0xCTEFXQVIyX1BSRUxJTSkKIC8qCiAgKiBJbml0aWFsaXplIFNEUkFNIG1lbW9yeSBvbiB0aGUgTG9jYWwgQnVzLgogICovCiAKIHZvaWQgc2RyYW1faW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGxidXM4M3h4X3QgKmxiYz0gJmltbWFwLT5sYnVzOwotCXVpbnQgKnNkcmFtX2FkZHIgPSAodWludCAqKUNGR19MQkNfU0RSQU1fQkFTRTsKKwl1aW50ICpzZHJhbV9hZGRyID0gKHVpbnQgKilDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFOwogCiAJcHV0cygiXG4gICBTRFJBTSBvbiBMb2NhbCBCdXM6ICIpOwotCXByaW50X3NpemUgKENGR19MQkNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0LCAiXG4iKTsKKwlwcmludF9zaXplIChDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQsICJcbiIpOwogCiAJLyoKIAkgKiBTZXR1cCBTRFJBTSBCYXNlIGFuZCBPcHRpb24gUmVnaXN0ZXJzLCBhbHJlYWR5IGRvbmUgaW4gY3B1X2luaXQuYwogCSAqLwogCiAJLyogc2V0dXAgbXRycHQsIGxzcnQgYW5kIGxiY3IgZm9yIExCIGJ1cyAqLwotCWxiYy0+bGJjciA9IENGR19MQkNfTEJDUjsKLQlsYmMtPm1ydHByID0gQ0ZHX0xCQ19NUlRQUjsKLQlsYmMtPmxzcnQgPSBDRkdfTEJDX0xTUlQ7CisJbGJjLT5sYmNyID0gQ09ORklHX1NZU19MQkNfTEJDUjsKKwlsYmMtPm1ydHByID0gQ09ORklHX1NZU19MQkNfTVJUUFI7CisJbGJjLT5sc3J0ID0gQ09ORklHX1NZU19MQkNfTFNSVDsKIAlhc20oInN5bmMiKTsKIAogCS8qCiAJICogQ29uZmlndXJlIHRoZSBTRFJBTSBjb250cm9sbGVyIE1hY2hpbmUgTW9kZSBSZWdpc3Rlci4KIAkgKi8KLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl81OyAvKiAweDQwNjM2NzMzOyBub3JtYWwgb3BlcmF0aW9uICovCisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzU7IC8qIDB4NDA2MzY3MzM7IG5vcm1hbCBvcGVyYXRpb24gKi8KIAotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzE7IC8qIDB4Njg2MzY3MzM7IHByZWNoYXJnZSBhbGwgdGhlIGJhbmtzICovCisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzE7IC8qIDB4Njg2MzY3MzM7IHByZWNoYXJnZSBhbGwgdGhlIGJhbmtzICovCiAJYXNtKCJzeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXVkZWxheSgxMDApOwogCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfMjsgLyogMHg0ODYzNjczMzsgYXV0byByZWZyZXNoICovCisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzI7IC8qIDB4NDg2MzY3MzM7IGF1dG8gcmVmcmVzaCAqLwogCWFzbSgic3luYyIpOwogCS8qMSB0aW1lcyovCiAJKnNkcmFtX2FkZHIgPSAweGZmOwpAQCAtMjE0LDEyICsyMTQsMTIgQEAKIAl1ZGVsYXkoMTAwKTsKIAogCS8qIDB4NTg2MzY3MzM7IG1vZGUgcmVnaXN0ZXIgd3JpdGUgb3BlcmF0aW9uICovCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfNDsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfNDsKIAlhc20oInN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJdWRlbGF5KDEwMCk7CiAKLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl81OyAvKiAweDQwNjM2NzMzOyBub3JtYWwgb3BlcmF0aW9uICovCisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzU7IC8qIDB4NDA2MzY3MzM7IG5vcm1hbCBvcGVyYXRpb24gKi8KIAlhc20oInN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJdWRlbGF5KDEwMCk7CmRpZmYgLS1naXQgYS9ib2FyZC9zYmM4NTQ4L2xhdy5jIGIvYm9hcmQvc2JjODU0OC9sYXcuYwppbmRleCBhYjU0MjYwLi5lOGM3YWUyIDEwMDY0NAotLS0gYS9ib2FyZC9zYmM4NTQ4L2xhdy5jCisrKyBiL2JvYXJkL3NiYzg1NDgvbGF3LmMKQEAgLTQ2LDEyICs0NiwxMiBAQAogCiBzdHJ1Y3QgbGF3X2VudHJ5IGxhd190YWJsZVtdID0gewogI2lmbmRlZiBDT05GSUdfU1BEX0VFUFJPTQotCVNFVF9MQVcoQ0ZHX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9ERFIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfRERSKSwKICNlbmRpZgotCVNFVF9MQVcoQ0ZHX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCi0JU0VUX0xBVyhDRkdfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0kpLAogCS8qIExCQyB3aW5kb3cgLSBtYXBzIDI1Nk0gMHhmMDAwMDAwMCAtPiAweGZmZmZmZmZmICovCi0JU0VUX0xBVyhDRkdfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCisJU0VUX0xBVyhDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAogfTsKIAogaW50IG51bV9sYXdfZW50cmllcyA9IEFSUkFZX1NJWkUobGF3X3RhYmxlKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3NiYzg1NDgvc2JjODU0OC5jIGIvYm9hcmQvc2JjODU0OC9zYmM4NTQ4LmMKaW5kZXggZjMxZDdkNi4uMjFmODJmMiAxMDA2NDQKLS0tIGEvYm9hcmQvc2JjODU0OC9zYmM4NTQ4LmMKKysrIGIvYm9hcmQvc2JjODU0OC9zYmM4NTQ4LmMKQEAgLTUzLDkgKzUzLDkgQEAKIAogaW50IGNoZWNrYm9hcmQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKLQl2b2xhdGlsZSBjY3NyX2xvY2FsX2VjbV90ICplY20gPSAodm9pZCAqKShDRkdfTVBDODV4eF9FQ01fQUREUik7Ci0Jdm9sYXRpbGUgdV9jaGFyICpyZXY9ICh2b2lkICopQ0ZHX0JEX1JFVjsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xvY2FsX2VjbV90ICplY20gPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfRUNNX0FERFIpOworCXZvbGF0aWxlIHVfY2hhciAqcmV2PSAodm9pZCAqKUNPTkZJR19TWVNfQkRfUkVWOwogCiAJcHJpbnRmICgiQm9hcmQ6IFdpbmQgUml2ZXIgU0JDODU0OCBSZXYuIDB4JTAxeFxuIiwKIAkJCSgqcmV2KSA+PiA0KTsKQEAgLTk4LDcgKzk4LDcgQEAKIAkJICogICAgT3ZlcnJpZGUgRExMID0gMSwgQ291cnNlIEFkaiA9IDEsIFRhcCBTZWxlY3QgPSAwCiAJCSAqLwogCi0JCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7CisJCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCiAJCWd1ci0+ZGRyZGxsY3IgPSAweDgxMDAwMDAwOwogCQlhc20oInN5bmM7aXN5bmM7bXN5bmMiKTsKQEAgLTEzNSw4ICsxMzUsOCBAQAogdm9pZAogbG9jYWxfYnVzX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOwotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCiAJdWludCBjbGtkaXY7CiAJdWludCBsYmNfaHo7CkBAIC0xNjksNDQgKzE2OSw0NCBAQAogdm9pZAogc2RyYW1faW5pdCh2b2lkKQogewotI2lmIGRlZmluZWQoQ0ZHX09SM19QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX0JSM19QUkVMSU0pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX09SM19QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjNfUFJFTElNKQogCiAJdWludCBpZHg7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOwotCXVpbnQgKnNkcmFtX2FkZHIgPSAodWludCAqKUNGR19MQkNfU0RSQU1fQkFTRTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOworCXVpbnQgKnNkcmFtX2FkZHIgPSAodWludCAqKUNPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0U7CiAJdWludCBsc2Rtcl9jb21tb247CiAKIAlwdXRzKCIgICAgU0RSQU06ICIpOwogCi0JcHJpbnRfc2l6ZSAoQ0ZHX0xCQ19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQsICJcbiIpOworCXByaW50X3NpemUgKENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCwgIlxuIik7CiAKIAkvKgogCSAqIFNldHVwIFNEUkFNIEJhc2UgYW5kIE9wdGlvbiBSZWdpc3RlcnMKIAkgKi8KLQlsYmMtPm9yMyA9IENGR19PUjNfUFJFTElNOworCWxiYy0+b3IzID0gQ09ORklHX1NZU19PUjNfUFJFTElNOwogCWFzbSgibXN5bmMiKTsKIAotCWxiYy0+YnIzID0gQ0ZHX0JSM19QUkVMSU07CisJbGJjLT5icjMgPSBDT05GSUdfU1lTX0JSM19QUkVMSU07CiAJYXNtKCJtc3luYyIpOwogCi0JbGJjLT5sYmNyID0gQ0ZHX0xCQ19MQkNSOworCWxiYy0+bGJjciA9IENPTkZJR19TWVNfTEJDX0xCQ1I7CiAJYXNtKCJtc3luYyIpOwogCiAKLQlsYmMtPmxzcnQgPSBDRkdfTEJDX0xTUlQ7Ci0JbGJjLT5tcnRwciA9IENGR19MQkNfTVJUUFI7CisJbGJjLT5sc3J0ID0gQ09ORklHX1NZU19MQkNfTFNSVDsKKwlsYmMtPm1ydHByID0gQ09ORklHX1NZU19MQkNfTVJUUFI7CiAJYXNtKCJtc3luYyIpOwogCiAJLyoKIAkgKiBNUEM4NTQ4IHVzZXMgIm5ldyIgMTUtMTYgc3R5bGUgYWRkcmVzc2luZy4KIAkgKi8KLQlsc2Rtcl9jb21tb24gPSBDRkdfTEJDX0xTRE1SX0NPTU1PTjsKLQlsc2Rtcl9jb21tb24gfD0gQ0ZHX0xCQ19MU0RNUl9CU01BMTUxNjsKKwlsc2Rtcl9jb21tb24gPSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT047CisJbHNkbXJfY29tbW9uIHw9IENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNTE2OwogCiAJLyoKIAkgKiBJc3N1ZSBQUkVDSEFSR0UgQUxMIGNvbW1hbmQuCiAJICovCi0JbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENGR19MQkNfTFNETVJfT1BfUENIQUxMOworCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEw7CiAJYXNtKCJzeW5jO21zeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwpAQCAtMjE2LDcgKzIxNiw3IEBACiAJICogSXNzdWUgOCBBVVRPIFJFRlJFU0ggY29tbWFuZHMuCiAJICovCiAJZm9yIChpZHggPSAwOyBpZHggPCA4OyBpZHgrKykgewotCQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0g7CisJCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0g7CiAJCWFzbSgic3luYzttc3luYyIpOwogCQkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwpAQCAtMjI2LDcgKzIyNiw3IEBACiAJLyoKIAkgKiBJc3N1ZSA4IE1PREUtc2V0IGNvbW1hbmQuCiAJICovCi0JbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENGR19MQkNfTFNETVJfT1BfTVJXOworCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlc7CiAJYXNtKCJzeW5jO21zeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwpAQCAtMjM1LDcgKzIzNSw3IEBACiAJLyoKIAkgKiBJc3N1ZSBOT1JNQUwgT1AgY29tbWFuZC4KIAkgKi8KLQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUw7CisJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTDsKIAlhc20oInN5bmM7bXN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC0yNDQsMTcgKzI0NCwxNyBAQAogI2VuZGlmCS8qIGVuYWJsZSBTRFJBTSBpbml0ICovCiB9CiAKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIGludAogdGVzdGRyYW0odm9pZCkKIHsKLQl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQl1aW50ICpwZW5kID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfRU5EOworCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwl1aW50ICpwZW5kID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX0VORDsKIAl1aW50ICpwOwogCiAJcHJpbnRmKCJUZXN0aW5nIERSQU0gZnJvbSAweCUwOHggdG8gMHglMDh4XG4iLAotCSAgICAgICBDRkdfTUVNVEVTVF9TVEFSVCwKLQkgICAgICAgQ0ZHX01FTVRFU1RfRU5EKTsKKwkgICAgICAgQ09ORklHX1NZU19NRU1URVNUX1NUQVJULAorCSAgICAgICBDT05GSUdfU1lTX01FTVRFU1RfRU5EKTsKIAogCXByaW50ZigiRFJBTSB0ZXN0IHBoYXNlIDE6XG4iKTsKIAlmb3IgKHAgPSBwc3RhcnQ7IHAgPCBwZW5kOyBwKyspCkBAIC0yOTAsOSArMjkwLDkgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBsb25nIGludCBmaXhlZF9zZHJhbSAodm9pZCkKIHsKLSAgICAjZGVmaW5lIENGR19ERFJfQ09OVFJPTCAweGMzMDBjMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05UUk9MIDB4YzMwMGMwMDAKIAotCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkciA9ICh2b2lkICopKENGR19NUEM4NXh4X0REUl9BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfRERSX0FERFIpOwogCiAJZGRyLT5jczBfYm5kcwkJPSAweDAwMDAwMDdmOwogCWRkci0+Y3MxX2JuZHMJCT0gMHgwMDgwMDBmZjsKQEAgLTMxOSwxMiArMzE5LDEyIEBACiAKIAkjaWYgZGVmaW5lZCAoQ09ORklHX0REUl9FQ0MpCiAJICAvKiBFbmFibGUgRUNDIGNoZWNraW5nICovCi0JICBkZHItPnNkcmFtX2NmZyA9IChDRkdfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKKwkgIGRkci0+c2RyYW1fY2ZnID0gKENPTkZJR19TWVNfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKIAkjZWxzZQotCSAgZGRyLT5zZHJhbV9jZmcgPSBDRkdfRERSX0NPTlRST0w7CisJICBkZHItPnNkcmFtX2NmZyA9IENPTkZJR19TWVNfRERSX0NPTlRST0w7CiAJI2VuZGlmCiAKLQlyZXR1cm4gQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKKwlyZXR1cm4gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CiB9CiAjZW5kaWYKIApAQCAtMzY3LDExICszNjcsMTEgQEAKIHZvaWQKIHBjaV9pbml0X2JvYXJkKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAogI2lmZGVmIENPTkZJR19QQ0kxCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJMV9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0kxX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaTFfaG9zZTsKIAlzdHJ1Y3QgcGNpX2NvbmZpZ190YWJsZSAqdGFibGU7CkBAIC0zOTcsMjQgKzM5NywyNCBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9CQVNFLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9QSFlTLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSAgICAgICBDRkdfUENJMV9JT19CQVNFLAotCQkJICAgICAgIENGR19QQ0kxX0lPX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSTFfSU9fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKIApAQCAtNDY2LDcgKzQ2Niw3IEBACiAKICNpZmRlZiBDT05GSUdfUENJRTEKIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0lFMV9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0lFMV9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2llMV9ob3NlOwogCWludCBwY2llX2VwID0gIChob3N0X2FnZW50ID09IDApIHx8IChob3N0X2FnZW50ID09IDIgKSB8fCAoaG9zdF9hZ2VudCA9PSAzKTsKQEAgLTQ4NiwyMyArNDg2LDIzIEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSAgICAgICBDRkdfUENJRTFfSU9fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJRTFfSU9fUEhZUywKLQkJCSAgICAgICBDRkdfUENJRTFfSU9fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfSU9fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAogCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2JjODU0OC90bGIuYyBiL2JvYXJkL3NiYzg1NDgvdGxiLmMKaW5kZXggNjMxNDAwNS4uMThkMTFmNiAxMDA2NDQKLS0tIGEvYm9hcmQvc2JjODU0OC90bGIuYworKysgYi9ib2FyZC9zYmM4NTQ4L3RsYi5jCkBAIC0yOCwxNiArMjgsMTYgQEAKIAogc3RydWN0IGZzbF9lX3RsYl9lbnRyeSB0bGJfdGFibGVbXSA9IHsKIAkvKiBUTEIgMCAtIGZvciB0ZW1wIHN0YWNrIGluIGNhY2hlICovCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiwgQ0ZHX0lOSVRfUkFNX0FERFIsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAogCkBAIC00Niw3ICs0Niw3IEBACiAJICogMHhmZjgwMDAwMAkxNk0JVExCIGZvciA4TUIgRkxBU0gKIAkgKiBPdXQgb2YgcmVzZXQgdGhpcyBlbnRyeSBpcyBvbmx5IDRLLgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfMTZNLCAxKSwKIApAQCAtNTQsNyArNTQsNyBAQAogCSAqIFRMQiAxOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweDgwMDAwMDAwCTI1Nk0JUENJMSBNRU0gRmlyc3QgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMsIENGR19QQ0kxX01FTV9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAxLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTYyLDcgKzYyLDcgQEAKIAkgKiBUTEIgMjoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg5MDAwMDAwMAkyNTZNCVBDSTEgTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAyLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTcxLDcgKzcxLDcgQEAKIAkgKiAweDAJCTI1Nk0gRERSIFNEUkFNCiAJICovCiAJI2lmICFkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKQotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0REUl9TRFJBTV9CQVNFLCBDRkdfRERSX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCSNlbmRpZgpAQCAtODEsNyArODEsNyBAQAogCSAqIDB4ZTAwMDAwMDAJMU0JQ0NTUkJBUgogCSAqIDB4ZTIwMDAwMDAJMTZNCVBDSTEgSU8KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDQsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC04OSw3ICs4OSw3IEBACiAJICogVExCIDU6CTY0TQlDYWNoZWFibGUsIG5vbi1ndWFyZGVkCiAJICogMHhmMDAwMDAwMAk2NE0JTEJDIFNEUkFNCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfTEJDX1NEUkFNX0JBU0UsIENGR19MQkNfU0RSQU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCA1LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtMTAwLDcgKzEwMCw3IEBACiAJICogMHhmODMwMDAwMAkxTQlCb2FyZCByZXZpc2lvbgogCSAqIDB4ZjhiMDAwMDAJMU0JRUVQUk9NCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRVBMRF9CQVNFLCBDRkdfRVBMRF9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19FUExEX0JBU0UsIENPTkZJR19TWVNfRVBMRF9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNiwgQk9PS0VfUEFHRVNaXzE2TSwgMSksCiB9OwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2JjODU2MC9sYXcuYyBiL2JvYXJkL3NiYzg1NjAvbGF3LmMKaW5kZXggMTBkZWRiNC4uNGU2YmFlZCAxMDA2NDQKLS0tIGEvYm9hcmQvc2JjODU2MC9sYXcuYworKysgYi9ib2FyZC9zYmM4NTYwL2xhdy5jCkBAIC01MSwxMCArNTEsMTAgQEAKIAogc3RydWN0IGxhd19lbnRyeSBsYXdfdGFibGVbXSA9IHsKICNpZm5kZWYgQ09ORklHX1NQRF9FRVBST00KLQlTRVRfTEFXKENGR19ERFJfU0RSQU1fQkFTRSwgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfRERSKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX0REUiksCiAjZW5kaWYKLQlTRVRfTEFXKENGR19QQ0lfTUVNX1BIWVMsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX1BDSSksCi0JU0VUX0xBVyhDRkdfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX0xCQyksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSV9NRU1fUEhZUywgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX0xCQyksCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2JjODU2MC9zYmM4NTYwLmMgYi9ib2FyZC9zYmM4NTYwL3NiYzg1NjAuYwppbmRleCBkYzY2MTcwLi40MTM5MjZkIDEwMDY0NAotLS0gYS9ib2FyZC9zYmM4NTYwL3NiYzg1NjAuYworKysgYi9ib2FyZC9zYmM4NTYwL3NiYzg1NjAuYwpAQCAtMTk3LDcgKzE5Nyw3IEBACiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mICh2b2lkKQogewogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKLSAgICB2b2xhdGlsZSBjY3NyX3BjaXhfdCAqcGNpID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfUENJWF9BRERSKTsKKyAgICB2b2xhdGlsZSBjY3NyX3BjaXhfdCAqcGNpID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X1BDSVhfQUREUik7CiAKICAgICBwY2ktPnBlZXIgJj0gMHhmZmZmZmZmZGY7IC8qIGRpc2FibGUgbWFzdGVyIGFib3J0ICovCiAjZW5kaWYKQEAgLTIwNyw3ICsyMDcsNyBAQAogdm9pZCByZXNldF9waHkgKHZvaWQpCiB7CiAjaWYgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkNDKSAvKiBhdm9pZCBjb21waWxlIHdhcm5pbmdzIGZvciBub3cgKi8KLQl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpiY3NyID0gKHVuc2lnbmVkIGNoYXIgKikgQ0ZHX0JDU1I7CisJdm9sYXRpbGUgdW5zaWduZWQgY2hhciAqYmNzciA9ICh1bnNpZ25lZCBjaGFyICopIENPTkZJR19TWVNfQkNTUjsKICNlbmRpZgogCS8qIHJlc2V0IEdpZ2EgYml0IEV0aGVybmV0IHBvcnQgaWYgbmVlZGVkIGhlcmUgKi8KIApAQCAtMjQ5LDkgKzI0OSw5IEBACiAJcHJpbnRmICgiXHRDUFU6ICVsdSBNSHpcbiIsIHN5c2luZm8uZnJlcVByb2Nlc3NvciAvIDEwMDAwMDApOwogCXByaW50ZiAoIlx0Q0NCOiAlbHUgTUh6XG4iLCBzeXNpbmZvLmZyZXFTeXN0ZW1CdXMgLyAxMDAwMDAwKTsKIAlwcmludGYgKCJcdEREUjogJWx1IE1IelxuIiwgc3lzaW5mby5mcmVxU3lzdGVtQnVzIC8gMjAwMDAwMCk7Ci0JaWYoKENGR19MQkNfTENSUiAmIDB4MGYpID09IDIgfHwgKENGR19MQkNfTENSUiAmIDB4MGYpID09IDQgXAotCQl8fCAoQ0ZHX0xCQ19MQ1JSICYgMHgwZikgPT0gOCkgewotCQlwcmludGYgKCJcdExCQzogJWx1IE1IelxuIiwgc3lzaW5mby5mcmVxU3lzdGVtQnVzIC8gMTAwMDAwMCAvKENGR19MQkNfTENSUiAmIDB4MGYpKTsKKwlpZigoQ09ORklHX1NZU19MQkNfTENSUiAmIDB4MGYpID09IDIgfHwgKENPTkZJR19TWVNfTEJDX0xDUlIgJiAweDBmKSA9PSA0IFwKKwkJfHwgKENPTkZJR19TWVNfTEJDX0xDUlIgJiAweDBmKSA9PSA4KSB7CisJCXByaW50ZiAoIlx0TEJDOiAlbHUgTUh6XG4iLCBzeXNpbmZvLmZyZXFTeXN0ZW1CdXMgLyAxMDAwMDAwIC8oQ09ORklHX1NZU19MQkNfTENSUiAmIDB4MGYpKTsKIAl9IGVsc2UgewogCQlwcmludGYoIlx0TEJDOiB1bmtub3duXG4iKTsKIAl9CkBAIC0yNjcsMTMgKzI2NywxMyBAQAogCiAjaWYgMAogI2lmICFkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpCi0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAJc3lzX2luZm9fdCBzeXNpbmZvOwogCXVpbnQgdGVtcF9sYmNkbGwgPSAwOwogI2VuZGlmCiAjZW5kaWYgLyogMCAqLwogI2lmICFkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpIHx8IGRlZmluZWQoQ09ORklHX0REUl9ETEwpCi0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKICNlbmRpZgogI2lmIGRlZmluZWQoQ09ORklHX0REUl9ETEwpCiAJdWludCB0ZW1wX2RkcmRsbCA9IDA7CkBAIC0yOTYsMzggKzI5NiwzOCBAQAogI2lmICFkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpIC8qIExvY2FsQnVzIFNEUkFNIGlzIG5vdCBlbXVsYXRpbmcgZmxhc2ggKi8KIAlnZXRfc3lzX2luZm8oJnN5c2luZm8pOwogCS8qIGlmIGxvY2FsYnVzIGZyZXEgaXMgbGVzcyB0aGFuIDY2TWh6LHdlIHVzZSBieXBhc3MgbW9kZSxvdGhlcndpc2UgdXNlIERMTCAqLwotCWlmKHN5c2luZm8uZnJlcVN5c3RlbUJ1cy8oQ0ZHX0xCQ19MQ1JSICYgMHgwZikgPCA2NjAwMDAwMCkgewotCQlsYmMtPmxjcnIgPSAoQ0ZHX0xCQ19MQ1JSICYgMHgwZmZmZmZmZil8IDB4ODAwMDAwMDA7CisJaWYoc3lzaW5mby5mcmVxU3lzdGVtQnVzLyhDT05GSUdfU1lTX0xCQ19MQ1JSICYgMHgwZikgPCA2NjAwMDAwMCkgeworCQlsYmMtPmxjcnIgPSAoQ09ORklHX1NZU19MQkNfTENSUiAmIDB4MGZmZmZmZmYpfCAweDgwMDAwMDAwOwogCX0gZWxzZSB7CiAjaWYgZGVmaW5lZChDT05GSUdfTVBDODV4eF9SRVYxKSAvKiBuZWVkIGNoYW5nZSBDTEtESVYgYmVmb3JlIGVuYWJsZSBETEwgKi8KIAkJbGJjLT5sY3JyID0gMHgxMDAwMDAwNDsgLyogZGVmYXVsdCBDTEtESVYgaXMgOCwgY2hhbmdlIGl0IHRvIDQgdGVtcG9yYXJpbHkgKi8KICNlbmRpZgotCQlsYmMtPmxjcnIgPSBDRkdfTEJDX0xDUlIgJiAweDdmZmZmZmZmOworCQlsYmMtPmxjcnIgPSBDT05GSUdfU1lTX0xCQ19MQ1JSICYgMHg3ZmZmZmZmZjsKIAkJdWRlbGF5KDIwMCk7CiAJCXRlbXBfbGJjZGxsID0gZ3VyLT5sYmNkbGxjcjsKIAkJZ3VyLT5sYmNkbGxjciA9ICgodGVtcF9sYmNkbGwgJiAweGZmKSA8PCAxNiApIHwgMHg4MDAwMDAwMDsKIAkJYXNtKCJzeW5jO2lzeW5jO21zeW5jIik7CiAJfQotCWxiYy0+b3IyID0gQ0ZHX09SMl9QUkVMSU07IC8qIDY0TUIgU0RSQU0gKi8KLQlsYmMtPmJyMiA9IENGR19CUjJfUFJFTElNOwotCWxiYy0+bGJjciA9IENGR19MQkNfTEJDUjsKLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl8xOworCWxiYy0+b3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOyAvKiA2NE1CIFNEUkFNICovCisJbGJjLT5icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CisJbGJjLT5sYmNyID0gQ09ORklHX1NZU19MQkNfTEJDUjsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfMTsKIAlhc20oInN5bmMiKTsKIAkodW5zaWduZWQgaW50KSAqICh1bG9uZyAqKTAgPSAweDAwMDAwMGZmOwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzI7CisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzI7CiAJYXNtKCJzeW5jIik7CiAJKHVuc2lnbmVkIGludCkgKiAodWxvbmcgKikwID0gMHgwMDAwMDBmZjsKLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl8zOworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl8zOwogCWFzbSgic3luYyIpOwogCSh1bnNpZ25lZCBpbnQpICogKHVsb25nICopMCA9IDB4MDAwMDAwZmY7Ci0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfNDsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfNDsKIAlhc20oInN5bmMiKTsKIAkodW5zaWduZWQgaW50KSAqICh1bG9uZyAqKTAgPSAweDAwMDAwMGZmOwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzU7CisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzU7CiAJYXNtKCJzeW5jIik7Ci0JbGJjLT5sc3J0ID0gQ0ZHX0xCQ19MU1JUOworCWxiYy0+bHNydCA9IENPTkZJR19TWVNfTEJDX0xTUlQ7CiAJYXNtKCJzeW5jIik7Ci0JbGJjLT5tcnRwciA9IENGR19MQkNfTVJUUFI7CisJbGJjLT5tcnRwciA9IENPTkZJR19TWVNfTEJDX01SVFBSOwogCWFzbSgic3luYyIpOwogI2VuZGlmCiAjZW5kaWYKQEAgLTMzOCw3ICszMzgsNyBAQAogCQkgKiBlbmFibGUgZXJyb3JzICovCiAJCXVpbnQgKnAgPSAwOwogCQl1aW50IGkgPSAwOwotCQl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICh2b2lkICopKENGR19NUEM4NXh4X0REUl9BRERSKTsKKwkJdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfRERSX0FERFIpOwogCQlkbWFfaW5pdCgpOwogCQlmb3IgKCpwID0gMDsgcCA8ICh1aW50ICopKDggKiAxMDI0KTsgcCsrKSB7CiAJCQlpZiAoKCh1bnNpZ25lZCBpbnQpcCAmIDB4MWYpID09IDApIHsgZGNieihwKTsgfQpAQCAtMzgxLDExICszODEsMTEgQEAKIH0KIAogCi0jaWYgZGVmaW5lZChDRkdfRFJBTV9URVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19EUkFNX1RFU1QpCiBpbnQgdGVzdGRyYW0gKHZvaWQpCiB7Ci0JdWludCAqcHN0YXJ0ID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7Ci0JdWludCAqcGVuZCA9ICh1aW50ICopIENGR19NRU1URVNUX0VORDsKKwl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CisJdWludCAqcGVuZCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9FTkQ7CiAJdWludCAqcDsKIAogCXByaW50ZigiU0RSQU0gdGVzdCBwaGFzZSAxOlxuIik7CkBAIC00MjIsMTIgKzQyMiwxMiBAQAogbG9uZyBpbnQgZml4ZWRfc2RyYW0gKHZvaWQpCiB7CiAKLSNkZWZpbmUgQ0ZHX0REUl9DT05UUk9MIDB4YzIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ09OVFJPTCAweGMyMDAwMDAwCiAKLSAgI2lmbmRlZiBDRkdfUkFNQk9PVAotCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkcj0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRERSX0FERFIpOworICAjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAorCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkcj0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0REUl9BRERSKTsKIAotI2lmIChDRkdfU0RSQU1fU0laRSA9PSA1MTIpCisjaWYgKENPTkZJR19TWVNfU0RSQU1fU0laRSA9PSA1MTIpCiAJZGRyLT5jczBfYm5kcwkJPSAweDAwMDAwMDBmOwogI2Vsc2UKIAlkZHItPmNzMF9ibmRzCQk9IDB4MDAwMDAwMDc7CkBAIC00NTIsMTQgKzQ1MiwxNCBAQAogCXVkZWxheSg1MDApOwogICAgICNpZiBkZWZpbmVkIChDT05GSUdfRERSX0VDQykKIAkvKiBFbmFibGUgRUNDIGNoZWNraW5nICovCi0JZGRyLT5zZHJhbV9jZmcgPSAoQ0ZHX0REUl9DT05UUk9MIHwgMHgyMDAwMDAwMCk7CisJZGRyLT5zZHJhbV9jZmcgPSAoQ09ORklHX1NZU19ERFJfQ09OVFJPTCB8IDB4MjAwMDAwMDApOwogICAgICNlbHNlCi0JZGRyLT5zZHJhbV9jZmcgPSBDRkdfRERSX0NPTlRST0w7CisJZGRyLT5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX0REUl9DT05UUk9MOwogICAgICNlbmRpZgogCWFzbSgic3luYzsgaXN5bmM7IG1zeW5jIik7CiAJdWRlbGF5KDUwMCk7CiAgICNlbmRpZgotCXJldHVybiBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OworCXJldHVybiBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKIH0KICNlbmRpZgkvKiAhZGVmaW5lZChDT05GSUdfU1BEX0VFUFJPTSkgKi8KIApkaWZmIC0tZ2l0IGEvYm9hcmQvc2JjODU2MC90bGIuYyBiL2JvYXJkL3NiYzg1NjAvdGxiLmMKaW5kZXggZDA3MzM5OS4uZmUwYWM3NiAxMDA2NDQKLS0tIGEvYm9hcmQvc2JjODU2MC90bGIuYworKysgYi9ib2FyZC9zYmM4NTYwL3RsYi5jCkBAIC0yOCw3ICsyOCw3IEBACiAKIHN0cnVjdCBmc2xfZV90bGJfZW50cnkgdGxiX3RhYmxlW10gPSB7CiAvKiBUTEIgZm9yIENDU1JCQVIgKElNTVIpICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfQ0NTUkJBUiwgQ0ZHX0NDU1JCQVJfUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQ0NTUkJBUiwgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAxLCBCT09LRV9QQUdFU1pfMU0sIDEpLAogCkBAIC00NCwyMCArNDQsMjAgQEAKIAkJICAgICAgMCwgMywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCiAjaWYgIWRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRERSX1NEUkFNX0JBU0UsIENGR19ERFJfU0RSQU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCA0LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKLQlTRVRfVExCX0VOVFJZKDEsIENGR19ERFJfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDAsIENGR19ERFJfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCA1LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAjZW5kaWYKIAotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0lOSVRfUkFNX0FERFIsIENGR19JTklUX1JBTV9BRERSLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCA2LCBCT09LRV9QQUdFU1pfMTZLLCAxKSwKIAotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSV9NRU1fUEhZUywgQ0ZHX1BDSV9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJX01FTV9QSFlTLCBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDcsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIH07CmRpZmYgLS1naXQgYS9ib2FyZC9zYmM4NjQxZC9sYXcuYyBiL2JvYXJkL3NiYzg2NDFkL2xhdy5jCmluZGV4IDgwMWM1YjcuLmRlNDdmY2QgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NiYzg2NDFkL2xhdy5jCisrKyBiL2JvYXJkL3NiYzg2NDFkL2xhdy5jCkBAIC00NCwxNSArNDQsMTUgQEAKIAogCiBzdHJ1Y3QgbGF3X2VudHJ5IGxhd190YWJsZVtdID0gewotCVNFVF9MQVcoQ0ZHX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9ERFJfMSksCi0JU0VUX0xBVyhDRkdfUENJMV9NRU1fQkFTRSwgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSTJfTUVNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8yKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0REUl8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzEpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCiAJU0VUX0xBVygweGY4MDAwMDAwLCBMQVdfU0laRV8yTSwgTEFXX1RSR1RfSUZfTEJDKSwKLQlTRVRfTEFXKENGR19QQ0kxX0lPX0JBU0UsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSTJfSU9fQkFTRSwgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0lfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTJfSU9fQkFTRSwgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCiAJU0VUX0xBVygweGZlMDAwMDAwLCBMQVdfU0laRV8zMk0sIExBV19UUkdUX0lGX0xCQyksCi0JU0VUX0xBVyhDRkdfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0REUl8yKSwKLQlTRVRfTEFXKENGR19SSU9fTUVNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1JJTykKKwlTRVRfTEFXKENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0REUl8yKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUklPX01FTV9CQVNFLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9SSU8pCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2JjODY0MWQvc2JjODY0MWQuYyBiL2JvYXJkL3NiYzg2NDFkL3NiYzg2NDFkLmMKaW5kZXggNjJiNDhjOC4uMDZkMWQyYSAxMDA2NDQKLS0tIGEvYm9hcmQvc2JjODY0MWQvc2JjODY0MWQuYworKysgYi9ib2FyZC9zYmM4NjQxZC9zYmM4NjQxZC5jCkBAIC02Niw3ICs2Niw3IEBACiAJZHJhbV9zaXplID0gZml4ZWRfc2RyYW0gKCk7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAJcHV0cyAoIiAgICBERFI6ICIpOwogCXJldHVybiBkcmFtX3NpemU7CiAjZW5kaWYKQEAgLTgyLDExICs4MiwxMSBAQAogCXJldHVybiBkcmFtX3NpemU7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIGludCB0ZXN0ZHJhbSAodm9pZCkKIHsKLQl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQl1aW50ICpwZW5kID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfRU5EOworCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwl1aW50ICpwZW5kID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX0VORDsKIAl1aW50ICpwOwogCiAJcHV0cyAoIlNEUkFNIHRlc3QgcGhhc2UgMTpcbiIpOwpAQCAtMTIyLDcyICsxMjIsNzIgQEAKICAqLwogbG9uZyBpbnQgZml4ZWRfc2RyYW0gKHZvaWQpCiB7Ci0jaWYgIWRlZmluZWQoQ0ZHX1JBTUJPT1QpCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyID0gJmltbWFwLT5pbV9kZHIxOwogCi0JZGRyLT5jczBfYm5kcyA9IENGR19ERFJfQ1MwX0JORFM7Ci0JZGRyLT5jczFfYm5kcyA9IENGR19ERFJfQ1MxX0JORFM7Ci0JZGRyLT5jczJfYm5kcyA9IENGR19ERFJfQ1MyX0JORFM7Ci0JZGRyLT5jczNfYm5kcyA9IENGR19ERFJfQ1MzX0JORFM7Ci0JZGRyLT5jczBfY29uZmlnID0gQ0ZHX0REUl9DUzBfQ09ORklHOwotCWRkci0+Y3MxX2NvbmZpZyA9IENGR19ERFJfQ1MxX0NPTkZJRzsKLQlkZHItPmNzMl9jb25maWcgPSBDRkdfRERSX0NTMl9DT05GSUc7Ci0JZGRyLT5jczNfY29uZmlnID0gQ0ZHX0REUl9DUzNfQ09ORklHOwotCWRkci0+dGltaW5nX2NmZ18zID0gQ0ZHX0REUl9USU1JTkdfMzsKLQlkZHItPnRpbWluZ19jZmdfMCA9IENGR19ERFJfVElNSU5HXzA7Ci0JZGRyLT50aW1pbmdfY2ZnXzEgPSBDRkdfRERSX1RJTUlOR18xOwotCWRkci0+dGltaW5nX2NmZ18yID0gQ0ZHX0REUl9USU1JTkdfMjsKLQlkZHItPnNkcmFtX2NmZ18xID0gQ0ZHX0REUl9DRkdfMUE7Ci0JZGRyLT5zZHJhbV9jZmdfMiA9IENGR19ERFJfQ0ZHXzI7Ci0JZGRyLT5zZHJhbV9tb2RlXzEgPSBDRkdfRERSX01PREVfMTsKLQlkZHItPnNkcmFtX21vZGVfMiA9IENGR19ERFJfTU9ERV8yOwotCWRkci0+c2RyYW1fbW9kZV9jbnRsID0gQ0ZHX0REUl9NT0RFX0NUTDsKLQlkZHItPnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKLQlkZHItPnNkcmFtX2RhdGFfaW5pdCA9IENGR19ERFJfREFUQV9JTklUOwotCWRkci0+c2RyYW1fY2xrX2NudGwgPSBDRkdfRERSX0NMS19DVFJMOworCWRkci0+Y3MwX2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUzsKKwlkZHItPmNzMV9ibmRzID0gQ09ORklHX1NZU19ERFJfQ1MxX0JORFM7CisJZGRyLT5jczJfYm5kcyA9IENPTkZJR19TWVNfRERSX0NTMl9CTkRTOworCWRkci0+Y3MzX2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzNfQk5EUzsKKwlkZHItPmNzMF9jb25maWcgPSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHOworCWRkci0+Y3MxX2NvbmZpZyA9IENPTkZJR19TWVNfRERSX0NTMV9DT05GSUc7CisJZGRyLT5jczJfY29uZmlnID0gQ09ORklHX1NZU19ERFJfQ1MyX0NPTkZJRzsKKwlkZHItPmNzM19jb25maWcgPSBDT05GSUdfU1lTX0REUl9DUzNfQ09ORklHOworCWRkci0+dGltaW5nX2NmZ18zID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzM7CisJZGRyLT50aW1pbmdfY2ZnXzAgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMDsKKwlkZHItPnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWRkci0+dGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJZGRyLT5zZHJhbV9jZmdfMSA9IENPTkZJR19TWVNfRERSX0NGR18xQTsKKwlkZHItPnNkcmFtX2NmZ18yID0gQ09ORklHX1NZU19ERFJfQ0ZHXzI7CisJZGRyLT5zZHJhbV9tb2RlXzEgPSBDT05GSUdfU1lTX0REUl9NT0RFXzE7CisJZGRyLT5zZHJhbV9tb2RlXzIgPSBDT05GSUdfU1lTX0REUl9NT0RFXzI7CisJZGRyLT5zZHJhbV9tb2RlX2NudGwgPSBDT05GSUdfU1lTX0REUl9NT0RFX0NUTDsKKwlkZHItPnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CisJZGRyLT5zZHJhbV9kYXRhX2luaXQgPSBDT05GSUdfU1lTX0REUl9EQVRBX0lOSVQ7CisJZGRyLT5zZHJhbV9jbGtfY250bCA9IENPTkZJR19TWVNfRERSX0NMS19DVFJMOwogCiAJYXNtICgic3luYztpc3luYyIpOwogCiAJdWRlbGF5ICg1MDApOwogCi0JZGRyLT5zZHJhbV9jZmdfMSA9IENGR19ERFJfQ0ZHXzFCOworCWRkci0+c2RyYW1fY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9DRkdfMUI7CiAJYXNtICgic3luYzsgaXN5bmMiKTsKIAogCXVkZWxheSAoNTAwKTsKIAlkZHIgPSAmaW1tYXAtPmltX2RkcjI7CiAKLQlkZHItPmNzMF9ibmRzID0gQ0ZHX0REUjJfQ1MwX0JORFM7Ci0JZGRyLT5jczFfYm5kcyA9IENGR19ERFIyX0NTMV9CTkRTOwotCWRkci0+Y3MyX2JuZHMgPSBDRkdfRERSMl9DUzJfQk5EUzsKLQlkZHItPmNzM19ibmRzID0gQ0ZHX0REUjJfQ1MzX0JORFM7Ci0JZGRyLT5jczBfY29uZmlnID0gQ0ZHX0REUjJfQ1MwX0NPTkZJRzsKLQlkZHItPmNzMV9jb25maWcgPSBDRkdfRERSMl9DUzFfQ09ORklHOwotCWRkci0+Y3MyX2NvbmZpZyA9IENGR19ERFIyX0NTMl9DT05GSUc7Ci0JZGRyLT5jczNfY29uZmlnID0gQ0ZHX0REUjJfQ1MzX0NPTkZJRzsKLQlkZHItPnRpbWluZ19jZmdfMyA9IENGR19ERFIyX0VYVF9SRUZSRVNIOwotCWRkci0+dGltaW5nX2NmZ18wID0gQ0ZHX0REUjJfVElNSU5HXzA7Ci0JZGRyLT50aW1pbmdfY2ZnXzEgPSBDRkdfRERSMl9USU1JTkdfMTsKLQlkZHItPnRpbWluZ19jZmdfMiA9IENGR19ERFIyX1RJTUlOR18yOwotCWRkci0+c2RyYW1fY2ZnXzEgPSBDRkdfRERSMl9DRkdfMUE7Ci0JZGRyLT5zZHJhbV9jZmdfMiA9IENGR19ERFIyX0NGR18yOwotCWRkci0+c2RyYW1fbW9kZV8xID0gQ0ZHX0REUjJfTU9ERV8xOwotCWRkci0+c2RyYW1fbW9kZV8yID0gQ0ZHX0REUjJfTU9ERV8yOwotCWRkci0+c2RyYW1fbW9kZV9jbnRsID0gQ0ZHX0REUjJfTU9ERV9DVEw7Ci0JZGRyLT5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFIyX0lOVEVSVkFMOwotCWRkci0+c2RyYW1fZGF0YV9pbml0ID0gQ0ZHX0REUjJfREFUQV9JTklUOwotCWRkci0+c2RyYW1fY2xrX2NudGwgPSBDRkdfRERSMl9DTEtfQ1RSTDsKKwlkZHItPmNzMF9ibmRzID0gQ09ORklHX1NZU19ERFIyX0NTMF9CTkRTOworCWRkci0+Y3MxX2JuZHMgPSBDT05GSUdfU1lTX0REUjJfQ1MxX0JORFM7CisJZGRyLT5jczJfYm5kcyA9IENPTkZJR19TWVNfRERSMl9DUzJfQk5EUzsKKwlkZHItPmNzM19ibmRzID0gQ09ORklHX1NZU19ERFIyX0NTM19CTkRTOworCWRkci0+Y3MwX2NvbmZpZyA9IENPTkZJR19TWVNfRERSMl9DUzBfQ09ORklHOworCWRkci0+Y3MxX2NvbmZpZyA9IENPTkZJR19TWVNfRERSMl9DUzFfQ09ORklHOworCWRkci0+Y3MyX2NvbmZpZyA9IENPTkZJR19TWVNfRERSMl9DUzJfQ09ORklHOworCWRkci0+Y3MzX2NvbmZpZyA9IENPTkZJR19TWVNfRERSMl9DUzNfQ09ORklHOworCWRkci0+dGltaW5nX2NmZ18zID0gQ09ORklHX1NZU19ERFIyX0VYVF9SRUZSRVNIOworCWRkci0+dGltaW5nX2NmZ18wID0gQ09ORklHX1NZU19ERFIyX1RJTUlOR18wOworCWRkci0+dGltaW5nX2NmZ18xID0gQ09ORklHX1NZU19ERFIyX1RJTUlOR18xOworCWRkci0+dGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFIyX1RJTUlOR18yOworCWRkci0+c2RyYW1fY2ZnXzEgPSBDT05GSUdfU1lTX0REUjJfQ0ZHXzFBOworCWRkci0+c2RyYW1fY2ZnXzIgPSBDT05GSUdfU1lTX0REUjJfQ0ZHXzI7CisJZGRyLT5zZHJhbV9tb2RlXzEgPSBDT05GSUdfU1lTX0REUjJfTU9ERV8xOworCWRkci0+c2RyYW1fbW9kZV8yID0gQ09ORklHX1NZU19ERFIyX01PREVfMjsKKwlkZHItPnNkcmFtX21vZGVfY250bCA9IENPTkZJR19TWVNfRERSMl9NT0RFX0NUTDsKKwlkZHItPnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFIyX0lOVEVSVkFMOworCWRkci0+c2RyYW1fZGF0YV9pbml0ID0gQ09ORklHX1NZU19ERFIyX0RBVEFfSU5JVDsKKwlkZHItPnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFIyX0NMS19DVFJMOwogCiAJYXNtICgic3luYztpc3luYyIpOwogCiAJdWRlbGF5ICg1MDApOwogCi0JZGRyLT5zZHJhbV9jZmdfMSA9IENGR19ERFIyX0NGR18xQjsKKwlkZHItPnNkcmFtX2NmZ18xID0gQ09ORklHX1NZU19ERFIyX0NGR18xQjsKIAlhc20gKCJzeW5jOyBpc3luYyIpOwogCiAJdWRlbGF5ICg1MDApOwogI2VuZGlmCi0JcmV0dXJuIENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OwogfQogI2VuZGlmCQkJCS8qICFkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKSAqLwogCkBAIC0yMjIsNyArMjIyLDcgQEAKIAogdm9pZCBwY2lfaW5pdF9ib2FyZCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0NDU1JCQVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0NDU1JCQVI7CiAJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gJmltbWFwLT5pbV9ndXI7CiAJdWludCBkZXZkaXNyID0gZ3VyLT5kZXZkaXNyOwogCXVpbnQgaW9fc2VsID0gKGd1ci0+cG9yZGV2c3IgJiBNUEM4NjQxX1BPUkRFVlNSX0lPX1NFTCkKQEAgLTIzMCw3ICsyMzAsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BDSTEKIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0kxX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSTFfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpMV9ob3NlOwogI2lmZGVmIERFQlVHCkBAIC0yNTIsMjMgKzI1MiwyMyBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCSAgICAgICBDRkdfUENJMV9NRU1fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJMV9NRU1fUEhZUywKLQkJCSAgICAgICBDRkdfUENJMV9NRU1fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkgICAgICAgQ0ZHX1BDSTFfSU9fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJMV9JT19QSFlTLAotCQkJICAgICAgIENGR19QQ0kxX0lPX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9JTyk7CiAKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKQEAgLTI5MiwzMCArMjkyLDMwIEBACiAKICNpZmRlZiBDT05GSUdfUENJMgogewotCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ0ZHX1BDSTJfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJMl9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2kyX2hvc2U7CiAKIAogCS8qIGluYm91bmQgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJICAgICAgIENGR19QQ0lfTUVNT1JZX0JVUywKLQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCSAgICAgICBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCSAgICAgICBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkgICAgICAgQ0ZHX1BDSTJfTUVNX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMl9NRU1fUEhZUywKLQkJICAgICAgIENGR19QQ0kyX01FTV9TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJLyogb3V0Ym91bmQgaW8gKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJICAgICAgIENGR19QQ0kyX0lPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMl9JT19QSFlTLAotCQkgICAgICAgQ0ZHX1BDSTJfSU9fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfSU9fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCiAJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKZGlmZiAtLWdpdCBhL2JvYXJkL3NjMy9zYzNuYW5kLmMgYi9ib2FyZC9zYzMvc2MzbmFuZC5jCmluZGV4IDQ1ZWZmMjguLjYyYjQwZjEgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NjMy9zYzNuYW5kLmMKKysrIGIvYm9hcmQvc2MzL3NjM25hbmQuYwpAQCAtNzcsNyArNzcsNyBAQAogewogCW5hbmQtPmVjYy5tb2RlID0gTkFORF9FQ0NfU09GVDsKIAotCXNjM19pb19iYXNlID0gKHZvaWQgKikgQ0ZHX05BTkRfQkFTRTsKKwlzYzNfaW9fYmFzZSA9ICh2b2lkICopIENPTkZJR19TWVNfTkFORF9CQVNFOwogCS8qIFNldCBhZGRyZXNzIG9mIE5BTkQgSU8gbGluZXMgKFVzaW5nIExpbmVhciBEYXRhIEFjY2VzcyBSZWdpb24pICovCiAJbmFuZC0+SU9fQUREUl9SID0gKHZvaWQgX19pb21lbSAqKSBzYzNfaW9fYmFzZTsKIAluYW5kLT5JT19BRERSX1cgPSAodm9pZCBfX2lvbWVtICopIHNjM19pb19iYXNlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2M1MjBfY2RwL2ZsYXNoLmMgYi9ib2FyZC9zYzUyMF9jZHAvZmxhc2guYwppbmRleCA0OTNkNTFhLi5kY2I4YzU3IDEwMDY0NAotLS0gYS9ib2FyZC9zYzUyMF9jZHAvZmxhc2guYworKysgYi9ib2FyZC9zYzUyMF9jZHAvZmxhc2guYwpAQCAtMjIyLDcgKzIyMiw3IEBACiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAJCWludCBzZWN0c2l6ZSA9IDA7CiAKLQkJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAJCXN3aXRjaCAoaSkgewogCQljYXNlIDA6CiAJCQlmbGFzaGJhc2UgPSBTQzUyMF9GTEFTSF9CQU5LMF9CQVNFOwpAQCAtMzcwLDcgKzM3MCw3IEBACiAJd2hpbGUgKCgoKih2b2xhdGlsZSB1MzIqKShhZGRyICsgc2VjdG9yKSkgJiAweDgwODA4MDgwKSAhPSAweDgwODA4MDgwKSB7CiAKIAkJZWxhcHNlZCArPSAqKHZvbGF0aWxlIHUxNiopKDB4ZmZmZWYwMDArU0M1MjBfU1dUTVJNSUxMSSk7Ci0JCWlmIChlbGFwc2VkID4gKChDRkdfRkxBU0hfRVJBU0VfVE9VVC9DRkdfSFopICogMTAwMCkpIHsKKwkJaWYgKGVsYXBzZWQgPiAoKENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVC9DT05GSUdfU1lTX0haKSAqIDEwMDApKSB7CiAJCQkqKHZvbGF0aWxlIHUzMiopKGFkZHIpID0gMHhmMGYwZjBmMDsKIAkJCXJldHVybiAxOwogCQl9CkBAIC00OTMsNyArNDkzLDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJd2hpbGUgKChkZXN0MlswXSAmIDB4ODA4MDgwODApICE9IChkYXRhMlswXSAmIDB4ODA4MDgwODApKSB7CiAJCWVsYXBzZWQgKz0gKih2b2xhdGlsZSB1MTYqKSgweGZmZmVmMDAwK1NDNTIwX1NXVE1STUlMTEkpOwotCQlpZiAoZWxhcHNlZCA+ICgoQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQvQ0ZHX0haKSAqIDEwMDApKSB7CisJCWlmIChlbGFwc2VkID4gKChDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQvQ09ORklHX1NZU19IWikgKiAxMDAwKSkgewogCQkJYWRkcjJbMF0gPSAweGYwZjBmMGYwOwogCQkJcmV0dXJuIDE7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3NjNTIwX2NkcC9mbGFzaF9vbGQuYyBiL2JvYXJkL3NjNTIwX2NkcC9mbGFzaF9vbGQuYwppbmRleCBiNjg2MjZlLi45NDkxY2EyIDEwMDY0NAotLS0gYS9ib2FyZC9zYzUyMF9jZHAvZmxhc2hfb2xkLmMKKysrIGIvYm9hcmQvc2M1MjBfY2RwL2ZsYXNoX29sZC5jCkBAIC04OSw3ICs4OSw3IEBACiAJCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IDA7CiAJCQlzZWN0c2l6ZT0wOwogCQl9Ci0JCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkJZmxhc2hiYXNlID0gU0M1MjBfRkxBU0hfQkFOSzBfQkFTRTsKQEAgLTI0MCw3ICsyNDAsNyBAQAogCQkJCXJlc3VsdCA9IHJlYWRsKGFkZHIpOwogCiAJCQkJLyogY2hlY2sgdGltZW91dCAqLwotCQkJCWlmIChnZXRfdGltZXIoMCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXIoMCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJd3JpdGVsKENNRF9SRUFEX0FSUkFZLCBhZGRyICsgMSk7CiAJCQkJCWNoaXAxID0gVE1POwogCQkJCQlicmVhazsKQEAgLTM0Miw3ICszNDIsNyBAQAogCQlyZXN1bHQgPSByZWFkbChhZGRyKTsKIAogCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCWlmIChnZXRfdGltZXIoMCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKDApID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQljaGlwMSA9IEVSUiB8IFRNTzsKIAkJCWJyZWFrOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9zYzUyMF9jZHAvc2M1MjBfY2RwLmMgYi9ib2FyZC9zYzUyMF9jZHAvc2M1MjBfY2RwLmMKaW5kZXggOTlkZWJkZS4uNzc5Zjk1NyAxMDA2NDQKLS0tIGEvYm9hcmQvc2M1MjBfY2RwL3NjNTIwX2NkcC5jCisrKyBiL2JvYXJkL3NjNTIwX2NkcC9zYzUyMF9jZHAuYwpAQCAtODcsNyArODcsNyBAQAogCXdyaXRlX21tY3JfYnl0ZShTQzUyMF9JQ0VNQVAsIFNDNTIwX0lSUTEpOyAgICAgICAgICAgICAgLyogU2V0IElDRSBEZWJ1ZyBTZXJpZWxwb3J0IElOVCB0byBJUlExICovCiAJd3JpdGVfbW1jcl9ieXRlKFNDNTIwX0ZFUlJNQVAsU0M1MjBfSVJRMTMpOyAgICAgICAgICAgICAvKiBTZXQgRlAgZXJyb3IgSU5UIHRvIElSUTEzICovCiAKLQlpZiAoQ0ZHX1VTRV9TSU9fVUFSVCkgeworCWlmIChDT05GSUdfU1lTX1VTRV9TSU9fVUFSVCkgewogCQl3cml0ZV9tbWNyX2J5dGUoU0M1MjBfVUFSVDFNQVAsIFNDNTIwX0lSUV9ESVNBQkxFRCk7IC8qIGRpc2FibGUgaW50ZXJuYWwgVUFSVDEgSU5UICovCiAJCXdyaXRlX21tY3JfYnl0ZShTQzUyMF9VQVJUMk1BUCwgU0M1MjBfSVJRX0RJU0FCTEVEKTsgLyogZGlzYWJsZSBpbnRlcm5hbCBVQVJUMiBJTlQgKi8KIAkJd3JpdGVfbW1jcl9ieXRlKFNDNTIwX0dQM0lNQVAsIFNDNTIwX0lSUTMpOyAgICAgICAgICAvKiBTZXQgR1BJUlEzIChJU0EgSVJRMykgdG8gSVJRMyAqLwpAQCAtMTIyLDEwICsxMjIsMTAgQEAKIAkgKiB3aGVuIHdlIG5lZWQgb25lIChhIGJvYXJkIHdpdGggbW9yZSBwY2kgaW50ZXJydXB0IHBpbnMKIAkgKiB3b3VsZCB1c2UgYSBsYXJnZXIgdGFibGUgKi8KIAlzdGF0aWMgaW50IGlycV9saXN0W10gPSB7Ci0JCUNGR19GSVJTVF9QQ0lfSVJRLAotCQlDRkdfU0VDT05EX1BDSV9JUlEsCi0JCUNGR19USElSRF9QQ0lfSVJRLAotCQlDRkdfRk9SVEhfUENJX0lSUQorCQlDT05GSUdfU1lTX0ZJUlNUX1BDSV9JUlEsCisJCUNPTkZJR19TWVNfU0VDT05EX1BDSV9JUlEsCisJCUNPTkZJR19TWVNfVEhJUkRfUENJX0lSUSwKKwkJQ09ORklHX1NZU19GT1JUSF9QQ0lfSVJRCiAJfTsKIAlzdGF0aWMgaW50IG5leHRfaXJxX2luZGV4PTA7CiAKQEAgLTI3OSw3ICsyNzksNyBAQAogCiAJYXNtICgid2JpbnZkXG4iKTsgLyogRmx1c2ggY2FjaGUsIHJlcS4gYWZ0ZXIgc2V0dGluZyB0aGUgdW5jaGFjaGVkIGF0dHJpYnV0ZSBvbmEgUEFSICovCiAKLQlpZiAoQ0ZHX1VTRV9TSU9fVUFSVCkgeworCWlmIChDT05GSUdfU1lTX1VTRV9TSU9fVUFSVCkgewogCQl3cml0ZV9tbWNyX2J5dGUoU0M1MjBfQUREREVDQ1RMLCByZWFkX21tY3JfYnl0ZShTQzUyMF9BRERERUNDVEwpIHwgVUFSVDJfRElTfFVBUlQxX0RJUyk7CiAJCXNldHVwX2FsaV9zaW8oMSk7CiAJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2JvYXJkL3NjNTIwX3NwdW5rL2ZsYXNoLmMgYi9ib2FyZC9zYzUyMF9zcHVuay9mbGFzaC5jCmluZGV4IDYwOWNjNDIuLmQ3MDIwNDYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NjNTIwX3NwdW5rL2ZsYXNoLmMKKysrIGIvYm9hcmQvc2M1MjBfc3B1bmsvZmxhc2guYwpAQCAtMjI4LDcgKzIyOCw3IEBACiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAJCWludCBzZWN0c2l6ZSA9IDA7CiAKLQkJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAJCXN3aXRjaCAoaSkgewogCQljYXNlIDA6CiAJCQlmbGFzaGJhc2UgPSBTQzUyMF9GTEFTSF9CQU5LMF9CQVNFOwpAQCAtNDE5LDcgKzQxOSw3IEBACiAJd2hpbGUgKCgoKih2b2xhdGlsZSB1MTYqKShhZGRyICsgc2VjdG9yKSkgJiAweDAwODApICE9IDB4MDA4MCkgewogCiAJCWVsYXBzZWQgKz0gKih2b2xhdGlsZSB1MTYqKSgweGZmZmVmMDAwK1NDNTIwX1NXVE1STUlMTEkpOwotCQlpZiAoZWxhcHNlZCA+ICgoQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQvQ0ZHX0haKSAqIDEwMDApKSB7CisJCWlmIChlbGFwc2VkID4gKChDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQvQ09ORklHX1NZU19IWikgKiAxMDAwKSkgewogCQkJKih2b2xhdGlsZSB1MTYqKShhZGRyKSA9IDB4MDBmMDsKIAkJCXJldHVybiAxOwogCQl9CkBAIC00NjcsNyArNDY3LDcgQEAKIAllbGFwc2VkID0gMDsKIAl3aGlsZSAoKCgqKHZvbGF0aWxlIHUxNiopKGFkZHIgKyBzZWN0b3IpKSAmIDB4MDA4MCkgIT0gMHgwMDgwKSB7CiAJCWVsYXBzZWQgKz0gKih2b2xhdGlsZSB1MTYqKSgweGZmZmVmMDAwK1NDNTIwX1NXVE1STUlMTEkpOwotCQlpZiAoZWxhcHNlZCA+ICgoQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQvQ0ZHX0haKSAqIDEwMDApKSB7CisJCWlmIChlbGFwc2VkID4gKChDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQvQ09ORklHX1NZU19IWikgKiAxMDAwKSkgewogCQkJKih2b2xhdGlsZSB1MTYqKShhZGRyICsgc2VjdG9yKSA9IDB4MDBCMDsgIC8qIHN1c3BlbmQgZXJhc2UgICAgICAqLwogCQkJKih2b2xhdGlsZSB1MTYqKShhZGRyICsgc2VjdG9yKSA9IDB4MDBGRjsgIC8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuIDE7CkBAIC02MDIsNyArNjAyLDcgQEAKIAkJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCQl3aGlsZSAoKGRlc3QyW2ldICYgMHgwMDgwKSAhPSAoZGF0YTJbaV0gJiAweDAwODApKSB7CiAJCQllbGFwc2VkICs9ICoodm9sYXRpbGUgdTE2KikoMHhmZmZlZjAwMCtTQzUyMF9TV1RNUk1JTExJKTsKLQkJCWlmIChlbGFwc2VkID4gKChDRkdfRkxBU0hfV1JJVEVfVE9VVC9DRkdfSFopICogMTAwMCkpIHsKKwkJCWlmIChlbGFwc2VkID4gKChDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQvQ09ORklHX1NZU19IWikgKiAxMDAwKSkgewogCQkJCWFkZHIyW2ldID0gMHgwMGYwOwogCQkJCXJldHVybiAxOwogCQkJfQpAQCAtNjM5LDcgKzYzOSw3IEBACiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJd2hpbGUgKCgqKHZvbGF0aWxlIHUxNiopZGVzdCAmIDB4MDA4MCkgIT0gMHgwMDgwKSB7CiAJCQllbGFwc2VkICs9ICoodm9sYXRpbGUgdTE2KikoMHhmZmZlZjAwMCtTQzUyMF9TV1RNUk1JTExJKTsKLQkJCWlmIChlbGFwc2VkID4gKChDRkdfRkxBU0hfV1JJVEVfVE9VVC9DRkdfSFopICogMTAwMCkpIHsKKwkJCWlmIChlbGFwc2VkID4gKChDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQvQ09ORklHX1NZU19IWikgKiAxMDAwKSkgewogCQkJCSoodm9sYXRpbGUgdTE2KilkZXN0ID0gMHgwMGZmOwogCQkJCXJldHVybiAxOwogCQkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvc2M1MjBfc3B1bmsvc2M1MjBfc3B1bmsuYyBiL2JvYXJkL3NjNTIwX3NwdW5rL3NjNTIwX3NwdW5rLmMKaW5kZXggMGIxMWNhYS4uZDNiZDg2OSAxMDA2NDQKLS0tIGEvYm9hcmQvc2M1MjBfc3B1bmsvc2M1MjBfc3B1bmsuYworKysgYi9ib2FyZC9zYzUyMF9zcHVuay9zYzUyMF9zcHVuay5jCkBAIC0xMDUsMTAgKzEwNSwxMCBAQAogCSAqIHdoZW4gd2UgbmVlZCBvbmUgKGEgYm9hcmQgd2l0aCBtb3JlIHBjaSBpbnRlcnJ1cHQgcGlucwogCSAqIHdvdWxkIHVzZSBhIGxhcmdlciB0YWJsZSAqLwogCXN0YXRpYyBpbnQgaXJxX2xpc3RbXSA9IHsKLQkJQ0ZHX0ZJUlNUX1BDSV9JUlEsCi0JCUNGR19TRUNPTkRfUENJX0lSUSwKLQkJQ0ZHX1RISVJEX1BDSV9JUlEsCi0JCUNGR19GT1JUSF9QQ0lfSVJRCisJCUNPTkZJR19TWVNfRklSU1RfUENJX0lSUSwKKwkJQ09ORklHX1NZU19TRUNPTkRfUENJX0lSUSwKKwkJQ09ORklHX1NZU19USElSRF9QQ0lfSVJRLAorCQlDT05GSUdfU1lTX0ZPUlRIX1BDSV9JUlEKIAl9OwogCXN0YXRpYyBpbnQgbmV4dF9pcnFfaW5kZXg9MDsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvc2NiOTMyOC9mbGFzaC5jIGIvYm9hcmQvc2NiOTMyOC9mbGFzaC5jCmluZGV4IDUzNjcyNWEuLmM2Zjk0YWUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NjYjkzMjgvZmxhc2guYworKysgYi9ib2FyZC9zY2I5MzI4L2ZsYXNoLmMKQEAgLTgyLDcgKzgyLDcgQEAKICNlbmRpZgogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiBzdGF0aWMgRkxBU0hfQlVTX1JFVCBmbGFzaF9zdGF0dXNfcmVnICh2b2lkKQogewpAQCAtMTA5LDcgKzEwOSw3IEBACiAJcmV0dXJuIG9rOwogfQogCi0jaWYgKCBDRkdfTUFYX0ZMQVNIX0JBTktTICE9IDEgKQorI2lmICggQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgIT0gMSApCiAjICBlcnJvciAiU0NCOTMyOCBwbGF0Zm9ybSBoYXMgb25seSBvbmUgZmxhc2ggYmFuayEiCiAjZW5kaWYKIApAQCAtMTIwLDExICsxMjAsMTEgQEAKIAl1bnNpZ25lZCBsb25nIGFkZHJlc3MgPSBTQ0I5MzI4X0ZMQVNIX0JBU0U7CiAKIAlmbGFzaF9pbmZvWzBdLnNpemUgPSBTQ0I5MzI4X0ZMQVNIX0JBTktfU0laRTsKLQlmbGFzaF9pbmZvWzBdLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwlmbGFzaF9pbmZvWzBdLnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9IElOVEVMX01BTlVGQUNUOwotCW1lbXNldCAoZmxhc2hfaW5mb1swXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCW1lbXNldCAoZmxhc2hfaW5mb1swXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX1NFQ1Q7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOyBpKyspIHsKIAkJZmxhc2hfaW5mb1swXS5zdGFydFtpXSA9IGFkZHJlc3M7CiAjaWZkZWYgU0NCOTMyOF9GTEFTSF9VTkxPQ0sKIAkJLyogU29tZSBkZXZpY2VzIGFyZSBodyBsb2NrZWQgYWZ0ZXIgc3RhcnQuICovCkBAIC0xMzcsOCArMTM3LDggQEAKIAl9CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJCSAgIENGR19GTEFTSF9CQVNFLAotCQkJCSAgIENGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJCSAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJCQkgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkJICAgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKQEAgLTIwOSw3ICsyMDksNyBAQAogCiAJCSphZGRyZXNzID0gRkxBU0hfQ01EIChDRklfSU5URUxfQ01EX0JMT0NLX0VSQVNFKTsKIAkJKmFkZHJlc3MgPSBGTEFTSF9DTUQgKENGSV9JTlRFTF9DTURfQ09ORklSTSk7Ci0JCWlmIChmbGFzaF9yZWFkeSAoQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpKSB7CisJCWlmIChmbGFzaF9yZWFkeSAoQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSkgewogCQkJKmFkZHJlc3MgPSBGTEFTSF9DTUQgKENGSV9JTlRFTF9DTURfQ0xFQVJfU1RBVFVTX1JFR0lTVEVSKTsKIAkJCXByaW50ZiAoIm9rLlxuIik7CiAJCX0gZWxzZSB7CkBAIC0yNTcsNyArMjU3LDcgQEAKIAkqYWRkcmVzcyA9IEZMQVNIX0NNRCAoQ0ZJX0lOVEVMX0NNRF9QUk9HUkFNMSk7CiAJKmFkZHJlc3MgPSBkYXRhOwogCi0JaWYgKCFmbGFzaF9yZWFkeSAoQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpKSB7CisJaWYgKCFmbGFzaF9yZWFkeSAoQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSkgewogCQkqYWRkcmVzcyA9IEZMQVNIX0NNRCAoQ0ZJX0lOVEVMX0NNRF9TVVNQRU5EKTsKIAkJcmMgPSBFUlJfVElNT1VUOwogCQlwcmludGYgKCJ0aW1lb3V0ISBBYm9ydGluZy4uLlxuIik7CmRpZmYgLS1naXQgYS9ib2FyZC9zY2I5MzI4L2xvd2xldmVsX2luaXQuUyBiL2JvYXJkL3NjYjkzMjgvbG93bGV2ZWxfaW5pdC5TCmluZGV4IGJhM2I2ZDIuLjhlNmE0OWUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NjYjkzMjgvbG93bGV2ZWxfaW5pdC5TCisrKyBiL2JvYXJkL3NjYjkzMjgvbG93bGV2ZWxfaW5pdC5TCkBAIC0yOSwxMyArMjksMTMgQEAKIAogLyogQ2hhbmdlIFBFUkNMSzFESVYgdG8gMTQgaWUgMTQrMSAqLwogCWxkcgkJcjAsCT1QQ0RSCi0JbGRyCQlyMSwJPUNGR19QQ0RSX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX1BDRFJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIC8qIHNldCBNQ1UgUExMIENvbnRyb2wgUmVnaXN0ZXIgMCAqLwogCiAJbGRyCQlyMCwJPU1QQ1RMMAotCWxkcgkJcjEsCT1DRkdfTVBDVEwwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX01QQ1RMMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogLyogc2V0IG1wbGwgcmVzdGFydCBiaXQgKi8KQEAgLTU3LDcgKzU3LDcgQEAKIC8qIHNldCBTeXN0ZW0gUExMIENvbnRyb2wgUmVnaXN0ZXIgMCAqLwogCiAJbGRyCQlyMCwJPVNQQ1RMMAotCWxkcgkJcjEsCT1DRkdfU1BDVEwwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX1NQQ1RMMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogLyogc2V0IHNwbGwgcmVzdGFydCBiaXQgKi8KQEAgLTc3LDcgKzc3LDcgQEAKIAlibmUJCTFiCiAKIAlsZHIJCXIwLCAgID1DU0NSCi0JbGRyCQlyMSwgICA9Q0ZHX0NTQ1JfVkFMCisJbGRyCQlyMSwgICA9Q09ORklHX1NZU19DU0NSX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAvKiBJIGhhdmUgbm93IHJlYWQgdGhlIEFSTTkyMCBEYXRhU2hlZXQgYmFjay10by1CYWNrLCBhbmQgaGF2ZSBzdHVtYmxlZCB1cG9uCkBAIC0xMDIsNjUgKzEwMiw2NSBAQAogCU1DUiBwMTUsMCxyMCxjMSxjMCwwCiAKIAlsZHIJCXIwLAk9R1BSKDApCi0JbGRyCQlyMSwJPUNGR19HUFJfQV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFJfQV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HSVVTKDApCi0JbGRyCQlyMSwJPUNGR19HSVVTX0FfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0lVU19BX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAvKiBDUzMgYmVjb21lcyBDUzMgYnkgY2xlYXJpbmcgcmVzZXQgZGVmYXVsdCBiaXQgMSBpbiBGTUNSICovCiAKIAlsZHIJCXIwLAk9Rk1DUgotCWxkcgkJcjEsCT1DRkdfRk1DUl9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19GTUNSX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUNTMFUKLQlsZHIJCXIxLAk9Q0ZHX0NTMFVfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfQ1MwVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1DUzBMCi0JbGRyCQlyMSwJPUNGR19DUzBMX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0NTMExfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9Q1MxVQotCWxkcgkJcjEsCT1DRkdfQ1MxVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19DUzFVX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUNTMUwKLQlsZHIJCXIxLAk9Q0ZHX0NTMUxfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfQ1MxTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1DUzJVCi0JbGRyCQlyMSwJPUNGR19DUzJVX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0NTMlVfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9Q1MyTAotCWxkcgkJcjEsCT1DRkdfQ1MyTF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19DUzJMX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUNTM1UKLQlsZHIJCXIxLAk9Q0ZHX0NTM1VfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfQ1MzVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1DUzNMCi0JbGRyCQlyMSwJPUNGR19DUzNMX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0NTM0xfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9Q1M0VQotCWxkcgkJcjEsCT1DRkdfQ1M0VV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19DUzRVX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUNTNEwKLQlsZHIJCXIxLAk9Q0ZHX0NTNExfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfQ1M0TF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1DUzVVCi0JbGRyCQlyMSwJPUNGR19DUzVVX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0NTNVVfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9Q1M1TAotCWxkcgkJcjEsCT1DRkdfQ1M1TF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19DUzVMX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAvKiBTRFJBTSBTZXR1cCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2g3NzYzcmRwL3NoNzc2M3JkcC5jIGIvYm9hcmQvc2g3NzYzcmRwL3NoNzc2M3JkcC5jCmluZGV4IDkyYWM3YjcuLjg4YmFiNzAgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NoNzc2M3JkcC9zaDc3NjNyZHAuYworKysgYi9ib2FyZC9zaDc3NjNyZHAvc2g3NzYzcmRwLmMKQEAgLTY2LDkgKzY2LDkgQEAKIHsKIAlERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDRkdfU0RSQU1fQkFTRTsKLQlnZC0+YmQtPmJpX21lbXNpemUgPSBDRkdfU0RSQU1fU0laRTsKLQlwcmludGYoIkRSQU06ICAlZE1CXG4iLCBDRkdfU0RSQU1fU0laRSAvICgxMDI0ICogMTAyNCkpOworCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CisJZ2QtPmJkLT5iaV9tZW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFOworCXByaW50ZigiRFJBTTogICVkTUJcbiIsIENPTkZJR19TWVNfU0RSQU1fU0laRSAvICgxMDI0ICogMTAyNCkpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9ib2FyZC9zaDc3ODVsY3Ivc2g3Nzg1bGNyLmMgYi9ib2FyZC9zaDc3ODVsY3Ivc2g3Nzg1bGNyLmMKaW5kZXggNjZiMjFmOC4uNzg2Yzc1OCAxMDA2NDQKLS0tIGEvYm9hcmQvc2g3Nzg1bGNyL3NoNzc4NWxjci5jCisrKyBiL2JvYXJkL3NoNzc4NWxjci9zaDc3ODVsY3IuYwpAQCAtMzgsOSArMzgsOSBAQAogewogCURFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0JZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENGR19TRFJBTV9CQVNFOwotCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENGR19TRFJBTV9TSVpFOwotCXByaW50ZigiRFJBTTogICVkTUJcbiIsIENGR19TRFJBTV9TSVpFIC8gKDEwMjQgKiAxMDI0KSk7CisJZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsKKwlnZC0+YmQtPmJpX21lbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkU7CisJcHJpbnRmKCJEUkFNOiAgJWRNQlxuIiwgQ09ORklHX1NZU19TRFJBTV9TSVpFIC8gKDEwMjQgKiAxMDI0KSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL3NoYW5ub24vZmxhc2guYyBiL2JvYXJkL3NoYW5ub24vZmxhc2guYwppbmRleCA3ZDZlY2E4Li4wNDU1YWZhIDEwMDY0NAotLS0gYS9ib2FyZC9zaGFubm9uL2ZsYXNoLmMKKysrIGIvYm9hcmQvc2hhbm5vbi9mbGFzaC5jCkBAIC0zMCw3ICszMCw3IEBACiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRSAweDQwMDAwMAkvKiA0IE1CICovCiAjZGVmaW5lIE1BSU5fU0VDVF9TSVpFICAweDIwMDAwCQkvKiAxMjggS0IgKi8KIAotZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIAogI2RlZmluZSBDTURfUkVBRF9BUlJBWQkJMHgwMEYwMDBGMApAQCAtNDEsOCArNDEsOCBAQAogI2RlZmluZSBDTURfUFJPR1JBTQkJMHgwMEEwMDBBMAogI2RlZmluZSBDTURfVU5MT0NLX0JZUEFTUwkweDAwMjAwMDIwCiAKLSNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MzIgKikoQ0ZHX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NSA8PCAyKSkpCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTMyICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUEgPDwgMikpKQorI2RlZmluZSBNRU1fRkxBU0hfQUREUjEJCSgqKHZvbGF0aWxlIHUzMiAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NSA8PCAyKSkpCisjZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTMyICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgweDAwMDAwMkFBIDw8IDIpKSkKIAogI2RlZmluZSBCSVRfRVJBU0VfRE9ORQkJMHgwMDgwMDA4MAogI2RlZmluZSBCSVRfUkRZX01BU0sJCTB4MDA4MDAwODAKQEAgLTYxLDE1ICs2MSwxNSBAQAogICAgIGludCBpLCBqOwogICAgIHVsb25nIHNpemUgPSAwOwogCi0gICAgZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykKKyAgICBmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykKICAgICB7CiAJdWxvbmcgZmxhc2hiYXNlID0gMDsKIAlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0KIAkgIChBTURfTUFOVUZBQ1QgJiBGTEFTSF9WRU5ETUFTSykgfAogCSAgKEFNRF9JRF9MVjE2MEIgJiBGTEFTSF9UWVBFTUFTSyk7CiAJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOwotCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCWlmIChpID09IDApCiAJICBmbGFzaGJhc2UgPSBQSFlTX0ZMQVNIXzE7CiAJZWxzZQpAQCAtMTEyLDE5ICsxMTIsMTkgQEAKICNpZmRlZiBDT05GSUdfSU5GRVJOTwogICAgIC8qIGZpcnN0IG9uZSwgMHgwMDAwMCB0byAweDA3ZmZmICovCiAgICAgZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgIENGR19GTEFTSF9CQVNFICsgMHgwMDAwMCwKLQkJICBDRkdfRkxBU0hfQkFTRSArIDB4MDgwMDAgLSAxLAorCQkgIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDAwMDAsCisJCSAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwODAwMCAtIDEsCiAJCSAgJmZsYXNoX2luZm9bMF0pOwogCiAgICAgLyogdGhpcmQgdG8gMTB0aCwgMHgwYzAwMCAtIDB4ZGZmZmYgKi8KICAgICBmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgQ0ZHX0ZMQVNIX0JBU0UgKyAweDBjMDAwLAotCQkgIENGR19GTEFTSF9CQVNFICsgMHhlMDAwMCAtIDEsCisJCSAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwYzAwMCwKKwkJICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweGUwMDAwIC0gMSwKIAkJICAmZmxhc2hfaW5mb1swXSk7CiAjZWxzZQogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICBDRkdfRkxBU0hfQkFTRSwKLQkJICBDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkgICZmbGFzaF9pbmZvWzBdKTsKIAogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKQEAgLTI1Myw3ICsyNTMsNyBAQAogCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkKIAkJewogCQkgICAgTUVNX0ZMQVNIX0FERFIxID0gQ01EX1JFQURfQVJSQVk7CiAJCSAgICBjaGlwMSA9IFRNTzsKQEAgLTM1OCw3ICszNTgsNyBAQAogCXJlc3VsdCA9ICphZGRyOwogCiAJLyogY2hlY2sgdGltZW91dCAqLwotCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkKKwlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKQogCXsKIAkgICAgY2hpcDEgPSBFUlIgfCBUTU87CiAJICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9DQ00vY2NtLmMgYi9ib2FyZC9zaWVtZW5zL0NDTS9jY20uYwppbmRleCBkNjUzNzYzLi44MDUzZGE0IDEwMDY0NAotLS0gYS9ib2FyZC9zaWVtZW5zL0NDTS9jY20uYworKysgYi9ib2FyZC9zaWVtZW5zL0NDTS9jY20uYwpAQCAtMTMzLDcgKzEzMyw3IEBACiBpbnQgcG93ZXJfb25fcmVzZXQodm9pZCkKIHsKICAgICAvKiBUZXN0IFJlc2V0IFN0YXR1cyBSZWdpc3RlciAqLwotICAgIHJldHVybiAoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2Nsa3JzdC5jYXJfcnNyICYgUlNSX0NTUlMgPyAwOjE7CisgICAgcmV0dXJuICgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2Nsa3JzdC5jYXJfcnNyICYgUlNSX0NTUlMgPyAwOjE7CiB9CiAKICNkZWZpbmUgUEJfTEVEX0dSRUVOCTB4MTAwMDAJCS8qIHJlZCBMRUQgaXMgb24gUEIuMTUgKi8KQEAgLTE0Miw3ICsxNDIsNyBAQAogCiBzdGF0aWMgdm9pZCBpbml0X2xlZHMgKHZvaWQpCiB7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAogICAgIGltbWFwLT5pbV9jcG0uY3BfcGJwYXIgJj0gflBCX0xFRFM7CiAgICAgaW1tYXAtPmltX2NwbS5jcF9wYm9kciAmPSB+UEJfTEVEUzsKQEAgLTE1Nyw3ICsxNTcsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgIHZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKICAgICBsb25nIGludCBzaXplOCwgc2l6ZTk7CiAgICAgbG9uZyBpbnQgc2l6ZSA9IDA7CkBAIC0xNzEsNyArMTcxLDcgQEAKICAgICAgKiB3aXRoIHR3byBTRFJBTSBiYW5rcyBvciBmb3VyIGN5Y2xlcyBldmVyeSAzMS4yIHVzIHdpdGggb25lCiAgICAgICogYmFuay4gSXQgd2lsbCBiZSBhZGp1c3RlZCBhZnRlciBtZW1vcnkgc2l6aW5nLgogICAgICAqLwotICAgIG1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfOEs7CisgICAgbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfOEs7CiAKICAgICBtZW1jdGwtPm1lbWNfbWFyICA9IDB4MDAwMDAwODg7CiAKQEAgLTE4MCwxMCArMTgwLDEwIEBACiAgICAgICogcHJlbGltaW5hcnkgYWRkcmVzc2VzIC0gdGhlc2UgaGF2ZSB0byBiZSBtb2RpZmllZCBhZnRlciB0aGUKICAgICAgKiBTRFJBTSBzaXplIGhhcyBiZWVuIGRldGVybWluZWQuCiAgICAgICovCi0gICAgbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjJfUFJFTElNOwotICAgIG1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyX1BSRUxJTTsKKyAgICBtZW1jdGwtPm1lbWNfb3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOworICAgIG1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAKLSAgICBtZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0wgJiAofihNQU1SX1BUQUUpKTsgLyogbm8gcmVmcmVzaCB5ZXQgKi8KKyAgICBtZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7IC8qIG5vIHJlZnJlc2ggeWV0ICovCiAKICAgICB1ZGVsYXkoMjAwKTsKIApAQCAtMjAzLDIxICsyMDMsMjEgQEAKICAgICAgKgogICAgICAqIHRyeSA4IGNvbHVtbiBtb2RlCiAgICAgICovCi0gICAgc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQU1SXzhDT0wsIFNEUkFNX0JBU0UyX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOworICAgIHNpemU4ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOENPTCwgU0RSQU1fQkFTRTJfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CiAKICAgICB1ZGVsYXkgKDEwMDApOwogCiAgICAgLyoKICAgICAgKiB0cnkgOSBjb2x1bW4gbW9kZQogICAgICAqLwotICAgIHNpemU5ID0gZHJhbV9zaXplIChDRkdfTUFNUl85Q09MLCBTRFJBTV9CQVNFMl9QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKKyAgICBzaXplOSA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzlDT0wsIFNEUkFNX0JBU0UyX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOwogCiAgICAgaWYgKHNpemU4IDwgc2l6ZTkpIHsJCS8qIGxlYXZlIGNvbmZpZ3VyYXRpb24gYXQgOSBjb2x1bW5zCSovCiAJc2l6ZSA9IHNpemU5OwogLyoJZGVidWcgKCJTRFJBTSBpbiA5IGNvbHVtbiBtb2RlOiAlbGQgTUJcbiIsIHNpemUgPj4gMjApOwkqLwogICAgIH0gZWxzZSB7CQkJCS8qIGJhY2sgdG8gOCBjb2x1bW5zCQkJKi8KIAlzaXplID0gc2l6ZTg7Ci0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MOworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0w7CiAJdWRlbGF5KDUwMCk7CiAvKglkZWJ1ZyAoIlNEUkFNIGluIDggY29sdW1uIG1vZGU6ICVsZCBNQlxuIiwgc2l6ZSA+PiAyMCk7CSovCiAgICAgfQpAQCAtMjMwLDcgKzIzMCw3IEBACiAgICAgICovCiAgICAgaWYgKHNpemUgPCAweDAyMDAwMDAwKSB7CiAJLyogcmVkdWNlIHRvIDE1LjYgdXMgKDYyLjQgdXMgLyBxdWFkKSAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfNEs7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfNEs7CiAJdWRlbGF5KDEwMDApOwogICAgIH0KIApAQCAtMjM4LDEzICsyMzgsMTMgQEAKICAgICAgKiBGaW5hbCBtYXBwaW5nCiAgICAgICovCiAKLSAgICBtZW1jdGwtPm1lbWNfb3IyID0gKCgtc2l6ZSkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07Ci0gICAgbWVtY3RsLT5tZW1jX2JyMiA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKyAgICBtZW1jdGwtPm1lbWNfb3IyID0gKCgtc2l6ZSkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOworICAgIG1lbWN0bC0+bWVtY19icjIgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCiAKICAgICAvKiBhZGp1c3QgcmVmcmVzaCByYXRlIGRlcGVuZGluZyBvbiBTRFJBTSB0eXBlLCBvbmUgYmFuayAqLwogICAgIHJlZyA9IG1lbWN0bC0+bWVtY19tcHRwcjsKLSAgICByZWcgPj49IDE7CS8qIHJlZHVjZSB0byBDRkdfTVBUUFJfMUJLXzhLIC8gXzRLICovCisgICAgcmVnID4+PSAxOwkvKiByZWR1Y2UgdG8gQ09ORklHX1NZU19NUFRQUl8xQktfOEsgLyBfNEsgKi8KICAgICBtZW1jdGwtPm1lbWNfbXB0cHIgPSByZWc7CiAKICAgICBjYW5fZHJpdmVyX2VuYWJsZSAoKTsKQEAgLTI2Myw3ICsyNjMsNyBAQAogICovCiB2b2lkIGNhbl9kcml2ZXJfZW5hYmxlICh2b2lkKQogewotICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICB2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKICAgICAvKiBJbml0aWFsaXplIE1CTVIgKi8KQEAgLTMwMiwxMyArMzAyLDEzIEBACiAgICAgbWVtY3RsLT5tZW1jX21jciA9IDB4MDExQyB8IFVQTUI7CiAKICAgICAvKiBJbml0aWFsaXplIE9SMyAvIEJSMyBmb3IgQ0FOIEJ1cyBDb250cm9sbGVyICovCi0gICAgbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfQ0FOOwotICAgIG1lbWN0bC0+bWVtY19icjMgPSBDRkdfQlIzX0NBTjsKKyAgICBtZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19PUjNfQ0FOOworICAgIG1lbWN0bC0+bWVtY19icjMgPSBDT05GSUdfU1lTX0JSM19DQU47CiB9CiAKIHZvaWQgY2FuX2RyaXZlcl9kaXNhYmxlICh2b2lkKQogewotICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICB2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKICAgICAvKiBSZXNldCBPUjMgLyBCUjMgdG8gZGlzYWJsZSAgQ0FOIEJ1cyBDb250cm9sbGVyICovCkBAIC0zMzEsNyArMzMxLDcgQEAKIAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsIGxvbmcgaW50IG1heHNpemUpCiB7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgIHZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogICAgIG1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKQEAgLTM0MSwyNCArMzQxLDI0IEBACiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotI2RlZmluZQlFVEhfQ0ZHX0JJVFMJKENGR19QQl9FVEhfQ0ZHMSB8IENGR19QQl9FVEhfQ0ZHMiAgfCBDRkdfUEJfRVRIX0NGRzMgKQorI2RlZmluZQlFVEhfQ0ZHX0JJVFMJKENPTkZJR19TWVNfUEJfRVRIX0NGRzEgfCBDT05GSUdfU1lTX1BCX0VUSF9DRkcyICB8IENPTkZJR19TWVNfUEJfRVRIX0NGRzMgKQogCi0jZGVmaW5lIEVUSF9BTExfQklUUwkoRVRIX0NGR19CSVRTIHwgQ0ZHX1BCX0VUSF9QT1dFUkRPV04pCisjZGVmaW5lIEVUSF9BTExfQklUUwkoRVRIX0NGR19CSVRTIHwgQ09ORklHX1NZU19QQl9FVEhfUE9XRVJET1dOKQogCiB2b2lkCXJlc2V0X3BoeSh2b2lkKQogewotCWltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCWltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1bG9uZyB2YWx1ZTsKIAogCS8qIENvbmZpZ3VyZSBhbGwgbmVlZGVkIHBvcnQgcGlucyBmb3IgR1BJTyAqLwotI2lmZGVmIENGR19FVEhfTURESVNfVkFMVUUKLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGF0IHw9ICAgQ0ZHX1BBX0VUSF9NRERJUzsKKyNpZmRlZiBDT05GSUdfU1lTX0VUSF9NRERJU19WQUxVRQorCWltbXItPmltX2lvcG9ydC5pb3BfcGFkYXQgfD0gICBDT05GSUdfU1lTX1BBX0VUSF9NRERJUzsKICNlbHNlCi0JaW1tci0+aW1faW9wb3J0LmlvcF9wYWRhdCAmPSB+KENGR19QQV9FVEhfTURESVMgfCBDRkdfUEFfRVRIX1JFU0VUKTsJLyogU2V0IGxvdyAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGFkYXQgJj0gfihDT05GSUdfU1lTX1BBX0VUSF9NRERJUyB8IENPTkZJR19TWVNfUEFfRVRIX1JFU0VUKTsJLyogU2V0IGxvdyAqLwogI2VuZGlmCi0JaW1tci0+aW1faW9wb3J0LmlvcF9wYXBhciAmPSB+KENGR19QQV9FVEhfTURESVMgfCBDRkdfUEFfRVRIX1JFU0VUKTsJLyogR1BJTyAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGFvZHIgJj0gfihDRkdfUEFfRVRIX01ERElTIHwgQ0ZHX1BBX0VUSF9SRVNFVCk7CS8qIGFjdGl2ZSBvdXRwdXQgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGlyIHw9ICAgQ0ZHX1BBX0VUSF9NRERJUyB8IENGR19QQV9FVEhfUkVTRVQ7CS8qIG91dHB1dCAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGFwYXIgJj0gfihDT05GSUdfU1lTX1BBX0VUSF9NRERJUyB8IENPTkZJR19TWVNfUEFfRVRIX1JFU0VUKTsJLyogR1BJTyAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGFvZHIgJj0gfihDT05GSUdfU1lTX1BBX0VUSF9NRERJUyB8IENPTkZJR19TWVNfUEFfRVRIX1JFU0VUKTsJLyogYWN0aXZlIG91dHB1dCAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGFkaXIgfD0gICBDT05GSUdfU1lTX1BBX0VUSF9NRERJUyB8IENPTkZJR19TWVNfUEFfRVRIX1JFU0VUOwkvKiBvdXRwdXQgKi8KIAogCWltbXItPmltX2NwbS5jcF9wYnBhciAmPSB+KEVUSF9BTExfQklUUyk7CS8qIEdQSU8gKi8KIAlpbW1yLT5pbV9jcG0uY3BfcGJvZHIgJj0gfihFVEhfQUxMX0JJVFMpOwkvKiBhY3RpdmUgb3V0cHV0ICovCkBAIC0zNjYsMjMgKzM2NiwyMyBAQAogCXZhbHVlICA9IGltbXItPmltX2NwbS5jcF9wYmRhdDsKIAogCS8qIEFzc2VydCBQb3dlcmRvd24gYW5kIFJlc2V0IHNpZ25hbHMgKi8KLQl2YWx1ZSB8PSAgQ0ZHX1BCX0VUSF9QT1dFUkRPV047CisJdmFsdWUgfD0gIENPTkZJR19TWVNfUEJfRVRIX1BPV0VSRE9XTjsKIAogCS8qIFBIWSBjb25maWd1cmF0aW9uIGluY2x1ZGVzIE1ERElTIGFuZCBDRkcxIC4uLiBDRkczICovCi0jaWZkZWYgQ0ZHX0VUSF9DRkcxX1ZBTFVFCi0JdmFsdWUgfD0gICBDRkdfUEJfRVRIX0NGRzE7CisjaWZkZWYgQ09ORklHX1NZU19FVEhfQ0ZHMV9WQUxVRQorCXZhbHVlIHw9ICAgQ09ORklHX1NZU19QQl9FVEhfQ0ZHMTsKICNlbHNlCi0JdmFsdWUgJj0gfihDRkdfUEJfRVRIX0NGRzEpOworCXZhbHVlICY9IH4oQ09ORklHX1NZU19QQl9FVEhfQ0ZHMSk7CiAjZW5kaWYKLSNpZmRlZiBDRkdfRVRIX0NGRzJfVkFMVUUKLQl2YWx1ZSB8PSAgIENGR19QQl9FVEhfQ0ZHMjsKKyNpZmRlZiBDT05GSUdfU1lTX0VUSF9DRkcyX1ZBTFVFCisJdmFsdWUgfD0gICBDT05GSUdfU1lTX1BCX0VUSF9DRkcyOwogI2Vsc2UKLQl2YWx1ZSAmPSB+KENGR19QQl9FVEhfQ0ZHMik7CisJdmFsdWUgJj0gfihDT05GSUdfU1lTX1BCX0VUSF9DRkcyKTsKICNlbmRpZgotI2lmZGVmIENGR19FVEhfQ0ZHM19WQUxVRQotCXZhbHVlIHw9ICAgQ0ZHX1BCX0VUSF9DRkczOworI2lmZGVmIENPTkZJR19TWVNfRVRIX0NGRzNfVkFMVUUKKwl2YWx1ZSB8PSAgIENPTkZJR19TWVNfUEJfRVRIX0NGRzM7CiAjZWxzZQotCXZhbHVlICY9IH4oQ0ZHX1BCX0VUSF9DRkczKTsKKwl2YWx1ZSAmPSB+KENPTkZJR19TWVNfUEJfRVRIX0NGRzMpOwogI2VuZGlmCiAKIAkvKiBEcml2ZSBvdXRwdXQgc2lnbmFscyB0byBpbml0aWFsIHN0YXRlICovCkBAIC0zOTEsMTEgKzM5MSwxMSBAQAogCXVkZWxheSAoMTAwMDApOwogCiAJLyogRGUtYXNzZXJ0IEV0aGVybmV0IFBvd2VyZG93biAqLwotCWltbXItPmltX2NwbS5jcF9wYmRhdCAmPSB+KENGR19QQl9FVEhfUE9XRVJET1dOKTsgLyogRW5hYmxlIFBIWSBwb3dlciAqLworCWltbXItPmltX2NwbS5jcF9wYmRhdCAmPSB+KENPTkZJR19TWVNfUEJfRVRIX1BPV0VSRE9XTik7IC8qIEVuYWJsZSBQSFkgcG93ZXIgKi8KIAl1ZGVsYXkgKDEwMDAwKTsKIAogCS8qIGRlLWFzc2VydCBSRVNFVCBzaWduYWwgb2YgUEhZICovCi0JaW1tci0+aW1faW9wb3J0LmlvcF9wYWRhdCB8PSBDRkdfUEFfRVRIX1JFU0VUOworCWltbXItPmltX2lvcG9ydC5pb3BfcGFkYXQgfD0gQ09ORklHX1NZU19QQV9FVEhfUkVTRVQ7CiAJdWRlbGF5ICgxMDAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9DQ00vZmxhc2guYyBiL2JvYXJkL3NpZW1lbnMvQ0NNL2ZsYXNoLmMKaW5kZXggOWMzMjc4NS4uYWQxZWQ3OSAxMDA2NDQKLS0tIGEvYm9hcmQvc2llbWVucy9DQ00vZmxhc2guYworKysgYi9ib2FyZC9zaWVtZW5zL0NDTS9mbGFzaC5jCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTM4LDEzICszOCwxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjAsIHNpemVfYjE7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTc1LDM4ICs3NSwzOCBAQAogCX0KIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKIAlpZiAoc2l6ZV9iMSkgewotCQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMSAmIDB4RkZGRjgwMDApOwotCQltZW1jdGwtPm1lbWNfYnIxID0gKChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApICYgQlJfQkFfTVNLKSB8CisJCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMSAmIDB4RkZGRjgwMDApOworCQltZW1jdGwtPm1lbWNfYnIxID0gKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSAmIEJSX0JBX01TSykgfAogCQkJCSAgICBCUl9NU19HUENNIHwgQlJfVjsKIAogCQkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0JCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKShDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApLAorCQlzaXplX2IxID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCksCiAJCQkJCSAgJmZsYXNoX2luZm9bMV0pOwogCi0JCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKKwkJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJCSAgICAgICZmbGFzaF9pbmZvWzFdKTsKICNlbmRpZgogCX0gZWxzZSB7CkBAIC00MTksNyArNDE5LDcgQEAKIAlsYXN0ICA9IHN0YXJ0OwogCWFkZHIgPSAodnVfbG9uZyopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogCXdoaWxlICgoYWRkclswXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTU0Miw3ICs1NDIsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDAwODAwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9zaWVtZW5zL0NDTS9mcGdhX2NjbS5jIGIvYm9hcmQvc2llbWVucy9DQ00vZnBnYV9jY20uYwppbmRleCAxMWI5N2JjLi41MGIwOGFiIDEwMDY0NAotLS0gYS9ib2FyZC9zaWVtZW5zL0NDTS9mcGdhX2NjbS5jCisrKyBiL2JvYXJkL3NpZW1lbnMvQ0NNL2ZwZ2FfY2NtLmMKQEAgLTMxLDcgKzMxLDcgQEAKIAogZnBnYV90IGZwZ2FfbGlzdFtdID0gewogICAgIHsgIlBVTUEiICwgUFVNQV9DT05GX0JBU0UgLAotICAgICAgQ0ZHX1BDX1BVTUFfSU5JVCAsIENGR19QQ19QVU1BX1BST0cgLCBDRkdfUENfUFVNQV9ET05FICB9CisgICAgICBDT05GSUdfU1lTX1BDX1BVTUFfSU5JVCAsIENPTkZJR19TWVNfUENfUFVNQV9QUk9HICwgQ09ORklHX1NZU19QQ19QVU1BX0RPTkUgIH0KIH07CiBpbnQgZnBnYV9jb3VudCA9IHNpemVvZihmcGdhX2xpc3QpIC8gc2l6ZW9mKGZwZ2FfdCk7CiAKQEAgLTkwLDcgKzkwLDcgQEAKIAogdWxvbmcgZnBnYV9jb250cm9sIChmcGdhX3QqIGZwZ2EsIGludCBjbWQpCiB7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbXIgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICB2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tciAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICB2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKIAogICAgIHN3aXRjaCAoY21kKSB7CmRpZmYgLS1naXQgYS9ib2FyZC9zaWVtZW5zL0lBRDIxMC9JQUQyMTAuYyBiL2JvYXJkL3NpZW1lbnMvSUFEMjEwL0lBRDIxMC5jCmluZGV4IDljMGZmMDIuLmU5ZTdmODQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NpZW1lbnMvSUFEMjEwL0lBRDIxMC5jCisrKyBiL2JvYXJkL3NpZW1lbnMvSUFEMjEwL0lBRDIxMC5jCkBAIC0xMDIsNyArMTAyLDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXZvbGF0aWxlIGlvcDh4eF90ICppb3AgPSAmaW1tYXAtPmltX2lvcG9ydDsKIAl2b2xhdGlsZSBmZWNfdCAqZmVjcCA9ICZpbW1hcC0+aW1fY3BtLmNwX2ZlYzsKQEAgLTExNyw3ICsxMTcsNyBAQAogCSAqIHdpdGggdHdvIFNEUkFNIGJhbmtzIG9yIGZvdXIgY3ljbGVzIGV2ZXJ5IDMxLjIgdXMgd2l0aCBvbmUKIAkgKiBiYW5rLiBJdCB3aWxsIGJlIGFkanVzdGVkIGFmdGVyIG1lbW9yeSBzaXppbmcuCiAJICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIAltZW1jdGwtPm1lbWNfbWFyID0gMHgwMDAwMDA4ODsKIApAQCAtMTI2LDEwICsxMjYsMTAgQEAKIAkgKiBwcmVsaW1pbmFyeSBhZGRyZXNzZXMgLSB0aGVzZSBoYXZlIHRvIGJlIG1vZGlmaWVkIGFmdGVyIHRoZQogCSAqIFNEUkFNIHNpemUgaGFzIGJlZW4gZGV0ZXJtaW5lZC4KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IyID0gQ0ZHX09SMl9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjIgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVIgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUiAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0xNTUsMjAgKzE1NSwyMCBAQAogCSAqIENoZWNrIEJhbmsgMCBNZW1vcnkgU2l6ZSBmb3IgcmUtY29uZmlndXJhdGlvbgogCSAqCiAJICovCi0Jc2l6ZSA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVIsIChsb25nICopIFNEUkFNX0JBU0VfUFJFTElNLAorCXNpemUgPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUiwgKGxvbmcgKikgU0RSQU1fQkFTRV9QUkVMSU0sCiAJCQkgIFNEUkFNX01BWF9TSVpFKTsKIAogCXVkZWxheSAoMTAwMCk7CiAKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVI7CisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVI7CiAJdWRlbGF5ICgxMDAwKTsKIAogCS8qCiAJICogRmluYWwgbWFwcGluZwogCSAqLwotCW1lbWN0bC0+bWVtY19vcjIgPSAoKC1zaXplKSAmIDB4RkZGRjAwMDApIHwgQ0ZHX09SMl9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMiA9ICgoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YpOworCW1lbWN0bC0+bWVtY19vcjIgPSAoKC1zaXplKSAmIDB4RkZGRjAwMDApIHwgQ09ORklHX1NZU19PUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjIgPSAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVik7CiAKIAl1ZGVsYXkgKDEwMDAwKTsKIApAQCAtMTk1LDcgKzE5NSw3IEBACiBzdGF0aWMgbG9uZyBpbnQgZHJhbV9zaXplIChsb25nIGludCBtYW1yX3ZhbHVlLCBsb25nIGludCAqYmFzZSwKIAkJCSAgIGxvbmcgaW50IG1heHNpemUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAltZW1jdGwtPm1lbWNfbWFtciA9IG1hbXJfdmFsdWU7CkBAIC0yMTksNyArMjE5LDcgQEAKIAogdm9pZCBib2FyZF9ldGhlcl9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgaW9wOHh4X3QgKmlvcCA9ICZpbW1hcC0+aW1faW9wb3J0OwogCXZvbGF0aWxlIGZlY190ICpmZWNwID0gJmltbWFwLT5pbV9jcG0uY3BfZmVjOwogCkBAIC0yMzAsNyArMjMwLDcgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZiAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbXRpbWVyOHh4X3QgKnRpbWVycyA9ICZpbW1hcC0+aW1fY3BtdGltZXI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXZvbGF0aWxlIGlvcDh4eF90ICppb3AgPSAmaW1tYXAtPmltX2lvcG9ydDsKQEAgLTI2MSw3ICsyNjEsNyBAQAogdm9pZCBib2FyZF9nZXRfZW5ldGFkZHIgKHVjaGFyICogYWRkcikKIHsKIAlpbnQgaTsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcG0gPSAmaW1tYXAtPmltX2NwbTsKIAl1bnNpZ25lZCBpbnQgcmNjcnRtcDsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9JQUQyMTAvYXRtLmMgYi9ib2FyZC9zaWVtZW5zL0lBRDIxMC9hdG0uYwppbmRleCAxYjI3ZjMzLi5kMWI3NWJjIDEwMDY0NAotLS0gYS9ib2FyZC9zaWVtZW5zL0lBRDIxMC9hdG0uYworKysgYi9ib2FyZC9zaWVtZW5zL0lBRDIxMC9hdG0uYwpAQCAtNTcsNyArNTcsNyBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBpbnQgYXRtTG9hZCgpCiB7Ci0gIHZvbGF0aWxlIGltbWFwX3QgICAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgIHZvbGF0aWxlIGltbWFwX3QgICAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICB2b2xhdGlsZSBjcG10aW1lcjh4eF90ICp0aW1lcnMgPSAmaW1tYXAtPmltX2NwbXRpbWVyOwogICB2b2xhdGlsZSBpb3A4eHhfdCAgICAgICppb3AgICAgPSAmaW1tYXAtPmltX2lvcG9ydDsKIApAQCAtOTEsNyArOTEsNyBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiB2b2lkIGF0bVVubG9hZCgpCiB7Ci0gIHZvbGF0aWxlIGltbWFwX3QgICAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgIHZvbGF0aWxlIGltbWFwX3QgICAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICB2b2xhdGlsZSBjcG10aW1lcjh4eF90ICp0aW1lcnMgPSAmaW1tYXAtPmltX2NwbXRpbWVyOwogICB2b2xhdGlsZSBpb3A4eHhfdCAgICAgICppb3AgICAgPSAmaW1tYXAtPmltX2lvcG9ydDsKIApAQCAtMTQxLDExICsxNDEsMTEgQEAKIGludCBhdG1NZW1Jbml0KCkKIHsKICAgaW50IGk7Ci0gIHVuc2lnbmVkIGltbXIgPSBDRkdfSU1NUjsKKyAgdW5zaWduZWQgaW1tciA9IENPTkZJR19TWVNfSU1NUjsKICAgaW50IHRvdGFsX251bV9yYmQgPSAwOwogICBpbnQgdG90YWxfbnVtX3RiZCA9IDA7CiAKLSAgbWVtc2V0KChjaGFyICopQ0ZHX0lNTVIgKyAweDIwMDAgKyBBVE1fRFBSQU1fQkVHSU4sIDB4MDAsIEFUTV9EUFJBTV9TSVpFKTsKKyAgbWVtc2V0KChjaGFyICopQ09ORklHX1NZU19JTU1SICsgMHgyMDAwICsgQVRNX0RQUkFNX0JFR0lOLCAweDAwLCBBVE1fRFBSQU1fU0laRSk7CiAKICAgZ19hdG0uY3NyYW1fc2l6ZSA9IE5VTV9JTlRfRU5UUklFUyAqIFNJWkVfT0ZfSU5UX0VOVFJZOwogCkBAIC0yMjYsMTEgKzIyNiwxMSBAQAogdm9pZCBhdG1BcGNJbml0KCkKIHsKICAgaW50IGk7Ci0gIC8qIHVuc2lnbmVkIGltbXIgPSBDRkdfSU1NUjsgKi8KLSAgdWludDE2ICogbXBoeXB0X3B0ciA9IE1QSFlQVF9QVFIoQ0ZHX0lNTVIpOwotICBzdHJ1Y3QgYXBjX3BhcmFtc190ICogYXBjcF9wdHIgPSBBUENQX1BUUihDRkdfSU1NUik7Ci0gIHVpbnQxNiAqIGFwY3RfcHJpbzFfcHRyID0gQVBDVDFfUFRSKENGR19JTU1SKTsKLSAgdWludDE2ICogdHFfcHRyID0gVFFfUFRSKENGR19JTU1SKTsKKyAgLyogdW5zaWduZWQgaW1tciA9IENPTkZJR19TWVNfSU1NUjsgKi8KKyAgdWludDE2ICogbXBoeXB0X3B0ciA9IE1QSFlQVF9QVFIoQ09ORklHX1NZU19JTU1SKTsKKyAgc3RydWN0IGFwY19wYXJhbXNfdCAqIGFwY3BfcHRyID0gQVBDUF9QVFIoQ09ORklHX1NZU19JTU1SKTsKKyAgdWludDE2ICogYXBjdF9wcmlvMV9wdHIgPSBBUENUMV9QVFIoQ09ORklHX1NZU19JTU1SKTsKKyAgdWludDE2ICogdHFfcHRyID0gVFFfUFRSKENPTkZJR19TWVNfSU1NUik7CiAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAgIC8qIEluaXRpYWxpemUgTVBIWSBQb2ludGluZyBUYWJsZSAob25seSBvbmUgZW50cnkpICovCiAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0yOTAsNyArMjkwLDcgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogdm9pZCBhdG1BbXRJbml0KCkKIHsKLSAgdW5zaWduZWQgaW1tciA9IENGR19JTU1SOworICB1bnNpZ25lZCBpbW1yID0gQ09ORklHX1NZU19JTU1SOwogCiAgIGdfYXRtLmFtX3RvcCA9IEFNX1BUUihpbW1yKTsKICAgZ19hdG0uYXBfdG9wID0gQVBfUFRSKGltbXIpOwpAQCAtMzE1LDcgKzMxNSw3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHZvaWQgYXRtQ3BtSW5pdCgpCiB7Ci0gIHVuc2lnbmVkIGltbXIgPSBDRkdfSU1NUjsKKyAgdW5zaWduZWQgaW1tciA9IENPTkZJR19TWVNfSU1NUjsKIAogICBtZW1zZXQoKGNoYXIgKilpbW1yICsgMHgzRjAwLCAweDAwLCAweEMwKTsKIApAQCAtNTUxLDcgKzU1MSw3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHZvaWQgYXRtVXRwSW5pdCgpCiB7Ci0gIHZvbGF0aWxlIGltbWFwX3QgICAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgIHZvbGF0aWxlIGltbWFwX3QgICAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICB2b2xhdGlsZSBpb3A4eHhfdCAgICAgICppb3AgICAgPSAmaW1tYXAtPmltX2lvcG9ydDsKICAgdm9sYXRpbGUgY2FyOHh4X3QJICpjYXIgICAgPSAmaW1tYXAtPmltX2Nsa3JzdDsKICAgdm9sYXRpbGUgY3BtOHh4X3QJICpjcG0gICAgPSAmaW1tYXAtPmltX2NwbTsKZGlmZiAtLWdpdCBhL2JvYXJkL3NpZW1lbnMvSUFEMjEwL2F0bS5oIGIvYm9hcmQvc2llbWVucy9JQUQyMTAvYXRtLmgKaW5kZXggNzFiMDQ5Ny4uY2Q1YjQ1ZSAxMDA2NDQKLS0tIGEvYm9hcmQvc2llbWVucy9JQUQyMTAvYXRtLmgKKysrIGIvYm9hcmQvc2llbWVucy9JQUQyMTAvYXRtLmgKQEAgLTYsOSArNiw5IEBACiB0eXBlZGVmIHZvbGF0aWxlIHVuc2lnbmVkIGludCB2dWludDMyOwogCiAKLSNkZWZpbmUgRFBSQU1fQVRNIENGR19JTU1SICsgMHgzMDAwCisjZGVmaW5lIERQUkFNX0FUTSBDT05GSUdfU1lTX0lNTVIgKyAweDMwMDAKIAotI2RlZmluZSBBVE1fRFBSQU1fQkVHSU4gIChEUFJBTV9BVE0gLSBDRkdfSU1NUiAtIDB4MjAwMCkKKyNkZWZpbmUgQVRNX0RQUkFNX0JFR0lOICAoRFBSQU1fQVRNIC0gQ09ORklHX1NZU19JTU1SIC0gMHgyMDAwKQogI2RlZmluZSBOVU1fQ09OTkVDVElPTlMgIDEKICNkZWZpbmUgU0FSX1JYQl9TSVpFICAgICAxNTg0CiAjZGVmaW5lIEFNX0hNQVNLICAgICAgICAgMHgwRkZGRkZGMApkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9JQUQyMTAvZmxhc2guYyBiL2JvYXJkL3NpZW1lbnMvSUFEMjEwL2ZsYXNoLmMKaW5kZXggMTEwODU4ZC4uYzI2MmUwZiAxMDA2NDQKLS0tIGEvYm9hcmQvc2llbWVucy9JQUQyMTAvZmxhc2guYworKysgYi9ib2FyZC9zaWVtZW5zL0lBRDIxMC9mbGFzaC5jCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTM4LDEzICszOCwxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0gIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICB2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgIHZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKICAgdW5zaWduZWQgbG9uZyBzaXplOwogICBpbnQgaTsKIAogICAvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0gIGZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworICBmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAgICAgZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAgIH0KIApAQCAtNTksMTMgKzU5LDEzIEBACiAKIAogICAvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0gIG1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplICYgMHhGRkZGODAwMCk7Ci0gIG1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CisgIG1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZSAmIDB4RkZGRjgwMDApOworICBtZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsKIAogICAvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0gIHNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisgIHNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0gIGZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworICBmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKICAgZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZTsKIApAQCAtMzY4LDcgKzM2OCw3IEBACiAgIGxhc3QgID0gc3RhcnQ7CiAgIGFkZHIgPSAodnVfbG9uZyopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogICB3aGlsZSAoKGFkZHJbMF0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7Ci0gICAgaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisgICAgaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogICAgICAgcHJpbnRmICgiVGltZW91dFxuIik7CiAgICAgICByZXR1cm4gMTsKICAgICB9CkBAIC00OTEsNyArNDkxLDcgQEAKICAgLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogICBzdGFydCA9IGdldF90aW1lciAoMCk7CiAgIHdoaWxlICgoKigodnVfbG9uZyAqKWRlc3QpICYgMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAweDAwODAwMDgwKSkgewotICAgIGlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKyAgICBpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogICAgICAgcmV0dXJuICgxKTsKICAgICB9CiAgIH0KZGlmZiAtLWdpdCBhL2JvYXJkL3NpZW1lbnMvU0NNL2NvbmZpZy5tayBiL2JvYXJkL3NpZW1lbnMvU0NNL2NvbmZpZy5tawppbmRleCA4NTVhZTM4Li41ZDA4OThiIDEwMDY0NAotLS0gYS9ib2FyZC9zaWVtZW5zL1NDTS9jb25maWcubWsKKysrIGIvYm9hcmQvc2llbWVucy9TQ00vY29uZmlnLm1rCkBAIC0yNSw3ICsyNSw3IEBACiAjIFNpZW1lbnMgU0NNIGJvYXJkcwogIwogCi0jIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDRkdfRkxBU0hfQkFTRSBkZWZpbmUgaW4gY29uZmlnX1NDTS5oCisjIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgZGVmaW5lIGluIGNvbmZpZ19TQ00uaAogIyBmb3IgdGhlICJmaW5hbCIgY29uZmlndXJhdGlvbiwgd2l0aCBVLUJvb3QgaW4gZmxhc2gsIG9yIHRoZSBhZGRyZXNzCiAjIGluIFJBTSB3aGVyZSBVLUJvb3QgaXMgbG9hZGVkIGF0IGZvciBkZWJ1Z2dpbmcuCiAjCmRpZmYgLS1naXQgYS9ib2FyZC9zaWVtZW5zL1NDTS9mbGFzaC5jIGIvYm9hcmQvc2llbWVucy9TQ00vZmxhc2guYwppbmRleCA1MDBhZjkyLi40YTZkNTM4IDEwMDY0NAotLS0gYS9ib2FyZC9zaWVtZW5zL1NDTS9mbGFzaC5jCisrKyBiL2JvYXJkL3NpZW1lbnMvU0NNL2ZsYXNoLmMKQEAgLTMxLDcgKzMxLDcgQEAKICNkZWZpbmUgVl9CWVRFKGEpCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikoIGEgKSkKIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xODUsMTMgKzE4NSwxMyBAQAogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKIAkvKiBTdGF0aWMgRkxBU0ggQmFuayBjb25maWd1cmF0aW9uIGhlcmUgKG9ubHkgb25lIGJhbmspICovCiAKLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKENGR19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSAoQ09ORklHX1NZU19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCWlmIChmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04gfHwgc2l6ZV9iMCA9PSAwKSB7CiAJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggb24gQmFuayAwIC0gU2l6ZSA9IDB4JTA4bHggPSAlbGQgTUJcbiIsCiAJCQkJc2l6ZV9iMCwgc2l6ZV9iMCA+PiAyMCk7CkBAIC0yMDEsMTAgKzIwMSwxMCBAQAogCSAqIHByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0gwX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkgJiYgZGVmaW5lZChDT05GSUdfRU5WX0FERFIpCkBAIC0zNjQsNyArMzY0LDcgQEAKIAl3aGlsZSAoKFZfVUxPTkcgKGluZm8tPnN0YXJ0W2xfc2VjdF0pICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCB8fAogCSAgICAgICAoVl9VTE9ORyAoaW5mby0+c3RhcnRbbF9zZWN0XSArIDQpICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkKIAl7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTQ4MCw3ICs0ODAsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKChWX1VMT05HIChkZXN0KSAmIDB4MDA4MDAwODApICE9IChjaCAmIDB4MDA4MDAwODApKSB8fAogCQkgICAoKFZfVUxPTkcgKGRlc3QgKyA0KSAmIDB4MDA4MDAwODApICE9IChjbCAmIDB4MDA4MDAwODApKSkgewotCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9zaWVtZW5zL1NDTS9mcGdhX3NjbS5jIGIvYm9hcmQvc2llbWVucy9TQ00vZnBnYV9zY20uYwppbmRleCA2NjFiZjY2Li5hY2Q5YzE1IDEwMDY0NAotLS0gYS9ib2FyZC9zaWVtZW5zL1NDTS9mcGdhX3NjbS5jCisrKyBiL2JvYXJkL3NpZW1lbnMvU0NNL2ZwZ2Ffc2NtLmMKQEAgLTI4LDE4ICsyOCwxOCBAQAogI2luY2x1ZGUgIi4uL2NvbW1vbi9mcGdhLmgiCiAKIGZwZ2FfdCBmcGdhX2xpc3RbXSA9IHsKLQl7IkZJT1giLCBDRkdfRklPWF9CQVNFLAotCSBDRkdfUERfRklPWF9JTklULCBDRkdfUERfRklPWF9QUk9HLCBDRkdfUERfRklPWF9ET05FfQorCXsiRklPWCIsIENPTkZJR19TWVNfRklPWF9CQVNFLAorCSBDT05GSUdfU1lTX1BEX0ZJT1hfSU5JVCwgQ09ORklHX1NZU19QRF9GSU9YX1BST0csIENPTkZJR19TWVNfUERfRklPWF9ET05FfQogCSwKLQl7IkZET0hNIiwgQ0ZHX0ZET0hNX0JBU0UsCi0JIENGR19QRF9GRE9ITV9JTklULCBDRkdfUERfRkRPSE1fUFJPRywgQ0ZHX1BEX0ZET0hNX0RPTkV9CisJeyJGRE9ITSIsIENPTkZJR19TWVNfRkRPSE1fQkFTRSwKKwkgQ09ORklHX1NZU19QRF9GRE9ITV9JTklULCBDT05GSUdfU1lTX1BEX0ZET0hNX1BST0csIENPTkZJR19TWVNfUERfRkRPSE1fRE9ORX0KIH07CiBpbnQgZnBnYV9jb3VudCA9IHNpemVvZiAoZnBnYV9saXN0KSAvIHNpemVvZiAoZnBnYV90KTsKIAogCiB1bG9uZyBmcGdhX2NvbnRyb2wgKGZwZ2FfdCAqIGZwZ2EsIGludCBjbWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlzd2l0Y2ggKGNtZCkgewogCWNhc2UgRlBHQV9JTklUX0lTX0hJR0g6CkBAIC03NCwxMSArNzQsMTEgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZQR0FfR0VUX0lEOgotCQlpZiAoZnBnYS0+Y29uZl9iYXNlID09IENGR19GSU9YX0JBU0UpIHsKKwkJaWYgKGZwZ2EtPmNvbmZfYmFzZSA9PSBDT05GSUdfU1lTX0ZJT1hfQkFTRSkgewogCQkJdWxvbmcgdmVyID0KIAkJCQkqKHZvbGF0aWxlIHVsb25nICopIChmcGdhLT5jb25mX2Jhc2UgKyAweDEwKTsKIAkJCXJldHVybiAoKHZlciA+PiAxMCkgJiAweGYpICsgKCh2ZXIgPj4gMikgJiAweGYwKTsKLQkJfSBlbHNlIGlmIChmcGdhLT5jb25mX2Jhc2UgPT0gQ0ZHX0ZET0hNX0JBU0UpIHsKKwkJfSBlbHNlIGlmIChmcGdhLT5jb25mX2Jhc2UgPT0gQ09ORklHX1NZU19GRE9ITV9CQVNFKSB7CiAJCQlyZXR1cm4gKCoodm9sYXRpbGUgdXNob3J0ICopIGZwZ2EtPmNvbmZfYmFzZSkgJiAweGZmOwogCQl9IGVsc2UgewogCQkJcmV0dXJuICoodm9sYXRpbGUgdWxvbmcgKikgZnBnYS0+Y29uZl9iYXNlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9TQ00vc2NtLmMgYi9ib2FyZC9zaWVtZW5zL1NDTS9zY20uYwppbmRleCA2YTlkZDI1Li5lMDYxMWZlIDEwMDY0NAotLS0gYS9ib2FyZC9zaWVtZW5zL1NDTS9zY20uYworKysgYi9ib2FyZC9zaWVtZW5zL1NDTS9zY20uYwpAQCAtMjQ5LDcgKzI0OSw3IEBACiAJICovCiAJbWF4c2l6ZSA9ICgxICsgKH5vcnggfCAweDdmZmYpKSAvIDI7CiAKLQkvKiBTaW5jZSBDRkdfU0RSQU1fQkFTRSBpcyBhbHdheXMgMCAoPz8pLCB3ZSBhc3N1bWUgdGhhdAorCS8qIFNpbmNlIENPTkZJR19TWVNfU0RSQU1fQkFTRSBpcyBhbHdheXMgMCAoPz8pLCB3ZSBhc3N1bWUgdGhhdAogCSAqIHdlIGFyZSBjb25maWd1cmluZyBDUzEgaWYgYmFzZSAhPSAwCiAJICovCiAJc2Rtcl9wdHIgPSBiYXNlID8gJm1lbWN0bC0+bWVtY19sc2RtciA6ICZtZW1jdGwtPm1lbWNfcHNkbXI7CkBAIC0yNzQsNyArMjc0LDcgQEAKIAkgKiAgYWNjZXNzaW5nIHRoZSBTRFJBTSB3aXRoIGEgc2luZ2xlLWJ5dGUgdHJhbnNhY3Rpb24uIgogCSAqCiAJICogVGhlIGFwcHJvcHJpYXRlIEJSeC9PUnggcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCB3aGVuIHdlCi0JICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ0ZHX1NEUkFNX0JBU0UuCisJICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogCSAqLwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX1BSRUE7CkBAIC0yODUsNyArMjg1LDcgQEAKIAkJKmJhc2UgPSBjOwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX01SVzsKLQkqKGJhc2UgKyBDRkdfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCisJKihiYXNlICsgQ09ORklHX1NZU19NUlNfT0ZGUykgPSBjOwkvKiBzZXR0aW5nIE1SIG9uIGFkZHJlc3MgbGluZXMgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9OT1JNIHwgUFNETVJfUkZFTjsKIAkqYmFzZSA9IGM7CkBAIC0zMDgsMTAgKzMwOCwxMCBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCWxvbmcgc2l6ZTgsIHNpemU5OwogI2VuZGlmCiAJbG9uZyBwc2l6ZSwgbHNpemU7CkBAIC0zMTksOCArMzE5LDggQEAKIAlwc2l6ZSA9IDE2ICogMTAyNCAqIDEwMjQ7CiAJbHNpemUgPSAwOwogCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAogI2lmIDAJCQkJCQkJLyogSnVzdCBmb3IgZGVidWdnaW5nICovCiAjZGVmaW5lCXBydF9icl9vcihiclgsb3JYKSBkbyB7CQkJCVwKQEAgLTMzOCwzNyArMzM4LDM3IEBACiAJcHJ0X2JyX29yIChicjMsIG9yMyk7CiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkvKiA2MHggU0RSQU0gc2V0dXA6CiAJICovCi0Jc2l6ZTggPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfOENPTCwgQ0ZHX09SMV84Q09MLAotCQkJCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSk7Ci0Jc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfOUNPTCwgQ0ZHX09SMV85Q09MLAotCQkJCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSk7CisJc2l6ZTggPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzhDT0wsIENPTkZJR19TWVNfT1IxXzhDT0wsCisJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CisJc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzlDT0wsIENPTkZJR19TWVNfT1IxXzlDT0wsCisJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewogCQlwc2l6ZSA9IHNpemU5OwogCQlwcmludGYgKCIoNjB4OjlDT0wgLSAlbGQgTUIsICIsIHBzaXplID4+IDIwKTsKIAl9IGVsc2UgewotCQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl84Q09MLCBDRkdfT1IxXzhDT0wsCi0JCQkJCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSk7CisJCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl84Q09MLCBDT05GSUdfU1lTX09SMV84Q09MLAorCQkJCQkJICAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKIAkJcHJpbnRmICgiKDYweDo4Q09MIC0gJWxkIE1CLCAiLCBwc2l6ZSA+PiAyMCk7CiAJfQogCiAJLyogTG9jYWwgU0RSQU0gc2V0dXA6CiAJICovCi0jaWZkZWYgQ0ZHX0lOSVRfTE9DQUxfU0RSQU0KLQltZW1jdGwtPm1lbWNfbHNydCA9IENGR19MU1JUOwotCXNpemU4ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX0xTRE1SXzhDT0wsIENGR19PUjJfOENPTCwKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfTE9DQUxfU0RSQU0KKwltZW1jdGwtPm1lbWNfbHNydCA9IENPTkZJR19TWVNfTFNSVDsKKwlzaXplOCA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfTFNETVJfOENPTCwgQ09ORklHX1NZU19PUjJfOENPTCwKIAkJCQkJICAodWNoYXIgKikgU0RSQU1fQkFTRTJfUFJFTElNKTsKLQlzaXplOSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19MU0RNUl85Q09MLCBDRkdfT1IyXzlDT0wsCisJc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX0xTRE1SXzlDT0wsIENPTkZJR19TWVNfT1IyXzlDT0wsCiAJCQkJCSAgKHVjaGFyICopIFNEUkFNX0JBU0UyX1BSRUxJTSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewogCQlsc2l6ZSA9IHNpemU5OwogCQlwcmludGYgKCJMb2NhbDo5Q09MIC0gJWxkIE1CKSB1c2luZyAiLCBsc2l6ZSA+PiAyMCk7CiAJfSBlbHNlIHsKLQkJbHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfTFNETVJfOENPTCwgQ0ZHX09SMl84Q09MLAorCQlsc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfTFNETVJfOENPTCwgQ09ORklHX1NZU19PUjJfOENPTCwKIAkJCQkJCSAgKHVjaGFyICopIFNEUkFNX0JBU0UyX1BSRUxJTSk7CiAJCXByaW50ZiAoIkxvY2FsOjhDT0wgLSAlbGQgTUIpIHVzaW5nICIsIGxzaXplID4+IDIwKTsKIAl9CkBAIC0zNzcsMTEgKzM3NywxMSBAQAogCS8qIFNldCB1cCBCUjIgc28gdGhhdCB0aGUgbG9jYWwgU0RSQU0gZ29lcwogCSAqIHJpZ2h0IGFmdGVyIHRoZSA2MHggU0RSQU0KIAkgKi8KLQltZW1jdGwtPm1lbWNfYnIyID0gKENGR19CUjJfUFJFTElNICYgfkJSeF9CQV9NU0spIHwKLQkJCShDRkdfU0RSQU1fQkFTRSArIHBzaXplKTsKKwltZW1jdGwtPm1lbWNfYnIyID0gKENPTkZJR19TWVNfQlIyX1BSRUxJTSAmIH5CUnhfQkFfTVNLKSB8CisJCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgcHNpemUpOwogI2VuZGlmCi0jZW5kaWYgLyogQ0ZHX0lOSVRfTE9DQUxfU0RSQU0gKi8KLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfSU5JVF9MT0NBTF9TRFJBTSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJaWNhY2hlX2VuYWJsZSAoKTsKIApAQCAtMzk0LDE3ICszOTQsMTcgQEAKIAogc3RhdGljIHZvaWQgY29uZmlnX3Njb2hfY3MgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tci0+aW1fbWVtY3RsOwotCXZvbGF0aWxlIGNhbl9yZWdfdCAqY2FuID0gKHZvbGF0aWxlIGNhbl9yZWdfdCAqKSBDRkdfQ0FOMF9CQVNFOworCXZvbGF0aWxlIGNhbl9yZWdfdCAqY2FuID0gKHZvbGF0aWxlIGNhbl9yZWdfdCAqKSBDT05GSUdfU1lTX0NBTjBfQkFTRTsKIAl2b2xhdGlsZSB1aW50IHRtcCwgaTsKIAogCS8qIEluaXRpYWxpemUgT1IzIC8gQlIzIGZvciBDQU4gQnVzIENvbnRyb2xsZXIgMCAqLwotCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfQ0FOMF9PUjM7Ci0JbWVtY3RsLT5tZW1jX2JyMyA9IENGR19DQU4wX0JSMzsKKwltZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19DQU4wX09SMzsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19DQU4wX0JSMzsKIAkvKiBJbml0aWFsaXplIE9SNCAvIEJSNCBmb3IgQ0FOIEJ1cyBDb250cm9sbGVyIDEgKi8KLQltZW1jdGwtPm1lbWNfb3I0ID0gQ0ZHX0NBTjFfT1I0OwotCW1lbWN0bC0+bWVtY19icjQgPSBDRkdfQ0FOMV9CUjQ7CisJbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfQ0FOMV9PUjQ7CisJbWVtY3RsLT5tZW1jX2JyNCA9IENPTkZJR19TWVNfQ0FOMV9CUjQ7CiAKIAkvKiBJbml0aWFsaXplIE1BTVIgdG8gd3JpdGUgaW4gdGhlIGFycmF5IGF0IGFkZHJlc3MgMHgwICovCiAJbWVtY3RsLT5tZW1jX21hbXIgPSAweDAwIHwgTXhNUl9PUF9XQVJSIHwgTXhNUl9HUExfeDRESVM7CkBAIC00ODcsMTkgKzQ4NywxOSBAQAogCiAKIAkvKiBJbml0aWFsaXplIE9SNSAvIEJSNSBmb3IgdGhlIGV4dGVuZGVkIEVFUFJPTSBCYW5rMCAqLwotCW1lbWN0bC0+bWVtY19vcjUgPSBDRkdfRVhUUFJPTV9PUjU7Ci0JbWVtY3RsLT5tZW1jX2JyNSA9IENGR19FWFRQUk9NX0JSNTsKKwltZW1jdGwtPm1lbWNfb3I1ID0gQ09ORklHX1NZU19FWFRQUk9NX09SNTsKKwltZW1jdGwtPm1lbWNfYnI1ID0gQ09ORklHX1NZU19FWFRQUk9NX0JSNTsKIAkvKiBJbml0aWFsaXplIE9SNiAvIEJSNiBmb3IgdGhlIGV4dGVuZGVkIEVFUFJPTSBCYW5rMSAqLwotCW1lbWN0bC0+bWVtY19vcjYgPSBDRkdfRVhUUFJPTV9PUjY7Ci0JbWVtY3RsLT5tZW1jX2JyNiA9IENGR19FWFRQUk9NX0JSNjsKKwltZW1jdGwtPm1lbWNfb3I2ID0gQ09ORklHX1NZU19FWFRQUk9NX09SNjsKKwltZW1jdGwtPm1lbWNfYnI2ID0gQ09ORklHX1NZU19FWFRQUk9NX0JSNjsKIAogCS8qIEluaXRpYWxpemUgT1I3IC8gQlI3IGZvciB0aGUgR2x1ZSBMb2dpYyAqLwotCW1lbWN0bC0+bWVtY19vcjcgPSBDRkdfRklPWF9PUjc7Ci0JbWVtY3RsLT5tZW1jX2JyNyA9IENGR19GSU9YX0JSNzsKKwltZW1jdGwtPm1lbWNfb3I3ID0gQ09ORklHX1NZU19GSU9YX09SNzsKKwltZW1jdGwtPm1lbWNfYnI3ID0gQ09ORklHX1NZU19GSU9YX0JSNzsKIAogCS8qIEluaXRpYWxpemUgT1I4IC8gQlI4IGZvciB0aGUgRE9IIExvZ2ljICovCi0JbWVtY3RsLT5tZW1jX29yOCA9IENGR19GRE9ITV9PUjg7Ci0JbWVtY3RsLT5tZW1jX2JyOCA9IENGR19GRE9ITV9CUjg7CisJbWVtY3RsLT5tZW1jX29yOCA9IENPTkZJR19TWVNfRkRPSE1fT1I4OworCW1lbWN0bC0+bWVtY19icjggPSBDT05GSUdfU1lTX0ZET0hNX0JSODsKIAogCURFQlVHRiAoIk9SMCAlMDh4ICAgQlIwICUwOHhcbiIsIG1lbWN0bC0+bWVtY19vcjAsIG1lbWN0bC0+bWVtY19icjApOwogCURFQlVHRiAoIk9SMSAlMDh4ICAgQlIxICUwOHhcbiIsIG1lbWN0bC0+bWVtY19vcjEsIG1lbWN0bC0+bWVtY19icjEpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9TTU40Mi9mbGFzaC5jIGIvYm9hcmQvc2llbWVucy9TTU40Mi9mbGFzaC5jCmluZGV4IGFlNjQwOTYuLjhjZjE3YjggMTAwNjQ0Ci0tLSBhL2JvYXJkL3NpZW1lbnMvU01ONDIvZmxhc2guYworKysgYi9ib2FyZC9zaWVtZW5zL1NNTjQyL2ZsYXNoLmMKQEAgLTI1LDggKzI1LDggQEAKICNpbmNsdWRlIDxhc20vYnl0ZW9yZGVyLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvaGFyZHdhcmUuaD4KIAotc3RhdGljIHVuc2lnbmVkIGxvbmcgZmxhc2hfYWRkcl90YWJsZVtDRkdfTUFYX0ZMQVNIX0JBTktTXSA9IENGR19GTEFTSF9CQU5LU19MSVNUOwotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitzdGF0aWMgdW5zaWduZWQgbG9uZyBmbGFzaF9hZGRyX3RhYmxlW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXSA9IENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVDsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogZXh0ZXJuIGludCBscGMyMjkyX2NvcHlfYnVmZmVyX3RvX2ZsYXNoKGZsYXNoX2luZm9fdCAqLCB1bG9uZyk7CiBleHRlcm4gaW50IGxwYzIyOTJfZmxhc2hfZXJhc2UoZmxhc2hfaW5mb190ICosIGludCwgaW50KTsKQEAgLTE3MiwxOSArMTcyLDE5IEBACiAgKiBGcm9tIGhlcmUgb24gaXMgY29kZSBmb3IgdGhlIGV4dGVybmFsIFMyOUdMMTI4TiB0YWtlbiBmcm9tIGNhbTUyMDBfZmxhc2guYwogICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSB1bnNpZ25lZCBzaG9ydAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSB1bnNpZ25lZCBzaG9ydAogCiBzdGF0aWMgaW50IHdhaXRfZm9yX0RRN18zMihmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc2VjdCkKIHsKIAl1bG9uZyBzdGFydCwgbm93LCBsYXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPQotCQkoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0KKwkJKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAKIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAlsYXN0ID0gc3RhcnQ7Ci0Jd2hpbGUgKChhZGRyWzBdICYgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9Ci0JCQkoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwl3aGlsZSAoKGFkZHJbMF0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9CisJCQkoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAtMTsKIAkJfQpAQCAtMTk5LDggKzE5OSw4IEBACiAKIGludCBleHRfZmxhc2hfZXJhc2UoZmxhc2hfaW5mb190ICogaW5mbywgaW50IHNfZmlyc3QsIGludCBzX2xhc3QpCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CiAJaW50IGZsYWcsIHByb3QsIHNlY3QsIGxfc2VjdCwgcmV0OwogCiAJcmV0ID0gMDsKQEAgLTIzNiwxNCArMjM2LDE0IEBACiAJLyogU3RhcnQgZXJhc2Ugb24gdW5wcm90ZWN0ZWQgc2VjdG9ycyAqLwogCWZvciAoc2VjdCA9IHNfZmlyc3Q7IHNlY3QgPD0gc19sYXN0OyBzZWN0KyspIHsKIAkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCi0JCQlhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJCQlhZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOwogCi0JCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7Ci0JCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDMwMDAzMDsJLyogc2VjdG9yIGVyYXNlICovCisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7CisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwMzAwMDMwOwkvKiBzZWN0b3IgZXJhc2UgKi8KIAogCQkJbF9zZWN0ID0gc2VjdDsKIAkJCS8qCkBAIC0yNjksOCArMjY5LDggQEAKIAl1ZGVsYXkoMTAwMCk7CiAKIAkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgaW5mby0+c3RhcnRbMF07Ci0JYWRkclswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCisJYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBpbmZvLT5zdGFydFswXTsKKwlhZGRyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAKIAlpZiAocmV0KQogCQlwcmludGYoIiBlcnJvclxuIik7CkBAIC0yODIsMjAgKzI4MiwyMCBAQAogc3RhdGljIHVsb25nIGZsYXNoX2dldF9zaXplKHZ1X2xvbmcgKiBhZGRyLCBmbGFzaF9pbmZvX3QgKiBpbmZvKQogewogCXNob3J0IGk7Ci0JQ0ZHX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKKwlDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKIAl1bG9uZyBiYXNlID0gKHVsb25nKSBhZGRyOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKIAogCS8qIFdyaXRlIGF1dG8gc2VsZWN0IGNvbW1hbmQ6IHJlYWQgTWFudWZhY3R1cmVyIElEICovCi0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA5MDAwOTA7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA5MDAwOTA7CiAJdWRlbGF5KDEwMDApOwogCiAJdmFsdWUgPSBhZGRyMlswXTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgogCQkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fQU1EOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CkBAIC0zMDgsMTIgKzMwOCwxMiBAQAogCXZhbHVlID0gYWRkcjJbMV07CS8qIGRldmljZSBJRCAgICAgICAgICAgICovCiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX01JUlJPUjoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX01JUlJPUjoKIAkJCXZhbHVlID0gYWRkcjJbMTRdOwogCQkJc3dpdGNoKHZhbHVlKSB7Ci0JCQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfR0wxMjhOXzI6CisJCQkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0dMMTI4Tl8yOgogCQkJCQl2YWx1ZSA9IGFkZHIyWzE1XTsKLQkJCQkJaWYgKHZhbHVlICE9IChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9HTDEyOE5fMykgeworCQkJCQlpZiAodmFsdWUgIT0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9HTDEyOE5fMykgewogCQkJCQkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCQkJCQl9IGVsc2UgewogCQkJCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfUzI5R0wxMjhOOwpAQCAtMzQwLDEzICszNDAsMTMgQEAKIAlmb3IgKGkgPSAwOyBpIDwgaW5mby0+c2VjdG9yX2NvdW50OyBpKyspIHsKIAkJLyogcmVhZCBzZWN0b3IgcHJvdGVjdGlvbiBhdCBzZWN0b3IgYWRkcmVzcywgKEE3IC4uIEEwKSA9IDB4MDIgKi8KIAkJLyogRDAgPSAxIGlmIHByb3RlY3RlZCAqLwotCQlhZGRyMiA9ICh2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKKwkJYWRkcjIgPSAodm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOwogCiAJCWluZm8tPnByb3RlY3RbaV0gPSBhZGRyMlsyXSAmIDE7CiAJfQogCiAJLyogaXNzdWUgYmFuayByZXNldCB0byByZXR1cm4gdG8gcmVhZCBtb2RlICovCi0JYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsKKwlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsKIAogCXJldHVybiAoaW5mby0+c2l6ZSk7CiB9CkBAIC0zNTQsMTEgKzM1NCwxMSBAQAogc3RhdGljIHVuc2lnbmVkIGxvbmcgZXh0X2ZsYXNoX2luaXQodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHRvdGFsX2IgPSAwOwotCXVuc2lnbmVkIGxvbmcgc2l6ZV9iW0NGR19NQVhfRkxBU0hfQkFOS1NdOworCXVuc2lnbmVkIGxvbmcgc2l6ZV9iW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAxOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMTsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gLTE7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IDA7CkBAIC0zODQsOSArMzg0LDkgQEAKIAogc3RhdGljIGludCB3cml0ZV93b3JkKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVzaG9ydCBkYXRhKQogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAmZGF0YTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqZGVzdDIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgZGVzdDsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgJmRhdGE7CiAJdWxvbmcgc3RhcnQ7CiAJaW50IGZsYWc7CiAKQEAgLTM5OCw5ICszOTgsOSBAQAogCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKIAotCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQTAwMEEwOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQTAwMEEwOwogCSpkZXN0MiA9ICpkYXRhMjsKIAogCS8qIHJlLWVuYWJsZSBpbnRlcnJ1cHRzIGlmIG5lY2Vzc2FyeSAqLwpAQCAtNDA5LDEwICs0MDksMTAgQEAKIAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lcigwKTsKLQl3aGlsZSAoKCpkZXN0MiAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQotCQkJKCpkYXRhMiAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSkgeworCXdoaWxlICgoKmRlc3QyICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQorCQkJKCpkYXRhMiAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKIAotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlwcmludGYoIldSSVRFX1RPVVRcbiIpOwogCQkJcmV0dXJuICgxKTsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9wY3VfZS9mbGFzaC5jIGIvYm9hcmQvc2llbWVucy9wY3VfZS9mbGFzaC5jCmluZGV4IDk3YjUxMWUuLjNjZTdiYjMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NpZW1lbnMvcGN1X2UvZmxhc2guYworKysgYi9ib2FyZC9zaWVtZW5zL3BjdV9lL2ZsYXNoLmMKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKICMgaWZuZGVmICBDT05GSUdfRU5WX0FERFIKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICMgZW5kaWYKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTQ3LDcgKzQ3LDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC02OCwyMCArNjgsMjAgQEAKICAqLwogCiAjZGVmaW5lIFBDVV9NT05JVE9SX0JBU0UgICAoIChmbGFzaF9pbmZvWzBdLnN0YXJ0WzBdICsgZmxhc2hfaW5mb1swXS5zaXplIC0gMSkgXAotCQkJICAgLSAoMHhGRkZGRkZGRiAtIENGR19NT05JVE9SX0JBU0UpICkKKwkJCSAgIC0gKDB4RkZGRkZGRkYgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBiYXNlLCBzaXplX2IwLCBzaXplX2IxOwogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC0xMzEsNyArMTMxLDcgQEAKIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KIAliYXNlID0gMCAtIHNpemVfYjA7Ci0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKIAltZW1jdGwtPm1lbWNfYnIwID0gKGJhc2UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9NU19HUENNIHwgQlJfVjsKIAogCURFQlVHRigiIyMgQlIwOiAweCUwOHggICAgT1IwOiAweCUwOHhcbiIsCkBAIC0xNjIsNyArMTYyLDcgQEAKIAlpZiAoc2l6ZV9iMSkgewogCQlmbGFzaF9pbmZvX3QgdG1wX2luZm87CiAKLQkJbWVtY3RsLT5tZW1jX29yNiA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjEgJiAweEZGRkY4MDAwKTsKKwkJbWVtY3RsLT5tZW1jX29yNiA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IxICYgMHhGRkZGODAwMCk7CiAJCW1lbWN0bC0+bWVtY19icjYgPSAoKGJhc2UgLSBzaXplX2IxKSAmIEJSX0JBX01TSykgfAogCQkJCSAgICBCUl9QU18xNiB8IEJSX01TX0dQQ00gfCBCUl9WOwogCkBAIC00MzcsMTAgKzQzNywxMCBAQAogI2VuZGlmCiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlzYWRkciA9ICh2dV9zaG9ydCAqKWluZm8tPnN0YXJ0WzBdOwpAQCAtNTI2LDcgKzUyNiw3IEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gKHZ1X3Nob3J0KikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJd2hpbGUgKChhZGRyWzBdICYgMHgwMDgwKSAhPSAweDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTY2MCw3ICs2NjAsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAKLQlmb3IgKHBhc3NlZD0wOyBwYXNzZWQgPCBDRkdfRkxBU0hfV1JJVEVfVE9VVDsgcGFzc2VkPWdldF90aW1lcihzdGFydCkpIHsKKwlmb3IgKHBhc3NlZD0wOyBwYXNzZWQgPCBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQ7IHBhc3NlZD1nZXRfdGltZXIoc3RhcnQpKSB7CiAKIAkJc3ZhbCA9ICpzZGVzdDsKIApAQCAtNjgzLDcgKzY4Myw3IEBACiAJCSBkZXN0LCBzdmFsLCBzZGF0YSk7CiAJfQogCi0JaWYgKHBhc3NlZCA+PSBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCWlmIChwYXNzZWQgPj0gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCURFQlVHRiAoIlRpbWVvdXQgQCBhZGRyIDB4JTA4bFg6IHZhbCAlMDRYIGRhdGEgJTA0WFxuIiwKIAkJCWRlc3QsIHN2YWwsIHNkYXRhKTsKIAkJcmMgPSAxOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9wY3VfZS9wY3VfZS5jIGIvYm9hcmQvc2llbWVucy9wY3VfZS9wY3VfZS5jCmluZGV4IDU2NDdmN2EuLmE2MGM4MjUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NpZW1lbnMvcGN1X2UvcGN1X2UuYworKysgYi9ib2FyZC9zaWVtZW5zL3BjdV9lL3BjdV9lLmMKQEAgLTE1OCw3ICsxNTgsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1yLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZV9iMCwgcmVnOwogCWludCBpOwpAQCAtMTY5LDcgKzE2OSw3IEBACiAJdXBtY29uZmlnIChVUE1BLCAodWludCAqKSBzZHJhbV90YWJsZSwKIAkJICAgc2l6ZW9mIChzZHJhbV90YWJsZSkgLyBzaXplb2YgKHVpbnQpKTsKIAotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCiAJLyogYnVyc3QgbGVuZ3RoPTQsIGJ1cnN0IHR5cGU9c2VxdWVudGlhbCwgQ0FTIGxhdGVuY3k9MiAqLwogCW1lbWN0bC0+bWVtY19tYXIgPSAweDAwMDAwMDg4OwpAQCAtMTc4LDE1ICsxNzgsMTUgQEAKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDIgdG8gdGhlIFNEUkFNIGJhbmsgYXQgcHJlbGltaW5hcnkgYWRkcmVzcy4KIAkgKi8KICNpZiBQQ1VfRV9XSVRIX1NXQVBQRURfQ1MJLyogWFhYICovCi0JbWVtY3RsLT5tZW1jX29yNSA9IENGR19PUjVfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjUgPSBDRkdfQlI1X1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3I1ID0gQ09ORklHX1NZU19PUjVfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjUgPSBDT05GSUdfU1lTX0JSNV9QUkVMSU07CiAjZWxzZSAgLyogWFhYICovCi0JbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjJfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAjZW5kaWYgLyogWFhYICovCiAKIAkvKiBpbml0aWFsaXplIG1lbW9yeSBhZGRyZXNzIHJlZ2lzdGVyICovCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUjsJLyogcmVmcmVzaCBub3QgZW5hYmxlZCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUjsJLyogcmVmcmVzaCBub3QgZW5hYmxlZCB5ZXQgKi8KIAogCS8qIG1vZGUgaW5pdGlhbGl6YXRpb24gKG9mZnNldCA1KSAqLwogI2lmIFBDVV9FX1dJVEhfU1dBUFBFRF9DUwkvKiBYWFggKi8KQEAgLTI0MSwxMiArMjQxLDEyIEBACiAJICogQ2hlY2sgQmFuayAwIE1lbW9yeSBTaXplIGZvciByZS1jb25maWd1cmF0aW9uCiAJICovCiAjaWYgUENVX0VfV0lUSF9TV0FQUEVEX0NTCS8qIFhYWCAqLwotCXNpemVfYjAgPSBkcmFtX3NpemUgKENGR19NQU1SLCAobG9uZyAqKSBTRFJBTV9CQVNFNV9QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKKwlzaXplX2IwID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVIsIChsb25nICopIFNEUkFNX0JBU0U1X1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOwogI2Vsc2UgIC8qIFhYWCAqLwotCXNpemVfYjAgPSBkcmFtX3NpemUgKENGR19NQU1SLCAobG9uZyAqKSBTRFJBTV9CQVNFMl9QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKKwlzaXplX2IwID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVIsIChsb25nICopIFNEUkFNX0JBU0UyX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOwogI2VuZGlmIC8qIFhYWCAqLwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUiB8IE1BTVJfUFRBRTsKKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUiB8IE1BTVJfUFRBRTsKIAogCS8qCiAJICogRmluYWwgbWFwcGluZzoKQEAgLTI1NCwxMCArMjU0LDEwIEBACiAKICNpZiBQQ1VfRV9XSVRIX1NXQVBQRURfQ1MJLyogWFhYICovCiAJbWVtY3RsLT5tZW1jX29yNSA9ICgoLXNpemVfYjApICYgMHhGRkZGMDAwMCkgfCBTRFJBTV9USU1JTkc7Ci0JbWVtY3RsLT5tZW1jX2JyNSA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfYnI1ID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKICNlbHNlICAvKiBYWFggKi8KIAltZW1jdGwtPm1lbWNfb3IyID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IFNEUkFNX1RJTUlORzsKLQltZW1jdGwtPm1lbWNfYnIyID0gKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOworCW1lbWN0bC0+bWVtY19icjIgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogI2VuZGlmIC8qIFhYWCAqLwogCXVkZWxheSAoMTAwMCk7CiAKQEAgLTI4Myw3ICsyODMsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tci0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpAQCAtMjk0LDI5ICsyOTQsMjkgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogI2lmIFBDVV9FX1dJVEhfU1dBUFBFRF9DUwkvKiBYWFggKi8KLSNkZWZpbmUJRVRIX0NGR19CSVRTCShDRkdfUEJfRVRIX0NGRzEgfCBDRkdfUEJfRVRIX0NGRzIgIHwgQ0ZHX1BCX0VUSF9DRkczICkKKyNkZWZpbmUJRVRIX0NGR19CSVRTCShDT05GSUdfU1lTX1BCX0VUSF9DRkcxIHwgQ09ORklHX1NZU19QQl9FVEhfQ0ZHMiAgfCBDT05GSUdfU1lTX1BCX0VUSF9DRkczICkKICNlbHNlICAvKiBYWFggKi8KLSNkZWZpbmUJRVRIX0NGR19CSVRTCShDRkdfUEJfRVRIX01ERElTIHwgQ0ZHX1BCX0VUSF9DRkcxIHwgXAotCQkJIENGR19QQl9FVEhfQ0ZHMiAgfCBDRkdfUEJfRVRIX0NGRzMgKQorI2RlZmluZQlFVEhfQ0ZHX0JJVFMJKENPTkZJR19TWVNfUEJfRVRIX01ERElTIHwgQ09ORklHX1NZU19QQl9FVEhfQ0ZHMSB8IFwKKwkJCSBDT05GSUdfU1lTX1BCX0VUSF9DRkcyICB8IENPTkZJR19TWVNfUEJfRVRIX0NGRzMgKQogI2VuZGlmIC8qIFhYWCAqLwogCi0jZGVmaW5lIEVUSF9BTExfQklUUwkoRVRIX0NGR19CSVRTIHwgQ0ZHX1BCX0VUSF9QT1dFUkRPV04gfCBDRkdfUEJfRVRIX1JFU0VUKQorI2RlZmluZSBFVEhfQUxMX0JJVFMJKEVUSF9DRkdfQklUUyB8IENPTkZJR19TWVNfUEJfRVRIX1BPV0VSRE9XTiB8IENPTkZJR19TWVNfUEJfRVRIX1JFU0VUKQogCiB2b2lkIHJlc2V0X3BoeSAodm9pZCkKIHsKLQlpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1bG9uZyB2YWx1ZTsKIAogCS8qIENvbmZpZ3VyZSBhbGwgbmVlZGVkIHBvcnQgcGlucyBmb3IgR1BJTyAqLwogI2lmIFBDVV9FX1dJVEhfU1dBUFBFRF9DUwkvKiBYWFggKi8KLSMgaWZkZWYgQ0ZHX0VUSF9NRERJU19WQUxVRQotCWltbXItPmltX2lvcG9ydC5pb3BfcGFkYXQgfD0gQ0ZHX1BBX0VUSF9NRERJUzsKKyMgaWZkZWYgQ09ORklHX1NZU19FVEhfTURESVNfVkFMVUUKKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGF0IHw9IENPTkZJR19TWVNfUEFfRVRIX01ERElTOwogIyBlbHNlCi0JaW1tci0+aW1faW9wb3J0LmlvcF9wYWRhdCAmPSB+KENGR19QQV9FVEhfTURESVMpOwkvKiBTZXQgbG93ICovCisJaW1tci0+aW1faW9wb3J0LmlvcF9wYWRhdCAmPSB+KENPTkZJR19TWVNfUEFfRVRIX01ERElTKTsJLyogU2V0IGxvdyAqLwogIyBlbmRpZgotCWltbXItPmltX2lvcG9ydC5pb3BfcGFwYXIgJj0gfihDRkdfUEFfRVRIX01ERElTKTsJLyogR1BJTyAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGFvZHIgJj0gfihDRkdfUEFfRVRIX01ERElTKTsJLyogYWN0aXZlIG91dHB1dCAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGFkaXIgfD0gQ0ZHX1BBX0VUSF9NRERJUzsJLyogb3V0cHV0ICovCisJaW1tci0+aW1faW9wb3J0LmlvcF9wYXBhciAmPSB+KENPTkZJR19TWVNfUEFfRVRIX01ERElTKTsJLyogR1BJTyAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGFvZHIgJj0gfihDT05GSUdfU1lTX1BBX0VUSF9NRERJUyk7CS8qIGFjdGl2ZSBvdXRwdXQgKi8KKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGlyIHw9IENPTkZJR19TWVNfUEFfRVRIX01ERElTOwkvKiBvdXRwdXQgKi8KICNlbmRpZiAvKiBYWFggKi8KIAlpbW1yLT5pbV9jcG0uY3BfcGJwYXIgJj0gfihFVEhfQUxMX0JJVFMpOwkvKiBHUElPICovCiAJaW1tci0+aW1fY3BtLmNwX3Bib2RyICY9IH4oRVRIX0FMTF9CSVRTKTsJLyogYWN0aXZlIG91dHB1dCAqLwpAQCAtMzI0LDMxICszMjQsMzEgQEAKIAl2YWx1ZSA9IGltbXItPmltX2NwbS5jcF9wYmRhdDsKIAogCS8qIEFzc2VydCBQb3dlcmRvd24gYW5kIFJlc2V0IHNpZ25hbHMgKi8KLQl2YWx1ZSB8PSBDRkdfUEJfRVRIX1BPV0VSRE9XTjsKLQl2YWx1ZSAmPSB+KENGR19QQl9FVEhfUkVTRVQpOworCXZhbHVlIHw9IENPTkZJR19TWVNfUEJfRVRIX1BPV0VSRE9XTjsKKwl2YWx1ZSAmPSB+KENPTkZJR19TWVNfUEJfRVRIX1JFU0VUKTsKIAogCS8qIFBIWSBjb25maWd1cmF0aW9uIGluY2x1ZGVzIE1ERElTIGFuZCBDRkcxIC4uLiBDRkczICovCiAjaWYgIVBDVV9FX1dJVEhfU1dBUFBFRF9DUwotIyBpZmRlZiBDRkdfRVRIX01ERElTX1ZBTFVFCi0JdmFsdWUgfD0gQ0ZHX1BCX0VUSF9NRERJUzsKKyMgaWZkZWYgQ09ORklHX1NZU19FVEhfTURESVNfVkFMVUUKKwl2YWx1ZSB8PSBDT05GSUdfU1lTX1BCX0VUSF9NRERJUzsKICMgZWxzZQotCXZhbHVlICY9IH4oQ0ZHX1BCX0VUSF9NRERJUyk7CisJdmFsdWUgJj0gfihDT05GSUdfU1lTX1BCX0VUSF9NRERJUyk7CiAjIGVuZGlmCiAjZW5kaWYKLSNpZmRlZiBDRkdfRVRIX0NGRzFfVkFMVUUKLQl2YWx1ZSB8PSBDRkdfUEJfRVRIX0NGRzE7CisjaWZkZWYgQ09ORklHX1NZU19FVEhfQ0ZHMV9WQUxVRQorCXZhbHVlIHw9IENPTkZJR19TWVNfUEJfRVRIX0NGRzE7CiAjZWxzZQotCXZhbHVlICY9IH4oQ0ZHX1BCX0VUSF9DRkcxKTsKKwl2YWx1ZSAmPSB+KENPTkZJR19TWVNfUEJfRVRIX0NGRzEpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0VUSF9DRkcyX1ZBTFVFCi0JdmFsdWUgfD0gQ0ZHX1BCX0VUSF9DRkcyOworI2lmZGVmIENPTkZJR19TWVNfRVRIX0NGRzJfVkFMVUUKKwl2YWx1ZSB8PSBDT05GSUdfU1lTX1BCX0VUSF9DRkcyOwogI2Vsc2UKLQl2YWx1ZSAmPSB+KENGR19QQl9FVEhfQ0ZHMik7CisJdmFsdWUgJj0gfihDT05GSUdfU1lTX1BCX0VUSF9DRkcyKTsKICNlbmRpZgotI2lmZGVmIENGR19FVEhfQ0ZHM19WQUxVRQotCXZhbHVlIHw9IENGR19QQl9FVEhfQ0ZHMzsKKyNpZmRlZiBDT05GSUdfU1lTX0VUSF9DRkczX1ZBTFVFCisJdmFsdWUgfD0gQ09ORklHX1NZU19QQl9FVEhfQ0ZHMzsKICNlbHNlCi0JdmFsdWUgJj0gfihDRkdfUEJfRVRIX0NGRzMpOworCXZhbHVlICY9IH4oQ09ORklHX1NZU19QQl9FVEhfQ0ZHMyk7CiAjZW5kaWYKIAogCS8qIERyaXZlIG91dHB1dCBzaWduYWxzIHRvIGluaXRpYWwgc3RhdGUgKi8KQEAgLTM1NywxMSArMzU3LDExIEBACiAJdWRlbGF5ICgxMDAwMCk7CiAKIAkvKiBEZS1hc3NlcnQgRXRoZXJuZXQgUG93ZXJkb3duICovCi0JaW1tci0+aW1fY3BtLmNwX3BiZGF0ICY9IH4oQ0ZHX1BCX0VUSF9QT1dFUkRPV04pOwkvKiBFbmFibGUgUEhZIHBvd2VyICovCisJaW1tci0+aW1fY3BtLmNwX3BiZGF0ICY9IH4oQ09ORklHX1NZU19QQl9FVEhfUE9XRVJET1dOKTsJLyogRW5hYmxlIFBIWSBwb3dlciAqLwogCXVkZWxheSAoMTAwMDApOwogCiAJLyogZGUtYXNzZXJ0IFJFU0VUIHNpZ25hbCBvZiBQSFkgKi8KLQlpbW1yLT5pbV9jcG0uY3BfcGJkYXQgfD0gQ0ZHX1BCX0VUSF9SRVNFVDsKKwlpbW1yLT5pbV9jcG0uY3BfcGJkYXQgfD0gQ09ORklHX1NZU19QQl9FVEhfUkVTRVQ7CiAJdWRlbGF5ICgxMDAwKTsKIH0KIApAQCAtNDE0LDcgKzQxNCw3IEBACiAKIHN0YXRpYyB2b2lkIHB1bWFfc2V0X21vZGUgKGludCBtb2RlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tci0+aW1fbWVtY3RsOwogCiAJLyogZGlzYWJsZSBQVU1BIGluIG1lbW9yeSBjb250cm9sbGVyICovCkBAIC00NTIsNyArNDUyLDcgQEAKIAogc3RhdGljIHZvaWQgcHVtYV9sb2FkICh1bG9uZyBhZGRyLCB1bG9uZyBsZW4pCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgdWNoYXIgKmZwZ2FfYWRkciA9ICh2b2xhdGlsZSB1Y2hhciAqKSBQVU1BX0NPTkZfQkFTRTsJLyogWFhYID8/PyAqLwogCXVjaGFyICpkYXRhID0gKHVjaGFyICopIGFkZHI7CiAJaW50IGk7CkBAIC00NjIsMzMgKzQ2MiwzMyBAQAogCQkrK2xlbjsKIAogCS8qIFJlc2V0IEZQR0EgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjcGFyICY9IH4oQ0ZHX1BDX1BVTUFfSU5JVCk7CS8qIG1ha2UgaW5wdXQgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3Bjc28gICY9IH4oQ0ZHX1BDX1BVTUFfSU5JVCk7Ci0JaW1tci0+aW1faW9wb3J0LmlvcF9wY2RpciAmPSB+KENGR19QQ19QVU1BX0lOSVQpOworCWltbXItPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfihDT05GSUdfU1lTX1BDX1BVTUFfSU5JVCk7CS8qIG1ha2UgaW5wdXQgKi8KKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3Bjc28gICY9IH4oQ09ORklHX1NZU19QQ19QVU1BX0lOSVQpOworCWltbXItPmltX2lvcG9ydC5pb3BfcGNkaXIgJj0gfihDT05GSUdfU1lTX1BDX1BVTUFfSU5JVCk7CiAKICNpZiBQQ1VfRV9XSVRIX1NXQVBQRURfQ1MJLyogWFhYICovCi0JaW1tci0+aW1fY3BtLmNwX3BicGFyICY9IH4oQ0ZHX1BCX1BVTUFfUFJPRyk7CQkvKiBHUElPICovCi0JaW1tci0+aW1fY3BtLmNwX3Bib2RyICY9IH4oQ0ZHX1BCX1BVTUFfUFJPRyk7CQkvKiBhY3RpdmUgb3V0cHV0ICovCi0JaW1tci0+aW1fY3BtLmNwX3BiZGF0ICY9IH4oQ0ZHX1BCX1BVTUFfUFJPRyk7CQkvKiBTZXQgbG93ICovCi0JaW1tci0+aW1fY3BtLmNwX3BiZGlyIHw9ICAgQ0ZHX1BCX1BVTUFfUFJPRzsJCS8qIG91dHB1dCAqLworCWltbXItPmltX2NwbS5jcF9wYnBhciAmPSB+KENPTkZJR19TWVNfUEJfUFVNQV9QUk9HKTsJCS8qIEdQSU8gKi8KKwlpbW1yLT5pbV9jcG0uY3BfcGJvZHIgJj0gfihDT05GSUdfU1lTX1BCX1BVTUFfUFJPRyk7CQkvKiBhY3RpdmUgb3V0cHV0ICovCisJaW1tci0+aW1fY3BtLmNwX3BiZGF0ICY9IH4oQ09ORklHX1NZU19QQl9QVU1BX1BST0cpOwkJLyogU2V0IGxvdyAqLworCWltbXItPmltX2NwbS5jcF9wYmRpciB8PSAgIENPTkZJR19TWVNfUEJfUFVNQV9QUk9HOwkJLyogb3V0cHV0ICovCiAjZWxzZQotCWltbXItPmltX2lvcG9ydC5pb3BfcGFwYXIgJj0gfihDRkdfUEFfUFVNQV9QUk9HKTsJLyogR1BJTyAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGFkYXQgJj0gfihDRkdfUEFfUFVNQV9QUk9HKTsJLyogU2V0IGxvdyAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGFvZHIgJj0gfihDRkdfUEFfUFVNQV9QUk9HKTsJLyogYWN0aXZlIG91dHB1dCAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGFkaXIgfD0gICBDRkdfUEFfUFVNQV9QUk9HOwkvKiBvdXRwdXQgKi8KKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhcGFyICY9IH4oQ09ORklHX1NZU19QQV9QVU1BX1BST0cpOwkvKiBHUElPICovCisJaW1tci0+aW1faW9wb3J0LmlvcF9wYWRhdCAmPSB+KENPTkZJR19TWVNfUEFfUFVNQV9QUk9HKTsJLyogU2V0IGxvdyAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGFvZHIgJj0gfihDT05GSUdfU1lTX1BBX1BVTUFfUFJPRyk7CS8qIGFjdGl2ZSBvdXRwdXQgKi8KKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGlyIHw9ICAgQ09ORklHX1NZU19QQV9QVU1BX1BST0c7CS8qIG91dHB1dCAqLwogI2VuZGlmIC8qIFhYWCAqLwogCXVkZWxheSAoMTAwKTsKIAogI2lmIFBDVV9FX1dJVEhfU1dBUFBFRF9DUwkvKiBYWFggKi8KLQlpbW1yLT5pbV9jcG0uY3BfcGJkYXQgfD0gQ0ZHX1BCX1BVTUFfUFJPRzsJLyogcmVsZWFzZSByZXNldCAqLworCWltbXItPmltX2NwbS5jcF9wYmRhdCB8PSBDT05GSUdfU1lTX1BCX1BVTUFfUFJPRzsJLyogcmVsZWFzZSByZXNldCAqLwogI2Vsc2UKLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGF0IHw9IENGR19QQV9QVU1BX1BST0c7CS8qIHJlbGVhc2UgcmVzZXQgKi8KKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGF0IHw9IENPTkZJR19TWVNfUEFfUFVNQV9QUk9HOwkvKiByZWxlYXNlIHJlc2V0ICovCiAjZW5kaWYgLyogWFhYICovCiAKIAkvKiB3YWl0IHVudGlsIElOSVQgaW5kaWNhdGVzIGNvbXBsZXRpb24gb2YgcmVzZXQgKi8KIAlmb3IgKGkgPSAwOyBpIDwgUFVNQV9JTklUX1RJTUVPVVQ7ICsraSkgewogCQl1ZGVsYXkgKDEwMDApOwotCQlpZiAoaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCAmIENGR19QQ19QVU1BX0lOSVQpCisJCWlmIChpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICYgQ09ORklHX1NZU19QQ19QVU1BX0lOSVQpCiAJCQlicmVhazsKIAl9CiAJaWYgKGkgPT0gUFVNQV9JTklUX1RJTUVPVVQpIHsKQEAgLTUxOSwxNCArNTE5LDE0IEBACiAKIHN0YXRpYyBpbnQgcHVtYV9pbml0X2RvbmUgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAkvKiBtYWtlIHN1cmUgcGluIGlzIEdQSU8gaW5wdXQgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjcGFyICY9IH4oQ0ZHX1BDX1BVTUFfRE9ORSk7Ci0JaW1tci0+aW1faW9wb3J0LmlvcF9wY3NvICY9IH4oQ0ZHX1BDX1BVTUFfRE9ORSk7Ci0JaW1tci0+aW1faW9wb3J0LmlvcF9wY2RpciAmPSB+KENGR19QQ19QVU1BX0RPTkUpOworCWltbXItPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfihDT05GSUdfU1lTX1BDX1BVTUFfRE9ORSk7CisJaW1tci0+aW1faW9wb3J0LmlvcF9wY3NvICY9IH4oQ09ORklHX1NZU19QQ19QVU1BX0RPTkUpOworCWltbXItPmltX2lvcG9ydC5pb3BfcGNkaXIgJj0gfihDT05GSUdfU1lTX1BDX1BVTUFfRE9ORSk7CiAKLQlyZXR1cm4gKGltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgJiBDRkdfUENfUFVNQV9ET05FKSA/IDEgOiAwOworCXJldHVybiAoaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCAmIENPTkZJR19TWVNfUENfUFVNQV9ET05FKSA/IDEgOiAwOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCmRpZmYgLS1naXQgYS9ib2FyZC9zaXhuZXQvZmxhc2guYyBiL2JvYXJkL3NpeG5ldC9mbGFzaC5jCmluZGV4IDNmMjMyOTkuLmE4ZGZjYTggMTAwNjQ0Ci0tLSBhL2JvYXJkL3NpeG5ldC9mbGFzaC5jCisrKyBiL2JvYXJkL3NpeG5ldC9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAgKi8KICNpbmNsdWRlIDxlbnZpcm9ubWVudC5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyogTk9URSAtIENPTkZJR19GTEFTSF8xNkJJVCBtZWFucyB0aGUgQ1BVIGludGVyZmFjZSBpcyAxNi1iaXQsIGl0CiAgKiAgICAgICAgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgZmxhc2ggY2hpcCBiZWluZyA4LWJpdCBvciAxNi1iaXQuCkBAIC01Niw3ICs1Niw3IEBACiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfaW50ZWwoZmxhc2hfaW5mb190ICppbmZvLCBGUFdWICpkZXN0LCBGUFcgZGF0YSk7CiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfYW1kKGZsYXNoX2luZm9fdCAqaW5mbywgRlBXViAqZGVzdCwgRlBXIGRhdGEpOwogc3RhdGljIHZvaWQgZmxhc2hfZ2V0X29mZnNldHModWxvbmcgYmFzZSwgZmxhc2hfaW5mb190ICppbmZvKTsKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogc3RhdGljIHZvaWQgZmxhc2hfc3luY19yZWFsX3Byb3RlY3QoZmxhc2hfaW5mb190ICppbmZvKTsKICNlbmRpZgogCkBAIC02NywxNyArNjcsMTcgQEAKICAqLwogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBzaXplX2I7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCi0Jc2l6ZV9iID0gZmxhc2hfZ2V0X3NpemUoKEZQVyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iID0gZmxhc2hfZ2V0X3NpemUoKEZQVyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZV9iOwogCkBAIC05MSwyMCArOTEsMjAgQEAKIAkvKiBEbyB0aGlzIGFnYWluICh3YXMgZG9uZSBhbHJlYWR5IGluIGZsYXN0X2dldF9zaXplKSwganVzdAogCSAqIGluIGNhc2Ugd2UgbW92ZSBpdCB3aGVuIHJlbWFwIHRoZSBGTEFTSC4KIAkgKi8KLQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogCS8qIHJlYWQgdGhlIGhhcmR3YXJlIHByb3RlY3Rpb24gc3RhdHVzIChpZiBhbnkpIGludG8gdGhlCiAJICogcHJvdGVjdGlvbiBhcnJheSBpbiBmbGFzaF9pbmZvLgogCSAqLwogCWZsYXNoX3N5bmNfcmVhbF9wcm90ZWN0KCZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtNDA1LDcgKzQwNSw3IEBACiAJcmV0dXJuIChpbmZvLT5zaXplKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIApAQCAtNTQ0LDcgKzU0NCw3IEBACiAJCXVkZWxheSAoMTAwMCk7CiAKIAkJd2hpbGUgKCgqYWRkciAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKEZQVykweDAwODAwMDgwKSB7Ci0JCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAogCQkJCWlmIChpbnRlbCkgewpAQCAtNjYzLDcgKzY2Myw3IEBACiAKICAgICAvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAgICAgd2hpbGUgKHJlcyA9PSAwICYmICgqZGVzdCAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAoRlBXKTB4MDA4MDAwODApKSB7Ci0JaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJICAgICpkZXN0ID0gKEZQVykweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAJICAgIHJlcyA9IDE7CiAJfQpAQCAtNzA5LDcgKzcwOSw3IEBACiAgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCiAgICAgd2hpbGUgKHJlcyA9PSAwICYmICgqZGVzdCAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKEZQVykweDAwODAwMDgwKSB7Ci0JaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJICAgICpkZXN0ID0gKEZQVykweDAwQjAwMEIwOwkvKiBTdXNwZW5kIHByb2dyYW0JKi8KIAkgICAgcmVzID0gMTsKIAl9CkBAIC03MjQsNyArNzI0LDcgQEAKICAgICByZXR1cm4gKHJlcyk7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiBpbnQgZmxhc2hfcmVhbF9wcm90ZWN0IChmbGFzaF9pbmZvX3QgKiBpbmZvLCBsb25nIHNlY3RvciwgaW50IHByb3QpCmRpZmYgLS1naXQgYS9ib2FyZC9zaXhuZXQvc2l4bmV0LmMgYi9ib2FyZC9zaXhuZXQvc2l4bmV0LmMKaW5kZXggZGNkMzQ3Mi4uM2VkNTgxZSAxMDA2NDQKLS0tIGEvYm9hcmQvc2l4bmV0L3NpeG5ldC5jCisrKyBiL2JvYXJkL3NpeG5ldC9zaXhuZXQuYwpAQCAtMzUsNyArMzUsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX05BTkQpCiAjaW5jbHVkZSA8bGludXgvbXRkL25hbmRfbGVnYWN5Lmg+Ci1leHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NGR19NQVhfTkFORF9ERVZJQ0VdOworZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRV07CiAjZW5kaWYKIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CkBAIC0xMzMsNyArMTMzLDcgQEAKICNkZWZpbmUgRlBHQV9ET05FCTB4MDA4MAkvKiBQQTgsIGlucHV0LCBoaWdoIHdoZW4gRlBHQSBsb2FkIGNvbXBsZXRlICovCiAjZGVmaW5lIEZQR0FfUFJPR1JBTV9MCTB4MDA0MAkvKiBQQTksIG91dHB1dCwgbG93IHRvIHJlc2V0LCBoaWdoIHRvIHN0YXJ0ICovCiAjZGVmaW5lIEZQR0FfSU5JVF9MCTB4MDAyMAkvKiBQQTEwLCBpbnB1dCwgbG93IGluZGljYXRlcyBub3QgcmVhZHkJKi8KLSNkZWZpbmUgZnBnYSAoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENGR19GUEdBX1BST0cpKQkvKiBGUEdBIHBvcnQgKi8KKyNkZWZpbmUgZnBnYSAoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENPTkZJR19TWVNfRlBHQV9QUk9HKSkJLyogRlBHQSBwb3J0ICovCiAKIGludCBib2FyZF9wb3N0Y2xrX2luaXQgKHZvaWQpCiB7CkBAIC0xNDMsNyArMTQzLDcgQEAKICMgaW5jbHVkZSAiZnBnYWRhdGEuYyIKIAl9OwogCi0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAjZGVmaW5lIHBvcnRhIChpbW1hcC0+aW1faW9wb3J0LmlvcF9wYWRhdCkKIAljb25zdCB1bnNpZ25lZCBjaGFyKiBwZGF0YTsKQEAgLTI0NywxMCArMjQ3LDEwIEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIC8qIGJhc2UgYWRkcmVzcyBmb3IgU1JBTSwgYXNzdW1lIDMyLWJpdCBwb3J0LCAgdmFsaWQgKi8KLSNkZWZpbmUgTlZSQU1fQlJfVkFMVUUgICAoQ0ZHX1NSQU1fQkFTRSB8IEJSX1BTXzMyIHwgQlJfVikKKyNkZWZpbmUgTlZSQU1fQlJfVkFMVUUgICAoQ09ORklHX1NZU19TUkFNX0JBU0UgfCBCUl9QU18zMiB8IEJSX1YpCiAKIC8qICB1cCB0byA2NE1CIC0gd2lsbCBiZSBhZGp1c3RlZCBmb3IgYWN0dWFsIHNpemUgKi8KLSNkZWZpbmUgTlZSQU1fT1JfUFJFTElNICAoT1JNQVNLKENGR19TUkFNX1NJWkUpIFwKKyNkZWZpbmUgTlZSQU1fT1JfUFJFTElNICAoT1JNQVNLKENPTkZJR19TWVNfU1JBTV9TSVpFKSBcCiAJfCBPUl9DU05UX1NBTSB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfNV9DTEsgfCBPUl9FSFRSKQogLyoKICAqIE1pc2NlbGxhbmVvdXMgcGxhdGZvcm0gZGVwZW5kZW50IGluaXRpYWxpemF0aW9ucyBhZnRlciBydW5uaW5nIGluIFJBTS4KQEAgLTI1OCw3ICsyNTgsNyBAQAogCiBpbnQgbWlzY19pbml0X3IgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJY2hhciogczsKIAljaGFyKiBlOwpAQCAtMjcxLDcgKzI3MSw3IEBACiAJLyogSXMgdGhlcmUgYW55IFNSQU0/IElzIGl0IDE2IG9yIDMyIGJpdHMgd2lkZT8gKi8KIAogCS8qIEZpcnN0IGxvb2sgZm9yIDMyLWJpdCBTUkFNICovCi0JYmQtPmJpX3NyYW1zaXplID0gcmFtX3NpemUoKHVsb25nKilDRkdfU1JBTV9CQVNFLCBDRkdfU1JBTV9TSVpFKTsKKwliZC0+Ymlfc3JhbXNpemUgPSByYW1fc2l6ZSgodWxvbmcqKUNPTkZJR19TWVNfU1JBTV9CQVNFLCBDT05GSUdfU1lTX1NSQU1fU0laRSk7CiAKIAlpZiAoYmQtPmJpX3NyYW1zaXplID09IDApIHsKIAkgICAgLyogbm8gMzItYml0IFNSQU0sIGJ1dCB0aGVyZSBjb3VsZCBiZSAxNi1iaXQgU1JBTSBzaW5jZQpAQCAtMjc5LDcgKzI3OSw3IEBACiAJICAgICAqIFRyeSBhZ2FpbiB3aXRoIGEgMTYtYml0IGJ1cy4KIAkgICAgICovCiAJICAgIG1lbWN0bC0+bWVtY19icjIgfD0gQlJfUFNfMTY7Ci0JICAgIGJkLT5iaV9zcmFtc2l6ZSA9IHJhbV9zaXplKCh1bG9uZyopQ0ZHX1NSQU1fQkFTRSwgQ0ZHX1NSQU1fU0laRSk7CisJICAgIGJkLT5iaV9zcmFtc2l6ZSA9IHJhbV9zaXplKCh1bG9uZyopQ09ORklHX1NZU19TUkFNX0JBU0UsIENPTkZJR19TWVNfU1JBTV9TSVpFKTsKIAl9CiAKIAlpZiAoYmQtPmJpX3NyYW1zaXplID09IDApIHsKQEAgLTI4OCw3ICsyODgsNyBAQAogCWVsc2UgewogCSAgICAvKiBhZGp1c3Qgb3IyIGZvciBhY3R1YWwgc2l6ZSBvZiBTUkFNICovCiAJICAgIG1lbWN0bC0+bWVtY19vcjIgfD0gT1JNQVNLKGJkLT5iaV9zcmFtc2l6ZSk7Ci0JICAgIGJkLT5iaV9zcmFtc3RhcnQgPSBDRkdfU1JBTV9CQVNFOworCSAgICBiZC0+Ymlfc3JhbXN0YXJ0ID0gQ09ORklHX1NZU19TUkFNX0JBU0U7CiAJICAgIHByaW50ZigiU1JBTTogICVsdSBLQlxuIiwgYmQtPmJpX3NyYW1zaXplID4+IDEwKTsKIAl9CiAKQEAgLTMzMCw3ICszMzAsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9OQU5EKQogdm9pZCBuYW5kX2luaXQodm9pZCkKIHsKLQl1bnNpZ25lZCBsb25nIHRvdGxlbiA9IG5hbmRfcHJvYmUoQ0ZHX0RGTEFTSF9CQVNFKTsKKwl1bnNpZ25lZCBsb25nIHRvdGxlbiA9IG5hbmRfcHJvYmUoQ09ORklHX1NZU19ERkxBU0hfQkFTRSk7CiAKIAlwcmludGYgKCIlNGx1IE1CXG4iLCB0b3RsZW4gPj4gMjApOwogfQpAQCAtNDk4LDcgKzQ5OCw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVpbnQgc2l6ZV9zZHJhbSA9IDA7CiAJdWludCBzaXplX3NkcmFtOSA9IDA7CmRpZmYgLS1naXQgYS9ib2FyZC9zbDgyNDUvZmxhc2guYyBiL2JvYXJkL3NsODI0NS9mbGFzaC5jCmluZGV4IGM3ODdiZmIuLjQ0NTViNjMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NsODI0NS9mbGFzaC5jCisrKyBiL2JvYXJkL3NsODI0NS9mbGFzaC5jCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC00Myw3ICs0Myw3IEBACiAjZGVmaW5lIFBBUkFNX1NFQ1QyM19TSVpFIDB4ODAwMAogI2RlZmluZSBQQVJBTV9TRUNUNF9TSVpFIDB4MTAwMDAKIAotZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIHN0YXRpYyBpbnQgd3JpdGVfZGF0YSAoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyAqZGF0YSk7CiBzdGF0aWMgdm9pZCB3cml0ZV92aWFfZnB1KHZ1X2xvbmcgKmFkZHIsIHVsb25nICpkYXRhKTsKQEAgLTc5LDggKzc5LDggQEAKIAlpbnQgaSwgajsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKLQkJdnVfbG9uZyAqYWRkciA9ICh2dV9sb25nICopIChDRkdfRkxBU0hfQkFTRSArIGkgKiBGTEFTSF9CQU5LX1NJWkUpOworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJCXZ1X2xvbmcgKmFkZHIgPSAodnVfbG9uZyAqKSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgaSAqIEZMQVNIX0JBTktfU0laRSk7CiAKIAkJd3JpdGVfdmlhX2ZwdSAoJmFkZHJbMHhhYWFdLCBwcmVjbWQwKTsKIAkJd3JpdGVfdmlhX2ZwdSAoJmFkZHJbMHg1NTRdLCBwcmVjbWQxKTsKQEAgLTEwOCwxMCArMTA4LDEwIEBACiAJCXdyaXRlX3ZpYV9mcHUgKGFkZHIsIGNtZHJlcyk7CiAKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCQlmb3IgKGogPSAwOyBqIDwgMzI7IGorKykgewotCQkJZmxhc2hfaW5mb1tpXS5zdGFydFtqXSA9IENGR19GTEFTSF9CQVNFICsKKwkJCWZsYXNoX2luZm9baV0uc3RhcnRbal0gPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKwogCQkJCQlpICogRkxBU0hfQkFOS19TSVpFICsgaiAqIE1BSU5fU0VDVF9TSVpFOwogCQl9CiAJCWZsYXNoX2luZm9baV0uc3RhcnRbMzJdID0KQEAgLTEyNSwyMiArMTI1LDIyIEBACiAKIAkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRSArIEZMQVNIX0JBTktfU0laRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIEZMQVNIX0JBTktfU0laRQogCWZsYXNoX3Byb3RlY3QgKCBGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX01PTklUT1JfQkFTRSwKLQkJCUNGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJJmZsYXNoX2luZm9bMV0pOwogI2Vsc2UKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19NT05JVE9SX0JBU0UsCi0JCQlDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpICYmIGRlZmluZWQoQ09ORklHX0VOVl9BRERSKQotI2lmIENPTkZJR19FTlZfQUREUiA+PSBDRkdfRkxBU0hfQkFTRSArIEZMQVNIX0JBTktfU0laRQorI2lmIENPTkZJR19FTlZfQUREUiA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBGTEFTSF9CQU5LX1NJWkUKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKIAkJCUNPTkZJR19FTlZfQUREUiwKIAkJCUNPTkZJR19FTlZfQUREUiArIENPTkZJR19FTlZfU0laRSAtIDEsICZmbGFzaF9pbmZvWzFdKTsKQEAgLTI2Nyw3ICsyNjcsNyBAQAogCiAJCQl3aGlsZSAoKChhZGRyWzBdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgfHwKIAkJCQkgICAoKGFkZHJbMV0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSkgewotCQkJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJd3JpdGVfdmlhX2ZwdSAoYWRkciwgY21kZXJzdXNwKTsKIAkJCQkJd3JpdGVfdmlhX2ZwdSAoYWRkciwgY21kcmVzKTsKQEAgLTQ1Miw3ICs0NTIsNyBAQAogCiAJd2hpbGUgKCgoYWRkclswXSAmIDB4MDA4MDAwODApICE9IChkYXRhWzBdICYgMHgwMDgwMDA4MCkpIHx8CiAJICAgICAgICgoYWRkclsxXSAmIDB4MDA4MDAwODApICE9IChkYXRhWzFdICYgMHgwMDgwMDA4MCkpKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJd3JpdGVfdmlhX2ZwdSAoY2hpcCwgY21kcmVzKTsKIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3NsODI0NS9zbDgyNDUuYyBiL2JvYXJkL3NsODI0NS9zbDgyNDUuYwppbmRleCAyNWFkYzI4Li5lODQ5ZTAxIDEwMDY0NAotLS0gYS9ib2FyZC9zbDgyNDUvc2w4MjQ1LmMKKysrIGIvYm9hcmQvc2w4MjQ1L3NsODI0NS5jCkBAIC0zNywxMyArMzcsMTMgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAlsb25nIHNpemU7CiAJbG9uZyBuZXdfYmFuazBfZW5kOwogCWxvbmcgbWVhcjE7CiAJbG9uZyBlbWVhcjE7CiAKLQlzaXplID0gZ2V0X3JhbV9zaXplKENGR19TRFJBTV9CQVNFLCBDRkdfTUFYX1JBTV9TSVpFKTsKKwlzaXplID0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUpOwogCiAJbmV3X2JhbmswX2VuZCA9IHNpemUgLSAxOwogCW1lYXIxID0gbXBjODI0eF9tcGMxMDdfZ2V0cmVnKE1FQVIxKTsKQEAgLTU3LDcgKzU3LDcgQEAKIAogCXJldHVybiAoc2l6ZSk7CiAjZWxzZQotCXJldHVybiBDRkdfTUFYX1JBTV9TSVpFOworCXJldHVybiBDT05GSUdfU1lTX01BWF9SQU1fU0laRTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9ib2FyZC9zbWRrMjQwMC9mbGFzaC5jIGIvYm9hcmQvc21kazI0MDAvZmxhc2guYwppbmRleCBhZjQ2YmY2Li45ZWVlNjBkIDEwMDY0NAotLS0gYS9ib2FyZC9zbWRrMjQwMC9mbGFzaC5jCisrKyBiL2JvYXJkL3NtZGsyNDAwL2ZsYXNoLmMKQEAgLTMzLDcgKzMzLDcgQEAKICNkZWZpbmUgRkxBU0hfQkFOS19TSVpFIDB4MTAwMDAwMAkvKiAyIHggICA4IE1CICovCiAjZGVmaW5lIE1BSU5fU0VDVF9TSVpFICAweDQwMDAwCQkvKiAyIHggMTI4IGtCICovCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAKICNkZWZpbmUgQ01EX1JFQURfQVJSQVkJCTB4MDBGRjAwRkYKQEAgLTY2LDE3ICs2NiwxNyBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9CiAJCQkoSU5URUxfTUFOVUZBQ1QgICAgICYgRkxBU0hfVkVORE1BU0spIHwKIAkJCShJTlRFTF9JRF8yOEY2NDBKM0EgJiBGTEFTSF9UWVBFTUFTSyk7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IEZMQVNIX0JBTktfU0laRTsKLQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CisJCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAkJaWYgKGkgPT0gMCkKLQkJCWZsYXNoYmFzZSA9IENGR19GTEFTSF9CQVNFOworCQkJZmxhc2hiYXNlID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCQllbHNlCiAJCQlwYW5pYyAoImNvbmZpZ3VyZWQgdG9vIG1hbnkgZmxhc2ggYmFua3MhXG4iKTsKIAkJZm9yIChqID0gMDsgaiA8IGZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50OyBqKyspIHsKQEAgLTkyLDggKzkyLDggQEAKIAkgKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLAotCQkJQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKQEAgLTI5OSw3ICsyOTksNyBAQAogCQkJLyogd2FpdCB1bnRpbCBmbGFzaCBpcyByZWFkeSAqLwogCQkJZG8gewogCQkJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJKmFkZHIgPSBDTURfU1RBVFVTX1JFU0VUOwogCQkJCQlyZXN1bHQgPSBCSVRfVElNRU9VVDsKIAkJCQkJYnJlYWs7CkBAIC0zOTQsNyArMzk0LDcgQEAKIAkvKiB3YWl0IHVudGlsIGZsYXNoIGlzIHJlYWR5ICovCiAJZG8gewogCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCSphZGRyID0gQ01EX1NVU1BFTkQ7CiAJCQlyZXN1bHQgPSBCSVRfVElNRU9VVDsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc21kazI0MTAvZmxhc2guYyBiL2JvYXJkL3NtZGsyNDEwL2ZsYXNoLmMKaW5kZXggMzJhZTgwZC4uMTMyZDc1MiAxMDA2NDQKLS0tIGEvYm9hcmQvc21kazI0MTAvZmxhc2guYworKysgYi9ib2FyZC9zbWRrMjQxMC9mbGFzaC5jCkBAIC0zMCw3ICszMCw3IEBACiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRQlQSFlTX0ZMQVNIX1NJWkUKICNkZWZpbmUgTUFJTl9TRUNUX1NJWkUgIDB4MTAwMDAJLyogNjQgS0IgKi8KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIAogI2RlZmluZSBDTURfUkVBRF9BUlJBWQkJMHgwMDAwMDBGMApAQCAtNDEsOCArNDEsOCBAQAogI2RlZmluZSBDTURfUFJPR1JBTQkJMHgwMDAwMDBBMAogI2RlZmluZSBDTURfVU5MT0NLX0JZUEFTUwkweDAwMDAwMDIwCiAKLSNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MTYgKikoQ0ZHX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NSA8PCAxKSkpCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUEgPDwgMSkpKQorI2RlZmluZSBNRU1fRkxBU0hfQUREUjEJCSgqKHZvbGF0aWxlIHUxNiAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NSA8PCAxKSkpCisjZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgweDAwMDAwMkFBIDw8IDEpKSkKIAogI2RlZmluZSBCSVRfRVJBU0VfRE9ORQkJMHgwMDAwMDA4MAogI2RlZmluZSBCSVRfUkRZX01BU0sJCTB4MDAwMDAwODAKQEAgLTYxLDcgKzYxLDcgQEAKIAlpbnQgaSwgajsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQl1bG9uZyBmbGFzaGJhc2UgPSAwOwogCiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPQpAQCAtNzUsOCArNzUsOCBAQAogI2Vycm9yICJVbmtub3duIGZsYXNoIGNvbmZpZ3VyZWQiCiAjZW5kaWYKIAkJCWZsYXNoX2luZm9baV0uc2l6ZSA9IEZMQVNIX0JBTktfU0laRTsKLQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CisJCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAkJaWYgKGkgPT0gMCkKIAkJCWZsYXNoYmFzZSA9IFBIWVNfRkxBU0hfMTsKIAkJZWxzZQpAQCAtMTExLDggKzExMSw4IEBACiAJfQogCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCSAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULApAQCAtMjM2LDcgKzIzNiw3IEBACiAKIAkJCQkvKiBjaGVjayB0aW1lb3V0ICovCiAJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPgotCQkJCSAgICBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJTUVNX0ZMQVNIX0FERFIxID0gQ01EX1JFQURfQVJSQVk7CiAJCQkJCWNoaXAgPSBUTU87CiAJCQkJCWJyZWFrOwpAQCAtMzMyLDcgKzMzMiw3IEBACiAJCXJlc3VsdCA9ICphZGRyOwogCiAJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJY2hpcCA9IEVSUiB8IFRNTzsKIAkJCWJyZWFrOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9zbm1jL3FzODUwL2ZsYXNoLmMgYi9ib2FyZC9zbm1jL3FzODUwL2ZsYXNoLmMKaW5kZXggZDJmMTY5Yi4uOWUyNzZhMSAxMDA2NDQKLS0tIGEvYm9hcmQvc25tYy9xczg1MC9mbGFzaC5jCisrKyBiL2JvYXJkL3NubWMvcXM4NTAvZmxhc2guYwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPGFzbS91LWJvb3QuaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAKICNkZWZpbmUgRkxBU0hfV09SRF9TSVpFIHVuc2lnbmVkIGxvbmcKQEAgLTU3LDcgKzU3LDcgQEAKIAl2b2xhdGlsZSBGTEFTSF9XT1JEX1NJWkUqIGZsYXNoX2Jhc2U7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTg3LDEzICs4NywxMyBAQAogCX0KIAogCS8qIE9ubHkgb25lIGJhbmsgKi8KLQlpZiAoQ0ZHX01BWF9GTEFTSF9CQU5LUyA9PSAxKSB7CisJaWYgKENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID09IDEpIHsKIAkJLyogU2V0dXAgb2Zmc2V0cyAqLwogCQlmbGFzaF9nZXRfb2Zmc2V0cyAoKHVsb25nKWZsYXNoX2Jhc2UsICZmbGFzaF9pbmZvWzBdKTsKIAogCQkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwotCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENGR19NT05JVE9SX0JBU0UsCi0JCQlDRkdfTU9OSVRPUl9CQVNFK0NGR19NT05JVE9SX0xFTi0xLCAmZmxhc2hfaW5mb1swXSk7CisJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRStDT05GSUdfU1lTX01PTklUT1JfTEVOLTEsICZmbGFzaF9pbmZvWzBdKTsKIAkJc2l6ZV9iMSA9IDAgOwogCQlmbGFzaF9pbmZvWzBdLnNpemUgPSBzaXplX2IwOwogCQlyZXR1cm4oc2l6ZV9iMCk7CkBAIC0xMjUsOCArMTI1LDggQEAKIAlmbGFzaF9nZXRfb2Zmc2V0cyAoYmFzZV9iMCwgJmZsYXNoX2luZm9bMF0pOwogCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENGR19NT05JVE9SX0JBU0UsCi0JCUNGR19NT05JVE9SX0JBU0UrQ0ZHX01PTklUT1JfTEVOLTEsICZmbGFzaF9pbmZvWzBdKTsKKwkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRStDT05GSUdfU1lTX01PTklUT1JfTEVOLTEsICZmbGFzaF9pbmZvWzBdKTsKIAogCWlmIChzaXplX2IxKSB7CiAJCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KQEAgLTEzNCwxMSArMTM0LDExIEBACiAJCWZsYXNoX2dldF9vZmZzZXRzIChiYXNlX2IxLCAmZmxhc2hfaW5mb1sxXSk7CiAKIAkJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLQkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBiYXNlX2IxK3NpemVfYjEtQ0ZHX01PTklUT1JfTEVOLAorCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIGJhc2VfYjErc2l6ZV9iMS1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJYmFzZV9iMStzaXplX2IxLTEsICZmbGFzaF9pbmZvWzFdKTsKIAogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT0ZGIGJ5IGRlZmF1bHQgKG9uZSBpcyBlbm91Z2gpICovCi0JCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX0NMRUFSLCBiYXNlX2IwK3NpemVfYjAtQ0ZHX01PTklUT1JfTEVOLAorCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9DTEVBUiwgYmFzZV9iMCtzaXplX2IwLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCQliYXNlX2IwK3NpemVfYjAtMSwgJmZsYXNoX2luZm9bMF0pOwogCX0gZWxzZSB7CiAJCWZsYXNoX2luZm9bMV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwpAQCAtNDgwLDcgKzQ4MCw3IEBACiAJd2hpbGUgKChhZGRyWzBdICYgKDB4MDA4MDAwODAmRkxBU0hfSURfTUFTSykpICE9CiAJCQkoMHgwMDgwMDA4MCZGTEFTSF9JRF9NQVNLKSAgKQogCXsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTYwNyw3ICs2MDcsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyKDApOwogCiAJd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDAwODAwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9zbm1jL3FzODUwL3FzODUwLmMgYi9ib2FyZC9zbm1jL3FzODUwL3FzODUwLmMKaW5kZXggMmZiZThhZS4uY2M4ZWFhZCAxMDA2NDQKLS0tIGEvYm9hcmQvc25tYy9xczg1MC9xczg1MC5jCisrKyBiL2JvYXJkL3NubWMvcXM4NTAvcXM4NTAuYwpAQCAtMTQ2LDcgKzE0Niw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemU7CiAKQEAgLTE1NSwxNyArMTU1LDE3IEBACiAJLyoKIAkqIFByZXNjYWxlciBmb3IgcmVmcmVzaAogCSovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIAkvKgogCSogTWFwIGNvbnRyb2xsZXIgYmFuayAxIHRvIHRoZSBTRFJBTSBhZGRyZXNzCiAJKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMTsKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjE7CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxOwogCXVkZWxheSgxMDAwKTsKIAogCS8qIHBlcmZvcm0gU0RSQU0gaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgKi8KLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR18xNk1fTUFNUjsKKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfMTZNX01BTVI7CiAJdWRlbGF5KDEwMCk7CiAKIAkvKiBQcm9ncmFtIHRoZSBTRFJBTSdzIE1vZGUgUmVnaXN0ZXIgKi8KQEAgLTE5Miw3ICsxOTIsNyBAQAogCS8qCiAJKiBDaGVjayBmb3IgMzJNIFNEUkFNIE1lbW9yeSBTaXplCiAJKi8KLQlzaXplID0gZHJhbV9zaXplKENGR18zMk1fTUFNUnxNQU1SX1BUQUUsCisJc2l6ZSA9IGRyYW1fc2l6ZShDT05GSUdfU1lTXzMyTV9NQU1SfE1BTVJfUFRBRSwKIAkobG9uZyAqKVNEUkFNX0JBU0UsIFNEUkFNXzMyTV9NQVhfU0laRSk7CiAJdWRlbGF5ICgxMDAwKTsKIApAQCAtMjAwLDcgKzIwMCw3IEBACiAJKiBDaGVjayBmb3IgMTZNIFNEUkFNIE1lbW9yeSBTaXplCiAJKi8KIAlpZiAoc2l6ZSAhPSBTRFJBTV8zMk1fTUFYX1NJWkUpIHsKLQlzaXplID0gZHJhbV9zaXplKENGR18xNk1fTUFNUnxNQU1SX1BUQUUsCisJc2l6ZSA9IGRyYW1fc2l6ZShDT05GSUdfU1lTXzE2TV9NQU1SfE1BTVJfUFRBRSwKIAkobG9uZyAqKVNEUkFNX0JBU0UsIFNEUkFNXzE2TV9NQVhfU0laRSk7CiAJdWRlbGF5ICgxMDAwKTsKIAl9CkBAIC0yMjEsNyArMjIxLDcgQEAKIAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsIGxvbmcgaW50IG1heHNpemUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc25tYy9xczg2MHQvZmxhc2guYyBiL2JvYXJkL3NubWMvcXM4NjB0L2ZsYXNoLmMKaW5kZXggYWEyZTg1Ni4uMmNiOGRjYiAxMDA2NDQKLS0tIGEvYm9hcmQvc25tYy9xczg2MHQvZmxhc2guYworKysgYi9ib2FyZC9zbm1jL3FzODYwdC9mbGFzaC5jCkBAIC0yOSwxMCArMjksMTAgQEAKICNpbmNsdWRlIDxhc20vdS1ib290Lmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogCi0jaWZkZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogI2RlZmluZSBGTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQKICNkZWZpbmUgRkxBU0hfSURfTUFTSwkweEZGRkYKICNlbHNlCkBAIC00Niw3ICs0Niw3IEBACiAvKiBzdG9sZW4gZnJvbSBlc3RlZW0xOTJlL2ZsYXNoLmMgKi8KIHVsb25nIGZsYXNoX2dldF9zaXplICh2b2xhdGlsZSBGTEFTSF9XT1JEX1NJWkUgKmFkZHIsIGZsYXNoX2luZm9fdCAqaW5mbyk7CiAKLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIHN0YXRpYyBpbnQgd3JpdGVfd29yZCAoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKTsKICNlbHNlCiBzdGF0aWMgaW50IHdyaXRlX3Nob3J0IChmbGFzaF9pbmZvX3QgKmluZm8sIHVsb25nIGRlc3QsIHVzaG9ydCBkYXRhKTsKQEAgLTY1LDcgKzY1LDcgQEAKIAl1bnNpZ25lZCBsb25nIGJhc2VfYjAsIGJhc2VfYjE7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTc5LDIwICs3OSwyMCBAQAogCX0KIAogCS8qIE9ubHkgb25lIGJhbmsgKi8KLQlpZiAoQ0ZHX01BWF9GTEFTSF9CQU5LUyA9PSAxKSB7CisJaWYgKENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID09IDEpIHsKIAkJLyogU2V0dXAgb2Zmc2V0cyAqLwogCQlmbGFzaF9nZXRfb2Zmc2V0cyAoRkxBU0hfQkFTRTFfUFJFTElNLCAmZmxhc2hfaW5mb1swXSk7CiAKIAkJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KICNpZiAwCS8qIHNhbmQ6ICovCiAJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCUZMQVNIX0JBU0UxX1BSRUxJTS1DRkdfTU9OSVRPUl9MRU4rc2l6ZV9iMCwKKwkJCUZMQVNIX0JBU0UxX1BSRUxJTS1DT05GSUdfU1lTX01PTklUT1JfTEVOK3NpemVfYjAsCiAJCQlGTEFTSF9CQVNFMV9QUkVMSU0tMStzaXplX2IwLAogCQkJJmZsYXNoX2luZm9bMF0pOwogI2Vsc2UKIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX01PTklUT1JfQkFTRSwKLQkJCUNGR19NT05JVE9SX0JBU0UrQ0ZHX01PTklUT1JfTEVOLTEsCisJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFK0NPTkZJR19TWVNfTU9OSVRPUl9MRU4tMSwKIAkJCSZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCQlzaXplX2IxID0gMCA7CkBAIC0xMjYsMTMgKzEyNiwxMyBAQAogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogI2lmIDAJLyogc2FuZDogKi8KIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJRkxBU0hfQkFTRTFfUFJFTElNLUNGR19NT05JVE9SX0xFTitzaXplX2IwLAorCQkJRkxBU0hfQkFTRTFfUFJFTElNLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4rc2l6ZV9iMCwKIAkJCUZMQVNIX0JBU0UxX1BSRUxJTS0xK3NpemVfYjAsCiAJCQkmZmxhc2hfaW5mb1swXSk7CiAjZWxzZQogCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQlDRkdfTU9OSVRPUl9CQVNFLAotCQkJQ0ZHX01PTklUT1JfQkFTRStDRkdfTU9OSVRPUl9MRU4tMSwKKwkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UrQ09ORklHX1NZU19NT05JVE9SX0xFTi0xLAogCQkJJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTE0NCwxMiArMTQ0LDEyIEBACiAKIAkJCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJYmFzZV9iMStzaXplX2IxLUNGR19NT05JVE9SX0xFTiwKKwkJCQliYXNlX2IxK3NpemVfYjEtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCQliYXNlX2IxK3NpemVfYjEtMSwKIAkJCQkmZmxhc2hfaW5mb1sxXSk7CiAJCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT0ZGIGJ5IGRlZmF1bHQgKG9uZSBpcyBlbm91Z2gpICovCiAJCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9DTEVBUiwKLQkJCQliYXNlX2IwK3NpemVfYjAtQ0ZHX01PTklUT1JfTEVOLAorCQkJCWJhc2VfYjArc2l6ZV9iMC1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJCWJhc2VfYjArc2l6ZV9iMC0xLAogCQkJCSZmbGFzaF9pbmZvWzBdKTsKIAkJfSBlbHNlIHsKQEAgLTE4Miw3ICsxODIsNyBAQAogCWVsc2UgaWYgKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfQlRZUEUpIHsKIAkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fSU5URUwpIHsKIAotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCQkJLyogc2V0IHNlY3RvciBvZmZzZXRzIGZvciBib3R0b20gYm9vdCBibG9jayB0eXBlICovCiAJCQlpbmZvLT5zdGFydFswXSA9IGJhc2UgKyAweDAwMDAwMDAwOwogCQkJaW5mby0+c3RhcnRbMV0gPSBiYXNlICsgMHgwMDAwNDAwMDsKQEAgLTIzNCw3ICsyMzQsNyBAQAogCQlpID0gaW5mby0+c2VjdG9yX2NvdW50IC0gMTsKIAkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fSU5URUwpIHsKIAotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCQkJaW5mby0+c3RhcnRbaS0tXSA9IGJhc2UgKyBpbmZvLT5zaXplIC0gMHgwMDAwNDAwMDsKIAkJCWluZm8tPnN0YXJ0W2ktLV0gPSBiYXNlICsgaW5mby0+c2l6ZSAtIDB4MDAwMDgwMDA7CiAJCQlpbmZvLT5zdGFydFtpLS1dID0gYmFzZSArIGluZm8tPnNpemUgLSAweDAwMDBDMDAwOwpAQCAtMzkzLDcgKzM5Myw3IEBACiAJLyogV3JpdGUgYXV0byBzZWxlY3QgY29tbWFuZDogcmVhZCBNYW51ZmFjdHVyZXIgSUQgKi8KIAogCi0jaWZuZGVmIENGR19GTEFTSF8xNkJJVAorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAKIAkvKgogCSAqIE5vdGU6IGlmIGl0IGlzIGFuIEFNRCBmbGFzaCBhbmQgdGhlIHdvcmQgYXQgYWRkclswMDAwXQpAQCAtNjUwLDcgKzY1MCw3IEBACiAJLyogRGlzYWJsZSBpbnRlcnJ1cHRzIHdoaWNoIG1pZ2h0IGNhdXNlIGEgdGltZW91dCBoZXJlICovCiAJZmxhZyA9IGRpc2FibGVfaW50ZXJydXB0cyAoKTsKIAlpZiAoaW5mby0+Zmxhc2hfaWQgPCBGTEFTSF9BTURfQ09NUCkgewotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCQlhZGRyWzB4MDU1NV0gPSAweDAwQUEwMEFBOwogCQlhZGRyWzB4MDJBQV0gPSAweDAwNTUwMDU1OwogCQlhZGRyWzB4MDU1NV0gPSAweDAwODAwMDgwOwpAQCAtNjkwLDcgKzY5MCw3IEBACiAJCWFkZHIgPSAodm9sYXRpbGUgRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAkJd2hpbGUgKChhZGRyWzBdICYgKDB4MDA4MDAwODAgJiBGTEFTSF9JRF9NQVNLKSkgIT0KIAkJICAgICAgICgweDAwODAwMDgwICYgRkxBU0hfSURfTUFTSykpIHsKLQkJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJcmV0dXJuIDE7CiAJCQl9CkBAIC03MTEsNyArNzExLDcgQEAKIAkJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdCA8PSBzX2xhc3Q7IHNlY3QrKykgewogCQkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCiAJCQkJYmFyZiA9IDA7Ci0jaWZuZGVmIENGR19GTEFTSF8xNkJJVAorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAJCQkJYWRkciA9ICh2dV9sb25nICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAJCQkJYWRkclswXSA9IDB4MDAyMDAwMjA7CiAJCQkJYWRkclswXSA9IDB4MDBEMDAwRDA7CkBAIC03NjYsNyArNzY2LDcgQEAKIAlmbGFzaF9pbmZvX3QgKmluZm87CiAJaW50IGk7CiAKLQlmb3IgKGk9MCwgaW5mbz0mZmxhc2hfaW5mb1swXTsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2ksICsraW5mbykgeworCWZvciAoaT0wLCBpbmZvPSZmbGFzaF9pbmZvWzBdOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2ksICsraW5mbykgewogCQlpZiAoKGFkZHIgPj0gaW5mby0+c3RhcnRbMF0pICYmCiAJCSAgICAoYWRkciA8IChpbmZvLT5zdGFydFswXSArIGluZm8tPnNpemUpKSApIHsKIAkJCXJldHVybiAoaW5mbyk7CkBAIC04NDMsNyArODQzLDcgQEAKIAogaW50IHdyaXRlX2J1ZmYgKGZsYXNoX2luZm9fdCAqaW5mbywgdWNoYXIgKnNyYywgdWxvbmcgYWRkciwgdWxvbmcgY250KQogewotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCXVsb25nIGNwLCB3cCwgZGF0YTsKIAlpbnQgbDsKICNlbHNlCkBAIC04NTIsNyArODUyLDcgQEAKICNlbmRpZgogCWludCBpLCByYzsKIAotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCiAKIAl3cCA9IChhZGRyICYgfjMpOwkvKiBnZXQgbG93ZXIgd29yZCBhbGlnbmVkIGFkZHJlc3MgKi8KQEAgLTk3OSw3ICs5NzksNyBAQAogICogMSAtIHdyaXRlIHRpbWVvdXQKICAqIDIgLSBGbGFzaCBub3QgZXJhc2VkCiAgKi8KLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIHN0YXRpYyBpbnQgd3JpdGVfd29yZCAoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKQogewogCXZ1X2xvbmcgKmFkZHIgPSAodnVfbG9uZyopKGluZm8tPnN0YXJ0WzBdKTsKQEAgLTEwMTUsMTMgKzEwMTUsMTMgQEAKIAogCWlmKGluZm8tPmZsYXNoX2lkID4gRkxBU0hfQU1EX0NPTVApIHsKIAkJd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDAwODAwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MDAwODApKSB7Ci0JCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KIAl9IGVsc2UgewogCQl3aGlsZSghKGFkZHJbMF0gJiAweDAwODAwMDgwKSkgewkvKiB3YWl0IGZvciBlcnJvciBvciBmaW5pc2ggKi8KLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KIApAQCAtMTA4MSw3ICsxMDgxLDcgQEAKIAlpZihpbmZvLT5mbGFzaF9pZCA8IEZMQVNIX0FNRF9DT01QKSB7CiAJCS8qIEFNRCBzdHVmZiAqLwogCQl3aGlsZSAoKCooKHZ1X3Nob3J0ICopZGVzdCkgJiAweDAwODApICE9IChkYXRhICYgMHgwMDgwKSkgewotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gKDEpOwogCQkJfQogCQl9CkBAIC0xMDg5LDcgKzEwODksNyBAQAogCX0gZWxzZSB7CiAJCS8qIGludGVsIHN0dWZmICovCiAJCXdoaWxlKCEoYWRkclswXSAmIDB4MDA4MCkpewkvKiB3YWl0IGZvciBlcnJvciBvciBmaW5pc2ggKi8KLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHJldHVybiAoMSk7CisJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgcmV0dXJuICgxKTsKIAkJfQogCiAJCWlmKCBhZGRyWzBdICYgMHgwMDNBKSB7CS8qIGNoZWNrIGZvciBlcnJvciAqLwpAQCAtMTEwMyw3ICsxMTAzLDcgQEAKIAkJKmFkZHIgPSAweDAwQjA7CiAJCSphZGRyID0gMHgwMDcwOwogCQl3aGlsZSghKGFkZHJbMF0gJiAweDAwODApKXsJLyogd2FpdCBmb3IgZXJyb3Igb3IgZmluaXNoICovCi0JCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSByZXR1cm4gKDEpOworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHJldHVybiAoMSk7CiAJCX0KIAkJKmFkZHIgPSAweDAwRkY7CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvc25tYy9xczg2MHQvcXM4NjB0LmMgYi9ib2FyZC9zbm1jL3FzODYwdC9xczg2MHQuYwppbmRleCAxN2M5MzU2Li5iMjcyZDgwIDEwMDY0NAotLS0gYS9ib2FyZC9zbm1jL3FzODYwdC9xczg2MHQuYworKysgYi9ib2FyZC9zbm1jL3FzODYwdC9xczg2MHQuYwpAQCAtMTE3LDcgKzExNyw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemU7CiAKQEAgLTEzMSwxMiArMTMxLDEyIEBACiAJLyoKIAkqIE1hcCBjb250cm9sbGVyIGJhbmsgMiB0byB0aGUgU0RSQU0gYWRkcmVzcwogCSovCi0JbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjI7Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjI7CisJbWVtY3RsLT5tZW1jX29yMiA9IENPTkZJR19TWVNfT1IyOworCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMjsKIAl1ZGVsYXkoMjAwKTsKIAogCS8qIHBlcmZvcm0gU0RSQU0gaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgKi8KLQltZW1jdGwtPm1lbWNfbWJtciA9IENGR18xNk1fTUJNUjsKKwltZW1jdGwtPm1lbWNfbWJtciA9IENPTkZJR19TWVNfMTZNX01CTVI7CiAJdWRlbGF5KDEwMCk7CiAKIAltZW1jdGwtPm1lbWNfbWFyICA9IDB4MDAwMDAwODg7CkBAIC0xNTUsNyArMTU1LDcgQEAKIAkvKgogCSogQ2hlY2sgZm9yIDY0TSBTRFJBTSBNZW1vcnkgU2l6ZQogCSovCi0Jc2l6ZSA9IGRyYW1fc2l6ZSAoQ0ZHXzY0TV9NQk1SLCAodWxvbmcgKilTRFJBTV9CQVNFLCBTRFJBTV82NE1fTUFYX1NJWkUpOworCXNpemUgPSBkcmFtX3NpemUgKENPTkZJR19TWVNfNjRNX01CTVIsICh1bG9uZyAqKVNEUkFNX0JBU0UsIFNEUkFNXzY0TV9NQVhfU0laRSk7CiAJdWRlbGF5ICgxMDAwKTsKIAogCS8qCkBAIC0xNjMsNyArMTYzLDcgQEAKIAkqLwogCWlmIChzaXplICE9IFNEUkFNXzY0TV9NQVhfU0laRSkgewogI2VuZGlmCi0Jc2l6ZSA9IGRyYW1fc2l6ZSAoQ0ZHXzE2TV9NQk1SLCAobG9uZyAqKVNEUkFNX0JBU0UsIFNEUkFNXzE2TV9NQVhfU0laRSk7CisJc2l6ZSA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU18xNk1fTUJNUiwgKGxvbmcgKilTRFJBTV9CQVNFLCBTRFJBTV8xNk1fTUFYX1NJWkUpOwogCXVkZWxheSAoMTAwMCk7CiAjaWYgMAogCX0KQEAgLTE4NCwzMSArMTg0LDMxIEBACiAJLyoKIAkqIE1hcCB0aGUgOE0gSW50ZWwgRmxhc2ggZGV2aWNlIHRvIGNoaXAgc2VsZWN0IDEKIAkqLwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxOwotCW1lbWN0bC0+bWVtY19icjEgPSBDRkdfQlIxOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMTsKKwltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjE7CiAKIAogCS8qCiAJKiBNYXAgNjRLIE5WUkFNLCBTaXBleCBEZXZpY2UsIE5BTkQgQ3RsIFJlZywgYW5kIExFRCBDdGwgUmVnCiAJKiB0byBjaGlwIHNlbGVjdCAzCiAJKi8KLQltZW1jdGwtPm1lbWNfb3IzID0gQ0ZHX09SMzsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSMzsKKwltZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19PUjM7CisJbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfQlIzOwogCiAJLyoKIAkqIE1hcCBjaGlwIHNlbGVjdHMgNCwgNSwgNiwgJiA3IGZvciBleHRlcm5hbCBleHBhbnNpb24gY29ubmVjdG9yCiAJKi8KLQltZW1jdGwtPm1lbWNfb3I0ID0gQ0ZHX09SNDsKLQltZW1jdGwtPm1lbWNfYnI0ID0gQ0ZHX0JSNDsKKwltZW1jdGwtPm1lbWNfb3I0ID0gQ09ORklHX1NZU19PUjQ7CisJbWVtY3RsLT5tZW1jX2JyNCA9IENPTkZJR19TWVNfQlI0OwogCi0JbWVtY3RsLT5tZW1jX29yNSA9IENGR19PUjU7Ci0JbWVtY3RsLT5tZW1jX2JyNSA9IENGR19CUjU7CisJbWVtY3RsLT5tZW1jX29yNSA9IENPTkZJR19TWVNfT1I1OworCW1lbWN0bC0+bWVtY19icjUgPSBDT05GSUdfU1lTX0JSNTsKIAotCW1lbWN0bC0+bWVtY19vcjYgPSBDRkdfT1I2OwotCW1lbWN0bC0+bWVtY19icjYgPSBDRkdfQlI2OworCW1lbWN0bC0+bWVtY19vcjYgPSBDT05GSUdfU1lTX09SNjsKKwltZW1jdGwtPm1lbWNfYnI2ID0gQ09ORklHX1NZU19CUjY7CiAKLQltZW1jdGwtPm1lbWNfb3I3ID0gQ0ZHX09SNzsKLQltZW1jdGwtPm1lbWNfYnI3ID0gQ0ZHX0JSNzsKKwltZW1jdGwtPm1lbWNfb3I3ID0gQ09ORklHX1NZU19PUjc7CisJbWVtY3RsLT5tZW1jX2JyNyA9IENPTkZJR19TWVNfQlI3OwogCiAjZW5kaWYKIApAQCAtMjI3LDcgKzIyNyw3IEBACiAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1ibXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLCBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21ibXIgPSBtYm1yX3ZhbHVlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc29jcmF0ZXMvbGF3LmMgYi9ib2FyZC9zb2NyYXRlcy9sYXcuYwppbmRleCA4OWI0NDZmLi43MWNmZjhjIDEwMDY0NAotLS0gYS9ib2FyZC9zb2NyYXRlcy9sYXcuYworKysgYi9ib2FyZC9zb2NyYXRlcy9sYXcuYwpAQCAtNDcsMTQgKzQ3LDE0IEBACiAgKi8KIAogc3RydWN0IGxhd19lbnRyeSBsYXdfdGFibGVbXSA9IHsKLQlTRVRfTEFXKENGR19ERFJfU0RSQU1fQkFTRSwgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfRERSKSwKLQlTRVRfTEFXKENGR19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX0xCQ19GTEFTSF9CQVNFLCBMQVdfU0laRV82NE0sIExBV19UUkdUX0lGX0xCQyksCi0JU0VUX0xBVyhDRkdfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSSksCi0jaWYgZGVmaW5lZChDRkdfRlBHQV9CQVNFKQotCVNFVF9MQVcoQ0ZHX0ZQR0FfQkFTRSwgTEFXQVJfU0laRV8xTSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX0REUiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX0xCQ19GTEFTSF9CQVNFLCBMQVdfU0laRV82NE0sIExBV19UUkdUX0lGX0xCQyksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0kpLAorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GUEdBX0JBU0UpCisJU0VUX0xBVyhDT05GSUdfU1lTX0ZQR0FfQkFTRSwgTEFXQVJfU0laRV8xTSwgTEFXX1RSR1RfSUZfTEJDKSwKICNlbmRpZgotCVNFVF9MQVcoQ0ZHX0xJTUVfQkFTRSwgTEFXQVJfU0laRV82NE0sIExBV19UUkdUX0lGX0xCQyksCisJU0VUX0xBVyhDT05GSUdfU1lTX0xJTUVfQkFTRSwgTEFXQVJfU0laRV82NE0sIExBV19UUkdUX0lGX0xCQyksCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc29jcmF0ZXMvbmFuZC5jIGIvYm9hcmQvc29jcmF0ZXMvbmFuZC5jCmluZGV4IDZlYzUzZjguLjdkNzZmNDIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NvY3JhdGVzL25hbmQuYworKysgYi9ib2FyZC9zb2NyYXRlcy9uYW5kLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWYgZGVmaW5lZChDRkdfTkFORF9CQVNFKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19OQU5EX0JBU0UpCiAjaW5jbHVkZSA8bmFuZC5oPgogI2luY2x1ZGUgPGFzbS9lcnJuby5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgpkaWZmIC0tZ2l0IGEvYm9hcmQvc29jcmF0ZXMvc2RyYW0uYyBiL2JvYXJkL3NvY3JhdGVzL3NkcmFtLmMKaW5kZXggMTJkMWI4YS4uMDI5YmEwMiAxMDA2NDQKLS0tIGEvYm9hcmQvc29jcmF0ZXMvc2RyYW0uYworKysgYi9ib2FyZC9zb2NyYXRlcy9zZHJhbS5jCkBAIC00MSw3ICs0MSw3IEBACiAgKi8KIGxvbmcgaW50IHNkcmFtX3NldHVwKGludCBjYXNsKQogewotCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkciA9ICh2b2lkICopKENGR19NUEM4NXh4X0REUl9BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfRERSX0FERFIpOwogCiAJLyoKIAkgKiBEaXNhYmxlIG1lbW9yeSBjb250cm9sbGVyLgpAQCAtNDksMjggKzQ5LDI4IEBACiAJZGRyLT5jczBfY29uZmlnID0gMDsKIAlkZHItPnNkcmFtX2NmZyA9IDA7CiAKLQlkZHItPmNzMF9ibmRzID0gQ0ZHX0REUl9DUzBfQk5EUzsKLQlkZHItPmNzMF9jb25maWcgPSBDRkdfRERSX0NTMF9DT05GSUc7Ci0JZGRyLT50aW1pbmdfY2ZnXzAgPSBDRkdfRERSX1RJTUlOR18wOwotCWRkci0+dGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlkZHItPnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7Ci0JZGRyLT5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFOwotCWRkci0+c2RyYW1faW50ZXJ2YWwgPSBDRkdfRERSX0lOVEVSVkFMOwotCWRkci0+c2RyYW1fY2ZnXzIgPSBDRkdfRERSX0NPTkZJR18yOwotCWRkci0+c2RyYW1fY2xrX2NudGwgPSBDRkdfRERSX0NMS19DT05UUk9MOworCWRkci0+Y3MwX2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUzsKKwlkZHItPmNzMF9jb25maWcgPSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHOworCWRkci0+dGltaW5nX2NmZ18wID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzA7CisJZGRyLT50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlkZHItPnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWRkci0+c2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREU7CisJZGRyLT5zZHJhbV9pbnRlcnZhbCA9IENPTkZJR19TWVNfRERSX0lOVEVSVkFMOworCWRkci0+c2RyYW1fY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9DT05GSUdfMjsKKwlkZHItPnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFJfQ0xLX0NPTlRST0w7CiAKIAlhc20gKCJzeW5jO2lzeW5jO21zeW5jIik7CiAJdWRlbGF5KDEwMDApOwogCi0JZGRyLT5zZHJhbV9jZmcgPSBDRkdfRERSX0NPTkZJRzsKKwlkZHItPnNkcmFtX2NmZyA9IENPTkZJR19TWVNfRERSX0NPTkZJRzsKIAlhc20gKCJzeW5jOyBpc3luYzsgbXN5bmMiKTsKIAl1ZGVsYXkoMTAwMCk7CiAKLQlpZiAoZ2V0X3JhbV9zaXplKDAsIENGR19TRFJBTV9TSVpFPDwyMCkgPT0gQ0ZHX1NEUkFNX1NJWkU8PDIwKSB7CisJaWYgKGdldF9yYW1fc2l6ZSgwLCBDT05GSUdfU1lTX1NEUkFNX1NJWkU8PDIwKSA9PSBDT05GSUdfU1lTX1NEUkFNX1NJWkU8PDIwKSB7CiAJCS8qCiAJCSAqIE9LLCBzaXplIGRldGVjdGVkIC0+IGFsbCBkb25lCiAJCSAqLwotCQlyZXR1cm4gQ0ZHX1NEUkFNX1NJWkU8PDIwOworCQlyZXR1cm4gQ09ORklHX1NZU19TRFJBTV9TSVpFPDwyMDsKIAl9CiAKIAlyZXR1cm4gMDsJCQkJLyogbm90aGluZyBmb3VuZCAhCQkqLwpAQCAtOTAsMTEgKzkwLDExIEBACiAJcmV0dXJuIGRyYW1fc2l6ZTsKIH0KIAotI2lmIGRlZmluZWQoQ0ZHX0RSQU1fVEVTVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRFJBTV9URVNUKQogaW50IHRlc3RkcmFtICh2b2lkKQogewotCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENGR19NRU1URVNUX1NUQVJUOwotCXVpbnQgKnBlbmQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9FTkQ7CisJdWludCAqcHN0YXJ0ID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOworCXVpbnQgKnBlbmQgPSAodWludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfRU5EOwogCXVpbnQgKnA7CiAKIAlwcmludGYgKCJTRFJBTSB0ZXN0IHBoYXNlIDE6XG4iKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3NvY3JhdGVzL3NvY3JhdGVzLmMgYi9ib2FyZC9zb2NyYXRlcy9zb2NyYXRlcy5jCmluZGV4IDA5OTExNzcuLmQ4M2RjN2QgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NvY3JhdGVzL3NvY3JhdGVzLmMKKysrIGIvYm9hcmQvc29jcmF0ZXMvc29jcmF0ZXMuYwpAQCAtNTEsNyArNTEsNyBAQAogCiBpbnQgY2hlY2tib2FyZCAodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCiAJY2hhciAqc3JjOwogCWludCBmOwpAQCAtODcsNyArODcsNyBAQAogCiBpbnQgbWlzY19pbml0X3IgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbWVtY3RsID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKm1lbWN0bCA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAKIAkvKgogCSAqIEFkanVzdCBmbGFzaCBzdGFydCBhbmQgb2Zmc2V0IHRvIGRldGVjdGVkIHZhbHVlcwpAQCAtOTgsMjAgKzk4LDIwIEBACiAJLyoKIAkgKiBDaGVjayBpZiBib290IEZMQVNIIGlzbid0IG1heCBzaXplCiAJICovCi0JaWYgKGdkLT5iZC0+YmlfZmxhc2hzaXplIDwgKDAgLSBDRkdfRkxBU0gwKSkgewotCQltZW1jdGwtPm9yMCA9IGdkLT5iZC0+YmlfZmxhc2hzdGFydCB8IChDRkdfT1IwX1BSRUxJTSAmIDB4MDAwMDdmZmYpOwotCQltZW1jdGwtPmJyMCA9IGdkLT5iZC0+YmlfZmxhc2hzdGFydCB8IChDRkdfQlIwX1BSRUxJTSAmIDB4MDAwMDdmZmYpOworCWlmIChnZC0+YmQtPmJpX2ZsYXNoc2l6ZSA8ICgwIC0gQ09ORklHX1NZU19GTEFTSDApKSB7CisJCW1lbWN0bC0+b3IwID0gZ2QtPmJkLT5iaV9mbGFzaHN0YXJ0IHwgKENPTkZJR19TWVNfT1IwX1BSRUxJTSAmIDB4MDAwMDdmZmYpOworCQltZW1jdGwtPmJyMCA9IGdkLT5iZC0+YmlfZmxhc2hzdGFydCB8IChDT05GSUdfU1lTX0JSMF9QUkVMSU0gJiAweDAwMDA3ZmZmKTsKIAogCQkvKgogCQkgKiBSZS1jaGVjayB0byBnZXQgY29ycmVjdCBiYXNlIGFkZHJlc3MKIAkJICovCi0JCWZsYXNoX2dldF9zaXplKGdkLT5iZC0+YmlfZmxhc2hzdGFydCwgQ0ZHX01BWF9GTEFTSF9CQU5LUyAtIDEpOworCQlmbGFzaF9nZXRfc2l6ZShnZC0+YmQtPmJpX2ZsYXNoc3RhcnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTIC0gMSk7CiAJfQogCiAJLyoKIAkgKiBDaGVjayBpZiBvbmx5IG9uZSBGTEFTSCBiYW5rIGlzIGF2YWlsYWJsZQogCSAqLwotCWlmIChnZC0+YmQtPmJpX2ZsYXNoc2l6ZSAhPSBDRkdfTUFYX0ZMQVNIX0JBTktTICogKDAgLSBDRkdfRkxBU0gwKSkgeworCWlmIChnZC0+YmQtPmJpX2ZsYXNoc2l6ZSAhPSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAqICgwIC0gQ09ORklHX1NZU19GTEFTSDApKSB7CiAJCW1lbWN0bC0+b3IxID0gMDsKIAkJbWVtY3RsLT5icjEgPSAwOwogCkBAIC0xMjAsMjQgKzEyMCwyNCBAQAogCQkgKi8KIAkJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX0NMRUFSLAogCQkJICAgICAgIGdkLT5iZC0+YmlfZmxhc2hzdGFydCwgMHhmZmZmZmZmZiwKLQkJCSAgICAgICAmZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOworCQkJICAgICAgICZmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOwogCiAJCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSwgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKLQkJCSAgICAgICAmZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOworCQkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCSAgICAgICAmZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKIAogCQkvKiBFbnZpcm9ubWVudCBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKIAkJCSAgICAgICBDT05GSUdfRU5WX0FERFIsCiAJCQkgICAgICAgQ09ORklHX0VOVl9BRERSICsgQ09ORklHX0VOVl9TRUNUX1NJWkUgLSAxLAotCQkJICAgICAgICZmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CisJCQkgICAgICAgJmZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CiAKIAkJLyogUmVkdW5kYW50IGVudmlyb25tZW50IHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAogCQkJICAgICAgIENPTkZJR19FTlZfQUREUl9SRURVTkQsCiAJCQkgICAgICAgQ09ORklHX0VOVl9BRERSX1JFRFVORCArIENPTkZJR19FTlZfU0laRV9SRURVTkQgLSAxLAotCQkJICAgICAgICZmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CisJCQkgICAgICAgJmZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CiAJfQogCiAJcmV0dXJuIDA7CkBAIC0xNDgsMTIgKzE0OCwxMiBAQAogICovCiB2b2lkIGxvY2FsX2J1c19pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKLQl2b2xhdGlsZSBjY3NyX2xvY2FsX2VjbV90ICplY20gPSAodm9pZCAqKShDRkdfTVBDODV4eF9FQ01fQUREUik7CisJdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xvY2FsX2VjbV90ICplY20gPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfRUNNX0FERFIpOwogCXN5c19pbmZvX3Qgc3lzaW5mbzsKIAl1aW50IGNsa2RpdjsKIAl1aW50IGxiY19taHo7Ci0JdWludCBsY3JyID0gQ0ZHX0xCQ19MQ1JSOworCXVpbnQgbGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlI7CiAKIAlnZXRfc3lzX2luZm8gKCZzeXNpbmZvKTsKIAljbGtkaXYgPSBsYmMtPmxjcnIgJiAweDBmOwpAQCAtMjE5LDcgKzIxOSw3IEBACiAjaWZkZWYgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfUgogaW50IGJvYXJkX2Vhcmx5X2luaXRfciAodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCiAJLyogc2V0IGFuZCByZXNldCB0aGUgR1BJTyBwaW4gMiB3aGljaCB3aWxsIHJlc2V0IHRoZSBXODM3ODJHIGNoaXAgKi8KIAlvdXRfOCgodW5zaWduZWQgY2hhciopJmd1ci0+Z3BvdXRkciwgMHgzRiApOwpAQCAtMjQ2LDE5ICsyNDYsMTkgQEAKIAl2YWxbaSsrXSA9IGdkLT5iZC0+YmlfZmxhc2hzdGFydDsKIAl2YWxbaSsrXSA9IGdkLT5iZC0+YmlfZmxhc2hzaXplOwogCi0JaWYgKG1iODYyeHguZnJhbWVBZHJzID09IENGR19MSU1FX0JBU0UpIHsKKwlpZiAobWI4NjJ4eC5mcmFtZUFkcnMgPT0gQ09ORklHX1NZU19MSU1FX0JBU0UpIHsKIAkJLyogRml4dXAgTElNRSBtYXBwaW5nICovCiAJCXZhbFtpKytdID0gMjsJCQkvKiBjaGlwIHNlbGVjdCBudW1iZXIgKi8KIAkJdmFsW2krK10gPSAwOwkJCS8qIGFsd2F5cyAwICovCi0JCXZhbFtpKytdID0gQ0ZHX0xJTUVfQkFTRTsKLQkJdmFsW2krK10gPSBDRkdfTElNRV9TSVpFOworCQl2YWxbaSsrXSA9IENPTkZJR19TWVNfTElNRV9CQVNFOworCQl2YWxbaSsrXSA9IENPTkZJR19TWVNfTElNRV9TSVpFOwogCX0KIAogCS8qIEZpeHVwIEZQR0EgbWFwcGluZyAqLwogCXZhbFtpKytdID0gMzsJCQkJLyogY2hpcCBzZWxlY3QgbnVtYmVyICovCiAJdmFsW2krK10gPSAwOwkJCQkvKiBhbHdheXMgMCAqLwotCXZhbFtpKytdID0gQ0ZHX0ZQR0FfQkFTRTsKLQl2YWxbaSsrXSA9IENGR19GUEdBX1NJWkU7CisJdmFsW2krK10gPSBDT05GSUdfU1lTX0ZQR0FfQkFTRTsKKwl2YWxbaSsrXSA9IENPTkZJR19TWVNfRlBHQV9TSVpFOwogCiAJcmMgPSBmZHRfZmluZF9hbmRfc2V0cHJvcChibG9iLCAiL2xvY2FsYnVzIiwgInJhbmdlcyIsCiAJCQkJICB2YWwsIGkgKiBzaXplb2YodTMyKSwgMSk7CkBAIC0yNjgsMTQgKzI2OCwxNCBAQAogfQogI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX09GX0xJQkZEVCkgJiYgZGVmaW5lZChDT05GSUdfT0ZfQk9BUkRfU0VUVVApICovCiAKLSNkZWZpbmUgQ0ZHX0xJTUVfU1JTVAkJKChDRkdfTElNRV9CQVNFKSArIDB4MDFGQzAwMkMpCi0jZGVmaW5lIENGR19MSU1FX0NDRgkJKChDRkdfTElNRV9CQVNFKSArIDB4MDFGQzAwMzgpCi0jZGVmaW5lIENGR19MSU1FX01NUgkJKChDRkdfTElNRV9CQVNFKSArIDB4MDFGQ0ZGRkMpCisjZGVmaW5lIENPTkZJR19TWVNfTElNRV9TUlNUCQkoKENPTkZJR19TWVNfTElNRV9CQVNFKSArIDB4MDFGQzAwMkMpCisjZGVmaW5lIENPTkZJR19TWVNfTElNRV9DQ0YJCSgoQ09ORklHX1NZU19MSU1FX0JBU0UpICsgMHgwMUZDMDAzOCkKKyNkZWZpbmUgQ09ORklHX1NZU19MSU1FX01NUgkJKChDT05GSUdfU1lTX0xJTUVfQkFTRSkgKyAweDAxRkNGRkZDKQogLyogTGltZSBjbG9jayBmcmVxdWVuY3kgKi8KLSNkZWZpbmUgQ0ZHX0xJTUVfQ0xLXzEwME1IWgkweDAwMDAwCi0jZGVmaW5lIENGR19MSU1FX0NMS18xMzNNSFoJMHgxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xJTUVfQ0xLXzEwME1IWgkweDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTElNRV9DTEtfMTMzTUhaCTB4MTAwMDAKIC8qIFNEUkFNIHBhcmFtZXRlciAqLwotI2RlZmluZSBDRkdfTElNRV9NTVJfVkFMVUUJMHg0MTU3QkE2MworI2RlZmluZSBDT05GSUdfU1lTX0xJTUVfTU1SX1ZBTFVFCTB4NDE1N0JBNjMKIAogI2RlZmluZSBESVNQTEFZX1dJRFRICQk4MDAKICNkZWZpbmUgRElTUExBWV9IRUlHSFQJCTQ4MApAQCAtMzA4LDExICszMDgsMTEgQEAKIAlyZXR1cm4gaW5pdF9yZWdzOwogfQogCi0jZGVmaW5lIENGR19MSU1FX0NJRAkJKChDRkdfTElNRV9CQVNFKSArIDB4MDFGQzAwRjApCi0jZGVmaW5lIENGR19MSU1FX1JFVgkJKChDRkdfTElNRV9CQVNFKSArIDB4MDFGRjgwODQpCisjZGVmaW5lIENPTkZJR19TWVNfTElNRV9DSUQJCSgoQ09ORklHX1NZU19MSU1FX0JBU0UpICsgMHgwMUZDMDBGMCkKKyNkZWZpbmUgQ09ORklHX1NZU19MSU1FX1JFVgkJKChDT05GSUdfU1lTX0xJTUVfQkFTRSkgKyAweDAxRkY4MDg0KQogaW50IGxpbWVfcHJvYmUodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2xiY190ICptZW1jdGwgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbWVtY3RsID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0xCQ19BRERSKTsKIAl1aW50IGNmZ19icjI7CiAJdWludCBjZmdfb3IyOwogCXVpbnQgcmVnOwpAQCAtMzIzLDE0ICszMjMsMTQgQEAKIAkvKiBDb25maWd1cmUgR1BDTSBmb3IgQ1MyICovCiAJbWVtY3RsLT5icjIgPSAwOwogCW1lbWN0bC0+b3IyID0gMHhmYzAwMDQxMDsKLQltZW1jdGwtPmJyMiA9IChDRkdfTElNRV9CQVNFKSB8IDB4MDAwMDE5MDE7CisJbWVtY3RsLT5icjIgPSAoQ09ORklHX1NZU19MSU1FX0JBU0UpIHwgMHgwMDAwMTkwMTsKIAogCS8qIFRyeSB0byBhY2Nlc3MgR0RDIElEL1JldmlzaW9uIHJlZ2lzdGVycyAqLwotCXJlZyA9IGluX2JlMzIoKHZvaWQgKilDRkdfTElNRV9DSUQpOwotCXJlZyA9IGluX2JlMzIoKHZvaWQgKilDRkdfTElNRV9DSUQpOworCXJlZyA9IGluX2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX0xJTUVfQ0lEKTsKKwlyZWcgPSBpbl9iZTMyKCh2b2lkICopQ09ORklHX1NZU19MSU1FX0NJRCk7CiAJaWYgKHJlZyA9PSAweDMwMykgewotCQlyZWcgPSBpbl9iZTMyKCh2b2lkICopQ0ZHX0xJTUVfUkVWKTsKLQkJcmVnID0gaW5fYmUzMigodm9pZCAqKUNGR19MSU1FX1JFVik7CisJCXJlZyA9IGluX2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX0xJTUVfUkVWKTsKKwkJcmVnID0gaW5fYmUzMigodm9pZCAqKUNPTkZJR19TWVNfTElNRV9SRVYpOwogCQlyZWcgPSAoKHJlZyAmIH4weGZmKSA9PSAweDIwMDUwMTAwKSA/IDEgOiAwOwogCX0gZWxzZQogCQlyZWcgPSAwOwpAQCAtMzUxLDIyICszNTEsMjIgQEAKIAkvKgogCSAqIFJlc2V0IExpbWUgY29udHJvbGxlcgogCSAqLwotCW91dF9iZTMyKCh2b2lkICopQ0ZHX0xJTUVfU1JTVCwgMHgxKTsKKwlvdXRfYmUzMigodm9pZCAqKUNPTkZJR19TWVNfTElNRV9TUlNULCAweDEpOwogCXVkZWxheSgyMDApOwogCiAJLyogU2V0IExpbWUgY2xvY2sgdG8gMTMzTUh6ICovCi0Jb3V0X2JlMzIoKHZvaWQgKilDRkdfTElNRV9DQ0YsIENGR19MSU1FX0NMS18xMzNNSFopOworCW91dF9iZTMyKCh2b2lkICopQ09ORklHX1NZU19MSU1FX0NDRiwgQ09ORklHX1NZU19MSU1FX0NMS18xMzNNSFopOwogCS8qIERlbGF5IHJlcXVpcmVkICovCiAJdWRlbGF5KDMwMCk7CiAJLyogU2V0IG1lbW9yeSBwYXJhbWV0ZXJzICovCi0Jb3V0X2JlMzIoKHZvaWQgKilDRkdfTElNRV9NTVIsIENGR19MSU1FX01NUl9WQUxVRSk7CisJb3V0X2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX0xJTUVfTU1SLCBDT05GSUdfU1lTX0xJTUVfTU1SX1ZBTFVFKTsKIAogCW1iODYyeHgud2luU2l6ZVggPSBESVNQTEFZX1dJRFRIOwogCW1iODYyeHgud2luU2l6ZVkgPSBESVNQTEFZX0hFSUdIVDsKIAltYjg2Mnh4LmdkZkluZGV4ID0gR0RGXzE1QklUXzU1NVJHQjsKIAltYjg2Mnh4LmdkZkJ5dGVzUFAgPSAyOwogCi0JcmV0dXJuIENGR19MSU1FX0JBU0U7CisJcmV0dXJuIENPTkZJR19TWVNfTElNRV9CQVNFOwogfQogCiAjZGVmaW5lIFc4Mzc4MkRfUkVHX0NGRwkJMHg0MApAQCAtMzgxLDIyICszODEsMjIgQEAKIHsKIAl1OCBidWY7CiAKLQlpZiAoaTJjX3JlYWQoQ0ZHX0kyQ19XODM3ODJHX0FERFIsIFc4Mzc4MkRfUkVHX0NGRywgMSwgJmJ1ZiwgMSkpCisJaWYgKGkyY19yZWFkKENPTkZJR19TWVNfSTJDX1c4Mzc4MkdfQUREUiwgVzgzNzgyRF9SRUdfQ0ZHLCAxLCAmYnVmLCAxKSkKIAkJcmV0dXJuIC0xOwogCi0JaTJjX3JlZ193cml0ZShDRkdfSTJDX1c4Mzc4MkdfQUREUiwgVzgzNzgyRF9SRUdfQ0ZHLCAweDgwKTsKLQlpMmNfcmVnX3dyaXRlKENGR19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19CQU5LX1NFTCwgMCk7Ci0JaTJjX3JlZ193cml0ZShDRkdfSTJDX1c4Mzc4MkdfQUREUiwgVzgzNzgyRF9SRUdfQURDQ0xLLCAweDQwKTsKKwlpMmNfcmVnX3dyaXRlKENPTkZJR19TWVNfSTJDX1c4Mzc4MkdfQUREUiwgVzgzNzgyRF9SRUdfQ0ZHLCAweDgwKTsKKwlpMmNfcmVnX3dyaXRlKENPTkZJR19TWVNfSTJDX1c4Mzc4MkdfQUREUiwgVzgzNzgyRF9SRUdfQkFOS19TRUwsIDApOworCWkyY19yZWdfd3JpdGUoQ09ORklHX1NZU19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19BRENDTEssIDB4NDApOwogCi0JYnVmID0gaTJjX3JlZ19yZWFkKENGR19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19CRUVQX0NUUkwpOwotCWkyY19yZWdfd3JpdGUoQ0ZHX0kyQ19XODM3ODJHX0FERFIsIFc4Mzc4MkRfUkVHX0JFRVBfQ1RSTCwKKwlidWYgPSBpMmNfcmVnX3JlYWQoQ09ORklHX1NZU19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19CRUVQX0NUUkwpOworCWkyY19yZWdfd3JpdGUoQ09ORklHX1NZU19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19CRUVQX0NUUkwsCiAJCSAgICAgIGJ1ZiB8IDB4ODApOwotCWkyY19yZWdfd3JpdGUoQ0ZHX0kyQ19XODM3ODJHX0FERFIsIFc4Mzc4MkRfUkVHX0JFRVBfQ1RSTDIsIDApOwotCWkyY19yZWdfd3JpdGUoQ0ZHX0kyQ19XODM3ODJHX0FERFIsIFc4Mzc4MkRfUkVHX1BXTU9VVDEsIDB4NDcpOwotCWkyY19yZWdfd3JpdGUoQ0ZHX0kyQ19XODM3ODJHX0FERFIsIFc4Mzc4MkRfUkVHX1ZCQVQsIDB4MDEpOworCWkyY19yZWdfd3JpdGUoQ09ORklHX1NZU19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19CRUVQX0NUUkwyLCAwKTsKKwlpMmNfcmVnX3dyaXRlKENPTkZJR19TWVNfSTJDX1c4Mzc4MkdfQUREUiwgVzgzNzgyRF9SRUdfUFdNT1VUMSwgMHg0Nyk7CisJaTJjX3JlZ193cml0ZShDT05GSUdfU1lTX0kyQ19XODM3ODJHX0FERFIsIFc4Mzc4MkRfUkVHX1ZCQVQsIDB4MDEpOwogCi0JYnVmID0gaTJjX3JlZ19yZWFkKENGR19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19DRkcpOwotCWkyY19yZWdfd3JpdGUoQ0ZHX0kyQ19XODM3ODJHX0FERFIsIFc4Mzc4MkRfUkVHX0NGRywKKwlidWYgPSBpMmNfcmVnX3JlYWQoQ09ORklHX1NZU19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19DRkcpOworCWkyY19yZWdfd3JpdGUoQ09ORklHX1NZU19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19DRkcsCiAJCSAgICAgIChidWYgJiAweGY0KSB8IDB4MDEpOwogCXJldHVybiAwOwogfQpAQCAtNDA4LDM3ICs0MDgsMzcgQEAKIAl1OCBvbGRfYnVmOwogCiAJLyogU2VsZWN0IGJhbmsgMCAqLwotCWlmIChpMmNfcmVhZChDRkdfSTJDX1c4Mzc4MkdfQUREUiwgMHg0ZSwgMSwgJm9sZF9idWYsIDEpKQorCWlmIChpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19XODM3ODJHX0FERFIsIDB4NGUsIDEsICZvbGRfYnVmLCAxKSkKIAkJZ290byBlcnI7CiAJZWxzZQogCQlidWYgPSBvbGRfYnVmICYgMHhmODsKIAotCWlmIChpMmNfd3JpdGUoQ0ZHX0kyQ19XODM3ODJHX0FERFIsIDB4NGUsIDEsICZidWYsIDEpKQorCWlmIChpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfVzgzNzgyR19BRERSLCAweDRlLCAxLCAmYnVmLCAxKSkKIAkJZ290byBlcnI7CiAKIAlpZiAoYnIgPiAwKSB7CiAJCS8qIFBXTU9VVDEgZHV0eSBjeWNsZSBjdHJsICovCiAJCWJ1ZiA9IDI1NSAvICgxMDAgLyBicik7Ci0JCWlmIChpMmNfd3JpdGUoQ0ZHX0kyQ19XODM3ODJHX0FERFIsIDB4NWIsIDEsICZidWYsIDEpKQorCQlpZiAoaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX1c4Mzc4MkdfQUREUiwgMHg1YiwgMSwgJmJ1ZiwgMSkpCiAJCQlnb3RvIGVycjsKIAogCQkvKiBMRURzIG9uICovCi0JCXJlZyA9IGluX2JlMzIoKHZvaWQgKikoQ0ZHX0ZQR0FfQkFTRSArIDB4MGMpKTsKKwkJcmVnID0gaW5fYmUzMigodm9pZCAqKShDT05GSUdfU1lTX0ZQR0FfQkFTRSArIDB4MGMpKTsKIAkJaWYgKCEocmVnICYgQkFDS0xJR0hUX0VOQUJMRSkpOwotCQkJb3V0X2JlMzIoKHZvaWQgKikoQ0ZHX0ZQR0FfQkFTRSArIDB4MGMpLAorCQkJb3V0X2JlMzIoKHZvaWQgKikoQ09ORklHX1NZU19GUEdBX0JBU0UgKyAweDBjKSwKIAkJCQkgcmVnIHwgQkFDS0xJR0hUX0VOQUJMRSk7CiAJfSBlbHNlIHsKIAkJYnVmID0gMDsKLQkJaWYgKGkyY193cml0ZShDRkdfSTJDX1c4Mzc4MkdfQUREUiwgMHg1YiwgMSwgJmJ1ZiwgMSkpCisJCWlmIChpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfVzgzNzgyR19BRERSLCAweDViLCAxLCAmYnVmLCAxKSkKIAkJCWdvdG8gZXJyOwogCiAJCS8qIExFRHMgb2ZmICovCi0JCXJlZyA9IGluX2JlMzIoKHZvaWQgKikoQ0ZHX0ZQR0FfQkFTRSArIDB4MGMpKTsKKwkJcmVnID0gaW5fYmUzMigodm9pZCAqKShDT05GSUdfU1lTX0ZQR0FfQkFTRSArIDB4MGMpKTsKIAkJcmVnICY9IH5CQUNLTElHSFRfRU5BQkxFOwotCQlvdXRfYmUzMigodm9pZCAqKShDRkdfRlBHQV9CQVNFICsgMHgwYyksIHJlZyk7CisJCW91dF9iZTMyKCh2b2lkICopKENPTkZJR19TWVNfRlBHQV9CQVNFICsgMHgwYyksIHJlZyk7CiAJfQogCS8qIFJlc3RvcmUgcHJldmlvdXMgYmFuayBzZXR0aW5nICovCi0JaWYgKGkyY193cml0ZShDRkdfSTJDX1c4Mzc4MkdfQUREUiwgMHg0ZSwgMSwgJm9sZF9idWYsIDEpKQorCWlmIChpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfVzgzNzgyR19BRERSLCAweDRlLCAxLCAmb2xkX2J1ZiwgMSkpCiAJCWdvdG8gZXJyOwogCiAJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc29jcmF0ZXMvdGxiLmMgYi9ib2FyZC9zb2NyYXRlcy90bGIuYwppbmRleCBkMjU1Y2VhLi5iOTFiMWVhIDEwMDY0NAotLS0gYS9ib2FyZC9zb2NyYXRlcy90bGIuYworKysgYi9ib2FyZC9zb2NyYXRlcy90bGIuYwpAQCAtMzEsMTYgKzMxLDE2IEBACiAKIHN0cnVjdCBmc2xfZV90bGJfZW50cnkgdGxiX3RhYmxlW10gPSB7CiAJLyogVExCIDAgLSBmb3IgdGVtcCBzdGFjayBpbiBjYWNoZSAqLwotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIsIENGR19JTklUX1JBTV9BRERSLAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKIApAQCAtNTAsNyArNTAsNyBAQAogCSAqIDB4ZmMwMDAwMDAJNjRNCUZMQVNICiAJICogT3V0IG9mIHJlc2V0IHRoaXMgZW50cnkgaXMgb25seSA0Sy4KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMSwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTU4LDcgKzU4LDcgQEAKIAkgKiBUTEIgMjoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg4MDAwMDAwMAkyNTZNCVBDSTEgTUVNIEZpcnN0IGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTLCBDRkdfUENJMV9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC02NiwxNiArNjYsMTYgQEAKIAkgKiBUTEIgMzoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg5MDAwMDAwMAkyNTZNCVBDSTEgTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAzLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKLSNpZiBkZWZpbmVkKENGR19GUEdBX0JBU0UpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZQR0FfQkFTRSkKIAkvKgogCSAqIFRMQiA0OgkxTQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhjMDAwMDAwMAkxTQlGUEdBIGFuZCBOQU5ECiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRlBHQV9CQVNFLCBDRkdfRlBHQV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19GUEdBX0JBU0UsIENPTkZJR19TWVNfRlBHQV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNCwgQk9PS0VfUEFHRVNaXzFNLCAxKSwKICNlbmRpZgpAQCAtODcsNyArODcsNyBAQAogCSAqICgweGNiZmMwMDAwCTI1NksJTElNRSBHREMgTU1JTykKIAkgKiBNTUlPIGlzIHJlbG9jYXRhYmxlIGFuZCBjb3VsZCBiZSBhdCAweGNiZmMwMDAwCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfTElNRV9CQVNFLCBDRkdfTElNRV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19MSU1FX0JBU0UsIENPTkZJR19TWVNfTElNRV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNSwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTk2LDcgKzk2LDcgQEAKIAkgKiAweGUwMDBfMDAwMAkxTQlDQ1NSQkFSCiAJICogMHhlMjAwXzAwMDAJMTZNCVBDSTEgSU8KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDYsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC0xMDcsMTEgKzEwNywxMSBAQAogCSAqIE1ha2Ugc3VyZSB0aGUgVExCIGNvdW50IGF0IHRoZSB0b3Agb2YgdGhpcyB0YWJsZSBpcyBjb3JyZWN0LgogCSAqIExpa2VseSBpdCBuZWVkcyB0byBiZSBpbmNyZWFzZWQgYnkgdHdvIGZvciB0aGVzZSBlbnRyaWVzLgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0REUl9TRFJBTV9CQVNFLCBDRkdfRERSX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRERSX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwLCBDRkdfRERSX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDAsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgOCwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogfTsKZGlmZiAtLWdpdCBhL2JvYXJkL3NvcmNlcnkvc29yY2VyeS5jIGIvYm9hcmQvc29yY2VyeS9zb3JjZXJ5LmMKaW5kZXggZTRmYjE0Ni4uM2UxYmQ2ZiAxMDA2NDQKLS0tIGEvYm9hcmQvc29yY2VyeS9zb3JjZXJ5LmMKKysrIGIvYm9hcmQvc29yY2VyeS9zb3JjZXJ5LmMKQEAgLTM0LDcgKzM0LDcgQEAKIAogCXNpemUgPSBkcmFtU2V0dXAgKCk7CiAKLQlyZXR1cm4gZ2V0X3JhbV9zaXplKENGR19TRFJBTV9CQVNFLCBzaXplKTsKKwlyZXR1cm4gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgc2l6ZSk7CiB9CiAKIGludCBjaGVja2JvYXJkICh2b2lkKQpkaWZmIC0tZ2l0IGEvYm9hcmQvc3BjMTkyMC9ocGkuYyBiL2JvYXJkL3NwYzE5MjAvaHBpLmMKaW5kZXggY2YyMWIyMS4uMjZkMGY5YyAxMDA2NDQKLS0tIGEvYm9hcmQvc3BjMTkyMC9ocGkuYworKysgYi9ib2FyZC9zcGMxOTIwL2hwaS5jCkBAIC0xNDQsMTYgKzE0NCwxNiBAQAogLyogaW5pdCB0aGUgaG9zdCBwb3J0IGludGVyZmFjZSBvbiBVUE1BICovCiBpbnQgaHBpX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKLQl2b2xhdGlsZSBzcGMxOTIwX3BsZF90ICpwbGQgPSAoc3BjMTkyMF9wbGRfdCAqKSBDRkdfU1BDMTkyMF9QTERfQkFTRTsKKwl2b2xhdGlsZSBzcGMxOTIwX3BsZF90ICpwbGQgPSAoc3BjMTkyMF9wbGRfdCAqKSBDT05GSUdfU1lTX1NQQzE5MjBfUExEX0JBU0U7CiAKIAl1cG1jb25maWcoVVBNQSwgKHVpbnQgKilkc3BfdGFibGVfc2xvdywgc2l6ZW9mKGRzcF90YWJsZV9zbG93KS9zaXplb2YodWludCkpOwogCXVkZWxheSgxMDApOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUjsKLQltZW1jdGwtPm1lbWNfb3IzID0gQ0ZHX09SMzsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSMzsKKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUjsKKwltZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19PUjM7CisJbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfQlIzOwogCiAJLyogcmVzZXQgZHNwICovCiAJZHNwX3Jlc2V0KCk7CkBAIC0xNzAsNyArMTcwLDcgQEAKIC8qIGFjdGl2YXRlIHRoZSBIb3N0IFBvcnQgaW50ZXJmYWNlICovCiBzdGF0aWMgaW50IGhwaV9hY3RpdmF0ZSh2b2lkKQogewotCXZvbGF0aWxlIHNwYzE5MjBfcGxkX3QgKnBsZCA9IChzcGMxOTIwX3BsZF90ICopIENGR19TUEMxOTIwX1BMRF9CQVNFOworCXZvbGF0aWxlIHNwYzE5MjBfcGxkX3QgKnBsZCA9IChzcGMxOTIwX3BsZF90ICopIENPTkZJR19TWVNfU1BDMTkyMF9QTERfQkFTRTsKIAogCS8qIHR1cm4gb24gaHBpICovCiAJcGxkLT5kc3BfaHBpX29uID0gMHgxOwpAQCAtMTkzLDcgKzE5Myw3IEBACiAvKiB0dXJuIG9mZiB0aGUgaG9zdCBwb3J0IGludGVyZmFjZSAqLwogc3RhdGljIHZvaWQgaHBpX2luYWN0aXZhdGUodm9pZCkKIHsKLQl2b2xhdGlsZSBzcGMxOTIwX3BsZF90ICpwbGQgPSAoc3BjMTkyMF9wbGRfdCAqKSBDRkdfU1BDMTkyMF9QTERfQkFTRTsKKwl2b2xhdGlsZSBzcGMxOTIwX3BsZF90ICpwbGQgPSAoc3BjMTkyMF9wbGRfdCAqKSBDT05GSUdfU1lTX1NQQzE5MjBfUExEX0JBU0U7CiAKIAkvKiBkZWFjdGl2YXRlIGhwaSAqLwogCXBsZC0+ZHNwX2hwaV9vbiA9IDB4MDsKQEAgLTIxMCw3ICsyMTAsNyBAQAogLyogcmVzZXQgdGhlIERTUCAqLwogc3RhdGljIHZvaWQgZHNwX3Jlc2V0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgc3BjMTkyMF9wbGRfdCAqcGxkID0gKHNwYzE5MjBfcGxkX3QgKikgQ0ZHX1NQQzE5MjBfUExEX0JBU0U7CisJdm9sYXRpbGUgc3BjMTkyMF9wbGRfdCAqcGxkID0gKHNwYzE5MjBfcGxkX3QgKikgQ09ORklHX1NZU19TUEMxOTIwX1BMRF9CQVNFOwogCXBsZC0+ZHNwX3Jlc2V0ID0gMHgxOwogCXBsZC0+ZHNwX2hwaV9vbiA9IDB4MDsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvc3BjMTkyMC9zcGMxOTIwLmMgYi9ib2FyZC9zcGMxOTIwL3NwYzE5MjAuYwppbmRleCBhMzJhYWQwLi5lZTkzOWJmIDEwMDY0NAotLS0gYS9ib2FyZC9zcGMxOTIwL3NwYzE5MjAuYworKysgYi9ib2FyZC9zcGMxOTIwL3NwYzE5MjAuYwpAQCAtODQsOSArODQsOSBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1yLT5pbV9tZW1jdGw7Ci0JLyogdm9sYXRpbGUgc3BjMTkyMF9wbGRfdCAqcGxkID0gKHNwYzE5MjBfcGxkX3QgKikgQ0ZHX1NQQzE5MjBfUExEX0JBU0U7ICovCisJLyogdm9sYXRpbGUgc3BjMTkyMF9wbGRfdCAqcGxkID0gKHNwYzE5MjBfcGxkX3QgKikgQ09ORklHX1NZU19TUEMxOTIwX1BMRF9CQVNFOyAqLwogCiAJbG9uZyBpbnQgc2l6ZV9iMDsKIAlsb25nIGludCBzaXplOCwgc2l6ZTk7CkBAIC05OSwxOSArOTksMTkgQEAKIAogCXVkZWxheSgxMDApOwogCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIAkvKiBidXJzdCBsZW5ndGg9NCwgYnVyc3QgdHlwZT1zZXF1ZW50aWFsLCBDQVMgbGF0ZW5jeT0yICovCi0JbWVtY3RsLT5tZW1jX21hciA9IENGR19NQVI7CisJbWVtY3RsLT5tZW1jX21hciA9IENPTkZJR19TWVNfTUFSOwogCiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDEgdG8gdGhlIFNEUkFNIGJhbmsgYXQgcHJlbGltaW5hcnkgYWRkcmVzcy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKIAogCS8qIGluaXRpYWxpemUgbWVtb3J5IGFkZHJlc3MgcmVnaXN0ZXIgKi8KLQltZW1jdGwtPm1lbWNfbWJtciA9IENGR19NQk1SXzhDT0w7IC8qIHJlZnJlc2ggbm90IGVuYWJsZWQgeWV0ICovCisJbWVtY3RsLT5tZW1jX21ibXIgPSBDT05GSUdfU1lTX01CTVJfOENPTDsgLyogcmVmcmVzaCBub3QgZW5hYmxlZCB5ZXQgKi8KIAogCS8qIG1vZGUgaW5pdGlhbGl6YXRpb24gKG9mZnNldCA1KSAqLwogCXVkZWxheSAoMjAwKTsJCQkJLyogMHg4MDAwNjEwNSAqLwpAQCAtMTMyLDcgKzEzMiw3IEBACiAJLyogTmVlZCBhdCBsZWFzdCAxMCBEUkFNIGFjY2Vzc2VzIHRvIHN0YWJpbGl6ZSAqLwogCWZvciAoaSA9IDA7IGkgPCAxMDsgKytpKSB7CiAJCXZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIgPQotCQkJKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgQ0ZHX1NEUkFNX0JBU0U7CisJCQkodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAJCXVuc2lnbmVkIGxvbmcgdmFsOwogCiAJCXZhbCA9ICooYWRkciArIGkpOwpAQCAtMTQ0LDIyICsxNDQsMjIgQEAKIAkgKgogCSAqIHRyeSA4IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQk1SXzhDT0wsIChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIFNEUkFNX01BWF9TSVpFKTsKKwlzaXplOCA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQk1SXzhDT0wsIChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCBTRFJBTV9NQVhfU0laRSk7CiAKIAl1ZGVsYXkgKDEwMDApOwogCiAJLyoKIAkgKiB0cnkgOSBjb2x1bW4gbW9kZQogCSAqLwotCXNpemU5ID0gZHJhbV9zaXplIChDRkdfTUJNUl85Q09MLCAobG9uZyAqKUNGR19TRFJBTV9CQVNFLCBTRFJBTV9NQVhfU0laRSk7CisJc2l6ZTkgPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUJNUl85Q09MLCAobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgU0RSQU1fTUFYX1NJWkUpOwogCiAJaWYgKHNpemU4IDwgc2l6ZTkpIHsJCS8qIGxlYXZlIGNvbmZpZ3VyYXRpb24gYXQgOSBjb2x1bW5zICovCiAJCXNpemVfYjAgPSBzaXplOTsKLQkJbWVtY3RsLT5tZW1jX21ibXIgPSBDRkdfTUJNUl85Q09MIHwgTUJNUl9QVEJFOworCQltZW1jdGwtPm1lbWNfbWJtciA9IENPTkZJR19TWVNfTUJNUl85Q09MIHwgTUJNUl9QVEJFOwogCQl1ZGVsYXkgKDUwMCk7CiAJfSBlbHNlIHsJCQkvKiBiYWNrIHRvIDggY29sdW1ucyAgICAgICAgICAgICovCiAJCXNpemVfYjAgPSBzaXplODsKLQkJbWVtY3RsLT5tZW1jX21ibXIgPSBDRkdfTUJNUl84Q09MIHwgTUJNUl9QVEJFOworCQltZW1jdGwtPm1lbWNfbWJtciA9IENPTkZJR19TWVNfTUJNUl84Q09MIHwgTUJNUl9QVEJFOwogCQl1ZGVsYXkgKDUwMCk7CiAJfQogCkBAIC0xNjksMTUgKzE2OSwxNSBAQAogCiAJbWVtY3RsLT5tZW1jX29yMSA9ICgoLXNpemVfYjApICYgMHhGRkZGMDAwMCkgfAogCQkJT1JfQ1NOVF9TQU0gfCBPUl9HNUxTIHwgU0RSQU1fVElNSU5HOwotCW1lbWN0bC0+bWVtY19icjEgPSAoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX2JyMSA9IChDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1Y7CiAJdWRlbGF5ICgxMDAwKTsKIAogCS8qIGluaXRhbGl6ZSB0aGUgRFNQIEhvc3QgUG9ydCBJbnRlcmZhY2UgKi8KIAlocGlfaW5pdCgpOwogCiAJLyogRlJBTSBTZXR1cCAqLwotCW1lbWN0bC0+bWVtY19vcjQgPSBDRkdfT1I0OwotCW1lbWN0bC0+bWVtY19icjQgPSBDRkdfQlI0OworCW1lbWN0bC0+bWVtY19vcjQgPSBDT05GSUdfU1lTX09SNDsKKwltZW1jdGwtPm1lbWNfYnI0ID0gQ09ORklHX1NZU19CUjQ7CiAJdWRlbGF5KDEwMDApOwogCiAJcmV0dXJuIChzaXplX2IwKTsKQEAgLTE5Myw3ICsxOTMsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWJtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21ibXIgPSBtYm1yX3ZhbHVlOwpAQCAtMjA3LDcgKzIwNyw3IEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2Yodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJLyogU2V0IEdvL05vR28gbGVkIChQQTE1KSB0byBjb2xvciByZWQgKi8KIAlpbW1hcC0+aW1faW9wb3J0LmlvcF9wYXBhciAmPSB+MHgxOwpAQCAtMjQwLDcgKzI0MCw3IEBACiAJaW1tYXAtPmltX2lvcG9ydC5pb3BfcGRkYXQgfD0gMHgwMDIwOwogCiAKLSNpZmRlZiBDRkdfU01DMV9QTERfQ0xLNCAvKiBTTUMxIHVzZXMgQ0xLNCBmcm9tIFBMRCAqLworI2lmZGVmIENPTkZJR19TWVNfU01DMV9QTERfQ0xLNCAvKiBTTUMxIHVzZXMgQ0xLNCBmcm9tIFBMRCAqLwogCWltbWFwLT5pbV9jcG0uY3Bfc2ltb2RlIHw9IDB4NzAwMDsKIAlpbW1hcC0+aW1fY3BtLmNwX3NpbW9kZSAmPSB+KDB4ODAwMCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL3NwZDh4eC9mbGFzaC5jIGIvYm9hcmQvc3BkOHh4L2ZsYXNoLmMKaW5kZXggOGMwYmI0Zi4uZmIyZmI2YSAxMDA2NDQKLS0tIGEvYm9hcmQvc3BkOHh4L2ZsYXNoLmMKKysrIGIvYm9hcmQvc3BkOHh4L2ZsYXNoLmMKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvc3BkOHh4L3NwZDh4eC5jIGIvYm9hcmQvc3BkOHh4L3NwZDh4eC5jCmluZGV4IDYzODdmOGEuLjllOTY3OGQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NwZDh4eC9zcGQ4eHguYworKysgYi9ib2FyZC9zcGQ4eHgvc3BkOHh4LmMKQEAgLTE0NSw3ICsxNDUsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZV9iMDsKIApAQCAtMTUzLDIzICsxNTMsMjMgQEAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIGJhbmsgMiB0byB0aGUgU1JBTSBiYW5rIGF0IHByZWxpbWluYXJ5IGFkZHJlc3MuCiAJICovCi0JbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjI7Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjI7CisJbWVtY3RsLT5tZW1jX29yMiA9IENPTkZJR19TWVNfT1IyOworCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMjsKICNlbmRpZgogCiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDQgdG8gdGhlIFBFUjggYmFuay4KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3I0ID0gQ0ZHX09SNDsKLQltZW1jdGwtPm1lbWNfYnI0ID0gQ0ZHX0JSNDsKKwltZW1jdGwtPm1lbWNfb3I0ID0gQ09ORklHX1NZU19PUjQ7CisJbWVtY3RsLT5tZW1jX2JyNCA9IENPTkZJR19TWVNfQlI0OwogCiAjaWYgMAogCS8qIENvbmZpZ3VyZSBTSEFSQyBhdCBVTUEgKi8KIAl1cG1jb25maWcgKFVQTUEsICh1aW50ICopIHNoYXJjX3RhYmxlLAogCQkgICBzaXplb2YgKHNoYXJjX3RhYmxlKSAvIHNpemVvZiAodWludCkpOwogCS8qIE1hcCBjb250cm9sbGVyIGJhbmsgNSB0byB0aGUgU0hBUkMgKi8KLQltZW1jdGwtPm1lbWNfb3I1ID0gQ0ZHX09SNTsKLQltZW1jdGwtPm1lbWNfYnI1ID0gQ0ZHX0JSNTsKKwltZW1jdGwtPm1lbWNfb3I1ID0gQ09ORklHX1NZU19PUjU7CisJbWVtY3RsLT5tZW1jX2JyNSA9IENPTkZJR19TWVNfQlI1OwogI2VuZGlmCiAKIAltZW1jdGwtPm1lbWNfbWFtciA9IDB4MDAwMDEwMDA7CkBAIC0xNzgsMTcgKzE3OCwxNyBAQAogCXVwbWNvbmZpZyAoVVBNQiwgKHVpbnQgKikgc2RyYW1fdGFibGUsCiAJCSAgIHNpemVvZiAoc2RyYW1fdGFibGUpIC8gc2l6ZW9mICh1aW50KSk7CiAKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMUJLXzhLOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMUJLXzhLOwogCiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIGJhbmsgMyB0byB0aGUgU0RSQU0gYmFuayBhdCBwcmVsaW1pbmFyeSBhZGRyZXNzLgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfT1IzX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21ibXIgPSBDRkdfTUJNUl84Q09MOwkvKiByZWZyZXNoIG5vdCBlbmFibGVkIHlldCAqLworCW1lbWN0bC0+bWVtY19tYm1yID0gQ09ORklHX1NZU19NQk1SXzhDT0w7CS8qIHJlZnJlc2ggbm90IGVuYWJsZWQgeWV0ICovCiAKIAl1ZGVsYXkgKDIwMCk7CiAJbWVtY3RsLT5tZW1jX21jciA9IDB4ODA4MDYxMDU7CkBAIC0yMDUsMTAgKzIwNSwxMCBAQAogCSAqIENoZWNrIEJhbmsgMCBNZW1vcnkgU2l6ZSBmb3IgcmUtY29uZmlndXJhdGlvbgogCSAqLwogCXNpemVfYjAgPQotCQlkcmFtX3NpemUgKENGR19NQk1SXzhDT0wsIFNEUkFNX0JBU0UzX1BSRUxJTSwKKwkJZHJhbV9zaXplIChDT05GSUdfU1lTX01CTVJfOENPTCwgU0RSQU1fQkFTRTNfUFJFTElNLAogCQkJICAgU0RSQU1fTUFYX1NJWkUpOwogCi0JbWVtY3RsLT5tZW1jX21ibXIgPSBDRkdfTUJNUl84Q09MIHwgTUJNUl9QVEJFOworCW1lbWN0bC0+bWVtY19tYm1yID0gQ09ORklHX1NZU19NQk1SXzhDT0wgfCBNQk1SX1BUQkU7CiAKIAlyZXR1cm4gKHNpemVfYjApOwogfQpAQCAtMjI2LDcgKzIyNiw3IEBACiBzdGF0aWMgbG9uZyBpbnQgZHJhbV9zaXplIChsb25nIGludCBtYW1yX3ZhbHVlLCBsb25nIGludCAqYmFzZSwKIAkJCSAgIGxvbmcgaW50IG1heHNpemUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAltZW1jdGwtPm1lbWNfbWJtciA9IG1hbXJfdmFsdWU7CkBAIC0yMzgsNyArMjM4LDcgQEAKIAogdm9pZCByZXNldF9waHkgKHZvaWQpCiB7Ci0JaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCWltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdXNob3J0IHNyZWc7CiAKIAkvKiBDb25maWd1cmUgZXh0cmEgcG9ydCBwaW5zIGZvciBOUyBEUDgzODQzIFBIWSAqLwpAQCAtMjc0LDIxICsyNzQsMjEgQEAKIAogdm9pZCBpZGVfc2V0X3Jlc2V0IChpbnQgb24pCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAkvKgogCSAqIENvbmZpZ3VyZSBQQyBmb3IgSURFIFJlc2V0IFBpbgogCSAqLwogCWlmIChvbikgewkJLyogYXNzZXJ0IFJFU0VUICovCi0JCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgJj0gfihDRkdfUENfSURFX1JFU0VUKTsKKwkJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCAmPSB+KENPTkZJR19TWVNfUENfSURFX1JFU0VUKTsKIAl9IGVsc2UgewkJLyogcmVsZWFzZSBSRVNFVCAqLwotCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0IHw9IENGR19QQ19JREVfUkVTRVQ7CisJCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgfD0gQ09ORklHX1NZU19QQ19JREVfUkVTRVQ7CiAJfQogCiAJLyogcHJvZ3JhbSBwb3J0IHBpbiBhcyBHUElPIG91dHB1dCAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfihDRkdfUENfSURFX1JFU0VUKTsKLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3Bjc28gJj0gfihDRkdfUENfSURFX1JFU0VUKTsKLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGlyIHw9IENGR19QQ19JREVfUkVTRVQ7CisJaW1tci0+aW1faW9wb3J0LmlvcF9wY3BhciAmPSB+KENPTkZJR19TWVNfUENfSURFX1JFU0VUKTsKKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3Bjc28gJj0gfihDT05GSUdfU1lTX1BDX0lERV9SRVNFVCk7CisJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RpciB8PSBDT05GSUdfU1lTX1BDX0lERV9SRVNFVDsKIH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvc3N2L2FkbnBlc2MxL2FkbnBlc2MxLmMgYi9ib2FyZC9zc3YvYWRucGVzYzEvYWRucGVzYzEuYwppbmRleCA3MWRlMjA4Li45ZDMyNzQxIDEwMDY0NAotLS0gYS9ib2FyZC9zc3YvYWRucGVzYzEvYWRucGVzYzEuYworKysgYi9ib2FyZC9zc3YvYWRucGVzYzEvYWRucGVzYzEuYwpAQCAtNzYsMTQgKzc2LDE0IEBACiAKIHZvaWQgc3BpX2NzX2FjdGl2YXRlKHN0cnVjdCBzcGlfc2xhdmUgKnNsYXZlKQogewotCW5pb3Nfc3BpX3QgKnNwaSA9IChuaW9zX3NwaV90ICopQ0ZHX05JT1NfU1BJQkFTRTsKKwluaW9zX3NwaV90ICpzcGkgPSAobmlvc19zcGlfdCAqKUNPTkZJR19TWVNfTklPU19TUElCQVNFOwogCiAJc3BpLT5zbGF2ZXNlbGVjdCA9IFNQSV9SVENfQ1NfTUFTSzsJLyogYWN0aXZhdGUgKDEpICovCiB9CiAKIHZvaWQgc3BpX2NzX2RlYWN0aXZhdGUoc3RydWN0IHNwaV9zbGF2ZSAqc2xhdmUpCiB7Ci0Jbmlvc19zcGlfdCAqc3BpID0gKG5pb3Nfc3BpX3QgKilDRkdfTklPU19TUElCQVNFOworCW5pb3Nfc3BpX3QgKnNwaSA9IChuaW9zX3NwaV90ICopQ09ORklHX1NZU19OSU9TX1NQSUJBU0U7CiAKIAlzcGktPnNsYXZlc2VsZWN0ID0gMDsJCQkvKiBkZWFjdGl2YXRlICgwKSAqLwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvc3N2L2FkbnBlc2MxL2NvbmZpZy5tayBiL2JvYXJkL3Nzdi9hZG5wZXNjMS9jb25maWcubWsKaW5kZXggN2Q4ZWIwMy4uY2YwNTQ0NSAxMDA2NDQKLS0tIGEvYm9hcmQvc3N2L2FkbnBlc2MxL2NvbmZpZy5taworKysgYi9ib2FyZC9zc3YvYWRucGVzYzEvY29uZmlnLm1rCkBAIC0yMiw3ICsyMiw3IEBACiAjIE1BIDAyMTExLTEzMDcgVVNBCiAjCiAKLVRFWFRfQkFTRSA9IDB4MDJmYzAwMDAJIyBBVFRFTlRJT046IG5vdGljZSB5b3VyIENGR19NT05JVE9SX0xFTiBzZXR0aW5nCitURVhUX0JBU0UgPSAweDAyZmMwMDAwCSMgQVRURU5USU9OOiBub3RpY2UgeW91ciBDT05GSUdfU1lTX01PTklUT1JfTEVOIHNldHRpbmcKIAogaWZlcSAoJChkZWJ1ZyksMSkKIFBMQVRGT1JNX0NQUEZMQUdTICs9IC1EREVCVUcKZGlmZiAtLWdpdCBhL2JvYXJkL3Nzdi9hZG5wZXNjMS9mbGFzaC5jIGIvYm9hcmQvc3N2L2FkbnBlc2MxL2ZsYXNoLmMKaW5kZXggMjYxNDA2OC4uODgyNjMwYyAxMDA2NDQKLS0tIGEvYm9hcmQvc3N2L2FkbnBlc2MxL2ZsYXNoLmMKKysrIGIvYm9hcmQvc3N2L2FkbnBlc2MxL2ZsYXNoLmMKQEAgLTM2LDcgKzM2LDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNkZWZpbmUJQkFOS1NaCSg4ICogMTAyNCAqIDEwMjQpCiAjZGVmaW5lCVNFQ1RTWgkoNjQgKiAxMDI0KQotI2RlZmluZQlVQk9PVFNFQ1MgKChDRkdfTU9OSVRPUl9MRU4gKyBDT05GSUdfRU5WX1NJWkUpIC8gU0VDVFNaKQorI2RlZmluZQlVQk9PVFNFQ1MgKChDT05GSUdfU1lTX01PTklUT1JfTEVOICsgQ09ORklHX0VOVl9TSVpFKSAvIFNFQ1RTWikKICNkZWZpbmUJVUJPT1RBUkVBIChVQk9PVFNFQ1MgKiA2NCAqIDEwMjQpCS8qIG1vbml0b3IgLyBlbnYgYXJlYSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC00NywxNiArNDcsMTYgQEAKIAlmbGFzaF9pbmZvX3QgKmZsaSA9ICZmbGFzaF9pbmZvWzBdOwogCiAJZmxpLT5zaXplID0gQkFOS1NaOwotCWZsaS0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCWZsaS0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAlmbGktPmZsYXNoX2lkID0gRkxBU0hfTUFOX0FNRCArIEZMQVNIX0FNTFY2NDBVOwogCi0JYWRkciA9IENGR19GTEFTSF9CQVNFOworCWFkZHIgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJZm9yIChpID0gMDsgaSA8IGZsaS0+c2VjdG9yX2NvdW50OyArK2kpIHsKIAkJZmxpLT5zdGFydFtpXSA9IGFkZHI7CiAJCWFkZHIgKz0gU0VDVFNaOwogCiAJCS8qIFByb3RlY3QgbW9uaXRvciAvIGVudmlyb25tZW50IGFyZWEgKi8KLQkJaWYgKGFkZHIgPD0gKENGR19GTEFTSF9CQVNFICsgVUJPT1RBUkVBKSkKKwkJaWYgKGFkZHIgPD0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIFVCT09UQVJFQSkpCiAJCQlmbGktPnByb3RlY3RbaV0gPSAxOwogCQllbHNlCiAJCQlmbGktPnByb3RlY3RbaV0gPSAwOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc3N2L2FkbnBlc2MxL3ZlY3RvcnMuUyBiL2JvYXJkL3Nzdi9hZG5wZXNjMS92ZWN0b3JzLlMKaW5kZXggZmI3ZTE3ZS4uOGIyZGEyZiAxMDA2NDQKLS0tIGEvYm9hcmQvc3N2L2FkbnBlc2MxL3ZlY3RvcnMuUworKysgYi9ib2FyZC9zc3YvYWRucGVzYzEvdmVjdG9ycy5TCkBAIC01NywxMiArNTcsMTIgQEAKIAkuYWxpZ24JNAogX3ZlY3RvcnM6CiAKLSNpZglkZWZpbmVkKENGR19OSU9TX0NQVV9PQ0lfQkFTRSkKKyNpZglkZWZpbmVkKENPTkZJR19TWVNfTklPU19DUFVfT0NJX0JBU0UpCiAJLyogT0NJIGRvZXMgdGhlIHJlc2V0IGpvYiAqLwogCS5sb25nCV9kZWZfeGhhbmRsZXJAaAkJLyogVmVjdG9yIDAgIC0gTk1JIC8gUmVzZXQgKi8KICNlbHNlCiAJLyogdGhlcmUgaXMgbm8gT0NJLCBzbyB3ZSBoYXZlIHRvIGRvIGEgZGlyZWN0IHJlc2V0IGp1bXAgaGVyZSAqLwotCS5sb25nCUNGR19OSU9TX0NQVV9SU1RfVkVDVAkvKiBWZWN0b3IgMCAgLSBSZXNldCB0byBHRVJNUyAqLworCS5sb25nCUNPTkZJR19TWVNfTklPU19DUFVfUlNUX1ZFQ1QJLyogVmVjdG9yIDAgIC0gUmVzZXQgdG8gR0VSTVMgKi8KICNlbmRpZgogCS5sb25nCV9jd3BfbG9saW1pdEBoCQkvKiBWZWN0b3IgMSAgLSB1bmRlcmZsb3cgKi8KIAkubG9uZwlfY3dwX2hpbGltaXRAaAkJLyogVmVjdG9yIDIgIC0gb3ZlcmZsb3cJKi8KQEAgLTgwLDcgKzgwLDcgQEAKIAkubG9uZwlfZGVmX3hoYW5kbGVyQGgJCS8qIFZlY3RvciAxMyAtIGZ1dHVyZSByZXNlcnZlZCAqLwogCS5sb25nCV9kZWZfeGhhbmRsZXJAaAkJLyogVmVjdG9yIDE0IC0gZnV0dXJlIHJlc2VydmVkICovCiAJLmxvbmcJX2RlZl94aGFuZGxlckBoCQkvKiBWZWN0b3IgMTUgLSBmdXR1cmUgcmVzZXJ2ZWQgKi8KLSNpZgkoQ0ZHX05JT1NfVE1SSVJRID09IDE2KQorI2lmCShDT05GSUdfU1lTX05JT1NfVE1SSVJRID09IDE2KQogCS5sb25nCV90aW1lYmFzZV9pbnRAaAkJLyogVmVjdG9yIDE2IC0gbG9wcmkgdGltZXIqLwogI2Vsc2UKIAkubG9uZwlfZGVmX3hoYW5kbGVyQGgJCS8qIFZlY3RvciAxNiAqLwpAQCAtMTE4LDcgKzExOCw3IEBACiAJLmxvbmcJX2RlZl94aGFuZGxlckBoCQkvKiBWZWN0b3IgNDcgKi8KIAkubG9uZwlfZGVmX3hoYW5kbGVyQGgJCS8qIFZlY3RvciA0OCAqLwogCS5sb25nCV9kZWZfeGhhbmRsZXJAaAkJLyogVmVjdG9yIDQ5ICovCi0jaWYJKENGR19OSU9TX1RNUklSUSA9PSA1MCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX1RNUklSUSA9PSA1MCkKIAkubG9uZwlfdGltZWJhc2VfaW50QGgJCS8qIFZlY3RvciA1MCAtIGxvcHJpIHRpbWVyKi8KICNlbHNlCiAJLmxvbmcJX2RlZl94aGFuZGxlckBoCQkvKiBWZWN0b3IgNTAgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL3Nzdi9jb21tb24vZmxhc2guYyBiL2JvYXJkL3Nzdi9jb21tb24vZmxhc2guYwppbmRleCA3MGNhYjdmLi43MGJmOWQ2IDEwMDY0NAotLS0gYS9ib2FyZC9zc3YvY29tbW9uL2ZsYXNoLmMKKysrIGIvYm9hcmQvc3N2L2NvbW1vbi9mbGFzaC5jCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8d2F0Y2hkb2cuaD4KICNpbmNsdWRlIDxuaW9zLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIHZvaWQgZmxhc2hfcHJpbnRfaW5mbyAoZmxhc2hfaW5mb190ICogaW5mbykKQEAgLTcyLDggKzcyLDggQEAKIAogaW50IGZsYXNoX2VyYXNlIChmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc19maXJzdCwgaW50IHNfbGFzdCkKIHsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMjsKIAlpbnQgcHJvdCwgc2VjdCwgd2FpdDsKIAl1bnNpZ25lZCBvbGRwcmk7CiAJdWxvbmcgc3RhcnQ7CkBAIC0xMTYsNyArMTE2LDcgQEAKIAkgKi8KIAlmb3IgKHNlY3QgPSBzX2ZpcnN0OyBzZWN0IDw9IHNfbGFzdDsgc2VjdCsrKSB7CiAJCWlmIChpbmZvLT5wcm90ZWN0W3NlY3RdID09IDApIHsJLyogbm90IHByb3RlY3RlZCAqLwotCQkJYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOworCQkJYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAkJCSphZGRyID0gMHhmMDsKIAkJCSooYWRkcisweEFBQS8yKSA9IDB4YWE7CiAJCQkqKGFkZHIrMHg1NTQvMikgPSAweDU1OwpAQCAtMTM1LDcgKzEzNSw3IEBACiAJCQkJCXVkZWxheSAoMTI1ICogMTAwMCk7CiAJCQkJfQogCQkJCXB1dGMgKCcuJyk7Ci0JCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgidGltZW91dFxuIik7CiAJCQkJCXJldHVybiAxOwogCQkJCX0KQEAgLTE2MywxNCArMTYzLDE0IEBACiBpbnQgd3JpdGVfYnVmZiAoZmxhc2hfaW5mb190ICogaW5mbywgdWNoYXIgKiBzcmNidWZmZXIsIHVsb25nIGFkZHIsIHVsb25nIGNudCkKIHsKIAotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmNtZCA9ICh2dV9zaG9ydCAqKSBpbmZvLT5zdGFydFswXTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpkc3QgPSAodnVfc2hvcnQgKikgYWRkcjsKLQlDRkdfRkxBU0hfV09SRF9TSVpFICpzcmMgPSAodm9pZCAqKSBzcmNidWZmZXI7Ci0JQ0ZHX0ZMQVNIX1dPUkRfU0laRSBiOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpjbWQgPSAodnVfc2hvcnQgKikgaW5mby0+c3RhcnRbMF07CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRzdCA9ICh2dV9zaG9ydCAqKSBhZGRyOworCUNPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpzcmMgPSAodm9pZCAqKSBzcmNidWZmZXI7CisJQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgYjsKIAl1bnNpZ25lZCBvbGRwcmk7CiAJdWxvbmcgc3RhcnQ7CiAKLQljbnQgLz0gc2l6ZW9mKENGR19GTEFTSF9XT1JEX1NJWkUpOworCWNudCAvPSBzaXplb2YoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpOwogCXdoaWxlIChjbnQpIHsKIAkJLyogQ2hlY2sgZm9yIHN1ZmZpY2llbnQgZXJhc2UgKi8KIAkJYiA9ICpzcmM7CkBAIC0xOTIsNyArMTkyLDcgQEAKIAkJLyogVmVyaWZ5IHdyaXRlICovCiAJCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAkJd2hpbGUgKCpkc3QgIT0gYikgewotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCSpjbWQgPSAweGYwOwogCQkJCXJldHVybiAxOwogCQkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvc3N2L2NvbW1vbi9wb3N0LmMgYi9ib2FyZC9zc3YvY29tbW9uL3Bvc3QuYwppbmRleCBhNWYyOWMxLi5jN2E5Y2NjIDEwMDY0NAotLS0gYS9ib2FyZC9zc3YvY29tbW9uL3Bvc3QuYworKysgYi9ib2FyZC9zc3YvY29tbW9uL3Bvc3QuYwpAQCAtMjUsMTkgKzI1LDE5IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19QT1NUKSB8fCBkZWZpbmVkKENPTkZJR19MT0dCVUZGRVIpCiAKLSNpZiAhZGVmaW5lZChDRkdfTklPU19QT1NUX1dPUkRfQUREUikKLSNlcnJvciAiKioqIENGR19OSU9TX1BPU1RfV09SRF9BRERSIG5vdCBkZWZpbmVkICoqKiIKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX05JT1NfUE9TVF9XT1JEX0FERFIpCisjZXJyb3IgIioqKiBDT05GSUdfU1lTX05JT1NfUE9TVF9XT1JEX0FERFIgbm90IGRlZmluZWQgKioqIgogI2VuZGlmCiAKIHZvaWQgcG9zdF93b3JkX3N0b3JlICh1bG9uZyBhKQogewotCXZvbGF0aWxlIHZvaWQgKnNhdmVfYWRkciA9ICh2b2lkICopKENGR19OSU9TX1BPU1RfV09SRF9BRERSKTsKKwl2b2xhdGlsZSB2b2lkICpzYXZlX2FkZHIgPSAodm9pZCAqKShDT05GSUdfU1lTX05JT1NfUE9TVF9XT1JEX0FERFIpOwogCSoodm9sYXRpbGUgdWxvbmcgKikgc2F2ZV9hZGRyID0gYTsKIH0KIAogdWxvbmcgcG9zdF93b3JkX2xvYWQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgdm9pZCAqc2F2ZV9hZGRyID0gKHZvaWQgKikoQ0ZHX05JT1NfUE9TVF9XT1JEX0FERFIpOworCXZvbGF0aWxlIHZvaWQgKnNhdmVfYWRkciA9ICh2b2lkICopKENPTkZJR19TWVNfTklPU19QT1NUX1dPUkRfQUREUik7CiAJcmV0dXJuICoodm9sYXRpbGUgdWxvbmcgKikgc2F2ZV9hZGRyOwogfQogCmRpZmYgLS1naXQgYS9ib2FyZC9zdHhncDMvZmxhc2guYyBiL2JvYXJkL3N0eGdwMy9mbGFzaC5jCmluZGV4IDE0MzM0OTEuLjYxYzk2MDIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3N0eGdwMy9mbGFzaC5jCisrKyBiL2JvYXJkL3N0eGdwMy9mbGFzaC5jCkBAIC0zNywxMyArMzcsMTMgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWYgIWRlZmluZWQoQ0ZHX05PX0ZMQVNIKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTk9fRkxBU0gpCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNzIsNyArNzIsNyBAQAogCS8qIEluaXQ6IGVuYWJsZSB3cml0ZSwKIAkgKiBvciB3ZSBjYW5ub3QgZXZlbiB3cml0ZSBmbGFzaCBjb21tYW5kcwogCSAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAKIAkJLyogc2V0IHRoZSBkZWZhdWx0IHNlY3RvciBvZmZzZXQgKi8KQEAgLTgwLDcgKzgwLDcgQEAKIAogCS8qIFN0YXRpYyBGTEFTSCBCYW5rIGNvbmZpZ3VyYXRpb24gaGVyZSAtIEZJWE1FIFhYWCAqLwogCi0Jc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCWlmIChmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pIHsKIAkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rIDAgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwKQEAgLTg4LDE1ICs4OCwxNSBAQAogCX0KIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogCiAjaWZkZWYJQ09ORklHX0VOVl9JU19JTl9GTEFTSApAQCAtMzI5LDcgKzMyOSw3IEBACiAJCQkJCWFzbSgic3luYyIpOwogCQkJCQlyZXR1cm4gMTsKIAkJCQl9Ci0JCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IDB4RkZGRkZGRkY7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCQkJYXNtKCJzeW5jIik7CkBAIC00NTgsNyArNDU4LDcgQEAKIAlmbGFnICA9IDA7CiAKIAl3aGlsZSAoKChjc3IgPSAqYWRkcikgJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCWZsYWcgPSAxOwogCQkJYnJlYWs7CiAJCX0KQEAgLTUwMiw3ICs1MDIsNyBAQAogCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlKCgqYWRkciAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApewotCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0IG9uIGNsZWFyaW5nIEJsb2NrIExvY2sgQml0XG4iKTsKIAkJCSphZGRyID0gMHhGRkZGRkZGRjsJLyogcmVzZXQgYmFuayAqLwogCQkJYXNtKCJzeW5jIik7CkBAIC01MTIsNCArNTEyLDQgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2VuZGlmIC8qICFDRkdfTk9fRkxBU0ggKi8KKyNlbmRpZiAvKiAhQ09ORklHX1NZU19OT19GTEFTSCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvc3R4Z3AzL2xhdy5jIGIvYm9hcmQvc3R4Z3AzL2xhdy5jCmluZGV4IGE3ZTljZWIuLmJhODlmMGUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3N0eGdwMy9sYXcuYworKysgYi9ib2FyZC9zdHhncDMvbGF3LmMKQEAgLTQ2LDEzICs0NiwxMyBAQAogCiBzdHJ1Y3QgbGF3X2VudHJ5IGxhd190YWJsZVtdID0gewogI2lmbmRlZiBDT05GSUdfU1BEX0VFUFJPTQotCVNFVF9MQVcoQ0ZHX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8xMjhNLCBMQVdfVFJHVF9JRl9ERFIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMTI4TSwgTEFXX1RSR1RfSUZfRERSKSwKICNlbmRpZgotCVNFVF9MQVcoQ0ZHX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCiAJLyogVGhpcyBpcyBub3Qgc28gbXVjaCB0aGUgU0RSQU0gbWFwIGFzIGl0IGlzIHRoZSB3aG9sZSBsb2NhbGJ1cyBtYXAuICovCi0JU0VUX0xBVyhDRkdfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCi0JU0VUX0xBVyhDRkdfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSSksCi0JU0VUX0xBVyhDRkdfUklPX01FTV9CQVNFLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1JJTyksCisJU0VUX0xBVyhDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUklPX01FTV9CQVNFLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1JJTyksCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc3R4Z3AzL3N0eGdwMy5jIGIvYm9hcmQvc3R4Z3AzL3N0eGdwMy5jCmluZGV4IGM4MGYxYjMuLjM4MDRmZTAgMTAwNjQ0Ci0tLSBhL2JvYXJkL3N0eGdwMy9zdHhncDMuYworKysgYi9ib2FyZC9zdHhncDMvc3R4Z3AzLmMKQEAgLTIwMyw3ICsyMDMsNyBAQAogYm9hcmRfZWFybHlfaW5pdF9mKHZvaWQpCiB7CiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQotICAgIHZvbGF0aWxlIGNjc3JfcGNpeF90ICpwY2kgPSAodm9pZCAqKShDRkdfTVBDODV4eF9QQ0lYX0FERFIpOworICAgIHZvbGF0aWxlIGNjc3JfcGNpeF90ICpwY2kgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfUENJWF9BRERSKTsKIAogICAgIHBjaS0+cGVlciAmPSAweGZmZmZmZmZkZjsgLyogZGlzYWJsZSBtYXN0ZXIgYWJvcnQgKi8KICNlbmRpZgpAQCAtMjE1LDcgKzIxNSw3IEBACiB7CiAJdm9sYXRpbGUgdWludCAqYmxhdGNoOwogCi0JYmxhdGNoID0gKHZvbGF0aWxlIHVpbnQgKilDRkdfTEJDX0xDTERFVlNfQkFTRTsKKwlibGF0Y2ggPSAodm9sYXRpbGUgdWludCAqKUNPTkZJR19TWVNfTEJDX0xDTERFVlNfQkFTRTsKIAogCS8qIHJlc2V0IEdpZ2EgYml0IEV0aGVybmV0IHBvcnQgaWYgbmVlZGVkIGhlcmUgKi8KIApAQCAtMjY3LDcgKzI2Nyw3IEBACiAJaWYgKG5leHRfbGVkX3VwZGF0ZSA+IGdldF90aWNrcygpKQogCQlyZXR1cm47CiAKLQlibGF0Y2ggPSAodm9sYXRpbGUgdWludCAqKUNGR19MQkNfTENMREVWU19CQVNFOworCWJsYXRjaCA9ICh2b2xhdGlsZSB1aW50ICopQ09ORklHX1NZU19MQkNfTENMREVWU19CQVNFOwogCiAJbGVkX2JpdCA+Pj0gMTsKIAlpZiAobGVkX2JpdCA9PSAwKQpAQCAtMjg0LDcgKzI4NCw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19ERFJfRExMKQogCXsKLQkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAJCXVpbnQgdGVtcF9kZHJkbGwgPSAwOwogCiAJCS8qIFdvcmsgYXJvdW5kIHRvIHN0YWJpbGl6ZSBERFIgRExMICovCkBAIC0zMDgsMTEgKzMwOCwxMSBAQAogfQogCiAKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIGludCB0ZXN0ZHJhbSAodm9pZCkKIHsKLQl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQl1aW50ICpwZW5kID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfRU5EOworCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwl1aW50ICpwZW5kID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX0VORDsKIAl1aW50ICpwOwogCiAJcHJpbnRmKCJTRFJBTSB0ZXN0IHBoYXNlIDE6XG4iKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3N0eGdwMy90bGIuYyBiL2JvYXJkL3N0eGdwMy90bGIuYwppbmRleCBkNDEwNDE2Li5hYTExYTVkIDEwMDY0NAotLS0gYS9ib2FyZC9zdHhncDMvdGxiLmMKKysrIGIvYm9hcmQvc3R4Z3AzL3RsYi5jCkBAIC0yOCwxNiArMjgsMTYgQEAKIAogc3RydWN0IGZzbF9lX3RsYl9lbnRyeSB0bGJfdGFibGVbXSA9IHsKIAkvKiBUTEIgMCAtIGZvciB0ZW1wIHN0YWNrIGluIGNhY2hlICovCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiwgQ0ZHX0lOSVRfUkFNX0FERFIsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAogCkBAIC00Niw3ICs0Niw3IEBACiAJICogMHhmZjAwMDAwMAkxNk0JRkxBU0gKIAkgKiBPdXQgb2YgcmVzZXQgdGhpcyBlbnRyeSBpcyBvbmx5IDRLLgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfMTZNLCAxKSwKIApAQCAtNTQsNyArNTQsNyBAQAogCSAqIFRMQiAxOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweDgwMDAwMDAwCTI1Nk0JUENJMSBNRU0gRmlyc3QgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMsIENGR19QQ0kxX01FTV9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAxLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTYyLDcgKzYyLDcgQEAKIAkgKiBUTEIgMjoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg5MDAwMDAwMAkyNTZNCVBDSTEgTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAyLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTcwLDcgKzcwLDcgQEAKIAkgKiBUTEIgMzoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhjMDAwMDAwMAkyNTZNCVJhcGlkIElPIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUklPX01FTV9CQVNFLCBDRkdfUklPX01FTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UsIENPTkZJR19TWVNfUklPX01FTV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC03OCw3ICs3OCw3IEBACiAJICogVExCIDQ6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ZDAwMDAwMDAJMjU2TQlSYXBpZCBJTyBNRU0gU2Vjb25kIGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLCBDRkdfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNCwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC04Nyw3ICs4Nyw3IEBACiAJICogMHhlMDAwXzAwMDAJMU0JQ0NTUkJBUgogCSAqIDB4ZTIwMF8wMDAwCTE2TQlQQ0kxIElPCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfQ0NTUkJBUiwgQ0ZHX0NDU1JCQVJfUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQ0NTUkJBUiwgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA1LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtOTUsNyArOTUsNyBAQAogCSAqIFRMQiA2Ogk2NE0JQ2FjaGVhYmxlLCBub24tZ3VhcmRlZAogCSAqIDB4ZjAwMF8wMDAwCTY0TQlMQkMgU0RSQU0KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19MQkNfU0RSQU1fQkFTRSwgQ0ZHX0xCQ19TRFJBTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDYsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC0xMDMsNyArMTAzLDcgQEAKIAkgKiBUTEIgNzoJMTZLCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGZjMDAwMDAwCTE2SwlDb25maWd1cmF0aW9uIExhdGNoIHJlZ2lzdGVyCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfTEJDX0xDTERFVlNfQkFTRSwgQ0ZHX0xCQ19MQ0xERVZTX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0xCQ19MQ0xERVZTX0JBU0UsIENPTkZJR19TWVNfTEJDX0xDTERFVlNfQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDcsIEJPT0tFX1BBR0VTWl8xNkssIDEpLAogCkBAIC0xMTcsMTEgKzExNywxMSBAQAogCSAqIExpa2VseSBpdCBuZWVkcyB0byBiZSBpbmNyZWFzZWQgYnkgdHdvIGZvciB0aGVzZSBlbnRyaWVzLgogCSAqLwogI2Vycm9yKCJVcGRhdGUgdGhlIG51bWJlciBvZiB0YWJsZSBlbnRyaWVzIGluIHRsYjFfZW50cnkiKQotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0REUl9TRFJBTV9CQVNFLCBDRkdfRERSX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgOCwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKLQlTRVRfVExCX0VOVFJZKDEsIENGR19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwgQ0ZHX0REUl9TRFJBTV9CQVNFICsgMHg0MDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDksIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9zdHhzc2EvbGF3LmMgYi9ib2FyZC9zdHhzc2EvbGF3LmMKaW5kZXggODczMGNkZi4uNTVkZGU2NiAxMDA2NDQKLS0tIGEvYm9hcmQvc3R4c3NhL2xhdy5jCisrKyBiL2JvYXJkL3N0eHNzYS9sYXcuYwpAQCAtNDcsMTQgKzQ3LDE0IEBACiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7CiAjaWZuZGVmIENPTkZJR19TUERfRUVQUk9NCi0JU0VUX0xBVyhDRkdfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzEyOE0sIExBV19UUkdUX0lGX0REUiksCisJU0VUX0xBVyhDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8xMjhNLCBMQVdfVFJHVF9JRl9ERFIpLAogI2VuZGlmCi0JU0VUX0xBVyhDRkdfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSTJfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8yKSwKLQlTRVRfTEFXKENGR19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSTJfSU9fUEhZUywgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMl9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJXzEpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJXzIpLAogCS8qIE1hcCB0aGUgd2hvbGUgbG9jYWxidXMsIGluY2x1ZGluZyBmbGFzaCBhbmQgcmVzZXQgbGF0Y2guICovCi0JU0VUX0xBVyhDRkdfTEJDX09QVElPTl9CQVNFLCBMQVdBUl9TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCisJU0VUX0xBVyhDT05GSUdfU1lTX0xCQ19PUFRJT05fQkFTRSwgTEFXQVJfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAogfTsKIAogaW50IG51bV9sYXdfZW50cmllcyA9IEFSUkFZX1NJWkUobGF3X3RhYmxlKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3N0eHNzYS9zdHhzc2EuYyBiL2JvYXJkL3N0eHNzYS9zdHhzc2EuYwppbmRleCA0ZDRkYzA2Li43M2RkZGYzIDEwMDY0NAotLS0gYS9ib2FyZC9zdHhzc2Evc3R4c3NhLmMKKysrIGIvYm9hcmQvc3R4c3NhL3N0eHNzYS5jCkBAIC0yMDcsNyArMjA3LDcgQEAKICNpZiAwCiAJaW50CWk7CiAjZW5kaWYKLQlibGF0Y2ggPSAodm9sYXRpbGUgdWludCAqKUNGR19MQkNfQ0ZHTEFUQ0hfQkFTRTsKKwlibGF0Y2ggPSAodm9sYXRpbGUgdWludCAqKUNPTkZJR19TWVNfTEJDX0NGR0xBVENIX0JBU0U7CiAKIAkvKiByZXNldCBHaWdhIGJpdCBFdGhlcm5ldCBwb3J0IGlmIG5lZWRlZCBoZXJlICovCiAKQEAgLTI1Myw3ICsyNTMsNyBAQAogYm9hcmRfZWFybHlfaW5pdF9mKHZvaWQpCiB7CiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQotCXZvbGF0aWxlIGNjc3JfcGNpeF90ICpwY2kgPSAodm9pZCAqKShDRkdfTVBDODV4eF9QQ0lYX0FERFIpOworCXZvbGF0aWxlIGNjc3JfcGNpeF90ICpwY2kgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfUENJWF9BRERSKTsKIAogCXBjaS0+cGVlciAmPSAweGZmZmZmZmRmOyAvKiBkaXNhYmxlIG1hc3RlciBhYm9ydCAqLwogI2VuZGlmCkBAIC0yODQsNyArMjg0LDcgQEAKIAlpZiAobmV4dF9sZWRfdXBkYXRlID4gZ2V0X3RpY2tzKCkpCiAJCXJldHVybjsKIAotCWJsYXRjaCA9ICh2b2xhdGlsZSB1aW50ICopQ0ZHX0xCQ19DRkdMQVRDSF9CQVNFOworCWJsYXRjaCA9ICh2b2xhdGlsZSB1aW50ICopQ09ORklHX1NZU19MQkNfQ0ZHTEFUQ0hfQkFTRTsKIAogCWxlZF9iaXQgPj49IDE7CiAJaWYgKGxlZF9iaXQgPT0gMCkKQEAgLTMwMSw3ICszMDEsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfRERSX0RMTCkKIAl7Ci0JCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7CisJCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCQl1aW50IHRlbXBfZGRyZGxsID0gMDsKIAogCQkvKiBXb3JrIGFyb3VuZCB0byBzdGFiaWxpemUgRERSIERMTCAqLwpAQCAtMzI1LDExICszMjUsMTEgQEAKIH0KIAogCi0jaWYgZGVmaW5lZChDRkdfRFJBTV9URVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19EUkFNX1RFU1QpCiBpbnQgdGVzdGRyYW0gKHZvaWQpCiB7Ci0JdWludCAqcHN0YXJ0ID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7Ci0JdWludCAqcGVuZCA9ICh1aW50ICopIENGR19NRU1URVNUX0VORDsKKwl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CisJdWludCAqcGVuZCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9FTkQ7CiAJdWludCAqcDsKIAogCXByaW50ZigiU0RSQU0gdGVzdCBwaGFzZSAxOlxuIik7CmRpZmYgLS1naXQgYS9ib2FyZC9zdHhzc2EvdGxiLmMgYi9ib2FyZC9zdHhzc2EvdGxiLmMKaW5kZXggODZjYmQxMS4uMDM4NjQzMiAxMDA2NDQKLS0tIGEvYm9hcmQvc3R4c3NhL3RsYi5jCisrKyBiL2JvYXJkL3N0eHNzYS90bGIuYwpAQCAtMjgsMTYgKzI4LDE2IEBACiAKIHN0cnVjdCBmc2xfZV90bGJfZW50cnkgdGxiX3RhYmxlW10gPSB7CiAJLyogVExCIDAgLSBmb3IgdGVtcCBzdGFjayBpbiBjYWNoZSAqLwotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIsIENGR19JTklUX1JBTV9BRERSLAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKIApAQCAtNDYsNyArNDYsNyBAQAogCSAqIDB4ZmMwMDAwMDAJNk00CUZMQVNICiAJICogT3V0IG9mIHJlc2V0IHRoaXMgZW50cnkgaXMgb25seSA0Sy4KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTU0LDcgKzU0LDcgQEAKIAkgKiBUTEIgMToJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg4MDAwMDAwMAkyNTZNCVBDSTEgTUVNIEZpcnN0IGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTLCBDRkdfUENJMV9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMSwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC02Miw3ICs2Miw3IEBACiAJICogVExCIDI6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4OTAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBTZWNvbmQgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDRkdfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC03MCw3ICs3MCw3IEBACiAJICogVExCIDM6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4YTAwMDAwMDAJMjU2TQlQQ0kyIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMl9NRU1fUEhZUywgQ0ZHX1BDSTJfTUVNX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDMsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNzgsNyArNzgsNyBAQAogCSAqIFRMQiA0OgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGIwMDAwMDAwCTI1Nk0JUENJMiBNRU0gU2Vjb25kIGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kyX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ0ZHX1BDSTJfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDQsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtODgsNyArODgsNyBAQAogCSAqIDB4ZTIwMF8wMDAwCTE2TQlQQ0kxIElPCiAJICogMHhlMzAwXzAwMDAJMTZNCVBDSTIgSU8KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC05OCw3ICs5OCw3IEBACiAJICogMHhmYjAwMDAwMAkJQ29uZmlndXJhdGlvbiBMYXRjaCByZWdpc3RlciAob25lIHdvcmQpCiAJICogMHhmYzAwMDAwMAkJVXAgdG8gNjRNIGZsYXNoCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfTEJDX09QVElPTl9CQVNFLCBDRkdfTEJDX09QVElPTl9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19MQkNfT1BUSU9OX0JBU0UsIENPTkZJR19TWVNfTEJDX09QVElPTl9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogfTsKZGlmZiAtLWdpdCBhL2JvYXJkL3N0eHh0Yy9zdHh4dGMuYyBiL2JvYXJkL3N0eHh0Yy9zdHh4dGMuYwppbmRleCA0YmIyZDY4Li5hMWEzNmM0IDEwMDY0NAotLS0gYS9ib2FyZC9zdHh4dGMvc3R4eHRjLmMKKysrIGIvYm9hcmQvc3R4eHRjL3N0eHh0Yy5jCkBAIC0zNDksNyArMzQ5LDcgQEAKICNkZWZpbmUgTUFSX1NEUkFNX0lOSVQJCSgoQ0FTX0xBVEVOQ1kgPDwgNikgfCAweDAwMDAwMDA4TFUpCiAKIC8qIDkgKi8KLSNkZWZpbmUgQ0ZHX01BTVIJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUgkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApAQCAtNDAxLDcgKzQwMSw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemU7CiAJdTMyIGQxLCBkMjsKQEAgLTQxOCwxMCArNDE4LDEwIEBACiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDMgdG8gdGhlIFNEUkFNIGJhbmsgYXQgcHJlbGltaW5hcnkgYWRkcmVzcy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3I0ID0gQ0ZHX09SNF9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyNCA9IENGR19CUjRfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjQgPSBDT05GSUdfU1lTX09SNF9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyNCA9IENPTkZJR19TWVNfQlI0X1BSRUxJTTsKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVIgJiB+TUFNUl9QVEFFOwkvKiBubyByZWZyZXNoIHlldCAqLworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SICYgfk1BTVJfUFRBRTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAogCXVkZWxheSgyMDApOwogCkBAIC01MjksNyArNTI5LDcgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZih2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgaW9wOHh4X3QgKmlvcG9ydCA9ICZpbW1hcC0+aW1faW9wb3J0OwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcG0gPSAmaW1tYXAtPmltX2NwbTsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CkBAIC01NzksMTMgKzU3OSwxMyBAQAogI2luY2x1ZGUgPGxpbnV4L210ZC9uYW5kX2xlZ2FjeS5oPgogCiBleHRlcm4gdWxvbmcgbmFuZF9wcm9iZSh1bG9uZyBwaHlzYWRyKTsKLWV4dGVybiBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ0ZHX01BWF9OQU5EX0RFVklDRV07CitleHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFXTsKIAogdm9pZCBuYW5kX2luaXQodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHRvdGxlbjsKIAotCXRvdGxlbiA9IG5hbmRfcHJvYmUoQ0ZHX05BTkRfQkFTRSk7CisJdG90bGVuID0gbmFuZF9wcm9iZShDT05GSUdfU1lTX05BTkRfQkFTRSk7CiAJcHJpbnRmICgiJTRsdSBNQlxuIiwgdG90bGVuID4+IDIwKTsKIH0KICNlbmRpZgpAQCAtNTk5LDcgKzU5OSw3IEBACiAKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQ09OU09MRV9JU19JTl9FTlYpICYmIGRlZmluZWQoQ0ZHX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORSkKIGludCBvdmVyd3JpdGVfY29uc29sZSh2b2lkKQogewogCS8qIHByaW50Zigib3ZlcndyaXRlX2NvbnNvbGUgY2FsbGVkXG4iKTsgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL3N2bV9zYzh4eC9mbGFzaC5jIGIvYm9hcmQvc3ZtX3NjOHh4L2ZsYXNoLmMKaW5kZXggMDBmZWQ1OS4uZGIxZjIxYSAxMDA2NDQKLS0tIGEvYm9hcmQvc3ZtX3NjOHh4L2ZsYXNoLmMKKysrIGIvYm9hcmQvc3ZtX3NjOHh4L2ZsYXNoLmMKQEAgLTI0LDEwICsyNCwxMCBAQAogI2luY2x1ZGUgPG1wYzh4eC5oPgogCiAjaWZuZGVmCUNPTkZJR19FTlZfQUREUgotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjZW5kaWYKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtNTQsNyArNTQsNyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjAsIHNpemVfYjE7CiAJaW50IGk7CkBAIC02MiwxNiArNjIsMTYgQEAKIAlzaXplX2IwPTA7CiAJc2l6ZV9iMT0wOwogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KLSNpZmRlZiBDRkdfRE9DX0JBU0UKKyNpZmRlZiBDT05GSUdfU1lTX0RPQ19CQVNFCiAjaWZuZGVmIENPTkZJR19GRUw4eHhfQVQKLQltZW1jdGwtPm1lbWNfb3I1ID0gKDB4ZmZmZjgwMDAgfCBDRkdfT1JfVElNSU5HX0RPQyApOyAvKiAzMmsgYnl0ZXMgKi8KLQltZW1jdGwtPm1lbWNfYnI1ID0gQ0ZHX0RPQ19CQVNFIHwgMHg0MDE7CisJbWVtY3RsLT5tZW1jX29yNSA9ICgweGZmZmY4MDAwIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRE9DICk7IC8qIDMyayBieXRlcyAqLworCW1lbWN0bC0+bWVtY19icjUgPSBDT05GSUdfU1lTX0RPQ19CQVNFIHwgMHg0MDE7CiAjZWxzZQotCW1lbWN0bC0+bWVtY19vcjMgPSAoMHhmZmZmODAwMCB8IENGR19PUl9USU1JTkdfRE9DICk7IC8qIDMyayBieXRlcyAqLwotCW1lbWN0bC0+bWVtY19icjMgPSBDRkdfRE9DX0JBU0UgfCAweDQwMTsKKwltZW1jdGwtPm1lbWNfb3IzID0gKDB4ZmZmZjgwMDAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19ET0MgKTsgLyogMzJrIGJ5dGVzICovCisJbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfRE9DX0JBU0UgfCAweDQwMTsKICNlbmRpZgogI2VuZGlmCiAjaWYgZGVmaW5lZCggQ09ORklHX0JPT1RfOEIpCkBAIC0xMzYsMTkgKzEzNiwxOSBAQAogCX0KIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIE9SX0FNX01TSyk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiBPUl9BTV9NU0spOworCW1lbWN0bC0+bWVtY19icjAgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOwogCiAJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0xNjEsMjEgKzE2MSwyMSBAQAogI2VuZGlmCiAKIAlpZiAoc2l6ZV9iMSkgewotCQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMSAmIDB4RkZGRjgwMDApOwotCQltZW1jdGwtPm1lbWNfYnIxID0gKChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApICYgQlJfQkFfTVNLKSB8CisJCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMSAmIDB4RkZGRjgwMDApOworCQltZW1jdGwtPm1lbWNfYnIxID0gKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSAmIEJSX0JBX01TSykgfAogCQkJCSAgICBCUl9NU19HUENNIHwgQlJfVjsKIAogCQkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0JCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKShDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApLAorCQlzaXplX2IxID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCksCiAJCQkJCSAgJmZsYXNoX2luZm9bMV0pOwogCi0JCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKKwkJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJCSAgICAgICZmbGFzaF9pbmZvWzFdKTsKICNlbmRpZgogCkBAIC01NjEsNyArNTYxLDcgQEAKICMgZXJyb3IgQ09ORklHX0JPT1RfKHNpemUpQiBtaXNzaW5nLgogI2VuZGlmCiAJewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtNzEwLDcgKzcxMCw3IEBACiAJICBzdGFydCA9IGdldF90aW1lciAoMCk7CiAJbGFzdCAgPSBzdGFydDsKIAkgIHdoaWxlKCAgKCBteV9pbl84KCh1bnNpZ25lZCBjaGFyICopIChkZXN0K2kpKSApICE9ICggZGF0YV9jaFtpXSAgKSApIHsKLQkJICBpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUICkgeworCQkgIGlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICkgewogCQkJICByZXR1cm4gMTsKIAkJICB9CiAJICB9CkBAIC03MzAsNyArNzMwLDcgQEAKIAkgIHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAlsYXN0ICA9IHN0YXJ0OwogCSAgd2hpbGUoICAoIG15X2luX2JlMTYoKHVuc2lnbmVkIHNob3J0ICopIChkZXN0KyhpKjIpKSkgKSAhPSAoIGRhdGFfc2hvcnRbaV0gICkgKSB7Ci0JCSAgaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCApIHsKKwkJICBpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCApIHsKIAkJCSAgcmV0dXJuIDE7CiAJCSAgfQogCSAgfQpAQCAtNzQ5LDcgKzc0OSw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIDB4MDA4MDAwODApICE9IChkYXRhICYgMHgwMDgwMDA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3N2bV9zYzh4eC9zdm1fc2M4eHguYyBiL2JvYXJkL3N2bV9zYzh4eC9zdm1fc2M4eHguYwppbmRleCA0OGUwNWI4Li40MzkwZTQ5IDEwMDY0NAotLS0gYS9ib2FyZC9zdm1fc2M4eHgvc3ZtX3NjOHh4LmMKKysrIGIvYm9hcmQvc3ZtX3NjOHh4L3N2bV9zYzh4eC5jCkBAIC0xMDIsMTUgKzEwMiwxNSBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplX2IwID0gMDsKIAogCXVwbWNvbmZpZyhVUE1BLCAodWludCAqKXNkcmFtX3RhYmxlLCBzaXplb2Yoc2RyYW1fdGFibGUpL3NpemVvZih1aW50KSk7CiAKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKICNpZiBkZWZpbmVkIChDT05GSUdfU0RSQU1fMTZNKQotCW1lbWN0bC0+bWVtY19tYW1yID0gMHgwMDgwMjExNCB8IENGR19NeE1SX1BUeDsKKwltZW1jdGwtPm1lbWNfbWFtciA9IDB4MDA4MDIxMTQgfCBDT05GSUdfU1lTX014TVJfUFR4OwogCW1lbWN0bC0+bWVtY19tY3IgID0gMHg4MDAwMjEwNTsgICAgIC8qIFNEUkFNIGJhbmsgMCAqLwogCXVkZWxheSgxKTsKIAltZW1jdGwtPm1lbWNfbWNyICA9IDB4ODAwMDI4MzA7CkBAIC0xMjIsNyArMTIyLDcgQEAKIAltZW1jdGwtPm1lbWNfb3IxID0gIDB4ZmYwMDBhMDA7CiAJc2l6ZV9iMCA9IDB4MDEwMDAwMDA7CiAjZWxpZiBkZWZpbmVkIChDT05GSUdfU0RSQU1fMzJNKQotCW1lbWN0bC0+bWVtY19tYW1yID0gMHgwMDkwNDExNCB8IENGR19NeE1SX1BUeDsKKwltZW1jdGwtPm1lbWNfbWFtciA9IDB4MDA5MDQxMTQgfCBDT05GSUdfU1lTX014TVJfUFR4OwogCW1lbWN0bC0+bWVtY19tY3IgID0gMHg4MDAwMjEwNTsgICAgIC8qIFNEUkFNIGJhbmsgMCAqLwogCXVkZWxheSgxKTsKIAltZW1jdGwtPm1lbWNfbWNyICA9IDB4ODAwMDI4MzA7CkBAIC0xMzQsNyArMTM0LDcgQEAKIAltZW1jdGwtPm1lbWNfb3IxID0gIDB4ZmUwMDBhMDA7CiAJc2l6ZV9iMCA9IDB4MDIwMDAwMDA7CiAjZWxpZiBkZWZpbmVkIChDT05GSUdfU0RSQU1fNjRNKQotCW1lbWN0bC0+bWVtY19tYW1yID0gMHgwMGEwNDExNCB8IENGR19NeE1SX1BUeDsKKwltZW1jdGwtPm1lbWNfbWFtciA9IDB4MDBhMDQxMTQgfCBDT05GSUdfU1lTX014TVJfUFR4OwogCW1lbWN0bC0+bWVtY19tY3IgID0gMHg4MDAwMjEwNTsgICAgIC8qIFNEUkFNIGJhbmsgMCAqLwogCXVkZWxheSgxKTsKIAltZW1jdGwtPm1lbWNfbWNyICA9IDB4ODAwMDI4MzA7CkBAIC0xNTYsNiArMTU2LDYgQEAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfRE9DKQogdm9pZCBkb2NfaW5pdCAodm9pZCkKIHsKLQkgICAgICAgIGRvY19wcm9iZSAoQ0ZHX0RPQ19CQVNFKTsKKwkgICAgICAgIGRvY19wcm9iZSAoQ09ORklHX1NZU19ET0NfQkFTRSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL3RiMDIyOS9mbGFzaC5jIGIvYm9hcmQvdGIwMjI5L2ZsYXNoLmMKaW5kZXggZTlmNjQxOC4uOTMzZDVlYyAxMDA2NDQKLS0tIGEvYm9hcmQvdGIwMjI5L2ZsYXNoLmMKKysrIGIvYm9hcmQvdGIwMjI5L2ZsYXNoLmMKQEAgLTI3LDEwICsyNywxMCBAQAogI2luY2x1ZGUgPHBwYzR4eC5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAgICAgKi8KIAogCi0jaWZkZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogI2RlZmluZSBGTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQKICNkZWZpbmUJRkxBU0hfSURfTUFTSwkweEZGRkYKICNlbHNlCkBAIC00NCw3ICs0NCw3IEBACiAvKiBzdG9sZW4gZnJvbSBlc3RlZW0xOTJlL2ZsYXNoLmMgKi8KIHVsb25nIGZsYXNoX2dldF9zaXplICh2b2xhdGlsZSBGTEFTSF9XT1JEX1NJWkUgKiBhZGRyLCBmbGFzaF9pbmZvX3QgKiBpbmZvKTsKIAotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogc3RhdGljIGludCB3cml0ZV93b3JkIChmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKTsKICNlbHNlCiBzdGF0aWMgaW50IHdyaXRlX3Nob3J0IChmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1c2hvcnQgZGF0YSk7CkBAIC02MywxNCArNjMsMTQgQEAKIAl1bnNpZ25lZCBsb25nIGJhc2VfYjAsIGJhc2VfYjE7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAogCS8qIFN0YXRpYyBGTEFTSCBCYW5rIGNvbmZpZ3VyYXRpb24gaGVyZSAtIEZJWE1FIFhYWCAqLwogCiAJc2l6ZV9iMCA9Ci0JCWZsYXNoX2dldF9zaXplICgodm9sYXRpbGUgRkxBU0hfV09SRF9TSVpFICopIENGR19GTEFTSF9CQVNFLAorCQlmbGFzaF9nZXRfc2l6ZSAoKHZvbGF0aWxlIEZMQVNIX1dPUkRfU0laRSAqKSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCiAJCQkJJmZsYXNoX2luZm9bMF0pOwogCiAJaWYgKGZsYXNoX2luZm9bMF0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTikgewpAQCAtNzgsOSArNzgsOSBAQAogCX0KIAogCS8qIE9ubHkgb25lIGJhbmsgKi8KLQlpZiAoQ0ZHX01BWF9GTEFTSF9CQU5LUyA9PSAxKSB7CisJaWYgKENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID09IDEpIHsKIAkJLyogU2V0dXAgb2Zmc2V0cyAqLwotCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwkJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAjaWYgMAkJCQkvKiBzYW5kOiAqLwpAQCAtOTEsMTkgKzkxLDE5IEBACiAJCQkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2Vsc2UKIAkJKHZvaWQpIGZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLQorCQkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLQogCQkJCSAgICAgIDEsICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCQlzaXplX2IxID0gMDsKIAkJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZV9iMDsKIAl9Ci0jaWZkZWYgQ0ZHX0ZMQVNIX0JBU0VfMgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfQkFTRV8yCiAJLyogMiBiYW5rcyAqLwogCWVsc2UgewogCQlzaXplX2IxID0KIAkJCWZsYXNoX2dldF9zaXplICgodm9sYXRpbGUgRkxBU0hfV09SRF9TSVpFICopCi0JCQkJCUNGR19GTEFTSF9CQVNFXzIsICZmbGFzaF9pbmZvWzFdKTsKKwkJCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFXzIsICZmbGFzaF9pbmZvWzFdKTsKIAogCQkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCiAKQEAgLTE0NCw4ICsxNDQsOCBAQAogCQkJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbHNlCiAJCSh2b2lkKSBmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0KKwkJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0KIAkJCQkgICAgICAxLCAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMjAwLDcgKzIwMCw3IEBACiAJfSBlbHNlIGlmIChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX0JUWVBFKSB7CiAJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX0lOVEVMKSB7CiAKLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIAkJCS8qIHNldCBzZWN0b3Igb2Zmc2V0cyBmb3IgYm90dG9tIGJvb3QgYmxvY2sgdHlwZSAgICAgICAgKi8KIAkJCWluZm8tPnN0YXJ0WzBdID0gYmFzZSArIDB4MDAwMDAwMDA7CiAJCQlpbmZvLT5zdGFydFsxXSA9IGJhc2UgKyAweDAwMDA0MDAwOwpAQCAtMjU2LDcgKzI1Niw3IEBACiAJCWkgPSBpbmZvLT5zZWN0b3JfY291bnQgLSAxOwogCQlpZiAoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVkVORE1BU0spID09IEZMQVNIX01BTl9JTlRFTCkgewogCi0jaWZuZGVmIENGR19GTEFTSF8xNkJJVAorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAJCQlpbmZvLT5zdGFydFtpLS1dID0gYmFzZSArIGluZm8tPnNpemUgLSAweDAwMDA0MDAwOwogCQkJaW5mby0+c3RhcnRbaS0tXSA9IGJhc2UgKyBpbmZvLT5zaXplIC0gMHgwMDAwODAwMDsKIAkJCWluZm8tPnN0YXJ0W2ktLV0gPSBiYXNlICsgaW5mby0+c2l6ZSAtIDB4MDAwMEMwMDA7CkBAIC00NDgsNyArNDQ4LDcgQEAKIAkvKiBXcml0ZSBhdXRvIHNlbGVjdCBjb21tYW5kOiByZWFkIE1hbnVmYWN0dXJlciBJRCAqLwogCiAKLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIAogCS8qCiAJICogTm90ZTogaWYgaXQgaXMgYW4gQU1EIGZsYXNoIGFuZCB0aGUgd29yZCBhdCBhZGRyWzAwMDBdCkBAIC02OTksNyArNjk5LDcgQEAKIAkvKiBEaXNhYmxlIGludGVycnVwdHMgd2hpY2ggbWlnaHQgY2F1c2UgYSB0aW1lb3V0IGhlcmUgKi8KIAlmbGFnID0gZGlzYWJsZV9pbnRlcnJ1cHRzICgpOwogCWlmIChpbmZvLT5mbGFzaF9pZCA8IEZMQVNIX0FNRF9DT01QKSB7Ci0jaWZuZGVmIENGR19GTEFTSF8xNkJJVAorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAJCWFkZHJbMHgwNTU1XSA9IDB4MDBBQTAwQUE7CiAJCWFkZHJbMHgwMkFBXSA9IDB4MDA1NTAwNTU7CiAJCWFkZHJbMHgwNTU1XSA9IDB4MDA4MDAwODA7CkBAIC03NDEsNyArNzQxLDcgQEAKIAkJYWRkciA9ICh2b2xhdGlsZSBGTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogCQl3aGlsZSAoKGFkZHJbMF0gJiAoMHgwMDgwMDA4MCAmIEZMQVNIX0lEX01BU0spKSAhPQogCQkgICAgICAgKDB4MDA4MDAwODAgJiBGTEFTSF9JRF9NQVNLKSkgewotCQkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQlyZXR1cm4gMTsKIAkJCX0KQEAgLTc2Miw3ICs3NjIsNyBAQAogCQlmb3IgKHNlY3QgPSBzX2ZpcnN0OyBzZWN0IDw9IHNfbGFzdDsgc2VjdCsrKSB7CiAJCQlpZiAoaW5mby0+cHJvdGVjdFtzZWN0XSA9PSAwKSB7CS8qIG5vdCBwcm90ZWN0ZWQgKi8KIAkJCQliYXJmID0gMDsKLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIAkJCQlhZGRyID0gKHZ1X2xvbmcgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAkJCQlhZGRyWzBdID0gMHgwMDUwMDA1MDsKIAkJCQlhZGRyWzBdID0gMHgwMDIwMDAyMDsKQEAgLTgwMSw3ICs4MDEsNyBAQAogCQkJCWxfc2VjdCA9IHNlY3Q7CiAJCQl9CiAJCQlhZGRyID0gKHZvbGF0aWxlIEZMQVNIX1dPUkRfU0laRSAqKSBpbmZvLT5zdGFydFswXTsKLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIAkJCWFkZHJbMF0gPSAoMHgwMEZGMDBGRiAmIEZMQVNIX0lEX01BU0spOwkvKiByZXNldCBiYW5rICovCiAjZWxzZQogCQkJYWRkclswXSA9ICgweDAwRkYgJiBGTEFTSF9JRF9NQVNLKTsJLyogcmVzZXQgYmFuayAqLwpAQCAtODIxLDcgKzgyMSw3IEBACiAJZmxhc2hfaW5mb190ICppbmZvOwogCWludCBpOwogCi0JZm9yIChpPTAsIGluZm89JmZsYXNoX2luZm9bMF07IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpLCArK2luZm8pIHsKKwlmb3IgKGk9MCwgaW5mbz0mZmxhc2hfaW5mb1swXTsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpLCArK2luZm8pIHsKIAkJaWYgKChhZGRyID49IGluZm8tPnN0YXJ0WzBdKSAmJgogCQkgICAgKGFkZHIgPCAoaW5mby0+c3RhcnRbMF0gKyBpbmZvLT5zaXplKSkgKSB7CiAJCQlyZXR1cm4gKGluZm8pOwpAQCAtODk4LDcgKzg5OCw3IEBACiAKIGludCB3cml0ZV9idWZmIChmbGFzaF9pbmZvX3QgKiBpbmZvLCB1Y2hhciAqIHNyYywgdWxvbmcgYWRkciwgdWxvbmcgY250KQogewotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCXVsb25nIGNwLCB3cCwgZGF0YTsKIAlpbnQgbDsKICNlbHNlCkBAIC05MDcsNyArOTA3LDcgQEAKICNlbmRpZgogCWludCBpLCByYzsKIAotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCiAKIAl3cCA9IChhZGRyICYgfjMpOwkvKiBnZXQgbG93ZXIgd29yZCBhbGlnbmVkIGFkZHJlc3MgKi8KQEAgLTEwMzQsNyArMTAzNCw3IEBACiAgKiAxIC0gd3JpdGUgdGltZW91dAogICogMiAtIEZsYXNoIG5vdCBlcmFzZWQKICAqLwotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogc3RhdGljIGludCB3cml0ZV93b3JkIChmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKQogewogCXZ1X2xvbmcgKmFkZHIgPSAodnVfbG9uZyAqKSAoaW5mby0+c3RhcnRbMF0pOwpAQCAtMTA3Niw3ICsxMDc2LDcgQEAKIAogCQl3aGlsZSAoKCooKHZ1X2xvbmcgKikgZGVzdCkgJiAweDAwODAwMDgwKSAhPQogCQkgICAgICAgKGRhdGEgJiAweDAwODAwMDgwKSkgewotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXByaW50ZiAoInRpbWVvdXRcbiIpOwogCQkJCXJldHVybiAoMSk7CiAJCQl9CkBAIC0xMDg1LDcgKzEwODUsNyBAQAogCX0gZWxzZSB7CiAKIAkJd2hpbGUgKCEoYWRkclswXSAmIDB4MDA4MDAwODApKSB7CS8qIHdhaXQgZm9yIGVycm9yIG9yIGZpbmlzaCAqLwotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXByaW50ZiAoInRpbWVvdXRcbiIpOwogCQkJCXJldHVybiAoMSk7CiAJCQl9CkBAIC0xMTU3LDcgKzExNTcsNyBAQAogCWlmIChpbmZvLT5mbGFzaF9pZCA8IEZMQVNIX0FNRF9DT01QKSB7CiAJCS8qIEFNRCBzdHVmZiAqLwogCQl3aGlsZSAoKCooKHZ1X3Nob3J0ICopIGRlc3QpICYgMHgwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MCkpIHsKLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gKDEpOwogCQkJfQogCQl9CkBAIC0xMTY1LDcgKzExNjUsNyBAQAogCX0gZWxzZSB7CiAJCS8qIGludGVsIHN0dWZmICovCiAJCXdoaWxlICghKGFkZHJbMF0gJiAweDAwODApKSB7CS8qIHdhaXQgZm9yIGVycm9yIG9yIGZpbmlzaCAqLwotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpCisJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpCiAJCQkJcmV0dXJuICgxKTsKIAkJfQogCkBAIC0xMTg0LDcgKzExODQsNyBAQAogCQkqYWRkciA9IDB4MDBCMDsKIAkJKmFkZHIgPSAweDAwNzA7CiAJCXdoaWxlICghKGFkZHJbMF0gJiAweDAwODApKSB7CS8qIHdhaXQgZm9yIGVycm9yIG9yIGZpbmlzaCAqLwotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpCisJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpCiAJCQkJcmV0dXJuICgxKTsKIAkJfQogCmRpZmYgLS1naXQgYS9ib2FyZC90YjAyMjkvdGIwMjI5LmMgYi9ib2FyZC90YjAyMjkvdGIwMjI5LmMKaW5kZXggMmFiYjRhNy4uZDNmMDViMiAxMDA2NDQKLS0tIGEvYm9hcmQvdGIwMjI5L3RiMDIyOS5jCisrKyBiL2JvYXJkL3RiMDIyOS90YjAyMjkuYwpAQCAtMzQsNyArMzQsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbShpbnQgYm9hcmRfdHlwZSkKIHsKLQlyZXR1cm4gZ2V0X3JhbV9zaXplIChDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwKTsKKwlyZXR1cm4gZ2V0X3JhbV9zaXplIChDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMCk7CiB9CiAKIGludCBjaGVja2JvYXJkICh2b2lkKQpkaWZmIC0tZ2l0IGEvYm9hcmQvdG90YWw1MjAwL3NkcmFtLmMgYi9ib2FyZC90b3RhbDUyMDAvc2RyYW0uYwppbmRleCBhMTYwMWYyLi5kYzRjNmYxIDEwMDY0NAotLS0gYS9ib2FyZC90b3RhbDUyMDAvc2RyYW0uYworKysgYi9ib2FyZC90b3RhbDUyMDAvc2RyYW0uYwpAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAic2RyYW0uaCIKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIHN0YXRpYyB2b2lkIG1wYzV4eHhfc2RyYW1fc3RhcnQgKHNkcmFtX2NvbmZfdCAqc2RyYW1fY29uZiwgaW50IGhpX2FkZHIpCiB7CiAJbG9uZyBoaV9hZGRyX2JpdCA9IGhpX2FkZHIgPyAweDAxMDAwMDAwIDogMDsKQEAgLTcyLDcgKzcyLDcgQEAKIAogLyoKICAqIEFUVEVOVElPTjogQWx0aG91Z2ggcGFydGlhbGx5IHJlZmVyZW5jZWQgaW5pdGRyYW0gZG9lcyBOT1QgbWFrZSByZWFsIHVzZQotICogICAgICAgICAgICB1c2Ugb2YgQ0ZHX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ0ZHX1NEUkFNX0JBU0UKKyAqICAgICAgICAgICAgdXNlIG9mIENPTkZJR19TWVNfU0RSQU1fQkFTRS4gVGhlIGNvZGUgZG9lcyBub3Qgd29yayBpZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UKICAqICAgICAgICAgICAgaXMgc29tZXRoaW5nIGVsc2UgdGhhbiAweDAwMDAwMDAwLgogICovCiAKQEAgLTgxLDcgKzgxLDcgQEAKIHsKIAl1bG9uZyBkcmFtc2l6ZSA9IDA7CiAJdWxvbmcgZHJhbXNpemUyID0gMDsKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgdGVzdDEsIHRlc3QyOwogCiAJLyogc2V0dXAgU0RSQU0gY2hpcCBzZWxlY3RzICovCkBAIC0xMDIsOSArMTAyLDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MwIG9ubHkgKi8KIAltcGM1eHh4X3NkcmFtX3N0YXJ0KHNkcmFtX2NvbmYsIDApOwotCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAltcGM1eHh4X3NkcmFtX3N0YXJ0KHNkcmFtX2NvbmYsIDEpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQltcGM1eHh4X3NkcmFtX3N0YXJ0KHNkcmFtX2NvbmYsIDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMTI5LDkgKzEyOSw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMSBvbmx5ICovCiAJbXBjNXh4eF9zZHJhbV9zdGFydChzZHJhbV9jb25mLCAwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKIAltcGM1eHh4X3NkcmFtX3N0YXJ0KHNkcmFtX2NvbmYsIDEpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopKENGR19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKKwl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCW1wYzV4eHhfc2RyYW1fc3RhcnQoc2RyYW1fY29uZiwgMCk7CiAJCWRyYW1zaXplMiA9IHRlc3QxOwpAQCAtMTUyLDcgKzE1Miw3IEBACiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MxQ0ZHID0gZHJhbXNpemU7IC8qIGRpc2FibGVkICovCiAJfQogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiByZXRyaWV2ZSBzaXplIG9mIG1lbW9yeSBjb25uZWN0ZWQgdG8gU0RSQU0gQ1MwICovCiAJZHJhbXNpemUgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyAmIDB4RkY7CkBAIC0xNzAsNyArMTcwLDcgQEAKIAkJZHJhbXNpemUyID0gMDsKIAl9CiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJcmV0dXJuIGRyYW1zaXplICsgZHJhbXNpemUyOwogfQpAQCAtMTgwLDcgKzE4MCw3IEBACiBsb25nIGludCBtcGM1eHh4X3NkcmFtX2luaXQgKHNkcmFtX2NvbmZfdCAqc2RyYW1fY29uZikKIHsKIAl1bG9uZyBkcmFtc2l6ZSA9IDA7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHRlc3QxLCB0ZXN0MjsKIAogCS8qIHNldHVwIGFuZCBlbmFibGUgU0RSQU0gY2hpcCBzZWxlY3RzICovCkBAIC0xOTksOSArMTk5LDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgKi8KIAltcGM1eHh4X3NkcmFtX3N0YXJ0KHNkcmFtX2NvbmYsIDApOwotCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAltcGM1eHh4X3NkcmFtX3N0YXJ0KHNkcmFtX2NvbmYsIDEpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQltcGM1eHh4X3NkcmFtX3N0YXJ0KHNkcmFtX2NvbmYsIDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMjEyLDEyICsyMTIsMTIgQEAKIAkvKiBzZXQgU0RSQU0gZW5kIGFkZHJlc3MgYWNjb3JkaW5nIHRvIHNpemUgKi8KIAkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX1NUT1AgPSAoKGRyYW1zaXplIC0gMSkgPj4gMTUpOwogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiBSZXRyaWV2ZSBhbW91bnQgb2YgU0RSQU0gYXZhaWxhYmxlICovCiAJZHJhbXNpemUgPSAoKCoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fU1RPUCArIDEpIDw8IDE1KTsKIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAlyZXR1cm4gZHJhbXNpemU7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC90b3RhbDUyMDAvdG90YWw1MjAwLmMgYi9ib2FyZC90b3RhbDUyMDAvdG90YWw1MjAwLmMKaW5kZXggZWMwMGE2Ny4uYzUyNGQ2MyAxMDA2NDQKLS0tIGEvYm9hcmQvdG90YWw1MjAwL3RvdGFsNTIwMC5jCisrKyBiL2JvYXJkL3RvdGFsNTIwMC90b3RhbDUyMDAuYwpAQCAtNzEsMTUgKzcxLDE1IEBACiAJLyoKIAkgKiBSZXRyaWV2ZSBGUEdBIFJldmlzaW9uLgogCSAqLwotCXByaW50ZiAoIihGUEdBICUwOGxYKVxuIiwgKih2dV9sb25nICopIChDRkdfRlBHQV9CQVNFICsgMHg0MDApKTsKKwlwcmludGYgKCIoRlBHQSAlMDhsWClcbiIsICoodnVfbG9uZyAqKSAoQ09ORklHX1NZU19GUEdBX0JBU0UgKyAweDQwMCkpOwogCiAJLyoKIAkgKiBUYWtlIGFsbCBwZXJpcGhlcmFscyBpbiBwb3dlci11cCBtb2RlLgogCSAqLwogI2lmIENPTkZJR19UT1RBTDUyMDBfUkVWPT0yCi0JKih2dV9jaGFyICopIChDRkdfQ1BMRF9CQVNFICsgMHg0NikgPSAweDcwOworCSoodnVfY2hhciAqKSAoQ09ORklHX1NZU19DUExEX0JBU0UgKyAweDQ2KSA9IDB4NzA7CiAjZWxzZQotCSoodnVfbG9uZyAqKSAoQ0ZHX0NQTERfQkFTRSArIDB4NDAwKSA9IDB4NzA7CisJKih2dV9sb25nICopIChDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4NDAwKSA9IDB4NzA7CiAjZW5kaWYKIAogCXJldHVybiAwOwpAQCAtMjg0LDcgKzI4NCw3IEBACiAvKiBSZXR1cm5zICBTRUQxMzgwNiBiYXNlIGFkZHJlc3MuIEZpcnN0IHRoaW5nIGNhbGxlZCBpbiB0aGUgZHJpdmVyLiAqLwogdW5zaWduZWQgaW50IGJvYXJkX3ZpZGVvX2luaXQgKHZvaWQpCiB7Ci0JcmV0dXJuIENGR19MQ0RfQkFTRTsKKwlyZXR1cm4gQ09ORklHX1NZU19MQ0RfQkFTRTsKIH0KIAogLyogQ2FsbGVkIGFmdGVyIGluaXRpYWxpemluZyB0aGUgU0VEMTM4MDYgYW5kIGJlZm9yZSBjbGVhcmluZyB0aGUgc2NyZWVuLiAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvdHFjL3RxbTUyMDAvY2FtNTIwMF9mbGFzaC5jIGIvYm9hcmQvdHFjL3RxbTUyMDAvY2FtNTIwMF9mbGFzaC5jCmluZGV4IDRmYzRkYzYuLjEyNGI0N2QgMTAwNjQ0Ci0tLSBhL2JvYXJkL3RxYy90cW01MjAwL2NhbTUyMDBfZmxhc2guYworKysgYi9ib2FyZC90cWMvdHFtNTIwMC9jYW01MjAwX2ZsYXNoLmMKQEAgLTM1LDcgKzM1LDcgQEAKIAogI2RlZmluZSBzd2FwMTYoeCkgX19zd2FiMTYoeCkKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKIC8qCiAgKiBDQU01MjAwIGlzIGEgVFFNNTIwMEIgYmFzZWQgYm9hcmQuIEFkZGl0aW9uYWxseSBpdCBhbHNvIGZlYXR1cmVzCkBAIC01MSwxNSArNTEsMTUgQEAKICAqIDE2IGJpdCBmbGFzaCBiYW5rIGFuZCB0d28gc2V0cyBvZiByb3V0aW5lcyAqXzMyIGFuZCAqXzE2IHRvIGhhbmRsZQogICogc3BlY2lmaWNzIG9mIGJvdGggZmxhc2hlcy4KICAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgZmxhc2hfYWRkcl90YWJsZVtdW0NGR19NQVhfRkxBU0hfQkFOS1NdID0gewotCXtDRkdfQk9PVENTX1NUQVJULCBDRkdfQ1M1X1NUQVJUIHwgMX0KK3N0YXRpYyB1bnNpZ25lZCBsb25nIGZsYXNoX2FkZHJfdGFibGVbXVtDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU10gPSB7CisJe0NPTkZJR19TWVNfQk9PVENTX1NUQVJULCBDT05GSUdfU1lTX0NTNV9TVEFSVCB8IDF9CiB9OwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKICAqLwogc3RhdGljIGludCB3cml0ZV93b3JkKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpOwotI2lmZGVmIENGR19GTEFTSF8yTkRfMTZCSVRfREVWCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF8yTkRfMTZCSVRfREVWCiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfMzIoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSk7CiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfMTYoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSk7CiBzdGF0aWMgaW50IGZsYXNoX2VyYXNlXzMyKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KTsKQEAgLTE0NSw3ICsxNDUsNyBAQAogLyoKICAqIFRoZSBmb2xsb3dpbmcgY29kZSBjYW5ub3QgYmUgcnVuIGZyb20gRkxBU0ghCiAgKi8KLSNpZmRlZiBDRkdfRkxBU0hfMk5EXzE2QklUX0RFVgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFVgogc3RhdGljIHVsb25nIGZsYXNoX2dldF9zaXplKHZ1X2xvbmcgKiBhZGRyLCBmbGFzaF9pbmZvX3QgKiBpbmZvKQogewogCkBAIC0xNjQsMjMgKzE2NCwyMyBAQAogI2VuZGlmCiB7CiAJc2hvcnQgaTsKLQlDRkdfRkxBU0hfV09SRF9TSVpFIHZhbHVlOworCUNPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFIHZhbHVlOwogCXVsb25nIGJhc2UgPSAodWxvbmcpIGFkZHI7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBhZGRyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBhZGRyOwogCiAJREVCVUdGKCJnZXRfc2l6ZTMyOiBGTEFTSCBBRERSOiAlMDh4XG4iLCAodW5zaWduZWQpYWRkcik7CiAKIAkvKiBXcml0ZSBhdXRvIHNlbGVjdCBjb21tYW5kOiByZWFkIE1hbnVmYWN0dXJlciBJRCAqLwotCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwOTAwMDkwOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwOTAwMDkwOwogCXVkZWxheSgxMDAwKTsKIAogCXZhbHVlID0gYWRkcjJbMF07CiAJREVCVUdGKCJGTEFTSCBNQU5VRkFDVDogJXhcbiIsIHZhbHVlKTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgogCQkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fQU1EOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CkBAIC0yMjgsMTMgKzIyOCwxMyBAQAogCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5zZWN0b3JfY291bnQ7IGkrKykgewogCQkvKiByZWFkIHNlY3RvciBwcm90ZWN0aW9uIGF0IHNlY3RvciBhZGRyZXNzLCAoQTcgLi4gQTApID0gMHgwMiAqLwogCQkvKiBEMCA9IDEgaWYgcHJvdGVjdGVkICovCi0JCWFkZHIyID0gKHZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOworCQlhZGRyMiA9ICh2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CiAKIAkJaW5mby0+cHJvdGVjdFtpXSA9IGFkZHIyWzJdICYgMTsKIAl9CiAKIAkvKiBpc3N1ZSBiYW5rIHJlc2V0IHRvIHJldHVybiB0byByZWFkIG1vZGUgKi8KLQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOworCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwogCiAJcmV0dXJuIChpbmZvLT5zaXplKTsKIH0KQEAgLTI0MiwxNCArMjQyLDE0IEBACiBzdGF0aWMgaW50IHdhaXRfZm9yX0RRN18zMihmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc2VjdCkKIHsKIAl1bG9uZyBzdGFydCwgbm93LCBsYXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPQotCQkoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0KKwkJKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAKIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAlsYXN0ID0gc3RhcnQ7Ci0Jd2hpbGUgKChhZGRyWzBdICYgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9Ci0JCQkoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwl3aGlsZSAoKGFkZHJbMF0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9CisJCQkoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAtMTsKIAkJfQpAQCAtMjYyLDcgKzI2Miw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfMk5EXzE2QklUX0RFVgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFVgogaW50IGZsYXNoX2VyYXNlKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KQogewogCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9UWVBFTUFTSykgPT0gRkxBU0hfQU0zMjBCKSB7CkBAIC0yNzcsOCArMjc3LDggQEAKIGludCBmbGFzaF9lcmFzZShmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc19maXJzdCwgaW50IHNfbGFzdCkKICNlbmRpZgogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOwogCWludCBmbGFnLCBwcm90LCBzZWN0LCBsX3NlY3Q7CiAKIAlpZiAoKHNfZmlyc3QgPCAwKSB8fCAoc19maXJzdCA+IHNfbGFzdCkpIHsKQEAgLTMxMywxNCArMzEzLDE0IEBACiAJLyogU3RhcnQgZXJhc2Ugb24gdW5wcm90ZWN0ZWQgc2VjdG9ycyAqLwogCWZvciAoc2VjdCA9IHNfZmlyc3Q7IHNlY3QgPD0gc19sYXN0OyBzZWN0KyspIHsKIAkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCi0JCQlhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJCQlhZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOwogCi0JCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7Ci0JCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDMwMDAzMDsJLyogc2VjdG9yIGVyYXNlICovCisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7CisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwMzAwMDMwOwkvKiBzZWN0b3IgZXJhc2UgKi8KIAogCQkJbF9zZWN0ID0gc2VjdDsKIAkJCS8qCkBAIC0zNDIsOCArMzQyLDggQEAKIAl1ZGVsYXkoMTAwMCk7CiAKIAkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgaW5mby0+c3RhcnRbMF07Ci0JYWRkclswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCisJYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBpbmZvLT5zdGFydFswXTsKKwlhZGRyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAKIAlwcmludGYoIiBkb25lXG4iKTsKIAlyZXR1cm4gMDsKQEAgLTQyMyw3ICs0MjMsNyBAQAogICogMSAtIHdyaXRlIHRpbWVvdXQKICAqIDIgLSBGbGFzaCBub3QgZXJhc2VkCiAgKi8KLSNpZmRlZiBDRkdfRkxBU0hfMk5EXzE2QklUX0RFVgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFVgogc3RhdGljIGludCB3cml0ZV93b3JkKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpCiB7CiAJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1RZUEVNQVNLKSA9PSBGTEFTSF9BTTMyMEIpIHsKQEAgLTQzOCw5ICs0MzgsOSBAQAogc3RhdGljIGludCB3cml0ZV93b3JkKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpCiAjZW5kaWYKIHsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGVzdDIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBkZXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgJiBkYXRhOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBkZXN0OworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkYXRhMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAmIGRhdGE7CiAJdWxvbmcgc3RhcnQ7CiAJaW50IGksIGZsYWc7CiAKQEAgLTQ0OCwxMyArNDQ4LDEzIEBACiAJaWYgKCgqKCh2dV9sb25nICopZGVzdCkgJiBkYXRhKSAhPSBkYXRhKQogCQlyZXR1cm4gKDIpOwogCi0JZm9yIChpID0gMDsgaSA8IDQgLyBzaXplb2YoQ0ZHX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCA0IC8gc2l6ZW9mKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTsgaSsrKSB7CiAJCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCQlmbGFnID0gZGlzYWJsZV9pbnRlcnJ1cHRzKCk7CiAKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEEwMDBBMDsKKwkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEEwMDBBMDsKIAogCQlkZXN0MltpXSA9IGRhdGEyW2ldOwogCkBAIC00NjQsMTAgKzQ2NCwxMCBAQAogCiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJc3RhcnQgPSBnZXRfdGltZXIoMCk7Ci0JCXdoaWxlICgoZGVzdDJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KLQkJCQkoZGF0YTJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKKwkJd2hpbGUgKChkZXN0MltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KKwkJCQkoZGF0YTJbaV0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApKSB7CiAKLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpCisJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkKIAkJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpAQCAtNDc1LDEwICs0NzUsMTAgQEAKIAlyZXR1cm4gKDApOwogfQogCi0jaWZkZWYgQ0ZHX0ZMQVNIXzJORF8xNkJJVF9ERVYKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIXzJORF8xNkJJVF9ERVYKIAotI3VuZGVmICBDRkdfRkxBU0hfV09SRF9TSVpFCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUgdW5zaWduZWQgc2hvcnQKKyN1bmRlZiAgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgdW5zaWduZWQgc2hvcnQKIAogLyoKICAqIFRoZSBmb2xsb3dpbmcgY29kZSBjYW5ub3QgYmUgcnVuIGZyb20gRkxBU0ghCkBAIC00ODYsMjkgKzQ4NiwyOSBAQAogc3RhdGljIHVsb25nIGZsYXNoX2dldF9zaXplXzE2KHZ1X2xvbmcgKiBhZGRyLCBmbGFzaF9pbmZvX3QgKiBpbmZvKQogewogCXNob3J0IGk7Ci0JQ0ZHX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKKwlDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKIAl1bG9uZyBiYXNlID0gKHVsb25nKSBhZGRyOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKIAogCURFQlVHRigiZ2V0X3NpemUxNjogRkxBU0ggQUREUjogJTA4eFxuIiwgKHVuc2lnbmVkKWFkZHIpOwogCiAJLyogaXNzdWUgYmFuayByZXNldCB0byByZXR1cm4gdG8gcmVhZCBtb2RlICovCi0JYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHhGMDAwRjAwMDsKKwlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhGMDAwRjAwMDsKIAogCS8qIFdyaXRlIGF1dG8gc2VsZWN0IGNvbW1hbmQ6IHJlYWQgTWFudWZhY3R1cmVyIElEICovCi0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEFBMDBBQTAwOwotCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTAwNTUwMDsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4OTAwMDkwMDA7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4QUEwMEFBMDA7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4NTUwMDU1MDA7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4OTAwMDkwMDA7CiAJdWRlbGF5KDEwMDApOwogCiAJdmFsdWUgPSBzd2FwMTYoYWRkcjJbMF0pOwogCURFQlVHRigiRkxBU0ggTUFOVUZBQ1Q6ICV4XG4iLCB2YWx1ZSk7CiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9NQU5VRkFDVDoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9NQU5VRkFDVDoKIAkJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0FNRDsKIAkJCWJyZWFrOwotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBGVUpfTUFOVUZBQ1Q6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBGVUpfTUFOVUZBQ1Q6CiAJCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9GVUo7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKQEAgLTUyMiwxMiArNTIyLDEyIEBACiAJREVCVUdGKCJcbkZMQVNIIERFVklDRUlEOiAleFxuIiwgdmFsdWUpOwogCiAJc3dpdGNoICh2YWx1ZSkgewotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMEI6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMEI6CiAJCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTMyMEI7CiAJCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOwogCQkJYnJlYWs7CS8qID0+IDQgTUIJKi8KLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBUOgogCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0zMjBUOwogCQkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsKQEAgLTU2OSwxMyArNTY5LDEzIEBACiAJZm9yIChpID0gMDsgaSA8IGluZm8tPnNlY3Rvcl9jb3VudDsgaSsrKSB7CiAJCS8qIHJlYWQgc2VjdG9yIHByb3RlY3Rpb24gYXQgc2VjdG9yIGFkZHJlc3MsIChBNyAuLiBBMCkgPSAweDAyICovCiAJCS8qIEQwID0gMSBpZiBwcm90ZWN0ZWQgKi8KLQkJYWRkcjIgPSAodm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CisJCWFkZHIyID0gKHZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKIAogCQlpbmZvLT5wcm90ZWN0W2ldID0gYWRkcjJbMl0gJiAxOwogCX0KIAogCS8qIGlzc3VlIGJhbmsgcmVzZXQgdG8gcmV0dXJuIHRvIHJlYWQgbW9kZSAqLwotCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4RjAwMEYwMDA7CisJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4RjAwMEYwMDA7CiAKIAlyZXR1cm4gKGluZm8tPnNpemUpOwogfQpAQCAtNTgzLDE0ICs1ODMsMTQgQEAKIHN0YXRpYyBpbnQgd2FpdF9mb3JfRFE3XzE2KGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzZWN0KQogewogCXVsb25nIHN0YXJ0LCBub3csIGxhc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9Ci0JCShDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPQorCQkoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAogCXN0YXJ0ID0gZ2V0X3RpbWVyKDApOwogCWxhc3QgPSBzdGFydDsKLQl3aGlsZSAoKGFkZHJbMF0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg4MDAwODAwMCkgIT0KLQkJCShDRkdfRkxBU0hfV09SRF9TSVpFKSAweDgwMDA4MDAwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCXdoaWxlICgoYWRkclswXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg4MDAwODAwMCkgIT0KKwkJCShDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg4MDAwODAwMCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIC0xOwogCQl9CkBAIC02MDUsOCArNjA1LDggQEAKIAogc3RhdGljIGludCBmbGFzaF9lcmFzZV8xNihmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc19maXJzdCwgaW50IHNfbGFzdCkKIHsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMjsKIAlpbnQgZmxhZywgcHJvdCwgc2VjdCwgbF9zZWN0OwogCiAJaWYgKChzX2ZpcnN0IDwgMCkgfHwgKHNfZmlyc3QgPiBzX2xhc3QpKSB7CkBAIC02NDEsMTQgKzY0MSwxNCBAQAogCS8qIFN0YXJ0IGVyYXNlIG9uIHVucHJvdGVjdGVkIHNlY3RvcnMgKi8KIAlmb3IgKHNlY3QgPSBzX2ZpcnN0OyBzZWN0IDw9IHNfbGFzdDsgc2VjdCsrKSB7CiAJCWlmIChpbmZvLT5wcm90ZWN0W3NlY3RdID09IDApIHsJLyogbm90IHByb3RlY3RlZCAqLwotCQkJYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOworCQkJYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAotCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4QUEwMEFBMDA7Ci0JCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTAwNTUwMDsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDgwMDA4MDAwOwotCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4QUEwMEFBMDA7Ci0JCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTAwNTUwMDsKLQkJCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MzAwMDMwMDA7CS8qIHNlY3RvciBlcmFzZSAqLworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhBQTAwQUEwMDsKKwkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4NTUwMDU1MDA7CisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDgwMDA4MDAwOworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhBQTAwQUEwMDsKKwkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4NTUwMDU1MDA7CisJCQlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgzMDAwMzAwMDsJLyogc2VjdG9yIGVyYXNlICovCiAKIAkJCWxfc2VjdCA9IHNlY3Q7CiAJCQkvKgpAQCAtNjcwLDggKzY3MCw4IEBACiAJdWRlbGF5KDEwMDApOwogCiAJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCi0JYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGluZm8tPnN0YXJ0WzBdOwotCWFkZHJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHhGMDAwRjAwMDsJLyogcmVzZXQgYmFuayAqLworCWFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgaW5mby0+c3RhcnRbMF07CisJYWRkclswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhGMDAwRjAwMDsJLyogcmVzZXQgYmFuayAqLwogCiAJcHJpbnRmKCIgZG9uZVxuIik7CiAJcmV0dXJuIDA7CkBAIC02NzksMjcgKzY3OSwyNyBAQAogCiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfMTYoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSkKIHsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGVzdDIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBkZXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgJiBkYXRhOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBkZXN0OworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkYXRhMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAmIGRhdGE7CiAJdWxvbmcgc3RhcnQ7CiAJaW50IGk7CiAKIAkvKiBDaGVjayBpZiBGbGFzaCBpcyAoc3VmZmljaWVudGx5KSBlcmFzZWQgKi8KLQlmb3IgKGkgPSAwOyBpIDwgNCAvIHNpemVvZihDRkdfRkxBU0hfV09SRF9TSVpFKTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IDQgLyBzaXplb2YoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpOyBpKyspIHsKIAkJaWYgKChkZXN0MltpXSAmIHN3YXAxNihkYXRhMltpXSkpICE9IHN3YXAxNihkYXRhMltpXSkpCiAJCQlyZXR1cm4gKDIpOwogCX0KIAotCWZvciAoaSA9IDA7IGkgPCA0IC8gc2l6ZW9mKENGR19GTEFTSF9XT1JEX1NJWkUpOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgNCAvIHNpemVvZihDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykgewogCQlpbnQgZmxhZzsKIAogCQkvKiBEaXNhYmxlIGludGVycnVwdHMgd2hpY2ggbWlnaHQgY2F1c2UgYSB0aW1lb3V0IGhlcmUgKi8KIAkJZmxhZyA9IGRpc2FibGVfaW50ZXJydXB0cygpOwogCi0JCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHhBQTAwQUEwMDsKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDU1MDA1NTAwOwotCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4QTAwMEEwMDA7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweEFBMDBBQTAwOworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTAwNTUwMDsKKwkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4QTAwMEEwMDA7CiAKIAkJZGVzdDJbaV0gPSBzd2FwMTYoZGF0YTJbaV0pOwogCkBAIC03MDksMTAgKzcwOSwxMCBAQAogCiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJc3RhcnQgPSBnZXRfdGltZXIoMCk7Ci0JCXdoaWxlICgoZGVzdDJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg4MDAwODAwMCkgIT0KLQkJCQkoc3dhcDE2KGRhdGEyW2ldKSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDgwMDA4MDAwKSkgeworCQl3aGlsZSAoKGRlc3QyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDgwMDA4MDAwKSAhPQorCQkJCShzd2FwMTYoZGF0YTJbaV0pICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDgwMDA4MDAwKSkgewogCi0JCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KQEAgLTcyMCw3ICs3MjAsNyBAQAogCiAJcmV0dXJuICgwKTsKIH0KLSNlbmRpZiAvKiBDRkdfRkxBU0hfMk5EXzE2QklUX0RFViAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFViAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTczNCw3ICs3MzQsNyBAQAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0KHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyB0b3RhbF9iID0gMDsKLQl1bnNpZ25lZCBsb25nIHNpemVfYltDRkdfTUFYX0ZMQVNIX0JBTktTXTsKKwl1bnNpZ25lZCBsb25nIHNpemVfYltDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAJdW5zaWduZWQgc2hvcnQgaW5kZXggPSAwOwogCWludCBpOwogCkBAIC03NDIsNyArNzQyLDcgQEAKIAlERUJVR0YoIkZMQVNIOiBJbmRleDogJWRcbiIsIGluZGV4KTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gLTE7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IDA7CkBAIC03NjUsOCArNzY1LDggQEAKIAkJfQogCiAJCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCi0JCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCQkgICAgQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTiAtIDEsCisJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTiAtIDEsCiAJCQkJICAgICZmbGFzaF9pbmZvW2ldKTsKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX0VOVl9BRERSLApkaWZmIC0tZ2l0IGEvYm9hcmQvdHFjL3RxbTUyMDAvY21kX3N0azUyeHguYyBiL2JvYXJkL3RxYy90cW01MjAwL2NtZF9zdGs1Mnh4LmMKaW5kZXggZmQxZTY4Yi4uNTQ4M2ZjYSAxMDA2NDQKLS0tIGEvYm9hcmQvdHFjL3RxbTUyMDAvY21kX3N0azUyeHguYworKysgYi9ib2FyZC90cWMvdHFtNTIwMC9jbWRfc3RrNTJ4eC5jCkBAIC0xNjUsOSArMTY1LDkgQEAKIAlwc2MtPmNvbW1hbmQgPSAoUFNDX1JYX0RJU0FCTEUgfCBQU0NfVFhfRElTQUJMRSk7CiAJcHNjLT5zaWNyID0gMHgyMkUwMDAwMDsJCS8qIDE2IGJpdCBkYXRhOyBJMlMgKi8KIAotCSoodnVfbG9uZyAqKShDRkdfTUJBUiArIDB4MjJDKSA9IDB4ODA1ZDsgLyogUFNDMiBDRE0gTUNMSyBjb25maWc7IE1DTEsKKwkqKHZ1X2xvbmcgKikoQ09ORklHX1NZU19NQkFSICsgMHgyMkMpID0gMHg4MDVkOyAvKiBQU0MyIENETSBNQ0xLIGNvbmZpZzsgTUNMSwogCQkJCQkJICAqIDUuNjE3IE1IeiAqLwotCSoodnVfbG9uZyAqKShDRkdfTUJBUiArIDB4MjE0KSB8PSAweDAwMDAwMDQwOyAvKiBDRE0gY2xvY2sgZW5hYmxlCisJKih2dV9sb25nICopKENPTkZJR19TWVNfTUJBUiArIDB4MjE0KSB8PSAweDAwMDAwMDQwOyAvKiBDRE0gY2xvY2sgZW5hYmxlCiAJCQkJCQkgICAgICAgKiByZWdpc3RlciAqLwogCXBzYy0+Y2NyID0gMHgxRjAzOwkvKiAxNiBiaXQgZGF0YSB3aWR0aDsgNS42MTdNSHogTUNMSyAqLwogCXBzYy0+Y3R1ciA9IDB4MEY7CS8qIDE2IGJpdCBmcmFtZSB3aWR0aCAqLwpAQCAtNzUxLDkgKzc1MSw5IEBACiAJc3RhdGljIGludCBpbml0X2RvbmUgPSAwOwogCWludCBpOwogCXN0cnVjdCBtcGM1eHh4X21zY2FuICpjYW4xID0KLQkJKHN0cnVjdCBtcGM1eHh4X21zY2FuICopKENGR19NQkFSICsgMHgwOTAwKTsKKwkJKHN0cnVjdCBtcGM1eHh4X21zY2FuICopKENPTkZJR19TWVNfTUJBUiArIDB4MDkwMCk7CiAJc3RydWN0IG1wYzV4eHhfbXNjYW4gKmNhbjIgPQotCQkoc3RydWN0IG1wYzV4eHhfbXNjYW4gKikoQ0ZHX01CQVIgKyAweDA5ODApOworCQkoc3RydWN0IG1wYzV4eHhfbXNjYW4gKikoQ09ORklHX1NZU19NQkFSICsgMHgwOTgwKTsKIAogCS8qIEdQSU8gY29uZmlndXJhdGlvbiBvZiB0aGUgQ0FOIHBpbnMgaXMgZG9uZSBpbiBUUU01MjAwLmggKi8KIApAQCAtODk2LDkgKzg5Niw5IEBACiB7CiAJaW50IGk7CiAJc3RydWN0IG1wYzV4eHhfbXNjYW4gKmNhbjEgPQotCQkoc3RydWN0IG1wYzV4eHhfbXNjYW4gKikoQ0ZHX01CQVIgKyAweDA5MDApOworCQkoc3RydWN0IG1wYzV4eHhfbXNjYW4gKikoQ09ORklHX1NZU19NQkFSICsgMHgwOTAwKTsKIAlzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqY2FuMiA9Ci0JCShzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqKShDRkdfTUJBUiArIDB4MDk4MCk7CisJCShzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqKShDT05GSUdfU1lTX01CQVIgKyAweDA5ODApOwogCiAJLyogc2VuZCBhIG1lc3NhZ2Ugb24gQ0FOMSAqLwogCWNhbjEtPmNhbnRic2VsID0gMHgwMTsKZGlmZiAtLWdpdCBhL2JvYXJkL3RxYy90cW01MjAwL3RxbTUyMDAuYyBiL2JvYXJkL3RxYy90cW01MjAwL3RxbTUyMDAuYwppbmRleCA1MTUyMzMxLi5mYWEyZTAyIDEwMDY0NAotLS0gYS9ib2FyZC90cWMvdHFtNTIwMC90cW01MjAwLmMKKysrIGIvYm9hcmQvdHFjL3RxbTUyMDAvdHFtNTIwMC5jCkBAIC01NCw3ICs1NCw3IEBACiB2b2lkIHBzMm11bHRfZWFybHlfaW5pdCh2b2lkKTsKICNlbmRpZgogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogc3RhdGljIHZvaWQgc2RyYW1fc3RhcnQgKGludCBoaV9hZGRyKQogewogCWxvbmcgaGlfYWRkcl9iaXQgPSBoaV9hZGRyID8gMHgwMTAwMDAwMCA6IDA7CkBAIC0xMDEsNyArMTAxLDcgQEAKIAogLyoKICAqIEFUVEVOVElPTjogQWx0aG91Z2ggcGFydGlhbGx5IHJlZmVyZW5jZWQgaW5pdGRyYW0gZG9lcyBOT1QgbWFrZSByZWFsIHVzZQotICoJICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKgkgICAgICB1c2Ugb2YgQ09ORklHX1NZU19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENPTkZJR19TWVNfU0RSQU1fQkFTRQogICoJICAgICAgaXMgc29tZXRoaW5nIGVsc2UgdGhhbiAweDAwMDAwMDAwLgogICovCiAKQEAgLTExMSw3ICsxMTEsNyBAQAogCXVsb25nIGRyYW1zaXplMiA9IDA7CiAJdWludCBzdnIsIHB2cjsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAl1bG9uZyB0ZXN0MSwgdGVzdDI7CiAKIAkvKiBzZXR1cCBTRFJBTSBjaGlwIHNlbGVjdHMgKi8KQEAgLTEzMiw5ICsxMzIsOSBAQAogCiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzAgb25seSAqLwogCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxKTsKLQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKTsKKwl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CiAJCWRyYW1zaXplID0gdGVzdDE7CkBAIC0xNjEsMTAgKzE2MSwxMCBAQAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MxIG9ubHkgKi8KIAlpZiAoIWRyYW1zaXplKQogCQlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MiA9IHRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopKENGR19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDIwMDAwMDAwKTsKKwl0ZXN0MiA9IHRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHgyMDAwMDAwMCk7CiAJaWYgKCFkcmFtc2l6ZSkgewogCQlzZHJhbV9zdGFydCgxKTsKLQkJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4MjAwMDAwMDApOworCQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4MjAwMDAwMDApOwogCX0KIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKQEAgLTE4Niw3ICsxODYsNyBAQAogCQkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMUNGRyA9IGRyYW1zaXplOyAvKiBkaXNhYmxlZCAqLwogCX0KIAotI2Vsc2UgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyogcmV0cmlldmUgc2l6ZSBvZiBtZW1vcnkgY29ubmVjdGVkIHRvIFNEUkFNIENTMCAqLwogCWRyYW1zaXplID0gKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzBDRkcgJiAweEZGOwpAQCAtMjAzLDcgKzIwMyw3IEBACiAJfSBlbHNlIHsKIAkJZHJhbXNpemUyID0gMDsKIAl9Ci0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qCiAJICogT24gTVBDNTIwMEIgd2UgbmVlZCB0byBzZXQgdGhlIHNwZWNpYWwgY29uZmlndXJhdGlvbiBkZWxheSBpbiB0aGUKQEAgLTQwNiw3ICs0MDYsNyBAQAogCXBzMm11bHRfZWFybHlfaW5pdCgpOwogI2VuZGlmIC8qIENPTkZJR19QUzJNVUxUICovCiAKLSNpZiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSV9ORVcpICYmIGRlZmluZWQoQ0ZHX1VTQl9PSENJX0NQVV9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1VTQl9PSENJX05FVykgJiYgZGVmaW5lZChDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUKQogCS8qIExvdyBsZXZlbCBVU0IgaW5pdCwgcmVxdWlyZWQgZm9yIHByb3BlciBrZXJuZWwgb3BlcmF0aW9uICovCiAJdXNiX2NwdV9pbml0KCk7CiAjZW5kaWYKQEAgLTQ2NCwzNCArNDY0LDM0IEBACiAJICovCiAKIAkvKiBzYXZlIG9yaWdpbmFsIFNSQU0gY29udGVudCAgKi8KLQlzYXZlID0gKih2b2xhdGlsZSB1MTYgKilDRkdfQ1MyX1NUQVJUOworCXNhdmUgPSAqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MyX1NUQVJUOwogCXJlc3RvcmUgPSAxOwogCiAJLyogd3JpdGUgdGVzdCBwYXR0ZXJuIHRvIFNSQU0gKi8KLQkqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzJfU1RBUlQgPSAweEE1QTU7CisJKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMl9TVEFSVCA9IDB4QTVBNTsKIAlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogCS8qCiAJICogUHV0IGEgZGlmZmVyZW50IHBhdHRlcm4gb24gdGhlIGRhdGEgbGluZXM6IG90aGVyd2lzZSB0aGV5IG1heSBmbG9hdAogCSAqIGxvbmcgZW5vdWdoIHRvIHJlYWQgYmFjayB3aGF0IHdlIHdyb3RlLgogCSAqLwotCXRtcCA9ICoodm9sYXRpbGUgdTE2ICopQ0ZHX0ZMQVNIX0JBU0U7CisJdG1wID0gKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJaWYgKHRtcCA9PSAweEE1QTUpCiAJCXB1dHMgKCIhISBwb3NzaWJsZSBlcnJvciBpbiBTUkFNIGRldGVjdGlvblxuIik7CiAKLQlpZiAoKih2b2xhdGlsZSB1MTYgKilDRkdfQ1MyX1NUQVJUICE9IDB4QTVBNSkgeworCWlmICgqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MyX1NUQVJUICE9IDB4QTVBNSkgewogCQkvKiBubyBTUkFNIGF0IGFsbCwgZGlzYWJsZSBjcyAqLwogCQkqKHZ1X2xvbmcgKilNUEM1WFhYX0FEREVDUiAmPSB+KDEgPDwgMTgpOwogCQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMl9TVEFSVCA9IDB4MDAwMEZGRkY7CiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MyX1NUT1AgPSAweDAwMDBGRkZGOwogCQlyZXN0b3JlID0gMDsKIAkJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKLQl9IGVsc2UgaWYgKCoodm9sYXRpbGUgdTE2ICopKENGR19DUzJfU1RBUlQgKyAoMTw8MTkpKSA9PSAweEE1QTUpIHsKKwl9IGVsc2UgaWYgKCoodm9sYXRpbGUgdTE2ICopKENPTkZJR19TWVNfQ1MyX1NUQVJUICsgKDE8PDE5KSkgPT0gMHhBNUE1KSB7CiAJCS8qIG1ha2Ugc3VyZSB0aGF0IHdlIGFjY2VzcyBhIG1pcnJvcmVkIGFkZHJlc3MgKi8KLQkJKih2b2xhdGlsZSB1MTYgKilDRkdfQ1MyX1NUQVJUID0gMHgxMTExOworCQkqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MyX1NUQVJUID0gMHgxMTExOwogCQlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwotCQlpZiAoKih2b2xhdGlsZSB1MTYgKikoQ0ZHX0NTMl9TVEFSVCArICgxPDwxOSkpID09IDB4MTExMSkgeworCQlpZiAoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19DUzJfU1RBUlQgKyAoMTw8MTkpKSA9PSAweDExMTEpIHsKIAkJCS8qIFNSQU0gc2l6ZSA9IDUxMiBrQnl0ZSAqLwotCQkJKih2dV9sb25nICopTVBDNVhYWF9DUzJfU1RPUCA9IFNUT1BfUkVHKENGR19DUzJfU1RBUlQsCisJCQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMl9TVE9QID0gU1RPUF9SRUcoQ09ORklHX1NZU19DUzJfU1RBUlQsCiAJCQkJCQkJCTB4ODAwMDApOwogCQkJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKIAkJCXB1dHMgKCJTUkFNOiAgNTEyIGtCXG4iKTsKQEAgLTUwMyw3ICs1MDMsNyBAQAogCX0KIAkvKiByZXN0b3JlIG9yaWdpYW5sIFNSQU0gY29udGVudCAgKi8KIAlpZiAocmVzdG9yZSkgewotCQkqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzJfU1RBUlQgPSBzYXZlOworCQkqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MyX1NUQVJUID0gc2F2ZTsKIAkJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKIAl9CiAKQEAgLTUxMywyMSArNTEzLDIxIEBACiAJICovCiAKIAkvKiBzYXZlIG9yaWdpYW5sIEZCIGNvbnRlbnQgICovCi0Jc2F2ZSA9ICoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMV9TVEFSVDsKKwlzYXZlID0gKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMV9TVEFSVDsKIAlyZXN0b3JlID0gMTsKIAogCS8qIHdyaXRlIHRlc3QgcGF0dGVybiB0byBGQiBtZW1vcnkgKi8KLQkqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzFfU1RBUlQgPSAweEE1QTU7CisJKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMV9TVEFSVCA9IDB4QTVBNTsKIAlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogCS8qCiAJICogUHV0IGEgZGlmZmVyZW50IHBhdHRlcm4gb24gdGhlIGRhdGEgbGluZXM6IG90aGVyd2lzZSB0aGV5IG1heSBmbG9hdAogCSAqIGxvbmcgZW5vdWdoIHRvIHJlYWQgYmFjayB3aGF0IHdlIHdyb3RlLgogCSAqLwotCXRtcCA9ICoodm9sYXRpbGUgdTE2ICopQ0ZHX0ZMQVNIX0JBU0U7CisJdG1wID0gKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJaWYgKHRtcCA9PSAweEE1QTUpCiAJCXB1dHMgKCIhISBwb3NzaWJsZSBlcnJvciBpbiBncmFmaWMgY29udHJvbGxlciBkZXRlY3Rpb25cbiIpOwogCi0JaWYgKCoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMV9TVEFSVCAhPSAweEE1QTUpIHsKKwlpZiAoKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMV9TVEFSVCAhPSAweEE1QTUpIHsKIAkJLyogbm8gZ3JhZmljIGNvbnRyb2xsZXIgYXQgYWxsLCBkaXNhYmxlIGNzICovCiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQURERUNSICY9IH4oMSA8PCAxNyk7CiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MxX1NUQVJUID0gMHgwMDAwRkZGRjsKQEAgLTUzOSw3ICs1MzksNyBAQAogCX0KIAkvKiByZXN0b3JlIG9yaWdpYW5sIEZCIGNvbnRlbnQgICovCiAJaWYgKHJlc3RvcmUpIHsKLQkJKih2b2xhdGlsZSB1MTYgKilDRkdfQ1MxX1NUQVJUID0gc2F2ZTsKKwkJKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMV9TVEFSVCA9IHNhdmU7CiAJCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7CiAJfQogCkBAIC02NzksMjEgKzY3OSwyMSBAQAogCSAqLwogCiAJLyogc2F2ZSBvcmlnaWFubCBGQiBjb250ZW50ICAqLwotCXNhdmUgPSAqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzFfU1RBUlQ7CisJc2F2ZSA9ICoodm9sYXRpbGUgdTE2ICopQ09ORklHX1NZU19DUzFfU1RBUlQ7CiAJcmVzdG9yZSA9IDE7CiAKIAkvKiB3cml0ZSB0ZXN0IHBhdHRlcm4gdG8gRkIgbWVtb3J5ICovCi0JKih2b2xhdGlsZSB1MTYgKilDRkdfQ1MxX1NUQVJUID0gMHhBNUE1OworCSoodm9sYXRpbGUgdTE2ICopQ09ORklHX1NZU19DUzFfU1RBUlQgPSAweEE1QTU7CiAJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKIAkvKgogCSAqIFB1dCBhIGRpZmZlcmVudCBwYXR0ZXJuIG9uIHRoZSBkYXRhIGxpbmVzOiBvdGhlcndpc2UgdGhleSBtYXkgZmxvYXQKIAkgKiBsb25nIGVub3VnaCB0byByZWFkIGJhY2sgd2hhdCB3ZSB3cm90ZS4KIAkgKi8KLQl0bXAgPSAqKHZvbGF0aWxlIHUxNiAqKUNGR19GTEFTSF9CQVNFOworCXRtcCA9ICoodm9sYXRpbGUgdTE2ICopQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCWlmICh0bXAgPT0gMHhBNUE1KQogCQlwdXRzICgiISEgcG9zc2libGUgZXJyb3IgaW4gZ3JhZmljIGNvbnRyb2xsZXIgZGV0ZWN0aW9uXG4iKTsKIAotCWlmICgqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzFfU1RBUlQgIT0gMHhBNUE1KSB7CisJaWYgKCoodm9sYXRpbGUgdTE2ICopQ09ORklHX1NZU19DUzFfU1RBUlQgIT0gMHhBNUE1KSB7CiAJCS8qIG5vIGdyYWZpYyBjb250cm9sbGVyIGZvdW5kICovCiAJCXJlc3RvcmUgPSAwOwogCQlyZXQgPSAwOwpAQCAtNzAyLDcgKzcwMiw3IEBACiAJfQogCiAJaWYgKHJlc3RvcmUpIHsKLQkJKih2b2xhdGlsZSB1MTYgKilDRkdfQ1MxX1NUQVJUID0gc2F2ZTsKKwkJKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMV9TVEFSVCA9IHNhdmU7CiAJCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7CiAJfQogCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9ib2FyZC90cWMvdHFtODI2MC9jb25maWcubWsgYi9ib2FyZC90cWMvdHFtODI2MC9jb25maWcubWsKaW5kZXggMWZlOTk1Mi4uM2VjZmM0OCAxMDA2NDQKLS0tIGEvYm9hcmQvdHFjL3RxbTgyNjAvY29uZmlnLm1rCisrKyBiL2JvYXJkL3RxYy90cW04MjYwL2NvbmZpZy5tawpAQCAtMjUsNyArMjUsNyBAQAogIyBUUU04MjYwIGJvYXJkcwogIwogCi0jIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDRkdfRkxBU0hfQkFTRSBkZWZpbmUgaW4gY29uZmlnX1RRTTgyNjAuaAorIyBUaGlzIHNob3VsZCBiZSBlcXVhbCB0byB0aGUgQ09ORklHX1NZU19GTEFTSF9CQVNFIGRlZmluZSBpbiBjb25maWdfVFFNODI2MC5oCiAjIGZvciB0aGUgImZpbmFsIiBjb25maWd1cmF0aW9uLCB3aXRoIFUtQm9vdCBpbiBmbGFzaCwgb3IgdGhlIGFkZHJlc3MKICMgaW4gUkFNIHdoZXJlIFUtQm9vdCBpcyBsb2FkZWQgYXQgZm9yIGRlYnVnZ2luZy4KICMKZGlmZiAtLWdpdCBhL2JvYXJkL3RxYy90cW04MjYwL2ZsYXNoLmMgYi9ib2FyZC90cWMvdHFtODI2MC9mbGFzaC5jCmluZGV4IDUwMGFmOTIuLjRhNmQ1MzggMTAwNjQ0Ci0tLSBhL2JvYXJkL3RxYy90cW04MjYwL2ZsYXNoLmMKKysrIGIvYm9hcmQvdHFjL3RxbTgyNjAvZmxhc2guYwpAQCAtMzEsNyArMzEsNyBAQAogI2RlZmluZSBWX0JZVEUoYSkJKCoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKSggYSApKQogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE4NSwxMyArMTg1LDEzIEBACiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAogCS8qIFN0YXRpYyBGTEFTSCBCYW5rIGNvbmZpZ3VyYXRpb24gaGVyZSAob25seSBvbmUgYmFuaykgKi8KIAotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSAoQ0ZHX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplIChDT05GSUdfU1lTX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAJaWYgKGZsYXNoX2luZm9bMF0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTiB8fCBzaXplX2IwID09IDApIHsKIAkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rIDAgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwKIAkJCQlzaXplX2IwLCBzaXplX2IwID4+IDIwKTsKQEAgLTIwMSwxMCArMjAxLDEwIEBACiAJICogcHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSDBfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0gwX0JBU0UKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdKTsKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKSAmJiBkZWZpbmVkKENPTkZJR19FTlZfQUREUikKQEAgLTM2NCw3ICszNjQsNyBAQAogCXdoaWxlICgoVl9VTE9ORyAoaW5mby0+c3RhcnRbbF9zZWN0XSkgJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwIHx8CiAJICAgICAgIChWX1VMT05HIChpbmZvLT5zdGFydFtsX3NlY3RdICsgNCkgJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKQogCXsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtNDgwLDcgKzQ4MCw3IEBACiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKFZfVUxPTkcgKGRlc3QpICYgMHgwMDgwMDA4MCkgIT0gKGNoICYgMHgwMDgwMDA4MCkpIHx8CiAJCSAgICgoVl9VTE9ORyAoZGVzdCArIDQpICYgMHgwMDgwMDA4MCkgIT0gKGNsICYgMHgwMDgwMDA4MCkpKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3RxYy90cW04MjYwL3RxbTgyNjAuYyBiL2JvYXJkL3RxYy90cW04MjYwL3RxbTgyNjAuYwppbmRleCBmMjAxMDQ1Li4zMDM5OTk5IDEwMDY0NAotLS0gYS9ib2FyZC90cWMvdHFtODI2MC90cW04MjYwLmMKKysrIGIvYm9hcmQvdHFjL3RxbTgyNjAvdHFtODI2MC5jCkBAIC0yMzYsNyArMjM2LDcgQEAKIAkgKi8KIAltYXhzaXplID0gKDEgKyAofm9yeCB8IDB4N2ZmZikpIC8gMjsKIAotCS8qIFNpbmNlIENGR19TRFJBTV9CQVNFIGlzIGFsd2F5cyAwICg/PyksIHdlIGFzc3VtZSB0aGF0CisJLyogU2luY2UgQ09ORklHX1NZU19TRFJBTV9CQVNFIGlzIGFsd2F5cyAwICg/PyksIHdlIGFzc3VtZSB0aGF0CiAJICogd2UgYXJlIGNvbmZpZ3VyaW5nIENTMSBpZiBiYXNlICE9IDAKIAkgKi8KIAlzZG1yX3B0ciA9IGJhc2UgPyAmbWVtY3RsLT5tZW1jX2xzZG1yIDogJm1lbWN0bC0+bWVtY19wc2RtcjsKQEAgLTI2MSw3ICsyNjEsNyBAQAogCSAqICBhY2Nlc3NpbmcgdGhlIFNEUkFNIHdpdGggYSBzaW5nbGUtYnl0ZSB0cmFuc2FjdGlvbi4iCiAJICoKIAkgKiBUaGUgYXBwcm9wcmlhdGUgQlJ4L09SeCByZWdpc3RlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0IHdoZW4gd2UKLQkgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDRkdfU0RSQU1fQkFTRS4KKwkgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDT05GSUdfU1lTX1NEUkFNX0JBU0UuCiAJICovCiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfUFJFQTsKQEAgLTI3Miw3ICsyNzIsNyBAQAogCQkqYmFzZSA9IGM7CiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfTVJXOwotCSooYmFzZSArIENGR19NUlNfT0ZGUykgPSBjOwkvKiBzZXR0aW5nIE1SIG9uIGFkZHJlc3MgbGluZXMgKi8KKwkqKGJhc2UgKyBDT05GSUdfU1lTX01SU19PRkZTKSA9IGM7CS8qIHNldHRpbmcgTVIgb24gYWRkcmVzcyBsaW5lcyAqLwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX05PUk0gfCBQU0RNUl9SRkVOOwogCSpiYXNlID0gYzsKQEAgLTI4NSwxMCArMjg1LDEwIEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJbG9uZyBzaXplOCwgc2l6ZTk7CiAjZW5kaWYKIAlsb25nIHBzaXplLCBsc2l6ZTsKQEAgLTI5Niw4ICsyOTYsOCBAQAogCXBzaXplID0gMTYgKiAxMDI0ICogMTAyNDsKIAlsc2l6ZSA9IDA7CiAKLQltZW1jdGwtPm1lbWNfcHNydCA9IENGR19QU1JUOwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfcHNydCA9IENPTkZJR19TWVNfUFNSVDsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCiAjaWYgMAkJCQkJCQkvKiBKdXN0IGZvciBkZWJ1Z2dpbmcgKi8KICNkZWZpbmUJcHJ0X2JyX29yKGJyWCxvclgpIGRvIHsJCQkJXApAQCAtMzE1LDM3ICszMTUsMzcgQEAKIAlwcnRfYnJfb3IgKGJyMywgb3IzKTsKICNlbmRpZgogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCS8qIDYweCBTRFJBTSBzZXR1cDoKIAkgKi8KLQlzaXplOCA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl84Q09MLCBDRkdfT1IxXzhDT0wsCi0JCQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKLQlzaXplOSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl85Q09MLCBDRkdfT1IxXzlDT0wsCi0JCQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKKwlzaXplOCA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOENPTCwgQ09ORklHX1NZU19PUjFfOENPTCwKKwkJCQkJICAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKKwlzaXplOSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOUNPTCwgQ09ORklHX1NZU19PUjFfOUNPTCwKKwkJCQkJICAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKIAogCWlmIChzaXplOCA8IHNpemU5KSB7CiAJCXBzaXplID0gc2l6ZTk7CiAJCXByaW50ZiAoIig2MHg6OUNPTCAtICVsZCBNQiwgIiwgcHNpemUgPj4gMjApOwogCX0gZWxzZSB7Ci0JCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzhDT0wsIENGR19PUjFfOENPTCwKLQkJCQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKKwkJcHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzhDT0wsIENPTkZJR19TWVNfT1IxXzhDT0wsCisJCQkJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCQlwcmludGYgKCIoNjB4OjhDT0wgLSAlbGQgTUIsICIsIHBzaXplID4+IDIwKTsKIAl9CiAKIAkvKiBMb2NhbCBTRFJBTSBzZXR1cDoKIAkgKi8KLSNpZmRlZiBDRkdfSU5JVF9MT0NBTF9TRFJBTQotCW1lbWN0bC0+bWVtY19sc3J0ID0gQ0ZHX0xTUlQ7Ci0Jc2l6ZTggPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfTFNETVJfOENPTCwgQ0ZHX09SMl84Q09MLAorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9MT0NBTF9TRFJBTQorCW1lbWN0bC0+bWVtY19sc3J0ID0gQ09ORklHX1NZU19MU1JUOworCXNpemU4ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19MU0RNUl84Q09MLCBDT05GSUdfU1lTX09SMl84Q09MLAogCQkJCQkgICh1Y2hhciAqKSBTRFJBTV9CQVNFMl9QUkVMSU0pOwotCXNpemU5ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX0xTRE1SXzlDT0wsIENGR19PUjJfOUNPTCwKKwlzaXplOSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfTFNETVJfOUNPTCwgQ09ORklHX1NZU19PUjJfOUNPTCwKIAkJCQkJICAodWNoYXIgKikgU0RSQU1fQkFTRTJfUFJFTElNKTsKIAogCWlmIChzaXplOCA8IHNpemU5KSB7CiAJCWxzaXplID0gc2l6ZTk7CiAJCXByaW50ZiAoIkxvY2FsOjlDT0wgLSAlbGQgTUIpIHVzaW5nICIsIGxzaXplID4+IDIwKTsKIAl9IGVsc2UgewotCQlsc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19MU0RNUl84Q09MLCBDRkdfT1IyXzhDT0wsCisJCWxzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19MU0RNUl84Q09MLCBDT05GSUdfU1lTX09SMl84Q09MLAogCQkJCQkJICAodWNoYXIgKikgU0RSQU1fQkFTRTJfUFJFTElNKTsKIAkJcHJpbnRmICgiTG9jYWw6OENPTCAtICVsZCBNQikgdXNpbmcgIiwgbHNpemUgPj4gMjApOwogCX0KQEAgLTM1NCwxMSArMzU0LDExIEBACiAJLyogU2V0IHVwIEJSMiBzbyB0aGF0IHRoZSBsb2NhbCBTRFJBTSBnb2VzCiAJICogcmlnaHQgYWZ0ZXIgdGhlIDYweCBTRFJBTQogCSAqLwotCW1lbWN0bC0+bWVtY19icjIgPSAoQ0ZHX0JSMl9QUkVMSU0gJiB+QlJ4X0JBX01TSykgfAotCQkJKENGR19TRFJBTV9CQVNFICsgcHNpemUpOworCW1lbWN0bC0+bWVtY19icjIgPSAoQ09ORklHX1NZU19CUjJfUFJFTElNICYgfkJSeF9CQV9NU0spIHwKKwkJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBwc2l6ZSk7CiAjZW5kaWYKLSNlbmRpZiAvKiBDRkdfSU5JVF9MT0NBTF9TRFJBTSAqLwotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19JTklUX0xPQ0FMX1NEUkFNICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAlpY2FjaGVfZW5hYmxlICgpOwogCmRpZmYgLS1naXQgYS9ib2FyZC90cWMvdHFtODI3Mi9jb25maWcubWsgYi9ib2FyZC90cWMvdHFtODI3Mi9jb25maWcubWsKaW5kZXggYWY3YTgxZS4uMDVjNWYwYyAxMDA2NDQKLS0tIGEvYm9hcmQvdHFjL3RxbTgyNzIvY29uZmlnLm1rCisrKyBiL2JvYXJkL3RxYy90cW04MjcyL2NvbmZpZy5tawpAQCAtMjUsNyArMjUsNyBAQAogIyBUUU04MjcyIGJvYXJkcwogIwogCi0jIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDRkdfRkxBU0hfQkFTRSBkZWZpbmUgaW4gY29uZmlnX1RRTTgyNjAuaAorIyBUaGlzIHNob3VsZCBiZSBlcXVhbCB0byB0aGUgQ09ORklHX1NZU19GTEFTSF9CQVNFIGRlZmluZSBpbiBjb25maWdfVFFNODI2MC5oCiAjIGZvciB0aGUgImZpbmFsIiBjb25maWd1cmF0aW9uLCB3aXRoIFUtQm9vdCBpbiBmbGFzaCwgb3IgdGhlIGFkZHJlc3MKICMgaW4gUkFNIHdoZXJlIFUtQm9vdCBpcyBsb2FkZWQgYXQgZm9yIGRlYnVnZ2luZy4KICMKZGlmZiAtLWdpdCBhL2JvYXJkL3RxYy90cW04MjcyL25hbmQuYyBiL2JvYXJkL3RxYy90cW04MjcyL25hbmQuYwppbmRleCBiOTg4ZmZhLi44YzgzNDFiIDEwMDY0NAotLS0gYS9ib2FyZC90cWMvdHFtODI3Mi9uYW5kLmMKKysrIGIvYm9hcmQvdHFjL3RxbTgyNzIvbmFuZC5jCkBAIC0xNDEsMTIgKzE0MSwxMiBAQAogc3RhdGljIHZvaWQgdXBtbmFuZF93cml0ZV9ieXRlKHN0cnVjdCBtdGRfaW5mbyAqbXRkaW5mbywgdV9jaGFyIGJ5dGUpCiB7CiAJc3RydWN0IG5hbmRfY2hpcCAqdGhpcyA9IG10ZGluZm8tPnByaXY7Ci0JdWxvbmcgYmFzZSA9ICh1bG9uZykgKHRoaXMtPklPX0FERFJfVyArIGNoaXBzZWwgKiBDRkdfTkFORF9DU19ESVNUKTsKKwl1bG9uZyBiYXNlID0gKHVsb25nKSAodGhpcy0+SU9fQUREUl9XICsgY2hpcHNlbCAqIENPTkZJR19TWVNfTkFORF9DU19ESVNUKTsKIAogCWlmIChod2N0bCAmIDB4MSkgewotCQlXUklURV9OQU5EX1VQTShieXRlLCBiYXNlLCBDRkdfTkFORF9VUE1fV1JJVEVfQ01EX09GUyk7CisJCVdSSVRFX05BTkRfVVBNKGJ5dGUsIGJhc2UsIENPTkZJR19TWVNfTkFORF9VUE1fV1JJVEVfQ01EX09GUyk7CiAJfSBlbHNlIGlmIChod2N0bCAmIDB4MikgewotCQlXUklURV9OQU5EX1VQTShieXRlLCBiYXNlLCBDRkdfTkFORF9VUE1fV1JJVEVfQUREUl9PRlMpOworCQlXUklURV9OQU5EX1VQTShieXRlLCBiYXNlLCBDT05GSUdfU1lTX05BTkRfVVBNX1dSSVRFX0FERFJfT0ZTKTsKIAl9IGVsc2UgewogCQlXUklURV9OQU5EKGJ5dGUsIGJhc2UpOwogCX0KQEAgLTE3MSw3ICsxNzEsNyBAQAogc3RhdGljIHVfY2hhciB1cG1uYW5kX3JlYWRfYnl0ZShzdHJ1Y3QgbXRkX2luZm8gKm10ZGluZm8pCiB7CiAJc3RydWN0IG5hbmRfY2hpcCAqdGhpcyA9IG10ZGluZm8tPnByaXY7Ci0JdWxvbmcgYmFzZSA9ICh1bG9uZykgKHRoaXMtPklPX0FERFJfVyArIGNoaXBzZWwgKiBDRkdfTkFORF9DU19ESVNUKTsKKwl1bG9uZyBiYXNlID0gKHVsb25nKSAodGhpcy0+SU9fQUREUl9XICsgY2hpcHNlbCAqIENPTkZJR19TWVNfTkFORF9DU19ESVNUKTsKIAogCXJldHVybiBSRUFEX05BTkQoYmFzZSk7CiB9CkBAIC0xODcsNyArMTg3LDcgQEAKIHN0YXRpYyB2b2lkIHRxbTgyNzJfcmVhZF9idWYoc3RydWN0IG10ZF9pbmZvICptdGRpbmZvLCB1aW50OF90ICpidWYsIGludCBsZW4pCiB7CiAJc3RydWN0IG5hbmRfY2hpcCAqdGhpcyA9IG10ZGluZm8tPnByaXY7Ci0JdW5zaWduZWQgY2hhciAqYmFzZSA9ICh1bnNpZ25lZCBjaGFyICopICh0aGlzLT5JT19BRERSX1cgKyBjaGlwc2VsICogQ0ZHX05BTkRfQ1NfRElTVCk7CisJdW5zaWduZWQgY2hhciAqYmFzZSA9ICh1bnNpZ25lZCBjaGFyICopICh0aGlzLT5JT19BRERSX1cgKyBjaGlwc2VsICogQ09ORklHX1NZU19OQU5EX0NTX0RJU1QpOwogCWludAlpOwogCiAJZm9yIChpID0gMDsgaTwgbGVuOyBpKyspCkBAIC0xOTcsNyArMTk3LDcgQEAKIHN0YXRpYyB2b2lkIHRxbTgyNzJfd3JpdGVfYnVmKHN0cnVjdCBtdGRfaW5mbyAqbXRkaW5mbywgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgbGVuKQogewogCXN0cnVjdCBuYW5kX2NoaXAgKnRoaXMgPSBtdGRpbmZvLT5wcml2OwotCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSAodW5zaWduZWQgY2hhciAqKSAodGhpcy0+SU9fQUREUl9XICsgY2hpcHNlbCAqIENGR19OQU5EX0NTX0RJU1QpOworCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSAodW5zaWduZWQgY2hhciAqKSAodGhpcy0+SU9fQUREUl9XICsgY2hpcHNlbCAqIENPTkZJR19TWVNfTkFORF9DU19ESVNUKTsKIAlpbnQJaTsKIAogCWZvciAoaSA9IDA7IGk8IGxlbjsgaSsrKQpAQCAtMjA3LDcgKzIwNyw3IEBACiBzdGF0aWMgaW50IHRxbTgyNzJfdmVyaWZ5X2J1ZihzdHJ1Y3QgbXRkX2luZm8gKm10ZGluZm8sIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IGxlbikKIHsKIAlzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzID0gbXRkaW5mby0+cHJpdjsKLQl1bnNpZ25lZCBjaGFyICpiYXNlID0gKHVuc2lnbmVkIGNoYXIgKikgKHRoaXMtPklPX0FERFJfVyArIGNoaXBzZWwgKiBDRkdfTkFORF9DU19ESVNUKTsKKwl1bnNpZ25lZCBjaGFyICpiYXNlID0gKHVuc2lnbmVkIGNoYXIgKikgKHRoaXMtPklPX0FERFJfVyArIGNoaXBzZWwgKiBDT05GSUdfU1lTX05BTkRfQ1NfRElTVCk7CiAJaW50CWk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCkBAIC0yMjUsNyArMjI1LDcgQEAKIGludCBib2FyZF9uYW5kX2luaXQoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCkKIHsKIAlzdGF0aWMJaW50CVVwbUluaXQgPSAwOwotCXZvbGF0aWxlIGltbWFwX3QgKiBpbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICogaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKIAogCWlmIChod2luZi5uYW5kID09IDApIHJldHVybiAtMTsKQEAgLTI1MCw4ICsyNTAsOCBAQAogCX0KIAogCS8qIFNldHVwIHRoZSBtZW1jdHJsICovCi0JbWVtY3RsLT5tZW1jX29yMyA9IENGR19OQU5EX09SOwotCW1lbWN0bC0+bWVtY19icjMgPSBDRkdfTkFORF9CUjsKKwltZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19OQU5EX09SOworCW1lbWN0bC0+bWVtY19icjMgPSBDT05GSUdfU1lTX05BTkRfQlI7CiAJbWVtY3RsLT5tZW1jX21ibXIgPSAoTXhNUl9PUF9OT1JNKTsKIAogCW5hbmQtPmVjYy5tb2RlID0gTkFORF9FQ0NfU09GVDsKZGlmZiAtLWdpdCBhL2JvYXJkL3RxYy90cW04MjcyL3RxbTgyNzIuYyBiL2JvYXJkL3RxYy90cW04MjcyL3RxbTgyNzIuYwppbmRleCBmYzBhMjljLi41ZDA3NDFkIDEwMDY0NAotLS0gYS9ib2FyZC90cWMvdHFtODI3Mi90cW04MjcyLmMKKysrIGIvYm9hcmQvdHFjL3RxbTgyNzIvdHFtODI3Mi5jCkBAIC0yODcsNyArMjg3LDcgQEAKIAljaGFyICpwID0gKGNoYXIgKikgSFdJQl9JTkZPX1NUQVJUX0FERFI7CiAKIAlwdXRzICgiQm9hcmQ6ICIpOwotCWlmICgqKCh1bnNpZ25lZCBsb25nICopcCkgPT0gKHVuc2lnbmVkIGxvbmcpQ0ZHX0hXSU5GT19NQUdJQykgeworCWlmICgqKCh1bnNpZ25lZCBsb25nICopcCkgPT0gKHVuc2lnbmVkIGxvbmcpQ09ORklHX1NZU19IV0lORk9fTUFHSUMpIHsKIAkJcHV0cyAocCk7CiAJfSBlbHNlIHsKIAkJcHV0cyAoIk5vIEhXSUIgYXNzdW1pbmcgVFFNODI3MiIpOwpAQCAtMzI3LDcgKzMyNyw3IEBACiB7CiAjaWYgZGVmaW5lZChDT05GSUdfQk9BUkRfR0VUX0NQVV9DTEtfRikKIAlpbnQJY2xrID0gYm9hcmRfZ2V0X2NwdV9jbGtfZiAoKTsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJaW50CWJ1c21vZGUgPSAoaW1tci0+aW1fc2l1X2NvbmYuc2NfYmNyICYgQkNSX0VCTSA/IDEgOiAwKTsKIAlpbnQJY2FzOwogCkBAIC00MDQsNyArNDA0LDcgQEAKIAkgKi8KIAltYXhzaXplID0gKDEgKyAofm9yeCB8IDB4N2ZmZikpIC8gMjsKIAotCS8qIFNpbmNlIENGR19TRFJBTV9CQVNFIGlzIGFsd2F5cyAwICg/PyksIHdlIGFzc3VtZSB0aGF0CisJLyogU2luY2UgQ09ORklHX1NZU19TRFJBTV9CQVNFIGlzIGFsd2F5cyAwICg/PyksIHdlIGFzc3VtZSB0aGF0CiAJICogd2UgYXJlIGNvbmZpZ3VyaW5nIENTMSBpZiBiYXNlICE9IDAKIAkgKi8KIAlzZG1yX3B0ciA9IGJhc2UgPyAmbWVtY3RsLT5tZW1jX2xzZG1yIDogJm1lbWN0bC0+bWVtY19wc2RtcjsKQEAgLTQyOSw3ICs0MjksNyBAQAogCSAqICBhY2Nlc3NpbmcgdGhlIFNEUkFNIHdpdGggYSBzaW5nbGUtYnl0ZSB0cmFuc2FjdGlvbi4iCiAJICoKIAkgKiBUaGUgYXBwcm9wcmlhdGUgQlJ4L09SeCByZWdpc3RlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0IHdoZW4gd2UKLQkgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDRkdfU0RSQU1fQkFTRS4KKwkgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDT05GSUdfU1lTX1NEUkFNX0JBU0UuCiAJICovCiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfUFJFQTsKQEAgLTQ0MCw3ICs0NDAsNyBAQAogCQkqYmFzZSA9IGM7CiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfTVJXOwotCSooYmFzZSArIENGR19NUlNfT0ZGUykgPSBjOwkvKiBzZXR0aW5nIE1SIG9uIGFkZHJlc3MgbGluZXMgKi8KKwkqKGJhc2UgKyBDT05GSUdfU1lTX01SU19PRkZTKSA9IGM7CS8qIHNldHRpbmcgTVIgb24gYWRkcmVzcyBsaW5lcyAqLwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX05PUk0gfCBQU0RNUl9SRkVOOwogCSpiYXNlID0gYzsKQEAgLTQ1MywxMCArNDUzLDEwIEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJbG9uZyBzaXplOCwgc2l6ZTk7CiAjZW5kaWYKIAlsb25nIHBzaXplLCBsc2l6ZTsKQEAgLTQ2NCwyNyArNDY0LDI3IEBACiAJcHNpemUgPSAxNiAqIDEwMjQgKiAxMDI0OwogCWxzaXplID0gMDsKIAotCW1lbWN0bC0+bWVtY19wc3J0ID0gQ0ZHX1BTUlQ7Ci0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJLyogNjB4IFNEUkFNIHNldHVwOgogCSAqLwotCXNpemU4ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzhDT0wsIENGR19PUjFfOENPTCwKLQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UsIDgpOwotCXNpemU5ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzlDT0wsIENGR19PUjFfOUNPTCwKLQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UsIDkpOworCXNpemU4ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl84Q09MLCBDT05GSUdfU1lTX09SMV84Q09MLAorCQkJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDgpOworCXNpemU5ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl85Q09MLCBDT05GSUdfU1lTX09SMV85Q09MLAorCQkJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDkpOwogCiAJaWYgKHNpemU4IDwgc2l6ZTkpIHsKIAkJcHNpemUgPSBzaXplOTsKIAkJcHJpbnRmICgiKDYweDo5Q09MIC0gJWxkIE1CLCAiLCBwc2l6ZSA+PiAyMCk7CiAJfSBlbHNlIHsKLQkJcHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfOENPTCwgQ0ZHX09SMV84Q09MLAotCQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UsIDgpOworCQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOENPTCwgQ09ORklHX1NZU19PUjFfOENPTCwKKwkJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgOCk7CiAJCXByaW50ZiAoIig2MHg6OENPTCAtICVsZCBNQiwgIiwgcHNpemUgPj4gMjApOwogCX0KIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAlpY2FjaGVfZW5hYmxlICgpOwogCkBAIC01MTQsNyArNTE0LDcgQEAKIHN0YXRpYyBpbnQgZHVtcF9od2liKHZvaWQpCiB7CiAJSFdJQl9JTkZPCSpodyA9ICZod2luZjsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJY2hhciAqcyA9IGdldGVudigic2VyaWFsIyIpOwogCiAJaWYgKGh3LT5PSykgewpAQCAtNjA3LDcgKzYwNyw3IEBACiAKIAlkZWJfcHJpbnRmKCIgJXMgcG9pbnRlcjogJXBcbiIsIF9fRlVOQ1RJT05fXywgcCk7CiAJLyogSGVhZCA9IFRRTSAqLwotCWlmICgqKCh1bnNpZ25lZCBsb25nICopcCkgIT0gKHVuc2lnbmVkIGxvbmcpQ0ZHX0hXSU5GT19NQUdJQykgeworCWlmICgqKCh1bnNpZ25lZCBsb25nICopcCkgIT0gKHVuc2lnbmVkIGxvbmcpQ09ORklHX1NZU19IV0lORk9fTUFHSUMpIHsKIAkJZGViX3ByaW50ZigiTm8gSFdJQlxuIik7CiAJCXJldHVybiAtMTsKIAl9CkBAIC03MDQsNyArNzA0LDcgQEAKIAogCWh3LT5PSyA9IDE7CiAJLyogc2VhcmNoIE1BQyBBZGRyZXNzICovCi0Jd2hpbGUgKCgqcCAhPSAnXDAnKSAmJiAocG9zIDwgQ0ZHX0hXSU5GT19TSVpFKSkgeworCXdoaWxlICgoKnAgIT0gJ1wwJykgJiYgKHBvcyA8IENPTkZJR19TWVNfSFdJTkZPX1NJWkUpKSB7CiAJCWlmICgqcCA8ICcgJyB8fCAqcCA+ICd+JykgeyAvKiBBU0NJSSBzdHJpbmdzISAqLwogCQkJcmV0dXJuIDA7CiAJCX0KQEAgLTc0NCw3ICs3NDQsNyBAQAogCWJ1ZltpKytdID0gJ00nOwogCWJ1ZltpKytdID0gJ1AnOwogCWJ1ZltpKytdID0gJ0MnOwotCWlmICgqKCh1bnNpZ25lZCBsb25nICopcCkgPT0gKHVuc2lnbmVkIGxvbmcpQ0ZHX0hXSU5GT19NQUdJQykgeworCWlmICgqKCh1bnNpZ25lZCBsb25nICopcCkgPT0gKHVuc2lnbmVkIGxvbmcpQ09ORklHX1NZU19IV0lORk9fTUFHSUMpIHsKIAkJYnVmW2krK10gPSAqJnBbM107CiAJCWJ1ZltpKytdID0gKiZwWzRdOwogCQlidWZbaSsrXSA9IComcFs1XTsKQEAgLTc2Nyw3ICs3NjcsNyBAQAogCWNoYXIgKnAgPSAoY2hhciAqKSBIV0lCX0lORk9fU1RBUlRfQUREUjsKIAlpbnQgaSA9IDA7CiAKLQlpZiAoKigodW5zaWduZWQgbG9uZyAqKXApID09ICh1bnNpZ25lZCBsb25nKUNGR19IV0lORk9fTUFHSUMpIHsKKwlpZiAoKigodW5zaWduZWQgbG9uZyAqKXApID09ICh1bnNpZ25lZCBsb25nKUNPTkZJR19TWVNfSFdJTkZPX01BR0lDKSB7CiAJCWlmIChzZWFyY2hfcmVhbF9idXNjbGsgKCZpKSkKIAkJCXJldHVybiBpOwogCX0KQEAgLTc3OSw3ICs3NzksNyBAQAogCiBzdGF0aWMgaW50IGNhbl90ZXN0ICh1bnNpZ25lZCBsb25nIG9mZikKIHsKLQl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyCSpiYXNlCT0gKHVuc2lnbmVkIGNoYXIgKikgKENGR19DQU5fQkFTRSArIG9mZik7CisJdm9sYXRpbGUgdW5zaWduZWQgY2hhcgkqYmFzZQk9ICh1bnNpZ25lZCBjaGFyICopIChDT05GSUdfU1lTX0NBTl9CQVNFICsgb2ZmKTsKIAogCSooYmFzZSArIDB4MTcpID0gJ1QnOwogCSooYmFzZSArIDB4MTgpID0gJ1EnOwpAQCAtNzk0LDkgKzc5NCw5IEBACiAKIHN0YXRpYyBpbnQgY2FuX2NvbmZpZ19vbmUgKHVuc2lnbmVkIGxvbmcgb2ZmKQogewotCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIJKmN0cmwJPSAodW5zaWduZWQgY2hhciAqKSAoQ0ZHX0NBTl9CQVNFICsgb2ZmKTsKLQl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyCSpjcHVfaWYgPSAodW5zaWduZWQgY2hhciAqKSAoQ0ZHX0NBTl9CQVNFICsgb2ZmICsgMHgwMik7Ci0Jdm9sYXRpbGUgdW5zaWduZWQgY2hhcgkqY2xrb3V0ID0gKHVuc2lnbmVkIGNoYXIgKikgKENGR19DQU5fQkFTRSArIG9mZiArIDB4MWYpOworCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIJKmN0cmwJPSAodW5zaWduZWQgY2hhciAqKSAoQ09ORklHX1NZU19DQU5fQkFTRSArIG9mZik7CisJdm9sYXRpbGUgdW5zaWduZWQgY2hhcgkqY3B1X2lmID0gKHVuc2lnbmVkIGNoYXIgKikgKENPTkZJR19TWVNfQ0FOX0JBU0UgKyBvZmYgKyAweDAyKTsKKwl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyCSpjbGtvdXQgPSAodW5zaWduZWQgY2hhciAqKSAoQ09ORklHX1NZU19DQU5fQkFTRSArIG9mZiArIDB4MWYpOwogCXVuc2lnbmVkIGNoYXIgdGVtcDsKIAogCSpjcHVfaWYgPSAweDQ1OwpAQCAtODI1LDEzICs4MjUsMTMgQEAKIAogc3RhdGljIGludCBpbml0X2NhbiAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICogaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqIGltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1yLT5pbV9tZW1jdGw7CiAJaW50CWNvdW50ID0gMDsKIAogCWlmICgoaHdpbmYuT0spICYmIChod2luZi5jYW4pKSB7Ci0JCW1lbWN0bC0+bWVtY19vcjQgPSBDRkdfQ0FOX09SOwotCQltZW1jdGwtPm1lbWNfYnI0ID0gQ0ZHX0NBTl9CUjsKKwkJbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfQ0FOX09SOworCQltZW1jdGwtPm1lbWNfYnI0ID0gQ09ORklHX1NZU19DQU5fQlI7CiAJCS8qIHVwbSBJbml0ICovCiAJCXVwbWNvbmZpZyAoVVBNQywgKHVpbnQgKikgdXBtVGFibGVGYXN0LAogCQkJICAgc2l6ZW9mICh1cG1UYWJsZUZhc3QpIC8gc2l6ZW9mICh1aW50KSk7CkBAIC04NDIsNyArODQyLDcgQEAKIAkJCQkJTXhNUl9PUF9OT1JNKTsKIAkJLyogY2FuIGNvbmZpZ3VyZSAqLwogCQljb3VudCA9IGNhbl9jb25maWcgKCk7Ci0JCXByaW50ZiAoIkNBTjoJJWQgQCAleFxuIiwgY291bnQsIENGR19DQU5fQkFTRSk7CisJCXByaW50ZiAoIkNBTjoJJWQgQCAleFxuIiwgY291bnQsIENPTkZJR19TWVNfQ0FOX0JBU0UpOwogCQlpZiAoaHdpbmYuY2FuICE9IGNvdW50KSBwcmludGYoIiEhISBkaWZmZXJlbmNlIHRvIEhXSUJcbiIpOwogCX0gZWxzZSB7CiAJCXByaW50ZiAoIkNBTjoJTm9cbiIpOwpAQCAtODcwLDcgKzg3MCw3IEBACiAJICAiXG4iCiApOwogCi0jaWZkZWYgQ0ZHX1VQREFURV9GTEFTSF9TSVpFCisjaWZkZWYgQ09ORklHX1NZU19VUERBVEVfRkxBU0hfU0laRQogc3RhdGljIGludCBnZXRfZmxhc2hfdGltaW5nICh2b2lkKQogewogCS8qIGdldCBpdCBmcm9tIHRoZSBvcHRpb24gLXRmIGluIENJQiAqLwpAQCAtOTE1LDcgKzkxNSw3IEBACiAvKiBVcGRhdGUgdGhlIEZsYXNoX1NpemUgYW5kIHRoZSBGbGFzaCBUaW1pbmcgKi8KIGludCB1cGRhdGVfZmxhc2hfc2l6ZSAoaW50IGZsYXNoX3NpemUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqIGltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKiBpbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tci0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgcmVnOwogCXVuc2lnbmVkIGxvbmcgdGltOwpAQCAtOTM3LDcgKzkzNyw3IEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCWltbWFwLT5pbV9jbGtyc3QuY2FyX3NjY3IgfD0gTTgyNlhfU0NDUl9QQ0lfTU9ERV9FTjsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2JvYXJkL3RxYy90cW04MzR4L3BjaS5jIGIvYm9hcmQvdHFjL3RxbTgzNHgvcGNpLmMKaW5kZXggZTNkMDMwOS4uMGVlZGY0YSAxMDA2NDQKLS0tIGEvYm9hcmQvdHFjL3RxbTgzNHgvcGNpLmMKKysrIGIvYm9hcmQvdHFjL3RxbTgzNHgvcGNpLmMKQEAgLTI5LDggKzI5LDggQEAKICNpZmRlZiBDT05GSUdfUENJCiAKIC8qIFN5c3RlbSBSQU0gbWFwcGVkIHRvIFBDSSBzcGFjZSAqLwotI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fQlVTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9QSFlTCUNGR19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9CVVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9QSFlTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQogI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fU0laRQkoMTAyNCAqIDEwMjQgKiAxMDI0KQogCiAjaWZuZGVmIENPTkZJR19QQ0lfUE5QCkBAIC03OCw3ICs3OCw3IEBACiAJdTMyIHJlZzMyOwogCXN0cnVjdAlwY2lfY29udHJvbGxlciAqIGhvc2U7CiAKLQlpbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwlpbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJY2xrID0gKGNsazgzeHhfdCAqKSZpbW1yLT5jbGs7CiAJcGNpX2xhdyA9IGltbXItPnN5c2NvbmYucGNpbGF3OwogCXBjaV9wb3QgPSBpbW1yLT5pb3MucG90OwpAQCAtMTI4LDEwICsxMjgsMTAgQEAKIAkvKgogCSAqIENvbmZpZ3VyZSBQQ0kgTG9jYWwgQWNjZXNzIFdpbmRvd3MKIAkgKi8KLQlwY2lfbGF3WzBdLmJhciA9IENGR19QQ0kxX01FTV9QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzBdLmJhciA9IENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1swXS5hciA9IExBV0FSX0VOIHwgTEFXQVJfU0laRV81MTJNOwogCi0JcGNpX2xhd1sxXS5iYXIgPSBDRkdfUENJMV9JT19QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzFdLmJhciA9IENPTkZJR19TWVNfUENJMV9JT19QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzFdLmFyID0gTEFXQVJfRU4gfCBMQVdBUl9TSVpFXzE2TTsKIAogCS8qCkBAIC0xMzksMTMgKzEzOSwxMyBAQAogCSAqLwogCiAJLyogUENJMSBtZW0gc3BhY2UgKi8KLQlwY2lfcG90WzBdLnBvdGFyID0gKENGR19QQ0kxX01FTV9CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFswXS5wb2JhciA9IChDRkdfUENJMV9NRU1fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbMF0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7CisJcGNpX3BvdFswXS5wb2JhciA9IChDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzBdLnBvY21yID0gUE9DTVJfRU4gfCAoUE9DTVJfQ01fNTEyTSAmIFBPQ01SX0NNX01BU0spOwogCiAJLyogUENJMSBJTyBzcGFjZSAqLwotCXBjaV9wb3RbMV0ucG90YXIgPSAoQ0ZHX1BDSTFfSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOwotCXBjaV9wb3RbMV0ucG9iYXIgPSAoQ0ZHX1BDSTFfSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbMV0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzFdLnBvYmFyID0gKENPTkZJR19TWVNfUENJMV9JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CiAJcGNpX3BvdFsxXS5wb2NtciA9IFBPQ01SX0VOIHwgUE9DTVJfSU8gfCAoUE9DTVJfQ01fMTZNICYgUE9DTVJfQ01fTUFTSyk7CiAKIAkvKgpAQCAtMTY0LDE2ICsxNjQsMTYgQEAKIAogCS8qIFBDSSBtZW1vcnkgc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJICAgICAgIENGR19QQ0kxX01FTV9CQVNFLAotCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1BIWVMsCi0JCSAgICAgICBDRkdfUENJMV9NRU1fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCS8qIFBDSSBJTyBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkgICAgICAgQ0ZHX1BDSTFfSU9fQkFTRSwKLQkJICAgICAgIENGR19QQ0kxX0lPX1BIWVMsCi0JCSAgICAgICBDRkdfUENJMV9JT19TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9JTyk7CiAKIAkvKiBTeXN0ZW0gbWVtb3J5IHNwYWNlICovCkBAIC0xODYsOCArMTg2LDggQEAKIAlob3NlLT5yZWdpb25fY291bnQgPSAzOwogCiAJcGNpX3NldHVwX2luZGlyZWN0KGhvc2UsCi0JCQkgICAoQ0ZHX0lNTVIrMHg4MzAwKSwKLQkJCSAgIChDRkdfSU1NUisweDgzMDQpKTsKKwkJCSAgIChDT05GSUdfU1lTX0lNTVIrMHg4MzAwKSwKKwkJCSAgIChDT05GSUdfU1lTX0lNTVIrMHg4MzA0KSk7CiAKIAlwY2lfcmVnaXN0ZXJfaG9zZShob3NlKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvdHFjL3RxbTgzNHgvdHFtODM0eC5jIGIvYm9hcmQvdHFjL3RxbTgzNHgvdHFtODM0eC5jCmluZGV4IDI3ODc4MGQuLjEwNmNhYzIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3RxYy90cW04MzR4L3RxbTgzNHguYworKysgYi9ib2FyZC90cWMvdHFtODM0eC90cW04MzR4LmMKQEAgLTY3LDcgKzY3LDcgQEAKIHN0YXRpYyB2b2lkIHNldF9kZHJfY29uZmlnKHZvaWQpOwogCiAvKiBMb2NhbCB2YXJpYWJsZSAqLwotc3RhdGljIHZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKK3N0YXRpYyB2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEJvYXJkIGluaXRpYWx6YXRpb24gYWZ0ZXIgcmVsb2NhdGlvbiB0byBSQU0uIFVzZWQgdG8gZGV0ZWN0IHRoZSBudW1iZXIKQEAgLTkyLDEzICs5MiwxMyBAQAogCWludCBjczsKIAogCS8qIGR1cmluZyBzaXplIGRldGVjdGlvbiwgc2V0IHVwIHRoZSBtYXggRERSTEFXIHNpemUgKi8KLQlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ0ZHX0REUl9CQVNFOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9CQVNFOwogCWltLT5zeXNjb25mLmRkcmxhd1swXS5hciA9IChMQVdBUl9FTiB8IExBV0FSX1NJWkVfMkcpOwogCiAJLyogc2V0IENTIGJvdW5kcyB0byBtYXhpbXVtIHNpemUgKi8KIAlmb3IoY3MgPSAwOyBjcyA8IDQ7ICsrY3MpIHsKIAkJc2V0X2NzX2JvdW5kcyhjcywKLQkJCUNGR19ERFJfQkFTRSArIChjcyAqIEREUl9NQVhfU0laRV9QRVJfQ1MpLAorCQkJQ09ORklHX1NZU19ERFJfQkFTRSArIChjcyAqIEREUl9NQVhfU0laRV9QRVJfQ1MpLAogCQkJRERSX01BWF9TSVpFX1BFUl9DUyk7CiAKIAkJc2V0X2NzX2NvbmZpZyhjcywgSU5JVElBTF9DU19DT05GSUcpOwpAQCAtMTIyLDcgKzEyMiw3IEBACiAJCWRlYnVnKCJcbkRldGVjdGluZyBCYW5rJWRcbiIsIGNzKTsKIAogCQliYW5rX3NpemUgPSBnZXRfZGRyX2Jhbmtfc2l6ZShjcywKLQkJCSh2b2xhdGlsZSBsb25nKikoQ0ZHX0REUl9CQVNFICsgc2l6ZSkpOworCQkJKHZvbGF0aWxlIGxvbmcqKShDT05GSUdfU1lTX0REUl9CQVNFICsgc2l6ZSkpOwogCQlzaXplICs9IGJhbmtfc2l6ZTsKIAogCQlkZWJ1ZygiRERSIEJhbmslZCBzaXplOiAlZCBNaUJcblxuIiwgY3MsIGJhbmtfc2l6ZSA+PiAyMCk7CkBAIC0xNDUsNyArMTQ1LDcgQEAKIAl2b2xhdGlsZSBpbW1hcF90ICogaW1tcjsKIAl1MzIgdywgZjsKIAotCWltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAlpZiAoIShpbW1yLT5yZXNldC5yY3doICYgSFJDV0hfUENJX0hPU1QpKSB7CiAJCXByaW50ZigiUENJOiAgIE5PVCBpbiBob3N0IG1vZGUuLj8hXG4iKTsKIAkJcmV0dXJuIDA7CkBAIC0xOTMsOSArMTkzLDkgQEAKIAl0cW04MzR4X251bV9mbGFzaF9iYW5rcyA9IDI7CS8qIGFzc3VtZSB0d28gYmFua3MgKi8KIAogCS8qIEdldCBiYW5rIDEgYW5kIDIgaW5mb3JtYXRpb24gKi8KLQliYW5rMV9zaXplID0gZmxhc2hfZ2V0X3NpemUoQ0ZHX0ZMQVNIX0JBU0UsIDApOworCWJhbmsxX3NpemUgPSBmbGFzaF9nZXRfc2l6ZShDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIDApOwogCWRlYnVnKCJCYW5rMSBzaXplOiAlbHVcbiIsIGJhbmsxX3NpemUpOwotCWJhbmsyX3NpemUgPSBmbGFzaF9nZXRfc2l6ZShDRkdfRkxBU0hfQkFTRSArIGJhbmsxX3NpemUsIDEpOworCWJhbmsyX3NpemUgPSBmbGFzaF9nZXRfc2l6ZShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBiYW5rMV9zaXplLCAxKTsKIAlkZWJ1ZygiQmFuazIgc2l6ZTogJWx1XG4iLCBiYW5rMl9zaXplKTsKIAl0b3RhbF9zaXplID0gYmFuazFfc2l6ZSArIGJhbmsyX3NpemU7CiAKQEAgLTIwMyw4ICsyMDMsOCBAQAogCQkvKiBTZWVtcyBsaWtlIHdlJ3ZlIGdvdCBiYW5rIDIsIGJ1dCBtYXliZSBpdCdzIG1pcnJvcmVkIDEgKi8KIAogCQkvKiBTZXQgdGhlIGJhc2UgYWRkcmVzc2VzICovCi0JCWJhbmsxX2Jhc2UgPSAoRlBXViAqKSAoQ0ZHX0ZMQVNIX0JBU0UpOwotCQliYW5rMl9iYXNlID0gKEZQV1YgKikgKENGR19GTEFTSF9CQVNFICsgYmFuazFfc2l6ZSk7CisJCWJhbmsxX2Jhc2UgPSAoRlBXViAqKSAoQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKKwkJYmFuazJfYmFzZSA9IChGUFdWICopIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBiYW5rMV9zaXplKTsKIAogCQkvKiBQdXQgYmFuayAyIGludG8gQ0ZJIGNvbW1hbmQgbW9kZSBhbmQgcmVhZCAqLwogCQliYW5rMl9iYXNlWzB4NTVdID0gMHgwMDk4MDA5ODsKQEAgLTI1Myw5ICsyNTMsOSBAQAogCWRlYnVnKCJOdW1iZXIgb2YgZmxhc2ggYmFua3MgZGV0ZWN0ZWQ6ICVkXG4iLCB0cW04MzR4X251bV9mbGFzaF9iYW5rcyk7CiAKIAkvKiBzZXQgT1IwIGFuZCBCUjAgKi8KLQlpbS0+bGJ1cy5iYW5rWzBdLm9yID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8CisJaW0tPmxidXMuYmFua1swXS5vciA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwKIAkJKC0odG90YWxfc2l6ZSkgJiBPUl9HUENNX0FNKTsKLQlpbS0+bGJ1cy5iYW5rWzBdLmJyID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkEpIHwKKwlpbS0+bGJ1cy5iYW5rWzBdLmJyID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBKSB8CiAJCShCUl9NU19HUENNIHwgQlJfUFNfMzIgfCBCUl9WKTsKIAogCXJldHVybiAoMCk7CmRpZmYgLS1naXQgYS9ib2FyZC90cWMvdHFtODV4eC9sYXcuYyBiL2JvYXJkL3RxYy90cW04NXh4L2xhdy5jCmluZGV4IGRlM2VhMDAuLmZjOTJjZDggMTAwNjQ0Ci0tLSBhL2JvYXJkL3RxYy90cW04NXh4L2xhdy5jCisrKyBiL2JvYXJkL3RxYy90cW04NXh4L2xhdy5jCkBAIC02NiwyMCArNjYsMjAgQEAKICNlbmRpZgogCiBzdHJ1Y3QgbGF3X2VudHJ5IGxhd190YWJsZVtdID0gewotCVNFVF9MQVcoQ0ZHX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9ERFIpLAotCVNFVF9MQVcoQ0ZHX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCi0JU0VUX0xBVyhDRkdfTEJDX0ZMQVNIX0JBU0UsIExBV18zX1NJWkUsIExBV19UUkdUX0lGX0xCQyksCi0JU0VUX0xBVyhDRkdfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9ERFIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0kpLAorCVNFVF9MQVcoQ09ORklHX1NZU19MQkNfRkxBU0hfQkFTRSwgTEFXXzNfU0laRSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSSksCiAjaWZkZWYgQ09ORklHX1BDSUUxCi0JU0VUX0xBVyhDRkdfUENJRTFfTUVNX0JBU0UsIExBV181X1NJWkUsIExBV19UUkdUX0lGX1BDSUVfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFLCBMQVdfNV9TSVpFLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAogI2Vsc2UgLyogIUNPTkZJR19QQ0lFMSAqLwotCVNFVF9MQVcoQ0ZHX1JJT19NRU1fQkFTRSwgTEFXXzVfU0laRSwgTEFXX1RSR1RfSUZfUklPKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUklPX01FTV9CQVNFLCBMQVdfNV9TSVpFLCBMQVdfVFJHVF9JRl9SSU8pLAogI2VuZGlmIC8qIENPTkZJR19QQ0lFMSAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NBTl9EUklWRVIpIHx8IGRlZmluZWQoQ09ORklHX05BTkQpCi0JU0VUX0xBVyhDRkdfQ0FOX0JBU0UsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfQ0FOX0JBU0UsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfTEJDKSwKICNlbmRpZiAvKiBDT05GSUdfQ0FOX0RSSVZFUiB8fCBDT05GSUdfTkFORCAqLwogI2lmZGVmIENPTkZJR19QQ0lFMQotCVNFVF9MQVcoQ0ZHX1BDSUUxX0lPX0JBU0UsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTFfSU9fQkFTRSwgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAogI2VuZGlmIC8qIENPTkZJR19QQ0lFICovCiB9OwogCmRpZmYgLS1naXQgYS9ib2FyZC90cWMvdHFtODV4eC9uYW5kLmMgYi9ib2FyZC90cWMvdHFtODV4eC9uYW5kLmMKaW5kZXggOWM1YzEyYy4uZGVhNjUyZCAxMDA2NDQKLS0tIGEvYm9hcmQvdHFjL3RxbTg1eHgvbmFuZC5jCisrKyBiL2JvYXJkL3RxYy90cW04NXh4L25hbmQuYwpAQCAtNDEsMTAgKzQxLDEwIEBACiBleHRlcm4gdWludCBnZXRfbGJjX2Nsb2NrICh2b2lkKTsKIAogLyogaW5kZXggb2YgVVBNIFJBTSBhcnJheSBydW4gcGF0dGVybiBmb3IgTkFORCBjb21tYW5kIGN5Y2xlICovCi0jZGVmaW5lCUNGR19OQU5fVVBNX1dSSVRFX0NNRF9PRlMJMHgwOAorI2RlZmluZQlDT05GSUdfU1lTX05BTl9VUE1fV1JJVEVfQ01EX09GUwkweDA4CiAKIC8qIGluZGV4IG9mIFVQTSBSQU0gYXJyYXkgcnVuIHBhdHRlcm4gZm9yIE5BTkQgYWRkcmVzcyBjeWNsZSAqLwotI2RlZmluZQlDRkdfTkFORF9VUE1fV1JJVEVfQUREUl9PRlMJMHgxMAorI2RlZmluZQlDT05GSUdfU1lTX05BTkRfVVBNX1dSSVRFX0FERFJfT0ZTCTB4MTAKIAogLyogU3RydWN0dXJlIGZvciB0YWJsZSB3aXRoIHN1cHBvcnRlZCBVUE0gdGltaW5ncyAqLwogc3RydWN0IHVwbV9mcmVxIHsKQEAgLTM3Nyw3ICszNzcsNyBAQAogICovCiBzdGF0aWMgdm9pZCB1cG1iX3dyaXRlICh1X2NoYXIgYWRkciwgdWxvbmcgdmFsKQogewotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCiAJb3V0X2JlMzIgKCZsYmMtPm1kciwgdmFsKTsKIApAQCAtMzg1LDcgKzM4NSw3IEBACiAJCQlNeE1SX09QX1dBUlIgfCAoYWRkciAmIE14TVJfTUFEX01TSykpOwogCiAJLyogZHVtbXkgYWNjZXNzIHRvIHBlcmZvcm0gd3JpdGUgKi8KLQlvdXRfOCAoKHZvaWQgX19pb21lbSAqKUNGR19OQU5EMF9CQVNFLCAwKTsKKwlvdXRfOCAoKHZvaWQgX19pb21lbSAqKUNPTkZJR19TWVNfTkFORDBfQkFTRSwgMCk7CiAKIAljbHJiaXRzX2JlMzIoJmxiYy0+bWJtciwgTXhNUl9PUF9XQVJSKTsKIH0KQEAgLTM5NiwxMSArMzk2LDExIEBACiBzdGF0aWMgdm9pZCBuYW5kX3VwbV9zZXR1cCAodm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjKQogewogCXVpbnQgaTsKLQl1aW50IG9yMyA9IENGR19PUjNfUFJFTElNOworCXVpbnQgb3IzID0gQ09ORklHX1NZU19PUjNfUFJFTElNOwogCXVpbnQgY2xvY2sgPSBnZXRfbGJjX2Nsb2NrICgpOwogCiAJb3V0X2JlMzIgKCZsYmMtPmJyMywgMCk7CS8qIGRpc2FibGUgYmFuayBhbmQgcmVzZXQgYWxsIGJpdHMgKi8KLQlvdXRfYmUzMiAoJmxiYy0+YnIzLCBDRkdfQlIzX1BSRUxJTSk7CisJb3V0X2JlMzIgKCZsYmMtPmJyMywgQ09ORklHX1NZU19CUjNfUFJFTElNKTsKIAogCS8qCiAJICogU2VhcmNoIGFwcHJvcHJpYXRlIFVQTSB0YWJsZSBmb3IgYnVzIGNsb2NrLgpAQCAtNDU1LDcgKzQ1NSw3IEBACiAKIGludCBib2FyZF9uYW5kX2luaXQgKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAKIAlpZiAoIW5hbmRfdXBtX3BhdHQpCiAJCW5hbmRfdXBtX3NldHVwIChsYmMpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvdHFjL3RxbTg1eHgvc2RyYW0uYyBiL2JvYXJkL3RxYy90cW04NXh4L3NkcmFtLmMKaW5kZXggMzNiYzQwNy4uNzgzYjI4MCAxMDA2NDQKLS0tIGEvYm9hcmQvdHFjL3RxbTg1eHgvc2RyYW0uYworKysgYi9ib2FyZC90cWMvdHFtODV4eC9zZHJhbS5jCkBAIC02Niw5ICs2Niw5IEBACiBsb25nIGludCBzZHJhbV9zZXR1cCAoaW50IGNhc2wpCiB7CiAJaW50IGk7Ci0Jdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRERSX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9ERFJfQUREUik7CiAjaWZkZWYgQ09ORklHX1RRTTg1NDgKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogI2Vsc2UgLyogIUNPTkZJR19UUU04NTQ4ICovCiAJdW5zaWduZWQgbG9uZyBjZmdfZGRyX3RpbWluZzE7CiAJdW5zaWduZWQgbG9uZyBjZmdfZGRyX21vZGU7CkBAIC0yOTYsNyArMjk2LDcgQEAKIAkgKiBUaGlzIERMTC1PdmVycmlkZSBvbmx5IHVzZWQgb24gVFFNODU0MCBhbmQgVFFNODU2MAogCSAqLwogCXsKLQkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAJCWludCBpLCB4OwogCiAJCXggPSAxMDsKQEAgLTMzNiwxMSArMzM2LDExIEBACiAJcmV0dXJuIGRyYW1fc2l6ZTsKIH0KIAotI2lmIGRlZmluZWQoQ0ZHX0RSQU1fVEVTVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRFJBTV9URVNUKQogaW50IHRlc3RkcmFtICh2b2lkKQogewotCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENGR19NRU1URVNUX1NUQVJUOwotCXVpbnQgKnBlbmQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9FTkQ7CisJdWludCAqcHN0YXJ0ID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOworCXVpbnQgKnBlbmQgPSAodWludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfRU5EOwogCXVpbnQgKnA7CiAKIAlwcmludGYgKCJTRFJBTSB0ZXN0IHBoYXNlIDE6XG4iKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3RxYy90cW04NXh4L3RsYi5jIGIvYm9hcmQvdHFjL3RxbTg1eHgvdGxiLmMKaW5kZXggMzgwNDQ4YS4uMTZiMTAyZCAxMDA2NDQKLS0tIGEvYm9hcmQvdHFjL3RxbTg1eHgvdGxiLmMKKysrIGIvYm9hcmQvdHFjL3RxbTg1eHgvdGxiLmMKQEAgLTI4LDE5ICsyOCwxOSBAQAogCiBzdHJ1Y3QgZnNsX2VfdGxiX2VudHJ5IHRsYl90YWJsZVtdID0gewogCS8qIFRMQiAwIC0gZm9yIHRlbXAgc3RhY2sgaW4gY2FjaGUgKi8KLQlTRVRfVExCX0VOVFJZICgwLCBDRkdfSU5JVF9SQU1fQUREUiwgQ0ZHX0lOSVRfUkFNX0FERFIsCisJU0VUX1RMQl9FTlRSWSAoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsCiAJCSAgICAgICBNQVMzX1NYIHwgTUFTM19TVyB8IE1BUzNfU1IsIDAsCiAJCSAgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkgKDAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCi0JCSAgICAgICBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkgKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAorCQkgICAgICAgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCiAJCSAgICAgICBNQVMzX1NYIHwgTUFTM19TVyB8IE1BUzNfU1IsIDAsCiAJCSAgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkgKDAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCi0JCSAgICAgICBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkgKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAorCQkgICAgICAgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCiAJCSAgICAgICBNQVMzX1NYIHwgTUFTM19TVyB8IE1BUzNfU1IsIDAsCiAJCSAgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkgKDAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAotCQkgICAgICAgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSAoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAorCQkgICAgICAgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCAwLAogCQkgICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKIApAQCAtNTAsMTEgKzUwLDExIEBACiAJICogMHhmODAwMDAwMAkxMjhNCUZMQVNICiAJICogT3V0IG9mIHJlc2V0IHRoaXMgZW50cnkgaXMgb25seSA0Sy4KIAkgKi8KLQlTRVRfVExCX0VOVFJZICgxLCBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UsCisJU0VUX1RMQl9FTlRSWSAoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCiAJCSAgICAgICBNQVMzX1NYIHwgTUFTM19TVyB8IE1BUzNfU1IsIE1BUzJfSSB8IE1BUzJfRywKIAkJICAgICAgIDAsIDEsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAotCVNFVF9UTEJfRU5UUlkgKDEsIENGR19GTEFTSF9CQVNFICsgMHg0MDAwMDAwLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSAoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwMDAwLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwMDAwLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtNjIsNyArNjIsNyBAQAogCSAqIFRMQiAyOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweDgwMDAwMDAwCTI1Nk0JUENJMSBNRU0gRmlyc3QgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkgKDEsIENGR19QQ0kxX01FTV9QSFlTLCBDRkdfUENJMV9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC03MCw4ICs3MCw4IEBACiAJICogVExCIDM6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4OTAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBTZWNvbmQgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkgKDEsIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKLQkJICAgICAgIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgMywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC04MCw3ICs4MCw3IEBACiAJICogVExCIDQ6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4YzAwMDAwMDAJMjU2TQlQQ0kgZXhwcmVzcyBNRU0gRmlyc3QgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkgKDEsIENGR19QQ0lFMV9NRU1fQkFTRSwgQ0ZHX1BDSUUxX01FTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkgKDEsIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UsIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UsCiAJCSAgICAgICBNQVMzX1NYIHwgTUFTM19TVyB8IE1BUzNfU1IsIE1BUzJfSSB8IE1BUzJfRywKIAkJICAgICAgIDAsIDQsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtODgsOCArODgsOCBAQAogCSAqIFRMQiA1OgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGQwMDAwMDAwCTI1Nk0JUENJIGV4cHJlc3MgTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX1BDSUUxX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKLQkJICAgICAgIENGR19QQ0lFMV9NRU1fQkFTRSArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSAoMSwgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRSArIDB4MTAwMDAwMDAsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgNSwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogI2Vsc2UgLyogIUNPTkZJR19QQ0lFICovCkBAIC05Nyw3ICs5Nyw3IEBACiAJICogVExCIDQ6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4YzAwMDAwMDAJMjU2TQlSYXBpZCBJTyBNRU0gRmlyc3QgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkgKDEsIENGR19SSU9fTUVNX0JBU0UsIENGR19SSU9fTUVNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSAoMSwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UsIENPTkZJR19TWVNfUklPX01FTV9CQVNFLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCA0LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTEwNSw4ICsxMDUsOCBAQAogCSAqIFRMQiA1OgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGQwMDAwMDAwCTI1Nk0JUmFwaWQgSU8gTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsCi0JCSAgICAgICBDRkdfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsCisJCSAgICAgICBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsCiAJCSAgICAgICBNQVMzX1NYIHwgTUFTM19TVyB8IE1BUzNfU1IsIE1BUzJfSSB8IE1BUzJfRywKIAkJICAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKICNlbmRpZiAvKiBDT05GSUdfUENJRSAqLwpAQCAtMTE3LDcgKzExNyw3IEBACiAJICogMHhlMjAwMDAwMAkgMTZNCVBDSTEgSU8KIAkgKiAweGUzMDAwMDAwCSAxNk0JQ0FOIGFuZCBOQU5EIEZsYXNoCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX0NDU1JCQVIsIENGR19DQ1NSQkFSX1BIWVMsCisJU0VUX1RMQl9FTlRSWSAoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgNiwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTEyOCwxMiArMTI4LDEyIEBACiAJICogTWFrZSBzdXJlIHRoZSBUTEIgY291bnQgYXQgdGhlIHRvcCBvZiB0aGlzIHRhYmxlIGlzIGNvcnJlY3QuCiAJICogTGlrZWx5IGl0IG5lZWRzIHRvIGJlIGluY3JlYXNlZCBieSB0d28gZm9yIHRoZXNlIGVudHJpZXMuCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX0REUl9TRFJBTV9CQVNFLCBDRkdfRERSX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSAoMSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgNywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX0REUl9TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCwKLQkJICAgICAgIENGR19ERFJfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSAoMSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDAsCisJCSAgICAgICBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgOCwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC0xNDIsNyArMTQyLDcgQEAKIAkgKiBUTEIgOToJIDE2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhlZjAwMDAwMAkgMTZNCVBDSSBleHByZXNzIElPCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX1BDSUUxX0lPX0JBU0UsIENGR19QQ0lFMV9JT19CQVNFLAorCVNFVF9UTEJfRU5UUlkgKDEsIENPTkZJR19TWVNfUENJRTFfSU9fQkFTRSwgQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCA5LCBCT09LRV9QQUdFU1pfMTZNLCAxKSwKICNlbmRpZiAvKiBDT05GSUdfUENJRSAqLwpAQCAtMTU0LDE5ICsxNTQsMTkgQEAKIAkgKiAweGMwMDAwMDAwCSAgMUcJRkxBU0gKIAkgKiBPdXQgb2YgcmVzZXQgdGhpcyBlbnRyeSBpcyBvbmx5IDRLLgogCSAqLwotCVNFVF9UTEJfRU5UUlkgKDEsIENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgMywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAotCVNFVF9UTEJfRU5UUlkgKDEsIENGR19GTEFTSF9CQVNFICsgMHgxMDAwMDAwMCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDEwMDAwMDAwLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgxMDAwMDAwMCwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAotCVNFVF9UTEJfRU5UUlkgKDEsIENGR19GTEFTSF9CQVNFICsgMHgyMDAwMDAwMCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFICsgMHgyMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDIwMDAwMDAwLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgyMDAwMDAwMCwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgMSwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAotCVNFVF9UTEJfRU5UUlkgKDEsIENGR19GTEFTSF9CQVNFICsgMHgzMDAwMDAwMCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFICsgMHgzMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDMwMDAwMDAwLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgzMDAwMDAwMCwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC0xNzQsNyArMTc0LDcgQEAKIAkgKiBUTEIgNDoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg4MDAwMDAwMAkyNTZNCVBDSTEgTUVNIEZpcnN0IGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZICgxLCBDRkdfUENJMV9NRU1fUEhZUywgQ0ZHX1BDSTFfTUVNX1BIWVMsCisJU0VUX1RMQl9FTlRSWSAoMSwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCiAJCSAgICAgICBNQVMzX1NYIHwgTUFTM19TVyB8IE1BUzNfU1IsIE1BUzJfSSB8IE1BUzJfRywKIAkJICAgICAgIDAsIDQsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtMTgyLDggKzE4Miw4IEBACiAJICogVExCIDU6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4OTAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBTZWNvbmQgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkgKDEsIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKLQkJICAgICAgIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgNSwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC0xOTIsNyArMTkyLDcgQEAKIAkgKiBUTEIgNjoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhjMDAwMDAwMAkyNTZNCVBDSSBleHByZXNzIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX1BDSUUxX01FTV9CQVNFLCBDRkdfUENJRTFfTUVNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSAoMSwgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRSwgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRSwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgNiwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogI2Vsc2UgLyogIUNPTkZJR19QQ0lFICovCkBAIC0yMDAsNyArMjAwLDcgQEAKIAkgKiBUTEIgNjoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhiMDAwMDAwMAkyNTZNCVJhcGlkIElPIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX1JJT19NRU1fQkFTRSwgQ0ZHX1JJT19NRU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UsCiAJCSAgICAgICBNQVMzX1NYIHwgTUFTM19TVyB8IE1BUzNfU1IsIE1BUzJfSSB8IE1BUzJfRywKIAkJICAgICAgIDAsIDYsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtMjEyLDcgKzIxMiw3IEBACiAJICogMHhhMjAwMDAwMAkgMTZNCVBDSTEgSU8KIAkgKiAweGEzMDAwMDAwCSAxNk0JQ0FOIGFuZCBOQU5EIEZsYXNoCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX0NDU1JCQVIsIENGR19DQ1NSQkFSX1BIWVMsCisJU0VUX1RMQl9FTlRSWSAoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgNywgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTIyMywxMiArMjIzLDEyIEBACiAJICogTWFrZSBzdXJlIHRoZSBUTEIgY291bnQgYXQgdGhlIHRvcCBvZiB0aGlzIHRhYmxlIGlzIGNvcnJlY3QuCiAJICogTGlrZWx5IGl0IG5lZWRzIHRvIGJlIGluY3JlYXNlZCBieSB0d28gZm9yIHRoZXNlIGVudHJpZXMuCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX0REUl9TRFJBTV9CQVNFLCBDRkdfRERSX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSAoMSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgOCwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX0REUl9TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCwKLQkJICAgICAgIENGR19ERFJfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSAoMSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDAsCisJCSAgICAgICBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgOSwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC0yMzcsNyArMjM3LDcgQEAKIAkgKiBUTEIgMTA6CSAxNk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4YWYwMDAwMDAJIDE2TQlQQ0kgZXhwcmVzcyBJTwogCSAqLwotCVNFVF9UTEJfRU5UUlkgKDEsIENGR19QQ0lFMV9JT19CQVNFLCBDRkdfUENJRTFfSU9fQkFTRSwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UsIENPTkZJR19TWVNfUENJRTFfSU9fQkFTRSwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgMTAsIEJPT0tFX1BBR0VTWl8xNk0sIDEpLAogI2VuZGlmIC8qIENPTkZJR19QQ0lFICovCmRpZmYgLS1naXQgYS9ib2FyZC90cWMvdHFtODV4eC90cW04NXh4LmMgYi9ib2FyZC90cWMvdHFtODV4eC90cW04NXh4LmMKaW5kZXggNTMxNGQzMy4uZjY5ZGU5NSAxMDA2NDQKLS0tIGEvYm9hcmQvdHFjL3RxbTg1eHgvdHFtODV4eC5jCisrKyBiL2JvYXJkL3RxYy90cW04NXh4L3RxbTg1eHguYwpAQCAtMjY5LDcgKzI2OSw3IEBACiAKIGludCBtaXNjX2luaXRfciAodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2xiY190ICptZW1jdGwgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbWVtY3RsID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0xCQ19BRERSKTsKIAogCS8qCiAJICogQWRqdXN0IGZsYXNoIHN0YXJ0IGFuZCBvZmZzZXQgdG8gZGV0ZWN0ZWQgdmFsdWVzCkBAIC0yODIsOSArMjgyLDkgQEAKIAkgKi8KIAlpZiAoZmxhc2hfaW5mb1swXS5zaXplID4gMCkgewogCQltZW1jdGwtPm9yMSA9ICgoLWZsYXNoX2luZm9bMF0uc2l6ZSkgJiAweGZmZmY4MDAwKSB8Ci0JCQkoQ0ZHX09SMV9QUkVMSU0gJiAweDAwMDA3ZmZmKTsKKwkJCShDT05GSUdfU1lTX09SMV9QUkVMSU0gJiAweDAwMDA3ZmZmKTsKIAkJbWVtY3RsLT5icjEgPSBnZC0+YmQtPmJpX2ZsYXNoc3RhcnQgfAotCQkJKENGR19CUjFfUFJFTElNICYgMHgwMDAwN2ZmZik7CisJCQkoQ09ORklHX1NZU19CUjFfUFJFTElNICYgMHgwMDAwN2ZmZik7CiAJCS8qCiAJCSAqIFJlLWNoZWNrIHRvIGdldCBjb3JyZWN0IGJhc2UgYWRkcmVzcyBmb3IgYmFuayAxCiAJCSAqLwpAQCAtMjk4LDkgKzI5OCw5IEBACiAJICogIElmIGJhbmsgMSBpcyBlcXVpcHBlZCwgYmFuayAwIGlzIG1hcHBlZCBhZnRlciBiYW5rIDEKIAkgKi8KIAltZW1jdGwtPm9yMCA9ICgoLWZsYXNoX2luZm9bMV0uc2l6ZSkgJiAweGZmZmY4MDAwKSB8Ci0JCShDRkdfT1IwX1BSRUxJTSAmIDB4MDAwMDdmZmYpOworCQkoQ09ORklHX1NZU19PUjBfUFJFTElNICYgMHgwMDAwN2ZmZik7CiAJbWVtY3RsLT5icjAgPSAoZ2QtPmJkLT5iaV9mbGFzaHN0YXJ0ICsgZmxhc2hfaW5mb1swXS5zaXplKSB8Ci0JCShDRkdfQlIwX1BSRUxJTSAmIDB4MDAwMDdmZmYpOworCQkoQ09ORklHX1NZU19CUjBfUFJFTElNICYgMHgwMDAwN2ZmZik7CiAJLyoKIAkgKiBSZS1jaGVjayB0byBnZXQgY29ycmVjdCBiYXNlIGFkZHJlc3MgZm9yIGJhbmsgMAogCSAqLwpAQCAtMzExLDI2ICszMTEsMjYgQEAKIAkgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfQ0xFQVIsCiAJCSAgICAgICBnZC0+YmQtPmJpX2ZsYXNoc3RhcnQsIDB4ZmZmZmZmZmYsCi0JCSAgICAgICAmZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOworCQkgICAgICAgJmZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CiAKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKLQkJICAgICAgICZmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkgICAgICAgJmZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CiAKIAkvKiBFbnZpcm9ubWVudCBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAogCQkgICAgICAgQ09ORklHX0VOVl9BRERSLAogCQkgICAgICAgQ09ORklHX0VOVl9BRERSICsgQ09ORklHX0VOVl9TRUNUX1NJWkUgLSAxLAotCQkgICAgICAgJmZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKKwkJICAgICAgICZmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOwogCiAjaWZkZWYgQ09ORklHX0VOVl9BRERSX1JFRFVORAogCS8qIFJlZHVuZGFudCBlbnZpcm9ubWVudCBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAogCQkgICAgICAgQ09ORklHX0VOVl9BRERSX1JFRFVORCwKIAkJICAgICAgIENPTkZJR19FTlZfQUREUl9SRURVTkQgKyBDT05GSUdfRU5WX1NJWkVfUkVEVU5EIC0gMSwKLQkJICAgICAgICZmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CisJCSAgICAgICAmZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKICNlbmRpZgogCiAJcmV0dXJuIDA7CkBAIC0zNDIsNyArMzQyLDcgQEAKICAqLwogc3RhdGljIHZvaWQgdXBtY193cml0ZSAodV9jaGFyIGFkZHIsIHVpbnQgdmFsKQogewotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCiAJb3V0X2JlMzIgKCZsYmMtPm1kciwgdmFsKTsKIApAQCAtMzUwLDcgKzM1MCw3IEBACiAJCQlNeE1SX09QX1dBUlIgfCAoYWRkciAmIE14TVJfTUFEX01TSykpOwogCiAJLyogZHVtbXkgYWNjZXNzIHRvIHBlcmZvcm0gd3JpdGUgKi8KLQlvdXRfOCAoKHZvaWQgX19pb21lbSAqKUNGR19DQU5fQkFTRSwgMCk7CisJb3V0XzggKCh2b2lkIF9faW9tZW0gKilDT05GSUdfU1lTX0NBTl9CQVNFLCAwKTsKIAogCS8qIG5vcm1hbCBvcGVyYXRpb24gKi8KIAljbHJiaXRzX2JlMzIoJmxiYy0+bWNtciwgTXhNUl9PUF9XQVJSKTsKQEAgLTM1OSw3ICszNTksNyBAQAogCiB1aW50IGdldF9sYmNfY2xvY2sgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAJc3lzX2luZm9fdCBzeXNfaW5mbzsKIAl1bG9uZyBjbGtkaXYgPSBsYmMtPmxjcnIgJiAweDBmOwogCkBAIC0zNzYsNyArMzc2LDcgQEAKIAkJcmV0dXJuIHN5c19pbmZvLmZyZXFTeXN0ZW1CdXMgLyBjbGtkaXY7CiAJfQogCi0JcHV0cygiSW52YWxpZCBjbG9jayBkaXZpZGVyIHZhbHVlIGluIENGR19MQkNfTENSUlxuIik7CisJcHV0cygiSW52YWxpZCBjbG9jayBkaXZpZGVyIHZhbHVlIGluIENPTkZJR19TWVNfTEJDX0xDUlJcbiIpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zODYsOCArMzg2LDggQEAKICAqLwogdm9pZCBsb2NhbF9idXNfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOwotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCXVpbnQgbGJjX21oeiA9IGdldF9sYmNfY2xvY2sgKCkgIC8gMTAwMDAwMDsKIAogI2lmZGVmIENPTkZJR19NUEM4NTQ4CkBAIC00MTgsNyArNDE4LDcgQEAKIAkJZ3VyLT5sYml1aXBsbGRjcjEgPSBkdW1teTsKIAl9CiAKLQlsY3JyID0gQ0ZHX0xCQ19MQ1JSOworCWxjcnIgPSBDT05GSUdfU1lTX0xCQ19MQ1JSOwogCiAJLyoKIAkgKiBMb2NhbCBCdXMgQ2xvY2sgPiA4My4zIE1Iei4gQWNjb3JkaW5nIHRvIHRpbWluZwpAQCAtNDY0LDEyICs0NjQsMTIgQEAKIAkgKi8KIAogCWlmIChsYmNfbWh6IDwgNjYpIHsKLQkJbGJjLT5sY3JyID0gQ0ZHX0xCQ19MQ1JSIHwgTENSUl9EQllQOwkvKiBETEwgQnlwYXNzICovCisJCWxiYy0+bGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlIgfCBMQ1JSX0RCWVA7CS8qIERMTCBCeXBhc3MgKi8KIAkJbGJjLT5sdGVkciA9IExURURSX0JNRCB8IExURURSX1BBUkQgfCBMVEVEUl9XUEQgfCBMVEVEUl9XQVJBIHwKIAkJCSAgICAgTFRFRFJfUkFXQSB8IExURURSX0NTRDsJLyogRGlzYWJsZSBhbGwgZXJyb3IgY2hlY2tpbmcgKi8KIAogCX0gZWxzZSBpZiAobGJjX21oeiA+PSAxMzMpIHsKLQkJbGJjLT5sY3JyID0gQ0ZHX0xCQ19MQ1JSICYgKH5MQ1JSX0RCWVApOwkvKiBETEwgRW5hYmxlZCAqLworCQlsYmMtPmxjcnIgPSBDT05GSUdfU1lTX0xCQ19MQ1JSICYgKH5MQ1JSX0RCWVApOwkvKiBETEwgRW5hYmxlZCAqLwogCiAJfSBlbHNlIHsKIAkJLyoKQEAgLTQ4NCw3ICs0ODQsNyBAQAogCQkJbGJjLT5sY3JyID0gMHgxMDAwMDAwNDsKIAkJfQogCi0JCWxiYy0+bGNyciA9IENGR19MQkNfTENSUiAmICh+TENSUl9EQllQKTsJLyogRExMIEVuYWJsZWQgKi8KKwkJbGJjLT5sY3JyID0gQ09ORklHX1NZU19MQkNfTENSUiAmICh+TENSUl9EQllQKTsJLyogRExMIEVuYWJsZWQgKi8KIAkJdWRlbGF5ICgyMDApOwogCiAJCS8qCkBAIC01MDMsMTAgKzUwMywxMCBAQAogCSAqIHNldCBpZiBMb2NhbCBCdXMgQ2xvY2sgaXMgPiA4MyBNSHouCiAJICovCiAJaWYgKGxiY19taHogPiA4MykKLQkJb3V0X2JlMzIgKCZsYmMtPm9yMiwgQ0ZHX09SMl9DQU4gfCBPUl9VUE1fRUFEKTsKKwkJb3V0X2JlMzIgKCZsYmMtPm9yMiwgQ09ORklHX1NZU19PUjJfQ0FOIHwgT1JfVVBNX0VBRCk7CiAJZWxzZQotCQlvdXRfYmUzMiAoJmxiYy0+b3IyLCBDRkdfT1IyX0NBTik7Ci0Jb3V0X2JlMzIgKCZsYmMtPmJyMiwgQ0ZHX0JSMl9DQU4pOworCQlvdXRfYmUzMiAoJmxiYy0+b3IyLCBDT05GSUdfU1lTX09SMl9DQU4pOworCW91dF9iZTMyICgmbGJjLT5icjIsIENPTkZJR19TWVNfQlIyX0NBTik7CiAKIAkvKiBMR1BMNCBpcyBVUFdBSVQgKi8KIAlvdXRfYmUzMigmbGJjLT5tY21yLCBNeE1SX0RTeF8zX0NZQ0wgfCBNeE1SX0dQTF94NERJUyB8IE14TVJfV0xGeF8zWCk7CkBAIC01NDgsMTAgKzU0OCwxMCBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgaW5pdF9wY2kxKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpIHx8IGRlZmluZWQoQ09ORklHX1BDSTEpCiAJdWludCBob3N0X2FnZW50ID0gKGd1ci0+cG9yYm1zciAmIE1QQzg1eHhfUE9SQk1TUl9IQSkgPj4gMTY7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKUNGR19QQ0kxX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKUNPTkZJR19TWVNfUENJMV9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2kxX2hvc2U7CiAKQEAgLTU3OSwyNCArNTc5LDI0IEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbiAoaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkJQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJCUNGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkJQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCQlDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJCVBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uIChob3NlLT5yZWdpb25zICsgMSwKLQkJCQlDRkdfUENJMV9NRU1fQkFTRSwKLQkJCQlDRkdfUENJMV9NRU1fUEhZUywKLQkJCQlDRkdfUENJMV9NRU1fU0laRSwKKwkJCQlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UsCisJCQkJQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAorCQkJCUNPTkZJR19TWVNfUENJMV9NRU1fU0laRSwKIAkJCQlQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24gKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkJCUNGR19QQ0kxX0lPX0JBU0UsCi0JCQkJQ0ZHX1BDSTFfSU9fUEhZUywKLQkJCQlDRkdfUENJMV9JT19TSVpFLAorCQkJCUNPTkZJR19TWVNfUENJMV9JT19CQVNFLAorCQkJCUNPTkZJR19TWVNfUENJMV9JT19QSFlTLAorCQkJCUNPTkZJR19TWVNfUENJMV9JT19TSVpFLAogCQkJCVBDSV9SRUdJT05fSU8pOwogCiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7CkBAIC02MzYsMTEgKzYzNiwxMSBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgaW5pdF9wY2llMSh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAjaWZkZWYgQ09ORklHX1BDSUUxCiAJdWludCBpb19zZWwgPSAoZ3VyLT5wb3JkZXZzciAmIE1QQzg1eHhfUE9SREVWU1JfSU9fU0VMKSA+PiAxOTsKIAl1aW50IGhvc3RfYWdlbnQgPSAoZ3VyLT5wb3JibXNyICYgTVBDODV4eF9QT1JCTVNSX0hBKSA+PiAxNjsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopQ0ZHX1BDSUUxX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKUNPTkZJR19TWVNfUENJRTFfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpZTFfaG9zZTsKIAlpbnQgcGNpZV9lcCA9ICAoaG9zdF9hZ2VudCA9PSAwKSB8fCAoaG9zdF9hZ2VudCA9PSAyICkgfHwKQEAgLTY2MSwyMyArNjYxLDIzIEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbiAoaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkJQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJCUNGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkJQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCQlDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJCVBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbiAoaG9zZS0+cmVnaW9ucyArIDEsCi0JCQkJQ0ZHX1BDSUUxX01FTV9CQVNFLAotCQkJCUNGR19QQ0lFMV9NRU1fUEhZUywKLQkJCQlDRkdfUENJRTFfTUVNX1NJWkUsCisJCQkJQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRSwKKwkJCQlDT05GSUdfU1lTX1BDSUUxX01FTV9QSFlTLAorCQkJCUNPTkZJR19TWVNfUENJRTFfTUVNX1NJWkUsCiAJCQkJUENJX1JFR0lPTl9NRU0pOwogCiAJCS8qIG91dGJvdW5kIGlvICovCiAJCXBjaV9zZXRfcmVnaW9uIChob3NlLT5yZWdpb25zICsgMiwKLQkJCQlDRkdfUENJRTFfSU9fQkFTRSwKLQkJCQlDRkdfUENJRTFfSU9fUEhZUywKLQkJCQlDRkdfUENJRTFfSU9fU0laRSwKKwkJCQlDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UsCisJCQkJQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTLAorCQkJCUNPTkZJR19TWVNfUENJRTFfSU9fU0laRSwKIAkJCQlQQ0lfUkVHSU9OX0lPKTsKIAogCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwpkaWZmIC0tZ2l0IGEvYm9hcmQvdHFjL3RxbTh4eC9sb2FkX3Nlcm51bV9ldGhhZGRyLmMgYi9ib2FyZC90cWMvdHFtOHh4L2xvYWRfc2VybnVtX2V0aGFkZHIuYwppbmRleCAxNDNmMzY4Li5kMjY5OTAyIDEwMDY0NAotLS0gYS9ib2FyZC90cWMvdHFtOHh4L2xvYWRfc2VybnVtX2V0aGFkZHIuYworKysgYi9ib2FyZC90cWMvdHFtOHh4L2xvYWRfc2VybnVtX2V0aGFkZHIuYwpAQCAtNTIsMjEgKzUyLDIxIEBACiB2b2lkIGxvYWRfc2VybnVtX2V0aGFkZHIgKHZvaWQpCiB7CiAJdW5zaWduZWQgY2hhciAqaHdpOwotCXVuc2lnbmVkIGNoYXIgIHNlcmlhbCBbQ0ZHX0hXSU5GT19TSVpFXTsKLQl1bnNpZ25lZCBjaGFyICBldGhhZGRyW0NGR19IV0lORk9fU0laRV07CisJdW5zaWduZWQgY2hhciAgc2VyaWFsIFtDT05GSUdfU1lTX0hXSU5GT19TSVpFXTsKKwl1bnNpZ25lZCBjaGFyICBldGhhZGRyW0NPTkZJR19TWVNfSFdJTkZPX1NJWkVdOwogCXVuc2lnbmVkIHNob3J0IGloLCBpcywgaWUsIHBhcnQ7CiAKLQlod2kgPSAodW5zaWduZWQgY2hhciAqKShDRkdfRkxBU0hfQkFTRSArIENGR19IV0lORk9fT0ZGU0VUKTsKKwlod2kgPSAodW5zaWduZWQgY2hhciAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQpOwogCWloID0gaXMgPSBpZSA9IDA7CiAKLQlpZiAoKigodW5zaWduZWQgbG9uZyAqKWh3aSkgIT0gKHVuc2lnbmVkIGxvbmcpQ0ZHX0hXSU5GT19NQUdJQykgeworCWlmICgqKCh1bnNpZ25lZCBsb25nICopaHdpKSAhPSAodW5zaWduZWQgbG9uZylDT05GSUdfU1lTX0hXSU5GT19NQUdJQykgewogCQlyZXR1cm47CiAJfQogCiAJcGFydCA9IDE7CiAKIAkvKiBjb3B5IHNlcmlhbCAjIC8gTUFDIGFkZHJlc3MgKi8KLQl3aGlsZSAoKGh3aVtpaF0gIT0gJ1wwJykgJiYgKGloIDwgQ0ZHX0hXSU5GT19TSVpFKSkgeworCXdoaWxlICgoaHdpW2loXSAhPSAnXDAnKSAmJiAoaWggPCBDT05GSUdfU1lTX0hXSU5GT19TSVpFKSkgewogCQlpZiAoaHdpW2loXSA8ICcgJyB8fCBod2lbaWhdID4gJ34nKSB7IC8qIEFTQ0lJIHN0cmluZ3MhICovCiAJCQlyZXR1cm47CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3RxYy90cW04eHgvdHFtOHh4LmMgYi9ib2FyZC90cWMvdHFtOHh4L3RxbTh4eC5jCmluZGV4IDU1MzdkMDQuLjlhMGYzYTAgMTAwNjQ0Ci0tLSBhL2JvYXJkL3RxYy90cW04eHgvdHFtOHh4LmMKKysrIGIvYm9hcmQvdHFjL3RxbTh4eC90cW04eHguYwpAQCAtMTM5LDcgKzEzOSw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplOCwgc2l6ZTksIHNpemUxMDsKIAlsb25nIGludCBzaXplX2IwID0gMDsKQEAgLTE1NCw3ICsxNTQsNyBAQAogCSAqIHdpdGggdHdvIFNEUkFNIGJhbmtzIG9yIGZvdXIgY3ljbGVzIGV2ZXJ5IDMxLjIgdXMgd2l0aCBvbmUKIAkgKiBiYW5rLiBJdCB3aWxsIGJlIGFkanVzdGVkIGFmdGVyIG1lbW9yeSBzaXppbmcuCiAJICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzJCS184SzsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzJCS184SzsKIAogCS8qCiAJICogVGhlIGZvbGxvd2luZyB2YWx1ZSBpcyB1c2VkIGFzIGFuIGFkZHJlc3MgKGkuZS4gb3Bjb2RlKSBmb3IKQEAgLTE3NiwxOSArMTc2LDE5IEBACiAJICogcHJlbGltaW5hcnkgYWRkcmVzc2VzIC0gdGhlc2UgaGF2ZSB0byBiZSBtb2RpZmllZCBhZnRlciB0aGUKIAkgKiBTRFJBTSBzaXplIGhhcyBiZWVuIGRldGVybWluZWQuCiAJICovCi0JbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjJfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAKICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKIAlpZiAoKGJvYXJkX3R5cGUgIT0gJ0wnKSAmJgogCSAgICAoYm9hcmRfdHlwZSAhPSAnTScpICYmCiAJICAgIChib2FyZF90eXBlICE9ICdEJykgKSB7CS8qIG9ubHkgb25lIFNEUkFNIGJhbmsgb24gTCwgTSBhbmQgRCBtb2R1bGVzICovCi0JCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfT1IzX1BSRUxJTTsKLQkJbWVtY3RsLT5tZW1jX2JyMyA9IENGR19CUjNfUFJFTElNOworCQltZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19PUjNfUFJFTElNOworCQltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogCX0KICNlbmRpZgkJCQkJCQkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0yMTksNyArMjE5LDcgQEAKIAkgKgogCSAqIHRyeSA4IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQU1SXzhDT0wsIFNEUkFNX0JBU0UyX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOworCXNpemU4ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOENPTCwgU0RSQU1fQkFTRTJfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CiAJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOCBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplOCA+PiAyMCk7CiAKIAl1ZGVsYXkgKDEwMDApOwpAQCAtMjI3LDMwICsyMjcsMzAgQEAKIAkvKgogCSAqIHRyeSA5IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTkgPSBkcmFtX3NpemUgKENGR19NQU1SXzlDT0wsIFNEUkFNX0JBU0UyX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOworCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwgU0RSQU1fQkFTRTJfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CiAJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOSBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplOSA+PiAyMCk7CiAKIAl1ZGVsYXkoMTAwMCk7CiAKLSNpZiBkZWZpbmVkKENGR19NQU1SXzEwQ09MKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19NQU1SXzEwQ09MKQogCS8qCiAJICogdHJ5IDEwIGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTEwID0gZHJhbV9zaXplIChDRkdfTUFNUl8xMENPTCwgU0RSQU1fQkFTRTJfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CisJc2l6ZTEwID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfMTBDT0wsIFNEUkFNX0JBU0UyX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOwogCWRlYnVnICgiU0RSQU0gQmFuayAwIGluIDEwIGNvbHVtbiBtb2RlOiAlbGQgTUJcbiIsIHNpemUxMCA+PiAyMCk7CiAjZWxzZQogCXNpemUxMCA9IDA7Ci0jZW5kaWYgLyogQ0ZHX01BTVJfMTBDT0wgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX01BTVJfMTBDT0wgKi8KIAogCWlmICgoc2l6ZTggPCBzaXplMTApICYmIChzaXplOSA8IHNpemUxMCkpIHsKIAkJc2l6ZV9iMCA9IHNpemUxMDsKIAl9IGVsc2UgaWYgKChzaXplOCA8IHNpemU5KSAmJiAoc2l6ZTEwIDwgc2l6ZTkpKSB7CiAJCXNpemVfYjAgPSBzaXplOTsKLQkJbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl85Q09MOworCQltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl85Q09MOwogCQl1ZGVsYXkgKDUwMCk7CiAJfSBlbHNlIHsKIAkJc2l6ZV9iMCA9IHNpemU4OwotCQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0w7CisJCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0w7CiAJCXVkZWxheSAoNTAwKTsKIAl9CiAJZGVidWcgKCJTRFJBTSBCYW5rIDA6ICVsZCBNQlxuIiwgc2l6ZV9iMCA+PiAyMCk7CkBAIC0yODEsNyArMjgxLDcgQEAKIAkgKi8KIAlpZiAoKHNpemVfYjAgPCAweDAyMDAwMDAwKSAmJiAoc2l6ZV9iMSA8IDB4MDIwMDAwMDApKSB7CiAJCS8qIHJlZHVjZSB0byAxNS42IHVzICg2Mi40IHVzIC8gcXVhZCkgKi8KLQkJbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzJCS180SzsKKwkJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfNEs7CiAJCXVkZWxheSAoMTAwMCk7CiAJfQogCkBAIC0yOTAsMTUgKzI5MCwxNSBAQAogCSAqLwogCWlmIChzaXplX2IxID4gc2l6ZV9iMCkgewkvKiBTRFJBTSBCYW5rIDEgaXMgYmlnZ2VyIC0gbWFwIGZpcnN0ICAgKi8KIAotCQltZW1jdGwtPm1lbWNfb3IzID0gKCgtc2l6ZV9iMSkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07Ci0JCW1lbWN0bC0+bWVtY19icjMgPSAoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CisJCW1lbWN0bC0+bWVtY19vcjMgPSAoKC1zaXplX2IxKSAmIDB4RkZGRjAwMDApIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU07CisJCW1lbWN0bC0+bWVtY19icjMgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCiAJCWlmIChzaXplX2IwID4gMCkgewogCQkJLyoKIAkJCSAqIFBvc2l0aW9uIEJhbmsgMCBpbW1lZGlhdGVseSBhYm92ZSBCYW5rIDEKIAkJCSAqLwotCQkJbWVtY3RsLT5tZW1jX29yMiA9ICgoLXNpemVfYjApICYgMHhGRkZGMDAwMCkgfCBDRkdfT1JfVElNSU5HX1NEUkFNOwotCQkJbWVtY3RsLT5tZW1jX2JyMiA9ICgoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YpCisJCQltZW1jdGwtPm1lbWNfb3IyID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOworCQkJbWVtY3RsLT5tZW1jX2JyMiA9ICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WKQogCQkJCQkgICArIHNpemVfYjE7CiAJCX0gZWxzZSB7CiAJCQl1bnNpZ25lZCBsb25nIHJlZzsKQEAgLTMxMiwyNCArMzEyLDI0IEBACiAKIAkJCS8qIGFkanVzdCByZWZyZXNoIHJhdGUgZGVwZW5kaW5nIG9uIFNEUkFNIHR5cGUsIG9uZSBiYW5rICovCiAJCQlyZWcgPSBtZW1jdGwtPm1lbWNfbXB0cHI7Ci0JCQlyZWcgPj49IDE7CQkJLyogcmVkdWNlIHRvIENGR19NUFRQUl8xQktfOEsgLyBfNEsgKi8KKwkJCXJlZyA+Pj0gMTsJCQkvKiByZWR1Y2UgdG8gQ09ORklHX1NZU19NUFRQUl8xQktfOEsgLyBfNEsgKi8KIAkJCW1lbWN0bC0+bWVtY19tcHRwciA9IHJlZzsKIAkJfQogCiAJfSBlbHNlIHsJCQkJCS8qIFNEUkFNIEJhbmsgMCBpcyBiaWdnZXIgLSBtYXAgZmlyc3QgICAqLwogCi0JCW1lbWN0bC0+bWVtY19vcjIgPSAoKC1zaXplX2IwKSAmIDB4RkZGRjAwMDApIHwgQ0ZHX09SX1RJTUlOR19TRFJBTTsKKwkJbWVtY3RsLT5tZW1jX29yMiA9ICgoLXNpemVfYjApICYgMHhGRkZGMDAwMCkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKIAkJbWVtY3RsLT5tZW1jX2JyMiA9Ci0JCQkJKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOworCQkJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CiAKIAkJaWYgKHNpemVfYjEgPiAwKSB7CiAJCQkvKgogCQkJICogUG9zaXRpb24gQmFuayAxIGltbWVkaWF0ZWx5IGFib3ZlIEJhbmsgMAogCQkJICovCiAJCQltZW1jdGwtPm1lbWNfb3IzID0KLQkJCQkJKCgtc2l6ZV9iMSkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07CisJCQkJCSgoLXNpemVfYjEpICYgMHhGRkZGMDAwMCkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKIAkJCW1lbWN0bC0+bWVtY19icjMgPQotCQkJCQkoKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WKQorCQkJCQkoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVikKIAkJCQkJKyBzaXplX2IwOwogCQl9IGVsc2UgewogCQkJdW5zaWduZWQgbG9uZyByZWc7CkBAIC0zNDUsNyArMzQ1LDcgQEAKIAogCQkJLyogYWRqdXN0IHJlZnJlc2ggcmF0ZSBkZXBlbmRpbmcgb24gU0RSQU0gdHlwZSwgb25lIGJhbmsgKi8KIAkJCXJlZyA9IG1lbWN0bC0+bWVtY19tcHRwcjsKLQkJCXJlZyA+Pj0gMTsJCQkvKiByZWR1Y2UgdG8gQ0ZHX01QVFBSXzFCS184SyAvIF80SyAqLworCQkJcmVnID4+PSAxOwkJCS8qIHJlZHVjZSB0byBDT05GSUdfU1lTX01QVFBSXzFCS184SyAvIF80SyAqLwogCQkJbWVtY3RsLT5tZW1jX21wdHByID0gcmVnOwogCQl9CiAJfQpAQCAtMzU2LDggKzM1Niw4IEBACiAJLyogVVBNIGluaXRpYWxpemF0aW9uIGZvciBDQU4gQCBDTEtPVVQgPD0gNjYgTUh6ICovCiAKIAkvKiBJbml0aWFsaXplIE9SMyAvIEJSMyAqLwotCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfT1IzX0NBTjsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19DQU47CisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzX0NBTjsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfQ0FOOwogCiAJLyogSW5pdGlhbGl6ZSBNQk1SICovCiAJbWVtY3RsLT5tZW1jX21ibXIgPSBNQk1SX0dQTF9CNERJUzsJLyogR1BMX0I0IG91cHV0IGxpbmUgRGlzYWJsZSAqLwpAQCAtMzk3LDggKzM5Nyw4IEBACiAKICNpZmRlZglDT05GSUdfSVNQMTM2Ml9VU0IKIAkvKiBJbml0aWFsaXplIE9SNSAvIEJSNSAqLwotCW1lbWN0bC0+bWVtY19vcjUgPSBDRkdfT1I1X0lTUDEzNjI7Ci0JbWVtY3RsLT5tZW1jX2JyNSA9IENGR19CUjVfSVNQMTM2MjsKKwltZW1jdGwtPm1lbWNfb3I1ID0gQ09ORklHX1NZU19PUjVfSVNQMTM2MjsKKwltZW1jdGwtPm1lbWNfYnI1ID0gQ09ORklHX1NZU19CUjVfSVNQMTM2MjsKICNlbmRpZgkJCQkJCQkvKiBDT05GSUdfSVNQMTM2Ml9VU0IgKi8KIAlyZXR1cm4gKHNpemVfYjAgKyBzaXplX2IxKTsKIH0KQEAgLTQxNSw3ICs0MTUsNyBAQAogCiBzdGF0aWMgbG9uZyBpbnQgZHJhbV9zaXplIChsb25nIGludCBtYW1yX3ZhbHVlLCBsb25nIGludCAqYmFzZSwgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKQEAgLTQ1MSwxNCArNDUxLDE0IEBACiAjaWZkZWYgQ09ORklHX01JU0NfSU5JVF9SCiBpbnQgbWlzY19pbml0X3IgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKLSNpZmRlZglDRkdfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaCisjaWZkZWYJQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFoKIAlpbnQgc2N5LCB0cmx4LCBmbGFzaF9vcl90aW1pbmcsIGNsa19kaWZmOwogCi0Jc2N5ID0gKENGR19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFogJiBPUl9TQ1lfTVNLKSA+PiA0OwotCWlmIChDRkdfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaICYgT1JfVFJMWCkgeworCXNjeSA9IChDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSF9BVF81ME1IWiAmIE9SX1NDWV9NU0spID4+IDQ7CisJaWYgKENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaICYgT1JfVFJMWCkgewogCQl0cmx4ID0gT1JfVFJMWDsKIAkJc2N5ICo9IDI7CiAJfSBlbHNlIHsKQEAgLTQ5OCwyOSArNDk4LDI5IEBACiAJCXNjeSA9IDE7CiAKIAlmbGFzaF9vcl90aW1pbmcgPSAoc2N5IDw8IDQpIHwgdHJseCB8Ci0JCShDRkdfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaICYgfihPUl9UUkxYIHwgT1JfU0NZX01TSykpOworCQkoQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFogJiB+KE9SX1RSTFggfCBPUl9TQ1lfTVNLKSk7CiAKIAltZW1jdGwtPm1lbWNfb3IwID0KIAkJZmxhc2hfb3JfdGltaW5nIHwgKC1mbGFzaF9pbmZvWzBdLnNpemUgJiBPUl9BTV9NU0spOwogI2Vsc2UKIAltZW1jdGwtPm1lbWNfb3IwID0KLQkJQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtZmxhc2hfaW5mb1swXS5zaXplICYgT1JfQU1fTVNLKTsKKwkJQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLWZsYXNoX2luZm9bMF0uc2l6ZSAmIE9SX0FNX01TSyk7CiAjZW5kaWYKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOworCW1lbWN0bC0+bWVtY19icjAgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOwogCiAJZGVidWcgKCIjIyBCUjA6IDB4JTA4eCAgICBPUjA6IDB4JTA4eFxuIiwKIAkgICAgICAgbWVtY3RsLT5tZW1jX2JyMCwgbWVtY3RsLT5tZW1jX29yMCk7CiAKIAlpZiAoZmxhc2hfaW5mb1sxXS5zaXplKSB7Ci0jaWZkZWYJQ0ZHX09SX1RJTUlOR19GTEFTSF9BVF81ME1IWgorI2lmZGVmCUNPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaCiAJCW1lbWN0bC0+bWVtY19vcjEgPSBmbGFzaF9vcl90aW1pbmcgfAogCQkJKC1mbGFzaF9pbmZvWzFdLnNpemUgJiAweEZGRkY4MDAwKTsKICNlbHNlCi0JCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwKKwkJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwKIAkJCSgtZmxhc2hfaW5mb1sxXS5zaXplICYgMHhGRkZGODAwMCk7CiAjZW5kaWYKIAkJbWVtY3RsLT5tZW1jX2JyMSA9Ci0JCQkoKENGR19GTEFTSF9CQVNFICsKKwkJCSgoQ09ORklHX1NZU19GTEFTSF9CQVNFICsKIAkJCSAgZmxhc2hfaW5mb1swXS4KIAkJCSAgc2l6ZSkgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CiAKQEAgLTU1Nyw3ICs1NTcsNyBAQAogIyBpZmRlZiBDT05GSUdfSURFX0xFRAogdm9pZCBpZGVfbGVkICh1Y2hhciBsZWQsIHVjaGFyIHN0YXR1cykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJLyogV2UgaGF2ZSBvbmUgbGVkIGZvciBib3RoIHBjbWNpYSBzbG90cyAqLwogCWlmIChzdGF0dXMpIHsJCQkJLyogbGVkIG9uICovCmRpZmYgLS1naXQgYS9ib2FyZC90cmFiL2F1dG9fdXBkYXRlLmMgYi9ib2FyZC90cmFiL2F1dG9fdXBkYXRlLmMKaW5kZXggNDYxMTBjYy4uOTkzMjc5MCAxMDA2NDQKLS0tIGEvYm9hcmQvdHJhYi9hdXRvX3VwZGF0ZS5jCisrKyBiL2JvYXJkL3RyYWIvYXV0b191cGRhdGUuYwpAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KICNpbmNsdWRlIDx1c2IuaD4KIAotI2lmZGVmIENGR19IVVNIX1BBUlNFUgorI2lmZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKICNpbmNsdWRlIDxodXNoLmg+CiAjZW5kaWYKIApAQCAtNDIsOCArNDIsOCBAQAogI2Vycm9yICJtdXN0IGRlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UiCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfSFVTSF9QQVJTRVIKLSNlcnJvciAibXVzdCBkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSIgorI2lmbmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZXJyb3IgIm11c3QgZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIiCiAjZW5kaWYKIAogI2lmICFkZWZpbmVkKENPTkZJR19DTURfRkFUKQpkaWZmIC0tZ2l0IGEvYm9hcmQvdHJhYi9mbGFzaC5jIGIvYm9hcmQvdHJhYi9mbGFzaC5jCmluZGV4IDA4NzIzYmQuLjMxN2I2MWQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3RyYWIvZmxhc2guYworKysgYi9ib2FyZC90cmFiL2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKIAogc3RhdGljIHVsb25nIGZsYXNoX2dldF9zaXplICh2dV9sb25nICphZGRyLCBmbGFzaF9pbmZvX3QgKmluZm8pOwogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogCiAjZGVmaW5lIENNRF9SRUFEX0FSUkFZCQkweDAwRjAwMEYwCkBAIC00Miw5ICs0Miw5IEBACiAjZGVmaW5lIENNRF9VTkxPQ0tfQllQQVNTX1JFUzEJMHgwMDkwMDA5MAogI2RlZmluZSBDTURfVU5MT0NLX0JZUEFTU19SRVMyCTB4MDAwMDAwMDAKIAotI2RlZmluZSBNRU1fRkxBU0hfQUREUgkJKCoodm9sYXRpbGUgdTMyICopQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMQkJKCoodm9sYXRpbGUgdTMyICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDA1NTUgPDwgMikpKQotI2RlZmluZSBNRU1fRkxBU0hfQUREUjIJCSgqKHZvbGF0aWxlIHUzMiAqKShDRkdfRkxBU0hfQkFTRSArICgweDAwMDAwMkFBIDw8IDIpKSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIJCSgqKHZvbGF0aWxlIHUzMiAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MzIgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDB4MDAwMDA1NTUgPDwgMikpKQorI2RlZmluZSBNRU1fRkxBU0hfQUREUjIJCSgqKHZvbGF0aWxlIHUzMiAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDJBQSA8PCAyKSkpCiAKICNkZWZpbmUgQklUX0VSQVNFX0RPTkUJCTB4MDA4MDAwODAKICNkZWZpbmUgQklUX1JEWV9NQVNLCQkweDAwODAwMDgwCkBAIC02MywxNyArNjMsMTcgQEAKIAlpbnQgaSwgajsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJdWxvbmcgZmxhc2hiYXNlID0gMDsKIAkJZmxhc2hfaW5mb190ICppbmZvID0gJmZsYXNoX2luZm9baV07CiAKIAkJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAKLQkJc2l6ZSArPSBmbGFzaF9nZXRfc2l6ZSAoQ0ZHX0ZMQVNIX0JBU0UsIGluZm8pOworCQlzaXplICs9IGZsYXNoX2dldF9zaXplIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIGluZm8pOwogCiAJCWlmIChpID09IDApCi0JCQlmbGFzaGJhc2UgPSBDRkdfRkxBU0hfQkFTRTsKKwkJCWZsYXNoYmFzZSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAkJZWxzZQogCQkJcGFuaWMgKCJjb25maWd1cmVkIHRvbyBtYW55IGZsYXNoIGJhbmtzIVxuIik7CiAJCWZvciAoaiA9IDA7IGogPCBpbmZvLT5zZWN0b3JfY291bnQ7IGorKykgewpAQCAtMTAyLDggKzEwMiw4IEBACiAJICogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCi0JCQlDRkdfRkxBU0hfQkFTRSwKLQkJCUNGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCkBAIC0yNTcsNyArMjU3LDcgQEAKIAkJCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJTUVNX0ZMQVNIX0FERFIxID0gQ01EX1JFQURfQVJSQVk7CiAJCQkJCWNoaXAxID0gVE1POwogCQkJCQlicmVhazsKQEAgLTM1Niw3ICszNTYsNyBAQAogCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCWNoaXAxID0gRVJSIHwgVE1POwogCQkJYnJlYWs7CiAJCX0KQEAgLTU1OSwxMCArNTU5LDEwIEBACiAKIAl9CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmICgiKiogRVJST1I6IHNlY3RvciBjb3VudCAlZCA+IG1heCAoJWQpICoqXG4iLAotCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOwotCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCXJldHVybiAoaW5mby0+c2l6ZSk7CmRpZmYgLS1naXQgYS9ib2FyZC90cmFiL21lbW9yeS5jIGIvYm9hcmQvdHJhYi9tZW1vcnkuYwppbmRleCAwNTI0MzJlLi44ZmIzZDJjIDEwMDY0NAotLS0gYS9ib2FyZC90cmFiL21lbW9yeS5jCisrKyBiL2JvYXJkL3RyYWIvbWVtb3J5LmMKQEAgLTE1NSw3ICsxNTUsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlIDx3YXRjaGRvZy5oPgogCi0vKiAjaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9NRU1PUlkgKi8KKy8qICNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9NRU1PUlkgKi8KIAogLyoKICAqIERlZmluZSBJTkpFQ1RfKl9FUlJPUlMgZm9yIHRlc3RpbmcgZXJyb3IgZGV0ZWN0aW9uIGluIHRoZSBwcmVzZW5jZSBvZgpAQCAtNDY1LDcgKzQ2NSw3IEBACiAKIAogCWlmIChmbGFncyAmIFBPU1RfU0xPV1RFU1QpIHsKLQkJcmV0ID0gbWVtb3J5X3Bvc3RfdGVzdHMgKENGR19TRFJBTV9CQVNFLCBtZW1zaXplKTsKKwkJcmV0ID0gbWVtb3J5X3Bvc3RfdGVzdHMgKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgbWVtc2l6ZSk7CiAJfSBlbHNlIHsJCQkvKiBQT1NUX05PUk1BTCAqLwogCiAJCXVuc2lnbmVkIGxvbmcgaTsKQEAgLTQ4Miw1ICs0ODIsNSBAQAogfQogI2VuZGlmIC8qIDAgKi8KIAotLyogI2VuZGlmICovIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfTUVNT1JZICovCisvKiAjZW5kaWYgKi8gLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfTUVNT1JZICovCiAvKiAjZW5kaWYgKi8gLyogQ09ORklHX1BPU1QgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL3RyYWIvdHJhYi5jIGIvYm9hcmQvdHJhYi90cmFiLmMKaW5kZXggYjg2OTAyMy4uNTdmZjcxOCAxMDA2NDQKLS0tIGEvYm9hcmQvdHJhYi90cmFiLmMKKysrIGIvYm9hcmQvdHJhYi90cmFiLmMKQEAgLTMwLDcgKzMwLDcgQEAKIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLSNpZmRlZiBDRkdfQlJJR0hUTkVTUworI2lmZGVmIENPTkZJR19TWVNfQlJJR0hUTkVTUwogc3RhdGljIHZvaWQgc3BpX2luaXQodm9pZCk7CiBzdGF0aWMgdm9pZCB3YWl0X3RyYW5zbWl0X2RvbmUodm9pZCk7CiBzdGF0aWMgdm9pZCB0c2MyMDAwX3dyaXRlKHVuc2lnbmVkIGludCBwYWdlLCB1bnNpZ25lZCBpbnQgcmVnLApAQCAtMTk5LDcgKzE5OSw3IEBACiAJCWZyZWUgKHN0cik7CiAJfQogCi0jaWZkZWYgQ0ZHX0JSSUdIVE5FU1MKKyNpZmRlZiBDT05GSUdfU1lTX0JSSUdIVE5FU1MKIAl0c2MyMDAwX3NldF9icmlnaHRuZXNzKCk7CiAjZW5kaWYKIAlyZXR1cm4gKDApOwpAQCAtMzMzLDcgKzMzMyw3IEBACiB9CiAjZW5kaWYJLyogQ09ORklHX01PREVNX1NVUFBPUlQgKi8KIAotI2lmZGVmIENGR19CUklHSFRORVNTCisjaWZkZWYgQ09ORklHX1NZU19CUklHSFRORVNTCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBTRVRfQ1NfVE9VQ0godm9pZCkKIHsKQEAgLTQxNSw3ICs0MTUsNyBAQAogCWkgPSBnZXRlbnZfcigiYnJpZ2h0bmVzcyIsIHRtcCwgc2l6ZW9mKHRtcCkpOwogCWJyID0gKGkgPiAwKQogCQk/IChpbnQpIHNpbXBsZV9zdHJ0b3VsICh0bXAsIE5VTEwsIDEwKQotCQk6IENGR19CUklHSFRORVNTOworCQk6IENPTkZJR19TWVNfQlJJR0hUTkVTUzsKIAogCXRzYzIwMDBfd3JpdGUoMCwgMHhiLCBiciAmIDB4ZmYpOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvdHJpemVwc2l2L2xvd2xldmVsX2luaXQuUyBiL2JvYXJkL3RyaXplcHNpdi9sb3dsZXZlbF9pbml0LlMKaW5kZXggZDg4NjkzOC4uMTI4ZDU1NCAxMDA2NDQKLS0tIGEvYm9hcmQvdHJpemVwc2l2L2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC90cml6ZXBzaXYvbG93bGV2ZWxfaW5pdC5TCkBAIC00OSwxMTkgKzQ5LDExOSBAQAogCS8qIFNldCB1cCBHUElPIHBpbnMgZmlyc3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogCWxkcgkJcjAsCT1HUFNSMAotCWxkcgkJcjEsCT1DRkdfR1BTUjBfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BTUjBfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BTUjEKLQlsZHIJCXIxLAk9Q0ZHX0dQU1IxX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQU1IxX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQU1IyCi0JbGRyCQlyMSwJPUNGR19HUFNSMl9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFNSMl9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUFNSMwotCWxkcgkJcjEsCT1DRkdfR1BTUjNfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BTUjNfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BDUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQQ1IwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQQ1IwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQQ1IxCi0JbGRyCQlyMSwJPUNGR19HUENSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUENSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUENSMgotCWxkcgkJcjEsCT1DRkdfR1BDUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BDUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BDUjMKLQlsZHIJCXIxLAk9Q0ZHX0dQQ1IzX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQQ1IzX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdSRVIwCi0JbGRyCQlyMSwJPUNGR19HUkVSMF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUkVSMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUkVSMQotCWxkcgkJcjEsCT1DRkdfR1JFUjFfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1JFUjFfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1JFUjIKLQlsZHIJCXIxLAk9Q0ZHX0dSRVIyX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dSRVIyX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdSRVIzCi0JbGRyCQlyMSwJPUNGR19HUkVSM19WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUkVSM19WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HRkVSMAotCWxkcgkJcjEsCT1DRkdfR0ZFUjBfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0ZFUjBfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0ZFUjEKLQlsZHIJCXIxLAk9Q0ZHX0dGRVIxX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dGRVIxX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdGRVIyCi0JbGRyCQlyMSwJPUNGR19HRkVSMl9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HRkVSMl9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HRkVSMwotCWxkcgkJcjEsCT1DRkdfR0ZFUjNfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0ZFUjNfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BEUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQRFIwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQRFIwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQRFIxCi0JbGRyCQlyMSwJPUNGR19HUERSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUERSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUERSMgotCWxkcgkJcjEsCT1DRkdfR1BEUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BEUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BEUjMKLQlsZHIJCXIxLAk9Q0ZHX0dQRFIzX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQRFIzX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIwX0wKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIwX0xfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjBfTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMF9VCi0JbGRyCQlyMSwJPUNGR19HQUZSMF9VX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIwX1VfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjFfTAotCWxkcgkJcjEsCT1DRkdfR0FGUjFfTF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMV9MX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIxX1UKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIxX1VfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjFfVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMl9MCi0JbGRyCQlyMSwJPUNGR19HQUZSMl9MX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIyX0xfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjJfVQotCWxkcgkJcjEsCT1DRkdfR0FGUjJfVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMl9VX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIzX0wKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIzX0xfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjNfTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSM19VCi0JbGRyCQlyMSwJPUNGR19HQUZSM19VX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIzX1VfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9UFNTUgkJLyogZW5hYmxlIEdQSU8gcGlucyAqLwotCWxkcgkJcjEsCT1DRkdfUFNTUl9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19QU1NSX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtMTk5LDE3ICsxOTksMTcgQEAKIAkvKiBNU0MgcmVnaXN0ZXJzOiB0aW1pbmcsIGJ1cyB3aWR0aCwgbWVtIHR5cGUJCQkgICAgKi8KIAogCS8qIE1TQzA6IG5DUygwLDEpCQkJCQkJICAgICovCi0JbGRyCXIyLCAgID1DRkdfTVNDMF9WQUwKKwlsZHIJcjIsICAgPUNPTkZJR19TWVNfTVNDMF9WQUwKIAlzdHIJcjIsICAgW3IxLCAjTVNDMF9PRkZTRVRdCiAJbGRyCXIyLCAgIFtyMSwgI01TQzBfT0ZGU0VUXQkvKiByZWFkIGJhY2sgdG8gZW5zdXJlCSAgICAqLwogCQkJCQkJLyogdGhhdCBkYXRhIGxhdGNoZXMJICAgICovCiAJLyogTVNDMTogbkNTKDIsMykJCQkJCQkgICAgKi8KLQlsZHIJcjIsICA9Q0ZHX01TQzFfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTVNDMV9WQUwKIAlzdHIJcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAlsZHIJcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAogCS8qIE1TQzI6IG5DUyg0LDUpCQkJCQkJICAgICovCi0JbGRyCXIyLCAgPUNGR19NU0MyX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01TQzJfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAJbGRyCXIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAKQEAgLTIxOCw0NCArMjE4LDQ0IEBACiAJLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAJLyogTUVDUjogTWVtb3J5IEV4cGFuc2lvbiBDYXJkIFJlZ2lzdGVyCQkJCSAgICAqLwotCWxkcglyMiwgID1DRkdfTUVDUl9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NRUNSX1ZBTAogCXN0cglyMiwgIFtyMSwgI01FQ1JfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUVDUl9PRkZTRVRdCiAKIAkvKiBNQ01FTTA6IENhcmQgSW50ZXJmYWNlIHNsb3QgMCB0aW1pbmcJCQkJICAgICovCi0JbGRyCXIyLCAgPUNGR19NQ01FTTBfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTUNNRU0wX1ZBTAogCXN0cglyMiwgIFtyMSwgI01DTUVNMF9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ01FTTBfT0ZGU0VUXQogCiAJLyogTUNNRU0xOiBDYXJkIEludGVyZmFjZSBzbG90IDEgdGltaW5nCQkJCSAgICAqLwotCWxkcglyMiwgID1DRkdfTUNNRU0xX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01DTUVNMV9WQUwKIAlzdHIJcjIsICBbcjEsICNNQ01FTTFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNNRU0xX09GRlNFVF0KIAogCS8qIE1DQVRUMDogQ2FyZCBJbnRlcmZhY2UgQXR0cmlidXRlIFNwYWNlIFRpbWluZywgc2xvdCAwCSAgICAqLwotCWxkcglyMiwgID1DRkdfTUNBVFQwX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01DQVRUMF9WQUwKIAlzdHIJcjIsICBbcjEsICNNQ0FUVDBfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNBVFQwX09GRlNFVF0KIAogCS8qIE1DQVRUMTogQ2FyZCBJbnRlcmZhY2UgQXR0cmlidXRlIFNwYWNlIFRpbWluZywgc2xvdCAxCSAgICAqLwotCWxkcglyMiwgID1DRkdfTUNBVFQxX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01DQVRUMV9WQUwKIAlzdHIJcjIsICBbcjEsICNNQ0FUVDFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNBVFQxX09GRlNFVF0KIAogCS8qIE1DSU8wOiBDYXJkIEludGVyZmFjZSBJL08gU3BhY2UgVGltaW5nLCBzbG90IDAJCSAgICAqLwotCWxkcglyMiwgID1DRkdfTUNJTzBfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTUNJTzBfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTUNJTzBfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNJTzBfT0ZGU0VUXQogCiAJLyogTUNJTzE6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMQkJICAgICovCi0JbGRyCXIyLCAgPUNGR19NQ0lPMV9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NQ0lPMV9WQUwKIAlzdHIJcjIsICBbcjEsICNNQ0lPMV9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ0lPMV9PRkZTRVRdCiAKIAkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAJLyogU3RlcCAyYzogV3JpdGUgRkxZQ05GRyAgRklYTUU6IHdoYXQncyB0aGF0Pz8/CQkgICAgKi8KIAkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0JbGRyCXIyLCAgPUNGR19GTFlDTkZHX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX0ZMWUNORkdfVkFMCiAJc3RyCXIyLCAgW3IxLCAjRkxZQ05GR19PRkZTRVRdCiAJc3RyCXIyLAlbcjEsICNGTFlDTkZHX09GRlNFVF0KIApAQCAtMjcwLDcgKzI3MCw3IEBACiAJbGRyCXIyLAk9MHhGRkYKIAliaWMJcjQsCXI0LCByMgogCi0JbGRyCXIzLAk9Q0ZHX01EUkVGUl9WQUwKKwlsZHIJcjMsCT1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAlhbmQJcjMsCXIzLCAgcjIKIAogCW9ycglyNCwJcjQsIHIzCkBAIC0zMDAsNyArMzAwLDcgQEAKIAkvKiBzeW5jaHJvbm91cyBzdGF0aWMgbWVtb3J5LiBOb3RlIHRoYXQgU1hMQ1IgbmVlZCBub3QgYmUgd3JpdHRlbiAgICovCiAJLyogYXQgdGhpcyB0aW1lLgkJCQkJCSAgICAqLwogCi0JbGRyCXIyLCAgPUNGR19TWENORkdfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfU1hDTkZHX1ZBTAogCXN0cglyMiwgIFtyMSwgI1NYQ05GR19PRkZTRVRdCiAKIAkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCkBAIC0zMjksNyArMzI5LDcgQEAKIAkvKiBTdGVwIDRkOiB3cml0ZSBNRENORkcgd2l0aCBNRENORkc6REV4IGRlYXNzZXJ0ZWQgKHNldCB0byAwKSwgdG8gICovCiAJLyoJICAgIGNvbmZpZ3VyZSBidXQgbm90IGVuYWJsZSBlYWNoIFNEUkFNIHBhcnRpdGlvbiBwYWlyLgkgICAgKi8KIAotCWxkcglyNCwJPUNGR19NRENORkdfVkFMCisJbGRyCXI0LAk9Q09ORklHX1NZU19NRENORkdfVkFMCiAJYmljCXI0LAlyNCwJIyhNRENORkdfREUwfE1EQ05GR19ERTEpCiAJYmljCXI0LAlyNCwJIyhNRENORkdfREUyfE1EQ05GR19ERTMpCiAKQEAgLTM1Nyw3ICszNTcsNyBAQAogCS8qCSAgICBkb2N1bWVudGVkIGluIFNEUkFNIGRhdGEgc2hlZXRzLiBUaGUgYWRkcmVzcyhlcykgdXNlZCAgICovCiAJLyoJICAgIGZvciB0aGlzIHB1cnBvc2UgbXVzdCBub3QgYmUgY2FjaGVhYmxlLgkJICAgICovCiAKLQlsZHIJcjMsCT1DRkdfRFJBTV9CQVNFCisJbGRyCXIzLAk9Q09ORklHX1NZU19EUkFNX0JBU0UKIAlzdHIJcjIsCVtyM10KIAlzdHIJcjIsCVtyM10KIAlzdHIJcjIsCVtyM10KQEAgLTM3OSw3ICszNzksNyBAQAogCiAJLyogU3RlcCA0aDogV3JpdGUgTURNUlMuCQkJCQkgICAgKi8KIAotCWxkcglyMiwgID1DRkdfTURNUlNfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTURNUlNfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTURNUlNfT0ZGU0VUXQogCiAJLyogZW5hYmxlIEFQRCAqLwpAQCAtNDQzLDExICs0NDMsMTEgQEAKIAkvKiBUdXJuIE9mZiBvbi1jaGlwIHBlcmlwaGVyYWwgY2xvY2tzIChleGNlcHQgZm9yIG1lbW9yeSkJICAgICovCiAJLyogZm9yIHJlLWNvbmZpZ3VyYXRpb24uCQkJCQkgICAgKi8KIAlsZHIJcjEsICA9Q0tFTgotCWxkcglyMiwgID1DRkdfQ0tFTgorCWxkcglyMiwgID1DT05GSUdfU1lTX0NLRU4KIAlzdHIJcjIsICBbcjFdCiAKIAkvKiAuLi4gYW5kIHdyaXRlIHRoZSBjb3JlIGNsb2NrIGNvbmZpZyByZWdpc3RlcgkJCSAgICAqLwotCWxkcglyMiwgID1DRkdfQ0NDUgorCWxkcglyMiwgID1DT05GSUdfU1lTX0NDQ1IKIAlsZHIJcjEsICA9Q0NDUgogCXN0cglyMiwgIFtyMV0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvdWMxMDAvcGNtY2lhLmMgYi9ib2FyZC91YzEwMC9wY21jaWEuYwppbmRleCA0MDdiZGI3Li5hZDI1Njc4IDEwMDY0NAotLS0gYS9ib2FyZC91YzEwMC9wY21jaWEuYworKysgYi9ib2FyZC91YzEwMC9wY21jaWEuYwpAQCAtMjQsNyArMjQsNyBAQAogewogCXZvbGF0aWxlIGltbWFwX3QJKmltbWFwOwogCi0JaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAKIAkvKgogCSogQ29uZmlndXJlIFBvcnQgQSBmb3IgTUFYMTYwMiBQQy1DYXJkIFBvd2VyLUludGVyZmFjZSBTd2l0Y2gKQEAgLTQ5LDEwICs0OSwxMCBAQAogCiAJdWRlbGF5KDEwMDAwKTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlzeXNwICA9IChzeXNjb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3NpdV9jb25mKSk7Ci0JcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKLQljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwlzeXNwICA9IChzeXNjb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9zaXVfY29uZikpOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOworCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtKSk7CiAKIAkvKiBDb25maWd1cmUgUG9ydHMgZm9yIFRQUzIyMTFBIFBDLUNhcmQgUG93ZXItSW50ZXJmYWNlIFN3aXRjaCAqLwogCWNmZ19wb3J0cyAoKTsKQEAgLTEzMyw4ICsxMzMsOCBAQAogCiAJZGVidWcgKCJoYXJkd2FyZV9kaXNhYmxlOiAiIFBDTUNJQV9CT0FSRF9NU0cgIiBTbG90ICVjXG4iLCAnQScrc2xvdCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKKwlpbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogCiAJLyogc3dpdGNoIFZDQyBvZmYgKi8KIAlpbW1hcC0+aW1faW9wb3J0LmlvcF9wYWRhdCAmPSB+MHg4MDAwOyAvKiBwb3dlciBkaXNhYmxlIDMuM1YgKi8KQEAgLTE2Myw4ICsxNjMsOCBAQAogCQkJIiBTbG90ICVjLCBWY2M9JWQuJWQsIFZwcD0lZC4lZFxuIiwKIAknQScrc2xvdCwgdmNjLzEwLCB2Y2MlMTAsIHZwcC8xMCwgdmNjJTEwKTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlwY21wICA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CiAJLyoKIAkqIERpc2FibGUgUENNQ0lBIGJ1ZmZlcnMgKGlzb2xhdGUgdGhlIGludGVyZmFjZSkKIAkqIGFuZCBhc3NlcnQgUkVTRVQgc2lnbmFsCmRpZmYgLS1naXQgYS9ib2FyZC91YzEwMC91YzEwMC5jIGIvYm9hcmQvdWMxMDAvdWMxMDAuYwppbmRleCA4OTZmOTY5Li4zOGM3YmU2IDEwMDY0NAotLS0gYS9ib2FyZC91YzEwMC91YzEwMC5jCisrKyBiL2JvYXJkL3VjMTAwL3VjMTAwLmMKQEAgLTEzOCw3ICsxMzgsNyBAQAogewogCXZvbGF0aWxlIHBjbWNvbmY4eHhfdAkqcGNtcDsKIAotCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7CisJcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CiAKIAlyZXR1cm4gKChwY21wLT5wY21jX3BpcHIgPj4gMjQpICYgMHhmKTsKIH0KQEAgLTE3MSw3ICsxNzEsNyBAQAogICovCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC0xODcsOCArMTg3LDggQEAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAJbWVtY3RsLT5tZW1jX21wdHByID0gMHgwMjAwOyAvKiBEaXZpZGUgYnkgMzIgV1YgKi8KIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfVkFMICYgMHhGRjdGRkZGRjsgLyogQml0IDggOj0gIjAiIEtlaW4gUmVmcmVzaCBXViAqLwotCW1lbWN0bC0+bWVtY19tYm1yID0gQ0ZHX01CTVJfVkFMOworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SX1ZBTCAmIDB4RkY3RkZGRkY7IC8qIEJpdCA4IDo9ICIwIiBLZWluIFJlZnJlc2ggV1YgKi8KKwltZW1jdGwtPm1lbWNfbWJtciA9IENPTkZJR19TWVNfTUJNUl9WQUw7CiAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAJLyogSW5pdGlhbGl6ZSB0aGUgTWVtb3J5IENvbnRyb2xsZXIgcmVnaXN0ZXJzLCBNUFRQUiwgQ2hpcCBTZWxlY3QgMSAgICAqLwpAQCAtMTk4LDggKzE5OCw4IEBACiAJLyogICAgICAgY2xvY2sgcmF0ZSAoMTYuNjdNSHopIHRvIGFsbG93IHByb3BlciBvcGVyYXRpb24gZm9yIGFsbCBBRFMgICAqLwogCS8qICAgICAgIGNsb2NrIGZyZXF1ZW5jaWVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0JbWVtY3RsLT5tZW1jX29yMSA9IENGR19PUjFfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjEgPSBDRkdfQlIxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjEgPSBDT05GSUdfU1lTX0JSMV9QUkVMSU07CiAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCS8qIFdhaXQgYXQgbGVhc3QgMjAwIHVzZWMgZm9yIERSQU0gdG8gc3RhYmlsaXplLCB0aGlzIG1hZ2ljIG51bWJlciAgICovCkBAIC0yMDksOCArMjA5LDggQEAKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gKG1lbWN0bC0+bWVtY19tYW1yIHwgMHgwNCkgJiB+MHgwODsKIAotCW1lbWN0bC0+bWVtY19icjEgPSBDRkdfQlIxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjFfUFJFTElNOwogCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCS8qIHJ1biBNUlMgY29tbWFuZCBpbiBsb2NhdGlvbiA1LTggb2YgVVBNQi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KQEAgLTIzNiw3ICsyMzYsNyBAQAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAkvKiByZXJzdG9yZSBNQk1SIHZhbHVlICg0LWJlYXQgcmVmcmVzaCBidXJzdC4pICAgICAgICAgICAgICAgICAgICAgICAgICovCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfVkFMIHwgMHgwMDgwMDAwMDsgLyogQml0IDggOj0gIjEiIFJlZnJlc2ggRW5hYmxlIFdWICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfVkFMIHwgMHgwMDgwMDAwMDsgLyogQml0IDggOj0gIjEiIFJlZnJlc2ggRW5hYmxlIFdWICovCiAKIAl1ZGVsYXkoMjAwKTsKIApAQCAtMjUxLDkgKzI1MSw5IEBACiAJLyoKIAkgKiBNYWtlIHN1cmUgdGhhdCBSVEMgaGFzIGNsb2NrIG91dHB1dCBlbmFibGVkICh0cmlnZ2VycyB3YXRjaGRvZyEpCiAJICovCi0JdmFsID0gaTJjX3JlZ19yZWFkIChDRkdfSTJDX1JUQ19BRERSLCAweDBEKTsKKwl2YWwgPSBpMmNfcmVnX3JlYWQgKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCAweDBEKTsKIAl2YWwgfD0gMHg4MDsKLQlpMmNfcmVnX3dyaXRlIChDRkdfSTJDX1JUQ19BRERSLCAweDBELCB2YWwpOworCWkyY19yZWdfd3JpdGUgKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCAweDBELCB2YWwpOwogCiAJLyoKIAkgKiBDb25maWd1cmUgUEhZIHRvIHNldHVwIExFRCdzIGNvcnJlY3RseSBhbmQgdXNlIDEwME1CaXQsIEZECmRpZmYgLS1naXQgYS9ib2FyZC91YzEwMS91YzEwMS5jIGIvYm9hcmQvdWMxMDEvdWMxMDEuYwppbmRleCA2OWJhNTA3Li43ZGYzNDlmIDEwMDY0NAotLS0gYS9ib2FyZC91YzEwMS91YzEwMS5jCisrKyBiL2JvYXJkL3VjMTAxL3VjMTAxLmMKQEAgLTk5LDcgKzk5LDcgQEAKICNkZWZpbmUgR1BfVElNRVJfR0VUX0kobiwgdikgKCBcCiAJKCgodm9sYXRpbGUgc3RydWN0IG1wYzV4eHhfZ3B0ICopKE1QQzVYWFhfR1BUICsgbikpLT5zciAmIDB4MTAwKSA+PiA4KQogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogc3RhdGljIHZvaWQgc2RyYW1fc3RhcnQgKGludCBoaV9hZGRyKQogewogCWxvbmcgaGlfYWRkcl9iaXQgPSBoaV9hZGRyID8gMHgwMTAwMDAwMCA6IDA7CkBAIC0xNDIsMTQgKzE0MiwxNCBAQAogCiAvKgogICogQVRURU5USU9OOiBBbHRob3VnaCBwYXJ0aWFsbHkgcmVmZXJlbmNlZCBpbml0ZHJhbSBkb2VzIE5PVCBtYWtlIHJlYWwgdXNlCi0gKgkgICAgICB1c2Ugb2YgQ0ZHX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ0ZHX1NEUkFNX0JBU0UKKyAqCSAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKgkgICAgICBpcyBzb21ldGhpbmcgZWxzZSB0aGFuIDB4MDAwMDAwMDAuCiAgKi8KIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewogCXVsb25nIGRyYW1zaXplID0gMDsKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgdGVzdDEsIHRlc3QyOwogCiAJLyogc2V0dXAgU0RSQU0gY2hpcCBzZWxlY3RzICovCkBAIC0xNzAsOSArMTcwLDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MwIG9ubHkgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMTk0LDcgKzE5NCw3IEBACiAJfQogCiAJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzFDRkcgPSBkcmFtc2l6ZTsgLyogZGlzYWJsZWQgKi8KLSNlbHNlIC8qIENGR19SQU1CT09UICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIHJldHJpZXZlIHNpemUgb2YgbWVtb3J5IGNvbm5lY3RlZCB0byBTRFJBTSBDUzAgKi8KIAlkcmFtc2l6ZSA9ICoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MwQ0ZHICYgMHhGRjsKQEAgLTIxMiw3ICsyMTIsNyBAQAogCQlkcmFtc2l6ZTIgPSAwOwogCX0KIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIC8qCXJldHVybiBkcmFtc2l6ZSArIGRyYW1zaXplMjsgKi8KIAlyZXR1cm4gZHJhbXNpemU7CkBAIC0yMjIsNyArMjIyLDcgQEAKIHsKIAlwdXRzICgiQm9hcmQ6IE1BTiBVQzEwMVxuIik7CiAJLyogY2xlYXIgdGhlIERpc3BsYXkgKi8KLQkqKGNoYXIgKikoQ0ZHX0RJU1BfQ1dPUkQpID0gMHg4MDsKKwkqKGNoYXIgKikoQ09ORklHX1NZU19ESVNQX0NXT1JEKSA9IDB4ODA7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTM0NSw5ICszNDUsOSBAQAogewogCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX0NGRyAmPSB+MHgxOyAvKiBjbGVhciBSTyAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX1NUQVJUID0KLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVEFSVCA9IFNUQVJUX1JFRyhDRkdfRkxBU0hfQkFTRSk7CisJKih2dV9sb25nICopTVBDNVhYWF9DUzBfU1RBUlQgPSBTVEFSVF9SRUcoQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKIAkqKHZ1X2xvbmcgKilNUEM1WFhYX0JPT1RDU19TVE9QID0KLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVE9QID0gU1RPUF9SRUcoQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9TSVpFKTsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVE9QID0gU1RPUF9SRUcoQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX1NJWkUpOwogCS8qIEludGVyYnVzIGVuYWJsZSBpdCBoZXJlID8/ICovCiAJKih2dV9sb25nICopTVBDNVhYWF9HUFQ2X0VOQUJMRSA9IEdQVF9PVVRfMTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2JvYXJkL3V0eDgyNDUvZmxhc2guYyBiL2JvYXJkL3V0eDgyNDUvZmxhc2guYwppbmRleCA1YWFiODg2Li5hYWM4MTE2IDEwMDY0NAotLS0gYS9ib2FyZC91dHg4MjQ1L2ZsYXNoLmMKKysrIGIvYm9hcmQvdXR4ODI0NS9mbGFzaC5jCkBAIC0zNSw3ICszNSw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC01MCw3ICs1MCw3IEBACiAjZGVmaW5lCVNFQ1RfU0laRV8zMktCCTB4ODAwMAogI2RlZmluZQlTRUNUX1NJWkVfOEtCCTB4MjAwMAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogc3RhdGljIGludCB3cml0ZV93b3JkIChmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKTsKICNpZiAwCkBAIC04MCw4ICs4MCw4IEBACiAJdWxvbmcgdG90YWxfc2l6ZSA9IDAsIGRldmljZV9zaXplID0gMTsKIAl1bnNpZ25lZCBjaGFyIG1hbnVmX2lkLCBkZXZpY2VfaWQ7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7Ci0JCXZ1X2NoYXIgKmFkZHIgPSAodnVfY2hhciAqKSAoQ0ZHX0ZMQVNIX0JBU0UgKyBpICogRkxBU0hfQkFOS19TSVpFKTsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCQl2dV9jaGFyICphZGRyID0gKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIGkgKiBGTEFTSF9CQU5LX1NJWkUpOwogCiAJCWFkZHJbMHg1NTVdID0gMHhBQTsJCS8qIGdldCBtYW51Zi9kZXZpY2UgaW5mbyBjb21tYW5kICovCiAJCWFkZHJbMHgyQUFdID0gMHg1NTsJCS8qIDMtY3ljbGUgY29tbWFuZCAqLwpAQCAtOTcsNyArOTcsNyBAQAogCQkJZGV2aWNlX3NpemUgKj0gMjsKIAogCQlmbGFzaF9pbmZvW2ldLnNpemUgPSBkZXZpY2Vfc2l6ZTsKLQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAogI2lmIGRlZmluZWQgREVCVUdfRkxBU0gKIAkJcHJpbnRmICgibWFudWZfaWQgPSAleCwgZGV2aWNlX2lkID0gJXhcbiIsIG1hbnVmX2lkLCBkZXZpY2VfaWQpOwpAQCAtMTEyLDcgKzExMiw3IEBACiAJCQkvKiBzZXQgaW5kaXZpZHVhbCBzZWN0b3Igc3RhcnQgYWRkcmVzc2VzICovCiAJCQlmb3IgKGogPSAwOyBqIDwgZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQ7IGorKykgewogCQkJCWZsYXNoX2luZm9baV0uc3RhcnRbal0gPQotCQkJCQkJKENGR19GTEFTSF9CQVNFICsgaSAqIEZMQVNIX0JBTktfU0laRSArCisJCQkJCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgaSAqIEZMQVNIX0JBTktfU0laRSArCiAJCQkJCQkgaiAqIE1BSU5fU0VDVF9TSVpFKTsKIAkJCX0KIAkJfQpAQCAtMTI2LDE0ICsxMjYsMTQgQEAKIAkJCS8qIHNldCBpbmRpdmlkdWFsIHNlY3RvciBzdGFydCBhZGRyZXNzZXMgKi8KIAkJCWZvciAoaiA9IDA7IGogPCBmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudDsgaisrKSB7CiAJCQkJZmxhc2hfaW5mb1tpXS5zdGFydFtqXSA9Ci0JCQkJCQkoQ0ZHX0ZMQVNIX0JBU0UgKyBpICogRkxBU0hfQkFOS19TSVpFICsKKwkJCQkJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBpICogRkxBU0hfQkFOS19TSVpFICsKIAkJCQkJCSBqICogTUFJTl9TRUNUX1NJWkUpOwogCi0JCQkJaWYgKGogPCAoQ0ZHX01BWF9GTEFTSF9TRUNUIC0gMykpIHsKKwkJCQlpZiAoaiA8IChDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUIC0gMykpIHsKIAkJCQkJZmxhc2hfaW5mb1tpXS5zdGFydFtqXSA9Ci0JCQkJCQkJKENGR19GTEFTSF9CQVNFICsgaSAqIEZMQVNIX0JBTktfU0laRSArCisJCQkJCQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIGkgKiBGTEFTSF9CQU5LX1NJWkUgKwogCQkJCQkJCSBqICogTUFJTl9TRUNUX1NJWkUpOwotCQkJCX0gZWxzZSBpZiAoaiA9PSAoQ0ZHX01BWF9GTEFTSF9TRUNUIC0gMykpIHsKKwkJCQl9IGVsc2UgaWYgKGogPT0gKENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgLSAzKSkgewogCQkJCQlmbGFzaF9pbmZvW2ldLnN0YXJ0W2pdID0KIAkJCQkJCQkoZmxhc2hfaW5mb1tpXS5zdGFydFtqIC0gMV0gKyBTRUNUX1NJWkVfMzJLQik7CiAKQEAgLTE1NiwxNiArMTU2LDE2IEBACiAKIAkJYWRkclswXSA9IDB4RkY7CiAKLQkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAogCQl0b3RhbF9zaXplICs9IGZsYXNoX2luZm9baV0uc2l6ZTsKIAl9CiAKIAkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCi0JZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCQkgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQorCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJCSAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJCSAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0zODMsNyArMzgzLDcgQEAKIAkJCQkJCQkJCQkJCSAgIHN0YXJ0WzBdKSA8PCBzaDhiKSk7CiAJd2hpbGUgKChhZGRyWzBdICYgKEZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KIAkJICAgKEZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC01MjQsNyArNTI0LDcgQEAKIAkJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCQl3aGlsZSAoKGRlc3QyW2kgPDwgc2g4Yl0gJiAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQogCQkJICAgKGRhdGEyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gKDEpOwogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC91dHg4MjQ1L3V0eDgyNDUuYyBiL2JvYXJkL3V0eDgyNDUvdXR4ODI0NS5jCmluZGV4IGU3Y2E2NjkuLjg0MDI2ODkgMTAwNjQ0Ci0tLSBhL2JvYXJkL3V0eDgyNDUvdXR4ODI0NS5jCisrKyBiL2JvYXJkL3V0eDgyNDUvdXR4ODI0NS5jCkBAIC01NSw3ICs1NSw3IEBACiAJbG9uZyBtZWFyMTsKIAlsb25nIGVtZWFyMTsKIAotCXNpemUgPSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIENGR19NQVhfUkFNX1NJWkUpOworCXNpemUgPSBnZXRfcmFtX3NpemUoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX01BWF9SQU1fU0laRSk7CiAKIAluZXdfYmFuazBfZW5kID0gc2l6ZS8yIC0gMTsKIAluZXdfYmFuazFfZW5kID0gc2l6ZSAtIDE7CmRpZmYgLS1naXQgYS9ib2FyZC92MzcvZmxhc2guYyBiL2JvYXJkL3YzNy9mbGFzaC5jCmluZGV4IGQ4NDVmNjUuLjliODE3ZWMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3YzNy9mbGFzaC5jCisrKyBiL2JvYXJkL3YzNy9mbGFzaC5jCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTU0LDQyICs1NCw0MiBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjAsIHNpemVfYjE7CiAJc2hvcnQgbWFudSwgZGV2X2lkOwogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCiAJLyogRG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwogCi0JZmxhc2hfZ2V0X2lkX3dvcmQoKHZvaWQqKUNGR19GTEFTSF9CQVNFMCwmbWFudSwmZGV2X2lkKTsKKwlmbGFzaF9nZXRfaWRfd29yZCgodm9pZCopQ09ORklHX1NZU19GTEFTSF9CQVNFMCwmbWFudSwmZGV2X2lkKTsKIAogCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZShtYW51LCBkZXZfaWQsICZmbGFzaF9pbmZvWzBdKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRTAsICZmbGFzaF9pbmZvWzBdLDApOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UwLCAmZmxhc2hfaW5mb1swXSwwKTsKIAotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKDAgLSBzaXplX2IwKTsKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoMCAtIHNpemVfYjApOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRTAKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UwCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCi0JZmxhc2hfZ2V0X2lkX2xvbmcoKHZvaWQqKUNGR19GTEFTSF9CQVNFMSwmbWFudSwmZGV2X2lkKTsKKwlmbGFzaF9nZXRfaWRfbG9uZygodm9pZCopQ09ORklHX1NZU19GTEFTSF9CQVNFMSwmbWFudSwmZGV2X2lkKTsKIAogCXNpemVfYjEgPSAyICogZmxhc2hfZ2V0X3NpemUobWFudSwgZGV2X2lkLCAmZmxhc2hfaW5mb1sxXSk7CiAKLQlmbGFzaF9nZXRfb2Zmc2V0cyhDRkdfRkxBU0hfQkFTRTEsICZmbGFzaF9pbmZvWzFdLDEpOworCWZsYXNoX2dldF9vZmZzZXRzKENPTkZJR19TWVNfRkxBU0hfQkFTRTEsICZmbGFzaF9pbmZvWzFdLDEpOwogCi0JbWVtY3RsLT5tZW1jX29yMSA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoMCAtIHNpemVfYjEpOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgwIC0gc2l6ZV9iMSk7CiAKIAlmbGFzaF9pbmZvWzBdLnNpemUgPSBzaXplX2IwOwogCWZsYXNoX2luZm9bMV0uc2l6ZSA9IHNpemVfYjE7CkBAIC0zOTUsNyArMzk1LDcgQEAKIAlsYXN0ICA9IHN0YXJ0OwogCWFkZHIgPSAodnVfc2hvcnQgKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJd2hpbGUgKChhZGRyWzBdICYgMHg4MDgwKSAhPSAweDgwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTUyNCw3ICs1MjQsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqKCh2dV9zaG9ydCAqKWRlc3QpICYgMHg4MDgwKSAhPSAoc2RhdGEgJiAweDgwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CkBAIC01NDgsNyArNTQ4LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKigodnVfc2hvcnQgKilkZXN0ICsgMSkgJiAweDgwODApICE9IChzZGF0YSAmIDB4ODA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3YzNy92MzcuYyBiL2JvYXJkL3YzNy92MzcuYwppbmRleCAyMDY3ZmVkLi45YzdiYWQ1IDEwMDY0NAotLS0gYS9ib2FyZC92MzcvdjM3LmMKKysrIGIvYm9hcmQvdjM3L3YzNy5jCkBAIC05Miw3ICs5Miw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLSAgICB2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICB2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogICAgIHVuc2lnbmVkIGxvbmcgdGVtcDsKICAgICB2b2xhdGlsZSBpbnQgZGVsYXlfY250OwpAQCAtMTM2LDggKzEzNiw4IEBACiAKICNpZmRlZglDT05GSUdfQ0FOX0RSSVZFUgogICAgIC8qIEluaXRpYWxpemUgT1IzIC8gQlIzICovCi0gICAgbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfQ0FOOwotICAgIG1lbWN0bC0+bWVtY19icjMgPSBDRkdfQlIzX0NBTjsKKyAgICBtZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19PUjNfQ0FOOworICAgIG1lbWN0bC0+bWVtY19icjMgPSBDT05GSUdfU1lTX0JSM19DQU47CiAKICAgICAvKiBJbml0aWFsaXplIE1CTVIgKi8KICAgICBtZW1jdGwtPm1lbWNfbWFtciA9IE1BTVJfR1BMX0E0RElTOwkvKiBHUExfQTQgb3VwdXQgbGluZSBEaXNhYmxlICovCkBAIC0xOTEsNyArMTkxLDcgQEAKIAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAoKQogewotICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICB2b2xhdGlsZSBzeXNjb25mOHh4X3QgKnNpdSA9ICZpbW1hcC0+aW1fc2l1X2NvbmY7CiAgICAgdm9sYXRpbGUgcGNtY29uZjh4eF90ICpwY20gPSAmaW1tYXAtPmltX3BjbWNpYTsKICAgICBsb25nIGludAkJICBpLCBtZW1vcnk9MTsKZGlmZiAtLWdpdCBhL2JvYXJkL3YzOGIvdjM4Yi5jIGIvYm9hcmQvdjM4Yi92MzhiLmMKaW5kZXggODgxNWEwYy4uZDc3NDI5NSAxMDA2NDQKLS0tIGEvYm9hcmQvdjM4Yi92MzhiLmMKKysrIGIvYm9hcmQvdjM4Yi92MzhiLmMKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIHN0YXRpYyB2b2lkIHNkcmFtX3N0YXJ0KGludCBoaV9hZGRyKQogewogCWxvbmcgaGlfYWRkcl9iaXQgPSBoaV9hZGRyID8gMHgwMTAwMDAwMCA6IDA7CkBAIC02OCw3ICs2OCw3IEBACiAJKih2dV9sb25nICopIE1QQzVYWFhfU0RSQU1fQ1RSTCA9IFNEUkFNX0NPTlRST0wgfCBoaV9hZGRyX2JpdDsKIAlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogfQotI2VuZGlmIC8qICFDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qICFDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbShpbnQgYm9hcmRfdHlwZSkKQEAgLTc3LDcgKzc3LDcgQEAKIAl1bG9uZyBkcmFtc2l6ZTIgPSAwOwogCXVpbnQgc3ZyLCBwdnI7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgdGVzdDEsIHRlc3QyOwogCiAJLyogc2V0dXAgU0RSQU0gY2hpcCBzZWxlY3RzICovCkBAIC05OCw5ICs5OCw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMCBvbmx5ICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCXNkcmFtX3N0YXJ0KDEpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKIAkJZHJhbXNpemUgPSB0ZXN0MTsKQEAgLTEyMywxMCArMTIzLDEwIEBACiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzEgb25seSAqLwogCWlmICghZHJhbXNpemUpCiAJCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikgKENGR19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKKwl0ZXN0MiA9IHRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOwogCWlmICghZHJhbXNpemUpIHsKIAkJc2RyYW1fc3RhcnQoMSk7Ci0JCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopIChDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOwogCX0KIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKQEAgLTE0NSw3ICsxNDUsNyBAQAogCWVsc2UKIAkJKih2dV9sb25nICopIE1QQzVYWFhfU0RSQU1fQ1MxQ0ZHID0gZHJhbXNpemU7IC8qIGRpc2FibGVkICovCiAKLSNlbHNlIC8qIENGR19SQU1CT09UICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIHJldHJpZXZlIHNpemUgb2YgbWVtb3J5IGNvbm5lY3RlZCB0byBTRFJBTSBDUzAgKi8KIAlkcmFtc2l6ZSA9ICoodnVfbG9uZyAqKSBNUEM1WFhYX1NEUkFNX0NTMENGRyAmIDB4RkY7CkBAIC0xNjEsNyArMTYxLDcgQEAKIAllbHNlCiAJCWRyYW1zaXplMiA9IDA7CiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyoKIAkgKiBPbiBNUEM1MjAwQiB3ZSBuZWVkIHRvIHNldCB0aGUgc3BlY2lhbCBjb25maWd1cmF0aW9uIGRlbGF5IGluIHRoZQpkaWZmIC0tZ2l0IGEvYm9hcmQvdmVyc2F0aWxlL2ZsYXNoLmMgYi9ib2FyZC92ZXJzYXRpbGUvZmxhc2guYwppbmRleCBiYmU1ZGY3Li4zYmRjODk1IDEwMDY0NAotLS0gYS9ib2FyZC92ZXJzYXRpbGUvZmxhc2guYworKysgYi9ib2FyZC92ZXJzYXRpbGUvZmxhc2guYwpAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2J5dGVvcmRlci9zd2FiLmg+CiAKICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUJMHgwMDAyMDAwMAkvKiAyNTYgS0Igc2VjdG9ycyAoeDIpICovCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyogQm9hcmQgc3VwcG9ydCBmb3IgMSBvciAyIGZsYXNoIGRldmljZXMgKi8KICNkZWZpbmUgRkxBU0hfUE9SVF9XSURUSDMyCkBAIC0xMDEsNyArMTAxLDcgQEAKIHsKIAlpbnQgaTsKIAl1bG9uZyBzaXplID0gMDsKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDoKIAkJICAgICAgICBmbGFzaF92cHAoMSk7CkBAIC0xMTksOCArMTE5LDggQEAKIAkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCQlDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOworCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlyZXR1cm4gc2l6ZTsKIH0KQEAgLTI0NiwxMCArMjQ2LDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOwotCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlhZGRyWzBdID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KQEAgLTM0Miw3ICszNDIsNyBAQAogCQkJCSphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9CiAJCQkJKEZQVykgMHgwMDgwMDA4MCkgewogCQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+Ci0JCQkJCUNGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJCUNPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJLyogc3VzcGVuZCBlcmFzZSAgICAgKi8KIAkJCQkJKmFkZHIgPSAoRlBXKSAweDAwQjAwMEIwOwpAQCAtNDkzLDcgKzQ5Myw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJZmxhc2hfdnBwKDApOwogCQkJcmV0dXJuICgxKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3c3by9jbWRfdnBkLmMgYi9ib2FyZC93N28vY21kX3ZwZC5jCmluZGV4IGZkZDZjZWIuLjMxMGZkZTAgMTAwNjQ0Ci0tLSBhL2JvYXJkL3c3by9jbWRfdnBkLmMKKysrIGIvYm9hcmQvdzdvL2NtZF92cGQuYwpAQCAtMzUsNyArMzUsNyBAQAogaW50IGRvX3ZwZCAoY21kX3RibF90ICogY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogCVZQRCB2cGQ7CQkJLyogQm9hcmQgc3BlY2lmaWMgZGF0YSBzdHJ1Y3QgKi8KLQl1Y2hhciBkZXZfYWRkciA9IENGR19ERUZfRUVQUk9NX0FERFI7CisJdWNoYXIgZGV2X2FkZHIgPSBDT05GSUdfU1lTX0RFRl9FRVBST01fQUREUjsKIAogCS8qIFZhbGlkYXRlIHVzYWdlICovCiAJaWYgKGFyZ2MgPiAyKSB7CmRpZmYgLS1naXQgYS9ib2FyZC93N28vZmxhc2guYyBiL2JvYXJkL3c3by9mbGFzaC5jCmluZGV4IDMyODE1ZmIuLjY3NzQ5NDkgMTAwNjQ0Ci0tLSBhL2JvYXJkL3c3by9mbGFzaC5jCisrKyBiL2JvYXJkL3c3by9mbGFzaC5jCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlIDx3YXRjaGRvZy5oPgogCi1mbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCAgICBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC00OSw3ICs0OSw3IEBACiAgICAgdW5zaWduZWQgbG9uZyBzaXplX2IxLCBiYXNlX2IxOwogCiAgICAgLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotICAgIGZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKyAgICBmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogICAgIH0KIApAQCAtOTAsMTMgKzkwLDEzIEBACiAgICAgLyogUHJvdGVjdCB0aGUgRlBHQSBpbWFnZSAqLwogICAgICh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKIAkJCUZMQVNIX0JBU0UxX1BSRUxJTSwKLQkJCUZMQVNIX0JBU0UxX1BSRUxJTSArIENGR19GUEdBX0lNQUdFX0xFTiAtIDEsCisJCQlGTEFTSF9CQVNFMV9QUkVMSU0gKyBDT05GSUdfU1lTX0ZQR0FfSU1BR0VfTEVOIC0gMSwKIAkJCSZmbGFzaF9pbmZvWzFdKTsKIAogICAgIC8qIFByb3RlY3QgdGhlIGRlZmF1bHQgYm9vdCBpbWFnZSAqLwogICAgICh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCUZMQVNIX0JBU0UxX1BSRUxJTSArIENGR19GUEdBX0lNQUdFX0xFTiwKLQkJCUZMQVNIX0JBU0UxX1BSRUxJTSArIENGR19GUEdBX0lNQUdFX0xFTiArIDB4NjAwMDAwIC0gMSwKKwkJCUZMQVNIX0JBU0UxX1BSRUxJTSArIENPTkZJR19TWVNfRlBHQV9JTUFHRV9MRU4sCisJCQlGTEFTSF9CQVNFMV9QUkVMSU0gKyBDT05GSUdfU1lTX0ZQR0FfSU1BR0VfTEVOICsgMHg2MDAwMDAgLSAxLAogCQkJJmZsYXNoX2luZm9bMV0pOwogCiAgICAgLyogU2V0dXAgb2Zmc2V0cyBmb3IgTWFpbiBGbGFzaCAqLwpAQCAtMjk0LDExICsyOTQsMTEgQEAKIAl9CiAgICAgfQogCi0gICAgLyogTWFrZSBzdXJlIHdlIGRvbid0IGV4Y2VlZCBDRkdfTUFYX0ZMQVNIX1NFQ1QgKi8KLSAgICBpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisgICAgLyogTWFrZSBzdXJlIHdlIGRvbid0IGV4Y2VlZCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUICovCisgICAgaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQlpbmZvLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKICAgICB9CiAKICAgICAvKiBzZXQgdXAgc2VjdG9yIHN0YXJ0IGFkZHJlc3MgdGFibGUgKi8KQEAgLTUyMCw3ICs1MjAsNyBAQAogCSAgICB1ZGVsYXkgKDEwMDApOwogCiAJICAgIHdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJICAgIHByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkgICAgKmFkZHIgPSAweDAwQjAwMEIwOyAgICAgIC8qIHN1c3BlbmQgZXJhc2UgICAgICAqLwogCQkgICAgKmFkZHIgPSAweDAwRkYwMEZGOyAgICAgIC8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwpAQCAtNzg3LDcgKzc4Nyw3IEBACiAKICAgICB3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7CiAJV0FUQ0hET0dfUkVTRVQoKTsKLQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkgICAgKmFkZHIgPSAweDAwRkYwMEZGOyAgICAgICAgICAgICAgLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkgICAgcmV0dXJuICgxKTsKIAl9CmRpZmYgLS1naXQgYS9ib2FyZC93N28vaW5pdC5TIGIvYm9hcmQvdzdvL2luaXQuUwppbmRleCAzNWQ3ZGJjLi4yZmQ4NGJhIDEwMDY0NAotLS0gYS9ib2FyZC93N28vaW5pdC5TCisrKyBiL2JvYXJkL3c3by9pbml0LlMKQEAgLTY0LDExICs2NCwxMSBAQAogCW1mbHIJcjMJCQkvKiBnZXQgYWRkcmVzcyBvZiAuLmdldEFkZHIgKi8KIAogCS8qIENhbGN1bGF0ZSBudW1iZXIgb2YgY2FjaGUgbGluZXMgZm9yIHRoaXMgZnVuY3Rpb24gKi8KLQlhZGRpCXI0LCAwLCAoKCguTGZlMCAtIC4uZ2V0QWRkcikgLyBDRkdfQ0FDSEVMSU5FX1NJWkUpICsgMikKKwlhZGRpCXI0LCAwLCAoKCguTGZlMCAtIC4uZ2V0QWRkcikgLyBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFKSArIDIpCiAJbXRjdHIJcjQKIC4uZWJjbG9vcDoKIAlpY2J0CXIwLCByMwkJCS8qIHByZWZldGNoIGNhY2hlIGxpbmUgZm9yIGFkZHIgaW4gcjMqLwotCWFkZGkJcjMsIHIzLCBDRkdfQ0FDSEVMSU5FX1NJWkUgLyogbW92ZSB0byBuZXh0IGNhY2hlIGxpbmUgKi8KKwlhZGRpCXIzLCByMywgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAvKiBtb3ZlIHRvIG5leHQgY2FjaGUgbGluZSAqLwogCWJkbnoJLi5lYmNsb29wCQkvKiBjb250aW51ZSBmb3IgJENUUiBjYWNoZSBsaW5lcyAqLwogCiAJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMDMsMTQgKzEwMywxNCBAQAogCSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCWFkZGkJcjMsIDAsIHBiMGFwCiAJbXRkY3IJZWJjY2ZnYSwgcjMKLQlhZGRpcwlyNCwgMCwgQ0ZHX1c3T19FQkNfUEIwQVBAaAotCW9yaQlyNCwgcjQsIENGR19XN09fRUJDX1BCMEFQQGwKKwlhZGRpcwlyNCwgMCwgQ09ORklHX1NZU19XN09fRUJDX1BCMEFQQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX1c3T19FQkNfUEIwQVBAbAogCW10ZGNyCWViY2NmZ2QsIHI0CiAKIAlhZGRpCXIzLCAwLCBwYjBjcgogCW10ZGNyCWViY2NmZ2EsIHIzCi0JYWRkaXMJcjQsIDAsIENGR19XN09fRUJDX1BCMENSQGgKLQlvcmkJcjQsIHI0LCBDRkdfVzdPX0VCQ19QQjBDUkBsCisJYWRkaXMJcjQsIDAsIENPTkZJR19TWVNfVzdPX0VCQ19QQjBDUkBoCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19XN09fRUJDX1BCMENSQGwKIAltdGRjcgllYmNjZmdkLCByNAogCiAJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMTgsMTQgKzExOCwxNCBAQAogCSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCWFkZGkJcjMsIDAsIHBiN2FwCiAJbXRkY3IJZWJjY2ZnYSwgcjMKLQlhZGRpcwlyNCwgMCwgQ0ZHX1c3T19FQkNfUEI3QVBAaAotCW9yaQlyNCwgcjQsIENGR19XN09fRUJDX1BCN0FQQGwKKwlhZGRpcwlyNCwgMCwgQ09ORklHX1NZU19XN09fRUJDX1BCN0FQQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX1c3T19FQkNfUEI3QVBAbAogCW10ZGNyCWViY2NmZ2QsIHI0CiAKIAlhZGRpCXIzLCAwLCBwYjdjcgogCW10ZGNyCWViY2NmZ2EsIHIzCi0JYWRkaXMJcjQsIDAsIENGR19XN09fRUJDX1BCN0NSQGgKLQlvcmkJcjQsIHI0LCBDRkdfVzdPX0VCQ19QQjdDUkBsCisJYWRkaXMJcjQsIDAsIENPTkZJR19TWVNfVzdPX0VCQ19QQjdDUkBoCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19XN09fRUJDX1BCN0NSQGwKIAltdGRjcgllYmNjZmdkLCByNAogCiAJLyogV2UgYXJlIGFsbCBkb25lICovCmRpZmYgLS1naXQgYS9ib2FyZC93N28vcG9zdDIuYyBiL2JvYXJkL3c3by9wb3N0Mi5jCmluZGV4IDZlZTMzZWIuLjFkZmFhMmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3c3by9wb3N0Mi5jCisrKyBiL2JvYXJkL3c3by9wb3N0Mi5jCkBAIC0zOCw3ICszOCw3IEBACiAjaWYgZGVmaW5lZChDT05GSUdfUlRDX000OFQzNUEpCiB2b2lkIHJ0Y3Rlc3Qodm9pZCkKIHsKLSAgICB2b2xhdGlsZSB1Y2hhciAqdGNoYXIgPSAodWNoYXIqKShDRkdfTlZSQU1fQkFTRV9BRERSICsgQ0ZHX05WUkFNX1NJWkUgLSA5KTsKKyAgICB2b2xhdGlsZSB1Y2hhciAqdGNoYXIgPSAodWNoYXIqKShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiArIENPTkZJR19TWVNfTlZSQU1fU0laRSAtIDkpOwogICAgIHN0cnVjdCBydGNfdGltZSB0bXA7CiAKICAgICAvKiBzZXQgdXAgbGVkIGNvZGUgZm9yIFJUQyB0ZXN0cyAqLwpAQCAtODksOSArODksOSBAQAogICAgIGh5c3QgPSBkdHRfcmVhZChzZW5zb3IsIERUVF9URU1QX0hZU1QpIC8gMjU2OwogCiAgICAgLyogY2hlY2sgdmFsdWVzICovCi0gICAgaWYgKChoeXN0ICE9IChDRkdfRFRUX01BWF9URU1QIC0gQ0ZHX0RUVF9IWVNURVJFU0lTKSkgfHwKLQkodHJpcCAhPSBDRkdfRFRUX01BWF9URU1QKSB8fAotCSh0ZW1wIDwgQ0ZHX0RUVF9MT1dfVEVNUCkgfHwgKHRlbXAgPiBDRkdfRFRUX01BWF9URU1QKSkKKyAgICBpZiAoKGh5c3QgIT0gKENPTkZJR19TWVNfRFRUX01BWF9URU1QIC0gQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUykpIHx8CisJKHRyaXAgIT0gQ09ORklHX1NZU19EVFRfTUFYX1RFTVApIHx8CisJKHRlbXAgPCBDT05GSUdfU1lTX0RUVF9MT1dfVEVNUCkgfHwgKHRlbXAgPiBDT05GSUdfU1lTX0RUVF9NQVhfVEVNUCkpCiAJcmV0dXJuIDE7CiAKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2JvYXJkL3c3by92cGQuYyBiL2JvYXJkL3c3by92cGQuYwppbmRleCAyY2UxNTY4Li41NzU1OGU4IDEwMDY0NAotLS0gYS9ib2FyZC93N28vdnBkLmMKKysrIGIvYm9hcmQvdzdvL3ZwZC5jCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgZGVmaW5lZChWWFdPUktTKQogIyBpbmNsdWRlIDxzdGRpby5oPgogIyBpbmNsdWRlIDxzdHJpbmcuaD4KLSMgZGVmaW5lIENGR19ERUZfRUVQUk9NX0FERFIgMHhhMAorIyBkZWZpbmUgQ09ORklHX1NZU19ERUZfRUVQUk9NX0FERFIgMHhhMAogZXh0ZXJuIGNoYXIgaWljUmVhZEJ5dGUoIGNoYXIsIGNoYXIgKTsKIGV4dGVybiB1bG9uZ190IGNyYzMyKCB1bnNpZ25lZCBjaGFyICosIHVuc2lnbmVkIGxvbmcgKTsKICNlbHNlCkBAIC00Nyw3ICs0Nyw3IEBACiAgICAgICogU0RSQU0gU1BEIGluIHRoZSBmaXJzdCAxMjggYnl0ZXMsCiAgICAgICogc28gc2tldyB0aGUgb2Zmc2V0LgogICAgICAqLwotICAgIGlmIChkZXZfYWRkciA9PSBDRkdfREVGX0VFUFJPTV9BRERSKQorICAgIGlmIChkZXZfYWRkciA9PSBDT05GSUdfU1lTX0RFRl9FRVBST01fQUREUikKIAlvZmZzZXQgKz0gU0RSQU1fU1BEX0RBVEFfU0laRTsKIAogICAgIC8qIFRyeSB0byByZWFkIHRoZSBJMkMgRUVQUk9NICovCkBAIC0xMjcsNyArMTI3LDcgQEAKICAgICAvKiBDaGVjayBFeWVjYXRjaGVyICovCiAgICAgaWYgKHN0cm5jbXAoKGNoYXIgKikodnBkLT5oZWFkZXIuZXllY2F0Y2hlciksIFZQRF9FWUVDQVRDSEVSLCBWUERfRVlFX1NJWkUpICE9IDApIHsKIAl1bnNpZ25lZCBvZmZzZXQgPSAwOwotCWlmIChkZXZfYWRkciA9PSBDRkdfREVGX0VFUFJPTV9BRERSKQorCWlmIChkZXZfYWRkciA9PSBDT05GSUdfU1lTX0RFRl9FRVBST01fQUREUikKIAkgICAgb2Zmc2V0ICs9IFNEUkFNX1NQRF9EQVRBX1NJWkU7CiAJcHJpbnRmKCJFcnJvcjogVlBEIEVFUFJPTSAweCV4IGNvcnJ1cHQgQCAweCV4XG4iLCBkZXZfYWRkciwgb2Zmc2V0KTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvdzdvL3c3by5jIGIvYm9hcmQvdzdvL3c3by5jCmluZGV4IDBlM2I4NGMuLjIyY2RmY2QgMTAwNjQ0Ci0tLSBhL2JvYXJkL3c3by93N28uYworKysgYi9ib2FyZC93N28vdzdvLmMKQEAgLTEzMiw3ICsxMzIsNyBAQAogCXB1dHMgKCJCb2FyZDogIik7CiAKIAkvKiBWUEQgZGF0YSBwcmVzZW50IGluIEkyQyBFRVBST00gKi8KLQlpZiAodnBkX2dldF9kYXRhIChDRkdfREVGX0VFUFJPTV9BRERSLCAmdnBkKSA9PSAwKSB7CisJaWYgKHZwZF9nZXRfZGF0YSAoQ09ORklHX1NZU19ERUZfRUVQUk9NX0FERFIsICZ2cGQpID09IDApIHsKIAkJLyoKIAkJICogS25vd24gYm9hcmQgdHlwZS4KIAkJICovCkBAIC0yMDQsNyArMjA0LDcgQEAKIAkvKgogCSAqIFJlYWQgVlBECiAJICovCi0JaWYgKHZwZF9nZXRfZGF0YSAoQ0ZHX0RFRl9FRVBST01fQUREUiwgdnBkKSAhPSAwKQorCWlmICh2cGRfZ2V0X2RhdGEgKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLCB2cGQpICE9IDApCiAJCXJldHVybjsKIAogCS8qCmRpZmYgLS1naXQgYS9ib2FyZC93N28vd2F0Y2hkb2cuYyBiL2JvYXJkL3c3by93YXRjaGRvZy5jCmluZGV4IDRiYmQ5NGYuLjEzMTM5OWMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3c3by93YXRjaGRvZy5jCisrKyBiL2JvYXJkL3c3by93YXRjaGRvZy5jCkBAIC0zMiw3ICszMiw3IEBACiAKIHZvaWQgaHdfd2F0Y2hkb2dfcmVzZXQodm9pZCkKIHsKLSAgICB2b2xhdGlsZSB1c2hvcnQgKmh3ZCA9ICh1c2hvcnQgKikoQ0ZHX1c3T19FQkNfUEI3Q1IgJiAweGZmZjAwMDAwKTsKKyAgICB2b2xhdGlsZSB1c2hvcnQgKmh3ZCA9ICh1c2hvcnQgKikoQ09ORklHX1NZU19XN09fRUJDX1BCN0NSICYgMHhmZmYwMDAwMCk7CiAKICAgICAvKgogICAgICAqIFJlYWQgdGhlIExNRydzIGh3ZCByZWdpc3RlciBhbmQgdG9nZ2xlIHRoZQpkaWZmIC0tZ2l0IGEvYm9hcmQvd2VwZXAyNTAvZmxhc2guYyBiL2JvYXJkL3dlcGVwMjUwL2ZsYXNoLmMKaW5kZXggNjIyM2VjMS4uYzZlOTE3MSAxMDA2NDQKLS0tIGEvYm9hcmQvd2VwZXAyNTAvZmxhc2guYworKysgYi9ib2FyZC93ZXBlcDI1MC9mbGFzaC5jCkBAIC04Miw3ICs4Miw3IEBACiAjZW5kaWYKIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogc3RhdGljIEZMQVNIX0JVU19SRVQgZmxhc2hfc3RhdHVzX3JlZyAodm9pZCkKIHsKQEAgLTEwOSw3ICsxMDksNyBAQAogCXJldHVybiBvazsKIH0KIAotI2lmICggQ0ZHX01BWF9GTEFTSF9CQU5LUyAhPSAxICkKKyNpZiAoIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICE9IDEgKQogIyAgZXJyb3IgIldFUCBwbGF0Zm9ybSBoYXMgb25seSBvbmUgZmxhc2ggYmFuayEiCiAjZW5kaWYKIApAQCAtMTIwLDExICsxMjAsMTEgQEAKIAlGTEFTSF9CVVMgYWRkcmVzcyA9IFdFUF9GTEFTSF9CQVNFOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gV0VQX0ZMQVNIX0JBTktfU0laRTsKLQlmbGFzaF9pbmZvWzBdLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwlmbGFzaF9pbmZvWzBdLnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9IElOVEVMX01BTlVGQUNUOwotCW1lbXNldCAoZmxhc2hfaW5mb1swXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCW1lbXNldCAoZmxhc2hfaW5mb1swXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX1NFQ1Q7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOyBpKyspIHsKIAkJZmxhc2hfaW5mb1swXS5zdGFydFtpXSA9IGFkZHJlc3M7CiAjaWZkZWYgV0VQX0ZMQVNIX1VOTE9DSwogCQkvKiBTb21lIGRldmljZXMgYXJlIGh3IGxvY2tlZCBhZnRlciBzdGFydC4gKi8KQEAgLTEzNyw4ICsxMzcsOCBAQAogCX0KIAogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJICAgQ0ZHX0ZMQVNIX0JBU0UsCi0JCQkJICAgQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQkJICAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJCSAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCQkgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULApAQCAtMjA5LDcgKzIwOSw3IEBACiAKIAkJKmFkZHJlc3MgPSBGTEFTSF9DTUQgKENGSV9JTlRFTF9DTURfQkxPQ0tfRVJBU0UpOwogCQkqYWRkcmVzcyA9IEZMQVNIX0NNRCAoQ0ZJX0lOVEVMX0NNRF9DT05GSVJNKTsKLQkJaWYgKGZsYXNoX3JlYWR5IChDRkdfRkxBU0hfRVJBU0VfVE9VVCkpIHsKKwkJaWYgKGZsYXNoX3JlYWR5IChDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpKSB7CiAJCQkqYWRkcmVzcyA9IEZMQVNIX0NNRCAoQ0ZJX0lOVEVMX0NNRF9DTEVBUl9TVEFUVVNfUkVHSVNURVIpOwogCQkJcHJpbnRmICgib2suXG4iKTsKIAkJfSBlbHNlIHsKQEAgLTI1Nyw3ICsyNTcsNyBAQAogCSphZGRyZXNzID0gRkxBU0hfQ01EIChDRklfSU5URUxfQ01EX1BST0dSQU0xKTsKIAkqYWRkcmVzcyA9IGRhdGE7CiAKLQlpZiAoIWZsYXNoX3JlYWR5IChDRkdfRkxBU0hfV1JJVEVfVE9VVCkpIHsKKwlpZiAoIWZsYXNoX3JlYWR5IChDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpKSB7CiAJCSphZGRyZXNzID0gRkxBU0hfQ01EIChDRklfSU5URUxfQ01EX1NVU1BFTkQpOwogCQlyYyA9IEVSUl9USU1PVVQ7CiAJCXByaW50ZiAoInRpbWVvdXQhIEFib3J0aW5nLi4uXG4iKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3dlc3RlbC9hbXg4NjAvYW14ODYwLmMgYi9ib2FyZC93ZXN0ZWwvYW14ODYwL2FteDg2MC5jCmluZGV4IDQ3NDJhYWZjLi45MWRjYzBkIDEwMDY0NAotLS0gYS9ib2FyZC93ZXN0ZWwvYW14ODYwL2FteDg2MC5jCisrKyBiL2JvYXJkL3dlc3RlbC9hbXg4NjAvYW14ODYwLmMKQEAgLTY0LDcgKzY0LDcgQEAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKIAotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJLyogQU1YODYwOiBoYXMgNCBNYiBvZiA2MG5zIEVETyBEUkFNLCBzbyBzdGFydCBEUkFNIGF0IDAgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL3dlc3RlbC9hbXg4NjAvZmxhc2guYyBiL2JvYXJkL3dlc3RlbC9hbXg4NjAvZmxhc2guYwppbmRleCA3NzY4ZTJkLi5mZThiY2U0IDEwMDY0NAotLS0gYS9ib2FyZC93ZXN0ZWwvYW14ODYwL2ZsYXNoLmMKKysrIGIvYm9hcmQvd2VzdGVsL2FteDg2MC9mbGFzaC5jCkBAIC0yNCwxMSArMjQsMTEgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC02MCwxMyArNjAsMTMgQEAKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBzaXplX2IwLCBzaXplX2IxOwogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC0xMTMsMjQgKzExMywyNCBAQAogCQltZW1jdGwtPm1lbWNfYnIxLCBtZW1jdGwtPm1lbWNfb3IxKTsKIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIE9SX0FNX01TSyk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiBPUl9BTV9NU0spOworCW1lbWN0bC0+bWVtY19icjAgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOwogCiAJREVCVUdGKCIjIyBCUjA6IDB4JTA4eCAgICBPUjA6IDB4JTA4eFxuIiwKIAkJbWVtY3RsLT5tZW1jX2JyMCwgbWVtY3RsLT5tZW1jX29yMCk7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IHNpemVfYjA7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0xNDMsMjYgKzE0MywyNiBAQAogI2VuZGlmCiAKIAlpZiAoc2l6ZV9iMSkgewotCQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMSAmIE9SX0FNX01TSyk7Ci0JCW1lbWN0bC0+bWVtY19icjEgPSAoKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCkgJiBCUl9CQV9NU0spIHwKKwkJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IxICYgT1JfQU1fTVNLKTsKKwkJbWVtY3RsLT5tZW1jX2JyMSA9ICgoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCkgJiBCUl9CQV9NU0spIHwKIAkJCQkgICBCUl9NU19HUENNIHwgQlJfVjsKIAogCQlERUJVR0YoIiMjIEJSMTogMHglMDh4ICAgIE9SMTogMHglMDh4XG4iLAogCQkJbWVtY3RsLT5tZW1jX2JyMSwgbWVtY3RsLT5tZW1jX29yMSk7CiAKIAkJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCQlzaXplX2IxID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikoQ0ZHX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSwKKwkJc2l6ZV9iMSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjApLAogCQkJCQkgICZmbGFzaF9pbmZvWzFdKTsKIAogCQlmbGFzaF9pbmZvWzFdLnNpemUgPSBzaXplX2IxOwogCi0JCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKKwkJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKIAotIyBpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjIGlmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkJICAgICAgJmZsYXNoX2luZm9bMV0pOwogIyBlbmRpZgogCkBAIC01MDMsNyArNTAzLDcgQEAKIAlsYXN0ICA9IHN0YXJ0OwogCWFkZHIgPSAodnVfbG9uZyopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogCXdoaWxlICgoYWRkclswXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTYyNiw3ICs2MjYsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDAwODAwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC94YWVuaWF4L2ZsYXNoLmMgYi9ib2FyZC94YWVuaWF4L2ZsYXNoLmMKaW5kZXggY2QyNTdkZi4uYjA1MWM4OSAxMDA2NDQKLS0tIGEvYm9hcmQveGFlbmlheC9mbGFzaC5jCisrKyBiL2JvYXJkL3hhZW5pYXgvZmxhc2guYwpAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2J5dGVvcmRlci9zd2FiLmg+CiAKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCiAKIC8qIEJvYXJkIHN1cHBvcnQgZm9yIDEgb3IgMiBmbGFzaCBkZXZpY2VzICovCiAjZGVmaW5lIEZMQVNIX1BPUlRfV0lEVEgzMgpAQCAtNjUsNyArNjUsNyBAQAogCWludCBpOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXN3aXRjaCAoaSkgewogCQljYXNlIDA6CiAJCQlmbGFzaF9nZXRfc2l6ZSAoKEZQVyAqKSBQSFlTX0ZMQVNIXzEsICZmbGFzaF9pbmZvW2ldKTsKQEAgLTg1LDggKzg1LDggQEAKIAkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLAotCQkJQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkmZmxhc2hfaW5mb1swXSApOwogCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCkBAIC0yMDMsMTAgKzIwMywxMCBAQAogCQlicmVhazsKIAl9CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmICgiKiogRVJST1I6IHNlY3RvciBjb3VudCAlZCA+IG1heCAoJWQpICoqXG4iLAotCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOwotCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSAoRlBXKSAweDAwRkYwMEZGOwkJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KQEAgLTI3Niw3ICsyNzYsNyBAQAogCQkJKmFkZHIgPSAoRlBXKSAweDAwRDAwMEQwOwkvKiBlcmFzZSBjb25maXJtICovCiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCSphZGRyID0gKEZQVykgMHgwMEIwMDBCMDsJLyogc3VzcGVuZCBlcmFzZSAgICAgKi8KIAkJCQkJKmFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KQEAgLTQxMCw3ICs0MTAsNyBAQAogCiAJLyogd2FpdCB3aGlsZSBwb2xsaW5nIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3hhZW5pYXgvbG93bGV2ZWxfaW5pdC5TIGIvYm9hcmQveGFlbmlheC9sb3dsZXZlbF9pbml0LlMKaW5kZXggZmUzZTcxMi4uNTdlMTYyMCAxMDA2NDQKLS0tIGEvYm9hcmQveGFlbmlheC9sb3dsZXZlbF9pbml0LlMKKysrIGIvYm9hcmQveGFlbmlheC9sb3dsZXZlbF9pbml0LlMKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDx2ZXJzaW9uLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KIAotRFJBTV9TSVpFOiAgLmxvbmcgICBDRkdfRFJBTV9TSVpFCitEUkFNX1NJWkU6ICAubG9uZyAgIENPTkZJR19TWVNfRFJBTV9TSVpFCiAKIC8qIHdhaXQgZm9yIGNvcHJvY2Vzc29yIHdyaXRlIGNvbXBsZXRlICovCiAJLm1hY3JvIENQV0FJVCByZWcKQEAgLTQ3LDY3ICs0Nyw2NyBAQAogCS8qIFNldCB1cCBHUElPIHBpbnMgZmlyc3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogCWxkcglyMCw9R1BTUjAKLQlsZHIJcjEsPUNGR19HUFNSMF9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfR1BTUjBfVkFMCiAJc3RyCXIxLFtyMF0KIAogCWxkcglyMCw9R1BTUjEKLQlsZHIJcjEsPUNGR19HUFNSMV9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfR1BTUjFfVkFMCiAJc3RyCXIxLFtyMF0KIAogCWxkcglyMCw9R1BTUjIKLQlsZHIJcjEsPUNGR19HUFNSMl9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfR1BTUjJfVkFMCiAJc3RyCXIxLFtyMF0KIAogCWxkcglyMCw9R1BDUjAKLQlsZHIJcjEsPUNGR19HUENSMF9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfR1BDUjBfVkFMCiAJc3RyCXIxLFtyMF0KIAogCWxkcglyMCw9R1BDUjEKLQlsZHIJcjEsPUNGR19HUENSMV9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfR1BDUjFfVkFMCiAJc3RyCXIxLFtyMF0KIAogCWxkcglyMCw9R1BDUjIKLQlsZHIJcjEsPUNGR19HUENSMl9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfR1BDUjJfVkFMCiAJc3RyCXIxLFtyMF0KIAogCWxkcglyMCw9R1BEUjAKLQlsZHIJcjEsPUNGR19HUERSMF9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfR1BEUjBfVkFMCiAJc3RyCXIxLFtyMF0KIAogCWxkcglyMCw9R1BEUjEKLQlsZHIJcjEsPUNGR19HUERSMV9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfR1BEUjFfVkFMCiAJc3RyCXIxLFtyMF0KIAogCWxkcglyMCw9R1BEUjIKLQlsZHIJcjEsPUNGR19HUERSMl9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfR1BEUjJfVkFMCiAJc3RyCXIxLFtyMF0KIAogCWxkcglyMCw9R0FGUjBfTAotCWxkcglyMSw9Q0ZHX0dBRlIwX0xfVkFMCisJbGRyCXIxLD1DT05GSUdfU1lTX0dBRlIwX0xfVkFMCiAJc3RyCXIxLFtyMF0KIAogCWxkcglyMCw9R0FGUjBfVQotCWxkcglyMSw9Q0ZHX0dBRlIwX1VfVkFMCisJbGRyCXIxLD1DT05GSUdfU1lTX0dBRlIwX1VfVkFMCiAJc3RyCXIxLFtyMF0KIAogCWxkcglyMCw9R0FGUjFfTAotCWxkcglyMSw9Q0ZHX0dBRlIxX0xfVkFMCisJbGRyCXIxLD1DT05GSUdfU1lTX0dBRlIxX0xfVkFMCiAJc3RyCXIxLFtyMF0KIAogCWxkcglyMCw9R0FGUjFfVQotCWxkcglyMSw9Q0ZHX0dBRlIxX1VfVkFMCisJbGRyCXIxLD1DT05GSUdfU1lTX0dBRlIxX1VfVkFMCiAJc3RyCXIxLFtyMF0KIAogCWxkcglyMCw9R0FGUjJfTAotCWxkcglyMSw9Q0ZHX0dBRlIyX0xfVkFMCisJbGRyCXIxLD1DT05GSUdfU1lTX0dBRlIyX0xfVkFMCiAJc3RyCXIxLFtyMF0KIAogCWxkcglyMCw9R0FGUjJfVQotCWxkcglyMSw9Q0ZHX0dBRlIyX1VfVkFMCisJbGRyCXIxLD1DT05GSUdfU1lTX0dBRlIyX1VfVkFMCiAJc3RyCXIxLFtyMF0KIAogCWxkcglyMCw9UFNTUgkJLyogZW5hYmxlIEdQSU8gcGlucyAqLwotCWxkcglyMSw9Q0ZHX1BTU1JfVkFMCisJbGRyCXIxLD1DT05GSUdfU1lTX1BTU1JfVkFMCiAJc3RyCXIxLFtyMF0KIAogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KQEAgLTE0NSwxNyArMTQ1LDE3IEBACiAJLyogTVNDIHJlZ2lzdGVyczogdGltaW5nLCBidXMgd2lkdGgsIG1lbSB0eXBlICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAJLyogTVNDMDogbkNTKDAsMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsPUNGR19NU0MwX1ZBTAorCWxkciAgICAgcjIsPUNPTkZJR19TWVNfTVNDMF9WQUwKIAlzdHIgICAgIHIyLFtyMSwgI01TQzBfT0ZGU0VUXQogCWxkciAgICAgcjIsW3IxLCAjTVNDMF9PRkZTRVRdCS8qIHJlYWQgYmFjayB0byBlbnN1cmUgZGF0YSBsYXRjaGVzICovCiAKIAkvKiBNU0MxOiBuQ1MoMiwzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyICAgICByMiw9Q0ZHX01TQzFfVkFMCisJbGRyICAgICByMiw9Q09ORklHX1NZU19NU0MxX1ZBTAogCXN0ciAgICAgcjIsW3IxLCAjTVNDMV9PRkZTRVRdCiAJbGRyICAgICByMixbcjEsICNNU0MxX09GRlNFVF0KIAogCS8qIE1TQzI6IG5DUyg0LDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLD1DRkdfTVNDMl9WQUwKKwlsZHIgICAgIHIyLD1DT05GSUdfU1lTX01TQzJfVkFMCiAJc3RyICAgICByMixbcjEsICNNU0MyX09GRlNFVF0KIAlsZHIgICAgIHIyLFtyMSwgI01TQzJfT0ZGU0VUXQogCkBAIC0xNjQsMzcgKzE2NCwzNyBAQAogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogCS8qIE1FQ1I6IE1lbW9yeSBFeHBhbnNpb24gQ2FyZCBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLD1DRkdfTUVDUl9WQUwKKwlsZHIgICAgIHIyLD1DT05GSUdfU1lTX01FQ1JfVkFMCiAJc3RyICAgICByMixbcjEsICNNRUNSX09GRlNFVF0KIAlsZHIJcjIsW3IxLCAjTUVDUl9PRkZTRVRdCiAKIAkvKiBNQ01FTTA6IENhcmQgSW50ZXJmYWNlIHNsb3QgMCB0aW1pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyICAgICByMiw9Q0ZHX01DTUVNMF9WQUwKKwlsZHIgICAgIHIyLD1DT05GSUdfU1lTX01DTUVNMF9WQUwKIAlzdHIgICAgIHIyLFtyMSwgI01DTUVNMF9PRkZTRVRdCiAJbGRyCXIyLFtyMSwgI01DTUVNMF9PRkZTRVRdCiAKIAkvKiBNQ01FTTE6IENhcmQgSW50ZXJmYWNlIHNsb3QgMSB0aW1pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyICAgICByMiw9Q0ZHX01DTUVNMV9WQUwKKwlsZHIgICAgIHIyLD1DT05GSUdfU1lTX01DTUVNMV9WQUwKIAlzdHIgICAgIHIyLFtyMSwgI01DTUVNMV9PRkZTRVRdCiAJbGRyCXIyLFtyMSwgI01DTUVNMV9PRkZTRVRdCiAKIAkvKiBNQ0FUVDA6IENhcmQgSW50ZXJmYWNlIEF0dHJpYnV0ZSBTcGFjZSBUaW1pbmcsIHNsb3QgMCAgICAgICAgICAgICovCi0JbGRyICAgICByMiw9Q0ZHX01DQVRUMF9WQUwKKwlsZHIgICAgIHIyLD1DT05GSUdfU1lTX01DQVRUMF9WQUwKIAlzdHIgICAgIHIyLFtyMSwgI01DQVRUMF9PRkZTRVRdCiAJbGRyCXIyLFtyMSwgI01DQVRUMF9PRkZTRVRdCiAKIAkvKiBNQ0FUVDE6IENhcmQgSW50ZXJmYWNlIEF0dHJpYnV0ZSBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICovCi0JbGRyICAgICByMiw9Q0ZHX01DQVRUMV9WQUwKKwlsZHIgICAgIHIyLD1DT05GSUdfU1lTX01DQVRUMV9WQUwKIAlzdHIgICAgIHIyLFtyMSwgI01DQVRUMV9PRkZTRVRdCiAJbGRyCXIyLFtyMSwgI01DQVRUMV9PRkZTRVRdCiAKIAkvKiBNQ0lPMDogQ2FyZCBJbnRlcmZhY2UgSS9PIFNwYWNlIFRpbWluZywgc2xvdCAwICAgICAgICAgICAgICAgICAgICovCi0JbGRyICAgICByMiw9Q0ZHX01DSU8wX1ZBTAorCWxkciAgICAgcjIsPUNPTkZJR19TWVNfTUNJTzBfVkFMCiAJc3RyICAgICByMixbcjEsICNNQ0lPMF9PRkZTRVRdCiAJbGRyCXIyLFtyMSwgI01DSU8wX09GRlNFVF0KIAogCS8qIE1DSU8xOiBDYXJkIEludGVyZmFjZSBJL08gU3BhY2UgVGltaW5nLCBzbG90IDEgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLD1DRkdfTUNJTzFfVkFMCisJbGRyICAgICByMiw9Q09ORklHX1NZU19NQ0lPMV9WQUwKIAlzdHIgICAgIHIyLFtyMSwgI01DSU8xX09GRlNFVF0KIAlsZHIJcjIsW3IxLCAjTUNJTzFfT0ZGU0VUXQogCkBAIC0yMDcsNyArMjA3LDcgQEAKIAkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIAlAIGdldCB0aGUgbWRyZWZyIHNldHRpbmdzCi0JbGRyICAgICByNCw9Q0ZHX01EUkVGUl9WQUwKKwlsZHIgICAgIHI0LD1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAogCUAgd3JpdGUgYmFjayBtZHJlZnIKIAlzdHIgICAgIHI0LFtyMSwgI01EUkVGUl9PRkZTRVRdCkBAIC0yNjEsNyArMjYxLDcgQEAKIAkvKiBTdGVwIDRkOgkJCQkJCQkqLwogCS8qIGZldGNoIHBsYXRmb3JtIHZhbHVlIG9mIG1kY25mZwkJCQkqLwogCUAKLQlsZHIgICAgIHIyLCAgPUNGR19NRENORkdfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01EQ05GR19WQUwKIAogCUAgZGlzYWJsZSBhbGwgc2RyYW0gYmFua3MKIAlACkBAIC0yOTYsNyArMjk2LDcgQEAKIAkvKiAgICAgICAgICBkb2N1bWVudGVkIGluIFNEUkFNIGRhdGEgc2hlZXRzLiBUaGUgYWRkcmVzcyhlcykgdXNlZCAgICovCiAJLyogICAgICAgICAgZm9yIHRoaXMgcHVycG9zZSBtdXN0IG5vdCBiZSBjYWNoZWFibGUuICAgICAgICAgICAgICAgICAqLwogCi0JbGRyCXIzLAk9Q0ZHX0RSQU1fQkFTRQorCWxkcglyMywJPUNPTkZJR19TWVNfRFJBTV9CQVNFCiAJc3RyCXIyLAlbcjNdCiAJc3RyCXIyLAlbcjNdCiAJc3RyCXIyLAlbcjNdCkBAIC0zMjYsNyArMzI2LDcgQEAKIAogCS8qIFN0ZXAgNGg6IFdyaXRlIE1ETVJTLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAotCWxkciAgICAgcjIsCT1DRkdfTURNUlNfVkFMCisJbGRyICAgICByMiwJPUNPTkZJR19TWVNfTURNUlNfVkFMCiAJc3RyICAgICByMiwJW3IxLCAjTURNUlNfT0ZGU0VUXQogCiAKQEAgLTM0Miw3ICszNDIsNyBAQAogCWxkciAgICAgcjIsICA9SUNMUgogCXN0ciAgICAgcjEsICBbcjJdCiAKLQlsZHIgICAgIHIxLCAgPUNGR19JQ01SX1ZBTCAvKiBtYXNrIGFsbCBpbnRlcnJ1cHRzIGF0IHRoZSBjb250cm9sbGVyICovCisJbGRyICAgICByMSwgID1DT05GSUdfU1lTX0lDTVJfVkFMIC8qIG1hc2sgYWxsIGludGVycnVwdHMgYXQgdGhlIGNvbnRyb2xsZXIgKi8KIAlsZHIgICAgIHIyLCAgPUlDTVIKIAlzdHIgICAgIHIxLCAgW3IyXQogCkBAIC0zODgsNyArMzg4LDcgQEAKIAlACiB0ZXN0OgogCWxkciAgICAgcjEsICA9Q0tFTgotCWxkciAgICAgcjIsICA9Q0ZHX0NLRU5fVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX0NLRU5fVkFMCiAJc3RyICAgICByMiwgIFtyMV0KIAogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KZGlmZiAtLWdpdCBhL2JvYXJkL3hpbGlueC9tbDMwMC9zZXJpYWwuYyBiL2JvYXJkL3hpbGlueC9tbDMwMC9zZXJpYWwuYwppbmRleCA5OTNkZmEzLi40MjE1NTEzIDEwMDY0NAotLS0gYS9ib2FyZC94aWxpbngvbWwzMDAvc2VyaWFsLmMKKysrIGIvYm9hcmQveGlsaW54L21sMzAwL3NlcmlhbC5jCkBAIC00NSw5ICs0NSw5IEBACiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAogI2RlZmluZSBVU0VfQ0hBTjEgXAotCSgoZGVmaW5lZCBYUEFSX1VBUlROUzU1MF8wX0JBU0VBRERSKSAmJiAoZGVmaW5lZCBDRkdfSU5JVF9DSEFOMSkpCisJKChkZWZpbmVkIFhQQVJfVUFSVE5TNTUwXzBfQkFTRUFERFIpICYmIChkZWZpbmVkIENPTkZJR19TWVNfSU5JVF9DSEFOMSkpCiAjZGVmaW5lIFVTRV9DSEFOMiBcCi0JKChkZWZpbmVkIFhQQVJfVUFSVE5TNTUwXzFfQkFTRUFERFIpICYmIChkZWZpbmVkIENGR19JTklUX0NIQU4yKSkKKwkoKGRlZmluZWQgWFBBUl9VQVJUTlM1NTBfMV9CQVNFQUREUikgJiYgKGRlZmluZWQgQ09ORklHX1NZU19JTklUX0NIQU4yKSkKIAogI2lmIFVTRV9DSEFOMQogI2luY2x1ZGUgPG5zMTY1NTAuaD4KQEAgLTgyLDIxICs4MiwyMSBAQAogc2VyaWFsX3B1dGMoY29uc3QgY2hhciBjKQogewogCWlmIChjID09ICdcbicpCi0JCU5TMTY1NTBfcHV0YyhDT01fUE9SVFNbQ0ZHX0RVQVJUX0NIQU5dLCAnXHInKTsKKwkJTlMxNjU1MF9wdXRjKENPTV9QT1JUU1tDT05GSUdfU1lTX0RVQVJUX0NIQU5dLCAnXHInKTsKIAotCU5TMTY1NTBfcHV0YyhDT01fUE9SVFNbQ0ZHX0RVQVJUX0NIQU5dLCBjKTsKKwlOUzE2NTUwX3B1dGMoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0sIGMpOwogfQogCiBpbnQKIHNlcmlhbF9nZXRjKHZvaWQpCiB7Ci0JcmV0dXJuIE5TMTY1NTBfZ2V0YyhDT01fUE9SVFNbQ0ZHX0RVQVJUX0NIQU5dKTsKKwlyZXR1cm4gTlMxNjU1MF9nZXRjKENPTV9QT1JUU1tDT05GSUdfU1lTX0RVQVJUX0NIQU5dKTsKIH0KIAogaW50CiBzZXJpYWxfdHN0Yyh2b2lkKQogewotCXJldHVybiBOUzE2NTUwX3RzdGMoQ09NX1BPUlRTW0NGR19EVUFSVF9DSEFOXSk7CisJcmV0dXJuIE5TMTY1NTBfdHN0YyhDT01fUE9SVFNbQ09ORklHX1NZU19EVUFSVF9DSEFOXSk7CiB9CiAKIHZvaWQKZGlmZiAtLWdpdCBhL2JvYXJkL3hpbGlueC9tbDQwMS9tbDQwMS5jIGIvYm9hcmQveGlsaW54L21sNDAxL21sNDAxLmMKaW5kZXggOTU1OTM2ZC4uZjM4OGI3NyAxMDA2NDQKLS0tIGEvYm9hcmQveGlsaW54L21sNDAxL21sNDAxLmMKKysrIGIvYm9hcmQveGlsaW54L21sNDAxL21sNDAxLmMKQEAgLTMyLDExICszMiwxMSBAQAogCiB2b2lkIGRvX3Jlc2V0ICh2b2lkKQogewotI2lmZGVmIENGR19HUElPXzAKLQkqKCh1bnNpZ25lZCBsb25nICopKENGR19HUElPXzBfQUREUikpID0KLQkgICAgKysoKigodW5zaWduZWQgbG9uZyAqKShDRkdfR1BJT18wX0FERFIpKSk7CisjaWZkZWYgQ09ORklHX1NZU19HUElPXzAKKwkqKCh1bnNpZ25lZCBsb25nICopKENPTkZJR19TWVNfR1BJT18wX0FERFIpKSA9CisJICAgICsrKCooKHVuc2lnbmVkIGxvbmcgKikoQ09ORklHX1NZU19HUElPXzBfQUREUikpKTsKICNlbmRpZgotI2lmZGVmIENGR19SRVNFVF9BRERSRVNTCisjaWZkZWYgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCiAJcHV0cyAoIlJlc2V0aW5nIGJvYXJkXG4iKTsKIAlhc20gKCJicmEgcjAiKTsKICNlbmRpZgpAQCAtNDQsMTcgKzQ0LDE3IEBACiAKIGludCBncGlvX2luaXQgKHZvaWQpCiB7Ci0jaWZkZWYgQ0ZHX0dQSU9fMAotCSooKHVuc2lnbmVkIGxvbmcgKikoQ0ZHX0dQSU9fMF9BRERSKSkgPSAweEZGRkZGRkZGOworI2lmZGVmIENPTkZJR19TWVNfR1BJT18wCisJKigodW5zaWduZWQgbG9uZyAqKShDT05GSUdfU1lTX0dQSU9fMF9BRERSKSkgPSAweEZGRkZGRkZGOwogI2VuZGlmCiAJcmV0dXJuIDA7CiB9CiAKLSNpZmRlZiBDRkdfRlNMXzIKKyNpZmRlZiBDT05GSUdfU1lTX0ZTTF8yCiB2b2lkIGZzbF9pc3IyICh2b2lkICphcmcpIHsKIAl2b2xhdGlsZSBpbnQgbnVtOwotCSooKHVuc2lnbmVkIGludCAqKShDRkdfR1BJT18wX0FERFIgKyAweDQpKSA9Ci0JICAgICsrKCooKHVuc2lnbmVkIGludCAqKShDRkdfR1BJT18wX0FERFIgKyAweDQpKSk7CisJKigodW5zaWduZWQgaW50ICopKENPTkZJR19TWVNfR1BJT18wX0FERFIgKyAweDQpKSA9CisJICAgICsrKCooKHVuc2lnbmVkIGludCAqKShDT05GSUdfU1lTX0dQSU9fMF9BRERSICsgMHg0KSkpOwogCUdFVCAobnVtLCAyKTsKIAlOR0VUIChudW0sIDIpOwogCXB1dHMoIioiKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3hpbGlueC9wcGM0NDAtZ2VuZXJpYy91LWJvb3QtcmFtLmxkcyBiL2JvYXJkL3hpbGlueC9wcGM0NDAtZ2VuZXJpYy91LWJvb3QtcmFtLmxkcwppbmRleCAyYzk4ZDI3Li41ODg2NTU2IDEwMDY0NAotLS0gYS9ib2FyZC94aWxpbngvcHBjNDQwLWdlbmVyaWMvdS1ib290LXJhbS5sZHMKKysrIGIvYm9hcmQveGlsaW54L3BwYzQ0MC1nZW5lcmljL3UtYm9vdC1yYW0ubGRzCkBAIC0xMjcsNyArMTI3LDcgQEAKICAgICooQ09NTU9OKQogICB9CiAKLSAgcHBjZW52X2Fzc2VydCA9IEFTU0VSVCguIDwgMHhGRkZGQjAwMCwgIi5ic3Mgc2VjdGlvbiB0b28gYmlnLCBvdmVybGFwcyAucHBjZW52IHNlY3Rpb24uIFBsZWFzZSB1cGRhdGUgeW91ciBjb25mZ3VyYXRpb246IENGR19NT05JVE9SX0JBU0UsIENGR19NT05JVE9SX0xFTiBhbmQgVEVYVF9CQVNFIG1heSBuZWVkIHRvIGJlIG1vZGlmaWVkLiIpOworICBwcGNlbnZfYXNzZXJ0ID0gQVNTRVJUKC4gPCAweEZGRkZCMDAwLCAiLmJzcyBzZWN0aW9uIHRvbyBiaWcsIG92ZXJsYXBzIC5wcGNlbnYgc2VjdGlvbi4gUGxlYXNlIHVwZGF0ZSB5b3VyIGNvbmZndXJhdGlvbjogQ09ORklHX1NZU19NT05JVE9SX0JBU0UsIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gYW5kIFRFWFRfQkFTRSBtYXkgbmVlZCB0byBiZSBtb2RpZmllZC4iKTsKIAogICBfZW5kID0gLiA7CiAgIFBST1ZJREUgKGVuZCA9IC4pOwpkaWZmIC0tZ2l0IGEvYm9hcmQveGlsaW54L3BwYzQ0MC1nZW5lcmljL3UtYm9vdC1yb20ubGRzIGIvYm9hcmQveGlsaW54L3BwYzQ0MC1nZW5lcmljL3UtYm9vdC1yb20ubGRzCmluZGV4IGQ1ZGEwMTguLmRlYmM5MTYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3hpbGlueC9wcGM0NDAtZ2VuZXJpYy91LWJvb3Qtcm9tLmxkcworKysgYi9ib2FyZC94aWxpbngvcHBjNDQwLWdlbmVyaWMvdS1ib290LXJvbS5sZHMKQEAgLTEzNyw3ICsxMzcsNyBAQAogICAgKihDT01NT04pCiAgIH0KIAotICBwcGNlbnZfYXNzZXJ0ID0gQVNTRVJUKC4gPCAweEZGRkZCMDAwLCAiLmJzcyBzZWN0aW9uIHRvbyBiaWcsIG92ZXJsYXBzIC5wcGNlbnYgc2VjdGlvbi4gUGxlYXNlIHVwZGF0ZSB5b3VyIGNvbmZndXJhdGlvbjogQ0ZHX01PTklUT1JfQkFTRSwgQ0ZHX01PTklUT1JfTEVOIGFuZCBURVhUX0JBU0UgbWF5IG5lZWQgdG8gYmUgbW9kaWZpZWQuIik7CisgIHBwY2Vudl9hc3NlcnQgPSBBU1NFUlQoLiA8IDB4RkZGRkIwMDAsICIuYnNzIHNlY3Rpb24gdG9vIGJpZywgb3ZlcmxhcHMgLnBwY2VudiBzZWN0aW9uLiBQbGVhc2UgdXBkYXRlIHlvdXIgY29uZmd1cmF0aW9uOiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgQ09ORklHX1NZU19NT05JVE9SX0xFTiBhbmQgVEVYVF9CQVNFIG1heSBuZWVkIHRvIGJlIG1vZGlmaWVkLiIpOwogCiAgIF9lbmQgPSAuIDsKICAgUFJPVklERSAoZW5kID0gLik7CmRpZmYgLS1naXQgYS9ib2FyZC94aWxpbngvcHBjNDQwLWdlbmVyaWMveGlsaW54X3BwYzQ0MF9nZW5lcmljLmMgYi9ib2FyZC94aWxpbngvcHBjNDQwLWdlbmVyaWMveGlsaW54X3BwYzQ0MF9nZW5lcmljLmMKaW5kZXggMDg2NzIyNi4uMGMzZDY2NyAxMDA2NDQKLS0tIGEvYm9hcmQveGlsaW54L3BwYzQ0MC1nZW5lcmljL3hpbGlueF9wcGM0NDBfZ2VuZXJpYy5jCisrKyBiL2JvYXJkL3hpbGlueC9wcGM0NDAtZ2VuZXJpYy94aWxpbnhfcHBjNDQwX2dlbmVyaWMuYwpAQCAtMzcsNyArMzcsNyBAQAogcGh5c19zaXplX3QgX19pbml0ZHJhbShpbnQgYm9hcmRfdHlwZSkKIHsKIAlyZXR1cm4gZ2V0X3JhbV9zaXplKFhQQVJfRERSMl9TRFJBTV9NRU1fQkFTRUFERFIsCi0JCQkgICAgQ0ZHX1NEUkFNX1NJWkVfTUIgKiAxMDI0ICogMTAyNCk7CisJCQkgICAgQ09ORklHX1NZU19TRFJBTV9TSVpFX01CICogMTAyNCAqIDEwMjQpOwogfQogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50KSBfX2F0dHJpYnV0ZV9fKCh3ZWFrLCBhbGlhcygiX19pbml0ZHJhbSIpKSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL3hpbGlueC94aWxpbnhfaWljL2lpY19hZGFwdGVyLmMgYi9ib2FyZC94aWxpbngveGlsaW54X2lpYy9paWNfYWRhcHRlci5jCmluZGV4IGFkMTlhZGUuLjU4YWFlYjcgMTAwNjQ0Ci0tLSBhL2JvYXJkL3hpbGlueC94aWxpbnhfaWljL2lpY19hZGFwdGVyLmMKKysrIGIvYm9hcmQveGlsaW54L3hpbGlueF9paWMvaWljX2FkYXB0ZXIuYwpAQCAtNzIsNyArNzIsNyBAQAogCQltZW1jcHkoJnNlbmRCdWZbMl0sICZkYXRhW3Bvc10sIHdsZW4pOwogCiAJCS8qIFNlbmQgdG8gRUVQUk9NIHRocm91Z2ggaWljIGJ1cyAqLwotCQlyZXQgPSBYSWljX1NlbmQoWFBBUl9JSUNfMF9CQVNFQUREUiwgQ0ZHX0kyQ19FRVBST01fQUREUiA+PiAxLAorCQlyZXQgPSBYSWljX1NlbmQoWFBBUl9JSUNfMF9CQVNFQUREUiwgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgPj4gMSwKIAkJCQlzZW5kQnVmLCB3bGVuICsgMik7CiAKIAkJdWRlbGF5KElJQ19ERUxBWSk7CkBAIC05MywxMSArOTMsMTEgQEAKIAogCS8qIFByb3ZpZGUgRUVQUk9NIGFkZHJlc3MgKi8KIAlyZXQgPQotCSAgICBYSWljX1NlbmQoWFBBUl9JSUNfMF9CQVNFQUREUiwgQ0ZHX0kyQ19FRVBST01fQUREUiA+PiAxLCBhZGRyZXNzLAorCSAgICBYSWljX1NlbmQoWFBBUl9JSUNfMF9CQVNFQUREUiwgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgPj4gMSwgYWRkcmVzcywKIAkJICAgICAgMik7CiAJLyogUmVjZWl2ZSBkYXRhIGZyb20gRUVQUk9NICovCiAJcmV0ID0KLQkgICAgWElpY19SZWN2KFhQQVJfSUlDXzBfQkFTRUFERFIsIENGR19JMkNfRUVQUk9NX0FERFIgPj4gMSwgZGF0YSwgbGVuKTsKKwkgICAgWElpY19SZWN2KFhQQVJfSUlDXzBfQkFTRUFERFIsIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSID4+IDEsIGRhdGEsIGxlbik7CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBhL2JvYXJkL3hpbGlueC94dXB2MnAveHVwdjJwLmMgYi9ib2FyZC94aWxpbngveHVwdjJwL3h1cHYycC5jCmluZGV4IGI0ODEwM2YuLmIxYTc2YzAgMTAwNjQ0Ci0tLSBhL2JvYXJkL3hpbGlueC94dXB2MnAveHVwdjJwLmMKKysrIGIvYm9hcmQveGlsaW54L3h1cHYycC94dXB2MnAuYwpAQCAtMzAsMTEgKzMwLDExIEBACiAKIHZvaWQgZG9fcmVzZXQgKHZvaWQpCiB7Ci0jaWZkZWYgQ0ZHX0dQSU9fMAotCSooKHVuc2lnbmVkIGxvbmcgKikoQ0ZHX0dQSU9fMF9BRERSKSkgPQotCSAgICArKygqKCh1bnNpZ25lZCBsb25nICopKENGR19HUElPXzBfQUREUikpKTsKKyNpZmRlZiBDT05GSUdfU1lTX0dQSU9fMAorCSooKHVuc2lnbmVkIGxvbmcgKikoQ09ORklHX1NZU19HUElPXzBfQUREUikpID0KKwkgICAgKysoKigodW5zaWduZWQgbG9uZyAqKShDT05GSUdfU1lTX0dQSU9fMF9BRERSKSkpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX1JFU0VUX0FERFJFU1MKKyNpZmRlZiBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MKIAlwdXRzICgiUmVzZXRpbmcgYm9hcmRcbiIpOwogCWFzbSAoImJyYSByMCIpOwogI2VuZGlmCkBAIC00Miw4ICs0Miw4IEBACiAKIGludCBncGlvX2luaXQgKHZvaWQpCiB7Ci0jaWZkZWYgQ0ZHX0dQSU9fMAotCSooKHVuc2lnbmVkIGxvbmcgKikoQ0ZHX0dQSU9fMF9BRERSKSkgPSAweDA7CisjaWZkZWYgQ09ORklHX1NZU19HUElPXzAKKwkqKCh1bnNpZ25lZCBsb25nICopKENPTkZJR19TWVNfR1BJT18wX0FERFIpKSA9IDB4MDsKICNlbmRpZgogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQveG0yNTAvZmxhc2guYyBiL2JvYXJkL3htMjUwL2ZsYXNoLmMKaW5kZXggODkzMzUxZS4uYjAyMTQ5YyAxMDA2NDQKLS0tIGEvYm9hcmQveG0yNTAvZmxhc2guYworKysgYi9ib2FyZC94bTI1MC9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyogQm9hcmQgc3VwcG9ydCBmb3IgMSBvciAyIGZsYXNoIGRldmljZXMgKi8KICNkZWZpbmUgRkxBU0hfUE9SVF9XSURUSDMyCkBAIC04NCw3ICs4NCw3IEBACiAJaW50IGk7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDoKIAkJCWZsYXNoX2dldF9zaXplICgoRlBXICopIFBIWVNfRkxBU0hfMSwgJmZsYXNoX2luZm9baV0pOwpAQCAtMTA0LDggKzEwNCw4IEBACiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCi0JCQlDRkdfRkxBU0hfQkFTRSwKLQkJCUNGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJJmZsYXNoX2luZm9bMF0gKTsKIAogCWZsYXNoX3Byb3RlY3QgKCBGTEFHX1BST1RFQ1RfU0VULApAQCAtMjMyLDEwICsyMzIsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlhZGRyWzBdID0gKEZQVykgMHgwMEZGMDBGRjsJCS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0zMDUsNyArMzA1LDcgQEAKIAkJCSphZGRyID0gKEZQVykgMHgwMEQwMDBEMDsJLyogZXJhc2UgY29uZmlybSAqLwogCiAJCQl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CS8qIHN1c3BlbmQgZXJhc2UgICAgICovCiAJCQkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC00MzksNyArNDM5LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CkBAIC00ODQsNyArNDg0LDcgQEAKIAlyZXNldF90aW1lcl9tYXNrZWQgKCk7CiAKIAl3aGlsZSAoKCphZGRyICYgSU5URUxfRklOSVNIRUQpICE9IElOVEVMX0ZJTklTSEVEKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVCkgewogCQkJcHJpbnRmKCJGbGFzaCBsb2NrIGJpdCBvcGVyYXRpb24gdGltZWQgb3V0XG4iKTsKIAkJCXJjID0gMTsKIAkJCWJyZWFrOwpAQCAtNTE2LDcgKzUxNiw3IEBACiAJCQkJKmFkZHIgPSBJTlRFTF9QUk9URUNUOwkvKiBzZXQgKi8KIAkJCQl3aGlsZSAoKCphZGRyICYgSU5URUxfRklOSVNIRUQpICE9IElOVEVMX0ZJTklTSEVEKQogCQkJCXsKLQkJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfVU5MT0NLX1RPVVQpCisJCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVCkKIAkJCQkJewogCQkJCQkJcHJpbnRmKCJGbGFzaCBsb2NrIGJpdCBvcGVyYXRpb24gdGltZWQgb3V0XG4iKTsKIAkJCQkJCXJjID0gMTsKZGlmZiAtLWdpdCBhL2JvYXJkL3htMjUwL2xvd2xldmVsX2luaXQuUyBiL2JvYXJkL3htMjUwL2xvd2xldmVsX2luaXQuUwppbmRleCAyZWJkMzk1Li44MjMwNTUwIDEwMDY0NAotLS0gYS9ib2FyZC94bTI1MC9sb3dsZXZlbF9pbml0LlMKKysrIGIvYm9hcmQveG0yNTAvbG93bGV2ZWxfaW5pdC5TCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8dmVyc2lvbi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAKLURSQU1fU0laRTogIC5sb25nICAgQ0ZHX0RSQU1fU0laRQorRFJBTV9TSVpFOiAgLmxvbmcgICBDT05GSUdfU1lTX0RSQU1fU0laRQogCiAvKiB3YWl0IGZvciBjb3Byb2Nlc3NvciB3cml0ZSBjb21wbGV0ZSAqLwogCS5tYWNybyBDUFdBSVQgcmVnCkBAIC01MSw5OCArNTEsOTggQEAKIAkvKiBTZXQgdXAgR1BJTyBwaW5zIGZpcnN0ICovCiAKIAlsZHIJcjAsICAgPUdQU1IwCi0JbGRyCXIxLCAgID1DRkdfR1BTUjBfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQU1IwX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQU1IxCi0JbGRyCXIxLCAgID1DRkdfR1BTUjFfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQU1IxX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQU1IyCi0JbGRyCXIxLCAgID1DRkdfR1BTUjJfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQU1IyX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQQ1IwCi0JbGRyCXIxLCAgID1DRkdfR1BDUjBfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQQ1IwX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQQ1IxCi0JbGRyCXIxLCAgID1DRkdfR1BDUjFfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQQ1IxX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQQ1IyCi0JbGRyCXIxLCAgID1DRkdfR1BDUjJfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQQ1IyX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdSRVIwCi0JbGRyCXIxLCAgID1DRkdfR1JFUjBfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dSRVIwX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdSRVIxCi0JbGRyCXIxLCAgID1DRkdfR1JFUjFfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dSRVIxX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdSRVIyCi0JbGRyCXIxLCAgID1DRkdfR1JFUjJfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dSRVIyX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdGRVIwCi0JbGRyCXIxLCAgID1DRkdfR0ZFUjBfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dGRVIwX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdGRVIxCi0JbGRyCXIxLCAgID1DRkdfR0ZFUjFfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dGRVIxX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdGRVIyCi0JbGRyCXIxLCAgID1DRkdfR0ZFUjJfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dGRVIyX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQRFIwCi0JbGRyCXIxLCAgID1DRkdfR1BEUjBfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQRFIwX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQRFIxCi0JbGRyCXIxLCAgID1DRkdfR1BEUjFfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQRFIxX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQRFIyCi0JbGRyCXIxLCAgID1DRkdfR1BEUjJfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQRFIyX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIwX0wKLQlsZHIJcjEsICAgPUNGR19HQUZSMF9MX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMF9MX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIwX1UKLQlsZHIJcjEsICAgPUNGR19HQUZSMF9VX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMF9VX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIxX0wKLQlsZHIJcjEsICAgPUNGR19HQUZSMV9MX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMV9MX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIxX1UKLQlsZHIJcjEsICAgPUNGR19HQUZSMV9VX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMV9VX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIyX0wKLQlsZHIJcjEsICAgPUNGR19HQUZSMl9MX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMl9MX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIyX1UKLQlsZHIJcjEsICAgPUNGR19HQUZSMl9VX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMl9VX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAkvKiBlbmFibGUgR1BJTyBwaW5zICovCiAJbGRyCXIwLCAgID1QU1NSCi0JbGRyCXIxLCAgID1DRkdfUFNTUl9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfUFNTUl9WQUwKIAlzdHIJcjEsICAgW3IwXQogCiAJLyogU0VUX0xFRCAxICovCiAKIAlsZHIJcjMsID1NU0MxCQkvKiBsb3cgLSBiYW5rIDIgTHViYm9jayBSZWdpc3RlcnMgLyBTUkFNICovCi0JbGRyCXIyLCA9Q0ZHX01TQzFfVkFMCS8qIGhpZ2ggLSBiYW5rIDMgRXRoZXJuZXQgQ29udHJvbGxlciAqLworCWxkcglyMiwgPUNPTkZJR19TWVNfTVNDMV9WQUwJLyogaGlnaCAtIGJhbmsgMyBFdGhlcm5ldCBDb250cm9sbGVyICovCiAJc3RyCXIyLCBbcjNdCQkvKiBuZWVkIHRvIHNldCBNU0MxIGJlZm9yZSB0cnlpbmcgdG8gd3JpdGUgdG8gdGhlIEhFWCBMRURzICovCiAJbGRyCXIyLCBbcjNdCQkvKiBuZWVkIHRvIHJlYWQgaXQgYmFjayB0byBtYWtlIHN1cmUgdGhlIHZhbHVlIGxhdGNoZXMgKHNlZSBNU0Mgc2VjdGlvbiBvZiBtYW51YWwpICovCiAKQEAgLTE4MSw0NyArMTgxLDQ3IEBACiAJQCBTdGVwIDJhCiAJQCB3cml0ZSBtc2MwLCByZWFkIGJhY2sgdG8gZW5zdXJlIGRhdGEgbGF0Y2hlcwogCUAKLQlsZHIJcjIsICAgPUNGR19NU0MwX1ZBTAorCWxkcglyMiwgICA9Q09ORklHX1NZU19NU0MwX1ZBTAogCXN0cglyMiwgICBbcjEsICNNU0MwX09GRlNFVF0KIAlsZHIJcjIsICAgW3IxLCAjTVNDMF9PRkZTRVRdCiAKIAlAIHdyaXRlIG1zYzEKLQlsZHIJcjIsICA9Q0ZHX01TQzFfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTVNDMV9WQUwKIAlzdHIJcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAlsZHIJcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAogCUAgd3JpdGUgbXNjMgotCWxkcglyMiwgID1DRkdfTVNDMl9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NU0MyX1ZBTAogCXN0cglyMiwgIFtyMSwgI01TQzJfT0ZGU0VUXQogCWxkcglyMiwgIFtyMSwgI01TQzJfT0ZGU0VUXQogCiAJQCBTdGVwIDJiCiAJQCB3cml0ZSBtZWNyCi0JbGRyCXIyLCAgPUNGR19NRUNSX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01FQ1JfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTUVDUl9PRkZTRVRdCiAKIAlAIHdyaXRlIG1jbWVtMAotCWxkcglyMiwgID1DRkdfTUNNRU0wX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01DTUVNMF9WQUwKIAlzdHIJcjIsICBbcjEsICNNQ01FTTBfT0ZGU0VUXQogCiAJQCB3cml0ZSBtY21lbTEKLQlsZHIJcjIsICA9Q0ZHX01DTUVNMV9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NQ01FTTFfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTUNNRU0xX09GRlNFVF0KIAogCUAgd3JpdGUgbWNhdHQwCi0JbGRyCXIyLCAgPUNGR19NQ0FUVDBfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTUNBVFQwX1ZBTAogCXN0cglyMiwgIFtyMSwgI01DQVRUMF9PRkZTRVRdCiAKIAlAIHdyaXRlIG1jYXR0MQotCWxkcglyMiwgID1DRkdfTUNBVFQxX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01DQVRUMV9WQUwKIAlzdHIJcjIsICBbcjEsICNNQ0FUVDFfT0ZGU0VUXQogCiAJQCB3cml0ZSBtY2lvMAotCWxkcglyMiwgID1DRkdfTUNJTzBfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTUNJTzBfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTUNJTzBfT0ZGU0VUXQogCiAJQCB3cml0ZSBtY2lvMQotCWxkcglyMiwgID1DRkdfTUNJTzFfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTUNJTzFfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTUNJTzFfT0ZGU0VUXQogCiAJLypTRVRfTEVEIDMgKi8KQEAgLTIyOSwxNCArMjI5LDE0IEBACiAJQCBTdGVwIDJjCiAJQCBmbHktYnktZG1hIGlzIGRlZmVhdHVyZWQgb24gdGhpcyBwYXJ0CiAJQCB3cml0ZSBmbHljbmZnCi0JQGxkcglyMiwgID1DRkdfRkxZQ05GR19WQUwKKwlAbGRyCXIyLCAgPUNPTkZJR19TWVNfRkxZQ05GR19WQUwKIAlAc3RyCXIyLCAgW3IxLCAjRkxZQ05GR19PRkZTRVRdCiAKIC8qIEZJWE1FIERvZXMgdGhpcyBzZXF1ZW5jZSByZWFsbHkgbWFrZSBzZW5zZSAqLwogI2lmZGVmIFJFREJPT1RfV0FZCiAJQCBTdGVwIDJkCiAJQCBnZXQgdGhlIG1kcmVmciBzZXR0aW5ncwotCWxkcglyMywgID1DRkdfTURSRUZSX1ZBTAorCWxkcglyMywgID1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAogCUAgZXh0cmFjdCBEUkkgZmllbGQgKHdlIG5lZWQgYSB2YWxpZCBEUkkgZmllbGQpCiAJQApAQCAtMzE5LDcgKzMxOSw3IEBACiAjZWxzZQogCUAgU3RlcCAyZAogCUAgZ2V0IHRoZSBtZHJlZnIgc2V0dGluZ3MKLQlsZHIJcjQsICA9Q0ZHX01EUkVGUl9WQUwKKwlsZHIJcjQsICA9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAKIAlAIHdyaXRlIGJhY2sgbWRyZWZyCiAJQApAQCAtMzY3LDcgKzM2Nyw3IEBACiAJQCBTdGVwIDRkCiAJQCBmZXRjaCBwbGF0Zm9ybSB2YWx1ZSBvZiBtZGNuZmcKIAlACi0JbGRyCXIyLCAgPUNGR19NRENORkdfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTURDTkZHX1ZBTAogCiAJQCBkaXNhYmxlIGFsbCBzZHJhbSBiYW5rcwogCUAKQEAgLTQwNCw3ICs0MDQsNyBAQAogCUAgQWNjZXNzIG1lbW9yeSAqbm90IHlldCBlbmFibGVkKiBmb3IgQ0JSIHJlZnJlc2ggY3ljbGVzICg4KQogCUAgLSBDQlIgaXMgZ2VuZXJhdGVkIGZvciBhbGwgYmFua3MKIAotCWxkcglyMiwgPUNGR19EUkFNX0JBU0UKKwlsZHIJcjIsID1DT05GSUdfU1lTX0RSQU1fQkFTRQogCXN0cglyMiwgW3IyXQogCXN0cglyMiwgW3IyXQogCXN0cglyMiwgW3IyXQpAQCAtNDM0LDcgKzQzNCw3IEBACiAJQCBTdGVwIDRoCiAJQCB3cml0ZSBtZG1ycwogCUAKLQlsZHIJcjIsICA9Q0ZHX01ETVJTX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01ETVJTX1ZBTAogCXN0cglyMiwgIFtyMSwgI01ETVJTX09GRlNFVF0KIAogCUAgRG9uZSBNZW1vcnkgSW5pdApAQCAtNDUzLDcgKzQ1Myw3IEBACiAKIAlAIFNldCBpbnRlcnJ1cHQgbWFzayByZWdpc3RlcgogCUAKLQlsZHIJcjEsICA9Q0ZHX0lDTVJfVkFMCisJbGRyCXIxLCAgPUNPTkZJR19TWVNfSUNNUl9WQUwKIAlsZHIJcjIsICA9SUNNUgogCXN0cglyMSwgIFtyMl0KIApAQCAtNDY5LDcgKzQ2OSw3IEBACiAKIAlAIHNldCBjb3JlIGNsb2NrcwogCUAKLQlsZHIJcjIsICA9Q0ZHX0NDQ1JfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfQ0NDUl9WQUwKIAlsZHIJcjEsICA9Q0NDUgogCXN0cglyMiwgIFtyMV0KIApAQCAtNDkyLDcgKzQ5Miw3IEBACiAJQCBUdXJuIG9uIG5lZWRlZCBjbG9ja3MKIAlACiAJbGRyCXIxLCAgPUNLRU4KLQlsZHIJcjIsICA9Q0ZHX0NLRU5fVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfQ0tFTl9WQUwKIAlzdHIJcjIsICBbcjFdCiAKIAkvKlNFVF9MRUQgNyAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQveHBlZGl0ZTFrL2NvbmZpZy5tayBiL2JvYXJkL3hwZWRpdGUxay9jb25maWcubWsKaW5kZXggZTQyYjI3My4uMzNkZmJmMSAxMDA2NDQKLS0tIGEvYm9hcmQveHBlZGl0ZTFrL2NvbmZpZy5taworKysgYi9ib2FyZC94cGVkaXRlMWsvY29uZmlnLm1rCkBAIC0zOCw1ICszOCw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQveHBlZGl0ZTFrL2ZsYXNoLmMgYi9ib2FyZC94cGVkaXRlMWsvZmxhc2guYwppbmRleCBjZTVkNGUxLi4wNzExOTMxIDEwMDY0NAotLS0gYS9ib2FyZC94cGVkaXRlMWsvZmxhc2guYworKysgYi9ib2FyZC94cGVkaXRlMWsvZmxhc2guYwpAQCAtNTcsOSArNTcsOSBAQAogI2RlZmluZSBGTEFTSF9TUkFNX1NFTF9WQUwJMQogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBmbGFzaF9hZGRyX3RhYmxlWzhdW0NGR19NQVhfRkxBU0hfQkFOS1NdID0geworc3RhdGljIHVuc2lnbmVkIGxvbmcgZmxhc2hfYWRkcl90YWJsZVs4XVtDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU10gPSB7CiAJezB4ZmZmODAwMDB9LAkvKiAwOjAwMDogY29uZmlndXJhdG9uIDMgKi8KIAl7MHhmZmY5MDAwMH0sCS8qIDE6MDAxOiBjb25maWd1cmF0b24gNCAqLwogCXsweGZmZmEwMDAwfSwJLyogMjowMTA6IGNvbmZpZ3VyYXRvbiA3ICovCkBAIC04OSw3ICs4OSw3IEBACiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyB0b3RhbF9iID0gMDsKLQl1bnNpZ25lZCBsb25nIHNpemVfYltDRkdfTUFYX0ZMQVNIX0JBTktTXTsKKwl1bnNpZ25lZCBsb25nIHNpemVfYltDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAJdW5zaWduZWQgc2hvcnQgaW5kZXggPSAwOwogCWludCBpOwogCkBAIC05OCw3ICs5OCw3IEBACiAJREVCVUdGKCJGTEFTSDogSW5kZXg6ICVkXG4iLCBpbmRleCk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSAtMTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gMDsKQEAgLTM2Niw3ICszNjYsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAlsYXN0ICA9IHN0YXJ0OwogCXdoaWxlICgoYWRkclswXSAmIChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0gKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAtMTsKIAkJfQpAQCAtNTk0LDcgKzU5NCw3IEBACiAJCXdoaWxlICgoZGVzdDJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQogCQkgICAgICAgKGRhdGEyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKIAotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3hwZWRpdGUxay9pbml0LlMgYi9ib2FyZC94cGVkaXRlMWsvaW5pdC5TCmluZGV4IDZjYjIwZTQuLjhhMDRmNGYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3hwZWRpdGUxay9pbml0LlMKKysrIGIvYm9hcmQveHBlZGl0ZTFrL2luaXQuUwpAQCAtODcsMTAgKzg3LDEwIEBACiB0bGJ0YWI6CiAJdGxidGFiX3N0YXJ0CiAJdGxiZW50cnkoIDB4ZjAwMDAwMDAsIFNaXzI1Nk0sIDB4ZjAwMDAwMDAsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKLQl0bGJlbnRyeSggQ0ZHX1BFUklQSEVSQUxfQkFTRSwgU1pfMjU2TSwgMHg0MDAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeSggQ0ZHX0lTUkFNX0JBU0UsIFNaXzI1NkssIDB4ODAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKLQl0bGJlbnRyeSggQ0ZHX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19TRFJBTV9CQVNFKzB4MTAwMDAwMDAsIFNaXzI1Nk0sIDB4MTAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMiwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFLCBTWl8yNTZNLCAweDQwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0lTUkFNX0JBU0UsIFNaXzI1NkssIDB4ODAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19TRFJBTV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1NEUkFNX0JBU0UrMHgxMDAwMDAwMCwgU1pfMjU2TSwgMHgxMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMiwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDMsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCXRsYnRhYl9lbmQKZGlmZiAtLWdpdCBhL2JvYXJkL3hwZWRpdGUxay94cGVkaXRlMWsuYyBiL2JvYXJkL3hwZWRpdGUxay94cGVkaXRlMWsuYwppbmRleCBjOTRhMzQ1Li41OGJjZmFmIDEwMDY0NAotLS0gYS9ib2FyZC94cGVkaXRlMWsveHBlZGl0ZTFrLmMKKysrIGIvYm9hcmQveHBlZGl0ZTFrL3hwZWRpdGUxay5jCkBAIC00MCw3ICs0MCw3IEBACiAJLyogVEJTOgkgU2V0dXAgdGhlIEdQSU8gYWNjZXNzIGZvciB0aGUgdXNlciBMRURzICovCiAJbWZzZHIoc2RyX3BmYzAsIHNkcnJlZyk7CiAJbXRzZHIoc2RyX3BmYzAsIChzZHJyZWcgJiB+MHgwMDAwMDEwMCkgfCAweDAwMDAwRTAwKTsKLQlvdXQzMihDRkdfR1BJT19CQVNFICsgMHgwMTgsIChVU1JfTEVEMCB8IFVTUl9MRUQxIHwgVVNSX0xFRDIgfCBVU1JfTEVEMykpOworCW91dDMyKENPTkZJR19TWVNfR1BJT19CQVNFICsgMHgwMTgsIChVU1JfTEVEMCB8IFVTUl9MRUQxIHwgVVNSX0xFRDIgfCBVU1JfTEVEMykpOwogCUxFRDBfT0ZGKCk7CiAJTEVEMV9PRkYoKTsKIAlMRUQyX09GRigpOwpAQCAtMTI5LDcgKzEyOSw3IEBACiB9CiAKIAotI2lmIGRlZmluZWQoQ0ZHX0RSQU1fVEVTVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRFJBTV9URVNUKQogaW50IHRlc3RkcmFtICh2b2lkKQogewogCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIDB4MDAwMDAwMDA7CkBAIC0yMzEsNyArMjMxLDcgQEAKIAkJcmV0dXJuICgwKTsKIAl9CiAKLSNpZiBkZWZpbmVkKENGR19QQ0lfRk9SQ0VfUENJX0NPTlYpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9GT1JDRV9QQ0lfQ09OVikKIAkvKiBTZXR1cCBTeXN0ZW0gRGV2aWNlIFJlZ2lzdGVyIFBDSVgwX1hDUiAqLwogCW1mc2RyKHNkcl94Y3IsIHN0cmFwKTsKIAlzdHJhcCAmPSAweDBmMDAwMDAwOwpAQCAtMjQ5LDcgKzI0OSw3IEBACiAgKgltYXkgbm90IGJlIHN1ZmZpY2llbnQgZm9yIGEgZ2l2ZW4gYm9hcmQuCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpCiB2b2lkIHBjaV90YXJnZXRfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKiBob3NlICkKIHsKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwpAQCAtMjY0LDcgKzI2NCw3IEBACiAJICogTWFwIGFsbCBvZiBTRFJBTSB0byBQQ0kgYWRkcmVzcyAweDAwMDBfMDAwMC4gTm90ZSB0aGF0IHRoZSA0NDAgc3RyYXBwaW5nCiAJICogb3B0aW9ucyB0byBub3Qgc3VwcG9ydCBzaXplcyBzdWNoIGFzIDEyOC8yNTYgTUIuCiAJICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0Jb3V0MzJyKCBQQ0lYMF9QSU0wTEFMLCBDRkdfU0RSQU1fQkFTRSApOworCW91dDMyciggUENJWDBfUElNMExBTCwgQ09ORklHX1NZU19TRFJBTV9CQVNFICk7CiAJb3V0MzJyKCBQQ0lYMF9QSU0wTEFILCAwICk7CiAJb3V0MzJyKCBQQ0lYMF9QSU0wU0EsIH4oZ2QtPnJhbV9zaXplIC0gMSkgfCAxICk7CiAKQEAgLTI3MywxMiArMjczLDEyIEBACiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAkgKiBQcm9ncmFtIHRoZSBib2FyZCdzIHN1YnN5c3RlbSBpZC92ZW5kb3IgaWQKIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlvdXQxNnIoIFBDSVgwX1NCU1lTVklELCBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCApOwotCW91dDE2ciggUENJWDBfU0JTWVNJRCwgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgKTsKKwlvdXQxNnIoIFBDSVgwX1NCU1lTVklELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgKTsKKwlvdXQxNnIoIFBDSVgwX1NCU1lTSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCApOwogCiAJb3V0MTZyKCBQQ0lYMF9DTUQsIGluMTZyKFBDSVgwX0NNRCkgfCBQQ0lfQ09NTUFORF9NRU1PUlkgKTsKIH0KLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkgKi8KKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpICovCiAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTI5OSw3ICsyOTksNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKIGludCBpc19wY2lfaG9zdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpCiB7Ci0JcmV0dXJuICgoaW4zMihDRkdfR1BJT19CQVNFICsgMHgxQykgJiAweDAwMDAwODAwKSA9PSAwKTsKKwlyZXR1cm4gKChpbjMyKENPTkZJR19TWVNfR1BJT19CQVNFICsgMHgxQykgJiAweDAwMDAwODAwKSA9PSAwKTsKIH0KICNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19QQ0kpICovCiAKQEAgLTMxNyw3ICszMTcsNyBAQAogdm9pZCBwb3N0X3dvcmRfc3RvcmUgKHVsb25nIGEpCiB7CiAJdm9sYXRpbGUgdWxvbmcgKnNhdmVfYWRkciA9Ci0JCSh2b2xhdGlsZSB1bG9uZyAqKShDRkdfUE9TVF9XT1JEX0FERFIpOworCQkodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUik7CiAKIAkqc2F2ZV9hZGRyID0gYTsKIH0KQEAgLTMyNSw3ICszMjUsNyBAQAogdWxvbmcgcG9zdF93b3JkX2xvYWQgKHZvaWQpCiB7CiAJdm9sYXRpbGUgdWxvbmcgKnNhdmVfYWRkciA9Ci0JCSh2b2xhdGlsZSB1bG9uZyAqKShDRkdfUE9TVF9XT1JEX0FERFIpOworCQkodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUik7CiAKIAlyZXR1cm4gKnNhdmVfYWRkcjsKIH0KQEAgLTM0Miw3ICszNDIsNyBAQAogCXVuc2lnbmVkIGNoYXIgYnVmZlsweDEwMF0sICpjcDsKIAogCS8qIEluaXRpYWxpemUgSTJDCQkJCQkqLwotCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAogCS8qIFJlYWQgMjU2IGJ5dGVzIGluIEVFUFJPTQkJCQkqLwogCWkyY19yZWFkICgweDUwLCAwLCAxLCBidWZmLCAweDEwMCk7CmRpZmYgLS1naXQgYS9ib2FyZC94c2VuZ2luZS9mbGFzaC5jIGIvYm9hcmQveHNlbmdpbmUvZmxhc2guYwppbmRleCBmMjlkZWYyLi43MzY5MDVhIDEwMDY0NAotLS0gYS9ib2FyZC94c2VuZ2luZS9mbGFzaC5jCisrKyBiL2JvYXJkL3hzZW5naW5lL2ZsYXNoLmMKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2RlZmluZSBTV0FQKHgpICAgICAgICAgICAgICAgX19zd2FiMzIoeCkKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKIC8qIEZ1bmN0aW9ucyAqLwogc3RhdGljIHVsb25nIGZsYXNoX2dldF9zaXplICh2dV9sb25nICphZGRyLCBmbGFzaF9pbmZvX3QgKmluZm8pOwpAQCAtNDMsNyArNDMsNyBAQAogCWludCBpOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXN3aXRjaCAoaSkgewogCQljYXNlIDA6CiAJCQlmbGFzaF9nZXRfc2l6ZSAoKHZ1X2xvbmcgKikgUEhZU19GTEFTSF8xLCAmZmxhc2hfaW5mb1tpXSk7CkBAIC02MSw3ICs2MSw3IEBACiAJfQogCiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzICovCi0JZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsQ0ZHX0ZMQVNIX0JBU0UsQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsJmZsYXNoX2luZm9bMF0gKTsKKwlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCxDT05GSUdfU1lTX0ZMQVNIX0JBU0UsQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCZmbGFzaF9pbmZvWzBdICk7CiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsQ09ORklHX0VOVl9BRERSLENPTkZJR19FTlZfQUREUiArIENPTkZJR19FTlZfU0laRSAtIDEsICZmbGFzaF9pbmZvWzBdICk7CiAKIAlyZXR1cm4gc2l6ZTsKQEAgLTMzOCw3ICszMzgsNyBAQAogCWxhc3QgID0gc3RhcnQ7CiAJYWRkciA9ICh2dV9sb25nKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJd2hpbGUgKChhZGRyWzBdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtNDYyLDcgKzQ2Miw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIDB4MDA4MDAwODApICE9IChkYXRhICYgMHgwMDgwMDA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3hzZW5naW5lL2xvd2xldmVsX2luaXQuUyBiL2JvYXJkL3hzZW5naW5lL2xvd2xldmVsX2luaXQuUwppbmRleCBiMGIxNTYxLi4wZDk0YWI2IDEwMDY0NAotLS0gYS9ib2FyZC94c2VuZ2luZS9sb3dsZXZlbF9pbml0LlMKKysrIGIvYm9hcmQveHNlbmdpbmUvbG93bGV2ZWxfaW5pdC5TCkBAIC0yLDcgKzIsNyBAQAogI2luY2x1ZGUgPHZlcnNpb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogCi1EUkFNX1NJWkU6ICAubG9uZyAgIENGR19EUkFNX1NJWkUKK0RSQU1fU0laRTogIC5sb25nICAgQ09ORklHX1NZU19EUkFNX1NJWkUKIAogLmdsb2JsIGxvd2xldmVsX2luaXQKIGxvd2xldmVsX2luaXQ6CkBAIC0xNCw5MyArMTQsOTMgQEAKIAogICAgLyogR2VuZXJhbCBwdXJwb3NlIHNldCByZWdpc3RlcnMgKi8KICAgIGxkciAgICAgIHIwLCAgID1HUFNSMAotICAgbGRyICAgICAgcjEsICAgPUNGR19HUFNSMF9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dQU1IwX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogICAgbGRyICAgICAgcjAsICAgPUdQU1IxCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dQU1IxX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1BTUjFfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAgICBsZHIgICAgICByMCwgICA9R1BTUjIKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1BTUjJfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUFNSMl9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgLyogR2VuZXJhbCBwdXJwb3NlIGNsZWFyIHJlZ2lzdGVycyAqLwogICAgbGRyICAgICAgcjAsICAgPUdQQ1IwCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dQQ1IwX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1BDUjBfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAgICBsZHIgICAgICByMCwgICA9R1BDUjEKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1BDUjFfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUENSMV9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KICAgIGxkciAgICAgIHIwLCAgID1HUENSMgotICAgbGRyICAgICAgcjEsICAgPUNGR19HUENSMl9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dQQ1IyX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICAvKiBHZW5lcmFsIHJpc2luZyBlZGdlIHJlZ2lzdGVycyAqLwogICAgbGRyICAgICAgcjAsICAgPUdSRVIwCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dSRVIwX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1JFUjBfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAgICBsZHIgICAgICByMCwgICA9R1JFUjEKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1JFUjFfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUkVSMV9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KICAgIGxkciAgICAgIHIwLCAgID1HUkVSMgotICAgbGRyICAgICAgcjEsICAgPUNGR19HUkVSMl9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dSRVIyX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICAvKiBHZW5lcmFsIGZhbGxpbmcgZWRnZSByZWdpc3RlcnMgKi8KICAgIGxkciAgICAgIHIwLCAgID1HRkVSMAotICAgbGRyICAgICAgcjEsICAgPUNGR19HRkVSMF9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dGRVIwX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogICAgbGRyICAgICAgcjAsICAgPUdGRVIxCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dGRVIxX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR0ZFUjFfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAgICBsZHIgICAgICByMCwgICA9R0ZFUjIKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR0ZFUjJfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HRkVSMl9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgLyogR2VuZXJhbCBlZGdlIGRldGVjdCByZWdpc3RlcnMgKi8KICAgIGxkciAgICAgIHIwLCAgID1HUERSMAotICAgbGRyICAgICAgcjEsICAgPUNGR19HUERSMF9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dQRFIwX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogICAgbGRyICAgICAgcjAsICAgPUdQRFIxCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dQRFIxX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1BEUjFfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAgICBsZHIgICAgICByMCwgICA9R1BEUjIKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1BEUjJfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUERSMl9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgLyogR2VuZXJhbCBhbHRlcm5hdGUgZnVuY3Rpb24gcmVnaXN0ZXJzICovCiAgICBsZHIgICAgICByMCwgICA9R0FGUjBfTAkJLyogWzA6MTVdICovCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dBRlIwX0xfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HQUZSMF9MX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogICAgbGRyICAgICAgcjAsICAgPUdBRlIwX1UJCS8qIFszMToxNl0gKi8KLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR0FGUjBfVV9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dBRlIwX1VfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAgICBsZHIgICAgICByMCwgICA9R0FGUjFfTAkJLyogWzQ3OjMyXSAqLwotICAgbGRyICAgICAgcjEsICAgPUNGR19HQUZSMV9MX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR0FGUjFfTF9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KICAgIGxkciAgICAgIHIwLCAgID1HQUZSMV9VCQkvKiBbNjM6NDhdICovCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dBRlIxX1VfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HQUZSMV9VX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogICAgbGRyICAgICAgcjAsICAgPUdBRlIyX0wJCS8qIFs3OTo2NF0gKi8KLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR0FGUjJfTF9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dBRlIyX0xfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAgICBsZHIgICAgICByMCwgICA9R0FGUjJfVQkJLyogWzgwXSAqLwotICAgbGRyICAgICAgcjEsICAgPUNGR19HQUZSMl9VX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR0FGUjJfVV9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgLyogR2VuZXJhbCBwdXJwb3NlIGRpcmVjdGlvbiByZWdpc3RlcnMgKi8KICAgIGxkciAgICAgIHIwLCAgID1HUERSMAotICAgbGRyICAgICAgcjEsICAgPUNGR19HUERSMF9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dQRFIwX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogICAgbGRyICAgICAgcjAsICAgPUdQRFIxCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dQRFIxX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1BEUjFfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAgICBsZHIgICAgICByMCwgICA9R1BEUjIKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1BEUjJfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUERSMl9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgLyogUG93ZXIgbWFuYWdlciBzbGVlcCBzdGF0dXMgKi8KICAgIGxkciAgICAgIHIwLCAgID1QU1NSCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX1BTU1JfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19QU1NSX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAvKiAtLS0tIE1FTU9SWSBJTklUSUFMSVNBVElPTiAtLS0tICovCkBAIC0xMjEsMTcgKzEyMSwxNyBAQAogCiAvKiAtLS0tIEZMQVNIIElOSVRJQUxJU0FUSU9OIC0tLS0gKi8KIC8qIFdyaXRlIE1TQzAgYW5kIHJlYWQgYmFjayB0byBlbnN1cmUgZGF0YSBjaGFuZ2UgaXMgYWNjZXB0ZWQgYnkgY3B1ICovCi0gICBsZHIgICAgIHIyLCAgID1DRkdfTVNDMF9WQUwKKyAgIGxkciAgICAgcjIsICAgPUNPTkZJR19TWVNfTVNDMF9WQUwKICAgIHN0ciAgICAgcjIsICAgW3IxLCAjTVNDMF9PRkZTRVRdCiAgICBsZHIgICAgIHIyLCAgIFtyMSwgI01TQzBfT0ZGU0VUXQogCiAvKiAtLS0tIFNEUkFNIElOSVRJQUxJU0FUSU9OIC0tLS0gKi8KIC8qIGdldCB0aGUgTURSRUZSIHNldHRpbmdzICovCi0gICBsZHIgICAgIHIyLCAgPUNGR19NRFJFRlJfVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTURSRUZSX1ZBTAogICAgc3RyICAgICByMiwgIFtyMSwgI01EUkVGUl9PRkZTRVRdCiAKIC8qIGZldGNoIHBsYXRmb3JtIHZhbHVlIG9mIE1EQ05GRyAqLwotICAgbGRyICAgICByMiwgID1DRkdfTURDTkZHX1ZBTAorICAgbGRyICAgICByMiwgID1DT05GSUdfU1lTX01EQ05GR19WQUwKIAogLyogZGlzYWJsZSBhbGwgc2RyYW0gYmFua3MgKi8KICAgIGJpYyAgICAgcjIsICByMiwgICMoTURDTkZHX0RFMCB8IE1EQ05GR19ERTEpCkBAIC0xNTMsNyArMTUzLDcgQEAKIC8qIEFjY2VzcyBtZW1vcnkgKm5vdCB5ZXQgZW5hYmxlZCogZm9yIENCUiByZWZyZXNoIGN5Y2xlcyAoOCkgKi8KIC8qIENCUiBpcyBnZW5lcmF0ZWQgZm9yIGFsbCBiYW5rcyAqLwogCi0gICBsZHIgICAgIHIyLCA9Q0ZHX0RSQU1fQkFTRQorICAgbGRyICAgICByMiwgPUNPTkZJR19TWVNfRFJBTV9CQVNFCiAgICBzdHIgICAgIHIyLCBbcjJdCiAgICBzdHIgICAgIHIyLCBbcjJdCiAgICBzdHIgICAgIHIyLCBbcjJdCkBAIC0xNzIsNyArMTcyLDcgQEAKICAgIHN0ciAgICAgcjIsICBbcjEsICNNRENORkdfT0ZGU0VUXQogCiAvKiB3cml0ZSBNRE1SUyB0byB0cmlnZ2VyIGFuIE1TUiBjb21tYW5kIHRvIGFsbCBlbmFibGVkIFNEUkFNIGJhbmtzICovCi0gICBsZHIgICAgIHIyLCAgPUNGR19NRE1SU19WQUwKKyAgIGxkciAgICAgcjIsICA9Q09ORklHX1NZU19NRE1SU19WQUwKICAgIHN0ciAgICAgcjIsICBbcjEsICNNRE1SU19PRkZTRVRdCiAKIC8qIC0tLS0gSU5URVJSVVBUIElOSVRJQUxJU0FUSU9OIC0tLS0gKi8KQEAgLTE4Myw3ICsxODMsNyBAQAogICAgc3RyICAgICByMSwgIFtyMl0KIAogLyogU2V0IGludGVycnVwdCBtYXNrIHJlZ2lzdGVyICovCi0gICBsZHIgICAgIHIxLCAgPUNGR19JQ01SX1ZBTAorICAgbGRyICAgICByMSwgID1DT05GSUdfU1lTX0lDTVJfVkFMCiAgICBsZHIgICAgIHIyLCAgPUlDTVIKICAgIHN0ciAgICAgcjEsICBbcjJdCiAKQEAgLTE5Niw3ICsxOTYsNyBAQAogICAgc3RyICAgICByMiwgIFtyMV0KIAogLyogc2V0IGNvcmUgY2xvY2tzICovCi0gICBsZHIgICAgIHIyLCAgPUNGR19DQ0NSX1ZBTAorICAgbGRyICAgICByMiwgID1DT05GSUdfU1lTX0NDQ1JfVkFMCiAgICBsZHIgICAgIHIxLCAgPUNDQ1IKICAgIHN0ciAgICAgcjIsICBbcjFdCiAKQEAgLTIxNSw3ICsyMTUsNyBAQAogCiAvKiBUdXJuIG9uIG5lZWRlZCBjbG9ja3MgKi8KICAgIGxkciAgICAgcjEsICA9Q0tFTgotICAgbGRyICAgICByMiwgID1DRkdfQ0tFTl9WQUwKKyAgIGxkciAgICAgcjIsICA9Q09ORklHX1NZU19DS0VOX1ZBTAogICAgc3RyICAgICByMiwgIFtyMV0KIAogICAgbW92ICAgcGMsIHIxMApkaWZmIC0tZ2l0IGEvYm9hcmQvemV1cy91cGRhdGUuYyBiL2JvYXJkL3pldXMvdXBkYXRlLmMKaW5kZXggYzc2NTE5Zi4uMmYyYTEyNyAxMDA2NDQKLS0tIGEvYm9hcmQvemV1cy91cGRhdGUuYworKysgYi9ib2FyZC96ZXVzL3VwZGF0ZS5jCkBAIC02NywxMiArNjcsMTIgQEAKIHN0YXRpYyBpbnQgdXBkYXRlX2Jvb3RfZWVwcm9tKHZvaWQpCiB7CiAJdTMyIGxlbiA9IDB4MjA7Ci0JdTggY2hpcCA9IENGR19JMkNfRUVQUk9NX0FERFI7CisJdTggY2hpcCA9IENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSOwogCXU4ICpwYnVmOwogCXU4IGJhc2U7CiAJaW50IGk7CiAKLQlpZiAoaW5fYmUzMigodm9pZCAqKUdQSU8wX0lSKSAmIEdQSU9fVkFMKENGR19HUElPX1pFVVNfUEUpKSB7CisJaWYgKGluX2JlMzIoKHZvaWQgKilHUElPMF9JUikgJiBHUElPX1ZBTChDT05GSUdfU1lTX0dQSU9fWkVVU19QRSkpIHsKIAkJcGJ1ZiA9IGJ1Zl96ZXVzX3BlOwogCQliYXNlID0gMHg0MDsKIAl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvYm9hcmQvemV1cy96ZXVzLmMgYi9ib2FyZC96ZXVzL3pldXMuYwppbmRleCA2ZmE0ZWVmLi45NzRiZGYyIDEwMDY0NAotLS0gYS9ib2FyZC96ZXVzL3pldXMuYworKysgYi9ib2FyZC96ZXVzL3pldXMuYwpAQCAtMzgsNyArMzgsNyBAQAogI2RlZmluZSBSRUJPT1RfTk9QCTB4MDAwMDAwMDAKICNkZWZpbmUgUkVCT09UX0RPX1BPU1QJMHgwMDAwMDAwMQogCi1leHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitleHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogZXh0ZXJuIGVudl90ICplbnZfcHRyOwogZXh0ZXJuIHVjaGFyIGRlZmF1bHRfZW52aXJvbm1lbnRbXTsKIApAQCAtNzMsOCArNzMsOCBAQAogCXUzMiBwb3N0X21hZ2ljOwogCXUzMiBwb3N0X3ZhbDsKIAotCXBvc3RfbWFnaWMgPSBpbl9iZTMyKCh2b2lkICopQ0ZHX1BPU1RfTUFHSUMpOwotCXBvc3RfdmFsID0gaW5fYmUzMigodm9pZCAqKUNGR19QT1NUX1ZBTCk7CisJcG9zdF9tYWdpYyA9IGluX2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX1BPU1RfTUFHSUMpOworCXBvc3RfdmFsID0gaW5fYmUzMigodm9pZCAqKUNPTkZJR19TWVNfUE9TVF9WQUwpOwogCWlmICgocG9zdF9tYWdpYyA9PSBSRUJPT1RfTUFHSUMpICYmIChwb3N0X3ZhbCA9PSBSRUJPT1RfRE9fUE9TVCkpIHsKIAkJLyoKIAkJICogU2V0IHNwZWNpYWwgYm9vdGxpbmUgYm9vdHBhcmFtZXRlciB0byBwYXNzIHRoaXMgUE9TVCBib290CkBAIC04Nyw3ICs4Nyw3IEBACiAJCSAqIHZpYSB0aGUgc3ctcmVzZXQgYnV0dG9uLiBTbyBkaXNhYmxlIGZ1cnRoZXIgdGVzdHMKIAkJICogdXBvbiBuZXh0IGJvb3R1cCBoZXJlLgogCQkgKi8KLQkJb3V0X2JlMzIoKHZvaWQgKilDRkdfUE9TVF9WQUwsIFJFQk9PVF9OT1ApOworCQlvdXRfYmUzMigodm9pZCAqKUNPTkZJR19TWVNfUE9TVF9WQUwsIFJFQk9PVF9OT1ApOwogCX0gZWxzZSB7CiAJCS8qCiAJCSAqIE9ubHkgcnVuIFBPU1Qgd2hlbiBpbml0aWF0ZWQgdmlhIHRoZSBzdy1yZXNldCBidXR0b24gbWVjaGFuaXNtCkBAIC0xNDQsNyArMTQ0LDcgQEAKIAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgIC1DRkdfTU9OSVRPUl9MRU4sCisJCQkgICAgLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCQkgICAgMHhmZmZmZmZmZiwKIAkJCSAgICAmZmxhc2hfaW5mb1swXSk7CiAKQEAgLTE2Niw3ICsxNjYsNyBAQAogCiAJcHV0cygiQm9hcmQ6IFpldXMtIik7CiAKLQlpZiAoaW5fYmUzMigodm9pZCAqKUdQSU8wX0lSKSAmIEdQSU9fVkFMKENGR19HUElPX1pFVVNfUEUpKQorCWlmIChpbl9iZTMyKCh2b2lkICopR1BJTzBfSVIpICYgR1BJT19WQUwoQ09ORklHX1NZU19HUElPX1pFVVNfUEUpKQogCQlwdXRzKCJQRSIpOwogCWVsc2UKIAkJcHV0cygiQ0UiKTsKQEAgLTE4MCwxMiArMTgwLDEyIEBACiAJcHV0YygnXG4nKTsKIAogCS8qIGJvdGggTEVEJ3Mgb2ZmICovCi0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fTEVEX1JFRCwgMCk7Ci0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fTEVEX0dSRUVOLCAwKTsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fTEVEX1JFRCwgMCk7CisJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX0xFRF9HUkVFTiwgMCk7CiAJdWRlbGF5KDEwMDAwKTsKIAkvKiBhbmQgb24gYWdhaW4gKi8KLQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19MRURfUkVELCAxKTsKLQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19MRURfR1JFRU4sIDEpOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19MRURfUkVELCAxKTsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fTEVEX0dSRUVOLCAxKTsKIAogCXJldHVybiAoMCk7CiB9CkBAIC0yMzksNyArMjM5LDcgQEAKIAkgKi8KIAltZW1zZXQoZW52X3B0ciwgMCwgc2l6ZW9mKGVudl90KSk7CiAJbWVtY3B5KGVudl9wdHItPmRhdGEsIGRlZmF1bHRfZW52aXJvbm1lbnQsIEVOVl9TSVpFKTsKLSNpZmRlZiBDRkdfUkVEVU5EQU5EX0VOVklST05NRU5UCisjaWZkZWYgQ09ORklHX1NZU19SRURVTkRBTkRfRU5WSVJPTk1FTlQKIAllbnZfcHRyLT5mbGFncyA9IDB4RkY7CiAjZW5kaWYKIAllbnZfY3JjX3VwZGF0ZSgpOwpAQCAtMzMzLDcgKzMzMyw3IEBACiAKIHN0YXRpYyBpbmxpbmUgaW50IHN3X3Jlc2V0X3ByZXNzZWQodm9pZCkKIHsKLQlyZXR1cm4gIShpbl9iZTMyKCh2b2lkICopR1BJTzBfSVIpICYgR1BJT19WQUwoQ0ZHX0dQSU9fU1dfUkVTRVQpKTsKKwlyZXR1cm4gIShpbl9iZTMyKCh2b2lkICopR1BJTzBfSVIpICYgR1BJT19WQUwoQ09ORklHX1NZU19HUElPX1NXX1JFU0VUKSk7CiB9CiAKIGludCBkb19jaGtyZXNldChjbWRfdGJsX3QqIGNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKQEAgLTM1NiwxNiArMzU2LDE2IEBACiAJCWlmICghc3dfcmVzZXRfcHJlc3NlZCgpKQogCQkJYnJlYWs7CiAKLQkJaWYgKChkZWx0YSA+IENGR19USU1FX1BPU1QpICYmICFwb3N0KSB7CisJCWlmICgoZGVsdGEgPiBDT05GSUdfU1lTX1RJTUVfUE9TVCkgJiYgIXBvc3QpIHsKIAkJCXByaW50ZigiXG5XaGVuIHJlbGVhc2VkIG5vdywgUE9TVCB0ZXN0cyB3aWxsIGJlIHN0YXJ0ZWQuIik7Ci0JCQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19MRURfR1JFRU4sIDApOworCQkJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX0xFRF9HUkVFTiwgMCk7CiAJCQlwb3N0ID0gMTsKIAkJfQogCi0JCWlmICgoZGVsdGEgPiBDRkdfVElNRV9GQUNUT1JZX1JFU0VUKSAmJiAhZmFjdG9yeV9yZXNldCkgeworCQlpZiAoKGRlbHRhID4gQ09ORklHX1NZU19USU1FX0ZBQ1RPUllfUkVTRVQpICYmICFmYWN0b3J5X3Jlc2V0KSB7CiAJCQlwcmludGYoIlxuV2hlbiByZWxlYXNlZCBub3csIGZhY3RvcnkgZGVmYXVsdCB2YWx1ZXMiCiAJCQkgICAgICAgIiB3aWxsIGJlIHJlc3RvcmVkLiIpOwotCQkJZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fTEVEX1JFRCwgMCk7CisJCQlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fTEVEX1JFRCwgMCk7CiAJCQlmYWN0b3J5X3Jlc2V0ID0gMTsKIAkJfQogCkBAIC0zNzcsNyArMzc3LDcgQEAKIAogCXByaW50ZigiXG5TVy1SZXNldCBCdXR0b24gcmVsZWFzZWQgYWZ0ZXIgJWQgbWlsbGktc2Vjb25kcyFcbiIsIGRlbHRhKTsKIAotCWlmIChkZWx0YSA+IENGR19USU1FX0ZBQ1RPUllfUkVTRVQpIHsKKwlpZiAoZGVsdGEgPiBDT05GSUdfU1lTX1RJTUVfRkFDVE9SWV9SRVNFVCkgewogCQlwcmludGYoIlN0YXJ0aW5nIGZhY3RvcnkgcmVzZXQgdmFsdWUgcmVzdG9yYXRpb24uLi5cbiIpOwogCiAJCS8qCkBAIC0zOTMsMTQgKzM5MywxNCBAQAogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAoZGVsdGEgPiBDRkdfVElNRV9QT1NUKSB7CisJaWYgKGRlbHRhID4gQ09ORklHX1NZU19USU1FX1BPU1QpIHsKIAkJcHJpbnRmKCJTdGFydGluZyBQT1NUIGNvbmZpZ3VyYXRpb24uLi5cbiIpOwogCiAJCS8qCiAJCSAqIEVuYWJsZSBQT1NUIHVwb24gbmV4dCBib290dXAKIAkJICovCi0JCW91dF9iZTMyKCh2b2lkICopQ0ZHX1BPU1RfTUFHSUMsIFJFQk9PVF9NQUdJQyk7Ci0JCW91dF9iZTMyKCh2b2lkICopQ0ZHX1BPU1RfVkFMLCBSRUJPT1RfRE9fUE9TVCk7CisJCW91dF9iZTMyKCh2b2lkICopQ09ORklHX1NZU19QT1NUX01BR0lDLCBSRUJPT1RfTUFHSUMpOworCQlvdXRfYmUzMigodm9pZCAqKUNPTkZJR19TWVNfUE9TVF9WQUwsIFJFQk9PVF9ET19QT1NUKTsKIAkJcG9zdF9ib290bW9kZV9pbml0KCk7CiAKIAkJLyoKQEAgLTQzMiw4ICs0MzIsOCBAQAogCXUzMiBwb3N0X21hZ2ljOwogCXUzMiBwb3N0X3ZhbDsKIAotCXBvc3RfbWFnaWMgPSBpbl9iZTMyKCh2b2lkICopQ0ZHX1BPU1RfTUFHSUMpOwotCXBvc3RfdmFsID0gaW5fYmUzMigodm9pZCAqKUNGR19QT1NUX1ZBTCk7CisJcG9zdF9tYWdpYyA9IGluX2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX1BPU1RfTUFHSUMpOworCXBvc3RfdmFsID0gaW5fYmUzMigodm9pZCAqKUNPTkZJR19TWVNfUE9TVF9WQUwpOwogCiAJaWYgKChwb3N0X21hZ2ljID09IFJFQk9PVF9NQUdJQykgJiYgKHBvc3RfdmFsID09IFJFQk9PVF9ET19QT1NUKSkKIAkJcmV0dXJuIDE7CmRpZmYgLS1naXQgYS9ib2FyZC96cGMxOTAwL3pwYzE5MDAuYyBiL2JvYXJkL3pwYzE5MDAvenBjMTkwMC5jCmluZGV4IDEwM2VmNzEuLjAyN2Q1NjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3pwYzE5MDAvenBjMTkwMC5jCisrKyBiL2JvYXJkL3pwYzE5MDAvenBjMTkwMC5jCkBAIC0xODMsNyArMTgzLDcgQEAKICAgICB9CiB9OwogCi0jaWZkZWYgQ0ZHX05WUkFNX0FDQ0VTU19ST1VUSU5FCisjaWZkZWYgQ09ORklHX1NZU19OVlJBTV9BQ0NFU1NfUk9VVElORQogdm9pZCAqbnZyYW1fcmVhZCh2b2lkICpkZXN0LCBsb25nIHNyYywgc2l6ZV90IGNvdW50KQogewogCXJldHVybiBtZW1jcHkoZGVzdCwgKGNvbnN0IHZvaWQgKilzcmMsIGNvdW50KTsKQEAgLTE5MSw4ICsxOTEsOCBAQAogCiB2b2lkIG52cmFtX3dyaXRlKGxvbmcgZGVzdCwgY29uc3Qgdm9pZCAqc3JjLCBzaXplX3QgY291bnQpCiB7Ci0JdnVfY2hhciAgICAgKnAxID0gKHZ1X2NoYXIgKikoQ0ZHX0VFUFJPTSArIDB4MTU1NSk7Ci0JdnVfY2hhciAgICAgKnAyID0gKHZ1X2NoYXIgKikoQ0ZHX0VFUFJPTSArIDB4MEFBQSk7CisJdnVfY2hhciAgICAgKnAxID0gKHZ1X2NoYXIgKikoQ09ORklHX1NZU19FRVBST00gKyAweDE1NTUpOworCXZ1X2NoYXIgICAgICpwMiA9ICh2dV9jaGFyICopKENPTkZJR19TWVNfRUVQUk9NICsgMHgwQUFBKTsKIAl2dV9jaGFyICAgICAqZCA9ICh2dV9jaGFyICopZGVzdDsKIAljb25zdCB1Y2hhciAqcyA9IChjb25zdCB1Y2hhciAqKXNyYzsKIApAQCAtMjE4LDE2ICsyMTgsMTYgQEAKIAkqcDEgPSAweEEwOwogCXVkZWxheSgxMDAwMCk7CiB9Ci0jZW5kaWYgLyogQ0ZHX05WUkFNX0FDQ0VTU19ST1VUSU5FICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OVlJBTV9BQ0NFU1NfUk9VVElORSAqLwogCiBwaHlzX3NpemVfdCBpbml0ZHJhbShpbnQgYm9hcmRfdHlwZSkKIHsKLQl2dV9jaGFyICpiY3NyID0gKHZ1X2NoYXIgKilDRkdfQkNTUjsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdnVfY2hhciAqYmNzciA9ICh2dV9jaGFyICopQ09ORklHX1NZU19CQ1NSOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl2dV9jaGFyICpyYW1hZGRyOwogCXVjaGFyIGMgPSAweEZGOwotCWxvbmcgaW50IG1zaXplID0gQ0ZHX1NEUkFNX1NJWkU7CisJbG9uZyBpbnQgbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkU7CiAJaW50IGk7CiAKIAlpZiAoYmNzcls0XSAmIEJDU1JfUENJX01PREUpIHsgLyogUENJIG1vZGUgc2VsZWN0ZWQgYnkgSlA5ICovCkBAIC0yMzcsMzggKzIzNywzOCBAQAogCQkJfCBTSVVNQ1JfTEJQQzAxOwogCX0KIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAlpbW1hcC0+aW1fc2l1X2NvbmYuc2NfcHBjX2FjciAgPSAweDAzOwogCWltbWFwLT5pbV9zaXVfY29uZi5zY19wcGNfYWxyaCA9IDB4MzAxMjY3NDU7CiAJaW1tYXAtPmltX3NpdV9jb25mLnNjX3Rlc2NyMSAgID0gMHgwMDAwNDAwMDsKIAotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCi0jaWZkZWYgQ0ZHX0xTRFJBTV9CQVNFCisjaWZkZWYgQ09ORklHX1NZU19MU0RSQU1fQkFTRQogCS8qCiAJICBJbml0aWFsaXNlIGxvY2FsIGJ1cyBTRFJBTSBvbmx5IGlmIHRoZSBwaW5zCiAJICBhcmUgY29uZmlndXJlZCBhcyBsb2NhbCBidXMgcGlucyBhbmQgbm90IGFzIFBDSS4KIAkqLwogCWlmICgoaW1tYXAtPmltX3NpdV9jb25mLnNjX3NpdW1jciAmIFNJVU1DUl9MQlBDMTEpID09IFNJVU1DUl9MQlBDMDApIHsKLQkJbWVtY3RsLT5tZW1jX2xzcnQgID0gQ0ZHX0xTUlQ7Ci0JCW1lbWN0bC0+bWVtY19vcjQgICA9IENGR19MU0RSQU1fT1I7Ci0JCW1lbWN0bC0+bWVtY19icjQgICA9IENGR19MU0RSQU1fQlI7Ci0JCXJhbWFkZHIgPSAodnVfY2hhciAqKUNGR19MU0RSQU1fQkFTRTsKLQkJbWVtY3RsLT5tZW1jX2xzZG1yID0gQ0ZHX0xTRE1SIHwgUFNETVJfT1BfUFJFQTsKKwkJbWVtY3RsLT5tZW1jX2xzcnQgID0gQ09ORklHX1NZU19MU1JUOworCQltZW1jdGwtPm1lbWNfb3I0ICAgPSBDT05GSUdfU1lTX0xTRFJBTV9PUjsKKwkJbWVtY3RsLT5tZW1jX2JyNCAgID0gQ09ORklHX1NZU19MU0RSQU1fQlI7CisJCXJhbWFkZHIgPSAodnVfY2hhciAqKUNPTkZJR19TWVNfTFNEUkFNX0JBU0U7CisJCW1lbWN0bC0+bWVtY19sc2RtciA9IENPTkZJR19TWVNfTFNETVIgfCBQU0RNUl9PUF9QUkVBOwogCQkqcmFtYWRkciA9IGM7Ci0JCW1lbWN0bC0+bWVtY19sc2RtciA9IENGR19MU0RNUiB8IFBTRE1SX09QX0NCUlI7CisJCW1lbWN0bC0+bWVtY19sc2RtciA9IENPTkZJR19TWVNfTFNETVIgfCBQU0RNUl9PUF9DQlJSOwogCQlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQogCQkJKnJhbWFkZHIgPSBjOwotCQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDRkdfTFNETVIgfCBQU0RNUl9PUF9NUlc7CisJCW1lbWN0bC0+bWVtY19sc2RtciA9IENPTkZJR19TWVNfTFNETVIgfCBQU0RNUl9PUF9NUlc7CiAJCSpyYW1hZGRyID0gYzsKLQkJbWVtY3RsLT5tZW1jX2xzZG1yID0gQ0ZHX0xTRE1SIHwgUFNETVJfUkZFTjsKKwkJbWVtY3RsLT5tZW1jX2xzZG1yID0gQ09ORklHX1NZU19MU0RNUiB8IFBTRE1SX1JGRU47CiAJfQotI2VuZGlmIC8qIENGR19MU0RSQU1fQkFTRSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTFNEUkFNX0JBU0UgKi8KIAogCS8qIEluaXRpYWxpc2UgNjB4IGJ1cyBTRFJBTSAqLwotCW1lbWN0bC0+bWVtY19wc3J0ID0gQ0ZHX1BTUlQ7Ci0JbWVtY3RsLT5tZW1jX29yMiAgPSBDRkdfUFNEUkFNX09SOwotCW1lbWN0bC0+bWVtY19icjIgID0gQ0ZHX1BTRFJBTV9CUjsKKwltZW1jdGwtPm1lbWNfcHNydCA9IENPTkZJR19TWVNfUFNSVDsKKwltZW1jdGwtPm1lbWNfb3IyICA9IENPTkZJR19TWVNfUFNEUkFNX09SOworCW1lbWN0bC0+bWVtY19icjIgID0gQ09ORklHX1NZU19QU0RSQU1fQlI7CiAJLyoKIAkgKiBUaGUgbW9kZSBkYXRhIGZvciBNb2RlIFJlZ2lzdGVyIFdyaXRlIGNvbW1hbmQgbXVzdCBhcHBlYXIgb24KIAkgKiB0aGUgYWRkcmVzcyBsaW5lcyBkdXJpbmcgYSBtb2RlLXNldCBjeWNsZS4gSXQgaXMgZHJpdmVuIGJ5CkBAIC0yNzgsMTggKzI3OCwxOCBAQAogCSAqIHRoZSBhZGRyZXNzIGxpbmVzLiBCTD0wIGJlY2F1c2UgZm9yIDY0LWJpdCBwb3J0IHNpemUgYnVyc3QKIAkgKiBsZW5ndGggbXVzdCBiZSA0LgogCSAqLwotCXJhbWFkZHIgPSAodnVfY2hhciAqKShDRkdfU0RSQU1fQkFTRSB8Ci0JCQkgICAgICAoKENGR19QU0RNUiAmIFBTRE1SX0NMX01TSykgPDwgNykgfCAweDEwKTsKLQltZW1jdGwtPm1lbWNfcHNkbXIgPSBDRkdfUFNETVIgfCBQU0RNUl9PUF9QUkVBOyAvKiBQcmVjaGFyZ2UgYWxsIGJhbmtzICovCisJcmFtYWRkciA9ICh2dV9jaGFyICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8CisJCQkgICAgICAoKENPTkZJR19TWVNfUFNETVIgJiBQU0RNUl9DTF9NU0spIDw8IDcpIHwgMHgxMCk7CisJbWVtY3RsLT5tZW1jX3BzZG1yID0gQ09ORklHX1NZU19QU0RNUiB8IFBTRE1SX09QX1BSRUE7IC8qIFByZWNoYXJnZSBhbGwgYmFua3MgKi8KIAkqcmFtYWRkciA9IGM7Ci0JbWVtY3RsLT5tZW1jX3BzZG1yID0gQ0ZHX1BTRE1SIHwgUFNETVJfT1BfQ0JSUjsgLyogQ0JSIHJlZnJlc2ggKi8KKwltZW1jdGwtPm1lbWNfcHNkbXIgPSBDT05GSUdfU1lTX1BTRE1SIHwgUFNETVJfT1BfQ0JSUjsgLyogQ0JSIHJlZnJlc2ggKi8KIAlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQogCQkqcmFtYWRkciA9IGM7Ci0JbWVtY3RsLT5tZW1jX3BzZG1yID0gQ0ZHX1BTRE1SIHwgUFNETVJfT1BfTVJXOyAgLyogTW9kZSBSZWdpc3RlciB3cml0ZSAqLworCW1lbWN0bC0+bWVtY19wc2RtciA9IENPTkZJR19TWVNfUFNETVIgfCBQU0RNUl9PUF9NUlc7ICAvKiBNb2RlIFJlZ2lzdGVyIHdyaXRlICovCiAJKnJhbWFkZHIgPSBjOwotCW1lbWN0bC0+bWVtY19wc2RtciA9IENGR19QU0RNUiB8IFBTRE1SX1JGRU47ICAgIC8qIFJlZnJlc2ggZW5hYmxlICovCisJbWVtY3RsLT5tZW1jX3BzZG1yID0gQ09ORklHX1NZU19QU0RNUiB8IFBTRE1SX1JGRU47ICAgIC8qIFJlZnJlc2ggZW5hYmxlICovCiAJKnJhbWFkZHIgPSBjOwotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiBSZXR1cm4gdG90YWwgNjB4IGJ1cyBTRFJBTSBzaXplICovCiAJcmV0dXJuIG1zaXplICogMTAyNCAqIDEwMjQ7CkBAIC0yOTcsNyArMjk3LDcgQEAKIAogaW50IGNoZWNrYm9hcmQodm9pZCkKIHsKLQl2dV9jaGFyICpiY3NyID0gKHZ1X2NoYXIgKilDRkdfQkNTUjsKKwl2dV9jaGFyICpiY3NyID0gKHZ1X2NoYXIgKilDT05GSUdfU1lTX0JDU1I7CiAKIAlwcmludGYoIkJvYXJkOiBaZXBoeXIgWlBDLjE5MDAgUmV2LiAlY1xuIiwgYmNzclsyXSArIDB4NDApOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvYm9hcmQvenlsb25pdGUvZmxhc2guYyBiL2JvYXJkL3p5bG9uaXRlL2ZsYXNoLmMKaW5kZXggODBiNTIwYi4uNWJhODRjNiAxMDA2NDQKLS0tIGEvYm9hcmQvenlsb25pdGUvZmxhc2guYworKysgYi9ib2FyZC96eWxvbml0ZS9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyogQm9hcmQgc3VwcG9ydCBmb3IgMSBvciAyIGZsYXNoIGRldmljZXMgKi8KICNkZWZpbmUgRkxBU0hfUE9SVF9XSURUSDMyCkBAIC02Niw3ICs2Niw3IEBACiAJaW50IGk7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDoKIAkJCWZsYXNoX2dldF9zaXplICgoRlBXICopIFBIWVNfRkxBU0hfMSwgJmZsYXNoX2luZm9baV0pOwpAQCAtODYsOCArODYsOCBAQAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCWZsYXNoX3Byb3RlY3QgKCBGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCQlDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSZmbGFzaF9pbmZvWzBdICk7CiAKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKQEAgLTIwNiwxMCArMjA2LDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IChGUFcpIDB4MDBGRjAwRkY7CQkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMjc5LDcgKzI3OSw3IEBACiAJCQkqYWRkciA9IChGUFcpIDB4MDBEMDAwRDA7CS8qIGVyYXNlIGNvbmZpcm0gKi8KIAogCQkJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJKmFkZHIgPSAoRlBXKSAweDAwQjAwMEIwOwkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwpAQCAtNDEzLDcgKzQxMyw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuICgxKTsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvenlsb25pdGUvbG93bGV2ZWxfaW5pdC5TIGIvYm9hcmQvenlsb25pdGUvbG93bGV2ZWxfaW5pdC5TCmluZGV4IGRhMDE3NjUuLmZmMTdjN2UgMTAwNjQ0Ci0tLSBhL2JvYXJkL3p5bG9uaXRlL2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC96eWxvbml0ZS9sb3dsZXZlbF9pbml0LlMKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDx2ZXJzaW9uLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KIAotRFJBTV9TSVpFOiAgLmxvbmcgICBDRkdfRFJBTV9TSVpFCitEUkFNX1NJWkU6ICAubG9uZyAgIENPTkZJR19TWVNfRFJBTV9TSVpFCiAKIC8qIHdhaXQgZm9yIGNvcHJvY2Vzc29yIHdyaXRlIGNvbXBsZXRlICovCiAubWFjcm8gQ1BXQUlUIHJlZwpAQCAtMjM1LDEzICsyMzUsMTMgQEAKIAlvcnIJCXIxLCByMSwgIzB4NDAwMDAwMDAJQCBlbmFibGUgU0RSQU0gZm9yIE5vcm1hbCBBY2Nlc3MKIAlzdHIJCXIxLCBbcjBdCiAKLSNpZm5kZWYgQ0ZHX1NLSVBfRFJBTV9TQ1JVQgorI2lmbmRlZiBDT05GSUdfU1lTX1NLSVBfRFJBTV9TQ1JVQgogCS8qIHNjcnViL2luaXQgU0RSQU0gaWYgZW5hYmxlZC9wcmVzZW50ICovCi0vKglsZHIJcjExLCA9MHhhMDAwMDAwMCAvXCogYmFzZSBhZGRyZXNzIG9mIFNEUkFNIChDRkdfRFJBTV9CQVNFKSAqXC8gKi8KLS8qCWxkcglyMTIsID0weDA0MDAwMDAwIC9cKiBzaXplIG9mIG1lbW9yeSB0byBzY3J1YiAoQ0ZHX0RSQU1fU0laRSkgKlwvICovCisvKglsZHIJcjExLCA9MHhhMDAwMDAwMCAvXCogYmFzZSBhZGRyZXNzIG9mIFNEUkFNIChDT05GSUdfU1lTX0RSQU1fQkFTRSkgKlwvICovCisvKglsZHIJcjEyLCA9MHgwNDAwMDAwMCAvXCogc2l6ZSBvZiBtZW1vcnkgdG8gc2NydWIgKENPTkZJR19TWVNfRFJBTV9TSVpFKSAqXC8gKi8KIC8qCW1vdglyOCxyMTIJCSAvXCogc2F2ZSBEUkFNIHNpemUgKG1rOiB3aHk/Pz8pICpcLyAqLwotCWxkcglyOCwgPTB4YTAwMDAwMDAJIC8qIGJhc2UgYWRkcmVzcyBvZiBTRFJBTSAoQ0ZHX0RSQU1fQkFTRSkgKi8KLQlsZHIJcjksID0weDA0MDAwMDAwCSAvKiBzaXplIG9mIG1lbW9yeSB0byBzY3J1YiAoQ0ZHX0RSQU1fU0laRSkgKi8KKwlsZHIJcjgsID0weGEwMDAwMDAwCSAvKiBiYXNlIGFkZHJlc3Mgb2YgU0RSQU0gKENPTkZJR19TWVNfRFJBTV9CQVNFKSAqLworCWxkcglyOSwgPTB4MDQwMDAwMDAJIC8qIHNpemUgb2YgbWVtb3J5IHRvIHNjcnViIChDT05GSUdfU1lTX0RSQU1fU0laRSkgKi8KIAltb3YJcjAsICMwCQkgLyogc2NydWIgd2l0aCAweDAwMDA6MDAwMCAqLwogCW1vdglyMSwgIzAKIAltb3YJcjIsICMwCkBAIC0yNTUsNyArMjU1LDcgQEAKIAlzdG1pYQlyOCEsIHtyMC1yN30KIAliZXEJMTVmCiAJYgkxMGIKLSNlbmRpZiAvKiBDRkdfU0tJUF9EUkFNX1NDUlVCICovCisjZW5kaWYgLyogQ09ORklHX1NZU19TS0lQX0RSQU1fU0NSVUIgKi8KIAogMTU6CiAJLyogTWFzayBhbGwgaW50ZXJydXB0cyAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvenlsb25pdGUvbmFuZC5jIGIvYm9hcmQvenlsb25pdGUvbmFuZC5jCmluZGV4IDdmMjI5MzUuLjg5NWZiMmIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3p5bG9uaXRlL25hbmQuYworKysgYi9ib2FyZC96eWxvbml0ZS9uYW5kLmMKQEAgLTI4LDE5ICsyOCwxOSBAQAogI2luY2x1ZGUgPG5hbmQuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogCi0jaWZkZWYgQ0ZHX0RGQ19ERUJVRzEKKyNpZmRlZiBDT05GSUdfU1lTX0RGQ19ERUJVRzEKICMgZGVmaW5lIERGQ19ERUJVRzEoZm10LCBhcmdzLi4uKSBwcmludGYoZm10LCAjI2FyZ3MpCiAjZWxzZQogIyBkZWZpbmUgREZDX0RFQlVHMShmbXQsIGFyZ3MuLi4pCiAjZW5kaWYKIAotI2lmZGVmIENGR19ERkNfREVCVUcyCisjaWZkZWYgQ09ORklHX1NZU19ERkNfREVCVUcyCiAjIGRlZmluZSBERkNfREVCVUcyKGZtdCwgYXJncy4uLikgcHJpbnRmKGZtdCwgIyNhcmdzKQogI2Vsc2UKICMgZGVmaW5lIERGQ19ERUJVRzIoZm10LCBhcmdzLi4uKQogI2VuZGlmCiAKLSNpZmRlZiBDRkdfREZDX0RFQlVHMworI2lmZGVmIENPTkZJR19TWVNfREZDX0RFQlVHMwogIyBkZWZpbmUgREZDX0RFQlVHMyhmbXQsIGFyZ3MuLi4pIHByaW50ZihmbXQsICMjYXJncykKICNlbHNlCiAjIGRlZmluZSBERkNfREVCVUczKGZtdCwgYXJncy4uLikKQEAgLTIxMSw3ICsyMTEsNyBAQAogc3RhdGljIHZvaWQgZGZjX2NsZWFyX25kZGIodm9pZCkKIHsKIAlORENSICY9IH5ORENSX05EX1JVTjsKLQl3YWl0X3VzKENGR19OQU5EX09USEVSX1RPKTsKKwl3YWl0X3VzKENPTkZJR19TWVNfTkFORF9PVEhFUl9UTyk7CiB9CiAKIC8qIHdhaXRfZXZlbnQgd2l0aCB0aW1lb3V0ICovCkBAIC0yMjIsOSArMjIyLDkgQEAKIAlpZighZXZlbnQpCiAJCXJldHVybiAweGZmMDAwMDAwOwogCWVsc2UgaWYoZXZlbnQgJiAoTkRTUl9DUzBfQ01ERCB8IE5EU1JfQ1MwX0JCRCkpCi0JCXRpbWVvdXQgPSBDRkdfTkFORF9QUk9HX0VSQVNFX1RPICogT1NDUl9DTEtfRlJFUTsKKwkJdGltZW91dCA9IENPTkZJR19TWVNfTkFORF9QUk9HX0VSQVNFX1RPICogT1NDUl9DTEtfRlJFUTsKIAllbHNlCi0JCXRpbWVvdXQgPSBDRkdfTkFORF9PVEhFUl9UTyAqIE9TQ1JfQ0xLX0ZSRVE7CisJCXRpbWVvdXQgPSBDT05GSUdfU1lTX05BTkRfT1RIRVJfVE8gKiBPU0NSX0NMS19GUkVROwogCiAJd2hpbGUoMSkgewogCQluZHNyID0gTkRTUjsKQEAgLTI0Nyw3ICsyNDcsNyBAQAogCWludCByZXRyeSA9IDA7CiAJdW5zaWduZWQgbG9uZyBzdGF0dXM7CiAKLQl3aGlsZShyZXRyeSsrIDw9IENGR19OQU5EX1NFTkRDTURfUkVUUlkpIHsKKwl3aGlsZShyZXRyeSsrIDw9IENPTkZJR19TWVNfTkFORF9TRU5EQ01EX1JFVFJZKSB7CiAJCS8qIENsZWFyIE5EU1IgKi8KIAkJTkRTUiA9IDB4RkZGOwogCkBAIC00MzgsOCArNDM4LDggQEAKIAkvKiB0dXJuIG9uIHRoZSBOQU5EIENvbnRyb2xsZXIgQ2xvY2sgKDEwNCBNSHogQCBEMCkgKi8KIAlDS0VOQSB8PSAoQ0tFTkFfNF9OQU5EIHwgQ0tFTkFfOV9TTUMpOwogCi0jdW5kZWYgQ0ZHX1RJTUlOR19USUdIVAotI2lmbmRlZiBDRkdfVElNSU5HX1RJR0hUCisjdW5kZWYgQ09ORklHX1NZU19USU1JTkdfVElHSFQKKyNpZm5kZWYgQ09ORklHX1NZU19USU1JTkdfVElHSFQKIAl0Q0ggPSBNSU4oKCh1bnNpZ25lZCBsb25nKSAoTkFORF9USU1JTkdfdENIICogREZDX0NMS19QRVJfVVMpICsgMSksCiAJCSAgREZDX01BWF90Q0gpOwogCXRDUyA9IE1JTigoKHVuc2lnbmVkIGxvbmcpIChOQU5EX1RJTUlOR190Q1MgKiBERkNfQ0xLX1BFUl9VUykgKyAxKSwKQEAgLTQ3OCw3ICs0NzgsNyBAQAogCQkgICBERkNfTUFYX3RXSFIpOwogCXRBUiA9IE1JTigoKHVuc2lnbmVkIGxvbmcpIChOQU5EX1RJTUlOR190QVIgKiBERkNfQ0xLX1BFUl9VUykgLSAyKSwKIAkJICBERkNfTUFYX3RBUik7Ci0jZW5kaWYgLyogQ0ZHX1RJTUlOR19USUdIVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfVElNSU5HX1RJR0hUICovCiAKIAogCURGQ19ERUJVRzIoInRDSD0ldSwgdENTPSV1LCB0V0g9JXUsIHRXUD0ldSwgdFJIPSV1LCB0UlA9JXUsIHRSPSV1LCB0V0hSPSV1LCB0QVI9JXUuXG4iLCB0Q0gsIHRDUywgdFdILCB0V1AsIHRSSCwgdFJQLCB0UiwgdFdIUiwgdEFSKTsKZGlmZiAtLWdpdCBhL2NvbW1vbi9BQ0VYMUsuYyBiL2NvbW1vbi9BQ0VYMUsuYwppbmRleCA1MzY3N2I4Li4zZjc5Njc3IDEwMDY0NAotLS0gYS9jb21tb24vQUNFWDFLLmMKKysrIGIvY29tbW9uL0FDRVgxSy5jCkBAIC00NCw4ICs0NCw4IEBACiAjZGVmaW5lIENPTkZJR19GUEdBX0RFTEFZKCkKICNlbmRpZgogCi0jaWZuZGVmIENGR19GUEdBX1dBSVQKLSNkZWZpbmUgQ0ZHX0ZQR0FfV0FJVCBDRkdfSFovMTAJCS8qIDEwMCBtcyAqLworI2lmbmRlZiBDT05GSUdfU1lTX0ZQR0FfV0FJVAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfV0FJVCBDT05GSUdfU1lTX0haLzEwCQkvKiAxMDAgbXMgKi8KICNlbmRpZgogCiBzdGF0aWMgaW50IEFDRVgxS19wc19sb2FkKCBBbHRlcmFfZGVzYyAqZGVzYywgdm9pZCAqYnVmLCBzaXplX3QgYnNpemUgKTsKQEAgLTE1NCw3ICsxNTQsNyBAQAogCQkJCSJkb25lOlx0MHglcFxuXG4iLAogCQkJCV9fRlVOQ1RJT05fXywgJmZuLCBmbiwgZm4tPmNvbmZpZywgZm4tPnN0YXR1cywKIAkJCQlmbi0+Y2xrLCBmbi0+ZGF0YSwgZm4tPmRvbmUpOwotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlwcmludGYgKCJMb2FkaW5nIEZQR0EgRGV2aWNlICVkLi4uIiwgY29va2llKTsKICNlbmRpZgogCkBAIC0xODUsNyArMTg1LDcgQEAKIAkJdHMgPSBnZXRfdGltZXIgKDApOwkJLyogZ2V0IGN1cnJlbnQgdGltZSAqLwogCQlkbyB7CiAJCQlDT05GSUdfRlBHQV9ERUxBWSAoKTsKLQkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENGR19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KKwkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENPTkZJR19TWVNfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCiAJCQkJcHV0cyAoIioqIFRpbWVvdXQgd2FpdGluZyBmb3IgU1RBVFVTIHRvIGdvIGhpZ2guXG4iKTsKIAkJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CiAJCQkJcmV0dXJuIEZQR0FfRkFJTDsKQEAgLTE5OSw3ICsxOTksNyBAQAogCQkvKiBMb2FkIHRoZSBkYXRhICovCiAJCXdoaWxlIChieXRlY291bnQgPCBic2l6ZSkgewogCQkJdW5zaWduZWQgY2hhciB2YWw9MDsKLSNpZmRlZiBDRkdfRlBHQV9DSEVDS19DVFJMQworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9DSEVDS19DVFJMQwogCQkJaWYgKGN0cmxjICgpKSB7CiAJCQkJKCpmbi0+YWJvcnQpIChjb29raWUpOwogCQkJCXJldHVybiBGUEdBX0ZBSUw7CkBAIC0yMzAsNyArMjMwLDcgQEAKIAkJCQlpIC0tOwogCQkJfSB3aGlsZSAoaSA+IDApOwogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCQlpZiAoYnl0ZWNvdW50ICUgKGJzaXplIC8gNDApID09IDApCiAJCQkJcHV0YyAoJy4nKTsJCS8qIGxldCB0aGVtIGtub3cgd2UgYXJlIGFsaXZlICovCiAjZW5kaWYKQEAgLTIzOCw3ICsyMzgsNyBAQAogCiAJCUNPTkZJR19GUEdBX0RFTEFZICgpOwogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCXB1dGMgKCcgJyk7CQkJLyogdGVybWluYXRlIHRoZSBkb3R0ZWQgbGluZSAqLwogI2VuZGlmCiAKQEAgLTI2NSw3ICsyNjUsNyBAQAogCiAJcmV0X3ZhbCA9IEZQR0FfU1VDQ0VTUzsKIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlpZiAocmV0X3ZhbCA9PSBGUEdBX1NVQ0NFU1MpIHsKIAkJCXB1dHMgKCJEb25lLlxuIik7CiAJCX0KZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfYXV0b3NjcmlwdC5jIGIvY29tbW9uL2NtZF9hdXRvc2NyaXB0LmMKaW5kZXggMDQzOWRhMi4uNDUxN2FjOCAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9hdXRvc2NyaXB0LmMKKysrIGIvY29tbW9uL2NtZF9hdXRvc2NyaXB0LmMKQEAgLTQzLDcgKzQzLDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR184eHgpCiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAjZW5kaWYKLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCiAjaW5jbHVkZSA8aHVzaC5oPgogI2VuZGlmCiAKQEAgLTE2NCw3ICsxNjQsNyBAQAogCW1lbW1vdmUgKGNtZCwgKGNoYXIgKilkYXRhLCBsZW4pOwogCSooY21kICsgbGVuKSA9IDA7CiAKLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIgLyo/PyAqLworI2lmZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIgLyo/PyAqLwogCXJjb2RlID0gcGFyc2Vfc3RyaW5nX291dGVyIChjbWQsIEZMQUdfUEFSU0VfU0VNSUNPTE9OKTsKICNlbHNlCiAJewpAQCAtMjExLDcgKzIxMSw3IEBACiAKIAkvKiBGaW5kIHNjcmlwdCBpbWFnZSAqLwogCWlmIChhcmdjIDwgMikgewotCQlhZGRyID0gQ0ZHX0xPQURfQUREUjsKKwkJYWRkciA9IENPTkZJR19TWVNfTE9BRF9BRERSOwogCQlkZWJ1ZyAoIiogIGF1dG9zY3I6IGRlZmF1bHQgbG9hZCBhZGRyZXNzID0gMHglMDhseFxuIiwgYWRkcik7CiAjaWYgZGVmaW5lZChDT05GSUdfRklUKQogCX0gZWxzZSBpZiAoZml0X3BhcnNlX3N1YmltYWdlIChhcmd2WzFdLCBsb2FkX2FkZHIsICZhZGRyLCAmZml0X3VuYW1lKSkgewpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9iZGluZm8uYyBiL2NvbW1vbi9jbWRfYmRpbmZvLmMKaW5kZXggNTAxODkzMC4uNjY3NTI0MSAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9iZGluZm8uYworKysgYi9jb21tb24vY21kX2JkaW5mby5jCkBAIC0xNzgsNyArMTc4LDcgQEAKIAlwcmludF9udW0gKCJmbGFzaCBzaXplIiwJKHVsb25nKWJkLT5iaV9mbGFzaHNpemUpOwogCXByaW50X251bSAoImZsYXNoIG9mZnNldCIsCSh1bG9uZyliZC0+YmlfZmxhc2hvZmZzZXQpOwogCi0jaWYgZGVmaW5lZChDRkdfU1JBTV9CQVNFKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19TUkFNX0JBU0UpCiAJcHJpbnRfbnVtICgic3JhbSBzdGFydCIsCSh1bG9uZyliZC0+Ymlfc3JhbXN0YXJ0KTsKIAlwcmludF9udW0gKCJzcmFtIHNpemUiLAkJKHVsb25nKWJkLT5iaV9zcmFtc2l6ZSk7CiAjZW5kaWYKQEAgLTIwNyw3ICsyMDcsNyBAQAogCXByaW50X251bSAoImZsYXNoIHN0YXJ0ICAgICIsCSh1bG9uZyliZC0+YmlfZmxhc2hzdGFydCk7CiAJcHJpbnRfbnVtICgiZmxhc2ggc2l6ZSAgICAgIiwJKHVsb25nKWJkLT5iaV9mbGFzaHNpemUpOwogCXByaW50X251bSAoImZsYXNoIG9mZnNldCAgICIsCSh1bG9uZyliZC0+YmlfZmxhc2hvZmZzZXQpOwotI2lmIGRlZmluZWQoQ0ZHX1NSQU1fQkFTRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfU1JBTV9CQVNFKQogCXByaW50X251bSAoInNyYW0gc3RhcnQgICAgICIsCSh1bG9uZyliZC0+Ymlfc3JhbXN0YXJ0KTsKIAlwcmludF9udW0gKCJzcmFtIHNpemUgICAgICAiLAkodWxvbmcpYmQtPmJpX3NyYW1zaXplKTsKICNlbmRpZgpAQCAtMjM3LDE4ICsyMzcsMTggQEAKIAlwcmludF9udW0oIm1lbXN0YXJ0ICAgICAgICAgICAgICAgIiwgYmQtPmJpX21lbXN0YXJ0KTsKIAlwcmludF9sbnVtKCJtZW1zaXplICAgICAgICAgICAgICAgICIsIGJkLT5iaV9tZW1zaXplKTsKIAlwcmludF9udW0oImZsYXNoc3RhcnQgICAgICAgICAgICAgIiwgYmQtPmJpX2ZsYXNoc3RhcnQpOwotCXByaW50X251bSgiQ0ZHX01PTklUT1JfQkFTRSAgICAgICAiLCBDRkdfTU9OSVRPUl9CQVNFKTsKKwlwcmludF9udW0oIkNPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgICAgICIsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKTsKIAlwcmludF9udW0oIkNPTkZJR19FTlZfQUREUiAgICAgICAgICAgIiwgQ09ORklHX0VOVl9BRERSKTsKLQlwcmludGYoIkNGR19SRUxPQ19NT05JVE9SX0JBU0UgPSAweCVseCAoJWQpXG4iLCBDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLAotCSAgICAgICBDRkdfTU9OSVRPUl9MRU4pOwotCXByaW50ZigiQ0ZHX01BTExPQ19CQVNFICAgICAgICA9IDB4JWx4ICglZClcbiIsIENGR19NQUxMT0NfQkFTRSwKLQkgICAgICAgQ0ZHX01BTExPQ19MRU4pOwotCXByaW50ZigiQ0ZHX0lOSVRfU1BfT0ZGU0VUICAgICA9IDB4JWx4ICglZClcbiIsIENGR19JTklUX1NQX09GRlNFVCwKLQkgICAgICAgQ0ZHX1NUQUNLX1NJWkUpOwotCXByaW50ZigiQ0ZHX1BST01fT0ZGU0VUICAgICAgICA9IDB4JWx4ICglZClcbiIsIENGR19QUk9NX09GRlNFVCwKLQkgICAgICAgQ0ZHX1BST01fU0laRSk7Ci0JcHJpbnRmKCJDRkdfR0JMX0RBVEFfT0ZGU0VUICAgID0gMHglbHggKCVkKVxuIiwgQ0ZHX0dCTF9EQVRBX09GRlNFVCwKLQkgICAgICAgQ0ZHX0dCTF9EQVRBX1NJWkUpOworCXByaW50ZigiQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UgPSAweCVseCAoJWQpXG4iLCBDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRSwKKwkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0xFTik7CisJcHJpbnRmKCJDT05GSUdfU1lTX01BTExPQ19CQVNFICAgICAgICA9IDB4JWx4ICglZClcbiIsIENPTkZJR19TWVNfTUFMTE9DX0JBU0UsCisJICAgICAgIENPTkZJR19TWVNfTUFMTE9DX0xFTik7CisJcHJpbnRmKCJDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUICAgICA9IDB4JWx4ICglZClcbiIsIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQsCisJICAgICAgIENPTkZJR19TWVNfU1RBQ0tfU0laRSk7CisJcHJpbnRmKCJDT05GSUdfU1lTX1BST01fT0ZGU0VUICAgICAgICA9IDB4JWx4ICglZClcbiIsIENPTkZJR19TWVNfUFJPTV9PRkZTRVQsCisJICAgICAgIENPTkZJR19TWVNfUFJPTV9TSVpFKTsKKwlwcmludGYoIkNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgID0gMHglbHggKCVkKVxuIiwgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQsCisJICAgICAgIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSk7CiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfTkVUKQogCXB1dHMoImV0aGFkZHIgICAgICAgICAgICAgICAgPSIpOwpAQCAtMjc2LDExICsyNzYsMTEgQEAKIAlwcmludF9udW0gKCJmbGFzaHN0YXJ0IiwJKHVsb25nKWJkLT5iaV9mbGFzaHN0YXJ0KTsKIAlwcmludF9udW0gKCJmbGFzaHNpemUiLAkJKHVsb25nKWJkLT5iaV9mbGFzaHNpemUpOwogCXByaW50X251bSAoImZsYXNob2Zmc2V0IiwJKHVsb25nKWJkLT5iaV9mbGFzaG9mZnNldCk7Ci0jaWYgZGVmaW5lZChDRkdfSU5JVF9SQU1fQUREUikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUikKIAlwcmludF9udW0gKCJzcmFtc3RhcnQiLAkJKHVsb25nKWJkLT5iaV9zcmFtc3RhcnQpOwogCXByaW50X251bSAoInNyYW1zaXplIiwJCSh1bG9uZyliZC0+Ymlfc3JhbXNpemUpOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfTUJBUikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTUJBUikKIAlwcmludF9udW0gKCJtYmFyIiwJCWJkLT5iaV9tYmFyX2Jhc2UpOwogI2VuZGlmCiAJcHJpbnRfc3RyICgiYnVzZnJlcSIsCQlzdHJtaHooYnVmLCBiZC0+YmlfYnVzZnJlcSkpOwpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9iZWRidWcuYyBiL2NvbW1vbi9jbWRfYmVkYnVnLmMKaW5kZXggOTRmN2UwOC4uM2U1OTdmOSAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9iZWRidWcuYworKysgYi9jb21tb24vY21kX2JlZGJ1Zy5jCkBAIC0yMTgsNyArMjE4LDcgQEAKIAlpbnQgZmxhZzsJCS8qIENvbW1hbmQgZmxhZ3MgICAgICAgICAgKi8KIAlpbnQgcmMgPSAwOwkJLyogUmVzdWx0IGZyb20gcnVuX2NvbW1hbmQgKi8KIAljaGFyIHByb21wdF9zdHJbMjBdOwkvKiBQcm9tcHQgc3RyaW5nICAgICAgICAgICovCi0Jc3RhdGljIGNoYXIgbGFzdGNvbW1hbmRbQ0ZHX0NCU0laRV0gPSB7IDAgfTsJLyogcHJldmlvdXMgY29tbWFuZCAqLworCXN0YXRpYyBjaGFyIGxhc3Rjb21tYW5kW0NPTkZJR19TWVNfQ0JTSVpFXSA9IHsgMCB9OwkvKiBwcmV2aW91cyBjb21tYW5kICovCiAJLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogCWlmIChidWdfY3R4LmNsZWFyKQpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9ibXAuYyBiL2NvbW1vbi9jbWRfYm1wLmMKaW5kZXggMTk3ZTVlOC4uYmMwOGIyNiAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9ibXAuYworKysgYi9jb21tb24vY21kX2JtcC5jCkBAIC01NSwxOSArNTUsMTkgQEAKIAkvKgogCSAqIERlY29tcHJlc3MgYm1wIGltYWdlCiAJICovCi0JbGVuID0gQ0ZHX1ZJREVPX0xPR09fTUFYX1NJWkU7Ci0JZHN0ID0gbWFsbG9jKENGR19WSURFT19MT0dPX01BWF9TSVpFKTsKKwlsZW4gPSBDT05GSUdfU1lTX1ZJREVPX0xPR09fTUFYX1NJWkU7CisJZHN0ID0gbWFsbG9jKENPTkZJR19TWVNfVklERU9fTE9HT19NQVhfU0laRSk7CiAJaWYgKGRzdCA9PSBOVUxMKSB7CiAJCXB1dHMoIkVycm9yOiBtYWxsb2MgaW4gZ3VuemlwIGZhaWxlZCFcbiIpOwogCQlyZXR1cm4gTlVMTDsKIAl9Ci0JaWYgKGd1bnppcChkc3QsIENGR19WSURFT19MT0dPX01BWF9TSVpFLCAodWNoYXIgKilhZGRyLCAmbGVuKSAhPSAwKSB7CisJaWYgKGd1bnppcChkc3QsIENPTkZJR19TWVNfVklERU9fTE9HT19NQVhfU0laRSwgKHVjaGFyICopYWRkciwgJmxlbikgIT0gMCkgewogCQlmcmVlKGRzdCk7CiAJCXJldHVybiBOVUxMOwogCX0KLQlpZiAobGVuID09IENGR19WSURFT19MT0dPX01BWF9TSVpFKQorCWlmIChsZW4gPT0gQ09ORklHX1NZU19WSURFT19MT0dPX01BWF9TSVpFKQogCQlwdXRzKCJJbWFnZSBjb3VsZCBiZSB0cnVuY2F0ZWQiCi0JCQkJIiAoaW5jcmVhc2UgQ0ZHX1ZJREVPX0xPR09fTUFYX1NJWkUpIVxuIik7CisJCQkJIiAoaW5jcmVhc2UgQ09ORklHX1NZU19WSURFT19MT0dPX01BWF9TSVpFKSFcbiIpOwogCiAJYm1wID0gZHN0OwogCmRpZmYgLS1naXQgYS9jb21tb24vY21kX2Jvb3QuYyBiL2NvbW1vbi9jbWRfYm9vdC5jCmluZGV4IGQ4M2Y1YWYuLjYwMjRmZmUgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfYm9vdC5jCisrKyBiL2NvbW1vbi9jbWRfYm9vdC5jCkBAIC02Myw3ICs2Myw3IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiBVX0JPT1RfQ01EKAotCWdvLCBDRkdfTUFYQVJHUywgMSwJZG9fZ28sCisJZ28sIENPTkZJR19TWVNfTUFYQVJHUywgMSwJZG9fZ28sCiAJImdvICAgICAgLSBzdGFydCBhcHBsaWNhdGlvbiBhdCBhZGRyZXNzICdhZGRyJ1xuIiwKIAkiYWRkciBbYXJnIC4uLl1cbiAgICAtIHN0YXJ0IGFwcGxpY2F0aW9uIGF0IGFkZHJlc3MgJ2FkZHInXG4iCiAJIiAgICAgIHBhc3NpbmcgJ2FyZycgYXMgYXJndW1lbnRzXG4iCmRpZmYgLS1naXQgYS9jb21tb24vY21kX2Jvb3RtLmMgYi9jb21tb24vY21kX2Jvb3RtLmMKaW5kZXggODk3ZTlmNi4uMmE5YzU5ZiAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9ib290bS5jCisrKyBiL2NvbW1vbi9jbWRfYm9vdG0uYwpAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgPHVzYi5oPgogI2VuZGlmCiAKLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCiAjaW5jbHVkZSA8aHVzaC5oPgogI2VuZGlmCiAKQEAgLTYwLDggKzYwLDggQEAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCiBleHRlcm4gaW50IGd1bnppcCAodm9pZCAqZHN0LCBpbnQgZHN0bGVuLCB1bnNpZ25lZCBjaGFyICpzcmMsIHVuc2lnbmVkIGxvbmcgKmxlbnApOwotI2lmbmRlZiBDRkdfQk9PVE1fTEVOCi0jZGVmaW5lIENGR19CT09UTV9MRU4JMHg4MDAwMDAJLyogdXNlIDhNQnl0ZSBhcyBkZWZhdWx0IG1heCBndW56aXAgc2l6ZSAqLworI2lmbmRlZiBDT05GSUdfU1lTX0JPT1RNX0xFTgorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNX0xFTgkweDgwMDAwMAkvKiB1c2UgOE1CeXRlIGFzIGRlZmF1bHQgbWF4IGd1bnppcCBzaXplICovCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19CWklQMgpAQCAtMTE5LDcgKzExOSw3IEBACiBzdGF0aWMgYm9vdF9vc19mbiBkb19ib290bV9pbnRlZ3JpdHk7CiAjZW5kaWYKIAotdWxvbmcgbG9hZF9hZGRyID0gQ0ZHX0xPQURfQUREUjsJLyogRGVmYXVsdCBMb2FkIEFkZHJlc3MgKi8KK3Vsb25nIGxvYWRfYWRkciA9IENPTkZJR19TWVNfTE9BRF9BRERSOwkvKiBEZWZhdWx0IExvYWQgQWRkcmVzcyAqLwogc3RhdGljIGJvb3RtX2hlYWRlcnNfdCBpbWFnZXM7CQkvKiBwb2ludGVycyB0byBvcy9pbml0cmQvZmR0IGltYWdlcyAqLwogCiB2b2lkIF9fYm9hcmRfbG1iX3Jlc2VydmUoc3RydWN0IGxtYiAqbG1iKQpAQCAtMjg5LDcgKzI4OSw3IEBACiAJdWxvbmcgYmxvYl9lbmQgPSBvcy5lbmQ7CiAJdWxvbmcgaW1hZ2Vfc3RhcnQgPSBvcy5pbWFnZV9zdGFydDsKIAl1bG9uZyBpbWFnZV9sZW4gPSBvcy5pbWFnZV9sZW47Ci0JdWludCB1bmNfbGVuID0gQ0ZHX0JPT1RNX0xFTjsKKwl1aW50IHVuY19sZW4gPSBDT05GSUdfU1lTX0JPT1RNX0xFTjsKIAogCWNvbnN0IGNoYXIgKnR5cGVfbmFtZSA9IGdlbmltZ19nZXRfdHlwZV9uYW1lIChvcy50eXBlKTsKIApAQCAtMzI5LDcgKzMyOSw3IEBACiAJCSAqLwogCQlpbnQgaSA9IEJaMl9iekJ1ZmZUb0J1ZmZEZWNvbXByZXNzICgoY2hhciopbG9hZCwKIAkJCQkJJnVuY19sZW4sIChjaGFyICopaW1hZ2Vfc3RhcnQsIGltYWdlX2xlbiwKLQkJCQkJQ0ZHX01BTExPQ19MRU4gPCAoNDA5NiAqIDEwMjQpLCAwKTsKKwkJCQkJQ09ORklHX1NZU19NQUxMT0NfTEVOIDwgKDQwOTYgKiAxMDI0KSwgMCk7CiAJCWlmIChpICE9IEJaX09LKSB7CiAJCQlwcmludGYgKCJCVU5aSVAyOiB1bmNvbXByZXNzIG9yIG92ZXJ3cml0ZSBlcnJvciAlZCAiCiAJCQkJIi0gbXVzdCBSRVNFVCBib2FyZCB0byByZWNvdmVyXG4iLCBpKTsKQEAgLTc2Miw3ICs3NjIsNyBAQAogfQogCiBVX0JPT1RfQ01EKAotCWJvb3RtLAlDRkdfTUFYQVJHUywJMSwJZG9fYm9vdG0sCisJYm9vdG0sCUNPTkZJR19TWVNfTUFYQVJHUywJMSwJZG9fYm9vdG0sCiAJImJvb3RtICAgLSBib290IGFwcGxpY2F0aW9uIGltYWdlIGZyb20gbWVtb3J5XG4iLAogCSJbYWRkciBbYXJnIC4uLl1dXG4gICAgLSBib290IGFwcGxpY2F0aW9uIGltYWdlIHN0b3JlZCBpbiBtZW1vcnlcbiIKIAkiXHRwYXNzaW5nIGFyZ3VtZW50cyAnYXJnIC4uLic7IHdoZW4gYm9vdGluZyBhIExpbnV4IGtlcm5lbCxcbiIKQEAgLTc5Miw3ICs3OTIsNyBAQAogewogCWludCByY29kZSA9IDA7CiAKLSNpZm5kZWYgQ0ZHX0hVU0hfUEFSU0VSCisjaWZuZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKIAlpZiAocnVuX2NvbW1hbmQgKGdldGVudiAoImJvb3RjbWQiKSwgZmxhZykgPCAwKQogCQlyY29kZSA9IDE7CiAjZWxzZQpAQCAtODk2LDcgKzg5Niw3IEBACiB9CiAKIFVfQk9PVF9DTUQoCi0JaW1pbmZvLAlDRkdfTUFYQVJHUywJMSwJZG9faW1pbmZvLAorCWltaW5mbywJQ09ORklHX1NZU19NQVhBUkdTLAkxLAlkb19pbWluZm8sCiAJImltaW5mbyAgLSBwcmludCBoZWFkZXIgaW5mb3JtYXRpb24gZm9yIGFwcGxpY2F0aW9uIGltYWdlXG4iLAogCSJhZGRyIFthZGRyIC4uLl1cbiIKIAkiICAgIC0gcHJpbnQgaGVhZGVyIGluZm9ybWF0aW9uIGZvciBhcHBsaWNhdGlvbiBpbWFnZSBzdGFydGluZyBhdFxuIgpAQCAtOTE3LDcgKzkxNyw3IEBACiAJdm9pZCAqaGRyOwogCiAJZm9yIChpID0gMCwgaW5mbyA9ICZmbGFzaF9pbmZvWzBdOwotCQlpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpLCArK2luZm8pIHsKKwkJaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2ksICsraW5mbykgewogCiAJCWlmIChpbmZvLT5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKQogCQkJZ290byBuZXh0X2Jhbms7CmRpZmYgLS1naXQgYS9jb21tb24vY21kX2RhdGUuYyBiL2NvbW1vbi9jbWRfZGF0ZS5jCmluZGV4IGQ2Y2Q1NjUuLmI0ZDk2NDkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfZGF0ZS5jCisrKyBiL2NvbW1vbi9jbWRfZGF0ZS5jCkBAIC00Nyw3ICs0Nyw3IEBACiAKIAkvKiBzd2l0Y2ggdG8gY29ycmVjdCBJMkMgYnVzICovCiAJb2xkX2J1cyA9IEkyQ19HRVRfQlVTKCk7Ci0JSTJDX1NFVF9CVVMoQ0ZHX1JUQ19CVVNfTlVNKTsKKwlJMkNfU0VUX0JVUyhDT05GSUdfU1lTX1JUQ19CVVNfTlVNKTsKIAogCXN3aXRjaCAoYXJnYykgewogCWNhc2UgMjoJCQkvKiBzZXQgZGF0ZSAmIHRpbWUgKi8KZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfZGlhZy5jIGIvY29tbW9uL2NtZF9kaWFnLmMKaW5kZXggODJkNWFkMy4uMTNkNDIyNSAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9kaWFnLmMKKysrIGIvY29tbW9uL2NtZF9kaWFnLmMKQEAgLTY1LDcgKzY1LDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIFVfQk9PVF9DTUQoCi0JZGlhZywJQ0ZHX01BWEFSR1MsCTAsCWRvX2RpYWcsCisJZGlhZywJQ09ORklHX1NZU19NQVhBUkdTLAkwLAlkb19kaWFnLAogCSJkaWFnICAgIC0gcGVyZm9ybSBib2FyZCBkaWFnbm9zdGljc1xuIiwKIAkgICAgICIgICAgLSBwcmludCBsaXN0IG9mIGF2YWlsYWJsZSB0ZXN0c1xuIgogCSJkaWFnIFt0ZXN0MSBbdGVzdDJdXVxuIgpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9kaXNwbGF5LmMgYi9jb21tb24vY21kX2Rpc3BsYXkuYwppbmRleCBhMjkzNDVjLi45ODJlMDlkIDEwMDY0NAotLS0gYS9jb21tb24vY21kX2Rpc3BsYXkuYworKysgYi9jb21tb24vY21kX2Rpc3BsYXkuYwpAQCAtMzYsNyArMzYsNyBAQAogCWludCBwb3M7CiAKIAkvKiBDbGVhciBkaXNwbGF5ICovCi0JKigodm9sYXRpbGUgY2hhciopKENGR19ESVNQX0NXT1JEKSkgPSBDV09SRF9DTEVBUjsKKwkqKCh2b2xhdGlsZSBjaGFyKikoQ09ORklHX1NZU19ESVNQX0NXT1JEKSkgPSBDV09SRF9DTEVBUjsKIAl1ZGVsYXkoMTAwMCAqIENMRUFSX0RFTEFZKTsKIAogCWlmIChhcmdjIDwgMikKQEAgLTQ2LDE0ICs0NiwxNCBAQAogCQljaGFyICpwID0gYXJndltpXSwgYzsKIAogCQlpZiAoaSA+IDEpIHsKLQkJCSooKHZvbGF0aWxlIHVjaGFyICopIChDRkdfRElTUF9DSFJfUkFNICsgcG9zKyspKSA9ICcgJzsKKwkJCSooKHZvbGF0aWxlIHVjaGFyICopIChDT05GSUdfU1lTX0RJU1BfQ0hSX1JBTSArIHBvcysrKSkgPSAnICc7CiAjaWZkZWYgREVCVUdfRElTUAogCQkJcHV0YygnICcpOwogI2VuZGlmCiAJCX0KIAogCQl3aGlsZSAoKGMgPSAqcCsrKSAhPSAnXDAnICYmIHBvcyA8IERJU1BfU0laRSkgewotCQkJKigodm9sYXRpbGUgdWNoYXIgKikgKENGR19ESVNQX0NIUl9SQU0gKyBwb3MrKykpID0gYzsKKwkJCSooKHZvbGF0aWxlIHVjaGFyICopIChDT05GSUdfU1lTX0RJU1BfQ0hSX1JBTSArIHBvcysrKSkgPSBjOwogI2lmZGVmIERFQlVHX0RJU1AKIAkJCXB1dGMoYyk7CiAjZW5kaWYKQEAgLTcwLDcgKzcwLDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIFVfQk9PVF9DTUQoCi0JZGlzcGxheSwJQ0ZHX01BWEFSR1MsCTEsCWRvX2Rpc3BsYXksCisJZGlzcGxheSwJQ09ORklHX1NZU19NQVhBUkdTLAkxLAlkb19kaXNwbGF5LAogCSJkaXNwbGF5LSBkaXNwbGF5IHN0cmluZyBvbiBkb3QgbWF0cml4IGRpc3BsYXlcbiIsCiAJIls8c3RyaW5nPl1cbiIKIAkiICAgIC0gd2l0aCA8c3RyaW5nPiBhcmd1bWVudDogZGlzcGxheSA8c3RyaW5nPiBvbiBkb3QgbWF0cml4IGRpc3BsYXlcbiIKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfZG9jLmMgYi9jb21tb24vY21kX2RvYy5jCmluZGV4IGE1NWNhNDEuLjAyNTAyY2MgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfZG9jLmMKKysrIGIvY29tbW9uL2NtZF9kb2MuYwpAQCAtMjAsMTkgKzIwLDE5IEBACiAgKiBUT0RPOiBtdXN0IGJlIGltcGxlbWVudGVkIGFuZCB0ZXN0ZWQgYnkgc29tZW9uZSB3aXRoIEhXCiAgKi8KICNpZiAwCi0jaWZkZWYgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKKyNpZmRlZiBDT05GSUdfU1lTX0RPQ19TVVBQT1JUXzIwMDAKICNkZWZpbmUgRG9DX2lzXzIwMDAoZG9jKSAoZG9jLT5DaGlwSUQgPT0gRE9DX0NoaXBJRF9Eb2MyaykKICNlbHNlCiAjZGVmaW5lIERvQ19pc18yMDAwKGRvYykgKDApCiAjZW5kaWYKIAotI2lmZGVmIENGR19ET0NfU1VQUE9SVF9NSUxMRU5OSVVNCisjaWZkZWYgQ09ORklHX1NZU19ET0NfU1VQUE9SVF9NSUxMRU5OSVVNCiAjZGVmaW5lIERvQ19pc19NaWxsZW5uaXVtKGRvYykgKGRvYy0+Q2hpcElEID09IERPQ19DaGlwSURfRG9jTWlsKQogI2Vsc2UKICNkZWZpbmUgRG9DX2lzX01pbGxlbm5pdW0oZG9jKSAoMCkKICNlbmRpZgogCi0vKiBDRkdfRE9DX1BBU1NJVkVfUFJPQkU6CisvKiBDT05GSUdfU1lTX0RPQ19QQVNTSVZFX1BST0JFOgogICAgSW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGhlIEJJT1MgY2hlY2tzdW0gaXMgY29ycmVjdCBhdCBib290IHRpbWUsIGFuZAogICAgaGVuY2UgdGhhdCB0aGUgb25ib2FyZCBCSU9TIGV4dGVuc2lvbiBnZXRzIGV4ZWN1dGVkLCB0aGUgRGlza09uQ2hpcAogICAgZ29lcyBpbnRvIHJlc2V0IG1vZGUgd2hlbiBpdCBpcyByZWFkIHNlcXVlbnRpYWxseTogYWxsIHJlZ2lzdGVycwpAQCAtNDgsNyArNDgsNyBAQAogICAgdGhlIG1hY2hpbmUuCiAKICAgIElmIHlvdSBoYXZlIHRoaXMgcHJvYmxlbSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZToKLSNkZWZpbmUgQ0ZHX0RPQ19QQVNTSVZFX1BST0JFCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1BBU1NJVkVfUFJPQkUKICovCiAKICN1bmRlZglET0NfREVCVUcKQEAgLTU2LDcgKzU2LDcgQEAKICN1bmRlZglQU1lDSE9fREVCVUcKICN1bmRlZglORlRMX0RFQlVHCiAKLXN0YXRpYyBzdHJ1Y3QgRGlza09uQ2hpcCBkb2NfZGV2X2Rlc2NbQ0ZHX01BWF9ET0NfREVWSUNFXTsKK3N0YXRpYyBzdHJ1Y3QgRGlza09uQ2hpcCBkb2NfZGV2X2Rlc2NbQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRV07CiAKIC8qIEN1cnJlbnQgRE9DIERldmljZQkqLwogc3RhdGljIGludCBjdXJyX2RldmljZSA9IC0xOwpAQCAtMTA0LDcgKzEwNCw3IEBACiAKIAkJcHV0YyAoJ1xuJyk7CiAKLQkJZm9yIChpPTA7IGk8Q0ZHX01BWF9ET0NfREVWSUNFOyArK2kpIHsKKwkJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRE9DX0RFVklDRTsgKytpKSB7CiAJCQlpZihkb2NfZGV2X2Rlc2NbaV0uQ2hpcElEID09IERPQ19DaGlwSURfVU5LTk9XTikKIAkJCQljb250aW51ZTsgLyogbGlzdCBvbmx5IGtub3duIGRldmljZXMgKi8KIAkJCXByaW50ZiAoIkRldmljZSAlZDogIiwgaSk7CkBAIC0xMTMsNyArMTEzLDcgQEAKIAkJcmV0dXJuIDA7CiAKIAl9IGVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCJkZXZpY2UiKSA9PSAwKSB7Ci0JCWlmICgoY3Vycl9kZXZpY2UgPCAwKSB8fCAoY3Vycl9kZXZpY2UgPj0gQ0ZHX01BWF9ET0NfREVWSUNFKSkgeworCQlpZiAoKGN1cnJfZGV2aWNlIDwgMCkgfHwgKGN1cnJfZGV2aWNlID49IENPTkZJR19TWVNfTUFYX0RPQ19ERVZJQ0UpKSB7CiAJCQlwdXRzICgiXG5ubyBkZXZpY2VzIGF2YWlsYWJsZVxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtMTI4LDcgKzEyOCw3IEBACiAJCWludCBkZXYgPSAoaW50KXNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMl0sIE5VTEwsIDEwKTsKIAogCQlwcmludGYgKCJcbkRldmljZSAlZDogIiwgZGV2KTsKLQkJaWYgKGRldiA+PSBDRkdfTUFYX0RPQ19ERVZJQ0UpIHsKKwkJaWYgKGRldiA+PSBDT05GSUdfU1lTX01BWF9ET0NfREVWSUNFKSB7CiAJCQlwdXRzICgidW5rbm93biBkZXZpY2VcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTIxOCw3ICsyMTgsNyBAQAogCXNob3dfYm9vdF9wcm9ncmVzcyAoMzQpOwogCXN3aXRjaCAoYXJnYykgewogCWNhc2UgMToKLQkJYWRkciA9IENGR19MT0FEX0FERFI7CisJCWFkZHIgPSBDT05GSUdfU1lTX0xPQURfQUREUjsKIAkJYm9vdF9kZXZpY2UgPSBnZXRlbnYgKCJib290ZGV2aWNlIik7CiAJCWJyZWFrOwogCWNhc2UgMjoKQEAgLTI1MCw3ICsyNTAsNyBAQAogCiAJZGV2ID0gc2ltcGxlX3N0cnRvdWwoYm9vdF9kZXZpY2UsICZlcCwgMTYpOwogCi0JaWYgKChkZXYgPj0gQ0ZHX01BWF9ET0NfREVWSUNFKSB8fAorCWlmICgoZGV2ID49IENPTkZJR19TWVNfTUFYX0RPQ19ERVZJQ0UpIHx8CiAJICAgIChkb2NfZGV2X2Rlc2NbZGV2XS5DaGlwSUQgPT0gRE9DX0NoaXBJRF9VTktOT1dOKSkgewogCQlwcmludGYgKCJcbioqIERldmljZSAlZCBub3QgYXZhaWxhYmxlXG4iLCBkZXYpOwogCQlzaG93X2Jvb3RfcHJvZ3Jlc3MgKC0zNyk7CkBAIC00MzksNyArNDM5LDcgQEAKIAogCS8qIE91dC1vZi1saW5lIHJvdXRpbmUgdG8gd2FpdCBmb3IgY2hpcCByZXNwb25zZSAqLwogCXdoaWxlICghKFJlYWRET0MoZG9jcHRyLCBDRFNOQ29udHJvbCkgJiBDRFNOX0NUUkxfRlJfQikpIHsKLSNpZmRlZiBDRkdfRE9DX1NIT1JUX1RJTUVPVVQKKyNpZmRlZiBDT05GSUdfU1lTX0RPQ19TSE9SVF9USU1FT1VUCiAJCS8qIGl0IHNlZW1zIHRoYXQgYWZ0ZXIgYSBjZXJ0YWluIHRpbWUgdGhlIERvQyBkZWFzc2VydHMKIAkJICogdGhlIENEU05fQ1RSTF9GUl9CIGFsdGhvdWdoIGl0IGlzIG5vdCByZWFkeS4uLgogCQkgKiB1c2luZyBhIHNob3J0IHRpbW91dCBzb2x2ZSB0aGlzICh0aW1lciBpbmNyZW1lbnRzIGV2ZXJ5IG1zKSAqLwpAQCAtMTUyNSwxMiArMTUyNSwxMiBAQAogCiAJLyogUm91dGluZSBjb3BpZWQgZnJvbSB0aGUgTGludXggRE9DIGRyaXZlciAqLwogCi0jaWZkZWYgQ0ZHX0RPQ1BST0JFXzU1QUEKKyNpZmRlZiBDT05GSUdfU1lTX0RPQ1BST0JFXzU1QUEKIAkvKiBDaGVjayBmb3IgMHg1NSAweEFBIHNpZ25hdHVyZSBhdCBiZWdpbm5pbmcgb2Ygd2luZG93LAogCSAgIHRoaXMgaXMgbm8gbG9uZ2VyIHRydWUgb25jZSB3ZSByZW1vdmUgdGhlIElQTCAoZm9yIE1pbGxlbm5pdW0gKi8KIAlpZiAoUmVhZERPQyh3aW5kb3csIFNpZzEpICE9IDB4NTUgfHwgUmVhZERPQyh3aW5kb3csIFNpZzIpICE9IDB4YWEpCiAJCXJldHVybiAwOwotI2VuZGlmIC8qIENGR19ET0NQUk9CRV81NUFBICovCisjZW5kaWYgLyogQ09ORklHX1NZU19ET0NQUk9CRV81NUFBICovCiAKICNpZm5kZWYgRE9DX1BBU1NJVkVfUFJPQkUKIAkvKiBJdCdzIG5vdCBwb3NzaWJsZSB0byBjbGVhbmx5IGRldGVjdCB0aGUgRGlza09uQ2hpcCAtIHRoZQpAQCAtMTU3NCw3ICsxNTc0LDcgQEAKIAkJYnJlYWs7CiAKIAlkZWZhdWx0OgotI2lmbmRlZiBDRkdfRE9DUFJPQkVfNTVBQQorI2lmbmRlZiBDT05GSUdfU1lTX0RPQ1BST0JFXzU1QUEKIC8qCiAgKiBpZiB0aGUgSUQgaXNuJ3QgdGhlIERvQzIwMDAgb3IgRG9DTWlsbGVuaXVtIElELCBzbyB3ZSBjYW4gYXNzdW1lCiAgKiB0aGUgRE9DIGlzIG1pc3NpbmcKQEAgLTE2MDksNyArMTYwOSw3IEBACiAKIAlpZiAoKENoaXBJRCA9IGRvY2NoZWNrKHBoeXNhZHIsIHBoeXNhZHIpKSkgewogCi0JCWZvciAoaT0wOyBpPENGR19NQVhfRE9DX0RFVklDRTsgaSsrKSB7CisJCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0RPQ19ERVZJQ0U7IGkrKykgewogCQkJaWYgKGRvY19kZXZfZGVzY1tpXS5DaGlwSUQgPT0gRE9DX0NoaXBJRF9VTktOT1dOKSB7CiAJCQkJdGhpcyA9IGRvY19kZXZfZGVzYyArIGk7CiAJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9jb21tb24vY21kX2R0dC5jIGIvY29tbW9uL2NtZF9kdHQuYwppbmRleCA5NTZkYzY5Li5jNWIxZDRkIDEwMDY0NAotLS0gYS9jb21tb24vY21kX2R0dC5jCisrKyBiL2NvbW1vbi9jbWRfZHR0LmMKQEAgLTM2LDcgKzM2LDcgQEAKIAogCS8qIHN3aXRjaCB0byBjb3JyZWN0IEkyQyBidXMgKi8KIAlvbGRfYnVzID0gSTJDX0dFVF9CVVMoKTsKLQlJMkNfU0VUX0JVUyhDRkdfRFRUX0JVU19OVU0pOworCUkyQ19TRVRfQlVTKENPTkZJR19TWVNfRFRUX0JVU19OVU0pOwogCiAJLyoKIAkgKiBMb29wIHRocm91Z2ggc2Vuc29ycywgcmVhZApkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9lZXByb20uYyBiL2NvbW1vbi9jbWRfZWVwcm9tLmMKaW5kZXggNDRkNDRmZS4uMjQ1MWJlZiAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9lZXByb20uYworKysgYi9jb21tb24vY21kX2VlcHJvbS5jCkBAIC0zMiw4ICszMiw4IEBACiAgKiBVc2UgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gZW5zdXJlIG5vIHVubmVlZGVkIHBlcmZvcm1hbmNlCiAgKiBkZWdyYWRhdGlvbiAodHlwaWNhbCBmb3IgRUVQUk9NKSBpcyBpbmN1cmVkIGZvciBGUkFNIG1lbW9yeToKICAqCi0gKiAjZGVmaW5lIENGR19JMkNfRlJBTQotICogI3VuZGVmIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUworICogI2RlZmluZSBDT05GSUdfU1lTX0kyQ19GUkFNCisgKiAjdW5kZWYgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwogICoKICAqLwogCkBAIC00NywxMiArNDcsMTIgQEAKIAkJCSAgdWNoYXIgKmJ1ZmZlciwgdW5zaWduZWQgY250KTsKIGV4dGVybiBpbnQgIGVlcHJvbV93cml0ZSAodW5zaWduZWQgZGV2X2FkZHIsIHVuc2lnbmVkIG9mZnNldCwKIAkJCSAgdWNoYXIgKmJ1ZmZlciwgdW5zaWduZWQgY250KTsKLSNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pCiBleHRlcm4gaW50IGVlcHJvbV93cml0ZV9lbmFibGUgKHVuc2lnbmVkIGRldl9hZGRyLCBpbnQgc3RhdGUpOwogI2VuZGlmCiAKIAotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9YNDA0MzApCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9YNDA0MzApCiAJLyogTWF4aW11bSBudW1iZXIgb2YgdGltZXMgdG8gcG9sbCBmb3IgYWNrbm93bGVkZ2UgYWZ0ZXIgd3JpdGUgKi8KICNkZWZpbmUgTUFYX0FDS05PV0xFREdFX1BPTExTCTEwCiAjZW5kaWYKQEAgLTY1LDcgKzY1LDcgQEAKIAljb25zdCBjaGFyICpjb25zdCBmbXQgPQogCQkiXG5FRVBST00gQDB4JWxYICVzOiBhZGRyICUwOGx4ICBvZmYgJTA0bHggIGNvdW50ICVsZCAuLi4gIjsKIAotI2lmIGRlZmluZWQoQ0ZHX0kyQ19NVUxUSV9FRVBST01TKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUykKIAlpZiAoYXJnYyA9PSA2KSB7CiAJCXVsb25nIGRldl9hZGRyID0gc2ltcGxlX3N0cnRvdWwgKGFyZ3ZbMl0sIE5VTEwsIDE2KTsKIAkJdWxvbmcgYWRkciA9IHNpbXBsZV9zdHJ0b3VsIChhcmd2WzNdLCBOVUxMLCAxNik7CkBAIC03MywxMSArNzMsMTEgQEAKIAkJdWxvbmcgY250ICA9IHNpbXBsZV9zdHJ0b3VsIChhcmd2WzVdLCBOVUxMLCAxNik7CiAjZWxzZQogCWlmIChhcmdjID09IDUpIHsKLQkJdWxvbmcgZGV2X2FkZHIgPSBDRkdfREVGX0VFUFJPTV9BRERSOworCQl1bG9uZyBkZXZfYWRkciA9IENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSOwogCQl1bG9uZyBhZGRyID0gc2ltcGxlX3N0cnRvdWwgKGFyZ3ZbMl0sIE5VTEwsIDE2KTsKIAkJdWxvbmcgb2ZmICA9IHNpbXBsZV9zdHJ0b3VsIChhcmd2WzNdLCBOVUxMLCAxNik7CiAJCXVsb25nIGNudCAgPSBzaW1wbGVfc3RydG91bCAoYXJndls0XSwgTlVMTCwgMTYpOwotI2VuZGlmIC8qIENGR19JMkNfTVVMVElfRUVQUk9NUyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMgKi8KIAogIyBpZm5kZWYgQ09ORklHX1NQSQogCQllZXByb21faW5pdCAoKTsKQEAgLTExMSwxNiArMTExLDE2IEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCi0gKiBmb3IgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gPT0gMiAoMTYtYml0IEVFUFJPTSBhZGRyZXNzKSBvZmZzZXQgaXMKKyAqIGZvciBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gPT0gMiAoMTYtYml0IEVFUFJPTSBhZGRyZXNzKSBvZmZzZXQgaXMKICAqICAgMHgwMDBueHh4eCBmb3IgRUVQUk9NIGFkZHJlc3Mgc2VsZWN0b3JzIGF0IG4sIG9mZnNldCB4eHh4IGluIEVFUFJPTS4KICAqCi0gKiBmb3IgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gPT0gMSAoOC1iaXQgRUVQUk9NIHBhZ2UgYWRkcmVzcykgb2Zmc2V0IGlzCisgKiBmb3IgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOID09IDEgKDgtYml0IEVFUFJPTSBwYWdlIGFkZHJlc3MpIG9mZnNldCBpcwogICogICAweDAwMDAwbnh4IGZvciBFRVBST00gYWRkcmVzcyBzZWxlY3RvcnMgYW5kIHBhZ2UgbnVtYmVyIGF0IG4uCiAgKi8KIAogI2lmbmRlZiBDT05GSUdfU1BJCi0jaWYgIWRlZmluZWQoQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4pIHx8IENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDwgMSB8fCBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiA+IDIKLSNlcnJvciBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiBtdXN0IGJlIDEgb3IgMgorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTikgfHwgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDwgMSB8fCBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gPiAyCisjZXJyb3IgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIG11c3QgYmUgMSBvciAyCiAjZW5kaWYKICNlbmRpZgogCkBAIC0xMzYsMTEgKzEzNiwxMSBAQAogCSAqLwogCXdoaWxlIChvZmZzZXQgPCBlbmQpIHsKIAkJdW5zaWduZWQgYWxlbiwgbGVuOwotI2lmICFkZWZpbmVkKENGR19JMkNfRlJBTSkKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX0kyQ19GUkFNKQogCQl1bnNpZ25lZCBtYXhsZW47CiAjZW5kaWYKIAotI2lmIENGR19JMkNfRUVQUk9NX0FERFJfTEVOID09IDEgJiYgIWRlZmluZWQoQ09ORklHX1NQSV9YKQorI2lmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiA9PSAxICYmICFkZWZpbmVkKENPTkZJR19TUElfWCkKIAkJdWNoYXIgYWRkclsyXTsKIAogCQlibGtfb2ZmID0gb2Zmc2V0ICYgMHhGRjsJLyogYmxvY2sgb2Zmc2V0ICovCkBAIC0xNTcsNyArMTU3LDcgQEAKIAkJYWRkclsxXSA9IG9mZnNldCA+PiAgODsJCS8qIHVwcGVyIGFkZHJlc3Mgb2N0ZXQgKi8KIAkJYWRkclsyXSA9IGJsa19vZmY7CQkvKiBsb3dlciBhZGRyZXNzIG9jdGV0ICovCiAJCWFsZW4JPSAzOwotI2VuZGlmCS8qIENGR19JMkNfRUVQUk9NX0FERFJfTEVOLCBDT05GSUdfU1BJX1ggKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4sIENPTkZJR19TUElfWCAqLwogCiAJCWFkZHJbMF0gfD0gZGV2X2FkZHI7CQkvKiBpbnNlcnQgZGV2aWNlIGFkZHJlc3MgKi8KIApAQCAtMTY4LDcgKzE2OCw3IEBACiAJCSAqIGJ5dGVzIHRoYXQgY2FuIGJlIGNjZXNzZWQgd2l0aCB0aGUgc2luZ2xlIHJlYWQgb3Igd3JpdGUKIAkJICogb3BlcmF0aW9uLgogCQkgKi8KLSNpZiAhZGVmaW5lZChDRkdfSTJDX0ZSQU0pCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19JMkNfRlJBTSkKIAkJbWF4bGVuID0gMHgxMDAgLSBibGtfb2ZmOwogCQlpZiAobWF4bGVuID4gSTJDX1JYVFhfTEVOKQogCQkJbWF4bGVuID0gSTJDX1JYVFhfTEVOOwpAQCAtMTkxLDEwICsxOTEsMTAgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIGZvciBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiA9PSAyICgxNi1iaXQgRUVQUk9NIGFkZHJlc3MpIG9mZnNldCBpcworICogZm9yIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiA9PSAyICgxNi1iaXQgRUVQUk9NIGFkZHJlc3MpIG9mZnNldCBpcwogICogICAweDAwMG54eHh4IGZvciBFRVBST00gYWRkcmVzcyBzZWxlY3RvcnMgYXQgbiwgb2Zmc2V0IHh4eHggaW4gRUVQUk9NLgogICoKLSAqIGZvciBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiA9PSAxICg4LWJpdCBFRVBST00gcGFnZSBhZGRyZXNzKSBvZmZzZXQgaXMKKyAqIGZvciBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gPT0gMSAoOC1iaXQgRUVQUk9NIHBhZ2UgYWRkcmVzcykgb2Zmc2V0IGlzCiAgKiAgIDB4MDAwMDBueHggZm9yIEVFUFJPTSBhZGRyZXNzIHNlbGVjdG9ycyBhbmQgcGFnZSBudW1iZXIgYXQgbi4KICAqLwogCkBAIC0yMDQsNyArMjA0LDcgQEAKIAl1bnNpZ25lZCBibGtfb2ZmOwogCWludCByY29kZSA9IDA7CiAKLSNpZiBkZWZpbmVkKENGR19FRVBST01fWDQwNDMwKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fWDQwNDMwKQogCXVjaGFyCWNvbnRyX3JfYWRkclsyXTsKIAl1Y2hhcglhZGRyX3ZvaWRbMl07CiAJdWNoYXIJY29udHJfcmVnWzJdOwpAQCAtMjEyLDcgKzIxMiw3IEBACiAJaW50CWk7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9XUkVOKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikKIAllZXByb21fd3JpdGVfZW5hYmxlIChkZXZfYWRkciwxKTsKICNlbmRpZgogCS8qIFdyaXRlIGRhdGEgdW50aWwgZG9uZSBvciB3b3VsZCBjcm9zcyBhIHdyaXRlIHBhZ2UgYm91bmRhcnkuCkBAIC0yMjIsMTEgKzIyMiwxMSBAQAogCiAJd2hpbGUgKG9mZnNldCA8IGVuZCkgewogCQl1bnNpZ25lZCBhbGVuLCBsZW47Ci0jaWYgIWRlZmluZWQoQ0ZHX0kyQ19GUkFNKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfSTJDX0ZSQU0pCiAJCXVuc2lnbmVkIG1heGxlbjsKICNlbmRpZgogCi0jaWYgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gPT0gMSAmJiAhZGVmaW5lZChDT05GSUdfU1BJX1gpCisjaWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOID09IDEgJiYgIWRlZmluZWQoQ09ORklHX1NQSV9YKQogCQl1Y2hhciBhZGRyWzJdOwogCiAJCWJsa19vZmYgPSBvZmZzZXQgJiAweEZGOwkvKiBibG9jayBvZmZzZXQgKi8KQEAgLTI0Myw3ICsyNDMsNyBAQAogCQlhZGRyWzFdID0gb2Zmc2V0ID4+ICA4OwkJLyogdXBwZXIgYWRkcmVzcyBvY3RldCAqLwogCQlhZGRyWzJdID0gYmxrX29mZjsJCS8qIGxvd2VyIGFkZHJlc3Mgb2N0ZXQgKi8KIAkJYWxlbgk9IDM7Ci0jZW5kaWYJLyogQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4sIENPTkZJR19TUElfWCAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiwgQ09ORklHX1NQSV9YICovCiAKIAkJYWRkclswXSB8PSBkZXZfYWRkcjsJCS8qIGluc2VydCBkZXZpY2UgYWRkcmVzcyAqLwogCkBAIC0yNTQsMTEgKzI1NCwxMSBAQAogCQkgKiBieXRlcyB0aGF0IGNhbiBiZSBjY2Vzc2VkIHdpdGggdGhlIHNpbmdsZSByZWFkIG9yIHdyaXRlCiAJCSAqIG9wZXJhdGlvbi4KIAkJICovCi0jaWYgIWRlZmluZWQoQ0ZHX0kyQ19GUkFNKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfSTJDX0ZSQU0pCiAKLSNpZiBkZWZpbmVkKENGR19FRVBST01fUEFHRV9XUklURV9CSVRTKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTKQogCi0jZGVmaW5lCUVFUFJPTV9QQUdFX1NJWkUJKDEgPDwgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMpCisjZGVmaW5lCUVFUFJPTV9QQUdFX1NJWkUJKDEgPDwgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTKQogI2RlZmluZQlFRVBST01fUEFHRV9PRkZTRVQoeCkJKCh4KSAmIChFRVBST01fUEFHRV9TSVpFIC0gMSkpCiAKIAkJbWF4bGVuID0gRUVQUk9NX1BBR0VfU0laRSAtIEVFUFJPTV9QQUdFX09GRlNFVChibGtfb2ZmKTsKQEAgLTI3NSw3ICsyNzUsNyBAQAogI2lmZGVmIENPTkZJR19TUEkKIAkJc3BpX3dyaXRlIChhZGRyLCBhbGVuLCBidWZmZXIsIGxlbik7CiAjZWxzZQotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9YNDA0MzApCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9YNDA0MzApCiAJCS8qIEdldCB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2wgcmVnaXN0ZXIuCiAJCSAqIFNldCBjdXJyZW50IGFkZHJlc3MgKGludGVybmFsIHBvaW50ZXIgaW4gdGhlIHg0MDQzMCkKIAkJICogdG8gMHgxZmYuCkBAIC0yODQsOSArMjg0LDkgQEAKIAkJY29udHJfcl9hZGRyWzFdID0gMHhmZjsKIAkJYWRkcl92b2lkWzBdICAgID0gMDsKIAkJYWRkcl92b2lkWzFdICAgID0gYWRkclsxXTsKLSNpZmRlZiBDRkdfSTJDX0VFUFJPTV9BRERSCi0JCWNvbnRyX3JfYWRkclswXSB8PSBDRkdfSTJDX0VFUFJPTV9BRERSOwotCQlhZGRyX3ZvaWRbMF0gICAgfD0gQ0ZHX0kyQ19FRVBST01fQUREUjsKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgorCQljb250cl9yX2FkZHJbMF0gfD0gQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFI7CisJCWFkZHJfdm9pZFswXSAgICB8PSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUjsKICNlbmRpZgogCQljb250cl9yZWdbMF0gPSAweGZmOwogCQlpZiAoaTJjX3JlYWQgKGNvbnRyX3JfYWRkclswXSwgY29udHJfcl9hZGRyWzFdLCAxLCBjb250cl9yZWcsIDEpICE9IDApIHsKQEAgLTMzNCw4ICszMzQsOCBAQAogCQkJZm9yIChpID0gMDsgaSA8IE1BWF9BQ0tOT1dMRURHRV9QT0xMUzsgaSsrKSB7CiAJCQkJaWYgKGkyY19yZWFkIChhZGRyX3ZvaWRbMF0sIGFkZHJfdm9pZFsxXSwgMSwgY29udHJfcmVnLCAxKSA9PSAwKQogCQkJCQlicmVhazsJLyogZ290IGFjayAqLwotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TKQotCQkJCXVkZWxheShDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgKiAxMDAwKTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMpCisJCQkJdWRlbGF5KENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgKiAxMDAwKTsKICNlbmRpZgogCQkJfQogCQkJaWYgKGkgPT0gTUFYX0FDS05PV0xFREdFX1BPTExTKSB7CkBAIC0zNjQsMTEgKzM2NCwxMSBAQAogCQlidWZmZXIgKz0gbGVuOwogCQlvZmZzZXQgKz0gbGVuOwogCi0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMpCi0JCXVkZWxheShDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgKiAxMDAwKTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMpCisJCXVkZWxheShDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TICogMTAwMCk7CiAjZW5kaWYKIAl9Ci0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9XUkVOKQogCWVlcHJvbV93cml0ZV9lbmFibGUgKGRldl9hZGRyLDApOwogI2VuZGlmCiAJcmV0dXJuIHJjb2RlOwpAQCAtMzgyLDExICszODIsMTEgQEAKIAogCS8qIFByb2JlIHRoZSBjaGlwIGFkZHJlc3MKIAkgKi8KLSNpZiBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiA9PSAxICYmICFkZWZpbmVkKENPTkZJR19TUElfWCkKKyNpZiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gPT0gMSAmJiAhZGVmaW5lZChDT05GSUdfU1BJX1gpCiAJY2hpcCA9IG9mZnNldCA+PiA4OwkJLyogYmxvY2sgbnVtYmVyICovCiAjZWxzZQogCWNoaXAgPSBvZmZzZXQgPj4gMTY7CQkvKiBibG9jayBudW1iZXIgKi8KLSNlbmRpZgkvKiBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiwgQ09ORklHX1NQSV9YICovCisjZW5kaWYJLyogQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOLCBDT05GSUdfU1BJX1ggKi8KIAogCWNoaXAgfD0gZGV2X2FkZHI7CQkvKiBpbnNlcnQgZGV2aWNlIGFkZHJlc3MgKi8KIApAQCAtMzk3LDEyICszOTcsMTIgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNldCBkZWZhdWx0IHZhbHVlcwogICovCi0jaWZuZGVmCUNGR19JMkNfU1BFRUQKLSNkZWZpbmUJQ0ZHX0kyQ19TUEVFRAk1MDAwMAorI2lmbmRlZglDT05GSUdfU1lTX0kyQ19TUEVFRAorI2RlZmluZQlDT05GSUdfU1lTX0kyQ19TUEVFRAk1MDAwMAogI2VuZGlmCiAKLSNpZm5kZWYJQ0ZHX0kyQ19TTEFWRQotI2RlZmluZQlDRkdfSTJDX1NMQVZFCTB4RkUKKyNpZm5kZWYJQ09ORklHX1NZU19JMkNfU0xBVkUKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfU0xBVkUJMHhGRQogI2VuZGlmCiAKIHZvaWQgZWVwcm9tX2luaXQgICh2b2lkKQpAQCAtNDEyLDcgKzQxMiw3IEBACiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19IQVJEX0kyQykgfHwgXAogICAgIGRlZmluZWQoQ09ORklHX1NPRlRfSTJDKQotCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKICNlbmRpZgogfQogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDIyLDcgKzQyMiw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfRUVQUk9NKQogCi0jaWZkZWYgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCisjaWZkZWYgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUwogVV9CT09UX0NNRCgKIAllZXByb20sCTYsCTEsCWRvX2VlcHJvbSwKIAkiZWVwcm9tICAtIEVFUFJPTSBzdWItc3lzdGVtXG4iLApAQCAtNDM4LDYgKzQzOCw2IEBACiAJImVlcHJvbSB3cml0ZSBhZGRyIG9mZiBjbnRcbiIKIAkiICAgICAgIC0gcmVhZC93cml0ZSBgY250JyBieXRlcyBhdCBFRVBST00gb2Zmc2V0IGBvZmYnXG4iCiApOwotI2VuZGlmIC8qIENGR19JMkNfTVVMVElfRUVQUk9NUyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMgKi8KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9jb21tb24vY21kX2VsZi5jIGIvY29tbW9uL2NtZF9lbGYuYwppbmRleCA2MmU1ZTc2Li4zZWJiNmQ5IDEwMDY0NAotLS0gYS9jb21tb24vY21kX2VsZi5jCisrKyBiL2NvbW1vbi9jbWRfZWxmLmMKQEAgLTE5LDcgKzE5LDcgQEAKICNpbmNsdWRlIDxuZXQuaD4KICNpbmNsdWRlIDxlbGYuaD4KIAotI2lmIGRlZmluZWQoQ09ORklHX1dBTE5VVCkgfHwgZGVmaW5lZChDRkdfVlhXT1JLU19NQUNfUFRSKQorI2lmIGRlZmluZWQoQ09ORklHX1dBTE5VVCkgfHwgZGVmaW5lZChDT05GSUdfU1lTX1ZYV09SS1NfTUFDX1BUUikKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogI2VuZGlmCiAKQEAgLTEzNSwxMCArMTM1LDEwIEBACiAJICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19XQUxOVVQpCi0JdG1wID0gKGNoYXIgKikgQ0ZHX05WUkFNX0JBU0VfQUREUiArIDB4NTAwOworCXRtcCA9IChjaGFyICopIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSICsgMHg1MDA7CiAJbWVtY3B5ICgoY2hhciAqKSB0bXAsIChjaGFyICopICZnZC0+YmQtPmJpX2VuZXRhZGRyWzNdLCAzKTsKLSNlbGlmIGRlZmluZWQoQ0ZHX1ZYV09SS1NfTUFDX1BUUikKLQl0bXAgPSAoY2hhciAqKSBDRkdfVlhXT1JLU19NQUNfUFRSOworI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTX1ZYV09SS1NfTUFDX1BUUikKKwl0bXAgPSAoY2hhciAqKSBDT05GSUdfU1lTX1ZYV09SS1NfTUFDX1BUUjsKIAltZW1jcHkgKChjaGFyICopIHRtcCwgKGNoYXIgKikgJmdkLT5iZC0+YmlfZW5ldGFkZHJbMF0sIDYpOwogI2Vsc2UKIAlwdXRzICgiIyMgRXRoZXJuZXQgTUFDIGFkZHJlc3Mgbm90IGNvcGllZCB0byBOViBSQU1cbiIpOwpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9leHQyLmMgYi9jb21tb24vY21kX2V4dDIuYwppbmRleCBjZmQ0ZjY0Li45YzQzNzkyIDEwMDY0NAotLS0gYS9jb21tb24vY21kX2V4dDIuYworKysgYi9jb21tb24vY21kX2V4dDIuYwpAQCAtMTQyLDcgKzE0Miw3IEBACiAJCWlmIChhZGRyX3N0ciAhPSBOVUxMKSB7CiAJCQlhZGRyID0gc2ltcGxlX3N0cnRvdWwgKGFkZHJfc3RyLCBOVUxMLCAxNik7CiAJCX0gZWxzZSB7Ci0JCQlhZGRyID0gQ0ZHX0xPQURfQUREUjsKKwkJCWFkZHIgPSBDT05GSUdfU1lTX0xPQURfQUREUjsKIAkJfQogCQlmaWxlbmFtZSA9IGdldGVudiAoImJvb3RmaWxlIik7CiAJCWNvdW50ID0gMDsKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfZmF0LmMgYi9jb21tb24vY21kX2ZhdC5jCmluZGV4IDk1NzZjZGYuLmViZTllMDkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfZmF0LmMKKysrIGIvY29tbW9uL2NtZF9mYXQuYwpAQCAtMTg4LDcgKzE4OCw3IEBACiAJdW5zaWduZWQgY2hhciAqcGFydF90YWJsZTsKIAl1bnNpZ25lZCBjaGFyIGJ1ZmZlcltBVEFfQkxPQ0tTSVpFXTsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfSURFX01BWERFVklDRTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfSURFX01BWERFVklDRTsgaSsrKSB7CiAJCWRldl9kZXNjID0gaWRlX2dldF9kZXYgKGkpOwogCQlpZiAoIWRldl9kZXNjKSB7CiAJCQlkZWJ1ZyAoImNvdWxkbid0IGdldCBpZGUgZGV2aWNlIVxuIik7CmRpZmYgLS1naXQgYS9jb21tb24vY21kX2ZkYy5jIGIvY29tbW9uL2NtZF9mZGMuYwppbmRleCBiNjYzZDYwLi5kOTk1ZmYyIDEwMDY0NAotLS0gYS9jb21tb24vY21kX2ZkYy5jCisrKyBiL2NvbW1vbi9jbWRfZmRjLmMKQEAgLTE3MCwxNyArMTcwLDE3IEBACiBzdGF0aWMgRkRDX0NPTU1BTkRfU1RSVUNUIGNtZDsgLyogZ2xvYmFsIGNvbW1hbmQgc3RydWN0ICovCiAKIC8qIElmIHRoZSBib290IGRyaXZlIG51bWJlciBpcyB1bmRlZmluZWQsIHdlIGFzc3VtZSBpdCdzIGRyaXZlIDAgICAgICAgICAgICAgKi8KLSNpZm5kZWYgQ0ZHX0ZEQ19EUklWRV9OVU1CRVIKLSNkZWZpbmUgQ0ZHX0ZEQ19EUklWRV9OVU1CRVIgMAorI2lmbmRlZiBDT05GSUdfU1lTX0ZEQ19EUklWRV9OVU1CRVIKKyNkZWZpbmUgQ09ORklHX1NZU19GRENfRFJJVkVfTlVNQkVSIDAKICNlbmRpZgogCiAvKiBIYXJkd2FyZSBhY2Nlc3MgKi8KLSNpZm5kZWYgQ0ZHX0lTQV9JT19TVFJJREUKLSNkZWZpbmUgQ0ZHX0lTQV9JT19TVFJJREUgMQorI2lmbmRlZiBDT05GSUdfU1lTX0lTQV9JT19TVFJJREUKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fU1RSSURFIDEKICNlbmRpZgogCi0jaWZuZGVmIENGR19JU0FfSU9fT0ZGU0VUCi0jZGVmaW5lIENGR19JU0FfSU9fT0ZGU0VUIDAKKyNpZm5kZWYgQ09ORklHX1NZU19JU0FfSU9fT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX09GRlNFVCAwCiAjZW5kaWYKIAogCkBAIC0yMTMsOSArMjEzLDkgQEAKIHVuc2lnbmVkIGNoYXIgcmVhZF9mZGNfcmVnKHVuc2lnbmVkIGludCBhZGRyKQogewogCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKnZhbCA9Ci0JCSh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENGR19JU0FfSU9fQkFTRV9BRERSRVNTICsKLQkJCQkJICAgKGFkZHIgKiBDRkdfSVNBX0lPX1NUUklERSkgKwotCQkJCQkgICBDRkdfSVNBX0lPX09GRlNFVCk7CisJCSh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArCisJCQkJCSAgIChhZGRyICogQ09ORklHX1NZU19JU0FfSU9fU1RSSURFKSArCisJCQkJCSAgIENPTkZJR19TWVNfSVNBX0lPX09GRlNFVCk7CiAKIAlyZXR1cm4gdmFsIFswXTsKIH0KQEAgLTIyNCw5ICsyMjQsOSBAQAogdm9pZCB3cml0ZV9mZGNfcmVnKHVuc2lnbmVkIGludCBhZGRyLCB1bnNpZ25lZCBjaGFyIHZhbCkKIHsKIAl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICp0bXAgPQotCQkodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKShDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArCi0JCQkJCSAgIChhZGRyICogQ0ZHX0lTQV9JT19TVFJJREUpICsKLQkJCQkJICAgQ0ZHX0lTQV9JT19PRkZTRVQpOworCQkodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKShDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgKworCQkJCQkgICAoYWRkciAqIENPTkZJR19TWVNfSVNBX0lPX1NUUklERSkgKworCQkJCQkgICBDT05GSUdfU1lTX0lTQV9JT19PRkZTRVQpOwogCXRtcFswXT12YWw7CiB9CiAKQEAgLTY1Miw3ICs2NTIsNyBAQAogCWk4MjU5X3VubWFza19pcnEoNik7CiAjZW5kaWYKIAotI2lmZGVmIENGR19GRENfSFdfSU5JVAorI2lmZGVmIENPTkZJR19TWVNfRkRDX0hXX0lOSVQKIAlmZGNfaHdfaW5pdCAoKTsKICNlbmRpZgogCS8qIGZpcnN0LCB3ZSByZXNldCB0aGUgRkRDIHZpYSB0aGUgRE9SICovCkBAIC03ODksMTIgKzc4OSwxMiBAQAogCiAJc3dpdGNoIChhcmdjKSB7CiAJY2FzZSAxOgotCQlhZGRyID0gQ0ZHX0xPQURfQUREUjsKLQkJYm9vdF9kcml2ZT1DRkdfRkRDX0RSSVZFX05VTUJFUjsKKwkJYWRkciA9IENPTkZJR19TWVNfTE9BRF9BRERSOworCQlib290X2RyaXZlPUNPTkZJR19TWVNfRkRDX0RSSVZFX05VTUJFUjsKIAkJYnJlYWs7CiAJY2FzZSAyOgogCQlhZGRyID0gc2ltcGxlX3N0cnRvdWwoYXJndlsxXSwgTlVMTCwgMTYpOwotCQlib290X2RyaXZlPUNGR19GRENfRFJJVkVfTlVNQkVSOworCQlib290X2RyaXZlPUNPTkZJR19TWVNfRkRDX0RSSVZFX05VTUJFUjsKIAkJYnJlYWs7CiAJY2FzZSAzOgogCQlhZGRyID0gc2ltcGxlX3N0cnRvdWwoYXJndlsxXSwgTlVMTCwgMTYpOwpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9mZG9zLmMgYi9jb21tb24vY21kX2Zkb3MuYwppbmRleCBiM2RiZDE5Li5hYTEzYjUyIDEwMDY0NAotLS0gYS9jb21tb24vY21kX2Zkb3MuYworKysgYi9jb21tb24vY21kX2Zkb3MuYwpAQCAtNDIsNyArNDIsNyBAQAogICAgIGludCBzaXplOwogICAgIGludCByY29kZSA9IDA7CiAgICAgY2hhciBidWYgWzEyXTsKLSAgICBpbnQgZHJpdmUgPSBDRkdfRkRDX0RSSVZFX05VTUJFUjsKKyAgICBpbnQgZHJpdmUgPSBDT05GSUdfU1lTX0ZEQ19EUklWRV9OVU1CRVI7CiAKICAgICAvKiBwcmUtc2V0IGxvYWRfYWRkciAqLwogICAgIGlmICgoZXAgPSBnZXRlbnYoImxvYWRhZGRyIikpICE9IE5VTEwpIHsKQEAgLTExOCw3ICsxMTgsNyBAQAogaW50IGRvX2Zkb3NscyhjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKICAgICBjaGFyICpwYXRoID0gIiI7Ci0gICAgaW50IGRyaXZlID0gQ0ZHX0ZEQ19EUklWRV9OVU1CRVI7CisgICAgaW50IGRyaXZlID0gQ09ORklHX1NZU19GRENfRFJJVkVfTlVNQkVSOwogCiAgICAgc3dpdGNoIChhcmdjKSB7CiAgICAgY2FzZSAxOgpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9mZHQuYyBiL2NvbW1vbi9jbWRfZmR0LmMKaW5kZXggMjg4YTVjNC4uNDI3NGE3NyAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9mZHQuYworKysgYi9jb21tb24vY21kX2ZkdC5jCkBAIC0zNjQsNyArMzY0LDcgQEAKIAl9IGVsc2UgaWYgKHN0cm5jbXAoYXJndlsxXSwgIm1lIiwgMikgPT0gMCkgewogCQl1aW50NjRfdCBhZGRyLCBzaXplOwogCQlpbnQgZXJyOwotI2lmZGVmIENGR182NEJJVF9TVFJUT1VMCisjaWZkZWYgQ09ORklHX1NZU182NEJJVF9TVFJUT1VMCiAJCQlhZGRyID0gc2ltcGxlX3N0cnRvdWxsKGFyZ3ZbMl0sIE5VTEwsIDE2KTsKIAkJCXNpemUgPSBzaW1wbGVfc3RydG91bGwoYXJndlszXSwgTlVMTCwgMTYpOwogI2Vsc2UKQEAgLTQwMiw3ICs0MDIsNyBAQAogCQl9IGVsc2UgaWYgKGFyZ3ZbMl1bMF0gPT0gJ2EnKSB7CiAJCQl1aW50NjRfdCBhZGRyLCBzaXplOwogCQkJaW50IGVycjsKLSNpZmRlZiBDRkdfNjRCSVRfU1RSVE9VTAorI2lmZGVmIENPTkZJR19TWVNfNjRCSVRfU1RSVE9VTAogCQkJYWRkciA9IHNpbXBsZV9zdHJ0b3VsbChhcmd2WzNdLCBOVUxMLCAxNik7CiAJCQlzaXplID0gc2ltcGxlX3N0cnRvdWxsKGFyZ3ZbNF0sIE5VTEwsIDE2KTsKICNlbHNlCmRpZmYgLS1naXQgYS9jb21tb24vY21kX2ZsYXNoLmMgYi9jb21tb24vY21kX2ZsYXNoLmMKaW5kZXggMjllNWI2ZC4uOTNlZWZhOSAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9mbGFzaC5jCisrKyBiL2NvbW1vbi9jbWRfZmxhc2guYwpAQCAtNDEsNyArNDEsNyBAQAogCQl1OCAqcGFydF9udW0sIHN0cnVjdCBwYXJ0X2luZm8gKipwYXJ0KTsKICNlbmRpZgogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiBleHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogLyoKQEAgLTc2LDcgKzc2LDcgQEAKIAogCWJhbmsgPSBzaW1wbGVfc3RydG91bCAoc3RyLCAmZXAsIDEwKTsKIAlpZiAoZXAgPT0gc3RyIHx8ICplcCAhPSAnXDAnIHx8Ci0JCWJhbmsgPCAxIHx8IGJhbmsgPiBDRkdfTUFYX0ZMQVNIX0JBTktTIHx8CisJCWJhbmsgPCAxIHx8IGJhbmsgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyB8fAogCQkoZnAgPSAmZmxhc2hfaW5mb1tiYW5rIC0gMV0pLT5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKQogCQlyZXR1cm4gLTE7CiAKQEAgLTExNiw3ICsxMTYsNyBAQAogCiAJLyogZmluZCB0aGUgZW5kIGFkZHIgb2YgdGhlIHNlY3RvciB3aGVyZSB0aGUgKmFkZHIgaXMgKi8KIAlmb3VuZCA9IDA7Ci0JZm9yIChiYW5rID0gMDsgYmFuayA8IENGR19NQVhfRkxBU0hfQkFOS1MgJiYgIWZvdW5kOyArK2JhbmspIHsKKwlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgJiYgIWZvdW5kOyArK2JhbmspIHsKIAkJaW5mbyA9ICZmbGFzaF9pbmZvW2JhbmtdOwogCQlmb3IgKGkgPSAwOyBpIDwgaW5mby0+c2VjdG9yX2NvdW50ICYmICFmb3VuZDsgKytpKSB7CiAJCQkvKiBnZXQgdGhlIGVuZCBhZGRyZXNzIG9mIHRoZSBzZWN0b3IgKi8KQEAgLTIxNCwxMyArMjE0LDEzIEBACiAKIAkqc19jb3VudCA9IDA7CiAKLQlmb3IgKGJhbms9MDsgYmFuayA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaykgeworCWZvciAoYmFuaz0wOyBiYW5rIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaykgewogCQlzX2ZpcnN0W2JhbmtdID0gLTE7CS8qIGZpcnN0IHNlY3RvciB0byBlcmFzZQkqLwogCQlzX2xhc3QgW2JhbmtdID0gLTE7CS8qIGxhc3QgIHNlY3RvciB0byBlcmFzZQkqLwogCX0KIAogCWZvciAoYmFuaz0wLGluZm8gPSAmZmxhc2hfaW5mb1swXTsKLQkgICAgIChiYW5rIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUykgJiYgKGFkZHJfZmlyc3QgPD0gYWRkcl9sYXN0KTsKKwkgICAgIChiYW5rIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MpICYmIChhZGRyX2ZpcnN0IDw9IGFkZHJfbGFzdCk7CiAJICAgICArK2JhbmssICsraW5mbykgewogCQl1bG9uZyBiX2VuZDsKIAkJaW50IHNlY3Q7CkBAIC0yODUsMTEgKzI4NSwxMSBAQAogCiAJcmV0dXJuIHJjb2RlOwogfQotI2VuZGlmIC8qIENGR19OT19GTEFTSCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTk9fRkxBU0ggKi8KIAogaW50IGRvX2ZsaW5mbyAoIGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewotI2lmbmRlZiBDRkdfTk9fRkxBU0gKKyNpZm5kZWYgQ09ORklHX1NZU19OT19GTEFTSAogCXVsb25nIGJhbms7CiAjZW5kaWYKIApAQCAtMjk3LDkgKzI5Nyw5IEBACiAJZGF0YWZsYXNoX3ByaW50X2luZm8oKTsKICNlbmRpZgogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAJaWYgKGFyZ2MgPT0gMSkgewkvKiBwcmludCBpbmZvIGZvciBhbGwgRkxBU0ggYmFua3MgKi8KLQkJZm9yIChiYW5rPTA7IGJhbmsgPENGR19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaykgeworCQlmb3IgKGJhbms9MDsgYmFuayA8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaykgewogCQkJcHJpbnRmICgiXG5CYW5rICMgJWxkOiAiLCBiYW5rKzEpOwogCiAJCQlmbGFzaF9wcmludF9pbmZvICgmZmxhc2hfaW5mb1tiYW5rXSk7CkBAIC0zMDgsMjAgKzMwOCwyMCBAQAogCX0KIAogCWJhbmsgPSBzaW1wbGVfc3RydG91bChhcmd2WzFdLCBOVUxMLCAxNik7Ci0JaWYgKChiYW5rIDwgMSkgfHwgKGJhbmsgPiBDRkdfTUFYX0ZMQVNIX0JBTktTKSkgeworCWlmICgoYmFuayA8IDEpIHx8IChiYW5rID4gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MpKSB7CiAJCXByaW50ZiAoIk9ubHkgRkxBU0ggQmFua3MgIyAxIC4uLiAjICVkIHN1cHBvcnRlZFxuIiwKLQkJCUNGR19NQVhfRkxBU0hfQkFOS1MpOworCQkJQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MpOwogCQlyZXR1cm4gMTsKIAl9CiAJcHJpbnRmICgiXG5CYW5rICMgJWxkOiAiLCBiYW5rKTsKIAlmbGFzaF9wcmludF9pbmZvICgmZmxhc2hfaW5mb1tiYW5rLTFdKTsKLSNlbmRpZiAvKiBDRkdfTk9fRkxBU0ggKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX05PX0ZMQVNIICovCiAJcmV0dXJuIDA7CiB9CiAKIGludCBkb19mbGVyYXNlIChjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKLSNpZm5kZWYgQ0ZHX05PX0ZMQVNICisjaWZuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKIAlmbGFzaF9pbmZvX3QgKmluZm87CiAJdWxvbmcgYmFuaywgYWRkcl9maXJzdCwgYWRkcl9sYXN0OwogCWludCBuLCBzZWN0X2ZpcnN0LCBzZWN0X2xhc3Q7CkBAIC0zMzgsNyArMzM4LDcgQEAKIAl9CiAKIAlpZiAoc3RyY21wKGFyZ3ZbMV0sICJhbGwiKSA9PSAwKSB7Ci0JCWZvciAoYmFuaz0xOyBiYW5rPD1DRkdfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmspIHsKKwkJZm9yIChiYW5rPTE7IGJhbms8PUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmspIHsKIAkJCXByaW50ZiAoIkVyYXNlIEZsYXNoIEJhbmsgIyAlbGQgIiwgYmFuayk7CiAJCQlpbmZvID0gJmZsYXNoX2luZm9bYmFuay0xXTsKIAkJCXJjb2RlID0gZmxhc2hfZXJhc2UgKGluZm8sIDAsIGluZm8tPnNlY3Rvcl9jb3VudC0xKTsKQEAgLTM5MCw5ICszOTAsOSBAQAogCiAJaWYgKHN0cmNtcChhcmd2WzFdLCAiYmFuayIpID09IDApIHsKIAkJYmFuayA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMl0sIE5VTEwsIDE2KTsKLQkJaWYgKChiYW5rIDwgMSkgfHwgKGJhbmsgPiBDRkdfTUFYX0ZMQVNIX0JBTktTKSkgeworCQlpZiAoKGJhbmsgPCAxKSB8fCAoYmFuayA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKSkgewogCQkJcHJpbnRmICgiT25seSBGTEFTSCBCYW5rcyAjIDEgLi4uICMgJWQgc3VwcG9ydGVkXG4iLAotCQkJCUNGR19NQVhfRkxBU0hfQkFOS1MpOworCQkJCUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKTsKIAkJCXJldHVybiAxOwogCQl9CiAJCXByaW50ZiAoIkVyYXNlIEZsYXNoIEJhbmsgIyAlbGQgIiwgYmFuayk7CkBAIC00MTUsMTggKzQxNSwxOCBAQAogCXJldHVybiByY29kZTsKICNlbHNlCiAJcmV0dXJuIDA7Ci0jZW5kaWYgLyogQ0ZHX05PX0ZMQVNIICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OT19GTEFTSCAqLwogfQogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiBpbnQgZmxhc2hfc2VjdF9lcmFzZSAodWxvbmcgYWRkcl9maXJzdCwgdWxvbmcgYWRkcl9sYXN0KQogewogCWZsYXNoX2luZm9fdCAqaW5mbzsKIAl1bG9uZyBiYW5rOwotI2lmZGVmIENGR19NQVhfRkxBU0hfQkFOS1NfREVURUNUCi0JaW50IHNfZmlyc3RbQ0ZHX01BWF9GTEFTSF9CQU5LU19ERVRFQ1RdLCBzX2xhc3RbQ0ZHX01BWF9GTEFTSF9CQU5LU19ERVRFQ1RdOworI2lmZGVmIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVAorCWludCBzX2ZpcnN0W0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVF0sIHNfbGFzdFtDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU19ERVRFQ1RdOwogI2Vsc2UKLQlpbnQgc19maXJzdFtDRkdfTUFYX0ZMQVNIX0JBTktTXSwgc19sYXN0W0NGR19NQVhfRkxBU0hfQkFOS1NdOworCWludCBzX2ZpcnN0W0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXSwgc19sYXN0W0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKICNlbmRpZgogCWludCBlcmFzZWQgPSAwOwogCWludCBwbGFubmVkOwpAQCAtNDM3LDcgKzQzNyw3IEBACiAKIAlpZiAocGxhbm5lZCAmJiAocmNvZGUgPT0gMCkpIHsKIAkJZm9yIChiYW5rPTAsaW5mbyA9ICZmbGFzaF9pbmZvWzBdOwotCQkgICAgIChiYW5rIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUykgJiYgKHJjb2RlID09IDApOworCQkgICAgIChiYW5rIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MpICYmIChyY29kZSA9PSAwKTsKIAkJICAgICArK2JhbmssICsraW5mbykgewogCQkJaWYgKHNfZmlyc3RbYmFua10+PTApIHsKIAkJCQllcmFzZWQgKz0gc19sYXN0W2JhbmtdIC0gc19maXJzdFtiYW5rXSArIDE7CkBAIC00NTksMTUgKzQ1OSwxNSBAQAogCX0KIAlyZXR1cm4gcmNvZGU7CiB9Ci0jZW5kaWYgLyogQ0ZHX05PX0ZMQVNIICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OT19GTEFTSCAqLwogCiBpbnQgZG9fcHJvdGVjdCAoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7Ci0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAJZmxhc2hfaW5mb190ICppbmZvOwogCXVsb25nIGJhbms7CiAJaW50IGksIG4sIHNlY3RfZmlyc3QsIHNlY3RfbGFzdDsKLSNlbmRpZiAvKiBDRkdfTk9fRkxBU0ggKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX05PX0ZMQVNIICovCiAJdWxvbmcgYWRkcl9maXJzdCwgYWRkcl9sYXN0OwogCWludCBwOwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9KRkZTMikgJiYgZGVmaW5lZChDT05GSUdfSkZGUzJfQ01ETElORSkKQEAgLTUxMiw5ICs1MTIsOSBAQAogCX0KICNlbmRpZgogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAJaWYgKHN0cmNtcChhcmd2WzJdLCAiYWxsIikgPT0gMCkgewotCQlmb3IgKGJhbms9MTsgYmFuazw9Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytiYW5rKSB7CisJCWZvciAoYmFuaz0xOyBiYW5rPD1DT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytiYW5rKSB7CiAJCQlpbmZvID0gJmZsYXNoX2luZm9bYmFuay0xXTsKIAkJCWlmIChpbmZvLT5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCQkJY29udGludWU7CkBAIC01MjMsMTcgKzUyMywxNyBAQAogCQkJCXAgPyAiIiA6ICJVbi0iLCBiYW5rKTsKIAogCQkJZm9yIChpPTA7IGk8aW5mby0+c2VjdG9yX2NvdW50OyArK2kpIHsKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQkJCWlmIChmbGFzaF9yZWFsX3Byb3RlY3QoaW5mbywgaSwgcCkpCiAJCQkJCXJjb2RlID0gMTsKIAkJCQlwdXRjICgnLicpOwogI2Vsc2UKIAkJCQlpbmZvLT5wcm90ZWN0W2ldID0gcDsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCQkJfQotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX1BST1RFQ1RJT04pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04pCiAJCQlpZiAoIXJjb2RlKSBwdXRzICgiIGRvbmVcbiIpOwotI2VuZGlmCS8qIENGR19GTEFTSF9QUk9URUNUSU9OICovCisjZW5kaWYJLyogQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OICovCiAJCX0KIAkJcmV0dXJuIHJjb2RlOwogCX0KQEAgLTU0NywxOCArNTQ3LDE4IEBACiAJCQlwID8gIiIgOiAiVW4tIiwgc2VjdF9maXJzdCwgc2VjdF9sYXN0LAogCQkJKGluZm8tZmxhc2hfaW5mbykrMSk7CiAJCWZvciAoaSA9IHNlY3RfZmlyc3Q7IGkgPD0gc2VjdF9sYXN0OyBpKyspIHsKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQkJaWYgKGZsYXNoX3JlYWxfcHJvdGVjdChpbmZvLCBpLCBwKSkKIAkJCQlyY29kZSA9ICAxOwogCQkJcHV0YyAoJy4nKTsKICNlbHNlCiAJCQlpbmZvLT5wcm90ZWN0W2ldID0gcDsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCQl9CiAKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQlpZiAoIXJjb2RlKSBwdXRzICgiIGRvbmVcbiIpOwotI2VuZGlmCS8qIENGR19GTEFTSF9QUk9URUNUSU9OICovCisjZW5kaWYJLyogQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OICovCiAKIAkJcmV0dXJuIHJjb2RlOwogCX0KQEAgLTU5Nyw5ICs1OTcsOSBAQAogCiAJaWYgKHN0cmNtcChhcmd2WzJdLCAiYmFuayIpID09IDApIHsKIAkJYmFuayA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbM10sIE5VTEwsIDE2KTsKLQkJaWYgKChiYW5rIDwgMSkgfHwgKGJhbmsgPiBDRkdfTUFYX0ZMQVNIX0JBTktTKSkgeworCQlpZiAoKGJhbmsgPCAxKSB8fCAoYmFuayA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKSkgewogCQkJcHJpbnRmICgiT25seSBGTEFTSCBCYW5rcyAjIDEgLi4uICMgJWQgc3VwcG9ydGVkXG4iLAotCQkJCUNGR19NQVhfRkxBU0hfQkFOS1MpOworCQkJCUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKTsKIAkJCXJldHVybiAxOwogCQl9CiAJCXByaW50ZiAoIiVzUHJvdGVjdCBGbGFzaCBCYW5rICMgJWxkXG4iLApAQCAtNjExLDE4ICs2MTEsMTggQEAKIAkJCXJldHVybiAxOwogCQl9CiAJCWZvciAoaT0wOyBpPGluZm8tPnNlY3Rvcl9jb3VudDsgKytpKSB7Ci0jaWYgZGVmaW5lZChDRkdfRkxBU0hfUFJPVEVDVElPTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTikKIAkJCWlmIChmbGFzaF9yZWFsX3Byb3RlY3QoaW5mbywgaSwgcCkpCiAJCQkJcmNvZGUgPSAgMTsKIAkJCXB1dGMgKCcuJyk7CiAjZWxzZQogCQkJaW5mby0+cHJvdGVjdFtpXSA9IHA7Ci0jZW5kaWYJLyogQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gKi8KIAkJfQogCi0jaWYgZGVmaW5lZChDRkdfRkxBU0hfUFJPVEVDVElPTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTikKIAkJaWYgKCFyY29kZSkgcHV0cyAoIiBkb25lXG4iKTsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCiAJCXJldHVybiByY29kZTsKIAl9CkBAIC02MzcsMTkgKzYzNywxOSBAQAogCQlyZXR1cm4gMTsKIAl9CiAJcmNvZGUgPSBmbGFzaF9zZWN0X3Byb3RlY3QgKHAsIGFkZHJfZmlyc3QsIGFkZHJfbGFzdCk7Ci0jZW5kaWYgLyogQ0ZHX05PX0ZMQVNIICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OT19GTEFTSCAqLwogCXJldHVybiByY29kZTsKIH0KIAotI2lmbmRlZiBDRkdfTk9fRkxBU0gKKyNpZm5kZWYgQ09ORklHX1NZU19OT19GTEFTSAogaW50IGZsYXNoX3NlY3RfcHJvdGVjdCAoaW50IHAsIHVsb25nIGFkZHJfZmlyc3QsIHVsb25nIGFkZHJfbGFzdCkKIHsKIAlmbGFzaF9pbmZvX3QgKmluZm87CiAJdWxvbmcgYmFuazsKLSNpZmRlZiBDRkdfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVAotCWludCBzX2ZpcnN0W0NGR19NQVhfRkxBU0hfQkFOS1NfREVURUNUXSwgc19sYXN0W0NGR19NQVhfRkxBU0hfQkFOS1NfREVURUNUXTsKKyNpZmRlZiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU19ERVRFQ1QKKwlpbnQgc19maXJzdFtDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU19ERVRFQ1RdLCBzX2xhc3RbQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NfREVURUNUXTsKICNlbHNlCi0JaW50IHNfZmlyc3RbQ0ZHX01BWF9GTEFTSF9CQU5LU10sIHNfbGFzdFtDRkdfTUFYX0ZMQVNIX0JBTktTXTsKKwlpbnQgc19maXJzdFtDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU10sIHNfbGFzdFtDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAjZW5kaWYKIAlpbnQgcHJvdGVjdGVkLCBpOwogCWludCBwbGFubmVkOwpAQCAtNjYwLDcgKzY2MCw3IEBACiAJcHJvdGVjdGVkID0gMDsKIAogCWlmIChwbGFubmVkICYmIChyY29kZSA9PSAwKSkgewotCQlmb3IgKGJhbms9MCxpbmZvID0gJmZsYXNoX2luZm9bMF07IGJhbmsgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmssICsraW5mbykgeworCQlmb3IgKGJhbms9MCxpbmZvID0gJmZsYXNoX2luZm9bMF07IGJhbmsgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytiYW5rLCArK2luZm8pIHsKIAkJCWlmIChpbmZvLT5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCQkJY29udGludWU7CiAJCQl9CkBAIC02NzEsMTkgKzY3MSwxOSBAQAogCQkJCQlzX2ZpcnN0W2JhbmtdLCBzX2xhc3RbYmFua10sIGJhbmsrMSk7CiAJCQkJcHJvdGVjdGVkICs9IHNfbGFzdFtiYW5rXSAtIHNfZmlyc3RbYmFua10gKyAxOwogCQkJCWZvciAoaT1zX2ZpcnN0W2JhbmtdOyBpPD1zX2xhc3RbYmFua107ICsraSkgewotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX1BST1RFQ1RJT04pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04pCiAJCQkJCWlmIChmbGFzaF9yZWFsX3Byb3RlY3QoaW5mbywgaSwgcCkpCiAJCQkJCQlyY29kZSA9IDE7CiAJCQkJCXB1dGMgKCcuJyk7CiAjZWxzZQogCQkJCQlpbmZvLT5wcm90ZWN0W2ldID0gcDsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCQkJCX0KIAkJCX0KIAkJfQotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX1BST1RFQ1RJT04pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04pCiAJCXB1dHMgKCIgZG9uZVxuIik7Ci0jZW5kaWYJLyogQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gKi8KIAogCQlwcmludGYgKCIlc1Byb3RlY3RlZCAlZCBzZWN0b3JzXG4iLAogCQkJcCA/ICIiIDogIlVuLSIsIHByb3RlY3RlZCk7CkBAIC02OTQsNyArNjk0LDcgQEAKIAl9CiAJcmV0dXJuIHJjb2RlOwogfQotI2VuZGlmIC8qIENGR19OT19GTEFTSCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTk9fRkxBU0ggKi8KIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCmRpZmYgLS1naXQgYS9jb21tb24vY21kX2kyYy5jIGIvY29tbW9uL2NtZF9pMmMuYwppbmRleCA4ZDI4N2ZlLi44NGVjZjQ5IDEwMDY0NAotLS0gYS9jb21tb24vY21kX2kyYy5jCisrKyBiL2NvbW1vbi9jbWRfaTJjLmMKQEAgLTY1LDcgKzY1LDcgQEAKICAqICAgc2lnbmlmaWNhbnQgMSwgMiwgb3IgMyBiaXRzIG9mIGFkZHJlc3MgaW50byB0aGUgY2hpcCBhZGRyZXNzIGJ5dGUuCiAgKiAgIFRoaXMgZWZmZWN0aXZlbHkgbWFrZXMgb25lIGNoaXAgKGxvZ2ljYWxseSkgbG9vayBsaWtlIDIsIDQsIG9yCiAgKiAgIDggY2hpcHMuICBUaGlzIGlzIGhhbmRsZWQgKGF3a3dhcmRseSkgYnkgI2RlZmluaW5nCi0gKiAgIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cgYW5kIHVzaW5nIHRoZSAuMSBtb2RpZmllciBvbiB0aGUKKyAqICAgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cgYW5kIHVzaW5nIHRoZSAuMSBtb2RpZmllciBvbiB0aGUKICAqICAge2FkZHJ9IGZpZWxkIChzaW5jZSAuMSBpcyB0aGUgZGVmYXVsdCwgaXQgZG9lc24ndCBhY3R1YWxseSBoYXZlIHRvCiAgKiAgIGJlIHNwZWNpZmllZCkuICBFeGFtcGxlczogZ2l2ZW4gYSBtZW1vcnkgY2hpcCBhdCBJMkMgY2hpcCBhZGRyZXNzCiAgKiAgIDB4NTAsIHRoZSBmb2xsb3dpbmcgd291bGQgaGFwcGVuLi4uCkBAIC0xMDUsMTkgKzEwNSwxOSBAQAogICogV2hlbiBtdWx0aXBsZSBidXNlcyBhcmUgcHJlc2VudCwgdGhlIGxpc3QgaXMgYW4gYXJyYXkgb2YgYnVzLWFkZHJlc3MKICAqIHBhaXJzLiAgVGhlIGZvbGxvd2luZyBtYWNyb3MgdGFrZSBjYXJlIG9mIHRoaXMgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0kyQ19OT1BST0JFUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX05PUFJPQkVTKQogI2lmIGRlZmluZWQoQ09ORklHX0kyQ19NVUxUSV9CVVMpCiBzdGF0aWMgc3RydWN0CiB7CiAJdWNoYXIJYnVzOwogCXVjaGFyCWFkZHI7Ci19IGkyY19ub19wcm9iZXNbXSA9IENGR19JMkNfTk9QUk9CRVM7Cit9IGkyY19ub19wcm9iZXNbXSA9IENPTkZJR19TWVNfSTJDX05PUFJPQkVTOwogI2RlZmluZSBHRVRfQlVTX05VTQlpMmNfZ2V0X2J1c19udW0oKQogI2RlZmluZSBDT01QQVJFX0JVUyhiLGkpCShpMmNfbm9fcHJvYmVzWyhpKV0uYnVzID09IChiKSkKICNkZWZpbmUgQ09NUEFSRV9BRERSKGEsaSkJKGkyY19ub19wcm9iZXNbKGkpXS5hZGRyID09IChhKSkKICNkZWZpbmUgTk9fUFJPQkVfQUREUihpKQlpMmNfbm9fcHJvYmVzWyhpKV0uYWRkcgogI2Vsc2UJCS8qIHNpbmdsZSBidXMgKi8KLXN0YXRpYyB1Y2hhciBpMmNfbm9fcHJvYmVzW10gPSBDRkdfSTJDX05PUFJPQkVTOworc3RhdGljIHVjaGFyIGkyY19ub19wcm9iZXNbXSA9IENPTkZJR19TWVNfSTJDX05PUFJPQkVTOwogI2RlZmluZSBHRVRfQlVTX05VTQkwCiAjZGVmaW5lIENPTVBBUkVfQlVTKGIsaSkJKChiKSA9PSAwKQkvKiBNYWtlIGNvbXBpbGVyIGhhcHB5ICovCiAjZGVmaW5lIENPTVBBUkVfQUREUihhLGkpCShpMmNfbm9fcHJvYmVzWyhpKV0gPT0gKGEpKQpAQCAtMTI5LDcgKzEyOSw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19JMkNfTVVYKQogc3RhdGljIEkyQ19NVVhfREVWSUNFCSppMmNfbXV4X2RldmljZXMgPSBOVUxMOwotc3RhdGljCWludAlpMmNfbXV4X2J1c2lkID0gQ0ZHX01BWF9JMkNfQlVTOworc3RhdGljCWludAlpMmNfbXV4X2J1c2lkID0gQ09ORklHX1NZU19NQVhfSTJDX0JVUzsKIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKQEAgLTMyMyw3ICszMjMsNyBAQAogLyoKICAqIE5vIHdyaXRlIGRlbGF5IHdpdGggRlJBTSBkZXZpY2VzLgogICovCi0jaWYgIWRlZmluZWQoQ0ZHX0kyQ19GUkFNKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfSTJDX0ZSQU0pCiAJCXVkZWxheSgxMTAwMCk7CiAjZW5kaWYKIApAQCAtNTI5LDggKzUyOSw4IEBACiAjZW5kaWYKIAkJCQlpZiAoaTJjX3dyaXRlKGNoaXAsIGFkZHIsIGFsZW4sICh1Y2hhciAqKSZkYXRhLCBzaXplKSAhPSAwKQogCQkJCQlwdXRzICgiRXJyb3Igd3JpdGluZyB0aGUgY2hpcC5cbiIpOwotI2lmZGVmIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwotCQkJCXVkZWxheShDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgKiAxMDAwKTsKKyNpZmRlZiBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCisJCQkJdWRlbGF5KENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgKiAxMDAwKTsKICNlbmRpZgogCQkJCWlmIChpbmNyZmxhZykKIAkJCQkJYWRkciArPSBzaXplOwpAQCAtNTUyLDE0ICs1NTIsMTQgQEAKIGludCBkb19pMmNfcHJvYmUgKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogCWludCBqOwotI2lmIGRlZmluZWQoQ0ZHX0kyQ19OT1BST0JFUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX05PUFJPQkVTKQogCWludCBrLCBza2lwOwogCXVjaGFyIGJ1cyA9IEdFVF9CVVNfTlVNOwogI2VuZGlmCS8qIE5PUFJPQkVTICovCiAKIAlwdXRzICgiVmFsaWQgY2hpcCBhZGRyZXNzZXM6Iik7CiAJZm9yIChqID0gMDsgaiA8IDEyODsgaisrKSB7Ci0jaWYgZGVmaW5lZChDRkdfSTJDX05PUFJPQkVTKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JMkNfTk9QUk9CRVMpCiAJCXNraXAgPSAwOwogCQlmb3IgKGs9MDsgayA8IE5VTV9FTEVNRU5UU19OT1BST0JFOyBrKyspIHsKIAkJCWlmIChDT01QQVJFX0JVUyhidXMsIGspICYmIENPTVBBUkVfQUREUihqLCBrKSkgewpAQCAtNTc1LDcgKzU3NSw3IEBACiAJfQogCXB1dGMgKCdcbicpOwogCi0jaWYgZGVmaW5lZChDRkdfSTJDX05PUFJPQkVTKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JMkNfTk9QUk9CRVMpCiAJcHV0cyAoIkV4Y2x1ZGVkIGNoaXAgYWRkcmVzc2VzOiIpOwogCWZvciAoaz0wOyBrIDwgTlVNX0VMRU1FTlRTX05PUFJPQkU7IGsrKykgewogCQlpZiAoQ09NUEFSRV9CVVMoYnVzLGspKQpAQCAtMTE5NCw3ICsxMTk0LDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19JMkNfQ01EX1RSRUUpCiBpbnQgZG9faTJjX3Jlc2V0KGNtZF90YmxfdCAqIGNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKLQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE1NzMsOCArMTU3Myw4IEBACiAKIAlpZiAoKGdkLT5mbGFncyAmIEdEX0ZMR19SRUxPQykgIT0gR0RfRkxHX1JFTE9DKSB7CiAJCS8qIHNlbGVjdCBEZWZhdWx0IE11eCBCdXMgKi8KLSNpZiBkZWZpbmVkKENGR19JMkNfSVZNX0JVUykKLQkJaTJjX211eF9pZGVudF9tdXhzdHJpbmdfZiAoKHVjaGFyICopQ0ZHX0kyQ19JVk1fQlVTKTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX0lWTV9CVVMpCisJCWkyY19tdXhfaWRlbnRfbXV4c3RyaW5nX2YgKCh1Y2hhciAqKUNPTkZJR19TWVNfSTJDX0lWTV9CVVMpOwogI2Vsc2UKIAkJewogCQl1bnNpZ25lZCBjaGFyICpidWY7CmRpZmYgLS1naXQgYS9jb21tb24vY21kX2lkZS5jIGIvY29tbW9uL2NtZF9pZGUuYwppbmRleCAyZmNhZmY4Li4yNTY0YzJiIDEwMDY0NAotLS0gYS9jb21tb24vY21kX2lkZS5jCisrKyBiL2NvbW1vbi9jbWRfaWRlLmMKQEAgLTkyLDEwICs5MiwxMCBAQAogCiBzdGF0aWMgcGlvX2NvbmZpZ190IHBpb19jb25maWdfY2xrIFtJREVfTUFYX1BJT19NT0RFKzFdOwogCi0jaWZuZGVmCUNGR19QSU9fTU9ERQotI2RlZmluZQlDRkdfUElPX01PREUJMAkJLyogdXNlIGEgcmVsYXhlZCBkZWZhdWx0ICovCisjaWZuZGVmCUNPTkZJR19TWVNfUElPX01PREUKKyNkZWZpbmUJQ09ORklHX1NZU19QSU9fTU9ERQkwCQkvKiB1c2UgYSByZWxheGVkIGRlZmF1bHQgKi8KICNlbmRpZgotc3RhdGljIGludCBwaW9fbW9kZSA9IENGR19QSU9fTU9ERTsKK3N0YXRpYyBpbnQgcGlvX21vZGUgPSBDT05GSUdfU1lTX1BJT19NT0RFOwogCiAvKiBNYWtlIGNsb2NrIGN5Y2xlcyBhbmQgYWx3YXlzIHJvdW5kIHVwICovCiAKQEAgLTEwOSwyMyArMTA5LDIzIEBACiBzdGF0aWMgaW50IGN1cnJfZGV2aWNlID0gLTE7CiAKIC8qIEN1cnJlbnQgb2Zmc2V0IGZvciBJREUwIC8gSURFMSBidXMgYWNjZXNzCSovCi11bG9uZyBpZGVfYnVzX29mZnNldFtDRkdfSURFX01BWEJVU10gPSB7Ci0jaWYgZGVmaW5lZChDRkdfQVRBX0lERTBfT0ZGU0VUKQotCUNGR19BVEFfSURFMF9PRkZTRVQsCit1bG9uZyBpZGVfYnVzX29mZnNldFtDT05GSUdfU1lTX0lERV9NQVhCVVNdID0geworI2lmIGRlZmluZWQoQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQpCisJQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQsCiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19BVEFfSURFMV9PRkZTRVQpICYmIChDRkdfSURFX01BWEJVUyA+IDEpCi0JQ0ZHX0FUQV9JREUxX09GRlNFVCwKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VUKSAmJiAoQ09ORklHX1NZU19JREVfTUFYQlVTID4gMSkKKwlDT05GSUdfU1lTX0FUQV9JREUxX09GRlNFVCwKICNlbmRpZgogfTsKIAogCiAjaWZuZGVmIENPTkZJR19BTUlHQU9ORUczU0UKLXN0YXRpYyBpbnQgaWRlX2J1c19va1tDRkdfSURFX01BWEJVU107CitzdGF0aWMgaW50IGlkZV9idXNfb2tbQ09ORklHX1NZU19JREVfTUFYQlVTXTsKICNlbHNlCi1zdGF0aWMgaW50IGlkZV9idXNfb2tbQ0ZHX0lERV9NQVhCVVNdID0gezAsfTsKK3N0YXRpYyBpbnQgaWRlX2J1c19va1tDT05GSUdfU1lTX0lERV9NQVhCVVNdID0gezAsfTsKICNlbmRpZgogCi1ibG9ja19kZXZfZGVzY190IGlkZV9kZXZfZGVzY1tDRkdfSURFX01BWERFVklDRV07CitibG9ja19kZXZfZGVzY190IGlkZV9kZXZfZGVzY1tDT05GSUdfU1lTX0lERV9NQVhERVZJQ0VdOwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAjaWZkZWYgQ09ORklHX0lERV9MRUQKQEAgLTE2NSw4ICsxNjUsOCBAQAogc3RhdGljIHZvaWQgb3V0cHV0X2RhdGEoaW50IGRldiwgdWxvbmcgKnNlY3RfYnVmLCBpbnQgd29yZHMpOwogc3RhdGljIHZvaWQgaWRlbnRfY3B5ICh1bnNpZ25lZCBjaGFyICpkZXN0LCB1bnNpZ25lZCBjaGFyICpzcmMsIHVuc2lnbmVkIGludCBsZW4pOwogCi0jaWZuZGVmIENGR19BVEFfUE9SVF9BRERSCi0jZGVmaW5lIENGR19BVEFfUE9SVF9BRERSKHBvcnQpIChwb3J0KQorI2lmbmRlZiBDT05GSUdfU1lTX0FUQV9QT1JUX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUE9SVF9BRERSKHBvcnQpIChwb3J0KQogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfQVRBUEkKQEAgLTIwNSw3ICsyMDUsNyBAQAogCiAJCXB1dGMgKCdcbicpOwogCi0JCWZvciAoaT0wOyBpPENGR19JREVfTUFYREVWSUNFOyArK2kpIHsKKwkJZm9yIChpPTA7IGk8Q09ORklHX1NZU19JREVfTUFYREVWSUNFOyArK2kpIHsKIAkJCWlmIChpZGVfZGV2X2Rlc2NbaV0udHlwZT09REVWX1RZUEVfVU5LTk9XTikKIAkJCQljb250aW51ZTsgLyogbGlzdCBvbmx5IGtub3duIGRldmljZXMgKi8KIAkJCXByaW50ZiAoIklERSBkZXZpY2UgJWQ6ICIsIGkpOwpAQCAtMjE0LDcgKzIxNCw3IEBACiAJCXJldHVybiAwOwogCiAJfSBlbHNlIGlmIChzdHJuY21wKGFyZ3ZbMV0sImRldiIsMykgPT0gMCkgewotCQlpZiAoKGN1cnJfZGV2aWNlIDwgMCkgfHwgKGN1cnJfZGV2aWNlID49IENGR19JREVfTUFYREVWSUNFKSkgeworCQlpZiAoKGN1cnJfZGV2aWNlIDwgMCkgfHwgKGN1cnJfZGV2aWNlID49IENPTkZJR19TWVNfSURFX01BWERFVklDRSkpIHsKIAkJCXB1dHMgKCJcbm5vIElERSBkZXZpY2VzIGF2YWlsYWJsZVxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtMjI0LDcgKzIyNCw3IEBACiAJfSBlbHNlIGlmIChzdHJuY21wKGFyZ3ZbMV0sInBhcnQiLDQpID09IDApIHsKIAkJaW50IGRldiwgb2s7CiAKLQkJZm9yIChvaz0wLCBkZXY9MDsgZGV2PENGR19JREVfTUFYREVWSUNFOyArK2RldikgeworCQlmb3IgKG9rPTAsIGRldj0wOyBkZXY8Q09ORklHX1NZU19JREVfTUFYREVWSUNFOyArK2RldikgewogCQkJaWYgKGlkZV9kZXZfZGVzY1tkZXZdLnBhcnRfdHlwZSE9UEFSVF9UWVBFX1VOS05PV04pIHsKIAkJCQkrK29rOwogCQkJCWlmIChkZXYpCkBAIC0yNDUsNyArMjQ1LDcgQEAKIAkJaW50IGRldiA9IChpbnQpc2ltcGxlX3N0cnRvdWwoYXJndlsyXSwgTlVMTCwgMTApOwogCiAJCXByaW50ZiAoIlxuSURFIGRldmljZSAlZDogIiwgZGV2KTsKLQkJaWYgKGRldiA+PSBDRkdfSURFX01BWERFVklDRSkgeworCQlpZiAoZGV2ID49IENPTkZJR19TWVNfSURFX01BWERFVklDRSkgewogCQkJcHV0cyAoInVua25vd24gZGV2aWNlXG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC0yOTYsNyArMjk2LDcgQEAKIAkJdWxvbmcgYWRkciA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMl0sIE5VTEwsIDE2KTsKIAkJdWxvbmcgY250ICA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbNF0sIE5VTEwsIDE2KTsKIAkJdWxvbmcgbjsKLSNpZmRlZiBDRkdfNjRCSVRfTEJBCisjaWZkZWYgQ09ORklHX1NZU182NEJJVF9MQkEKIAkJbGJhaW50X3QgYmxrICA9IHNpbXBsZV9zdHJ0b3VsbChhcmd2WzNdLCBOVUxMLCAxNik7CiAKIAkJcHJpbnRmICgiXG5JREUgcmVhZDogZGV2aWNlICVkIGJsb2NrICMgJXFkLCBjb3VudCAlbGQgLi4uICIsCkBAIC0zMjUsNyArMzI1LDcgQEAKIAkJdWxvbmcgYWRkciA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMl0sIE5VTEwsIDE2KTsKIAkJdWxvbmcgY250ICA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbNF0sIE5VTEwsIDE2KTsKIAkJdWxvbmcgbjsKLSNpZmRlZiBDRkdfNjRCSVRfTEJBCisjaWZkZWYgQ09ORklHX1NZU182NEJJVF9MQkEKIAkJbGJhaW50X3QgYmxrICA9IHNpbXBsZV9zdHJ0b3VsbChhcmd2WzNdLCBOVUxMLCAxNik7CiAKIAkJcHJpbnRmICgiXG5JREUgd3JpdGU6IGRldmljZSAlZCBibG9jayAjICVxZCwgY291bnQgJWxkIC4uLiAiLApAQCAtMzcxLDcgKzM3MSw3IEBACiAJc2hvd19ib290X3Byb2dyZXNzICg0MSk7CiAJc3dpdGNoIChhcmdjKSB7CiAJY2FzZSAxOgotCQlhZGRyID0gQ0ZHX0xPQURfQUREUjsKKwkJYWRkciA9IENPTkZJR19TWVNfTE9BRF9BRERSOwogCQlib290X2RldmljZSA9IGdldGVudiAoImJvb3RkZXZpY2UiKTsKIAkJYnJlYWs7CiAJY2FzZSAyOgpAQCAtNTI1LDggKzUyNSw4IEBACiBfX2lkZV9vdXRiKGludCBkZXYsIGludCBwb3J0LCB1bnNpZ25lZCBjaGFyIHZhbCkKIHsKIAlkZWJ1ZyAoImlkZV9vdXRiIChkZXY9ICVkLCBwb3J0PSAweCV4LCB2YWw9IDB4JTAyeCkgOiBAIDB4JTA4bHhcbiIsCi0JCWRldiwgcG9ydCwgdmFsLCAoQVRBX0NVUlJfQkFTRShkZXYpK0NGR19BVEFfUE9SVF9BRERSKHBvcnQpKSk7Ci0Jb3V0Yih2YWwsIChBVEFfQ1VSUl9CQVNFKGRldikrQ0ZHX0FUQV9QT1JUX0FERFIocG9ydCkpKTsKKwkJZGV2LCBwb3J0LCB2YWwsIChBVEFfQ1VSUl9CQVNFKGRldikrQ09ORklHX1NZU19BVEFfUE9SVF9BRERSKHBvcnQpKSk7CisJb3V0Yih2YWwsIChBVEFfQ1VSUl9CQVNFKGRldikrQ09ORklHX1NZU19BVEFfUE9SVF9BRERSKHBvcnQpKSk7CiB9CiB2b2lkIGlubGluZSBpZGVfb3V0YiAoaW50IGRldiwgaW50IHBvcnQsIHVuc2lnbmVkIGNoYXIgdmFsKQogCQlfX2F0dHJpYnV0ZV9fKCh3ZWFrLCBhbGlhcygiX19pZGVfb3V0YiIpKSk7CkBAIC01MzUsOSArNTM1LDkgQEAKIF9faWRlX2luYihpbnQgZGV2LCBpbnQgcG9ydCkKIHsKIAl1Y2hhciB2YWw7Ci0JdmFsID0gaW5iKChBVEFfQ1VSUl9CQVNFKGRldikrQ0ZHX0FUQV9QT1JUX0FERFIocG9ydCkpKTsKKwl2YWwgPSBpbmIoKEFUQV9DVVJSX0JBU0UoZGV2KStDT05GSUdfU1lTX0FUQV9QT1JUX0FERFIocG9ydCkpKTsKIAlkZWJ1ZyAoImlkZV9pbmIgKGRldj0gJWQsIHBvcnQ9IDB4JXgpIDogQCAweCUwOGx4IC0+IDB4JTAyeFxuIiwKLQkJZGV2LCBwb3J0LCAoQVRBX0NVUlJfQkFTRShkZXYpK0NGR19BVEFfUE9SVF9BRERSKHBvcnQpKSwgdmFsKTsKKwkJZGV2LCBwb3J0LCAoQVRBX0NVUlJfQkFTRShkZXYpK0NPTkZJR19TWVNfQVRBX1BPUlRfQUREUihwb3J0KSksIHZhbCk7CiAJcmV0dXJuIHZhbDsKIH0KIHVuc2lnbmVkIGNoYXIgaW5saW5lIGlkZV9pbmIoaW50IGRldiwgaW50IHBvcnQpCkBAIC01NTcsNyArNTU3LDcgQEAKIHsKIAogI2lmZGVmIENPTkZJR19JREVfOHh4X0RJUkVDVAotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBwY21jb25mOHh4X3QgKnBjbXAgPSAmKGltbXItPmltX3BjbWNpYSk7CiAjZW5kaWYKIAl1bnNpZ25lZCBjaGFyIGM7CkBAIC02MzksMTcgKzYzOSwxNyBAQAogCSAqIEFjY29yZGluZyB0byBzcGVjLCB0aGlzIGNhbiB0YWtlIHVwIHRvIDMxIHNlY29uZHMhCiAJICovCiAjaWZuZGVmIENPTkZJR19BTUlHQU9ORUczU0UKLQlmb3IgKGJ1cz0wOyBidXM8Q0ZHX0lERV9NQVhCVVM7ICsrYnVzKSB7Ci0JCWludCBkZXYgPSBidXMgKiAoQ0ZHX0lERV9NQVhERVZJQ0UgLyBDRkdfSURFX01BWEJVUyk7CisJZm9yIChidXM9MDsgYnVzPENPTkZJR19TWVNfSURFX01BWEJVUzsgKytidXMpIHsKKwkJaW50IGRldiA9IGJ1cyAqIChDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UgLyBDT05GSUdfU1lTX0lERV9NQVhCVVMpOwogI2Vsc2UKIAlzID0gZ2V0ZW52KCJpZGVfbWF4YnVzIik7CiAJaWYgKHMpCiAJCW1heF9idXNfc2NhbiA9IHNpbXBsZV9zdHJ0b2wocywgTlVMTCwgMTApOwogCWVsc2UKLQkJbWF4X2J1c19zY2FuID0gQ0ZHX0lERV9NQVhCVVM7CisJCW1heF9idXNfc2NhbiA9IENPTkZJR19TWVNfSURFX01BWEJVUzsKIAogCWZvciAoYnVzPTA7IGJ1czxtYXhfYnVzX3NjYW47ICsrYnVzKSB7Ci0JCWludCBkZXYgPSBidXMgKiAoQ0ZHX0lERV9NQVhERVZJQ0UgLyBtYXhfYnVzX3NjYW4pOworCQlpbnQgZGV2ID0gYnVzICogKENPTkZJR19TWVNfSURFX01BWERFVklDRSAvIG1heF9idXNfc2Nhbik7CiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19JREVfOHh4X1BDQ0FSRApAQCAtNzIyLDcgKzcyMiw3IEBACiAJaWRlX2xlZCAoKExFRF9JREUxIHwgTEVEX0lERTIpLCAwKTsJLyogTEVEJ3Mgb2ZmCSovCiAKIAljdXJyX2RldmljZSA9IC0xOwotCWZvciAoaT0wOyBpPENGR19JREVfTUFYREVWSUNFOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX0lERV9NQVhERVZJQ0U7ICsraSkgewogI2lmZGVmIENPTkZJR19JREVfTEVECiAJCWludCBsZWQgPSAoSURFX0JVUyhpKSA9PSAwKSA/IExFRF9JREUxIDogTEVEX0lERTI7CiAjZW5kaWYKQEAgLTc1Myw3ICs3NTMsNyBAQAogCiBibG9ja19kZXZfZGVzY190ICogaWRlX2dldF9kZXYoaW50IGRldikKIHsKLQlyZXR1cm4gKGRldiA8IENGR19JREVfTUFYREVWSUNFKSA/ICZpZGVfZGV2X2Rlc2NbZGV2XSA6IE5VTEw7CisJcmV0dXJuIChkZXYgPCBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UpID8gJmlkZV9kZXZfZGVzY1tkZXZdIDogTlVMTDsKIH0KIAogCkBAIC03NjIsNyArNzYyLDcgQEAKIHN0YXRpYyB2b2lkCiBzZXRfcGNtY2lhX3RpbWluZyAoaW50IHBtb2RlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBwY21jb25mOHh4X3QgKnBjbXAgPSAmKGltbXItPmltX3BjbWNpYSk7CiAJdWxvbmcgdGltaW5nczsKIApAQCAtNzc1LDMzICs3NzUsMzMgQEAKIAogCS8qIElERSAwCiAJICovCi0JcGNtcC0+cGNtY19wYnIwID0gQ0ZHX1BDTUNJQV9QQlIwOwotCXBjbXAtPnBjbWNfcG9yMCA9IENGR19QQ01DSUFfUE9SMAotI2lmIChDRkdfUENNQ0lBX1BPUjAgIT0gMCkKKwlwY21wLT5wY21jX3BicjAgPSBDT05GSUdfU1lTX1BDTUNJQV9QQlIwOworCXBjbXAtPnBjbWNfcG9yMCA9IENPTkZJR19TWVNfUENNQ0lBX1BPUjAKKyNpZiAoQ09ORklHX1NZU19QQ01DSUFfUE9SMCAhPSAwKQogCQkJfCB0aW1pbmdzCiAjZW5kaWYKIAkJCTsKIAlkZWJ1ZyAoIlBCUjA6ICUwOHggIFBPUjA6ICUwOHhcbiIsIHBjbXAtPnBjbWNfcGJyMCwgcGNtcC0+cGNtY19wb3IwKTsKIAotCXBjbXAtPnBjbWNfcGJyMSA9IENGR19QQ01DSUFfUEJSMTsKLQlwY21wLT5wY21jX3BvcjEgPSBDRkdfUENNQ0lBX1BPUjEKLSNpZiAoQ0ZHX1BDTUNJQV9QT1IxICE9IDApCisJcGNtcC0+cGNtY19wYnIxID0gQ09ORklHX1NZU19QQ01DSUFfUEJSMTsKKwlwY21wLT5wY21jX3BvcjEgPSBDT05GSUdfU1lTX1BDTUNJQV9QT1IxCisjaWYgKENPTkZJR19TWVNfUENNQ0lBX1BPUjEgIT0gMCkKIAkJCXwgdGltaW5ncwogI2VuZGlmCiAJCQk7CiAJZGVidWcgKCJQQlIxOiAlMDh4ICBQT1IxOiAlMDh4XG4iLCBwY21wLT5wY21jX3BicjEsIHBjbXAtPnBjbWNfcG9yMSk7CiAKLQlwY21wLT5wY21jX3BicjIgPSBDRkdfUENNQ0lBX1BCUjI7Ci0JcGNtcC0+cGNtY19wb3IyID0gQ0ZHX1BDTUNJQV9QT1IyCi0jaWYgKENGR19QQ01DSUFfUE9SMiAhPSAwKQorCXBjbXAtPnBjbWNfcGJyMiA9IENPTkZJR19TWVNfUENNQ0lBX1BCUjI7CisJcGNtcC0+cGNtY19wb3IyID0gQ09ORklHX1NZU19QQ01DSUFfUE9SMgorI2lmIChDT05GSUdfU1lTX1BDTUNJQV9QT1IyICE9IDApCiAJCQl8IHRpbWluZ3MKICNlbmRpZgogCQkJOwogCWRlYnVnICgiUEJSMjogJTA4eCAgUE9SMjogJTA4eFxuIiwgcGNtcC0+cGNtY19wYnIyLCBwY21wLT5wY21jX3BvcjIpOwogCi0JcGNtcC0+cGNtY19wYnIzID0gQ0ZHX1BDTUNJQV9QQlIzOwotCXBjbXAtPnBjbWNfcG9yMyA9IENGR19QQ01DSUFfUE9SMwotI2lmIChDRkdfUENNQ0lBX1BPUjMgIT0gMCkKKwlwY21wLT5wY21jX3BicjMgPSBDT05GSUdfU1lTX1BDTUNJQV9QQlIzOworCXBjbXAtPnBjbWNfcG9yMyA9IENPTkZJR19TWVNfUENNQ0lBX1BPUjMKKyNpZiAoQ09ORklHX1NZU19QQ01DSUFfUE9SMyAhPSAwKQogCQkJfCB0aW1pbmdzCiAjZW5kaWYKIAkJCTsKQEAgLTgwOSwzMyArODA5LDMzIEBACiAKIAkvKiBJREUgMQogCSAqLwotCXBjbXAtPnBjbWNfcGJyNCA9IENGR19QQ01DSUFfUEJSNDsKLQlwY21wLT5wY21jX3BvcjQgPSBDRkdfUENNQ0lBX1BPUjQKLSNpZiAoQ0ZHX1BDTUNJQV9QT1I0ICE9IDApCisJcGNtcC0+cGNtY19wYnI0ID0gQ09ORklHX1NZU19QQ01DSUFfUEJSNDsKKwlwY21wLT5wY21jX3BvcjQgPSBDT05GSUdfU1lTX1BDTUNJQV9QT1I0CisjaWYgKENPTkZJR19TWVNfUENNQ0lBX1BPUjQgIT0gMCkKIAkJCXwgdGltaW5ncwogI2VuZGlmCiAJCQk7CiAJZGVidWcgKCJQQlI0OiAlMDh4ICBQT1I0OiAlMDh4XG4iLCBwY21wLT5wY21jX3BicjQsIHBjbXAtPnBjbWNfcG9yNCk7CiAKLQlwY21wLT5wY21jX3BicjUgPSBDRkdfUENNQ0lBX1BCUjU7Ci0JcGNtcC0+cGNtY19wb3I1ID0gQ0ZHX1BDTUNJQV9QT1I1Ci0jaWYgKENGR19QQ01DSUFfUE9SNSAhPSAwKQorCXBjbXAtPnBjbWNfcGJyNSA9IENPTkZJR19TWVNfUENNQ0lBX1BCUjU7CisJcGNtcC0+cGNtY19wb3I1ID0gQ09ORklHX1NZU19QQ01DSUFfUE9SNQorI2lmIChDT05GSUdfU1lTX1BDTUNJQV9QT1I1ICE9IDApCiAJCQl8IHRpbWluZ3MKICNlbmRpZgogCQkJOwogCWRlYnVnICgiUEJSNTogJTA4eCAgUE9SNTogJTA4eFxuIiwgcGNtcC0+cGNtY19wYnI1LCBwY21wLT5wY21jX3BvcjUpOwogCi0JcGNtcC0+cGNtY19wYnI2ID0gQ0ZHX1BDTUNJQV9QQlI2OwotCXBjbXAtPnBjbWNfcG9yNiA9IENGR19QQ01DSUFfUE9SNgotI2lmIChDRkdfUENNQ0lBX1BPUjYgIT0gMCkKKwlwY21wLT5wY21jX3BicjYgPSBDT05GSUdfU1lTX1BDTUNJQV9QQlI2OworCXBjbXAtPnBjbWNfcG9yNiA9IENPTkZJR19TWVNfUENNQ0lBX1BPUjYKKyNpZiAoQ09ORklHX1NZU19QQ01DSUFfUE9SNiAhPSAwKQogCQkJfCB0aW1pbmdzCiAjZW5kaWYKIAkJCTsKIAlkZWJ1ZyAoIlBCUjY6ICUwOHggIFBPUjY6ICUwOHhcbiIsIHBjbXAtPnBjbWNfcGJyNiwgcGNtcC0+cGNtY19wb3I2KTsKIAotCXBjbXAtPnBjbWNfcGJyNyA9IENGR19QQ01DSUFfUEJSNzsKLQlwY21wLT5wY21jX3BvcjcgPSBDRkdfUENNQ0lBX1BPUjcKLSNpZiAoQ0ZHX1BDTUNJQV9QT1I3ICE9IDApCisJcGNtcC0+cGNtY19wYnI3ID0gQ09ORklHX1NZU19QQ01DSUFfUEJSNzsKKwlwY21wLT5wY21jX3BvcjcgPSBDT05GSUdfU1lTX1BDTUNJQV9QT1I3CisjaWYgKENPTkZJR19TWVNfUENNQ0lBX1BPUjcgIT0gMCkKIAkJCXwgdGltaW5ncwogI2VuZGlmCiAJCQk7CkBAIC0xMDc5LDcgKzEwNzksNyBAQAogCWlmIChzKSB7CiAJCW1heF9idXNfc2NhbiA9IHNpbXBsZV9zdHJ0b2wocywgTlVMTCwgMTApOwogCX0gZWxzZSB7Ci0JCW1heF9idXNfc2NhbiA9IENGR19JREVfTUFYQlVTOworCQltYXhfYnVzX3NjYW4gPSBDT05GSUdfU1lTX0lERV9NQVhCVVM7CiAJfQogCWlmIChkZXZpY2UgPj0gbWF4X2J1c19zY2FuKjIpIHsKIAkJZGV2X2Rlc2MtPnR5cGU9REVWX1RZUEVfVU5LTk9XTjsKQEAgLTEzNTksNyArMTM1OSw3IEBACiAJCQkvKiB3cml0ZSBoaWdoIGJpdHMgKi8KIAkJCWlkZV9vdXRiIChkZXZpY2UsIEFUQV9TRUNUX0NOVCwgMCk7CiAJCQlpZGVfb3V0YiAoZGV2aWNlLCBBVEFfTEJBX0xPVywJKGJsa25yID4+IDI0KSAmIDB4RkYpOwotI2lmZGVmIENGR182NEJJVF9MQkEKKyNpZmRlZiBDT05GSUdfU1lTXzY0QklUX0xCQQogCQkJaWRlX291dGIgKGRldmljZSwgQVRBX0xCQV9NSUQsCShibGtuciA+PiAzMikgJiAweEZGKTsKIAkJCWlkZV9vdXRiIChkZXZpY2UsIEFUQV9MQkFfSElHSCwgKGJsa25yID4+IDQwKSAmIDB4RkYpOwogI2Vsc2UKQEAgLTEzOTcsNyArMTM5Nyw3IEBACiAJCX0KIAogCQlpZiAoKGMmKEFUQV9TVEFUX0RSUXxBVEFfU1RBVF9CVVNZfEFUQV9TVEFUX0VSUikpICE9IEFUQV9TVEFUX0RSUSkgewotI2lmIGRlZmluZWQoQ0ZHXzY0QklUX0xCQSkgJiYgZGVmaW5lZChDRkdfNjRCSVRfVlNQUklOVEYpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTXzY0QklUX0xCQSkgJiYgZGVmaW5lZChDT05GSUdfU1lTXzY0QklUX1ZTUFJJTlRGKQogCQkJcHJpbnRmICgiRXJyb3IgKG5vIElSUSkgZGV2ICVkIGJsayAlcWQ6IHN0YXR1cyAweCUwMnhcbiIsCiAJCQkJZGV2aWNlLCBibGtuciwgYyk7CiAjZWxzZQpAQCAtMTQ1NCw3ICsxNDU0LDcgQEAKIAkJCS8qIHdyaXRlIGhpZ2ggYml0cyAqLwogCQkJaWRlX291dGIgKGRldmljZSwgQVRBX1NFQ1RfQ05ULCAwKTsKIAkJCWlkZV9vdXRiIChkZXZpY2UsIEFUQV9MQkFfTE9XLAkoYmxrbnIgPj4gMjQpICYgMHhGRik7Ci0jaWZkZWYgQ0ZHXzY0QklUX0xCQQorI2lmZGVmIENPTkZJR19TWVNfNjRCSVRfTEJBCiAJCQlpZGVfb3V0YiAoZGV2aWNlLCBBVEFfTEJBX01JRCwJKGJsa25yID4+IDMyKSAmIDB4RkYpOwogCQkJaWRlX291dGIgKGRldmljZSwgQVRBX0xCQV9ISUdILCAoYmxrbnIgPj4gNDApICYgMHhGRik7CiAjZWxzZQpAQCAtMTQ4Nyw3ICsxNDg3LDcgQEAKIAkJYyA9IGlkZV93YWl0IChkZXZpY2UsIElERV9USU1FX09VVCk7CS8qIGNhbid0IHRha2Ugb3ZlciA1MDAgbXMgKi8KIAogCQlpZiAoKGMmKEFUQV9TVEFUX0RSUXxBVEFfU1RBVF9CVVNZfEFUQV9TVEFUX0VSUikpICE9IEFUQV9TVEFUX0RSUSkgewotI2lmIGRlZmluZWQoQ0ZHXzY0QklUX0xCQSkgJiYgZGVmaW5lZChDRkdfNjRCSVRfVlNQUklOVEYpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTXzY0QklUX0xCQSkgJiYgZGVmaW5lZChDT05GSUdfU1lTXzY0QklUX1ZTUFJJTlRGKQogCQkJcHJpbnRmICgiRXJyb3IgKG5vIElSUSkgZGV2ICVkIGJsayAlcWQ6IHN0YXR1cyAweCUwMnhcbiIsCiAJCQkJZGV2aWNlLCBibGtuciwgYyk7CiAjZWxzZQpAQCAtMTU2NywxNSArMTU2NywxNSBAQAogCiBzdGF0aWMgdm9pZCBpZGVfcmVzZXQgKHZvaWQpCiB7Ci0jaWYgZGVmaW5lZChDRkdfUEJfMTJWX0VOQUJMRSkgfHwgZGVmaW5lZChDRkdfUEJfSURFX01PVE9SKQotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19QQl8xMlZfRU5BQkxFKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfUEJfSURFX01PVE9SKQorCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICNlbmRpZgogCWludCBpOwogCiAJY3Vycl9kZXZpY2UgPSAtMTsKLQlmb3IgKGk9MDsgaTxDRkdfSURFX01BWEJVUzsgKytpKQorCWZvciAoaT0wOyBpPENPTkZJR19TWVNfSURFX01BWEJVUzsgKytpKQogCQlpZGVfYnVzX29rW2ldID0gMDsKLQlmb3IgKGk9MDsgaTxDRkdfSURFX01BWERFVklDRTsgKytpKQorCWZvciAoaT0wOyBpPENPTkZJR19TWVNfSURFX01BWERFVklDRTsgKytpKQogCQlpZGVfZGV2X2Rlc2NbaV0udHlwZSA9IERFVl9UWVBFX1VOS05PV047CiAKIAlpZGVfc2V0X3Jlc2V0ICgxKTsgLyogYXNzZXJ0IHJlc2V0ICovCkBAIC0xNTg1LDExICsxNTg1LDExIEBACiAKIAlXQVRDSERPR19SRVNFVCgpOwogCi0jaWZkZWYgQ0ZHX1BCXzEyVl9FTkFCTEUKLQlpbW1yLT5pbV9jcG0uY3BfcGJkYXQgJj0gfihDRkdfUEJfMTJWX0VOQUJMRSk7CS8qIDEyViBFbmFibGUgb3V0cHV0IE9GRiAqLwotCWltbXItPmltX2NwbS5jcF9wYnBhciAmPSB+KENGR19QQl8xMlZfRU5BQkxFKTsKLQlpbW1yLT5pbV9jcG0uY3BfcGJvZHIgJj0gfihDRkdfUEJfMTJWX0VOQUJMRSk7Ci0JaW1tci0+aW1fY3BtLmNwX3BiZGlyIHw9ICAgQ0ZHX1BCXzEyVl9FTkFCTEU7CisjaWZkZWYgQ09ORklHX1NZU19QQl8xMlZfRU5BQkxFCisJaW1tci0+aW1fY3BtLmNwX3BiZGF0ICY9IH4oQ09ORklHX1NZU19QQl8xMlZfRU5BQkxFKTsJLyogMTJWIEVuYWJsZSBvdXRwdXQgT0ZGICovCisJaW1tci0+aW1fY3BtLmNwX3BicGFyICY9IH4oQ09ORklHX1NZU19QQl8xMlZfRU5BQkxFKTsKKwlpbW1yLT5pbV9jcG0uY3BfcGJvZHIgJj0gfihDT05GSUdfU1lTX1BCXzEyVl9FTkFCTEUpOworCWltbXItPmltX2NwbS5jcF9wYmRpciB8PSAgIENPTkZJR19TWVNfUEJfMTJWX0VOQUJMRTsKIAogCS8qIHdhaXQgNTAwIG1zIGZvciB0aGUgdm9sdGFnZSB0byBzdGFiaWxpemUKIAkgKi8KQEAgLTE1OTcsMTkgKzE1OTcsMTkgQEAKIAkJdWRlbGF5ICgxMDAwKTsKIAl9CiAKLQlpbW1yLT5pbV9jcG0uY3BfcGJkYXQgfD0gICBDRkdfUEJfMTJWX0VOQUJMRTsJLyogMTJWIEVuYWJsZSBvdXRwdXQgT04gKi8KLSNlbmRpZgkvKiBDRkdfUEJfMTJWX0VOQUJMRSAqLworCWltbXItPmltX2NwbS5jcF9wYmRhdCB8PSAgIENPTkZJR19TWVNfUEJfMTJWX0VOQUJMRTsJLyogMTJWIEVuYWJsZSBvdXRwdXQgT04gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX1BCXzEyVl9FTkFCTEUgKi8KIAotI2lmZGVmIENGR19QQl9JREVfTU9UT1IKKyNpZmRlZiBDT05GSUdfU1lTX1BCX0lERV9NT1RPUgogCS8qIGNvbmZpZ3VyZSBJREUgTW90b3Igdm9sdGFnZSBtb25pdG9yIHBpbiBhcyBpbnB1dCAqLwotCWltbXItPmltX2NwbS5jcF9wYnBhciAmPSB+KENGR19QQl9JREVfTU9UT1IpOwotCWltbXItPmltX2NwbS5jcF9wYm9kciAmPSB+KENGR19QQl9JREVfTU9UT1IpOwotCWltbXItPmltX2NwbS5jcF9wYmRpciAmPSB+KENGR19QQl9JREVfTU9UT1IpOworCWltbXItPmltX2NwbS5jcF9wYnBhciAmPSB+KENPTkZJR19TWVNfUEJfSURFX01PVE9SKTsKKwlpbW1yLT5pbV9jcG0uY3BfcGJvZHIgJj0gfihDT05GSUdfU1lTX1BCX0lERV9NT1RPUik7CisJaW1tci0+aW1fY3BtLmNwX3BiZGlyICY9IH4oQ09ORklHX1NZU19QQl9JREVfTU9UT1IpOwogCiAJLyogd2FpdCB1cCB0byAxIHMgZm9yIHRoZSBtb3RvciB2b2x0YWdlIHRvIHN0YWJpbGl6ZQogCSAqLwogCWZvciAoaT0wOyBpPDEwMDA7ICsraSkgewotCQlpZiAoKGltbXItPmltX2NwbS5jcF9wYmRhdCAmIENGR19QQl9JREVfTU9UT1IpICE9IDApIHsKKwkJaWYgKChpbW1yLT5pbV9jcG0uY3BfcGJkYXQgJiBDT05GSUdfU1lTX1BCX0lERV9NT1RPUikgIT0gMCkgewogCQkJYnJlYWs7CiAJCX0KIAkJdWRlbGF5ICgxMDAwKTsKQEAgLTE2MjYsNyArMTYyNiw3IEBACiAjICBlbmRpZgogIyBlbmRpZgkvKiBDT05GSUdfU1RBVFVTX0xFRCAqLwogCX0KLSNlbmRpZgkvKiBDRkdfUEJfSURFX01PVE9SICovCisjZW5kaWYJLyogQ09ORklHX1NZU19QQl9JREVfTU9UT1IgKi8KIAogCVdBVENIRE9HX1JFU0VUKCk7CiAKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfaW1tYXAuYyBiL2NvbW1vbi9jbWRfaW1tYXAuYwppbmRleCBkNzU4MjY5Li4xM2FkOTRlIDEwMDY0NAotLS0gYS9jb21tb24vY21kX2ltbWFwLmMKKysrIGIvY29tbW9uL2NtZF9pbW1hcC5jCkBAIC01Miw3ICs1Miw3IEBACiBpbnQKIGRvX3NpdWluZm8gKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKICNpZiBkZWZpbmVkKENPTkZJR184eHgpCiAJdm9sYXRpbGUgc3lzY29uZjh4eF90ICpzYyA9ICZpbW1hcC0+aW1fc2l1X2NvbmY7CkBAIC04Myw3ICs4Myw3IEBACiBpbnQKIGRvX21lbWNpbmZvIChjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAjaWYgZGVmaW5lZChDT05GSUdfOHh4KQogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKQEAgLTE1MSw3ICsxNTEsNyBAQAogaW50CiBkb19jYXJpbmZvIChjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAjaWYgZGVmaW5lZChDT05GSUdfOHh4KQogCXZvbGF0aWxlIGNhcjh4eF90ICpjYXIgPSAmaW1tYXAtPmltX2Nsa3JzdDsKQEAgLTIzNSw3ICsyMzUsNyBAQAogaW50CiBkb19pb3BpbmZvIChjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAjaWYgZGVmaW5lZChDT05GSUdfOHh4KQogCXZvbGF0aWxlIGlvcDh4eF90ICppb3AgPSAmaW1tYXAtPmltX2lvcG9ydDsKQEAgLTUwMCw3ICs1MDAsNyBAQAogaW50CiBkb19icmdpbmZvIChjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAjaWYgZGVmaW5lZChDT05GSUdfOHh4KQogCXZvbGF0aWxlIGNwbTh4eF90ICpjcCA9ICZpbW1hcC0+aW1fY3BtOwpAQCAtNTI0LDcgKzUyNCw3IEBACiBpbnQKIGRvX2kyY2luZm8gKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKICNpZiBkZWZpbmVkKENPTkZJR184eHgpCiAJdm9sYXRpbGUgaTJjOHh4X3QgKmkyYyA9ICZpbW1hcC0+aW1faTJjOwpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9qZmZzMi5jIGIvY29tbW9uL2NtZF9qZmZzMi5jCmluZGV4IGM2OTIwYzkuLjc5MWE1NzIgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfamZmczIuYworKysgYi9jb21tb24vY21kX2pmZnMyLmMKQEAgLTc3Miw3ICs3NzIsNyBAQAogewogCWlmICh0eXBlID09IE1URF9ERVZfVFlQRV9OT1IpIHsKICNpZiBkZWZpbmVkKENPTkZJR19DTURfRkxBU0gpCi0JCWlmIChudW0gPCBDRkdfTUFYX0ZMQVNIX0JBTktTKSB7CisJCWlmIChudW0gPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUykgewogCQkJZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW107CiAJCQkqc2l6ZSA9IGZsYXNoX2luZm9bbnVtXS5zaXplOwogCkBAIC03ODAsMjQgKzc4MCwyNCBAQAogCQl9CiAKIAkJcHJpbnRmKCJubyBzdWNoIEZMQVNIIGRldmljZTogJXMlZCAodmFsaWQgcmFuZ2UgMCAuLi4gJWRcbiIsCi0JCQkJTVREX0RFVl9UWVBFKHR5cGUpLCBudW0sIENGR19NQVhfRkxBU0hfQkFOS1MgLSAxKTsKKwkJCQlNVERfREVWX1RZUEUodHlwZSksIG51bSwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgLSAxKTsKICNlbHNlCiAJCXByaW50Zigic3VwcG9ydCBmb3IgRkxBU0ggZGV2aWNlcyBub3QgcHJlc2VudFxuIik7CiAjZW5kaWYKIAl9IGVsc2UgaWYgKHR5cGUgPT0gTVREX0RFVl9UWVBFX05BTkQpIHsKICNpZiBkZWZpbmVkKENPTkZJR19KRkZTMl9OQU5EKSAmJiBkZWZpbmVkKENPTkZJR19DTURfTkFORCkKLQkJaWYgKG51bSA8IENGR19NQVhfTkFORF9ERVZJQ0UpIHsKKwkJaWYgKG51bSA8IENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFKSB7CiAjaWZuZGVmIENPTkZJR19OQU5EX0xFR0FDWQogCQkJKnNpemUgPSBuYW5kX2luZm9bbnVtXS5zaXplOwogI2Vsc2UKLQkJCWV4dGVybiBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ0ZHX01BWF9OQU5EX0RFVklDRV07CisJCQlleHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFXTsKIAkJCSpzaXplID0gbmFuZF9kZXZfZGVzY1tudW1dLnRvdGxlbjsKICNlbmRpZgogCQkJcmV0dXJuIDA7CiAJCX0KIAogCQlwcmludGYoIm5vIHN1Y2ggTkFORCBkZXZpY2U6ICVzJWQgKHZhbGlkIHJhbmdlIDAgLi4uICVkKVxuIiwKLQkJCQlNVERfREVWX1RZUEUodHlwZSksIG51bSwgQ0ZHX01BWF9OQU5EX0RFVklDRSAtIDEpOworCQkJCU1URF9ERVZfVFlQRSh0eXBlKSwgbnVtLCBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRSAtIDEpOwogI2Vsc2UKIAkJcHJpbnRmKCJzdXBwb3J0IGZvciBOQU5EIGRldmljZXMgbm90IHByZXNlbnRcbiIpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9jb21tb24vY21kX2xvYWQuYyBiL2NvbW1vbi9jbWRfbG9hZC5jCmluZGV4IDEzNTFmZTIuLjY1YTRkNjkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfbG9hZC5jCisrKyBiL2NvbW1vbi9jbWRfbG9hZC5jCkBAIC01OCw3ICs1OCw3IEBACiAJaW50IGk7CiAJY2hhciAqZW52X2VjaG87CiAJaW50IHJjb2RlID0gMDsKLSNpZmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UKKyNpZmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCiAJaW50IGxvYWRfYmF1ZHJhdGUsIGN1cnJlbnRfYmF1ZHJhdGU7CiAKIAlsb2FkX2JhdWRyYXRlID0gY3VycmVudF9iYXVkcmF0ZSA9IGdkLT5iYXVkcmF0ZTsKQEAgLTcwLDcgKzcwLDcgQEAKIAkJZG9fZWNobyA9IDA7CiAJfQogCi0jaWZkZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCisjaWZkZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQogCWlmIChhcmdjID49IDIpIHsKIAkJb2Zmc2V0ID0gc2ltcGxlX3N0cnRvbChhcmd2WzFdLCBOVUxMLCAxNik7CiAJfQpAQCAtOTMsMTEgKzkzLDExIEBACiAJCQkJYnJlYWs7CiAJCX0KIAl9Ci0jZWxzZQkvKiAhIENGR19MT0FEU19CQVVEX0NIQU5HRSAqLworI2Vsc2UJLyogISBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFICovCiAJaWYgKGFyZ2MgPT0gMikgewogCQlvZmZzZXQgPSBzaW1wbGVfc3RydG9sKGFyZ3ZbMV0sIE5VTEwsIDE2KTsKIAl9Ci0jZW5kaWYJLyogQ0ZHX0xPQURTX0JBVURfQ0hBTkdFICovCisjZW5kaWYJLyogQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRSAqLwogCiAJcHJpbnRmICgiIyMgUmVhZHkgZm9yIFMtUmVjb3JkIGRvd25sb2FkIC4uLlxuIik7CiAKQEAgLTEyMyw3ICsxMjMsNyBAQAogCQlsb2FkX2FkZHIgPSBhZGRyOwogCX0KIAotI2lmZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQorI2lmZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UKIAlpZiAobG9hZF9iYXVkcmF0ZSAhPSBjdXJyZW50X2JhdWRyYXRlKSB7CiAJCXByaW50ZiAoIiMjIFN3aXRjaCBiYXVkcmF0ZSB0byAlZCBicHMgYW5kIHByZXNzIEVTQyAuLi5cbiIsCiAJCQljdXJyZW50X2JhdWRyYXRlKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQAogCQljYXNlIFNSRUNfREFUQTM6CiAJCWNhc2UgU1JFQ19EQVRBNDoKIAkJICAgIHN0b3JlX2FkZHIgPSBhZGRyICsgb2Zmc2V0OwotI2lmbmRlZiBDRkdfTk9fRkxBU0gKKyNpZm5kZWYgQ09ORklHX1NZU19OT19GTEFTSAogCQkgICAgaWYgKGFkZHIyaW5mbyhzdG9yZV9hZGRyKSkgewogCQkJaW50IHJjOwogCkBAIC0yNTksNyArMjU5LDcgQEAKIHsKIAl1bG9uZyBvZmZzZXQgPSAwOwogCXVsb25nIHNpemUgICA9IDA7Ci0jaWZkZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCisjaWZkZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQogCWludCBzYXZlX2JhdWRyYXRlLCBjdXJyZW50X2JhdWRyYXRlOwogCiAJc2F2ZV9iYXVkcmF0ZSA9IGN1cnJlbnRfYmF1ZHJhdGUgPSBnZC0+YmF1ZHJhdGU7CkBAIC0yNjgsNyArMjY4LDcgQEAKIAlpZiAoYXJnYyA+PSAyKSB7CiAJCW9mZnNldCA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMV0sIE5VTEwsIDE2KTsKIAl9Ci0jaWZkZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCisjaWZkZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQogCWlmIChhcmdjID49IDMpIHsKIAkJc2l6ZSA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMl0sIE5VTEwsIDE2KTsKIAl9CkBAIC0yOTEsMTEgKzI5MSwxMSBAQAogCQkJCWJyZWFrOwogCQl9CiAJfQotI2Vsc2UJLyogISBDRkdfTE9BRFNfQkFVRF9DSEFOR0UgKi8KKyNlbHNlCS8qICEgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRSAqLwogCWlmIChhcmdjID09IDMpIHsKIAkJc2l6ZSA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMl0sIE5VTEwsIDE2KTsKIAl9Ci0jZW5kaWYJLyogQ0ZHX0xPQURTX0JBVURfQ0hBTkdFICovCisjZW5kaWYJLyogQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRSAqLwogCiAJcHJpbnRmICgiIyMgUmVhZHkgZm9yIFMtUmVjb3JkIHVwbG9hZCwgcHJlc3MgRU5URVIgdG8gcHJvY2VlZCAuLi5cbiIpOwogCWZvciAoOzspIHsKQEAgLTMwNyw3ICszMDcsNyBAQAogCX0gZWxzZSB7CiAJCXByaW50ZiAoIiMjIFMtUmVjb3JkIHVwbG9hZCBjb21wbGV0ZVxuIik7CiAJfQotI2lmZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQorI2lmZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UKIAlpZiAoc2F2ZV9iYXVkcmF0ZSAhPSBjdXJyZW50X2JhdWRyYXRlKSB7CiAJCXByaW50ZiAoIiMjIFN3aXRjaCBiYXVkcmF0ZSB0byAlZCBicHMgYW5kIHByZXNzIEVTQyAuLi5cbiIsCiAJCQkoaW50KWN1cnJlbnRfYmF1ZHJhdGUpOwpAQCAtNDQxLDggKzQ0MSw4IEBACiAJaW50IHJjb2RlID0gMDsKIAljaGFyICpzOwogCi0JLyogcHJlLXNldCBvZmZzZXQgZnJvbSBDRkdfTE9BRF9BRERSICovCi0Jb2Zmc2V0ID0gQ0ZHX0xPQURfQUREUjsKKwkvKiBwcmUtc2V0IG9mZnNldCBmcm9tIENPTkZJR19TWVNfTE9BRF9BRERSICovCisJb2Zmc2V0ID0gQ09ORklHX1NZU19MT0FEX0FERFI7CiAKIAkvKiBwcmUtc2V0IG9mZnNldCBmcm9tICRsb2FkYWRkciAqLwogCWlmICgocyA9IGdldGVudigibG9hZGFkZHIiKSkgIT0gTlVMTCkgewpAQCAtMTAwMSw3ICsxMDAxLDcgQEAKIAkJCXN0b3JlX2FkZHIgPSBhZGRyICsgb2Zmc2V0OwogCQkJc2l6ZSArPSByZXM7CiAJCQlhZGRyICs9IHJlczsKLSNpZm5kZWYgQ0ZHX05PX0ZMQVNICisjaWZuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKIAkJCWlmIChhZGRyMmluZm8gKHN0b3JlX2FkZHIpKSB7CiAJCQkJaW50IHJjOwogCkBAIC0xMDQyLDcgKzEwNDIsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0xPQURTKQogCi0jaWZkZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCisjaWZkZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQogVV9CT09UX0NNRCgKIAlsb2FkcywgMywgMCwJZG9fbG9hZF9zZXJpYWwsCiAJImxvYWRzICAgLSBsb2FkIFMtUmVjb3JkIGZpbGUgb3ZlciBzZXJpYWwgbGluZVxuIiwKQEAgLTEwNTEsMTQgKzEwNTEsMTQgQEAKIAkiIHdpdGggb2Zmc2V0ICdvZmYnIGFuZCBiYXVkcmF0ZSAnYmF1ZCdcbiIKICk7CiAKLSNlbHNlCS8qICEgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFICovCisjZWxzZQkvKiAhIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UgKi8KIFVfQk9PVF9DTUQoCiAJbG9hZHMsIDIsIDAsCWRvX2xvYWRfc2VyaWFsLAogCSJsb2FkcyAgIC0gbG9hZCBTLVJlY29yZCBmaWxlIG92ZXIgc2VyaWFsIGxpbmVcbiIsCiAJIlsgb2ZmIF1cbiIKIAkiICAgIC0gbG9hZCBTLVJlY29yZCBmaWxlIG92ZXIgc2VyaWFsIGxpbmUgd2l0aCBvZmZzZXQgJ29mZidcbiIKICk7Ci0jZW5kaWYJLyogQ0ZHX0xPQURTX0JBVURfQ0hBTkdFICovCisjZW5kaWYJLyogQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRSAqLwogCiAvKgogICogU0FWRVMgYWx3YXlzIHJlcXVpcmVzIExPQURTIHN1cHBvcnQsIGJ1dCBub3QgdmljZSB2ZXJzYQpAQCAtMTA2Niw3ICsxMDY2LDcgQEAKIAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX1NBVkVTKQotI2lmZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQorI2lmZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UKIFVfQk9PVF9DTUQoCiAJc2F2ZXMsIDQsIDAsCWRvX3NhdmVfc2VyaWFsLAogCSJzYXZlcyAgIC0gc2F2ZSBTLVJlY29yZCBmaWxlIG92ZXIgc2VyaWFsIGxpbmVcbiIsCkBAIC0xMDc0LDE0ICsxMDc0LDE0IEBACiAJIiAgICAtIHNhdmUgUy1SZWNvcmQgZmlsZSBvdmVyIHNlcmlhbCBsaW5lIgogCSIgd2l0aCBvZmZzZXQgJ29mZicsIHNpemUgJ3NpemUnIGFuZCBiYXVkcmF0ZSAnYmF1ZCdcbiIKICk7Ci0jZWxzZQkvKiAhIENGR19MT0FEU19CQVVEX0NIQU5HRSAqLworI2Vsc2UJLyogISBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFICovCiBVX0JPT1RfQ01EKAogCXNhdmVzLCAzLCAwLAlkb19zYXZlX3NlcmlhbCwKIAkic2F2ZXMgICAtIHNhdmUgUy1SZWNvcmQgZmlsZSBvdmVyIHNlcmlhbCBsaW5lXG4iLAogCSJbIG9mZiBdIFtzaXplXVxuIgogCSIgICAgLSBzYXZlIFMtUmVjb3JkIGZpbGUgb3ZlciBzZXJpYWwgbGluZSB3aXRoIG9mZnNldCAnb2ZmJyBhbmQgc2l6ZSAnc2l6ZSdcbiIKICk7Ci0jZW5kaWYJLyogQ0ZHX0xPQURTX0JBVURfQ0hBTkdFICovCisjZW5kaWYJLyogQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRSAqLwogI2VuZGlmCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9sb2cuYyBiL2NvbW1vbi9jbWRfbG9nLmMKaW5kZXggZmRjYzU3NS4uZmViZGI5MCAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9sb2cuYworKysgYi9jb21tb24vY21kX2xvZy5jCkBAIC02OCw3ICs2OCw3IEBACiAKIHVuc2lnbmVkIGxvbmcgX19sb2didWZmZXJfYmFzZSh2b2lkKQogewotCXJldHVybiBDRkdfU0RSQU1fQkFTRSArIGdkLT5iZC0+YmlfbWVtc2l6ZSAtIExPR0JVRkZfTEVOOworCXJldHVybiBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBnZC0+YmQtPmJpX21lbXNpemUgLSBMT0dCVUZGX0xFTjsKIH0KIHVuc2lnbmVkIGxvbmcgbG9nYnVmZmVyX2Jhc2UgKHZvaWQpIF9fYXR0cmlidXRlX18oKHdlYWssIGFsaWFzKCJfX2xvZ2J1ZmZlcl9iYXNlIikpKTsKIApkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9tZW0uYyBiL2NvbW1vbi9jbWRfbWVtLmMKaW5kZXggMDdiMDhmYi4uZDc2NjZjMiAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9tZW0uYworKysgYi9jb21tb24vY21kX21lbS5jCkBAIC0zODMsNyArMzgzLDcgQEAKIAkJcmV0dXJuIDE7CiAJfQogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAJLyogY2hlY2sgaWYgd2UgYXJlIGNvcHlpbmcgdG8gRmxhc2ggKi8KIAlpZiAoIChhZGRyMmluZm8oZGVzdCkgIT0gTlVMTCkKICNpZmRlZiBDT05GSUdfSEFTX0RBVEFGTEFTSApAQCAtNDYzLDcgKzQ2Myw3IEBACiAKIAkvKiBDaGVjayBpZiB3ZSBhcmUgY29weWluZyBmcm9tIERhdGFGbGFzaCB0byBSQU0gKi8KIAlpZiAoYWRkcl9kYXRhZmxhc2goYWRkcikgJiYgIWFkZHJfZGF0YWZsYXNoKGRlc3QpCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAJCQkJICYmIChhZGRyMmluZm8oZGVzdCkgPT0gTlVMTCkKICNlbmRpZgogCSAgICl7CkBAIC02NjMsNyArNjYzLDcgQEAKIAogLyoKICAqIFBlcmZvcm0gYSBtZW1vcnkgdGVzdC4gQSBtb3JlIGNvbXBsZXRlIGFsdGVybmF0aXZlIHRlc3QgY2FuIGJlCi0gKiBjb25maWd1cmVkIHVzaW5nIENGR19BTFRfTUVNVEVTVC4gVGhlIGNvbXBsZXRlIHRlc3QgbG9vcHMgdW50aWwKKyAqIGNvbmZpZ3VyZWQgdXNpbmcgQ09ORklHX1NZU19BTFRfTUVNVEVTVC4gVGhlIGNvbXBsZXRlIHRlc3QgbG9vcHMgdW50aWwKICAqIGludGVycnVwdGVkIGJ5IGN0cmwtYyBvciBieSBhIGZhaWx1cmUgb2Ygb25lIG9mIHRoZSBzdWItdGVzdHMuCiAgKi8KIGludCBkb19tZW1fbXRlc3QgKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQpAQCAtNjczLDcgKzY3Myw3IEBACiAJdWxvbmcJcmVhZGJhY2s7CiAJaW50ICAgICByY29kZSA9IDA7CiAKLSNpZiBkZWZpbmVkKENGR19BTFRfTUVNVEVTVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQUxUX01FTVRFU1QpCiAJdnVfbG9uZwlsZW47CiAJdnVfbG9uZwlvZmZzZXQ7CiAJdnVfbG9uZwl0ZXN0X29mZnNldDsKQEAgLTY4MSw4ICs2ODEsOCBAQAogCXZ1X2xvbmcJdGVtcDsKIAl2dV9sb25nCWFudGlfcGF0dGVybjsKIAl2dV9sb25nCW51bV93b3JkczsKLSNpZiBkZWZpbmVkKENGR19NRU1URVNUX1NDUkFUQ0gpCi0JdnVfbG9uZyAqZHVtbXkgPSAodnVfbG9uZyopQ0ZHX01FTVRFU1RfU0NSQVRDSDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTUVNVEVTVF9TQ1JBVENIKQorCXZ1X2xvbmcgKmR1bW15ID0gKHZ1X2xvbmcqKUNPTkZJR19TWVNfTUVNVEVTVF9TQ1JBVENIOwogI2Vsc2UKIAl2dV9sb25nICpkdW1teSA9IDA7CS8qIHllcywgdGhpcyBpcyBhZGRyZXNzIDB4MCwgbm90IE5VTEwgKi8KICNlbmRpZgpAQCAtNzA3LDEzICs3MDcsMTMgQEAKIAlpZiAoYXJnYyA+IDEpIHsKIAkJc3RhcnQgPSAodWxvbmcgKilzaW1wbGVfc3RydG91bChhcmd2WzFdLCBOVUxMLCAxNik7CiAJfSBlbHNlIHsKLQkJc3RhcnQgPSAodWxvbmcgKilDRkdfTUVNVEVTVF9TVEFSVDsKKwkJc3RhcnQgPSAodWxvbmcgKilDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CiAJfQogCiAJaWYgKGFyZ2MgPiAyKSB7CiAJCWVuZCA9ICh1bG9uZyAqKXNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMl0sIE5VTEwsIDE2KTsKIAl9IGVsc2UgewotCQllbmQgPSAodWxvbmcgKikoQ0ZHX01FTVRFU1RfRU5EKTsKKwkJZW5kID0gKHVsb25nICopKENPTkZJR19TWVNfTUVNVEVTVF9FTkQpOwogCX0KIAogCWlmIChhcmdjID4gMykgewpAQCAtNzIyLDcgKzcyMiw3IEBACiAJCXBhdHRlcm4gPSAwOwogCX0KIAotI2lmIGRlZmluZWQoQ0ZHX0FMVF9NRU1URVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19BTFRfTUVNVEVTVCkKIAlwcmludGYgKCJUZXN0aW5nICUwOHggLi4uICUwOHg6XG4iLCAodWludClzdGFydCwgKHVpbnQpZW5kKTsKIAlQUklOVEYoIiVzOiVkOiBzdGFydCAweCVwIGVuZCAweCVwXG4iLAogCQlfX0ZVTkNUSU9OX18sIF9fTElORV9fLCBzdGFydCwgZW5kKTsKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfbWlzYy5jIGIvY29tbW9uL2NtZF9taXNjLmMKaW5kZXggMTI2YjUzOC4uM2VhOGVlMCAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9taXNjLmMKKysrIGIvY29tbW9uL2NtZF9taXNjLmMKQEAgLTM3LDcgKzM3LDcgQEAKIAkJcmV0dXJuIDE7CiAJfQogCi0JZGVsYXkgPSBzaW1wbGVfc3RydG91bChhcmd2WzFdLCBOVUxMLCAxMCkgKiBDRkdfSFo7CisJZGVsYXkgPSBzaW1wbGVfc3RydG91bChhcmd2WzFdLCBOVUxMLCAxMCkgKiBDT05GSUdfU1lTX0haOwogCiAJd2hpbGUgKGdldF90aW1lcihzdGFydCkgPCBkZWxheSkgewogCQlpZiAoY3RybGMgKCkpIHsKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfbXAuYyBiL2NvbW1vbi9jbWRfbXAuYwppbmRleCBjODQ0NGZiLi5mM2E3ZjQ5IDEwMDY0NAotLS0gYS9jb21tb24vY21kX21wLmMKKysrIGIvY29tbW9uL2NtZF9tcC5jCkBAIC04Miw3ICs4Miw3IEBACiAjZW5kaWYKIAogVV9CT09UX0NNRCgKLQljcHUsIENGR19NQVhBUkdTLCAxLCBjcHVfY21kLAorCWNwdSwgQ09ORklHX1NZU19NQVhBUkdTLCAxLCBjcHVfY21kLAogCSJjcHUgICAgIC0gTXVsdGlwcm9jZXNzb3IgQ1BVIGJvb3QgbWFuaXB1bGF0aW9uIGFuZCByZWxlYXNlXG4iLAogCSAgICAiPG51bT4gcmVzZXQgICAgICAgICAgICAgICAgIC0gUmVzZXQgY3B1IDxudW0+XG4iCiAJImNwdSA8bnVtPiBzdGF0dXMgICAgICAgICAgICAgICAgLSBTdGF0dXMgb2YgY3B1IDxudW0+XG4iCmRpZmYgLS1naXQgYS9jb21tb24vY21kX25hbmQuYyBiL2NvbW1vbi9jbWRfbmFuZC5jCmluZGV4IGI5NGEyYmYuLmVhNDNmNGYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfbmFuZC5jCisrKyBiL2NvbW1vbi9jbWRfbmFuZC5jCkBAIC0xNzEsOCArMTcxLDggQEAKIAlzaXplX3Qgc2l6ZTsKIAljaGFyICpjbWQsICpzOwogCW5hbmRfaW5mb190ICpuYW5kOwotI2lmZGVmIENGR19OQU5EX1FVSUVUCi0JaW50IHF1aWV0ID0gQ0ZHX05BTkRfUVVJRVQ7CisjaWZkZWYgQ09ORklHX1NZU19OQU5EX1FVSUVUCisJaW50IHF1aWV0ID0gQ09ORklHX1NZU19OQU5EX1FVSUVUOwogI2Vsc2UKIAlpbnQgcXVpZXQgPSAwOwogI2VuZGlmCkBAIC0xOTAsNyArMTkwLDcgQEAKIAlpZiAoc3RyY21wKGNtZCwgImluZm8iKSA9PSAwKSB7CiAKIAkJcHV0YygnXG4nKTsKLQkJZm9yIChpID0gMDsgaSA8IENGR19NQVhfTkFORF9ERVZJQ0U7IGkrKykgeworCQlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0U7IGkrKykgewogCQkJaWYgKG5hbmRfaW5mb1tpXS5uYW1lKQogCQkJCXByaW50ZigiRGV2aWNlICVkOiAlcywgc2VjdG9yIHNpemUgJXUgS2lCXG4iLAogCQkJCSAgICAgICBpLCBuYW5kX2luZm9baV0ubmFtZSwKQEAgLTIwMyw3ICsyMDMsNyBAQAogCiAJCWlmIChhcmdjIDwgMykgewogCQkJaWYgKChuYW5kX2N1cnJfZGV2aWNlIDwgMCkgfHwKLQkJCSAgICAobmFuZF9jdXJyX2RldmljZSA+PSBDRkdfTUFYX05BTkRfREVWSUNFKSkKKwkJCSAgICAobmFuZF9jdXJyX2RldmljZSA+PSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRSkpCiAJCQkJcHV0cygiXG5ubyBkZXZpY2VzIGF2YWlsYWJsZVxuIik7CiAJCQllbHNlCiAJCQkJcHJpbnRmKCJcbkRldmljZSAlZDogJXNcbiIsIG5hbmRfY3Vycl9kZXZpY2UsCkBAIC0yMTEsNyArMjExLDcgQEAKIAkJCXJldHVybiAwOwogCQl9CiAJCWRldiA9IChpbnQpc2ltcGxlX3N0cnRvdWwoYXJndlsyXSwgTlVMTCwgMTApOwotCQlpZiAoZGV2IDwgMCB8fCBkZXYgPj0gQ0ZHX01BWF9OQU5EX0RFVklDRSB8fCAhbmFuZF9pbmZvW2Rldl0ubmFtZSkgeworCQlpZiAoZGV2IDwgMCB8fCBkZXYgPj0gQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UgfHwgIW5hbmRfaW5mb1tkZXZdLm5hbWUpIHsKIAkJCXB1dHMoIk5vIHN1Y2ggZGV2aWNlXG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC0yMTksNyArMjE5LDcgQEAKIAkJcHV0cygiLi4uIGlzIG5vdyBjdXJyZW50IGRldmljZVxuIik7CiAJCW5hbmRfY3Vycl9kZXZpY2UgPSBkZXY7CiAKLSNpZmRlZiBDRkdfTkFORF9TRUxFQ1RfREVWSUNFCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX1NFTEVDVF9ERVZJQ0UKIAkJLyoKIAkJICogU2VsZWN0IHRoZSBjaGlwIGluIHRoZSBib2FyZC9jcHUgc3BlY2lmaWMgZHJpdmVyCiAJCSAqLwpAQCAtMjM4LDcgKzIzOCw3IEBACiAJCWdvdG8gdXNhZ2U7CiAKIAkvKiB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIG9wZXJhdGUgb24gdGhlIGN1cnJlbnQgZGV2aWNlICovCi0JaWYgKG5hbmRfY3Vycl9kZXZpY2UgPCAwIHx8IG5hbmRfY3Vycl9kZXZpY2UgPj0gQ0ZHX01BWF9OQU5EX0RFVklDRSB8fAorCWlmIChuYW5kX2N1cnJfZGV2aWNlIDwgMCB8fCBuYW5kX2N1cnJfZGV2aWNlID49IENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFIHx8CiAJICAgICFuYW5kX2luZm9bbmFuZF9jdXJyX2RldmljZV0ubmFtZSkgewogCQlwdXRzKCJcbm5vIGRldmljZXMgYXZhaWxhYmxlXG4iKTsKIAkJcmV0dXJuIDE7CkBAIC02MDYsNyArNjA2LDcgQEAKIAkJCWlmIChhcmdjID09IDMpCiAJCQkJYWRkciA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMV0sIE5VTEwsIDE2KTsKIAkJCWVsc2UKLQkJCQlhZGRyID0gQ0ZHX0xPQURfQUREUjsKKwkJCQlhZGRyID0gQ09ORklHX1NZU19MT0FEX0FERFI7CiAJCQlyZXR1cm4gbmFuZF9sb2FkX2ltYWdlKGNtZHRwLCAmbmFuZF9pbmZvW2Rldi0+aWQtPm51bV0sCiAJCQkJCSAgICAgICBwYXJ0LT5vZmZzZXQsIGFkZHIsIGFyZ3ZbMF0pOwogCQl9CkBAIC02MTYsNyArNjE2LDcgQEAKIAlzaG93X2Jvb3RfcHJvZ3Jlc3MoNTIpOwogCXN3aXRjaCAoYXJnYykgewogCWNhc2UgMToKLQkJYWRkciA9IENGR19MT0FEX0FERFI7CisJCWFkZHIgPSBDT05GSUdfU1lTX0xPQURfQUREUjsKIAkJYm9vdF9kZXZpY2UgPSBnZXRlbnYoImJvb3RkZXZpY2UiKTsKIAkJYnJlYWs7CiAJY2FzZSAyOgpAQCAtNjUxLDcgKzY1MSw3IEBACiAKIAlpZHggPSBzaW1wbGVfc3RydG91bChib290X2RldmljZSwgTlVMTCwgMTYpOwogCi0JaWYgKGlkeCA8IDAgfHwgaWR4ID49IENGR19NQVhfTkFORF9ERVZJQ0UgfHwgIW5hbmRfaW5mb1tpZHhdLm5hbWUpIHsKKwlpZiAoaWR4IDwgMCB8fCBpZHggPj0gQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UgfHwgIW5hbmRfaW5mb1tpZHhdLm5hbWUpIHsKIAkJcHJpbnRmKCJcbioqIERldmljZSAlZCBub3QgYXZhaWxhYmxlXG4iLCBpZHgpOwogCQlzaG93X2Jvb3RfcHJvZ3Jlc3MoLTU1KTsKIAkJcmV0dXJuIDE7CkBAIC03MjgsNyArNzI4LDcgQEAKIC8qCiAgKiBJbXBvcnRzIGZyb20gbmFuZF9sZWdhY3kuYwogICovCi1leHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NGR19NQVhfTkFORF9ERVZJQ0VdOworZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRV07CiBleHRlcm4gaW50IGN1cnJfZGV2aWNlOwogZXh0ZXJuIGludCBuYW5kX2xlZ2FjeV9lcmFzZShzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kLCBzaXplX3Qgb2ZzLAogCQkJICAgIHNpemVfdCBsZW4sIGludCBjbGVhbik7CkBAIC03NTcsNyArNzU3LDcgQEAKIAogCQkJcHV0YyAoJ1xuJyk7CiAKLQkJCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX05BTkRfREVWSUNFOyArK2kpIHsKKwkJCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRTsgKytpKSB7CiAJCQkJaWYgKG5hbmRfZGV2X2Rlc2NbaV0uQ2hpcElEID09CiAJCQkJICAgIE5BTkRfQ2hpcElEX1VOS05PV04pCiAJCQkJCWNvbnRpbnVlOwkvKiBsaXN0IG9ubHkga25vd24gZGV2aWNlcyAqLwpAQCAtNzY4LDcgKzc2OCw3IEBACiAKIAkJfSBlbHNlIGlmIChzdHJjbXAgKGFyZ3ZbMV0sICJkZXZpY2UiKSA9PSAwKSB7CiAJCQlpZiAoKGN1cnJfZGV2aWNlIDwgMCkKLQkJCSAgICB8fCAoY3Vycl9kZXZpY2UgPj0gQ0ZHX01BWF9OQU5EX0RFVklDRSkpIHsKKwkJCSAgICB8fCAoY3Vycl9kZXZpY2UgPj0gQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UpKSB7CiAJCQkJcHV0cyAoIlxubm8gZGV2aWNlcyBhdmFpbGFibGVcbiIpOwogCQkJCXJldHVybiAxOwogCQkJfQpAQCAtNzc4LDcgKzc3OCw3IEBACiAKIAkJfSBlbHNlIGlmIChzdHJjbXAgKGFyZ3ZbMV0sICJiYWQiKSA9PSAwKSB7CiAJCQlpZiAoKGN1cnJfZGV2aWNlIDwgMCkKLQkJCSAgICB8fCAoY3Vycl9kZXZpY2UgPj0gQ0ZHX01BWF9OQU5EX0RFVklDRSkpIHsKKwkJCSAgICB8fCAoY3Vycl9kZXZpY2UgPj0gQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UpKSB7CiAJCQkJcHV0cyAoIlxubm8gZGV2aWNlcyBhdmFpbGFibGVcbiIpOwogCQkJCXJldHVybiAxOwogCQkJfQpAQCAtNzk0LDcgKzc5NCw3IEBACiAJCQlpbnQgZGV2ID0gKGludCkgc2ltcGxlX3N0cnRvdWwgKGFyZ3ZbMl0sIE5VTEwsIDEwKTsKIAogCQkJcHJpbnRmICgiXG5EZXZpY2UgJWQ6ICIsIGRldik7Ci0JCQlpZiAoZGV2ID49IENGR19NQVhfTkFORF9ERVZJQ0UpIHsKKwkJCWlmIChkZXYgPj0gQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UpIHsKIAkJCQlwdXRzICgidW5rbm93biBkZXZpY2VcbiIpOwogCQkJCXJldHVybiAxOwogCQkJfQpAQCAtODY2LDcgKzg2Niw3IEBACiAJCQllbHNlIGlmIChjbWR0YWlsICYmICFzdHJjbXAgKGNtZHRhaWwsICIuZSIpKQogCQkJCWNtZCB8PSBOQU5EUldfSkZGUzI7CS8qIHNraXAgYmFkIGJsb2NrcyAqLwogI2VuZGlmCi0jaWZkZWYgQ0ZHX05BTkRfU0tJUF9CQURfRE9UX0kKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfU0tJUF9CQURfRE9UX0kKIAkJCS8qIG5lZWQgIi5pIiBzYW1lIGFzICIuamZmczJzIiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHVuaXRzIChlc2QpICovCiAJCQkvKiAiLmkiIGZvciBpbWFnZSAtPiByZWFkIHNraXBzIGJhZCBibG9jayAobm8gMHhmZikgKi8KIAkJCWVsc2UgaWYgKGNtZHRhaWwgJiYgIXN0cmNtcCAoY21kdGFpbCwgIi5pIikpIHsKQEAgLTg3NCw3ICs4NzQsNyBAQAogCQkJCWlmIChjbWQgJiBOQU5EUldfUkVBRCkKIAkJCQkJY21kIHw9IE5BTkRSV19KRkZTMl9TS0lQOwkvKiBza2lwIGJhZCBibG9ja3MgKG9uIHJlYWQgdG9vKSAqLwogCQkJfQotI2VuZGlmIC8qIENGR19OQU5EX1NLSVBfQkFEX0RPVF9JICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OQU5EX1NLSVBfQkFEX0RPVF9JICovCiAJCQllbHNlIGlmIChjbWR0YWlsKSB7CiAJCQkJcHJpbnRmICgiVXNhZ2U6XG4lc1xuIiwgY21kdHAtPnVzYWdlKTsKIAkJCQlyZXR1cm4gMTsKQEAgLTk1Miw3ICs5NTIsNyBAQAogCXNob3dfYm9vdF9wcm9ncmVzcyAoNTIpOwogCXN3aXRjaCAoYXJnYykgewogCWNhc2UgMToKLQkJYWRkciA9IENGR19MT0FEX0FERFI7CisJCWFkZHIgPSBDT05GSUdfU1lTX0xPQURfQUREUjsKIAkJYm9vdF9kZXZpY2UgPSBnZXRlbnYgKCJib290ZGV2aWNlIik7CiAJCWJyZWFrOwogCWNhc2UgMjoKQEAgLTk4NCw3ICs5ODQsNyBAQAogCiAJZGV2ID0gc2ltcGxlX3N0cnRvdWwoYm9vdF9kZXZpY2UsICZlcCwgMTYpOwogCi0JaWYgKChkZXYgPj0gQ0ZHX01BWF9OQU5EX0RFVklDRSkgfHwKKwlpZiAoKGRldiA+PSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRSkgfHwKIAkgICAgKG5hbmRfZGV2X2Rlc2NbZGV2XS5DaGlwSUQgPT0gTkFORF9DaGlwSURfVU5LTk9XTikpIHsKIAkJcHJpbnRmICgiXG4qKiBEZXZpY2UgJWQgbm90IGF2YWlsYWJsZVxuIiwgZGV2KTsKIAkJc2hvd19ib290X3Byb2dyZXNzICgtNTUpOwpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9udmVkaXQuYyBiL2NvbW1vbi9jbWRfbnZlZGl0LmMKaW5kZXggNjM3ZDZjOS4uZDI4MGNiMCAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9udmVkaXQuYworKysgYi9jb21tb24vY21kX252ZWRpdC5jCkBAIC03Miw3ICs3Miw3IEBACiAvKgogICogVGFibGUgd2l0aCBzdXBwb3J0ZWQgYmF1ZHJhdGVzIChkZWZpbmVkIGluIGNvbmZpZ194eXouaCkKICAqLwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgYmF1ZHJhdGVfdGFibGVbXSA9IENGR19CQVVEUkFURV9UQUJMRTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIGJhdWRyYXRlX3RhYmxlW10gPSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFOwogI2RlZmluZQlOX0JBVURSQVRFUyAoc2l6ZW9mKGJhdWRyYXRlX3RhYmxlKSAvIHNpemVvZihiYXVkcmF0ZV90YWJsZVswXSkpCiAKIApAQCAtNDE2LDkgKzQxNiw5IEBACiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0FTS0VOVikKIGludCBkb19hc2tlbnYgKCBjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKLQlleHRlcm4gY2hhciBjb25zb2xlX2J1ZmZlcltDRkdfQ0JTSVpFXTsKLQljaGFyIG1lc3NhZ2VbQ0ZHX0NCU0laRV07Ci0JaW50IHNpemUgPSBDRkdfQ0JTSVpFIC0gMTsKKwlleHRlcm4gY2hhciBjb25zb2xlX2J1ZmZlcltDT05GSUdfU1lTX0NCU0laRV07CisJY2hhciBtZXNzYWdlW0NPTkZJR19TWVNfQ0JTSVpFXTsKKwlpbnQgc2l6ZSA9IENPTkZJR19TWVNfQ0JTSVpFIC0gMTsKIAlpbnQgbGVuOwogCWNoYXIgKmxvY2FsX2FyZ3NbNF07CiAKQEAgLTQ2NCw4ICs0NjQsOCBAQAogCQlicmVhazsKIAl9CiAKLQlpZiAoc2l6ZSA+PSBDRkdfQ0JTSVpFKQotCQlzaXplID0gQ0ZHX0NCU0laRSAtIDE7CisJaWYgKHNpemUgPj0gQ09ORklHX1NZU19DQlNJWkUpCisJCXNpemUgPSBDT05GSUdfU1lTX0NCU0laRSAtIDE7CiAKIAlpZiAoc2l6ZSA8PSAwKQogCQlyZXR1cm4gMTsKQEAgLTU4MCw3ICs1ODAsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBVX0JPT1RfQ01EKAotCXByaW50ZW52LCBDRkdfTUFYQVJHUywgMSwJZG9fcHJpbnRlbnYsCisJcHJpbnRlbnYsIENPTkZJR19TWVNfTUFYQVJHUywgMSwJZG9fcHJpbnRlbnYsCiAJInByaW50ZW52LSBwcmludCBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiIsCiAJIlxuICAgIC0gcHJpbnQgdmFsdWVzIG9mIGFsbCBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiIKIAkicHJpbnRlbnYgbmFtZSAuLi5cbiIKQEAgLTU4OCw3ICs1ODgsNyBAQAogKTsKIAogVV9CT09UX0NNRCgKLQlzZXRlbnYsIENGR19NQVhBUkdTLCAwLAlkb19zZXRlbnYsCisJc2V0ZW52LCBDT05GSUdfU1lTX01BWEFSR1MsIDAsCWRvX3NldGVudiwKIAkic2V0ZW52ICAtIHNldCBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiIsCiAJIm5hbWUgdmFsdWUgLi4uXG4iCiAJIiAgICAtIHNldCBlbnZpcm9ubWVudCB2YXJpYWJsZSAnbmFtZScgdG8gJ3ZhbHVlIC4uLidcbiIKQEAgLTYxMiw3ICs2MTIsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9BU0tFTlYpCiAKIFVfQk9PVF9DTUQoCi0JYXNrZW52LAlDRkdfTUFYQVJHUywJMSwJZG9fYXNrZW52LAorCWFza2VudiwJQ09ORklHX1NZU19NQVhBUkdTLAkxLAlkb19hc2tlbnYsCiAJImFza2VudiAgLSBnZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZyb20gc3RkaW5cbiIsCiAJIm5hbWUgW21lc3NhZ2VdIFtzaXplXVxuIgogCSIgICAgLSBnZXQgZW52aXJvbm1lbnQgdmFyaWFibGUgJ25hbWUnIGZyb20gc3RkaW4gKG1heCAnc2l6ZScgY2hhcnMpXG4iCkBAIC02MjksNyArNjI5LDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfUlVOKQogaW50IGRvX3J1biAoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pOwogVV9CT09UX0NNRCgKLQlydW4sCUNGR19NQVhBUkdTLAkxLAlkb19ydW4sCisJcnVuLAlDT05GSUdfU1lTX01BWEFSR1MsCTEsCWRvX3J1biwKIAkicnVuICAgICAtIHJ1biBjb21tYW5kcyBpbiBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZVxuIiwKIAkidmFyIFsuLi5dXG4iCiAJIiAgICAtIHJ1biB0aGUgY29tbWFuZHMgaW4gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlKHMpICd2YXInXG4iCmRpZmYgLS1naXQgYS9jb21tb24vY21kX3BjaS5jIGIvY29tbW9uL2NtZF9wY2kuYwppbmRleCBiMmFhODMzLi42N2ZmMmZiIDEwMDY0NAotLS0gYS9jb21tb24vY21kX3BjaS5jCisrKyBiL2NvbW1vbi9jbWRfcGNpLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKICAqIFN1YnJvdXRpbmU6ICBwY2lpbmZvCiAgKgogICogRGVzY3JpcHRpb246IFNob3cgaW5mb3JtYXRpb24gYWJvdXQgZGV2aWNlcyBvbiBQQ0kgYnVzLgotICoJCQkJRGVwZW5kaW5nIG9uIHRoZSBkZWZpbmUgQ0ZHX1NIT1JUX1BDSV9MSVNUSU5HCisgKgkJCQlEZXBlbmRpbmcgb24gdGhlIGRlZmluZSBDT05GSUdfU1lTX1NIT1JUX1BDSV9MSVNUSU5HCiAgKgkJCQl0aGUgb3V0cHV0IHdpbGwgYmUgbW9yZSBvciBsZXNzIGV4aGF1c3RpdmUuCiAgKgogICogSW5wdXRzOglidXNfbm8JCXRoZSBudW1iZXIgb2YgdGhlIGJ1cyB0byBiZSBzY2FubmVkLgpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9wY21jaWEuYyBiL2NvbW1vbi9jbWRfcGNtY2lhLmMKaW5kZXggZGNkMDdjMC4uMjNmYWQzYiAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9wY21jaWEuYworKysgYi9jb21tb24vY21kX3BjbWNpYS5jCkBAIC0yNzgsOCArMjc4LDggQEAKIAlpbnQgZm91bmQgPSAwOwogCWludCBpOwogCi0JYWRkciA9ICh2b2xhdGlsZSB1Y2hhciAqKShDRkdfUENNQ0lBX01FTV9BRERSICsKLQkJCQkgIENGR19QQ01DSUFfTUVNX1NJWkUgKiAoc2xvdCAqIDQpKTsKKwlhZGRyID0gKHZvbGF0aWxlIHVjaGFyICopKENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSICsKKwkJCQkgIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICogKHNsb3QgKiA0KSk7CiAJZGVidWcgKCJQQ01DSUEgTUVNOiAlMDhsWFxuIiwgKHVsb25nKWFkZHIpOwogCiAJc3RhcnQgPSBwID0gKHZvbGF0aWxlIHVjaGFyICopIGFkZHI7CmRpZmYgLS1naXQgYS9jb21tb24vY21kX3JlZ2luZm8uYyBiL2NvbW1vbi9jbWRfcmVnaW5mby5jCmluZGV4IGMwYTE0NTkuLjRjOGU2MWEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfcmVnaW5mby5jCisrKyBiL2NvbW1vbi9jbWRfcmVnaW5mby5jCkBAIC0zOCw3ICszOCw3IEBACiBpbnQgZG9fcmVnaW5mbyAoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CiAjaWYgZGVmaW5lZChDT05GSUdfOHh4KQotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdm9sYXRpbGUgc3lzY29uZjh4eF90ICpzeXNjb25mID0gJmltbWFwLT5pbV9zaXVfY29uZjsKIAl2b2xhdGlsZSBzaXQ4eHhfdCAqdGltZXJzID0gJmltbWFwLT5pbV9zaXQ7CkBAIC0yNDQsNyArMjQ0LDcgQEAKIAlwdXRzICgiXG5cbiIpOwogI2VsaWYgZGVmaW5lZChDT05GSUdfNXh4KQogCi0Jdm9sYXRpbGUgaW1tYXBfdAkqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90CSppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw1eHhfdAkqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdm9sYXRpbGUgc3lzY29uZjV4eF90CSpzeXNjb25mID0gJmltbWFwLT5pbV9zaXVfY29uZjsKIAl2b2xhdGlsZSBzaXQ1eHhfdAkqdGltZXJzID0gJmltbWFwLT5pbV9zaXQ7CkBAIC0yNzksNyArMjc5LDcgQEAKIAogI2VsaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKIAlwdXRzICgiXG5NUEM1MjAwIHJlZ2lzdGVyc1xuIik7Ci0JcHJpbnRmICgiTUJBUj0lMDh4XG4iLCBDRkdfTUJBUik7CisJcHJpbnRmICgiTUJBUj0lMDh4XG4iLCBDT05GSUdfU1lTX01CQVIpOwogCXB1dHMgKCJNZW1vcnkgbWFwIHJlZ2lzdGVyc1xuIik7CiAJcHJpbnRmICgiXHRDUzA6IHN0YXJ0ICUwOGxYXHRzdG9wICUwOGxYXHRjb25maWcgJTA4bFhcdGVuICVkXG4iLAogCQkqKHZvbGF0aWxlIHVsb25nKilNUEM1WFhYX0NTMF9TVEFSVCwKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfcmVpc2VyLmMgYi9jb21tb24vY21kX3JlaXNlci5jCmluZGV4IGI3Mzk1ZDcuLjRmNDExN2UgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfcmVpc2VyLmMKKysrIGIvY29tbW9uL2NtZF9yZWlzZXIuYwpAQCAtMTI4LDcgKzEyOCw3IEBACiAJCWlmIChhZGRyX3N0ciAhPSBOVUxMKSB7CiAJCQlhZGRyID0gc2ltcGxlX3N0cnRvdWwgKGFkZHJfc3RyLCBOVUxMLCAxNik7CiAJCX0gZWxzZSB7Ci0JCQlhZGRyID0gQ0ZHX0xPQURfQUREUjsKKwkJCWFkZHIgPSBDT05GSUdfU1lTX0xPQURfQUREUjsKIAkJfQogCQlmaWxlbmFtZSA9IGdldGVudiAoImJvb3RmaWxlIik7CiAJCWNvdW50ID0gMDsKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfc2F0YS5jIGIvY29tbW9uL2NtZF9zYXRhLmMKaW5kZXggNzljMjQ5NS4uZGQ2ZjFkOSAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9zYXRhLmMKKysrIGIvY29tbW9uL2NtZF9zYXRhLmMKQEAgLTI5LDE0ICsyOSwxNCBAQAogI2luY2x1ZGUgPHNhdGEuaD4KIAogaW50IGN1cnJfZGV2aWNlID0gLTE7Ci1ibG9ja19kZXZfZGVzY190IHNhdGFfZGV2X2Rlc2NbQ0ZHX1NBVEFfTUFYX0RFVklDRV07CitibG9ja19kZXZfZGVzY190IHNhdGFfZGV2X2Rlc2NbQ09ORklHX1NZU19TQVRBX01BWF9ERVZJQ0VdOwogCiBpbnQgc2F0YV9pbml0aWFsaXplKHZvaWQpCiB7CiAJaW50IHJjOwogCWludCBpOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19TQVRBX01BWF9ERVZJQ0U7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRTsgaSsrKSB7CiAJCW1lbXNldCgmc2F0YV9kZXZfZGVzY1tpXSwgMCwgc2l6ZW9mKHN0cnVjdCBibG9ja19kZXZfZGVzYykpOwogCQlzYXRhX2Rldl9kZXNjW2ldLmlmX3R5cGUgPSBJRl9UWVBFX1NBVEE7CiAJCXNhdGFfZGV2X2Rlc2NbaV0uZGV2ID0gaTsKQEAgLTU4LDcgKzU4LDcgQEAKIAogYmxvY2tfZGV2X2Rlc2NfdCAqc2F0YV9nZXRfZGV2KGludCBkZXYpCiB7Ci0JcmV0dXJuIChkZXYgPCBDRkdfU0FUQV9NQVhfREVWSUNFKSA/ICZzYXRhX2Rldl9kZXNjW2Rldl0gOiBOVUxMOworCXJldHVybiAoZGV2IDwgQ09ORklHX1NZU19TQVRBX01BWF9ERVZJQ0UpID8gJnNhdGFfZGV2X2Rlc2NbZGV2XSA6IE5VTEw7CiB9CiAKIGludCBkb19zYXRhKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQpAQCAtNzQsNyArNzQsNyBAQAogCQlpZiAoc3RybmNtcChhcmd2WzFdLCJpbmYiLCAzKSA9PSAwKSB7CiAJCQlpbnQgaTsKIAkJCXB1dGMoJ1xuJyk7Ci0JCQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX1NBVEFfTUFYX0RFVklDRTsgKytpKSB7CisJCQlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19TQVRBX01BWF9ERVZJQ0U7ICsraSkgewogCQkJCWlmIChzYXRhX2Rldl9kZXNjW2ldLnR5cGUgPT0gREVWX1RZUEVfVU5LTk9XTikKIAkJCQkJY29udGludWU7CiAJCQkJcHJpbnRmICgiU0FUQSBkZXZpY2UgJWQ6ICIsIGkpOwpAQCAtODIsNyArODIsNyBAQAogCQkJfQogCQkJcmV0dXJuIDA7CiAJCX0gZWxzZSBpZiAoc3RybmNtcChhcmd2WzFdLCJkZXYiLCAzKSA9PSAwKSB7Ci0JCQlpZiAoKGN1cnJfZGV2aWNlIDwgMCkgfHwgKGN1cnJfZGV2aWNlID49IENGR19TQVRBX01BWF9ERVZJQ0UpKSB7CisJCQlpZiAoKGN1cnJfZGV2aWNlIDwgMCkgfHwgKGN1cnJfZGV2aWNlID49IENPTkZJR19TWVNfU0FUQV9NQVhfREVWSUNFKSkgewogCQkJCXB1dHMoIlxubm8gU0FUQSBkZXZpY2VzIGF2YWlsYWJsZVxuIik7CiAJCQkJcmV0dXJuIDE7CiAJCQl9CkBAIC05Miw3ICs5Miw3IEBACiAJCX0gZWxzZSBpZiAoc3RybmNtcChhcmd2WzFdLCJwYXJ0Iiw0KSA9PSAwKSB7CiAJCQlpbnQgZGV2LCBvazsKIAotCQkJZm9yIChvayA9IDAsIGRldiA9IDA7IGRldiA8IENGR19TQVRBX01BWF9ERVZJQ0U7ICsrZGV2KSB7CisJCQlmb3IgKG9rID0gMCwgZGV2ID0gMDsgZGV2IDwgQ09ORklHX1NZU19TQVRBX01BWF9ERVZJQ0U7ICsrZGV2KSB7CiAJCQkJaWYgKHNhdGFfZGV2X2Rlc2NbZGV2XS5wYXJ0X3R5cGUgIT0gUEFSVF9UWVBFX1VOS05PV04pIHsKIAkJCQkJKytvazsKIAkJCQkJaWYgKGRldikKQEAgLTExMyw3ICsxMTMsNyBAQAogCQkJaW50IGRldiA9IChpbnQpc2ltcGxlX3N0cnRvdWwoYXJndlsyXSwgTlVMTCwgMTApOwogCiAJCQlwcmludGYoIlxuU0FUQSBkZXZpY2UgJWQ6ICIsIGRldik7Ci0JCQlpZiAoZGV2ID49IENGR19TQVRBX01BWF9ERVZJQ0UpIHsKKwkJCWlmIChkZXYgPj0gQ09ORklHX1NZU19TQVRBX01BWF9ERVZJQ0UpIHsKIAkJCQlwdXRzICgidW5rbm93biBkZXZpY2VcbiIpOwogCQkJCXJldHVybiAxOwogCQkJfQpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9zY3NpLmMgYi9jb21tb24vY21kX3Njc2kuYwppbmRleCBmMzU3NDY1Li4wNjZmZDgwIDEwMDY0NAotLS0gYS9jb21tb24vY21kX3Njc2kuYworKysgYi9jb21tb24vY21kX3Njc2kuYwpAQCAtNTksNyArNTksNyBAQAogCiBzdGF0aWMgaW50IHNjc2lfY3Vycl9kZXY7IC8qIGN1cnJlbnQgZGV2aWNlICovCiAKLXN0YXRpYyBibG9ja19kZXZfZGVzY190IHNjc2lfZGV2X2Rlc2NbQ0ZHX1NDU0lfTUFYX0RFVklDRV07CitzdGF0aWMgYmxvY2tfZGV2X2Rlc2NfdCBzY3NpX2Rldl9kZXNjW0NPTkZJR19TWVNfU0NTSV9NQVhfREVWSUNFXTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiAgZm9yd2FyZCBkZWNsZXJhdGlvbnMgb2Ygc29tZSBTZXR1cCBSb3V0aW5lcwpAQCAtODgsNyArODgsNyBAQAogCWlmKG1vZGU9PTEpIHsKIAkJcHJpbnRmKCJzY2FubmluZyBidXMgZm9yIGRldmljZXMuLi5cbiIpOwogCX0KLQlmb3IoaT0wO2k8Q0ZHX1NDU0lfTUFYX0RFVklDRTtpKyspIHsKKwlmb3IoaT0wO2k8Q09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0U7aSsrKSB7CiAJCXNjc2lfZGV2X2Rlc2NbaV0udGFyZ2V0PTB4ZmY7CiAJCXNjc2lfZGV2X2Rlc2NbaV0ubHVuPTB4ZmY7CiAJCXNjc2lfZGV2X2Rlc2NbaV0ubGJhPTA7CkBAIC0xMDQsOSArMTA0LDkgQEAKIAkJc2NzaV9kZXZfZGVzY1tpXS5ibG9ja19yZWFkPXNjc2lfcmVhZDsKIAl9CiAJc2NzaV9tYXhfZGV2cz0wOwotCWZvcihpPTA7aTxDRkdfU0NTSV9NQVhfU0NTSV9JRDtpKyspIHsKKwlmb3IoaT0wO2k8Q09ORklHX1NZU19TQ1NJX01BWF9TQ1NJX0lEO2krKykgewogCQlwY2NiLT50YXJnZXQ9aTsKLQkJZm9yKGx1bj0wO2x1bjxDRkdfU0NTSV9NQVhfTFVOO2x1bisrKSB7CisJCWZvcihsdW49MDtsdW48Q09ORklHX1NZU19TQ1NJX01BWF9MVU47bHVuKyspIHsKIAkJCXBjY2ItPmx1bj1sdW47CiAJCQlwY2NiLT5wZGF0YT0odW5zaWduZWQgY2hhciAqKSZ0ZW1wYnVmZjsKIAkJCXBjY2ItPmRhdGFsZW49NTEyOwpAQCAtMTk1LDcgKzE5NSw3IEBACiAKIGJsb2NrX2Rldl9kZXNjX3QgKiBzY3NpX2dldF9kZXYoaW50IGRldikKIHsKLQlyZXR1cm4gKGRldiA8IENGR19TQ1NJX01BWF9ERVZJQ0UpID8gJnNjc2lfZGV2X2Rlc2NbZGV2XSA6IE5VTEw7CisJcmV0dXJuIChkZXYgPCBDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRSkgPyAmc2NzaV9kZXZfZGVzY1tkZXZdIDogTlVMTDsKIH0KIAogCkBAIC0yMTcsNyArMjE3LDcgQEAKIAogCXN3aXRjaCAoYXJnYykgewogCWNhc2UgMToKLQkJYWRkciA9IENGR19MT0FEX0FERFI7CisJCWFkZHIgPSBDT05GSUdfU1lTX0xPQURfQUREUjsKIAkJYm9vdF9kZXZpY2UgPSBnZXRlbnYgKCJib290ZGV2aWNlIik7CiAJCWJyZWFrOwogCWNhc2UgMjoKQEAgLTM1Niw3ICszNTYsNyBAQAogCQkJfQogCQkJaWYgKHN0cm5jbXAoYXJndlsxXSwiaW5mIiwzKSA9PSAwKSB7CiAJCQkJaW50IGk7Ci0JCQkJZm9yIChpPTA7IGk8Q0ZHX1NDU0lfTUFYX0RFVklDRTsgKytpKSB7CisJCQkJZm9yIChpPTA7IGk8Q09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0U7ICsraSkgewogCQkJCQlpZihzY3NpX2Rldl9kZXNjW2ldLnR5cGU9PURFVl9UWVBFX1VOS05PV04pCiAJCQkJCQljb250aW51ZTsgLyogbGlzdCBvbmx5IGtub3duIGRldmljZXMgKi8KIAkJCQkJcHJpbnRmICgiU0NTSSBkZXYuICVkOiAgIiwgaSk7CkBAIC0zNjUsNyArMzY1LDcgQEAKIAkJCQlyZXR1cm4gMDsKIAkJCX0KIAkJCWlmIChzdHJuY21wKGFyZ3ZbMV0sImRldiIsMykgPT0gMCkgewotCQkJCWlmICgoc2NzaV9jdXJyX2RldiA8IDApIHx8IChzY3NpX2N1cnJfZGV2ID49IENGR19TQ1NJX01BWF9ERVZJQ0UpKSB7CisJCQkJaWYgKChzY3NpX2N1cnJfZGV2IDwgMCkgfHwgKHNjc2lfY3Vycl9kZXYgPj0gQ09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0UpKSB7CiAJCQkJCXByaW50ZigiXG5ubyBTQ1NJIGRldmljZXMgYXZhaWxhYmxlXG4iKTsKIAkJCQkJcmV0dXJuIDE7CiAJCQkJfQpAQCAtMzc5LDcgKzM3OSw3IEBACiAJCQl9CiAJCQlpZiAoc3RybmNtcChhcmd2WzFdLCJwYXJ0Iiw0KSA9PSAwKSB7CiAJCQkJaW50IGRldiwgb2s7Ci0JCQkJZm9yIChvaz0wLCBkZXY9MDsgZGV2PENGR19TQ1NJX01BWF9ERVZJQ0U7ICsrZGV2KSB7CisJCQkJZm9yIChvaz0wLCBkZXY9MDsgZGV2PENPTkZJR19TWVNfU0NTSV9NQVhfREVWSUNFOyArK2RldikgewogCQkJCQlpZiAoc2NzaV9kZXZfZGVzY1tkZXZdLnR5cGUhPURFVl9UWVBFX1VOS05PV04pIHsKIAkJCQkJCW9rKys7CiAJCQkJCQlpZiAoZGV2KQpAQCAtMzk4LDcgKzM5OCw3IEBACiAJCQlpZiAoc3RybmNtcChhcmd2WzFdLCJkZXYiLDMpID09IDApIHsKIAkJCQlpbnQgZGV2ID0gKGludClzaW1wbGVfc3RydG91bChhcmd2WzJdLCBOVUxMLCAxMCk7CiAJCQkJcHJpbnRmICgiXG5TQ1NJIGRldmljZSAlZDogIiwgZGV2KTsKLQkJCQlpZiAoZGV2ID49IENGR19TQ1NJX01BWF9ERVZJQ0UpIHsKKwkJCQlpZiAoZGV2ID49IENPTkZJR19TWVNfU0NTSV9NQVhfREVWSUNFKSB7CiAJCQkJCXByaW50ZigidW5rbm93biBkZXZpY2VcbiIpOwogCQkJCQlyZXR1cm4gMTsKIAkJCQl9CmRpZmYgLS1naXQgYS9jb21tb24vY21kX3VzYi5jIGIvY29tbW9uL2NtZF91c2IuYwppbmRleCBjNjJjYTk3Li45OWU1NTFmIDEwMDY0NAotLS0gYS9jb21tb24vY21kX3VzYi5jCisrKyBiL2NvbW1vbi9jbWRfdXNiLmMKQEAgLTMyMSw3ICszMjEsNyBAQAogCiAJc3dpdGNoIChhcmdjKSB7CiAJY2FzZSAxOgotCQlhZGRyID0gQ0ZHX0xPQURfQUREUjsKKwkJYWRkciA9IENPTkZJR19TWVNfTE9BRF9BRERSOwogCQlib290X2RldmljZSA9IGdldGVudiAoImJvb3RkZXZpY2UiKTsKIAkJYnJlYWs7CiAJY2FzZSAyOgpkaWZmIC0tZ2l0IGEvY29tbW9uL2NvbW1hbmQuYyBiL2NvbW1vbi9jb21tYW5kLmMKaW5kZXggZmM5ZDc5Yy4uYTRhOTc4YyAxMDA2NDQKLS0tIGEvY29tbW9uL2NvbW1hbmQuYworKysgYi9jb21tb24vY29tbWFuZC5jCkBAIC03MCw3ICs3MCw3IEBACiB9CiAKIFVfQk9PVF9DTUQoCi0JZWNobywJQ0ZHX01BWEFSR1MsCTEsCWRvX2VjaG8sCisJZWNobywJQ09ORklHX1NZU19NQVhBUkdTLAkxLAlkb19lY2hvLAogCSJlY2hvICAgIC0gZWNobyBhcmdzIHRvIGNvbnNvbGVcbiIsCiAJIlthcmdzLi5dXG4iCiAJIiAgICAtIGVjaG8gYXJncyB0byBjb25zb2xlOyBcXGMgc3VwcHJlc3NlcyBuZXdsaW5lXG4iCkBAIC03OCw3ICs3OCw3IEBACiAKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogCiBpbnQKIGRvX3Rlc3QgKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQpAQCAtMjAyLDcgKzIwMiw3IEBACiB9CiAKIFVfQk9PVF9DTUQoCi0JdGVzdCwJQ0ZHX01BWEFSR1MsCTEsCWRvX3Rlc3QsCisJdGVzdCwJQ09ORklHX1NZU19NQVhBUkdTLAkxLAlkb190ZXN0LAogCSJ0ZXN0ICAgIC0gbWluaW1hbCB0ZXN0IGxpa2UgL2Jpbi9zaFxuIiwKIAkiW2FyZ3MuLl1cbiIKIAkiICAgIC0gdGVzdCBmdW5jdGlvbmFsaXR5XG4iCkBAIC0yODYsNyArMjg2LDcgQEAKIAkgKi8KIAlmb3IgKGkgPSAxOyBpIDwgYXJnYzsgKytpKSB7CiAJCWlmICgoY21kdHAgPSBmaW5kX2NtZCAoYXJndltpXSkpICE9IE5VTEwpIHsKLSNpZmRlZglDRkdfTE9OR0hFTFAKKyNpZmRlZglDT05GSUdfU1lTX0xPTkdIRUxQCiAJCQkvKiBmb3VuZCAtIHByaW50IChsb25nKSBoZWxwIGluZm8gKi8KIAkJCXB1dHMgKGNtZHRwLT5uYW1lKTsKIAkJCXB1dGMgKCcgJyk7CkBAIC0zMDAsNyArMzAwLDcgQEAKICNlbHNlCS8qIG5vIGxvbmcgaGVscCBhdmFpbGFibGUgKi8KIAkJCWlmIChjbWR0cC0+dXNhZ2UpCiAJCQkJcHV0cyAoY21kdHAtPnVzYWdlKTsKLSNlbmRpZgkvKiBDRkdfTE9OR0hFTFAgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0xPTkdIRUxQICovCiAJCX0gZWxzZSB7CiAJCQlwcmludGYgKCJVbmtub3duIGNvbW1hbmQgJyVzJyAtIHRyeSAnaGVscCciCiAJCQkJIiB3aXRob3V0IGFyZ3VtZW50cyBmb3IgbGlzdCBvZiBhbGwiCkBAIC0zMTQsNyArMzE0LDcgQEAKIAogCiBVX0JPT1RfQ01EKAotCWhlbHAsCUNGR19NQVhBUkdTLAkxLAlkb19oZWxwLAorCWhlbHAsCUNPTkZJR19TWVNfTUFYQVJHUywJMSwJZG9faGVscCwKIAkiaGVscCAgICAtIHByaW50IG9ubGluZSBoZWxwXG4iLAogCSJbY29tbWFuZCAuLi5dXG4iCiAJIiAgICAtIHNob3cgaGVscCBpbmZvcm1hdGlvbiAoZm9yICdjb21tYW5kJylcbiIKQEAgLTMyNSwxOCArMzI1LDE4IEBACiApOwogCiAvKiBUaGlzIGRvIG5vdCB1c3QgdGhlIFVfQk9PVF9DTUQgbWFjcm8gYXMgPyBjYW4ndCBiZSB1c2VkIGluIHN5bWJvbCBuYW1lcyAqLwotI2lmZGVmICBDRkdfTE9OR0hFTFAKKyNpZmRlZiAgQ09ORklHX1NZU19MT05HSEVMUAogY21kX3RibF90IF9fdV9ib290X2NtZF9xdWVzdGlvbl9tYXJrIFN0cnVjdF9TZWN0aW9uID0gewotCSI/IiwJQ0ZHX01BWEFSR1MsCTEsCWRvX2hlbHAsCisJIj8iLAlDT05GSUdfU1lTX01BWEFSR1MsCTEsCWRvX2hlbHAsCiAJIj8gICAgICAgLSBhbGlhcyBmb3IgJ2hlbHAnXG4iLAogCU5VTEwKIH07CiAjZWxzZQogY21kX3RibF90IF9fdV9ib290X2NtZF9xdWVzdGlvbl9tYXJrIFN0cnVjdF9TZWN0aW9uID0gewotCSI/IiwJQ0ZHX01BWEFSR1MsCTEsCWRvX2hlbHAsCisJIj8iLAlDT05GSUdfU1lTX01BWEFSR1MsCTEsCWRvX2hlbHAsCiAJIj8gICAgICAgLSBhbGlhcyBmb3IgJ2hlbHAnXG4iCiB9OwotI2VuZGlmIC8qIENGR19MT05HSEVMUCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTE9OR0hFTFAgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogZmluZCBjb21tYW5kIHRhYmxlIGVudHJ5IGZvciBhIGNvbW1hbmQKQEAgLTU3MCwxMiArNTcwLDEyIEBACiAJcmV0dXJuIGxlbjsKIH0KIAotc3RhdGljIGNoYXIgdG1wX2J1ZltDRkdfQ0JTSVpFXTsJLyogY29weSBvZiBjb25zb2xlIEkvTyBidWZmZXIJKi8KK3N0YXRpYyBjaGFyIHRtcF9idWZbQ09ORklHX1NZU19DQlNJWkVdOwkvKiBjb3B5IG9mIGNvbnNvbGUgSS9PIGJ1ZmZlcgkqLwogCiBpbnQgY21kX2F1dG9fY29tcGxldGUoY29uc3QgY2hhciAqY29uc3QgcHJvbXB0LCBjaGFyICpidWYsIGludCAqbnAsIGludCAqY29scCkKIHsKIAlpbnQgbiA9ICpucCwgY29sID0gKmNvbHA7Ci0JY2hhciAqYXJndltDRkdfTUFYQVJHUyArIDFdOwkJLyogTlVMTCB0ZXJtaW5hdGVkCSovCisJY2hhciAqYXJndltDT05GSUdfU1lTX01BWEFSR1MgKyAxXTsJCS8qIE5VTEwgdGVybWluYXRlZAkqLwogCWNoYXIgKmNtZHZbMjBdOwogCWNoYXIgKnMsICp0OwogCWNvbnN0IGNoYXIgKnNlcDsKQEAgLTU4Myw3ICs1ODMsNyBAQAogCWludCBjbnQ7CiAJY2hhciBsYXN0X2NoYXI7CiAKLQlpZiAoc3RyY21wKHByb21wdCwgQ0ZHX1BST01QVCkgIT0gMCkKKwlpZiAoc3RyY21wKHByb21wdCwgQ09ORklHX1NZU19QUk9NUFQpICE9IDApCiAJCXJldHVybiAwOwkvKiBub3QgaW4gbm9ybWFsIGNvbnNvbGUgKi8KIAogCWNudCA9IHN0cmxlbihidWYpOwpAQCAtNjMxLDcgKzYzMSw3IEBACiAJaWYgKHMgIT0gTlVMTCkgewogCQlrID0gbGVuICsgc2VwbGVuOwogCQkvKiBtYWtlIHN1cmUgaXQgZml0cyAqLwotCQlpZiAobiArIGsgPj0gQ0ZHX0NCU0laRSAtIDIpIHsKKwkJaWYgKG4gKyBrID49IENPTkZJR19TWVNfQ0JTSVpFIC0gMikgewogCQkJcHV0YygnXGEnKTsKIAkJCXJldHVybiAxOwogCQl9CmRpZmYgLS1naXQgYS9jb21tb24vY29uc29sZS5jIGIvY29tbW9uL2NvbnNvbGUuYwppbmRleCA1NmQ5MTE4Li42ZjA4NDZmIDEwMDY0NAotLS0gYS9jb21tb24vY29uc29sZS5jCisrKyBiL2NvbW1vbi9jb25zb2xlLmMKQEAgLTMzLDIwICszMywyMCBAQAogaW50IGNvbnNvbGVfY2hhbmdlZCA9IDA7CiAjZW5kaWYKIAotI2lmZGVmIENGR19DT05TT0xFX0lTX0lOX0VOVgorI2lmZGVmIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYKIC8qCiAgKiBpZiBvdmVyd3JpdGVfY29uc29sZSByZXR1cm5zIDEsIHRoZSBzdGRpbiwgc3RkZXJyIGFuZCBzdGRvdXQKICAqIGFyZSBzd2l0Y2hlZCB0byB0aGUgc2VyaWFsIHBvcnQsIGVsc2UgdGhlIHNldHRpbmdzIGluIHRoZQogICogZW52aXJvbm1lbnQgYXJlIHVzZWQKICAqLwotI2lmZGVmIENGR19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCisjaWZkZWYgQ09ORklHX1NZU19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCiBleHRlcm4gaW50IG92ZXJ3cml0ZV9jb25zb2xlICh2b2lkKTsKICNkZWZpbmUgT1ZFUldSSVRFX0NPTlNPTEUgb3ZlcndyaXRlX2NvbnNvbGUgKCkKICNlbHNlCiAjZGVmaW5lIE9WRVJXUklURV9DT05TT0xFIDAKLSNlbmRpZiAvKiBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORSAqLwogCi0jZW5kaWYgLyogQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WICovCisjZW5kaWYgLyogQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOViAqLwogCiBzdGF0aWMgaW50IGNvbnNvbGVfc2V0ZmlsZSAoaW50IGZpbGUsIGRldmljZV90ICogZGV2KQogewpAQCAtOTksNyArOTksNyBAQAogewogCXZhX2xpc3QgYXJnczsKIAl1aW50IGk7Ci0JY2hhciBwcmludGJ1ZmZlcltDRkdfUEJTSVpFXTsKKwljaGFyIHByaW50YnVmZmVyW0NPTkZJR19TWVNfUEJTSVpFXTsKIAogCXZhX3N0YXJ0IChhcmdzLCBmbXQpOwogCkBAIC0xNDQsNyArMTQ0LDcgQEAKIHsKIAl2YV9saXN0IGFyZ3M7CiAJdWludCBpOwotCWNoYXIgcHJpbnRidWZmZXJbQ0ZHX1BCU0laRV07CisJY2hhciBwcmludGJ1ZmZlcltDT05GSUdfU1lTX1BCU0laRV07CiAKIAl2YV9zdGFydCAoYXJncywgZm10KTsKIApAQCAtMjM4LDcgKzIzOCw3IEBACiB7CiAJdmFfbGlzdCBhcmdzOwogCXVpbnQgaTsKLQljaGFyIHByaW50YnVmZmVyW0NGR19QQlNJWkVdOworCWNoYXIgcHJpbnRidWZmZXJbQ09ORklHX1NZU19QQlNJWkVdOwogCiAJdmFfc3RhcnQgKGFyZ3MsIGZtdCk7CiAKQEAgLTI1NSw3ICsyNTUsNyBAQAogdm9pZCB2cHJpbnRmIChjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykKIHsKIAl1aW50IGk7Ci0JY2hhciBwcmludGJ1ZmZlcltDRkdfUEJTSVpFXTsKKwljaGFyIHByaW50YnVmZmVyW0NPTkZJR19TWVNfUEJTSVpFXTsKIAogCS8qIEZvciB0aGlzIHRvIHdvcmssIHByaW50YnVmZmVyIG11c3QgYmUgbGFyZ2VyIHRoYW4KIAkgKiBhbnl0aGluZyB3ZSBldmVyIHdhbnQgdG8gcHJpbnQuCkBAIC0zMTQsNyArMzE0LDcgQEAKIHsKIAl2YV9saXN0CWFyZ3M7CiAJdWludAlpOwotCWNoYXIJcHJpbnRidWZmZXJbQ0ZHX1BCU0laRV07CisJY2hhcglwcmludGJ1ZmZlcltDT05GSUdfU1lTX1BCU0laRV07CiAKIAlpZiAoIW9uY2UpIHsKIAkJbWVtc2V0KHNjcmVlbiwgMCwgc2l6ZW9mKHNjcmVlbikpOwpAQCAtMzk4LDE1ICszOTgsMTUgQEAKIAlyZXR1cm4gKDApOwogfQogCi0jaWZkZWYgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCisjaWZkZWYgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgogLyogQ2FsbGVkIGFmdGVyIHRoZSByZWxvY2F0aW9uIC0gdXNlIGRlc2lyZWQgY29uc29sZSBmdW5jdGlvbnMgKi8KIGludCBjb25zb2xlX2luaXRfciAodm9pZCkKIHsKIAljaGFyICpzdGRpbm5hbWUsICpzdGRvdXRuYW1lLCAqc3RkZXJybmFtZTsKIAlkZXZpY2VfdCAqaW5wdXRkZXYgPSBOVUxMLCAqb3V0cHV0ZGV2ID0gTlVMTCwgKmVycmRldiA9IE5VTEw7Ci0jaWZkZWYgQ0ZHX0NPTlNPTEVfRU5WX09WRVJXUklURQorI2lmZGVmIENPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFCiAJaW50IGk7Ci0jZW5kaWYgLyogQ0ZHX0NPTlNPTEVfRU5WX09WRVJXUklURSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFICovCiAKIAkvKiBzZXQgZGVmYXVsdCBoYW5kbGVycyBhdCBmaXJzdCAqLwogCWdkLT5qdFtYRl9nZXRjXSA9IHNlcmlhbF9nZXRjOwpAQCAtNDQ5LDcgKzQ0OSw3IEBACiAKIAlnZC0+ZmxhZ3MgfD0gR0RfRkxHX0RFVklOSVQ7CS8qIGRldmljZSBpbml0aWFsaXphdGlvbiBjb21wbGV0ZWQgKi8KIAotI2lmbmRlZiBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCisjaWZuZGVmIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCiAJLyogUHJpbnQgaW5mb3JtYXRpb24gKi8KIAlwdXRzICgiSW46ICAgICIpOwogCWlmIChzdGRpb19kZXZpY2VzW3N0ZGluXSA9PSBOVUxMKSB7CkBAIC00NzEsMTQgKzQ3MSwxNCBAQAogCX0gZWxzZSB7CiAJCXByaW50ZiAoIiVzXG4iLCBzdGRpb19kZXZpY2VzW3N0ZGVycl0tPm5hbWUpOwogCX0KLSNlbmRpZiAvKiBDRkdfQ09OU09MRV9JTkZPX1FVSUVUICovCisjZW5kaWYgLyogQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQgKi8KIAotI2lmZGVmIENGR19DT05TT0xFX0VOVl9PVkVSV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX0NPTlNPTEVfRU5WX09WRVJXUklURQogCS8qIHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzICh3aWxsIG92ZXJ3cml0ZSBwcmV2aW91cyBlbnYgc2V0dGluZ3MpICovCiAJZm9yIChpID0gMDsgaSA8IDM7IGkrKykgewogCQlzZXRlbnYgKHN0ZGlvX25hbWVzW2ldLCBzdGRpb19kZXZpY2VzW2ldLT5uYW1lKTsKIAl9Ci0jZW5kaWYgLyogQ0ZHX0NPTlNPTEVfRU5WX09WRVJXUklURSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFICovCiAKICNpZiAwCiAJLyogSWYgbm90aGluZyB1c2FibGUgaW5zdGFsbGVkLCB1c2Ugb25seSB0aGUgaW5pdGlhbCBjb25zb2xlICovCkBAIC00ODgsNyArNDg4LDcgQEAKIAlyZXR1cm4gKDApOwogfQogCi0jZWxzZSAvKiBDRkdfQ09OU09MRV9JU19JTl9FTlYgKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYgKi8KIAogLyogQ2FsbGVkIGFmdGVyIHRoZSByZWxvY2F0aW9uIC0gdXNlIGRlc2lyZWQgY29uc29sZSBmdW5jdGlvbnMgKi8KIGludCBjb25zb2xlX2luaXRfciAodm9pZCkKQEAgLTUzMyw3ICs1MzMsNyBAQAogCiAJZ2QtPmZsYWdzIHw9IEdEX0ZMR19ERVZJTklUOwkvKiBkZXZpY2UgaW5pdGlhbGl6YXRpb24gY29tcGxldGVkICovCiAKLSNpZm5kZWYgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAorI2lmbmRlZiBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAogCS8qIFByaW50IGluZm9ybWF0aW9uICovCiAJcHV0cyAoIkluOiAgICAiKTsKIAlpZiAoc3RkaW9fZGV2aWNlc1tzdGRpbl0gPT0gTlVMTCkgewpAQCAtNTU1LDcgKzU1NSw3IEBACiAJfSBlbHNlIHsKIAkJcHJpbnRmICgiJXNcbiIsIHN0ZGlvX2RldmljZXNbc3RkZXJyXS0+bmFtZSk7CiAJfQotI2VuZGlmIC8qIENGR19DT05TT0xFX0lORk9fUVVJRVQgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVCAqLwogCiAJLyogU2V0dGluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7CkBAIC01NzEsNCArNTcxLDQgQEAKIAlyZXR1cm4gKDApOwogfQogCi0jZW5kaWYgLyogQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WICovCisjZW5kaWYgLyogQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOViAqLwpkaWZmIC0tZ2l0IGEvY29tbW9uL2N5Y2xvbjIuYyBiL2NvbW1vbi9jeWNsb24yLmMKaW5kZXggNDc5YmViYi4uM2VkNjRiMiAxMDA2NDQKLS0tIGEvY29tbW9uL2N5Y2xvbjIuYworKysgYi9jb21tb24vY3ljbG9uMi5jCkBAIC00Myw4ICs0Myw4IEBACiAjZGVmaW5lIENPTkZJR19GUEdBX0RFTEFZKCkKICNlbmRpZgogCi0jaWZuZGVmIENGR19GUEdBX1dBSVQKLSNkZWZpbmUgQ0ZHX0ZQR0FfV0FJVCBDRkdfSFovMTAJCS8qIDEwMCBtcyAqLworI2lmbmRlZiBDT05GSUdfU1lTX0ZQR0FfV0FJVAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfV0FJVCBDT05GSUdfU1lTX0haLzEwCQkvKiAxMDAgbXMgKi8KICNlbmRpZgogCiBzdGF0aWMgaW50IENZQzJfcHNfbG9hZCggQWx0ZXJhX2Rlc2MgKmRlc2MsIHZvaWQgKmJ1Ziwgc2l6ZV90IGJzaXplICk7CkBAIC0xNDcsNyArMTQ3LDcgQEAKIAkJCQkiZG9uZTpcdDB4JXBcblxuIiwKIAkJCQlfX0ZVTkNUSU9OX18sICZmbiwgZm4sIGZuLT5jb25maWcsIGZuLT5zdGF0dXMsCiAJCQkJZm4tPndyaXRlLCBmbi0+ZG9uZSk7Ci0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCXByaW50ZiAoIkxvYWRpbmcgRlBHQSBEZXZpY2UgJWQuLi4iLCBjb29raWUpOwogI2VuZGlmCiAKQEAgLTE2Nyw3ICsxNjcsNyBAQAogCQl0cyA9IGdldF90aW1lciAoMCk7CQkvKiBnZXQgY3VycmVudCB0aW1lICovCiAJCWRvIHsKIAkJCUNPTkZJR19GUEdBX0RFTEFZICgpOwotCQkJaWYgKGdldF90aW1lciAodHMpID4gQ0ZHX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLworCQkJaWYgKGdldF90aW1lciAodHMpID4gQ09ORklHX1NZU19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KIAkJCQlwdXRzICgiKiogVGltZW91dCB3YWl0aW5nIGZvciBTVEFUVVMgdG8gZ28gaGlnaC5cbiIpOwogCQkJCSgqZm4tPmFib3J0KSAoY29va2llKTsKIAkJCQlyZXR1cm4gRlBHQV9GQUlMOwpAQCAtMTgzLDEzICsxODMsMTMgQEAKIAkJCSgqZm4tPmFib3J0KSAoY29va2llKTsKIAkJCXJldHVybiBGUEdBX0ZBSUw7CiAJCX0KLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJcHV0cygiIE9LPyAuLi4iKTsKICNlbmRpZgogCiAJCUNPTkZJR19GUEdBX0RFTEFZICgpOwogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCXB1dGMgKCcgJyk7CQkJLyogdGVybWluYXRlIHRoZSBkb3R0ZWQgbGluZSAqLwogI2VuZGlmCiAKQEAgLTIwMiwxMyArMjAyLDEzIEBACiAJCSgqZm4tPmFib3J0KSAoY29va2llKTsKIAkJcmV0dXJuIChGUEdBX0ZBSUwpOwogCX0KLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAlwdXRzKCIgT0tcbiIpOwogI2VuZGlmCiAKIAlyZXRfdmFsID0gRlBHQV9TVUNDRVNTOwogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJaWYgKHJldF92YWwgPT0gRlBHQV9TVUNDRVNTKSB7CiAJCXB1dHMgKCJEb25lLlxuIik7CiAJfQpkaWZmIC0tZ2l0IGEvY29tbW9uL2RldmljZXMuYyBiL2NvbW1vbi9kZXZpY2VzLmMKaW5kZXggN2QwYWMyZS4uY2UzYjdhMCAxMDA2NDQKLS0tIGEvY29tbW9uL2RldmljZXMuYworKysgYi9jb21tb24vZGV2aWNlcy5jCkBAIC00MCwxMiArNDAsMTIgQEAKIGRldmljZV90ICpzdGRpb19kZXZpY2VzW10gPSB7IE5VTEwsIE5VTEwsIE5VTEwgfTsKIGNoYXIgKnN0ZGlvX25hbWVzW01BWF9GSUxFU10gPSB7ICJzdGRpbiIsICJzdGRvdXQiLCAic3RkZXJyIiB9OwogCi0jaWYgZGVmaW5lZChDT05GSUdfU1BMQVNIX1NDUkVFTikgJiYgIWRlZmluZWQoQ0ZHX0RFVklDRV9OVUxMREVWKQotI2RlZmluZQlDRkdfREVWSUNFX05VTExERVYJMQorI2lmIGRlZmluZWQoQ09ORklHX1NQTEFTSF9TQ1JFRU4pICYmICFkZWZpbmVkKENPTkZJR19TWVNfREVWSUNFX05VTExERVYpCisjZGVmaW5lCUNPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQogI2VuZGlmCiAKIAotI2lmZGVmIENGR19ERVZJQ0VfTlVMTERFVgorI2lmZGVmIENPTkZJR19TWVNfREVWSUNFX05VTExERVYKIHZvaWQgbnVsbGRldl9wdXRjKGNvbnN0IGNoYXIgYykKIHsKIAkvKiBudWxsZGV2IGlzIGVtcHR5ISAqLwpAQCAtOTAsNyArOTAsNyBAQAogCiAJZGV2aWNlX3JlZ2lzdGVyICgmZGV2KTsKIAotI2lmZGVmIENGR19ERVZJQ0VfTlVMTERFVgorI2lmZGVmIENPTkZJR19TWVNfREVWSUNFX05VTExERVYKIAltZW1zZXQgKCZkZXYsIDAsIHNpemVvZiAoZGV2KSk7CiAKIAlzdHJjcHkgKGRldi5uYW1lLCAibnVsbGRldiIpOwpAQCAtMTYyLDcgKzE2Miw3IEBACiAvKiBkZXJlZ2lzdGVyIHRoZSBkZXZpY2UgImRldm5hbWUiLgogICogcmV0dXJucyAwIGlmIHN1Y2Nlc3MsIC0xIGlmIGRldmljZSBpcyBhc3NpZ25lZCBhbmQgMSBpZiBkZXZuYW1lIG5vdCBmb3VuZAogICovCi0jaWZkZWYJQ0ZHX0RFVklDRV9ERVJFR0lTVEVSCisjaWZkZWYJQ09ORklHX1NZU19ERVZJQ0VfREVSRUdJU1RFUgogaW50IGRldmljZV9kZXJlZ2lzdGVyKGNoYXIgKmRldm5hbWUpCiB7CiAJaW50IGw7CkBAIC0xOTcsNyArMTk3LDcgQEAKIAl9CiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYJLyogQ0ZHX0RFVklDRV9ERVJFR0lTVEVSICovCisjZW5kaWYJLyogQ09ORklHX1NZU19ERVZJQ0VfREVSRUdJU1RFUiAqLwogCiBpbnQgZGV2aWNlc19pbml0ICh2b2lkKQogewpAQCAtMjE2LDcgKzIxNiw3IEBACiAJSU5JVF9MSVNUX0hFQUQoJihkZXZzLmxpc3QpKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX0hBUkRfSTJDKSB8fCBkZWZpbmVkKENPTkZJR19TT0ZUX0kyQykKLQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAjZW5kaWYKICNpZmRlZiBDT05GSUdfTENECiAJZHJ2X2xjZF9pbml0ICgpOwpkaWZmIC0tZ2l0IGEvY29tbW9uL2Vudl9jb21tb24uYyBiL2NvbW1vbi9lbnZfY29tbW9uLmMKaW5kZXggMGZlZTNhZi4uNmJlM2JiMCAxMDA2NDQKLS0tIGEvY29tbW9uL2Vudl9jb21tb24uYworKysgYi9jb21tb24vZW52X2NvbW1vbi5jCkBAIC0xMDMsOCArMTAzLDggQEAKICNpZmRlZglDT05GSUdfU0VSVkVSSVAKIAkic2VydmVyaXA9IglNS19TVFIoQ09ORklHX1NFUlZFUklQKQkJIlwwIgogI2VuZGlmCi0jaWZkZWYJQ0ZHX0FVVE9MT0FECi0JImF1dG9sb2FkPSIJQ0ZHX0FVVE9MT0FECQkJIlwwIgorI2lmZGVmCUNPTkZJR19TWVNfQVVUT0xPQUQKKwkiYXV0b2xvYWQ9IglDT05GSUdfU1lTX0FVVE9MT0FECQkJIlwwIgogI2VuZGlmCiAjaWZkZWYJQ09ORklHX1BSRUJPT1QKIAkicHJlYm9vdD0iCUNPTkZJR19QUkVCT09UCQkJIlwwIgpAQCAtMjIwLDcgKzIyMCw3IEBACiAJbWVtc2V0KGVudl9wdHIsIDAsIHNpemVvZihlbnZfdCkpOwogCW1lbWNweShlbnZfcHRyLT5kYXRhLCBkZWZhdWx0X2Vudmlyb25tZW50LAogCSAgICAgICBzaXplb2YoZGVmYXVsdF9lbnZpcm9ubWVudCkpOwotI2lmZGVmIENGR19SRURVTkRBTkRfRU5WSVJPTk1FTlQKKyNpZmRlZiBDT05GSUdfU1lTX1JFRFVOREFORF9FTlZJUk9OTUVOVAogCWVudl9wdHItPmZsYWdzID0gMHhGRjsKICNlbmRpZgogCWVudl9jcmNfdXBkYXRlICgpOwpkaWZmIC0tZ2l0IGEvY29tbW9uL2Vudl9lZXByb20uYyBiL2NvbW1vbi9lbnZfZWVwcm9tLmMKaW5kZXggMWYwZjQxMy4uMTU3OGQ2MSAxMDA2NDQKLS0tIGEvY29tbW9uL2Vudl9lZXByb20uYworKysgYi9jb21tb24vZW52X2VlcHJvbS5jCkBAIC0zOSw3ICszOSw3IEBACiB7CiAJdWNoYXIgYzsKIAotCWVlcHJvbV9yZWFkIChDRkdfREVGX0VFUFJPTV9BRERSLAorCWVlcHJvbV9yZWFkIChDT05GSUdfU1lTX0RFRl9FRVBST01fQUREUiwKIAkJICAgICBDT05GSUdfRU5WX09GRlNFVCtpbmRleCtvZmZzZXRvZihlbnZfdCxkYXRhKSwKIAkJICAgICAmYywgMSk7CiAKQEAgLTQ4LDcgKzQ4LDcgQEAKIAogdm9pZCBlbnZfcmVsb2NhdGVfc3BlYyAodm9pZCkKIHsKLQllZXByb21fcmVhZCAoQ0ZHX0RFRl9FRVBST01fQUREUiwKKwllZXByb21fcmVhZCAoQ09ORklHX1NZU19ERUZfRUVQUk9NX0FERFIsCiAJCSAgICAgQ09ORklHX0VOVl9PRkZTRVQsCiAJCSAgICAgKHVjaGFyKillbnZfcHRyLAogCQkgICAgIENPTkZJR19FTlZfU0laRSk7CkBAIC01Niw3ICs1Niw3IEBACiAKIGludCBzYXZlZW52KHZvaWQpCiB7Ci0JcmV0dXJuIGVlcHJvbV93cml0ZSAoQ0ZHX0RFRl9FRVBST01fQUREUiwKKwlyZXR1cm4gZWVwcm9tX3dyaXRlIChDT05GSUdfU1lTX0RFRl9FRVBST01fQUREUiwKIAkJCSAgICAgQ09ORklHX0VOVl9PRkZTRVQsCiAJCQkgICAgICh1Y2hhciAqKWVudl9wdHIsCiAJCQkgICAgIENPTkZJR19FTlZfU0laRSk7CkBAIC03Nyw3ICs3Nyw3IEBACiAJZWVwcm9tX2luaXQgKCk7CS8qIHByZXBhcmUgZm9yIEVFUFJPTSByZWFkL3dyaXRlICovCiAKIAkvKiByZWFkIG9sZCBDUkMgKi8KLQllZXByb21fcmVhZCAoQ0ZHX0RFRl9FRVBST01fQUREUiwKKwllZXByb21fcmVhZCAoQ09ORklHX1NZU19ERUZfRUVQUk9NX0FERFIsCiAJCSAgICAgQ09ORklHX0VOVl9PRkZTRVQrb2Zmc2V0b2YoZW52X3QsY3JjKSwKIAkJICAgICAodWNoYXIgKikmY3JjLCBzaXplb2YodWxvbmcpKTsKIApAQCAtODcsNyArODcsNyBAQAogCXdoaWxlIChsZW4gPiAwKSB7CiAJCWludCBuID0gKGxlbiA+IHNpemVvZihidWYpKSA/IHNpemVvZihidWYpIDogbGVuOwogCi0JCWVlcHJvbV9yZWFkIChDRkdfREVGX0VFUFJPTV9BRERSLCBDT05GSUdfRU5WX09GRlNFVCtvZmYsIGJ1Ziwgbik7CisJCWVlcHJvbV9yZWFkIChDT05GSUdfU1lTX0RFRl9FRVBST01fQUREUiwgQ09ORklHX0VOVl9PRkZTRVQrb2ZmLCBidWYsIG4pOwogCQluZXcgPSBjcmMzMiAobmV3LCBidWYsIG4pOwogCQlsZW4gLT0gbjsKIAkJb2ZmICs9IG47CmRpZmYgLS1naXQgYS9jb21tb24vZW52X2VtYmVkZGVkLmMgYi9jb21tb24vZW52X2VtYmVkZGVkLmMKaW5kZXggZTc5Zjg0My4uYWU2Y2FjNCAxMDA2NDQKLS0tIGEvY29tbW9uL2Vudl9lbWJlZGRlZC5jCisrKyBiL2NvbW1vbi9lbnZfZW1iZWRkZWQuYwpAQCAtNTEsNyArNTEsNyBAQAogICogYSBzZXBlcmF0ZSBzZWN0aW9uLiAgTm90ZSB0aGF0IEVOVl9DUkMgaXMgb25seSBkZWZpbmVkIHdoZW4gYnVpbGRpbmcKICAqIFUtQm9vdCBpdHNlbGYuCiAgKi8KLSNpZiAoZGVmaW5lZChDRkdfVVNFX1BQQ0VOVikgfHwgZGVmaW5lZChDT05GSUdfTkFORF9VX0JPT1QpKSAmJiBcCisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19VU0VfUFBDRU5WKSB8fCBkZWZpbmVkKENPTkZJR19OQU5EX1VfQk9PVCkpICYmIFwKICAgICAgZGVmaW5lZChFTlZfQ1JDKSAvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBVLUJvb3QgLnBwY2VudiBzZWN0aW9uICovCiAvKiBYWFggLSBUaGlzIG9ubHkgd29ya3Mgd2l0aCBHTlUgQyAqLwogIyAgZGVmaW5lIF9fUFBDRU5WX18gX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24oIi5wcGNlbnYiKSkpCkBAIC05OCw3ICs5OCw3IEBACiAKIGVudl90IGVudmlyb25tZW50IF9fUFBDRU5WX18gPSB7CiAJRU5WX0NSQywJLyogQ1JDIFN1bSAqLwotI2lmZGVmIENGR19SRURVTkRBTkRfRU5WSVJPTk1FTlQKKyNpZmRlZiBDT05GSUdfU1lTX1JFRFVOREFORF9FTlZJUk9OTUVOVAogCTEsCQkvKiBGbGFnczogdmFsaWQgKi8KICNlbmRpZgogCXsKQEAgLTE1MCw4ICsxNTAsOCBAQAogI2lmZGVmCUNPTkZJR19TRVJWRVJJUAogCSJzZXJ2ZXJpcD0iCU1LX1NUUihDT05GSUdfU0VSVkVSSVApCQkiXDAiCiAjZW5kaWYKLSNpZmRlZglDRkdfQVVUT0xPQUQKLQkiYXV0b2xvYWQ9IglDRkdfQVVUT0xPQUQJCQkiXDAiCisjaWZkZWYJQ09ORklHX1NZU19BVVRPTE9BRAorCSJhdXRvbG9hZD0iCUNPTkZJR19TWVNfQVVUT0xPQUQJCQkiXDAiCiAjZW5kaWYKICNpZmRlZglDT05GSUdfUk9PVFBBVEgKIAkicm9vdHBhdGg9IglNS19TVFIoQ09ORklHX1JPT1RQQVRIKQkJIlwwIgpkaWZmIC0tZ2l0IGEvY29tbW9uL2Vudl9udnJhbS5jIGIvY29tbW9uL2Vudl9udnJhbS5jCmluZGV4IGE4Yjc5NTkuLjU2MmVkZDAgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9lbnZfbnZyYW0uYworKysgYi9jb21tb24vZW52X252cmFtLmMKQEAgLTM1LDcgKzM1LDcgQEAKICAqIHNwYWNlIHVzaW5nIGl0cyBhZGRyZXNzIGFuZCBkYXRhIHJlZ2lzdGVycy4gVG8gZW5hYmxlIHVzYWdlIG9mCiAgKiBOVlJBTSBpbiB0aG9zZSBjYXNlcyBJIGludmVudGVkIHRoZSBmdW5jdGlvbnMgJ252cmFtX3JlYWQoKScgYW5kCiAgKiAnbnZyYW1fd3JpdGUoKScsIHdoaWNoIHdpbGwgYmUgYWN0aXZhdGVkIHVwb24gdGhlIGNvbmZpZ3VyYXRpb24KLSAqICNkZWZpbmUgQ0ZHX05WUkFNX0FDQ0VTU19ST1VUSU5FLiBOb3RlLCB0aGF0IHRob3NlIGZ1bmN0aW9ucyBhcmUKKyAqICNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9BQ0NFU1NfUk9VVElORS4gTm90ZSwgdGhhdCB0aG9zZSBmdW5jdGlvbnMgYXJlCiAgKiBzdHJvbmdseSBkZXBlbmRlbnQgb24gdGhlIHVzZWQgSFcsIGFuZCBtdXN0IGJlIHJlZGVmaW5lZCBmb3IgZWFjaAogICogYm9hcmQgdGhhdCB3YW50cyB0byB1c2UgdGhlbS4KICAqLwpAQCAtNDcsNyArNDcsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotI2lmZGVmIENGR19OVlJBTV9BQ0NFU1NfUk9VVElORQorI2lmZGVmIENPTkZJR19TWVNfTlZSQU1fQUNDRVNTX1JPVVRJTkUKIGV4dGVybiB2b2lkICpudnJhbV9yZWFkKHZvaWQgKmRlc3QsIGNvbnN0IGxvbmcgc3JjLCBzaXplX3QgY291bnQpOwogZXh0ZXJuIHZvaWQgbnZyYW1fd3JpdGUobG9uZyBkZXN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBjb3VudCk7CiBlbnZfdCAqZW52X3B0ciA9IE5VTEw7CkBAIC02Myw3ICs2Myw3IEBACiAjaWZkZWYgQ09ORklHX0FNSUdBT05FRzNTRQogdWNoYXIgZW52X2dldF9jaGFyX3NwZWMgKGludCBpbmRleCkKIHsKLSNpZmRlZiBDRkdfTlZSQU1fQUNDRVNTX1JPVVRJTkUKKyNpZmRlZiBDT05GSUdfU1lTX05WUkFNX0FDQ0VTU19ST1VUSU5FCiAJdWNoYXIgYzsKIAogCW52cmFtX3JlYWQoJmMsIENPTkZJR19FTlZfQUREUitpbmRleCwgMSk7CkBAIC04MCw3ICs4MCw3IEBACiAjZWxzZQogdWNoYXIgZW52X2dldF9jaGFyX3NwZWMgKGludCBpbmRleCkKIHsKLSNpZmRlZiBDRkdfTlZSQU1fQUNDRVNTX1JPVVRJTkUKKyNpZmRlZiBDT05GSUdfU1lTX05WUkFNX0FDQ0VTU19ST1VUSU5FCiAJdWNoYXIgYzsKIAogCW52cmFtX3JlYWQoJmMsIENPTkZJR19FTlZfQUREUitpbmRleCwgMSk7CkBAIC05NCw3ICs5NCw3IEBACiAKIHZvaWQgZW52X3JlbG9jYXRlX3NwZWMgKHZvaWQpCiB7Ci0jaWYgZGVmaW5lZChDRkdfTlZSQU1fQUNDRVNTX1JPVVRJTkUpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX05WUkFNX0FDQ0VTU19ST1VUSU5FKQogCW52cmFtX3JlYWQoZW52X3B0ciwgQ09ORklHX0VOVl9BRERSLCBDT05GSUdfRU5WX1NJWkUpOwogI2Vsc2UKIAltZW1jcHkgKGVudl9wdHIsICh2b2lkKilDT05GSUdfRU5WX0FERFIsIENPTkZJR19FTlZfU0laRSk7CkBAIC0xMDcsNyArMTA3LDcgQEAKICNpZmRlZiBDT05GSUdfQU1JR0FPTkVHM1NFCiAJZW5hYmxlX252cmFtKCk7CiAjZW5kaWYKLSNpZmRlZiBDRkdfTlZSQU1fQUNDRVNTX1JPVVRJTkUKKyNpZmRlZiBDT05GSUdfU1lTX05WUkFNX0FDQ0VTU19ST1VUSU5FCiAJbnZyYW1fd3JpdGUoQ09ORklHX0VOVl9BRERSLCBlbnZfcHRyLCBDT05GSUdfRU5WX1NJWkUpOwogI2Vsc2UKIAlpZiAobWVtY3B5ICgoY2hhciAqKUNPTkZJR19FTlZfQUREUiwgZW52X3B0ciwgQ09ORklHX0VOVl9TSVpFKSA9PSBOVUxMKQpAQCAtMTMxLDcgKzEzMSw3IEBACiAjaWZkZWYgQ09ORklHX0FNSUdBT05FRzNTRQogCWVuYWJsZV9udnJhbSgpOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfTlZSQU1fQUNDRVNTX1JPVVRJTkUpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX05WUkFNX0FDQ0VTU19ST1VUSU5FKQogCXVsb25nIGNyYzsKIAl1Y2hhciBkYXRhW0VOVl9TSVpFXTsKIAludnJhbV9yZWFkICgmY3JjLCBDT05GSUdfRU5WX0FERFIsIHNpemVvZih1bG9uZykpOwpkaWZmIC0tZ2l0IGEvY29tbW9uL2ZsYXNoLmMgYi9jb21tb24vZmxhc2guYwppbmRleCBmZTM5ZDU1Li5lYjRiMmY1IDEwMDY0NAotLS0gYS9jb21tb24vZmxhc2guYworKysgYi9jb21tb24vZmxhc2guYwpAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPGZsYXNoLmg+CiAKLSNpZiAhZGVmaW5lZChDRkdfTk9fRkxBU0gpCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19OT19GTEFTSCkKIAogZXh0ZXJuIGZsYXNoX2luZm9fdCAgZmxhc2hfaW5mb1tdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCkBAIC03NSwxOSArNzUsMTkgQEAKIAkJICovCiAJCWlmIChmcm9tIDw9IGVuZCAmJiB0byA+PSBpbmZvLT5zdGFydFtpXSkgewogCQkJaWYgKGZsYWcgJiBGTEFHX1BST1RFQ1RfQ0xFQVIpIHsKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQkJCWZsYXNoX3JlYWxfcHJvdGVjdChpbmZvLCBpLCAwKTsKICNlbHNlCiAJCQkJaW5mby0+cHJvdGVjdFtpXSA9IDA7Ci0jZW5kaWYJLyogQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gKi8KIAkJCQlkZWJ1ZyAoInByb3RlY3Qgb2ZmICVkXG4iLCBpKTsKIAkJCX0KIAkJCWVsc2UgaWYgKGZsYWcgJiBGTEFHX1BST1RFQ1RfU0VUKSB7Ci0jaWYgZGVmaW5lZChDRkdfRkxBU0hfUFJPVEVDVElPTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTikKIAkJCQlmbGFzaF9yZWFsX3Byb3RlY3QoaW5mbywgaSwgMSk7CiAjZWxzZQogCQkJCWluZm8tPnByb3RlY3RbaV0gPSAxOwotI2VuZGlmCS8qIENGR19GTEFTSF9QUk9URUNUSU9OICovCisjZW5kaWYJLyogQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OICovCiAJCQkJZGVidWcgKCJwcm90ZWN0IG9uICVkXG4iLCBpKTsKIAkJCX0KIAkJfQpAQCAtMTA0LDcgKzEwNCw3IEBACiAJZmxhc2hfaW5mb190ICppbmZvOwogCWludCBpOwogCi0JZm9yIChpPTAsIGluZm8gPSAmZmxhc2hfaW5mb1swXTsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2ksICsraW5mbykgeworCWZvciAoaT0wLCBpbmZvID0gJmZsYXNoX2luZm9bMF07IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSwgKytpbmZvKSB7CiAJCWlmIChpbmZvLT5mbGFzaF9pZCAhPSBGTEFTSF9VTktOT1dOICYmCiAJCSAgICBhZGRyID49IGluZm8tPnN0YXJ0WzBdICYmCiAJCSAgICAvKiBXQVJOSU5HIC0gVGhlICctIDEnIGlzIG5lZWRlZCBpZiB0aGUgZmxhc2gKQEAgLTIyNSw0ICsyMjUsNCBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNlbmRpZiAvKiAhQ0ZHX05PX0ZMQVNIICovCisjZW5kaWYgLyogIUNPTkZJR19TWVNfTk9fRkxBU0ggKi8KZGlmZiAtLWdpdCBhL2NvbW1vbi9odXNoLmMgYi9jb21tb24vaHVzaC5jCmluZGV4IDY3YmVkMzkuLjlhZWY2ZTQgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9odXNoLmMKKysrIGIvY29tbW9uL2h1c2guYwpAQCAtOTYsNyArOTYsNyBAQAogLypjbWRfYm9vdC5jKi8KIGV4dGVybiBpbnQgZG9fYm9vdGQgKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKTsgICAgICAvKiBkb19ib290ZCAqLwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogI2lmbmRlZiBfX1VfQk9PVF9fCiAjaW5jbHVkZSA8Y3R5cGUuaD4gICAgIC8qIGlzYWxwaGEsIGlzZGlnaXQgKi8KICNpbmNsdWRlIDx1bmlzdGQuaD4gICAgLyogZ2V0cGlkICovCkBAIC0xMDE5LDkgKzEwMTksOSBAQAogCWZmbHVzaChzdGRvdXQpOwogCWktPnAgPSB0aGVfY29tbWFuZDsKICNlbHNlCi0JZXh0ZXJuIGNoYXIgY29uc29sZV9idWZmZXJbQ0ZHX0NCU0laRV07CisJZXh0ZXJuIGNoYXIgY29uc29sZV9idWZmZXJbQ09ORklHX1NZU19DQlNJWkVdOwogCWludCBuOwotCXN0YXRpYyBjaGFyIHRoZV9jb21tYW5kW0NGR19DQlNJWkVdOworCXN0YXRpYyBjaGFyIHRoZV9jb21tYW5kW0NPTkZJR19TWVNfQ0JTSVpFXTsKIAogI2lmZGVmIENPTkZJR19CT09UX1JFVFJZX1RJTUUKICMgIGlmZGVmIENPTkZJR19SRVNFVF9UT19SRVRSWQpAQCAtMTAzMyw5ICsxMDMzLDkgQEAKICNlbmRpZgogCWktPl9fcHJvbXB0bWUgPSAxOwogCWlmIChpLT5wcm9tcHRtb2RlID09IDEpIHsKLQkJbiA9IHJlYWRsaW5lKENGR19QUk9NUFQpOworCQluID0gcmVhZGxpbmUoQ09ORklHX1NZU19QUk9NUFQpOwogCX0gZWxzZSB7Ci0JCW4gPSByZWFkbGluZShDRkdfUFJPTVBUX0hVU0hfUFMyKTsKKwkJbiA9IHJlYWRsaW5lKENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyKTsKIAl9CiAjaWZkZWYgQ09ORklHX0JPT1RfUkVUUllfVElNRQogCWlmIChuID09IC0yKSB7CkBAIC0xMDc1LDcgKzEwNzUsNyBAQAogCWVsc2UgewogCQlpZiAoY29uc29sZV9idWZmZXJbMF0gIT0gJ1xuJykgewogCQkJaWYgKHN0cmxlbih0aGVfY29tbWFuZCkgKyBzdHJsZW4oY29uc29sZV9idWZmZXIpCi0JCQkgICAgPCBDRkdfQ0JTSVpFKSB7CisJCQkgICAgPCBDT05GSUdfU1lTX0NCU0laRSkgewogCQkJCW4gPSBzdHJsZW4odGhlX2NvbW1hbmQpOwogCQkJCXRoZV9jb21tYW5kW24tMV0gPSAnICc7CiAJCQkJc3RyY3B5KCZ0aGVfY29tbWFuZFtuXSxjb25zb2xlX2J1ZmZlcik7CkBAIC0zNjI0LDcgKzM2MjQsNyBAQAogfQogCiBVX0JPT1RfQ01EKAotCXNob3d2YXIsIENGR19NQVhBUkdTLCAxLAlkb19zaG93dmFyLAorCXNob3d2YXIsIENPTkZJR19TWVNfTUFYQVJHUywgMSwJZG9fc2hvd3ZhciwKIAkic2hvd3Zhci0gcHJpbnQgbG9jYWwgaHVzaHNoZWxsIHZhcmlhYmxlc1xuIiwKIAkiXG4gICAgLSBwcmludCB2YWx1ZXMgb2YgYWxsIGh1c2hzaGVsbCB2YXJpYWJsZXNcbiIKIAkic2hvd3ZhciBuYW1lIC4uLlxuIgpAQCAtMzYzMiw1ICszNjMyLDUgQEAKICk7CiAKICNlbmRpZgotI2VuZGlmIC8qIENGR19IVVNIX1BBUlNFUiAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfSFVTSF9QQVJTRVIgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpkaWZmIC0tZ2l0IGEvY29tbW9uL2ltYWdlLmMgYi9jb21tb24vaW1hZ2UuYwppbmRleCAwYjdiZDhkLi44NjZlZGY2IDEwMDY0NAotLS0gYS9jb21tb24vaW1hZ2UuYworKysgYi9jb21tb24vaW1hZ2UuYwpAQCAtNDI2LDggKzQyNiw4IEBACiAJCXJldHVybiB0bXA7CiAJfQogCi0jaWYgZGVmaW5lZChDRkdfU0RSQU1fQkFTRSkKLQlyZXR1cm4gQ0ZHX1NEUkFNX0JBU0U7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1NEUkFNX0JBU0UpCisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fQkFTRTsKICNlbGlmIGRlZmluZWQoQ09ORklHX0FSTSkKIAlyZXR1cm4gZ2QtPmJkLT5iaV9kcmFtWzBdLnN0YXJ0OwogI2Vsc2UKQEAgLTQ0MCw3ICs0NDAsNyBAQAogCWNoYXIgKnMgPSBnZXRlbnYgKCJib290bV9zaXplIik7CiAJaWYgKHMpIHsKIAkJcGh5c19zaXplX3QgdG1wOwotI2lmZGVmIENGR182NEJJVF9TVFJUT1VMCisjaWZkZWYgQ09ORklHX1NZU182NEJJVF9TVFJUT1VMCiAJCXRtcCA9IChwaHlzX3NpemVfdClzaW1wbGVfc3RydG91bGwgKHMsIE5VTEwsIDE2KTsKICNlbHNlCiAJCXRtcCA9IChwaHlzX3NpemVfdClzaW1wbGVfc3RydG91bCAocywgTlVMTCwgMTYpOwpAQCAtNjYzLDcgKzY2Myw3IEBACiAKIAlpZiAoYWRkcl9kYXRhZmxhc2ggKGltZ19hZGRyKSl7CiAJCS8qIGdlciBSQU0gYWRkcmVzcyAqLwotCQlyYW1fYWRkciA9IENGR19MT0FEX0FERFI7CisJCXJhbV9hZGRyID0gQ09ORklHX1NZU19MT0FEX0FERFI7CiAKIAkJLyogZ2V0IGhlYWRlciBzaXplICovCiAJCWhfc2l6ZSA9IGltYWdlX2dldF9oZWFkZXJfc2l6ZSAoKTsKQEAgLTExNTQsOCArMTE1NCw4IEBACiB9CiAjZW5kaWYgLyogQ09ORklHX0ZJVCAqLwogCi0jaWZuZGVmIENGR19GRFRfUEFECi0jZGVmaW5lIENGR19GRFRfUEFEIDB4MzAwMAorI2lmbmRlZiBDT05GSUdfU1lTX0ZEVF9QQUQKKyNkZWZpbmUgQ09ORklHX1NZU19GRFRfUEFEIDB4MzAwMAogI2VuZGlmCiAKIC8qKgpAQCAtMTE5MCw3ICsxMTkwLDcgQEAKIAkJZ290byBlcnJvcjsKIAl9CiAKLSNpZm5kZWYgQ0ZHX05PX0ZMQVNICisjaWZuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKIAkvKiBtb3ZlIHRoZSBibG9iIGlmIGl0IGlzIGluIGZsYXNoIChzZXQgcmVsb2NhdGUpICovCiAJaWYgKGFkZHIyaW5mbyAoKHVsb25nKWZkdF9ibG9iKSAhPSBOVUxMKQogCQlyZWxvY2F0ZSA9IDE7CkBAIC0xMjAyLDggKzEyMDIsOCBAQAogCWlmIChmZHRfYmxvYiA8IChjaGFyICopYm9vdG1hcF9iYXNlKQogCQlyZWxvY2F0ZSA9IDE7CiAKLQlpZiAoKGZkdF9ibG9iICsgKm9mX3NpemUgKyBDRkdfRkRUX1BBRCkgPj0KLQkJCSgoY2hhciAqKUNGR19CT09UTUFQU1ogKyBib290bWFwX2Jhc2UpKQorCWlmICgoZmR0X2Jsb2IgKyAqb2Zfc2l6ZSArIENPTkZJR19TWVNfRkRUX1BBRCkgPj0KKwkJCSgoY2hhciAqKUNPTkZJR19TWVNfQk9PVE1BUFNaICsgYm9vdG1hcF9iYXNlKSkKIAkJcmVsb2NhdGUgPSAxOwogCiAJLyogbW92ZSBmbGF0dGVuZCBkZXZpY2UgdHJlZSBpZiBuZWVkZWQgKi8KQEAgLTEyMTMsOSArMTIxMyw5IEBACiAKIAkJLyogcG9zaXRpb24gb24gYSA0SyBib3VuZGFyeSBiZWZvcmUgdGhlIGFsbG9jX2N1cnJlbnQgKi8KIAkJLyogUGFkIHRoZSBGRFQgYnkgYSBzcGVjaWZpZWQgYW1vdW50ICovCi0JCW9mX2xlbiA9ICpvZl9zaXplICsgQ0ZHX0ZEVF9QQUQ7CisJCW9mX2xlbiA9ICpvZl9zaXplICsgQ09ORklHX1NZU19GRFRfUEFEOwogCQlvZl9zdGFydCA9ICh1bnNpZ25lZCBsb25nKWxtYl9hbGxvY19iYXNlKGxtYiwgb2ZfbGVuLCAweDEwMDAsCi0JCQkJKENGR19CT09UTUFQU1ogKyBib290bWFwX2Jhc2UpKTsKKwkJCQkoQ09ORklHX1NZU19CT09UTUFQU1ogKyBib290bWFwX2Jhc2UpKTsKIAogCQlpZiAob2Zfc3RhcnQgPT0gMCkgewogCQkJcHV0cygiZGV2aWNlIHRyZWUgLSBhbGxvY2F0aW9uIGVycm9yXG4iKTsKQEAgLTEyNDAsNyArMTI0MCw3IEBACiAJCSpvZl9zaXplID0gb2ZfbGVuOwogCX0gZWxzZSB7CiAJCSpvZl9mbGF0X3RyZWUgPSBmZHRfYmxvYjsKLQkJb2ZfbGVuID0gKENGR19CT09UTUFQU1ogKyBib290bWFwX2Jhc2UpIC0gKHVsb25nKWZkdF9ibG9iOworCQlvZl9sZW4gPSAoQ09ORklHX1NZU19CT09UTUFQU1ogKyBib290bWFwX2Jhc2UpIC0gKHVsb25nKWZkdF9ibG9iOwogCQlsbWJfcmVzZXJ2ZShsbWIsICh1bG9uZylmZHRfYmxvYiwgb2ZfbGVuKTsKIAkJZmR0X3NldF90b3RhbHNpemUoKm9mX2ZsYXRfdHJlZSwgb2ZfbGVuKTsKIApAQCAtMTU5OCw4ICsxNTk4LDggQEAKIAljaGFyICpjbWRsaW5lOwogCWNoYXIgKnM7CiAKLQljbWRsaW5lID0gKGNoYXIgKikodWxvbmcpbG1iX2FsbG9jX2Jhc2UobG1iLCBDRkdfQkFSR1NJWkUsIDB4ZiwKLQkJCQkJIENGR19CT09UTUFQU1ogKyBib290bWFwX2Jhc2UpOworCWNtZGxpbmUgPSAoY2hhciAqKSh1bG9uZylsbWJfYWxsb2NfYmFzZShsbWIsIENPTkZJR19TWVNfQkFSR1NJWkUsIDB4ZiwKKwkJCQkJIENPTkZJR19TWVNfQk9PVE1BUFNaICsgYm9vdG1hcF9iYXNlKTsKIAogCWlmIChjbWRsaW5lID09IE5VTEwpCiAJCXJldHVybiAtMTsKQEAgLTE2MzUsNyArMTYzNSw3IEBACiBpbnQgYm9vdF9nZXRfa2JkIChzdHJ1Y3QgbG1iICpsbWIsIGJkX3QgKiprYmQsIHVsb25nIGJvb3RtYXBfYmFzZSkKIHsKIAkqa2JkID0gKGJkX3QgKikodWxvbmcpbG1iX2FsbG9jX2Jhc2UobG1iLCBzaXplb2YoYmRfdCksIDB4ZiwKLQkJCQkgICAgICBDRkdfQk9PVE1BUFNaICsgYm9vdG1hcF9iYXNlKTsKKwkJCQkgICAgICBDT05GSUdfU1lTX0JPT1RNQVBTWiArIGJvb3RtYXBfYmFzZSk7CiAJaWYgKCprYmQgPT0gTlVMTCkKIAkJcmV0dXJuIC0xOwogCmRpZmYgLS1naXQgYS9jb21tb24va2dkYi5jIGIvY29tbW9uL2tnZGIuYwppbmRleCBiMTQ4OThiLi5hZGMxNWRkIDEwMDY0NAotLS0gYS9jb21tb24va2dkYi5jCisrKyBiL2NvbW1vbi9rZ2RiLmMKQEAgLTU3NCw3ICs1NzQsNyBAQAogfQogCiBVX0JPT1RfQ01EKAotCWtnZGIsIENGR19NQVhBUkdTLCAxLAlkb19rZ2RiLAorCWtnZGIsIENPTkZJR19TWVNfTUFYQVJHUywgMSwJZG9fa2dkYiwKIAkia2dkYiAgICAtIGVudGVyIGdkYiByZW1vdGUgZGVidWcgbW9kZVxuIiwKIAkiW2FyZzAgYXJnMSAuLiBhcmdOXVxuIgogCSIgICAgLSBleGVjdXRlcyBhIGJyZWFrcG9pbnQgc28gdGhhdCBrZ2RiIG1vZGUgaXNcbiIKZGlmZiAtLWdpdCBhL2NvbW1vbi9sY2QuYyBiL2NvbW1vbi9sY2QuYwppbmRleCAyNWY4NjY0Li5kMTA0YjI2IDEwMDY0NAotLS0gYS9jb21tb24vbGNkLmMKKysrIGIvY29tbW9uL2xjZC5jCkBAIC0zODYsMTMgKzM4NiwxMyBAQAogCWxjZF9zZXRjb2xyZWcgIChDT05TT0xFX0NPTE9SX1dISVRFLAkweEZGLCAweEZGLCAweEZGKTsKICNlbmRpZgogCi0jaWZuZGVmIENGR19XSElURV9PTl9CTEFDSworI2lmbmRlZiBDT05GSUdfU1lTX1dISVRFX09OX0JMQUNLCiAJbGNkX3NldGZnY29sb3IgKENPTlNPTEVfQ09MT1JfQkxBQ0spOwogCWxjZF9zZXRiZ2NvbG9yIChDT05TT0xFX0NPTE9SX1dISVRFKTsKICNlbHNlCiAJbGNkX3NldGZnY29sb3IgKENPTlNPTEVfQ09MT1JfV0hJVEUpOwogCWxjZF9zZXRiZ2NvbG9yIChDT05TT0xFX0NPTE9SX0JMQUNLKTsKLSNlbmRpZgkvKiBDRkdfV0hJVEVfT05fQkxBQ0sgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX1dISVRFX09OX0JMQUNLICovCiAKICNpZmRlZglMQ0RfVEVTVF9QQVRURVJOCiAJdGVzdF9wYXR0ZXJuKCk7CkBAIC01MzEsNyArNTMxLDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19QWEEyNTApCiAJc3RydWN0IHB4YWZiX2luZm8gKmZiaSA9ICZwYW5lbF9pbmZvLnB4YTsKICNlbGlmIGRlZmluZWQoQ09ORklHX01QQzgyMykKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdCAqY3AgPSAmKGltbXItPmltX2NwbSk7CiAjZW5kaWYKIApAQCAtNTcxLDcgKzU3MSw3IEBACiAJCQkqKGNtYXAgKyBCTVBfTE9HT19PRkZTRVQpID0gbHV0X2VudHJ5OwogCQkJY21hcCsrOwogI2Vsc2UgLyogIUNPTkZJR19BVE1FTF9MQ0QgKi8KLSNpZmRlZiAgQ0ZHX0lOVkVSVF9DT0xPUlMKKyNpZmRlZiAgQ09ORklHX1NZU19JTlZFUlRfQ09MT1JTCiAJCQkqY21hcCsrID0gMHhmZmZmIC0gY29scmVnOwogI2Vsc2UKIAkJCSpjbWFwKysgPSBjb2xyZWc7CkBAIC02MjcsNyArNjI3LDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19QWEEyNTApCiAJc3RydWN0IHB4YWZiX2luZm8gKmZiaSA9ICZwYW5lbF9pbmZvLnB4YTsKICNlbGlmIGRlZmluZWQoQ09ORklHX01QQzgyMykKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdCAqY3AgPSAmKGltbXItPmltX2NwbSk7CiAjZW5kaWYKIApAQCAtNjgxLDcgKzY4MSw3IEBACiAJCQkJKCAoKGN0ZS5yZWQpICAgPDwgOCkgJiAweGY4MDApIHwKIAkJCQkoICgoY3RlLmdyZWVuKSA8PCAzKSAmIDB4MDdlMCkgfAogCQkJCSggKChjdGUuYmx1ZSkgID4+IDMpICYgMHgwMDFmKSA7Ci0jaWZkZWYgQ0ZHX0lOVkVSVF9DT0xPUlMKKyNpZmRlZiBDT05GSUdfU1lTX0lOVkVSVF9DT0xPUlMKIAkJCSpjbWFwID0gMHhmZmZmIC0gY29scmVnOwogI2Vsc2UKIAkJCSpjbWFwID0gY29scmVnOwpAQCAtODQ1LDcgKzg0NSw3IEBACiAJZm9yIChpID0gMDsgaSA8IENPTkZJR19OUl9EUkFNX0JBTktTOyBpKyspCiAJCWRyYW1fc2l6ZSArPSBnZC0+YmQtPmJpX2RyYW1baV0uc2l6ZTsKIAluYW5kX3NpemUgPSAwOwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX05BTkRfREVWSUNFOyBpKyspCisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFOyBpKyspCiAJCW5hbmRfc2l6ZSArPSBuYW5kX2luZm9baV0uc2l6ZTsKIAlzcHJpbnRmIChpbmZvLCAiICAlbGQgTUIgU0RSQU0sICVsZCBNQiBOQU5EIiwKIAkJZHJhbV9zaXplID4+IDIwLApkaWZmIC0tZ2l0IGEvY29tbW9uL21haW4uYyBiL2NvbW1vbi9tYWluLmMKaW5kZXggOWE5ZmM5ZC4uYTk5OWE1ZCAxMDA2NDQKLS0tIGEvY29tbW9uL21haW4uYworKysgYi9jb21tb24vbWFpbi5jCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSA8bWFsbG9jLmg+CQkvKiBmb3IgZnJlZSgpIHByb3RvdHlwZSAqLwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCiAjaW5jbHVkZSA8aHVzaC5oPgogI2VuZGlmCiAKQEAgLTY4LDcgKzY4LDcgQEAKIAogI3VuZGVmIERFQlVHX1BBUlNFUgogCi1jaGFyICAgICAgICBjb25zb2xlX2J1ZmZlcltDRkdfQ0JTSVpFXTsJCS8qIGNvbnNvbGUgSS9PIGJ1ZmZlcgkqLworY2hhciAgICAgICAgY29uc29sZV9idWZmZXJbQ09ORklHX1NZU19DQlNJWkVdOwkJLyogY29uc29sZSBJL08gYnVmZmVyCSovCiAKIHN0YXRpYyBjaGFyICogZGVsZXRlX2NoYXIgKGNoYXIgKmJ1ZmZlciwgY2hhciAqcCwgaW50ICpjb2xwLCBpbnQgKm5wLCBpbnQgcGxlbik7CiBzdGF0aWMgY2hhciBlcmFzZV9zZXFbXSA9ICJcYiBcYiI7CQkvKiBlcmFzZSBzZXF1ZW5jZQkqLwpAQCAtMjcyLDggKzI3Miw4IEBACiAKIHZvaWQgbWFpbl9sb29wICh2b2lkKQogewotI2lmbmRlZiBDRkdfSFVTSF9QQVJTRVIKLQlzdGF0aWMgY2hhciBsYXN0Y29tbWFuZFtDRkdfQ0JTSVpFXSA9IHsgMCwgfTsKKyNpZm5kZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorCXN0YXRpYyBjaGFyIGxhc3Rjb21tYW5kW0NPTkZJR19TWVNfQ0JTSVpFXSA9IHsgMCwgfTsKIAlpbnQgbGVuOwogCWludCByYyA9IDE7CiAJaW50IGZsYWc7CkBAIC0zMzcsNyArMzM3LDcgQEAKIAl9CiAjZW5kaWYgLyogQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgKi8KIAotI2lmZGVmIENGR19IVVNIX1BBUlNFUgorI2lmZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKIAl1X2Jvb3RfaHVzaF9zdGFydCAoKTsKICNlbmRpZgogCkBAIC0zNTUsNyArMzU1LDcgQEAKIAkJaW50IHByZXYgPSBkaXNhYmxlX2N0cmxjKDEpOwkvKiBkaXNhYmxlIENvbnRyb2wgQyBjaGVja2luZyAqLwogIyBlbmRpZgogCi0jIGlmbmRlZiBDRkdfSFVTSF9QQVJTRVIKKyMgaWZuZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKIAkJcnVuX2NvbW1hbmQgKHAsIDApOwogIyBlbHNlCiAJCXBhcnNlX3N0cmluZ19vdXRlcihwLCBGTEFHX1BBUlNFX1NFTUlDT0xPTiB8CkBAIC00MDEsNyArNDAxLDcgQEAKIAkJaW50IHByZXYgPSBkaXNhYmxlX2N0cmxjKDEpOwkvKiBkaXNhYmxlIENvbnRyb2wgQyBjaGVja2luZyAqLwogIyBlbmRpZgogCi0jIGlmbmRlZiBDRkdfSFVTSF9QQVJTRVIKKyMgaWZuZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKIAkJcnVuX2NvbW1hbmQgKHMsIDApOwogIyBlbHNlCiAJCXBhcnNlX3N0cmluZ19vdXRlcihzLCBGTEFHX1BBUlNFX1NFTUlDT0xPTiB8CkBAIC00MTcsNyArNDE3LDcgQEAKIAlpZiAobWVudWtleSA9PSBDT05GSUdfTUVOVUtFWSkgewogCSAgICBzID0gZ2V0ZW52KCJtZW51Y21kIik7CiAJICAgIGlmIChzKSB7Ci0jIGlmbmRlZiBDRkdfSFVTSF9QQVJTRVIKKyMgaWZuZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKIAkJcnVuX2NvbW1hbmQgKHMsIDApOwogIyBlbHNlCiAJCXBhcnNlX3N0cmluZ19vdXRlcihzLCBGTEFHX1BBUlNFX1NFTUlDT0xPTiB8CkBAIC00MzgsNyArNDM4LDcgQEAKIAkvKgogCSAqIE1haW4gTG9vcCBmb3IgTW9uaXRvciBDb21tYW5kIFByb2Nlc3NpbmcKIAkgKi8KLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCiAJcGFyc2VfZmlsZV9vdXRlcigpOwogCS8qIFRoaXMgcG9pbnQgaXMgbmV2ZXIgcmVhY2hlZCAqLwogCWZvciAoOzspOwpAQCAtNDUyLDcgKzQ1Miw3IEBACiAJCQlyZXNldF9jbWRfdGltZW91dCgpOwogCQl9CiAjZW5kaWYKLQkJbGVuID0gcmVhZGxpbmUgKENGR19QUk9NUFQpOworCQlsZW4gPSByZWFkbGluZSAoQ09ORklHX1NZU19QUk9NUFQpOwogCiAJCWZsYWcgPSAwOwkvKiBhc3N1bWUgbm8gc3BlY2lhbCBmbGFncyBmb3Igbm93ICovCiAJCWlmIChsZW4gPiAwKQpAQCAtNDgzLDcgKzQ4Myw3IEBACiAJCQlsYXN0Y29tbWFuZFswXSA9IDA7CiAJCX0KIAl9Ci0jZW5kaWYgLypDRkdfSFVTSF9QQVJTRVIqLworI2VuZGlmIC8qQ09ORklHX1NZU19IVVNIX1BBUlNFUiovCiB9CiAKICNpZmRlZiBDT05GSUdfQk9PVF9SRVRSWV9USU1FCkBAIC0xMDQyLDcgKzEwNDIsNyBAQAogCQkJLyoKIAkJCSAqIE11c3QgYmUgYSBub3JtYWwgY2hhcmFjdGVyIHRoZW4KIAkJCSAqLwotCQkJaWYgKG4gPCBDRkdfQ0JTSVpFLTIpIHsKKwkJCWlmIChuIDwgQ09ORklHX1NZU19DQlNJWkUtMikgewogCQkJCWlmIChjID09ICdcdCcpIHsJLyogZXhwYW5kIFRBQnMJCSovCiAjaWZkZWYgQ09ORklHX0FVVE9fQ09NUExFVEUKIAkJCQkJLyogaWYgYXV0byBjb21wbGV0aW9uIHRyaWdnZXJlZCBqdXN0IGNvbnRpbnVlICovCkBAIC0xMTExLDcgKzExMTEsNyBAQAogI2lmZGVmIERFQlVHX1BBUlNFUgogCXByaW50ZiAoInBhcnNlX2xpbmU6IFwiJXNcIlxuIiwgbGluZSk7CiAjZW5kaWYKLQl3aGlsZSAobmFyZ3MgPCBDRkdfTUFYQVJHUykgeworCXdoaWxlIChuYXJncyA8IENPTkZJR19TWVNfTUFYQVJHUykgewogCiAJCS8qIHNraXAgYW55IHdoaXRlIHNwYWNlICovCiAJCXdoaWxlICgoKmxpbmUgPT0gJyAnKSB8fCAoKmxpbmUgPT0gJ1x0JykpIHsKQEAgLTExNDQsNyArMTE0NCw3IEBACiAJCSpsaW5lKysgPSAnXDAnOwkJLyogdGVybWluYXRlIGN1cnJlbnQgYXJnCSAqLwogCX0KIAotCXByaW50ZiAoIioqIFRvbyBtYW55IGFyZ3MgKG1heC4gJWQpICoqXG4iLCBDRkdfTUFYQVJHUyk7CisJcHJpbnRmICgiKiogVG9vIG1hbnkgYXJncyAobWF4LiAlZCkgKipcbiIsIENPTkZJR19TWVNfTUFYQVJHUyk7CiAKICNpZmRlZiBERUJVR19QQVJTRVIKIAlwcmludGYgKCJwYXJzZV9saW5lOiBuYXJncz0lZFxuIiwgbmFyZ3MpOwpAQCAtMTE1OSw3ICsxMTU5LDcgQEAKIAljaGFyIGMsIHByZXY7CiAJY29uc3QgY2hhciAqdmFybmFtZV9zdGFydCA9IE5VTEw7CiAJaW50IGlucHV0Y250ID0gc3RybGVuIChpbnB1dCk7Ci0JaW50IG91dHB1dGNudCA9IENGR19DQlNJWkU7CisJaW50IG91dHB1dGNudCA9IENPTkZJR19TWVNfQ0JTSVpFOwogCWludCBzdGF0ZSA9IDA7CQkvKiAwID0gd2FpdGluZyBmb3IgJyQnICAqLwogCiAJLyogMSA9IHdhaXRpbmcgZm9yICcoJyBvciAneycgKi8KQEAgLTEyMTksNyArMTIxOSw3IEBACiAJCWNhc2UgMjoJLyogV2FpdGluZyBmb3IgKSAgICAgICAgKi8KIAkJCWlmIChjID09ICcpJyB8fCBjID09ICd9JykgewogCQkJCWludCBpOwotCQkJCWNoYXIgZW52bmFtZVtDRkdfQ0JTSVpFXSwgKmVudnZhbDsKKwkJCQljaGFyIGVudm5hbWVbQ09ORklHX1NZU19DQlNJWkVdLCAqZW52dmFsOwogCQkJCWludCBlbnZjbnQgPSBpbnB1dCAtIHZhcm5hbWVfc3RhcnQgLSAxOwkvKiBWYXJuYW1lICMgb2YgY2hhcnMgKi8KIAogCQkJCS8qIEdldCB0aGUgdmFybmFtZSAqLwpAQCAtMTI3MCw3ICsxMjcwLDcgQEAKICAqCTAgIC0gY29tbWFuZCBleGVjdXRlZCBidXQgbm90IHJlcGVhdGFibGUsIGludGVycnVwdGVkIGNvbW1hbmRzIGFyZQogICoJICAgICBhbHdheXMgY29uc2lkZXJlZCBub3QgcmVwZWF0YWJsZQogICoJLTEgLSBub3QgZXhlY3V0ZWQgKHVucmVjb2duaXplZCwgYm9vdGQgcmVjdXJzaW9uIG9yIHRvbyBtYW55IGFyZ3MpCi0gKiAgICAgICAgICAgKElmIGNtZCBpcyBOVUxMIG9yICIiIG9yIGxvbmdlciB0aGFuIENGR19DQlNJWkUtMSBpdCBpcworICogICAgICAgICAgIChJZiBjbWQgaXMgTlVMTCBvciAiIiBvciBsb25nZXIgdGhhbiBDT05GSUdfU1lTX0NCU0laRS0xIGl0IGlzCiAgKiAgICAgICAgICAgY29uc2lkZXJlZCB1bnJlY29nbml6ZWQpCiAgKgogICogV0FSTklORzoKQEAgLTEyODQsMTIgKzEyODQsMTIgQEAKIGludCBydW5fY29tbWFuZCAoY29uc3QgY2hhciAqY21kLCBpbnQgZmxhZykKIHsKIAljbWRfdGJsX3QgKmNtZHRwOwotCWNoYXIgY21kYnVmW0NGR19DQlNJWkVdOwkvKiB3b3JraW5nIGNvcHkgb2YgY21kCQkqLworCWNoYXIgY21kYnVmW0NPTkZJR19TWVNfQ0JTSVpFXTsJLyogd29ya2luZyBjb3B5IG9mIGNtZAkJKi8KIAljaGFyICp0b2tlbjsJCQkvKiBzdGFydCBvZiB0b2tlbiBpbiBjbWRidWYJKi8KIAljaGFyICpzZXA7CQkJLyogZW5kIG9mIHRva2VuIChzZXBhcmF0b3IpIGluIGNtZGJ1ZiAqLwotCWNoYXIgZmluYWx0b2tlbltDRkdfQ0JTSVpFXTsKKwljaGFyIGZpbmFsdG9rZW5bQ09ORklHX1NZU19DQlNJWkVdOwogCWNoYXIgKnN0ciA9IGNtZGJ1ZjsKLQljaGFyICphcmd2W0NGR19NQVhBUkdTICsgMV07CS8qIE5VTEwgdGVybWluYXRlZAkqLworCWNoYXIgKmFyZ3ZbQ09ORklHX1NZU19NQVhBUkdTICsgMV07CS8qIE5VTEwgdGVybWluYXRlZAkqLwogCWludCBhcmdjLCBpbnF1b3RlczsKIAlpbnQgcmVwZWF0YWJsZSA9IDE7CiAJaW50IHJjID0gMDsKQEAgLTEzMDYsNyArMTMwNiw3IEBACiAJCXJldHVybiAtMTsJLyogZW1wdHkgY29tbWFuZCAqLwogCX0KIAotCWlmIChzdHJsZW4oY21kKSA+PSBDRkdfQ0JTSVpFKSB7CisJaWYgKHN0cmxlbihjbWQpID49IENPTkZJR19TWVNfQ0JTSVpFKSB7CiAJCXB1dHMgKCIjIyBDb21tYW5kIHRvbyBsb25nIVxuIik7CiAJCXJldHVybiAtMTsKIAl9CkBAIC0xNDI1LDcgKzE0MjUsNyBAQAogCQkJcHJpbnRmICgiIyMgRXJyb3I6IFwiJXNcIiBub3QgZGVmaW5lZFxuIiwgYXJndltpXSk7CiAJCQlyZXR1cm4gMTsKIAkJfQotI2lmbmRlZiBDRkdfSFVTSF9QQVJTRVIKKyNpZm5kZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogCQlpZiAocnVuX2NvbW1hbmQgKGFyZywgZmxhZykgPT0gLTEpCiAJCQlyZXR1cm4gMTsKICNlbHNlCmRpZmYgLS1naXQgYS9jb21tb24vbWlpcGh5dXRpbC5jIGIvY29tbW9uL21paXBoeXV0aWwuYwppbmRleCA1ZWY0YTMzLi42NmZkOWNhIDEwMDY0NAotLS0gYS9jb21tb24vbWlpcGh5dXRpbC5jCisrKyBiL2NvbW1vbi9taWlwaHl1dGlsLmMKQEAgLTQ2Miw3ICs0NjIsNyBAQAogI2VuZGlmCiB9CiAKLSNpZmRlZiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KKyNpZmRlZiBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBEZXRlcm1pbmUgbGluayBzdGF0dXMKZGlmZiAtLWdpdCBhL2NvbW1vbi9zZXJpYWwuYyBiL2NvbW1vbi9zZXJpYWwuYwppbmRleCBiZmRhN2NhLi5iMzhkMWU3IDEwMDY0NAotLS0gYS9jb21tb24vc2VyaWFsLmMKKysrIGIvY29tbW9uL3NlcmlhbC5jCkBAIC00Myw3ICs0Myw3IEBACiAjZWxpZiBkZWZpbmVkKENPTkZJR180MDVHUCkgfHwgZGVmaW5lZChDT05GSUdfNDA1Q1IpIHx8IGRlZmluZWQoQ09ORklHXzQ0MCkgXAogICAgfHwgZGVmaW5lZChDT05GSUdfNDA1RVApIHx8IGRlZmluZWQoQ09ORklHXzQwNUVaKSB8fCBkZWZpbmVkKENPTkZJR180MDVFWCkgXAogICAgfHwgZGVmaW5lZChDT05GSUdfTVBDNXh4eCkKLSNpZiBkZWZpbmVkKENPTkZJR19DT05TX0lOREVYKSAmJiBkZWZpbmVkKENGR19OUzE2NTUwX1NFUklBTCkKKyNpZiBkZWZpbmVkKENPTkZJR19DT05TX0lOREVYKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwpCiAjaWYgKENPTkZJR19DT05TX0lOREVYPT0xKQogCXJldHVybiAmZXNlcmlhbDFfZGV2aWNlOwogI2VsaWYgKENPTkZJR19DT05TX0lOREVYPT0yKQpAQCAtMTEwLDIwICsxMTAsMjAgQEAKIAlzZXJpYWxfcmVnaXN0ZXIoJnNlcmlhbDFfZGV2aWNlKTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfTlMxNjU1MF9TRVJJQUwpCi0jaWYgZGVmaW5lZChDRkdfTlMxNjU1MF9DT00xKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MF9DT00xKQogCXNlcmlhbF9yZWdpc3RlcigmZXNlcmlhbDFfZGV2aWNlKTsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX05TMTY1NTBfQ09NMikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MF9DT00yKQogCXNlcmlhbF9yZWdpc3RlcigmZXNlcmlhbDJfZGV2aWNlKTsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX05TMTY1NTBfQ09NMykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MF9DT00zKQogCXNlcmlhbF9yZWdpc3RlcigmZXNlcmlhbDNfZGV2aWNlKTsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX05TMTY1NTBfQ09NNCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MF9DT000KQogCXNlcmlhbF9yZWdpc3RlcigmZXNlcmlhbDRfZGV2aWNlKTsKICNlbmRpZgotI2VuZGlmIC8qIENGR19OUzE2NTUwX1NFUklBTCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwgKi8KICNpZiBkZWZpbmVkIChDT05GSUdfRkZVQVJUKQogCXNlcmlhbF9yZWdpc3Rlcigmc2VyaWFsX2ZmdWFydF9kZXZpY2UpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9jb21tb24vc3BhcnRhbjIuYyBiL2NvbW1vbi9zcGFydGFuMi5jCmluZGV4IGViYWMzODguLmY1YmE3ZmMgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zcGFydGFuMi5jCisrKyBiL2NvbW1vbi9zcGFydGFuMi5jCkBAIC0zMiw4ICszMiw4IEBACiAjZGVmaW5lIFBSSU5URihmbXQsYXJncy4uLikKICNlbmRpZgogCi0jdW5kZWYgQ0ZHX0ZQR0FfQ0hFQ0tfQlVTWQotI3VuZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyN1bmRlZiBDT05GSUdfU1lTX0ZQR0FfQ0hFQ0tfQlVTWQorI3VuZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAKIC8qIE5vdGU6IFRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgd2UgY2Fubm90IHBvc3NpYmx5IHJ1biBmYXN0IGVub3VnaCB0bwogICogb3ZlcnJ1biB0aGUgZGV2aWNlICh0aGUgU2xhdmUgUGFyYWxsZWwgbW9kZSBjYW4gZnJlZSBydW4gYXQgNTBNSHopLgpAQCAtNDQsOCArNDQsOCBAQAogI2RlZmluZSBDT05GSUdfRlBHQV9ERUxBWSgpCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfRlBHQV9XQUlUCi0jZGVmaW5lIENGR19GUEdBX1dBSVQgQ0ZHX0haLzEwMAkvKiAxMCBtcyAqLworI2lmbmRlZiBDT05GSUdfU1lTX0ZQR0FfV0FJVAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfV0FJVCBDT05GSUdfU1lTX0haLzEwMAkvKiAxMCBtcyAqLwogI2VuZGlmCiAKIHN0YXRpYyBpbnQgU3BhcnRhbjJfc3BfbG9hZCggWGlsaW54X2Rlc2MgKmRlc2MsIHZvaWQgKmJ1Ziwgc2l6ZV90IGJzaXplICk7CkBAIC0xODAsNyArMTgwLDcgQEAKIAkJICogQ29udGludW91cyBEYXRhIExvYWRpbmcgaW4gU2xhdmUgUGFyYWxsZWwgTW9kZSBmb3IKIAkJICogdGhlIFNwYXJ0YW4tSUkgRmFtaWx5LgogCQkgKi8KLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJcHJpbnRmICgiTG9hZGluZyBGUEdBIERldmljZSAlZC4uLlxuIiwgY29va2llKTsKICNlbmRpZgogCQkvKgpAQCAtMjAxLDcgKzIwMSw3IEBACiAJCS8qIE5vdyB3YWl0IGZvciBJTklUIGFuZCBCVVNZIHRvIGdvIGhpZ2ggKi8KIAkJZG8gewogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7Ci0JCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLwogCQkJCXB1dHMgKCIqKiBUaW1lb3V0IHdhaXRpbmcgZm9yIElOSVQgdG8gY2xlYXIuXG4iKTsKIAkJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CS8qIGFib3J0IHRoZSBidXJuICovCiAJCQkJcmV0dXJuIEZQR0FfRkFJTDsKQEAgLTIyMyw3ICsyMjMsNyBAQAogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7CiAJCQkoKmZuLT5jbGspIChUUlVFLCBUUlVFLCBjb29raWUpOwkvKiBBc3NlcnQgdGhlIGNsb2NrIHBpbiAqLwogCi0jaWZkZWYgQ0ZHX0ZQR0FfQ0hFQ0tfQlVTWQorI2lmZGVmIENPTkZJR19TWVNfRlBHQV9DSEVDS19CVVNZCiAJCQl0cyA9IGdldF90aW1lciAoMCk7CS8qIGdldCBjdXJyZW50IHRpbWUgKi8KIAkJCXdoaWxlICgoKmZuLT5idXN5KSAoY29va2llKSkgewogCQkJCS8qIFhYWCAtIHdlIHNob3VsZCBoYXZlIGEgY2hlY2sgaW4gaGVyZSBzb21ld2hlcmUgdG8KQEAgLTIzNCw3ICsyMzQsNyBAQAogCQkJCUNPTkZJR19GUEdBX0RFTEFZICgpOwogCQkJCSgqZm4tPmNsaykgKFRSVUUsIFRSVUUsIGNvb2tpZSk7CS8qIEFzc2VydCB0aGUgY2xvY2sgcGluICovCiAKLQkJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQkJaWYgKGdldF90aW1lciAodHMpID4gQ09ORklHX1NZU19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KIAkJCQkJcHV0cyAoIioqIFRpbWVvdXQgd2FpdGluZyBmb3IgQlVTWSB0byBjbGVhci5cbiIpOwogCQkJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CS8qIGFib3J0IHRoZSBidXJuICovCiAJCQkJCXJldHVybiBGUEdBX0ZBSUw7CkBAIC0yNDIsNyArMjQyLDcgQEAKIAkJCX0KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCQlpZiAoYnl0ZWNvdW50ICUgKGJzaXplIC8gNDApID09IDApCiAJCQkJcHV0YyAoJy4nKTsJCS8qIGxldCB0aGVtIGtub3cgd2UgYXJlIGFsaXZlICovCiAjZW5kaWYKQEAgLTI1Miw3ICsyNTIsNyBAQAogCQkoKmZuLT5jcykgKEZBTFNFLCBUUlVFLCBjb29raWUpOwkvKiBEZWFzc2VydCB0aGUgY2hpcCBzZWxlY3QgKi8KIAkJKCpmbi0+d3IpIChGQUxTRSwgVFJVRSwgY29va2llKTsJLyogRGVhc3NlcnQgdGhlIHdyaXRlIHBpbiAqLwogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCXB1dGMgKCdcbicpOwkJCS8qIHRlcm1pbmF0ZSB0aGUgZG90dGVkIGxpbmUgKi8KICNlbmRpZgogCkBAIC0yNjgsNyArMjY4LDcgQEAKIAkJCUNPTkZJR19GUEdBX0RFTEFZICgpOwogCQkJKCpmbi0+Y2xrKSAoVFJVRSwgVFJVRSwgY29va2llKTsJLyogQXNzZXJ0IHRoZSBjbG9jayBwaW4gKi8KIAotCQkJaWYgKGdldF90aW1lciAodHMpID4gQ0ZHX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLworCQkJaWYgKGdldF90aW1lciAodHMpID4gQ09ORklHX1NZU19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KIAkJCQlwdXRzICgiKiogVGltZW91dCB3YWl0aW5nIGZvciBET05FIHRvIGNsZWFyLlxuIik7CiAJCQkJKCpmbi0+YWJvcnQpIChjb29raWUpOwkvKiBhYm9ydCB0aGUgYnVybiAqLwogCQkJCXJldF92YWwgPSBGUEdBX0ZBSUw7CkBAIC0yNzcsNyArMjc3LDcgQEAKIAkJfQogCiAJCWlmIChyZXRfdmFsID09IEZQR0FfU1VDQ0VTUykgewotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJcHV0cyAoIkRvbmUuXG4iKTsKICNlbmRpZgogCQl9CkBAIC0yODksNyArMjg5LDcgQEAKIAkJfQogCiAJCWVsc2UgewotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJcHV0cyAoIkZhaWwuXG4iKTsKICNlbmRpZgogCQl9CkBAIC0zMjMsNyArMzIzLDcgQEAKIAkJCSgqZm4tPmNsaykgKEZBTFNFLCBUUlVFLCBjb29raWUpOwkvKiBEZWFzc2VydCB0aGUgY2xvY2sgcGluICovCiAJCQkoKmZuLT5jbGspIChUUlVFLCBUUlVFLCBjb29raWUpOwkvKiBBc3NlcnQgdGhlIGNsb2NrIHBpbiAqLwogCQkJKCpmbi0+cmRhdGEpICgmKGRhdGFbYnl0ZWNvdW50KytdKSwgY29va2llKTsJLyogcmVhZCB0aGUgZGF0YSAqLwotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJaWYgKGJ5dGVjb3VudCAlIChic2l6ZSAvIDQwKSA9PSAwKQogCQkJCXB1dGMgKCcuJyk7CQkvKiBsZXQgdGhlbSBrbm93IHdlIGFyZSBhbGl2ZSAqLwogI2VuZGlmCkBAIC0zMzMsNyArMzMzLDcgQEAKIAkJKCpmbi0+Y2xrKSAoRkFMU0UsIFRSVUUsIGNvb2tpZSk7CS8qIERlYXNzZXJ0IHRoZSBjbG9jayBwaW4gKi8KIAkJKCpmbi0+Y2xrKSAoVFJVRSwgVFJVRSwgY29va2llKTsJLyogQXNzZXJ0IHRoZSBjbG9jayBwaW4gKi8KIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlwdXRjICgnXG4nKTsJCQkvKiB0ZXJtaW5hdGUgdGhlIGRvdHRlZCBsaW5lICovCiAjZW5kaWYKIAkJcHV0cyAoIkRvbmUuXG4iKTsKQEAgLTQ2MCw3ICs0NjAsNyBAQAogCQkJCSJkb25lOlx0MHglcFxuXG4iLAogCQkJCV9fRlVOQ1RJT05fXywgJmZuLCBmbiwgZm4tPnBnbSwgZm4tPmluaXQsCiAJCQkJZm4tPmNsaywgZm4tPndyLCBmbi0+ZG9uZSk7Ci0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCXByaW50ZiAoIkxvYWRpbmcgRlBHQSBEZXZpY2UgJWQuLi5cbiIsIGNvb2tpZSk7CiAjZW5kaWYKIApAQCAtNDc4LDcgKzQ3OCw3IEBACiAJCXRzID0gZ2V0X3RpbWVyICgwKTsJCS8qIGdldCBjdXJyZW50IHRpbWUgKi8KIAkJZG8gewogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7Ci0JCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLwogCQkJCXB1dHMgKCIqKiBUaW1lb3V0IHdhaXRpbmcgZm9yIElOSVQgdG8gc3RhcnQuXG4iKTsKIAkJCQlyZXR1cm4gRlBHQV9GQUlMOwogCQkJfQpAQCAtNDkyLDcgKzQ5Miw3IEBACiAJCS8qIE5vdyB3YWl0IGZvciBJTklUIHRvIGdvIGhpZ2ggKi8KIAkJZG8gewogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7Ci0JCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLwogCQkJCXB1dHMgKCIqKiBUaW1lb3V0IHdhaXRpbmcgZm9yIElOSVQgdG8gY2xlYXIuXG4iKTsKIAkJCQlyZXR1cm4gRlBHQV9GQUlMOwogCQkJfQpAQCAtNTIzLDcgKzUyMyw3IEBACiAJCQkJaSAtLTsKIAkJCX0gd2hpbGUgKGkgPiAwKTsKIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJaWYgKGJ5dGVjb3VudCAlIChic2l6ZSAvIDQwKSA9PSAwKQogCQkJCXB1dGMgKCcuJyk7CQkvKiBsZXQgdGhlbSBrbm93IHdlIGFyZSBhbGl2ZSAqLwogI2VuZGlmCkBAIC01MzEsNyArNTMxLDcgQEAKIAogCQlDT05GSUdfRlBHQV9ERUxBWSAoKTsKIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlwdXRjICgnXG4nKTsJCQkvKiB0ZXJtaW5hdGUgdGhlIGRvdHRlZCBsaW5lICovCiAjZW5kaWYKIApAQCAtNTUxLDcgKzU1MSw3IEBACiAKIAkJCXB1dGMgKCcqJyk7CiAKLQkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENGR19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KKwkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENPTkZJR19TWVNfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCiAJCQkJcHV0cyAoIioqIFRpbWVvdXQgd2FpdGluZyBmb3IgRE9ORSB0byBjbGVhci5cbiIpOwogCQkJCXJldF92YWwgPSBGUEdBX0ZBSUw7CiAJCQkJYnJlYWs7CkBAIC01NjYsNyArNTY2LDcgQEAKIAkJCSgqZm4tPnBvc3QpIChjb29raWUpOwogCQl9CiAKLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJaWYgKHJldF92YWwgPT0gRlBHQV9TVUNDRVNTKSB7CiAJCQlwdXRzICgiRG9uZS5cbiIpOwogCQl9CmRpZmYgLS1naXQgYS9jb21tb24vc3BhcnRhbjMuYyBiL2NvbW1vbi9zcGFydGFuMy5jCmluZGV4IDhmMWFiODAuLjljZTQxZjEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zcGFydGFuMy5jCisrKyBiL2NvbW1vbi9zcGFydGFuMy5jCkBAIC0zNyw4ICszNyw4IEBACiAjZGVmaW5lIFBSSU5URihmbXQsYXJncy4uLikKICNlbmRpZgogCi0jdW5kZWYgQ0ZHX0ZQR0FfQ0hFQ0tfQlVTWQotI3VuZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyN1bmRlZiBDT05GSUdfU1lTX0ZQR0FfQ0hFQ0tfQlVTWQorI3VuZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAKIC8qIE5vdGU6IFRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgd2UgY2Fubm90IHBvc3NpYmx5IHJ1biBmYXN0IGVub3VnaCB0bwogICogb3ZlcnJ1biB0aGUgZGV2aWNlICh0aGUgU2xhdmUgUGFyYWxsZWwgbW9kZSBjYW4gZnJlZSBydW4gYXQgNTBNSHopLgpAQCAtNDksOCArNDksOCBAQAogI2RlZmluZSBDT05GSUdfRlBHQV9ERUxBWSgpCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfRlBHQV9XQUlUCi0jZGVmaW5lIENGR19GUEdBX1dBSVQgQ0ZHX0haLzEwMAkvKiAxMCBtcyAqLworI2lmbmRlZiBDT05GSUdfU1lTX0ZQR0FfV0FJVAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfV0FJVCBDT05GSUdfU1lTX0haLzEwMAkvKiAxMCBtcyAqLwogI2VuZGlmCiAKIHN0YXRpYyBpbnQgU3BhcnRhbjNfc3BfbG9hZCggWGlsaW54X2Rlc2MgKmRlc2MsIHZvaWQgKmJ1Ziwgc2l6ZV90IGJzaXplICk7CkBAIC0xODUsNyArMTg1LDcgQEAKIAkJICogQ29udGludW91cyBEYXRhIExvYWRpbmcgaW4gU2xhdmUgUGFyYWxsZWwgTW9kZSBmb3IKIAkJICogdGhlIFNwYXJ0YW4tSUkgRmFtaWx5LgogCQkgKi8KLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJcHJpbnRmICgiTG9hZGluZyBGUEdBIERldmljZSAlZC4uLlxuIiwgY29va2llKTsKICNlbmRpZgogCQkvKgpAQCAtMjA2LDcgKzIwNiw3IEBACiAJCS8qIE5vdyB3YWl0IGZvciBJTklUIGFuZCBCVVNZIHRvIGdvIGhpZ2ggKi8KIAkJZG8gewogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7Ci0JCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLwogCQkJCXB1dHMgKCIqKiBUaW1lb3V0IHdhaXRpbmcgZm9yIElOSVQgdG8gY2xlYXIuXG4iKTsKIAkJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CS8qIGFib3J0IHRoZSBidXJuICovCiAJCQkJcmV0dXJuIEZQR0FfRkFJTDsKQEAgLTIyOCw3ICsyMjgsNyBAQAogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7CiAJCQkoKmZuLT5jbGspIChUUlVFLCBUUlVFLCBjb29raWUpOwkvKiBBc3NlcnQgdGhlIGNsb2NrIHBpbiAqLwogCi0jaWZkZWYgQ0ZHX0ZQR0FfQ0hFQ0tfQlVTWQorI2lmZGVmIENPTkZJR19TWVNfRlBHQV9DSEVDS19CVVNZCiAJCQl0cyA9IGdldF90aW1lciAoMCk7CS8qIGdldCBjdXJyZW50IHRpbWUgKi8KIAkJCXdoaWxlICgoKmZuLT5idXN5KSAoY29va2llKSkgewogCQkJCS8qIFhYWCAtIHdlIHNob3VsZCBoYXZlIGEgY2hlY2sgaW4gaGVyZSBzb21ld2hlcmUgdG8KQEAgLTIzOSw3ICsyMzksNyBAQAogCQkJCUNPTkZJR19GUEdBX0RFTEFZICgpOwogCQkJCSgqZm4tPmNsaykgKFRSVUUsIFRSVUUsIGNvb2tpZSk7CS8qIEFzc2VydCB0aGUgY2xvY2sgcGluICovCiAKLQkJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQkJaWYgKGdldF90aW1lciAodHMpID4gQ09ORklHX1NZU19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KIAkJCQkJcHV0cyAoIioqIFRpbWVvdXQgd2FpdGluZyBmb3IgQlVTWSB0byBjbGVhci5cbiIpOwogCQkJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CS8qIGFib3J0IHRoZSBidXJuICovCiAJCQkJCXJldHVybiBGUEdBX0ZBSUw7CkBAIC0yNDcsNyArMjQ3LDcgQEAKIAkJCX0KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCQlpZiAoYnl0ZWNvdW50ICUgKGJzaXplIC8gNDApID09IDApCiAJCQkJcHV0YyAoJy4nKTsJCS8qIGxldCB0aGVtIGtub3cgd2UgYXJlIGFsaXZlICovCiAjZW5kaWYKQEAgLTI1Nyw3ICsyNTcsNyBAQAogCQkoKmZuLT5jcykgKEZBTFNFLCBUUlVFLCBjb29raWUpOwkvKiBEZWFzc2VydCB0aGUgY2hpcCBzZWxlY3QgKi8KIAkJKCpmbi0+d3IpIChGQUxTRSwgVFJVRSwgY29va2llKTsJLyogRGVhc3NlcnQgdGhlIHdyaXRlIHBpbiAqLwogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCXB1dGMgKCdcbicpOwkJCS8qIHRlcm1pbmF0ZSB0aGUgZG90dGVkIGxpbmUgKi8KICNlbmRpZgogCkBAIC0yNzMsNyArMjczLDcgQEAKIAkJCUNPTkZJR19GUEdBX0RFTEFZICgpOwogCQkJKCpmbi0+Y2xrKSAoVFJVRSwgVFJVRSwgY29va2llKTsJLyogQXNzZXJ0IHRoZSBjbG9jayBwaW4gKi8KIAotCQkJaWYgKGdldF90aW1lciAodHMpID4gQ0ZHX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLworCQkJaWYgKGdldF90aW1lciAodHMpID4gQ09ORklHX1NZU19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KIAkJCQlwdXRzICgiKiogVGltZW91dCB3YWl0aW5nIGZvciBET05FIHRvIGNsZWFyLlxuIik7CiAJCQkJKCpmbi0+YWJvcnQpIChjb29raWUpOwkvKiBhYm9ydCB0aGUgYnVybiAqLwogCQkJCXJldF92YWwgPSBGUEdBX0ZBSUw7CkBAIC0yODIsNyArMjgyLDcgQEAKIAkJfQogCiAJCWlmIChyZXRfdmFsID09IEZQR0FfU1VDQ0VTUykgewotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJcHV0cyAoIkRvbmUuXG4iKTsKICNlbmRpZgogCQl9CkBAIC0yOTQsNyArMjk0LDcgQEAKIAkJfQogCiAJCWVsc2UgewotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJcHV0cyAoIkZhaWwuXG4iKTsKICNlbmRpZgogCQl9CkBAIC0zMjgsNyArMzI4LDcgQEAKIAkJCSgqZm4tPmNsaykgKEZBTFNFLCBUUlVFLCBjb29raWUpOwkvKiBEZWFzc2VydCB0aGUgY2xvY2sgcGluICovCiAJCQkoKmZuLT5jbGspIChUUlVFLCBUUlVFLCBjb29raWUpOwkvKiBBc3NlcnQgdGhlIGNsb2NrIHBpbiAqLwogCQkJKCpmbi0+cmRhdGEpICgmKGRhdGFbYnl0ZWNvdW50KytdKSwgY29va2llKTsJLyogcmVhZCB0aGUgZGF0YSAqLwotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJaWYgKGJ5dGVjb3VudCAlIChic2l6ZSAvIDQwKSA9PSAwKQogCQkJCXB1dGMgKCcuJyk7CQkvKiBsZXQgdGhlbSBrbm93IHdlIGFyZSBhbGl2ZSAqLwogI2VuZGlmCkBAIC0zMzgsNyArMzM4LDcgQEAKIAkJKCpmbi0+Y2xrKSAoRkFMU0UsIFRSVUUsIGNvb2tpZSk7CS8qIERlYXNzZXJ0IHRoZSBjbG9jayBwaW4gKi8KIAkJKCpmbi0+Y2xrKSAoVFJVRSwgVFJVRSwgY29va2llKTsJLyogQXNzZXJ0IHRoZSBjbG9jayBwaW4gKi8KIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlwdXRjICgnXG4nKTsJCQkvKiB0ZXJtaW5hdGUgdGhlIGRvdHRlZCBsaW5lICovCiAjZW5kaWYKIAkJcHV0cyAoIkRvbmUuXG4iKTsKQEAgLTQ2NSw3ICs0NjUsNyBAQAogCQkJCSJkb25lOlx0MHglcFxuXG4iLAogCQkJCV9fRlVOQ1RJT05fXywgJmZuLCBmbiwgZm4tPnBnbSwgZm4tPmluaXQsCiAJCQkJZm4tPmNsaywgZm4tPndyLCBmbi0+ZG9uZSk7Ci0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCXByaW50ZiAoIkxvYWRpbmcgRlBHQSBEZXZpY2UgJWQuLi5cbiIsIGNvb2tpZSk7CiAjZW5kaWYKIApAQCAtNDgzLDcgKzQ4Myw3IEBACiAJCXRzID0gZ2V0X3RpbWVyICgwKTsJCS8qIGdldCBjdXJyZW50IHRpbWUgKi8KIAkJZG8gewogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7Ci0JCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLwogCQkJCXB1dHMgKCIqKiBUaW1lb3V0IHdhaXRpbmcgZm9yIElOSVQgdG8gc3RhcnQuXG4iKTsKIAkJCQlyZXR1cm4gRlBHQV9GQUlMOwogCQkJfQpAQCAtNDk3LDcgKzQ5Nyw3IEBACiAJCS8qIE5vdyB3YWl0IGZvciBJTklUIHRvIGdvIGhpZ2ggKi8KIAkJZG8gewogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7Ci0JCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLwogCQkJCXB1dHMgKCIqKiBUaW1lb3V0IHdhaXRpbmcgZm9yIElOSVQgdG8gY2xlYXIuXG4iKTsKIAkJCQlyZXR1cm4gRlBHQV9GQUlMOwogCQkJfQpAQCAtNTI4LDcgKzUyOCw3IEBACiAJCQkJaSAtLTsKIAkJCX0gd2hpbGUgKGkgPiAwKTsKIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJaWYgKGJ5dGVjb3VudCAlIChic2l6ZSAvIDQwKSA9PSAwKQogCQkJCXB1dGMgKCcuJyk7CQkvKiBsZXQgdGhlbSBrbm93IHdlIGFyZSBhbGl2ZSAqLwogI2VuZGlmCkBAIC01MzYsNyArNTM2LDcgQEAKIAogCQlDT05GSUdfRlBHQV9ERUxBWSAoKTsKIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlwdXRjICgnXG4nKTsJCQkvKiB0ZXJtaW5hdGUgdGhlIGRvdHRlZCBsaW5lICovCiAjZW5kaWYKIApAQCAtNTU2LDcgKzU1Niw3IEBACiAKIAkJCXB1dGMgKCcqJyk7CiAKLQkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENGR19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KKwkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENPTkZJR19TWVNfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCiAJCQkJcHV0cyAoIioqIFRpbWVvdXQgd2FpdGluZyBmb3IgRE9ORSB0byBjbGVhci5cbiIpOwogCQkJCXJldF92YWwgPSBGUEdBX0ZBSUw7CiAJCQkJYnJlYWs7CkBAIC01NzEsNyArNTcxLDcgQEAKIAkJCSgqZm4tPnBvc3QpIChjb29raWUpOwogCQl9CiAKLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJaWYgKHJldF92YWwgPT0gRlBHQV9TVUNDRVNTKSB7CiAJCQlwdXRzICgiRG9uZS5cbiIpOwogCQl9CmRpZmYgLS1naXQgYS9jb21tb24vdXBkYXRlLmMgYi9jb21tb24vdXBkYXRlLmMKaW5kZXggOTM4Y2MwNi4uNzUyODQ3NCAxMDA2NDQKLS0tIGEvY29tbW9uL3VwZGF0ZS5jCisrKyBiL2NvbW1vbi91cGRhdGUuYwpAQCAtMzAsOCArMzAsOCBAQAogI2Vycm9yICJDT05GSUdfRklUIGFuZCBDT05GSUdfT0ZfTElCRkRUIGFyZSByZXF1aXJlZCBmb3IgYXV0by11cGRhdGUgZmVhdHVyZSIKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfTk9fRkxBU0gpCi0jZXJyb3IgIkNGR19OT19GTEFTSCBkZWZpbmVkLCBidXQgRkxBU0ggaXMgcmVxdWlyZWQgZm9yIGF1dG8tdXBkYXRlIGZlYXR1cmUiCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX05PX0ZMQVNIKQorI2Vycm9yICJDT05GSUdfU1lTX05PX0ZMQVNIIGRlZmluZWQsIGJ1dCBGTEFTSCBpcyByZXF1aXJlZCBmb3IgYXV0by11cGRhdGUgZmVhdHVyZSIKICNlbmRpZgogCiAjaW5jbHVkZSA8Y29tbWFuZC5oPgpAQCAtMTIwLDEyICsxMjAsMTIgQEAKIAogCWlmIChwcm90ID09IDApIHsKIAkJc2F2ZWRfcHJvdF9pbmZvID0KLQkJCWNhbGxvYyhDRkdfTUFYX0ZMQVNIX0JBTktTICogQ0ZHX01BWF9GTEFTSF9TRUNULCAxKTsKKwkJCWNhbGxvYyhDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAqIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QsIDEpOwogCQlpZiAoIXNhdmVkX3Byb3RfaW5mbykKIAkJCXJldHVybiAxOwogCX0KIAotCWZvciAoYmFuayA9IDA7IGJhbmsgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmspIHsKKwlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaykgewogCQljbnQgPSAwOwogCQlpbmZvID0gJmZsYXNoX2luZm9bYmFua107CiAKQEAgLTEzNCw3ICsxMzQsNyBAQAogCQkJcmV0dXJuIDA7CiAKIAkJLyogUG9pbnQgdG8gY3VycmVudCBiYW5rIHByb3RlY3Rpb24gaW5mb3JtYXRpb24gKi8KLQkJc3BfaW5mb19wdHIgPSBzYXZlZF9wcm90X2luZm8gKyAoYmFuayAqIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCXNwX2luZm9fcHRyID0gc2F2ZWRfcHJvdF9pbmZvICsgKGJhbmsgKiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAogCQkvKgogCQkgKiBBZGp1c3QgYWRkcl9maXJzdCBvciBhZGRyX2xhc3QgaWYgd2UgYXJlIG9uIGJhbmsgYm91bmRhcnkuCkBAIC0xNTksNyArMTU5LDcgQEAKIAogCQkJLyogUHJvdGVjdC91bnByb3RlY3Qgc2VjdG9ycyAqLwogCQkJaWYgKHNwX2luZm9fcHRyW2ldID09IDEpIHsKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQkJCWlmIChmbGFzaF9yZWFsX3Byb3RlY3QoaW5mbywgaSwgcHJvdCkpCiAJCQkJCXJldHVybiAxOwogI2Vsc2UKZGlmZiAtLWdpdCBhL2NvbW1vbi91c2Jfa2JkLmMgYi9jb21tb24vdXNiX2tiZC5jCmluZGV4IDkyMGJiMGYuLmNmMTQ1NjAgMTAwNjQ0Ci0tLSBhL2NvbW1vbi91c2Jfa2JkLmMKKysrIGIvY29tbW9uL3VzYl9rYmQuYwpAQCAtMzYsNyArMzYsNyBAQAogICogYXJlIHN3aXRjaGVkIHRvIHRoZSBzZXJpYWwgcG9ydCwgZWxzZSB0aGUgc2V0dGluZ3MgaW4gdGhlCiAgKiBlbnZpcm9ubWVudCBhcmUgdXNlZAogICovCi0jaWZkZWYgQ0ZHX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUKKyNpZmRlZiBDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUKIGV4dGVybiBpbnQgb3ZlcndyaXRlX2NvbnNvbGUgKHZvaWQpOwogI2Vsc2UKIGludCBvdmVyd3JpdGVfY29uc29sZSAodm9pZCkKQEAgLTEyMCw3ICsxMjAsNyBAQAogLyogdGVzdCBpZiBhIGNoYXJhY3RlciBpcyBpbiB0aGUgcXVldWUgKi8KIHN0YXRpYyBpbnQgdXNiX2tiZF90ZXN0Yyh2b2lkKQogewotI2lmZGVmIENGR19VU0JfRVZFTlRfUE9MTAorI2lmZGVmIENPTkZJR19TWVNfVVNCX0VWRU5UX1BPTEwKIAl1c2JfZXZlbnRfcG9sbCgpOwogI2VuZGlmCiAJaWYodXNiX2luX3BvaW50ZXI9PXVzYl9vdXRfcG9pbnRlcikKQEAgLTEzMyw3ICsxMzMsNyBAQAogewogCWNoYXIgYzsKIAl3aGlsZSh1c2JfaW5fcG9pbnRlcj09dXNiX291dF9wb2ludGVyKSB7Ci0jaWZkZWYgQ0ZHX1VTQl9FVkVOVF9QT0xMCisjaWZkZWYgQ09ORklHX1NZU19VU0JfRVZFTlRfUE9MTAogCQl1c2JfZXZlbnRfcG9sbCgpOwogI2VuZGlmCiAJfQpkaWZmIC0tZ2l0IGEvY29tbW9uL3ZpcnRleDIuYyBiL2NvbW1vbi92aXJ0ZXgyLmMKaW5kZXggNTJkYTFiMi4uNTBkMDkyMSAxMDA2NDQKLS0tIGEvY29tbW9uL3ZpcnRleDIuYworKysgYi9jb21tb24vdmlydGV4Mi5jCkBAIC00MywzNCArNDMsMzQgQEAKIAogLyoKICAqIElmIHRoZSBTZWxlY3RNYXAgaW50ZXJmYWNlIGNhbiBiZSBvdmVycnVuIGJ5IHRoZSBwcm9jZXNzb3IsIGRlZmluZQotICogQ0ZHX0ZQR0FfQ0hFQ0tfQlVTWSBhbmQvb3IgQ09ORklHX0ZQR0FfREVMQVkgaW4gdGhlIGJvYXJkIGNvbmZpZ3VyYXRpb24KKyAqIENPTkZJR19TWVNfRlBHQV9DSEVDS19CVVNZIGFuZC9vciBDT05GSUdfRlBHQV9ERUxBWSBpbiB0aGUgYm9hcmQgY29uZmlndXJhdGlvbgogICogZmlsZSBhbmQgYWRkIGJvYXJkLXNwZWNpZmljIHN1cHBvcnQgZm9yIGNoZWNraW5nIEJVU1kgc3RhdHVzLiBCeSBkZWZhdWx0LAogICogYXNzdW1lIHRoYXQgdGhlIFNlbGVjdE1hcCBpbnRlcmZhY2UgY2Fubm90IGJlIG92ZXJydW4uCiAgKi8KLSNpZm5kZWYgQ0ZHX0ZQR0FfQ0hFQ0tfQlVTWQotI3VuZGVmIENGR19GUEdBX0NIRUNLX0JVU1kKKyNpZm5kZWYgQ09ORklHX1NZU19GUEdBX0NIRUNLX0JVU1kKKyN1bmRlZiBDT05GSUdfU1lTX0ZQR0FfQ0hFQ0tfQlVTWQogI2VuZGlmCiAKICNpZm5kZWYgQ09ORklHX0ZQR0FfREVMQVkKICNkZWZpbmUgQ09ORklHX0ZQR0FfREVMQVkoKQogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSwotI2RlZmluZSBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZuZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAjZW5kaWYKIAogLyoKICAqIERvbid0IGFsbG93IGNvbmZpZyBjeWNsZSB0byBiZSBpbnRlcnJ1cHRlZAogICovCi0jaWZuZGVmIENGR19GUEdBX0NIRUNLX0NUUkxDCi0jdW5kZWYgQ0ZHX0ZQR0FfQ0hFQ0tfQ1RSTEMKKyNpZm5kZWYgQ09ORklHX1NZU19GUEdBX0NIRUNLX0NUUkxDCisjdW5kZWYgQ09ORklHX1NZU19GUEdBX0NIRUNLX0NUUkxDCiAjZW5kaWYKIAogLyoKICAqIENoZWNrIGZvciBlcnJvcnMgZHVyaW5nIGNvbmZpZ3VyYXRpb24gYnkgZGVmYXVsdAogICovCi0jaWZuZGVmIENGR19GUEdBX0NIRUNLX0VSUk9SCi0jZGVmaW5lIENGR19GUEdBX0NIRUNLX0VSUk9SCisjaWZuZGVmIENPTkZJR19TWVNfRlBHQV9DSEVDS19FUlJPUgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ0hFQ0tfRVJST1IKICNlbmRpZgogCiAvKgpAQCAtODEsOCArODEsOCBAQAogICogd2hpY2ggeWllbGRzIDExLjQ0IG1TLiAgU28gbGV0J3MgbWFrZSBpdCBiaWdnZXIgaW4gb3JkZXIgdG8gaGFuZGxlCiAgKiBhbiBYQzJWMTAwMCwgaWYgYW55b25lIGNhbiBldmVyIGdldCBhaG9sZCBvZiBvbmUuCiAgKi8KLSNpZm5kZWYgQ0ZHX0ZQR0FfV0FJVF9JTklUCi0jZGVmaW5lIENGR19GUEdBX1dBSVRfSU5JVAlDRkdfSFovMgkvKiA1MDAgbXMgKi8KKyNpZm5kZWYgQ09ORklHX1NZU19GUEdBX1dBSVRfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfV0FJVF9JTklUCUNPTkZJR19TWVNfSFovMgkvKiA1MDAgbXMgKi8KICNlbmRpZgogCiAvKgpAQCAtOTAsMTUgKzkwLDE1IEBACiAgKiBUaGlzIGlzIG5vcm1hbGx5IG5vdCBuZWNlc3Nhcnkgc2luY2UgZm9yIG1vc3QgcmVhc29uYWJsZSBjb25maWd1cmF0aW9uCiAgKiBjbG9jayBmcmVxdWVuY2llcyAoaS5lLiA2NiBNSHogb3IgbGVzcyksIEJVU1kgbW9uaXRvcmluZyBpcyB1bm5lY2Vzc2FyeS4KICAqLwotI2lmbmRlZiBDRkdfRlBHQV9XQUlUX0JVU1kKLSNkZWZpbmUgQ0ZHX0ZQR0FfV0FJVF9CVVNZCUNGR19IWi8yMDAJLyogNSBtcyovCisjaWZuZGVmIENPTkZJR19TWVNfRlBHQV9XQUlUX0JVU1kKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1dBSVRfQlVTWQlDT05GSUdfU1lTX0haLzIwMAkvKiA1IG1zKi8KICNlbmRpZgogCiAvKiBEZWZhdWx0IHRpbWVvdXQgZm9yIHdhaXRpbmcgZm9yIEZQR0EgdG8gZW50ZXIgb3BlcmF0aW9uYWwgbW9kZSBhZnRlcgogICogY29uZmlndXJhdGlvbiBkYXRhIGhhcyBiZWVuIHdyaXR0ZW4uCiAgKi8KLSNpZm5kZWYJQ0ZHX0ZQR0FfV0FJVF9DT05GSUcKLSNkZWZpbmUgQ0ZHX0ZQR0FfV0FJVF9DT05GSUcJQ0ZHX0haLzUJLyogMjAwIG1zICovCisjaWZuZGVmCUNPTkZJR19TWVNfRlBHQV9XQUlUX0NPTkZJRworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfV0FJVF9DT05GSUcJQ09ORklHX1NZU19IWi81CS8qIDIwMCBtcyAqLwogI2VuZGlmCiAKIHN0YXRpYyBpbnQgVmlydGV4Ml9zc21fbG9hZCAoWGlsaW54X2Rlc2MgKiBkZXNjLCB2b2lkICpidWYsIHNpemVfdCBic2l6ZSk7CkBAIC0yMzIsNyArMjMyLDcgQEAKIAkJCQlmbi0+Y2xrLCBmbi0+Y3MsIGZuLT53ciwgZm4tPnJkYXRhLCBmbi0+d2RhdGEsCiAJCQkJZm4tPmJ1c3ksIGZuLT5hYm9ydCwgZm4tPnBvc3QpOwogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCXByaW50ZiAoIkluaXRpYWxpemluZyBGUEdBIERldmljZSAlZC4uLlxuIiwgY29va2llKTsKICNlbmRpZgogCQkvKgpAQCAtMjUyLDEwICsyNTIsMTAgQEAKIAkJdWRlbGF5ICgxMCk7CiAJCXRzID0gZ2V0X3RpbWVyICgwKTsKIAkJZG8gewotCQkJaWYgKGdldF90aW1lciAodHMpID4gQ0ZHX0ZQR0FfV0FJVF9JTklUKSB7CisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVF9JTklUKSB7CiAJCQkJcHJpbnRmICgiJXM6JWQ6ICoqIFRpbWVvdXQgYWZ0ZXIgJWQgdGlja3Mgd2FpdGluZyBmb3IgSU5JVCIKIAkJCQkJCSIgdG8gYXNzZXJ0LlxuIiwgX19GVU5DVElPTl9fLCBfX0xJTkVfXywKLQkJCQkJCUNGR19GUEdBX1dBSVRfSU5JVCk7CisJCQkJCQlDT05GSUdfU1lTX0ZQR0FfV0FJVF9JTklUKTsKIAkJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CiAJCQkJcmV0dXJuIEZQR0FfRkFJTDsKIAkJCX0KQEAgLTI3MSwxMCArMjcxLDEwIEBACiAJCXRzID0gZ2V0X3RpbWVyICgwKTsKIAkJZG8gewogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7Ci0JCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUX0lOSVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENPTkZJR19TWVNfRlBHQV9XQUlUX0lOSVQpIHsKIAkJCQlwcmludGYgKCIlczolZDogKiogVGltZW91dCBhZnRlciAlZCB0aWNrcyB3YWl0aW5nIGZvciBJTklUIgogCQkJCQkJIiB0byBkZWFzc2VydC5cbiIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18sCi0JCQkJCQlDRkdfRlBHQV9XQUlUX0lOSVQpOworCQkJCQkJQ09ORklHX1NZU19GUEdBX1dBSVRfSU5JVCk7CiAJCQkJKCpmbi0+YWJvcnQpIChjb29raWUpOwogCQkJCXJldHVybiBGUEdBX0ZBSUw7CiAJCQl9CkBAIC0yODksNyArMjg5LDcgQEAKIAkJICogTG9hZCB0aGUgZGF0YSBieXRlIGJ5IGJ5dGUKIAkJICovCiAJCXdoaWxlIChieXRlY291bnQgPCBic2l6ZSkgewotI2lmZGVmIENGR19GUEdBX0NIRUNLX0NUUkxDCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX0NIRUNLX0NUUkxDCiAJCQlpZiAoY3RybGMgKCkpIHsKIAkJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CiAJCQkJcmV0dXJuIEZQR0FfRkFJTDsKQEAgLTMwMiw3ICszMDIsNyBAQAogCQkJICAgIGJyZWFrOwogCQkJfQogCi0jaWZkZWYgQ0ZHX0ZQR0FfQ0hFQ0tfRVJST1IKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfQ0hFQ0tfRVJST1IKIAkJCWlmICgoKmZuLT5pbml0KSAoY29va2llKSkgewogCQkJCXByaW50ZiAoIlxuJXM6JWQ6ICAqKiBFcnJvcjogSU5JVCBhc3NlcnRlZCBkdXJpbmciCiAJCQkJCQkiIGNvbmZpZ3VyYXRpb25cbiIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwpAQCAtMzIzLDIwICszMjMsMjAgQEAKIAkJCUNPTkZJR19GUEdBX0RFTEFZICgpOwogCQkJKCpmbi0+Y2xrKSAoVFJVRSwgVFJVRSwgY29va2llKTsKIAotI2lmZGVmIENGR19GUEdBX0NIRUNLX0JVU1kKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfQ0hFQ0tfQlVTWQogCQkJdHMgPSBnZXRfdGltZXIgKDApOwogCQkJd2hpbGUgKCgqZm4tPmJ1c3kpIChjb29raWUpKSB7Ci0JCQkJaWYgKGdldF90aW1lciAodHMpID4gQ0ZHX0ZQR0FfV0FJVF9CVVNZKSB7CisJCQkJaWYgKGdldF90aW1lciAodHMpID4gQ09ORklHX1NZU19GUEdBX1dBSVRfQlVTWSkgewogCQkJCQlwcmludGYgKCIlczolZDogKiogVGltZW91dCBhZnRlciAlZCB0aWNrcyB3YWl0aW5nIGZvciIKIAkJCQkJCQkiIEJVU1kgdG8gZGVhc3NlcnRcbiIsCi0JCQkJCQkJX19GVU5DVElPTl9fLCBfX0xJTkVfXywgQ0ZHX0ZQR0FfV0FJVF9CVVNZKTsKKwkJCQkJCQlfX0ZVTkNUSU9OX18sIF9fTElORV9fLCBDT05GSUdfU1lTX0ZQR0FfV0FJVF9CVVNZKTsKIAkJCQkJKCpmbi0+YWJvcnQpIChjb29raWUpOwogCQkJCQlyZXR1cm4gRlBHQV9GQUlMOwogCQkJCX0KIAkJCX0KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCQlpZiAoYnl0ZWNvdW50ICUgKGJzaXplIC8gNDApID09IDApCiAJCQkJcHV0YyAoJy4nKTsKICNlbmRpZgpAQCAtMzQ5LDcgKzM0OSw3IEBACiAJCSgqZm4tPmNzKSAoRkFMU0UsIFRSVUUsIGNvb2tpZSk7CiAJCSgqZm4tPndyKSAoRkFMU0UsIFRSVUUsIGNvb2tpZSk7CiAKLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJcHV0YyAoJ1xuJyk7CiAjZW5kaWYKIApAQCAtMzYwLDEwICszNjAsMTAgQEAKIAkJdHMgPSBnZXRfdGltZXIgKDApOwogCQlyZXRfdmFsID0gRlBHQV9TVUNDRVNTOwogCQl3aGlsZSAoKCgqZm4tPmRvbmUpIChjb29raWUpID09IEZQR0FfRkFJTCkgfHwgKCpmbi0+aW5pdCkgKGNvb2tpZSkpIHsKLQkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENGR19GUEdBX1dBSVRfQ09ORklHKSB7CisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVF9DT05GSUcpIHsKIAkJCQlwcmludGYgKCIlczolZDogKiogVGltZW91dCBhZnRlciAlZCB0aWNrcyB3YWl0aW5nIGZvciBET05FIHRvIgogCQkJCQkJImFzc2VydCBhbmQgSU5JVCB0byBkZWFzc2VydFxuIiwKLQkJCQkJCV9fRlVOQ1RJT05fXywgX19MSU5FX18sIENGR19GUEdBX1dBSVRfQ09ORklHKTsKKwkJCQkJCV9fRlVOQ1RJT05fXywgX19MSU5FX18sIENPTkZJR19TWVNfRlBHQV9XQUlUX0NPTkZJRyk7CiAJCQkJKCpmbi0+YWJvcnQpIChjb29raWUpOwogCQkJCXJldF92YWwgPSBGUEdBX0ZBSUw7CiAJCQkJYnJlYWs7CkBAIC0zNzEsNyArMzcxLDcgQEAKIAkJfQogCiAJCWlmIChyZXRfdmFsID09IEZQR0FfU1VDQ0VTUykgewotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJcHJpbnRmICgiSW5pdGlhbGl6YXRpb24gb2YgRlBHQSBkZXZpY2UgJWQgY29tcGxldGVcbiIsIGNvb2tpZSk7CiAjZW5kaWYKIAkJCS8qCkBAIC0zODEsNyArMzgxLDcgQEAKIAkJCQkoKmZuLT5wb3N0KSAoY29va2llKTsKIAkJCX0KIAkJfSBlbHNlIHsKLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJCXByaW50ZiAoIioqIEluaXRpYWxpemF0aW9uIG9mIEZQR0EgZGV2aWNlICVkIEZBSUxFRFxuIiwKIAkJCQkJY29va2llKTsKICNlbmRpZgpAQCAtNDEyLDcgKzQxMiw3IEBACiAJCSgqZm4tPmNsaykgKFRSVUUsIFRSVUUsIGNvb2tpZSk7CiAKIAkJd2hpbGUgKGJ5dGVjb3VudCA8IGJzaXplKSB7Ci0jaWZkZWYgQ0ZHX0ZQR0FfQ0hFQ0tfQ1RSTEMKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfQ0hFQ0tfQ1RSTEMKIAkJCWlmIChjdHJsYyAoKSkgewogCQkJCSgqZm4tPmFib3J0KSAoY29va2llKTsKIAkJCQlyZXR1cm4gRlBHQV9GQUlMOwpAQCAtNDI0LDcgKzQyNCw3IEBACiAJCQkoKmZuLT5jbGspIChGQUxTRSwgVFJVRSwgY29va2llKTsKIAkJCSgqZm4tPmNsaykgKFRSVUUsIFRSVUUsIGNvb2tpZSk7CiAJCQkoKmZuLT5yZGF0YSkgKCYoZGF0YVtieXRlY291bnQrK10pLCBjb29raWUpOwotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJaWYgKGJ5dGVjb3VudCAlIChic2l6ZSAvIDQwKSA9PSAwKQogCQkJCXB1dGMgKCcuJyk7CiAjZW5kaWYKQEAgLTQzNyw3ICs0MzcsNyBAQAogCQkoKmZuLT5jbGspIChGQUxTRSwgVFJVRSwgY29va2llKTsKIAkJKCpmbi0+Y2xrKSAoVFJVRSwgVFJVRSwgY29va2llKTsKIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlwdXRjICgnXG4nKTsKICNlbmRpZgogCQlwdXRzICgiRG9uZS5cbiIpOwpkaWZmIC0tZ2l0IGEvY3B1Lzc0eHhfN3h4L2NhY2hlLlMgYi9jcHUvNzR4eF83eHgvY2FjaGUuUwppbmRleCA2MmE2NjgzLi42NmM3Mjk4IDEwMDY0NAotLS0gYS9jcHUvNzR4eF83eHgvY2FjaGUuUworKysgYi9jcHUvNzR4eF83eHgvY2FjaGUuUwpAQCAtMjkyLDcgKzI5Miw3IEBACiAJbXRzcHIJSElEMCwgcjUJCS8qIGVuYWJsZSArIGludmFsaWRhdGUgKi8KIAltdHNwcglISUQwLCByMwkJLyogZW5hYmxlICovCiAJc3luYwotI2lmZGVmIENGR19MMgorI2lmZGVmIENPTkZJR19TWVNfTDIKIAltZmxyCXI1CiAJYmwJbDJjYWNoZV9lbmFibGUJCS8qIHVzZXMgcjMgYW5kIHI0ICovCiAJc3luYwpAQCAtMzE4LDcgKzMxOCw3IEBACiAJYW5kYwlyMywgcjMsIHI1CQkvKiBubyBlbmFibGUsIG5vIGludmFsaWRhdGUgKi8KIAltdHNwcglISUQwLCByMwogCXN5bmMKLSNpZmRlZiBDRkdfTDIKKyNpZmRlZiBDT05GSUdfU1lTX0wyCiAJYmwJbDJjYWNoZV9kaXNhYmxlX25vX2ZsdXNoIC8qIHVzZXMgcjMgKi8KICNlbmRpZgogCW10bHIJcjQJCQkvKiByZXN0b3JlIGxpbmsgcmVnaXN0ZXIgKi8KZGlmZiAtLWdpdCBhL2NwdS83NHh4Xzd4eC9jcHUuYyBiL2NwdS83NHh4Xzd4eC9jcHUuYwppbmRleCBjMDA3YWJjLi4zYzE3Mjc3IDEwMDY0NAotLS0gYS9jcHUvNzR4eF83eHgvY3B1LmMKKysrIGIvY3B1Lzc0eHhfN3h4L2NwdS5jCkBAIC0yNTYsMTYgKzI1NiwxNiBAQAogCV9fYXNtX18gX192b2xhdGlsZV9fICgiaXN5bmMiKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAotI2lmZGVmIENGR19SRVNFVF9BRERSRVNTCi0JYWRkciA9IENGR19SRVNFVF9BRERSRVNTOworI2lmZGVmIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUworCWFkZHIgPSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1M7CiAjZWxzZQogCS8qCi0JICogbm90ZTogd2hlbiBDRkdfTU9OSVRPUl9CQVNFIHBvaW50cyB0byBhIFJBTSBhZGRyZXNzLAotCSAqIENGR19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKSBpcyB1c3VhbGx5IGEgdmFsaWQKKwkgKiBub3RlOiB3aGVuIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIHBvaW50cyB0byBhIFJBTSBhZGRyZXNzLAorCSAqIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZykgaXMgdXN1YWxseSBhIHZhbGlkCiAJICogYWRkcmVzcy4gQmV0dGVyIHBpY2sgYW4gYWRkcmVzcyBrbm93biB0byBiZSBpbnZhbGlkIG9uIHlvdXIKLQkgKiBzeXN0ZW0gYW5kIGFzc2lnbiBpdCB0byBDRkdfUkVTRVRfQUREUkVTUy4KKwkgKiBzeXN0ZW0gYW5kIGFzc2lnbiBpdCB0byBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MuCiAJICovCi0JYWRkciA9IENGR19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKTsKKwlhZGRyID0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKTsKICNlbmRpZgogCXNvZnRfcmVzdGFydChhZGRyKTsKIAl3aGlsZSgxKTsJLyogbm90IHJlYWNoZWQgKi8KQEAgLTI3NywxOCArMjc3LDE4IEBACiAvKgogICogRm9yIHRoZSA3NDAwIHRoZSBUQiBjbG9jayBydW5zIGF0IDEvNCB0aGUgY3B1IGJ1cyBzcGVlZC4KICAqLwotI2lmIGRlZmluZWQoQ09ORklHX0FNSUdBT05FRzNTRSkgfHwgZGVmaW5lZChDRkdfQ09ORklHX0JVU19DTEspCisjaWYgZGVmaW5lZChDT05GSUdfQU1JR0FPTkVHM1NFKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfQ09ORklHX0JVU19DTEspCiB1bnNpZ25lZCBsb25nIGdldF90YmNsayh2b2lkKQogewogCXJldHVybiAoZ2QtPmJ1c19jbGsgLyA0KTsKIH0KLSNlbHNlCS8qICEgQ09ORklHX0FNSUdBT05FRzNTRSBhbmQgIUNGR19DT05GSUdfQlVTX0NMSyovCisjZWxzZQkvKiAhIENPTkZJR19BTUlHQU9ORUczU0UgYW5kICFDT05GSUdfU1lTX0NPTkZJR19CVVNfQ0xLKi8KIAogdW5zaWduZWQgbG9uZyBnZXRfdGJjbGsgKHZvaWQpCiB7Ci0JcmV0dXJuIENGR19CVVNfSFogLyA0OworCXJldHVybiBDT05GSUdfU1lTX0JVU19IWiAvIDQ7CiB9Ci0jZW5kaWYJLyogQ09ORklHX0FNSUdBT05FRzNTRSBvciBDRkdfQ09ORklHX0JVU19DTEsqLworI2VuZGlmCS8qIENPTkZJR19BTUlHQU9ORUczU0Ugb3IgQ09ORklHX1NZU19DT05GSUdfQlVTX0NMSyovCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCiAjaWYgIWRlZmluZWQoQ09ORklHX1BDSVBQQzIpICYmICFkZWZpbmVkKENPTkZJR19CQUI3eHgpCmRpZmYgLS1naXQgYS9jcHUvNzR4eF83eHgvaW50ZXJydXB0cy5jIGIvY3B1Lzc0eHhfN3h4L2ludGVycnVwdHMuYwppbmRleCBmMGVhNDg1Li4wZWExYWVjIDEwMDY0NAotLS0gYS9jcHUvNzR4eF83eHgvaW50ZXJydXB0cy5jCisrKyBiL2NwdS83NHh4Xzd4eC9pbnRlcnJ1cHRzLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIAkgICAgICAgR1RSRUdSRUFEKEVUSEVSTkVUMl9JTlRFUlJVUFRfTUFTS19SRUdJU1RFUikpOwogCXB1dHMoImludGVycnVwdF9pbml0OiBzZXR0aW5nIGRlY3JlbWVudGVyX2NvdW50XG4iKTsKICNlbmRpZgotCSpkZWNyZW1lbnRlcl9jb3VudCA9IGdldF90YmNsaygpIC8gQ0ZHX0haOworCSpkZWNyZW1lbnRlcl9jb3VudCA9IGdldF90YmNsaygpIC8gQ09ORklHX1NZU19IWjsKIAogCXJldHVybiAoMCk7CiB9CmRpZmYgLS1naXQgYS9jcHUvNzR4eF83eHgva2dkYi5TIGIvY3B1Lzc0eHhfN3h4L2tnZGIuUwppbmRleCA0ZjIzMTIyLi5hZDQ4N2NkIDEwMDY0NAotLS0gYS9jcHUvNzR4eF83eHgva2dkYi5TCisrKyBiL2NwdS83NHh4Xzd4eC9rZ2RiLlMKQEAgLTQzLDcgKzQzLDcgQEAKIAlhZGRpcwlyNCxyMCwweDAwNDAKIGtnZGJfZmx1c2hfbG9vcDoKIAlsd3oJcjUsMChyMykKLQlhZGRpCXIzLHIzLENGR19DQUNIRUxJTkVfU0laRQorCWFkZGkJcjMscjMsQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQogCWNtcAkwLDAscjMscjQKIAlibmUJa2dkYl9mbHVzaF9sb29wCiAJU1lOQwpAQCAtNTUsMjEgKzU1LDIxIEBACiAKIAkuZ2xvYmwJa2dkYl9mbHVzaF9jYWNoZV9yYW5nZQoga2dkYl9mbHVzaF9jYWNoZV9yYW5nZToKLQlsaQlyNSxDRkdfQ0FDSEVMSU5FX1NJWkUtMQorCWxpCXI1LENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUtMQogCWFuZGMJcjMscjMscjUKIAlzdWJmCXI0LHIzLHI0CiAJYWRkCXI0LHI0LHI1Ci0Jc3J3aS4JcjQscjQsQ0ZHX0NBQ0hFTElORV9TSElGVAorCXNyd2kuCXI0LHI0LENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCiAJYmVxbHIKIAltdGN0cglyNAogCW1yCXI2LHIzCiAxOglkY2JzdAkwLHIzCi0JYWRkaQlyMyxyMyxDRkdfQ0FDSEVMSU5FX1NJWkUKKwlhZGRpCXIzLHIzLENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKIAliZG56CTFiCiAJc3luYwkJCQkvKiB3YWl0IGZvciBkY2JzdCdzIHRvIGdldCB0byByYW0gKi8KIAltdGN0cglyNAogMjoJaWNiaQkwLHI2Ci0JYWRkaQlyNixyNixDRkdfQ0FDSEVMSU5FX1NJWkUKKwlhZGRpCXI2LHI2LENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKIAliZG56CTJiCiAJU1lOQwogCWJscgpkaWZmIC0tZ2l0IGEvY3B1Lzc0eHhfN3h4L3NwZWVkLmMgYi9jcHUvNzR4eF83eHgvc3BlZWQuYwppbmRleCBkOGM0MGNlLi5iYzMzYTY3IDEwMDY0NAotLS0gYS9jcHUvNzR4eF83eHgvc3BlZWQuYworKysgYi9jcHUvNzR4eF83eHgvc3BlZWQuYwpAQCAtMTI3LDggKzEyNyw4IEBACiB7CiAJdWxvbmcgY2xvY2sgPSAwOwogCi0jaWZkZWYgQ0ZHX0JVU19DTEsKLQlnZC0+YnVzX2NsayA9IENGR19CVVNfQ0xLOwkvKiBidXMgY2xvY2sgaXMgYSBmaXhlZCBmcmVxdWVuY3kgKi8KKyNpZmRlZiBDT05GSUdfU1lTX0JVU19DTEsKKwlnZC0+YnVzX2NsayA9IENPTkZJR19TWVNfQlVTX0NMSzsJLyogYnVzIGNsb2NrIGlzIGEgZml4ZWQgZnJlcXVlbmN5ICovCiAjZWxzZQogCWdkLT5idXNfY2xrID0gZ2V0X2JvYXJkX2J1c19jbGsgKCk7CS8qIGJ1cyBjbG9jayBpcyBjb25maWd1cmFibGUgKi8KICNlbmRpZgpkaWZmIC0tZ2l0IGEvY3B1Lzc0eHhfN3h4L3N0YXJ0LlMgYi9jcHUvNzR4eF83eHgvc3RhcnQuUwppbmRleCA0MmIwZjcyLi4wN2JiZTAxIDEwMDY0NAotLS0gYS9jcHUvNzR4eF83eHgvc3RhcnQuUworKysgYi9jcHUvNzR4eF83eHgvc3RhcnQuUwpAQCAtMjA5LDcgKzIwOSw3IEBACiAJYmwJaW52YWxpZGF0ZV9iYXRzCiAJc3luYwogCi0jaWZkZWYgQ0ZHX0wyCisjaWZkZWYgQ09ORklHX1NZU19MMgogCS8qIGluaXQgdGhlIEwyIGNhY2hlICovCiAJYWRkaXMJcjMsIHIwLCBMMl9JTklUQGgKIAlvcmkJcjMsIHIzLCBMMl9JTklUQGwKQEAgLTIyNSwxMiArMjI1LDEyIEBACiAJCSAqLwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfTDIKKyNpZmRlZiBDT05GSUdfU1lTX0wyCiAJLyogaW52YWxpZGF0ZSB0aGUgTDIgY2FjaGUgKi8KIAlibAlsMmNhY2hlX2ludmFsaWRhdGUKIAlzeW5jCiAjZW5kaWYKLSNpZmRlZiBDRkdfQk9BUkRfQVNNX0lOSVQKKyNpZmRlZiBDT05GSUdfU1lTX0JPQVJEX0FTTV9JTklUCiAJLyogZG8gZWFybHkgaW5pdCAqLwogCWJsCWJvYXJkX2FzbV9pbml0CiAjZW5kaWYKQEAgLTIzOCw4ICsyMzgsOCBAQAogCS8qCiAJICogQ2FsY3VsYXRlIGFic29sdXRlIGFkZHJlc3MgaW4gRkxBU0ggYW5kIGp1bXAgdGhlcmUKIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0JbGlzCXIzLCBDRkdfTU9OSVRPUl9CQVNFQGgKLQlvcmkJcjMsIHIzLCBDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJYWRkaQlyMywgcjMsIGluX2ZsYXNoIC0gX3N0YXJ0ICsgRVhDX09GRl9TWVNfUkVTRVQKIAltdGxyCXIzCiAJYmxyCkBAIC0yODAsMTUgKzI4MCwxNSBAQAogCWJsCWwxZGNhY2hlX2VuYWJsZQogCXN5bmMKICNlbmRpZgotI2lmZGVmIENGR19JTklUX1JBTV9MT0NLCisjaWZkZWYgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCiAJYmwJbG9ja19yYW1faW5fY2FjaGUKIAlzeW5jCiAjZW5kaWYKIAogCS8qIHNldCB1cCB0aGUgc3RhY2sgcG9pbnRlciBpbiBvdXIgbmV3bHkgY3JlYXRlZAogCSAqIGNhY2hlLXJhbSAocjEpICovCi0JbGlzCXIxLCAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKUBoCi0Jb3JpCXIxLCByMSwgKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0dCTF9EQVRBX09GRlNFVClAbAorCWxpcwlyMSwgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKUBoCisJb3JpCXIxLCByMSwgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKUBsCiAKIAlsaQlyMCwgMAkJLyogTWFrZSByb29tIGZvciBzdGFjayBmcmFtZSBoZWFkZXIgYW5kCSovCiAJc3R3dQlyMCwgLTQocjEpCS8qIGNsZWFyIGZpbmFsIHN0YWNrIGZyYW1lIHNvIHRoYXQJKi8KQEAgLTM0MywxNDYgKzM0MywxNDYgQEAKIAlhZGRpcwlyMCwgcjAsIDB4MDAwMAogCiAJLyogSUJBVCAwICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfSUJBVDBMQGgKLQlvcmkJcjQsIHI0LCBDRkdfSUJBVDBMQGwKLQlhZGRpcwlyMywgcjAsIENGR19JQkFUMFVAaAotCW9yaQlyMywgcjMsIENGR19JQkFUMFVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19JQkFUMExAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSUJBVDBMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfSUJBVDBVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQwVUBsCiAJbXRzcHIJSUJBVDBMLCByNAogCW10c3ByCUlCQVQwVSwgcjMKIAlpc3luYwogCiAJLyogREJBVCAwICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfREJBVDBMQGgKLQlvcmkJcjQsIHI0LCBDRkdfREJBVDBMQGwKLQlhZGRpcwlyMywgcjAsIENGR19EQkFUMFVAaAotCW9yaQlyMywgcjMsIENGR19EQkFUMFVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19EQkFUMExAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfREJBVDBMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfREJBVDBVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0RCQVQwVUBsCiAJbXRzcHIJREJBVDBMLCByNAogCW10c3ByCURCQVQwVSwgcjMKIAlpc3luYwogCiAJLyogSUJBVCAxICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfSUJBVDFMQGgKLQlvcmkJcjQsIHI0LCBDRkdfSUJBVDFMQGwKLQlhZGRpcwlyMywgcjAsIENGR19JQkFUMVVAaAotCW9yaQlyMywgcjMsIENGR19JQkFUMVVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19JQkFUMUxAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSUJBVDFMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfSUJBVDFVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQxVUBsCiAJbXRzcHIJSUJBVDFMLCByNAogCW10c3ByCUlCQVQxVSwgcjMKIAlpc3luYwogCiAJLyogREJBVCAxICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfREJBVDFMQGgKLQlvcmkJcjQsIHI0LCBDRkdfREJBVDFMQGwKLQlhZGRpcwlyMywgcjAsIENGR19EQkFUMVVAaAotCW9yaQlyMywgcjMsIENGR19EQkFUMVVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19EQkFUMUxAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfREJBVDFMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfREJBVDFVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0RCQVQxVUBsCiAJbXRzcHIJREJBVDFMLCByNAogCW10c3ByCURCQVQxVSwgcjMKIAlpc3luYwogCiAJLyogSUJBVCAyICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfSUJBVDJMQGgKLQlvcmkJcjQsIHI0LCBDRkdfSUJBVDJMQGwKLQlhZGRpcwlyMywgcjAsIENGR19JQkFUMlVAaAotCW9yaQlyMywgcjMsIENGR19JQkFUMlVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19JQkFUMkxAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSUJBVDJMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfSUJBVDJVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQyVUBsCiAJbXRzcHIJSUJBVDJMLCByNAogCW10c3ByCUlCQVQyVSwgcjMKIAlpc3luYwogCiAJLyogREJBVCAyICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfREJBVDJMQGgKLQlvcmkJcjQsIHI0LCBDRkdfREJBVDJMQGwKLQlhZGRpcwlyMywgcjAsIENGR19EQkFUMlVAaAotCW9yaQlyMywgcjMsIENGR19EQkFUMlVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19EQkFUMkxAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfREJBVDJMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfREJBVDJVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0RCQVQyVUBsCiAJbXRzcHIJREJBVDJMLCByNAogCW10c3ByCURCQVQyVSwgcjMKIAlpc3luYwogCiAJLyogSUJBVCAzICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfSUJBVDNMQGgKLQlvcmkJcjQsIHI0LCBDRkdfSUJBVDNMQGwKLQlhZGRpcwlyMywgcjAsIENGR19JQkFUM1VAaAotCW9yaQlyMywgcjMsIENGR19JQkFUM1VAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19JQkFUM0xAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSUJBVDNMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfSUJBVDNVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQzVUBsCiAJbXRzcHIJSUJBVDNMLCByNAogCW10c3ByCUlCQVQzVSwgcjMKIAlpc3luYwogCiAJLyogREJBVCAzICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfREJBVDNMQGgKLQlvcmkJcjQsIHI0LCBDRkdfREJBVDNMQGwKLQlhZGRpcwlyMywgcjAsIENGR19EQkFUM1VAaAotCW9yaQlyMywgcjMsIENGR19EQkFUM1VAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19EQkFUM0xAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfREJBVDNMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfREJBVDNVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0RCQVQzVUBsCiAJbXRzcHIJREJBVDNMLCByNAogCW10c3ByCURCQVQzVSwgcjMKIAlpc3luYwogCiAjaWZkZWYgQ09ORklHX0hJR0hfQkFUUwogCS8qIElCQVQgNCAqLwotCWFkZGlzICAgcjQsIHIwLCBDRkdfSUJBVDRMQGgKLQlvcmkgICAgIHI0LCByNCwgQ0ZHX0lCQVQ0TEBsCi0JYWRkaXMgICByMywgcjAsIENGR19JQkFUNFVAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfSUJBVDRVQGwKKwlhZGRpcyAgIHI0LCByMCwgQ09ORklHX1NZU19JQkFUNExAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQ0TEBsCisJYWRkaXMgICByMywgcjAsIENPTkZJR19TWVNfSUJBVDRVQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19JQkFUNFVAbAogCW10c3ByICAgSUJBVDRMLCByNAogCW10c3ByICAgSUJBVDRVLCByMwogCWlzeW5jCiAKIAkvKiBEQkFUIDQgKi8KLQlhZGRpcyAgIHI0LCByMCwgQ0ZHX0RCQVQ0TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19EQkFUNExAbAotCWFkZGlzICAgcjMsIHIwLCBDRkdfREJBVDRVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0RCQVQ0VUBsCisJYWRkaXMgICByNCwgcjAsIENPTkZJR19TWVNfREJBVDRMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19EQkFUNExAbAorCWFkZGlzICAgcjMsIHIwLCBDT05GSUdfU1lTX0RCQVQ0VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfREJBVDRVQGwKIAltdHNwciAgIERCQVQ0TCwgcjQKIAltdHNwciAgIERCQVQ0VSwgcjMKIAlpc3luYwogCiAJLyogSUJBVCA1ICovCi0JYWRkaXMgICByNCwgcjAsIENGR19JQkFUNUxAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfSUJBVDVMQGwKLQlhZGRpcyAgIHIzLCByMCwgQ0ZHX0lCQVQ1VUBoCi0Jb3JpICAgICByMywgcjMsIENGR19JQkFUNVVAbAorCWFkZGlzICAgcjQsIHIwLCBDT05GSUdfU1lTX0lCQVQ1TEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfSUJBVDVMQGwKKwlhZGRpcyAgIHIzLCByMCwgQ09ORklHX1NZU19JQkFUNVVAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQ1VUBsCiAJbXRzcHIgICBJQkFUNUwsIHI0CiAJbXRzcHIgICBJQkFUNVUsIHIzCiAJaXN5bmMKIAogCS8qIERCQVQgNSAqLwotCWFkZGlzICAgcjQsIHIwLCBDRkdfREJBVDVMQGgKLQlvcmkgICAgIHI0LCByNCwgQ0ZHX0RCQVQ1TEBsCi0JYWRkaXMgICByMywgcjAsIENGR19EQkFUNVVAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfREJBVDVVQGwKKwlhZGRpcyAgIHI0LCByMCwgQ09ORklHX1NZU19EQkFUNUxAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQ1TEBsCisJYWRkaXMgICByMywgcjAsIENPTkZJR19TWVNfREJBVDVVQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19EQkFUNVVAbAogCW10c3ByICAgREJBVDVMLCByNAogCW10c3ByICAgREJBVDVVLCByMwogCWlzeW5jCiAKIAkvKiBJQkFUIDYgKi8KLQlhZGRpcyAgIHI0LCByMCwgQ0ZHX0lCQVQ2TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19JQkFUNkxAbAotCWFkZGlzICAgcjMsIHIwLCBDRkdfSUJBVDZVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0lCQVQ2VUBsCisJYWRkaXMgICByNCwgcjAsIENPTkZJR19TWVNfSUJBVDZMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19JQkFUNkxAbAorCWFkZGlzICAgcjMsIHIwLCBDT05GSUdfU1lTX0lCQVQ2VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfSUJBVDZVQGwKIAltdHNwciAgIElCQVQ2TCwgcjQKIAltdHNwciAgIElCQVQ2VSwgcjMKIAlpc3luYwogCiAJLyogREJBVCA2ICovCi0JYWRkaXMgICByNCwgcjAsIENGR19EQkFUNkxAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfREJBVDZMQGwKLQlhZGRpcyAgIHIzLCByMCwgQ0ZHX0RCQVQ2VUBoCi0Jb3JpICAgICByMywgcjMsIENGR19EQkFUNlVAbAorCWFkZGlzICAgcjQsIHIwLCBDT05GSUdfU1lTX0RCQVQ2TEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfREJBVDZMQGwKKwlhZGRpcyAgIHIzLCByMCwgQ09ORklHX1NZU19EQkFUNlVAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0RCQVQ2VUBsCiAJbXRzcHIgICBEQkFUNkwsIHI0CiAJbXRzcHIgICBEQkFUNlUsIHIzCiAJaXN5bmMKIAogCS8qIElCQVQgNyAqLwotCWFkZGlzICAgcjQsIHIwLCBDRkdfSUJBVDdMQGgKLQlvcmkgICAgIHI0LCByNCwgQ0ZHX0lCQVQ3TEBsCi0JYWRkaXMgICByMywgcjAsIENGR19JQkFUN1VAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfSUJBVDdVQGwKKwlhZGRpcyAgIHI0LCByMCwgQ09ORklHX1NZU19JQkFUN0xAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQ3TEBsCisJYWRkaXMgICByMywgcjAsIENPTkZJR19TWVNfSUJBVDdVQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19JQkFUN1VAbAogCW10c3ByICAgSUJBVDdMLCByNAogCW10c3ByICAgSUJBVDdVLCByMwogCWlzeW5jCiAKIAkvKiBEQkFUIDcgKi8KLQlhZGRpcyAgIHI0LCByMCwgQ0ZHX0RCQVQ3TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19EQkFUN0xAbAotCWFkZGlzICAgcjMsIHIwLCBDRkdfREJBVDdVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0RCQVQ3VUBsCisJYWRkaXMgICByNCwgcjAsIENPTkZJR19TWVNfREJBVDdMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19EQkFUN0xAbAorCWFkZGlzICAgcjMsIHIwLCBDT05GSUdfU1lTX0RCQVQ3VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfREJBVDdVQGwKIAltdHNwciAgIERCQVQ3TCwgcjQKIAltdHNwciAgIERCQVQ3VSwgcjMKIAlpc3luYwpAQCAtNjEyLDE2ICs2MTIsMTYgQEAKIAltcglyMTAsIHI1CQkvKiBTYXZlIGNvcHkgb2YgRGVzdGluYXRpb24gQWRkcmVzcwkqLwogCiAJbXIJcjMsICByNQkJCQkvKiBEZXN0aW5hdGlvbiBBZGRyZXNzCSovCi0JbGlzCXI0LCBDRkdfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KLQlvcmkJcjQsIHI0LCBDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJbHd6CXI1LCBHT1QoX19pbml0X2VuZCkKIAlzdWIJcjUsIHI1LCByNAotCWxpCXI2LCBDRkdfQ0FDSEVMSU5FX1NJWkUJCS8qIENhY2hlIExpbmUgU2l6ZQkqLworCWxpCXI2LCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KIAogCS8qCiAJICogRml4IEdPVCBwb2ludGVyOgogCSAqCi0JICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDRkdfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKKwkgKiBOZXcgR09ULVBUUiA9IChvbGQgR09ULVBUUiAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKIAkgKgogCSAqIE9mZnNldDoKIAkgKi8KQEAgLTYzOSwxMSArNjM5LDExIEBACiAJYmwJYm9hcmRfcmVsb2NhdGVfcm9tCiAJc3luYwogCW1yCXIzLCByMTAJCQkJLyogRGVzdGluYXRpb24gQWRkcmVzcwkqLwotCWxpcwlyNCwgQ0ZHX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCi0Jb3JpCXI0LCByNCwgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWx3eglyNSwgR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LCByNSwgcjQKLQlsaQlyNiwgQ0ZHX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KKwlsaQlyNiwgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJLyogQ2FjaGUgTGluZSBTaXplCSovCiAjZWxzZQogCWNtcGx3CWNyMSxyMyxyNAogCWFkZGkJcjAscjUsMwpAQCAtODUxLDE0ICs4NTEsMTQgQEAKIAogCWJscgogCi0jaWZkZWYgQ0ZHX0lOSVRfUkFNX0xPQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKIGxvY2tfcmFtX2luX2NhY2hlOgogCS8qIEFsbG9jYXRlIEluaXRpYWwgUkFNIGluIGRhdGEgY2FjaGUuCiAJICovCi0JbGlzCXIzLCAoQ0ZHX0lOSVRfUkFNX0FERFIgJiB+MzEpQGgKLQlvcmkJcjMsIHIzLCAoQ0ZHX0lOSVRfUkFNX0FERFIgJiB+MzEpQGwKLQlsaQlyMiwgKChDRkdfSU5JVF9SQU1fRU5EICYgfjMxKSArIFwKLQkJICAgICAoQ0ZHX0lOSVRfUkFNX0FERFIgJiAzMSkgKyAzMSkgLyAzMgorCWxpcwlyMywgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIH4zMSlAaAorCW9yaQlyMywgcjMsIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgJiB+MzEpQGwKKwlsaQlyMiwgKChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAmIH4zMSkgKyBcCisJCSAgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIDMxKSArIDMxKSAvIDMyCiAJbXRjdHIJcjIKIDE6CiAJZGNieglyMCwgcjMKQEAgLTg3NiwxMCArODc2LDEwIEBACiAuZ2xvYmwgdW5sb2NrX3JhbV9pbl9jYWNoZQogdW5sb2NrX3JhbV9pbl9jYWNoZToKIAkvKiBpbnZhbGlkYXRlIHRoZSBJTklUX1JBTSBzZWN0aW9uICovCi0JbGlzCXIzLCAoQ0ZHX0lOSVRfUkFNX0FERFIgJiB+MzEpQGgKLQlvcmkJcjMsIHIzLCAoQ0ZHX0lOSVRfUkFNX0FERFIgJiB+MzEpQGwKLQlsaQlyMiwgKChDRkdfSU5JVF9SQU1fRU5EICYgfjMxKSArIFwKLQkJICAgICAoQ0ZHX0lOSVRfUkFNX0FERFIgJiAzMSkgKyAzMSkgLyAzMgorCWxpcwlyMywgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIH4zMSlAaAorCW9yaQlyMywgcjMsIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgJiB+MzEpQGwKKwlsaQlyMiwgKChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAmIH4zMSkgKyBcCisJCSAgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIDMxKSArIDMxKSAvIDMyCiAJbXRjdHIJcjIKIDE6CWljYmkJcjAsIHIzCiAJYWRkaQlyMywgcjMsIDMyCmRpZmYgLS1naXQgYS9jcHUvYXJtMTEzNi9jcHUuYyBiL2NwdS9hcm0xMTM2L2NwdS5jCmluZGV4IGMyN2Y4Y2QuLjA0ODYxNjMgMTAwNjQ0Ci0tLSBhL2NwdS9hcm0xMTM2L2NwdS5jCisrKyBiL2NwdS9hcm0xMTM2L2NwdS5jCkBAIC04OSw3ICs4OSw3IEBACiAJICogc2V0dXAgdXAgc3RhY2tzIGlmIG5lY2Vzc2FyeQogCSAqLwogI2lmZGVmIENPTkZJR19VU0VfSVJRCi0JSVJRX1NUQUNLX1NUQVJUID0gX2FybWJvb3Rfc3RhcnQgLSBDRkdfTUFMTE9DX0xFTiAtIENGR19HQkxfREFUQV9TSVpFIC0gNDsKKwlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENPTkZJR19TWVNfTUFMTE9DX0xFTiAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAtIDQ7CiAJRklRX1NUQUNLX1NUQVJUID0gSVJRX1NUQUNLX1NUQVJUIC0gQ09ORklHX1NUQUNLU0laRV9JUlE7CiAjZW5kaWYKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2NwdS9hcm0xMTM2L214MzEvaW50ZXJydXB0cy5jIGIvY3B1L2FybTExMzYvbXgzMS9pbnRlcnJ1cHRzLmMKaW5kZXggY2Q1NzA3MS4uYjM2YzU4YyAxMDA2NDQKLS0tIGEvY3B1L2FybTExMzYvbXgzMS9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L2FybTExMzYvbXgzMS9pbnRlcnJ1cHRzLmMKQEAgLTM4LDE2ICszOCwxNiBAQAogI2RlZmluZSBHUFRDUl9DTEtTT1VSQ0VfMzIJKDQgPDwgNikJLyogQ2xvY2sgc291cmNlCQkqLwogI2RlZmluZSBHUFRDUl9URU4JCTEJCS8qIFRpbWVyIGVuYWJsZQkJKi8KIAotLyogInRpbWUiIGlzIG1lYXN1cmVkIGluIDEgLyBDRkdfSFogc2Vjb25kcywgInRpY2siIGlzIGludGVybmFsIHRpbWVyIHBlcmlvZCAqLworLyogInRpbWUiIGlzIG1lYXN1cmVkIGluIDEgLyBDT05GSUdfU1lTX0haIHNlY29uZHMsICJ0aWNrIiBpcyBpbnRlcm5hbCB0aW1lciBwZXJpb2QgKi8KICNpZmRlZiBDT05GSUdfTVgzMV9USU1FUl9ISUdIX1BSRUNJU0lPTgogLyogfjAuNCUgZXJyb3IgLSBtZWFzdXJlZCB3aXRoIHN0b3Atd2F0Y2ggb24gMTAwcyBib290LWRlbGF5ICovCi0jZGVmaW5lIFRJQ0tfVE9fVElNRSh0KQkoKHQpICogQ0ZHX0haIC8gQ09ORklHX01YMzFfQ0xLMzIpCi0jZGVmaW5lIFRJTUVfVE9fVElDSyh0KQkoKHVuc2lnbmVkIGxvbmcgbG9uZykodCkgKiBDT05GSUdfTVgzMV9DTEszMiAvIENGR19IWikKKyNkZWZpbmUgVElDS19UT19USU1FKHQpCSgodCkgKiBDT05GSUdfU1lTX0haIC8gQ09ORklHX01YMzFfQ0xLMzIpCisjZGVmaW5lIFRJTUVfVE9fVElDSyh0KQkoKHVuc2lnbmVkIGxvbmcgbG9uZykodCkgKiBDT05GSUdfTVgzMV9DTEszMiAvIENPTkZJR19TWVNfSFopCiAjZGVmaW5lIFVTX1RPX1RJQ0sodCkJKCgodW5zaWduZWQgbG9uZyBsb25nKSh0KSAqIENPTkZJR19NWDMxX0NMSzMyICsgXAogCQkJOTk5OTk5KSAvIDEwMDAwMDApCiAjZWxzZQogLyogfjIlIGVycm9yICovCi0jZGVmaW5lIFRJQ0tfUEVSX1RJTUUJKChDT05GSUdfTVgzMV9DTEszMiArIENGR19IWiAvIDIpIC8gQ0ZHX0haKQorI2RlZmluZSBUSUNLX1BFUl9USU1FCSgoQ09ORklHX01YMzFfQ0xLMzIgKyBDT05GSUdfU1lTX0haIC8gMikgLyBDT05GSUdfU1lTX0haKQogI2RlZmluZSBVU19QRVJfVElDSwkoMTAwMDAwMCAvIENPTkZJR19NWDMxX0NMSzMyKQogI2RlZmluZSBUSUNLX1RPX1RJTUUodCkJKCh0KSAvIFRJQ0tfUEVSX1RJTUUpCiAjZGVmaW5lIFRJTUVfVE9fVElDSyh0KQkoKHVuc2lnbmVkIGxvbmcgbG9uZykodCkgKiBUSUNLX1BFUl9USU1FKQpAQCAtMTA0LDcgKzEwNCw3IEBACiAJLyoKIAkgKiBnZXRfdGlja3MoKSByZXR1cm5zIGEgbG9uZyBsb25nICg2NCBiaXQpLCBpdCB3cmFwcyBpbgogCSAqIDJeNjQgLyBDT05GSUdfTVgzMV9DTEszMiA9IDJeNjQgLyAyXjE1ID0gMl40OSB+IDUgKiAxMF4xNCAocykgfgotCSAqIDUgKiAxMF45IGRheXMuLi4gYW5kIGdldF90aWNrcygpICogQ0ZHX0haIHdyYXBzIGluCisJICogNSAqIDEwXjkgZGF5cy4uLiBhbmQgZ2V0X3RpY2tzKCkgKiBDT05GSUdfU1lTX0haIHdyYXBzIGluCiAJICogNSAqIDEwXjYgZGF5cyAtIGxvbmcgZW5vdWdoLgogCSAqLwogCXJldHVybiBUSUNLX1RPX1RJTUUoZ2V0X3RpY2tzKCkpOwpkaWZmIC0tZ2l0IGEvY3B1L2FybTExMzYvbXgzMS9zZXJpYWwuYyBiL2NwdS9hcm0xMTM2L214MzEvc2VyaWFsLmMKaW5kZXggZjQ5ODU5OS4uZTAyNWU5NCAxMDA2NDQKLS0tIGEvY3B1L2FybTExMzYvbXgzMS9zZXJpYWwuYworKysgYi9jcHUvYXJtMTEzNi9teDMxL3NlcmlhbC5jCkBAIC0yNSwxOCArMjUsMTggQEAKIAogI2RlZmluZSBfX1JFRyh4KSAgICAgKCooKHZvbGF0aWxlIHUzMiAqKSh4KSkpCiAKLSNpZmRlZiBDRkdfTVgzMV9VQVJUMQorI2lmZGVmIENPTkZJR19TWVNfTVgzMV9VQVJUMQogI2RlZmluZSBVQVJUX1BIWVMgMHg0M2Y5MDAwMAotI2VsaWYgZGVmaW5lZChDRkdfTVgzMV9VQVJUMikKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19NWDMxX1VBUlQyKQogI2RlZmluZSBVQVJUX1BIWVMgMHg0M2Y5NDAwMAotI2VsaWYgZGVmaW5lZChDRkdfTVgzMV9VQVJUMykKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19NWDMxX1VBUlQzKQogI2RlZmluZSBVQVJUX1BIWVMgMHg1MDAwYzAwMAotI2VsaWYgZGVmaW5lZChDRkdfTVgzMV9VQVJUNCkKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19NWDMxX1VBUlQ0KQogI2RlZmluZSBVQVJUX1BIWVMgMHg0M2ZiMDAwMAotI2VsaWYgZGVmaW5lZChDRkdfTVgzMV9VQVJUNSkKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19NWDMxX1VBUlQ1KQogI2RlZmluZSBVQVJUX1BIWVMgMHg0M2ZiNDAwMAogI2Vsc2UKLSNlcnJvciAiZGVmaW5lIENGR19NWDMxX1VBUlR4IHRvIHVzZSB0aGUgbXgzMSBVQVJUIGRyaXZlciIKKyNlcnJvciAiZGVmaW5lIENPTkZJR19TWVNfTVgzMV9VQVJUeCB0byB1c2UgdGhlIG14MzEgVUFSVCBkcml2ZXIiCiAjZW5kaWYKIAogLyogUmVnaXN0ZXIgZGVmaW5pdGlvbnMgKi8KZGlmZiAtLWdpdCBhL2NwdS9hcm0xMTM2L29tYXAyNHh4L2ludGVycnVwdHMuYyBiL2NwdS9hcm0xMTM2L29tYXAyNHh4L2ludGVycnVwdHMuYwppbmRleCBiOWE4YjkzLi5mYjAyYTQ5IDEwMDY0NAotLS0gYS9jcHUvYXJtMTEzNi9vbWFwMjR4eC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L2FybTExMzYvb21hcDI0eHgvaW50ZXJydXB0cy5jCkBAIC0zNyw3ICszNyw3IEBACiAjZGVmaW5lIFRJTUVSX0xPQURfVkFMIDAKIAogLyogbWFjcm8gdG8gcmVhZCB0aGUgMzIgYml0IHRpbWVyICovCi0jZGVmaW5lIFJFQURfVElNRVIgKCooKHZvbGF0aWxlIHVsb25nICopKENGR19USU1FUkJBU0UrVENSUikpKQorI2RlZmluZSBSRUFEX1RJTUVSICgqKCh2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX1RJTUVSQkFTRStUQ1JSKSkpCiAKIHN0YXRpYyB1bG9uZyB0aW1lc3RhbXA7CiBzdGF0aWMgdWxvbmcgbGFzdGluYzsKQEAgLTQ4LDkgKzQ4LDkgQEAKIAlpbnQzMl90IHZhbDsKIAogCS8qIFN0YXJ0IHRoZSBjb3VudGVyIHRpY2tpbmcgdXAgKi8KLQkqKChpbnQzMl90ICopIChDRkdfVElNRVJCQVNFICsgVExEUikpID0gVElNRVJfTE9BRF9WQUw7CS8qIHJlbG9hZCB2YWx1ZSBvbiBvdmVyZmxvdyovCi0JdmFsID0gKENGR19QVlQgPDwgMikgfCBCSVQ1IHwgQklUMSB8IEJJVDA7CQkvKiBtYXNrIHRvIGVuYWJsZSB0aW1lciovCi0JKigoaW50MzJfdCAqKSAoQ0ZHX1RJTUVSQkFTRSArIFRDTFIpKSA9IHZhbDsJLyogc3RhcnQgdGltZXIgKi8KKwkqKChpbnQzMl90ICopIChDT05GSUdfU1lTX1RJTUVSQkFTRSArIFRMRFIpKSA9IFRJTUVSX0xPQURfVkFMOwkvKiByZWxvYWQgdmFsdWUgb24gb3ZlcmZsb3cqLworCXZhbCA9IChDT05GSUdfU1lTX1BWVCA8PCAyKSB8IEJJVDUgfCBCSVQxIHwgQklUMDsJCS8qIG1hc2sgdG8gZW5hYmxlIHRpbWVyKi8KKwkqKChpbnQzMl90ICopIChDT05GSUdfU1lTX1RJTUVSQkFTRSArIFRDTFIpKSA9IHZhbDsJLyogc3RhcnQgdGltZXIgKi8KIAogCXJlc2V0X3RpbWVyX21hc2tlZCgpOyAvKiBpbml0IHRoZSB0aW1lc3RhbXAgYW5kIGxhc3RpbmMgdmFsdWUgKi8KIApAQCAtODEsMTAgKzgxLDEwIEBACiAKIAlpZiAodXNlYyA+PSAxMDAwKSB7CQkJLyogaWYgImJpZyIgbnVtYmVyLCBzcHJlYWQgbm9ybWFsaXphdGlvbiB0byBzZWNvbmRzICovCiAJCXRtbyA9IHVzZWMgLyAxMDAwOwkJLyogc3RhcnQgdG8gbm9ybWFsaXplIGZvciB1c2VjIHRvIHRpY2tzIHBlciBzZWMgKi8KLQkJdG1vICo9IENGR19IWjsJCQkvKiBmaW5kIG51bWJlciBvZiAidGlja3MiIHRvIHdhaXQgdG8gYWNoaWV2ZSB0YXJnZXQgKi8KKwkJdG1vICo9IENPTkZJR19TWVNfSFo7CQkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCiAJCXRtbyAvPSAxMDAwOwkJCS8qIGZpbmlzaCBub3JtYWxpemUuICovCiAJfSBlbHNlIHsJCQkJCS8qIGVsc2Ugc21hbGwgbnVtYmVyLCBkb24ndCBraWxsIGl0IHByaW9yIHRvIEhaIG11bHRpcGx5ICovCi0JCXRtbyA9IHVzZWMgKiBDRkdfSFo7CisJCXRtbyA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gKDEwMDAqMTAwMCk7CiAJfQogCkBAIC0xMjUsMTAgKzEyNSwxMCBAQAogCiAJaWYgKHVzZWMgPj0gMTAwMCkgewkJCS8qIGlmICJiaWciIG51bWJlciwgc3ByZWFkIG5vcm1hbGl6YXRpb24gdG8gc2Vjb25kcyAqLwogCQl0bW8gPSB1c2VjIC8gMTAwMDsJCS8qIHN0YXJ0IHRvIG5vcm1hbGl6ZSBmb3IgdXNlYyB0byB0aWNrcyBwZXIgc2VjICovCi0JCXRtbyAqPSBDRkdfSFo7CQkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCisJCXRtbyAqPSBDT05GSUdfU1lTX0haOwkJCS8qIGZpbmQgbnVtYmVyIG9mICJ0aWNrcyIgdG8gd2FpdCB0byBhY2hpZXZlIHRhcmdldCAqLwogCQl0bW8gLz0gMTAwMDsJCQkvKiBmaW5pc2ggbm9ybWFsaXplLiAqLwogCX0gZWxzZSB7CQkJCQkvKiBlbHNlIHNtYWxsIG51bWJlciwgZG9uJ3Qga2lsbCBpdCBwcmlvciB0byBIWiBtdWx0aXBseSAqLwotCQl0bW8gPSB1c2VjICogQ0ZHX0haOworCQl0bW8gPSB1c2VjICogQ09ORklHX1NZU19IWjsKIAkJdG1vIC89ICgxMDAwKjEwMDApOwogCX0KIAllbmR0aW1lID0gZ2V0X3RpbWVyX21hc2tlZCAoKSArIHRtbzsKQEAgLTE1NCw2ICsxNTQsNiBAQAogdWxvbmcgZ2V0X3RiY2xrICh2b2lkKQogewogCXVsb25nIHRiY2xrOwotCXRiY2xrID0gQ0ZHX0haOworCXRiY2xrID0gQ09ORklHX1NZU19IWjsKIAlyZXR1cm4gdGJjbGs7CiB9CmRpZmYgLS1naXQgYS9jcHUvYXJtMTEzNi9zdGFydC5TIGIvY3B1L2FybTExMzYvc3RhcnQuUwppbmRleCA1MWI2NjRkLi5lNjIyMzM4IDEwMDY0NAotLS0gYS9jcHUvYXJtMTEzNi9zdGFydC5TCisrKyBiL2NwdS9hcm0xMTM2L3N0YXJ0LlMKQEAgLTE3OCw4ICsxNzgsOCBAQAogI2lmZGVmIENPTkZJR19PTkVOQU5EX0lQTAogCXN1YglzcCwgcjAsICMxMjgJCS8qIGxlYXZlIDMyIHdvcmRzIGZvciBhYm9ydC1zdGFjayAgICovCiAjZWxzZQotCXN1YglyMCwgcjAsICNDRkdfTUFMTE9DX0xFTiAvKiBtYWxsb2MgYXJlYQkJCSAgICAqLwotCXN1YglyMCwgcjAsICNDRkdfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8JCQkgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19NQUxMT0NfTEVOIC8qIG1hbGxvYyBhcmVhCQkJICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8JCQkgICAgKi8KICNpZmRlZiBDT05GSUdfVVNFX0lSUQogCXN1YglyMCwgcjAsICMoQ09ORklHX1NUQUNLU0laRV9JUlErQ09ORklHX1NUQUNLU0laRV9GSVEpCiAjZW5kaWYKQEAgLTI5MCw4ICsyOTAsOCBAQAogCXN0bWlhCXNwLCB7cjAgLSByMTJ9CQkJQCBTYXZlIHVzZXIgcmVnaXN0ZXJzIChub3cgaW4gc3ZjIG1vZGUpIHIwLXIxMgogCiAJbGRyCXIyLCBfYXJtYm9vdF9zdGFydAotCXN1YglyMiwgcjIsICMoQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIyLCByMiwgIyhDRkdfR0JMX0RBVEFfU0laRSs4KQlAIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjaworCXN1YglyMiwgcjIsICMoQ09ORklHX1NZU19NQUxMT0NfTEVOKQorCXN1YglyMiwgcjIsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKzgpCUAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCiAJbGRtaWEJcjIsIHtyMiAtIHIzfQkJCUAgZ2V0IHZhbHVlcyBmb3IgImFib3J0ZWQiIHBjIGFuZCBjcHNyIChpbnRvIHBhcm0gcmVncykKIAlhZGQJcjAsIHNwLCAjU19GUkFNRV9TSVpFCQlAIGdyYWIgcG9pbnRlciB0byBvbGQgc3RhY2sKIApAQCAtMzIzLDggKzMyMyw4IEBACiAKIAkubWFjcm8gZ2V0X2JhZF9zdGFjawogCWxkcglyMTMsIF9hcm1ib290X3N0YXJ0CQlAIHNldHVwIG91ciBtb2RlIHN0YWNrIChlbnRlciBpbiBiYW5rZWQgbW9kZSkKLQlzdWIJcjEzLCByMTMsICMoQ0ZHX01BTExPQ19MRU4pCUAgbW92ZSBwYXN0IG1hbGxvYyBwb29sCi0Jc3ViCXIxMywgcjEzLCAjKENGR19HQkxfREFUQV9TSVpFKzgpIEAgbW92ZSB0byByZXNlcnZlZCBhIGNvdXBsZSBzcG90cyBmb3IgYWJvcnQgc3RhY2sKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NZU19NQUxMT0NfTEVOKQlAIG1vdmUgcGFzdCBtYWxsb2MgcG9vbAorCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkgQCBtb3ZlIHRvIHJlc2VydmVkIGEgY291cGxlIHNwb3RzIGZvciBhYm9ydCBzdGFjawogCiAJc3RyCWxyLCBbcjEzXQkJCUAgc2F2ZSBjYWxsZXIgbHIgaW4gcG9zaXRpb24gMCBvZiBzYXZlZCBzdGFjawogCW1ycwlsciwgc3BzcgkJCUAgZ2V0IHRoZSBzcHNyCkBAIC0zNDEsOCArMzQxLDggQEAKIAlzdWIJcjEzLCByMTMsICM0CQkJQCBzcGFjZSBvbiBjdXJyZW50IHN0YWNrIGZvciBzY3JhdGNoIHJlZy4KIAlzdHIJcjAsIFtyMTNdCQkJQCBzYXZlIFIwJ3MgdmFsdWUuCiAJbGRyCXIwLCBfYXJtYm9vdF9zdGFydAkJQCBnZXQgZGF0YSByZWdpb25zIHN0YXJ0Ci0Jc3ViCXIwLCByMCwgIyhDRkdfTUFMTE9DX0xFTikJQCBtb3ZlIHBhc3QgbWFsbG9jIHBvb2wKLQlzdWIJcjAsIHIwLCAjKENGR19HQkxfREFUQV9TSVpFKzgpCUAgbW92ZSBwYXN0IGdibCBhbmQgYSBjb3VwbGUgc3BvdHMgZm9yIGFib3J0IHN0YWNrCisJc3ViCXIwLCByMCwgIyhDT05GSUdfU1lTX01BTExPQ19MRU4pCUAgbW92ZSBwYXN0IG1hbGxvYyBwb29sCisJc3ViCXIwLCByMCwgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkJQCBtb3ZlIHBhc3QgZ2JsIGFuZCBhIGNvdXBsZSBzcG90cyBmb3IgYWJvcnQgc3RhY2sKIAlzdHIJbHIsIFtyMF0JCQlAIHNhdmUgY2FsbGVyIGxyIGluIHBvc2l0aW9uIDAgb2Ygc2F2ZWQgc3RhY2sKIAltcnMJcjAsIHNwc3IJCQlAIGdldCB0aGUgc3BzcgogCXN0cglsciwgW3IwLCAjNF0JCQlAIHNhdmUgc3BzciBpbiBwb3NpdGlvbiAxIG9mIHNhdmVkIHN0YWNrCmRpZmYgLS1naXQgYS9jcHUvYXJtMTE3Ni9zM2M2NHh4L2ludGVycnVwdHMuYyBiL2NwdS9hcm0xMTc2L3MzYzY0eHgvaW50ZXJydXB0cy5jCmluZGV4IGUzNDM2OWYuLjgzZjM4MDYgMTAwNjQ0Ci0tLSBhL2NwdS9hcm0xMTc2L3MzYzY0eHgvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9hcm0xMTc2L3MzYzY0eHgvaW50ZXJydXB0cy5jCkBAIC0xNTAsNyArMTUwLDcgQEAKIHVsb25nIGdldF90aW1lcl9tYXNrZWQodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIGxvbmcgcmVzID0gZ2V0X3RpY2tzKCk7Ci0JZG9fZGl2IChyZXMsICh0aW1lcl9sb2FkX3ZhbCAvICgxMDAgKiBDRkdfSFopKSk7CisJZG9fZGl2IChyZXMsICh0aW1lcl9sb2FkX3ZhbCAvICgxMDAgKiBDT05GSUdfU1lTX0haKSkpOwogCXJldHVybiByZXM7CiB9CiAKQEAgLTE2MSw3ICsxNjEsNyBAQAogCiB2b2lkIHNldF90aW1lcih1bG9uZyB0KQogewotCXRpbWVzdGFtcCA9IHQgKiAodGltZXJfbG9hZF92YWwgLyAoMTAwICogQ0ZHX0haKSk7CisJdGltZXN0YW1wID0gdCAqICh0aW1lcl9sb2FkX3ZhbCAvICgxMDAgKiBDT05GSUdfU1lTX0haKSk7CiB9CiAKIHZvaWQgdWRlbGF5KHVuc2lnbmVkIGxvbmcgdXNlYykKZGlmZiAtLWdpdCBhL2NwdS9hcm0xMTc2L3N0YXJ0LlMgYi9jcHUvYXJtMTE3Ni9zdGFydC5TCmluZGV4IDk5MTI3N2YuLmNiODkxZGYgMTAwNjQ0Ci0tLSBhL2NwdS9hcm0xMTc2L3N0YXJ0LlMKKysrIGIvY3B1L2FybTExNzYvc3RhcnQuUwpAQCAtMzcsOCArMzcsOCBAQAogI2VuZGlmCiAjaW5jbHVkZSA8czNjNjQwMC5oPgogCi0jaWYgIWRlZmluZWQoQ09ORklHX0VOQUJMRV9NTVUpICYmICFkZWZpbmVkKENGR19QSFlfVUJPT1RfQkFTRSkKLSNkZWZpbmUgQ0ZHX1BIWV9VQk9PVF9CQVNFCUNGR19VQk9PVF9CQVNFCisjaWYgIWRlZmluZWQoQ09ORklHX0VOQUJMRV9NTVUpICYmICFkZWZpbmVkKENPTkZJR19TWVNfUEhZX1VCT09UX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUEhZX1VCT09UX0JBU0UJQ09ORklHX1NZU19VQk9PVF9CQVNFCiAjZW5kaWYKIAogLyoKQEAgLTEwNSw3ICsxMDUsNyBAQAogICogYnkgc2NzdWguCiAgKi8KIF9URVhUX1BIWV9CQVNFOgotCS53b3JkCUNGR19QSFlfVUJPT1RfQkFTRQorCS53b3JkCUNPTkZJR19TWVNfUEhZX1VCT09UX0JBU0UKIAogLmdsb2JsIF9hcm1ib290X3N0YXJ0CiBfYXJtYm9vdF9zdGFydDoKQEAgLTIwOSw3ICsyMDksNyBAQAogCiAJLyogU2V0IHRoZSBUVEIgcmVnaXN0ZXIgKi8KIAlsZHIJcjAsIF9tbXVfdGFibGVfYmFzZQotCWxkcglyMSwgPUNGR19QSFlfVUJPT1RfQkFTRQorCWxkcglyMSwgPUNPTkZJR19TWVNfUEhZX1VCT09UX0JBU0UKIAlsZHIJcjIsID0weGZmZjAwMDAwCiAJYmljCXIwLCByMCwgcjIKIAlvcnIJcjEsIHIwLCByMQpAQCAtMjQyLDExICsyNDIsMTEgQEAKIAkvKiBTZXQgdXAgdGhlIHN0YWNrCQkJCQkJICAgICovCiBzdGFja19zZXR1cDoKICNpZmRlZiBDT05GSUdfTUVNT1JZX1VQUEVSX0NPREUKLQlsZHIJc3AsID0oQ0ZHX1VCT09UX0JBU0UgKyBDRkdfVUJPT1RfU0laRSAtIDB4YykKKwlsZHIJc3AsID0oQ09ORklHX1NZU19VQk9PVF9CQVNFICsgQ09ORklHX1NZU19VQk9PVF9TSVpFIC0gMHhjKQogI2Vsc2UKIAlsZHIJcjAsIF9URVhUX0JBU0UJCS8qIHVwcGVyIDEyOCBLaUI6IHJlbG9jYXRlZCB1Ym9vdCAgICovCi0Jc3ViCXIwLCByMCwgI0NGR19NQUxMT0NfTEVOCS8qIG1hbGxvYyBhcmVhICAgICAgICAgICAgICAgICAgICAgICovCi0Jc3ViCXIwLCByMCwgI0NGR19HQkxfREFUQV9TSVpFIC8qIGJkaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfTUFMTE9DX0xFTgkvKiBtYWxsb2MgYXJlYSAgICAgICAgICAgICAgICAgICAgICAqLworCXN1YglyMCwgcjAsICNDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgLyogYmRpbmZvICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAlzdWIJc3AsIHIwLCAjMTIJCS8qIGxlYXZlIDMgd29yZHMgZm9yIGFib3J0LXN0YWNrICAgICovCiAKICNlbmRpZgpAQCAtMzU3LDkgKzM1Nyw5IEBACiAJc3RtaWEJc3AsIHtyMCAtIHIxMn0KIAogCWxkcglyMiwgX2FybWJvb3Rfc3RhcnQKLQlzdWIJcjIsIHIyLCAjKENGR19NQUxMT0NfTEVOKQorCXN1YglyMiwgcjIsICMoQ09ORklHX1NZU19NQUxMT0NfTEVOKQogCS8qIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjayAqLwotCXN1YglyMiwgcjIsICMoQ0ZHX0dCTF9EQVRBX1NJWkUrOCkKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KQogCS8qIGdldCB2YWx1ZXMgZm9yICJhYm9ydGVkIiBwYyBhbmQgY3BzciAoaW50byBwYXJtIHJlZ3MpICovCiAJbGRtaWEJcjIsIHtyMiAtIHIzfQogCS8qIGdyYWIgcG9pbnRlciB0byBvbGQgc3RhY2sgKi8KQEAgLTM3Nyw5ICszNzcsOSBAQAogCS8qIHNldHVwIG91ciBtb2RlIHN0YWNrIChlbnRlciBpbiBiYW5rZWQgbW9kZSkgKi8KIAlsZHIJcjEzLCBfYXJtYm9vdF9zdGFydAogCS8qIG1vdmUgcGFzdCBtYWxsb2MgcG9vbCAqLwotCXN1YglyMTMsIHIxMywgIyhDRkdfTUFMTE9DX0xFTikKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NZU19NQUxMT0NfTEVOKQogCS8qIG1vdmUgdG8gcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgZm9yIGFib3J0IHN0YWNrICovCi0Jc3ViCXIxMywgcjEzLCAjKENGR19HQkxfREFUQV9TSVpFICsgOCkKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICsgOCkKIAogCS8qIHNhdmUgY2FsbGVyIGxyIGluIHBvc2l0aW9uIDAgb2Ygc2F2ZWQgc3RhY2sgKi8KIAlzdHIJbHIsIFtyMTNdCkBAIC00MDcsOSArNDA3LDkgQEAKIAkvKiBnZXQgZGF0YSByZWdpb25zIHN0YXJ0ICovCiAJbGRyCXIwLCBfYXJtYm9vdF9zdGFydAogCS8qIG1vdmUgcGFzdCBtYWxsb2MgcG9vbCAqLwotCXN1YglyMCwgcjAsICMoQ0ZHX01BTExPQ19MRU4pCisJc3ViCXIwLCByMCwgIyhDT05GSUdfU1lTX01BTExPQ19MRU4pCiAJLyogbW92ZSBwYXN0IGdibCBhbmQgYSBjb3VwbGUgc3BvdHMgZm9yIGFib3J0IHN0YWNrICovCi0Jc3ViCXIwLCByMCwgIyhDRkdfR0JMX0RBVEFfU0laRSArIDgpCisJc3ViCXIwLCByMCwgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgKyA4KQogCS8qIHNhdmUgY2FsbGVyIGxyIGluIHBvc2l0aW9uIDAgb2Ygc2F2ZWQgc3RhY2sgKi8KIAlzdHIJbHIsIFtyMF0KIAkvKiBnZXQgdGhlIHNwc3IgKi8KZGlmZiAtLWdpdCBhL2NwdS9hcm03MjB0L2NwdS5jIGIvY3B1L2FybTcyMHQvY3B1LmMKaW5kZXggNjBjMWFhOS4uNWFjOGY1OSAxMDA2NDQKLS0tIGEvY3B1L2FybTcyMHQvY3B1LmMKKysrIGIvY3B1L2FybTcyMHQvY3B1LmMKQEAgLTQxLDcgKzQxLDcgQEAKIAkgKiBzZXR1cCB1cCBzdGFja3MgaWYgbmVjZXNzYXJ5CiAJICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKLQlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOIC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSA0OworCUlSUV9TVEFDS19TVEFSVCA9IF9hcm1ib290X3N0YXJ0IC0gQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gNDsKIAlGSVFfU1RBQ0tfU1RBUlQgPSBJUlFfU1RBQ0tfU1RBUlQgLSBDT05GSUdfU1RBQ0tTSVpFX0lSUTsKICNlbmRpZgogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvY3B1L2FybTcyMHQvaW50ZXJydXB0cy5jIGIvY3B1L2FybTcyMHQvaW50ZXJydXB0cy5jCmluZGV4IDk4NTQwMTYuLjM5ZWQzNDUgMTAwNjQ0Ci0tLSBhL2NwdS9hcm03MjB0L2ludGVycnVwdHMuYworKysgYi9jcHUvYXJtNzIwdC9pbnRlcnJ1cHRzLmMKQEAgLTk1LDcgKzk1LDcgQEAKIAl1bnNpZ25lZCBpbnQgKnBUaW1lID0gKHVuc2lnbmVkIGludCAqKWRhdGE7CiAKIAkoKnBUaW1lKSsrOwotCWlmICggISgqcFRpbWUgJSAoQ0ZHX0haLzQpKSkgeworCWlmICggISgqcFRpbWUgJSAoQ09ORklHX1NZU19IWi80KSkpIHsKIAkJLyogdG9nZ2xlIExFRCAwICovCiAJCVBVVF9SRUcoIFJFR19JT1BEQVRBLCBHRVRfUkVHKFJFR19JT1BEQVRBKSBeIDB4MSk7CiAJfQpAQCAtMTE4LDcgKzExOCw3IEBACiAJSVJRRU4gPSAwOwogCiAJLyogb3BlcmF0ZSB0aW1lciAyIGluIG5vbi1wcmVzY2FsZSBtb2RlICovCi0JVE0yQ1RSTCA9ICggTkVUQVJNX0dFTl9USU1FUl9TRVRfSFooQ0ZHX0haKSB8CisJVE0yQ1RSTCA9ICggTkVUQVJNX0dFTl9USU1FUl9TRVRfSFooQ09ORklHX1NZU19IWikgfAogCQkgICAgTkVUQVJNX0dFTl9UQ1RMX0VOQUJMRSB8CiAJCSAgICBORVRBUk1fR0VOX1RDVExfSU5JVF9DT1VOVChUSU1FUl9MT0FEX1ZBTCkpOwogCkBAIC0xNjYsOSArMTY2LDkgQEAKIAogCS8qCiAJICogTG9hZCBUaW1lciBkYXRhIHJlZ2lzdGVyIHdpdGggY291bnQgZG93biB2YWx1ZS4KLQkgKiBjb3VudF9kb3duX3ZhbCA9IENGR19TWVNfQ0xLX0ZSRVEvQ0ZHX0haCisJICogY291bnRfZG93bl92YWwgPSBDT05GSUdfU1lTX1NZU19DTEtfRlJFUS9DT05GSUdfU1lTX0haCiAJICovCi0JUFVUX1JFRyggUkVHX1REQVRBMCwgKENGR19TWVNfQ0xLX0ZSRVEgLyBDRkdfSFopKTsKKwlQVVRfUkVHKCBSRUdfVERBVEEwLCAoQ09ORklHX1NZU19TWVNfQ0xLX0ZSRVEgLyBDT05GSUdfU1lTX0haKSk7CiAKIAkvKgogCSAqIEVuYWJsZSBnbG9iYWwgaW50ZXJydXB0CkBAIC0xODEsNyArMTgxLDcgQEAKICNlbGlmIGRlZmluZWQoQ09ORklHX0xQQzIyOTIpCiAJUFVUMzIoVDBJUiwgMCk7CQkvKiBkaXNhYmxlIGFsbCB0aW1lcjAgaW50ZXJydXB0cyAqLwogCVBVVDMyKFQwVENSLCAwKTsJLyogZGlzYWJsZSB0aW1lcjAgKi8KLQlQVVQzMihUMFBSLCBDRkdfU1lTX0NMS19GUkVRIC8gQ0ZHX0haKTsKKwlQVVQzMihUMFBSLCBDT05GSUdfU1lTX1NZU19DTEtfRlJFUSAvIENPTkZJR19TWVNfSFopOwogCVBVVDMyKFQwTUNSLCAwKTsKIAlQVVQzMihUMFRDLCAwKTsKIAlQVVQzMihUMFRDUiwgMSk7CS8qIGVuYWJsZSB0aW1lcjAgKi8KQEAgLTIyMyw3ICsyMjMsNyBAQAogCXVsb25nIHRtbzsKIAogCXRtbyA9IHVzZWMgLyAxMDAwOwotCXRtbyAqPSBDRkdfSFo7CisJdG1vICo9IENPTkZJR19TWVNfSFo7CiAJdG1vIC89IDEwMDA7CiAKIAl0bW8gKz0gZ2V0X3RpbWVyICgwKTsKQEAgLTI2OCwxMCArMjY4LDEwIEBACiAKIAlpZiAodXNlYyA+PSAxMDAwKSB7CiAJCXRtbyA9IHVzZWMgLyAxMDAwOwotCQl0bW8gKj0gQ0ZHX0haOworCQl0bW8gKj0gQ09ORklHX1NZU19IWjsKIAkJdG1vIC89IDEwMDA7CiAJfSBlbHNlIHsKLQkJdG1vID0gdXNlYyAqIENGR19IWjsKKwkJdG1vID0gdXNlYyAqIENPTkZJR19TWVNfSFo7CiAJCXRtbyAvPSAoMTAwMCoxMDAwKTsKIAl9CiAKQEAgLTI5NCw3ICsyOTQsNyBAQAogewogCXUzMiB0aWNrczsKIAotCXRpY2tzID0gKHVzZWMgKiBDRkdfSFopIC8gMTAwMDAwMDsKKwl0aWNrcyA9ICh1c2VjICogQ09ORklHX1NZU19IWikgLyAxMDAwMDAwOwogCiAJdGlja3MgKz0gZ2V0X3RpbWVyICgwKTsKIApkaWZmIC0tZ2l0IGEvY3B1L2FybTcyMHQvbHBjMjI5Mi9mbGFzaC5jIGIvY3B1L2FybTcyMHQvbHBjMjI5Mi9mbGFzaC5jCmluZGV4IGU1Yzg2OTcuLjNkMmRjMzIgMTAwNjQ0Ci0tLSBhL2NwdS9hcm03MjB0L2xwYzIyOTIvZmxhc2guYworKysgYi9jcHUvYXJtNzIwdC9scGMyMjkyL2ZsYXNoLmMKQEAgLTg1LDcgKzg1LDcgQEAKIAljb21tYW5kWzFdID0gZmxhc2hfYWRkcjsKIAljb21tYW5kWzJdID0gQ09QWV9CVUZGRVJfTE9DQVRJT047CiAJY29tbWFuZFszXSA9IDUxMjsKLQljb21tYW5kWzRdID0gQ0ZHX1NZU19DTEtfRlJFUSA+PiAxMDsKKwljb21tYW5kWzRdID0gQ09ORklHX1NZU19TWVNfQ0xLX0ZSRVEgPj4gMTA7CiAJaWFwX2VudHJ5KGNvbW1hbmQsIHJlc3VsdCk7CiAJaWYgKHJlc3VsdFswXSAhPSBJQVBfUkVUX0NNRF9TVUNDRVNTKSB7CiAJCXByaW50ZigiSUFQIGNvcHkgZmFpbGVkXG4iKTsKQEAgLTEzMiw3ICsxMzIsNyBAQAogCWNvbW1hbmRbMF0gPSBJQVBfQ01EX0VSQVNFOwogCWNvbW1hbmRbMV0gPSBzX2ZpcnN0OwogCWNvbW1hbmRbMl0gPSBzX2xhc3Q7Ci0JY29tbWFuZFszXSA9IENGR19TWVNfQ0xLX0ZSRVEgPj4gMTA7CisJY29tbWFuZFszXSA9IENPTkZJR19TWVNfU1lTX0NMS19GUkVRID4+IDEwOwogCWlhcF9lbnRyeShjb21tYW5kLCByZXN1bHQpOwogCWlmIChyZXN1bHRbMF0gIT0gSUFQX1JFVF9DTURfU1VDQ0VTUykgewogCQlwcmludGYoIklBUCBlcmFzZSBmYWlsZWRcbiIpOwpkaWZmIC0tZ2l0IGEvY3B1L2FybTcyMHQvc2VyaWFsLmMgYi9jcHUvYXJtNzIwdC9zZXJpYWwuYwppbmRleCAxYjBlMTQ3Li41NGE5YjMxIDEwMDY0NAotLS0gYS9jcHUvYXJtNzIwdC9zZXJpYWwuYworKysgYi9jcHUvYXJtNzIwdC9zZXJpYWwuYwpAQCAtODUsNyArODUsNyBAQAogCWlmIChjID09ICdcbicpCiAJCXNlcmlhbF9wdXRjICgnXHInKTsKIAotCXRtbyA9IGdldF90aW1lciAoMCkgKyAxICogQ0ZHX0haOworCXRtbyA9IGdldF90aW1lciAoMCkgKyAxICogQ09ORklHX1NZU19IWjsKIAl3aGlsZSAoSU9fU1lTRkxHMSAmIFNZU0ZMRzFfVVRYRkYpCiAJCWlmIChnZXRfdGltZXIgKDApID4gdG1vKQogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9jcHUvYXJtNzIwdC9zZXJpYWxfbmV0YXJtLmMgYi9jcHUvYXJtNzIwdC9zZXJpYWxfbmV0YXJtLmMKaW5kZXggYTU5M2NiYy4uMWExYjJkYiAxMDA2NDQKLS0tIGEvY3B1L2FybTcyMHQvc2VyaWFsX25ldGFybS5jCisrKyBiL2NwdS9hcm03MjB0L3NlcmlhbF9uZXRhcm0uYwpAQCAtNDYsNyArNDYsNyBAQAogLyogd2FpdCB1bnRpbCB0cmFuc21pdHRlciBpcyByZWFkeSBmb3IgYW5vdGhlciBjaGFyYWN0ZXIgKi8KICNkZWZpbmUgVFhXQUlUUkRZKHJlZ2lzdGVycykJCQkJCQkJXAogewkJCQkJCQkJCQlcCi0JdWxvbmcgdG1vID0gZ2V0X3RpbWVyKDApICsgMSAqIENGR19IWjsJCQkJCVwKKwl1bG9uZyB0bW8gPSBnZXRfdGltZXIoMCkgKyAxICogQ09ORklHX1NZU19IWjsJCQkJCVwKIAl3aGlsZSAoKChyZWdpc3RlcnMpLT5zdGF0dXNfYSAmIE5FVEFSTV9TRVJfU1RBVEFfVFhfUkRZKSA9PSAwICkJewlcCiAJCWlmIChnZXRfdGltZXIoMCkgPiB0bW8pCQkJCQkJXAogCQkJYnJlYWs7CQkJCQkJCVwKZGlmZiAtLWdpdCBhL2NwdS9hcm03MjB0L3N0YXJ0LlMgYi9jcHUvYXJtNzIwdC9zdGFydC5TCmluZGV4IDg0MjNlNGYuLjAyMmI4NzMgMTAwNjQ0Ci0tLSBhL2NwdS9hcm03MjB0L3N0YXJ0LlMKKysrIGIvY3B1L2FybTcyMHQvc3RhcnQuUwpAQCAtMTY2LDggKzE2Niw4IEBACiAJLyogU2V0IHVwIHRoZSBzdGFjawkJCQkJCSAgICAqLwogc3RhY2tfc2V0dXA6CiAJbGRyCXIwLCBfVEVYVF9CQVNFCQkvKiB1cHBlciAxMjggS2lCOiByZWxvY2F0ZWQgdWJvb3QgICAqLwotCXN1YglyMCwgcjAsICNDRkdfTUFMTE9DX0xFTiAvKiBtYWxsb2MgYXJlYQkJCSAgICAqLwotCXN1YglyMCwgcjAsICNDRkdfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8JCQkgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19NQUxMT0NfTEVOIC8qIG1hbGxvYyBhcmVhCQkJICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8JCQkgICAgKi8KICNpZmRlZiBDT05GSUdfVVNFX0lSUQogCXN1YglyMCwgcjAsICMoQ09ORklHX1NUQUNLU0laRV9JUlErQ09ORklHX1NUQUNLU0laRV9GSVEpCiAjZW5kaWYKQEAgLTQ0NCw4ICs0NDQsOCBAQAogCWFkZAlyOCwgc3AsICNTX1BDCiAKIAlsZHIJcjIsIF9hcm1ib290X3N0YXJ0Ci0Jc3ViCXIyLCByMiwgIyhDT05GSUdfU1RBQ0tTSVpFK0NGR19NQUxMT0NfTEVOKQotCXN1YglyMiwgcjIsICMoQ0ZHX0dCTF9EQVRBX1NJWkUrOCkJQCBzZXQgYmFzZSAyIHdvcmRzIGludG8gYWJvcnQgc3RhY2sKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TVEFDS1NJWkUrQ09ORklHX1NZU19NQUxMT0NfTEVOKQorCXN1YglyMiwgcjIsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKzgpCUAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCiAJbGRtaWEJcjIsIHtyMiAtIHI0fQkJCUAgZ2V0IHBjLCBjcHNyLCBvbGRfcjAKIAlhZGQJcjAsIHNwLCAjU19GUkFNRV9TSVpFCQlAIHJlc3RvcmUgc3BfU1ZDCiAKQEAgLTQ3Nyw4ICs0NzcsOCBAQAogCiAJLm1hY3JvIGdldF9iYWRfc3RhY2sKIAlsZHIJcjEzLCBfYXJtYm9vdF9zdGFydAkJQCBzZXR1cCBvdXIgbW9kZSBzdGFjawotCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1RBQ0tTSVpFK0NGR19NQUxMT0NfTEVOKQotCXN1YglyMTMsIHIxMywgIyhDRkdfR0JMX0RBVEFfU0laRSs4KSBAIHJlc2VydmVkIGEgY291cGxlIHNwb3RzIGluIGFib3J0IHN0YWNrCisJc3ViCXIxMywgcjEzLCAjKENPTkZJR19TVEFDS1NJWkUrQ09ORklHX1NZU19NQUxMT0NfTEVOKQorCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkgQCByZXNlcnZlZCBhIGNvdXBsZSBzcG90cyBpbiBhYm9ydCBzdGFjawogCiAJc3RyCWxyLCBbcjEzXQkJCUAgc2F2ZSBjYWxsZXIgbHIgLyBzcHNyCiAJbXJzCWxyLCBzcHNyCmRpZmYgLS1naXQgYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL2kyYy5jIGIvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC9pMmMuYwppbmRleCA5MGY5NWRmLi5iNjhjNWRkIDEwMDY0NAotLS0gYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL2kyYy5jCisrKyBiL2NwdS9hcm05MjB0L2F0OTFybTkyMDAvaTJjLmMKQEAgLTEyMCw3ICsxMjAsNyBAQAogaTJjX3JlYWQgKHVuc2lnbmVkIGNoYXIgY2hpcCwgdW5zaWduZWQgaW50IGFkZHIsIGludCBhbGVuLAogCSAgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgbGVuKQogewotI2lmZGVmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwogCS8qIHdlIG9ubHkgYWxsb3cgb25lIGFkZHJlc3MgYnl0ZSAqLwogCWlmIChhbGVuID4gMSkKIAkJcmV0dXJuIDE7CkBAIC0xMzksNyArMTM5LDcgQEAKIGkyY193cml0ZSh1bnNpZ25lZCBjaGFyIGNoaXAsIHVuc2lnbmVkIGludCBhZGRyLCBpbnQgYWxlbiwKIAkgIHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50IGxlbikKIHsKLSNpZmRlZiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCisjaWZkZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKIAlpbnQgaTsKIAl1bnNpZ25lZCBjaGFyICpidWY7CiAKQEAgLTIxMCw3ICsyMTAsNyBAQAogCiB1bnNpZ25lZCBpbnQgaTJjX2dldF9idXNfc3BlZWQodm9pZCkKIHsKLQlyZXR1cm4gQ0ZHX0kyQ19TUEVFRDsKKwlyZXR1cm4gQ09ORklHX1NZU19JMkNfU1BFRUQ7CiB9CiAKICNlbmRpZiAvKiBDT05GSUdfSEFSRF9JMkMgKi8KZGlmZiAtLWdpdCBhL2NwdS9hcm05MjB0L2F0OTFybTkyMDAvaW50ZXJydXB0cy5jIGIvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC9pbnRlcnJ1cHRzLmMKaW5kZXggMTA1NDYwMi4uNWYwNzAzYyAxMDA2NDQKLS0tIGEvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC9pbnRlcnJ1cHRzLmMKQEAgLTM1LDggKzM1LDggQEAKICNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgogLyojaW5jbHVkZSA8YXNtL3Byb2MvcHRyYWNlLmg+Ki8KIAotLyogdGhlIG51bWJlciBvZiBjbG9ja3MgcGVyIENGR19IWiAqLwotI2RlZmluZSBUSU1FUl9MT0FEX1ZBTCAoQ0ZHX0haX0NMT0NLL0NGR19IWikKKy8qIHRoZSBudW1iZXIgb2YgY2xvY2tzIHBlciBDT05GSUdfU1lTX0haICovCisjZGVmaW5lIFRJTUVSX0xPQURfVkFMIChDT05GSUdfU1lTX0haX0NMT0NLL0NPTkZJR19TWVNfSFopCiAKIC8qIG1hY3JvIHRvIHJlYWQgdGhlIDE2IGJpdCB0aW1lciAqLwogI2RlZmluZSBSRUFEX1RJTUVSICh0bXItPlRDX0NWICYgMHgwMDAwZmZmZikKQEAgLTEyNiw3ICsxMjYsNyBAQAogCXVsb25nIGVuZHRpbWU7CiAJc2lnbmVkIGxvbmcgZGlmZjsKIAotCXRtbyA9IENGR19IWl9DTE9DSyAvIDEwMDA7CisJdG1vID0gQ09ORklHX1NZU19IWl9DTE9DSyAvIDEwMDA7CiAJdG1vICo9IHVzZWM7CiAJdG1vIC89IDEwMDA7CiAKQEAgLTE1NSw3ICsxNTUsNyBAQAogewogCXVsb25nIHRiY2xrOwogCi0JdGJjbGsgPSBDRkdfSFo7CisJdGJjbGsgPSBDT05GSUdfU1lTX0haOwogCXJldHVybiB0YmNsazsKIH0KIApkaWZmIC0tZ2l0IGEvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC9sb3dsZXZlbF9pbml0LlMgYi9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL2xvd2xldmVsX2luaXQuUwppbmRleCA5ODM2M2ViLi42NmIwN2RhIDEwMDY0NAotLS0gYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL2xvd2xldmVsX2luaXQuUworKysgYi9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL2xvd2xldmVsX2luaXQuUwpAQCAtNzksNyArNzksNyBAQAogCS8qIEdldCB0aGUgQ0tHUiBCYXNlIEFkZHJlc3MgKi8KIAlsZHIgICAgIHIxLCA9QVQ5MUNfQkFTRV9DS0dSCiAJLyogTWFpbiBvc2NpbGxhdG9yIEVuYWJsZSByZWdpc3RlciAqLwotI2lmZGVmIENGR19VU0VfTUFJTl9PU0NJTExBVE9SCisjaWZkZWYgQ09ORklHX1NZU19VU0VfTUFJTl9PU0NJTExBVE9SCiAJbGRyICAgICByMCwgPTB4MDAwMEZGMDEJCS8qIEVuYWJsZSBtYWluIG9zY2lsbGF0b3IsICBPU0NPVU5UID0gMHhGRiAqLwogI2Vsc2UKIAlsZHIgICAgIHIwLCA9MHgwMDAwRkYwMAkJLyogRGlzYWJsZSBtYWluIG9zY2lsbGF0b3IsIE9TQ09VTlQgPSAweEZGICovCmRpZmYgLS1naXQgYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL3NwaS5jIGIvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC9zcGkuYwppbmRleCAyNjVkMTg1Li5mM2NiNWQ4IDEwMDY0NAotLS0gYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL3NwaS5jCisrKyBiL2NwdS9hcm05MjB0L2F0OTFybTkyMDAvc3BpLmMKQEAgLTEzNywxMSArMTM3LDExIEBACiAKIAlBVDkxQ19CQVNFX1NQSS0+U1BJX1BUQ1IgPSBBVDkxQ19QRENfVFhURU4gKyBBVDkxQ19QRENfUlhURU47CiAJd2hpbGUoIShBVDkxQ19CQVNFX1NQSS0+U1BJX1NSICYgQVQ5MUNfU1BJX1JYQlVGRikgJiYKLQkJKCh0aW1lb3V0ID0gZ2V0X3RpbWVyX21hc2tlZCgpICkgPCBDRkdfU1BJX1dSSVRFX1RPVVQpKTsKKwkJKCh0aW1lb3V0ID0gZ2V0X3RpbWVyX21hc2tlZCgpICkgPCBDT05GSUdfU1lTX1NQSV9XUklURV9UT1VUKSk7CiAJQVQ5MUNfQkFTRV9TUEktPlNQSV9QVENSID0gQVQ5MUNfUERDX1RYVERJUyArIEFUOTFDX1BEQ19SWFRESVM7CiAJcERlc2MtPnN0YXRlID0gSURMRTsKIAotCWlmICh0aW1lb3V0ID49IENGR19TUElfV1JJVEVfVE9VVCl7CisJaWYgKHRpbWVvdXQgPj0gQ09ORklHX1NZU19TUElfV1JJVEVfVE9VVCl7CiAJCXByaW50ZigiRXJyb3IgVGltZW91dFxuXHIiKTsKIAkJcmV0dXJuIERBVEFGTEFTSF9FUlJPUjsKIAl9CmRpZmYgLS1naXQgYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL3VzYi5jIGIvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC91c2IuYwppbmRleCBjMTIxZGU2Li43MjM1NWRjIDEwMDY0NAotLS0gYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL3VzYi5jCisrKyBiL2NwdS9hcm05MjB0L2F0OTFybTkyMDAvdXNiLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWYgZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENGR19VU0JfT0hDSV9DUFVfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSV9ORVcpICYmIGRlZmluZWQoQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVCkKICMgaWZkZWYgQ09ORklHX0FUOTFSTTkyMDAKIAogI2luY2x1ZGUgPGFzbS9hcmNoL2hhcmR3YXJlLmg+CkBAIC01MCw0ICs1MCw0IEBACiB9CiAKICMgZW5kaWYgLyogQ09ORklHX0FUOTFSTTkyMDAgKi8KLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSSkgJiYgZGVmaW5lZChDRkdfVVNCX09IQ0lfQ1BVX0lOSVQpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfVVNCX09IQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVCkgKi8KZGlmZiAtLWdpdCBhL2NwdS9hcm05MjB0L2NwdS5jIGIvY3B1L2FybTkyMHQvY3B1LmMKaW5kZXggZjkzYmY1Ny4uMWI5Y2RlNiAxMDA2NDQKLS0tIGEvY3B1L2FybTkyMHQvY3B1LmMKKysrIGIvY3B1L2FybTkyMHQvY3B1LmMKQEAgLTk1LDcgKzk1LDcgQEAKIAkgKiBzZXR1cCB1cCBzdGFja3MgaWYgbmVjZXNzYXJ5CiAJICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKLQlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOIC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSA0OworCUlSUV9TVEFDS19TVEFSVCA9IF9hcm1ib290X3N0YXJ0IC0gQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gNDsKIAlGSVFfU1RBQ0tfU1RBUlQgPSBJUlFfU1RBQ0tfU1RBUlQgLSBDT05GSUdfU1RBQ0tTSVpFX0lSUTsKICNlbmRpZgogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvY3B1L2FybTkyMHQvaW14L2ludGVycnVwdHMuYyBiL2NwdS9hcm05MjB0L2lteC9pbnRlcnJ1cHRzLmMKaW5kZXggYzYxZDNiYy4uZGRjZmIzNCAxMDA2NDQKLS0tIGEvY3B1L2FybTkyMHQvaW14L2ludGVycnVwdHMuYworKysgYi9jcHUvYXJtOTIwdC9pbXgvaW50ZXJydXB0cy5jCkBAIC0xMTIsNyArMTEyLDcgQEAKIHsKIAl1bG9uZyB0YmNsazsKIAotCXRiY2xrID0gQ0ZHX0haOworCXRiY2xrID0gQ09ORklHX1NZU19IWjsKIAogCXJldHVybiB0YmNsazsKIH0KZGlmZiAtLWdpdCBhL2NwdS9hcm05MjB0L2ludGVycnVwdHMuYyBiL2NwdS9hcm05MjB0L2ludGVycnVwdHMuYwppbmRleCBjOWNkMDY2Li4wOWM1NGRiIDEwMDY0NAotLS0gYS9jcHUvYXJtOTIwdC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L2FybTkyMHQvaW50ZXJydXB0cy5jCkBAIC00Miw3ICs0Miw3IEBACiAJLyogQVNTVU1FRCB0byBiZSBhIHRpbWVyIGludGVycnVwdCAgKi8KIAkvKiBKdXN0IGNsZWFyIGl0IC0gY291bnQgaGFuZGxlZCBpbiAqLwogCS8qIGludGVncmF0b3JhcC5jICAgICAgICAgICAgICAgICAgICovCi0JKih2b2xhdGlsZSB1bG9uZyAqKShDRkdfVElNRVJCQVNFICsgMHgwQykgPSAwOworCSoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UgKyAweDBDKSA9IDA7CiAjZWxzZQogI2Vycm9yIGRvX2lycSgpIG5vdCBkZWZpbmVkIGZvciB0aGlzIGNwdSB0eXBlCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NwdS9hcm05MjB0L3MzYzI0eDAvaTJjLmMgYi9jcHUvYXJtOTIwdC9zM2MyNHgwL2kyYy5jCmluZGV4IDM3NGI2ODMuLmZiYTVjZDEgMTAwNjQ0Ci0tLSBhL2NwdS9hcm05MjB0L3MzYzI0eDAvaTJjLmMKKysrIGIvY3B1L2FybTkyMHQvczNjMjR4MC9pMmMuYwpAQCAtMzg0LDcgKzM4NCw3IEBACiAJCXhhZGRyWzNdID0gYWRkciAmIDB4RkY7CiAJfQogCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCiAJLyoKIAkgKiBFRVBST00gY2hpcHMgdGhhdCBpbXBsZW1lbnQgImFkZHJlc3Mgb3ZlcmZsb3ciIGFyZSBvbmVzCiAJICogbGlrZSBDYXRhbHlzdCAyNFdDMDQvMDgvMTYgd2hpY2ggaGFzIDkvMTAvMTEgYml0cyBvZgpAQCAtMzk3LDcgKzM5Nyw3IEBACiAJICogaGlkZGVuIGluIHRoZSBjaGlwIGFkZHJlc3MuCiAJICovCiAJaWYgKGFsZW4gPiAwKQotCQljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cpOworCQljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKICNlbmRpZgogCWlmICgocmV0ID0KIAkgICAgIGkyY190cmFuc2ZlciAoSTJDX1JFQUQsIGNoaXAgPDwgMSwgJnhhZGRyWzQgLSBhbGVuXSwgYWxlbiwKQEAgLTQyMyw3ICs0MjMsNyBAQAogCQl4YWRkclsyXSA9IChhZGRyID4+IDgpICYgMHhGRjsKIAkJeGFkZHJbM10gPSBhZGRyICYgMHhGRjsKIAl9Ci0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCiAJLyoKIAkgKiBFRVBST00gY2hpcHMgdGhhdCBpbXBsZW1lbnQgImFkZHJlc3Mgb3ZlcmZsb3ciIGFyZSBvbmVzCiAJICogbGlrZSBDYXRhbHlzdCAyNFdDMDQvMDgvMTYgd2hpY2ggaGFzIDkvMTAvMTEgYml0cyBvZgpAQCAtNDM2LDcgKzQzNiw3IEBACiAJICogaGlkZGVuIGluIHRoZSBjaGlwIGFkZHJlc3MuCiAJICovCiAJaWYgKGFsZW4gPiAwKQotCQljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cpOworCQljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKICNlbmRpZgogCXJldHVybiAoaTJjX3RyYW5zZmVyCiAJCShJMkNfV1JJVEUsIGNoaXAgPDwgMSwgJnhhZGRyWzQgLSBhbGVuXSwgYWxlbiwgYnVmZmVyLApkaWZmIC0tZ2l0IGEvY3B1L2FybTkyMHQvczNjMjR4MC9pbnRlcnJ1cHRzLmMgYi9jcHUvYXJtOTIwdC9zM2MyNHgwL2ludGVycnVwdHMuYwppbmRleCA3YWQ5ZmNiLi4xMWU2ODA0IDEwMDY0NAotLS0gYS9jcHUvYXJtOTIwdC9zM2MyNHgwL2ludGVycnVwdHMuYworKysgYi9jcHUvYXJtOTIwdC9zM2MyNHgwL2ludGVycnVwdHMuYwpAQCAtMTc5LDcgKzE3OSw3IEBACiAjZWxpZiBkZWZpbmVkKENPTkZJR19TQkMyNDEwWCkgfHwgXAogICAgICAgZGVmaW5lZChDT05GSUdfU01ESzI0MTApIHx8IFwKICAgICAgIGRlZmluZWQoQ09ORklHX1ZDTUE5KQotCXRiY2xrID0gQ0ZHX0haOworCXRiY2xrID0gQ09ORklHX1NZU19IWjsKICNlbHNlCiAjCWVycm9yICJ0YmNsayBub3QgY29uZmlndXJlZCIKICNlbmRpZgpkaWZmIC0tZ2l0IGEvY3B1L2FybTkyMHQvczNjMjR4MC91c2IuYyBiL2NwdS9hcm05MjB0L3MzYzI0eDAvdXNiLmMKaW5kZXggNDIxZWJiNC4uOWNjZjU3NSAxMDA2NDQKLS0tIGEvY3B1L2FybTkyMHQvczNjMjR4MC91c2IuYworKysgYi9jcHUvYXJtOTIwdC9zM2MyNHgwL3VzYi5jCkBAIC0yMyw3ICsyMyw3IEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KIAotI2lmIGRlZmluZWQoQ09ORklHX1VTQl9PSENJX05FVykgJiYgZGVmaW5lZChDRkdfVVNCX09IQ0lfQ1BVX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQpCiAjIGlmIGRlZmluZWQoQ09ORklHX1MzQzI0MDApIHx8IGRlZmluZWQoQ09ORklHX1MzQzI0MTApCiAKICNpZiBkZWZpbmVkKENPTkZJR19TM0MyNDAwKQpAQCAtNjksNCArNjksNCBAQAogfQogCiAjIGVuZGlmIC8qIGRlZmluZWQoQ09ORklHX1MzQzI0MDApIHx8IGRlZmluZWQoQ09ORklHX1MzQzI0MTApICovCi0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENGR19VU0JfT0hDSV9DUFVfSU5JVCkgKi8KKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSV9ORVcpICYmIGRlZmluZWQoQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVCkgKi8KZGlmZiAtLWdpdCBhL2NwdS9hcm05MjB0L3N0YXJ0LlMgYi9jcHUvYXJtOTIwdC9zdGFydC5TCmluZGV4IDVkMGZlYzYuLjE3OTc3YzIgMTAwNjQ0Ci0tLSBhL2NwdS9hcm05MjB0L3N0YXJ0LlMKKysrIGIvY3B1L2FybTkyMHQvc3RhcnQuUwpAQCAtMjAyLDggKzIwMiw4IEBACiAJLyogU2V0IHVwIHRoZSBzdGFjawkJCQkJCSAgICAqLwogc3RhY2tfc2V0dXA6CiAJbGRyCXIwLCBfVEVYVF9CQVNFCQkvKiB1cHBlciAxMjggS2lCOiByZWxvY2F0ZWQgdWJvb3QgICAqLwotCXN1YglyMCwgcjAsICNDRkdfTUFMTE9DX0xFTgkvKiBtYWxsb2MgYXJlYSAgICAgICAgICAgICAgICAgICAgICAqLwotCXN1YglyMCwgcjAsICNDRkdfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8gICAgICAgICAgICAgICAgICAgICAgICAqLworCXN1YglyMCwgcjAsICNDT05GSUdfU1lTX01BTExPQ19MRU4JLyogbWFsbG9jIGFyZWEgICAgICAgICAgICAgICAgICAgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC8qIGJkaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKIAlzdWIJcjAsIHIwLCAjKENPTkZJR19TVEFDS1NJWkVfSVJRK0NPTkZJR19TVEFDS1NJWkVfRklRKQogI2VuZGlmCkBAIC0zMTYsOCArMzE2LDggQEAKIAlzdG1pYQlzcCwge3IwIC0gcjEyfQkJCUAgQ2FsbGluZyByMC1yMTIKIAlsZHIJcjIsIF9hcm1ib290X3N0YXJ0CiAJc3ViCXIyLCByMiwgIyhDT05GSUdfU1RBQ0tTSVpFKQotCXN1YglyMiwgcjIsICMoQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIyLCByMiwgIyhDRkdfR0JMX0RBVEFfU0laRSs4KSAgQCBzZXQgYmFzZSAyIHdvcmRzIGludG8gYWJvcnQgc3RhY2sKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TWVNfTUFMTE9DX0xFTikKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KSAgQCBzZXQgYmFzZSAyIHdvcmRzIGludG8gYWJvcnQgc3RhY2sKIAlsZG1pYQlyMiwge3IyIC0gcjN9CQkJQCBnZXQgcGMsIGNwc3IKIAlhZGQJcjAsIHNwLCAjU19GUkFNRV9TSVpFCQlAIHJlc3RvcmUgc3BfU1ZDCiAKQEAgLTM1MCw4ICszNTAsOCBAQAogCS5tYWNybyBnZXRfYmFkX3N0YWNrCiAJbGRyCXIxMywgX2FybWJvb3Rfc3RhcnQJCUAgc2V0dXAgb3VyIG1vZGUgc3RhY2sKIAlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRSkKLQlzdWIJcjEzLCByMTMsICMoQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIxMywgcjEzLCAjKENGR19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NZU19NQUxMT0NfTEVOKQorCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkgQCByZXNlcnZlZCBhIGNvdXBsZSBzcG90cyBpbiBhYm9ydCBzdGFjawogCiAJc3RyCWxyLCBbcjEzXQkJCUAgc2F2ZSBjYWxsZXIgbHIgLyBzcHNyCiAJbXJzCWxyLCBzcHNyCmRpZmYgLS1naXQgYS9jcHUvYXJtOTI1dC9jcHUuYyBiL2NwdS9hcm05MjV0L2NwdS5jCmluZGV4IGQ4NWI3ZmEuLmI5ZjA5MzEgMTAwNjQ0Ci0tLSBhL2NwdS9hcm05MjV0L2NwdS5jCisrKyBiL2NwdS9hcm05MjV0L2NwdS5jCkBAIC05NSw3ICs5NSw3IEBACiAJICogc2V0dXAgdXAgc3RhY2tzIGlmIG5lY2Vzc2FyeQogCSAqLwogI2lmZGVmIENPTkZJR19VU0VfSVJRCi0JSVJRX1NUQUNLX1NUQVJUID0gX2FybWJvb3Rfc3RhcnQgLSBDRkdfTUFMTE9DX0xFTiAtIENGR19HQkxfREFUQV9TSVpFIC0gNDsKKwlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENPTkZJR19TWVNfTUFMTE9DX0xFTiAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAtIDQ7CiAJRklRX1NUQUNLX1NUQVJUID0gSVJRX1NUQUNLX1NUQVJUIC0gQ09ORklHX1NUQUNLU0laRV9JUlE7CiAjZW5kaWYKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2NwdS9hcm05MjV0L2ludGVycnVwdHMuYyBiL2NwdS9hcm05MjV0L2ludGVycnVwdHMuYwppbmRleCAyMDhhMjViZC4uM2VmNDU1NCAxMDA2NDQKLS0tIGEvY3B1L2FybTkyNXQvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9hcm05MjV0L2ludGVycnVwdHMuYwpAQCAtMzksNyArMzksNyBAQAogI2RlZmluZSBUSU1FUl9MT0FEX1ZBTCAweGZmZmZmZmZmCiAKIC8qIG1hY3JvIHRvIHJlYWQgdGhlIDMyIGJpdCB0aW1lciAqLwotI2RlZmluZSBSRUFEX1RJTUVSICgqKHZvbGF0aWxlIHVsb25nICopKENGR19USU1FUkJBU0UrOCkpCisjZGVmaW5lIFJFQURfVElNRVIgKCoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UrOCkpCiAKIHN0YXRpYyB1bG9uZyB0aW1lc3RhbXA7CiBzdGF0aWMgdWxvbmcgbGFzdGRlYzsKQEAgLTUwLDkgKzUwLDkgQEAKIAlpbnQzMl90IHZhbDsKIAogCS8qIFN0YXJ0IHRoZSBkZWNyZW1lbnRlciB0aWNraW5nIGRvd24gZnJvbSAweGZmZmZmZmZmICovCi0JKigoaW50MzJfdCAqKSAoQ0ZHX1RJTUVSQkFTRSArIExPQURfVElNKSkgPSBUSU1FUl9MT0FEX1ZBTDsKLQl2YWwgPSBNUFVUSU1fU1QgfCBNUFVUSU1fQVIgfCBNUFVUSU1fQ0xPQ0tfRU5BQkxFIHwgKENGR19QVlQgPDwgTVBVVElNX1BUVl9CSVQpOwotCSooKGludDMyX3QgKikgKENGR19USU1FUkJBU0UgKyBDTlRMX1RJTUVSKSkgPSB2YWw7CisJKigoaW50MzJfdCAqKSAoQ09ORklHX1NZU19USU1FUkJBU0UgKyBMT0FEX1RJTSkpID0gVElNRVJfTE9BRF9WQUw7CisJdmFsID0gTVBVVElNX1NUIHwgTVBVVElNX0FSIHwgTVBVVElNX0NMT0NLX0VOQUJMRSB8IChDT05GSUdfU1lTX1BWVCA8PCBNUFVUSU1fUFRWX0JJVCk7CisJKigoaW50MzJfdCAqKSAoQ09ORklHX1NZU19USU1FUkJBU0UgKyBDTlRMX1RJTUVSKSkgPSB2YWw7CiAKIAkvKiBpbml0IHRoZSB0aW1lc3RhbXAgYW5kIGxhc3RkZWMgdmFsdWUgKi8KIAlyZXNldF90aW1lcl9tYXNrZWQoKTsKQEAgLTg2LDEwICs4NiwxMCBAQAogCiAJaWYodXNlYyA+PSAxMDAwKXsJCS8qIGlmICJiaWciIG51bWJlciwgc3ByZWFkIG5vcm1hbGl6YXRpb24gdG8gc2Vjb25kcyAqLwogCQl0bW8gPSB1c2VjIC8gMTAwMDsJLyogc3RhcnQgdG8gbm9ybWFsaXplIGZvciB1c2VjIHRvIHRpY2tzIHBlciBzZWMgKi8KLQkJdG1vICo9IENGR19IWjsJCS8qIGZpbmQgbnVtYmVyIG9mICJ0aWNrcyIgdG8gd2FpdCB0byBhY2hpZXZlIHRhcmdldCAqLworCQl0bW8gKj0gQ09ORklHX1NZU19IWjsJCS8qIGZpbmQgbnVtYmVyIG9mICJ0aWNrcyIgdG8gd2FpdCB0byBhY2hpZXZlIHRhcmdldCAqLwogCQl0bW8gLz0gMTAwMDsJCS8qIGZpbmlzaCBub3JtYWxpemUuICovCiAJfWVsc2V7CQkJCS8qIGVsc2Ugc21hbGwgbnVtYmVyLCBkb24ndCBraWxsIGl0IHByaW9yIHRvIEhaIG11bHRpcGx5ICovCi0JCXRtbyA9IHVzZWMgKiBDRkdfSFo7CisJCXRtbyA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gKDEwMDAqMTAwMCk7CiAJfQogCkBAIC0xNDUsMTAgKzE0NSwxMCBAQAogCiAJaWYgKHVzZWMgPj0gMTAwMCkgewkJLyogaWYgImJpZyIgbnVtYmVyLCBzcHJlYWQgbm9ybWFsaXphdGlvbiB0byBzZWNvbmRzICovCiAJCXRtbyA9IHVzZWMgLyAxMDAwOwkvKiBzdGFydCB0byBub3JtYWxpemUgZm9yIHVzZWMgdG8gdGlja3MgcGVyIHNlYyAqLwotCQl0bW8gKj0gQ0ZHX0haOwkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCisJCXRtbyAqPSBDT05GSUdfU1lTX0haOwkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCiAJCXRtbyAvPSAxMDAwOwkJLyogZmluaXNoIG5vcm1hbGl6ZS4gKi8KIAl9IGVsc2UgewkJCS8qIGVsc2Ugc21hbGwgbnVtYmVyLCBkb24ndCBraWxsIGl0IHByaW9yIHRvIEhaIG11bHRpcGx5ICovCi0JCXRtbyA9IHVzZWMgKiBDRkdfSFo7CisJCXRtbyA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gKDEwMDAqMTAwMCk7CiAJfQogCkBAIC0xNzgsNiArMTc4LDYgQEAKIHsKIAl1bG9uZyB0YmNsazsKIAotCXRiY2xrID0gQ0ZHX0haOworCXRiY2xrID0gQ09ORklHX1NZU19IWjsKIAlyZXR1cm4gdGJjbGs7CiB9CmRpZmYgLS1naXQgYS9jcHUvYXJtOTI1dC9zdGFydC5TIGIvY3B1L2FybTkyNXQvc3RhcnQuUwppbmRleCA1ZGRkYTU0Li5jNDgwMTRkIDEwMDY0NAotLS0gYS9jcHUvYXJtOTI1dC9zdGFydC5TCisrKyBiL2NwdS9hcm05MjV0L3N0YXJ0LlMKQEAgLTE5MCw4ICsxOTAsOCBAQAogCS8qIFNldCB1cCB0aGUgc3RhY2sJCQkJCQkgICAgKi8KIHN0YWNrX3NldHVwOgogCWxkcglyMCwgX1RFWFRfQkFTRQkJLyogdXBwZXIgMTI4IEtpQjogcmVsb2NhdGVkIHVib290ICAgKi8KLQlzdWIJcjAsIHIwLCAjQ0ZHX01BTExPQ19MRU4JLyogbWFsbG9jIGFyZWEgICAgICAgICAgICAgICAgICAgICAgKi8KLQlzdWIJcjAsIHIwLCAjQ0ZHX0dCTF9EQVRBX1NJWkUgLyogYmRpbmZvICAgICAgICAgICAgICAgICAgICAgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19NQUxMT0NfTEVOCS8qIG1hbGxvYyBhcmVhICAgICAgICAgICAgICAgICAgICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8gICAgICAgICAgICAgICAgICAgICAgICAqLwogI2lmZGVmIENPTkZJR19VU0VfSVJRCiAJc3ViCXIwLCByMCwgIyhDT05GSUdfU1RBQ0tTSVpFX0lSUStDT05GSUdfU1RBQ0tTSVpFX0ZJUSkKICNlbmRpZgpAQCAtMjk1LDggKzI5NSw4IEBACiAJc3RtaWEJc3AsIHtyMCAtIHIxMn0JCQlAIFNhdmUgdXNlciByZWdpc3RlcnMgKG5vdyBpbiBzdmMgbW9kZSkgcjAtcjEyCiAKIAlsZHIJcjIsIF9hcm1ib290X3N0YXJ0Ci0Jc3ViCXIyLCByMiwgIyhDT05GSUdfU1RBQ0tTSVpFK0NGR19NQUxMT0NfTEVOKQotCXN1YglyMiwgcjIsICMoQ0ZHX0dCTF9EQVRBX1NJWkUrOCkgIEAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCisJc3ViCXIyLCByMiwgIyhDT05GSUdfU1RBQ0tTSVpFK0NPTkZJR19TWVNfTUFMTE9DX0xFTikKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KSAgQCBzZXQgYmFzZSAyIHdvcmRzIGludG8gYWJvcnQgc3RhY2sKIAlsZG1pYQlyMiwge3IyIC0gcjN9ICAgICAgICAgICAgICAgICAgIEAgZ2V0IHZhbHVlcyBmb3IgImFib3J0ZWQiIHBjIGFuZCBjcHNyIChpbnRvIHBhcm0gcmVncykKIAlhZGQJcjAsIHNwLCAjU19GUkFNRV9TSVpFCQlAIGdyYWIgcG9pbnRlciB0byBvbGQgc3RhY2sKIApAQCAtMzI4LDggKzMyOCw4IEBACiAKIAkubWFjcm8gZ2V0X2JhZF9zdGFjawogCWxkcglyMTMsIF9hcm1ib290X3N0YXJ0CQlAIHNldHVwIG91ciBtb2RlIHN0YWNrCi0Jc3ViCXIxMywgcjEzLCAjKENPTkZJR19TVEFDS1NJWkUrQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIxMywgcjEzLCAjKENGR19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRStDT05GSUdfU1lTX01BTExPQ19MRU4pCisJc3ViCXIxMywgcjEzLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KSBAIHJlc2VydmVkIGEgY291cGxlIHNwb3RzIGluIGFib3J0IHN0YWNrCiAKIAlzdHIJbHIsIFtyMTNdCQkJQCBzYXZlIGNhbGxlciBsciBpbiBwb3NpdGlvbiAwIG9mIHNhdmVkIHN0YWNrCiAJbXJzCWxyLCBzcHNyICAgICAgICAgICAgICAgICAgICAgICAgQCBnZXQgdGhlIHNwc3IKZGlmZiAtLWdpdCBhL2NwdS9hcm05MjZlanMvYXQ5MS9zcGkuYyBiL2NwdS9hcm05MjZlanMvYXQ5MS9zcGkuYwppbmRleCBjOWZlNmQ4Li4zZWIyNTJjIDEwMDY0NAotLS0gYS9jcHUvYXJtOTI2ZWpzL2F0OTEvc3BpLmMKKysrIGIvY3B1L2FybTkyNmVqcy9hdDkxL3NwaS5jCkBAIC00OCw3ICs0OCw3IEBACiAJICAgICAgICgoQVQ5MV9NQVNURVJfQ0xPQ0sgLyBBVDkxX1NQSV9DTEspIDw8IDgpLAogCSAgICAgICBBVDkxX0JBU0VfU1BJICsgQVQ5MV9TUElfQ1NSKDApKTsKIAotI2lmZGVmIENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzEKKyNpZmRlZiBDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMQogCS8qIENvbmZpZ3VyZSBDUzEgKi8KIAl3cml0ZWwoQVQ5MV9TUElfTkNQSEEgfAogCSAgICAgICAoQVQ5MV9TUElfRExZQlMgJiBEQVRBRkxBU0hfVENTUykgfApAQCAtNTcsNyArNTcsNyBAQAogCSAgICAgICBBVDkxX0JBU0VfU1BJICsgQVQ5MV9TUElfQ1NSKDEpKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMworI2lmZGVmIENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MzCiAJLyogQ29uZmlndXJlIENTMyAqLwogCXdyaXRlbChBVDkxX1NQSV9OQ1BIQSB8CiAJICAgICAgIChBVDkxX1NQSV9ETFlCUyAmIERBVEFGTEFTSF9UQ1NTKSB8CkBAIC0xNDQsMTEgKzE0NCwxMSBAQAogCiAJd3JpdGVsKEFUOTFfU1BJX1RYVEVOICsgQVQ5MV9TUElfUlhURU4sIEFUOTFfQkFTRV9TUEkgKyBBVDkxX1NQSV9QVENSKTsKIAl3aGlsZSAoIShyZWFkbChBVDkxX0JBU0VfU1BJICsgQVQ5MV9TUElfU1IpICYgQVQ5MV9TUElfUlhCVUZGKSAmJgotCQkoKHRpbWVvdXQgPSBnZXRfdGltZXJfbWFza2VkKCkpIDwgQ0ZHX1NQSV9XUklURV9UT1VUKSk7CisJCSgodGltZW91dCA9IGdldF90aW1lcl9tYXNrZWQoKSkgPCBDT05GSUdfU1lTX1NQSV9XUklURV9UT1VUKSk7CiAJd3JpdGVsKEFUOTFfU1BJX1RYVERJUyArIEFUOTFfU1BJX1JYVERJUywgQVQ5MV9CQVNFX1NQSSArIEFUOTFfU1BJX1BUQ1IpOwogCXBEZXNjLT5zdGF0ZSA9IElETEU7CiAKLQlpZiAodGltZW91dCA+PSBDRkdfU1BJX1dSSVRFX1RPVVQpIHsKKwlpZiAodGltZW91dCA+PSBDT05GSUdfU1lTX1NQSV9XUklURV9UT1VUKSB7CiAJCXByaW50ZigiRXJyb3IgVGltZW91dFxuXHIiKTsKIAkJcmV0dXJuIERBVEFGTEFTSF9FUlJPUjsKIAl9CmRpZmYgLS1naXQgYS9jcHUvYXJtOTI2ZWpzL2F0OTEvdGltZXIuYyBiL2NwdS9hcm05MjZlanMvYXQ5MS90aW1lci5jCmluZGV4IGM3OWVjN2UuLmZlYzU0NWIgMTAwNjQ0Ci0tLSBhL2NwdS9hcm05MjZlanMvYXQ5MS90aW1lci5jCisrKyBiL2NwdS9hcm05MjZlanMvYXQ5MS90aW1lci5jCkBAIC0xMzAsNyArMTMwLDcgQEAKIHsKIAl1bG9uZyB0YmNsazsKIAotCXRiY2xrID0gQ0ZHX0haOworCXRiY2xrID0gQ09ORklHX1NZU19IWjsKIAlyZXR1cm4gdGJjbGs7CiB9CiAKZGlmZiAtLWdpdCBhL2NwdS9hcm05MjZlanMvYXQ5MS91c2IuYyBiL2NwdS9hcm05MjZlanMvYXQ5MS91c2IuYwppbmRleCAyYTkyZjczLi43Y2IwODJkIDEwMDY0NAotLS0gYS9jcHUvYXJtOTI2ZWpzL2F0OTEvdXNiLmMKKysrIGIvY3B1L2FybTkyNmVqcy9hdDkxL3VzYi5jCkBAIC0yMyw3ICsyMyw3IEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KIAotI2lmIGRlZmluZWQoQ09ORklHX1VTQl9PSENJX05FVykgJiYgZGVmaW5lZChDRkdfVVNCX09IQ0lfQ1BVX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQpCiAKICNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2lvLmg+CkBAIC01OSw0ICs1OSw0IEBACiAJcmV0dXJuIHVzYl9jcHVfc3RvcCgpOwogfQogCi0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfVVNCX09IQ0kpICYmIGRlZmluZWQoQ0ZHX1VTQl9PSENJX0NQVV9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1VTQl9PSENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQpICovCmRpZmYgLS1naXQgYS9jcHUvYXJtOTI2ZWpzL2NwdS5jIGIvY3B1L2FybTkyNmVqcy9jcHUuYwppbmRleCA1NmM2Mjg5Li40OGEyYzBiIDEwMDY0NAotLS0gYS9jcHUvYXJtOTI2ZWpzL2NwdS5jCisrKyBiL2NwdS9hcm05MjZlanMvY3B1LmMKQEAgLTk1LDcgKzk1LDcgQEAKIAkgKiBzZXR1cCB1cCBzdGFja3MgaWYgbmVjZXNzYXJ5CiAJICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKLQlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOIC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSA0OworCUlSUV9TVEFDS19TVEFSVCA9IF9hcm1ib290X3N0YXJ0IC0gQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gNDsKIAlGSVFfU1RBQ0tfU1RBUlQgPSBJUlFfU1RBQ0tfU1RBUlQgLSBDT05GSUdfU1RBQ0tTSVpFX0lSUTsKICNlbmRpZgogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvY3B1L2FybTkyNmVqcy9kYXZpbmNpL2kyYy5jIGIvY3B1L2FybTkyNmVqcy9kYXZpbmNpL2kyYy5jCmluZGV4IGFmOWRjMDMuLmQyMjBhNGMgMTAwNjQ0Ci0tLSBhL2NwdS9hcm05MjZlanMvZGF2aW5jaS9pMmMuYworKysgYi9jcHUvYXJtOTI2ZWpzL2RhdmluY2kvaTJjLmMKQEAgLTEwNCw3ICsxMDQsNyBAQAogCX0KIAogCXBzYyA9IDI7Ci0JZGl2ID0gKENGR19IWl9DTE9DSyAvICgocHNjICsgMSkgKiBzcGVlZCkpIC0gMTA7CS8qIFNDTEwgKyBTQ0xIICovCisJZGl2ID0gKENPTkZJR19TWVNfSFpfQ0xPQ0sgLyAoKHBzYyArIDEpICogc3BlZWQpKSAtIDEwOwkvKiBTQ0xMICsgU0NMSCAqLwogCVJFRyhJMkNfUFNDKSA9IHBzYzsJCQkvKiAyN01IeiAvICgyICsgMSkgPSA5TUh6ICovCiAJUkVHKEkyQ19TQ0xMKSA9IChkaXYgKiA1MCkgLyAxMDA7CS8qIDUwJSBEdXR5ICovCiAJUkVHKEkyQ19TQ0xIKSA9IGRpdiAtIFJFRyhJMkNfU0NMTCk7CmRpZmYgLS1naXQgYS9jcHUvYXJtOTI2ZWpzL2RhdmluY2kvbmFuZC5jIGIvY3B1L2FybTkyNmVqcy9kYXZpbmNpL25hbmQuYwppbmRleCBmN2NmMGM5Li4wMTRlMmIwIDEwMDY0NAotLS0gYS9jcHUvYXJtOTI2ZWpzL2RhdmluY2kvbmFuZC5jCisrKyBiL2NwdS9hcm05MjZlanMvZGF2aW5jaS9uYW5kLmMKQEAgLTQ0LDE0ICs0NCwxNCBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogCi0jaWZkZWYgQ0ZHX1VTRV9OQU5ECisjaWZkZWYgQ09ORklHX1NZU19VU0VfTkFORAogI2lmICFkZWZpbmVkKENPTkZJR19OQU5EX0xFR0FDWSkKIAogI2luY2x1ZGUgPG5hbmQuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9uYW5kX2RlZnMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9lbWlmX2RlZnMuaD4KIAotZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDRkdfTUFYX05BTkRfREVWSUNFXTsKK2V4dGVybiBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0VdOwogCiBzdGF0aWMgdm9pZCBuYW5kX2RhdmluY2lfaHdjb250cm9sKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBpbnQgY21kLCB1bnNpZ25lZCBpbnQgY3RybCkKIHsKQEAgLTg3LDExICs4NywxMSBAQAogI2VuZGlmCiB9CiAKLSNpZmRlZiBDRkdfTkFORF9IV19FQ0MKLSNpZmRlZiBDRkdfREFWSU5DSV9CUk9LRU5fRUNDCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0hXX0VDQworI2lmZGVmIENPTkZJR19TWVNfREFWSU5DSV9CUk9LRU5fRUNDCiAvKiBMaW51eC1jb21wYXRpYmxlIEVDQyB1c2VzIE1URCBkZWZhdWx0cy4gKi8KIC8qIFRoZXNlIGxheW91dHMgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggTGludXggb3IgUkJML1VCTC4gKi8KLSNpZmRlZiBDRkdfTkFORF9MQVJHRVBBR0UKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfTEFSR0VQQUdFCiBzdGF0aWMgc3RydWN0IG5hbmRfZWNjbGF5b3V0IGRhdmluY2lfbmFuZF9lY2NsYXlvdXQgPSB7CiAJLmVjY2J5dGVzID0gMTIsCiAJLmVjY3BvcyA9IHs4LCA5LCAxMCwgMjQsIDI1LCAyNiwgNDAsIDQxLCA0MiwgNTYsIDU3LCA1OH0sCkBAIC0xMDMsNyArMTAzLDcgQEAKIAkJey5vZmZzZXQgPSA2MCwgLmxlbmd0aCA9IDR9CiAJfQogfTsKLSNlbGlmIGRlZmluZWQoQ0ZHX05BTkRfU01BTExQQUdFKQorI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTX05BTkRfU01BTExQQUdFKQogc3RhdGljIHN0cnVjdCBuYW5kX2VjY2xheW91dCBkYXZpbmNpX25hbmRfZWNjbGF5b3V0ID0gewogCS5lY2NieXRlcyA9IDMsCiAJLmVjY3BvcyA9IHswLCAxLCAyfSwKQEAgLTExMyw5ICsxMTMsOSBAQAogCX0KIH07CiAjZWxzZQotI2Vycm9yICJFaXRoZXIgQ0ZHX05BTkRfTEFSR0VQQUdFIG9yIENGR19OQU5EX1NNQUxMUEFHRSBtdXN0IGJlIGRlZmluZWQhIgorI2Vycm9yICJFaXRoZXIgQ09ORklHX1NZU19OQU5EX0xBUkdFUEFHRSBvciBDT05GSUdfU1lTX05BTkRfU01BTExQQUdFIG11c3QgYmUgZGVmaW5lZCEiCiAjZW5kaWYKLSNlbmRpZiAvKiBDRkdfREFWSU5DSV9CUk9LRU5fRUNDICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EQVZJTkNJX0JST0tFTl9FQ0MgKi8KIAogc3RhdGljIHZvaWQgbmFuZF9kYXZpbmNpX2VuYWJsZV9od2VjYyhzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgaW50IG1vZGUpCiB7CkBAIC0xNTQsNyArMTU0LDcgQEAKIHN0YXRpYyBpbnQgbmFuZF9kYXZpbmNpX2NhbGN1bGF0ZV9lY2Moc3RydWN0IG10ZF9pbmZvICptdGQsIGNvbnN0IHVfY2hhciAqZGF0LCB1X2NoYXIgKmVjY19jb2RlKQogewogCXVfaW50MzJfdAkJdG1wOwotI2lmZGVmIENGR19EQVZJTkNJX0JST0tFTl9FQ0MKKyNpZmRlZiBDT05GSUdfU1lTX0RBVklOQ0lfQlJPS0VOX0VDQwogCS8qCiAJICogVGhpcyBpcyBub3QgaG93IHlvdSBzaG91bGQgcmVhZCBFQ0NzIG9uIGxhcmdlIHBhZ2UgRGF2aW5jaSBkZXZpY2VzLgogCSAqIFRoZSByZWdpb24gcGFyYW1ldGVyIGdldHMgeW91IEVDQ3MgZm9yIGZsYXNoIGNoaXBzIG9uIGRpZmZlcmVudCBjaGlwCkBAIC0xOTEsMTEgKzE5MSwxMSBAQAogCSplY2NfY29kZSsrID0gdG1wOwogCSplY2NfY29kZSsrID0gdG1wID4+ICA4OwogCSplY2NfY29kZSsrID0gdG1wID4+IDE2OwotI2VuZGlmIC8qIENGR19EQVZJTkNJX0JST0tFTl9FQ0MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RBVklOQ0lfQlJPS0VOX0VDQyAqLwogCXJldHVybigwKTsKIH0KIAotI2lmZGVmIENGR19EQVZJTkNJX0JST0tFTl9FQ0MKKyNpZmRlZiBDT05GSUdfU1lTX0RBVklOQ0lfQlJPS0VOX0VDQwogc3RhdGljIHZvaWQgbmFuZF9kYXZpbmNpX2dlbl90cnVlX2VjYyh1X2ludDhfdCAqZWNjX2J1ZikKIHsKIAl1X2ludDMyX3QJdG1wID0gZWNjX2J1ZlswXSB8IChlY2NfYnVmWzFdIDw8IDE2KSB8ICgoZWNjX2J1ZlsyXSAmIDB4ZjApIDw8IDIwKSB8ICgoZWNjX2J1ZlsyXSAmIDB4MGYpIDw8IDgpOwpAQCAtMzEyLDEyICszMTIsMTIgQEAKIAkJCXJldHVybigtMSk7CiAJfQogfQotI2VuZGlmIC8qIENGR19EQVZJTkNJX0JST0tFTl9FQ0MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RBVklOQ0lfQlJPS0VOX0VDQyAqLwogCiBzdGF0aWMgaW50IG5hbmRfZGF2aW5jaV9jb3JyZWN0X2RhdGEoc3RydWN0IG10ZF9pbmZvICptdGQsIHVfY2hhciAqZGF0LCB1X2NoYXIgKnJlYWRfZWNjLCB1X2NoYXIgKmNhbGNfZWNjKQogewogCXN0cnVjdCBuYW5kX2NoaXAgKnRoaXMgPSBtdGQtPnByaXY7Ci0jaWZkZWYgQ0ZHX0RBVklOQ0lfQlJPS0VOX0VDQworI2lmZGVmIENPTkZJR19TWVNfREFWSU5DSV9CUk9LRU5fRUNDCiAJaW50CQkJYmxvY2tfY291bnQgPSAwLCBpLCByYzsKIAogCWJsb2NrX2NvdW50ID0gKHRoaXMtPmVjYy5zaXplLzUxMik7CkBAIC0zNjYsMTAgKzM2NiwxMCBAQAogCQkJcmV0dXJuIC0xOwogCQl9CiAJfQotI2VuZGlmIC8qIENGR19EQVZJTkNJX0JST0tFTl9FQ0MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RBVklOQ0lfQlJPS0VOX0VDQyAqLwogCXJldHVybigwKTsKIH0KLSNlbmRpZiAvKiBDRkdfTkFORF9IV19FQ0MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX05BTkRfSFdfRUNDICovCiAKIHN0YXRpYyBpbnQgbmFuZF9kYXZpbmNpX2Rldl9yZWFkeShzdHJ1Y3QgbXRkX2luZm8gKm10ZCkKIHsKQEAgLTQzMSwzMiArNDMxLDMyIEBACiAJbmFuZC0+SU9fQUREUl9XICAgPSAodm9pZCAgX19pb21lbSAqKU5BTkRfQ0UwREFUQTsKIAluYW5kLT5jaGlwX2RlbGF5ICA9IDA7CiAJbmFuZC0+c2VsZWN0X2NoaXAgPSBuYW5kX2RhdmluY2lfc2VsZWN0X2NoaXA7Ci0jaWZkZWYgQ0ZHX05BTkRfVVNFX0ZMQVNIX0JCVAorI2lmZGVmIENPTkZJR19TWVNfTkFORF9VU0VfRkxBU0hfQkJUCiAJbmFuZC0+b3B0aW9ucwkgID0gTkFORF9VU0VfRkxBU0hfQkJUOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX05BTkRfSFdfRUNDCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0hXX0VDQwogCW5hbmQtPmVjYy5tb2RlID0gTkFORF9FQ0NfSFc7Ci0jaWZkZWYgQ0ZHX0RBVklOQ0lfQlJPS0VOX0VDQworI2lmZGVmIENPTkZJR19TWVNfREFWSU5DSV9CUk9LRU5fRUNDCiAJbmFuZC0+ZWNjLmxheW91dCAgPSAmZGF2aW5jaV9uYW5kX2VjY2xheW91dDsKLSNpZmRlZiBDRkdfTkFORF9MQVJHRVBBR0UKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfTEFSR0VQQUdFCiAJbmFuZC0+ZWNjLnNpemUgPSAyMDQ4OwogCW5hbmQtPmVjYy5ieXRlcyA9IDEyOwotI2VsaWYgZGVmaW5lZChDRkdfTkFORF9TTUFMTFBBR0UpCisjZWxpZiBkZWZpbmVkKENPTkZJR19TWVNfTkFORF9TTUFMTFBBR0UpCiAJbmFuZC0+ZWNjLnNpemUgPSA1MTI7CiAJbmFuZC0+ZWNjLmJ5dGVzID0gMzsKICNlbHNlCi0jZXJyb3IgIkVpdGhlciBDRkdfTkFORF9MQVJHRVBBR0Ugb3IgQ0ZHX05BTkRfU01BTExQQUdFIG11c3QgYmUgZGVmaW5lZCEiCisjZXJyb3IgIkVpdGhlciBDT05GSUdfU1lTX05BTkRfTEFSR0VQQUdFIG9yIENPTkZJR19TWVNfTkFORF9TTUFMTFBBR0UgbXVzdCBiZSBkZWZpbmVkISIKICNlbmRpZgogI2Vsc2UKIAluYW5kLT5lY2Muc2l6ZSA9IDUxMjsKIAluYW5kLT5lY2MuYnl0ZXMgPSAzOwotI2VuZGlmIC8qIENGR19EQVZJTkNJX0JST0tFTl9FQ0MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RBVklOQ0lfQlJPS0VOX0VDQyAqLwogCW5hbmQtPmVjYy5jYWxjdWxhdGUgPSBuYW5kX2RhdmluY2lfY2FsY3VsYXRlX2VjYzsKIAluYW5kLT5lY2MuY29ycmVjdCAgPSBuYW5kX2RhdmluY2lfY29ycmVjdF9kYXRhOwogCW5hbmQtPmVjYy5od2N0bCAgPSBuYW5kX2RhdmluY2lfZW5hYmxlX2h3ZWNjOwogI2Vsc2UKIAluYW5kLT5lY2MubW9kZSA9IE5BTkRfRUNDX1NPRlQ7Ci0jZW5kaWYgLyogQ0ZHX05BTkRfSFdfRUNDICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OQU5EX0hXX0VDQyAqLwogCiAJLyogU2V0IGFkZHJlc3Mgb2YgaGFyZHdhcmUgY29udHJvbCBmdW5jdGlvbiAqLwogCW5hbmQtPmNtZF9jdHJsID0gbmFuZF9kYXZpbmNpX2h3Y29udHJvbDsKQEAgLTQ3Miw0ICs0NzIsNCBAQAogI2Vsc2UKICNlcnJvciAiVS1Cb290IGxlZ2FjeSBOQU5EIHN1cHBvcnQgbm90IGF2YWlsYWJsZSBmb3IgRGFWaW5jaSBjaGlwcyIKICNlbmRpZgotI2VuZGlmCS8qIENGR19VU0VfTkFORCAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfVVNFX05BTkQgKi8KZGlmZiAtLWdpdCBhL2NwdS9hcm05MjZlanMvZGF2aW5jaS90aW1lci5jIGIvY3B1L2FybTkyNmVqcy9kYXZpbmNpL3RpbWVyLmMKaW5kZXggNmM2NzBmMC4uNzczNzM1YSAxMDA2NDQKLS0tIGEvY3B1L2FybTkyNmVqcy9kYXZpbmNpL3RpbWVyLmMKKysrIGIvY3B1L2FybTkyNmVqcy9kYXZpbmNpL3RpbWVyLmMKQEAgLTU0LDkgKzU0LDkgQEAKIAl1X2ludDMyX3QJd2R0Y3I7CiB9IGRhdmluY2lfdGltZXI7CiAKLWRhdmluY2lfdGltZXIJCSp0aW1lciA9IChkYXZpbmNpX3RpbWVyICopQ0ZHX1RJTUVSQkFTRTsKK2RhdmluY2lfdGltZXIJCSp0aW1lciA9IChkYXZpbmNpX3RpbWVyICopQ09ORklHX1NZU19USU1FUkJBU0U7CiAKLSNkZWZpbmUgVElNRVJfTE9BRF9WQUwJKENGR19IWl9DTE9DSyAvIENGR19IWikKKyNkZWZpbmUgVElNRVJfTE9BRF9WQUwJKENPTkZJR19TWVNfSFpfQ0xPQ0sgLyBDT05GSUdfU1lTX0haKQogI2RlZmluZSBUSU1fQ0xLX0RJVgkxNgogCiBzdGF0aWMgdWxvbmcgdGltZXN0YW1wOwpAQCAtMTE3LDcgKzExNyw3IEBACiAJdWxvbmcgZW5kdGltZTsKIAlzaWduZWQgbG9uZyBkaWZmOwogCi0JdG1vID0gQ0ZHX0haX0NMT0NLIC8gMTAwMDsKKwl0bW8gPSBDT05GSUdfU1lTX0haX0NMT0NLIC8gMTAwMDsKIAl0bW8gKj0gdXNlYzsKIAl0bW8gLz0gKDEwMDAgKiBUSU1fQ0xLX0RJVik7CiAKQEAgLTE0NCw1ICsxNDQsNSBAQAogICovCiB1bG9uZyBnZXRfdGJjbGsodm9pZCkKIHsKLQlyZXR1cm4gQ0ZHX0haOworCXJldHVybiBDT05GSUdfU1lTX0haOwogfQpkaWZmIC0tZ2l0IGEvY3B1L2FybTkyNmVqcy9vbWFwL3RpbWVyLmMgYi9jcHUvYXJtOTI2ZWpzL29tYXAvdGltZXIuYwppbmRleCBhMmE5MTMzLi40OWU3NGFiIDEwMDY0NAotLS0gYS9jcHUvYXJtOTI2ZWpzL29tYXAvdGltZXIuYworKysgYi9jcHUvYXJtOTI2ZWpzL29tYXAvdGltZXIuYwpAQCAtNDEsNyArNDEsNyBAQAogI2RlZmluZSBUSU1FUl9MT0FEX1ZBTCAweGZmZmZmZmZmCiAKIC8qIG1hY3JvIHRvIHJlYWQgdGhlIDMyIGJpdCB0aW1lciAqLwotI2RlZmluZSBSRUFEX1RJTUVSICgqKHZvbGF0aWxlIHVsb25nICopKENGR19USU1FUkJBU0UrOCkpCisjZGVmaW5lIFJFQURfVElNRVIgKCoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UrOCkpCiAKIHN0YXRpYyB1bG9uZyB0aW1lc3RhbXA7CiBzdGF0aWMgdWxvbmcgbGFzdGRlYzsKQEAgLTUxLDkgKzUxLDkgQEAKIAlpbnQzMl90IHZhbDsKIAogCS8qIFN0YXJ0IHRoZSBkZWNyZW1lbnRlciB0aWNraW5nIGRvd24gZnJvbSAweGZmZmZmZmZmICovCi0JKigoaW50MzJfdCAqKSAoQ0ZHX1RJTUVSQkFTRSArIExPQURfVElNKSkgPSBUSU1FUl9MT0FEX1ZBTDsKLQl2YWwgPSBNUFVUSU1fU1QgfCBNUFVUSU1fQVIgfCBNUFVUSU1fQ0xPQ0tfRU5BQkxFIHwgKENGR19QVlQgPDwgTVBVVElNX1BUVl9CSVQpOwotCSooKGludDMyX3QgKikgKENGR19USU1FUkJBU0UgKyBDTlRMX1RJTUVSKSkgPSB2YWw7CisJKigoaW50MzJfdCAqKSAoQ09ORklHX1NZU19USU1FUkJBU0UgKyBMT0FEX1RJTSkpID0gVElNRVJfTE9BRF9WQUw7CisJdmFsID0gTVBVVElNX1NUIHwgTVBVVElNX0FSIHwgTVBVVElNX0NMT0NLX0VOQUJMRSB8IChDT05GSUdfU1lTX1BWVCA8PCBNUFVUSU1fUFRWX0JJVCk7CisJKigoaW50MzJfdCAqKSAoQ09ORklHX1NZU19USU1FUkJBU0UgKyBDTlRMX1RJTUVSKSkgPSB2YWw7CiAKIAkvKiBpbml0IHRoZSB0aW1lc3RhbXAgYW5kIGxhc3RkZWMgdmFsdWUgKi8KIAlyZXNldF90aW1lcl9tYXNrZWQoKTsKQEAgLTg3LDEwICs4NywxMCBAQAogCiAJaWYodXNlYyA+PSAxMDAwKXsJCS8qIGlmICJiaWciIG51bWJlciwgc3ByZWFkIG5vcm1hbGl6YXRpb24gdG8gc2Vjb25kcyAqLwogCQl0bW8gPSB1c2VjIC8gMTAwMDsJLyogc3RhcnQgdG8gbm9ybWFsaXplIGZvciB1c2VjIHRvIHRpY2tzIHBlciBzZWMgKi8KLQkJdG1vICo9IENGR19IWjsJCS8qIGZpbmQgbnVtYmVyIG9mICJ0aWNrcyIgdG8gd2FpdCB0byBhY2hpZXZlIHRhcmdldCAqLworCQl0bW8gKj0gQ09ORklHX1NZU19IWjsJCS8qIGZpbmQgbnVtYmVyIG9mICJ0aWNrcyIgdG8gd2FpdCB0byBhY2hpZXZlIHRhcmdldCAqLwogCQl0bW8gLz0gMTAwMDsJCS8qIGZpbmlzaCBub3JtYWxpemUuICovCiAJfWVsc2V7CQkJCS8qIGVsc2Ugc21hbGwgbnVtYmVyLCBkb24ndCBraWxsIGl0IHByaW9yIHRvIEhaIG11bHRpcGx5ICovCi0JCXRtbyA9IHVzZWMgKiBDRkdfSFo7CisJCXRtbyA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gKDEwMDAqMTAwMCk7CiAJfQogCkBAIC0xNDAsMTAgKzE0MCwxMCBAQAogCiAJaWYgKHVzZWMgPj0gMTAwMCkgewkJLyogaWYgImJpZyIgbnVtYmVyLCBzcHJlYWQgbm9ybWFsaXphdGlvbiB0byBzZWNvbmRzICovCiAJCXRtbyA9IHVzZWMgLyAxMDAwOwkvKiBzdGFydCB0byBub3JtYWxpemUgZm9yIHVzZWMgdG8gdGlja3MgcGVyIHNlYyAqLwotCQl0bW8gKj0gQ0ZHX0haOwkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCisJCXRtbyAqPSBDT05GSUdfU1lTX0haOwkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCiAJCXRtbyAvPSAxMDAwOwkJLyogZmluaXNoIG5vcm1hbGl6ZS4gKi8KIAl9IGVsc2UgewkJCS8qIGVsc2Ugc21hbGwgbnVtYmVyLCBkb24ndCBraWxsIGl0IHByaW9yIHRvIEhaIG11bHRpcGx5ICovCi0JCXRtbyA9IHVzZWMgKiBDRkdfSFo7CisJCXRtbyA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gKDEwMDAqMTAwMCk7CiAJfQogCkBAIC0xNzIsNiArMTcyLDYgQEAKIHsKIAl1bG9uZyB0YmNsazsKIAotCXRiY2xrID0gQ0ZHX0haOworCXRiY2xrID0gQ09ORklHX1NZU19IWjsKIAlyZXR1cm4gdGJjbGs7CiB9CmRpZmYgLS1naXQgYS9jcHUvYXJtOTI2ZWpzL3N0YXJ0LlMgYi9jcHUvYXJtOTI2ZWpzL3N0YXJ0LlMKaW5kZXggYTYxZmExOC4uZWQ0OTMyYSAxMDA2NDQKLS0tIGEvY3B1L2FybTkyNmVqcy9zdGFydC5TCisrKyBiL2NwdS9hcm05MjZlanMvc3RhcnQuUwpAQCAtMTY1LDggKzE2NSw4IEBACiAJLyogU2V0IHVwIHRoZSBzdGFjawkJCQkJCSAgICAqLwogc3RhY2tfc2V0dXA6CiAJbGRyCXIwLCBfVEVYVF9CQVNFCQkvKiB1cHBlciAxMjggS2lCOiByZWxvY2F0ZWQgdWJvb3QgICAqLwotCXN1YglyMCwgcjAsICNDRkdfTUFMTE9DX0xFTgkvKiBtYWxsb2MgYXJlYSAgICAgICAgICAgICAgICAgICAgICAqLwotCXN1YglyMCwgcjAsICNDRkdfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8gICAgICAgICAgICAgICAgICAgICAgICAqLworCXN1YglyMCwgcjAsICNDT05GSUdfU1lTX01BTExPQ19MRU4JLyogbWFsbG9jIGFyZWEgICAgICAgICAgICAgICAgICAgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC8qIGJkaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKIAlzdWIJcjAsIHIwLCAjKENPTkZJR19TVEFDS1NJWkVfSVJRK0NPTkZJR19TVEFDS1NJWkVfRklRKQogI2VuZGlmCkBAIC0yNzYsOCArMjc2LDggQEAKIAlzdG1pYQlzcCwge3IwIC0gcjEyfQlAIFNhdmUgdXNlciByZWdpc3RlcnMgKG5vdyBpbiBzdmMgbW9kZSkgcjAtcjEyCiAKIAlsZHIJcjIsIF9hcm1ib290X3N0YXJ0Ci0Jc3ViCXIyLCByMiwgIyhDT05GSUdfU1RBQ0tTSVpFK0NGR19NQUxMT0NfTEVOKQotCXN1YglyMiwgcjIsICMoQ0ZHX0dCTF9EQVRBX1NJWkUrOCkgIEAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCisJc3ViCXIyLCByMiwgIyhDT05GSUdfU1RBQ0tTSVpFK0NPTkZJR19TWVNfTUFMTE9DX0xFTikKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KSAgQCBzZXQgYmFzZSAyIHdvcmRzIGludG8gYWJvcnQgc3RhY2sKIAlAIGdldCB2YWx1ZXMgZm9yICJhYm9ydGVkIiBwYyBhbmQgY3BzciAoaW50byBwYXJtIHJlZ3MpCiAJbGRtaWEJcjIsIHtyMiAtIHIzfQogCWFkZAlyMCwgc3AsICNTX0ZSQU1FX1NJWkUJCUAgZ3JhYiBwb2ludGVyIHRvIG9sZCBzdGFjawpAQCAtMzEwLDggKzMxMCw4IEBACiAKIAkubWFjcm8gZ2V0X2JhZF9zdGFjawogCWxkcglyMTMsIF9hcm1ib290X3N0YXJ0CQlAIHNldHVwIG91ciBtb2RlIHN0YWNrCi0Jc3ViCXIxMywgcjEzLCAjKENPTkZJR19TVEFDS1NJWkUrQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIxMywgcjEzLCAjKENGR19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRStDT05GSUdfU1lTX01BTExPQ19MRU4pCisJc3ViCXIxMywgcjEzLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KSBAIHJlc2VydmVkIGEgY291cGxlIHNwb3RzIGluIGFib3J0IHN0YWNrCiAKIAlzdHIJbHIsIFtyMTNdCUAgc2F2ZSBjYWxsZXIgbHIgaW4gcG9zaXRpb24gMCBvZiBzYXZlZCBzdGFjawogCW1ycwlsciwgc3BzcglAIGdldCB0aGUgc3BzcgpkaWZmIC0tZ2l0IGEvY3B1L2FybTkyNmVqcy92ZXJzYXRpbGUvdGltZXIuYyBiL2NwdS9hcm05MjZlanMvdmVyc2F0aWxlL3RpbWVyLmMKaW5kZXggZjAxZjMxOC4uOWFjODY3ZSAxMDA3NTUKLS0tIGEvY3B1L2FybTkyNmVqcy92ZXJzYXRpbGUvdGltZXIuYworKysgYi9jcHUvYXJtOTI2ZWpzL3ZlcnNhdGlsZS90aW1lci5jCkBAIC00MSw3ICs0MSw3IEBACiAjZGVmaW5lIFRJTUVSX0xPQURfVkFMIDB4ZmZmZmZmZmYKIAogLyogbWFjcm8gdG8gcmVhZCB0aGUgMzIgYml0IHRpbWVyICovCi0jZGVmaW5lIFJFQURfVElNRVIgKCoodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX1RJTUVSQkFTRSs0KSkKKyNkZWZpbmUgUkVBRF9USU1FUiAoKih2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX1RJTUVSQkFTRSs0KSkKIAogc3RhdGljIHVsb25nIHRpbWVzdGFtcDsKIHN0YXRpYyB1bG9uZyBsYXN0ZGVjOwpAQCAtNjIsOSArNjIsOSBAQAogCXVsb25nCXRtcl9jdHJsX3ZhbDsKIAogCS8qIDFzdCBkaXNhYmxlIHRoZSBUaW1lciAqLwotCXRtcl9jdHJsX3ZhbCA9ICoodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX1RJTUVSQkFTRSArIDgpOworCXRtcl9jdHJsX3ZhbCA9ICoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UgKyA4KTsKIAl0bXJfY3RybF92YWwgJj0gflRJTUVSX0VOQUJMRTsKLQkqKHZvbGF0aWxlIHVsb25nICopKENGR19USU1FUkJBU0UgKyA4KSA9IHRtcl9jdHJsX3ZhbDsKKwkqKHZvbGF0aWxlIHVsb25nICopKENPTkZJR19TWVNfVElNRVJCQVNFICsgOCkgPSB0bXJfY3RybF92YWw7CiAKIAkvKgogCSAqIFRoZSBUaW1lciBDb250cm9sIFJlZ2lzdGVyIGhhcyBvbmUgVW5kZWZpbmVkL1Nob3VsZG4ndCBVc2UgQml0CkBAIC03OCwxMSArNzgsMTEgQEAKIAkgKiBUbXIgU2l6IDogMTYgQml0IENvdW50ZXIKIAkgKiBUbXIgaW4gV3JhcHBpbmcgTW9kZQogCSAqLwotCXRtcl9jdHJsX3ZhbCA9ICoodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX1RJTUVSQkFTRSArIDgpOworCXRtcl9jdHJsX3ZhbCA9ICoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UgKyA4KTsKIAl0bXJfY3RybF92YWwgJj0gfihUSU1FUl9NT0RFX01TSyB8IFRJTUVSX0lOVF9FTiB8IFRJTUVSX1BSU19NU0sgfCBUSU1FUl9TSVpFX01TSyB8IFRJTUVSX09ORV9TSFQgKTsKIAl0bXJfY3RybF92YWwgfD0gKFRJTUVSX0VOQUJMRSB8IFRJTUVSX1BSU184Uyk7CiAKLQkqKHZvbGF0aWxlIHVsb25nICopKENGR19USU1FUkJBU0UgKyA4KSA9IHRtcl9jdHJsX3ZhbDsKKwkqKHZvbGF0aWxlIHVsb25nICopKENPTkZJR19TWVNfVElNRVJCQVNFICsgOCkgPSB0bXJfY3RybF92YWw7CiAKIAkvKiBpbml0IHRoZSB0aW1lc3RhbXAgYW5kIGxhc3RkZWMgdmFsdWUgKi8KIAlyZXNldF90aW1lcl9tYXNrZWQoKTsKQEAgLTExNiwxMCArMTE2LDEwIEBACiAKIAlpZih1c2VjID49IDEwMDApewkJLyogaWYgImJpZyIgbnVtYmVyLCBzcHJlYWQgbm9ybWFsaXphdGlvbiB0byBzZWNvbmRzICovCiAJCXRtbyA9IHVzZWMgLyAxMDAwOwkvKiBzdGFydCB0byBub3JtYWxpemUgZm9yIHVzZWMgdG8gdGlja3MgcGVyIHNlYyAqLwotCQl0bW8gKj0gQ0ZHX0haOwkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCisJCXRtbyAqPSBDT05GSUdfU1lTX0haOwkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCiAJCXRtbyAvPSAxMDAwOwkJLyogZmluaXNoIG5vcm1hbGl6ZS4gKi8KIAl9ZWxzZXsJCQkJLyogZWxzZSBzbWFsbCBudW1iZXIsIGRvbid0IGtpbGwgaXQgcHJpb3IgdG8gSFogbXVsdGlwbHkgKi8KLQkJdG1vID0gdXNlYyAqIENGR19IWjsKKwkJdG1vID0gdXNlYyAqIENPTkZJR19TWVNfSFo7CiAJCXRtbyAvPSAoMTAwMCoxMDAwKTsKIAl9CiAKQEAgLTE2OSwxMCArMTY5LDEwIEBACiAKIAlpZiAodXNlYyA+PSAxMDAwKSB7CQkvKiBpZiAiYmlnIiBudW1iZXIsIHNwcmVhZCBub3JtYWxpemF0aW9uIHRvIHNlY29uZHMgKi8KIAkJdG1vID0gdXNlYyAvIDEwMDA7CS8qIHN0YXJ0IHRvIG5vcm1hbGl6ZSBmb3IgdXNlYyB0byB0aWNrcyBwZXIgc2VjICovCi0JCXRtbyAqPSBDRkdfSFo7CQkvKiBmaW5kIG51bWJlciBvZiAidGlja3MiIHRvIHdhaXQgdG8gYWNoaWV2ZSB0YXJnZXQgKi8KKwkJdG1vICo9IENPTkZJR19TWVNfSFo7CQkvKiBmaW5kIG51bWJlciBvZiAidGlja3MiIHRvIHdhaXQgdG8gYWNoaWV2ZSB0YXJnZXQgKi8KIAkJdG1vIC89IDEwMDA7CQkvKiBmaW5pc2ggbm9ybWFsaXplLiAqLwogCX0gZWxzZSB7CQkJLyogZWxzZSBzbWFsbCBudW1iZXIsIGRvbid0IGtpbGwgaXQgcHJpb3IgdG8gSFogbXVsdGlwbHkgKi8KLQkJdG1vID0gdXNlYyAqIENGR19IWjsKKwkJdG1vID0gdXNlYyAqIENPTkZJR19TWVNfSFo7CiAJCXRtbyAvPSAoMTAwMCoxMDAwKTsKIAl9CiAKQEAgLTIwMSw2ICsyMDEsNiBAQAogewogCXVsb25nIHRiY2xrOwogCi0JdGJjbGsgPSBDRkdfSFo7CisJdGJjbGsgPSBDT05GSUdfU1lTX0haOwogCXJldHVybiB0YmNsazsKIH0KZGlmZiAtLWdpdCBhL2NwdS9hcm05NDZlcy9jcHUuYyBiL2NwdS9hcm05NDZlcy9jcHUuYwppbmRleCA0YzYzYThkLi40NGM1ODlhIDEwMDY0NAotLS0gYS9jcHUvYXJtOTQ2ZXMvY3B1LmMKKysrIGIvY3B1L2FybTk0NmVzL2NwdS5jCkBAIC05NSw3ICs5NSw3IEBACiAJICogc2V0dXAgdXAgc3RhY2tzIGlmIG5lY2Vzc2FyeQogCSAqLwogI2lmZGVmIENPTkZJR19VU0VfSVJRCi0JSVJRX1NUQUNLX1NUQVJUID0gX2FybWJvb3Rfc3RhcnQgLSBDRkdfTUFMTE9DX0xFTiAtIENGR19HQkxfREFUQV9TSVpFIC0gNDsKKwlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENPTkZJR19TWVNfTUFMTE9DX0xFTiAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAtIDQ7CiAJRklRX1NUQUNLX1NUQVJUID0gSVJRX1NUQUNLX1NUQVJUIC0gQ09ORklHX1NUQUNLU0laRV9JUlE7CiAjZW5kaWYKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2NwdS9hcm05NDZlcy9pbnRlcnJ1cHRzLmMgYi9jcHUvYXJtOTQ2ZXMvaW50ZXJydXB0cy5jCmluZGV4IGEyYzM2NDYuLmMxM2QzMDkgMTAwNjQ0Ci0tLSBhL2NwdS9hcm05NDZlcy9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L2FybTk0NmVzL2ludGVycnVwdHMuYwpAQCAtMTIxLDEwICsxMjEsMTAgQEAKIAogCWlmKHVzZWMgPj0gMTAwMCl7ICAgICAgICAgICAgICAgLyogaWYgImJpZyIgbnVtYmVyLCBzcHJlYWQgbm9ybWFsaXphdGlvbiB0byBzZWNvbmRzICovCiAJCXRtbyA9IHVzZWMgLyAxMDAwOyAgICAgIC8qIHN0YXJ0IHRvIG5vcm1hbGl6ZSBmb3IgdXNlYyB0byB0aWNrcyBwZXIgc2VjICovCi0JCXRtbyAqPSBDRkdfSFpfQ0xPQ0s7ICAgIC8qIGZpbmQgbnVtYmVyIG9mICJ0aWNrcyIgdG8gd2FpdCB0byBhY2hpZXZlIHRhcmdldCAqLworCQl0bW8gKj0gQ09ORklHX1NZU19IWl9DTE9DSzsgICAgLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCiAJCXRtbyAvPSAxMDAwOyAgICAgICAgICAgIC8qIGZpbmlzaCBub3JtYWxpemUuICovCiAJfWVsc2V7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBlbHNlIHNtYWxsIG51bWJlciwgZG9uJ3Qga2lsbCBpdCBwcmlvciB0byBIWiBtdWx0aXBseSAqLwotCQl0bW8gPSB1c2VjICogQ0ZHX0haX0NMT0NLOworCQl0bW8gPSB1c2VjICogQ09ORklHX1NZU19IWl9DTE9DSzsKIAkJdG1vIC89ICgxMDAwKjEwMDApOwogCX0KIApAQCAtMTUxLDcgKzE1MSw3IEBACiB7CiAJdWxvbmcgdGJjbGs7CiAKLQl0YmNsayA9IENGR19IWjsKKwl0YmNsayA9IENPTkZJR19TWVNfSFo7CiAJcmV0dXJuIHRiY2xrOwogfQogCmRpZmYgLS1naXQgYS9jcHUvYXJtOTQ2ZXMvc3RhcnQuUyBiL2NwdS9hcm05NDZlcy9zdGFydC5TCmluZGV4IDllOTdmNTMuLjc5NzJiMDAgMTAwNjQ0Ci0tLSBhL2NwdS9hcm05NDZlcy9zdGFydC5TCisrKyBiL2NwdS9hcm05NDZlcy9zdGFydC5TCkBAIC0xNTcsOCArMTU3LDggQEAKIAkvKiBTZXQgdXAgdGhlIHN0YWNrCQkJCQkJICAgICovCiBzdGFja19zZXR1cDoKIAlsZHIJcjAsIF9URVhUX0JBU0UJCS8qIHVwcGVyIDEyOCBLaUI6IHJlbG9jYXRlZCB1Ym9vdCAgICovCi0Jc3ViCXIwLCByMCwgI0NGR19NQUxMT0NfTEVOCS8qIG1hbGxvYyBhcmVhICAgICAgICAgICAgICAgICAgICAgICovCi0Jc3ViCXIwLCByMCwgI0NGR19HQkxfREFUQV9TSVpFIC8qIGJkaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfTUFMTE9DX0xFTgkvKiBtYWxsb2MgYXJlYSAgICAgICAgICAgICAgICAgICAgICAqLworCXN1YglyMCwgcjAsICNDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgLyogYmRpbmZvICAgICAgICAgICAgICAgICAgICAgICAgKi8KICNpZmRlZiBDT05GSUdfVVNFX0lSUQogCXN1YglyMCwgcjAsICMoQ09ORklHX1NUQUNLU0laRV9JUlErQ09ORklHX1NUQUNLU0laRV9GSVEpCiAjZW5kaWYKQEAgLTI2NCw4ICsyNjQsOCBAQAogCXN0bWlhCXNwLCB7cjAgLSByMTJ9CUAgU2F2ZSB1c2VyIHJlZ2lzdGVycyAobm93IGluIHN2YyBtb2RlKSByMC1yMTIKIAogCWxkcglyMiwgX2FybWJvb3Rfc3RhcnQKLQlzdWIJcjIsIHIyLCAjKENPTkZJR19TVEFDS1NJWkUrQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIyLCByMiwgIyhDRkdfR0JMX0RBVEFfU0laRSs4KSAgQCBzZXQgYmFzZSAyIHdvcmRzIGludG8gYWJvcnQgc3RhY2sKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TVEFDS1NJWkUrQ09ORklHX1NZU19NQUxMT0NfTEVOKQorCXN1YglyMiwgcjIsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKzgpICBAIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjawogCUAgZ2V0IHZhbHVlcyBmb3IgImFib3J0ZWQiIHBjIGFuZCBjcHNyIChpbnRvIHBhcm0gcmVncykKIAlsZG1pYQlyMiwge3IyIC0gcjN9CiAJYWRkCXIwLCBzcCwgI1NfRlJBTUVfU0laRQkJQCBncmFiIHBvaW50ZXIgdG8gb2xkIHN0YWNrCkBAIC0yOTgsOCArMjk4LDggQEAKIAogCS5tYWNybyBnZXRfYmFkX3N0YWNrCiAJbGRyCXIxMywgX2FybWJvb3Rfc3RhcnQJCUAgc2V0dXAgb3VyIG1vZGUgc3RhY2sKLQlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRStDRkdfTUFMTE9DX0xFTikKLQlzdWIJcjEzLCByMTMsICMoQ0ZHX0dCTF9EQVRBX1NJWkUrOCkgQCByZXNlcnZlZCBhIGNvdXBsZSBzcG90cyBpbiBhYm9ydCBzdGFjaworCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1RBQ0tTSVpFK0NPTkZJR19TWVNfTUFMTE9DX0xFTikKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKIAogCXN0cglsciwgW3IxM10JQCBzYXZlIGNhbGxlciBsciBpbiBwb3NpdGlvbiAwIG9mIHNhdmVkIHN0YWNrCiAJbXJzCWxyLCBzcHNyCUAgZ2V0IHRoZSBzcHNyCmRpZmYgLS1naXQgYS9jcHUvYXJtX2ludGNtL2NwdS5jIGIvY3B1L2FybV9pbnRjbS9jcHUuYwppbmRleCBlMjMwOWY4Li5jY2Y3ZmQ1IDEwMDY0NAotLS0gYS9jcHUvYXJtX2ludGNtL2NwdS5jCisrKyBiL2NwdS9hcm1faW50Y20vY3B1LmMKQEAgLTQzLDcgKzQzLDcgQEAKIAkgKiBzZXR1cCB1cCBzdGFja3MgaWYgbmVjZXNzYXJ5CiAJICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKLQlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOIC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSA0OworCUlSUV9TVEFDS19TVEFSVCA9IF9hcm1ib290X3N0YXJ0IC0gQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gNDsKIAlGSVFfU1RBQ0tfU1RBUlQgPSBJUlFfU1RBQ0tfU1RBUlQgLSBDT05GSUdfU1RBQ0tTSVpFX0lSUTsKICNlbmRpZgogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvY3B1L2FybV9pbnRjbS9zdGFydC5TIGIvY3B1L2FybV9pbnRjbS9zdGFydC5TCmluZGV4IGQ1Nzc4YTAuLmVlMDgwNGEgMTAwNjQ0Ci0tLSBhL2NwdS9hcm1faW50Y20vc3RhcnQuUworKysgYi9jcHUvYXJtX2ludGNtL3N0YXJ0LlMKQEAgLTE1NSw4ICsxNTUsOCBAQAogCS8qIFNldCB1cCB0aGUgc3RhY2sJCQkJCQkgICAgKi8KIHN0YWNrX3NldHVwOgogCWxkcglyMCwgX1RFWFRfQkFTRQkJLyogdXBwZXIgMTI4IEtpQjogcmVsb2NhdGVkIHVib290ICAgKi8KLQlzdWIJcjAsIHIwLCAjQ0ZHX01BTExPQ19MRU4JLyogbWFsbG9jIGFyZWEgICAgICAgICAgICAgICAgICAgICAgKi8KLQlzdWIJcjAsIHIwLCAjQ0ZHX0dCTF9EQVRBX1NJWkUgLyogYmRpbmZvICAgICAgICAgICAgICAgICAgICAgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19NQUxMT0NfTEVOCS8qIG1hbGxvYyBhcmVhICAgICAgICAgICAgICAgICAgICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8gICAgICAgICAgICAgICAgICAgICAgICAqLwogI2lmZGVmIENPTkZJR19VU0VfSVJRCiAJc3ViCXIwLCByMCwgIyhDT05GSUdfU1RBQ0tTSVpFX0lSUStDT05GSUdfU1RBQ0tTSVpFX0ZJUSkKICNlbmRpZgpAQCAtMjQwLDggKzI0MCw4IEBACiAJc3RtaWEJc3AsIHtyMCAtIHIxMn0JQCBTYXZlIHVzZXIgcmVnaXN0ZXJzIChub3cgaW4gc3ZjIG1vZGUpIHIwLXIxMgogCiAJbGRyCXIyLCBfYXJtYm9vdF9zdGFydAotCXN1YglyMiwgcjIsICMoQ09ORklHX1NUQUNLU0laRStDRkdfTUFMTE9DX0xFTikKLQlzdWIJcjIsIHIyLCAjKENGR19HQkxfREFUQV9TSVpFKzgpICBAIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjaworCXN1YglyMiwgcjIsICMoQ09ORklHX1NUQUNLU0laRStDT05GSUdfU1lTX01BTExPQ19MRU4pCisJc3ViCXIyLCByMiwgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkgIEAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCiAJQCBnZXQgdmFsdWVzIGZvciAiYWJvcnRlZCIgcGMgYW5kIGNwc3IgKGludG8gcGFybSByZWdzKQogCWxkbWlhCXIyLCB7cjIgLSByM30KIAlhZGQJcjAsIHNwLCAjU19GUkFNRV9TSVpFCQlAIGdyYWIgcG9pbnRlciB0byBvbGQgc3RhY2sKQEAgLTI3NCw4ICsyNzQsOCBAQAogCiAJLm1hY3JvIGdldF9iYWRfc3RhY2sKIAlsZHIJcjEzLCBfYXJtYm9vdF9zdGFydAkJQCBzZXR1cCBvdXIgbW9kZSBzdGFjawotCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1RBQ0tTSVpFK0NGR19NQUxMT0NfTEVOKQotCXN1YglyMTMsIHIxMywgIyhDRkdfR0JMX0RBVEFfU0laRSs4KSBAIHJlc2VydmVkIGEgY291cGxlIHNwb3RzIGluIGFib3J0IHN0YWNrCisJc3ViCXIxMywgcjEzLCAjKENPTkZJR19TVEFDS1NJWkUrQ09ORklHX1NZU19NQUxMT0NfTEVOKQorCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkgQCByZXNlcnZlZCBhIGNvdXBsZSBzcG90cyBpbiBhYm9ydCBzdGFjawogCiAJc3RyCWxyLCBbcjEzXQlAIHNhdmUgY2FsbGVyIGxyIGluIHBvc2l0aW9uIDAgb2Ygc2F2ZWQgc3RhY2sKIAltcnMJbHIsIHNwc3IJQCBnZXQgdGhlIHNwc3IKZGlmZiAtLWdpdCBhL2NwdS9hdDMyYXAvYXQzMmFwNzAweC9jbGsuYyBiL2NwdS9hdDMyYXAvYXQzMmFwNzAweC9jbGsuYwppbmRleCBiM2FhMDM0Li4yYjFjZDM2IDEwMDY0NAotLS0gYS9jcHUvYXQzMmFwL2F0MzJhcDcwMHgvY2xrLmMKKysrIGIvY3B1L2F0MzJhcC9hdDMyYXA3MDB4L2Nsay5jCkBAIC0zOCwxMCArMzgsMTAgQEAKIAogI2lmZGVmIENPTkZJR19QTEwKIAkvKiBJbml0aWFsaXplIHRoZSBQTEwgKi8KLQlzbV93cml0ZWwoUE1fUExMMCwgKFNNX0JGKFBMTENPVU5ULCBDRkdfUExMMF9TVVBQUkVTU19DWUNMRVMpCi0JCQkgICAgfCBTTV9CRihQTExNVUwsIENGR19QTEwwX01VTCAtIDEpCi0JCQkgICAgfCBTTV9CRihQTExESVYsIENGR19QTEwwX0RJViAtIDEpCi0JCQkgICAgfCBTTV9CRihQTExPUFQsIENGR19QTEwwX09QVCkKKwlzbV93cml0ZWwoUE1fUExMMCwgKFNNX0JGKFBMTENPVU5ULCBDT05GSUdfU1lTX1BMTDBfU1VQUFJFU1NfQ1lDTEVTKQorCQkJICAgIHwgU01fQkYoUExMTVVMLCBDT05GSUdfU1lTX1BMTDBfTVVMIC0gMSkKKwkJCSAgICB8IFNNX0JGKFBMTERJViwgQ09ORklHX1NZU19QTEwwX0RJViAtIDEpCisJCQkgICAgfCBTTV9CRihQTExPUFQsIENPTkZJR19TWVNfUExMMF9PUFQpCiAJCQkgICAgfCBTTV9CRihQTExPU0MsIDApCiAJCQkgICAgfCBTTV9CSVQoUExMRU4pKSk7CiAKQEAgLTUxLDE0ICs1MSwxNCBAQAogCiAJLyogU2V0IHVwIGNsb2NrcyBmb3IgdGhlIENQVSBhbmQgYWxsIHBlcmlwaGVyYWwgYnVzZXMgKi8KIAlja3NlbCA9IDA7Ci0JaWYgKENGR19DTEtESVZfQ1BVKQotCQlja3NlbCB8PSBTTV9CSVQoQ1BVRElWKSB8IFNNX0JGKENQVVNFTCwgQ0ZHX0NMS0RJVl9DUFUgLSAxKTsKLQlpZiAoQ0ZHX0NMS0RJVl9IU0IpCi0JCWNrc2VsIHw9IFNNX0JJVChIU0JESVYpIHwgU01fQkYoSFNCU0VMLCBDRkdfQ0xLRElWX0hTQiAtIDEpOwotCWlmIChDRkdfQ0xLRElWX1BCQSkKLQkJY2tzZWwgfD0gU01fQklUKFBCQURJVikgfCBTTV9CRihQQkFTRUwsIENGR19DTEtESVZfUEJBIC0gMSk7Ci0JaWYgKENGR19DTEtESVZfUEJCKQotCQlja3NlbCB8PSBTTV9CSVQoUEJCRElWKSB8IFNNX0JGKFBCQlNFTCwgQ0ZHX0NMS0RJVl9QQkIgLSAxKTsKKwlpZiAoQ09ORklHX1NZU19DTEtESVZfQ1BVKQorCQlja3NlbCB8PSBTTV9CSVQoQ1BVRElWKSB8IFNNX0JGKENQVVNFTCwgQ09ORklHX1NZU19DTEtESVZfQ1BVIC0gMSk7CisJaWYgKENPTkZJR19TWVNfQ0xLRElWX0hTQikKKwkJY2tzZWwgfD0gU01fQklUKEhTQkRJVikgfCBTTV9CRihIU0JTRUwsIENPTkZJR19TWVNfQ0xLRElWX0hTQiAtIDEpOworCWlmIChDT05GSUdfU1lTX0NMS0RJVl9QQkEpCisJCWNrc2VsIHw9IFNNX0JJVChQQkFESVYpIHwgU01fQkYoUEJBU0VMLCBDT05GSUdfU1lTX0NMS0RJVl9QQkEgLSAxKTsKKwlpZiAoQ09ORklHX1NZU19DTEtESVZfUEJCKQorCQlja3NlbCB8PSBTTV9CSVQoUEJCRElWKSB8IFNNX0JGKFBCQlNFTCwgQ09ORklHX1NZU19DTEtESVZfUEJCIC0gMSk7CiAJc21fd3JpdGVsKFBNX0NLU0VMLCBja3NlbCk7CiAKICNpZmRlZiBDT05GSUdfUExMCmRpZmYgLS1naXQgYS9jcHUvYXQzMmFwL2F0MzJhcDcwMHgvZ3Bpby5jIGIvY3B1L2F0MzJhcC9hdDMyYXA3MDB4L2dwaW8uYwppbmRleCA1NmJhMmY5Li45MWJiNjM2IDEwMDY0NAotLS0gYS9jcHUvYXQzMmFwL2F0MzJhcDcwMHgvZ3Bpby5jCisrKyBiL2NwdS9hdDMyYXAvYXQzMmFwNzAweC9ncGlvLmMKQEAgLTMzLDggKzMzLDggQEAKICAqLwogdm9pZCBncGlvX2VuYWJsZV9lYmkodm9pZCkKIHsKLSNpZmRlZiBDRkdfSFNEUkFNQwotI2lmbmRlZiBDRkdfU0RSQU1fMTZCSVQKKyNpZmRlZiBDT05GSUdfU1lTX0hTRFJBTUMKKyNpZm5kZWYgQ09ORklHX1NZU19TRFJBTV8xNkJJVAogCWdwaW9fc2VsZWN0X3BlcmlwaF9BKEdQSU9fUElOX1BFMCwgMCk7CiAJZ3Bpb19zZWxlY3RfcGVyaXBoX0EoR1BJT19QSU5fUEUxLCAwKTsKIAlncGlvX3NlbGVjdF9wZXJpcGhfQShHUElPX1BJTl9QRTIsIDApOwpkaWZmIC0tZ2l0IGEvY3B1L2F0MzJhcC9jYWNoZS5jIGIvY3B1L2F0MzJhcC9jYWNoZS5jCmluZGV4IDQxZmI1YWEuLjE2YTA1NjUgMTAwNjQ0Ci0tLSBhL2NwdS9hdDMyYXAvY2FjaGUuYworKysgYi9jcHUvYXQzMmFwL2NhY2hlLmMKQEAgLTI4LDcgKzI4LDcgQEAKIHsKIAl1bnNpZ25lZCBsb25nIHYsIGJlZ2luLCBlbmQsIGxpbmVzejsKIAotCWxpbmVzeiA9IENGR19EQ0FDSEVfTElORVNaOworCWxpbmVzeiA9IENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWjsKIAogCS8qIFlvdSBhc2tlZCBmb3IgaXQsIHlvdSBnb3QgaXQgKi8KIAliZWdpbiA9ICh1bnNpZ25lZCBsb25nKXN0YXJ0ICYgfihsaW5lc3ogLSAxKTsKQEAgLTQ0LDcgKzQ0LDcgQEAKIHsKIAl1bnNpZ25lZCBsb25nIHYsIGJlZ2luLCBlbmQsIGxpbmVzejsKIAotCWxpbmVzeiA9IENGR19EQ0FDSEVfTElORVNaOworCWxpbmVzeiA9IENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWjsKIAogCS8qIFlvdSBhc2tlZCBmb3IgaXQsIHlvdSBnb3QgaXQgKi8KIAliZWdpbiA9ICh1bnNpZ25lZCBsb25nKXN0YXJ0ICYgfihsaW5lc3ogLSAxKTsKQEAgLTU4LDcgKzU4LDcgQEAKIHsKIAl1bnNpZ25lZCBsb25nIHYsIGJlZ2luLCBlbmQsIGxpbmVzejsKIAotCWxpbmVzeiA9IENGR19EQ0FDSEVfTElORVNaOworCWxpbmVzeiA9IENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWjsKIAogCS8qIFlvdSBhc2tlZCBmb3IgaXQsIHlvdSBnb3QgaXQgKi8KIAliZWdpbiA9ICh1bnNpZ25lZCBsb25nKXN0YXJ0ICYgfihsaW5lc3ogLSAxKTsKQEAgLTc0LDcgKzc0LDcgQEAKIHsKIAl1bnNpZ25lZCBsb25nIHYsIGJlZ2luLCBlbmQsIGxpbmVzejsKIAotCWxpbmVzeiA9IENGR19JQ0FDSEVfTElORVNaOworCWxpbmVzeiA9IENPTkZJR19TWVNfSUNBQ0hFX0xJTkVTWjsKIAogCS8qIFlvdSBhc2tlZCBmb3IgaXQsIHlvdSBnb3QgaXQgKi8KIAliZWdpbiA9ICh1bnNpZ25lZCBsb25nKXN0YXJ0ICYgfihsaW5lc3ogLSAxKTsKZGlmZiAtLWdpdCBhL2NwdS9hdDMyYXAvY3B1LmMgYi9jcHUvYXQzMmFwL2NwdS5jCmluZGV4IDFhMTM3MDIuLmY5MmQzZTIgMTAwNjQ0Ci0tLSBhL2NwdS9hdDMyYXAvY3B1LmMKKysrIGIvY3B1L2F0MzJhcC9jcHUuYwpAQCAtMzIsMTIgKzMyLDEyIEBACiAjaW5jbHVkZSAiaHNtYzMuaCIKIAogLyogU2FuaXR5IGNoZWNrcyAqLwotI2lmIChDRkdfQ0xLRElWX0NQVSA+IENGR19DTEtESVZfSFNCKQkJXAotCXx8IChDRkdfQ0xLRElWX0hTQiA+IENGR19DTEtESVZfUEJBKQlcCi0JfHwgKENGR19DTEtESVZfSFNCID4gQ0ZHX0NMS0RJVl9QQkIpCisjaWYgKENPTkZJR19TWVNfQ0xLRElWX0NQVSA+IENPTkZJR19TWVNfQ0xLRElWX0hTQikJCVwKKwl8fCAoQ09ORklHX1NZU19DTEtESVZfSFNCID4gQ09ORklHX1NZU19DTEtESVZfUEJBKQlcCisJfHwgKENPTkZJR19TWVNfQ0xLRElWX0hTQiA+IENPTkZJR19TWVNfQ0xLRElWX1BCQikKICMgZXJyb3IgQ29uc3RyYWludCBmQ1BVID49IGZIU0IgPj0gZlBCe0EsQn0gdmlvbGF0ZWQKICNlbmRpZgotI2lmIGRlZmluZWQoQ09ORklHX1BMTCkgJiYgKChDRkdfUExMMF9NVUwgPCAxKSB8fCAoQ0ZHX1BMTDBfRElWIDwgMSkpCisjaWYgZGVmaW5lZChDT05GSUdfUExMKSAmJiAoKENPTkZJR19TWVNfUExMMF9NVUwgPCAxKSB8fCAoQ09ORklHX1NZU19QTEwwX0RJViA8IDEpKQogIyBlcnJvciBJbnZhbGlkIFBMTCBtdWx0aXBsaWVyIGFuZC9vciBkaXZpZGVyCiAjZW5kaWYKIApAQCAtNDcsNyArNDcsNyBAQAogewogCWV4dGVybiB2b2lkIF9ldmJhKHZvaWQpOwogCi0JZ2QtPmNwdV9oeiA9IENGR19PU0MwX0haOworCWdkLT5jcHVfaHogPSBDT05GSUdfU1lTX09TQzBfSFo7CiAKIAkvKiBUT0RPOiBNb3ZlIHNvbWV3aGVyZSBlbHNlLCBidXQgbmVlZHMgdG8gYmUgcnVuIGJlZm9yZSB3ZQogCSAqIGluY3JlYXNlIHRoZSBjbG9jayBmcmVxdWVuY3kuICovCmRpZmYgLS1naXQgYS9jcHUvYXQzMmFwL2hzZHJhbWMuYyBiL2NwdS9hdDMyYXAvaHNkcmFtYy5jCmluZGV4IDk5MjYxMmIuLmY3NDEyMWMgMTAwNjQ0Ci0tLSBhL2NwdS9hdDMyYXAvaHNkcmFtYy5jCisrKyBiL2NwdS9hdDMyYXAvaHNkcmFtYy5jCkBAIC0yMSw3ICsyMSw3IEBACiAgKi8KICNpbmNsdWRlIDxjb21tb24uaD4KIAotI2lmZGVmIENGR19IU0RSQU1DCisjaWZkZWYgQ09ORklHX1NZU19IU0RSQU1DCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL3NkcmFtLmg+CiAKQEAgLTExNyw0ICsxMTcsNCBAQAogCXJldHVybiBzZHJhbV9zaXplOwogfQogCi0jZW5kaWYgLyogQ0ZHX0hTRFJBTUMgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0hTRFJBTUMgKi8KZGlmZiAtLWdpdCBhL2NwdS9hdDMyYXAvaW50ZXJydXB0cy5jIGIvY3B1L2F0MzJhcC9pbnRlcnJ1cHRzLmMKaW5kZXggMTYwODM4ZS4uNzVjYzM5ZSAxMDA2NDQKLS0tIGEvY3B1L2F0MzJhcC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L2F0MzJhcC9pbnRlcnJ1cHRzLmMKQEAgLTgyLDcgKzgyLDcgQEAKIAl1bnNpZ25lZCBsb25nIGxvbmcgdGlja3MgPSB0OwogCXVuc2lnbmVkIGxvbmcgbG8sIGhpLCBoaV9uZXc7CiAKLQl0aWNrcyA9ICh0aWNrcyAqIGdldF90YmNsaygpKSAvIENGR19IWjsKKwl0aWNrcyA9ICh0aWNrcyAqIGdldF90YmNsaygpKSAvIENPTkZJR19TWVNfSFo7CiAJaGkgPSB0aWNrcyA+PiAzMjsKIAlsbyA9IHRpY2tzICYgMHhmZmZmZmZmZlVMOwogCkBAIC0xMzcsNyArMTM3LDcgQEAKIAogCXN5c3JlZ193cml0ZShDT1VOVCwgMCk7CiAKLQl0bXAgPSAodTY0KUNGR19IWiA8PCAzMjsKKwl0bXAgPSAodTY0KUNPTkZJR19TWVNfSFogPDwgMzI7CiAJdG1wICs9IGdkLT5jcHVfaHogLyAyOwogCWRvX2Rpdih0bXAsIGdkLT5jcHVfaHopOwogCXRiX2ZhY3RvciA9ICh1MzIpdG1wOwpkaWZmIC0tZ2l0IGEvY3B1L2F0MzJhcC9zdGFydC5TIGIvY3B1L2F0MzJhcC9zdGFydC5TCmluZGV4IDkwN2U5YjEuLmQzN2E0NmUgMTAwNjQ0Ci0tLSBhL2NwdS9hdDMyYXAvc3RhcnQuUworKysgYi9jcHUvYXQzMmFwL3N0YXJ0LlMKQEAgLTE4OCw3ICsxODgsNyBAQAogCS5hbGlnbgkyCiAJLnR5cGUJc3BfaW5pdCxAb2JqZWN0CiBzcF9pbml0OgotCS5sb25nCUNGR19JTklUX1NQX0FERFIKKwkubG9uZwlDT05GSUdfU1lTX0lOSVRfU1BfQUREUgogZ290X2luaXQ6CiAJLmxvbmcJM2IgLSBfR0xPQkFMX09GRlNFVF9UQUJMRV8KIApkaWZmIC0tZ2l0IGEvY3B1L2JsYWNrZmluL2ludGVycnVwdHMuYyBiL2NwdS9ibGFja2Zpbi9pbnRlcnJ1cHRzLmMKaW5kZXggODBjNTUwNS4uZDRkZDYzNiAxMDA2NDQKLS0tIGEvY3B1L2JsYWNrZmluL2ludGVycnVwdHMuYworKysgYi9jcHUvYmxhY2tmaW4vaW50ZXJydXB0cy5jCkBAIC00OCw3ICs0OCw3IEBACiB7CiAJdWxvbmcgdGJjbGs7CiAKLQl0YmNsayA9IENGR19IWjsKKwl0YmNsayA9IENPTkZJR19TWVNfSFo7CiAJcmV0dXJuIHRiY2xrOwogfQogCmRpZmYgLS1naXQgYS9jcHUvYmxhY2tmaW4vc3RhcnQuUyBiL2NwdS9ibGFja2Zpbi9zdGFydC5TCmluZGV4IDMwMjEyZTkuLjgzMDMyOTIgMTAwNjQ0Ci0tLSBhL2NwdS9ibGFja2Zpbi9zdGFydC5TCisrKyBiL2NwdS9ibGFja2Zpbi9zdGFydC5TCkBAIC0xNDUsMTIgKzE0NSwxMiBAQAogCXI2ID0gMCAoeCk7CiAJcDEgPSByMDsKIAotCXAyLmwgPSBMTyhDRkdfTU9OSVRPUl9CQVNFKTsKLQlwMi5oID0gSEkoQ0ZHX01PTklUT1JfQkFTRSk7CisJcDIubCA9IExPKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKTsKKwlwMi5oID0gSEkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UpOwogCiAJcDMgPSAweDA0OwotCXA0LmwgPSBMTyhDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKTsKLQlwNC5oID0gSEkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTik7CisJcDQubCA9IExPKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTik7CisJcDQuaCA9IEhJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTik7CiAuTGxvb3AxOgogCXIxID0gW3AxICsrIHAzXTsKIAlbcDIgKysgcDNdID0gcjE7CmRpZmYgLS1naXQgYS9jcHUvYmxhY2tmaW4vdHJhcHMuYyBiL2NwdS9ibGFja2Zpbi90cmFwcy5jCmluZGV4IDQ0NzRmZTUuLjJlYjQ1YjUgMTAwNjQ0Ci0tLSBhL2NwdS9ibGFja2Zpbi90cmFwcy5jCisrKyBiL2NwdS9ibGFja2Zpbi90cmFwcy5jCkBAIC0yMjksOCArMjI5LDggQEAKIAogCWlmICghYWRkcmVzcykKIAkJc3ByaW50ZihidWYsICI8MHglcD4gLyogTWF5YmUgbnVsbCBwb2ludGVyPyAqLyIsIGFkZHJlc3MpOwotCWVsc2UgaWYgKGFkZHJlc3MgPj0gQ0ZHX01PTklUT1JfQkFTRSAmJgotCSAgICAgICAgIGFkZHJlc3MgPCBDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorCWVsc2UgaWYgKGFkZHJlc3MgPj0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgJiYKKwkgICAgICAgICBhZGRyZXNzIDwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogCQlzcHJpbnRmKGJ1ZiwgIjwweCVwPiAvKiBzb21ld2hlcmUgaW4gdS1ib290ICovIiwgYWRkcmVzcyk7CiAJZWxzZQogCQlzcHJpbnRmKGJ1ZiwgIjwweCVwPiAvKiB1bmtub3duIGFkZHJlc3MgKi8iLCBhZGRyZXNzKTsKZGlmZiAtLWdpdCBhL2NwdS9pMzg2L2ludGVycnVwdHMuYyBiL2NwdS9pMzg2L2ludGVycnVwdHMuYwppbmRleCBmMzQwMTE5Li5mNmRiY2NhIDEwMDY0NAotLS0gYS9jcHUvaTM4Ni9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L2kzODYvaW50ZXJydXB0cy5jCkBAIC01MDksNyArNTA5LDcgQEAKIH0KIAogCi0jaWZkZWYgQ0ZHX1JFU0VUX0dFTkVSSUMKKyNpZmRlZiBDT05GSUdfU1lTX1JFU0VUX0dFTkVSSUMKIAogdm9pZCBfX2F0dHJpYnV0ZV9fICgocmVncGFybSgwKSkpIGdlbmVyYXRlX2dwZih2b2lkKTsKIGFzbSgiLmdsb2JsIGdlbmVyYXRlX2dwZlxuIgpkaWZmIC0tZ2l0IGEvY3B1L2kzODYvc2M1MjAuYyBiL2NwdS9pMzg2L3NjNTIwLmMKaW5kZXggNjQwYjI1NS4uOGJjYjk3OSAxMDA2NDQKLS0tIGEvY3B1L2kzODYvc2M1MjAuYworKysgYi9jcHUvaTM4Ni9zYzUyMC5jCkBAIC0xMTMsNyArMTEzLDcgQEAKIAl3cml0ZV9tbWNyX3dvcmQoU0M1MjBfSEJDVEwsMHgwNCk7ICAgICAgLyogZW5hYmxlIHBvc3RlZC13cml0ZXMgKi8KIAogCi0JaWYgKENGR19TQzUyMF9ISUdIX1NQRUVEKSB7CisJaWYgKENPTkZJR19TWVNfU0M1MjBfSElHSF9TUEVFRCkgewogCQl3cml0ZV9tbWNyX2J5dGUoU0M1MjBfQ1BVQ1RMLCAweDIpOwkvKiBzZXQgaXQgdG8gMTMzIE1IeiBhbmQgd3JpdGUgYmFjayAqLwogCQlnZC0+Y3B1X2NsayA9IDEzMzAwMDAwMDsKIAkJcHJpbnRmKCIjIyBDUFUgU3BlZWQgc2V0IHRvIDEzM01IelxuIik7CkBAIC0xNDUsNyArMTQ1LDcgQEAKIAogCXUzMiBkcmFtX3ByZXNlbnQ9MDsKIAl1MzIgZHJhbV9jdHJsOwotI2lmZGVmIENGR19TRFJBTV9EUkNUTUNUTAorI2lmZGVmIENPTkZJR19TWVNfU0RSQU1fRFJDVE1DVEwKIAkvKiB0aGVzZSBtZW1vcnkgY29udHJvbCByZWdpc3RlcnMgYXJlIHNldCB1cCBpbiB0aGUgYXNzZW1iZXIgcGFydCwKIAkgKiBpbiBzYzUyMF9hc20uUywgZHVyaW5nICdtZW1faW5pdCcuICBJZiB3ZSBtdWNrIHdpdGggdGhlbSBoZXJlLAogCSAqIGFmdGVyIHdlIGFyZSBydW5uaW5nIGEgc3RhY2sgaW4gUkFNLCB3ZSBoYXZlIHRyb3VibGVzLiAgQmVzaWRlcywKQEAgLTE1Niw5ICsxNTYsOSBAQAogI2Vsc2UKIAlpbnQgdmFsOwogCi0JaW50IGNhc19wcmVjaGFyZ2VfZGVsYXkgPSBDRkdfU0RSQU1fUFJFQ0hBUkdFX0RFTEFZOwotCWludCByZWZyZXNoX3JhdGUgICAgICAgID0gQ0ZHX1NEUkFNX1JFRlJFU0hfUkFURTsKLQlpbnQgcmFzX2Nhc19kZWxheSAgICAgICA9IENGR19TRFJBTV9SQVNfQ0FTX0RFTEFZOworCWludCBjYXNfcHJlY2hhcmdlX2RlbGF5ID0gQ09ORklHX1NZU19TRFJBTV9QUkVDSEFSR0VfREVMQVk7CisJaW50IHJlZnJlc2hfcmF0ZSAgICAgICAgPSBDT05GSUdfU1lTX1NEUkFNX1JFRlJFU0hfUkFURTsKKwlpbnQgcmFzX2Nhc19kZWxheSAgICAgICA9IENPTkZJR19TWVNfU0RSQU1fUkFTX0NBU19ERUxBWTsKIAogCS8qIHNldCBTRFJBTSBzcGVlZCBoZXJlICovCiAKQEAgLTM5Myw3ICszOTMsNyBAQAogCiAjZW5kaWYKIAotI2lmZGVmIENGR19USU1FUl9TQzUyMAorI2lmZGVmIENPTkZJR19TWVNfVElNRVJfU0M1MjAKIAogCiB2b2lkIHJlc2V0X3RpbWVyKHZvaWQpCmRpZmYgLS1naXQgYS9jcHUvaTM4Ni9zYzUyMF9hc20uUyBiL2NwdS9pMzg2L3NjNTIwX2FzbS5TCmluZGV4IDM0MzIyZWEuLjU5ZWQyYjggMTAwNjQ0Ci0tLSBhL2NwdS9pMzg2L3NjNTIwX2FzbS5TCisrKyBiL2NwdS9pMzg2L3NjNTIwX2FzbS5TCkBAIC00NjAsMjEgKzQ2MCwyMSBAQAogCWluY2wgICAgJWVkaQogCWxvb3AgICAgY2xlYW51cGxwCiAKLSNpZiBkZWZpbmVkIENGR19TRFJBTV9EUkNUTUNUTAorI2lmIGRlZmluZWQgQ09ORklHX1NZU19TRFJBTV9EUkNUTUNUTAogCS8qIGp1c3QgaGF2ZSB5b3VyIGhhcmR3YXJlIGRlc2luZ2VyIF9HSVZFXyB5b3Ugd2hhdCB5b3UgbmVlZCBoZXJlISAqLwogCW1vdmwgICAgJERSQ1RNQ1RMLCAlZWRpCi0JbW92YiAgICAkQ0ZHX1NEUkFNX0RSQ1RNQ1RMLCVhbAorCW1vdmIgICAgJENPTkZJR19TWVNfU0RSQU1fRFJDVE1DVEwsJWFsCiAJbW92YiAgICAoJWVkaSksICVhbAogI2Vsc2UKLSNpZiBkZWZpbmVkKENGR19TRFJBTV9DQVNfTEFURU5DWV8yVCkgfHwgZGVmaW5lZChDRkdfU0RSQU1fQ0FTX0xBVEVOQ1lfM1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1NEUkFNX0NBU19MQVRFTkNZXzJUKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfU0RSQU1fQ0FTX0xBVEVOQ1lfM1QpCiAJLyogc2V0IHRoZSBDQVMgbGF0ZW5jeSBub3cgc2luY2UgaXQgaXMgaGFyZCB0byBkbwogCSAqIHdoZW4gd2UgcnVuIGZyb20gdGhlIFJBTSAqLwogCW1vdmwgICAgJERSQ1RNQ1RMLCAlZWRpICAgICAgICAgIC8qIERSQU0gdGltaW5nIHJlZ2lzdGVyICovCiAJbW92YiAgICAoJWVkaSksICVhbAotI2lmZGVmIENGR19TRFJBTV9DQVNfTEFURU5DWV8yVAorI2lmZGVmIENPTkZJR19TWVNfU0RSQU1fQ0FTX0xBVEVOQ1lfMlQKIAlhbmRiICAgICQweGVmLCAlYWwKICNlbmRpZgotI2lmZGVmIENGR19TRFJBTV9DQVNfTEFURU5DWV8zVAorI2lmZGVmIENPTkZJR19TWVNfU0RSQU1fQ0FTX0xBVEVOQ1lfM1QKIAlvcmIgICAgICQweDEwLCAlYWwKICNlbmRpZgogCW1vdmIgICAgJWFsLCAoJWVkaSkKQEAgLTU0MCw3ICs1NDAsNyBAQAogZG9uZToKIAltb3ZsCSVlYngsICVlYXgKIAotI2lmIENGR19TRFJBTV9FQ0NfRU5BQkxFCisjaWYgQ09ORklHX1NZU19TRFJBTV9FQ0NfRU5BQkxFCiAJLyogQSBub21pbmFsIG1lbW9yeSB0ZXN0OiBqdXN0IGEgYnl0ZSBhdCBlYWNoIGFkZHJlc3MgbGluZSAqLwogCW1vdmwgICAgJWVheCwgJWVjeAogCXNocmwgICAgJDB4MSwgJWVjeApkaWZmIC0tZ2l0IGEvY3B1L2kzODYvc3RhcnQuUyBiL2NwdS9pMzg2L3N0YXJ0LlMKaW5kZXggMjY0YWMwOS4uZjVhZDgzMyAxMDA2NDQKLS0tIGEvY3B1L2kzODYvc3RhcnQuUworKysgYi9jcHUvaTM4Ni9zdGFydC5TCkBAIC02Nyw3ICs2Nyw3IEBACiAJICogKHdlIG5lZWQgYXRsZWFzdCBic3Mgc3RhcnQrYnNzIHNpemUrc3RhY2sgc2l6ZSkgKi8KIAltb3ZsCSRfaTM4NmJvb3RfYnNzX3N0YXJ0LCAlZWN4ICAgICAgICAvKiBCU1Mgc3RhcnQgKi8KIAlhZGRsCSRfaTM4NmJvb3RfYnNzX3NpemUsICVlY3ggICAgICAgICAvKiBCU1Mgc2l6ZSAqLwotCWFkZGwJJENGR19TVEFDS19TSVpFLCAlZWN4CisJYWRkbAkkQ09ORklHX1NZU19TVEFDS19TSVpFLCAlZWN4CiAJY21wbAklZWN4LCAlZWF4CiAJamFlCW1lbV9vawogCkBAIC04OCw3ICs4OCw3IEBACiAJLyogY3JlYXRlIGEgc3RhY2sgYWZ0ZXIgdGhlIGJzcyAqLwogCW1vdmwgICAgJF9pMzg2Ym9vdF9ic3Nfc3RhcnQsICVlYXgKIAlhZGRsCSRfaTM4NmJvb3RfYnNzX3NpemUsICVlYXgKLQlhZGRsCSRDRkdfU1RBQ0tfU0laRSwgJWVheAorCWFkZGwJJENPTkZJR19TWVNfU1RBQ0tfU0laRSwgJWVheAogCW1vdmwgICAgJWVheCwgJWVzcAogCiAJcHVzaGwJJDAKZGlmZiAtLWdpdCBhL2NwdS9pMzg2L3RpbWVyLmMgYi9jcHUvaTM4Ni90aW1lci5jCmluZGV4IDQ4NmQ5MjcuLjQ2ZGIyM2YgMTAwNjQ0Ci0tLSBhL2NwdS9pMzg2L3RpbWVyLmMKKysrIGIvY3B1L2kzODYvdGltZXIuYwpAQCAtNzIsOSArNzIsOSBAQAogfQogCiAKLSNpZmRlZiBDRkdfVElNRVJfR0VORVJJQworI2lmZGVmIENPTkZJR19TWVNfVElNRVJfR0VORVJJQwogCi0vKiB0aGUgdW5pdCBmb3IgdGhlc2UgaXMgQ0ZHX0haICovCisvKiB0aGUgdW5pdCBmb3IgdGhlc2UgaXMgQ09ORklHX1NZU19IWiAqLwogCiAvKiBGaXhNZTogaW1wbGVtZW50IHRoZXNlICovCiB2b2lkIHJlc2V0X3RpbWVyICh2b2lkKQpkaWZmIC0tZ2l0IGEvY3B1L2l4cC9jcHUuYyBiL2NwdS9peHAvY3B1LmMKaW5kZXggMmM3ZDVhMC4uNDAyMTg4ZSAxMDA2NDQKLS0tIGEvY3B1L2l4cC9jcHUuYworKysgYi9jcHUvaXhwL2NwdS5jCkBAIC04MSw3ICs4MSw3IEBACiAJICogc2V0dXAgdXAgc3RhY2tzIGlmIG5lY2Vzc2FyeQogCSAqLwogI2lmZGVmIENPTkZJR19VU0VfSVJRCi0JSVJRX1NUQUNLX1NUQVJUID0gX2FybWJvb3Rfc3RhcnQgLSBDRkdfTUFMTE9DX0xFTiAtIENGR19HQkxfREFUQV9TSVpFIC0gNDsKKwlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENPTkZJR19TWVNfTUFMTE9DX0xFTiAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAtIDQ7CiAJRklRX1NUQUNLX1NUQVJUID0gSVJRX1NUQUNLX1NUQVJUIC0gQ09ORklHX1NUQUNLU0laRV9JUlE7CiAjZW5kaWYKIApAQCAtMTk4LDcgKzE5OCw3IEBACiAKIHZvaWQgYm9vdGNvdW50X3N0b3JlICh1bG9uZyBhKQogewotCXZvbGF0aWxlIHVsb25nICpzYXZlX2FkZHIgPSAodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX0JPT1RDT1VOVF9BRERSKTsKKwl2b2xhdGlsZSB1bG9uZyAqc2F2ZV9hZGRyID0gKHZvbGF0aWxlIHVsb25nICopKENPTkZJR19TWVNfQk9PVENPVU5UX0FERFIpOwogCiAJc2F2ZV9hZGRyWzBdID0gYTsKIAlzYXZlX2FkZHJbMV0gPSBCT09UQ09VTlRfTUFHSUM7CkBAIC0yMDYsNyArMjA2LDcgQEAKIAogdWxvbmcgYm9vdGNvdW50X2xvYWQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgdWxvbmcgKnNhdmVfYWRkciA9ICh2b2xhdGlsZSB1bG9uZyAqKShDRkdfQk9PVENPVU5UX0FERFIpOworCXZvbGF0aWxlIHVsb25nICpzYXZlX2FkZHIgPSAodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19CT09UQ09VTlRfQUREUik7CiAKIAlpZiAoc2F2ZV9hZGRyWzFdICE9IEJPT1RDT1VOVF9NQUdJQykKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9jcHUvaXhwL2ludGVycnVwdHMuYyBiL2NwdS9peHAvaW50ZXJydXB0cy5jCmluZGV4IDg0ZmU5MzcuLjYyMWYzMWIgMTAwNjQ0Ci0tLSBhL2NwdS9peHAvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9peHAvaW50ZXJydXB0cy5jCkBAIC00MCw4ICs0MCw4IEBACiAgKi8KIAogI2RlZmluZSBGUkVRCQk2NjY2NjY2NgotI2RlZmluZSBDTE9DS19USUNLX1JBVEUJKCgoRlJFUSAvIENGR19IWiAmIH5JWFA0MjVfT1NUX1JFTE9BRF9NQVNLKSArIDEpICogQ0ZHX0haKQotI2RlZmluZSBMQVRDSAkJKChDTE9DS19USUNLX1JBVEUgKyBDRkdfSFovMikgLyBDRkdfSFopCS8qIEZvciBkaXZpZGVyICovCisjZGVmaW5lIENMT0NLX1RJQ0tfUkFURQkoKChGUkVRIC8gQ09ORklHX1NZU19IWiAmIH5JWFA0MjVfT1NUX1JFTE9BRF9NQVNLKSArIDEpICogQ09ORklHX1NZU19IWikKKyNkZWZpbmUgTEFUQ0gJCSgoQ0xPQ0tfVElDS19SQVRFICsgQ09ORklHX1NZU19IWi8yKSAvIENPTkZJR19TWVNfSFopCS8qIEZvciBkaXZpZGVyICovCiAKIHN0cnVjdCBfaXJxX2hhbmRsZXIgewogCXZvaWQgICAgICAgICAgICAgICAgKm1fZGF0YTsKZGlmZiAtLWdpdCBhL2NwdS9peHAvbnBlL2luY2x1ZGUvbnBlLmggYi9jcHUvaXhwL25wZS9pbmNsdWRlL25wZS5oCmluZGV4IGU1MzQ1OGQuLjNkNmY3MjcgMTAwNjQ0Ci0tLSBhL2NwdS9peHAvbnBlL2luY2x1ZGUvbnBlLmgKKysrIGIvY3B1L2l4cC9ucGUvaW5jbHVkZS9ucGUuaApAQCAtMjcsMTAgKzI3LDEwIEBACiAvKgogICogZGVmaW5lcy4uLgogICovCi0jZGVmaW5lIENGR19OUEVfTlVNUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX05QRV9OVU1TCQkxCiAjaWZkZWYgQ09ORklHX0hBU19FVEgxCi0jdW5kZWYgQ0ZHX05QRV9OVU1TCi0jZGVmaW5lIENGR19OUEVfTlVNUwkJMgorI3VuZGVmIENPTkZJR19TWVNfTlBFX05VTVMKKyNkZWZpbmUgQ09ORklHX1NZU19OUEVfTlVNUwkJMgogI2VuZGlmCiAKICNkZWZpbmUgTlBFX05VTV9QT1JUUwkJMwpkaWZmIC0tZ2l0IGEvY3B1L2l4cC9ucGUvbnBlLmMgYi9jcHUvaXhwL25wZS9ucGUuYwppbmRleCA4OTIwOTZiLi5iZDc3ZmVkIDEwMDY0NAotLS0gYS9jcHUvaXhwL25wZS9ucGUuYworKysgYi9jcHUvaXhwL25wZS9ucGUuYwpAQCAtNTEsNyArNTEsNyBAQAogc3RhdGljIGludCBucGVfdXNlZFtOUEVfTlVNX1BPUlRTXTsKIAogLyogQSBsaXR0bGUgZXh0cmEgc28gd2UgY2FuIGFsaWduIHRvIGNhY2hlbGluZS4gKi8KLXN0YXRpYyB1OCBucGVfYWxsb2NfcG9vbFtOUEVfTUVNX1BPT0xfU0laRSArIENGR19DQUNIRUxJTkVfU0laRSAtIDFdOworc3RhdGljIHU4IG5wZV9hbGxvY19wb29sW05QRV9NRU1fUE9PTF9TSVpFICsgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAtIDFdOwogc3RhdGljIHU4ICpucGVfYWxsb2NfZW5kOwogc3RhdGljIHU4ICpucGVfYWxsb2NfZnJlZTsKIApAQCAtNjAsNyArNjAsNyBAQAogCXN0YXRpYyBpbnQgY291bnQgPSAwOwogCXZvaWQgKnAgPSBOVUxMOwogCi0Jc2l6ZSA9IChzaXplICsgKENGR19DQUNIRUxJTkVfU0laRS0xKSkgJiB+KENGR19DQUNIRUxJTkVfU0laRS0xKTsKKwlzaXplID0gKHNpemUgKyAoQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRS0xKSkgJiB+KENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUtMSk7CiAJY291bnQrKzsKIAogCWlmICgobnBlX2FsbG9jX2ZyZWUgKyBzaXplKSA8IG5wZV9hbGxvY19lbmQpIHsKQEAgLTM5OSw3ICszOTksNyBAQAogCiAJbnBlX2FsbG9jX2VuZCA9IG5wZV9hbGxvY19wb29sICsgc2l6ZW9mKG5wZV9hbGxvY19wb29sKTsKIAlucGVfYWxsb2NfZnJlZSA9ICh1OCAqKSgoKHVuc2lnbmVkKW5wZV9hbGxvY19wb29sICsKLQkJCQkgQ0ZHX0NBQ0hFTElORV9TSVpFIC0gMSkgJiB+KENGR19DQUNIRUxJTkVfU0laRSAtIDEpKTsKKwkJCQkgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAtIDEpICYgfihDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFIC0gMSkpOwogCiAJLyogaW5pdGlhbGl6ZSBtYnVmIHBvb2wgKi8KIAlpbml0X3J4X21idWZzKHBfbnBlKTsKQEAgLTU2OCw3ICs1NjgsNyBAQAogCWludCBldGhfbnVtID0gMDsKIAlzdHJ1Y3QgbnBlICpwX25wZSA9IE5VTEw7CiAKLQlmb3IgKGV0aF9udW0gPSAwOyBldGhfbnVtIDwgQ0ZHX05QRV9OVU1TOyBldGhfbnVtKyspIHsKKwlmb3IgKGV0aF9udW0gPSAwOyBldGhfbnVtIDwgQ09ORklHX1NZU19OUEVfTlVNUzsgZXRoX251bSsrKSB7CiAKIAkJLyogU2VlIGlmIHdlIGNhbiBhY3R1YWxseSBicmluZyB1cCB0aGUgaW50ZXJmYWNlLCBvdGhlcndpc2UsIHNraXAgaXQgKi8KIAkJc3dpdGNoIChldGhfbnVtKSB7CkBAIC02NzMsOCArNjczLDggQEAKIAogCQkJbnBlX2FsbG9jX2VuZCA9IG5wZV9hbGxvY19wb29sICsgc2l6ZW9mKG5wZV9hbGxvY19wb29sKTsKIAkJCW5wZV9hbGxvY19mcmVlID0gKHU4ICopKCgodW5zaWduZWQpbnBlX2FsbG9jX3Bvb2wgKwotCQkJCQkJIENGR19DQUNIRUxJTkVfU0laRSAtIDEpCi0JCQkJCQkmIH4oQ0ZHX0NBQ0hFTElORV9TSVpFIC0gMSkpOworCQkJCQkJIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgLSAxKQorCQkJCQkJJiB+KENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgLSAxKSk7CiAKIAkJCWlmICghbnBlX2Nzcl9sb2FkKCkpCiAJCQkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9jcHUvaXhwL3NlcmlhbC5jIGIvY3B1L2l4cC9zZXJpYWwuYwppbmRleCA0NTQ5NjMxLi5kZDI2YWY0IDEwMDY0NAotLS0gYS9jcHUvaXhwL3NlcmlhbC5jCisrKyBiL2NwdS9peHAvc2VyaWFsLmMKQEAgLTQzLDcgKzQzLDcgQEAKIHZvaWQgc2VyaWFsX3NldGJyZyAodm9pZCkKIHsKIAl1bnNpZ25lZCBpbnQgcXVvdCA9IDA7Ci0JaW50IHVhcnQgPSBDRkdfSVhQNDI1X0NPTlNPTEU7CisJaW50IHVhcnQgPSBDT05GSUdfU1lTX0lYUDQyNV9DT05TT0xFOwogCiAJaWYgKChnZC0+YmF1ZHJhdGUgPD0gU0VSSUFMX0NMT0NLKSAmJiAoU0VSSUFMX0NMT0NLICUgZ2QtPmJhdWRyYXRlID09IDApKQogCQlxdW90ID0gU0VSSUFMX0NMT0NLIC8gZ2QtPmJhdWRyYXRlOwpAQCAtODUsOSArODUsOSBAQAogdm9pZCBzZXJpYWxfcHV0YyAoY29uc3QgY2hhciBjKQogewogCS8qIHdhaXQgZm9yIHJvb20gaW4gdGhlIHR4IEZJRk8gb24gVUFSVCAqLwotCXdoaWxlICgoTFNSKENGR19JWFA0MjVfQ09OU09MRSkgJiBMU1JfVEVNVCkgPT0gMCk7CisJd2hpbGUgKChMU1IoQ09ORklHX1NZU19JWFA0MjVfQ09OU09MRSkgJiBMU1JfVEVNVCkgPT0gMCk7CiAKLQlUSFIoQ0ZHX0lYUDQyNV9DT05TT0xFKSA9IGM7CisJVEhSKENPTkZJR19TWVNfSVhQNDI1X0NPTlNPTEUpID0gYzsKIAogCS8qIElmIFxuLCBhbHNvIGRvIFxyICovCiAJaWYgKGMgPT0gJ1xuJykKQEAgLTEwMSw3ICsxMDEsNyBAQAogICovCiBpbnQgc2VyaWFsX3RzdGMgKHZvaWQpCiB7Ci0JcmV0dXJuIExTUihDRkdfSVhQNDI1X0NPTlNPTEUpICYgTFNSX0RSOworCXJldHVybiBMU1IoQ09ORklHX1NZU19JWFA0MjVfQ09OU09MRSkgJiBMU1JfRFI7CiB9CiAKIC8qCkBAIC0xMTEsOSArMTExLDkgQEAKICAqLwogaW50IHNlcmlhbF9nZXRjICh2b2lkKQogewotCXdoaWxlICghKExTUihDRkdfSVhQNDI1X0NPTlNPTEUpICYgTFNSX0RSKSk7CisJd2hpbGUgKCEoTFNSKENPTkZJR19TWVNfSVhQNDI1X0NPTlNPTEUpICYgTFNSX0RSKSk7CiAKLQlyZXR1cm4gKGNoYXIpIFJCUihDRkdfSVhQNDI1X0NPTlNPTEUpICYgMHhmZjsKKwlyZXR1cm4gKGNoYXIpIFJCUihDT05GSUdfU1lTX0lYUDQyNV9DT05TT0xFKSAmIDB4ZmY7CiB9CiAKIHZvaWQKZGlmZiAtLWdpdCBhL2NwdS9peHAvc3RhcnQuUyBiL2NwdS9peHAvc3RhcnQuUwppbmRleCBkNGM4ZTMzLi4xOTZiYTVkIDEwMDY0NAotLS0gYS9jcHUvaXhwL3N0YXJ0LlMKKysrIGIvY3B1L2l4cC9zdGFydC5TCkBAIC0xNTQsNyArMTU0LDcgQEAKIAlDUFdBSVQJcjAKIAogCS8qIHNldCBFWFAgQ1MwIHRvIHRoZSBvcHRpbXVtIHRpbWluZyAqLwotCWxkcglyMSwgPUNGR19FWFBfQ1MwCisJbGRyCXIxLCA9Q09ORklHX1NZU19FWFBfQ1MwCiAJbGRyICAgICByMiwgPUlYUDQyNV9FWFBfQ1MwCiAJc3RyICAgICByMSwgW3IyXQogCkBAIC0xNjUsNyArMTY1LDcgQEAKIAlvcnIgICAgIHIxLCByMSwgIzB4ODAwMDAwMDAKIAlzdHIgICAgIHIxLCBbcjJdCiAjZW5kaWYKLQltb3YJcjEsICNDRkdfU0RSX0NPTkZJRworCW1vdglyMSwgI0NPTkZJR19TWVNfU0RSX0NPTkZJRwogCWxkciAgICAgcjIsID1JWFA0MjVfU0RSX0NPTkZJRwogCXN0ciAgICAgcjEsIFtyMl0KIApAQCAtMTgxLDcgKzE4MSw3IEBACiAJREVMQVlfRk9SIDB4NDAwMCwgcjAKIAogCS8qIHNldCBTRFJBTSBpbnRlcm5hbCByZWZyZXNoIHZhbCAqLwotCWxkcglyMSwgPUNGR19TRFJBTV9SRUZSRVNIX0NOVAorCWxkcglyMSwgPUNPTkZJR19TWVNfU0RSQU1fUkVGUkVTSF9DTlQKIAlzdHIgICAgIHIxLCBbcjNdCiAJREVMQVlfRk9SIDB4NDAwMCwgcjAKIApAQCAtMTk5LDcgKzE5OSw3IEBACiAJYm5lCTExMWIKIAogCS8qIHNldCBtb2RlIHJlZ2lzdGVyIGluIHNkcmFtICovCi0JbW92CXIxLCAjQ0ZHX1NEUl9NT0RFX0NPTkZJRworCW1vdglyMSwgI0NPTkZJR19TWVNfU0RSX01PREVfQ09ORklHCiAJc3RyCXIxLCBbcjRdCiAJREVMQVlfRk9SIDB4NDAwMCwgcjAKIApAQCAtMjExLDcgKzIxMSw3IEBACiAJLyogY29weSAqLwogCW1vdiAgICAgcjAsICMwCiAJbW92ICAgICByNCwgcjAKLQlhZGQgICAgIHIyLCByMCwgI0NGR19NT05JVE9SX0xFTgorCWFkZCAgICAgcjIsIHIwLCAjQ09ORklHX1NZU19NT05JVE9SX0xFTgogCW1vdiAgICAgcjEsICMweDEwMDAwMDAwCiAJbW92ICAgICByNSwgcjEKIApAQCAtMjgzLDggKzI4Myw4IEBACiAJLyogU2V0IHVwIHRoZSBzdGFjawkJCQkJCSAgICAqLwogc3RhY2tfc2V0dXA6CiAJbGRyCXIwLCBfVEVYVF9CQVNFCQkvKiB1cHBlciAxMjggS2lCOiByZWxvY2F0ZWQgdWJvb3QgICAqLwotCXN1YglyMCwgcjAsICNDRkdfTUFMTE9DX0xFTgkvKiBtYWxsb2MgYXJlYSAgICAgICAgICAgICAgICAgICAgICAqLwotCXN1YglyMCwgcjAsICNDRkdfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8gICAgICAgICAgICAgICAgICAgICAgICAqLworCXN1YglyMCwgcjAsICNDT05GSUdfU1lTX01BTExPQ19MRU4JLyogbWFsbG9jIGFyZWEgICAgICAgICAgICAgICAgICAgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC8qIGJkaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKIAlzdWIJcjAsIHIwLCAjKENPTkZJR19TVEFDS1NJWkVfSVJRK0NPTkZJR19TVEFDS1NJWkVfRklRKQogI2VuZGlmCkBAIC0zNDUsOCArMzQ1LDggQEAKIAlhZGQJcjgsIHNwLCAjU19QQwogCiAJbGRyCXIyLCBfYXJtYm9vdF9zdGFydAotCXN1YglyMiwgcjIsICMoQ09ORklHX1NUQUNLU0laRStDRkdfTUFMTE9DX0xFTikKLQlzdWIJcjIsIHIyLCAjKENGR19HQkxfREFUQV9TSVpFKzgpICBAIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjaworCXN1YglyMiwgcjIsICMoQ09ORklHX1NUQUNLU0laRStDT05GSUdfU1lTX01BTExPQ19MRU4pCisJc3ViCXIyLCByMiwgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkgIEAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCiAJbGRtaWEJcjIsIHtyMiAtIHI0fQkJCS8qIGdldCBwYywgY3Bzciwgb2xkX3IwCSAgICAqLwogCWFkZAlyMCwgc3AsICNTX0ZSQU1FX1NJWkUJCS8qIHJlc3RvcmUgc3BfU1ZDCSAgICAqLwogCkBAIC0zODIsOCArMzgyLDggQEAKIAogCS5tYWNybyBnZXRfYmFkX3N0YWNrCiAJbGRyCXIxMywgX2FybWJvb3Rfc3RhcnQJCUAgc2V0dXAgb3VyIG1vZGUgc3RhY2sKLQlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRStDRkdfTUFMTE9DX0xFTikKLQlzdWIJcjEzLCByMTMsICMoQ0ZHX0dCTF9EQVRBX1NJWkUrOCkgQCByZXNlcnZlZCBhIGNvdXBsZSBzcG90cyBpbiBhYm9ydCBzdGFjaworCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1RBQ0tTSVpFK0NPTkZJR19TWVNfTUFMTE9DX0xFTikKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKIAogCXN0cglsciwgW3IxM10JCQlAIHNhdmUgY2FsbGVyIGxyIC8gc3BzcgogCW1ycwlsciwgc3BzcgpkaWZmIC0tZ2l0IGEvY3B1L2l4cC90aW1lci5jIGIvY3B1L2l4cC90aW1lci5jCmluZGV4IDkyMGYzNGUuLjA5ZDhhZDUgMTAwNjQ0Ci0tLSBhL2NwdS9peHAvdGltZXIuYworKysgYi9jcHUvaXhwL3RpbWVyLmMKQEAgLTQ0LDcgKzQ0LDcgQEAKIAkgKiBUaGlzIGZ1bmN0aW9uIGhhcyBhIG1heCB1c2VjLCBidXQgc2luY2UgaXQgaXMgY2FsbGVkIGZyb20gdWRlbGF5CiAJICogd2Ugc2hvdWxkIG5vdCBoYXZlIHRvIHdvcnJ5Li4uIGJlIGhhcHB5CiAJICovCi0JdW5zaWduZWQgbG9uZyB1c2VjcyA9IENGR19IWi8xMDAwMDAwTCAmIH5JWFA0MjVfT1NUX1JFTE9BRF9NQVNLOworCXVuc2lnbmVkIGxvbmcgdXNlY3MgPSBDT05GSUdfU1lTX0haLzEwMDAwMDBMICYgfklYUDQyNV9PU1RfUkVMT0FEX01BU0s7CiAKIAkqSVhQNDI1X09TU1QgPSBJWFA0MjVfT1NTVF9USU1FUl8xX1BFTkQ7CiAJdXNlY3MgfD0gSVhQNDI1X09TVF9PTkVfU0hPVCB8IElYUDQyNV9PU1RfRU5BQkxFOwpkaWZmIC0tZ2l0IGEvY3B1L2xlb24yL2ludGVycnVwdHMuYyBiL2NwdS9sZW9uMi9pbnRlcnJ1cHRzLmMKaW5kZXggMzViMzc1Yy4uOWIwZGE5NiAxMDA2NDQKLS0tIGEvY3B1L2xlb24yL2ludGVycnVwdHMuYworKysgYi9jcHUvbGVvbjIvaW50ZXJydXB0cy5jCkBAIC05OCw4ICs5OCw4IEBACiB2b2lkIGhhbmRsZXJfaXJxKGludCBpcnEsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewogCWlmIChpcnFfaGFuZGxlcnNbaXJxXS5oYW5kbGVyKSB7Ci0JCWlmICgoKHVuc2lnbmVkIGludClpcnFfaGFuZGxlcnNbaXJxXS5oYW5kbGVyID4gQ0ZHX1JBTV9FTkQpIHx8Ci0JCSAgICAoKHVuc2lnbmVkIGludClpcnFfaGFuZGxlcnNbaXJxXS5oYW5kbGVyIDwgQ0ZHX1JBTV9CQVNFKQorCQlpZiAoKCh1bnNpZ25lZCBpbnQpaXJxX2hhbmRsZXJzW2lycV0uaGFuZGxlciA+IENPTkZJR19TWVNfUkFNX0VORCkgfHwKKwkJICAgICgodW5zaWduZWQgaW50KWlycV9oYW5kbGVyc1tpcnFdLmhhbmRsZXIgPCBDT05GSUdfU1lTX1JBTV9CQVNFKQogCQkgICAgKSB7CiAJCQlwcmludGYoImhhbmRsZXJfaXJxOiBiYWQgaGFuZGxlcjogJXgsIGlycSBudW1iZXIgJWRcbiIsCiAJCQkgICAgICAgKHVuc2lnbmVkIGludClpcnFfaGFuZGxlcnNbaXJxXS5oYW5kbGVyLCBpcnEpOwpAQCAtMTYzLDggKzE2Myw4IEBACiAJCXByaW50ZigiaXJxX2luc3RhbGxfaGFuZGxlcjogMHglMDhseCByZXBsYWNpbmcgMHglMDhseFxuIiwKIAkJICAgICAgICh1bG9uZykgaGFuZGxlciwgKHVsb25nKSBpcnFfaGFuZGxlcnNbaXJxXS5oYW5kbGVyKTsKIAotCWlmICgoKHVuc2lnbmVkIGludCloYW5kbGVyID4gQ0ZHX1JBTV9FTkQpIHx8Ci0JICAgICgodW5zaWduZWQgaW50KWhhbmRsZXIgPCBDRkdfUkFNX0JBU0UpCisJaWYgKCgodW5zaWduZWQgaW50KWhhbmRsZXIgPiBDT05GSUdfU1lTX1JBTV9FTkQpIHx8CisJICAgICgodW5zaWduZWQgaW50KWhhbmRsZXIgPCBDT05GSUdfU1lTX1JBTV9CQVNFKQogCSAgICApIHsKIAkJcHJpbnRmKCJpcnFfaW5zdGFsbF9oYW5kbGVyOiBiYWQgaGFuZGxlcjogJXgsIGlycSBudW1iZXIgJWRcbiIsCiAJCSAgICAgICAodW5zaWduZWQgaW50KWhhbmRsZXIsIGlycSk7CmRpZmYgLS1naXQgYS9jcHUvbGVvbjIvcHJvbS5jIGIvY3B1L2xlb24yL3Byb20uYwppbmRleCBiMDMxOTk1Li4xYTZjN2Y3IDEwMDY0NAotLS0gYS9jcHUvbGVvbjIvcHJvbS5jCisrKyBiL2NwdS9sZW9uMi9wcm9tLmMKQEAgLTQ1LDE0ICs0NSwxNCBAQAogLyogZm9yIF9fdmEgKi8KIGV4dGVybiBpbnQgX19wcm9tX3N0YXJ0OwogI2RlZmluZSBQQUdFX09GRlNFVCAweGYwMDAwMDAwCi0jZGVmaW5lIHBoeXNfYmFzZSBDRkdfU0RSQU1fQkFTRQorI2RlZmluZSBwaHlzX2Jhc2UgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAjZGVmaW5lIFBST01fT0ZGUyA4MTkyCiAjZGVmaW5lIFBST01fU0laRV9NQVNLIChQUk9NX09GRlMtMSkKICNkZWZpbmUgX192YSh4KSAoIFwKIAkodm9pZCAqKSggKCh1bnNpZ25lZCBsb25nKSh4KSktUFJPTV9PRkZTKyBcCi0JKENGR19QUk9NX09GRlNFVC1waHlzX2Jhc2UpK1BBR0VfT0ZGU0VULVRFWFRfQkFTRSApIFwKKwkoQ09ORklHX1NZU19QUk9NX09GRlNFVC1waHlzX2Jhc2UpK1BBR0VfT0ZGU0VULVRFWFRfQkFTRSApIFwKIAkpCi0jZGVmaW5lIF9fcGh5KHgpICgodm9pZCAqKSgoKHVuc2lnbmVkIGxvbmcpKHgpKS1QUk9NX09GRlMrQ0ZHX1BST01fT0ZGU0VULVRFWFRfQkFTRSkpCisjZGVmaW5lIF9fcGh5KHgpICgodm9pZCAqKSgoKHVuc2lnbmVkIGxvbmcpKHgpKS1QUk9NX09GRlMrQ09ORklHX1NZU19QUk9NX09GRlNFVC1URVhUX0JBU0UpKQogCiBzdHJ1Y3QgcHJvcGVydHkgewogCWNoYXIgKm5hbWU7CkBAIC01NDAsMTMgKzU0MCwxMyBAQAogCV9fdmEoJnNwaS50b3RwaHlzKSwKIAl7CiAJIE5VTEwsCi0JIChjaGFyICopQ0ZHX1NEUkFNX0JBU0UsCisJIChjaGFyICopQ09ORklHX1NZU19TRFJBTV9CQVNFLAogCSAwLAogCSB9LAogCV9fdmEoJnNwaS5hdmFpbCksCiAJewogCSBOVUxMLAotCSAoY2hhciAqKUNGR19TRFJBTV9CQVNFLAorCSAoY2hhciAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwKIAkgMCwKIAkgfSwKIAlOVUxMLAkJCS8qIHByb21tYXBfcCAqLwpAQCAtNjU0LDcgKzY1NCw3IEBACiAKIAkvKiBnZXQgcGh5c2ljYWwgYWRkcmVzcyAqLwogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9Ci0JICAgICh2b2lkICopKENGR19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKKwkgICAgKHZvaWQgKikoQ09ORklHX1NZU19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKIAogCXVuc2lnbmVkIGludCAqc3JtbXVfY3R4X3RhYmxlOwogCkBAIC03MDcsNyArNzA3LDcgQEAKIAlzcm1tdV9zZXRfbW11cmVnKDApOwogCiAJLyogSGFyZGNvZGVkIHN0YXJ0IGFkZHJlc3MgKi8KLQlyZXNldCA9IENGR19NT05JVE9SX0JBU0U7CisJcmVzZXQgPSBDT05GSUdfU1lTX01PTklUT1JfQkFTRTsKIAogCS8qIGZsdXNoIGRhdGEgY2FjaGUgKi8KIAlzcGFyY19kY2FjaGVfZmx1c2hfYWxsKCk7CkBAIC03NjIsNyArNzYyLDcgQEAKIHsKIAkvKiBnZXQgcGh5c2ljYWwgYWRkcmVzcyAqLwogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9Ci0JICAgICh2b2lkICopKENGR19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKKwkgICAgKHZvaWQgKikoQ09ORklHX1NZU19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKIAogCS8qIGNvbnZlcnQgaW50byB2aXJ0dWFsIGFkZHJlc3MgKi8KIAlwc3BpID0gKHN0cnVjdCBsZW9uX3Byb21faW5mbyAqKQpAQCAtNzc3LDcgKzc3Nyw3IEBACiB7CiAJLyogZ2V0IHBoeXNpY2FsIGFkZHJlc3MgKi8KIAlzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKnBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCi0JICAgIChDRkdfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CisJICAgIChDT05GSUdfU1lTX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOwogCiAJLyogY29udmVydCBpbnRvIHZpcnR1YWwgYWRkcmVzcyAqLwogCXBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCkBAIC03OTIsNyArNzkyLDcgQEAKIHsKIAkvKiBnZXQgcGh5c2ljYWwgYWRkcmVzcyAqLwogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9IChzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKikKLQkgICAgKENGR19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKKwkgICAgKENPTkZJR19TWVNfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CiAKIAkvKiBjb252ZXJ0IGludG8gdmlydHVhbCBhZGRyZXNzICovCiAJcHNwaSA9IChzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKikKQEAgLTgxMSw3ICs4MTEsNyBAQAogewogCS8qIGdldCBwaHlzaWNhbCBhZGRyZXNzICovCiAJc3RydWN0IGxlb25fcHJvbV9pbmZvICpwc3BpID0gKHN0cnVjdCBsZW9uX3Byb21faW5mbyAqKQotCSAgICAoQ0ZHX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOworCSAgICAoQ09ORklHX1NZU19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKIAogCS8qIGNvbnZlcnQgaW50byB2aXJ0dWFsIGFkZHJlc3MgKi8KIAlwc3BpID0gKHN0cnVjdCBsZW9uX3Byb21faW5mbyAqKQpAQCAtODI3LDcgKzgyNyw3IEBACiB7CiAJLyogZ2V0IHBoeXNpY2FsIGFkZHJlc3MgKi8KIAlzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKnBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCi0JICAgIChDRkdfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CisJICAgIChDT05GSUdfU1lTX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOwogCiAJLyogY29udmVydCBpbnRvIHZpcnR1YWwgYWRkcmVzcyAqLwogCXBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCkBAIC04NTAsNyArODUwLDcgQEAKIHsKIAkvKiBnZXQgcGh5c2ljYWwgYWRkcmVzcyAqLwogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9IChzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKikKLQkgICAgKENGR19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKKwkgICAgKENPTkZJR19TWVNfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CiAJc3RydWN0IHByb3BlcnR5ICpwcm9wOwogCiAJLyogY29udmVydCBpbnRvIHZpcnR1YWwgYWRkcmVzcyAqLwpAQCAtOTA2LDcgKzkwNiw3IEBACiAJcHNwaS0+ZnJlcV9raHogPSBDT05GSUdfU1lTX0NMS19GUkVRIC8gMTAwMDsKIAogCS8qIFNldCBBdmFpbGFibGUgbWFpbiBtZW1vcnkgc2l6ZSAqLwotCXBzcGktPnRvdHBoeXMubnVtX2J5dGVzID0gQ0ZHX1BST01fT0ZGU0VUIC0gQ0ZHX1NEUkFNX0JBU0U7CisJcHNwaS0+dG90cGh5cy5udW1fYnl0ZXMgPSBDT05GSUdfU1lTX1BST01fT0ZGU0VUIC0gQ09ORklHX1NZU19TRFJBTV9CQVNFOwogCXBzcGktPmF2YWlsLm51bV9ieXRlcyA9IHBzcGktPnRvdHBoeXMubnVtX2J5dGVzOwogCiAjdW5kZWYgbm9kZXMKQEAgLTk1MSw3ICs5NTEsNyBAQAogaW50IHByb21faW5pdCh2b2lkKQogewogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9ICh2b2lkICopCi0JICAgICgoKCh1bnNpZ25lZCBpbnQpJnNwaSkgJiBQUk9NX1NJWkVfTUFTSykgKyBDRkdfUFJPTV9PRkZTRVQpOworCSAgICAoKCgodW5zaWduZWQgaW50KSZzcGkpICYgUFJPTV9TSVpFX01BU0spICsgQ09ORklHX1NZU19QUk9NX09GRlNFVCk7CiAKIAkvKiBkaXNhYmxlIG1tdSAqLwogCXNybW11X3NldF9tbXVyZWcoMHgwMDAwMDAwMCk7CkBAIC05NzcsNyArOTc3LDcgQEAKIAkvKiBpZiBubyBib290YXJncyBzZXQsIHNraXAgY29weWluZyA9PT4gZGVmYXVsdCBib290bGluZSAqLwogCWlmIChib290YXJncyAmJiAoKmJvb3RhcmdzICE9ICdcMCcpKSB7CiAJCXBzcGkgPSAodm9pZCAqKSgoKCh1bnNpZ25lZCBpbnQpJnNwaSkgJiBQUk9NX1NJWkVfTUFTSykgKwotCQkJCUNGR19QUk9NX09GRlNFVCk7CisJCQkJQ09ORklHX1NZU19QUk9NX09GRlNFVCk7CiAJCXNyYyA9IGJvb3RhcmdzOwogCQlkc3QgPSAmcHNwaS0+YXJnWzBdOwogCQlsZWZ0ID0gMjU1OwkvKiBtYXggbGVuICovCkBAIC05OTQsNyArOTk0LDcgQEAKIHsKIAlzcGFyY19zcm1tdV9zZXR1cCAqcHNybW11X3RhYmxlcyA9ICh2b2lkICopCiAJICAgICgoKCh1bnNpZ25lZCBpbnQpJnNybW11X3RhYmxlcykgJiBQUk9NX1NJWkVfTUFTSykgKwotCSAgICAgQ0ZHX1BST01fT0ZGU0VUKTsKKwkgICAgIENPTkZJR19TWVNfUFJPTV9PRkZTRVQpOwogCiAJLyogTWFrZSBjb250ZXh0IDAgKGtlcm5lbCdzIGNvbnRleHQpIHBvaW50CiAJICogdG8gb3VyIHByZXBhcmVkIG1lbW9yeSBtYXBwaW5nCkBAIC0xMDEwLDIxICsxMDEwLDIxIEBACiAjZGVmaW5lIFBURSAyCiAjZGVmaW5lIEFDQ19TVV9BTEwgMHgxYwogCXBzcm1tdV90YWJsZXMtPnBnZF90YWJsZVsweGYwXSA9Ci0JICAgIChDRkdfU0RSQU1fQkFTRSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CisJICAgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOwogCXBzcm1tdV90YWJsZXMtPnBnZF90YWJsZVsweGYxXSA9Ci0JICAgICgoQ0ZHX1NEUkFNX0JBU0UgKyAweDEwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKKwkgICAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDEwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKIAlwc3JtbXVfdGFibGVzLT5wZ2RfdGFibGVbMHhmMl0gPQotCSAgICAoKENGR19TRFJBTV9CQVNFICsgMHgyMDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CisJICAgICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgyMDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CiAJcHNybW11X3RhYmxlcy0+cGdkX3RhYmxlWzB4ZjNdID0KLQkgICAgKChDRkdfU0RSQU1fQkFTRSArIDB4MzAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOworCSAgICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MzAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOwogCXBzcm1tdV90YWJsZXMtPnBnZF90YWJsZVsweGY0XSA9Ci0JICAgICgoQ0ZHX1NEUkFNX0JBU0UgKyAweDQwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKKwkgICAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDQwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKIAlwc3JtbXVfdGFibGVzLT5wZ2RfdGFibGVbMHhmNV0gPQotCSAgICAoKENGR19TRFJBTV9CQVNFICsgMHg1MDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CisJICAgICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg1MDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CiAJcHNybW11X3RhYmxlcy0+cGdkX3RhYmxlWzB4ZjZdID0KLQkgICAgKChDRkdfU0RSQU1fQkFTRSArIDB4NjAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOworCSAgICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NjAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOwogCXBzcm1tdV90YWJsZXMtPnBnZF90YWJsZVsweGY3XSA9Ci0JICAgICgoQ0ZHX1NEUkFNX0JBU0UgKyAweDcwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKKwkgICAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDcwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKIAogCS8qIGNvbnZlcnQgcm9tIHZlYyBwb2ludGVyIHRvIHZpcnR1YWwgYWRkcmVzcyAqLwogCWtlcm5lbF9hcmdfcHJvbXZlYyA9IChzdHJ1Y3QgbGludXhfcm9tdmVjICopCmRpZmYgLS1naXQgYS9jcHUvbGVvbjIvc2VyaWFsLmMgYi9jcHUvbGVvbjIvc2VyaWFsLmMKaW5kZXggY2U5NDU3Zi4uNGY0MWI4ZSAxMDA2NDQKLS0tIGEvY3B1L2xlb24yL3NlcmlhbC5jCisrKyBiL2NwdS9sZW9uMi9zZXJpYWwuYwpAQCAtNTcsNyArNTcsNyBAQAogCXJlZ3MgPSAoTEVPTjJfVWFydF9yZWdzICopICYgbGVvbjItPlVBUlRfQ2hhbm5lbF8yOwogI2VuZGlmCiAKLQlyZWdzLT5VQVJUX1NjYWxlciA9IENGR19MRU9OMl9VQVJUMV9TQ0FMRVI7CisJcmVncy0+VUFSVF9TY2FsZXIgPSBDT05GSUdfU1lTX0xFT04yX1VBUlQxX1NDQUxFUjsKIAogCS8qIExldCBiaXQgMTEgYmUgdW5jaGFuZ2VkIChkZWJ1ZyBiaXQgZm9yIEdSTU9OKSAqLwogCXRtcCA9IFJFQURfV09SRChyZWdzLT5VQVJUX0NvbnRyb2wpOwpkaWZmIC0tZ2l0IGEvY3B1L2xlb24yL3N0YXJ0LlMgYi9jcHUvbGVvbjIvc3RhcnQuUwppbmRleCBmMjNmNDk5Li45YjVkODNlIDEwMDY0NAotLS0gYS9jcHUvbGVvbjIvc3RhcnQuUworKysgYi9jcHUvbGVvbjIvc3RhcnQuUwpAQCAtNjgsNyArNjgsNyBAQAogTUlORlJBTUUgPSAoV0lORE9XU0laRSArIEFSR1BVU0hTSVpFICsgNCkKIAogLyogTnVtYmVyIG9mIHJlZ2lzdGVyIHdpbmRvd3MgKi8KLSNpZm5kZWYgQ0ZHX1NQQVJDX05XSU5ET1dTCisjaWZuZGVmIENPTkZJR19TWVNfU1BBUkNfTldJTkRPV1MKICNlcnJvciBNdXN0IGRlZmluZSBudW1iZXIgb2YgU1BBUkMgcmVnaXN0ZXIgd2luZG93cywgZGVmYXVsdCBpcyA4CiAjZW5kaWYKIApAQCAtMjgwLDE2ICsyODAsMTYgQEAKIGxlb24yX2luaXRfbWN0cmw6CiAKIAkvKiBtZW1vcnkgY29uZmlnIHJlZ2lzdGVyIDEgKi8KLQlzZXQJQ0ZHX0dSTElCX01FTUNGRzEsICVnMgorCXNldAlDT05GSUdfU1lTX0dSTElCX01FTUNGRzEsICVnMgogCWxkCVslZzFdLCAlZzMJCSEKIAlhbmQJJWczLCAweDMwMCwgJWczCiAJb3IJJWcyLCAlZzMsICVnMgogCXN0CSVnMiwgWyVnMSArIExFT04yX01DRkcxXQotCXNldAlDRkdfR1JMSUJfTUVNQ0ZHMiwgJWcyCQkhIExvYWQgbWVtb3J5IGNvbmZpZyByZWdpc3RlciAyCisJc2V0CUNPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMiwgJWcyCQkhIExvYWQgbWVtb3J5IGNvbmZpZyByZWdpc3RlciAyCiAjaWYgISggZGVmaW5lZChUU0lNKSB8fCAhZGVmaW5lZChCWklNQUdFKSkKIAlzdAklZzIsIFslZzEgKyBMRU9OMl9NQ0ZHMl0JISBvbmx5IGZvciBwcm9tIHZlcnNpb24sIGVsc2UgZG9uZSBieSAiZHVtb24gLWkiCiAjZW5kaWYKLQlzZXQJQ0ZHX0dSTElCX01FTUNGRzMsICVnMgkJISBJbml0IEZUIHJlZ2lzdGVyCisJc2V0CUNPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMywgJWcyCQkhIEluaXQgRlQgcmVnaXN0ZXIKIAlzdAklZzIsIFslZzEgKyBMRU9OMl9FQ1RSTF0KIAlsZAlbJWcxICsgTEVPTjJfRUNUUkxdLCAlZzIKIAlzcmwJJWcyLCAzMCwgJWcyCkBAIC0zMTAsNyArMzEwLDcgQEAKIAlub3AKIAogbGVvbjJfaW5pdF9zdGFja3A6Ci0Jc2V0CUNGR19JTklUX1NQX09GRlNFVCwgJWZwCisJc2V0CUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQsICVmcAogCWFuZG4JJWZwLCAweDBmLCAlZnAKIAlzdWIJJWZwLCA2NCwgJXNwCiAKQEAgLTMyNyw3ICszMjcsNyBAQAogcmVsb2M6CiAJc2V0CVRFWFRfU1RBUlQsJWcyCiAJc2V0CURBVEFfRU5ELCVnMwotCXNldAlDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLCVnNAorCXNldAlDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRSwlZzQKIHJlbG9jX2xvb3A6CiAJbGRkCVslZzJdLCVsMAogCWxkZAlbJWcyKzhdLCVsMgpAQCAtMzczLDEwICszNzMsMTAgQEAKIAlzZXQJX19nb3RfZW5kLCVnMwogLyoKICAqIG5ldyBnb3Qgb2Zmc2V0ID0gKG9sZCBHT1QtUFRSIChyZWFkIHdpdGggbGQpIC0KLSAqICAgQ0ZHX1JFTE9DX01PTklUT1JfQkFTRShmcm9tIGRlZmluZSkgKSArCisgKiAgIENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFKGZyb20gZGVmaW5lKSApICsKICAqICAgRGVzdGluYXRpb24gQWRkcmVzcyAoZnJvbSBkZWZpbmUpCiAgKi8KLQlzZXQJQ0ZHX1JFTE9DX01PTklUT1JfQkFTRSwlZzIKKwlzZXQJQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UsJWcyCiAJc2V0CVRFWFRfU1RBUlQsICVnMQogCWFkZAklZzQsJWcyLCVnNAogCXN1YgklZzQsJWcxLCVnNApAQCAtMzk3LDcgKzM5Nyw3IEBACiBwcm9tX3JlbG9jYXRlOgogCXNldAlfX3Byb21fc3RhcnQsICVnMgogCXNldAlfX3Byb21fZW5kLCAlZzMKLQlzZXQJQ0ZHX1BST01fT0ZGU0VULCAlZzQKKwlzZXQJQ09ORklHX1NZU19QUk9NX09GRlNFVCwgJWc0CiAKIHByb21fcmVsb2NhdGVfbG9vcDoKIAlsZGQJWyVnMl0sJWwwCkBAIC00MTMsNyArNDEzLDcgQEAKICAqIHRoZSBuZXcgdHJhcCB0YWJsZSBhZGRyZXNzCiAgKi8KIAotCXNldAlDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLCAlZzIKKwlzZXQJQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UsICVnMgogCXdyCSVnMCwgJWcyLCAldGJyCiAKIC8qCWNhbGwJcmVsb2NhdGUqLwpAQCAtNDIxLDE0ICs0MjEsMTQgQEAKIC8qIENhbGwgcmVsb2NhdGVkIGluaXQgZnVuY3Rpb25zICovCiBqdW1wOgogCXNldAljcHVfaW5pdF9mMiwlbzEKLQlzZXQJQ0ZHX1JFTE9DX01PTklUT1JfQkFTRSwlbzIKKwlzZXQJQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UsJW8yCiAJYWRkCSVvMSwlbzIsJW8xCiAJc3ViCSVvMSwlZzEsJW8xCiAJY2FsbAklbzEKIAljbHIJJW8wCiAKIAlzZXQJYm9hcmRfaW5pdF9mLCVvMQotCXNldAlDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLCVvMgorCXNldAlDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRSwlbzIKIAlhZGQJJW8xLCVvMiwlbzEKIAlzdWIJJW8xLCVnMSwlbzEKIAljYWxsCSVvMQpAQCAtNDU0LDcgKzQ1NCw3IEBACiAJV1JJVEVfUEFVU0UKIAltb3YJJWw3LCAlbzAJCSEgaXJxIGxldmVsCiAJc2V0CWhhbmRsZXJfaXJxLCAlbzEKLQlzZXQJKENGR19SRUxPQ19NT05JVE9SX0JBU0UtVEVYVF9CQVNFKSwgJW8yCisJc2V0CShDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRS1URVhUX0JBU0UpLCAlbzIKIAlhZGQJJW8xLCAlbzIsICVvMQogCWNhbGwJJW8xCiAJYWRkCSVzcCwgU0ZfUkVHU19TWiwgJW8xCSEgcHRfcmVncyBwdHIKQEAgLTQ3Miw3ICs0NzIsNyBAQAogCW1vdgkld2ltLCAlbDMJCSEgQ2FsY3VsYXRlIG5leHQgV0lNCiAJbW92CSVnMSwgJWw3CiAJc3JsCSVsMywgMSwgJWcxCi0Jc2xsCSVsMywgKENGR19TUEFSQ19OV0lORE9XUy0xKSAsICVsNAorCXNsbAklbDMsIChDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTLTEpICwgJWw0CiAJb3IJJWw0LCAlZzEsICVnMQogCiAJc2F2ZQkJCQkhIEdldCBpbnRvIHdpbmRvdyB0byBiZSBzYXZlZC4KQEAgLTUwOSw3ICs1MDksNyBAQAogCiAJbW92ICAld2ltLCAlbDMJCQkhIENhbGN1bGF0ZSBuZXh0IFdJTQogCXNsbCAgJWwzLCAxLCAlbDQKLQlzcmwgICVsMywgKENGR19TUEFSQ19OV0lORE9XUy0xKSwgJWw1CisJc3JsICAlbDMsIChDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTLTEpLCAlbDUKIAlvciAgICVsNSwgJWw0LCAlbDUKIAltb3YgICVsNSwgJXdpbQogCW5vcDsgbm9wOyBub3AKQEAgLTU3OCw3ICs1NzgsNyBAQAogCSAqLwogCXNybAkldF93aW0sIDB4MSwgJWcyCQkhIGJlZ2luIGNvbXB1dGF0aW9uIG9mIG5ldyAld2ltCiAKLQlzZXQJKENGR19TUEFSQ19OV0lORE9XUy0xKSwgJWczCSFOV0lORE9XUy0xCisJc2V0CShDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTLTEpLCAlZzMJIU5XSU5ET1dTLTEKIAogCXNsbAkldF93aW0sICVnMywgJXRfd2ltCSEgTldJTkRPV1MtMQogCW9yCSV0X3dpbSwgJWcyLCAlZzIKQEAgLTYxMiw3ICs2MTIsNyBAQAogCW1vdgkyLCAlZzEKIAlzbGwJJWcxLCAldF9wc3IsICVnMQogCi0Jc2V0CUNGR19TUEFSQ19OV0lORE9XUywgJWcyCSFOV0lORE9XUworCXNldAlDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTLCAlZzIJIU5XSU5ET1dTCiAKIAlzcmwJJWcxLCAlZzIsICVnMgogCW9yCSVnMSwgJWcyLCAlZzEKQEAgLTYyMiw3ICs2MjIsNyBAQAogCSBzbGwJJWcyLCAweDEsICVnMQogCiAJLyogV2UgaGF2ZSB0byBncmFiIGEgd2luZG93IGJlZm9yZSByZXR1cm5pbmcuICovCi0Jc2V0CShDRkdfU1BBUkNfTldJTkRPV1MtMSksICVnMwkhTldJTkRPV1MtMQorCXNldAkoQ09ORklHX1NZU19TUEFSQ19OV0lORE9XUy0xKSwgJWczCSFOV0lORE9XUy0xCiAKIAlzcmwJJWcyLCAlZzMsICAlZzIKIAlvcgklZzEsICVnMiwgJWcxCmRpZmYgLS1naXQgYS9jcHUvbGVvbjMvY3B1X2luaXQuYyBiL2NwdS9sZW9uMy9jcHVfaW5pdC5jCmluZGV4IDRmZTdkNGIuLmJlMjJlYzIgMTAwNjQ0Ci0tLSBhL2NwdS9sZW9uMy9jcHVfaW5pdC5jCisrKyBiL2NwdS9sZW9uMy9jcHVfaW5pdC5jCkBAIC0xNTksOSArMTU5LDkgQEAKIAkJbWN0cmwgPSAoYW1iYXBwX2Rldl9tY3RybCAqKSBiYXNlOwogCiAJCS8qIGNvbmZpZyBNQ1RSTCBtZW1vcnkgY29udHJvbGxlciAqLwotCQltY3RybC0+bWNmZzEgPSBDRkdfR1JMSUJfTUVNQ0ZHMSB8IChtY3RybC0+bWNmZzEgJiAweDMwMCk7Ci0JCW1jdHJsLT5tY2ZnMiA9IENGR19HUkxJQl9NRU1DRkcyOwotCQltY3RybC0+bWNmZzMgPSBDRkdfR1JMSUJfTUVNQ0ZHMzsKKwkJbWN0cmwtPm1jZmcxID0gQ09ORklHX1NZU19HUkxJQl9NRU1DRkcxIHwgKG1jdHJsLT5tY2ZnMSAmIDB4MzAwKTsKKwkJbWN0cmwtPm1jZmcyID0gQ09ORklHX1NZU19HUkxJQl9NRU1DRkcyOworCQltY3RybC0+bWNmZzMgPSBDT05GSUdfU1lTX0dSTElCX01FTUNGRzM7CiAJCW5vdF9mb3VuZF9tY3RybCA9IDA7CiAJfQogCkBAIC0xNzEsOSArMTcxLDkgQEAKIAkJbWN0cmwgPSAoYW1iYXBwX2Rldl9tY3RybCAqKSBiYXNlOwogCiAJCS8qIGNvbmZpZyBNQ1RSTCBtZW1vcnkgY29udHJvbGxlciAqLwotCQltY3RybC0+bWNmZzEgPSBDRkdfR1JMSUJfRlRfTUVNQ0ZHMSB8IChtY3RybC0+bWNmZzEgJiAweDMwMCk7Ci0JCW1jdHJsLT5tY2ZnMiA9IENGR19HUkxJQl9GVF9NRU1DRkcyOwotCQltY3RybC0+bWNmZzMgPSBDRkdfR1JMSUJfRlRfTUVNQ0ZHMzsKKwkJbWN0cmwtPm1jZmcxID0gQ09ORklHX1NZU19HUkxJQl9GVF9NRU1DRkcxIHwgKG1jdHJsLT5tY2ZnMSAmIDB4MzAwKTsKKwkJbWN0cmwtPm1jZmcyID0gQ09ORklHX1NZU19HUkxJQl9GVF9NRU1DRkcyOworCQltY3RybC0+bWNmZzMgPSBDT05GSUdfU1lTX0dSTElCX0ZUX01FTUNGRzM7CiAJCW5vdF9mb3VuZF9tY3RybCA9IDA7CiAJfQogCkBAIC0xODMsNyArMTgzLDcgQEAKIAkJc2RjdHJsID0gKGFtYmFwcF9kZXZfc2RjdHJsICopIGJhc2U7CiAKIAkJLyogY29uZmlnIG1lbW9yeSBjb250cm9sbGVyICovCi0JCXNkY3RybC0+c2RjZmcgPSBDRkdfR1JMSUJfU0RSQU07CisJCXNkY3RybC0+c2RjZmcgPSBDT05GSUdfU1lTX0dSTElCX1NEUkFNOwogCQlub3RfZm91bmRfbWN0cmwgPSAwOwogCX0KIApAQCAtMTkyLDggKzE5Miw4IEBACiAJCWRkcjJzcGEgPSAoYW1iYXBwX2Rldl9kZHIyc3BhICopIGFtYmFwcF9haGJfZ2V0X2luZm8oYWhiLCAxKTsKIAogCQkvKiBDb25maWcgRERSMiBtZW1vcnkgY29udHJvbGxlciAqLwotCQlkZHIyc3BhLT5jZmcxID0gQ0ZHX0dSTElCX0REUjJfQ0ZHMTsKLQkJZGRyMnNwYS0+Y2ZnMyA9IENGR19HUkxJQl9ERFIyX0NGRzM7CisJCWRkcjJzcGEtPmNmZzEgPSBDT05GSUdfU1lTX0dSTElCX0REUjJfQ0ZHMTsKKwkJZGRyMnNwYS0+Y2ZnMyA9IENPTkZJR19TWVNfR1JMSUJfRERSMl9DRkczOwogCQlub3RfZm91bmRfbWN0cmwgPSAwOwogCX0KIApAQCAtMjAyLDcgKzIwMiw3IEBACiAJCWRkcnNwYSA9IChhbWJhcHBfZGV2X2RkcnNwYSAqKSBhbWJhcHBfYWhiX2dldF9pbmZvKGFoYiwgMSk7CiAKIAkJLyogQ29uZmlnIEREUiBtZW1vcnkgY29udHJvbGxlciAqLwotCQlkZHJzcGEtPmN0cmwgPSBDRkdfR1JMSUJfRERSX0NGRzsKKwkJZGRyc3BhLT5jdHJsID0gQ09ORklHX1NZU19HUkxJQl9ERFJfQ0ZHOwogCQlub3RfZm91bmRfbWN0cmwgPSAwOwogCX0KIApkaWZmIC0tZ2l0IGEvY3B1L2xlb24zL2ludGVycnVwdHMuYyBiL2NwdS9sZW9uMy9pbnRlcnJ1cHRzLmMKaW5kZXggMjY5MjYzMi4uYWM2YWNhNSAxMDA2NDQKLS0tIGEvY3B1L2xlb24zL2ludGVycnVwdHMuYworKysgYi9jcHUvbGVvbjMvaW50ZXJydXB0cy5jCkBAIC0xMDQsOCArMTA0LDggQEAKIHZvaWQgaGFuZGxlcl9pcnEoaW50IGlycSwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7CiAJaWYgKGlycV9oYW5kbGVyc1tpcnFdLmhhbmRsZXIpIHsKLQkJaWYgKCgodW5zaWduZWQgaW50KWlycV9oYW5kbGVyc1tpcnFdLmhhbmRsZXIgPiBDRkdfUkFNX0VORCkgfHwKLQkJICAgICgodW5zaWduZWQgaW50KWlycV9oYW5kbGVyc1tpcnFdLmhhbmRsZXIgPCBDRkdfUkFNX0JBU0UpCisJCWlmICgoKHVuc2lnbmVkIGludClpcnFfaGFuZGxlcnNbaXJxXS5oYW5kbGVyID4gQ09ORklHX1NZU19SQU1fRU5EKSB8fAorCQkgICAgKCh1bnNpZ25lZCBpbnQpaXJxX2hhbmRsZXJzW2lycV0uaGFuZGxlciA8IENPTkZJR19TWVNfUkFNX0JBU0UpCiAJCSAgICApIHsKIAkJCXByaW50ZigiaGFuZGxlcl9pcnE6IGJhZCBoYW5kbGVyOiAleCwgaXJxIG51bWJlciAlZFxuIiwKIAkJCSAgICAgICAodW5zaWduZWQgaW50KWlycV9oYW5kbGVyc1tpcnFdLmhhbmRsZXIsIGlycSk7CkBAIC0xNjUsOCArMTY1LDggQEAKIAkJcHJpbnRmKCJpcnFfaW5zdGFsbF9oYW5kbGVyOiAweCUwOGx4IHJlcGxhY2luZyAweCUwOGx4XG4iLAogCQkgICAgICAgKHVsb25nKSBoYW5kbGVyLCAodWxvbmcpIGlycV9oYW5kbGVyc1tpcnFdLmhhbmRsZXIpOwogCi0JaWYgKCgodW5zaWduZWQgaW50KWhhbmRsZXIgPiBDRkdfUkFNX0VORCkgfHwKLQkgICAgKCh1bnNpZ25lZCBpbnQpaGFuZGxlciA8IENGR19SQU1fQkFTRSkKKwlpZiAoKCh1bnNpZ25lZCBpbnQpaGFuZGxlciA+IENPTkZJR19TWVNfUkFNX0VORCkgfHwKKwkgICAgKCh1bnNpZ25lZCBpbnQpaGFuZGxlciA8IENPTkZJR19TWVNfUkFNX0JBU0UpCiAJICAgICkgewogCQlwcmludGYoImlycV9pbnN0YWxsX2hhbmRsZXI6IGJhZCBoYW5kbGVyOiAleCwgaXJxIG51bWJlciAlZFxuIiwKIAkJICAgICAgICh1bnNpZ25lZCBpbnQpaGFuZGxlciwgaXJxKTsKZGlmZiAtLWdpdCBhL2NwdS9sZW9uMy9wcm9tLmMgYi9jcHUvbGVvbjMvcHJvbS5jCmluZGV4IDlmYTJkMDQuLjE4ZDJmYjIgMTAwNjQ0Ci0tLSBhL2NwdS9sZW9uMy9wcm9tLmMKKysrIGIvY3B1L2xlb24zL3Byb20uYwpAQCAtNDksMTQgKzQ5LDE0IEBACiAvKiBmb3IgX192YSAqLwogZXh0ZXJuIGludCBfX3Byb21fc3RhcnQ7CiAjZGVmaW5lIFBBR0VfT0ZGU0VUIDB4ZjAwMDAwMDAKLSNkZWZpbmUgcGh5c19iYXNlIENGR19TRFJBTV9CQVNFCisjZGVmaW5lIHBoeXNfYmFzZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UKICNkZWZpbmUgUFJPTV9PRkZTIDgxOTIKICNkZWZpbmUgUFJPTV9TSVpFX01BU0sgKFBST01fT0ZGUy0xKQogI2RlZmluZSBfX3ZhKHgpICggXAogCSh2b2lkICopKCAoKHVuc2lnbmVkIGxvbmcpKHgpKS1QUk9NX09GRlMrIFwKLQkoQ0ZHX1BST01fT0ZGU0VULXBoeXNfYmFzZSkrUEFHRV9PRkZTRVQtVEVYVF9CQVNFICkgXAorCShDT05GSUdfU1lTX1BST01fT0ZGU0VULXBoeXNfYmFzZSkrUEFHRV9PRkZTRVQtVEVYVF9CQVNFICkgXAogCSkKLSNkZWZpbmUgX19waHkoeCkgKCh2b2lkICopKCgodW5zaWduZWQgbG9uZykoeCkpLVBST01fT0ZGUytDRkdfUFJPTV9PRkZTRVQtVEVYVF9CQVNFKSkKKyNkZWZpbmUgX19waHkoeCkgKCh2b2lkICopKCgodW5zaWduZWQgbG9uZykoeCkpLVBST01fT0ZGUytDT05GSUdfU1lTX1BST01fT0ZGU0VULVRFWFRfQkFTRSkpCiAKIHN0cnVjdCBwcm9wZXJ0eSB7CiAJY2hhciAqbmFtZTsKQEAgLTU0NSwxMyArNTQ1LDEzIEBACiAJX192YSgmc3BpLnRvdHBoeXMpLAogCXsKIAkgTlVMTCwKLQkgKGNoYXIgKilDRkdfU0RSQU1fQkFTRSwKKwkgKGNoYXIgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsCiAJIDAsCiAJIH0sCiAJX192YSgmc3BpLmF2YWlsKSwKIAl7CiAJIE5VTEwsCi0JIChjaGFyICopQ0ZHX1NEUkFNX0JBU0UsCisJIChjaGFyICopQ09ORklHX1NZU19TRFJBTV9CQVNFLAogCSAwLAogCSB9LAogCU5VTEwsCQkJLyogcHJvbW1hcF9wICovCkBAIC02NTksNyArNjU5LDcgQEAKIAogCS8qIGdldCBwaHlzaWNhbCBhZGRyZXNzICovCiAJc3RydWN0IGxlb25fcHJvbV9pbmZvICpwc3BpID0KLQkgICAgKHZvaWQgKikoQ0ZHX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOworCSAgICAodm9pZCAqKShDT05GSUdfU1lTX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOwogCiAJdW5zaWduZWQgaW50ICpzcm1tdV9jdHhfdGFibGU7CiAKQEAgLTcxMiw3ICs3MTIsNyBAQAogCXNybW11X3NldF9tbXVyZWcoMCk7CiAKIAkvKiBIYXJkY29kZWQgc3RhcnQgYWRkcmVzcyAqLwotCXJlc2V0ID0gQ0ZHX01PTklUT1JfQkFTRTsKKwlyZXNldCA9IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFOwogCiAJLyogZmx1c2ggZGF0YSBjYWNoZSAqLwogCXNwYXJjX2RjYWNoZV9mbHVzaF9hbGwoKTsKQEAgLTc0Miw3ICs3NDIsNyBAQAogCiAJLyogZ2V0IHBoeXNpY2FsIGFkZHJlc3MgKi8KIAlzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKnBzcGkgPQotCSAgICAodm9pZCAqKShDRkdfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CisJICAgICh2b2lkICopKENPTkZJR19TWVNfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CiAKIAl1YXJ0ID0gKGFtYmFwcF9kZXZfYXBidWFydCAqKQogCSAgICBTUEFSQ19CWVBBU1NfUkVBRCgmcHNwaS0+cmVsb2NfZnVuY3MubGVvbjNfYXBidWFydCk7CkBAIC03NzgsNyArNzc4LDcgQEAKIHsKIAkvKiBnZXQgcGh5c2ljYWwgYWRkcmVzcyAqLwogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9Ci0JICAgICh2b2lkICopKENGR19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKKwkgICAgKHZvaWQgKikoQ09ORklHX1NZU19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKIAogCS8qIGNvbnZlcnQgaW50byB2aXJ0dWFsIGFkZHJlc3MgKi8KIAlwc3BpID0gKHN0cnVjdCBsZW9uX3Byb21faW5mbyAqKQpAQCAtNzkzLDcgKzc5Myw3IEBACiB7CiAJLyogZ2V0IHBoeXNpY2FsIGFkZHJlc3MgKi8KIAlzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKnBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCi0JICAgIChDRkdfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CisJICAgIChDT05GSUdfU1lTX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOwogCiAJLyogY29udmVydCBpbnRvIHZpcnR1YWwgYWRkcmVzcyAqLwogCXBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCkBAIC04MDgsNyArODA4LDcgQEAKIHsKIAkvKiBnZXQgcGh5c2ljYWwgYWRkcmVzcyAqLwogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9IChzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKikKLQkgICAgKENGR19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKKwkgICAgKENPTkZJR19TWVNfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CiAKIAkvKiBjb252ZXJ0IGludG8gdmlydHVhbCBhZGRyZXNzICovCiAJcHNwaSA9IChzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKikKQEAgLTgyNyw3ICs4MjcsNyBAQAogewogCS8qIGdldCBwaHlzaWNhbCBhZGRyZXNzICovCiAJc3RydWN0IGxlb25fcHJvbV9pbmZvICpwc3BpID0gKHN0cnVjdCBsZW9uX3Byb21faW5mbyAqKQotCSAgICAoQ0ZHX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOworCSAgICAoQ09ORklHX1NZU19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKIAogCS8qIGNvbnZlcnQgaW50byB2aXJ0dWFsIGFkZHJlc3MgKi8KIAlwc3BpID0gKHN0cnVjdCBsZW9uX3Byb21faW5mbyAqKQpAQCAtODQzLDcgKzg0Myw3IEBACiB7CiAJLyogZ2V0IHBoeXNpY2FsIGFkZHJlc3MgKi8KIAlzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKnBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCi0JICAgIChDRkdfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CisJICAgIChDT05GSUdfU1lTX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOwogCiAJLyogY29udmVydCBpbnRvIHZpcnR1YWwgYWRkcmVzcyAqLwogCXBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCkBAIC04NjYsNyArODY2LDcgQEAKIHsKIAkvKiBnZXQgcGh5c2ljYWwgYWRkcmVzcyAqLwogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9IChzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKikKLQkgICAgKENGR19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKKwkgICAgKENPTkZJR19TWVNfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CiAJc3RydWN0IHByb3BlcnR5ICpwcm9wOwogCiAJLyogY29udmVydCBpbnRvIHZpcnR1YWwgYWRkcmVzcyAqLwpAQCAtOTIyLDcgKzkyMiw3IEBACiAJcHNwaS0+ZnJlcV9raHogPSBDT05GSUdfU1lTX0NMS19GUkVRIC8gMTAwMDsKIAogCS8qIFNldCBBdmFpbGFibGUgbWFpbiBtZW1vcnkgc2l6ZSAqLwotCXBzcGktPnRvdHBoeXMubnVtX2J5dGVzID0gQ0ZHX1BST01fT0ZGU0VUIC0gQ0ZHX1NEUkFNX0JBU0U7CisJcHNwaS0+dG90cGh5cy5udW1fYnl0ZXMgPSBDT05GSUdfU1lTX1BST01fT0ZGU0VUIC0gQ09ORklHX1NZU19TRFJBTV9CQVNFOwogCXBzcGktPmF2YWlsLm51bV9ieXRlcyA9IHBzcGktPnRvdHBoeXMubnVtX2J5dGVzOwogCiAJLyogU2V0IHRoZSBwb2ludGVyIHRvIHRoZSBDb25zb2xlIFVBUlQgaW4gcm9tdmVjICovCkBAIC05ODIsNyArOTgyLDcgQEAKIGludCBwcm9tX2luaXQodm9pZCkKIHsKIAlzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKnBzcGkgPSAodm9pZCAqKQotCSAgICAoKCgodW5zaWduZWQgaW50KSZzcGkpICYgUFJPTV9TSVpFX01BU0spICsgQ0ZHX1BST01fT0ZGU0VUKTsKKwkgICAgKCgoKHVuc2lnbmVkIGludCkmc3BpKSAmIFBST01fU0laRV9NQVNLKSArIENPTkZJR19TWVNfUFJPTV9PRkZTRVQpOwogCiAJLyogZGlzYWJsZSBtbXUgKi8KIAlzcm1tdV9zZXRfbW11cmVnKDB4MDAwMDAwMDApOwpAQCAtMTAwOCw3ICsxMDA4LDcgQEAKIAkvKiBpZiBubyBib290YXJncyBzZXQsIHNraXAgY29weWluZyA9PT4gZGVmYXVsdCBib290bGluZSAqLwogCWlmIChib290YXJncyAmJiAoKmJvb3RhcmdzICE9ICdcMCcpKSB7CiAJCXBzcGkgPSAodm9pZCAqKSgoKCh1bnNpZ25lZCBpbnQpJnNwaSkgJiBQUk9NX1NJWkVfTUFTSykgKwotCQkJCUNGR19QUk9NX09GRlNFVCk7CisJCQkJQ09ORklHX1NZU19QUk9NX09GRlNFVCk7CiAJCXNyYyA9IGJvb3RhcmdzOwogCQlkc3QgPSAmcHNwaS0+YXJnWzBdOwogCQlsZWZ0ID0gMjU1OwkvKiBtYXggbGVuICovCkBAIC0xMDI1LDcgKzEwMjUsNyBAQAogewogCXNwYXJjX3NybW11X3NldHVwICpwc3JtbXVfdGFibGVzID0gKHZvaWQgKikKIAkgICAgKCgoKHVuc2lnbmVkIGludCkmc3JtbXVfdGFibGVzKSAmIFBST01fU0laRV9NQVNLKSArCi0JICAgICBDRkdfUFJPTV9PRkZTRVQpOworCSAgICAgQ09ORklHX1NZU19QUk9NX09GRlNFVCk7CiAKIAkvKiBNYWtlIGNvbnRleHQgMCAoa2VybmVsJ3MgY29udGV4dCkgcG9pbnQKIAkgKiB0byBvdXIgcHJlcGFyZWQgbWVtb3J5IG1hcHBpbmcKQEAgLTEwNDEsMjEgKzEwNDEsMjEgQEAKICNkZWZpbmUgUFRFIDIKICNkZWZpbmUgQUNDX1NVX0FMTCAweDFjCiAJcHNybW11X3RhYmxlcy0+cGdkX3RhYmxlWzB4ZjBdID0KLQkgICAgKENGR19TRFJBTV9CQVNFID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKKwkgICAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CiAJcHNybW11X3RhYmxlcy0+cGdkX3RhYmxlWzB4ZjFdID0KLQkgICAgKChDRkdfU0RSQU1fQkFTRSArIDB4MTAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOworCSAgICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MTAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOwogCXBzcm1tdV90YWJsZXMtPnBnZF90YWJsZVsweGYyXSA9Ci0JICAgICgoQ0ZHX1NEUkFNX0JBU0UgKyAweDIwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKKwkgICAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDIwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKIAlwc3JtbXVfdGFibGVzLT5wZ2RfdGFibGVbMHhmM10gPQotCSAgICAoKENGR19TRFJBTV9CQVNFICsgMHgzMDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CisJICAgICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgzMDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CiAJcHNybW11X3RhYmxlcy0+cGdkX3RhYmxlWzB4ZjRdID0KLQkgICAgKChDRkdfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOworCSAgICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOwogCXBzcm1tdV90YWJsZXMtPnBnZF90YWJsZVsweGY1XSA9Ci0JICAgICgoQ0ZHX1NEUkFNX0JBU0UgKyAweDUwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKKwkgICAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDUwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKIAlwc3JtbXVfdGFibGVzLT5wZ2RfdGFibGVbMHhmNl0gPQotCSAgICAoKENGR19TRFJBTV9CQVNFICsgMHg2MDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CisJICAgICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg2MDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CiAJcHNybW11X3RhYmxlcy0+cGdkX3RhYmxlWzB4ZjddID0KLQkgICAgKChDRkdfU0RSQU1fQkFTRSArIDB4NzAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOworCSAgICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NzAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOwogCiAJLyogY29udmVydCByb20gdmVjIHBvaW50ZXIgdG8gdmlydHVhbCBhZGRyZXNzICovCiAJa2VybmVsX2FyZ19wcm9tdmVjID0gKHN0cnVjdCBsaW51eF9yb212ZWMgKikKZGlmZiAtLWdpdCBhL2NwdS9sZW9uMy9zZXJpYWwuYyBiL2NwdS9sZW9uMy9zZXJpYWwuYwppbmRleCAyN2Q1Y2QzLi40YjJmY2I4IDEwMDY0NAotLS0gYS9jcHUvbGVvbjMvc2VyaWFsLmMKKysrIGIvY3B1L2xlb24zL3NlcmlhbC5jCkBAIC01OCw3ICs1OCw3IEBACiAJCSAqCiAJCSAqIFJlY2VpdmVyICYgdHJhbnNtaXR0ZXIgZW5hYmxlCiAJCSAqLwotCQlsZW9uM19hcGJ1YXJ0LT5zY2FsZXIgPSBDRkdfR1JMSUJfQVBCVUFSVF9TQ0FMRVI7CisJCWxlb24zX2FwYnVhcnQtPnNjYWxlciA9IENPTkZJR19TWVNfR1JMSUJfQVBCVUFSVF9TQ0FMRVI7CiAKIAkJLyogTGV0IGJpdCAxMSBiZSB1bmNoYW5nZWQgKGRlYnVnIGJpdCBmb3IgR1JNT04pICovCiAJCXRtcCA9IFJFQURfV09SRChsZW9uM19hcGJ1YXJ0LT5jdHJsKTsKZGlmZiAtLWdpdCBhL2NwdS9sZW9uMy9zdGFydC5TIGIvY3B1L2xlb24zL3N0YXJ0LlMKaW5kZXggZDQyMTg5OC4uN2FmZTEwZSAxMDA2NDQKLS0tIGEvY3B1L2xlb24zL3N0YXJ0LlMKKysrIGIvY3B1L2xlb24zL3N0YXJ0LlMKQEAgLTY4LDcgKzY4LDcgQEAKIE1JTkZSQU1FID0gKFdJTkRPV1NJWkUgKyBBUkdQVVNIU0laRSArIDQpCiAKIC8qIE51bWJlciBvZiByZWdpc3RlciB3aW5kb3dzICovCi0jaWZuZGVmIENGR19TUEFSQ19OV0lORE9XUworI2lmbmRlZiBDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTCiAjZXJyb3IgTXVzdCBkZWZpbmUgbnVtYmVyIG9mIFNQQVJDIHJlZ2lzdGVyIHdpbmRvd3MsIGRlZmF1bHQgaXMgOAogI2VuZGlmCiAKQEAgLTI1MSw3ICsyNTEsNyBAQAogCW1vdgklZzMsICV3aW0KIAogc3RhY2twOgotCXNldAlDRkdfSU5JVF9TUF9PRkZTRVQsICVmcAorCXNldAlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VULCAlZnAKIAlhbmRuCSVmcCwgMHgwZiwgJWZwCiAJc3ViCSVmcCwgNjQsICVzcAogCkBAIC0yNjgsNyArMjY4LDcgQEAKIHJlbG9jOgogCXNldAlURVhUX1NUQVJULCVnMgogCXNldAlEQVRBX0VORCwlZzMKLQlzZXQJQ0ZHX1JFTE9DX01PTklUT1JfQkFTRSwlZzQKKwlzZXQJQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UsJWc0CiByZWxvY19sb29wOgogCWxkZAlbJWcyXSwlbDAKIAlsZGQJWyVnMis4XSwlbDIKQEAgLTMxNCwxMCArMzE0LDEwIEBACiAJc2V0CV9fZ290X2VuZCwlZzMKIC8qCiAgKiBuZXcgZ290IG9mZnNldCA9IChvbGQgR09ULVBUUiAocmVhZCB3aXRoIGxkKSAtCi0gKiAgIENGR19SRUxPQ19NT05JVE9SX0JBU0UoZnJvbSBkZWZpbmUpICkgKworICogICBDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRShmcm9tIGRlZmluZSkgKSArCiAgKiAgIERlc3RpbmF0aW9uIEFkZHJlc3MgKGZyb20gZGVmaW5lKQogICovCi0Jc2V0CUNGR19SRUxPQ19NT05JVE9SX0JBU0UsJWcyCisJc2V0CUNPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLCVnMgogCXNldAlURVhUX1NUQVJULCAlZzEKIAlhZGQJJWc0LCVnMiwlZzQKIAlzdWIJJWc0LCVnMSwlZzQKQEAgLTMzOCw3ICszMzgsNyBAQAogcHJvbV9yZWxvY2F0ZToKIAlzZXQJX19wcm9tX3N0YXJ0LCAlZzIKIAlzZXQJX19wcm9tX2VuZCwgJWczCi0Jc2V0CUNGR19QUk9NX09GRlNFVCwgJWc0CisJc2V0CUNPTkZJR19TWVNfUFJPTV9PRkZTRVQsICVnNAogCiBwcm9tX3JlbG9jYXRlX2xvb3A6CiAJbGRkCVslZzJdLCVsMApAQCAtMzU0LDcgKzM1NCw3IEBACiAgKiB0aGUgbmV3IHRyYXAgdGFibGUgYWRkcmVzcwogICovCiAKLQlzZXQJQ0ZHX1JFTE9DX01PTklUT1JfQkFTRSwgJWcyCisJc2V0CUNPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLCAlZzIKIAl3cgklZzAsICVnMiwgJXRicgogCW5vcAogCW5vcApAQCAtMzY4LDIyICszNjgsMjIgQEAKIAlzZXRoaQklaGkoMHgwMDgwMDAwMCksICVvMAogCWxkYQlbJWcwXSAyLCAlbzEKIAlhbmQJJW8wLCAlbzEsICVvMAotCXNldGhpCSVoaShsZW9uM19zbm9vcGluZ19hdmFpbCtDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSksICVvMQotCXN0CSVvMCwgWyVsbyhsZW9uM19zbm9vcGluZ19hdmFpbCtDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSkrJW8xXQorCXNldGhpCSVoaShsZW9uM19zbm9vcGluZ19hdmFpbCtDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRS1URVhUX0JBU0UpLCAlbzEKKwlzdAklbzAsIFslbG8obGVvbjNfc25vb3BpbmdfYXZhaWwrQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UtVEVYVF9CQVNFKSslbzFdCiAKIC8qCWNhbGwJcmVsb2NhdGUqLwogCW5vcAogLyogQ2FsbCByZWxvY2F0ZWQgaW5pdCBmdW5jdGlvbnMgKi8KIGp1bXA6CiAJc2V0CWNwdV9pbml0X2YyLCVvMQotCXNldAlDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLCVvMgorCXNldAlDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRSwlbzIKIAlhZGQJJW8xLCVvMiwlbzEKIAlzdWIJJW8xLCVnMSwlbzEKIAljYWxsCSVvMQogCWNscgklbzAKIAogCXNldAlib2FyZF9pbml0X2YsJW8xCi0Jc2V0CUNGR19SRUxPQ19NT05JVE9SX0JBU0UsJW8yCisJc2V0CUNPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLCVvMgogCWFkZAklbzEsJW8yLCVvMQogCXN1YgklbzEsJWcxLCVvMQogCWNhbGwJJW8xCkBAIC00MDksNyArNDA5LDcgQEAKIAlXUklURV9QQVVTRQogCW1vdgklbDcsICVvMAkJISBpcnEgbGV2ZWwKIAlzZXQJaGFuZGxlcl9pcnEsICVvMQotCXNldAkoQ0ZHX1JFTE9DX01PTklUT1JfQkFTRS1URVhUX0JBU0UpLCAlbzIKKwlzZXQJKENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSksICVvMgogCWFkZAklbzEsICVvMiwgJW8xCiAJY2FsbAklbzEKIAlhZGQJJXNwLCBTRl9SRUdTX1NaLCAlbzEJISBwdF9yZWdzIHB0cgpAQCAtNDI3LDcgKzQyNyw3IEBACiAJbW92CSV3aW0sICVsMwkJISBDYWxjdWxhdGUgbmV4dCBXSU0KIAltb3YJJWcxLCAlbDcKIAlzcmwJJWwzLCAxLCAlZzEKLQlzbGwJJWwzLCAoQ0ZHX1NQQVJDX05XSU5ET1dTLTEpICwgJWw0CisJc2xsCSVsMywgKENPTkZJR19TWVNfU1BBUkNfTldJTkRPV1MtMSkgLCAlbDQKIAlvcgklbDQsICVnMSwgJWcxCiAKIAlzYXZlCQkJCSEgR2V0IGludG8gd2luZG93IHRvIGJlIHNhdmVkLgpAQCAtNDY0LDcgKzQ2NCw3IEBACiAKIAltb3YgICV3aW0sICVsMwkJCSEgQ2FsY3VsYXRlIG5leHQgV0lNCiAJc2xsICAlbDMsIDEsICVsNAotCXNybCAgJWwzLCAoQ0ZHX1NQQVJDX05XSU5ET1dTLTEpLCAlbDUKKwlzcmwgICVsMywgKENPTkZJR19TWVNfU1BBUkNfTldJTkRPV1MtMSksICVsNQogCW9yICAgJWw1LCAlbDQsICVsNQogCW1vdiAgJWw1LCAld2ltCiAJbm9wOyBub3A7IG5vcApAQCAtNTMzLDcgKzUzMyw3IEBACiAJICovCiAJc3JsCSV0X3dpbSwgMHgxLCAlZzIJCSEgYmVnaW4gY29tcHV0YXRpb24gb2YgbmV3ICV3aW0KIAotCXNldAkoQ0ZHX1NQQVJDX05XSU5ET1dTLTEpLCAlZzMJIU5XSU5ET1dTLTEKKwlzZXQJKENPTkZJR19TWVNfU1BBUkNfTldJTkRPV1MtMSksICVnMwkhTldJTkRPV1MtMQogCiAJc2xsCSV0X3dpbSwgJWczLCAldF93aW0JISBOV0lORE9XUy0xCiAJb3IJJXRfd2ltLCAlZzIsICVnMgpAQCAtNTY3LDcgKzU2Nyw3IEBACiAJbW92CTIsICVnMQogCXNsbAklZzEsICV0X3BzciwgJWcxCiAKLQlzZXQJQ0ZHX1NQQVJDX05XSU5ET1dTLCAlZzIJIU5XSU5ET1dTCisJc2V0CUNPTkZJR19TWVNfU1BBUkNfTldJTkRPV1MsICVnMgkhTldJTkRPV1MKIAogCXNybAklZzEsICVnMiwgJWcyCiAJb3IJJWcxLCAlZzIsICVnMQpAQCAtNTc3LDcgKzU3Nyw3IEBACiAJIHNsbAklZzIsIDB4MSwgJWcxCiAKIAkvKiBXZSBoYXZlIHRvIGdyYWIgYSB3aW5kb3cgYmVmb3JlIHJldHVybmluZy4gKi8KLQlzZXQJKENGR19TUEFSQ19OV0lORE9XUy0xKSwgJWczCSFOV0lORE9XUy0xCisJc2V0CShDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTLTEpLCAlZzMJIU5XSU5ET1dTLTEKIAogCXNybAklZzIsICVnMywgICVnMgogCW9yCSVnMSwgJWcyLCAlZzEKZGlmZiAtLWdpdCBhL2NwdS9saDdhNDB4L2NwdS5jIGIvY3B1L2xoN2E0MHgvY3B1LmMKaW5kZXggNTc4ZWI3My4uOGZmM2EzNiAxMDA2NDQKLS0tIGEvY3B1L2xoN2E0MHgvY3B1LmMKKysrIGIvY3B1L2xoN2E0MHgvY3B1LmMKQEAgLTk0LDcgKzk0LDcgQEAKIAkgKiBzZXR1cCB1cCBzdGFja3MgaWYgbmVjZXNzYXJ5CiAJICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKLQlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOIC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSA0OworCUlSUV9TVEFDS19TVEFSVCA9IF9hcm1ib290X3N0YXJ0IC0gQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gNDsKIAlGSVFfU1RBQ0tfU1RBUlQgPSBJUlFfU1RBQ0tfU1RBUlQgLSBDT05GSUdfU1RBQ0tTSVpFX0lSUTsKICNlbmRpZgogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvY3B1L2xoN2E0MHgvaW50ZXJydXB0cy5jIGIvY3B1L2xoN2E0MHgvaW50ZXJydXB0cy5jCmluZGV4IGQwMTc4N2YuLjVhY2ZlMWEgMTAwNjQ0Ci0tLSBhL2NwdS9saDdhNDB4L2ludGVycnVwdHMuYworKysgYi9jcHUvbGg3YTQweC9pbnRlcnJ1cHRzLmMKQEAgLTU5LDcgKzU5LDcgQEAKIAkJLyoKIAkJICogMTBtcyBwZXJpb2Qgd2l0aCA1MDguNDY5a0h6IGNsb2NrID0gNTA4NAogCQkgKi8KLQkJdGltZXJfbG9hZF92YWwgPSBDRkdfSFovMTAwOworCQl0aW1lcl9sb2FkX3ZhbCA9IENPTkZJR19TWVNfSFovMTAwOwogCX0KIAogCS8qIGxvYWQgdmFsdWUgZm9yIDEwIG1zIHRpbWVvdXQgKi8KQEAgLTk4LDEyICs5OCwxMiBAQAogCS8qIG5vcm1hbGl6ZSAqLwogCWlmICh1c2VjID49IDEwMDApIHsKIAkJdG1vID0gdXNlYyAvIDEwMDA7Ci0JCXRtbyAqPSBDRkdfSFo7CisJCXRtbyAqPSBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gMTAwMDsKIAl9CiAJZWxzZSB7CiAJCWlmICh1c2VjID4gMSkgewotCQkJdG1vID0gdXNlYyAqIENGR19IWjsKKwkJCXRtbyA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCQkJdG1vIC89ICgxMDAwKjEwMDApOwogCQl9CiAJCWVsc2UKQEAgLTE1MiwxMSArMTUyLDExIEBACiAJLyogbm9ybWFsaXplICovCiAJaWYgKHVzZWMgPj0gMTAwMCkgewogCQl0bW8gPSB1c2VjIC8gMTAwMDsKLQkJdG1vICo9IENGR19IWjsKKwkJdG1vICo9IENPTkZJR19TWVNfSFo7CiAJCXRtbyAvPSAxMDAwOwogCX0gZWxzZSB7CiAJCWlmICh1c2VjID4gMSkgewotCQkJdG1vID0gdXNlYyAqIENGR19IWjsKKwkJCXRtbyA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCQkJdG1vIC89ICgxMDAwKjEwMDApOwogCQl9IGVsc2UgewogCQkJdG1vID0gMTsKZGlmZiAtLWdpdCBhL2NwdS9saDdhNDB4L3N0YXJ0LlMgYi9jcHUvbGg3YTQweC9zdGFydC5TCmluZGV4IGU0NjU1ZDYuLjExMjUyY2UgMTAwNjQ0Ci0tLSBhL2NwdS9saDdhNDB4L3N0YXJ0LlMKKysrIGIvY3B1L2xoN2E0MHgvc3RhcnQuUwpAQCAtMTcyLDggKzE3Miw4IEBACiAJLyogU2V0IHVwIHRoZSBzdGFjawkJCQkJCSAgICAqLwogc3RhY2tfc2V0dXA6CiAJbGRyCXIwLCBfVEVYVF9CQVNFCQkvKiB1cHBlciAxMjggS2lCOiByZWxvY2F0ZWQgdWJvb3QgICAqLwotCXN1YglyMCwgcjAsICNDRkdfTUFMTE9DX0xFTgkvKiBtYWxsb2MgYXJlYSAgICAgICAgICAgICAgICAgICAgICAqLwotCXN1YglyMCwgcjAsICNDRkdfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8gICAgICAgICAgICAgICAgICAgICAgICAqLworCXN1YglyMCwgcjAsICNDT05GSUdfU1lTX01BTExPQ19MRU4JLyogbWFsbG9jIGFyZWEgICAgICAgICAgICAgICAgICAgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC8qIGJkaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKIAlzdWIJcjAsIHIwLCAjKENPTkZJR19TVEFDS1NJWkVfSVJRK0NPTkZJR19TVEFDS1NJWkVfRklRKQogI2VuZGlmCkBAIC0yODUsOCArMjg1LDggQEAKIAlzdWIJc3AsIHNwLCAjU19GUkFNRV9TSVpFCiAJc3RtaWEJc3AsIHtyMCAtIHIxMn0JCQlAIENhbGxpbmcgcjAtcjEyCiAJbGRyCXIyLCBfYXJtYm9vdF9zdGFydAotCXN1YglyMiwgcjIsICMoQ09ORklHX1NUQUNLU0laRStDRkdfTUFMTE9DX0xFTikKLQlzdWIJcjIsIHIyLCAjKENGR19HQkxfREFUQV9TSVpFKzgpICBAIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjaworCXN1YglyMiwgcjIsICMoQ09ORklHX1NUQUNLU0laRStDT05GSUdfU1lTX01BTExPQ19MRU4pCisJc3ViCXIyLCByMiwgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkgIEAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCiAJbGRtaWEJcjIsIHtyMiAtIHIzfQkJCUAgZ2V0IHBjLCBjcHNyCiAJYWRkCXIwLCBzcCwgI1NfRlJBTUVfU0laRQkJQCByZXN0b3JlIHNwX1NWQwogCkBAIC0zMTgsOCArMzE4LDggQEAKIAogCS5tYWNybyBnZXRfYmFkX3N0YWNrCiAJbGRyCXIxMywgX2FybWJvb3Rfc3RhcnQJCUAgc2V0dXAgb3VyIG1vZGUgc3RhY2sKLQlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRStDRkdfTUFMTE9DX0xFTikKLQlzdWIJcjEzLCByMTMsICMoQ0ZHX0dCTF9EQVRBX1NJWkUrOCkgQCByZXNlcnZlZCBhIGNvdXBsZSBzcG90cyBpbiBhYm9ydCBzdGFjaworCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1RBQ0tTSVpFK0NPTkZJR19TWVNfTUFMTE9DX0xFTikKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKIAogCXN0cglsciwgW3IxM10JCQlAIHNhdmUgY2FsbGVyIGxyIC8gc3BzcgogCW1ycwlsciwgc3BzcgpkaWZmIC0tZ2l0IGEvY3B1L21jZjUyMjd4L2NwdV9pbml0LmMgYi9jcHUvbWNmNTIyN3gvY3B1X2luaXQuYwppbmRleCBjZjI5NTU5Li4wZjFkZDFmIDEwMDY0NAotLS0gYS9jcHUvbWNmNTIyN3gvY3B1X2luaXQuYworKysgYi9jcHUvbWNmNTIyN3gvY3B1X2luaXQuYwpAQCAtNTgsNDAgKzU4LDQwIEBACiAJc2NtMS0+cGFjcmcgPSAwOwogCXNjbTEtPnBhY3JpID0gMDsKIAotI2lmIChkZWZpbmVkKENGR19DUzBfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MwX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTMF9DVFJMKSkKLQlmYmNzLT5jc2FyMCA9IENGR19DUzBfQkFTRTsKLQlmYmNzLT5jc2NyMCA9IENGR19DUzBfQ1RSTDsKLQlmYmNzLT5jc21yMCA9IENGR19DUzBfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTMF9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MwX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzBfQ1RSTCkpCisJZmJjcy0+Y3NhcjAgPSBDT05GSUdfU1lTX0NTMF9CQVNFOworCWZiY3MtPmNzY3IwID0gQ09ORklHX1NZU19DUzBfQ1RSTDsKKwlmYmNzLT5jc21yMCA9IENPTkZJR19TWVNfQ1MwX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzFfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MxX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTMV9DVFJMKSkKLQlmYmNzLT5jc2FyMSA9IENGR19DUzFfQkFTRTsKLQlmYmNzLT5jc2NyMSA9IENGR19DUzFfQ1RSTDsKLQlmYmNzLT5jc21yMSA9IENGR19DUzFfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTMV9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MxX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzFfQ1RSTCkpCisJZmJjcy0+Y3NhcjEgPSBDT05GSUdfU1lTX0NTMV9CQVNFOworCWZiY3MtPmNzY3IxID0gQ09ORklHX1NZU19DUzFfQ1RSTDsKKwlmYmNzLT5jc21yMSA9IENPTkZJR19TWVNfQ1MxX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzJfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MyX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTMl9DVFJMKSkKLQlmYmNzLT5jc2FyMiA9IENGR19DUzJfQkFTRTsKLQlmYmNzLT5jc2NyMiA9IENGR19DUzJfQ1RSTDsKLQlmYmNzLT5jc21yMiA9IENGR19DUzJfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTMl9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MyX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzJfQ1RSTCkpCisJZmJjcy0+Y3NhcjIgPSBDT05GSUdfU1lTX0NTMl9CQVNFOworCWZiY3MtPmNzY3IyID0gQ09ORklHX1NZU19DUzJfQ1RSTDsKKwlmYmNzLT5jc21yMiA9IENPTkZJR19TWVNfQ1MyX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzNfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MzX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTM19DVFJMKSkKLQlmYmNzLT5jc2FyMyA9IENGR19DUzNfQkFTRTsKLQlmYmNzLT5jc2NyMyA9IENGR19DUzNfQ1RSTDsKLQlmYmNzLT5jc21yMyA9IENGR19DUzNfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTM19CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MzX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzNfQ1RSTCkpCisJZmJjcy0+Y3NhcjMgPSBDT05GSUdfU1lTX0NTM19CQVNFOworCWZiY3MtPmNzY3IzID0gQ09ORklHX1NZU19DUzNfQ1RSTDsKKwlmYmNzLT5jc21yMyA9IENPTkZJR19TWVNfQ1MzX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzRfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1M0X01BU0spICYmIGRlZmluZWQoQ0ZHX0NTNF9DVFJMKSkKLQlmYmNzLT5jc2FyNCA9IENGR19DUzRfQkFTRTsKLQlmYmNzLT5jc2NyNCA9IENGR19DUzRfQ1RSTDsKLQlmYmNzLT5jc21yNCA9IENGR19DUzRfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTNF9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1M0X01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzRfQ1RSTCkpCisJZmJjcy0+Y3NhcjQgPSBDT05GSUdfU1lTX0NTNF9CQVNFOworCWZiY3MtPmNzY3I0ID0gQ09ORklHX1NZU19DUzRfQ1RSTDsKKwlmYmNzLT5jc21yNCA9IENPTkZJR19TWVNfQ1M0X01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzVfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1M1X01BU0spICYmIGRlZmluZWQoQ0ZHX0NTNV9DVFJMKSkKLQlmYmNzLT5jc2FyNSA9IENGR19DUzVfQkFTRTsKLQlmYmNzLT5jc2NyNSA9IENGR19DUzVfQ1RSTDsKLQlmYmNzLT5jc21yNSA9IENGR19DUzVfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTNV9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1M1X01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzVfQ1RSTCkpCisJZmJjcy0+Y3NhcjUgPSBDT05GSUdfU1lTX0NTNV9CQVNFOworCWZiY3MtPmNzY3I1ID0gQ09ORklHX1NZU19DUzVfQ1RSTDsKKwlmYmNzLT5jc21yNSA9IENPTkZJR19TWVNfQ1M1X01BU0s7CiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19GU0xfSTJDCkBAIC0xMDcsMTIgKzEwNywxMiBAQAogaW50IGNwdV9pbml0X3Iodm9pZCkKIHsKICNpZmRlZiBDT05GSUdfTUNGUlRDCi0Jdm9sYXRpbGUgcnRjX3QgKnJ0YyA9ICh2b2xhdGlsZSBydGNfdCAqKShDRkdfTUNGUlRDX0JBU0UpOworCXZvbGF0aWxlIHJ0Y190ICpydGMgPSAodm9sYXRpbGUgcnRjX3QgKikoQ09ORklHX1NZU19NQ0ZSVENfQkFTRSk7CiAJdm9sYXRpbGUgcnRjZXhfdCAqcnRjZXggPSAodm9sYXRpbGUgcnRjZXhfdCAqKSZydGMtPmV4dGVuZGVkOwotCXUzMiBvc2NpbGxhdG9yID0gQ0ZHX1JUQ19PU0NJTExBVE9SOworCXUzMiBvc2NpbGxhdG9yID0gQ09ORklHX1NZU19SVENfT1NDSUxMQVRPUjsKIAotCXJ0Y2V4LT5nb2N1ID0gKENGR19SVENfT1NDSUxMQVRPUiA+PiAxNikgJiAweEZGRkY7Ci0JcnRjZXgtPmdvY2wgPSBDRkdfUlRDX09TQ0lMTEFUT1IgJiAweEZGRkY7CisJcnRjZXgtPmdvY3UgPSAoQ09ORklHX1NZU19SVENfT1NDSUxMQVRPUiA+PiAxNikgJiAweEZGRkY7CisJcnRjZXgtPmdvY2wgPSBDT05GSUdfU1lTX1JUQ19PU0NJTExBVE9SICYgMHhGRkZGOwogI2VuZGlmCiAKIAlyZXR1cm4gKDApOwpAQCAtMTIzLDcgKzEyMyw3IEBACiAJdm9sYXRpbGUgZ3Bpb190ICpncGlvID0gKGdwaW9fdCAqKSBNTUFQX0dQSU87CiAKIAkvKiBTZXR1cCBQb3J0czogKi8KLQlzd2l0Y2ggKENGR19VQVJUX1BPUlQpIHsKKwlzd2l0Y2ggKENPTkZJR19TWVNfVUFSVF9QT1JUKSB7CiAJY2FzZSAwOgogCQlncGlvLT5wYXJfdWFydCAmPQogCQkgICAgKEdQSU9fUEFSX1VBUlRfVTBUWERfTUFTSyAmIEdQSU9fUEFSX1VBUlRfVTBSWERfTUFTSyk7CmRpZmYgLS1naXQgYS9jcHUvbWNmNTIyN3gvaW50ZXJydXB0cy5jIGIvY3B1L21jZjUyMjd4L2ludGVycnVwdHMuYwppbmRleCA5NTcyYTdiLi44NTgyOGE2IDEwMDY0NAotLS0gYS9jcHUvbWNmNTIyN3gvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9tY2Y1MjI3eC9pbnRlcnJ1cHRzLmMKQEAgLTMxLDcgKzMxLDcgQEAKIAogaW50IGludGVycnVwdF9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ0ZHX0lOVFJfQkFTRSk7CisJdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ09ORklHX1NZU19JTlRSX0JBU0UpOwogCiAJLyogTWFrZSBzdXJlIGFsbCBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCAqLwogCWludHAtPmltcmgwIHw9IDB4RkZGRkZGRkY7CkBAIC00NCw5ICs0NCw5IEBACiAjaWYgZGVmaW5lZChDT05GSUdfTUNGVE1SKQogdm9pZCBkdGltZXJfaW50cl9zZXR1cCh2b2lkKQogewotCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENGR19JTlRSX0JBU0UpOworCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENPTkZJR19TWVNfSU5UUl9CQVNFKTsKIAotCWludHAtPmljcjBbQ0ZHX1RNUklOVFJfTk9dID0gQ0ZHX1RNUklOVFJfUFJJOwotCWludHAtPmltcmgwICY9IH5DRkdfVE1SSU5UUl9NQVNLOworCWludHAtPmljcjBbQ09ORklHX1NZU19UTVJJTlRSX05PXSA9IENPTkZJR19TWVNfVE1SSU5UUl9QUkk7CisJaW50cC0+aW1yaDAgJj0gfkNPTkZJR19TWVNfVE1SSU5UUl9NQVNLOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9jcHUvbWNmNTIyN3gvc3BlZWQuYyBiL2NwdS9tY2Y1MjI3eC9zcGVlZC5jCmluZGV4IDBiYWY5YmMuLjc0YjkwNTkgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1MjI3eC9zcGVlZC5jCisrKyBiL2NwdS9tY2Y1MjI3eC9zcGVlZC5jCkBAIC05OSwxNCArOTksMTQgQEAKIAkJLyogc2VyaWFsIG1vZGUgKi8KIAl9IGVsc2UgewogCQkvKiBOb3JtYWwgTW9kZSAqLwotCQl2Y28gPSBwZmRyICogQ0ZHX0lOUFVUX0NMS1NSQzsKKwkJdmNvID0gcGZkciAqIENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDOwogCQlnZC0+dmNvX2NsayA9IHZjbzsKIAl9CiAKIAlpZiAoKGNjbS0+Y2NyICYgQ0NNX01JU0NDUl9MSU1QKSA9PSBDQ01fTUlTQ0NSX0xJTVApIHsKIAkJLyogTGltcCBtb2RlICovCiAJfSBlbHNlIHsKLQkJZ2QtPmlucF9jbGsgPSBDRkdfSU5QVVRfQ0xLU1JDOwkvKiBJbnB1dCBjbG9jayAqLworCQlnZC0+aW5wX2NsayA9IENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDOwkvKiBJbnB1dCBjbG9jayAqLwogCiAJCXRlbXAgPSAocGxsLT5wY3IgJiBQTExfUENSX09VVERJVjFfTUFTSykgKyAxOwogCQlnZC0+Y3B1X2NsayA9IHZjbyAvIHRlbXA7CS8qIGNwdSBjbG9jayAqLwpkaWZmIC0tZ2l0IGEvY3B1L21jZjUyMjd4L3N0YXJ0LlMgYi9jcHUvbWNmNTIyN3gvc3RhcnQuUwppbmRleCAxYjQ3Yzk3Li5iZWNhYWI3IDEwMDY0NAotLS0gYS9jcHUvbWNmNTIyN3gvc3RhcnQuUworKysgYi9jcHUvbWNmNTIyN3gvc3RhcnQuUwpAQCAtMjksOSArMjksOSBAQAogI2VuZGlmCiAKIC8qIGxhc3QgdGhyZWUgbG9uZyB3b3JkIHJlc2VydmVkIGZvciBjYWNoZSBzdGF0dXMgKi8KLSNkZWZpbmUgSUNBQ0hFX1NUQVRVUwkoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC0gNCkKLSNkZWZpbmUgRENBQ0hFX1NUQVRVUwkoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC0gOCkKLSNkZWZpbmUgQ0FDUl9TVEFUVVMJKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtMTIpCisjZGVmaW5lIElDQUNIRV9TVEFUVVMJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC0gNCkKKyNkZWZpbmUgRENBQ0hFX1NUQVRVUwkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELSA4KQorI2RlZmluZSBDQUNSX1NUQVRVUwkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTEyKQogCiAjZGVmaW5lIF9TVEFSVAlfc3RhcnQKICNkZWZpbmUgX0ZBVUxUCV9mYXVsdApAQCAtMTMyLDEwICsxMzIsMTAgQEAKIAltb3ZlLncgIzB4MjcwMCwlc3IJCS8qIE1hc2sgb2ZmIEludGVycnVwdCAqLwogCiAJLyogU2V0IHZlY3RvciBiYXNlIHJlZ2lzdGVyIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIEZsYXNoICovCi0JbW92ZS5sCSNDRkdfRkxBU0hfQkFTRSwgJWQwCisJbW92ZS5sCSNDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICVkMAogCW1vdmVjCSVkMCwgJVZCUgogCi0JbW92ZS5sCSMoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfSU5JVF9SQU1fQ1RSTCksICVkMAorCW1vdmUubAkjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfSU5JVF9SQU1fQ1RSTCksICVkMAogCW1vdmVjCSVkMCwgJVJBTUJBUjEKIAogCS8qIGluaXRpYWxpemUgZ2VuZXJhbCB1c2UgaW50ZXJuYWwgcmFtICovCkBAIC0xNTYsNyArMTU2LDcgQEAKIAogCS8qIHNldCBzdGFja3BvaW50ZXIgdG8gZW5kIG9mIGludGVybmFsIHJhbSB0byBnZXQgc29tZSBzdGFja3NwYWNlIGZvcgogCSAgIHRoZSBmaXJzdCBjLWNvZGUgKi8KLQltb3ZlLmwJIyhDRkdfSU5JVF9SQU1fQUREUiArIENGR19JTklUX1NQX09GRlNFVCksICVzcAorCW1vdmUubAkjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQpLCAlc3AKIAljbHIubCAlc3BALQogCiAJbW92ZS5sICNfX2dvdF9zdGFydCwgJWE1CS8qIHB1dCByZWxvY2F0aW9uIHRhYmxlIGFkZHJlc3MgdG8gYTUgKi8KQEAgLTE4Nyw3ICsxODcsNyBAQAogCW1vdmUubCAxMiglYTYpLCAlZDAJCS8qIFNhdmUgY29weSBvZiBHbG9iYWwgRGF0YSBwb2ludGVyICovCiAJbW92ZS5sIDE2KCVhNiksICVhMAkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KIAotCW1vdmUubCAjQ0ZHX01PTklUT1JfQkFTRSwgJWExCisJbW92ZS5sICNDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgJWExCiAJbW92ZS5sICNfX2luaXRfZW5kLCAlYTIKIAltb3ZlLmwgJWEwLCAlYTMKIApAQCAtMjAyLDcgKzIwMiw3IEBACiAgKiBpbml0aWFsaXphdGlvbiwgbm93IHJ1bm5pbmcgZnJvbSBSQU0uCiAgKi8KIAltb3ZlLmwJJWEwLCAlYTEKLQlhZGQubAkjKGluX3JhbSAtIENGR19NT05JVE9SX0JBU0UpLCAlYTEKKwlhZGQubAkjKGluX3JhbSAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwgJWExCiAJam1wCSglYTEpCiAKIGluX3JhbToKQEAgLTIxMiw5ICsyMTIsOSBAQAogCSAqIE5vdyBjbGVhciBCU1Mgc2VnbWVudAogCSAqLwogCW1vdmUubAklYTAsICVhMQotCWFkZC5sCSMoX3Nic3MgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTEKKwlhZGQubAkjKF9zYnNzIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMQogCW1vdmUubAklYTAsICVkMQotCWFkZC5sCSMoX2Vic3MgLSBDRkdfTU9OSVRPUl9CQVNFKSwlZDEKKwlhZGQubAkjKF9lYnNzIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVkMQogNjoKIAljbHIubAkoJWExKSsKIAljbXAubAklYTEsJWQxCkBAIC0yMjQsMTEgKzIyNCwxMSBAQAogCSAqIGZpeCBnb3QgdGFibGUgaW4gUkFNCiAJICovCiAJbW92ZS5sCSVhMCwgJWExCi0JYWRkLmwJIyhfX2dvdF9zdGFydCAtIENGR19NT05JVE9SX0JBU0UpLCVhMQorCWFkZC5sCSMoX19nb3Rfc3RhcnQgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksJWExCiAJbW92ZS5sCSVhMSwlYTUJCQkvKiAqIGZpeCBnb3QgcG9pbnRlciByZWdpc3RlciBhNSAqLwogCiAJbW92ZS5sCSVhMCwgJWEyCi0JYWRkLmwJIyhfX2dvdF9lbmQgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTIKKwlhZGQubAkjKF9fZ290X2VuZCAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlYTIKIAogNzoKIAltb3ZlLmwJKCVhMSksJWQxCkBAIC0yNDAsNyArMjQwLDcgQEAKIAogCS8qIGNhbGN1bGF0ZSByZWxhdGl2ZSBqdW1wIHRvIGJvYXJkX2luaXRfciBpbiByYW0gKi8KIAltb3ZlLmwgJWEwLCAlYTEKLQlhZGQubCAjKGJvYXJkX2luaXRfciAtIENGR19NT05JVE9SX0JBU0UpLCAlYTEKKwlhZGQubCAjKGJvYXJkX2luaXRfciAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwgJWExCiAKIAkvKiBzZXQgcGFyYW1ldGVycyBmb3IgYm9hcmRfaW5pdF9yICovCiAJbW92ZS5sICVhMCwtKCVzcCkJCS8qIGRlc3RfYWRkciAqLwpAQCAtMjc2LDcgKzI3Niw3IEBACiAJbW92ZS5sCSMweDAxMjAwMDAwLCAlZDAJLyogSW52YWxpZCBjYWNoZSAqLwogCW1vdmVjCSVkMCwgJUNBQ1IKIAotCW1vdmUubAkjKENGR19TRFJBTV9CQVNFICsgMHgxYzAwMCksICVkMAorCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MWMwMDApLCAlZDAKIAltb3ZlYwklZDAsICVBQ1IwCiAKIAltb3ZlLmwJIzB4ODE2MDA2MTAsICVkMAkvKiBFbmFibGUgY2FjaGUgKi8KZGlmZiAtLWdpdCBhL2NwdS9tY2Y1MjN4L2NwdS5jIGIvY3B1L21jZjUyM3gvY3B1LmMKaW5kZXggYmRjMTUyZi4uMWNlOTBmZCAxMDA2NDQKLS0tIGEvY3B1L21jZjUyM3gvY3B1LmMKKysrIGIvY3B1L21jZjUyM3gvY3B1LmMKQEAgLTk4LDcgKzk4LDcgQEAKIAl1MzIgd2RvZ19tb2R1bGUgPSAwOwogCiAJLyogc2V0IHRpbWVvdXQgYW5kIGVuYWJsZSB3YXRjaGRvZyAqLwotCXdkb2dfbW9kdWxlID0gKChDRkdfQ0xLIC8gQ0ZHX0haKSAqIENPTkZJR19XQVRDSERPR19USU1FT1VUKTsKKwl3ZG9nX21vZHVsZSA9ICgoQ09ORklHX1NZU19DTEsgLyBDT05GSUdfU1lTX0haKSAqIENPTkZJR19XQVRDSERPR19USU1FT1VUKTsKIAl3ZG9nX21vZHVsZSB8PSAod2RvZ19tb2R1bGUgLyA4MTkyKTsKIAl3ZHAtPm1yID0gd2RvZ19tb2R1bGU7CiAKZGlmZiAtLWdpdCBhL2NwdS9tY2Y1MjN4L2NwdV9pbml0LmMgYi9jcHUvbWNmNTIzeC9jcHVfaW5pdC5jCmluZGV4IDhhYjViOGUuLjY1MjA5NDQgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1MjN4L2NwdV9pbml0LmMKKysrIGIvY3B1L21jZjUyM3gvY3B1X2luaXQuYwpAQCAtNDksNjkgKzQ5LDY5IEBACiAJd2RvZy0+Y3IgPSAwOwogI2VuZGlmCiAKLQlzY20tPnJhbWJhciA9IChDRkdfSU5JVF9SQU1fQUREUiB8IFNDTV9SQU1CQVJfQkRFKTsKKwlzY20tPnJhbWJhciA9IChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBTQ01fUkFNQkFSX0JERSk7CiAKIAkvKiBQb3J0IGNvbmZpZ3VyYXRpb24gKi8KIAlncGlvLT5wYXJfY3MgPSAwOwogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTMF9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzBfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1MwX0NUUkwpKQotCWZiY3MtPmNzYXIwID0gQ0ZHX0NTMF9CQVNFOwotCWZiY3MtPmNzY3IwID0gQ0ZHX0NTMF9DVFJMOwotCWZiY3MtPmNzbXIwID0gQ0ZHX0NTMF9NQVNLOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1MwX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzBfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMF9DVFJMKSkKKwlmYmNzLT5jc2FyMCA9IENPTkZJR19TWVNfQ1MwX0JBU0U7CisJZmJjcy0+Y3NjcjAgPSBDT05GSUdfU1lTX0NTMF9DVFJMOworCWZiY3MtPmNzbXIwID0gQ09ORklHX1NZU19DUzBfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTMV9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzFfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1MxX0NUUkwpKQorI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1MxX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzFfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMV9DVFJMKSkKIAlncGlvLT5wYXJfY3MgfD0gR1BJT19QQVJfQ1NfQ1MxOwotCWZiY3MtPmNzYXIxID0gQ0ZHX0NTMV9CQVNFOwotCWZiY3MtPmNzY3IxID0gQ0ZHX0NTMV9DVFJMOwotCWZiY3MtPmNzbXIxID0gQ0ZHX0NTMV9NQVNLOworCWZiY3MtPmNzYXIxID0gQ09ORklHX1NZU19DUzFfQkFTRTsKKwlmYmNzLT5jc2NyMSA9IENPTkZJR19TWVNfQ1MxX0NUUkw7CisJZmJjcy0+Y3NtcjEgPSBDT05GSUdfU1lTX0NTMV9NQVNLOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQ1MyX0JBU0UpICYmIGRlZmluZWQoQ0ZHX0NTMl9NQVNLKSAmJiBkZWZpbmVkKENGR19DUzJfQ1RSTCkpCisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19DUzJfQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMl9NQVNLKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MyX0NUUkwpKQogCWdwaW8tPnBhcl9jcyB8PSBHUElPX1BBUl9DU19DUzI7Ci0JZmJjcy0+Y3NhcjIgPSBDRkdfQ1MyX0JBU0U7Ci0JZmJjcy0+Y3NjcjIgPSBDRkdfQ1MyX0NUUkw7Ci0JZmJjcy0+Y3NtcjIgPSBDRkdfQ1MyX01BU0s7CisJZmJjcy0+Y3NhcjIgPSBDT05GSUdfU1lTX0NTMl9CQVNFOworCWZiY3MtPmNzY3IyID0gQ09ORklHX1NZU19DUzJfQ1RSTDsKKwlmYmNzLT5jc21yMiA9IENPTkZJR19TWVNfQ1MyX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzNfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MzX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTM19DVFJMKSkKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTM19CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MzX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzNfQ1RSTCkpCiAJZ3Bpby0+cGFyX2NzIHw9IEdQSU9fUEFSX0NTX0NTMzsKLQlmYmNzLT5jc2FyMyA9IENGR19DUzNfQkFTRTsKLQlmYmNzLT5jc2NyMyA9IENGR19DUzNfQ1RSTDsKLQlmYmNzLT5jc21yMyA9IENGR19DUzNfTUFTSzsKKwlmYmNzLT5jc2FyMyA9IENPTkZJR19TWVNfQ1MzX0JBU0U7CisJZmJjcy0+Y3NjcjMgPSBDT05GSUdfU1lTX0NTM19DVFJMOworCWZiY3MtPmNzbXIzID0gQ09ORklHX1NZU19DUzNfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTNF9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzRfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1M0X0NUUkwpKQorI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1M0X0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzRfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTNF9DVFJMKSkKIAlncGlvLT5wYXJfY3MgfD0gR1BJT19QQVJfQ1NfQ1M0OwotCWZiY3MtPmNzYXI0ID0gQ0ZHX0NTNF9CQVNFOwotCWZiY3MtPmNzY3I0ID0gQ0ZHX0NTNF9DVFJMOwotCWZiY3MtPmNzbXI0ID0gQ0ZHX0NTNF9NQVNLOworCWZiY3MtPmNzYXI0ID0gQ09ORklHX1NZU19DUzRfQkFTRTsKKwlmYmNzLT5jc2NyNCA9IENPTkZJR19TWVNfQ1M0X0NUUkw7CisJZmJjcy0+Y3NtcjQgPSBDT05GSUdfU1lTX0NTNF9NQVNLOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQ1M1X0JBU0UpICYmIGRlZmluZWQoQ0ZHX0NTNV9NQVNLKSAmJiBkZWZpbmVkKENGR19DUzVfQ1RSTCkpCisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19DUzVfQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTNV9NQVNLKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1M1X0NUUkwpKQogCWdwaW8tPnBhcl9jcyB8PSBHUElPX1BBUl9DU19DUzU7Ci0JZmJjcy0+Y3NhcjUgPSBDRkdfQ1M1X0JBU0U7Ci0JZmJjcy0+Y3NjcjUgPSBDRkdfQ1M1X0NUUkw7Ci0JZmJjcy0+Y3NtcjUgPSBDRkdfQ1M1X01BU0s7CisJZmJjcy0+Y3NhcjUgPSBDT05GSUdfU1lTX0NTNV9CQVNFOworCWZiY3MtPmNzY3I1ID0gQ09ORklHX1NZU19DUzVfQ1RSTDsKKwlmYmNzLT5jc21yNSA9IENPTkZJR19TWVNfQ1M1X01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzZfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1M2X01BU0spICYmIGRlZmluZWQoQ0ZHX0NTNl9DVFJMKSkKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTNl9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1M2X01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzZfQ1RSTCkpCiAJZ3Bpby0+cGFyX2NzIHw9IEdQSU9fUEFSX0NTX0NTNjsKLQlmYmNzLT5jc2FyNiA9IENGR19DUzZfQkFTRTsKLQlmYmNzLT5jc2NyNiA9IENGR19DUzZfQ1RSTDsKLQlmYmNzLT5jc21yNiA9IENGR19DUzZfTUFTSzsKKwlmYmNzLT5jc2FyNiA9IENPTkZJR19TWVNfQ1M2X0JBU0U7CisJZmJjcy0+Y3NjcjYgPSBDT05GSUdfU1lTX0NTNl9DVFJMOworCWZiY3MtPmNzbXI2ID0gQ09ORklHX1NZU19DUzZfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTN19CQVNFKSAmJiBkZWZpbmVkKENGR19DUzdfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1M3X0NUUkwpKQorI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1M3X0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzdfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTN19DVFJMKSkKIAlncGlvLT5wYXJfY3MgfD0gR1BJT19QQVJfQ1NfQ1M3OwotCWZiY3MtPmNzYXI3ID0gQ0ZHX0NTN19CQVNFOwotCWZiY3MtPmNzY3I3ID0gQ0ZHX0NTN19DVFJMOwotCWZiY3MtPmNzbXI3ID0gQ0ZHX0NTN19NQVNLOworCWZiY3MtPmNzYXI3ID0gQ09ORklHX1NZU19DUzdfQkFTRTsKKwlmYmNzLT5jc2NyNyA9IENPTkZJR19TWVNfQ1M3X0NUUkw7CisJZmJjcy0+Y3NtcjcgPSBDT05GSUdfU1lTX0NTN19NQVNLOwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfRlNMX0kyQwotCUNGR19JMkNfUElOTVVYX1JFRyAmPSBDRkdfSTJDX1BJTk1VWF9DTFI7Ci0JQ0ZHX0kyQ19QSU5NVVhfUkVHIHw9IENGR19JMkNfUElOTVVYX1NFVDsKKwlDT05GSUdfU1lTX0kyQ19QSU5NVVhfUkVHICY9IENPTkZJR19TWVNfSTJDX1BJTk1VWF9DTFI7CisJQ09ORklHX1NZU19JMkNfUElOTVVYX1JFRyB8PSBDT05GSUdfU1lTX0kyQ19QSU5NVVhfU0VUOwogI2VuZGlmCiAKIAlpY2FjaGVfZW5hYmxlKCk7CkBAIC0xMzAsNyArMTMwLDcgQEAKIAl2b2xhdGlsZSBncGlvX3QgKmdwaW8gPSAoZ3Bpb190ICopIE1NQVBfR1BJTzsKIAogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWdwaW8tPnBhcl91YXJ0ID0gKEdQSU9fUEFSX1VBUlRfVTBSWEQgfCBHUElPX1BBUl9VQVJUX1UwVFhEKTsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9jcHUvbWNmNTIzeC9pbnRlcnJ1cHRzLmMgYi9jcHUvbWNmNTIzeC9pbnRlcnJ1cHRzLmMKaW5kZXggMTI1YzUzYi4uZGI1Y2NkZiAxMDA2NDQKLS0tIGEvY3B1L21jZjUyM3gvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9tY2Y1MjN4L2ludGVycnVwdHMuYwpAQCAtMjgsNyArMjgsNyBAQAogCiBpbnQgaW50ZXJydXB0X2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbnQwX3QgKmludHAgPSAoaW50MF90ICopIChDRkdfSU5UUl9CQVNFKTsKKwl2b2xhdGlsZSBpbnQwX3QgKmludHAgPSAoaW50MF90ICopIChDT05GSUdfU1lTX0lOVFJfQkFTRSk7CiAKIAkvKiBNYWtlIHN1cmUgYWxsIGludGVycnVwdHMgYXJlIGRpc2FibGVkICovCiAJaW50cC0+aW1ybDAgfD0gMHgxOwpAQCAtNDAsMTAgKzQwLDEwIEBACiAjaWYgZGVmaW5lZChDT05GSUdfTUNGVE1SKQogdm9pZCBkdGltZXJfaW50cl9zZXR1cCh2b2lkKQogewotCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENGR19JTlRSX0JBU0UpOworCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENPTkZJR19TWVNfSU5UUl9CQVNFKTsKIAotCWludHAtPmljcjBbQ0ZHX1RNUklOVFJfTk9dID0gQ0ZHX1RNUklOVFJfUFJJOworCWludHAtPmljcjBbQ09ORklHX1NZU19UTVJJTlRSX05PXSA9IENPTkZJR19TWVNfVE1SSU5UUl9QUkk7CiAJaW50cC0+aW1ybDAgJj0gfklOVENfSVBSTF9JTlQwOwotCWludHAtPmltcmwwICY9IH5DRkdfVE1SSU5UUl9NQVNLOworCWludHAtPmltcmwwICY9IH5DT05GSUdfU1lTX1RNUklOVFJfTUFTSzsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvY3B1L21jZjUyM3gvc3BlZWQuYyBiL2NwdS9tY2Y1MjN4L3NwZWVkLmMKaW5kZXggMWJkYTJkNC4uNjA5NmJhNCAxMDA2NDQKLS0tIGEvY3B1L21jZjUyM3gvc3BlZWQuYworKysgYi9jcHUvbWNmNTIzeC9zcGVlZC5jCkBAIC00Miw3ICs0Miw3IEBACiAKIAl3aGlsZSAoIShwbGwtPnN5bnNyICYgUExMX1NZTlNSX0xPQ0spKTsKIAotCWdkLT5idXNfY2xrID0gQ0ZHX0NMSzsKKwlnZC0+YnVzX2NsayA9IENPTkZJR19TWVNfQ0xLOwogCWdkLT5jcHVfY2xrID0gKGdkLT5idXNfY2xrICogMik7CiAKICNpZmRlZiBDT05GSUdfRlNMX0kyQwpkaWZmIC0tZ2l0IGEvY3B1L21jZjUyM3gvc3RhcnQuUyBiL2NwdS9tY2Y1MjN4L3N0YXJ0LlMKaW5kZXggMmI2MzhkZi4uYjcwYjgzYiAxMDA2NDQKLS0tIGEvY3B1L21jZjUyM3gvc3RhcnQuUworKysgYi9jcHUvbWNmNTIzeC9zdGFydC5TCkBAIC0xMjcsMTAgKzEyNywxMCBAQAogCW1vdmUudyAjMHgyNzAwLCVzcgkvKiBNYXNrIG9mZiBJbnRlcnJ1cHQgKi8KIAogCS8qIFNldCB2ZWN0b3IgYmFzZSByZWdpc3RlciBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBGbGFzaCAqLwotCW1vdmUubAkjQ0ZHX0ZMQVNIX0JBU0UsICVkMAorCW1vdmUubAkjQ09ORklHX1NZU19GTEFTSF9CQVNFLCAlZDAKIAltb3ZlYwklZDAsICVWQlIKIAotCW1vdmUubAkjKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0lOSVRfUkFNX0NUUkwpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0lOSVRfUkFNX0NUUkwpLCAlZDAKIAltb3ZlYwklZDAsICVSQU1CQVIxCiAKIAkvKiBpbnZhbGlkYXRlIGFuZCBkaXNhYmxlIGNhY2hlICovCkBAIC0xNDMsMTQgKzE0MywxNCBAQAogCiAJLyogaW5pdGlhbGl6ZSBnZW5lcmFsIHVzZSBpbnRlcm5hbCByYW0gKi8KIAltb3ZlLmwgIzAsICVkMAotCW1vdmUubCAjKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtOCksICVhMQotCW1vdmUubCAjKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtNCksICVhMgorCW1vdmUubCAjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC04KSwgJWExCisJbW92ZS5sICMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTQpLCAlYTIKIAltb3ZlLmwgJWQwLCAoJWExKQogCW1vdmUubCAlZDAsICglYTIpCiAKIAkvKiBzZXQgc3RhY2twb2ludGVyIHRvIGVuZCBvZiBpbnRlcm5hbCByYW0gdG8gZ2V0IHNvbWUgc3RhY2tzcGFjZSBmb3IgdGhlCiAJICAgZmlyc3QgYy1jb2RlICovCi0JbW92ZS5sCSMoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfSU5JVF9TUF9PRkZTRVQpLCAlc3AKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUKSwgJXNwCiAJY2xyLmwgJXNwQC0KIAogCW1vdmUubCAjX19nb3Rfc3RhcnQsICVhNQkvKiBwdXQgcmVsb2NhdGlvbiB0YWJsZSBhZGRyZXNzIHRvIGE1ICovCkBAIC0xODEsNyArMTgxLDcgQEAKIAltb3ZlLmwgMTIoJWE2KSwgJWQwCQkvKiBTYXZlIGNvcHkgb2YgR2xvYmFsIERhdGEgcG9pbnRlciAqLwogCW1vdmUubCAxNiglYTYpLCAlYTAJCS8qIFNhdmUgY29weSBvZiBEZXN0aW5hdGlvbiBBZGRyZXNzICovCiAKLQltb3ZlLmwgI0NGR19NT05JVE9SX0JBU0UsICVhMQorCW1vdmUubCAjQ09ORklHX1NZU19NT05JVE9SX0JBU0UsICVhMQogCW1vdmUubCAjX19pbml0X2VuZCwgJWEyCiAJbW92ZS5sICVhMCwgJWEzCiAKQEAgLTE5Niw3ICsxOTYsNyBAQAogICogaW5pdGlhbGl6YXRpb24sIG5vdyBydW5uaW5nIGZyb20gUkFNLgogICovCiAJbW92ZS5sCSVhMCwgJWExCi0JYWRkLmwJIyhpbl9yYW0gLSBDRkdfTU9OSVRPUl9CQVNFKSwgJWExCisJYWRkLmwJIyhpbl9yYW0gLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksICVhMQogCWptcAkoJWExKQogCiBpbl9yYW06CkBAIC0yMDYsOSArMjA2LDkgQEAKIAkgKiBOb3cgY2xlYXIgQlNTIHNlZ21lbnQKIAkgKi8KIAltb3ZlLmwJJWEwLCAlYTEKLQlhZGQubAkjKF9zYnNzIC0gQ0ZHX01PTklUT1JfQkFTRSksJWExCisJYWRkLmwJIyhfc2JzcyAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlYTEKIAltb3ZlLmwJJWEwLCAlZDEKLQlhZGQubAkjKF9lYnNzIC0gQ0ZHX01PTklUT1JfQkFTRSksJWQxCisJYWRkLmwJIyhfZWJzcyAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlZDEKIDY6CiAJY2xyLmwJKCVhMSkrCiAJY21wLmwJJWExLCVkMQpAQCAtMjE4LDExICsyMTgsMTEgQEAKIAkgKiBmaXggZ290IHRhYmxlIGluIFJBTQogCSAqLwogCW1vdmUubAklYTAsICVhMQotCWFkZC5sCSMoX19nb3Rfc3RhcnQgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTEKKwlhZGQubAkjKF9fZ290X3N0YXJ0IC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMQogCW1vdmUubAklYTEsJWE1CQkvKiAqIGZpeCBnb3QgcG9pbnRlciByZWdpc3RlciBhNSAqLwogCiAJbW92ZS5sCSVhMCwgJWEyCi0JYWRkLmwJIyhfX2dvdF9lbmQgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTIKKwlhZGQubAkjKF9fZ290X2VuZCAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlYTIKIAogNzoKIAltb3ZlLmwJKCVhMSksJWQxCkBAIC0yMzQsNyArMjM0LDcgQEAKIAogCS8qIGNhbGN1bGF0ZSByZWxhdGl2ZSBqdW1wIHRvIGJvYXJkX2luaXRfciBpbiByYW0gKi8KIAltb3ZlLmwgJWEwLCAlYTEKLQlhZGQubCAjKGJvYXJkX2luaXRfciAtIENGR19NT05JVE9SX0JBU0UpLCAlYTEKKwlhZGQubCAjKGJvYXJkX2luaXRfciAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwgJWExCiAKIAkvKiBzZXQgcGFyYW1ldGVycyBmb3IgYm9hcmRfaW5pdF9yICovCiAJbW92ZS5sICVhMCwtKCVzcCkJCS8qIGRlc3RfYWRkciAqLwpAQCAtMjcwLDE2ICsyNzAsMTYgQEAKIAltb3ZlLmwJIzB4MDEwMDAwMDAsICVkMAkJLyogSW52YWxpZGF0ZSBjYWNoZSBjbWQgKi8KIAltb3ZlYwklZDAsICVDQUNSCQkJLyogSW52YWxpZGF0ZSBjYWNoZSAqLwogCW5vcAotCW1vdmUubAkjKENGR19TRFJBTV9CQVNFICsgMHhjMDAwKSwgJWQwCS8qIFNldHVwIGNhY2hlIG1hc2sgKi8KKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweGMwMDApLCAlZDAJLyogU2V0dXAgY2FjaGUgbWFzayAqLwogCW1vdmVjCSVkMCwgJUFDUjAJCQkvKiBFbmFibGUgY2FjaGUgKi8KLQltb3ZlLmwJIyhDRkdfRkxBU0hfQkFTRSArIDB4YzAwMCksICVkMAkvKiBTZXR1cCBjYWNoZSBtYXNrICovCisJbW92ZS5sCSMoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHhjMDAwKSwgJWQwCS8qIFNldHVwIGNhY2hlIG1hc2sgKi8KIAltb3ZlYwklZDAsICVBQ1IxCQkJLyogRW5hYmxlIGNhY2hlICovCiAKIAltb3ZlLmwJIzB4ODA0MDAxMDAsICVkMAkJLyogU2V0dXAgY2FjaGUgbWFzayAqLwogCW1vdmVjCSVkMCwgJUNBQ1IJCQkvKiBFbmFibGUgY2FjaGUgKi8KIAlub3AKIAotCW1vdmUubCAjKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtOCksICVhMQorCW1vdmUubCAjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC04KSwgJWExCiAJbW92ZXEJIzEsICVkMAogCW1vdmUubAklZDAsICglYTEpCiAJcnRzCkBAIC0yOTIsMTQgKzI5MiwxNCBAQAogCW1vdmVjCSVkMCwgJUFDUjAKIAltb3ZlYwklZDAsICVBQ1IxCiAKLQltb3ZlLmwgIyhDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELTgpLCAlYTEKKwltb3ZlLmwgIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtOCksICVhMQogCW1vdmVxCSMwLCAlZDAKIAltb3ZlLmwJJWQwLCAoJWExKQogCXJ0cwogCiAJLmdsb2JsCWljYWNoZV9zdGF0dXMKIGljYWNoZV9zdGF0dXM6Ci0JbW92ZS5sICMoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC04KSwgJWExCisJbW92ZS5sICMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTgpLCAlYTEKIAltb3ZlLmwJKCVhMSksICVkMAogCXJ0cwogCkBAIC0zMTIsNyArMzEyLDcgQEAKIAogCS5nbG9ibAlkY2FjaGVfZW5hYmxlCiBkY2FjaGVfZW5hYmxlOgotCW1vdmUubCAjKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtNCksICVhMQorCW1vdmUubCAjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC00KSwgJWExCiAJbW92ZXEJIzEsICVkMAogCW1vdmUubAklZDAsICglYTEpCiAJcnRzCkBAIC0zMjAsMTQgKzMyMCwxNCBAQAogICAgIC8qIE5vIGRjYWNoZSwganVzdCBhIGR1bW15IGZ1bmN0aW9uICovCiAJLmdsb2JsCWRjYWNoZV9kaXNhYmxlCiBkY2FjaGVfZGlzYWJsZToKLQltb3ZlLmwgIyhDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELTQpLCAlYTEKKwltb3ZlLmwgIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtNCksICVhMQogCW1vdmVxCSMwLCAlZDAKIAltb3ZlLmwJJWQwLCAoJWExKQogCXJ0cwogCiAJLmdsb2JsCWRjYWNoZV9zdGF0dXMKIGRjYWNoZV9zdGF0dXM6Ci0JbW92ZS5sICMoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC00KSwgJWExCisJbW92ZS5sICMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTQpLCAlYTEKIAltb3ZlLmwJKCVhMSksICVkMAogCXJ0cwogCmRpZmYgLS1naXQgYS9jcHUvbWNmNTJ4Mi9jcHUuYyBiL2NwdS9tY2Y1MngyL2NwdS5jCmluZGV4IGMyNTY3MGQuLjMyZDZjNDAgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1MngyL2NwdS5jCisrKyBiL2NwdS9tY2Y1MngyL2NwdS5jCkBAIC02NiwxMSArNjYsMTEgQEAKIAogCWlmIChjcHVfbW9kZWwpCiAJCXByaW50ZigiQ1BVOiAgIEZyZWVzY2FsZSBDb2xkRmlyZSBNQ0YlcyByZXYuICVodSwgYXQgJXMgTUh6XG4iLAotCQkgICAgICAgY3B1X21vZGVsLCBwcm4sIHN0cm1oeihidWYsIENGR19DTEspKTsKKwkJICAgICAgIGNwdV9tb2RlbCwgcHJuLCBzdHJtaHooYnVmLCBDT05GSUdfU1lTX0NMSykpOwogCWVsc2UKIAkJcHJpbnRmKCJDUFU6ICAgVW5rbm93biAtIEZyZWVzY2FsZSBDb2xkRmlyZSBNQ0Y1MjcxIGZhbWlseSIKIAkJICAgICAgICIgKFBJTjogMHgleCkgcmV2LiAlaHUsIGF0ICVzIE1IelxuIiwKLQkJICAgICAgIHBpbiwgcHJuLCBzdHJtaHooYnVmLCBDRkdfQ0xLKSk7CisJCSAgICAgICBwaW4sIHBybiwgc3RybWh6KGJ1ZiwgQ09ORklHX1NZU19DTEspKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTc0LDcgKzE3NCw3IEBACiAKIAkvKiBzZXQgdGltZW91dCBhbmQgZW5hYmxlIHdhdGNoZG9nICovCiAJd2R0LT53ZG9nX3dycnIgPQotCSAgICAoKENPTkZJR19XQVRDSERPR19USU1FT1VUICogQ0ZHX0haKSAvICgzMjc2OCAqIDEwMDApKSAtIDE7CisJICAgICgoQ09ORklHX1dBVENIRE9HX1RJTUVPVVQgKiBDT05GSUdfU1lTX0haKSAvICgzMjc2OCAqIDEwMDApKSAtIDE7CiAJd2R0LT53ZG9nX3djciA9IDA7CS8qIHJlc2V0IHdhdGNoZG9nIGNvdW50ZXIgKi8KIAogCXB1dHMoIldBVENIRE9HOmVuYWJsZWRcbiIpOwpAQCAtMjAyLDcgKzIwMiw3IEBACiAJY2hhciBidWZbMzJdOwogCiAJcHJpbnRmKCJDUFU6ICAgRnJlZXNjYWxlIENvbGRmaXJlIE1DRjUyNzUgYXQgJXMgTUh6XG4iLAotCQkJc3RybWh6KGJ1ZiwgQ0ZHX0NMSykpOworCQkJc3RybWh6KGJ1ZiwgQ09ORklHX1NZU19DTEspKTsKIAlyZXR1cm4gMDsKIH07CiAKQEAgLTIzNiw3ICsyMzYsNyBAQAogCiAJLyogc2V0IHRpbWVvdXQgYW5kIGVuYWJsZSB3YXRjaGRvZyAqLwogCXdkdC0+d21yID0KLQkJKChDT05GSUdfV0FUQ0hET0dfVElNRU9VVCAqIENGR19IWikgLyAoMzI3NjggKiAxMDAwKSkgLSAxOworCQkoKENPTkZJR19XQVRDSERPR19USU1FT1VUICogQ09ORklHX1NZU19IWikgLyAoMzI3NjggKiAxMDAwKSkgLSAxOwogCXdkdC0+d3NyID0gMHg1NTU1OyAvKiByZXNldCB3YXRjaGRvZyBjb3VudGVyICovCiAJd2R0LT53c3IgPSAweEFBQUE7CiAKQEAgLTI3OCw3ICsyNzgsNyBAQAogCWNoYXIgYnVmWzMyXTsKIAogCXByaW50ZigiQ1BVOiAgIEZyZWVzY2FsZSBDb2xkZmlyZSBNQ0Y1MjQ5IGF0ICVzIE1IelxuIiwKLQkgICAgICAgc3RybWh6KGJ1ZiwgQ0ZHX0NMSykpOworCSAgICAgICBzdHJtaHooYnVmLCBDT05GSUdfU1lTX0NMSykpOwogCXJldHVybiAwOwogfQogCkBAIC0zMDAsNyArMzAwLDcgQEAKIAogCXVuc2lnbmVkIGNoYXIgcmVzZXRzb3VyY2UgPSBtYmFyX3JlYWRMb25nKFNJTV9SU1IpOwogCXByaW50ZigiQ1BVOiAgIEZyZWVzY2FsZSBDb2xkZmlyZSBNQ0Y1MjUzIGF0ICVzIE1IelxuIiwKLQkgICAgICAgc3RybWh6KGJ1ZiwgQ0ZHX0NMSykpOworCSAgICAgICBzdHJtaHooYnVmLCBDT05GSUdfU1lTX0NMSykpOwogCiAJaWYgKChyZXNldHNvdXJjZSAmIFNJTV9SU1JfSFJTVCkgfHwgKHJlc2V0c291cmNlICYgU0lNX1JTUl9TV1RSKSkgewogCQlwcmludGYoIlJlc2V0OiVzJXNcbiIsCmRpZmYgLS1naXQgYS9jcHUvbWNmNTJ4Mi9jcHVfaW5pdC5jIGIvY3B1L21jZjUyeDIvY3B1X2luaXQuYwppbmRleCA2OGFlZmU5Li43YmIzNThlIDEwMDY0NAotLS0gYS9jcHUvbWNmNTJ4Mi9jcHVfaW5pdC5jCisrKyBiL2NwdS9tY2Y1MngyL2NwdV9pbml0LmMKQEAgLTcyLDIwICs3MiwyMCBAQAogCSAqICBTZXR1cCBjaGlwIHNlbGVjdHMuLi4KIAkgKi8KIAotCW1iYXJfd3JpdGVTaG9ydChNQ0ZTSU1fQ1NBUjEsIENGR19DU0FSMSk7Ci0JbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0NSMSwgQ0ZHX0NTQ1IxKTsKLQltYmFyX3dyaXRlTG9uZyhNQ0ZTSU1fQ1NNUjEsIENGR19DU01SMSk7CisJbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0FSMSwgQ09ORklHX1NZU19DU0FSMSk7CisJbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0NSMSwgQ09ORklHX1NZU19DU0NSMSk7CisJbWJhcl93cml0ZUxvbmcoTUNGU0lNX0NTTVIxLCBDT05GSUdfU1lTX0NTTVIxKTsKIAotCW1iYXJfd3JpdGVTaG9ydChNQ0ZTSU1fQ1NBUjAsIENGR19DU0FSMCk7Ci0JbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0NSMCwgQ0ZHX0NTQ1IwKTsKLQltYmFyX3dyaXRlTG9uZyhNQ0ZTSU1fQ1NNUjAsIENGR19DU01SMCk7CisJbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0FSMCwgQ09ORklHX1NZU19DU0FSMCk7CisJbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0NSMCwgQ09ORklHX1NZU19DU0NSMCk7CisJbWJhcl93cml0ZUxvbmcoTUNGU0lNX0NTTVIwLCBDT05GSUdfU1lTX0NTTVIwKTsKIAogI2lmZGVmIENPTkZJR19GU0xfSTJDCi0JQ0ZHX0kyQ19QSU5NVVhfUkVHID0gQ0ZHX0kyQ19QSU5NVVhfUkVHICYgQ0ZHX0kyQ19QSU5NVVhfQ0xSOwotCUNGR19JMkNfUElOTVVYX1JFRyB8PSBDRkdfSTJDX1BJTk1VWF9TRVQ7Ci0jaWZkZWYgQ0ZHX0kyQzJfT0ZGU0VUCi0JQ0ZHX0kyQzJfUElOTVVYX1JFRyAmPSBDRkdfSTJDMl9QSU5NVVhfQ0xSOwotCUNGR19JMkMyX1BJTk1VWF9SRUcgfD0gQ0ZHX0kyQzJfUElOTVVYX1NFVDsKKwlDT05GSUdfU1lTX0kyQ19QSU5NVVhfUkVHID0gQ09ORklHX1NZU19JMkNfUElOTVVYX1JFRyAmIENPTkZJR19TWVNfSTJDX1BJTk1VWF9DTFI7CisJQ09ORklHX1NZU19JMkNfUElOTVVYX1JFRyB8PSBDT05GSUdfU1lTX0kyQ19QSU5NVVhfU0VUOworI2lmZGVmIENPTkZJR19TWVNfSTJDMl9PRkZTRVQKKwlDT05GSUdfU1lTX0kyQzJfUElOTVVYX1JFRyAmPSBDT05GSUdfU1lTX0kyQzJfUElOTVVYX0NMUjsKKwlDT05GSUdfU1lTX0kyQzJfUElOTVVYX1JFRyB8PSBDT05GSUdfU1lTX0kyQzJfUElOTVVYX1NFVDsKICNlbmRpZgogI2VuZGlmCiAKQEAgLTEwMiw3ICsxMDIsNyBAQAogdm9pZCB1YXJ0X3BvcnRfY29uZih2b2lkKQogewogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWJyZWFrOwogCWNhc2UgMToKQEAgLTEzOCw3ICsxMzgsNyBAQAogdm9pZCB1YXJ0X3BvcnRfY29uZih2b2lkKQogewogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCW1iYXJfd3JpdGVTaG9ydChNQ0ZfR1BJT19QQVJfVUFSVCwgTUNGX0dQSU9fUEFSX1VBUlRfVTBUWEQgfAogCQkJCU1DRl9HUElPX1BBUl9VQVJUX1UwUlhEKTsKQEAgLTE2OSw1OSArMTY5LDU5IEBACiAJICogYWxyZWFkeSBpbml0aWFsaXplZC4KIAkgKi8KICNpZm5kZWYgQ09ORklHX01PTklUT1JfSVNfSU5fUkFNCi0Jdm9sYXRpbGUgc3lzY3RybF90ICpzeXNjdHJsID0gKHN5c2N0cmxfdCAqKSAoQ0ZHX01CQVIpOworCXZvbGF0aWxlIHN5c2N0cmxfdCAqc3lzY3RybCA9IChzeXNjdHJsX3QgKikgKENPTkZJR19TWVNfTUJBUik7CiAJdm9sYXRpbGUgZ3Bpb190ICpncGlvID0gKGdwaW9fdCAqKSAoTU1BUF9HUElPKTsKIAl2b2xhdGlsZSBjc2N0cmxfdCAqY3NjdHJsID0gKGNzY3RybF90ICopIChNTUFQX0ZCQ1MpOwogCi0Jc3lzY3RybC0+c2Nfc2NyID0gQ0ZHX1NDUjsKLQlzeXNjdHJsLT5zY19zcHIgPSBDRkdfU1BSOworCXN5c2N0cmwtPnNjX3NjciA9IENPTkZJR19TWVNfU0NSOworCXN5c2N0cmwtPnNjX3NwciA9IENPTkZJR19TWVNfU1BSOwogCiAJLyogU2V0dXAgUG9ydHM6ICovCi0JZ3Bpby0+Z3Bpb19wYWNudCA9IENGR19QQUNOVDsKLQlncGlvLT5ncGlvX3BhZGRyID0gQ0ZHX1BBRERSOwotCWdwaW8tPmdwaW9fcGFkYXQgPSBDRkdfUEFEQVQ7Ci0JZ3Bpby0+Z3Bpb19wYmNudCA9IENGR19QQkNOVDsKLQlncGlvLT5ncGlvX3BiZGRyID0gQ0ZHX1BCRERSOwotCWdwaW8tPmdwaW9fcGJkYXQgPSBDRkdfUEJEQVQ7Ci0JZ3Bpby0+Z3Bpb19wZGNudCA9IENGR19QRENOVDsKKwlncGlvLT5ncGlvX3BhY250ID0gQ09ORklHX1NZU19QQUNOVDsKKwlncGlvLT5ncGlvX3BhZGRyID0gQ09ORklHX1NZU19QQUREUjsKKwlncGlvLT5ncGlvX3BhZGF0ID0gQ09ORklHX1NZU19QQURBVDsKKwlncGlvLT5ncGlvX3BiY250ID0gQ09ORklHX1NZU19QQkNOVDsKKwlncGlvLT5ncGlvX3BiZGRyID0gQ09ORklHX1NZU19QQkREUjsKKwlncGlvLT5ncGlvX3BiZGF0ID0gQ09ORklHX1NZU19QQkRBVDsKKwlncGlvLT5ncGlvX3BkY250ID0gQ09ORklHX1NZU19QRENOVDsKIAogCS8qIE1lbW9yeSBDb250cm9sbGVyOiAqLwotCWNzY3RybC0+Y3NfYnIwID0gQ0ZHX0JSMF9QUkVMSU07Ci0JY3NjdHJsLT5jc19vcjAgPSBDRkdfT1IwX1BSRUxJTTsKKwljc2N0cmwtPmNzX2JyMCA9IENPTkZJR19TWVNfQlIwX1BSRUxJTTsKKwljc2N0cmwtPmNzX29yMCA9IENPTkZJR19TWVNfT1IwX1BSRUxJTTsKIAotI2lmIChkZWZpbmVkKENGR19PUjFfUFJFTElNKSAmJiBkZWZpbmVkKENGR19CUjFfUFJFTElNKSkKLQljc2N0cmwtPmNzX2JyMSA9IENGR19CUjFfUFJFTElNOwotCWNzY3RybC0+Y3Nfb3IxID0gQ0ZHX09SMV9QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19PUjFfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlIxX1BSRUxJTSkpCisJY3NjdHJsLT5jc19icjEgPSBDT05GSUdfU1lTX0JSMV9QUkVMSU07CisJY3NjdHJsLT5jc19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SMl9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX0JSMl9QUkVMSU0pCi0JY3NjdHJsLT5jc19icjIgPSBDRkdfQlIyX1BSRUxJTTsKLQljc2N0cmwtPmNzX29yMiA9IENGR19PUjJfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjJfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlIyX1BSRUxJTSkKKwljc2N0cmwtPmNzX2JyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKKwljc2N0cmwtPmNzX29yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfT1IzX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlIzX1BSRUxJTSkKLQljc2N0cmwtPmNzX2JyMyA9IENGR19CUjNfUFJFTElNOwotCWNzY3RybC0+Y3Nfb3IzID0gQ0ZHX09SM19QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX09SM19QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjNfUFJFTElNKQorCWNzY3RybC0+Y3NfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOworCWNzY3RybC0+Y3Nfb3IzID0gQ09ORklHX1NZU19PUjNfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19PUjRfUFJFTElNKSAmJiBkZWZpbmVkKENGR19CUjRfUFJFTElNKQotCWNzY3RybC0+Y3NfYnI0ID0gQ0ZHX0JSNF9QUkVMSU07Ci0JY3NjdHJsLT5jc19vcjQgPSBDRkdfT1I0X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1I0X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSNF9QUkVMSU0pCisJY3NjdHJsLT5jc19icjQgPSBDT05GSUdfU1lTX0JSNF9QUkVMSU07CisJY3NjdHJsLT5jc19vcjQgPSBDT05GSUdfU1lTX09SNF9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SNV9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX0JSNV9QUkVMSU0pCi0JY3NjdHJsLT5jc19icjUgPSBDRkdfQlI1X1BSRUxJTTsKLQljc2N0cmwtPmNzX29yNSA9IENGR19PUjVfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjVfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlI1X1BSRUxJTSkKKwljc2N0cmwtPmNzX2JyNSA9IENPTkZJR19TWVNfQlI1X1BSRUxJTTsKKwljc2N0cmwtPmNzX29yNSA9IENPTkZJR19TWVNfT1I1X1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfT1I2X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlI2X1BSRUxJTSkKLQljc2N0cmwtPmNzX2JyNiA9IENGR19CUjZfUFJFTElNOwotCWNzY3RybC0+Y3Nfb3I2ID0gQ0ZHX09SNl9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX09SNl9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjZfUFJFTElNKQorCWNzY3RybC0+Y3NfYnI2ID0gQ09ORklHX1NZU19CUjZfUFJFTElNOworCWNzY3RybC0+Y3Nfb3I2ID0gQ09ORklHX1NZU19PUjZfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19PUjdfUFJFTElNKSAmJiBkZWZpbmVkKENGR19CUjdfUFJFTElNKQotCWNzY3RybC0+Y3NfYnI3ID0gQ0ZHX0JSN19QUkVMSU07Ci0JY3NjdHJsLT5jc19vcjcgPSBDRkdfT1I3X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1I3X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSN19QUkVMSU0pCisJY3NjdHJsLT5jc19icjcgPSBDT05GSUdfU1lTX0JSN19QUkVMSU07CisJY3NjdHJsLT5jc19vcjcgPSBDT05GSUdfU1lTX09SN19QUkVMSU07CiAjZW5kaWYKIAogI2VuZGlmCQkJCS8qICNpZm5kZWYgQ09ORklHX01PTklUT1JfSVNfSU5fUkFNICovCkBAIC0yNDQsNyArMjQ0LDcgQEAKIAl2b2xhdGlsZSBncGlvX3QgKmdwaW8gPSAoZ3Bpb190ICopIE1NQVBfR1BJTzsKIAogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWdwaW8tPmdwaW9fcGJjbnQgJj0gfihHUElPX1BCQ05UX1BCME1TSyB8IEdQSU9fUEJDTlRfUEIxTVNLKTsKIAkJZ3Bpby0+Z3Bpb19wYmNudCB8PSAoR1BJT19QQkNOVF9VUlQwX1RYRCB8IEdQSU9fUEJDTlRfVVJUMF9SWEQpOwpAQCAtMjgyLDU3ICsyODIsNTcgQEAKIAogCS8qIE1lbW9yeSBDb250cm9sbGVyOiAqLwogCS8qIEZsYXNoICovCi0JY3NjdHJsX3JlZy0+YXIwID0gQ0ZHX0FSMF9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3IwID0gQ0ZHX0NSMF9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXIwID0gQ0ZHX01SMF9QUkVMSU07CisJY3NjdHJsX3JlZy0+YXIwID0gQ09ORklHX1NZU19BUjBfUFJFTElNOworCWNzY3RybF9yZWctPmNyMCA9IENPTkZJR19TWVNfQ1IwX1BSRUxJTTsKKwljc2N0cmxfcmVnLT5tcjAgPSBDT05GSUdfU1lTX01SMF9QUkVMSU07CiAKLSNpZiAoZGVmaW5lZChDRkdfQVIxX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQ1IxX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTVIxX1BSRUxJTSkpCi0JY3NjdHJsX3JlZy0+YXIxID0gQ0ZHX0FSMV9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3IxID0gQ0ZHX0NSMV9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXIxID0gQ0ZHX01SMV9QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19BUjFfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1IxX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX01SMV9QUkVMSU0pKQorCWNzY3RybF9yZWctPmFyMSA9IENPTkZJR19TWVNfQVIxX1BSRUxJTTsKKwljc2N0cmxfcmVnLT5jcjEgPSBDT05GSUdfU1lTX0NSMV9QUkVMSU07CisJY3NjdHJsX3JlZy0+bXIxID0gQ09ORklHX1NZU19NUjFfUFJFTElNOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQVIyX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQ1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTVIyX1BSRUxJTSkpCi0JY3NjdHJsX3JlZy0+YXIyID0gQ0ZHX0FSMl9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3IyID0gQ0ZHX0NSMl9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXIyID0gQ0ZHX01SMl9QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19BUjJfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX01SMl9QUkVMSU0pKQorCWNzY3RybF9yZWctPmFyMiA9IENPTkZJR19TWVNfQVIyX1BSRUxJTTsKKwljc2N0cmxfcmVnLT5jcjIgPSBDT05GSUdfU1lTX0NSMl9QUkVMSU07CisJY3NjdHJsX3JlZy0+bXIyID0gQ09ORklHX1NZU19NUjJfUFJFTElNOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQVIzX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQ1IzX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTVIzX1BSRUxJTSkpCi0JY3NjdHJsX3JlZy0+YXIzID0gQ0ZHX0FSM19QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3IzID0gQ0ZHX0NSM19QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXIzID0gQ0ZHX01SM19QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19BUjNfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1IzX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX01SM19QUkVMSU0pKQorCWNzY3RybF9yZWctPmFyMyA9IENPTkZJR19TWVNfQVIzX1BSRUxJTTsKKwljc2N0cmxfcmVnLT5jcjMgPSBDT05GSUdfU1lTX0NSM19QUkVMSU07CisJY3NjdHJsX3JlZy0+bXIzID0gQ09ORklHX1NZU19NUjNfUFJFTElNOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQVI0X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQ1I0X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTVI0X1BSRUxJTSkpCi0JY3NjdHJsX3JlZy0+YXI0ID0gQ0ZHX0FSNF9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3I0ID0gQ0ZHX0NSNF9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXI0ID0gQ0ZHX01SNF9QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19BUjRfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1I0X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX01SNF9QUkVMSU0pKQorCWNzY3RybF9yZWctPmFyNCA9IENPTkZJR19TWVNfQVI0X1BSRUxJTTsKKwljc2N0cmxfcmVnLT5jcjQgPSBDT05GSUdfU1lTX0NSNF9QUkVMSU07CisJY3NjdHJsX3JlZy0+bXI0ID0gQ09ORklHX1NZU19NUjRfUFJFTElNOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQVI1X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQ1I1X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTVI1X1BSRUxJTSkpCi0JY3NjdHJsX3JlZy0+YXI1ID0gQ0ZHX0FSNV9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3I1ID0gQ0ZHX0NSNV9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXI1ID0gQ0ZHX01SNV9QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19BUjVfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1I1X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX01SNV9QUkVMSU0pKQorCWNzY3RybF9yZWctPmFyNSA9IENPTkZJR19TWVNfQVI1X1BSRUxJTTsKKwljc2N0cmxfcmVnLT5jcjUgPSBDT05GSUdfU1lTX0NSNV9QUkVMSU07CisJY3NjdHJsX3JlZy0+bXI1ID0gQ09ORklHX1NZU19NUjVfUFJFTElNOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQVI2X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQ1I2X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTVI2X1BSRUxJTSkpCi0JY3NjdHJsX3JlZy0+YXI2ID0gQ0ZHX0FSNl9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3I2ID0gQ0ZHX0NSNl9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXI2ID0gQ0ZHX01SNl9QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19BUjZfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1I2X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX01SNl9QUkVMSU0pKQorCWNzY3RybF9yZWctPmFyNiA9IENPTkZJR19TWVNfQVI2X1BSRUxJTTsKKwljc2N0cmxfcmVnLT5jcjYgPSBDT05GSUdfU1lTX0NSNl9QUkVMSU07CisJY3NjdHJsX3JlZy0+bXI2ID0gQ09ORklHX1NZU19NUjZfUFJFTElNOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQVI3X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQ1I3X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTVI3X1BSRUxJTSkpCi0JY3NjdHJsX3JlZy0+YXI3ID0gQ0ZHX0FSN19QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3I3ID0gQ0ZHX0NSN19QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXI3ID0gQ0ZHX01SN19QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19BUjdfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1I3X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX01SN19QUkVMSU0pKQorCWNzY3RybF9yZWctPmFyNyA9IENPTkZJR19TWVNfQVI3X1BSRUxJTTsKKwljc2N0cmxfcmVnLT5jcjcgPSBDT05GSUdfU1lTX0NSN19QUkVMSU07CisJY3NjdHJsX3JlZy0+bXI3ID0gQ09ORklHX1NZU19NUjdfUFJFTElNOwogI2VuZGlmCiAKICNlbmRpZgkJCQkvKiAjaWZuZGVmIENPTkZJR19NT05JVE9SX0lTX0lOX1JBTSAqLwogCiAjaWZkZWYgQ09ORklHX0ZTTF9JMkMKLQlDRkdfSTJDX1BJTk1VWF9SRUcgJj0gQ0ZHX0kyQ19QSU5NVVhfQ0xSOwotCUNGR19JMkNfUElOTVVYX1JFRyB8PSBDRkdfSTJDX1BJTk1VWF9TRVQ7CisJQ09ORklHX1NZU19JMkNfUElOTVVYX1JFRyAmPSBDT05GSUdfU1lTX0kyQ19QSU5NVVhfQ0xSOworCUNPTkZJR19TWVNfSTJDX1BJTk1VWF9SRUcgfD0gQ09ORklHX1NZU19JMkNfUElOTVVYX1NFVDsKICNlbmRpZgogCiAJLyogZW5hYmxlIGluc3RydWN0aW9uIGNhY2hlIG5vdyAqLwpAQCAtMzUyLDcgKzM1Miw3IEBACiAJdm9sYXRpbGUgZ3Bpb190ICpncGlvID0gKGdwaW9fdCAqKU1NQVBfR1BJTzsKIAogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWdwaW8tPnBhcl91YXJ0IHw9IFVBUlQwX0VOQUJMRV9NQVNLOwogCQlicmVhazsKQEAgLTM4NCwxNTUgKzM4NCwxNTUgQEAKICNpZm5kZWYgQ09ORklHX01PTklUT1JfSVNfSU5fUkFNCiAJLyogU2V0IHNwZWVkIC9QTEwgKi8KIAlNQ0ZDTE9DS19TWU5DUiA9Ci0JICAgIE1DRkNMT0NLX1NZTkNSX01GRChDRkdfTUZEKSB8IE1DRkNMT0NLX1NZTkNSX1JGRChDRkdfUkZEKTsKKwkgICAgTUNGQ0xPQ0tfU1lOQ1JfTUZEKENPTkZJR19TWVNfTUZEKSB8IE1DRkNMT0NLX1NZTkNSX1JGRChDT05GSUdfU1lTX1JGRCk7CiAJd2hpbGUgKCEoTUNGQ0xPQ0tfU1lOU1IgJiBNQ0ZDTE9DS19TWU5TUl9MT0NLKSkgOwogCiAJTUNGR1BJT19QQkNEUEFSID0gMHhjMDsKIAogCS8qIFNldCB1cCB0aGUgR1BJTyBwb3J0cyAqLwotI2lmZGVmIENGR19QRVBBUgotCU1DRkdQSU9fUEVQQVIgPSBDRkdfUEVQQVI7CisjaWZkZWYgQ09ORklHX1NZU19QRVBBUgorCU1DRkdQSU9fUEVQQVIgPSBDT05GSUdfU1lTX1BFUEFSOwogI2VuZGlmCi0jaWZkZWYJQ0ZHX1BGUEFSCi0JTUNGR1BJT19QRlBBUiA9IENGR19QRlBBUjsKKyNpZmRlZglDT05GSUdfU1lTX1BGUEFSCisJTUNGR1BJT19QRlBBUiA9IENPTkZJR19TWVNfUEZQQVI7CiAjZW5kaWYKLSNpZmRlZiBDRkdfUEpQQVIKLQlNQ0ZHUElPX1BKUEFSID0gQ0ZHX1BKUEFSOworI2lmZGVmIENPTkZJR19TWVNfUEpQQVIKKwlNQ0ZHUElPX1BKUEFSID0gQ09ORklHX1NZU19QSlBBUjsKICNlbmRpZgotI2lmZGVmIENGR19QU0RQQVIKLQlNQ0ZHUElPX1BTRFBBUiA9IENGR19QU0RQQVI7CisjaWZkZWYgQ09ORklHX1NZU19QU0RQQVIKKwlNQ0ZHUElPX1BTRFBBUiA9IENPTkZJR19TWVNfUFNEUEFSOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX1BBU1BBUgotCU1DRkdQSU9fUEFTUEFSID0gQ0ZHX1BBU1BBUjsKKyNpZmRlZiBDT05GSUdfU1lTX1BBU1BBUgorCU1DRkdQSU9fUEFTUEFSID0gQ09ORklHX1NZU19QQVNQQVI7CiAjZW5kaWYKLSNpZmRlZiBDRkdfUEVITFBBUgotCU1DRkdQSU9fUEVITFBBUiA9IENGR19QRUhMUEFSOworI2lmZGVmIENPTkZJR19TWVNfUEVITFBBUgorCU1DRkdQSU9fUEVITFBBUiA9IENPTkZJR19TWVNfUEVITFBBUjsKICNlbmRpZgotI2lmZGVmIENGR19QUVNQQVIKLQlNQ0ZHUElPX1BRU1BBUiA9IENGR19QUVNQQVI7CisjaWZkZWYgQ09ORklHX1NZU19QUVNQQVIKKwlNQ0ZHUElPX1BRU1BBUiA9IENPTkZJR19TWVNfUFFTUEFSOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX1BUQ1BBUgotCU1DRkdQSU9fUFRDUEFSID0gQ0ZHX1BUQ1BBUjsKKyNpZmRlZiBDT05GSUdfU1lTX1BUQ1BBUgorCU1DRkdQSU9fUFRDUEFSID0gQ09ORklHX1NZU19QVENQQVI7CiAjZW5kaWYKLSNpZmRlZiBDRkdfUFREUEFSCi0JTUNGR1BJT19QVERQQVIgPSBDRkdfUFREUEFSOworI2lmZGVmIENPTkZJR19TWVNfUFREUEFSCisJTUNGR1BJT19QVERQQVIgPSBDT05GSUdfU1lTX1BURFBBUjsKICNlbmRpZgotI2lmZGVmIENGR19QVUFQQVIKLQlNQ0ZHUElPX1BVQVBBUiA9IENGR19QVUFQQVI7CisjaWZkZWYgQ09ORklHX1NZU19QVUFQQVIKKwlNQ0ZHUElPX1BVQVBBUiA9IENPTkZJR19TWVNfUFVBUEFSOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfRERSVUEKLQlNQ0ZHUElPX0REUlVBID0gQ0ZHX0REUlVBOworI2lmZGVmIENPTkZJR19TWVNfRERSVUEKKwlNQ0ZHUElPX0REUlVBID0gQ09ORklHX1NZU19ERFJVQTsKICNlbmRpZgogCiAJLyogVGhpcyBpcyBwcm9iYWJseSBhIGJhZCBwbGFjZSB0byBzZXR1cCBjaGlwIHNlbGVjdHMsIGJ1dCBldmVyeW9uZQogCSAgIGVsc2UgaXMgZG9pbmcgaXQhICovCiAKLSNpZiBkZWZpbmVkKENGR19DUzBfQkFTRSkgJiBkZWZpbmVkKENGR19DUzBfU0laRSkgJiBcCi0gICAgZGVmaW5lZChDRkdfQ1MwX1dJRFRIKSAmIGRlZmluZWQoQ0ZHX0NTMF9XUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1MwX0JBU0UpICYgZGVmaW5lZChDT05GSUdfU1lTX0NTMF9TSVpFKSAmIFwKKyAgICBkZWZpbmVkKENPTkZJR19TWVNfQ1MwX1dJRFRIKSAmIGRlZmluZWQoQ09ORklHX1NZU19DUzBfV1MpCiAKLQlNQ0ZDU01fQ1NBUjAgPSAoQ0ZHX0NTMF9CQVNFID4+IDE2KSAmIDB4RkZGRjsKKwlNQ0ZDU01fQ1NBUjAgPSAoQ09ORklHX1NZU19DUzBfQkFTRSA+PiAxNikgJiAweEZGRkY7CiAKLSNpZiAoQ0ZHX0NTMF9XSURUSCA9PSA4KQotI2RlZmluZQkgQ0ZHX0NTMF9QUyAgTUNGQ1NNX0NTQ1JfUFNfOAotI2VsaWYgKENGR19DUzBfV0lEVEggPT0gMTYpCi0jZGVmaW5lCSBDRkdfQ1MwX1BTICBNQ0ZDU01fQ1NDUl9QU18xNgotI2VsaWYgKENGR19DUzBfV0lEVEggPT0gMzIpCi0jZGVmaW5lCSBDRkdfQ1MwX1BTICBNQ0ZDU01fQ1NDUl9QU18zMgorI2lmIChDT05GSUdfU1lTX0NTMF9XSURUSCA9PSA4KQorI2RlZmluZQkgQ09ORklHX1NZU19DUzBfUFMgIE1DRkNTTV9DU0NSX1BTXzgKKyNlbGlmIChDT05GSUdfU1lTX0NTMF9XSURUSCA9PSAxNikKKyNkZWZpbmUJIENPTkZJR19TWVNfQ1MwX1BTICBNQ0ZDU01fQ1NDUl9QU18xNgorI2VsaWYgKENPTkZJR19TWVNfQ1MwX1dJRFRIID09IDMyKQorI2RlZmluZQkgQ09ORklHX1NZU19DUzBfUFMgIE1DRkNTTV9DU0NSX1BTXzMyCiAjZWxzZQotI2Vycm9yCSJDRkdfQ1MwX1dJRFRIOiBGYXVsdCAtIHdyb25nIGJ1cyB3aXRoIGZvciBDUzAiCisjZXJyb3IJIkNPTkZJR19TWVNfQ1MwX1dJRFRIOiBGYXVsdCAtIHdyb25nIGJ1cyB3aXRoIGZvciBDUzAiCiAjZW5kaWYKLQlNQ0ZDU01fQ1NDUjAgPSBNQ0ZDU01fQ1NDUl9XUyhDRkdfQ1MwX1dTKQotCSAgICB8IENGR19DUzBfUFMgfCBNQ0ZDU01fQ1NDUl9BQTsKKwlNQ0ZDU01fQ1NDUjAgPSBNQ0ZDU01fQ1NDUl9XUyhDT05GSUdfU1lTX0NTMF9XUykKKwkgICAgfCBDT05GSUdfU1lTX0NTMF9QUyB8IE1DRkNTTV9DU0NSX0FBOwogCi0jaWYgKENGR19DUzBfUk8gIT0gMCkKLQlNQ0ZDU01fQ1NNUjAgPSBNQ0ZDU01fQ1NNUl9CQU0oQ0ZHX0NTMF9TSVpFIC0gMSkKKyNpZiAoQ09ORklHX1NZU19DUzBfUk8gIT0gMCkKKwlNQ0ZDU01fQ1NNUjAgPSBNQ0ZDU01fQ1NNUl9CQU0oQ09ORklHX1NZU19DUzBfU0laRSAtIDEpCiAJICAgIHwgTUNGQ1NNX0NTTVJfV1AgfCBNQ0ZDU01fQ1NNUl9WOwogI2Vsc2UKLQlNQ0ZDU01fQ1NNUjAgPSBNQ0ZDU01fQ1NNUl9CQU0oQ0ZHX0NTMF9TSVpFIC0gMSkgfCBNQ0ZDU01fQ1NNUl9WOworCU1DRkNTTV9DU01SMCA9IE1DRkNTTV9DU01SX0JBTShDT05GSUdfU1lTX0NTMF9TSVpFIC0gMSkgfCBNQ0ZDU01fQ1NNUl9WOwogI2VuZGlmCiAjZWxzZQogI3dhcm5pbmcgIkNoaXAgU2VsZWN0IDAgYXJlIG5vdCBpbml0aWFsaXplZC91c2VkIgogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19DUzFfQkFTRSkgJiBkZWZpbmVkKENGR19DUzFfU0laRSkgJiBcCi0gICAgZGVmaW5lZChDRkdfQ1MxX1dJRFRIKSAmIGRlZmluZWQoQ0ZHX0NTMV9XUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1MxX0JBU0UpICYgZGVmaW5lZChDT05GSUdfU1lTX0NTMV9TSVpFKSAmIFwKKyAgICBkZWZpbmVkKENPTkZJR19TWVNfQ1MxX1dJRFRIKSAmIGRlZmluZWQoQ09ORklHX1NZU19DUzFfV1MpCiAKLQlNQ0ZDU01fQ1NBUjEgPSAoQ0ZHX0NTMV9CQVNFID4+IDE2KSAmIDB4RkZGRjsKKwlNQ0ZDU01fQ1NBUjEgPSAoQ09ORklHX1NZU19DUzFfQkFTRSA+PiAxNikgJiAweEZGRkY7CiAKLSNpZiAoQ0ZHX0NTMV9XSURUSCA9PSA4KQotI2RlZmluZQkgQ0ZHX0NTMV9QUyAgTUNGQ1NNX0NTQ1JfUFNfOAotI2VsaWYgKENGR19DUzFfV0lEVEggPT0gMTYpCi0jZGVmaW5lCSBDRkdfQ1MxX1BTICBNQ0ZDU01fQ1NDUl9QU18xNgotI2VsaWYgKENGR19DUzFfV0lEVEggPT0gMzIpCi0jZGVmaW5lCSBDRkdfQ1MxX1BTICBNQ0ZDU01fQ1NDUl9QU18zMgorI2lmIChDT05GSUdfU1lTX0NTMV9XSURUSCA9PSA4KQorI2RlZmluZQkgQ09ORklHX1NZU19DUzFfUFMgIE1DRkNTTV9DU0NSX1BTXzgKKyNlbGlmIChDT05GSUdfU1lTX0NTMV9XSURUSCA9PSAxNikKKyNkZWZpbmUJIENPTkZJR19TWVNfQ1MxX1BTICBNQ0ZDU01fQ1NDUl9QU18xNgorI2VsaWYgKENPTkZJR19TWVNfQ1MxX1dJRFRIID09IDMyKQorI2RlZmluZQkgQ09ORklHX1NZU19DUzFfUFMgIE1DRkNTTV9DU0NSX1BTXzMyCiAjZWxzZQotI2Vycm9yCSJDRkdfQ1MxX1dJRFRIOiBGYXVsdCAtIHdyb25nIGJ1cyB3aXRoIGZvciBDUzEiCisjZXJyb3IJIkNPTkZJR19TWVNfQ1MxX1dJRFRIOiBGYXVsdCAtIHdyb25nIGJ1cyB3aXRoIGZvciBDUzEiCiAjZW5kaWYKLQlNQ0ZDU01fQ1NDUjEgPSBNQ0ZDU01fQ1NDUl9XUyhDRkdfQ1MxX1dTKQotCSAgICB8IENGR19DUzFfUFMgfCBNQ0ZDU01fQ1NDUl9BQTsKKwlNQ0ZDU01fQ1NDUjEgPSBNQ0ZDU01fQ1NDUl9XUyhDT05GSUdfU1lTX0NTMV9XUykKKwkgICAgfCBDT05GSUdfU1lTX0NTMV9QUyB8IE1DRkNTTV9DU0NSX0FBOwogCi0jaWYgKENGR19DUzFfUk8gIT0gMCkKLQlNQ0ZDU01fQ1NNUjEgPSBNQ0ZDU01fQ1NNUl9CQU0oQ0ZHX0NTMV9TSVpFIC0gMSkKKyNpZiAoQ09ORklHX1NZU19DUzFfUk8gIT0gMCkKKwlNQ0ZDU01fQ1NNUjEgPSBNQ0ZDU01fQ1NNUl9CQU0oQ09ORklHX1NZU19DUzFfU0laRSAtIDEpCiAJICAgIHwgTUNGQ1NNX0NTTVJfV1AgfCBNQ0ZDU01fQ1NNUl9WOwogI2Vsc2UKLQlNQ0ZDU01fQ1NNUjEgPSBNQ0ZDU01fQ1NNUl9CQU0oQ0ZHX0NTMV9TSVpFIC0gMSkKKwlNQ0ZDU01fQ1NNUjEgPSBNQ0ZDU01fQ1NNUl9CQU0oQ09ORklHX1NZU19DUzFfU0laRSAtIDEpCiAJICAgIHwgTUNGQ1NNX0NTTVJfVjsKICNlbmRpZgogI2Vsc2UKICN3YXJuaW5nICJDaGlwIFNlbGVjdCAxIGFyZSBub3QgaW5pdGlhbGl6ZWQvdXNlZCIKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQ1MyX0JBU0UpICYgZGVmaW5lZChDRkdfQ1MyX1NJWkUpICYgXAotICAgIGRlZmluZWQoQ0ZHX0NTMl9XSURUSCkgJiBkZWZpbmVkKENGR19DUzJfV1MpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0NTMl9CQVNFKSAmIGRlZmluZWQoQ09ORklHX1NZU19DUzJfU0laRSkgJiBcCisgICAgZGVmaW5lZChDT05GSUdfU1lTX0NTMl9XSURUSCkgJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MyX1dTKQogCi0JTUNGQ1NNX0NTQVIyID0gKENGR19DUzJfQkFTRSA+PiAxNikgJiAweEZGRkY7CisJTUNGQ1NNX0NTQVIyID0gKENPTkZJR19TWVNfQ1MyX0JBU0UgPj4gMTYpICYgMHhGRkZGOwogCi0jaWYgKENGR19DUzJfV0lEVEggPT0gOCkKLSNkZWZpbmUJIENGR19DUzJfUFMgIE1DRkNTTV9DU0NSX1BTXzgKLSNlbGlmIChDRkdfQ1MyX1dJRFRIID09IDE2KQotI2RlZmluZQkgQ0ZHX0NTMl9QUyAgTUNGQ1NNX0NTQ1JfUFNfMTYKLSNlbGlmIChDRkdfQ1MyX1dJRFRIID09IDMyKQotI2RlZmluZQkgQ0ZHX0NTMl9QUyAgTUNGQ1NNX0NTQ1JfUFNfMzIKKyNpZiAoQ09ORklHX1NZU19DUzJfV0lEVEggPT0gOCkKKyNkZWZpbmUJIENPTkZJR19TWVNfQ1MyX1BTICBNQ0ZDU01fQ1NDUl9QU184CisjZWxpZiAoQ09ORklHX1NZU19DUzJfV0lEVEggPT0gMTYpCisjZGVmaW5lCSBDT05GSUdfU1lTX0NTMl9QUyAgTUNGQ1NNX0NTQ1JfUFNfMTYKKyNlbGlmIChDT05GSUdfU1lTX0NTMl9XSURUSCA9PSAzMikKKyNkZWZpbmUJIENPTkZJR19TWVNfQ1MyX1BTICBNQ0ZDU01fQ1NDUl9QU18zMgogI2Vsc2UKLSNlcnJvcgkiQ0ZHX0NTMl9XSURUSDogRmF1bHQgLSB3cm9uZyBidXMgd2l0aCBmb3IgQ1MyIgorI2Vycm9yCSJDT05GSUdfU1lTX0NTMl9XSURUSDogRmF1bHQgLSB3cm9uZyBidXMgd2l0aCBmb3IgQ1MyIgogI2VuZGlmCi0JTUNGQ1NNX0NTQ1IyID0gTUNGQ1NNX0NTQ1JfV1MoQ0ZHX0NTMl9XUykKLQkgICAgfCBDRkdfQ1MyX1BTIHwgTUNGQ1NNX0NTQ1JfQUE7CisJTUNGQ1NNX0NTQ1IyID0gTUNGQ1NNX0NTQ1JfV1MoQ09ORklHX1NZU19DUzJfV1MpCisJICAgIHwgQ09ORklHX1NZU19DUzJfUFMgfCBNQ0ZDU01fQ1NDUl9BQTsKIAotI2lmIChDRkdfQ1MyX1JPICE9IDApCi0JTUNGQ1NNX0NTTVIyID0gTUNGQ1NNX0NTTVJfQkFNKENGR19DUzJfU0laRSAtIDEpCisjaWYgKENPTkZJR19TWVNfQ1MyX1JPICE9IDApCisJTUNGQ1NNX0NTTVIyID0gTUNGQ1NNX0NTTVJfQkFNKENPTkZJR19TWVNfQ1MyX1NJWkUgLSAxKQogCSAgICB8IE1DRkNTTV9DU01SX1dQIHwgTUNGQ1NNX0NTTVJfVjsKICNlbHNlCi0JTUNGQ1NNX0NTTVIyID0gTUNGQ1NNX0NTTVJfQkFNKENGR19DUzJfU0laRSAtIDEpCisJTUNGQ1NNX0NTTVIyID0gTUNGQ1NNX0NTTVJfQkFNKENPTkZJR19TWVNfQ1MyX1NJWkUgLSAxKQogCSAgICB8IE1DRkNTTV9DU01SX1Y7CiAjZW5kaWYKICNlbHNlCiAjd2FybmluZyAiQ2hpcCBTZWxlY3QgMiBhcmUgbm90IGluaXRpYWxpemVkL3VzZWQiCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0NTM19CQVNFKSAmIGRlZmluZWQoQ0ZHX0NTM19TSVpFKSAmIFwKLSAgICBkZWZpbmVkKENGR19DUzNfV0lEVEgpICYgZGVmaW5lZChDRkdfQ1MzX1dTKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19DUzNfQkFTRSkgJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MzX1NJWkUpICYgXAorICAgIGRlZmluZWQoQ09ORklHX1NZU19DUzNfV0lEVEgpICYgZGVmaW5lZChDT05GSUdfU1lTX0NTM19XUykKIAotCU1DRkNTTV9DU0FSMyA9IChDRkdfQ1MzX0JBU0UgPj4gMTYpICYgMHhGRkZGOworCU1DRkNTTV9DU0FSMyA9IChDT05GSUdfU1lTX0NTM19CQVNFID4+IDE2KSAmIDB4RkZGRjsKIAotI2lmIChDRkdfQ1MzX1dJRFRIID09IDgpCi0jZGVmaW5lCSBDRkdfQ1MzX1BTICBNQ0ZDU01fQ1NDUl9QU184Ci0jZWxpZiAoQ0ZHX0NTM19XSURUSCA9PSAxNikKLSNkZWZpbmUJIENGR19DUzNfUFMgIE1DRkNTTV9DU0NSX1BTXzE2Ci0jZWxpZiAoQ0ZHX0NTM19XSURUSCA9PSAzMikKLSNkZWZpbmUJIENGR19DUzNfUFMgIE1DRkNTTV9DU0NSX1BTXzMyCisjaWYgKENPTkZJR19TWVNfQ1MzX1dJRFRIID09IDgpCisjZGVmaW5lCSBDT05GSUdfU1lTX0NTM19QUyAgTUNGQ1NNX0NTQ1JfUFNfOAorI2VsaWYgKENPTkZJR19TWVNfQ1MzX1dJRFRIID09IDE2KQorI2RlZmluZQkgQ09ORklHX1NZU19DUzNfUFMgIE1DRkNTTV9DU0NSX1BTXzE2CisjZWxpZiAoQ09ORklHX1NZU19DUzNfV0lEVEggPT0gMzIpCisjZGVmaW5lCSBDT05GSUdfU1lTX0NTM19QUyAgTUNGQ1NNX0NTQ1JfUFNfMzIKICNlbHNlCi0jZXJyb3IJIkNGR19DUzNfV0lEVEg6IEZhdWx0IC0gd3JvbmcgYnVzIHdpdGggZm9yIENTMSIKKyNlcnJvcgkiQ09ORklHX1NZU19DUzNfV0lEVEg6IEZhdWx0IC0gd3JvbmcgYnVzIHdpdGggZm9yIENTMSIKICNlbmRpZgotCU1DRkNTTV9DU0NSMyA9IE1DRkNTTV9DU0NSX1dTKENGR19DUzNfV1MpCi0JICAgIHwgQ0ZHX0NTM19QUyB8IE1DRkNTTV9DU0NSX0FBOworCU1DRkNTTV9DU0NSMyA9IE1DRkNTTV9DU0NSX1dTKENPTkZJR19TWVNfQ1MzX1dTKQorCSAgICB8IENPTkZJR19TWVNfQ1MzX1BTIHwgTUNGQ1NNX0NTQ1JfQUE7CiAKLSNpZiAoQ0ZHX0NTM19STyAhPSAwKQotCU1DRkNTTV9DU01SMyA9IE1DRkNTTV9DU01SX0JBTShDRkdfQ1MzX1NJWkUgLSAxKQorI2lmIChDT05GSUdfU1lTX0NTM19STyAhPSAwKQorCU1DRkNTTV9DU01SMyA9IE1DRkNTTV9DU01SX0JBTShDT05GSUdfU1lTX0NTM19TSVpFIC0gMSkKIAkgICAgfCBNQ0ZDU01fQ1NNUl9XUCB8IE1DRkNTTV9DU01SX1Y7CiAjZWxzZQotCU1DRkNTTV9DU01SMyA9IE1DRkNTTV9DU01SX0JBTShDRkdfQ1MzX1NJWkUgLSAxKQorCU1DRkNTTV9DU01SMyA9IE1DRkNTTV9DU01SX0JBTShDT05GSUdfU1lTX0NTM19TSVpFIC0gMSkKIAkgICAgfCBNQ0ZDU01fQ1NNUl9WOwogI2VuZGlmCiAjZWxzZQpAQCAtNTU2LDcgKzU1Niw3IEBACiB2b2lkIHVhcnRfcG9ydF9jb25mKHZvaWQpCiB7CiAJLyogU2V0dXAgUG9ydHM6ICovCi0Jc3dpdGNoIChDRkdfVUFSVF9QT1JUKSB7CisJc3dpdGNoIChDT05GSUdfU1lTX1VBUlRfUE9SVCkgewogCWNhc2UgMDoKIAkJTUNGR1BJT19QVUFQQVIgJj0gMHhGYzsKIAkJTUNGR1BJT19QVUFQQVIgfD0gMHgwMzsKQEAgLTU4OSwxMiArNTg5LDEyIEBACiAJICogICAgICAgIHdoaWNoIGlzIHRoZWlyIHByaW1hcnkgZnVuY3Rpb24uCiAJICogICAgICAgIH5KZXJlbXkKIAkgKi8KLQltYmFyMl93cml0ZUxvbmcoTUNGU0lNX0dQSU9fRlVOQywgQ0ZHX0dQSU9fRlVOQyk7Ci0JbWJhcjJfd3JpdGVMb25nKE1DRlNJTV9HUElPMV9GVU5DLCBDRkdfR1BJTzFfRlVOQyk7Ci0JbWJhcjJfd3JpdGVMb25nKE1DRlNJTV9HUElPX0VOLCBDRkdfR1BJT19FTik7Ci0JbWJhcjJfd3JpdGVMb25nKE1DRlNJTV9HUElPMV9FTiwgQ0ZHX0dQSU8xX0VOKTsKLQltYmFyMl93cml0ZUxvbmcoTUNGU0lNX0dQSU9fT1VULCBDRkdfR1BJT19PVVQpOwotCW1iYXIyX3dyaXRlTG9uZyhNQ0ZTSU1fR1BJTzFfT1VULCBDRkdfR1BJTzFfT1VUKTsKKwltYmFyMl93cml0ZUxvbmcoTUNGU0lNX0dQSU9fRlVOQywgQ09ORklHX1NZU19HUElPX0ZVTkMpOworCW1iYXIyX3dyaXRlTG9uZyhNQ0ZTSU1fR1BJTzFfRlVOQywgQ09ORklHX1NZU19HUElPMV9GVU5DKTsKKwltYmFyMl93cml0ZUxvbmcoTUNGU0lNX0dQSU9fRU4sIENPTkZJR19TWVNfR1BJT19FTik7CisJbWJhcjJfd3JpdGVMb25nKE1DRlNJTV9HUElPMV9FTiwgQ09ORklHX1NZU19HUElPMV9FTik7CisJbWJhcjJfd3JpdGVMb25nKE1DRlNJTV9HUElPX09VVCwgQ09ORklHX1NZU19HUElPX09VVCk7CisJbWJhcjJfd3JpdGVMb25nKE1DRlNJTV9HUElPMV9PVVQsIENPTkZJR19TWVNfR1BJTzFfT1VUKTsKIAogCS8qCiAJICogIGRCdWcgQ29tcGxpYW5jZToKQEAgLTYzNiwxMyArNjM2LDEzIEBACiAJICogIFNldHVwIGNoaXAgc2VsZWN0cy4uLgogCSAqLwogCi0JbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0FSMSwgQ0ZHX0NTQVIxKTsKLQltYmFyX3dyaXRlU2hvcnQoTUNGU0lNX0NTQ1IxLCBDRkdfQ1NDUjEpOwotCW1iYXJfd3JpdGVMb25nKE1DRlNJTV9DU01SMSwgQ0ZHX0NTTVIxKTsKKwltYmFyX3dyaXRlU2hvcnQoTUNGU0lNX0NTQVIxLCBDT05GSUdfU1lTX0NTQVIxKTsKKwltYmFyX3dyaXRlU2hvcnQoTUNGU0lNX0NTQ1IxLCBDT05GSUdfU1lTX0NTQ1IxKTsKKwltYmFyX3dyaXRlTG9uZyhNQ0ZTSU1fQ1NNUjEsIENPTkZJR19TWVNfQ1NNUjEpOwogCi0JbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0FSMCwgQ0ZHX0NTQVIwKTsKLQltYmFyX3dyaXRlU2hvcnQoTUNGU0lNX0NTQ1IwLCBDRkdfQ1NDUjApOwotCW1iYXJfd3JpdGVMb25nKE1DRlNJTV9DU01SMCwgQ0ZHX0NTTVIwKTsKKwltYmFyX3dyaXRlU2hvcnQoTUNGU0lNX0NTQVIwLCBDT05GSUdfU1lTX0NTQVIwKTsKKwltYmFyX3dyaXRlU2hvcnQoTUNGU0lNX0NTQ1IwLCBDT05GSUdfU1lTX0NTQ1IwKTsKKwltYmFyX3dyaXRlTG9uZyhNQ0ZTSU1fQ1NNUjAsIENPTkZJR19TWVNfQ1NNUjApOwogCiAJLyogZW5hYmxlIGluc3RydWN0aW9uIGNhY2hlIG5vdyAqLwogCWljYWNoZV9lbmFibGUoKTsKQEAgLTY1OSw3ICs2NTksNyBAQAogdm9pZCB1YXJ0X3BvcnRfY29uZih2b2lkKQogewogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWJyZWFrOwogCWNhc2UgMToKZGlmZiAtLWdpdCBhL2NwdS9tY2Y1MngyL2ludGVycnVwdHMuYyBiL2NwdS9tY2Y1MngyL2ludGVycnVwdHMuYwppbmRleCBiOGZiN2JiLi4wMTgxZTRiIDEwMDY0NAotLS0gYS9jcHUvbWNmNTJ4Mi9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L21jZjUyeDIvaW50ZXJydXB0cy5jCkBAIC01MSwxMCArNTEsMTAgQEAKICNpZiBkZWZpbmVkKENPTkZJR19NQ0ZUTVIpCiB2b2lkIGR0aW1lcl9pbnRyX3NldHVwKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW50Y3RybF90ICppbnRwID0gKGludGN0cmxfdCAqKSAoQ0ZHX0lOVFJfQkFTRSk7CisJdm9sYXRpbGUgaW50Y3RybF90ICppbnRwID0gKGludGN0cmxfdCAqKSAoQ09ORklHX1NZU19JTlRSX0JBU0UpOwogCiAJaW50cC0+aW50X2ljcjEgJj0gfklOVF9JQ1IxX1RNUjNNQVNLOwotCWludHAtPmludF9pY3IxIHw9IENGR19UTVJJTlRSX1BSSTsKKwlpbnRwLT5pbnRfaWNyMSB8PSBDT05GSUdfU1lTX1RNUklOVFJfUFJJOwogfQogI2VuZGlmCQkJCS8qIENPTkZJR19NQ0ZUTVIgKi8KICNlbmRpZgkJCQkvKiBDT05GSUdfTTUyNzIgKi8KQEAgLTYyLDcgKzYyLDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19NNTI4MikgfHwgZGVmaW5lZChDT05GSUdfTTUyNzEpIHx8IGRlZmluZWQoQ09ORklHX001Mjc1KQogaW50IGludGVycnVwdF9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ0ZHX0lOVFJfQkFTRSk7CisJdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ09ORklHX1NZU19JTlRSX0JBU0UpOwogCiAJLyogTWFrZSBzdXJlIGFsbCBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCAqLwogCWludHAtPmltcmwwIHw9IDB4MTsKQEAgLTc0LDExICs3NCwxMSBAQAogI2lmIGRlZmluZWQoQ09ORklHX01DRlRNUikKIHZvaWQgZHRpbWVyX2ludHJfc2V0dXAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbnQwX3QgKmludHAgPSAoaW50MF90ICopIChDRkdfSU5UUl9CQVNFKTsKKwl2b2xhdGlsZSBpbnQwX3QgKmludHAgPSAoaW50MF90ICopIChDT05GSUdfU1lTX0lOVFJfQkFTRSk7CiAKLQlpbnRwLT5pY3IwW0NGR19UTVJJTlRSX05PXSA9IENGR19UTVJJTlRSX1BSSTsKKwlpbnRwLT5pY3IwW0NPTkZJR19TWVNfVE1SSU5UUl9OT10gPSBDT05GSUdfU1lTX1RNUklOVFJfUFJJOwogCWludHAtPmltcmwwICY9IDB4RkZGRkZGRkU7Ci0JaW50cC0+aW1ybDAgJj0gfkNGR19UTVJJTlRSX01BU0s7CisJaW50cC0+aW1ybDAgJj0gfkNPTkZJR19TWVNfVE1SSU5UUl9NQVNLOwogfQogI2VuZGlmCQkJCS8qIENPTkZJR19NQ0ZUTVIgKi8KICNlbmRpZgkJCQkvKiBDT05GSUdfTTUyODIgfCBDT05GSUdfTTUyNzEgfCBDT05GSUdfTTUyNzUgKi8KQEAgLTk1LDcgKzk1LDcgQEAKIHZvaWQgZHRpbWVyX2ludHJfc2V0dXAodm9pZCkKIHsKIAltYmFyX3dyaXRlTG9uZyhNQ0ZTSU1fSU1SLCBtYmFyX3JlYWRMb25nKE1DRlNJTV9JTVIpICYgfjB4MDAwMDA0MDApOwotCW1iYXJfd3JpdGVCeXRlKE1DRlNJTV9USU1FUjJJQ1IsIENGR19UTVJJTlRSX1BSSSk7CisJbWJhcl93cml0ZUJ5dGUoTUNGU0lNX1RJTUVSMklDUiwgQ09ORklHX1NZU19UTVJJTlRSX1BSSSk7CiB9CiAjZW5kaWYJCQkJLyogQ09ORklHX01DRlRNUiAqLwogI2VuZGlmCQkJCS8qIENPTkZJR19NNTI0OSB8fCBDT05GSUdfTTUyNTMgKi8KZGlmZiAtLWdpdCBhL2NwdS9tY2Y1MngyL3NwZWVkLmMgYi9jcHUvbWNmNTJ4Mi9zcGVlZC5jCmluZGV4IDRjYjhmOTMuLmZlNTFmYjQgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1MngyL3NwZWVkLmMKKysrIGIvY3B1L21jZjUyeDIvc3BlZWQuYwpAQCAtMzksMTEgKzM5LDExIEBACiAJdm9sYXRpbGUgdW5zaWduZWQgbG9uZyBjcGxsID0gbWJhcjJfcmVhZExvbmcoTUNGU0lNX1BMTENSKTsKIAl1bnNpZ25lZCBsb25nIHBsbGNyOwogCi0jaWZuZGVmIENGR19QTExfQllQQVNTCisjaWZuZGVmIENPTkZJR19TWVNfUExMX0JZUEFTUwogCiAjaWZkZWYgQ09ORklHX001MjQ5CiAJLyogU2V0dXAgdGhlIFBMTCB0byBydW4gYXQgdGhlIHNwZWNpZmllZCBzcGVlZCAqLwotI2lmZGVmIENGR19GQVNUX0NMSworI2lmZGVmIENPTkZJR19TWVNfRkFTVF9DTEsKIAlwbGxjciA9IDB4OTI1YTMxMDA7CS8qIH4xNDBNSHogY2xvY2sgKFBMTCBieXBhc3MgPSAwKSAqLwogI2Vsc2UKIAlwbGxjciA9IDB4MTM1YTQxNDA7CS8qIH43Mk1IeiBjbG9jayAoUExMIGJ5cGFzcyA9IDApICovCkBAIC01MSw3ICs1MSw3IEBACiAjZW5kaWYJCQkJLyogQ09ORklHX001MjQ5ICovCiAKICNpZmRlZiBDT05GSUdfTTUyNTMKLQlwbGxjciA9IENGR19QTExDUjsKKwlwbGxjciA9IENPTkZJR19TWVNfUExMQ1I7CiAjZW5kaWYJCQkJLyogQ09ORklHX001MjUzICovCiAKIAljcGxsID0gY3BsbCAmIDB4ZmZmZmZmZmU7CS8qIFNldCBQTEwgYnlwYXNzIG1vZGUgPSAwIChQU1RDTEsgPSBjcnlzdGFsKSAqLwpAQCAtNjAsNyArNjAsNyBAQAogCXBsbGNyIF49IDB4MDAwMDAwMDE7CS8qIFNldCBwbGwgYnlwYXNzIHRvIDEgKi8KIAltYmFyMl93cml0ZUxvbmcoTUNGU0lNX1BMTENSLCBwbGxjcik7CS8qIFN0YXJ0IGxvY2tpbmcgKHBsbCBieXBhc3MgPSAxKSAqLwogCXVkZWxheSgweDIwKTsJCS8qIFdhaXQgZm9yIGEgbG9jayAuLi4gKi8KLSNlbmRpZgkJCQkvKiAjaWZuZGVmIENGR19QTExfQllQQVNTICovCisjZW5kaWYJCQkJLyogI2lmbmRlZiBDT05GSUdfU1lTX1BMTF9CWVBBU1MgKi8KIAogI2VuZGlmCQkJCS8qIENPTkZJR19NNTI0OSB8fCBDT05GSUdfTTUyNTMgKi8KIApAQCAtNzYsNyArNzYsNyBAQAogCQk7CiAjZW5kaWYKIAotCWdkLT5jcHVfY2xrID0gQ0ZHX0NMSzsKKwlnZC0+Y3B1X2NsayA9IENPTkZJR19TWVNfQ0xLOwogI2lmIGRlZmluZWQoQ09ORklHX001MjQ5KSB8fCBkZWZpbmVkKENPTkZJR19NNTI1MykgfHwgZGVmaW5lZChDT05GSUdfTTUyNzUpCiAJZ2QtPmJ1c19jbGsgPSBnZC0+Y3B1X2NsayAvIDI7CiAjZWxzZQpAQCAtODUsNyArODUsNyBAQAogCiAjaWZkZWYgQ09ORklHX0ZTTF9JMkMKIAlnZC0+aTJjMV9jbGsgPSBnZC0+YnVzX2NsazsKLSNpZmRlZiBDRkdfSTJDMl9PRkZTRVQKKyNpZmRlZiBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCiAJZ2QtPmkyYzJfY2xrID0gZ2QtPmJ1c19jbGs7CiAjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvY3B1L21jZjUyeDIvc3RhcnQuUyBiL2NwdS9tY2Y1MngyL3N0YXJ0LlMKaW5kZXggMmU4ZWNmYi4uZGE0NWJjYiAxMDA2NDQKLS0tIGEvY3B1L21jZjUyeDIvc3RhcnQuUworKysgYi9jcHUvbWNmNTJ4Mi9zdGFydC5TCkBAIC01Niw3ICs1Niw3IEBACiBfdmVjdG9yczoKIAogLmxvbmcJMHgwMDAwMDAwMAkJLyogRmxhc2ggb2Zmc2V0IGlzIDAgdW50aWwgd2Ugc2V0dXAgQ1MwICovCi0jaWYgZGVmaW5lZChDT05GSUdfTTUyODIpICYmIChURVhUX0JBU0UgPT0gQ0ZHX0lOVF9GTEFTSF9CQVNFKQorI2lmIGRlZmluZWQoQ09ORklHX001MjgyKSAmJiAoVEVYVF9CQVNFID09IENPTkZJR19TWVNfSU5UX0ZMQVNIX0JBU0UpCiAubG9uZwlfc3RhcnQgLSBURVhUX0JBU0UKICNlbHNlCiAubG9uZwlfU1RBUlQKQEAgLTEwMyw5ICsxMDMsOSBAQAogCS50ZXh0CiAKIAotI2lmIGRlZmluZWQoQ0ZHX0lOVF9GTEFTSF9CQVNFKSAmJiBcCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFKSAmJiBcCiAgICAgKGRlZmluZWQoQ09ORklHX001MjgyKSB8fCBkZWZpbmVkKENPTkZJR19NNTI4MSkpCi0JI2lmIChURVhUX0JBU0UgPT0gQ0ZHX0lOVF9GTEFTSF9CQVNFKQorCSNpZiAoVEVYVF9CQVNFID09IENPTkZJR19TWVNfSU5UX0ZMQVNIX0JBU0UpCiAJCS5sb25nCTB4NTVBQTU1QUEsMHhBQTU1QUE1NSAvKiBDRk0gQmFja2Rvb3JrZXkgKi8KIAkJLmxvbmcJMHhGRkZGRkZGRiAvKiBhbGwgc2VjdG9ycyBwcm90ZWN0ZWQgKi8KIAkJLmxvbmcJMHgwMDAwMDAwMCAvKiBzdXBlcnZpc29yL1VzZXIgcmVzdHJpY3Rpb24gKi8KQEAgLTEyMCw0NCArMTIwLDQ0IEBACiAJbW92ZS53ICMweDI3MDAsJXNyCiAKICNpZiBkZWZpbmVkKENPTkZJR19NNTI3MikgfHwgZGVmaW5lZChDT05GSUdfTTUyNDkpIHx8IGRlZmluZWQoQ09ORklHX001MjUzKQotCW1vdmUubAkjKENGR19NQkFSICsgMSksICVkMAkJLyogc2V0IE1CQVIgYWRkcmVzcyArIHZhbGlkIGZsYWcgKi8KKwltb3ZlLmwJIyhDT05GSUdfU1lTX01CQVIgKyAxKSwgJWQwCQkvKiBzZXQgTUJBUiBhZGRyZXNzICsgdmFsaWQgZmxhZyAqLwogCW1vdmUuYwklZDAsICVNQkFSCiAKIAkvKioqIFRoZSA1MjQ5IGhhcyBNQkFSMiBhcyB3ZWxsICoqKi8KLSNpZmRlZiBDRkdfTUJBUjIKLQltb3ZlLmwJIyhDRkdfTUJBUjIgKyAxKSwgJWQwCSAgICAgICAgLyogR2V0IE1CQVIyIGFkZHJlc3MgKi8KKyNpZmRlZiBDT05GSUdfU1lTX01CQVIyCisJbW92ZS5sCSMoQ09ORklHX1NZU19NQkFSMiArIDEpLCAlZDAJICAgICAgICAvKiBHZXQgTUJBUjIgYWRkcmVzcyAqLwogCW1vdmVjCSVkMCwgIzB4YzBlCQkgICAgICAgIC8qIFNldCBNQkFSMiAqLwogI2VuZGlmCiAKLQltb3ZlLmwJIyhDRkdfSU5JVF9SQU1fQUREUiArIDEpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxKSwgJWQwCiAJbW92ZWMJJWQwLCAlUkFNQkFSMAogI2VuZGlmIC8qIENPTkZJR19NNTI3MiB8fCBDT05GSUdfTTUyNDkgfHwgQ09ORklHX001MjUzICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19NNTI4MikgfHwgZGVmaW5lZChDT05GSUdfTTUyNzEpCiAJLyogSW5pdGlhbGl6ZSBJUFNCQVIgKi8KLQltb3ZlLmwJIyhDRkdfTUJBUiArIDEpLCAlZDAJCS8qIHNldCBJUFNCQVIgYWRkcmVzcyArIHZhbGlkIGZsYWcgKi8KKwltb3ZlLmwJIyhDT05GSUdfU1lTX01CQVIgKyAxKSwgJWQwCQkvKiBzZXQgSVBTQkFSIGFkZHJlc3MgKyB2YWxpZCBmbGFnICovCiAJbW92ZS5sCSVkMCwgMHg0MDAwMDAwMAogCiAJLyogSW5pdGlhbGl6ZSBSQU1CQVIxOiBsb2NhdGUgU1JBTSBhbmQgdmFsaWRhdGUgaXQgKi8KLQltb3ZlLmwJIyhDRkdfSU5JVF9SQU1fQUREUiArIDB4MjEpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAweDIxKSwgJWQwCiAJbW92ZWMJJWQwLCAlUkFNQkFSMQogCiAjaWYgZGVmaW5lZChDT05GSUdfTTUyODIpCi0jaWYgKFRFWFRfQkFTRSA9PSBDRkdfSU5UX0ZMQVNIX0JBU0UpCisjaWYgKFRFWFRfQkFTRSA9PSBDT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFKQogCS8qIFNldHVwIGNvZGUgaW4gU1JBTSB0byBpbml0aWFsaXplIEZMQVNIQkFSLCBpZiBzdGFydCBmcm9tIGludGVybmFsIEZsYXNoICovCiAKLQltb3ZlLmwgIyhfZmxhc2hiYXJfc2V0dXAtQ0ZHX0lOVF9GTEFTSF9CQVNFKSwgJWEwCi0JbW92ZS5sICMoX2ZsYXNoYmFyX3NldHVwX2VuZC1DRkdfSU5UX0ZMQVNIX0JBU0UpLCAlYTEKLQltb3ZlLmwgIyhDRkdfSU5JVF9SQU1fQUREUiksICVhMgorCW1vdmUubCAjKF9mbGFzaGJhcl9zZXR1cC1DT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFKSwgJWEwCisJbW92ZS5sICMoX2ZsYXNoYmFyX3NldHVwX2VuZC1DT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFKSwgJWExCisJbW92ZS5sICMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSKSwgJWEyCiBfY29weV9mbGFzaDoKIAltb3ZlLmwgKCVhMCkrLCAoJWEyKSsKIAljbXAubCAlYTAsICVhMQogCWJndC5zIF9jb3B5X2ZsYXNoCi0Jam1wIENGR19JTklUX1JBTV9BRERSCisJam1wIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgogCiBfZmxhc2hiYXJfc2V0dXA6CiAJLyogSW5pdGlhbGl6ZSBGTEFTSEJBUjogbG9jYXRlIGludGVybmFsIEZsYXNoIGFuZCB2YWxpZGF0ZSBpdCAqLwotCW1vdmUubAkjKENGR19JTlRfRkxBU0hfQkFTRSArIENGR19JTlRfRkxBU0hfRU5BQkxFKSwgJWQwCisJbW92ZS5sCSMoQ09ORklHX1NZU19JTlRfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfSU5UX0ZMQVNIX0VOQUJMRSksICVkMAogCW1vdmVjCSVkMCwgJUZMQVNIQkFSCiAJam1wIF9hZnRlcl9mbGFzaGJhcl9jb3B5LkwJLyogRm9yY2UganVtcCB0byBhYnNvbHV0ZSBhZGRyZXNzICovCiBfZmxhc2hiYXJfc2V0dXBfZW5kOgpAQCAtMTY1LDkgKzE2NSw5IEBACiBfYWZ0ZXJfZmxhc2hiYXJfY29weToKICNlbHNlCiAJLyogU2V0dXAgY29kZSB0byBpbml0aWFsaXplIEZMQVNIQkFSLCBpZiBzdGFydCBmcm9tIGV4dGVybmFsIE1lbW9yeSAqLwotCW1vdmUubAkjKENGR19JTlRfRkxBU0hfQkFTRSArIENGR19JTlRfRkxBU0hfRU5BQkxFKSwgJWQwCisJbW92ZS5sCSMoQ09ORklHX1NZU19JTlRfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfSU5UX0ZMQVNIX0VOQUJMRSksICVkMAogCW1vdmVjCSVkMCwgJUZMQVNIQkFSCi0jZW5kaWYgLyogKFRFWFRfQkFTRSA9PSBDRkdfSU5UX0ZMQVNIX0JBU0UpICovCisjZW5kaWYgLyogKFRFWFRfQkFTRSA9PSBDT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFKSAqLwogCiAjZW5kaWYKICNlbmRpZgpAQCAtMTc1LDIyICsxNzUsMjIgQEAKIAkgKiB0aGVyZWZvcmUgbm8gVkJSIHRvIHNldAogCSAqLwogI2lmICFkZWZpbmVkKENPTkZJR19NT05JVE9SX0lTX0lOX1JBTSkKLSNpZiBkZWZpbmVkKENPTkZJR19NNTI4MikgJiYgKFRFWFRfQkFTRSA9PSBDRkdfSU5UX0ZMQVNIX0JBU0UpCi0JbW92ZS5sCSNDRkdfSU5UX0ZMQVNIX0JBU0UsICVkMAorI2lmIGRlZmluZWQoQ09ORklHX001MjgyKSAmJiAoVEVYVF9CQVNFID09IENPTkZJR19TWVNfSU5UX0ZMQVNIX0JBU0UpCisJbW92ZS5sCSNDT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFLCAlZDAKICNlbHNlCi0JbW92ZS5sCSNDRkdfRkxBU0hfQkFTRSwgJWQwCisJbW92ZS5sCSNDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICVkMAogI2VuZGlmCiAJbW92ZWMJJWQwLCAlVkJSCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19NNTI3NQogCS8qIEluaXRpYWxpemUgSVBTQkFSICovCi0JbW92ZS5sCSMoQ0ZHX01CQVIgKyAxKSwgJWQwCQkvKiBzZXQgSVBTQkFSIGFkZHJlc3MgKyB2YWxpZCBmbGFnICovCisJbW92ZS5sCSMoQ09ORklHX1NZU19NQkFSICsgMSksICVkMAkJLyogc2V0IElQU0JBUiBhZGRyZXNzICsgdmFsaWQgZmxhZyAqLwogCW1vdmUubAklZDAsIDB4NDAwMDAwMDAKIC8qCW1vdmVjCSVkMCwgJU1CQVIgKi8KIAogCS8qIEluaXRpYWxpemUgUkFNQkFSOiBsb2NhdGUgU1JBTSBhbmQgdmFsaWRhdGUgaXQgKi8KLQltb3ZlLmwJIyhDRkdfSU5JVF9SQU1fQUREUiArIDB4MjEpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAweDIxKSwgJWQwCiAJbW92ZWMJJWQwLCAlUkFNQkFSMQogI2VuZGlmCiAKQEAgLTIwNCw3ICsyMDQsNyBAQAogI2VuZGlmCiAKIAkvKiBzZXQgc3RhY2twb2ludGVyIHRvIGVuZCBvZiBpbnRlcm5hbCByYW0gdG8gZ2V0IHNvbWUgc3RhY2tzcGFjZSBmb3IgdGhlIGZpcnN0IGMtY29kZSAqLwotCW1vdmUubAkjKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0lOSVRfU1BfT0ZGU0VUKSwgJXNwCisJbW92ZS5sCSMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCksICVzcAogCWNsci5sICVzcEAtCiAKIAltb3ZlLmwgI19fZ290X3N0YXJ0LCAlYTUJCS8qIHB1dCByZWxvY2F0aW9uIHRhYmxlIGFkZHJlc3MgdG8gYTUgKi8KQEAgLTIzNSw3ICsyMzUsNyBAQAogCW1vdmUubCAxMiglYTYpLCAlZDAJCS8qIFNhdmUgY29weSBvZiBHbG9iYWwgRGF0YSBwb2ludGVyICovCiAJbW92ZS5sIDE2KCVhNiksICVhMAkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KIAotCW1vdmUubCAjQ0ZHX01PTklUT1JfQkFTRSwgJWExCisJbW92ZS5sICNDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgJWExCiAJbW92ZS5sICNfX2luaXRfZW5kLCAlYTIKIAltb3ZlLmwgJWEwLCAlYTMKIAkvKiBjb3B5IHRoZSBjb2RlIHRvIFJBTSAqLwpAQCAtMjQ5LDcgKzI0OSw3IEBACiAgKiBpbml0aWFsaXphdGlvbiwgbm93IHJ1bm5pbmcgZnJvbSBSQU0uCiAgKi8KIAltb3ZlLmwJJWEwLCAlYTEKLQlhZGQubAkjKGluX3JhbSAtIENGR19NT05JVE9SX0JBU0UpLCAlYTEKKwlhZGQubAkjKGluX3JhbSAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwgJWExCiAJam1wCSglYTEpCiAKIGluX3JhbToKQEAgLTI1OSw5ICsyNTksOSBAQAogCSAqIE5vdyBjbGVhciBCU1Mgc2VnbWVudAogCSAqLwogCW1vdmUubAklYTAsICVhMQotCWFkZC5sCSMoX3Nic3MgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTEKKwlhZGQubAkjKF9zYnNzIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMQogCW1vdmUubAklYTAsICVkMQotCWFkZC5sCSMoX2Vic3MgLSBDRkdfTU9OSVRPUl9CQVNFKSwlZDEKKwlhZGQubAkjKF9lYnNzIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVkMQogNjoKIAljbHIubAkoJWExKSsKIAljbXAubAklYTEsJWQxCkBAIC0yNzEsMTEgKzI3MSwxMSBAQAogCSAqIGZpeCBnb3QgdGFibGUgaW4gUkFNCiAJICovCiAJbW92ZS5sCSVhMCwgJWExCi0JYWRkLmwJIyhfX2dvdF9zdGFydCAtIENGR19NT05JVE9SX0JBU0UpLCVhMQorCWFkZC5sCSMoX19nb3Rfc3RhcnQgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksJWExCiAJbW92ZS5sCSVhMSwlYTUJCS8qICogZml4IGdvdCBwb2ludGVyIHJlZ2lzdGVyIGE1ICovCiAKIAltb3ZlLmwJJWEwLCAlYTIKLQlhZGQubAkjKF9fZ290X2VuZCAtIENGR19NT05JVE9SX0JBU0UpLCVhMgorCWFkZC5sCSMoX19nb3RfZW5kIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMgogCiA3OgogCW1vdmUubAkoJWExKSwlZDEKQEAgLTI5MCwyNyArMjkwLDI3IEBACiAJLyogcXVpY2sgYW5kIGRpcnR5ICovCiAKIAltb3ZlLmwJJWEwLCVkMQotCWFkZC5sCSMoaWNhY2hlX3N0YXRlIC0gQ0ZHX01PTklUT1JfQkFTRSksJWQxCisJYWRkLmwJIyhpY2FjaGVfc3RhdGUgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksJWQxCiAJbW92ZS5sCSVhMCwlYTEKLQlhZGQubAkjKGljYWNoZV9zdGF0ZV9hY2Nlc3NfMSsyIC0gQ0ZHX01PTklUT1JfQkFTRSksJWExCisJYWRkLmwJIyhpY2FjaGVfc3RhdGVfYWNjZXNzXzErMiAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlYTEKIAltb3ZlLmwgICVkMSwoJWExKQogCW1vdmUubAklYTAsJWExCi0JYWRkLmwJIyhpY2FjaGVfc3RhdGVfYWNjZXNzXzIrMiAtIENGR19NT05JVE9SX0JBU0UpLCVhMQorCWFkZC5sCSMoaWNhY2hlX3N0YXRlX2FjY2Vzc18yKzIgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksJWExCiAJbW92ZS5sICAlZDEsKCVhMSkKIAltb3ZlLmwJJWEwLCVhMQotCWFkZC5sCSMoaWNhY2hlX3N0YXRlX2FjY2Vzc18zKzIgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTEKKwlhZGQubAkjKGljYWNoZV9zdGF0ZV9hY2Nlc3NfMysyIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMQogCW1vdmUubCAgJWQxLCglYTEpCiAjZW5kaWYKIAogCS8qIGNhbGN1bGF0ZSByZWxhdGl2ZSBqdW1wIHRvIGJvYXJkX2luaXRfciBpbiByYW0gKi8KIAltb3ZlLmwgJWEwLCAlYTEKLQlhZGQubCAjKGJvYXJkX2luaXRfciAtIENGR19NT05JVE9SX0JBU0UpLCAlYTEKKwlhZGQubCAjKGJvYXJkX2luaXRfciAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwgJWExCiAKIAkvKiBzZXQgcGFyYW1ldGVycyBmb3IgYm9hcmRfaW5pdF9yICovCiAJbW92ZS5sICVhMCwtKCVzcCkJCS8qIGRlc3RfYWRkciAqLwogCW1vdmUubCAlZDAsLSglc3ApCQkvKiBnZCAqLwotI2lmIGRlZmluZWQoREVCVUcpICYmIChURVhUX0JBU0UgIT0gQ0ZHX0lOVF9GTEFTSF9CQVNFKSAmJiBcCi0gICAgZGVmaW5lZChDRkdfSEFMVF9CRUZPUl9SQU1fSlVNUCkKKyNpZiBkZWZpbmVkKERFQlVHKSAmJiAoVEVYVF9CQVNFICE9IENPTkZJR19TWVNfSU5UX0ZMQVNIX0JBU0UpICYmIFwKKyAgICBkZWZpbmVkKENPTkZJR19TWVNfSEFMVF9CRUZPUl9SQU1fSlVNUCkKIAloYWx0CiAjZW5kaWYKIAlqc3IJKCVhMSkKQEAgLTM0NCwxNCArMzQ0LDE0IEBACiBpY2FjaGVfZW5hYmxlOgogCW1vdmUubAkjMHgwMTAwMDAwMCwgJWQwCQkvKiBJbnZhbGlkYXRlIGNhY2hlIGNtZCAqLwogCW1vdmVjCSVkMCwgJUNBQ1IJCQkvKiBJbnZhbGlkYXRlIGNhY2hlICovCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX0JBU0UgKyAweGMwMDApLCAlZDAJLyogU2V0dXAgY2FjaGUgbWFzayAqLworCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4YzAwMCksICVkMAkvKiBTZXR1cCBjYWNoZSBtYXNrICovCiAJbW92ZWMJJWQwLCAlQUNSMAkJCS8qIEVuYWJsZSBjYWNoZSAqLwogCiAJbW92ZS5sCSMweDgwMDAwMjAwLCAlZDAJCS8qIFNldHVwIGNhY2hlIG1hc2sgKi8KIAltb3ZlYwklZDAsICVDQUNSCQkJLyogRW5hYmxlIGNhY2hlICovCiAJbm9wCiAKLQltb3ZlLmwgIyhDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELTgpLCAlYTEKKwltb3ZlLmwgIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtOCksICVhMQogCW1vdmVxCSMxLCAlZDAKIAltb3ZlLmwJJWQwLCAoJWExKQogCXJ0cwpkaWZmIC0tZ2l0IGEvY3B1L21jZjUzMngvY3B1LmMgYi9jcHUvbWNmNTMyeC9jcHUuYwppbmRleCAyNjBkNmU2Li44YzQ5NmEyIDEwMDY0NAotLS0gYS9jcHUvbWNmNTMyeC9jcHUuYworKysgYi9jcHUvbWNmNTMyeC9jcHUuYwpAQCAtMTE3LDcgKzExNyw3IEBACiAJdTMyIHdkb2dfbW9kdWxlID0gMDsKIAogCS8qIHNldCB0aW1lb3V0IGFuZCBlbmFibGUgd2F0Y2hkb2cgKi8KLQl3ZG9nX21vZHVsZSA9ICgoQ0ZHX0NMSyAvIDEwMDApICogQ09ORklHX1dBVENIRE9HX1RJTUVPVVQpOworCXdkb2dfbW9kdWxlID0gKChDT05GSUdfU1lTX0NMSyAvIDEwMDApICogQ09ORklHX1dBVENIRE9HX1RJTUVPVVQpOwogI2lmZGVmIENPTkZJR19NNTMyOQogCXdkcC0+bXIgPSAod2RvZ19tb2R1bGUgLyA4MTkyKTsKICNlbHNlCmRpZmYgLS1naXQgYS9jcHUvbWNmNTMyeC9jcHVfaW5pdC5jIGIvY3B1L21jZjUzMngvY3B1X2luaXQuYwppbmRleCA5MzA4NmY3Li5kMzQ4ZTI5IDEwMDY0NAotLS0gYS9jcHUvbWNmNTMyeC9jcHVfaW5pdC5jCisrKyBiL2NwdS9tY2Y1MzJ4L2NwdV9pbml0LmMKQEAgLTYzLDQ2ICs2Myw0NiBAQAogCS8qIFBvcnQgY29uZmlndXJhdGlvbiAqLwogCWdwaW8tPnBhcl9jcyA9IDA7CiAKLSNpZiAoZGVmaW5lZChDRkdfQ1MwX0JBU0UpICYmIGRlZmluZWQoQ0ZHX0NTMF9NQVNLKSAmJiBkZWZpbmVkKENGR19DUzBfQ1RSTCkpCi0JZmJjcy0+Y3NhcjAgPSBDRkdfQ1MwX0JBU0U7Ci0JZmJjcy0+Y3NjcjAgPSBDRkdfQ1MwX0NUUkw7Ci0JZmJjcy0+Y3NtcjAgPSBDRkdfQ1MwX01BU0s7CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19DUzBfQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMF9NQVNLKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MwX0NUUkwpKQorCWZiY3MtPmNzYXIwID0gQ09ORklHX1NZU19DUzBfQkFTRTsKKwlmYmNzLT5jc2NyMCA9IENPTkZJR19TWVNfQ1MwX0NUUkw7CisJZmJjcy0+Y3NtcjAgPSBDT05GSUdfU1lTX0NTMF9NQVNLOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQ1MxX0JBU0UpICYmIGRlZmluZWQoQ0ZHX0NTMV9NQVNLKSAmJiBkZWZpbmVkKENGR19DUzFfQ1RSTCkpCisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19DUzFfQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMV9NQVNLKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MxX0NUUkwpKQogCS8qIExhdGNoIGNoaXBzZWxlY3QgKi8KIAlncGlvLT5wYXJfY3MgfD0gR1BJT19QQVJfQ1MxOwotCWZiY3MtPmNzYXIxID0gQ0ZHX0NTMV9CQVNFOwotCWZiY3MtPmNzY3IxID0gQ0ZHX0NTMV9DVFJMOwotCWZiY3MtPmNzbXIxID0gQ0ZHX0NTMV9NQVNLOworCWZiY3MtPmNzYXIxID0gQ09ORklHX1NZU19DUzFfQkFTRTsKKwlmYmNzLT5jc2NyMSA9IENPTkZJR19TWVNfQ1MxX0NUUkw7CisJZmJjcy0+Y3NtcjEgPSBDT05GSUdfU1lTX0NTMV9NQVNLOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQ1MyX0JBU0UpICYmIGRlZmluZWQoQ0ZHX0NTMl9NQVNLKSAmJiBkZWZpbmVkKENGR19DUzJfQ1RSTCkpCisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19DUzJfQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMl9NQVNLKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MyX0NUUkwpKQogCWdwaW8tPnBhcl9jcyB8PSBHUElPX1BBUl9DUzI7Ci0JZmJjcy0+Y3NhcjIgPSBDRkdfQ1MyX0JBU0U7Ci0JZmJjcy0+Y3NjcjIgPSBDRkdfQ1MyX0NUUkw7Ci0JZmJjcy0+Y3NtcjIgPSBDRkdfQ1MyX01BU0s7CisJZmJjcy0+Y3NhcjIgPSBDT05GSUdfU1lTX0NTMl9CQVNFOworCWZiY3MtPmNzY3IyID0gQ09ORklHX1NZU19DUzJfQ1RSTDsKKwlmYmNzLT5jc21yMiA9IENPTkZJR19TWVNfQ1MyX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzNfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MzX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTM19DVFJMKSkKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTM19CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MzX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzNfQ1RSTCkpCiAJZ3Bpby0+cGFyX2NzIHw9IEdQSU9fUEFSX0NTMzsKLQlmYmNzLT5jc2FyMyA9IENGR19DUzNfQkFTRTsKLQlmYmNzLT5jc2NyMyA9IENGR19DUzNfQ1RSTDsKLQlmYmNzLT5jc21yMyA9IENGR19DUzNfTUFTSzsKKwlmYmNzLT5jc2FyMyA9IENPTkZJR19TWVNfQ1MzX0JBU0U7CisJZmJjcy0+Y3NjcjMgPSBDT05GSUdfU1lTX0NTM19DVFJMOworCWZiY3MtPmNzbXIzID0gQ09ORklHX1NZU19DUzNfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTNF9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzRfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1M0X0NUUkwpKQorI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1M0X0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzRfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTNF9DVFJMKSkKIAlncGlvLT5wYXJfY3MgfD0gR1BJT19QQVJfQ1M0OwotCWZiY3MtPmNzYXI0ID0gQ0ZHX0NTNF9CQVNFOwotCWZiY3MtPmNzY3I0ID0gQ0ZHX0NTNF9DVFJMOwotCWZiY3MtPmNzbXI0ID0gQ0ZHX0NTNF9NQVNLOworCWZiY3MtPmNzYXI0ID0gQ09ORklHX1NZU19DUzRfQkFTRTsKKwlmYmNzLT5jc2NyNCA9IENPTkZJR19TWVNfQ1M0X0NUUkw7CisJZmJjcy0+Y3NtcjQgPSBDT05GSUdfU1lTX0NTNF9NQVNLOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQ1M1X0JBU0UpICYmIGRlZmluZWQoQ0ZHX0NTNV9NQVNLKSAmJiBkZWZpbmVkKENGR19DUzVfQ1RSTCkpCisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19DUzVfQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTNV9NQVNLKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1M1X0NUUkwpKQogCWdwaW8tPnBhcl9jcyB8PSBHUElPX1BBUl9DUzU7Ci0JZmJjcy0+Y3NhcjUgPSBDRkdfQ1M1X0JBU0U7Ci0JZmJjcy0+Y3NjcjUgPSBDRkdfQ1M1X0NUUkw7Ci0JZmJjcy0+Y3NtcjUgPSBDRkdfQ1M1X01BU0s7CisJZmJjcy0+Y3NhcjUgPSBDT05GSUdfU1lTX0NTNV9CQVNFOworCWZiY3MtPmNzY3I1ID0gQ09ORklHX1NZU19DUzVfQ1RSTDsKKwlmYmNzLT5jc21yNSA9IENPTkZJR19TWVNfQ1M1X01BU0s7CiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19GU0xfSTJDCkBAIC0xMjUsNyArMTI1LDcgQEAKIAl2b2xhdGlsZSBncGlvX3QgKmdwaW8gPSAoZ3Bpb190ICopIE1NQVBfR1BJTzsKIAogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWdwaW8tPnBhcl91YXJ0ID0gKEdQSU9fUEFSX1VBUlRfVFhEMCB8IEdQSU9fUEFSX1VBUlRfUlhEMCk7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvY3B1L21jZjUzMngvaW50ZXJydXB0cy5jIGIvY3B1L21jZjUzMngvaW50ZXJydXB0cy5jCmluZGV4IGZmNTBkN2QuLmQ2YzgyMDUgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1MzJ4L2ludGVycnVwdHMuYworKysgYi9jcHUvbWNmNTMyeC9pbnRlcnJ1cHRzLmMKQEAgLTI4LDcgKzI4LDcgQEAKIAogaW50IGludGVycnVwdF9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ0ZHX0lOVFJfQkFTRSk7CisJdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ09ORklHX1NZU19JTlRSX0JBU0UpOwogCiAJLyogTWFrZSBzdXJlIGFsbCBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCAqLwogCWludHAtPmltcmgwIHw9IDB4RkZGRkZGRkY7CkBAIC00MSw5ICs0MSw5IEBACiAjaWYgZGVmaW5lZChDT05GSUdfTUNGVE1SKQogdm9pZCBkdGltZXJfaW50cl9zZXR1cCh2b2lkKQogewotCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENGR19JTlRSX0JBU0UpOworCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENPTkZJR19TWVNfSU5UUl9CQVNFKTsKIAotCWludHAtPmljcjBbQ0ZHX1RNUklOVFJfTk9dID0gQ0ZHX1RNUklOVFJfUFJJOwotCWludHAtPmltcmgwICY9IH5DRkdfVE1SSU5UUl9NQVNLOworCWludHAtPmljcjBbQ09ORklHX1NZU19UTVJJTlRSX05PXSA9IENPTkZJR19TWVNfVE1SSU5UUl9QUkk7CisJaW50cC0+aW1yaDAgJj0gfkNPTkZJR19TWVNfVE1SSU5UUl9NQVNLOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9jcHUvbWNmNTMyeC9zcGVlZC5jIGIvY3B1L21jZjUzMngvc3BlZWQuYwppbmRleCBhMTFlNDI1Li4xZTQwMzc0IDEwMDY0NAotLS0gYS9jcHUvbWNmNTMyeC9zcGVlZC5jCisrKyBiL2NwdS9tY2Y1MzJ4L3NwZWVkLmMKQEAgLTE5Nyw3ICsxOTcsNyBAQAogCSAqLwogCiAJLyogc29mdHdhcmUgd29ya2Fyb3VuZCBmb3IgU0RSQU0gb3BlYXJ0aW9uIGFmdGVyIGV4aXRpbmcgTElNUCBtb2RlIGVycmF0YSAqLwotCSpzZHJhbV93b3JrYXJvdW5kID0gQ0ZHX1NEUkFNX0JBU0U7CisJKnNkcmFtX3dvcmthcm91bmQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAKIAkvKiB3YWl0IGZvciBEUVMgbG9naWMgdG8gcmVsb2NrICovCiAJZm9yIChpID0gMDsgaSA8IDB4MjAwOyBpKyspIDsKQEAgLTIxMCw3ICsyMTAsNyBAQAogICovCiBpbnQgZ2V0X2Nsb2Nrcyh2b2lkKQogewotCWdkLT5idXNfY2xrID0gY2xvY2tfcGxsKENGR19DTEsgLyAxMDAwLCAwKSAqIDEwMDA7CisJZ2QtPmJ1c19jbGsgPSBjbG9ja19wbGwoQ09ORklHX1NZU19DTEsgLyAxMDAwLCAwKSAqIDEwMDA7CiAJZ2QtPmNwdV9jbGsgPSAoZ2QtPmJ1c19jbGsgKiAzKTsKIAogI2lmZGVmIENPTkZJR19GU0xfSTJDCmRpZmYgLS1naXQgYS9jcHUvbWNmNTMyeC9zdGFydC5TIGIvY3B1L21jZjUzMngvc3RhcnQuUwppbmRleCBjODA2ZjdhLi43YTNlYjVmIDEwMDY0NAotLS0gYS9jcHUvbWNmNTMyeC9zdGFydC5TCisrKyBiL2NwdS9tY2Y1MzJ4L3N0YXJ0LlMKQEAgLTEyNywxMCArMTI3LDEwIEBACiAJbW92ZS53ICMweDI3MDAsJXNyCS8qIE1hc2sgb2ZmIEludGVycnVwdCAqLwogCiAJLyogU2V0IHZlY3RvciBiYXNlIHJlZ2lzdGVyIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIEZsYXNoICovCi0JbW92ZS5sCSNDRkdfRkxBU0hfQkFTRSwgJWQwCisJbW92ZS5sCSNDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICVkMAogCW1vdmVjCSVkMCwgJVZCUgogCi0JbW92ZS5sCSMoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfSU5JVF9SQU1fQ1RSTCksICVkMAorCW1vdmUubAkjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfSU5JVF9SQU1fQ1RSTCksICVkMAogCW1vdmVjCSVkMCwgJVJBTUJBUjEKIAogCS8qIGludmFsaWRhdGUgYW5kIGRpc2FibGUgY2FjaGUgKi8KQEAgLTE0MiwxNCArMTQyLDE0IEBACiAKIAkvKiBpbml0aWFsaXplIGdlbmVyYWwgdXNlIGludGVybmFsIHJhbSAqLwogCW1vdmUubCAjMCwgJWQwCi0JbW92ZS5sICMoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC04KSwgJWExCi0JbW92ZS5sICMoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC00KSwgJWEyCisJbW92ZS5sICMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTgpLCAlYTEKKwltb3ZlLmwgIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtNCksICVhMgogCW1vdmUubCAlZDAsICglYTEpCiAJbW92ZS5sICVkMCwgKCVhMikKIAogCS8qIHNldCBzdGFja3BvaW50ZXIgdG8gZW5kIG9mIGludGVybmFsIHJhbSB0byBnZXQgc29tZSBzdGFja3NwYWNlIGZvciB0aGUKIAkgICBmaXJzdCBjLWNvZGUgKi8KLQltb3ZlLmwJIyhDRkdfSU5JVF9SQU1fQUREUiArIENGR19JTklUX1NQX09GRlNFVCksICVzcAorCW1vdmUubAkjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQpLCAlc3AKIAljbHIubCAlc3BALQogCiAJbW92ZS5sICNfX2dvdF9zdGFydCwgJWE1CS8qIHB1dCByZWxvY2F0aW9uIHRhYmxlIGFkZHJlc3MgdG8gYTUgKi8KQEAgLTE4MCw3ICsxODAsNyBAQAogCW1vdmUubCAxMiglYTYpLCAlZDAJCS8qIFNhdmUgY29weSBvZiBHbG9iYWwgRGF0YSBwb2ludGVyICovCiAJbW92ZS5sIDE2KCVhNiksICVhMAkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KIAotCW1vdmUubCAjQ0ZHX01PTklUT1JfQkFTRSwgJWExCisJbW92ZS5sICNDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgJWExCiAJbW92ZS5sICNfX2luaXRfZW5kLCAlYTIKIAltb3ZlLmwgJWEwLCAlYTMKIApAQCAtMTk1LDcgKzE5NSw3IEBACiAgKiBpbml0aWFsaXphdGlvbiwgbm93IHJ1bm5pbmcgZnJvbSBSQU0uCiAgKi8KIAltb3ZlLmwJJWEwLCAlYTEKLQlhZGQubAkjKGluX3JhbSAtIENGR19NT05JVE9SX0JBU0UpLCAlYTEKKwlhZGQubAkjKGluX3JhbSAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwgJWExCiAJam1wCSglYTEpCiAKIGluX3JhbToKQEAgLTIwNSw5ICsyMDUsOSBAQAogCSAqIE5vdyBjbGVhciBCU1Mgc2VnbWVudAogCSAqLwogCW1vdmUubAklYTAsICVhMQotCWFkZC5sCSMoX3Nic3MgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTEKKwlhZGQubAkjKF9zYnNzIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMQogCW1vdmUubAklYTAsICVkMQotCWFkZC5sCSMoX2Vic3MgLSBDRkdfTU9OSVRPUl9CQVNFKSwlZDEKKwlhZGQubAkjKF9lYnNzIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVkMQogNjoKIAljbHIubAkoJWExKSsKIAljbXAubAklYTEsJWQxCkBAIC0yMTcsMTEgKzIxNywxMSBAQAogCSAqIGZpeCBnb3QgdGFibGUgaW4gUkFNCiAJICovCiAJbW92ZS5sCSVhMCwgJWExCi0JYWRkLmwJIyhfX2dvdF9zdGFydCAtIENGR19NT05JVE9SX0JBU0UpLCVhMQorCWFkZC5sCSMoX19nb3Rfc3RhcnQgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksJWExCiAJbW92ZS5sCSVhMSwlYTUJCS8qICogZml4IGdvdCBwb2ludGVyIHJlZ2lzdGVyIGE1ICovCiAKIAltb3ZlLmwJJWEwLCAlYTIKLQlhZGQubAkjKF9fZ290X2VuZCAtIENGR19NT05JVE9SX0JBU0UpLCVhMgorCWFkZC5sCSMoX19nb3RfZW5kIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMgogCiA3OgogCW1vdmUubAkoJWExKSwlZDEKQEAgLTIzMyw3ICsyMzMsNyBAQAogCiAJLyogY2FsY3VsYXRlIHJlbGF0aXZlIGp1bXAgdG8gYm9hcmRfaW5pdF9yIGluIHJhbSAqLwogCW1vdmUubCAlYTAsICVhMQotCWFkZC5sICMoYm9hcmRfaW5pdF9yIC0gQ0ZHX01PTklUT1JfQkFTRSksICVhMQorCWFkZC5sICMoYm9hcmRfaW5pdF9yIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCAlYTEKIAogCS8qIHNldCBwYXJhbWV0ZXJzIGZvciBib2FyZF9pbml0X3IgKi8KIAltb3ZlLmwgJWEwLC0oJXNwKQkJLyogZGVzdF9hZGRyICovCkBAIC0yNjgsMTQgKzI2OCwxNCBAQAogaWNhY2hlX2VuYWJsZToKIAltb3ZlLmwJIzB4MDEwMDAwMDAsICVkMAkJLyogSW52YWxpZGF0ZSBjYWNoZSBjbWQgKi8KIAltb3ZlYwklZDAsICVDQUNSCQkJLyogSW52YWxpZGF0ZSBjYWNoZSAqLwotCW1vdmUubAkjKENGR19TRFJBTV9CQVNFICsgMHgxYzAwMCksICVkMAorCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MWMwMDApLCAlZDAKIAltb3ZlYwklZDAsICVBQ1IwCQkJLyogRW5hYmxlIGNhY2hlICovCiAKIAltb3ZlLmwJIzB4ODAwMDAyMDAsICVkMAkJLyogU2V0dXAgY2FjaGUgbWFzayAqLwogCW1vdmVjCSVkMCwgJUNBQ1IJCQkvKiBFbmFibGUgY2FjaGUgKi8KIAlub3AKIAotCW1vdmUubCAjKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtOCksICVhMQorCW1vdmUubCAjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC04KSwgJWExCiAJbW92ZXEJIzEsICVkMAogCW1vdmUubAklZDAsICglYTEpCiAJcnRzCkBAIC0yODgsMTQgKzI4OCwxNCBAQAogCW1vdmVjCSVkMCwgJUFDUjAKIAltb3ZlYwklZDAsICVBQ1IxCiAKLQltb3ZlLmwgIyhDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELTgpLCAlYTEKKwltb3ZlLmwgIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtOCksICVhMQogCW1vdmVxCSMwLCAlZDAKIAltb3ZlLmwJJWQwLCAoJWExKQogCXJ0cwogCiAJLmdsb2JsCWljYWNoZV9zdGF0dXMKIGljYWNoZV9zdGF0dXM6Ci0JbW92ZS5sICMoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC04KSwgJWExCisJbW92ZS5sICMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTgpLCAlYTEKIAltb3ZlLmwJKCVhMSksICVkMAogCXJ0cwogCkBAIC0zMDcsNyArMzA3LDcgQEAKIAogCS5nbG9ibAlkY2FjaGVfZW5hYmxlCiBkY2FjaGVfZW5hYmxlOgotCW1vdmUubCAjKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtNCksICVhMQorCW1vdmUubCAjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC00KSwgJWExCiAJbW92ZXEJIzEsICVkMAogCW1vdmUubAklZDAsICglYTEpCiAJcnRzCkBAIC0zMTUsMTQgKzMxNSwxNCBAQAogICAgIC8qIE5vIGRjYWNoZSwganVzdCBhIGR1bW15IGZ1bmN0aW9uICovCiAJLmdsb2JsCWRjYWNoZV9kaXNhYmxlCiBkY2FjaGVfZGlzYWJsZToKLQltb3ZlLmwgIyhDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELTQpLCAlYTEKKwltb3ZlLmwgIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtNCksICVhMQogCW1vdmVxCSMwLCAlZDAKIAltb3ZlLmwJJWQwLCAoJWExKQogCXJ0cwogCiAJLmdsb2JsCWRjYWNoZV9zdGF0dXMKIGRjYWNoZV9zdGF0dXM6Ci0JbW92ZS5sICMoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC00KSwgJWExCisJbW92ZS5sICMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTQpLCAlYTEKIAltb3ZlLmwJKCVhMSksICVkMAogCXJ0cwogCmRpZmYgLS1naXQgYS9jcHUvbWNmNTQ0NXgvY3B1X2luaXQuYyBiL2NwdS9tY2Y1NDQ1eC9jcHVfaW5pdC5jCmluZGV4IDUxYTllOTAuLjUwYjQ1NjEgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1NDQ1eC9jcHVfaW5pdC5jCisrKyBiL2NwdS9tY2Y1NDQ1eC9jcHVfaW5pdC5jCkBAIC02Miw0MiArNjIsNDIgQEAKIAkgICAgR1BJT19QQVJfRkJDVExfVFNfVFM7CiAKICNpZiAhZGVmaW5lZChDT05GSUdfQ0ZfU0JGKQotI2lmIChkZWZpbmVkKENGR19DUzBfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MwX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTMF9DVFJMKSkKLQlmYmNzLT5jc2FyMCA9IENGR19DUzBfQkFTRTsKLQlmYmNzLT5jc2NyMCA9IENGR19DUzBfQ1RSTDsKLQlmYmNzLT5jc21yMCA9IENGR19DUzBfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTMF9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MwX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzBfQ1RSTCkpCisJZmJjcy0+Y3NhcjAgPSBDT05GSUdfU1lTX0NTMF9CQVNFOworCWZiY3MtPmNzY3IwID0gQ09ORklHX1NZU19DUzBfQ1RSTDsKKwlmYmNzLT5jc21yMCA9IENPTkZJR19TWVNfQ1MwX01BU0s7CiAjZW5kaWYKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTMV9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzFfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1MxX0NUUkwpKQorI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1MxX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzFfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMV9DVFJMKSkKIAkvKiBMYXRjaCBjaGlwc2VsZWN0ICovCi0JZmJjcy0+Y3NhcjEgPSBDRkdfQ1MxX0JBU0U7Ci0JZmJjcy0+Y3NjcjEgPSBDRkdfQ1MxX0NUUkw7Ci0JZmJjcy0+Y3NtcjEgPSBDRkdfQ1MxX01BU0s7CisJZmJjcy0+Y3NhcjEgPSBDT05GSUdfU1lTX0NTMV9CQVNFOworCWZiY3MtPmNzY3IxID0gQ09ORklHX1NZU19DUzFfQ1RSTDsKKwlmYmNzLT5jc21yMSA9IENPTkZJR19TWVNfQ1MxX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzJfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MyX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTMl9DVFJMKSkKLQlmYmNzLT5jc2FyMiA9IENGR19DUzJfQkFTRTsKLQlmYmNzLT5jc2NyMiA9IENGR19DUzJfQ1RSTDsKLQlmYmNzLT5jc21yMiA9IENGR19DUzJfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTMl9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MyX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzJfQ1RSTCkpCisJZmJjcy0+Y3NhcjIgPSBDT05GSUdfU1lTX0NTMl9CQVNFOworCWZiY3MtPmNzY3IyID0gQ09ORklHX1NZU19DUzJfQ1RSTDsKKwlmYmNzLT5jc21yMiA9IENPTkZJR19TWVNfQ1MyX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzNfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MzX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTM19DVFJMKSkKLQlmYmNzLT5jc2FyMyA9IENGR19DUzNfQkFTRTsKLQlmYmNzLT5jc2NyMyA9IENGR19DUzNfQ1RSTDsKLQlmYmNzLT5jc21yMyA9IENGR19DUzNfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTM19CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MzX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzNfQ1RSTCkpCisJZmJjcy0+Y3NhcjMgPSBDT05GSUdfU1lTX0NTM19CQVNFOworCWZiY3MtPmNzY3IzID0gQ09ORklHX1NZU19DUzNfQ1RSTDsKKwlmYmNzLT5jc21yMyA9IENPTkZJR19TWVNfQ1MzX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzRfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1M0X01BU0spICYmIGRlZmluZWQoQ0ZHX0NTNF9DVFJMKSkKLQlmYmNzLT5jc2FyNCA9IENGR19DUzRfQkFTRTsKLQlmYmNzLT5jc2NyNCA9IENGR19DUzRfQ1RSTDsKLQlmYmNzLT5jc21yNCA9IENGR19DUzRfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTNF9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1M0X01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzRfQ1RSTCkpCisJZmJjcy0+Y3NhcjQgPSBDT05GSUdfU1lTX0NTNF9CQVNFOworCWZiY3MtPmNzY3I0ID0gQ09ORklHX1NZU19DUzRfQ1RSTDsKKwlmYmNzLT5jc21yNCA9IENPTkZJR19TWVNfQ1M0X01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzVfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1M1X01BU0spICYmIGRlZmluZWQoQ0ZHX0NTNV9DVFJMKSkKLQlmYmNzLT5jc2FyNSA9IENGR19DUzVfQkFTRTsKLQlmYmNzLT5jc2NyNSA9IENGR19DUzVfQ1RSTDsKLQlmYmNzLT5jc21yNSA9IENGR19DUzVfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTNV9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1M1X01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzVfQ1RSTCkpCisJZmJjcy0+Y3NhcjUgPSBDT05GSUdfU1lTX0NTNV9CQVNFOworCWZiY3MtPmNzY3I1ID0gQ09ORklHX1NZU19DUzVfQ1RSTDsKKwlmYmNzLT5jc21yNSA9IENPTkZJR19TWVNfQ1M1X01BU0s7CiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19GU0xfSTJDCkBAIC0xMTMsMTEgKzExMywxMSBAQAogaW50IGNwdV9pbml0X3Iodm9pZCkKIHsKICNpZmRlZiBDT05GSUdfTUNGUlRDCi0Jdm9sYXRpbGUgcnRjX3QgKnJ0YyA9ICh2b2xhdGlsZSBydGNfdCAqKShDRkdfTUNGUlRDX0JBU0UpOworCXZvbGF0aWxlIHJ0Y190ICpydGMgPSAodm9sYXRpbGUgcnRjX3QgKikoQ09ORklHX1NZU19NQ0ZSVENfQkFTRSk7CiAJdm9sYXRpbGUgcnRjZXhfdCAqcnRjZXggPSAodm9sYXRpbGUgcnRjZXhfdCAqKSZydGMtPmV4dGVuZGVkOwogCi0JcnRjZXgtPmdvY3UgPSAoQ0ZHX1JUQ19PU0NJTExBVE9SID4+IDE2KSAmIDB4RkZGRjsKLQlydGNleC0+Z29jbCA9IENGR19SVENfT1NDSUxMQVRPUiAmIDB4RkZGRjsKKwlydGNleC0+Z29jdSA9IChDT05GSUdfU1lTX1JUQ19PU0NJTExBVE9SID4+IDE2KSAmIDB4RkZGRjsKKwlydGNleC0+Z29jbCA9IENPTkZJR19TWVNfUlRDX09TQ0lMTEFUT1IgJiAweEZGRkY7CiAjZW5kaWYKIAogCXJldHVybiAoMCk7CkBAIC0xMjgsNyArMTI4LDcgQEAKIAl2b2xhdGlsZSBncGlvX3QgKmdwaW8gPSAoZ3Bpb190ICopIE1NQVBfR1BJTzsKIAogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWdwaW8tPnBhcl91YXJ0ID0KIAkJICAgIChHUElPX1BBUl9VQVJUX1UwVFhEX1UwVFhEIHwgR1BJT19QQVJfVUFSVF9VMFJYRF9VMFJYRCk7CmRpZmYgLS1naXQgYS9jcHUvbWNmNTQ0NXgvZHNwaS5jIGIvY3B1L21jZjU0NDV4L2RzcGkuYwppbmRleCA5NTlkNmJkLi42ZDNlYmFiIDEwMDY0NAotLS0gYS9jcHUvbWNmNTQ0NXgvZHNwaS5jCisrKyBiL2NwdS9tY2Y1NDQ1eC9kc3BpLmMKQEAgLTQ3LDI5ICs0NywyOSBAQAogCSAgICBEU1BJX0RNQ1JfQ1NJUzIgfCBEU1BJX0RNQ1JfQ1NJUzEgfCBEU1BJX0RNQ1JfQ1NJUzAgfAogCSAgICBEU1BJX0RNQ1JfQ1JYRiB8IERTUElfRE1DUl9DVFhGOwogCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVIwCi0JZHNwaS0+ZGN0YXIwID0gQ0ZHX0RTUElfRENUQVIwOworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjAKKwlkc3BpLT5kY3RhcjAgPSBDT05GSUdfU1lTX0RTUElfRENUQVIwOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVIxCi0JZHNwaS0+ZGN0YXIxID0gQ0ZHX0RTUElfRENUQVIxOworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjEKKwlkc3BpLT5kY3RhcjEgPSBDT05GSUdfU1lTX0RTUElfRENUQVIxOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVIyCi0JZHNwaS0+ZGN0YXIyID0gQ0ZHX0RTUElfRENUQVIyOworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjIKKwlkc3BpLT5kY3RhcjIgPSBDT05GSUdfU1lTX0RTUElfRENUQVIyOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVIzCi0JZHNwaS0+ZGN0YXIzID0gQ0ZHX0RTUElfRENUQVIzOworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjMKKwlkc3BpLT5kY3RhcjMgPSBDT05GSUdfU1lTX0RTUElfRENUQVIzOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVI0Ci0JZHNwaS0+ZGN0YXI0ID0gQ0ZHX0RTUElfRENUQVI0OworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjQKKwlkc3BpLT5kY3RhcjQgPSBDT05GSUdfU1lTX0RTUElfRENUQVI0OwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVI1Ci0JZHNwaS0+ZGN0YXI1ID0gQ0ZHX0RTUElfRENUQVI1OworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjUKKwlkc3BpLT5kY3RhcjUgPSBDT05GSUdfU1lTX0RTUElfRENUQVI1OwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVI2Ci0JZHNwaS0+ZGN0YXI2ID0gQ0ZHX0RTUElfRENUQVI2OworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjYKKwlkc3BpLT5kY3RhcjYgPSBDT05GSUdfU1lTX0RTUElfRENUQVI2OwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVI3Ci0JZHNwaS0+ZGN0YXI3ID0gQ0ZHX0RTUElfRENUQVI3OworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjcKKwlkc3BpLT5kY3RhcjcgPSBDT05GSUdfU1lTX0RTUElfRENUQVI3OwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL2NwdS9tY2Y1NDQ1eC9pbnRlcnJ1cHRzLmMgYi9jcHUvbWNmNTQ0NXgvaW50ZXJydXB0cy5jCmluZGV4IDk1NzJhN2IuLjg1ODI4YTYgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1NDQ1eC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L21jZjU0NDV4L2ludGVycnVwdHMuYwpAQCAtMzEsNyArMzEsNyBAQAogCiBpbnQgaW50ZXJydXB0X2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbnQwX3QgKmludHAgPSAoaW50MF90ICopIChDRkdfSU5UUl9CQVNFKTsKKwl2b2xhdGlsZSBpbnQwX3QgKmludHAgPSAoaW50MF90ICopIChDT05GSUdfU1lTX0lOVFJfQkFTRSk7CiAKIAkvKiBNYWtlIHN1cmUgYWxsIGludGVycnVwdHMgYXJlIGRpc2FibGVkICovCiAJaW50cC0+aW1yaDAgfD0gMHhGRkZGRkZGRjsKQEAgLTQ0LDkgKzQ0LDkgQEAKICNpZiBkZWZpbmVkKENPTkZJR19NQ0ZUTVIpCiB2b2lkIGR0aW1lcl9pbnRyX3NldHVwKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ0ZHX0lOVFJfQkFTRSk7CisJdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ09ORklHX1NZU19JTlRSX0JBU0UpOwogCi0JaW50cC0+aWNyMFtDRkdfVE1SSU5UUl9OT10gPSBDRkdfVE1SSU5UUl9QUkk7Ci0JaW50cC0+aW1yaDAgJj0gfkNGR19UTVJJTlRSX01BU0s7CisJaW50cC0+aWNyMFtDT05GSUdfU1lTX1RNUklOVFJfTk9dID0gQ09ORklHX1NZU19UTVJJTlRSX1BSSTsKKwlpbnRwLT5pbXJoMCAmPSB+Q09ORklHX1NZU19UTVJJTlRSX01BU0s7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NwdS9tY2Y1NDQ1eC9wY2kuYyBiL2NwdS9tY2Y1NDQ1eC9wY2kuYwppbmRleCAwMzk4NDY5Li5jNGEzYjA1IDEwMDY0NAotLS0gYS9jcHUvbWNmNTQ0NXgvcGNpLmMKKysrIGIvY3B1L21jZjU0NDV4L3BjaS5jCkBAIC0zMSw5ICszMSw5IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAvKiBTeXN0ZW0gUkFNIG1hcHBlZCBvdmVyIFBDSSAqLwotI2RlZmluZSBDRkdfUENJX1NZU19NRU1fQlVTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfU1lTX01FTV9QSFlTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfU1lTX01FTV9TSVpFCSgxMDI0ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NZU19NRU1fQlVTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TWVNfTUVNX1BIWVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NZU19NRU1fU0laRQkoMTAyNCAqIDEwMjQgKiAxMDI0KQogCiAjZGVmaW5lIGNmZ19yZWFkKHZhbCwgYWRkciwgdHlwZSwgb3ApCQkqdmFsID0gb3AoKHR5cGUpKGFkZHIpKTsKICNkZWZpbmUgY2ZnX3dyaXRlKHZhbCwgYWRkciwgdHlwZSwgb3ApCQlvcCgodHlwZSAqKShhZGRyKSwgKHZhbCkpOwpAQCAtODAsOSArODAsOSBAQAogCXBjaS0+dGNyMSB8PSBQQ0lfVENSMV9QOwogCiAJLyogSW5pdGlhdG9yIHdpbmRvd3MgKi8KLQlwY2ktPml3MGJ0YXIgPSBDRkdfUENJX01FTV9QSFlTIHwgKENGR19QQ0lfTUVNX1BIWVMgPj4gMTYpOwotCXBjaS0+aXcxYnRhciA9IENGR19QQ0lfSU9fUEhZUyB8IChDRkdfUENJX0lPX1BIWVMgPj4gMTYpOwotCXBjaS0+aXcyYnRhciA9IENGR19QQ0lfQ0ZHX1BIWVMgfCAoQ0ZHX1BDSV9DRkdfUEhZUyA+PiAxNik7CisJcGNpLT5pdzBidGFyID0gQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgfCAoQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgPj4gMTYpOworCXBjaS0+aXcxYnRhciA9IENPTkZJR19TWVNfUENJX0lPX1BIWVMgfCAoQ09ORklHX1NZU19QQ0lfSU9fUEhZUyA+PiAxNik7CisJcGNpLT5pdzJidGFyID0gQ09ORklHX1NZU19QQ0lfQ0ZHX1BIWVMgfCAoQ09ORklHX1NZU19QQ0lfQ0ZHX1BIWVMgPj4gMTYpOwogCiAJcGNpLT5pd2NyID0KIAkgICAgUENJX0lXQ1JfVzBDX0VOIHwgUENJX0lXQ1JfVzFDX0VOIHwgUENJX0lXQ1JfVzFDX0lPIHwKQEAgLTk3LDM0ICs5NywzNCBAQAogCXBjaS0+Y3IxID0gUENJX0NSMV9DTFMoOCkgfCBQQ0lfQ1IxX0xUTVIoMHhGOCk7CiAJcGNpLT5jcjIgPSAwOwogCi0jaWZkZWYgQ0ZHX1BDSV9CQVIwCi0JcGNpLT5iYXIwID0gUENJX0JBUl9CQVIwKENGR19QQ0lfQkFSMCk7Ci0JcGNpLT50YmF0cjAgPSBDRkdfUENJX1RCQVRSMCB8IFBDSV9UQkFUUl9FTjsKKyNpZmRlZiBDT05GSUdfU1lTX1BDSV9CQVIwCisJcGNpLT5iYXIwID0gUENJX0JBUl9CQVIwKENPTkZJR19TWVNfUENJX0JBUjApOworCXBjaS0+dGJhdHIwID0gQ09ORklHX1NZU19QQ0lfVEJBVFIwIHwgUENJX1RCQVRSX0VOOwogCWJhckVuIHw9IFBDSV9UQ1IyX0IwRTsKICNlbmRpZgotI2lmZGVmIENGR19QQ0lfQkFSMQotCXBjaS0+YmFyMSA9IFBDSV9CQVJfQkFSMShDRkdfUENJX0JBUjEpOwotCXBjaS0+dGJhdHIxID0gQ0ZHX1BDSV9UQkFUUjEgfCBQQ0lfVEJBVFJfRU47CisjaWZkZWYgQ09ORklHX1NZU19QQ0lfQkFSMQorCXBjaS0+YmFyMSA9IFBDSV9CQVJfQkFSMShDT05GSUdfU1lTX1BDSV9CQVIxKTsKKwlwY2ktPnRiYXRyMSA9IENPTkZJR19TWVNfUENJX1RCQVRSMSB8IFBDSV9UQkFUUl9FTjsKIAliYXJFbiB8PSBQQ0lfVENSMl9CMUU7CiAjZW5kaWYKLSNpZmRlZiBDRkdfUENJX0JBUjIKLQlwY2ktPmJhcjIgPSBQQ0lfQkFSX0JBUjIoQ0ZHX1BDSV9CQVIyKTsKLQlwY2ktPnRiYXRyMiA9IENGR19QQ0lfVEJBVFIyIHwgUENJX1RCQVRSX0VOOworI2lmZGVmIENPTkZJR19TWVNfUENJX0JBUjIKKwlwY2ktPmJhcjIgPSBQQ0lfQkFSX0JBUjIoQ09ORklHX1NZU19QQ0lfQkFSMik7CisJcGNpLT50YmF0cjIgPSBDT05GSUdfU1lTX1BDSV9UQkFUUjIgfCBQQ0lfVEJBVFJfRU47CiAJYmFyRW4gfD0gUENJX1RDUjJfQjJFOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX1BDSV9CQVIzCi0JcGNpLT5iYXIzID0gUENJX0JBUl9CQVIzKENGR19QQ0lfQkFSMyk7Ci0JcGNpLT50YmF0cjMgPSBDRkdfUENJX1RCQVRSMyB8IFBDSV9UQkFUUl9FTjsKKyNpZmRlZiBDT05GSUdfU1lTX1BDSV9CQVIzCisJcGNpLT5iYXIzID0gUENJX0JBUl9CQVIzKENPTkZJR19TWVNfUENJX0JBUjMpOworCXBjaS0+dGJhdHIzID0gQ09ORklHX1NZU19QQ0lfVEJBVFIzIHwgUENJX1RCQVRSX0VOOwogCWJhckVuIHw9IFBDSV9UQ1IyX0IzRTsKICNlbmRpZgotI2lmZGVmIENGR19QQ0lfQkFSNAotCXBjaS0+YmFyNCA9IFBDSV9CQVJfQkFSNChDRkdfUENJX0JBUjQpOwotCXBjaS0+dGJhdHI0ID0gQ0ZHX1BDSV9UQkFUUjQgfCBQQ0lfVEJBVFJfRU47CisjaWZkZWYgQ09ORklHX1NZU19QQ0lfQkFSNAorCXBjaS0+YmFyNCA9IFBDSV9CQVJfQkFSNChDT05GSUdfU1lTX1BDSV9CQVI0KTsKKwlwY2ktPnRiYXRyNCA9IENPTkZJR19TWVNfUENJX1RCQVRSNCB8IFBDSV9UQkFUUl9FTjsKIAliYXJFbiB8PSBQQ0lfVENSMl9CNEU7CiAjZW5kaWYKLSNpZmRlZiBDRkdfUENJX0JBUjUKLQlwY2ktPmJhcjUgPSBQQ0lfQkFSX0JBUjUoQ0ZHX1BDSV9CQVI1KTsKLQlwY2ktPnRiYXRyNSA9IENGR19QQ0lfVEJBVFI1IHwgUENJX1RCQVRSX0VOOworI2lmZGVmIENPTkZJR19TWVNfUENJX0JBUjUKKwlwY2ktPmJhcjUgPSBQQ0lfQkFSX0JBUjUoQ09ORklHX1NZU19QQ0lfQkFSNSk7CisJcGNpLT50YmF0cjUgPSBDT05GSUdfU1lTX1BDSV9UQkFUUjUgfCBQQ0lfVEJBVFJfRU47CiAJYmFyRW4gfD0gUENJX1RDUjJfQjVFOwogI2VuZGlmCiAKQEAgLTEzOCwyMCArMTM4LDIwIEBACiAJaG9zZS0+Zmlyc3RfYnVzbm8gPSAwOwogCWhvc2UtPmxhc3RfYnVzbm8gPSAweGZmOwogCi0JcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsIENGR19QQ0lfTUVNX0JVUywgQ0ZHX1BDSV9NRU1fUEhZUywKLQkJICAgICAgIENGR19QQ0lfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKKwlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwgQ09ORklHX1NZU19QQ0lfTUVNX0JVUywgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOwogCi0JcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsIENGR19QQ0lfSU9fQlVTLCBDRkdfUENJX0lPX1BIWVMsCi0JCSAgICAgICBDRkdfUENJX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOworCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLCBDT05GSUdfU1lTX1BDSV9JT19CVVMsIENPTkZJR19TWVNfUENJX0lPX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKIAotCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLCBDRkdfUENJX1NZU19NRU1fQlVTLAotCQkgICAgICAgQ0ZHX1BDSV9TWVNfTUVNX1BIWVMsIENGR19QQ0lfU1lTX01FTV9TSVpFLAorCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLCBDT05GSUdfU1lTX1BDSV9TWVNfTUVNX0JVUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJX1NZU19NRU1fUEhZUywgQ09ORklHX1NZU19QQ0lfU1lTX01FTV9TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAlob3NlLT5yZWdpb25fY291bnQgPSAzOwogCiAJaG9zZS0+Y2ZnX2FkZHIgPSAmKHBjaS0+Y2FyKTsKLQlob3NlLT5jZmdfZGF0YSA9ICh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopQ0ZHX1BDSV9DRkdfQlVTOworCWhvc2UtPmNmZ19kYXRhID0gKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKilDT05GSUdfU1lTX1BDSV9DRkdfQlVTOwogCiAJcGNpX3NldF9vcHMoaG9zZSwgcGNpX3JlYWRfY2ZnX2J5dGUsIHBjaV9yZWFkX2NmZ193b3JkLAogCQkgICAgcGNpX3JlYWRfY2ZnX2R3b3JkLCBwY2lfd3JpdGVfY2ZnX2J5dGUsIHBjaV93cml0ZV9jZmdfd29yZCwKZGlmZiAtLWdpdCBhL2NwdS9tY2Y1NDQ1eC9zcGVlZC5jIGIvY3B1L21jZjU0NDV4L3NwZWVkLmMKaW5kZXggNjcxMWExZC4uOWMwYzA3NyAxMDA2NDQKLS0tIGEvY3B1L21jZjU0NDV4L3NwZWVkLmMKKysrIGIvY3B1L21jZjU0NDV4L3NwZWVkLmMKQEAgLTk0LDcgKzk0LDcgQEAKIAl1MTYgZmJwbGxfbWFzazsKIAogI2lmZGVmIENPTkZJR19NNTQ0NTVFVkIKLQl2b2xhdGlsZSB1OCAqY3BsZCA9ICh2b2xhdGlsZSB1OCAqKShDRkdfQ1MyX0JBU0UgKyAzKTsKKwl2b2xhdGlsZSB1OCAqY3BsZCA9ICh2b2xhdGlsZSB1OCAqKShDT05GSUdfU1lTX0NTMl9CQVNFICsgMyk7CiAjZW5kaWYKIAl1OCBib290bW9kZTsKIApAQCAtMTQ1LDcgKzE0NSw3IEBACiAKIAlpZiAoYm9vdG1vZGUgPT0gMCkgewogCQkvKiBSQ09OIG1vZGUgKi8KLQkJdmNvID0gcFBsbG11bHRbY2NtLT5yY29uICYgZmJwbGxfbWFza10gKiBDRkdfSU5QVVRfQ0xLU1JDOworCQl2Y28gPSBwUGxsbXVsdFtjY20tPnJjb24gJiBmYnBsbF9tYXNrXSAqIENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDOwogCiAJCWlmICgodmNvIDwgQ0xPQ0tfUExMX0ZWQ09fTUlOKSB8fCAodmNvID4gQ0xPQ0tfUExMX0ZWQ09fTUFYKSkgewogCQkJLyogaW52YWlsZCByYW5nZSwgcmUtc2V0IGluIFBDUiAqLwpAQCAtMTU0LDcgKzE1NCw3IEBACiAKIAkJCWogPSAocGxsLT5wY3IgJiAweEZGMDAwMDAwKSA+PiAyNDsKIAkJCWZvciAoaSA9IGo7IGkgPCAweEZGOyBpKyspIHsKLQkJCQl2Y28gPSBpICogQ0ZHX0lOUFVUX0NMS1NSQzsKKwkJCQl2Y28gPSBpICogQ09ORklHX1NZU19JTlBVVF9DTEtTUkM7CiAJCQkJaWYgKHZjbyA+PSBDTE9DS19QTExfRlZDT19NSU4pIHsKIAkJCQkJYnVzID0gdmNvIC8gdGVtcDsKIAkJCQkJaWYgKGJ1cyA8PSBDTE9DS19QTExfRlNZU19NSU4gLSBNSFopCkBAIC0xNzIsMjUgKzE3MiwyNSBAQAogCQlnZC0+dmNvX2NsayA9IHZjbzsJLyogVmNvIGNsb2NrICovCiAJfSBlbHNlIGlmIChib290bW9kZSA9PSAyKSB7CiAJCS8qIE5vcm1hbCBtb2RlICovCi0JCXZjbyA9ICAoKHBsbC0+cGNyICYgMHhGRjAwMDAwMCkgPj4gMjQpICogQ0ZHX0lOUFVUX0NMS1NSQzsKKwkJdmNvID0gICgocGxsLT5wY3IgJiAweEZGMDAwMDAwKSA+PiAyNCkgKiBDT05GSUdfU1lTX0lOUFVUX0NMS1NSQzsKIAkJaWYgKCh2Y28gPCBDTE9DS19QTExfRlZDT19NSU4pIHx8ICh2Y28gPiBDTE9DS19QTExfRlZDT19NQVgpKSB7CiAJCQkvKiBEZWZhdWx0IHZhbHVlICovCiAJCQlwY3J2YWx1ZSA9IChwbGwtPnBjciAmIDB4MDBGRkZGRkYpOwogCQkJcGNydmFsdWUgfD0gcFBsbG11bHRbY2NtLT5jY3IgJiBmYnBsbF9tYXNrXSA8PCAyNDsKIAkJCXBsbC0+cGNyID0gcGNydmFsdWU7Ci0JCQl2Y28gPSAgKChwbGwtPnBjciAmIDB4RkYwMDAwMDApID4+IDI0KSAqIENGR19JTlBVVF9DTEtTUkM7CisJCQl2Y28gPSAgKChwbGwtPnBjciAmIDB4RkYwMDAwMDApID4+IDI0KSAqIENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDOwogCQl9CiAJCWdkLT52Y29fY2xrID0gdmNvOwkvKiBWY28gY2xvY2sgKi8KIAl9IGVsc2UgaWYgKGJvb3Rtb2RlID09IDMpIHsKIAkJLyogc2VyaWFsIG1vZGUgKi8KLQkJdmNvID0gICgocGxsLT5wY3IgJiAweEZGMDAwMDAwKSA+PiAyNCkgKiBDRkdfSU5QVVRfQ0xLU1JDOworCQl2Y28gPSAgKChwbGwtPnBjciAmIDB4RkYwMDAwMDApID4+IDI0KSAqIENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDOwogCQlnZC0+dmNvX2NsayA9IHZjbzsJLyogVmNvIGNsb2NrICovCiAJfQogCiAJaWYgKChjY20tPmNjciAmIENDTV9NSVNDQ1JfTElNUCkgPT0gQ0NNX01JU0NDUl9MSU1QKSB7CiAJCS8qIExpbXAgbW9kZSAqLwogCX0gZWxzZSB7Ci0JCWdkLT5pbnBfY2xrID0gQ0ZHX0lOUFVUX0NMS1NSQzsJLyogSW5wdXQgY2xvY2sgKi8KKwkJZ2QtPmlucF9jbGsgPSBDT05GSUdfU1lTX0lOUFVUX0NMS1NSQzsJLyogSW5wdXQgY2xvY2sgKi8KIAogCQl0ZW1wID0gKHBsbC0+cGNyICYgUExMX1BDUl9PVVRESVYxX01BU0spICsgMTsKIAkJZ2QtPmNwdV9jbGsgPSB2Y28gLyB0ZW1wOwkvKiBjcHUgY2xvY2sgKi8KZGlmZiAtLWdpdCBhL2NwdS9tY2Y1NDQ1eC9zdGFydC5TIGIvY3B1L21jZjU0NDV4L3N0YXJ0LlMKaW5kZXggMmE2MDE5Yi4uNjFlNDNmZiAxMDA2NDQKLS0tIGEvY3B1L21jZjU0NDV4L3N0YXJ0LlMKKysrIGIvY3B1L21jZjU0NDV4L3N0YXJ0LlMKQEAgLTI5LDkgKzI5LDkgQEAKICNlbmRpZgogCiAvKiBsYXN0IHRocmVlIGxvbmcgd29yZCByZXNlcnZlZCBmb3IgY2FjaGUgc3RhdHVzICovCi0jZGVmaW5lIENBQ1JfU1RBVFVTCShDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELTEyKQotI2RlZmluZSBJQ0FDSEVfU1RBVFVTCShDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELSA4KQotI2RlZmluZSBEQ0FDSEVfU1RBVFVTCShDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELSA0KQorI2RlZmluZSBDQUNSX1NUQVRVUwkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTEyKQorI2RlZmluZSBJQ0FDSEVfU1RBVFVTCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtIDgpCisjZGVmaW5lIERDQUNIRV9TVEFUVVMJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC0gNCkKIAogI2RlZmluZSBfU1RBUlQJX3N0YXJ0CiAjZGVmaW5lIF9GQVVMVAlfZmF1bHQKQEAgLTQ3LDggKzQ3LDggQEAKIAlydGU7CiAKICNpZiBkZWZpbmVkKENPTkZJR19DRl9TQkYpCi0jZGVmaW5lIEFTTV9EUkFNSU5JVAkoYXNtX2RyYW1faW5pdCAtIFRFWFRfQkFTRSArIENGR19JTklUX1JBTV9BRERSKQotI2RlZmluZSBBU01fU0JGX0lNR19IRFIJKGFzbV9zYmZfaW1nX2hkciAtIFRFWFRfQkFTRSArIENGR19JTklUX1JBTV9BRERSKQorI2RlZmluZSBBU01fRFJBTUlOSVQJKGFzbV9kcmFtX2luaXQgLSBURVhUX0JBU0UgKyBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIpCisjZGVmaW5lIEFTTV9TQkZfSU1HX0hEUgkoYXNtX3NiZl9pbWdfaGRyIC0gVEVYVF9CQVNFICsgQ09ORklHX1NZU19JTklUX1JBTV9BRERSKQogI2VuZGlmCiAKIC50ZXh0CkBAIC0xNDksMTggKzE0OSwxOCBAQAogCS5sb25nCVRFWFRfQkFTRQkvKiBpbWFnZSB0byBiZSByZWxvY2F0ZWQgYXQgKi8KIAogYXNtX2RyYW1faW5pdDoKLQltb3ZlLmwJIyhDRkdfSU5JVF9SQU1fQUREUiArIENGR19JTklUX1JBTV9DVFJMKSwgJWQwCisJbW92ZS5sCSMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19JTklUX1JBTV9DVFJMKSwgJWQwCiAJbW92ZWMJJWQwLCAlUkFNQkFSMQkvKiBpbml0IFJhbWJhciAqLwotCW1vdmUubAkjKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0lOSVRfU1BfT0ZGU0VUKSwgJXNwCisJbW92ZS5sCSMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCksICVzcAogCWNsci5sICVzcEAtCiAKIAkvKiBNdXN0IGRpc2FibGUgZ2xvYmFsIGFkZHJlc3MgKi8KIAltb3ZlLmwJIzB4RkMwMDgwMDAsICVhMQotCW1vdmUubAkjKENGR19DUzBfQkFTRSksICglYTEpCisJbW92ZS5sCSMoQ09ORklHX1NZU19DUzBfQkFTRSksICglYTEpCiAJbW92ZS5sCSMweEZDMDA4MDA4LCAlYTEKLQltb3ZlLmwJIyhDRkdfQ1MwX0NUUkwpLCAoJWExKQorCW1vdmUubAkjKENPTkZJR19TWVNfQ1MwX0NUUkwpLCAoJWExKQogCW1vdmUubAkjMHhGQzAwODAwNCwgJWExCi0JbW92ZS5sCSMoQ0ZHX0NTMF9NQVNLKSwgKCVhMSkKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0NTMF9NQVNLKSwgKCVhMSkKIAogCS8qCiAJICogRHJhbSBJbml0aWFsaXphdGlvbgpAQCAtMTY4LDcgKzE2OCw3IEBACiAJICovCiAJLyogbXNjciBzZHJhbSAqLwogCW1vdmUubAkjMHhGQzBBNDA3NCwgJWExCi0JbW92ZS5iCSMoQ0ZHX1NEUkFNX0RSVl9TVFJFTkdUSCksICglYTEpCisJbW92ZS5iCSMoQ09ORklHX1NZU19TRFJBTV9EUlZfU1RSRU5HVEgpLCAoJWExKQogCW5vcAogCiAJLyogU0RSQU0gQ2hpcCAwIGFuZCAxICovCkBAIC0xNzcsOCArMTc3LDggQEAKIAogCS8qIGNhbGN1bGF0ZSB0aGUgc2l6ZSAqLwogCW1vdmUubAkjMHgxMywgJWQxCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX1NJWkUpLCAlZDIKLSNpZmRlZiBDRkdfU0RSQU1fQkFTRTEKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX1NJWkUpLCAlZDIKKyNpZmRlZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UxCiAJbHNyLmwJIzEsICVkMgogI2VuZGlmCiAKQEAgLTE4OSwyMCArMTg5LDIwIEBACiAJYm5lCWRyYW1zel9sb29wCiAKIAkvKiBTRFJBTSBDaGlwIDAgYW5kIDEgKi8KLQltb3ZlLmwJIyhDRkdfU0RSQU1fQkFTRSksICglYTEpCisJbW92ZS5sCSMoQ09ORklHX1NZU19TRFJBTV9CQVNFKSwgKCVhMSkKIAlvci5sCSVkMSwgKCVhMSkKLSNpZmRlZiBDRkdfU0RSQU1fQkFTRTEKLQltb3ZlLmwJIyhDRkdfU0RSQU1fQkFTRTEpLCAoJWEyKQorI2lmZGVmIENPTkZJR19TWVNfU0RSQU1fQkFTRTEKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0JBU0UxKSwgKCVhMikKIAlvci5sCSVkMSwgKCVhMikKICNlbmRpZgogCW5vcAogCiAJLyogZHJhbSBjZmcxIGFuZCBjZmcyICovCiAJbW92ZS5sCSMweEZDMEI4MDA4LCAlYTEKLQltb3ZlLmwJIyhDRkdfU0RSQU1fQ0ZHMSksICglYTEpCisJbW92ZS5sCSMoQ09ORklHX1NZU19TRFJBTV9DRkcxKSwgKCVhMSkKIAlub3AKIAltb3ZlLmwJIzB4RkMwQjgwMEMsICVhMgotCW1vdmUubAkjKENGR19TRFJBTV9DRkcyKSwgKCVhMikKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0NGRzIpLCAoJWEyKQogCW5vcAogCiAJbW92ZS5sCSMweEZDMEI4MDAwLCAlYTEJLyogTW9kZSAqLwpAQCAtMjEwLDEzICsyMTAsMTMgQEAKIAogI2lmZGVmIENPTkZJR19NNTQ0NTVFVkIKIAkvKiBJc3N1ZSBQQUxMICovCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX0NUUkwgKyAyKSwgKCVhMikKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0NUUkwgKyAyKSwgKCVhMikKIAlub3AKIAogCS8qIElzc3VlIExFTVIgKi8KLQltb3ZlLmwJIyhDRkdfU0RSQU1fRU1PRCArIDB4NDA4KSwgKCVhMSkKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0VNT0QgKyAweDQwOCksICglYTEpCiAJbm9wCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX01PREUgKyAweDMwMCksICglYTEpCisJbW92ZS5sCSMoQ09ORklHX1NZU19TRFJBTV9NT0RFICsgMHgzMDApLCAoJWExKQogCW5vcAogCiAJbW92ZS5sCSMxMDAwLCAlZDAKQEAgLTIyNywyNCArMjI3LDI0IEBACiAjZW5kaWYKIAogCS8qIElzc3VlIFBBTEwgKi8KLQltb3ZlLmwJIyhDRkdfU0RSQU1fQ1RSTCArIDIpLCAoJWEyKQorCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fQ1RSTCArIDIpLCAoJWEyKQogCW5vcAogCiAJLyogUGVyZm9ybSB0d28gcmVmcmVzaCBjeWNsZXMgKi8KLQltb3ZlLmwJIyhDRkdfU0RSQU1fQ1RSTCArIDQpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0NUUkwgKyA0KSwgJWQwCiAJbm9wCiAJbW92ZS5sCSVkMCwgKCVhMikKIAltb3ZlLmwJJWQwLCAoJWEyKQogCW5vcAogCiAjaWZkZWYgQ09ORklHX001NDQ1NUVWQgotCW1vdmUubAkjKENGR19TRFJBTV9NT0RFICsgMHgyMDApLCAoJWExKQorCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fTU9ERSArIDB4MjAwKSwgKCVhMSkKIAlub3AKICNlbGlmIGRlZmluZWQoQ09ORklHX001NDQ1MUVWQikKIAkvKiBJc3N1ZSBMRU1SICovCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX01PREUpLCAoJWEyKQorCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fTU9ERSksICglYTIpCiAJbm9wCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX0VNT0QpLCAoJWEyKQorCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fRU1PRCksICglYTIpCiAJbm9wCiAjZW5kaWYKIApAQCAtMjU0LDcgKzI1NCw3IEBACiAJc3VicS5sCSMxLCAlZDAKIAlibmUJd2FpdDUwMAogCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX0NUUkwpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0NUUkwpLCAlZDAKIAlhbmQubAkjMHg3RkZGRkZGRiwgJWQwCiAjaWZkZWYgQ09ORklHX001NDQ1NUVWQgogCW9yLmwJIzB4MTAwMDBjMDAsICVkMApAQCAtMjkwLDggKzI5MCw4IEBACiAJbW92ZS5sCSglYTEpKywgJWQ1CiAJbW92ZS5sCSglYTEpLCAlYTQKIAotCW1vdmUubAkjKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX1NCRkhEUl9EQVRBX09GRlNFVCksICVhMAotCW1vdmUubAkjKENGR19TQkZIRFJfU0laRSksICVkNAorCW1vdmUubAkjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfU0JGSERSX0RBVEFfT0ZGU0VUKSwgJWEwCisJbW92ZS5sCSMoQ09ORklHX1NZU19TQkZIRFJfU0laRSksICVkNAogCiAJbW92ZS5sCSMweEZDMDVDMDJDLCAlYTEJLyogZHNwaSBzdGF0dXMgKi8KIApAQCAtMzgxLDEwICszODEsMTAgQEAKIAltb3ZlLmwJI1RFWFRfQkFTRSwgJWQwCiAJbW92ZWMJJWQwLCAlVkJSCiAjZWxzZQotCW1vdmUubAkjQ0ZHX0ZMQVNIX0JBU0UsICVkMAorCW1vdmUubAkjQ09ORklHX1NZU19GTEFTSF9CQVNFLCAlZDAKIAltb3ZlYwklZDAsICVWQlIKIAotCW1vdmUubAkjKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0lOSVRfUkFNX0NUUkwpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0lOSVRfUkFNX0NUUkwpLCAlZDAKIAltb3ZlYwklZDAsICVSQU1CQVIxCiAjZW5kaWYKIApAQCAtNDA4LDcgKzQwOCw3IEBACiAKIAkvKiBzZXQgc3RhY2twb2ludGVyIHRvIGVuZCBvZiBpbnRlcm5hbCByYW0gdG8gZ2V0IHNvbWUgc3RhY2tzcGFjZSBmb3IKIAkgICB0aGUgZmlyc3QgYy1jb2RlICovCi0JbW92ZS5sCSMoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfSU5JVF9TUF9PRkZTRVQpLCAlc3AKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUKSwgJXNwCiAJY2xyLmwgJXNwQC0KIAogCW1vdmUubCAjX19nb3Rfc3RhcnQsICVhNQkvKiBwdXQgcmVsb2NhdGlvbiB0YWJsZSBhZGRyZXNzIHRvIGE1ICovCkBAIC00MzksNyArNDM5LDcgQEAKIAltb3ZlLmwgMTIoJWE2KSwgJWQwCQkvKiBTYXZlIGNvcHkgb2YgR2xvYmFsIERhdGEgcG9pbnRlciAqLwogCW1vdmUubCAxNiglYTYpLCAlYTAJCS8qIFNhdmUgY29weSBvZiBEZXN0aW5hdGlvbiBBZGRyZXNzICovCiAKLQltb3ZlLmwgI0NGR19NT05JVE9SX0JBU0UsICVhMQorCW1vdmUubCAjQ09ORklHX1NZU19NT05JVE9SX0JBU0UsICVhMQogCW1vdmUubCAjX19pbml0X2VuZCwgJWEyCiAJbW92ZS5sICVhMCwgJWEzCiAKQEAgLTQ1NCw3ICs0NTQsNyBAQAogICogaW5pdGlhbGl6YXRpb24sIG5vdyBydW5uaW5nIGZyb20gUkFNLgogICovCiAJbW92ZS5sCSVhMCwgJWExCi0JYWRkLmwJIyhpbl9yYW0gLSBDRkdfTU9OSVRPUl9CQVNFKSwgJWExCisJYWRkLmwJIyhpbl9yYW0gLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksICVhMQogCWptcAkoJWExKQogCiBpbl9yYW06CkBAIC00NjQsOSArNDY0LDkgQEAKIAkgKiBOb3cgY2xlYXIgQlNTIHNlZ21lbnQKIAkgKi8KIAltb3ZlLmwJJWEwLCAlYTEKLQlhZGQubAkjKF9zYnNzIC0gQ0ZHX01PTklUT1JfQkFTRSksJWExCisJYWRkLmwJIyhfc2JzcyAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlYTEKIAltb3ZlLmwJJWEwLCAlZDEKLQlhZGQubAkjKF9lYnNzIC0gQ0ZHX01PTklUT1JfQkFTRSksJWQxCisJYWRkLmwJIyhfZWJzcyAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlZDEKIDY6CiAJY2xyLmwJKCVhMSkrCiAJY21wLmwJJWExLCVkMQpAQCAtNDc2LDExICs0NzYsMTEgQEAKIAkgKiBmaXggZ290IHRhYmxlIGluIFJBTQogCSAqLwogCW1vdmUubAklYTAsICVhMQotCWFkZC5sCSMoX19nb3Rfc3RhcnQgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTEKKwlhZGQubAkjKF9fZ290X3N0YXJ0IC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMQogCW1vdmUubAklYTEsJWE1CQkJLyogKiBmaXggZ290IHBvaW50ZXIgcmVnaXN0ZXIgYTUgKi8KIAogCW1vdmUubAklYTAsICVhMgotCWFkZC5sCSMoX19nb3RfZW5kIC0gQ0ZHX01PTklUT1JfQkFTRSksJWEyCisJYWRkLmwJIyhfX2dvdF9lbmQgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksJWEyCiAKIDc6CiAJbW92ZS5sCSglYTEpLCVkMQpAQCAtNDkyLDcgKzQ5Miw3IEBACiAKIAkvKiBjYWxjdWxhdGUgcmVsYXRpdmUganVtcCB0byBib2FyZF9pbml0X3IgaW4gcmFtICovCiAJbW92ZS5sICVhMCwgJWExCi0JYWRkLmwgIyhib2FyZF9pbml0X3IgLSBDRkdfTU9OSVRPUl9CQVNFKSwgJWExCisJYWRkLmwgIyhib2FyZF9pbml0X3IgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksICVhMQogCiAJLyogc2V0IHBhcmFtZXRlcnMgZm9yIGJvYXJkX2luaXRfciAqLwogCW1vdmUubCAlYTAsLSglc3ApCQkvKiBkZXN0X2FkZHIgKi8KQEAgLTUzMSw3ICs1MzEsNyBAQAogCW1vdmUubAkjMHgwMDA0MDEwMCwgJWQwCS8qIEludmFsaWRhdGUgaWNhY2hlICovCiAJbW92ZWMJJWQwLCAlQ0FDUgogCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX0JBU0UgKyAweDFjMDAwKSwgJWQwCS8qIFNldHVwIGljYWNoZSAqLworCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MWMwMDApLCAlZDAJLyogU2V0dXAgaWNhY2hlICovCiAJbW92ZWMJJWQwLCAlQUNSMgogCiAJbW92ZS5sCSMweDA0MDg4MDIwLCAlZDAJLyogRW5hYmxlIGJjYWNoZSBhbmQgaWNhY2hlICovCmRpZmYgLS1naXQgYS9jcHUvbWNmNTQ3eF84eC9jcHUuYyBiL2NwdS9tY2Y1NDd4Xzh4L2NwdS5jCmluZGV4IGFiNGFkMjguLmY5YTM1NDQgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1NDd4Xzh4L2NwdS5jCisrKyBiL2NwdS9tY2Y1NDd4Xzh4L2NwdS5jCkBAIC0xMzMsNyArMTMzLDcgQEAKIAl2b2xhdGlsZSBncHRtcl90ICpncHRtciA9IChncHRtcl90ICopIChNTUFQX0dQVE1SKTsKIAogCWdwdG1yLT5wcmUgPSBDT05GSUdfV0FUQ0hET0dfVElNRU9VVDsKLQlncHRtci0+Y250ID0gQ0ZHX1RJTUVSX1BSRVNDQUxFUiAqIDEwMDA7CisJZ3B0bXItPmNudCA9IENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSICogMTAwMDsKIAogCWdwdG1yLT5tb2RlID0gR1BUX1RNU19TR1BJTzsKIAlncHRtci0+Y3RybCA9IEdQVF9DVFJMX0NFIHwgR1BUX0NUUkxfV0RFTjsKZGlmZiAtLWdpdCBhL2NwdS9tY2Y1NDd4Xzh4L2NwdV9pbml0LmMgYi9jcHUvbWNmNTQ3eF84eC9jcHVfaW5pdC5jCmluZGV4IDExMTU0YzYuLjlhMGUwNDAgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1NDd4Xzh4L2NwdV9pbml0LmMKKysrIGIvY3B1L21jZjU0N3hfOHgvY3B1X2luaXQuYwpAQCAtNTIsNDAgKzUyLDQwIEBACiAJeGxiYXJiLT5wcmkgPSAwOwogCXhsYmFyYi0+cHJpZW4gPSAweGZmOwogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTMF9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzBfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1MwX0NUUkwpKQotCWZiY3MtPmNzYXIwID0gQ0ZHX0NTMF9CQVNFOwotCWZiY3MtPmNzY3IwID0gQ0ZHX0NTMF9DVFJMOwotCWZiY3MtPmNzbXIwID0gQ0ZHX0NTMF9NQVNLOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1MwX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzBfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMF9DVFJMKSkKKwlmYmNzLT5jc2FyMCA9IENPTkZJR19TWVNfQ1MwX0JBU0U7CisJZmJjcy0+Y3NjcjAgPSBDT05GSUdfU1lTX0NTMF9DVFJMOworCWZiY3MtPmNzbXIwID0gQ09ORklHX1NZU19DUzBfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTMV9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzFfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1MxX0NUUkwpKQotCWZiY3MtPmNzYXIxID0gQ0ZHX0NTMV9CQVNFOwotCWZiY3MtPmNzY3IxID0gQ0ZHX0NTMV9DVFJMOwotCWZiY3MtPmNzbXIxID0gQ0ZHX0NTMV9NQVNLOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1MxX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzFfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMV9DVFJMKSkKKwlmYmNzLT5jc2FyMSA9IENPTkZJR19TWVNfQ1MxX0JBU0U7CisJZmJjcy0+Y3NjcjEgPSBDT05GSUdfU1lTX0NTMV9DVFJMOworCWZiY3MtPmNzbXIxID0gQ09ORklHX1NZU19DUzFfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTMl9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzJfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1MyX0NUUkwpKQotCWZiY3MtPmNzYXIyID0gQ0ZHX0NTMl9CQVNFOwotCWZiY3MtPmNzY3IyID0gQ0ZHX0NTMl9DVFJMOwotCWZiY3MtPmNzbXIyID0gQ0ZHX0NTMl9NQVNLOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1MyX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzJfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMl9DVFJMKSkKKwlmYmNzLT5jc2FyMiA9IENPTkZJR19TWVNfQ1MyX0JBU0U7CisJZmJjcy0+Y3NjcjIgPSBDT05GSUdfU1lTX0NTMl9DVFJMOworCWZiY3MtPmNzbXIyID0gQ09ORklHX1NZU19DUzJfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTM19CQVNFKSAmJiBkZWZpbmVkKENGR19DUzNfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1MzX0NUUkwpKQotCWZiY3MtPmNzYXIzID0gQ0ZHX0NTM19CQVNFOwotCWZiY3MtPmNzY3IzID0gQ0ZHX0NTM19DVFJMOwotCWZiY3MtPmNzbXIzID0gQ0ZHX0NTM19NQVNLOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1MzX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzNfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTM19DVFJMKSkKKwlmYmNzLT5jc2FyMyA9IENPTkZJR19TWVNfQ1MzX0JBU0U7CisJZmJjcy0+Y3NjcjMgPSBDT05GSUdfU1lTX0NTM19DVFJMOworCWZiY3MtPmNzbXIzID0gQ09ORklHX1NZU19DUzNfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTNF9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzRfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1M0X0NUUkwpKQotCWZiY3MtPmNzYXI0ID0gQ0ZHX0NTNF9CQVNFOwotCWZiY3MtPmNzY3I0ID0gQ0ZHX0NTNF9DVFJMOwotCWZiY3MtPmNzbXI0ID0gQ0ZHX0NTNF9NQVNLOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1M0X0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzRfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTNF9DVFJMKSkKKwlmYmNzLT5jc2FyNCA9IENPTkZJR19TWVNfQ1M0X0JBU0U7CisJZmJjcy0+Y3NjcjQgPSBDT05GSUdfU1lTX0NTNF9DVFJMOworCWZiY3MtPmNzbXI0ID0gQ09ORklHX1NZU19DUzRfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTNV9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzVfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1M1X0NUUkwpKQotCWZiY3MtPmNzYXI1ID0gQ0ZHX0NTNV9CQVNFOwotCWZiY3MtPmNzY3I1ID0gQ0ZHX0NTNV9DVFJMOwotCWZiY3MtPmNzbXI1ID0gQ0ZHX0NTNV9NQVNLOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1M1X0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzVfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTNV9DVFJMKSkKKwlmYmNzLT5jc2FyNSA9IENPTkZJR19TWVNfQ1M1X0JBU0U7CisJZmJjcy0+Y3NjcjUgPSBDT05GSUdfU1lTX0NTNV9DVFJMOworCWZiY3MtPmNzbXI1ID0gQ09ORklHX1NZU19DUzVfTUFTSzsKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX0ZTTF9JMkMKQEAgLTExMCwxMCArMTEwLDEwIEBACiB2b2lkIHVhcnRfcG9ydF9jb25mKHZvaWQpCiB7CiAJdm9sYXRpbGUgZ3Bpb190ICpncGlvID0gKGdwaW9fdCAqKSBNTUFQX0dQSU87Ci0Jdm9sYXRpbGUgdTggKnBzY3NpY3IgPSAodTggKikgKENGR19VQVJUX0JBU0UgKyAweDQwKTsKKwl2b2xhdGlsZSB1OCAqcHNjc2ljciA9ICh1OCAqKSAoQ09ORklHX1NZU19VQVJUX0JBU0UgKyAweDQwKTsKIAogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWdwaW8tPnBhcl9wc2MwID0gKEdQSU9fUEFSX1BTQzBfVFhEMCB8IEdQSU9fUEFSX1BTQzBfUlhEMCk7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvY3B1L21jZjU0N3hfOHgvaW50ZXJydXB0cy5jIGIvY3B1L21jZjU0N3hfOHgvaW50ZXJydXB0cy5jCmluZGV4IGQ2ODRmZmUuLjc2YmU4NzYgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1NDd4Xzh4L2ludGVycnVwdHMuYworKysgYi9jcHUvbWNmNTQ3eF84eC9pbnRlcnJ1cHRzLmMKQEAgLTI4LDcgKzI4LDcgQEAKIAogaW50IGludGVycnVwdF9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ0ZHX0lOVFJfQkFTRSk7CisJdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ09ORklHX1NZU19JTlRSX0JBU0UpOwogCiAJLyogTWFrZSBzdXJlIGFsbCBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCAqLwogCWludHAtPmltcmgwIHw9IDB4RkZGRkZGRkY7CkBAIC00Miw5ICs0Miw5IEBACiAjaWYgZGVmaW5lZChDT05GSUdfU0xUVE1SKQogdm9pZCBkdGltZXJfaW50cl9zZXR1cCh2b2lkKQogewotCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENGR19JTlRSX0JBU0UpOworCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENPTkZJR19TWVNfSU5UUl9CQVNFKTsKIAotCWludHAtPmljcjBbQ0ZHX1RNUklOVFJfTk9dID0gQ0ZHX1RNUklOVFJfUFJJOwotCWludHAtPmltcmgwICY9IH5DRkdfVE1SSU5UUl9NQVNLOworCWludHAtPmljcjBbQ09ORklHX1NZU19UTVJJTlRSX05PXSA9IENPTkZJR19TWVNfVE1SSU5UUl9QUkk7CisJaW50cC0+aW1yaDAgJj0gfkNPTkZJR19TWVNfVE1SSU5UUl9NQVNLOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9jcHUvbWNmNTQ3eF84eC9wY2kuYyBiL2NwdS9tY2Y1NDd4Xzh4L3BjaS5jCmluZGV4IDcwMzc4YjAuLmY1YzI1MzYgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1NDd4Xzh4L3BjaS5jCisrKyBiL2NwdS9tY2Y1NDd4Xzh4L3BjaS5jCkBAIC0zMSw5ICszMSw5IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAvKiBTeXN0ZW0gUkFNIG1hcHBlZCBvdmVyIFBDSSAqLwotI2RlZmluZSBDRkdfUENJX1NZU19NRU1fQlVTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfU1lTX01FTV9QSFlTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfU1lTX01FTV9TSVpFCSgxMDI0ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NZU19NRU1fQlVTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TWVNfTUVNX1BIWVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NZU19NRU1fU0laRQkoMTAyNCAqIDEwMjQgKiAxMDI0KQogCiAjZGVmaW5lIGNmZ19yZWFkKHZhbCwgYWRkciwgdHlwZSwgb3ApCQkqdmFsID0gb3AoKHR5cGUpKGFkZHIpKTsKICNkZWZpbmUgY2ZnX3dyaXRlKHZhbCwgYWRkciwgdHlwZSwgb3ApCQlvcCgodHlwZSAqKShhZGRyKSwgKHZhbCkpOwpAQCAtMTA3LDkgKzEwNyw5IEBACiAJcGNpLT50Y3IxID0gUENJX1RDUjFfUDsKIAogCS8qIEluaXRpYXRvciB3aW5kb3dzICovCi0JcGNpLT5pdzBidGFyID0gQ0ZHX1BDSV9NRU1fUEhZUyB8IChDRkdfUENJX01FTV9QSFlTID4+IDE2KTsKLQlwY2ktPml3MWJ0YXIgPSBDRkdfUENJX0lPX1BIWVMgfCAoQ0ZHX1BDSV9JT19QSFlTID4+IDE2KTsKLQlwY2ktPml3MmJ0YXIgPSBDRkdfUENJX0NGR19QSFlTIHwgKENGR19QQ0lfQ0ZHX1BIWVMgPj4gMTYpOworCXBjaS0+aXcwYnRhciA9IENPTkZJR19TWVNfUENJX01FTV9QSFlTIHwgKENPTkZJR19TWVNfUENJX01FTV9QSFlTID4+IDE2KTsKKwlwY2ktPml3MWJ0YXIgPSBDT05GSUdfU1lTX1BDSV9JT19QSFlTIHwgKENPTkZJR19TWVNfUENJX0lPX1BIWVMgPj4gMTYpOworCXBjaS0+aXcyYnRhciA9IENPTkZJR19TWVNfUENJX0NGR19QSFlTIHwgKENPTkZJR19TWVNfUENJX0NGR19QSFlTID4+IDE2KTsKIAogCXBjaS0+aXdjciA9CiAJICAgIFBDSV9JV0NSX1cwQ19FTiB8IFBDSV9JV0NSX1cxQ19FTiB8IFBDSV9JV0NSX1cxQ19JTyB8CkBAIC0xMjQsMTMgKzEyNCwxMyBAQAogCXBjaS0+Y3IxID0gUENJX0NSMV9DTFMoOCkgfCBQQ0lfQ1IxX0xUTVIoMHhGOCk7CiAJcGNpLT5jcjIgPSAwOwogCi0jaWZkZWYgQ0ZHX1BDSV9CQVIwCi0JcGNpLT5iYXIwID0gUENJX0JBUl9CQVIwKENGR19QQ0lfQkFSMCk7Ci0JcGNpLT50YmF0cjBhID0gQ0ZHX1BDSV9UQkFUUjAgfCBQQ0lfVEJBVFJfRU47CisjaWZkZWYgQ09ORklHX1NZU19QQ0lfQkFSMAorCXBjaS0+YmFyMCA9IFBDSV9CQVJfQkFSMChDT05GSUdfU1lTX1BDSV9CQVIwKTsKKwlwY2ktPnRiYXRyMGEgPSBDT05GSUdfU1lTX1BDSV9UQkFUUjAgfCBQQ0lfVEJBVFJfRU47CiAjZW5kaWYKLSNpZmRlZiBDRkdfUENJX0JBUjEKLQlwY2ktPmJhcjEgPSBQQ0lfQkFSX0JBUjEoQ0ZHX1BDSV9CQVIxKTsKLQlwY2ktPnRiYXRyMWEgPSBDRkdfUENJX1RCQVRSMSB8IFBDSV9UQkFUUl9FTjsKKyNpZmRlZiBDT05GSUdfU1lTX1BDSV9CQVIxCisJcGNpLT5iYXIxID0gUENJX0JBUl9CQVIxKENPTkZJR19TWVNfUENJX0JBUjEpOworCXBjaS0+dGJhdHIxYSA9IENPTkZJR19TWVNfUENJX1RCQVRSMSB8IFBDSV9UQkFUUl9FTjsKICNlbmRpZgogCiAJLyogRGVhc3NlcnQgcmVzZXQgYml0ICovCkBAIC0xNDEsMjAgKzE0MSwyMCBAQAogCWhvc2UtPmZpcnN0X2J1c25vID0gMDsKIAlob3NlLT5sYXN0X2J1c25vID0gMHhmZjsKIAotCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLCBDRkdfUENJX01FTV9CVVMsIENGR19QQ0lfTUVNX1BIWVMsCi0JCSAgICAgICBDRkdfUENJX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CisJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsIENPTkZJR19TWVNfUENJX01FTV9CVVMsIENPTkZJR19TWVNfUENJX01FTV9QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKIAotCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLCBDRkdfUENJX0lPX0JVUywgQ0ZHX1BDSV9JT19QSFlTLAotCQkgICAgICAgQ0ZHX1BDSV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKKwlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwgQ09ORklHX1NZU19QQ0lfSU9fQlVTLCBDT05GSUdfU1lTX1BDSV9JT19QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CiAKLQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwgQ0ZHX1BDSV9TWVNfTUVNX0JVUywKLQkJICAgICAgIENGR19QQ0lfU1lTX01FTV9QSFlTLCBDRkdfUENJX1NZU19NRU1fU0laRSwKKwlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwgQ09ORklHX1NZU19QQ0lfU1lTX01FTV9CVVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9TWVNfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJX1NZU19NRU1fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKIAogCWhvc2UtPmNmZ19hZGRyID0gJihwY2ktPmNhcik7Ci0JaG9zZS0+Y2ZnX2RhdGEgPSAodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKUNGR19QQ0lfQ0ZHX0JVUzsKKwlob3NlLT5jZmdfZGF0YSA9ICh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopQ09ORklHX1NZU19QQ0lfQ0ZHX0JVUzsKIAogCXBjaV9zZXRfb3BzKGhvc2UsIHBjaV9yZWFkX2NmZ19ieXRlLCBwY2lfcmVhZF9jZmdfd29yZCwKIAkJICAgIHBjaV9yZWFkX2NmZ19kd29yZCwgcGNpX3dyaXRlX2NmZ19ieXRlLCBwY2lfd3JpdGVfY2ZnX3dvcmQsCmRpZmYgLS1naXQgYS9jcHUvbWNmNTQ3eF84eC9zbGljZXRpbWVyLmMgYi9jcHUvbWNmNTQ3eF84eC9zbGljZXRpbWVyLmMKaW5kZXggNDk0Zjk4Zi4uNjdlODE4OSAxMDA2NDQKLS0tIGEvY3B1L21jZjU0N3hfOHgvc2xpY2V0aW1lci5jCisrKyBiL2NwdS9tY2Y1NDd4Xzh4L3NsaWNldGltZXIuYwpAQCAtMzEsMjIgKzMxLDIyIEBACiBzdGF0aWMgdWxvbmcgdGltZXN0YW1wOwogCiAjaWYgZGVmaW5lZChDT05GSUdfU0xUVE1SKQotI2lmbmRlZiBDRkdfVURFTEFZX0JBU0UKKyNpZm5kZWYgQ09ORklHX1NZU19VREVMQVlfQkFTRQogIwllcnJvcgkidURlbGF5IGJhc2Ugbm90IGRlZmluZWQhIgogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChDRkdfVE1SX0JBU0UpIHx8ICFkZWZpbmVkKENGR19JTlRSX0JBU0UpIHx8ICFkZWZpbmVkKENGR19UTVJJTlRSX05PKSB8fCAhZGVmaW5lZChDRkdfVE1SSU5UUl9NQVNLKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfVE1SX0JBU0UpIHx8ICFkZWZpbmVkKENPTkZJR19TWVNfSU5UUl9CQVNFKSB8fCAhZGVmaW5lZChDT05GSUdfU1lTX1RNUklOVFJfTk8pIHx8ICFkZWZpbmVkKENPTkZJR19TWVNfVE1SSU5UUl9NQVNLKQogIwllcnJvcgkiVE1SX0JBU0UsIElOVFJfQkFTRSwgVE1SSU5UUl9OTyBvciBUTVJJTlRSX01BU2sgbm90IGRlZmluZWQhIgogI2VuZGlmCiBleHRlcm4gdm9pZCBkdGltZXJfaW50cl9zZXR1cCh2b2lkKTsKIAogdm9pZCB1ZGVsYXkodW5zaWduZWQgbG9uZyB1c2VjKQogewotCXZvbGF0aWxlIHNsdF90ICp0aW1lcnAgPSAoc2x0X3QgKikgKENGR19VREVMQVlfQkFTRSk7CisJdm9sYXRpbGUgc2x0X3QgKnRpbWVycCA9IChzbHRfdCAqKSAoQ09ORklHX1NZU19VREVMQVlfQkFTRSk7CiAJdTMyIG5vdywgZnJlcTsKIAogCS8qIDEgdXMgcGVyaW9kICovCi0JZnJlcSA9IENGR19USU1FUl9QUkVTQ0FMRVI7CisJZnJlcSA9IENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSOwogCiAJdGltZXJwLT5jciA9IDA7CQkvKiBEaXNhYmxlICovCiAJdGltZXJwLT50Y250ID0gdXNlYyAqIGZyZXE7CkBAIC02MiwxMCArNjIsMTAgQEAKIAogdm9pZCBkdGltZXJfaW50ZXJydXB0KHZvaWQgKm5vdF91c2VkKQogewotCXZvbGF0aWxlIHNsdF90ICp0aW1lcnAgPSAoc2x0X3QgKikgKENGR19UTVJfQkFTRSk7CisJdm9sYXRpbGUgc2x0X3QgKnRpbWVycCA9IChzbHRfdCAqKSAoQ09ORklHX1NZU19UTVJfQkFTRSk7CiAKIAkvKiBjaGVjayBmb3IgdGltZXIgaW50ZXJydXB0IGFzc2VydGVkICovCi0JaWYgKChDRkdfVE1SUE5EX1JFRyAmIENGR19UTVJJTlRSX01BU0spID09IENGR19UTVJJTlRSX1BFTkQpIHsKKwlpZiAoKENPTkZJR19TWVNfVE1SUE5EX1JFRyAmIENPTkZJR19TWVNfVE1SSU5UUl9NQVNLKSA9PSBDT05GSUdfU1lTX1RNUklOVFJfUEVORCkgewogCQl0aW1lcnAtPnNyIHw9IFNMVF9TUl9TVDsKIAkJdGltZXN0YW1wKys7CiAJCXJldHVybjsKQEAgLTc0LDcgKzc0LDcgQEAKIAogdm9pZCB0aW1lcl9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgc2x0X3QgKnRpbWVycCA9IChzbHRfdCAqKSAoQ0ZHX1RNUl9CQVNFKTsKKwl2b2xhdGlsZSBzbHRfdCAqdGltZXJwID0gKHNsdF90ICopIChDT05GSUdfU1lTX1RNUl9CQVNFKTsKIAogCXRpbWVzdGFtcCA9IDA7CiAKQEAgLTgzLDEwICs4MywxMCBAQAogCXRpbWVycC0+c3IgPSBTTFRfU1JfQkUgfCBTTFRfU1JfU1Q7CS8qIGNsZWFyIHN0YXR1cyAqLwogCiAJLyogaW5pdGlhbGl6ZSBhbmQgZW5hYmxlIHRpbWVyIGludGVycnVwdCAqLwotCWlycV9pbnN0YWxsX2hhbmRsZXIoQ0ZHX1RNUklOVFJfTk8sIGR0aW1lcl9pbnRlcnJ1cHQsIDApOworCWlycV9pbnN0YWxsX2hhbmRsZXIoQ09ORklHX1NZU19UTVJJTlRSX05PLCBkdGltZXJfaW50ZXJydXB0LCAwKTsKIAogCS8qIEludGVycnVwdCBldmVyeSBtcyAqLwotCXRpbWVycC0+dGNudCA9IDEwMDAgKiBDRkdfVElNRVJfUFJFU0NBTEVSOworCXRpbWVycC0+dGNudCA9IDEwMDAgKiBDT05GSUdfU1lTX1RJTUVSX1BSRVNDQUxFUjsKIAogCWR0aW1lcl9pbnRyX3NldHVwKCk7CiAKZGlmZiAtLWdpdCBhL2NwdS9tY2Y1NDd4Xzh4L3NwZWVkLmMgYi9jcHUvbWNmNTQ3eF84eC9zcGVlZC5jCmluZGV4IDI4ZmU2NTcuLjJjZWU0ODggMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1NDd4Xzh4L3NwZWVkLmMKKysrIGIvY3B1L21jZjU0N3hfOHgvc3BlZWQuYwpAQCAtMzcsNyArMzcsNyBAQAogewogCURFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0JZ2QtPmJ1c19jbGsgPSBDRkdfQ0xLOworCWdkLT5idXNfY2xrID0gQ09ORklHX1NZU19DTEs7CiAJZ2QtPmNwdV9jbGsgPSAoZ2QtPmJ1c19jbGsgKiAyKTsKIAogI2lmZGVmIENPTkZJR19GU0xfSTJDCmRpZmYgLS1naXQgYS9jcHUvbWNmNTQ3eF84eC9zdGFydC5TIGIvY3B1L21jZjU0N3hfOHgvc3RhcnQuUwppbmRleCA4NzM1NWY5Li40MWZjNjk0IDEwMDY0NAotLS0gYS9jcHUvbWNmNTQ3eF84eC9zdGFydC5TCisrKyBiL2NwdS9tY2Y1NDd4Xzh4L3N0YXJ0LlMKQEAgLTI5LDkgKzI5LDkgQEAKICNlbmRpZgogCiAvKiBsYXN0IHRocmVlIGxvbmcgd29yZCByZXNlcnZlZCBmb3IgY2FjaGUgc3RhdHVzICovCi0jZGVmaW5lIElDQUNIRV9TVEFUVVMJKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtIDQpCi0jZGVmaW5lIERDQUNIRV9TVEFUVVMJKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtIDgpCi0jZGVmaW5lIENBQ1JfU1RBVFVTCShDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELTEyKQorI2RlZmluZSBJQ0FDSEVfU1RBVFVTCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtIDQpCisjZGVmaW5lIERDQUNIRV9TVEFUVVMJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC0gOCkKKyNkZWZpbmUgQ0FDUl9TVEFUVVMJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC0xMikKIAogI2RlZmluZSBfU1RBUlQJX3N0YXJ0CiAjZGVmaW5lIF9GQVVMVAlfZmF1bHQKQEAgLTEzMiwxNiArMTMyLDE2IEBACiAJbW92ZS53ICMweDI3MDAsJXNyCQkvKiBNYXNrIG9mZiBJbnRlcnJ1cHQgKi8KIAogCS8qIFNldCB2ZWN0b3IgYmFzZSByZWdpc3RlciBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBGbGFzaCAqLwotCW1vdmUubAkjQ0ZHX0ZMQVNIX0JBU0UsICVkMAorCW1vdmUubAkjQ09ORklHX1NZU19GTEFTSF9CQVNFLCAlZDAKIAltb3ZlYwklZDAsICVWQlIKIAotCW1vdmUubAkjKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0lOSVRfUkFNX0NUUkwpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0lOSVRfUkFNX0NUUkwpLCAlZDAKIAltb3ZlYwklZDAsICVSQU1CQVIwCiAKLQltb3ZlLmwJIyhDRkdfSU5JVF9SQU0xX0FERFIgKyBDRkdfSU5JVF9SQU0xX0NUUkwpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNMV9BRERSICsgQ09ORklHX1NZU19JTklUX1JBTTFfQ1RSTCksICVkMAogCW1vdmVjCSVkMCwgJVJBTUJBUjEKIAotCW1vdmUubAkjQ0ZHX01CQVIsICVkMAkJLyogc2V0IE1CQVIgYWRkcmVzcyAqLworCW1vdmUubAkjQ09ORklHX1NZU19NQkFSLCAlZDAJCS8qIHNldCBNQkFSIGFkZHJlc3MgKi8KIAltb3ZlLmMJJWQwLCAlTUJBUgogCiAJLyogaW52YWxpZGF0ZSBhbmQgZGlzYWJsZSBjYWNoZSAqLwpAQCAtMTY0LDcgKzE2NCw3IEBACiAKIAkvKiBzZXQgc3RhY2twb2ludGVyIHRvIGVuZCBvZiBpbnRlcm5hbCByYW0gdG8gZ2V0IHNvbWUgc3RhY2tzcGFjZSBmb3IgdGhlCiAJICAgZmlyc3QgYy1jb2RlICovCi0JbW92ZS5sCSMoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfSU5JVF9TUF9PRkZTRVQpLCAlc3AKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUKSwgJXNwCiAJY2xyLmwgJXNwQC0KIAogCW1vdmUubCAjX19nb3Rfc3RhcnQsICVhNQkvKiBwdXQgcmVsb2NhdGlvbiB0YWJsZSBhZGRyZXNzIHRvIGE1ICovCkBAIC0xOTUsNyArMTk1LDcgQEAKIAltb3ZlLmwgMTIoJWE2KSwgJWQwCQkvKiBTYXZlIGNvcHkgb2YgR2xvYmFsIERhdGEgcG9pbnRlciAqLwogCW1vdmUubCAxNiglYTYpLCAlYTAJCS8qIFNhdmUgY29weSBvZiBEZXN0aW5hdGlvbiBBZGRyZXNzICovCiAKLQltb3ZlLmwgI0NGR19NT05JVE9SX0JBU0UsICVhMQorCW1vdmUubCAjQ09ORklHX1NZU19NT05JVE9SX0JBU0UsICVhMQogCW1vdmUubCAjX19pbml0X2VuZCwgJWEyCiAJbW92ZS5sICVhMCwgJWEzCiAKQEAgLTIxMCw3ICsyMTAsNyBAQAogICogaW5pdGlhbGl6YXRpb24sIG5vdyBydW5uaW5nIGZyb20gUkFNLgogICovCiAJbW92ZS5sCSVhMCwgJWExCi0JYWRkLmwJIyhpbl9yYW0gLSBDRkdfTU9OSVRPUl9CQVNFKSwgJWExCisJYWRkLmwJIyhpbl9yYW0gLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksICVhMQogCWptcAkoJWExKQogCiBpbl9yYW06CkBAIC0yMjAsOSArMjIwLDkgQEAKIAkgKiBOb3cgY2xlYXIgQlNTIHNlZ21lbnQKIAkgKi8KIAltb3ZlLmwJJWEwLCAlYTEKLQlhZGQubAkjKF9zYnNzIC0gQ0ZHX01PTklUT1JfQkFTRSksJWExCisJYWRkLmwJIyhfc2JzcyAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlYTEKIAltb3ZlLmwJJWEwLCAlZDEKLQlhZGQubAkjKF9lYnNzIC0gQ0ZHX01PTklUT1JfQkFTRSksJWQxCisJYWRkLmwJIyhfZWJzcyAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlZDEKIDY6CiAJY2xyLmwJKCVhMSkrCiAJY21wLmwJJWExLCVkMQpAQCAtMjMyLDExICsyMzIsMTEgQEAKIAkgKiBmaXggZ290IHRhYmxlIGluIFJBTQogCSAqLwogCW1vdmUubAklYTAsICVhMQotCWFkZC5sCSMoX19nb3Rfc3RhcnQgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTEKKwlhZGQubAkjKF9fZ290X3N0YXJ0IC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMQogCW1vdmUubAklYTEsJWE1CQkvKiAqIGZpeCBnb3QgcG9pbnRlciByZWdpc3RlciBhNSAqLwogCiAJbW92ZS5sCSVhMCwgJWEyCi0JYWRkLmwJIyhfX2dvdF9lbmQgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTIKKwlhZGQubAkjKF9fZ290X2VuZCAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlYTIKIAogNzoKIAltb3ZlLmwJKCVhMSksJWQxCkBAIC0yNDgsNyArMjQ4LDcgQEAKIAogCS8qIGNhbGN1bGF0ZSByZWxhdGl2ZSBqdW1wIHRvIGJvYXJkX2luaXRfciBpbiByYW0gKi8KIAltb3ZlLmwgJWEwLCAlYTEKLQlhZGQubCAjKGJvYXJkX2luaXRfciAtIENGR19NT05JVE9SX0JBU0UpLCAlYTEKKwlhZGQubCAjKGJvYXJkX2luaXRfciAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwgJWExCiAKIAkvKiBzZXQgcGFyYW1ldGVycyBmb3IgYm9hcmRfaW5pdF9yICovCiAJbW92ZS5sICVhMCwtKCVzcCkJCS8qIGRlc3RfYWRkciAqLwpAQCAtMjgxLDcgKzI4MSw3IEBACiAvKiBjYWNoZSBmdW5jdGlvbnMgKi8KIAkuZ2xvYmwJaWNhY2hlX2VuYWJsZQogaWNhY2hlX2VuYWJsZToKLQltb3ZlLmwJIyhDRkdfU0RSQU1fQkFTRSArIDB4MWMwMDApLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDFjMDAwKSwgJWQwCiAJbW92ZWMJJWQwLCAlQUNSMgkJCS8qIEVuYWJsZSBjYWNoZSAqLwogCiAJbW92ZS5sCSMweDAyMEM4MTAwLCAlZDAJCS8qIFNldHVwIGNhY2hlIG1hc2sgKi8KQEAgLTMyMiw3ICszMjIsNyBAQAogZGNhY2hlX2VuYWJsZToKIAlic3IJaWNhY2hlX2Rpc2FibGUKIAotCW1vdmUubAkjKENGR19TRFJBTV9CQVNFICsgMHhjMDAwKSwgJWQwCisJbW92ZS5sCSMoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHhjMDAwKSwgJWQwCiAJbW92ZWMJJWQwLCAlQUNSMAkJCS8qIEVuYWJsZSBjYWNoZSAqLwogCiAJbW92ZS5sCSMweEEzMEM4MTAwLCAlZDAJCS8qIEludmFsaWRhdGUgY2FjaGUgY21kICovCmRpZmYgLS1naXQgYS9jcHUvbWljcm9ibGF6ZS9leGNlcHRpb24uYyBiL2NwdS9taWNyb2JsYXplL2V4Y2VwdGlvbi5jCmluZGV4IGQ3NmIwNWEuLjAzNjVkZTMgMTAwNjQ0Ci0tLSBhL2NwdS9taWNyb2JsYXplL2V4Y2VwdGlvbi5jCisrKyBiL2NwdS9taWNyb2JsYXplL2V4Y2VwdGlvbi5jCkBAIC02NSw3ICs2NSw3IEBACiAJaGFuZyAoKTsKIH0KIAotI2lmZGVmIENGR19VU1JfRVhDRVAKKyNpZmRlZiBDT05GSUdfU1lTX1VTUl9FWENFUAogdm9pZCBfZXhjZXB0aW9uX2hhbmRsZXIgKHZvaWQpCiB7CiAJcHV0cyAoIlVzZXIgdmVjdG9yX2V4Y2VwdGlvblxuIik7CmRpZmYgLS1naXQgYS9jcHUvbWljcm9ibGF6ZS9pbnRlcnJ1cHRzLmMgYi9jcHUvbWljcm9ibGF6ZS9pbnRlcnJ1cHRzLmMKaW5kZXggMjZlODhjYi4uYTYwMjFjOSAxMDA2NDQKLS0tIGEvY3B1L21pY3JvYmxhemUvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9taWNyb2JsYXplL2ludGVycnVwdHMuYwpAQCAtNDUsMTkgKzQ1LDE5IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNpZmRlZiBDRkdfSU5UQ18wCi0jaWZkZWYgQ0ZHX1RJTUVSXzAKKyNpZmRlZiBDT05GSUdfU1lTX0lOVENfMAorI2lmZGVmIENPTkZJR19TWVNfVElNRVJfMAogZXh0ZXJuIHZvaWQgdGltZXJfaW5pdCAodm9pZCk7CiAjZW5kaWYKLSNpZmRlZiBDRkdfRlNMXzIKKyNpZmRlZiBDT05GSUdfU1lTX0ZTTF8yCiBleHRlcm4gdm9pZCBmc2xfaW5pdDIgKHZvaWQpOwogI2VuZGlmCiAKIAotc3RhdGljIHN0cnVjdCBpcnFfYWN0aW9uIHZlY3NbQ0ZHX0lOVENfMF9OVU1dOworc3RhdGljIHN0cnVjdCBpcnFfYWN0aW9uIHZlY3NbQ09ORklHX1NZU19JTlRDXzBfTlVNXTsKIAogLyogbWFwcGluZyBzdHJ1Y3R1cmUgdG8gaW50ZXJydXB0IGNvbnRyb2xsZXIgKi8KLW1pY3JvYmxhemVfaW50Y190ICppbnRjID0gKG1pY3JvYmxhemVfaW50Y190ICopIChDRkdfSU5UQ18wX0FERFIpOworbWljcm9ibGF6ZV9pbnRjX3QgKmludGMgPSAobWljcm9ibGF6ZV9pbnRjX3QgKikgKENPTkZJR19TWVNfSU5UQ18wX0FERFIpOwogCiAvKiBkZWZhdWx0IGhhbmRsZXIgKi8KIHZvaWQgZGVmX2hkbHIgKHZvaWQpCkBAIC0xMDAsNyArMTAwLDcgQEAKIHsKIAlzdHJ1Y3QgaXJxX2FjdGlvbiAqYWN0OwogCS8qIGlycSBvdXQgb2YgcmFuZ2UgKi8KLQlpZiAoKGlycSA8IDApIHx8IChpcnEgPiBDRkdfSU5UQ18wX05VTSkpIHsKKwlpZiAoKGlycSA8IDApIHx8IChpcnEgPiBDT05GSUdfU1lTX0lOVENfMF9OVU0pKSB7CiAJCXB1dHMgKCJJUlEgb3V0IG9mIHJhbmdlXG4iKTsKIAkJcmV0dXJuOwogCX0KQEAgLTEzNSwxNyArMTM1LDE3IEBACiB7CiAJaW50IGk7CiAJLyogaW5pdGlhbGl6ZSBpcnEgbGlzdCAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfSU5UQ18wX05VTTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfSU5UQ18wX05VTTsgaSsrKSB7CiAJCXZlY3NbaV0uaGFuZGxlciA9IChpbnRlcnJ1cHRfaGFuZGxlcl90ICopIGRlZl9oZGxyOwogCQl2ZWNzW2ldLmFyZyA9ICh2b2lkICopaTsKIAkJdmVjc1tpXS5jb3VudCA9IDA7CiAJfQogCS8qIGluaXRpYWxpemUgaW50YyBjb250cm9sbGVyICovCiAJaW50Y19pbml0ICgpOwotI2lmZGVmIENGR19USU1FUl8wCisjaWZkZWYgQ09ORklHX1NZU19USU1FUl8wCiAJdGltZXJfaW5pdCAoKTsKICNlbmRpZgotI2lmZGVmIENGR19GU0xfMgorI2lmZGVmIENPTkZJR19TWVNfRlNMXzIKIAlmc2xfaW5pdDIgKCk7CiAjZW5kaWYKIAllbmFibGVfaW50ZXJydXB0cyAoKTsKQEAgLTE5MSw3ICsxOTEsNyBAQAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfSVJRKQotI2lmZGVmIENGR19JTlRDXzAKKyNpZmRlZiBDT05GSUdfU1lTX0lOVENfMAogaW50IGRvX2lycWluZm8gKGNtZF90YmxfdCAqIGNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKIAlpbnQgaTsKQEAgLTIwMSw3ICsyMDEsNyBAQAogCSAgICAgICJOciAgUm91dGluZSAgIEFyZyAgICAgICBDb3VudFxuIgogCSAgICAgICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX0lOVENfMF9OVU07IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX0lOVENfMF9OVU07IGkrKykgewogCQlpZiAoYWN0LT5oYW5kbGVyICE9IChpbnRlcnJ1cHRfaGFuZGxlcl90KikgZGVmX2hkbHIpIHsKIAkJCXByaW50ZiAoIiUwMmQgICUwOHggICUwOHggICVkXG4iLCBpLAogCQkJCShpbnQpYWN0LT5oYW5kbGVyLCAoaW50KWFjdC0+YXJnLCBhY3QtPmNvdW50KTsKZGlmZiAtLWdpdCBhL2NwdS9taWNyb2JsYXplL3N0YXJ0LlMgYi9jcHUvbWljcm9ibGF6ZS9zdGFydC5TCmluZGV4IDg3NDAyODQuLjJlOWEwOGQgMTAwNjQ0Ci0tLSBhL2NwdS9taWNyb2JsYXplL3N0YXJ0LlMKKysrIGIvY3B1L21pY3JvYmxhemUvc3RhcnQuUwpAQCAtMzAsNyArMzAsNyBAQAogCS5nbG9iYWwgX3N0YXJ0CiBfc3RhcnQ6CiAJbXRzCXJtc3IsIHIwCS8qIGRpc2FibGUgY2FjaGUgKi8KLQlhZGRpCXIxLCByMCwgQ0ZHX0lOSVRfU1BfT0ZGU0VUCisJYWRkaQlyMSwgcjAsIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQKIAlhZGRpCXIxLCByMSwgLTQJLyogRGVjcmVtZW50IFNQIHRvIHRvcCBvZiBtZW1vcnkgKi8KIAkvKiBhZGQgb3Bjb2RlIGluc3RydWN0aW9uIGZvciAzMmJpdCBqdW1wIC0gMiBpbnN0cnVjdGlvbiBpbW0gJiBicmFpKi8KIAlhZGRpCXI2LCByMCwgMHhiMDAwMDAwMAkvKiBoZXggYjAwMCBvcGNvZGUgaW1tICovCkBAIC00NSw5ICs0NSw5IEBACiAJc3dpCXI2LCByMCwgMHgxNAkvKiBpbnRlcnJ1cHQgKi8KIAlzd2kJcjYsIHIwLCAweDI0CS8qIGhhcmR3YXJlIGV4Y2VwdGlvbiAqLwogCi0jaWZkZWYgQ0ZHX1JFU0VUX0FERFJFU1MKKyNpZmRlZiBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MKIAkvKiByZXNldCBhZGRyZXNzICovCi0JYWRkaWsJcjYsIHIwLCBDRkdfUkVTRVRfQUREUkVTUworCWFkZGlrCXI2LCByMCwgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCiAJc3cJcjYsIHIxLCByMAogCWxodQlyNywgcjEsIHIwCiAJc2hpCXI3LCByMCwgMHgyCkBAIC01NiwxMSArNTYsMTEgQEAKICAqIENvcHkgVS1Cb290IGNvZGUgdG8gVEVYVF9CQVNFCiAgKiBzb2x2ZSBwcm9ibGVtIHdpdGggc2Jya19iYXNlCiAgKi8KLSNpZiAoQ0ZHX1JFU0VUX0FERFJFU1MgIT0gVEVYVF9CQVNFKQorI2lmIChDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgIT0gVEVYVF9CQVNFKQogCWFkZGkJcjQsIHIwLCBfX2VuZAogCWFkZGkJcjUsIHIwLCBfX3RleHRfc3RhcnQKIAlyc3ViCXI0LCByNSwgcjQJLyogc2l6ZSA9IF9fZW5kIC0gX190ZXh0X3N0YXJ0ICovCi0JYWRkaQlyNiwgcjAsIENGR19SRVNFVF9BRERSRVNTCS8qIHNvdXJjZSBhZGRyZXNzICovCisJYWRkaQlyNiwgcjAsIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkvKiBzb3VyY2UgYWRkcmVzcyAqLwogCWFkZGkJcjcsIHIwLCAwCS8qIGNvdW50ZXIgKi8KIDQ6CiAJbHcJcjgsIHI2LCByNwpAQCAtNzEsNyArNzEsNyBAQAogI2VuZGlmCiAjZW5kaWYKIAotI2lmZGVmIENGR19VU1JfRVhDRVAKKyNpZmRlZiBDT05GSUdfU1lTX1VTUl9FWENFUAogCS8qIHVzZXJfdmVjdG9yX2V4Y2VwdGlvbiAqLwogCWFkZGlrCXI2LCByMCwgX2V4Y2VwdGlvbl9oYW5kbGVyCiAJc3cJcjYsIHIxLCByMApAQCAtODAsNyArODAsNyBAQAogCXNoaQlyNiwgcjAsIDB4ZQogI2VuZGlmCiAKLSNpZmRlZiBDRkdfSU5UQ18wCisjaWZkZWYgQ09ORklHX1NZU19JTlRDXzAKIAkvKiBpbnRlcnJ1cHRfaGFuZGxlciAqLwogCWFkZGlrCXI2LCByMCwgX2ludGVycnVwdF9oYW5kbGVyCiAJc3cJcjYsIHIxLCByMApkaWZmIC0tZ2l0IGEvY3B1L21pY3JvYmxhemUvdGltZXIuYyBiL2NwdS9taWNyb2JsYXplL3RpbWVyLmMKaW5kZXggYjM1MDQ1My4uYTkxZWFiYyAxMDA2NDQKLS0tIGEvY3B1L21pY3JvYmxhemUvdGltZXIuYworKysgYi9jcHUvbWljcm9ibGF6ZS90aW1lci5jCkBAIC0zMyw3ICszMyw3IEBACiAJdGltZXN0YW1wID0gMDsKIH0KIAotI2lmZGVmIENGR19USU1FUl8wCisjaWZkZWYgQ09ORklHX1NZU19USU1FUl8wCiB1bG9uZyBnZXRfdGltZXIgKHVsb25nIGJhc2UpCiB7CiAJcmV0dXJuICh0aW1lc3RhbXAgLSBiYXNlKTsKQEAgLTUwLDkgKzUwLDkgQEAKIAl0aW1lc3RhbXAgPSB0OwogfQogCi0jaWZkZWYgQ0ZHX0lOVENfMAotI2lmZGVmIENGR19USU1FUl8wCi1taWNyb2JsYXplX3RpbWVyX3QgKnRtciA9IChtaWNyb2JsYXplX3RpbWVyX3QgKikgKENGR19USU1FUl8wX0FERFIpOworI2lmZGVmIENPTkZJR19TWVNfSU5UQ18wCisjaWZkZWYgQ09ORklHX1NZU19USU1FUl8wCittaWNyb2JsYXplX3RpbWVyX3QgKnRtciA9IChtaWNyb2JsYXplX3RpbWVyX3QgKikgKENPTkZJR19TWVNfVElNRVJfMF9BRERSKTsKIAogdm9pZCB0aW1lcl9pc3IgKHZvaWQgKmFyZykKIHsKQEAgLTYyLDEyICs2MiwxMiBAQAogCiB2b2lkIHRpbWVyX2luaXQgKHZvaWQpCiB7Ci0JdG1yLT5sb2FkcmVnID0gQ0ZHX1RJTUVSXzBfUFJFTE9BRDsKKwl0bXItPmxvYWRyZWcgPSBDT05GSUdfU1lTX1RJTUVSXzBfUFJFTE9BRDsKIAl0bXItPmNvbnRyb2wgPSBUSU1FUl9JTlRFUlJVUFQgfCBUSU1FUl9SRVNFVDsKIAl0bXItPmNvbnRyb2wgPQogCSAgICBUSU1FUl9FTkFCTEUgfCBUSU1FUl9FTkFCTEVfSU5UUiB8IFRJTUVSX1JFTE9BRCB8IFRJTUVSX0RPV05fQ09VTlQ7CiAJcmVzZXRfdGltZXIgKCk7Ci0JaW5zdGFsbF9pbnRlcnJ1cHRfaGFuZGxlciAoQ0ZHX1RJTUVSXzBfSVJRLCB0aW1lcl9pc3IsICh2b2lkICopdG1yKTsKKwlpbnN0YWxsX2ludGVycnVwdF9oYW5kbGVyIChDT05GSUdfU1lTX1RJTUVSXzBfSVJRLCB0aW1lcl9pc3IsICh2b2lkICopdG1yKTsKIH0KICNlbmRpZgogI2VuZGlmCmRpZmYgLS1naXQgYS9jcHUvbWlwcy9hdTF4MDBfZXRoLmMgYi9jcHUvbWlwcy9hdTF4MDBfZXRoLmMKaW5kZXggZDBjZjhlMC4uOGRkYzA2YSAxMDA2NDQKLS0tIGEvY3B1L21pcHMvYXUxeDAwX2V0aC5jCisrKyBiL2NwdS9taXBzL2F1MXgwMF9ldGguYwpAQCAtMjMsNyArMjMsNyBAQAogICovCiAjaW5jbHVkZSA8Y29uZmlnLmg+CiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkKICNlcnJvciAiUEhZIG5vdCBzdXBwb3J0ZWQgeWV0IgogLyogV2UganVzdCBhc3N1bWUgdGhhdCB3ZSBhcmUgcnVubmluZyAxMDBGRCBmb3Igbm93ICovCiAvKiBXZSBhbGwgdXNlIHN3aXRjaGVzLCByaWdodD8gOy0pICovCmRpZmYgLS1naXQgYS9jcHUvbWlwcy9hdTF4MDBfc2VyaWFsLmMgYi9jcHUvbWlwcy9hdTF4MDBfc2VyaWFsLmMKaW5kZXggZThiYWFiNS4uYzI1YmE1YSAxMDA2NDQKLS0tIGEvY3B1L21pcHMvYXUxeDAwX3NlcmlhbC5jCisrKyBiL2NwdS9taXBzL2F1MXgwMF9zZXJpYWwuYwpAQCAtNzYsNyArNzYsNyBAQAogCXNkID0gKCpzeXNfcG93ZXJjdHJsICYgMHgwMykgKyAyOwogCiAJLyogY2FsdWxhdGUgMnggYmF1ZHJhdGUgYW5kIHJvdW5kICovCi0JZGl2aXNvcngyID0gKChDRkdfTUlQU19USU1FUl9GUkVRLyhzZCAqIDE2ICogQ09ORklHX0JBVURSQVRFKSkpOworCWRpdmlzb3J4MiA9ICgoQ09ORklHX1NZU19NSVBTX1RJTUVSX0ZSRVEvKHNkICogMTYgKiBDT05GSUdfQkFVRFJBVEUpKSk7CiAKIAlpZiAoZGl2aXNvcngyICYgMHgwMSkKIAkJZGl2aXNvcngyID0gZGl2aXNvcngyICsgMTsKZGlmZiAtLWdpdCBhL2NwdS9taXBzL2NhY2hlLlMgYi9jcHUvbWlwcy9jYWNoZS5TCmluZGV4IGVlNWQ0MTEuLmZmNGYxMWMgMTAwNjQ0Ci0tLSBhL2NwdS9taXBzL2NhY2hlLlMKKysrIGIvY3B1L21pcHMvY2FjaGUuUwpAQCAtMjA4LDkgKzIwOCw5IEBACiAqLwogTkVTVEVEKG1pcHNfY2FjaGVfcmVzZXQsIDAsIHJhKQogCW1vdmUJUkEsIHJhCi0JbGkJdDIsIENGR19JQ0FDSEVfU0laRQotCWxpCXQzLCBDRkdfRENBQ0hFX1NJWkUKLQlsaQl0NCwgQ0ZHX0NBQ0hFTElORV9TSVpFCisJbGkJdDIsIENPTkZJR19TWVNfSUNBQ0hFX1NJWkUKKwlsaQl0MywgQ09ORklHX1NZU19EQ0FDSEVfU0laRQorCWxpCXQ0LCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCiAJbW92ZQl0NSwgdDQKIAogCWxpCXYwLCBNSVBTX01BWF9DQUNIRV9TSVpFCkBAIC0zMDIsNyArMzAyLDcgQEAKIAlqcglyYQogCUVORChkY2FjaGVfZW5hYmxlKQogCi0jaWZkZWYgQ0ZHX0lOSVRfUkFNX0xPQ0tfTUlQUworI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DS19NSVBTCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgogKiBtaXBzX2NhY2hlX2xvY2sgLSBsb2NrIFJBTSBhcmVhIHBvaW50ZWQgdG8gYnkgYTAgaW4gY2FjaGUuCkBAIC0zMTEsOSArMzExLDkgQEAKICoKICovCiAjaWYgZGVmaW5lZChDT05GSUdfUFVSUExFKQotIyBkZWZpbmUJQ0FDSEVfTE9DS19TSVpFCShDRkdfRENBQ0hFX1NJWkUvMikKKyMgZGVmaW5lCUNBQ0hFX0xPQ0tfU0laRQkoQ09ORklHX1NZU19EQ0FDSEVfU0laRS8yKQogI2Vsc2UKLSMgZGVmaW5lCUNBQ0hFX0xPQ0tfU0laRQkoQ0ZHX0RDQUNIRV9TSVpFKQorIyBkZWZpbmUJQ0FDSEVfTE9DS19TSVpFCShDT05GSUdfU1lTX0RDQUNIRV9TSVpFKQogI2VuZGlmCiAJLmdsb2JsCW1pcHNfY2FjaGVfbG9jawogCS5lbnQJbWlwc19jYWNoZV9sb2NrCkBAIC0zMjEsMTEgKzMyMSwxMSBAQAogCWxpCWExLCBDS1NFRzAgLSBDQUNIRV9MT0NLX1NJWkUKIAlhZGR1CWEwLCBhMQogCWxpCWEyLCBDQUNIRV9MT0NLX1NJWkUKLQlsaQlhMywgQ0ZHX0NBQ0hFTElORV9TSVpFCisJbGkJYTMsIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKIAltb3ZlCWExLCBhMgogCWljYWNoZW9wKGEwLGExLGEyLGEzLDB4MWQpCiAKIAlqcglyYQogCiAJLmVuZAltaXBzX2NhY2hlX2xvY2sKLSNlbmRpZiAvKiBDRkdfSU5JVF9SQU1fTE9DS19NSVBTICovCisjZW5kaWYgLyogQ09ORklHX1NZU19JTklUX1JBTV9MT0NLX01JUFMgKi8KZGlmZiAtLWdpdCBhL2NwdS9taXBzL2NwdS5jIGIvY3B1L21pcHMvY3B1LmMKaW5kZXggMGY1OGQyNS4uMzhkODY5NyAxMDA2NDQKLS0tIGEvY3B1L21pcHMvY3B1LmMKKysrIGIvY3B1L21pcHMvY3B1LmMKQEAgLTUxLDcgKzUxLDcgQEAKIAogdm9pZCBmbHVzaF9jYWNoZSh1bG9uZyBzdGFydF9hZGRyLCB1bG9uZyBzaXplKQogewotCXVuc2lnbmVkIGxvbmcgbHNpemUgPSBDRkdfQ0FDSEVMSU5FX1NJWkU7CisJdW5zaWduZWQgbG9uZyBsc2l6ZSA9IENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkU7CiAJdW5zaWduZWQgbG9uZyBhZGRyID0gc3RhcnRfYWRkciAmIH4obHNpemUgLSAxKTsKIAl1bnNpZ25lZCBsb25nIGFlbmQgPSAoc3RhcnRfYWRkciArIHNpemUgLSAxKSAmIH4obHNpemUgLSAxKTsKIApkaWZmIC0tZ2l0IGEvY3B1L21pcHMvc3RhcnQuUyBiL2NwdS9taXBzL3N0YXJ0LlMKaW5kZXggMDllNGFhYi4uNmEyMjMwMiAxMDA2NDQKLS0tIGEvY3B1L21pcHMvc3RhcnQuUworKysgYi9jcHUvbWlwcy9zdGFydC5TCkBAIC0yNzQsMTQgKzI3NCwxNCBAQAogCiAJLyogU2V0IHVwIHRlbXBvcmFyeSBzdGFjay4KIAkgKi8KLSNpZmRlZiBDRkdfSU5JVF9SQU1fTE9DS19NSVBTCi0JbGkJYTAsIENGR19JTklUX1NQX09GRlNFVAorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DS19NSVBTCisJbGkJYTAsIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQKIAlsYQl0OSwgbWlwc19jYWNoZV9sb2NrCiAJamFscgl0OQogCW5vcAogI2VuZGlmCiAKLQlsaQl0MCwgQ0ZHX1NEUkFNX0JBU0UgKyBDRkdfSU5JVF9TUF9PRkZTRVQKKwlsaQl0MCwgQ09ORklHX1NZU19TRFJBTV9CQVNFICsgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAogCWxhCXNwLCAwKHQwKQogCiAJbGEJdDksIGJvYXJkX2luaXRfZgpAQCAtMzAzLDcgKzMwMyw3IEBACiByZWxvY2F0ZV9jb2RlOgogCW1vdmUJc3AsIGEwCQkvKiBTZXQgbmV3IHN0YWNrIHBvaW50ZXIJKi8KIAotCWxpCXQwLCBDRkdfTU9OSVRPUl9CQVNFCisJbGkJdDAsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCiAJbGEJdDMsIGluX3JhbQogCWx3CXQyLCAtMTIodDMpCS8qIHQyIDwtLSB1Ym9vdF9lbmRfZGF0YQkqLwogCW1vdmUJdDEsIGEyCkBAIC0zMTEsMTAgKzMxMSwxMCBAQAogCS8qCiAJICogRml4ICRncDoKIAkgKgotCSAqIE5ldyAkZ3AgPSAoT2xkICRncCAtIENGR19NT05JVE9SX0JBU0UpICsgRGVzdGluYXRpb24gQWRkcmVzcworCSAqIE5ldyAkZ3AgPSAoT2xkICRncCAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKIAkgKi8KIAltb3ZlCXQ2LCBncAotCXN1YglncCwgQ0ZHX01PTklUT1JfQkFTRQorCXN1YglncCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UKIAlhZGQJZ3AsIGEyCQkvKiBncCBub3cgYWRqdXN0ZWQJCSovCiAJc3ViCXQ2LCBncCwgdDYJLyogdDYgPC0tIHJlbG9jYXRpb24gb2Zmc2V0CSovCiAKZGlmZiAtLWdpdCBhL2NwdS9tcGM1MTJ4L2NwdS5jIGIvY3B1L21wYzUxMngvY3B1LmMKaW5kZXggZDQzMmQ5OS4uOWI1OTczOCAxMDA2NDQKLS0tIGEvY3B1L21wYzUxMngvY3B1LmMKKysrIGIvY3B1L21wYzUxMngvY3B1LmMKQEAgLTQxLDcgKzQxLDcgQEAKIAogaW50IGNoZWNrY3B1ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXVsb25nIGNsb2NrID0gZ2QtPmNwdV9jbGs7CiAJdTMyIHB2ciA9IGdldF9wdnIgKCk7CiAJdTMyIHNwcmlkciA9IGltbXItPnN5c2NvbmYuc3ByaWRyOwpAQCAtNzUsNyArNzUsNyBAQAogZG9fcmVzZXQgKGNtZF90YmxfdCAqIGNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKIAl1bG9uZyBtc3I7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCS8qIEludGVycnVwdHMgYW5kIE1NVSBvZmYgKi8KIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mbXNyICAgICUwIjoiPXIiIChtc3IpOik7CkBAIC0xMjIsNyArMTIyLDcgQEAKIAlpbnQgcmVfZW5hYmxlID0gZGlzYWJsZV9pbnRlcnJ1cHRzICgpOwogCiAJLyogUmVzZXQgd2F0Y2hkb2cgKi8KLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlpbW1yLT53ZHQuc3dzcnIgPSAweDU1NmM7CiAJaW1tci0+d2R0LnN3c3JyID0gMHhhYTM5OwogCmRpZmYgLS1naXQgYS9jcHUvbXBjNTEyeC9jcHVfaW5pdC5jIGIvY3B1L21wYzUxMngvY3B1X2luaXQuYwppbmRleCBkNjk0OWY2Li5mYTc1M2M4IDEwMDY0NAotLS0gYS9jcHUvbXBjNTEyeC9jcHVfaW5pdC5jCisrKyBiL2NwdS9tcGM1MTJ4L2NwdV9pbml0LmMKQEAgLTM3LDIzICszNywyMyBAQAogCXUzMiBpcHNfZGl2OwogCiAJLyogUG9pbnRlciBpcyB3cml0YWJsZSBzaW5jZSB3ZSBhbGxvY2F0ZWQgYSByZWdpc3RlciBmb3IgaXQgKi8KLQlnZCA9IChnZF90ICopIChDRkdfSU5JVF9SQU1fQUREUiArIENGR19HQkxfREFUQV9PRkZTRVQpOworCWdkID0gKGdkX3QgKikgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKTsKIAogCS8qIENsZWFyIGluaXRpYWwgZ2xvYmFsIGRhdGEgKi8KIAltZW1zZXQgKCh2b2lkICopIGdkLCAwLCBzaXplb2YgKGdkX3QpKTsKIAogCS8qIHN5c3RlbSBwZXJmb3JtYW5jZSB0d2Vha2luZyAqLwogCi0jaWZkZWYgQ0ZHX0FDUl9QSVBFX0RFUAorI2lmZGVmIENPTkZJR19TWVNfQUNSX1BJUEVfREVQCiAJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAqLwogCWltLT5hcmJpdGVyLmFjciA9IChpbS0+YXJiaXRlci5hY3IgJiB+QUNSX1BJUEVfREVQKSB8Ci0JCQkgIChDRkdfQUNSX1BJUEVfREVQIDw8IEFDUl9QSVBFX0RFUF9TSElGVCk7CisJCQkgIChDT05GSUdfU1lTX0FDUl9QSVBFX0RFUCA8PCBBQ1JfUElQRV9ERVBfU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfQUNSX1JQVENOVAorI2lmZGVmIENPTkZJR19TWVNfQUNSX1JQVENOVAogCS8qIEFyYml0ZXIgcmVwZWF0IGNvdW50ICovCiAJaW0tPmFyYml0ZXIuYWNyID0gKChpbS0+YXJiaXRlci5hY3IgJiB+KEFDUl9SUFRDTlQpKSB8Ci0JCQkgICAoQ0ZHX0FDUl9SUFRDTlQgPDwgQUNSX1JQVENOVF9TSElGVCkpOworCQkJICAgKENPTkZJR19TWVNfQUNSX1JQVENOVCA8PCBBQ1JfUlBUQ05UX1NISUZUKSk7CiAjZW5kaWYKIAogCS8qIFJTUiAtIFJlc2V0IFN0YXR1cyBSZWdpc3RlciAtIGNsZWFyIGFsbCBzdGF0dXMgKi8KZGlmZiAtLWdpdCBhL2NwdS9tcGM1MTJ4L2kyYy5jIGIvY3B1L21wYzUxMngvaTJjLmMKaW5kZXggNTZiYTQ0My4uNzdhNmYwZCAxMDA2NDQKLS0tIGEvY3B1L21wYzUxMngvaTJjLmMKKysrIGIvY3B1L21wYzUxMngvaTJjLmMKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlIDxtcGM1MTJ4Lmg+CiAjaW5jbHVkZSA8aTJjLmg+CiAKLSNkZWZpbmUgaW1tciAoKGltbWFwX3QgKilDRkdfSU1NUikKKyNkZWZpbmUgaW1tciAoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpCiAKIC8qIGJ5IGRlZmF1bHQgc2V0IEkyQyBidXMgMCBhY3RpdmUgKi8KIHN0YXRpYyB1bnNpZ25lZCBpbnQgYnVzX251bSA9IDA7CkBAIC00MjIsNyArNDIyLDcgQEAKIAogaW50IGkyY19zZXRfYnVzX3NwZWVkICh1bnNpZ25lZCBpbnQgc3BlZWQpCiB7Ci0JaWYgKHNwZWVkICE9IENGR19JMkNfU1BFRUQpCisJaWYgKHNwZWVkICE9IENPTkZJR19TWVNfSTJDX1NQRUVEKQogCQlyZXR1cm4gLTE7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2NwdS9tcGM1MTJ4L2ludGVycnVwdHMuYyBiL2NwdS9tcGM1MTJ4L2ludGVycnVwdHMuYwppbmRleCA4Y2MyNDFjLi5lZjdjNzczIDEwMDY0NAotLS0gYS9jcHUvbXBjNTEyeC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L21wYzUxMngvaW50ZXJydXB0cy5jCkBAIC0zNyw3ICszNyw3IEBACiAKIGludCBpbnRlcnJ1cHRfaW5pdF9jcHUgKHVuc2lnbmVkICpkZWNyZW1lbnRlcl9jb3VudCkKIHsKLQkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsgKCkgLyBDRkdfSFo7CisJKmRlY3JlbWVudGVyX2NvdW50ID0gZ2V0X3RiY2xrICgpIC8gQ09ORklHX1NZU19IWjsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvY3B1L21wYzUxMngvaW9waW4uYyBiL2NwdS9tcGM1MTJ4L2lvcGluLmMKaW5kZXggM2Q3MDQyZC4uNzhmNGZhMWUgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1MTJ4L2lvcGluLmMKKysrIGIvY3B1L21wYzUxMngvaW9waW4uYwpAQCAtMjksNyArMjksNyBAQAogewogCXNob3J0IGksIGosIHA7CiAJdV9sb25nICpyZWc7Ci0JaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCWltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAKIAlyZWcgPSAodV9sb25nICopJihpbS0+aW9fY3RybC5yZWdzWzBdKTsKIApkaWZmIC0tZ2l0IGEvY3B1L21wYzUxMngvc2VyaWFsLmMgYi9jcHUvbXBjNTEyeC9zZXJpYWwuYwppbmRleCA4YTIxNDA0Li43ZGI4N2E4IDEwMDY0NAotLS0gYS9jcHUvbXBjNTEyeC9zZXJpYWwuYworKysgYi9jcHUvbXBjNTEyeC9zZXJpYWwuYwpAQCAtMzcsNyArMzcsNyBAQAogCiBzdGF0aWMgdm9pZCBmaWZvX2luaXQgKHZvbGF0aWxlIHBzYzUxMnhfdCAqcHNjKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAkvKiByZXNldCBSeCAmIFR4IGZpZm8gc2xpY2UgKi8KIAlwc2MtPnJmY21kID0gUFNDX0ZJRk9fUkVTRVRfU0xJQ0U7CkBAIC02MCw3ICs2MCw3IEBACiAKIGludCBzZXJpYWxfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgcHNjNTEyeF90ICpwc2MgPSAocHNjNTEyeF90ICopICZpbS0+cHNjW0NPTkZJR19QU0NfQ09OU09MRV07CiAJdW5zaWduZWQgbG9uZyBiYXNlY2xrOwogCWludCBkaXY7CkBAIC0xMDYsNyArMTA2LDcgQEAKIAogdm9pZCBzZXJpYWxfcHV0YyAoY29uc3QgY2hhciBjKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHBzYzUxMnhfdCAqcHNjID0gKHBzYzUxMnhfdCAqKSAmaW0tPnBzY1tDT05GSUdfUFNDX0NPTlNPTEVdOwogCiAJaWYgKGMgPT0gJ1xuJykKQEAgLTEyMSw3ICsxMjEsNyBAQAogCiB2b2lkIHNlcmlhbF9wdXRjX3JhdyAoY29uc3QgY2hhciBjKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgcHNjNTEyeF90ICpwc2MgPSAocHNjNTEyeF90ICopICZpbS0+cHNjW0NPTkZJR19QU0NfQ09OU09MRV07CiAKIAkvKiBXYWl0IGZvciBsYXN0IGNoYXJhY3RlciB0byBnby4gKi8KQEAgLTE0MSw3ICsxNDEsNyBAQAogCiBpbnQgc2VyaWFsX2dldGMgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBwc2M1MTJ4X3QgKnBzYyA9IChwc2M1MTJ4X3QgKikgJmltLT5wc2NbQ09ORklHX1BTQ19DT05TT0xFXTsKIAogCS8qIFdhaXQgZm9yIGEgY2hhcmFjdGVyIHRvIGFycml2ZS4gKi8KQEAgLTE1Myw3ICsxNTMsNyBAQAogCiBpbnQgc2VyaWFsX3RzdGMgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBwc2M1MTJ4X3QgKnBzYyA9IChwc2M1MTJ4X3QgKikgJmltLT5wc2NbQ09ORklHX1BTQ19DT05TT0xFXTsKIAogCXJldHVybiAhKHBzYy0+cmZzdGF0ICYgUFNDX0ZJRk9fRU1QVFkpOwpAQCAtMTYxLDcgKzE2MSw3IEBACiAKIHZvaWQgc2VyaWFsX3NldGJyZyAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHBzYzUxMnhfdCAqcHNjID0gKHBzYzUxMnhfdCAqKSAmaW0tPnBzY1tDT05GSUdfUFNDX0NPTlNPTEVdOwogCXVuc2lnbmVkIGxvbmcgYmFzZWNsaywgZGl2OwogCkBAIC0xNzQsNyArMTc0LDcgQEAKIAogdm9pZCBzZXJpYWxfc2V0cnRzKGludCBzKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgcHNjNTEyeF90ICpwc2MgPSAocHNjNTEyeF90ICopICZpbS0+cHNjW0NPTkZJR19QU0NfQ09OU09MRV07CiAKIAlpZiAocykgewpAQCAtMTg5LDcgKzE4OSw3IEBACiAKIGludCBzZXJpYWxfZ2V0Y3RzKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBwc2M1MTJ4X3QgKnBzYyA9IChwc2M1MTJ4X3QgKikgJmltLT5wc2NbQ09ORklHX1BTQ19DT05TT0xFXTsKIAogCXJldHVybiAocHNjLT5pcCAmIDB4MSkgPyAwIDogMTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM1MTJ4L3NwZWVkLmMgYi9jcHUvbXBjNTEyeC9zcGVlZC5jCmluZGV4IGU2MjQ3N2IuLmJhZjYyMTUgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1MTJ4L3NwZWVkLmMKKysrIGIvY3B1L21wYzUxMngvc3BlZWQuYwpAQCAtNjIsMTMgKzYyLDEzIEBACiAKIGludCBnZXRfY2xvY2tzICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdTggc3BtZjsKIAl1OCBjcG1mOwogCXU4IHN5c19kaXY7CiAJdTggaXBzX2RpdjsKIAl1OCBwY2lfZGl2OwotCXUzMiByZWZfY2xrID0gQ0ZHX01QQzUxMlhfQ0xLSU47CisJdTMyIHJlZl9jbGsgPSBDT05GSUdfU1lTX01QQzUxMlhfQ0xLSU47CiAJdTMyIHNwbGw7CiAJdTMyIHN5c19jbGs7CiAJdTMyIGNvcmVfY2xrOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzUxMngvc3RhcnQuUyBiL2NwdS9tcGM1MTJ4L3N0YXJ0LlMKaW5kZXggZmI4YWNiNS4uMjZmM2M1MiAxMDA2NDQKLS0tIGEvY3B1L21wYzUxMngvc3RhcnQuUworKysgYi9jcHUvbXBjNTEyeC9zdGFydC5TCkBAIC0xOTIsOCArMTkyLDggQEAKIAogCS8qIFNldCBJTU1SIGFyZWEgdG8gb3VyIHByZWZlcnJlZCBsb2NhdGlvbiAqLwogCWxpcwlyNCwgQ09ORklHX0RFRkFVTFRfSU1NUkBoCi0JbGlzCXIzLCBDRkdfSU1NUkBoCi0Jb3JpCXIzLCByMywgQ0ZHX0lNTVJAbAorCWxpcwlyMywgQ09ORklHX1NZU19JTU1SQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lNTVJAbAogCXN0dwlyMywgSU1NUkJBUihyNCkKIAltdHNwcglNQkFSLCByMwkJLyogSU1NUkJBUiBpcyBtaXJyb3JlZCBpbnRvIHRoZSBNQkFSIFNQUiAoMzExKSAqLwogCkBAIC0yMDgsMTggKzIwOCwxOCBAQAogCSAqLwogCiAJLyogQm9vdCBDUy9DUzAgd2luZG93IHJhbmdlICovCi0JbGlzICAgICByMywgQ0ZHX0lNTVJAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfSU1NUkBsCisJbGlzICAgICByMywgQ09ORklHX1NZU19JTU1SQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19JTU1SQGwKIAotCWxpcwlyNCwgU1RBUlRfUkVHKENGR19GTEFTSF9CQVNFKQotCW9yaQlyNCwgcjQsIFNUT1BfUkVHKENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfU0laRSkKKwlsaXMJcjQsIFNUQVJUX1JFRyhDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisJb3JpCXI0LCByNCwgU1RPUF9SRUcoQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX1NJWkUpCiAJc3R3CXI0LCBMUENTMEFXKHIzKQogCiAJLyoKIAkgKiBUaGUgU1JBTSB3aW5kb3cgaGFzIGEgZml4ZWQgc2l6ZSAoMjU2SyksIHNvIG9ubHkgdGhlIHN0YXJ0IGFkZHJlc3MKIAkgKiBpcyBuZWNlc3NhcnkKIAkgKi8KLQlsaXMJcjQsIFNUQVJUX1JFRyhDRkdfU1JBTV9CQVNFKSAmIDB4ZmYwMAorCWxpcwlyNCwgU1RBUlRfUkVHKENPTkZJR19TWVNfU1JBTV9CQVNFKSAmIDB4ZmYwMAogCXN0dwlyNCwgU1JBTUJBUihyMykKIAogCS8qCkBAIC0yMzQsMTEgKzIzNCwxMSBAQAogCSAqIFNldCBjb25maWd1cmF0aW9uIG9mIHRoZSBCb290L0NTMCwgdGhlIFNSQU0gd2luZG93IGRvZXMgbm90IGhhdmUgYQogCSAqIGNvbmZpZyByZWdpc3RlciBzbyBubyBwYXJhbXMgY2FuIGJlIHNldCBmb3IgaXQKIAkgKi8KLQlsaXMgICAgIHIzLCAoQ0ZHX0lNTVIgKyBMUENfT0ZGU0VUKUBoCi0Jb3JpICAgICByMywgcjMsIChDRkdfSU1NUiArIExQQ19PRkZTRVQpQGwKKwlsaXMgICAgIHIzLCAoQ09ORklHX1NZU19JTU1SICsgTFBDX09GRlNFVClAaAorCW9yaSAgICAgcjMsIHIzLCAoQ09ORklHX1NZU19JTU1SICsgTFBDX09GRlNFVClAbAogCi0JbGlzICAgICByNCwgQ0ZHX0NTMF9DRkdAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfQ1MwX0NGR0BsCisJbGlzICAgICByNCwgQ09ORklHX1NZU19DUzBfQ0ZHQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19DUzBfQ0ZHQGwKIAlzdHcgICAgIHI0LCBDUzBfQ09ORklHKHIzKQogCiAJLyogTWFzdGVyIGVuYWJsZSBhbGwgQ1MncyAqLwpAQCAtMjQ2LDE1ICsyNDYsMTUgQEAKIAlvcmkJcjQsIHI0LCBDU19DVFJMX01FQGwKIAlzdHcJcjQsIENTX0NUUkwocjMpCiAKLQlsaXMJcjQsIChDRkdfTU9OSVRPUl9CQVNFKUBoCi0Jb3JpCXI0LCByNCwgKENGR19NT05JVE9SX0JBU0UpQGwKKwlsaXMJcjQsIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSlAaAorCW9yaQlyNCwgcjQsIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSlAbAogCWFkZGkJcjUsIHI0LCBpbl9mbGFzaCAtIF9zdGFydCArIEVYQ19PRkZfU1lTX1JFU0VUCiAJbXRscglyNQogCWJscgogCiBpbl9mbGFzaDoKLQlsaXMJcjEsIChDRkdfSU5JVF9SQU1fQUREUiArIENGR19HQkxfREFUQV9PRkZTRVQpQGgKLQlvcmkJcjEsIHIxLCAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKUBsCisJbGlzCXIxLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQpQGgKKwlvcmkJcjEsIHIxLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQpQGwKIAogCWxpCXIwLCAwCQkvKiBNYWtlIHJvb20gZm9yIHN0YWNrIGZyYW1lIGhlYWRlciBhbmQJKi8KIAlzdHd1CXIwLCAtNChyMSkJLyogY2xlYXIgZmluYWwgc3RhY2sgZnJhbWUgc28gdGhhdAkqLwpAQCAtMjY4LDcgKzI2OCw3IEBACiAJR0VUX0dPVAkJCS8qIGluaXRpYWxpemUgR09UIGFjY2VzcwkqLwogCiAJLyogcjM6IElNTVIgKi8KLQlsaXMJcjMsIENGR19JTU1SQGgKKwlsaXMJcjMsIENPTkZJR19TWVNfSU1NUkBoCiAJLyogcnVuIGxvdy1sZXZlbCBDUFUgaW5pdCBjb2RlIChpbiBGbGFzaCkgKi8KIAlibAljcHVfaW5pdF9mCiAKQEAgLTM1MywxMiArMzUzLDEyIEBACiAJU1lOQwogCW10c3ByCVNSUjEsIHIzCQkJLyogTWlycm9yIGN1cnJlbnQgTVNSIHN0YXRlIGluIFNSUjEgKi8KIAotCWxpcwlyMywgQ0ZHX0lNTVJAaAorCWxpcwlyMywgQ09ORklHX1NZU19JTU1SQGgKIAogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQogCS8qIEluaXRpYWxpc2UgdGhlIHdhdGNoZG9nIGFuZCByZXNldCBpdCAqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCWxpcyByNCwgQ0ZHX1dBVENIRE9HX1ZBTFVFCisJbGlzIHI0LCBDT05GSUdfU1lTX1dBVENIRE9HX1ZBTFVFCiAJb3JpIHI0LCByNCwgKFNXQ1JSX1NXRU4gfCBTV0NSUl9TV1JJIHwgU1dDUlJfU1dQUikKIAlzdHcgcjQsIFNXQ1JSKHIzKQogCkBAIC0zODYsMTggKzM4NiwxOCBAQAogCS8qIEluaXRpYWxpemUgdGhlIEhhcmR3YXJlIEltcGxlbWVudGF0aW9uLWRlcGVuZGVudCBSZWdpc3RlcnMgKi8KIAkvKiBISUQwIGFsc28gY29udGFpbnMgY2FjaGUgY29udHJvbAkJCSovCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCWxpcwlyMywgQ0ZHX0hJRDBfSU5JVEBoCi0Jb3JpCXIzLCByMywgQ0ZHX0hJRDBfSU5JVEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0hJRDBfSU5JVEBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19ISUQwX0lOSVRAbAogCVNZTkMKIAltdHNwcglISUQwLCByMwogCi0JbGlzCXIzLCBDRkdfSElEMF9GSU5BTEBoCi0Jb3JpCXIzLCByMywgQ0ZHX0hJRDBfRklOQUxAbAorCWxpcwlyMywgQ09ORklHX1NZU19ISUQwX0ZJTkFMQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0hJRDBfRklOQUxAbAogCVNZTkMKIAltdHNwcglISUQwLCByMwogCi0JbGlzCXIzLCBDRkdfSElEMkBoCi0Jb3JpCXIzLCByMywgQ0ZHX0hJRDJAbAorCWxpcwlyMywgQ09ORklHX1NZU19ISUQyQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0hJRDJAbAogCVNZTkMKIAltdHNwcglISUQyLCByMwogCXN5bmMKQEAgLTQ5OSwxNiArNDk5LDE2IEBACiAJbXIJcjEwLCByNQkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KIAogCW1yCXIzLCAgcjUJCQkJLyogRGVzdGluYXRpb24gQWRkcmVzcyAqLwotCWxpcwlyNCwgQ0ZHX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzICovCi0Jb3JpCXI0LCByNCwgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzICovCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWx3eglyNSwgR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LCByNSwgcjQKLQlsaQlyNiwgQ0ZHX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUgKi8KKwlsaQlyNiwgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJLyogQ2FjaGUgTGluZSBTaXplICovCiAKIAkvKgogCSAqIEZpeCBHT1QgcG9pbnRlcjoKIAkgKgotCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ0ZHX01PTklUT1JfQkFTRSkKKwkgKiBOZXcgR09ULVBUUiA9IChvbGQgR09ULVBUUiAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKQogCSAqCQkrIERlc3RpbmF0aW9uIEFkZHJlc3MKIAkgKgogCSAqIE9mZnNldDoKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHgvY3B1LmMgYi9jcHUvbXBjNXh4L2NwdS5jCmluZGV4IDRiZWY5MGMuLjdmZmZlYmMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHgvY3B1LmMKKysrIGIvY3B1L21wYzV4eC9jcHUuYwpAQCAtODAsNyArODAsNyBAQAogewogCWludCByZV9lbmFibGUgPSBkaXNhYmxlX2ludGVycnVwdHMgKCk7CiAKLQlyZXNldF81eHhfd2F0Y2hkb2cgKChpbW1hcF90ICopIENGR19JTU1SKTsKKwlyZXNldF81eHhfd2F0Y2hkb2cgKChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUik7CiAJaWYgKHJlX2VuYWJsZSkKIAkJZW5hYmxlX2ludGVycnVwdHMgKCk7CiB9CkBAIC0xMDMsMTQgKzEwMywxNCBAQAogICovCiB1bnNpZ25lZCBsb25nIGdldF90YmNsayAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKHZvbGF0aWxlIGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1bG9uZyBvc2NjbGssIGZhY3RvcjsKIAogCWlmIChpbW1yLT5pbV9jbGtyc3QuY2FyX3NjY3IgJiBTQ0NSX1RCUykgewogCQlyZXR1cm4gKGdkLT5jcHVfY2xrIC8gMTYpOwogCX0KIAotCWZhY3RvciA9ICgoKENGR19QTFBSQ1IpICYgUExQUkNSX01GX01TSykgPj4gUExQUkNSX01GX1NISUZUKSArIDE7CisJZmFjdG9yID0gKCgoQ09ORklHX1NZU19QTFBSQ1IpICYgUExQUkNSX01GX01TSykgPj4gUExQUkNSX01GX1NISUZUKSArIDE7CiAKIAlvc2NjbGsgPSBnZC0+Y3B1X2NsayAvIGZhY3RvcjsKIApAQCAtMTQxLDcgKzE0MSw3IEBACiBpbnQgZG9fcmVzZXQgKGNtZF90YmxfdCAqIGNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKICNpZiBkZWZpbmVkKENPTkZJR19QQVRJKQotCXZvbGF0aWxlIHVsb25nICphZGRyID0gKHVsb25nICopIENGR19SRVNFVF9BRERSRVNTOworCXZvbGF0aWxlIHVsb25nICphZGRyID0gKHVsb25nICopIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUzsKIAkqYWRkciA9IDE7CiAjZWxzZQogCXVsb25nIGFkZHI7CkBAIC0xNTUsMTUgKzE1NSwxNSBAQAogCSAqIFRyeWluZyB0byBleGVjdXRlIHRoZSBuZXh0IGluc3RydWN0aW9uIGF0IGEgbm9uLWV4aXN0aW5nIGFkZHJlc3MKIAkgKiBzaG91bGQgY2F1c2UgYSBtYWNoaW5lIGNoZWNrLCByZXN1bHRpbmcgaW4gcmVzZXQKIAkgKi8KLSNpZmRlZiBDRkdfUkVTRVRfQUREUkVTUwotCWFkZHIgPSBDRkdfUkVTRVRfQUREUkVTUzsKKyNpZmRlZiBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MKKwlhZGRyID0gQ09ORklHX1NZU19SRVNFVF9BRERSRVNTOwogI2Vsc2UKIAkvKgotCSAqIG5vdGU6IHdoZW4gQ0ZHX01PTklUT1JfQkFTRSBwb2ludHMgdG8gYSBSQU0gYWRkcmVzcywgQ0ZHX01PTklUT1JfQkFTRSAgICAgICAgICogLSBzaXplb2YgKHVsb25nKSBpcyB1c3VhbGx5IGEgdmFsaWQgYWRkcmVzcy4gQmV0dGVyIHBpY2sgYW4gYWRkcmVzcwotCSAqIGtub3duIHRvIGJlIGludmFsaWQgb24geW91ciBzeXN0ZW0gYW5kIGFzc2lnbiBpdCB0byBDRkdfUkVTRVRfQUREUkVTUy4KKwkgKiBub3RlOiB3aGVuIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIHBvaW50cyB0byBhIFJBTSBhZGRyZXNzLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICAgICAgICogLSBzaXplb2YgKHVsb25nKSBpcyB1c3VhbGx5IGEgdmFsaWQgYWRkcmVzcy4gQmV0dGVyIHBpY2sgYW4gYWRkcmVzcworCSAqIGtub3duIHRvIGJlIGludmFsaWQgb24geW91ciBzeXN0ZW0gYW5kIGFzc2lnbiBpdCB0byBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MuCiAJICogIih1bG9uZyktMSIgdXNlZCB0byBiZSBhIGdvb2QgY2hvaWNlIGZvciBtYW55IHN5c3RlbXMuLi4KIAkgKi8KLQlhZGRyID0gQ0ZHX01PTklUT1JfQkFTRSAtIHNpemVvZiAodWxvbmcpOworCWFkZHIgPSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIHNpemVvZiAodWxvbmcpOwogI2VuZGlmCiAJKCh2b2lkICgqKSAodm9pZCkpIGFkZHIpICgpOwogI2VuZGlmICAvKiAjaWYgZGVmaW5lZChDT05GSUdfUEFUSSkgKi8KZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHgvY3B1X2luaXQuYyBiL2NwdS9tcGM1eHgvY3B1X2luaXQuYwppbmRleCA1YmJiNzk4Li5jYjRiZjg0IDEwMDY0NAotLS0gYS9jcHUvbXBjNXh4L2NwdV9pbml0LmMKKysrIGIvY3B1L21wYzV4eC9jcHVfaW5pdC5jCkBAIC00MSw3NCArNDEsNzQgQEAKIAogCS8qIFNZUENSIC0gY29udGFpbnMgd2F0Y2hkb2cgY29udHJvbC4gVGhpcyB3aWxsIGVuYWJsZSB3YXRjaGRvZyAqLwogCS8qIGlmIENPTkZJR19XQVRDSERPRyBpcyBzZXQgKi8KLQlpbW1yLT5pbV9zaXVfY29uZi5zY19zeXBjciA9IENGR19TWVBDUjsKKwlpbW1yLT5pbV9zaXVfY29uZi5zY19zeXBjciA9IENPTkZJR19TWVNfU1lQQ1I7CiAKICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKIAlyZXNldF81eHhfd2F0Y2hkb2cgKGltbXIpOwogI2VuZGlmCiAKIAkvKiBTSVVNQ1IgLSBjb250YWlucyBkZWJ1ZyBwaW4gY29uZmlndXJhdGlvbiAqLwotCWltbXItPmltX3NpdV9jb25mLnNjX3NpdW1jciB8PSBDRkdfU0lVTUNSOworCWltbXItPmltX3NpdV9jb25mLnNjX3NpdW1jciB8PSBDT05GSUdfU1lTX1NJVU1DUjsKIAogCS8qIEluaXRpYWxpemUgdGltZWJhc2UuIFVubG9jayBUQlNDUksgKi8KIAlpbW1yLT5pbV9zaXRrLnNpdGtfdGJzY3JrID0gS0FQV1JfS0VZOwotCWltbXItPmltX3NpdC5zaXRfdGJzY3IgPSBDRkdfVEJTQ1I7CisJaW1tci0+aW1fc2l0LnNpdF90YnNjciA9IENPTkZJR19TWVNfVEJTQ1I7CiAKIAkvKiBGdWxsIElNQiBidXMgc3BlZWQgKi8KLQlpbW1yLT5pbV91aW1iLnVpbWJfdW1jciA9IENGR19VTUNSOworCWltbXItPmltX3VpbWIudWltYl91bWNyID0gQ09ORklHX1NZU19VTUNSOwogCiAJLyogVGltZSBiYXNlIGFuZCBkZWNyZW1lbnRlciB3aWxsIGJlIGVuYWJsZXMgKFRCRSkgKi8KIAkvKiBpbiBpbml0X3RpbWViYXNlKCkgaW4gdGltZS5jIGNhbGxlZCBmcm9tIGJvYXJkX2luaXRfZigpLiAqLwogCiAJLyogSW5pdGlhbGl6ZSB0aGUgUElULiBVbmxvY2sgUElTQ1JLICovCiAJaW1tci0+aW1fc2l0ay5zaXRrX3Bpc2NyayA9IEtBUFdSX0tFWTsKLQlpbW1yLT5pbV9zaXQuc2l0X3Bpc2NyID0gQ0ZHX1BJU0NSOworCWltbXItPmltX3NpdC5zaXRfcGlzY3IgPSBDT05GSUdfU1lTX1BJU0NSOwogCiAjaWYgIWRlZmluZWQoQ09ORklHX1BBVEkpCiAJLyogUEFUSSBzZXN0IFBMTCBpbiBzdGFydC5TICovCiAJLyogUExMIChDUFUgY2xvY2spIHNldHRpbmdzICovCiAJaW1tci0+aW1fY2xrcnN0ay5jYXJrX3BscHJjcmsgPSBLQVBXUl9LRVk7CiAKLQkvKiBJZiBDRkdfUExQUkNSIChzZXQgaW4gdGhlIHZhcmlvdXMgKl9jb25maWcuaCBmaWxlcykgdHJpZXMgdG8KLQkgKiBzZXQgdGhlIE1GIGZpZWxkLCB0aGVuIGp1c3QgY29weSBDRkdfUExQUkNSIG92ZXIgY2FyX3BscHJjciwKLQkgKiBvdGhlcndpc2UgT1IgaW4gQ0ZHX1BMUFJDUiBzbyB3ZSBkbyBub3QgY2hhbmdlIHRoZSBjdXJyZW50TUYKKwkvKiBJZiBDT05GSUdfU1lTX1BMUFJDUiAoc2V0IGluIHRoZSB2YXJpb3VzICpfY29uZmlnLmggZmlsZXMpIHRyaWVzIHRvCisJICogc2V0IHRoZSBNRiBmaWVsZCwgdGhlbiBqdXN0IGNvcHkgQ09ORklHX1NZU19QTFBSQ1Igb3ZlciBjYXJfcGxwcmNyLAorCSAqIG90aGVyd2lzZSBPUiBpbiBDT05GSUdfU1lTX1BMUFJDUiBzbyB3ZSBkbyBub3QgY2hhbmdlIHRoZSBjdXJyZW50TUYKIAkgKiBmaWVsZCB2YWx1ZS4KIAkgKi8KLSNpZiAoKENGR19QTFBSQ1IgJiBQTFBSQ1JfTUZfTVNLKSAhPSAwKQotCXJlZyA9IENGR19QTFBSQ1I7CQkJLyogcmVzZXQgY29udHJvbCBiaXRzICAgKi8KKyNpZiAoKENPTkZJR19TWVNfUExQUkNSICYgUExQUkNSX01GX01TSykgIT0gMCkKKwlyZWcgPSBDT05GSUdfU1lTX1BMUFJDUjsJCQkvKiByZXNldCBjb250cm9sIGJpdHMgICAqLwogI2Vsc2UKIAlyZWcgPSBpbW1yLT5pbV9jbGtyc3QuY2FyX3BscHJjcjsKIAlyZWcgJj0gUExQUkNSX01GX01TSzsJCQkvKiBpc29sYXRlIE1GIGZpZWxkICovCi0JcmVnIHw9IENGR19QTFBSQ1I7CQkJLyogcmVzZXQgY29udHJvbCBiaXRzICAgKi8KKwlyZWcgfD0gQ09ORklHX1NZU19QTFBSQ1I7CQkJLyogcmVzZXQgY29udHJvbCBiaXRzICAgKi8KICNlbmRpZgogCWltbXItPmltX2Nsa3JzdC5jYXJfcGxwcmNyID0gcmVnOwogCiAjZW5kaWYgLyogIWRlZmluZWQoQ09ORklHX1BBVEkpICovCiAKLQkvKiBTeXN0ZW0gaW50ZWdyYXRpb24gdGltZXJzLiBDRkdfTUFTSyBoYXMgRUJERiBjb25maWd1cmF0aW9uICovCisJLyogU3lzdGVtIGludGVncmF0aW9uIHRpbWVycy4gQ09ORklHX1NZU19NQVNLIGhhcyBFQkRGIGNvbmZpZ3VyYXRpb24gKi8KIAlpbW1yLT5pbV9jbGtyc3RrLmNhcmtfc2NjcmsgPSBLQVBXUl9LRVk7CiAJcmVnID0gaW1tci0+aW1fY2xrcnN0LmNhcl9zY2NyOwogCXJlZyAmPSBTQ0NSX01BU0s7Ci0JcmVnIHw9IENGR19TQ0NSOworCXJlZyB8PSBDT05GSUdfU1lTX1NDQ1I7CiAJaW1tci0+aW1fY2xrcnN0LmNhcl9zY2NyID0gcmVnOwogCiAJLyogTWVtb3J5IENvbnRyb2xsZXIgKi8KLQltZW1jdGwtPm1lbWNfYnIwID0gQ0ZHX0JSMF9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUjBfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjAgPSBDT05GSUdfU1lTX0JSMF9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1IwX1BSRUxJTTsKIAotI2lmIChkZWZpbmVkKENGR19PUjFfUFJFTElNKSAmJiBkZWZpbmVkKENGR19CUjFfUFJFTElNKSkKLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjFfUFJFTElNOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfT1IxX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSMV9QUkVMSU0pKQorCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfT1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlIyX1BSRUxJTSkKLQltZW1jdGwtPm1lbWNfb3IyID0gQ0ZHX09SMl9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjJfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjJfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlIyX1BSRUxJTSkKKwltZW1jdGwtPm1lbWNfb3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SM19QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX0JSM19QUkVMSU0pCi0JbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjMgPSBDRkdfQlIzX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IzX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSM19QUkVMSU0pCisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHgvaW50ZXJydXB0cy5jIGIvY3B1L21wYzV4eC9pbnRlcnJ1cHRzLmMKaW5kZXggYTRmNDdjNy4uMTY3NTQzZiAxMDA2NDQKLS0tIGEvY3B1L21wYzV4eC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L21wYzV4eC9pbnRlcnJ1cHRzLmMKQEAgLTUyLDExICs1MiwxMSBAQAogCiBpbnQgaW50ZXJydXB0X2luaXRfY3B1ICh1bG9uZyAqZGVjcmVtZW50ZXJfY291bnQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJaW50IHZlYzsKIAogCS8qIERlY3JlbWVudGVyIHVzZWQgaGVyZSBmb3Igc3RhdHVzIGxlZCAqLwotCSpkZWNyZW1lbnRlcl9jb3VudCA9IGdldF90YmNsayAoKSAvIENGR19IWjsKKwkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsgKCkgLyBDT05GSUdfU1lTX0haOwogCiAJLyogRGlzYWJsZSBhbGwgaW50ZXJydXB0cyAqLwogCWltbXItPmltX3NpdV9jb25mLnNjX3NpbWFzayA9IDA7CkBAIC03NCw3ICs3NCw3IEBACiAgKi8KIHZvaWQgZXh0ZXJuYWxfaW50ZXJydXB0IChzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlpbnQgaXJxOwogCXVsb25nIHNpbWFzaywgbmV3bWFzazsKIAl1bG9uZyB2ZWMsIHZfYml0OwpAQCAtMTMwLDcgKzEzMCw3IEBACiB2b2lkIGlycV9pbnN0YWxsX2hhbmRsZXIgKGludCB2ZWMsIGludGVycnVwdF9oYW5kbGVyX3QgKiBoYW5kbGVyLAogCQkJCQkJICB2b2lkICphcmcpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJLyogU0lVIGludGVycnVwdCAqLwogCWlmIChpcnFfdmVjc1t2ZWNdLmhhbmRsZXIgIT0gTlVMTCkgewogCQlwcmludGYgKCJTSVUgaW50ZXJydXB0ICVkIDB4JXhcbiIsCkBAIC0xNDgsNyArMTQ4LDcgQEAKIAogdm9pZCBpcnFfZnJlZV9oYW5kbGVyIChpbnQgdmVjKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCS8qIFNJVSBpbnRlcnJ1cHQgKi8KICNpZiAwCiAJcHJpbnRmICgiRnJlZSBDUE0gaW50ZXJydXB0IGZvciB2ZWN0b3IgJWRcbiIsCkBAIC0xNjUsNyArMTY1LDcgQEAKICAqLwogdm9pZCB0aW1lcl9pbnRlcnJ1cHRfY3B1IChzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogI2lmIDAKIAlwcmludGYgKCIqKiogVGltZXIgSW50ZXJydXB0ICoqKiAiKTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHgvc2VyaWFsLmMgYi9jcHUvbXBjNXh4L3NlcmlhbC5jCmluZGV4IDM5ZjU3YTEuLjg4YzZkYjggMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHgvc2VyaWFsLmMKKysrIGIvY3B1L21wYzV4eC9zZXJpYWwuYwpAQCAtNDgsNyArNDgsNyBAQAogCiBpbnQgc2VyaWFsX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCiAJc2VyaWFsX3NldGJyZygpOwogCkBAIC02NSw3ICs2NSw3IEBACiAKIHZvaWQgc2VyaWFsX3B1dGMoY29uc3QgY2hhciBjKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAogCS8qIFRlc3QgZm9yIGNvbXBsZXRpdGlvbiAqLwogCWlmKHJlYWR5X3RvX3NlbmQoKSkgewpAQCAtODcsNyArODcsNyBAQAogCiBpbnQgc2VyaWFsX2dldGModm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgc2hvcnQgc3RhdHVzOwogCXVuc2lnbmVkIGNoYXIgdG1wOwogCkBAIC0xMTUsNyArMTE1LDcgQEAKIAogaW50IHNlcmlhbF90c3RjKCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJc2hvcnQgc3RhdHVzOwogCiAJLyogTmV3IGRhdGEgY2hhcmFjdGVyID8gKi8KQEAgLTEyOSw3ICsxMjksNyBAQAogCiB2b2lkIHNlcmlhbF9zZXRicmcgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXNob3J0IHNjeGJyOwogCiAJLyogU2V0IGJhdWRyYXRlICovCkBAIC0xNTEsNyArMTUxLDcgQEAKIAogaW50IHJlYWR5X3RvX3NlbmQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgc2hvcnQgc3RhdHVzOwogCiAJZG8gewpkaWZmIC0tZ2l0IGEvY3B1L21wYzV4eC9zcGVlZC5jIGIvY3B1L21wYzV4eC9zcGVlZC5jCmluZGV4IDdiN2M1YjkuLmVhNWMxZGUgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHgvc3BlZWQuYworKysgYi9jcHUvbXBjNXh4L3NwZWVkLmMKQEAgLTM4LDE0ICszOCwxNCBAQAogICovCiBpbnQgZ2V0X2Nsb2NrcyAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogI2lmbmRlZglDT05GSUdfNXh4X0dDTEtfRlJFUQogCXVpbnQgZGl2ZiA9IChpbW1yLT5pbV9jbGtyc3QuY2FyX3BscHJjciAmIFBMUFJDUl9ESVZGX01TSyk7CiAJdWludCBtZiA9ICgoaW1tci0+aW1fY2xrcnN0LmNhcl9wbHByY3IgJiBQTFBSQ1JfTUZfTVNLKSA+PiBQTFBSQ1JfTUZfU0hJRlQpOwogCXVsb25nIHZjb291dDsKIAotCXZjb291dCA9IChDRkdfT1NDX0NMSyAvIChkaXZmICsgMSkpICogKG1mICsgMSkgKiAyOworCXZjb291dCA9IChDT05GSUdfU1lTX09TQ19DTEsgLyAoZGl2ZiArIDEpKSAqIChtZiArIDEpICogMjsKIAlpZihpbW1yLT5pbV9jbGtyc3QuY2FyX3BscHJjciAmIFBMUFJDUl9DU1JDX01TSykgewogCQlnZC0+Y3B1X2NsayA9IHZjb291dCAvICgyXigoKGltbXItPmltX2Nsa3JzdC5jYXJfc2NjciAmIFNDQ1JfREZOTF9NU0spID4+IFNDQ1JfREZOTF9TSElGVCkgKyAxKSk7CiAJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHgvc3BpLmMgYi9jcHUvbXBjNXh4L3NwaS5jCmluZGV4IDNjMTg3YmUuLjNjYTE1ZWEgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHgvc3BpLmMKKysrIGIvY3B1L21wYzV4eC9zcGkuYwpAQCAtMTExLDcgKzExMSw3IEBACiAJdm9sYXRpbGUgaW1tYXBfdCAqaW1tcjsKIAl2b2xhdGlsZSBxc21jbTV4eF90ICpxc21jbTsKIAotCWltbXIgPSAoaW1tYXBfdCAqKSAgQ0ZHX0lNTVI7CisJaW1tciA9IChpbW1hcF90ICopICBDT05GSUdfU1lTX0lNTVI7CiAJcXNtY20gPSAocXNtY201eHhfdCAqKSZpbW1yLT5pbV9xc21jbTsKIAogCXFzbWNtLT5xc21jbV9xc21jciA9IDA7IC8qIGFsbCBhY2Nlc3NlcyBlbmFibGVkICovCkBAIC0xMjgsNyArMTI4LDcgQEAKIAkgKiBQUVNQQVJbMDZdID0gMSBbMHgwMjAwXSAtPiBQRVJJOiAoU1BJTU9TSSkKIAkgKiBQUVNQQVJbMDddID0gMSBbMHgwMTAwXSAtPiBQRVJJOiAoU1BJTUlTTykKIAkgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCXFzbWNtLT5xc21jbV9wcXNwYXIgPSAgMHgzIHwgKENGR19TUElfQ1NfVVNFRCA8PCAzKTsKKwlxc21jbS0+cXNtY21fcHFzcGFyID0gIDB4MyB8IChDT05GSUdfU1lTX1NQSV9DU19VU0VEIDw8IDMpOwogCiAJIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAJICogRERSUVNbMDBdID0gMCByZXNlcnZlZApAQCAtMTYwLDcgKzE2MCw3IEBACiAJICogUE9SVFFTWzE0XSA9IDAgWzB4MDAwMl0gLT4gU1BJTU9TSSBPdXRwdXQKIAkgKiBQT1JUUVNbMTVdID0gMCBbMHgwMDAxXSAtPiBTUElNSVNPIElucHV0CiAJICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQlxc21jbS0+cXNtY21fcG9ydHFzIHw9IChDRkdfU1BJX0NTX0JBU0UgPDwgMyk7CisJcXNtY20tPnFzbWNtX3BvcnRxcyB8PSAoQ09ORklHX1NZU19TUElfQ1NfQkFTRSA8PCAzKTsKIAkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCSAqIENvbnRyb2xsIFJlZ2lzdGVyIDAKIAkgKiBTUENSMFswMF0gPSAxICgweDgwMDApIE1hc3RlcgpAQCAtMjM1LDcgKzIzNSw3IEBACiAJdm9sYXRpbGUgaW1tYXBfdCAqaW1tcjsKIAl2b2xhdGlsZSBxc21jbTV4eF90ICpxc21jbTsKIAotCWltbXIgPSAoaW1tYXBfdCAqKSAgQ0ZHX0lNTVI7CisJaW1tciA9IChpbW1hcF90ICopICBDT05GSUdfU1lTX0lNTVI7CiAJcXNtY20gPSAocXNtY201eHhfdCAqKSZpbW1yLT5pbV9xc21jbTsKIAlmb3IoaT0wO2k8MzI7aSsrKSB7CiAJCSBxc21jbS0+cXNtY21fcmVjcmFtW2ldPTB4MDAwMDsKQEAgLTMwOCw3ICszMDgsNyBAQAogCXZvbGF0aWxlIGltbWFwX3QgKmltbXI7CiAJdm9sYXRpbGUgcXNtY201eHhfdCAqcXNtY207CiAKLQlpbW1yID0gKGltbWFwX3QgKikgIENGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKSAgQ09ORklHX1NZU19JTU1SOwogCXFzbWNtID0gKHFzbWNtNXh4X3QgKikmaW1tci0+aW1fcXNtY207CiAKIAlmb3IoaT0wO2k8MzI7aSsrKSB7CkBAIC0zNjQsMTUgKzM2NCwxNSBAQAogCWludCBpOwogCWludCB0bTsKIAl1c2hvcnQgc3RhdHVzOwotCWltbXIgPSAoaW1tYXBfdCAqKSAgQ0ZHX0lNTVI7CisJaW1tciA9IChpbW1hcF90ICopICBDT05GSUdfU1lTX0lNTVI7CiAJcXNtY20gPSAocXNtY201eHhfdCAqKSZpbW1yLT5pbV9xc21jbTsKIAlEUFJJTlQgKCgiKioqIHNwaV94ZmVyIGVudGVyZWQgY291bnQgJWQqKipcbiIsY291bnQpKTsKIAogCS8qIFNldCBDUyBmb3IgZGV2aWNlICovCiAJZm9yKGk9MDtpPChjb3VudC0xKTtpKyspCi0JCXFzbWNtLT5xc21jbV9jb21kcmFtW2ldID0gMHg4MCB8IENGR19TUElfQ1NfQUNUOyAgLyogQ1MzIGlzIGNvbm5lY3RlZCB0byB0aGUgU1BJIEVFUFJPTSAqLworCQlxc21jbS0+cXNtY21fY29tZHJhbVtpXSA9IDB4ODAgfCBDT05GSUdfU1lTX1NQSV9DU19BQ1Q7ICAvKiBDUzMgaXMgY29ubmVjdGVkIHRvIHRoZSBTUEkgRUVQUk9NICovCiAKLQlxc21jbS0+cXNtY21fY29tZHJhbVtpXSA9IENGR19TUElfQ1NfQUNUOyAvKiBDUzMgaXMgY29ubmVjdGVkIHRvIHRoZSBTUEkgRUVQUk9NICovCisJcXNtY20tPnFzbWNtX2NvbWRyYW1baV0gPSBDT05GSUdfU1lTX1NQSV9DU19BQ1Q7IC8qIENTMyBpcyBjb25uZWN0ZWQgdG8gdGhlIFNQSSBFRVBST00gKi8KIAlxc21jbS0+cXNtY21fc3BjcjI9KChjb3VudC0xKSYweDFGKTw8ODsKIAogCURQUklOVCAoKCIqKiogc3BpX3hmZXI6IEJ5dGVzIHRvIGJlIHhmZXJyZWQ6ICVkICoqKlxuIiwgY291bnQpKTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHgvc3RhcnQuUyBiL2NwdS9tcGM1eHgvc3RhcnQuUwppbmRleCAwNjM3MDAzLi5mMmZmZTg0IDEwMDY0NAotLS0gYS9jcHUvbXBjNXh4L3N0YXJ0LlMKKysrIGIvY3B1L21wYzV4eC9zdGFydC5TCkBAIC04Nyw3ICs4Nyw3IEBACiAJLmdsb2JsCV9zdGFydAogX3N0YXJ0OgogCW1mc3ByCXIzLCA2MzgKLQlsaQlyNCwgQ0ZHX0lTQgkJCS8qIFNldCBJU0IgYml0ICovCisJbGkJcjQsIENPTkZJR19TWVNfSVNCCQkJLyogU2V0IElTQiBiaXQgKi8KIAlvcglyMywgcjMsIHI0CiAJbXRzcHIJNjM4LCByMwogCWxpCXIyMSwgQk9PVEZMQUdfQ09MRAkJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0gJKi8KQEAgLTEyMSwxMiArMTIxLDEyIEBACiAJLyogdGhlIGV4dGVybmFsIGZsYXNoIGFjY2VzcyBvbiBQQVRJIGZhaWxzIGlmIHByb2dyYW1taW5nIHRoZSBQTEwgdG8gNDBNSHouCiAJICogQ29weSB0aGUgUExMIHByb2dyYW1taW5nIGNvZGUgdG8gdGhlIGludGVybmFsIFJBTSBhbmQgZXhlY3V0ZSBpdAogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0JbGlzCXIzLCBDRkdfTU9OSVRPUl9CQVNFQGgKLQlvcmkJcjMsIHIzLCBDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJYWRkaQlyMywgcjMsIHBsbF9wcm9nX2NvZGVfc3RhcnQgLSBfc3RhcnQgKyBFWENfT0ZGX1NZU19SRVNFVAogCi0JbGlzCXI0LCBDRkdfSU5JVF9SQU1fQUREUkBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lOSVRfUkFNX0FERFJAbAorCWxpcwlyNCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAbAogCW10bHIJcjQKIAlhZGRpcwlyNSwwLDB4MAogCW9yaQlyNSxyNSwoKHBsbF9wcm9nX2NvZGVfZW5kIC0gcGxsX3Byb2dfY29kZV9zdGFydCkgPj4yKQpAQCAtMTQ0LDggKzE0NCw4IEBACiAJICogQ2FsY3VsYXRlIGFic29sdXRlIGFkZHJlc3MgaW4gRkxBU0ggYW5kIGp1bXAgdGhlcmUKIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0JbGlzCXIzLCBDRkdfTU9OSVRPUl9CQVNFQGgKLQlvcmkJcjMsIHIzLCBDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJYWRkaQlyMywgcjMsIGluX2ZsYXNoIC0gX3N0YXJ0ICsgRVhDX09GRl9TWVNfUkVTRVQKIAltdGxyCXIzCiAJYmxyCkBAIC0xNTUsOSArMTU1LDkgQEAKIAkvKiBJbml0aWFsaXplIHNvbWUgU1BScyB0aGF0IGFyZSBoYXJkIHRvIGFjY2VzcyBmcm9tIEMJCQkqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLQlsaXMgICAgIHIzLCBDRkdfSU1NUkBoCQkJLyogUGFzcyBJTU1SIGFzIGFyZzEgdG8gQyByb3V0aW5lICovCi0JbGlzCXIyLCBDRkdfSU5JVF9TUF9BRERSQGgKLQlvcmkJcjEsIHIyLCBDRkdfSU5JVF9TUF9BRERSQGwJLyogU2V0IHVwIHRoZSBzdGFjayBpbiBpbnRlcm5hbCBTUkFNICovCisJbGlzICAgICByMywgQ09ORklHX1NZU19JTU1SQGgJCQkvKiBQYXNzIElNTVIgYXMgYXJnMSB0byBDIHJvdXRpbmUgKi8KKwlsaXMJcjIsIENPTkZJR19TWVNfSU5JVF9TUF9BRERSQGgKKwlvcmkJcjEsIHIyLCBDT05GSUdfU1lTX0lOSVRfU1BfQUREUkBsCS8qIFNldCB1cCB0aGUgc3RhY2sgaW4gaW50ZXJuYWwgU1JBTSAqLwogCS8qIE5vdGU6IFIwIGlzIHN0aWxsIDAgaGVyZSAqLwogCXN0d3UJcjAsIC00KHIxKQkJCS8qIENsZWFyIGZpbmFsIHN0YWNrIGZyYW1lIHNvIHRoYXQJKi8KIAlzdHd1CXIwLCAtNChyMSkJCQkvKiBzdGFjayBiYWNrdHJhY2VzIHRlcm1pbmF0ZSBjbGVhbmx5CSovCkBAIC0xNzMsOCArMTczLDggQEAKIAogCS8qIFNldCB1cCBkZWJ1ZyBtb2RlIGVudHJ5ICovCiAKLQlsaXMJcjIsIENGR19ERVJAaAotCW9yaQlyMiwgcjIsIENGR19ERVJAbAorCWxpcwlyMiwgQ09ORklHX1NZU19ERVJAaAorCW9yaQlyMiwgcjIsIENPTkZJR19TWVNfREVSQGwKIAltdHNwcglERVIsIHIyCiAKIAkvKiBMZXQgdGhlIEMtY29kZSBzZXQgdXAgdGhlIHJlc3QJCQkJCSovCkBAIC0zODUsMTUgKzM4NSwxNSBAQAogCW1yCXIxMCwgcjUJCS8qIFNhdmUgY29weSBvZiBtb25pdG9yIGRlc3RpbmF0aW9uIEFkZHJlc3MgaW4gU1JBTSAqLwogCiAJbXIJcjMsICByNQkJCQkvKiBEZXN0aW5hdGlvbiBBZGRyZXNzCSovCi0JbGlzCXI0LCBDRkdfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KLQlvcmkJcjQsIHI0LCBDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJbHd6CXI1LCBHT1QoX19pbml0X2VuZCkKIAlzdWIJcjUsIHI1LCByNAogCiAJLyoKIAkgKiBGaXggR09UIHBvaW50ZXI6CiAJICoKLQkgKiBOZXcgR09ULVBUUiA9IChvbGQgR09ULVBUUiAtIENGR19NT05JVE9SX0JBU0UpICsgRGVzdGluYXRpb24gQWRkcmVzcworCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpICsgRGVzdGluYXRpb24gQWRkcmVzcwogCSAqCiAJICogT2Zmc2V0OgogCSAqLwpAQCAtNTgxLDE1ICs1ODEsMTUgQEAKICNpZiBkZWZpbmVkKENPTkZJR19QQVRJKQogLyogUHJvZ3JhbSB0aGUgUExMICovCiBwbGxfcHJvZ19jb2RlX3N0YXJ0OgotCWxpcwlyNCwgKENGR19JTU1SICsgMHgwMDJmYzM4NClAaAotCW9yaQlyNCwgcjQsIChDRkdfSU1NUiArIDB4MDAyZmMzODQpQGwKKwlsaXMJcjQsIChDT05GSUdfU1lTX0lNTVIgKyAweDAwMmZjMzg0KUBoCisJb3JpCXI0LCByNCwgKENPTkZJR19TWVNfSU1NUiArIDB4MDAyZmMzODQpQGwKIAlsaXMJcjMsICgweDU1Y2NhYTMzKUBoCiAJb3JpCXIzLCByMywgKDB4NTVjY2FhMzMpQGwKIAlzdHcJcjMsIDAocjQpCi0JbGlzCXI0LCAoQ0ZHX0lNTVIgKyAweDAwMmZjMjg0KUBoCi0Jb3JpCXI0LCByNCwgKENGR19JTU1SICsgMHgwMDJmYzI4NClAbAotCWxpcwlyMywgQ0ZHX1BMUFJDUkBoCi0Jb3JpCXIzLCByMywgQ0ZHX1BMUFJDUkBsCisJbGlzCXI0LCAoQ09ORklHX1NZU19JTU1SICsgMHgwMDJmYzI4NClAaAorCW9yaQlyNCwgcjQsIChDT05GSUdfU1lTX0lNTVIgKyAweDAwMmZjMjg0KUBsCisJbGlzCXIzLCBDT05GSUdfU1lTX1BMUFJDUkBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19QTFBSQ1JAbAogCXN0dwlyMywgMChyNCkKIAlhZGRpcwlyMywwLDB4MAogCW9yaQlyMyxyMywweEEwMDAKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHh4L2NwdS5jIGIvY3B1L21wYzV4eHgvY3B1LmMKaW5kZXggMTMyNmMzYy4uOWM2YWI3NiAxMDA2NDQKLS0tIGEvY3B1L21wYzV4eHgvY3B1LmMKKysrIGIvY3B1L21wYzV4eHgvY3B1LmMKQEAgLTExOCw3ICsxMTgsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX09GX0xJQkZEVCkgJiYgZGVmaW5lZCAoQ09ORklHX09GX0JPQVJEX1NFVFVQKQogdm9pZCBmdF9jcHVfc2V0dXAodm9pZCAqYmxvYiwgYmRfdCAqYmQpCiB7Ci0JaW50IGRpdiA9IGluXzgoKHZvaWQqKUNGR19NQkFSICsgMHgyMDQpICYgMHgwMDIwID8gOCA6IDQ7CisJaW50IGRpdiA9IGluXzgoKHZvaWQqKUNPTkZJR19TWVNfTUJBUiArIDB4MjA0KSAmIDB4MDAyMCA/IDggOiA0OwogCWNoYXIgKiBjcHVfcGF0aCA9ICIvY3B1cy8iIE9GX0NQVTsKICNpZmRlZiBDT05GSUdfTVBDNXh4eF9GRUMKIAljaGFyICogZXRoX3BhdGggPSAiLyIgT0ZfU09DICIvZXRoZXJuZXRAMzAwMCI7CmRpZmYgLS1naXQgYS9jcHUvbXBjNXh4eC9jcHVfaW5pdC5jIGIvY3B1L21wYzV4eHgvY3B1X2luaXQuYwppbmRleCBiYzYyMDFlLi4xNGJkNDE3IDEwMDY0NAotLS0gYS9jcHUvbXBjNXh4eC9jcHVfaW5pdC5jCisrKyBiL2NwdS9tcGM1eHh4L2NwdV9pbml0LmMKQEAgLTM1LDExICszNSwxMSBAQAogdm9pZCBjcHVfaW5pdF9mICh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgYWRkZWNyID0gKDEgPDwgMjUpOyAvKiBCb290X0NTICovCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkgJiYgZGVmaW5lZChDT05GSUdfTUdUNTEwMCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkgJiYgZGVmaW5lZChDT05GSUdfTUdUNTEwMCkKIAlhZGRlY3IgfD0gKDEgPDwgMjIpOyAvKiBTRFJBTSBlbmFibGUgKi8KICNlbmRpZgogCS8qIFBvaW50ZXIgaXMgd3JpdGFibGUgc2luY2Ugd2UgYWxsb2NhdGVkIGEgcmVnaXN0ZXIgZm9yIGl0ICovCi0JZ2QgPSAoZ2RfdCAqKSAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKKwlnZCA9IChnZF90ICopIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCk7CiAKIAkvKiBDbGVhciBpbml0aWFsIGdsb2JhbCBkYXRhICovCiAJbWVtc2V0ICgodm9pZCAqKSBnZCwgMCwgc2l6ZW9mIChnZF90KSk7CkBAIC00Nyw5NSArNDcsOTUgQEAKIAkvKgogCSAqIE1lbW9yeSBDb250cm9sbGVyOiBjb25maWd1cmUgY2hpcCBzZWxlY3RzIGFuZCBlbmFibGUgdGhlbQogCSAqLwotI2lmIGRlZmluZWQoQ0ZHX0JPT1RDU19TVEFSVCkgJiYgZGVmaW5lZChDRkdfQk9PVENTX1NJWkUpCi0JKih2dV9sb25nICopTVBDNVhYWF9CT09UQ1NfU1RBUlQgPSBTVEFSVF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCk7Ci0JKih2dV9sb25nICopTVBDNVhYWF9CT09UQ1NfU1RPUCA9IFNUT1BfUkVHKENGR19CT09UQ1NfU1RBUlQsCi0JCQlDRkdfQk9PVENTX1NJWkUpOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQpICYmIGRlZmluZWQoQ09ORklHX1NZU19CT09UQ1NfU0laRSkKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0JPT1RDU19TVEFSVCA9IFNUQVJUX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCk7CisJKih2dV9sb25nICopTVBDNVhYWF9CT09UQ1NfU1RPUCA9IFNUT1BfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJULAorCQkJQ09ORklHX1NZU19CT09UQ1NfU0laRSk7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19CT09UQ1NfQ0ZHKQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX0NGRyA9IENGR19CT09UQ1NfQ0ZHOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CT09UQ1NfQ0ZHKQorCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX0NGRyA9IENPTkZJR19TWVNfQk9PVENTX0NGRzsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQ1MwX1NUQVJUKSAmJiBkZWZpbmVkKENGR19DUzBfU0laRSkKLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVEFSVCA9IFNUQVJUX1JFRyhDRkdfQ1MwX1NUQVJUKTsKLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVE9QID0gU1RPUF9SRUcoQ0ZHX0NTMF9TVEFSVCwgQ0ZHX0NTMF9TSVpFKTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1MwX1NUQVJUKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MwX1NJWkUpCisJKih2dV9sb25nICopTVBDNVhYWF9DUzBfU1RBUlQgPSBTVEFSVF9SRUcoQ09ORklHX1NZU19DUzBfU1RBUlQpOworCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MwX1NUT1AgPSBTVE9QX1JFRyhDT05GSUdfU1lTX0NTMF9TVEFSVCwgQ09ORklHX1NZU19DUzBfU0laRSk7CiAJLyogQ1MwIGFuZCBCT09UX0NTIGNhbm5vdCBiZSBlbmFibGVkIGF0IG9uY2UuICovCiAJLyoJYWRkZWNyIHw9ICgxIDw8IDE2KTsgKi8KICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX0NTMF9DRkcpCi0JKih2dV9sb25nICopTVBDNVhYWF9DUzBfQ0ZHID0gQ0ZHX0NTMF9DRkc7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0NTMF9DRkcpCisJKih2dV9sb25nICopTVBDNVhYWF9DUzBfQ0ZHID0gQ09ORklHX1NZU19DUzBfQ0ZHOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19DUzFfU1RBUlQpICYmIGRlZmluZWQoQ0ZHX0NTMV9TSVpFKQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MxX1NUQVJUID0gU1RBUlRfUkVHKENGR19DUzFfU1RBUlQpOwotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MxX1NUT1AgPSBTVE9QX1JFRyhDRkdfQ1MxX1NUQVJULCBDRkdfQ1MxX1NJWkUpOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19DUzFfU1RBUlQpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzFfU0laRSkKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMV9TVEFSVCA9IFNUQVJUX1JFRyhDT05GSUdfU1lTX0NTMV9TVEFSVCk7CisJKih2dV9sb25nICopTVBDNVhYWF9DUzFfU1RPUCA9IFNUT1BfUkVHKENPTkZJR19TWVNfQ1MxX1NUQVJULCBDT05GSUdfU1lTX0NTMV9TSVpFKTsKIAlhZGRlY3IgfD0gKDEgPDwgMTcpOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfQ1MxX0NGRykKLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMV9DRkcgPSBDRkdfQ1MxX0NGRzsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1MxX0NGRykKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMV9DRkcgPSBDT05GSUdfU1lTX0NTMV9DRkc7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0NTMl9TVEFSVCkgJiYgZGVmaW5lZChDRkdfQ1MyX1NJWkUpCi0JKih2dV9sb25nICopTVBDNVhYWF9DUzJfU1RBUlQgPSBTVEFSVF9SRUcoQ0ZHX0NTMl9TVEFSVCk7Ci0JKih2dV9sb25nICopTVBDNVhYWF9DUzJfU1RPUCA9IFNUT1BfUkVHKENGR19DUzJfU1RBUlQsIENGR19DUzJfU0laRSk7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0NTMl9TVEFSVCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMl9TSVpFKQorCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MyX1NUQVJUID0gU1RBUlRfUkVHKENPTkZJR19TWVNfQ1MyX1NUQVJUKTsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMl9TVE9QID0gU1RPUF9SRUcoQ09ORklHX1NZU19DUzJfU1RBUlQsIENPTkZJR19TWVNfQ1MyX1NJWkUpOwogCWFkZGVjciB8PSAoMSA8PCAxOCk7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19DUzJfQ0ZHKQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MyX0NGRyA9IENGR19DUzJfQ0ZHOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19DUzJfQ0ZHKQorCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MyX0NGRyA9IENPTkZJR19TWVNfQ1MyX0NGRzsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQ1MzX1NUQVJUKSAmJiBkZWZpbmVkKENGR19DUzNfU0laRSkKLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTM19TVEFSVCA9IFNUQVJUX1JFRyhDRkdfQ1MzX1NUQVJUKTsKLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTM19TVE9QID0gU1RPUF9SRUcoQ0ZHX0NTM19TVEFSVCwgQ0ZHX0NTM19TSVpFKTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1MzX1NUQVJUKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MzX1NJWkUpCisJKih2dV9sb25nICopTVBDNVhYWF9DUzNfU1RBUlQgPSBTVEFSVF9SRUcoQ09ORklHX1NZU19DUzNfU1RBUlQpOworCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MzX1NUT1AgPSBTVE9QX1JFRyhDT05GSUdfU1lTX0NTM19TVEFSVCwgQ09ORklHX1NZU19DUzNfU0laRSk7CiAJYWRkZWNyIHw9ICgxIDw8IDE5KTsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX0NTM19DRkcpCi0JKih2dV9sb25nICopTVBDNVhYWF9DUzNfQ0ZHID0gQ0ZHX0NTM19DRkc7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0NTM19DRkcpCisJKih2dV9sb25nICopTVBDNVhYWF9DUzNfQ0ZHID0gQ09ORklHX1NZU19DUzNfQ0ZHOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19DUzRfU1RBUlQpICYmIGRlZmluZWQoQ0ZHX0NTNF9TSVpFKQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M0X1NUQVJUID0gU1RBUlRfUkVHKENGR19DUzRfU1RBUlQpOwotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M0X1NUT1AgPSBTVE9QX1JFRyhDRkdfQ1M0X1NUQVJULCBDRkdfQ1M0X1NJWkUpOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19DUzRfU1RBUlQpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzRfU0laRSkKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTNF9TVEFSVCA9IFNUQVJUX1JFRyhDT05GSUdfU1lTX0NTNF9TVEFSVCk7CisJKih2dV9sb25nICopTVBDNVhYWF9DUzRfU1RPUCA9IFNUT1BfUkVHKENPTkZJR19TWVNfQ1M0X1NUQVJULCBDT05GSUdfU1lTX0NTNF9TSVpFKTsKIAlhZGRlY3IgfD0gKDEgPDwgMjApOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfQ1M0X0NGRykKLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTNF9DRkcgPSBDRkdfQ1M0X0NGRzsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1M0X0NGRykKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTNF9DRkcgPSBDT05GSUdfU1lTX0NTNF9DRkc7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0NTNV9TVEFSVCkgJiYgZGVmaW5lZChDRkdfQ1M1X1NJWkUpCi0JKih2dV9sb25nICopTVBDNVhYWF9DUzVfU1RBUlQgPSBTVEFSVF9SRUcoQ0ZHX0NTNV9TVEFSVCk7Ci0JKih2dV9sb25nICopTVBDNVhYWF9DUzVfU1RPUCA9IFNUT1BfUkVHKENGR19DUzVfU1RBUlQsIENGR19DUzVfU0laRSk7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0NTNV9TVEFSVCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTNV9TSVpFKQorCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M1X1NUQVJUID0gU1RBUlRfUkVHKENPTkZJR19TWVNfQ1M1X1NUQVJUKTsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTNV9TVE9QID0gU1RPUF9SRUcoQ09ORklHX1NZU19DUzVfU1RBUlQsIENPTkZJR19TWVNfQ1M1X1NJWkUpOwogCWFkZGVjciB8PSAoMSA8PCAyMSk7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19DUzVfQ0ZHKQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M1X0NGRyA9IENGR19DUzVfQ0ZHOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19DUzVfQ0ZHKQorCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M1X0NGRyA9IENPTkZJR19TWVNfQ1M1X0NGRzsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKIAlhZGRlY3IgfD0gMTsKLSNpZiBkZWZpbmVkKENGR19DUzZfU1RBUlQpICYmIGRlZmluZWQoQ0ZHX0NTNl9TSVpFKQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M2X1NUQVJUID0gU1RBUlRfUkVHKENGR19DUzZfU1RBUlQpOwotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M2X1NUT1AgPSBTVE9QX1JFRyhDRkdfQ1M2X1NUQVJULCBDRkdfQ1M2X1NJWkUpOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19DUzZfU1RBUlQpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzZfU0laRSkKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTNl9TVEFSVCA9IFNUQVJUX1JFRyhDT05GSUdfU1lTX0NTNl9TVEFSVCk7CisJKih2dV9sb25nICopTVBDNVhYWF9DUzZfU1RPUCA9IFNUT1BfUkVHKENPTkZJR19TWVNfQ1M2X1NUQVJULCBDT05GSUdfU1lTX0NTNl9TSVpFKTsKIAlhZGRlY3IgfD0gKDEgPDwgMjYpOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfQ1M2X0NGRykKLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTNl9DRkcgPSBDRkdfQ1M2X0NGRzsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1M2X0NGRykKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTNl9DRkcgPSBDT05GSUdfU1lTX0NTNl9DRkc7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0NTN19TVEFSVCkgJiYgZGVmaW5lZChDRkdfQ1M3X1NJWkUpCi0JKih2dV9sb25nICopTVBDNVhYWF9DUzdfU1RBUlQgPSBTVEFSVF9SRUcoQ0ZHX0NTN19TVEFSVCk7Ci0JKih2dV9sb25nICopTVBDNVhYWF9DUzdfU1RPUCA9IFNUT1BfUkVHKENGR19DUzdfU1RBUlQsIENGR19DUzdfU0laRSk7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0NTN19TVEFSVCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTN19TSVpFKQorCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M3X1NUQVJUID0gU1RBUlRfUkVHKENPTkZJR19TWVNfQ1M3X1NUQVJUKTsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTN19TVE9QID0gU1RPUF9SRUcoQ09ORklHX1NZU19DUzdfU1RBUlQsIENPTkZJR19TWVNfQ1M3X1NJWkUpOwogCWFkZGVjciB8PSAoMSA8PCAyNyk7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19DUzdfQ0ZHKQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M3X0NGRyA9IENGR19DUzdfQ0ZHOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19DUzdfQ0ZHKQorCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M3X0NGRyA9IENPTkZJR19TWVNfQ1M3X0NGRzsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQ1NfQlVSU1QpCi0JKih2dV9sb25nICopTVBDNVhYWF9DU19CVVJTVCA9IENGR19DU19CVVJTVDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1NfQlVSU1QpCisJKih2dV9sb25nICopTVBDNVhYWF9DU19CVVJTVCA9IENPTkZJR19TWVNfQ1NfQlVSU1Q7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19DU19ERUFEQ1lDTEUpCi0JKih2dV9sb25nICopTVBDNVhYWF9DU19ERUFEQ1lDTEUgPSBDRkdfQ1NfREVBRENZQ0xFOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19DU19ERUFEQ1lDTEUpCisJKih2dV9sb25nICopTVBDNVhYWF9DU19ERUFEQ1lDTEUgPSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRTsKICNlbmRpZgogI2VuZGlmIC8qIENPTkZJR19NUEM1MjAwICovCiAKQEAgLTE0NCw4ICsxNDQsOCBAQAogCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1NfQ1RSTCA9ICgxIDw8IDI0KTsKIAogCS8qIFNldHVwIHBpbiBtdWx0aXBsZXhpbmcgKi8KLSNpZiBkZWZpbmVkKENGR19HUFNfUE9SVF9DT05GSUcpCi0JKih2dV9sb25nICopTVBDNVhYWF9HUFNfUE9SVF9DT05GSUcgPSBDRkdfR1BTX1BPUlRfQ09ORklHOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcpCisJKih2dV9sb25nICopTVBDNVhYWF9HUFNfUE9SVF9DT05GSUcgPSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRzsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKQEAgLTE1NCwyOCArMTU0LDI4IEBACiAKIAkvKiBFbmFibGUgc25vb3BpbmcgZm9yIFJBTSAqLwogCSoodnVfbG9uZyAqKShNUEM1WFhYX1hMQkFSQiArIDB4NDApIHw9ICgxIDw8IDE1KTsKLQkqKHZ1X2xvbmcgKikoTVBDNVhYWF9YTEJBUkIgKyAweDcwKSA9IENGR19TRFJBTV9CQVNFIHwgMHgxZDsKKwkqKHZ1X2xvbmcgKikoTVBDNVhYWF9YTEJBUkIgKyAweDcwKSA9IENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IDB4MWQ7CiAKLSMgaWYgZGVmaW5lZChDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEspCisjIGlmIGRlZmluZWQoQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSykKIAkvKiBNb3Rvcm9sYSByZXBvcnRzIElQQiBzaG91bGQgYmV0dGVyIHJ1biBhdCAxMzMgTUh6LiAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfQURERUNSIHw9IDE7CiAJLyogcGNpX2Nsa19zZWwgPSAweDAyLCBpcGJfY2xrX3NlbCA9IDB4MDA7ICovCiAJYWRkZWNyID0gKih2dV9sb25nICopTVBDNVhYWF9DRE1fQ0ZHOwogCWFkZGVjciAmPSB+MHgxMDM7Ci0jICBpZiBkZWZpbmVkKENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyKQorIyAgaWYgZGVmaW5lZChDT05GSUdfU1lTX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIpCiAJLyogcGNpX2Nsa19zZWwgPSAweDAxIC0+IElQQl9DTEsvMiAqLwogCWFkZGVjciB8PSAweDAxOwogIyAgZWxzZQogCS8qIHBjaV9jbGtfc2VsID0gMHgwMiAtPiBYTEJfQ0xLLzQgPSBJUEJfQ0xLLzQgKi8KIAlhZGRlY3IgfD0gMHgwMjsKLSMgIGVuZGlmIC8qIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyICovCisjICBlbmRpZiAvKiBDT05GSUdfU1lTX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIgKi8KIAkqKHZ1X2xvbmcgKilNUEM1WFhYX0NETV9DRkcgPSBhZGRlY3I7Ci0jIGVuZGlmCS8qIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSyAqLworIyBlbmRpZgkvKiBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLICovCiAJLyogQ29uZmlndXJlIHRoZSBYTEIgQXJiaXRlciAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfWExCQVJCX01QUklFTiA9IDB4ZmY7CiAJKih2dV9sb25nICopTVBDNVhYWF9YTEJBUkJfTVBSSVZBTCA9IDB4MTExMTExMTE7CiAKLSMgaWYgZGVmaW5lZChDRkdfWExCX1BJUEVMSU5JTkcpCisjIGlmIGRlZmluZWQoQ09ORklHX1NZU19YTEJfUElQRUxJTklORykKIAkvKiBFbmFibGUgcGlwbGluaW5nICovCiAJKih2dV9sb25nICopKE1QQzVYWFhfWExCQVJCICsgMHg0MCkgJj0gfigxIDw8IDMxKTsKICMgZW5kaWYKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHh4L2Zpcm13YXJlX3NjX3Rhc2tfYmVzdGNvbW0uaW1wbC5TIGIvY3B1L21wYzV4eHgvZmlybXdhcmVfc2NfdGFza19iZXN0Y29tbS5pbXBsLlMKaW5kZXggYTA3Yzc3Ni4uZDE0MGM3ZSAxMDA2NDQKLS0tIGEvY3B1L21wYzV4eHgvZmlybXdhcmVfc2NfdGFza19iZXN0Y29tbS5pbXBsLlMKKysrIGIvY3B1L21wYzV4eHgvZmlybXdhcmVfc2NfdGFza19iZXN0Y29tbS5pbXBsLlMKQEAgLTIzLDcgKzIzLDcgQEAKIC5sb25nICAgMHgwMDAwMDAwMAogLmxvbmcgICAweDAwMDAwMDAwCiAubG9uZyAgIHNjRXRoZXJuZXRSZWN2X0NTYXZlIC0gdGFza1RhYmxlCS8qIFRhc2sgMCBjb250ZXh0IHNhdmUgc3BhY2UgKi8KLS5sb25nICAgQ0ZHX01CQVIKKy5sb25nICAgQ09ORklHX1NZU19NQkFSCiAuZ2xvYmwgc2NFdGhlcm5ldFhtaXRfRW50cnkKIHNjRXRoZXJuZXRYbWl0X0VudHJ5OgkJLyogVGFzayAxICovCiAubG9uZyAgIHNjRXRoZXJuZXRYbWl0X1REVCAtIHRhc2tUYWJsZQkvKiBUYXNrIDEgRGVzY3JpcHRvciBUYWJsZSAqLwpAQCAtMzMsNyArMzMsNyBAQAogLmxvbmcgICAweDAwMDAwMDAwCiAubG9uZyAgIDB4MDAwMDAwMDAKIC5sb25nICAgc2NFdGhlcm5ldFhtaXRfQ1NhdmUgLSB0YXNrVGFibGUJLyogVGFzayAxIGNvbnRleHQgc2F2ZSBzcGFjZSAqLwotLmxvbmcgICBDRkdfTUJBUgorLmxvbmcgICBDT05GSUdfU1lTX01CQVIKIAogCiAuZ2xvYmwgc2NFdGhlcm5ldFJlY3ZfVERUCkBAIC0xNTEsNyArMTUxLDcgQEAKIC5sb25nICAgMHgwMDAwMDAwMAkvKiB2YXJbNl0gKi8KIC5sb25nICAgMHgwMDAwMDAwMAkvKiB2YXJbN10gKi8KIC5sb25nICAgMHgwMDAwMDAwMAkvKiB2YXJbOF0gKi8KLS5sb25nICAgKENGR19NQkFSICsgMHg4ODAwKQkvKiB2YXJbOV0gKi8KKy5sb25nICAgKENPTkZJR19TWVNfTUJBUiArIDB4ODgwMCkJLyogdmFyWzldICovCiAubG9uZyAgIDB4MDAwMDAwMDgJLyogdmFyWzEwXSAqLwogLmxvbmcgICAweDAwMDAwMDBjCS8qIHZhclsxMV0gKi8KIC5sb25nICAgMHg4MDAwMDAwMAkvKiB2YXJbMTJdICovCkBAIC0xOTAsNyArMTkwLDcgQEAKIC5sb25nICAgMHgwMDAwMDAwMAkvKiB2YXJbOF0gKi8KIC5sb25nICAgMHgwMDAwMDAwMAkvKiB2YXJbOV0gKi8KIC5sb25nICAgMHgwMDAwMDAwMAkvKiB2YXJbMTBdICovCi0ubG9uZyAgIChDRkdfTUJBUiArIDB4ODgwMCkJLyogdmFyWzExXSAqLworLmxvbmcgICAoQ09ORklHX1NZU19NQkFSICsgMHg4ODAwKQkvKiB2YXJbMTFdICovCiAubG9uZyAgIDB4MDAwMDAwMDAJLyogdmFyWzEyXSAqLwogLmxvbmcgICAweDgwMDAwMDAwCS8qIHZhclsxM10gKi8KIC5sb25nICAgMHgxMDAwMDAwMAkvKiB2YXJbMTRdICovCmRpZmYgLS1naXQgYS9jcHUvbXBjNXh4eC9pMmMuYyBiL2NwdS9tcGM1eHh4L2kyYy5jCmluZGV4IDBmMDJlNzguLjRkMTZiYmUgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHh4L2kyYy5jCisrKyBiL2NwdS9tcGM1eHh4L2kyYy5jCkBAIC0zMCwxMiArMzAsMTIgQEAKICNpbmNsdWRlIDxtcGM1eHh4Lmg+CiAjaW5jbHVkZSA8aTJjLmg+CiAKLSNpZiAoQ0ZHX0kyQ19NT0RVTEUgPT0gMikKKyNpZiAoQ09ORklHX1NZU19JMkNfTU9EVUxFID09IDIpCiAjZGVmaW5lIEkyQ19CQVNFCU1QQzVYWFhfSTJDMgotI2VsaWYgKENGR19JMkNfTU9EVUxFID09IDEpCisjZWxpZiAoQ09ORklHX1NZU19JMkNfTU9EVUxFID09IDEpCiAjZGVmaW5lIEkyQ19CQVNFCU1QQzVYWFhfSTJDMQogI2Vsc2UKLSNlcnJvciBDRkdfSTJDX01PRFVMRSBpcyBub3QgcHJvcGVybHkgY29uZmlndXJlZAorI2Vycm9yIENPTkZJR19TWVNfSTJDX01PRFVMRSBpcyBub3QgcHJvcGVybHkgY29uZmlndXJlZAogI2VuZGlmCiAKICNkZWZpbmUgSTJDX1RJTUVPVVQJMTAwCmRpZmYgLS1naXQgYS9jcHUvbXBjNXh4eC9pbnRlcnJ1cHRzLmMgYi9jcHUvbXBjNXh4eC9pbnRlcnJ1cHRzLmMKaW5kZXggODgxNmRkMS4uNjAzNTc3MSAxMDA2NDQKLS0tIGEvY3B1L21wYzV4eHgvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9tcGM1eHh4L2ludGVycnVwdHMuYwpAQCAtMjI5LDcgKzIyOSw3IEBACiAKIGludCBpbnRlcnJ1cHRfaW5pdF9jcHUodWxvbmcgKiBkZWNyZW1lbnRlcl9jb3VudCkKIHsKLQkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsoKSAvIENGR19IWjsKKwkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsoKSAvIENPTkZJR19TWVNfSFo7CiAKIAltcGM1eHh4X2luaXRfaXJxKCk7CiAKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHh4L3BjaV9tcGM1MjAwLmMgYi9jcHUvbXBjNXh4eC9wY2lfbXBjNTIwMC5jCmluZGV4IDJmMDFkNWMuLmEzMjUxYWIgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHh4L3BjaV9tcGM1MjAwLmMKKysrIGIvY3B1L21wYzV4eHgvcGNpX21wYzUyMDAuYwpAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUgPG1wYzV4eHguaD4KIAogLyogU3lzdGVtIFJBTSBtYXBwZWQgb3ZlciBQQ0kgKi8KLSNkZWZpbmUgQ09ORklHX1BDSV9NRU1PUllfQlVTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENPTkZJR19QQ0lfTUVNT1JZX1BIWVMJQ0ZHX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9NRU1PUllfQlVTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfUENJX01FTU9SWV9QSFlTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQogI2RlZmluZSBDT05GSUdfUENJX01FTU9SWV9TSVpFCSgxMDI0ICogMTAyNCAqIDEwMjQpCiAKIC8qIFBDSUlXQ1IgYml0IGZpZWxkcyAqLwpAQCAtMTI1LDExICsxMjUsMTEgQEAKIAogCS8qIFNldCBjYWNoZSBsaW5lIHNpemUgKi8KIAkqKHZ1X2xvbmcgKilNUEM1WFhYX1BDSV9DRkcgPSAoKih2dV9sb25nICopTVBDNVhYWF9QQ0lfQ0ZHICYgfjB4ZmYpIHwKLQkJKENGR19DQUNIRUxJTkVfU0laRSAvIDQpOworCQkoQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAvIDQpOwogCiAJLyogTWFwIE1CQVIgdG8gUENJIHNwYWNlICovCi0JKih2dV9sb25nICopTVBDNVhYWF9QQ0lfQkFSMCA9IENGR19NQkFSOwotCSoodnVfbG9uZyAqKU1QQzVYWFhfUENJX1RCQVRSMCA9IENGR19NQkFSIHwgMTsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX1BDSV9CQVIwID0gQ09ORklHX1NZU19NQkFSOworCSoodnVfbG9uZyAqKU1QQzVYWFhfUENJX1RCQVRSMCA9IENPTkZJR19TWVNfTUJBUiB8IDE7CiAKIAkvKiBNYXAgUkFNIHRvIFBDSSBzcGFjZSAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfUENJX0JBUjEgPSBDT05GSUdfUENJX01FTU9SWV9CVVMgfCAoMSA8PCAzKTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHh4L3NlcmlhbC5jIGIvY3B1L21wYzV4eHgvc2VyaWFsLmMKaW5kZXggNDMwZDYzZi4uYThhMzg0YSAxMDA2NDQKLS0tIGEvY3B1L21wYzV4eHgvc2VyaWFsLmMKKysrIGIvY3B1L21wYzV4eHgvc2VyaWFsLmMKQEAgLTEwNiw3ICsxMDYsNyBAQAogCS8qIHNlbGVjdCBjbG9jayBzb3VyY2VzICovCiAjaWYgZGVmaW5lZChDT05GSUdfTUdUNTEwMCkKIAlwc2MtPnBzY19jbG9ja19zZWxlY3QgPSAweGRkMDA7Ci0JYmFzZWNsayA9IChDRkdfTVBDNVhYWF9DTEtJTiArIDE2KSAvIDMyOworCWJhc2VjbGsgPSAoQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOICsgMTYpIC8gMzI7CiAjZWxpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQogCXBzYy0+cHNjX2Nsb2NrX3NlbGVjdCA9IDA7CiAJYmFzZWNsayA9IChnZC0+aXBiX2NsayArIDE2KSAvIDMyOwpAQCAtMjQ3LDcgKzI0Nyw3IEBACiAJdW5zaWduZWQgbG9uZyBiYXNlY2xrLCBkaXY7CiAKICNpZiBkZWZpbmVkKENPTkZJR19NR1Q1MTAwKQotCWJhc2VjbGsgPSAoQ0ZHX01QQzVYWFhfQ0xLSU4gKyAxNikgLyAzMjsKKwliYXNlY2xrID0gKENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTiArIDE2KSAvIDMyOwogI2VsaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKIAliYXNlY2xrID0gKGdkLT5pcGJfY2xrICsgMTYpIC8gMzI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHh4L3NwZWVkLmMgYi9jcHUvbXBjNXh4eC9zcGVlZC5jCmluZGV4IDc4NDdhZGMuLjBlM2U1NTIgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHh4L3NwZWVkLmMKKysrIGIvY3B1L21wYzV4eHgvc3BlZWQuYwpAQCAtNDcsMTUgKzQ3LDE1IEBACiB7CiAJdWxvbmcgdmFsLCB2Y287CiAKLSNpZiAhZGVmaW5lZChDRkdfTVBDNVhYWF9DTEtJTikKLSNlcnJvciBjbG9jayBtZWFzdXJpbmcgbm90IGltcGxlbWVudGVkIHlldCAtIGRlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTikKKyNlcnJvciBjbG9jayBtZWFzdXJpbmcgbm90IGltcGxlbWVudGVkIHlldCAtIGRlZmluZSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4KICNlbmRpZgogCiAJdmFsID0gKih2dV9sb25nICopTVBDNVhYWF9DRE1fUE9SQ0ZHOwogCWlmICh2YWwgJiAoMSA8PCA2KSkgewotCQl2Y28gPSBDRkdfTVBDNVhYWF9DTEtJTiAqIDEyOworCQl2Y28gPSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4gKiAxMjsKIAl9IGVsc2UgewotCQl2Y28gPSBDRkdfTVBDNVhYWF9DTEtJTiAqIDE2OworCQl2Y28gPSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4gKiAxNjsKIAl9CiAJaWYgKHZhbCAmICgxIDw8IDUpKSB7CiAJCWdkLT5idXNfY2xrID0gdmNvIC8gODsKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHh4L3N0YXJ0LlMgYi9jcHUvbXBjNXh4eC9zdGFydC5TCmluZGV4IDliMWJkNDguLmRlZmU3N2QgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHh4L3N0YXJ0LlMKKysrIGIvY3B1L21wYzV4eHgvc3RhcnQuUwpAQCAtMTA2LDE5ICsxMDYsMTkgQEAKIAkvKiBNb3ZlIENTQm9vdCBhbmQgYWRqdXN0IGluc3RydWN0aW9uIHBvaW50ZXIgICAgICAgICAgICAgICAgICAgKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0xPV0JPT1QpCi0jIGlmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCi0jICBlcnJvciBDRkdfTE9XQk9PVCBpcyBpbmNvbXBhdGlibGUgd2l0aCBDRkdfUkFNQk9PVAotIyBlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2lmIGRlZmluZWQoQ09ORklHX1NZU19MT1dCT09UKQorIyBpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKKyMgIGVycm9yIENPTkZJR19TWVNfTE9XQk9PVCBpcyBpbmNvbXBhdGlibGUgd2l0aCBDT05GSUdfU1lTX1JBTUJPT1QKKyMgZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAjIGlmIGRlZmluZWQoQ09ORklHX01HVDUxMDApCi0jICBlcnJvciBDRkdfTE9XQk9PVCBpcyBpbmNvbXBhdGlibGUgd2l0aCBNR1Q1MTAwCisjICBlcnJvciBDT05GSUdfU1lTX0xPV0JPT1QgaXMgaW5jb21wYXRpYmxlIHdpdGggTUdUNTEwMAogIyBlbmRpZiAvKiBDT05GSUdfTUdUNTEwMCAqLwotCWxpcwlyNCwgQ0ZHX0RFRkFVTFRfTUJBUkBoCi0JbGlzCXIzLAlTVEFSVF9SRUcoQ0ZHX0JPT1RDU19TVEFSVClAaAotCW9yaQlyMywgcjMsIFNUQVJUX1JFRyhDRkdfQk9PVENTX1NUQVJUKUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUkBoCisJbGlzCXIzLAlTVEFSVF9SRUcoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQpQGgKKwlvcmkJcjMsIHIzLCBTVEFSVF9SRUcoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQpQGwKIAlzdHcJcjMsIDB4NChyNCkJCS8qIENTMCBzdGFydCAqLwotCWxpcwlyMywJU1RPUF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCwgQ0ZHX0JPT1RDU19TSVpFKUBoCi0Jb3JpCXIzLCByMywgU1RPUF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCwgQ0ZHX0JPT1RDU19TSVpFKUBsCisJbGlzCXIzLAlTVE9QX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCwgQ09ORklHX1NZU19CT09UQ1NfU0laRSlAaAorCW9yaQlyMywgcjMsIFNUT1BfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJULCBDT05GSUdfU1lTX0JPT1RDU19TSVpFKUBsCiAJc3R3CXIzLCAweDgocjQpCQkvKiBDUzAgc3RvcCAqLwogCWxpcwlyMywgICAgIDB4MDIwMTAwMDBAaAogCW9yaQlyMywgcjMsIDB4MDIwMTAwMDBAbApAQCAtMTMwLDIwICsxMzAsMjAgQEAKIAlibHIKIAogbG93Ym9vdF9yZWVudHJ5OgotCWxpcwlyMywJU1RBUlRfUkVHKENGR19CT09UQ1NfU1RBUlQpQGgKLQlvcmkJcjMsIHIzLCBTVEFSVF9SRUcoQ0ZHX0JPT1RDU19TVEFSVClAbAorCWxpcwlyMywJU1RBUlRfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJUKUBoCisJb3JpCXIzLCByMywgU1RBUlRfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJUKUBsCiAJc3R3CXIzLCAweDRjKHI0KQkJLyogQm9vdCBzdGFydCAqLwotCWxpcwlyMywJU1RPUF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCwgQ0ZHX0JPT1RDU19TSVpFKUBoCi0Jb3JpCXIzLCByMywgU1RPUF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCwgQ0ZHX0JPT1RDU19TSVpFKUBsCisJbGlzCXIzLAlTVE9QX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCwgQ09ORklHX1NZU19CT09UQ1NfU0laRSlAaAorCW9yaQlyMywgcjMsIFNUT1BfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJULCBDT05GSUdfU1lTX0JPT1RDU19TSVpFKUBsCiAJc3R3CXIzLCAweDUwKHI0KQkJLyogQm9vdCBzdG9wICovCiAJbGlzCXIzLCAgICAgMHgwMjAwMDAwMUBoCiAJb3JpCXIzLCByMywgMHgwMjAwMDAwMUBsCiAJc3R3CXIzLCAweDU0KHI0KQkJLyogQm9vdCBlbmFibGUsIENTMCBkaXNhYmxlICovCi0jZW5kaWYJLyogQ0ZHX0xPV0JPT1QgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0RFRkFVTFRfTUJBUikgJiYgIWRlZmluZWQoQ0ZHX1JBTUJPT1QpCi0JbGlzCXIzLCBDRkdfTUJBUkBoCi0Jb3JpCXIzLCByMywgQ0ZHX01CQVJAbAorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ERUZBVUxUX01CQVIpICYmICFkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKKwlsaXMJcjMsIENPTkZJR19TWVNfTUJBUkBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19NQkFSQGwKICNpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQogCS8qIE1CQVIgaXMgbWlycm9yZWQgaW50byB0aGUgTUJBUiBTUFIgKi8KIAltdHNwcglNQkFSLHIzCkBAIC0xNTIsOSArMTUyLDkgQEAKICNpZiBkZWZpbmVkKENPTkZJR19NR1Q1MTAwKQogCXJsd2lubQlyMywgcjMsIDE3LCAxNSwgMzEKICNlbmRpZgotCWxpcwlyNCwgQ0ZHX0RFRkFVTFRfTUJBUkBoCisJbGlzCXI0LCBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUkBoCiAJc3R3CXIzLCAwKHI0KQotI2VuZGlmIC8qIENGR19ERUZBVUxUX01CQVIgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUiAqLwogCiAJLyogSW5pdGlhbGlzZSB0aGUgTVBDNXh4eCBwcm9jZXNzb3IgY29yZQkJCSovCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC0xNjUsOSArMTY1LDkgQEAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogCS8qIHNldCB1cCBzdGFjayBpbiBvbi1jaGlwIFNSQU0gKi8KLQlsaXMJcjMsIENGR19JTklUX1JBTV9BRERSQGgKLQlvcmkJcjMsIHIzLCBDRkdfSU5JVF9SQU1fQUREUkBsCi0Jb3JpCXIxLCByMywgQ0ZHX0lOSVRfU1BfT0ZGU0VUCisJbGlzCXIzLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBsCisJb3JpCXIxLCByMywgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAogCWxpCXIwLCAwCQkJLyogTWFrZSByb29tIGZvciBzdGFjayBmcmFtZSBoZWFkZXIgYW5kCSovCiAJc3R3dQlyMCwgLTQocjEpCQkvKiBjbGVhciBmaW5hbCBzdGFjayBmcmFtZSBzbyB0aGF0CSovCiAJc3R3dQlyMCwgLTQocjEpCQkvKiBzdGFjayBiYWNrdHJhY2VzIHRlcm1pbmF0ZSBjbGVhbmx5CSovCkBAIC00MDAsMTMgKzQwMCwxMyBAQAogCS8qIEhJRDAgYWxzbyBjb250YWlucyBjYWNoZSBjb250cm9sCQkJCSovCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLQlsaXMJcjMsIENGR19ISUQwX0lOSVRAaAotCW9yaQlyMywgcjMsIENGR19ISUQwX0lOSVRAbAorCWxpcwlyMywgQ09ORklHX1NZU19ISUQwX0lOSVRAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSElEMF9JTklUQGwKIAlTWU5DCiAJbXRzcHIJSElEMCwgcjMKIAotCWxpcwlyMywgQ0ZHX0hJRDBfRklOQUxAaAotCW9yaQlyMywgcjMsIENGR19ISUQwX0ZJTkFMQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfSElEMF9GSU5BTEBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19ISUQwX0ZJTkFMQGwKIAlTWU5DCiAJbXRzcHIJSElEMCwgcjMKIApAQCAtNTgyLDE2ICs1ODIsMTYgQEAKIAltcglyMTAsIHI1CQkvKiBTYXZlIGNvcHkgb2YgRGVzdGluYXRpb24gQWRkcmVzcwkqLwogCiAJbXIJcjMsICByNQkJCQkvKiBEZXN0aW5hdGlvbiBBZGRyZXNzCSovCi0JbGlzCXI0LCBDRkdfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KLQlvcmkJcjQsIHI0LCBDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJbHd6CXI1LCBHT1QoX19pbml0X2VuZCkKIAlzdWIJcjUsIHI1LCByNAotCWxpCXI2LCBDRkdfQ0FDSEVMSU5FX1NJWkUJCS8qIENhY2hlIExpbmUgU2l6ZQkqLworCWxpCXI2LCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KIAogCS8qCiAJICogRml4IEdPVCBwb2ludGVyOgogCSAqCi0JICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDRkdfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKKwkgKiBOZXcgR09ULVBUUiA9IChvbGQgR09ULVBUUiAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKIAkgKgogCSAqIE9mZnNldDoKIAkgKi8KZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHh4L3VzYi5jIGIvY3B1L21wYzV4eHgvdXNiLmMKaW5kZXggZWQ0NjdhYi4uOGYyYjY2YSAxMDA2NDQKLS0tIGEvY3B1L21wYzV4eHgvdXNiLmMKKysrIGIvY3B1L21wYzV4eHgvdXNiLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWYgZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENGR19VU0JfT0hDSV9DUFVfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSV9ORVcpICYmIGRlZmluZWQoQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVCkKIAogI2luY2x1ZGUgPG1wYzV4eHguaD4KIApAQCAtNTEsNCArNTEsNCBAQAogCXJldHVybiAwOwogfQogCi0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfVVNCX09IQ0kpICYmIGRlZmluZWQoQ0ZHX1VTQl9PSENJX0NQVV9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1VTQl9PSENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQpICovCmRpZmYgLS1naXQgYS9jcHUvbXBjODIyMC9jcHUuYyBiL2NwdS9tcGM4MjIwL2NwdS5jCmluZGV4IGJlMjc0Y2QuLjViM2ZkZDMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjIwL2NwdS5jCisrKyBiL2NwdS9tcGM4MjIwL2NwdS5jCkBAIC00Miw3ICs0Miw3IEBACiAKIAlwcmludGYgKENQVV9JRF9TVFIpOwogCi0JcHJpbnRmICgiIChKVEFHIElEICUwOGx4KSIsICoodnVfbG9uZyAqKSAoQ0ZHX01CQVIgKyAweDUwKSk7CisJcHJpbnRmICgiIChKVEFHIElEICUwOGx4KSIsICoodnVfbG9uZyAqKSAoQ09ORklHX1NZU19NQkFSICsgMHg1MCkpOwogCiAJcHJpbnRmICgiIGF0ICVzIE1IelxuIiwgc3RybWh6IChidWYsIGNsb2NrKSk7CiAKZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjIwL2NwdV9pbml0LmMgYi9jcHUvbXBjODIyMC9jcHVfaW5pdC5jCmluZGV4IDBkYWFjNWIuLjhmNTJjN2QgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjIwL2NwdV9pbml0LmMKKysrIGIvY3B1L21wYzgyMjAvY3B1X2luaXQuYwpAQCAtMzksNyArMzksNyBAQAogCXZvbGF0aWxlIHhsYmFyYjgyMjBfdCAqeGxiYXJiID0gKHZvbGF0aWxlIHhsYmFyYjgyMjBfdCAqKSBNTUFQX1hMQkFSQjsKIAogCS8qIFBvaW50ZXIgaXMgd3JpdGFibGUgc2luY2Ugd2UgYWxsb2NhdGVkIGEgcmVnaXN0ZXIgZm9yIGl0ICovCi0JZ2QgPSAoZ2RfdCAqKSAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKKwlnZCA9IChnZF90ICopIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCk7CiAKIAkvKiBDbGVhciBpbml0aWFsIGdsb2JhbCBkYXRhICovCiAJbWVtc2V0ICgodm9pZCAqKSBnZCwgMCwgc2l6ZW9mIChnZF90KSk7CkBAIC00OSw1NCArNDksNTQgQEAKIAlwb3J0Y2ZnLT5wY2ZnMSA9IDA7CiAJcG9ydGNmZy0+cGNmZzIgPSAwOwogCXBvcnRjZmctPnBjZmczID0gMDsKLQlwb3J0Y2ZnLT5wY2ZnMiA9IENGR19HUDFfUE9SVDJfQ09ORklHOwotCXBvcnRjZmctPnBjZmczID0gQ0ZHX1BDSV9QT1JUM19DT05GSUcgfCBDRkdfR1AyX1BPUlQzX0NPTkZJRzsKKwlwb3J0Y2ZnLT5wY2ZnMiA9IENPTkZJR19TWVNfR1AxX1BPUlQyX0NPTkZJRzsKKwlwb3J0Y2ZnLT5wY2ZnMyA9IENPTkZJR19TWVNfUENJX1BPUlQzX0NPTkZJRyB8IENPTkZJR19TWVNfR1AyX1BPUlQzX0NPTkZJRzsKIAogCS8qCiAJICogRmxleGJ1cyBDb250cm9sbGVyOiBjb25maWd1cmUgY2hpcCBzZWxlY3RzIGFuZCBlbmFibGUgdGhlbQogCSAqLwotI2lmIGRlZmluZWQgKENGR19DUzBfQkFTRSkKLQlmbGV4YnVzLT5jc2FyMCA9IENGR19DUzBfQkFTRTsKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0NTMF9CQVNFKQorCWZsZXhidXMtPmNzYXIwID0gQ09ORklHX1NZU19DUzBfQkFTRTsKIAogLyogU29yY2VyeS1DIGNhbiBoYW5nLXVwIGFmdGVyIENUUkwgcmVnIGluaXRpYWxpemF0aW9uICovCi0jaWYgZGVmaW5lZCAoQ0ZHX0NTMF9DVFJMKQotCWZsZXhidXMtPmNzY3IwID0gQ0ZHX0NTMF9DVFJMOworI2lmIGRlZmluZWQgKENPTkZJR19TWVNfQ1MwX0NUUkwpCisJZmxleGJ1cy0+Y3NjcjAgPSBDT05GSUdfU1lTX0NTMF9DVFJMOwogI2VuZGlmCi0JZmxleGJ1cy0+Y3NtcjAgPSAoKENGR19DUzBfTUFTSyAtIDEpICYgMHhmZmZmMDAwMCkgfCAxOworCWZsZXhidXMtPmNzbXIwID0gKChDT05GSUdfU1lTX0NTMF9NQVNLIC0gMSkgJiAweGZmZmYwMDAwKSB8IDE7CiAJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKICNlbmRpZgotI2lmIGRlZmluZWQgKENGR19DUzFfQkFTRSkKLQlmbGV4YnVzLT5jc2FyMSA9IENGR19DUzFfQkFTRTsKLQlmbGV4YnVzLT5jc2NyMSA9IENGR19DUzFfQ1RSTDsKLQlmbGV4YnVzLT5jc21yMSA9ICgoQ0ZHX0NTMV9NQVNLIC0gMSkgJiAweGZmZmYwMDAwKSB8IDE7CisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19DUzFfQkFTRSkKKwlmbGV4YnVzLT5jc2FyMSA9IENPTkZJR19TWVNfQ1MxX0JBU0U7CisJZmxleGJ1cy0+Y3NjcjEgPSBDT05GSUdfU1lTX0NTMV9DVFJMOworCWZsZXhidXMtPmNzbXIxID0gKChDT05GSUdfU1lTX0NTMV9NQVNLIC0gMSkgJiAweGZmZmYwMDAwKSB8IDE7CiAJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKICNlbmRpZgotI2lmIGRlZmluZWQgKENGR19DUzJfQkFTRSkKLQlmbGV4YnVzLT5jc2FyMiA9IENGR19DUzJfQkFTRTsKLQlmbGV4YnVzLT5jc2NyMiA9IENGR19DUzJfQ1RSTDsKLQlmbGV4YnVzLT5jc21yMiA9ICgoQ0ZHX0NTMl9NQVNLIC0gMSkgJiAweGZmZmYwMDAwKSB8IDE7Ci0JcG9ydGNmZy0+cGNmZzMgfD0gQ0ZHX0NTMl9QT1JUM19DT05GSUc7CisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19DUzJfQkFTRSkKKwlmbGV4YnVzLT5jc2FyMiA9IENPTkZJR19TWVNfQ1MyX0JBU0U7CisJZmxleGJ1cy0+Y3NjcjIgPSBDT05GSUdfU1lTX0NTMl9DVFJMOworCWZsZXhidXMtPmNzbXIyID0gKChDT05GSUdfU1lTX0NTMl9NQVNLIC0gMSkgJiAweGZmZmYwMDAwKSB8IDE7CisJcG9ydGNmZy0+cGNmZzMgfD0gQ09ORklHX1NZU19DUzJfUE9SVDNfQ09ORklHOwogCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7CiAjZW5kaWYKLSNpZiBkZWZpbmVkIChDRkdfQ1MzX0JBU0UpCi0JZmxleGJ1cy0+Y3NhcjMgPSBDRkdfQ1MzX0JBU0U7Ci0JZmxleGJ1cy0+Y3NjcjMgPSBDRkdfQ1MzX0NUUkw7Ci0JZmxleGJ1cy0+Y3NtcjMgPSAoKENGR19DUzNfTUFTSyAtIDEpICYgMHhmZmZmMDAwMCkgfCAxOwotCXBvcnRjZmctPnBjZmczIHw9IENGR19DUzNfUE9SVDNfQ09ORklHOworI2lmIGRlZmluZWQgKENPTkZJR19TWVNfQ1MzX0JBU0UpCisJZmxleGJ1cy0+Y3NhcjMgPSBDT05GSUdfU1lTX0NTM19CQVNFOworCWZsZXhidXMtPmNzY3IzID0gQ09ORklHX1NZU19DUzNfQ1RSTDsKKwlmbGV4YnVzLT5jc21yMyA9ICgoQ09ORklHX1NZU19DUzNfTUFTSyAtIDEpICYgMHhmZmZmMDAwMCkgfCAxOworCXBvcnRjZmctPnBjZmczIHw9IENPTkZJR19TWVNfQ1MzX1BPUlQzX0NPTkZJRzsKIAlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogI2VuZGlmCi0jaWYgZGVmaW5lZCAoQ0ZHX0NTNF9CQVNFKQotCWZsZXhidXMtPmNzYXI0ID0gQ0ZHX0NTNF9CQVNFOwotCWZsZXhidXMtPmNzY3I0ID0gQ0ZHX0NTNF9DVFJMOwotCWZsZXhidXMtPmNzbXI0ID0gKChDRkdfQ1M0X01BU0sgLSAxKSAmIDB4ZmZmZjAwMDApIHwgMTsKLQlwb3J0Y2ZnLT5wY2ZnMyB8PSBDRkdfQ1M0X1BPUlQzX0NPTkZJRzsKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0NTNF9CQVNFKQorCWZsZXhidXMtPmNzYXI0ID0gQ09ORklHX1NZU19DUzRfQkFTRTsKKwlmbGV4YnVzLT5jc2NyNCA9IENPTkZJR19TWVNfQ1M0X0NUUkw7CisJZmxleGJ1cy0+Y3NtcjQgPSAoKENPTkZJR19TWVNfQ1M0X01BU0sgLSAxKSAmIDB4ZmZmZjAwMDApIHwgMTsKKwlwb3J0Y2ZnLT5wY2ZnMyB8PSBDT05GSUdfU1lTX0NTNF9QT1JUM19DT05GSUc7CiAJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKICNlbmRpZgotI2lmIGRlZmluZWQgKENGR19DUzVfQkFTRSkKLQlmbGV4YnVzLT5jc2FyNSA9IENGR19DUzVfQkFTRTsKLQlmbGV4YnVzLT5jc2NyNSA9IENGR19DUzVfQ1RSTDsKLQlmbGV4YnVzLT5jc21yNSA9ICgoQ0ZHX0NTNV9NQVNLIC0gMSkgJiAweGZmZmYwMDAwKSB8IDE7Ci0JcG9ydGNmZy0+cGNmZzMgfD0gQ0ZHX0NTNV9QT1JUM19DT05GSUc7CisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19DUzVfQkFTRSkKKwlmbGV4YnVzLT5jc2FyNSA9IENPTkZJR19TWVNfQ1M1X0JBU0U7CisJZmxleGJ1cy0+Y3NjcjUgPSBDT05GSUdfU1lTX0NTNV9DVFJMOworCWZsZXhidXMtPmNzbXI1ID0gKChDT05GSUdfU1lTX0NTNV9NQVNLIC0gMSkgJiAweGZmZmYwMDAwKSB8IDE7CisJcG9ydGNmZy0+cGNmZzMgfD0gQ09ORklHX1NZU19DUzVfUE9SVDNfQ09ORklHOwogCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvY3B1L21wYzgyMjAvZHJhbVNldHVwLmMgYi9jcHUvbXBjODIyMC9kcmFtU2V0dXAuYwppbmRleCAwOGUzMTcyLi41MmNmMTMzIDEwMDY0NAotLS0gYS9jcHUvbXBjODIyMC9kcmFtU2V0dXAuYworKysgYi9jcHUvbXBjODIyMC9kcmFtU2V0dXAuYwpAQCAtMzQsOSArMzQsOSBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotI2RlZmluZSBTUERfU0laRQlDRkdfU0RSQU1fU1BEX1NJWkUKLSNkZWZpbmUgRFJBTV9TUEQJKENGR19TRFJBTV9TUERfSTJDX0FERFIpPDwxCS8qIG9uIEJvYXJkIFNQRCBlZXByb20gKi8KLSNkZWZpbmUgVE9UQUxfQkFOSwlDRkdfU0RSQU1fVE9UQUxfQkFOS1MKKyNkZWZpbmUgU1BEX1NJWkUJQ09ORklHX1NZU19TRFJBTV9TUERfU0laRQorI2RlZmluZSBEUkFNX1NQRAkoQ09ORklHX1NZU19TRFJBTV9TUERfSTJDX0FERFIpPDwxCS8qIG9uIEJvYXJkIFNQRCBlZXByb20gKi8KKyNkZWZpbmUgVE9UQUxfQkFOSwlDT05GSUdfU1lTX1NEUkFNX1RPVEFMX0JBTktTCiAKIGludCBzcGRfc3RhdHVzICh2b2xhdGlsZSBpMmM4MjIwX3QgKiBwaTJjLCB1OCBzdGFfYml0LCB1OCB0cnVlZmFsc2UpCiB7CkBAIC0xMDMsNyArMTAzLDcgQEAKIAkvKiBFbmFibGUgUG9ydCBDb25maWd1cmF0aW9uIGZvciBTREEgYW5kIFNETCBzaWduYWxzICovCiAJcGNmZyA9ICh2b2xhdGlsZSBwY2ZnODIyMF90ICopIChNTUFQX1BDRkcpOwogCV9fYXNtX18gKCJzeW5jIik7Ci0JcGNmZy0+cGNmZzMgJj0gfkNGR19JMkNfUE9SVDNfQ09ORklHOworCXBjZmctPnBjZmczICY9IH5DT05GSUdfU1lTX0kyQ19QT1JUM19DT05GSUc7CiAJX19hc21fXyAoInN5bmMiKTsKIAogCS8qIFBvaW50cyB0aGUgc3RydWN0dXJlIHRvIEkyYyBtYmFyIG1lbW9yeSBvZmZzZXQgKi8KQEAgLTE0NCw3ICsxNDQsNyBAQAogCQlicmVhazsKIAl9CiAKLQlwaTJjUmVnLT5hZHIgPSBDRkdfSTJDX1NMQVZFPDwxOworCXBpMmNSZWctPmFkciA9IENPTkZJR19TWVNfSTJDX1NMQVZFPDwxOwogCiAJcGkyY1JlZy0+Y3IgPSBJMkNfQ1RMX0VOOwkvKiBTZXQgRW5hYmxlICAgICAgICAgKi8KIApAQCAtNTQxLDcgKzU0MSw3IEBACiAJfQogCiAJLyogU2V0IHVwIHRoZSBEcml2ZSBTdHJlbmd0aCByZWdpc3RlciAqLwotCXN5c2NvbmYtPnNkcmFtZHMgPSBDRkdfU0RSQU1fRFJJVkVfU1RSRU5HVEg7CisJc3lzY29uZi0+c2RyYW1kcyA9IENPTkZJR19TWVNfU0RSQU1fRFJJVkVfU1RSRU5HVEg7CiAKIAkvKiAqKioqKioqKioqKioqKioqKioqKioqIENmZyAxICoqKioqKioqKioqKioqKioqKioqKioqKiogKi8KIApAQCAtNjc5LDcgKzY3OSw3IEBACiAKIAogCS8qIFNldCB1cCBtb2RlIHZhbHVlIGZvciBDQVMgbGF0ZW5jeSAqLwotI2lmIChDRkdfU0RSQU1fQ0FTX0xBVEVOQ1k9PTUpIC8qIENMPTIuNSAqLworI2lmIChDT05GSUdfU1lTX1NEUkFNX0NBU19MQVRFTkNZPT01KSAvKiBDTD0yLjUgKi8KIAltb2RlX3ZhbHVlID0gKE1PREVfTU9ERSB8IE1PREVfQlVSU1RMRU4gKE1PREVfQlVSU1RMRU5fOCkgfAogCQlNT0RFX0JUX1NFUVVFTlRJQUwgfCBNT0RFX0NMIChNT0RFX0NMXzJwNSkgfCBNT0RFX0NNRCk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvY3B1L21wYzgyMjAvaW50ZXJydXB0cy5jIGIvY3B1L21wYzgyMjAvaW50ZXJydXB0cy5jCmluZGV4IDAzNjM3OGMuLjc4ZTk5MTcgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjIwL2ludGVycnVwdHMuYworKysgYi9jcHUvbXBjODIyMC9pbnRlcnJ1cHRzLmMKQEAgLTM0LDcgKzM0LDcgQEAKIAogaW50IGludGVycnVwdF9pbml0X2NwdSAodWxvbmcgKiBkZWNyZW1lbnRlcl9jb3VudCkKIHsKLQkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsgKCkgLyBDRkdfSFo7CisJKmRlY3JlbWVudGVyX2NvdW50ID0gZ2V0X3RiY2xrICgpIC8gQ09ORklHX1NZU19IWjsKIAogCXJldHVybiAoMCk7CiB9CmRpZmYgLS1naXQgYS9jcHUvbXBjODIyMC9wY2kuYyBiL2NwdS9tcGM4MjIwL3BjaS5jCmluZGV4IDRlZjIxNGUuLmE3OGE4MjggMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjIwL3BjaS5jCisrKyBiL2NwdS9tcGM4MjIwL3BjaS5jCkBAIC0zMyw4ICszMyw4IEBACiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQogCiAvKiBTeXN0ZW0gUkFNIG1hcHBlZCBvdmVyIFBDSSAqLwotI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fQlVTCSBDRkdfU0RSQU1fQkFTRQotI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fUEhZUwkgQ0ZHX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX0JVUwkgQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9QSFlTCSBDT05GSUdfU1lTX1NEUkFNX0JBU0UKICNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX1NJWkUJICgxMDI0ICogMTAyNCAqIDEwMjQpCiAKICNkZWZpbmUgY2ZnX3JlYWQodmFsLCBhZGRyLCB0eXBlLCBvcCkJCSp2YWwgPSBvcCgodHlwZSkoYWRkcikpOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzgyMjAvc3BlZWQuYyBiL2NwdS9tcGM4MjIwL3NwZWVkLmMKaW5kZXggMjAwYTc2Mi4uYzAxY2EwYyAxMDA2NDQKLS0tIGEvY3B1L21wYzgyMjAvc3BlZWQuYworKysgYi9jcHUvbXBjODIyMC9zcGVlZC5jCkBAIC02NywyNSArNjcsMjUgQEAKIAl1MzIgaGlkMTsKIAlpbnQgaSwgc2l6ZSwgcGNpMmJ1czsKIAotI2lmICFkZWZpbmVkKENGR19NUEM4MjIwX0NMS0lOKQotI2Vycm9yIGNsb2NrIG1lYXN1cmluZyBub3QgaW1wbGVtZW50ZWQgeWV0IC0gZGVmaW5lIENGR19NUEM4MjIwX0NMS0lOCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19NUEM4MjIwX0NMS0lOKQorI2Vycm9yIGNsb2NrIG1lYXN1cmluZyBub3QgaW1wbGVtZW50ZWQgeWV0IC0gZGVmaW5lIENPTkZJR19TWVNfTVBDODIyMF9DTEtJTgogI2VuZGlmCiAKLQlnZC0+aW5wX2NsayA9IENGR19NUEM4MjIwX0NMS0lOOworCWdkLT5pbnBfY2xrID0gQ09ORklHX1NZU19NUEM4MjIwX0NMS0lOOwogCiAJLyogUmVhZCBYTEIgdG8gUENJKElOUCkgY2xvY2sgbXVsdGlwbGllciAqLwogCXBjaTJidXMgPSAoKigodm9sYXRpbGUgdTMyICopUENJX1JFR19QQ0lHU0NSKSAmCiAJCVBDSV9SRUdfUENJR1NDUl9QQ0kyWExCX0NMS19NQVNLKT4+UENJX1JFR19QQ0lHU0NSX1BDSTJYTEJfQ0xLX0JJVDsKIAogCS8qIFhMQiBidXMgY2xvY2sgKi8KLQlnZC0+YnVzX2NsayA9IENGR19NUEM4MjIwX0NMS0lOICogcGNpMmJ1czsKKwlnZC0+YnVzX2NsayA9IENPTkZJR19TWVNfTVBDODIyMF9DTEtJTiAqIHBjaTJidXM7CiAKIAkvKiBQQ0kgY2xvY2sgaXMgc2FtZSBhcyBpbnB1dCBjbG9jayAqLwotCWdkLT5wY2lfY2xrID0gQ0ZHX01QQzgyMjBfQ0xLSU47CisJZ2QtPnBjaV9jbGsgPSBDT05GSUdfU1lTX01QQzgyMjBfQ0xLSU47CiAKIAkvKiBGbGV4QnVzIGlzIHRlbXBvcmFyeSBzZXQgYXMgdGhlIHNhbWUgYXMgaW5wdXQgY2xvY2sgKi8KIAkvKiB3aWxsIGRvIGR5bmFtaWMgaW4gdGhlIGZ1dHVyZSAqLwotCWdkLT5mbGJfY2xrID0gQ0ZHX01QQzgyMjBfQ0xLSU47CisJZ2QtPmZsYl9jbGsgPSBDT05GSUdfU1lTX01QQzgyMjBfQ0xLSU47CiAKIAkvKiBDUFUgQ2xvY2sgLSBSZWFkIEhJRDEgKi8KIAlhc20gdm9sYXRpbGUgKCJtZnNwciAlMCwgMTAwOSI6Ij1yIiAoaGlkMSk6KTsKQEAgLTk3LDcgKzk3LDcgQEAKIAlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQogCQlpZiAoaGlkMSA9PSBidXMyY29yZVtpXS5oaWQxKSB7CiAJCQlnZC0+Y3B1X2NsayA9IChidXMyY29yZVtpXS5tdWx0aSAqIGdkLT5idXNfY2xrKSA+PiAxOwotCQkJZ2QtPnZjb19jbGsgPSBDRkdfTVBDODIyMF9TWVNQTExfVkNPX01VTFRJUExJRVIgKiAoZ2QtPnBjaV9jbGsgKiBidXMyY29yZVtpXS52Y29fZGl2KS8yOworCQkJZ2QtPnZjb19jbGsgPSBDT05GSUdfU1lTX01QQzgyMjBfU1lTUExMX1ZDT19NVUxUSVBMSUVSICogKGdkLT5wY2lfY2xrICogYnVzMmNvcmVbaV0udmNvX2RpdikvMjsKIAkJCWJyZWFrOwogCQl9CiAKZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjIwL3N0YXJ0LlMgYi9jcHUvbXBjODIyMC9zdGFydC5TCmluZGV4IGI1MTQ1Y2EuLjM3M2JlMmMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjIwL3N0YXJ0LlMKKysrIGIvY3B1L21wYzgyMjAvc3RhcnQuUwpAQCAtMTA1LDE2ICsxMDUsMTYgQEAKIAkvKiByZXBsYWNlIGRlZmF1bHQgTUJBUiBiYXNlIGFkZHJlc3MgZnJvbSAweDgwMDAwMDAwCiAJICAgIHRvIDB4ZjAwMDAwMDAgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0RFRkFVTFRfTUJBUikgJiYgIWRlZmluZWQoQ0ZHX1JBTUJPT1QpCi0JbGlzCXIzLCBDRkdfTUJBUkBoCi0Jb3JpCXIzLCByMywgQ0ZHX01CQVJAbAorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ERUZBVUxUX01CQVIpICYmICFkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKKwlsaXMJcjMsIENPTkZJR19TWVNfTUJBUkBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19NQkFSQGwKIAogCS8qIE1CQVIgaXMgbWlycm9yZWQgaW50byB0aGUgTUJBUiBTUFIgKi8KIAltdHNwcglNQkFSLHIzCiAJbXRzcHIJU1BSTl9TUFJHN1cscjMKLQlsaXMJcjQsIENGR19ERUZBVUxUX01CQVJAaAorCWxpcwlyNCwgQ09ORklHX1NZU19ERUZBVUxUX01CQVJAaAogCXN0dwlyMywgMChyNCkKLSNlbmRpZiAvKiBDRkdfREVGQVVMVF9NQkFSICovCisjZW5kaWYgLyogQ09ORklHX1NZU19ERUZBVUxUX01CQVIgKi8KIAogCS8qIEluaXRpYWxpc2UgdGhlIE1QQzgyMjAgcHJvY2Vzc29yIGNvcmUJCQkqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpAQCAtMTI1LDkgKzEyNSw5IEBACiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKIAkvKiBzZXQgdXAgc3RhY2sgaW4gb24tY2hpcCBTUkFNICovCi0JbGlzCXIzLCBDRkdfSU5JVF9SQU1fQUREUkBoCi0Jb3JpCXIzLCByMywgQ0ZHX0lOSVRfUkFNX0FERFJAbAotCW9yaQlyMSwgcjMsIENGR19JTklUX1NQX09GRlNFVAorCWxpcwlyMywgQ09ORklHX1NZU19JTklUX1JBTV9BRERSQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAbAorCW9yaQlyMSwgcjMsIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQKIAogCWxpCXIwLCAwCQkvKiBNYWtlIHJvb20gZm9yIHN0YWNrIGZyYW1lIGhlYWRlciBhbmQgKi8KIAlzdHd1CXIwLCAtNChyMSkJLyogY2xlYXIgZmluYWwgc3RhY2sgZnJhbWUgc28gdGhhdAkqLwpAQCAtMzYxLDEzICszNjEsMTMgQEAKIAkvKiBISUQwIGFsc28gY29udGFpbnMgY2FjaGUgY29udHJvbAkJCQkqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0JbGlzCXIzLCBDRkdfSElEMF9JTklUQGgKLQlvcmkJcjMsIHIzLCBDRkdfSElEMF9JTklUQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfSElEMF9JTklUQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0hJRDBfSU5JVEBsCiAJU1lOQwogCW10c3ByCUhJRDAsIHIzCiAKLQlsaXMJcjMsIENGR19ISUQwX0ZJTkFMQGgKLQlvcmkJcjMsIHIzLCBDRkdfSElEMF9GSU5BTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0hJRDBfRklOQUxAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSElEMF9GSU5BTEBsCiAJU1lOQwogCW10c3ByCUhJRDAsIHIzCiAKQEAgLTQ1OCw3ICs0NTgsNyBAQAogCS5nbG9ibAlpY2FjaGVfZW5hYmxlCiBpY2FjaGVfZW5hYmxlOgogCWxpcwlyNCwgMAotCW9yaQlyNCwgcjQsIENGR19ISUQwX0lOSVQgLyogc2V0IElDRSAmIElDRkkgYml0CQkqLworCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSElEMF9JTklUIC8qIHNldCBJQ0UgJiBJQ0ZJIGJpdAkJKi8KIAlybHdpbm0JcjMsIHI0LCAwLCAyMSwgMTkgICAgIC8qIGNsZWFyIHRoZSBJQ0ZJIGJpdAkJKi8KIAogCS8qCkBAIC01NDcsMTYgKzU0NywxNiBAQAogCW1yCXIxMCwgcjUJICAgIC8qIFNhdmUgY29weSBvZiBEZXN0aW5hdGlvbiBBZGRyZXNzICovCiAKIAltcglyMywgIHI1CSAgICAvKiBEZXN0aW5hdGlvbiBBZGRyZXNzCQkqLwotCWxpcwlyNCwgQ0ZHX01PTklUT1JfQkFTRUBoCS8qIFNvdXJjZSBBZGRyZXNzCSovCi0Jb3JpCXI0LCByNCwgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCS8qIFNvdXJjZSBBZGRyZXNzCSovCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWx3eglyNSwgR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LCByNSwgcjQKLQlsaQlyNiwgQ0ZHX0NBQ0hFTElORV9TSVpFCS8qIENhY2hlIExpbmUgU2l6ZQkqLworCWxpCXI2LCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCS8qIENhY2hlIExpbmUgU2l6ZQkqLwogCiAJLyoKIAkgKiBGaXggR09UIHBvaW50ZXI6CiAJICoKLQkgKiBOZXcgR09ULVBUUiA9IChvbGQgR09ULVBUUiAtIENGR19NT05JVE9SX0JBU0UpICsgRGVzdGluYXRpb24gQWRkcmVzcworCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpICsgRGVzdGluYXRpb24gQWRkcmVzcwogCSAqCiAJICogT2Zmc2V0OgogCSAqLwpkaWZmIC0tZ2l0IGEvY3B1L21wYzgyNHgvY3B1LmMgYi9jcHUvbXBjODI0eC9jcHUuYwppbmRleCAwYTQ1Y2M4Li4wOGY2YTk0IDEwMDY0NAotLS0gYS9jcHUvbXBjODI0eC9jcHUuYworKysgYi9jcHUvbXBjODI0eC9jcHUuYwpAQCAtMTA5LDE3ICsxMDksMTcgQEAKIAkgKiBUcnlpbmcgdG8gZXhlY3V0ZSB0aGUgbmV4dCBpbnN0cnVjdGlvbiBhdCBhIG5vbi1leGlzdGluZyBhZGRyZXNzCiAJICogc2hvdWxkIGNhdXNlIGEgbWFjaGluZSBjaGVjaywgcmVzdWx0aW5nIGluIHJlc2V0CiAJICovCi0jaWZkZWYgQ0ZHX1JFU0VUX0FERFJFU1MKLQlhZGRyID0gQ0ZHX1JFU0VUX0FERFJFU1M7CisjaWZkZWYgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCisJYWRkciA9IENPTkZJR19TWVNfUkVTRVRfQUREUkVTUzsKICNlbHNlCiAJLyoKLQkgKiBub3RlOiB3aGVuIENGR19NT05JVE9SX0JBU0UgcG9pbnRzIHRvIGEgUkFNIGFkZHJlc3MsCi0JICogQ0ZHX01PTklUT1JfQkFTRSAtIHNpemVvZiAodWxvbmcpIGlzIHVzdWFsbHkgYSB2YWxpZAorCSAqIG5vdGU6IHdoZW4gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgcG9pbnRzIHRvIGEgUkFNIGFkZHJlc3MsCisJICogQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKSBpcyB1c3VhbGx5IGEgdmFsaWQKIAkgKiBhZGRyZXNzLiBCZXR0ZXIgcGljayBhbiBhZGRyZXNzIGtub3duIHRvIGJlIGludmFsaWQgb24KLQkgKiB5b3VyIHN5c3RlbSBhbmQgYXNzaWduIGl0IHRvIENGR19SRVNFVF9BRERSRVNTLgorCSAqIHlvdXIgc3lzdGVtIGFuZCBhc3NpZ24gaXQgdG8gQ09ORklHX1NZU19SRVNFVF9BRERSRVNTLgogCSAqICIodWxvbmcpLTEiIHVzZWQgdG8gYmUgYSBnb29kIGNob2ljZSBmb3IgbWFueSBzeXN0ZW1zLi4uCiAJICovCi0JYWRkciA9IENGR19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKTsKKwlhZGRyID0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKTsKICNlbmRpZgogCSgodm9pZCAoKikodm9pZCkpIGFkZHIpICgpOwogCXJldHVybiAxOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzgyNHgvY3B1X2luaXQuYyBiL2NwdS9tcGM4MjR4L2NwdV9pbml0LmMKaW5kZXggNzg3MTAzMS4uMzk1Zjc3NiAxMDA2NDQKLS0tIGEvY3B1L21wYzgyNHgvY3B1X2luaXQuYworKysgYi9jcHUvbXBjODI0eC9jcHVfaW5pdC5jCkBAIC0yNSwzMiArMjUsMzIgQEAKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAjaW5jbHVkZSA8bXBjODI0eC5oPgogCi0jaWZuZGVmIENGR19CQU5LMF9ST1cKLSNkZWZpbmUgQ0ZHX0JBTkswX1JPVyAwCisjaWZuZGVmIENPTkZJR19TWVNfQkFOSzBfUk9XCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfUk9XIDAKICNlbmRpZgotI2lmbmRlZiBDRkdfQkFOSzFfUk9XCi0jZGVmaW5lIENGR19CQU5LMV9ST1cgMAorI2lmbmRlZiBDT05GSUdfU1lTX0JBTksxX1JPVworI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX1JPVyAwCiAjZW5kaWYKLSNpZm5kZWYgQ0ZHX0JBTksyX1JPVwotI2RlZmluZSBDRkdfQkFOSzJfUk9XIDAKKyNpZm5kZWYgQ09ORklHX1NZU19CQU5LMl9ST1cKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9ST1cgMAogI2VuZGlmCi0jaWZuZGVmIENGR19CQU5LM19ST1cKLSNkZWZpbmUgQ0ZHX0JBTkszX1JPVyAwCisjaWZuZGVmIENPTkZJR19TWVNfQkFOSzNfUk9XCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfUk9XIDAKICNlbmRpZgotI2lmbmRlZiBDRkdfQkFOSzRfUk9XCi0jZGVmaW5lIENGR19CQU5LNF9ST1cgMAorI2lmbmRlZiBDT05GSUdfU1lTX0JBTks0X1JPVworI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X1JPVyAwCiAjZW5kaWYKLSNpZm5kZWYgQ0ZHX0JBTks1X1JPVwotI2RlZmluZSBDRkdfQkFOSzVfUk9XIDAKKyNpZm5kZWYgQ09ORklHX1NZU19CQU5LNV9ST1cKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9ST1cgMAogI2VuZGlmCi0jaWZuZGVmIENGR19CQU5LNl9ST1cKLSNkZWZpbmUgQ0ZHX0JBTks2X1JPVyAwCisjaWZuZGVmIENPTkZJR19TWVNfQkFOSzZfUk9XCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfUk9XIDAKICNlbmRpZgotI2lmbmRlZiBDRkdfQkFOSzdfUk9XCi0jZGVmaW5lIENGR19CQU5LN19ST1cgMAorI2lmbmRlZiBDT05GSUdfU1lTX0JBTks3X1JPVworI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X1JPVyAwCiAjZW5kaWYKLSNpZm5kZWYgQ0ZHX0RCVVNfU0laRTIKLSNkZWZpbmUgQ0ZHX0RCVVNfU0laRTIgMAorI2lmbmRlZiBDT05GSUdfU1lTX0RCVVNfU0laRTIKKyNkZWZpbmUgQ09ORklHX1NZU19EQlVTX1NJWkUyIDAKICNlbmRpZgogCiAvKgpAQCAtMTYzLDE1MCArMTYzLDE1MCBAQAogI2VuZGlmCiAJQ09ORklHX1dSSVRFX1dPUkQoUElDUjIsIHZhbCk7CiAKLQlDT05GSUdfV1JJVEVfV09SRChFVU1CQkFSLCBDRkdfRVVNQl9BRERSKTsKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKLQlDT05GSUdfV1JJVEVfV09SRChNQ0NSMSwgKENGR19ST01OQUwgPDwgTUNDUjFfUk9NTkFMX1NISUZUKSB8Ci0JCQkJIChDRkdfQkFOSzBfUk9XKSB8Ci0JCQkJIChDRkdfQkFOSzFfUk9XIDw8IE1DQ1IxX0JBTksxUk9XX1NISUZUKSB8Ci0JCQkJIChDRkdfQkFOSzJfUk9XIDw8IE1DQ1IxX0JBTksyUk9XX1NISUZUKSB8Ci0JCQkJIChDRkdfQkFOSzNfUk9XIDw8IE1DQ1IxX0JBTkszUk9XX1NISUZUKSB8Ci0JCQkJIChDRkdfQkFOSzRfUk9XIDw8IE1DQ1IxX0JBTks0Uk9XX1NISUZUKSB8Ci0JCQkJIChDRkdfQkFOSzVfUk9XIDw8IE1DQ1IxX0JBTks1Uk9XX1NISUZUKSB8Ci0JCQkJIChDRkdfQkFOSzZfUk9XIDw8IE1DQ1IxX0JBTks2Uk9XX1NISUZUKSB8Ci0JCQkJIChDRkdfQkFOSzdfUk9XIDw8IE1DQ1IxX0JBTks3Uk9XX1NISUZUKSB8Ci0JCQkJIChDRkdfUk9NRkFMIDw8IE1DQ1IxX1JPTUZBTF9TSElGVCkpOworCUNPTkZJR19XUklURV9XT1JEKEVVTUJCQVIsIENPTkZJR19TWVNfRVVNQl9BRERSKTsKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCisJQ09ORklHX1dSSVRFX1dPUkQoTUNDUjEsIChDT05GSUdfU1lTX1JPTU5BTCA8PCBNQ0NSMV9ST01OQUxfU0hJRlQpIHwKKwkJCQkgKENPTkZJR19TWVNfQkFOSzBfUk9XKSB8CisJCQkJIChDT05GSUdfU1lTX0JBTksxX1JPVyA8PCBNQ0NSMV9CQU5LMVJPV19TSElGVCkgfAorCQkJCSAoQ09ORklHX1NZU19CQU5LMl9ST1cgPDwgTUNDUjFfQkFOSzJST1dfU0hJRlQpIHwKKwkJCQkgKENPTkZJR19TWVNfQkFOSzNfUk9XIDw8IE1DQ1IxX0JBTkszUk9XX1NISUZUKSB8CisJCQkJIChDT05GSUdfU1lTX0JBTks0X1JPVyA8PCBNQ0NSMV9CQU5LNFJPV19TSElGVCkgfAorCQkJCSAoQ09ORklHX1NZU19CQU5LNV9ST1cgPDwgTUNDUjFfQkFOSzVST1dfU0hJRlQpIHwKKwkJCQkgKENPTkZJR19TWVNfQkFOSzZfUk9XIDw8IE1DQ1IxX0JBTks2Uk9XX1NISUZUKSB8CisJCQkJIChDT05GSUdfU1lTX0JBTks3X1JPVyA8PCBNQ0NSMV9CQU5LN1JPV19TSElGVCkgfAorCQkJCSAoQ09ORklHX1NZU19ST01GQUwgPDwgTUNDUjFfUk9NRkFMX1NISUZUKSk7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0FTUklTRSkgJiYgZGVmaW5lZChDRkdfQVNGQUxMKQotCUNPTkZJR19XUklURV9XT1JEKE1DQ1IyLCBDRkdfUkVGSU5UIDw8IE1DQ1IyX1JFRklOVF9TSElGVCB8Ci0JCQkJIENGR19BU1JJU0UgPDwgTUNDUjJfQVNSSVNFX1NISUZUIHwKLQkJCQkgQ0ZHX0FTRkFMTCA8PCBNQ0NSMl9BU0ZBTExfU0hJRlQpOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19BU1JJU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19BU0ZBTEwpCisJQ09ORklHX1dSSVRFX1dPUkQoTUNDUjIsIENPTkZJR19TWVNfUkVGSU5UIDw8IE1DQ1IyX1JFRklOVF9TSElGVCB8CisJCQkJIENPTkZJR19TWVNfQVNSSVNFIDw8IE1DQ1IyX0FTUklTRV9TSElGVCB8CisJCQkJIENPTkZJR19TWVNfQVNGQUxMIDw8IE1DQ1IyX0FTRkFMTF9TSElGVCk7CiAjZWxzZQotCUNPTkZJR19XUklURV9XT1JEKE1DQ1IyLCBDRkdfUkVGSU5UIDw8IE1DQ1IyX1JFRklOVF9TSElGVCk7CisJQ09ORklHX1dSSVRFX1dPUkQoTUNDUjIsIENPTkZJR19TWVNfUkVGSU5UIDw8IE1DQ1IyX1JFRklOVF9TSElGVCk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX01QQzgyNDApCiAJQ09ORklHX1dSSVRFX1dPUkQoTUNDUjMsCi0JCSgoKENGR19CU1RPUFJFICYgMHgwMDNjKSA+PiAyKSA8PCBNQ0NSM19CU1RPUFJFMlRPNV9TSElGVCkgfAotCQkoQ0ZHX1JFRlJFQyA8PCBNQ0NSM19SRUZSRUNfU0hJRlQpIHwKLQkJKENGR19SRExBVCAgPDwgTUNDUjNfUkRMQVRfU0hJRlQpKTsKKwkJKCgoQ09ORklHX1NZU19CU1RPUFJFICYgMHgwMDNjKSA+PiAyKSA8PCBNQ0NSM19CU1RPUFJFMlRPNV9TSElGVCkgfAorCQkoQ09ORklHX1NZU19SRUZSRUMgPDwgTUNDUjNfUkVGUkVDX1NISUZUKSB8CisJCShDT05GSUdfU1lTX1JETEFUICA8PCBNQ0NSM19SRExBVF9TSElGVCkpOwogI2VsaWYgZGVmaW5lZChDT05GSUdfTVBDODI0NSkKIAlDT05GSUdfV1JJVEVfV09SRChNQ0NSMywKLQkJKCgoQ0ZHX0JTVE9QUkUgJiAweDAwM2MpID4+IDIpIDw8IE1DQ1IzX0JTVE9QUkUyVE81X1NISUZUKSB8Ci0JCShDRkdfUkVGUkVDIDw8IE1DQ1IzX1JFRlJFQ19TSElGVCkpOworCQkoKChDT05GSUdfU1lTX0JTVE9QUkUgJiAweDAwM2MpID4+IDIpIDw8IE1DQ1IzX0JTVE9QUkUyVE81X1NISUZUKSB8CisJCShDT05GSUdfU1lTX1JFRlJFQyA8PCBNQ0NSM19SRUZSRUNfU0hJRlQpKTsKICNlbHNlCiAjZXJyb3IgU3BlY2lmaWMgdHlwZSBvZiBNUEM4MjR4IG11c3QgYmUgZGVmaW5lZCAoaS5lLiBDT05GSUdfTVBDODI0MCkKICNlbmRpZgogCiAvKiB0aGlzIGlzIGdyb3NzLiAgV2UgdGhpbmsgdGhlc2Ugc2hvdWxkIGFsbCBiZSB0aGUgc2FtZSwgYW5kIHZhcmlvdXMgYm9hcmRzCi0gKiAgc2hvdWxkIGRlZmluZSBDRkdfQUNUT1JXIHRvIDAgaWYgdGhleSBkb24ndCB3YW50IHRvIHNldCBpdCwgb3IgZXZlbiwgaWYKKyAqICBzaG91bGQgZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXIHRvIDAgaWYgdGhleSBkb24ndCB3YW50IHRvIHNldCBpdCwgb3IgZXZlbiwgaWYKICAqICBpdHMgbm90IHNldCwgd2UgZGVmaW5lIGl0IHRvIHplcm8gaW4gdGhpcyBmaWxlCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DVTgyNCkgfHwgZGVmaW5lZChDT05GSUdfUE42MikKIAlDT05GSUdfV1JJVEVfV09SRChNQ0NSNCwKLQkoQ0ZHX1BSRVRPQUNUIDw8IE1DQ1I0X1BSRVRPQUNUX1NISUZUKSB8Ci0JKENGR19BQ1RUT1BSRSA8PCBNQ0NSNF9BQ1RUT1BSRV9TSElGVCkgfAorCShDT05GSUdfU1lTX1BSRVRPQUNUIDw8IE1DQ1I0X1BSRVRPQUNUX1NISUZUKSB8CisJKENPTkZJR19TWVNfQUNUVE9QUkUgPDwgTUNDUjRfQUNUVE9QUkVfU0hJRlQpIHwKIAlNQ0NSNF9CSVQyMSB8Ci0JKENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgPyBNQ0NSNF9SRUdJU1RFUkVEOiAwKSB8Ci0JKChDRkdfQlNUT1BSRSAmIDB4MDAwMykgPDxNQ0NSNF9CU1RPUFJFMFRPMV9TSElGVCApIHwKLQkoKChDRkdfU0RNT0RFX0NBU19MQVQgPDw0KSB8IChDRkdfU0RNT0RFX1dSQVAgPDwzKSB8Ci0JCSAgQ0ZHX1NETU9ERV9CVVJTVExFTikgPDwgTUNDUjRfU0RNT0RFX1NISUZUKSB8Ci0JKENGR19BQ1RPUlcgPDwgTUNDUjRfQUNUVE9SV19TSElGVCkgfAotCSgoKENGR19CU1RPUFJFICYgMHgwM2MwKSA+PiA2KSA8PCBNQ0NSNF9CU1RPUFJFNlRPOV9TSElGVCkpOworCShDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiA/IE1DQ1I0X1JFR0lTVEVSRUQ6IDApIHwKKwkoKENPTkZJR19TWVNfQlNUT1BSRSAmIDB4MDAwMykgPDxNQ0NSNF9CU1RPUFJFMFRPMV9TSElGVCApIHwKKwkoKChDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUIDw8NCkgfCAoQ09ORklHX1NZU19TRE1PREVfV1JBUCA8PDMpIHwKKwkJICBDT05GSUdfU1lTX1NETU9ERV9CVVJTVExFTikgPDwgTUNDUjRfU0RNT0RFX1NISUZUKSB8CisJKENPTkZJR19TWVNfQUNUT1JXIDw8IE1DQ1I0X0FDVFRPUldfU0hJRlQpIHwKKwkoKChDT05GSUdfU1lTX0JTVE9QUkUgJiAweDAzYzApID4+IDYpIDw8IE1DQ1I0X0JTVE9QUkU2VE85X1NISUZUKSk7CiAjZWxpZiBkZWZpbmVkKENPTkZJR19NUEM4MjQwKQogCUNPTkZJR19XUklURV9XT1JEKE1DQ1I0LAotCShDRkdfUFJFVE9BQ1QgPDwgTUNDUjRfUFJFVE9BQ1RfU0hJRlQpIHwKLQkoQ0ZHX0FDVFRPUFJFIDw8IE1DQ1I0X0FDVFRPUFJFX1NISUZUKSB8CisJKENPTkZJR19TWVNfUFJFVE9BQ1QgPDwgTUNDUjRfUFJFVE9BQ1RfU0hJRlQpIHwKKwkoQ09ORklHX1NZU19BQ1RUT1BSRSA8PCBNQ0NSNF9BQ1RUT1BSRV9TSElGVCkgfAogCU1DQ1I0X0JJVDIxIHwKLQkoQ0ZHX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiA/IE1DQ1I0X1JFR0lTVEVSRUQ6IDApIHwKLQkoKENGR19CU1RPUFJFICYgMHgwMDAzKSA8PE1DQ1I0X0JTVE9QUkUwVE8xX1NISUZUICkgfAotCSgoKENGR19TRE1PREVfQ0FTX0xBVCA8PDQpIHwgKENGR19TRE1PREVfV1JBUCA8PDMpIHwKLQkJICAoQ0ZHX1NETU9ERV9CVVJTVExFTikpIDw8TUNDUjRfU0RNT0RFX1NISUZUKSB8Ci0JKCgoQ0ZHX0JTVE9QUkUgJiAweDAzYzApID4+IDYpIDw8TUNDUjRfQlNUT1BSRTZUTzlfU0hJRlQgKSk7CisJKENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSID8gTUNDUjRfUkVHSVNURVJFRDogMCkgfAorCSgoQ09ORklHX1NZU19CU1RPUFJFICYgMHgwMDAzKSA8PE1DQ1I0X0JTVE9QUkUwVE8xX1NISUZUICkgfAorCSgoKENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQgPDw0KSB8IChDT05GSUdfU1lTX1NETU9ERV9XUkFQIDw8MykgfAorCQkgIChDT05GSUdfU1lTX1NETU9ERV9CVVJTVExFTikpIDw8TUNDUjRfU0RNT0RFX1NISUZUKSB8CisJKCgoQ09ORklHX1NZU19CU1RPUFJFICYgMHgwM2MwKSA+PiA2KSA8PE1DQ1I0X0JTVE9QUkU2VE85X1NISUZUICkpOwogI2VsaWYgZGVmaW5lZChDT05GSUdfTVBDODI0NSkKIAlDT05GSUdfUkVBRF9XT1JEKE1DQ1IxLCB2YWwpOwogCXZhbCAmPSBNQ0NSMV9EQlVTX1NJWkUwOyAgICAvKiB0ZXN0IGZvciA2NC1iaXQgbWVtIGJ1cyAqLwogCiAJQ09ORklHX1dSSVRFX1dPUkQoTUNDUjQsCi0JCShDRkdfUFJFVE9BQ1QgPDwgTUNDUjRfUFJFVE9BQ1RfU0hJRlQpIHwKLQkJKENGR19BQ1RUT1BSRSA8PCBNQ0NSNF9BQ1RUT1BSRV9TSElGVCkgfAotCQkoQ0ZHX0VYVFJPTSA/IE1DQ1I0X0VYVFJPTSA6IDApIHwKLQkJKENGR19SRUdESU1NID8gTUNDUjRfUkVHRElNTSA6IDApIHwKLQkJKENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgPyBNQ0NSNF9SRUdJU1RFUkVEOiAwKSB8Ci0JCSgoQ0ZHX0JTVE9QUkUgJiAweDAwMDMpIDw8TUNDUjRfQlNUT1BSRTBUTzFfU0hJRlQgKSB8Ci0JCShDRkdfREJVU19TSVpFMiA8PCBNQ0NSNF9EQlVTX1NJWkUyX1NISUZUKSB8Ci0JCSgoKENGR19TRE1PREVfQ0FTX0xBVCA8PDQpIHwgKENGR19TRE1PREVfV1JBUCA8PDMpIHwKKwkJKENPTkZJR19TWVNfUFJFVE9BQ1QgPDwgTUNDUjRfUFJFVE9BQ1RfU0hJRlQpIHwKKwkJKENPTkZJR19TWVNfQUNUVE9QUkUgPDwgTUNDUjRfQUNUVE9QUkVfU0hJRlQpIHwKKwkJKENPTkZJR19TWVNfRVhUUk9NID8gTUNDUjRfRVhUUk9NIDogMCkgfAorCQkoQ09ORklHX1NZU19SRUdESU1NID8gTUNDUjRfUkVHRElNTSA6IDApIHwKKwkJKENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSID8gTUNDUjRfUkVHSVNURVJFRDogMCkgfAorCQkoKENPTkZJR19TWVNfQlNUT1BSRSAmIDB4MDAwMykgPDxNQ0NSNF9CU1RPUFJFMFRPMV9TSElGVCApIHwKKwkJKENPTkZJR19TWVNfREJVU19TSVpFMiA8PCBNQ0NSNF9EQlVTX1NJWkUyX1NISUZUKSB8CisJCSgoKENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQgPDw0KSB8IChDT05GSUdfU1lTX1NETU9ERV9XUkFQIDw8MykgfAogCQkgICAgICAodmFsID8gMiA6IDMpKSA8PCBNQ0NSNF9TRE1PREVfU0hJRlQpICB8Ci0JCShDRkdfQUNUT1JXIDw8IE1DQ1I0X0FDVFRPUldfU0hJRlQpIHwKLQkJKCgoQ0ZHX0JTVE9QUkUgJiAweDAzYzApID4+IDYpIDw8TUNDUjRfQlNUT1BSRTZUTzlfU0hJRlQgKSk7CisJCShDT05GSUdfU1lTX0FDVE9SVyA8PCBNQ0NSNF9BQ1RUT1JXX1NISUZUKSB8CisJCSgoKENPTkZJR19TWVNfQlNUT1BSRSAmIDB4MDNjMCkgPj4gNikgPDxNQ0NSNF9CU1RPUFJFNlRPOV9TSElGVCApKTsKICNlbHNlCiAjZXJyb3IgU3BlY2lmaWMgdHlwZSBvZiBNUEM4MjR4IG11c3QgYmUgZGVmaW5lZCAoaS5lLiBDT05GSUdfTVBDODI0MCkKICNlbmRpZgogCiAJQ09ORklHX1dSSVRFX1dPUkQoTVNBUjEsCi0JCSggKENGR19CQU5LMF9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIHwKLQkJKCgoQ0ZHX0JBTksxX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgOCkgfAotCQkoKChDRkdfQkFOSzJfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfAotCQkoKChDRkdfQkFOSzNfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkpOworCQkoIChDT05GSUdfU1lTX0JBTkswX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgfAorCQkoKChDT05GSUdfU1lTX0JBTksxX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgOCkgfAorCQkoKChDT05GSUdfU1lTX0JBTksyX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LM19TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KSk7CiAJQ09ORklHX1dSSVRFX1dPUkQoRU1TQVIxLAotCQkoIChDRkdfQkFOSzBfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIHwKLQkJKCgoQ0ZHX0JBTksxX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCA4KSB8Ci0JCSgoKENGR19CQU5LMl9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwKLQkJKCgoQ0ZHX0JBTkszX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkpOworCQkoIChDT05GSUdfU1lTX0JBTkswX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSB8CisJCSgoKENPTkZJR19TWVNfQkFOSzFfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDgpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LMl9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LM19TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpKTsKIAlDT05GSUdfV1JJVEVfV09SRChNU0FSMiwKLQkJKCAoQ0ZHX0JBTks0X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgfAotCQkoKChDRkdfQkFOSzVfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCA4KSB8Ci0JCSgoKENGR19CQU5LNl9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8Ci0JCSgoKENGR19CQU5LN19TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KSk7CisJCSggKENPTkZJR19TWVNfQkFOSzRfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSB8CisJCSgoKENPTkZJR19TWVNfQkFOSzVfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCA4KSB8CisJCSgoKENPTkZJR19TWVNfQkFOSzZfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfAorCQkoKChDT05GSUdfU1lTX0JBTks3X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpKTsKIAlDT05GSUdfV1JJVEVfV09SRChFTVNBUjIsCi0JCSggKENGR19CQU5LNF9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgfAotCQkoKChDRkdfQkFOSzVfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDgpIHwKLQkJKCgoQ0ZHX0JBTks2X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfAotCQkoKChDRkdfQkFOSzdfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KSk7CisJCSggKENPTkZJR19TWVNfQkFOSzRfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LNV9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgOCkgfAorCQkoKChDT05GSUdfU1lTX0JBTks2X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfAorCQkoKChDT05GSUdfU1lTX0JBTks3X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkpOwogCUNPTkZJR19XUklURV9XT1JEKE1FQVIxLAotCQkoIChDRkdfQkFOSzBfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgfAotCQkoKChDRkdfQkFOSzFfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgOCkgfAotCQkoKChDRkdfQkFOSzJfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwKLQkJKCgoQ0ZHX0JBTkszX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KSk7CisJCSggKENPTkZJR19TWVNfQkFOSzBfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgfAorCQkoKChDT05GSUdfU1lTX0JBTksxX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDgpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LMl9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfAorCQkoKChDT05GSUdfU1lTX0JBTkszX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KSk7CiAJQ09ORklHX1dSSVRFX1dPUkQoRU1FQVIxLAotCQkoIChDRkdfQkFOSzBfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSB8Ci0JCSgoKENGR19CQU5LMV9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDgpIHwKLQkJKCgoQ0ZHX0JBTksyX0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwKLQkJKCgoQ0ZHX0JBTkszX0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpKTsKKwkJKCAoQ09ORklHX1NZU19CQU5LMF9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LMV9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDgpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LMl9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8CisJCSgoKENPTkZJR19TWVNfQkFOSzNfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkpOwogCUNPTkZJR19XUklURV9XT1JEKE1FQVIyLAotCQkoIChDRkdfQkFOSzRfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgfAotCQkoKChDRkdfQkFOSzVfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgOCkgfAotCQkoKChDRkdfQkFOSzZfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwKLQkJKCgoQ0ZHX0JBTks3X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KSk7CisJCSggKENPTkZJR19TWVNfQkFOSzRfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgfAorCQkoKChDT05GSUdfU1lTX0JBTks1X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDgpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LNl9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfAorCQkoKChDT05GSUdfU1lTX0JBTks3X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KSk7CiAJQ09ORklHX1dSSVRFX1dPUkQoRU1FQVIyLAotCQkoIChDRkdfQkFOSzRfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSB8Ci0JCSgoKENGR19CQU5LNV9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDgpIHwKLQkJKCgoQ0ZHX0JBTks2X0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwKLQkJKCgoQ0ZHX0JBTks3X0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpKTsKKwkJKCAoQ09ORklHX1NZU19CQU5LNF9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LNV9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDgpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LNl9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8CisJCSgoKENPTkZJR19TWVNfQkFOSzdfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkpOwogCi0JQ09ORklHX1dSSVRFX0JZVEUoT0RDUiwgQ0ZHX09EQ1IpOwotI2lmZGVmIENGR19ETExfTUFYX0RFTEFZCi0JQ09ORklHX1dSSVRFX0JZVEUoTUlPQ1IxLCBDRkdfRExMX01BWF9ERUxBWSk7CS8qIG5lZWRlZCB0byBtYWtlIERMTCBsb2NrICovCisJQ09ORklHX1dSSVRFX0JZVEUoT0RDUiwgQ09ORklHX1NZU19PRENSKTsKKyNpZmRlZiBDT05GSUdfU1lTX0RMTF9NQVhfREVMQVkKKwlDT05GSUdfV1JJVEVfQllURShNSU9DUjEsIENPTkZJR19TWVNfRExMX01BWF9ERUxBWSk7CS8qIG5lZWRlZCB0byBtYWtlIERMTCBsb2NrICovCiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19ETExfRVhURU5EKSAmJiBkZWZpbmVkKENGR19QQ0lfSE9MRF9ERUwpCi0JQ09ORklHX1dSSVRFX0JZVEUoUE1DUjIsIENGR19ETExfRVhURU5EIHwgQ0ZHX1BDSV9IT0xEX0RFTCk7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RMTF9FWFRFTkQpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfSE9MRF9ERUwpCisJQ09ORklHX1dSSVRFX0JZVEUoUE1DUjIsIENPTkZJR19TWVNfRExMX0VYVEVORCB8IENPTkZJR19TWVNfUENJX0hPTERfREVMKTsKICNlbmRpZgotI2lmIGRlZmluZWQoTUlPQ1IyKSAmJiBkZWZpbmVkKENGR19TRFJBTV9EU0NEKQotCUNPTkZJR19XUklURV9CWVRFKE1JT0NSMiwgQ0ZHX1NEUkFNX0RTQ0QpOwkvKiBjaGFuZ2UgbWVtb3J5IGlucHV0ICovCisjaWYgZGVmaW5lZChNSU9DUjIpICYmIGRlZmluZWQoQ09ORklHX1NZU19TRFJBTV9EU0NEKQorCUNPTkZJR19XUklURV9CWVRFKE1JT0NSMiwgQ09ORklHX1NZU19TRFJBTV9EU0NEKTsJLyogY2hhbmdlIG1lbW9yeSBpbnB1dCAqLwogI2VuZGlmIC8qIHNldHVwICYgaG9sZCB0aW1lICovCiAKIAlDT05GSUdfV1JJVEVfQllURShNQkVSLAotCQkgQ0ZHX0JBTkswX0VOQUJMRSB8Ci0JCShDRkdfQkFOSzFfRU5BQkxFIDw8IDEpIHwKLQkJKENGR19CQU5LMl9FTkFCTEUgPDwgMikgfAotCQkoQ0ZHX0JBTkszX0VOQUJMRSA8PCAzKSB8Ci0JCShDRkdfQkFOSzRfRU5BQkxFIDw8IDQpIHwKLQkJKENGR19CQU5LNV9FTkFCTEUgPDwgNSkgfAotCQkoQ0ZHX0JBTks2X0VOQUJMRSA8PCA2KSB8Ci0JCShDRkdfQkFOSzdfRU5BQkxFIDw8IDcpKTsKKwkJIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFIHwKKwkJKENPTkZJR19TWVNfQkFOSzFfRU5BQkxFIDw8IDEpIHwKKwkJKENPTkZJR19TWVNfQkFOSzJfRU5BQkxFIDw8IDIpIHwKKwkJKENPTkZJR19TWVNfQkFOSzNfRU5BQkxFIDw8IDMpIHwKKwkJKENPTkZJR19TWVNfQkFOSzRfRU5BQkxFIDw8IDQpIHwKKwkJKENPTkZJR19TWVNfQkFOSzVfRU5BQkxFIDw8IDUpIHwKKwkJKENPTkZJR19TWVNfQkFOSzZfRU5BQkxFIDw8IDYpIHwKKwkJKENPTkZJR19TWVNfQkFOSzdfRU5BQkxFIDw8IDcpKTsKIAotI2lmZGVmIENGR19QR01BWAotCUNPTkZJR19XUklURV9CWVRFKE1QTVIsIENGR19QR01BWCk7CisjaWZkZWYgQ09ORklHX1NZU19QR01BWAorCUNPTkZJR19XUklURV9CWVRFKE1QTVIsIENPTkZJR19TWVNfUEdNQVgpOwogI2VuZGlmCiAKIAkvKiAhIFdhaXQgMjAwdXMgYmVmb3JlIGluaXRpYWxpemUgb3RoZXIgcmVnaXN0ZXJzICovCmRpZmYgLS1naXQgYS9jcHUvbXBjODI0eC9kcml2ZXJzL2VwaWMvZXBpYzEuYyBiL2NwdS9tcGM4MjR4L2RyaXZlcnMvZXBpYy9lcGljMS5jCmluZGV4IGY4OWRlZWQuLmVjYmI0MmQgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjR4L2RyaXZlcnMvZXBpYy9lcGljMS5jCisrKyBiL2NwdS9tcGM4MjR4L2RyaXZlcnMvZXBpYy9lcGljMS5jCkBAIC0zMTEsNyArMzExLDcgQEAKICAgICB7CiAgICAgVUxPTkcgdGVtcDsKIAotICAgIHRlbXAgPSAqKFVMT05HICopIChDRkdfRVVNQl9BRERSICsgcmVnTnVtKTsKKyAgICB0ZW1wID0gKihVTE9ORyAqKSAoQ09ORklHX1NZU19FVU1CX0FERFIgKyByZWdOdW0pOwogICAgIHJldHVybiAoIExPTkdTV0FQKHRlbXApKTsKICAgICB9CiAKQEAgLTMzMSw3ICszMzEsNyBAQAogICAgICkKICAgICB7CiAKLSAgICAqKFVMT05HICopIChDRkdfRVVNQl9BRERSICsgcmVnTnVtKSA9IExPTkdTV0FQKHJlZ1ZhbCk7CisgICAgKihVTE9ORyAqKSAoQ09ORklHX1NZU19FVU1CX0FERFIgKyByZWdOdW0pID0gTE9OR1NXQVAocmVnVmFsKTsKICAgICByZXR1cm4gOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvY3B1L21wYzgyNHgvZHJpdmVycy9pMmMvaTJjLmMgYi9jcHUvbXBjODI0eC9kcml2ZXJzL2kyYy9pMmMuYwppbmRleCAzYWRkNjg3Li44NTQzNDVlIDEwMDY0NAotLS0gYS9jcHUvbXBjODI0eC9kcml2ZXJzL2kyYy9pMmMuYworKysgYi9jcHUvbXBjODI0eC9kcml2ZXJzL2kyYy9pMmMuYwpAQCAtMzEsOSArMzEsOSBAQAogI2lmZGVmIENPTkZJR19IQVJEX0kyQwogI2luY2x1ZGUgPGkyYy5oPgogCi0jZGVmaW5lIFRJTUVPVVQgKENGR19IWi80KQorI2RlZmluZSBUSU1FT1VUIChDT05GSUdfU1lTX0haLzQpCiAKLSNkZWZpbmUgSTJDX0FkZHIgKCh1bnNpZ25lZCAqKShDRkdfRVVNQl9BRERSICsgMHgzMDAwKSkKKyNkZWZpbmUgSTJDX0FkZHIgKCh1bnNpZ25lZCAqKShDT05GSUdfU1lTX0VVTUJfQUREUiArIDB4MzAwMCkpCiAKICNkZWZpbmUgSTJDQURSICZJMkNfQWRkclswXQogI2RlZmluZSBJMkNGRFIgICZJMkNfQWRkclsxXQpkaWZmIC0tZ2l0IGEvY3B1L21wYzgyNHgvaW50ZXJydXB0cy5jIGIvY3B1L21wYzgyNHgvaW50ZXJydXB0cy5jCmluZGV4IDQzNTllY2MuLjEzOWM1MmMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjR4L2ludGVycnVwdHMuYworKysgYi9jcHUvbXBjODI0eC9pbnRlcnJ1cHRzLmMKQEAgLTMxLDcgKzMxLDcgQEAKIAogaW50IGludGVycnVwdF9pbml0X2NwdSAodW5zaWduZWQgKmRlY3JlbWVudGVyX2NvdW50KQogewotCSpkZWNyZW1lbnRlcl9jb3VudCA9IChnZXRfYnVzX2ZyZXEgKDApIC8gNCkgLyBDRkdfSFo7CisJKmRlY3JlbWVudGVyX2NvdW50ID0gKGdldF9idXNfZnJlcSAoMCkgLyA0KSAvIENPTkZJR19TWVNfSFo7CiAKIAkvKgogCSAqIEl0J3MgYWxsIGJyb2tlbiBhdCB0aGUgbW9tZW50IGFuZCBJIGN1cnJlbnRseSBkb24ndCBuZWVkCkBAIC01Nyw3ICs1Nyw3IEBACiB7CiAJcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyB0ZW1wOwogCi0JcGNpX3JlYWRsIChDRkdfRVVNQl9BRERSICsgRVBJQ19QUk9DX0lOVF9BQ0tfUkVHLCB0ZW1wKTsKKwlwY2lfcmVhZGwgKENPTkZJR19TWVNfRVVNQl9BRERSICsgRVBJQ19QUk9DX0lOVF9BQ0tfUkVHLCB0ZW1wKTsKIAlzeW5jICgpOwkJCQkJLyogaSdtIG5vdCBjb252aW5jZWQgdGhpcyBpcyBuZWVkZWQsIGJ1dCBkaW5rIHNvdXJjZSBoYXMgaXQgKi8KIAl0ZW1wICY9IDB4ZmY7CQkJCS8qZ2V0IHZlY3RvciAqLwogCmRpZmYgLS1naXQgYS9jcHUvbXBjODI0eC9zdGFydC5TIGIvY3B1L21wYzgyNHgvc3RhcnQuUwppbmRleCA3ODRlZGMzLi5iNWQ3ZWIxIDEwMDY0NAotLS0gYS9jcHUvbXBjODI0eC9zdGFydC5TCisrKyBiL2NwdS9tcGM4MjR4L3N0YXJ0LlMKQEAgLTE1Nyw4ICsxNTcsOCBAQAogCiAJLyogQWxsb2NhdGUgSW5pdGlhbCBSQU0gaW4gZGF0YSBjYWNoZS4KIAkgKi8KLQlsaXMJcjMsIENGR19JTklUX1JBTV9BRERSQGgKLQlvcmkJcjMsIHIzLCBDRkdfSU5JVF9SQU1fQUREUkBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBsCiAJbGkJcjIsIDEyOAogCW10Y3RyCXIyCiAxOgpAQCAtMTgwLDggKzE4MCw4IEBACiAJICogVGhpc2sgdGhlIHN0YWNrIHBvaW50ZXIgKnNvbWV3aGVyZSogc2Vuc2libGUuIERvZXNudAogCSAqIG1hdHRlciBtdWNoIHdoZXJlIGFzIHdlJ2xsIG1vdmUgaXQgd2hlbiB3ZSByZWxvY2F0ZQogCSAqLwotCWxpcwlyMSwgKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0dCTF9EQVRBX09GRlNFVClAaAotCW9yaQlyMSwgcjEsIChDRkdfSU5JVF9SQU1fQUREUiArIENGR19HQkxfREFUQV9PRkZTRVQpQGwKKwlsaXMJcjEsIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVClAaAorCW9yaQlyMSwgcjEsIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVClAbAogCiAJbGkJcjAsIDAJCQkvKiBNYWtlIHJvb20gZm9yIHN0YWNrIGZyYW1lIGhlYWRlciBhbmQJKi8KIAlzdHd1CXIwLCAtNChyMSkJCS8qIGNsZWFyIGZpbmFsIHN0YWNrIGZyYW1lIHNvIHRoYXQJKi8KQEAgLTQ3NSwyMSArNDc1LDIxIEBACiAJbXIJcjEwLCByNQkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MJKi8KIAogCW1yCXIzLCAgcjUJCQkJLyogRGVzdGluYXRpb24gQWRkcmVzcwkqLwotI2lmZGVmIENGR19SQU1CT09UCi0JbGlzCXI0LCBDRkdfU0RSQU1fQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCi0Jb3JpCXI0LCByNCwgQ0ZHX1NEUkFNX0JBU0VAbAorI2lmZGVmIENPTkZJR19TWVNfUkFNQk9PVAorCWxpcwlyNCwgQ09ORklHX1NZU19TRFJBTV9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX1NEUkFNX0JBU0VAbAogI2Vsc2UKLQlsaXMJcjQsIENGR19NT05JVE9SX0JBU0VAaAkJLyogU291cmNlICAgICAgQWRkcmVzcwkqLwotCW9yaQlyNCwgcjQsIENGR19NT05JVE9SX0JBU0VAbAorCWxpcwlyNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAaAkJLyogU291cmNlICAgICAgQWRkcmVzcwkqLworCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGwKICNlbmRpZgogCWx3eglyNSwgR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LCByNSwgcjQKLQlsaQlyNiwgQ0ZHX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KKwlsaQlyNiwgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJLyogQ2FjaGUgTGluZSBTaXplCSovCiAKIAkvKgogCSAqIEZpeCBHT1QgcG9pbnRlcjoKIAkgKgotCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ0ZHX01PTklUT1JfQkFTRSkgKyBEZXN0aW5hdGlvbiBBZGRyZXNzCisJICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgKyBEZXN0aW5hdGlvbiBBZGRyZXNzCiAJICoKIAkgKiBPZmZzZXQ6CiAJICovCkBAIC01MzEsOCArNTMxLDggQEAKIC8qIFVubG9jayB0aGUgZGF0YSBjYWNoZSBhbmQgaW52YWxpZGF0ZSBsb2NrZWQgYXJlYSAqLwogCXhvcglyMCwgcjAsIHIwCiAJbXRzcHIJMTAxMSwgcjAKLQlsaXMJcjQsIENGR19JTklUX1JBTV9BRERSQGgKLQlvcmkJcjQsIHI0LCBDRkdfSU5JVF9SQU1fQUREUkBsCisJbGlzCXI0LCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBsCiAJbGkJcjAsIDEyOAogCW10Y3RyCXIwCiA0MToKQEAgLTcwOSw2NiArNzA5LDY2IEBACiAJLyogU2V0dXAgdGhlIEJBVCByZWdpc3RlcnMuCiAJICovCiBzZXR1cF9iYXRzOgotCWxpcwlyNCwgQ0ZHX0lCQVQwTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lCQVQwTEBsCi0JbGlzCXIzLCBDRkdfSUJBVDBVQGgKLQlvcmkJcjMsIHIzLCBDRkdfSUJBVDBVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfSUJBVDBMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQwTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lCQVQwVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19JQkFUMFVAbAogCW10c3ByCUlCQVQwTCwgcjQKIAltdHNwcglJQkFUMFUsIHIzCiAJaXN5bmMKIAotCWxpcwlyNCwgQ0ZHX0RCQVQwTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0RCQVQwTEBsCi0JbGlzCXIzLCBDRkdfREJBVDBVQGgKLQlvcmkJcjMsIHIzLCBDRkdfREJBVDBVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfREJBVDBMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQwTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0RCQVQwVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19EQkFUMFVAbAogCW10c3ByCURCQVQwTCwgcjQKIAltdHNwcglEQkFUMFUsIHIzCiAJaXN5bmMKIAotCWxpcwlyNCwgQ0ZHX0lCQVQxTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lCQVQxTEBsCi0JbGlzCXIzLCBDRkdfSUJBVDFVQGgKLQlvcmkJcjMsIHIzLCBDRkdfSUJBVDFVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfSUJBVDFMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQxTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lCQVQxVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19JQkFUMVVAbAogCW10c3ByCUlCQVQxTCwgcjQKIAltdHNwcglJQkFUMVUsIHIzCiAJaXN5bmMKIAotCWxpcwlyNCwgQ0ZHX0RCQVQxTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0RCQVQxTEBsCi0JbGlzCXIzLCBDRkdfREJBVDFVQGgKLQlvcmkJcjMsIHIzLCBDRkdfREJBVDFVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfREJBVDFMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQxTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0RCQVQxVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19EQkFUMVVAbAogCW10c3ByCURCQVQxTCwgcjQKIAltdHNwcglEQkFUMVUsIHIzCiAJaXN5bmMKIAotCWxpcwlyNCwgQ0ZHX0lCQVQyTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lCQVQyTEBsCi0JbGlzCXIzLCBDRkdfSUJBVDJVQGgKLQlvcmkJcjMsIHIzLCBDRkdfSUJBVDJVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfSUJBVDJMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQyTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lCQVQyVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19JQkFUMlVAbAogCW10c3ByCUlCQVQyTCwgcjQKIAltdHNwcglJQkFUMlUsIHIzCiAJaXN5bmMKIAotCWxpcwlyNCwgQ0ZHX0RCQVQyTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0RCQVQyTEBsCi0JbGlzCXIzLCBDRkdfREJBVDJVQGgKLQlvcmkJcjMsIHIzLCBDRkdfREJBVDJVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfREJBVDJMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQyTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0RCQVQyVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19EQkFUMlVAbAogCW10c3ByCURCQVQyTCwgcjQKIAltdHNwcglEQkFUMlUsIHIzCiAJaXN5bmMKIAotCWxpcwlyNCwgQ0ZHX0lCQVQzTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lCQVQzTEBsCi0JbGlzCXIzLCBDRkdfSUJBVDNVQGgKLQlvcmkJcjMsIHIzLCBDRkdfSUJBVDNVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfSUJBVDNMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQzTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lCQVQzVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19JQkFUM1VAbAogCW10c3ByCUlCQVQzTCwgcjQKIAltdHNwcglJQkFUM1UsIHIzCiAJaXN5bmMKIAotCWxpcwlyNCwgQ0ZHX0RCQVQzTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0RCQVQzTEBsCi0JbGlzCXIzLCBDRkdfREJBVDNVQGgKLQlvcmkJcjMsIHIzLCBDRkdfREJBVDNVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfREJBVDNMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQzTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0RCQVQzVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19EQkFUM1VAbAogCW10c3ByCURCQVQzTCwgcjQKIAltdHNwcglEQkFUM1UsIHIzCiAJaXN5bmMKZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjYwL2NvbW1wcm9jLmMgYi9jcHUvbXBjODI2MC9jb21tcHJvYy5jCmluZGV4IDg3NzdlNzcuLjk0ZjZiYzIgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjYwL2NvbW1wcm9jLmMKKysrIGIvY3B1L21wYzgyNjAvY29tbXByb2MuYwpAQCAtMjUsNyArMjUsNyBAQAogdm9pZAogbTgyNjBfY3BtX3Jlc2V0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHVsb25nIGNvdW50OwogCiAJLyogUmVjbGFpbSB0aGUgRFAgbWVtb3J5IGZvciBvdXIgdXNlLgpAQCAtNTQsNyArNTQsNyBAQAogdWludAogbTgyNjBfY3BtX2RwYWxsb2ModWludCBzaXplLCB1aW50IGFsaWduKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1aW50CXJldGxvYzsKIAl1aW50CWFsaWduX21hc2ssIG9mZjsKIAl1aW50CXNhdmViYXNlOwpAQCAtMTEwLDcgKzExMCw3IEBACiB2b2lkCiBtODI2MF9jcG1fc2V0YnJnKHVpbnQgYnJnLCB1aW50IHJhdGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHVpbnQJKmJwOwogCXVpbnQgY2QgPSBCUkdfVUFSVF9DTEsgLyByYXRlOwogCkBAIC0xMzMsNyArMTMzLDcgQEAKIHZvaWQKIG04MjYwX2NwbV9mYXN0YnJnKHVpbnQgYnJnLCB1aW50IHJhdGUsIGludCBkaXYxNikKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgdWludAkqYnA7CiAKIAkvKiBUaGlzIGlzIGdvb2QgZW5vdWdoIHRvIGdldCBTTUNzIHJ1bm5pbmcuLi4uLgpAQCAtMTU4LDcgKzE1OCw3IEBACiB2b2lkCiBtODI2MF9jcG1fZXh0Y2JyZyh1aW50IGJyZywgdWludCByYXRlLCB1aW50IGV4dGNsaywgaW50IHBpbnNlbCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgdWludAkqYnA7CiAKIAlpZiAoYnJnIDwgNCkgewpAQCAtMTgxLDcgKzE4MSw3IEBACiB2b2lkIHBvc3Rfd29yZF9zdG9yZSAodWxvbmcgYSkKIHsKIAl2b2xhdGlsZSB1bG9uZyAqc2F2ZV9hZGRyID0KLQkJKHZvbGF0aWxlIHVsb25nICopKENGR19JTU1SICsgQ1BNX1BPU1RfV09SRF9BRERSKTsKKwkJKHZvbGF0aWxlIHVsb25nICopKENPTkZJR19TWVNfSU1NUiArIENQTV9QT1NUX1dPUkRfQUREUik7CiAKIAkqc2F2ZV9hZGRyID0gYTsKIH0KQEAgLTE4OSw3ICsxODksNyBAQAogdWxvbmcgcG9zdF93b3JkX2xvYWQgKHZvaWQpCiB7CiAJdm9sYXRpbGUgdWxvbmcgKnNhdmVfYWRkciA9Ci0JCSh2b2xhdGlsZSB1bG9uZyAqKShDRkdfSU1NUiArIENQTV9QT1NUX1dPUkRfQUREUik7CisJCSh2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX0lNTVIgKyBDUE1fUE9TVF9XT1JEX0FERFIpOwogCiAJcmV0dXJuICpzYXZlX2FkZHI7CiB9CkBAIC0yMDEsNyArMjAxLDcgQEAKIHZvaWQgYm9vdGNvdW50X3N0b3JlICh1bG9uZyBhKQogewogCXZvbGF0aWxlIHVsb25nICpzYXZlX2FkZHIgPQotCQkodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX0lNTVIgKyBDUE1fQk9PVENPVU5UX0FERFIpOworCQkodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19JTU1SICsgQ1BNX0JPT1RDT1VOVF9BRERSKTsKIAogCXNhdmVfYWRkclswXSA9IGE7CiAJc2F2ZV9hZGRyWzFdID0gQk9PVENPVU5UX01BR0lDOwpAQCAtMjEwLDcgKzIxMCw3IEBACiB1bG9uZyBib290Y291bnRfbG9hZCAodm9pZCkKIHsKIAl2b2xhdGlsZSB1bG9uZyAqc2F2ZV9hZGRyID0KLQkJKHZvbGF0aWxlIHVsb25nICopKENGR19JTU1SICsgQ1BNX0JPT1RDT1VOVF9BRERSKTsKKwkJKHZvbGF0aWxlIHVsb25nICopKENPTkZJR19TWVNfSU1NUiArIENQTV9CT09UQ09VTlRfQUREUik7CiAKIAlpZiAoc2F2ZV9hZGRyWzFdICE9IEJPT1RDT1VOVF9NQUdJQykKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9jcHUvbXBjODI2MC9jcHUuYyBiL2NwdS9tcGM4MjYwL2NwdS5jCmluZGV4IGVmYjhlZDYuLjlmODM0ZDMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjYwL2NwdS5jCisrKyBiL2NwdS9tcGM4MjYwL2NwdS5jCkBAIC02MSw3ICs2MSw3IEBACiAKIGludCBjaGVja2NwdSAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXVsb25nIGNsb2NrID0gZ2QtPmNwdV9jbGs7CiAJdWludCBwdnIgPSBnZXRfcHZyICgpOwogCXVpbnQgaW1tciwgcmV2LCBtLCBrOwpAQCAtODgsNyArODgsNyBAQAogCXJldiA9IHB2ciAmIDB4ZmY7CiAKIAlpbW1yID0gaW1tYXAtPmltX21lbWN0bC5tZW1jX2ltbXI7Ci0JaWYgKChpbW1yICYgSU1NUl9JU0JfTVNLKSAhPSBDRkdfSU1NUikKKwlpZiAoKGltbXIgJiBJTU1SX0lTQl9NU0spICE9IENPTkZJR19TWVNfSU1NUikKIAkJcmV0dXJuIC0xOwkvKiB3aG9vcHMhIHNvbWVvbmUgbW92ZWQgdGhlIElNTVIgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0dFVF9DUFVfU1RSX0YpCkBAIC0xNzgsNyArMTc4LDcgQEAKIAogdm9pZCB1cG1jb25maWcgKHVpbnQgdXBtLCB1aW50ICogdGFibGUsIHVpbnQgc2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdm9sYXRpbGUgdWNoYXIgKmR1bW15ID0gKHVjaGFyICopIEJSeF9CQV9NU0s7CS8qIHNldCBhbGwgQkEgYml0cyAqLwogCXVpbnQgaTsKQEAgLTI0MSw3ICsyNDEsNyBAQAogewogCXVsb25nIG1zciwgYWRkcjsKIAotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlpbW1hcC0+aW1fY2xrcnN0LmNhcl9ybXIgPSBSTVJfQ1NSRTsJLyogQ2hlY2tzdG9wIFJlc2V0IGVuYWJsZSAqLwogCkBAIC0yNTUsMTUgKzI1NSwxNSBAQAogCSAqIFRyeWluZyB0byBleGVjdXRlIHRoZSBuZXh0IGluc3RydWN0aW9uIGF0IGEgbm9uLWV4aXN0aW5nIGFkZHJlc3MKIAkgKiBzaG91bGQgY2F1c2UgYSBtYWNoaW5lIGNoZWNrLCByZXN1bHRpbmcgaW4gcmVzZXQKIAkgKi8KLSNpZmRlZiBDRkdfUkVTRVRfQUREUkVTUwotCWFkZHIgPSBDRkdfUkVTRVRfQUREUkVTUzsKKyNpZmRlZiBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MKKwlhZGRyID0gQ09ORklHX1NZU19SRVNFVF9BRERSRVNTOwogI2Vsc2UKIAkvKgotCSAqIG5vdGU6IHdoZW4gQ0ZHX01PTklUT1JfQkFTRSBwb2ludHMgdG8gYSBSQU0gYWRkcmVzcywgQ0ZHX01PTklUT1JfQkFTRQorCSAqIG5vdGU6IHdoZW4gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgcG9pbnRzIHRvIGEgUkFNIGFkZHJlc3MsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCiAJICogLSBzaXplb2YgKHVsb25nKSBpcyB1c3VhbGx5IGEgdmFsaWQgYWRkcmVzcy4gQmV0dGVyIHBpY2sgYW4gYWRkcmVzcwotCSAqIGtub3duIHRvIGJlIGludmFsaWQgb24geW91ciBzeXN0ZW0gYW5kIGFzc2lnbiBpdCB0byBDRkdfUkVTRVRfQUREUkVTUy4KKwkgKiBrbm93biB0byBiZSBpbnZhbGlkIG9uIHlvdXIgc3lzdGVtIGFuZCBhc3NpZ24gaXQgdG8gQ09ORklHX1NZU19SRVNFVF9BRERSRVNTLgogCSAqLwotCWFkZHIgPSBDRkdfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZyk7CisJYWRkciA9IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZyk7CiAjZW5kaWYKIAkoKHZvaWQgKCopKHZvaWQpKSBhZGRyKSAoKTsKIAlyZXR1cm4gMTsKQEAgLTI5Myw3ICsyOTMsNyBAQAogewogCWludCByZV9lbmFibGUgPSBkaXNhYmxlX2ludGVycnVwdHMgKCk7CiAKLQlyZXNldF84MjYwX3dhdGNoZG9nICgoaW1tYXBfdCAqKSBDRkdfSU1NUik7CisJcmVzZXRfODI2MF93YXRjaGRvZyAoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKTsKIAlpZiAocmVfZW5hYmxlKQogCQllbmFibGVfaW50ZXJydXB0cyAoKTsKIH0KZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjYwL2NwdV9pbml0LmMgYi9jcHUvbXBjODI2MC9jcHVfaW5pdC5jCmluZGV4IDM2ZmMxZWIuLjFkNTI3NzMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjYwL2NwdV9pbml0LmMKKysrIGIvY3B1L21wYzgyNjAvY3B1X2luaXQuYwpAQCAtMTE0LDcgKzExNCw3IEBACiAJZXh0ZXJuIHZvaWQgbTgyNjBfY3BtX3Jlc2V0ICh2b2lkKTsKIAogCS8qIFBvaW50ZXIgaXMgd3JpdGFibGUgc2luY2Ugd2UgYWxsb2NhdGVkIGEgcmVnaXN0ZXIgZm9yIGl0ICovCi0JZ2QgPSAoZ2RfdCAqKSAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKKwlnZCA9IChnZF90ICopIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCk7CiAKIAkvKiBDbGVhciBpbml0aWFsIGdsb2JhbCBkYXRhICovCiAJbWVtc2V0ICgodm9pZCAqKSBnZCwgMCwgc2l6ZW9mIChnZF90KSk7CkBAIC0xMjQsNDUgKzEyNCw0NSBAQAogCWltbXItPmltX2Nsa3JzdC5jYXJfcnNyID0gUlNSX0FMTEJJVFM7CiAKIAkvKiBSTVIgLSBSZXNldCBNb2RlIFJlZ2lzdGVyIC0gY29udGFpbnMgY2hlY2tzdG9wIHJlc2V0IGVuYWJsZSAoNS01KSAqLwotCWltbXItPmltX2Nsa3JzdC5jYXJfcm1yID0gQ0ZHX1JNUjsKKwlpbW1yLT5pbV9jbGtyc3QuY2FyX3JtciA9IENPTkZJR19TWVNfUk1SOwogCiAJLyogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKDQtMjUpICovCi0jaWYgZGVmaW5lZChDRkdfQkNSXzYweCkgJiYgKENGR19CQ1JfU0lOR0xFKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19CQ1JfNjB4KSAmJiAoQ09ORklHX1NZU19CQ1JfU0lOR0xFKQogCWlmIChpbW1yLT5pbV9zaXVfY29uZi5zY19iY3IgJiBCQ1JfRUJNKSB7Ci0JCWltbXItPmltX3NpdV9jb25mLnNjX2JjciA9IFNFVF9WQUxfTUFTSyhpbW1yLT5pbV9zaXVfY29uZi5zY19iY3IsIENGR19CQ1JfNjB4LCAweDgwMDAwMDEwKTsKKwkJaW1tci0+aW1fc2l1X2NvbmYuc2NfYmNyID0gU0VUX1ZBTF9NQVNLKGltbXItPmltX3NpdV9jb25mLnNjX2JjciwgQ09ORklHX1NZU19CQ1JfNjB4LCAweDgwMDAwMDEwKTsKIAl9IGVsc2UgewotCQlpbW1yLT5pbV9zaXVfY29uZi5zY19iY3IgPSBTRVRfVkFMX01BU0soaW1tci0+aW1fc2l1X2NvbmYuc2NfYmNyLCBDRkdfQkNSX1NJTkdMRSwgMHg4MDAwMDAxMCk7CisJCWltbXItPmltX3NpdV9jb25mLnNjX2JjciA9IFNFVF9WQUxfTUFTSyhpbW1yLT5pbV9zaXVfY29uZi5zY19iY3IsIENPTkZJR19TWVNfQkNSX1NJTkdMRSwgMHg4MDAwMDAxMCk7CiAJfQogI2Vsc2UKLQlpbW1yLT5pbV9zaXVfY29uZi5zY19iY3IgPSBDRkdfQkNSOworCWltbXItPmltX3NpdV9jb25mLnNjX2JjciA9IENPTkZJR19TWVNfQkNSOwogI2VuZGlmCiAKIAkvKiBTSVVNQ1IgLSBjb250YWlucyBkZWJ1ZyBwaW4gY29uZmlndXJhdGlvbiAoNC0zMSkgKi8KLSNpZiBkZWZpbmVkKENGR19TSVVNQ1JfTE9XKSAmJiAoQ0ZHX1NJVU1DUl9ISUdIKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19TSVVNQ1JfTE9XKSAmJiAoQ09ORklHX1NZU19TSVVNQ1JfSElHSCkKIAljcHVfY2xrID0gYm9hcmRfZ2V0X2NwdV9jbGtfZiAoKTsKIAlpZiAoY3B1X2NsayA+PSAxMDAwMDAwMDApIHsKLQkJaW1tci0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyID0gU0VUX1ZBTF9NQVNLKGltbXItPmltX3NpdV9jb25mLnNjX3NpdW1jciwgQ0ZHX1NJVU1DUl9ISUdILCAweDlmM2NjMDAwKTsKKwkJaW1tci0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyID0gU0VUX1ZBTF9NQVNLKGltbXItPmltX3NpdV9jb25mLnNjX3NpdW1jciwgQ09ORklHX1NZU19TSVVNQ1JfSElHSCwgMHg5ZjNjYzAwMCk7CiAJfSBlbHNlIHsKLQkJaW1tci0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyID0gU0VUX1ZBTF9NQVNLKGltbXItPmltX3NpdV9jb25mLnNjX3NpdW1jciwgQ0ZHX1NJVU1DUl9MT1csIDB4OWYzY2MwMDApOworCQlpbW1yLT5pbV9zaXVfY29uZi5zY19zaXVtY3IgPSBTRVRfVkFMX01BU0soaW1tci0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyLCBDT05GSUdfU1lTX1NJVU1DUl9MT1csIDB4OWYzY2MwMDApOwogCX0KICNlbHNlCi0JaW1tci0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyID0gQ0ZHX1NJVU1DUjsKKwlpbW1yLT5pbV9zaXVfY29uZi5zY19zaXVtY3IgPSBDT05GSUdfU1lTX1NJVU1DUjsKICNlbmRpZgogCiAJY29uZmlnXzgyNjBfaW9wb3J0cyAoaW1tcik7CiAKIAkvKiBpbml0aWFsaXplIHRpbWUgY291bnRlciBzdGF0dXMgYW5kIGNvbnRyb2wgcmVnaXN0ZXIgKDQtNDApICovCi0JaW1tci0+aW1fc2l0LnNpdF90bWNudHNjID0gQ0ZHX1RNQ05UU0M7CisJaW1tci0+aW1fc2l0LnNpdF90bWNudHNjID0gQ09ORklHX1NZU19UTUNOVFNDOwogCiAJLyogaW5pdGlhbGl6ZSB0aGUgUElUICg0LTQyKSAqLwotCWltbXItPmltX3NpdC5zaXRfcGlzY3IgPSBDRkdfUElTQ1I7CisJaW1tci0+aW1fc2l0LnNpdF9waXNjciA9IENPTkZJR19TWVNfUElTQ1I7CiAKICNpZiAhZGVmaW5lZChDT05GSUdfQ09HRU5UKQkJLyogZG9uZSBpbiBzdGFydC5TIGZvciB0aGUgY29nZW50ICovCiAJLyogU3lzdGVtIGNsb2NrIGNvbnRyb2wgcmVnaXN0ZXIgKDktOCkgKi8KIAlzY2NyID0gaW1tci0+aW1fY2xrcnN0LmNhcl9zY2NyICYKIAkJKFNDQ1JfUENJX01PREUgfCBTQ0NSX1BDSV9NT0RDSyB8IFNDQ1JfUENJREZfTVNLKTsKIAlpbW1yLT5pbV9jbGtyc3QuY2FyX3NjY3IgPSBzY2NyIHwKLQkJKENGR19TQ0NSICYgfihTQ0NSX1BDSV9NT0RFIHwgU0NDUl9QQ0lfTU9EQ0sgfCBTQ0NSX1BDSURGX01TSykgKTsKKwkJKENPTkZJR19TWVNfU0NDUiAmIH4oU0NDUl9QQ0lfTU9ERSB8IFNDQ1JfUENJX01PRENLIHwgU0NDUl9QQ0lERl9NU0spICk7CiAjZW5kaWYgLyogIUNPTkZJR19DT0dFTlQgKi8KIAogCS8qCkBAIC0xNzQsNzEgKzE3NCw3MSBAQAogCSAqIGhhcyBiZWVuIGRldGVybWluZWQKIAkgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX09SMF9SRU1BUCkKLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SMF9SRU1BUDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IwX1JFTUFQKQorCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SMF9SRU1BUDsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX09SMV9SRU1BUCkKLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9SRU1BUDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IxX1JFTUFQKQorCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9SRU1BUDsKICNlbmRpZgogCiAJLyogbm93IHJlc3RyaWN0IHRvIHByZWxpbWluYXJ5IHJhbmdlICovCiAJLyogdGhlIFBTIGNhbWUgZnJvbSB0aGUgSFJDVywgZG9utHQgY2hhbmdlIGl0ICovCi0JbWVtY3RsLT5tZW1jX2JyMCA9IFNFVF9WQUxfTUFTSyhtZW1jdGwtPm1lbWNfYnIwICwgQ0ZHX0JSMF9QUkVMSU0sIEJSeF9QU19NU0spOwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1IwX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIwID0gU0VUX1ZBTF9NQVNLKG1lbWN0bC0+bWVtY19icjAgLCBDT05GSUdfU1lTX0JSMF9QUkVMSU0sIEJSeF9QU19NU0spOworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SMF9QUkVMSU07CiAKLSNpZiBkZWZpbmVkKENGR19CUjFfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjFfUFJFTElNKQotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSMV9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjFfUFJFTElNKQorCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlIyX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1IyX1BSRUxJTSkKLQltZW1jdGwtPm1lbWNfb3IyID0gQ0ZHX09SMl9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjJfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjJfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1IyX1BSRUxJTSkKKwltZW1jdGwtPm1lbWNfb3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSM19QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SM19QUkVMSU0pCi0JbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjMgPSBDRkdfQlIzX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlIzX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SM19QUkVMSU0pCisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjRfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjRfUFJFTElNKQotCW1lbWN0bC0+bWVtY19vcjQgPSBDRkdfT1I0X1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnI0ID0gQ0ZHX0JSNF9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSNF9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjRfUFJFTElNKQorCW1lbWN0bC0+bWVtY19vcjQgPSBDT05GSUdfU1lTX09SNF9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyNCA9IENPTkZJR19TWVNfQlI0X1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlI1X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1I1X1BSRUxJTSkKLQltZW1jdGwtPm1lbWNfb3I1ID0gQ0ZHX09SNV9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyNSA9IENGR19CUjVfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjVfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1I1X1BSRUxJTSkKKwltZW1jdGwtPm1lbWNfb3I1ID0gQ09ORklHX1NZU19PUjVfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjUgPSBDT05GSUdfU1lTX0JSNV9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSNl9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SNl9QUkVMSU0pCi0JbWVtY3RsLT5tZW1jX29yNiA9IENGR19PUjZfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjYgPSBDRkdfQlI2X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlI2X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SNl9QUkVMSU0pCisJbWVtY3RsLT5tZW1jX29yNiA9IENPTkZJR19TWVNfT1I2X1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnI2ID0gQ09ORklHX1NZU19CUjZfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjdfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjdfUFJFTElNKQotCW1lbWN0bC0+bWVtY19vcjcgPSBDRkdfT1I3X1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnI3ID0gQ0ZHX0JSN19QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSN19QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjdfUFJFTElNKQorCW1lbWN0bC0+bWVtY19vcjcgPSBDT05GSUdfU1lTX09SN19QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyNyA9IENPTkZJR19TWVNfQlI3X1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlI4X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1I4X1BSRUxJTSkKLQltZW1jdGwtPm1lbWNfb3I4ID0gQ0ZHX09SOF9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyOCA9IENGR19CUjhfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjhfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1I4X1BSRUxJTSkKKwltZW1jdGwtPm1lbWNfb3I4ID0gQ09ORklHX1NZU19PUjhfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjggPSBDT05GSUdfU1lTX0JSOF9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSOV9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SOV9QUkVMSU0pCi0JbWVtY3RsLT5tZW1jX29yOSA9IENGR19PUjlfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjkgPSBDRkdfQlI5X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlI5X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SOV9QUkVMSU0pCisJbWVtY3RsLT5tZW1jX29yOSA9IENPTkZJR19TWVNfT1I5X1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnI5ID0gQ09ORklHX1NZU19CUjlfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjEwX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1IxMF9QUkVMSU0pCi0JbWVtY3RsLT5tZW1jX29yMTAgPSBDRkdfT1IxMF9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMTAgPSBDRkdfQlIxMF9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSMTBfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1IxMF9QUkVMSU0pCisJbWVtY3RsLT5tZW1jX29yMTAgPSBDT05GSUdfU1lTX09SMTBfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjEwID0gQ09ORklHX1NZU19CUjEwX1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlIxMV9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SMTFfUFJFTElNKQotCW1lbWN0bC0+bWVtY19vcjExID0gQ0ZHX09SMTFfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjExID0gQ0ZHX0JSMTFfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjExX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SMTFfUFJFTElNKQorCW1lbWN0bC0+bWVtY19vcjExID0gQ09ORklHX1NZU19PUjExX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIxMSA9IENPTkZJR19TWVNfQlIxMV9QUkVMSU07CiAjZW5kaWYKIAogCW04MjYwX2NwbV9yZXNldCAoKTsKQEAgLTI1MSw3ICsyNTEsNyBAQAogewogCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBnZC0+YmQtPmJpX2ltbXJfYmFzZTsKIAotCWltbXItPmltX2NwbS5jcF9yY2NyID0gQ0ZHX1JDQ1I7CisJaW1tci0+aW1fY3BtLmNwX3JjY3IgPSBDT05GSUdfU1lTX1JDQ1I7CiAKIAlyZXR1cm4gKDApOwogfQpkaWZmIC0tZ2l0IGEvY3B1L21wYzgyNjAvZXRoZXJfZmNjLmMgYi9jcHUvbXBjODI2MC9ldGhlcl9mY2MuYwppbmRleCAzN2JmNDQ1Li4zYWI1N2ViIDEwMDY0NAotLS0gYS9jcHUvbXBjODI2MC9ldGhlcl9mY2MuYworKysgYi9jcHUvbXBjODI2MC9ldGhlcl9mY2MuYwpAQCAtNzMsOCArNzMsOCBAQAogCVBST0ZGX0ZDQzEsCiAJQ1BNX0NSX0ZDQzFfU0JMT0NLLAogCUNQTV9DUl9GQ0MxX1BBR0UsCi0JQ0ZHX0NNWEZDUl9NQVNLMSwKLQlDRkdfQ01YRkNSX1ZBTFVFMQorCUNPTkZJR19TWVNfQ01YRkNSX01BU0sxLAorCUNPTkZJR19TWVNfQ01YRkNSX1ZBTFVFMQogfSwKICNlbmRpZgogCkBAIC04NCw4ICs4NCw4IEBACiAJUFJPRkZfRkNDMiwKIAlDUE1fQ1JfRkNDMl9TQkxPQ0ssCiAJQ1BNX0NSX0ZDQzJfUEFHRSwKLQlDRkdfQ01YRkNSX01BU0syLAotCUNGR19DTVhGQ1JfVkFMVUUyCisJQ09ORklHX1NZU19DTVhGQ1JfTUFTSzIsCisJQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUyCiB9LAogI2VuZGlmCiAKQEAgLTk1LDggKzk1LDggQEAKIAlQUk9GRl9GQ0MzLAogCUNQTV9DUl9GQ0MzX1NCTE9DSywKIAlDUE1fQ1JfRkNDM19QQUdFLAotCUNGR19DTVhGQ1JfTUFTSzMsCi0JQ0ZHX0NNWEZDUl9WQUxVRTMKKwlDT05GSUdfU1lTX0NNWEZDUl9NQVNLMywKKwlDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTMKIH0sCiAjZW5kaWYKIH07CkBAIC0yMjUsNyArMjI1LDcgQEAKIHsKICAgICBzdHJ1Y3QgZXRoZXJfZmNjX2luZm9fcyAqIGluZm8gPSBkZXYtPnByaXY7CiAgICAgaW50IGk7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgIHZvbGF0aWxlIGNwbTgyNjBfdCAqY3AgPSAmKGltbXItPmltX2NwbSk7CiAgICAgZmNjX2VuZXRfdCAqcHJhbV9wdHI7CiAgICAgdW5zaWduZWQgbG9uZyBtZW1fYWRkcjsKQEAgLTI0Niw3ICsyNDYsNyBAQAogICAgICAgRkNDX0dGTVJfTU9ERV9FTkVUIHwgRkNDX0dGTVJfVENSQ18zMjsKIAogICAgIC8qIDI4LjkgLSAoNSk6IEZQU01SOiBlbmFibGUgZnVsbCBkdXBsZXgsIHNlbGVjdCBDQ0lUVCBDUkMgZm9yIEV0aGVybmV0ICovCi0gICAgaW1tci0+aW1fZmNjW2luZm8tPmV0aGVyX2luZGV4XS5mY2NfZnBzbXIgPSBDRkdfRkNDX1BTTVIgfCBGQ0NfUFNNUl9FTkNSQzsKKyAgICBpbW1yLT5pbV9mY2NbaW5mby0+ZXRoZXJfaW5kZXhdLmZjY19mcHNtciA9IENPTkZJR19TWVNfRkNDX1BTTVIgfCBGQ0NfUFNNUl9FTkNSQzsKIAogICAgIC8qIDI4LjkgLSAoNik6IEZEU1I6IEV0aGVybmV0IFN5biAqLwogICAgIGltbXItPmltX2ZjY1tpbmZvLT5ldGhlcl9pbmRleF0uZmNjX2Zkc3IgPSAweEQ1NTU7CkBAIC0yOTYsMTAgKzI5NiwxMCBAQAogICAgICAqLwogICAgIHByYW1fcHRyLT5mZW5fZ2VuZmNjLmZjY19tcmJsciA9IFBLVF9NQVhCTFJfU0laRTsKICAgICBwcmFtX3B0ci0+ZmVuX2dlbmZjYy5mY2NfcnN0YXRlID0gKENQTUZDUl9HQkwgfCBDUE1GQ1JfRUIgfAotCQkJCSAgICAgICBDRkdfQ1BNRkNSX1JBTVRZUEUpIDw8IDI0OworCQkJCSAgICAgICBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFKSA8PCAyNDsKICAgICBwcmFtX3B0ci0+ZmVuX2dlbmZjYy5mY2NfcmJhc2UgPSAodW5zaWduZWQgaW50KSgmcnR4LnJ4YmRbcnhJZHhdKTsKICAgICBwcmFtX3B0ci0+ZmVuX2dlbmZjYy5mY2NfdHN0YXRlID0gKENQTUZDUl9HQkwgfCBDUE1GQ1JfRUIgfAotCQkJCSAgICAgICBDRkdfQ1BNRkNSX1JBTVRZUEUpIDw8IDI0OworCQkJCSAgICAgICBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFKSA8PCAyNDsKICAgICBwcmFtX3B0ci0+ZmVuX2dlbmZjYy5mY2NfdGJhc2UgPSAodW5zaWduZWQgaW50KSgmcnR4LnR4YmRbdHhJZHhdKTsKIAogICAgIC8qIHByb3RvY29sLXNwZWNpZmljIGFyZWEgKi8KQEAgLTM2Niw3ICszNjYsNyBAQAogc3RhdGljIHZvaWQgZmVjX2hhbHQoc3RydWN0IGV0aF9kZXZpY2UqIGRldikKIHsKICAgICBzdHJ1Y3QgZXRoZXJfZmNjX2luZm9fcyAqIGluZm8gPSBkZXYtPnByaXY7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCiAgICAgLyogd3JpdGUgR0ZNUjogZGlzYWJsZSB0eC9yeCAqLwogICAgIGltbXItPmltX2ZjY1tpbmZvLT5ldGhlcl9pbmRleF0uZmNjX2dmbXIgJj0KQEAgLTY0Niw3ICs2NDYsNyBAQAogdm9pZAogZXRoX2xvb3BiYWNrX3Rlc3QgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTgyNjBfdCAqY3AgPSAmKGltbXItPmltX2NwbSk7CiAJaW50IGMsIG5jbG9zZWQ7CiAJdWxvbmcgcnVudGltZSwgbm1zZWM7CmRpZmYgLS1naXQgYS9jcHUvbXBjODI2MC9ldGhlcl9zY2MuYyBiL2NwdS9tcGM4MjYwL2V0aGVyX3NjYy5jCmluZGV4IDYzM2QwNTMuLmM2NWYwZTAgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjYwL2V0aGVyX3NjYy5jCisrKyBiL2NwdS9tcGM4MjYwL2V0aGVyX3NjYy5jCkBAIC03Nyw4ICs3Nyw4IEBACiAKICNkZWZpbmUgVFhfQlVGX0NOVCAyCiAKLSNpZiAhZGVmaW5lZChDRkdfU0NDX1RPVVRfTE9PUCkKLSAgI2RlZmluZSBDRkdfU0NDX1RPVVRfTE9PUCAxMDAwMDAwCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19TQ0NfVE9VVF9MT09QKQorICAjZGVmaW5lIENPTkZJR19TWVNfU0NDX1RPVVRfTE9PUCAxMDAwMDAwCiAjZW5kaWYKIAogc3RhdGljIGNoYXIgdHhidWZbVFhfQlVGX0NOVF1bIERCVUZfTEVOR1RIIF07CkBAIC0xMTEsNyArMTExLDcgQEAKICAgICB9CiAKICAgICBmb3IoaT0wOyBydHgtPnR4YmRbdHhJZHhdLmNiZF9zYyAmIEJEX0VORVRfVFhfUkVBRFk7IGkrKykgewotCWlmIChpID49IENGR19TQ0NfVE9VVF9MT09QKSB7CisJaWYgKGkgPj0gQ09ORklHX1NZU19TQ0NfVE9VVF9MT09QKSB7CiAJICAgIHB1dHMgKCJzY2M6IHR4IGJ1ZmZlciBub3QgcmVhZHlcbiIpOwogCSAgICBnb3RvIG91dDsKIAl9CkBAIC0xMjMsNyArMTIzLDcgQEAKIAkJCQlCRF9FTkVUX1RYX1dSQVApOwogCiAgICAgZm9yKGk9MDsgcnR4LT50eGJkW3R4SWR4XS5jYmRfc2MgJiBCRF9FTkVUX1RYX1JFQURZOyBpKyspIHsKLQlpZiAoaSA+PSBDRkdfU0NDX1RPVVRfTE9PUCkgeworCWlmIChpID49IENPTkZJR19TWVNfU0NDX1RPVVRfTE9PUCkgewogCSAgICBwdXRzICgic2NjOiB0eCBlcnJvclxuIik7CiAJICAgIGdvdG8gb3V0OwogCX0KQEAgLTE4Nyw3ICsxODcsNyBAQAogaW50IGV0aF9pbml0KGJkX3QgKmJpcykKIHsKICAgICBpbnQgaTsKLSAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgc2NjX2VuZXRfdCAqcHJhbV9wdHI7CiAgICAgdWludCBkcGFkZHI7CiAKQEAgLTIwMyw3ICsyMDMsNyBAQAogICAgIC8qIDI0LjIxIC0gKDQsNSk6IGNvbm5lY3QgU0NDJ3MgdHggYW5kIHJ4IGNsb2NrcywgdXNlIE5NU0kgZm9yIFNDQyAqLwogICAgIGltbXItPmltX2NwbXV4LmNteF91YXIgPSAwOwogICAgIGltbXItPmltX2NwbXV4LmNteF9zY3IgPSAoIChpbW1yLT5pbV9jcG11eC5jbXhfc2NyICYgfkNNWFNDUl9NQVNLKSB8Ci0JCQkgICAgICAgQ0ZHX0NNWFNDUl9WQUxVRSk7CisJCQkgICAgICAgQ09ORklHX1NZU19DTVhTQ1JfVkFMVUUpOwogCiAKICAgICAvKiAyNC4yMSAoNikgd3JpdGUgUkJBU0UgYW5kIFRCQVNFIHRvIHBhcmFtZXRlciBSQU0gKi8KQEAgLTM0MCw3ICszNDAsNyBAQAogCiB2b2lkIGV0aF9oYWx0KHZvaWQpCiB7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgIGltbXItPmltX3NjY1tDT05GSUdfRVRIRVJfSU5ERVgtMV0uc2NjX2dzbXJsICY9IH4oU0NDX0dTTVJMX0VOUiB8CiAJCQkJCQkgICAgICBTQ0NfR1NNUkxfRU5UKTsKIH0KQEAgLTM0OCw3ICszNDgsNyBAQAogI2lmIDAKIHZvaWQgcmVzdGFydCh2b2lkKQogewotICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICBpbW1yLT5pbV9jcG0uY3Bfc2NjW0NPTkZJR19FVEhFUl9JTkRFWC0xXS5zY2NfZ3NtcmwgfD0gKFNDQ19HU01STF9FTlIgfAogCQkJCQkJCSAgICBTQ0NfR1NNUkxfRU5UKTsKIH0KZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjYwL2kyYy5jIGIvY3B1L21wYzgyNjAvaTJjLmMKaW5kZXggYTk2ZmJmOC4uYTkzNDE5MyAxMDA2NDQKLS0tIGEvY3B1L21wYzgyNjAvaTJjLmMKKysrIGIvY3B1L21wYzgyNjAvaTJjLmMKQEAgLTU0LDEyICs1NCwxMiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2V0IGRlZmF1bHQgdmFsdWVzCiAgKi8KLSNpZm5kZWYJQ0ZHX0kyQ19TUEVFRAotI2RlZmluZQlDRkdfSTJDX1NQRUVECTUwMDAwCisjaWZuZGVmCUNPTkZJR19TWVNfSTJDX1NQRUVECisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX1NQRUVECTUwMDAwCiAjZW5kaWYKIAotI2lmbmRlZglDRkdfSTJDX1NMQVZFCi0jZGVmaW5lCUNGR19JMkNfU0xBVkUJMHhGRQorI2lmbmRlZglDT05GSUdfU1lTX0kyQ19TTEFWRQorI2RlZmluZQlDT05GSUdfU1lTX0kyQ19TTEFWRQkweEZFCiAjZW5kaWYKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwpAQCAtMTc2LDcgKzE3Niw3IEBACiAgKi8KIHN0YXRpYyBpbnQgaTJjX3NldHJhdGUoaW50IGh6LCBpbnQgc3BlZWQpCiB7Ci0gICAgaW1tYXBfdAkqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SIDsKKyAgICBpbW1hcF90CSppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SIDsKICAgICB2b2xhdGlsZSBpMmM4MjYwX3QgKmkyYyA9IChpMmM4MjYwX3QgKikmaW1tYXAtPmltX2kyYzsKICAgICBpbnQgYnJndmFsLAogCSAgbW9kdmFsLAkvKiAwLTMgKi8KQEAgLTIxOSw3ICsyMTksNyBAQAogCiB2b2lkIGkyY19pbml0KGludCBzcGVlZCwgaW50IHNsYXZlYWRkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUiA7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiA7CiAJdm9sYXRpbGUgY3BtODI2MF90ICpjcCA9IChjcG04MjYwX3QgKikmaW1tYXAtPmltX2NwbTsKIAl2b2xhdGlsZSBpMmM4MjYwX3QgKmkyYwk9IChpMmM4MjYwX3QgKikmaW1tYXAtPmltX2kyYzsKIAl2b2xhdGlsZSBpaWNfdCAqaWlwOwpAQCAtMjI3LDcgKzIyNyw3IEBACiAJdm9sYXRpbGUgSTJDX0JEICpyeGJkLCAqdHhiZDsKIAl1aW50IGRwYWRkcjsKIAotI2lmZGVmIENGR19JMkNfSU5JVF9CT0FSRAorI2lmZGVmIENPTkZJR19TWVNfSTJDX0lOSVRfQk9BUkQKIAkvKiBjYWxsIGJvYXJkIHNwZWNpZmljIGkyYyBidXMgcmVzZXQgcm91dGluZSBiZWZvcmUgYWNjZXNzaW5nIHRoZSAgICovCiAJLyogZW52aXJvbm1lbnQsIHdoaWNoIG1pZ2h0IGJlIGluIGEgY2hpcCBvbiB0aGF0IGJ1cy4gRm9yIGRldGFpbHMgICAqLwogCS8qIGFib3V0IHRoaXMgcHJvYmxlbSBzZWUgZG9jL0kyQ19FZGdlX0NvbmRpdGlvbnMuICAgICAgICAgICAgICAgICAgKi8KQEAgLTI3MCw3ICsyNzAsNyBAQAogCSAqIGRpdmlkZSBCUkdDTEsgYnkgMSkKIAkgKi8KIAlQUklOVEQoKCJbSTJDXSBTZXR0aW5nIHJhdGUuLi5cbiIpKTsKLQlpMmNfc2V0cmF0ZSAoZ2QtPmJyZ19jbGssIENGR19JMkNfU1BFRUQpIDsKKwlpMmNfc2V0cmF0ZSAoZ2QtPmJyZ19jbGssIENPTkZJR19TWVNfSTJDX1NQRUVEKSA7CiAKIAkvKiBTZXQgSTJDIGNvbnRyb2xsZXIgaW4gbWFzdGVyIG1vZGUgKi8KIAlpMmMtPmkyY19pMmNvbSA9IDB4MDE7CkBAIC0zMDksNyArMzA5LDcgQEAKIHN0YXRpYwogdm9pZCBpMmNfbmV3aW8oaTJjX3N0YXRlX3QgKnN0YXRlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUiA7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiA7CiAJdm9sYXRpbGUgaWljX3QgKmlpcDsKIAl1aW50IGRwYWRkcjsKIApAQCAtNDk0LDcgKzQ5NCw3IEBACiBzdGF0aWMKIGludCBpMmNfZG9pbyhpMmNfc3RhdGVfdCAqc3RhdGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SIDsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SIDsKIAl2b2xhdGlsZSBpaWNfdCAqaWlwOwogCXZvbGF0aWxlIGkyYzgyNjBfdCAqaTJjCT0gKGkyYzgyNjBfdCAqKSZpbW1hcC0+aW1faTJjOwogCXZvbGF0aWxlIEkyQ19CRCAqdHhiZCwgKnJ4YmQ7CkBAIC02NjcsNyArNjY3LDcgQEAKIAl4YWRkclsyXSA9IChhZGRyID4+ICA4KSAmIDB4RkY7CiAJeGFkZHJbM10gPSAgYWRkciAgICAgICAgJiAweEZGOwogCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCiAJIC8qCiAJICAqIEVFUFJPTSBjaGlwcyB0aGF0IGltcGxlbWVudCAiYWRkcmVzcyBvdmVyZmxvdyIgYXJlIG9uZXMKIAkgICogbGlrZSBDYXRhbHlzdCAyNFdDMDQvMDgvMTYgd2hpY2ggaGFzIDkvMTAvMTEgYml0cyBvZiBhZGRyZXNzCkBAIC02NzksNyArNjc5LDcgQEAKIAkgICogYmUgb25lIGJ5dGUgYmVjYXVzZSB0aGUgZXh0cmEgYWRkcmVzcyBiaXRzIGFyZSBoaWRkZW4gaW4gdGhlCiAJICAqIGNoaXAgYWRkcmVzcy4KIAkgICovCi0JY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKKwljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKICNlbmRpZgogCiAJaTJjX25ld2lvKCZzdGF0ZSk7CkBAIC03MTYsNyArNzE2LDcgQEAKIAl4YWRkclsyXSA9IChhZGRyID4+ICA4KSAmIDB4RkY7CiAJeGFkZHJbM10gPSAgYWRkciAgICAgICAgJiAweEZGOwogCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCiAJIC8qCiAJICAqIEVFUFJPTSBjaGlwcyB0aGF0IGltcGxlbWVudCAiYWRkcmVzcyBvdmVyZmxvdyIgYXJlIG9uZXMKIAkgICogbGlrZSBDYXRhbHlzdCAyNFdDMDQvMDgvMTYgd2hpY2ggaGFzIDkvMTAvMTEgYml0cyBvZiBhZGRyZXNzCkBAIC03MjgsNyArNzI4LDcgQEAKIAkgICogYmUgb25lIGJ5dGUgYmVjYXVzZSB0aGUgZXh0cmEgYWRkcmVzcyBiaXRzIGFyZSBoaWRkZW4gaW4gdGhlCiAJICAqIGNoaXAgYWRkcmVzcy4KIAkgICovCi0JY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKKwljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKICNlbmRpZgogCiAJaTJjX25ld2lvKCZzdGF0ZSk7CkBAIC03ODEsNyArNzgxLDcgQEAKIGludCBpMmNfc2V0X2J1c19udW0odW5zaWduZWQgaW50IGJ1cykKIHsKICNpZiBkZWZpbmVkKENPTkZJR19JMkNfTVVYKQotCWlmIChidXMgPCBDRkdfTUFYX0kyQ19CVVMpIHsKKwlpZiAoYnVzIDwgQ09ORklHX1NZU19NQVhfSTJDX0JVUykgewogCQlpMmNfYnVzX251bSA9IGJ1czsKIAl9IGVsc2UgewogCQlpbnQJcmV0OwpAQCAtNzkzLDcgKzc5Myw3IEBACiAJCQlyZXR1cm4gcmV0OwogCX0KICNlbHNlCi0JaWYgKGJ1cyA+PSBDRkdfTUFYX0kyQ19CVVMpCisJaWYgKGJ1cyA+PSBDT05GSUdfU1lTX01BWF9JMkNfQlVTKQogCQlyZXR1cm4gLTE7CiAJaTJjX2J1c19udW0gPSBidXM7CiAjZW5kaWYKQEAgLTgwMiwxMiArODAyLDEyIEBACiAvKiBUT0RPOiBhZGQgMTAwLzQwMGsgc3dpdGNoaW5nICovCiB1bnNpZ25lZCBpbnQgaTJjX2dldF9idXNfc3BlZWQodm9pZCkKIHsKLQlyZXR1cm4gQ0ZHX0kyQ19TUEVFRDsKKwlyZXR1cm4gQ09ORklHX1NZU19JMkNfU1BFRUQ7CiB9CiAKIGludCBpMmNfc2V0X2J1c19zcGVlZCh1bnNpZ25lZCBpbnQgc3BlZWQpCiB7Ci0JaWYgKHNwZWVkICE9IENGR19JMkNfU1BFRUQpCisJaWYgKHNwZWVkICE9IENPTkZJR19TWVNfSTJDX1NQRUVEKQogCQlyZXR1cm4gLTE7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjYwL2ludGVycnVwdHMuYyBiL2NwdS9tcGM4MjYwL2ludGVycnVwdHMuYwppbmRleCBiZjBkNGQwLi5hNzcwMGM0IDEwMDY0NAotLS0gYS9jcHUvbXBjODI2MC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L21wYzgyNjAvaW50ZXJydXB0cy5jCkBAIC04Miw3ICs4Miw3IEBACiAKIHN0YXRpYyB2b2lkIG04MjYwX21hc2tfaXJxICh1bnNpZ25lZCBpbnQgaXJxX25yKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCWludCBiaXQsIHdvcmQ7CiAJdm9sYXRpbGUgdWludCAqc2ltcjsKIApAQCAtOTYsNyArOTYsNyBAQAogCiBzdGF0aWMgdm9pZCBtODI2MF91bm1hc2tfaXJxICh1bnNpZ25lZCBpbnQgaXJxX25yKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCWludCBiaXQsIHdvcmQ7CiAJdm9sYXRpbGUgdWludCAqc2ltcjsKIApAQCAtMTEwLDcgKzExMCw3IEBACiAKIHN0YXRpYyB2b2lkIG04MjYwX21hc2tfYW5kX2FjayAodW5zaWduZWQgaW50IGlycV9ucikKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlpbnQgYml0LCB3b3JkOwogCXZvbGF0aWxlIHVpbnQgKnNpbXIsICpzaXBucjsKIApAQCAtMTI2LDcgKzEyNiw3IEBACiAKIHN0YXRpYyBpbnQgbTgyNjBfZ2V0X2lycSAoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJaW50IGlycTsKIAl1bnNpZ25lZCBsb25nIGJpdHM7CiAKQEAgLTE0Miw5ICsxNDIsOSBAQAogCiBpbnQgaW50ZXJydXB0X2luaXRfY3B1ICh1bnNpZ25lZCAqZGVjcmVtZW50ZXJfY291bnQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKLQkqZGVjcmVtZW50ZXJfY291bnQgPSAoZ2QtPmJ1c19jbGsgLyA0KSAvIENGR19IWjsKKwkqZGVjcmVtZW50ZXJfY291bnQgPSAoZ2QtPmJ1c19jbGsgLyA0KSAvIENPTkZJR19TWVNfSFo7CiAKIAkvKiBJbml0aWFsaXplIHRoZSBkZWZhdWx0IGludGVycnVwdCBtYXBwaW5nIHByaW9yaXRpZXMgKi8KIAlpbW1yLT5pbV9pbnRjdGwuaWNfc2ljciA9IDA7CmRpZmYgLS1naXQgYS9jcHUvbXBjODI2MC9rZ2RiLlMgYi9jcHUvbXBjODI2MC9rZ2RiLlMKaW5kZXggZGFlODdiYi4uYzU5MzZjNyAxMDA2NDQKLS0tIGEvY3B1L21wYzgyNjAva2dkYi5TCisrKyBiL2NwdS9tcGM4MjYwL2tnZGIuUwpAQCAtNTAsMjEgKzUwLDIxIEBACiAKIAkuZ2xvYmwJa2dkYl9mbHVzaF9jYWNoZV9yYW5nZQoga2dkYl9mbHVzaF9jYWNoZV9yYW5nZToKLQlsaQlyNSxDRkdfQ0FDSEVMSU5FX1NJWkUtMQorCWxpCXI1LENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUtMQogCWFuZGMJcjMscjMscjUKIAlzdWJmCXI0LHIzLHI0CiAJYWRkCXI0LHI0LHI1Ci0Jc3J3aS4JcjQscjQsQ0ZHX0NBQ0hFTElORV9TSElGVAorCXNyd2kuCXI0LHI0LENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCiAJYmVxbHIKIAltdGN0cglyNAogCW1yCXI2LHIzCiAxOglkY2JzdAkwLHIzCi0JYWRkaQlyMyxyMyxDRkdfQ0FDSEVMSU5FX1NJWkUKKwlhZGRpCXIzLHIzLENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKIAliZG56CTFiCiAJc3luYwkJCQkvKiB3YWl0IGZvciBkY2JzdCdzIHRvIGdldCB0byByYW0gKi8KIAltdGN0cglyNAogMjoJaWNiaQkwLHI2Ci0JYWRkaQlyNixyNixDRkdfQ0FDSEVMSU5FX1NJWkUKKwlhZGRpCXI2LHI2LENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKIAliZG56CTJiCiAJU1lOQwogCWJscgpkaWZmIC0tZ2l0IGEvY3B1L21wYzgyNjAvcGNpLmMgYi9jcHUvbXBjODI2MC9wY2kuYwppbmRleCA4MjMwMzY0Li4zNzhkNmM1IDEwMDY0NAotLS0gYS9jcHUvbXBjODI2MC9wY2kuYworKysgYi9jcHUvbXBjODI2MC9wY2kuYwpAQCAtNzAsMjMgKzcwLDIzIEBACiAgKiBUaGlzIHdpbmRvdyBpcyBzZXQgdXAgdXNpbmcgdGhlIGZpcnN0IHNldCBvZiBJbmJvdW5kIEFUVSByZWdpc3RlcnMKICAqLwogCi0jaWZuZGVmIENGR19QQ0lfU0xWX01FTV9MT0NBTAotI2RlZmluZSBQQ0lfU0xWX01FTV9MT0NBTCBDRkdfU0RSQU1fQkFTRQkvKiBMb2NhbCBiYXNlICovCisjaWZuZGVmIENPTkZJR19TWVNfUENJX1NMVl9NRU1fTE9DQUwKKyNkZWZpbmUgUENJX1NMVl9NRU1fTE9DQUwgQ09ORklHX1NZU19TRFJBTV9CQVNFCS8qIExvY2FsIGJhc2UgKi8KICNlbHNlCi0jZGVmaW5lIFBDSV9TTFZfTUVNX0xPQ0FMIENGR19QQ0lfU0xWX01FTV9MT0NBTAorI2RlZmluZSBQQ0lfU0xWX01FTV9MT0NBTCBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0xPQ0FMCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUENJX1NMVl9NRU1fQlVTCisjaWZuZGVmIENPTkZJR19TWVNfUENJX1NMVl9NRU1fQlVTCiAjZGVmaW5lIFBDSV9TTFZfTUVNX0JVUyAweDAwMDAwMDAwCS8qIFBDSSBiYXNlICovCiAjZWxzZQotI2RlZmluZSBQQ0lfU0xWX01FTV9CVVMgQ0ZHX1BDSV9TTFZfTUVNX0JVUworI2RlZmluZSBQQ0lfU0xWX01FTV9CVVMgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9CVVMKICNlbmRpZgogCi0jaWZuZGVmIENGR19QSUNNUjBfTUFTS19BVFRSSUIKKyNpZm5kZWYgQ09ORklHX1NZU19QSUNNUjBfTUFTS19BVFRSSUIKICNkZWZpbmUgUElDTVIwX01BU0tfQVRUUklCCShQSUNNUl9NQVNLXzUxMk1CIHwgUElDTVJfRU5BQkxFIHwgXAogCQkJCSBQSUNNUl9QUkVGRVRDSF9FTikKICNlbHNlCi0jZGVmaW5lIFBJQ01SMF9NQVNLX0FUVFJJQiBDRkdfUElDTVIwX01BU0tfQVRUUklCCisjZGVmaW5lIFBJQ01SMF9NQVNLX0FUVFJJQiBDT05GSUdfU1lTX1BJQ01SMF9NQVNLX0FUVFJJQgogI2VuZGlmCiAKIC8qCkBAIC05NywyOSArOTcsMjkgQEAKICAqLwogCiAvKiBQQ0lCUjAgKi8KLSNpZm5kZWYgQ0ZHX1BDSV9NU1RSMF9MT0NBTAorI2lmbmRlZiBDT05GSUdfU1lTX1BDSV9NU1RSMF9MT0NBTAogI2RlZmluZSBQQ0lfTVNUUjBfTE9DQUwJCTB4ODAwMDAwMDAJLyogTG9jYWwgYmFzZSAqLwogI2Vsc2UKLSNkZWZpbmUgUENJX01TVFIwX0xPQ0FMIENGR19QQ0lfTVNUUjBfTE9DQUwKKyNkZWZpbmUgUENJX01TVFIwX0xPQ0FMIENPTkZJR19TWVNfUENJX01TVFIwX0xPQ0FMCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUENJTVNLMF9NQVNLCisjaWZuZGVmIENPTkZJR19TWVNfUENJTVNLMF9NQVNLCiAjZGVmaW5lIFBDSU1TSzBfTUFTSwkJUENJTVNLXzFHQgkvKiBTaXplIG9mIHdpbmRvdyAqLwogI2Vsc2UKLSNkZWZpbmUgUENJTVNLMF9NQVNLCUNGR19QQ0lNU0swX01BU0sKKyNkZWZpbmUgUENJTVNLMF9NQVNLCUNPTkZJR19TWVNfUENJTVNLMF9NQVNLCiAjZW5kaWYKIAogLyogUENJQlIxICovCi0jaWZuZGVmIENGR19QQ0lfTVNUUjFfTE9DQUwKKyNpZm5kZWYgQ09ORklHX1NZU19QQ0lfTVNUUjFfTE9DQUwKICNkZWZpbmUgUENJX01TVFIxX0xPQ0FMCQkweEY0MDAwMDAwCS8qIExvY2FsIGJhc2UgKi8KICNlbHNlCi0jZGVmaW5lIFBDSV9NU1RSMV9MT0NBTAkJQ0ZHX1BDSV9NU1RSMV9MT0NBTAorI2RlZmluZSBQQ0lfTVNUUjFfTE9DQUwJCUNPTkZJR19TWVNfUENJX01TVFIxX0xPQ0FMCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUENJTVNLMV9NQVNLCisjaWZuZGVmIENPTkZJR19TWVNfUENJTVNLMV9NQVNLCiAjZGVmaW5lCSBQQ0lNU0sxX01BU0sJCVBDSU1TS182NE1CCS8qIFNpemUgb2Ygd2luZG93ICovCiAjZWxzZQotI2RlZmluZQkgUENJTVNLMV9NQVNLCQlDRkdfUENJTVNLMV9NQVNLCisjZGVmaW5lCSBQQ0lNU0sxX01BU0sJCUNPTkZJR19TWVNfUENJTVNLMV9NQVNLCiAjZW5kaWYKIAogLyoKQEAgLTEyOCwzNCArMTI4LDM0IEBACiAgKiBpbiB0aGUgYnJpZGdlLgogICovCiAKLSNpZm5kZWYgQ0ZHX1BDSV9NU1RSX01FTV9MT0NBTAorI2lmbmRlZiBDT05GSUdfU1lTX1BDSV9NU1RSX01FTV9MT0NBTAogI2RlZmluZSBQQ0lfTVNUUl9NRU1fTE9DQUwgMHg4MDAwMDAwMAkvKiBMb2NhbCBiYXNlICovCiAjZWxzZQotI2RlZmluZSBQQ0lfTVNUUl9NRU1fTE9DQUwgQ0ZHX1BDSV9NU1RSX01FTV9MT0NBTAorI2RlZmluZSBQQ0lfTVNUUl9NRU1fTE9DQUwgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1fTE9DQUwKICNlbmRpZgogCi0jaWZuZGVmIENGR19QQ0lfTVNUUl9NRU1fQlVTCisjaWZuZGVmIENPTkZJR19TWVNfUENJX01TVFJfTUVNX0JVUwogI2RlZmluZSBQQ0lfTVNUUl9NRU1fQlVTIDB4ODAwMDAwMDAJLyogUENJIGJhc2UgICAqLwogI2Vsc2UKLSNkZWZpbmUgUENJX01TVFJfTUVNX0JVUyBDRkdfUENJX01TVFJfTUVNX0JVUworI2RlZmluZSBQQ0lfTVNUUl9NRU1fQlVTIENPTkZJR19TWVNfUENJX01TVFJfTUVNX0JVUwogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX0NQVV9QQ0lfTUVNX1NUQVJUCisjaWZuZGVmIENPTkZJR19TWVNfQ1BVX1BDSV9NRU1fU1RBUlQKICNkZWZpbmUgQ1BVX1BDSV9NRU1fU1RBUlQgUENJX01TVFJfTUVNX0xPQ0FMCiAjZWxzZQotI2RlZmluZSBDUFVfUENJX01FTV9TVEFSVCBDRkdfQ1BVX1BDSV9NRU1fU1RBUlQKKyNkZWZpbmUgQ1BVX1BDSV9NRU1fU1RBUlQgQ09ORklHX1NZU19DUFVfUENJX01FTV9TVEFSVAogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1BDSV9NU1RSX01FTV9TSVpFCisjaWZuZGVmIENPTkZJR19TWVNfUENJX01TVFJfTUVNX1NJWkUKICNkZWZpbmUgUENJX01TVFJfTUVNX1NJWkUgMHgxMDAwMDAwMAkvKiAyNTZNQiAqLwogI2Vsc2UKLSNkZWZpbmUgUENJX01TVFJfTUVNX1NJWkUgQ0ZHX1BDSV9NU1RSX01FTV9TSVpFCisjZGVmaW5lIFBDSV9NU1RSX01FTV9TSVpFIENPTkZJR19TWVNfUENJX01TVFJfTUVNX1NJWkUKICNlbmRpZgogCi0jaWZuZGVmIENGR19QT0NNUjBfTUFTS19BVFRSSUIKKyNpZm5kZWYgQ09ORklHX1NZU19QT0NNUjBfTUFTS19BVFRSSUIKICNkZWZpbmUgUE9DTVIwX01BU0tfQVRUUklCCShQT0NNUl9NQVNLXzI1Nk1CIHwgUE9DTVJfRU5BQkxFIHwgUE9DTVJfUFJFRkVUQ0hfRU4pCiAjZWxzZQotI2RlZmluZSBQT0NNUjBfTUFTS19BVFRSSUIgQ0ZHX1BPQ01SMF9NQVNLX0FUVFJJQgorI2RlZmluZSBQT0NNUjBfTUFTS19BVFRSSUIgQ09ORklHX1NZU19QT0NNUjBfTUFTS19BVFRSSUIKICNlbmRpZgogCiAvKgpAQCAtMTY0LDM0ICsxNjQsMzQgQEAKICAqIGluIHRoZSBicmlkZ2UuCiAgKi8KIAotI2lmbmRlZiBDRkdfUENJX01TVFJfTUVNSU9fTE9DQUwKKyNpZm5kZWYgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1JT19MT0NBTAogI2RlZmluZSBQQ0lfTVNUUl9NRU1JT19MT0NBTCAweDkwMDAwMDAwIC8qIExvY2FsIGJhc2UgKi8KICNlbHNlCi0jZGVmaW5lIFBDSV9NU1RSX01FTUlPX0xPQ0FMIENGR19QQ0lfTVNUUl9NRU1JT19MT0NBTAorI2RlZmluZSBQQ0lfTVNUUl9NRU1JT19MT0NBTCBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX0xPQ0FMCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUENJX01TVFJfTUVNSU9fQlVTCisjaWZuZGVmIENPTkZJR19TWVNfUENJX01TVFJfTUVNSU9fQlVTCiAjZGVmaW5lIFBDSV9NU1RSX01FTUlPX0JVUyAweDkwMDAwMDAwCS8qIFBDSSBiYXNlICAgKi8KICNlbHNlCi0jZGVmaW5lIFBDSV9NU1RSX01FTUlPX0JVUyBDRkdfUENJX01TVFJfTUVNSU9fQlVTCisjZGVmaW5lIFBDSV9NU1RSX01FTUlPX0JVUyBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX0JVUwogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX0NQVV9QQ0lfTUVNSU9fU1RBUlQKKyNpZm5kZWYgQ09ORklHX1NZU19DUFVfUENJX01FTUlPX1NUQVJUCiAjZGVmaW5lIENQVV9QQ0lfTUVNSU9fU1RBUlQgUENJX01TVFJfTUVNSU9fTE9DQUwKICNlbHNlCi0jZGVmaW5lIENQVV9QQ0lfTUVNSU9fU1RBUlQgQ0ZHX0NQVV9QQ0lfTUVNSU9fU1RBUlQKKyNkZWZpbmUgQ1BVX1BDSV9NRU1JT19TVEFSVCBDT05GSUdfU1lTX0NQVV9QQ0lfTUVNSU9fU1RBUlQKICNlbmRpZgogCi0jaWZuZGVmIENGR19QQ0lfTVNUUl9NRU1JT19TSVpFCisjaWZuZGVmIENPTkZJR19TWVNfUENJX01TVFJfTUVNSU9fU0laRQogI2RlZmluZSBQQ0lfTVNUUl9NRU1JT19TSVpFIDB4MTAwMDAwMDAJLyogMjU2IE1CICovCiAjZWxzZQotI2RlZmluZSBQQ0lfTVNUUl9NRU1JT19TSVpFIENGR19QQ0lfTVNUUl9NRU1JT19TSVpFCisjZGVmaW5lIFBDSV9NU1RSX01FTUlPX1NJWkUgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1JT19TSVpFCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUE9DTVIxX01BU0tfQVRUUklCCisjaWZuZGVmIENPTkZJR19TWVNfUE9DTVIxX01BU0tfQVRUUklCCiAjZGVmaW5lIFBPQ01SMV9NQVNLX0FUVFJJQgkoUE9DTVJfTUFTS181MTJNQiB8IFBPQ01SX0VOQUJMRSkKICNlbHNlCi0jZGVmaW5lIFBPQ01SMV9NQVNLX0FUVFJJQiBDRkdfUE9DTVIxX01BU0tfQVRUUklCCisjZGVmaW5lIFBPQ01SMV9NQVNLX0FUVFJJQiBDT05GSUdfU1lTX1BPQ01SMV9NQVNLX0FUVFJJQgogI2VuZGlmCiAKIC8qCkBAIC0yMDAsMzQgKzIwMCwzNCBAQAogICogaW4gdGhlIGJyaWRnZS4KICAqLwogCi0jaWZuZGVmIENGR19QQ0lfTVNUUl9JT19MT0NBTAorI2lmbmRlZiBDT05GSUdfU1lTX1BDSV9NU1RSX0lPX0xPQ0FMCiAjZGVmaW5lIFBDSV9NU1RSX0lPX0xPQ0FMIDB4QTAwMDAwMDAJLyogTG9jYWwgYmFzZSAqLwogI2Vsc2UKLSNkZWZpbmUgUENJX01TVFJfSU9fTE9DQUwgQ0ZHX1BDSV9NU1RSX0lPX0xPQ0FMCisjZGVmaW5lIFBDSV9NU1RSX0lPX0xPQ0FMIENPTkZJR19TWVNfUENJX01TVFJfSU9fTE9DQUwKICNlbmRpZgogCi0jaWZuZGVmIENGR19QQ0lfTVNUUl9JT19CVVMKKyNpZm5kZWYgQ09ORklHX1NZU19QQ0lfTVNUUl9JT19CVVMKICNkZWZpbmUgUENJX01TVFJfSU9fQlVTIDB4QTAwMDAwMDAJLyogUENJIGJhc2UgICAqLwogI2Vsc2UKLSNkZWZpbmUgUENJX01TVFJfSU9fQlVTIENGR19QQ0lfTVNUUl9JT19CVVMKKyNkZWZpbmUgUENJX01TVFJfSU9fQlVTIENPTkZJR19TWVNfUENJX01TVFJfSU9fQlVTCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfQ1BVX1BDSV9JT19TVEFSVAorI2lmbmRlZiBDT05GSUdfU1lTX0NQVV9QQ0lfSU9fU1RBUlQKICNkZWZpbmUgQ1BVX1BDSV9JT19TVEFSVCBQQ0lfTVNUUl9JT19MT0NBTAogI2Vsc2UKLSNkZWZpbmUgQ1BVX1BDSV9JT19TVEFSVCBDRkdfQ1BVX1BDSV9JT19TVEFSVAorI2RlZmluZSBDUFVfUENJX0lPX1NUQVJUIENPTkZJR19TWVNfQ1BVX1BDSV9JT19TVEFSVAogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1BDSV9NU1RSX0lPX1NJWkUKKyNpZm5kZWYgQ09ORklHX1NZU19QQ0lfTVNUUl9JT19TSVpFCiAjZGVmaW5lIFBDSV9NU1RSX0lPX1NJWkUgMHgxMDAwMDAwMAkvKiAyNTZNQiAqLwogI2Vsc2UKLSNkZWZpbmUgUENJX01TVFJfSU9fU0laRSBDRkdfUENJX01TVFJfSU9fU0laRQorI2RlZmluZSBQQ0lfTVNUUl9JT19TSVpFIENPTkZJR19TWVNfUENJX01TVFJfSU9fU0laRQogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1BPQ01SMl9NQVNLX0FUVFJJQgorI2lmbmRlZiBDT05GSUdfU1lTX1BPQ01SMl9NQVNLX0FUVFJJQgogI2RlZmluZSBQT0NNUjJfTUFTS19BVFRSSUIJKFBPQ01SX01BU0tfMjU2TUIgfCBQT0NNUl9FTkFCTEUgfCBQT0NNUl9QQ0lfSU8pCiAjZWxzZQotI2RlZmluZSBQT0NNUjJfTUFTS19BVFRSSUIgQ0ZHX1BPQ01SMl9NQVNLX0FUVFJJQgorI2RlZmluZSBQT0NNUjJfTUFTS19BVFRSSUIgQ09ORklHX1NZU19QT0NNUjJfTUFTS19BVFRSSUIKICNlbmRpZgogCiAvKiBQQ0kgYnVzIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXJzLgpAQCAtMjQ1LDExICsyNDUsMTEgQEAKIHsKIAl1MTYgdGVtcFNob3J0OwogCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlwY2lfZGV2X3QgaG9zdF9kZXZubyA9IFBDSV9CREYgKDAsIDAsIDApOwogCi0JcGNpX3NldHVwX2luZGlyZWN0IChob3NlLCBDRkdfSU1NUiArIFBDSV9DRkdfQUREUl9SRUcsCi0JCQkgICAgQ0ZHX0lNTVIgKyBQQ0lfQ0ZHX0RBVEFfUkVHKTsKKwlwY2lfc2V0dXBfaW5kaXJlY3QgKGhvc2UsIENPTkZJR19TWVNfSU1NUiArIFBDSV9DRkdfQUREUl9SRUcsCisJCQkgICAgQ09ORklHX1NZU19JTU1SICsgUENJX0NGR19EQVRBX1JFRyk7CiAKIAkvKgogCSAqIFNldHRpbmcgcmVxdWlyZWQgdG8gZW5hYmxlIGxvY2FsIGJ1cyBmb3IgUENJIChTSVVNQ1IgW0xCUENdKS4KQEAgLTQxMyw4ICs0MTMsOCBAQAogCQkJZ2QtPnJhbV9zaXplLCBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKICNlbHNlCiAJcGNpX3NldF9yZWdpb24gKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJQ0ZHX1NEUkFNX0JBU0UsCi0JCQlDRkdfU0RSQU1fQkFTRSwKKwkJCUNPTkZJR19TWVNfU0RSQU1fQkFTRSwKKwkJCUNPTkZJR19TWVNfU0RSQU1fQkFTRSwKIAkJCTB4NDAwMDAwMCwgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvY3B1L21wYzgyNjAvc2VyaWFsX3NjYy5jIGIvY3B1L21wYzgyNjAvc2VyaWFsX3NjYy5jCmluZGV4IDNhNmVhZjAuLjRhYjZhMjggMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjYwL3NlcmlhbF9zY2MuYworKysgYi9jcHUvbXBjODI2MC9zZXJpYWxfc2NjLmMKQEAgLTg0LDcgKzg0LDcgQEAKIAogaW50IHNlcmlhbF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHNjY190ICpzcDsKIAl2b2xhdGlsZSBzY2NfdWFydF90ICp1cDsKIAl2b2xhdGlsZSBjYmRfdCAqdGJkZiwgKnJiZGY7CkBAIC0yMDEsNyArMjAxLDcgQEAKIAlpZiAoYyA9PSAnXG4nKQogCQlzZXJpYWxfcHV0YyAoJ1xyJyk7CiAKLQlpbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1cCA9IChzY2NfdWFydF90ICopJmltLT5pbV9kcHJhbWJhc2VbUFJPRkZfU0NDXTsKIAl0YmRmID0gKGNiZF90ICopJmltLT5pbV9kcHJhbWJhc2VbdXAtPnNjY19nZW5zY2Muc2NjX3RiYXNlXTsKIApAQCAtMjMzLDcgKzIzMyw3IEBACiAJdm9sYXRpbGUgaW1tYXBfdAkqaW07CiAJdW5zaWduZWQgY2hhcgkJYzsKIAotCWltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwlpbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXVwID0gKHNjY191YXJ0X3QgKikmaW0tPmltX2RwcmFtYmFzZVtQUk9GRl9TQ0NdOwogCXJiZGYgPSAoY2JkX3QgKikmaW0tPmltX2RwcmFtYmFzZVt1cC0+c2NjX2dlbnNjYy5zY2NfcmJhc2VdOwogCkBAIC0yNTcsNyArMjU3LDcgQEAKIAl2b2xhdGlsZSBzY2NfdWFydF90CSp1cDsKIAl2b2xhdGlsZSBpbW1hcF90CSppbTsKIAotCWltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwlpbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXVwID0gKHNjY191YXJ0X3QgKikmaW0tPmltX2RwcmFtYmFzZVtQUk9GRl9TQ0NdOwogCXJiZGYgPSAoY2JkX3QgKikmaW0tPmltX2RwcmFtYmFzZVt1cC0+c2NjX2dlbnNjYy5zY2NfcmJhc2VdOwogCkBAIC0zMjEsNyArMzIxLDcgQEAKIHZvaWQKIGtnZGJfc2VyaWFsX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgc2NjX3QgKnNwOwogCXZvbGF0aWxlIHNjY191YXJ0X3QgKnVwOwogCXZvbGF0aWxlIGNiZF90ICp0YmRmLCAqcmJkZjsKQEAgLTQ0MCw3ICs0NDAsNyBAQAogCWlmIChjID09ICdcbicpCiAJCXB1dERlYnVnQ2hhciAoJ1xyJyk7CiAKLQlpbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1cCA9IChzY2NfdWFydF90ICopJmltLT5pbV9kcHJhbWJhc2VbS0dEQl9QUk9GRl9TQ0NdOwogCXRiZGYgPSAoY2JkX3QgKikmaW0tPmltX2RwcmFtYmFzZVt1cC0+c2NjX2dlbnNjYy5zY2NfdGJhc2VdOwogCkBAIC00NzIsNyArNDcyLDcgQEAKIAl2b2xhdGlsZSBpbW1hcF90CSppbTsKIAl1bnNpZ25lZCBjaGFyCQljOwogCi0JaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCWltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdXAgPSAoc2NjX3VhcnRfdCAqKSZpbS0+aW1fZHByYW1iYXNlW0tHREJfUFJPRkZfU0NDXTsKIAlyYmRmID0gKGNiZF90ICopJmltLT5pbV9kcHJhbWJhc2VbdXAtPnNjY19nZW5zY2Muc2NjX3JiYXNlXTsKIApkaWZmIC0tZ2l0IGEvY3B1L21wYzgyNjAvc2VyaWFsX3NtYy5jIGIvY3B1L21wYzgyNjAvc2VyaWFsX3NtYy5jCmluZGV4IGYzZGZmZWIuLmE2ZWZhNjYgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjYwL3NlcmlhbF9zbWMuYworKysgYi9jcHUvbXBjODI2MC9zZXJpYWxfc21jLmMKQEAgLTc2LDcgKzc2LDcgQEAKIAogaW50IHNlcmlhbF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHNtY190ICpzcDsKIAl2b2xhdGlsZSBzbWNfdWFydF90ICp1cDsKIAl2b2xhdGlsZSBjYmRfdCAqdGJkZiwgKnJiZGY7CkBAIC0xODYsNyArMTg2LDcgQEAKIAl2b2xhdGlsZSBjYmRfdAkJKnRiZGY7CiAJdm9sYXRpbGUgY2hhcgkJKmJ1ZjsKIAl2b2xhdGlsZSBzbWNfdWFydF90CSp1cDsKLQl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAogCWlmIChjID09ICdcbicpCiAJCXNlcmlhbF9wdXRjICgnXHInKTsKQEAgLTIyMCw3ICsyMjAsNyBAQAogCXZvbGF0aWxlIGNiZF90CQkqcmJkZjsKIAl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyCSpidWY7CiAJdm9sYXRpbGUgc21jX3VhcnRfdAkqdXA7Ci0Jdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdW5zaWduZWQgY2hhcgkJYzsKIAogCXVwID0gKHNtY191YXJ0X3QgKikmKGltLT5pbV9kcHJhbWJhc2VbUFJPRkZfU01DXSk7CkBAIC0yNDMsNyArMjQzLDcgQEAKIHsKIAl2b2xhdGlsZSBjYmRfdAkJKnJiZGY7CiAJdm9sYXRpbGUgc21jX3VhcnRfdAkqdXA7Ci0Jdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAKIAl1cCA9IChzbWNfdWFydF90ICopJihpbS0+aW1fZHByYW1iYXNlW1BST0ZGX1NNQ10pOwogCkBAIC0yODksNyArMjg5LDcgQEAKIHZvaWQKIGtnZGJfc2VyaWFsX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgc21jX3QgKnNwOwogCXZvbGF0aWxlIHNtY191YXJ0X3QgKnVwOwogCXZvbGF0aWxlIGNiZF90ICp0YmRmLCAqcmJkZjsKQEAgLTQwMSw3ICs0MDEsNyBAQAogCXZvbGF0aWxlIGNiZF90CQkqdGJkZjsKIAl2b2xhdGlsZSBjaGFyCQkqYnVmOwogCXZvbGF0aWxlIHNtY191YXJ0X3QJKnVwOwotCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCiAJaWYgKGMgPT0gJ1xuJykKIAkJcHV0RGVidWdDaGFyICgnXHInKTsKQEAgLTQzNSw3ICs0MzUsNyBAQAogCXZvbGF0aWxlIGNiZF90CQkqcmJkZjsKIAl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyCSpidWY7CiAJdm9sYXRpbGUgc21jX3VhcnRfdAkqdXA7Ci0Jdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdW5zaWduZWQgY2hhcgkJYzsKIAogCXVwID0gKHNtY191YXJ0X3QgKikmKGltLT5pbV9kcHJhbWJhc2VbS0dEQl9QUk9GRl9TTUNdKTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjYwL3NwZWVkLmMgYi9jcHUvbXBjODI2MC9zcGVlZC5jCmluZGV4IDhkMjgwZmIuLjBlMWMyYjAgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjYwL3NwZWVkLmMKKysrIGIvY3B1L21wYzgyNjAvc3BlZWQuYwpAQCAtMTA3LDcgKzEwNyw3IEBACiAKIGludCBnZXRfY2xvY2tzICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdWxvbmcgY2xraW47CiAJdWxvbmcgc2NjciwgZGZicmc7CiAJdWxvbmcgc2NtciwgY29yZWNuZiwgYnVzZGYsIGNwbWRmLCBwbGxkZiwgcGxsbWY7CkBAIC0xOTEsNyArMTkxLDcgQEAKIAogaW50IHBydF84MjYwX2Nsa3MgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1bG9uZyBzY2NyLCBkZmJyZzsKIAl1bG9uZyBzY21yLCBjb3JlY25mLCBidXNkZiwgY3BtZGYsIHBsbGRmLCBwbGxtZiwgcGNpZGY7CiAJY29yZWNuZl90ICpjcDsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjYwL3NwaS5jIGIvY3B1L21wYzgyNjAvc3BpLmMKaW5kZXggYzFhNjA3Yy4uZjVkMmFjMyAxMDA2NDQKLS0tIGEvY3B1L21wYzgyNjAvc3BpLmMKKysrIGIvY3B1L21wYzgyNjAvc3BpLmMKQEAgLTYzLDggKzYzLDggQEAKICAqIFRoZSB2YWx1ZSAweDIwMDAgbWFrZXMgaXQgZmFyIGVub3VnaCBmcm9tIHRoZSBzdGFydCBvZiB0aGUgZGF0YQogICogYXJlYSAoYXMgd2VsbCBhcyBmcm9tIHRoZSBzdGFjayBwb2ludGVyKS4KICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotI2lmbmRlZglDRkdfU1BJX0lOSVRfT0ZGU0VUCi0jZGVmaW5lCUNGR19TUElfSU5JVF9PRkZTRVQJMHgyMDAwCisjaWZuZGVmCUNPTkZJR19TWVNfU1BJX0lOSVRfT0ZGU0VUCisjZGVmaW5lCUNPTkZJR19TWVNfU1BJX0lOSVRfT0ZGU0VUCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ1BNX1NQSV9CQVNFIDB4MTAwCkBAIC0xMTksMTEgKzExOSwxMSBAQAogICogSW5pdGlhbGx5IHdlIHBsYWNlIHRoZSBSWCBhbmQgVFggYnVmZmVycyBhdCBhIGZpeGVkIGxvY2F0aW9uIGluIERQUkFNIQogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogc3RhdGljIHVjaGFyICpyeGJ1ZiA9Ci0gICh1Y2hhciAqKSYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2RwcmFtYmFzZQotCQkJW0NGR19TUElfSU5JVF9PRkZTRVRdOworICAodWNoYXIgKikmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fZHByYW1iYXNlCisJCQlbQ09ORklHX1NZU19TUElfSU5JVF9PRkZTRVRdOwogc3RhdGljIHVjaGFyICp0eGJ1ZiA9Ci0gICh1Y2hhciAqKSYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2RwcmFtYmFzZQotCQkJW0NGR19TUElfSU5JVF9PRkZTRVQrTUFYX0JVRkZFUl07CisgICh1Y2hhciAqKSYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9kcHJhbWJhc2UKKwkJCVtDT05GSUdfU1lTX1NQSV9JTklUX09GRlNFVCtNQVhfQlVGRkVSXTsKIAogLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCkBAIC0xNDMsNyArMTQzLDcgQEAKIAl2b2xhdGlsZSBjcG04MjYwX3QgKmNwOwogCXZvbGF0aWxlIGNiZF90ICp0YmRmLCAqcmJkZjsKIAotCWltbXIgPSAoaW1tYXBfdCAqKSAgQ0ZHX0lNTVI7CisJaW1tciA9IChpbW1hcF90ICopICBDT05GSUdfU1lTX0lNTVI7CiAJY3AgICA9IChjcG04MjYwX3QgKikgJmltbXItPmltX2NwbTsKIAogCSoodXNob3J0ICopKCZpbW1yLT5pbV9kcHJhbWJhc2VbUFJPRkZfU1BJX0JBU0VdKSA9IFBST0ZGX1NQSTsKQEAgLTIwMCw3ICsyMDAsNyBAQAogCS8qIEFsbG9jYXRlIHNwYWNlIGZvciBvbmUgdHJhbnNtaXQgYW5kIG9uZSByZWNlaXZlIGJ1ZmZlcgogCSAqIGRlc2NyaXB0b3IgaW4gdGhlIERQIHJhbQogCSAqLwotI2lmZGVmIENGR19BTExPQ19EUFJBTQorI2lmZGVmIENPTkZJR19TWVNfQUxMT0NfRFBSQU0KIAlkcGFkZHIgPSBtODI2MF9jcG1fZHBhbGxvYyAoc2l6ZW9mKGNiZF90KSoyLCA4KTsKICNlbHNlCiAJZHBhZGRyID0gQ1BNX1NQSV9CQVNFOwpAQCAtMjc5LDcgKzI3OSw3IEBACiAJdm9sYXRpbGUgY3BtODI2MF90ICpjcDsKIAl2b2xhdGlsZSBjYmRfdCAqdGJkZiwgKnJiZGY7CiAKLQlpbW1yID0gKGltbWFwX3QgKikgIENGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKSAgQ09ORklHX1NZU19JTU1SOwogCWNwICAgPSAoY3BtODI2MF90ICopICZpbW1yLT5pbV9jcG07CiAKIAlzcGkgID0gKHNwaV90ICopJmltbXItPmltX2RwcmFtYmFzZVtQUk9GRl9TUEldOwpAQCAtMzY1LDcgKzM2NSw3IEBACiAKIAlEUFJJTlQgKCgiKioqIHNwaV94ZmVyIGVudGVyZWQgKioqXG4iKSk7CiAKLQlpbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAljcCAgID0gKGNwbTgyNjBfdCAqKSAmaW1tci0+aW1fY3BtOwogCiAJc3BpICA9IChzcGlfdCAqKSZpbW1yLT5pbV9kcHJhbWJhc2VbUFJPRkZfU1BJXTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjYwL3N0YXJ0LlMgYi9jcHUvbXBjODI2MC9zdGFydC5TCmluZGV4IDdmNWRjODEuLmRhMGM1MTYgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjYwL3N0YXJ0LlMKKysrIGIvY3B1L21wYzgyNjAvc3RhcnQuUwpAQCAtMTI3LDE0ICsxMjcsMTQgQEAKIAkudGV4dAogCS5nbG9ibAlfaHJjd190YWJsZQogX2hyY3dfdGFibGU6Ci0JX0hSQ1dfVEFCTEVfRU5UUlkoQ0ZHX0hSQ1dfTUFTVEVSKQotCV9IUkNXX1RBQkxFX0VOVFJZKENGR19IUkNXX1NMQVZFMSkKLQlfSFJDV19UQUJMRV9FTlRSWShDRkdfSFJDV19TTEFWRTIpCi0JX0hSQ1dfVEFCTEVfRU5UUlkoQ0ZHX0hSQ1dfU0xBVkUzKQotCV9IUkNXX1RBQkxFX0VOVFJZKENGR19IUkNXX1NMQVZFNCkKLQlfSFJDV19UQUJMRV9FTlRSWShDRkdfSFJDV19TTEFWRTUpCi0JX0hSQ1dfVEFCTEVfRU5UUlkoQ0ZHX0hSQ1dfU0xBVkU2KQotCV9IUkNXX1RBQkxFX0VOVFJZKENGR19IUkNXX1NMQVZFNykKKwlfSFJDV19UQUJMRV9FTlRSWShDT05GSUdfU1lTX0hSQ1dfTUFTVEVSKQorCV9IUkNXX1RBQkxFX0VOVFJZKENPTkZJR19TWVNfSFJDV19TTEFWRTEpCisJX0hSQ1dfVEFCTEVfRU5UUlkoQ09ORklHX1NZU19IUkNXX1NMQVZFMikKKwlfSFJDV19UQUJMRV9FTlRSWShDT05GSUdfU1lTX0hSQ1dfU0xBVkUzKQorCV9IUkNXX1RBQkxFX0VOVFJZKENPTkZJR19TWVNfSFJDV19TTEFWRTQpCisJX0hSQ1dfVEFCTEVfRU5UUlkoQ09ORklHX1NZU19IUkNXX1NMQVZFNSkKKwlfSFJDV19UQUJMRV9FTlRSWShDT05GSUdfU1lTX0hSQ1dfU0xBVkU2KQorCV9IUkNXX1RBQkxFX0VOVFJZKENPTkZJR19TWVNfSFJDV19TTEFWRTcpCiAvKgogICogIEFmdGVyIGNvbmZpZ3VyYXRpb24sIGEgc3lzdGVtIHJlc2V0IGV4Y2VwdGlvbiBpcyBleGVjdXRlZCB1c2luZyB0aGUKICAqICB2ZWN0b3IgYXQgb2Zmc2V0IDB4MTAwIHJlbGF0aXZlIHRvIHRoZSBiYXNlIHNldCBieSBNU1JbSVBdLiBJZiBNU1JbSVBdCkBAIC0xNzIsOCArMTcyLDggQEAKIAliCWJvb3Rfd2FybQogCiBib290X2NvbGQ6Ci0jaWYgZGVmaW5lZChDT05GSUdfTVBDODI2MEFEUykgJiYgZGVmaW5lZChDRkdfREVGQVVMVF9JTU1SKQotCWxpcwlyMywgQ0ZHX0RFRkFVTFRfSU1NUkBoCisjaWYgZGVmaW5lZChDT05GSUdfTVBDODI2MEFEUykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0RFRkFVTFRfSU1NUikKKwlsaXMJcjMsIENPTkZJR19TWVNfREVGQVVMVF9JTU1SQGgKIAlub3AKIAlsd3oJcjQsIDAocjMpCiAJbm9wCkBAIC0xODMsNyArMTgzLDcgQEAKIAlub3AKIAlzdHcJcjQsIDAocjMpCiAJbm9wCi0jZW5kaWYgLyogQ09ORklHX01QQzgyNjBBRFMgJiYgQ0ZHX0RFRkFVTFRfSU1NUiAqLworI2VuZGlmIC8qIENPTkZJR19NUEM4MjYwQURTICYmIENPTkZJR19TWVNfREVGQVVMVF9JTU1SICovCiBib290X3dhcm06CiAJbWZtc3IJcjUJCQkvKiBzYXZlIG1zciBjb250ZW50cwkJKi8KIApAQCAtMTk1LDI0ICsxOTUsMjQgQEAKIAlibAljb2dlbnRfaW5pdF84MjYwCiAjZW5kaWYJLyogQ09ORklHX0NPR0VOVCAqLwogCi0jaWYgZGVmaW5lZChDRkdfREVGQVVMVF9JTU1SKQotCWxpcwlyMywgQ0ZHX0lNTVJAaAotCW9yaQlyMywgcjMsIENGR19JTU1SQGwKLQlsaXMJcjQsIENGR19ERUZBVUxUX0lNTVJAaAorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ERUZBVUxUX0lNTVIpCisJbGlzCXIzLCBDT05GSUdfU1lTX0lNTVJAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSU1NUkBsCisJbGlzCXI0LCBDT05GSUdfU1lTX0RFRkFVTFRfSU1NUkBoCiAJc3R3CXIzLCAweDFBOChyNCkKLSNlbmRpZiAvKiBDRkdfREVGQVVMVF9JTU1SICovCisjZW5kaWYgLyogQ09ORklHX1NZU19ERUZBVUxUX0lNTVIgKi8KIAogCS8qIEluaXRpYWxpc2UgdGhlIE1QQzgyNjAgcHJvY2Vzc29yIGNvcmUJCQkqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiAJYmwJaW5pdF84MjYwX2NvcmUKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkvKiBXaGVuIGJvb3RpbmcgZnJvbSBST00gKEZsYXNoIG9yIEVQUk9NKSwgY2xlYXIgdGhlCQkqLwogCS8qIEFkZHJlc3MgTWFzayBpbiBPUjAgc28gUk9NIGFwcGVhcnMgZXZlcnl3aGVyZQkJKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotCWxpcwlyMywgKENGR19JTU1SK0lNX1JFR0JBU0UpQGgKKwlsaXMJcjMsIChDT05GSUdfU1lTX0lNTVIrSU1fUkVHQkFTRSlAaAogCWx3eglyNCwgSU1fT1IwQGwocjMpCiAJbGkJcjUsIDB4N2ZmZgogCWFuZAlyNCwgcjQsIHI1CkBAIC0yMjEsMjAgKzIyMSwyMCBAQAogCS8qIENhbGN1bGF0ZSBhYnNvbHV0ZSBhZGRyZXNzIGluIEZMQVNIIGFuZCBqdW1wIHRoZXJlCQkqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0JbGlzCXIzLCBDRkdfTU9OSVRPUl9CQVNFQGgKLQlvcmkJcjMsIHIzLCBDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJYWRkaQlyMywgcjMsIGluX2ZsYXNoIC0gX3N0YXJ0ICsgRVhDX09GRl9TWVNfUkVTRVQKIAltdGxyCXIzCiAJYmxyCiAKIGluX2ZsYXNoOgotI2VuZGlmCS8qIENGR19SQU1CT09UICovCisjZW5kaWYJLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiBpbml0aWFsaXplIHNvbWUgdGhpbmdzIHRoYXQgYXJlIGhhcmQgdG8gYWNjZXNzIGZyb20gQwkqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0JbGlzCXIzLCBDRkdfSU1NUkBoCQkvKiBzZXQgdXAgc3RhY2sgaW4gaW50ZXJuYWwgRFBSQU0gKi8KLQlvcmkJcjEsIHIzLCBDRkdfSU5JVF9TUF9PRkZTRVQKKwlsaXMJcjMsIENPTkZJR19TWVNfSU1NUkBoCQkvKiBzZXQgdXAgc3RhY2sgaW4gaW50ZXJuYWwgRFBSQU0gKi8KKwlvcmkJcjEsIHIzLCBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCiAJbGkJcjAsIDAJCQkvKiBNYWtlIHJvb20gZm9yIHN0YWNrIGZyYW1lIGhlYWRlciBhbmQJKi8KIAlzdHd1CXIwLCAtNChyMSkJCS8qIGNsZWFyIGZpbmFsIHN0YWNrIGZyYW1lIHNvIHRoYXQJKi8KIAlzdHd1CXIwLCAtNChyMSkJCS8qIHN0YWNrIGJhY2t0cmFjZXMgdGVybWluYXRlIGNsZWFubHkJKi8KQEAgLTQ1OCwxOCArNDU4LDE4IEBACiAJLyogVGFrZW4gZnJvbSBwYWdlIDE0IG9mIENNQTI4MiBtYW51YWwJCQkJKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotCWxpcwlyNCwgKENGR19JTU1SK0lNX1JFR0JBU0UpQGgKLQlsaXMJcjMsIENGR19JTU1SQGgKKwlsaXMJcjQsIChDT05GSUdfU1lTX0lNTVIrSU1fUkVHQkFTRSlAaAorCWxpcwlyMywgQ09ORklHX1NZU19JTU1SQGgKIAlzdHcJcjMsIElNX0lNTVJAbChyNCkKIAlsd3oJcjMsIElNX0lNTVJAbChyNCkKIAlzdHcJcjMsIDAocjApCi0JbGlzCXIzLCBDRkdfU1lQQ1JAaAotCW9yaQlyMywgcjMsIENGR19TWVBDUkBsCisJbGlzCXIzLCBDT05GSUdfU1lTX1NZUENSQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX1NZUENSQGwKIAlzdHcJcjMsIElNX1NZUENSQGwocjQpCiAJbHd6CXIzLCBJTV9TWVBDUkBsKHI0KQogCXN0dwlyMywgNChyMCkKLQlsaXMJcjMsIENGR19TQ0NSQGgKLQlvcmkJcjMsIHIzLCBDRkdfU0NDUkBsCisJbGlzCXIzLCBDT05GSUdfU1lTX1NDQ1JAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfU0NDUkBsCiAJc3R3CXIzLCBJTV9TQ0NSQGwocjQpCiAJbHd6CXIzLCBJTV9TQ0NSQGwocjQpCiAJc3R3CXIzLCA4KHIwKQpAQCAtNTIxLDEwICs1MjEsMTAgQEAKIAkvKiBJbml0aWFsaXNlIHRoZSBTWVBDUiBlYXJseSwgYW5kIHJlc2V0IHRoZSB3YXRjaGRvZyAoaWYgcmVxKQkqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0JbGlzCXIzLCAoQ0ZHX0lNTVIrSU1fUkVHQkFTRSlAaAorCWxpcwlyMywgKENPTkZJR19TWVNfSU1NUitJTV9SRUdCQVNFKUBoCiAjaWYgIWRlZmluZWQoQ09ORklHX0NPR0VOVCkKLQlsaXMJcjQsIENGR19TWVBDUkBoCi0Jb3JpCXI0LCByNCwgQ0ZHX1NZUENSQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfU1lQQ1JAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfU1lQQ1JAbAogCXN0dwlyNCwgSU1fU1lQQ1JAbChyMykKICNlbmRpZiAvKiAhQ09ORklHX0NPR0VOVCAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQpAQCAtNTM4LDE4ICs1MzgsMTggQEAKIAkvKiBISUQwIGFsc28gY29udGFpbnMgY2FjaGUgY29udHJvbAkJCQkqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0JbGlzCXIzLCBDRkdfSElEMF9JTklUQGgKLQlvcmkJcjMsIHIzLCBDRkdfSElEMF9JTklUQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfSElEMF9JTklUQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0hJRDBfSU5JVEBsCiAJU1lOQwogCW10c3ByCUhJRDAsIHIzCiAKLQlsaXMJcjMsIENGR19ISUQwX0ZJTkFMQGgKLQlvcmkJcjMsIHIzLCBDRkdfSElEMF9GSU5BTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0hJRDBfRklOQUxAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSElEMF9GSU5BTEBsCiAJU1lOQwogCW10c3ByCUhJRDAsIHIzCiAKLQlsaXMJcjMsIENGR19ISUQyQGgKLQlvcmkJcjMsIHIzLCBDRkdfSElEMkBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0hJRDJAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSElEMkBsCiAJbXRzcHIJSElEMiwgcjMKIAogCS8qIGNsZWFyIGFsbCBCQVQncwkJCQkJCSovCkBAIC02MTksMjkgKzYxOSwyOSBAQAogCS5nbG9ibAlpbml0X2RlYnVnCiBpbml0X2RlYnVnOgogCi0JbGlzCXIzLCAoQ0ZHX0lNTVIrSU1fUkVHQkFTRSlAaAorCWxpcwlyMywgKENPTkZJR19TWVNfSU1NUitJTV9SRUdCQVNFKUBoCiAKIAkvKiBRdWljayBhbmQgZGlydHkgaGFjayB0byBlbmFibGUgdGhlIFJBTSBhbmQgY29weSB0aGUJCSovCiAJLyogdmVjdG9ycyBzbyB0aGF0IHdlIGNhbiB0YWtlIGV4Y2VwdGlvbnMuCQkJKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAkvKiB3cml0ZSBNZW1vcnkgUmVmcmVzaCBQcmVzY2FsZXIgKi8KLQlsaQlyNCwgQ0ZHX01QVFBSCisJbGkJcjQsIENPTkZJR19TWVNfTVBUUFIKIAlzdGgJcjQsIElNX01QVFBSQGwocjMpCiAJLyogd3JpdGUgNjB4IFJlZnJlc2ggVGltZXIgKi8KLQlsaQlyNCwgQ0ZHX1BTUlQKKwlsaQlyNCwgQ09ORklHX1NZU19QU1JUCiAJc3RiCXI0LCBJTV9QU1JUQGwocjMpCiAJLyogaW5pdCB0aGUgNjB4IFNEUkFNIE1vZGUgUmVnaXN0ZXIgKi8KLQlsaXMJcjQsIChDRkdfUFNETVJ8UFNETVJfT1BfTk9STSlAaAotCW9yaQlyNCwgcjQsIChDRkdfUFNETVJ8UFNETVJfT1BfTk9STSlAbAorCWxpcwlyNCwgKENPTkZJR19TWVNfUFNETVJ8UFNETVJfT1BfTk9STSlAaAorCW9yaQlyNCwgcjQsIChDT05GSUdfU1lTX1BTRE1SfFBTRE1SX09QX05PUk0pQGwKIAlzdHcJcjQsIElNX1BTRE1SQGwocjMpCiAJLyogd3JpdGUgUHJlY2hhcmdlIEFsbCBCYW5rcyBjb21tYW5kICovCi0JbGlzCXI0LCAoQ0ZHX1BTRE1SfFBTRE1SX09QX1BSRUEpQGgKLQlvcmkJcjQsIHI0LCAoQ0ZHX1BTRE1SfFBTRE1SX09QX1BSRUEpQGwKKwlsaXMJcjQsIChDT05GSUdfU1lTX1BTRE1SfFBTRE1SX09QX1BSRUEpQGgKKwlvcmkJcjQsIHI0LCAoQ09ORklHX1NZU19QU0RNUnxQU0RNUl9PUF9QUkVBKUBsCiAJc3R3CXI0LCBJTV9QU0RNUkBsKHIzKQogCXN0YglyMCwgMCgwKQogCS8qIHdyaXRlIGVpZ2h0IENCUiBSZWZyZXNoIGNvbW1hbmRzICovCi0JbGlzCXI0LCAoQ0ZHX1BTRE1SfFBTRE1SX09QX0NCUlIpQGgKLQlvcmkJcjQsIHI0LCAoQ0ZHX1BTRE1SfFBTRE1SX09QX0NCUlIpQGwKKwlsaXMJcjQsIChDT05GSUdfU1lTX1BTRE1SfFBTRE1SX09QX0NCUlIpQGgKKwlvcmkJcjQsIHI0LCAoQ09ORklHX1NZU19QU0RNUnxQU0RNUl9PUF9DQlJSKUBsCiAJc3R3CXI0LCBJTV9QU0RNUkBsKHIzKQogCXN0YglyMCwgMCgwKQogCXN0YglyMCwgMCgwKQpAQCAtNjUyLDEzICs2NTIsMTMgQEAKIAlzdGIJcjAsIDAoMCkKIAlzdGIJcjAsIDAoMCkKIAkvKiB3cml0ZSBNb2RlIFJlZ2lzdGVyIFdyaXRlIGNvbW1hbmQgKi8KLQlsaXMJcjQsIChDRkdfUFNETVJ8UFNETVJfT1BfTVJXKUBoCi0Jb3JpCXI0LCByNCwgKENGR19QU0RNUnxQU0RNUl9PUF9NUlcpQGwKKwlsaXMJcjQsIChDT05GSUdfU1lTX1BTRE1SfFBTRE1SX09QX01SVylAaAorCW9yaQlyNCwgcjQsIChDT05GSUdfU1lTX1BTRE1SfFBTRE1SX09QX01SVylAbAogCXN0dwlyNCwgSU1fUFNETVJAbChyMykKIAlzdGIJcjAsIDAoMCkKIAkvKiB3cml0ZSBOb3JtYWwgT3BlcmF0aW9uIGNvbW1hbmQgYW5kIGVuYWJsZSBSZWZyZXNoICovCi0JbGlzCXI0LCAoQ0ZHX1BTRE1SfFBTRE1SX09QX05PUk18UFNETVJfUkZFTilAaAotCW9yaQlyNCwgcjQsIChDRkdfUFNETVJ8UFNETVJfT1BfTk9STXxQU0RNUl9SRkVOKUBsCisJbGlzCXI0LCAoQ09ORklHX1NZU19QU0RNUnxQU0RNUl9PUF9OT1JNfFBTRE1SX1JGRU4pQGgKKwlvcmkJcjQsIHI0LCAoQ09ORklHX1NZU19QU0RNUnxQU0RNUl9PUF9OT1JNfFBTRE1SX1JGRU4pQGwKIAlzdHcJcjQsIElNX1BTRE1SQGwocjMpCiAJc3RiCXIwLCAwKDApCiAJLyogUkFNIHNob3VsZCBub3cgYmUgb3BlcmF0aW9uYWwgKi8KQEAgLTY4Nyw3ICs2ODcsNyBAQAogCS8qIGFuIGV4Y2VwdGlvbiBpcyBnZW5lcmF0ZWQgKGJlZm9yZSB0aGUgaW5zdHJ1Y3Rpb24gYXQgdGhhdAkqLwogCS8qIGxvY2F0aW9uIGNvbXBsZXRlcykuIFRoZSB2ZWN0b3IgZm9yIHRoaXMgZXhjZXB0aW9uIGlzIDB4MTMwMCAqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCWxpcwlyMywgQ0ZHX0lNTVJAaAorCWxpcwlyMywgQ09ORklHX1NZU19JTU1SQGgKIAlsd3oJcjMsIDAocjMpCiAJbXRzcHIJSUFCUiwgcjMKIApAQCAtNjk1LDkgKzY5NSw5IEBACiAJLyogcmVzaWRlcykgdG8gYSBrbm93biB2YWx1ZSAtIG1ha2VzIGl0IGVhc2llciB0byBzZWUgd2hlcmUJKi8KIAkvKiB0aGUgc3RhY2sgaGFzIGJlZW4gd3JpdHRlbgkJCQkJKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlsaXMJcjMsIChDRkdfSU1NUiArIENGR19JTklUX1NQX09GRlNFVClAaAotCW9yaQlyMywgcjMsIChDRkdfSU1NUiArIENGR19JTklUX1NQX09GRlNFVClAbAotCWxpCXI0LCAoKENGR19JTklUX1NQX09GRlNFVCAtIDQpIC8gNCkKKwlsaXMJcjMsIChDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUKUBoCisJb3JpCXIzLCByMywgKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQpQGwKKwlsaQlyNCwgKChDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUIC0gNCkgLyA0KQogCW10Y3RyCXI0CiAJbGlzCXI0LCAweGRlYWRiZWFmQGgKIAlvcmkJcjQsIHI0LCAweGRlYWRiZWFmQGwKQEAgLTgwNywxNiArODA3LDE2IEBACiAJbXIJcjEwLCByNQkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MJKi8KIAogCW1yCXIzLCAgcjUJCQkJLyogRGVzdGluYXRpb24gQWRkcmVzcwkqLwotCWxpcwlyNCwgQ0ZHX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCi0Jb3JpCXI0LCByNCwgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWx3eglyNSwgR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LCByNSwgcjQKLQlsaQlyNiwgQ0ZHX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KKwlsaQlyNiwgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJLyogQ2FjaGUgTGluZSBTaXplCSovCiAKIAkvKgogCSAqIEZpeCBHT1QgcG9pbnRlcjoKIAkgKgotCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ0ZHX01PTklUT1JfQkFTRSkgKyBEZXN0aW5hdGlvbiBBZGRyZXNzCisJICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgKyBEZXN0aW5hdGlvbiBBZGRyZXNzCiAJICoKIAkgKiBPZmZzZXQ6CiAJICovCmRpZmYgLS1naXQgYS9jcHUvbXBjODI2MC90cmFwcy5jIGIvY3B1L21wYzgyNjAvdHJhcHMuYwppbmRleCBiNWQ0MTZjLi42NjI0NTQ0IDEwMDY0NAotLS0gYS9jcHUvbXBjODI2MC90cmFwcy5jCisrKyBiL2NwdS9tcGM4MjYwL3RyYXBzLmMKQEAgLTExMSw3ICsxMTEsNyBAQAogdm9pZCBkdW1wX3BjaSAodm9pZCkKIHsKIAotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlwcmludGYgKCJQQ0k6IGVyciBzdGF0dXMgJXggZXJyIG1hc2sgJXggZXJyIGN0cmwgJXhcbiIsCiAJCWxlMzJfdG9fY3B1IChpbW1hcC0+aW1fcGNpLnBjaV9lc3IpLApAQCAtMTM1LDcgKzEzNSw3IEBACiAJICogdGhlIFBDSSBleGNlcHRpb24gaGFuZGxlci4KIAkgKi8KICNpZmRlZiBDT05GSUdfUENJCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICNpZmRlZiBERUJVRwogCWR1bXBfcGNpKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NwdS9tcGM4M3h4L2NwdS5jIGIvY3B1L21wYzgzeHgvY3B1LmMKaW5kZXggOTlhYjIxNi4uMDVjMmYzMyAxMDA2NDQKLS0tIGEvY3B1L21wYzgzeHgvY3B1LmMKKysrIGIvY3B1L21wYzgzeHgvY3B1LmMKQEAgLTY3LDcgKzY3LDcgQEAKIAkJQ1BVX1RZUEVfRU5UUlkoODM3OSksCiAJfTsKIAotCWltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAogCXB1dHMoIkNQVTogICAiKTsKIApAQCAtMTQ4LDcgKzE0OCw3IEBACiB2b2lkIHVwbWNvbmZpZyAodWludCB1cG0sIHVpbnQgKnRhYmxlLCB1aW50IHNpemUpCiB7CiAjaWYgZGVmaW5lZChDT05GSUdfTVBDODM0WCkKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGxidXM4M3h4X3QgKmxidXMgPSAmaW1tYXAtPmxidXM7CiAJdm9sYXRpbGUgdWNoYXIgKmR1bW15ID0gTlVMTDsKIAljb25zdCB1MzIgbXNlbCA9ICh1cG0gKyA0KSA8PCBCUl9NU0VMX1NISUZUOwkvKiBXaGF0IHRoZSBNU0VMIGZpZWxkIGluIEJSbiBzaG91bGQgYmUgKi8KQEAgLTE5Niw3ICsxOTYsNyBAQAogCXVsb25nIGFkZHI7CiAjZW5kaWYKIAotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKICNpZmRlZiBNUEM4M3h4X1JFU0VUCiAJLyogSW50ZXJydXB0cyBhbmQgTU1VIG9mZiAqLwpAQCAtMjM1LDcgKzIzNSw3IEBACiAJICogVHJ5aW5nIHRvIGV4ZWN1dGUgdGhlIG5leHQgaW5zdHJ1Y3Rpb24gYXQgYSBub24tZXhpc3RpbmcgYWRkcmVzcwogCSAqIHNob3VsZCBjYXVzZSBhIG1hY2hpbmUgY2hlY2ssIHJlc3VsdGluZyBpbiByZXNldAogCSAqLwotCWFkZHIgPSBDRkdfUkVTRVRfQUREUkVTUzsKKwlhZGRyID0gQ09ORklHX1NZU19SRVNFVF9BRERSRVNTOwogCiAJcHJpbnRmKCJyZXNldHRpbmcgdGhlIGJvYXJkLiIpOwogCXByaW50ZigiXG4iKTsKQEAgLTI2Niw3ICsyNjYsNyBAQAogCWludCByZV9lbmFibGUgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKIAogCS8qIFJlc2V0IHRoZSA4M3h4IHdhdGNoZG9nICovCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJaW1tci0+d2R0LnN3c3JyID0gMHg1NTZjOwogCWltbXItPndkdC5zd3NyciA9IDB4YWEzOTsKIApAQCAtMjc4LDcgKzI3OCw3IEBACiAjaWYgZGVmaW5lZChDT05GSUdfRERSX0VDQykKIHZvaWQgZG1hX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBkbWE4M3h4X3QgKmRtYSA9ICZpbW1hcC0+ZG1hOwogCXZvbGF0aWxlIHUzMiBzdGF0dXMgPSBzd2FiMzIoZG1hLT5kbWFzcjApOwogCXZvbGF0aWxlIHUzMiBkbWFtcjAgPSBzd2FiMzIoZG1hLT5kbWFtcjApOwpAQCAtMzA5LDcgKzMwOSw3IEBACiAKIHVpbnQgZG1hX2NoZWNrKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgZG1hODN4eF90ICpkbWEgPSAmaW1tYXAtPmRtYTsKIAl2b2xhdGlsZSB1MzIgc3RhdHVzID0gc3dhYjMyKGRtYS0+ZG1hc3IwKTsKIAl2b2xhdGlsZSB1MzIgYnl0ZV9jb3VudCA9IHN3YWIzMihkbWEtPmRtYWJjcjApOwpAQCAtMzI4LDcgKzMyOCw3IEBACiAKIGludCBkbWFfeGZlcih2b2lkICpkZXN0LCB1MzIgY291bnQsIHZvaWQgKnNyYykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBkbWE4M3h4X3QgKmRtYSA9ICZpbW1hcC0+ZG1hOwogCXZvbGF0aWxlIHUzMiBkbWFtcjA7CiAKZGlmZiAtLWdpdCBhL2NwdS9tcGM4M3h4L2NwdV9pbml0LmMgYi9jcHUvbXBjODN4eC9jcHVfaW5pdC5jCmluZGV4IGZmMDFjZjEuLjQ5MWMyZTUgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4M3h4L2NwdV9pbml0LmMKKysrIGIvY3B1L21wYzgzeHgvY3B1X2luaXQuYwpAQCAtNjAsMTA3ICs2MCwxMDcgQEAKIHZvaWQgY3B1X2luaXRfZiAodm9sYXRpbGUgaW1tYXBfdCAqIGltKQogewogCS8qIFBvaW50ZXIgaXMgd3JpdGFibGUgc2luY2Ugd2UgYWxsb2NhdGVkIGEgcmVnaXN0ZXIgZm9yIGl0ICovCi0JZ2QgPSAoZ2RfdCAqKSAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKKwlnZCA9IChnZF90ICopIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCk7CiAKIAkvKiBDbGVhciBpbml0aWFsIGdsb2JhbCBkYXRhICovCiAJbWVtc2V0ICgodm9pZCAqKSBnZCwgMCwgc2l6ZW9mIChnZF90KSk7CiAKIAkvKiBzeXN0ZW0gcGVyZm9ybWFuY2UgdHdlYWtpbmcgKi8KIAotI2lmZGVmIENGR19BQ1JfUElQRV9ERVAKKyNpZmRlZiBDT05GSUdfU1lTX0FDUl9QSVBFX0RFUAogCS8qIEFyYml0ZXIgcGlwZWxpbmUgZGVwdGggKi8KIAlpbS0+YXJiaXRlci5hY3IgPSAoaW0tPmFyYml0ZXIuYWNyICYgfkFDUl9QSVBFX0RFUCkgfAotCQkJICAoQ0ZHX0FDUl9QSVBFX0RFUCA8PCBBQ1JfUElQRV9ERVBfU0hJRlQpOworCQkJICAoQ09ORklHX1NZU19BQ1JfUElQRV9ERVAgPDwgQUNSX1BJUEVfREVQX1NISUZUKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0FDUl9SUFRDTlQKKyNpZmRlZiBDT05GSUdfU1lTX0FDUl9SUFRDTlQKIAkvKiBBcmJpdGVyIHJlcGVhdCBjb3VudCAqLwogCWltLT5hcmJpdGVyLmFjciA9IChpbS0+YXJiaXRlci5hY3IgJiB+KEFDUl9SUFRDTlQpKSB8Ci0JCQkgIChDRkdfQUNSX1JQVENOVCA8PCBBQ1JfUlBUQ05UX1NISUZUKTsKKwkJCSAgKENPTkZJR19TWVNfQUNSX1JQVENOVCA8PCBBQ1JfUlBUQ05UX1NISUZUKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1NQQ1JfT1BUCisjaWZkZWYgQ09ORklHX1NZU19TUENSX09QVAogCS8qIE9wdGltaXplIHRyYW5zYWN0aW9ucyBiZXR3ZWVuIENTQiBhbmQgb3RoZXIgZGV2aWNlcyAqLwogCWltLT5zeXNjb25mLnNwY3IgPSAoaW0tPnN5c2NvbmYuc3BjciAmIH5TUENSX09QVCkgfAotCQkJICAgKENGR19TUENSX09QVCA8PCBTUENSX09QVF9TSElGVCk7CisJCQkgICAoQ09ORklHX1NZU19TUENSX09QVCA8PCBTUENSX09QVF9TSElGVCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19TUENSX1RTRUNFUAorI2lmZGVmIENPTkZJR19TWVNfU1BDUl9UU0VDRVAKIAkvKiBhbGwgZVRTRUMncyBFbWVyZ2VuY3kgcHJpb3JpdHkgKi8KIAlpbS0+c3lzY29uZi5zcGNyID0gKGltLT5zeXNjb25mLnNwY3IgJiB+U1BDUl9UU0VDRVApIHwKLQkJCSAgIChDRkdfU1BDUl9UU0VDRVAgPDwgU1BDUl9UU0VDRVBfU0hJRlQpOworCQkJICAgKENPTkZJR19TWVNfU1BDUl9UU0VDRVAgPDwgU1BDUl9UU0VDRVBfU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfU1BDUl9UU0VDMUVQCisjaWZkZWYgQ09ORklHX1NZU19TUENSX1RTRUMxRVAKIAkvKiBUU0VDMSBFbWVyZ2VuY3kgcHJpb3JpdHkgKi8KIAlpbS0+c3lzY29uZi5zcGNyID0gKGltLT5zeXNjb25mLnNwY3IgJiB+U1BDUl9UU0VDMUVQKSB8Ci0JCQkgICAoQ0ZHX1NQQ1JfVFNFQzFFUCA8PCBTUENSX1RTRUMxRVBfU0hJRlQpOworCQkJICAgKENPTkZJR19TWVNfU1BDUl9UU0VDMUVQIDw8IFNQQ1JfVFNFQzFFUF9TSElGVCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19TUENSX1RTRUMyRVAKKyNpZmRlZiBDT05GSUdfU1lTX1NQQ1JfVFNFQzJFUAogCS8qIFRTRUMyIEVtZXJnZW5jeSBwcmlvcml0eSAqLwogCWltLT5zeXNjb25mLnNwY3IgPSAoaW0tPnN5c2NvbmYuc3BjciAmIH5TUENSX1RTRUMyRVApIHwKLQkJCSAgIChDRkdfU1BDUl9UU0VDMkVQIDw8IFNQQ1JfVFNFQzJFUF9TSElGVCk7CisJCQkgICAoQ09ORklHX1NZU19TUENSX1RTRUMyRVAgPDwgU1BDUl9UU0VDMkVQX1NISUZUKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1NDQ1JfRU5DQ00KKyNpZmRlZiBDT05GSUdfU1lTX1NDQ1JfRU5DQ00KIAkvKiBFbmNyeXB0aW9uIGNsb2NrIG1vZGUgKi8KIAlpbS0+Y2xrLnNjY3IgPSAoaW0tPmNsay5zY2NyICYgflNDQ1JfRU5DQ00pIHwKLQkJICAgICAgIChDRkdfU0NDUl9FTkNDTSA8PCBTQ0NSX1BDSUNNX1NISUZUKTsKKwkJICAgICAgIChDT05GSUdfU1lTX1NDQ1JfRU5DQ00gPDwgU0NDUl9QQ0lDTV9TSElGVCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19TQ0NSX1BDSUNNCisjaWZkZWYgQ09ORklHX1NZU19TQ0NSX1BDSUNNCiAJLyogUENJICYgRE1BIGNsb2NrIG1vZGUgKi8KIAlpbS0+Y2xrLnNjY3IgPSAoaW0tPmNsay5zY2NyICYgflNDQ1JfUENJQ00pIHwKLQkJICAgICAgIChDRkdfU0NDUl9QQ0lDTSA8PCBTQ0NSX1BDSUNNX1NISUZUKTsKKwkJICAgICAgIChDT05GSUdfU1lTX1NDQ1JfUENJQ00gPDwgU0NDUl9QQ0lDTV9TSElGVCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19TQ0NSX1RTRUNDTQorI2lmZGVmIENPTkZJR19TWVNfU0NDUl9UU0VDQ00KIAkvKiBhbGwgVFNFQydzIGNsb2NrIG1vZGUgKi8KIAlpbS0+Y2xrLnNjY3IgPSAoaW0tPmNsay5zY2NyICYgflNDQ1JfVFNFQ0NNKSB8Ci0JCSAgICAgICAoQ0ZHX1NDQ1JfVFNFQ0NNIDw8IFNDQ1JfVFNFQ0NNX1NISUZUKTsKKwkJICAgICAgIChDT05GSUdfU1lTX1NDQ1JfVFNFQ0NNIDw8IFNDQ1JfVFNFQ0NNX1NISUZUKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1NDQ1JfVFNFQzFDTQorI2lmZGVmIENPTkZJR19TWVNfU0NDUl9UU0VDMUNNCiAJLyogVFNFQzEgY2xvY2sgbW9kZSAqLwogCWltLT5jbGsuc2NjciA9IChpbS0+Y2xrLnNjY3IgJiB+U0NDUl9UU0VDMUNNKSB8Ci0JCSAgICAgICAoQ0ZHX1NDQ1JfVFNFQzFDTSA8PCBTQ0NSX1RTRUMxQ01fU0hJRlQpOworCQkgICAgICAgKENPTkZJR19TWVNfU0NDUl9UU0VDMUNNIDw8IFNDQ1JfVFNFQzFDTV9TSElGVCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19TQ0NSX1RTRUMyQ00KKyNpZmRlZiBDT05GSUdfU1lTX1NDQ1JfVFNFQzJDTQogCS8qIFRTRUMyIGNsb2NrIG1vZGUgKi8KIAlpbS0+Y2xrLnNjY3IgPSAoaW0tPmNsay5zY2NyICYgflNDQ1JfVFNFQzJDTSkgfAotCQkgICAgICAgKENGR19TQ0NSX1RTRUMyQ00gPDwgU0NDUl9UU0VDMkNNX1NISUZUKTsKKwkJICAgICAgIChDT05GSUdfU1lTX1NDQ1JfVFNFQzJDTSA8PCBTQ0NSX1RTRUMyQ01fU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfU0NDUl9UU0VDMU9OCisjaWZkZWYgQ09ORklHX1NZU19TQ0NSX1RTRUMxT04KIAkvKiBUU0VDMSBjbG9jayBzd2l0Y2ggKi8KIAlpbS0+Y2xrLnNjY3IgPSAoaW0tPmNsay5zY2NyICYgflNDQ1JfVFNFQzFPTikgfAotCQkgICAgICAgKENGR19TQ0NSX1RTRUMxT04gPDwgU0NDUl9UU0VDMU9OX1NISUZUKTsKKwkJICAgICAgIChDT05GSUdfU1lTX1NDQ1JfVFNFQzFPTiA8PCBTQ0NSX1RTRUMxT05fU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfU0NDUl9UU0VDMk9OCisjaWZkZWYgQ09ORklHX1NZU19TQ0NSX1RTRUMyT04KIAkvKiBUU0VDMiBjbG9jayBzd2l0Y2ggKi8KIAlpbS0+Y2xrLnNjY3IgPSAoaW0tPmNsay5zY2NyICYgflNDQ1JfVFNFQzJPTikgfAotCQkgICAgICAgKENGR19TQ0NSX1RTRUMyT04gPDwgU0NDUl9UU0VDMk9OX1NISUZUKTsKKwkJICAgICAgIChDT05GSUdfU1lTX1NDQ1JfVFNFQzJPTiA8PCBTQ0NSX1RTRUMyT05fU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfU0NDUl9VU0JNUEhDTQorI2lmZGVmIENPTkZJR19TWVNfU0NDUl9VU0JNUEhDTQogCS8qIFVTQiBNUEggY2xvY2sgbW9kZSAqLwogCWltLT5jbGsuc2NjciA9IChpbS0+Y2xrLnNjY3IgJiB+U0NDUl9VU0JNUEhDTSkgfAotCQkgICAgICAgKENGR19TQ0NSX1VTQk1QSENNIDw8IFNDQ1JfVVNCTVBIQ01fU0hJRlQpOworCQkgICAgICAgKENPTkZJR19TWVNfU0NDUl9VU0JNUEhDTSA8PCBTQ0NSX1VTQk1QSENNX1NISUZUKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1NDQ1JfVVNCRFJDTQorI2lmZGVmIENPTkZJR19TWVNfU0NDUl9VU0JEUkNNCiAJLyogVVNCIERSIGNsb2NrIG1vZGUgKi8KIAlpbS0+Y2xrLnNjY3IgPSAoaW0tPmNsay5zY2NyICYgflNDQ1JfVVNCRFJDTSkgfAotCQkgICAgICAgKENGR19TQ0NSX1VTQkRSQ00gPDwgU0NDUl9VU0JEUkNNX1NISUZUKTsKKwkJICAgICAgIChDT05GSUdfU1lTX1NDQ1JfVVNCRFJDTSA8PCBTQ0NSX1VTQkRSQ01fU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfU0NDUl9TQVRBQ00KKyNpZmRlZiBDT05GSUdfU1lTX1NDQ1JfU0FUQUNNCiAJLyogU0FUQSBjb250cm9sbGVyIGNsb2NrIG1vZGUgKi8KIAlpbS0+Y2xrLnNjY3IgPSAoaW0tPmNsay5zY2NyICYgflNDQ1JfU0FUQUNNKSB8Ci0JCSAgICAgICAoQ0ZHX1NDQ1JfU0FUQUNNIDw8IFNDQ1JfU0FUQUNNX1NISUZUKTsKKwkJICAgICAgIChDT05GSUdfU1lTX1NDQ1JfU0FUQUNNIDw8IFNDQ1JfU0FUQUNNX1NISUZUKTsKICNlbmRpZgogCiAJLyogUlNSIC0gUmVzZXQgU3RhdHVzIFJlZ2lzdGVyIC0gY2xlYXIgYWxsIHN0YXR1cyAoNC42LjEuMykgKi8KQEAgLTE3OCwzMCArMTc4LDMwIEBACiAJaW0tPnJlc2V0LnJtciA9IChSTVJfQ1NSRSAmICgxPDxSTVJfQ1NSRV9TSElGVCkpOwogCiAJLyogTENSUiAtIENsb2NrIFJhdGlvIFJlZ2lzdGVyICgxMC4zLjEuMTYpICovCi0JaW0tPmxidXMubGNyciA9IENGR19MQ1JSOworCWltLT5sYnVzLmxjcnIgPSBDT05GSUdfU1lTX0xDUlI7CiAKIAkvKiBFbmFibGUgVGltZSBCYXNlICYgRGVjcmltZW50ZXIgKCBzbyB3ZSB3aWxsIGhhdmUgdWRlbGF5KCkgKSovCiAJaW0tPnN5c2NvbmYuc3BjciB8PSBTUENSX1RCRU47CiAKIAkvKiBTeXN0ZW0gR2VuZXJhbCBQdXJwb3NlIFJlZ2lzdGVyICovCi0jaWZkZWYgQ0ZHX1NJQ1JICisjaWZkZWYgQ09ORklHX1NZU19TSUNSSAogI2lmIGRlZmluZWQoQ09ORklHX01QQzgzNFgpIHx8IGRlZmluZWQoQ09ORklHX01QQzgzMTMpCiAJLyogcmVnYXJkaW5nIHRvIE1QQzM0eCBtYW51YWwgcmV2LjEgYml0cyAyOC4uMjkgbXVzdCBiZSBwcmVzZXJ2ZWQgKi8KLQlpbS0+c3lzY29uZi5zaWNyaCA9IChpbS0+c3lzY29uZi5zaWNyaCAmIDB4MDAwMDAwMEMpIHwgQ0ZHX1NJQ1JIOworCWltLT5zeXNjb25mLnNpY3JoID0gKGltLT5zeXNjb25mLnNpY3JoICYgMHgwMDAwMDAwQykgfCBDT05GSUdfU1lTX1NJQ1JIOwogI2Vsc2UKLQlpbS0+c3lzY29uZi5zaWNyaCA9IENGR19TSUNSSDsKKwlpbS0+c3lzY29uZi5zaWNyaCA9IENPTkZJR19TWVNfU0lDUkg7CiAjZW5kaWYKICNlbmRpZgotI2lmZGVmIENGR19TSUNSTAotCWltLT5zeXNjb25mLnNpY3JsID0gQ0ZHX1NJQ1JMOworI2lmZGVmIENPTkZJR19TWVNfU0lDUkwKKwlpbS0+c3lzY29uZi5zaWNybCA9IENPTkZJR19TWVNfU0lDUkw7CiAjZW5kaWYKIAkvKiBERFIgY29udHJvbCBkcml2ZXIgcmVnaXN0ZXIgKi8KLSNpZmRlZiBDRkdfRERSQ0RSCi0JaW0tPnN5c2NvbmYuZGRyY2RyID0gQ0ZHX0REUkNEUjsKKyNpZmRlZiBDT05GSUdfU1lTX0REUkNEUgorCWltLT5zeXNjb25mLmRkcmNkciA9IENPTkZJR19TWVNfRERSQ0RSOwogI2VuZGlmCiAJLyogT3V0cHV0IGJ1ZmZlciBpbXBlZGFuY2UgcmVnaXN0ZXIgKi8KLSNpZmRlZiBDRkdfT0JJUgotCWltLT5zeXNjb25mLm9iaXIgPSBDRkdfT0JJUjsKKyNpZmRlZiBDT05GSUdfU1lTX09CSVIKKwlpbS0+c3lzY29uZi5vYmlyID0gQ09ORklHX1NZU19PQklSOwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfUUUKQEAgLTIxOCw4OCArMjE4LDg4IEBACiAJICogaGFzIGJlZW4gZGV0ZXJtaW5lZAogCSAqLwogCi0jaWYgZGVmaW5lZChDRkdfQlIwX1BSRUxJTSkgIFwKLQkmJiBkZWZpbmVkKENGR19PUjBfUFJFTElNKSBcCi0JJiYgZGVmaW5lZChDRkdfTEJMQVdCQVIwX1BSRUxJTSkgXAotCSYmIGRlZmluZWQoQ0ZHX0xCTEFXQVIwX1BSRUxJTSkKLQlpbS0+bGJ1cy5iYW5rWzBdLmJyID0gQ0ZHX0JSMF9QUkVMSU07Ci0JaW0tPmxidXMuYmFua1swXS5vciA9IENGR19PUjBfUFJFTElNOwotCWltLT5zeXNjb25mLmxibGF3WzBdLmJhciA9IENGR19MQkxBV0JBUjBfUFJFTElNOwotCWltLT5zeXNjb25mLmxibGF3WzBdLmFyID0gQ0ZHX0xCTEFXQVIwX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlIwX1BSRUxJTSkgIFwKKwkmJiBkZWZpbmVkKENPTkZJR19TWVNfT1IwX1BSRUxJTSkgXAorCSYmIGRlZmluZWQoQ09ORklHX1NZU19MQkxBV0JBUjBfUFJFTElNKSBcCisJJiYgZGVmaW5lZChDT05GSUdfU1lTX0xCTEFXQVIwX1BSRUxJTSkKKwlpbS0+bGJ1cy5iYW5rWzBdLmJyID0gQ09ORklHX1NZU19CUjBfUFJFTElNOworCWltLT5sYnVzLmJhbmtbMF0ub3IgPSBDT05GSUdfU1lTX09SMF9QUkVMSU07CisJaW0tPnN5c2NvbmYubGJsYXdbMF0uYmFyID0gQ09ORklHX1NZU19MQkxBV0JBUjBfUFJFTElNOworCWltLT5zeXNjb25mLmxibGF3WzBdLmFyID0gQ09ORklHX1NZU19MQkxBV0FSMF9QUkVMSU07CiAjZWxzZQotI2Vycm9yCUNGR19CUjBfUFJFTElNLCBDRkdfT1IwX1BSRUxJTSwgQ0ZHX0xCTEFXQkFSMF9QUkVMSU0gJiBDRkdfTEJMQVdBUjBfUFJFTElNIG11c3QgYmUgZGVmaW5lZAorI2Vycm9yCUNPTkZJR19TWVNfQlIwX1BSRUxJTSwgQ09ORklHX1NZU19PUjBfUFJFTElNLCBDT05GSUdfU1lTX0xCTEFXQkFSMF9QUkVMSU0gJiBDT05GSUdfU1lTX0xCTEFXQVIwX1BSRUxJTSBtdXN0IGJlIGRlZmluZWQKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlIxX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1IxX1BSRUxJTSkKLQlpbS0+bGJ1cy5iYW5rWzFdLmJyID0gQ0ZHX0JSMV9QUkVMSU07Ci0JaW0tPmxidXMuYmFua1sxXS5vciA9IENGR19PUjFfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjFfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1IxX1BSRUxJTSkKKwlpbS0+bGJ1cy5iYW5rWzFdLmJyID0gQ09ORklHX1NZU19CUjFfUFJFTElNOworCWltLT5sYnVzLmJhbmtbMV0ub3IgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19MQkxBV0JBUjFfUFJFTElNKSAmJiBkZWZpbmVkKENGR19MQkxBV0FSMV9QUkVMSU0pCi0JaW0tPnN5c2NvbmYubGJsYXdbMV0uYmFyID0gQ0ZHX0xCTEFXQkFSMV9QUkVMSU07Ci0JaW0tPnN5c2NvbmYubGJsYXdbMV0uYXIgPSBDRkdfTEJMQVdBUjFfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19MQkxBV0JBUjFfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdBUjFfUFJFTElNKQorCWltLT5zeXNjb25mLmxibGF3WzFdLmJhciA9IENPTkZJR19TWVNfTEJMQVdCQVIxX1BSRUxJTTsKKwlpbS0+c3lzY29uZi5sYmxhd1sxXS5hciA9IENPTkZJR19TWVNfTEJMQVdBUjFfUFJFTElNOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfQlIyX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1IyX1BSRUxJTSkKLQlpbS0+bGJ1cy5iYW5rWzJdLmJyID0gQ0ZHX0JSMl9QUkVMSU07Ci0JaW0tPmxidXMuYmFua1syXS5vciA9IENGR19PUjJfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjJfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1IyX1BSRUxJTSkKKwlpbS0+bGJ1cy5iYW5rWzJdLmJyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOworCWltLT5sYnVzLmJhbmtbMl0ub3IgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19MQkxBV0JBUjJfUFJFTElNKSAmJiBkZWZpbmVkKENGR19MQkxBV0FSMl9QUkVMSU0pCi0JaW0tPnN5c2NvbmYubGJsYXdbMl0uYmFyID0gQ0ZHX0xCTEFXQkFSMl9QUkVMSU07Ci0JaW0tPnN5c2NvbmYubGJsYXdbMl0uYXIgPSBDRkdfTEJMQVdBUjJfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19MQkxBV0JBUjJfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdBUjJfUFJFTElNKQorCWltLT5zeXNjb25mLmxibGF3WzJdLmJhciA9IENPTkZJR19TWVNfTEJMQVdCQVIyX1BSRUxJTTsKKwlpbS0+c3lzY29uZi5sYmxhd1syXS5hciA9IENPTkZJR19TWVNfTEJMQVdBUjJfUFJFTElNOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfQlIzX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1IzX1BSRUxJTSkKLQlpbS0+bGJ1cy5iYW5rWzNdLmJyID0gQ0ZHX0JSM19QUkVMSU07Ci0JaW0tPmxidXMuYmFua1szXS5vciA9IENGR19PUjNfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjNfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1IzX1BSRUxJTSkKKwlpbS0+bGJ1cy5iYW5rWzNdLmJyID0gQ09ORklHX1NZU19CUjNfUFJFTElNOworCWltLT5sYnVzLmJhbmtbM10ub3IgPSBDT05GSUdfU1lTX09SM19QUkVMSU07CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19MQkxBV0JBUjNfUFJFTElNKSAmJiBkZWZpbmVkKENGR19MQkxBV0FSM19QUkVMSU0pCi0JaW0tPnN5c2NvbmYubGJsYXdbM10uYmFyID0gQ0ZHX0xCTEFXQkFSM19QUkVMSU07Ci0JaW0tPnN5c2NvbmYubGJsYXdbM10uYXIgPSBDRkdfTEJMQVdBUjNfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19MQkxBV0JBUjNfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdBUjNfUFJFTElNKQorCWltLT5zeXNjb25mLmxibGF3WzNdLmJhciA9IENPTkZJR19TWVNfTEJMQVdCQVIzX1BSRUxJTTsKKwlpbS0+c3lzY29uZi5sYmxhd1szXS5hciA9IENPTkZJR19TWVNfTEJMQVdBUjNfUFJFTElNOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfQlI0X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1I0X1BSRUxJTSkKLQlpbS0+bGJ1cy5iYW5rWzRdLmJyID0gQ0ZHX0JSNF9QUkVMSU07Ci0JaW0tPmxidXMuYmFua1s0XS5vciA9IENGR19PUjRfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjRfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1I0X1BSRUxJTSkKKwlpbS0+bGJ1cy5iYW5rWzRdLmJyID0gQ09ORklHX1NZU19CUjRfUFJFTElNOworCWltLT5sYnVzLmJhbmtbNF0ub3IgPSBDT05GSUdfU1lTX09SNF9QUkVMSU07CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19MQkxBV0JBUjRfUFJFTElNKSAmJiBkZWZpbmVkKENGR19MQkxBV0FSNF9QUkVMSU0pCi0JaW0tPnN5c2NvbmYubGJsYXdbNF0uYmFyID0gQ0ZHX0xCTEFXQkFSNF9QUkVMSU07Ci0JaW0tPnN5c2NvbmYubGJsYXdbNF0uYXIgPSBDRkdfTEJMQVdBUjRfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19MQkxBV0JBUjRfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdBUjRfUFJFTElNKQorCWltLT5zeXNjb25mLmxibGF3WzRdLmJhciA9IENPTkZJR19TWVNfTEJMQVdCQVI0X1BSRUxJTTsKKwlpbS0+c3lzY29uZi5sYmxhd1s0XS5hciA9IENPTkZJR19TWVNfTEJMQVdBUjRfUFJFTElNOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfQlI1X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1I1X1BSRUxJTSkKLQlpbS0+bGJ1cy5iYW5rWzVdLmJyID0gQ0ZHX0JSNV9QUkVMSU07Ci0JaW0tPmxidXMuYmFua1s1XS5vciA9IENGR19PUjVfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjVfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1I1X1BSRUxJTSkKKwlpbS0+bGJ1cy5iYW5rWzVdLmJyID0gQ09ORklHX1NZU19CUjVfUFJFTElNOworCWltLT5sYnVzLmJhbmtbNV0ub3IgPSBDT05GSUdfU1lTX09SNV9QUkVMSU07CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19MQkxBV0JBUjVfUFJFTElNKSAmJiBkZWZpbmVkKENGR19MQkxBV0FSNV9QUkVMSU0pCi0JaW0tPnN5c2NvbmYubGJsYXdbNV0uYmFyID0gQ0ZHX0xCTEFXQkFSNV9QUkVMSU07Ci0JaW0tPnN5c2NvbmYubGJsYXdbNV0uYXIgPSBDRkdfTEJMQVdBUjVfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19MQkxBV0JBUjVfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdBUjVfUFJFTElNKQorCWltLT5zeXNjb25mLmxibGF3WzVdLmJhciA9IENPTkZJR19TWVNfTEJMQVdCQVI1X1BSRUxJTTsKKwlpbS0+c3lzY29uZi5sYmxhd1s1XS5hciA9IENPTkZJR19TWVNfTEJMQVdBUjVfUFJFTElNOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfQlI2X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1I2X1BSRUxJTSkKLQlpbS0+bGJ1cy5iYW5rWzZdLmJyID0gQ0ZHX0JSNl9QUkVMSU07Ci0JaW0tPmxidXMuYmFua1s2XS5vciA9IENGR19PUjZfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjZfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1I2X1BSRUxJTSkKKwlpbS0+bGJ1cy5iYW5rWzZdLmJyID0gQ09ORklHX1NZU19CUjZfUFJFTElNOworCWltLT5sYnVzLmJhbmtbNl0ub3IgPSBDT05GSUdfU1lTX09SNl9QUkVMSU07CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19MQkxBV0JBUjZfUFJFTElNKSAmJiBkZWZpbmVkKENGR19MQkxBV0FSNl9QUkVMSU0pCi0JaW0tPnN5c2NvbmYubGJsYXdbNl0uYmFyID0gQ0ZHX0xCTEFXQkFSNl9QUkVMSU07Ci0JaW0tPnN5c2NvbmYubGJsYXdbNl0uYXIgPSBDRkdfTEJMQVdBUjZfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19MQkxBV0JBUjZfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdBUjZfUFJFTElNKQorCWltLT5zeXNjb25mLmxibGF3WzZdLmJhciA9IENPTkZJR19TWVNfTEJMQVdCQVI2X1BSRUxJTTsKKwlpbS0+c3lzY29uZi5sYmxhd1s2XS5hciA9IENPTkZJR19TWVNfTEJMQVdBUjZfUFJFTElNOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfQlI3X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1I3X1BSRUxJTSkKLQlpbS0+bGJ1cy5iYW5rWzddLmJyID0gQ0ZHX0JSN19QUkVMSU07Ci0JaW0tPmxidXMuYmFua1s3XS5vciA9IENGR19PUjdfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjdfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1I3X1BSRUxJTSkKKwlpbS0+bGJ1cy5iYW5rWzddLmJyID0gQ09ORklHX1NZU19CUjdfUFJFTElNOworCWltLT5sYnVzLmJhbmtbN10ub3IgPSBDT05GSUdfU1lTX09SN19QUkVMSU07CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19MQkxBV0JBUjdfUFJFTElNKSAmJiBkZWZpbmVkKENGR19MQkxBV0FSN19QUkVMSU0pCi0JaW0tPnN5c2NvbmYubGJsYXdbN10uYmFyID0gQ0ZHX0xCTEFXQkFSN19QUkVMSU07Ci0JaW0tPnN5c2NvbmYubGJsYXdbN10uYXIgPSBDRkdfTEJMQVdBUjdfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19MQkxBV0JBUjdfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdBUjdfUFJFTElNKQorCWltLT5zeXNjb25mLmxibGF3WzddLmJhciA9IENPTkZJR19TWVNfTEJMQVdCQVI3X1BSRUxJTTsKKwlpbS0+c3lzY29uZi5sYmxhd1s3XS5hciA9IENPTkZJR19TWVNfTEJMQVdBUjdfUFJFTElNOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0dQSU8xX1BSRUxJTQotCWltLT5ncGlvWzBdLmRhdCA9IENGR19HUElPMV9EQVQ7Ci0JaW0tPmdwaW9bMF0uZGlyID0gQ0ZHX0dQSU8xX0RJUjsKKyNpZmRlZiBDT05GSUdfU1lTX0dQSU8xX1BSRUxJTQorCWltLT5ncGlvWzBdLmRhdCA9IENPTkZJR19TWVNfR1BJTzFfREFUOworCWltLT5ncGlvWzBdLmRpciA9IENPTkZJR19TWVNfR1BJTzFfRElSOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0dQSU8yX1BSRUxJTQotCWltLT5ncGlvWzFdLmRhdCA9IENGR19HUElPMl9EQVQ7Ci0JaW0tPmdwaW9bMV0uZGlyID0gQ0ZHX0dQSU8yX0RJUjsKKyNpZmRlZiBDT05GSUdfU1lTX0dQSU8yX1BSRUxJTQorCWltLT5ncGlvWzFdLmRhdCA9IENPTkZJR19TWVNfR1BJTzJfREFUOworCWltLT5ncGlvWzFdLmRpciA9IENPTkZJR19TWVNfR1BJTzJfRElSOwogI2VuZGlmCiB9CiAKIGludCBjcHVfaW5pdF9yICh2b2lkKQogewogI2lmZGVmIENPTkZJR19RRQotCXVpbnQgcWVfYmFzZSA9IENGR19JTU1SICsgMHgwMDEwMDAwMDsgLyogUUUgaW1tciBiYXNlICovCisJdWludCBxZV9iYXNlID0gQ09ORklHX1NZU19JTU1SICsgMHgwMDEwMDAwMDsgLyogUUUgaW1tciBiYXNlICovCiAJcWVfaW5pdChxZV9iYXNlKTsKIAlxZV9yZXNldCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9jcHUvbXBjODN4eC9lY2MuYyBiL2NwdS9tcGM4M3h4L2VjYy5jCmluZGV4IDUxMzdhYjYuLjVhYjE2OWYgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4M3h4L2VjYy5jCisrKyBiL2NwdS9tcGM4M3h4L2VjYy5jCkBAIC0yMCw3ICsyMCw3IEBACiAjaWYgZGVmaW5lZChDT05GSUdfRERSX0VDQykgJiYgZGVmaW5lZChDT05GSUdfRERSX0VDQ19DTUQpCiB2b2lkIGVjY19wcmludF9zdGF0dXModm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGRkcjgzeHhfdCAqZGRyID0gJmltbWFwLT5kZHI7CiAKIAlwcmludGYoIlxuRUNDIG1vZGU6ICVzXG5cbiIsCkBAIC0xMDAsNyArMTAwLDcgQEAKIAogaW50IGRvX2VjYyhjbWRfdGJsX3QgKiBjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBkZHI4M3h4X3QgKmRkciA9ICZpbW1hcC0+ZGRyOwogCXZvbGF0aWxlIHUzMiB2YWw7CiAJdTY0ICphZGRyOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzgzeHgvZmR0LmMgYi9jcHUvbXBjODN4eC9mZHQuYwppbmRleCAzZTNlMWM4Li5mODkwNzc1IDEwMDY0NAotLS0gYS9jcHUvbXBjODN4eC9mZHQuYworKysgYi9jcHUvbXBjODN4eC9mZHQuYwpAQCAtMzQsNyArMzQsNyBAQAogCiB2b2lkIGZ0X2NwdV9zZXR1cCh2b2lkICpibG9iLCBiZF90ICpiZCkKIHsKLQlpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwlpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJaW50IHNwcmlkciA9IGltbXItPnN5c2NvbmYuc3ByaWRyOwogCiAJLyoKQEAgLTc3LDkgKzc3LDkgQEAKIAlmdF9xZV9zZXR1cChibG9iKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX05TMTY1NTAKKyNpZmRlZiBDT05GSUdfU1lTX05TMTY1NTAKIAlkb19maXh1cF9ieV9jb21wYXRfdTMyKGJsb2IsICJuczE2NTUwIiwKLQkJImNsb2NrLWZyZXF1ZW5jeSIsIENGR19OUzE2NTUwX0NMSywgMSk7CisJCSJjbG9jay1mcmVxdWVuY3kiLCBDT05GSUdfU1lTX05TMTY1NTBfQ0xLLCAxKTsKICNlbmRpZgogCiAJZmR0X2ZpeHVwX21lbW9yeShibG9iLCAodTY0KWJkLT5iaV9tZW1zdGFydCwgKHU2NCliZC0+YmlfbWVtc2l6ZSk7CmRpZmYgLS1naXQgYS9jcHUvbXBjODN4eC9pbnRlcnJ1cHRzLmMgYi9jcHUvbXBjODN4eC9pbnRlcnJ1cHRzLmMKaW5kZXggOThlZDIxYy4uZmFmZmJhZiAxMDA2NDQKLS0tIGEvY3B1L21wYzgzeHgvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9tcGM4M3h4L2ludGVycnVwdHMuYwpAQCAtMzgsOSArMzgsOSBAQAogCiBpbnQgaW50ZXJydXB0X2luaXRfY3B1ICh1bnNpZ25lZCAqZGVjcmVtZW50ZXJfY291bnQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKLQkqZGVjcmVtZW50ZXJfY291bnQgPSAoZ2QtPmJ1c19jbGsgLyA0KSAvIENGR19IWjsKKwkqZGVjcmVtZW50ZXJfY291bnQgPSAoZ2QtPmJ1c19jbGsgLyA0KSAvIENPTkZJR19TWVNfSFo7CiAKIAkvKiBFbmFibGUgZTMwMCB0aW1lIGJhc2UgKi8KIApkaWZmIC0tZ2l0IGEvY3B1L21wYzgzeHgvbmFuZF9pbml0LmMgYi9jcHUvbXBjODN4eC9uYW5kX2luaXQuYwppbmRleCBlOTJmMjMwLi4zOGUxNDFhIDEwMDY0NAotLS0gYS9jcHUvbXBjODN4eC9uYW5kX2luaXQuYworKysgYi9jcHUvbXBjODN4eC9uYW5kX2luaXQuYwpAQCAtMzcsNyArMzcsNyBAQAogCWludCBpOwogCiAJLyogUG9pbnRlciBpcyB3cml0YWJsZSBzaW5jZSB3ZSBhbGxvY2F0ZWQgYSByZWdpc3RlciBmb3IgaXQgKi8KLQlnZCA9IChnZF90ICopIChDRkdfSU5JVF9SQU1fQUREUiArIENGR19HQkxfREFUQV9PRkZTRVQpOworCWdkID0gKGdkX3QgKikgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKTsKIAogCS8qIENsZWFyIGluaXRpYWwgZ2xvYmFsIGRhdGEgKi8KIAlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGdkX3QpOyBpKyspCkBAIC00NSwzNCArNDUsMzQgQEAKIAogCS8qIHN5c3RlbSBwZXJmb3JtYW5jZSB0d2Vha2luZyAqLwogCi0jaWZkZWYgQ0ZHX0FDUl9QSVBFX0RFUAorI2lmZGVmIENPTkZJR19TWVNfQUNSX1BJUEVfREVQCiAJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAqLwogCWltLT5hcmJpdGVyLmFjciA9IChpbS0+YXJiaXRlci5hY3IgJiB+QUNSX1BJUEVfREVQKSB8Ci0JCQkgIChDRkdfQUNSX1BJUEVfREVQIDw8IEFDUl9QSVBFX0RFUF9TSElGVCk7CisJCQkgIChDT05GSUdfU1lTX0FDUl9QSVBFX0RFUCA8PCBBQ1JfUElQRV9ERVBfU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfQUNSX1JQVENOVAorI2lmZGVmIENPTkZJR19TWVNfQUNSX1JQVENOVAogCS8qIEFyYml0ZXIgcmVwZWF0IGNvdW50ICovCiAJaW0tPmFyYml0ZXIuYWNyID0gKGltLT5hcmJpdGVyLmFjciAmIH4oQUNSX1JQVENOVCkpIHwKLQkJCSAgKENGR19BQ1JfUlBUQ05UIDw8IEFDUl9SUFRDTlRfU0hJRlQpOworCQkJICAoQ09ORklHX1NZU19BQ1JfUlBUQ05UIDw8IEFDUl9SUFRDTlRfU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfU1BDUl9PUFQKKyNpZmRlZiBDT05GSUdfU1lTX1NQQ1JfT1BUCiAJLyogT3B0aW1pemUgdHJhbnNhY3Rpb25zIGJldHdlZW4gQ1NCIGFuZCBvdGhlciBkZXZpY2VzICovCiAJaW0tPnN5c2NvbmYuc3BjciA9IChpbS0+c3lzY29uZi5zcGNyICYgflNQQ1JfT1BUKSB8Ci0JCQkgICAoQ0ZHX1NQQ1JfT1BUIDw8IFNQQ1JfT1BUX1NISUZUKTsKKwkJCSAgIChDT05GSUdfU1lTX1NQQ1JfT1BUIDw8IFNQQ1JfT1BUX1NISUZUKTsKICNlbmRpZgogCiAJLyogRW5hYmxlIFRpbWUgQmFzZSAmIERlY3JpbWVudGVyIChzbyB3ZSB3aWxsIGhhdmUgdWRlbGF5KCkpICovCiAJaW0tPnN5c2NvbmYuc3BjciB8PSBTUENSX1RCRU47CiAKIAkvKiBERFIgY29udHJvbCBkcml2ZXIgcmVnaXN0ZXIgKi8KLSNpZmRlZiBDRkdfRERSQ0RSCi0JaW0tPnN5c2NvbmYuZGRyY2RyID0gQ0ZHX0REUkNEUjsKKyNpZmRlZiBDT05GSUdfU1lTX0REUkNEUgorCWltLT5zeXNjb25mLmRkcmNkciA9IENPTkZJR19TWVNfRERSQ0RSOwogI2VuZGlmCiAJLyogT3V0cHV0IGJ1ZmZlciBpbXBlZGFuY2UgcmVnaXN0ZXIgKi8KLSNpZmRlZiBDRkdfT0JJUgotCWltLT5zeXNjb25mLm9iaXIgPSBDRkdfT0JJUjsKKyNpZmRlZiBDT05GSUdfU1lTX09CSVIKKwlpbS0+c3lzY29uZi5vYmlyID0gQ09ORklHX1NZU19PQklSOwogI2VuZGlmCiAKIAkvKgpAQCAtODQsMTYgKzg0LDE2IEBACiAJICogaGFzIGJlZW4gZGV0ZXJtaW5lZAogCSAqLwogCi0jaWYgZGVmaW5lZChDRkdfTkFORF9CUl9QUkVMSU0pICBcCi0JJiYgZGVmaW5lZChDRkdfTkFORF9PUl9QUkVMSU0pIFwKLQkmJiBkZWZpbmVkKENGR19OQU5EX0xCTEFXQkFSX1BSRUxJTSkgXAotCSYmIGRlZmluZWQoQ0ZHX05BTkRfTEJMQVdBUl9QUkVMSU0pCi0JaW0tPmxidXMuYmFua1swXS5iciA9IENGR19OQU5EX0JSX1BSRUxJTTsKLQlpbS0+bGJ1cy5iYW5rWzBdLm9yID0gQ0ZHX05BTkRfT1JfUFJFTElNOwotCWltLT5zeXNjb25mLmxibGF3WzBdLmJhciA9IENGR19OQU5EX0xCTEFXQkFSX1BSRUxJTTsKLQlpbS0+c3lzY29uZi5sYmxhd1swXS5hciA9IENGR19OQU5EX0xCTEFXQVJfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19OQU5EX0JSX1BSRUxJTSkgIFwKKwkmJiBkZWZpbmVkKENPTkZJR19TWVNfTkFORF9PUl9QUkVMSU0pIFwKKwkmJiBkZWZpbmVkKENPTkZJR19TWVNfTkFORF9MQkxBV0JBUl9QUkVMSU0pIFwKKwkmJiBkZWZpbmVkKENPTkZJR19TWVNfTkFORF9MQkxBV0FSX1BSRUxJTSkKKwlpbS0+bGJ1cy5iYW5rWzBdLmJyID0gQ09ORklHX1NZU19OQU5EX0JSX1BSRUxJTTsKKwlpbS0+bGJ1cy5iYW5rWzBdLm9yID0gQ09ORklHX1NZU19OQU5EX09SX1BSRUxJTTsKKwlpbS0+c3lzY29uZi5sYmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX05BTkRfTEJMQVdCQVJfUFJFTElNOworCWltLT5zeXNjb25mLmxibGF3WzBdLmFyID0gQ09ORklHX1NZU19OQU5EX0xCTEFXQVJfUFJFTElNOwogI2Vsc2UKLSNlcnJvciBDRkdfTkFORF9CUl9QUkVMSU0sIENGR19OQU5EX09SX1BSRUxJTSwgQ0ZHX05BTkRfTEJMQVdCQVJfUFJFTElNICYgQ0ZHX05BTkRfTEJMQVdBUl9QUkVMSU0gbXVzdCBiZSBkZWZpbmVkCisjZXJyb3IgQ09ORklHX1NZU19OQU5EX0JSX1BSRUxJTSwgQ09ORklHX1NZU19OQU5EX09SX1BSRUxJTSwgQ09ORklHX1NZU19OQU5EX0xCTEFXQkFSX1BSRUxJTSAmIENPTkZJR19TWVNfTkFORF9MQkxBV0FSX1BSRUxJTSBtdXN0IGJlIGRlZmluZWQKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9jcHUvbXBjODN4eC9wY2kuYyBiL2NwdS9tcGM4M3h4L3BjaS5jCmluZGV4IGMzZWM1ZjguLjViOGVlYjcgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4M3h4L3BjaS5jCisrKyBiL2NwdS9tcGM4M3h4L3BjaS5jCkBAIC00Miw3ICs0Miw3IEBACiAKIHN0YXRpYyB2b2lkIHBjaV9pbml0X2J1cyhpbnQgYnVzLCBzdHJ1Y3QgcGNpX3JlZ2lvbiAqcmVnKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBwb3Q4M3h4X3QgKnBvdCA9IGltbXItPmlvcy5wb3Q7CiAJdm9sYXRpbGUgcGNpY3RybDgzeHhfdCAqcGNpX2N0cmwgPSAmaW1tci0+cGNpX2N0cmxbYnVzXTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpX2hvc2VbYnVzXTsKQEAgLTk0LDggKzk0LDggQEAKIAlob3NlLT5maXJzdF9idXNubyA9IDA7CiAJaG9zZS0+bGFzdF9idXNubyA9IDB4ZmY7CiAKLQlwY2lfc2V0dXBfaW5kaXJlY3QoaG9zZSwgQ0ZHX0lNTVIgKyAweDgzMDAgKyBidXMgKiAweDgwLAotCSAgICAgICAgICAgICAgICAgICAgICAgICBDRkdfSU1NUiArIDB4ODMwNCArIGJ1cyAqIDB4ODApOworCXBjaV9zZXR1cF9pbmRpcmVjdChob3NlLCBDT05GSUdfU1lTX0lNTVIgKyAweDgzMDAgKyBidXMgKiAweDgwLAorCSAgICAgICAgICAgICAgICAgICAgICAgICBDT05GSUdfU1lTX0lNTVIgKyAweDgzMDQgKyBidXMgKiAweDgwKTsKIAogCXBjaV9yZWdpc3Rlcl9ob3NlKGhvc2UpOwogCkBAIC0xMzMsNyArMTMzLDcgQEAKICAqLwogdm9pZCBtcGM4M3h4X3BjaV9pbml0KGludCBudW1fYnVzZXMsIHN0cnVjdCBwY2lfcmVnaW9uICoqcmVnLCBpbnQgd2FybWJvb3QpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCWludCBpOwogCiAJaWYgKG51bV9idXNlcyA+IE1BWF9CVVNFUykgewpkaWZmIC0tZ2l0IGEvY3B1L21wYzgzeHgvcWVfaW8uYyBiL2NwdS9tcGM4M3h4L3FlX2lvLmMKaW5kZXggY2U5MWEwNy4uZGI5NGYwMCAxMDA2NDQKLS0tIGEvY3B1L21wYzgzeHgvcWVfaW8uYworKysgYi9jcHUvbXBjODN4eC9xZV9pby5jCkBAIC0zMyw3ICszMyw3IEBACiAJdTMyCQkJcGluXzJiaXRfYXNzaWduOwogCXUzMgkJCXBpbl8xYml0X21hc2s7CiAJdTMyCQkJdG1wX3ZhbDsKLQl2b2xhdGlsZSBpbW1hcF90CSppbSA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBxZXBpbzgzeHhfdAkqcGFyX2lvID0gKHZvbGF0aWxlIHFlcGlvODN4eF90ICopJmltLT5xZXBpbzsKIAogCS8qIENhY3VsYXRlIHBpbiBsb2NhdGlvbiBhbmQgMmJpdCBtYXNrIGFuZCBkaXIgKi8KZGlmZiAtLWdpdCBhL2NwdS9tcGM4M3h4L3NlcmRlcy5jIGIvY3B1L21wYzgzeHgvc2VyZGVzLmMKaW5kZXggMDIwYzRjOC4uNjMwYjExMSAxMDA2NDQKLS0tIGEvY3B1L21wYzgzeHgvc2VyZGVzLmMKKysrIGIvY3B1L21wYzgzeHgvc2VyZGVzLmMKQEAgLTQ0LDcgKzQ0LDcgQEAKIAogdm9pZCBmc2xfc2V0dXBfc2VyZGVzKHUzMiBvZmZzZXQsIGNoYXIgcHJvdG8sIGNoYXIgcmZja3MsIGNoYXIgdmRkKQogewotCXZvaWQgKnJlZ3MgPSAodm9pZCAqKUNGR19JTU1SICsgb2Zmc2V0OworCXZvaWQgKnJlZ3MgPSAodm9pZCAqKUNPTkZJR19TWVNfSU1NUiArIG9mZnNldDsKIAl1MzIgdG1wOwogCiAJLyogMS4wViBjb3JldmRkICovCmRpZmYgLS1naXQgYS9jcHUvbXBjODN4eC9zcGRfc2RyYW0uYyBiL2NwdS9tcGM4M3h4L3NwZF9zZHJhbS5jCmluZGV4IGY0YTBlOTAuLjM1OWE5MTUgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4M3h4L3NwZF9zZHJhbS5jCisrKyBiL2NwdS9tcGM4M3h4L3NwZF9zZHJhbS5jCkBAIC0zOCw3ICszOCw3IEBACiAKIHZvaWQgYm9hcmRfYWRkX3JhbV9pbmZvKGludCB1c2VfZGVmYXVsdCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGRkcjgzeHhfdCAqZGRyID0gJmltbWFwLT5kZHI7CiAJY2hhciBidWZbMzJdOwogCkBAIC01Nyw5ICs1Nyw5IEBACiAKIAlwcmludGYoIiwgJXMgTUh6KSIsIHN0cm1oeihidWYsIGdkLT5tZW1fY2xrKSk7CiAKLSNpZiBkZWZpbmVkKENGR19MQl9TRFJBTSkgJiYgZGVmaW5lZChDRkdfTEJDX1NEUkFNX1NJWkUpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0xCX1NEUkFNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUpCiAJcHV0cygiXG5TRFJBTTogIik7Ci0JcHJpbnRfc2l6ZSAoQ0ZHX0xCQ19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQsICIgKGxvY2FsIGJ1cykiKTsKKwlwcmludF9zaXplIChDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQsICIgKGxvY2FsIGJ1cykiKTsKICNlbmRpZgogfQogCkBAIC03MSw4ICs3MSw4IEBACiBleHRlcm4gaW50IGRtYV94ZmVyKHZvaWQgKmRlc3QsIHVpbnQgY291bnQsIHZvaWQgKnNyYyk7CiAjZW5kaWYKIAotI2lmbmRlZglDRkdfUkVBRF9TUEQKLSNkZWZpbmUgQ0ZHX1JFQURfU1BECWkyY19yZWFkCisjaWZuZGVmCUNPTkZJR19TWVNfUkVBRF9TUEQKKyNkZWZpbmUgQ09ORklHX1NZU19SRUFEX1NQRAlpMmNfcmVhZAogI2VuZGlmCiAKIC8qCkBAIC0xMjksNyArMTI5LDcgQEAKIAogbG9uZyBpbnQgc3BkX3NkcmFtKCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBkZHI4M3h4X3QgKmRkciA9ICZpbW1hcC0+ZGRyOwogCXZvbGF0aWxlIGxhdzgzeHhfdCAqZWNtID0gJmltbWFwLT5zeXNjb25mLmRkcmxhd1swXTsKIAlzcGRfZWVwcm9tX3Qgc3BkOwpAQCAtMTU4LDcgKzE1OCw3IEBACiAJdW5zaWduZWQgaW50IHB2ciA9IGdldF9wdnIoKTsKIAogCS8qIFJlYWQgU1BEIHBhcmFtZXRlcnMgd2l0aCBJMkMgKi8KLQlDRkdfUkVBRF9TUEQoU1BEX0VFUFJPTV9BRERSRVNTLCAwLCAxLCAodWNoYXIgKikgJiBzcGQsIHNpemVvZiAoc3BkKSk7CisJQ09ORklHX1NZU19SRUFEX1NQRChTUERfRUVQUk9NX0FERFJFU1MsIDAsIDEsICh1Y2hhciAqKSAmIHNwZCwgc2l6ZW9mIChzcGQpKTsKICNpZmRlZiBTUERfREVCVUcKIAlzcGRfZGVidWcoJnNwZCk7CiAjZW5kaWYKQEAgLTE5NCwxMiArMTk0LDEyIEBACiAJCXJldHVybiAwOwogCX0KIAotI2lmZGVmIENGR19ERFJDRFJfVkFMVUUKKyNpZmRlZiBDT05GSUdfU1lTX0REUkNEUl9WQUxVRQogCS8qCiAJICogQWRqdXN0IEREUiBJSSBJTyB2b2x0YWdlIGJpYXNpbmcuICBJdCBqdXN0IG1ha2VzIGl0IHdvcmsuCiAJICovCiAJaWYoc3BkLm1lbV90eXBlID09IFNQRF9NRU1UWVBFX0REUjIpIHsKLQkJaW1tYXAtPnN5c2NvbmYuZGRyY2RyID0gQ0ZHX0REUkNEUl9WQUxVRTsKKwkJaW1tYXAtPnN5c2NvbmYuZGRyY2RyID0gQ09ORklHX1NZU19ERFJDRFJfVkFMVUU7CiAJfQogCXVkZWxheSg1MDAwMCk7CiAjZW5kaWYKQEAgLTIxNCw3ICsyMTQsNyBAQAogCX0KIAogCS8qIFNldHVwIEREUiBjaGlwIHNlbGVjdCByZWdpc3RlciAqLwotI2lmZGVmIENGR184M1hYX0REUl9VU0VTX0NTMAorI2lmZGVmIENPTkZJR19TWVNfODNYWF9ERFJfVVNFU19DUzAKIAlkZHItPmNzYm5kc1swXS5jc2JuZHMgPSAoYmFua3NpemUoc3BkLnJvd19kZW5zKSA+PiAyNCkgLSAxOwogCWRkci0+Y3NfY29uZmlnWzBdID0gKCAxIDw8IDMxCiAJCQkgICAgfCAob2R0X3JkX2NmZyA8PCAyMCkKQEAgLTI3NCw3ICsyNzQsNyBAQAogCS8qCiAJICogU2V0IHVwIExBV0JBUiBmb3IgYWxsIG9mIEREUi4KIAkgKi8KLQllY20tPmJhciA9IENGR19ERFJfU0RSQU1fQkFTRSAmIDB4ZmZmZmYwMDA7CisJZWNtLT5iYXIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICYgMHhmZmZmZjAwMDsKIAllY20tPmFyICA9IChMQVdBUl9FTiB8IExBV0FSX1RSR1RfSUZfRERSIHwgKExBV0FSX1NJWkUgJiBsYXdfc2l6ZSkpOwogCWRlYnVnKCJERFI6YmFyPTB4JTA4eFxuIiwgZWNtLT5iYXIpOwogCWRlYnVnKCJERFI6YXI9MHglMDh4XG4iLCBlY20tPmFyKTsKQEAgLTcyNCw4ICs3MjQsOCBAQAogCQlkZWJ1ZygiRERSOiBzZHJhbV9jZmcyICA9IDB4JTA4eFxuIiwgZGRyLT5zZHJhbV9jZmcyKTsKIAl9CiAKLSNpZmRlZiBDRkdfRERSX1NEUkFNX0NMS19DTlRMCS8qIE9wdGlvbmFsIHBsYXRmb3JtIHNwZWNpZmljIHZhbHVlICovCi0JZGRyLT5zZHJhbV9jbGtfY250bCA9IENGR19ERFJfU0RSQU1fQ0xLX0NOVEw7CisjaWZkZWYgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0xLX0NOVEwJLyogT3B0aW9uYWwgcGxhdGZvcm0gc3BlY2lmaWMgdmFsdWUgKi8KKwlkZHItPnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0xLX0NOVEw7CiAjZW5kaWYKIAlkZWJ1ZygiRERSOnNkcmFtX2Nsa19jbnRsPTB4JTA4eFxuIiwgZGRyLT5zZHJhbV9jbGtfY250bCk7CiAKQEAgLTg0Miw3ICs4NDIsNyBAQAogLyogI2RlZmluZSBDT05GSUdfRERSX0VDQ19JTklUX1ZJQV9ETUEgKi8KIHZvaWQgZGRyX2VuYWJsZV9lY2ModW5zaWduZWQgaW50IGRyYW1fc2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBkZHI4M3h4X3QgKmRkcj0gJmltbWFwLT5kZHI7CiAJdW5zaWduZWQgbG9uZyB0X3N0YXJ0LCB0X2VuZDsKIAlyZWdpc3RlciB1NjQgKnA7CmRpZmYgLS1naXQgYS9jcHUvbXBjODN4eC9zcGVlZC5jIGIvY3B1L21wYzgzeHgvc3BlZWQuYwppbmRleCA3NmM1NjlkLi4zYTcwOGQ4IDEwMDY0NAotLS0gYS9jcHUvbXBjODN4eC9zcGVlZC5jCisrKyBiL2NwdS9tcGM4M3h4L3NwZWVkLmMKQEAgLTkwLDcgKzkwLDcgQEAKICAqLwogaW50IGdldF9jbG9ja3Modm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXUzMiBwY2lfc3luY19pbjsKIAl1OCBzcG1mOwogCXU4IGNsa2luX2RpdjsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4M3h4L3N0YXJ0LlMgYi9jcHUvbXBjODN4eC9zdGFydC5TCmluZGV4IDE0YmZiZGEuLjU2NWNjMzkgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4M3h4L3N0YXJ0LlMKKysrIGIvY3B1L21wYzgzeHgvc3RhcnQuUwpAQCAtNTcsOCArNTcsOCBAQAogI2RlZmluZSBNU1JfS0VSTkVMIChNU1JfRlB8TVNSX01FfE1TUl9SSSkKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQ09ORklHX05BTkRfU1BMKSAmJiAhZGVmaW5lZChDRkdfUkFNQk9PVCkKLSNkZWZpbmUgQ0ZHX0ZMQVNIQk9PVAorI2lmICFkZWZpbmVkKENPTkZJR19OQU5EX1NQTCkgJiYgIWRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIQk9PVAogI2VuZGlmCiAKIC8qCkBAIC05Myw4ICs5Myw4IEBACiAJLmZpbGwJOCwxLCgoKHcpPj4gOCkmMHhmZik7CVwKIAkuZmlsbAk4LDEsKCgodykgICAgKSYweGZmKQogCi0JX0hSQ1dfVEFCTEVfRU5UUlkoQ0ZHX0hSQ1dfTE9XKQotCV9IUkNXX1RBQkxFX0VOVFJZKENGR19IUkNXX0hJR0gpCisJX0hSQ1dfVEFCTEVfRU5UUlkoQ09ORklHX1NZU19IUkNXX0xPVykKKwlfSFJDV19UQUJMRV9FTlRSWShDT05GSUdfU1lTX0hSQ1dfSElHSCkKIAogLyoKICAqIE1hZ2ljIG51bWJlciBhbmQgdmVyc2lvbiBzdHJpbmcgLSBwdXQgaXQgYWZ0ZXIgdGhlIEhSQ1cgc2luY2UgaXQKQEAgLTExMSwxMCArMTExLDEwIEBACiAKICNpZm5kZWYgQ09ORklHX0RFRkFVTFRfSU1NUgogI2Vycm9yIENPTkZJR19ERUZBVUxUX0lNTVIgbXVzdCBiZSBkZWZpbmVkCi0jZW5kaWYgLyogQ0ZHX0RFRkFVTFRfSU1NUiAqLwotI2lmbmRlZiBDRkdfSU1NUgotI2RlZmluZSBDRkdfSU1NUiBDT05GSUdfREVGQVVMVF9JTU1SCi0jZW5kaWYgLyogQ0ZHX0lNTVIgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RFRkFVTFRfSU1NUiAqLworI2lmbmRlZiBDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SIENPTkZJR19ERUZBVUxUX0lNTVIKKyNlbmRpZiAvKiBDT05GSUdfU1lTX0lNTVIgKi8KIAogLyoKICAqIEFmdGVyIGNvbmZpZ3VyYXRpb24sIGEgc3lzdGVtIHJlc2V0IGV4Y2VwdGlvbiBpcyBleGVjdXRlZCB1c2luZyB0aGUKQEAgLTE2MCw4ICsxNjAsOCBAQAogCW5vcAogYm9vdF93YXJtOiAvKiB0aW1lIHQgNSAqLwogCW1mbXNyCXI1CQkJLyogc2F2ZSBtc3IgY29udGVudHMJKi8KLQlsaXMJcjMsIENGR19JTU1SQGgKLQlvcmkJcjMsIHIzLCBDRkdfSU1NUkBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lNTVJAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSU1NUkBsCiAJc3R3CXIzLCBJTU1SQkFSKHI0KQogCiAJLyogSW5pdGlhbGlzZSB0aGUgRTMwMCBwcm9jZXNzb3IgY29yZQkJKi8KQEAgLTE2OSwxNSArMTY5LDE1IEBACiAKIAlibAlpbml0X2UzMDBfY29yZQogCi0jaWZkZWYgQ0ZHX0ZMQVNIQk9PVAorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hCT09UCiAKIAkvKiBJbmZsYXRlIGZsYXNoIGxvY2F0aW9uIHNvIGl0IGFwcGVhcnMgZXZlcnl3aGVyZSwgY2FsY3VsYXRlICovCiAJLyogdGhlIGFic29sdXRlIGFkZHJlc3MgaW4gZmluYWwgbG9jYXRpb24gb2YgdGhlIEZMQVNILCBqdW1wICAqLwogCS8qIHRoZXJlIGFuZCBkZWZsYXRlIHRoZSBmbGFzaCBzaXplIGJhY2sgdG8gbWluaW1hbCBzaXplICAgICAgKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAJYmwgbWFwX2ZsYXNoX2J5X2xhdzEKLQlsaXMgcjQsIChDRkdfTU9OSVRPUl9CQVNFKUBoCi0Jb3JpIHI0LCByNCwgKENGR19NT05JVE9SX0JBU0UpQGwKKwlsaXMgcjQsIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSlAaAorCW9yaSByNCwgcjQsIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSlAbAogCWFkZGkgcjUsIHI0LCBpbl9mbGFzaCAtIF9zdGFydCArIEVYQ19PRkZfU1lTX1JFU0VUCiAJbXRsciByNQogCWJscgpAQCAtMTg1LDcgKzE4NSw3IEBACiAjaWYgMSAvKiBSZW1hcHBpbmcgZmxhc2ggd2l0aCBMQVcwLiAqLwogCWJsIHJlbWFwX2ZsYXNoX2J5X2xhdzAKICNlbmRpZgotI2VuZGlmCS8qIENGR19GTEFTSEJPT1QgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIQk9PVCAqLwogCiAJLyogc2V0dXAgdGhlIGJhdHMgKi8KIAlibAlzZXR1cF9iYXRzCkBAIC0yMTEsMTUgKzIxMSwxNSBAQAogCS8qIGVuYWJsZSB0aGUgZGF0YSBjYWNoZSAqLwogCWJsCWRjYWNoZV9lbmFibGUKIAlzeW5jCi0jaWZkZWYgQ0ZHX0lOSVRfUkFNX0xPQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKIAlibAlsb2NrX3JhbV9pbl9jYWNoZQogCXN5bmMKICNlbmRpZgogCiAJLyogc2V0IHVwIHRoZSBzdGFjayBwb2ludGVyIGluIG91ciBuZXdseSBjcmVhdGVkCiAJICogY2FjaGUtcmFtIChyMSkgKi8KLQlsaXMJcjEsIChDRkdfSU5JVF9SQU1fQUREUiArIENGR19HQkxfREFUQV9PRkZTRVQpQGgKLQlvcmkJcjEsIHIxLCAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKUBsCisJbGlzCXIxLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQpQGgKKwlvcmkJcjEsIHIxLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQpQGwKIAogCWxpCXIwLCAwCQkvKiBNYWtlIHJvb20gZm9yIHN0YWNrIGZyYW1lIGhlYWRlciBhbmQJKi8KIAlzdHd1CXIwLCAtNChyMSkJLyogY2xlYXIgZmluYWwgc3RhY2sgZnJhbWUgc28gdGhhdAkqLwpAQCAtMjM0LDcgKzIzNCw3IEBACiAJR0VUX0dPVAkJCS8qIGluaXRpYWxpemUgR09UIGFjY2VzcwkqLwogCiAJLyogcjM6IElNTVIgKi8KLQlsaXMJcjMsIENGR19JTU1SQGgKKwlsaXMJcjMsIENPTkZJR19TWVNfSU1NUkBoCiAJLyogcnVuIGxvdy1sZXZlbCBDUFUgaW5pdCBjb2RlIChpbiBGbGFzaCkqLwogCWJsCWNwdV9pbml0X2YKIApAQCAtNDU2LDExICs0NTYsMTEgQEAKIAltdHNwcglTUlIxLCByMwkJCS8qIE1ha2UgU1JSMSBtYXRjaCBNU1IgKi8KIAogCi0JbGlzCXIzLCBDRkdfSU1NUkBoCisJbGlzCXIzLCBDT05GSUdfU1lTX0lNTVJAaAogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQogCS8qIEluaXRpYWxpc2UgdGhlIFdhdGhjZG9nIHZhbHVlcyBhbmQgcmVzZXQgaXQgKGlmIHJlcSkgKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0JbGlzIHI0LCBDRkdfV0FUQ0hET0dfVkFMVUUKKwlsaXMgcjQsIENPTkZJR19TWVNfV0FUQ0hET0dfVkFMVUUKIAlvcmkgcjQsIHI0LCAoU1dDUlJfU1dFTiB8IFNXQ1JSX1NXUkkgfCBTV0NSUl9TV1BSKQogCXN0dyByNCwgU1dDUlIocjMpCiAKQEAgLTQ5OSwxOCArNDk5LDE4IEBACiAJLyogLSBmb3JjZSBpbnZhbGlkYXRpb24gb2YgZGF0YSBhbmQgaW5zdHJ1Y3Rpb24gY2FjaGVzICAqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotCWxpcwlyMywgQ0ZHX0hJRDBfSU5JVEBoCi0Jb3JpCXIzLCByMywgKENGR19ISUQwX0lOSVQgfCBISUQwX0lDRkkgfCBISUQwX0RDRkkpQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfSElEMF9JTklUQGgKKwlvcmkJcjMsIHIzLCAoQ09ORklHX1NZU19ISUQwX0lOSVQgfCBISUQwX0lDRkkgfCBISUQwX0RDRkkpQGwKIAlTWU5DCiAJbXRzcHIJSElEMCwgcjMKIAotCWxpcwlyMywgQ0ZHX0hJRDBfRklOQUxAaAotCW9yaQlyMywgcjMsIChDRkdfSElEMF9GSU5BTCAmIH4oSElEMF9JQ0ZJIHwgSElEMF9EQ0ZJKSlAbAorCWxpcwlyMywgQ09ORklHX1NZU19ISUQwX0ZJTkFMQGgKKwlvcmkJcjMsIHIzLCAoQ09ORklHX1NZU19ISUQwX0ZJTkFMICYgfihISUQwX0lDRkkgfCBISUQwX0RDRkkpKUBsCiAJU1lOQwogCW10c3ByCUhJRDAsIHIzCiAKLQlsaXMJcjMsIENGR19ISUQyQGgKLQlvcmkJcjMsIHIzLCBDRkdfSElEMkBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0hJRDJAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSElEMkBsCiAJU1lOQwogCW10c3ByCUhJRDIsIHIzCiAKQEAgLTUyNCwxMzEgKzUyNCwxMzEgQEAKIAlhZGRpcwlyMCwgcjAsIDB4MDAwMAogCiAJLyogSUJBVCAwICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfSUJBVDBMQGgKLQlvcmkJcjQsIHI0LCBDRkdfSUJBVDBMQGwKLQlhZGRpcwlyMywgcjAsIENGR19JQkFUMFVAaAotCW9yaQlyMywgcjMsIENGR19JQkFUMFVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19JQkFUMExAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSUJBVDBMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfSUJBVDBVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQwVUBsCiAJbXRzcHIJSUJBVDBMLCByNAogCW10c3ByCUlCQVQwVSwgcjMKIAogCS8qIERCQVQgMCAqLwotCWFkZGlzCXI0LCByMCwgQ0ZHX0RCQVQwTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0RCQVQwTEBsCi0JYWRkaXMJcjMsIHIwLCBDRkdfREJBVDBVQGgKLQlvcmkJcjMsIHIzLCBDRkdfREJBVDBVQGwKKwlhZGRpcwlyNCwgcjAsIENPTkZJR19TWVNfREJBVDBMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQwTEBsCisJYWRkaXMJcjMsIHIwLCBDT05GSUdfU1lTX0RCQVQwVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19EQkFUMFVAbAogCW10c3ByCURCQVQwTCwgcjQKIAltdHNwcglEQkFUMFUsIHIzCiAKIAkvKiBJQkFUIDEgKi8KLQlhZGRpcwlyNCwgcjAsIENGR19JQkFUMUxAaAotCW9yaQlyNCwgcjQsIENGR19JQkFUMUxAbAotCWFkZGlzCXIzLCByMCwgQ0ZHX0lCQVQxVUBoCi0Jb3JpCXIzLCByMywgQ0ZHX0lCQVQxVUBsCisJYWRkaXMJcjQsIHIwLCBDT05GSUdfU1lTX0lCQVQxTEBoCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19JQkFUMUxAbAorCWFkZGlzCXIzLCByMCwgQ09ORklHX1NZU19JQkFUMVVAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSUJBVDFVQGwKIAltdHNwcglJQkFUMUwsIHI0CiAJbXRzcHIJSUJBVDFVLCByMwogCiAJLyogREJBVCAxICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfREJBVDFMQGgKLQlvcmkJcjQsIHI0LCBDRkdfREJBVDFMQGwKLQlhZGRpcwlyMywgcjAsIENGR19EQkFUMVVAaAotCW9yaQlyMywgcjMsIENGR19EQkFUMVVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19EQkFUMUxAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfREJBVDFMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfREJBVDFVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0RCQVQxVUBsCiAJbXRzcHIJREJBVDFMLCByNAogCW10c3ByCURCQVQxVSwgcjMKIAogCS8qIElCQVQgMiAqLwotCWFkZGlzCXI0LCByMCwgQ0ZHX0lCQVQyTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lCQVQyTEBsCi0JYWRkaXMJcjMsIHIwLCBDRkdfSUJBVDJVQGgKLQlvcmkJcjMsIHIzLCBDRkdfSUJBVDJVQGwKKwlhZGRpcwlyNCwgcjAsIENPTkZJR19TWVNfSUJBVDJMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQyTEBsCisJYWRkaXMJcjMsIHIwLCBDT05GSUdfU1lTX0lCQVQyVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19JQkFUMlVAbAogCW10c3ByCUlCQVQyTCwgcjQKIAltdHNwcglJQkFUMlUsIHIzCiAKIAkvKiBEQkFUIDIgKi8KLQlhZGRpcwlyNCwgcjAsIENGR19EQkFUMkxAaAotCW9yaQlyNCwgcjQsIENGR19EQkFUMkxAbAotCWFkZGlzCXIzLCByMCwgQ0ZHX0RCQVQyVUBoCi0Jb3JpCXIzLCByMywgQ0ZHX0RCQVQyVUBsCisJYWRkaXMJcjQsIHIwLCBDT05GSUdfU1lTX0RCQVQyTEBoCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19EQkFUMkxAbAorCWFkZGlzCXIzLCByMCwgQ09ORklHX1NZU19EQkFUMlVAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfREJBVDJVQGwKIAltdHNwcglEQkFUMkwsIHI0CiAJbXRzcHIJREJBVDJVLCByMwogCiAJLyogSUJBVCAzICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfSUJBVDNMQGgKLQlvcmkJcjQsIHI0LCBDRkdfSUJBVDNMQGwKLQlhZGRpcwlyMywgcjAsIENGR19JQkFUM1VAaAotCW9yaQlyMywgcjMsIENGR19JQkFUM1VAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19JQkFUM0xAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSUJBVDNMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfSUJBVDNVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQzVUBsCiAJbXRzcHIJSUJBVDNMLCByNAogCW10c3ByCUlCQVQzVSwgcjMKIAogCS8qIERCQVQgMyAqLwotCWFkZGlzCXI0LCByMCwgQ0ZHX0RCQVQzTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0RCQVQzTEBsCi0JYWRkaXMJcjMsIHIwLCBDRkdfREJBVDNVQGgKLQlvcmkJcjMsIHIzLCBDRkdfREJBVDNVQGwKKwlhZGRpcwlyNCwgcjAsIENPTkZJR19TWVNfREJBVDNMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQzTEBsCisJYWRkaXMJcjMsIHIwLCBDT05GSUdfU1lTX0RCQVQzVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19EQkFUM1VAbAogCW10c3ByCURCQVQzTCwgcjQKIAltdHNwcglEQkFUM1UsIHIzCiAKICNpZmRlZiBDT05GSUdfSElHSF9CQVRTCiAJLyogSUJBVCA0ICovCi0JYWRkaXMgICByNCwgcjAsIENGR19JQkFUNExAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfSUJBVDRMQGwKLQlhZGRpcyAgIHIzLCByMCwgQ0ZHX0lCQVQ0VUBoCi0Jb3JpICAgICByMywgcjMsIENGR19JQkFUNFVAbAorCWFkZGlzICAgcjQsIHIwLCBDT05GSUdfU1lTX0lCQVQ0TEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfSUJBVDRMQGwKKwlhZGRpcyAgIHIzLCByMCwgQ09ORklHX1NZU19JQkFUNFVAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQ0VUBsCiAJbXRzcHIgICBJQkFUNEwsIHI0CiAJbXRzcHIgICBJQkFUNFUsIHIzCiAKIAkvKiBEQkFUIDQgKi8KLQlhZGRpcyAgIHI0LCByMCwgQ0ZHX0RCQVQ0TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19EQkFUNExAbAotCWFkZGlzICAgcjMsIHIwLCBDRkdfREJBVDRVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0RCQVQ0VUBsCisJYWRkaXMgICByNCwgcjAsIENPTkZJR19TWVNfREJBVDRMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19EQkFUNExAbAorCWFkZGlzICAgcjMsIHIwLCBDT05GSUdfU1lTX0RCQVQ0VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfREJBVDRVQGwKIAltdHNwciAgIERCQVQ0TCwgcjQKIAltdHNwciAgIERCQVQ0VSwgcjMKIAogCS8qIElCQVQgNSAqLwotCWFkZGlzICAgcjQsIHIwLCBDRkdfSUJBVDVMQGgKLQlvcmkgICAgIHI0LCByNCwgQ0ZHX0lCQVQ1TEBsCi0JYWRkaXMgICByMywgcjAsIENGR19JQkFUNVVAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfSUJBVDVVQGwKKwlhZGRpcyAgIHI0LCByMCwgQ09ORklHX1NZU19JQkFUNUxAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQ1TEBsCisJYWRkaXMgICByMywgcjAsIENPTkZJR19TWVNfSUJBVDVVQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19JQkFUNVVAbAogCW10c3ByICAgSUJBVDVMLCByNAogCW10c3ByICAgSUJBVDVVLCByMwogCiAJLyogREJBVCA1ICovCi0JYWRkaXMgICByNCwgcjAsIENGR19EQkFUNUxAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfREJBVDVMQGwKLQlhZGRpcyAgIHIzLCByMCwgQ0ZHX0RCQVQ1VUBoCi0Jb3JpICAgICByMywgcjMsIENGR19EQkFUNVVAbAorCWFkZGlzICAgcjQsIHIwLCBDT05GSUdfU1lTX0RCQVQ1TEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfREJBVDVMQGwKKwlhZGRpcyAgIHIzLCByMCwgQ09ORklHX1NZU19EQkFUNVVAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0RCQVQ1VUBsCiAJbXRzcHIgICBEQkFUNUwsIHI0CiAJbXRzcHIgICBEQkFUNVUsIHIzCiAKIAkvKiBJQkFUIDYgKi8KLQlhZGRpcyAgIHI0LCByMCwgQ0ZHX0lCQVQ2TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19JQkFUNkxAbAotCWFkZGlzICAgcjMsIHIwLCBDRkdfSUJBVDZVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0lCQVQ2VUBsCisJYWRkaXMgICByNCwgcjAsIENPTkZJR19TWVNfSUJBVDZMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19JQkFUNkxAbAorCWFkZGlzICAgcjMsIHIwLCBDT05GSUdfU1lTX0lCQVQ2VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfSUJBVDZVQGwKIAltdHNwciAgIElCQVQ2TCwgcjQKIAltdHNwciAgIElCQVQ2VSwgcjMKIAogCS8qIERCQVQgNiAqLwotCWFkZGlzICAgcjQsIHIwLCBDRkdfREJBVDZMQGgKLQlvcmkgICAgIHI0LCByNCwgQ0ZHX0RCQVQ2TEBsCi0JYWRkaXMgICByMywgcjAsIENGR19EQkFUNlVAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfREJBVDZVQGwKKwlhZGRpcyAgIHI0LCByMCwgQ09ORklHX1NZU19EQkFUNkxAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQ2TEBsCisJYWRkaXMgICByMywgcjAsIENPTkZJR19TWVNfREJBVDZVQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19EQkFUNlVAbAogCW10c3ByICAgREJBVDZMLCByNAogCW10c3ByICAgREJBVDZVLCByMwogCiAJLyogSUJBVCA3ICovCi0JYWRkaXMgICByNCwgcjAsIENGR19JQkFUN0xAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfSUJBVDdMQGwKLQlhZGRpcyAgIHIzLCByMCwgQ0ZHX0lCQVQ3VUBoCi0Jb3JpICAgICByMywgcjMsIENGR19JQkFUN1VAbAorCWFkZGlzICAgcjQsIHIwLCBDT05GSUdfU1lTX0lCQVQ3TEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfSUJBVDdMQGwKKwlhZGRpcyAgIHIzLCByMCwgQ09ORklHX1NZU19JQkFUN1VAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQ3VUBsCiAJbXRzcHIgICBJQkFUN0wsIHI0CiAJbXRzcHIgICBJQkFUN1UsIHIzCiAKIAkvKiBEQkFUIDcgKi8KLQlhZGRpcyAgIHI0LCByMCwgQ0ZHX0RCQVQ3TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19EQkFUN0xAbAotCWFkZGlzICAgcjMsIHIwLCBDRkdfREJBVDdVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0RCQVQ3VUBsCisJYWRkaXMgICByNCwgcjAsIENPTkZJR19TWVNfREJBVDdMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19EQkFUN0xAbAorCWFkZGlzICAgcjMsIHIwLCBDT05GSUdfU1lTX0RCQVQ3VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfREJBVDdVQGwKIAltdHNwciAgIERCQVQ3TCwgcjQKIAltdHNwciAgIERCQVQ3VSwgcjMKICNlbmRpZgpAQCAtNzc0LDExICs3NzQsMTEgQEAKIAkuZ2xvYmwJZmx1c2hfZGNhY2hlCiBmbHVzaF9kY2FjaGU6CiAJbGlzCXIzLCAwCi0JbGlzCXI1LCBDRkdfQ0FDSEVMSU5FX1NJWkUKKwlsaXMJcjUsIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKIDE6CWNtcAkwLCAxLCByMywgcjUKIAliZ2UJMmYKIAlsd3oJcjUsIDAocjMpCi0JbGlzCXI1LCBDRkdfQ0FDSEVMSU5FX1NJWkUKKwlsaXMJcjUsIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKIAlhZGRpCXIzLCByMywgMHg0CiAJYgkxYgogMjoJYmxyCkBAIC04MjAsMTYgKzgyMCwxNiBAQAogCW1yCXIxMCwgcjUJCS8qIFNhdmUgY29weSBvZiBEZXN0aW5hdGlvbiBBZGRyZXNzICovCiAKIAltcglyMywgIHI1CQkJCS8qIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KLQlsaXMJcjQsIENGR19NT05JVE9SX0JBU0VAaAkJLyogU291cmNlICAgICAgQWRkcmVzcyAqLwotCW9yaQlyNCwgcjQsIENGR19NT05JVE9SX0JBU0VAbAorCWxpcwlyNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAaAkJLyogU291cmNlICAgICAgQWRkcmVzcyAqLworCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGwKIAlsd3oJcjUsIEdPVChfX2Jzc19zdGFydCkKIAlzdWIJcjUsIHI1LCByNAotCWxpCXI2LCBDRkdfQ0FDSEVMSU5FX1NJWkUJCS8qIENhY2hlIExpbmUgU2l6ZSAqLworCWxpCXI2LCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUgKi8KIAogCS8qCiAJICogRml4IEdPVCBwb2ludGVyOgogCSAqCi0JICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDRkdfTU9OSVRPUl9CQVNFKQorCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpCiAJICoJCSsgRGVzdGluYXRpb24gQWRkcmVzcwogCSAqCiAJICogT2Zmc2V0OgpAQCAtMTA3MywxNCArMTA3MywxNCBAQAogCWJscgogI2VuZGlmIC8qICFDT05GSUdfTkFORF9TUEwgKi8KIAotI2lmZGVmIENGR19JTklUX1JBTV9MT0NLCisjaWZkZWYgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCiBsb2NrX3JhbV9pbl9jYWNoZToKIAkvKiBBbGxvY2F0ZSBJbml0aWFsIFJBTSBpbiBkYXRhIGNhY2hlLgogCSAqLwotCWxpcwlyMywgKENGR19JTklUX1JBTV9BRERSICYgfjMxKUBoCi0Jb3JpCXIzLCByMywgKENGR19JTklUX1JBTV9BRERSICYgfjMxKUBsCi0JbGkJcjQsICgoQ0ZHX0lOSVRfUkFNX0VORCAmIH4zMSkgKyBcCi0JCSAgICAgKENGR19JTklUX1JBTV9BRERSICYgMzEpICsgMzEpIC8gMzIKKwlsaXMJcjMsIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgJiB+MzEpQGgKKwlvcmkJcjMsIHIzLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICYgfjMxKUBsCisJbGkJcjQsICgoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgJiB+MzEpICsgXAorCQkgICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgJiAzMSkgKyAzMSkgLyAzMgogCW10Y3RyCXI0CiAxOgogCWRjYnoJcjAsIHIzCkBAIC0xMDk5LDEwICsxMDk5LDEwIEBACiAuZ2xvYmwgdW5sb2NrX3JhbV9pbl9jYWNoZQogdW5sb2NrX3JhbV9pbl9jYWNoZToKIAkvKiBpbnZhbGlkYXRlIHRoZSBJTklUX1JBTSBzZWN0aW9uICovCi0JbGlzCXIzLCAoQ0ZHX0lOSVRfUkFNX0FERFIgJiB+MzEpQGgKLQlvcmkJcjMsIHIzLCAoQ0ZHX0lOSVRfUkFNX0FERFIgJiB+MzEpQGwKLQlsaQlyNCwgKChDRkdfSU5JVF9SQU1fRU5EICYgfjMxKSArIFwKLQkJICAgICAoQ0ZHX0lOSVRfUkFNX0FERFIgJiAzMSkgKyAzMSkgLyAzMgorCWxpcwlyMywgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIH4zMSlAaAorCW9yaQlyMywgcjMsIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgJiB+MzEpQGwKKwlsaQlyNCwgKChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAmIH4zMSkgKyBcCisJCSAgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIDMxKSArIDMxKSAvIDMyCiAJbXRjdHIJcjQKIDE6CWljYmkJcjAsIHIzCiAJZGNiaQlyMCwgcjMKQEAgLTExMjIsMTQgKzExMjIsMTQgQEAKIAltdHNwcglISUQwLCByMwkJLyogbm8gaW52YWxpZGF0ZSwgdW5sb2NrICovCiAJYmxyCiAjZW5kaWYgLyogIUNPTkZJR19OQU5EX1NQTCAqLwotI2VuZGlmIC8qIENGR19JTklUX1JBTV9MT0NLICovCisjZW5kaWYgLyogQ09ORklHX1NZU19JTklUX1JBTV9MT0NLICovCiAKLSNpZmRlZiBDRkdfRkxBU0hCT09UCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSEJPT1QKIG1hcF9mbGFzaF9ieV9sYXcxOgogCS8qIFdoZW4gYm9vdGluZyBmcm9tIFJPTSAoRmxhc2ggb3IgRVBST00pLCBjbGVhciB0aGUgICovCiAJLyogQWRkcmVzcyBNYXNrIGluIE9SMCBzbyBST00gYXBwZWFycyBldmVyeXdoZXJlICAgICAgKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCWxpcwlyMywgKENGR19JTU1SKUBoICAvKiByMyA8PSBDRkdfSU1NUiAgICAqLworCWxpcwlyMywgKENPTkZJR19TWVNfSU1NUilAaCAgLyogcjMgPD0gQ09ORklHX1NZU19JTU1SICAgICovCiAJbHd6CXI0LCBPUjBAbChyMykKIAlsaQlyNSwgMHg3ZmZmICAgICAgICAvKiByNSA8PSAweDAwMDA3RkZGRiAqLwogCWFuZAlyNCwgcjQsIHI1CkBAIC0xMTUxLDE0ICsxMTUxLDE0IEBACiAJICogTEJJVSBMb2NhbCBBY2Nlc3MgV2lkb3cgMCB3aWxsIG5vdCBjb3ZlciB0aGlzIG1lbW9yeSBzcGFjZS4gIFNvLCB3ZQogCSAqIG5lZWQgYW5vdGhlciB3aW5kb3cgdG8gbWFwIGluIGl0LgogCSAqLwotCWxpcyByNCwgKENGR19GTEFTSF9CQVNFKUBoCi0Jb3JpIHI0LCByNCwgKENGR19GTEFTSF9CQVNFKUBsCi0Jc3R3IHI0LCBMQkxBV0JBUjEocjMpIC8qIExCTEFXQkFSMSA8PSBDRkdfRkxBU0hfQkFTRSAqLworCWxpcyByNCwgKENPTkZJR19TWVNfRkxBU0hfQkFTRSlAaAorCW9yaSByNCwgcjQsIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UpQGwKKwlzdHcgcjQsIExCTEFXQkFSMShyMykgLyogTEJMQVdCQVIxIDw9IENPTkZJR19TWVNfRkxBU0hfQkFTRSAqLwogCi0JLyogU3RvcmUgMHg4MDAwMDAxMiArIGxvZzIoQ0ZHX0ZMQVNIX1NJWkUpIGludG8gTEJMQVdBUjEgKi8KKwkvKiBTdG9yZSAweDgwMDAwMDEyICsgbG9nMihDT05GSUdfU1lTX0ZMQVNIX1NJWkUpIGludG8gTEJMQVdBUjEgKi8KIAlsaXMgcjQsICgweDgwMDAwMDEyKUBoCiAJb3JpIHI0LCByNCwgKDB4ODAwMDAwMTIpQGwKLQlsaSByNSwgQ0ZHX0ZMQVNIX1NJWkUKKwlsaSByNSwgQ09ORklHX1NZU19GTEFTSF9TSVpFCiAxOglzcmF3aS4gcjUsIHI1LCAxCS8qIHI1ID0gcjUgPj4gMSAqLwogCWFkZGkgcjQsIHI0LCAxCiAJYm5lIDFiCkBAIC0xMTc1LDI0ICsxMTc1LDI0IEBACiAJbHd6IHI0LCBCUjAocjMpCiAJbGkgIHI1LCAweDdGRkYKIAlhbmQgcjQsIHI0LCByNQotCWxpcyByNSwgKENGR19GTEFTSF9CQVNFICYgMHhGRkZGODAwMClAaAotCW9yaSByNSwgcjUsIChDRkdfRkxBU0hfQkFTRSAmIDB4RkZGRjgwMDApQGwKKwlsaXMgcjUsIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiAweEZGRkY4MDAwKUBoCisJb3JpIHI1LCByNSwgKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIDB4RkZGRjgwMDApQGwKIAlvciAgcjUsIHI1LCByNAotCXN0dyByNSwgQlIwKHIzKSAvKiByNSA8PSAoQ0ZHX0ZMQVNIX0JBU0UgJiAweEZGRkY4MDAwKSB8IChCUjAgJiAweDAwMDA3RkZGKSAqLworCXN0dyByNSwgQlIwKHIzKSAvKiByNSA8PSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgMHhGRkZGODAwMCkgfCAoQlIwICYgMHgwMDAwN0ZGRikgKi8KIAogCWx3eiByNCwgT1IwKHIzKQotCWxpcyByNSwgfigoQ0ZHX0ZMQVNIX1NJWkUgPDwgNCkgLSAxKQorCWxpcyByNSwgfigoQ09ORklHX1NZU19GTEFTSF9TSVpFIDw8IDQpIC0gMSkKIAlvciByNCwgcjQsIHI1CiAJc3R3IHI0LCBPUjAocjMpCiAKLQlsaXMgcjQsIChDRkdfRkxBU0hfQkFTRSlAaAotCW9yaSByNCwgcjQsIChDRkdfRkxBU0hfQkFTRSlAbAotCXN0dyByNCwgTEJMQVdCQVIwKHIzKSAvKiBMQkxBV0JBUjAgPD0gQ0ZHX0ZMQVNIX0JBU0UgKi8KKwlsaXMgcjQsIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UpQGgKKwlvcmkgcjQsIHI0LCAoQ09ORklHX1NZU19GTEFTSF9CQVNFKUBsCisJc3R3IHI0LCBMQkxBV0JBUjAocjMpIC8qIExCTEFXQkFSMCA8PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKi8KIAotCS8qIFN0b3JlIDB4ODAwMDAwMTIgKyBsb2cyKENGR19GTEFTSF9TSVpFKSBpbnRvIExCTEFXQVIwICovCisJLyogU3RvcmUgMHg4MDAwMDAxMiArIGxvZzIoQ09ORklHX1NZU19GTEFTSF9TSVpFKSBpbnRvIExCTEFXQVIwICovCiAJbGlzIHI0LCAoMHg4MDAwMDAxMilAaAogCW9yaSByNCwgcjQsICgweDgwMDAwMDEyKUBsCi0JbGkgcjUsIENGR19GTEFTSF9TSVpFCisJbGkgcjUsIENPTkZJR19TWVNfRkxBU0hfU0laRQogMToJc3Jhd2kuIHI1LCByNSwgMSAvKiByNSA9IHI1ID4+IDEgKi8KIAlhZGRpIHI0LCByNCwgMQogCWJuZSAxYgpAQCAtMTIwMyw0ICsxMjAzLDQgQEAKIAlzdHcgcjQsIExCTEFXQkFSMShyMykKIAlzdHcgcjQsIExCTEFXQVIxKHIzKSAvKiBPZmYgTEJJVSBMQVcxICovCiAJYmxyCi0jZW5kaWYgLyogQ0ZHX0ZMQVNIQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkxBU0hCT09UICovCmRpZmYgLS1naXQgYS9jcHUvbXBjODN4eC90cmFwcy5jIGIvY3B1L21wYzgzeHgvdHJhcHMuYwppbmRleCBkZmQ2YzAzLi4zYjA5YTYyIDEwMDY0NAotLS0gYS9jcHUvbXBjODN4eC90cmFwcy5jCisrKyBiL2NwdS9tcGM4M3h4L3RyYXBzLmMKQEAgLTEwMCw3ICsxMDAsNyBAQAogdm9pZCBkdW1wX3BjaSAodm9pZCkKIHsKIC8qCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlwcmludGYgKCJQQ0k6IGVyciBzdGF0dXMgJXggZXJyIG1hc2sgJXggZXJyIGN0cmwgJXhcbiIsCiAJCWxlMzJfdG9fY3B1IChpbW1hcC0+aW1fcGNpLnBjaV9lc3IpLAogCQlsZTMyX3RvX2NwdSAoaW1tYXAtPmltX3BjaS5wY2lfZW1yKSwKQEAgLTEyNCw3ICsxMjQsNyBAQAogCSAqLwogI2lmZGVmIENPTkZJR19QQ0kKICNpZiAwCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICNpZmRlZiBERUJVRwogCWR1bXBfcGNpKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NwdS9tcGM4NXh4L2NvbW1wcm9jLmMgYi9jcHUvbXBjODV4eC9jb21tcHJvYy5jCmluZGV4IGIwZWNkMjUuLmZmZjhkZmYgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4NXh4L2NvbW1wcm9jLmMKKysrIGIvY3B1L21wYzg1eHgvY29tbXByb2MuYwpAQCAtMzcsMTAgKzM3LDEwIEBACiB2b2lkCiBtODU2MF9jcG1fcmVzZXQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2NwbV90ICpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNGR19NUEM4NXh4X0NQTV9BRERSOworCXZvbGF0aWxlIGNjc3JfY3BtX3QgKmNwbSA9IChjY3NyX2NwbV90ICopQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSOwogCXZvbGF0aWxlIHVsb25nIGNvdW50OwogCi0JZ2QgPSAoZ2RfdCAqKSAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKKwlnZCA9IChnZF90ICopIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCk7CiAKIAkvKiBSZWNsYWltIHRoZSBEUCBtZW1vcnkgZm9yIG91ciB1c2UuCiAJKi8KQEAgLTY0LDcgKzY0LDcgQEAKIHVpbnQKIG04NTYwX2NwbV9kcGFsbG9jKHVpbnQgc2l6ZSwgdWludCBhbGlnbikKIHsKLQl2b2xhdGlsZSBjY3NyX2NwbV90ICpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNGR19NUEM4NXh4X0NQTV9BRERSOworCXZvbGF0aWxlIGNjc3JfY3BtX3QgKmNwbSA9IChjY3NyX2NwbV90ICopQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSOwogCXVpbnQJcmV0bG9jOwogCXVpbnQJYWxpZ25fbWFzaywgb2ZmOwogCXVpbnQJc2F2ZWJhc2U7CkBAIC0xMjAsNyArMTIwLDcgQEAKIHZvaWQKIG04NTYwX2NwbV9zZXRicmcodWludCBicmcsIHVpbnQgcmF0ZSkKIHsKLQl2b2xhdGlsZSBjY3NyX2NwbV90ICpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNGR19NUEM4NXh4X0NQTV9BRERSOworCXZvbGF0aWxlIGNjc3JfY3BtX3QgKmNwbSA9IChjY3NyX2NwbV90ICopQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSOwogCXZvbGF0aWxlIHVpbnQJKmJwOwogCiAJLyogVGhpcyBpcyBnb29kIGVub3VnaCB0byBnZXQgU01DcyBydW5uaW5nLi4uLi4KQEAgLTE0Miw3ICsxNDIsNyBAQAogdm9pZAogbTg1NjBfY3BtX2Zhc3RicmcodWludCBicmcsIHVpbnQgcmF0ZSwgaW50IGRpdjE2KQogewotCXZvbGF0aWxlIGNjc3JfY3BtX3QgKmNwbSA9IChjY3NyX2NwbV90ICopQ0ZHX01QQzg1eHhfQ1BNX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9jcG1fdCAqY3BtID0gKGNjc3JfY3BtX3QgKilDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFI7CiAJdm9sYXRpbGUgdWludAkqYnA7CiAKIAkvKiBUaGlzIGlzIGdvb2QgZW5vdWdoIHRvIGdldCBTTUNzIHJ1bm5pbmcuLi4uLgpAQCAtMTY3LDcgKzE2Nyw3IEBACiB2b2lkCiBtODU2MF9jcG1fZXh0Y2JyZyh1aW50IGJyZywgdWludCByYXRlLCB1aW50IGV4dGNsaywgaW50IHBpbnNlbCkKIHsKLQl2b2xhdGlsZSBjY3NyX2NwbV90ICpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNGR19NUEM4NXh4X0NQTV9BRERSOworCXZvbGF0aWxlIGNjc3JfY3BtX3QgKmNwbSA9IChjY3NyX2NwbV90ICopQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSOwogCXZvbGF0aWxlIHVpbnQJKmJwOwogCiAJaWYgKGJyZyA8IDQpIHsKQEAgLTE5MCw3ICsxOTAsNyBAQAogdm9pZCBwb3N0X3dvcmRfc3RvcmUgKHVsb25nIGEpCiB7CiAJdm9sYXRpbGUgdWxvbmcgKnNhdmVfYWRkciA9Ci0JCSh2b2xhdGlsZSB1bG9uZyAqKShDRkdfSU1NUiArIENQTV9QT1NUX1dPUkRfQUREUik7CisJCSh2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX0lNTVIgKyBDUE1fUE9TVF9XT1JEX0FERFIpOwogCiAJKnNhdmVfYWRkciA9IGE7CiB9CkBAIC0xOTgsNyArMTk4LDcgQEAKIHVsb25nIHBvc3Rfd29yZF9sb2FkICh2b2lkKQogewogCXZvbGF0aWxlIHVsb25nICpzYXZlX2FkZHIgPQotCQkodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX0lNTVIgKyBDUE1fUE9TVF9XT1JEX0FERFIpOworCQkodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19JTU1SICsgQ1BNX1BPU1RfV09SRF9BRERSKTsKIAogCXJldHVybiAqc2F2ZV9hZGRyOwogfQpkaWZmIC0tZ2l0IGEvY3B1L21wYzg1eHgvY3B1LmMgYi9jcHUvbXBjODV4eC9jcHUuYwppbmRleCBmMTViMGE4Li42MTE2MmE4IDEwMDY0NAotLS0gYS9jcHUvbXBjODV4eC9jcHUuYworKysgYi9jcHUvbXBjODV4eC9jcHUuYwpAQCAtODQsNyArODQsNyBAQAogCXVpbnQgbWFqb3IsIG1pbm9yOwogCXN0cnVjdCBjcHVfdHlwZSAqY3B1OwogI2lmZGVmIENPTkZJR19ERFJfQ0xLX0ZSRVEKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCXUzMiBkZHJfcmF0aW8gPSAoKGd1ci0+cG9ycGxsc3IpICYgTVBDODV4eF9QT1JQTExTUl9ERFJfUkFUSU8pCiAJCT4+IE1QQzg1eHhfUE9SUExMU1JfRERSX1JBVElPX1NISUZUOwogI2Vsc2UKQEAgLTE1MSwxMSArMTUxLDExIEBACiAJCWJyZWFrOwogCX0KIAotI2lmIGRlZmluZWQoQ0ZHX0xCQ19MQ1JSKQotCWxjcnIgPSBDRkdfTEJDX0xDUlI7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0xCQ19MQ1JSKQorCWxjcnIgPSBDT05GSUdfU1lTX0xCQ19MQ1JSOwogI2Vsc2UKIAl7Ci0JICAgIHZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwkgICAgdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0xCQ19BRERSKTsKIAogCSAgICBsY3JyID0gbGJjLT5sY3JyOwogCX0KQEAgLTIwMCw3ICsyMDAsNyBAQAogCWlmICh2ZXIgJiAxKXsKIAkvKiBlNTAwIHYyIGNvcmUgaGFzIHJlc2V0IGNvbnRyb2wgcmVnaXN0ZXIgKi8KIAkJdm9sYXRpbGUgdW5zaWduZWQgaW50ICogcnN0Y3I7Ci0JCXJzdGNyID0gKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqKShDRkdfSU1NUiArIDB4RTAwQjApOworCQlyc3RjciA9ICh2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikoQ09ORklHX1NZU19JTU1SICsgMHhFMDBCMCk7CiAJCSpyc3RjciA9IDB4MjsJCS8qIEhSRVNFVF9SRVEgKi8KIAkJdWRlbGF5KDEwMCk7CiAJfQpAQCAtMjU2LDcgKzI1Niw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19ERFJfRUNDKQogdm9pZCBkbWFfaW5pdCh2b2lkKSB7Ci0Jdm9sYXRpbGUgY2Nzcl9kbWFfdCAqZG1hID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRE1BX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZG1hX3QgKmRtYSA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9ETUFfQUREUik7CiAKIAlkbWEtPnNhdHIwID0gMHgwMmM0MDAwMDsKIAlkbWEtPmRhdHIwID0gMHgwMmM0MDAwMDsKQEAgLTI2Niw3ICsyNjYsNyBAQAogfQogCiB1aW50IGRtYV9jaGVjayh2b2lkKSB7Ci0Jdm9sYXRpbGUgY2Nzcl9kbWFfdCAqZG1hID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRE1BX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZG1hX3QgKmRtYSA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9ETUFfQUREUik7CiAJdm9sYXRpbGUgdWludCBzdGF0dXMgPSBkbWEtPnNyMDsKIAogCS8qIFdoaWxlIHRoZSBjaGFubmVsIGlzIGJ1c3ksIHNwaW4gKi8KQEAgLTI4NSw3ICsyODUsNyBAQAogfQogCiBpbnQgZG1hX3hmZXIodm9pZCAqZGVzdCwgdWludCBjb3VudCwgdm9pZCAqc3JjKSB7Ci0Jdm9sYXRpbGUgY2Nzcl9kbWFfdCAqZG1hID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRE1BX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZG1hX3QgKmRtYSA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9ETUFfQUREUik7CiAKIAlkbWEtPmRhcjAgPSAodWludCkgZGVzdDsKIAlkbWEtPnNhcjAgPSAodWludCkgc3JjOwpAQCAtMzA2LDcgKzMwNiw3IEBACiB7CiAJaW50IGksIG1kciwgbWFkLCBvbGRfbWFkID0gMDsKIAl2b2xhdGlsZSB1MzIgKm14bXI7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAJdm9sYXRpbGUgdTMyICpicnAsKm9ycDsKIAl2b2xhdGlsZSB1OCogZHVtbXkgPSBOVUxMOwogCWludCB1cG1tYXNrOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzg1eHgvY3B1X2luaXQuYyBiL2NwdS9tcGM4NXh4L2NwdV9pbml0LmMKaW5kZXggNzgzYzViYS4uM2E4YWVmMiAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvY3B1X2luaXQuYworKysgYi9jcHUvbXBjODV4eC9jcHVfaW5pdC5jCkBAIC0xMzIsMjggKzEzMiwyOCBAQAogLyogV2UgcnVuIGNwdV9pbml0X2Vhcmx5X2YgaW4gQVMgPSAxICovCiB2b2lkIGNwdV9pbml0X2Vhcmx5X2Yodm9pZCkKIHsKLQlzZXRfdGxiKDAsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCXNldF90bGIoMCwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCTEsIDAsIEJPT0tFX1BBR0VTWl80SywgMCk7CiAKIAkvKiBzZXQgdXAgQ0NTUiBpZiB3ZSB3YW50IGl0IG1vdmVkICovCi0jaWYgKENGR19DQ1NSQkFSX0RFRkFVTFQgIT0gQ0ZHX0NDU1JCQVJfUEhZUykKKyNpZiAoQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQgIT0gQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMpCiAJewogCQl1MzIgdGVtcDsKIAotCQlzZXRfdGxiKDAsIENGR19DQ1NSQkFSX0RFRkFVTFQsIENGR19DQ1NSQkFSX0RFRkFVTFQsCisJCXNldF90bGIoMCwgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQsIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxULAogCQkJTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCQkxLCAxLCBCT09LRV9QQUdFU1pfNEssIDApOwogCi0JCXRlbXAgPSBpbl9iZTMyKCh2b2xhdGlsZSB1MzIgKilDRkdfQ0NTUkJBUl9ERUZBVUxUKTsKLQkJb3V0X2JlMzIoKHZvbGF0aWxlIHUzMiAqKUNGR19DQ1NSQkFSX0RFRkFVTFQsIENGR19DQ1NSQkFSX1BIWVMgPj4gMTIpOworCQl0ZW1wID0gaW5fYmUzMigodm9sYXRpbGUgdTMyICopQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQpOworCQlvdXRfYmUzMigodm9sYXRpbGUgdTMyICopQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQsIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTID4+IDEyKTsKIAotCQl0ZW1wID0gaW5fYmUzMigodm9sYXRpbGUgdTMyICopQ0ZHX0NDU1JCQVIpOworCQl0ZW1wID0gaW5fYmUzMigodm9sYXRpbGUgdTMyICopQ09ORklHX1NZU19DQ1NSQkFSKTsKIAl9CiAjZW5kaWYKIAogCS8qIFBvaW50ZXIgaXMgd3JpdGFibGUgc2luY2Ugd2UgYWxsb2NhdGVkIGEgcmVnaXN0ZXIgZm9yIGl0ICovCi0JZ2QgPSAoZ2RfdCAqKSAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKKwlnZCA9IChnZF90ICopIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCk7CiAKIAkvKiBDbGVhciBpbml0aWFsIGdsb2JhbCBkYXRhICovCiAJbWVtc2V0ICgodm9pZCAqKSBnZCwgMCwgc2l6ZW9mIChnZF90KSk7CkBAIC0xNzIsNjkgKzE3Miw2OSBAQAogCiB2b2lkIGNwdV9pbml0X2YgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbWVtY3RsID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKm1lbWN0bCA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAJZXh0ZXJuIHZvaWQgbTg1NjBfY3BtX3Jlc2V0ICh2b2lkKTsKIAogCWRpc2FibGVfdGxiKDE0KTsKIAlkaXNhYmxlX3RsYigxNSk7CiAKICNpZmRlZiBDT05GSUdfQ1BNMgotCWNvbmZpZ184NTYwX2lvcG9ydHMoKGNjc3JfY3BtX3QgKilDRkdfTVBDODV4eF9DUE1fQUREUik7CisJY29uZmlnXzg1NjBfaW9wb3J0cygoY2Nzcl9jcG1fdCAqKUNPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUik7CiAjZW5kaWYKIAogCS8qIE1hcCBiYW5rcyAwIGFuZCAxIHRvIHRoZSBGTEFTSCBiYW5rcyAwIGFuZCAxIGF0IHByZWxpbWluYXJ5CiAJICogYWRkcmVzc2VzIC0gdGhlc2UgaGF2ZSB0byBiZSBtb2RpZmllZCBsYXRlciB3aGVuIEZMQVNIIHNpemUKIAkgKiBoYXMgYmVlbiBkZXRlcm1pbmVkCiAJICovCi0jaWYgZGVmaW5lZChDRkdfT1IwX1JFTUFQKQotCW1lbWN0bC0+b3IwID0gQ0ZHX09SMF9SRU1BUDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IwX1JFTUFQKQorCW1lbWN0bC0+b3IwID0gQ09ORklHX1NZU19PUjBfUkVNQVA7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19PUjFfUkVNQVApCi0JbWVtY3RsLT5vcjEgPSBDRkdfT1IxX1JFTUFQOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjFfUkVNQVApCisJbWVtY3RsLT5vcjEgPSBDT05GSUdfU1lTX09SMV9SRU1BUDsKICNlbmRpZgogCiAJLyogbm93IHJlc3RyaWN0IHRvIHByZWxpbWluYXJ5IHJhbmdlICovCiAJLyogaWYgY3MxIGlzIGFscmVhZHkgc2V0IHZpYSBkZWJ1Z2dlciwgbGVhdmUgY3MwL2NzMSBhbG9uZSAqLwogCWlmICghIG1lbWN0bC0+YnIxICYgMSkgewotI2lmIGRlZmluZWQoQ0ZHX0JSMF9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SMF9QUkVMSU0pCi0JCW1lbWN0bC0+YnIwID0gQ0ZHX0JSMF9QUkVMSU07Ci0JCW1lbWN0bC0+b3IwID0gQ0ZHX09SMF9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSMF9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjBfUFJFTElNKQorCQltZW1jdGwtPmJyMCA9IENPTkZJR19TWVNfQlIwX1BSRUxJTTsKKwkJbWVtY3RsLT5vcjAgPSBDT05GSUdfU1lTX09SMF9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSMV9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SMV9QUkVMSU0pCi0JCW1lbWN0bC0+b3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JCW1lbWN0bC0+YnIxID0gQ0ZHX0JSMV9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSMV9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjFfUFJFTElNKQorCQltZW1jdGwtPm9yMSA9IENPTkZJR19TWVNfT1IxX1BSRUxJTTsKKwkJbWVtY3RsLT5icjEgPSBDT05GSUdfU1lTX0JSMV9QUkVMSU07CiAjZW5kaWYKIAl9CiAKLSNpZiBkZWZpbmVkKENGR19CUjJfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjJfUFJFTElNKQotCW1lbWN0bC0+b3IyID0gQ0ZHX09SMl9QUkVMSU07Ci0JbWVtY3RsLT5icjIgPSBDRkdfQlIyX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlIyX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SMl9QUkVMSU0pCisJbWVtY3RsLT5vcjIgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07CisJbWVtY3RsLT5icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSM19QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SM19QUkVMSU0pCi0JbWVtY3RsLT5vcjMgPSBDRkdfT1IzX1BSRUxJTTsKLQltZW1jdGwtPmJyMyA9IENGR19CUjNfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjNfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1IzX1BSRUxJTSkKKwltZW1jdGwtPm9yMyA9IENPTkZJR19TWVNfT1IzX1BSRUxJTTsKKwltZW1jdGwtPmJyMyA9IENPTkZJR19TWVNfQlIzX1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlI0X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1I0X1BSRUxJTSkKLQltZW1jdGwtPm9yNCA9IENGR19PUjRfUFJFTElNOwotCW1lbWN0bC0+YnI0ID0gQ0ZHX0JSNF9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSNF9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjRfUFJFTElNKQorCW1lbWN0bC0+b3I0ID0gQ09ORklHX1NZU19PUjRfUFJFTElNOworCW1lbWN0bC0+YnI0ID0gQ09ORklHX1NZU19CUjRfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjVfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjVfUFJFTElNKQotCW1lbWN0bC0+b3I1ID0gQ0ZHX09SNV9QUkVMSU07Ci0JbWVtY3RsLT5icjUgPSBDRkdfQlI1X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlI1X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SNV9QUkVMSU0pCisJbWVtY3RsLT5vcjUgPSBDT05GSUdfU1lTX09SNV9QUkVMSU07CisJbWVtY3RsLT5icjUgPSBDT05GSUdfU1lTX0JSNV9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSNl9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SNl9QUkVMSU0pCi0JbWVtY3RsLT5vcjYgPSBDRkdfT1I2X1BSRUxJTTsKLQltZW1jdGwtPmJyNiA9IENGR19CUjZfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjZfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1I2X1BSRUxJTSkKKwltZW1jdGwtPm9yNiA9IENPTkZJR19TWVNfT1I2X1BSRUxJTTsKKwltZW1jdGwtPmJyNiA9IENPTkZJR19TWVNfQlI2X1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlI3X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1I3X1BSRUxJTSkKLQltZW1jdGwtPm9yNyA9IENGR19PUjdfUFJFTElNOwotCW1lbWN0bC0+YnI3ID0gQ0ZHX0JSN19QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSN19QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjdfUFJFTElNKQorCW1lbWN0bC0+b3I3ID0gQ09ORklHX1NZU19PUjdfUFJFTElNOworCW1lbWN0bC0+YnI3ID0gQ09ORklHX1NZU19CUjdfUFJFTElNOwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DUE0yKQpAQCAtMjY0LDcgKzI2NCw3IEBACiAJcHV0cyAoIkwyOiAgICAiKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX0wyX0NBQ0hFKQotCXZvbGF0aWxlIGNjc3JfbDJjYWNoZV90ICpsMmNhY2hlID0gKHZvaWQgKilDRkdfTVBDODV4eF9MMl9BRERSOworCXZvbGF0aWxlIGNjc3JfbDJjYWNoZV90ICpsMmNhY2hlID0gKHZvaWQgKilDT05GSUdfU1lTX01QQzg1eHhfTDJfQUREUjsKIAl2b2xhdGlsZSB1aW50IGNhY2hlX2N0bDsKIAl1aW50IHN2ciwgdmVyOwogCXVpbnQgbDJzcmJhcjsKQEAgLTMxNywxMyArMzE3LDEzIEBACiAJaWYgKGwyY2FjaGUtPmwyY3RsICYgMHg4MDAwMDAwMCkgewogCQlwdXRzKCJhbHJlYWR5IGVuYWJsZWQiKTsKIAkJbDJzcmJhciA9IGwyY2FjaGUtPmwyc3JiYXIwOwotI2lmZGVmIENGR19JTklUX0wyX0FERFIKLQkJaWYgKGwyY2FjaGUtPmwyY3RsICYgMHgwMDAxMDAwMCAmJiBsMnNyYmFyID49IENGR19GTEFTSF9CQVNFKSB7Ci0JCQlsMnNyYmFyID0gQ0ZHX0lOSVRfTDJfQUREUjsKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfTDJfQUREUgorCQlpZiAobDJjYWNoZS0+bDJjdGwgJiAweDAwMDEwMDAwICYmIGwyc3JiYXIgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFKSB7CisJCQlsMnNyYmFyID0gQ09ORklHX1NZU19JTklUX0wyX0FERFI7CiAJCQlsMmNhY2hlLT5sMnNyYmFyMCA9IGwyc3JiYXI7Ci0JCQlwcmludGYoIm1vdmluZyB0byAweCUwOHgiLCBDRkdfSU5JVF9MMl9BRERSKTsKKwkJCXByaW50ZigibW92aW5nIHRvIDB4JTA4eCIsIENPTkZJR19TWVNfSU5JVF9MMl9BRERSKTsKIAkJfQotI2VuZGlmIC8qIENGR19JTklUX0wyX0FERFIgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0lOSVRfTDJfQUREUiAqLwogCQlwdXRzKCJcbiIpOwogCX0gZWxzZSB7CiAJCWFzbSgibXN5bmM7aXN5bmMiKTsKQEAgLTMzNSw3ICszMzUsNyBAQAogCXB1dHMoImRpc2FibGVkXG4iKTsKICNlbmRpZgogI2lmZGVmIENPTkZJR19RRQotCXVpbnQgcWVfYmFzZSA9IENGR19JTU1SICsgMHgwMDA4MDAwMDsgLyogUUUgaW1tciBiYXNlICovCisJdWludCBxZV9iYXNlID0gQ09ORklHX1NZU19JTU1SICsgMHgwMDA4MDAwMDsgLyogUUUgaW1tciBiYXNlICovCiAJcWVfaW5pdChxZV9iYXNlKTsKIAlxZV9yZXNldCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9jcHUvbXBjODV4eC9kZHItZ2VuMS5jIGIvY3B1L21wYzg1eHgvZGRyLWdlbjEuYwppbmRleCAyYzExZWU0Li5lMjRjOWFmIDEwMDY0NAotLS0gYS9jcHUvbXBjODV4eC9kZHItZ2VuMS5jCisrKyBiL2NwdS9tcGM4NXh4L2Rkci1nZW4xLmMKQEAgLTE4LDcgKzE4LDcgQEAKIAkJCSAgICAgdW5zaWduZWQgaW50IGN0cmxfbnVtKQogewogCXVuc2lnbmVkIGludCBpOwotCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkciA9ICh2b2lkICopQ0ZHX01QQzg1eHhfRERSX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyID0gKHZvaWQgKilDT05GSUdfU1lTX01QQzg1eHhfRERSX0FERFI7CiAKIAlpZiAoY3RybF9udW0gIT0gMCkgewogCQlwcmludGYoIiVzIHVuZXhwZWN0ZWQgY3RybF9udW0gPSAldVxuIiwgX19GVU5DVElPTl9fLCBjdHJsX251bSk7CkBAIC03OSw3ICs3OSw3IEBACiB7CiAJdWludCAqcCA9IDA7CiAJdWludCBpID0gMDsKLQl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICh2b2lkICopKENGR19NUEM4NXh4X0REUl9BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9ERFJfQUREUik7CiAKIAlkbWFfaW5pdCgpOwogCmRpZmYgLS1naXQgYS9jcHUvbXBjODV4eC9kZHItZ2VuMi5jIGIvY3B1L21wYzg1eHgvZGRyLWdlbjIuYwppbmRleCAxMzAwOTBjLi42NTVmOTljIDEwMDY0NAotLS0gYS9jcHUvbXBjODV4eC9kZHItZ2VuMi5jCisrKyBiL2NwdS9tcGM4NXh4L2Rkci1nZW4yLmMKQEAgLTE4LDcgKzE4LDcgQEAKIAkJCSAgICAgdW5zaWduZWQgaW50IGN0cmxfbnVtKQogewogCXVuc2lnbmVkIGludCBpOwotCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkciA9ICh2b2lkICopQ0ZHX01QQzg1eHhfRERSX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyID0gKHZvaWQgKilDT05GSUdfU1lTX01QQzg1eHhfRERSX0FERFI7CiAKIAlpZiAoY3RybF9udW0pIHsKIAkJcHJpbnRmKCIlcyB1bmV4cGVjdGVkIGN0cmxfbnVtID0gJXVcbiIsIF9fRlVOQ1RJT05fXywgY3RybF9udW0pOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzg1eHgvZGRyLWdlbjMuYyBiL2NwdS9tcGM4NXh4L2Rkci1nZW4zLmMKaW5kZXggZDdjYzlkYi4uZTA2NTRiYiAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvZGRyLWdlbjMuYworKysgYi9jcHUvbXBjODV4eC9kZHItZ2VuMy5jCkBAIC0yMiwxMCArMjIsMTAgQEAKIAogCXN3aXRjaCAoY3RybF9udW0pIHsKIAljYXNlIDA6Ci0JCWRkciA9ICh2b2lkICopQ0ZHX01QQzg1eHhfRERSX0FERFI7CisJCWRkciA9ICh2b2lkICopQ09ORklHX1NZU19NUEM4NXh4X0REUl9BRERSOwogCQlicmVhazsKIAljYXNlIDE6Ci0JCWRkciA9ICh2b2lkICopQ0ZHX01QQzg1eHhfRERSMl9BRERSOworCQlkZHIgPSAodm9pZCAqKUNPTkZJR19TWVNfTVBDODV4eF9ERFIyX0FERFI7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXByaW50ZigiJXMgdW5leHBlY3RlZCBjdHJsX251bSA9ICV1XG4iLCBfX0ZVTkNUSU9OX18sIGN0cmxfbnVtKTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4NXh4L2V0aGVyX2ZjYy5jIGIvY3B1L21wYzg1eHgvZXRoZXJfZmNjLmMKaW5kZXggYmQ2MmFhYi4uMzJhZDQ2OSAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvZXRoZXJfZmNjLmMKKysrIGIvY3B1L21wYzg1eHgvZXRoZXJfZmNjLmMKQEAgLTc0LDggKzc0LDggQEAKIAlQUk9GRl9GQ0MxLAogCUNQTV9DUl9GQ0MxX1NCTE9DSywKIAlDUE1fQ1JfRkNDMV9QQUdFLAotCUNGR19DTVhGQ1JfTUFTSzEsCi0JQ0ZHX0NNWEZDUl9WQUxVRTEKKwlDT05GSUdfU1lTX0NNWEZDUl9NQVNLMSwKKwlDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTEKIH0sCiAjZW5kaWYKIApAQCAtODUsOCArODUsOCBAQAogCVBST0ZGX0ZDQzIsCiAJQ1BNX0NSX0ZDQzJfU0JMT0NLLAogCUNQTV9DUl9GQ0MyX1BBR0UsCi0JQ0ZHX0NNWEZDUl9NQVNLMiwKLQlDRkdfQ01YRkNSX1ZBTFVFMgorCUNPTkZJR19TWVNfQ01YRkNSX01BU0syLAorCUNPTkZJR19TWVNfQ01YRkNSX1ZBTFVFMgogfSwKICNlbmRpZgogCkBAIC05Niw4ICs5Niw4IEBACiAJUFJPRkZfRkNDMywKIAlDUE1fQ1JfRkNDM19TQkxPQ0ssCiAJQ1BNX0NSX0ZDQzNfUEFHRSwKLQlDRkdfQ01YRkNSX01BU0szLAotCUNGR19DTVhGQ1JfVkFMVUUzCisJQ09ORklHX1NZU19DTVhGQ1JfTUFTSzMsCisJQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUzCiB9LAogI2VuZGlmCiB9OwpAQCAtMjMwLDcgKzIzMCw3IEBACiB7CiAgICAgc3RydWN0IGV0aGVyX2ZjY19pbmZvX3MgKiBpbmZvID0gZGV2LT5wcml2OwogICAgIGludCBpOwotICAgIHZvbGF0aWxlIGNjc3JfY3BtX3QgKmNwbSA9IChjY3NyX2NwbV90ICopQ0ZHX01QQzg1eHhfQ1BNX0FERFI7CisgICAgdm9sYXRpbGUgY2Nzcl9jcG1fdCAqY3BtID0gKGNjc3JfY3BtX3QgKilDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFI7CiAgICAgdm9sYXRpbGUgY2Nzcl9jcG1fY3BfdCAqY3AgPSAmKGNwbS0+aW1fY3BtX2NwKTsKICAgICBmY2NfZW5ldF90ICpwcmFtX3B0cjsKICAgICB1bnNpZ25lZCBsb25nIG1lbV9hZGRyOwpAQCAtMjU3LDExICsyNTcsMTEgQEAKIAogICAgIC8qIDI4LjkgLSAoNSk6IEZQU01SOiBlbmFibGUgZnVsbCBkdXBsZXgsIHNlbGVjdCBDQ0lUVCBDUkMgZm9yIEV0aGVybmV0LE1JSSAqLwogICAgIGlmKGluZm8tPmV0aGVyX2luZGV4ID09IDApIHsKLQljcG0tPmltX2NwbV9mY2MxLmZwc21yID0gQ0ZHX0ZDQ19QU01SIHwgRkNDX1BTTVJfRU5DUkM7CisJY3BtLT5pbV9jcG1fZmNjMS5mcHNtciA9IENPTkZJR19TWVNfRkNDX1BTTVIgfCBGQ0NfUFNNUl9FTkNSQzsKICAgICB9IGVsc2UgaWYgKGluZm8tPmV0aGVyX2luZGV4ID09IDEpewotCWNwbS0+aW1fY3BtX2ZjYzIuZnBzbXIgPSBDRkdfRkNDX1BTTVIgfCBGQ0NfUFNNUl9FTkNSQzsKKwljcG0tPmltX2NwbV9mY2MyLmZwc21yID0gQ09ORklHX1NZU19GQ0NfUFNNUiB8IEZDQ19QU01SX0VOQ1JDOwogICAgIH0gZWxzZSBpZiAoaW5mby0+ZXRoZXJfaW5kZXggPT0gMil7Ci0JY3BtLT5pbV9jcG1fZmNjMy5mcHNtciA9IENGR19GQ0NfUFNNUiB8IEZDQ19QU01SX0VOQ1JDOworCWNwbS0+aW1fY3BtX2ZjYzMuZnBzbXIgPSBDT05GSUdfU1lTX0ZDQ19QU01SIHwgRkNDX1BTTVJfRU5DUkM7CiAgICAgfQogCiAgICAgLyogMjguOSAtICg2KTogRkRTUjogRXRoZXJuZXQgU3luICovCkBAIC0zMjEsMTQgKzMyMSwxNCBAQAogICAgIHByYW1fcHRyLT5mZW5fZ2VuZmNjLmZjY19tcmJsciA9IFBLVF9NQVhCTFJfU0laRTsgLyogMTUzNiAqLwogICAgIC8qIGxvY2FsYnVzIFNEUkFNIHNob3VsZCBiZSBwcmVmZXJyZWQgKi8KICAgICBwcmFtX3B0ci0+ZmVuX2dlbmZjYy5mY2NfcnN0YXRlID0gKENQTUZDUl9HQkwgfCBDUE1GQ1JfRUIgfAotCQkJCSAgICAgICBDRkdfQ1BNRkNSX1JBTVRZUEUpIDw8IDI0OworCQkJCSAgICAgICBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFKSA8PCAyNDsKICAgICBwcmFtX3B0ci0+ZmVuX2dlbmZjYy5mY2NfcmJhc2UgPSAodW5zaWduZWQgaW50KSgmcnR4LnJ4YmRbcnhJZHhdKTsKICAgICBwcmFtX3B0ci0+ZmVuX2dlbmZjYy5mY2NfcmJkc3RhdCA9IDA7CiAgICAgcHJhbV9wdHItPmZlbl9nZW5mY2MuZmNjX3JiZGxlbiA9IDA7CiAgICAgcHJhbV9wdHItPmZlbl9nZW5mY2MuZmNjX3JkcHRyID0gMDsKICAgICAvKiBsb2NhbGJ1cyBTRFJBTSBzaG91bGQgYmUgcHJlZmVycmVkICovCiAgICAgcHJhbV9wdHItPmZlbl9nZW5mY2MuZmNjX3RzdGF0ZSA9IChDUE1GQ1JfR0JMIHwgQ1BNRkNSX0VCIHwKLQkJCQkgICAgICAgQ0ZHX0NQTUZDUl9SQU1UWVBFKSA8PCAyNDsKKwkJCQkgICAgICAgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRSkgPDwgMjQ7CiAgICAgcHJhbV9wdHItPmZlbl9nZW5mY2MuZmNjX3RiYXNlID0gKHVuc2lnbmVkIGludCkoJnJ0eC50eGJkW3R4SWR4XSk7CiAgICAgcHJhbV9wdHItPmZlbl9nZW5mY2MuZmNjX3RiZHN0YXQgPSAwOwogICAgIHByYW1fcHRyLT5mZW5fZ2VuZmNjLmZjY190YmRsZW4gPSAwOwpAQCAtNDI2LDcgKzQyNiw3IEBACiBzdGF0aWMgdm9pZCBmZWNfaGFsdChzdHJ1Y3QgZXRoX2RldmljZSogZGV2KQogewogICAgIHN0cnVjdCBldGhlcl9mY2NfaW5mb19zICogaW5mbyA9IGRldi0+cHJpdjsKLSAgICB2b2xhdGlsZSBjY3NyX2NwbV90ICpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNGR19NUEM4NXh4X0NQTV9BRERSOworICAgIHZvbGF0aWxlIGNjc3JfY3BtX3QgKmNwbSA9IChjY3NyX2NwbV90ICopQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSOwogCiAgICAgLyogd3JpdGUgR0ZNUjogZGlzYWJsZSB0eC9yeCAqLwogICAgIGlmKGluZm8tPmV0aGVyX2luZGV4ID09IDApIHsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4NXh4L2ZkdC5jIGIvY3B1L21wYzg1eHgvZmR0LmMKaW5kZXggMDM3YTYwZi4uM2M4ZmJkOCAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvZmR0LmMKKysrIGIvY3B1L21wYzg1eHgvZmR0LmMKQEAgLTgzLDcgKzgzLDcgQEAKIC8qIHJldHVybiBzaXplIGluIGtpbG9ieXRlcyAqLwogc3RhdGljIGlubGluZSB1MzIgbDJjYWNoZV9zaXplKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9sMmNhY2hlX3QgKmwyY2FjaGUgPSAodm9pZCAqKUNGR19NUEM4NXh4X0wyX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9sMmNhY2hlX3QgKmwyY2FjaGUgPSAodm9pZCAqKUNPTkZJR19TWVNfTVBDODV4eF9MMl9BRERSOwogCXZvbGF0aWxlIHUzMiBsMnNpel9maWVsZCA9IChsMmNhY2hlLT5sMmN0bCA+PiAyOCkgJiAweDM7CiAJdTMyIHZlciA9IFNWUl9TT0NfVkVSKGdldF9zdnIoKSk7CiAKQEAgLTIyNCw5ICsyMjQsOSBAQAogCWZ0X3FlX3NldHVwKGJsb2IpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfTlMxNjU1MAorI2lmZGVmIENPTkZJR19TWVNfTlMxNjU1MAogCWRvX2ZpeHVwX2J5X2NvbXBhdF91MzIoYmxvYiwgIm5zMTY1NTAiLAotCQkiY2xvY2stZnJlcXVlbmN5IiwgQ0ZHX05TMTY1NTBfQ0xLLCAxKTsKKwkJImNsb2NrLWZyZXF1ZW5jeSIsIENPTkZJR19TWVNfTlMxNjU1MF9DTEssIDEpOwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfQ1BNMgpkaWZmIC0tZ2l0IGEvY3B1L21wYzg1eHgvaW50ZXJydXB0cy5jIGIvY3B1L21wYzg1eHgvaW50ZXJydXB0cy5jCmluZGV4IGQ3MDJjYTYuLjRlZjgzOTUgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4NXh4L2ludGVycnVwdHMuYworKysgYi9jcHUvbXBjODV4eC9pbnRlcnJ1cHRzLmMKQEAgLTM0LDE0ICszNCwxNCBAQAogCiBpbnQgaW50ZXJydXB0X2luaXRfY3B1KHVuc2lnbmVkIGxvbmcgKmRlY3JlbWVudGVyX2NvdW50KQogewotCXZvbGF0aWxlIGNjc3JfcGljX3QgKnBpYyA9ICh2b2lkICopKENGR19NUEM4NXh4X1BJQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX3BpY190ICpwaWMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfUElDX0FERFIpOwogCiAJcGljLT5nY3IgPSBNUEM4NXh4X1BJQ0dDUl9SU1Q7CiAJd2hpbGUgKHBpYy0+Z2NyICYgTVBDODV4eF9QSUNHQ1JfUlNUKQogCQk7CiAJcGljLT5nY3IgPSBNUEM4NXh4X1BJQ0dDUl9NOwogCi0JKmRlY3JlbWVudGVyX2NvdW50ID0gZ2V0X3RiY2xrKCkgLyBDRkdfSFo7CisJKmRlY3JlbWVudGVyX2NvdW50ID0gZ2V0X3RiY2xrKCkgLyBDT05GSUdfU1lTX0haOwogCiAJLyogUElFIGlzIHNhbWUgYXMgRElFLCBkZWMgaW50ZXJydXB0IGVuYWJsZSAqLwogCW10c3ByKFNQUk5fVENSLCBUQ1JfUElFKTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4NXh4L21wLmMgYi9jcHUvbXBjODV4eC9tcC5jCmluZGV4IDRlMDljOWMuLjMzMzhjMWEgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4NXh4L21wLmMKKysrIGIvY3B1L21wYzg1eHgvbXAuYwpAQCAtMzYsNyArMzYsNyBAQAogCiBpbnQgY3B1X3Jlc2V0KGludCBucikKIHsKLQl2b2xhdGlsZSBjY3NyX3BpY190ICpwaWMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9QSUNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9waWNfdCAqcGljID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X1BJQ19BRERSKTsKIAlvdXRfYmUzMigmcGljLT5waXIsIDEgPDwgbnIpOwogCSh2b2lkKWluX2JlMzIoJnBpYy0+cGlyKTsKIAlvdXRfYmUzMigmcGljLT5waXIsIDB4MCk7CkBAIC04Nyw3ICs4Nyw3IEBACiAJCXJldHVybiAxOwogCX0KIAotI2lmZGVmIENGR182NEJJVF9TVFJUT1VMCisjaWZkZWYgQ09ORklHX1NZU182NEJJVF9TVFJUT1VMCiAJYm9vdF9hZGRyID0gc2ltcGxlX3N0cnRvdWxsKGFyZ3ZbMF0sIE5VTEwsIDE2KTsKICNlbHNlCiAJYm9vdF9hZGRyID0gc2ltcGxlX3N0cnRvdWwoYXJndlswXSwgTlVMTCwgMTYpOwpAQCAtMTI5LDkgKzEyOSw5IEBACiAJdTMyIHVwLCBjcHVfdXBfbWFzaywgd2hvYW1pOwogCXUzMiAqdGFibGUgPSAodTMyICopZ2V0X3NwaW5fYWRkcigpOwogCXZvbGF0aWxlIHUzMiBicGNyOwotCXZvbGF0aWxlIGNjc3JfbG9jYWxfZWNtX3QgKmVjbSA9ICh2b2lkICopKENGR19NUEM4NXh4X0VDTV9BRERSKTsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOwotCXZvbGF0aWxlIGNjc3JfcGljX3QgKnBpYyA9ICh2b2lkICopKENGR19NUEM4NXh4X1BJQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xvY2FsX2VjbV90ICplY20gPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfRUNNX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfcGljX3QgKnBpYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9QSUNfQUREUik7CiAJdTMyIGRldmRpc3I7CiAJaW50IHRpbWVvdXQgPSAxMDsKIApkaWZmIC0tZ2l0IGEvY3B1L21wYzg1eHgvbXBjODUzNl9zZXJkZXMuYyBiL2NwdS9tcGM4NXh4L21wYzg1MzZfc2VyZGVzLmMKaW5kZXggYWUwOTFlNi4uZDlhYzQ2NiAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvbXBjODUzNl9zZXJkZXMuYworKysgYi9jcHUvbXBjODV4eC9tcGM4NTM2X3NlcmRlcy5jCkBAIC01NCw4ICs1NCw4IEBACiAKIHZvaWQgZnNsX3NlcmRlc19pbml0KHZvaWQpCiB7Ci0Jdm9pZCAqZ3V0cyA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7Ci0Jdm9pZCAqc2QgPSAodm9pZCAqKUNGR19NUEM4NXh4X1NFUkRFUzJfQUREUjsKKwl2b2lkICpndXRzID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CisJdm9pZCAqc2QgPSAodm9pZCAqKUNPTkZJR19TWVNfTVBDODV4eF9TRVJERVMyX0FERFI7CiAJdTMyIHBvcmRldnNyID0gaW5fYmUzMihndXRzICsgR1VUU19QT1JERVZTUl9PRkZTKTsKIAl1MzIgc3JkczJfaW9fc2VsOwogCXUzMiB0bXA7CmRpZmYgLS1naXQgYS9jcHUvbXBjODV4eC9wY2kuYyBiL2NwdS9tcGM4NXh4L3BjaS5jCmluZGV4IGZkYzRjODMuLjExMmYxOGMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4NXh4L3BjaS5jCisrKyBiL2NwdS9tcGM4NXh4L3BjaS5jCkBAIC0zOSwxMSArMzksMTEgQEAKIAl1MTYgcmVnMTY7CiAJdTMyIGRldjsKIAotCXZvbGF0aWxlIGNjc3JfcGNpeF90ICpwY2l4ID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfUENJWF9BRERSKTsKKwl2b2xhdGlsZSBjY3NyX3BjaXhfdCAqcGNpeCA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9QQ0lYX0FERFIpOwogI2lmZGVmIENPTkZJR19NUEM4NVhYX1BDSTIKLQl2b2xhdGlsZSBjY3NyX3BjaXhfdCAqcGNpeDIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9QQ0lYMl9BRERSKTsKKwl2b2xhdGlsZSBjY3NyX3BjaXhfdCAqcGNpeDIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfUENJWDJfQUREUik7CiAjZW5kaWYKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqIGhvc2U7CiAKIAlwY2lfaG9zZSA9IGJvYXJkX2hvc2U7CkBAIC01NCw4ICs1NCw4IEBACiAJaG9zZS0+bGFzdF9idXNubyA9IDB4ZmY7CiAKIAlwY2lfc2V0dXBfaW5kaXJlY3QoaG9zZSwKLQkJCSAgIChDRkdfSU1NUisweDgwMDApLAotCQkJICAgKENGR19JTU1SKzB4ODAwNCkpOworCQkJICAgKENPTkZJR19TWVNfSU1NUisweDgwMDApLAorCQkJICAgKENPTkZJR19TWVNfSU1NUisweDgwMDQpKTsKIAogCS8qCiAJICogSG9zZSBzY2FuLgpAQCAtODAsMTkgKzgwLDE5IEBACiAJCXBjaV9ob3NlX3dyaXRlX2NvbmZpZ193b3JkKGhvc2UsIGRldiwgUENJWF9DT01NQU5ELCByZWcxNik7CiAJfQogCi0JcGNpeC0+cG90YXIxICAgPSAoQ0ZHX1BDSTFfTUVNX0JBU0UgPj4gMTIpICYgMHgwMDBmZmZmZjsKKwlwY2l4LT5wb3RhcjEgICA9IChDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UgPj4gMTIpICYgMHgwMDBmZmZmZjsKIAlwY2l4LT5wb3RlYXIxICA9IDB4MDAwMDAwMDA7Ci0JcGNpeC0+cG93YmFyMSAgPSAoQ0ZHX1BDSTFfTUVNX1BIWVMgPj4gMTIpICYgMHgwMDBmZmZmZjsKKwlwY2l4LT5wb3diYXIxICA9IChDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgPj4gMTIpICYgMHgwMDBmZmZmZjsKIAlwY2l4LT5wb3diZWFyMSA9IDB4MDAwMDAwMDA7CiAJcGNpeC0+cG93YXIxID0gKFBPV0FSX0VOIHwgUE9XQVJfTUVNX1JFQUQgfAotCQkJUE9XQVJfTUVNX1dSSVRFIHwgKF9faWxvZzIoQ0ZHX1BDSTFfTUVNX1NJWkUpIC0gMSkpOworCQkJUE9XQVJfTUVNX1dSSVRFIHwgKF9faWxvZzIoQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFKSAtIDEpKTsKIAotCXBjaXgtPnBvdGFyMiAgPSAoQ0ZHX1BDSTFfSU9fQkFTRSA+PiAxMikgJiAweDAwMGZmZmZmOworCXBjaXgtPnBvdGFyMiAgPSAoQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UgPj4gMTIpICYgMHgwMDBmZmZmZjsKIAlwY2l4LT5wb3RlYXIyICA9IDB4MDAwMDAwMDA7Ci0JcGNpeC0+cG93YmFyMiAgPSAoQ0ZHX1BDSTFfSU9fUEhZUyA+PiAxMikgJiAweDAwMGZmZmZmOworCXBjaXgtPnBvd2JhcjIgID0gKENPTkZJR19TWVNfUENJMV9JT19QSFlTID4+IDEyKSAmIDB4MDAwZmZmZmY7CiAJcGNpeC0+cG93YmVhcjIgPSAweDAwMDAwMDAwOwogCXBjaXgtPnBvd2FyMiA9IChQT1dBUl9FTiB8IFBPV0FSX0lPX1JFQUQgfAotCQkJUE9XQVJfSU9fV1JJVEUgfCAoX19pbG9nMihDRkdfUENJMV9JT19TSVpFKSAtIDEpKTsKKwkJCVBPV0FSX0lPX1dSSVRFIHwgKF9faWxvZzIoQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUpIC0gMSkpOwogCiAJcGNpeC0+cGl0YXIxID0gMHgwMDAwMDAwMDsKIAlwY2l4LT5waXdiYXIxID0gMHgwMDAwMDAwMDsKQEAgLTEwNSwxNSArMTA1LDE1IEBACiAJcGNpeC0+cGl3YXIzID0gMDsKIAogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkgICAgICAgQ0ZHX1BDSTFfTUVNX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMV9NRU1fUEhZUywKLQkJICAgICAgIENGR19QQ0kxX01FTV9TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCSAgICAgICBDRkdfUENJMV9JT19CQVNFLAotCQkgICAgICAgQ0ZHX1BDSTFfSU9fUEhZUywKLQkJICAgICAgIENGR19QQ0kxX0lPX1NJWkUsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUsCiAJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAogCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDI7CkBAIC0xNTIsOCArMTUyLDggQEAKIAlob3NlLT5sYXN0X2J1c25vID0gMHhmZjsKIAogCXBjaV9zZXR1cF9pbmRpcmVjdChob3NlLAotCQkJICAgKENGR19JTU1SKzB4OTAwMCksCi0JCQkgICAoQ0ZHX0lNTVIrMHg5MDA0KSk7CisJCQkgICAoQ09ORklHX1NZU19JTU1SKzB4OTAwMCksCisJCQkgICAoQ09ORklHX1NZU19JTU1SKzB4OTAwNCkpOwogCiAJZGV2ID0gUENJX0JERihob3NlLT5maXJzdF9idXNubywgMCwgMCk7CiAJcGNpX2hvc2VfcmVhZF9jb25maWdfd29yZCAoaG9zZSwgZGV2LCBQQ0lfQ09NTUFORCwgJnJlZzE2KTsKQEAgLTE2NSwxOSArMTY1LDE5IEBACiAJICovCiAJcGNpX2hvc2Vfd3JpdGVfY29uZmlnX3dvcmQoaG9zZSwgZGV2LCBQQ0lfU1RBVFVTLCAweGZmZmYpOwogCi0JcGNpeDItPnBvdGFyMSAgID0gKENGR19QQ0kyX01FTV9CQVNFID4+IDEyKSAmIDB4MDAwZmZmZmY7CisJcGNpeDItPnBvdGFyMSAgID0gKENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSA+PiAxMikgJiAweDAwMGZmZmZmOwogCXBjaXgyLT5wb3RlYXIxICA9IDB4MDAwMDAwMDA7Ci0JcGNpeDItPnBvd2JhcjEgID0gKENGR19QQ0kyX01FTV9QSFlTID4+IDEyKSAmIDB4MDAwZmZmZmY7CisJcGNpeDItPnBvd2JhcjEgID0gKENPTkZJR19TWVNfUENJMl9NRU1fUEhZUyA+PiAxMikgJiAweDAwMGZmZmZmOwogCXBjaXgyLT5wb3diZWFyMSA9IDB4MDAwMDAwMDA7CiAJcGNpeDItPnBvd2FyMSA9IChQT1dBUl9FTiB8IFBPV0FSX01FTV9SRUFEIHwKLQkJCVBPV0FSX01FTV9XUklURSB8IChfX2lsb2cyKENGR19QQ0kyX01FTV9TSVpFKSAtIDEpKTsKKwkJCVBPV0FSX01FTV9XUklURSB8IChfX2lsb2cyKENPTkZJR19TWVNfUENJMl9NRU1fU0laRSkgLSAxKSk7CiAKLQlwY2l4Mi0+cG90YXIyICA9IChDRkdfUENJMl9JT19CQVNFID4+IDEyKSAmIDB4MDAwZmZmZmY7CisJcGNpeDItPnBvdGFyMiAgPSAoQ09ORklHX1NZU19QQ0kyX0lPX0JBU0UgPj4gMTIpICYgMHgwMDBmZmZmZjsKIAlwY2l4Mi0+cG90ZWFyMiAgPSAweDAwMDAwMDAwOwotCXBjaXgyLT5wb3diYXIyICA9IChDRkdfUENJMl9JT19QSFlTID4+IDEyKSAmIDB4MDAwZmZmZmY7CisJcGNpeDItPnBvd2JhcjIgID0gKENPTkZJR19TWVNfUENJMl9JT19QSFlTID4+IDEyKSAmIDB4MDAwZmZmZmY7CiAJcGNpeDItPnBvd2JlYXIyID0gMHgwMDAwMDAwMDsKIAlwY2l4Mi0+cG93YXIyID0gKFBPV0FSX0VOIHwgUE9XQVJfSU9fUkVBRCB8Ci0JCQlQT1dBUl9JT19XUklURSB8IChfX2lsb2cyKENGR19QQ0kyX0lPX1NJWkUpIC0gMSkpOworCQkJUE9XQVJfSU9fV1JJVEUgfCAoX19pbG9nMihDT05GSUdfU1lTX1BDSTJfSU9fU0laRSkgLSAxKSk7CiAKIAlwY2l4Mi0+cGl0YXIxID0gMHgwMDAwMDAwMDsKIAlwY2l4Mi0+cGl3YmFyMSA9IDB4MDAwMDAwMDA7CkBAIC0xOTAsMTUgKzE5MCwxNSBAQAogCXBjaXgyLT5waXdhcjMgPSAwOwogCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCSAgICAgICBDRkdfUENJMl9NRU1fQkFTRSwKLQkJICAgICAgIENGR19QQ0kyX01FTV9QSFlTLAotCQkgICAgICAgQ0ZHX1BDSTJfTUVNX1NJWkUsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfTUVNX1NJWkUsCiAJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAKIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJICAgICAgIENGR19QQ0kyX0lPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMl9JT19QSFlTLAotCQkgICAgICAgQ0ZHX1BDSTJfSU9fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfSU9fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCiAJaG9zZS0+cmVnaW9uX2NvdW50ID0gMjsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4NXh4L3FlX2lvLmMgYi9jcHUvbXBjODV4eC9xZV9pby5jCmluZGV4IDIxZWEzOGIuLjcyYTI5YjcgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4NXh4L3FlX2lvLmMKKysrIGIvY3B1L21wYzg1eHgvcWVfaW8uYwpAQCAtMzQsNyArMzQsNyBAQAogCXUzMgkJCXBpbl8yYml0X2Fzc2lnbjsKIAl1MzIJCQlwaW5fMWJpdF9tYXNrOwogCXUzMgkJCXRtcF92YWw7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdAkqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90CSpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAl2b2xhdGlsZSBwYXJfaW9fdAkqcGFyX2lvID0gKHZvbGF0aWxlIHBhcl9pb190ICopCiAJCQkJCQkmKGd1ci0+cWVfcGFyX2lvKTsKIApkaWZmIC0tZ2l0IGEvY3B1L21wYzg1eHgvc2VyaWFsX3NjYy5jIGIvY3B1L21wYzg1eHgvc2VyaWFsX3NjYy5jCmluZGV4IDdlZTNjYzguLjA1ZmI4MDggMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4NXh4L3NlcmlhbF9zY2MuYworKysgYi9jcHUvbXBjODV4eC9zZXJpYWxfc2NjLmMKQEAgLTg4LDcgKzg4LDcgQEAKIAogaW50IHNlcmlhbF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfY3BtX3QgKmNwbSA9IChjY3NyX2NwbV90ICopQ0ZHX01QQzg1eHhfQ1BNX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9jcG1fdCAqY3BtID0gKGNjc3JfY3BtX3QgKilDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFI7CiAJdm9sYXRpbGUgY2Nzcl9jcG1fc2NjX3QgKnNwOwogCXZvbGF0aWxlIHNjY191YXJ0X3QgKnVwOwogCXZvbGF0aWxlIGNiZF90ICp0YmRmLCAqcmJkZjsKQEAgLTIwMSw3ICsyMDEsNyBAQAogewogCXZvbGF0aWxlIHNjY191YXJ0X3QJKnVwOwogCXZvbGF0aWxlIGNiZF90CQkqdGJkZjsKLQl2b2xhdGlsZSBjY3NyX2NwbV90CSpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNGR19NUEM4NXh4X0NQTV9BRERSOworCXZvbGF0aWxlIGNjc3JfY3BtX3QJKmNwbSA9IChjY3NyX2NwbV90ICopQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSOwogCiAJaWYgKGMgPT0gJ1xuJykKIAkJc2VyaWFsX3B1dGMgKCdccicpOwpAQCAtMjM0LDcgKzIzNCw3IEBACiB7CiAJdm9sYXRpbGUgY2JkX3QJCSpyYmRmOwogCXZvbGF0aWxlIHNjY191YXJ0X3QJKnVwOwotCXZvbGF0aWxlIGNjc3JfY3BtX3QJKmNwbSA9IChjY3NyX2NwbV90ICopQ0ZHX01QQzg1eHhfQ1BNX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9jcG1fdAkqY3BtID0gKGNjc3JfY3BtX3QgKilDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFI7CiAJdW5zaWduZWQgY2hhcgkJYzsKIAogCXVwID0gKHNjY191YXJ0X3QgKikmKGNwbS0+aW1fZHByYW1iYXNlW1BST0ZGX1NDQ10pOwpAQCAtMjU4LDcgKzI1OCw3IEBACiB7CiAJdm9sYXRpbGUgY2JkX3QJCSpyYmRmOwogCXZvbGF0aWxlIHNjY191YXJ0X3QJKnVwOwotCXZvbGF0aWxlIGNjc3JfY3BtX3QJKmNwbSA9IChjY3NyX2NwbV90ICopQ0ZHX01QQzg1eHhfQ1BNX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9jcG1fdAkqY3BtID0gKGNjc3JfY3BtX3QgKilDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFI7CiAKIAl1cCA9IChzY2NfdWFydF90ICopJihjcG0tPmltX2RwcmFtYmFzZVtQUk9GRl9TQ0NdKTsKIAlyYmRmID0gKGNiZF90ICopJihjcG0tPmltX2RwcmFtYmFzZVt1cC0+c2NjX2dlbnNjYy5zY2NfcmJhc2VdKTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4NXh4L3NwZWVkLmMgYi9jcHUvbXBjODV4eC9zcGVlZC5jCmluZGV4IDcwZGZhZDAuLmQ5ZjlhOGMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4NXh4L3NwZWVkLmMKKysrIGIvY3B1L21wYzg1eHgvc3BlZWQuYwpAQCAtMzUsNyArMzUsNyBAQAogCiB2b2lkIGdldF9zeXNfaW5mbyAoc3lzX2luZm9fdCAqIHN5c0luZm8pCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAl1aW50IHBsYXRfcmF0aW8sZTUwMF9yYXRpbyxoYWxmX2ZyZXFTeXN0ZW1CdXM7CiAKIAlwbGF0X3JhdGlvID0gKGd1ci0+cG9ycGxsc3IpICYgMHgwMDAwMDAzZTsKQEAgLTY3LDEwICs2NywxMCBAQAogewogCXN5c19pbmZvX3Qgc3lzX2luZm87CiAjaWZkZWYgQ09ORklHX01QQzg1NDQKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKSBDRkdfTVBDODV4eF9HVVRTX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikgQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUjsKICNlbmRpZgogI2lmIGRlZmluZWQoQ09ORklHX0NQTTIpCi0Jdm9sYXRpbGUgY2Nzcl9jcG1fdCAqY3BtID0gKGNjc3JfY3BtX3QgKilDRkdfTVBDODV4eF9DUE1fQUREUjsKKwl2b2xhdGlsZSBjY3NyX2NwbV90ICpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUjsKIAl1aW50IHNjY3IsIGRmYnJnOwogCiAJLyogc2V0IFZDTyA9IDQgKiBCUkcgKi8KZGlmZiAtLWdpdCBhL2NwdS9tcGM4NXh4L3N0YXJ0LlMgYi9jcHUvbXBjODV4eC9zdGFydC5TCmluZGV4IDEwZmU5MzYuLjI1ZDAzOTAgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4NXh4L3N0YXJ0LlMKKysrIGIvY3B1L21wYzg1eHgvc3RhcnQuUwpAQCAtMTcyLDEyICsxNzIsMTIgQEAKIAltdHNwcglCVUNTUixyMAogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19JTklUX0RCQ1IpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lOSVRfREJDUikKIAlsaXMJcjEsMHhmZmZmCiAJb3JpCXIxLHIxLDB4ZmZmZgogCW10c3ByCURCU1IscjEJCQkvKiBDbGVhciBhbGwgc3RhdHVzIGJpdHMgKi8KLQlsaXMJcjAsQ0ZHX0lOSVRfREJDUkBoCS8qIERCQ1IwW0lETV0gbXVzdCBiZSBzZXQgKi8KLQlvcmkJcjAscjAsQ0ZHX0lOSVRfREJDUkBsCisJbGlzCXIwLENPTkZJR19TWVNfSU5JVF9EQkNSQGgJLyogREJDUjBbSURNXSBtdXN0IGJlIHNldCAqLworCW9yaQlyMCxyMCxDT05GSUdfU1lTX0lOSVRfREJDUkBsCiAJbXRzcHIJREJDUjAscjAKICNlbmRpZgogCkBAIC0yMTAsMTEgKzIxMCwxMSBAQAogCWxpcyAgICAgcjcsRlNMX0JPT0tFX01BUzEoMSwgMSwgMCwgMSwgQk9PS0VfUEFHRVNaXzE2SylAaAogCW9yaSAgICAgcjcscjcsRlNMX0JPT0tFX01BUzEoMSwgMSwgMCwgMSwgQk9PS0VfUEFHRVNaXzE2SylAbAogCi0JbGlzICAgICByOCxGU0xfQk9PS0VfTUFTMihDRkdfSU5JVF9SQU1fQUREUiwgMClAaAotCW9yaSAgICAgcjgscjgsRlNMX0JPT0tFX01BUzIoQ0ZHX0lOSVRfUkFNX0FERFIsIDApQGwKKwlsaXMgICAgIHI4LEZTTF9CT09LRV9NQVMyKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgMClAaAorCW9yaSAgICAgcjgscjgsRlNMX0JPT0tFX01BUzIoQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCAwKUBsCiAKLQlsaXMgICAgIHI5LEZTTF9CT09LRV9NQVMzKENGR19JTklUX1JBTV9BRERSLCAwLCAoTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IpKUBoCi0Jb3JpICAgICByOSxyOSxGU0xfQk9PS0VfTUFTMyhDRkdfSU5JVF9SQU1fQUREUiwgMCwgKE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSKSlAbAorCWxpcyAgICAgcjksRlNMX0JPT0tFX01BUzMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCAwLCAoTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IpKUBoCisJb3JpICAgICByOSxyOSxGU0xfQk9PS0VfTUFTMyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIDAsIChNQVMzX1NYfE1BUzNfU1d8TUFTM19TUikpQGwKIAogCW10c3ByICAgTUFTMCxyNgogCW10c3ByICAgTUFTMSxyNwpAQCAtMjM4LDggKzIzOCw4IEBACiAKIAkvKiBBbGxvY2F0ZSBJbml0aWFsIFJBTSBpbiBkYXRhIGNhY2hlLgogCSAqLwotCWxpcwlyMyxDRkdfSU5JVF9SQU1fQUREUkBoCi0Jb3JpCXIzLHIzLENGR19JTklUX1JBTV9BRERSQGwKKwlsaXMJcjMsQ09ORklHX1NZU19JTklUX1JBTV9BRERSQGgKKwlvcmkJcjMscjMsQ09ORklHX1NZU19JTklUX1JBTV9BRERSQGwKIAltZnNwcglyMiwgTDFDRkcwCiAJYW5kaS4JcjIsIHIyLCAweDFmZgogCS8qIGNhY2hlIHNpemUgKiAxMDI0IC8gKDIgKiBMMSBsaW5lIHNpemUpICovCkBAIC0yNDksMTcgKzI0OSwxNyBAQAogMToKIAlkY2J6CXIwLHIzCiAJZGNidGxzCTAscjAscjMKLQlhZGRpCXIzLHIzLENGR19DQUNIRUxJTkVfU0laRQorCWFkZGkJcjMscjMsQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQogCWJkbnoJMWIKIAogCS8qIEp1bXAgb3V0IHRoZSBsYXN0IDRLIHBhZ2UgYW5kIGNvbnRpbnVlIHRvICdub3JtYWwnIHN0YXJ0ICovCi0jaWZkZWYgQ0ZHX1JBTUJPT1QKKyNpZmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAliCV9zdGFydF9jb250CiAjZWxzZQogCS8qIENhbGN1bGF0ZSBhYnNvbHV0ZSBhZGRyZXNzIGluIEZMQVNIIGFuZCBqdW1wIHRoZXJlCQkqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCWxpcwlyMyxDRkdfTU9OSVRPUl9CQVNFQGgKLQlvcmkJcjMscjMsQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXIzLENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgKKwlvcmkJcjMscjMsQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWFkZGkJcjMscjMsX3N0YXJ0X2NvbnQgLSBfc3RhcnQgKyBfU1RBUlRfT0ZGU0VUCiAJbXRscglyMwogCWJscgpAQCAtMjc5LDggKzI3OSw4IEBACiAJLmdsb2JsCV9zdGFydF9jb250CiBfc3RhcnRfY29udDoKIAkvKiBTZXR1cCB0aGUgc3RhY2sgaW4gaW5pdGlhbCBSQU0sY291bGQgYmUgTDItYXMtU1JBTSBvciBMMSBkY2FjaGUqLwotCWxpcwlyMSxDRkdfSU5JVF9SQU1fQUREUkBoCi0Jb3JpCXIxLHIxLENGR19JTklUX1NQX09GRlNFVEBsCisJbGlzCXIxLENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBoCisJb3JpCXIxLHIxLENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVRAbAogCiAJbGkJcjAsMAogCXN0d3UJcjAsLTQocjEpCkBAIC03NzgsMTYgKzc3OCwxNiBAQAogCW1yCXIxMCxyNQkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MJKi8KIAogCW1yCXIzLHI1CQkJCS8qIERlc3RpbmF0aW9uIEFkZHJlc3MJKi8KLQlsaXMJcjQsQ0ZHX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCi0Jb3JpCXI0LHI0LENGR19NT05JVE9SX0JBU0VAbAorCWxpcwlyNCxDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCisJb3JpCXI0LHI0LENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGwKIAlsd3oJcjUsR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LHI1LHI0Ci0JbGkJcjYsQ0ZHX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KKwlsaQlyNixDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KIAogCS8qCiAJICogRml4IEdPVCBwb2ludGVyOgogCSAqCi0JICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDRkdfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKKwkgKiBOZXcgR09ULVBUUiA9IChvbGQgR09ULVBUUiAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKIAkgKgogCSAqIE9mZnNldDoKIAkgKi8KQEAgLTk5NiwyMCArOTk2LDIwIEBACiAuZ2xvYmwgdW5sb2NrX3JhbV9pbl9jYWNoZQogdW5sb2NrX3JhbV9pbl9jYWNoZToKIAkvKiBpbnZhbGlkYXRlIHRoZSBJTklUX1JBTSBzZWN0aW9uICovCi0JbGlzCXIzLChDRkdfSU5JVF9SQU1fQUREUiAmIH4zMSlAaAotCW9yaQlyMyxyMywoQ0ZHX0lOSVRfUkFNX0FERFIgJiB+MzEpQGwKKwlsaXMJcjMsKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIH4zMSlAaAorCW9yaQlyMyxyMywoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICYgfjMxKUBsCiAJbWZzcHIJcjQsTDFDRkcwCiAJYW5kaS4JcjQscjQsMHgxZmYKIAlzbHdpCXI0LHI0LCgxMCAtIDEgLSBMMV9DQUNIRV9TSElGVCkKIAltdGN0cglyNAogMToJZGNiaQlyMCxyMwotCWFkZGkJcjMscjMsQ0ZHX0NBQ0hFTElORV9TSVpFCisJYWRkaQlyMyxyMyxDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCiAJYmRuegkxYgogCXN5bmMKIAogCS8qIEludmFsaWRhdGUgdGhlIFRMQiBlbnRyaWVzIGZvciB0aGUgY2FjaGUgKi8KLQlsaXMJcjMsQ0ZHX0lOSVRfUkFNX0FERFJAaAotCW9yaQlyMyxyMyxDRkdfSU5JVF9SQU1fQUREUkBsCisJbGlzCXIzLENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBoCisJb3JpCXIzLHIzLENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBsCiAJdGxiaXZheAkwLHIzCiAJYWRkaQlyMyxyMywweDEwMDAKIAl0bGJpdmF4CTAscjMKZGlmZiAtLWdpdCBhL2NwdS9tcGM4NXh4L3RsYi5jIGIvY3B1L21wYzg1eHgvdGxiLmMKaW5kZXggN2NlN2ExNC4uYTJkMTZhZSAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvdGxiLmMKKysrIGIvY3B1L21wYzg1eHgvdGxiLmMKQEAgLTEzOCw3ICsxMzgsNyBAQAogCSAqIFN0YXJ0aW5nIGF0IFRMQjEgOCwgdXNlIG5vIG1vcmUgdGhhbiA4IFRMQjEgZW50cmllcy4KIAkgKi8KIAlyYW1fdGxiX2luZGV4ID0gODsKLQlyYW1fdGxiX2FkZHJlc3MgPSAodW5zaWduZWQgaW50KUNGR19ERFJfU0RSQU1fQkFTRTsKKwlyYW1fdGxiX2FkZHJlc3MgPSAodW5zaWduZWQgaW50KUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0U7CiAJd2hpbGUgKHJhbV90bGJfYWRkcmVzcyA8IChtZW1zaXplX2luX21lZyAqIDEwMjQgKiAxMDI0KQogCSAgICAgICYmIHJhbV90bGJfaW5kZXggPCAxNikgewogCQlzZXRfdGxiKDEsIHJhbV90bGJfYWRkcmVzcywgcmFtX3RsYl9hZGRyZXNzLApkaWZmIC0tZ2l0IGEvY3B1L21wYzg1eHgvdHJhcHMuYyBiL2NwdS9tcGM4NXh4L3RyYXBzLmMKaW5kZXggMGVhYjY5NC4uMTA0NWNjMSAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvdHJhcHMuYworKysgYi9jcHUvbXBjODV4eC90cmFwcy5jCkBAIC0yOTAsNyArMjkwLDcgQEAKIHZvaWQKIEV4dEludEV4Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKLQl2b2xhdGlsZSBjY3NyX3BpY190ICpwaWMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9QSUNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9waWNfdCAqcGljID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X1BJQ19BRERSKTsKIAogCXVpbnQgdmVjdDsKIApkaWZmIC0tZ2l0IGEvY3B1L21wYzg2eHgvY2FjaGUuUyBiL2NwdS9tcGM4Nnh4L2NhY2hlLlMKaW5kZXggZGQzODgwNi4uMGJiMDU4YiAxMDA2NDQKLS0tIGEvY3B1L21wYzg2eHgvY2FjaGUuUworKysgYi9jcHUvbXBjODZ4eC9jYWNoZS5TCkBAIC0yNzksNyArMjc5LDcgQEAKIAltdHNwcglISUQwLCByNQkJLyogZW5hYmxlICsgaW52YWxpZGF0ZSAqLwogCW10c3ByCUhJRDAsIHIzCQkvKiBlbmFibGUgKi8KIAlzeW5jCi0jaWZkZWYgQ0ZHX0wyCisjaWZkZWYgQ09ORklHX1NZU19MMgogCW1mbHIJcjUKIAlibAlsMmNhY2hlX2VuYWJsZQkJLyogdXNlcyByMyBhbmQgcjQgKi8KIAlzeW5jCkBAIC0zMDUsNyArMzA1LDcgQEAKIAlhbmRjCXIzLCByMywgcjUJCS8qIG5vIGVuYWJsZSwgbm8gaW52YWxpZGF0ZSAqLwogCW10c3ByCUhJRDAsIHIzCiAJc3luYwotI2lmZGVmIENGR19MMgorI2lmZGVmIENPTkZJR19TWVNfTDIKIAlibAlsMmNhY2hlX2Rpc2FibGVfbm9fZmx1c2ggLyogdXNlcyByMyAqLwogI2VuZGlmCiAJbXRscglyNAkJCS8qIHJlc3RvcmUgbGluayByZWdpc3RlciAqLwpkaWZmIC0tZ2l0IGEvY3B1L21wYzg2eHgvY3B1LmMgYi9jcHUvbXBjODZ4eC9jcHUuYwppbmRleCAzYTc1YWY3Li40Y2FjZTk4IDEwMDY0NAotLS0gYS9jcHUvbXBjODZ4eC9jcHUuYworKysgYi9jcHUvbXBjODZ4eC9jcHUuYwpAQCAtNDEsNyArNDEsNyBAQAogCXVpbnQgbWFqb3IsIG1pbm9yOwogCXVpbnQgbGNycjsJCS8qIGxvY2FsIGJ1cyBjbG9jayByYXRpbyByZWdpc3RlciAqLwogCXVpbnQgY2xrZGl2OwkJLyogY2xvY2sgZGl2aWRlciBwb3J0aW9uIG9mIGxjcnIgKi8KLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICZpbW1hcC0+aW1fZ3VyOwogCiAJcHV0cygiRnJlZXNjYWxlIFBvd2VyUENcbiIpOwpAQCAtMTAwLDExICsxMDAsMTEgQEAKIAlwcmludGYoIk1QWDolNGx1IE1IeiwgIiwgc3lzaW5mby5mcmVxU3lzdGVtQnVzIC8gMTAwMDAwMCk7CiAJcHJpbnRmKCJERFI6JTRsdSBNSHosICIsIHN5c2luZm8uZnJlcVN5c3RlbUJ1cyAvIDIwMDAwMDApOwogCi0jaWYgZGVmaW5lZChDRkdfTEJDX0xDUlIpCi0JbGNyciA9IENGR19MQkNfTENSUjsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTEJDX0xDUlIpCisJbGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlI7CiAjZWxzZQogCXsKLQkJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwkJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICZpbW1hcC0+aW1fbGJjOwogCiAJCWxjcnIgPSBsYmMtPmxjcnI7CkBAIC0xNjEsMTYgKzE2MSwxNiBAQAogewogI2lmICFkZWZpbmVkKENPTkZJR19NUEM4NjQxSFBDTikgJiYgIWRlZmluZWQoQ09ORklHX01QQzg2MTBIUENEKQogCi0jaWZkZWYgQ0ZHX1JFU0VUX0FERFJFU1MKLQl1bG9uZyBhZGRyID0gQ0ZHX1JFU0VUX0FERFJFU1M7CisjaWZkZWYgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCisJdWxvbmcgYWRkciA9IENPTkZJR19TWVNfUkVTRVRfQUREUkVTUzsKICNlbHNlCiAJLyoKLQkgKiBub3RlOiB3aGVuIENGR19NT05JVE9SX0JBU0UgcG9pbnRzIHRvIGEgUkFNIGFkZHJlc3MsCi0JICogQ0ZHX01PTklUT1JfQkFTRSAtIHNpemVvZiAodWxvbmcpIGlzIHVzdWFsbHkgYSB2YWxpZAorCSAqIG5vdGU6IHdoZW4gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgcG9pbnRzIHRvIGEgUkFNIGFkZHJlc3MsCisJICogQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKSBpcyB1c3VhbGx5IGEgdmFsaWQKIAkgKiBhZGRyZXNzLiBCZXR0ZXIgcGljayBhbiBhZGRyZXNzIGtub3duIHRvIGJlIGludmFsaWQgb24geW91cgotCSAqIHN5c3RlbSBhbmQgYXNzaWduIGl0IHRvIENGR19SRVNFVF9BRERSRVNTLgorCSAqIHN5c3RlbSBhbmQgYXNzaWduIGl0IHRvIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUy4KIAkgKi8KLQl1bG9uZyBhZGRyID0gQ0ZHX01PTklUT1JfQkFTRSAtIHNpemVvZih1bG9uZyk7CisJdWxvbmcgYWRkciA9IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mKHVsb25nKTsKICNlbmRpZgogCiAJLyogZmx1c2ggYW5kIGRpc2FibGUgSS9EIGNhY2hlICovCkBAIC0yMTksNyArMjE5LDcgQEAKIAkvKgogCSAqIFRoaXMgYWN0dWFsbHkgZmVlZCB0aGUgaGFyZCBlbmFibGVkIHdhdGNoZG9nLgogCSAqLwotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNjc3Jfd2R0X3QgKndkdCA9ICZpbW1hcC0+aW1fd2R0OwogCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICZpbW1hcC0+aW1fZ3VyOwogCXUzMiB0bXAgPSBndXItPnBvcmRldnNyOwpAQCAtMjM3LDcgKzIzNyw3IEBACiB2b2lkCiBkbWFfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY2Nzcl9kbWFfdCAqZG1hID0gJmltbWFwLT5pbV9kbWE7CiAKIAlkbWEtPnNhdHIwID0gMHgwMDA0MDAwMDsKQEAgLTI0OCw3ICsyNDgsNyBAQAogdWludAogZG1hX2NoZWNrKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjY3NyX2RtYV90ICpkbWEgPSAmaW1tYXAtPmltX2RtYTsKIAl2b2xhdGlsZSB1aW50IHN0YXR1cyA9IGRtYS0+c3IwOwogCkBAIC0yNjYsNyArMjY2LDcgQEAKIGludAogZG1hX3hmZXIodm9pZCAqZGVzdCwgdWludCBjb3VudCwgdm9pZCAqc3JjKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY2Nzcl9kbWFfdCAqZG1hID0gJmltbWFwLT5pbV9kbWE7CiAKIAlkbWEtPmRhcjAgPSAodWludCkgZGVzdDsKQEAgLTI4OCw3ICsyODgsNyBAQAogICovCiB2b2lkIG1wYzg2eHhfcmVnaW5mbyh2b2lkKQogewotCWltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwlpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCWNjc3JfbGJjX3QgKmxiYyA9ICZpbW1hcC0+aW1fbGJjOwogCiAJcHJpbnRfYmF0cygpOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzg2eHgvY3B1X2luaXQuYyBiL2NwdS9tcGM4Nnh4L2NwdV9pbml0LmMKaW5kZXggMWZkYTNmZS4uNGFiODhmMCAxMDA2NDQKLS0tIGEvY3B1L21wYzg2eHgvY3B1X2luaXQuYworKysgYi9jcHUvbXBjODZ4eC9jcHVfaW5pdC5jCkBAIC00MywxMSArNDMsMTEgQEAKIAogdm9pZCBjcHVfaW5pdF9mKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9sYmM7CiAKIAkvKiBQb2ludGVyIGlzIHdyaXRhYmxlIHNpbmNlIHdlIGFsbG9jYXRlZCBhIHJlZ2lzdGVyIGZvciBpdCAqLwotCWdkID0gKGdkX3QgKikgKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0dCTF9EQVRBX09GRlNFVCk7CisJZ2QgPSAoZ2RfdCAqKSAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQpOwogCiAJLyogQ2xlYXIgaW5pdGlhbCBnbG9iYWwgZGF0YSAqLwogCW1lbXNldCAoKHZvaWQgKikgZ2QsIDAsIHNpemVvZiAoZ2RfdCkpOwpAQCAtNjEsNTIgKzYxLDUyIEBACiAJICogaGFzIGJlZW4gZGV0ZXJtaW5lZAogCSAqLwogCi0jaWYgZGVmaW5lZChDRkdfT1IwX1JFTUFQKQotCW1lbWN0bC0+b3IwID0gQ0ZHX09SMF9SRU1BUDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IwX1JFTUFQKQorCW1lbWN0bC0+b3IwID0gQ09ORklHX1NZU19PUjBfUkVNQVA7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19PUjFfUkVNQVApCi0JbWVtY3RsLT5vcjEgPSBDRkdfT1IxX1JFTUFQOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjFfUkVNQVApCisJbWVtY3RsLT5vcjEgPSBDT05GSUdfU1lTX09SMV9SRU1BUDsKICNlbmRpZgogCiAJLyogbm93IHJlc3RyaWN0IHRvIHByZWxpbWluYXJ5IHJhbmdlICovCi0jaWYgZGVmaW5lZChDRkdfQlIwX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1IwX1BSRUxJTSkKLQltZW1jdGwtPmJyMCA9IENGR19CUjBfUFJFTElNOwotCW1lbWN0bC0+b3IwID0gQ0ZHX09SMF9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSMF9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjBfUFJFTElNKQorCW1lbWN0bC0+YnIwID0gQ09ORklHX1NZU19CUjBfUFJFTElNOworCW1lbWN0bC0+b3IwID0gQ09ORklHX1NZU19PUjBfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjFfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjFfUFJFTElNKQotCW1lbWN0bC0+b3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JbWVtY3RsLT5icjEgPSBDRkdfQlIxX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlIxX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SMV9QUkVMSU0pCisJbWVtY3RsLT5vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5icjEgPSBDT05GSUdfU1lTX0JSMV9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSMl9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SMl9QUkVMSU0pCi0JbWVtY3RsLT5vcjIgPSBDRkdfT1IyX1BSRUxJTTsKLQltZW1jdGwtPmJyMiA9IENGR19CUjJfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjJfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1IyX1BSRUxJTSkKKwltZW1jdGwtPm9yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsKKwltZW1jdGwtPmJyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlIzX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1IzX1BSRUxJTSkKLQltZW1jdGwtPm9yMyA9IENGR19PUjNfUFJFTElNOwotCW1lbWN0bC0+YnIzID0gQ0ZHX0JSM19QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSM19QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjNfUFJFTElNKQorCW1lbWN0bC0+b3IzID0gQ09ORklHX1NZU19PUjNfUFJFTElNOworCW1lbWN0bC0+YnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjRfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjRfUFJFTElNKQotCW1lbWN0bC0+b3I0ID0gQ0ZHX09SNF9QUkVMSU07Ci0JbWVtY3RsLT5icjQgPSBDRkdfQlI0X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlI0X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SNF9QUkVMSU0pCisJbWVtY3RsLT5vcjQgPSBDT05GSUdfU1lTX09SNF9QUkVMSU07CisJbWVtY3RsLT5icjQgPSBDT05GSUdfU1lTX0JSNF9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSNV9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SNV9QUkVMSU0pCi0JbWVtY3RsLT5vcjUgPSBDRkdfT1I1X1BSRUxJTTsKLQltZW1jdGwtPmJyNSA9IENGR19CUjVfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjVfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1I1X1BSRUxJTSkKKwltZW1jdGwtPm9yNSA9IENPTkZJR19TWVNfT1I1X1BSRUxJTTsKKwltZW1jdGwtPmJyNSA9IENPTkZJR19TWVNfQlI1X1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlI2X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1I2X1BSRUxJTSkKLQltZW1jdGwtPm9yNiA9IENGR19PUjZfUFJFTElNOwotCW1lbWN0bC0+YnI2ID0gQ0ZHX0JSNl9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSNl9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjZfUFJFTElNKQorCW1lbWN0bC0+b3I2ID0gQ09ORklHX1NZU19PUjZfUFJFTElNOworCW1lbWN0bC0+YnI2ID0gQ09ORklHX1NZU19CUjZfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjdfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjdfUFJFTElNKQotCW1lbWN0bC0+b3I3ID0gQ0ZHX09SN19QUkVMSU07Ci0JbWVtY3RsLT5icjcgPSBDRkdfQlI3X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlI3X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SN19QUkVMSU0pCisJbWVtY3RsLT5vcjcgPSBDT05GSUdfU1lTX09SN19QUkVMSU07CisJbWVtY3RsLT5icjcgPSBDT05GSUdfU1lTX0JSN19QUkVMSU07CiAjZW5kaWYKIAogCS8qIGVuYWJsZSB0aGUgdGltZWJhc2UgYml0IGluIEhJRDAgKi8KQEAgLTEyNywyMiArMTI3LDIyIEBACiAvKiBTZXQgdXAgQkFUIHJlZ2lzdGVycyAqLwogdm9pZCBzZXR1cF9iYXRzKHZvaWQpCiB7Ci0Jd3JpdGVfYmF0KERCQVQwLCBDRkdfREJBVDBVLCBDRkdfREJBVDBMKTsKLQl3cml0ZV9iYXQoSUJBVDAsIENGR19JQkFUMFUsIENGR19JQkFUMEwpOwotCXdyaXRlX2JhdChEQkFUMSwgQ0ZHX0RCQVQxVSwgQ0ZHX0RCQVQxTCk7Ci0Jd3JpdGVfYmF0KElCQVQxLCBDRkdfSUJBVDFVLCBDRkdfSUJBVDFMKTsKLQl3cml0ZV9iYXQoREJBVDIsIENGR19EQkFUMlUsIENGR19EQkFUMkwpOwotCXdyaXRlX2JhdChJQkFUMiwgQ0ZHX0lCQVQyVSwgQ0ZHX0lCQVQyTCk7Ci0Jd3JpdGVfYmF0KERCQVQzLCBDRkdfREJBVDNVLCBDRkdfREJBVDNMKTsKLQl3cml0ZV9iYXQoSUJBVDMsIENGR19JQkFUM1UsIENGR19JQkFUM0wpOwotCXdyaXRlX2JhdChEQkFUNCwgQ0ZHX0RCQVQ0VSwgQ0ZHX0RCQVQ0TCk7Ci0Jd3JpdGVfYmF0KElCQVQ0LCBDRkdfSUJBVDRVLCBDRkdfSUJBVDRMKTsKLQl3cml0ZV9iYXQoREJBVDUsIENGR19EQkFUNVUsIENGR19EQkFUNUwpOwotCXdyaXRlX2JhdChJQkFUNSwgQ0ZHX0lCQVQ1VSwgQ0ZHX0lCQVQ1TCk7Ci0Jd3JpdGVfYmF0KERCQVQ2LCBDRkdfREJBVDZVLCBDRkdfREJBVDZMKTsKLQl3cml0ZV9iYXQoSUJBVDYsIENGR19JQkFUNlUsIENGR19JQkFUNkwpOwotCXdyaXRlX2JhdChEQkFUNywgQ0ZHX0RCQVQ3VSwgQ0ZHX0RCQVQ3TCk7Ci0Jd3JpdGVfYmF0KElCQVQ3LCBDRkdfSUJBVDdVLCBDRkdfSUJBVDdMKTsKKwl3cml0ZV9iYXQoREJBVDAsIENPTkZJR19TWVNfREJBVDBVLCBDT05GSUdfU1lTX0RCQVQwTCk7CisJd3JpdGVfYmF0KElCQVQwLCBDT05GSUdfU1lTX0lCQVQwVSwgQ09ORklHX1NZU19JQkFUMEwpOworCXdyaXRlX2JhdChEQkFUMSwgQ09ORklHX1NZU19EQkFUMVUsIENPTkZJR19TWVNfREJBVDFMKTsKKwl3cml0ZV9iYXQoSUJBVDEsIENPTkZJR19TWVNfSUJBVDFVLCBDT05GSUdfU1lTX0lCQVQxTCk7CisJd3JpdGVfYmF0KERCQVQyLCBDT05GSUdfU1lTX0RCQVQyVSwgQ09ORklHX1NZU19EQkFUMkwpOworCXdyaXRlX2JhdChJQkFUMiwgQ09ORklHX1NZU19JQkFUMlUsIENPTkZJR19TWVNfSUJBVDJMKTsKKwl3cml0ZV9iYXQoREJBVDMsIENPTkZJR19TWVNfREJBVDNVLCBDT05GSUdfU1lTX0RCQVQzTCk7CisJd3JpdGVfYmF0KElCQVQzLCBDT05GSUdfU1lTX0lCQVQzVSwgQ09ORklHX1NZU19JQkFUM0wpOworCXdyaXRlX2JhdChEQkFUNCwgQ09ORklHX1NZU19EQkFUNFUsIENPTkZJR19TWVNfREJBVDRMKTsKKwl3cml0ZV9iYXQoSUJBVDQsIENPTkZJR19TWVNfSUJBVDRVLCBDT05GSUdfU1lTX0lCQVQ0TCk7CisJd3JpdGVfYmF0KERCQVQ1LCBDT05GSUdfU1lTX0RCQVQ1VSwgQ09ORklHX1NZU19EQkFUNUwpOworCXdyaXRlX2JhdChJQkFUNSwgQ09ORklHX1NZU19JQkFUNVUsIENPTkZJR19TWVNfSUJBVDVMKTsKKwl3cml0ZV9iYXQoREJBVDYsIENPTkZJR19TWVNfREJBVDZVLCBDT05GSUdfU1lTX0RCQVQ2TCk7CisJd3JpdGVfYmF0KElCQVQ2LCBDT05GSUdfU1lTX0lCQVQ2VSwgQ09ORklHX1NZU19JQkFUNkwpOworCXdyaXRlX2JhdChEQkFUNywgQ09ORklHX1NZU19EQkFUN1UsIENPTkZJR19TWVNfREJBVDdMKTsKKwl3cml0ZV9iYXQoSUJBVDcsIENPTkZJR19TWVNfSUJBVDdVLCBDT05GSUdfU1lTX0lCQVQ3TCk7CiAKIAlyZXR1cm47CiB9CmRpZmYgLS1naXQgYS9jcHUvbXBjODZ4eC9kZHItODY0MS5jIGIvY3B1L21wYzg2eHgvZGRyLTg2NDEuYwppbmRleCBmOTM2MTgyLi41MWQwMTAyIDEwMDY0NAotLS0gYS9jcHUvbXBjODZ4eC9kZHItODY0MS5jCisrKyBiL2NwdS9tcGM4Nnh4L2Rkci04NjQxLmMKQEAgLTIyLDEwICsyMiwxMCBAQAogCiAJc3dpdGNoIChjdHJsX251bSkgewogCWNhc2UgMDoKLQkJZGRyID0gKHZvaWQgKilDRkdfTVBDODZ4eF9ERFJfQUREUjsKKwkJZGRyID0gKHZvaWQgKilDT05GSUdfU1lTX01QQzg2eHhfRERSX0FERFI7CiAJCWJyZWFrOwogCWNhc2UgMToKLQkJZGRyID0gKHZvaWQgKilDRkdfTVBDODZ4eF9ERFIyX0FERFI7CisJCWRkciA9ICh2b2lkICopQ09ORklHX1NZU19NUEM4Nnh4X0REUjJfQUREUjsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcHJpbnRmKCIlcyB1bmV4cGVjdGVkIGN0cmxfbnVtID0gJXVcbiIsIF9fRlVOQ1RJT05fXywgY3RybF9udW0pOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzg2eHgvZmR0LmMgYi9jcHUvbXBjODZ4eC9mZHQuYwppbmRleCAxMmQ5MDUyLi4xZmVmOTRmNSAxMDA2NDQKLS0tIGEvY3B1L21wYzg2eHgvZmR0LmMKKysrIGIvY3B1L21wYzg2eHgvZmR0LmMKQEAgLTI4LDggKzI4LDggQEAKIAlmZHRfZml4dXBfZXRoZXJuZXQoYmxvYik7CiAjZW5kaWYKIAotI2lmZGVmIENGR19OUzE2NTUwCisjaWZkZWYgQ09ORklHX1NZU19OUzE2NTUwCiAJZG9fZml4dXBfYnlfY29tcGF0X3UzMihibG9iLCAibnMxNjU1MCIsCi0JCQkgICAgICAgImNsb2NrLWZyZXF1ZW5jeSIsIENGR19OUzE2NTUwX0NMSywgMSk7CisJCQkgICAgICAgImNsb2NrLWZyZXF1ZW5jeSIsIENPTkZJR19TWVNfTlMxNjU1MF9DTEssIDEpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9jcHUvbXBjODZ4eC9pbnRlcnJ1cHRzLmMgYi9jcHUvbXBjODZ4eC9pbnRlcnJ1cHRzLmMKaW5kZXggZmEyY2ZhYy4uYzc4ZmM3MiAxMDA2NDQKLS0tIGEvY3B1L21wYzg2eHgvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9tcGM4Nnh4L2ludGVycnVwdHMuYwpAQCAtMzgsNyArMzgsNyBAQAogCiBpbnQgaW50ZXJydXB0X2luaXRfY3B1KHVuc2lnbmVkIGxvbmcgKmRlY3JlbWVudGVyX2NvdW50KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjY3NyX3BpY190ICpwaWMgPSAmaW1tci0+aW1fcGljOwogCiAJcGljLT5nY3IgPSBNUEM4Nnh4X1BJQ0dDUl9SU1Q7CkBAIC00Niw3ICs0Niw3IEBACiAJCTsKIAlwaWMtPmdjciA9IE1QQzg2eHhfUElDR0NSX01PREU7CiAKLQkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsoKSAvIENGR19IWjsKKwkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsoKSAvIENPTkZJR19TWVNfSFo7CiAJZGVidWcoImludGVycnVwdCBpbml0OiB0YmNsaygpID0gJWQgTUh6LCBkZWNyZW1lbnRlcl9jb3VudCA9ICVsZFxuIiwKIAkgICAgICAoZ2V0X3RiY2xrKCkgLyAxMDAwMDAwKSwKIAkgICAgICAqZGVjcmVtZW50ZXJfY291bnQpOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzg2eHgvc3BlZWQuYyBiL2NwdS9tcGM4Nnh4L3NwZWVkLmMKaW5kZXggZGE1YjU4Yi4uNDE1YWM5ZCAxMDA2NDQKLS0tIGEvY3B1L21wYzg2eHgvc3BlZWQuYworKysgYi9jcHUvbXBjODZ4eC9zcGVlZC5jCkBAIC0zNiw3ICszNiw3IEBACiAKIHZvaWQgZ2V0X3N5c19pbmZvKHN5c19pbmZvX3QgKnN5c0luZm8pCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAmaW1tYXAtPmltX2d1cjsKIAl1aW50IHBsYXRfcmF0aW8sIGU2MDBfcmF0aW87CiAKZGlmZiAtLWdpdCBhL2NwdS9tcGM4Nnh4L3N0YXJ0LlMgYi9jcHUvbXBjODZ4eC9zdGFydC5TCmluZGV4IDkwYTFiODMuLjE1OWYzZTEgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4Nnh4L3N0YXJ0LlMKKysrIGIvY3B1L21wYzg2eHgvc3RhcnQuUwpAQCAtMTk0LDcgKzE5NCw3IEBACiAjZW5kaWYKIAogMToKLSNpZmRlZiBDRkdfUkFNQk9PVAorI2lmZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCS8qIGRpc2FibGUgZXZlcnl0aGluZyAqLwogCWxpCXIwLCAwCiAJbXRzcHIJSElEMCwgcjAKQEAgLTIwNSw3ICsyMDUsNyBAQAogCWJsCWludmFsaWRhdGVfYmF0cwogCXN5bmMKIAotI2lmZGVmIENGR19MMgorI2lmZGVmIENPTkZJR19TWVNfTDIKIAkvKiBpbml0IHRoZSBMMiBjYWNoZSAqLwogCWxpcwlyMywgTDJfSU5JVEBoCiAJb3JpCXIzLCByMywgTDJfSU5JVEBsCkBAIC0yMTgsOCArMjE4LDggQEAKIAkvKgogCSAqIENhbGN1bGF0ZSBhYnNvbHV0ZSBhZGRyZXNzIGluIEZMQVNIIGFuZCBqdW1wIHRoZXJlCiAJICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCWxpcwlyMywgQ0ZHX01PTklUT1JfQkFTRUBoCi0Jb3JpCXIzLCByMywgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXIzLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWFkZGkJcjMsIHIzLCBpbl9mbGFzaCAtIF9zdGFydCArIEVYQ19PRkZfU1lTX1JFU0VUCiAJbXRscglyMwogCWJscgpAQCAtMjU3LDE1ICsyNTcsMTUgQEAKIAlibAlpY2FjaGVfZW5hYmxlCiAjZW5kaWYKIAotI2lmZGVmIENGR19JTklUX1JBTV9MT0NLCisjaWZkZWYgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCiAJYmwJbG9ja19yYW1faW5fY2FjaGUKIAlzeW5jCiAjZW5kaWYKIAogCS8qIHNldCB1cCB0aGUgc3RhY2sgcG9pbnRlciBpbiBvdXIgbmV3bHkgY3JlYXRlZAogCSAqIGNhY2hlLXJhbSAocjEpICovCi0JbGlzCXIxLCAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKUBoCi0Jb3JpCXIxLCByMSwgKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0dCTF9EQVRBX09GRlNFVClAbAorCWxpcwlyMSwgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKUBoCisJb3JpCXIxLCByMSwgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKUBsCiAKIAlsaQlyMCwgMAkJLyogTWFrZSByb29tIGZvciBzdGFjayBmcmFtZSBoZWFkZXIgYW5kICovCiAJc3R3dQlyMCwgLTQocjEpCS8qIGNsZWFyIGZpbmFsIHN0YWNrIGZyYW1lIHNvIHRoYXQJKi8KQEAgLTI3OCw3ICsyNzgsNyBAQAogCWJsICAgICAgY2xlYXJfdGxicwogCXN5bmMKIAotI2lmIChDRkdfQ0NTUkJBUl9ERUZBVUxUICE9IENGR19DQ1NSQkFSKQorI2lmIChDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVCAhPSBDT05GSUdfU1lTX0NDU1JCQVIpCiAJLyogc2V0dXAgY2NzcmJhciAqLwogCWJsICAgICAgc2V0dXBfY2NzcmJhcgogI2VuZGlmCkBAIC0zMDgsOCArMzA4LDggQEAKIAlzdGIJcjMsIDAocjQpCiAKIAkvKiBHZXQgdGhlIGFkZHJlc3MgdG8ganVtcCB0byBpbiByMyovCi0JbGlzCXIzLCBDRkdfRElBR19BRERSQGgKLQlvcmkJcjMsIHIzLCBDRkdfRElBR19BRERSQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfRElBR19BRERSQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0RJQUdfQUREUkBsCiAKIAkvKiBMb2FkIHRoZSBMUiB3aXRoIHRoZSBicmFuY2ggYWRkcmVzcyAqLwogCW10bHIJcjMKQEAgLTM2NywzNyArMzY3LDM3IEBACiAJLmdsb2JsICBlYXJseV9iYXRzCiBlYXJseV9iYXRzOgogCS8qIElCQVQgNSAqLwotCWxpcwlyNCwgQ0ZHX0lCQVQ1TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19JQkFUNUxAbAotCWxpcwlyMywgQ0ZHX0lCQVQ1VUBoCi0Jb3JpICAgICByMywgcjMsIENGR19JQkFUNVVAbAorCWxpcwlyNCwgQ09ORklHX1NZU19JQkFUNUxAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQ1TEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lCQVQ1VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfSUJBVDVVQGwKIAltdHNwciAgIElCQVQ1TCwgcjQKIAltdHNwciAgIElCQVQ1VSwgcjMKIAlpc3luYwogCiAJLyogREJBVCA1ICovCi0JbGlzCXI0LCBDRkdfREJBVDVMQGgKLQlvcmkgICAgIHI0LCByNCwgQ0ZHX0RCQVQ1TEBsCi0JbGlzCXIzLCBDRkdfREJBVDVVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0RCQVQ1VUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX0RCQVQ1TEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfREJBVDVMQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfREJBVDVVQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19EQkFUNVVAbAogCW10c3ByICAgREJBVDVMLCByNAogCW10c3ByICAgREJBVDVVLCByMwogCWlzeW5jCiAKIAkvKiBJQkFUIDYgKi8KLQlsaXMJcjQsIENGR19JQkFUNkxAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfSUJBVDZMQGwKLQlsaXMJcjMsIENGR19JQkFUNlVAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfSUJBVDZVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfSUJBVDZMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19JQkFUNkxAbAorCWxpcwlyMywgQ09ORklHX1NZU19JQkFUNlVAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQ2VUBsCiAJbXRzcHIgICBJQkFUNkwsIHI0CiAJbXRzcHIgICBJQkFUNlUsIHIzCiAJaXN5bmMKIAogCS8qIERCQVQgNiAqLwotCWxpcwlyNCwgQ0ZHX0RCQVQ2TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19EQkFUNkxAbAotCWxpcwlyMywgQ0ZHX0RCQVQ2VUBoCi0Jb3JpICAgICByMywgcjMsIENGR19EQkFUNlVAbAorCWxpcwlyNCwgQ09ORklHX1NZU19EQkFUNkxAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQ2TEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0RCQVQ2VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfREJBVDZVQGwKIAltdHNwciAgIERCQVQ2TCwgcjQKIAltdHNwciAgIERCQVQ2VSwgcjMKIAlpc3luYwpAQCAtNjIxLDE2ICs2MjEsMTYgQEAKIAltcglyMTAsIHI1CQkvKiBTYXZlIGNvcHkgb2YgRGVzdGluYXRpb24gQWRkcmVzcwkqLwogCiAJbXIJcjMsICByNQkJCQkvKiBEZXN0aW5hdGlvbiBBZGRyZXNzCSovCi0JbGlzCXI0LCBDRkdfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KLQlvcmkJcjQsIHI0LCBDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJbHd6CXI1LCBHT1QoX19pbml0X2VuZCkKIAlzdWIJcjUsIHI1LCByNAotCWxpCXI2LCBDRkdfQ0FDSEVMSU5FX1NJWkUJCS8qIENhY2hlIExpbmUgU2l6ZQkqLworCWxpCXI2LCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KIAogCS8qCiAJICogRml4IEdPVCBwb2ludGVyOgogCSAqCi0JICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDRkdfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKKwkgKiBOZXcgR09ULVBUUiA9IChvbGQgR09ULVBUUiAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKIAkgKgogCSAqIE9mZnNldDoKIAkgKi8KQEAgLTY0OCwxMSArNjQ4LDExIEBACiAJYmwJYm9hcmRfcmVsb2NhdGVfcm9tCiAJc3luYwogCW1yCXIzLCByMTAJCQkJLyogRGVzdGluYXRpb24gQWRkcmVzcwkqLwotCWxpcwlyNCwgQ0ZHX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCi0Jb3JpCXI0LCByNCwgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWx3eglyNSwgR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LCByNSwgcjQKLQlsaQlyNiwgQ0ZHX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KKwlsaQlyNiwgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJLyogQ2FjaGUgTGluZSBTaXplCSovCiAjZWxzZQogCWNtcGx3CWNyMSxyMyxyNAogCWFkZGkJcjAscjUsMwpAQCAtODY0LDE1ICs4NjQsMTUgQEAKIAlpc3luYwogCWJscgogCi0jaWYgKENGR19DQ1NSQkFSX0RFRkFVTFQgIT0gQ0ZHX0NDU1JCQVIpCisjaWYgKENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUICE9IENPTkZJR19TWVNfQ0NTUkJBUikKIC5nbG9ibCBzZXR1cF9jY3NyYmFyCiBzZXR1cF9jY3NyYmFyOgogCS8qIFNwZWNpYWwgc2VxdWVuY2UgbmVlZGVkIHRvIHVwZGF0ZSBDQ1NSQkFSIGl0c2VsZiAqLwotCWxpcwlyNCwgQ0ZHX0NDU1JCQVJfREVGQVVMVEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0NDU1JCQVJfREVGQVVMVEBsCisJbGlzCXI0LCBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVEBoCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFRAbAogCi0JbGlzCXI1LCBDRkdfQ0NTUkJBUkBoCi0Jb3JpCXI1LCByNSwgQ0ZHX0NDU1JCQVJAbAorCWxpcwlyNSwgQ09ORklHX1NZU19DQ1NSQkFSQGgKKwlvcmkJcjUsIHI1LCBDT05GSUdfU1lTX0NDU1JCQVJAbAogCXNyd2kJcjYscjUsMTIKIAlzdHcJcjYsIDAocjQpCiAJaXN5bmMKQEAgLTg4MiwyMSArODgyLDIxIEBACiAJbHd6CXI1LCAwKHI1KQogCWlzeW5jCiAKLQlsaXMJcjMsIENGR19DQ1NSQkFSQGgKLQlsd3oJcjUsIENGR19DQ1NSQkFSQGwocjMpCisJbGlzCXIzLCBDT05GSUdfU1lTX0NDU1JCQVJAaAorCWx3eglyNSwgQ09ORklHX1NZU19DQ1NSQkFSQGwocjMpCiAJaXN5bmMKIAogCWJscgogI2VuZGlmCiAKLSNpZmRlZiBDRkdfSU5JVF9SQU1fTE9DSworI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwogbG9ja19yYW1faW5fY2FjaGU6CiAJLyogQWxsb2NhdGUgSW5pdGlhbCBSQU0gaW4gZGF0YSBjYWNoZS4KIAkgKi8KLQlsaXMJcjMsIChDRkdfSU5JVF9SQU1fQUREUiAmIH4zMSlAaAotCW9yaQlyMywgcjMsIChDRkdfSU5JVF9SQU1fQUREUiAmIH4zMSlAbAotCWxpCXI0LCAoKENGR19JTklUX1JBTV9FTkQgJiB+MzEpICsgXAotCQkgICAgIChDRkdfSU5JVF9SQU1fQUREUiAmIDMxKSArIDMxKSAvIDMyCisJbGlzCXIzLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICYgfjMxKUBoCisJb3JpCXIzLCByMywgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIH4zMSlAbAorCWxpCXI0LCAoKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICYgfjMxKSArIFwKKwkJICAgICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICYgMzEpICsgMzEpIC8gMzIKIAltdGN0cglyNAogMToKIAlkY2J6CXIwLCByMwpAQCAtOTI4LDEwICs5MjgsMTAgQEAKIC5nbG9ibCB1bmxvY2tfcmFtX2luX2NhY2hlCiB1bmxvY2tfcmFtX2luX2NhY2hlOgogCS8qIGludmFsaWRhdGUgdGhlIElOSVRfUkFNIHNlY3Rpb24gKi8KLQlsaXMJcjMsIChDRkdfSU5JVF9SQU1fQUREUiAmIH4zMSlAaAotCW9yaQlyMywgcjMsIChDRkdfSU5JVF9SQU1fQUREUiAmIH4zMSlAbAotCWxpCXI0LCAoKENGR19JTklUX1JBTV9FTkQgJiB+MzEpICsgXAotCQkgICAgIChDRkdfSU5JVF9SQU1fQUREUiAmIDMxKSArIDMxKSAvIDMyCisJbGlzCXIzLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICYgfjMxKUBoCisJb3JpCXIzLCByMywgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIH4zMSlAbAorCWxpCXI0LCAoKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICYgfjMxKSArIFwKKwkJICAgICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICYgMzEpICsgMzEpIC8gMzIKIAltdGN0cglyNAogMToJaWNiaQlyMCwgcjMKIAlhZGRpCXIzLCByMywgMzIKQEAgLTk4Nyw3ICs5ODcsNyBAQAogCXN5bmMKIAlibAllbmFibGVfZXh0X2FkZHIKIAotI2lmZGVmIENGR19MMgorI2lmZGVmIENPTkZJR19TWVNfTDIKIAkvKiBpbml0IHRoZSBMMiBjYWNoZSAqLwogCWFkZGlzCXIzLCByMCwgTDJfSU5JVEBoCiAJb3JpCXIzLCByMywgTDJfSU5JVEBsCmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4L2NvbW1wcm9jLmMgYi9jcHUvbXBjOHh4L2NvbW1wcm9jLmMKaW5kZXggMDdjNzYzYy4uYTg3YTBkYyAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eC9jb21tcHJvYy5jCisrKyBiL2NwdS9tcGM4eHgvY29tbXByb2MuYwpAQCAtMjYsNyArMjYsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotI2lmZGVmIENGR19BTExPQ19EUFJBTQorI2lmZGVmIENPTkZJR19TWVNfQUxMT0NfRFBSQU0KIAogaW50IGRwcmFtX2luaXQgKHZvaWQpCiB7CkBAIC04MiwxNCArODIsMTQgQEAKIAogCXJldHVybiAoZ2QtPmRwX2FsbG9jX2Jhc2UgKyBtYXNrKSAmIH5tYXNrOwogfQotI2VuZGlmCS8qIENGR19BTExPQ19EUFJBTSAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfQUxMT0NfRFBSQU0gKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1BPU1QpIHx8IGRlZmluZWQoQ09ORklHX0xPR0JVRkZFUikKIAogdm9pZCBwb3N0X3dvcmRfc3RvcmUgKHVsb25nIGEpCiB7CiAJdm9sYXRpbGUgdm9pZCAqc2F2ZV9hZGRyID0KLQkJKChpbW1hcF90ICopIENGR19JTU1SKS0+aW1fY3BtLmNwX2RwbWVtICsgQ1BNX1BPU1RfV09SRF9BRERSOworCQkoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX2RwbWVtICsgQ1BNX1BPU1RfV09SRF9BRERSOwogCiAJKih2b2xhdGlsZSB1bG9uZyAqKSBzYXZlX2FkZHIgPSBhOwogfQpAQCAtOTcsNyArOTcsNyBAQAogdWxvbmcgcG9zdF93b3JkX2xvYWQgKHZvaWQpCiB7CiAJdm9sYXRpbGUgdm9pZCAqc2F2ZV9hZGRyID0KLQkJKChpbW1hcF90ICopIENGR19JTU1SKS0+aW1fY3BtLmNwX2RwbWVtICsgQ1BNX1BPU1RfV09SRF9BRERSOworCQkoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX2RwbWVtICsgQ1BNX1BPU1RfV09SRF9BRERSOwogCiAJcmV0dXJuICoodm9sYXRpbGUgdWxvbmcgKikgc2F2ZV9hZGRyOwogfQpAQCAtMTA5LDcgKzEwOSw3IEBACiB2b2lkIGJvb3Rjb3VudF9zdG9yZSAodWxvbmcgYSkKIHsKIAl2b2xhdGlsZSB1bG9uZyAqc2F2ZV9hZGRyID0KLQkJKHZvbGF0aWxlIHVsb25nICopKCAoKGltbWFwX3QgKikgQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfZHBtZW0gKworCQkodm9sYXRpbGUgdWxvbmcgKikoICgoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfZHBtZW0gKwogCQkgICAgICAgICAgICAgICAgICAgIENQTV9CT09UQ09VTlRfQUREUiApOwogCiAJc2F2ZV9hZGRyWzBdID0gYTsKQEAgLTExOSw3ICsxMTksNyBAQAogdWxvbmcgYm9vdGNvdW50X2xvYWQgKHZvaWQpCiB7CiAJdm9sYXRpbGUgdWxvbmcgKnNhdmVfYWRkciA9Ci0JCSh2b2xhdGlsZSB1bG9uZyAqKSggKChpbW1hcF90ICopIENGR19JTU1SKS0+aW1fY3BtLmNwX2RwbWVtICsKKwkJKHZvbGF0aWxlIHVsb25nICopKCAoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX2RwbWVtICsKIAkJICAgICAgICAgICAgICAgICAgICBDUE1fQk9PVENPVU5UX0FERFIgKTsKIAogCWlmIChzYXZlX2FkZHJbMV0gIT0gQk9PVENPVU5UX01BR0lDKQpkaWZmIC0tZ2l0IGEvY3B1L21wYzh4eC9jcHUuYyBiL2NwdS9tcGM4eHgvY3B1LmMKaW5kZXggZWM2YTNmZC4uNDIwZWFlZCAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eC9jcHUuYworKysgYi9jcHUvbXBjOHh4L2NwdS5jCkBAIC0xMzcsMTMgKzEzNywxMyBAQAogCQlwcmludGYgKCJ1bmtub3duIE0lcyAoMHglMDh4KSIsIGlkX3N0ciwgayk7CiAKIAotI2lmIGRlZmluZWQoQ0ZHXzh4eF9DUFVDTEtfTUlOKSAmJiBkZWZpbmVkKENGR184eHhfQ1BVQ0xLX01BWCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfOHh4X0NQVUNMS19NSU4pICYmIGRlZmluZWQoQ09ORklHX1NZU184eHhfQ1BVQ0xLX01BWCkKIAlwcmludGYgKCIgYXQgJXMgTUh6IFslZC4lZC4uLiVkLiVkIE1Iel1cbiAgICAgICAiLAogCQlzdHJtaHogKGJ1ZiwgY2xvY2spLAotCQlDRkdfOHh4X0NQVUNMS19NSU4gLyAxMDAwMDAwLAotCQkoKENGR184eHhfQ1BVQ0xLX01JTiAlIDEwMDAwMDApICsgNTAwMDApIC8gMTAwMDAwLAotCQlDRkdfOHh4X0NQVUNMS19NQVggLyAxMDAwMDAwLAotCQkoKENGR184eHhfQ1BVQ0xLX01BWCAlIDEwMDAwMDApICsgNTAwMDApIC8gMTAwMDAwCisJCUNPTkZJR19TWVNfOHh4X0NQVUNMS19NSU4gLyAxMDAwMDAwLAorCQkoKENPTkZJR19TWVNfOHh4X0NQVUNMS19NSU4gJSAxMDAwMDAwKSArIDUwMDAwKSAvIDEwMDAwMCwKKwkJQ09ORklHX1NZU184eHhfQ1BVQ0xLX01BWCAvIDEwMDAwMDAsCisJCSgoQ09ORklHX1NZU184eHhfQ1BVQ0xLX01BWCAlIDEwMDAwMDApICsgNTAwMDApIC8gMTAwMDAwCiAJKTsKICNlbHNlCiAJcHJpbnRmICgiIGF0ICVzIE1IejogIiwgc3RybWh6IChidWYsIGNsb2NrKSk7CkBAIC0zNzUsNyArMzc1LDcgQEAKIAogaW50IGNoZWNraWNhY2hlICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXUzMiBjYWNoZW9uID0gcmRfaWNfY3N0ICgpICYgSURDX0VOQUJMRUQ7CiAKQEAgLTQyMiw3ICs0MjIsNyBAQAogCiBpbnQgY2hlY2tkY2FjaGUgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdTMyIGNhY2hlb24gPSByZF9kY19jc3QgKCkgJiBJRENfRU5BQkxFRDsKIApAQCAtNDYyLDcgKzQ2Miw3IEBACiB7CiAJdWludCBpOwogCXVpbnQgYWRkciA9IDA7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CkBAIC00ODAsNyArNDgwLDcgQEAKIHsKIAl1bG9uZyBtc3IsIGFkZHI7CiAKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJaW1tYXAtPmltX2Nsa3JzdC5jYXJfcGxwcmNyIHw9IFBMUFJDUl9DU1I7CS8qIENoZWNrc3RvcCBSZXNldCBlbmFibGUgKi8KIApAQCAtNDk1LDE2ICs0OTUsMTYgQEAKIAkgKiBUcnlpbmcgdG8gZXhlY3V0ZSB0aGUgbmV4dCBpbnN0cnVjdGlvbiBhdCBhIG5vbi1leGlzdGluZyBhZGRyZXNzCiAJICogc2hvdWxkIGNhdXNlIGEgbWFjaGluZSBjaGVjaywgcmVzdWx0aW5nIGluIHJlc2V0CiAJICovCi0jaWZkZWYgQ0ZHX1JFU0VUX0FERFJFU1MKLQlhZGRyID0gQ0ZHX1JFU0VUX0FERFJFU1M7CisjaWZkZWYgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCisJYWRkciA9IENPTkZJR19TWVNfUkVTRVRfQUREUkVTUzsKICNlbHNlCiAJLyoKLQkgKiBub3RlOiB3aGVuIENGR19NT05JVE9SX0JBU0UgcG9pbnRzIHRvIGEgUkFNIGFkZHJlc3MsIENGR19NT05JVE9SX0JBU0UKKwkgKiBub3RlOiB3aGVuIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIHBvaW50cyB0byBhIFJBTSBhZGRyZXNzLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRQogCSAqIC0gc2l6ZW9mICh1bG9uZykgaXMgdXN1YWxseSBhIHZhbGlkIGFkZHJlc3MuIEJldHRlciBwaWNrIGFuIGFkZHJlc3MKLQkgKiBrbm93biB0byBiZSBpbnZhbGlkIG9uIHlvdXIgc3lzdGVtIGFuZCBhc3NpZ24gaXQgdG8gQ0ZHX1JFU0VUX0FERFJFU1MuCisJICoga25vd24gdG8gYmUgaW52YWxpZCBvbiB5b3VyIHN5c3RlbSBhbmQgYXNzaWduIGl0IHRvIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUy4KIAkgKiAiKHVsb25nKS0xIiB1c2VkIHRvIGJlIGEgZ29vZCBjaG9pY2UgZm9yIG1hbnkgc3lzdGVtcy4uLgogCSAqLwotCWFkZHIgPSBDRkdfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZyk7CisJYWRkciA9IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZyk7CiAjZW5kaWYKIAkoKHZvaWQgKCopKHZvaWQpKSBhZGRyKSAoKTsKIAlyZXR1cm4gMTsKQEAgLTUyNSw3ICs1MjUsNyBAQAogCWRpc2FibGVfaW50ZXJydXB0cyAoKTsKIAogCS8qIG1ha2Ugc3VyZSB0aGUgd2F0Y2hkb2cgaXMgcnVubmluZyAqLwotCXJlc2V0Xzh4eF93YXRjaGRvZyAoKGltbWFwX3QgKikgQ0ZHX0lNTVIpOworCXJlc2V0Xzh4eF93YXRjaGRvZyAoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKTsKIAogCS8qIHdhaXQgZm9yIHdhdGNoZG9nIHJlc2V0ICovCiAJd2hpbGUgKDEpIHt9OwpAQCAtNTkxLDcgKzU5MSw3IEBACiB7CiAJaW50IHJlX2VuYWJsZSA9IGRpc2FibGVfaW50ZXJydXB0cyAoKTsKIAotCXJlc2V0Xzh4eF93YXRjaGRvZyAoKGltbWFwX3QgKikgQ0ZHX0lNTVIpOworCXJlc2V0Xzh4eF93YXRjaGRvZyAoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKTsKIAlpZiAocmVfZW5hYmxlKQogCQllbmFibGVfaW50ZXJydXB0cyAoKTsKIH0KZGlmZiAtLWdpdCBhL2NwdS9tcGM4eHgvY3B1X2luaXQuYyBiL2NwdS9tcGM4eHgvY3B1X2luaXQuYwppbmRleCA1YzQzZWNhLi5lYjAwOTFiIDEwMDY0NAotLS0gYS9jcHUvbXBjOHh4L2NwdV9pbml0LmMKKysrIGIvY3B1L21wYzh4eC9jcHVfaW5pdC5jCkBAIC0yNywxMiArMjcsMTIgQEAKICNpbmNsdWRlIDxtcGM4eHguaD4KICNpbmNsdWRlIDxjb21tcHJvYy5oPgogCi0jaWYgZGVmaW5lZChDRkdfUlRDU0MpIHx8IGRlZmluZWQoQ0ZHX1JNRFMpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JUQ1NDKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfUk1EUykKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19JMkNfVUNPREVfUEFUQ0gpIHx8IGRlZmluZWQoQ0ZHX1NQSV9VQ09ERV9QQVRDSCkgfHwgXAotICAgIGRlZmluZWQoQ0ZHX1NNQ19VQ09ERV9QQVRDSCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX1VDT0RFX1BBVENIKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfU1BJX1VDT0RFX1BBVENIKSB8fCBcCisgICAgZGVmaW5lZChDT05GSUdfU1lTX1NNQ19VQ09ERV9QQVRDSCkKIHZvaWQgY3BtX2xvYWRfcGF0Y2ggKHZvbGF0aWxlIGltbWFwX3QgKiBpbW1yKTsKICNlbmRpZgogCkBAIC00Nyw3ICs0Nyw3IEBACiB7CiAjaWZuZGVmIENPTkZJR19NQlgKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKLSMgaWZkZWYgQ0ZHX1BMUFJDUgorIyBpZmRlZiBDT05GSUdfU1lTX1BMUFJDUgogCXVsb25nIG1mbWFzazsKICMgZW5kaWYKICNlbmRpZgpAQCAtNTUsNyArNTUsNyBAQAogCiAJLyogU1lQQ1IgLSBjb250YWlucyB3YXRjaGRvZyBjb250cm9sICgxMS05KSAqLwogCi0JaW1tci0+aW1fc2l1X2NvbmYuc2Nfc3lwY3IgPSBDRkdfU1lQQ1I7CisJaW1tci0+aW1fc2l1X2NvbmYuc2Nfc3lwY3IgPSBDT05GSUdfU1lTX1NZUENSOwogCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCiAJcmVzZXRfOHh4X3dhdGNoZG9nIChpbW1yKTsKQEAgLTYzLDI3ICs2MywyNyBAQAogCiAJLyogU0lVTUNSIC0gY29udGFpbnMgZGVidWcgcGluIGNvbmZpZ3VyYXRpb24gKDExLTYpICovCiAjaWZuZGVmIENPTkZJR19TVk1fU0M4eHgKLQlpbW1yLT5pbV9zaXVfY29uZi5zY19zaXVtY3IgfD0gQ0ZHX1NJVU1DUjsKKwlpbW1yLT5pbV9zaXVfY29uZi5zY19zaXVtY3IgfD0gQ09ORklHX1NZU19TSVVNQ1I7CiAjZWxzZQotCWltbXItPmltX3NpdV9jb25mLnNjX3NpdW1jciA9IENGR19TSVVNQ1I7CisJaW1tci0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyID0gQ09ORklHX1NZU19TSVVNQ1I7CiAjZW5kaWYKIAkvKiBpbml0aWFsaXplIHRpbWViYXNlIHN0YXR1cyBhbmQgY29udHJvbCByZWdpc3RlciAoMTEtMjYpICovCiAJLyogdW5sb2NrIFRCU0NSSyAqLwogCiAJaW1tci0+aW1fc2l0ay5zaXRrX3Ric2NyayA9IEtBUFdSX0tFWTsKLQlpbW1yLT5pbV9zaXQuc2l0X3Ric2NyID0gQ0ZHX1RCU0NSOworCWltbXItPmltX3NpdC5zaXRfdGJzY3IgPSBDT05GSUdfU1lTX1RCU0NSOwogCiAJLyogaW5pdGlhbGl6ZSB0aGUgUElUICgxMS0zMSkgKi8KIAogCWltbXItPmltX3NpdGsuc2l0a19waXNjcmsgPSBLQVBXUl9LRVk7Ci0JaW1tci0+aW1fc2l0LnNpdF9waXNjciA9IENGR19QSVNDUjsKKwlpbW1yLT5pbV9zaXQuc2l0X3Bpc2NyID0gQ09ORklHX1NZU19QSVNDUjsKIAogCS8qIFN5c3RlbSBpbnRlZ3JhdGlvbiB0aW1lcnMuIERvbid0IGNoYW5nZSBFQkRGISAoMTUtMjcpICovCiAKIAlpbW1yLT5pbV9jbGtyc3RrLmNhcmtfc2NjcmsgPSBLQVBXUl9LRVk7CiAJcmVnID0gaW1tci0+aW1fY2xrcnN0LmNhcl9zY2NyOwogCXJlZyAmPSBTQ0NSX01BU0s7Ci0JcmVnIHw9IENGR19TQ0NSOworCXJlZyB8PSBDT05GSUdfU1lTX1NDQ1I7CiAJaW1tci0+aW1fY2xrcnN0LmNhcl9zY2NyID0gcmVnOwogCiAJLyogUExMIChDUFUgY2xvY2spIHNldHRpbmdzICgxNS0zMCkgKi8KQEAgLTkyLDI1ICs5MiwyNSBAQAogCiAjaWZuZGVmIENPTkZJR19NQlgJCS8qIE1CWCBib2FyZCBkb2VzIHRoaW5ncyBkaWZmZXJlbnQgKi8KIAotCS8qIElmIENGR19QTFBSQ1IgKHNldCBpbiB0aGUgdmFyaW91cyAqX2NvbmZpZy5oIGZpbGVzKSB0cmllcyB0bwotCSAqIHNldCB0aGUgTUYgZmllbGQsIHRoZW4ganVzdCBjb3B5IENGR19QTFBSQ1Igb3ZlciBjYXJfcGxwcmNyLAotCSAqIG90aGVyd2lzZSBPUiBpbiBDRkdfUExQUkNSIHNvIHdlIGRvIG5vdCBjaGFuZ2UgdGhlIGN1cnJlbnQgTUYKKwkvKiBJZiBDT05GSUdfU1lTX1BMUFJDUiAoc2V0IGluIHRoZSB2YXJpb3VzICpfY29uZmlnLmggZmlsZXMpIHRyaWVzIHRvCisJICogc2V0IHRoZSBNRiBmaWVsZCwgdGhlbiBqdXN0IGNvcHkgQ09ORklHX1NZU19QTFBSQ1Igb3ZlciBjYXJfcGxwcmNyLAorCSAqIG90aGVyd2lzZSBPUiBpbiBDT05GSUdfU1lTX1BMUFJDUiBzbyB3ZSBkbyBub3QgY2hhbmdlIHRoZSBjdXJyZW50IE1GCiAJICogZmllbGQgdmFsdWUuCiAJICoKIAkgKiBGb3IgbmV3ZXIgKHN0YXJ0aW5nIE1QQzg2NikgY2hpcHMgUExQUkNSIGxheW91dCBpcyBkaWZmZXJlbnQuCiAJICovCi0jaWZkZWYgQ0ZHX1BMUFJDUgorI2lmZGVmIENPTkZJR19TWVNfUExQUkNSCiAJaWYgKGdldF9pbW1yKDB4RkZGRikgPj0gTVBDOHh4X05FV19DTEspCiAJICAgbWZtYXNrID0gUExQUkNSX01GQUNUX01TSzsKIAllbHNlCiAJICAgbWZtYXNrID0gUExQUkNSX01GX01TSzsKIAotCWlmICgoQ0ZHX1BMUFJDUiAmIG1mbWFzaykgIT0gMCkKLQkgICByZWcgPSBDRkdfUExQUkNSOwkJCS8qIHJlc2V0IGNvbnRyb2wgYml0cyAgICovCisJaWYgKChDT05GSUdfU1lTX1BMUFJDUiAmIG1mbWFzaykgIT0gMCkKKwkgICByZWcgPSBDT05GSUdfU1lTX1BMUFJDUjsJCQkvKiByZXNldCBjb250cm9sIGJpdHMgICAqLwogCWVsc2UgewogCSAgIHJlZyA9IGltbXItPmltX2Nsa3JzdC5jYXJfcGxwcmNyOwogCSAgIHJlZyAmPSBtZm1hc2s7CQkJLyogaXNvbGF0ZSBNRi1yZWxhdGVkIGZpZWxkcyAqLwotCSAgIHJlZyB8PSBDRkdfUExQUkNSOwkJCS8qIHJlc2V0IGNvbnRyb2wgYml0cyAgICovCisJICAgcmVnIHw9IENPTkZJR19TWVNfUExQUkNSOwkJCS8qIHJlc2V0IGNvbnRyb2wgYml0cyAgICovCiAJfQogCWltbXItPmltX2Nsa3JzdC5jYXJfcGxwcmNyID0gcmVnOwogI2VuZGlmCkBAIC0xMzAsMjAgKzEzMCwyMCBAQAogCSAqIHdoZW4gRkxBU0ggc2l6ZSBoYXMgYmVlbiBkZXRlcm1pbmVkCiAJICoKIAkgKiBEZXBlbmRpbmcgb24gdGhlIHNpemUgb2YgdGhlIG1lbW9yeSByZWdpb24gZGVmaW5lZCBieQotCSAqIENGR19PUjBfUkVNQVAgc29tZSBib2FyZHMgKHdpZGUgYWRkcmVzcyBtYXNrKSBhbGxvdyB0byBtYXAgdGhlCi0JICogQ0ZHX01PTklUT1JfQkFTRSwgd2hpbGUgb3RoZXJzIChuYXJyb3dlciBhZGRyZXNzIG1hc2spIGNhbid0Ci0JICogbWFwIENGR19NT05JVE9SX0JBU0UuCisJICogQ09ORklHX1NZU19PUjBfUkVNQVAgc29tZSBib2FyZHMgKHdpZGUgYWRkcmVzcyBtYXNrKSBhbGxvdyB0byBtYXAgdGhlCisJICogQ09ORklHX1NZU19NT05JVE9SX0JBU0UsIHdoaWxlIG90aGVycyAobmFycm93ZXIgYWRkcmVzcyBtYXNrKSBjYW4ndAorCSAqIG1hcCBDT05GSUdfU1lTX01PTklUT1JfQkFTRS4KIAkgKgotCSAqIEZvciBleGFtcGxlLCBmb3IgQ09ORklHX0lWTVM4LCB0aGUgQ0ZHX01PTklUT1JfQkFTRSBpcwotCSAqIDB4ZmYwMDAwMDAsIGJ1dCBDRkdfT1IwX1JFTUFQJ3MgYWRkcmVzcyBtYXNrIGlzIDB4ZmZmODAwMDAuCisJICogRm9yIGV4YW1wbGUsIGZvciBDT05GSUdfSVZNUzgsIHRoZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSBpcworCSAqIDB4ZmYwMDAwMDAsIGJ1dCBDT05GSUdfU1lTX09SMF9SRU1BUCdzIGFkZHJlc3MgbWFzayBpcyAweGZmZjgwMDAwLgogCSAqCiAJICogSWYgQlIwIHdhc24ndCBsb2FkZWQgd2l0aCBhZGRyZXNzIGJhc2UgMHhmZjAwMDAwMCwgdGhlbiBCUjAncwogCSAqIGJhc2UgYWRkcmVzcyByZW1haW5zIGFzIDB4MDAwMDAwMDAuIEhvd2V2ZXIsIHRoZSBhZGRyZXNzIG1hc2sKLQkgKiBoYXZlIGJlZW4gbmFycm93ZWQgdG8gNTEyS2IsIHNvIENGR19NT05JVE9SX0JBU0Ugd2Fzbid0IG1hcHBlZAorCSAqIGhhdmUgYmVlbiBuYXJyb3dlZCB0byA1MTJLYiwgc28gQ09ORklHX1NZU19NT05JVE9SX0JBU0Ugd2Fzbid0IG1hcHBlZAogCSAqIGludG8gdGhlIEJhbmswLgogCSAqCiAJICogVGhpcyBpcyB3aHkgQ09ORklHX0lWTVM4IGFuZCBzaW1pbGFyIGJvYXJkcyBtdXN0IGxvYWQgQlIwIHdpdGgKLQkgKiBDRkdfQlIwX1BSRUxJTSBpbiBhZHZhbmNlLgorCSAqIENPTkZJR19TWVNfQlIwX1BSRUxJTSBpbiBhZHZhbmNlLgogCSAqCiAJICogW1RoYW5rcyB0byBNaWNoYWVsIExpYW8gZm9yIHRoaXMgZXhwbGFuYXRpb24uCiAJICogIEkgb3dlIGhpbSBhIGZyZWUgYmVlci4gLSB3ZF0KQEAgLTE2NSw2MCArMTY1LDYwIEBACiAgICAgZGVmaW5lZChDT05GSUdfU1BDMTkyMCkJfHwgXAogICAgIGRlZmluZWQoQ09ORklHX1NQRDgyM1RTKQogCi0JbWVtY3RsLT5tZW1jX2JyMCA9IENGR19CUjBfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjAgPSBDT05GSUdfU1lTX0JSMF9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SMF9SRU1BUCkKLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SMF9SRU1BUDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IwX1JFTUFQKQorCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SMF9SRU1BUDsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX09SMV9SRU1BUCkKLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9SRU1BUDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IxX1JFTUFQKQorCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9SRU1BUDsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX09SNV9SRU1BUCkKLQltZW1jdGwtPm1lbWNfb3I1ID0gQ0ZHX09SNV9SRU1BUDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1I1X1JFTUFQKQorCW1lbWN0bC0+bWVtY19vcjUgPSBDT05GSUdfU1lTX09SNV9SRU1BUDsKICNlbmRpZgogCiAJLyogbm93IHJlc3RyaWN0IHRvIHByZWxpbWluYXJ5IHJhbmdlICovCi0JbWVtY3RsLT5tZW1jX2JyMCA9IENGR19CUjBfUFJFTElNOwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1IwX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIwID0gQ09ORklHX1NZU19CUjBfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SMF9QUkVMSU07CiAKLSNpZiAoZGVmaW5lZChDRkdfT1IxX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlIxX1BSRUxJTSkpCi0JbWVtY3RsLT5tZW1jX29yMSA9IENGR19PUjFfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjEgPSBDRkdfQlIxX1BSRUxJTTsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX09SMV9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjFfUFJFTElNKSkKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjEgPSBDT05GSUdfU1lTX0JSMV9QUkVMSU07CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0lQODYwKSAvKiBkaXNhYmxlIENTMCBub3cgdGhhdCBGbGFzaCBpcyBtYXBwZWQgb24gQ1MxICovCiAJbWVtY3RsLT5tZW1jX2JyMCA9IDA7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SMl9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX0JSMl9QUkVMSU0pCi0JbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjJfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSMl9QUkVMSU0pCisJbWVtY3RsLT5tZW1jX29yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19PUjNfUFJFTElNKSAmJiBkZWZpbmVkKENGR19CUjNfUFJFTElNKQotCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfT1IzX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX09SM19QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjNfUFJFTElNKQorCW1lbWN0bC0+bWVtY19vcjMgPSBDT05GSUdfU1lTX09SM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfQlIzX1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfT1I0X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlI0X1BSRUxJTSkKLQltZW1jdGwtPm1lbWNfb3I0ID0gQ0ZHX09SNF9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyNCA9IENGR19CUjRfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjRfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlI0X1BSRUxJTSkKKwltZW1jdGwtPm1lbWNfb3I0ID0gQ09ORklHX1NZU19PUjRfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjQgPSBDT05GSUdfU1lTX0JSNF9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SNV9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX0JSNV9QUkVMSU0pCi0JbWVtY3RsLT5tZW1jX29yNSA9IENGR19PUjVfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjUgPSBDRkdfQlI1X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1I1X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSNV9QUkVMSU0pCisJbWVtY3RsLT5tZW1jX29yNSA9IENPTkZJR19TWVNfT1I1X1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnI1ID0gQ09ORklHX1NZU19CUjVfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19PUjZfUFJFTElNKSAmJiBkZWZpbmVkKENGR19CUjZfUFJFTElNKQotCW1lbWN0bC0+bWVtY19vcjYgPSBDRkdfT1I2X1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnI2ID0gQ0ZHX0JSNl9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX09SNl9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjZfUFJFTElNKQorCW1lbWN0bC0+bWVtY19vcjYgPSBDT05GSUdfU1lTX09SNl9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyNiA9IENPTkZJR19TWVNfQlI2X1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfT1I3X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlI3X1BSRUxJTSkKLQltZW1jdGwtPm1lbWNfb3I3ID0gQ0ZHX09SN19QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyNyA9IENGR19CUjdfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjdfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlI3X1BSRUxJTSkKKwltZW1jdGwtPm1lbWNfb3I3ID0gQ09ORklHX1NZU19PUjdfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjcgPSBDT05GSUdfU1lTX0JSN19QUkVMSU07CiAjZW5kaWYKIAogI2VuZGlmIC8qICEgQ09ORklHX01CWCAqLwpAQCAtMjQ5LDEzICsyNDksMTMgQEAKIAlycHhsaXRlX2luaXQgKCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19SQ0NSCQkJLyogbXVzdCBiZSBkb25lIGJlZm9yZSBjcG1fbG9hZF9wYXRjaCgpICovCisjaWZkZWYgQ09ORklHX1NZU19SQ0NSCQkJLyogbXVzdCBiZSBkb25lIGJlZm9yZSBjcG1fbG9hZF9wYXRjaCgpICovCiAJLyogd3JpdGUgY29uZmlnIHZhbHVlICovCi0JaW1tci0+aW1fY3BtLmNwX3JjY3IgPSBDRkdfUkNDUjsKKwlpbW1yLT5pbV9jcG0uY3BfcmNjciA9IENPTkZJR19TWVNfUkNDUjsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfSTJDX1VDT0RFX1BBVENIKSB8fCBkZWZpbmVkKENGR19TUElfVUNPREVfUEFUQ0gpIHx8IFwKLSAgICBkZWZpbmVkKENGR19TTUNfVUNPREVfUEFUQ0gpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0kyQ19VQ09ERV9QQVRDSCkgfHwgZGVmaW5lZChDT05GSUdfU1lTX1NQSV9VQ09ERV9QQVRDSCkgfHwgXAorICAgIGRlZmluZWQoQ09ORklHX1NZU19TTUNfVUNPREVfUEFUQ0gpCiAJY3BtX2xvYWRfcGF0Y2ggKGltbXIpOwkvKiBsb2FkIG1wYzh4eCAgbWljcm9jb2RlIHBhdGNoICovCiAjZW5kaWYKIH0KQEAgLTI2NSwyMSArMjY1LDIxIEBACiAgKi8KIGludCBjcHVfaW5pdF9yICh2b2lkKQogewotI2lmIGRlZmluZWQoQ0ZHX1JUQ1NDKSB8fCBkZWZpbmVkKENGR19STURTKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SVENTQykgfHwgZGVmaW5lZChDT05GSUdfU1lTX1JNRFMpCiAJYmRfdCAqYmQgPSBnZC0+YmQ7CiAJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopIChiZC0+YmlfaW1tcl9iYXNlKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1JUQ1NDCisjaWZkZWYgQ09ORklHX1NZU19SVENTQwogCS8qIFVubG9jayBSVFNDIHJlZ2lzdGVyICovCiAJaW1tci0+aW1fc2l0ay5zaXRrX3J0Y3NjayA9IEtBUFdSX0tFWTsKIAkvKiB3cml0ZSBjb25maWcgdmFsdWUgKi8KLQlpbW1yLT5pbV9zaXQuc2l0X3J0Y3NjID0gQ0ZHX1JUQ1NDOworCWltbXItPmltX3NpdC5zaXRfcnRjc2MgPSBDT05GSUdfU1lTX1JUQ1NDOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfUk1EUworI2lmZGVmIENPTkZJR19TWVNfUk1EUwogCS8qIHdyaXRlIGNvbmZpZyB2YWx1ZSAqLwotCWltbXItPmltX2NwbS5jcF9ybWRzID0gQ0ZHX1JNRFM7CisJaW1tci0+aW1fY3BtLmNwX3JtZHMgPSBDT05GSUdfU1lTX1JNRFM7CiAjZW5kaWYKIAlyZXR1cm4gKDApOwogfQpkaWZmIC0tZ2l0IGEvY3B1L21wYzh4eC9mZWMuYyBiL2NwdS9tcGM4eHgvZmVjLmMKaW5kZXggMzdlYjQ4MS4uMTQxNDI1ZCAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eC9mZWMuYworKysgYi9jcHUvbXBjOHh4L2ZlYy5jCkBAIC00MCw3ICs0MCw3IEBACiAjZW5kaWYKIAogLyogZGVmaW5lIFdBTlRfTUlJIHdoZW4gTUlJIHN1cHBvcnQgaXMgcmVxdWlyZWQgKi8KLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0ZFQzFfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19GRUMyX1BIWSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19GRUMxX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfRkVDMl9QSFkpCiAjZGVmaW5lIFdBTlRfTUlJCiAjZWxzZQogI3VuZGVmIFdBTlRfTUlJCkBAIC01OSw3ICs1OSw3IEBACiAjZXJyb3IgUk1JSSBzdXBwb3J0IGlzIHVudXNhYmxlIHdpdGhvdXQgYSB3b3JraW5nIFBIWS4KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0RJU0NPVkVSX1BIWQorI2lmZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiBzdGF0aWMgaW50IG1paV9kaXNjb3Zlcl9waHkoc3RydWN0IGV0aF9kZXZpY2UgKmRldik7CiAjZW5kaWYKIApAQCAtMTk3LDcgKzE5Nyw3IEBACiB7CiAJaW50IGosIHJjOwogCXN0cnVjdCBldGhlcl9mY2NfaW5mb19zICplZmlzID0gZGV2LT5wcml2OwotCXZvbGF0aWxlIGZlY190ICpmZWNwID0gKHZvbGF0aWxlIGZlY190ICopKENGR19JTU1SICsgZWZpcy0+ZmVjcF9vZmZzZXQpOworCXZvbGF0aWxlIGZlY190ICpmZWNwID0gKHZvbGF0aWxlIGZlY190ICopKENPTkZJR19TWVNfSU1NUiArIGVmaXMtPmZlY3Bfb2Zmc2V0KTsKIAogCS8qIHNlY3Rpb24gMTYuOS4yMy4zCiAJICogV2FpdCBmb3IgcmVhZHkKQEAgLTI0OCw3ICsyNDgsNyBAQAogewogCXN0cnVjdCBldGhlcl9mY2NfaW5mb19zICplZmlzID0gZGV2LT5wcml2OwogCXZvbGF0aWxlIGZlY190ICpmZWNwID0KLQkJKHZvbGF0aWxlIGZlY190ICopIChDRkdfSU1NUiArIGVmaXMtPmZlY3Bfb2Zmc2V0KTsKKwkJKHZvbGF0aWxlIGZlY190ICopIChDT05GSUdfU1lTX0lNTVIgKyBlZmlzLT5mZWNwX29mZnNldCk7CiAJaW50IGxlbmd0aDsKIAogCWZvciAoOzspIHsKQEAgLTMzOSw3ICszMzksNyBAQAogCWlmICgodW5zaWduZWQgaW50KWZlY2lkeCA+PSAyKQogCQloYW5nKCk7CiAKLQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9jcHRyIHw9ICBtYXNrOworCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9jcHRyIHw9ICBtYXNrOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZmVjXzEwME1icHMoc3RydWN0IGV0aF9kZXZpY2UgKmRldikKQEAgLTM1MSw3ICszNTEsNyBAQAogCWlmICgodW5zaWduZWQgaW50KWZlY2lkeCA+PSAyKQogCQloYW5nKCk7CiAKLQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9jcHRyICY9IH5tYXNrOworCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9jcHRyICY9IH5tYXNrOwogfQogCiAjZW5kaWYKQEAgLTM1OSw3ICszNTksNyBAQAogc3RhdGljIGlubGluZSB2b2lkIGZlY19mdWxsX2R1cGxleChzdHJ1Y3QgZXRoX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBldGhlcl9mY2NfaW5mb19zICplZmlzID0gZGV2LT5wcml2OwotCXZvbGF0aWxlIGZlY190ICpmZWNwID0gKHZvbGF0aWxlIGZlY190ICopKENGR19JTU1SICsgZWZpcy0+ZmVjcF9vZmZzZXQpOworCXZvbGF0aWxlIGZlY190ICpmZWNwID0gKHZvbGF0aWxlIGZlY190ICopKENPTkZJR19TWVNfSU1NUiArIGVmaXMtPmZlY3Bfb2Zmc2V0KTsKIAogCWZlY3AtPmZlY19yX2NudHJsICY9IH5GRUNfUkNOVFJMX0RSVDsKIAlmZWNwLT5mZWNfeF9jbnRybCB8PSAgRkVDX1RDTlRSTF9GREVOOwkvKiBGRCBlbmFibGUgKi8KQEAgLTM2OCw3ICszNjgsNyBAQAogc3RhdGljIGlubGluZSB2b2lkIGZlY19oYWxmX2R1cGxleChzdHJ1Y3QgZXRoX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBldGhlcl9mY2NfaW5mb19zICplZmlzID0gZGV2LT5wcml2OwotCXZvbGF0aWxlIGZlY190ICpmZWNwID0gKHZvbGF0aWxlIGZlY190ICopKENGR19JTU1SICsgZWZpcy0+ZmVjcF9vZmZzZXQpOworCXZvbGF0aWxlIGZlY190ICpmZWNwID0gKHZvbGF0aWxlIGZlY190ICopKENPTkZJR19TWVNfSU1NUiArIGVmaXMtPmZlY3Bfb2Zmc2V0KTsKIAogCWZlY3AtPmZlY19yX2NudHJsIHw9ICBGRUNfUkNOVFJMX0RSVDsKIAlmZWNwLT5mZWNfeF9jbnRybCAmPSB+RkVDX1RDTlRSTF9GREVOOwkvKiBGRCBkaXNhYmxlICovCkBAIC0zNzcsNyArMzc3LDcgQEAKIHN0YXRpYyB2b2lkIGZlY19waW5faW5pdChpbnQgZmVjaWR4KQogewogCWJkX3QgICAgICAgICAgICpiZCA9IGdkLT5iZDsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBmZWNfdCAqZmVjcDsKIAogCS8qCkBAIC00NzQsNyArNDc0LDcgQEAKIAkJICogQ29uZmlndXJlIHBvcnQgQSBmb3IgTUlJLgogCQkgKi8KIAotI2lmIGRlZmluZWQoQ09ORklHX0lDVTg2MikgJiYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKQorI2lmIGRlZmluZWQoQ09ORklHX0lDVTg2MikgJiYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkKIAogCQkvKgogCQkgKiBPbiB0aGUgSUNVODYyIGJvYXJkIHRoZSBNSUktTURDIHBpbiBpcyByb3V0ZWQgdG8gUEQ4IHBpbgpAQCAtNTY5LDkgKzU2OSw5IEBACiBzdGF0aWMgaW50IGZlY19pbml0IChzdHJ1Y3QgZXRoX2RldmljZSAqZGV2LCBiZF90ICogYmQpCiB7CiAJc3RydWN0IGV0aGVyX2ZjY19pbmZvX3MgKmVmaXMgPSBkZXYtPnByaXY7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgZmVjX3QgKmZlY3AgPQotCQkodm9sYXRpbGUgZmVjX3QgKikgKENGR19JTU1SICsgZWZpcy0+ZmVjcF9vZmZzZXQpOworCQkodm9sYXRpbGUgZmVjX3QgKikgKENPTkZJR19TWVNfSU1NUiArIGVmaXMtPmZlY3Bfb2Zmc2V0KTsKIAlpbnQgaTsKIAogCWlmIChlZmlzLT5ldGhlcl9pbmRleCA9PSAwKSB7CkBAIC02NTcsNyArNjU3LDcgQEAKIAl0eElkeCA9IDA7CiAKIAlpZiAoIXJ0eCkgewotI2lmZGVmIENGR19BTExPQ19EUFJBTQorI2lmZGVmIENPTkZJR19TWVNfQUxMT0NfRFBSQU0KIAkJcnR4ID0gKFJUWEJEICopIChpbW1yLT5pbV9jcG0uY3BfZHBtZW0gKwogCQkJCSBkcHJhbV9hbGxvY19hbGlnbiAoc2l6ZW9mIChSVFhCRCksIDgpKTsKICNlbHNlCkBAIC03MjEsNyArNzIxLDcgQEAKIAlmZWNwLT5mZWNfZWNudHJsID0gRkVDX0VDTlRSTF9QSU5NVVggfCBGRUNfRUNOVFJMX0VUSEVSX0VOOwogCiAJaWYgKGVmaXMtPnBoeV9hZGRyID09IC0xKSB7Ci0jaWZkZWYgQ0ZHX0RJU0NPVkVSX1BIWQorI2lmZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAJCS8qCiAJCSAqIHdhaXQgZm9yIHRoZSBQSFkgdG8gd2FrZSB1cCBhZnRlciByZXNldAogCQkgKi8KQEAgLTc3Miw3ICs3NzIsNyBAQAogc3RhdGljIHZvaWQgZmVjX2hhbHQoc3RydWN0IGV0aF9kZXZpY2UqIGRldikKIHsKIAlzdHJ1Y3QgZXRoZXJfZmNjX2luZm9fcyAqZWZpcyA9IGRldi0+cHJpdjsKLQl2b2xhdGlsZSBmZWNfdCAqZmVjcCA9ICh2b2xhdGlsZSBmZWNfdCAqKShDRkdfSU1NUiArIGVmaXMtPmZlY3Bfb2Zmc2V0KTsKKwl2b2xhdGlsZSBmZWNfdCAqZmVjcCA9ICh2b2xhdGlsZSBmZWNfdCAqKShDT05GSUdfU1lTX0lNTVIgKyBlZmlzLT5mZWNwX29mZnNldCk7CiAJaW50IGk7CiAKIAkvKiBhdm9pZCBoYWx0IGlmIGluaXRpYWxpemVkOyBtaWkgZ2V0cyBzdHVjayBvdGhlcndpc2UgKi8KQEAgLTgwMSw3ICs4MDEsNyBAQAogCWVmaXMtPmluaXRpYWxpemVkID0gMDsKIH0KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfTUlJKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX01JSSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKIAogLyogTWFrZSBNSUkgcmVhZC93cml0ZSBjb21tYW5kcyBmb3IgdGhlIEZFQy4KICovCkBAIC04NDYsNyArODQ2LDcgQEAKIAl2b2xhdGlsZSBmZWNfdAkqZXA7CiAJaW50IGNudDsKIAotCWVwID0gJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9mZWMpOworCWVwID0gJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfZmVjKTsKIAogCWVwLT5mZWNfbWlpX2RhdGEgPSBtaWlfY21kOwkvKiBjb21tYW5kIHRvIHBoeSAqLwogCkBAIC04NjgsNyArODY4LDcgQEAKIH0KICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpCiBzdGF0aWMgaW50IG1paV9kaXNjb3Zlcl9waHkoc3RydWN0IGV0aF9kZXZpY2UgKmRldikKIHsKICNkZWZpbmUgTUFYX1BIWV9QQVNTRVMgMTEKQEAgLTkzNyw3ICs5MzcsNyBAQAogCX0KIAlyZXR1cm4gcGh5YWRkcjsKIH0KLSNlbmRpZgkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjZW5kaWYJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KIAogI2lmIChkZWZpbmVkKENPTkZJR19NSUkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpKSAmJiAhZGVmaW5lZChDT05GSUdfQklUQkFOR01JSSkKIApAQCAtOTQ4LDcgKzk0OCw3IEBACiAgKi8KIHN0YXRpYyB2b2lkIF9fbWlpX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBmZWNfdCAqZmVjcCA9ICYoaW1tci0+aW1fY3BtLmNwX2ZlYyk7CiAKIAlpZiAoZmVjX3Jlc2V0KGZlY3ApIDwgMCkKZGlmZiAtLWdpdCBhL2NwdS9tcGM4eHgvaTJjLmMgYi9jcHUvbXBjOHh4L2kyYy5jCmluZGV4IGYwNWI2NjYuLjI5YzdjNzEgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4eHgvaTJjLmMKKysrIGIvY3B1L21wYzh4eC9pMmMuYwpAQCAtNDUsMTIgKzQ1LDEyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXQgZGVmYXVsdCB2YWx1ZXMKICAqLwotI2lmbmRlZglDRkdfSTJDX1NQRUVECi0jZGVmaW5lCUNGR19JMkNfU1BFRUQJNTAwMDAKKyNpZm5kZWYJQ09ORklHX1NZU19JMkNfU1BFRUQKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfU1BFRUQJNTAwMDAKICNlbmRpZgogCi0jaWZuZGVmCUNGR19JMkNfU0xBVkUKLSNkZWZpbmUJQ0ZHX0kyQ19TTEFWRQkweEZFCisjaWZuZGVmCUNPTkZJR19TWVNfSTJDX1NMQVZFCisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX1NMQVZFCTB4RkUKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCkBAIC0xNjIsNyArMTYyLDcgQEAKIHN0YXRpYyBpbnQKIGkyY19zZXRyYXRlIChpbnQgaHosIGludCBzcGVlZCkKIHsKLQlpbW1hcF90CQkqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwlpbW1hcF90CQkqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgaTJjOHh4X3QgKmkyYyA9IChpMmM4eHhfdCAqKSAmIGltbWFwLT5pbV9pMmM7CiAJaW50CQlicmd2YWwsCiAJCQltb2R2YWwsCQkvKiAwLTMgKi8KQEAgLTIwNyw3ICsyMDcsNyBAQAogdm9pZAogaTJjX2luaXQoaW50IHNwZWVkLCBpbnQgc2xhdmVhZGRyKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUiA7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiA7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwID0gKGNwbTh4eF90ICopJmltbWFwLT5pbV9jcG07CiAJdm9sYXRpbGUgaTJjOHh4X3QgKmkyYwk9IChpMmM4eHhfdCAqKSZpbW1hcC0+aW1faTJjOwogCXZvbGF0aWxlIGlpY190ICppaXAgPSAoaWljX3QgKikmY3AtPmNwX2RwYXJhbVtQUk9GRl9JSUNdOwpAQCAtMjE1LDIxICsyMTUsMjEgQEAKIAl2b2xhdGlsZSBJMkNfQkQgKnJ4YmQsICp0eGJkOwogCXVpbnQgZHBhZGRyOwogCi0jaWZkZWYgQ0ZHX0kyQ19JTklUX0JPQVJECisjaWZkZWYgQ09ORklHX1NZU19JMkNfSU5JVF9CT0FSRAogCS8qIGNhbGwgYm9hcmQgc3BlY2lmaWMgaTJjIGJ1cyByZXNldCByb3V0aW5lIGJlZm9yZSBhY2Nlc3NpbmcgdGhlICAgKi8KIAkvKiBlbnZpcm9ubWVudCwgd2hpY2ggbWlnaHQgYmUgaW4gYSBjaGlwIG9uIHRoYXQgYnVzLiBGb3IgZGV0YWlscyAgICovCiAJLyogYWJvdXQgdGhpcyBwcm9ibGVtIHNlZSBkb2MvSTJDX0VkZ2VfQ29uZGl0aW9ucy4gICAgICAgICAgICAgICAgICAqLwogCWkyY19pbml0X2JvYXJkKCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19JMkNfVUNPREVfUEFUQ0gKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19VQ09ERV9QQVRDSAogCWlpcCA9IChpaWNfdCAqKSZjcC0+Y3BfZHBtZW1baWlwLT5paWNfcnBiYXNlXTsKICNlbHNlCiAJLyogRGlzYWJsZSByZWxvY2F0aW9uICovCiAJaWlwLT5paWNfcnBiYXNlID0gMDsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0FMTE9DX0RQUkFNCisjaWZkZWYgQ09ORklHX1NZU19BTExPQ19EUFJBTQogCWRwYWRkciA9IGlpcC0+aWljX3JiYXNlOwogCWlmIChkcGFkZHIgPT0gMCkgewogCSAgICAvKiBuZWVkIHRvIGFsbG9jYXRlIGR1YWwgcG9ydCByYW0gKi8KQEAgLTI2OSw3ICsyNjksNyBAQAogCSAqIGRpdmlkZSBCUkdDTEsgYnkgMSkKIAkgKi8KIAlQUklOVEQoKCJbSTJDXSBTZXR0aW5nIHJhdGUuLi5cbiIpKTsKLQlpMmNfc2V0cmF0ZSAoZ2QtPmNwdV9jbGssIENGR19JMkNfU1BFRUQpIDsKKwlpMmNfc2V0cmF0ZSAoZ2QtPmNwdV9jbGssIENPTkZJR19TWVNfSTJDX1NQRUVEKSA7CiAKIAkvKiBTZXQgSTJDIGNvbnRyb2xsZXIgaW4gbWFzdGVyIG1vZGUgKi8KIAlpMmMtPmkyY19pMmNvbSA9IDB4MDE7CkBAIC0yOTUsNyArMjk1LDcgQEAKIAkvKiBTZXQgbWF4aW11bSByZWNlaXZlIHNpemUuICovCiAJaWlwLT5paWNfbXJibHIgPSBJMkNfUlhUWF9MRU47CiAKLSNpZmRlZiBDRkdfSTJDX1VDT0RFX1BBVENICisjaWZkZWYgQ09ORklHX1NZU19JMkNfVUNPREVfUEFUQ0gKIAkvKgogCSAqICBJbml0aWFsaXplIHJlcXVpcmVkIHBhcmFtZXRlcnMgaWYgdXNpbmcgbWljcm9jb2RlIHBhdGNoLgogCSAqLwpAQCAtMzE4LDEzICszMTgsMTMgQEAKIHN0YXRpYyB2b2lkCiBpMmNfbmV3aW8oaTJjX3N0YXRlX3QgKnN0YXRlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUiA7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiA7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwID0gKGNwbTh4eF90ICopJmltbWFwLT5pbV9jcG07CiAJdm9sYXRpbGUgaWljX3QgKmlpcCA9IChpaWNfdCAqKSZjcC0+Y3BfZHBhcmFtW1BST0ZGX0lJQ107CiAKIAlQUklOVEQoKCJbSTJDXSBpMmNfbmV3aW9cbiIpKTsKIAotI2lmZGVmIENGR19JMkNfVUNPREVfUEFUQ0gKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19VQ09ERV9QQVRDSAogCWlpcCA9IChpaWNfdCAqKSZjcC0+Y3BfZHBtZW1baWlwLT5paWNfcnBiYXNlXTsKICNlbmRpZgogCXN0YXRlLT5yeF9pZHggPSAwOwpAQCAtNDkyLDcgKzQ5Miw3IEBACiAKIHN0YXRpYyBpbnQgaTJjX2RvaW8oaTJjX3N0YXRlX3QgKnN0YXRlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUiA7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiA7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwID0gKGNwbTh4eF90ICopJmltbWFwLT5pbV9jcG07CiAJdm9sYXRpbGUgaTJjOHh4X3QgKmkyYwk9IChpMmM4eHhfdCAqKSZpbW1hcC0+aW1faTJjOwogCXZvbGF0aWxlIGlpY190ICppaXAgPSAoaWljX3QgKikmY3AtPmNwX2RwYXJhbVtQUk9GRl9JSUNdOwpAQCAtNTAxLDcgKzUwMSw3IEBACiAKIAlQUklOVEQoKCJbSTJDXSBpMmNfZG9pb1xuIikpOwogCi0jaWZkZWYgQ0ZHX0kyQ19VQ09ERV9QQVRDSAorI2lmZGVmIENPTkZJR19TWVNfSTJDX1VDT0RFX1BBVENICiAJaWlwID0gKGlpY190ICopJmNwLT5jcF9kcG1lbVtpaXAtPmlpY19ycGJhc2VdOwogI2VuZGlmCiAKQEAgLTU5Myw3ICs1OTMsNyBAQAogCWludCByYzsKIAl1Y2hhciBidWZbMV07CiAKLQlpMmNfaW5pdChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCiAJaTJjX25ld2lvKCZzdGF0ZSk7CiAKQEAgLTYyOCw3ICs2MjgsNyBAQAogCXhhZGRyWzJdID0gKGFkZHIgPj4gIDgpICYgMHhGRjsKIAl4YWRkclszXSA9ICBhZGRyICAgICAgICAmIDB4RkY7CiAKLSNpZmRlZiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCisjaWZkZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKIAkvKgogCSAqIEVFUFJPTSBjaGlwcyB0aGF0IGltcGxlbWVudCAiYWRkcmVzcyBvdmVyZmxvdyIgYXJlIG9uZXMgbGlrZQogCSAqIENhdGFseXN0IDI0V0MwNC8wOC8xNiB3aGljaCBoYXMgOS8xMC8xMSBiaXRzIG9mIGFkZHJlc3MgYW5kIHRoZQpAQCAtNjM5LDcgKzYzOSw3IEBACiAJICogYmUgb25lIGJ5dGUgYmVjYXVzZSB0aGUgZXh0cmEgYWRkcmVzcyBiaXRzIGFyZSBoaWRkZW4gaW4gdGhlCiAJICogY2hpcCBhZGRyZXNzLgogCSAqLwotCSBjaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cpOworCSBjaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKICNlbmRpZgogCiAJaTJjX25ld2lvKCZzdGF0ZSk7CkBAIC02NzgsNyArNjc4LDcgQEAKIAl4YWRkclsyXSA9IChhZGRyID4+ICA4KSAmIDB4RkY7CiAJeGFkZHJbM10gPSAgYWRkciAgICAgICAgJiAweEZGOwogCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCiAJLyoKIAkgKiBFRVBST00gY2hpcHMgdGhhdCBpbXBsZW1lbnQgImFkZHJlc3Mgb3ZlcmZsb3ciIGFyZSBvbmVzIGxpa2UKIAkgKiBDYXRhbHlzdCAyNFdDMDQvMDgvMTYgd2hpY2ggaGFzIDkvMTAvMTEgYml0cyBvZiBhZGRyZXNzIGFuZCB0aGUKQEAgLTY4OSw3ICs2ODksNyBAQAogCSAqIGJlIG9uZSBieXRlIGJlY2F1c2UgdGhlIGV4dHJhIGFkZHJlc3MgYml0cyBhcmUgaGlkZGVuIGluIHRoZQogCSAqIGNoaXAgYWRkcmVzcy4KIAkgKi8KLQkgY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKKwkgY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVyk7CiAjZW5kaWYKIAogCWkyY19uZXdpbygmc3RhdGUpOwpAQCAtNzIyLDcgKzcyMiw3IEBACiB7CiAJdWNoYXIgYnVmOwogCi0JaTJjX2luaXQoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAogCWkyY19yZWFkKGkyY19hZGRyLCByZWcsIDEsICZidWYsIDEpOwogCkBAIC03MzIsNyArNzMyLDcgQEAKIHZvaWQKIGkyY19yZWdfd3JpdGUodWNoYXIgaTJjX2FkZHIsIHVjaGFyIHJlZywgdWNoYXIgdmFsKQogewotCWkyY19pbml0KENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0KENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKIAlpMmNfd3JpdGUoaTJjX2FkZHIsIHJlZywgMSwgJnZhbCwgMSk7CiB9CmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4L2ludGVycnVwdHMuYyBiL2NwdS9tcGM4eHgvaW50ZXJydXB0cy5jCmluZGV4IDIwZTcwMTIuLjVkYWE2YjIgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4eHgvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9tcGM4eHgvaW50ZXJydXB0cy5jCkBAIC00Nyw5ICs0Nyw5IEBACiAKIGludCBpbnRlcnJ1cHRfaW5pdF9jcHUgKHVuc2lnbmVkICpkZWNyZW1lbnRlcl9jb3VudCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAotCSpkZWNyZW1lbnRlcl9jb3VudCA9IGdldF90YmNsayAoKSAvIENGR19IWjsKKwkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsgKCkgLyBDT05GSUdfU1lTX0haOwogCiAJLyogZGlzYWJsZSBhbGwgaW50ZXJydXB0cyAqLwogCWltbXItPmltX3NpdV9jb25mLnNjX3NpbWFzayA9IDA7CkBAIC02Nyw3ICs2Nyw3IEBACiAgKi8KIHZvaWQgZXh0ZXJuYWxfaW50ZXJydXB0IChzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlpbnQgaXJxOwogCXVsb25nIHNpbWFzaywgbmV3bWFzazsKIAl1bG9uZyB2ZWMsIHZfYml0OwpAQCAtMTI0LDcgKzEyNCw3IEBACiAgKi8KIHN0YXRpYyB2b2lkIGNwbV9pbnRlcnJ1cHQgKHZvaWQgKnJlZ3MpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdWludCB2ZWM7CiAKIAkvKgpAQCAtMTY1LDcgKzE2NSw3IEBACiB2b2lkIGlycV9pbnN0YWxsX2hhbmRsZXIgKGludCB2ZWMsIGludGVycnVwdF9oYW5kbGVyX3QgKiBoYW5kbGVyLAogCQkJCQkJICB2b2lkICphcmcpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlpZiAoKHZlYyAmIENQTVZFQ19PRkZTRVQpICE9IDApIHsKIAkJLyogQ1BNIGludGVycnVwdCAqLwpAQCAtMjAyLDcgKzIwMiw3IEBACiAKIHZvaWQgaXJxX2ZyZWVfaGFuZGxlciAoaW50IHZlYykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCWlmICgodmVjICYgQ1BNVkVDX09GRlNFVCkgIT0gMCkgewogCQkvKiBDUE0gaW50ZXJydXB0ICovCkBAIC0yMzAsNyArMjMwLDcgQEAKIAogc3RhdGljIHZvaWQgY3BtX2ludGVycnVwdF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJLyoKIAkgKiBJbml0aWFsaXplIHRoZSBDUE0gaW50ZXJydXB0IGNvbnRyb2xsZXIuCkBAIC0yNjYsNyArMjY2LDcgQEAKICAqLwogdm9pZCB0aW1lcl9pbnRlcnJ1cHRfY3B1IChzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogI2lmIDAKIAlwcmludGYgKCIqKiogVGltZXIgSW50ZXJydXB0ICoqKiAiKTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4eHgva2dkYi5TIGIvY3B1L21wYzh4eC9rZ2RiLlMKaW5kZXggODEyYmFhMy4uMmNjOGZlNiAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eC9rZ2RiLlMKKysrIGIvY3B1L21wYzh4eC9rZ2RiLlMKQEAgLTUyLDIxICs1MiwyMSBAQAogCiAJLmdsb2JsCWtnZGJfZmx1c2hfY2FjaGVfcmFuZ2UKIGtnZGJfZmx1c2hfY2FjaGVfcmFuZ2U6Ci0JbGkJcjUsQ0ZHX0NBQ0hFTElORV9TSVpFLTEKKwlsaQlyNSxDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFLTEKIAlhbmRjCXIzLHIzLHI1CiAJc3ViZglyNCxyMyxyNAogCWFkZAlyNCxyNCxyNQotCXNyd2kuCXI0LHI0LENGR19DQUNIRUxJTkVfU0hJRlQKKwlzcndpLglyNCxyNCxDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAogCWJlcWxyCiAJbXRjdHIJcjQKIAltcglyNixyMwogMToJZGNic3QJMCxyMwotCWFkZGkJcjMscjMsQ0ZHX0NBQ0hFTElORV9TSVpFCisJYWRkaQlyMyxyMyxDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCiAJYmRuegkxYgogCXN5bmMJCQkJLyogd2FpdCBmb3IgZGNic3QncyB0byBnZXQgdG8gcmFtICovCiAJbXRjdHIJcjQKIDI6CWljYmkJMCxyNgotCWFkZGkJcjYscjYsQ0ZHX0NBQ0hFTElORV9TSVpFCisJYWRkaQlyNixyNixDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCiAJYmRuegkyYgogCVNZTkMKIAlibHIKZGlmZiAtLWdpdCBhL2NwdS9tcGM4eHgvbGNkLmMgYi9jcHUvbXBjOHh4L2xjZC5jCmluZGV4IDNjNjRhOWIuLjQ0NzRlMjQgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4eHgvbGNkLmMKKysrIGIvY3B1L21wYzh4eC9sY2QuYwpAQCAtNjMsNyArNjMsNyBAQAogI2RlZmluZSBMQ0RfQlBQCUxDRF9DT0xPUjQKIAogdmlkaW5mb190IHBhbmVsX2luZm8gPSB7Ci0gICAgNjQwLCA0ODAsIDEzMiwgOTksIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfSElHSCwKKyAgICA2NDAsIDQ4MCwgMTMyLCA5OSwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsCiAgICAgTENEX0JQUCwgMSwgMCwgMSwgMCwgIDUsIDAsIDAsIDAKIAkJLyogd2JsLCB2cHcsIGxjZGFjLCB3YmYgKi8KIH07CkBAIC03Niw3ICs3Niw3IEBACiAgKiAgSGl0YWNoaSBTUDE5WDAwMS0uIEFjdGl2ZSwgY29sb3IsIHNpbmdsZSBzY2FuLgogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICA2NDAsIDQ4MCwgMTU0LCAxMTYsIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfSElHSCwKKyAgICA2NDAsIDQ4MCwgMTU0LCAxMTYsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILAogICAgIExDRF9DT0xPUjgsIDEsIDAsIDEsIDAsIDAsIDAsIDAsIDAKIAkJLyogd2JsLCB2cHcsIGxjZGFjLCB3YmYgKi8KIH07CkBAIC04OSw3ICs4OSw3IEBACiAgKiAgTkVDIE5MNjQ0OEFDMzMtMTguIEFjdGl2ZSwgY29sb3IsIHNpbmdsZSBzY2FuLgogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICA2NDAsIDQ4MCwgMTMyLCA5OSwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfTE9XLCBDRkdfTE9XLCBDRkdfSElHSCwKKyAgICA2NDAsIDQ4MCwgMTMyLCA5OSwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0xPVywgQ09ORklHX1NZU19ISUdILAogICAgIDMsIDAsIDAsIDEsIDEsIDE0NCwgMiwgMCwgMzMKIAkJLyogd2JsLCB2cHcsIGxjZGFjLCB3YmYgKi8KIH07CkBAIC0xMDEsNyArMTAxLDcgQEAKICAqICBORUMgTkw2NDQ4QkMyMC0wOC4gIDYuNSIsIDY0MHg0ODAuIEFjdGl2ZSwgY29sb3IsIHNpbmdsZSBzY2FuLgogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICA2NDAsIDQ4MCwgMTMyLCA5OSwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfTE9XLCBDRkdfTE9XLCBDRkdfSElHSCwKKyAgICA2NDAsIDQ4MCwgMTMyLCA5OSwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0xPVywgQ09ORklHX1NZU19ISUdILAogICAgIDMsIDAsIDAsIDEsIDEsIDE0NCwgMiwgMCwgMzMKIAkJLyogd2JsLCB2cHcsIGxjZGFjLCB3YmYgKi8KIH07CkBAIC0xMTMsNyArMTEzLDcgQEAKICAqICBORUMgTkw2NDQ4QkMzMy01NC4gMTAuNCIsIDY0MHg0ODAuIEFjdGl2ZSwgY29sb3IsIHNpbmdsZSBzY2FuLgogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICA2NDAsIDQ4MCwgMjEyLCAxNTgsIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0xPVywgQ0ZHX0xPVywgQ0ZHX0hJR0gsCisgICAgNjQwLCA0ODAsIDIxMiwgMTU4LCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19MT1csIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0hJR0gsCiAgICAgMywgMCwgMCwgMSwgMSwgMTQ0LCAyLCAwLCAzMwogCQkvKiB3YmwsIHZwdywgbGNkYWMsIHdiZiAqLwogfTsKQEAgLTEyNSw3ICsxMjUsNyBAQAogICogIFNIQVJQIExRMTA0VjdEUzAxLiA2LjUiLCA2NDB4NDgwLiBBY3RpdmUsIGNvbG9yLCBzaW5nbGUgc2Nhbi4KICAqLwogdmlkaW5mb190IHBhbmVsX2luZm8gPSB7Ci0gICAgNjQwLCA0ODAsIDEzMiwgOTksIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0xPVywgQ0ZHX0xPVywgQ0ZHX0xPVywKKyAgICA2NDAsIDQ4MCwgMTMyLCA5OSwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0xPVywgQ09ORklHX1NZU19MT1csCiAgICAgMywgMCwgMCwgMSwgMSwgMjUsIDEsIDAsIDMzCiAJCS8qIHdibCwgdnB3LCBsY2RhYywgd2JmICovCiB9OwpAQCAtMTM4LDcgKzEzOCw3IEBACiAgKiBub3Qgc3VyZSB3aGF0IGl0IGlzLi4uLi4uLgogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICAzMjAsIDI0MCwgMCwgMCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0hJR0gsIENGR19ISUdILAorICAgIDMyMCwgMjQwLCAwLCAwLCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwKICAgICAzLCAwLCAwLCAxLCAxLCAxNSwgNCwgMCwgMwogfTsKICNlbmRpZiAvKiBDT05GSUdfU0hBUlBfMTZ4OSAqLwpAQCAtMTUyLDcgKzE1Miw3IEBACiAjZGVmaW5lIExDRF9ERiAxMgogCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICAzMjAsIDI0MCwgMCwgMCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfTE9XLCBDRkdfTE9XLCBDRkdfSElHSCwKKyAgICAzMjAsIDI0MCwgMCwgMCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0xPVywgQ09ORklHX1NZU19ISUdILAogICAgIDMsIDAsIDAsIDEsIDEsIDE1LCA0LCAwLCAzCiAJCS8qIHdibCwgdnB3LCBsY2RhYywgd2JmICovCiB9OwpAQCAtMTY1LDcgKzE2NSw3IEBACiAgKiBTaGFycCBMUTY0RDM0MSBkaXNwbGF5LCA2NDB4NDgwLiBBY3RpdmUsIGNvbG9yLCBzaW5nbGUgc2Nhbi4KICAqLwogdmlkaW5mb190IHBhbmVsX2luZm8gPSB7Ci0gICAgNjQwLCA0ODAsIDAsIDAsIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0xPVywgQ0ZHX0xPVywgQ0ZHX0hJR0gsCisgICAgNjQwLCA0ODAsIDAsIDAsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0xPVywgQ09ORklHX1NZU19MT1csIENPTkZJR19TWVNfSElHSCwKICAgICAzLCAwLCAwLCAxLCAxLCAxMjgsIDE2LCAwLCAzMgogCQkvKiB3YmwsIHZwdywgbGNkYWMsIHdiZiAqLwogfTsKQEAgLTE3Niw3ICsxNzYsNyBAQAogICogU2hhcnAgTFEwNjVUOURSNTFVIGRpc3BsYXksIDQwMHgyNDAuIEFjdGl2ZSwgY29sb3IsIHNpbmdsZSBzY2FuLgogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICA0MDAsIDI0MCwgMTQzLCA3OSwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0hJR0gsIENGR19ISUdILAorICAgIDQwMCwgMjQwLCAxNDMsIDc5LCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwKICAgICAzLCAwLCAwLCAxLCAxLCAyNDgsIDQsIDAsIDM1CiAJCS8qIHdibCwgdnB3LCBsY2RhYywgd2JmICovCiB9OwpAQCAtMTg4LDcgKzE4OCw3IEBACiAgKiBTaGFycCBMUTA4NFYxREcyMSBkaXNwbGF5LCA2NDB4NDgwLiBBY3RpdmUsIGNvbG9yLCBzaW5nbGUgc2Nhbi4KICAqLwogdmlkaW5mb190IHBhbmVsX2luZm8gPSB7Ci0gICAgNjQwLCA0ODAsIDE3MSwgMTI5LCBDRkdfSElHSCwgQ0ZHX0hJR0gsIENGR19MT1csIENGR19MT1csIENGR19MT1csCisgICAgNjQwLCA0ODAsIDE3MSwgMTI5LCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19MT1csIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0xPVywKICAgICAzLCAwLCAwLCAxLCAxLCAxNjAsIDMsIDAsIDQ4CiAJCS8qIHdibCwgdnB3LCBsY2RhYywgd2JmICovCiB9OwpAQCAtMjAxLDcgKzIwMSw3IEBACiAgKiBITEQxMDQ1IGRpc3BsYXksIDY0MHg0ODAuIEFjdGl2ZSwgY29sb3IsIHNpbmdsZSBzY2FuLgogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICA2NDAsIDQ4MCwgMCwgMCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfTE9XLCBDRkdfTE9XLCBDRkdfSElHSCwKKyAgICA2NDAsIDQ4MCwgMCwgMCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0xPVywgQ09ORklHX1NZU19ISUdILAogICAgIDMsIDAsIDAsIDEsIDEsIDE2MCwgMywgMCwgNDgKIAkJLyogd2JsLCB2cHcsIGxjZGFjLCB3YmYgKi8KIH07CkBAIC0yMTMsNyArMjEzLDcgQEAKICAqIFByaW1lIFZpZXcgVjE2QzY0NDhBQwogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICA2NDAsIDQ4MCwgMTMwLCA5OCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfTE9XLCBDRkdfTE9XLCBDRkdfSElHSCwKKyAgICA2NDAsIDQ4MCwgMTMwLCA5OCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0xPVywgQ09ORklHX1NZU19ISUdILAogICAgIDMsIDAsIDAsIDEsIDEsIDE0NCwgMiwgMCwgMzUKIAkJLyogd2JsLCB2cHcsIGxjZGFjLCB3YmYgKi8KIH07CkBAIC0yMzUsNyArMjM1LDcgQEAKIAkJCQkvKiAxIC0gIDQgZ3JleSBsZXZlbHMsIDIgYnBwICovCiAJCQkJLyogMiAtIDE2IGdyZXkgbGV2ZWxzLCA0IGJwcCAqLwogdmlkaW5mb190IHBhbmVsX2luZm8gPSB7Ci0gICAgMzIwLCAyNDAsIDAsIDAsIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfTE9XLAorICAgIDMyMCwgMjQwLCAwLCAwLCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLAogICAgIE9QVFJFWF9CUFAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQKIH07CiAjZW5kaWYgLyogQ09ORklHX09QVFJFWF9CVyAqLwpAQCAtMjQ5LDcgKzI0OSw3IEBACiAjZGVmaW5lIExDRF9ERgkJMTAKIAogdmlkaW5mb190IHBhbmVsX2luZm8gPSB7Ci0gICAgMzIwLCAyNDAsIDAsIDAsIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfTE9XLAorICAgIDMyMCwgMjQwLCAwLCAwLCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLAogICAgIExDRF9CUFAsICAwLCAwLCAwLCAwLCAzMywgMCwgMCwgMAogfTsKICNlbmRpZgpAQCAtMzA3LDcgKzMwNyw3IEBACiAKIHZvaWQgbGNkX2N0cmxfaW5pdCAodm9pZCAqbGNkYmFzZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBsY2Q4MjNfdCAqbGNkcCA9ICZpbW1yLT5pbV9sY2Q7CiAKIAl1aW50IGxjY3J0bXA7CkBAIC0zMjAsNyArMzIwLDcgQEAKIAogI2lmZGVmIENPTkZJR19SUFhMSVRFCiAJLyogVGhpcyBpcyBzcGVjaWFsIGZvciBSUFhsaXRlX0RXIFNvZnR3YXJlIERldmVsb3BtZW50IFBsYXRmb3JtICoqW1NhbV0qKiAqLwotCXBhbmVsX2luZm8udmxfZHAgPSBDRkdfTE9XOworCXBhbmVsX2luZm8udmxfZHAgPSBDT05GSUdfU1lTX0xPVzsKICNlbmRpZgogCiAJbGNjcnRtcCAgPSBMQ0RCSVQgKExDQ1JfQk5VTV9CSVQsCkBAIC00MzYsMTQgKzQzNiwxNCBAQAogc3RhdGljIHZvaWQKIGxjZF9nZXRjb2xyZWcgKHVzaG9ydCByZWdubywgdXNob3J0ICpyZWQsIHVzaG9ydCAqZ3JlZW4sIHVzaG9ydCAqYmx1ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdCAqY3AgPSAmKGltbXItPmltX2NwbSk7CiAJdW5zaWduZWQgc2hvcnQgY29scmVnLCAqY21hcF9wdHI7CiAKIAljbWFwX3B0ciA9ICh1bnNpZ25lZCBzaG9ydCAqKSZjcC0+bGNkX2NtYXBbcmVnbm8gKiAyXTsKIAogCWNvbHJlZyA9ICpjbWFwX3B0cjsKLSNpZmRlZglDRkdfSU5WRVJUX0NPTE9SUworI2lmZGVmCUNPTkZJR19TWVNfSU5WRVJUX0NPTE9SUwogCWNvbHJlZyBePSAweDBGRkY7CiAjZW5kaWYKIApAQCAtNDU5LDcgKzQ1OSw3IEBACiB2b2lkCiBsY2Rfc2V0Y29scmVnICh1c2hvcnQgcmVnbm8sIHVzaG9ydCByZWQsIHVzaG9ydCBncmVlbiwgdXNob3J0IGJsdWUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwID0gJihpbW1yLT5pbV9jcG0pOwogCXVuc2lnbmVkIHNob3J0IGNvbHJlZywgKmNtYXBfcHRyOwogCkBAIC00NjgsNyArNDY4LDcgQEAKIAljb2xyZWcgPSAoKHJlZCAgICYgMHgwRikgPDwgOCkgfAogCQkgKChncmVlbiAmIDB4MEYpIDw8IDQpIHwKIAkJICAoYmx1ZSAgJiAweDBGKSA7Ci0jaWZkZWYJQ0ZHX0lOVkVSVF9DT0xPUlMKKyNpZmRlZglDT05GSUdfU1lTX0lOVkVSVF9DT0xPUlMKIAljb2xyZWcgXj0gMHgwRkZGOwogI2VuZGlmCiAJKmNtYXBfcHRyID0gY29scmVnOwpAQCAtNDg2LDcgKzQ4Niw3IEBACiBzdGF0aWMKIHZvaWQgbGNkX2luaXRjb2xyZWdzICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcCA9ICYoaW1tci0+aW1fY3BtKTsKIAl1c2hvcnQgcmVnbm87CiAKQEAgLTUwMSw3ICs1MDEsNyBAQAogCiB2b2lkIGxjZF9lbmFibGUgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbGNkODIzX3QgKmxjZHAgPSAmaW1tci0+aW1fbGNkOwogCiAJLyogRW5hYmxlIHRoZSBMQ0QgcGFuZWwgKi8KQEAgLTUyMSw3ICs1MjEsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfTFdNT04pCiAgICAgewl1Y2hhciBjID0gcGljX3JlYWQgKDB4NjApOwotI2lmIGRlZmluZWQoQ09ORklHX0xDRCkgJiYgZGVmaW5lZChDT05GSUdfTFdNT04pICYmIChDT05GSUdfUE9TVCAmIENGR19QT1NUX1NZU01PTikKKyNpZiBkZWZpbmVkKENPTkZJR19MQ0QpICYmIGRlZmluZWQoQ09ORklHX0xXTU9OKSAmJiAoQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfU1lTTU9OKQogCS8qIEVuYWJsZSBMQ0QgbGF0ZXIgaW4gc3lzbW9uIHRlc3QsIG9ubHkgaWYgdGVtcGVyYXR1cmUgaXMgT0sgKi8KICNlbHNlCiAJYyB8PSAweDA3OwkvKiBQb3dlciBvbiBDQ0ZMLCBFbmFibGUgQ0NGTCwgQ2hpcCBFbmFibGUgTENEICovCkBAIC01ODYsNyArNTg2LDcgQEAKICNpZiBkZWZpbmVkIChDT05GSUdfUkJDODIzKQogdm9pZCBsY2RfZGlzYWJsZSAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBsY2Q4MjNfdCAqbGNkcCA9ICZpbW1yLT5pbV9sY2Q7CiAKICNpZiBkZWZpbmVkKENPTkZJR19MV01PTikKZGlmZiAtLWdpdCBhL2NwdS9tcGM4eHgvc2NjLmMgYi9jcHUvbXBjOHh4L3NjYy5jCmluZGV4IDA5YTYzNDguLmVmZmI5NjcgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4eHgvc2NjLmMKKysrIGIvY3B1L21wYzh4eC9zY2MuYwpAQCAtMTkxLDcgKzE5MSw3IEBACiAJaW50IGk7CiAJc2NjX2VuZXRfdCAqcHJhbV9wdHI7CiAKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogI2lmIGRlZmluZWQoQ09ORklHX0xXTU9OKQogCXJlc2V0X3BoeSgpOwpAQCAtMjE2LDcgKzIxNiw3IEBACiAJdHhJZHggPSAwOwogCiAJaWYgKCFydHgpIHsKLSNpZmRlZiBDRkdfQUxMT0NfRFBSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCiAJCXJ0eCA9IChSVFhCRCAqKSAoaW1tci0+aW1fY3BtLmNwX2RwbWVtICsKIAkJCQkgZHByYW1fYWxsb2NfYWxpZ24gKHNpemVvZiAoUlRYQkQpLCA4KSk7CiAjZWxzZQpAQCAtNTUyLDcgKzU1Miw3IEBACiAKIHN0YXRpYyB2b2lkIHNjY19oYWx0IChzdHJ1Y3QgZXRoX2RldmljZSAqZGV2KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJaW1tci0+aW1fY3BtLmNwX3NjY1tTQ0NfRU5FVF0uc2NjX2dzbXJsICY9CiAJCX4oU0NDX0dTTVJMX0VOUiB8IFNDQ19HU01STF9FTlQpOwpAQCAtNTYzLDcgKzU2Myw3IEBACiAjaWYgMAogdm9pZCByZXN0YXJ0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJaW1tci0+aW1fY3BtLmNwX3NjY1tTQ0NfRU5FVF0uc2NjX2dzbXJsIHw9CiAJCShTQ0NfR1NNUkxfRU5SIHwgU0NDX0dTTVJMX0VOVCk7CmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4L3NlcmlhbC5jIGIvY3B1L21wYzh4eC9zZXJpYWwuYwppbmRleCBhZDAyMjk5Li5jYWU5MGRkIDEwMDY0NAotLS0gYS9jcHUvbXBjOHh4L3NlcmlhbC5jCisrKyBiL2NwdS9tcGM4eHgvc2VyaWFsLmMKQEAgLTc0LDggKzc0LDggQEAKIAkJZGl2aXNvcj0oNTAqMTAwMCoxMDAwICsgOCo5NjAwKS8xNi85NjAwOwogCX0KIAotI2lmZGVmIENGR19CUkdDTEtfUFJFU0NBTEUKLQlkaXZpc29yIC89IENGR19CUkdDTEtfUFJFU0NBTEU7CisjaWZkZWYgQ09ORklHX1NZU19CUkdDTEtfUFJFU0NBTEUKKwlkaXZpc29yIC89IENPTkZJR19TWVNfQlJHQ0xLX1BSRVNDQUxFOwogI2VuZGlmCiAKIAlpZihkaXZpc29yPD0weDEwMDApIHsKQEAgLTk0LDcgKzk0LDcgQEAKIAogc3RhdGljIHZvaWQgc21jX3NldGJyZyAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdCAqY3AgPSAmKGltLT5pbV9jcG0pOwogCiAJLyogU2V0IHVwIHRoZSBiYXVkIHJhdGUgZ2VuZXJhdG9yLgpAQCAtMTEwLDcgKzExMCw3IEBACiAKIHN0YXRpYyBpbnQgc21jX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgc21jX3QgKnNwOwogCXZvbGF0aWxlIHNtY191YXJ0X3QgKnVwOwogCXZvbGF0aWxlIGNiZF90ICp0YmRmLCAqcmJkZjsKQEAgLTEyNCw3ICsxMjQsNyBAQAogCiAJc3AgPSAoc21jX3QgKikgJihjcC0+Y3Bfc21jW1NNQ19JTkRFWF0pOwogCXVwID0gKHNtY191YXJ0X3QgKikgJmNwLT5jcF9kcGFyYW1bUFJPRkZfU01DXTsKLSNpZmRlZiBDRkdfU01DX1VDT0RFX1BBVENICisjaWZkZWYgQ09ORklHX1NZU19TTUNfVUNPREVfUEFUQ0gKIAl1cCA9IChzbWNfdWFydF90ICopICZjcC0+Y3BfZHBtZW1bdXAtPnNtY19ycGJhc2VdOwogI2Vsc2UKIAkvKiBEaXNhYmxlIHJlbG9jYXRpb24gKi8KQEAgLTE0MCwxNSArMTQwLDE1IEBACiAJaW0tPmltX3NpdV9jb25mLnNjX3NkY3IgPSAxOwogCiAJLyogY2xlYXIgZXJyb3IgY29uZGl0aW9ucyAqLwotI2lmZGVmCUNGR19TRFNSCi0JaW0tPmltX3NkbWEuc2RtYV9zZHNyID0gQ0ZHX1NEU1I7CisjaWZkZWYJQ09ORklHX1NZU19TRFNSCisJaW0tPmltX3NkbWEuc2RtYV9zZHNyID0gQ09ORklHX1NZU19TRFNSOwogI2Vsc2UKIAlpbS0+aW1fc2RtYS5zZG1hX3Nkc3IgPSAweDgzOwogI2VuZGlmCiAKIAkvKiBjbGVhciBTRE1BIGludGVycnVwdCBtYXNrICovCi0jaWZkZWYJQ0ZHX1NETVIKLQlpbS0+aW1fc2RtYS5zZG1hX3NkbXIgPSBDRkdfU0RNUjsKKyNpZmRlZglDT05GSUdfU1lTX1NETVIKKwlpbS0+aW1fc2RtYS5zZG1hX3NkbXIgPSBDT05GSUdfU1lTX1NETVI7CiAjZWxzZQogCWltLT5pbV9zZG1hLnNkbWFfc2RtciA9IDB4MDA7CiAjZW5kaWYKQEAgLTE5Myw3ICsxOTMsNyBAQAogCSAqIHRoZSBidWZmZXIgZGVzY3JpcHRvcnMuCiAJICovCiAKLSNpZmRlZiBDRkdfQUxMT0NfRFBSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCiAJZHBhZGRyID0gZHByYW1fYWxsb2NfYWxpZ24gKHNpemVvZihjYmRfdCkqMiArIDIsIDgpIDsKICNlbHNlCiAJZHBhZGRyID0gQ1BNX1NFUklBTF9CQVNFIDsKQEAgLTIxOCw3ICsyMTgsNyBAQAogCXVwLT5zbWNfdGJhc2UgPSBkcGFkZHIrc2l6ZW9mKGNiZF90KTsKIAl1cC0+c21jX3JmY3IgPSBTTUNfRUI7CiAJdXAtPnNtY190ZmNyID0gU01DX0VCOwotI2lmIGRlZmluZWQgKENGR19TTUNfVUNPREVfUEFUQ0gpCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19TTUNfVUNPREVfUEFUQ0gpCiAJdXAtPnNtY19yYnB0ciA9IHVwLT5zbWNfcmJhc2U7CiAJdXAtPnNtY190YnB0ciA9IHVwLT5zbWNfdGJhc2U7CiAJdXAtPnNtY19yc3RhdGUgPSAwOwpAQCAtMjM5LDExICsyMzksMTEgQEAKIAlzcC0+c21jX3NtY20gPSAwOwogCXNwLT5zbWNfc21jZSA9IDB4ZmY7CiAKLSNpZmRlZiBDRkdfU1BDMTkyMF9TTUMxX0NMSzQKKyNpZmRlZiBDT05GSUdfU1lTX1NQQzE5MjBfU01DMV9DTEs0CiAJLyogY2xvY2sgc291cmNlIGlzIFBMRCAqLwogCiAJLyogc2V0IGZyZXEgdG8gMTkyMDAgQmF1ZCAqLwotCSooKHZvbGF0aWxlIHVjaGFyICopIENGR19TUEMxOTIwX1BMRF9CQVNFKzYpID0gMHgzOworCSooKHZvbGF0aWxlIHVjaGFyICopIENPTkZJR19TWVNfU1BDMTkyMF9QTERfQkFTRSs2KSA9IDB4MzsKIAkvKiBjb25maWd1cmUgY2xrNCBhcyBpbnB1dCAqLwogCWltLT5pbV9pb3BvcnQuaW9wX3BkcGFyIHw9IDB4ODAwOwogCWltLT5pbV9pb3BvcnQuaW9wX3BkZGlyICY9IH4weDgwMDsKQEAgLTI4OCw3ICsyODgsNyBAQAogCXZvbGF0aWxlIGNiZF90CQkqdGJkZjsKIAl2b2xhdGlsZSBjaGFyCQkqYnVmOwogCXZvbGF0aWxlIHNtY191YXJ0X3QJKnVwOwotCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90CSpjcG1wID0gJihpbS0+aW1fY3BtKTsKIAogI2lmZGVmIENPTkZJR19NT0RFTV9TVVBQT1JUCkBAIC0zMDAsNyArMzAwLDcgQEAKIAkJc21jX3B1dGMgKCdccicpOwogCiAJdXAgPSAoc21jX3VhcnRfdCAqKSZjcG1wLT5jcF9kcGFyYW1bUFJPRkZfU01DXTsKLSNpZmRlZiBDRkdfU01DX1VDT0RFX1BBVENICisjaWZkZWYgQ09ORklHX1NZU19TTUNfVUNPREVfUEFUQ0gKIAl1cCA9IChzbWNfdWFydF90ICopICZjcG1wLT5jcF9kcG1lbVt1cC0+c21jX3JwYmFzZV07CiAjZW5kaWYKIApAQCAtMzM2LDEyICszMzYsMTIgQEAKIAl2b2xhdGlsZSBjYmRfdAkJKnJiZGY7CiAJdm9sYXRpbGUgdW5zaWduZWQgY2hhcgkqYnVmOwogCXZvbGF0aWxlIHNtY191YXJ0X3QJKnVwOwotCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90CSpjcG1wID0gJihpbS0+aW1fY3BtKTsKIAl1bnNpZ25lZCBjaGFyCQljOwogCiAJdXAgPSAoc21jX3VhcnRfdCAqKSZjcG1wLT5jcF9kcGFyYW1bUFJPRkZfU01DXTsKLSNpZmRlZiBDRkdfU01DX1VDT0RFX1BBVENICisjaWZkZWYgQ09ORklHX1NZU19TTUNfVUNPREVfUEFUQ0gKIAl1cCA9IChzbWNfdWFydF90ICopICZjcG1wLT5jcF9kcG1lbVt1cC0+c21jX3JwYmFzZV07CiAjZW5kaWYKIApAQCAtMzY1LDExICszNjUsMTEgQEAKIHsKIAl2b2xhdGlsZSBjYmRfdAkJKnJiZGY7CiAJdm9sYXRpbGUgc21jX3VhcnRfdAkqdXA7Ci0Jdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY3BtOHh4X3QJKmNwbXAgPSAmKGltLT5pbV9jcG0pOwogCiAJdXAgPSAoc21jX3VhcnRfdCAqKSZjcG1wLT5jcF9kcGFyYW1bUFJPRkZfU01DXTsKLSNpZmRlZiBDRkdfU01DX1VDT0RFX1BBVENICisjaWZkZWYgQ09ORklHX1NZU19TTUNfVUNPREVfUEFUQ0gKIAl1cCA9IChzbWNfdWFydF90ICopICZjcG1wLT5jcF9kcG1lbVt1cC0+c21jX3JwYmFzZV07CiAjZW5kaWYKIApAQCAtMzk4LDcgKzM5OCw3IEBACiBzdGF0aWMgdm9pZAogc2NjX3NldGJyZyAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdCAqY3AgPSAmKGltLT5pbV9jcG0pOwogCiAJLyogU2V0IHVwIHRoZSBiYXVkIHJhdGUgZ2VuZXJhdG9yLgpAQCAtNDE0LDcgKzQxNCw3IEBACiAKIHN0YXRpYyBpbnQgc2NjX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgc2NjX3QgKnNwOwogCXZvbGF0aWxlIHNjY191YXJ0X3QgKnVwOwogCXZvbGF0aWxlIGNiZF90ICp0YmRmLCAqcmJkZjsKQEAgLTQ3NCw3ICs0NzQsNyBAQAogCS8qIEFsbG9jYXRlIHNwYWNlIGZvciB0d28gYnVmZmVyIGRlc2NyaXB0b3JzIGluIHRoZSBEUCByYW0uCiAJICovCiAKLSNpZmRlZiBDRkdfQUxMT0NfRFBSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCiAJZHBhZGRyID0gZHByYW1fYWxsb2NfYWxpZ24gKHNpemVvZihjYmRfdCkqMiArIDIsIDgpIDsKICNlbHNlCiAJZHBhZGRyID0gQ1BNX1NFUklBTDJfQkFTRSA7CkBAIC01ODAsNyArNTgwLDcgQEAKIAl2b2xhdGlsZSBjYmRfdAkJKnRiZGY7CiAJdm9sYXRpbGUgY2hhcgkJKmJ1ZjsKIAl2b2xhdGlsZSBzY2NfdWFydF90CSp1cDsKLQl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdAkqY3BtcCA9ICYoaW0tPmltX2NwbSk7CiAKICNpZmRlZiBDT05GSUdfTU9ERU1fU1VQUE9SVApAQCAtNjI1LDcgKzYyNSw3IEBACiAJdm9sYXRpbGUgY2JkX3QJCSpyYmRmOwogCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIJKmJ1ZjsKIAl2b2xhdGlsZSBzY2NfdWFydF90CSp1cDsKLQl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdAkqY3BtcCA9ICYoaW0tPmltX2NwbSk7CiAJdW5zaWduZWQgY2hhcgkJYzsKIApAQCAtNjUxLDcgKzY1MSw3IEBACiB7CiAJdm9sYXRpbGUgY2JkX3QJCSpyYmRmOwogCXZvbGF0aWxlIHNjY191YXJ0X3QJKnVwOwotCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90CSpjcG1wID0gJihpbS0+aW1fY3BtKTsKIAogCXVwID0gKHNjY191YXJ0X3QgKikmY3BtcC0+Y3BfZHBhcmFtW1BST0ZGX1NDQ107CmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4L3NwZWVkLmMgYi9jcHUvbXBjOHh4L3NwZWVkLmMKaW5kZXggMDcwYmFiYy4uZjMwOWYyOSAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eC9zcGVlZC5jCisrKyBiL2NwdS9tcGM4eHgvc3BlZWQuYwpAQCAtMjcsNyArMjcsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotI2lmICFkZWZpbmVkKENPTkZJR184eHhfQ1BVQ0xLX0RFRkFVTFQpIHx8IGRlZmluZWQoQ0ZHX01FQVNVUkVfQ1BVQ0xLKSB8fCBkZWZpbmVkKERFQlVHKQorI2lmICFkZWZpbmVkKENPTkZJR184eHhfQ1BVQ0xLX0RFRkFVTFQpIHx8IGRlZmluZWQoQ09ORklHX1NZU19NRUFTVVJFX0NQVUNMSykgfHwgZGVmaW5lZChERUJVRykKIAogI2RlZmluZSBQSVRDX1NISUZUIDE2CiAjZGVmaW5lIFBJVFJfU0hJRlQgMTYKQEAgLTg3LDEyICs4NywxMiBAQAogCiB1bnNpZ25lZCBsb25nIG1lYXN1cmVfZ2Nsayh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbXRpbWVyOHh4X3QgKnRpbWVycCA9ICZpbW1yLT5pbV9jcG10aW1lcjsKIAl1bG9uZyB0aW1lcjJfdmFsOwogCXVsb25nIG1zcl92YWw7CiAKLSNpZmRlZiBDRkdfOFhYX1hJTgorI2lmZGVmIENPTkZJR19TWVNfOFhYX1hJTgogCS8qIGRvbnQgdXNlIE9TQ00sIG9ubHkgdXNlIEVYVENMSy81MTIgKi8KIAlpbW1yLT5pbV9jbGtyc3QuY2FyX3NjY3IgfD0gU0NDUl9SVFNFTCB8IFNDQ1JfUlRESVY7CiAjZWxzZQpAQCAtMTM3LDcgKzEzNyw3IEBACiAJaW1tci0+aW1fc2l0LnNpdF9waXRjID0gU1BFRURfUElUQ19JTklUOwogCiAJaW1tci0+aW1fc2l0ay5zaXRrX3Bpc2NyayA9IEtBUFdSX0tFWTsKLQlpbW1yLT5pbV9zaXQuc2l0X3Bpc2NyID0gQ0ZHX1BJU0NSOworCWltbXItPmltX3NpdC5zaXRfcGlzY3IgPSBDT05GSUdfU1lTX1BJU0NSOwogCiAJLyoKIAkgKiBTdGFydCBtZWFzdXJlbWVudCAtIGRpc2FibGUgaW50ZXJydXB0cywganVzdCBpbiBjYXNlCkBAIC0xNjQsOSArMTY0LDkgQEAKIAl0aW1lcnAtPmNwbXRfdGdjciAmPSB+KFRHQ1JfUlNUMiB8IFRHQ1JfRlJaMiB8IFRHQ1JfU1RQMik7CiAJaW1tci0+aW1fc2l0LnNpdF9waXNjciAmPSB+UElTQ1JfUFRFOwogCi0jaWYgZGVmaW5lZChDRkdfOFhYX1hJTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfOFhYX1hJTikKIAkvKiBub3QgdXNpbmcgT1NDTSwgdXNpbmcgWElOLCBzbyBzY2FsZSBhcHByb3ByaWF0ZWx5ICovCi0JcmV0dXJuICgoKHRpbWVyMl92YWwgKyAyKSAvIDQpICogKENGR184WFhfWElOLzUxMikpLzgxOTIgKiAxMDAwMDBMOworCXJldHVybiAoKCh0aW1lcjJfdmFsICsgMikgLyA0KSAqIChDT05GSUdfU1lTXzhYWF9YSU4vNTEyKSkvODE5MiAqIDEwMDAwMEw7CiAjZWxzZQogCXJldHVybiAoKHRpbWVyMl92YWwgKyAyKSAvIDQpICogMTAwMDAwTDsJLyogY29udmVydCB0byBIegkqLwogI2VuZGlmCkBAIC0yNjEsNyArMjYxLDcgQEAKICAqLwogaW50IGdldF9jbG9ja3NfODY2ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCWNoYXIJCSAgdG1wWzY0XTsKIAlsb25nCQkgIGNwdWNsayA9IDA7CiAJbG9uZwkJICBzY2NyX3JlZzsKQEAgLTI2OSwxMSArMjY5LDExIEBACiAJaWYgKGdldGVudl9yICgiY3B1Y2xrIiwgdG1wLCBzaXplb2YgKHRtcCkpID4gMCkKIAkJY3B1Y2xrID0gc2ltcGxlX3N0cnRvdWwgKHRtcCwgTlVMTCwgMTApICogMTAwMDAwMDsKIAotCWlmICgoQ0ZHXzh4eF9DUFVDTEtfTUlOID4gY3B1Y2xrKSB8fCAoQ0ZHXzh4eF9DUFVDTEtfTUFYIDwgY3B1Y2xrKSkKKwlpZiAoKENPTkZJR19TWVNfOHh4X0NQVUNMS19NSU4gPiBjcHVjbGspIHx8IChDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUFYIDwgY3B1Y2xrKSkKIAkJY3B1Y2xrID0gQ09ORklHXzh4eF9DUFVDTEtfREVGQVVMVDsKIAogCWdkLT5jcHVfY2xrID0gaW5pdF9wbGxfODY2IChjcHVjbGspOwotI2lmIGRlZmluZWQoQ0ZHX01FQVNVUkVfQ1BVQ0xLKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19NRUFTVVJFX0NQVUNMSykKIAlnZC0+Y3B1X2NsayA9IG1lYXN1cmVfZ2NsayAoKTsKICNlbmRpZgogCkBAIC0zMDEsMTIgKzMwMSwxMiBAQAogICovCiBpbnQgc2RyYW1fYWRqdXN0Xzg2NiAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlsb25nCQkgIG1hbXI7CiAKIAltYW1yID0gaW1tci0+aW1fbWVtY3RsLm1lbWNfbWFtcjsKIAltYW1yICY9IH5NQU1SX1BUQV9NU0s7Ci0JbWFtciB8PSAoKGdkLT5jcHVfY2xrIC8gQ0ZHX1BUQV9QRVJfQ0xLKSA8PCBNQU1SX1BUQV9TSElGVCk7CisJbWFtciB8PSAoKGdkLT5jcHVfY2xrIC8gQ09ORklHX1NZU19QVEFfUEVSX0NMSykgPDwgTUFNUl9QVEFfU0hJRlQpOwogCWltbXItPmltX21lbWN0bC5tZW1jX21hbXIgPSBtYW1yOwogCiAJcmV0dXJuICgwKTsKQEAgLTMyMCw3ICszMjAsNyBAQAogewogCWV4dGVybiB2b2lkIHBscHJjcl93cml0ZV84NjYgKGxvbmcpOwogCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJbG9uZwkJICBuLCBwbHByY3I7CiAJY2hhcgkJICBtZmksIG1mbiwgbWZkLCBzLCBwZGY7CiAJbG9uZwkJICBzdGVwX21maSwgc3RlcF9tZm47CkBAIC0zOTQsMTMgKzM5NCwxMyBAQAogICovCiBpbnQgYWRqdXN0X3NkcmFtX3Ric184eHggKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJbG9uZwkJICBtYW1yOwogCWxvbmcgICAgICAgICAgICAgIHNjY3I7CiAKIAltYW1yID0gaW1tci0+aW1fbWVtY3RsLm1lbWNfbWFtcjsKIAltYW1yICY9IH5NQU1SX1BUQV9NU0s7Ci0JbWFtciB8PSAoKGdkLT5jcHVfY2xrIC8gQ0ZHX1BUQV9QRVJfQ0xLKSA8PCBNQU1SX1BUQV9TSElGVCk7CisJbWFtciB8PSAoKGdkLT5jcHVfY2xrIC8gQ09ORklHX1NZU19QVEFfUEVSX0NMSykgPDwgTUFNUl9QVEFfU0hJRlQpOwogCWltbXItPmltX21lbWN0bC5tZW1jX21hbXIgPSBtYW1yOwogCiAJaWYgKGdkLT5jcHVfY2xrIDwgNjcwMDAwMDApIHsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4eHgvc3BpLmMgYi9jcHUvbXBjOHh4L3NwaS5jCmluZGV4IGUzMThlZDAuLmIyYWMyM2UgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4eHgvc3BpLmMKKysrIGIvY3B1L21wYzh4eC9zcGkuYwpAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlIDxzZXJpYWwuaD4KIAotI2lmIChkZWZpbmVkKENPTkZJR19TUEkpKSB8fCAoQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TUEkpCisjaWYgKGRlZmluZWQoQ09ORklHX1NQSSkpIHx8IChDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TUEkpCiAKIC8qIFdhcm5pbmc6CiAgKiBZb3UgY2Fubm90IGVuYWJsZSBERUJVRyBmb3IgZWFybHkgc3lzdGVtIGluaXRhbGl6YXRpb24sIGkuIGUuIHdoZW4KQEAgLTY0LDggKzY0LDggQEAKICAqIFRoZSB2YWx1ZSAweGIwMCBtYWtlcyBpdCBmYXIgZW5vdWdoIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBkYXRhCiAgKiBhcmVhIChhcyB3ZWxsIGFzIGZyb20gdGhlIHN0YWNrIHBvaW50ZXIpLgogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0jaWZuZGVmCUNGR19TUElfSU5JVF9PRkZTRVQKLSNkZWZpbmUJQ0ZHX1NQSV9JTklUX09GRlNFVAkweEIwMAorI2lmbmRlZglDT05GSUdfU1lTX1NQSV9JTklUX09GRlNFVAorI2RlZmluZQlDT05GSUdfU1lTX1NQSV9JTklUX09GRlNFVAkweEIwMAogI2VuZGlmCiAKICNpZmRlZglERUJVRwpAQCAtMTE4LDExICsxMTgsMTEgQEAKICAqIEluaXRpYWxseSB3ZSBwbGFjZSB0aGUgUlggYW5kIFRYIGJ1ZmZlcnMgYXQgYSBmaXhlZCBsb2NhdGlvbiBpbiBEUFJBTSEKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIHN0YXRpYyB1Y2hhciAqcnhidWYgPQotICAodWNoYXIgKikmKChjcG04eHhfdCAqKSYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSktPmNwX2RwbWVtCi0JCQlbQ0ZHX1NQSV9JTklUX09GRlNFVF07CisgICh1Y2hhciAqKSYoKGNwbTh4eF90ICopJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbSktPmNwX2RwbWVtCisJCQlbQ09ORklHX1NZU19TUElfSU5JVF9PRkZTRVRdOwogc3RhdGljIHVjaGFyICp0eGJ1ZiA9Ci0gICh1Y2hhciAqKSYoKGNwbTh4eF90ICopJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtKS0+Y3BfZHBtZW0KLQkJCVtDRkdfU1BJX0lOSVRfT0ZGU0VUK01BWF9CVUZGRVJdOworICAodWNoYXIgKikmKChjcG04eHhfdCAqKSYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0pLT5jcF9kcG1lbQorCQkJW0NPTkZJR19TWVNfU1BJX0lOSVRfT0ZGU0VUK01BWF9CVUZGRVJdOwogCiAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTE0NCwxMiArMTQ0LDEyIEBACiAJdm9sYXRpbGUgaW9wOHh4X3QgKmlvcDsKIAl2b2xhdGlsZSBjYmRfdCAqdGJkZiwgKnJiZGY7CiAKLQlpbW1yID0gKGltbWFwX3QgKikgIENGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKSAgQ09ORklHX1NZU19JTU1SOwogCWNwaSAgPSAoY3BpYzh4eF90ICopJmltbXItPmltX2NwaWM7CiAJaW9wICA9IChpb3A4eHhfdCAqKSAmaW1tci0+aW1faW9wb3J0OwogCWNwICAgPSAoY3BtOHh4X3QgKikgJmltbXItPmltX2NwbTsKIAotI2lmZGVmIENGR19TUElfVUNPREVfUEFUQ0gKKyNpZmRlZiBDT05GSUdfU1lTX1NQSV9VQ09ERV9QQVRDSAogCXNwaSAgPSAoc3BpX3QgKikmY3AtPmNwX2RwbWVtW3NwaS0+c3BpX3JwYmFzZV07CiAjZWxzZQogCXNwaSAgPSAoc3BpX3QgKikmY3AtPmNwX2RwYXJhbVtQUk9GRl9TUEldOwpAQCAtMjEwLDcgKzIxMCw3IEBACiAJLyogQWxsb2NhdGUgc3BhY2UgZm9yIG9uZSB0cmFuc21pdCBhbmQgb25lIHJlY2VpdmUgYnVmZmVyCiAJICogZGVzY3JpcHRvciBpbiB0aGUgRFAgcmFtCiAJICovCi0jaWZkZWYgQ0ZHX0FMTE9DX0RQUkFNCisjaWZkZWYgQ09ORklHX1NZU19BTExPQ19EUFJBTQogCWRwYWRkciA9IGRwcmFtX2FsbG9jX2FsaWduIChzaXplb2YoY2JkX3QpKjIsIDgpOwogI2Vsc2UKIAlkcGFkZHIgPSBDUE1fU1BJX0JBU0U7CkBAIC0yMzQsNyArMjM0LDcgQEAKIAlzcGktPnNwaV90YnB0ciA9IHNwaS0+c3BpX3RiYXNlOwogCiAvKiA0ICovCi0jaWZkZWYgQ0ZHX1NQSV9VQ09ERV9QQVRDSAorI2lmZGVmIENPTkZJR19TWVNfU1BJX1VDT0RFX1BBVENICiAJLyoKIAkgKiAgSW5pdGlhbGl6ZSByZXF1aXJlZCBwYXJhbWV0ZXJzIGlmIHVzaW5nIG1pY3JvY29kZSBwYXRjaC4KIAkgKi8KQEAgLTI0Nyw3ICsyNDcsNyBAQAogCWNwLT5jcF9jcGNyID0gbWtfY3JfY21kKENQTV9DUl9DSF9TUEksIENQTV9DUl9JTklUX1RSWCkgfCBDUE1fQ1JfRkxHOwogCXdoaWxlIChjcC0+Y3BfY3BjciAmIENQTV9DUl9GTEcpCiAJCTsKLSNlbmRpZgkvKiBDRkdfU1BJX1VDT0RFX1BBVENIICovCisjZW5kaWYJLyogQ09ORklHX1NZU19TUElfVUNPREVfUEFUQ0ggKi8KIAogLyogNSAqLwogCS8qIFNldCBTRE1BIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgKi8KQEAgLTI5OSwxMCArMjk5LDEwIEBACiAJdm9sYXRpbGUgaW1tYXBfdCAqaW1tcjsKIAl2b2xhdGlsZSBjYmRfdCAqdGJkZiwgKnJiZGY7CiAKLQlpbW1yID0gKGltbWFwX3QgKikgIENGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKSAgQ09ORklHX1NZU19JTU1SOwogCWNwICAgPSAoY3BtOHh4X3QgKikgJmltbXItPmltX2NwbTsKIAotI2lmZGVmIENGR19TUElfVUNPREVfUEFUQ0gKKyNpZmRlZiBDT05GSUdfU1lTX1NQSV9VQ09ERV9QQVRDSAogCXNwaSAgPSAoc3BpX3QgKikmY3AtPmNwX2RwbWVtW3NwaS0+c3BpX3JwYmFzZV07CiAjZWxzZQogCXNwaSAgPSAoc3BpX3QgKikmY3AtPmNwX2RwYXJhbVtQUk9GRl9TUEldOwpAQCAtMzkyLDEwICszOTIsMTAgQEAKIAogCURQUklOVCAoKCIqKiogc3BpX3hmZXIgZW50ZXJlZCAqKipcbiIpKTsKIAotCWltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwlpbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCWNwICAgPSAoY3BtOHh4X3QgKikgJmltbXItPmltX2NwbTsKIAotI2lmZGVmIENGR19TUElfVUNPREVfUEFUQ0gKKyNpZmRlZiBDT05GSUdfU1lTX1NQSV9VQ09ERV9QQVRDSAogCXNwaSAgPSAoc3BpX3QgKikmY3AtPmNwX2RwbWVtW3NwaS0+c3BpX3JwYmFzZV07CiAjZWxzZQogCXNwaSAgPSAoc3BpX3QgKikmY3AtPmNwX2RwYXJhbVtQUk9GRl9TUEldOwpAQCAtNDY4LDcgKzQ2OCw3IEBACiAKIAlyZXR1cm4gY291bnQ7CiB9Ci0jZW5kaWYJLyogQ09ORklHX1NQSSB8fCAoQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TUEkpICovCisjZW5kaWYJLyogQ09ORklHX1NQSSB8fCAoQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfU1BJKSAqLwogCiAvKgogICogU1BJIHRlc3QKQEAgLTQ4MSw3ICs0ODEsNyBAQAogICogICBURVNUX05VTSAtIG51bWJlciBvZiB0ZXN0cwogICovCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1NQSQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX1NQSQogCiAjZGVmaW5lIFRFU1RfTUlOX0xFTkdUSAkJMQogI2RlZmluZSBURVNUX01BWF9MRU5HVEgJCU1BWF9CVUZGRVIKQEAgLTUxMyw3ICs1MTMsNyBAQAogaW50IHNwaV9wb3N0X3Rlc3QgKGludCBmbGFncykKIHsKIAlpbnQgcmVzID0gLTE7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwID0gKGNwbTh4eF90ICopICYgaW1tci0+aW1fY3BtOwogCWludCBpOwogCWludCBsOwpAQCAtNTU3LDQgKzU1Nyw0IEBACiAKIAlyZXR1cm4gcmVzOwogfQotI2VuZGlmCS8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfU1BJICovCisjZW5kaWYJLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfU1BJICovCmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4L3N0YXJ0LlMgYi9jcHUvbXBjOHh4L3N0YXJ0LlMKaW5kZXggZWNhNGI1MC4uN2I3NTY2MCAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eC9zdGFydC5TCisrKyBiL2NwdS9tcGM4eHgvc3RhcnQuUwpAQCAtOTMsNyArOTMsNyBAQAogCS4gPSBFWENfT0ZGX1NZU19SRVNFVAogCS5nbG9ibAlfc3RhcnQKIF9zdGFydDoKLQlsaXMJcjMsIENGR19JTU1SQGgJCS8qIHBvc2l0aW9uIElNTVIgKi8KKwlsaXMJcjMsIENPTkZJR19TWVNfSU1NUkBoCQkvKiBwb3NpdGlvbiBJTU1SICovCiAJbXRzcHIJNjM4LCByMwogCWxpCXIyMSwgQk9PVEZMQUdfQ09MRAkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSAkqLwogCWIJYm9vdF9jb2xkCkBAIC0xNTksOCArMTU5LDggQEAKIAkgKiBDYWxjdWxhdGUgYWJzb2x1dGUgYWRkcmVzcyBpbiBGTEFTSCBhbmQganVtcCB0aGVyZQogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLQlsaXMJcjMsIENGR19NT05JVE9SX0JBU0VAaAotCW9yaQlyMywgcjMsIENGR19NT05JVE9SX0JBU0VAbAorCWxpcwlyMywgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGwKIAlhZGRpCXIzLCByMywgaW5fZmxhc2ggLSBfc3RhcnQgKyBFWENfT0ZGX1NZU19SRVNFVAogCW10bHIJcjMKIAlibHIKQEAgLTE3MCw4ICsxNzAsOCBAQAogCS8qIGluaXRpYWxpemUgc29tZSBTUFJzIHRoYXQgYXJlIGhhcmQgdG8gYWNjZXNzIGZyb20gQwkJCSovCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotCWxpcwlyMywgQ0ZHX0lNTVJAaAkJLyogcGFzcyBJTU1SIGFzIGFyZzEgdG8gQyByb3V0aW5lICovCi0Jb3JpCXIxLCByMywgQ0ZHX0lOSVRfU1BfT0ZGU0VUIC8qIHNldCB1cCB0aGUgc3RhY2sgaW4gaW50ZXJuYWwgRFBSQU0gKi8KKwlsaXMJcjMsIENPTkZJR19TWVNfSU1NUkBoCQkvKiBwYXNzIElNTVIgYXMgYXJnMSB0byBDIHJvdXRpbmUgKi8KKwlvcmkJcjEsIHIzLCBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUIC8qIHNldCB1cCB0aGUgc3RhY2sgaW4gaW50ZXJuYWwgRFBSQU0gKi8KIAkvKiBOb3RlOiBSMCBpcyBzdGlsbCAwIGhlcmUgKi8KIAlzdHd1CXIwLCAtNChyMSkJCS8qIGNsZWFyIGZpbmFsIHN0YWNrIGZyYW1lIHNvIHRoYXQJKi8KIAlzdHd1CXIwLCAtNChyMSkJCS8qIHN0YWNrIGJhY2t0cmFjZXMgdGVybWluYXRlIGNsZWFubHkJKi8KQEAgLTE4Nyw4ICsxODcsOCBAQAogCiAJLyogU2V0IHVwIGRlYnVnIG1vZGUgZW50cnkgKi8KIAotCWxpcwlyMiwgQ0ZHX0RFUkBoCi0Jb3JpCXIyLCByMiwgQ0ZHX0RFUkBsCisJbGlzCXIyLCBDT05GSUdfU1lTX0RFUkBoCisJb3JpCXIyLCByMiwgQ09ORklHX1NZU19ERVJAbAogCW10c3ByCURFUiwgcjIKIAogCS8qIGxldCB0aGUgQy1jb2RlIHNldCB1cCB0aGUgcmVzdAkJCQkJKi8KQEAgLTQ5NSwxNiArNDk1LDE2IEBACiAJbXIJcjEwLCByNQkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MJKi8KIAogCW1yCXIzLCAgcjUJCQkJLyogRGVzdGluYXRpb24gQWRkcmVzcwkqLwotCWxpcwlyNCwgQ0ZHX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCi0Jb3JpCXI0LCByNCwgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWx3eglyNSwgR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LCByNSwgcjQKLQlsaQlyNiwgQ0ZHX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KKwlsaQlyNiwgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJLyogQ2FjaGUgTGluZSBTaXplCSovCiAKIAkvKgogCSAqIEZpeCBHT1QgcG9pbnRlcjoKIAkgKgotCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ0ZHX01PTklUT1JfQkFTRSkgKyBEZXN0aW5hdGlvbiBBZGRyZXNzCisJICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgKyBEZXN0aW5hdGlvbiBBZGRyZXNzCiAJICoKIAkgKiBPZmZzZXQ6CiAJICovCmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4L3VwYXRjaC5jIGIvY3B1L21wYzh4eC91cGF0Y2guYwppbmRleCA0ZDZjNTIyLi5hOGNiNzM1IDEwMDY0NAotLS0gYS9jcHUvbXBjOHh4L3VwYXRjaC5jCisrKyBiL2NwdS9tcGM4eHgvdXBhdGNoLmMKQEAgLTEsOCArMSw4IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8Y29tbXByb2MuaD4KIAotI2lmIGRlZmluZWQoQ0ZHX0kyQ19VQ09ERV9QQVRDSCkgfHwgZGVmaW5lZChDRkdfU1BJX1VDT0RFX1BBVENIKSB8fCBcCi0gICAgZGVmaW5lZChDRkdfU01DX1VDT0RFX1BBVENIKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JMkNfVUNPREVfUEFUQ0gpIHx8IGRlZmluZWQoQ09ORklHX1NZU19TUElfVUNPREVfUEFUQ0gpIHx8IFwKKyAgICBkZWZpbmVkKENPTkZJR19TWVNfU01DX1VDT0RFX1BBVENIKQogCiBzdGF0aWMgdm9pZCBVY29kZUNvcHkgKHZvbGF0aWxlIGNwbTh4eF90ICpjcG0pOwogCkBAIC0xMSwzNiArMTEsMzYgQEAKIAlpbW1yLT5pbV9jcG0uY3BfcmNjciAmPSB+MHgwMDAzOwkvKiBEaXNhYmxlIG1pY3JvY29kZSBwcm9ncmFtIGFyZWEgKi8KIAogCVVjb2RlQ29weSAoKGNwbTh4eF90ICopJmltbXItPmltX2NwbSk7CS8qIENvcHkgdWNvZGUgcGF0Y2ggdG8gRFBSQU0gICAqLwotI2lmZGVmIENGR19TUElfVUNPREVfUEFUQ0gKKyNpZmRlZiBDT05GSUdfU1lTX1NQSV9VQ09ERV9QQVRDSAogICAgIHsKIAl2b2xhdGlsZSBzcGlfdCAqc3BpID0gKHNwaV90ICopICYgaW1tci0+aW1fY3BtLmNwX2RwYXJhbVtQUk9GRl9TUEldOwogCS8qIEFjdGl2YXRlIHRoZSBtaWNyb2NvZGUgcGVyIHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhlIG1pY3JvY29kZSBtYW51YWwgKi8KIAkvKiBOT1RFOiAgV2UncmUgb25seSByZWxvY2F0aW5nIHRoZSBTUEkgcGFyYW1ldGVycyAobm90IEkyQykuICAgICAgICAgICovCiAJaW1tci0+aW1fY3BtLmNwX2NwbWNyMSA9IDB4ODAyYTsJLyogV3JpdGUgVHJhcCByZWdpc3RlciAxIHZhbHVlICovCiAJaW1tci0+aW1fY3BtLmNwX2NwbWNyMiA9IDB4ODAyODsJLyogV3JpdGUgVHJhcCByZWdpc3RlciAyIHZhbHVlICovCi0Jc3BpLT5zcGlfcnBiYXNlID0gQ0ZHX1NQSV9EUE1FTV9PRkZTRVQ7CS8qIFdoZXJlIHRvIHJlbG9jdGUgU1BJIHBhcmFtcyAqLworCXNwaS0+c3BpX3JwYmFzZSA9IENPTkZJR19TWVNfU1BJX0RQTUVNX09GRlNFVDsJLyogV2hlcmUgdG8gcmVsb2N0ZSBTUEkgcGFyYW1zICovCiAgICAgfQogI2VuZGlmCiAKLSNpZmRlZiBDRkdfSTJDX1VDT0RFX1BBVENICisjaWZkZWYgQ09ORklHX1NZU19JMkNfVUNPREVfUEFUQ0gKICAgICB7CiAJdm9sYXRpbGUgaWljX3QgKmlpcCA9IChpaWNfdCAqKSAmIGltbXItPmltX2NwbS5jcF9kcGFyYW1bUFJPRkZfSUlDXTsKIAkvKiBBY3RpdmF0ZSB0aGUgbWljcm9jb2RlIHBlciB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSBtaWNyb2NvZGUgbWFudWFsICovCiAJLyogTk9URTogIFdlJ3JlIG9ubHkgcmVsb2NhdGluZyB0aGUgSTJDIHBhcmFtZXRlcnMgKG5vdCBTUEkpLiAgICAgICAgICAqLwogCWltbXItPmltX2NwbS5jcF9jcG1jcjMgPSAweDgwMmU7CS8qIFdyaXRlIFRyYXAgcmVnaXN0ZXIgMyB2YWx1ZSAqLwogCWltbXItPmltX2NwbS5jcF9jcG1jcjQgPSAweDgwMmM7CS8qIFdyaXRlIFRyYXAgcmVnaXN0ZXIgNCB2YWx1ZSAqLwotCWlpcC0+aWljX3JwYmFzZSA9IENGR19JMkNfRFBNRU1fT0ZGU0VUOwkvKiBXaGVyZSB0byByZWxvY3RlIEkyQyBwYXJhbXMgKi8KKwlpaXAtPmlpY19ycGJhc2UgPSBDT05GSUdfU1lTX0kyQ19EUE1FTV9PRkZTRVQ7CS8qIFdoZXJlIHRvIHJlbG9jdGUgSTJDIHBhcmFtcyAqLwogICAgIH0KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1NNQ19VQ09ERV9QQVRDSAorI2lmZGVmIENPTkZJR19TWVNfU01DX1VDT0RFX1BBVENICiAgICAgewogCXZvbGF0aWxlIHNtY191YXJ0X3QgKnVwID0gKHNtY191YXJ0X3QgKikgJiBpbW1yLT5pbV9jcG0uY3BfZHBhcmFtW1BST0ZGX1NNQzFdOwogCS8qIEFjdGl2YXRlIHRoZSBtaWNyb2NvZGUgcGVyIHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhlIG1pY3JvY29kZSBtYW51YWwgKi8KIAkvKiBOT1RFOiAgV2UncmUgb25seSByZWxvY2F0aW5nIHRoZSBTTUMgcGFyYW1ldGVycy4gICAgICAgICAgICAgICAgICAgICovCiAJaW1tci0+aW1fY3BtLmNwX2NwbWNyMSA9IDB4ODA4MDsJLyogV3JpdGUgVHJhcCByZWdpc3RlciAxIHZhbHVlICovCiAJaW1tci0+aW1fY3BtLmNwX2NwbWNyMiA9IDB4ODA4ODsJLyogV3JpdGUgVHJhcCByZWdpc3RlciAyIHZhbHVlICovCi0JdXAtPnNtY19ycGJhc2UgPSBDRkdfU01DX0RQTUVNX09GRlNFVDsJLyogV2hlcmUgdG8gcmVsb2N0ZSBTTUMgcGFyYW1zICovCisJdXAtPnNtY19ycGJhc2UgPSBDT05GSUdfU1lTX1NNQ19EUE1FTV9PRkZTRVQ7CS8qIFdoZXJlIHRvIHJlbG9jdGUgU01DIHBhcmFtcyAqLwogICAgIH0KICNlbmRpZgogCkBAIC00OCwxNCArNDgsMTQgQEAKIAkgKiBFbmFibGUgRFBSQU0gbWljcm9jb2RlIHRvIGV4ZWN1dGUgZnJvbSB0aGUgZmlyc3QgNTEyIGJ5dGVzCiAJICogYW5kIGEgMjU2IGJ5dGUgZXh0ZW5zaW9uIG9mIERQUkFNLgogCSAqLwotI2lmZGVmIENGR19TTUNfVUNPREVfUEFUQ0gKKyNpZmRlZiBDT05GSUdfU1lTX1NNQ19VQ09ERV9QQVRDSAogCWltbXItPmltX2NwbS5jcF9yY2NyIHw9IDB4MDAwMjsKICNlbHNlCiAJaW1tci0+aW1fY3BtLmNwX3JjY3IgfD0gMHgwMDAxOwogI2VuZGlmCiB9CiAKLSNpZiBkZWZpbmVkKENGR19JMkNfVUNPREVfUEFUQ0gpIHx8IGRlZmluZWQoQ0ZHX1NQSV9VQ09ERV9QQVRDaCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX1VDT0RFX1BBVENIKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfU1BJX1VDT0RFX1BBVENoKQogc3RhdGljIHVsb25nIHBhdGNoXzIwMDBbXSA9IHsKIAkweDdGRkZFRkQ5LCAweDNGRkQwMDAwLCAweDdGRkI0OUY3LCAweDdGRjkwMDAwLAogCTB4NUZFRkFERjcsIDB4NUY4OEFERjcsIDB4NUZFRkFGRjcsIDB4NUY4OEFGRjcsCkBAIC0xOTEsNCArMTkxLDQgQEAKIAl9CiB9CiAKLSNlbmRpZgkvKiBDRkdfSTJDX1VDT0RFX1BBVENILCBDRkdfU1BJX1VDT0RFX1BBVENIICovCisjZW5kaWYJLyogQ09ORklHX1NZU19JMkNfVUNPREVfUEFUQ0gsIENPTkZJR19TWVNfU1BJX1VDT0RFX1BBVENIICovCmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4L3ZpZGVvLmMgYi9jcHUvbXBjOHh4L3ZpZGVvLmMKaW5kZXggZWY5MTE2NS4uMmU2YTIyYSAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eC92aWRlby5jCisrKyBiL2NwdS9tcGM4eHgvdmlkZW8uYwpAQCAtNTE3LDcgKzUxNyw3IEBACiAKIHN0YXRpYyBpbnQgdmlkZW9fbW9kZV9nZW5lcmF0ZSAodm9pZCkKIHsKLQlpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCWltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCVZSQU0gKnZyID0gKFZSQU0gKikgKCgodm9pZCAqKSBpbW1hcCkgKyAweGIwMCk7CS8qIFBvaW50ZXIgdG8gdGhlIFZSQU0gdGFibGUgKi8KIAlpbnQgRFgsIFgxLCBYMiwgRFksIFkxLCBZMiwgZW50cnkgPSAwLCBmaWZvOwogCkBAIC04MDgsNyArODA4LDcgQEAKIAogCS8qIEluaXRpYWxpemUgdGhlIEkyQyAqLwogCWRlYnVnICgiW1ZJREVPIEVOQ09ERVJdIEluaXRpYWxpemluZyBJMkMgYnVzLi4uXG4iKTsKLQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKICNpZmRlZiBDT05GSUdfRkFEUwogCS8qIFJlc2V0IEFEVjcxNzYgY2hpcCAqLwpAQCAtODU2LDcgKzg1Niw3IEBACiAKIHN0YXRpYyB2b2lkIHZpZGVvX2N0cmxfaW5pdCAodm9pZCAqbWVtcHRyKQogewotCWltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAl2aWRlb19mYl9hZGRyZXNzID0gbWVtcHRyOwogCkBAIC0xMjM1LDEzICsxMjM1LDEzIEBACiAJdmlkZW9fc2V0cGFsZXR0ZSAgKENPTlNPTEVfQ09MT1JfR1JFWTIsCSAgMHhGOCwgMHhGOCwgMHhGOCk7CiAJdmlkZW9fc2V0cGFsZXR0ZSAgKENPTlNPTEVfQ09MT1JfV0hJVEUsCSAgMHhGRiwgMHhGRiwgMHhGRik7CiAKLSNpZm5kZWYgQ0ZHX1dISVRFX09OX0JMQUNLCisjaWZuZGVmIENPTkZJR19TWVNfV0hJVEVfT05fQkxBQ0sKIAl2aWRlb19zZXRmZ2NvbG9yIChDT05TT0xFX0NPTE9SX0JMQUNLKTsKIAl2aWRlb19zZXRiZ2NvbG9yIChDT05TT0xFX0NPTE9SX0dSRVkyKTsKICNlbHNlCiAJdmlkZW9fc2V0Zmdjb2xvciAoQ09OU09MRV9DT0xPUl9HUkVZMik7CiAJdmlkZW9fc2V0Ymdjb2xvciAoQ09OU09MRV9DT0xPUl9CTEFDSyk7Ci0jZW5kaWYJLyogQ0ZHX1dISVRFX09OX0JMQUNLICovCisjZW5kaWYJLyogQ09ORklHX1NZU19XSElURV9PTl9CTEFDSyAqLwogCiAjaWZkZWYgQ09ORklHX1ZJREVPX0xPR08KIAkvKiBQYWludCB0aGUgbG9nbyBhbmQgcmV0cmlldmUgdHYgYmFzZSBhZGRyZXNzICovCmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4eC9kZHIvZGRyLmggYi9jcHUvbXBjOHh4eC9kZHIvZGRyLmgKaW5kZXggZjVkYzQwYS4uMGQ3OWJlMyAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eHgvZGRyL2Rkci5oCisrKyBiL2NwdS9tcGM4eHh4L2Rkci9kZHIuaApAQCAtMzEsMTcgKzMxLDE3IEBACiAgKgogICogQWxsIGRhdGEgc3RydWN0dXJlcyBoYXZlIHRvIGJlIG9uIHRoZSBzdGFjawogICovCi0jZGVmaW5lIENGR19OVU1fRERSX0NUTFJTIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCi0jZGVmaW5lIENGR19ESU1NX1NMT1RTX1BFUl9DVExSIENPTkZJR19ESU1NX1NMT1RTX1BFUl9DVExSCisjZGVmaW5lIENPTkZJR19TWVNfTlVNX0REUl9DVExSUyBDT05GSUdfTlVNX0REUl9DT05UUk9MTEVSUworI2RlZmluZSBDT05GSUdfU1lTX0RJTU1fU0xPVFNfUEVSX0NUTFIgQ09ORklHX0RJTU1fU0xPVFNfUEVSX0NUTFIKIAogdHlwZWRlZiBzdHJ1Y3QgewogCWdlbmVyaWNfc3BkX2VlcHJvbV90Ci0JICAgc3BkX2luc3RhbGxlZF9kaW1tc1tDRkdfTlVNX0REUl9DVExSU11bQ0ZHX0RJTU1fU0xPVFNfUEVSX0NUTFJdOworCSAgIHNwZF9pbnN0YWxsZWRfZGltbXNbQ09ORklHX1NZU19OVU1fRERSX0NUTFJTXVtDT05GSUdfU1lTX0RJTU1fU0xPVFNfUEVSX0NUTFJdOwogCXN0cnVjdCBkaW1tX3BhcmFtc19zCi0JICAgZGltbV9wYXJhbXNbQ0ZHX05VTV9ERFJfQ1RMUlNdW0NGR19ESU1NX1NMT1RTX1BFUl9DVExSXTsKLQltZW1jdGxfb3B0aW9uc190IG1lbWN0bF9vcHRzW0NGR19OVU1fRERSX0NUTFJTXTsKLQljb21tb25fdGltaW5nX3BhcmFtc190IGNvbW1vbl90aW1pbmdfcGFyYW1zW0NGR19OVU1fRERSX0NUTFJTXTsKLQlmc2xfZGRyX2NmZ19yZWdzX3QgZnNsX2Rkcl9jb25maWdfcmVnW0NGR19OVU1fRERSX0NUTFJTXTsKKwkgICBkaW1tX3BhcmFtc1tDT05GSUdfU1lTX05VTV9ERFJfQ1RMUlNdW0NPTkZJR19TWVNfRElNTV9TTE9UU19QRVJfQ1RMUl07CisJbWVtY3RsX29wdGlvbnNfdCBtZW1jdGxfb3B0c1tDT05GSUdfU1lTX05VTV9ERFJfQ1RMUlNdOworCWNvbW1vbl90aW1pbmdfcGFyYW1zX3QgY29tbW9uX3RpbWluZ19wYXJhbXNbQ09ORklHX1NZU19OVU1fRERSX0NUTFJTXTsKKwlmc2xfZGRyX2NmZ19yZWdzX3QgZnNsX2Rkcl9jb25maWdfcmVnW0NPTkZJR19TWVNfTlVNX0REUl9DVExSU107CiB9IGZzbF9kZHJfaW5mb190OwogCiAvKiBDb21wdXRlIHN0ZXBzICovCmRpZmYgLS1naXQgYS9jcHUvbmlvcy9hc21pLmMgYi9jcHUvbmlvcy9hc21pLmMKaW5kZXggYzJjZDhmZS4uMmMyZTgzOCAxMDA2NDQKLS0tIGEvY3B1L25pb3MvYXNtaS5jCisrKyBiL2NwdS9uaW9zL2FzbWkuYwpAQCAtMjcsOCArMjcsOCBAQAogI2luY2x1ZGUgPGNvbW1hbmQuaD4KICNpbmNsdWRlIDxuaW9zLWlvLmg+CiAKLSNpZiAhZGVmaW5lZChDRkdfTklPU19BU01JQkFTRSkKLSNlcnJvciAiKioqIENGR19OSU9TX0FTTUlCQVNFIG5vdCBkZWZpbmVkICoqKiIKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX05JT1NfQVNNSUJBU0UpCisjZXJyb3IgIioqKiBDT05GSUdfU1lTX05JT1NfQVNNSUJBU0Ugbm90IGRlZmluZWQgKioqIgogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpAQCAtNjksNyArNjksNyBAQAogI2RlZmluZSBBU01JX1NUQVRVU19XSVAJCSgxPDwwKQkvKiBXcml0ZSBpbiBwcm9ncmVzcyAqLwogI2RlZmluZSBBU01JX1NUQVRVU19XRUwJCSgxPDwxKQkvKiBXcml0ZSBlbmFibGUgbGF0Y2ggKi8KIAotc3RhdGljIG5pb3NfYXNtaV90ICphc21pID0gKG5pb3NfYXNtaV90ICopQ0ZHX05JT1NfQVNNSUJBU0U7CitzdGF0aWMgbmlvc19hc21pX3QgKmFzbWkgPSAobmlvc19hc21pX3QgKilDT05GSUdfU1lTX05JT1NfQVNNSUJBU0U7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogRGV2aWNlIGFjY2VzcwpkaWZmIC0tZ2l0IGEvY3B1L25pb3MvaW50ZXJydXB0cy5jIGIvY3B1L25pb3MvaW50ZXJydXB0cy5jCmluZGV4IDc1ZTQ5MWQuLjU1YTU3MTggMTAwNjQ0Ci0tLSBhL2NwdS9uaW9zL2ludGVycnVwdHMuYworKysgYi9jcHUvbmlvcy9pbnRlcnJ1cHRzLmMKQEAgLTY4LDE1ICs2OCwxNSBAQAogLyogVGhlIGJvYXJkIG11c3QgaGFuZGxlIHRoaXMgaW50ZXJydXB0IGlmIGEgdGltZXIgaXMgbm90CiAgKiBwcm92aWRlZC4KICAqLwotI2lmIGRlZmluZWQoQ0ZHX05JT1NfVE1SQkFTRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19UTVJCQVNFKQogdm9pZCB0aW1lcl9pbnRlcnJ1cHQgKHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewogCS8qIEludGVycnVwdCBpcyBjbGVhcmVkIGJ5IHdyaXRpbmcgYW55dGhpbmcgdG8gdGhlCiAJICogc3RhdHVzIHJlZ2lzdGVyLgogCSAqLwotCW5pb3NfdGltZXJfdCAqdG1yID0gKG5pb3NfdGltZXJfdCAqKUNGR19OSU9TX1RNUkJBU0U7CisJbmlvc190aW1lcl90ICp0bXIgPSAobmlvc190aW1lcl90ICopQ09ORklHX1NZU19OSU9TX1RNUkJBU0U7CiAJdG1yLT5zdGF0dXMgPSAwOwotCXRpbWVzdGFtcCArPSBDRkdfTklPU19UTVJNUzsKKwl0aW1lc3RhbXAgKz0gQ09ORklHX1NZU19OSU9TX1RNUk1TOwogI2lmZGVmIENPTkZJR19TVEFUVVNfTEVECiAJc3RhdHVzX2xlZF90aWNrKHRpbWVzdGFtcCk7CiAjZW5kaWYKQEAgLTEyNSwxNCArMTI1LDE0IEBACiB7CiAJaW50IHZlYzsKIAotI2lmIGRlZmluZWQoQ0ZHX05JT1NfVE1SQkFTRSkKLQluaW9zX3RpbWVyX3QgKnRtciA9IChuaW9zX3RpbWVyX3QgKilDRkdfTklPU19UTVJCQVNFOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19OSU9TX1RNUkJBU0UpCisJbmlvc190aW1lcl90ICp0bXIgPSAobmlvc190aW1lcl90ICopQ09ORklHX1NZU19OSU9TX1RNUkJBU0U7CiAKIAl0bXItPmNvbnRyb2wgJj0gfk5JT1NfVElNRVJfSVRPOwogCXRtci0+Y29udHJvbCB8PSBOSU9TX1RJTUVSX1NUT1A7Ci0jaWYgZGVmaW5lZChDRkdfTklPU19UTVJDTlQpCi0JdG1yLT5wZXJpb2RsID0gQ0ZHX05JT1NfVE1SQ05UICYgMHhmZmZmOwotCXRtci0+cGVyaW9kaCA9IChDRkdfTklPU19UTVJDTlQgPj4gMTYpICYgMHhmZmZmOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19OSU9TX1RNUkNOVCkKKwl0bXItPnBlcmlvZGwgPSBDT05GSUdfU1lTX05JT1NfVE1SQ05UICYgMHhmZmZmOworCXRtci0+cGVyaW9kaCA9IChDT05GSUdfU1lTX05JT1NfVE1SQ05UID4+IDE2KSAmIDB4ZmZmZjsKICNlbmRpZgogI2VuZGlmCiAKQEAgLTE0MywxMSArMTQzLDExIEBACiAJfQogCiAJLyogTmVlZCB0aW11cyBpbnRlcnJ1cHR1cyAtLSBzdGFydCB0aGUgbG9wcmkgdGltZXIgKi8KLSNpZiBkZWZpbmVkKENGR19OSU9TX1RNUkJBU0UpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX05JT1NfVE1SQkFTRSkKIAl0bXItPmNvbnRyb2wgfD0gKCBOSU9TX1RJTUVSX0lUTyB8CiAJCQkgIE5JT1NfVElNRVJfQ09OVCB8CiAJCQkgIE5JT1NfVElNRVJfU1RBUlQgKTsKLQlpcHJpIChDRkdfTklPU19UTVJJUlEgKyAxKTsKKwlpcHJpIChDT05GSUdfU1lTX05JT1NfVE1SSVJRICsgMSk7CiAjZW5kaWYKIAllbmFibGVfaW50ZXJydXB0cyAoKTsKIAlyZXR1cm4gKDApOwpkaWZmIC0tZ2l0IGEvY3B1L25pb3Mvc2VyaWFsLmMgYi9jcHUvbmlvcy9zZXJpYWwuYwppbmRleCA1ZWNkYzZkLi40NGFhNjAwIDEwMDY0NAotLS0gYS9jcHUvbmlvcy9zZXJpYWwuYworKysgYi9jcHUvbmlvcy9zZXJpYWwuYwpAQCAtMzMsNyArMzMsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ09OU09MRV9KVEFHKQogCi1zdGF0aWMgbmlvc19qdGFnX3QgKmp0YWcgPSAobmlvc19qdGFnX3QgKilDRkdfTklPU19DT05TT0xFOworc3RhdGljIG5pb3NfanRhZ190ICpqdGFnID0gKG5pb3NfanRhZ190ICopQ09ORklHX1NZU19OSU9TX0NPTlNPTEU7CiAKIHZvaWQgc2VyaWFsX3NldGJyZyggdm9pZCApeyByZXR1cm47IH0KIGludCBzZXJpYWxfaW5pdCggdm9pZCApIHsgcmV0dXJuKDApO30KQEAgLTcxLDkgKzcxLDkgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2Vsc2UKIAotc3RhdGljIG5pb3NfdWFydF90ICp1YXJ0ID0gKG5pb3NfdWFydF90ICopQ0ZHX05JT1NfQ09OU09MRTsKK3N0YXRpYyBuaW9zX3VhcnRfdCAqdWFydCA9IChuaW9zX3VhcnRfdCAqKUNPTkZJR19TWVNfTklPU19DT05TT0xFOwogCi0jaWYgZGVmaW5lZChDRkdfTklPU19GSVhFREJBVUQpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX05JT1NfRklYRURCQVVEKQogCiAvKiBFdmVyeXRoaW5nJ3MgYWxyZWFkeSBzZXR1cCBmb3IgZml4ZWQtYmF1ZCBQVEYKICAqIGFzc2lnbm1lbnQKQEAgLTk4LDcgKzk4LDcgQEAKIAlyZXR1cm4gKDApOwogfQogCi0jZW5kaWYgLyogQ0ZHX05JT1NfRklYRURCQVVEICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OSU9TX0ZJWEVEQkFVRCAqLwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2NwdS9uaW9zL3NwaS5jIGIvY3B1L25pb3Mvc3BpLmMKaW5kZXggNjQwODE4MC4uODlmOTc5NyAxMDA2NDQKLS0tIGEvY3B1L25pb3Mvc3BpLmMKKysrIGIvY3B1L25pb3Mvc3BpLmMKQEAgLTI4LDE5ICsyOCwxOSBAQAogI2luY2x1ZGUgPG5pb3MtaW8uaD4KICNpbmNsdWRlIDxzcGkuaD4KIAotI2lmICFkZWZpbmVkKENGR19OSU9TX1NQSUJBU0UpCi0jZXJyb3IgIioqKiBDRkdfTklPU19TUElCQVNFIG5vdCBkZWZpbmVkICoqKiIKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX05JT1NfU1BJQkFTRSkKKyNlcnJvciAiKioqIENPTkZJR19TWVNfTklPU19TUElCQVNFIG5vdCBkZWZpbmVkICoqKiIKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQ0ZHX05JT1NfU1BJQklUUykKLSNlcnJvciAiKioqIENGR19OSU9TX1NQSUJJVFMgbm90IGRlZmluZWQgKioqIgorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTklPU19TUElCSVRTKQorI2Vycm9yICIqKiogQ09ORklHX1NZU19OSU9TX1NQSUJJVFMgbm90IGRlZmluZWQgKioqIgogI2VuZGlmCiAKLSNpZiAoQ0ZHX05JT1NfU1BJQklUUyAhPSA4KSAmJiAoQ0ZHX05JT1NfU1BJQklUUyAhPSAxNikKLSNlcnJvciAiKioqIENGR19OSU9TX1NQSUJJVFMgc2hvdWxkIGJlIGVpdGhlciA4IG9yIDE2ICoqKiIKKyNpZiAoQ09ORklHX1NZU19OSU9TX1NQSUJJVFMgIT0gOCkgJiYgKENPTkZJR19TWVNfTklPU19TUElCSVRTICE9IDE2KQorI2Vycm9yICIqKiogQ09ORklHX1NZU19OSU9TX1NQSUJJVFMgc2hvdWxkIGJlIGVpdGhlciA4IG9yIDE2ICoqKiIKICNlbmRpZgogCi1zdGF0aWMgbmlvc19zcGlfdAkqc3BpCT0gKG5pb3Nfc3BpX3QgKilDRkdfTklPU19TUElCQVNFOworc3RhdGljIG5pb3Nfc3BpX3QJKnNwaQk9IChuaW9zX3NwaV90ICopQ09ORklHX1NZU19OSU9TX1NQSUJBU0U7CiAKIC8qIFdhcm5pbmc6CiAgKiBZb3UgY2Fubm90IGVuYWJsZSBERUJVRyBmb3IgZWFybHkgc3lzdGVtIGluaXRhbGl6YXRpb24sIGkuIGUuIHdoZW4KQEAgLTEzOSw3ICsxMzksNyBAQAogCWlmIChmbGFncyAmIFNQSV9YRkVSX0JFR0lOKQogCQlzcGlfY3NfYWN0aXZhdGUoc2xhdmUpOwogCi0JaWYgKCEoZmxhZ3MgJiBTUElfWEZFUl9FTkQpIHx8IGJpdGxlbiA+IENGR19OSU9TX1NQSUJJVFMpIHsKKwlpZiAoIShmbGFncyAmIFNQSV9YRkVSX0VORCkgfHwgYml0bGVuID4gQ09ORklHX1NZU19OSU9TX1NQSUJJVFMpIHsKIAkJLyogbGVhdmUgY2hpcCBzZWxlY3QgYWN0aXZlICovCiAJCXNwaS0+Y29udHJvbCB8PSBOSU9TX1NQSV9TU087CiAJfQpAQCAtMTQ3LDcgKzE0Nyw3IEBACiAJZm9yICgJaiA9IDA7CQkJCS8qIGNvdW50IGVhY2ggYnl0ZSBpbiAqLwogCQlqIDwgKChiaXRsZW4gKyA3KSAvIDgpOwkJLyogZG91dFtdIGFuZCBkaW5bXSAqLwogCi0jaWYJKENGR19OSU9TX1NQSUJJVFMgPT0gOCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX1NQSUJJVFMgPT0gOCkKIAkJaisrKSB7CiAKIAkJd2hpbGUgKChzcGktPnN0YXR1cyAmIE5JT1NfU1BJX1RSRFkpID09IDApCkBAIC0xNTgsNyArMTU4LDcgQEAKIAkJCTsKIAkJcnhkW2pdID0gKHVuc2lnbmVkIGNoYXIpKHNwaS0+cnhkYXRhICYgMHhmZik7CiAKLSNlbGlmCShDRkdfTklPU19TUElCSVRTID09IDE2KQorI2VsaWYJKENPTkZJR19TWVNfTklPU19TUElCSVRTID09IDE2KQogCQlqKyssIGorKykgewogCiAJCXdoaWxlICgoc3BpLT5zdGF0dXMgJiBOSU9TX1NQSV9UUkRZKSA9PSAwKQpAQCAtMTc1LDEyICsxNzUsMTIgQEAKIAkJCXJ4ZFtqKzFdID0gKHVuc2lnbmVkIGNoYXIpKHNwaS0+cnhkYXRhICYgMHhmZik7CiAKICNlbHNlCi0jZXJyb3IgIioqKiB1bnN1cHBvcnRlZCB2YWx1ZSBvZiBDRkdfTklPU19TUElCSVRTICoqKiIKKyNlcnJvciAiKioqIHVuc3VwcG9ydGVkIHZhbHVlIG9mIENPTkZJR19TWVNfTklPU19TUElCSVRTICoqKiIKICNlbmRpZgogCiAJfQogCi0JaWYgKGJpdGxlbiA+IENGR19OSU9TX1NQSUJJVFMgJiYgKGZsYWdzICYgU1BJX1hGRVJfRU5EKSkgeworCWlmIChiaXRsZW4gPiBDT05GSUdfU1lTX05JT1NfU1BJQklUUyAmJiAoZmxhZ3MgJiBTUElfWEZFUl9FTkQpKSB7CiAJCXNwaS0+Y29udHJvbCAmPSB+TklPU19TUElfU1NPOwogCX0KIApkaWZmIC0tZ2l0IGEvY3B1L25pb3Mvc3RhcnQuUyBiL2NwdS9uaW9zL3N0YXJ0LlMKaW5kZXggOWU3Mzk0MS4uNWQxNWU4ZCAxMDA2NDQKLS0tIGEvY3B1L25pb3Mvc3RhcnQuUworKysgYi9jcHUvbmlvcy9zdGFydC5TCkBAIC03MSwxMCArNzEsMTAgQEAKIAkvKgogCSAqIFNUQUNLCiAJICovCi0JcGZ4CSVoaShDRkdfSU5JVF9TUCkKLQltb3ZpCSVzcCwgJWxvKENGR19JTklUX1NQKQotCXBmeAkleGhpKENGR19JTklUX1NQKQotCW1vdmhpCSVzcCwgJXhsbyhDRkdfSU5JVF9TUCkKKwlwZngJJWhpKENPTkZJR19TWVNfSU5JVF9TUCkKKwltb3ZpCSVzcCwgJWxvKENPTkZJR19TWVNfSU5JVF9TUCkKKwlwZngJJXhoaShDT05GSUdfU1lTX0lOSVRfU1ApCisJbW92aGkJJXNwLCAleGxvKENPTkZJR19TWVNfSU5JVF9TUCkKIAltb3YJJWZwLCAlc3AKIAogCXBmeAklaGkoNCoxNikKQEAgLTE1MiwxMCArMTUyLDEwIEBACiAJLyoKIAkgKiBJTklUIFZFQ1RPUiBUQUJMRQogCSAqLwotCXBmeAklaGkoQ0ZHX1ZFQ1RfQkFTRSkKLQltb3ZpCSVnMCwgJWxvKENGR19WRUNUX0JBU0UpCi0JcGZ4CSV4aGkoQ0ZHX1ZFQ1RfQkFTRSkKLQltb3ZoaQklZzAsICV4bG8oQ0ZHX1ZFQ1RfQkFTRSkJLyogZHN0ICovCisJcGZ4CSVoaShDT05GSUdfU1lTX1ZFQ1RfQkFTRSkKKwltb3ZpCSVnMCwgJWxvKENPTkZJR19TWVNfVkVDVF9CQVNFKQorCXBmeAkleGhpKENPTkZJR19TWVNfVkVDVF9CQVNFKQorCW1vdmhpCSVnMCwgJXhsbyhDT05GSUdfU1lTX1ZFQ1RfQkFTRSkJLyogZHN0ICovCiAJbW92CSVsMCwgJWcwCiAKIAlwZngJJWhpKF92ZWN0b3JzKQpkaWZmIC0tZ2l0IGEvY3B1L25pb3MyL2NwdS5jIGIvY3B1L25pb3MyL2NwdS5jCmluZGV4IGY0MjE3YTguLjYzNzk1MzQgMTAwNjQ0Ci0tLSBhL2NwdS9uaW9zMi9jcHUuYworKysgYi9jcHUvbmlvczIvY3B1LmMKQEAgLTI1LDE0ICsyNSwxNCBAQAogI2luY2x1ZGUgPG5pb3MyLmg+CiAjaW5jbHVkZSA8bmlvczItaW8uaD4KIAotI2lmIGRlZmluZWQgKENGR19OSU9TX1NZU0lEX0JBU0UpCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19OSU9TX1NZU0lEX0JBU0UpCiBleHRlcm4gdm9pZCBkaXNwbGF5X3N5c2lkICh2b2lkKTsKLSNlbmRpZiAvKiBDRkdfTklPU19TWVNJRF9CQVNFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OSU9TX1NZU0lEX0JBU0UgKi8KIAogaW50IGNoZWNrY3B1ICh2b2lkKQogewogCXByaW50ZiAoIkNQVSAgIDogTmlvcy1JSVxuIik7Ci0jaWYgIWRlZmluZWQoQ0ZHX05JT1NfU1lTSURfQkFTRSkKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX05JT1NfU1lTSURfQkFTRSkKIAlwcmludGYgKCJTWVNJRCA6IDx1bmtub3duPlxuIik7CiAjZWxzZQogCWRpc3BsYXlfc3lzaWQgKCk7CkBAIC00Myw3ICs0Myw3IEBACiAKIGludCBkb19yZXNldCAodm9pZCkKIHsKLQl2b2lkICgqcnN0KSh2b2lkKSA9ICh2b2lkKCopKHZvaWQpKUNGR19SRVNFVF9BRERSOworCXZvaWQgKCpyc3QpKHZvaWQpID0gKHZvaWQoKikodm9pZCkpQ09ORklHX1NZU19SRVNFVF9BRERSOwogCWRpc2FibGVfaW50ZXJydXB0cyAoKTsKIAlyc3QoKTsKIAlyZXR1cm4oMCk7CmRpZmYgLS1naXQgYS9jcHUvbmlvczIvZXBjcy5jIGIvY3B1L25pb3MyL2VwY3MuYwppbmRleCA0MTRjMzhjLi45NjhiNTBmIDEwMDY0NAotLS0gYS9jcHUvbmlvczIvZXBjcy5jCisrKyBiL2NwdS9uaW9zMi9lcGNzLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWYgZGVmaW5lZChDRkdfTklPU19FUENTQkFTRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19FUENTQkFTRSkKICNpbmNsdWRlIDxjb21tYW5kLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8bmlvczItaW8uaD4KQEAgLTcyLDcgKzcyLDcgQEAKICAqLwogI2RlZmluZSBFUENTX1RJTUVPVVQJCTEwMAkvKiAxMDAgbXNlYyB0aW1lb3V0ICovCiAKLXN0YXRpYyBuaW9zX3NwaV90ICplcGNzID0gKG5pb3Nfc3BpX3QgKilDRkdfTklPU19FUENTQkFTRTsKK3N0YXRpYyBuaW9zX3NwaV90ICplcGNzID0gKG5pb3Nfc3BpX3QgKilDT05GSUdfU1lTX05JT1NfRVBDU0JBU0U7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogRGV2aWNlIGFjY2VzcwpkaWZmIC0tZ2l0IGEvY3B1L25pb3MyL2ludGVycnVwdHMuYyBiL2NwdS9uaW9zMi9pbnRlcnJ1cHRzLmMKaW5kZXggZWM1ZGIzMWIuLjFjMzU2NmUgMTAwNjQ0Ci0tLSBhL2NwdS9uaW9zMi9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L25pb3MyL2ludGVycnVwdHMuYwpAQCAtMzcsOCArMzcsOCBAQAogI2luY2x1ZGUgPHN0YXR1c19sZWQuaD4KICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfTklPU19UTVJCQVNFKSAmJiAhZGVmaW5lZChDRkdfTklPU19UTVJJUlEpCi0jZXJyb3IgQ0ZHX05JT1NfVE1SSVJRIG5vdCBkZWZpbmVkIChzZWUgZG9jdW1lbnRhdGlvbikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19UTVJCQVNFKSAmJiAhZGVmaW5lZChDT05GSUdfU1lTX05JT1NfVE1SSVJRKQorI2Vycm9yIENPTkZJR19TWVNfTklPU19UTVJJUlEgbm90IGRlZmluZWQgKHNlZSBkb2N1bWVudGF0aW9uKQogI2VuZGlmCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAtNzQsNyArNzQsNyBAQAogLyogVGhlIGJvYXJkIG11c3QgaGFuZGxlIHRoaXMgaW50ZXJydXB0IGlmIGEgdGltZXIgaXMgbm90CiAgKiBwcm92aWRlZC4KICAqLwotI2lmIGRlZmluZWQoQ0ZHX05JT1NfVE1SQkFTRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19UTVJCQVNFKQogdm9pZCB0bXJfaXNyICh2b2lkICphcmcpCiB7CiAJbmlvc190aW1lcl90ICp0bXIgPSAobmlvc190aW1lcl90ICopYXJnOwpAQCAtODIsNyArODIsNyBAQAogCSAqIHN0YXR1cyByZWdpc3Rlci4KIAkgKi8KIAl3cml0ZWwgKCZ0bXItPnN0YXR1cywgMCk7Ci0JdGltZXN0YW1wICs9IENGR19OSU9TX1RNUk1TOworCXRpbWVzdGFtcCArPSBDT05GSUdfU1lTX05JT1NfVE1STVM7CiAjaWZkZWYgQ09ORklHX1NUQVRVU19MRUQKIAlzdGF0dXNfbGVkX3RpY2sodGltZXN0YW1wKTsKICNlbmRpZgpAQCAtOTAsMjIgKzkwLDIyIEBACiAKIHN0YXRpYyB2b2lkIHRtcl9pbml0ICh2b2lkKQogewotCW5pb3NfdGltZXJfdCAqdG1yID0obmlvc190aW1lcl90ICopQ0ZHX05JT1NfVE1SQkFTRTsKKwluaW9zX3RpbWVyX3QgKnRtciA9KG5pb3NfdGltZXJfdCAqKUNPTkZJR19TWVNfTklPU19UTVJCQVNFOwogCiAJd3JpdGVsICgmdG1yLT5zdGF0dXMsIDApOwogCXdyaXRlbCAoJnRtci0+Y29udHJvbCwgMCk7CiAJd3JpdGVsICgmdG1yLT5jb250cm9sLCBOSU9TX1RJTUVSX1NUT1ApOwogCi0jaWYgZGVmaW5lZChDRkdfTklPU19UTVJDTlQpCi0Jd3JpdGVsICgmdG1yLT5wZXJpb2RsLCBDRkdfTklPU19UTVJDTlQgJiAweGZmZmYpOwotCXdyaXRlbCAoJnRtci0+cGVyaW9kaCwgKENGR19OSU9TX1RNUkNOVCA+PiAxNikgJiAweGZmZmYpOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19OSU9TX1RNUkNOVCkKKwl3cml0ZWwgKCZ0bXItPnBlcmlvZGwsIENPTkZJR19TWVNfTklPU19UTVJDTlQgJiAweGZmZmYpOworCXdyaXRlbCAoJnRtci0+cGVyaW9kaCwgKENPTkZJR19TWVNfTklPU19UTVJDTlQgPj4gMTYpICYgMHhmZmZmKTsKICNlbmRpZgogCXdyaXRlbCAoJnRtci0+Y29udHJvbCwgTklPU19USU1FUl9JVE8gfCBOSU9TX1RJTUVSX0NPTlQgfAogCQkJICBOSU9TX1RJTUVSX1NUQVJUICk7Ci0JaXJxX2luc3RhbGxfaGFuZGxlciAoQ0ZHX05JT1NfVE1SSVJRLCB0bXJfaXNyLCAodm9pZCAqKXRtcik7CisJaXJxX2luc3RhbGxfaGFuZGxlciAoQ09ORklHX1NZU19OSU9TX1RNUklSUSwgdG1yX2lzciwgKHZvaWQgKil0bXIpOwogfQogCi0jZW5kaWYgLyogQ0ZHX05JT1NfVE1SQkFTRSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTklPU19UTVJCQVNFICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IGRpc2FibGVfaW50ZXJydXB0cyAodm9pZCkKQEAgLTE5NSw3ICsxOTUsNyBAQAogCQl2ZWNzW2ldLmNvdW50ID0gMDsKIAl9CiAKLSNpZiBkZWZpbmVkKENGR19OSU9TX1RNUkJBU0UpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX05JT1NfVE1SQkFTRSkKIAl0bXJfaW5pdCAoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9jcHUvbmlvczIvc2VyaWFsLmMgYi9jcHUvbmlvczIvc2VyaWFsLmMKaW5kZXggMGJkMzgyMS4uOGJiYjgwMyAxMDA2NDQKLS0tIGEvY3B1L25pb3MyL3NlcmlhbC5jCisrKyBiL2NwdS9uaW9zMi9zZXJpYWwuYwpAQCAtMzQsNyArMzQsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ09OU09MRV9KVEFHKQogCi1zdGF0aWMgbmlvc19qdGFnX3QgKmp0YWcgPSAobmlvc19qdGFnX3QgKilDRkdfTklPU19DT05TT0xFOworc3RhdGljIG5pb3NfanRhZ190ICpqdGFnID0gKG5pb3NfanRhZ190ICopQ09ORklHX1NZU19OSU9TX0NPTlNPTEU7CiAKIHZvaWQgc2VyaWFsX3NldGJyZyggdm9pZCApeyByZXR1cm47IH0KIGludCBzZXJpYWxfaW5pdCggdm9pZCApIHsgcmV0dXJuKDApO30KQEAgLTc5LDkgKzc5LDkgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2Vsc2UKIAotc3RhdGljIG5pb3NfdWFydF90ICp1YXJ0ID0gKG5pb3NfdWFydF90ICopIENGR19OSU9TX0NPTlNPTEU7CitzdGF0aWMgbmlvc191YXJ0X3QgKnVhcnQgPSAobmlvc191YXJ0X3QgKikgQ09ORklHX1NZU19OSU9TX0NPTlNPTEU7CiAKLSNpZiBkZWZpbmVkKENGR19OSU9TX0ZJWEVEQkFVRCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19GSVhFREJBVUQpCiAKIC8qIEV2ZXJ5dGhpbmcncyBhbHJlYWR5IHNldHVwIGZvciBmaXhlZC1iYXVkIFBURgogICogYXNzaWdubWVudApAQCAtMTA2LDcgKzEwNiw3IEBACiAJcmV0dXJuICgwKTsKIH0KIAotI2VuZGlmIC8qIENGR19OSU9TX0ZJWEVEQkFVRCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTklPU19GSVhFREJBVUQgKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9jcHUvbmlvczIvc3RhcnQuUyBiL2NwdS9uaW9zMi9zdGFydC5TCmluZGV4IDZjNmYyOTQuLmVhNDE0MzUgMTAwNjQ0Ci0tLSBhL2NwdS9uaW9zMi9zdGFydC5TCisrKyBiL2NwdS9uaW9zMi9zdGFydC5TCkBAIC0zOSw5ICszOSw5IEBACiAJICoganVzdCBiZSBpbnZhbGlkYXRpbmcgdGhlIGNhY2hlIGEgc2Vjb25kIHRpbWUuIElmIGNhY2hlCiAJICogaXMgbm90IGltcGxlbWVudGVkIGluaXRpIGJlaGF2ZXMgYXMgbm9wLgogCSAqLwotCW9yaQlyNCwgcjAsICVsbyhDRkdfSUNBQ0hFTElORV9TSVpFKQotCW1vdmhpCXI1LCAlaGkoQ0ZHX0lDQUNIRV9TSVpFKQotCW9yaQlyNSwgcjUsICVsbyhDRkdfSUNBQ0hFX1NJWkUpCisJb3JpCXI0LCByMCwgJWxvKENPTkZJR19TWVNfSUNBQ0hFTElORV9TSVpFKQorCW1vdmhpCXI1LCAlaGkoQ09ORklHX1NZU19JQ0FDSEVfU0laRSkKKwlvcmkJcjUsIHI1LCAlbG8oQ09ORklHX1NZU19JQ0FDSEVfU0laRSkKIAltb3YJcjYsIHIwCiAwOglpbml0aQlyNgogCWFkZAlyNiwgcjYsIHI0CkBAIC02NywxMCArNjcsMTAgQEAKIAkvKiBEQ0FDSEUgSU5JVCAtLSBpZiBkY2FjaGUgbm90IGltcGxlbWVudGVkLCBpbml0ZCBiZWhhdmVzIGFzCiAJICogbm9wLgogCSAqLwotCW1vdmhpCXI0LCAlaGkoQ0ZHX0RDQUNIRUxJTkVfU0laRSkKLQlvcmkJcjQsIHI0LCAlbG8oQ0ZHX0RDQUNIRUxJTkVfU0laRSkKLQltb3ZoaQlyNSwgJWhpKENGR19EQ0FDSEVfU0laRSkKLQlvcmkJcjUsIHI1LCAlbG8oQ0ZHX0RDQUNIRV9TSVpFKQorCW1vdmhpCXI0LCAlaGkoQ09ORklHX1NZU19EQ0FDSEVMSU5FX1NJWkUpCisJb3JpCXI0LCByNCwgJWxvKENPTkZJR19TWVNfRENBQ0hFTElORV9TSVpFKQorCW1vdmhpCXI1LCAlaGkoQ09ORklHX1NZU19EQ0FDSEVfU0laRSkKKwlvcmkJcjUsIHI1LCAlbG8oQ09ORklHX1NZU19EQ0FDSEVfU0laRSkKIAltb3YJcjYsIHIwCiAxOglpbml0ZAkwKHI2KQogCWFkZAlyNiwgcjYsIHI0CkBAIC0xMzYsOCArMTM2LDggQEAKIAlvcmkJcjQsIHI0LCAlbG8oX2V4Y2VwdF9zdGFydCkKIAltb3ZoaQlyNSwgJWhpKF9leGNlcHRfZW5kKQogCW9yaQlyNSwgcjUsICVsbyhfZXhjZXB0X2VuZCkKLQltb3ZoaQlyNiwgJWhpKENGR19FWENFUFRJT05fQUREUikKLQlvcmkJcjYsIHI2LCAlbG8oQ0ZHX0VYQ0VQVElPTl9BRERSKQorCW1vdmhpCXI2LCAlaGkoQ09ORklHX1NZU19FWENFUFRJT05fQUREUikKKwlvcmkJcjYsIHI2LCAlbG8oQ09ORklHX1NZU19FWENFUFRJT05fQUREUikKIAliZXEJcjQsIHI2LCA3ZgkvKiBTa2lwIGlmIGF0IHByb3BlciBhZGRyICovCiAKIDY6CWxkd2lvCXI3LCAwKHI0KQpAQCAtMTUwLDggKzE1MCw4IEBACiAKIAkvKiBTVEFDSyBJTklUIC0tIHplcm8gdG9wIHR3byB3b3JkcyBmb3IgY2FsbCBiYWNrIGNoYWluLgogCSAqLwotCW1vdmhpCXNwLCAlaGkoQ0ZHX0lOSVRfU1ApCi0Jb3JpCXNwLCBzcCwgJWxvKENGR19JTklUX1NQKQorCW1vdmhpCXNwLCAlaGkoQ09ORklHX1NZU19JTklUX1NQKQorCW9yaQlzcCwgc3AsICVsbyhDT05GSUdfU1lTX0lOSVRfU1ApCiAJYWRkaQlzcCwgc3AsIC04CiAJc3R3CXIwLCAwKHNwKQogCXN0dwlyMCwgNChzcCkKQEAgLTE5NSw3ICsxOTUsNyBAQAogCiBkbHlfY2xrczoKIAotI2lmIChDRkdfSUNBQ0hFX1NJWkUgPiAwKQorI2lmIChDT05GSUdfU1lTX0lDQUNIRV9TSVpFID4gMCkKIAlzdWJpCXI0LCByNCwgMwkJLyogMyBjbG9ja3MvbG9vcAkqLwogI2Vsc2UKIAlzdWJpCXI0LCByNCwgMTIJCS8qIDEyIGNsb2Nrcy9sb29wCSovCmRpZmYgLS1naXQgYS9jcHUvbmlvczIvc3lzaWQuYyBiL2NwdS9uaW9zMi9zeXNpZC5jCmluZGV4IDY5N2VkMDMuLmFmZDVkODMgMTAwNjQ0Ci0tLSBhL2NwdS9uaW9zMi9zeXNpZC5jCisrKyBiL2NwdS9uaW9zMi9zeXNpZC5jCkBAIC0yMyw3ICsyMyw3IEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KIAotI2lmIGRlZmluZWQgKENGR19OSU9TX1NZU0lEX0JBU0UpCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19OSU9TX1NZU0lEX0JBU0UpCiAKICNpbmNsdWRlIDxjb21tYW5kLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC0zMiw3ICszMiw3IEBACiAKIHZvaWQgZGlzcGxheV9zeXNpZCAodm9pZCkKIHsKLQlzdHJ1Y3Qgbmlvc19zeXNpZF90ICpzeXNpZCA9IChzdHJ1Y3Qgbmlvc19zeXNpZF90ICopQ0ZHX05JT1NfU1lTSURfQkFTRTsKKwlzdHJ1Y3Qgbmlvc19zeXNpZF90ICpzeXNpZCA9IChzdHJ1Y3Qgbmlvc19zeXNpZF90ICopQ09ORklHX1NZU19OSU9TX1NZU0lEX0JBU0U7CiAJc3RydWN0IHRtIHQ7CiAJY2hhciBhc2NbMzJdOwogCXRpbWVfdCBzdGFtcDsKQEAgLTU1LDQgKzU1LDQgQEAKIAkic3lzaWQgICAtIGRpc3BsYXkgTmlvcy1JSSBzeXN0ZW0gaWRcblxuIiwKIAkiXG4gICAgLSBkaXNwbGF5IE5pb3MtSUkgc3lzdGVtIGlkXG4iCiApOwotI2VuZGlmIC8qIENGR19OSU9TX1NZU0lEX0JBU0UgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX05JT1NfU1lTSURfQkFTRSAqLwpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC80MHhfc3BkX3NkcmFtLmMgYi9jcHUvcHBjNHh4LzQweF9zcGRfc2RyYW0uYwppbmRleCBiMjFiMTNlLi41Nzg2MWIzIDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4LzQweF9zcGRfc2RyYW0uYworKysgYi9jcHUvcHBjNHh4LzQweF9zcGRfc2RyYW0uYwpAQCAtNTIsMTIgKzUyLDEyIEBACiAvKgogICogU2V0IGRlZmF1bHQgdmFsdWVzCiAgKi8KLSNpZm5kZWYgQ0ZHX0kyQ19TUEVFRAotI2RlZmluZSBDRkdfSTJDX1NQRUVECTUwMDAwCisjaWZuZGVmIENPTkZJR19TWVNfSTJDX1NQRUVECisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECTUwMDAwCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfSTJDX1NMQVZFCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJMHhGRQorI2lmbmRlZiBDT05GSUdfU1lTX0kyQ19TTEFWRQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkweEZFCiAjZW5kaWYKIAogI2RlZmluZSBPTkVfQklMTElPTgkxMDAwMDAwMDAwCkBAIC0xNjMsNyArMTYzLDcgQEAKIAkJICogTWFrZSBzdXJlIEkyQyBjb250cm9sbGVyIGlzIGluaXRpYWxpemVkCiAJCSAqIGJlZm9yZSBjb250aW51aW5nLgogCQkgKi8KLQkJaTJjX2luaXQoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJCWkyY19pbml0KENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAJfQogCiAJLyogTWFrZSBzaHVyZSB3ZSBhcmUgdXNpbmcgU0RSQU0gKi8KZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvNDR4X3NwZF9kZHIuYyBiL2NwdS9wcGM0eHgvNDR4X3NwZF9kZHIuYwppbmRleCA5ZWZjZWRlLi4xNTMzOTFlIDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4LzQ0eF9zcGRfZGRyLmMKKysrIGIvY3B1L3BwYzR4eC80NHhfc3BkX2Rkci5jCkBAIC02MiwxMiArNjIsMTIgQEAKIC8qCiAgKiBTZXQgZGVmYXVsdCB2YWx1ZXMKICAqLwotI2lmbmRlZiBDRkdfSTJDX1NQRUVECi0jZGVmaW5lIENGR19JMkNfU1BFRUQJNTAwMDAKKyNpZm5kZWYgQ09ORklHX1NZU19JMkNfU1BFRUQKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJNTAwMDAKICNlbmRpZgogCi0jaWZuZGVmIENGR19JMkNfU0xBVkUKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkweEZFCisjaWZuZGVmIENPTkZJR19TWVNfSTJDX1NMQVZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCTB4RkUKICNlbmRpZgogCiAjZGVmaW5lIE9ORV9CSUxMSU9OCTEwMDAwMDAwMDAKQEAgLTExOSw3ICsxMTksNyBAQAogCiB0eXBlZGVmIHN0cnVjdCBiYW5rX3BhcmFtIEJBTktQQVJNUzsKIAotI2lmZGVmIENGR19TSU1VTEFURV9TUERfRUVQUk9NCisjaWZkZWYgQ09ORklHX1NZU19TSU1VTEFURV9TUERfRUVQUk9NCiBleHRlcm4gY29uc3QgdW5zaWduZWQgY2hhciBjZmdfc2ltdWxhdGVfc3BkX2VlcHJvbVsxMjhdOwogI2VuZGlmCiAKQEAgLTE3NCw3ICsxNzQsNyBAQAogCSAqIE1ha2Ugc3VyZSBJMkMgY29udHJvbGxlciBpcyBpbml0aWFsaXplZAogCSAqIGJlZm9yZSBjb250aW51aW5nLgogCSAqLwotCWkyY19pbml0KENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0KENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKIAkvKgogCSAqIFJlYWQgdGhlIFNQRCBpbmZvcm1hdGlvbiB1c2luZyBJMkMgaW50ZXJmYWNlLiBDaGVjayB0byBzZWUgaWYgdGhlCkBAIC0yNjUsNyArMjY1LDcgQEAKIAkvKgogCSAqIElmIGVjYyBpcyBlbmFibGVkLCBpbml0aWFsaXplIHRoZSBwYXJpdHkgYml0cy4KIAkgKi8KLQllY2NfaW5pdChDRkdfU0RSQU1fQkFTRSwgdG90YWxfc2l6ZSk7CisJZWNjX2luaXQoQ09ORklHX1NZU19TRFJBTV9CQVNFLCB0b3RhbF9zaXplKTsKICNlbmRpZgogCiAJcmV0dXJuIHRvdGFsX3NpemU7CkBAIC0yNzUsMTQgKzI3NSwxNCBAQAogewogCXVuc2lnbmVkIGNoYXIgZGF0YVsyXTsKIAotI2lmZGVmIENGR19TSU1VTEFURV9TUERfRUVQUk9NCi0JaWYgKGNoaXAgPT0gQ0ZHX1NJTVVMQVRFX1NQRF9FRVBST00pIHsKKyNpZmRlZiBDT05GSUdfU1lTX1NJTVVMQVRFX1NQRF9FRVBST00KKwlpZiAoY2hpcCA9PSBDT05GSUdfU1lTX1NJTVVMQVRFX1NQRF9FRVBST00pIHsKIAkJLyoKIAkJICogT25ib2FyZCBzcGQgZWVwcm9tIHJlcXVlc3RlZCAtPiBzaW11bGF0ZSB2YWx1ZXMKIAkJICovCiAJCXJldHVybiBjZmdfc2ltdWxhdGVfc3BkX2VlcHJvbVthZGRyXTsKIAl9Ci0jZW5kaWYgLyogQ0ZHX1NJTVVMQVRFX1NQRF9FRVBST00gKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1NJTVVMQVRFX1NQRF9FRVBST00gKi8KIAogCWlmIChpMmNfcHJvYmUoY2hpcCkgPT0gMCkgewogCQlpZiAoaTJjX3JlYWQoY2hpcCwgYWRkciwgMSwgZGF0YSwgMSkgPT0gMCkgewpAQCAtMTEyMCw3ICsxMTIwLDcgQEAKIAkvKgogCSAqIHJlc2V0IHRoZSBiYW5rX2Jhc2UgYWRkcmVzcwogCSAqLwotCWJhbmtfYmFzZV9hZGRyID0gQ0ZHX1NEUkFNX0JBU0U7CisJYmFua19iYXNlX2FkZHIgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAKIAlmb3IgKGRpbW1fbnVtID0gMDsgZGltbV9udW0gPCBudW1fZGltbV9iYW5rczsgZGltbV9udW0rKykgewogCQlpZiAoZGltbV9wb3B1bGF0ZWRbZGltbV9udW1dID09IFRSVUUpIHsKZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvNDR4X3NwZF9kZHIyLmMgYi9jcHUvcHBjNHh4LzQ0eF9zcGRfZGRyMi5jCmluZGV4IGYxZDc2ODQuLjMwYzJlNDQgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvNDR4X3NwZF9kZHIyLmMKKysrIGIvY3B1L3BwYzR4eC80NHhfc3BkX2RkcjIuYwpAQCAtNDAyLDggKzQwMiw4IEBACiAJICovCiAKIAkvKiBzd2l0Y2ggdG8gY29ycmVjdCBJMkMgYnVzICovCi0JSTJDX1NFVF9CVVMoQ0ZHX1NQRF9CVVNfTlVNKTsKLQlpMmNfaW5pdChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlJMkNfU0VUX0JVUyhDT05GSUdfU1lTX1NQRF9CVVNfTlVNKTsKKwlpMmNfaW5pdChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAkgKiBDbGVhciBvdXQgdGhlIHNlcmlhbCBwcmVzZW5jZSBkZXRlY3QgYnVmZmVycy4KQEAgLTI5NzYsNjIgKzI5NzYsNjIgQEAKIAogCS8qIFNldCBNZW1vcnkgQmFuayBDb25maWd1cmF0aW9uIFJlZ2lzdGVycyAqLwogCi0JbXRzZHJhbShTRFJBTV9NQjBDRiwgQ0ZHX1NEUkFNMF9NQjBDRik7Ci0JbXRzZHJhbShTRFJBTV9NQjFDRiwgQ0ZHX1NEUkFNMF9NQjFDRik7Ci0JbXRzZHJhbShTRFJBTV9NQjJDRiwgQ0ZHX1NEUkFNMF9NQjJDRik7Ci0JbXRzZHJhbShTRFJBTV9NQjNDRiwgQ0ZHX1NEUkFNMF9NQjNDRik7CisJbXRzZHJhbShTRFJBTV9NQjBDRiwgQ09ORklHX1NZU19TRFJBTTBfTUIwQ0YpOworCW10c2RyYW0oU0RSQU1fTUIxQ0YsIENPTkZJR19TWVNfU0RSQU0wX01CMUNGKTsKKwltdHNkcmFtKFNEUkFNX01CMkNGLCBDT05GSUdfU1lTX1NEUkFNMF9NQjJDRik7CisJbXRzZHJhbShTRFJBTV9NQjNDRiwgQ09ORklHX1NZU19TRFJBTTBfTUIzQ0YpOwogCiAJLyogU2V0IE1lbW9yeSBDbG9jayBUaW1pbmcgUmVnaXN0ZXIgKi8KIAotCW10c2RyYW0oU0RSQU1fQ0xLVFIsIENGR19TRFJBTTBfQ0xLVFIpOworCW10c2RyYW0oU0RSQU1fQ0xLVFIsIENPTkZJR19TWVNfU0RSQU0wX0NMS1RSKTsKIAogCS8qIFNldCBSZWZyZXNoIFRpbWUgUmVnaXN0ZXIgKi8KIAotCW10c2RyYW0oU0RSQU1fUlRSLCBDRkdfU0RSQU0wX1JUUik7CisJbXRzZHJhbShTRFJBTV9SVFIsIENPTkZJR19TWVNfU0RSQU0wX1JUUik7CiAKIAkvKiBTZXQgU0RSQU0gVGltaW5nIFJlZ2lzdGVycyAqLwogCi0JbXRzZHJhbShTRFJBTV9TRFRSMSwgQ0ZHX1NEUkFNMF9TRFRSMSk7Ci0JbXRzZHJhbShTRFJBTV9TRFRSMiwgQ0ZHX1NEUkFNMF9TRFRSMik7Ci0JbXRzZHJhbShTRFJBTV9TRFRSMywgQ0ZHX1NEUkFNMF9TRFRSMyk7CisJbXRzZHJhbShTRFJBTV9TRFRSMSwgQ09ORklHX1NZU19TRFJBTTBfU0RUUjEpOworCW10c2RyYW0oU0RSQU1fU0RUUjIsIENPTkZJR19TWVNfU0RSQU0wX1NEVFIyKTsKKwltdHNkcmFtKFNEUkFNX1NEVFIzLCBDT05GSUdfU1lTX1NEUkFNMF9TRFRSMyk7CiAKIAkvKiBTZXQgTW9kZSBhbmQgRXh0ZW5kZWQgTW9kZSBSZWdpc3RlcnMgKi8KIAotCW10c2RyYW0oU0RSQU1fTU1PREUsIENGR19TRFJBTTBfTU1PREUpOwotCW10c2RyYW0oU0RSQU1fTUVNT0RFLCBDRkdfU0RSQU0wX01FTU9ERSk7CisJbXRzZHJhbShTRFJBTV9NTU9ERSwgQ09ORklHX1NZU19TRFJBTTBfTU1PREUpOworCW10c2RyYW0oU0RSQU1fTUVNT0RFLCBDT05GSUdfU1lTX1NEUkFNMF9NRU1PREUpOwogCiAJLyogU2V0IE1lbW9yeSBDb250cm9sbGVyIE9wdGlvbnMgMSBSZWdpc3RlciAqLwogCi0JbXRzZHJhbShTRFJBTV9NQ09QVDEsIENGR19TRFJBTTBfTUNPUFQxKTsKKwltdHNkcmFtKFNEUkFNX01DT1BUMSwgQ09ORklHX1NZU19TRFJBTTBfTUNPUFQxKTsKIAogCS8qIFNldCBNYW51YWwgSW5pdGlhbGl6YXRpb24gQ29udHJvbCBSZWdpc3RlcnMgKi8KIAotCW10c2RyYW0oU0RSQU1fSU5JVFBMUjAsIENGR19TRFJBTTBfSU5JVFBMUjApOwotCW10c2RyYW0oU0RSQU1fSU5JVFBMUjEsIENGR19TRFJBTTBfSU5JVFBMUjEpOwotCW10c2RyYW0oU0RSQU1fSU5JVFBMUjIsIENGR19TRFJBTTBfSU5JVFBMUjIpOwotCW10c2RyYW0oU0RSQU1fSU5JVFBMUjMsIENGR19TRFJBTTBfSU5JVFBMUjMpOwotCW10c2RyYW0oU0RSQU1fSU5JVFBMUjQsIENGR19TRFJBTTBfSU5JVFBMUjQpOwotCW10c2RyYW0oU0RSQU1fSU5JVFBMUjUsIENGR19TRFJBTTBfSU5JVFBMUjUpOwotCW10c2RyYW0oU0RSQU1fSU5JVFBMUjYsIENGR19TRFJBTTBfSU5JVFBMUjYpOwotCW10c2RyYW0oU0RSQU1fSU5JVFBMUjcsIENGR19TRFJBTTBfSU5JVFBMUjcpOwotCW10c2RyYW0oU0RSQU1fSU5JVFBMUjgsIENGR19TRFJBTTBfSU5JVFBMUjgpOwotCW10c2RyYW0oU0RSQU1fSU5JVFBMUjksIENGR19TRFJBTTBfSU5JVFBMUjkpOwotCW10c2RyYW0oU0RSQU1fSU5JVFBMUjEwLCBDRkdfU0RSQU0wX0lOSVRQTFIxMCk7Ci0JbXRzZHJhbShTRFJBTV9JTklUUExSMTEsIENGR19TRFJBTTBfSU5JVFBMUjExKTsKLQltdHNkcmFtKFNEUkFNX0lOSVRQTFIxMiwgQ0ZHX1NEUkFNMF9JTklUUExSMTIpOwotCW10c2RyYW0oU0RSQU1fSU5JVFBMUjEzLCBDRkdfU0RSQU0wX0lOSVRQTFIxMyk7Ci0JbXRzZHJhbShTRFJBTV9JTklUUExSMTQsIENGR19TRFJBTTBfSU5JVFBMUjE0KTsKLQltdHNkcmFtKFNEUkFNX0lOSVRQTFIxNSwgQ0ZHX1NEUkFNMF9JTklUUExSMTUpOworCW10c2RyYW0oU0RSQU1fSU5JVFBMUjAsIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFIwKTsKKwltdHNkcmFtKFNEUkFNX0lOSVRQTFIxLCBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMSk7CisJbXRzZHJhbShTRFJBTV9JTklUUExSMiwgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjIpOworCW10c2RyYW0oU0RSQU1fSU5JVFBMUjMsIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFIzKTsKKwltdHNkcmFtKFNEUkFNX0lOSVRQTFI0LCBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSNCk7CisJbXRzZHJhbShTRFJBTV9JTklUUExSNSwgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjUpOworCW10c2RyYW0oU0RSQU1fSU5JVFBMUjYsIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFI2KTsKKwltdHNkcmFtKFNEUkFNX0lOSVRQTFI3LCBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSNyk7CisJbXRzZHJhbShTRFJBTV9JTklUUExSOCwgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjgpOworCW10c2RyYW0oU0RSQU1fSU5JVFBMUjksIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFI5KTsKKwltdHNkcmFtKFNEUkFNX0lOSVRQTFIxMCwgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjEwKTsKKwltdHNkcmFtKFNEUkFNX0lOSVRQTFIxMSwgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjExKTsKKwltdHNkcmFtKFNEUkFNX0lOSVRQTFIxMiwgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjEyKTsKKwltdHNkcmFtKFNEUkFNX0lOSVRQTFIxMywgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjEzKTsKKwltdHNkcmFtKFNEUkFNX0lOSVRQTFIxNCwgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjE0KTsKKwltdHNkcmFtKFNEUkFNX0lOSVRQTFIxNSwgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjE1KTsKIAogCS8qIFNldCBPbi1EaWUgVGVybWluYXRpb24gUmVnaXN0ZXJzICovCiAKLQltdHNkcmFtKFNEUkFNX0NPRFQsIENGR19TRFJBTTBfQ09EVCk7Ci0JbXRzZHJhbShTRFJBTV9NT0RUMCwgQ0ZHX1NEUkFNMF9NT0RUMCk7Ci0JbXRzZHJhbShTRFJBTV9NT0RUMSwgQ0ZHX1NEUkFNMF9NT0RUMSk7CisJbXRzZHJhbShTRFJBTV9DT0RULCBDT05GSUdfU1lTX1NEUkFNMF9DT0RUKTsKKwltdHNkcmFtKFNEUkFNX01PRFQwLCBDT05GSUdfU1lTX1NEUkFNMF9NT0RUMCk7CisJbXRzZHJhbShTRFJBTV9NT0RUMSwgQ09ORklHX1NZU19TRFJBTTBfTU9EVDEpOwogCiAJLyogU2V0IFdyaXRlIFRpbWluZyBSZWdpc3RlciAqLwogCi0JbXRzZHJhbShTRFJBTV9XUkRUUiwgQ0ZHX1NEUkFNMF9XUkRUUik7CisJbXRzZHJhbShTRFJBTV9XUkRUUiwgQ09ORklHX1NZU19TRFJBTTBfV1JEVFIpOwogCiAJLyoKIAkgKiBTdGFydCBJbml0aWFsaXphdGlvbiBieSBTRFJBTTBfTUNPUFQyW1NSRU5dID0gMCBhbmQKQEAgLTMwNTIsMTIgKzMwNTIsMTIgQEAKIAogCS8qIFNldCBEZWxheSBDb250cm9sIFJlZ2lzdGVycyAqLwogCi0JbXRzZHJhbShTRFJBTV9ETENSLCBDRkdfU0RSQU0wX0RMQ1IpOworCW10c2RyYW0oU0RSQU1fRExDUiwgQ09ORklHX1NZU19TRFJBTTBfRExDUik7CiAKICNpZiAhZGVmaW5lZChDT05GSUdfUFBDNHh4X0REUl9BVVRPQ0FMSUJSQVRJT04pCi0JbXRzZHJhbShTRFJBTV9SRENDLCBDRkdfU0RSQU0wX1JEQ0MpOwotCW10c2RyYW0oU0RSQU1fUlFEQywgQ0ZHX1NEUkFNMF9SUURDKTsKLQltdHNkcmFtKFNEUkFNX1JGREMsIENGR19TRFJBTTBfUkZEQyk7CisJbXRzZHJhbShTRFJBTV9SRENDLCBDT05GSUdfU1lTX1NEUkFNMF9SRENDKTsKKwltdHNkcmFtKFNEUkFNX1JRREMsIENPTkZJR19TWVNfU0RSQU0wX1JRREMpOworCW10c2RyYW0oU0RSQU1fUkZEQywgQ09ORklHX1NZU19TRFJBTTBfUkZEQyk7CiAjZW5kaWYgLyogIUNPTkZJR19QUEM0eHhfRERSX0FVVE9DQUxJQlJBVElPTiAqLwogCiAJLyoKQEAgLTMwNzcsNyArMzA3Nyw3IEBACiAjZW5kaWYgLyogQ09ORklHX1BQQzR4eF9ERFJfQVVUT0NBTElCUkFUSU9OICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19ERFJfRUNDKQotCWVjY19pbml0KENGR19TRFJBTV9CQVNFLCBDRkdfTUJZVEVTX1NEUkFNIDw8IDIwKTsKKwllY2NfaW5pdChDT05GSUdfU1lTX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTUJZVEVTX1NEUkFNIDw8IDIwKTsKICNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19ERFJfRUNDKSAqLwogCiAJcHBjNHh4X2libV9kZHIyX3JlZ2lzdGVyX2R1bXAoKTsKQEAgLTMwOTMsNyArMzA5Myw3IEBACiAKICNlbmRpZiAvKiAhZGVmaW5lZChDT05GSUdfTkFORF9VX0JPT1QpIHx8IGRlZmluZWQoQ09ORklHX05BTkRfU1BMKSAqLwogCi0JcmV0dXJuIChDRkdfTUJZVEVTX1NEUkFNIDw8IDIwKTsKKwlyZXR1cm4gKENPTkZJR19TWVNfTUJZVEVTX1NEUkFNIDw8IDIwKTsKIH0KICNlbmRpZiAvKiBDT05GSUdfU1BEX0VFUFJPTSAqLwogCmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4LzR4eF9lbmV0LmMgYi9jcHUvcHBjNHh4LzR4eF9lbmV0LmMKaW5kZXggNmQ0ZDA0My4uZDdiMTZkYSAxMDA2NDQKLS0tIGEvY3B1L3BwYzR4eC80eHhfZW5ldC5jCisrKyBiL2NwdS9wcGM0eHgvNHh4X2VuZXQuYwpAQCAtMjI1LDcgKzIyNSw3IEBACiAgKiBTb21lIGJvYXJkcyBkbyBub3QgaGF2ZSBhIFBIWSBmb3IgZWFjaCBldGhlcm5ldCBwb3J0LiBUaGVzZSBwb3J0cwogICogYXJlIGtub3duIGFzIEZpeGVkIFBIWSAob3IgUEhZLWxlc3MpIHBvcnRzLiBGb3Igc3VjaCBwb3J0cywgc2V0CiAgKiB0aGUgYXBwcm9wcmlhdGUgQ09ORklHX1BIWV9BRERSIGVxdWFsIHRvIENPTkZJR19GSVhFRF9QSFkgYW5kCi0gKiB0aGVuIGRlZmluZSBDRkdfRklYRURfUEhZX1BPUlRTIHRvIGRlZmluZSB3aGF0IHRoZSBzcGVlZCBhbmQKKyAqIHRoZW4gZGVmaW5lIENPTkZJR19TWVNfRklYRURfUEhZX1BPUlRTIHRvIGRlZmluZSB3aGF0IHRoZSBzcGVlZCBhbmQKICAqIGR1cGxleCBzaG91bGQgYmUgZm9yIHRoZXNlIHBvcnRzIGluIHRoZSBib2FyZCBjb25maWd1cmF0aW9uCiAgKiBmaWxlLgogICoKQEAgLTIzNywyMCArMjM3LDIwIEBACiAgKiAgICAgI2RlZmluZSBDT05GSUdfUEhZMl9BRERSICAgQ09ORklHX0ZJWEVEX1BIWQogICogICAgICNkZWZpbmUgQ09ORklHX1BIWTNfQUREUiAgIDMKICAqCi0gKiAgICAgI2RlZmluZSBDRkdfRklYRURfUEhZX1BPUlQoZGV2bnVtLHNwZWVkLGR1cGxleCkgXAorICogICAgICNkZWZpbmUgQ09ORklHX1NZU19GSVhFRF9QSFlfUE9SVChkZXZudW0sc3BlZWQsZHVwbGV4KSBcCiAgKiAgICAgICAgICAgICAgICAgICAgIHtkZXZudW0sIHNwZWVkLCBkdXBsZXh9LAogICoKLSAqICAgICAjZGVmaW5lIENGR19GSVhFRF9QSFlfUE9SVFMgXAotICogICAgICAgICAgICAgICAgICAgICBDRkdfRklYRURfUEhZX1BPUlQoMCwxMDAwLEZVTEwpIFwKLSAqICAgICAgICAgICAgICAgICAgICAgQ0ZHX0ZJWEVEX1BIWV9QT1JUKDIsMTAwLEhBTEYpCisgKiAgICAgI2RlZmluZSBDT05GSUdfU1lTX0ZJWEVEX1BIWV9QT1JUUyBcCisgKiAgICAgICAgICAgICAgICAgICAgIENPTkZJR19TWVNfRklYRURfUEhZX1BPUlQoMCwxMDAwLEZVTEwpIFwKKyAqICAgICAgICAgICAgICAgICAgICAgQ09ORklHX1NZU19GSVhFRF9QSFlfUE9SVCgyLDEwMCxIQUxGKQogICovCiAKICNpZm5kZWYgQ09ORklHX0ZJWEVEX1BIWQogI2RlZmluZSBDT05GSUdfRklYRURfUEhZCTB4RkZGRkZGRkYgLyogRml4ZWQgUEhZIChQSFktbGVzcykgKi8KICNlbmRpZgogCi0jaWZuZGVmIENGR19GSVhFRF9QSFlfUE9SVFMKLSNkZWZpbmUgQ0ZHX0ZJWEVEX1BIWV9QT1JUUwkvKiBkZWZhdWx0IGlzIGFuIGVtcHR5IGFycmF5ICovCisjaWZuZGVmIENPTkZJR19TWVNfRklYRURfUEhZX1BPUlRTCisjZGVmaW5lIENPTkZJR19TWVNfRklYRURfUEhZX1BPUlRTCS8qIGRlZmF1bHQgaXMgYW4gZW1wdHkgYXJyYXkgKi8KICNlbmRpZgogCiBzdHJ1Y3QgZml4ZWRfcGh5X3BvcnQgewpAQCAtMjYwLDcgKzI2MCw3IEBACiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZpeGVkX3BoeV9wb3J0IGZpeGVkX3BoeV9wb3J0W10gPSB7Ci0JQ0ZHX0ZJWEVEX1BIWV9QT1JUUwkvKiBkZWZpbmVkIGluIGJvYXJkIGNvbmZpZ3VyYXRpb24gZmlsZSAqLworCUNPTkZJR19TWVNfRklYRURfUEhZX1BPUlRTCS8qIGRlZmluZWQgaW4gYm9hcmQgY29uZmlndXJhdGlvbiBmaWxlICovCiB9OwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwpAQCAtMTMzNyw4ICsxMzM3LDggQEAKICNpZmRlZiBDT05GSUdfNHh4X0RDQUNIRQogCQlmbHVzaF9kY2FjaGVfcmFuZ2UoYmRfY2FjaGVkLCBiZF9jYWNoZWQgKyBNQUxfQUxMT0NfU0laRSk7CiAJCWlmICghbGFzdF91c2VkX2VhKQotI2lmIGRlZmluZWQoQ0ZHX01FTV9UT1BfSElERSkKLQkJCWJkX3VuY2FjaGVkID0gYmlzLT5iaV9tZW1zaXplICsgQ0ZHX01FTV9UT1BfSElERTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTUVNX1RPUF9ISURFKQorCQkJYmRfdW5jYWNoZWQgPSBiaXMtPmJpX21lbXNpemUgKyBDT05GSUdfU1lTX01FTV9UT1BfSElERTsKICNlbHNlCiAJCQliZF91bmNhY2hlZCA9IGJpcy0+YmlfbWVtc2l6ZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC80eHhfaWJtX2RkcjJfYXV0b2NhbGliLmMgYi9jcHUvcHBjNHh4LzR4eF9pYm1fZGRyMl9hdXRvY2FsaWIuYwppbmRleCA0N2FiMzliLi4xZTNlMjBkIDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4LzR4eF9pYm1fZGRyMl9hdXRvY2FsaWIuYworKysgYi9jcHUvcHBjNHh4LzR4eF9pYm1fZGRyMl9hdXRvY2FsaWIuYwpAQCAtNTMsMTEgKzUzLDExIEBACiAjZGVmaW5lIE1BWEJYQ0YJCQk0CiAjZGVmaW5lIFNEUkFNX1JYQkFTX1NISUZUXzFNCTIwCiAKLSNpZiBkZWZpbmVkKENGR19ERUNSRU1FTlRfUEFUVEVSTlMpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RFQ1JFTUVOVF9QQVRURVJOUykKICNkZWZpbmUgTlVNTUVNVEVTVFMJCTI0CiAjZWxzZQogI2RlZmluZSBOVU1NRU1URVNUUwkJOAotI2VuZGlmIC8qIENGR19ERUNSRU1FTlRfUEFUVEVSTlMgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RFQ1JFTUVOVF9QQVRURVJOUyAqLwogI2RlZmluZSBOVU1MT09QUwkJMQkvKiBjb25maWd1cmUgYXMgeW91IGRlZW0gYXBwcm9wb3JpYXRlICovCiAjZGVmaW5lIE5VTU1FTVdPUkRTCQkxNgogCkBAIC0yNTQsNyArMjU0LDcgQEAKIAkJIDB4NTVBQTU1QUEsIDB4NTVBQTU1QUEsIDB4QUE1NUFBNTUsIDB4QUE1NUFBNTUsCiAJCSAweDU1QUE1NUFBLCAweDU1QUE1NUFBLCAweEFBNTVBQTU1LCAweEFBNTVBQTU1fSwKIAotI2lmIGRlZmluZWQoQ0ZHX0RFQ1JFTUVOVF9QQVRURVJOUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfREVDUkVNRU5UX1BBVFRFUk5TKQogCS8qIDggKi8JezB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsCiAJCSAweGZmZmZmZmZmLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmLAogCQkgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwKQEAgLTMxOSw3ICszMTksNyBAQAogCQkgMHhmZmYwZmZmMCwgMHhmZmYwZmZmMCwgMHhmZmYwZmZmMCwgMHhmZmYwZmZmMCwKIAkJIDB4ZmZmMGZmZjAsIDB4ZmZmMGZmZjAsIDB4ZmZmMGZmZjAsIDB4ZmZmMGZmZjAsCiAJCSAweGZmZjBmZmYwLCAweGZmZjBmZmZlLCAweGZmZjBmZmYwLCAweGZmZjBmZmYwfSwKLSNlbmRpZiAvKiBDRkdfREVDUkVNRU5UX1BBVFRFUk5TICovCisjZW5kaWYgLyogQ09ORklHX1NZU19ERUNSRU1FTlRfUEFUVEVSTlMgKi8KIAkJCQkJCQkJIH07CiAKIAltZnNkcmFtKFNEUkFNX01DT1BUMSwgZWNjX21vZGUpOwpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC80eHhfcGNpLmMgYi9jcHUvcHBjNHh4LzR4eF9wY2kuYwppbmRleCBjMjhjN2FjLi5lY2E5MmU4IDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4LzR4eF9wY2kuYworKysgYi9jcHUvcHBjNHh4LzR4eF9wY2kuYwpAQCAtMTA4LDEyICsxMDgsMTIgQEAKIAliZF90ICpiZCA9IGdkLT5iZDsKIAogCXVuc2lnbmVkIHNob3J0IHRlbXBfc2hvcnQ7Ci0JdW5zaWduZWQgbG9uZyBwdG1wY2lsYVsyXSA9IHtDRkdfUENJX1BUTTFQQ0ksIENGR19QQ0lfUFRNMlBDSX07CisJdW5zaWduZWQgbG9uZyBwdG1wY2lsYVsyXSA9IHtDT05GSUdfU1lTX1BDSV9QVE0xUENJLCBDT05GSUdfU1lTX1BDSV9QVE0yUENJfTsKICNpZiBkZWZpbmVkKENPTkZJR19DUENJNDA1KSB8fCBkZWZpbmVkKENPTkZJR19QTUM0MDUpCiAJY2hhciAqcHRtbGFfc3RyLCAqcHRtbXNfc3RyOwogI2VuZGlmCi0JdW5zaWduZWQgbG9uZyBwdG1sYVsyXSAgICA9IHtDRkdfUENJX1BUTTFMQSwgQ0ZHX1BDSV9QVE0yTEF9OwotCXVuc2lnbmVkIGxvbmcgcHRtbXNbMl0gICAgPSB7Q0ZHX1BDSV9QVE0xTVMsIENGR19QQ0lfUFRNMk1TfTsKKwl1bnNpZ25lZCBsb25nIHB0bWxhWzJdICAgID0ge0NPTkZJR19TWVNfUENJX1BUTTFMQSwgQ09ORklHX1NZU19QQ0lfUFRNMkxBfTsKKwl1bnNpZ25lZCBsb25nIHB0bW1zWzJdICAgID0ge0NPTkZJR19TWVNfUENJX1BUTTFNUywgQ09ORklHX1NZU19QQ0lfUFRNMk1TfTsKICNpZiBkZWZpbmVkKENPTkZJR19QSVA0MDUpIHx8IGRlZmluZWQgKENPTkZJR19NSVA0MDUpCiAJdW5zaWduZWQgbG9uZyBwbW1sYVszXSAgICA9IHsweDgwMDAwMDAwLCAweEEwMDAwMDAwLCAwfTsKIAl1bnNpZ25lZCBsb25nIHBtbW1hWzNdICAgID0gezB4RTAwMDAwMDEsIDB4RTAwMDAwMDEsIDB9OwpAQCAtMjY4LDIyICsyNjgsMjIgQEAKIAkvKgogCSAqIEluc2VydCBTdWJzeXN0ZW0gVmVuZG9yIGFuZCBEZXZpY2UgSUQKIAkgKi8KLQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoUENJREVWSURfNDA1R1AsIFBDSV9TVUJTWVNURU1fVkVORE9SX0lELCBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCk7CisJcGNpX3dyaXRlX2NvbmZpZ193b3JkKFBDSURFVklEXzQwNUdQLCBQQ0lfU1VCU1lTVEVNX1ZFTkRPUl9JRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKICNpZmRlZiBDT05GSUdfQ1BDSTQwNQogCWlmIChtZmRjcihzdHJhcCkgJiBQU1JfUENJX0FSQklUX0VOKQotCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoUENJREVWSURfNDA1R1AsIFBDSV9TVUJTWVNURU1fSUQsIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEKTsKKwkJcGNpX3dyaXRlX2NvbmZpZ193b3JkKFBDSURFVklEXzQwNUdQLCBQQ0lfU1VCU1lTVEVNX0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQpOwogCWVsc2UKLQkJcGNpX3dyaXRlX2NvbmZpZ193b3JkKFBDSURFVklEXzQwNUdQLCBQQ0lfU1VCU1lTVEVNX0lELCBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRDIpOworCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoUENJREVWSURfNDA1R1AsIFBDSV9TVUJTWVNURU1fSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRDIpOwogI2Vsc2UKLQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoUENJREVWSURfNDA1R1AsIFBDSV9TVUJTWVNURU1fSUQsIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEKTsKKwlwY2lfd3JpdGVfY29uZmlnX3dvcmQoUENJREVWSURfNDA1R1AsIFBDSV9TVUJTWVNURU1fSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCk7CiAjZW5kaWYKIAogCS8qCiAJICogSW5zZXJ0IENsYXNzLWNvZGUKIAkgKi8KLSNpZmRlZiBDRkdfUENJX0NMQVNTQ09ERQotCXBjaV93cml0ZV9jb25maWdfd29yZChQQ0lERVZJRF80MDVHUCwgUENJX0NMQVNTX1NVQl9DT0RFLCBDRkdfUENJX0NMQVNTQ09ERSk7Ci0jZW5kaWYgLyogQ0ZHX1BDSV9DTEFTU0NPREUgKi8KKyNpZmRlZiBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUKKwlwY2lfd3JpdGVfY29uZmlnX3dvcmQoUENJREVWSURfNDA1R1AsIFBDSV9DTEFTU19TVUJfQ09ERSwgQ09ORklHX1NZU19QQ0lfQ0xBU1NDT0RFKTsKKyNlbmRpZiAvKiBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUgKi8KIAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAJICogSWYgUENJIHNwZWVkID0gNjZNaHosIHNldCA2Nk1oeiBjYXBhYmxlIGJpdC4KQEAgLTQwNSw4ICs0MDUsOCBAQAogICovCiBzdGF0aWMgc3RydWN0IHBjaV9jb25maWdfdGFibGUgcGNpXzQwNWdwX2NvbmZpZ190YWJsZVtdID0gewogLyppZiBWZW5kSUQgaXMgMCBpdCB0ZXJtaW5hdGVzIHRoZSB0YWJsZSBzZWFyY2ggKGllIFdhbG51dCkqLwotI2lmZGVmIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklECi0Je0NGR19QQ0lfU1VCU1lTX1ZFTkRPUklELCBQQ0lfQU5ZX0lELCBQQ0lfQ0xBU1NfQlJJREdFX0hPU1QsCisjaWZkZWYgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklECisJe0NPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCwgUENJX0FOWV9JRCwgUENJX0NMQVNTX0JSSURHRV9IT1NULAogCSBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBwY2lfNDA1Z3Bfc2V0dXBfYnJpZGdlfSwKICNlbmRpZgogCXtQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBQQ0lfQ0xBU1NfRElTUExBWV9WR0EsCkBAIC00ODgsMTAgKzQ4OCwxMCBAQAogCiAJLyogUENJIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyByZWdfbnVtKyssCi0JCSAgICAgICBDRkdfUENJX1RBUkdCQVNFLAotCQkgICAgICAgQ0ZHX1BDSV9NRU1CQVNFLAotI2lmZGVmIENGR19QQ0lfTUVNU0laRQotCQkgICAgICAgQ0ZHX1BDSV9NRU1TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1CQVNFLAorI2lmZGVmIENPTkZJR19TWVNfUENJX01FTVNJWkUKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTVNJWkUsCiAjZWxzZQogCQkgICAgICAgMHgxMDAwMDAwMCwKICNlbmRpZgpAQCAtNTIzLDExICs1MjMsMTEgQEAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCSAqIFBDSSB0YXJnZXQgaW5pdAogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogCXBjaV90YXJnZXRfaW5pdChob3NlKTsgICAgICAgICAgICAgICAgLyogTGV0IGJvYXJkIHNldHVwIHBjaSB0YXJnZXQgKi8KICNlbHNlCi0Jb3V0MTZyKCBQQ0lYMF9TQlNZU1ZJRCwgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgKTsKLQlvdXQxNnIoIFBDSVgwX1NCU1lTSUQsIENGR19QQ0lfU1VCU1lTX0lEICk7CisJb3V0MTZyKCBQQ0lYMF9TQlNZU1ZJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEICk7CisJb3V0MTZyKCBQQ0lYMF9TQlNZU0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSUQgKTsKIAlvdXQxNnIoIFBDSVgwX0NMUywgMHgwMDA2MDAwMCApOyAvKiBCcmlkZ2UsIGhvc3QgYnJpZGdlICovCiAjZW5kaWYKIApAQCAtNTQyLDkgKzU0Miw5IEBACiAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCSAqIFBDSSBtYXN0ZXIgaW5pdDogZGVmYXVsdCBpcyBvbmUgMjU2TUIgcmVnaW9uIGZvciBQQ0kgbWVtb3J5OgotCSAqIDB4M18wMDAwMDAwMCAtIDB4M18wRkZGRkZGRiAgPT0+IENGR19QQ0lfTUVNQkFTRQorCSAqIDB4M18wMDAwMDAwMCAtIDB4M18wRkZGRkZGRiAgPT0+IENPTkZJR19TWVNfUENJX01FTUJBU0UKIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZiBkZWZpbmVkKENGR19QQ0lfTUFTVEVSX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVCkKIAlwY2lfbWFzdGVyX2luaXQoaG9zZSk7ICAgICAgICAgIC8qIExldCBib2FyZCBzZXR1cCBwY2kgbWFzdGVyICovCiAjZWxzZQogCW91dDMyciggUENJWDBfUE9NMFNBLCAwICk7IC8qIGRpc2FibGUgKi8KQEAgLTU1OCw3ICs1NTgsNyBAQAogCW91dDMyciggUENJWDBfUE9NMExBTCwgMHgwMDAwMDAwMCApOwogCW91dDMyciggUENJWDBfUE9NMExBSCwgMHgwMDAwMDAwMyApOwogI2VuZGlmCi0Jb3V0MzJyKCBQQ0lYMF9QT00wUENJQUwsIENGR19QQ0lfTUVNQkFTRSApOworCW91dDMyciggUENJWDBfUE9NMFBDSUFMLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFICk7CiAJb3V0MzJyKCBQQ0lYMF9QT00wUENJQUgsIDB4MDAwMDAwMDAgKTsKIAlvdXQzMnIoIFBDSVgwX1BPTTBTQSwgMHhmMDAwMDAwMSApOyAvKiAyNTZNQiwgZW5hYmxlZCAqLwogCW91dDMyciggUENJWDBfU1RTLCBpbjMyciggUENJWDBfU1RTICkgJiB+MHgwMDAwZmZmOCApOwpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC80eHhfcGNpZS5jIGIvY3B1L3BwYzR4eC80eHhfcGNpZS5jCmluZGV4IDBhYWRjMDYuLmZkNDBkOGEgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvNHh4X3BjaWUuYworKysgYi9jcHUvcHBjNHh4LzR4eF9wY2llLmMKQEAgLTQ5LDEyICs0OSwxMiBAQAogCiBzdGF0aWMgaW50IHZhbGlkYXRlX2VuZHBvaW50KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSkKIHsKLQlpZiAoaG9zZS0+Y2ZnX2RhdGEgPT0gKHU4ICopQ0ZHX1BDSUUwX0NGR0JBU0UpCisJaWYgKGhvc2UtPmNmZ19kYXRhID09ICh1OCAqKUNPTkZJR19TWVNfUENJRTBfQ0ZHQkFTRSkKIAkJcmV0dXJuIChpc19lbmRfcG9pbnQoMCkpOwotCWVsc2UgaWYgKGhvc2UtPmNmZ19kYXRhID09ICh1OCAqKUNGR19QQ0lFMV9DRkdCQVNFKQorCWVsc2UgaWYgKGhvc2UtPmNmZ19kYXRhID09ICh1OCAqKUNPTkZJR19TWVNfUENJRTFfQ0ZHQkFTRSkKIAkJcmV0dXJuIChpc19lbmRfcG9pbnQoMSkpOwotI2lmIENGR19QQ0lFX05SX1BPUlRTID4gMgotCWVsc2UgaWYgKGhvc2UtPmNmZ19kYXRhID09ICh1OCAqKUNGR19QQ0lFMl9DRkdCQVNFKQorI2lmIENPTkZJR19TWVNfUENJRV9OUl9QT1JUUyA+IDIKKwllbHNlIGlmIChob3NlLT5jZmdfZGF0YSA9PSAodTggKilDT05GSUdfU1lTX1BDSUUyX0NGR0JBU0UpCiAJCXJldHVybiAoaXNfZW5kX3BvaW50KDIpKTsKICNlbmRpZgogCkBAIC02NywxMyArNjcsMTMgQEAKIAogCS8qIHVzZSBsb2NhbCBjb25maWd1cmF0aW9uIHNwYWNlIGZvciB0aGUgZmlyc3QgYnVzICovCiAJaWYgKFBDSV9CVVMoZGV2Zm4pID09IDApIHsKLQkJaWYgKGhvc2UtPmNmZ19kYXRhID09ICh1OCopQ0ZHX1BDSUUwX0NGR0JBU0UpCi0JCQliYXNlID0gKHU4KilDRkdfUENJRTBfWENGR0JBU0U7Ci0JCWlmIChob3NlLT5jZmdfZGF0YSA9PSAodTgqKUNGR19QQ0lFMV9DRkdCQVNFKQotCQkJYmFzZSA9ICh1OCopQ0ZHX1BDSUUxX1hDRkdCQVNFOwotI2lmIENGR19QQ0lFX05SX1BPUlRTID4gMgotCQlpZiAoaG9zZS0+Y2ZnX2RhdGEgPT0gKHU4KilDRkdfUENJRTJfQ0ZHQkFTRSkKLQkJCWJhc2UgPSAodTgqKUNGR19QQ0lFMl9YQ0ZHQkFTRTsKKwkJaWYgKGhvc2UtPmNmZ19kYXRhID09ICh1OCopQ09ORklHX1NZU19QQ0lFMF9DRkdCQVNFKQorCQkJYmFzZSA9ICh1OCopQ09ORklHX1NZU19QQ0lFMF9YQ0ZHQkFTRTsKKwkJaWYgKGhvc2UtPmNmZ19kYXRhID09ICh1OCopQ09ORklHX1NZU19QQ0lFMV9DRkdCQVNFKQorCQkJYmFzZSA9ICh1OCopQ09ORklHX1NZU19QQ0lFMV9YQ0ZHQkFTRTsKKyNpZiBDT05GSUdfU1lTX1BDSUVfTlJfUE9SVFMgPiAyCisJCWlmIChob3NlLT5jZmdfZGF0YSA9PSAodTgqKUNPTkZJR19TWVNfUENJRTJfQ0ZHQkFTRSkKKwkJCWJhc2UgPSAodTgqKUNPTkZJR19TWVNfUENJRTJfWENGR0JBU0U7CiAjZW5kaWYKIAl9CiAKQEAgLTg2LDcgKzg2LDcgQEAKIAkJbWZkY3IgKERDUk5fUEVHUExfQ0ZHKERDUk5fUENJRTBfQkFTRSkpIHwgR1BMX0RNRVJfTUFTS19ESVNBKTsKIAltdGRjciAoRENSTl9QRUdQTF9DRkcoRENSTl9QQ0lFMV9CQVNFKSwKIAkJbWZkY3IgKERDUk5fUEVHUExfQ0ZHKERDUk5fUENJRTFfQkFTRSkpIHwgR1BMX0RNRVJfTUFTS19ESVNBKTsKLSNpZiBDRkdfUENJRV9OUl9QT1JUUyA+IDIKKyNpZiBDT05GSUdfU1lTX1BDSUVfTlJfUE9SVFMgPiAyCiAJbXRkY3IgKERDUk5fUEVHUExfQ0ZHKERDUk5fUENJRTJfQkFTRSksCiAJCW1mZGNyIChEQ1JOX1BFR1BMX0NGRyhEQ1JOX1BDSUUyX0JBU0UpKSB8IEdQTF9ETUVSX01BU0tfRElTQSk7CiAjZW5kaWYKQEAgLTk4LDcgKzk4LDcgQEAKIAkJbWZkY3IgKERDUk5fUEVHUExfQ0ZHKERDUk5fUENJRTBfQkFTRSkpICYgfkdQTF9ETUVSX01BU0tfRElTQSk7CiAJbXRkY3IgKERDUk5fUEVHUExfQ0ZHIChEQ1JOX1BDSUUxX0JBU0UpLAogCQltZmRjciAoRENSTl9QRUdQTF9DRkcoRENSTl9QQ0lFMV9CQVNFKSkgJiB+R1BMX0RNRVJfTUFTS19ESVNBKTsKLSNpZiBDRkdfUENJRV9OUl9QT1JUUyA+IDIKKyNpZiBDT05GSUdfU1lTX1BDSUVfTlJfUE9SVFMgPiAyCiAJbXRkY3IgKERDUk5fUEVHUExfQ0ZHIChEQ1JOX1BDSUUyX0JBU0UpLAogCQltZmRjciAoRENSTl9QRUdQTF9DRkcoRENSTl9QQ0lFMl9CQVNFKSkgJiB+R1BMX0RNRVJfTUFTS19ESVNBKTsKICNlbmRpZgpAQCAtMjg2LDcgKzI4Niw3IEBACiAJCW10ZGNyKERDUk5fUEVHUExfU1BFQ0lBTChQQ0lFMiksIDB4Njg3ODI4MDApOwogCQlicmVhazsKIAl9Ci0JdXRsX2Jhc2UgPSAodW5zaWduZWQgaW50ICopKENGR19QQ0lFX0JBU0UgKyAweDEwMDAgKiBwb3J0KTsKKwl1dGxfYmFzZSA9ICh1bnNpZ25lZCBpbnQgKikoQ09ORklHX1NZU19QQ0lFX0JBU0UgKyAweDEwMDAgKiBwb3J0KTsKIAogCS8qCiAJICogU2V0IGJ1ZmZlciBhbGxvY2F0aW9ucyBhbmQgdGhlbiBhc3NlcnQgVlJCIGFuZCBUWEUuCkBAIC00MTIsMjEgKzQxMiwyMSBAQAogCSAqLwogCXN3aXRjaCAocG9ydCkgewogCWNhc2UgMDoKLQkJbXRkY3IoRENSTl9QRUdQTF9SRUdCQUgoUENJRTApLCBVNjRfVE9fVTMyX0hJR0goQ0ZHX1BDSUUwX1VUTEJBU0UpKTsKLQkJbXRkY3IoRENSTl9QRUdQTF9SRUdCQUwoUENJRTApLCBVNjRfVE9fVTMyX0xPVyhDRkdfUENJRTBfVVRMQkFTRSkpOworCQltdGRjcihEQ1JOX1BFR1BMX1JFR0JBSChQQ0lFMCksIFU2NF9UT19VMzJfSElHSChDT05GSUdfU1lTX1BDSUUwX1VUTEJBU0UpKTsKKwkJbXRkY3IoRENSTl9QRUdQTF9SRUdCQUwoUENJRTApLCBVNjRfVE9fVTMyX0xPVyhDT05GSUdfU1lTX1BDSUUwX1VUTEJBU0UpKTsKIAkJbXRkY3IoRENSTl9QRUdQTF9SRUdNU0soUENJRTApLCAweDAwMDA3MDAxKTsJLyogQkFNIDExMTAwMDAwPTRLQiAqLwogCQltdGRjcihEQ1JOX1BFR1BMX1NQRUNJQUwoUENJRTApLCAwKTsKIAkJYnJlYWs7CiAKIAljYXNlIDE6Ci0JCW10ZGNyKERDUk5fUEVHUExfUkVHQkFIKFBDSUUxKSwgVTY0X1RPX1UzMl9ISUdIKENGR19QQ0lFMF9VVExCQVNFKSk7Ci0JCW10ZGNyKERDUk5fUEVHUExfUkVHQkFMKFBDSUUxKSwgVTY0X1RPX1UzMl9MT1coQ0ZHX1BDSUUwX1VUTEJBU0UpCisJCW10ZGNyKERDUk5fUEVHUExfUkVHQkFIKFBDSUUxKSwgVTY0X1RPX1UzMl9ISUdIKENPTkZJR19TWVNfUENJRTBfVVRMQkFTRSkpOworCQltdGRjcihEQ1JOX1BFR1BMX1JFR0JBTChQQ0lFMSksIFU2NF9UT19VMzJfTE9XKENPTkZJR19TWVNfUENJRTBfVVRMQkFTRSkKIAkJCSsgMHgxMDAwKTsKIAkJbXRkY3IoRENSTl9QRUdQTF9SRUdNU0soUENJRTEpLCAweDAwMDA3MDAxKTsJLyogQkFNIDExMTAwMDAwPTRLQiAqLwogCQltdGRjcihEQ1JOX1BFR1BMX1NQRUNJQUwoUENJRTEpLCAwKTsKIAkJYnJlYWs7CiAJfQotCXV0bF9iYXNlID0gKHVuc2lnbmVkIGludCAqKShDRkdfUENJRV9CQVNFICsgMHgxMDAwICogcG9ydCk7CisJdXRsX2Jhc2UgPSAodW5zaWduZWQgaW50ICopKENPTkZJR19TWVNfUENJRV9CQVNFICsgMHgxMDAwICogcG9ydCk7CiAKIAkvKgogCSAqIFNldCBidWZmZXIgYWxsb2NhdGlvbnMgYW5kIHRoZW4gYXNzZXJ0IFZSQiBhbmQgVFhFLgpAQCAtNTEyLDIwICs1MTIsMjAgQEAKIAlzd2l0Y2ggKHBvcnQpIHsKIAljYXNlIDA6CiAJCW10ZGNyKERDUk5fUEVHUExfUkVHQkFIKFBDSUUwKSwgMHgwMDAwMDAwMCk7Ci0JCW10ZGNyKERDUk5fUEVHUExfUkVHQkFMKFBDSUUwKSwgQ0ZHX1BDSUUwX1VUTEJBU0UpOworCQltdGRjcihEQ1JOX1BFR1BMX1JFR0JBTChQQ0lFMCksIENPTkZJR19TWVNfUENJRTBfVVRMQkFTRSk7CiAJCW10ZGNyKERDUk5fUEVHUExfUkVHTVNLKFBDSUUwKSwgMHgwMDAwNzAwMSk7IC8qIDRrIHJlZ2lvbiwgdmFsaWQgKi8KIAkJbXRkY3IoRENSTl9QRUdQTF9TUEVDSUFMKFBDSUUwKSwgMCk7CiAJCWJyZWFrOwogCiAJY2FzZSAxOgogCQltdGRjcihEQ1JOX1BFR1BMX1JFR0JBSChQQ0lFMSksIDB4MDAwMDAwMDApOwotCQltdGRjcihEQ1JOX1BFR1BMX1JFR0JBTChQQ0lFMSksIENGR19QQ0lFMV9VVExCQVNFKTsKKwkJbXRkY3IoRENSTl9QRUdQTF9SRUdCQUwoUENJRTEpLCBDT05GSUdfU1lTX1BDSUUxX1VUTEJBU0UpOwogCQltdGRjcihEQ1JOX1BFR1BMX1JFR01TSyhQQ0lFMSksIDB4MDAwMDcwMDEpOyAvKiA0ayByZWdpb24sIHZhbGlkICovCiAJCW10ZGNyKERDUk5fUEVHUExfU1BFQ0lBTChQQ0lFMSksIDApOwogCiAJCWJyZWFrOwogCX0KLQl1dGxfYmFzZSA9IChwb3J0PT0wKSA/IENGR19QQ0lFMF9VVExCQVNFIDogQ0ZHX1BDSUUxX1VUTEJBU0U7CisJdXRsX2Jhc2UgPSAocG9ydD09MCkgPyBDT05GSUdfU1lTX1BDSUUwX1VUTEJBU0UgOiBDT05GSUdfU1lTX1BDSUUxX1VUTEJBU0U7CiAKIAkvKgogCSAqIFNldCBidWZmZXIgYWxsb2NhdGlvbnMgYW5kIHRoZW4gYXNzZXJ0IFZSQiBhbmQgVFhFLgpAQCAtNzYxLDkgKzc2MSw5IEBACiB7CiAjaWYgZGVmaW5lZChDT05GSUdfNDA1RVgpCiAJaWYgKHBvcnQgPT0gMCkKLQkJcmV0dXJuICh1NjQpQ0ZHX1BDSUUwX0NGR0JBU0U7CisJCXJldHVybiAodTY0KUNPTkZJR19TWVNfUENJRTBfQ0ZHQkFTRTsKIAllbHNlCi0JCXJldHVybiAodTY0KUNGR19QQ0lFMV9DRkdCQVNFOworCQlyZXR1cm4gKHU2NClDT05GSUdfU1lTX1BDSUUxX0NGR0JBU0U7CiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR180NDBTUEUpCiAJaWYgKHBwYzQ0MHNwZV9yZXZCKCkpIHsKQEAgLTg5NSw3ICs4OTUsNyBAQAogCQltdGRjcihEQ1JOX1BFR1BMX0NGR0JBTChQQ0lFMSksIGxvdyk7CiAJCW10ZGNyKERDUk5fUEVHUExfQ0ZHTVNLKFBDSUUxKSwgMHhlMDAwMDAwMSk7IC8qIDUxMk1CIHJlZ2lvbiwgdmFsaWQgKi8KIAkJYnJlYWs7Ci0jaWYgQ0ZHX1BDSUVfTlJfUE9SVFMgPiAyCisjaWYgQ09ORklHX1NZU19QQ0lFX05SX1BPUlRTID4gMgogCWNhc2UgMjoKIAkJbXRkY3IoRENSTl9QRUdQTF9DRkdCQUgoUENJRTIpLCBoaWdoKTsKIAkJbXRkY3IoRENSTl9QRUdQTF9DRkdCQUwoUENJRTIpLCBsb3cpOwpAQCAtOTQ3LDIwICs5NDcsMjAgQEAKIAogCXN3aXRjaCAocG9ydCkgewogCWNhc2UgMDoKLQkJbWJhc2UgPSAodTMyICopQ0ZHX1BDSUUwX1hDRkdCQVNFOwotCQlybWJhc2UgPSAodTMyICopQ0ZHX1BDSUUwX0NGR0JBU0U7Ci0JCWhvc2UtPmNmZ19kYXRhID0gKHU4ICopQ0ZHX1BDSUUwX0NGR0JBU0U7CisJCW1iYXNlID0gKHUzMiAqKUNPTkZJR19TWVNfUENJRTBfWENGR0JBU0U7CisJCXJtYmFzZSA9ICh1MzIgKilDT05GSUdfU1lTX1BDSUUwX0NGR0JBU0U7CisJCWhvc2UtPmNmZ19kYXRhID0gKHU4ICopQ09ORklHX1NZU19QQ0lFMF9DRkdCQVNFOwogCQlicmVhazsKIAljYXNlIDE6Ci0JCW1iYXNlID0gKHUzMiAqKUNGR19QQ0lFMV9YQ0ZHQkFTRTsKLQkJcm1iYXNlID0gKHUzMiAqKUNGR19QQ0lFMV9DRkdCQVNFOwotCQlob3NlLT5jZmdfZGF0YSA9ICh1OCAqKUNGR19QQ0lFMV9DRkdCQVNFOworCQltYmFzZSA9ICh1MzIgKilDT05GSUdfU1lTX1BDSUUxX1hDRkdCQVNFOworCQlybWJhc2UgPSAodTMyICopQ09ORklHX1NZU19QQ0lFMV9DRkdCQVNFOworCQlob3NlLT5jZmdfZGF0YSA9ICh1OCAqKUNPTkZJR19TWVNfUENJRTFfQ0ZHQkFTRTsKIAkJYnJlYWs7Ci0jaWYgQ0ZHX1BDSUVfTlJfUE9SVFMgPiAyCisjaWYgQ09ORklHX1NZU19QQ0lFX05SX1BPUlRTID4gMgogCWNhc2UgMjoKLQkJbWJhc2UgPSAodTMyICopQ0ZHX1BDSUUyX1hDRkdCQVNFOwotCQlybWJhc2UgPSAodTMyICopQ0ZHX1BDSUUyX0NGR0JBU0U7Ci0JCWhvc2UtPmNmZ19kYXRhID0gKHU4ICopQ0ZHX1BDSUUyX0NGR0JBU0U7CisJCW1iYXNlID0gKHUzMiAqKUNPTkZJR19TWVNfUENJRTJfWENGR0JBU0U7CisJCXJtYmFzZSA9ICh1MzIgKilDT05GSUdfU1lTX1BDSUUyX0NGR0JBU0U7CisJCWhvc2UtPmNmZ19kYXRhID0gKHU4ICopQ09ORklHX1NZU19QQ0lFMl9DRkdCQVNFOwogCQlicmVhazsKICNlbmRpZgogCX0KQEAgLTk3OSwxOSArOTc5LDE5IEBACiAJICogc3VicmVnaW9ucyBhbmQgdG8gZW5hYmxlIHRoZSBvdXRib3VuZCB0cmFuc2xhdGlvbi4KIAkgKi8KIAlvdXRfbGUzMihtYmFzZSArIFBFQ0ZHX1BPTTBMQUgsIDB4MDAwMDAwMDApOwotCW91dF9sZTMyKG1iYXNlICsgUEVDRkdfUE9NMExBTCwgQ0ZHX1BDSUVfTUVNQkFTRSArCi0JCSBwb3J0ICogQ0ZHX1BDSUVfTUVNU0laRSk7CisJb3V0X2xlMzIobWJhc2UgKyBQRUNGR19QT00wTEFMLCBDT05GSUdfU1lTX1BDSUVfTUVNQkFTRSArCisJCSBwb3J0ICogQ09ORklHX1NZU19QQ0lFX01FTVNJWkUpOwogCWRlYnVnKCJQRUNGR19QT00wTEE9JTA4eC4lMDh4XG4iLCBpbl9sZTMyKG1iYXNlICsgUEVDRkdfUE9NMExBSCksCiAJICAgICAgaW5fbGUzMihtYmFzZSArIFBFQ0ZHX1BPTTBMQUwpKTsKIAogCXN3aXRjaCAocG9ydCkgewogCWNhc2UgMDoKLQkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFIKFBDSUUwKSwgQ0ZHX1BDSUVfQUREUl9ISUdIKTsKLQkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFMKFBDSUUwKSwgQ0ZHX1BDSUVfTUVNQkFTRSArCi0JCSAgICAgIHBvcnQgKiBDRkdfUENJRV9NRU1TSVpFKTsKKwkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFIKFBDSUUwKSwgQ09ORklHX1NZU19QQ0lFX0FERFJfSElHSCk7CisJCW10ZGNyKERDUk5fUEVHUExfT01SMUJBTChQQ0lFMCksIENPTkZJR19TWVNfUENJRV9NRU1CQVNFICsKKwkJICAgICAgcG9ydCAqIENPTkZJR19TWVNfUENJRV9NRU1TSVpFKTsKIAkJbXRkY3IoRENSTl9QRUdQTF9PTVIxTVNLSChQQ0lFMCksIDB4N2ZmZmZmZmYpOwogCQltdGRjcihEQ1JOX1BFR1BMX09NUjFNU0tMKFBDSUUwKSwKLQkJICAgICAgfihDRkdfUENJRV9NRU1TSVpFIC0gMSkgfCAzKTsKKwkJICAgICAgfihDT05GSUdfU1lTX1BDSUVfTUVNU0laRSAtIDEpIHwgMyk7CiAJCWRlYnVnKCIwOlBFR1BMX09NUjFCQT0lMDh4LiUwOHggTVNLPSUwOHguJTA4eFxuIiwKIAkJICAgICAgbWZkY3IoRENSTl9QRUdQTF9PTVIxQkFIKFBDSUUwKSksCiAJCSAgICAgIG1mZGNyKERDUk5fUEVHUExfT01SMUJBTChQQ0lFMCkpLApAQCAtOTk5LDI2ICs5OTksMjYgQEAKIAkJICAgICAgbWZkY3IoRENSTl9QRUdQTF9PTVIxTVNLTChQQ0lFMCkpKTsKIAkJYnJlYWs7CiAJY2FzZSAxOgotCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUgoUENJRTEpLCBDRkdfUENJRV9BRERSX0hJR0gpOwotCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUwoUENJRTEpLCBDRkdfUENJRV9NRU1CQVNFICsKLQkJICAgICAgcG9ydCAqIENGR19QQ0lFX01FTVNJWkUpOworCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUgoUENJRTEpLCBDT05GSUdfU1lTX1BDSUVfQUREUl9ISUdIKTsKKwkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFMKFBDSUUxKSwgQ09ORklHX1NZU19QQ0lFX01FTUJBU0UgKworCQkgICAgICBwb3J0ICogQ09ORklHX1NZU19QQ0lFX01FTVNJWkUpOwogCQltdGRjcihEQ1JOX1BFR1BMX09NUjFNU0tIKFBDSUUxKSwgMHg3ZmZmZmZmZik7CiAJCW10ZGNyKERDUk5fUEVHUExfT01SMU1TS0woUENJRTEpLAotCQkgICAgICB+KENGR19QQ0lFX01FTVNJWkUgLSAxKSB8IDMpOworCQkgICAgICB+KENPTkZJR19TWVNfUENJRV9NRU1TSVpFIC0gMSkgfCAzKTsKIAkJZGVidWcoIjE6UEVHUExfT01SMUJBPSUwOHguJTA4eCBNU0s9JTA4eC4lMDh4XG4iLAogCQkgICAgICBtZmRjcihEQ1JOX1BFR1BMX09NUjFCQUgoUENJRTEpKSwKIAkJICAgICAgbWZkY3IoRENSTl9QRUdQTF9PTVIxQkFMKFBDSUUxKSksCiAJCSAgICAgIG1mZGNyKERDUk5fUEVHUExfT01SMU1TS0goUENJRTEpKSwKIAkJICAgICAgbWZkY3IoRENSTl9QRUdQTF9PTVIxTVNLTChQQ0lFMSkpKTsKIAkJYnJlYWs7Ci0jaWYgQ0ZHX1BDSUVfTlJfUE9SVFMgPiAyCisjaWYgQ09ORklHX1NZU19QQ0lFX05SX1BPUlRTID4gMgogCWNhc2UgMjoKLQkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFIKFBDSUUyKSwgQ0ZHX1BDSUVfQUREUl9ISUdIKTsKLQkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFMKFBDSUUyKSwgQ0ZHX1BDSUVfTUVNQkFTRSArCi0JCSAgICAgIHBvcnQgKiBDRkdfUENJRV9NRU1TSVpFKTsKKwkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFIKFBDSUUyKSwgQ09ORklHX1NZU19QQ0lFX0FERFJfSElHSCk7CisJCW10ZGNyKERDUk5fUEVHUExfT01SMUJBTChQQ0lFMiksIENPTkZJR19TWVNfUENJRV9NRU1CQVNFICsKKwkJICAgICAgcG9ydCAqIENPTkZJR19TWVNfUENJRV9NRU1TSVpFKTsKIAkJbXRkY3IoRENSTl9QRUdQTF9PTVIxTVNLSChQQ0lFMiksIDB4N2ZmZmZmZmYpOwogCQltdGRjcihEQ1JOX1BFR1BMX09NUjFNU0tMKFBDSUUyKSwKLQkJICAgICAgfihDRkdfUENJRV9NRU1TSVpFIC0gMSkgfCAzKTsKKwkJICAgICAgfihDT05GSUdfU1lTX1BDSUVfTUVNU0laRSAtIDEpIHwgMyk7CiAJCWRlYnVnKCIyOlBFR1BMX09NUjFCQT0lMDh4LiUwOHggTVNLPSUwOHguJTA4eFxuIiwKIAkJICAgICAgbWZkY3IoRENSTl9QRUdQTF9PTVIxQkFIKFBDSUUyKSksCiAJCSAgICAgIG1mZGNyKERDUk5fUEVHUExfT01SMUJBTChQQ0lFMikpLApAQCAtMTA3MiwxNyArMTA3MiwxNyBAQAogCiAJc3dpdGNoIChwb3J0KSB7CiAJY2FzZSAwOgotCQltYmFzZSA9ICh1MzIgKilDRkdfUENJRTBfWENGR0JBU0U7Ci0JCWhvc2UtPmNmZ19kYXRhID0gKHU4ICopQ0ZHX1BDSUUwX0NGR0JBU0U7CisJCW1iYXNlID0gKHUzMiAqKUNPTkZJR19TWVNfUENJRTBfWENGR0JBU0U7CisJCWhvc2UtPmNmZ19kYXRhID0gKHU4ICopQ09ORklHX1NZU19QQ0lFMF9DRkdCQVNFOwogCQlicmVhazsKIAljYXNlIDE6Ci0JCW1iYXNlID0gKHUzMiAqKUNGR19QQ0lFMV9YQ0ZHQkFTRTsKLQkJaG9zZS0+Y2ZnX2RhdGEgPSAodTggKilDRkdfUENJRTFfQ0ZHQkFTRTsKKwkJbWJhc2UgPSAodTMyICopQ09ORklHX1NZU19QQ0lFMV9YQ0ZHQkFTRTsKKwkJaG9zZS0+Y2ZnX2RhdGEgPSAodTggKilDT05GSUdfU1lTX1BDSUUxX0NGR0JBU0U7CiAJCWJyZWFrOwotI2lmIGRlZmluZWQoQ0ZHX1BDSUUyX0NGR0JBU0UpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1BDSUUyX0NGR0JBU0UpCiAJY2FzZSAyOgotCQltYmFzZSA9ICh1MzIgKilDRkdfUENJRTJfWENGR0JBU0U7Ci0JCWhvc2UtPmNmZ19kYXRhID0gKHU4ICopQ0ZHX1BDSUUyX0NGR0JBU0U7CisJCW1iYXNlID0gKHUzMiAqKUNPTkZJR19TWVNfUENJRTJfWENGR0JBU0U7CisJCWhvc2UtPmNmZ19kYXRhID0gKHU4ICopQ09ORklHX1NZU19QQ0lFMl9DRkdCQVNFOwogCQlicmVhazsKICNlbmRpZgogCX0KQEAgLTEwOTgsMjkgKzEwOTgsMjkgQEAKIAogCXN3aXRjaCAocG9ydCkgewogCWNhc2UgMDoKLQkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFIKFBDSUUwKSwgQ0ZHX1BDSUVfQUREUl9ISUdIKTsKLQkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFMKFBDSUUwKSwgQ0ZHX1BDSUVfTUVNQkFTRSArCi0JCSAgICAgIHBvcnQgKiBDRkdfUENJRV9NRU1TSVpFKTsKKwkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFIKFBDSUUwKSwgQ09ORklHX1NZU19QQ0lFX0FERFJfSElHSCk7CisJCW10ZGNyKERDUk5fUEVHUExfT01SMUJBTChQQ0lFMCksIENPTkZJR19TWVNfUENJRV9NRU1CQVNFICsKKwkJICAgICAgcG9ydCAqIENPTkZJR19TWVNfUENJRV9NRU1TSVpFKTsKIAkJbXRkY3IoRENSTl9QRUdQTF9PTVIxTVNLSChQQ0lFMCksIDB4N2ZmZmZmZmYpOwogCQltdGRjcihEQ1JOX1BFR1BMX09NUjFNU0tMKFBDSUUwKSwKLQkJICAgICAgfihDRkdfUENJRV9NRU1TSVpFIC0gMSkgfCAzKTsKKwkJICAgICAgfihDT05GSUdfU1lTX1BDSUVfTUVNU0laRSAtIDEpIHwgMyk7CiAJCWJyZWFrOwogCWNhc2UgMToKLQkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFIKFBDSUUxKSwgQ0ZHX1BDSUVfQUREUl9ISUdIKTsKLQkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFMKFBDSUUxKSwgQ0ZHX1BDSUVfTUVNQkFTRSArCi0JCSAgICAgIHBvcnQgKiBDRkdfUENJRV9NRU1TSVpFKTsKKwkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFIKFBDSUUxKSwgQ09ORklHX1NZU19QQ0lFX0FERFJfSElHSCk7CisJCW10ZGNyKERDUk5fUEVHUExfT01SMUJBTChQQ0lFMSksIENPTkZJR19TWVNfUENJRV9NRU1CQVNFICsKKwkJICAgICAgcG9ydCAqIENPTkZJR19TWVNfUENJRV9NRU1TSVpFKTsKIAkJbXRkY3IoRENSTl9QRUdQTF9PTVIxTVNLSChQQ0lFMSksIDB4N2ZmZmZmZmYpOwogCQltdGRjcihEQ1JOX1BFR1BMX09NUjFNU0tMKFBDSUUxKSwKLQkJICAgICAgfihDRkdfUENJRV9NRU1TSVpFIC0gMSkgfCAzKTsKKwkJICAgICAgfihDT05GSUdfU1lTX1BDSUVfTUVNU0laRSAtIDEpIHwgMyk7CiAJCWJyZWFrOwotI2lmIENGR19QQ0lFX05SX1BPUlRTID4gMgorI2lmIENPTkZJR19TWVNfUENJRV9OUl9QT1JUUyA+IDIKIAljYXNlIDI6Ci0JCW10ZGNyKERDUk5fUEVHUExfT01SMUJBSChQQ0lFMiksIENGR19QQ0lFX0FERFJfSElHSCk7Ci0JCW10ZGNyKERDUk5fUEVHUExfT01SMUJBTChQQ0lFMiksIENGR19QQ0lFX01FTUJBU0UgKwotCQkgICAgICBwb3J0ICogQ0ZHX1BDSUVfTUVNU0laRSk7CisJCW10ZGNyKERDUk5fUEVHUExfT01SMUJBSChQQ0lFMiksIENPTkZJR19TWVNfUENJRV9BRERSX0hJR0gpOworCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUwoUENJRTIpLCBDT05GSUdfU1lTX1BDSUVfTUVNQkFTRSArCisJCSAgICAgIHBvcnQgKiBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSk7CiAJCW10ZGNyKERDUk5fUEVHUExfT01SMU1TS0goUENJRTIpLCAweDdmZmZmZmZmKTsKIAkJbXRkY3IoRENSTl9QRUdQTF9PTVIxTVNLTChQQ0lFMiksCi0JCSAgICAgIH4oQ0ZHX1BDSUVfTUVNU0laRSAtIDEpIHwgMyk7CisJCSAgICAgIH4oQ09ORklHX1NZU19QQ0lFX01FTVNJWkUgLSAxKSB8IDMpOwogCQlicmVhazsKICNlbmRpZgogCX0KQEAgLTExNDEsOCArMTE0MSw4IEBACiAJb3V0X2xlMzIobWJhc2UgKyBQRUNGR19CQVIySE1QQSwgMCk7CiAJb3V0X2xlMzIobWJhc2UgKyBQRUNGR19CQVIyTE1QQSwgMCk7CiAKLQlvdXRfbGUzMihtYmFzZSArIFBFQ0ZHX1BJTTBMQUwsIFU2NF9UT19VMzJfTE9XKENGR19QQ0lFX0lOQk9VTkRfQkFTRSkpOwotCW91dF9sZTMyKG1iYXNlICsgUEVDRkdfUElNMExBSCwgVTY0X1RPX1UzMl9ISUdIKENGR19QQ0lFX0lOQk9VTkRfQkFTRSkpOworCW91dF9sZTMyKG1iYXNlICsgUEVDRkdfUElNMExBTCwgVTY0X1RPX1UzMl9MT1coQ09ORklHX1NZU19QQ0lFX0lOQk9VTkRfQkFTRSkpOworCW91dF9sZTMyKG1iYXNlICsgUEVDRkdfUElNMExBSCwgVTY0X1RPX1UzMl9ISUdIKENPTkZJR19TWVNfUENJRV9JTkJPVU5EX0JBU0UpKTsKIAlvdXRfbGUzMihtYmFzZSArIFBFQ0ZHX1BJTUVOLCAweDEpOwogCiAJLyogRW5hYmxlIEkvTywgTWVtLCBhbmQgQnVzbWFzdGVyIGN5Y2xlcyAqLwpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC80eHhfdWFydC5jIGIvY3B1L3BwYzR4eC80eHhfdWFydC5jCmluZGV4IDc2NmU1ODYuLmMxMDZhYzIgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvNHh4X3VhcnQuYworKysgYi9jcHUvcHBjNHh4LzR4eF91YXJ0LmMKQEAgLTY2LDIwICs2NiwyMCBAQAogI2lmIGRlZmluZWQoQ09ORklHXzQ0MEVQKSB8fCBkZWZpbmVkKENPTkZJR180NDBHUikgfHwgXAogICAgIGRlZmluZWQoQ09ORklHXzQ0MEVQWCkgfHwgZGVmaW5lZChDT05GSUdfNDQwR1JYKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfNDYwRVgpIHx8IGRlZmluZWQoQ09ORklHXzQ2MEdUKQotI2RlZmluZSBVQVJUMF9CQVNFCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDMwMCkKLSNkZWZpbmUgVUFSVDFfQkFTRQkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDA0MDApCisjZGVmaW5lIFVBUlQwX0JBU0UJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDMwMCkKKyNkZWZpbmUgVUFSVDFfQkFTRQkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNDAwKQogI2Vsc2UKLSNkZWZpbmUgVUFSVDBfQkFTRQkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDAyMDApCi0jZGVmaW5lIFVBUlQxX0JBU0UJKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwMzAwKQorI2RlZmluZSBVQVJUMF9CQVNFCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDAyMDApCisjZGVmaW5lIFVBUlQxX0JBU0UJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDMwMCkKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfNDQwU1ApIHx8IGRlZmluZWQoQ09ORklHXzQ0MFNQRSkKLSNkZWZpbmUgVUFSVDJfQkFTRQkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDA2MDApCisjZGVmaW5lIFVBUlQyX0JBU0UJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDYwMCkKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfNDYwRVgpIHx8IGRlZmluZWQoQ09ORklHXzQ2MEdUKQotI2RlZmluZSBVQVJUMl9CQVNFCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDUwMCkKLSNkZWZpbmUgVUFSVDNfQkFTRQkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDA2MDApCisjZGVmaW5lIFVBUlQyX0JBU0UJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDUwMCkKKyNkZWZpbmUgVUFSVDNfQkFTRQkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNjAwKQogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR180NDBHUCkKQEAgLTE0Nyw3ICsxNDcsNyBAQAogI2RlZmluZSBBQ1RJTkdfVUFSVDFfQkFTRQlVQVJUMV9CQVNFCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ09ORklHXzQwNUVQKSAmJiBkZWZpbmVkKENGR19FWFRfU0VSSUFMX0NMT0NLKQorI2lmIGRlZmluZWQoQ09ORklHXzQwNUVQKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSykKICNlcnJvciAiRXh0ZXJuYWwgc2VyaWFsIGNsb2NrIG5vdCBzdXBwb3J0ZWQgb24gQU1DQyBQUEM0MDVFUCEiCiAjZW5kaWYKIApAQCAtMTk5LDggKzE5OSw4IEBACiAJLyogQ29ycmVjdCBVQVJUIGZyZXF1ZW5jeSBpbiBiZC1pbmZvIHN0cnVjdCBub3cgdGhhdAogCSAqIHRoZSBVQVJUIGRpdmlzb3IgaXMgYXZhaWxhYmxlCiAJICovCi0jaWZkZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sKLQlnZC0+dWFydF9jbGsgPSBDRkdfRVhUX1NFUklBTF9DTE9DSzsKKyNpZmRlZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sKKwlnZC0+dWFydF9jbGsgPSBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0s7CiAjZWxzZQogCWdkLT51YXJ0X2NsayA9IHN5c19pbmZvLmZyZXFVQVJUIC8gdWRpdjsKICNlbmRpZgpAQCAtMjE4LDcgKzIxOCw3IEBACiB9CiAKICNpZiAoZGVmaW5lZChDT05GSUdfNDQwKSB8fCBkZWZpbmVkKENPTkZJR180MDVFWCkpICYmCVwKLSAgICAhZGVmaW5lZChDRkdfRVhUX1NFUklBTF9DTE9DSykKKyAgICAhZGVmaW5lZChDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0spCiBzdGF0aWMgdm9pZCBzZXJpYWxfZGl2cyAoaW50IGJhdWRyYXRlLCB1bnNpZ25lZCBsb25nICpwdWRpdiwKIAkJCSB1bnNpZ25lZCBzaG9ydCAqcGJkaXYpCiB7CkBAIC0zMTUsNyArMzE1LDcgQEAKIAltdGNwcihjcHJwZXJkMCwgcmVnKTsKIAkqcGJkaXYgPSBkaXYgLyB1ZGl2OwogfQotI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHXzQ0MCkgJiYgIWRlZmluZWQoQ0ZHX0VYVF9TRVJJQUxfQ0xLKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHXzQ0MCkgJiYgIWRlZmluZWQoQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMSykgKi8KIAogLyoKICAqIE1pbmltYWwgc2VyaWFsIGZ1bmN0aW9ucyBuZWVkZWQgdG8gdXNlIG9uZSBvZiB0aGUgU01DIHBvcnRzCkBAIC0zMjgsMTggKzMyOCwxOCBAQAogCXVuc2lnbmVkIGxvbmcgcmVnOwogCXVuc2lnbmVkIGxvbmcgdWRpdjsKIAl1bnNpZ25lZCBzaG9ydCBiZGl2OwotI2lmZGVmIENGR19FWFRfU0VSSUFMX0NMT0NLCisjaWZkZWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCiAJdW5zaWduZWQgbG9uZyB0bXA7CiAjZW5kaWYKIAogCU1GUkVHKFVBUlQwX1NEUiwgcmVnKTsKIAlyZWcgJj0gfkNSMF9NQVNLOwogCi0jaWZkZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sKIAlyZWcgfD0gQ1IwX0VYVENMS19FTkE7CiAJdWRpdiA9IDE7CiAJdG1wICA9IGdkLT5iYXVkcmF0ZSAqIDE2OwotCWJkaXYgPSAoQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sgKyB0bXAgLyAyKSAvIHRtcDsKKwliZGl2ID0gKENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSyArIHRtcCAvIDIpIC8gdG1wOwogI2Vsc2UKIAkvKiBGb3IgNDQwLCB0aGUgY3B1IGNsb2NrIGlzIG9uIGRpdmlkZXIgY2hhaW4gQSwgVUFSVCBvbiBkaXZpZGVyCiAJICogY2hhaW4gQiAuLi4gc28gY3B1IGNsb2NrIGlzIGlycmVsZXZhbnQuIEdldCB0aGUgIm9wdGltaXplZCIKQEAgLTM4NCwxMSArMzg0LDExIEBACiAJY2xrID0gdG1wID0gMDsKIAltZnNkcihVQVJUMF9TRFIsIHJlZyk7CiAJcmVnICY9IH5DUjBfTUFTSzsKLSNpZmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSworI2lmZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwogCXJlZyB8PSBDUjBfRVhUQ0xLX0VOQTsKIAl1ZGl2ID0gMTsKIAl0bXAgID0gZ2QtPmJhdWRyYXRlICogMTY7Ci0JYmRpdiA9IChDRkdfRVhUX1NFUklBTF9DTE9DSyArIHRtcCAvIDIpIC8gdG1wOworCWJkaXYgPSAoQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLICsgdG1wIC8gMikgLyB0bXA7CiAjZWxzZQogCXNlcmlhbF9kaXZzKGdkLT5iYXVkcmF0ZSwgJnVkaXYsICZiZGl2KTsKICNlbmRpZgpAQCAtNDExLDcgKzQxMSw3IEBACiAjaWZkZWYgQ09ORklHXzQwNUVQCiAJcmVnID0gbWZkY3IoY3BjMF91Y3IpICYgfihVQ1IwX01BU0sgfCBVQ1IxX01BU0spOwogCWNsayA9IGdkLT5jcHVfY2xrOwotCXRtcCA9IENGR19CQVNFX0JBVUQgKiAxNjsKKwl0bXAgPSBDT05GSUdfU1lTX0JBU0VfQkFVRCAqIDE2OwogCXVkaXYgPSAoY2xrICsgdG1wIC8gMikgLyB0bXA7CiAJaWYgKHVkaXYgPiBVRElWX01BWCkgICAgICAgICAgICAgICAgICAgIC8qIG1heC4gbiBiaXRzIGZvciB1ZGl2ICovCiAJCXVkaXYgPSBVRElWX01BWDsKQEAgLTQyMCwxNiArNDIwLDE2IEBACiAJbXRkY3IgKGNwYzBfdWNyLCByZWcpOwogI2Vsc2UgLyogQ09ORklHXzQwNUVQICovCiAJcmVnID0gbWZkY3IoY250cmwwKSAmIH5DUjBfTUFTSzsKLSNpZmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSwotCWNsayA9IENGR19FWFRfU0VSSUFMX0NMT0NLOworI2lmZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSworCWNsayA9IENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSzsKIAl1ZGl2ID0gMTsKIAlyZWcgfD0gQ1IwX0VYVENMS19FTkE7CiAjZWxzZQogCWNsayA9IGdkLT5jcHVfY2xrOwotI2lmZGVmIENGR180MDVfVUFSVF9FUlJBVEFfNTkKKyNpZmRlZiBDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OQogCXVkaXYgPSAzMTsJCQkvKiBFcnJhdGEgNTk6IHN0dWNrIGF0IDMxICovCiAjZWxzZQotCXRtcCA9IENGR19CQVNFX0JBVUQgKiAxNjsKKwl0bXAgPSBDT05GSUdfU1lTX0JBU0VfQkFVRCAqIDE2OwogCXVkaXYgPSAoY2xrICsgdG1wIC8gMikgLyB0bXA7CiAJaWYgKHVkaXYgPiBVRElWX01BWCkgICAgICAgICAgICAgICAgICAgIC8qIG1heC4gbiBiaXRzIGZvciB1ZGl2ICovCiAJCXVkaXYgPSBVRElWX01BWDsKZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvY2FjaGUuUyBiL2NwdS9wcGM0eHgvY2FjaGUuUwppbmRleCBjZWIzZWMwLi4yNjk3MTZmIDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4L2NhY2hlLlMKKysrIGIvY3B1L3BwYzR4eC9jYWNoZS5TCkBAIC0xNDMsOCArMTQzLDggQEAKIF9HTE9CQUwoaW52YWxpZGF0ZV9kY2FjaGUpCiAJYWRkaQlyNiwwLDB4MDAwMAkJLyogY2xlYXIgR1BSIDYgKi8KIAkvKiBEbyBsb29wIGZvciAjIG9mIGRjYWNoZSBjb25ncnVlbmNlIGNsYXNzZXMuICovCi0JbGlzCXI3LChDRkdfRENBQ0hFX1NJWkUgLyBMMV9DQUNIRV9CWVRFUyAvIDIpQGhhCS8qIFRCUyBmb3IgbGFyZ2Ugc2l6ZWQgY2FjaGUgKi8KLQlvcmkJcjcscjcsKENGR19EQ0FDSEVfU0laRSAvIEwxX0NBQ0hFX0JZVEVTIC8gMilAbAorCWxpcwlyNywoQ09ORklHX1NZU19EQ0FDSEVfU0laRSAvIEwxX0NBQ0hFX0JZVEVTIC8gMilAaGEJLyogVEJTIGZvciBsYXJnZSBzaXplZCBjYWNoZSAqLworCW9yaQlyNyxyNywoQ09ORklHX1NZU19EQ0FDSEVfU0laRSAvIEwxX0NBQ0hFX0JZVEVTIC8gMilAbAogCQkJCQkvKiBOT1RFOiBkY2NjaSBpbnZhbGlkYXRlcyBib3RoICovCiAJbXRjdHIJcjcJCQkvKiB3YXlzIGluIHRoZSBEIGNhY2hlICovCiAuLmRjbG9vcDoKZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvY29tbXByb2MuYyBiL2NwdS9wcGM0eHgvY29tbXByb2MuYwppbmRleCA4YjI5NTRjLi5hMTY5NmQzIDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4L2NvbW1wcm9jLmMKKysrIGIvY3B1L3BwYzR4eC9jb21tcHJvYy5jCkBAIC0zMCwxMCArMzAsMTAgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX1BPU1QpIHx8IGRlZmluZWQoQ09ORklHX0xPR0JVRkZFUikKIAotI2lmIGRlZmluZWQoQ0ZHX1BPU1RfV09SRF9BRERSKQotIyBkZWZpbmUgX1BPU1RfQUREUgkoKENGR19PQ01fREFUQV9BRERSKSArIChDRkdfUE9TVF9XT1JEX0FERFIpKQotI2VsaWYgZGVmaW5lZChDRkdfUE9TVF9BTFRfV09SRF9BRERSKQotIyBkZWZpbmUgX1BPU1RfQUREUgkoQ0ZHX1BPU1RfQUxUX1dPUkRfQUREUikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIpCisjIGRlZmluZSBfUE9TVF9BRERSCSgoQ09ORklHX1NZU19PQ01fREFUQV9BRERSKSArIChDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSKSkKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19QT1NUX0FMVF9XT1JEX0FERFIpCisjIGRlZmluZSBfUE9TVF9BRERSCShDT05GSUdfU1lTX1BPU1RfQUxUX1dPUkRfQUREUikKICNlbmRpZgogCiB2b2lkIHBvc3Rfd29yZF9zdG9yZSAodWxvbmcgYSkKQEAgLTU3LDcgKzU3LDcgQEAKIHZvaWQgYm9vdGNvdW50X3N0b3JlICh1bG9uZyBhKQogewogCXZvbGF0aWxlIHVsb25nICpzYXZlX2FkZHIgPQotCQkodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX09DTV9EQVRBX0FERFIgKyBDRkdfQk9PVENPVU5UX0FERFIpOworCQkodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19PQ01fREFUQV9BRERSICsgQ09ORklHX1NZU19CT09UQ09VTlRfQUREUik7CiAKIAlzYXZlX2FkZHJbMF0gPSBhOwogCXNhdmVfYWRkclsxXSA9IEJPT1RDT1VOVF9NQUdJQzsKQEAgLTY2LDcgKzY2LDcgQEAKIHVsb25nIGJvb3Rjb3VudF9sb2FkICh2b2lkKQogewogCXZvbGF0aWxlIHVsb25nICpzYXZlX2FkZHIgPQotCQkodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX09DTV9EQVRBX0FERFIgKyBDRkdfQk9PVENPVU5UX0FERFIpOworCQkodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19PQ01fREFUQV9BRERSICsgQ09ORklHX1NZU19CT09UQ09VTlRfQUREUik7CiAKIAlpZiAoc2F2ZV9hZGRyWzFdICE9IEJPT1RDT1VOVF9NQUdJQykKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4L2NwdS5jIGIvY3B1L3BwYzR4eC9jcHUuYwppbmRleCBiYzkzMzVhLi42NmE3NzM3IDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4L2NwdS5jCisrKyBiL2NwdS9wcGM0eHgvY3B1LmMKQEAgLTYyOSwxNCArNjI5LDE0IEBACiAjaWYgZGVmaW5lZChDT05GSUdfQk9BUkRfUkVTRVQpCiAJYm9hcmRfcmVzZXQoKTsKICNlbHNlCi0jaWYgZGVmaW5lZChDRkdfNHh4X1JFU0VUX1RZUEUpCi0JbXRzcHIoZGJjcjAsIENGR180eHhfUkVTRVRfVFlQRSA8PCAyOCk7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTXzR4eF9SRVNFVF9UWVBFKQorCW10c3ByKGRiY3IwLCBDT05GSUdfU1lTXzR4eF9SRVNFVF9UWVBFIDw8IDI4KTsKICNlbHNlCiAJLyoKIAkgKiBJbml0aWF0ZSBzeXN0ZW0gcmVzZXQgaW4gZGVidWcgY29udHJvbCByZWdpc3RlciBEQkNSCiAJICovCiAJbXRzcHIoZGJjcjAsIDB4MzAwMDAwMDApOwotI2VuZGlmIC8qIGRlZmluZWQoQ0ZHXzR4eF9SRVNFVF9UWVBFKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1NZU180eHhfUkVTRVRfVFlQRSkgKi8KICNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19CT0FSRF9SRVNFVCkgKi8KIAogCXJldHVybiAxOwpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC9jcHVfaW5pdC5jIGIvY3B1L3BwYzR4eC9jcHVfaW5pdC5jCmluZGV4IGRlZTk4MDcuLmI1ZDgxZjIgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvY3B1X2luaXQuYworKysgYi9jcHUvcHBjNHh4L2NwdV9pbml0LmMKQEAgLTMyLDggKzMyLDggQEAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1BMTF9SRUNPTkZJRwotI2RlZmluZSBDRkdfUExMX1JFQ09ORklHCTAKKyNpZm5kZWYgQ09ORklHX1NZU19QTExfUkVDT05GSUcKKyNkZWZpbmUgQ09ORklHX1NZU19QTExfUkVDT05GSUcJMAogI2VuZGlmCiAKIHZvaWQgcmVjb25maWd1cmVfcGxsKHUzMiBuZXdfY3B1X2ZyZXEpCkBAIC0xNDIsMzIgKzE0MiwzMiBAQAogCXUzMiB2YWw7CiAjZW5kaWYKIAotCXJlY29uZmlndXJlX3BsbChDRkdfUExMX1JFQ09ORklHKTsKKwlyZWNvbmZpZ3VyZV9wbGwoQ09ORklHX1NZU19QTExfUkVDT05GSUcpOwogCi0jaWYgKGRlZmluZWQoQ09ORklHXzQwNUVQKSB8fCBkZWZpbmVkIChDT05GSUdfNDA1RVgpKSAmJiAhZGVmaW5lZChDRkdfNHh4X0dQSU9fVEFCTEUpCisjaWYgKGRlZmluZWQoQ09ORklHXzQwNUVQKSB8fCBkZWZpbmVkIChDT05GSUdfNDA1RVgpKSAmJiAhZGVmaW5lZChDT05GSUdfU1lTXzR4eF9HUElPX1RBQkxFKQogCS8qCiAJICogR1BJTzAgc2V0dXAgKHNlbGVjdCBHUElPIG9yIGFsdGVybmF0ZSBmdW5jdGlvbikKIAkgKi8KLSNpZiBkZWZpbmVkKENGR19HUElPMF9PUikKLQlvdXQzMihHUElPMF9PUiwgQ0ZHX0dQSU8wX09SKTsJCS8qIHNldCBpbml0aWFsIHN0YXRlIG9mIG91dHB1dCBwaW5zCSovCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0dQSU8wX09SKQorCW91dDMyKEdQSU8wX09SLCBDT05GSUdfU1lTX0dQSU8wX09SKTsJCS8qIHNldCBpbml0aWFsIHN0YXRlIG9mIG91dHB1dCBwaW5zCSovCiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19HUElPMF9PRFIpCi0Jb3V0MzIoR1BJTzBfT0RSLCBDRkdfR1BJTzBfT0RSKTsJLyogb3Blbi1kcmFpbiBzZWxlY3QJCQkqLworI2lmIGRlZmluZWQoQ09ORklHX1NZU19HUElPMF9PRFIpCisJb3V0MzIoR1BJTzBfT0RSLCBDT05GSUdfU1lTX0dQSU8wX09EUik7CS8qIG9wZW4tZHJhaW4gc2VsZWN0CQkJKi8KICNlbmRpZgotCW91dDMyKEdQSU8wX09TUkgsIENGR19HUElPMF9PU1JIKTsJLyogb3V0cHV0IHNlbGVjdAkJCSovCi0Jb3V0MzIoR1BJTzBfT1NSTCwgQ0ZHX0dQSU8wX09TUkwpOwotCW91dDMyKEdQSU8wX0lTUjFILCBDRkdfR1BJTzBfSVNSMUgpOwkvKiBpbnB1dCBzZWxlY3QJCQkJKi8KLQlvdXQzMihHUElPMF9JU1IxTCwgQ0ZHX0dQSU8wX0lTUjFMKTsKLQlvdXQzMihHUElPMF9UU1JILCBDRkdfR1BJTzBfVFNSSCk7CS8qIHRocmVlLXN0YXRlIHNlbGVjdAkJCSovCi0Jb3V0MzIoR1BJTzBfVFNSTCwgQ0ZHX0dQSU8wX1RTUkwpOwotI2lmIGRlZmluZWQoQ0ZHX0dQSU8wX0lTUjJIKQotCW91dDMyKEdQSU8wX0lTUjJILCBDRkdfR1BJTzBfSVNSMkgpOwotCW91dDMyKEdQSU8wX0lTUjJMLCBDRkdfR1BJTzBfSVNSMkwpOworCW91dDMyKEdQSU8wX09TUkgsIENPTkZJR19TWVNfR1BJTzBfT1NSSCk7CS8qIG91dHB1dCBzZWxlY3QJCQkqLworCW91dDMyKEdQSU8wX09TUkwsIENPTkZJR19TWVNfR1BJTzBfT1NSTCk7CisJb3V0MzIoR1BJTzBfSVNSMUgsIENPTkZJR19TWVNfR1BJTzBfSVNSMUgpOwkvKiBpbnB1dCBzZWxlY3QJCQkJKi8KKwlvdXQzMihHUElPMF9JU1IxTCwgQ09ORklHX1NZU19HUElPMF9JU1IxTCk7CisJb3V0MzIoR1BJTzBfVFNSSCwgQ09ORklHX1NZU19HUElPMF9UU1JIKTsJLyogdGhyZWUtc3RhdGUgc2VsZWN0CQkJKi8KKwlvdXQzMihHUElPMF9UU1JMLCBDT05GSUdfU1lTX0dQSU8wX1RTUkwpOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19HUElPMF9JU1IySCkKKwlvdXQzMihHUElPMF9JU1IySCwgQ09ORklHX1NZU19HUElPMF9JU1IySCk7CisJb3V0MzIoR1BJTzBfSVNSMkwsIENPTkZJR19TWVNfR1BJTzBfSVNSMkwpOwogI2VuZGlmCi0jaWYgZGVmaW5lZCAoQ0ZHX0dQSU8wX1RDUikKLQlvdXQzMihHUElPMF9UQ1IsIENGR19HUElPMF9UQ1IpOwkvKiBlbmFibGUgb3V0cHV0IGRyaXZlciBmb3Igb3V0cHV0cwkqLworI2lmIGRlZmluZWQgKENPTkZJR19TWVNfR1BJTzBfVENSKQorCW91dDMyKEdQSU8wX1RDUiwgQ09ORklHX1NZU19HUElPMF9UQ1IpOwkvKiBlbmFibGUgb3V0cHV0IGRyaXZlciBmb3Igb3V0cHV0cwkqLwogI2VuZGlmCi0jZW5kaWYgLyogQ09ORklHXzQwNUVQIC4uLiAmJiAhQ0ZHXzR4eF9HUElPX1RBQkxFICovCisjZW5kaWYgLyogQ09ORklHXzQwNUVQIC4uLiAmJiAhQ09ORklHX1NZU180eHhfR1BJT19UQUJMRSAqLwogCiAjaWYgZGVmaW5lZCAoQ09ORklHXzQwNUVQKQogCS8qCkBAIC0xODEsMTQgKzE4MSwxNCBAQAogCW10ZGNyKGNwYzBfcGNpLCBtZmRjcihjcGMwX3BjaSkgfCBDUEMwX1BDSV9IT1NUX0NGR19FTiB8IENQQzBfUENJX0FSQklUX0VOKTsKICNlbmRpZiAvKiBDT05GSUdfNDA1RVAgKi8KIAotI2lmIGRlZmluZWQoQ0ZHXzR4eF9HUElPX1RBQkxFKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU180eHhfR1BJT19UQUJMRSkKIAlncGlvX3NldF9jaGlwX2NvbmZpZ3VyYXRpb24oKTsKLSNlbmRpZiAvKiBDRkdfNHh4X0dQSU9fVEFCTEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTXzR4eF9HUElPX1RBQkxFICovCiAKIAkvKgogCSAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCiAJICovCi0jaWYgKGRlZmluZWQoQ0ZHX0VCQ19QQjBBUCkgJiYgZGVmaW5lZChDRkdfRUJDX1BCMENSKSkKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjBBUCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjBDUikpCiAjaWYgKGRlZmluZWQoQ09ORklHXzQwNUdQKSB8fCBkZWZpbmVkKENPTkZJR180MDVDUikgfHwgXAogICAgICBkZWZpbmVkKENPTkZJR180MDVFUCkgfHwgZGVmaW5lZChDT05GSUdfNDA1RVopIHx8IFwKICAgICAgZGVmaW5lZChDT05GSUdfNDA1RVgpIHx8IGRlZmluZWQoQ09ORklHXzQwNSkpCkBAIC0yMDksNDcgKzIwOSw0NyBAQAogCWFzbSB2b2xhdGlsZSgiMjoJYmRuegkyYiIJCTo6OiAiY3RyIiwgImNyMCIpOwogI2VuZGlmCiAKLQltdGViYyhwYjBhcCwgQ0ZHX0VCQ19QQjBBUCk7Ci0JbXRlYmMocGIwY3IsIENGR19FQkNfUEIwQ1IpOworCW10ZWJjKHBiMGFwLCBDT05GSUdfU1lTX0VCQ19QQjBBUCk7CisJbXRlYmMocGIwY3IsIENPTkZJR19TWVNfRUJDX1BCMENSKTsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0VCQ19QQjFBUCkgJiYgZGVmaW5lZChDRkdfRUJDX1BCMUNSKSAmJiAhKENGR19JTklUX0RDQUNIRV9DUyA9PSAxKSkKLQltdGViYyhwYjFhcCwgQ0ZHX0VCQ19QQjFBUCk7Ci0JbXRlYmMocGIxY3IsIENGR19FQkNfUEIxQ1IpOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCMUFQKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCMUNSKSAmJiAhKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MgPT0gMSkpCisJbXRlYmMocGIxYXAsIENPTkZJR19TWVNfRUJDX1BCMUFQKTsKKwltdGViYyhwYjFjciwgQ09ORklHX1NZU19FQkNfUEIxQ1IpOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfRUJDX1BCMkFQKSAmJiBkZWZpbmVkKENGR19FQkNfUEIyQ1IpICYmICEoQ0ZHX0lOSVRfRENBQ0hFX0NTID09IDIpKQotCW10ZWJjKHBiMmFwLCBDRkdfRUJDX1BCMkFQKTsKLQltdGViYyhwYjJjciwgQ0ZHX0VCQ19QQjJDUik7CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEIyQVApICYmIGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEIyQ1IpICYmICEoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUyA9PSAyKSkKKwltdGViYyhwYjJhcCwgQ09ORklHX1NZU19FQkNfUEIyQVApOworCW10ZWJjKHBiMmNyLCBDT05GSUdfU1lTX0VCQ19QQjJDUik7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19FQkNfUEIzQVApICYmIGRlZmluZWQoQ0ZHX0VCQ19QQjNDUikgJiYgIShDRkdfSU5JVF9EQ0FDSEVfQ1MgPT0gMykpCi0JbXRlYmMocGIzYXAsIENGR19FQkNfUEIzQVApOwotCW10ZWJjKHBiM2NyLCBDRkdfRUJDX1BCM0NSKTsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjNBUCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjNDUikgJiYgIShDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTID09IDMpKQorCW10ZWJjKHBiM2FwLCBDT05GSUdfU1lTX0VCQ19QQjNBUCk7CisJbXRlYmMocGIzY3IsIENPTkZJR19TWVNfRUJDX1BCM0NSKTsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0VCQ19QQjRBUCkgJiYgZGVmaW5lZChDRkdfRUJDX1BCNENSKSAmJiAhKENGR19JTklUX0RDQUNIRV9DUyA9PSA0KSkKLQltdGViYyhwYjRhcCwgQ0ZHX0VCQ19QQjRBUCk7Ci0JbXRlYmMocGI0Y3IsIENGR19FQkNfUEI0Q1IpOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCNEFQKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCNENSKSAmJiAhKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MgPT0gNCkpCisJbXRlYmMocGI0YXAsIENPTkZJR19TWVNfRUJDX1BCNEFQKTsKKwltdGViYyhwYjRjciwgQ09ORklHX1NZU19FQkNfUEI0Q1IpOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfRUJDX1BCNUFQKSAmJiBkZWZpbmVkKENGR19FQkNfUEI1Q1IpICYmICEoQ0ZHX0lOSVRfRENBQ0hFX0NTID09IDUpKQotCW10ZWJjKHBiNWFwLCBDRkdfRUJDX1BCNUFQKTsKLQltdGViYyhwYjVjciwgQ0ZHX0VCQ19QQjVDUik7CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEI1QVApICYmIGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEI1Q1IpICYmICEoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUyA9PSA1KSkKKwltdGViYyhwYjVhcCwgQ09ORklHX1NZU19FQkNfUEI1QVApOworCW10ZWJjKHBiNWNyLCBDT05GSUdfU1lTX0VCQ19QQjVDUik7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19FQkNfUEI2QVApICYmIGRlZmluZWQoQ0ZHX0VCQ19QQjZDUikgJiYgIShDRkdfSU5JVF9EQ0FDSEVfQ1MgPT0gNikpCi0JbXRlYmMocGI2YXAsIENGR19FQkNfUEI2QVApOwotCW10ZWJjKHBiNmNyLCBDRkdfRUJDX1BCNkNSKTsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjZBUCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjZDUikgJiYgIShDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTID09IDYpKQorCW10ZWJjKHBiNmFwLCBDT05GSUdfU1lTX0VCQ19QQjZBUCk7CisJbXRlYmMocGI2Y3IsIENPTkZJR19TWVNfRUJDX1BCNkNSKTsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0VCQ19QQjdBUCkgJiYgZGVmaW5lZChDRkdfRUJDX1BCN0NSKSAmJiAhKENGR19JTklUX0RDQUNIRV9DUyA9PSA3KSkKLQltdGViYyhwYjdhcCwgQ0ZHX0VCQ19QQjdBUCk7Ci0JbXRlYmMocGI3Y3IsIENGR19FQkNfUEI3Q1IpOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCN0FQKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCN0NSKSAmJiAhKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MgPT0gNykpCisJbXRlYmMocGI3YXAsIENPTkZJR19TWVNfRUJDX1BCN0FQKTsKKwltdGViYyhwYjdjciwgQ09ORklHX1NZU19FQkNfUEI3Q1IpOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkIChDRkdfRUJDX0NGRykKLQltdGViYyhFQkMwX0NGRywgQ0ZHX0VCQ19DRkcpOworI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRUJDX0NGRykKKwltdGViYyhFQkMwX0NGRywgQ09ORklHX1NZU19FQkNfQ0ZHKTsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCkBAIC0yNjEsOSArMjYxLDkgQEAKICNlbHNlCiAJdmFsIHw9IDB4ZjAwMDAwMDA7ICAgICAgLyogZ2VuZXJhdGUgc3lzdGVtIHJlc2V0IGFmdGVyIDIuNjg0IHNlY29uZHMgKi8KICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHXzR4eF9SRVNFVF9UWVBFKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU180eHhfUkVTRVRfVFlQRSkKIAl2YWwgJj0gfjB4MzAwMDAwMDA7CQkJLyogY2xlYXIgV1JDIGJpdHMgKi8KLQl2YWwgfD0gQ0ZHXzR4eF9SRVNFVF9UWVBFIDw8IDI4OwkvKiBzZXQgYm9hcmQgc3BlY2lmaWMgV1JDIHR5cGUgKi8KKwl2YWwgfD0gQ09ORklHX1NZU180eHhfUkVTRVRfVFlQRSA8PCAyODsJLyogc2V0IGJvYXJkIHNwZWNpZmljIFdSQyB0eXBlICovCiAjZW5kaWYKIAltdHNwcih0Y3IsIHZhbCk7CiAKZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvZGVuYWxpX2RhdGFfZXllLmMgYi9jcHUvcHBjNHh4L2RlbmFsaV9kYXRhX2V5ZS5jCmluZGV4IDk2N2U2MWIuLmZmYzM4MTcgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvZGVuYWxpX2RhdGFfZXllLmMKKysrIGIvY3B1L3BwYzR4eC9kZW5hbGlfZGF0YV9leWUuYwpAQCAtMTI3LDcgKzEyNyw3IEBACiAJCTB4NTVBQTU1QUEsIDB4NTVBQTU1QUEsIDB4QUE1NUFBNTUsIDB4QUE1NUFBNTUKIAl9OwogCi0JcmFtX3BvaW50ZXIgPSAodm9sYXRpbGUgdTMyICopKENGR19TRFJBTV9CQVNFKTsKKwlyYW1fcG9pbnRlciA9ICh2b2xhdGlsZSB1MzIgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKIAogCWZvciAod3JfZHFzX3NoaWZ0ID0gNjQ7IHdyX2Rxc19zaGlmdCA8IDk2OyB3cl9kcXNfc2hpZnQrKykgewogCQkvKiBmb3IgKHdyX2Rxc19zaGlmdD0xOyB3cl9kcXNfc2hpZnQ8OTY7IHdyX2Rxc19zaGlmdCsrKSB7ICovCmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4L2RlbmFsaV9zcGRfZGRyMi5jIGIvY3B1L3BwYzR4eC9kZW5hbGlfc3BkX2RkcjIuYwppbmRleCA2NzBmYzVjLi40NzA1ZTIxIDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4L2RlbmFsaV9zcGRfZGRyMi5jCisrKyBiL2NwdS9wcGM0eHgvZGVuYWxpX3NwZF9kZHIyLmMKQEAgLTEwNDgsOCArMTA0OCw4IEBACiAJICogYmVmb3JlIGNvbnRpbnVpbmcuCiAJICovCiAJLyogc3dpdGNoIHRvIGNvcnJlY3QgSTJDIGJ1cyAqLwotCUkyQ19TRVRfQlVTKENGR19TUERfQlVTX05VTSk7Ci0JaTJjX2luaXQoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJSTJDX1NFVF9CVVMoQ09ORklHX1NZU19TUERfQlVTX05VTSk7CisJaTJjX2luaXQoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAJICogQ2xlYXIgb3V0IHRoZSBzZXJpYWwgcHJlc2VuY2UgZGV0ZWN0IGJ1ZmZlcnMuCkBAIC0xMTg1LDI3ICsxMTg1LDI3IEBACiAJICogTWFwIHRoZSBmaXJzdCAxIE1pQiBvZiBtZW1vcnkgaW4gdGhlIFRMQiwgYW5kIHBlcmZvcm0gdGhlIGRhdGEgZXllCiAJICogc2VhcmNoLgogCSAqLwotCXByb2dyYW1fdGxiKDAsIENGR19TRFJBTV9CQVNFLCBUTEJfMU1CX1NJWkUsIFRMQl9XT1JEMl9JX0VOQUJMRSk7CisJcHJvZ3JhbV90bGIoMCwgQ09ORklHX1NZU19TRFJBTV9CQVNFLCBUTEJfMU1CX1NJWkUsIFRMQl9XT1JEMl9JX0VOQUJMRSk7CiAJZGVuYWxpX2NvcmVfc2VhcmNoX2RhdGFfZXllKCk7CiAJZGVuYWxpX3NkcmFtX3JlZ2lzdGVyX2R1bXAoKTsKLQlyZW1vdmVfdGxiKENGR19TRFJBTV9CQVNFLCBUTEJfMU1CX1NJWkUpOworCXJlbW92ZV90bGIoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBUTEJfMU1CX1NJWkUpOwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19aRVJPX1NEUkFNKSB8fCBkZWZpbmVkKENPTkZJR19ERFJfRUNDKQotCXByb2dyYW1fdGxiKDAsIENGR19TRFJBTV9CQVNFLCBkcmFtX3NpemUsIDApOworCXByb2dyYW1fdGxiKDAsIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgZHJhbV9zaXplLCAwKTsKIAlzeW5jKCk7CiAJLyogWmVybyB0aGUgbWVtb3J5ICovCiAJZGVidWcoIlplcm9pbmcgU0RSQU0uLi4iKTsKLSNpZiBkZWZpbmVkKENGR19NRU1fVE9QX0hJREUpCi0JZGNiel9hcmVhKENGR19TRFJBTV9CQVNFLCBkcmFtX3NpemUgLSBDRkdfTUVNX1RPUF9ISURFKTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTUVNX1RPUF9ISURFKQorCWRjYnpfYXJlYShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIGRyYW1fc2l6ZSAtIENPTkZJR19TWVNfTUVNX1RPUF9ISURFKTsKICNlbHNlCi0jZXJyb3IgUGxlYXNlIGRlZmluZSBDRkdfTUVNX1RPUF9ISURFIChzZWUgUkVBRE1FKSBpbiB5b3VyIGJvYXJkIGNvbmZpZyBmaWxlCisjZXJyb3IgUGxlYXNlIGRlZmluZSBDT05GSUdfU1lTX01FTV9UT1BfSElERSAoc2VlIFJFQURNRSkgaW4geW91ciBib2FyZCBjb25maWcgZmlsZQogI2VuZGlmCiAJLyogV3JpdGUgbW9kaWZpZWQgZGNhY2hlIGxpbmVzIGJhY2sgdG8gbWVtb3J5ICovCi0JY2xlYW5fZGNhY2hlX3JhbmdlKENGR19TRFJBTV9CQVNFLCBDRkdfU0RSQU1fQkFTRSArIGRyYW1fc2l6ZSAtIENGR19NRU1fVE9QX0hJREUpOworCWNsZWFuX2RjYWNoZV9yYW5nZShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1fc2l6ZSAtIENPTkZJR19TWVNfTUVNX1RPUF9ISURFKTsKIAlkZWJ1ZygiQ29tcGxldGVkXG4iKTsKIAlzeW5jKCk7Ci0JcmVtb3ZlX3RsYihDRkdfU0RSQU1fQkFTRSwgZHJhbV9zaXplKTsKKwlyZW1vdmVfdGxiKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgZHJhbV9zaXplKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX0REUl9FQ0MpCiAJLyoKQEAgLTEyMzYsNyArMTIzNiw3IEBACiAjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfRERSX0VDQykgKi8KICNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19aRVJPX1NEUkFNKSB8fCBkZWZpbmVkKENPTkZJR19ERFJfRUNDKSAqLwogCi0JcHJvZ3JhbV90bGIoMCwgQ0ZHX1NEUkFNX0JBU0UsIGRyYW1fc2l6ZSwgTVlfVExCX1dPUkQyX0lfRU5BQkxFKTsKKwlwcm9ncmFtX3RsYigwLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIGRyYW1fc2l6ZSwgTVlfVExCX1dPUkQyX0lfRU5BQkxFKTsKIAlyZXR1cm4gZHJhbV9zaXplOwogfQogCmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4L2VjYy5jIGIvY3B1L3BwYzR4eC9lY2MuYwppbmRleCBhMmViMDdiLi4zZjk4OWU3IDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4L2VjYy5jCisrKyBiL2NwdS9wcGM0eHgvZWNjLmMKQEAgLTY4LDcgKzY4LDcgQEAKICAqCiAgKiAgT3V0cHV0KHMpOgogICogICAgc3RhcnQgLSBBIHBvaW50ZXIgdG8gdGhlIHN0YXJ0IG9mIG1lbW9yeSBjb3ZlcmVkIGJ5IEVDQyB3aXRoCi0gKgkgICAgICBDRkdfRUNDX1BBVFRFUk4gd3JpdHRlbiB0byBhbGwgbG9jYXRpb25zIGFuZCBFQ0MgZGF0YQorICoJICAgICAgQ09ORklHX1NZU19FQ0NfUEFUVEVSTiB3cml0dGVuIHRvIGFsbCBsb2NhdGlvbnMgYW5kIEVDQyBkYXRhCiAgKgkgICAgICBwcmltZWQuCiAgKgogICogIFJldHVybnM6CkBAIC03Niw3ICs3Niw3IEBACiAgKi8KIHZvaWQgZWNjX2luaXQodW5zaWduZWQgbG9uZyAqIGNvbnN0IHN0YXJ0LCB1bnNpZ25lZCBsb25nIHNpemUpCiB7Ci0JY29uc3QgdW5zaWduZWQgbG9uZyBwYXR0ZXJuID0gQ0ZHX0VDQ19QQVRURVJOOworCWNvbnN0IHVuc2lnbmVkIGxvbmcgcGF0dGVybiA9IENPTkZJR19TWVNfRUNDX1BBVFRFUk47CiAJdW5zaWduZWQgbG9uZyAqIGNvbnN0IGVuZCA9ICh1bnNpZ25lZCBsb25nICogY29uc3QpKChsb25nKXN0YXJ0ICsgc2l6ZSk7CiAJdW5zaWduZWQgbG9uZyAqIGN1cnJlbnQgPSBzdGFydDsKIAl1bnNpZ25lZCBsb25nIG1jb3B0MTsKZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvZWNjLmggYi9jcHUvcHBjNHh4L2VjYy5oCmluZGV4IGFlY2YyOTEuLjY3YzNiZmYgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvZWNjLmgKKysrIGIvY3B1L3BwYzR4eC9lY2MuaApAQCAtMzMsOSArMzMsOSBAQAogI2lmbmRlZiBfRUNDX0hfCiAjZGVmaW5lIF9FQ0NfSF8KIAotI2lmICFkZWZpbmVkKENGR19FQ0NfUEFUVEVSTikKLSNkZWZpbmUJQ0ZHX0VDQ19QQVRURVJOCTB4MDAwMDAwMDAKLSNlbmRpZiAvKiAhZGVmaW5lZChDRkdfRUNDX1BBVFRFUk4pICovCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19FQ0NfUEFUVEVSTikKKyNkZWZpbmUJQ09ORklHX1NZU19FQ0NfUEFUVEVSTgkweDAwMDAwMDAwCisjZW5kaWYgLyogIWRlZmluZWQoQ09ORklHX1NZU19FQ0NfUEFUVEVSTikgKi8KIAogLyoKICAqIFNpbmNlIHRoZSBJQk0gRERSIGNvbnRyb2xsZXIgdXNlZCBvbiA0NDBHUC9HWC9FUC9HUiBpcyBub3QgcmVnaXN0ZXIKZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvZ3Bpby5jIGIvY3B1L3BwYzR4eC9ncGlvLmMKaW5kZXggZGY5OWY1My4uYzBkMzUxYSAxMDA2NDQKLS0tIGEvY3B1L3BwYzR4eC9ncGlvLmMKKysrIGIvY3B1L3BwYzR4eC9ncGlvLmMKQEAgLTI2LDggKzI2LDggQEAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vZ3Bpby5oPgogCi0jaWYgZGVmaW5lZChDRkdfNHh4X0dQSU9fVEFCTEUpCi1ncGlvX3BhcmFtX3MgY29uc3QgZ3Bpb190YWJbR1BJT19HUk9VUF9NQVhdW0dQSU9fTUFYXSA9IENGR180eHhfR1BJT19UQUJMRTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfNHh4X0dQSU9fVEFCTEUpCitncGlvX3BhcmFtX3MgY29uc3QgZ3Bpb190YWJbR1BJT19HUk9VUF9NQVhdW0dQSU9fTUFYXSA9IENPTkZJR19TWVNfNHh4X0dQSU9fVEFCTEU7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoR1BJTzBfT1NSTCkKQEAgLTEzMiw3ICsxMzIsNyBAQAogCXJldHVybiAoaW5fYmUzMigodm9pZCAqKUdQSU8wX0lSICsgb2ZmcykgJiBHUElPX1ZBTChwaW4pID8gMSA6IDApOwogfQogCi0jaWYgZGVmaW5lZChDRkdfNHh4X0dQSU9fVEFCTEUpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTXzR4eF9HUElPX1RBQkxFKQogdm9pZCBncGlvX3NldF9jaGlwX2NvbmZpZ3VyYXRpb24odm9pZCkKIHsKIAl1bnNpZ25lZCBjaGFyIGk9MCwgaj0wLCBvZmZzPTAsIGdwaW9fY29yZTsKQEAgLTI1Miw0ICsyNTIsNCBAQAogCQl9CiAJfQogfQotI2VuZGlmIC8qIENGR180eHhfR1BJT19UQUJMRSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfNHh4X0dQSU9fVEFCTEUgKi8KZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvaTJjLmMgYi9jcHUvcHBjNHh4L2kyYy5jCmluZGV4IGQ4YmUyY2UuLjBkZWIxNDkgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvaTJjLmMKKysrIGIvY3B1L3BwYzR4eC9pMmMuYwpAQCAtNDIsOCArNDIsOCBAQAogICogcnVucyBmcm9tIFJPTSwgYW5kIHdlIGNhbid0IHN3aXRjaCBidXNlcyBiZWNhdXNlIHdlIGNhbid0IG1vZGlmeQogICogdGhlIGdsb2JhbCB2YXJpYWJsZXMuCiAgKi8KLSNpZmRlZiBDRkdfU1BEX0JVU19OVU0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgaTJjX2J1c19udW0gX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24gKCJkYXRhIikpKSA9IENGR19TUERfQlVTX05VTTsKKyNpZmRlZiBDT05GSUdfU1lTX1NQRF9CVVNfTlVNCitzdGF0aWMgdW5zaWduZWQgaW50IGkyY19idXNfbnVtIF9fYXR0cmlidXRlX18gKChzZWN0aW9uICgiZGF0YSIpKSkgPSBDT05GSUdfU1lTX1NQRF9CVVNfTlVNOwogI2Vsc2UKIHN0YXRpYyB1bnNpZ25lZCBpbnQgaTJjX2J1c19udW0gX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24gKCJkYXRhIikpKSA9IDA7CiAjZW5kaWYKQEAgLTk1LDE0ICs5NSwxNCBAQAogCWludCB2YWwsIGRpdmlzb3I7CiAJaW50IGJ1czsKIAotI2lmZGVmIENGR19JMkNfSU5JVF9CT0FSRAorI2lmZGVmIENPTkZJR19TWVNfSTJDX0lOSVRfQk9BUkQKIAkvKiBjYWxsIGJvYXJkIHNwZWNpZmljIGkyYyBidXMgcmVzZXQgcm91dGluZSBiZWZvcmUgYWNjZXNzaW5nIHRoZSAgICovCiAJLyogZW52aXJvbm1lbnQsIHdoaWNoIG1pZ2h0IGJlIGluIGEgY2hpcCBvbiB0aGF0IGJ1cy4gRm9yIGRldGFpbHMgICAqLwogCS8qIGFib3V0IHRoaXMgcHJvYmxlbSBzZWUgZG9jL0kyQ19FZGdlX0NvbmRpdGlvbnMuICAgICAgICAgICAgICAgICAgKi8KIAlpMmNfaW5pdF9ib2FyZCgpOwogI2VuZGlmCiAKLQlmb3IgKGJ1cyA9IDA7IGJ1cyA8IENGR19NQVhfSTJDX0JVUzsgYnVzKyspIHsKKwlmb3IgKGJ1cyA9IDA7IGJ1cyA8IENPTkZJR19TWVNfTUFYX0kyQ19CVVM7IGJ1cysrKSB7CiAJCUkyQ19TRVRfQlVTKGJ1cyk7CiAKIAkJLyogSGFuZGxlIHBvc3NpYmxlIGZhaWxlZCBJMkMgc3RhdGUgKi8KQEAgLTE2MSw3ICsxNjEsNyBAQAogCX0KIAogCS8qIHNldCB0byBTUEQgYnVzIGFzIGRlZmF1bHQgYnVzIHVwb24gcG93ZXJ1cCAqLwotCUkyQ19TRVRfQlVTKENGR19TUERfQlVTX05VTSk7CisJSTJDX1NFVF9CVVMoQ09ORklHX1NZU19TUERfQlVTX05VTSk7CiB9CiAKIC8qCkBAIC0zNjEsNyArMzYxLDcgQEAKIAl9CiAKIAotI2lmZGVmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwogCS8qCiAJICogRUVQUk9NIGNoaXBzIHRoYXQgaW1wbGVtZW50ICJhZGRyZXNzIG92ZXJmbG93IiBhcmUgb25lcwogCSAqIGxpa2UgQ2F0YWx5c3QgMjRXQzA0LzA4LzE2IHdoaWNoIGhhcyA5LzEwLzExIGJpdHMgb2YKQEAgLTM3NCw3ICszNzQsNyBAQAogCSAqIGhpZGRlbiBpbiB0aGUgY2hpcCBhZGRyZXNzLgogCSAqLwogCWlmIChhbGVuID4gMCkKLQkJY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKKwkJY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVyk7CiAjZW5kaWYKIAlpZiAoKHJldCA9IGkyY190cmFuc2ZlcigxLCBjaGlwPDwxLCAmeGFkZHJbNC1hbGVuXSwgYWxlbiwgYnVmZmVyLCBsZW4pKSAhPSAwKSB7CiAJCWlmIChnZC0+aGF2ZV9jb25zb2xlKQpAQCAtNDAxLDcgKzQwMSw3IEBACiAJCXhhZGRyWzNdID0gYWRkciAmIDB4RkY7CiAJfQogCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCiAJLyoKIAkgKiBFRVBST00gY2hpcHMgdGhhdCBpbXBsZW1lbnQgImFkZHJlc3Mgb3ZlcmZsb3ciIGFyZSBvbmVzCiAJICogbGlrZSBDYXRhbHlzdCAyNFdDMDQvMDgvMTYgd2hpY2ggaGFzIDkvMTAvMTEgYml0cyBvZgpAQCAtNDE0LDcgKzQxNCw3IEBACiAJICogaGlkZGVuIGluIHRoZSBjaGlwIGFkZHJlc3MuCiAJICovCiAJaWYgKGFsZW4gPiAwKQotCQljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cpOworCQljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKICNlbmRpZgogCiAJcmV0dXJuIChpMmNfdHJhbnNmZXIoMCwgY2hpcDw8MSwgJnhhZGRyWzQtYWxlbl0sIGFsZW4sIGJ1ZmZlciwgbGVuICkgIT0gMCk7CkBAIC00NTEsNyArNDUxLDcgQEAKIAogaW50IGkyY19zZXRfYnVzX251bSh1bnNpZ25lZCBpbnQgYnVzKQogewotCWlmIChidXMgPj0gQ0ZHX01BWF9JMkNfQlVTKQorCWlmIChidXMgPj0gQ09ORklHX1NZU19NQVhfSTJDX0JVUykKIAkJcmV0dXJuIC0xOwogCiAJaTJjX2J1c19udW0gPSBidXM7CkBAIC00NjMsMTIgKzQ2MywxMiBAQAogLyogVE9ETzogYWRkIDEwMC80MDBrIHN3aXRjaGluZyAqLwogdW5zaWduZWQgaW50IGkyY19nZXRfYnVzX3NwZWVkKHZvaWQpCiB7Ci0JcmV0dXJuIENGR19JMkNfU1BFRUQ7CisJcmV0dXJuIENPTkZJR19TWVNfSTJDX1NQRUVEOwogfQogCiBpbnQgaTJjX3NldF9idXNfc3BlZWQodW5zaWduZWQgaW50IHNwZWVkKQogewotCWlmIChzcGVlZCAhPSBDRkdfSTJDX1NQRUVEKQorCWlmIChzcGVlZCAhPSBDT05GSUdfU1lTX0kyQ19TUEVFRCkKIAkJcmV0dXJuIC0xOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4L25kZmMuYyBiL2NwdS9wcGM0eHgvbmRmYy5jCmluZGV4IDdkOTZlNzkuLjNhNWFmMTIgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvbmRmYy5jCisrKyBiL2NwdS9wcGM0eHgvbmRmYy5jCkBAIC0xNDksOCArMTQ5LDggQEAKIH0KICNlbmRpZiAvKiAjaWZuZGVmIENPTkZJR19OQU5EX1NQTCAqLwogCi0jaWZuZGVmIENGR19OQU5EX0JDUgotI2RlZmluZSBDRkdfTkFORF9CQ1IgMHg4MDAwMjIyMgorI2lmbmRlZiBDT05GSUdfU1lTX05BTkRfQkNSCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQ1IgMHg4MDAwMjIyMgogI2VuZGlmCiAKIHZvaWQgYm9hcmRfbmFuZF9zZWxlY3RfZGV2aWNlKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQsIGludCBjaGlwKQpAQCAtMTY1LDcgKzE2NSw3IEBACiAJLyogU2V0IE5hbmRGbGFzaCBDb3JlIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KIAkvKiAxIGNvbCB4IDIgcm93cyAqLwogCW91dF9iZTMyKCh1MzIgKikoYmFzZSArIE5ERkNfQ0NSKSwgMHgwMDAwMDAwMCB8IChjcyA8PCAyNCkpOwotCW91dF9iZTMyKCh1MzIgKikoYmFzZSArIE5ERkNfQkNGRzAgKyAoY3MgPDwgMikpLCBDRkdfTkFORF9CQ1IpOworCW91dF9iZTMyKCh1MzIgKikoYmFzZSArIE5ERkNfQkNGRzAgKyAoY3MgPDwgMikpLCBDT05GSUdfU1lTX05BTkRfQkNSKTsKIH0KIAogc3RhdGljIHZvaWQgbmRmY19zZWxlY3RfY2hpcChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgaW50IGNoaXApCkBAIC0yMTQsOCArMjE0LDggQEAKIAkgKi8KIAltdGViYyhFQkMwX0NGRywgMHhiODQwMDAwMCk7CiAKLQltdGViYyhwYjBjciwgQ0ZHX0VCQ19QQjBDUik7Ci0JbXRlYmMocGIwYXAsIENGR19FQkNfUEIwQVApOworCW10ZWJjKHBiMGNyLCBDT05GSUdfU1lTX0VCQ19QQjBDUik7CisJbXRlYmMocGIwYXAsIENPTkZJR19TWVNfRUJDX1BCMEFQKTsKICNlbmRpZgogCiAJY2hpcCsrOwpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC9zZHJhbS5jIGIvY3B1L3BwYzR4eC9zZHJhbS5jCmluZGV4IGI1YTZhNGMuLjZkNWY4ZDYgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvc2RyYW0uYworKysgYi9jcHUvcHBjNHh4L3NkcmFtLmMKQEAgLTM3LDcgKzM3LDcgQEAKIAogI2lmbmRlZiBDT05GSUdfNDQwCiAKLSNpZm5kZWYgQ0ZHX1NEUkFNX1RBQkxFCisjaWZuZGVmIENPTkZJR19TWVNfU0RSQU1fVEFCTEUKIHNkcmFtX2NvbmZfdCBtYjBjZltdID0gewogCXsoMTI4IDw8IDIwKSwgMTMsIDB4MDAwQTQwMDF9LAkgICAgLyogKDAtMTI4TUIpIEFkZHJlc3MgTW9kZSAzLCAxM3gxMCg0KSAqLwogCXsoNjQgPDwgMjApLCAgMTMsIDB4MDAwODQwMDF9LAkgICAgLyogKDAtNjRNQikgQWRkcmVzcyBNb2RlIDMsIDEzeDkoNCkJICAqLwpAQCAtNDYsNzIgKzQ2LDcyIEBACiAJeyg0IDw8IDIwKSwgICAxMSwgMHgwMDAwODAwMX0sCSAgICAvKiAoMC00TUIpIEFkZHJlc3MgTW9kZSA1LCAxMXg4KDIpCSAgKi8KIH07CiAjZWxzZQotc2RyYW1fY29uZl90IG1iMGNmW10gPSBDRkdfU0RSQU1fVEFCTEU7CitzZHJhbV9jb25mX3QgbWIwY2ZbXSA9IENPTkZJR19TWVNfU0RSQU1fVEFCTEU7CiAjZW5kaWYKIAogI2RlZmluZSBOX01CMENGIChzaXplb2YobWIwY2YpIC8gc2l6ZW9mKG1iMGNmWzBdKSkKIAotI2lmZGVmIENGR19TRFJBTV9DQVNMCisjaWZkZWYgQ09ORklHX1NZU19TRFJBTV9DQVNMCiBzdGF0aWMgdWxvbmcgbnMyY2xrcyh1bG9uZyBucykKIHsKIAl1bG9uZyBidXNfcGVyaW9kX3hfMTAgPSBPTkVfQklMTElPTiAvIChnZXRfYnVzX2ZyZXEoMCkgLyAxMCk7CiAKIAlyZXR1cm4gKChucyAqIDEwKSArIGJ1c19wZXJpb2RfeF8xMCkgLyBidXNfcGVyaW9kX3hfMTA7CiB9Ci0jZW5kaWYgLyogQ0ZHX1NEUkFNX0NBU0wgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1NEUkFNX0NBU0wgKi8KIAogc3RhdGljIHVsb25nIGNvbXB1dGVfc2R0cjEodWxvbmcgc3BlZWQpCiB7Ci0jaWZkZWYgQ0ZHX1NEUkFNX0NBU0wKKyNpZmRlZiBDT05GSUdfU1lTX1NEUkFNX0NBU0wKIAl1bG9uZyB0bXA7CiAJdWxvbmcgc2R0cjEgPSAwOwogCiAJLyogQ0FTTCAqLwotCWlmIChDRkdfU0RSQU1fQ0FTTCA8IDIpCisJaWYgKENPTkZJR19TWVNfU0RSQU1fQ0FTTCA8IDIpCiAJCXNkdHIxIHw9ICgxIDw8IFNEUkFNMF9UUl9DQVNMKTsKIAllbHNlCi0JCWlmIChDRkdfU0RSQU1fQ0FTTCA+IDQpCisJCWlmIChDT05GSUdfU1lTX1NEUkFNX0NBU0wgPiA0KQogCQkJc2R0cjEgfD0gKDMgPDwgU0RSQU0wX1RSX0NBU0wpOwogCQllbHNlCi0JCQlzZHRyMSB8PSAoKENGR19TRFJBTV9DQVNMLTEpIDw8IFNEUkFNMF9UUl9DQVNMKTsKKwkJCXNkdHIxIHw9ICgoQ09ORklHX1NZU19TRFJBTV9DQVNMLTEpIDw8IFNEUkFNMF9UUl9DQVNMKTsKIAogCS8qIFBUQSAqLwotCXRtcCA9IG5zMmNsa3MoQ0ZHX1NEUkFNX1BUQSk7CisJdG1wID0gbnMyY2xrcyhDT05GSUdfU1lTX1NEUkFNX1BUQSk7CiAJaWYgKCh0bXAgPj0gMikgJiYgKHRtcCA8PSA0KSkKIAkJc2R0cjEgfD0gKCh0bXAtMSkgPDwgU0RSQU0wX1RSX1BUQSk7CiAJZWxzZQogCQlzZHRyMSB8PSAoKDQtMSkgPDwgU0RSQU0wX1RSX1BUQSk7CiAKIAkvKiBDVFAgKi8KLQl0bXAgPSBuczJjbGtzKENGR19TRFJBTV9DVFApOworCXRtcCA9IG5zMmNsa3MoQ09ORklHX1NZU19TRFJBTV9DVFApOwogCWlmICgodG1wID49IDIpICYmICh0bXAgPD0gNCkpCiAJCXNkdHIxIHw9ICgodG1wLTEpIDw8IFNEUkFNMF9UUl9DVFApOwogCWVsc2UKIAkJc2R0cjEgfD0gKCg0LTEpIDw8IFNEUkFNMF9UUl9DVFApOwogCiAJLyogTERGICovCi0JdG1wID0gbnMyY2xrcyhDRkdfU0RSQU1fTERGKTsKKwl0bXAgPSBuczJjbGtzKENPTkZJR19TWVNfU0RSQU1fTERGKTsKIAlpZiAoKHRtcCA+PSAyKSAmJiAodG1wIDw9IDQpKQogCQlzZHRyMSB8PSAoKHRtcC0xKSA8PCBTRFJBTTBfVFJfTERGKTsKIAllbHNlCiAJCXNkdHIxIHw9ICgoMi0xKSA8PCBTRFJBTTBfVFJfTERGKTsKIAogCS8qIFJGVEEgKi8KLQl0bXAgPSBuczJjbGtzKENGR19TRFJBTV9SRlRBKTsKKwl0bXAgPSBuczJjbGtzKENPTkZJR19TWVNfU0RSQU1fUkZUQSk7CiAJaWYgKCh0bXAgPj0gNCkgJiYgKHRtcCA8PSAxMCkpCiAJCXNkdHIxIHw9ICgodG1wLTQpIDw8IFNEUkFNMF9UUl9SRlRBKTsKIAllbHNlCiAJCXNkdHIxIHw9ICgoMTAtNCkgPDwgU0RSQU0wX1RSX1JGVEEpOwogCiAJLyogUkNEICovCi0JdG1wID0gbnMyY2xrcyhDRkdfU0RSQU1fUkNEKTsKKwl0bXAgPSBuczJjbGtzKENPTkZJR19TWVNfU0RSQU1fUkNEKTsKIAlpZiAoKHRtcCA+PSAyKSAmJiAodG1wIDw9IDQpKQogCQlzZHRyMSB8PSAoKHRtcC0xKSA8PCBTRFJBTTBfVFJfUkNEKTsKIAllbHNlCiAJCXNkdHIxIHw9ICgoNC0xKSA8PCBTRFJBTTBfVFJfUkNEKTsKIAogCXJldHVybiBzZHRyMTsKLSNlbHNlIC8qIENGR19TRFJBTV9DQVNMICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1NEUkFNX0NBU0wgKi8KIAkvKgogCSAqIElmIG5vIHZhbHVlcyBhcmUgY29uZmlndXJlZCBpbiB0aGUgYm9hcmQgY29uZmlnIGZpbGUKIAkgKiB1c2UgdGhlIGRlZmF1bHQgdmFsdWVzLCB3aGljaCBzZWVtIHRvIGJlIG9rIGZvciBtb3N0CkBAIC0xMzMsMjAgKzEzMywyMCBAQAogCQkgKi8KIAkJcmV0dXJuIDB4MDA4NjQwMGQ7CiAJfQotI2VuZGlmIC8qIENGR19TRFJBTV9DQVNMICovCisjZW5kaWYgLyogQ09ORklHX1NZU19TRFJBTV9DQVNMICovCiB9CiAKIC8qIHJlZnJlc2ggaXMgZXhwcmVzc2VkIGluIG1zICovCiBzdGF0aWMgdWxvbmcgY29tcHV0ZV9ydHIodWxvbmcgc3BlZWQsIHVsb25nIHJvd3MsIHVsb25nIHJlZnJlc2gpCiB7Ci0jaWZkZWYgQ0ZHX1NEUkFNX0NBU0wKKyNpZmRlZiBDT05GSUdfU1lTX1NEUkFNX0NBU0wKIAl1bG9uZyB0bXA7CiAKIAl0bXAgPSAoKHJlZnJlc2gqMTAwMCoxMDAwKSAvICgxIDw8IHJvd3MpKSAqIChzcGVlZCAvIDEwMDApOwogCXRtcCAvPSAxMDAwMDAwOwogCiAJcmV0dXJuICgodG1wICYgMHgwMDAwM0ZGOCkgPDwgMTYpOwotI2Vsc2UgLyogQ0ZHX1NEUkFNX0NBU0wgKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfU0RSQU1fQ0FTTCAqLwogCWlmIChzcGVlZCA+IDEwMDAwMDAwMCkgewogCQkvKgogCQkgKiAxMzMgTUh6IFNEUkFNCkBAIC0xNTgsNyArMTU4LDcgQEAKIAkJICovCiAJCXJldHVybiAweDA1ZjAwMDAwOwogCX0KLSNlbmRpZiAvKiBDRkdfU0RSQU1fQ0FTTCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfU0RSQU1fQ0FTTCAqLwogfQogCiAvKgpAQCAtMjU2LDE3ICsyNTYsMTcgQEAKICAqIGJvYXJkIGNvbmZpZyBmaWxlLgogICovCiAKLSNpZm5kZWYgQ0ZHX1NEUkFNX1RBQkxFCisjaWZuZGVmIENPTkZJR19TWVNfU0RSQU1fVEFCTEUKIHNkcmFtX2NvbmZfdCBtYjBjZltdID0gewogCXsoMjU2IDw8IDIwKSwgMTMsIDB4MDAwQzQwMDF9LAkvKiAyNTZNQiBtb2RlIDMsIDEzeDEwKDQpCSovCiAJeyg2NCA8PCAyMCksICAxMiwgMHgwMDA4MjAwMX0JLyogNjRNQiBtb2RlIDIsIDEyeDkoNCkJCSovCiB9OwogI2Vsc2UKLXNkcmFtX2NvbmZfdCBtYjBjZltdID0gQ0ZHX1NEUkFNX1RBQkxFOworc2RyYW1fY29uZl90IG1iMGNmW10gPSBDT05GSUdfU1lTX1NEUkFNX1RBQkxFOwogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1NEUkFNMF9UUjAKLSNkZWZpbmUJQ0ZHX1NEUkFNMF9UUjAJCTB4NDEwOTQwMTIKKyNpZm5kZWYgQ09ORklHX1NZU19TRFJBTTBfVFIwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU0wX1RSMAkJMHg0MTA5NDAxMgogI2VuZGlmCiAKICNkZWZpbmUgTl9NQjBDRiAoc2l6ZW9mKG1iMGNmKSAvIHNpemVvZihtYjBjZlswXSkpCkBAIC0zODUsNyArMzg1LDcgQEAKIAkJICogRm9sbG93aW5nIGZvciBDQVMgTGF0ZW5jeSA9IDIuNSBAIDEzMyBNSHogUExCCiAJCSAqLwogCQltdHNkcmFtKG1lbV9iMGNyLCBtYjBjZltpXS5yZWcpOwotCQltdHNkcmFtKG1lbV90cjAsIENGR19TRFJBTTBfVFIwKTsKKwkJbXRzZHJhbShtZW1fdHIwLCBDT05GSUdfU1lTX1NEUkFNMF9UUjApOwogCQltdHNkcmFtKG1lbV90cjEsIDB4ODA4MDA4MDApOwkvKiBTUz1UMiBTTD1TVEFHRSAzIENEPTEgQ1Q9MHgwMCovCiAJCW10c2RyYW0obWVtX3J0ciwgMHgwNDEwMDAwMCk7CS8qIEludGVydmFsIDcuOLVzIEAgMTMzTUh6IFBMQgkqLwogCQltdHNkcmFtKG1lbV9jZmcxLCAweDAwMDAwMDAwKTsJLyogU2VsZi1yZWZyZXNoIGV4aXQsIGRpc2FibGUgUE0qLwpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC9zZHJhbS5oIGIvY3B1L3BwYzR4eC9zZHJhbS5oCmluZGV4IDRmYjliMWEuLmJlYTMzNzYgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvc2RyYW0uaAorKysgYi9jcHUvcHBjNHh4L3NkcmFtLmgKQEAgLTQ3LDE5ICs0NywxOSBAQAogI2RlZmluZSBTRFJBTTBfVFJfUkZUQQkJKDMxIC0gMjkpCiAjZGVmaW5lIFNEUkFNMF9UUl9SQ0QJCSgzMSAtIDMxKQogCi0jaWZkZWYgQ0ZHX1NEUkFNX0NMCisjaWZkZWYgQ09ORklHX1NZU19TRFJBTV9DTAogLyogU0RSQU0gdGltaW5ncyBbbnNdIGFjY29yZGluZyB0byBBTUNDL0lCTSBuYW1lcyAoc2VlIFNEUkFNX2ZhcS5kb2MpICovCi0jZGVmaW5lIENGR19TRFJBTV9DQVNMCQlDRkdfU0RSQU1fQ0wKLSNkZWZpbmUgQ0ZHX1NEUkFNX1BUQQkJQ0ZHX1NEUkFNX3RSUAotI2RlZmluZSBDRkdfU0RSQU1fQ1RQCQkoQ0ZHX1NEUkFNX3RSQyAtIENGR19TRFJBTV90UkNEIC0gQ0ZHX1NEUkFNX3RSUCkKLSNkZWZpbmUgQ0ZHX1NEUkFNX0xERgkJMAotI2lmZGVmIENGR19TRFJBTV90UkZDCi0jZGVmaW5lIENGR19TRFJBTV9SRlRBCQlDRkdfU0RSQU1fdFJGQworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NBU0wJCUNPTkZJR19TWVNfU0RSQU1fQ0wKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9QVEEJCUNPTkZJR19TWVNfU0RSQU1fdFJQCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ1RQCQkoQ09ORklHX1NZU19TRFJBTV90UkMgLSBDT05GSUdfU1lTX1NEUkFNX3RSQ0QgLSBDT05GSUdfU1lTX1NEUkFNX3RSUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9MREYJCTAKKyNpZmRlZiBDT05GSUdfU1lTX1NEUkFNX3RSRkMKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9SRlRBCQlDT05GSUdfU1lTX1NEUkFNX3RSRkMKICNlbHNlCi0jZGVmaW5lIENGR19TRFJBTV9SRlRBCQlDRkdfU0RSQU1fdFJDCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fUkZUQQkJQ09ORklHX1NZU19TRFJBTV90UkMKICNlbmRpZgotI2RlZmluZSBDRkdfU0RSQU1fUkNECQlDRkdfU0RSQU1fdFJDRAotI2VuZGlmIC8qICNpZmRlZiBDRkdfU0RSQU1fQ0wgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9SQ0QJCUNPTkZJR19TWVNfU0RSQU1fdFJDRAorI2VuZGlmIC8qICNpZmRlZiBDT05GSUdfU1lTX1NEUkFNX0NMICovCiAKIC8qCiAgKiBTb21lIGRlZmluZXMgZm9yIHRoZSA0NDAgRERSIGNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvc3RhcnQuUyBiL2NwdS9wcGM0eHgvc3RhcnQuUwppbmRleCA5NzQxMWJkLi4zMTkwMmEwIDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4L3N0YXJ0LlMKKysrIGIvY3B1L3BwYzR4eC9zdGFydC5TCkBAIC03Nyw2OSArNzcsNjkgQEAKICNkZWZpbmUJIENPTkZJR19JREVOVF9TVFJJTkcgIiIKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0lOSVRfRENBQ0hFX0NTCi0jIGlmIChDRkdfSU5JVF9EQ0FDSEVfQ1MgPT0gMCkKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTCisjIGlmIChDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTID09IDApCiAjICBkZWZpbmUgUEJ4QVAgcGIwYXAKICMgIGRlZmluZSBQQnhDUiBwYjBjcgotIyAgaWYgKGRlZmluZWQoQ0ZHX0VCQ19QQjBBUCkgJiYgZGVmaW5lZChDRkdfRUJDX1BCMENSKSkKLSMgICBkZWZpbmUgUEJ4QVBfVkFMIENGR19FQkNfUEIwQVAKLSMgICBkZWZpbmUgUEJ4Q1JfVkFMIENGR19FQkNfUEIwQ1IKKyMgIGlmIChkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCMEFQKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCMENSKSkKKyMgICBkZWZpbmUgUEJ4QVBfVkFMIENPTkZJR19TWVNfRUJDX1BCMEFQCisjICAgZGVmaW5lIFBCeENSX1ZBTCBDT05GSUdfU1lTX0VCQ19QQjBDUgogIyAgZW5kaWYKICMgZW5kaWYKLSMgaWYgKENGR19JTklUX0RDQUNIRV9DUyA9PSAxKQorIyBpZiAoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUyA9PSAxKQogIyAgZGVmaW5lIFBCeEFQIHBiMWFwCiAjICBkZWZpbmUgUEJ4Q1IgcGIxY3IKLSMgIGlmIChkZWZpbmVkKENGR19FQkNfUEIxQVApICYmIGRlZmluZWQoQ0ZHX0VCQ19QQjFDUikpCi0jICAgZGVmaW5lIFBCeEFQX1ZBTCBDRkdfRUJDX1BCMUFQCi0jICAgZGVmaW5lIFBCeENSX1ZBTCBDRkdfRUJDX1BCMUNSCisjICBpZiAoZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjFBUCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjFDUikpCisjICAgZGVmaW5lIFBCeEFQX1ZBTCBDT05GSUdfU1lTX0VCQ19QQjFBUAorIyAgIGRlZmluZSBQQnhDUl9WQUwgQ09ORklHX1NZU19FQkNfUEIxQ1IKICMgIGVuZGlmCiAjIGVuZGlmCi0jIGlmIChDRkdfSU5JVF9EQ0FDSEVfQ1MgPT0gMikKKyMgaWYgKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MgPT0gMikKICMgIGRlZmluZSBQQnhBUCBwYjJhcAogIyAgZGVmaW5lIFBCeENSIHBiMmNyCi0jICBpZiAoZGVmaW5lZChDRkdfRUJDX1BCMkFQKSAmJiBkZWZpbmVkKENGR19FQkNfUEIyQ1IpKQotIyAgIGRlZmluZSBQQnhBUF9WQUwgQ0ZHX0VCQ19QQjJBUAotIyAgIGRlZmluZSBQQnhDUl9WQUwgQ0ZHX0VCQ19QQjJDUgorIyAgaWYgKGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEIyQVApICYmIGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEIyQ1IpKQorIyAgIGRlZmluZSBQQnhBUF9WQUwgQ09ORklHX1NZU19FQkNfUEIyQVAKKyMgICBkZWZpbmUgUEJ4Q1JfVkFMIENPTkZJR19TWVNfRUJDX1BCMkNSCiAjICBlbmRpZgogIyBlbmRpZgotIyBpZiAoQ0ZHX0lOSVRfRENBQ0hFX0NTID09IDMpCisjIGlmIChDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTID09IDMpCiAjICBkZWZpbmUgUEJ4QVAgcGIzYXAKICMgIGRlZmluZSBQQnhDUiBwYjNjcgotIyAgaWYgKGRlZmluZWQoQ0ZHX0VCQ19QQjNBUCkgJiYgZGVmaW5lZChDRkdfRUJDX1BCM0NSKSkKLSMgICBkZWZpbmUgUEJ4QVBfVkFMIENGR19FQkNfUEIzQVAKLSMgICBkZWZpbmUgUEJ4Q1JfVkFMIENGR19FQkNfUEIzQ1IKKyMgIGlmIChkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCM0FQKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCM0NSKSkKKyMgICBkZWZpbmUgUEJ4QVBfVkFMIENPTkZJR19TWVNfRUJDX1BCM0FQCisjICAgZGVmaW5lIFBCeENSX1ZBTCBDT05GSUdfU1lTX0VCQ19QQjNDUgogIyAgZW5kaWYKICMgZW5kaWYKLSMgaWYgKENGR19JTklUX0RDQUNIRV9DUyA9PSA0KQorIyBpZiAoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUyA9PSA0KQogIyAgZGVmaW5lIFBCeEFQIHBiNGFwCiAjICBkZWZpbmUgUEJ4Q1IgcGI0Y3IKLSMgIGlmIChkZWZpbmVkKENGR19FQkNfUEI0QVApICYmIGRlZmluZWQoQ0ZHX0VCQ19QQjRDUikpCi0jICAgZGVmaW5lIFBCeEFQX1ZBTCBDRkdfRUJDX1BCNEFQCi0jICAgZGVmaW5lIFBCeENSX1ZBTCBDRkdfRUJDX1BCNENSCisjICBpZiAoZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjRBUCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjRDUikpCisjICAgZGVmaW5lIFBCeEFQX1ZBTCBDT05GSUdfU1lTX0VCQ19QQjRBUAorIyAgIGRlZmluZSBQQnhDUl9WQUwgQ09ORklHX1NZU19FQkNfUEI0Q1IKICMgIGVuZGlmCiAjIGVuZGlmCi0jIGlmIChDRkdfSU5JVF9EQ0FDSEVfQ1MgPT0gNSkKKyMgaWYgKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MgPT0gNSkKICMgIGRlZmluZSBQQnhBUCBwYjVhcAogIyAgZGVmaW5lIFBCeENSIHBiNWNyCi0jICBpZiAoZGVmaW5lZChDRkdfRUJDX1BCNUFQKSAmJiBkZWZpbmVkKENGR19FQkNfUEI1Q1IpKQotIyAgIGRlZmluZSBQQnhBUF9WQUwgQ0ZHX0VCQ19QQjVBUAotIyAgIGRlZmluZSBQQnhDUl9WQUwgQ0ZHX0VCQ19QQjVDUgorIyAgaWYgKGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEI1QVApICYmIGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEI1Q1IpKQorIyAgIGRlZmluZSBQQnhBUF9WQUwgQ09ORklHX1NZU19FQkNfUEI1QVAKKyMgICBkZWZpbmUgUEJ4Q1JfVkFMIENPTkZJR19TWVNfRUJDX1BCNUNSCiAjICBlbmRpZgogIyBlbmRpZgotIyBpZiAoQ0ZHX0lOSVRfRENBQ0hFX0NTID09IDYpCisjIGlmIChDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTID09IDYpCiAjICBkZWZpbmUgUEJ4QVAgcGI2YXAKICMgIGRlZmluZSBQQnhDUiBwYjZjcgotIyAgaWYgKGRlZmluZWQoQ0ZHX0VCQ19QQjZBUCkgJiYgZGVmaW5lZChDRkdfRUJDX1BCNkNSKSkKLSMgICBkZWZpbmUgUEJ4QVBfVkFMIENGR19FQkNfUEI2QVAKLSMgICBkZWZpbmUgUEJ4Q1JfVkFMIENGR19FQkNfUEI2Q1IKKyMgIGlmIChkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCNkFQKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCNkNSKSkKKyMgICBkZWZpbmUgUEJ4QVBfVkFMIENPTkZJR19TWVNfRUJDX1BCNkFQCisjICAgZGVmaW5lIFBCeENSX1ZBTCBDT05GSUdfU1lTX0VCQ19QQjZDUgogIyAgZW5kaWYKICMgZW5kaWYKLSMgaWYgKENGR19JTklUX0RDQUNIRV9DUyA9PSA3KQorIyBpZiAoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUyA9PSA3KQogIyAgZGVmaW5lIFBCeEFQIHBiN2FwCiAjICBkZWZpbmUgUEJ4Q1IgcGI3Y3IKLSMgIGlmIChkZWZpbmVkKENGR19FQkNfUEI3QVApICYmIGRlZmluZWQoQ0ZHX0VCQ19QQjdDUikpCi0jICAgZGVmaW5lIFBCeEFQX1ZBTCBDRkdfRUJDX1BCN0FQCi0jICAgZGVmaW5lIFBCeENSX1ZBTCBDRkdfRUJDX1BCN0NSCisjICBpZiAoZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjdBUCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjdDUikpCisjICAgZGVmaW5lIFBCeEFQX1ZBTCBDT05GSUdfU1lTX0VCQ19QQjdBUAorIyAgIGRlZmluZSBQQnhDUl9WQUwgQ09ORklHX1NZU19FQkNfUEI3Q1IKICMgIGVuZGlmCiAjIGVuZGlmCiAjIGlmbmRlZiBQQnhBUF9WQUwKQEAgLTE0OSwxMSArMTQ5LDExIEBACiAjICBkZWZpbmUgUEJ4Q1JfVkFMCTAKICMgZW5kaWYKIC8qCi0gKiBNZW1vcnkgQmFuayB4IChub3RoaW5nbmVzcykgaW5pdGlhbGl6YXRpb24gQ0ZHX0lOSVRfUkFNX0FERFIgKyA2NCBNaUIKKyAqIE1lbW9yeSBCYW5rIHggKG5vdGhpbmduZXNzKSBpbml0aWFsaXphdGlvbiBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA2NCBNaUIKICAqIHVzZWQgYXMgdGVtcG9yYXJ5IHN0YWNrIHBvaW50ZXIgZm9yIHRoZSBwcmltb3JkaWFsIHN0YWNrCiAgKi8KLSMgaWZuZGVmIENGR19JTklUX0RDQUNIRV9QQnhBUgotIyAgZGVmaW5lIENGR19JTklUX0RDQUNIRV9QQnhBUgkoRUJDX0JYQVBfQk1FX0RJU0FCTEVECQkJfCBcCisjIGlmbmRlZiBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX1BCeEFSCisjICBkZWZpbmUgQ09ORklHX1NZU19JTklUX0RDQUNIRV9QQnhBUgkoRUJDX0JYQVBfQk1FX0RJU0FCTEVECQkJfCBcCiAJCQkJIEVCQ19CWEFQX1RXVF9FTkNPREUoNykJCQl8IFwKIAkJCQkgRUJDX0JYQVBfQkNFX0RJU0FCTEUJCQl8IFwKIAkJCQkgRUJDX0JYQVBfQkNUXzJUUkFOUwkJCXwgXApAQCAtMTY2LDQyICsxNjYsNDIgQEAKIAkJCQkgRUJDX0JYQVBfU09SX05PTkRFTEFZRUQJCXwgXAogCQkJCSBFQkNfQlhBUF9CRU1fV1JJVEVPTkxZCQkJfCBcCiAJCQkJIEVCQ19CWEFQX1BFTl9ESVNBQkxFRCkKLSMgZW5kaWYgLyogQ0ZHX0lOSVRfRENBQ0hFX1BCeEFSICovCi0jIGlmbmRlZiBDRkdfSU5JVF9EQ0FDSEVfUEJ4Q1IKLSMgIGRlZmluZSBDRkdfSU5JVF9EQ0FDSEVfUEJ4Q1IJKEVCQ19CWENSX0JBU19FTkNPREUoQ0ZHX0lOSVRfUkFNX0FERFIpCXwgXAorIyBlbmRpZiAvKiBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX1BCeEFSICovCisjIGlmbmRlZiBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX1BCeENSCisjICBkZWZpbmUgQ09ORklHX1NZU19JTklUX0RDQUNIRV9QQnhDUgkoRUJDX0JYQ1JfQkFTX0VOQ09ERShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIpCXwgXAogCQkJCSBFQkNfQlhDUl9CU182NE1CCQkJfCBcCiAJCQkJIEVCQ19CWENSX0JVX1JXCQkJCXwgXAogCQkJCSBFQkNfQlhDUl9CV18xNkJJVCkKLSMgZW5kaWYgLyogQ0ZHX0lOSVRfRENBQ0hFX1BCeENSICovCi0jIGlmbmRlZiBDRkdfSU5JVF9SQU1fUEFUVEVSTgotIyAgZGVmaW5lIENGR19JTklUX1JBTV9QQVRURVJOCTB4REVBRERFQUQKKyMgZW5kaWYgLyogQ09ORklHX1NZU19JTklUX0RDQUNIRV9QQnhDUiAqLworIyBpZm5kZWYgQ09ORklHX1NZU19JTklUX1JBTV9QQVRURVJOCisjICBkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9QQVRURVJOCTB4REVBRERFQUQKICMgZW5kaWYKLSNlbmRpZiAvKiBDRkdfSU5JVF9EQ0FDSEVfQ1MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTICovCiAKLSNpZiAoZGVmaW5lZChDRkdfSU5JVF9SQU1fRENBQ0hFKSAmJiAoQ0ZHX0lOSVRfUkFNX0VORCA+ICg0IDw8IDEwKSkpCi0jZXJyb3IgT25seSA0ayBvZiBpbml0LXJhbSBpcyBzdXBwb3J0ZWQgLSBwbGVhc2UgYWRqdXN0IENGR19JTklUX1JBTV9FTkQhCisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19JTklUX1JBTV9EQ0FDSEUpICYmIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCA+ICg0IDw8IDEwKSkpCisjZXJyb3IgT25seSA0ayBvZiBpbml0LXJhbSBpcyBzdXBwb3J0ZWQgLSBwbGVhc2UgYWRqdXN0IENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIQogI2VuZGlmCiAKIC8qCiAgKiBVbmxlc3Mgb3RoZXJ3aXNlIG92ZXJyaWRlbiwgZW5hYmxlIHR3byAxMjhNQiBjYWNoYWJsZSBpbnN0cnVjdGlvbiByZWdpb25zCi0gKiBhdCBDRkdfU0RSQU1fQkFTRSBhbmQgYW5vdGhlciAxMjhNQiBjYWNoZWFibGUgaW5zdHJ1Y3Rpb24gcmVnaW9uIGNvdmVyaW5nCi0gKiBOT1IgZmxhc2ggYXQgQ0ZHX0ZMQVNIX0JBU0UuIERpc2FibGUgYWxsIGNhY2hlYWJsZSBkYXRhIHJlZ2lvbnMuCisgKiBhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgYW5kIGFub3RoZXIgMTI4TUIgY2FjaGVhYmxlIGluc3RydWN0aW9uIHJlZ2lvbiBjb3ZlcmluZworICogTk9SIGZsYXNoIGF0IENPTkZJR19TWVNfRkxBU0hfQkFTRS4gRGlzYWJsZSBhbGwgY2FjaGVhYmxlIGRhdGEgcmVnaW9ucy4KICAqLwotI2lmICFkZWZpbmVkKENGR19GTEFTSF9CQVNFKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfQkFTRSkKIC8qIElmIG5vdCBhbHJlYWR5IGRlZmluZWQsIHNldCBpdCB0byB0aGUgImxhc3QiIDEyOE1CeXRlIHJlZ2lvbiAqLwotIyBkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZjgwMDAwMDAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmODAwMDAwMAogI2VuZGlmCi0jaWYgIWRlZmluZWQoQ0ZHX0lDQUNIRV9TQUNSX1ZBTFVFKQotIyBkZWZpbmUgQ0ZHX0lDQUNIRV9TQUNSX1ZBTFVFCQlcCi0JCShQUENfMTI4TUJfU0FDUl9WQUxVRShDRkdfU0RSQU1fQkFTRSArICggIDAgPDwgMjApKSB8IFwKLQkJIFBQQ18xMjhNQl9TQUNSX1ZBTFVFKENGR19TRFJBTV9CQVNFICsgKDEyOCA8PCAyMCkpIHwgXAotCQkgUFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ0ZHX0ZMQVNIX0JBU0UpKQotI2VuZGlmIC8qICFkZWZpbmVkKENGR19JQ0FDSEVfU0FDUl9WQUxVRSkgKi8KKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX0lDQUNIRV9TQUNSX1ZBTFVFKQorIyBkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfU0FDUl9WQUxVRQkJXAorCQkoUFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgKCAgMCA8PCAyMCkpIHwgXAorCQkgUFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgKDEyOCA8PCAyMCkpIHwgXAorCQkgUFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ09ORklHX1NZU19GTEFTSF9CQVNFKSkKKyNlbmRpZiAvKiAhZGVmaW5lZChDT05GSUdfU1lTX0lDQUNIRV9TQUNSX1ZBTFVFKSAqLwogCi0jaWYgIWRlZmluZWQoQ0ZHX0RDQUNIRV9TQUNSX1ZBTFVFKQotIyBkZWZpbmUgQ0ZHX0RDQUNIRV9TQUNSX1ZBTFVFCQlcCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19EQ0FDSEVfU0FDUl9WQUxVRSkKKyMgZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NBQ1JfVkFMVUUJCVwKIAkJKDB4MDAwMDAwMDApCi0jZW5kaWYgLyogIWRlZmluZWQoQ0ZHX0RDQUNIRV9TQUNSX1ZBTFVFKSAqLworI2VuZGlmIC8qICFkZWZpbmVkKENPTkZJR19TWVNfRENBQ0hFX1NBQ1JfVkFMVUUpICovCiAKICNkZWZpbmUgZnVuY3Rpb25fcHJvbG9nKGZ1bmNfbmFtZSkJLnRleHQ7IFwKIAkJCQkJLmFsaWduIDI7IFwKQEAgLTYwOSwxNSArNjA5LDE1IEBACiAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCS8qIERlYnVnIHNldHVwIC0tIHNvbWUgKG5vdCB2ZXJ5IGdvb2QpIGljZSdzIG5lZWQgYW4gZXZlbnQqLwotCS8qIHRvIGVzdGFibGlzaCBjb250cm9sIDotKCBEZWZpbmUgQ0ZHX0lOSVRfREJDUiB0byB0aGUgZGJzciAqLworCS8qIHRvIGVzdGFibGlzaCBjb250cm9sIDotKCBEZWZpbmUgQ09ORklHX1NZU19JTklUX0RCQ1IgdG8gdGhlIGRic3IgKi8KIAkvKiB2YWx1ZSB5b3UgbmVlZCBpbiB0aGlzIGNhc2UgMHg4Y2ZmIDAwMDAgc2hvdWxkIGRvIHRoZSB0cmljayAqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYgZGVmaW5lZChDRkdfSU5JVF9EQkNSKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JTklUX0RCQ1IpCiAJbGlzCXIxLDB4ZmZmZgogCW9yaQlyMSxyMSwweGZmZmYKIAltdHNwcglkYnNyLHIxCQkJLyogQ2xlYXIgYWxsIHN0YXR1cyBiaXRzICovCi0JbGlzCXIwLENGR19JTklUX0RCQ1JAaAotCW9yaQlyMCxyMCxDRkdfSU5JVF9EQkNSQGwKKwlsaXMJcjAsQ09ORklHX1NZU19JTklUX0RCQ1JAaAorCW9yaQlyMCxyMCxDT05GSUdfU1lTX0lOSVRfREJDUkBsCiAJbXRzcHIJZGJjcjAscjAKIAlpc3luYwogI2VuZGlmCkBAIC02MjcsMTIgKzYyNywxMiBAQAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAJbGkJcjAsMAogCi0jaWZkZWYgQ0ZHX0lOSVRfUkFNX0RDQUNIRQorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fRENBQ0hFCiAJLyogQ2xlYXIgRGNhY2hlIHRvIHVzZSBhcyBSQU0gKi8KLQlhZGRpcwlyMyxyMCxDRkdfSU5JVF9SQU1fQUREUkBoCi0Jb3JpCXIzLHIzLENGR19JTklUX1JBTV9BRERSQGwKLQlhZGRpcwlyNCxyMCxDRkdfSU5JVF9SQU1fRU5EQGgKLQlvcmkJcjQscjQsQ0ZHX0lOSVRfUkFNX0VOREBsCisJYWRkaXMJcjMscjAsQ09ORklHX1NZU19JTklUX1JBTV9BRERSQGgKKwlvcmkJcjMscjMsQ09ORklHX1NZU19JTklUX1JBTV9BRERSQGwKKwlhZGRpcwlyNCxyMCxDT05GSUdfU1lTX0lOSVRfUkFNX0VOREBoCisJb3JpCXI0LHI0LENPTkZJR19TWVNfSU5JVF9SQU1fRU5EQGwKIAlybHdpbm0uIHI1LHI0LDAsMjcsMzEKIAlybHdpbm0JcjUscjQsMjcsNSwzMQogCWJlcQkuLmRfcmFuCkBAIC02NzAsNyArNjcwLDcgQEAKIAltdHNwcglkdHYzLHIxCiAJbXN5bmMKIAlpc3luYwotI2VuZGlmIC8qIENGR19JTklUX1JBTV9EQ0FDSEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0lOSVRfUkFNX0RDQUNIRSAqLwogCiAJLyogNDQwRVAgJiA0NDBHUiBhcmUgb25seSA0NDBlciBQUEMncyB3aXRob3V0IGludGVybmFsIFNSQU0gKi8KICNpZiAhZGVmaW5lZChDT05GSUdfNDQwRVApICYmICFkZWZpbmVkKENPTkZJR180NDBHUikKQEAgLTc0NCw4ICs3NDQsOCBAQAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAJLyogU2V0dXAgdGhlIHN0YWNrIGluIGludGVybmFsIFNSQU0gKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCWxpcwlyMSxDRkdfSU5JVF9SQU1fQUREUkBoCi0Jb3JpCXIxLHIxLENGR19JTklUX1NQX09GRlNFVEBsCisJbGlzCXIxLENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBoCisJb3JpCXIxLHIxLENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVRAbAogCWxpCXIwLDAKIAlzdHd1CXIwLC00KHIxKQogCXN0d3UJcjAsLTQocjEpCQkvKiBUZXJtaW5hdGUgY2FsbCBjaGFpbiAqLwpAQCAtODUyLDE4ICs4NTIsMTggQEAKIAlzeW5jCiAKIAkvKiBTZXQtdXAgaWNhY2hlIGNhY2hlYWJpbGl0eS4gKi8KLQlsaXMJcjEsIENGR19JQ0FDSEVfU0FDUl9WQUxVRUBoCi0Jb3JpCXIxLCByMSwgQ0ZHX0lDQUNIRV9TQUNSX1ZBTFVFQGwKKwlsaXMJcjEsIENPTkZJR19TWVNfSUNBQ0hFX1NBQ1JfVkFMVUVAaAorCW9yaQlyMSwgcjEsIENPTkZJR19TWVNfSUNBQ0hFX1NBQ1JfVkFMVUVAbAogCW10aWNjcglyMQogCWlzeW5jCiAKIAkvKiBTZXQtdXAgZGNhY2hlIGNhY2hlYWJpbGl0eS4gKi8KLQlsaXMJcjEsIENGR19EQ0FDSEVfU0FDUl9WQUxVRUBoCi0Jb3JpCXIxLCByMSwgQ0ZHX0RDQUNIRV9TQUNSX1ZBTFVFQGwKKwlsaXMJcjEsIENPTkZJR19TWVNfRENBQ0hFX1NBQ1JfVkFMVUVAaAorCW9yaQlyMSwgcjEsIENPTkZJR19TWVNfRENBQ0hFX1NBQ1JfVkFMVUVAbAogCW10ZGNjcglyMQogCi0JYWRkaXMJcjEscjAsQ0ZHX0lOSVRfUkFNX0FERFJAaAotCW9yaQlyMSxyMSxDRkdfSU5JVF9TUF9PRkZTRVQgLyogc2V0IHVwIHRoZSBzdGFjayB0byBTRFJBTSAqLworCWFkZGlzCXIxLHIwLENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBoCisJb3JpCXIxLHIxLENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQgLyogc2V0IHVwIHRoZSBzdGFjayB0byBTRFJBTSAqLwogCWxpCXIwLCAwCQkJLyogTWFrZSByb29tIGZvciBzdGFjayBmcmFtZSBoZWFkZXIgYW5kICovCiAJc3R3dQlyMCwgLTQocjEpCQkvKiBjbGVhciBmaW5hbCBzdGFjayBmcmFtZSBzbyB0aGF0CSovCiAJc3R3dQlyMCwgLTQocjEpCQkvKiBzdGFjayBiYWNrdHJhY2VzIHRlcm1pbmF0ZSBjbGVhbmx5CSovCkBAIC05MDgsMzEgKzkwOCwzMSBAQAogCWJsCWludmFsaWRhdGVfZGNhY2hlCiAKIAkvKiBTZXQtdXAgaWNhY2hlIGNhY2hlYWJpbGl0eS4gKi8KLQlsaXMJcjQsIENGR19JQ0FDSEVfU0FDUl9WQUxVRUBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lDQUNIRV9TQUNSX1ZBTFVFQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfSUNBQ0hFX1NBQ1JfVkFMVUVAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSUNBQ0hFX1NBQ1JfVkFMVUVAbAogCW10aWNjcglyNAogCWlzeW5jCiAKIAkvKiBTZXQtdXAgZGNhY2hlIGNhY2hlYWJpbGl0eS4gKi8KLQlsaXMJcjQsIENGR19EQ0FDSEVfU0FDUl9WQUxVRUBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0RDQUNIRV9TQUNSX1ZBTFVFQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfRENBQ0hFX1NBQ1JfVkFMVUVAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfRENBQ0hFX1NBQ1JfVkFMVUVAbAogCW10ZGNjcglyNAogCi0jaWYgIShkZWZpbmVkKENGR19FQkNfUEIwQVApICYmIGRlZmluZWQoQ0ZHX0VCQ19QQjBDUikpCisjaWYgIShkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCMEFQKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCMENSKSkKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAJLyogVHVuZSB0aGUgc3BlZWQgYW5kIHNpemUgZm9yIGZsYXNoIENTMCAgKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAJYmwJZXh0X2J1c19jbnRscl9pbml0CiAjZW5kaWYKIAotI2lmICEoZGVmaW5lZChDRkdfSU5JVF9EQ0FDSEVfQ1MpIHx8IGRlZmluZWQoQ0ZHX1RFTVBfU1RBQ0tfT0NNKSkKKyNpZiAhKGRlZmluZWQoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUykgfHwgZGVmaW5lZChDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNKSkKIAkvKgogCSAqIEZvciBib2FyZHMgdGhhdCBkb24ndCBoYXZlIE9DTSBhbmQgY2FuJ3QgdXNlIHRoZSBkYXRhIGNhY2hlCiAJICogZm9yIHRoZWlyIHByaW1vcmRpYWwgc3RhY2ssIHNldHVwIHN0YWNrIGhlcmUgZGlyZWN0bHkgYWZ0ZXIgdGhlCiAJICogU0RSQU0gaXMgaW5pdGlhbGl6ZWQgaW4gZXh0X2J1c19jbnRscl9pbml0LgogCSAqLwotCWxpcwlyMSwgQ0ZHX0lOSVRfUkFNX0FERFJAaAotCW9yaQlyMSxyMSxDRkdfSU5JVF9TUF9PRkZTRVQgLyogc2V0IHVwIHRoZSBzdGFjayBpbiBTRFJBTSAqLworCWxpcwlyMSwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSQGgKKwlvcmkJcjEscjEsQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAvKiBzZXQgdXAgdGhlIHN0YWNrIGluIFNEUkFNICovCiAKIAlsaQlyMCwgMAkJCS8qIE1ha2Ugcm9vbSBmb3Igc3RhY2sgZnJhbWUgaGVhZGVyIGFuZCAqLwogCXN0d3UJcjAsIC00KHIxKQkJLyogY2xlYXIgZmluYWwgc3RhY2sgZnJhbWUgc28gdGhhdAkqLwpAQCAtOTQ2LDcgKzk0Niw3IEBACiAJb3JpCXIwLCByMCwgUkVTRVRfVkVDVE9SQGwKIAlzdHd1CXIxLCAtOChyMSkJCS8qIFNhdmUgYmFjayBjaGFpbiBhbmQgbW92ZSBTUCAqLwogCXN0dwlyMCwgKzEyKHIxKQkJLyogU2F2ZSByZXR1cm4gYWRkciAodW5kZXJmbG93IHZlY3QpICovCi0jZW5kaWYgLyogIShDRkdfSU5JVF9EQ0FDSEVfQ1MJfHwgIUNGR19URU1fU1RBQ0tfT0NNKSAqLworI2VuZGlmIC8qICEoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUwl8fCAhQ09ORklHX1NZU19URU1fU1RBQ0tfT0NNKSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfNDA1RVApCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtOTU5LDI1ICs5NTksMjUgQEAKIAlibAlwcGM0MDVlcF9pbml0CQkvKiBkbyBwcGM0MDVlcCBzcGVjaWZpYyBpbml0ICovCiAjZW5kaWYgLyogQ09ORklHXzQwNUVQICovCiAKLSNpZiBkZWZpbmVkKENGR19PQ01fREFUQV9BRERSKSAmJiBkZWZpbmVkKENGR19PQ01fREFUQV9TSVpFKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19PQ01fREFUQV9BRERSKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT0NNX0RBVEFfU0laRSkKICNpZiBkZWZpbmVkKENPTkZJR180MDVFWikKIAkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAkgKiBTZXR1cCBPQ00gLSBPbiBDaGlwIE1lbW9yeSAtIFBQQzQwNUVaIHVzZXMgT0NNIENvbnRyb2xsZXIgVjIKIAkgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAkvKgogCSAqIFdlIGNhbiBtYXAgdGhlIE9DTSBvbiB0aGUgUExCMywgc28gbWFwIGl0IGF0Ci0JICogQ0ZHX09DTV9EQVRBX0FERFIgKyAweDgwMDAKKwkgKiBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgKyAweDgwMDAKIAkgKi8KLQlsaXMJcjMsQ0ZHX09DTV9EQVRBX0FERFJAaAkvKiBPQ00gbG9jYXRpb24gKi8KLQlvcmkJcjMscjMsQ0ZHX09DTV9EQVRBX0FERFJAbAorCWxpcwlyMyxDT05GSUdfU1lTX09DTV9EQVRBX0FERFJAaAkvKiBPQ00gbG9jYXRpb24gKi8KKwlvcmkJcjMscjMsQ09ORklHX1NZU19PQ01fREFUQV9BRERSQGwKIAlvcmkJcjMscjMsMHgwMjcwCQkvKiAxNksgZm9yIEJhbmsgMSwgUi9XL0VuYWJsZSAqLwogCW10ZGNyCW9jbXBsYjNjcjEscjMJCS8qIFNldCBQTEIgQWNjZXNzICovCiAJb3JpCXIzLHIzLDB4NDAwMAkJLyogQWRkIDB4NDAwMCBmb3IgYmFuayAyICovCiAJbXRkY3IJb2NtcGxiM2NyMixyMwkJLyogU2V0IFBMQiBBY2Nlc3MgKi8KIAlpc3luYwogCi0JbGlzCXIzLENGR19PQ01fREFUQV9BRERSQGgJLyogT0NNIGxvY2F0aW9uICovCi0Jb3JpCXIzLHIzLENGR19PQ01fREFUQV9BRERSQGwKKwlsaXMJcjMsQ09ORklHX1NZU19PQ01fREFUQV9BRERSQGgJLyogT0NNIGxvY2F0aW9uICovCisJb3JpCXIzLHIzLENPTkZJR19TWVNfT0NNX0RBVEFfQUREUkBsCiAJb3JpCXIzLHIzLDB4MDI3MAkJLyogMTZLIGZvciBCYW5rIDEsIFIvVy9FbmFibGUgKi8KIAltdGRjcglvY21kc2NyMSwgcjMJCS8qIFNldCBEYXRhIFNpZGUgKi8KIAltdGRjcglvY21pc2NyMSwgcjMJCS8qIFNldCBJbnN0cnVjdGlvbiBTaWRlICovCkBAIC0xMDAzLDggKzEwMDMsOCBAQAogCW10ZGNyCW9jbWRzY250bCwgcjQJCS8qIHNldCBkYXRhLXNpZGUgSVJBTSBjb25maWcgKi8KIAlpc3luYwogCi0JbGlzCXIzLENGR19PQ01fREFUQV9BRERSQGgJLyogT0NNIGxvY2F0aW9uICovCi0Jb3JpCXIzLHIzLENGR19PQ01fREFUQV9BRERSQGwKKwlsaXMJcjMsQ09ORklHX1NZU19PQ01fREFUQV9BRERSQGgJLyogT0NNIGxvY2F0aW9uICovCisJb3JpCXIzLHIzLENPTkZJR19TWVNfT0NNX0RBVEFfQUREUkBsCiAJbXRkY3IJb2NtZHNhcmMsIHIzCiAJYWRkaXMJcjQsIDAsIDB4QzAwMAkJLyogT0NNIGRhdGEgYXJlYSBlbmFibGVkICovCiAJbXRkY3IJb2NtZHNjbnRsLCByNApAQCAtMTAxNSwyNiArMTAxNSwyNiBAQAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAkvKiBTZXR1cCB0ZW1wb3Jhcnkgc3RhY2sgaW4gRENBQ0hFIG9yIE9DTSBpZiBuZWVkZWQgZm9yIFNEUkFNIFNQRC4gKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0jaWZkZWYgQ0ZHX0lOSVRfRENBQ0hFX0NTCisjaWZkZWYgQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUwogCWxpCXI0LCBQQnhBUAogCW10ZGNyCWViY2NmZ2EsIHI0Ci0JbGlzCXI0LCBDRkdfSU5JVF9EQ0FDSEVfUEJ4QVJAaAotCW9yaQlyNCwgcjQsIENGR19JTklUX0RDQUNIRV9QQnhBUkBsCisJbGlzCXI0LCBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX1BCeEFSQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX1BCeEFSQGwKIAltdGRjcgllYmNjZmdkLCByNAogCiAJYWRkaQlyNCwgMCwgUEJ4Q1IKIAltdGRjcgllYmNjZmdhLCByNAotCWxpcwlyNCwgQ0ZHX0lOSVRfRENBQ0hFX1BCeENSQGgKLQlvcmkJcjQsIHI0LCBDRkdfSU5JVF9EQ0FDSEVfUEJ4Q1JAbAorCWxpcwlyNCwgQ09ORklHX1NZU19JTklUX0RDQUNIRV9QQnhDUkBoCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19JTklUX0RDQUNIRV9QQnhDUkBsCiAJbXRkY3IJZWJjY2ZnZCwgcjQKIAogCS8qCiAJICogRW5hYmxlIHRoZSBkYXRhIGNhY2hlIGZvciB0aGUgMTI4TUIgc3RvcmFnZSBhY2Nlc3MgY29udHJvbCByZWdpb24KLQkgKiBhdCBDRkdfSU5JVF9SQU1fQUREUi4KKwkgKiBhdCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIuCiAJICovCiAJbWZkY2NyCXI0Ci0Jb3JpcwlyNCwgcjQsIFBQQ18xMjhNQl9TQUNSX1ZBTFVFKENGR19JTklUX1JBTV9BRERSKUBoCi0Jb3JpCXI0LCByNCwgUFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ0ZHX0lOSVRfUkFNX0FERFIpQGwKKwlvcmlzCXI0LCByNCwgUFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ09ORklHX1NZU19JTklUX1JBTV9BRERSKUBoCisJb3JpCXI0LCByNCwgUFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ09ORklHX1NZU19JTklUX1JBTV9BRERSKUBsCiAJbXRkY2NyCXI0CiAKIAkvKgpAQCAtMTA0NCwxMSArMTA0NCwxMSBAQAogCSAqLwogCWxpCXIwLCAwCiAKLQlsaXMJcjMsIENGR19JTklUX1JBTV9BRERSQGgKLQlvcmkJcjMsIHIzLCBDRkdfSU5JVF9SQU1fQUREUkBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBsCiAKLQlsaXMJcjQsIENGR19JTklUX1JBTV9FTkRAaAotCW9yaQlyNCwgcjQsIENGR19JTklUX1JBTV9FTkRAbAorCWxpcwlyNCwgQ09ORklHX1NZU19JTklUX1JBTV9FTkRAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EQGwKIAogCS8qCiAJICogQ29udmVydCB0aGUgc2l6ZSwgaW4gYnl0ZXMsIHRvIHRoZSBudW1iZXIgb2YgY2FjaGUgbGluZXMvYmxvY2tzCkBAIC0xMDcyLDE4ICsxMDcyLDE4IEBACiAJICogTG9hZCB0aGUgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgYW5kIGNvbnZlcnQgdGhlIHNpemUsCiAJICogaW4gYnl0ZXMsIHRvIHRoZSBudW1iZXIgb2Ygd29yZHMgdG8gaW5pdGlhbGl6ZSB0byBhIGtub3duIHZhbHVlLgogCSAqLwotCWxpcwlyMSwgQ0ZHX0lOSVRfUkFNX0FERFJAaAotCW9yaQlyMSwgcjEsIENGR19JTklUX1NQX09GRlNFVEBsCisJbGlzCXIxLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAaAorCW9yaQlyMSwgcjEsIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVRAbAogCi0JbGlzCXI0LCAoQ0ZHX0lOSVRfUkFNX0VORCA+PiAyKUBoCi0Jb3JpCXI0LCByNCwgKENGR19JTklUX1JBTV9FTkQgPj4gMilAbAorCWxpcwlyNCwgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EID4+IDIpQGgKKwlvcmkJcjQsIHI0LCAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgPj4gMilAbAogCW10Y3RyCXI0CiAKLQlsaXMJcjIsIENGR19JTklUX1JBTV9BRERSQGgKLQlvcmkJcjIsIHIyLCBDRkdfSU5JVF9SQU1fRU5EQGwKKwlsaXMJcjIsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBoCisJb3JpCXIyLCByMiwgQ09ORklHX1NZU19JTklUX1JBTV9FTkRAbAogCi0JbGlzCXI0LCBDRkdfSU5JVF9SQU1fUEFUVEVSTkBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lOSVRfUkFNX1BBVFRFUk5AbAorCWxpcwlyNCwgQ09ORklHX1NZU19JTklUX1JBTV9QQVRURVJOQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lOSVRfUkFNX1BBVFRFUk5AbAogCiAuLnN0YWNrbG9vcDoKIAlzdHd1CXI0LCAtNChyMikKQEAgLTExMDYsMTUgKzExMDYsMTUgQEAKIAlzdHd1CXIxLCAtOChyMSkJCS8qIFNhdmUgYmFjayBjaGFpbiBhbmQgbW92ZSBTUCAqLwogCXN0dwlyMCwgKzEyKHIxKQkJLyogU2F2ZSByZXR1cm4gYWRkciAodW5kZXJmbG93IHZlY3QpICovCiAKLSNlbGlmIGRlZmluZWQoQ0ZHX1RFTVBfU1RBQ0tfT0NNKSAmJiBcCi0JKGRlZmluZWQoQ0ZHX09DTV9EQVRBX0FERFIpICYmIGRlZmluZWQoQ0ZHX09DTV9EQVRBX1NJWkUpKQorI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNKSAmJiBcCisJKGRlZmluZWQoQ09ORklHX1NZU19PQ01fREFUQV9BRERSKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT0NNX0RBVEFfU0laRSkpCiAJLyoKIAkgKiBTdGFjayBpbiBPQ00uCiAJICovCiAKIAkvKiBTZXQgdXAgU3RhY2sgYXQgdG9wIG9mIE9DTSAqLwotCWxpcwlyMSwgKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0lOSVRfU1BfT0ZGU0VUKUBoCi0Jb3JpCXIxLCByMSwgKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0lOSVRfU1BfT0ZGU0VUKUBsCisJbGlzCXIxLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVClAaAorCW9yaQlyMSwgcjEsIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUKUBsCiAKIAkvKiBTZXQgdXAgYSB6ZXJvaXplZCBzdGFjayBmcmFtZSBzbyB0aGF0IGJhY2t0cmFjZSB3b3JrcyByaWdodCAqLwogCWxpCXIwLCAwCkBAIC0xMTMwLDcgKzExMzAsNyBAQAogCW9yaQlyMCwgcjAsIFJFU0VUX1ZFQ1RPUkBsCiAJc3R3dQlyMSwgLTgocjEpCQkvKiBTYXZlIGJhY2sgY2hhaW4gYW5kIG1vdmUgU1AgKi8KIAlzdHcJcjAsICsxMihyMSkJCS8qIFNhdmUgcmV0dXJuIGFkZHIgKHVuZGVyZmxvdyB2ZWN0KSAqLwotI2VuZGlmIC8qIENGR19JTklUX0RDQUNIRV9DUyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MgKi8KIAogI2lmZGVmIENPTkZJR19OQU5EX1NQTAogCWJsCW5hbmRfYm9vdF9jb21tb24JLyogd2lsbCBub3QgcmV0dXJuICovCkBAIC0xMzQxLDcgKzEzNDEsNyBAQAogICovCiAJLmdsb2JsCXJlbG9jYXRlX2NvZGUKIHJlbG9jYXRlX2NvZGU6Ci0jaWYgZGVmaW5lZChDT05GSUdfNHh4X0RDQUNIRSkgfHwgZGVmaW5lZChDRkdfSU5JVF9EQ0FDSEVfQ1MpCisjaWYgZGVmaW5lZChDT05GSUdfNHh4X0RDQUNIRSkgfHwgZGVmaW5lZChDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTKQogCS8qCiAJICogV2UgbmVlZCB0byBmbHVzaCB0aGUgaW5pdGlhbCBnbG9iYWwgZGF0YSAoZ2RfdCkgYmVmb3JlIHRoZSBkY2FjaGUKIAkgKiB3aWxsIGJlIGludmFsaWRhdGVkLgpAQCAtMTM1NCwxMCArMTM1NCwxMCBAQAogCiAJLyogRmx1c2ggaW5pdGlhbCBnbG9iYWwgZGF0YSByYW5nZSAqLwogCW1yCXIzLCByNAotCWFkZGkJcjQsIHI0LCBDRkdfR0JMX0RBVEFfU0laRUBsCisJYWRkaQlyNCwgcjQsIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRUBsCiAJYmwJZmx1c2hfZGNhY2hlX3JhbmdlCiAKLSNpZiBkZWZpbmVkKENGR19JTklUX0RDQUNIRV9DUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MpCiAJLyoKIAkgKiBVbmRvIHRoZSBlYXJsaWVyIGRhdGEgY2FjaGUgc2V0LXVwIGZvciB0aGUgcHJpbW9yZGlhbCBzdGFjayBhbmQKIAkgKiBkYXRhIGFyZWEuIEZpcnN0LCBpbnZhbGlkYXRlIHRoZSBkYXRhIGNhY2hlIGFuZCB0aGVuIGRpc2FibGUgZGF0YQpAQCAtMTM2NiwxOSArMTM2NiwxOSBAQAogCSAqLwogCiAJLyogSW52YWxpZGF0ZSB0aGUgcHJpbW9yZGlhbCBzdGFjayBhbmQgZGF0YSBhcmVhIGluIGNhY2hlICovCi0JbGlzCXIzLCBDRkdfSU5JVF9SQU1fQUREUkBoCi0Jb3JpCXIzLCByMywgQ0ZHX0lOSVRfUkFNX0FERFJAbAorCWxpcwlyMywgQ09ORklHX1NZU19JTklUX1JBTV9BRERSQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAbAogCi0JbGlzCXI0LCBDRkdfSU5JVF9SQU1fRU5EQGgKLQlvcmkJcjQsIHI0LCBDRkdfSU5JVF9SQU1fRU5EQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lOSVRfUkFNX0VOREBsCiAJYWRkCXI0LCByNCwgcjMKIAogCWJsCWludmFsaWRhdGVfZGNhY2hlX3JhbmdlCiAKIAkvKiBEaXNhYmxlIGNhY2hlYWJpbGl0eSBmb3IgdGhlIHJlZ2lvbiAqLwogCW1mZGNjcglyMwotCWxpcyAgICAgcjQsIH5QUENfMTI4TUJfU0FDUl9WQUxVRShDRkdfSU5JVF9SQU1fQUREUilAaAotCW9yaSAgICAgcjQsIHI0LCB+UFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ0ZHX0lOSVRfUkFNX0FERFIpQGwKKwlsaXMgICAgIHI0LCB+UFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ09ORklHX1NZU19JTklUX1JBTV9BRERSKUBoCisJb3JpICAgICByNCwgcjQsIH5QUENfMTI4TUJfU0FDUl9WQUxVRShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIpQGwKIAlhbmQgICAgIHIzLCByMywgcjQKIAltdGRjY3IgIHIzCiAKQEAgLTEzOTQsMTUgKzEzOTQsMTUgQEAKIAlsaXMJcjMsIFBCeENSX1ZBTEBoCiAJb3JpCXIzLCByMywgUEJ4Q1JfVkFMQGwKIAltdGRjcgllYmNjZmdkLCByMwotI2VuZGlmIC8qIGRlZmluZWQoQ0ZHX0lOSVRfRENBQ0hFX0NTKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUykgKi8KIAogCS8qIFJlc3RvcmUgcmVnaXN0ZXJzICovCiAJbXIJcjMsIHI5CiAJbXIJcjQsIHIxMAogCW1yCXI1LCByMTEKLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR180eHhfRENBQ0hFKSB8fCBkZWZpbmVkKENGR19JTklUX0RDQUNIRV9DUykgKi8KKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR180eHhfRENBQ0hFKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MpICovCiAKLSNpZmRlZiBDRkdfSU5JVF9SQU1fRENBQ0hFCisjaWZkZWYgQ09ORklHX1NZU19JTklUX1JBTV9EQ0FDSEUKIAkvKgogCSAqIFVubG9jayB0aGUgcHJldmlvdXNseSBsb2NrZWQgZC1jYWNoZQogCSAqLwpAQCAtMTQyNCw3ICsxNDI0LDcgQEAKIAltdHNwcglkdHYzLHI2CiAJbXN5bmMKIAlpc3luYwotI2VuZGlmIC8qIENGR19JTklUX1JBTV9EQ0FDSEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0lOSVRfUkFNX0RDQUNIRSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfNDQwRVApIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfNDQwRVBYKSB8fCBkZWZpbmVkKENPTkZJR180NDBHUlgpIHx8IFwKQEAgLTE0MzksMTEgKzE0MzksMTEgQEAKIAlkY2NjaQkwLDAJCQkvKiBJbnZhbGlkYXRlIGRhdGEgY2FjaGUsIG5vdyBubyBsb25nZXIgb3VyIHN0YWNrICovCiAJc3luYwogCWlzeW5jCi0jaWZkZWYgQ0ZHX1RMQl9GT1JfQk9PVF9GTEFTSAotCWFkZGkJcjEscjAsQ0ZHX1RMQl9GT1JfQk9PVF9GTEFTSAkvKiBVc2UgZGVmaW5lZCBUTEIgKi8KKyNpZmRlZiBDT05GSUdfU1lTX1RMQl9GT1JfQk9PVF9GTEFTSAorCWFkZGkJcjEscjAsQ09ORklHX1NZU19UTEJfRk9SX0JPT1RfRkxBU0gJLyogVXNlIGRlZmluZWQgVExCICovCiAjZWxzZQogCWFkZGkJcjEscjAsMHgwMDAwCQkvKiBEZWZhdWx0IFRMQiBlbnRyeSBpcyAjMCAqLwotI2VuZGlmIC8qIENGR19UTEJfRk9SX0JPT1RfRkxBU0ggKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1RMQl9GT1JfQk9PVF9GTEFTSCAqLwogCXRsYnJlCXIwLHIxLDB4MDAwMgkJLyogUmVhZCBjb250ZW50cyAqLwogCW9yaQlyMCxyMCwweDBjMDAJCS8qIE9yIGluIHRoZSBpbmhpYml0LCB3cml0ZSB0aHJvdWdoIGJpdCAqLwogCXRsYndlCXIwLHIxLDB4MDAwMgkJLyogU2F2ZSBpdCBvdXQgKi8KQEAgLTE0NTUsOCArMTQ1NSw4IEBACiAJbXIJcjEwLCByNQkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MJKi8KIAogCW1yCXIzLCAgcjUJCQkJLyogRGVzdGluYXRpb24gQWRkcmVzcwkqLwotCWxpcwlyNCwgQ0ZHX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCi0Jb3JpCXI0LCByNCwgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWx3eglyNSwgR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LCByNSwgcjQKIAlsaQlyNiwgTDFfQ0FDSEVfQllURVMJCS8qIENhY2hlIExpbmUgU2l6ZQkqLwpAQCAtMTQ2NCw3ICsxNDY0LDcgQEAKIAkvKgogCSAqIEZpeCBHT1QgcG9pbnRlcjoKIAkgKgotCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ0ZHX01PTklUT1JfQkFTRSkgKyBEZXN0aW5hdGlvbiBBZGRyZXNzCisJICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgKyBEZXN0aW5hdGlvbiBBZGRyZXNzCiAJICoKIAkgKiBPZmZzZXQ6CiAJICovCkBAIC0xNzc1LDc0ICsxNzc1LDc0IEBACiAKIAlsaXMJcjMsR1BJTzBfT1NSSEBoCQkvKiBjb25maWcgR1BJTyBvdXRwdXQgc2VsZWN0ICovCiAJb3JpCXIzLHIzLEdQSU8wX09TUkhAbAotCWxpcwlyNCxDRkdfR1BJTzBfT1NSSEBoCi0Jb3JpCXI0LHI0LENGR19HUElPMF9PU1JIQGwKKwlsaXMJcjQsQ09ORklHX1NZU19HUElPMF9PU1JIQGgKKwlvcmkJcjQscjQsQ09ORklHX1NZU19HUElPMF9PU1JIQGwKIAlzdHcJcjQsMChyMykKIAlsaXMJcjMsR1BJTzBfT1NSTEBoCiAJb3JpCXIzLHIzLEdQSU8wX09TUkxAbAotCWxpcwlyNCxDRkdfR1BJTzBfT1NSTEBoCi0Jb3JpCXI0LHI0LENGR19HUElPMF9PU1JMQGwKKwlsaXMJcjQsQ09ORklHX1NZU19HUElPMF9PU1JMQGgKKwlvcmkJcjQscjQsQ09ORklHX1NZU19HUElPMF9PU1JMQGwKIAlzdHcJcjQsMChyMykKIAogCWxpcwlyMyxHUElPMF9JU1IxSEBoCS8qIGNvbmZpZyBHUElPIGlucHV0IHNlbGVjdCAqLwogCW9yaQlyMyxyMyxHUElPMF9JU1IxSEBsCi0JbGlzCXI0LENGR19HUElPMF9JU1IxSEBoCi0Jb3JpCXI0LHI0LENGR19HUElPMF9JU1IxSEBsCisJbGlzCXI0LENPTkZJR19TWVNfR1BJTzBfSVNSMUhAaAorCW9yaQlyNCxyNCxDT05GSUdfU1lTX0dQSU8wX0lTUjFIQGwKIAlzdHcJcjQsMChyMykKIAlsaXMJcjMsR1BJTzBfSVNSMUxAaAogCW9yaQlyMyxyMyxHUElPMF9JU1IxTEBsCi0JbGlzCXI0LENGR19HUElPMF9JU1IxTEBoCi0Jb3JpCXI0LHI0LENGR19HUElPMF9JU1IxTEBsCisJbGlzCXI0LENPTkZJR19TWVNfR1BJTzBfSVNSMUxAaAorCW9yaQlyNCxyNCxDT05GSUdfU1lTX0dQSU8wX0lTUjFMQGwKIAlzdHcJcjQsMChyMykKIAogCWxpcwlyMyxHUElPMF9UU1JIQGgJCS8qIGNvbmZpZyBHUElPIHRocmVlLXN0YXRlIHNlbGVjdCAqLwogCW9yaQlyMyxyMyxHUElPMF9UU1JIQGwKLQlsaXMJcjQsQ0ZHX0dQSU8wX1RTUkhAaAotCW9yaQlyNCxyNCxDRkdfR1BJTzBfVFNSSEBsCisJbGlzCXI0LENPTkZJR19TWVNfR1BJTzBfVFNSSEBoCisJb3JpCXI0LHI0LENPTkZJR19TWVNfR1BJTzBfVFNSSEBsCiAJc3R3CXI0LDAocjMpCiAJbGlzCXIzLEdQSU8wX1RTUkxAaAogCW9yaQlyMyxyMyxHUElPMF9UU1JMQGwKLQlsaXMJcjQsQ0ZHX0dQSU8wX1RTUkxAaAotCW9yaQlyNCxyNCxDRkdfR1BJTzBfVFNSTEBsCisJbGlzCXI0LENPTkZJR19TWVNfR1BJTzBfVFNSTEBoCisJb3JpCXI0LHI0LENPTkZJR19TWVNfR1BJTzBfVFNSTEBsCiAJc3R3CXI0LDAocjMpCiAKIAlsaXMJcjMsR1BJTzBfVENSQGgJCS8qIGNvbmZpZyBHUElPIGRyaXZlciBvdXRwdXQgZW5hYmxlcyAqLwogCW9yaQlyMyxyMyxHUElPMF9UQ1JAbAotCWxpcwlyNCxDRkdfR1BJTzBfVENSQGgKLQlvcmkJcjQscjQsQ0ZHX0dQSU8wX1RDUkBsCisJbGlzCXI0LENPTkZJR19TWVNfR1BJTzBfVENSQGgKKwlvcmkJcjQscjQsQ09ORklHX1NZU19HUElPMF9UQ1JAbAogCXN0dwlyNCwwKHIzKQogCiAJbGkJcjMscGIxYXAJCS8qIHByb2dyYW0gRUJDIGJhbmsgMSBmb3IgUlRDIGFjY2VzcyAqLwogCW10ZGNyCWViY2NmZ2EscjMKLQlsaXMJcjMsQ0ZHX0VCQ19QQjFBUEBoCi0Jb3JpCXIzLHIzLENGR19FQkNfUEIxQVBAbAorCWxpcwlyMyxDT05GSUdfU1lTX0VCQ19QQjFBUEBoCisJb3JpCXIzLHIzLENPTkZJR19TWVNfRUJDX1BCMUFQQGwKIAltdGRjcgllYmNjZmdkLHIzCiAJbGkJcjMscGIxY3IKIAltdGRjcgllYmNjZmdhLHIzCi0JbGlzCXIzLENGR19FQkNfUEIxQ1JAaAotCW9yaQlyMyxyMyxDRkdfRUJDX1BCMUNSQGwKKwlsaXMJcjMsQ09ORklHX1NZU19FQkNfUEIxQ1JAaAorCW9yaQlyMyxyMyxDT05GSUdfU1lTX0VCQ19QQjFDUkBsCiAJbXRkY3IJZWJjY2ZnZCxyMwogCiAJbGkJcjMscGIxYXAJCS8qIHByb2dyYW0gRUJDIGJhbmsgMSBmb3IgUlRDIGFjY2VzcyAqLwogCW10ZGNyCWViY2NmZ2EscjMKLQlsaXMJcjMsQ0ZHX0VCQ19QQjFBUEBoCi0Jb3JpCXIzLHIzLENGR19FQkNfUEIxQVBAbAorCWxpcwlyMyxDT05GSUdfU1lTX0VCQ19QQjFBUEBoCisJb3JpCXIzLHIzLENPTkZJR19TWVNfRUJDX1BCMUFQQGwKIAltdGRjcgllYmNjZmdkLHIzCiAJbGkJcjMscGIxY3IKIAltdGRjcgllYmNjZmdhLHIzCi0JbGlzCXIzLENGR19FQkNfUEIxQ1JAaAotCW9yaQlyMyxyMyxDRkdfRUJDX1BCMUNSQGwKKwlsaXMJcjMsQ09ORklHX1NZU19FQkNfUEIxQ1JAaAorCW9yaQlyMyxyMyxDT05GSUdfU1lTX0VCQ19QQjFDUkBsCiAJbXRkY3IJZWJjY2ZnZCxyMwogCiAJbGkJcjMscGI0YXAJCS8qIHByb2dyYW0gRUJDIGJhbmsgNCBmb3IgRlBHQSBhY2Nlc3MgKi8KIAltdGRjcgllYmNjZmdhLHIzCi0JbGlzCXIzLENGR19FQkNfUEI0QVBAaAotCW9yaQlyMyxyMyxDRkdfRUJDX1BCNEFQQGwKKwlsaXMJcjMsQ09ORklHX1NZU19FQkNfUEI0QVBAaAorCW9yaQlyMyxyMyxDT05GSUdfU1lTX0VCQ19QQjRBUEBsCiAJbXRkY3IJZWJjY2ZnZCxyMwogCWxpCXIzLHBiNGNyCiAJbXRkY3IJZWJjY2ZnYSxyMwotCWxpcwlyMyxDRkdfRUJDX1BCNENSQGgKLQlvcmkJcjMscjMsQ0ZHX0VCQ19QQjRDUkBsCisJbGlzCXIzLENPTkZJR19TWVNfRUJDX1BCNENSQGgKKwlvcmkJcjMscjMsQ09ORklHX1NZU19FQkNfUEI0Q1JAbAogCW10ZGNyCWViY2NmZ2QscjMKICNlbmRpZgogCkBAIC0yMTExLDIwICsyMTExLDIwIEBACiAJICogRmlyc3QgaW5pdGlhbGl6ZSBTRFJBTS4gSXQgaGFzIHRvIGJlIGF2YWlsYWJsZSAqYmVmb3JlKiBjYWxsaW5nCiAJICogbmFuZF9ib290KCkuCiAJICovCi0JbGlzCXIzLENGR19TRFJBTV9CQVNFQGgKLQlvcmkJcjMscjMsQ0ZHX1NEUkFNX0JBU0VAbAorCWxpcwlyMyxDT05GSUdfU1lTX1NEUkFNX0JBU0VAaAorCW9yaQlyMyxyMyxDT05GSUdfU1lTX1NEUkFNX0JBU0VAbAogCWJsCWluaXRkcmFtCiAKIAkvKgogCSAqIE5vdyBjb3B5IHRoZSA0ayBTUEwgY29kZSBpbnRvIFNEUkFNIGFuZCBjb250aW51ZSBleGVjdXRpb24KIAkgKiBmcm9tIHRoZXJlLgogCSAqLwotCWxpcwlyMyxDRkdfTkFORF9CT09UX1NQTF9EU1RAaAotCW9yaQlyMyxyMyxDRkdfTkFORF9CT09UX1NQTF9EU1RAbAotCWxpcwlyNCxDRkdfTkFORF9CT09UX1NQTF9TUkNAaAotCW9yaQlyNCxyNCxDRkdfTkFORF9CT09UX1NQTF9TUkNAbAotCWxpcwlyNSxDRkdfTkFORF9CT09UX1NQTF9TSVpFQGgKLQlvcmkJcjUscjUsQ0ZHX05BTkRfQk9PVF9TUExfU0laRUBsCisJbGlzCXIzLENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9EU1RAaAorCW9yaQlyMyxyMyxDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfRFNUQGwKKwlsaXMJcjQsQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQ0BoCisJb3JpCXI0LHI0LENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkNAbAorCWxpcwlyNSxDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfU0laRUBoCisJb3JpCXI1LHI1LENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TSVpFQGwKIAlibAluYW5kX2Jvb3RfcmVsb2NhdGUKIAogCS8qCmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4L3VzYi5jIGIvY3B1L3BwYzR4eC91c2IuYwppbmRleCBjYjhkNWM3Li41OTJlZmU3IDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4L3VzYi5jCisrKyBiL2NwdS9wcGM0eHgvdXNiLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWYgZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENGR19VU0JfT0hDSV9DUFVfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSV9ORVcpICYmIGRlZmluZWQoQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVCkKIAogI2lmZGVmIENPTkZJR180eHhfRENBQ0hFCiAjaW5jbHVkZSA8YXNtL21tdS5oPgpAQCAtNjMsNCArNjMsNCBAQAogCXJldHVybiAwOwogfQogCi0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfVVNCX09IQ0kpICYmIGRlZmluZWQoQ0ZHX1VTQl9PSENJX0NQVV9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1VTQl9PSENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQpICovCmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4L3VzYl9vaGNpLmMgYi9jcHUvcHBjNHh4L3VzYl9vaGNpLmMKaW5kZXggNWRiZDg0Mi4uMmM4MGQ1YyAxMDA2NDQKLS0tIGEvY3B1L3BwYzR4eC91c2Jfb2hjaS5jCisrKyBiL2NwdS9wcGM0eHgvdXNiX29oY2kuYwpAQCAtMTYwMCw5ICsxNjAwLDkgQEAKIAlnb2hjaS5zbGVlcGluZyA9IDA7CiAJZ29oY2kuaXJxID0gLTE7CiAjaWYgZGVmaW5lZChDT05GSUdfNDQwRVApCi0JZ29oY2kucmVncyA9IChzdHJ1Y3Qgb2hjaV9yZWdzICopKENGR19QRVJJUEhFUkFMX0JBU0UgfCAweDEwMDApOwotI2VsaWYgZGVmaW5lZChDT05GSUdfNDQwRVBYKSB8fCBkZWZpbmVkKENGR19VU0JfSE9TVCkKLQlnb2hjaS5yZWdzID0gKHN0cnVjdCBvaGNpX3JlZ3MgKikoQ0ZHX1VTQl9IT1NUKTsKKwlnb2hjaS5yZWdzID0gKHN0cnVjdCBvaGNpX3JlZ3MgKikoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgfCAweDEwMDApOworI2VsaWYgZGVmaW5lZChDT05GSUdfNDQwRVBYKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfVVNCX0hPU1QpCisJZ29oY2kucmVncyA9IChzdHJ1Y3Qgb2hjaV9yZWdzICopKENPTkZJR19TWVNfVVNCX0hPU1QpOwogI2VuZGlmCiAKIAlnb2hjaS5mbGFncyA9IDA7CmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4L3VzYmRldi5oIGIvY3B1L3BwYzR4eC91c2JkZXYuaAppbmRleCAzNDQ2ZDk4Li5lZjZhMmRhIDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4L3VzYmRldi5oCisrKyBiL2NwdS9wcGM0eHgvdXNiZGV2LmgKQEAgLTEsMzEgKzEsMzEgQEAKICNpbmNsdWRlIDxjb25maWcuaD4KIAogLypDb21tb24gUmVnaXN0ZXJzKi8KLSNkZWZpbmUgVVNCMkQwX0lOVFJJTl8xNiAgIChDRkdfVVNCX0RFVklDRSB8IDB4MTAwKQotI2RlZmluZSBVU0IyRDBfUE9XRVJfOCAgICAgKENGR19VU0JfREVWSUNFIHwgMHgxMDIpCi0jZGVmaW5lIFVTQjJEMF9GQUREUl84ICAgICAoQ0ZHX1VTQl9ERVZJQ0UgfCAweDEwMykKLSNkZWZpbmUgVVNCMkQwX0lOVFJJTkVfMTYgIChDRkdfVVNCX0RFVklDRSB8IDB4MTA0KQotI2RlZmluZSBVU0IyRDBfSU5UUk9VVF8xNiAgKENGR19VU0JfREVWSUNFIHwgMHgxMDYpCi0jZGVmaW5lIFVTQjJEMF9JTlRSVVNCRV84ICAoQ0ZHX1VTQl9ERVZJQ0UgfCAweDEwOCkKLSNkZWZpbmUgVVNCMkQwX0lOVFJVU0JfOCAgIChDRkdfVVNCX0RFVklDRSB8IDB4MTA5KQotI2RlZmluZSBVU0IyRDBfSU5UUk9VVEVfMTYgKENGR19VU0JfREVWSUNFIHwgMHgxMGEpCi0jZGVmaW5lIFVTQjJEMF9UU1RNT0RFXzggICAoQ0ZHX1VTQl9ERVZJQ0UgfCAweDEwYykKLSNkZWZpbmUgVVNCMkQwX0lOREVYXzggICAgIChDRkdfVVNCX0RFVklDRSB8IDB4MTBkKQotI2RlZmluZSBVU0IyRDBfRlJBTUVfMTYgICAgKENGR19VU0JfREVWSUNFIHwgMHgxMGUpCisjZGVmaW5lIFVTQjJEMF9JTlRSSU5fMTYgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMDApCisjZGVmaW5lIFVTQjJEMF9QT1dFUl84ICAgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMDIpCisjZGVmaW5lIFVTQjJEMF9GQUREUl84ICAgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMDMpCisjZGVmaW5lIFVTQjJEMF9JTlRSSU5FXzE2ICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMDQpCisjZGVmaW5lIFVTQjJEMF9JTlRST1VUXzE2ICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMDYpCisjZGVmaW5lIFVTQjJEMF9JTlRSVVNCRV84ICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMDgpCisjZGVmaW5lIFVTQjJEMF9JTlRSVVNCXzggICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMDkpCisjZGVmaW5lIFVTQjJEMF9JTlRST1VURV8xNiAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMGEpCisjZGVmaW5lIFVTQjJEMF9UU1RNT0RFXzggICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMGMpCisjZGVmaW5lIFVTQjJEMF9JTkRFWF84ICAgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMGQpCisjZGVmaW5lIFVTQjJEMF9GUkFNRV8xNiAgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMGUpCiAKIC8qSW5kZXhlZCBSZWdpc3RlcnMqLwotI2RlZmluZSBVU0IyRDBfSU5DU1IwXzggICAgKENGR19VU0JfREVWSUNFIHwgMHgxMTApCi0jZGVmaW5lIFVTQjJEMF9JTkNTUl8xNiAgICAoQ0ZHX1VTQl9ERVZJQ0UgfCAweDExMCkKLSNkZWZpbmUgVVNCMkQwX0lOTUFYUF8xNiAgIChDRkdfVVNCX0RFVklDRSB8IDB4MTEyKQotI2RlZmluZSBVU0IyRDBfT1VUQ1NSXzE2ICAgKENGR19VU0JfREVWSUNFIHwgMHgxMTQpCi0jZGVmaW5lIFVTQjJEMF9PVVRNQVhQXzE2ICAoQ0ZHX1VTQl9ERVZJQ0UgfCAweDExNikKLSNkZWZpbmUgVVNCMkQwX09VVENPVU5UMF84IChDRkdfVVNCX0RFVklDRSB8IDB4MTFhKQotI2RlZmluZSBVU0IyRDBfT1VUQ09VTlRfMTYgKENGR19VU0JfREVWSUNFIHwgMHgxMWEpCisjZGVmaW5lIFVTQjJEMF9JTkNTUjBfOCAgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMTApCisjZGVmaW5lIFVTQjJEMF9JTkNTUl8xNiAgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMTApCisjZGVmaW5lIFVTQjJEMF9JTk1BWFBfMTYgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMTIpCisjZGVmaW5lIFVTQjJEMF9PVVRDU1JfMTYgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMTQpCisjZGVmaW5lIFVTQjJEMF9PVVRNQVhQXzE2ICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMTYpCisjZGVmaW5lIFVTQjJEMF9PVVRDT1VOVDBfOCAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMWEpCisjZGVmaW5lIFVTQjJEMF9PVVRDT1VOVF8xNiAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMWEpCiAKIC8qRklGT3MqLwotI2RlZmluZSBVU0IyRDBfRklGT18wIChDRkdfVVNCX0RFVklDRSB8IDB4MTIwKQotI2RlZmluZSBVU0IyRDBfRklGT18xIChDRkdfVVNCX0RFVklDRSB8IDB4MTI0KQotI2RlZmluZSBVU0IyRDBfRklGT18yIChDRkdfVVNCX0RFVklDRSB8IDB4MTI4KQotI2RlZmluZSBVU0IyRDBfRklGT18zIChDRkdfVVNCX0RFVklDRSB8IDB4MTJjKQorI2RlZmluZSBVU0IyRDBfRklGT18wIChDT05GSUdfU1lTX1VTQl9ERVZJQ0UgfCAweDEyMCkKKyNkZWZpbmUgVVNCMkQwX0ZJRk9fMSAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMjQpCisjZGVmaW5lIFVTQjJEMF9GSUZPXzIgKENPTkZJR19TWVNfVVNCX0RFVklDRSB8IDB4MTI4KQorI2RlZmluZSBVU0IyRDBfRklGT18zIChDT05GSUdfU1lTX1VTQl9ERVZJQ0UgfCAweDEyYykKIAogdm9pZCB1c2JfZGV2X2luaXQodm9pZCk7CmRpZmYgLS1naXQgYS9jcHUvcHhhL2NwdS5jIGIvY3B1L3B4YS9jcHUuYwppbmRleCAwZWU4MTgwLi5lODRjYjViIDEwMDY0NAotLS0gYS9jcHUvcHhhL2NwdS5jCisrKyBiL2NwdS9weGEvY3B1LmMKQEAgLTQ0LDcgKzQ0LDcgQEAKIAkgKiBzZXR1cCB1cCBzdGFja3MgaWYgbmVjZXNzYXJ5CiAJICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKLQlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOIC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSA0OworCUlSUV9TVEFDS19TVEFSVCA9IF9hcm1ib290X3N0YXJ0IC0gQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gNDsKIAlGSVFfU1RBQ0tfU1RBUlQgPSBJUlFfU1RBQ0tfU1RBUlQgLSBDT05GSUdfU1RBQ0tTSVpFX0lSUTsKICNlbmRpZgogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvY3B1L3B4YS9pMmMuYyBiL2NwdS9weGEvaTJjLmMKaW5kZXggZGY1MzdjNC4uMDgwNDJiZSAxMDA2NDQKLS0tIGEvY3B1L3B4YS9pMmMuYworKysgYi9jcHUvcHhhL2kyYy5jCkBAIC0zNyw3ICszNyw3IEBACiAjaWZkZWYgQ09ORklHX0hBUkRfSTJDCiAKIC8qCi0gKgktIENGR19JMkNfU1BFRUQKKyAqCS0gQ09ORklHX1NZU19JMkNfU1BFRUQKICAqCS0gSTJDX1BYQV9TTEFWRV9BRERSCiAgKi8KIApAQCAtNDgsNyArNDgsNyBAQAogLyojZGVmaW5lCURFQlVHX0kyQwkxCS8jIyMqIGFjdGl2YXRlIGxvY2FsIGRlYnVnZ2luZyBvdXRwdXQgICovCiAjZGVmaW5lIEkyQ19QWEFfU0xBVkVfQUREUgkweDEJLyogc2xhdmUgcHhhIHVuaXQgYWRkcmVzcyAgICAgICAgICAgKi8KIAotI2lmIChDRkdfSTJDX1NQRUVEID09IDQwMDAwMCkKKyNpZiAoQ09ORklHX1NZU19JMkNfU1BFRUQgPT0gNDAwMDAwKQogI2RlZmluZSBJMkNfSUNSX0lOSVQJKElDUl9GTSB8IElDUl9CRUlFIHwgSUNSX0lSRklFIHwgSUNSX0lURUlFIHwgSUNSX0dDRCB8IElDUl9TQ0xFKQogI2Vsc2UKICNkZWZpbmUgSTJDX0lDUl9JTklUCShJQ1JfQkVJRSB8IElDUl9JUkZJRSB8IElDUl9JVEVJRSB8IElDUl9HQ0QgfCBJQ1JfU0NMRSkKQEAgLTI1NCw3ICsyNTQsNyBAQAogCiB2b2lkIGkyY19pbml0KGludCBzcGVlZCwgaW50IHNsYXZlYWRkcikKIHsKLSNpZmRlZiBDRkdfSTJDX0lOSVRfQk9BUkQKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19JTklUX0JPQVJECiAJLyogY2FsbCBib2FyZCBzcGVjaWZpYyBpMmMgYnVzIHJlc2V0IHJvdXRpbmUgYmVmb3JlIGFjY2Vzc2luZyB0aGUgICAqLwogCS8qIGVudmlyb25tZW50LCB3aGljaCBtaWdodCBiZSBpbiBhIGNoaXAgb24gdGhhdCBidXMuIEZvciBkZXRhaWxzICAgKi8KIAkvKiBhYm91dCB0aGlzIHByb2JsZW0gc2VlIGRvYy9JMkNfRWRnZV9Db25kaXRpb25zLiAgICAgICAgICAgICAgICAgICovCkBAIC0zMjksNyArMzI5LDcgQEAKIAkgKiBzZW5kIG1lbW9yeSBhZGRyZXNzIGJ5dGVzOwogCSAqIGFsZW4gZGVmaW5lcyBob3cgbXVjaCBieXRlcyB3ZSBoYXZlIHRvIHNlbmQuCiAJICovCi0JLyphZGRyICY9ICgoMSA8PCBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyktMSk7ICovCisJLyphZGRyICY9ICgoMSA8PCBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMpLTEpOyAqLwogCWFkZHJfYnl0ZXNbMF0gPSAodTgpKChhZGRyID4+ICAwKSAmIDB4MDAwMDAwRkYpOwogCWFkZHJfYnl0ZXNbMV0gPSAodTgpKChhZGRyID4+ICA4KSAmIDB4MDAwMDAwRkYpOwogCWFkZHJfYnl0ZXNbMl0gPSAodTgpKChhZGRyID4+IDE2KSAmIDB4MDAwMDAwRkYpOwpkaWZmIC0tZ2l0IGEvY3B1L3B4YS9pbnRlcnJ1cHRzLmMgYi9jcHUvcHhhL2ludGVycnVwdHMuYwppbmRleCA4YjU3N2UxLi5lYzhmYjllIDEwMDY0NAotLS0gYS9jcHUvcHhhL2ludGVycnVwdHMuYworKysgYi9jcHUvcHhhL2ludGVycnVwdHMuYwpAQCAtNzgsMTAgKzc4LDEwIEBACiAKIAlpZiAodXNlYyA+PSAxMDAwKSB7CiAJCXRtbyA9IHVzZWMgLyAxMDAwOwotCQl0bW8gKj0gQ0ZHX0haOworCQl0bW8gKj0gQ09ORklHX1NZU19IWjsKIAkJdG1vIC89IDEwMDA7CiAJfSBlbHNlIHsKLQkJdG1vID0gdXNlYyAqIENGR19IWjsKKwkJdG1vID0gdXNlYyAqIENPTkZJR19TWVNfSFo7CiAJCXRtbyAvPSAoMTAwMCoxMDAwKTsKIAl9CiAKQEAgLTEwOSw2ICsxMDksNiBAQAogdWxvbmcgZ2V0X3RiY2xrICh2b2lkKQogewogCXVsb25nIHRiY2xrOwotCXRiY2xrID0gQ0ZHX0haOworCXRiY2xrID0gQ09ORklHX1NZU19IWjsKIAlyZXR1cm4gdGJjbGs7CiB9CmRpZmYgLS1naXQgYS9jcHUvcHhhL21tYy5jIGIvY3B1L3B4YS9tbWMuYwppbmRleCAxY2ZlZGU3Li5kNzM1YzhkIDEwMDY0NAotLS0gYS9jcHUvcHhhL21tYy5jCisrKyBiL2NwdS9weGEvbW1jLmMKQEAgLTIzNCw3ICsyMzQsNyBAQAogCW1tY19ibG9ja19zaXplID0gTU1DX0JMT0NLX1NJWkU7CiAJbW1jX2Jsb2NrX2FkZHJlc3MgPSB+KG1tY19ibG9ja19zaXplIC0gMSk7CiAKLQlzcmMgLT0gQ0ZHX01NQ19CQVNFOworCXNyYyAtPSBDT05GSUdfU1lTX01NQ19CQVNFOwogCWVuZCA9IHNyYyArIHNpemU7CiAJcGFydF9zdGFydCA9IH5tbWNfYmxvY2tfYWRkcmVzcyAmIHNyYzsKIAlwYXJ0X2VuZCA9IH5tbWNfYmxvY2tfYWRkcmVzcyAmIGVuZDsKQEAgLTMxMCw3ICszMTAsNyBAQAogCW1tY19ibG9ja19zaXplID0gTU1DX0JMT0NLX1NJWkU7CiAJbW1jX2Jsb2NrX2FkZHJlc3MgPSB+KG1tY19ibG9ja19zaXplIC0gMSk7CiAKLQlkc3QgLT0gQ0ZHX01NQ19CQVNFOworCWRzdCAtPSBDT05GSUdfU1lTX01NQ19CQVNFOwogCWVuZCA9IGRzdCArIHNpemU7CiAJcGFydF9zdGFydCA9IH5tbWNfYmxvY2tfYWRkcmVzcyAmIGRzdDsKIAlwYXJ0X2VuZCA9IH5tbWNfYmxvY2tfYWRkcmVzcyAmIGVuZDsKQEAgLTM3OSw3ICszNzksNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiB7CiAJaW50IG1tY19ibG9ja19zaXplID0gTU1DX0JMT0NLX1NJWkU7Ci0JdWxvbmcgc3JjID0gYmxrbnIgKiBtbWNfYmxvY2tfc2l6ZSArIENGR19NTUNfQkFTRTsKKwl1bG9uZyBzcmMgPSBibGtuciAqIG1tY19ibG9ja19zaXplICsgQ09ORklHX1NZU19NTUNfQkFTRTsKIAogCW1tY19yZWFkKHNyYywgKHVjaGFyICopIGRzdCwgYmxrY250ICogbW1jX2Jsb2NrX3NpemUpOwogCXJldHVybiBibGtjbnQ7CkBAIC02NTIsOCArNjUyLDggQEAKIAogaW50IG1tYzJpbmZvKHVsb25nIGFkZHIpCiB7Ci0JaWYgKGFkZHIgPj0gQ0ZHX01NQ19CQVNFCi0JICAgICYmIGFkZHIgPCBDRkdfTU1DX0JBU0UgKyAobW1jX2Rldi5sYmEgKiBtbWNfZGV2LmJsa3N6KSkgeworCWlmIChhZGRyID49IENPTkZJR19TWVNfTU1DX0JBU0UKKwkgICAgJiYgYWRkciA8IENPTkZJR19TWVNfTU1DX0JBU0UgKyAobW1jX2Rldi5sYmEgKiBtbWNfZGV2LmJsa3N6KSkgewogCQlyZXR1cm4gMTsKIAl9CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9jcHUvcHhhL3B4YWZiLmMgYi9jcHUvcHhhL3B4YWZiLmMKaW5kZXggYjJjYWE3My4uOTdlZmNiNiAxMDA2NDQKLS0tIGEvY3B1L3B4YS9weGFmYi5jCisrKyBiL2NwdS9weGEvcHhhZmIuYwpAQCAtNjAsMTEgKzYwLDExIEBACiAJdmxfcm93OgkJNDgwLAogCXZsX3dpZHRoOgk2NDAsCiAJdmxfaGVpZ2h0Ogk0ODAsCi0JdmxfY2xrcDoJQ0ZHX0hJR0gsCi0Jdmxfb2VwOgkJQ0ZHX0hJR0gsCi0JdmxfaHNwOgkJQ0ZHX0hJR0gsCi0JdmxfdnNwOgkJQ0ZHX0hJR0gsCi0JdmxfZHA6CQlDRkdfSElHSCwKKwl2bF9jbGtwOglDT05GSUdfU1lTX0hJR0gsCisJdmxfb2VwOgkJQ09ORklHX1NZU19ISUdILAorCXZsX2hzcDoJCUNPTkZJR19TWVNfSElHSCwKKwl2bF92c3A6CQlDT05GSUdfU1lTX0hJR0gsCisJdmxfZHA6CQlDT05GSUdfU1lTX0hJR0gsCiAJdmxfYnBpeDoJTENEX0JQUCwKIAl2bF9sYnc6CQkwLAogCXZsX3NwbHQ6CTAsCkBAIC05NCwxMSArOTQsMTEgQEAKIAl2bF9yb3c6CQk0ODAsCiAJdmxfd2lkdGg6CTE1NywKIAl2bF9oZWlnaHQ6CTExOCwKLQl2bF9jbGtwOglDRkdfSElHSCwKLQl2bF9vZXA6CQlDRkdfSElHSCwKLQl2bF9oc3A6CQlDRkdfSElHSCwKLQl2bF92c3A6CQlDRkdfSElHSCwKLQl2bF9kcDoJCUNGR19ISUdILAorCXZsX2Nsa3A6CUNPTkZJR19TWVNfSElHSCwKKwl2bF9vZXA6CQlDT05GSUdfU1lTX0hJR0gsCisJdmxfaHNwOgkJQ09ORklHX1NZU19ISUdILAorCXZsX3ZzcDoJCUNPTkZJR19TWVNfSElHSCwKKwl2bF9kcDoJCUNPTkZJR19TWVNfSElHSCwKIAl2bF9icGl4OglMQ0RfQlBQLAogCXZsX2xidzoJCTAsCiAJdmxfc3BsdDoJMSwKQEAgLTEyNywxMSArMTI3LDExIEBACiAJdmxfcm93OgkJMjQwLAogCXZsX3dpZHRoOgkxNjcsCiAJdmxfaGVpZ2h0OgkxMDksCi0JdmxfY2xrcDoJQ0ZHX0hJR0gsCi0Jdmxfb2VwOgkJQ0ZHX0hJR0gsCi0JdmxfaHNwOgkJQ0ZHX0hJR0gsCi0JdmxfdnNwOgkJQ0ZHX0hJR0gsCi0JdmxfZHA6CQlDRkdfSElHSCwKKwl2bF9jbGtwOglDT05GSUdfU1lTX0hJR0gsCisJdmxfb2VwOgkJQ09ORklHX1NZU19ISUdILAorCXZsX2hzcDoJCUNPTkZJR19TWVNfSElHSCwKKwl2bF92c3A6CQlDT05GSUdfU1lTX0hJR0gsCisJdmxfZHA6CQlDT05GSUdfU1lTX0hJR0gsCiAJdmxfYnBpeDoJTENEX0JQUCwKIAl2bF9sYnc6CQkxLAogCXZsX3NwbHQ6CTAsCmRpZmYgLS1naXQgYS9jcHUvcHhhL3N0YXJ0LlMgYi9jcHUvcHhhL3N0YXJ0LlMKaW5kZXggMjMwMDVlMi4uNjNhYjBjNSAxMDA2NDQKLS0tIGEvY3B1L3B4YS9zdGFydC5TCisrKyBiL2NwdS9weGEvc3RhcnQuUwpAQCAtMTM1LDggKzEzNSw4IEBACiAJLyogU2V0IHVwIHRoZSBzdGFjawkJCQkJCSAgICAqLwogc3RhY2tfc2V0dXA6CiAJbGRyCXIwLCBfVEVYVF9CQVNFCQkvKiB1cHBlciAxMjggS2lCOiByZWxvY2F0ZWQgdWJvb3QgICAqLwotCXN1YglyMCwgcjAsICNDRkdfTUFMTE9DX0xFTiAvKiBtYWxsb2MgYXJlYQkJCSAgICAqLwotCXN1YglyMCwgcjAsICNDRkdfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8JCQkgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19NQUxMT0NfTEVOIC8qIG1hbGxvYyBhcmVhCQkJICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8JCQkgICAgKi8KICNpZmRlZiBDT05GSUdfVVNFX0lSUQogCXN1YglyMCwgcjAsICMoQ09ORklHX1NUQUNLU0laRV9JUlErQ09ORklHX1NUQUNLU0laRV9GSVEpCiAjZW5kaWYgLyogQ09ORklHX1VTRV9JUlEgKi8KQEAgLTE5MSwyMCArMTkxLDIwIEBACiAKIC8qIENsb2NrIE1hbmFnZXIgUmVnaXN0ZXJzCQkJCQkJICAgICovCiAjaWZkZWYgQ09ORklHX0NQVV9NT05BSEFOUwotIyBpZm5kZWYgQ0ZHX01PTkFIQU5TX1JVTl9NT0RFX09TQ19SQVRJTwotIyAgZXJyb3IgIllvdSBoYXZlIHRvIGRlZmluZSBDRkdfTU9OQUhBTlNfUlVOX01PREVfT1NDX1JBVElPISEiCi0jIGVuZGlmIC8qICFDRkdfTU9OQUhBTlNfUlVOX01PREVfT1NDX1JBVElPICovCi0jIGlmbmRlZiBDRkdfTU9OQUhBTlNfVFVSQk9fUlVOX01PREVfUkFUSU8KLSMgIGRlZmluZSBDRkdfTU9OQUhBTlNfVFVSQk9fUlVOX01PREVfUkFUSU8gMHgxCi0jIGVuZGlmIC8qICFDRkdfTU9OQUhBTlNfVFVSQk9fUlVOX01PREVfUkFUSU8gKi8KKyMgaWZuZGVmIENPTkZJR19TWVNfTU9OQUhBTlNfUlVOX01PREVfT1NDX1JBVElPCisjICBlcnJvciAiWW91IGhhdmUgdG8gZGVmaW5lIENPTkZJR19TWVNfTU9OQUhBTlNfUlVOX01PREVfT1NDX1JBVElPISEiCisjIGVuZGlmIC8qICFDT05GSUdfU1lTX01PTkFIQU5TX1JVTl9NT0RFX09TQ19SQVRJTyAqLworIyBpZm5kZWYgQ09ORklHX1NZU19NT05BSEFOU19UVVJCT19SVU5fTU9ERV9SQVRJTworIyAgZGVmaW5lIENPTkZJR19TWVNfTU9OQUhBTlNfVFVSQk9fUlVOX01PREVfUkFUSU8gMHgxCisjIGVuZGlmIC8qICFDT05GSUdfU1lTX01PTkFIQU5TX1RVUkJPX1JVTl9NT0RFX1JBVElPICovCiAjZWxzZSAvKiAhQ09ORklHX0NQVV9NT05BSEFOUyAqLwotI2lmZGVmIENGR19DUFVTUEVFRAorI2lmZGVmIENPTkZJR19TWVNfQ1BVU1BFRUQKIENDX0JBU0U6CS53b3JkCTB4NDEzMDAwMDAKICNkZWZpbmUgQ0NDUgkweDAwCi1jcHVzcGVlZDoJLndvcmQJQ0ZHX0NQVVNQRUVECi0jZWxzZSAvKiAhQ0ZHX0NQVVNQRUVEICovCi0jZXJyb3IgIllvdSBoYXZlIHRvIGRlZmluZSBDRkdfQ1BVU1BFRUQhISIKLSNlbmRpZiAvKiBDRkdfQ1BVU1BFRUQgKi8KK2NwdXNwZWVkOgkud29yZAlDT05GSUdfU1lTX0NQVVNQRUVECisjZWxzZSAvKiAhQ09ORklHX1NZU19DUFVTUEVFRCAqLworI2Vycm9yICJZb3UgaGF2ZSB0byBkZWZpbmUgQ09ORklHX1NZU19DUFVTUEVFRCEhIgorI2VuZGlmIC8qIENPTkZJR19TWVNfQ1BVU1BFRUQgKi8KICNlbmRpZiAvKiBDT05GSUdfQ1BVX01PTkFIQU5TICovCiAKIAkvKiB0YWtlcyBjYXJlIHRoZSBDUDE1IHVwZGF0ZSBoYXMgdGFrZW4gcGxhY2UgKi8KQEAgLTI0NSwxMCArMjQ1LDEwIEBACiAJLyogc2V0IGNsb2NrIHNwZWVkICovCiAjaWZkZWYgQ09ORklHX0NQVV9NT05BSEFOUwogCWxkcglyMCwgPUFDQ1IKLQlsZHIJcjEsID0oKChDRkdfTU9OQUhBTlNfVFVSQk9fUlVOX01PREVfUkFUSU88PDgpICYgQUNDUl9YTl9NQVNLKSB8IChDRkdfTU9OQUhBTlNfUlVOX01PREVfT1NDX1JBVElPICYgQUNDUl9YTF9NQVNLKSkKKwlsZHIJcjEsID0oKChDT05GSUdfU1lTX01PTkFIQU5TX1RVUkJPX1JVTl9NT0RFX1JBVElPPDw4KSAmIEFDQ1JfWE5fTUFTSykgfCAoQ09ORklHX1NZU19NT05BSEFOU19SVU5fTU9ERV9PU0NfUkFUSU8gJiBBQ0NSX1hMX01BU0spKQogCXN0cglyMSwgW3IwXQogI2Vsc2UgLyogIUNPTkZJR19DUFVfTU9OQUhBTlMgKi8KLSNpZmRlZiBDRkdfQ1BVU1BFRUQKKyNpZmRlZiBDT05GSUdfU1lTX0NQVVNQRUVECiAJbGRyCXIwLCBDQ19CQVNFCiAJbGRyCXIxLCBjcHVzcGVlZAogCXN0cglyMSwgW3IwLCAjQ0NDUl0KQEAgLTI1Nyw3ICsyNTcsNyBAQAogCiBzZXRzcGVlZF9kb25lOgogCi0jZW5kaWYgLyogQ0ZHX0NQVVNQRUVEICovCisjZW5kaWYgLyogQ09ORklHX1NZU19DUFVTUEVFRCAqLwogI2VuZGlmIC8qIENPTkZJR19DUFVfTU9OQUhBTlMgKi8KIAogCS8qCkBAIC0zMzYsOCArMzM2LDggQEAKIAlhZGQJcjgsIHNwLCAjU19QQwogCiAJbGRyCXIyLCBfYXJtYm9vdF9zdGFydAotCXN1YglyMiwgcjIsICMoQ09ORklHX1NUQUNLU0laRStDRkdfTUFMTE9DX0xFTikKLQlzdWIJcjIsIHIyLCAjKENGR19HQkxfREFUQV9TSVpFKzgpCUAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCisJc3ViCXIyLCByMiwgIyhDT05GSUdfU1RBQ0tTSVpFK0NPTkZJR19TWVNfTUFMTE9DX0xFTikKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KQlAIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjawogCWxkbWlhCXIyLCB7cjIgLSByNH0JCQkvKiBnZXQgcGMsIGNwc3IsIG9sZF9yMAkgICAgKi8KIAlhZGQJcjAsIHNwLCAjU19GUkFNRV9TSVpFCQkvKiByZXN0b3JlIHNwX1NWQwkgICAgKi8KIApAQCAtMzczLDggKzM3Myw4IEBACiAKIAkubWFjcm8gZ2V0X2JhZF9zdGFjawogCWxkcglyMTMsIF9hcm1ib290X3N0YXJ0CQlAIHNldHVwIG91ciBtb2RlIHN0YWNrCi0Jc3ViCXIxMywgcjEzLCAjKENPTkZJR19TVEFDS1NJWkUrQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIxMywgcjEzLCAjKENGR19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRStDT05GSUdfU1lTX01BTExPQ19MRU4pCisJc3ViCXIxMywgcjEzLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KSBAIHJlc2VydmVkIGEgY291cGxlIHNwb3RzIGluIGFib3J0IHN0YWNrCiAKIAlzdHIJbHIsIFtyMTNdCQkJQCBzYXZlIGNhbGxlciBsciAvIHNwc3IKIAltcnMJbHIsIHNwc3IKZGlmZiAtLWdpdCBhL2NwdS9weGEvdXNiLmMgYi9jcHUvcHhhL3VzYi5jCmluZGV4IGFhNmY0YjcuLmJkNzE4YTYgMTAwNjQ0Ci0tLSBhL2NwdS9weGEvdXNiLmMKKysrIGIvY3B1L3B4YS91c2IuYwpAQCAtMjMsNyArMjMsNyBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAKLSNpZiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSV9ORVcpICYmIGRlZmluZWQoQ0ZHX1VTQl9PSENJX0NQVV9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1VTQl9PSENJX05FVykgJiYgZGVmaW5lZChDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUKQogIyBpZiBkZWZpbmVkKENPTkZJR19DUFVfTU9OQUhBTlMpIHx8IGRlZmluZWQoQ09ORklHX1BYQTI3WCkKIAogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CkBAIC0xMDksNCArMTA5LDQgQEAKIH0KIAogIyBlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19DUFVfTU9OQUhBTlMpIHx8IGRlZmluZWQoQ09ORklHX1BYQTI3WCkgKi8KLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSSkgJiYgZGVmaW5lZChDRkdfVVNCX09IQ0lfQ1BVX0lOSVQpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfVVNCX09IQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVCkgKi8KZGlmZiAtLWdpdCBhL2NwdS9zM2M0NGIwL2ludGVycnVwdHMuYyBiL2NwdS9zM2M0NGIwL2ludGVycnVwdHMuYwppbmRleCBlZDc5NjQ4Li5lYjIzZTZhIDEwMDY0NAotLS0gYS9jcHUvczNjNDRiMC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L3MzYzQ0YjAvaW50ZXJydXB0cy5jCkBAIC04MCw3ICs4MCw3IEBACiAJdWxvbmcgdG1vOwogCiAJdG1vID0gdXNlYyAvIDEwMDA7Ci0JdG1vICo9IENGR19IWjsKKwl0bW8gKj0gQ09ORklHX1NZU19IWjsKIAl0bW8gLz0gODsKIAogCXRtbyArPSBnZXRfdGltZXIgKDApOwpAQCAtMTIwLDEwICsxMjAsMTAgQEAKIAogCWlmICh1c2VjID49IDEwMDApIHsKIAkJdG1vID0gdXNlYyAvIDEwMDA7Ci0JCXRtbyAqPSBDRkdfSFo7CisJCXRtbyAqPSBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gODsKIAl9IGVsc2UgewotCQl0bW8gPSB1c2VjICogQ0ZHX0haOworCQl0bW8gPSB1c2VjICogQ09ORklHX1NZU19IWjsKIAkJdG1vIC89ICgxMDAwKjgpOwogCX0KIApkaWZmIC0tZ2l0IGEvY3B1L3MzYzQ0YjAvc3RhcnQuUyBiL2NwdS9zM2M0NGIwL3N0YXJ0LlMKaW5kZXggMWQ4OGMxYy4uZjVhM2QzYSAxMDA2NDQKLS0tIGEvY3B1L3MzYzQ0YjAvc3RhcnQuUworKysgYi9jcHUvczNjNDRiMC9zdGFydC5TCkBAIC0xNTcsOCArMTU3LDggQEAKIAkvKiBTZXQgdXAgdGhlIHN0YWNrCQkJCQkJICAgICovCiBzdGFja19zZXR1cDoKIAlsZHIJcjAsIF9URVhUX0JBU0UJCS8qIHVwcGVyIDEyOCBLaUI6IHJlbG9jYXRlZCB1Ym9vdCAgICovCi0Jc3ViCXIwLCByMCwgI0NGR19NQUxMT0NfTEVOCS8qIG1hbGxvYyBhcmVhICAgICAgICAgICAgICAgICAgICAgICovCi0Jc3ViCXIwLCByMCwgI0NGR19HQkxfREFUQV9TSVpFIC8qIGJkaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfTUFMTE9DX0xFTgkvKiBtYWxsb2MgYXJlYSAgICAgICAgICAgICAgICAgICAgICAqLworCXN1YglyMCwgcjAsICNDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgLyogYmRpbmZvICAgICAgICAgICAgICAgICAgICAgICAgKi8KICNpZmRlZiBDT05GSUdfVVNFX0lSUQogCXN1YglyMCwgcjAsICMoQ09ORklHX1NUQUNLU0laRV9JUlErQ09ORklHX1NUQUNLU0laRV9GSVEpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NwdS9zYTExMDAvY3B1LmMgYi9jcHUvc2ExMTAwL2NwdS5jCmluZGV4IGYxYmQ2NDQuLmJiNGU1YTEgMTAwNjQ0Ci0tLSBhL2NwdS9zYTExMDAvY3B1LmMKKysrIGIvY3B1L3NhMTEwMC9jcHUuYwpAQCAtNDMsNyArNDMsNyBAQAogCSAqIHNldHVwIHVwIHN0YWNrcyBpZiBuZWNlc3NhcnkKIAkgKi8KICNpZmRlZiBDT05GSUdfVVNFX0lSUQotCUlSUV9TVEFDS19TVEFSVCA9IF9hcm1ib290X3N0YXJ0IC0gQ0ZHX01BTExPQ19MRU4gLSBDRkdfR0JMX0RBVEFfU0laRSAtIDQ7CisJSVJRX1NUQUNLX1NUQVJUID0gX2FybWJvb3Rfc3RhcnQgLSBDT05GSUdfU1lTX01BTExPQ19MRU4gLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgLSA0OwogCUZJUV9TVEFDS19TVEFSVCA9IElSUV9TVEFDS19TVEFSVCAtIENPTkZJR19TVEFDS1NJWkVfSVJROwogI2VuZGlmCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9jcHUvc2ExMTAwL2ludGVycnVwdHMuYyBiL2NwdS9zYTExMDAvaW50ZXJydXB0cy5jCmluZGV4IDUzZjI3NDUuLjJlZmYwNDUgMTAwNjQ0Ci0tLSBhL2NwdS9zYTExMDAvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9zYTExMDAvaW50ZXJydXB0cy5jCkBAIC03NCwxMCArNzQsMTAgQEAKIAogCWlmICh1c2VjID49IDEwMDApIHsKIAkJdG1vID0gdXNlYyAvIDEwMDA7Ci0JCXRtbyAqPSBDRkdfSFo7CisJCXRtbyAqPSBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gMTAwMDsKIAl9IGVsc2UgewotCQl0bW8gPSB1c2VjICogQ0ZHX0haOworCQl0bW8gPSB1c2VjICogQ09ORklHX1NZU19IWjsKIAkJdG1vIC89ICgxMDAwKjEwMDApOwogCX0KIApAQCAtMTA2LDYgKzEwNiw2IEBACiB7CiAJdWxvbmcgdGJjbGs7CiAKLQl0YmNsayA9IENGR19IWjsKKwl0YmNsayA9IENPTkZJR19TWVNfSFo7CiAJcmV0dXJuIHRiY2xrOwogfQpkaWZmIC0tZ2l0IGEvY3B1L3NhMTEwMC9zdGFydC5TIGIvY3B1L3NhMTEwMC9zdGFydC5TCmluZGV4IDkxMDY1MGQuLjI3OGM1MDAgMTAwNjQ0Ci0tLSBhL2NwdS9zYTExMDAvc3RhcnQuUworKysgYi9jcHUvc2ExMTAwL3N0YXJ0LlMKQEAgLTE0Nyw4ICsxNDcsOCBAQAogCS8qIFNldCB1cCB0aGUgc3RhY2sJCQkJCQkgICAgKi8KIHN0YWNrX3NldHVwOgogCWxkcglyMCwgX1RFWFRfQkFTRQkJLyogdXBwZXIgMTI4IEtpQjogcmVsb2NhdGVkIHVib290ICAgKi8KLQlzdWIJcjAsIHIwLCAjQ0ZHX01BTExPQ19MRU4JLyogbWFsbG9jIGFyZWEgICAgICAgICAgICAgICAgICAgICAgKi8KLQlzdWIJcjAsIHIwLCAjQ0ZHX0dCTF9EQVRBX1NJWkUgLyogYmRpbmZvICAgICAgICAgICAgICAgICAgICAgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19NQUxMT0NfTEVOCS8qIG1hbGxvYyBhcmVhICAgICAgICAgICAgICAgICAgICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8gICAgICAgICAgICAgICAgICAgICAgICAqLwogI2lmZGVmIENPTkZJR19VU0VfSVJRCiAJc3ViCXIwLCByMCwgIyhDT05GSUdfU1RBQ0tTSVpFX0lSUStDT05GSUdfU1RBQ0tTSVpFX0ZJUSkKICNlbmRpZgpAQCAtMTk2LDcgKzE5Niw3IEBACiBQV1JfQkFTRToJCS53b3JkICAgMHg5MDAyMDAwMAogI2RlZmluZSBQU1BSICAgIDB4MDgKICNkZWZpbmUgUFBDUiAgICAweDE0Ci1jcHVzcGVlZDoJCS53b3JkICAgQ0ZHX0NQVVNQRUVECitjcHVzcGVlZDoJCS53b3JkICAgQ09ORklHX1NZU19DUFVTUEVFRAogCiAKIGNwdV9pbml0X2NyaXQ6CkBAIC0yODgsOCArMjg4LDggQEAKIAlhZGQgICAgIHI4LCBzcCwgI1NfUEMKIAogCWxkcglyMiwgX2FybWJvb3Rfc3RhcnQKLQlzdWIJcjIsIHIyLCAjKENPTkZJR19TVEFDS1NJWkUrQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIyLCByMiwgIyhDRkdfR0JMX0RBVEFfU0laRSs4KSAgQCBzZXQgYmFzZSAyIHdvcmRzIGludG8gYWJvcnQgc3RhY2sKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TVEFDS1NJWkUrQ09ORklHX1NZU19NQUxMT0NfTEVOKQorCXN1YglyMiwgcjIsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKzgpICBAIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjawogCWxkbWlhCXIyLCB7cjIgLSByNH0gICAgICAgICAgICAgICAgICAgQCBnZXQgcGMsIGNwc3IsIG9sZF9yMAogCWFkZAlyMCwgc3AsICNTX0ZSQU1FX1NJWkUJCUAgcmVzdG9yZSBzcF9TVkMKIApAQCAtMzIxLDggKzMyMSw4IEBACiAKIAkubWFjcm8gZ2V0X2JhZF9zdGFjawogCWxkcglyMTMsIF9hcm1ib290X3N0YXJ0CQlAIHNldHVwIG91ciBtb2RlIHN0YWNrCi0Jc3ViCXIxMywgcjEzLCAjKENPTkZJR19TVEFDS1NJWkUrQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIxMywgcjEzLCAjKENGR19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRStDT05GSUdfU1lTX01BTExPQ19MRU4pCisJc3ViCXIxMywgcjEzLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KSBAIHJlc2VydmVkIGEgY291cGxlIHNwb3RzIGluIGFib3J0IHN0YWNrCiAKIAlzdHIJbHIsIFtyMTNdCQkJQCBzYXZlIGNhbGxlciBsciAvIHNwc3IKIAltcnMJbHIsIHNwc3IKZGlmZiAtLWdpdCBhL2NwdS9zaDIvc3RhcnQuUyBiL2NwdS9zaDIvc3RhcnQuUwppbmRleCBjNGZhNjg4Li4wYWI4NjdkIDEwMDY0NAotLS0gYS9jcHUvc2gyL3N0YXJ0LlMKKysrIGIvY3B1L3NoMi9zdGFydC5TCkBAIC03Myw2ICs3Myw2IEBACiAuX3JlbG9jX2RzdF9lbmQ6CS5sb25nCXJlbG9jX2RzdF9lbmQKIC5fYnNzX3N0YXJ0OgkJLmxvbmcJYnNzX3N0YXJ0CiAuX2Jzc19lbmQ6CQkubG9uZwlic3NfZW5kCi0uX2dkX2luaXQ6CQkubG9uZwkoX3N0YXJ0IC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0uX3N0YWNrX2luaXQ6CS5sb25nCShfc3RhcnQgLSBDRkdfR0JMX0RBVEFfU0laRSAtIENGR19NQUxMT0NfTEVOIC0gMTYpCisuX2dkX2luaXQ6CQkubG9uZwkoX3N0YXJ0IC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorLl9zdGFja19pbml0OgkubG9uZwkoX3N0YXJ0IC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gMTYpCiAuX3NoX2dlbmVyaWNfaW5pdDoJLmxvbmcJc2hfZ2VuZXJpY19pbml0CmRpZmYgLS1naXQgYS9jcHUvc2gyL3RpbWUuYyBiL2NwdS9zaDIvdGltZS5jCmluZGV4IGQ2ZWIwY2IuLmZjYmI5MjEgMTAwNjQ0Ci0tLSBhL2NwdS9zaDIvdGltZS5jCisrKyBiL2NwdS9zaDIvdGltZS5jCkBAIC0xMDEsMTEgKzEwMSwxMSBAQAogewogCXVuc2lnbmVkIGludCBzdGFydCA9IGdldF90aW1lcigwKTsKIAotCXdoaWxlIChnZXRfdGltZXIoKHVsb25nKSBzdGFydCkgPCAodXNlYyAqIChDRkdfSFogLyAxMDAwMDAwKSkpCisJd2hpbGUgKGdldF90aW1lcigodWxvbmcpIHN0YXJ0KSA8ICh1c2VjICogKENPTkZJR19TWVNfSFogLyAxMDAwMDAwKSkpCiAJCWNvbnRpbnVlOwogfQogCiB1bnNpZ25lZCBsb25nIGdldF90YmNsayh2b2lkKQogewotCXJldHVybiBDRkdfSFo7CisJcmV0dXJuIENPTkZJR19TWVNfSFo7CiB9CmRpZmYgLS1naXQgYS9jcHUvc2gzL3N0YXJ0LlMgYi9jcHUvc2gzL3N0YXJ0LlMKaW5kZXggZWUwYmNkZi4uYzBmODMyNiAxMDA2NDQKLS0tIGEvY3B1L3NoMy9zdGFydC5TCisrKyBiL2NwdS9zaDMvc3RhcnQuUwpAQCAtNzIsNiArNzIsNiBAQAogLl9yZWxvY19kc3RfZW5kOgkubG9uZwlyZWxvY19kc3RfZW5kCiAuX2Jzc19zdGFydDoJCS5sb25nCWJzc19zdGFydAogLl9ic3NfZW5kOgkJLmxvbmcJYnNzX2VuZAotLl9nZF9pbml0OgkJLmxvbmcJKF9zdGFydCAtIENGR19HQkxfREFUQV9TSVpFKQotLl9zdGFja19pbml0OgkubG9uZwkoX3N0YXJ0IC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSBDRkdfTUFMTE9DX0xFTiAtIDE2KQorLl9nZF9pbml0OgkJLmxvbmcJKF9zdGFydCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKy5fc3RhY2tfaW5pdDoJLmxvbmcJKF9zdGFydCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTiAtIDE2KQogLl9zaF9nZW5lcmljX2luaXQ6CS5sb25nCXNoX2dlbmVyaWNfaW5pdApkaWZmIC0tZ2l0IGEvY3B1L3NoMy90aW1lLmMgYi9jcHUvc2gzL3RpbWUuYwppbmRleCAwYzI3M2RkLi5hYWIzNjU5IDEwMDY0NAotLS0gYS9jcHUvc2gzL3RpbWUuYworKysgYi9jcHUvc2gzL3RpbWUuYwpAQCAtOTEsNyArOTEsNyBAQAogdm9pZCB1ZGVsYXkodW5zaWduZWQgbG9uZyB1c2VjKQogewogCXVuc2lnbmVkIGludCBzdGFydCA9IGdldF90aW1lcigwKTsKLQl1bnNpZ25lZCBpbnQgZW5kID0gc3RhcnQgKyAodXNlYyAqICgoQ0ZHX0haICsgNTAwMDAwKSAvIDEwMDAwMDApKTsKKwl1bnNpZ25lZCBpbnQgZW5kID0gc3RhcnQgKyAodXNlYyAqICgoQ09ORklHX1NZU19IWiArIDUwMDAwMCkgLyAxMDAwMDAwKSk7CiAKIAl3aGlsZSAoZ2V0X3RpbWVyKDApIDwgZW5kKQogCQljb250aW51ZTsKQEAgLTk5LDUgKzk5LDUgQEAKIAogdW5zaWduZWQgbG9uZyBnZXRfdGJjbGsodm9pZCkKIHsKLQlyZXR1cm4gQ0ZHX0haOworCXJldHVybiBDT05GSUdfU1lTX0haOwogfQpkaWZmIC0tZ2l0IGEvY3B1L3NoNC9zdGFydC5TIGIvY3B1L3NoNC9zdGFydC5TCmluZGV4IGE2OGViYjguLjcxMWFlNjYgMTAwNjQ0Ci0tLSBhL2NwdS9zaDQvc3RhcnQuUworKysgYi9jcHUvc2g0L3N0YXJ0LlMKQEAgLTY5LDYgKzY5LDYgQEAKIC5fcmVsb2NfZHN0X2VuZDoJLmxvbmcJcmVsb2NfZHN0X2VuZAogLl9ic3Nfc3RhcnQ6CQkubG9uZwlic3Nfc3RhcnQKIC5fYnNzX2VuZDoJCS5sb25nCWJzc19lbmQKLS5fZ2RfaW5pdDoJCS5sb25nCShfc3RhcnQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLS5fc3RhY2tfaW5pdDoJCS5sb25nCShfc3RhcnQgLSBDRkdfR0JMX0RBVEFfU0laRSAtIENGR19NQUxMT0NfTEVOIC0gMTYpCisuX2dkX2luaXQ6CQkubG9uZwkoX3N0YXJ0IC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorLl9zdGFja19pbml0OgkJLmxvbmcJKF9zdGFydCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTiAtIDE2KQogLl9zaF9nZW5lcmljX2luaXQ6CS5sb25nCXNoX2dlbmVyaWNfaW5pdApkaWZmIC0tZ2l0IGEvY3B1L3NoNC90aW1lLmMgYi9jcHUvc2g0L3RpbWUuYwppbmRleCA1ZjhhM2EwLi43N2UwYWUyIDEwMDY0NAotLS0gYS9jcHUvc2g0L3RpbWUuYworKysgYi9jcHUvc2g0L3RpbWUuYwpAQCAtODYsNyArODYsNyBAQAogdm9pZCB1ZGVsYXkgKHVuc2lnbmVkIGxvbmcgdXNlYykKIHsKIAl1bnNpZ25lZCBpbnQgc3RhcnQgPSBnZXRfdGltZXIgKDApOwotCXVuc2lnbmVkIGludCBlbmQgPSBzdGFydCArICh1c2VjICogKChDRkdfSFogKyA1MDAwMDApIC8gMTAwMDAwMCkpOworCXVuc2lnbmVkIGludCBlbmQgPSBzdGFydCArICh1c2VjICogKChDT05GSUdfU1lTX0haICsgNTAwMDAwKSAvIDEwMDAwMDApKTsKIAogCXdoaWxlIChnZXRfdGltZXIgKDApIDwgZW5kKQogCQljb250aW51ZTsKQEAgLTk0LDUgKzk0LDUgQEAKIAogdW5zaWduZWQgbG9uZyBnZXRfdGJjbGsgKHZvaWQpCiB7Ci0JcmV0dXJuIENGR19IWjsKKwlyZXR1cm4gQ09ORklHX1NZU19IWjsKIH0KZGlmZiAtLWdpdCBhL2Rpc2svcGFydC5jIGIvZGlzay9wYXJ0LmMKaW5kZXggZTJiZjRhYi4uZTM1M2NlZSAxMDA2NDQKLS0tIGEvZGlzay9wYXJ0LmMKKysrIGIvZGlzay9wYXJ0LmMKQEAgLTE4Myw3ICsxODMsNyBAQAogCQlpZiAoZGV2X2Rlc2MtPmxiYTQ4KQogCQkJcHJpbnRmICgiICAgICAgICAgICAgU3VwcG9ydHMgNDgtYml0IGFkZHJlc3NpbmdcbiIpOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfNjRCSVRfTEJBKSAmJiBkZWZpbmVkKENGR182NEJJVF9WU1BSSU5URikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfNjRCSVRfTEJBKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYpCiAJCXByaW50ZiAoIiAgICAgICAgICAgIENhcGFjaXR5OiAlbGQuJWxkIE1CID0gJWxkLiVsZCBHQiAoJXFkIHggJWxkKVxuIiwKIAkJCW1iX3F1b3QsIG1iX3JlbSwKIAkJCWdiX3F1b3QsIGdiX3JlbSwKZGlmZiAtLWdpdCBhL2Rpc2svcGFydF9lZmkuYyBiL2Rpc2svcGFydF9lZmkuYwppbmRleCA5NzkwMTlhLi5jYzE4OGVlIDEwMDY0NAotLS0gYS9kaXNrL3BhcnRfZWZpLmMKKysrIGIvZGlzay9wYXJ0X2VmaS5jCkBAIC0yMiwxMCArMjIsMTAgQEAKICAqLwogCiAvKgotICogUHJvYmxlbXMgd2l0aCBDRkdfNjRCSVRfTEJBOgorICogUHJvYmxlbXMgd2l0aCBDT05GSUdfU1lTXzY0QklUX0xCQToKICAqCiAgKiBzdHJ1Y3QgZGlza19wYXJ0aXRpb24uc3RhcnQgaW4gaW5jbHVkZS9wYXJ0LmggaXMgc2l6ZWQgYXMgdWxvbmcuCi0gKiBXaGVuIENGR182NEJJVF9MQkEgaXMgYWN0aXZhdGVkLCBsYmFpbnRfdCBjaGFuZ2VzIGZyb20gdWxvbmcgdG8gdWludDY0X3QuCisgKiBXaGVuIENPTkZJR19TWVNfNjRCSVRfTEJBIGlzIGFjdGl2YXRlZCwgbGJhaW50X3QgY2hhbmdlcyBmcm9tIHVsb25nIHRvIHVpbnQ2NF90LgogICogRm9yIG5vdywgaXQgaXMgY2FzdCBiYWNrIHRvIHVsb25nIGF0IGFzc2lnbm1lbnQuCiAgKgogICogVGhpcyBsaW1pdHMgdGhlIG1heGltdW0gc2l6ZSBvZiBhZGRyZXNzYWJsZSBzdG9yYWdlIHRvIDwgMiBUZXJyYSBCeXRlcwpkaWZmIC0tZ2l0IGEvZG9jL0kyQ19FZGdlX0NvbmRpdGlvbnMgYi9kb2MvSTJDX0VkZ2VfQ29uZGl0aW9ucwppbmRleCA0NGQzNDc4Li5mNGE5OTY4IDEwMDY0NAotLS0gYS9kb2MvSTJDX0VkZ2VfQ29uZGl0aW9ucworKysgYi9kb2MvSTJDX0VkZ2VfQ29uZGl0aW9ucwpAQCAtMzMsNyArMzMsNyBAQAogVGhpcyByZXNldCBlZGdlIGNvbmRpdGlvbiBjb3VsZCBwb3NzaWJseSBiZSBwcmVzZW50IGluIGV2ZXJ5IEkyQwogY29udHJvbGxlciBhbmQgZGV2aWNlIGF2YWlsYWJsZS4gRm9yIGJvYXJkcyB3aGVyZSBhIEkyQyBidXMgcmVzZXQKIGZ1bmN0aW9uIGNhbiBiZSBpbXBsZW1lbnRlZCBhIGkyY19pbml0X2JvYXJkKCkgZnVuY3Rpb24gc2hvdWxkIGJlCi1wcm92aWRlZCBhbmQgZW5hYmxlZCBieSAjZGVmaW5lJ2luZyBDRkdfSTJDX0lOSVRfQk9BUkQgaW4geW91cgorcHJvdmlkZWQgYW5kIGVuYWJsZWQgYnkgI2RlZmluZSdpbmcgQ09ORklHX1NZU19JMkNfSU5JVF9CT0FSRCBpbiB5b3VyCiBib2FyZCdzIGNvbmZpZyBmaWxlLiBOb3RlIHRoYXQgdGhpcyBpcyBOT1QgbmVjZXNzYXJ5IHdoZW4gdXNpbmcgdGhlCiBiaXQtYmFuZ2luZyBJMkMgZHJpdmVyIChjb21tb24vc29mdF9pMmMuYykgYXMgdGhpcyBhbHJlYWR5IGluY2x1ZGVzCiB0aGUgSTJDIGJ1cyByZXNldCBzZXF1ZW5jZS4KZGlmZiAtLWdpdCBhL2RvYy9SRUFETUUuSkZGUzIgYi9kb2MvUkVBRE1FLkpGRlMyCmluZGV4IGM1ZDY3ZmQuLmYwZTliYzEgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuSkZGUzIKKysrIGIvZG9jL1JFQURNRS5KRkZTMgpAQCAtMTIsNyArMTIsNyBAQAogCiBJZiB5b3UgYm9vdCBmcm9tIGEgcGFydGl0aW9uIHdoaWNoIGlzIG1vdW50ZWQgd3JpdGFibGUsIGFuZCB5b3UKIHVwZGF0ZSB5b3VyIGJvb3QgZW52aXJvbm1lbnQgYnkgcmVwbGFjaW5nIHNpbmdsZSBmaWxlcyBvbiB0aGF0Ci1wYXJ0aXRpb24sIHlvdSBzaG91bGQgYWxzbyBkZWZpbmUgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTLiBTY2FubmluZworcGFydGl0aW9uLCB5b3Ugc2hvdWxkIGFsc28gZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfU09SVF9GUkFHTUVOVFMuIFNjYW5uaW5nCiB0aGUgSkZGUzIgZmlsZXN5c3RlbSB0YWtlcyAqbXVjaCogbG9uZ2VyIHdpdGggdGhpcyBmZWF0dXJlLCB0aG91Z2guCiBTb3J0aW5nIGlzIGRvbmUgd2hpbGUgaW5zZXJ0aW5nIGludG8gdGhlIGZyYWdtZW50IGxpc3QsIHdoaWNoIGlzCiBtb3JlIG9yIGxlc3MgYSBidWJibGUgc29ydC4gVGhhdCBhbGdvcml0aG0gaXMga25vd24gdG8gYmUgTyhuXjIpLApAQCAtMjQsMTYgKzI0LDE2IEBACiBwYXJ0aXRpb24gaW4gdGhlIGNvZGUpIGFuZCB5b3UgY2FuIGNoYW5nZSB3aGVyZSB0aGUgcGFydGl0aW9uIGlzIHdpdGgKIHR3byBkZWZpbmVzLgogCi1DRkdfSkZGUzJfRklSU1RfQkFOSworQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCiAJZGVmaW5lZCB0aGUgZmlyc3QgZmxhc2ggYmFuayB0byB1c2UKIAotQ0ZHX0pGRlMyX0ZJUlNUX1NFQ1RPUgorQ09ORklHX1NZU19KRkZTMl9GSVJTVF9TRUNUT1IKIAlkZWZpbmVzIHRoZSBmaXJzdCBzZWN0b3IgdG8gdXNlCiAKIAotVGhlIHNlY29uZCB3YXkgaXMgdG8gZGVmaW5lIENGR19KRkZTX0NVU1RPTV9QQVJUIGFuZCBpbXBsZW1lbnQgdGhlCitUaGUgc2Vjb25kIHdheSBpcyB0byBkZWZpbmUgQ09ORklHX1NZU19KRkZTX0NVU1RPTV9QQVJUIGFuZCBpbXBsZW1lbnQgdGhlCiBqZmZzMl9wYXJ0X2luZm8oaW50IHBhcnRfbnVtKSBmdW5jdGlvbiBpbiB5b3VyIGJvYXJkIHNwZWNpZmljIGZpbGVzLgotSW4gdGhpcyBtb2RlIENGR19KRkZTMl9GSVJTVF9CQU5LIGFuZCBDRkdfSkZGUzJfRklSU1RfU0VDVE9SIGlzIG5vdAorSW4gdGhpcyBtb2RlIENPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOSyBhbmQgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9TRUNUT1IgaXMgbm90CiB1c2VkLgogCiBUaGUgaW5wdXQgaXMgYSBwYXJ0aXRpb24gbnVtYmVyIHN0YXJ0aW5nIHdpdGggMC4KQEAgLTQxLDcgKzQxLDcgQEAKIAogRXggamZmczJfcGFydF9pbmZvKCkgZm9yIG9uZSBwYXJ0aXRpb24uCiAtLS0KLSNpZiBkZWZpbmVkIENGR19KRkZTX0NVU1RPTV9QQVJUCisjaWYgZGVmaW5lZCBDT05GSUdfU1lTX0pGRlNfQ1VTVE9NX1BBUlQKICNpbmNsdWRlIDxqZmZzMi9qZmZzMi5oPgogCiBzdGF0aWMgc3RydWN0IHBhcnRfaW5mbyBwYXJ0OwpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5KRkZTMl9OQU5EIGIvZG9jL1JFQURNRS5KRkZTMl9OQU5ECmluZGV4IGE4MzZkNTMuLjJiMzMyNmIgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuSkZGUzJfTkFORAorKysgYi9kb2MvUkVBRE1FLkpGRlMyX05BTkQKQEAgLTEzLDcgKzEzLDcgQEAKICNkZWZpbmUgQ09ORklHX0pGRlMyX05BTkRfU0laRSAyKjEwMjQqMTAyNAkvKiBzaXplIG9mIGpmZnMyIHBhcnRpdGlvbiAqLwogCiBJZiBtb3JlIHRoYW4gYSBzaW5nbGUgcGFydGl0aW9uIGlzIGRlc2lyZWQsIHRoZSB1c2VyIGNhbiBkZWZpbmUgYQotQ0ZHX0pGRlNfQ1VTVE9NX1BBUlQgbWFjcm8gYW5kIGltcGxlbWVudCBhCitDT05GSUdfU1lTX0pGRlNfQ1VTVE9NX1BBUlQgbWFjcm8gYW5kIGltcGxlbWVudCBhCiAKIAlzdHJ1Y3QgcGFydF9pbmZvKiBqZmZzMl9wYXJ0X2luZm8oaW50IHBhcnRfbnVtKQogCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLk1CWCBiL2RvYy9SRUFETUUuTUJYCmluZGV4IDY3OTIyOGUuLmM4ODlmZTkgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuTUJYCisrKyBiL2RvYy9SRUFETUUuTUJYCkBAIC0xLDQgKzEsNCBAQAotSU1QT1JUQU5UIE5PVEUgLSByZWFkIGJlZm9yZSBkZWZpbmluZyBDRkdfVVNFX09TQ0NMSyBpbiB5b3VyIGJvYXJkCitJTVBPUlRBTlQgTk9URSAtIHJlYWQgYmVmb3JlIGRlZmluaW5nIENPTkZJR19TWVNfVVNFX09TQ0NMSyBpbiB5b3VyIGJvYXJkCiAJCSBjb25maWcgZmlsZSEhIQogCiAKQEAgLTYyLDcgKzYyLDcgQEAKIHNlcmlhbCBwb3J0cyB0byBkbyBzby4KIAogCi1Zb3UgbWF5IGhhdmUgYSBsZWdpdGltYXRlIG5lZWQgdG8gZGVmaW5lIENGR19VU0VfT1NDQ0xLIGlmIHlvdXIKK1lvdSBtYXkgaGF2ZSBhIGxlZ2l0aW1hdGUgbmVlZCB0byBkZWZpbmUgQ09ORklHX1NZU19VU0VfT1NDQ0xLIGlmIHlvdXIKIE1CWDh4eCBib2FyZCBpcyB1c2luZyB0aGUgT1NDTSBjbG9ja2luZyBtb2RlLgogCiBZb3UgYmV0dGVyIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGhlcmUuCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLk1QQzg2NiBiL2RvYy9SRUFETUUuTVBDODY2CmluZGV4IGM4MjU2YTEuLjQ3MDdjYjcgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuTVBDODY2CisrKyBiL2RvYy9SRUFETUUuTVBDODY2CkBAIC00LDggKzQsOCBAQAogRm91ciBjb21waWxlLXRpbWUgY29uc3RhbnRzIGFyZSB1c2VkOgogCiAJQ09ORklHXzh4eF9PU0NMSyAgICAgICAgICAtIGlucHV0IHF1YXJ0eiBjbG9jawotCUNGR184eHhfQ1BVQ0xLX01JTiAgICAgICAgLSBtaW5pbXVtIGFsbG93ZWQgQ1BVIGNsb2NrCi0JQ0ZHXzh4eF9DUFVDTEtfTUFYICAgICAgICAtIG1heGltdW0gYWxsb3dlZCBDUFUgY2xvY2sKKwlDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUlOICAgICAgICAtIG1pbmltdW0gYWxsb3dlZCBDUFUgY2xvY2sKKwlDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUFYICAgICAgICAtIG1heGltdW0gYWxsb3dlZCBDUFUgY2xvY2sKIAlDT05GSUdfOHh4X0NQVUNMS19ERUZBVUxUIC0gZGVmYXVsdCBDUFUgY2xvY2sgdmFsdWUKIAogSWYgdGhlICJjcHVjbGsiIGVudmlyb25tZW50IHZhcmlhYmxlIHZhbHVlIGlzIHdpdGhpbiB0aGUgQ1BVQ0xLX01JTiAvCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLlBJUDQwNSBiL2RvYy9SRUFETUUuUElQNDA1CmluZGV4IDA3NzU2YTUuLmQ4YjNmOWMgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuUElQNDA1CisrKyBiL2RvYy9SRUFETUUuUElQNDA1CkBAIC0xMDAsOSArMTAwLDkgQEAKIFNDU0kgc3VwcG9ydCAoZXhwZXJpbWVudGFsKSBvbmx5IFNZTTUzQzh4eCBzdXBwb3J0ZWQKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIENPTkZJR19TQ1NJX1NZTTUzQzhYWAkJdHlwZSBvZiBTQ1NJIGNvbnRyb2xsZXIKLUNGR19TQ1NJX01BWF9MVU4JOAludW1iZXIgb2Ygc3VwcG9ydGVkIExVTnMKLUNGR19TQ1NJX01BWF9TQ1NJX0lECTcJbWF4aW11bSBTQ1NJIElEICgwLi42KQotQ0ZHX1NDU0lfTUFYX0RFVklDRQlDRkdfU0NTSV9NQVhfU0NTSV9JRCAqIENGR19TQ1NJX01BWF9MVU4KK0NPTkZJR19TWVNfU0NTSV9NQVhfTFVOCTgJbnVtYmVyIG9mIHN1cHBvcnRlZCBMVU5zCitDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQJNwltYXhpbXVtIFNDU0kgSUQgKDAuLjYpCitDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRQlDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQgKiBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTgogCQkJCW1heGltdW0gb2YgVGFyZ2V0IGRldmljZXMgKG11bHRpcGxlIExVTiBzdXBwb3J0CiAJCQkJZm9yIGJvb3QpCiAKQEAgLTEyNSw3ICsxMjUsNyBAQAogCiBFeHRlcm5hbCBwZXJpcGhlcmFsIGJhc2UgYWRkcmVzczoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MJCWFkZHJlc3Mgb2YgYWxsIElTQS1idXMgcmVsYXRlZCBwYXJ0cworQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTCQlhZGRyZXNzIG9mIGFsbCBJU0EtYnVzIHJlbGF0ZWQgcGFydHMKIAkJCQlfbXVzdF8gYmUgZGVmaW5lZCBmb3IgSVNBLWJ1cyBwYXJ0cwogCiBJZGVudGlmeToKQEAgLTEzNSwxNCArMTM1LDE0IEBACiBFbnZpcm9ubWVudCAvIENvbnNvbGU6CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLUNGR19DT05TT0xFX0lTX0lOX0VOVgkJaWYgZGVmaW5lZCwgc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIHVzZWQgZnJvbQorQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgkJaWYgZGVmaW5lZCwgc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIHVzZWQgZnJvbQogCQkJCXRoZSB2YWx1ZXMgc3RvcmVkIGluIHRoZSBldmlyb25tZW50LgogCi1DRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQlpZiBkZWZpbmVkLCBjb25zb2xlX292ZXJ3cml0ZSgpIGRlY2lkZXMgaWYgdGhlCitDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUJaWYgZGVmaW5lZCwgY29uc29sZV9vdmVyd3JpdGUoKSBkZWNpZGVzIGlmIHRoZQogCQkJCXZhbHVlcyBzdG9yZWQgaW4gdGhlIGVudmlyb25tZW50IG9yIHRoZSBzdGFuZGFyZAogCQkJCXNlcmlhbCBpbi9vdXQgcHV0IHNob3VsZCBiZSBhc3NpZ25lZCB0byB0aGUgY29uc29sZS4KIAotQ0ZHX0NPTlNPTEVfRU5WX09WRVJXUklURQlpZiBkZWZpbmVkLCB0aGUgc3RhcnQtdXAgY29uc29sZSBzd2l0Y2hpbmcKK0NPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFCWlmIGRlZmluZWQsIHRoZSBzdGFydC11cCBjb25zb2xlIHN3aXRjaGluZwogCQkJCWFyZSBzdG9yZWQgaW4gdGhlIGVudmlyb25tZW50LgogCiBQSVA0MDUgc3BlY2lmaWM6CkBAIC0xNjEsNyArMTYxLDcgQEAKIAogRmxvcHB5IHN1cHBvcnQ6CiAtLS0tLS0tLS0tLS0tLS0KLVN1cHBvcnQgb2YgYSBzdGFuZGFyZCBmbG9wcHkgZGlzayBjb250cm9sbGVyIGF0IGFkZHJlc3MgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MKK1N1cHBvcnQgb2YgYSBzdGFuZGFyZCBmbG9wcHkgZGlzayBjb250cm9sbGVyIGF0IGFkZHJlc3MgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTCiArIDB4M0YwLiBFbmFibGVkIHdpdGggZGVmaW5lIENPTkZJR19DTURfRkRDLiBSZWFkcyBhIHVuZm9ybWF0ZWQgZmxvcHB5IGRpc2sKIHdpdGggYSBpbWFnZSBoZWFkZXIgKHNlZTogbWtpbWFnZSkuIE5vIGludGVycnVwdHMgYW5kIG5vIERNQSBhcmUgdXNlZCBmb3IgdGhpcy4KIEFkZGVkIGZpbGVzOgpAQCAtMTczLDcgKzE3Myw3IEBACiBTdXBwb3J0IGZvciBTeW1iaW9zIFNZTTUzQzgxMEEgY2hpcC4gSW1wbGVtZW50ZWQgYXMgZm9sbG93czoKIC0gd2l0aG91dCBkaXNjb25uZWN0CiAtIG9ubHkgYXN5bmNocm91bm91cwotLSBtdWx0aXBsZSBMVU4gc3VwcG9ydCAoY2F1dGlvbiwgbmVlZHMgYSBsb3Qgb2YgUkFNLiBkZWZpbmUgQ0ZHX1NDU0lfTUFYX0xVTiAxIHRvCistIG11bHRpcGxlIExVTiBzdXBwb3J0IChjYXV0aW9uLCBuZWVkcyBhIGxvdCBvZiBSQU0uIGRlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTiAxIHRvCiAgIHNhdmUgUkFNKQogLSBtdWx0aXBsZSBTQ1NJIElEIHN1cHBvcnQKIC0gbm8gd3JpdGUgc3VwcG9ydApAQCAtMTk3LDcgKzE5Nyw3IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBBZGRlZCBBVEFQSSBzdXBwb3J0ICh3aXRoIENPTkZJR19BVEFQSSkgaW4gdGhlIGZpbGUgY21kX2lkZS5jLgogVG8gc3VwcG9ydCBhIGhhcmRyZXNldCwgd2hlbiB0aGUgSURFIHJlc2V0IHBpbiBpcyBub3QgY29ubmVjdGVkIHRvIHRoZQotQ0ZHX1BDX0lERV9SRVNFVCBwaW4sIHRoZSBzd2l0Y2ggQ09ORklHX0lERV9SRVNFVF9ST1VUSU5FIGhhcyBiZWVuIGFkZGVkLiBXaGVuCitDT05GSUdfU1lTX1BDX0lERV9SRVNFVCBwaW4sIHRoZSBzd2l0Y2ggQ09ORklHX0lERV9SRVNFVF9ST1VUSU5FIGhhcyBiZWVuIGFkZGVkLiBXaGVuCiB0aGlzIHN3aXRjaCBpcyBlbmFibGVkIHRoZSByb3V0aW5lIHZvaWQgaWRlX3NldF9yZXNldChpbnQgaWRlcmVzZXQpIG11c3QgYmUKIHdpdGhpbiB0aGUgYm9hcmQgc3BlY2lmaWMgZmlsZXMuCiBPbmx5IHJlYWQgZnJvbSBBVEFQSSBkZXZpY2VzIGFyZSBzdXBwb3J0ZWQuCkBAIC0yNDIsNyArMjQyLDcgQEAKIE1DMTQ2ODE4IFJUQyBzdXBwb3J0OgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBBZGRlZCBzdXBwb3J0IGZvciBNQzE0NjgxOCBSVEMgd2l0aCBkZWZpbmluZyBDT05GSUdfUlRDX01DMTQ2ODE4LiBUaGUgSVNBIGJ1cyBJTwotYmFzZSBhZGRyZXNzIG11c3QgYmUgZGVmaW5lZCB3aXRoIENGR19JU0FfSU9fQkFTRV9BRERSRVNTLgorYmFzZSBhZGRyZXNzIG11c3QgYmUgZGVmaW5lZCB3aXRoIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUy4KIEFkZGVkIGZpbGVzOgogLSBydGMvbWMxNDY4MTguYwogCkBAIC0yOTksNyArMjk5LDcgQEAKIC0tLS0tLS0tLS0KIEFkZGVkIGRlZmluZWQoQ09ORklHX1BJUDQwNSkgYXQgc2V2ZXJhbCBwb2ludHMgaW4gY29tbW9uL2NtZF9pMmMuYy4KIEFkZGVkIDE2Yml0IHJlYWQvd3JpdGUgc3VwcG9ydCBmb3IgSTJDIChQUEM0MDUpLCBhbmQgcGFnZSB3cml0ZSB0bwotSTJDIEVFUFJPTSBpZiBkZWZpbmVkIENGR19FRVBST01fUEFHRV9XUklURV9FTkFCTEUuCitJMkMgRUVQUk9NIGlmIGRlZmluZWQgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9FTkFCTEUuCiBDaGFuZ2VkIGZpbGVzOgogLSBjcHUvcHBjNHh4L2kyYy5jCiAtIGNvbW1vbi9jbWRfaTJjLmMKQEAgLTMwOCwxMSArMzA4LDExIEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBBbHRob3VnaCBpbiBSRUFETUUuY29uc29sZSBkZXNjcmliZWQsIHRoZSBVLUJvb3QgaGFzIG5vdCBhc3NpbmdlZCB0aGUgdmFsdWVzCiBmb3VuZCBpbiB0aGUgZW52aXJvbm1lbnQgdG8gdGhlIGNvbnNvbGUuIENvcnJlY3RlZCB0aGlzIGJlaGF2aW9yLCBidXQgb25seSBpZgotQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WIGlzIGRlZmluZWQuCi1JZiBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORSBpcyBkZWZpbmVkLCBjb25zb2xlX292ZXJ3cml0ZSgpIGRlY2lkZXMgaWYgdGhlCitDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WIGlzIGRlZmluZWQuCitJZiBDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUgaXMgZGVmaW5lZCwgY29uc29sZV9vdmVyd3JpdGUoKSBkZWNpZGVzIGlmIHRoZQogdmFsdWVzIHN0b3JlZCBpbiB0aGUgZW52aXJvbm1lbnQgb3IgdGhlIHN0YW5kYXJkIHNlcmlhbCBpbi9vdXRwdXQgc2hvdWxkIGJlCiBhc3NpZ25lZCB0byB0aGUgY29uc29sZS4gVGhpcyBpcyB1c2VmdWwgaWYgdGhlIGVudmlyb25tZW50IHZhbHVlcyBhcmUgbm90IGNvcnJlY3QuCi1JZiBDRkdfQ09OU09MRV9FTlZfT1ZFUldSSVRFIGlzIGRlZmluZWQgdGhlIGRldmljZXMgYXNzaWduZWQgdG8gdGhlIGNvbnNvbGUgYXQKK0lmIENPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFIGlzIGRlZmluZWQgdGhlIGRldmljZXMgYXNzaWduZWQgdG8gdGhlIGNvbnNvbGUgYXQKIHN0YXJ0LXVwIHRpbWUgd2lsbCBiZSB3cml0dGVuIHRvIHRoZSBlbnZpcm9ubWVudC4gVGhpcyBtZWFucyB0aGF0IGlmIHRoZQogZW52aXJvbm1lbnQgdmFsdWVzIGFyZSBvdmVyd3JpdHRlbiBieSB0aGUgb3ZlcndyaXRlX2NvbnNvbGUoKSByb3V0aW5lLCB0aGV5IHdpbGwgYmUKIHN0b3JlZCBpbiB0aGUgZW52aXJvbm1lbnQuCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLlBYQV9DRiBiL2RvYy9SRUFETUUuUFhBX0NGCmluZGV4IGU0NDNkMzkuLjZhMGYyMzYgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuUFhBX0NGCisrKyBiL2RvYy9SRUFETUUuUFhBX0NGCkBAIC0xMiwzNSArMTIsMzUgQEAKICNkZWZpbmUgQ09ORklHX1BDTUNJQV9TTE9UX0EgMQogLyoganVzdCB0byBrZWVwIGJ1aWxkIHN5c3RlbSBoYXBweSAgKi8KIAotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSICAgICAweDI4MDAwMDAwCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUgICAgIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIgICAgIDB4MjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgICAgIDB4MTAwMDAwMDAKIAotI2RlZmluZSBDRkdfTUVDUl9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DTUVNMF9WQUwJCTB4MDAwMDQyMDQKLSNkZWZpbmUgQ0ZHX01DTUVNMV9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DQVRUMF9WQUwJCTB4MDAwMTA1MDQKLSNkZWZpbmUgQ0ZHX01DQVRUMV9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DSU8wX1ZBTAkJMHgwMDAwODQwNwotI2RlZmluZSBDRkdfTUNJTzFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVDUl9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTBfVkFMCQkweDAwMDA0MjA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0xX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMF9WQUwJCTB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0FUVDFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzBfVkFMCQkweDAwMDA4NDA3CisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzFfVkFMCQkweDAwMDAwMDAwCiAvKiBtZW1vcnkgY29uZmlndXJhdGlvbiAqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQogLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEKIC8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4MjAwMDAwMDAKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgxZjAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgxZjAKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MWYwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgxZjAKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDNmMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4M2YwCiAKIAogQW5vdGhlciBpbXBvcnRhbnQgcG9pbnQgaXMgdGhhdCBtYXliZSB5b3UgaGF2ZSB0byBwb3dlciB0aGUgcGNtY2lhCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLlRRTTgyNjAgYi9kb2MvUkVBRE1FLlRRTTgyNjAKaW5kZXggMDU3MTA5NS4uYjkzYTFjYiAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5UUU04MjYwCisrKyBiL2RvYy9SRUFETUUuVFFNODI2MApAQCAtNTIsNyArNTIsNyBAQAogCiAJSWYgZGVmaW5lZCwgU01DMiB3aWxsIGJlIHVzZWQgYXMgdGhlIGNvbnNvbGUKIAotQ0ZHX0lOSVRfTE9DQUxfU0RSQU0KK0NPTkZJR19TWVNfSU5JVF9MT0NBTF9TRFJBTQogCiAJSWYgZGVmaW5lZCwgdGhlIFNEUkFNIG9uIHRoZSBsb2NhbCBidXMgd2lsbCBiZSBpbml0aWFsaXplZCBhbmQKIAltYXBwZWQgYXQgQlIyLgpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5hZG5wZXNjMSBiL2RvYy9SRUFETUUuYWRucGVzYzEKaW5kZXggNTI1N2YxOC4uZjk1NjZiOCAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5hZG5wZXNjMQorKysgYi9kb2MvUkVBRE1FLmFkbnBlc2MxCkBAIC03OCw3ICs3OCw3IEBACiBBIG1pbmltYWwgY29uZmlndXJhdGlvbiBvY2N1cGllcyBsZXNzIHRoYW4gNzAgS0J5dGUKIChuZXR3b3JrLCBTUEksIFBPU1QgYW5kIGJvYXJkIGNvbW1hbmQgc3VwcG9ydCBkaXNhYmxlZCkuIFlvdQogY2FuIHNhdmUgbW9yZSBtZW1vcnkgYnkgZGVhY3RpdmF0aW5nIHRoZSBIdS1TaGVsbCBzdXBwb3J0IGFuZAotbG9uZyBjb21tYW5kIGhlbHAgKENGR19IVVNIX1BBUlNFUiwgQ0ZHX0xPTkdIRUxQKS4KK2xvbmcgY29tbWFuZCBoZWxwIChDT05GSUdfU1lTX0hVU0hfUEFSU0VSLCBDT05GSUdfU1lTX0xPTkdIRUxQKS4KIAogVG8gcHJvZ3JhbSBVLUJvb3QgaW50byB0aGUgQUROUC9FU0MxIGZsYXNoIHVzaW5nIEdFUk1TIGRvIHRoZQogZm9sbG93aW5nOgpAQCAtMTkzLDI0ICsxOTMsMjQgQEAKIAktIHRoaXMgaXMgdGhlIHN0YXJ0dXAgYWRkcmVzcyBmb3IgYXV0b2Jvb3QKIAktIGVhY2ggTmlvcyBhcHBsaWNhdGlvbiBjb2RlIHdlIHdhbnQgdG8gdXBkYXRlIHdpbGwgYmUgY29waWVkCiAJICB0byB0aGlzIGFkZHJlc3MKLQktIGRlZmF1bHQgaXMgQ0ZHX0FETlBFU0MxX05JT1NfQVBQTF9FTlRSWQorCS0gZGVmYXVsdCBpcyBDT05GSUdfU1lTX0FETlBFU0MxX05JT1NfQVBQTF9FTlRSWQogCiAzLiBhcHBsX2VuZF9hZGRyCiAKIAktIE5pb3MgYXBwbGljYXRpb24gYXJlYSBlbmQgYWRkcmVzcyAodXN1YWxseSBpbiBGbGFzaCkKIAktIHdpbGwgYmUgdXNlZCB0byB1bnByb3RlY3QvZXJhc2UgdGhlIEZsYXNoIGFyZWEgd2hpbGUgdXBkYXRpbmcKLQktIGRlZmF1bHQgaXMgQ0ZHX0FETlBFU0MxX05JT1NfQVBQTF9FTkQKKwktIGRlZmF1bHQgaXMgQ09ORklHX1NZU19BRE5QRVNDMV9OSU9TX0FQUExfRU5ECiAKIDQuIGFwcGxfaWRlbnRfYWRkcgogCiAJLSBhZGRyZXNzIG9mIHRoZSBOaW9zIGFwcGxpY2F0aW9uIGlkZW50aWZpY2F0aW9uIHN0cmluZwogCS0gdGhpcyBpcyB0aGUgYWRkcmVzcyBjaGVja2VkLXVwIGJ5IGF1dG9ib290Ci0JLSBkZWZhdWx0IGlzIENGR19BRE5QRVNDMV9OSU9TX0FQUExfSURFTlQKKwktIGRlZmF1bHQgaXMgQ09ORklHX1NZU19BRE5QRVNDMV9OSU9TX0FQUExfSURFTlQKIAogNS4gYXBwbF9pZGVudF9zdHIKIAogCS0gdGhlIE5pb3MgYXBwbGljYXRpb24gaWRlbnRpZmljYXRpb24gc3RyaW5nIGl0c2VsZgotCS0gZGVmYXVsdCBpcyBDRkdfQUROUEVTQzFfTklPU19JREVOVElGSUVSCisJLSBkZWZhdWx0IGlzIENPTkZJR19TWVNfQUROUEVTQzFfTklPU19JREVOVElGSUVSCiAKIDYuIGFwcGxfbmFtZQogCkBAIC0yMjEsMTMgKzIyMSwxMyBAQAogCiAJLSBvcHRpb25hbGx5IGZpbGUgc3lzdGVtIGFyZWEgc3RhcnQgYWRkcmVzcyAodXN1YWxseSBpbiBGbGFzaCkKIAktIGVhY2ggZmlsZSBzeXN0ZW0gd2Ugd2FudCB0byB1cGRhdGUgd2lsbCBiZSBjb3BpZWQgdG8gdGhpcyBhZGRyZXNzCi0JLSBkZWZhdWx0IGlzIENGR19BRE5QRVNDMV9GSUxFU1lTVEVNX0JBU0UKKwktIGRlZmF1bHQgaXMgQ09ORklHX1NZU19BRE5QRVNDMV9GSUxFU1lTVEVNX0JBU0UKIAogOC4gZnNfZW5kX2FkZHIKIAogCS0gb3B0aW9uYWxseSBmaWxlIHN5c3RlbSBhcmVhIGVuZCBhZGRyZXNzICh1c3VhbGx5IGluIEZsYXNoKQogCS0gd2lsbCBiZSB1c2VkIHRvIHVucHJvdGVjdC9lcmFzZSB0aGUgRmxhc2ggYXJlYSB3aGlsZSB1cGRhdGluZwotCS0gZGVmYXVsdCBpcyBDRkdfQUROUEVTQzFfRklMRVNZU1RFTV9FTkQKKwktIGRlZmF1bHQgaXMgQ09ORklHX1NZU19BRE5QRVNDMV9GSUxFU1lTVEVNX0VORAogCiA5LiBmc19uYW1lCiAKZGlmZiAtLWdpdCBhL2RvYy9SRUFETUUuYWRucGVzYzFfYmFzZTMyIGIvZG9jL1JFQURNRS5hZG5wZXNjMV9iYXNlMzIKaW5kZXggMTQ1ZThjZC4uZTZmYjdhNCAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5hZG5wZXNjMV9iYXNlMzIKKysrIGIvZG9jL1JFQURNRS5hZG5wZXNjMV9iYXNlMzIKQEAgLTE4LDM5ICsxOCwzOSBAQAogCW5vIERlYnVnIENvcmUKIAlubyBPbiBDaGlwIEluc3RydW1lbnRhdGlvbiAoT0NJKQogCi0JVS1Cb290IENGRzoJQ0ZHX05JT1NfQ1BVX0NMSwkgICAgID0gNTAwMDAwMDAKLQkJCUNGR19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IChub3QgcHJlc2VudCkKLQkJCUNGR19OSU9TX0NQVV9EQ0FDSEUJICAgICA9IChub3QgcHJlc2VudCkKLQkJCUNGR19OSU9TX0NQVV9SRUdfTlVNUwkgICAgID0gNTEyCi0JCQlDRkdfTklPU19DUFVfTVVMCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTVNURVAJICAgICA9IDEKLQkJCUNGR19OSU9TX0NQVV9EQkdfQ09SRQkgICAgID0gMAorCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfQ0xLCSAgICAgPSA1MDAwMDAwMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IChub3QgcHJlc2VudCkKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfRENBQ0hFCSAgICAgPSAobm90IHByZXNlbnQpCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1JFR19OVU1TCSAgICAgPSA1MTIKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfTVVMCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX01TVEVQCSAgICAgPSAxCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0RCR19DT1JFCSAgICAgPSAwCiAKIElSUToJIE5yLiAgfCB1c2VkIGJ5CiAJLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JIDE2ICAgfCBUSU1FUjAJICB8ICBDRkdfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2Ci0JIDE3ICAgfCBVQVJUMAkgIHwgIENGR19OSU9TX0NQVV9VQVJUMF9JUlEgID0gMTcKLQkgMTggICB8IFVBUlQxCSAgfCAgQ0ZHX05JT1NfQ1BVX1VBUlQxX0lSUSAgPSAxOAotCSAyMCAgIHwgTEFOOTFDMTExIHwgIENGR19OSU9TX0NQVV9MQU4wX0lSUSAgID0KLQkgICAgICB8IFBJTzYJICB8ICBDRkdfTklPU19DUFVfUElPNl9JUlEgICA9IDIwCi0JIDI1ICAgfCBTUEkwCSAgfCAgQ0ZHX05JT1NfQ1BVX1NQSTBfSVJRICAgPSAyNQotCSAzMSAgIHwgUElPNwkgIHwgIENGR19OSU9TX0NQVV9QSU83X0lSUSAgID0gMzEKLQkgMzIgICB8IFBJTzgJICB8ICBDRkdfTklPU19DUFVfUElPOF9JUlEgICA9IDMyCi0JIDMzICAgfCBQSU85CSAgfCAgQ0ZHX05JT1NfQ1BVX1BJTzlfSVJRICAgPSAzMwotCSAzNCAgIHwgUElPMTAJICB8ICBDRkdfTklPU19DUFVfUElPMTBfSVJRICA9IDM0Ci0JIDM1ICAgfCBQSU8xMQkgIHwgIENGR19OSU9TX0NQVV9QSU8xMV9JUlEgID0gMzUKLQkgMzYgICB8IFBJTzEyCSAgfCAgQ0ZHX05JT1NfQ1BVX1BJTzEyX0lSUSAgPQotCSAgICAgIHwgSURFMAkgIHwgIENGR19OSU9TX0NQVV9JREUwX0lSUSAgID0gMzYKLQkgMzcgICB8IFBJTzEzCSAgfCAgQ0ZHX05JT1NfQ1BVX1BJTzEzX0lSUSAgPQotCSAgICAgIHwgSURFMQkgIHwgIENGR19OSU9TX0NQVV9JREUxX0lSUSAgID0gMzcKKwkgMTYgICB8IFRJTUVSMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2CisJIDE3ICAgfCBVQVJUMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfSVJRICA9IDE3CisJIDE4ICAgfCBVQVJUMQkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDFfSVJRICA9IDE4CisJIDIwICAgfCBMQU45MUMxMTEgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0lSUSAgID0KKwkgICAgICB8IFBJTzYJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzZfSVJRICAgPSAyMAorCSAyNSAgIHwgU1BJMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfU1BJMF9JUlEgICA9IDI1CisJIDMxICAgfCBQSU83CSAgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X0lSUSAgID0gMzEKKwkgMzIgICB8IFBJTzgJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzhfSVJRICAgPSAzMgorCSAzMyAgIHwgUElPOQkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfUElPOV9JUlEgICA9IDMzCisJIDM0ICAgfCBQSU8xMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfUElPMTBfSVJRICA9IDM0CisJIDM1ICAgfCBQSU8xMQkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfUElPMTFfSVJRICA9IDM1CisJIDM2ICAgfCBQSU8xMgkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfUElPMTJfSVJRICA9CisJICAgICAgfCBJREUwCSAgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9JREUwX0lSUSAgID0gMzYKKwkgMzcgICB8IFBJTzEzCSAgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xM19JUlEgID0KKwkgICAgICB8IElERTEJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX0lERTFfSVJRICAgPSAzNwogCiBNRU1PUlk6CSA4IE1CeXRlIEZsYXNoCiAJMTYgTUJ5dGUgU0RSQU0KIAogVGltZXI6CVRJTUVSMDogaGlnaCBwcmlvcml0eSBwcm9ncmFtbWFibGUgdGltZXIgKElSUTE2KQogCi0JVS1Cb290IENGRzoJQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIJICAgICA9IDAKLQkJCUNGR19OSU9TX0NQVV9VU0VSX1RJTUVSCSAgICAgPSAobm90IHByZXNlbnQpCisJVS1Cb290IENGRzoJQ09ORklHX1NZU19OSU9TX0NQVV9USUNLX1RJTUVSCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1VTRVJfVElNRVIJICAgICA9IChub3QgcHJlc2VudCkKIAogUElPOgkgTnIuICB8IGRlc2NyaXB0aW9uCiAJLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC03MSwxMyArNzEsMTMgQEAKIAkgUElPMTN8IElOVDc6CSAgICAxIGlucHV0IGZvciBnZW5lcmFsIHB1cnBvc2UgaXJxIChJUlEzNykKIAkgICAgICB8IElERTFJTlQ6ICAgICAoc2FtZSkgZm9yIElERTEgaXJxIGlucHV0CiAKLQlVLUJvb3QgQ0ZHOglDRkdfTklPU19DUFVfUE9SVEFfUElPCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfUE9SVEJfUElPCSAgICAgPSAxCi0JCQlDRkdfTklPU19DUFVfUE9SVENfUElPCSAgICAgPSAyCi0JCQlDRkdfTklPU19DUFVfUkNNX1BJTwkgICAgID0gMwotCQkJQ0ZHX05JT1NfQ1BVX1dEVEVOQV9QSU8JICAgICA9IDQKLQkJCUNGR19OSU9TX0NQVV9XRFRUUklHX1BJTyAgICAgPSA1Ci0JCQlDRkdfTklPU19DUFVfTEVEX1BJTwkgICAgID0gKG5vdCBwcmVzZW50KQorCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfUE9SVEFfUElPCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1BPUlRCX1BJTwkgICAgID0gMQorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9QT1JUQ19QSU8JICAgICA9IDIKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfUkNNX1BJTwkgICAgID0gMworCQkJQ09ORklHX1NZU19OSU9TX0NQVV9XRFRFTkFfUElPCSAgICAgPSA0CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1dEVFRSSUdfUElPICAgICA9IDUKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfTEVEX1BJTwkgICAgID0gKG5vdCBwcmVzZW50KQogCiBVQVJUOglVQVJUMDogZml4ZWQgYmF1ZHJhdGUgb2YgMTE1MjAwLCBmaXhlZCBwcm90b2NvbCA4TjEsIFJUUy9DVFMgKElSUTE3KQogCVVBUlQxOiBmaXhlZCBiYXVkcmF0ZSBvZiAxMTUyMDAsIGZpeGVkIHByb3RvY29sIDhOMSwKQEAgLTEwNCwyOCArMTA0LDI4IEBACiAgIDB4NDQwMDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0KIAkgICAgICAgfAkgICAgICAgfAkgICAgICAgfCBcCiAJICAgICAgIDogIChyZWFsIHNpemUgICA6CSAgICAgICA6IHwKLSAgRVhUMyAoQ1M0KSAgIDogICBhbmQgY29udGVudCA6CSAgICAgICA6ICA+IENGR19OSU9TX0NQVV9DUzNfU0laRQorICBFWFQzIChDUzQpICAgOiAgIGFuZCBjb250ZW50IDoJICAgICAgIDogID4gQ09ORklHX1NZU19OSU9TX0NQVV9DUzNfU0laRQogCSAgICAgICA6ICAgdW5rbm93bikgICAgOgkgICAgICAgOiB8ICAgPSAweDAxMDAwMDAwCiAJICAgICAgIHwJICAgICAgIHwJICAgICAgIHwgLwotICAweDQzMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9DUzNfQkFTRQorICAweDQzMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfQ1MzX0JBU0UKIAkgICAgICAgfAkgICAgICAgfAkgICAgICAgfCBcCiAJICAgICAgIDogIChyZWFsIHNpemUgICA6CSAgICAgICA6IHwKLSAgRVhUMiAoQ1MzKSAgIDogICBhbmQgY29udGVudCA6CSAgICAgICA6ICA+IENGR19OSU9TX0NQVV9DUzJfU0laRQorICBFWFQyIChDUzMpICAgOiAgIGFuZCBjb250ZW50IDoJICAgICAgIDogID4gQ09ORklHX1NZU19OSU9TX0NQVV9DUzJfU0laRQogCSAgICAgICA6ICAgdW5rbm93bikgICAgOgkgICAgICAgOiB8ICAgPSAweDAxMDAwMDAwCiAJICAgICAgIHwJICAgICAgIHwJICAgICAgIHwgLwotICAweDQyMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9DUzJfQkFTRQorICAweDQyMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfQ1MyX0JBU0UKIAkgICAgICAgfAkgICAgICAgfAkgICAgICAgfCBcCiAJICAgICAgIDogIChyZWFsIHNpemUgICA6CSAgICAgICA6IHwKLSAgRVhUMSAoQ1MyKSAgIDogICBhbmQgY29udGVudCA6CSAgICAgICA6ICA+IENGR19OSU9TX0NQVV9DUzFfU0laRQorICBFWFQxIChDUzIpICAgOiAgIGFuZCBjb250ZW50IDoJICAgICAgIDogID4gQ09ORklHX1NZU19OSU9TX0NQVV9DUzFfU0laRQogCSAgICAgICA6ICAgdW5rbm93bikgICAgOgkgICAgICAgOiB8ICAgPSAweDAxMDAwMDAwCiAJICAgICAgIHwJICAgICAgIHwJICAgICAgIHwgLwotICAweDQxMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9DUzFfQkFTRQorICAweDQxMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfQ1MxX0JBU0UKIAkgICAgICAgfAkgICAgICAgfAkgICAgICAgfCBcCiAJICAgICAgIDogIChyZWFsIHNpemUgICA6CSAgICAgICA6IHwKLSAgRVhUMCAoQ1MxKSAgIDogICBhbmQgY29udGVudCA6CSAgICAgICA6ICA+IENGR19OSU9TX0NQVV9DUzBfU0laRQorICBFWFQwIChDUzEpICAgOiAgIGFuZCBjb250ZW50IDoJICAgICAgIDogID4gQ09ORklHX1NZU19OSU9TX0NQVV9DUzBfU0laRQogCSAgICAgICA6ICAgdW5rbm93bikgICAgOgkgICAgICAgOiB8ICAgPSAweDAxMDAwMDAwCiAJICAgICAgIHwJICAgICAgIHwJICAgICAgIHwgLwotICAweDQwMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9DUzBfQkFTRQorICAweDQwMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfQ1MwX0JBU0UKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIDoJCQkgICAgICAgOgpAQCAtMTM1LDIzICsxMzUsMjMgQEAKIAkgICAgICAgOgkJCSAgICAgICA6CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIHwJCQkgICAgICAgfAotICAweDAzMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9TVEFDSworICAweDAzMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfU1RBQ0sKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCBcCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAgKFUtQm9vdCBydW4tdGltZSBzeXN0ZW0pCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfAotCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENGR19NT05JVE9SX0xFTgorCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENPTkZJR19TWVNfTU9OSVRPUl9MRU4KIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8ICAgPSAweDAwMDQwMDAwCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfAogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IC8KICAgMHgwMmZjMDAwMCAtLSszMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wKyAgICBURVhUX0JBU0UKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCBcCi0JICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgID4gQ0ZHX01BTExPQ19MRU4gKGhlYXApCisJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgID4gQ09ORklHX1NZU19NQUxMT0NfTEVOIChoZWFwKQogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IC8KIAkgICAgIC0tKzMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTArCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgXAotCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENGR19HQkxfREFUQV9TSVpFIChnbG9iYWwpCisJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgID4gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIChnbG9iYWwpCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgLwotCSAgICAgLS0rMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMCsgICAgQ0ZHX0lOSVRfU1AgKHUtYm9vdCBzdGFjaykKKwkgICAgIC0tKzMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTArICAgIENPTkZJR19TWVNfSU5JVF9TUCAodS1ib290IHN0YWNrKQogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IFwgXAogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgfAogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgID4gc3RhY2sgYXJlYQpAQCAtMTU5LDE3ICsxNTksMTcgQEAKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IFYKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8CiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfAotICBTRFJBTQkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCAgPiBDRkdfTklPU19DUFVfU0RSQU1fU0laRQorICBTRFJBTQkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX1NJWkUKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8ICAgPSAweDAxMDAwMDAwCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfAogICAweDAyMDAwMTAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLXwtCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCBcCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCB8Ci0JICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAgPiBDRkdfTklPU19DUFVfVkVDX1NJWkUKKwkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfVkVDX1NJWkUKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwgICA9IDB4MDAwMDAxMDAKIAkgICAgICAgfAkJCSAgICAgICB8IC8gLwotICAweDAyMDAwMDAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLSAtIENGR19OSU9TX0NQVV9WRUNfQkFTRQotICAweDAyMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9TRFJBTV9CQVNFCisgIDB4MDIwMDAwMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstIC0gQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRQorICAweDAyMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fQkFTRQogCSAgICAgICB8CQkJICAgICAgIHwgXAogCSAgICAgICA6CSAgICAgIGdhcAkgICAgICAgOiAgPiAoc3BhY2UgZm9yIDJuZCBGbGFzaCkKIAkgICAgICAgfAkJCSAgICAgICB8IC8KQEAgLTE3NywxMSArMTc3LDExIEBACiAJICAgICAgIHwgIHNlY3RvciAxMjcJCSAgICAgICB8IFwKICAgICArIDB4N2YwMDAwIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfAotICBGbGFzaAkgICAgICAgfC0gICAtCS0gICAtICA6ICAtICAgLQkgIC0gICAtfCAgPiBDRkdfTklPU19DUFVfRkxBU0hfU0laRQorICBGbGFzaAkgICAgICAgfC0gICAtCS0gICAtICA6ICAtICAgLQkgIC0gICAtfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUKIAkgICAgICAgfCAgc2VjdG9yIDEgICAgIDoJICAgICAgIHwgfCAgID0gMHgwMDgwMDAwMAogICAgICsgMHgwMTAwMDAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgc2VjdG9yIDAgKHNpemUgPSAweDEwMDAwKSAgICB8IC8KLSAgMHgwMTAwMDAwMCAtLS04LS0tLS0tLS0tLS0tLTR8My0tLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfRkxBU0hfQkFTRQorICAweDAxMDAwMDAwIC0tLTgtLS0tLS0tLS0tLS0tNHwzLS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfQkFTRQogCSAgICAgICB8CQkJICAgICAgIHwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDoKIAkgICAgICAgOgkJCSAgICAgICA6CkBAIC0yMDcsNyArMjA3LDcgQEAKIAkgICAgICAgfCB8LSAtIC0gLSAtIC0gLXwtIC0gLSAtIC0gLSAtfCB8IHwKIAkgICAgICAgfCB8IEVQSCBTVEFUVVMgIHwgVENSCSAgICAgfCB8IHwKIAkgICAgICAgfCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8IC8KLSAgMHgwMDAxMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfTEFOMF9CQVNFCisgIDB4MDAwMTAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JBU0UKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIDoJCQkgICAgICAgOgpAQCAtMjIzLDEzICsyMjMsMTMgQEAKICAgSURFMSBpL2YgICAgIDoJICAgICAgIDoJICAgICAgIDogID4gMHgwMDAwMDAyMAogICBbNV0JICAgICAgIDoJICAgICAgIDoJICAgICAgIDogfAogCSAgICAgICB8CSAgICAgICB8CSAgICAgICB8IC8KLSAgMHgwMDAwMTAyMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfSURFMQorICAweDAwMDAxMDIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfSURFMQogCSAgICAgICB8CSAgICAgICB8CSAgICAgICB8IFwKIAkgICAgICAgOgkgICAgICAgOgkgICAgICAgOiB8CiAgIElERTAgaS9mICAgICA6CSAgICAgICA6CSAgICAgICA6ICA+IDB4MDAwMDAwMjAKICAgWzVdCSAgICAgICA6CSAgICAgICA6CSAgICAgICA6IHwKIAkgICAgICAgfAkgICAgICAgfAkgICAgICAgfCAvCi0gIDB4MDAwMDEwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX0lERTAKKyAgMHgwMDAwMTAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX0lERTAKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIHwJCQkgICAgICAgfApAQCAtMjQxLDcgKzI0MSw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAocm8pICB8IC8KLSAgMHgwMDAwMDk3MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPMTMKKyAgMHgwMDAwMDk3MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEzCiAJICAgICAgIHwgIGVkZ2VjYXB0dXJlICgxIGJpdCkJIChydykgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8xMiAgICAgICAgfCAgaW50ZXJydXB0bWFzayAoMSBiaXQpCSAocncpICB8IHwKQEAgLTI0OSw3ICsyNDksNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA5NjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzEyCisgIDB4MDAwMDA5NjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMgogCSAgICAgICB8ICBlZGdlY2FwdHVyZSAoMSBiaXQpCSAocncpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPMTEgICAgICAgIHwgIGludGVycnVwdG1hc2sgKDEgYml0KQkgKHJ3KSAgfCB8CkBAIC0yNTcsNyArMjU3LDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDEgYml0KQkJIChybykgIHwgLwotICAweDAwMDAwOTUwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8xMQorICAweDAwMDAwOTUwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPMTEKIAkgICAgICAgfCAgZWRnZWNhcHR1cmUgKDEgYml0KQkgKHJ3KSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzEwICAgICAgICB8ICBpbnRlcnJ1cHRtYXNrICgxIGJpdCkJIChydykgIHwgfApAQCAtMjY1LDcgKzI2NSw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAocm8pICB8IC8KLSAgMHgwMDAwMDk0MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPMTAKKyAgMHgwMDAwMDk0MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEwCiAJICAgICAgIHwgIGVkZ2VjYXB0dXJlICgxIGJpdCkJIChydykgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU85ICAgICAgICAgfCAgaW50ZXJydXB0bWFzayAoMSBiaXQpCSAocncpICB8IHwKQEAgLTI3Myw3ICsyNzMsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA5MzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzkKKyAgMHgwMDAwMDkzMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzkKIAkgICAgICAgfCAgZWRnZWNhcHR1cmUgKDEgYml0KQkgKHJ3KSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzggICAgICAgICB8ICBpbnRlcnJ1cHRtYXNrICgxIGJpdCkJIChydykgIHwgfApAQCAtMjgxLDcgKzI4MSw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAocm8pICB8IC8KLSAgMHgwMDAwMDkyMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPOAorICAweDAwMDAwOTIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPOAogCSAgICAgICB8ICBlZGdlY2FwdHVyZSAoMSBiaXQpCSAocncpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPNyAgICAgICAgIHwgIGludGVycnVwdG1hc2sgKDEgYml0KQkgKHJ3KSAgfCB8CkBAIC0yODksNyArMjg5LDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDEgYml0KQkJIChybykgIHwgLwotICAweDAwMDAwOTEwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU83CisgIDB4MDAwMDA5MTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU83CiAJICAgICAgIHwgIGVkZ2VjYXB0dXJlICgxIGJpdCkJIChydykgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU82ICAgICAgICAgfCAgaW50ZXJydXB0bWFzayAoMSBiaXQpCSAocncpICB8IHwKQEAgLTI5Nyw3ICsyOTcsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA5MDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzYKKyAgMHgwMDAwMDkwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzYKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIHwJCQkgICAgICAgfApAQCAtMzE3LDcgKzMxNyw3IEBACiAJICAgICAgIHwgIHR4ZGF0YSAoMTYgYml0KQkgKHdvKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHJ4ZGF0YSAoMTYgYml0KQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA4YzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1NQSTAKKyAgMHgwMDAwMDhjMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1NQSTAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzUJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMzI1LDcgKzMyNSw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAod28pICB8IC8KLSAgMHgwMDAwMDhiMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPNQorICAweDAwMDAwOGIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPNQogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPNAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0zMzMsNyArMzMzLDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDEgYml0KQkJICh3bykgIHwgLwotICAweDAwMDAwOGEwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU80CisgIDB4MDAwMDA4YTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU80CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8zCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTM0MSw3ICszNDEsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA4OTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzMKKyAgMHgwMDAwMDg5MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzMKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzIJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMzQ5LDcgKzM0OSw3IEBACiAJICAgICAgIHwgIGRpcmVjdGlvbiAoNCBiaXQpICAgICAgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDQgYml0KQkJIChydykgIHwgLwotICAweDAwMDAwODgwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8yCisgIDB4MDAwMDA4ODAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8xCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTM1Nyw3ICszNTcsNyBAQAogCSAgICAgICB8ICBkaXJlY3Rpb24gKDggYml0KSAgICAgIChydykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICg4IGJpdCkJCSAocncpICB8IC8KLSAgMHgwMDAwMDg3MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPMQorICAweDAwMDAwODcwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPMQogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPMAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0zNjUsNyArMzY1LDcgQEAKIAkgICAgICAgfCAgZGlyZWN0aW9uICg4IGJpdCkgICAgICAocncpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoOCBiaXQpCQkgKHJ3KSAgfCAvCi0gIDB4MDAwMDA4NjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzAKKyAgMHgwMDAwMDg2MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDFjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMzgxLDcgKzM4MSw3IEBACiAJICAgICAgIHwgIGNvbnRyb2wgKDQgYml0KQkgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHN0YXR1cyAoMiBiaXQpCSAocncpICB8IC8KLSAgMHgwMDAwMDg0MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfVElNRVIwCisgIDB4MDAwMDA4NDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDFjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMzk3LDcgKzM5Nyw3IEBACiAJICAgICAgIHwgIHR4ZGF0YSAoOCBiaXQpCSAod28pICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgcnhkYXRhICg4IGJpdCkJIChybykgIHwgLwotICAweDAwMDAwODIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9VQVJUMQorICAweDAwMDAwODIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDEKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDFjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtNDEzLDE4ICs0MTMsMTggQEAKIAkgICAgICAgfCAgdHhkYXRhICg4IGJpdCkJICh3bykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICByeGRhdGEgKDggYml0KQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA4MDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1VBUlQwCisgIDB4MDAwMDA4MDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMAogCiAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gIG9uIGNoaXAgbWVtb3J5IDEJICAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KIAogICAweDAwMDAwODAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgXAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwKLSAgR0VSTVMJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgID4gQ0ZHX05JT1NfQ1BVX1JPTV9TSVpFCisgIEdFUk1TCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfUk9NX1NJWkUKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8ICAgPSAweDAwMDAwODAwCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgLwotICAweDAwMDAwMDAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLSAtIENGR19OSU9TX0NQVV9SU1RfVkVDVAotICAweDAwMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9ST01fQkFTRQorICAweDAwMDAwMDAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLSAtIENPTkZJR19TWVNfTklPU19DUFVfUlNUX1ZFQ1QKKyAgMHgwMDAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9CQVNFCiAKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5hbGFza2E4MjIwIGIvZG9jL1JFQURNRS5hbGFza2E4MjIwCmluZGV4IDhlNjU5ZjMuLjBiZDY4ZDkgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuYWxhc2thODIyMAorKysgYi9kb2MvUkVBRE1FLmFsYXNrYTgyMjAKQEAgLTg3LDEyICs4NywxMiBAQAogMy4xIEV4cGxhbmF0aW9uIG9uIE5FVyBkZWZpbml0aW9ucyBpbiBpbmNsdWRlL2NvbmZpZ3MvYWxhc2thODIyMC5oCiAgICAgQ09ORklHX01QQzgyMjAJICAgIE1QQzgyMjAgc3BlY2lmaWMKICAgICBDT05GSUdfQUxBU0tBODIyMAkgICAgQWxhc2thIGJvYXJkIHNwZWNpZmljCi0gICAgQ0ZHX01QQzgyMjBfQ0xLSU4JICAgIERlZmluZSBBbGFza2EgSW5wdXQgQ2xvY2sKKyAgICBDT05GSUdfU1lTX01QQzgyMjBfQ0xLSU4JICAgIERlZmluZSBBbGFza2EgSW5wdXQgQ2xvY2sKICAgICBDT05GSUdfUFNDX0NPTlNPTEUJICAgIEVuYWJsZSBNUEM4MjIwIFVBUlQKICAgICBDT05GSUdfRVhUVUFSVF9DT05TT0xFICBFbmFibGUgRXh0ZXJuYWwgMTY1NTIgVUFSVAotICAgIENGR19BTURfQk9PVAkgICAgVG8gZGV0ZXJtaW5lIHRoZSB1LWJvb3QgaXMgYm9vdGVkIGZyb20gQU1EIG9yIEludGVsCi0gICAgQ0ZHX01CQVIJCSAgICBNQkFSIGJhc2UgYWRkcmVzcwotICAgIENGR19ERUZBVUxUX01CQVIJICAgIFJlc2V0IE1CQVIgYmFzZSBhZGRyZXNzCisgICAgQ09ORklHX1NZU19BTURfQk9PVAkgICAgVG8gZGV0ZXJtaW5lIHRoZSB1LWJvb3QgaXMgYm9vdGVkIGZyb20gQU1EIG9yIEludGVsCisgICAgQ09ORklHX1NZU19NQkFSCQkgICAgTUJBUiBiYXNlIGFkZHJlc3MKKyAgICBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkgICAgUmVzZXQgTUJBUiBiYXNlIGFkZHJlc3MKIAogMy4yIENvbXBpbGF0aW9uCiAgICBleHBvcnQgQ1JPU1NfQ09NUElMRT1jcm9zcy1jb21waWxlLXByZWZpeApkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5jbWkgYi9kb2MvUkVBRE1FLmNtaQppbmRleCA4ODQ4NTRkLi4wZWRkNTBhIDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLmNtaQorKysgYi9kb2MvUkVBRE1FLmNtaQpAQCAtMzUsMTcgKzM1LDE3IEBACiAKIE1lbW9yeSBNYXAgYWZ0ZXIgcmVsb2NhdGlvbjoKIAotICAgIDB4MDAwMCAwMDAwCQlDRkdfU0RSQU1fQkFTRQorICAgIDB4MDAwMCAwMDAwCQlDT05GSUdfU1lTX1NEUkFNX0JBU0UKIAkgIDoKICAgICAweDAwMEYgOUZGRgogCSAgOgogCSAgOgotICAgIDB4MDEwMCAwMDAwCQlDRkdfSU1NUiAoSW50ZXJuYWwgbWVtb3J5IG1hcCBiYXNlIGFkcmVzcykKKyAgICAweDAxMDAgMDAwMAkJQ09ORklHX1NZU19JTU1SIChJbnRlcm5hbCBtZW1vcnkgbWFwIGJhc2UgYWRyZXNzKQogCSAgOgogICAgIDB4MDEzMCA3RkZGCiAJICA6CiAJICA6Ci0gICAgMHgwMjAwIDAwMDAJCUNGR19GTEFTSF9CQVNFCisgICAgMHgwMjAwIDAwMDAJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQogCSAgOgogICAgIDB4MDI3QyBGRkZGCiAJICA6CmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLmRrMWMyMF9zdGQzMiBiL2RvYy9SRUFETUUuZGsxYzIwX3N0ZDMyCmluZGV4IDUyMWZhYjcuLjJiZTEyOTkgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuZGsxYzIwX3N0ZDMyCisrKyBiL2RvYy9SRUFETUUuZGsxYzIwX3N0ZDMyCkBAIC0yMCwyNSArMjAsMjUgQEAKIAlubyBEZWJ1ZyBDb3JlCiAJT24gQ2hpcCBJbnN0cnVtZW50YXRpb24gKE9DSSkgZW5hYmxlZAogCi0JVS1Cb290IENGRzoJQ0ZHX05JT1NfQ1BVX0NMSwkgICAgID0gNTAwMDAwMDAKLQkJCUNGR19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IDQwOTYKLQkJCUNGR19OSU9TX0NQVV9EQ0FDSEUJICAgICA9IDQwOTYKLQkJCUNGR19OSU9TX0NQVV9SRUdfTlVNUwkgICAgID0gMjU2Ci0JCQlDRkdfTklPU19DUFVfTVVMCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTVNURVAJICAgICA9IDEKLQkJCUNGR19OSU9TX0NQVV9EQkdfQ09SRQkgICAgID0gMAorCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfQ0xLCSAgICAgPSA1MDAwMDAwMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IDQwOTYKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfRENBQ0hFCSAgICAgPSA0MDk2CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1JFR19OVU1TCSAgICAgPSAyNTYKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfTVVMCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX01TVEVQCSAgICAgPSAxCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0RCR19DT1JFCSAgICAgPSAwCiAKIE9DSToJKFRPRE8pCiAKIElSUToJIE5yLiAgfCB1c2VkIGJ5CiAJLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JIDE2ICAgfCBUSU1FUjAJICB8ICBDRkdfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2Ci0JIDI1ICAgfCBVQVJUMAkgIHwgIENGR19OSU9TX0NQVV9VQVJUMF9JUlEgID0gMjUKLQkgMzAgICB8IExBTjkxQzExMSB8ICBDRkdfTklPU19DUFVfTEFOMF9JUlEgICA9IDMwCi0JIDM1ICAgfCBQSU81CSAgfCAgQ0ZHX05JT1NfQ1BVX1BJTzVfSVJRICAgPSAzNQotCSA0MCAgIHwgUElPMAkgIHwgIENGR19OSU9TX0NQVV9QSU8wX0lSUSAgID0gNDAKLQkgNDUgICB8IEFTTUkJICB8ICBDRkdfTklPU19DUFVfQVNNSTBfSVJRICA9IDQ1Ci0JIDUwICAgfCBUSU1FUjEJICB8ICBDRkdfTklPU19DUFVfVElNRVIxX0lSUSA9IDUwCisJIDE2ICAgfCBUSU1FUjAJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9JUlEgPSAxNgorCSAyNSAgIHwgVUFSVDAJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0lSUSAgPSAyNQorCSAzMCAgIHwgTEFOOTFDMTExIHwgIENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9JUlEgICA9IDMwCisJIDM1ICAgfCBQSU81CSAgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU81X0lSUSAgID0gMzUKKwkgNDAgICB8IFBJTzAJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfSVJRICAgPSA0MAorCSA0NSAgIHwgQVNNSQkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfQVNNSTBfSVJRICA9IDQ1CisJIDUwICAgfCBUSU1FUjEJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9JUlEgPSA1MAogCiBNRU1PUlk6CSA4IE1CeXRlIEZsYXNoCiAJIDEgTUJ5dGUgU1JBTQpAQCAtNDksOCArNDksOCBAQAogVGltZXI6CVRJTUVSMDogaGlnaCBwcmlvcml0eSBwcm9ncmFtbWFibGUgdGltZXIgKElSUTE2KQogCVRJTUVSMTogbG93IHByaW9yaXR5IGZpeGVkIHRpbWVyIGZvciAxMCBtcyBAIDUwIE1IeiAoSVJRNTApCiAKLQlVLUJvb3QgQ0ZHOglDRkdfTklPU19DUFVfVElDS19USU1FUgkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX1VTRVJfVElNRVIJICAgICA9IDAKKwlVLUJvb3QgQ0ZHOglDT05GSUdfU1lTX05JT1NfQ1BVX1RJQ0tfVElNRVIJICAgICA9IDEKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfVVNFUl9USU1FUgkgICAgID0gMAogCiBQSU86CSBOci4gIHwgZGVzY3JpcHRpb24KIAktLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTYzLDE0ICs2MywxNCBAQAogCSBQSU82IHwgQ0ZQT1dFUjogICAgMSBvdXRwdXQgdG8gY29udHJvbGwgQ0YgcG93ZXIgc3VwcGx5CiAJIFBJTzcgfCBDRkFUQVNFTDogICAxIG91dHB1dCB0byBjb250cm9sbCBDRiBBVEEgY2FyZCBzZWxlY3QKIAotCVUtQm9vdCBDRkc6CUNGR19OSU9TX0NQVV9CVVRUT05fUElPCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTENEX1BJTwkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX0xFRF9QSU8JICAgICA9IDIKLQkJCUNGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8gICAgPSAzCi0JCQlDRkdfTklPU19DUFVfUkVDT05GX1BJTwkgICAgID0gNAotCQkJQ0ZHX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8gICA9IDUKLQkJCUNGR19OSU9TX0NQVV9DRlBPV0VSX1BJTyAgICAgPSA2Ci0JCQlDRkdfTklPU19DUFVfQ0ZBVEFTRUxfUElPICAgID0gNworCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfQlVUVE9OX1BJTwkgICAgID0gMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9MQ0RfUElPCSAgICAgPSAxCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8JICAgICA9IDIKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPICAgID0gMworCQkJQ09ORklHX1NZU19OSU9TX0NQVV9SRUNPTkZfUElPCSAgICAgPSA0CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8gICA9IDUKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZQT1dFUl9QSU8gICAgID0gNgorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9DRkFUQVNFTF9QSU8gICAgPSA3CiAKIFVBUlQ6CVVBUlQwOiBmaXhlZCBiYXVkcmF0ZSBvZiAxMTUyMDAsIGZpeGVkIHByb3RvY29sIDhOMSwKIAkgICAgICAgd2l0aG91dCBoYW5kc2hha2UgUlRTL0NUUyAoSVJRMjUpCkBAIC05MSwxMCArOTEsMTAgQEAKICAgMHgwMjAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IFwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8Ci0gIFNEUkFNCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9TRFJBTV9TSVpFCisgIFNEUkFNCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fU0laRQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwgICA9IDB4MDEwMDAwMDAKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCAvCi0gIDB4MDEwMDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1NEUkFNX0JBU0UKKyAgMHgwMTAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX0JBU0UKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIDoJCQkgICAgICAgOgpAQCAtMTEwLDcgKzExMCw3IEBACiAgIEFTTUkgaS9mICAgICA6ICAgYW5kIGNvbnRlbnQgOgkgICAgICAgOiAgPiAweF9fX19fX19fCiAgIFs1XQkgICAgICAgOiAgIHVua25vd24pICAgIDoJICAgICAgIDogfAogCSAgICAgICB8CSAgICAgICB8CSAgICAgICB8IC8KLSAgMHgwMDkyMGIwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfQVNNSTAKKyAgMHgwMDkyMGIwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX0FTTUkwCiAJICAgICAgIHwJCQkgICAgICAgfAogCSAgICAgICA6CSAgICAgIGdhcAkgICAgICAgOgogCSAgICAgICB8CQkJICAgICAgIHwKQEAgLTEyMCw3ICsxMjAsNyBAQAogICBJREUgaS9mICAgICAgOiAgIGFuZCBjb250ZW50IDoJICAgICAgIDogID4gMHgwMDAwMDA4MAogICBbNl0JICAgICAgIDogICB1bmtub3duKSAgICA6CSAgICAgICA6IHwKIAkgICAgICAgfAkgICAgICAgfAkgICAgICAgfCAvCi0gIDB4MDA5MjBhMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX0lERTAKKyAgMHgwMDkyMGEwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX0lERTAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDFjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMTM2LDcgKzEzNiw3IEBACiAJICAgICAgIHwgIGNvbnRyb2wgKDEgYml0KQkgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHN0YXR1cyAoMiBiaXQpCSAocncpICB8IC8KLSAgMHgwMDkyMDllMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfVElNRVIxCisgIDB4MDA5MjA5ZTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjEKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzcJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMTQ0LDcgKzE0NCw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAod28pICB8IC8KLSAgMHgwMDkyMDlkMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPNworICAweDAwOTIwOWQwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPNwogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPNgkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0xNTIsNyArMTUyLDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDEgYml0KQkJICh3bykgIHwgLwotICAweDAwOTIwOWMwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU82CisgIDB4MDA5MjA5YzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU82CiAJICAgICAgIHwgIGVkZ2VjYXB0dXJlICgxIGJpdCkJIChydykgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU81CSAgICAgICB8ICBpbnRlcnJ1cHRtYXNrICgxIGJpdCkJIChydykgIHwgfApAQCAtMTYwLDcgKzE2MCw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAocm8pICB8IC8KLSAgMHgwMDkyMDliMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPNQorICAweDAwOTIwOWIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPNQogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPNAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0xNjgsNyArMTY4LDcgQEAKIAkgICAgICAgfCAgZGlyZWN0aW9uICgxIGJpdCkJIChydykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAocncpICB8IC8KLSAgMHgwMDkyMDlhMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPNAorICAweDAwOTIwOWEwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPNAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPMwkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0xNzYsNyArMTc2LDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDE2IGJpdCkJCSAod28pICB8IC8KLSAgMHgwMDkyMDk5MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPMworICAweDAwOTIwOTkwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPMwogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPMgkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0xODQsNyArMTg0LDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDggYml0KQkJICh3bykgIHwgLwotICAweDAwOTIwOTgwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8yCisgIDB4MDA5MjA5ODAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8xCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE5Miw3ICsxOTIsNyBAQAogCSAgICAgICB8ICBkaXJlY3Rpb24gKDExIGJpdCkJIChydykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxMSBiaXQpCQkgKHJ3KSAgfCAvCi0gIDB4MDA5MjA5NzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzEKKyAgMHgwMDkyMDk3MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEKIAkgICAgICAgfCAgZWRnZWNhcHR1cmUgKDQgYml0KQkgKHJ3KSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzAJICAgICAgIHwgIGludGVycnVwdG1hc2sgKDQgYml0KQkgKHJ3KSAgfCB8CkBAIC0yMDAsNyArMjAwLDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDQgYml0KQkJIChybykgIHwgLwotICAweDAwOTIwOTYwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8wCisgIDB4MDA5MjA5NjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgxYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTIxNiw3ICsyMTYsNyBAQAogCSAgICAgICB8ICBjb250cm9sICg0IGJpdCkJIChydykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBzdGF0dXMgKDIgYml0KQkgKHJ3KSAgfCAvCi0gIDB4MDA5MjA5NDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1RJTUVSMAorICAweDAwOTIwOTQwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwCiAJICAgICAgIHwJCQkgICAgICAgfCBcCiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6ICA+IChzcGFjZSBmb3IgVUFSVDEpCiAJICAgICAgIHwJCQkgICAgICAgfCAvCkBAIC0yMzYsMjggKzIzNiwyOCBAQAogCSAgICAgICB8ICB0eGRhdGEgKDggYml0KQkgKHdvKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHJ4ZGF0YSAoOCBiaXQpCSAocm8pICB8IC8KLSAgMHgwMDkyMDkwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfVUFSVDAKKyAgMHgwMDkyMDkwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwCiAKIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAgb24gY2hpcCBkZWJ1Z2dpbmcgIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KIAogICAweDAwOTIwOTAwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAJICAgICAgIHwJCQkgICAgICAgfCBcCiAJICAgICAgIDogIChyZWFsIHNpemUJCSAgICAgICA6IHwKLSAgT0NJIERlYnVnICAgIDogICBhbmQgY29udGVudAkJICAgICAgIDogID4gQ0ZHX05JT1NfQ1BVX09DSV9TSVpFCisgIE9DSSBEZWJ1ZyAgICA6ICAgYW5kIGNvbnRlbnQJCSAgICAgICA6ICA+IENPTkZJR19TWVNfTklPU19DUFVfT0NJX1NJWkUKIAkgICAgICAgOiAgIHVua25vd24pCQkgICAgICAgOiB8ICAgPSAweDAwMDAwMTAwCiAJICAgICAgIHwJCQkgICAgICAgfCAvCi0gIDB4MDA5MjA4MDAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgQ0ZHX05JT1NfQ1BVX09DSV9CQVNFCisgIDB4MDA5MjA4MDAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfQkFTRQogCiAtIC0gLSAtIC0gLSAtIC0gLSAtIC0Jb24gY2hpcCBtZW1vcnkJICAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KIAogICAweDAwOTIwODAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgXAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwKLSAgR0VSTVMJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgID4gQ0ZHX05JT1NfQ1BVX1JPTV9TSVpFCisgIEdFUk1TCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfUk9NX1NJWkUKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8ICAgPSAweDAwMDAwODAwCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgLwotICAweDAwOTIwMDAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLSAtIENGR19OSU9TX0NQVV9SU1RfVkVDVAotICAweDAwOTIwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9ST01fQkFTRQorICAweDAwOTIwMDAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLSAtIENPTkZJR19TWVNfTklPU19DUFVfUlNUX1ZFQ1QKKyAgMHgwMDkyMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9CQVNFCiAKIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQkgZXh0ZXJuYWwgaS9vCSAgLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQogCkBAIC0yNzksNyArMjc5LDcgQEAKIAkgICAgICAgfCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8IHwKICAgMHgwMDkxMDMwMCAtLSstLUxBTjkxQzExMV9SRUdJU1RFUlNfT0ZGU0VULS0tfCB8CiAJICAgICAgIHwJICAgICAgZ2FwCSAgICAgICB8IC8KLSAgMHgwMDkxMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfTEFOMF9CQVNFCisgIDB4MDA5MTAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JBU0UKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIDoJCQkgICAgICAgOgpAQCAtMjkzLDMwICsyOTMsMzAgQEAKICAgMHgwMDkwMDAwMCAtLSszMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wKwogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IFwgXAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwgfAotCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwgID4gQ0ZHX05JT1NfQ1BVX1ZFQ19TSVpFCisJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19TSVpFCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfCB8ICAgPSAweDAwMDAwMTAwCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfCAvCi0gIDB4MDA4ZmZmMDAgICB8LSAtIC0gLSAtIC0gLSAtOi0gLSAtIC0gLSAtIC0gLSstfC0gQ0ZHX05JT1NfQ1BVX1ZFQ19CQVNFCi0gIDB4MDA4ZmZmMDAgICB8LSAtIC0gLSAtIC0gLSAtOi0gLSAtIC0gLSAtIC0gLSstfC0gQ0ZHX05JT1NfQ1BVX1NUQUNLCisgIDB4MDA4ZmZmMDAgICB8LSAtIC0gLSAtIC0gLSAtOi0gLSAtIC0gLSAtIC0gLSstfC0gQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRQorICAweDAwOGZmZjAwICAgfC0gLSAtIC0gLSAtIC0gLTotIC0gLSAtIC0gLSAtIC0rLXwtIENPTkZJR19TWVNfTklPU19DUFVfU1RBQ0sKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8IFwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8IHwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8ICA+IHN0YWNrIGFyZWEKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8IHwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8IFYKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8Ci0gIFNSQU0JICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgID4gQ0ZHX05JT1NfQ1BVX1NSQU1fU0laRQorICBTUkFNCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfU1JBTV9TSVpFCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfCAgID0gMHgwMDEwMDAwMAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IC8KLSAgMHgwMDgwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfU1JBTV9CQVNFCisgIDB4MDA4MDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX0JBU0UKICAgMHgwMDgwMDAwMCAtLS04LS0tLS0tLS0tLS0tLTR8My0tLS0tLS0tLS0tLS0wLQogCSAgICAgICB8ICBzZWN0b3IgMTI3CQkgICAgICAgfCBcCiAgICAgKyAweDdmMDAwMCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwKLSAgRmxhc2gJICAgICAgIHwtICAgLQktICAgLSAgOiAgLSAgIC0JICAtICAgLXwgID4gQ0ZHX05JT1NfQ1BVX0ZMQVNIX1NJWkUKKyAgRmxhc2gJICAgICAgIHwtICAgLQktICAgLSAgOiAgLSAgIC0JICAtICAgLXwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFCiAJICAgICAgIHwgIHNlY3RvciAxICAgICA6CSAgICAgICB8IHwgICA9IDB4MDA4MDAwMDAKICAgICArIDB4MDEwMDAwIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHNlY3RvciAwIChzaXplID0gMHgxMDAwMCkgICAgfCAvCi0gIDB4MDAwMDAwMDAgLS0tOC0tLS0tLS0tLS0tLS00fDMtLS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX0ZMQVNIX0JBU0UKKyAgMHgwMDAwMDAwMCAtLS04LS0tLS0tLS0tLS0tLTR8My0tLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX0JBU0UKIAogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLmRrMXMxMF9tbGRrMjAgYi9kb2MvUkVBRE1FLmRrMXMxMF9tbGRrMjAKaW5kZXggZmNmODE3MC4uNzRlMDdhOSAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5kazFzMTBfbWxkazIwCisrKyBiL2RvYy9SRUFETUUuZGsxczEwX21sZGsyMApAQCAtMTgsMjkgKzE4LDI5IEBACiAJbm8gRGVidWcgQ29yZQogCW5vIE9uIENoaXAgSW5zdHJ1bWVudGF0aW9uIChPQ0kpCiAKLQlVLUJvb3QgQ0ZHOglDRkdfTklPU19DUFVfQ0xLCSAgICAgPSA3NTAwMDAwMAotCQkJQ0ZHX05JT1NfQ1BVX0lDQUNIRQkgICAgID0gKG5vdCBwcmVzZW50KQotCQkJQ0ZHX05JT1NfQ1BVX0RDQUNIRQkgICAgID0gKG5vdCBwcmVzZW50KQotCQkJQ0ZHX05JT1NfQ1BVX1JFR19OVU1TCSAgICAgPSA1MTIKLQkJCUNGR19OSU9TX0NQVV9NVUwJICAgICA9IDAKLQkJCUNGR19OSU9TX0NQVV9NU1RFUAkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX0RCR19DT1JFCSAgICAgPSAwCisJVS1Cb290IENGRzoJQ09ORklHX1NZU19OSU9TX0NQVV9DTEsJICAgICA9IDc1MDAwMDAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0lDQUNIRQkgICAgID0gKG5vdCBwcmVzZW50KQorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9EQ0FDSEUJICAgICA9IChub3QgcHJlc2VudCkKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfUkVHX05VTVMJICAgICA9IDUxMgorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9NVUwJICAgICA9IDAKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfTVNURVAJICAgICA9IDEKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfREJHX0NPUkUJICAgICA9IDAKIAogSVJROgkgTnIuICB8IHVzZWQgYnkKIAktLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQkgMTYgICB8IFRJTUVSMAkgIHwgIENGR19OSU9TX0NQVV9USU1FUjBfSVJRID0gMTYKLQkgMTcgICB8IFVBUlQwCSAgfCAgQ0ZHX05JT1NfQ1BVX1VBUlQwX0lSUSAgPSAxNwotCSAxOCAgIHwgVUFSVDEJICB8ICBDRkdfTklPU19DUFVfVUFSVDFfSVJRICA9IDE4Ci0JIDIwICAgfCBMQU45MUMxMTEgfCAgQ0ZHX05JT1NfQ1BVX0xBTjBfSVJRICAgPSAyMAotCSAyNSAgIHwgSURFMAkgIHwgIENGR19OSU9TX0NQVV9JREUwX0lSUSAgID0gMjUKKwkgMTYgICB8IFRJTUVSMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2CisJIDE3ICAgfCBVQVJUMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfSVJRICA9IDE3CisJIDE4ICAgfCBVQVJUMQkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDFfSVJRICA9IDE4CisJIDIwICAgfCBMQU45MUMxMTEgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0lSUSAgID0gMjAKKwkgMjUgICB8IElERTAJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX0lERTBfSVJRICAgPSAyNQogCiBNRU1PUlk6CSA4IE1CeXRlIEZsYXNoCiAJMTYgTUJ5dGUgU0RSQU0KIAogVGltZXI6CVRJTUVSMDogaGlnaCBwcmlvcml0eSBwcm9ncmFtbWFibGUgdGltZXIgKElSUTE2KQogCi0JVS1Cb290IENGRzoJQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIJICAgICA9IDAKLQkJCUNGR19OSU9TX0NQVV9VU0VSX1RJTUVSCSAgICAgPSAobm90IHByZXNlbnQpCisJVS1Cb290IENGRzoJQ09ORklHX1NZU19OSU9TX0NQVV9USUNLX1RJTUVSCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1VTRVJfVElNRVIJICAgICA9IChub3QgcHJlc2VudCkKIAogUElPOgkgTnIuICB8IGRlc2NyaXB0aW9uCiAJLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC01NCwxNCArNTQsMTQgQEAKIAkgICAgICB8IENGUFJFU0VOVDogIDEgaW5wdXQgZm9yIENGIHByZXNlbnQgZXZlbnQgKElSUTM1KQogCSAgICAgIHwgQ0ZBVEFTRUw6ICAgMSBvdXRwdXQgdG8gY29udHJvbGwgQ0YgQVRBIGNhcmQgc2VsZWN0CiAKLQlVLUJvb3QgQ0ZHOglDRkdfTklPU19DUFVfQlVUVE9OX1BJTwkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX0xDRF9QSU8JICAgICA9IChub3QgcHJlc2VudCkKLQkJCUNGR19OSU9TX0NQVV9MRURfUElPCSAgICAgPSAobm90IHByZXNlbnQpCi0JCQlDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPICAgID0gKG5vdCBwcmVzZW50KQotCQkJQ0ZHX05JT1NfQ1BVX1JFQ09ORl9QSU8JICAgICA9IChub3QgcHJlc2VudCkKLQkJCUNGR19OSU9TX0NQVV9DRlBSRVNFTlRfUElPICAgPSAobm90IHByZXNlbnQpCi0JCQlDRkdfTklPU19DUFVfQ0ZQT1dFUl9QSU8gICAgID0gMAotCQkJQ0ZHX05JT1NfQ1BVX0NGQVRBU0VMX1BJTyAgICA9IChub3QgcHJlc2VudCkKKwlVLUJvb3QgQ0ZHOglDT05GSUdfU1lTX05JT1NfQ1BVX0JVVFRPTl9QSU8JICAgICA9IDEKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfTENEX1BJTwkgICAgID0gKG5vdCBwcmVzZW50KQorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPCSAgICAgPSAobm90IHByZXNlbnQpCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyAgICA9IChub3QgcHJlc2VudCkKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfUkVDT05GX1BJTwkgICAgID0gKG5vdCBwcmVzZW50KQorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9DRlBSRVNFTlRfUElPICAgPSAobm90IHByZXNlbnQpCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0NGUE9XRVJfUElPICAgICA9IDAKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZBVEFTRUxfUElPICAgID0gKG5vdCBwcmVzZW50KQogCiBVQVJUOglVQVJUMDogZml4ZWQgYmF1ZHJhdGUgb2YgMTE1MjAwLCBmaXhlZCBwcm90b2NvbCA4TjIsCiAJICAgICAgIHdpdGhvdXQgaGFuZHNoYWtlIFJUUy9DVFMgKElSUTE3KQpAQCAtODEsNyArODEsNyBAQAogCiAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gICBleHRlcm5hbCBtZW1vcnkgICAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtCiAKLSAgMHgwMjAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfU1RBQ0sKKyAgMHgwMjAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1NUQUNLCiAgIDB4MDIwMDAwMDAgLS0rMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMCsKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCBcIFwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwKQEAgLTkwLDI1ICs5MCwyNSBAQAogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgVgogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8Ci0gIFNEUkFNCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9TRFJBTV9TSVpFCisgIFNEUkFNCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fU0laRQogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgICA9IDB4MDEwMDAwMDAKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8CiAgIDB4MDEwMDAxMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstfC0KIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IFwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwKLQkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8ICA+IENGR19OSU9TX0NQVV9WRUNfU0laRQorCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfU0laRQogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgfCAgID0gMHgwMDAwMDEwMAogCSAgICAgICB8CQkJICAgICAgIHwgLyAvCi0gIDB4MDEwMDAwMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstIC0gQ0ZHX05JT1NfQ1BVX1ZFQ19CQVNFCi0gIDB4MDEwMDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1NEUkFNX0JBU0UKKyAgMHgwMTAwMDAwMCAgIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtKy0gLSBDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19CQVNFCisgIDB4MDEwMDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9CQVNFCiAJICAgICAgIHwgIHNlY3RvciAxMjcJCSAgICAgICB8IFwKICAgICArIDB4N2YwMDAwIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfAotICBGbGFzaAkgICAgICAgfC0gICAtCS0gICAtICA6ICAtICAgLQkgIC0gICAtfCAgPiBDRkdfTklPU19DUFVfRkxBU0hfU0laRQorICBGbGFzaAkgICAgICAgfC0gICAtCS0gICAtICA6ICAtICAgLQkgIC0gICAtfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUKIAkgICAgICAgfCAgc2VjdG9yIDEgICAgIDoJICAgICAgIHwgfCAgID0gMHgwMDgwMDAwMAogICAgICsgMHgwMTAwMDAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgc2VjdG9yIDAgKHNpemUgPSAweDEwMDAwKSAgICB8IC8KLSAgMHgwMDgwMDAwMCAtLS04LS0tLS0tLS0tLS0tLTR8My0tLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfRkxBU0hfQkFTRQorICAweDAwODAwMDAwIC0tLTgtLS0tLS0tLS0tLS0tNHwzLS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfQkFTRQogCSAgICAgICB8CQkJICAgICAgIHwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDoKIAkgICAgICAgOgkJCSAgICAgICA6CkBAIC0xMzYsNyArMTM2LDcgQEAKIAkgICAgICAgfCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8IHwKICAgMHgwMDAxMDMwMCAtLSstLUxBTjkxQzExMV9SRUdJU1RFUlNfT0ZGU0VULS0tfCB8CiAJICAgICAgIHwJICAgICAgZ2FwCSAgICAgICB8IC8KLSAgMHgwMDAxMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfTEFOMF9CQVNFCisgIDB4MDAwMTAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JBU0UKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIDoJCQkgICAgICAgOgpAQCAtMTUyLDcgKzE1Miw3IEBACiAgIElERSBpL2YgICAgICA6ICAgYW5kIGNvbnRlbnQgOgkgICAgICAgOiAgPiAweDAwMDAwMDgwCiAgIFs1XQkgICAgICAgOiAgIHVua25vd24pICAgIDoJICAgICAgIDogfAogCSAgICAgICB8CSAgICAgICB8CSAgICAgICB8IC8KLSAgMHgwMDAwMDkwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfSURFMAorICAweDAwMDAwOTAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfSURFMAogCSAgICAgICB8CQkJICAgICAgIHwgXAogCSAgICAgICA6CSAgICAgIGdhcAkgICAgICAgOiAgPiAoc3BhY2UgZm9yIFBJTzQuLjcpCiAJICAgICAgIHwJCQkgICAgICAgfCAvCkBAIC0xNzIsNyArMTcyLDcgQEAKIAkgICAgICAgfCAgdHhkYXRhICg4IGJpdCkJICh3bykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICByeGRhdGEgKDggYml0KQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA4YTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1VBUlQxCisgIDB4MDAwMDA4YTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMQogCSAgICAgICB8CQkJICAgICAgIHwgXAogCSAgICAgICA6CSAgICAgIGdhcAkgICAgICAgOiAgPiAoc3BhY2UgZm9yIFBJTzIuLjMpCiAJICAgICAgIHwJCQkgICAgICAgfCAvCkBAIC0xODQsNyArMTg0LDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDQgYml0KQkJIChybykgIHwgLwotICAweDAwMDAwODcwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8xCisgIDB4MDAwMDA4NzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8wCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE5Miw3ICsxOTIsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHdvKSAgfCAvCi0gIDB4MDAwMDA4NjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzAKKyAgMHgwMDAwMDg2MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDFjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMjA4LDcgKzIwOCw3IEBACiAJICAgICAgIHwgIGNvbnRyb2wgKDQgYml0KQkgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHN0YXR1cyAoMiBiaXQpCSAocncpICB8IC8KLSAgMHgwMDAwMDg0MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfVElNRVIwCisgIDB4MDAwMDA4NDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjAKIAkgICAgICAgfAkJCSAgICAgICB8IFwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDogID4gKHNwYWNlIGZvciBVQVJUMikKIAkgICAgICAgfAkJCSAgICAgICB8IC8KQEAgLTIyOCwxOCArMjI4LDE4IEBACiAJICAgICAgIHwgIHR4ZGF0YSAoOCBiaXQpCSAod28pICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgcnhkYXRhICg4IGJpdCkJIChybykgIHwgLwotICAweDAwMDAwODAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9VQVJUMAorICAweDAwMDAwODAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDAKIAogLSAtIC0gLSAtIC0gLSAtIC0gLSAtICBvbiBjaGlwIG1lbW9yeSAxCSAgLSAtIC0gLSAtIC0gLSAtIC0gLSAtCiAKICAgMHgwMDAwMDgwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IFwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8Ci0gIEdFUk1TCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9ST01fU0laRQorICBHRVJNUwkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9TSVpFCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfCAgID0gMHgwMDAwMDgwMAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IC8KLSAgMHgwMDAwMDAwMCAgIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtKy0gLSBDRkdfTklPU19DUFVfUlNUX1ZFQ1QKLSAgMHgwMDAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUk9NX0JBU0UKKyAgMHgwMDAwMDAwMCAgIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtKy0gLSBDT05GSUdfU1lTX05JT1NfQ1BVX1JTVF9WRUNUCisgIDB4MDAwMDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9ST01fQkFTRQogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAJRiBMIEEgUyBIICAgTSBFIE0gTyBSIFkJICBBIEwgTCBPIEMgQSBUIEkgTyBOCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLmRrMXMxMF9zdGQzMiBiL2RvYy9SRUFETUUuZGsxczEwX3N0ZDMyCmluZGV4IGQ2NDllYjMuLjYyMmIyYjkgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuZGsxczEwX3N0ZDMyCisrKyBiL2RvYy9SRUFETUUuZGsxczEwX3N0ZDMyCkBAIC0xOSwyNCArMTksMjQgQEAKIAlubyBEZWJ1ZyBDb3JlCiAJT24gQ2hpcCBJbnN0cnVtZW50YXRpb24gKE9DSSkgZW5hYmxlZAogCi0JVS1Cb290IENGRzoJQ0ZHX05JT1NfQ1BVX0NMSwkgICAgID0gNTAwMDAwMDAKLQkJCUNGR19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IDQwOTYKLQkJCUNGR19OSU9TX0NQVV9EQ0FDSEUJICAgICA9IDQwOTYKLQkJCUNGR19OSU9TX0NQVV9SRUdfTlVNUwkgICAgID0gMjU2Ci0JCQlDRkdfTklPU19DUFVfTVVMCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTVNURVAJICAgICA9IDEKLQkJCUNGR19OSU9TX0NQVV9EQkdfQ09SRQkgICAgID0gMAorCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfQ0xLCSAgICAgPSA1MDAwMDAwMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IDQwOTYKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfRENBQ0hFCSAgICAgPSA0MDk2CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1JFR19OVU1TCSAgICAgPSAyNTYKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfTVVMCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX01TVEVQCSAgICAgPSAxCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0RCR19DT1JFCSAgICAgPSAwCiAKIE9DSToJKFRPRE8pCiAKIElSUToJIE5yLiAgfCB1c2VkIGJ5CiAJLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JIDE2ICAgfCBUSU1FUjAJICB8ICBDRkdfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2Ci0JIDI1ICAgfCBVQVJUMAkgIHwgIENGR19OSU9TX0NQVV9VQVJUMF9JUlEgID0gMjUKLQkgMzAgICB8IExBTjkxQzExMSB8ICBDRkdfTklPU19DUFVfTEFOMF9JUlEgICA9IDMwCi0JIDM1ICAgfCBQSU81CSAgfCAgQ0ZHX05JT1NfQ1BVX1BJTzVfSVJRICAgPSAzNQotCSA0MCAgIHwgUElPMAkgIHwgIENGR19OSU9TX0NQVV9QSU8wX0lSUSAgID0gNDAKLQkgNTAgICB8IFRJTUVSMQkgIHwgIENGR19OSU9TX0NQVV9USU1FUjFfSVJRID0gNTAKKwkgMTYgICB8IFRJTUVSMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2CisJIDI1ICAgfCBVQVJUMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfSVJRICA9IDI1CisJIDMwICAgfCBMQU45MUMxMTEgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0lSUSAgID0gMzAKKwkgMzUgICB8IFBJTzUJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfSVJRICAgPSAzNQorCSA0MCAgIHwgUElPMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfUElPMF9JUlEgICA9IDQwCisJIDUwICAgfCBUSU1FUjEJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9JUlEgPSA1MAogCiBNRU1PUlk6CSA4IE1CeXRlIEZsYXNoCiAJIDEgTUJ5dGUgU1JBTQpAQCAtNDUsOCArNDUsOCBAQAogVGltZXI6CVRJTUVSMDogaGlnaCBwcmlvcml0eSBwcm9ncmFtbWFibGUgdGltZXIgKElSUTE2KQogCVRJTUVSMTogbG93IHByaW9yaXR5IGZpeGVkIHRpbWVyIGZvciAxMCBtcyBAIDUwIE1IeiAoSVJRNTApCiAKLQlVLUJvb3QgQ0ZHOglDRkdfTklPU19DUFVfVElDS19USU1FUgkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX1VTRVJfVElNRVIJICAgICA9IDAKKwlVLUJvb3QgQ0ZHOglDT05GSUdfU1lTX05JT1NfQ1BVX1RJQ0tfVElNRVIJICAgICA9IDEKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfVVNFUl9USU1FUgkgICAgID0gMAogCiBQSU86CSBOci4gIHwgZGVzY3JpcHRpb24KIAktLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTU5LDE0ICs1OSwxNCBAQAogCSBQSU82IHwgQ0ZQT1dFUjogICAgMSBvdXRwdXQgdG8gY29udHJvbGwgQ0YgcG93ZXIgc3VwcGx5CiAJIFBJTzcgfCBDRkFUQVNFTDogICAxIG91dHB1dCB0byBjb250cm9sbCBDRiBBVEEgY2FyZCBzZWxlY3QKIAotCVUtQm9vdCBDRkc6CUNGR19OSU9TX0NQVV9CVVRUT05fUElPCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTENEX1BJTwkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX0xFRF9QSU8JICAgICA9IDIKLQkJCUNGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8gICAgPSAzCi0JCQlDRkdfTklPU19DUFVfUkVDT05GX1BJTwkgICAgID0gNAotCQkJQ0ZHX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8gICA9IDUKLQkJCUNGR19OSU9TX0NQVV9DRlBPV0VSX1BJTyAgICAgPSA2Ci0JCQlDRkdfTklPU19DUFVfQ0ZBVEFTRUxfUElPICAgID0gNworCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfQlVUVE9OX1BJTwkgICAgID0gMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9MQ0RfUElPCSAgICAgPSAxCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8JICAgICA9IDIKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPICAgID0gMworCQkJQ09ORklHX1NZU19OSU9TX0NQVV9SRUNPTkZfUElPCSAgICAgPSA0CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8gICA9IDUKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZQT1dFUl9QSU8gICAgID0gNgorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9DRkFUQVNFTF9QSU8gICAgPSA3CiAKIFVBUlQ6CVVBUlQwOiBmaXhlZCBiYXVkcmF0ZSBvZiAxMTUyMDAsIGZpeGVkIHByb3RvY29sIDhOMSwKIAkgICAgICAgd2l0aG91dCBoYW5kc2hha2UgUlRTL0NUUyAoSVJRMjUpCkBAIC04NywxMCArODcsMTAgQEAKICAgMHgwMjAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IFwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8Ci0gIFNEUkFNCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9TRFJBTV9TSVpFCisgIFNEUkFNCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fU0laRQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwgICA9IDB4MDEwMDAwMDAKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCAvCi0gIDB4MDEwMDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1NEUkFNX0JBU0UKKyAgMHgwMTAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX0JBU0UKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIDoJCQkgICAgICAgOgpAQCAtMTA2LDcgKzEwNiw3IEBACiAgIElERSBpL2YgICAgICA6ICAgYW5kIGNvbnRlbnQgOgkgICAgICAgOiAgPiAweDAwMDAwMDgwCiAgIFs1XQkgICAgICAgOiAgIHVua25vd24pICAgIDoJICAgICAgIDogfAogCSAgICAgICB8CSAgICAgICB8CSAgICAgICB8IC8KLSAgMHgwMDkyMGEwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfSURFMAorICAweDAwOTIwYTAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfSURFMAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MWMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0xMjIsNyArMTIyLDcgQEAKIAkgICAgICAgfCAgY29udHJvbCAoMSBiaXQpCSAocncpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgc3RhdHVzICgyIGJpdCkJIChydykgIHwgLwotICAweDAwOTIwOWUwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9USU1FUjEKKyAgMHgwMDkyMDllMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMQogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPNwkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0xMzAsNyArMTMwLDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDEgYml0KQkJICh3bykgIHwgLwotICAweDAwOTIwOWQwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU83CisgIDB4MDA5MjA5ZDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU83CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU82CSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTEzOCw3ICsxMzgsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHdvKSAgfCAvCi0gIDB4MDA5MjA5YzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzYKKyAgMHgwMDkyMDljMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzYKIAkgICAgICAgfCAgZWRnZWNhcHR1cmUgKDEgYml0KQkgKHJ3KSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzUJICAgICAgIHwgIGludGVycnVwdG1hc2sgKDEgYml0KQkgKHJ3KSAgfCB8CkBAIC0xNDYsNyArMTQ2LDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDEgYml0KQkJIChybykgIHwgLwotICAweDAwOTIwOWIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU81CisgIDB4MDA5MjA5YjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU81CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU80CSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE1NCw3ICsxNTQsNyBAQAogCSAgICAgICB8ICBkaXJlY3Rpb24gKDEgYml0KQkgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDEgYml0KQkJIChydykgIHwgLwotICAweDAwOTIwOWEwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU80CisgIDB4MDA5MjA5YTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU80CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8zCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE2Miw3ICsxNjIsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMTYgYml0KQkJICh3bykgIHwgLwotICAweDAwOTIwOTkwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8zCisgIDB4MDA5MjA5OTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8yCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE3MCw3ICsxNzAsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoOCBiaXQpCQkgKHdvKSAgfCAvCi0gIDB4MDA5MjA5ODAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzIKKyAgMHgwMDkyMDk4MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzIKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzEJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMTc4LDcgKzE3OCw3IEBACiAJICAgICAgIHwgIGRpcmVjdGlvbiAoMTEgYml0KQkgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDExIGJpdCkJCSAocncpICB8IC8KLSAgMHgwMDkyMDk3MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPMQorICAweDAwOTIwOTcwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPMQogCSAgICAgICB8ICBlZGdlY2FwdHVyZSAoNCBiaXQpCSAocncpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPMAkgICAgICAgfCAgaW50ZXJydXB0bWFzayAoNCBiaXQpCSAocncpICB8IHwKQEAgLTE4Niw3ICsxODYsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoNCBiaXQpCQkgKHJvKSAgfCAvCi0gIDB4MDA5MjA5NjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzAKKyAgMHgwMDkyMDk2MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDFjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMjAyLDcgKzIwMiw3IEBACiAJICAgICAgIHwgIGNvbnRyb2wgKDQgYml0KQkgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHN0YXR1cyAoMiBiaXQpCSAocncpICB8IC8KLSAgMHgwMDkyMDk0MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfVElNRVIwCisgIDB4MDA5MjA5NDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjAKIAkgICAgICAgfAkJCSAgICAgICB8IFwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDogID4gKHNwYWNlIGZvciBVQVJUMSkKIAkgICAgICAgfAkJCSAgICAgICB8IC8KQEAgLTIyMiwyOCArMjIyLDI4IEBACiAJICAgICAgIHwgIHR4ZGF0YSAoOCBiaXQpCSAod28pICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgcnhkYXRhICg4IGJpdCkJIChybykgIHwgLwotICAweDAwOTIwOTAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9VQVJUMAorICAweDAwOTIwOTAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDAKIAogLSAtIC0gLSAtIC0gLSAtIC0gLSAtICBvbiBjaGlwIGRlYnVnZ2luZyAgLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQogCiAgIDB4MDA5MjA5MDAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAkgICAgICAgfAkJCSAgICAgICB8IFwKIAkgICAgICAgOiAgKHJlYWwgc2l6ZQkJICAgICAgIDogfAotICBPQ0kgRGVidWcgICAgOiAgIGFuZCBjb250ZW50CQkgICAgICAgOiAgPiBDRkdfTklPU19DUFVfT0NJX1NJWkUKKyAgT0NJIERlYnVnICAgIDogICBhbmQgY29udGVudAkJICAgICAgIDogID4gQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfU0laRQogCSAgICAgICA6ICAgdW5rbm93bikJCSAgICAgICA6IHwgICA9IDB4MDAwMDAxMDAKIAkgICAgICAgfAkJCSAgICAgICB8IC8KLSAgMHgwMDkyMDgwMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICBDRkdfTklPU19DUFVfT0NJX0JBU0UKKyAgMHgwMDkyMDgwMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9CQVNFCiAKIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAgb24gY2hpcCBtZW1vcnkgMgkgIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQogCiAgIDB4MDA5MjA4MDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0KIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCBcCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfAotICBHRVJNUwkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCAgPiBDRkdfTklPU19DUFVfUk9NX1NJWkUKKyAgR0VSTVMJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9ST01fU0laRQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwgICA9IDB4MDAwMDA4MDAKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCAvCi0gIDB4MDA5MjAwMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstIC0gQ0ZHX05JT1NfQ1BVX1JTVF9WRUNUCi0gIDB4MDA5MjAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1JPTV9CQVNFCisgIDB4MDA5MjAwMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstIC0gQ09ORklHX1NZU19OSU9TX0NQVV9SU1RfVkVDVAorICAweDAwOTIwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUk9NX0JBU0UKIAogLSAtIC0gLSAtIC0gLSAtIC0gLSAtCSBleHRlcm5hbCBpL28JICAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtCiAKQEAgLTI2NSwxNyArMjY1LDE3IEBACiAJICAgICAgIHwgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfCB8CiAgIDB4MDA5MTAzMDAgLS0rLS1MQU45MUMxMTFfUkVHSVNURVJTX09GRlNFVC0tLXwgfAogCSAgICAgICB8CSAgICAgIGdhcAkgICAgICAgfCAvCi0gIDB4MDA5MTAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX0xBTjBfQkFTRQorICAweDAwOTEwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CQVNFCiAKIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAgb24gY2hpcCBtZW1vcnkgMQkgIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQogCiAgIDB4MDA5MTAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0KIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCBcCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfAotICBvbmNoaXAgUkFNICAgfAkgICAgICAgOgkgICAgICAgfCAgPiBDRkdfTklPU19DUFVfUkFNX1NJWkUKKyAgb25jaGlwIFJBTSAgIHwJICAgICAgIDoJICAgICAgIHwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9SQU1fU0laRQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwgICA9IDB4MDAwMTAwMDAKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCAvCi0gIDB4MDA5MDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1JBTV9CQVNFCisgIDB4MDA5MDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9SQU1fQkFTRQogCiAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gIGV4dGVybmFsIG1lbW9yeSAxICAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtCiAKQEAgLTI4MywzMCArMjgzLDMwIEBACiAgIDB4MDA5MDAwMDAgLS0rMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMCsKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCBcIFwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwKLQkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8ICA+IENGR19OSU9TX0NQVV9WRUNfU0laRQorCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfU0laRQogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgfCAgID0gMHgwMDAwMDEwMAogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgLwotICAweDAwOGZmZjAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLXwtIENGR19OSU9TX0NQVV9WRUNfQkFTRQotICAweDAwOGZmZjAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLXwtIENGR19OSU9TX0NQVV9TVEFDSworICAweDAwOGZmZjAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLXwtIENPTkZJR19TWVNfTklPU19DUFVfVkVDX0JBU0UKKyAgMHgwMDhmZmYwMCAgIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtKy18LSBDT05GSUdfU1lTX05JT1NfQ1BVX1NUQUNLCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCBcCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCB8CiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAgPiBzdGFjayBhcmVhCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCB8CiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCBWCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfAotICBTUkFNCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9TUkFNX1NJWkUKKyAgU1JBTQkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fU0laRQogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgICA9IDB4MDAxMDAwMDAKIAkgICAgICAgfAkJCSAgICAgICB8IC8KLSAgMHgwMDgwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfU1JBTV9CQVNFCisgIDB4MDA4MDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX0JBU0UKICAgMHgwMDgwMDAwMCAtLS04LS0tLS0tLS0tLS0tLTR8My0tLS0tLS0tLS0tLS0wLQogCSAgICAgICB8ICBzZWN0b3IgMTI3CQkgICAgICAgfCBcCiAgICAgKyAweDdmMDAwMCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwKLSAgRmxhc2gJICAgICAgIHwtICAgLQktICAgLSAgOiAgLSAgIC0JICAtICAgLXwgID4gQ0ZHX05JT1NfQ1BVX0ZMQVNIX1NJWkUKKyAgRmxhc2gJICAgICAgIHwtICAgLQktICAgLSAgOiAgLSAgIC0JICAtICAgLXwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFCiAJICAgICAgIHwgIHNlY3RvciAxICAgICA6CSAgICAgICB8IHwgICA9IDB4MDA4MDAwMDAKICAgICArIDB4MDEwMDAwIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHNlY3RvciAwIChzaXplID0gMHgxMDAwMCkgICAgfCAvCi0gIDB4MDAwMDAwMDAgLS0tOC0tLS0tLS0tLS0tLS00fDMtLS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX0ZMQVNIX0JBU0UKKyAgMHgwMDAwMDAwMCAtLS04LS0tLS0tLS0tLS0tLTR8My0tLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX0JBU0UKIAogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLmRrMXM0MF9zdGQzMiBiL2RvYy9SRUFETUUuZGsxczQwX3N0ZDMyCmluZGV4IDA4YzgyNDQuLjlhMGVhMDYgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuZGsxczQwX3N0ZDMyCisrKyBiL2RvYy9SRUFETUUuZGsxczQwX3N0ZDMyCkBAIC0xOSwyNCArMTksMjQgQEAKIAlubyBEZWJ1ZyBDb3JlCiAJT24gQ2hpcCBJbnN0cnVtZW50YXRpb24gKE9DSSkgZW5hYmxlZAogCi0JVS1Cb290IENGRzoJQ0ZHX05JT1NfQ1BVX0NMSwkgICAgID0gNTAwMDAwMDAKLQkJCUNGR19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IDQwOTYKLQkJCUNGR19OSU9TX0NQVV9EQ0FDSEUJICAgICA9IDQwOTYKLQkJCUNGR19OSU9TX0NQVV9SRUdfTlVNUwkgICAgID0gMjU2Ci0JCQlDRkdfTklPU19DUFVfTVVMCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTVNURVAJICAgICA9IDEKLQkJCUNGR19OSU9TX0NQVV9EQkdfQ09SRQkgICAgID0gMAorCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfQ0xLCSAgICAgPSA1MDAwMDAwMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IDQwOTYKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfRENBQ0hFCSAgICAgPSA0MDk2CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1JFR19OVU1TCSAgICAgPSAyNTYKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfTVVMCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX01TVEVQCSAgICAgPSAxCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0RCR19DT1JFCSAgICAgPSAwCiAKIE9DSToJKFRPRE8pCiAKIElSUToJIE5yLiAgfCB1c2VkIGJ5CiAJLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JIDE2ICAgfCBUSU1FUjAJICB8ICBDRkdfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2Ci0JIDI1ICAgfCBVQVJUMAkgIHwgIENGR19OSU9TX0NQVV9VQVJUMF9JUlEgID0gMjUKLQkgMzAgICB8IExBTjkxQzExMSB8ICBDRkdfTklPU19DUFVfTEFOMF9JUlEgICA9IDMwCi0JIDM1ICAgfCBQSU81CSAgfCAgQ0ZHX05JT1NfQ1BVX1BJTzVfSVJRICAgPSAzNQotCSA0MCAgIHwgUElPMAkgIHwgIENGR19OSU9TX0NQVV9QSU8wX0lSUSAgID0gNDAKLQkgNTAgICB8IFRJTUVSMQkgIHwgIENGR19OSU9TX0NQVV9USU1FUjFfSVJRID0gNTAKKwkgMTYgICB8IFRJTUVSMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2CisJIDI1ICAgfCBVQVJUMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfSVJRICA9IDI1CisJIDMwICAgfCBMQU45MUMxMTEgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0lSUSAgID0gMzAKKwkgMzUgICB8IFBJTzUJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfSVJRICAgPSAzNQorCSA0MCAgIHwgUElPMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfUElPMF9JUlEgICA9IDQwCisJIDUwICAgfCBUSU1FUjEJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9JUlEgPSA1MAogCiBNRU1PUlk6CSA4IE1CeXRlIEZsYXNoCiAJIDEgTUJ5dGUgU1JBTQpAQCAtNDUsOCArNDUsOCBAQAogVGltZXI6CVRJTUVSMDogaGlnaCBwcmlvcml0eSBwcm9ncmFtbWFibGUgdGltZXIgKElSUTE2KQogCVRJTUVSMTogbG93IHByaW9yaXR5IGZpeGVkIHRpbWVyIGZvciAxMCBtcyBAIDUwIE1IeiAoSVJRNTApCiAKLQlVLUJvb3QgQ0ZHOglDRkdfTklPU19DUFVfVElDS19USU1FUgkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX1VTRVJfVElNRVIJICAgICA9IDAKKwlVLUJvb3QgQ0ZHOglDT05GSUdfU1lTX05JT1NfQ1BVX1RJQ0tfVElNRVIJICAgICA9IDEKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfVVNFUl9USU1FUgkgICAgID0gMAogCiBQSU86CSBOci4gIHwgZGVzY3JpcHRpb24KIAktLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTU5LDE0ICs1OSwxNCBAQAogCSBQSU82IHwgQ0ZQT1dFUjogICAgMSBvdXRwdXQgdG8gY29udHJvbGwgQ0YgcG93ZXIgc3VwcGx5CiAJIFBJTzcgfCBDRkFUQVNFTDogICAxIG91dHB1dCB0byBjb250cm9sbCBDRiBBVEEgY2FyZCBzZWxlY3QKIAotCVUtQm9vdCBDRkc6CUNGR19OSU9TX0NQVV9CVVRUT05fUElPCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTENEX1BJTwkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX0xFRF9QSU8JICAgICA9IDIKLQkJCUNGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8gICAgPSAzCi0JCQlDRkdfTklPU19DUFVfUkVDT05GX1BJTwkgICAgID0gNAotCQkJQ0ZHX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8gICA9IDUKLQkJCUNGR19OSU9TX0NQVV9DRlBPV0VSX1BJTyAgICAgPSA2Ci0JCQlDRkdfTklPU19DUFVfQ0ZBVEFTRUxfUElPICAgID0gNworCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfQlVUVE9OX1BJTwkgICAgID0gMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9MQ0RfUElPCSAgICAgPSAxCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8JICAgICA9IDIKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPICAgID0gMworCQkJQ09ORklHX1NZU19OSU9TX0NQVV9SRUNPTkZfUElPCSAgICAgPSA0CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8gICA9IDUKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZQT1dFUl9QSU8gICAgID0gNgorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9DRkFUQVNFTF9QSU8gICAgPSA3CiAKIFVBUlQ6CVVBUlQwOiBmaXhlZCBiYXVkcmF0ZSBvZiAxMTUyMDAsIGZpeGVkIHByb3RvY29sIDhOMSwKIAkgICAgICAgd2l0aG91dCBoYW5kc2hha2UgUlRTL0NUUyAoSVJRMjUpCkBAIC04NywxMCArODcsMTAgQEAKICAgMHgwMjAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IFwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8Ci0gIFNEUkFNCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9TUkFNX1NJWkUKKyAgU0RSQU0JICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX1NJWkUKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8ICAgPSAweDAxMDAwMDAwCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgLwotICAweDAxMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9TUkFNX0JBU0UKKyAgMHgwMTAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fQkFTRQogCSAgICAgICB8CQkJICAgICAgIHwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDoKIAkgICAgICAgOgkJCSAgICAgICA6CkBAIC0xMDYsNyArMTA2LDcgQEAKICAgSURFIGkvZiAgICAgIDogICBhbmQgY29udGVudCA6CSAgICAgICA6ICA+IDB4MDAwMDAwODAKICAgWzVdCSAgICAgICA6ICAgdW5rbm93bikgICAgOgkgICAgICAgOiB8CiAJICAgICAgIHwJICAgICAgIHwJICAgICAgIHwgLwotICAweDAwOTIwYTAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9JREUwCisgIDB4MDA5MjBhMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9JREUwCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgxYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTEyMiw3ICsxMjIsNyBAQAogCSAgICAgICB8ICBjb250cm9sICgxIGJpdCkJIChydykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBzdGF0dXMgKDIgYml0KQkgKHJ3KSAgfCAvCi0gIDB4MDA5MjA5ZTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1RJTUVSMQorICAweDAwOTIwOWUwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIxCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU83CSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTEzMCw3ICsxMzAsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHdvKSAgfCAvCi0gIDB4MDA5MjA5ZDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzcKKyAgMHgwMDkyMDlkMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzcKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzYJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMTM4LDcgKzEzOCw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAod28pICB8IC8KLSAgMHgwMDkyMDljMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPNgorICAweDAwOTIwOWMwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPNgogCSAgICAgICB8ICBlZGdlY2FwdHVyZSAoMSBiaXQpCSAocncpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPNQkgICAgICAgfCAgaW50ZXJydXB0bWFzayAoMSBiaXQpCSAocncpICB8IHwKQEAgLTE0Niw3ICsxNDYsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHJvKSAgfCAvCi0gIDB4MDA5MjA5YjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzUKKyAgMHgwMDkyMDliMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzUKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzQJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMTU0LDcgKzE1NCw3IEBACiAJICAgICAgIHwgIGRpcmVjdGlvbiAoMSBiaXQpCSAocncpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHJ3KSAgfCAvCi0gIDB4MDA5MjA5YTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzQKKyAgMHgwMDkyMDlhMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzQKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzMJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMTYyLDcgKzE2Miw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxNiBiaXQpCQkgKHdvKSAgfCAvCi0gIDB4MDA5MjA5OTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzMKKyAgMHgwMDkyMDk5MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzMKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzIJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMTcwLDcgKzE3MCw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICg4IGJpdCkJCSAod28pICB8IC8KLSAgMHgwMDkyMDk4MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPMgorICAweDAwOTIwOTgwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPMgogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPMQkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0xNzgsNyArMTc4LDcgQEAKIAkgICAgICAgfCAgZGlyZWN0aW9uICgxMSBiaXQpCSAocncpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMTEgYml0KQkJIChydykgIHwgLwotICAweDAwOTIwOTcwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8xCisgIDB4MDA5MjA5NzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xCiAJICAgICAgIHwgIGVkZ2VjYXB0dXJlICg0IGJpdCkJIChydykgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8wCSAgICAgICB8ICBpbnRlcnJ1cHRtYXNrICg0IGJpdCkJIChydykgIHwgfApAQCAtMTg2LDcgKzE4Niw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICg0IGJpdCkJCSAocm8pICB8IC8KLSAgMHgwMDkyMDk2MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPMAorICAweDAwOTIwOTYwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPMAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MWMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0yMDIsNyArMjAyLDcgQEAKIAkgICAgICAgfCAgY29udHJvbCAoNCBiaXQpCSAocncpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgc3RhdHVzICgyIGJpdCkJIChydykgIHwgLwotICAweDAwOTIwOTQwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9USU1FUjAKKyAgMHgwMDkyMDk0MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMAogCSAgICAgICB8CQkJICAgICAgIHwgXAogCSAgICAgICA6CSAgICAgIGdhcAkgICAgICAgOiAgPiAoc3BhY2UgZm9yIFVBUlQxKQogCSAgICAgICB8CQkJICAgICAgIHwgLwpAQCAtMjIyLDI4ICsyMjIsMjggQEAKIAkgICAgICAgfCAgdHhkYXRhICg4IGJpdCkJICh3bykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICByeGRhdGEgKDggYml0KQkgKHJvKSAgfCAvCi0gIDB4MDA5MjA5MDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1VBUlQwCisgIDB4MDA5MjA5MDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMAogCiAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gIG9uIGNoaXAgZGVidWdnaW5nICAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtCiAKICAgMHgwMDkyMDkwMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCSAgICAgICB8CQkJICAgICAgIHwgXAogCSAgICAgICA6ICAocmVhbCBzaXplCQkgICAgICAgOiB8Ci0gIE9DSSBEZWJ1ZyAgICA6ICAgYW5kIGNvbnRlbnQJCSAgICAgICA6ICA+IENGR19OSU9TX0NQVV9PQ0lfU0laRQorICBPQ0kgRGVidWcgICAgOiAgIGFuZCBjb250ZW50CQkgICAgICAgOiAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9TSVpFCiAJICAgICAgIDogICB1bmtub3duKQkJICAgICAgIDogfCAgID0gMHgwMDAwMDEwMAogCSAgICAgICB8CQkJICAgICAgIHwgLwotICAweDAwOTIwODAwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgIENGR19OSU9TX0NQVV9PQ0lfQkFTRQorICAweDAwOTIwODAwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgIENPTkZJR19TWVNfTklPU19DUFVfT0NJX0JBU0UKIAogLSAtIC0gLSAtIC0gLSAtIC0gLSAtICBvbiBjaGlwIG1lbW9yeSAyCSAgLSAtIC0gLSAtIC0gLSAtIC0gLSAtCiAKICAgMHgwMDkyMDgwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IFwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8Ci0gIEdFUk1TCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9ST01fU0laRQorICBHRVJNUwkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9TSVpFCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfCAgID0gMHgwMDAwMDgwMAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IC8KLSAgMHgwMDkyMDAwMCAgIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtKy0gLSBDRkdfTklPU19DUFVfUlNUX1ZFQ1QKLSAgMHgwMDkyMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUk9NX0JBU0UKKyAgMHgwMDkyMDAwMCAgIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtKy0gLSBDT05GSUdfU1lTX05JT1NfQ1BVX1JTVF9WRUNUCisgIDB4MDA5MjAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9ST01fQkFTRQogCiAtIC0gLSAtIC0gLSAtIC0gLSAtIC0JIGV4dGVybmFsIGkvbwkgIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KIApAQCAtMjY1LDE3ICsyNjUsMTcgQEAKIAkgICAgICAgfCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8IHwKICAgMHgwMDkxMDMwMCAtLSstLUxBTjkxQzExMV9SRUdJU1RFUlNfT0ZGU0VULS0tfCB8CiAJICAgICAgIHwJICAgICAgZ2FwCSAgICAgICB8IC8KLSAgMHgwMDkxMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfTEFOMF9CQVNFCisgIDB4MDA5MTAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JBU0UKIAogLSAtIC0gLSAtIC0gLSAtIC0gLSAtICBvbiBjaGlwIG1lbW9yeSAxCSAgLSAtIC0gLSAtIC0gLSAtIC0gLSAtCiAKICAgMHgwMDkxMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IFwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8Ci0gIG9uY2hpcCBSQU0gICB8CSAgICAgICA6CSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9SQU1fU0laRQorICBvbmNoaXAgUkFNICAgfAkgICAgICAgOgkgICAgICAgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1JBTV9TSVpFCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfCAgID0gMHgwMDAxMDAwMAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IC8KLSAgMHgwMDkwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUkFNX0JBU0UKKyAgMHgwMDkwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1JBTV9CQVNFCiAKIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAgZXh0ZXJuYWwgbWVtb3J5IDEgIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KIApAQCAtMjgzLDMwICsyODMsMzAgQEAKICAgMHgwMDkwMDAwMCAtLSszMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wKwogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IFwgXAogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgfAotCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgID4gQ0ZHX05JT1NfQ1BVX1ZFQ19TSVpFCisJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19TSVpFCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCB8ICAgPSAweDAwMDAwMTAwCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAvCi0gIDB4MDA4ZmZmMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstfC0gQ0ZHX05JT1NfQ1BVX1ZFQ19CQVNFCi0gIDB4MDA4ZmZmMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstfC0gQ0ZHX05JT1NfQ1BVX1NUQUNLCisgIDB4MDA4ZmZmMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstfC0gQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRQorICAweDAwOGZmZjAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLXwtIENPTkZJR19TWVNfTklPU19DUFVfU1RBQ0sKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IFwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8ICA+IHN0YWNrIGFyZWEKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IFYKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8Ci0gIFNSQU0JICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgID4gQ0ZHX05JT1NfQ1BVX1NSQU1fU0laRQorICBTUkFNCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfU1JBTV9TSVpFCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAgID0gMHgwMDEwMDAwMAogCSAgICAgICB8CQkJICAgICAgIHwgLwotICAweDAwODAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9TUkFNX0JBU0UKKyAgMHgwMDgwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fQkFTRQogICAweDAwODAwMDAwIC0tLTgtLS0tLS0tLS0tLS0tNHwzLS0tLS0tLS0tLS0tLTAtCiAJICAgICAgIHwgIHNlY3RvciAxMjcJCSAgICAgICB8IFwKICAgICArIDB4N2YwMDAwIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfAotICBGbGFzaAkgICAgICAgfC0gICAtCS0gICAtICA6ICAtICAgLQkgIC0gICAtfCAgPiBDRkdfTklPU19DUFVfRkxBU0hfU0laRQorICBGbGFzaAkgICAgICAgfC0gICAtCS0gICAtICA6ICAtICAgLQkgIC0gICAtfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUKIAkgICAgICAgfCAgc2VjdG9yIDEgICAgIDoJICAgICAgIHwgfCAgID0gMHgwMDgwMDAwMAogICAgICsgMHgwMTAwMDAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgc2VjdG9yIDAgKHNpemUgPSAweDEwMDAwKSAgICB8IC8KLSAgMHgwMDAwMDAwMCAtLS04LS0tLS0tLS0tLS0tLTR8My0tLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfRkxBU0hfQkFTRQorICAweDAwMDAwMDAwIC0tLTgtLS0tLS0tLS0tLS0tNHwzLS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfQkFTRQogCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL2RvYy9SRUFETUUuZGsyMGsyMDBfc3RkMzIgYi9kb2MvUkVBRE1FLmRrMjBrMjAwX3N0ZDMyCmluZGV4IDdiNWQ0ZDQuLmZjMmQyYTMgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuZGsyMGsyMDBfc3RkMzIKKysrIGIvZG9jL1JFQURNRS5kazIwazIwMF9zdGQzMgpAQCAtMTUsMjAgKzE1LDIwIEBACiAJbm8gRGVidWcgQ29yZQogCW5vIE9uIENoaXAgSW5zdHJ1bWVudGF0aW9uIChPQ0kpIGVuYWJsZWQKIAotCVUtQm9vdCBDRkc6CUNGR19OSU9TX0NQVV9DTEsJICAgICA9IDUwMDAwMDAwCi0JCQlDRkdfTklPU19DUFVfSUNBQ0hFCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfRENBQ0hFCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfUkVHX05VTVMJICAgICA9IDI1NgotCQkJQ0ZHX05JT1NfQ1BVX01VTAkgICAgID0gMAotCQkJQ0ZHX05JT1NfQ1BVX01TVEVQCSAgICAgPSAxCi0JCQlDRkdfTklPU19DUFVfREJHX0NPUkUJICAgICA9IDAKKwlVLUJvb3QgQ0ZHOglDT05GSUdfU1lTX05JT1NfQ1BVX0NMSwkgICAgID0gNTAwMDAwMDAKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfSUNBQ0hFCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0RDQUNIRQkgICAgID0gMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9SRUdfTlVNUwkgICAgID0gMjU2CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX01VTAkgICAgID0gMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9NU1RFUAkgICAgID0gMQorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9EQkdfQ09SRQkgICAgID0gMAogCiBJUlE6CSBOci4gIHwgdXNlZCBieQogCS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCSAyNSAgIHwgVElNRVIwCSAgfCAgQ0ZHX05JT1NfQ1BVX1RJTUVSMF9JUlEgPSAyNQotCSAyNiAgIHwgVUFSVDAJICB8ICBDRkdfTklPU19DUFVfVUFSVDBfSVJRICA9IDI2Ci0JIDI3ICAgfCBQSU8yCSAgfCAgQ0ZHX05JT1NfQ1BVX1BJTzJfSVJRICAgPSAyNwotCSAyOCAgIHwgVUFSVDEJICB8ICBDRkdfTklPU19DUFVfVUFSVDFfSVJRICA9IDI4ICAgIChkZWJ1ZykKKwkgMjUgICB8IFRJTUVSMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0lSUSA9IDI1CisJIDI2ICAgfCBVQVJUMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfSVJRICA9IDI2CisJIDI3ICAgfCBQSU8yCSAgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0lSUSAgID0gMjcKKwkgMjggICB8IFVBUlQxCSAgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMV9JUlEgID0gMjggICAgKGRlYnVnKQogCiBNRU1PUlk6CSAgMSBNQnl0ZSBGbGFzaAogCTI1NiBLQnl0ZSBTUkFNCkBAIC0zNiw3ICszNiw3IEBACiAKIFRpbWVyOglUSU1FUjA6IGhpZ2ggcHJpb3JpdHkgcHJvZ3JhbW1hYmxlIHRpbWVyIChJUlEyNSkKIAotCVUtQm9vdCBDRkc6CUNGR19OSU9TX0NQVV9USUNLX1RJTUVSCSAgICAgPSAwCisJVS1Cb290IENGRzoJQ09ORklHX1NZU19OSU9TX0NQVV9USUNLX1RJTUVSCSAgICAgPSAwCiAKIFBJTzoJIE5yLiAgfCBkZXNjcmlwdGlvbgogCS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDUsMTAgKzQ1LDEwIEBACiAJIFBJTzIgfCBCVVRUT046CSAgICA0IGlucHV0cyBmb3IgdXNlciBwdXNoIGJ1dHRvbnMgKElSUTI3KQogCSBQSU8zIHwgTENEOgkgICAxMSBpbi9vdXRwdXRzIGZvciBBU0NJSSBMQ0QKIAotCVUtQm9vdCBDRkc6CUNGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8gICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTEVEX1BJTwkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX0JVVFRPTl9QSU8JICAgICA9IDIKLQkJCUNGR19OSU9TX0NQVV9MQ0RfUElPCSAgICAgPSAzCisJVS1Cb290IENGRzoJQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8JICAgICA9IDEKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfQlVUVE9OX1BJTwkgICAgID0gMgorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9MQ0RfUElPCSAgICAgPSAzCiAKIFVBUlQ6CVVBUlQwOiBmaXhlZCBiYXVkcmF0ZSBvZiAxMTUyMDAsIGZpeGVkIHByb3RvY29sIDhOMiwKIAkgICAgICAgd2l0aG91dCBoYW5kc2hha2UgUlRTL0NUUyAoSVJRMjYpCkBAIC03MCw3ICs3MCw3IEBACiAJICAgICAgIHwgIHNlY3RvciA1ICAgICA6CSAgICAgICB8IHwKICAgICArIDB4MDIwMDAwIHwtICAgLQktICAgLSAgLSAgLSAgIC0JICAtICAgLXwgfAogCSAgICAgICB8ICBzZWN0b3IgNCAoc2l6ZSA9IDB4MTAwMDApICAgIHwgfAotICAgICsgMHgwMTAwMDAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18ICA+IENGR19OSU9TX0NQVV9GTEFTSF9TSVpFCisgICAgKyAweDAxMDAwMCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFCiAJICAgICAgIHwgIHNlY3RvciAzIChzaXplID0gMHgwODAwMCkgICAgfCB8ICAgPSAweDAwMTAwMDAwCiAgICAgKyAweDAwODAwMCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBzZWN0b3IgMiAoc2l6ZSA9IDB4MDIwMDApICAgIHwgfApAQCAtNzgsNyArNzgsNyBAQAogCSAgICAgICB8ICBzZWN0b3IgMSAoc2l6ZSA9IDB4MDIwMDApICAgIHwgfAogICAgICsgMHgwMDQwMDAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgc2VjdG9yIDAgKHNpemUgPSAweDA0MDAwKSAgICB8IC8KLSAgMHgwMDEwMDAwMCAtLS0xNS0tLS0tLS0tLS0tLTh8Ny0tLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfRkxBU0hfQkFTRQorICAweDAwMTAwMDAwIC0tLTE1LS0tLS0tLS0tLS0tOHw3LS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfQkFTRQogCSAgICAgICB8CQkJICAgICAgIHwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDoKIAkgICAgICAgfAkJCSAgICAgICB8CkBAIC04NiwyMSArODYsMjEgQEAKICAgMHgwMDA4MDAwMCAtLSszMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wKwogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IFwgXAogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgfAotCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgID4gQ0ZHX05JT1NfQ1BVX1ZFQ19TSVpFCisJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19TSVpFCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCB8ICAgPSAweDAwMDAwMTAwCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAvCi0gIDB4MDAwN2ZmMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstfC0gQ0ZHX05JT1NfQ1BVX1ZFQ19CQVNFCi0gIDB4MDAwN2ZmMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstfC0gQ0ZHX05JT1NfQ1BVX1NUQUNLCisgIDB4MDAwN2ZmMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstfC0gQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRQorICAweDAwMDdmZjAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLXwtIENPTkZJR19TWVNfTklPU19DUFVfU1RBQ0sKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IFwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8ICA+IHN0YWNrIGFyZWEKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IFYKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8Ci0gIFNSQU0JICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgID4gQ0ZHX05JT1NfQ1BVX1NSQU1fU0laRQorICBTUkFNCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfU1JBTV9TSVpFCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAgID0gMHgwMDA0MDAwMAogCSAgICAgICB8CQkJICAgICAgIHwgLwotICAweDAwMDQwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9TUkFNX0JBU0UKKyAgMHgwMDA0MDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fQkFTRQogCSAgICAgICB8CQkJICAgICAgIHwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDoKIAkgICAgICAgOgkJCSAgICAgICA6CkBAIC0xMjYsNyArMTI2LDcgQEAKIAkgICAgICAgfCAgdHhkYXRhICg4IGJpdCkJICh3bykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICByeGRhdGEgKDggYml0KQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA0YzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1VBUlQxCisgIDB4MDAwMDA0YzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMQogCSAgICAgICB8CQkJICAgICAgIHwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDoKIAkgICAgICAgfAkJCSAgICAgICB8CkBAIC0xMzgsNyArMTM4LDcgQEAKIAkgICAgICAgfCAgZGlyZWN0aW9uICgxMSBiaXQpCSAocncpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMTEgYml0KQkJIChydykgIHwgLwotICAweDAwMDAwNDgwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8zCisgIDB4MDAwMDA0ODAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zCiAJICAgICAgIHwgIGVkZ2VjYXB0dXJlICgxMiBiaXQpCSAocncpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPMgkgICAgICAgfCAgaW50ZXJydXB0bWFzayAoMTIgYml0KSAocncpICB8IHwKQEAgLTE0Niw3ICsxNDYsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMTIgYml0KQkJIChybykgIHwgLwotICAweDAwMDAwNDcwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8yCisgIDB4MDAwMDA0NzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8xCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE1NCw3ICsxNTQsNyBAQAogCSAgICAgICB8ICBkaXJlY3Rpb24gKDIgYml0KQkgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDIgYml0KQkJIChydykgIHwgLwotICAweDAwMDAwNDYwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8xCisgIDB4MDAwMDA0NjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgxYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE3MCw3ICsxNzAsNyBAQAogCSAgICAgICB8ICBjb250cm9sICg0IGJpdCkJIChydykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBzdGF0dXMgKDIgYml0KQkgKHJ3KSAgfCAvCi0gIDB4MDAwMDA0NDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1RJTUVSMAorICAweDAwMDAwNDQwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8wCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE3OCw3ICsxNzgsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMTYgYml0KQkJICh3bykgIHwgLwotICAweDAwMDAwNDIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8wCisgIDB4MDAwMDA0MjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgxYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE5NCw3ICsxOTQsNyBAQAogCSAgICAgICB8ICB0eGRhdGEgKDggYml0KQkgKHdvKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHJ4ZGF0YSAoOCBiaXQpCSAocm8pICB8IC8KLSAgMHgwMDAwMDQwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfVUFSVDAKKyAgMHgwMDAwMDQwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwCiAKIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQlvbiBjaGlwIG1lbW9yeQkgIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQogCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLmVib255IGIvZG9jL1JFQURNRS5lYm9ueQppbmRleCA4YjAzMGRiLi5hMzk1YTQ5IDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLmVib255CisrKyBiL2RvYy9SRUFETUUuZWJvbnkKQEAgLTM1LDcgKzM1LDcgQEAKID09PT09PT09PT09PT09PT09PT09PQogCiBUaGUgaTJjIHV0aWxpdGllcyBoYXZlIGJlZW4gdGVzdGVkIG9uIGJvdGggUmV2IEIuIGFuZCBSZXYgQy4gYW5kCi1sb29rIGdvb2QuIFRoZSBDRkdfSTJDX05PUFJPQkVTIG1hY3JvIGlzIGRlZmluZWQgdG8gcHJldmVudAorbG9vayBnb29kLiBUaGUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMgbWFjcm8gaXMgZGVmaW5lZCB0byBwcmV2ZW50CiBwcm9iaW5nIHRoZSBDRENWODUwIGNsb2NrIGNvbnRyb2xsZXIgYXQgYWRkcmVzcyAweDY5IChzaW5jZSByZWFkaW5nCiBpdCBjYXVzZXMgdGhlIGkyYyBpbXBsZW1lbnRhdGlvbiB0byBtaXNiZWhhdmUuIFRoZSBvdXRwdXQgb2YKIGlwcm9iZSBzaG91bGQgbG9vayBsaWtlIHRoaXMgKGFzc3VtaW5nIHlvdSBhcmUgb25seSB1c2luZyBhIHNpbmdsZQpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5nZW5lcmljX3VzYl9vaGNpIGIvZG9jL1JFQURNRS5nZW5lcmljX3VzYl9vaGNpCmluZGV4IDE0N2VhNTEuLmJhN2NlYTggMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuZ2VuZXJpY191c2Jfb2hjaQorKysgYi9kb2MvUkVBRE1FLmdlbmVyaWNfdXNiX29oY2kKQEAgLTExLDI0ICsxMSwyNCBAQAogCiAJQ09ORklHX1VTQl9PSENJX05FVzogZW5hYmxlIHRoZSBuZXcgT0hDSSBkcml2ZXIKIAotCUNGR19VU0JfT0hDSV9CT0FSRF9JTklUOiBjYWxsIHRoZSBib2FyZCBkZXBlbmRhbnQgaG9va3M6CisJQ09ORklHX1NZU19VU0JfT0hDSV9CT0FSRF9JTklUOiBjYWxsIHRoZSBib2FyZCBkZXBlbmRhbnQgaG9va3M6CiAKIAkJICAtIGV4dGVybiBpbnQgdXNiX2JvYXJkX2luaXQodm9pZCk7CiAJCSAgLSBleHRlcm4gaW50IHVzYl9ib2FyZF9zdG9wKHZvaWQpOwogCQkgIC0gZXh0ZXJuIGludCB1c2JfY3B1X2luaXRfZmFpbCh2b2lkKTsKIAotCUNGR19VU0JfT0hDSV9DUFVfSU5JVDogY2FsbCB0aGUgY3B1IGRlcGVuZGFudCBob29rczoKKwlDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUOiBjYWxsIHRoZSBjcHUgZGVwZW5kYW50IGhvb2tzOgogCiAJCSAgLSBleHRlcm4gaW50IHVzYl9jcHVfaW5pdCh2b2lkKTsKIAkJICAtIGV4dGVybiBpbnQgdXNiX2NwdV9zdG9wKHZvaWQpOwogCQkgIC0gZXh0ZXJuIGludCB1c2JfY3B1X2luaXRfZmFpbCh2b2lkKTsKIAotCUNGR19VU0JfT0hDSV9SRUdTX0JBU0U6IGRlZmluZXMgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgT0hDSQorCUNPTkZJR19TWVNfVVNCX09IQ0lfUkVHU19CQVNFOiBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIE9IQ0kKIAkJCQlyZWdpc3RlcnMKIAotCUNGR19VU0JfT0hDSV9TTE9UX05BTUU6IHNsb3QgbmFtZQorCUNPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FOiBzbG90IG5hbWUKIAotCUNGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUzogbWF4aW1hbCBudW1iZXIgb2YgcG9ydHMgb2YgdGhlCisJQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUzogbWF4aW1hbCBudW1iZXIgb2YgcG9ydHMgb2YgdGhlCiAJCQkJICAgICByb290IGh1Yi4KIAogCkBAIC0zOSw3ICszOSw3IEBACiBPSENJIGNvbnRyb2xsZXJzIHRoYXQgb3BlcmF0ZSBpbiBiaWcgZW5kaWFuIHN1Y2ggYXMgcHBjNHh4IGFuZAogbXBjNXh4eC4gRm9yIHRoZXNlIHRoZSBjb25maWcgb3B0aW9uCiAKLQlDRkdfT0hDSV9CRV9DT05UUk9MTEVSCisJQ09ORklHX1NZU19PSENJX0JFX0NPTlRST0xMRVIKIAogbmVlZHMgdG8gYmUgZGVmaW5lZC4KIApAQCAtNjAsNCArNjAsNCBAQAogUENJIENvbnRyb2xsZXJzIG5lZWQgdG8gZG8gYnl0ZSBzd2FwcGluZyBvbiByZWdpc3RlciBhY2Nlc3Nlcywgc28gdGhleQogc2hvdWxkIHRvIGRlZmluZToKIAotCUNGR19PSENJX1NXQVBfUkVHX0FDQ0VTUworCUNPTkZJR19TWVNfT0hDSV9TV0FQX1JFR19BQ0NFU1MKZGlmZiAtLWdpdCBhL2RvYy9SRUFETUUubHlueGtkaSBiL2RvYy9SRUFETUUubHlueGtkaQppbmRleCA4ZmRmNDk1Li4wNzZmMDE4IDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLmx5bnhrZGkKKysrIGIvZG9jL1JFQURNRS5seW54a2RpCkBAIC0zOSw5ICszOSw5IEBACiAKIEVkaXQgaW5jbHVkZS9jb25maWdzL01QQzgyNjBBRFMuaCB0byB1c2UgdGhlIGZvbGxvd2luZzoKIAotI2RlZmluZSBDRkdfSU1NUgkweEZBMjAwMDAwCi0jZGVmaW5lIENGR19CQ1NSCTB4RkExMDAwMDAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JMHhGQTEwMTgwMQorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJMHhGQTIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JDU1IJMHhGQTEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JMHhGQTEwMTgwMQogCiBXaGVuIGNyZWF0aW5nIGEgTHlueE9TIG9yIEJsdWVDYXQgdS1ib290IGltYWdlIHVzaW5nIG1raW1hZ2UsCiB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBmb2xsb3dpbmc6CmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLm01MjI3N2V2YiBiL2RvYy9SRUFETUUubTUyMjc3ZXZiCmluZGV4IGRlMWRhYmEuLmUwMDI5NDcgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUubTUyMjc3ZXZiCisrKyBiL2RvYy9SRUFETUUubTUyMjc3ZXZiCkBAIC03MCwxMiArNzAsMTIgQEAKIENPTkZJR19NNTIyNzdFVkIJLS0gZGVmaW5lIGZvciBNNTIyNzdFVkIgYm9hcmQKIAogQ09ORklHX01DRlVBUlQJCS0tIGRlZmluZSB0byB1c2UgY29tbW9uIENGIFVhcnQgZHJpdmVyCi1DRkdfVUFSVF9QT1JUCQktLSBkZWZpbmUgVUFSVCBwb3J0IG51bWJlciwgc3RhcnQgd2l0aCAwLCAxIGFuZCAyCitDT05GSUdfU1lTX1VBUlRfUE9SVAkJLS0gZGVmaW5lIFVBUlQgcG9ydCBudW1iZXIsIHN0YXJ0IHdpdGggMCwgMSBhbmQgMgogQ09ORklHX0JBVURSQVRFCQktLSBkZWZpbmUgVUFSVCBiYXVkcmF0ZQogCiBDT05GSUdfTUNGUlRDCQktLSBkZWZpbmUgdG8gdXNlIGNvbW1vbiBDRiBSVEMgZHJpdmVyCi1DRkdfTUNGUlRDX0JBU0UJCS0tIHByb3ZpZGUgYmFzZSBhZGRyZXNzIGZvciBSVEMgaW4gaW1tYXAuaAotQ0ZHX1JUQ19PU0NJTExBVE9SCS0tIGRlZmluZSBSVEMgY2xvY2sgZnJlcXVlbmN5CitDT05GSUdfU1lTX01DRlJUQ19CQVNFCQktLSBwcm92aWRlIGJhc2UgYWRkcmVzcyBmb3IgUlRDIGluIGltbWFwLmgKK0NPTkZJR19TWVNfUlRDX09TQ0lMTEFUT1IJLS0gZGVmaW5lIFJUQyBjbG9jayBmcmVxdWVuY3kKIFJUQ19ERUJVRwkJLS0gZGVmaW5lIHRvIHNob3cgUlRDIGRlYnVnIG1lc3NhZ2UKIENPTkZJR19DTURfREFURQkJLS0gZW5hYmxlIHRvIHVzZSBkYXRlIGZlYXR1cmUgaW4gdS1ib290CiAKQEAgLTg1LDIyICs4NSwyMiBAQAogQ09ORklHX0ZTTF9JMkMJCS0tIGRlZmluZSB0byB1c2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyCiBDT05GSUdfSEFSRF9JMkMJCS0tIGRlZmluZSBmb3IgSTJDIGhhcmR3YXJlIHN1cHBvcnQKIENPTkZJR19TT0ZUX0kyQwkJLS0gZGVmaW5lIGZvciBJMkMgYml0LWJhbmdlZAotQ0ZHX0kyQ19TUEVFRAkJLS0gZGVmaW5lIGZvciBJMkMgc3BlZWQKLUNGR19JMkNfU0xBVkUJCS0tIGRlZmluZSBmb3IgSTJDIHNsYXZlIGFkZHJlc3MKLUNGR19JMkNfT0ZGU0VUCQktLSBkZWZpbmUgZm9yIEkyQyBiYXNlIGFkZHJlc3Mgb2Zmc2V0Ci1DRkdfSU1NUgkJLS0gZGVmaW5lIGZvciBNQkFSIG9mZnNldAorQ09ORklHX1NZU19JMkNfU1BFRUQJCS0tIGRlZmluZSBmb3IgSTJDIHNwZWVkCitDT05GSUdfU1lTX0kyQ19TTEFWRQkJLS0gZGVmaW5lIGZvciBJMkMgc2xhdmUgYWRkcmVzcworQ09ORklHX1NZU19JMkNfT0ZGU0VUCQktLSBkZWZpbmUgZm9yIEkyQyBiYXNlIGFkZHJlc3Mgb2Zmc2V0CitDT05GSUdfU1lTX0lNTVIJCS0tIGRlZmluZSBmb3IgTUJBUiBvZmZzZXQKIAotQ0ZHX01CQVIJCS0tIGRlZmluZSBNQkFSIG9mZnNldAorQ09ORklHX1NZU19NQkFSCQktLSBkZWZpbmUgTUJBUiBvZmZzZXQKIAogQ09ORklHX01PTklUT1JfSVNfSU5fUkFNIC0tIE5vdCBzdXBwb3J0CiAKLUNGR19JTklUX1JBTV9BRERSCS0tIGRlZmluZXMgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgTUNGNTIyNzcgaW50ZXJuYWwgU1JBTQorQ09ORklHX1NZU19JTklUX1JBTV9BRERSCS0tIGRlZmluZXMgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgTUNGNTIyNzcgaW50ZXJuYWwgU1JBTQogCi1DRkdfQ1NuX0JBU0UJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgQmFzZSByZWdpc3RlcgotQ0ZHX0NTbl9NQVNLCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IE1hc2sgcmVnaXN0ZXIKLUNGR19DU25fQ1RSTAktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBDb250cm9sIHJlZ2lzdGVyCitDT05GSUdfU1lTX0NTbl9CQVNFCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IEJhc2UgcmVnaXN0ZXIKK0NPTkZJR19TWVNfQ1NuX01BU0sJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgTWFzayByZWdpc3RlcgorQ09ORklHX1NZU19DU25fQ1RSTAktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBDb250cm9sIHJlZ2lzdGVyCiAKLUNGR19TRFJBTV9CQVNFCS0tIGRlZmluZXMgdGhlIERSQU0gQmFzZQorQ09ORklHX1NZU19TRFJBTV9CQVNFCS0tIGRlZmluZXMgdGhlIERSQU0gQmFzZQogCiBDT05GSUdfTENEIGFuZCBDT05GSUdfQ01EX1VTQiBhcmUgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGN1cnJlbnQgdS1ib290LAogdXBkYXRlIHdpbGwgYmUgcHJvdmlkZWQgYXQgbGF0ZXIgdGltZQpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5tNTI1M2V2YmUgYi9kb2MvUkVBRE1FLm01MjUzZXZiZQppbmRleCAwNDI2Y2IxLi5mNTE2MDlmIDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLm01MjUzZXZiZQorKysgYi9kb2MvUkVBRE1FLm01MjUzZXZiZQpAQCAtMjgsOSArMjgsOSBAQAogCUNPTkZJR19NQ0Y1MngyCQlQcm9jZXNzb3IgZmFtaWx5CiAJQ09ORklHX01DRjUyNTMJCU1DRjUyNTMgc3BlY2lmaWMKIAlDT05GSUdfTTUyNTNFVkJFCUFtYWRldXMgUGx1cyBib2FyZCBzcGVjaWZpYwotCUNGR19DTEsJCQlEZWZpbmUgQW1hZGV1cyBQbHVzIENQVSBDbG9jawotCUNGR19NQkFSCQlNQkFSIGJhc2UgYWRkcmVzcwotCUNGR19NQkFSMgkJTUJBUjIgYmFzZSBhZGRyZXNzCisJQ09ORklHX1NZU19DTEsJCQlEZWZpbmUgQW1hZGV1cyBQbHVzIENQVSBDbG9jaworCUNPTkZJR19TWVNfTUJBUgkJTUJBUiBiYXNlIGFkZHJlc3MKKwlDT05GSUdfU1lTX01CQVIyCQlNQkFSMiBiYXNlIGFkZHJlc3MKIAogMy4yIENvbXBpbGF0aW9uCiAJZXhwb3J0IENST1NTX0NPTVBJTEU9L3Vzci9sb2NhbC9mcmVlc2NhbGUtY29sZGZpcmUtNC4xLWVsZi9iaW4vbTY4ay1lbGYtCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLm01MzczZXZiIGIvZG9jL1JFQURNRS5tNTM3M2V2YgppbmRleCBiMmVmNGE1Li40NzgxZDk0IDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLm01MzczZXZiCisrKyBiL2RvYy9SRUFETUUubTUzNzNldmIKQEAgLTY3LDEyICs2NywxMiBAQAogQ09ORklHX001MzczRVZCCQktLSBkZWZpbmUgZm9yIE01MzczRVZCIGJvYXJkCiAKIENPTkZJR19NQ0ZVQVJUCQktLSBkZWZpbmUgdG8gdXNlIGNvbW1vbiBDRiBVYXJ0IGRyaXZlcgotQ0ZHX1VBUlRfUE9SVAkJLS0gZGVmaW5lIFVBUlQgcG9ydCBudW1iZXIsIHN0YXJ0IHdpdGggMCwgMSBhbmQgMgorQ09ORklHX1NZU19VQVJUX1BPUlQJCS0tIGRlZmluZSBVQVJUIHBvcnQgbnVtYmVyLCBzdGFydCB3aXRoIDAsIDEgYW5kIDIKIENPTkZJR19CQVVEUkFURQkJLS0gZGVmaW5lIFVBUlQgYmF1ZHJhdGUKIAogQ09ORklHX01DRlJUQwkJLS0gZGVmaW5lIHRvIHVzZSBjb21tb24gQ0YgUlRDIGRyaXZlcgotQ0ZHX01DRlJUQ19CQVNFCQktLSBwcm92aWRlIGJhc2UgYWRkcmVzcyBmb3IgUlRDIGluIGltbWFwLmgKLUNGR19SVENfT1NDSUxMQVRPUgktLSBkZWZpbmUgUlRDIGNsb2NrIGZyZXF1ZW5jeQorQ09ORklHX1NZU19NQ0ZSVENfQkFTRQkJLS0gcHJvdmlkZSBiYXNlIGFkZHJlc3MgZm9yIFJUQyBpbiBpbW1hcC5oCitDT05GSUdfU1lTX1JUQ19PU0NJTExBVE9SCS0tIGRlZmluZSBSVEMgY2xvY2sgZnJlcXVlbmN5CiBSVENfREVCVUcJCS0tIGRlZmluZSB0byBzaG93IFJUQyBkZWJ1ZyBtZXNzYWdlCiBDT05GSUdfQ01EX0RBVEUJCS0tIGVuYWJsZSB0byB1c2UgZGF0ZSBmZWF0dXJlIGluIHUtYm9vdAogCkBAIC04MCwxMSArODAsMTEgQEAKIENPTkZJR19ORVRfTVVMVEkJLS0gZGVmaW5lIHRvIHVzZSBtdWx0aSBGRUMgaW4gdS1ib290CiBDT05GSUdfTUlJCQktLSBlbmFibGUgdG8gdXNlIE1JSSBkcml2ZXIKIENPTkZJR19DRl9ET01JSQkJLS0gZW5hYmxlIHRvIHVzZSBNSUkgZmVhdHVyZSBpbiBjbWRfbWlpLmMKLUNGR19ESVNDT1ZFUl9QSFkJLS0gZW5hYmxlIFBIWSBkaXNjb3ZlcnkKLUNGR19SWF9FVEhfQlVGRkVSCS0tIFNldCBGRUMgUmVjZWl2ZSBidWZmZXIKLUNGR19GQVVMVF9FQ0hPX0xJTktfRE9XTi0tCi1DRkdfRkVDMF9QSU5NVVgJCS0tIFNldCBGRUMwIFBpbiBjb25maWd1cmF0aW9uCi1DRkdfRkVDMF9NSUlCQVNFCS0tIFNldCBGRUMwIE1JSSBiYXNlIHJlZ2lzdGVyCitDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQktLSBlbmFibGUgUEhZIGRpc2NvdmVyeQorQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCS0tIFNldCBGRUMgUmVjZWl2ZSBidWZmZXIKK0NPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04tLQorQ09ORklHX1NZU19GRUMwX1BJTk1VWAkJLS0gU2V0IEZFQzAgUGluIGNvbmZpZ3VyYXRpb24KK0NPTkZJR19TWVNfRkVDMF9NSUlCQVNFCS0tIFNldCBGRUMwIE1JSSBiYXNlIHJlZ2lzdGVyCiBNQ0ZGRUNfVE9VVF9MT09QCS0tIHNldCBGRUMgdGltZW91dCBsb29wCiAKIENPTkZJR19NQ0ZUTVIJCS0tIGRlZmluZSB0byB1c2UgRE1BIHRpbWVyCkBAIC05MywyMiArOTMsMjIgQEAKIENPTkZJR19GU0xfSTJDCQktLSBkZWZpbmUgdG8gdXNlIEZTTCBjb21tb24gSTJDIGRyaXZlcgogQ09ORklHX0hBUkRfSTJDCQktLSBkZWZpbmUgZm9yIEkyQyBoYXJkd2FyZSBzdXBwb3J0CiBDT05GSUdfU09GVF9JMkMJCS0tIGRlZmluZSBmb3IgSTJDIGJpdC1iYW5nZWQKLUNGR19JMkNfU1BFRUQJCS0tIGRlZmluZSBmb3IgSTJDIHNwZWVkCi1DRkdfSTJDX1NMQVZFCQktLSBkZWZpbmUgZm9yIEkyQyBzbGF2ZSBhZGRyZXNzCi1DRkdfSTJDX09GRlNFVAkJLS0gZGVmaW5lIGZvciBJMkMgYmFzZSBhZGRyZXNzIG9mZnNldAotQ0ZHX0lNTVIJCS0tIGRlZmluZSBmb3IgTUJBUiBvZmZzZXQKK0NPTkZJR19TWVNfSTJDX1NQRUVECQktLSBkZWZpbmUgZm9yIEkyQyBzcGVlZAorQ09ORklHX1NZU19JMkNfU0xBVkUJCS0tIGRlZmluZSBmb3IgSTJDIHNsYXZlIGFkZHJlc3MKK0NPTkZJR19TWVNfSTJDX09GRlNFVAkJLS0gZGVmaW5lIGZvciBJMkMgYmFzZSBhZGRyZXNzIG9mZnNldAorQ09ORklHX1NZU19JTU1SCQktLSBkZWZpbmUgZm9yIE1CQVIgb2Zmc2V0CiAKLUNGR19NQkFSCQktLSBkZWZpbmUgTUJBUiBvZmZzZXQKK0NPTkZJR19TWVNfTUJBUgkJLS0gZGVmaW5lIE1CQVIgb2Zmc2V0CiAKIENPTkZJR19NT05JVE9SX0lTX0lOX1JBTSAtLSBOb3Qgc3VwcG9ydAogCi1DRkdfSU5JVF9SQU1fQUREUgktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIE1DRjUzNzMgaW50ZXJuYWwgU1JBTQorQ09ORklHX1NZU19JTklUX1JBTV9BRERSCS0tIGRlZmluZXMgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgTUNGNTM3MyBpbnRlcm5hbCBTUkFNCiAKLUNGR19DU25fQkFTRQktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBCYXNlIHJlZ2lzdGVyCi1DRkdfQ1NuX01BU0sJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgTWFzayByZWdpc3RlcgotQ0ZHX0NTbl9DVFJMCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IENvbnRyb2wgcmVnaXN0ZXIKK0NPTkZJR19TWVNfQ1NuX0JBU0UJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgQmFzZSByZWdpc3RlcgorQ09ORklHX1NZU19DU25fTUFTSwktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBNYXNrIHJlZ2lzdGVyCitDT05GSUdfU1lTX0NTbl9DVFJMCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IENvbnRyb2wgcmVnaXN0ZXIKIAotQ0ZHX1NEUkFNX0JBU0UJLS0gZGVmaW5lcyB0aGUgRFJBTSBCYXNlCitDT05GSUdfU1lTX1NEUkFNX0JBU0UJLS0gZGVmaW5lcyB0aGUgRFJBTSBCYXNlCiAKIDIuIE1FTU9SWSBNQVAgVU5ERVIgVS1CT09UIEFORCBMSU5VWCBLRVJORUwKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL2RvYy9SRUFETUUubTU0NDU1ZXZiIGIvZG9jL1JFQURNRS5tNTQ0NTVldmIKaW5kZXggNWMwMWYwZC4uZjY5NWRhNSAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5tNTQ0NTVldmIKKysrIGIvZG9jL1JFQURNRS5tNTQ0NTVldmIKQEAgLTcxLDEyICs3MSwxMiBAQAogQ09ORklHX001NDQ1NUVWQgktLSBkZWZpbmUgZm9yIE01NDQ1NUVWQiBib2FyZAogCiBDT05GSUdfTUNGVUFSVAkJLS0gZGVmaW5lIHRvIHVzZSBjb21tb24gQ0YgVWFydCBkcml2ZXIKLUNGR19VQVJUX1BPUlQJCS0tIGRlZmluZSBVQVJUIHBvcnQgbnVtYmVyLCBzdGFydCB3aXRoIDAsIDEgYW5kIDIKK0NPTkZJR19TWVNfVUFSVF9QT1JUCQktLSBkZWZpbmUgVUFSVCBwb3J0IG51bWJlciwgc3RhcnQgd2l0aCAwLCAxIGFuZCAyCiBDT05GSUdfQkFVRFJBVEUJCS0tIGRlZmluZSBVQVJUIGJhdWRyYXRlCiAKIENPTkZJR19NQ0ZSVEMJCS0tIGRlZmluZSB0byB1c2UgY29tbW9uIENGIFJUQyBkcml2ZXIKLUNGR19NQ0ZSVENfQkFTRQkJLS0gcHJvdmlkZSBiYXNlIGFkZHJlc3MgZm9yIFJUQyBpbiBpbW1hcC5oCi1DRkdfUlRDX09TQ0lMTEFUT1IJLS0gZGVmaW5lIFJUQyBjbG9jayBmcmVxdWVuY3kKK0NPTkZJR19TWVNfTUNGUlRDX0JBU0UJCS0tIHByb3ZpZGUgYmFzZSBhZGRyZXNzIGZvciBSVEMgaW4gaW1tYXAuaAorQ09ORklHX1NZU19SVENfT1NDSUxMQVRPUgktLSBkZWZpbmUgUlRDIGNsb2NrIGZyZXF1ZW5jeQogUlRDX0RFQlVHCQktLSBkZWZpbmUgdG8gc2hvdyBSVEMgZGVidWcgbWVzc2FnZQogQ09ORklHX0NNRF9EQVRFCQktLSBlbmFibGUgdG8gdXNlIGRhdGUgZmVhdHVyZSBpbiB1LWJvb3QKIApAQCAtODQsMTMgKzg0LDEzIEBACiBDT05GSUdfTkVUX01VTFRJCS0tIGRlZmluZSB0byB1c2UgbXVsdGkgRkVDIGluIHUtYm9vdAogQ09ORklHX01JSQkJLS0gZW5hYmxlIHRvIHVzZSBNSUkgZHJpdmVyCiBDT05GSUdfQ0ZfRE9NSUkJCS0tIGVuYWJsZSB0byB1c2UgTUlJIGZlYXR1cmUgaW4gY21kX21paS5jCi1DRkdfRElTQ09WRVJfUEhZCS0tIGVuYWJsZSBQSFkgZGlzY292ZXJ5Ci1DRkdfUlhfRVRIX0JVRkZFUgktLSBTZXQgRkVDIFJlY2VpdmUgYnVmZmVyCi1DRkdfRkFVTFRfRUNIT19MSU5LX0RPV04tLQotQ0ZHX0ZFQzBfUElOTVVYCQktLSBTZXQgRkVDMCBQaW4gY29uZmlndXJhdGlvbgotQ0ZHX0ZFQzFfUElOTVVYCQktLSBTZXQgRkVDMSBQaW4gY29uZmlndXJhdGlvbgotQ0ZHX0ZFQzBfTUlJQkFTRQktLSBTZXQgRkVDMCBNSUkgYmFzZSByZWdpc3RlcgotQ0ZHX0ZFQzFfTUlJQkFTRQktLSBTZXQgRkVDMCBNSUkgYmFzZSByZWdpc3RlcgorQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkJLS0gZW5hYmxlIFBIWSBkaXNjb3ZlcnkKK0NPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgktLSBTZXQgRkVDIFJlY2VpdmUgYnVmZmVyCitDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOLS0KK0NPTkZJR19TWVNfRkVDMF9QSU5NVVgJCS0tIFNldCBGRUMwIFBpbiBjb25maWd1cmF0aW9uCitDT05GSUdfU1lTX0ZFQzFfUElOTVVYCQktLSBTZXQgRkVDMSBQaW4gY29uZmlndXJhdGlvbgorQ09ORklHX1NZU19GRUMwX01JSUJBU0UJLS0gU2V0IEZFQzAgTUlJIGJhc2UgcmVnaXN0ZXIKK0NPTkZJR19TWVNfRkVDMV9NSUlCQVNFCS0tIFNldCBGRUMwIE1JSSBiYXNlIHJlZ2lzdGVyCiBNQ0ZGRUNfVE9VVF9MT09QCS0tIHNldCBGRUMgdGltZW91dCBsb29wCiBDT05GSUdfSEFTX0VUSDEJCS0tIGRlZmluZSB0byBlbmFibGUgc2Vjb25kIEZFQyBpbiB1LWJvb3QKIApAQCAtMTAwLDE0ICsxMDAsMTQgQEAKIENPTkZJR19JREVfUFJFSU5JVAktLSBkZWZpbmUgaWRlX3ByZWluaXQoKQogQ09ORklHX0FUQVBJCQktLSBkZWZpbmUgQVRBUEkgc3VwcG9ydAogQ09ORklHX0xCQTQ4CQktLSBkZWZpbmUgTEJBNDggKGxhcmdlciB0aGFuIDEyMEdCKSBzdXBwb3J0Ci1DRkdfSURFX01BWEJVUwkJLS0gZGVmaW5lIG1heCBjaGFubmVsCi1DRkdfSURFX01BWERFVklDRQktLSBkZWZpbmUgbWF4IGRldmljZXMgcGVyIGNoYW5uZWwKLUNGR19BVEFfQkFTRV9BRERSCS0tIGRlZmluZSBBVEEgYmFzZSBhZGRyZXNzCi1DRkdfQVRBX0lERTBfT0ZGU0VUCS0tIGRlZmluZSBBVEEgSURFMCBvZmZzZXQKLUNGR19BVEFfREFUQV9PRkZTRVQJLS0gZGVmaW5lIEFUQSBkYXRhIElPCi1DRkdfQVRBX1JFR19PRkZTRVQJLS0gZGVmaW5lIGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMKLUNGR19BVEFfQUxUX09GRlNFVAktLSBkZWZpbmUgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMKLUNGR19BVEFfU1RSSURFCQktLSBkZWZpbmUgZm9yIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzCitDT05GSUdfU1lTX0lERV9NQVhCVVMJCS0tIGRlZmluZSBtYXggY2hhbm5lbAorQ09ORklHX1NZU19JREVfTUFYREVWSUNFCS0tIGRlZmluZSBtYXggZGV2aWNlcyBwZXIgY2hhbm5lbAorQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCS0tIGRlZmluZSBBVEEgYmFzZSBhZGRyZXNzCitDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAktLSBkZWZpbmUgQVRBIElERTAgb2Zmc2V0CitDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAktLSBkZWZpbmUgQVRBIGRhdGEgSU8KK0NPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJLS0gZGVmaW5lIGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMKK0NPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJLS0gZGVmaW5lIGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCitDT05GSUdfU1lTX0FUQV9TVFJJREUJCS0tIGRlZmluZSBmb3IgSW50ZXJ2YWwgYmV0d2VlbiByZWdpc3RlcnMKIF9JT19CQVNFCQktLSBkZWZpbmUgZm9yIElPIGJhc2UgYWRkcmVzcwogCiBDT05GSUdfTUNGVE1SCQktLSBkZWZpbmUgdG8gdXNlIERNQSB0aW1lcgpAQCAtMTE2LDQyICsxMTYsNDIgQEAKIENPTkZJR19GU0xfSTJDCQktLSBkZWZpbmUgdG8gdXNlIEZTTCBjb21tb24gSTJDIGRyaXZlcgogQ09ORklHX0hBUkRfSTJDCQktLSBkZWZpbmUgZm9yIEkyQyBoYXJkd2FyZSBzdXBwb3J0CiBDT05GSUdfU09GVF9JMkMJCS0tIGRlZmluZSBmb3IgSTJDIGJpdC1iYW5nZWQKLUNGR19JMkNfU1BFRUQJCS0tIGRlZmluZSBmb3IgSTJDIHNwZWVkCi1DRkdfSTJDX1NMQVZFCQktLSBkZWZpbmUgZm9yIEkyQyBzbGF2ZSBhZGRyZXNzCi1DRkdfSTJDX09GRlNFVAkJLS0gZGVmaW5lIGZvciBJMkMgYmFzZSBhZGRyZXNzIG9mZnNldAotQ0ZHX0lNTVIJCS0tIGRlZmluZSBmb3IgTUJBUiBvZmZzZXQKK0NPTkZJR19TWVNfSTJDX1NQRUVECQktLSBkZWZpbmUgZm9yIEkyQyBzcGVlZAorQ09ORklHX1NZU19JMkNfU0xBVkUJCS0tIGRlZmluZSBmb3IgSTJDIHNsYXZlIGFkZHJlc3MKK0NPTkZJR19TWVNfSTJDX09GRlNFVAkJLS0gZGVmaW5lIGZvciBJMkMgYmFzZSBhZGRyZXNzIG9mZnNldAorQ09ORklHX1NZU19JTU1SCQktLSBkZWZpbmUgZm9yIE1CQVIgb2Zmc2V0CiAKIENPTkZJR19QQ0kgICAgICAgICAgICAgIC0tIGRlZmluZSBmb3IgUENJIHN1cHBvcnQKIENPTkZJR19QQ0lfUE5QICAgICAgICAgIC0tIGRlZmluZSBmb3IgUGx1ZyBuIHBsYXkgc3VwcG9ydAotQ0ZHX1BDSV9NRU1fQlVTCQktLSBQQ0kgbWVtb3J5IGxvZ2ljYWwgb2Zmc2V0Ci1DRkdfUENJX01FTV9QSFlTCS0tIFBDSSBtZW1vcnkgcGh5c2ljYWwgb2Zmc2V0Ci1DRkdfUENJX01FTV9TSVpFCS0tIFBDSSBtZW1vcnkgc2l6ZQotQ0ZHX1BDSV9JT19CVVMJCS0tIFBDSSBJTyBsb2dpY2FsIG9mZnNldAotQ0ZHX1BDSV9JT19QSFlTCQktLSBQQ0kgSU8gcGh5c2ljYWwgb2Zmc2V0Ci1DRkdfUENJX0lPX1NJWkUJCS0tIFBDSSBJTyBzaXplCi1DRkdfUENJX0NGR19CVVMJCS0tIFBDSSBDb25maWd1cmF0aW9uIGxvZ2ljYWwgb2Zmc2V0Ci1DRkdfUENJX0NGR19QSFlTCS0tIFBDSSBDb25maWd1cmF0aW9uIHBoeXNpY2FsIG9mZnNldAotQ0ZHX1BDSV9DRkdfU0laRQktLSBQQ0kgQ29uZmlndXJhdGlvbiBzaXplCitDT05GSUdfU1lTX1BDSV9NRU1fQlVTCQktLSBQQ0kgbWVtb3J5IGxvZ2ljYWwgb2Zmc2V0CitDT05GSUdfU1lTX1BDSV9NRU1fUEhZUwktLSBQQ0kgbWVtb3J5IHBoeXNpY2FsIG9mZnNldAorQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJLS0gUENJIG1lbW9yeSBzaXplCitDT05GSUdfU1lTX1BDSV9JT19CVVMJCS0tIFBDSSBJTyBsb2dpY2FsIG9mZnNldAorQ09ORklHX1NZU19QQ0lfSU9fUEhZUwkJLS0gUENJIElPIHBoeXNpY2FsIG9mZnNldAorQ09ORklHX1NZU19QQ0lfSU9fU0laRQkJLS0gUENJIElPIHNpemUKK0NPTkZJR19TWVNfUENJX0NGR19CVVMJCS0tIFBDSSBDb25maWd1cmF0aW9uIGxvZ2ljYWwgb2Zmc2V0CitDT05GSUdfU1lTX1BDSV9DRkdfUEhZUwktLSBQQ0kgQ29uZmlndXJhdGlvbiBwaHlzaWNhbCBvZmZzZXQKK0NPTkZJR19TWVNfUENJX0NGR19TSVpFCS0tIFBDSSBDb25maWd1cmF0aW9uIHNpemUKIAogQ09ORklHX0VYVFJBX0NMT0NLCS0tIEVuYWJsZSBleHRyYSBjbG9jayBzdWNoIGFzIHZjbywgZmxleGJ1cywgcGNpLCBldGMKIAotQ0ZHX01CQVIJCS0tIGRlZmluZSBNQkFSIG9mZnNldAorQ09ORklHX1NZU19NQkFSCQktLSBkZWZpbmUgTUJBUiBvZmZzZXQKIAotQ0ZHX0FUTUVMX0JPT1QJCS0tIFRvIGRldGVybWluZSB0aGUgdS1ib290IGlzIGJvb3RlZCBmcm9tIEF0bWVsIG9yIEludGVsCitDT05GSUdfU1lTX0FUTUVMX0JPT1QJCS0tIFRvIGRldGVybWluZSB0aGUgdS1ib290IGlzIGJvb3RlZCBmcm9tIEF0bWVsIG9yIEludGVsCiAKIENPTkZJR19NT05JVE9SX0lTX0lOX1JBTSAtLSBOb3Qgc3VwcG9ydAogCi1DRkdfSU5JVF9SQU1fQUREUgktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIE1DRjU0NDU1IGludGVybmFsIFNSQU0KK0NPTkZJR19TWVNfSU5JVF9SQU1fQUREUgktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIE1DRjU0NDU1IGludGVybmFsIFNSQU0KIAotQ0ZHX0NTbl9CQVNFCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IEJhc2UgcmVnaXN0ZXIKLUNGR19DU25fTUFTSwktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBNYXNrIHJlZ2lzdGVyCi1DRkdfQ1NuX0NUUkwJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgQ29udHJvbCByZWdpc3RlcgorQ09ORklHX1NZU19DU25fQkFTRQktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBCYXNlIHJlZ2lzdGVyCitDT05GSUdfU1lTX0NTbl9NQVNLCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IE1hc2sgcmVnaXN0ZXIKK0NPTkZJR19TWVNfQ1NuX0NUUkwJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgQ29udHJvbCByZWdpc3RlcgogCi1DRkdfQVRNRUxfQkFTRQktLSBkZWZpbmVzIHRoZSBBdG1lbCBGbGFzaCBiYXNlCi1DRkdfSU5URUxfQkFTRQktLSBkZWZpbmVzIHRoZSBJbnRlbCBGbGFzaCBiYXNlCitDT05GSUdfU1lTX0FUTUVMX0JBU0UJLS0gZGVmaW5lcyB0aGUgQXRtZWwgRmxhc2ggYmFzZQorQ09ORklHX1NZU19JTlRFTF9CQVNFCS0tIGRlZmluZXMgdGhlIEludGVsIEZsYXNoIGJhc2UKIAotQ0ZHX1NEUkFNX0JBU0UJLS0gZGVmaW5lcyB0aGUgRFJBTSBCYXNlCi1DRkdfU0RSQU1fQkFTRTEJLS0gZGVmaW5lcyB0aGUgRFJBTSBCYXNlIDEKK0NPTkZJR19TWVNfU0RSQU1fQkFTRQktLSBkZWZpbmVzIHRoZSBEUkFNIEJhc2UKK0NPTkZJR19TWVNfU0RSQU1fQkFTRTEJLS0gZGVmaW5lcyB0aGUgRFJBTSBCYXNlIDEKIAogMi4gTUVNT1JZIE1BUCBVTkRFUiBVLUJPT1QgQU5EIExJTlVYIEtFUk5FTAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5tNTQ3NWV2YiBiL2RvYy9SRUFETUUubTU0NzVldmIKaW5kZXggMzdkMTQzOC4uZGM5YTYwNSAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5tNTQ3NWV2YgorKysgYi9kb2MvUkVBRE1FLm01NDc1ZXZiCkBAIC03NCwyMCArNzQsMjAgQEAKIENPTkZJR19NNTQ3NQkJLS0gZGVmaW5lIGZvciBNNTQ3NUVWQiBib2FyZAogCiBDT05GSUdfTUNGVUFSVAkJLS0gZGVmaW5lIHRvIHVzZSBjb21tb24gQ0YgVWFydCBkcml2ZXIKLUNGR19VQVJUX1BPUlQJCS0tIGRlZmluZSBVQVJUIHBvcnQgbnVtYmVyLCBzdGFydCB3aXRoIDAsIDEgYW5kIDIKK0NPTkZJR19TWVNfVUFSVF9QT1JUCQktLSBkZWZpbmUgVUFSVCBwb3J0IG51bWJlciwgc3RhcnQgd2l0aCAwLCAxIGFuZCAyCiBDT05GSUdfQkFVRFJBVEUJCS0tIGRlZmluZSBVQVJUIGJhdWRyYXRlCiAKIENPTkZJR19GU0xETUFGRUMJLS0gZGVmaW5lIHRvIHVzZSBjb21tb24gZG1hIEZFQyBkcml2ZXIKIENPTkZJR19ORVRfTVVMVEkJLS0gZGVmaW5lIHRvIHVzZSBtdWx0aSBGRUMgaW4gdS1ib290CiBDT05GSUdfTUlJCQktLSBlbmFibGUgdG8gdXNlIE1JSSBkcml2ZXIKIENPTkZJR19DRl9ET01JSQkJLS0gZW5hYmxlIHRvIHVzZSBNSUkgZmVhdHVyZSBpbiBjbWRfbWlpLmMKLUNGR19ESVNDT1ZFUl9QSFkJLS0gZW5hYmxlIFBIWSBkaXNjb3ZlcnkKLUNGR19SWF9FVEhfQlVGRkVSCS0tIFNldCBGRUMgUmVjZWl2ZSBidWZmZXIKLUNGR19GQVVMVF9FQ0hPX0xJTktfRE9XTi0tCi1DRkdfRkVDMF9QSU5NVVgJCS0tIFNldCBGRUMwIFBpbiBjb25maWd1cmF0aW9uCi1DRkdfRkVDMV9QSU5NVVgJCS0tIFNldCBGRUMxIFBpbiBjb25maWd1cmF0aW9uCi1DRkdfRkVDMF9NSUlCQVNFCS0tIFNldCBGRUMwIE1JSSBiYXNlIHJlZ2lzdGVyCi1DRkdfRkVDMV9NSUlCQVNFCS0tIFNldCBGRUMwIE1JSSBiYXNlIHJlZ2lzdGVyCitDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQktLSBlbmFibGUgUEhZIGRpc2NvdmVyeQorQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCS0tIFNldCBGRUMgUmVjZWl2ZSBidWZmZXIKK0NPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04tLQorQ09ORklHX1NZU19GRUMwX1BJTk1VWAkJLS0gU2V0IEZFQzAgUGluIGNvbmZpZ3VyYXRpb24KK0NPTkZJR19TWVNfRkVDMV9QSU5NVVgJCS0tIFNldCBGRUMxIFBpbiBjb25maWd1cmF0aW9uCitDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQktLSBTZXQgRkVDMCBNSUkgYmFzZSByZWdpc3RlcgorQ09ORklHX1NZU19GRUMxX01JSUJBU0UJLS0gU2V0IEZFQzAgTUlJIGJhc2UgcmVnaXN0ZXIKIE1DRkZFQ19UT1VUX0xPT1AJLS0gc2V0IEZFQyB0aW1lb3V0IGxvb3AKIENPTkZJR19IQVNfRVRIMQkJLS0gZGVmaW5lIHRvIGVuYWJsZSBzZWNvbmQgRkVDIGluIHUtYm9vdAogCkBAIC0xMDEsMzUgKzEwMSwzNSBAQAogQ09ORklHX0ZTTF9JMkMJCS0tIGRlZmluZSB0byB1c2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyCiBDT05GSUdfSEFSRF9JMkMJCS0tIGRlZmluZSBmb3IgSTJDIGhhcmR3YXJlIHN1cHBvcnQKIENPTkZJR19TT0ZUX0kyQwkJLS0gZGVmaW5lIGZvciBJMkMgYml0LWJhbmdlZAotQ0ZHX0kyQ19TUEVFRAkJLS0gZGVmaW5lIGZvciBJMkMgc3BlZWQKLUNGR19JMkNfU0xBVkUJCS0tIGRlZmluZSBmb3IgSTJDIHNsYXZlIGFkZHJlc3MKLUNGR19JMkNfT0ZGU0VUCQktLSBkZWZpbmUgZm9yIEkyQyBiYXNlIGFkZHJlc3Mgb2Zmc2V0Ci1DRkdfSU1NUgkJLS0gZGVmaW5lIGZvciBNQkFSIG9mZnNldAorQ09ORklHX1NZU19JMkNfU1BFRUQJCS0tIGRlZmluZSBmb3IgSTJDIHNwZWVkCitDT05GSUdfU1lTX0kyQ19TTEFWRQkJLS0gZGVmaW5lIGZvciBJMkMgc2xhdmUgYWRkcmVzcworQ09ORklHX1NZU19JMkNfT0ZGU0VUCQktLSBkZWZpbmUgZm9yIEkyQyBiYXNlIGFkZHJlc3Mgb2Zmc2V0CitDT05GSUdfU1lTX0lNTVIJCS0tIGRlZmluZSBmb3IgTUJBUiBvZmZzZXQKIAogQ09ORklHX1BDSQkJLS0gZGVmaW5lIGZvciBQQ0kgc3VwcG9ydAogQ09ORklHX1BDSV9QTlAJCS0tIGRlZmluZSBmb3IgUGx1ZyBuIHBsYXkgc3VwcG9ydAogQ09ORklHX1NLSVBQQ0lfSE9TVEJSSURHRQktLSBTS0lQIFBDSSBIb3N0IGJyaWRnZQotQ0ZHX1BDSV9NRU1fQlVTCQktLSBQQ0kgbWVtb3J5IGxvZ2ljYWwgb2Zmc2V0Ci1DRkdfUENJX01FTV9QSFlTCS0tIFBDSSBtZW1vcnkgcGh5c2ljYWwgb2Zmc2V0Ci1DRkdfUENJX01FTV9TSVpFCS0tIFBDSSBtZW1vcnkgc2l6ZQotQ0ZHX1BDSV9JT19CVVMJCS0tIFBDSSBJTyBsb2dpY2FsIG9mZnNldAotQ0ZHX1BDSV9JT19QSFlTCQktLSBQQ0kgSU8gcGh5c2ljYWwgb2Zmc2V0Ci1DRkdfUENJX0lPX1NJWkUJCS0tIFBDSSBJTyBzaXplCi1DRkdfUENJX0NGR19CVVMJCS0tIFBDSSBDb25maWd1cmF0aW9uIGxvZ2ljYWwgb2Zmc2V0Ci1DRkdfUENJX0NGR19QSFlTCS0tIFBDSSBDb25maWd1cmF0aW9uIHBoeXNpY2FsIG9mZnNldAotQ0ZHX1BDSV9DRkdfU0laRQktLSBQQ0kgQ29uZmlndXJhdGlvbiBzaXplCitDT05GSUdfU1lTX1BDSV9NRU1fQlVTCQktLSBQQ0kgbWVtb3J5IGxvZ2ljYWwgb2Zmc2V0CitDT05GSUdfU1lTX1BDSV9NRU1fUEhZUwktLSBQQ0kgbWVtb3J5IHBoeXNpY2FsIG9mZnNldAorQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJLS0gUENJIG1lbW9yeSBzaXplCitDT05GSUdfU1lTX1BDSV9JT19CVVMJCS0tIFBDSSBJTyBsb2dpY2FsIG9mZnNldAorQ09ORklHX1NZU19QQ0lfSU9fUEhZUwkJLS0gUENJIElPIHBoeXNpY2FsIG9mZnNldAorQ09ORklHX1NZU19QQ0lfSU9fU0laRQkJLS0gUENJIElPIHNpemUKK0NPTkZJR19TWVNfUENJX0NGR19CVVMJCS0tIFBDSSBDb25maWd1cmF0aW9uIGxvZ2ljYWwgb2Zmc2V0CitDT05GSUdfU1lTX1BDSV9DRkdfUEhZUwktLSBQQ0kgQ29uZmlndXJhdGlvbiBwaHlzaWNhbCBvZmZzZXQKK0NPTkZJR19TWVNfUENJX0NGR19TSVpFCS0tIFBDSSBDb25maWd1cmF0aW9uIHNpemUKIAotQ0ZHX01CQVIJCS0tIGRlZmluZSBNQkFSIG9mZnNldAorQ09ORklHX1NZU19NQkFSCQktLSBkZWZpbmUgTUJBUiBvZmZzZXQKIAogQ09ORklHX01PTklUT1JfSVNfSU5fUkFNIC0tIE5vdCBzdXBwb3J0CiAKLUNGR19JTklUX1JBTV9BRERSCS0tIGRlZmluZXMgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgTUNGNTQ3eCBpbnRlcm5hbCBTUkFNCitDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJLS0gZGVmaW5lcyB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBNQ0Y1NDd4IGludGVybmFsIFNSQU0KIAotQ0ZHX0NTbl9CQVNFCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IEJhc2UgcmVnaXN0ZXIKLUNGR19DU25fTUFTSwktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBNYXNrIHJlZ2lzdGVyCi1DRkdfQ1NuX0NUUkwJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgQ29udHJvbCByZWdpc3RlcgorQ09ORklHX1NZU19DU25fQkFTRQktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBCYXNlIHJlZ2lzdGVyCitDT05GSUdfU1lTX0NTbl9NQVNLCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IE1hc2sgcmVnaXN0ZXIKK0NPTkZJR19TWVNfQ1NuX0NUUkwJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgQ29udHJvbCByZWdpc3RlcgogCi1DRkdfU0RSQU1fQkFTRQktLSBkZWZpbmVzIHRoZSBEUkFNIEJhc2UKK0NPTkZJR19TWVNfU0RSQU1fQkFTRQktLSBkZWZpbmVzIHRoZSBEUkFNIEJhc2UKIAogMi4gTUVNT1JZIE1BUCBVTkRFUiBVLUJPT1QgQU5EIExJTlVYIEtFUk5FTAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5tNjhrIGIvZG9jL1JFQURNRS5tNjhrCmluZGV4IDBjNTMzZjMuLmU2YzMzYTcgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUubTY4aworKysgYi9kb2MvUkVBRE1FLm02OGsKQEAgLTcyLDcgKzcyLDcgQEAKIGh0dHA6Ly9tYWlsbWFuLnVjbGludXgub3JnL3BpcGVybWFpbC91Y2xpbnV4LWRldi8yMDAzLURlY2VtYmVyLzAyMzM4NC5odG1sCiAKIFUtYm9vdCBpcyBjb25maWd1cmVkIHRvIHJ1biBhdCAweDIwMDAwIGF0IGRlZmF1bHQuIFRoaXMgY2FuIGJlIGNvbmZpZ3VyZWQgYnkKLWNoYW5nZSBURVhUX0JBU0UgaW4gYm9hcmQvbTUyODJldmIvY29uZmlnLm1rIGFuZCBDRkdfTU9OSVRPUl9CQVNFIGluCitjaGFuZ2UgVEVYVF9CQVNFIGluIGJvYXJkL201MjgyZXZiL2NvbmZpZy5tayBhbmQgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgaW4KIGluY2x1ZGUvY29uZmlncy9NNTI4MkVWQi5oLgogCiAzLjIgQnVTIEVCK01DRi1FVjEyMwpAQCAtOTUsNyArOTUsNyBAQAogQ09ORklHX01PTklUT1JfSVNfSU5fUkFNIG11c3QgYmUgZGVmaW5lZC4gSWYgaXQgaXMgZGVmaW5lZCB0aGUKIGluaXRpYWwgdmVjdG9yIHRhYmxlIGFuZCBiYXNpYyBwcm9jZXNzb3IgaW5pdGlhbGl6YXRpb24gd2lsbCBub3QKIGJlIGNvbXBpbGVkIGluLiBUaGUgc3RhcnQgYWRkcmVzcyBvZiB1LWJvb3QgbXVzdCBiZSBhZGp1c3RlZCBpbgotdGhlIGJvYXJkcyBjb25maWcgaGVhZGVyIGZpbGUgKENGR19NT05JVE9SX0JBU0UpIGFuZCBNYWtlZmlsZQordGhlIGJvYXJkcyBjb25maWcgaGVhZGVyIGZpbGUgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSBhbmQgTWFrZWZpbGUKIChURVhUX0JBU0UpIHRvIHRoZSBsb2FkIGFkZHJlc3MuCiAKIDQuMSBNQ0Y1MjcyIHNwZWNpZmljIE9wdGlvbnMvU2V0dGluZ3MKQEAgLTEwNywyMCArMTA3LDIwIEBACiBDT05GSUdfTU9OSVRPUl9JU19JTl9SQU0KIAkJLS0gZGVmaW5lZCBpZiB1LWJvb3QgaXMgbG9hZGVkIGJ5IGEgcHJlLWxvYWRlcgogCi1DRkdfTUJBUgktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIE1DRjUyNzIgY29uZmlndXJhdGlvbiByZWdpc3RlcnMKLUNGR19JTklUX1JBTV9BRERSCitDT05GSUdfU1lTX01CQVIJLS0gZGVmaW5lcyB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBNQ0Y1MjcyIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXJzCitDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIKIAkJLS0gZGVmaW5lcyB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBNQ0Y1MjcyIGludGVybmFsIFNSQU0KLUNGR19FTkVUX0JEX0JBU0UKK0NPTkZJR19TWVNfRU5FVF9CRF9CQVNFCiAJCS0tIGRlZmluZXMgdGhlIGJhc2UgYWRkcmVzIG9mIHRoZSBGRUMgYnVmZmVyIGRlc2NyaXB0b3JzCiAKLUNGR19TQ1IJCS0tIGRlZmluZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBTeXN0ZW0gQ29uZmlndXJhdGlvbiBSZWdpc3RlcgotQ0ZHX1NQUgkJLS0gZGVmaW5lcyB0aGUgY29udGVudHMgb2YgdGhlIFN5c3RlbSBQcm90ZWN0aW9uIFJlZ2lzdGVyCi1DRkdfQlJ4X1BSRUxJTQktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgQ2hpcCBTZWxlY3QgQmFzZSBSZWdpc3RlcnMKLUNGR19PUnhfUFJFTElNCS0tIGRlZmluZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBDaGlwIFNlbGVjdCBPcHRpb24gUmVnaXN0ZXJzCitDT05GSUdfU1lTX1NDUgkJLS0gZGVmaW5lcyB0aGUgY29udGVudHMgb2YgdGhlIFN5c3RlbSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyCitDT05GSUdfU1lTX1NQUgkJLS0gZGVmaW5lcyB0aGUgY29udGVudHMgb2YgdGhlIFN5c3RlbSBQcm90ZWN0aW9uIFJlZ2lzdGVyCitDT05GSUdfU1lTX0JSeF9QUkVMSU0JLS0gZGVmaW5lcyB0aGUgY29udGVudHMgb2YgdGhlIENoaXAgU2VsZWN0IEJhc2UgUmVnaXN0ZXJzCitDT05GSUdfU1lTX09SeF9QUkVMSU0JLS0gZGVmaW5lcyB0aGUgY29udGVudHMgb2YgdGhlIENoaXAgU2VsZWN0IE9wdGlvbiBSZWdpc3RlcnMKIAotQ0ZHX1B4RERSCS0tIGRlZmluZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBEYXRhIERpcmVjdGlvbiBSZWdpc3RlcnMKLUNGR19QeERBVAktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgRGF0YSBSZWdpc3RlcnMKLUNGR19QWENOVAktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgUG9ydCBDb25maWd1cmF0aW9uIFJlZ2lzdGVycworQ09ORklHX1NZU19QeEREUgktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgRGF0YSBEaXJlY3Rpb24gUmVnaXN0ZXJzCitDT05GSUdfU1lTX1B4REFUCS0tIGRlZmluZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBEYXRhIFJlZ2lzdGVycworQ09ORklHX1NZU19QWENOVAktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgUG9ydCBDb25maWd1cmF0aW9uIFJlZ2lzdGVycwogCiAKIDQuMiBNQ0Y1MjgyIHNwZWNpZmljIE9wdGlvbnMvU2V0dGluZ3MKQEAgLTEzMiwzMiArMTMyLDMyIEBACiBDT05GSUdfTU9OSVRPUl9JU19JTl9SQU0KIAkJLS0gZGVmaW5lZCBpZiB1LWJvb3QgaXMgbG9hZGVkIGJ5IGEgcHJlLWxvYWRlcgogCi1DRkdfTUJBUgktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIE1DRjUyODIgaW50ZXJuYWwgcmVnaXN0ZXIgc3BhY2UKLUNGR19JTklUX1JBTV9BRERSCitDT05GSUdfU1lTX01CQVIJLS0gZGVmaW5lcyB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBNQ0Y1MjgyIGludGVybmFsIHJlZ2lzdGVyIHNwYWNlCitDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIKIAkJLS0gZGVmaW5lcyB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBNQ0Y1MjgyIGludGVybmFsIFNSQU0KLUNGR19JTlRfRkxBU0hfQkFTRQorQ09ORklHX1NZU19JTlRfRkxBU0hfQkFTRQogCQktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIE1DRjUyODIgaW50ZXJuYWwgRmxhc2ggbWVtb3J5Ci1DRkdfRU5FVF9CRF9CQVNFCitDT05GSUdfU1lTX0VORVRfQkRfQkFTRQogCQktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlcyBvZiB0aGUgRkVDIGJ1ZmZlciBkZXNjcmlwdG9ycwogCi1DRkdfTUZECitDT05GSUdfU1lTX01GRAogCQktLSBkZWZpbmVzIHRoZSBQTEwgTXVsdGlwbGljYXRpb24gRmFjdG9yIERldmlkZXIKIAkJICAgKHNlZSB0YWJsZSA5LTQgb2YgTUNGIHVzZXIgbWFudWFsKQotQ0ZHX1JGRAkJLS0gZGVmaW5lcyB0aGUgUExMIFJlZHVjZSBGcmVjdWVuY3kgRGV2aWRlcgorQ09ORklHX1NZU19SRkQJCS0tIGRlZmluZXMgdGhlIFBMTCBSZWR1Y2UgRnJlY3VlbmN5IERldmlkZXIKIAkJICAgKHNlZSB0YWJsZSA5LTQgb2YgTUNGIHVzZXIgbWFudWFsKQogCi1DRkdfQ1N4X0JBU0UJLS0gZGVmaW5lcyB0aGUgYmFzZSBhZGRyZXNzIG9mIGNoaXAgc2VsZWN0IHgKLUNGR19DU3hfU0laRQktLSBkZWZpbmVzIHRoZSBtZW1vcnkgc2l6ZSAoYWRkcmVzcyByYW5nZSkgb2YgY2hpcCBzZWxlY3QgeAotQ0ZHX0NTeF9XSURUSAktLSBkZWZpbmVzIHRoZSBidXMgd2l0aCBvZiBjaGlwIHNlbGVjdCB4Ci1DRkdfQ1N4X1JPCS0tIGlmIHNldCB0byAwIGNoaXAgc2VsZWN0IHggaXMgcmVhZC93aXJ0ZQorQ09ORklHX1NZU19DU3hfQkFTRQktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgY2hpcCBzZWxlY3QgeAorQ09ORklHX1NZU19DU3hfU0laRQktLSBkZWZpbmVzIHRoZSBtZW1vcnkgc2l6ZSAoYWRkcmVzcyByYW5nZSkgb2YgY2hpcCBzZWxlY3QgeAorQ09ORklHX1NZU19DU3hfV0lEVEgJLS0gZGVmaW5lcyB0aGUgYnVzIHdpdGggb2YgY2hpcCBzZWxlY3QgeAorQ09ORklHX1NZU19DU3hfUk8JLS0gaWYgc2V0IHRvIDAgY2hpcCBzZWxlY3QgeCBpcyByZWFkL3dpcnRlCiAJCQllbHNlIGNoaXBzZWxjdCBpcyByZWFkIG9ubHkKLUNGR19DU3hfV1MJLS0gZGVmaW5lcyB0aGUgbnVtYmVyIG9mIHdhaXQgc3RhdGVzICBvZiBjaGlwIHNlbGVjdCB4CitDT05GSUdfU1lTX0NTeF9XUwktLSBkZWZpbmVzIHRoZSBudW1iZXIgb2Ygd2FpdCBzdGF0ZXMgIG9mIGNoaXAgc2VsZWN0IHgKIAotQ0ZHX1B4RERSCS0tIGRlZmluZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBEYXRhIERpcmVjdGlvbiBSZWdpc3RlcnMKLUNGR19QeERBVAktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgRGF0YSBSZWdpc3RlcnMKLUNGR19QWENOVAktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgUG9ydCBDb25maWd1cmF0aW9uIFJlZ2lzdGVycworQ09ORklHX1NZU19QeEREUgktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgRGF0YSBEaXJlY3Rpb24gUmVnaXN0ZXJzCitDT05GSUdfU1lTX1B4REFUCS0tIGRlZmluZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBEYXRhIFJlZ2lzdGVycworQ09ORklHX1NZU19QWENOVAktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgUG9ydCBDb25maWd1cmF0aW9uIFJlZ2lzdGVycwogCi1DRkdfUHhQQVIJLS0gZGVmaW5lcyB0aGUgZnVuY3Rpb24gb2YgcG9ydHMKK0NPTkZJR19TWVNfUHhQQVIJLS0gZGVmaW5lcyB0aGUgZnVuY3Rpb24gb2YgcG9ydHMKIAogCiA1LiBDT01QSUxFUgpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5tYXJ1YnVuLXBjbWNpYSBiL2RvYy9SRUFETUUubWFydWJ1bi1wY21jaWEKaW5kZXggNjA5OWRhMi4uZDM1NjNhMyAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5tYXJ1YnVuLXBjbWNpYQorKysgYi9kb2MvUkVBRE1FLm1hcnVidW4tcGNtY2lhCkBAIC0zMywyOCArMzMsMjggQEAKIAlNb3N0IGRldmljZXMgaGF2ZSBvbmx5IG9uZSBzbG90LiBZb3Ugc2hvdWxkIGRlZmluZSBDT05GSUdfUENNQ0lBX1NMT1RfQSAuCiAJZXguCSNkZWZpbmUgQ09ORklHX1BDTUNJQV9TTE9UX0EgICAgMQogCi0gICAgKiBDRkdfTUFSVUJVTl9NUlNIUEMKKyAgICAqIENPTkZJR19TWVNfTUFSVUJVTl9NUlNIUEMKIAlUaGlzIGlzIE1SLVNIUEMtMDEgUENNQ0lBIGNvbnRyb2xlciBiYXNlIGFkZHJlc3MuCiAJWW91IHNob3VsZCBkbyB0aGUgc2V0dGluZyBtYXRjaGVkIHRvIHlvdXIgZW52aXJvbm1lbnQuCi0JZXguICAjZGVmaW5lIENGR19NQVJVQlVOX01SU0hQQyAweGIwM2ZmZmUwCisJZXguICAjZGVmaW5lIENPTkZJR19TWVNfTUFSVUJVTl9NUlNIUEMgMHhiMDNmZmZlMAogCSAgICAgKCBmb3IgTVM3NzIyU0UwMSBlbnZpcm9ubWVudCApCiAKLSAgICAqIENGR19NQVJVQlVOX01XMQorICAgICogQ09ORklHX1NZU19NQVJVQlVOX01XMQogCVRoaXMgaXMgTVItU0hQQy0wMSBtZW1vcnkgd2luZG93IGJhc2UgYWRkcmVzcy4KIAlZb3Ugc2hvdWxkIGRvIHRoZSBzZXR0aW5nIG1hdGNoZWQgdG8geW91ciBlbnZpcm9ubWVudC4KLQlleC4gI2RlZmluZSBDRkdfTUFSVUJVTl9NVzEgMHhiMDQwMDAwMAorCWV4LiAjZGVmaW5lIENPTkZJR19TWVNfTUFSVUJVTl9NVzEgMHhiMDQwMDAwMAogCSAgICAgKCBmb3IgTVM3NzIyU0UwMSBlbnZpcm9ubWVudCApCiAKLSAgICAqIENGR19NQVJVQlVOX01XMQorICAgICogQ09ORklHX1NZU19NQVJVQlVOX01XMQogCVRoaXMgaXMgTVItU0hQQy0wMSBhdHRyaWJ1dGUgd2luZG93IGJhc2UgYWRkcmVzcy4KIAlZb3Ugc2hvdWxkIGRvIHRoZSBzZXR0aW5nIG1hdGNoZWQgdG8geW91ciBlbnZpcm9ubWVudC4KLQlleC4gI2RlZmluZSBDRkdfTUFSVUJVTl9NVzIgMHhiMDUwMDAwMAorCWV4LiAjZGVmaW5lIENPTkZJR19TWVNfTUFSVUJVTl9NVzIgMHhiMDUwMDAwMAogCSAgICAgKCBmb3IgTVM3NzIyU0UwMSBlbnZpcm9ubWVudCApCiAKLSAgICAqIENGR19NQVJVQlVOX01XMQorICAgICogQ09ORklHX1NZU19NQVJVQlVOX01XMQogCVRoaXMgaXMgTVItU0hQQy0wMSBJL08gd2luZG93IGJhc2UgYWRkcmVzcy4KIAlZb3Ugc2hvdWxkIGRvIHRoZSBzZXR0aW5nIG1hdGNoZWQgdG8geW91ciBlbnZpcm9ubWVudC4KLQlleC4gI2RlZmluZSBDRkdfTUFSVUJVTl9JTyAgMHhiMDYwMDAwMAorCWV4LiAjZGVmaW5lIENPTkZJR19TWVNfTUFSVUJVTl9JTyAgMHhiMDYwMDAwMAogCSAgICAgKCBmb3IgTVM3NzIyU0UwMSBlbnZpcm9ubWVudCApCiAKIDMuIE90aGVyCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLm1wYzgzMTNlcmRiIGIvZG9jL1JFQURNRS5tcGM4MzEzZXJkYgppbmRleCBjZDU2Njg5Li43YzFhZjE3IDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLm1wYzgzMTNlcmRiCisrKyBiL2RvYy9SRUFETUUubXBjODMxM2VyZGIKQEAgLTMsNyArMyw3IEBACiAKIDEuCUJvYXJkIFN3aXRjaGVzIGFuZCBKdW1wZXJzCiAKLQlTMyBpcyB1c2VkIHRvIHNldCBDRkdfUkVTRVRfU09VUkNFLgorCVMzIGlzIHVzZWQgdG8gc2V0IENPTkZJR19TWVNfUkVTRVRfU09VUkNFLgogCiAJVG8gYm9vdCB0aGUgaW1hZ2UgYXQgMHhGRTAwMDAwMCBpbiBOT1IgZmxhc2gsIHVzZSB0aGVzZSBESVAKIAlzd2l0Y2ggc2V0dGluZ3MgZm9yIFMzIFM0OgpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5tcGM4MzE1ZXJkYiBiL2RvYy9SRUFETUUubXBjODMxNWVyZGIKaW5kZXggZTc3ZWJhNy4uN2Q0NzZkMCAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5tcGM4MzE1ZXJkYgorKysgYi9kb2MvUkVBRE1FLm1wYzgzMTVlcmRiCkBAIC0zLDcgKzMsNyBAQAogCiAxLglCb2FyZCBTd2l0Y2hlcyBhbmQgSnVtcGVycwogCi0JUzMgaXMgdXNlZCB0byBzZXQgQ0ZHX1JFU0VUX1NPVVJDRS4KKwlTMyBpcyB1c2VkIHRvIHNldCBDT05GSUdfU1lTX1JFU0VUX1NPVVJDRS4KIAogCVRvIGJvb3QgdGhlIGltYWdlIGF0IDB4RkUwMDAwMDAgaW4gTk9SIGZsYXNoLCB1c2UgdGhlc2UgRElQCiAJc3dpdGNoIHNldHRpbmdzIGZvciBTMyBTNDoKZGlmZiAtLWdpdCBhL2RvYy9SRUFETUUubXBjODY0MWhwY24gYi9kb2MvUkVBRE1FLm1wYzg2NDFocGNuCmluZGV4IDFjNDFkNzcuLjJjM2M3MDMgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUubXBjODY0MWhwY24KKysrIGIvZG9jL1JFQURNRS5tcGM4NjQxaHBjbgpAQCAtMjEsMTYgKzIxLDE2IEBACiAJSjE0IFBpbnMgMS0yIChuZWFyIHBsY2MzMiBzb2NrZXQpCiAKIFN3aXRjaGVzOgotCVNXMSgxLTUpID0gMDExMDAJQ0ZHX0NPUkVQTEwJPSAwMTAwMCA6OiBDT1JFID0gICAyOjEKKwlTVzEoMS01KSA9IDAxMTAwCUNPTkZJR19TWVNfQ09SRVBMTAk9IDAxMDAwIDo6IENPUkUgPSAgIDI6MQogCQkJCQkJICAwMTEwMCA6OiBDT1JFID0gMi41OjEKIAkJCQkJCSAgMTAwMDAgOjogQ09SRSA9ICAgMzoxCiAJCQkJCQkgIDExMTAwIDo6IENPUkUgPSAzLjU6MQogCQkJCQkJICAxMDEwMCA6OiBDT1JFID0gICA0OjEKIAkJCQkJCSAgMDExMTAgOjogQ09SRSA9IDQuNToxCi0JU1cxKDYtOCkgPSAwMDEJCUNGR19TWVNDTEsJPSAwMDAJOjogU1lTQ0xLID0gMzNNSHoKKwlTVzEoNi04KSA9IDAwMQkJQ09ORklHX1NZU19TWVNDTEsJPSAwMDAJOjogU1lTQ0xLID0gMzNNSHoKIAkJCQkJCSAgMDAxCTo6IFNZU0NMSyA9IDQwTUh6CiAKLQlTVzIoMS00KSA9IDExMDAJCUNGR19DQ0JQTEwJPSAwMDEwCTo6IDJYCisJU1cyKDEtNCkgPSAxMTAwCQlDT05GSUdfU1lTX0NDQlBMTAk9IDAwMTAJOjogMlgKIAkJCQkJCSAgMDEwMAk6OiA0WAogCQkJCQkJICAwMTEwCTo6IDZYCiAJCQkJCQkgIDEwMDAJOjogOFgKQEAgLTM4LDM0ICszOCwzNCBAQAogCQkJCQkJICAxMTAwCTo6IDEyWAogCQkJCQkJICAxMTEwCTo6IDE0WAogCQkJCQkJICAwMDAwCTo6IDE2WAotCVNXMig1LTgpID0gMTExMAkJQ0ZHX0JPT1RMT0MJPSAxMTEwCTo6IGJvb3QgMTYtYml0IGxvY2FsYnVzCisJU1cyKDUtOCkgPSAxMTEwCQlDT05GSUdfU1lTX0JPT1RMT0MJPSAxMTEwCTo6IGJvb3QgMTYtYml0IGxvY2FsYnVzCiAKLQlTVzMoMS03KSA9IDAwMTEwMDAJQ0ZHX1ZJRAkJPSAwMDExMDAwIDo6IFZDT1JFID0gMS4yVgorCVNXMygxLTcpID0gMDAxMTAwMAlDT05GSUdfU1lTX1ZJRAkJPSAwMDExMDAwIDo6IFZDT1JFID0gMS4yVgogCQkJCQkJICAwMTAwMDAwIDo6IFZDT1JFID0gMS4xMVYKIAlTVzMoOCkJID0gMAkJVkNDX1BMQVQJPSAwCTo6IFZDQ19QTEFUID0gMS4yVgogCQkJCQkJICAxCTo6IFZDQ19QTEFUID0gMS4wVgogCi0JU1c0KDEtMikgPSAxMQkJQ0ZHX0hPU1RNT0RFCT0gMTEJOjogYm90aCBwcm90cyBob3N0L3Jvb3QKLQlTVzQoMy00KSA9IDExCQlDRkdfQk9PVFNFUQk9IDExCTo6IG5vIGJvb3Qgc2VxCi0JU1c0KDUtOCkgPSAwMDExCQlDRkdfSU9QT1JUCT0gMDAxMQk6OiBib3RoIFBFWAorCVNXNCgxLTIpID0gMTEJCUNPTkZJR19TWVNfSE9TVE1PREUJPSAxMQk6OiBib3RoIHByb3RzIGhvc3Qvcm9vdAorCVNXNCgzLTQpID0gMTEJCUNPTkZJR19TWVNfQk9PVFNFUQk9IDExCTo6IG5vIGJvb3Qgc2VxCisJU1c0KDUtOCkgPSAwMDExCQlDT05GSUdfU1lTX0lPUE9SVAk9IDAwMTEJOjogYm90aCBQRVgKIAotCVNXNSgxKQkgPSAxCQlDRkdfRkxBU0hNQVAJPSAxCTo6IGJvb3QgZnJvbSBmbGFzaAorCVNXNSgxKQkgPSAxCQlDT05GSUdfU1lTX0ZMQVNITUFQCT0gMQk6OiBib290IGZyb20gZmxhc2gKIAkJCQkJCSAgMAk6OiBib290IGZyb20gUHJvbUpldAotCVNXNSgyKQkgPSAxCQlDRkdfRkxBU0hCQU5LCT0gMQk6OiBzd2FwIHVwcGVyL2xvd2VyCisJU1c1KDIpCSA9IDEJCUNPTkZJR19TWVNfRkxBU0hCQU5LCT0gMQk6OiBzd2FwIHVwcGVyL2xvd2VyCiAJCQkJCQkJIGhhbHZlcyAodmlydHVhbCBiYW5rcykKIAkJCQkJCSAgMAk6OiBub3JtYWwKLQlTVzUoMykJID0gMAkJQ0ZHX0ZMQVNIV1AJPSAwCTo6IG5vdCBwcm90ZWN0ZWQKLQlTVzUoNCkJID0gMAkJQ0ZHX1BPUlRESVYJPSAxCTo6IDI6MSBmb3IgUEQ0CisJU1c1KDMpCSA9IDAJCUNPTkZJR19TWVNfRkxBU0hXUAk9IDAJOjogbm90IHByb3RlY3RlZAorCVNXNSg0KQkgPSAwCQlDT05GSUdfU1lTX1BPUlRESVYJPSAxCTo6IDI6MSBmb3IgUEQ0CiAJCQkJCQkJICAgMToxIGZvciBQRDYKLQlTVzUoNS02KSA9IDExCQlDRkdfUElYSVNPUFQJPSAxMQk6OiBzL3cgZGV0ZXJtaW5lZAotCVNXNSg3LTgpID0gMTEJCUNGR19MQURPUFQJPSAxMQk6OiBzL3cgZGV0ZXJtaW5lZAorCVNXNSg1LTYpID0gMTEJCUNPTkZJR19TWVNfUElYSVNPUFQJPSAxMQk6OiBzL3cgZGV0ZXJtaW5lZAorCVNXNSg3LTgpID0gMTEJCUNPTkZJR19TWVNfTEFET1BUCT0gMTEJOjogcy93IGRldGVybWluZWQKIAotCVNXNigxKQkgPSAxCQlDRkdfQ1BVQk9PVAk9IDEJOjogbm8gYm9vdCBob2xkb2ZmCi0JU1c2KDIpCSA9IDEJCUNGR19CT09UQUREUgk9IDEJOjogbm8gdHJhc2xhdGlvbgotCVNXNigzLTUpID0gMDAwCQlDRkdfUkVGQ0xLU0VMCT0gMDAwCTo6IDEwME1IWgotCVNXNig2KQkgPSAxCQlDRkdfU0VSUk9NX0FERFI9IDEJOjoKLQlTVzYoNykJID0gMQkJQ0ZHX01FTURFQlVHCT0gMQk6OgotCVNXNig4KQkgPSAxCQlDRkdfRERSREVCVUcJPSAxCTo6CisJU1c2KDEpCSA9IDEJCUNPTkZJR19TWVNfQ1BVQk9PVAk9IDEJOjogbm8gYm9vdCBob2xkb2ZmCisJU1c2KDIpCSA9IDEJCUNPTkZJR19TWVNfQk9PVEFERFIJPSAxCTo6IG5vIHRyYXNsYXRpb24KKwlTVzYoMy01KSA9IDAwMAkJQ09ORklHX1NZU19SRUZDTEtTRUwJPSAwMDAJOjogMTAwTUhaCisJU1c2KDYpCSA9IDEJCUNPTkZJR19TWVNfU0VSUk9NX0FERFI9IDEJOjoKKwlTVzYoNykJID0gMQkJQ09ORklHX1NZU19NRU1ERUJVRwk9IDEJOjoKKwlTVzYoOCkJID0gMQkJQ09ORklHX1NZU19ERFJERUJVRwk9IDEJOjoKIAogCVNXOCgxKQkgPSAxCQlBQ1pfU1lOQwk9IDEJOjogNDhNSHogb24gVFA0OQogCVNXOCgyKQkgPSAxCQlBQ0JfU1lOQwk9IDEJOjogVEhSTVRSSVAgZGlzYWJsZWQKQEAgLTc0LDcgKzc0LDcgQEAKIAlTVzgoNSkJID0gMAkJU1VTTEVECQk9IDAJOjogU291dGhCcmlkZ2UgTW9kZQogCVNXOCg2KQkgPSAwCQlTUFJFQUQJCT0gMAk6OiBSRUZDTEsgU1NDRyBEaXNhYmxlZAogCVNXOCg3KQkgPSAxCQlBQ1BXUgkJPSAxCTo6IG5vbi1iYXR0ZXJ5Ci0JU1c4KDgpCSA9IDAJCUNGR19JRFdQCT0gMAk6OiB3cml0ZSBlbmFibGUKKwlTVzgoOCkJID0gMAkJQ09ORklHX1NZU19JRFdQCT0gMAk6OiB3cml0ZSBlbmFibGUKIAogCiAzLiBGbGFzaCBVLUJvb3QKZGlmZiAtLWdpdCBhL2RvYy9SRUFETUUubmFuZCBiL2RvYy9SRUFETUUubmFuZAppbmRleCA2ZGFjMjRjLi5iZjgwYmMwIDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLm5hbmQKKysrIGIvZG9jL1JFQURNRS5uYW5kCkBAIC05NSw3ICs5NSw3IEBACiAgICAgICBDT05GSUdfTVREX05BTkRfRUNDX1lBRkZTIHdvdWxkIGJlIGFub3RoZXIgdXNlZnVsIGNob2ljZSBmb3IKICAgICAgIHNvbWVvbmUgdG8gaW1wbGVtZW50LgogCi0gICBDRkdfTUFYX05BTkRfREVWSUNFCisgICBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQogICAgICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyB5b3Ugd2FudCB0byBzdXBwb3J0LgogCiBOQU5EIEludGVyZmFjZToKQEAgLTE2NCw3ICsxNjQsNyBAQAogICAgVGhlc2UgZGVmaW5pdGlvbnMgYXJlIG5lZWRlZCBpbiB0aGUgYm9hcmQgY29uZmlndXJhdGlvbiBmb3Igbm93LCBidXQKICAgIG1heSByZWFsbHkgYmVsb25nIGluIGEgaGVhZGVyIGZpbGUuCiAgICBUT0RPOiBGaWd1cmUgd2hpY2ggb25lcyBhcmUgdHJ1bHkgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBhbmQgcmVuYW1lCi0JIHRoZW0gdG8gQ0ZHX05BTkRfLi4uIGFuZCBtb3ZlIHRoZSByZXN0IHNvbWV3aGVyZSBhcHByb3ByaWF0ZS4KKwkgdGhlbSB0byBDT05GSUdfU1lTX05BTkRfLi4uIGFuZCBtb3ZlIHRoZSByZXN0IHNvbWV3aGVyZSBhcHByb3ByaWF0ZS4KIAogICAgI2RlZmluZSBTRUNUT1JTSVpFIDUxMgogICAgI2RlZmluZSBBRERSX0NPTFVNTiAxCkBAIC0xNzQsNyArMTc0LDcgQEAKICAgICNkZWZpbmUgTkFORF9NQVhfRkxPT1JTIDEKICAgICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMgMQogCi0gICAjZGVmaW5lIENGR19EQVZJTkNJX0JST0tFTl9FQ0MKKyAgICNkZWZpbmUgQ09ORklHX1NZU19EQVZJTkNJX0JST0tFTl9FQ0MKICAgICAgIFZlcnNpb25zIG9mIFUtQm9vdCA8PSAxLjMuMyBhbmQgTW9udGF2aXN0YSBMaW51eCBrZXJuZWxzCiAgICAgICBnZW5lcmF0ZWQgYm9ndXMgRUNDcyBvbiBsYXJnZS1wYWdlIE5BTkQuIEJvdGggbGFyZ2UgYW5kIHNtYWxsIHBhZ2UKICAgICAgIE5BTkQgRUNDcyB3ZXJlIGluY29tcGF0aWJsZSB3aXRoIHRoZSBMaW51eCBkYXZpbmNpIGdpdCB0cmVlIChzaW5jZQpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5uaW9zIGIvZG9jL1JFQURNRS5uaW9zCmluZGV4IDJmMTE0ODkuLjdmMzQ5MzggMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUubmlvcworKysgYi9kb2MvUkVBRE1FLm5pb3MKQEAgLTY4LDExICs2OCwxMSBAQAogMi4xIE5pb3Mtc3BlY2lmaWMgT3B0aW9ucy9TZXR0aW5ncwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIEFsbCBjb25maWd1cmF0aW9uIG9wdGlvbnMvc2V0dGluZ3MgdGhhdCBhcmUgc3BlY2lmaWMgdG8gTmlvcyBiZWdpbgotd2l0aCAiQ09ORklHX05JT1NfIiwgIkNGR19OSU9TXyIsIG9yICJDRkdfTklPU19DUFVfIi4KK3dpdGggIkNPTkZJR19OSU9TXyIsICJDT05GSUdfU1lTX05JT1NfIiwgb3IgIkNPTkZJR19TWVNfTklPU19DUFVfIi4KIAogVGhlIGNvbmZpZ3VyYXRpb24gZm9sbG93cyBhIHR3by1zdGFnZSBwcm9jZXNzLiBJbiB0aGUgZmlyc3Qgc3RhZ2UKIHRoZSBOSU9TIENQVSBjb3JlIHdpbGwgZGVmaW5lZCBsaWtlIGRlZmluZWQgaW4gQWx0ZXJhcyBTT1BDIEJ1aWxkZXIuCi1BdCB0aGlzIHBvaW50IHdlIHVzZSB0aGUgIkNGR19OSU9TX0NQVV8iIGRlZmluZXMgZXhjbHVzaXZlbHkuIEZvcgorQXQgdGhpcyBwb2ludCB3ZSB1c2UgdGhlICJDT05GSUdfU1lTX05JT1NfQ1BVXyIgZGVmaW5lcyBleGNsdXNpdmVseS4gRm9yCiBtb3JlIGluZm9ybWF0aW9ucyBhYm91dCBhbGwgdGhlIGRlZmluaXRpb25zIHlvdSBoYXZlIHRvIHNldHVwIHNlZQogaW50byBjdXJyZW50IGJvYXJkIGNvbmZpZ3VyYXRpb25zIGFuZCBkb2MvUkVBRE1FLm5pb3NfQ0ZHX05JT1NfQ1BVLgogCkBAIC04NSw0MSArODUsNDEgQEAKIAogQ09ORklHX05JT1MgLS0gZGVmaW5lZCBmb3IgYWxsIE5pb3MtMzIgYm9hcmRzLgogCi1DRkdfTklPU19DT05TT0xFIC0tIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIGNvbnNvbGUgVUFSVCBvciB0aGUgSlRBRworQ09ORklHX1NZU19OSU9TX0NPTlNPTEUgLS0gdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgY29uc29sZSBVQVJUIG9yIHRoZSBKVEFHCiAJc3RkaW8gcG9ydC4gVG8gZW5hYmxlIGEgY29uc29sZSB2aWEgSlRBRywgZGVmaW5lCiAJQ09ORklHX0NPTlNPTEVfSlRBRyBhbmQgc2V0IENHRl9OSU9TX0NPTlNPTEUgdG8gdGhlIGJhc2UgYWRkcmVzcwogCW9mIHRoZSBKVEFHIHN0ZGlvIHBvcnQgKG5vcm1hbGx5IE9DSSBiYXNlICsgMHgwMGZhKS4gVGhlbgogCXJ1biBuaW9zLWNvbnNvbGUgd2l0aCB0aGUgLXcgb3B0aW9uLgogCShzdGFuZGFyZC0zMjogbmFzeXNfdWFydF8wIHJlc3AuIG5hX3VhcnQxX2Jhc2UpLgogCi1DRkdfTklPU19GSVhFREJBVUQgLS0gZGVmaW5lZCBpZiB0aGUgY29uc29sZSBVQVJUIFBURiBmaXhlZF9iYXVkCitDT05GSUdfU1lTX05JT1NfRklYRURCQVVEIC0tIGRlZmluZWQgaWYgdGhlIGNvbnNvbGUgVUFSVCBQVEYgZml4ZWRfYmF1ZAogCXBhcmFtZXRlciBpcyBzZXQgdG8gJzEnLgogCi1DRkdfTklPU19NVUxUX0hXIC0tIHVzZSBmdWxsIGhhcmR3YXJlIG11bHRpcGx5IChub3QgeWV0IGltcGxlbWVudGVkKS4KK0NPTkZJR19TWVNfTklPU19NVUxUX0hXIC0tIHVzZSBmdWxsIGhhcmR3YXJlIG11bHRpcGx5IChub3QgeWV0IGltcGxlbWVudGVkKS4KIAotQ0ZHX05JT1NfTVVMVF9NU1RFUCAtLSB1c2UgaGFyZHdhcmUgYXNzaXN0ZWQgbXVsdGlwbHkgdXNpbmcgdGhlCitDT05GSUdfU1lTX05JT1NfTVVMVF9NU1RFUCAtLSB1c2UgaGFyZHdhcmUgYXNzaXN0ZWQgbXVsdGlwbHkgdXNpbmcgdGhlCiAJTVNURVAgaW5zdHJ1Y3Rpb24gKG5vdCB5ZXQgaW1wbGVtZW50ZWQpLgogCi1DRkdfTklPU19UTVJCQVNFIC0tIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIHRpbWVyIHVzZWQgdG8gc3VwcG9ydAorQ09ORklHX1NZU19OSU9TX1RNUkJBU0UgLS0gdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgdGltZXIgdXNlZCB0byBzdXBwb3J0CiAJeHh4X3RpbWVyIHJvdXRpbmVzIChlLmcuIHNldF90aW1lcigpLCBnZXRfdGltZXIoKSwgZXRjLikuCiAJKHN0YW5kYXJkLTMyOiBuYXN5c190aW1lcl8xIHJlc3AuIG5hX2xvX3ByaW9yaXR5X3RpbWVyMl9iYXNlKS4KIAotQ0ZHX05JT1NfVE1SSVJRIC0tIHRoZSBpbnRlcnJ1cHQgcmVxdWVzdCAodmVjdG9yIG51bWJlcikgYXNzaWduZWQgdG8KK0NPTkZJR19TWVNfTklPU19UTVJJUlEgLS0gdGhlIGludGVycnVwdCByZXF1ZXN0ICh2ZWN0b3IgbnVtYmVyKSBhc3NpZ25lZCB0bwogCXRoZSB0aW1lci4gKHN0YW5kYXJkLTMyOiBuYXN5c190aW1lcl8xX2lycSByZXNwLgogCW5hX2xvd19wcmlvcml0eV90aW1lcjJfaXJxKS4KIAotQ0ZHX05JT1NfVE1STVMgLS0gdGhlIHBlcmlvZCBvZiB0aGUgdGltZXIgaW4gbWlsbGlzZWNvbmRzLgorQ09ORklHX1NZU19OSU9TX1RNUk1TIC0tIHRoZSBwZXJpb2Qgb2YgdGhlIHRpbWVyIGluIG1pbGxpc2Vjb25kcy4KIAotQ0ZHX05JT1NfVE1SQ05UIC0tIHRoZSBwcmVsb2FkYWJsZSBjb3VudGVyIHZhbHVlIGZvciB0aGUgdGltZXIgaWYgaXQgaGFzCitDT05GSUdfU1lTX05JT1NfVE1SQ05UIC0tIHRoZSBwcmVsb2FkYWJsZSBjb3VudGVyIHZhbHVlIGZvciB0aGUgdGltZXIgaWYgaXQgaGFzCiAJbm8gZml4ZWQgcGVyaW9kLgogCi1DRkdfTklPU19BU01JQkFTRSAtLSB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBBU01JIHBlcmlwaGVyYWwuCitDT05GSUdfU1lTX05JT1NfQVNNSUJBU0UgLS0gdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgQVNNSSBwZXJpcGhlcmFsLgogCShzdGFuZGFyZC0zMjogbmFfYXNtaV9iYXNlKS4KIAotQ0ZHX05JT1NfU1BJQkFTRSAtLSB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBTUEkgbWFzdGVyICghKSBwZXJpcGhlcmFsLgorQ09ORklHX1NZU19OSU9TX1NQSUJBU0UgLS0gdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgU1BJIG1hc3RlciAoISkgcGVyaXBoZXJhbC4KIAkobmFzeXNfc3BpXzApCiAKLUNGR19OSU9TX1NQSUJJVFMgLS0gdGhlIGFtb3VudCBvZiBjb25maWd1cmVkIFNQSSBkYXRhIGJpdHMgaW4gUFRGLgorQ09ORklHX1NZU19OSU9TX1NQSUJJVFMgLS0gdGhlIGFtb3VudCBvZiBjb25maWd1cmVkIFNQSSBkYXRhIGJpdHMgaW4gUFRGLgogCVRoaXMgdmFsdWUgY2FuIGJlIDggb3IgMTYgb25seSEgKFBURjogZGF0YWJpdHMpCiAKIApAQCAtMTI4LDcgKzEyOCw3IEBACiBTb21lICdzdGFuZGFyZCcgVS1Cb290IG9wdGlvbnMvc2V0dGluZ3MgYXJlIHRyZWF0ZWQgZGlmZmVyZW50bHkgaW4KIHRoZSBOaW9zIHBvcnQuIFRoZXNlIGFyZSBkZXNjcmliZWQgYmVsb3cuCiAKLUNGR19HQkxfREFUQV9PRkZTRVQgLS0gaW4gdGhlIE5pb3MgcG9ydCwgdGhpcyBpcyB0aGUgb2Zmc2V0IG9mIHRoZQorQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLS0gaW4gdGhlIE5pb3MgcG9ydCwgdGhpcyBpcyB0aGUgb2Zmc2V0IG9mIHRoZQogCWdsb2JhbCBkYXRhIHN0cnVjdHVyZSBpbiB0aGUgTmlvcyBtZW1vcnkgc3BhY2UuIE1vcmUgc2ltcGx5LAogCXRoZSBhZGRyZXNzIG9mIGdsb2JhbCBkYXRhLgogCkBAIC0xNTYsMTcgKzE1NiwxNyBAQAogNC4xIEJvb3QgcHJvY2VzcyBvdmVyIEdFUk1TCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFdoZW4gdGhlIE5JT1MgQ1BVIGNhdGNoIGEgcmVzZXQgc2lnbmFsIGl0IHdpbGwgYmVnaW4gdG8gYmUgcnVubmluZwotY29kZSBmcm9tIENGR19OSU9TX0NQVV9SU1RfVkVDVC4gTm9ybWFsbHkgYXQgdGhpcyBwbGFjZSBpdCB3aWxsCitjb2RlIGZyb20gQ09ORklHX1NZU19OSU9TX0NQVV9SU1RfVkVDVC4gTm9ybWFsbHkgYXQgdGhpcyBwbGFjZSBpdCB3aWxsCiBmaW5kIHRoZSBHRVJNUyBtb25pdG9yLiBUaGF0J3MgdGhlIGNhc2UgZm9yIHRoZSBnZW5lcmljIE5JT1MgQ1BVCiBjb25maWd1cmF0aW9uICJzdGFuZGFyZF8zMiIuIFdoZW4gdGhlIEdFUk1TIG1vbml0b3Igc3RhcnRzIHJ1bm5pbmcsCiBpdCBwZXJmb3JtcyBpbXBvcnRhbnQgc3lzdGVtIGluaXRpYWxpemF0aW9ucyBhbmQgdGhlbiBsb29rcyBmb3IKIGV4ZWN1dGFibGUgY29kZSBpbiBmbGFzaCwgdXNpbmcgdGhlIGZvbGxvd2luZyBzdGVwczoKIAotICAgIDEuIEV4YW1pbmluZyB0aGUgdHdvIGJ5dGVzIGF0IENGR19OSU9TX0NQVV9GTEFTSF9CQVNFICsgMHgwNDAwMEMuCi0gICAgMi4gRXhhbWluaW5nIHRoZSBidXR0b24gMCBvbiB0aGUgUElPIENGR19OSU9TX0NQVV9CVVRUT05fUElPLgorICAgIDEuIEV4YW1pbmluZyB0aGUgdHdvIGJ5dGVzIGF0IENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfQkFTRSArIDB4MDQwMDBDLgorICAgIDIuIEV4YW1pbmluZyB0aGUgYnV0dG9uIDAgb24gdGhlIFBJTyBDT05GSUdfU1lTX05JT1NfQ1BVX0JVVFRPTl9QSU8uCiAgICAgMy4gSWYgdGhlIGJ1dHRvbiBpcyBub3QgcHJlc3NlZCBhbmQgdGhlIHR3byBieXRlcyBjb250YWluICdOJwogICAgICAgIGFuZCAnaScsIHRoZSBtb25pdG9yIGV4ZWN1dGVzIGEgQ0FMTCB0byBsb2NhdGlvbgotICAgICAgIENGR19OSU9TX0NQVV9GTEFTSF9CQVNFICsgMHgwNDAwMDAuCisgICAgICAgQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9CQVNFICsgMHgwNDAwMDAuCiAgICAgNC4gSWYgdGhlIGNvZGUgaXMgbm90IGV4ZWN1dGVkIGluIHN0ZXAgMyBvciB0aGUgY29kZSByZXR1cm5zLAogICAgICAgIHRoZW4gcHJpbnRzIGFuIDgtZGlnaXQgdmVyc2lvbiBudW1iZXIgdG8gU1RET1VUIGFuZCB3YWl0cyBmb3IKICAgICAgICB1c2VyIGNvbW1hbmRzIGZyb20gU1RESU4uCkBAIC0xODEsOSArMTgxLDkgQEAKIGltbWVkaWF0ZWx5IGV4ZWN1dGVzIHRoZSBjb2RlLiBUbyByZXR1cm4gcHJvZ3JhbSBleGVjdXRpb24gdG8gdGhlCiBHRVJNUyBtb25pdG9yICh0aGF0IGlzLCBhdm9pZCBydW5uaW5nIGNvZGUgc3RvcmVkIGluIGZsYXNoIG1lbW9yeSk6CiAKLSAgICAxLiBIb2xkIGRvd24gQ0ZHX05JT1NfQ1BVX0JVVFRPTl9QSU8sIGJ1dHRvbiBudW1iZXIgMC4KKyAgICAxLiBIb2xkIGRvd24gQ09ORklHX1NZU19OSU9TX0NQVV9CVVRUT05fUElPLCBidXR0b24gbnVtYmVyIDAuCiAgICAgMi4gUHJlc3MgdGhlbiByZWxlYXNlIHRoZSBDUFUgcmVzZXQgYnV0dG9uLgotICAgIDMuIFJlbGVhc2UgQ0ZHX05JT1NfQ1BVX0JVVFRPTl9QSU8sIGJ1dHRvbiBudW1iZXIgMC4KKyAgICAzLiBSZWxlYXNlIENPTkZJR19TWVNfTklPU19DUFVfQlVUVE9OX1BJTywgYnV0dG9uIG51bWJlciAwLgogCiAKIDUuIERFQlVHR0lORyBXSVRIIEdEQgpAQCAtMzU0LDcgKzM1NCw3IEBACiAtQWRkIGJvb3Qgc3VwcG9ydCBmb3IgdWNMaW51eCAobmlvc25vbW11KS4KIAogLUltcGxlbWVudCAoZG9uJ3QgY29weSBBbHRlcmEgY29kZSkgdGhlIF9fbXVseHggcm91dGluZXMgdXNpbmcgdGhlCi0gTVNURVAgYW5kIE1VTCBpbnN0cnVjdGlvbnMgKGUuZy4gQ0ZHX05JT1NfTVVMVF9IVyBhbmQgQ0ZHX05JT1NfTVVMVF9NU1RFUCkuCisgTVNURVAgYW5kIE1VTCBpbnN0cnVjdGlvbnMgKGUuZy4gQ09ORklHX1NZU19OSU9TX01VTFRfSFcgYW5kIENPTkZJR19TWVNfTklPU19NVUxUX01TVEVQKS4KIAogCiBSZWdhcmRzLApkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5uaW9zX0NGR19OSU9TX0NQVSBiL2RvYy9SRUFETUUubmlvc19DRkdfTklPU19DUFUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzOGVkOTEuLjAwMDAwMDAKLS0tIGEvZG9jL1JFQURNRS5uaW9zX0NGR19OSU9TX0NQVQorKysgL2Rldi9udWxsCkBAIC0xLDE0MCArMCwwIEBACi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQlDIEYgRyBfIE4gSSBPIFMgXyBDIFAgVSBfICogICB2IHMgLiAgIE4gSSBPIFMJUyBEIEsKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotV2hlbiBldmVyIHlvdSBoYXZlIHRvIG1ha2UgYSBuZXcgTklPUyBDUFUgY29uZmlndXJhdGlvbiB5b3UgY2FuIHVzZSB0aGlzIHRhYmxlCi1hcyBhIHJlZmVyZW5jZSBsaXN0IHRvIHRoZSBvcmlnaW5hbCBOSU9TIFNESyBzeW1ib2xzIG1hZGUgYnkgQWx0ZXJhcyBTT1BDCi1CdWlsZGVyLiBMb29rIGludG8gZXhjYWxpYnVyLmggYW5kIGV4Y2FsaWJ1ci5zIGluIHlvdXIgU0RLIHBhdGggY3B1X3Nkay9pbmMuCi1TeW1ib2xzIGJlZ2lubmluZyB3aXRoIGEgJ1twdGZdOicgYXJlIGNvbWluZyBmcm9tIHlvdXIgU09QQyBzeXRlbSBkZXNjcmlwdGlvbgotKFBURiBmaWxlKSBpbiBzZWN0aW9ucyBXSVpBUkRfU0NSSVBUX0FSR1VNRU5UUyBvciBTWVNURU1fQlVJTERFUl9JTkZPLgotCi1DIE8gUiBFCQkJCQlOIEkgTyBTCSAgUyBEIEsJCQlbMV0sWzddCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1DRkdfTklPU19DUFVfQ0xLCQkJCQluYXN5c19jbG9ja19mcmVxCi1DRkdfTklPU19DUFVfSUNBQ0hFCQkJCQluYXN5c19pY2FjaGVfc2l6ZQotQ0ZHX05JT1NfQ1BVX0RDQUNIRQkJCQkJbmFzeXNfZGNhY2hlX3NpemUKLUNGR19OSU9TX0NQVV9SRUdfTlVNUwkJCQkJbmFzeXNfbmlvc19udW1fcmVncwotQ0ZHX05JT1NfQ1BVX01VTAkJCQkJX19uaW9zX3VzZV9tdWx0aXBseV9fCi1DRkdfTklPU19DUFVfTVNURVAJCQkJCV9fbmlvc191c2VfbXN0ZXBfXwotQ0ZHX05JT1NfQ1BVX1NUQUNLCQkJCQluYXN5c19zdGFja190b3AKLUNGR19OSU9TX0NQVV9WRUNfQkFTRQkJCQkJbmFzeXNfdmVjdG9yX3RhYmxlCi1DRkdfTklPU19DUFVfVkVDX1NJWkUJCQkJCW5hc3lzX3ZlY3Rvcl90YWJsZV9zaXplCi1DRkdfTklPU19DUFVfVkVDX05VTVMKLUNGR19OSU9TX0NQVV9SU1RfVkVDVAkJCQkJbmFzeXNfcmVzZXRfYWRkcmVzcwotQ0ZHX05JT1NfQ1BVX0RCR19DT1JFCQkJCQluYXN5c19kZWJ1Z19jb3JlCi1DRkdfTklPU19DUFVfUkFNX0JBU0UJCW5hX29uY2hpcF9yYW1fNjRfa2J5dGVzCi1DRkdfTklPU19DUFVfUkFNX1NJWkUJCW5hX29uY2hpcF9yYW1fNjRfa2J5dGVzX3NpemUKLUNGR19OSU9TX0NQVV9ST01fQkFTRQkJbmFfYm9vdF9tb25pdG9yX3JvbQotQ0ZHX05JT1NfQ1BVX1JPTV9TSVpFCQluYV9ib290X21vbml0b3Jfcm9tX3NpemUKLUNGR19OSU9TX0NQVV9PQ0lfQkFTRQkJCQkJbmFzeXNfb2NpX2NvcmUKLUNGR19OSU9TX0NQVV9PQ0lfU0laRQotQ0ZHX05JT1NfQ1BVX1NSQU1fQkFTRQkJbmFfZXh0X3JhbQkJbmFzeXNfcHJvZ3JhbV9tZW0KLQkJCQkJCQluYXN5c19kYXRhX21lbQotQ0ZHX05JT1NfQ1BVX1NSQU1fU0laRQkJbmFfZXh0X3JhbV9zaXplCQluYXN5c19wcm9ncmFtX21lbV9zaXplCi0JCQkJCQkJbmFzeXNfZGF0YV9tZW1fc2l6ZQotQ0ZHX05JT1NfQ1BVX1NEUkFNX0JBU0UJCSBuYV9zZHJhbQotQ0ZHX05JT1NfQ1BVX1NEUkFNX1NJWkUJCSBuYV9zZHJhbV9zaXplCi1DRkdfTklPU19DUFVfRkxBU0hfQkFTRQkJIG5hX2V4dF9mbGFzaAkJbmFzeXNfbWFpbl9mbGFzaAotCQkJCQkJCW5hc3lzX2FtMjlsdjA2NWRfZmxhc2hfMAotCQkJCQkJCW5hc3lzX2ZsYXNoXzAKLUNGR19OSU9TX0NQVV9GTEFTSF9TSVpFCSAgICBuYV9leHRfZmxhc2hfc2l6ZQkJbmFzeXNfbWFpbl9mbGFzaF9zaXplCi0KLVQgSSBNIEUgUgkJCQlOIEkgTyBTCSAgUyBEIEsJCQkgICAgWzNdCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1DRkdfTklPU19DUFVfVElNRVJfTlVNUwkJCQkJbmFzeXNfdGltZXJfY291bnQKLUNGR19OSU9TX0NQVV9USU1FUlswLTldCQkJCQluYXN5c190aW1lcl9bMC05XQotQ0ZHX05JT1NfQ1BVX1RJTUVSWzAtOV1fSVJRCQkJCW5hc3lzX3RpbWVyX1swLTldX2lycQotQ0ZHX05JT1NfQ1BVX1RJTUVSWzAtOV1fUEVSCQkJCVtwdGZdOnBlcmlvZAotCQkJCQkJCVtwdGZdOnBlcmlvZF91bml0cwotCQkJCQkJCVtwdGZdOm11bHQKLUNGR19OSU9TX0NQVV9USU1FUlswLTldX0FSCQkJCVtwdGZdOmFsd2F5c19ydW4KLUNGR19OSU9TX0NQVV9USU1FUlswLTldX0ZQCQkJCVtwdGZdOmZpeGVkX3BlcmlvZAotQ0ZHX05JT1NfQ1BVX1RJTUVSWzAtOV1fU1MJCQkJW3B0Zl06c25hcHNob3QKLQotVSBBIFIgVAkJCQkJTiBJIE8gUwkgIFMgRCBLCQkJICAgIFsyXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotQ0ZHX05JT1NfQ1BVX1VBUlRfTlVNUwkJCQkJbmFzeXNfdWFydF9jb3VudAotQ0ZHX05JT1NfQ1BVX1VBUlRbMC05XQkJCQkJbmFzeXNfdWFydF9bMC05XQotQ0ZHX05JT1NfQ1BVX1VBUlRbMC05XV9JUlEJCQkJbmFzeXNfdWFydF9bMC05XV9pcnEKLUNGR19OSU9TX0NQVV9VQVJUWzAtOV1fQlIJCQkJW3B0Zl06YmF1ZAotQ0ZHX05JT1NfQ1BVX1VBUlRbMC05XV9EQgkJCQlbcHRmXTpkYXRhX2JpdHMKLUNGR19OSU9TX0NQVV9VQVJUWzAtOV1fU0IJCQkJW3B0Zl06c3RvcF9iaXRzCi1DRkdfTklPU19DUFVfVUFSVFswLTldX1BBCQkJCVtwdGZdOnBhcml0eQotQ0ZHX05JT1NfQ1BVX1VBUlRbMC05XV9IUwkJCQlbcHRmXTp1c2VfY3RzX3J0cwotQ0ZHX05JT1NfQ1BVX1VBUlRbMC05XV9FT1AJCQkJW3B0Zl06dXNlX2VvcF9yZWdpc3RlcgotCi1QIEkgTwkJCQkJTiBJIE8gUwkgIFMgRCBLCQkJICAgIFs0XQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotQ0ZHX05JT1NfQ1BVX1BJT19OVU1TCQkJCQluYXN5c19waW9fY291bnQKLUNGR19OSU9TX0NQVV9QSU9bMC05XQkJCQkJbmFzeXNfcGlvX1swLTldCi1DRkdfTklPU19DUFVfUElPWzAtOV1fSVJRCQkJCW5hc3lzX3Bpb19bMC05XV9pcnEKLUNGR19OSU9TX0NQVV9QSU9bMC05XV9CSVRTCQkJCVtwdGZdOkRhdGFfV2lkdGgKLUNGR19OSU9TX0NQVV9QSU9bMC05XV9UWVBFCQkJCVtwdGZdOmhhc190cmkKLQkJCQkJCQlbcHRmXTpoYXNfb3V0Ci0JCQkJCQkJW3B0Zl06aGFzX2luCi1DRkdfTklPU19DUFVfUElPWzAtOV1fQ0FQCQkJCVtwdGZdOmNhcHR1cmUKLUNGR19OSU9TX0NQVV9QSU9bMC05XV9FREdFCQkJCVtwdGZdOmVkZ2VfdHlwZQotQ0ZHX05JT1NfQ1BVX1BJT1swLTldX0lUWVBFCQkJCVtwdGZdOmlycV90eXBlCi0KLVMgUCBJCQkJCQlOIEkgTyBTCSAgUyBEIEsJCQkgICAgWzZdCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1DRkdfTklPU19DUFVfU1BJX05VTVMJCQkJCW5hc3lzX3NwaV9jb3VudAotQ0ZHX05JT1NfQ1BVX1NQSVswLTldCQkJCQluYXN5c19zcGlfWzAtOV0KLUNGR19OSU9TX0NQVV9TUElbMC05XV9JUlEJCQkJbmFzeXNfc3BpX1swLTldX2lycQotQ0ZHX05JT1NfQ1BVX1NQSVswLTldX0JJVFMJCQkJW3B0Zl06ZGF0YWJpdHMKLUNGR19OSU9TX0NQVV9TUElbMC05XV9NQQkJCQlbcHRmXTppc21hc3RlcgotQ0ZHX05JT1NfQ1BVX1NQSVswLTldX1NMTgkJCQlbcHRmXTpudW1zbGF2ZXMKLUNGR19OSU9TX0NQVV9TUElbMC05XV9UQ0xLCQkJCVtwdGZdOnRhcmdldGNsb2NrCi1DRkdfTklPU19DUFVfU1BJWzAtOV1fVERFTEFZCQkJCVtwdGZdOnRhcmdldGRlbGF5Ci1DRkdfTklPU19DUFVfU1BJWzAtOV1fKgkJCQkJW3B0Zl06KgotCi1JIEQgRQkJCQkJTiBJIE8gUwkgIFMgRCBLCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1DRkdfTklPU19DUFVfSURFX05VTVMJCQkJCW5hc3lzX3VzZXJzb2NrZXRfY291bnQKLUNGR19OSU9TX0NQVV9JREVbMC05XQkJCQkJbmFzeXNfdXNlcnNvY2tldF9bMC05XQotCi1BIFMgTSBJCQkJCQlOIEkgTyBTCSAgUyBEIEsJCQkgICAgWzVdCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1DRkdfTklPU19DUFVfQVNNSV9OVU1TCQkJCQluYXN5c19hc21pX2NvdW50Ci1DRkdfTklPU19DUFVfQVNNSVswLTldCQkJCQluYXN5c19hc21pX1swLTldCi1DRkdfTklPU19DUFVfQVNNSVswLTldX0lSUQkJCQluYXN5c19hc21pX1swLTldX2lycQotCi1FIHQgaCBlIHIgbiBlIHQJICAoIEwgQSBOICkJCU4gSSBPIFMJICBTIEQgSwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotQ0ZHX05JT1NfQ1BVX0xBTl9OVU1TCi1DRkdfTklPU19DUFVfTEFOWzAtOV1fQkFTRQluYV9sYW45MWMxMTEKLUNGR19OSU9TX0NQVV9MQU5bMC05XV9PRkZTCQkJCUxBTjkxQzExMV9SRUdJU1RFUlNfT0ZGU0VUCi1DRkdfTklPU19DUFVfTEFOWzAtOV1fSVJRCW5hX2xhbjkxYzExMV9pcnEKLUNGR19OSU9TX0NQVV9MQU5bMC05XV9CVVNXCQkJCUxBTjkxQzExMV9EQVRBX0JVU19XSURUSAotQ0ZHX05JT1NfQ1BVX0xBTlswLTldX1RZUEUKLQotcyB5IHMgdCBlIG0gICBjIG8gbSBwIG8gcyBpIG4gZwkJTiBJIE8gUwkgIFMgRCBLCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1DRkdfTklPU19DUFVfVElDS19USU1FUgkJKG5hX2xvd19wcmlvcml0eV90aW1lcjIpCi1DRkdfTklPU19DUFVfVVNFUl9USU1FUgkJKG5hX3RpbWVyMSkKLUNGR19OSU9TX0NQVV9CVVRUT05fUElPCQkobmFfYnV0dG9uX3BpbykKLUNGR19OSU9TX0NQVV9MQ0RfUElPCQkobmFfbGNkX3BpbykKLUNGR19OSU9TX0NQVV9MRURfUElPCQkobmFfbGVkX3BpbykKLUNGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8JKG5hX3NldmVuX3NlZ19waW8pCi1DRkdfTklPU19DUFVfUkVDT05GX1BJTwkJKG5hX3JlY29uZmlnX3JlcXVlc3RfcGlvKQotQ0ZHX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8JKG5hX2NmX3ByZXNlbnRfcGlvKQotQ0ZHX05JT1NfQ1BVX0NGUE9XRVJfUElPCShuYV9jZl9wb3dlcl9waW8pCi1DRkdfTklPU19DUFVfQ0ZBVEFTRUxfUElPCShuYV9jZl9hdGFfc2VsZWN0X3BpbykKLUNGR19OSU9TX0NQVV9VU0VSX1NQSQkJKG5hX3NwaSkKLQotCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0JUiBFIEYgRSBSIEUgTiBDIEUgUwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotWzFdCWh0dHA6Ly93d3cuYWx0ZXJhLmNvbS9saXRlcmF0dXJlL2RzL2RzX25pb3NjcHUucGRmCi1bMl0JaHR0cDovL3d3dy5hbHRlcmEuY29tL2xpdGVyYXR1cmUvZHMvZHNfbmlvc191YXJ0LnBkZgotWzNdCWh0dHA6Ly93d3cuYWx0ZXJhLmNvbS9saXRlcmF0dXJlL2RzL2RzX25pb3NfdGltZXIucGRmCi1bNF0JaHR0cDovL3d3dy5hbHRlcmEuY29tL2xpdGVyYXR1cmUvZHMvZHNfbmlvc19waW8ucGRmCi1bNV0JaHR0cDovL3d3dy5hbHRlcmEuY29tL2xpdGVyYXR1cmUvZHMvZHNfbmlvc19hc21pLnBkZgotWzZdCWh0dHA6Ly93d3cuYWx0ZXJhLmNvbS9saXRlcmF0dXJlL2RzL2RzX25pb3Nfc3BpLnBkZgotWzddCWh0dHA6Ly93d3cuYWx0ZXJhLmNvbS9saXRlcmF0dXJlL2RzL2RzX2xlZ2FjeV9zZHJhbV9jdHJsLnBkZgotCi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLVN0ZXBoYW4gTGlueiA8bGluekBsaS1wcm8ubmV0PgpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5wcGM0NDAgYi9kb2MvUkVBRE1FLnBwYzQ0MAppbmRleCAyZTA0YWJhLi4wYTVmOTlmIDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLnBwYzQ0MAorKysgYi9kb2MvUkVBRE1FLnBwYzQ0MApAQCAtNDcsMjUgKzQ3LDI1IEBACiBhdCBsZWFzdCByZXZpZXcgdGhlc2UgYmVmb3JlIGRlY2lkaW5nIHRvIG1ha2UgYW55IGNoYW5nZXMgLi4uIGl0CiB3aWxsIHByb2JhYmx5IHNhdmUgeW91IHNvbWUgaGVhZGFjaGVzIDstKQogCi1DRkdfU0RSQU1fQkFTRSAtIFRoZSB2aXJ0dWFsIGFkZHJlc3Mgd2hlcmUgU0RSQU0gaXMgbWFwcGVkIChhbHdheXMgMCkKK0NPTkZJR19TWVNfU0RSQU1fQkFTRSAtIFRoZSB2aXJ0dWFsIGFkZHJlc3Mgd2hlcmUgU0RSQU0gaXMgbWFwcGVkIChhbHdheXMgMCkKIAotQ0ZHX0ZMQVNIX0JBU0UgLSBUaGUgdmlydHVhbCBhZGRyZXNzIHdoZXJlIEZMQVNIIGlzIG1hcHBlZC4KK0NPTkZJR19TWVNfRkxBU0hfQkFTRSAtIFRoZSB2aXJ0dWFsIGFkZHJlc3Mgd2hlcmUgRkxBU0ggaXMgbWFwcGVkLgogCi1DRkdfUENJX01FTUJBU0UgLSBUaGUgdmlydHVhbCBhZGRyZXNzIHdoZXJlIFBDSS1idXMgbWVtb3J5IGlzIG1hcHBlZC4KK0NPTkZJR19TWVNfUENJX01FTUJBU0UgLSBUaGUgdmlydHVhbCBhZGRyZXNzIHdoZXJlIFBDSS1idXMgbWVtb3J5IGlzIG1hcHBlZC4KICAgICBUaGlzIG1hcHBpbmcgcHJvdmlkZXMgYWNjZXNzIHRvIFBDSS1idXMgbWVtb3J5LgogCi1DRkdfUEVSSVBIRVJBTF9CQVNFIC0gVGhlIHZpcnR1YWwgYWRkcmVzcyB3aGVyZSB0aGUgNDQwIG1lbW9yeS1tYXBwZWQKK0NPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFIC0gVGhlIHZpcnR1YWwgYWRkcmVzcyB3aGVyZSB0aGUgNDQwIG1lbW9yeS1tYXBwZWQKICAgICBwZXJpcGhlcmFscyBhcmUgbWFwcGVkLiAoZS5nLiAtLSBVQVJUIHJlZ2lzdGVycywgSUlDIHJlZ2lzdGVycywgZXRjKS4KIAotQ0ZHX0lTUkFNX0JBU0UgLSBUaGUgdmlydHVhbCBhZGRyZXNzIHdoZXJlIHRoZSA0NDAgaW50ZXJuYWwgU1JBTSBpcworQ09ORklHX1NZU19JU1JBTV9CQVNFIC0gVGhlIHZpcnR1YWwgYWRkcmVzcyB3aGVyZSB0aGUgNDQwIGludGVybmFsIFNSQU0gaXMKICAgICBtYXBwZWQuIFRoZSBpbnRlcm5hbCBTUkFNIGlzIGVxdWl2YWxlbnQgdG8gNDA1Z3AgT0NNIGFuZCBpcyB1c2VkCiAgICAgZm9yIHRoZSBpbml0aWFsIHN0YWNrLgogCi1DRkdfUENJX0JBU0UgLSBUaGUgdmlydHVhbCBhZGRyZXNzIHdoZXJlIHRoZSA0NDAgUENJLXggYnJpZGdlIGNvbmZpZworQ09ORklHX1NZU19QQ0lfQkFTRSAtIFRoZSB2aXJ0dWFsIGFkZHJlc3Mgd2hlcmUgdGhlIDQ0MCBQQ0kteCBicmlkZ2UgY29uZmlnCiAgICAgcmVnaXN0ZXJzIGFyZSBtYXBwZWQuCiAKLUNGR19QQ0lfVEFSR0JBU0UgLSBUaGUgUENJIGFkZHJlc3MgdGhhdCBpcyBtYXBwZWQgdG8gdGhlIHZpcnR1YWwgYWRkcmVzcwotICAgIGRlZmluZWQgYnkgQ0ZHX1BDSV9NRU1CQVNFLgorQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UgLSBUaGUgUENJIGFkZHJlc3MgdGhhdCBpcyBtYXBwZWQgdG8gdGhlIHZpcnR1YWwgYWRkcmVzcworICAgIGRlZmluZWQgYnkgQ09ORklHX1NZU19QQ0lfTUVNQkFTRS4KIAogCiBVQVJUIC8gU0VSSUFMCkBAIC03Myw3ICs3Myw3IEBACiAKIFRoZSBVQVJUIHBvcnQgd29ya3MgZmluZSB3aGVuIGFuIGV4dGVybmFsIHNlcmlhbCBjbG9jayBpcyBwcm92aWRlZAogKGxpa2UgdGhlIG9uZSBvbiB0aGUgRWJvbnkgYm9hcmQpIGFuZCB3aGVuIHVzaW5nIGludGVybmFsIGNsb2NraW5nLgotVGhpcyBpcyBjb250cm9sbGVkIHdpdGggdGhlIENGR19FWFRfU0VSSUFMX0NMT0NLIGZsYWcuIFdoZW4gdXNpbmcKK1RoaXMgaXMgY29udHJvbGxlZCB3aXRoIHRoZSBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sgZmxhZy4gV2hlbiB1c2luZwogaW50ZXJuYWwgY2xvY2tpbmcsIHRoZSAiaWRlYWwgYmF1ZCByYXRlIiBzZXR0aW5ncyBpbiB0aGUgNDQwR1AKIHVzZXIgbWFudWFsIGFyZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQuCiAKQEAgLTk0LDcgKzk0LDcgQEAKIENEQ1Y4NTAgY2xvY2sgY29udHJvbGxlciBhdCBhZGRyZXNzIDB4Njkgb24gdGhlIGVib255IGJvYXJkKS4KIAogVG8gcHJldmVudCBwcm9iaW5nIGNlcnRhaW4gYWRkcmVzc2VzIHlvdSBjYW4gZGVmaW5lIHRoZQotQ0ZHX0kyQ19OT1BST0JFUyBtYWNybyBpbiB5b3VyIGJvYXJkLXNwZWNpZmljIGhlYWRlciBmaWxlLiBXaGVuCitDT05GSUdfU1lTX0kyQ19OT1BST0JFUyBtYWNybyBpbiB5b3VyIGJvYXJkLXNwZWNpZmljIGhlYWRlciBmaWxlLiBXaGVuCiBkZWZpbmVkLCBhbGwgc3BlY2lmaWVkIGFkZHJlc3NlcyBhcmUgc2tpcHBlZCBkdXJpbmcgYSBwcm9iZS4KIFRoZSBhZGRyZXNzZXMgdGhhdCBhcmUgc2tpcHBlZCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgb3V0cHV0CiBvZiB0aGUgaXByb2JlIGNvbW1hbmQuCkBAIC0xMDIsMTIgKzEwMiwxMiBAQAogRm9yIGV4YW1wbGUsIHRvIHByZXZlbnQgcHJvYmluZyBhZGRyZXNzIDB4NjksIGRlZmluZSB0aGUgbWFjcm8gYXMKIGZvbGxvd3M6CiAKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUyB7MHg2OX0KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMgezB4Njl9CiAKIFNpbWlsYXJseSwgdG8gcHJldmVudCBwcm9iaW5nIGFkZHJlc3NlcyAweDY5IGFuZCAweDcwLCBkZWZpbmUgdGhlCiBtYWNybyBhOgogCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMgezB4NjksIDB4NzB9CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTIHsweDY5LCAweDcwfQogCiAKIEREUiBTRFJBTSBDT05UUk9MTEVSCkBAIC0xNDQsNyArMTQ0LDcgQEAKIFRoZSBjcHUtc3BlY2lmaWMgY29kZSBzZXRzIHVwIGEgZGVmYXVsdCBwY2lfY29udHJvbGxlciBzdHJ1Y3R1cmUKIHRoYXQgbWFwcyBpbiBhIHNpbmdsZSBQQ0kgSS9PIHNwYWNlIGFuZCBQQ0kgbWVtb3J5IHNwYWNlLiBUaGUgSS9PCiBzcGFjZSBiZWdpbnMgYXQgUENJIEkvTyBhZGRyZXNzIDAgYW5kIHRoZSBQQ0kgbWVtb3J5IHNwYWNlIGlzCi0yNTYgTUIgc3RhcnRpbmcgYXQgUENJIGFkZHJlc3MgQ0ZHX1BDSV9UQVJHQkFTRS4gQWZ0ZXIgdGhlCisyNTYgTUIgc3RhcnRpbmcgYXQgUENJIGFkZHJlc3MgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UuIEFmdGVyIHRoZQogcGNpX2NvbnRyb2xsZXIgc3RydWN0dXJlIGlzIGluaXRpYWxpemVkLCB0aGUgY3B1LXNwZWNpZmljIGNvZGUgd2lsbAogY2FsbCB0aGUgcm91dGluZSBwY2lfcHJlX2luaXQoKS4gVGhpcyByb3V0aW5lIGlzIGltcGxlbWVudGVkIGJ5CiBib2FyZC1zcGVjaWZpYyBjb2RlICYgaXMgd2hlcmUgdGhlIGJvYXJkIGNhbiBvdmVyLXJpZGUvZXh0ZW5kIHRoZQpAQCAtMTU3LDcgKzE1Nyw3IEBACiBUaGUgZGVmYXVsdCA0NDBHUCBQQ0kgdGFyZ2V0IGNvbmZpZ3VyYXRpb24gaXMgbWluaW1hbCAtLSBpdCBhc3N1bWVzIHRoYXQKIHRoZSBzdHJhcHBpbmcgcmVnaXN0ZXJzIGFyZSBzZXQgYXMgbmVjZXNzYXJ5LiBTaW5jZSB0aGUgc3RyYXBwaW5nIGJpdHMKIHByb3ZpZGUgdmVyeSBsaW1pdGVkIGZsZXhpYmlsaXR5LCB5b3UgbWF5IHdhbnQgdG8gY3VzdG9taXplIHRoZSBib2FyZHMKLXRhcmdldCBjb25maWd1cmF0aW9uLiBJZiBDRkdfUENJX1RBUkdFVF9JTklUIGlzIGRlZmluZWQsIHRoZSBjcHUtc3BlY2lmaWMKK3RhcmdldCBjb25maWd1cmF0aW9uLiBJZiBDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCBpcyBkZWZpbmVkLCB0aGUgY3B1LXNwZWNpZmljCiBjb2RlIHdpbGwgY2FsbCB0aGUgcm91dGluZSBwY2lfdGFyZ2V0X2luaXQoKSB3aGljaCB5b3UgbXVzdCBpbXBsZW1lbnQKIGluIHlvdXIgYm9hcmQtc3BlY2lmaWMgY29kZS4KIApAQCAtMTY2LDcgKzE2Niw3IEBACiB0aGF0IHRoZSAnZW5hYmxlIGhvc3QgY29uZmlndXJhdGlvbicgYml0IGluIHRoZSBQQ0lYMF9CUkRHT1BUMiBpcyBzZXQuCiAKIFRoZSBkZWZhdWx0IFBDSSBtYXN0ZXIgaW5pdGlhbGl6YXRpb24gbWFwcyBpbiAyNTYgTUIgb2YgcGNpIG1lbW9yeQotc3RhcnRpbmcgYXQgUENJIGFkZHJlc3MgQ0ZHX1BDSV9NRU1CQVNFLiBUbyBjdXN0b21pemUgdGhpcywgZGVmaW5lCitzdGFydGluZyBhdCBQQ0kgYWRkcmVzcyBDT05GSUdfU1lTX1BDSV9NRU1CQVNFLiBUbyBjdXN0b21pemUgdGhpcywgZGVmaW5lCiBQQ0lfTUFTVEVSX0lOSVQuIFRoaXMgd2lsbCBjYWxsIHRoZSByb3V0aW5lIHBjaV9tYXN0ZXJfaW5pdCgpIGluIHlvdXIKIGJvYXJkLXNwZWNpZmljIGNvZGUgcmF0aGVyIHRoYW4gcGVyZm9ybWluZyB0aGUgZGVmYXVsdCBtYXN0ZXIKIGluaXRpYWxpemF0aW9uLgpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5zZXJpYWxfbXVsdGkgYi9kb2MvUkVBRE1FLnNlcmlhbF9tdWx0aQppbmRleCA0MGY3ODE1Li5hZDYxZDQyIDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLnNlcmlhbF9tdWx0aQorKysgYi9kb2MvUkVBRE1FLnNlcmlhbF9tdWx0aQpAQCAtMzUsNyArMzUsNyBAQAogCXNldGVudiBzb3V0IHNlcmlhbF9zY2M7IHNldGVudiBiYXVkcmF0ZSAzODQwMAogCiBBZnRlciB0aGF0IHByZXNzICdlbnRlcicgYXQgdGhlIFNDQyBjb25zb2xlLiBOb3RlIHRoYXQgYmF1ZHJhdGVzIDwzODQwMAotYXJlIG5vdCBhbGxvd2VkIG9uIExXTU9OIHdpdGggd2F0Y2hkb2cgZW5hYmxlZCAoc2VlIENGR19CQVVEUkFURV9UQUJMRSBpbgorYXJlIG5vdCBhbGxvd2VkIG9uIExXTU9OIHdpdGggd2F0Y2hkb2cgZW5hYmxlZCAoc2VlIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgaW4KIGluY2x1ZGUvY29uZmlncy9sd21vbi5oKS4KIAogCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLnNoYTEgYi9kb2MvUkVBRE1FLnNoYTEKaW5kZXggNzk5MmY3Zi4uZjZjY2E0MCAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5zaGExCisrKyBiL2RvYy9SRUFETUUuc2hhMQpAQCAtMzQsNyArMzQsNyBAQAogCiBiKSBJbml0aWFsaXplIHRoZSBTSEExIHN1bSBpbiB0aGUgSW1hZ2Ugd2l0aCAweDAwCiAgICBUaGUgU0hBMSBzdW0gaXMgc3RvcmVkIGluIEZsYXNoIGF0OgotCQkJICAgQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTiArIFNIQTFfU1VNX1BPUworCQkJICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOICsgU0hBMV9TVU1fUE9TCiAgICBmb3IgdGhlIHBjczQ0MGVwIEZsYXNoOgkgMHhmZmZhMDAwMCArCSAgICAgIDB4NjAwMDAgKyAgICAgICAgLTB4MjAKIAkJCSAgICA9IDB4ZmZmZmZmZTAKICAgIGZvciB0aGUgZXhhbXBsZSBpbiBSQU06CSAgIDB4MzAwMDAwICsJICAgICAgMHg2MDAwMCArICAgICAgICAtMHgyMApkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5zaWxlbnQgYi9kb2MvUkVBRE1FLnNpbGVudAppbmRleCA2NzcyNTMyLi5hMjZlM2RmIDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLnNpbGVudAorKysgYi9kb2MvUkVBRE1FLnNpbGVudApAQCAtMTMsNyArMTMsNyBAQAogIC0gV2hlbiB0aGUgY29uc29sZSBkZXZpY2VzIGhhdmUgYmVlbiBpbml0aWFsaXplZCwgInN0ZG91dCIgYW5kCiAgICAic3RkZXJyIiBhcmUgc2V0IHRvICJudWxsZGV2Iiwgc28gc3Vic2VxdWVudCBtZXNzYWdlcyBhcmUKICAgIHN1cHByZXNzZWQgYXV0b21hdGljYWxseS4gTWFrZSBzdXJlIHRvIGVuYWJsZSAibnVsbGRldiIgYnkKLSAgICNkZWZpbmluZyBDRkdfREVWSUNFX05VTExERVYgaW4geW91ciBib2FyZCBjb25maWcgZmlsZS4KKyAgICNkZWZpbmluZyBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWIGluIHlvdXIgYm9hcmQgY29uZmlnIGZpbGUuCiAKICAtIFdoZW4gYm9vdGluZyBhIGxpbnV4IGtlcm5lbCwgdGhlICJib290YXJncyIgYXJlIGZpeGVkIHVwIHNvIHRoYXQKICAgIHRoZSBhcmd1bWVudCAiY29uc29sZT0iIHdpbGwgYmUgaW4gdGhlIGNvbW1hbmQgbGluZSwgbm8gbWF0dGVyIGhvdwpkaWZmIC0tZ2l0IGEvZG9jL3VJbWFnZS5GSVQvY29tbWFuZF9zeW50YXhfZXh0ZW5zaW9ucy50eHQgYi9kb2MvdUltYWdlLkZJVC9jb21tYW5kX3N5bnRheF9leHRlbnNpb25zLnR4dAppbmRleCA2MTg1Y2Q4Li4wMDI4MThjIDEwMDY0NAotLS0gYS9kb2MvdUltYWdlLkZJVC9jb21tYW5kX3N5bnRheF9leHRlbnNpb25zLnR4dAorKysgYi9kb2MvdUltYWdlLkZJVC9jb21tYW5kX3N5bnRheF9leHRlbnNpb25zLnR4dApAQCAtMTYwLDcgKzE2MCw3IEBACiAKIFdoZW4gYm9vdG0gaXMgY2FsbGVkIHdpdGhvdXQgYXJndW1lbnRzLCB0aGUgaW1hZ2UgYXQgY3VycmVudCBpbWFnZSBhZGRyZXNzIGlzCiBib290ZWQuIFRoZSBjdXJyZW50IGltYWdlIGFkZHJlc3MgaXMgdGhlIGFkZHJlc3Mgc2V0IG1vc3QgcmVjZW50bHkgYnkgYSBsb2FkCi1jb21tYW5kLCBldGMsIGFuZCBpcyBieSBkZWZhdWx0IGVxdWFsIHRvIENGR19MT0FEX0FERFIuIEZvciBleGFtcGxlLCBjb25zaWRlcgorY29tbWFuZCwgZXRjLCBhbmQgaXMgYnkgZGVmYXVsdCBlcXVhbCB0byBDT05GSUdfU1lTX0xPQURfQUREUi4gRm9yIGV4YW1wbGUsIGNvbnNpZGVyCiB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgogCiB0ZnRwIDIwMDAwMCAvdGZ0cGJvb3Qva2VybmVsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2FoY2kuYyBiL2RyaXZlcnMvYmxvY2svYWhjaS5jCmluZGV4IDUyZmQxMDguLjI0NDVlOGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svYWhjaS5jCisrKyBiL2RyaXZlcnMvYmxvY2svYWhjaS5jCkBAIC02NzYsNyArNjc2LDcgQEAKIAogCWxpbmttYXAgPSBwcm9iZV9lbnQtPmxpbmtfcG9ydF9tYXA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX1NDU0lfTUFYX1NDU0lfSUQ7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQ7IGkrKykgewogCQlpZiAoKChsaW5rbWFwID4+IGkpICYgMHgwMSkpIHsKIAkJCWlmIChhaGNpX3BvcnRfc3RhcnQoKHU4KSBpKSkgewogCQkJCXByaW50ZigiQ2FuIG5vdCBzdGFydCBwb3J0ICVkXG4iLCBpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svYXRhX3BpaXguYyBiL2RyaXZlcnMvYmxvY2svYXRhX3BpaXguYwppbmRleCA0YzI2YjM2Li5lYzM3Njg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL2F0YV9waWl4LmMKKysrIGIvZHJpdmVycy9ibG9jay9hdGFfcGlpeC5jCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSA8aWRlLmg+CiAjaW5jbHVkZSA8YXRhLmg+CiAKLWV4dGVybiBibG9ja19kZXZfZGVzY190IHNhdGFfZGV2X2Rlc2NbQ0ZHX1NBVEFfTUFYX0RFVklDRV07CitleHRlcm4gYmxvY2tfZGV2X2Rlc2NfdCBzYXRhX2Rldl9kZXNjW0NPTkZJR19TWVNfU0FUQV9NQVhfREVWSUNFXTsKIGV4dGVybiBpbnQgY3Vycl9kZXZpY2U7CiAKICNkZWZpbmUgREVCVUdfU0FUQSAwCQkvKkZvciBkZWJ1ZyBwcmludHMgc2V0IERFQlVHX1NBVEEgdG8gMSAqLwpAQCAtMTczLDEwICsxNzMsMTAgQEAKIAkgICAgaW9iYXNlNCB8IEFUQV9QQ0lfQ1RMX09GUzsKIAlwb3J0WzFdLmlvYWRkci5ibWRtYV9hZGRyID0gaW9iYXNlNSArIDB4ODsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfU0FUQV9NQVhCVVM7IGkrKykKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19TQVRBX01BWEJVUzsgaSsrKQogCQlzYXRhX3BvcnQgKCZwb3J0W2ldLmlvYWRkcik7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX1NBVEFfTUFYQlVTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19TQVRBX01BWEJVUzsgaSsrKSB7CiAJCWlmICghKHNhdGFfYnVzX3Byb2JlIChpKSkpIHsKIAkJCXBvcnRbaV0ucG9ydF9zdGF0ZSA9IDA7CiAJCQlwcmludGYgKCJTQVRBIyVkIHBvcnQgaXMgbm90IHByZXNlbnQgXG4iLCBpKTsKQEAgLTE5MCwxNSArMTkwLDE1IEBACiAJCX0KIAl9CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX1NBVEFfTUFYQlVTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19TQVRBX01BWEJVUzsgaSsrKSB7CiAJCXU4IGosIGRldm5vOwogCiAJCWlmIChwb3J0W2ldLnBvcnRfc3RhdGUgPT0gMCkKIAkJCWNvbnRpbnVlOwotCQlmb3IgKGogPSAwOyBqIDwgQ0ZHX1NBVEFfREVWU19QRVJfQlVTOyBqKyspIHsKKwkJZm9yIChqID0gMDsgaiA8IENPTkZJR19TWVNfU0FUQV9ERVZTX1BFUl9CVVM7IGorKykgewogCQkJc2F0YV9pZGVudGlmeSAoaSwgaik7CiAJCQlzZXRfRmVhdHVyZV9jbWQgKGksIGopOwotCQkJZGV2bm8gPSBpICogQ0ZHX1NBVEFfREVWU19QRVJfQlVTICsgajsKKwkJCWRldm5vID0gaSAqIENPTkZJR19TWVNfU0FUQV9ERVZTX1BFUl9CVVMgKyBqOwogCQkJaWYgKChzYXRhX2Rldl9kZXNjW2Rldm5vXS5sYmEgPiAwKSAmJgogCQkJICAgIChzYXRhX2Rldl9kZXNjW2Rldm5vXS5ibGtzeiA+IDApKSB7CiAJCQkJZGV2X3ByaW50ICgmc2F0YV9kZXZfZGVzY1tkZXZub10pOwpAQCAtMjA2LDcgKzIwNiw3IEBACiAJCQkJaW5pdF9wYXJ0ICgmc2F0YV9kZXZfZGVzY1tkZXZub10pOwogCQkJCWlmIChjdXJyX2RldmljZSA8IDApCiAJCQkJCWN1cnJfZGV2aWNlID0KLQkJCQkJICAgIGkgKiBDRkdfU0FUQV9ERVZTX1BFUl9CVVMgKyBqOworCQkJCQkgICAgaSAqIENPTkZJR19TWVNfU0FUQV9ERVZTX1BFUl9CVVMgKyBqOwogCQkJfQogCQl9CiAJfQpAQCAtMjcxLDcgKzI3MSw3IEBACiAKIAlwb3J0W251bV0uZGV2X21hc2sgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19TQVRBX0RFVlNfUEVSX0JVUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfU0FUQV9ERVZTX1BFUl9CVVM7IGkrKykgewogCQlpZiAoIShzYXRhX2RldmNoayAoJnBvcnRbbnVtXS5pb2FkZHIsIGkpKSkgewogCQkJUFJJTlRGICgiZGV2X2NoayBmYWlsZWQgZm9yIGRldiMlZFxuIiwgaSk7CiAJCX0gZWxzZSB7CkBAIC0zMjgsNyArMzI4LDcgQEAKIHZvaWQKIHNhdGFfaWRlbnRpZnkgKGludCBudW0sIGludCBkZXYpCiB7Ci0JdTggY21kID0gMCwgc3RhdHVzID0gMCwgZGV2bm8gPSBudW0gKiBDRkdfU0FUQV9ERVZTX1BFUl9CVVMgKyBkZXY7CisJdTggY21kID0gMCwgc3RhdHVzID0gMCwgZGV2bm8gPSBudW0gKiBDT05GSUdfU1lTX1NBVEFfREVWU19QRVJfQlVTICsgZGV2OwogCXUxNiBpb2J1ZltBVEFfU0VDVF9TSVpFXTsKIAl1NjQgbl9zZWN0b3JzID0gMDsKIAl1OCBtYXNrID0gMDsKQEAgLTU2NCwxMCArNTY0LDEwIEBACiAJfQogI2VuZGlmCiAJLypQb3J0IE51bWJlciAqLwotCW51bSA9IGRldmljZSAvIENGR19TQVRBX0RFVlNfUEVSX0JVUzsKKwludW0gPSBkZXZpY2UgLyBDT05GSUdfU1lTX1NBVEFfREVWU19QRVJfQlVTOwogCS8qZGV2IG9uIHRoZSBwb3J0ICovCi0JaWYgKGRldmljZSA+PSBDRkdfU0FUQV9ERVZTX1BFUl9CVVMpCi0JCWRldiA9IGRldmljZSAtIENGR19TQVRBX0RFVlNfUEVSX0JVUzsKKwlpZiAoZGV2aWNlID49IENPTkZJR19TWVNfU0FUQV9ERVZTX1BFUl9CVVMpCisJCWRldiA9IGRldmljZSAtIENPTkZJR19TWVNfU0FUQV9ERVZTX1BFUl9CVVM7CiAJZWxzZQogCQlkZXYgPSBkZXZpY2U7CiAKQEAgLTY3MSwxMCArNjcxLDEwIEBACiAJfQogI2VuZGlmCiAJLypQb3J0IE51bWJlciAqLwotCW51bSA9IGRldmljZSAvIENGR19TQVRBX0RFVlNfUEVSX0JVUzsKKwludW0gPSBkZXZpY2UgLyBDT05GSUdfU1lTX1NBVEFfREVWU19QRVJfQlVTOwogCS8qZGV2IG9uIHRoZSBQb3J0ICovCi0JaWYgKGRldmljZSA+PSBDRkdfU0FUQV9ERVZTX1BFUl9CVVMpCi0JCWRldiA9IGRldmljZSAtIENGR19TQVRBX0RFVlNfUEVSX0JVUzsKKwlpZiAoZGV2aWNlID49IENPTkZJR19TWVNfU0FUQV9ERVZTX1BFUl9CVVMpCisJCWRldiA9IGRldmljZSAtIENPTkZJR19TWVNfU0FUQV9ERVZTX1BFUl9CVVM7CiAJZWxzZQogCQlkZXYgPSBkZXZpY2U7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svYXRhX3BpaXguaCBiL2RyaXZlcnMvYmxvY2svYXRhX3BpaXguaAppbmRleCBmOWYwMTk0Li4xMTg4NWFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL2F0YV9waWl4LmgKKysrIGIvZHJpdmVycy9ibG9jay9hdGFfcGlpeC5oCkBAIC04OCw3ICs4OCw3IEBACiAjZW5kaWYKIAogI2lmZGVmIERSVl9ERUNMCQkJLypEZWZpbmVzIERyaXZlciBTcGVjaWZpYyB2YXJpYWJsZXMgKi8KLXN0cnVjdCBzYXRhX3BvcnQgcG9ydFtDRkdfU0FUQV9NQVhCVVNdOworc3RydWN0IHNhdGFfcG9ydCBwb3J0W0NPTkZJR19TWVNfU0FUQV9NQVhCVVNdOwogI2VuZGlmCiAKICNlbmRpZiAvKiBfX0FUQV9QSUlYX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9mc2xfc2F0YS5jIGIvZHJpdmVycy9ibG9jay9mc2xfc2F0YS5jCmluZGV4IDU1ZjU5M2EuLjIwMDlkMWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svZnNsX3NhdGEuYworKysgYi9kcml2ZXJzL2Jsb2NrL2ZzbF9zYXRhLmMKQEAgLTI2LDIzICsyNiwyMyBAQAogI2luY2x1ZGUgPGZpcy5oPgogI2luY2x1ZGUgImZzbF9zYXRhLmgiCiAKLWV4dGVybiBibG9ja19kZXZfZGVzY190IHNhdGFfZGV2X2Rlc2NbQ0ZHX1NBVEFfTUFYX0RFVklDRV07CitleHRlcm4gYmxvY2tfZGV2X2Rlc2NfdCBzYXRhX2Rldl9kZXNjW0NPTkZJR19TWVNfU0FUQV9NQVhfREVWSUNFXTsKIAotI2lmbmRlZiBDRkdfU0FUQTFfRkxBR1MKLQkjZGVmaW5lIENGR19TQVRBMV9GTEFHUwlGTEFHU19ETUEKKyNpZm5kZWYgQ09ORklHX1NZU19TQVRBMV9GTEFHUworCSNkZWZpbmUgQ09ORklHX1NZU19TQVRBMV9GTEFHUwlGTEFHU19ETUEKICNlbmRpZgotI2lmbmRlZiBDRkdfU0FUQTJfRkxBR1MKLQkjZGVmaW5lIENGR19TQVRBMl9GTEFHUwlGTEFHU19ETUEKKyNpZm5kZWYgQ09ORklHX1NZU19TQVRBMl9GTEFHUworCSNkZWZpbmUgQ09ORklHX1NZU19TQVRBMl9GTEFHUwlGTEFHU19ETUEKICNlbmRpZgogCiBzdGF0aWMgc3RydWN0IGZzbF9zYXRhX2luZm8gZnNsX3NhdGFfaW5mb1tdID0gewogI2lmZGVmIENPTkZJR19TQVRBMQotCXtDRkdfU0FUQTEsIENGR19TQVRBMV9GTEFHU30sCisJe0NPTkZJR19TWVNfU0FUQTEsIENPTkZJR19TWVNfU0FUQTFfRkxBR1N9LAogI2Vsc2UKIAl7MCwgMH0sCiAjZW5kaWYKICNpZmRlZiBDT05GSUdfU0FUQTIKLQl7Q0ZHX1NBVEEyLCBDRkdfU0FUQTJfRkxBR1N9LAorCXtDT05GSUdfU1lTX1NBVEEyLCBDT05GSUdfU1lTX1NBVEEyX0ZMQUdTfSwKICNlbHNlCiAJezAsIDB9LAogI2VuZGlmCkBAIC0xMjMsNyArMTIzLDcgQEAKIAlpbnQgaTsKIAlmc2xfc2F0YV90ICpzYXRhOwogCi0JaWYgKGRldiA8IDAgfHwgZGV2ID4gKENGR19TQVRBX01BWF9ERVZJQ0UgLSAxKSkgeworCWlmIChkZXYgPCAwIHx8IGRldiA+IChDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRSAtIDEpKSB7CiAJCXByaW50ZigidGhlIHNhdGEgaW5kZXggJWQgaXMgb3V0IG9mIHJhbmdlc1xuXHIiLCBkZXYpOwogCQlyZXR1cm4gLTE7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9zYXRhX3NpbDMxMTQuYyBiL2RyaXZlcnMvYmxvY2svc2F0YV9zaWwzMTE0LmMKaW5kZXggODM5OTczNy4uMzUxY2Y5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9zYXRhX3NpbDMxMTQuYworKysgYi9kcml2ZXJzL2Jsb2NrL3NhdGFfc2lsMzExNC5jCkBAIC00OCw5ICs0OCw5IEBACiBzdGF0aWMgdm9pZCBtc2xlZXAgKGludCBjb3VudCk7CiAKIHN0YXRpYyB1MzIgaW9iYXNlWzZdID0geyAwLCAwLCAwLCAwLCAwLCAwfTsJLyogUENJIEJBUiByZWdpc3RlcnMgZm9yIGRldmljZSAqLwotZXh0ZXJuIGJsb2NrX2Rldl9kZXNjX3Qgc2F0YV9kZXZfZGVzY1tDRkdfU0FUQV9NQVhfREVWSUNFXTsKK2V4dGVybiBibG9ja19kZXZfZGVzY190IHNhdGFfZGV2X2Rlc2NbQ09ORklHX1NZU19TQVRBX01BWF9ERVZJQ0VdOwogCi1zdGF0aWMgc3RydWN0IHNhdGFfcG9ydCBwb3J0W0NGR19TQVRBX01BWF9ERVZJQ0VdOworc3RhdGljIHN0cnVjdCBzYXRhX3BvcnQgcG9ydFtDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRV07CiAKIHN0YXRpYyB2b2lkIG91dHB1dF9kYXRhIChzdHJ1Y3Qgc2F0YV9pb3BvcnRzICppb2FkZHIsIHUxNiAqIHNlY3RfYnVmLCBpbnQgd29yZHMpCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3NpbDY4MC5jIGIvZHJpdmVycy9ibG9jay9zaWw2ODAuYwppbmRleCAwNTJjM2QzLi5lMjFmYjliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3NpbDY4MC5jCisrKyBiL2RyaXZlcnMvYmxvY2svc2lsNjgwLmMKQEAgLTMyLDI1ICszMiwyNSBAQAogICogI2RlZmluZSBDT05GSUdfUENJX1BOUAogICogTk9URSBpdCBtYXkgYWxzbyBiZSBuZWNlc3NhcnkgdG8gZGVmaW5lIHRoaXMgaWYgdGhlIGRlZmF1bHQgb2YgOCBpcwogICogaW5jb3JyZWN0IGZvciB0aGUgdGFyZ2V0IGJvYXJkIChlLmcuIHRoZSBzZXF1b2lhIGJvYXJkIHJlcXVpcmVzIDApLgotICogI2RlZmluZSBDRkdfUENJX0NBQ0hFX0xJTkVfU0laRQkwCisgKiAjZGVmaW5lIENPTkZJR19TWVNfUENJX0NBQ0hFX0xJTkVfU0laRQkwCiAgKgogICogI2RlZmluZSBDT05GSUdfQ01EX0lERQogICogI3VuZGVmICBDT05GSUdfSURFXzh4eF9ESVJFQ1QKICAqICN1bmRlZiAgQ09ORklHX0lERV9MRUQKICAqICN1bmRlZiAgQ09ORklHX0lERV9SRVNFVAogICogI2RlZmluZSBDT05GSUdfSURFX1BSRUlOSVQKLSAqICNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTIgLSBtb2RpZnkgdG8gc3VpdAotICogI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMqMikgLSBtb2RpZnkgdG8gc3VpdAotICogI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkwCi0gKiAjZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMAotICogI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUCTAKLSAqICNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkwCi0gKiAjZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkwCi0gKiAjZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAwMDQKKyAqICNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkyIC0gbW9kaWZ5IHRvIHN1aXQKKyAqICNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCShDT05GSUdfU1lTX0lERV9NQVhCVVMqMikgLSBtb2RpZnkgdG8gc3VpdAorICogI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJMAorICogI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkwCisgKiAjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VUCTAKKyAqICNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMAorICogI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTAKKyAqICNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAwMDQKICAqCiAgKiBUaGUgbWFwcGluZyBmb3IgUENJIElPLXNwYWNlLgogICogTk9URSB0aGlzIGlzIHRoZSB2YWx1ZSBmb3IgdGhlIHNlcXVvaWEgYm9hcmQuIE1vZGlmeSB0byBzdWl0LgotICogI2RlZmluZSBDRkdfUENJMF9JT19TUEFDRSAgIDB4RTgwMDAwMDAKKyAqICNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFICAgMHhFODAwMDAwMAogICovCiAKICNpbmNsdWRlIDxjb21tb24uaD4KQEAgLTU4LDcgKzU4LDcgQEAKICNpbmNsdWRlIDxpZGUuaD4KICNpbmNsdWRlIDxwY2kuaD4KIAotZXh0ZXJuIHVsb25nIGlkZV9idXNfb2Zmc2V0W0NGR19JREVfTUFYQlVTXTsKK2V4dGVybiB1bG9uZyBpZGVfYnVzX29mZnNldFtDT05GSUdfU1lTX0lERV9NQVhCVVNdOwogCiBpbnQgaWRlX3ByZWluaXQgKHZvaWQpCiB7CkBAIC02Nyw3ICs2Nyw3IEBACiAJaW50IGw7CiAKIAlzdGF0dXMgPSAxOwotCWZvciAobCA9IDA7IGwgPCBDRkdfSURFX01BWEJVUzsgbCsrKSB7CisJZm9yIChsID0gMDsgbCA8IENPTkZJR19TWVNfSURFX01BWEJVUzsgbCsrKSB7CiAJCWlkZV9idXNfb2Zmc2V0W2xdID0gLUFUQV9TVEFUVVM7CiAJfQogCWRldmJ1c2ZuID0gcGNpX2ZpbmRfZGV2aWNlICgweDEwOTUsIDB4MDY4MCwgMCk7CkBAIC03NywxMSArNzcsMTEgQEAKIAkJcGNpX3JlYWRfY29uZmlnX2R3b3JkIChkZXZidXNmbiwgUENJX0JBU0VfQUREUkVTU18wLAogCQkJCSAgICAgICAodTMyICopICZpZGVfYnVzX29mZnNldFswXSk7CiAJCWlkZV9idXNfb2Zmc2V0WzBdICY9IDB4ZmZmZmZmZjg7Ci0JCWlkZV9idXNfb2Zmc2V0WzBdICs9IENGR19QQ0kwX0lPX1NQQUNFOworCQlpZGVfYnVzX29mZnNldFswXSArPSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0U7CiAJCXBjaV9yZWFkX2NvbmZpZ19kd29yZCAoZGV2YnVzZm4sIFBDSV9CQVNFX0FERFJFU1NfMiwKIAkJCQkgICAgICAgKHUzMiAqKSAmaWRlX2J1c19vZmZzZXRbMV0pOwogCQlpZGVfYnVzX29mZnNldFsxXSAmPSAweGZmZmZmZmY4OwotCQlpZGVfYnVzX29mZnNldFsxXSArPSBDRkdfUENJMF9JT19TUEFDRTsKKwkJaWRlX2J1c19vZmZzZXRbMV0gKz0gQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFOwogCQkvKiBpbml0IHZhcmlvdXMgdGhpbmdzIC0gdGFrZW4gZnJvbSB0aGUgTGludXggZHJpdmVyICovCiAJCS8qIHNldCBQSU8gbW9kZSAqLwogCQlwY2lfd3JpdGVfY29uZmlnX2J5dGUoZGV2YnVzZm4sIDB4ODAsIDB4MDApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9zeW01M2M4eHguYyBiL2RyaXZlcnMvYmxvY2svc3ltNTNjOHh4LmMKaW5kZXggNDRlOTk4Yi4uMGM2MGJmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9zeW01M2M4eHguYworKysgYi9kcml2ZXJzL2Jsb2NrL3N5bTUzYzh4eC5jCkBAIC00MjYsNyArNDI2LDcgQEAKIHsKIAl1bnNpZ25lZCBjaGFyIHQ7CiAJaW50IGk7Ci0JaW50IGVuZCA9IENGR19TQ1NJX1NQSU5fVVBfVElNRSoxMDAwOworCWludCBlbmQgPSBDT05GSUdfU1lTX1NDU0lfU1BJTl9VUF9USU1FKjEwMDA7CiAKIAl0PXNjc2lfcmVhZF9ieXRlKFNDTlRMMSk7CiAJc2NzaV93cml0ZV9ieXRlKFNDTlRMMSwodCB8IENSU1QpKTsKQEAgLTgzNiwxMCArODM2LDEwIEBACiAJc2NzaV93cml0ZV9ieXRlKFNDTlRMMCwweEMwKTsgLyogZnVsbCBhcmJpdHJhdGlvbiBubyBzdGFydCwgbm8gbWVzc2FnZSwgcGFyaXR5IGRpc2FibGVkLCBtYXN0ZXIgKi8KIAlzY3NpX3dyaXRlX2J5dGUoU0NOVEwxLDB4MDApOwogCXNjc2lfd3JpdGVfYnl0ZShTQ05UTDIsMHgwMCk7Ci0jaWZuZGVmIENGR19TQ1NJX1NZTTUzQzhYWF9DQ0YgICAgLyogY29uZmlnIHZhbHVlIGZvciBub25lIDQwIG1oeiBjbG9ja3MgKi8KKyNpZm5kZWYgQ09ORklHX1NZU19TQ1NJX1NZTTUzQzhYWF9DQ0YgICAgLyogY29uZmlnIHZhbHVlIGZvciBub25lIDQwIG1oeiBjbG9ja3MgKi8KIAlzY3NpX3dyaXRlX2J5dGUoU0NOVEwzLDB4MTMpOyAvKiBzeW5jaHJvbm91cyBjbG9jayA0MC80PTEwTUh6LCBhc3luY2hyb25vdXMgNDBNSHogKi8KICNlbHNlCi0Jc2NzaV93cml0ZV9ieXRlKFNDTlRMMyxDRkdfU0NTSV9TWU01M0M4WFhfQ0NGKTsgLyogY29uZmlnIHZhbHVlIGZvciBub25lIDQwIG1oeiBjbG9ja3MgKi8KKwlzY3NpX3dyaXRlX2J5dGUoU0NOVEwzLENPTkZJR19TWVNfU0NTSV9TWU01M0M4WFhfQ0NGKTsgLyogY29uZmlnIHZhbHVlIGZvciBub25lIDQwIG1oeiBjbG9ja3MgKi8KICNlbmRpZgogCXNjc2lfd3JpdGVfYnl0ZShTQ0lELDB4NDcpOyAvKiBJRD03LCBlbmFibGUgcmVzZWxlY3Rpb24gKi8KIAlzY3NpX3dyaXRlX2J5dGUoU1hGRVIsMHgwMCk7IC8qIHN5bmNocm9ub3VzIHRyYW5zZmVyIHBlcmlvZCAxME1IeiwgYXN5bmNocm9ub3VzICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3N5c3RlbWFjZS5jIGIvZHJpdmVycy9ibG9jay9zeXN0ZW1hY2UuYwppbmRleCBkZmFhYjUyLi5lOGRmZjBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3N5c3RlbWFjZS5jCisrKyBiL2RyaXZlcnMvYmxvY2svc3lzdGVtYWNlLmMKQEAgLTIwLDcgKzIwLDcgQEAKIAogLyoKICAqIFRoZSBYaWxpbnggU3lzdGVtQUNFIGNoaXAgc3VwcG9ydCBpcyBhY3RpdmF0ZWQgYnkgZGVmaW5pbmcKLSAqIENPTkZJR19TWVNURU1BQ0UgdG8gdHVybiBvbiBzdXBwb3J0LCBhbmQgQ0ZHX1NZU1RFTUFDRV9CQVNFCisgKiBDT05GSUdfU1lTVEVNQUNFIHRvIHR1cm4gb24gc3VwcG9ydCwgYW5kIENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UKICAqIHRvIHNldCB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBkZXZpY2UuIFRoaXMgY29kZSBjdXJyZW50bHkKICAqIGFzc3VtZXMgdGhhdCB0aGUgY2hpcCBpcyBjb25uZWN0ZWQgdmlhIGEgYnl0ZS13aWRlIGJ1cy4KICAqCkBAIC00NywyNSArNDcsMjUgQEAKIC8qCiAgKiBUaGUgYWNlX3JlYWR3IGFuZCB3cml0ZXcgZnVuY3Rpb25zIHJlYWQvd3JpdGUgMTZiaXQgd29yZHMsIGJ1dCB0aGUKICAqIG9mZnNldCB2YWx1ZSBpcyB0aGUgQllURSBvZmZzZXQgYXMgbW9zdCB1c2VkIGluIHRoZSBYaWxpbngKLSAqIGRhdGFzaGVldCBmb3IgdGhlIFN5c3RlbUFDRSBjaGlwLiBUaGUgQ0ZHX1NZU1RFTUFDRV9CQVNFIGlzIGRlZmluZWQKKyAqIGRhdGFzaGVldCBmb3IgdGhlIFN5c3RlbUFDRSBjaGlwLiBUaGUgQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRSBpcyBkZWZpbmVkCiAgKiB0byBiZSB0aGUgYmFzZSBhZGRyZXNzIGZvciB0aGUgY2hpcCwgdXN1YWxseSBpbiB0aGUgbG9jYWwKICAqIHBlcmlwaGVyYWwgYnVzLgogICovCi0jaWYgKENGR19TWVNURU1BQ0VfV0lEVEggPT0gOCkKKyNpZiAoQ09ORklHX1NZU19TWVNURU1BQ0VfV0lEVEggPT0gOCkKICNpZiAhZGVmaW5lZChfX0JJR19FTkRJQU4pCi0jZGVmaW5lIGFjZV9yZWFkdyhvZmYpICgocmVhZGIoQ0ZHX1NZU1RFTUFDRV9CQVNFK29mZik8PDgpIHwgXAotCQkJKHJlYWRiKENGR19TWVNURU1BQ0VfQkFTRStvZmYrMSkpKQotI2RlZmluZSBhY2Vfd3JpdGV3KHZhbCwgb2ZmKSB7d3JpdGViKHZhbD4+OCwgQ0ZHX1NZU1RFTUFDRV9CQVNFK29mZik7IFwKLQkJCSAgICAgIHdyaXRlYih2YWwsIENGR19TWVNURU1BQ0VfQkFTRStvZmYrMSk7fQorI2RlZmluZSBhY2VfcmVhZHcob2ZmKSAoKHJlYWRiKENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0Urb2ZmKTw8OCkgfCBcCisJCQkocmVhZGIoQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRStvZmYrMSkpKQorI2RlZmluZSBhY2Vfd3JpdGV3KHZhbCwgb2ZmKSB7d3JpdGViKHZhbD4+OCwgQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRStvZmYpOyBcCisJCQkgICAgICB3cml0ZWIodmFsLCBDT05GSUdfU1lTX1NZU1RFTUFDRV9CQVNFK29mZisxKTt9CiAjZWxzZQotI2RlZmluZSBhY2VfcmVhZHcob2ZmKSAoKHJlYWRiKENGR19TWVNURU1BQ0VfQkFTRStvZmYpKSB8IFwKLQkJCShyZWFkYihDRkdfU1lTVEVNQUNFX0JBU0Urb2ZmKzEpPDw4KSkKLSNkZWZpbmUgYWNlX3dyaXRldyh2YWwsIG9mZikge3dyaXRlYih2YWwsIENGR19TWVNURU1BQ0VfQkFTRStvZmYpOyBcCi0JCQkgICAgICB3cml0ZWIodmFsPj44LCBDRkdfU1lTVEVNQUNFX0JBU0Urb2ZmKzEpO30KKyNkZWZpbmUgYWNlX3JlYWR3KG9mZikgKChyZWFkYihDT05GSUdfU1lTX1NZU1RFTUFDRV9CQVNFK29mZikpIHwgXAorCQkJKHJlYWRiKENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0Urb2ZmKzEpPDw4KSkKKyNkZWZpbmUgYWNlX3dyaXRldyh2YWwsIG9mZikge3dyaXRlYih2YWwsIENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0Urb2ZmKTsgXAorCQkJICAgICAgd3JpdGViKHZhbD4+OCwgQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRStvZmYrMSk7fQogI2VuZGlmCiAjZWxzZQotI2RlZmluZSBhY2VfcmVhZHcob2ZmKSAoaW4xNihDRkdfU1lTVEVNQUNFX0JBU0Urb2ZmKSkKLSNkZWZpbmUgYWNlX3dyaXRldyh2YWwsIG9mZikgKG91dDE2KENGR19TWVNURU1BQ0VfQkFTRStvZmYsdmFsKSkKKyNkZWZpbmUgYWNlX3JlYWR3KG9mZikgKGluMTYoQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRStvZmYpKQorI2RlZmluZSBhY2Vfd3JpdGV3KHZhbCwgb2ZmKSAob3V0MTYoQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRStvZmYsdmFsKSkKICNlbmRpZgogCiAvKiAqLwpAQCAtMTIwLDcgKzEyMCw3IEBACiAJCS8qCiAJCSAqIEVuc3VyZSB0aGUgY29ycmVjdCBidXMgbW9kZSAoOC8xNiBiaXRzKSBnZXRzIGVuYWJsZWQKIAkJICovCi0JCWFjZV93cml0ZXcoQ0ZHX1NZU1RFTUFDRV9XSURUSCA9PSA4ID8gMCA6IDB4MDAwMSwgMCk7CisJCWFjZV93cml0ZXcoQ09ORklHX1NZU19TWVNURU1BQ0VfV0lEVEggPT0gOCA/IDAgOiAweDAwMDEsIDApOwogCiAJCWluaXRfcGFydCgmc3lzdGVtYWNlX2Rldik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vYWRtMTAyMS5jIGIvZHJpdmVycy9od21vbi9hZG0xMDIxLmMKaW5kZXggYjc5MWVjMC4uZDc1M2U5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9hZG0xMDIxLmMKKysrIGIvZHJpdmVycy9od21vbi9hZG0xMDIxLmMKQEAgLTgxLDcgKzgxLDcgQEAKIAl9CiBkdHRfY2ZnX3Q7CiAKLWR0dF9jZmdfdCBkdHRjZmdbXSA9IENGR19EVFRfQURNMTAyMTsKK2R0dF9jZmdfdCBkdHRjZmdbXSA9IENPTkZJR19TWVNfRFRUX0FETTEwMjE7CiAKIGludAogZHR0X3JlYWQgKGludCBzZW5zb3IsIGludCByZWcpCkBAIC0xNzQsNyArMTc0LDcgQEAKIAljb25zdCBjaGFyICpjb25zdCBoZWFkZXIgPSAiRFRUOiAgICI7CiAKIAkvKiBzd2l0Y2ggdG8gY29ycmVjdCBJMkMgYnVzICovCi0JSTJDX1NFVF9CVVMoQ0ZHX0RUVF9CVVNfTlVNKTsKKwlJMkNfU0VUX0JVUyhDT05GSUdfU1lTX0RUVF9CVVNfTlVNKTsKIAogCWZvciAoaSA9IDA7IGkgPCBzaXplb2Yoc2Vuc29ycyk7IGkrKykgewogCQlpZiAoX2R0dF9pbml0KHNlbnNvcnNbaV0pICE9IDApCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2RzMTYyMS5jIGIvZHJpdmVycy9od21vbi9kczE2MjEuYwppbmRleCA1MjNmOGJlLi5kMTVhMDgyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2RzMTYyMS5jCisrKyBiL2RyaXZlcnMvaHdtb24vZHMxNjIxLmMKQEAgLTEyNSw3ICsxMjUsNyBAQAogICAgIC8qCiAgICAgICogU2V0dXAgSGlnaCBUZW1wLgogICAgICAqLwotICAgIHZhbCA9ICgoQ0ZHX0RUVF9NQVhfVEVNUCAqIDIpIDw8IDcpICYgMHhmZjgwOworICAgIHZhbCA9ICgoQ09ORklHX1NZU19EVFRfTUFYX1RFTVAgKiAyKSA8PCA3KSAmIDB4ZmY4MDsKICAgICBpZiAoZHR0X3dyaXRlKHNlbnNvciwgRFRUX1RFTVBfSElHSCwgdmFsKSAhPSAwKQogCXJldHVybiAxOwogICAgIHVkZWxheSg1MDAwMCk7CQkJCS8qIE1heCA1MG1zICovCkBAIC0xMzMsNyArMTMzLDcgQEAKICAgICAvKgogICAgICAqIFNldHVwIExvdyBUZW1wIC0gaHlzdGVyZXNpcy4KICAgICAgKi8KLSAgICB2YWwgPSAoKChDRkdfRFRUX01BWF9URU1QIC0gQ0ZHX0RUVF9IWVNURVJFU0lTKSAqIDIpIDw8IDcpICYgMHhmZjgwOworICAgIHZhbCA9ICgoKENPTkZJR19TWVNfRFRUX01BWF9URU1QIC0gQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUykgKiAyKSA8PCA3KSAmIDB4ZmY4MDsKICAgICBpZiAoZHR0X3dyaXRlKHNlbnNvciwgRFRUX1RFTVBfTE9XLCB2YWwpICE9IDApCiAJcmV0dXJuIDE7CiAgICAgdWRlbGF5KDUwMDAwKTsJCQkJLyogTWF4IDUwbXMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vZHMxNzc1LmMgYi9kcml2ZXJzL2h3bW9uL2RzMTc3NS5jCmluZGV4IDZhNGQ4ZTUuLjgwZmIyNmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vZHMxNzc1LmMKKysrIGIvZHJpdmVycy9od21vbi9kczE3NzUuYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGkyYy5oPgogI2luY2x1ZGUgPGR0dC5oPgogCi0jZGVmaW5lIERUVF9JMkNfREVWX0NPREUJQ0ZHX0kyQ19EVFRfQUREUiAvKiBEYWxsYXMgU2VtaSdzIERTMTc3NSBkZXZpY2UgY29kZSAqLworI2RlZmluZSBEVFRfSTJDX0RFVl9DT0RFCUNPTkZJR19TWVNfSTJDX0RUVF9BRERSIC8qIERhbGxhcyBTZW1pJ3MgRFMxNzc1IGRldmljZSBjb2RlICovCiAjZGVmaW5lIERUVF9SRUFEX1RFTVAJCTB4MAogI2RlZmluZSBEVFRfQ09ORklHCQkweDEKICNkZWZpbmUgRFRUX1RFTVBfSFlTVAkJMHgyCkBAIC0xMDUsNyArMTA1LDcgQEAKIAkvKgogCSAqIFNldHVwIEhpZ2ggVGVtcAogCSAqLwotCXZhbCA9ICgoQ0ZHX0RUVF9NQVhfVEVNUCAqIDIpIDw8IDcpICYgMHhmZjgwOworCXZhbCA9ICgoQ09ORklHX1NZU19EVFRfTUFYX1RFTVAgKiAyKSA8PCA3KSAmIDB4ZmY4MDsKIAlpZiAoZHR0X3dyaXRlKHNlbnNvciwgRFRUX1RFTVBfT1MsIHZhbCkgIT0gMCkKIAkJcmV0dXJuIDE7CiAJdWRlbGF5KDUwMDAwKTsJCQkvKiBNYXggNTBtcyAqLwpAQCAtMTEzLDcgKzExMyw3IEBACiAJLyoKIAkgKiBTZXR1cCBMb3cgVGVtcCAtIGh5c3RlcmVzaXMKIAkgKi8KLQl2YWwgPSAoKChDRkdfRFRUX01BWF9URU1QIC0gQ0ZHX0RUVF9IWVNURVJFU0lTKSAqIDIpIDw8IDcpICYgMHhmZjgwOworCXZhbCA9ICgoKENPTkZJR19TWVNfRFRUX01BWF9URU1QIC0gQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUykgKiAyKSA8PCA3KSAmIDB4ZmY4MDsKIAlpZiAoZHR0X3dyaXRlKHNlbnNvciwgRFRUX1RFTVBfSFlTVCwgdmFsKSAhPSAwKQogCQlyZXR1cm4gMTsKIAl1ZGVsYXkoNTAwMDApOwkJCS8qIE1heCA1MG1zICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2xtNzMuYyBiL2RyaXZlcnMvaHdtb24vbG03My5jCmluZGV4IGRkMjQ2ODMuLjdiNWQ4OTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vbG03My5jCisrKyBiL2RyaXZlcnMvaHdtb24vbG03My5jCkBAIC0xMjQsMTEgKzEyNCwxMSBAQAogCS8qCiAJICogU2V0dXAgVEhJR0ggKHVwcGVyLWxpbWl0KSBhbmQgVExPVyAobG93ZXItbGltaXQpIHJlZ2lzdGVycwogCSAqLwotCXZhbCA9IENGR19EVFRfTUFYX1RFTVAgPDwgNzsKKwl2YWwgPSBDT05GSUdfU1lTX0RUVF9NQVhfVEVNUCA8PCA3OwogCWlmIChkdHRfd3JpdGUoc2Vuc29yLCBEVFRfVEVNUF9ISUdILCB2YWwpKQogCQlyZXR1cm4gLTE7CiAKLQl2YWwgPSBDRkdfRFRUX01JTl9URU1QIDw8IDc7CisJdmFsID0gQ09ORklHX1NZU19EVFRfTUlOX1RFTVAgPDwgNzsKIAlpZiAoZHR0X3dyaXRlKHNlbnNvciwgRFRUX1RFTVBfTE9XLCB2YWwpKQogCQlyZXR1cm4gLTE7CiAJLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vbG03NS5jIGIvZHJpdmVycy9od21vbi9sbTc1LmMKaW5kZXggMTczNzllNS4uODExOTgyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9sbTc1LmMKKysrIGIvZHJpdmVycy9od21vbi9sbTc1LmMKQEAgLTMyLDggKzMyLDggQEAKIC8qCiAgKiBEZXZpY2UgY29kZQogICovCi0jaWYgZGVmaW5lZChDRkdfSTJDX0RUVF9BRERSKQotI2RlZmluZSBEVFRfSTJDX0RFVl9DT0RFIENGR19JMkNfRFRUX0FERFIKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX0RUVF9BRERSKQorI2RlZmluZSBEVFRfSTJDX0RFVl9DT0RFIENPTkZJR19TWVNfSTJDX0RUVF9BRERSCiAjZWxzZQogI2RlZmluZSBEVFRfSTJDX0RFVl9DT0RFIDB4NDgJCQkvKiBPTiBTZW1pJ3MgTE03NSBkZXZpY2UgKi8KICNlbmRpZgpAQCAtMTI0LDEyICsxMjQsMTIgQEAKIAlpbnQgdmFsOwogCiAJLyogU2V0dXAgVFNFVCAoIHRyaXAgcG9pbnQgKSByZWdpc3RlciAqLwotCXZhbCA9ICgoQ0ZHX0RUVF9NQVhfVEVNUCAqIDIpIDw8IDcpICYgMHhmZjgwOyAvKiB0cmlwICovCisJdmFsID0gKChDT05GSUdfU1lTX0RUVF9NQVhfVEVNUCAqIDIpIDw8IDcpICYgMHhmZjgwOyAvKiB0cmlwICovCiAJaWYgKGR0dF93cml0ZShzZW5zb3IsIERUVF9URU1QX1NFVCwgdmFsKSAhPSAwKQogCQlyZXR1cm4gMTsKIAogCS8qIFNldHVwIFRIWVNUICggdW50cmlwIHBvaW50ICkgcmVnaXN0ZXIgLSBIeXN0ZXJlc2lzICovCi0JdmFsID0gKCgoQ0ZHX0RUVF9NQVhfVEVNUCAtIENGR19EVFRfSFlTVEVSRVNJUykgKiAyKSA8PCA3KSAmIDB4ZmY4MDsKKwl2YWwgPSAoKChDT05GSUdfU1lTX0RUVF9NQVhfVEVNUCAtIENPTkZJR19TWVNfRFRUX0hZU1RFUkVTSVMpICogMikgPDwgNykgJiAweGZmODA7CiAJaWYgKGR0dF93cml0ZShzZW5zb3IsIERUVF9URU1QX0hZU1QsIHZhbCkgIT0gMCkKIAkJcmV0dXJuIDE7CiAKQEAgLTE1Nyw3ICsxNTcsNyBAQAogCiAJLyogc3dpdGNoIHRvIGNvcnJlY3QgSTJDIGJ1cyAqLwogCW9sZF9idXMgPSBJMkNfR0VUX0JVUygpOwotCUkyQ19TRVRfQlVTKENGR19EVFRfQlVTX05VTSk7CisJSTJDX1NFVF9CVVMoQ09ORklHX1NZU19EVFRfQlVTX05VTSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHNlbnNvcnMpOyBpKyspIHsKIAlpZiAoX2R0dF9pbml0KHNlbnNvcnNbaV0pICE9IDApCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9mc2xfaTJjLmMgYi9kcml2ZXJzL2kyYy9mc2xfaTJjLmMKaW5kZXggMjY0NTUzZC4uMjgxYTg4YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvZnNsX2kyYy5jCisrKyBiL2RyaXZlcnMvaTJjL2ZzbF9pMmMuYwpAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9mc2xfaTJjLmg+CS8qIEhXIGRlZmluaXRpb25zICovCiAKLSNkZWZpbmUgSTJDX1RJTUVPVVQJKENGR19IWiAvIDQpCisjZGVmaW5lIEkyQ19USU1FT1VUCShDT05GSUdfU1lTX0haIC8gNCkKIAogI2RlZmluZSBJMkNfUkVBRF9CSVQgIDEKICNkZWZpbmUgSTJDX1dSSVRFX0JJVCAwCkBAIC0zOCwxOCArMzgsMTggQEAKICAqIHJ1bnMgZnJvbSBST00sIGFuZCB3ZSBjYW4ndCBzd2l0Y2ggYnVzZXMgYmVjYXVzZSB3ZSBjYW4ndCBtb2RpZnkKICAqIHRoZSBnbG9iYWwgdmFyaWFibGVzLgogICovCi0jaWZkZWYgQ0ZHX1NQRF9CVVNfTlVNCi1zdGF0aWMgdW5zaWduZWQgaW50IGkyY19idXNfbnVtIF9fYXR0cmlidXRlX18gKChzZWN0aW9uICgiZGF0YSIpKSkgPSBDRkdfU1BEX0JVU19OVU07CisjaWZkZWYgQ09ORklHX1NZU19TUERfQlVTX05VTQorc3RhdGljIHVuc2lnbmVkIGludCBpMmNfYnVzX251bSBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbiAoImRhdGEiKSkpID0gQ09ORklHX1NZU19TUERfQlVTX05VTTsKICNlbHNlCiBzdGF0aWMgdW5zaWduZWQgaW50IGkyY19idXNfbnVtIF9fYXR0cmlidXRlX18gKChzZWN0aW9uICgiZGF0YSIpKSkgPSAwOwogI2VuZGlmCiAKLXN0YXRpYyB1bnNpZ25lZCBpbnQgaTJjX2J1c19zcGVlZFsyXSA9IHtDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NQRUVEfTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgaTJjX2J1c19zcGVlZFsyXSA9IHtDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU1BFRUR9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZzbF9pMmMgKmkyY19kZXZbMl0gPSB7Ci0JKHN0cnVjdCBmc2xfaTJjICopIChDRkdfSU1NUiArIENGR19JMkNfT0ZGU0VUKSwKLSNpZmRlZiBDRkdfSTJDMl9PRkZTRVQKLQkoc3RydWN0IGZzbF9pMmMgKikgKENGR19JTU1SICsgQ0ZHX0kyQzJfT0ZGU0VUKQorCShzdHJ1Y3QgZnNsX2kyYyAqKSAoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19JMkNfT0ZGU0VUKSwKKyNpZmRlZiBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCisJKHN0cnVjdCBmc2xfaTJjICopIChDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUKQogI2VuZGlmCiB9OwogCkBAIC0xNzYsNyArMTc2LDcgQEAKIAlzdHJ1Y3QgZnNsX2kyYyAqZGV2OwogCXVuc2lnbmVkIGludCB0ZW1wOwogCi0JZGV2ID0gKHN0cnVjdCBmc2xfaTJjICopIChDRkdfSU1NUiArIENGR19JMkNfT0ZGU0VUKTsKKwlkZXYgPSAoc3RydWN0IGZzbF9pMmMgKikgKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfSTJDX09GRlNFVCk7CiAKIAl3cml0ZWIoMCwgJmRldi0+Y3IpOwkJCS8qIHN0b3AgSTJDIGNvbnRyb2xsZXIgKi8KIAl1ZGVsYXkoNSk7CQkJCS8qIGxldCBpdCBzaHV0ZG93biBpbiBwZWFjZSAqLwpAQCAtMTg3LDggKzE4Nyw4IEBACiAJd3JpdGViKDB4MCwgJmRldi0+c3IpOwkJCS8qIGNsZWFyIHN0YXR1cyByZWdpc3RlciAqLwogCXdyaXRlYihJMkNfQ1JfTUVOLCAmZGV2LT5jcik7CQkvKiBzdGFydCBJMkMgY29udHJvbGxlciAqLwogCi0jaWZkZWYJQ0ZHX0kyQzJfT0ZGU0VUCi0JZGV2ID0gKHN0cnVjdCBmc2xfaTJjICopIChDRkdfSU1NUiArIENGR19JMkMyX09GRlNFVCk7CisjaWZkZWYJQ09ORklHX1NZU19JMkMyX09GRlNFVAorCWRldiA9IChzdHJ1Y3QgZnNsX2kyYyAqKSAoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19JMkMyX09GRlNFVCk7CiAKIAl3cml0ZWIoMCwgJmRldi0+Y3IpOwkJCS8qIHN0b3AgSTJDIGNvbnRyb2xsZXIgKi8KIAl1ZGVsYXkoNSk7CQkJCS8qIGxldCBpdCBzaHV0ZG93biBpbiBwZWFjZSAqLwpAQCAtMzg2LDcgKzM4Niw3IEBACiAKIGludCBpMmNfc2V0X2J1c19udW0odW5zaWduZWQgaW50IGJ1cykKIHsKLSNpZmRlZiBDRkdfSTJDMl9PRkZTRVQKKyNpZmRlZiBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCiAJaWYgKGJ1cyA+IDEpIHsKICNlbHNlCiAJaWYgKGJ1cyA+IDApIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL214Y19pMmMuYyBiL2RyaXZlcnMvaTJjL214Y19pMmMuYwppbmRleCAxZjZiYTFmLi5lZWRhZDA2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9teGNfaTJjLmMKKysrIGIvZHJpdmVycy9pMmMvbXhjX2kyYy5jCkBAIC00NywxNCArNDcsMTQgQEAKICNkZWZpbmUgSTJTUl9JSUYJKDEgPDwgMSkKICNkZWZpbmUgSTJTUl9SWF9OT19BSwkoMSA8PCAwKQogCi0jaWZkZWYgQ0ZHX0kyQ19NWDMxX1BPUlQxCisjaWZkZWYgQ09ORklHX1NZU19JMkNfTVgzMV9QT1JUMQogI2RlZmluZSBJMkNfQkFTRQkweDQzZjgwMDAwCi0jZWxpZiBkZWZpbmVkIChDRkdfSTJDX01YMzFfUE9SVDIpCisjZWxpZiBkZWZpbmVkIChDT05GSUdfU1lTX0kyQ19NWDMxX1BPUlQyKQogI2RlZmluZSBJMkNfQkFTRQkweDQzZjk4MDAwCi0jZWxpZiBkZWZpbmVkIChDRkdfSTJDX01YMzFfUE9SVDMpCisjZWxpZiBkZWZpbmVkIChDT05GSUdfU1lTX0kyQ19NWDMxX1BPUlQzKQogI2RlZmluZSBJMkNfQkFTRQkweDQzZjg0MDAwCiAjZWxzZQotI2Vycm9yICJkZWZpbmUgQ0ZHX0kyQ19NWDMxX1BPUlR4IHRvIHVzZSB0aGUgbXgzMSBJMkMgZHJpdmVyIgorI2Vycm9yICJkZWZpbmUgQ09ORklHX1NZU19JMkNfTVgzMV9QT1JUeCB0byB1c2UgdGhlIG14MzEgSTJDIGRyaXZlciIKICNlbmRpZgogCiAjaWZkZWYgREVCVUcKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL29tYXAxNTEwX2kyYy5jIGIvZHJpdmVycy9pMmMvb21hcDE1MTBfaTJjLmMKaW5kZXggMzg4OTUxZC4uYTRlNjIyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvb21hcDE1MTBfaTJjLmMKKysrIGIvZHJpdmVycy9pMmMvb21hcDE1MTBfaTJjLmMKQEAgLTIwNSw3ICsyMDUsNyBAQAogCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgewogCQlpZiAoaTJjX3JlYWRfYnl0ZSAoY2hpcCwgYWRkciArIGksICZidWZmZXJbaV0pKSB7CiAJCQlwcmludGYgKCJJMkMgcmVhZDogSS9PIGVycm9yXG4iKTsKLQkJCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwkJCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCQkJcmV0dXJuIDE7CiAJCX0KIAl9CkBAIC0yMzAsNyArMjMwLDcgQEAKIAlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKIAkJaWYgKGkyY193cml0ZV9ieXRlIChjaGlwLCBhZGRyICsgaSwgYnVmZmVyW2ldKSkgewogCQkJcHJpbnRmICgiSTJDIHJlYWQ6IEkvTyBlcnJvclxuIik7Ci0JCQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJCQlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAkJCXJldHVybiAxOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvb21hcDI0eHhfaTJjLmMgYi9kcml2ZXJzL2kyYy9vbWFwMjR4eF9pMmMuYwppbmRleCBkMTZjZmIxLi4xMzRkY2NiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9vbWFwMjR4eF9pMmMuYworKysgYi9kcml2ZXJzL2kyYy9vbWFwMjR4eF9pMmMuYwpAQCAtMjUyLDcgKzI1Miw3IEBACiAJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7CiAJCWlmIChpMmNfcmVhZF9ieXRlIChjaGlwLCBhZGRyICsgaSwgJmJ1ZmZlcltpXSkpIHsKIAkJCXByaW50ZiAoIkkyQyByZWFkOiBJL08gZXJyb3JcbiIpOwotCQkJaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCQkJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAJCQlyZXR1cm4gMTsKIAkJfQogCX0KQEAgLTI3Nyw3ICsyNzcsNyBAQAogCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgewogCQlpZiAoaTJjX3dyaXRlX2J5dGUgKGNoaXAsIGFkZHIgKyBpLCBidWZmZXJbaV0pKSB7CiAJCQlwcmludGYgKCJJMkMgcmVhZDogSS9PIGVycm9yXG4iKTsKLQkJCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwkJCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCQkJcmV0dXJuIDE7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9zb2Z0X2kyYy5jIGIvZHJpdmVycy9pMmMvc29mdF9pMmMuYwppbmRleCAwYTlmZWI2Li41MDhkM2Q3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9zb2Z0X2kyYy5jCisrKyBiL2RyaXZlcnMvaTJjL3NvZnRfaTJjLmMKQEAgLTc1LDcgKzc1LDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIExvY2FsIGZ1bmN0aW9ucwogICovCi0jaWYgIWRlZmluZWQoQ0ZHX0kyQ19JTklUX0JPQVJEKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfSTJDX0lOSVRfQk9BUkQpCiBzdGF0aWMgdm9pZCAgc2VuZF9yZXNldAkodm9pZCk7CiAjZW5kaWYKIHN0YXRpYyB2b2lkICBzZW5kX3N0YXJ0CSh2b2lkKTsKQEAgLTg0LDcgKzg0LDcgQEAKIHN0YXRpYyBpbnQgICB3cml0ZV9ieXRlCSh1Y2hhciBieXRlKTsKIHN0YXRpYyB1Y2hhciByZWFkX2J5dGUJKGludCk7CiAKLSNpZiAhZGVmaW5lZChDRkdfSTJDX0lOSVRfQk9BUkQpCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19JMkNfSU5JVF9CT0FSRCkKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlbmQgYSByZXNldCBzZXF1ZW5jZSBjb25zaXN0aW5nIG9mIDkgY2xvY2tzIHdpdGggdGhlIGRhdGEgc2lnbmFsIGhpZ2gKICAqIHRvIGNsb2NrIGFueSBjb25mdXNlZCBkZXZpY2UgYmFjayBpbnRvIGFuIGlkbGUgc3RhdGUuICBBbHNvIHNlbmQgYQpAQCAtMjI0LDcgKzIyNCw3IEBACiBpbnQgaTJjX3NldF9idXNfbnVtKHVuc2lnbmVkIGludCBidXMpCiB7CiAjaWYgZGVmaW5lZChDT05GSUdfSTJDX01VWCkKLQlpZiAoYnVzIDwgQ0ZHX01BWF9JMkNfQlVTKSB7CisJaWYgKGJ1cyA8IENPTkZJR19TWVNfTUFYX0kyQ19CVVMpIHsKIAkJaTJjX2J1c19udW0gPSBidXM7CiAJfSBlbHNlIHsKIAkJaW50CXJldDsKQEAgLTIzNiw3ICsyMzYsNyBAQAogCQkJcmV0dXJuIHJldDsKIAl9CiAjZWxzZQotCWlmIChidXMgPj0gQ0ZHX01BWF9JMkNfQlVTKQorCWlmIChidXMgPj0gQ09ORklHX1NZU19NQVhfSTJDX0JVUykKIAkJcmV0dXJuIC0xOwogCWkyY19idXNfbnVtID0gYnVzOwogI2VuZGlmCkBAIC0yNDYsMTIgKzI0NiwxMiBAQAogLyogVE9ETzogYWRkIDEwMC80MDBrIHN3aXRjaGluZyAqLwogdW5zaWduZWQgaW50IGkyY19nZXRfYnVzX3NwZWVkKHZvaWQpCiB7Ci0JcmV0dXJuIENGR19JMkNfU1BFRUQ7CisJcmV0dXJuIENPTkZJR19TWVNfSTJDX1NQRUVEOwogfQogCiBpbnQgaTJjX3NldF9idXNfc3BlZWQodW5zaWduZWQgaW50IHNwZWVkKQogewotCWlmIChzcGVlZCAhPSBDRkdfSTJDX1NQRUVEKQorCWlmIChzcGVlZCAhPSBDT05GSUdfU1lTX0kyQ19TUEVFRCkKIAkJcmV0dXJuIC0xOwogCiAJcmV0dXJuIDA7CkBAIC0yOTcsNyArMjk3LDcgQEAKICAqLwogdm9pZCBpMmNfaW5pdCAoaW50IHNwZWVkLCBpbnQgc2xhdmVhZGRyKQogewotI2lmIGRlZmluZWQoQ0ZHX0kyQ19JTklUX0JPQVJEKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JMkNfSU5JVF9CT0FSRCkKIAkvKiBjYWxsIGJvYXJkIHNwZWNpZmljIGkyYyBidXMgcmVzZXQgcm91dGluZSBiZWZvcmUgYWNjZXNzaW5nIHRoZSAgICovCiAJLyogZW52aXJvbm1lbnQsIHdoaWNoIG1pZ2h0IGJlIGluIGEgY2hpcCBvbiB0aGF0IGJ1cy4gRm9yIGRldGFpbHMgICAqLwogCS8qIGFib3V0IHRoaXMgcHJvYmxlbSBzZWUgZG9jL0kyQ19FZGdlX0NvbmRpdGlvbnMuICAgICAgICAgICAgICAgICAgKi8KQEAgLTM0Miw3ICszNDIsNyBAQAogCVBSSU5URCgiaTJjX3JlYWQ6IGNoaXAgJTAyWCBhZGRyICUwMlggYWxlbiAlZCBidWZmZXIgJXAgbGVuICVkXG4iLAogCQljaGlwLCBhZGRyLCBhbGVuLCBidWZmZXIsIGxlbik7CiAKLSNpZmRlZiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCisjaWZkZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKIAkvKgogCSAqIEVFUFJPTSBjaGlwcyB0aGF0IGltcGxlbWVudCAiYWRkcmVzcyBvdmVyZmxvdyIgYXJlIG9uZXMKIAkgKiBsaWtlIENhdGFseXN0IDI0V0MwNC8wOC8xNiB3aGljaCBoYXMgOS8xMC8xMSBiaXRzIG9mCkBAIC0zNTQsNyArMzU0LDcgQEAKIAkgKiBzdGlsbCBiZSBvbmUgYnl0ZSBiZWNhdXNlIHRoZSBleHRyYSBhZGRyZXNzIGJpdHMgYXJlCiAJICogaGlkZGVuIGluIHRoZSBjaGlwIGFkZHJlc3MuCiAJICovCi0JY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKKwljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKIAogCVBSSU5URCgiaTJjX3JlYWQ6IGZpeCBhZGRyX292ZXJmbG93OiBjaGlwICUwMlggYWRkciAlMDJYXG4iLAogCQljaGlwLCBhZGRyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL3RzaTEwOF9pMmMuYyBiL2RyaXZlcnMvaTJjL3RzaTEwOF9pMmMuYwppbmRleCA2OTVlMzkzLi5mZGE4MjJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy90c2kxMDhfaTJjLmMKKysrIGIvZHJpdmVycy9pMmMvdHNpMTA4X2kyYy5jCkBAIC02MCwxNCArNjAsMTQgQEAKIAkJY2hhbl9vZmZzZXQgPSBUU0kxMDhfSTJDX1NEUkFNX09GRlNFVDsKIAogCS8qIENoZWNrIGlmIEkyQyBvcGVyYXRpb24gaXMgaW4gcHJvZ3Jlc3MgKi8KLQl0ZW1wID0gKih1MzIgKikgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBjaGFuX29mZnNldCArIEkyQ19DTlRSTDIpOworCXRlbXAgPSAqKHUzMiAqKSAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBjaGFuX29mZnNldCArIEkyQ19DTlRSTDIpOwogCiAJaWYgKDAgPT0gKHRlbXAgJiAoSTJDX0NOVFJMMl9SRF9TVEFUVVMgfCBJMkNfQ05UUkwyX1dSX1NUQVRVUyB8CiAJCQkgIEkyQ19DTlRSTDJfU1RBUlQpKSkgewogCQkvKiBTZXQgZGV2aWNlIGFkZHJlc3MgYW5kIG9wZXJhdGlvbiAocmVhZCA9IDApICovCiAJCXRlbXAgPSAoYnl0ZV9hZGRyIDw8IDE2KSB8ICgoY2hpcF9hZGRyICYgMHgwNykgPDwgOCkgfAogCQkgICAgKChjaGlwX2FkZHIgPj4gMykgJiAweDBGKTsKLQkJKih1MzIgKikgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBjaGFuX29mZnNldCArIEkyQ19DTlRSTDEpID0KKwkJKih1MzIgKikgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgY2hhbl9vZmZzZXQgKyBJMkNfQ05UUkwxKSA9CiAJCSAgICB0ZW1wOwogCiAJCS8qIElzc3VlIHRoZSByZWFkIGNvbW1hbmQKQEAgLTc1LDEzICs3NSwxMyBAQAogCQkgKiAoc2l6ZSA9IDEgYnl0ZSwgbGFuZSA9IDApCiAJCSAqLwogCi0JCSoodTMyICopIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgY2hhbl9vZmZzZXQgKyBJMkNfQ05UUkwyKSA9CisJCSoodTMyICopIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIGNoYW5fb2Zmc2V0ICsgSTJDX0NOVFJMMikgPQogCQkgICAgKEkyQ19DTlRSTDJfU1RBUlQpOwogCiAJCS8qIFdhaXQgdW50aWwgb3BlcmF0aW9uIGNvbXBsZXRlZCAqLwogCQlkbyB7CiAJCQkvKiBSZWFkIEkyQyBvcGVyYXRpb24gc3RhdHVzICovCi0JCQl0ZW1wID0gKih1MzIgKikgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBjaGFuX29mZnNldCArIEkyQ19DTlRSTDIpOworCQkJdGVtcCA9ICoodTMyICopIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIGNoYW5fb2Zmc2V0ICsgSTJDX0NOVFJMMik7CiAKIAkJCWlmICgwID09ICh0ZW1wICYgKEkyQ19DTlRSTDJfUkRfU1RBVFVTIHwgSTJDX0NOVFJMMl9TVEFSVCkpKSB7CiAJCQkJaWYgKDAgPT0gKHRlbXAgJgpAQCAtOTAsNyArOTAsNyBAQAogCQkJCSAgICApIHsKIAkJCQkJb3Bfc3RhdHVzID0gVFNJMTA4X0kyQ19TVUNDRVNTOwogCi0JCQkJCXRlbXAgPSAqKHUzMiAqKSAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArCisJCQkJCXRlbXAgPSAqKHUzMiAqKSAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKwogCQkJCQkJCSBjaGFuX29mZnNldCArCiAJCQkJCQkJIEkyQ19SRF9EQVRBKTsKIApAQCAtMTcyLDI1ICsxNzIsMjUgQEAKIAl1MzIgb3Bfc3RhdHVzID0gVFNJMTA4X0kyQ19USU1FT1VUX0VSUjsKIAogCS8qIENoZWNrIGlmIEkyQyBvcGVyYXRpb24gaXMgaW4gcHJvZ3Jlc3MgKi8KLQl0ZW1wID0gKih1MzIgKikgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSTJDX09GRlNFVCArIEkyQ19DTlRSTDIpOworCXRlbXAgPSAqKHUzMiAqKSAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSTJDX09GRlNFVCArIEkyQ19DTlRSTDIpOwogCiAJaWYgKDAgPT0gKHRlbXAgJiAoSTJDX0NOVFJMMl9SRF9TVEFUVVMgfCBJMkNfQ05UUkwyX1dSX1NUQVRVUyB8IEkyQ19DTlRSTDJfU1RBUlQpKSkgewogCQkvKiBQbGFjZSBkYXRhIGludG8gdGhlIEkyQyBUeCBSZWdpc3RlciAqLwotCQkqKHUzMiAqKSAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9JMkNfT0ZGU0VUICsKKwkJKih1MzIgKikgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0kyQ19PRkZTRVQgKwogCQkJICBJMkNfVFhfREFUQSkgPSAodTMyKSAqIGJ1ZmZlcjsKIAogCQkvKiBTZXQgZGV2aWNlIGFkZHJlc3MgYW5kIG9wZXJhdGlvbiAgKi8KIAkJdGVtcCA9CiAJCSAgICBJMkNfQ05UUkwxX0kyQ1dSSVRFIHwgKGJ5dGVfYWRkciA8PCAxNikgfAogCQkgICAgKChjaGlwX2FkZHIgJiAweDA3KSA8PCA4KSB8ICgoY2hpcF9hZGRyID4+IDMpICYgMHgwRik7Ci0JCSoodTMyICopIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0kyQ19PRkZTRVQgKworCQkqKHUzMiAqKSAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSTJDX09GRlNFVCArCiAJCQkgIEkyQ19DTlRSTDEpID0gdGVtcDsKIAogCQkvKiBJc3N1ZSB0aGUgd3JpdGUgY29tbWFuZCAoYXQgdGhpcyBtb21lbnQgYWxsIG90aGVyIHBhcmFtZXRlcnMKIAkJICogYXJlIDAgKHNpemUgPSAxIGJ5dGUsIGxhbmUgPSAwKQogCQkgKi8KIAotCQkqKHUzMiAqKSAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9JMkNfT0ZGU0VUICsKKwkJKih1MzIgKikgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0kyQ19PRkZTRVQgKwogCQkJICBJMkNfQ05UUkwyKSA9IChJMkNfQ05UUkwyX1NUQVJUKTsKIAogCQlvcF9zdGF0dXMgPSBUU0kxMDhfSTJDX1RJTUVPVVRfRVJSOwpAQCAtMTk4LDcgKzE5OCw3IEBACiAJCS8qIFdhaXQgdW50aWwgb3BlcmF0aW9uIGNvbXBsZXRlZCAqLwogCQlkbyB7CiAJCQkvKiBSZWFkIEkyQyBvcGVyYXRpb24gc3RhdHVzICovCi0JCQl0ZW1wID0gKih1MzIgKikgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSTJDX09GRlNFVCArIEkyQ19DTlRSTDIpOworCQkJdGVtcCA9ICoodTMyICopIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9JMkNfT0ZGU0VUICsgSTJDX0NOVFJMMik7CiAKIAkJCWlmICgwID09ICh0ZW1wICYgKEkyQ19DTlRSTDJfV1JfU1RBVFVTIHwgSTJDX0NOVFJMMl9TVEFSVCkpKSB7CiAJCQkJaWYgKDAgPT0gKHRlbXAgJgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9pODA0Mi5jIGIvZHJpdmVycy9pbnB1dC9pODA0Mi5jCmluZGV4IGQxNTI3NjguLjU4MDk0YzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvaTgwNDIuYworKysgYi9kcml2ZXJzL2lucHV0L2k4MDQyLmMKQEAgLTQxLDcgKzQxLDcgQEAKIAogI2lmZGVmIENPTkZJR19DT05TT0xFX0NVUlNPUgogZXh0ZXJuIHZvaWQgY29uc29sZV9jdXJzb3IgKGludCBzdGF0ZSk7Ci1zdGF0aWMgaW50IGJsaW5rQ291bnQgPSBDRkdfQ09OU09MRV9CTElOS19DT1VOVDsKK3N0YXRpYyBpbnQgYmxpbmtDb3VudCA9IENPTkZJR19TWVNfQ09OU09MRV9CTElOS19DT1VOVDsKIHN0YXRpYyBpbnQgY3Vyc29yX3N0YXRlID0gMDsKICNlbmRpZgogCkBAIC0zNjgsNyArMzY4LDcgQEAKICAgICB7CiAJY3Vyc29yX3N0YXRlIF49IDE7CiAJY29uc29sZV9jdXJzb3IgKGN1cnNvcl9zdGF0ZSk7Ci0JYmxpbmtDb3VudCA9IENGR19DT05TT0xFX0JMSU5LX0NPVU5UOworCWJsaW5rQ291bnQgPSBDT05GSUdfU1lTX0NPTlNPTEVfQkxJTktfQ09VTlQ7CiAJdWRlbGF5ICgxMCk7CiAgICAgfQogI2VuZGlmCkBAIC00MDksNyArNDA5LDcgQEAKIAkgICAgewogCQljdXJzb3Jfc3RhdGUgXj0gMTsKIAkJY29uc29sZV9jdXJzb3IgKGN1cnNvcl9zdGF0ZSk7Ci0JCWJsaW5rQ291bnQgPSBDRkdfQ09OU09MRV9CTElOS19DT1VOVDsKKwkJYmxpbmtDb3VudCA9IENPTkZJR19TWVNfQ09OU09MRV9CTElOS19DT1VOVDsKIAkgICAgfQogCSAgICB1ZGVsYXkgKDEwKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC5jIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC5jCmluZGV4IGE2MzRkNzYuLjUxMmI5ZjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQuYworKysgYi9kcml2ZXJzL2lucHV0L2tleWJvYXJkLmMKQEAgLTI1OCwxMiArMjU4LDEyIEBACiAgKiBJbml0CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jaWZkZWYgQ0ZHX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUKKyNpZmRlZiBDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUKIGV4dGVybiBpbnQgb3ZlcndyaXRlX2NvbnNvbGUgKHZvaWQpOwogI2RlZmluZSBPVkVSV1JJVEVfQ09OU09MRSBvdmVyd3JpdGVfY29uc29sZSAoKQogI2Vsc2UKICNkZWZpbmUgT1ZFUldSSVRFX0NPTlNPTEUgMAotI2VuZGlmIC8qIENGR19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FICovCisjZW5kaWYgLyogQ09ORklHX1NZU19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FICovCiAKIGludCBrYmRfaW5pdCAodm9pZCkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvcHMyc2VyLmMgYi9kcml2ZXJzL2lucHV0L3BzMnNlci5jCmluZGV4IDQ4MGZmYTIuLjFhZjNmZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvcHMyc2VyLmMKKysrIGIvZHJpdmVycy9pbnB1dC9wczJzZXIuYwpAQCAtMTgsNyArMTgsNyBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KICNpbmNsdWRlIDxwczJtdWx0Lmg+Ci0jaWYgZGVmaW5lZChDRkdfTlMxNjU1MCkgfHwgZGVmaW5lZChDT05GSUdfTVBDODV4eCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MCkgfHwgZGVmaW5lZChDT05GSUdfTVBDODV4eCkKICNpbmNsdWRlIDxuczE2NTUwLmg+CiAjZW5kaWYKIApAQCAtNTEsOSArNTEsOSBAQAogICAgICAgZGVmaW5lZChDT05GSUdfTVBDODU0OCkgfHwgZGVmaW5lZChDT05GSUdfTVBDODU1NSkKIAogI2lmIENPTkZJR19QUzJTRVJJQUwgPT0gMQotI2RlZmluZSBDT01fQkFTRSAoQ0ZHX0NDU1JCQVIrMHg0NTAwKQorI2RlZmluZSBDT01fQkFTRSAoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKICNlbGlmIENPTkZJR19QUzJTRVJJQUwgPT0gMgotI2RlZmluZSBDT01fQkFTRSAoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT01fQkFTRSAoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDYwMCkKICNlbHNlCiAjZXJyb3IgQ09ORklHX1BTMlNFUklBTCBtdXN0IGJlIGluIDEgLi4uIDIKICNlbmRpZgpAQCAtODgsNyArODgsNyBAQAogCS8qIHNlbGVjdCBjbG9jayBzb3VyY2VzICovCiAjaWYgZGVmaW5lZChDT05GSUdfTUdUNTEwMCkKIAlwc2MtPnBzY19jbG9ja19zZWxlY3QgPSAweGRkMDA7Ci0JYmFzZWNsayA9IChDRkdfTVBDNVhYWF9DTEtJTiArIDE2KSAvIDMyOworCWJhc2VjbGsgPSAoQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOICsgMTYpIC8gMzI7CiAjZWxpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQogCXBzYy0+cHNjX2Nsb2NrX3NlbGVjdCA9IDA7CiAJYmFzZWNsayA9IChnZC0+aXBiX2NsayArIDE2KSAvIDMyOwpAQCAtMTI5LDggKzEyOSw4IEBACiAKIAljb21fcG9ydC0+aWVyID0gMHgwMDsKIAljb21fcG9ydC0+bGNyID0gTENSX0JLU0UgfCBMQ1JfOE4xOwotCWNvbV9wb3J0LT5kbGwgPSAoQ0ZHX05TMTY1NTBfQ0xLIC8gMTYgLyBQUzJTRVJfQkFVRCkgJiAweGZmOwotCWNvbV9wb3J0LT5kbG0gPSAoKENGR19OUzE2NTUwX0NMSyAvIDE2IC8gUFMyU0VSX0JBVUQpID4+IDgpICYgMHhmZjsKKwljb21fcG9ydC0+ZGxsID0gKENPTkZJR19TWVNfTlMxNjU1MF9DTEsgLyAxNiAvIFBTMlNFUl9CQVVEKSAmIDB4ZmY7CisJY29tX3BvcnQtPmRsbSA9ICgoQ09ORklHX1NZU19OUzE2NTUwX0NMSyAvIDE2IC8gUFMyU0VSX0JBVUQpID4+IDgpICYgMHhmZjsKIAljb21fcG9ydC0+bGNyID0gTENSXzhOMTsKIAljb21fcG9ydC0+bWNyID0gKE1DUl9EVFIgfCBNQ1JfUlRTKTsKIAljb21fcG9ydC0+ZmNyID0gKEZDUl9GSUZPX0VOIHwgRkNSX1JYU1IgfCBGQ1JfVFhTUik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvZnNsX2xhdy5jIGIvZHJpdmVycy9taXNjL2ZzbF9sYXcuYwppbmRleCAyZTk0NjE0Li42NGRmMWM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2MvZnNsX2xhdy5jCisrKyBiL2RyaXZlcnMvbWlzYy9mc2xfbGF3LmMKQEAgLTQ2LDcgKzQ2LDcgQEAKIAogdm9pZCBzZXRfbGF3KHU4IGlkeCwgcGh5c19hZGRyX3QgYWRkciwgZW51bSBsYXdfc2l6ZSBzeiwgZW51bSBsYXdfdHJndF9pZiBpZCkKIHsKLQl2b2xhdGlsZSB1MzIgKmJhc2UgPSAodm9sYXRpbGUgdTMyICopKENGR19JTU1SICsgMHhjMDgpOworCXZvbGF0aWxlIHUzMiAqYmFzZSA9ICh2b2xhdGlsZSB1MzIgKikoQ09ORklHX1NZU19JTU1SICsgMHhjMDgpOwogCXZvbGF0aWxlIHUzMiAqbGF3YmFyID0gYmFzZSArIDggKiBpZHg7CiAJdm9sYXRpbGUgdTMyICpsYXdhciA9IGJhc2UgKyA4ICogaWR4ICsgMjsKIApAQCAtOTEsNyArOTEsNyBAQAogCiB2b2lkIGRpc2FibGVfbGF3KHU4IGlkeCkKIHsKLQl2b2xhdGlsZSB1MzIgKmJhc2UgPSAodm9sYXRpbGUgdTMyICopKENGR19JTU1SICsgMHhjMDgpOworCXZvbGF0aWxlIHUzMiAqYmFzZSA9ICh2b2xhdGlsZSB1MzIgKikoQ09ORklHX1NZU19JTU1SICsgMHhjMDgpOwogCXZvbGF0aWxlIHUzMiAqbGF3YmFyID0gYmFzZSArIDggKiBpZHg7CiAJdm9sYXRpbGUgdTMyICpsYXdhciA9IGJhc2UgKyA4ICogaWR4ICsgMjsKIApAQCAtMTA1LDcgKzEwNSw3IEBACiAKIHZvaWQgcHJpbnRfbGF3cyh2b2lkKQogewotCXZvbGF0aWxlIHUzMiAqYmFzZSA9ICh2b2xhdGlsZSB1MzIgKikoQ0ZHX0lNTVIgKyAweGMwOCk7CisJdm9sYXRpbGUgdTMyICpiYXNlID0gKHZvbGF0aWxlIHUzMiAqKShDT05GSUdfU1lTX0lNTVIgKyAweGMwOCk7CiAJdm9sYXRpbGUgdTMyICpsYXdiYXIgPSBiYXNlOwogCXZvbGF0aWxlIHUzMiAqbGF3YXIgPSBiYXNlICsgMjsKIAlpbnQgaTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9uczg3MzA4LmMgYi9kcml2ZXJzL21pc2MvbnM4NzMwOC5jCmluZGV4IDY2NDJjMmUuLjkxMzBhMWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9uczg3MzA4LmMKKysrIGIvZHJpdmVycy9taXNjL25zODczMDguYwpAQCAtMjcsNyArMjcsNyBAQAogCiB2b2lkIGluaXRpYWxpc2VfbnM4NzMwOCAodm9pZCkKIHsKLSNpZmRlZiBDRkdfTlM4NzMwOF9QUzJNT0QKKyNpZmRlZiBDT05GSUdfU1lTX05TODczMDhfUFMyTU9ECiAJdW5zaWduZWQgY2hhciBkYXRhOwogCiAJLyoKQEAgLTM4LDgwICszOCw4MCBAQAogCXdyaXRlX3BucF9jb25maWcoU1VQT0VSSU9fQ09ORjEsIGRhdGEpOwogI2VuZGlmCiAKLSNpZiAoQ0ZHX05TODczMDhfREVWUyAmIENGR19OUzg3MzA4X0tCQzEpCi0JUE5QX1NFVF9ERVZJQ0VfQkFTRShMREVWX0tCQzEsIENGR19OUzg3MzA4X0tCQzFfQkFTRSk7CisjaWYgKENPTkZJR19TWVNfTlM4NzMwOF9ERVZTICYgQ09ORklHX1NZU19OUzg3MzA4X0tCQzEpCisJUE5QX1NFVF9ERVZJQ0VfQkFTRShMREVWX0tCQzEsIENPTkZJR19TWVNfTlM4NzMwOF9LQkMxX0JBU0UpOwogCXdyaXRlX3BucF9jb25maWcoTFVOX0NPTkZJR19SRUcsIDApOwogCXdyaXRlX3BucF9jb25maWcoQ0JBU0VfSElHSCwgMHgwMCk7CiAJd3JpdGVfcG5wX2NvbmZpZyhDQkFTRV9MT1csIDB4NjQpOwogI2VuZGlmCiAKLSNpZiAoQ0ZHX05TODczMDhfREVWUyAmIENGR19OUzg3MzA4X01PVVNFKQorI2lmIChDT05GSUdfU1lTX05TODczMDhfREVWUyAmIENPTkZJR19TWVNfTlM4NzMwOF9NT1VTRSkKIAlQTlBfQUNUSVZBVEVfREVWSUNFKExERVZfTU9VU0UpOwogI2VuZGlmCiAKLSNpZiAoQ0ZHX05TODczMDhfREVWUyAmIENGR19OUzg3MzA4X1JUQ19BUEMpCi0JUE5QX1NFVF9ERVZJQ0VfQkFTRShMREVWX1JUQ19BUEMsIENGR19OUzg3MzA4X1JUQ19CQVNFKTsKKyNpZiAoQ09ORklHX1NZU19OUzg3MzA4X0RFVlMgJiBDT05GSUdfU1lTX05TODczMDhfUlRDX0FQQykKKwlQTlBfU0VUX0RFVklDRV9CQVNFKExERVZfUlRDX0FQQywgQ09ORklHX1NZU19OUzg3MzA4X1JUQ19CQVNFKTsKICNlbmRpZgogCi0jaWYgKENGR19OUzg3MzA4X0RFVlMgJiBDRkdfTlM4NzMwOF9GREMpCi0JUE5QX1NFVF9ERVZJQ0VfQkFTRShMREVWX0ZEQywgQ0ZHX05TODczMDhfRkRDX0JBU0UpOworI2lmIChDT05GSUdfU1lTX05TODczMDhfREVWUyAmIENPTkZJR19TWVNfTlM4NzMwOF9GREMpCisJUE5QX1NFVF9ERVZJQ0VfQkFTRShMREVWX0ZEQywgQ09ORklHX1NZU19OUzg3MzA4X0ZEQ19CQVNFKTsKIAl3cml0ZV9wbnBfY29uZmlnKExVTl9DT05GSUdfUkVHLCAweDQwKTsKICNlbmRpZgogCi0jaWYgKENGR19OUzg3MzA4X0RFVlMgJiBDRkdfTlM4NzMwOF9SQVJQKQotCVBOUF9TRVRfREVWSUNFX0JBU0UoTERFVl9QQVJQLCBDRkdfTlM4NzMwOF9MUFRfQkFTRSk7CisjaWYgKENPTkZJR19TWVNfTlM4NzMwOF9ERVZTICYgQ09ORklHX1NZU19OUzg3MzA4X1JBUlApCisJUE5QX1NFVF9ERVZJQ0VfQkFTRShMREVWX1BBUlAsIENPTkZJR19TWVNfTlM4NzMwOF9MUFRfQkFTRSk7CiAjZW5kaWYKIAotI2lmIChDRkdfTlM4NzMwOF9ERVZTICYgQ0ZHX05TODczMDhfVUFSVDEpCi0JUE5QX1NFVF9ERVZJQ0VfQkFTRShMREVWX1VBUlQxLCBDRkdfTlM4NzMwOF9VQVJUMV9CQVNFKTsKKyNpZiAoQ09ORklHX1NZU19OUzg3MzA4X0RFVlMgJiBDT05GSUdfU1lTX05TODczMDhfVUFSVDEpCisJUE5QX1NFVF9ERVZJQ0VfQkFTRShMREVWX1VBUlQxLCBDT05GSUdfU1lTX05TODczMDhfVUFSVDFfQkFTRSk7CiAjZW5kaWYKIAotI2lmIChDRkdfTlM4NzMwOF9ERVZTICYgQ0ZHX05TODczMDhfVUFSVDIpCi0JUE5QX1NFVF9ERVZJQ0VfQkFTRShMREVWX1VBUlQyLCBDRkdfTlM4NzMwOF9VQVJUMl9CQVNFKTsKKyNpZiAoQ09ORklHX1NZU19OUzg3MzA4X0RFVlMgJiBDT05GSUdfU1lTX05TODczMDhfVUFSVDIpCisJUE5QX1NFVF9ERVZJQ0VfQkFTRShMREVWX1VBUlQyLCBDT05GSUdfU1lTX05TODczMDhfVUFSVDJfQkFTRSk7CiAjZW5kaWYKIAotI2lmIChDRkdfTlM4NzMwOF9ERVZTICYgQ0ZHX05TODczMDhfR1BJTykKLQlQTlBfU0VUX0RFVklDRV9CQVNFKExERVZfR1BJTywgQ0ZHX05TODczMDhfR1BJT19CQVNFKTsKKyNpZiAoQ09ORklHX1NZU19OUzg3MzA4X0RFVlMgJiBDT05GSUdfU1lTX05TODczMDhfR1BJTykKKwlQTlBfU0VUX0RFVklDRV9CQVNFKExERVZfR1BJTywgQ09ORklHX1NZU19OUzg3MzA4X0dQSU9fQkFTRSk7CiAjZW5kaWYKIAotI2lmIChDRkdfTlM4NzMwOF9ERVZTICYgQ0ZHX05TODczMDhfUE9XUk1BTikKLSNpZm5kZWYgQ0ZHX05TODczMDhfUFdNQU5fQkFTRQorI2lmIChDT05GSUdfU1lTX05TODczMDhfREVWUyAmIENPTkZJR19TWVNfTlM4NzMwOF9QT1dSTUFOKQorI2lmbmRlZiBDT05GSUdfU1lTX05TODczMDhfUFdNQU5fQkFTRQogCVBOUF9BQ1RJVkFURV9ERVZJQ0UoTERFVl9QT1dSTUFOKTsKICNlbHNlCi0JUE5QX1NFVF9ERVZJQ0VfQkFTRShMREVWX1BPV1JNQU4sIENGR19OUzg3MzA4X1BXTUFOX0JBU0UpOworCVBOUF9TRVRfREVWSUNFX0JBU0UoTERFVl9QT1dSTUFOLCBDT05GSUdfU1lTX05TODczMDhfUFdNQU5fQkFTRSk7CiAKIAkvKgogCSAqIEVuYWJsZSBhbGwgdW5pdHMKIAkgKi8KLQl3cml0ZV9wbV9yZWcoQ0ZHX05TODczMDhfUFdNQU5fQkFTRSwgUFdNX0ZFUjEsIDB4N2QpOwotCXdyaXRlX3BtX3JlZyhDRkdfTlM4NzMwOF9QV01BTl9CQVNFLCBQV01fRkVSMiwgMHg4Nyk7CisJd3JpdGVfcG1fcmVnKENPTkZJR19TWVNfTlM4NzMwOF9QV01BTl9CQVNFLCBQV01fRkVSMSwgMHg3ZCk7CisJd3JpdGVfcG1fcmVnKENPTkZJR19TWVNfTlM4NzMwOF9QV01BTl9CQVNFLCBQV01fRkVSMiwgMHg4Nyk7CiAKLSNpZmRlZiBDRkdfTlM4NzMwOF9QTUMxCi0Jd3JpdGVfcG1fcmVnKENGR19OUzg3MzA4X1BXTUFOX0JBU0UsIFBXTV9QTUMxLCBDRkdfTlM4NzMwOF9QTUMxKTsKKyNpZmRlZiBDT05GSUdfU1lTX05TODczMDhfUE1DMQorCXdyaXRlX3BtX3JlZyhDT05GSUdfU1lTX05TODczMDhfUFdNQU5fQkFTRSwgUFdNX1BNQzEsIENPTkZJR19TWVNfTlM4NzMwOF9QTUMxKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX05TODczMDhfUE1DMgotCXdyaXRlX3BtX3JlZyhDRkdfTlM4NzMwOF9QV01BTl9CQVNFLCBQV01fUE1DMiwgQ0ZHX05TODczMDhfUE1DMik7CisjaWZkZWYgQ09ORklHX1NZU19OUzg3MzA4X1BNQzIKKwl3cml0ZV9wbV9yZWcoQ09ORklHX1NZU19OUzg3MzA4X1BXTUFOX0JBU0UsIFBXTV9QTUMyLCBDT05GSUdfU1lTX05TODczMDhfUE1DMik7CiAjZW5kaWYKIAotI2lmZGVmIENGR19OUzg3MzA4X1BNQzMKLQl3cml0ZV9wbV9yZWcoQ0ZHX05TODczMDhfUFdNQU5fQkFTRSwgUFdNX1BNQzMsIENGR19OUzg3MzA4X1BNQzMpOworI2lmZGVmIENPTkZJR19TWVNfTlM4NzMwOF9QTUMzCisJd3JpdGVfcG1fcmVnKENPTkZJR19TWVNfTlM4NzMwOF9QV01BTl9CQVNFLCBQV01fUE1DMywgQ09ORklHX1NZU19OUzg3MzA4X1BNQzMpOwogI2VuZGlmCiAjZW5kaWYKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX05TODczMDhfQ1MwX0JBU0UKLQlQTlBfUEdDU19DU0xJTkVfQkFTRSgwLCBDRkdfTlM4NzMwOF9DUzBfQkFTRSk7Ci0JUE5QX1BHQ1NfQ1NMSU5FX0NPTkYoMCwgQ0ZHX05TODczMDhfQ1MwX0NPTkYpOworI2lmZGVmIENPTkZJR19TWVNfTlM4NzMwOF9DUzBfQkFTRQorCVBOUF9QR0NTX0NTTElORV9CQVNFKDAsIENPTkZJR19TWVNfTlM4NzMwOF9DUzBfQkFTRSk7CisJUE5QX1BHQ1NfQ1NMSU5FX0NPTkYoMCwgQ09ORklHX1NZU19OUzg3MzA4X0NTMF9DT05GKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX05TODczMDhfQ1MxX0JBU0UKLQlQTlBfUEdDU19DU0xJTkVfQkFTRSgxLCBDRkdfTlM4NzMwOF9DUzFfQkFTRSk7Ci0JUE5QX1BHQ1NfQ1NMSU5FX0NPTkYoMSwgQ0ZHX05TODczMDhfQ1MxX0NPTkYpOworI2lmZGVmIENPTkZJR19TWVNfTlM4NzMwOF9DUzFfQkFTRQorCVBOUF9QR0NTX0NTTElORV9CQVNFKDEsIENPTkZJR19TWVNfTlM4NzMwOF9DUzFfQkFTRSk7CisJUE5QX1BHQ1NfQ1NMSU5FX0NPTkYoMSwgQ09ORklHX1NZU19OUzg3MzA4X0NTMV9DT05GKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX05TODczMDhfQ1MyX0JBU0UKLQlQTlBfUEdDU19DU0xJTkVfQkFTRSgyLCBDRkdfTlM4NzMwOF9DUzJfQkFTRSk7Ci0JUE5QX1BHQ1NfQ1NMSU5FX0NPTkYoMiwgQ0ZHX05TODczMDhfQ1MyX0NPTkYpOworI2lmZGVmIENPTkZJR19TWVNfTlM4NzMwOF9DUzJfQkFTRQorCVBOUF9QR0NTX0NTTElORV9CQVNFKDIsIENPTkZJR19TWVNfTlM4NzMwOF9DUzJfQkFTRSk7CisJUE5QX1BHQ1NfQ1NMSU5FX0NPTkYoMiwgQ09ORklHX1NZU19OUzg3MzA4X0NTMl9DT05GKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvYXRtZWxfbWNpLmMgYi9kcml2ZXJzL21tYy9hdG1lbF9tY2kuYwppbmRleCBhMTUxNDg4Li4zYWE5MmYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL21tYy9hdG1lbF9tY2kuYworKysgYi9kcml2ZXJzL21tYy9hdG1lbF9tY2kuYwpAQCAtMzgsMTYgKzM4LDE2IEBACiAjZGVmaW5lIHByX2RlYnVnKC4uLikgZG8geyB9IHdoaWxlKDApCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfTU1DX0NMS19PRAotI2RlZmluZSBDRkdfTU1DX0NMS19PRAkJMTUwMDAwCisjaWZuZGVmIENPTkZJR19TWVNfTU1DX0NMS19PRAorI2RlZmluZSBDT05GSUdfU1lTX01NQ19DTEtfT0QJCTE1MDAwMAogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX01NQ19DTEtfUFAKLSNkZWZpbmUgQ0ZHX01NQ19DTEtfUFAJCTUwMDAwMDAKKyNpZm5kZWYgQ09ORklHX1NZU19NTUNfQ0xLX1BQCisjZGVmaW5lIENPTkZJR19TWVNfTU1DX0NMS19QUAkJNTAwMDAwMAogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX01NQ19PUF9DT05ECi0jZGVmaW5lIENGR19NTUNfT1BfQ09ORAkJMHgwMDEwMDAwMAorI2lmbmRlZiBDT05GSUdfU1lTX01NQ19PUF9DT05ECisjZGVmaW5lIENPTkZJR19TWVNfTU1DX09QX0NPTkQJCTB4MDAxMDAwMDAKICNlbmRpZgogCiAjZGVmaW5lIE1NQ19ERUZBVUxUX0JMS0xFTgk1MTIKQEAgLTM0OSw3ICszNDksNyBAQAogCiAJbW1jX2lkbGVfY2FyZHMoKTsKIAlmb3IgKGkgPSAwOyBpIDwgMTAwMDsgaSsrKSB7Ci0JCXJldCA9IG1tY19hY21kKFNEX0NNRF9BUFBfU0VORF9PUF9DT05ELCBDRkdfTU1DX09QX0NPTkQsCisJCXJldCA9IG1tY19hY21kKFNEX0NNRF9BUFBfU0VORF9PUF9DT05ELCBDT05GSUdfU1lTX01NQ19PUF9DT05ELAogCQkJICAgICAgIHJlc3AsIFIzIHwgTklEKTsKIAkJaWYgKHJldCB8fCAocmVzcFswXSAmIDB4ODAwMDAwMDApKQogCQkJYnJlYWs7CkBAIC0zODUsNyArMzg1LDcgQEAKIAogCW1tY19pZGxlX2NhcmRzKCk7CiAJZm9yIChpID0gMDsgaSA8IDEwMDA7IGkrKykgewotCQlyZXQgPSBtbWNfY21kKE1NQ19DTURfU0VORF9PUF9DT05ELCBDRkdfTU1DX09QX0NPTkQsIHJlc3AsCisJCXJldCA9IG1tY19jbWQoTU1DX0NNRF9TRU5EX09QX0NPTkQsIENPTkZJR19TWVNfTU1DX09QX0NPTkQsIHJlc3AsCiAJCQkgICAgICBSMyB8IE5JRCB8IE9QRU5fRFJBSU4pOwogCQlpZiAocmV0IHx8IChyZXNwWzBdICYgMHg4MDAwMDAwMCkpCiAJCQlicmVhazsKQEAgLTQzNCw3ICs0MzQsNyBAQAogCXRpbWVvdXRfY2xrcyA9IGNzZC0+bnNhYyAqIDEwMDsKIAogCXRpbWVvdXRfY2xrcyArPSAoKCh0aW1lb3V0X25zICsgOSkgLyAxMCkKLQkJCSAqICgoQ0ZHX01NQ19DTEtfUFAgKyA5OTk5OSkgLyAxMDAwMDApICsgOTk5OSkgLyAxMDAwMDsKKwkJCSAqICgoQ09ORklHX1NZU19NTUNfQ0xLX1BQICsgOTk5OTkpIC8gMTAwMDAwKSArIDk5OTkpIC8gMTAwMDA7CiAJaWYgKCFtbWNfY2FyZF9pc19zZCkKIAkJdGltZW91dF9jbGtzICo9IDEwOwogCWVsc2UKQEAgLTQ3NSw3ICs0NzUsNyBAQAogCW1tY2lfd3JpdGVsKENSLCBNTUNJX0JJVChNQ0lFTikpOwogCW1tY2lfd3JpdGVsKERUT1IsIDB4NWYpOwogCW1tY2lfd3JpdGVsKElEUiwgfjBVTCk7Ci0JbWNpX3NldF9tb2RlKENGR19NTUNfQ0xLX09ELCBNTUNfREVGQVVMVF9CTEtMRU4pOworCW1jaV9zZXRfbW9kZShDT05GSUdfU1lTX01NQ19DTEtfT0QsIE1NQ19ERUZBVUxUX0JMS0xFTik7CiAKIAltbWNfY2FyZF9pc19zZCA9IDA7CiAKQEAgLTUyMCw3ICs1MjAsNyBAQAogCW1tY19ibGtkZXYuYmxrc3ogPSA1MTI7CiAJbW1jX2Jsa2Rldi5sYmEgPSAoY3NkLmNfc2l6ZSArIDEpICogKDEgPDwgKGNzZC5jX3NpemVfbXVsdCArIDIpKTsKIAotCW1jaV9zZXRfbW9kZShDRkdfTU1DX0NMS19QUCwgbW1jX2Jsa2Rldi5ibGtzeik7CisJbWNpX3NldF9tb2RlKENPTkZJR19TWVNfTU1DX0NMS19QUCwgbW1jX2Jsa2Rldi5ibGtzeik7CiAKICNpZiAwCiAJaWYgKGZhdF9yZWdpc3Rlcl9kZXZpY2UoJm1tY19ibGtkZXYsIDEpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvY2ZpX2ZsYXNoLmMgYi9kcml2ZXJzL210ZC9jZmlfZmxhc2guYwppbmRleCA3YmZkYzQzLi5jNDBiZjY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9jZmlfZmxhc2guYworKysgYi9kcml2ZXJzL210ZC9jZmlfZmxhc2guYwpAQCAtNTcsMTIgKzU3LDEyIEBACiAgKiBBTUQvU3BhbnNpb24gQXBwbGljYXRpb24gTm90ZTogTWlncmF0aW9uIGZyb20gU2luZ2xlLWJ5dGUgdG8gVGhyZWUtYnl0ZQogICogICBEZXZpY2UgSURzLCBQdWJsaWNhdGlvbiBOdW1iZXIgMjU1MzggUmV2aXNpb24gQSwgTm92ZW1iZXIgOCwgMjAwMQogICoKLSAqIERlZmluZSBDRkdfV1JJVEVfU1dBUFBFRF9EQVRBLCBpZiB5b3UgaGF2ZSB0byBzd2FwIHRoZSBCeXRlcyBiZXR3ZWVuCisgKiBEZWZpbmUgQ09ORklHX1NZU19XUklURV9TV0FQUEVEX0RBVEEsIGlmIHlvdSBoYXZlIHRvIHN3YXAgdGhlIEJ5dGVzIGJldHdlZW4KICAqIHJlYWRpbmcgYW5kIHdyaXRpbmcgLi4uICh5ZXMgdGhlcmUgaXMgc3VjaCBhIEhhcmR3YXJlKS4KICAqLwogCi0jaWZuZGVmIENGR19GTEFTSF9CQU5LU19MSVNUCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUIHsgQ0ZHX0ZMQVNIX0JBU0UgfQorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUIHsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KICNlbmRpZgogCiAjZGVmaW5lIEZMQVNIX0NNRF9DRkkJCQkweDk4CkBAIC0xNDMsNyArMTQzLDcgQEAKICNkZWZpbmUgQ0ZJX0NNRFNFVF9TU1QJCQkyNTgKICNkZWZpbmUgQ0ZJX0NNRFNFVF9JTlRFTF9QUk9HX1JFR0lPTlMJNTEyCiAKLSNpZmRlZiBDRkdfRkxBU0hfQ0ZJX0FNRF9SRVNFVCAvKiBuZWVkZWQgZm9yIFNUTV9JRF8yOVczMjBEQiBvbiBVQzEwMCAqLworI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJX0FNRF9SRVNFVCAvKiBuZWVkZWQgZm9yIFNUTV9JRF8yOVczMjBEQiBvbiBVQzEwMCAqLwogIyB1bmRlZiAgRkxBU0hfQ01EX1JFU0VUCiAjIGRlZmluZSBGTEFTSF9DTURfUkVTRVQJQU1EX0NNRF9SRVNFVCAvKiB1c2UgQU1ELVJlc2V0IGluc3RlYWQgKi8KICNlbmRpZgpAQCAtMTU5LDExICsxNTksMTEgQEAKIAogc3RhdGljIHVpbnQgZmxhc2hfb2Zmc2V0X2NmaVsyXSA9IHsgRkxBU0hfT0ZGU0VUX0NGSSwgRkxBU0hfT0ZGU0VUX0NGSV9BTFQgfTsKIAotLyogdXNlIENGR19NQVhfRkxBU0hfQkFOS1NfREVURUNUIGlmIGRlZmluZWQgKi8KLSNpZmRlZiBDRkdfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVAotIyBkZWZpbmUgQ0ZJX01BWF9GTEFTSF9CQU5LUwlDRkdfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVAorLyogdXNlIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVCBpZiBkZWZpbmVkICovCisjaWZkZWYgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NfREVURUNUCisjIGRlZmluZSBDRklfTUFYX0ZMQVNIX0JBTktTCUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVAogI2Vsc2UKLSMgZGVmaW5lIENGSV9NQVhfRkxBU0hfQkFOS1MJQ0ZHX01BWF9GTEFTSF9CQU5LUworIyBkZWZpbmUgQ0ZJX01BWF9GTEFTSF9CQU5LUwlDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwogI2VuZGlmCiAKIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGSV9NQVhfRkxBU0hfQkFOS1NdOwkvKiBGTEFTSCBjaGlwcyBpbmZvICovCkBAIC0xNzEsOCArMTcxLDggQEAKIC8qCiAgKiBDaGVjayBpZiBjaGlwIHdpZHRoIGlzIGRlZmluZWQuIElmIG5vdCwgc3RhcnQgZGV0ZWN0aW5nIHdpdGggOGJpdC4KICAqLwotI2lmbmRlZiBDRkdfRkxBU0hfQ0ZJX1dJRFRICi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzhCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzhCSVQKICNlbmRpZgogCiB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgZmxhc2hfc2VjdF90OwpAQCAtMjU1LDIwICsyNTUsMjAgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKSB8fCBkZWZpbmVkKENPTkZJR19FTlZfQUREUl9SRURVTkQpIHx8IChDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFKQorI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkgfHwgZGVmaW5lZChDT05GSUdfRU5WX0FERFJfUkVEVU5EKSB8fCAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFKQogc3RhdGljIGZsYXNoX2luZm9fdCAqZmxhc2hfZ2V0X2luZm8odWxvbmcgYmFzZSkKIHsKIAlpbnQgaTsKIAlmbGFzaF9pbmZvX3QgKiBpbmZvID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlpbmZvID0gJiBmbGFzaF9pbmZvW2ldOwogCQlpZiAoaW5mby0+c2l6ZSAmJiBpbmZvLT5zdGFydFswXSA8PSBiYXNlICYmCiAJCSAgICBiYXNlIDw9IGluZm8tPnN0YXJ0WzBdICsgaW5mby0+c2l6ZSAtIDEpCiAJCQlicmVhazsKIAl9CiAKLQlyZXR1cm4gaSA9PSBDRkdfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm87CisJcmV0dXJuIGkgPT0gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgPyAwIDogaW5mbzsKIH0KICNlbmRpZgogCkBAIC0zMDksNyArMzA5LDcgQEAKIAlpbnQgaTsKIAlpbnQgY3dvcmRfb2Zmc2V0OwogCWludCBjcF9vZmZzZXQ7Ci0jaWYgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU4pIHx8IGRlZmluZWQoQ0ZHX1dSSVRFX1NXQVBQRURfREFUQSkKKyNpZiBkZWZpbmVkKF9fTElUVExFX0VORElBTikgfHwgZGVmaW5lZChDT05GSUdfU1lTX1dSSVRFX1NXQVBQRURfREFUQSkKIAl1MzIgY21kX2xlID0gY3B1X3RvX2xlMzIoY21kKTsKICNlbmRpZgogCXVjaGFyIHZhbDsKQEAgLTMxNyw3ICszMTcsNyBAQAogCiAJZm9yIChpID0gaW5mby0+cG9ydHdpZHRoOyBpID4gMDsgaS0tKXsKIAkJY3dvcmRfb2Zmc2V0ID0gKGluZm8tPnBvcnR3aWR0aC1pKSVpbmZvLT5jaGlwd2lkdGg7Ci0jaWYgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU4pIHx8IGRlZmluZWQoQ0ZHX1dSSVRFX1NXQVBQRURfREFUQSkKKyNpZiBkZWZpbmVkKF9fTElUVExFX0VORElBTikgfHwgZGVmaW5lZChDT05GSUdfU1lTX1dSSVRFX1NXQVBQRURfREFUQSkKIAkJY3Bfb2Zmc2V0ID0gaW5mby0+cG9ydHdpZHRoIC0gaTsKIAkJdmFsID0gKigodWNoYXIqKSZjbWRfbGUgKyBjd29yZF9vZmZzZXQpOwogI2Vsc2UKQEAgLTM3NCw3ICszNzQsNyBAQAogCXVjaGFyIHJldHZhbDsKIAogCWNwID0gZmxhc2hfbWFwIChpbmZvLCAwLCBvZmZzZXQpOwotI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKSB8fCBkZWZpbmVkKENGR19XUklURV9TV0FQUEVEX0RBVEEpCisjaWYgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU4pIHx8IGRlZmluZWQoQ09ORklHX1NZU19XUklURV9TV0FQUEVEX0RBVEEpCiAJcmV0dmFsID0gZmxhc2hfcmVhZDgoY3ApOwogI2Vsc2UKIAlyZXR2YWwgPSBmbGFzaF9yZWFkOChjcCArIGluZm8tPnBvcnR3aWR0aCAtIDEpOwpAQCAtNDE5LDcgKzQxOSw3IEBACiAJCWRlYnVnICgiYWRkclsleF0gPSAweCV4XG4iLCB4LCBmbGFzaF9yZWFkOChhZGRyICsgeCkpOwogCX0KICNlbmRpZgotI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKSB8fCBkZWZpbmVkKENGR19XUklURV9TV0FQUEVEX0RBVEEpCisjaWYgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU4pIHx8IGRlZmluZWQoQ09ORklHX1NZU19XUklURV9TV0FQUEVEX0RBVEEpCiAJcmV0dmFsID0gKChmbGFzaF9yZWFkOChhZGRyKSA8PCAxNikgfAogCQkgIChmbGFzaF9yZWFkOChhZGRyICsgaW5mby0+cG9ydHdpZHRoKSA8PCAyNCkgfAogCQkgIChmbGFzaF9yZWFkOChhZGRyICsgMiAqIGluZm8tPnBvcnR3aWR0aCkpIHwKQEAgLTY0Niw4ICs2NDYsOCBAQAogewogCXVsb25nIHN0YXJ0OwogCi0jaWYgQ0ZHX0haICE9IDEwMDAKLQl0b3V0ICo9IENGR19IWi8xMDAwOworI2lmIENPTkZJR19TWVNfSFogIT0gMTAwMAorCXRvdXQgKj0gQ09ORklHX1NZU19IWi8xMDAwOwogI2VuZGlmCiAKIAkvKiBXYWl0IGZvciBjb21tYW5kIGNvbXBsZXRpb24gKi8KQEAgLTcxNiw3ICs3MTYsNyBAQAogICovCiBzdGF0aWMgdm9pZCBmbGFzaF9hZGRfYnl0ZSAoZmxhc2hfaW5mb190ICogaW5mbywgY2Zpd29yZF90ICogY3dvcmQsIHVjaGFyIGMpCiB7Ci0jaWYgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU4pICYmICFkZWZpbmVkKENGR19XUklURV9TV0FQUEVEX0RBVEEpCisjaWYgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU4pICYmICFkZWZpbmVkKENPTkZJR19TWVNfV1JJVEVfU1dBUFBFRF9EQVRBKQogCXVuc2lnbmVkIHNob3J0CXc7CiAJdW5zaWduZWQgaW50CWw7CiAJdW5zaWduZWQgbG9uZyBsb25nIGxsOwpAQCAtNzI3LDcgKzcyNyw3IEBACiAJCWN3b3JkLT5jID0gYzsKIAkJYnJlYWs7CiAJY2FzZSBGTEFTSF9DRklfMTZCSVQ6Ci0jaWYgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU4pICYmICFkZWZpbmVkKENGR19XUklURV9TV0FQUEVEX0RBVEEpCisjaWYgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU4pICYmICFkZWZpbmVkKENPTkZJR19TWVNfV1JJVEVfU1dBUFBFRF9EQVRBKQogCQl3ID0gYzsKIAkJdyA8PD0gODsKIAkJY3dvcmQtPncgPSAoY3dvcmQtPncgPj4gOCkgfCB3OwpAQCAtNzM2LDcgKzczNiw3IEBACiAjZW5kaWYKIAkJYnJlYWs7CiAJY2FzZSBGTEFTSF9DRklfMzJCSVQ6Ci0jaWYgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU4pICYmICFkZWZpbmVkKENGR19XUklURV9TV0FQUEVEX0RBVEEpCisjaWYgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU4pICYmICFkZWZpbmVkKENPTkZJR19TWVNfV1JJVEVfU1dBUFBFRF9EQVRBKQogCQlsID0gYzsKIAkJbCA8PD0gMjQ7CiAJCWN3b3JkLT5sID0gKGN3b3JkLT5sID4+IDgpIHwgbDsKQEAgLTc0NSw3ICs3NDUsNyBAQAogI2VuZGlmCiAJCWJyZWFrOwogCWNhc2UgRkxBU0hfQ0ZJXzY0QklUOgotI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKSAmJiAhZGVmaW5lZChDRkdfV1JJVEVfU1dBUFBFRF9EQVRBKQorI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKSAmJiAhZGVmaW5lZChDT05GSUdfU1lTX1dSSVRFX1NXQVBQRURfREFUQSkKIAkJbGwgPSBjOwogCQlsbCA8PD0gNTY7CiAJCWN3b3JkLT5sbCA9IChjd29yZC0+bGwgPj4gOCkgfCBsbDsKQEAgLTg1MCw3ICs4NTAsNyBAQAogCQkJCQlpbmZvLT53cml0ZV90b3V0LCAid3JpdGUiKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAKIHN0YXRpYyBpbnQgZmxhc2hfd3JpdGVfY2ZpYnVmZmVyIChmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1Y2hhciAqIGNwLAogCQkJCSAgaW50IGxlbikKQEAgLTEwMjQsNyArMTAyNCw3IEBACiAJdW5tYXBfcGh5c21lbShkc3QsIGxlbik7CiAJcmV0dXJuIHJldGNvZGU7CiB9Ci0jZW5kaWYgLyogQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTczLDcgKzExNzMsNyBAQAogCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5zZWN0b3JfY291bnQ7ICsraSkgewogCQlpZiAoKGkgJSA1KSA9PSAwKQogCQkJcHJpbnRmICgiXG4iKTsKLSNpZmRlZiBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCQlpbnQgazsKIAkJaW50IHNpemU7CiAJCWludCBlcmFzZWQ7CkBAIC0xMTk4LDcgKzExOTgsNyBAQAogCQkJaW5mby0+c3RhcnRbaV0sCiAJCQllcmFzZWQgPyAnRScgOiAnICcsCiAJCQlpbmZvLT5wcm90ZWN0W2ldID8gIlJPIiA6ICIgICIpOwotI2Vsc2UJLyogISBDRkdfRkxBU0hfRU1QVFlfSU5GTyAqLworI2Vsc2UJLyogISBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8gKi8KIAkJcHJpbnRmICgiICAlMDhsWCAgICVzICIsCiAJCQlpbmZvLT5zdGFydFtpXSwKIAkJCWluZm8tPnByb3RlY3RbaV0gPyAiUk8iIDogIiAgIik7CkBAIC0xMjQyLDcgKzEyNDIsNyBAQAogCWludCBhbG47CiAJY2Zpd29yZF90IGN3b3JkOwogCWludCBpLCByYzsKLSNpZmRlZiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQogCWludCBidWZmZXJlZF9zaXplOwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0ZMQVNIX1NIT1dfUFJPR1JFU1MKQEAgLTEyODYsNyArMTI4Niw3IEBACiAJfQogCiAJLyogaGFuZGxlIHRoZSBhbGlnbmVkIHBhcnQgKi8KLSNpZmRlZiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQogCWJ1ZmZlcmVkX3NpemUgPSAoaW5mby0+cG9ydHdpZHRoIC8gaW5mby0+Y2hpcHdpZHRoKTsKIAlidWZmZXJlZF9zaXplICo9IGluZm8tPmJ1ZmZlcl9zaXplOwogCXdoaWxlIChjbnQgPj0gaW5mby0+cG9ydHdpZHRoKSB7CkBAIC0xMzI2LDcgKzEzMjYsNyBAQAogCQljbnQgLT0gaW5mby0+cG9ydHdpZHRoOwogCQlGTEFTSF9TSE9XX1BST0dSRVNTKHNjYWxlLCBkb3RzLCBkaWdpdCwgaW5mby0+cG9ydHdpZHRoKTsKIAl9Ci0jZW5kaWYgLyogQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgKi8KIAogCWlmIChjbnQgPT0gMCkgewogCQlyZXR1cm4gKDApOwpAQCAtMTM1MCw3ICsxMzUwLDcgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jaWZkZWYgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIAogaW50IGZsYXNoX3JlYWxfcHJvdGVjdCAoZmxhc2hfaW5mb190ICogaW5mbywgbG9uZyBzZWN0b3IsIGludCBwcm90KQogewpAQCAtMTQ1Nyw3ICsxNDU3LDcgQEAKIAlmbGFzaF91bm1hcChpbmZvLCAwLCBGTEFTSF9PRkZTRVRfSU5URUxfUFJPVEVDVElPTiwgc3JjKTsKIH0KIAotI2VuZGlmIC8qIENGR19GTEFTSF9QUk9URUNUSU9OICovCisjZW5kaWYgLyogQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJldmVyc2UgdGhlIG9yZGVyIG9mIHRoZSBlcmFzZSByZWdpb25zIGluIHRoZSBDRkkgUVJZIHN0cnVjdHVyZS4KQEAgLTE1MDEsNyArMTUwMSw3IEBACiAJY21kc2V0X2ludGVsX3JlYWRfamVkZWNfaWRzKGluZm8pOwogCWZsYXNoX3dyaXRlX2NtZChpbmZvLCAwLCBpbmZvLT5jZmlfb2Zmc2V0LCBGTEFTSF9DTURfQ0ZJKTsKIAotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAJLyogcmVhZCBsZWdhY3kgbG9jay91bmxvY2sgYml0IGZyb20gaW50ZWwgZmxhc2ggKi8KIAlpZiAoaW5mby0+ZXh0X2FkZHIpIHsKIAkJaW5mby0+bGVnYWN5X3VubG9jayA9IGZsYXNoX3JlYWRfdWNoYXIgKGluZm8sCkBAIC0xNzE3LDcgKzE3MTcsNyBAQAogewogCWRlYnVnICgiZmxhc2ggZGV0ZWN0IGNmaVxuIik7CiAKLQlmb3IgKGluZm8tPnBvcnR3aWR0aCA9IENGR19GTEFTSF9DRklfV0lEVEg7CisJZm9yIChpbmZvLT5wb3J0d2lkdGggPSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSDsKIAkgICAgIGluZm8tPnBvcnR3aWR0aCA8PSBGTEFTSF9DRklfNjRCSVQ7IGluZm8tPnBvcnR3aWR0aCA8PD0gMSkgewogCQlmb3IgKGluZm8tPmNoaXB3aWR0aCA9IEZMQVNIX0NGSV9CWTg7CiAJCSAgICAgaW5mby0+Y2hpcHdpZHRoIDw9IGluZm8tPnBvcnR3aWR0aDsKQEAgLTE3OTMsNyArMTc5Myw3IEBACiAKIAlpbmZvLT5leHRfYWRkciA9IDA7CiAJaW5mby0+Y2ZpX3ZlcnNpb24gPSAwOwotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAJaW5mby0+bGVnYWN5X3VubG9jayA9IDA7CiAjZW5kaWYKIApAQCAtMTg4Miw3ICsxODgyLDcgQEAKIAkJCWRlYnVnICgiZXJhc2VfcmVnaW9uX2NvdW50ID0gJWQgZXJhc2VfcmVnaW9uX3NpemUgPSAlZFxuIiwKIAkJCQllcmFzZV9yZWdpb25fY291bnQsIGVyYXNlX3JlZ2lvbl9zaXplKTsKIAkJCWZvciAoaiA9IDA7IGogPCBlcmFzZV9yZWdpb25fY291bnQ7IGorKykgewotCQkJCWlmIChzZWN0X2NudCA+PSBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwkJCQlpZiAoc2VjdF9jbnQgPj0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQkJCQlwcmludGYoIkVSUk9SOiB0b28gbWFueSBmbGFzaCBzZWN0b3JzXG4iKTsKIAkJCQkJYnJlYWs7CiAJCQkJfQpAQCAtMTk0Nyw0MSArMTk0Nyw0MSBAQAogewogCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IDA7CiAJaW50IGk7Ci0jaWYgZGVmaW5lZChDRkdfRkxBU0hfQVVUT1BST1RFQ1RfTElTVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfQVVUT1BST1RFQ1RfTElTVCkKIAlzdHJ1Y3QgYXBsX3MgewogCQl1bG9uZyBzdGFydDsKIAkJdWxvbmcgc2l6ZTsKLQl9IGFwbFtdID0gQ0ZHX0ZMQVNIX0FVVE9QUk9URUNUX0xJU1Q7CisJfSBhcGxbXSA9IENPTkZJR19TWVNfRkxBU0hfQVVUT1BST1RFQ1RfTElTVDsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIAljaGFyICpzID0gZ2V0ZW52KCJ1bmxvY2siKTsKICNlbmRpZgogCi0jZGVmaW5lIEJBTktfQkFTRShpKQkoKCh1bnNpZ25lZCBsb25nIFtDRklfTUFYX0ZMQVNIX0JBTktTXSlDRkdfRkxBU0hfQkFOS1NfTElTVClbaV0pCisjZGVmaW5lIEJBTktfQkFTRShpKQkoKCh1bnNpZ25lZCBsb25nIFtDRklfTUFYX0ZMQVNIX0JBTktTXSlDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QpW2ldKQogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAogCQlpZiAoIWZsYXNoX2RldGVjdF9sZWdhY3kgKEJBTktfQkFTRShpKSwgaSkpCiAJCQlmbGFzaF9nZXRfc2l6ZSAoQkFOS19CQVNFKGkpLCBpKTsKIAkJc2l6ZSArPSBmbGFzaF9pbmZvW2ldLnNpemU7CiAJCWlmIChmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pIHsKLSNpZm5kZWYgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCiAJCQlwcmludGYgKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgJWQgIgogCQkJCSItIFNpemUgPSAweCUwOGx4ID0gJWxkIE1CXG4iLAogCQkJCWkrMSwgZmxhc2hfaW5mb1tpXS5zaXplLAogCQkJCWZsYXNoX2luZm9baV0uc2l6ZSA8PCAyMCk7Ci0jZW5kaWYgLyogQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QgKi8KIAkJfQotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAJCWVsc2UgaWYgKChzICE9IE5VTEwpICYmIChzdHJjbXAocywgInllcyIpID09IDApKSB7CiAJCQkvKgogCQkJICogT25seSB0aGUgVS1Cb290IGltYWdlIGFuZCBpdCdzIGVudmlyb25tZW50CiAJCQkgKiBpcyBwcm90ZWN0ZWQsIGFsbCBvdGhlciBzZWN0b3JzIGFyZQogCQkJICogdW5wcm90ZWN0ZWQgKHVubG9ja2VkKSBpZiBmbGFzaCBoYXJkd2FyZQotCQkJICogcHJvdGVjdGlvbiBpcyB1c2VkIChDRkdfRkxBU0hfUFJPVEVDVElPTikKKwkJCSAqIHByb3RlY3Rpb24gaXMgdXNlZCAoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQkJICogYW5kIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSAidW5sb2NrIiBpcwogCQkJICogc2V0IHRvICJ5ZXMiLgogCQkJICovCkBAIC0yMDIyLDE1ICsyMDIyLDE1IEBACiAJCQkJCSAgICAgICAmZmxhc2hfaW5mb1tpXSk7CiAJCQl9CiAJCX0KLSNlbmRpZiAvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCX0KIAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UpCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAgLSAxLAotCQkgICAgICAgZmxhc2hfZ2V0X2luZm8oQ0ZHX01PTklUT1JfQkFTRSkpOworCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuICAtIDEsCisJCSAgICAgICBmbGFzaF9nZXRfaW5mbyhDT05GSUdfU1lTX01PTklUT1JfQkFTRSkpOwogI2VuZGlmCiAKIAkvKiBFbnZpcm9ubWVudCBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KQEAgLTIwNDksNyArMjA0OSw3IEBACiAJCSAgICAgICBmbGFzaF9nZXRfaW5mbyhDT05GSUdfRU5WX0FERFJfUkVEVU5EKSk7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX0FVVE9QUk9URUNUX0xJU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIX0FVVE9QUk9URUNUX0xJU1QpCiAJZm9yIChpID0gMDsgaSA8IChzaXplb2YoYXBsKSAvIHNpemVvZihzdHJ1Y3QgYXBsX3MpKTsgaSsrKSB7CiAJCWRlYnVnKCJhdXRvcHJvdGVjdGluZyBmcm9tICUwOHggdG8gJTA4eFxuIiwKIAkJICAgICAgYXBsW2ldLnN0YXJ0LCBhcGxbaV0uc3RhcnQgKyBhcGxbaV0uc2l6ZSAtIDEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvZGF0YWZsYXNoLmMgYi9kcml2ZXJzL210ZC9kYXRhZmxhc2guYwppbmRleCAwNDlkYTY5Li4yMDFlNTE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9kYXRhZmxhc2guYworKysgYi9kcml2ZXJzL210ZC9kYXRhZmxhc2guYwpAQCAtNDAsMTIgKzQwLDEyIEBACiAJaW50IGRmY29kZTsKIAlpbnQgcGFydDsKIAlpbnQgbGFzdF9wYXJ0OwotCWludCBmb3VuZFtDRkdfTUFYX0RBVEFGTEFTSF9CQU5LU107CisJaW50IGZvdW5kW0NPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LU107CiAJdW5zaWduZWQgY2hhciBwcm90ZWN0ZWQ7CiAKIAlBVDkxRl9TcGlJbml0ICgpOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfREFUQUZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTOyBpKyspIHsKIAkJZm91bmRbaV0gPSAwOwogCQlkYXRhZmxhc2hfaW5mb1tpXS5EZXNjLnN0YXRlID0gSURMRTsKIAkJZGF0YWZsYXNoX2luZm9baV0uaWQgPSAwOwpAQCAtMTc5LDcgKzE3OSw3IEBACiAJdW5zaWduZWQgY2hhciBzWzMyXTsJLyogV2lsbCBmaXQgYSBsb25nIGludCBpbiBoZXggKi8KIAl1bnNpZ25lZCBsb25nIHN0YXJ0OwogCi0JZm9yIChpID0gMCwgcGFydD0gMDsgaSA8IENGR19NQVhfREFUQUZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwLCBwYXJ0PSAwOyBpIDwgQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTOyBpKyspIHsKIAkJZm9yKGogPSAwOyBqPE5CX0RBVEFGTEFTSF9BUkVBOyBqKyspIHsKIAkJCWVudiA9IGFyZWFfbGlzdFtwYXJ0XS5zZXRlbnY7CiAJCQkvKiBTZXQgdGhlIGVudmlyb25tZW50IGFjY29yZGluZyB0byB0aGUgbGFiZWwuLi4qLwpAQCAtMTk4LDcgKzE5OCw3IEBACiB7CiAJaW50IGksIGo7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1M7IGkrKykgewogCQlpZiAoZGF0YWZsYXNoX2luZm9baV0uaWQgIT0gMCkgewogCQkJcHJpbnRmKCJEYXRhRmxhc2g6Iik7CiAJCQlzd2l0Y2ggKGRhdGFmbGFzaF9pbmZvW2ldLmlkKSB7CkBAIC0yNTgsNyArMjU4LDcgQEAKIAljaGFyIGFkZHJfdmFsaWQgPSAwOwogCWludCBpOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfREFUQUZMQVNIX0JBTktTOyBpKyspCisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LUzsgaSsrKQogCQlpZiAoIGRhdGFmbGFzaF9pbmZvW2ldLmlkCiAJCQkmJiAoKCgoaW50KSAqYWRkcikgJiAweEZGMDAwMDAwKSA9PQogCQkJZGF0YWZsYXNoX2luZm9baV0ubG9naWNhbF9hZGRyZXNzKSkgewpAQCAtMjg0LDcgKzI4NCw3IEBACiAJaW50IGFkZHJfdmFsaWQgPSAwOwogCWludCBpOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfREFUQUZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTOyBpKyspIHsKIAkJaWYgKCgoKGludCkgYWRkcikgJiAweEZGMDAwMDAwKSA9PQogCQkJZGF0YWZsYXNoX2luZm9baV0ubG9naWNhbF9hZGRyZXNzKSB7CiAJCQlhZGRyX3ZhbGlkID0gMTsKQEAgLTM0OSw3ICszNDksNyBAQAogCWludCBpLGosIGFyZWExLCBhcmVhMiwgYWRkcl92YWxpZCA9IDA7CiAKIAkvKiBmaW5kIGRhdGFmbGFzaCAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0RBVEFGTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LUzsgaSsrKSB7CiAJCWlmICgoKChpbnQpIHN0YXJ0X2FkZHIpICYgMHhGMDAwMDAwMCkgPT0KIAkJCWRhdGFmbGFzaF9pbmZvW2ldLmxvZ2ljYWxfYWRkcmVzcykgewogCQkJCWFkZHJfdmFsaWQgPSAxOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvamVkZWNfZmxhc2guYyBiL2RyaXZlcnMvbXRkL2plZGVjX2ZsYXNoLmMKaW5kZXggMDIwNjQ3YS4uMjI2ZTFlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvamVkZWNfZmxhc2guYworKysgYi9kcml2ZXJzL210ZC9qZWRlY19mbGFzaC5jCkBAIC0xNzAsNyArMTcwLDcgQEAKICNkZWZpbmUgU0laRV84TWlCICAgMjMKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRfZmxhc2hfaW5mbyBqZWRlY190YWJsZVtdID0gewotI2lmZGVmIENGR19GTEFTSF9MRUdBQ1lfMjU2S3g4CisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9MRUdBQ1lfMjU2S3g4CiAJewogCQkubWZyX2lkCQk9IE1BTlVGQUNUVVJFUl9TU1QsCiAJCS5kZXZfaWQJCT0gU1NUMzlMRjAyMCwKQEAgLTE4Niw3ICsxODYsNyBAQAogCQl9CiAJfSwKICNlbmRpZgotI2lmZGVmIENGR19GTEFTSF9MRUdBQ1lfNTEyS3g4CisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9MRUdBQ1lfNTEyS3g4CiAJewogCQkubWZyX2lkCQk9IE1BTlVGQUNUVVJFUl9BTUQsCiAJCS5kZXZfaWQJCT0gQU0yOUxWMDQwQiwKQEAgLTIxNiw3ICsyMTYsNyBAQAogCQl9CiAJfSwKICNlbmRpZgotI2lmZGVmIENGR19GTEFTSF9MRUdBQ1lfNTEyS3gxNgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfTEVHQUNZXzUxMkt4MTYKIAl7CiAJCS5tZnJfaWQJCT0gTUFOVUZBQ1RVUkVSX0FNRCwKIAkJLmRldl9pZAkJPSBBTTI5TFY0MDBCQiwKQEAgLTMwNyw3ICszMDcsNyBAQAogCQlkZWJ1ZyAoImVyYXNlX3JlZ2lvbl9jb3VudCA9ICVkIGVyYXNlX3JlZ2lvbl9zaXplID0gJWRcbiIsCiAJCSAgICAgICBlcmFzZV9yZWdpb25fY291bnQsIGVyYXNlX3JlZ2lvbl9zaXplKTsKIAkJZm9yIChqID0gMDsgaiA8IGVyYXNlX3JlZ2lvbl9jb3VudDsgaisrKSB7Ci0JCQlpZiAoc2VjdF9jbnQgPj0gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJCQlpZiAoc2VjdF9jbnQgPj0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQkJCXByaW50ZigiRVJST1I6IHRvbyBtYW55IGZsYXNoIHNlY3RvcnNcbiIpOwogCQkJCWJyZWFrOwogCQkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9mc2xfZWxiY19uYW5kLmMgYi9kcml2ZXJzL210ZC9uYW5kL2ZzbF9lbGJjX25hbmQuYwppbmRleCA0MzUxODI0Li43ZGRhNmM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL2ZzbF9lbGJjX25hbmQuYworKysgYi9kcml2ZXJzL210ZC9uYW5kL2ZzbF9lbGJjX25hbmQuYwpAQCAtNjkzLDcgKzY5Myw3IEBACiAKIHN0YXRpYyB2b2lkIGZzbF9lbGJjX2N0cmxfaW5pdCh2b2lkKQogewotCWltbWFwX3QgKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwlpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCiAJZWxiY19jdHJsID0ga3phbGxvYyhzaXplb2YoKmVsYmNfY3RybCksIEdGUF9LRVJORUwpOwogCWlmICghZWxiY19jdHJsKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9uYW5kLmMgYi9kcml2ZXJzL210ZC9uYW5kL25hbmQuYwppbmRleCA3MWEwZTRiLi5lZWIxOWZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL25hbmQuYworKysgYi9kcml2ZXJzL210ZC9uYW5kL25hbmQuYwpAQCAtMjQsMTUgKzI0LDE1IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bmFuZC5oPgogCi0jaWZuZGVmIENGR19OQU5EX0JBU0VfTElTVAotI2RlZmluZSBDRkdfTkFORF9CQVNFX0xJU1QgeyBDRkdfTkFORF9CQVNFIH0KKyNpZm5kZWYgQ09ORklHX1NZU19OQU5EX0JBU0VfTElTVAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUIHsgQ09ORklHX1NZU19OQU5EX0JBU0UgfQogI2VuZGlmCiAKIGludCBuYW5kX2N1cnJfZGV2aWNlID0gLTE7Ci1uYW5kX2luZm9fdCBuYW5kX2luZm9bQ0ZHX01BWF9OQU5EX0RFVklDRV07CituYW5kX2luZm9fdCBuYW5kX2luZm9bQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0VdOwogCi1zdGF0aWMgc3RydWN0IG5hbmRfY2hpcCBuYW5kX2NoaXBbQ0ZHX01BWF9OQU5EX0RFVklDRV07Ci1zdGF0aWMgdWxvbmcgYmFzZV9hZGRyZXNzW0NGR19NQVhfTkFORF9ERVZJQ0VdID0gQ0ZHX05BTkRfQkFTRV9MSVNUOworc3RhdGljIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9jaGlwW0NPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFXTsKK3N0YXRpYyB1bG9uZyBiYXNlX2FkZHJlc3NbQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0VdID0gQ09ORklHX1NZU19OQU5EX0JBU0VfTElTVDsKIAogc3RhdGljIGNvbnN0IGNoYXIgZGVmYXVsdF9uYW5kX25hbWVbXSA9ICJuYW5kIjsKIApAQCAtNjEsNyArNjEsNyBAQAogewogCWludCBpOwogCXVuc2lnbmVkIGludCBzaXplID0gMDsKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9OQU5EX0RFVklDRTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFOyBpKyspIHsKIAkJbmFuZF9pbml0X2NoaXAoJm5hbmRfaW5mb1tpXSwgJm5hbmRfY2hpcFtpXSwgYmFzZV9hZGRyZXNzW2ldKTsKIAkJc2l6ZSArPSBuYW5kX2luZm9baV0uc2l6ZSAvIDEwMjQ7CiAJCWlmIChuYW5kX2N1cnJfZGV2aWNlID09IC0xKQpAQCAtNjksNyArNjksNyBAQAogCX0KIAlwcmludGYoIiV1IE1pQlxuIiwgc2l6ZSAvIDEwMjQpOwogCi0jaWZkZWYgQ0ZHX05BTkRfU0VMRUNUX0RFVklDRQorI2lmZGVmIENPTkZJR19TWVNfTkFORF9TRUxFQ1RfREVWSUNFCiAJLyoKIAkgKiBTZWxlY3QgdGhlIGNoaXAgaW4gdGhlIGJvYXJkL2NwdSBzcGVjaWZpYyBkcml2ZXIKIAkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvbmFuZF9iYXNlLmMgYi9kcml2ZXJzL210ZC9uYW5kL25hbmRfYmFzZS5jCmluZGV4IDA5MTNiYjguLmZlMzRhNDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQvbmFuZF9iYXNlLmMKKysrIGIvZHJpdmVycy9tdGQvbmFuZC9uYW5kX2Jhc2UuYwpAQCAtNDkyLDcgKzQ5Miw3IEBACiB2b2lkIG5hbmRfd2FpdF9yZWFkeShzdHJ1Y3QgbXRkX2luZm8gKm10ZCkKIHsKIAlzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwID0gbXRkLT5wcml2OwotCXUzMiB0aW1lbyA9IChDRkdfSFogKiAyMCkgLyAxMDAwOworCXUzMiB0aW1lbyA9IChDT05GSUdfU1lTX0haICogMjApIC8gMTAwMDsKIAogCXJlc2V0X3RpbWVyKCk7CiAKQEAgLTgzMSw5ICs4MzEsOSBAQAogCWludCBzdGF0ZSA9IHRoaXMtPnN0YXRlOwogCiAJaWYgKHN0YXRlID09IEZMX0VSQVNJTkcpCi0JCXRpbWVvID0gKENGR19IWiAqIDQwMCkgLyAxMDAwOworCQl0aW1lbyA9IChDT05GSUdfU1lTX0haICogNDAwKSAvIDEwMDA7CiAJZWxzZQotCQl0aW1lbyA9IChDRkdfSFogKiAyMCkgLyAxMDAwOworCQl0aW1lbyA9IChDT05GSUdfU1lTX0haICogMjApIC8gMTAwMDsKIAogCWlmICgoc3RhdGUgPT0gRkxfRVJBU0lORykgJiYgKHRoaXMtPm9wdGlvbnMgJiBOQU5EX0lTX0FORCkpCiAJCXRoaXMtPmNtZGZ1bmMobXRkLCBOQU5EX0NNRF9TVEFUVVNfTVVMVEksIC0xLCAtMSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3MzYzY0eHguYyBiL2RyaXZlcnMvbXRkL25hbmQvczNjNjR4eC5jCmluZGV4IDE1OWZlNzYuLmVkYWY1NWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQvczNjNjR4eC5jCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvczNjNjR4eC5jCkBAIC0xNDEsNyArMTQxLDcgQEAKIAlyZXR1cm4gISEocmVhZGwoTkZTVEFUKSAmIE5GU1RBVF9SbkIpOwogfQogCi0jaWZkZWYgQ0ZHX1MzQ19OQU5EX0hXRUNDCisjaWZkZWYgQ09ORklHX1NZU19TM0NfTkFORF9IV0VDQwogLyoKICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSBlbmNvZGluZyBlY2MgY29kZXMgdG8gcmVhZHkgZWNjIGVuZ2luZS4KICAqIFdyaXR0ZW4gYnkganNnb29kCkBAIC0yNTYsNyArMjU2LDcgQEAKIAogCXJldHVybiByZXQ7CiB9Ci0jZW5kaWYgLyogQ0ZHX1MzQ19OQU5EX0hXRUNDICovCisjZW5kaWYgLyogQ09ORklHX1NZU19TM0NfTkFORF9IV0VDQyAqLwogCiAvKgogICogQm9hcmQtc3BlY2lmaWMgTkFORCBpbml0aWFsaXphdGlvbi4gVGhlIGZvbGxvd2luZyBtZW1iZXJzIG9mIHRoZQpAQCAtMjk3LDcgKzI5Nyw3IEBACiAJbmFuZC0+cmVhZF9idWYJCT0gbmFuZF9yZWFkX2J1ZjsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1MzQ19OQU5EX0hXRUNDCisjaWZkZWYgQ09ORklHX1NZU19TM0NfTkFORF9IV0VDQwogCW5hbmQtPmVjYy5od2N0bAkJPSBzM2NfbmFuZF9lbmFibGVfaHdlY2M7CiAJbmFuZC0+ZWNjLmNhbGN1bGF0ZQk9IHMzY19uYW5kX2NhbGN1bGF0ZV9lY2M7CiAJbmFuZC0+ZWNjLmNvcnJlY3QJPSBzM2NfbmFuZF9jb3JyZWN0X2RhdGE7CkBAIC0zMDcsMTEgKzMwNywxMSBAQAogCSAqIGJvYXJkIG9uZSBkYXksIGl0IHdpbGwgZ2V0IG1vcmUgY29tcGxpY2F0ZWQuLi4KIAkgKi8KIAluYW5kLT5lY2MubW9kZQkJPSBOQU5EX0VDQ19IVzsKLQluYW5kLT5lY2Muc2l6ZQkJPSBDRkdfTkFORF9FQ0NTSVpFOwotCW5hbmQtPmVjYy5ieXRlcwkJPSBDRkdfTkFORF9FQ0NCWVRFUzsKKwluYW5kLT5lY2Muc2l6ZQkJPSBDT05GSUdfU1lTX05BTkRfRUNDU0laRTsKKwluYW5kLT5lY2MuYnl0ZXMJCT0gQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTOwogI2Vsc2UKIAluYW5kLT5lY2MubW9kZQkJPSBOQU5EX0VDQ19TT0ZUOwotI2VuZGlmIC8qICEgQ0ZHX1MzQ19OQU5EX0hXRUNDICovCisjZW5kaWYgLyogISBDT05GSUdfU1lTX1MzQ19OQU5EX0hXRUNDICovCiAKIAluYW5kLT5wcml2CQk9IG5hbmRfY3MgKyBjaGlwX24rKzsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZF9sZWdhY3kvbmFuZF9sZWdhY3kuYyBiL2RyaXZlcnMvbXRkL25hbmRfbGVnYWN5L25hbmRfbGVnYWN5LmMKaW5kZXggYmY1NTY1YS4uNDA3ZTkwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZF9sZWdhY3kvbmFuZF9sZWdhY3kuYworKysgYi9kcml2ZXJzL210ZC9uYW5kX2xlZ2FjeS9uYW5kX2xlZ2FjeS5jCkBAIC02Niw3ICs2Niw3IEBACiAJaW50IGVjY3ZhbGlkX3BvczsKIH0gb29iX2NvbmZpZyA9IHsgezB9LCAwLCAwfTsKIAotc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NGR19NQVhfTkFORF9ERVZJQ0VdID0ge3swfX07CitzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0VdID0ge3swfX07CiAKIGludCBjdXJyX2RldmljZSA9IC0xOyAvKiBDdXJyZW50IE5BTkQgRGV2aWNlICovCiAKQEAgLTk4Miw3ICs5ODIsNyBAQAogI2lmZGVmIENPTkZJR19PTUFQMTUxMAogCWFyY2hmbGFzaHdwKDAsMCk7CiAjZW5kaWYKLSNpZmRlZiBDRkdfTkFORF9XUAorI2lmZGVmIENPTkZJR19TWVNfTkFORF9XUAogCU5BTkRfV1BfT0ZGKCk7CiAjZW5kaWYKIApAQCAtMTAzNiw3ICsxMDM2LDcgQEAKICNpZmRlZiBDT05GSUdfT01BUDE1MTAKIAlhcmNoZmxhc2h3cCgwLDEpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX05BTkRfV1AKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfV1AKIAlOQU5EX1dQX09OKCk7CiAjZW5kaWYKIApAQCAtMTIzNSw3ICsxMjM1LDcgQEAKICNpZmRlZiBDT05GSUdfT01BUDE1MTAKIAlhcmNoZmxhc2h3cCgwLDApOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX05BTkRfV1AKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfV1AKIAlOQU5EX1dQX09GRigpOwogI2VuZGlmCiAgICAgTkFORF9FTkFCTEVfQ0UobmFuZCk7ICAvKiBzZXQgcGluIGxvdyAqLwpAQCAtMTMyMSw3ICsxMzIxLDcgQEAKICNpZmRlZiBDT05GSUdfT01BUDE1MTAKIAlhcmNoZmxhc2h3cCgwLDEpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX05BTkRfV1AKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfV1AKIAlOQU5EX1dQX09OKCk7CiAjZW5kaWYKIApAQCAtMTM1OCw3ICsxMzU4LDcgQEAKICNlbmRpZgogCW9vYl9jb25maWcuYmFkYmxvY2tfcG9zID0gNTsKIAotCWZvciAoaT0wOyBpPENGR19NQVhfTkFORF9ERVZJQ0U7IGkrKykgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFOyBpKyspIHsKIAkJaWYgKG5hbmRfZGV2X2Rlc2NbaV0uQ2hpcElEID09IE5BTkRfQ2hpcElEX1VOS05PV04pIHsKIAkJCW5hbmQgPSAmbmFuZF9kZXZfZGVzY1tpXTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvb25lbmFuZC9vbmVuYW5kX3Vib290LmMgYi9kcml2ZXJzL210ZC9vbmVuYW5kL29uZW5hbmRfdWJvb3QuYwppbmRleCBkNjE0NDUwLi4wODA4MmYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9vbmVuYW5kL29uZW5hbmRfdWJvb3QuYworKysgYi9kcml2ZXJzL210ZC9vbmVuYW5kL29uZW5hbmRfdWJvb3QuYwpAQCAtMjYsNyArMjYsNyBAQAogCW1lbXNldCgmb25lbmFuZF9tdGQsIDAsIHNpemVvZihzdHJ1Y3QgbXRkX2luZm8pKTsKIAltZW1zZXQoJm9uZW5hbmRfY2hpcCwgMCwgc2l6ZW9mKHN0cnVjdCBvbmVuYW5kX2NoaXApKTsKIAotCW9uZW5hbmRfY2hpcC5iYXNlID0gKHZvaWQgKikgQ0ZHX09ORU5BTkRfQkFTRTsKKwlvbmVuYW5kX2NoaXAuYmFzZSA9ICh2b2lkICopIENPTkZJR19TWVNfT05FTkFORF9CQVNFOwogCW9uZW5hbmRfbXRkLnByaXYgPSAmb25lbmFuZF9jaGlwOwogCiAJb25lbmFuZF9zY2FuKCZvbmVuYW5kX210ZCwgMSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9zcGkvc3BpX2ZsYXNoX2ludGVybmFsLmggYi9kcml2ZXJzL210ZC9zcGkvc3BpX2ZsYXNoX2ludGVybmFsLmgKaW5kZXggZTVmNzU4ZS4uNzVmNTkwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvc3BpL3NwaV9mbGFzaF9pbnRlcm5hbC5oCisrKyBiL2RyaXZlcnMvbXRkL3NwaS9zcGlfZmxhc2hfaW50ZXJuYWwuaApAQCAtNSw5ICs1LDkgQEAKICAqLwogCiAvKiBDb21tb24gcGFyYW1ldGVycyAqLwotI2RlZmluZSBTUElfRkxBU0hfUFJPR19USU1FT1VUCQkoKDEwICogQ0ZHX0haKSAvIDEwMDApCi0jZGVmaW5lIFNQSV9GTEFTSF9QQUdFX0VSQVNFX1RJTUVPVVQJKCg1MCAqIENGR19IWikgLyAxMDAwKQotI2RlZmluZSBTUElfRkxBU0hfU0VDVE9SX0VSQVNFX1RJTUVPVVQJKDEwICogQ0ZHX0haKQorI2RlZmluZSBTUElfRkxBU0hfUFJPR19USU1FT1VUCQkoKDEwICogQ09ORklHX1NZU19IWikgLyAxMDAwKQorI2RlZmluZSBTUElfRkxBU0hfUEFHRV9FUkFTRV9USU1FT1VUCSgoNTAgKiBDT05GSUdfU1lTX0haKSAvIDEwMDApCisjZGVmaW5lIFNQSV9GTEFTSF9TRUNUT1JfRVJBU0VfVElNRU9VVAkoMTAgKiBDT05GSUdfU1lTX0haKQogCiAvKiBDb21tb24gY29tbWFuZHMgKi8KICNkZWZpbmUgQ01EX1JFQURfSUQJCQkweDlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9zcGkvc3RtaWNyby5jIGIvZHJpdmVycy9tdGQvc3BpL3N0bWljcm8uYwppbmRleCBjOTk5YjEyLi5iOGI4MzVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9zcGkvc3RtaWNyby5jCisrKyBiL2RyaXZlcnMvbXRkL3NwaS9zdG1pY3JvLmMKQEAgLTI5NSw3ICsyOTUsNyBAQAogCQl9CiAKIAkJLyogVXAgdG8gMiBzZWNvbmRzICovCi0JCXJldCA9IHN0bWljcm9fd2FpdF9yZWFkeShmbGFzaCwgMiAqIENGR19IWik7CisJCXJldCA9IHN0bWljcm9fd2FpdF9yZWFkeShmbGFzaCwgMiAqIENPTkZJR19TWVNfSFopOwogCQlpZiAocmV0IDwgMCkgewogCQkJZGVidWcoIlNGOiBTVE1pY3JvIHBhZ2UgZXJhc2UgdGltZWQgb3V0XG4iKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYmNtNTcweC5jIGIvZHJpdmVycy9uZXQvYmNtNTcweC5jCmluZGV4IDZiMjhiOTUuLjE4NTc2NGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2JjbTU3MHguYworKysgYi9kcml2ZXJzL25ldC9iY201NzB4LmMKQEAgLTQzOSw5ICs0MzksOSBAQAogCS8qIFNldHVwIHRpbWVyIGRlbGF5cyAqLwogCWlmIChUM19BU0lDX1JFViAocERldmljZS0+Q2hpcFJldklkKSA9PSBUM19BU0lDX1JFVl81NzAxKSB7CiAJCXBEZXZpY2UtPlVzZVRhZ2dlZFN0YXR1cyA9IFRSVUU7Ci0JCXBVbURldmljZS0+dGltZXJfaW50ZXJ2YWwgPSBDRkdfSFo7CisJCXBVbURldmljZS0+dGltZXJfaW50ZXJ2YWwgPSBDT05GSUdfU1lTX0haOwogCX0gZWxzZSB7Ci0JCXBVbURldmljZS0+dGltZXJfaW50ZXJ2YWwgPSBDRkdfSFogLyA1MDsKKwkJcFVtRGV2aWNlLT50aW1lcl9pbnRlcnZhbCA9IENPTkZJR19TWVNfSFogLyA1MDsKIAl9CiAKIAkvKiBHcmFiIG5hbWUgLi4uLiAqLwpAQCAtNDU4LDE1ICs0NTgsMTUgQEAKIAlwVW1EZXZpY2UtPnJ4X2xhc3RfY250ID0gcFVtRGV2aWNlLT50eF9sYXN0X2NudCA9IDA7CiAKIAkvKiBkZWxheSBmb3IgNCBzZWNvbmRzICovCi0JcFVtRGV2aWNlLT5kZWxheWVkX2xpbmtfaW5kID0gKDQgKiBDRkdfSFopIC8gcFVtRGV2aWNlLT50aW1lcl9pbnRlcnZhbDsKKwlwVW1EZXZpY2UtPmRlbGF5ZWRfbGlua19pbmQgPSAoNCAqIENPTkZJR19TWVNfSFopIC8gcFVtRGV2aWNlLT50aW1lcl9pbnRlcnZhbDsKIAotCXBVbURldmljZS0+YWRhcHRpdmVfZXhwaXJ5ID0gQ0ZHX0haIC8gcFVtRGV2aWNlLT50aW1lcl9pbnRlcnZhbDsKKwlwVW1EZXZpY2UtPmFkYXB0aXZlX2V4cGlyeSA9IENPTkZJR19TWVNfSFogLyBwVW1EZXZpY2UtPnRpbWVyX2ludGVydmFsOwogCiAJLyogU29tZXRpbWVzIHdlIGdldCBzcHVyaW91cyBpbnRzLiBhZnRlciByZXNldCB3aGVuIGxpbmsgaXMgZG93bi4gKi8KIAkvKiBUaGlzIGZpZWxkIHRlbGxzIHRoZSBpc3IgdG8gc2VydmljZSB0aGUgaW50LiBldmVuIGlmIHRoZXJlIGlzICovCiAJLyogbm8gc3RhdHVzIGJsb2NrIHVwZGF0ZS4gKi8KIAlwVW1EZXZpY2UtPmFkYXB0ZXJfanVzdF9pbml0ZWQgPQotCSAgICAoMyAqIENGR19IWikgLyBwVW1EZXZpY2UtPnRpbWVyX2ludGVydmFsOworCSAgICAoMyAqIENPTkZJR19TWVNfSFopIC8gcFVtRGV2aWNlLT50aW1lcl9pbnRlcnZhbDsKIAogCS8qIEluaXRpYWxpemUgNTcweCAqLwogCWlmIChMTV9Jbml0aWFsaXplQWRhcHRlciAocERldmljZSkgIT0gTE1fU1RBVFVTX1NVQ0NFU1MpIHsKQEAgLTEwNDYsOSArMTA0Niw5IEBACiAKIAlpZiAoVDNfQVNJQ19SRVYgKHBEZXZpY2UtPkNoaXBSZXZJZCkgPT0gVDNfQVNJQ19SRVZfNTcwMSkgewogCQlwRGV2aWNlLT5Vc2VUYWdnZWRTdGF0dXMgPSBUUlVFOwotCQlwVW1EZXZpY2UtPnRpbWVyX2ludGVydmFsID0gQ0ZHX0haOworCQlwVW1EZXZpY2UtPnRpbWVyX2ludGVydmFsID0gQ09ORklHX1NZU19IWjsKIAl9IGVsc2UgewotCQlwVW1EZXZpY2UtPnRpbWVyX2ludGVydmFsID0gQ0ZHX0haIC8gNTA7CisJCXBVbURldmljZS0+dGltZXJfaW50ZXJ2YWwgPSBDT05GSUdfU1lTX0haIC8gNTA7CiAJfQogCiAJcERldmljZS0+VHhQYWNrZXREZXNjQ250ID0gdHhfcGt0X2Rlc2NfY250W2luZGV4XTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JmaW5fbWFjLmMgYi9kcml2ZXJzL25ldC9iZmluX21hYy5jCmluZGV4IGM1ZTc0YjguLjUwNGZkMTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2JmaW5fbWFjLmMKKysrIGIvZHJpdmVycy9uZXQvYmZpbl9tYWMuYwpAQCAtNDY2LDcgKzQ2Niw3IEBACiAJcmV0dXJuIGJ1ZjsKIH0KIAotI2lmIGRlZmluZWQoQ09ORklHX1BPU1QpICYmIGRlZmluZWQoQ0ZHX1BPU1RfRVRIRVIpCisjaWYgZGVmaW5lZChDT05GSUdfUE9TVCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BPU1RfRVRIRVIpCiBpbnQgZXRoZXJfcG9zdF90ZXN0KGludCBmbGFncykKIHsKIAl1Y2hhciBidWZbNjRdOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY3M4OTAwLmMgYi9kcml2ZXJzL25ldC9jczg5MDAuYwppbmRleCBhZTE5ODNhLi4zNWE5YmFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9jczg5MDAuYworKysgYi9kcml2ZXJzL25ldC9jczg5MDAuYwpAQCAtOTAsNyArOTAsNyBAQAogCXVkZWxheSAoMjAwMDAwKTsKIAkvKiBXYWl0IHVudGlsIHRoZSBjaGlwIGlzIHJlc2V0ICovCiAKLQl0bW8gPSBnZXRfdGltZXIgKDApICsgMSAqIENGR19IWjsKKwl0bW8gPSBnZXRfdGltZXIgKDApICsgMSAqIENPTkZJR19TWVNfSFo7CiAJd2hpbGUgKCgoKHVzID0gZ2V0X3JlZ19pbml0X2J1cyAoUFBfU2VsZlNUQVQpKSAmIFBQX1NlbGZTVEFUX0luaXREKSA9PSAwKQogCQkgICAmJiB0bW8gPCBnZXRfdGltZXIgKDApKQogCQkvKk5PUCovOwpAQCAtMjQ0LDcgKzI0NCw3IEBACiAjaWZkZWYgREVCVUcKIAkJcHJpbnRmICgiY3M6IHVuYWJsZSB0byBzZW5kIHBhY2tldDsgcmV0cnlpbmcuLi5cbiIpOwogI2VuZGlmCi0JCWZvciAodG1vID0gZ2V0X3RpbWVyICgwKSArIDUgKiBDRkdfSFo7IGdldF90aW1lciAoMCkgPCB0bW87KQorCQlmb3IgKHRtbyA9IGdldF90aW1lciAoMCkgKyA1ICogQ09ORklHX1NZU19IWjsgZ2V0X3RpbWVyICgwKSA8IHRtbzspCiAJCQkvKk5PUCovOwogCQlldGhfcmVzZXQgKCk7CiAJCWV0aF9yZWdpbml0ICgpOwpAQCAtMjU3LDcgKzI1Nyw3IEBACiAJCUNTODkwMF9SVERBVEEgPSAqYWRkcisrOwogCiAJLyogd2FpdCBmb3IgdHJhbnNmZXIgdG8gc3VjY2VlZCAqLwotCXRtbyA9IGdldF90aW1lciAoMCkgKyA1ICogQ0ZHX0haOworCXRtbyA9IGdldF90aW1lciAoMCkgKyA1ICogQ09ORklHX1NZU19IWjsKIAl3aGlsZSAoKHMgPSBnZXRfcmVnIChQUF9URVIpICYgfjB4MUYpID09IDApIHsKIAkJaWYgKGdldF90aW1lciAoMCkgPj0gdG1vKQogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kbTkwMDB4LmMgYi9kcml2ZXJzL25ldC9kbTkwMDB4LmMKaW5kZXggM2E2MWI4MC4uZmZiNzM5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZG05MDAweC5jCisrKyBiL2RyaXZlcnMvbmV0L2RtOTAwMHguYwpAQCAtNDQ3LDcgKzQ0Nyw3IEBACiAJRE05MDAwX2lvdyhETTkwMDBfVENSLCBUQ1JfVFhSRVEpOyAvKiBDbGVhcmVkIGFmdGVyIFRYIGNvbXBsZXRlICovCiAKIAkvKiB3YWl0IGZvciBlbmQgb2YgdHJhbnNtaXNzaW9uICovCi0JdG1vID0gZ2V0X3RpbWVyKDApICsgNSAqIENGR19IWjsKKwl0bW8gPSBnZXRfdGltZXIoMCkgKyA1ICogQ09ORklHX1NZU19IWjsKIAl3aGlsZSAoICEoRE05MDAwX2lvcihETTkwMDBfTlNSKSAmIChOU1JfVFgxRU5EIHwgTlNSX1RYMkVORCkpIHx8CiAJCSEoRE05MDAwX2lvcihETTkwMDBfSVNSKSAmIElNUl9QVE0pICkgewogCQlpZiAoZ2V0X3RpbWVyKDApID49IHRtbykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZWVwcm8xMDAuYyBiL2RyaXZlcnMvbmV0L2VlcHJvMTAwLmMKaW5kZXggZDY1MzljMC4uOWMwNmIyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZWVwcm8xMDAuYworKysgYi9kcml2ZXJzL25ldC9lZXBybzEwMC5jCkBAIC0xOTQsMTQgKzE5NCwxNCBAQAogCXVuc2lnbmVkIGNoYXIgcGFyYW1zWzBdOwogfTsKIAotI2RlZmluZSBDRkdfQ01EX0VMCQkweDgwMDAKLSNkZWZpbmUgQ0ZHX0NNRF9TVVNQRU5ECQkweDQwMDAKLSNkZWZpbmUgQ0ZHX0NNRF9JTlQJCTB4MjAwMAotI2RlZmluZSBDRkdfQ01EX0lBUwkJMHgwMDAxCS8qIGluZGl2aWR1YWwgYWRkcmVzcyBzZXR1cCAqLwotI2RlZmluZSBDRkdfQ01EX0NPTkZJR1VSRQkweDAwMDIJLyogY29uZmlndXJlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ01EX0VMCQkweDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DTURfU1VTUEVORAkJMHg0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ01EX0lOVAkJMHgyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ01EX0lBUwkJMHgwMDAxCS8qIGluZGl2aWR1YWwgYWRkcmVzcyBzZXR1cCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NNRF9DT05GSUdVUkUJMHgwMDAyCS8qIGNvbmZpZ3VyZSAqLwogCi0jZGVmaW5lIENGR19TVEFUVVNfQwkJMHg4MDAwCi0jZGVmaW5lIENGR19TVEFUVVNfT0sJCTB4MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NUQVRVU19DCQkweDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TVEFUVVNfT0sJCTB4MjAwMAogCiAJLyogTWlzYy4KIAkgKi8KQEAgLTUyOSw3ICs1MjksNyBAQAogCXR4X25leHQgPSAoKHR4X25leHQgKyAxKSAlIE5VTV9UWF9ERVNDKTsKIAogCWNmZ19jbWQgPSAoc3RydWN0IGRlc2NyaXB0b3IgKikgJnR4X3JpbmdbdHhfY3VyXTsKLQljZmdfY21kLT5jb21tYW5kID0gY3B1X3RvX2xlMTYgKChDRkdfQ01EX1NVU1BFTkQgfCBDRkdfQ01EX0NPTkZJR1VSRSkpOworCWNmZ19jbWQtPmNvbW1hbmQgPSBjcHVfdG9fbGUxNiAoKENPTkZJR19TWVNfQ01EX1NVU1BFTkQgfCBDT05GSUdfU1lTX0NNRF9DT05GSUdVUkUpKTsKIAljZmdfY21kLT5zdGF0dXMgPSAwOwogCWNmZ19jbWQtPmxpbmsgPSBjcHVfdG9fbGUzMiAocGh5c190b19idXMgKCh1MzIpICYgdHhfcmluZ1t0eF9uZXh0XSkpOwogCkBAIC01MzcsNyArNTM3LDcgQEAKIAkJCXNpemVvZiAoaTgyNTU4X2NvbmZpZ19jbWQpKTsKIAogCWlmICghd2FpdF9mb3JfZWVwcm8xMDAgKGRldikpIHsKLQkJcHJpbnRmICgiRXJyb3ItLS1DRkdfQ01EX0NPTkZJR1VSRTogQ2FuIG5vdCByZXNldCBldGhlcm5ldCBjb250cm9sbGVyLlxuIik7CisJCXByaW50ZiAoIkVycm9yLS0tQ09ORklHX1NZU19DTURfQ09ORklHVVJFOiBDYW4gbm90IHJlc2V0IGV0aGVybmV0IGNvbnRyb2xsZXIuXG4iKTsKIAkJZ290byBEb25lOwogCX0KIApAQCAtNTQ1LDcgKzU0NSw3IEBACiAJT1VUVyAoZGV2LCBTQ0JfTSB8IENVX1NUQVJULCBTQ0JDbWQpOwogCiAJZm9yIChpID0gMDsKLQkgICAgICEobGUxNl90b19jcHUgKHR4X3JpbmdbdHhfY3VyXS5zdGF0dXMpICYgQ0ZHX1NUQVRVU19DKTsKKwkgICAgICEobGUxNl90b19jcHUgKHR4X3JpbmdbdHhfY3VyXS5zdGF0dXMpICYgQ09ORklHX1NZU19TVEFUVVNfQyk7CiAJICAgICBpKyspIHsKIAkJaWYgKGkgPj0gVE9VVF9MT09QKSB7CiAJCQlwcmludGYgKCIlczogVHggZXJyb3IgYnVmZmVyIG5vdCByZWFkeVxuIiwgZGV2LT5uYW1lKTsKQEAgLTU1Myw3ICs1NTMsNyBAQAogCQl9CiAJfQogCi0JaWYgKCEobGUxNl90b19jcHUgKHR4X3JpbmdbdHhfY3VyXS5zdGF0dXMpICYgQ0ZHX1NUQVRVU19PSykpIHsKKwlpZiAoIShsZTE2X3RvX2NwdSAodHhfcmluZ1t0eF9jdXJdLnN0YXR1cykgJiBDT05GSUdfU1lTX1NUQVRVU19PSykpIHsKIAkJcHJpbnRmICgiVFggZXJyb3Igc3RhdHVzID0gMHglMDhYXG4iLAogCQkJbGUxNl90b19jcHUgKHR4X3JpbmdbdHhfY3VyXS5zdGF0dXMpKTsKIAkJZ290byBEb25lOwpAQCAtNTY1LDcgKzU2NSw3IEBACiAJdHhfbmV4dCA9ICgodHhfbmV4dCArIDEpICUgTlVNX1RYX0RFU0MpOwogCiAJaWFzX2NtZCA9IChzdHJ1Y3QgZGVzY3JpcHRvciAqKSAmdHhfcmluZ1t0eF9jdXJdOwotCWlhc19jbWQtPmNvbW1hbmQgPSBjcHVfdG9fbGUxNiAoKENGR19DTURfU1VTUEVORCB8IENGR19DTURfSUFTKSk7CisJaWFzX2NtZC0+Y29tbWFuZCA9IGNwdV90b19sZTE2ICgoQ09ORklHX1NZU19DTURfU1VTUEVORCB8IENPTkZJR19TWVNfQ01EX0lBUykpOwogCWlhc19jbWQtPnN0YXR1cyA9IDA7CiAJaWFzX2NtZC0+bGluayA9IGNwdV90b19sZTMyIChwaHlzX3RvX2J1cyAoKHUzMikgJiB0eF9yaW5nW3R4X25leHRdKSk7CiAKQEAgLTU4MSw3ICs1ODEsNyBAQAogCU9VVEwgKGRldiwgcGh5c190b19idXMgKCh1MzIpICYgdHhfcmluZ1t0eF9jdXJdKSwgU0NCUG9pbnRlcik7CiAJT1VUVyAoZGV2LCBTQ0JfTSB8IENVX1NUQVJULCBTQ0JDbWQpOwogCi0JZm9yIChpID0gMDsgIShsZTE2X3RvX2NwdSAodHhfcmluZ1t0eF9jdXJdLnN0YXR1cykgJiBDRkdfU1RBVFVTX0MpOworCWZvciAoaSA9IDA7ICEobGUxNl90b19jcHUgKHR4X3JpbmdbdHhfY3VyXS5zdGF0dXMpICYgQ09ORklHX1NZU19TVEFUVVNfQyk7CiAJCSBpKyspIHsKIAkJaWYgKGkgPj0gVE9VVF9MT09QKSB7CiAJCQlwcmludGYgKCIlczogVHggZXJyb3IgYnVmZmVyIG5vdCByZWFkeVxuIiwKQEAgLTU5MCw3ICs1OTAsNyBAQAogCQl9CiAJfQogCi0JaWYgKCEobGUxNl90b19jcHUgKHR4X3JpbmdbdHhfY3VyXS5zdGF0dXMpICYgQ0ZHX1NUQVRVU19PSykpIHsKKwlpZiAoIShsZTE2X3RvX2NwdSAodHhfcmluZ1t0eF9jdXJdLnN0YXR1cykgJiBDT05GSUdfU1lTX1NUQVRVU19PSykpIHsKIAkJcHJpbnRmICgiVFggZXJyb3Igc3RhdHVzID0gMHglMDhYXG4iLAogCQkJbGUxNl90b19jcHUgKHR4X3JpbmdbdHhfY3VyXS5zdGF0dXMpKTsKIAkJZ290byBEb25lOwpAQCAtNjQwLDcgKzY0MCw3IEBACiAJT1VUTCAoZGV2LCBwaHlzX3RvX2J1cyAoKHUzMikgJiB0eF9yaW5nW3R4X2N1cl0pLCBTQ0JQb2ludGVyKTsKIAlPVVRXIChkZXYsIFNDQl9NIHwgQ1VfU1RBUlQsIFNDQkNtZCk7CiAKLQlmb3IgKGkgPSAwOyAhKGxlMTZfdG9fY3B1ICh0eF9yaW5nW3R4X2N1cl0uc3RhdHVzKSAmIENGR19TVEFUVVNfQyk7CisJZm9yIChpID0gMDsgIShsZTE2X3RvX2NwdSAodHhfcmluZ1t0eF9jdXJdLnN0YXR1cykgJiBDT05GSUdfU1lTX1NUQVRVU19DKTsKIAkJIGkrKykgewogCQlpZiAoaSA+PSBUT1VUX0xPT1ApIHsKIAkJCXByaW50ZiAoIiVzOiBUeCBlcnJvciBidWZmZXIgbm90IHJlYWR5XG4iLCBkZXYtPm5hbWUpOwpAQCAtNjQ4LDcgKzY0OCw3IEBACiAJCX0KIAl9CiAKLQlpZiAoIShsZTE2X3RvX2NwdSAodHhfcmluZ1t0eF9jdXJdLnN0YXR1cykgJiBDRkdfU1RBVFVTX09LKSkgeworCWlmICghKGxlMTZfdG9fY3B1ICh0eF9yaW5nW3R4X2N1cl0uc3RhdHVzKSAmIENPTkZJR19TWVNfU1RBVFVTX09LKSkgewogCQlwcmludGYgKCJUWCBlcnJvciBzdGF0dXMgPSAweCUwOFhcbiIsCiAJCQlsZTE2X3RvX2NwdSAodHhfcmluZ1t0eF9jdXJdLnN0YXR1cykpOwogCQlnb3RvIERvbmU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9mc2xfbWNkbWFmZWMuYyBiL2RyaXZlcnMvbmV0L2ZzbF9tY2RtYWZlYy5jCmluZGV4IDU5NTI0YTUuLmQwNTYwMTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2ZzbF9tY2RtYWZlYy5jCisrKyBiL2RyaXZlcnMvbmV0L2ZzbF9tY2RtYWZlYy5jCkBAIC01NiwxMiArNTYsMTIgQEAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCiBzdHJ1Y3QgZmVjX2luZm9fZG1hIGZlY19pbmZvW10gPSB7Ci0jaWZkZWYgQ0ZHX0ZFQzBfSU9CQVNFCisjaWZkZWYgQ09ORklHX1NZU19GRUMwX0lPQkFTRQogCXsKIAkgMCwJCQkvKiBpbmRleCAqLwotCSBDRkdfRkVDMF9JT0JBU0UsCS8qIGlvIGJhc2UgKi8KLQkgQ0ZHX0ZFQzBfUElOTVVYLAkvKiBncGlvIHBpbiBtdXhpbmcgKi8KLQkgQ0ZHX0ZFQzBfTUlJQkFTRSwJLyogbWlpIGJhc2UgKi8KKwkgQ09ORklHX1NZU19GRUMwX0lPQkFTRSwJLyogaW8gYmFzZSAqLworCSBDT05GSUdfU1lTX0ZFQzBfUElOTVVYLAkvKiBncGlvIHBpbiBtdXhpbmcgKi8KKwkgQ09ORklHX1NZU19GRUMwX01JSUJBU0UsCS8qIG1paSBiYXNlICovCiAJIC0xLAkJCS8qIHBoeV9hZGRyICovCiAJIDAsCQkJLyogZHVwbGV4IGFuZCBzcGVlZCAqLwogCSAwLAkJCS8qIHBoeSBuYW1lICovCkBAIC04MywxNyArODMsMTcgQEAKIAkgMCwJCQkvKiBjbGVhblRiZE51bSAqLwogCSB9LAogI2VuZGlmCi0jaWZkZWYgQ0ZHX0ZFQzFfSU9CQVNFCisjaWZkZWYgQ09ORklHX1NZU19GRUMxX0lPQkFTRQogCXsKIAkgMSwJCQkvKiBpbmRleCAqLwotCSBDRkdfRkVDMV9JT0JBU0UsCS8qIGlvIGJhc2UgKi8KLQkgQ0ZHX0ZFQzFfUElOTVVYLAkvKiBncGlvIHBpbiBtdXhpbmcgKi8KLQkgQ0ZHX0ZFQzFfTUlJQkFTRSwJLyogbWlpIGJhc2UgKi8KKwkgQ09ORklHX1NZU19GRUMxX0lPQkFTRSwJLyogaW8gYmFzZSAqLworCSBDT05GSUdfU1lTX0ZFQzFfUElOTVVYLAkvKiBncGlvIHBpbiBtdXhpbmcgKi8KKwkgQ09ORklHX1NZU19GRUMxX01JSUJBU0UsCS8qIG1paSBiYXNlICovCiAJIC0xLAkJCS8qIHBoeV9hZGRyICovCiAJIDAsCQkJLyogZHVwbGV4IGFuZCBzcGVlZCAqLwogCSAwLAkJCS8qIHBoeSBuYW1lICovCiAJIDAsCQkJLyogcGh5IG5hbWUgaW5pdCAqLwotI2lmZGVmIENGR19ETUFfVVNFX0lOVFNSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0RNQV9VU0VfSU5UU1JBTQogCSAoY2JkX3QgKilEQlVGX0xFTkdUSCwJLyogUlggQkQgKi8KICNlbHNlCiAJIDAsCQkJLyogUlggQkQgKi8KQEAgLTIwMyw3ICsyMDMsNyBAQAogCW1paXBoeV9yZWFkKGRldi0+bmFtZSwgaW5mby0+cGh5X2FkZHIsIFBIWV9CTVNSLCAmcGh5U3RhdHVzKTsKIAogCS8qIHByb2Nlc3MgYWxsIHRoZSBjb25zdW1lZCBUQkRzICovCi0Jd2hpbGUgKGluZm8tPmNsZWFuVGJkTnVtIDwgQ0ZHX1RYX0VUSF9CVUZGRVIpIHsKKwl3aGlsZSAoaW5mby0+Y2xlYW5UYmROdW0gPCBDT05GSUdfU1lTX1RYX0VUSF9CVUZGRVIpIHsKIAkJcFVzZWRUYmQgPSAmaW5mby0+dHhiZFtpbmZvLT51c2VkVGJkSWR4XTsKIAkJaWYgKHBVc2VkVGJkLT5jYmRfc2MgJiBCRF9FTkVUX1RYX1JFQURZKSB7CiAjaWZkZWYgRVRfREVCVUcKQEAgLTIxNCwxNCArMjE0LDE0IEBACiAJCX0KIAogCQkvKiBjbGVhbiB0aGlzIGJ1ZmZlciBkZXNjcmlwdG9yICovCi0JCWlmIChpbmZvLT51c2VkVGJkSWR4ID09IChDRkdfVFhfRVRIX0JVRkZFUiAtIDEpKQorCQlpZiAoaW5mby0+dXNlZFRiZElkeCA9PSAoQ09ORklHX1NZU19UWF9FVEhfQlVGRkVSIC0gMSkpCiAJCQlwVXNlZFRiZC0+Y2JkX3NjID0gQkRfRU5FVF9UWF9XUkFQOwogCQllbHNlCiAJCQlwVXNlZFRiZC0+Y2JkX3NjID0gMDsKIAogCQkvKiB1cGRhdGUgc29tZSBpbmRlY2VzIGZvciBhIGNvcnJlY3QgaGFuZGxpbmcgb2YgdGhlIFRCRCByaW5nICovCiAJCWluZm8tPmNsZWFuVGJkTnVtKys7Ci0JCWluZm8tPnVzZWRUYmRJZHggPSAoaW5mby0+dXNlZFRiZElkeCArIDEpICUgQ0ZHX1RYX0VUSF9CVUZGRVI7CisJCWluZm8tPnVzZWRUYmRJZHggPSAoaW5mby0+dXNlZFRiZElkeCArIDEpICUgQ09ORklHX1NZU19UWF9FVEhfQlVGRkVSOwogCX0KIAogCS8qIENoZWNrIGZvciB2YWxpZCBsZW5ndGggb2YgZGF0YS4gKi8KQEAgLTI0MCw3ICsyNDAsNyBAQAogCXBUYmQtPmNiZF9kYXRsZW4gPSBsZW5ndGg7CiAJcFRiZC0+Y2JkX2J1ZmFkZHIgPSAodTMyKSBwYWNrZXQ7CiAJcFRiZC0+Y2JkX3NjIHw9IEJEX0VORVRfVFhfTEFTVCB8IEJEX0VORVRfVFhfVEMgfCBCRF9FTkVUX1RYX1JFQURZOwotCWluZm8tPnR4SWR4ID0gKGluZm8tPnR4SWR4ICsgMSkgJSBDRkdfVFhfRVRIX0JVRkZFUjsKKwlpbmZvLT50eElkeCA9IChpbmZvLT50eElkeCArIDEpICUgQ09ORklHX1NZU19UWF9FVEhfQlVGRkVSOwogCiAJLyogRW5hYmxlIERNQSB0cmFuc21pdCB0YXNrICovCiAJTUNEX2NvbnRpbkRtYShpbmZvLT50eFRhc2spOwpAQCAtMzc5LDE1ICszNzksMTUgQEAKIAlmZWNfaGFsdChkZXYpOwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX01JSSkgfHwgZGVmaW5lZCAoQ09ORklHX01JSSkgfHwgXAotCWRlZmluZWQgKENGR19ESVNDT1ZFUl9QSFkpCisJZGVmaW5lZCAoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpCiAKIAltaWlfaW5pdCgpOwogCiAJc2V0X2ZlY19kdXBsZXhfc3BlZWQoZmVjcCwgYmQsIGluZm8tPmR1cF9zcGQpOwogI2Vsc2UKLSNpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorI2lmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogCXNldF9mZWNfZHVwbGV4X3NwZWVkKGZlY3AsIGJkLCAoRkVDRFVQTEVYIDw8IDE2KSB8IEZFQ1NQRUVEKTsKLSNlbmRpZgkJCQkvKiBpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWSAqLworI2VuZGlmCQkJCS8qIGlmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogI2VuZGlmCQkJCS8qIENPTkZJR19DTURfTUlJIHx8IENPTkZJR19NSUkgKi8KIAogCS8qIFdlIHVzZSBzdHJpY3RseSBwb2xsaW5nIG1vZGUgb25seSAqLwpAQCAtMzk3LDcgKzM5Nyw3IEBACiAJZmVjcC0+ZWlyID0gMHhmZmZmZmZmZjsKIAogCS8qIFNldCBzdGF0aW9uIGFkZHJlc3MgICAqLwotCWlmICgodTMyKSBmZWNwID09IENGR19GRUMwX0lPQkFTRSkgeworCWlmICgodTMyKSBmZWNwID09IENPTkZJR19TWVNfRkVDMF9JT0JBU0UpIHsKIAkJZmVjX3NldF9od2FkZHIoZmVjcCwgYmQtPmJpX2VuZXRhZGRyKTsKIAl9IGVsc2UgewogCQlmZWNfc2V0X2h3YWRkcihmZWNwLCBiZC0+YmlfZW5ldDFhZGRyKTsKQEAgLTQyMSwxNSArNDIxLDE1IEBACiAKIAkvKiBTZXR1cCBFdGhlcm5ldCBUcmFuc21pdHRlciBCdWZmZXIgRGVzY3JpcHRvcnMgKDEzLjE0LjI0LjE5KQogCSAqIFNldHRpbmdzOiAgICBMYXN0LCBUeCBDUkMgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX1RYX0VUSF9CVUZGRVI7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX1RYX0VUSF9CVUZGRVI7IGkrKykgewogCQlpbmZvLT50eGJkW2ldLmNiZF9zYyA9IDA7CiAJCWluZm8tPnR4YmRbaV0uY2JkX2RhdGxlbiA9IDA7CiAJCWluZm8tPnR4YmRbaV0uY2JkX2J1ZmFkZHIgPSAodWludCkgKCZpbmZvLT50eGJ1ZlswXSk7CiAJfQotCWluZm8tPnR4YmRbQ0ZHX1RYX0VUSF9CVUZGRVIgLSAxXS5jYmRfc2MgfD0gQkRfRU5FVF9UWF9XUkFQOworCWluZm8tPnR4YmRbQ09ORklHX1NZU19UWF9FVEhfQlVGRkVSIC0gMV0uY2JkX3NjIHw9IEJEX0VORVRfVFhfV1JBUDsKIAogCWluZm8tPnVzZWRUYmRJZHggPSAwOwotCWluZm8tPmNsZWFuVGJkTnVtID0gQ0ZHX1RYX0VUSF9CVUZGRVI7CisJaW5mby0+Y2xlYW5UYmROdW0gPSBDT05GSUdfU1lTX1RYX0VUSF9CVUZGRVI7CiAKIAkvKiBTZXQgUnggRklGTyBhbGFybSBhbmQgZ3JhbnVsYXJpdHkgdmFsdWUgKi8KIAlmZWNwLT5yZmNyID0gMHgwYzAwMDAwMDsKQEAgLTUxNiwxNCArNTE2LDE0IEBACiB7CiAJc3RydWN0IGV0aF9kZXZpY2UgKmRldjsKIAlpbnQgaTsKLSNpZmRlZiBDRkdfRE1BX1VTRV9JTlRTUkFNCi0JdTMyIHRtcCA9IENGR19JTlRTUkFNICsgMHgyMDAwOworI2lmZGVmIENPTkZJR19TWVNfRE1BX1VTRV9JTlRTUkFNCisJdTMyIHRtcCA9IENPTkZJR19TWVNfSU5UU1JBTSArIDB4MjAwMDsKICNlbmRpZgogCiAJZm9yIChpID0gMDsgaSA8IHNpemVvZihmZWNfaW5mbykgLyBzaXplb2YoZmVjX2luZm9bMF0pOyBpKyspIHsKIAogCQlkZXYgPQotCQkgICAgKHN0cnVjdCBldGhfZGV2aWNlICopbWVtYWxpZ24oQ0ZHX0NBQ0hFTElORV9TSVpFLAorCQkgICAgKHN0cnVjdCBldGhfZGV2aWNlICopbWVtYWxpZ24oQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSwKIAkJCQkJCSAgc2l6ZW9mICpkZXYpOwogCQlpZiAoZGV2ID09IE5VTEwpCiAJCQloYW5nKCk7CkBAIC01MzksNyArNTM5LDcgQEAKIAkJZGV2LT5yZWN2ID0gZmVjX3JlY3Y7CiAKIAkJLyogc2V0dXAgUmVjZWl2ZSBhbmQgVHJhbnNtaXQgYnVmZmVyIGRlc2NyaXB0b3IgKi8KLSNpZmRlZiBDRkdfRE1BX1VTRV9JTlRTUkFNCisjaWZkZWYgQ09ORklHX1NZU19ETUFfVVNFX0lOVFNSQU0KIAkJZmVjX2luZm9baV0ucnhiZCA9IChjYmRfdCAqKSgodTMyKWZlY19pbmZvW2ldLnJ4YmQgKyB0bXApOwogCQl0bXAgPSAodTMyKWZlY19pbmZvW2ldLnJ4YmQ7CiAJCWZlY19pbmZvW2ldLnR4YmQgPQpAQCAtNTQ4LDE3ICs1NDgsMTcgQEAKIAkJdG1wID0gKHUzMilmZWNfaW5mb1tpXS50eGJkOwogCQlmZWNfaW5mb1tpXS50eGJ1ZiA9CiAJCSAgICAoY2hhciAqKSgodTMyKWZlY19pbmZvW2ldLnR4YnVmICsgdG1wICsKLQkJICAgIChDRkdfVFhfRVRIX0JVRkZFUiAqIHNpemVvZihjYmRfdCkpKTsKKwkJICAgIChDT05GSUdfU1lTX1RYX0VUSF9CVUZGRVIgKiBzaXplb2YoY2JkX3QpKSk7CiAJCXRtcCA9ICh1MzIpZmVjX2luZm9baV0udHhidWY7CiAjZWxzZQogCQlmZWNfaW5mb1tpXS5yeGJkID0KLQkJICAgIChjYmRfdCAqKSBtZW1hbGlnbihDRkdfQ0FDSEVMSU5FX1NJWkUsCisJCSAgICAoY2JkX3QgKikgbWVtYWxpZ24oQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSwKIAkJCQkgICAgICAgKFBLVEJVRlNSWCAqIHNpemVvZihjYmRfdCkpKTsKIAkJZmVjX2luZm9baV0udHhiZCA9Ci0JCSAgICAoY2JkX3QgKikgbWVtYWxpZ24oQ0ZHX0NBQ0hFTElORV9TSVpFLAotCQkJCSAgICAgICAoQ0ZHX1RYX0VUSF9CVUZGRVIgKiBzaXplb2YoY2JkX3QpKSk7CisJCSAgICAoY2JkX3QgKikgbWVtYWxpZ24oQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSwKKwkJCQkgICAgICAgKENPTkZJR19TWVNfVFhfRVRIX0JVRkZFUiAqIHNpemVvZihjYmRfdCkpKTsKIAkJZmVjX2luZm9baV0udHhidWYgPQotCQkgICAgKGNoYXIgKiltZW1hbGlnbihDRkdfQ0FDSEVMSU5FX1NJWkUsIERCVUZfTEVOR1RIKTsKKwkJICAgIChjaGFyICopbWVtYWxpZ24oQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSwgREJVRl9MRU5HVEgpOwogI2VuZGlmCiAKICNpZmRlZiBFVF9ERUJVRwpAQCAtNTY2LDcgKzU2Niw3IEBACiAJCSAgICAgICAoaW50KWZlY19pbmZvW2ldLnJ4YmQsIChpbnQpZmVjX2luZm9baV0udHhiZCk7CiAjZW5kaWYKIAotCQlmZWNfaW5mb1tpXS5waHlfbmFtZSA9IChjaGFyICopbWVtYWxpZ24oQ0ZHX0NBQ0hFTElORV9TSVpFLCAzMik7CisJCWZlY19pbmZvW2ldLnBoeV9uYW1lID0gKGNoYXIgKiltZW1hbGlnbihDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFLCAzMik7CiAKIAkJZXRoX3JlZ2lzdGVyKGRldik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2xhbjkxYzk2LmMgYi9kcml2ZXJzL25ldC9sYW45MWM5Ni5jCmluZGV4IGMyM2E0MDAuLjMxOGJkZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2xhbjkxYzk2LmMKKysrIGIvZHJpdmVycy9uZXQvbGFuOTFjOTYuYwpAQCAtMjY3LDcgKzI2Nyw3IEBACiAKIHN0YXRpYyBpbnQgcG9sbDRpbnQgKGJ5dGUgbWFzaywgaW50IHRpbWVvdXQpCiB7Ci0JaW50IHRtbyA9IGdldF90aW1lciAoMCkgKyB0aW1lb3V0ICogQ0ZHX0haOworCWludCB0bW8gPSBnZXRfdGltZXIgKDApICsgdGltZW91dCAqIENPTkZJR19TWVNfSFo7CiAJaW50IGlzX3RpbWVvdXQgPSAwOwogCXdvcmQgb2xkX2JhbmsgPSBTTUNfaW53IChMQU45MUM5Nl9CQU5LX1NFTEVDVCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21hY2IuYyBiL2RyaXZlcnMvbmV0L21hY2IuYwppbmRleCAwOGJlYmY3Li45OGU4YzczIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9tYWNiLmMKKysrIGIvZHJpdmVycy9uZXQvbWFjYi5jCkBAIC0yOCw3ICsyOCw3IEBACiAgKiBhbGxvY2F0ZSBvdXIgb3duLCBidXQgd2UgbmVlZCBvbmUgc3VjaCBidWZmZXIgaW4gY2FzZSBhIHBhY2tldAogICogd3JhcHMgYXJvdW5kIHRoZSBETUEgcmluZyBzbyB0aGF0IHdlIGhhdmUgdG8gY29weSBpdC4KICAqCi0gKiBUaGVyZWZvcmUsIGRlZmluZSBDRkdfUlhfRVRIX0JVRkZFUiB0byAxIGluIHRoZSBib2FyZC1zcGVjaWZpYworICogVGhlcmVmb3JlLCBkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSIHRvIDEgaW4gdGhlIGJvYXJkLXNwZWNpZmljCiAgKiBjb25maWd1cmF0aW9uIGhlYWRlci4gIFRoaXMgd2F5LCB0aGUgY29yZSBhbGxvY2F0ZXMgb25lIFJYIGJ1ZmZlcgogICogYW5kIG9uZSBUWCBidWZmZXIsIGVhY2ggb2Ygd2hpY2ggY2FuIGhvbGQgYSBldGhlcm5ldCBwYWNrZXQgb2YKICAqIG1heGltdW0gc2l6ZS4KQEAgLTUyLDExICs1MiwxMSBAQAogCiAjZGVmaW5lIGJhcnJpZXIoKSBhc20gdm9sYXRpbGUoIiIgOjo6ICJtZW1vcnkiKQogCi0jZGVmaW5lIENGR19NQUNCX1JYX0JVRkZFUl9TSVpFCQk0MDk2Ci0jZGVmaW5lIENGR19NQUNCX1JYX1JJTkdfU0laRQkJKENGR19NQUNCX1JYX0JVRkZFUl9TSVpFIC8gMTI4KQotI2RlZmluZSBDRkdfTUFDQl9UWF9SSU5HX1NJWkUJCTE2Ci0jZGVmaW5lIENGR19NQUNCX1RYX1RJTUVPVVQJCTEwMDAKLSNkZWZpbmUgQ0ZHX01BQ0JfQVVUT05FR19USU1FT1VUCTUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQUNCX1JYX0JVRkZFUl9TSVpFCQk0MDk2CisjZGVmaW5lIENPTkZJR19TWVNfTUFDQl9SWF9SSU5HX1NJWkUJCShDT05GSUdfU1lTX01BQ0JfUlhfQlVGRkVSX1NJWkUgLyAxMjgpCisjZGVmaW5lIENPTkZJR19TWVNfTUFDQl9UWF9SSU5HX1NJWkUJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfTUFDQl9UWF9USU1FT1VUCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFDQl9BVVRPTkVHX1RJTUVPVVQJNTAwMDAwMAogCiBzdHJ1Y3QgbWFjYl9kbWFfZGVzYyB7CiAJdTMyCWFkZHI7CkBAIC0xNzgsNyArMTc4LDcgQEAKIAogCWN0cmwgPSBsZW5ndGggJiBUWEJVRl9GUk1MRU5fTUFTSzsKIAljdHJsIHw9IFRYQlVGX0ZSQU1FX0VORDsKLQlpZiAodHhfaGVhZCA9PSAoQ0ZHX01BQ0JfVFhfUklOR19TSVpFIC0gMSkpIHsKKwlpZiAodHhfaGVhZCA9PSAoQ09ORklHX1NZU19NQUNCX1RYX1JJTkdfU0laRSAtIDEpKSB7CiAJCWN0cmwgfD0gVFhCVUZfV1JBUDsKIAkJbWFjYi0+dHhfaGVhZCA9IDA7CiAJfSBlbHNlCkBAIC0xOTMsNyArMTkzLDcgQEAKIAkgKiBJIGd1ZXNzIHRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIG5ldHdvcmtpbmcgY29yZSBtYXkKIAkgKiByZS11c2UgdGhlIHRyYW5zbWl0IGJ1ZmZlciBhcyBzb29uIGFzIHdlIHJldHVybi4uLgogCSAqLwotCWZvciAoaSA9IDA7IGkgPD0gQ0ZHX01BQ0JfVFhfVElNRU9VVDsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8PSBDT05GSUdfU1lTX01BQ0JfVFhfVElNRU9VVDsgaSsrKSB7CiAJCWJhcnJpZXIoKTsKIAkJY3RybCA9IG1hY2ItPnR4X3JpbmdbdHhfaGVhZF0uY3RybDsKIAkJaWYgKGN0cmwgJiBUWEJVRl9VU0VEKQpAQCAtMjAzLDcgKzIwMyw3IEBACiAKIAlkbWFfdW5tYXBfc2luZ2xlKHBhY2tldCwgbGVuZ3RoLCBwYWRkcik7CiAKLQlpZiAoaSA8PSBDRkdfTUFDQl9UWF9USU1FT1VUKSB7CisJaWYgKGkgPD0gQ09ORklHX1NZU19NQUNCX1RYX1RJTUVPVVQpIHsKIAkJaWYgKGN0cmwgJiBUWEJVRl9VTkRFUlJVTikKIAkJCXByaW50ZigiJXM6IFRYIHVuZGVycnVuXG4iLCBuZXRkZXYtPm5hbWUpOwogCQlpZiAoY3RybCAmIFRYQlVGX0VYSEFVU1RFRCkKQEAgLTIyNiw3ICsyMjYsNyBAQAogCXdoaWxlIChpID4gbmV3X3RhaWwpIHsKIAkJbWFjYi0+cnhfcmluZ1tpXS5hZGRyICY9IH5SWEFERFJfVVNFRDsKIAkJaSsrOwotCQlpZiAoaSA+IENGR19NQUNCX1JYX1JJTkdfU0laRSkKKwkJaWYgKGkgPiBDT05GSUdfU1lTX01BQ0JfUlhfUklOR19TSVpFKQogCQkJaSA9IDA7CiAJfQogCkBAIC0yNjUsNyArMjY1LDcgQEAKIAkJCWlmICh3cmFwcGVkKSB7CiAJCQkJdW5zaWduZWQgaW50IGhlYWRsZW4sIHRhaWxsZW47CiAKLQkJCQloZWFkbGVuID0gMTI4ICogKENGR19NQUNCX1JYX1JJTkdfU0laRQorCQkJCWhlYWRsZW4gPSAxMjggKiAoQ09ORklHX1NZU19NQUNCX1JYX1JJTkdfU0laRQogCQkJCQkJIC0gbWFjYi0+cnhfdGFpbCk7CiAJCQkJdGFpbGxlbiA9IGxlbmd0aCAtIGhlYWRsZW47CiAJCQkJbWVtY3B5KCh2b2lkICopTmV0UnhQYWNrZXRzWzBdLApAQCAtMjc2LDExICsyNzYsMTEgQEAKIAkJCX0KIAogCQkJTmV0UmVjZWl2ZShidWZmZXIsIGxlbmd0aCk7Ci0JCQlpZiAoKytyeF90YWlsID49IENGR19NQUNCX1JYX1JJTkdfU0laRSkKKwkJCWlmICgrK3J4X3RhaWwgPj0gQ09ORklHX1NZU19NQUNCX1JYX1JJTkdfU0laRSkKIAkJCQlyeF90YWlsID0gMDsKIAkJCXJlY2xhaW1fcnhfYnVmZmVycyhtYWNiLCByeF90YWlsKTsKIAkJfSBlbHNlIHsKLQkJCWlmICgrK3J4X3RhaWwgPj0gQ0ZHX01BQ0JfUlhfUklOR19TSVpFKSB7CisJCQlpZiAoKytyeF90YWlsID49IENPTkZJR19TWVNfTUFDQl9SWF9SSU5HX1NJWkUpIHsKIAkJCQl3cmFwcGVkID0gMTsKIAkJCQlyeF90YWlsID0gMDsKIAkJCX0KQEAgLTMwMyw3ICszMDMsNyBAQAogCW1hY2JfbWRpb193cml0ZShtYWNiLCBNSUlfQk1DUiwgKEJNQ1JfQU5FTkFCTEUKIAkJCQkJIHwgQk1DUl9BTlJFU1RBUlQpKTsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFDQl9BVVRPTkVHX1RJTUVPVVQgLyAxMDA7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BQ0JfQVVUT05FR19USU1FT1VUIC8gMTAwOyBpKyspIHsKIAkJc3RhdHVzID0gbWFjYl9tZGlvX3JlYWQobWFjYiwgTUlJX0JNU1IpOwogCQlpZiAoc3RhdHVzICYgQk1TUl9BTkVHQ09NUExFVEUpCiAJCQlicmVhazsKQEAgLTMzNyw3ICszMzcsNyBAQAogCQkvKiBUcnkgdG8gcmUtbmVnb3RpYXRlIGlmIHdlIGRvbid0IGhhdmUgbGluayBhbHJlYWR5LiAqLwogCQltYWNiX3BoeV9yZXNldChtYWNiKTsKIAotCQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BQ0JfQVVUT05FR19USU1FT1VUIC8gMTAwOyBpKyspIHsKKwkJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFDQl9BVVRPTkVHX1RJTUVPVVQgLyAxMDA7IGkrKykgewogCQkJc3RhdHVzID0gbWFjYl9tZGlvX3JlYWQobWFjYiwgTUlJX0JNU1IpOwogCQkJaWYgKHN0YXR1cyAmIEJNU1JfTFNUQVRVUykKIAkJCQlicmVhazsKQEAgLTM4OCwxNiArMzg4LDE2IEBACiAKIAkvKiBpbml0aWFsaXplIERNQSBkZXNjcmlwdG9ycyAqLwogCXBhZGRyID0gbWFjYi0+cnhfYnVmZmVyX2RtYTsKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BQ0JfUlhfUklOR19TSVpFOyBpKyspIHsKLQkJaWYgKGkgPT0gKENGR19NQUNCX1JYX1JJTkdfU0laRSAtIDEpKQorCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BQ0JfUlhfUklOR19TSVpFOyBpKyspIHsKKwkJaWYgKGkgPT0gKENPTkZJR19TWVNfTUFDQl9SWF9SSU5HX1NJWkUgLSAxKSkKIAkJCXBhZGRyIHw9IFJYQUREUl9XUkFQOwogCQltYWNiLT5yeF9yaW5nW2ldLmFkZHIgPSBwYWRkcjsKIAkJbWFjYi0+cnhfcmluZ1tpXS5jdHJsID0gMDsKIAkJcGFkZHIgKz0gMTI4OwogCX0KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BQ0JfVFhfUklOR19TSVpFOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQUNCX1RYX1JJTkdfU0laRTsgaSsrKSB7CiAJCW1hY2ItPnR4X3JpbmdbaV0uYWRkciA9IDA7Ci0JCWlmIChpID09IChDRkdfTUFDQl9UWF9SSU5HX1NJWkUgLSAxKSkKKwkJaWYgKGkgPT0gKENPTkZJR19TWVNfTUFDQl9UWF9SSU5HX1NJWkUgLSAxKSkKIAkJCW1hY2ItPnR4X3JpbmdbaV0uY3RybCA9IFRYQlVGX1VTRUQgfCBUWEJVRl9XUkFQOwogCQllbHNlCiAJCQltYWNiLT50eF9yaW5nW2ldLmN0cmwgPSBUWEJVRl9VU0VEOwpAQCAtNDczLDEyICs0NzMsMTIgQEAKIAogCW5ldGRldiA9ICZtYWNiLT5uZXRkZXY7CiAKLQltYWNiLT5yeF9idWZmZXIgPSBkbWFfYWxsb2NfY29oZXJlbnQoQ0ZHX01BQ0JfUlhfQlVGRkVSX1NJWkUsCisJbWFjYi0+cnhfYnVmZmVyID0gZG1hX2FsbG9jX2NvaGVyZW50KENPTkZJR19TWVNfTUFDQl9SWF9CVUZGRVJfU0laRSwKIAkJCQkJICAgICAmbWFjYi0+cnhfYnVmZmVyX2RtYSk7Ci0JbWFjYi0+cnhfcmluZyA9IGRtYV9hbGxvY19jb2hlcmVudChDRkdfTUFDQl9SWF9SSU5HX1NJWkUKKwltYWNiLT5yeF9yaW5nID0gZG1hX2FsbG9jX2NvaGVyZW50KENPTkZJR19TWVNfTUFDQl9SWF9SSU5HX1NJWkUKIAkJCQkJICAgKiBzaXplb2Yoc3RydWN0IG1hY2JfZG1hX2Rlc2MpLAogCQkJCQkgICAmbWFjYi0+cnhfcmluZ19kbWEpOwotCW1hY2ItPnR4X3JpbmcgPSBkbWFfYWxsb2NfY29oZXJlbnQoQ0ZHX01BQ0JfVFhfUklOR19TSVpFCisJbWFjYi0+dHhfcmluZyA9IGRtYV9hbGxvY19jb2hlcmVudChDT05GSUdfU1lTX01BQ0JfVFhfUklOR19TSVpFCiAJCQkJCSAgICogc2l6ZW9mKHN0cnVjdCBtYWNiX2RtYV9kZXNjKSwKIAkJCQkJICAgJm1hY2ItPnR4X3JpbmdfZG1hKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWNmZmVjLmMgYi9kcml2ZXJzL25ldC9tY2ZmZWMuYwppbmRleCBmOTNjZjU5Li5jMDA0NzRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9tY2ZmZWMuYworKysgYi9kcml2ZXJzL25ldC9tY2ZmZWMuYwpAQCAtNTEsMTIgKzUxLDEyIEBACiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAogc3RydWN0IGZlY19pbmZvX3MgZmVjX2luZm9bXSA9IHsKLSNpZmRlZiBDRkdfRkVDMF9JT0JBU0UKKyNpZmRlZiBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCiAJewogCSAwLAkJCS8qIGluZGV4ICovCi0JIENGR19GRUMwX0lPQkFTRSwJLyogaW8gYmFzZSAqLwotCSBDRkdfRkVDMF9QSU5NVVgsCS8qIGdwaW8gcGluIG11eGluZyAqLwotCSBDRkdfRkVDMF9NSUlCQVNFLAkvKiBtaWkgYmFzZSAqLworCSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFLAkvKiBpbyBiYXNlICovCisJIENPTkZJR19TWVNfRkVDMF9QSU5NVVgsCS8qIGdwaW8gcGluIG11eGluZyAqLworCSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRSwJLyogbWlpIGJhc2UgKi8KIAkgLTEsCQkJLyogcGh5X2FkZHIgKi8KIAkgMCwJCQkvKiBkdXBsZXggYW5kIHNwZWVkICovCiAJIDAsCQkJLyogcGh5IG5hbWUgKi8KQEAgLTcwLDE3ICs3MCwxNyBAQAogCSAoc3RydWN0IGZlY19pbmZvX3MgKiktMSwKIAkgfSwKICNlbmRpZgotI2lmZGVmIENGR19GRUMxX0lPQkFTRQorI2lmZGVmIENPTkZJR19TWVNfRkVDMV9JT0JBU0UKIAl7CiAJIDEsCQkJLyogaW5kZXggKi8KLQkgQ0ZHX0ZFQzFfSU9CQVNFLAkvKiBpbyBiYXNlICovCi0JIENGR19GRUMxX1BJTk1VWCwJLyogZ3BpbyBwaW4gbXV4aW5nICovCi0JIENGR19GRUMxX01JSUJBU0UsCS8qIG1paSBiYXNlICovCisJIENPTkZJR19TWVNfRkVDMV9JT0JBU0UsCS8qIGlvIGJhc2UgKi8KKwkgQ09ORklHX1NZU19GRUMxX1BJTk1VWCwJLyogZ3BpbyBwaW4gbXV4aW5nICovCisJIENPTkZJR19TWVNfRkVDMV9NSUlCQVNFLAkvKiBtaWkgYmFzZSAqLwogCSAtMSwJCQkvKiBwaHlfYWRkciAqLwogCSAwLAkJCS8qIGR1cGxleCBhbmQgc3BlZWQgKi8KIAkgMCwJCQkvKiBwaHkgbmFtZSAqLwogCSAwLAkJCS8qIHBoeSBuYW1lIGluaXQgKi8KLSNpZmRlZiBDRkdfRkVDX0JVRl9VU0VfU1JBTQorI2lmZGVmIENPTkZJR19TWVNfRkVDX0JVRl9VU0VfU1JBTQogCSAoY2JkX3QgKilEQlVGX0xFTkdUSCwJLyogUlggQkQgKi8KICNlbHNlCiAJIDAsCQkJLyogUlggQkQgKi8KQEAgLTEwMyw3ICsxMDMsNyBAQAogCiBleHRlcm4gaW50IGZlY3Bpbl9zZXRjbGVhcihzdHJ1Y3QgZXRoX2RldmljZSAqZGV2LCBpbnQgc2V0Y2xlYXIpOwogCi0jaWZkZWYgQ0ZHX0RJU0NPVkVSX1BIWQorI2lmZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiBleHRlcm4gdm9pZCBfX21paV9pbml0KHZvaWQpOwogZXh0ZXJuIHVpbnQgbWlpX3NlbmQodWludCBtaWlfY21kKTsKIGV4dGVybiBpbnQgbWlpX2Rpc2NvdmVyX3BoeShzdHJ1Y3QgZXRoX2RldmljZSAqZGV2KTsKQEAgLTE3NSw3ICsxNzUsNyBAQAogCS8qIEFjdGl2YXRlIHRyYW5zbWl0IEJ1ZmZlciBEZXNjcmlwdG9yIHBvbGxpbmcgKi8KIAlmZWNwLT50ZGFyID0gMHgwMTAwMDAwMDsJLyogRGVzY3JpcHRvciBwb2xsaW5nIGFjdGl2ZSAgICAqLwogCi0jaWZuZGVmIENGR19GRUNfQlVGX1VTRV9TUkFNCisjaWZuZGVmIENPTkZJR19TWVNfRkVDX0JVRl9VU0VfU1JBTQogCS8qCiAJICogRkVDIHVuYWJsZSB0byBpbml0aWFsIHRyYW5zbWl0IGRhdGEgcGFja2V0LgogCSAqIEEgbm9wIHdpbGwgZW5zdXJlIHRoZSBkZXNjcmlwdG9yIHBvbGxpbmcgYWN0aXZlIGNvbXBsZXRlZC4KQEAgLTE4Nyw3ICsxODcsNyBAQAogCiAjZW5kaWYKIAotI2lmZGVmIENGR19VTklGWV9DQUNIRQorI2lmZGVmIENPTkZJR19TWVNfVU5JRllfQ0FDSEUKIAlpY2FjaGVfaW52YWxpZCgpOwogI2VuZGlmCiAKQEAgLTIyMiw5ICsyMjIsOSBAQAogCWludCBsZW5ndGg7CiAKIAlmb3IgKDs7KSB7Ci0jaWZuZGVmIENGR19GRUNfQlVGX1VTRV9TUkFNCisjaWZuZGVmIENPTkZJR19TWVNfRkVDX0JVRl9VU0VfU1JBTQogI2VuZGlmCi0jaWZkZWYgQ0ZHX1VOSUZZX0NBQ0hFCisjaWZkZWYgQ09ORklHX1NZU19VTklGWV9DQUNIRQogCQlpY2FjaGVfaW52YWxpZCgpOwogI2VuZGlmCiAJCS8qIHNlY3Rpb24gMTYuOS4yMy4yICovCkBAIC00MzUsMTUgKzQzNSwxNSBAQAogCWZlY19yZXNldChkZXYpOwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX01JSSkgfHwgZGVmaW5lZCAoQ09ORklHX01JSSkgfHwgXAotCWRlZmluZWQgKENGR19ESVNDT1ZFUl9QSFkpCisJZGVmaW5lZCAoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpCiAKIAltaWlfaW5pdCgpOwogCiAJc2V0RmVjRHVwbGV4U3BlZWQoZmVjcCwgYmQsIGluZm8tPmR1cF9zcGQpOwogI2Vsc2UKLSNpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorI2lmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogCXNldEZlY0R1cGxleFNwZWVkKGZlY3AsIGJkLCAoRkVDRFVQTEVYIDw8IDE2KSB8IEZFQ1NQRUVEKTsKLSNlbmRpZgkJCQkvKiBpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWSAqLworI2VuZGlmCQkJCS8qIGlmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogI2VuZGlmCQkJCS8qIENPTkZJR19DTURfTUlJIHx8IENPTkZJR19NSUkgKi8KIAogCS8qIFdlIHVzZSBzdHJpY3RseSBwb2xsaW5nIG1vZGUgb25seSAqLwpAQCAtNDUzLDkgKzQ1Myw5IEBACiAJZmVjcC0+ZWlyID0gMHhmZmZmZmZmZjsKIAogCS8qIFNldCBzdGF0aW9uIGFkZHJlc3MgICAqLwotCWlmICgodTMyKSBmZWNwID09IENGR19GRUMwX0lPQkFTRSkgewotI2lmZGVmIENGR19GRUMxX0lPQkFTRQotCQl2b2xhdGlsZSBmZWNfdCAqZmVjcDEgPSAoZmVjX3QgKikgKENGR19GRUMxX0lPQkFTRSk7CisJaWYgKCh1MzIpIGZlY3AgPT0gQ09ORklHX1NZU19GRUMwX0lPQkFTRSkgeworI2lmZGVmIENPTkZJR19TWVNfRkVDMV9JT0JBU0UKKwkJdm9sYXRpbGUgZmVjX3QgKmZlY3AxID0gKGZlY190ICopIChDT05GSUdfU1lTX0ZFQzFfSU9CQVNFKTsKIAkJZWEgPSAmYmQtPmJpX2VuZXQxYWRkclswXTsKIAkJZmVjcDEtPnBhbHIgPQogCQkgICAgKGVhWzBdIDw8IDI0KSB8IChlYVsxXSA8PCAxNikgfCAoZWFbMl0gPDwgOCkgfCAoZWFbM10pOwpAQCAtNDY2LDE0ICs0NjYsMTQgQEAKIAkJICAgIChlYVswXSA8PCAyNCkgfCAoZWFbMV0gPDwgMTYpIHwgKGVhWzJdIDw8IDgpIHwgKGVhWzNdKTsKIAkJZmVjcC0+cGF1ciA9IChlYVs0XSA8PCAyNCkgfCAoZWFbNV0gPDwgMTYpOwogCX0gZWxzZSB7Ci0jaWZkZWYgQ0ZHX0ZFQzBfSU9CQVNFCi0JCXZvbGF0aWxlIGZlY190ICpmZWNwMCA9IChmZWNfdCAqKSAoQ0ZHX0ZFQzBfSU9CQVNFKTsKKyNpZmRlZiBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCisJCXZvbGF0aWxlIGZlY190ICpmZWNwMCA9IChmZWNfdCAqKSAoQ09ORklHX1NZU19GRUMwX0lPQkFTRSk7CiAJCWVhID0gJmJkLT5iaV9lbmV0YWRkclswXTsKIAkJZmVjcDAtPnBhbHIgPQogCQkgICAgKGVhWzBdIDw8IDI0KSB8IChlYVsxXSA8PCAxNikgfCAoZWFbMl0gPDwgOCkgfCAoZWFbM10pOwogCQlmZWNwMC0+cGF1ciA9IChlYVs0XSA8PCAyNCkgfCAoZWFbNV0gPDwgMTYpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0ZFQzFfSU9CQVNFCisjaWZkZWYgQ09ORklHX1NZU19GRUMxX0lPQkFTRQogCQllYSA9ICZiZC0+YmlfZW5ldDFhZGRyWzBdOwogCQlmZWNwLT5wYWxyID0KIAkJICAgIChlYVswXSA8PCAyNCkgfCAoZWFbMV0gPDwgMTYpIHwgKGVhWzJdIDw8IDgpIHwgKGVhWzNdKTsKQEAgLTU2OCwxNCArNTY4LDE0IEBACiB7CiAJc3RydWN0IGV0aF9kZXZpY2UgKmRldjsKIAlpbnQgaTsKLSNpZmRlZiBDRkdfRkVDX0JVRl9VU0VfU1JBTQotCXUzMiB0bXAgPSBDRkdfSU5JVF9SQU1fQUREUiArIDB4MTAwMDsKKyNpZmRlZiBDT05GSUdfU1lTX0ZFQ19CVUZfVVNFX1NSQU0KKwl1MzIgdG1wID0gQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMHgxMDAwOwogI2VuZGlmCiAKIAlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGZlY19pbmZvKSAvIHNpemVvZihmZWNfaW5mb1swXSk7IGkrKykgewogCiAJCWRldiA9Ci0JCSAgICAoc3RydWN0IGV0aF9kZXZpY2UgKiltZW1hbGlnbihDRkdfQ0FDSEVMSU5FX1NJWkUsCisJCSAgICAoc3RydWN0IGV0aF9kZXZpY2UgKiltZW1hbGlnbihDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFLAogCQkJCQkJICBzaXplb2YgKmRldik7CiAJCWlmIChkZXYgPT0gTlVMTCkKIAkJCWhhbmcoKTsKQEAgLTU5MSw3ICs1OTEsNyBAQAogCQlkZXYtPnJlY3YgPSBmZWNfcmVjdjsKIAogCQkvKiBzZXR1cCBSZWNlaXZlIGFuZCBUcmFuc21pdCBidWZmZXIgZGVzY3JpcHRvciAqLwotI2lmZGVmIENGR19GRUNfQlVGX1VTRV9TUkFNCisjaWZkZWYgQ09ORklHX1NZU19GRUNfQlVGX1VTRV9TUkFNCiAJCWZlY19pbmZvW2ldLnJ4YmQgPSAoY2JkX3QgKikoKHUzMilmZWNfaW5mb1tpXS5yeGJkICsgdG1wKTsKIAkJdG1wID0gKHUzMilmZWNfaW5mb1tpXS5yeGJkOwogCQlmZWNfaW5mb1tpXS50eGJkID0KQEAgLTYwMCwxNyArNjAwLDE3IEBACiAJCXRtcCA9ICh1MzIpZmVjX2luZm9baV0udHhiZDsKIAkJZmVjX2luZm9baV0udHhidWYgPQogCQkgICAgKGNoYXIgKikoKHUzMilmZWNfaW5mb1tpXS50eGJ1ZiArIHRtcCArCi0JCSAgICAoQ0ZHX1RYX0VUSF9CVUZGRVIgKiBzaXplb2YoY2JkX3QpKSk7CisJCSAgICAoQ09ORklHX1NZU19UWF9FVEhfQlVGRkVSICogc2l6ZW9mKGNiZF90KSkpOwogCQl0bXAgPSAodTMyKWZlY19pbmZvW2ldLnR4YnVmOwogI2Vsc2UKIAkJZmVjX2luZm9baV0ucnhiZCA9Ci0JCSAgICAoY2JkX3QgKikgbWVtYWxpZ24oQ0ZHX0NBQ0hFTElORV9TSVpFLAorCQkgICAgKGNiZF90ICopIG1lbWFsaWduKENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUsCiAJCQkJICAgICAgIChQS1RCVUZTUlggKiBzaXplb2YoY2JkX3QpKSk7CiAJCWZlY19pbmZvW2ldLnR4YmQgPQotCQkgICAgKGNiZF90ICopIG1lbWFsaWduKENGR19DQUNIRUxJTkVfU0laRSwKKwkJICAgIChjYmRfdCAqKSBtZW1hbGlnbihDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFLAogCQkJCSAgICAgICAoVFhfQlVGX0NOVCAqIHNpemVvZihjYmRfdCkpKTsKIAkJZmVjX2luZm9baV0udHhidWYgPQotCQkgICAgKGNoYXIgKiltZW1hbGlnbihDRkdfQ0FDSEVMSU5FX1NJWkUsIERCVUZfTEVOR1RIKTsKKwkJICAgIChjaGFyICopbWVtYWxpZ24oQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSwgREJVRl9MRU5HVEgpOwogI2VuZGlmCiAKICNpZmRlZiBFVF9ERUJVRwpAQCAtNjE4LDcgKzYxOCw3IEBACiAJCSAgICAgICAoaW50KWZlY19pbmZvW2ldLnJ4YmQsIChpbnQpZmVjX2luZm9baV0udHhiZCk7CiAjZW5kaWYKIAotCQlmZWNfaW5mb1tpXS5waHlfbmFtZSA9IChjaGFyICopbWVtYWxpZ24oQ0ZHX0NBQ0hFTElORV9TSVpFLCAzMik7CisJCWZlY19pbmZvW2ldLnBoeV9uYW1lID0gKGNoYXIgKiltZW1hbGlnbihDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFLCAzMik7CiAKIAkJZXRoX3JlZ2lzdGVyKGRldik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25lMjAwMF9iYXNlLmMgYi9kcml2ZXJzL25ldC9uZTIwMDBfYmFzZS5jCmluZGV4IDRhMDc3MDguLmY5M2Y5MzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L25lMjAwMF9iYXNlLmMKKysrIGIvZHJpdmVycy9uZXQvbmUyMDAwX2Jhc2UuYwpAQCAtNzQwLDcgKzc0MCw3IEBACiAJcGtleSA9IC0xOwogCiAJZHA4MzkwMmFfc2VuZCgodTggKikgcGFja2V0LCBsZW5ndGgsIDY2Nik7Ci0JdG1vID0gZ2V0X3RpbWVyICgwKSArIFRPVVQgKiBDRkdfSFo7CisJdG1vID0gZ2V0X3RpbWVyICgwKSArIFRPVVQgKiBDT05GSUdfU1lTX0haOwogCXdoaWxlKDEpIHsKIAkJZHA4MzkwMmFfcG9sbCgpOwogCQlpZiAocGtleSAhPSAtMSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0YXJtX2V0aC5jIGIvZHJpdmVycy9uZXQvbmV0YXJtX2V0aC5jCmluZGV4IGMwMTE4MDkuLmM5ZTMyNGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L25ldGFybV9ldGguYworKysgYi9kcml2ZXJzL25ldC9uZXRhcm1fZXRoLmMKQEAgLTU2LDcgKzU2LDcgQEAKIAlpbnQgbWlpX2FkZHI7CiAKIAkvKiBTZWxlY3QgcmVnaXN0ZXIgKi8KLQltaWlfYWRkciA9IENGR19FVEhfUEhZX0FERFIgKyByZWc7CisJbWlpX2FkZHIgPSBDT05GSUdfU1lTX0VUSF9QSFlfQUREUiArIHJlZzsKIAlTRVRfRUFERFIgKE5FVEFSTV9FVEhfTUlJX0FERFIsIG1paV9hZGRyKTsKIAkvKiBXcml0ZSB2YWx1ZSAqLwogCVNFVF9FQUREUiAoTkVUQVJNX0VUSF9NSUlfV1JJVEUsIHZhbHVlKTsKQEAgLTY4LDcgKzY4LDcgQEAKIAlpbnQgbWlpX2FkZHIsIHZhbDsKIAogCS8qIFNlbGVjdCByZWdpc3RlciAqLwotCW1paV9hZGRyID0gQ0ZHX0VUSF9QSFlfQUREUiArIHJlZzsKKwltaWlfYWRkciA9IENPTkZJR19TWVNfRVRIX1BIWV9BRERSICsgcmVnOwogCVNFVF9FQUREUiAoTkVUQVJNX0VUSF9NSUlfQUREUiwgbWlpX2FkZHIpOwogCS8qIGRvIG9uZSBtYW5hZ2VtZW50IGN5Y2xlICovCiAJU0VUX0VBRERSIChORVRBUk1fRVRIX01JSV9DTUQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uczc1MjBfZXRoLmMgYi9kcml2ZXJzL25ldC9uczc1MjBfZXRoLmMKaW5kZXggZTE5YzIyMy4uYzI4NzI2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbnM3NTIwX2V0aC5jCisrKyBiL2RyaXZlcnMvbmV0L25zNzUyMF9ldGguYwpAQCAtODYsOCArODYsOCBAQAogIyBkZWZpbmUgQVNTRVJUKGV4cHIsIGZ1bmMpCiAjZW5kaWYJCQkJLyogREVCVUcgKi8KIAotI2RlZmluZSBOUzc1MjBfTUlJX05FR19ERUxBWQkJKDUqQ0ZHX0haKQkvKiBpbiBzICovCi0jZGVmaW5lIFRYX1RJTUVPVVQJCQkoNSpDRkdfSFopCS8qIGluIHMgKi8KKyNkZWZpbmUgTlM3NTIwX01JSV9ORUdfREVMQVkJCSg1KkNPTkZJR19TWVNfSFopCS8qIGluIHMgKi8KKyNkZWZpbmUgVFhfVElNRU9VVAkJCSg1KkNPTkZJR19TWVNfSFopCS8qIGluIHMgKi8KICNkZWZpbmUgUlhfU1RBTExfV09SS0FST1VORF9DTlQgMTAwCiAKIHN0YXRpYyBpbnQgbnM3NTIwX2V0aF9yZXNldCh2b2lkKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25zOTc1MF9ldGguYyBiL2RyaXZlcnMvbmV0L25zOTc1MF9ldGguYwppbmRleCBjYWRlODMxLi5kNDkwMWI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9uczk3NTBfZXRoLmMKKysrIGIvZHJpdmVycy9uZXQvbnM5NzUwX2V0aC5jCkBAIC05MCw4ICs5MCw4IEBACiAjIGRlZmluZSBBU1NFUlQoZXhwciwgZnVuYykKICNlbmRpZiAvKiBERUJVRyAqLwogCi0jZGVmaW5lIE5TOTc1MF9NSUlfTkVHX0RFTEFZCQkoNSpDRkdfSFopIC8qIGluIHMgKi8KLSNkZWZpbmUgVFhfVElNRU9VVAkJCSg1KkNGR19IWikgLyogaW4gcyAqLworI2RlZmluZSBOUzk3NTBfTUlJX05FR19ERUxBWQkJKDUqQ09ORklHX1NZU19IWikgLyogaW4gcyAqLworI2RlZmluZSBUWF9USU1FT1VUCQkJKDUqQ09ORklHX1NZU19IWikgLyogaW4gcyAqLwogCiAvKiBAVE9ETyBtb3ZlIGl0IHRvIGVlcHJvbS5oICovCiAjZGVmaW5lIEZTX0VFUFJPTV9BVVRPTkVHX01BU0sJCTB4NwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L21paXBoeWJiLmMgYi9kcml2ZXJzL25ldC9waHkvbWlpcGh5YmIuYwppbmRleCA2NDQ2MDEyLi5lM2MxNjNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvbWlpcGh5YmIuYworKysgYi9kcml2ZXJzL25ldC9waHkvbWlpcGh5YmIuYwpAQCAtMzksNyArMzksNyBAQAogewogCWludCBqOwkJCS8qIGNvdW50ZXIgKi8KICNpZiAhKGRlZmluZWQoQ09ORklHX0VQODI0OCkgfHwgZGVmaW5lZChDT05GSUdfRVA4MlhYTSkpCi0Jdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyICgoaW1tYXBfdCAqKSBDRkdfSU1NUiwgTURJT19QT1JUKTsKKwl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wID0gaW9wb3J0X2FkZHIgKChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUiwgTURJT19QT1JUKTsKICNlbmRpZgogCiAJLyoKQEAgLTEyNCw3ICsxMjQsNyBAQAogCXNob3J0IHJkcmVnOwkJLyogcmVnaXN0ZXIgd29ya2luZyB2YWx1ZSAqLwogCWludCBqOwkJCS8qIGNvdW50ZXIgKi8KICNpZiAhKGRlZmluZWQoQ09ORklHX0VQODI0OCkgfHwgZGVmaW5lZChDT05GSUdfRVA4MlhYTSkpCi0Jdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyICgoaW1tYXBfdCAqKSBDRkdfSU1NUiwgTURJT19QT1JUKTsKKwl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wID0gaW9wb3J0X2FkZHIgKChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUiwgTURJT19QT1JUKTsKICNlbmRpZgogCiAJbWlpcGh5X3ByZSAoMSwgYWRkciwgcmVnKTsKQEAgLTE5MSw3ICsxOTEsNyBAQAogewogCWludCBqOwkJCS8qIGNvdW50ZXIgKi8KICNpZiAhKGRlZmluZWQoQ09ORklHX0VQODI0OCkgfHwgZGVmaW5lZChDT05GSUdfRVA4MlhYTSkpCi0Jdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyICgoaW1tYXBfdCAqKSBDRkdfSU1NUiwgTURJT19QT1JUKTsKKwl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wID0gaW9wb3J0X2FkZHIgKChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUiwgTURJT19QT1JUKTsKICNlbmRpZgogCiAJbWlpcGh5X3ByZSAoMCwgYWRkciwgcmVnKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NrOThsaW4vaC9za2RydjFzdC5oIGIvZHJpdmVycy9uZXQvc2s5OGxpbi9oL3NrZHJ2MXN0LmgKaW5kZXggYWYzNGQ3Yi4uOGQzNzJiNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvc2s5OGxpbi9oL3NrZHJ2MXN0LmgKKysrIGIvZHJpdmVycy9uZXQvc2s5OGxpbi9oL3NrZHJ2MXN0LmgKQEAgLTE3NCw3ICsxNzQsNyBAQAogI2lmIDAKICNkZWZpbmUgU0tfVElDS1NfUEVSX1NFQwlIWgogI2Vsc2UKLSNkZWZpbmUgU0tfVElDS1NfUEVSX1NFQwlDRkdfSFoKKyNkZWZpbmUgU0tfVElDS1NfUEVSX1NFQwlDT05GSUdfU1lTX0haCiAjZW5kaWYKIAogI2RlZmluZQlTS19NRU1fTUFQUEVEX0lPCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zazk4bGluL2gvc2tnZWh3LmggYi9kcml2ZXJzL25ldC9zazk4bGluL2gvc2tnZWh3LmgKaW5kZXggNTJkYzgzZi4uOGFhZDQ0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvc2s5OGxpbi9oL3NrZ2Vody5oCisrKyBiL2RyaXZlcnMvbmV0L3NrOThsaW4vaC9za2dlaHcuaApAQCAtMTEwNywxMCArMTEwNywxMCBAQAogLyoJVmFsdWVzIG9mIGNvbm5lY3RvciBhbmQgUE1EIHR5cGUgY29tcGx5IHRvIFN5c0tvbm5lY3QgaW50ZXJuYWwgc3RkICovCiAKIC8qCUIyX01BQ19DRkcJIDggYml0CU1BQyBDb25maWd1cmF0aW9uIC8gQ2hpcCBSZXZpc2lvbiAqLwotI2RlZmluZSBDRkdfQ0hJUF9SX01TSwkoMHhmPDw0KQkvKiBCaXQgNy4uIDQ6IENoaXAgUmV2aXNpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DSElQX1JfTVNLCSgweGY8PDQpCS8qIEJpdCA3Li4gNDogQ2hpcCBSZXZpc2lvbiAqLwogCQkJCQkJCQkJLyogQml0IDMuLiAyOglyZXNlcnZlZCAqLwotI2RlZmluZSBDRkdfRElTX00yX0NMSwlCSVRfMVMJCS8qIERpc2FibGUgQ2xvY2sgZm9yIDJuZCBNQUMgKi8KLSNkZWZpbmUgQ0ZHX1NOR19NQUMJCUJJVF8wUwkJLyogTUFDIENvbmZpZzogMD0yIE1BQ3MgLyAxPTEgTUFDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ESVNfTTJfQ0xLCUJJVF8xUwkJLyogRGlzYWJsZSBDbG9jayBmb3IgMm5kIE1BQyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NOR19NQUMJCUJJVF8wUwkJLyogTUFDIENvbmZpZzogMD0yIE1BQ3MgLyAxPTEgTUFDKi8KIAogLyoJQjJfQ0hJUF9JRAkgOCBiaXQJQ2hpcCBJZGVudGlmaWNhdGlvbiBOdW1iZXIgKi8KICNkZWZpbmUgQ0hJUF9JRF9HRU5FU0lTCTB4MGEJCS8qIENoaXAgSUQgZm9yIEdFTkVTSVMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NrOThsaW4vc2tnZWluaXQuYyBiL2RyaXZlcnMvbmV0L3NrOThsaW4vc2tnZWluaXQuYwppbmRleCBhYjc0MGM3Li5kZjYzZjI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9zazk4bGluL3NrZ2Vpbml0LmMKKysrIGIvZHJpdmVycy9uZXQvc2s5OGxpbi9za2dlaW5pdC5jCkBAIC0xODgyLDEwICsxODgyLDEwIEBACiAKIAkvKiByZWFkIG51bWJlciBvZiBNQUNzICovCiAJU0tfSU44KElvQywgQjJfTUFDX0NGRywgJkJ5dGUpOwotCXBBQy0+R0luaS5HSU1hY3NGb3VuZCA9IChCeXRlICYgQ0ZHX1NOR19NQUMpID8gMSA6IDI7CisJcEFDLT5HSW5pLkdJTWFjc0ZvdW5kID0gKEJ5dGUgJiBDT05GSUdfU1lTX1NOR19NQUMpID8gMSA6IDI7CiAKIAkvKiBnZXQgQ2hpcCBSZXZpc2lvbiBOdW1iZXIgKi8KLQlwQUMtPkdJbmkuR0lDaGlwUmV2ID0gKFNLX1U4KSgoQnl0ZSAmIENGR19DSElQX1JfTVNLKSA+PiA0KTsKKwlwQUMtPkdJbmkuR0lDaGlwUmV2ID0gKFNLX1U4KSgoQnl0ZSAmIENPTkZJR19TWVNfQ0hJUF9SX01TSykgPj4gNCk7CiAKIAkvKiBnZXQgZGlmZi4gUENJIHBhcmFtZXRlcnMgKi8KIAlTS19JTjE2KElvQywgQjBfQ1RTVCwgJkN0cmxTdGF0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NrOThsaW4vdS1ib290X2NvbXBhdC5oIGIvZHJpdmVycy9uZXQvc2s5OGxpbi91LWJvb3RfY29tcGF0LmgKaW5kZXggMWUzODVmOC4uY2FkZjQwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvc2s5OGxpbi91LWJvb3RfY29tcGF0LmgKKysrIGIvZHJpdmVycy9uZXQvc2s5OGxpbi91LWJvb3RfY29tcGF0LmgKQEAgLTU0LDcgKzU0LDcgQEAKICNkZWZpbmUgRUFHQUlOCQkJCTIKICNkZWZpbmUgRUJVU1kJCQkJMwogCi0jZGVmaW5lIEhaCQkJCUNGR19IWgorI2RlZmluZSBIWgkJCQlDT05GSUdfU1lTX0haCiAKIAogI2RlZmluZSBwcmludGsJCQkJcHJpbnRmCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zbWM5MTExMS5jIGIvZHJpdmVycy9uZXQvc21jOTExMTEuYwppbmRleCBlOGIyMzViLi44MmFiYjAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9zbWM5MTExMS5jCisrKyBiL2RyaXZlcnMvbmV0L3NtYzkxMTExLmMKQEAgLTM4Myw3ICszODMsNyBAQAogCiBzdGF0aWMgaW50IHBvbGw0aW50IChieXRlIG1hc2ssIGludCB0aW1lb3V0KQogewotCWludCB0bW8gPSBnZXRfdGltZXIgKDApICsgdGltZW91dCAqIENGR19IWjsKKwlpbnQgdG1vID0gZ2V0X3RpbWVyICgwKSArIHRpbWVvdXQgKiBDT05GSUdfU1lTX0haOwogCWludCBpc190aW1lb3V0ID0gMDsKIAl3b3JkIG9sZF9iYW5rID0gU01DX2ludyAoQlNSX1JFRyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RzZWMuYyBiL2RyaXZlcnMvbmV0L3RzZWMuYwppbmRleCBlMzQwNzZmLi5kN2RhMDgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90c2VjLmMKKysrIGIvZHJpdmVycy9uZXQvdHNlYy5jCkBAIC0zMDUsOCArMzA1LDggQEAKIAl2b2xhdGlsZSB0c2VjX3QgKnJlZ3MgPSBwcml2LT5yZWdzOwogCiAJLyogQXNzaWduIGEgUGh5c2ljYWwgYWRkcmVzcyB0byB0aGUgVEJJICovCi0JcmVncy0+dGJpcGEgPSBDRkdfVEJJUEFfVkFMVUU7Ci0JcGh5cmVncy0+dGJpcGEgPSBDRkdfVEJJUEFfVkFMVUU7CisJcmVncy0+dGJpcGEgPSBDT05GSUdfU1lTX1RCSVBBX1ZBTFVFOworCXBoeXJlZ3MtPnRiaXBhID0gQ09ORklHX1NZU19UQklQQV9WQUxVRTsKIAlhc20oInN5bmMiKTsKIAogCS8qIFJlc2V0IE1JSSAoZHVlIHRvIG5ldyBhZGRyZXNzZXMpICovCkBAIC0xMzU3LDExICsxMzU3LDExIEBACiAJCQkJLyogT3ZlcnJpZGUgUEhZIGNvbmZpZyBzZXR0aW5ncyAqLwogCQkJCS8qIENvbmZpZ3VyZSBzb21lIGJhc2ljIHN0dWZmICovCiAJCQkJe01JSU1fQ09OVFJPTCwgTUlJTV9DT05UUk9MX0lOSVQsICZtaWlfY3JfaW5pdH0sCi0jaWZkZWYgQ0ZHX1ZTQzg2MDFfU0tFV0ZJWAorI2lmZGVmIENPTkZJR19TWVNfVlNDODYwMV9TS0VXRklYCiAJCQkJe01JSU1fVlNDODYwMV9FUEhZX0NPTixNSUlNX1ZTQzg2MDFfRVBIWV9DT05fSU5JVF9TS0VXLE5VTEx9LAotI2lmIGRlZmluZWQoQ0ZHX1ZTQzg2MDFfU0tFV19UWCkgJiYgZGVmaW5lZChDRkdfVlNDODYwMV9TS0VXX1JYKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19WU0M4NjAxX1NLRVdfVFgpICYmIGRlZmluZWQoQ09ORklHX1NZU19WU0M4NjAxX1NLRVdfUlgpCiAJCQkJe01JSU1fRVhUX1BBR0VfQUNDRVNTLDEsTlVMTH0sCi0jZGVmaW5lIFZTQzgxMDFfU0tFVwkoQ0ZHX1ZTQzg2MDFfU0tFV19UWDw8MTQpfChDRkdfVlNDODYwMV9TS0VXX1JYPDwxMikKKyNkZWZpbmUgVlNDODEwMV9TS0VXCShDT05GSUdfU1lTX1ZTQzg2MDFfU0tFV19UWDw8MTQpfChDT05GSUdfU1lTX1ZTQzg2MDFfU0tFV19SWDw8MTIpCiAJCQkJe01JSU1fVlNDODYwMV9TS0VXX0NUUkwsVlNDODEwMV9TS0VXLE5VTEx9LAogCQkJCXtNSUlNX0VYVF9QQUdFX0FDQ0VTUywwLE5VTEx9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90c2kxMDhfZXRoLmMgYi9kcml2ZXJzL25ldC90c2kxMDhfZXRoLmMKaW5kZXggNTBmYTc2NS4uMDc5MzU0YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdHNpMTA4X2V0aC5jCisrKyBiL2RyaXZlcnMvbmV0L3RzaTEwOF9ldGguYwpAQCAtNTQsNyArNTQsNyBAQAogI2RlZmluZSBSWF9QUklOVF9FUlJPUlMKICNkZWZpbmUgVFhfUFJJTlRfRVJST1JTCiAKLSNkZWZpbmUgRVRIX0JBU0UJKENGR19UU0kxMDhfQ1NSX0JBU0UgKyAweDYwMDApCisjZGVmaW5lIEVUSF9CQVNFCShDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIDB4NjAwMCkKIAogI2RlZmluZSBFVEhfUE9SVF9PRkZTRVQJMHg0MDAKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnNjNzM4NS5jIGIvZHJpdmVycy9uZXQvdnNjNzM4NS5jCmluZGV4IDRlNzI1OWYuLmFkYTQyYzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZzYzczODUuYworKysgYi9kcml2ZXJzL25ldC92c2M3Mzg1LmMKQEAgLTM1LDEzICszNSwxMyBAQAogCXU4ICpmdyA9IGZpcm13YXJlOwogCXVuc2lnbmVkIGludCBpOwogCi0JdTMyICpnbG9yZXNldCA9ICh1MzIgKikgKENGR19WU0M3Mzg1X0JBU0UgKyAweDFjMDUwKTsKLQl1MzIgKmljcHVfY3RybCA9ICh1MzIgKikgKENGR19WU0M3Mzg1X0JBU0UgKyAweDFjMDQwKTsKLQl1MzIgKmljcHVfYWRkciA9ICh1MzIgKikgKENGR19WU0M3Mzg1X0JBU0UgKyAweDFjMDQ0KTsKLQl1MzIgKmljcHVfZGF0YSA9ICh1MzIgKikgKENGR19WU0M3Mzg1X0JBU0UgKyAweDFjMDQ4KTsKLQl1MzIgKmljcHVfcm9tX21hcCA9ICh1MzIgKikgKENGR19WU0M3Mzg1X0JBU0UgKyAweDFjMDcwKTsKKwl1MzIgKmdsb3Jlc2V0ID0gKHUzMiAqKSAoQ09ORklHX1NZU19WU0M3Mzg1X0JBU0UgKyAweDFjMDUwKTsKKwl1MzIgKmljcHVfY3RybCA9ICh1MzIgKikgKENPTkZJR19TWVNfVlNDNzM4NV9CQVNFICsgMHgxYzA0MCk7CisJdTMyICppY3B1X2FkZHIgPSAodTMyICopIChDT05GSUdfU1lTX1ZTQzczODVfQkFTRSArIDB4MWMwNDQpOworCXUzMiAqaWNwdV9kYXRhID0gKHUzMiAqKSAoQ09ORklHX1NZU19WU0M3Mzg1X0JBU0UgKyAweDFjMDQ4KTsKKwl1MzIgKmljcHVfcm9tX21hcCA9ICh1MzIgKikgKENPTkZJR19TWVNfVlNDNzM4NV9CQVNFICsgMHgxYzA3MCk7CiAjaWZkZWYgREVCVUcKLQl1MzIgKmNoaXBpZCA9ICh1MzIgKikgKENGR19WU0M3Mzg1X0JBU0UgKyAweDFjMDYwKTsKKwl1MzIgKmNoaXBpZCA9ICh1MzIgKikgKENPTkZJR19TWVNfVlNDNzM4NV9CQVNFICsgMHgxYzA2MCk7CiAjZW5kaWYKIAogCW91dF9iZTMyKGdsb3Jlc2V0LCAzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaS5jIGIvZHJpdmVycy9wY2kvcGNpLmMKaW5kZXggYjVlZWE4OS4uNDE3ODBkYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcGNpLmMKKysrIGIvZHJpdmVycy9wY2kvcGNpLmMKQEAgLTE1Nyw3ICsxNTcsNyBAQAogCiAJZm9yIChob3NlID0gaG9zZV9oZWFkOyBob3NlOyBob3NlID0gaG9zZS0+bmV4dCkKIAl7Ci0jaWZkZWYgQ0ZHX1NDU0lfU0NBTl9CVVNfUkVWRVJTRQorI2lmZGVmIENPTkZJR19TWVNfU0NTSV9TQ0FOX0JVU19SRVZFUlNFCiAJCWZvciAoYnVzID0gaG9zZS0+bGFzdF9idXNubzsgYnVzID49IGhvc2UtPmZpcnN0X2J1c25vOyBidXMtLSkKICNlbHNlCiAJCWZvciAoYnVzID0gaG9zZS0+Zmlyc3RfYnVzbm87IGJ1cyA8PSBob3NlLT5sYXN0X2J1c25vOyBidXMrKykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaV9hdXRvLmMgYi9kcml2ZXJzL3BjaS9wY2lfYXV0by5jCmluZGV4IDJhY2Y5YmYuLjM4NDQzNTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3BjaV9hdXRvLmMKKysrIGIvZHJpdmVycy9wY2kvcGNpX2F1dG8uYwpAQCAtMjYsOSArMjYsOSBAQAogCiAjZGVmaW5lCVBDSUFVVE9fSURFX01PREVfTUFTSwkJMHgwNQogCi0vKiB0aGUgdXNlciBjYW4gZGVmaW5lIENGR19QQ0lfQ0FDSEVfTElORV9TSVpFIHRvIGF2b2lkIHByb2JsZW1zICovCi0jaWZuZGVmIENGR19QQ0lfQ0FDSEVfTElORV9TSVpFCi0jZGVmaW5lIENGR19QQ0lfQ0FDSEVfTElORV9TSVpFCTgKKy8qIHRoZSB1c2VyIGNhbiBkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0FDSEVfTElORV9TSVpFIHRvIGF2b2lkIHByb2JsZW1zICovCisjaWZuZGVmIENPTkZJR19TWVNfUENJX0NBQ0hFX0xJTkVfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DQUNIRV9MSU5FX1NJWkUJOAogI2VuZGlmCiAKIC8qCkBAIC0xNTQsNyArMTU0LDcgQEAKIAogCXBjaV9ob3NlX3dyaXRlX2NvbmZpZ19kd29yZChob3NlLCBkZXYsIFBDSV9DT01NQU5ELCBjbWRzdGF0KTsKIAlwY2lfaG9zZV93cml0ZV9jb25maWdfYnl0ZShob3NlLCBkZXYsIFBDSV9DQUNIRV9MSU5FX1NJWkUsCi0JCUNGR19QQ0lfQ0FDSEVfTElORV9TSVpFKTsKKwkJQ09ORklHX1NZU19QQ0lfQ0FDSEVfTElORV9TSVpFKTsKIAlwY2lfaG9zZV93cml0ZV9jb25maWdfYnl0ZShob3NlLCBkZXYsIFBDSV9MQVRFTkNZX1RJTUVSLCAweDgwKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvdHNpMTA4X3BjaS5jIGIvZHJpdmVycy9wY2kvdHNpMTA4X3BjaS5jCmluZGV4IGVkZDYxNGYuLmQxNTNmYzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3RzaTEwOF9wY2kuYworKysgYi9kcml2ZXJzL3BjaS90c2kxMDhfcGNpLmMKQEAgLTQ3LDMyICs0NywzMiBAQAogCSAqIHJlcXVlc3RzLgogCSAqLwogCS8qIFJlYWQgUEIgRXJyb3IgTG9nIFJlZ2lzdGVycyAqLwotCWVycl9zdGF0ID0gKih2b2xhdGlsZSB1MzIgKikoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArCisJZXJyX3N0YXQgPSAqKHZvbGF0aWxlIHUzMiAqKShDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArCiAJCQkJICAgICBUU0kxMDhfUEJfUkVHX09GRlNFVCArIFBCX0VSUkNTKTsKLQllcnJfYWRkciA9ICoodm9sYXRpbGUgdTMyICopKENGR19UU0kxMDhfQ1NSX0JBU0UgKworCWVycl9hZGRyID0gKih2b2xhdGlsZSB1MzIgKikoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKwogCQkJCSAgICAgVFNJMTA4X1BCX1JFR19PRkZTRVQgKyBQQl9BRVJSKTsKIAlpZiAoZXJyX3N0YXQgJiBQQl9FUlJDU19FUykgewogCQkvKiBDbGVhciBQQ0kvWCBidXMgZXJyb3JzIGlmIGFwcGxpY2FibGUgKi8KLQkJaWYgKChlcnJfYWRkciAmIDB4RkYwMDAwMDApID09IENGR19QQ0lfQ0ZHX0JBU0UpIHsKKwkJaWYgKChlcnJfYWRkciAmIDB4RkYwMDAwMDApID09IENPTkZJR19TWVNfUENJX0NGR19CQVNFKSB7CiAJCQkvKiBDbGVhciBlcnJvciBmbGFnICovCi0JCQkqKHUzMiAqKSAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArCisJCQkqKHUzMiAqKSAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKwogCQkJCSAgVFNJMTA4X1BCX1JFR19PRkZTRVQgKyBQQl9FUlJDUykgPQogCQkJICAgIFBCX0VSUkNTX0VTOwogCiAJCQkvKiBDbGVhciByZWFkIGVycm9yIHJlcG9ydGVkIGluIFBCX0lTUiAqLwotCQkJKih1MzIgKikgKENGR19UU0kxMDhfQ1NSX0JBU0UgKworCQkJKih1MzIgKikgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsKIAkJCQkgIFRTSTEwOF9QQl9SRUdfT0ZGU0VUICsgUEJfSVNSKSA9CiAJCQkgICAgUEJfSVNSX1BCU19SRF9FUlI7CiAKIAkJLyogQ2xlYXIgZXJyb3JzIHJlcG9ydGVkIGJ5IFBDSSBDU1IgKE5vcm1hbGx5IE1hc3RlciBBYm9ydCkgKi8KLQkJCXBjaV9zdGF0ID0gKih2b2xhdGlsZSB1MzIgKikoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArCisJCQlwY2lfc3RhdCA9ICoodm9sYXRpbGUgdTMyICopKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsKIAkJCQkJCSAgICAgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsKIAkJCQkJCSAgICAgUENJX0NTUik7Ci0JCQkqKHZvbGF0aWxlIHUzMiAqKShDRkdfVFNJMTA4X0NTUl9CQVNFICsKKwkJCSoodm9sYXRpbGUgdTMyICopKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsKIAkJCQkJICBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfQ1NSKSA9CiAJCQkgICAgcGNpX3N0YXQ7CiAKLQkJCSoodm9sYXRpbGUgdTMyICopKENGR19UU0kxMDhfQ1NSX0JBU0UgKworCQkJKih2b2xhdGlsZSB1MzIgKikoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKwogCQkJCQkgIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArCiAJCQkJCSAgUENJX0lSUF9TVEFUKSA9IFBDSV9JUlBfU1RBVF9QX0NTUjsKIAkJfQpAQCAtMTAyLDggKzEwMiw4IEBACiBzdGF0aWMgaW50IHRzaTEwOF9yZWFkX2NvbmZpZ19kd29yZCAoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlLAogCQkJCSAgICBwY2lfZGV2X3QgZGV2LCBpbnQgb2Zmc2V0LCB1MzIgKiB2YWx1ZSkKIHsKLQlkZXYgJj0gKENGR19QQ0lfQ0ZHX1NJWkUgLSAxKTsKLQlkZXYgfD0gKENGR19QQ0lfQ0ZHX0JBU0UgfCAob2Zmc2V0ICYgMHhmYykpOworCWRldiAmPSAoQ09ORklHX1NZU19QQ0lfQ0ZHX1NJWkUgLSAxKTsKKwlkZXYgfD0gKENPTkZJR19TWVNfUENJX0NGR19CQVNFIHwgKG9mZnNldCAmIDB4ZmMpKTsKIAkqdmFsdWUgPSBfX2dldF9wY2lfY29uZmlnX2R3b3JkKGRldik7CiAJaWYgKDB4RkZGRkZGRkYgPT0gKnZhbHVlKQogCQl0c2kxMDhfY2xlYXJfcGNpX2Vycm9yICgpOwpAQCAtMTEzLDggKzExMyw4IEBACiBzdGF0aWMgaW50IHRzaTEwOF93cml0ZV9jb25maWdfZHdvcmQgKHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSwKIAkJCQkgICAgIHBjaV9kZXZfdCBkZXYsIGludCBvZmZzZXQsIHUzMiB2YWx1ZSkKIHsKLQlkZXYgJj0gKENGR19QQ0lfQ0ZHX1NJWkUgLSAxKTsKLQlkZXYgfD0gKENGR19QQ0lfQ0ZHX0JBU0UgfCAob2Zmc2V0ICYgMHhmYykpOworCWRldiAmPSAoQ09ORklHX1NZU19QQ0lfQ0ZHX1NJWkUgLSAxKTsKKwlkZXYgfD0gKENPTkZJR19TWVNfUENJX0NGR19CQVNFIHwgKG9mZnNldCAmIDB4ZmMpKTsKIAogCW91dF9sZTMyICgodm9sYXRpbGUgdW5zaWduZWQgKilkZXYsIHZhbHVlKTsKIApAQCAtMTI5LDE5ICsxMjksMTkgQEAKIAlob3NlLT5sYXN0X2J1c25vID0gMHhmZjsKIAogCXBjaV9zZXRfcmVnaW9uIChob3NlLT5yZWdpb25zICsgMCwKLQkJICAgICAgIENGR19QQ0lfTUVNT1JZX0JVUywKLQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCSAgICAgICBDRkdfUENJX01FTU9SWV9TSVpFLCBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLCBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCS8qIFBDSSBtZW1vcnkgc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbiAoaG9zZS0+cmVnaW9ucyArIDEsCi0JCSAgICAgICBDRkdfUENJX01FTV9CVVMsCi0JCSAgICAgICBDRkdfUENJX01FTV9QSFlTLCBDRkdfUENJX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1fQlVTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CiAKIAkvKiBQQ0kgSS9PIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkgICAgICAgQ0ZHX1BDSV9JT19CVVMsCi0JCSAgICAgICBDRkdfUENJX0lPX1BIWVMsIENGR19QQ0lfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9JT19CVVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9JT19QSFlTLCBDT05GSUdfU1lTX1BDSV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKIAogCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3c4M2M1NTNmLmMgYi9kcml2ZXJzL3BjaS93ODNjNTUzZi5jCmluZGV4IGQ3MzU1YTQuLjg1NjE0MjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3c4M2M1NTNmLmMKKysrIGIvZHJpdmVycy9wY2kvdzgzYzU1M2YuYwpAQCAtNDIsNyArNDIsNyBAQAogCQkJb3V0X2JlMTYoKHUxNiopIChhZGRyKSwodmFsKSk7IHVkZWxheSgxKTsgXAogCQkJfSB3aGlsZSAoMCkKIAotZXh0ZXJuIHVpbnQgaWRlX2J1c19vZmZzZXRbQ0ZHX0lERV9NQVhCVVNdOworZXh0ZXJuIHVpbnQgaWRlX2J1c19vZmZzZXRbQ09ORklHX1NZU19JREVfTUFYQlVTXTsKIAogdm9pZCBpbml0aWFsaXNlX3BpYyh2b2lkKTsKIHZvaWQgaW5pdGlhbGlzZV9kbWEodm9pZCk7CkBAIC0xMDUsNyArMTA1LDcgQEAKIAogCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXZidXNmbiwgUENJX0JBU0VfQUREUkVTU18wLCAmaWRlX2J1c19vZmZzZXRbMF0pOwogCWlkZV9idXNfb2Zmc2V0WzBdICY9IH4xOwotI2lmIENGR19JREVfTUFYQlVTID4gMQorI2lmIENPTkZJR19TWVNfSURFX01BWEJVUyA+IDEKIAlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2YnVzZm4sIFBDSV9CQVNFX0FERFJFU1NfMiwgJmlkZV9idXNfb2Zmc2V0WzFdKTsKIAlpZGVfYnVzX29mZnNldFsxXSAmPSB+MTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvaTgyMzY1LmMgYi9kcml2ZXJzL3BjbWNpYS9pODIzNjUuYwppbmRleCAxZTI0MzFlLi4xYmNiM2E1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9pODIzNjUuYworKysgYi9kcml2ZXJzL3BjbWNpYS9pODIzNjUuYwpAQCAtOTA5LDggKzkwOSw4IEBACiAJbWVtLm1hcCA9IDA7CiAJbWVtLmZsYWdzID0gTUFQX0FUVFJJQiB8IE1BUF9BQ1RJVkU7CiAJbWVtLnNwZWVkID0gMzAwOwotCW1lbS5zeXNfc3RhcnQgPSBDRkdfUENNQ0lBX01FTV9BRERSOwotCW1lbS5zeXNfc3RvcCA9IENGR19QQ01DSUFfTUVNX0FERFIgKyBDRkdfUENNQ0lBX01FTV9TSVpFIC0gMTsKKwltZW0uc3lzX3N0YXJ0ID0gQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFI7CisJbWVtLnN5c19zdG9wID0gQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIgKyBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSAtIDE7CiAJbWVtLmNhcmRfc3RhcnQgPSAwOwogCWkzNjVfc2V0X21lbV9tYXAgKCZzb2NrZXQsICZtZW0pOwogCkBAIC05MTgsOCArOTE4LDggQEAKIAltZW0ubWFwID0gMTsKIAltZW0uZmxhZ3MgPSBNQVBfQUNUSVZFOwogCW1lbS5zcGVlZCA9IDMwMDsKLQltZW0uc3lzX3N0YXJ0ID0gQ0ZHX1BDTUNJQV9NRU1fQUREUiArIENGR19QQ01DSUFfTUVNX1NJWkU7Ci0JbWVtLnN5c19zdG9wID0gQ0ZHX1BDTUNJQV9NRU1fQUREUiArICgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSkgLSAxOworCW1lbS5zeXNfc3RhcnQgPSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUiArIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFOworCW1lbS5zeXNfc3RvcCA9IENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSICsgKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSkgLSAxOwogCW1lbS5jYXJkX3N0YXJ0ID0gMDsKIAlpMzY1X3NldF9tZW1fbWFwICgmc29ja2V0LCAmbWVtKTsKIApAQCAtOTg4LDggKzk4OCw4IEBACiB7CiAJdV9pbnQgdG1wWzJdOwogCXVfaW50ICptZW0gPSAodm9pZCAqKSBzb2NrZXQuY2JfcGh5czsKLQl1X2NoYXIgKmNpcyA9ICh2b2lkICopIENGR19QQ01DSUFfTUVNX0FERFI7Ci0JdV9jaGFyICppZGUgPSAodm9pZCAqKSAoQ0ZHX0FUQV9CQVNFX0FERFIgKyBDRkdfQVRBX1JFR19PRkZTRVQpOworCXVfY2hhciAqY2lzID0gKHZvaWQgKikgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFI7CisJdV9jaGFyICppZGUgPSAodm9pZCAqKSAoQ09ORklHX1NZU19BVEFfQkFTRV9BRERSICsgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVCk7CiAKIAlwY2lfcmVhZF9jb25maWdfZHdvcmQgKGRldiwgMHgwMCwgdG1wICsgMCk7CiAJcGNpX3JlYWRfY29uZmlnX2R3b3JkIChkZXYsIDB4ODAsIHRtcCArIDEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvbWFydWJ1bl9wY21jaWEuYyBiL2RyaXZlcnMvcGNtY2lhL21hcnVidW5fcGNtY2lhLmMKaW5kZXggZDA3NWJhMy4uZjcxNWRlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvbWFydWJ1bl9wY21jaWEuYworKysgYi9kcml2ZXJzL3BjbWNpYS9tYXJ1YnVuX3BjbWNpYS5jCkBAIC0zOCwyMCArMzgsMjAgQEAKICNpZiBkZWZpbmVkKENPTkZJR19QQ01DSUEpCiAKIC8qIE1SLVNIUEMtMDEgcmVnaXN0ZXIgKi8KLSNkZWZpbmUgTVJTSFBDX01PREUJKENGR19NQVJVQlVOX01SU0hQQyArIDQpCi0jZGVmaW5lIE1SU0hQQ19PUFRJT04gICAoQ0ZHX01BUlVCVU5fTVJTSFBDICsgNikKLSNkZWZpbmUgTVJTSFBDX0NTUiAgICAgIChDRkdfTUFSVUJVTl9NUlNIUEMgKyA4KQotI2RlZmluZSBNUlNIUENfSVNSICAgICAgKENGR19NQVJVQlVOX01SU0hQQyArIDEwKQotI2RlZmluZSBNUlNIUENfSUNSICAgICAgKENGR19NQVJVQlVOX01SU0hQQyArIDEyKQotI2RlZmluZSBNUlNIUENfQ1BXQ1IgICAgKENGR19NQVJVQlVOX01SU0hQQyArIDE0KQotI2RlZmluZSBNUlNIUENfTVcwQ1IxICAgKENGR19NQVJVQlVOX01SU0hQQyArIDE2KQotI2RlZmluZSBNUlNIUENfTVcxQ1IxICAgKENGR19NQVJVQlVOX01SU0hQQyArIDE4KQotI2RlZmluZSBNUlNIUENfSU9XQ1IxICAgKENGR19NQVJVQlVOX01SU0hQQyArIDIwKQotI2RlZmluZSBNUlNIUENfTVcwQ1IyICAgKENGR19NQVJVQlVOX01SU0hQQyArIDIyKQotI2RlZmluZSBNUlNIUENfTVcxQ1IyICAgKENGR19NQVJVQlVOX01SU0hQQyArIDI0KQotI2RlZmluZSBNUlNIUENfSU9XQ1IyICAgKENGR19NQVJVQlVOX01SU0hQQyArIDI2KQotI2RlZmluZSBNUlNIUENfQ0RDUiAgICAgKENGR19NQVJVQlVOX01SU0hQQyArIDI4KQotI2RlZmluZSBNUlNIUENfUENJQ19JTkZPIChDRkdfTUFSVUJVTl9NUlNIUEMgKyAzMCkKKyNkZWZpbmUgTVJTSFBDX01PREUJKENPTkZJR19TWVNfTUFSVUJVTl9NUlNIUEMgKyA0KQorI2RlZmluZSBNUlNIUENfT1BUSU9OICAgKENPTkZJR19TWVNfTUFSVUJVTl9NUlNIUEMgKyA2KQorI2RlZmluZSBNUlNIUENfQ1NSICAgICAgKENPTkZJR19TWVNfTUFSVUJVTl9NUlNIUEMgKyA4KQorI2RlZmluZSBNUlNIUENfSVNSICAgICAgKENPTkZJR19TWVNfTUFSVUJVTl9NUlNIUEMgKyAxMCkKKyNkZWZpbmUgTVJTSFBDX0lDUiAgICAgIChDT05GSUdfU1lTX01BUlVCVU5fTVJTSFBDICsgMTIpCisjZGVmaW5lIE1SU0hQQ19DUFdDUiAgICAoQ09ORklHX1NZU19NQVJVQlVOX01SU0hQQyArIDE0KQorI2RlZmluZSBNUlNIUENfTVcwQ1IxICAgKENPTkZJR19TWVNfTUFSVUJVTl9NUlNIUEMgKyAxNikKKyNkZWZpbmUgTVJTSFBDX01XMUNSMSAgIChDT05GSUdfU1lTX01BUlVCVU5fTVJTSFBDICsgMTgpCisjZGVmaW5lIE1SU0hQQ19JT1dDUjEgICAoQ09ORklHX1NZU19NQVJVQlVOX01SU0hQQyArIDIwKQorI2RlZmluZSBNUlNIUENfTVcwQ1IyICAgKENPTkZJR19TWVNfTUFSVUJVTl9NUlNIUEMgKyAyMikKKyNkZWZpbmUgTVJTSFBDX01XMUNSMiAgIChDT05GSUdfU1lTX01BUlVCVU5fTVJTSFBDICsgMjQpCisjZGVmaW5lIE1SU0hQQ19JT1dDUjIgICAoQ09ORklHX1NZU19NQVJVQlVOX01SU0hQQyArIDI2KQorI2RlZmluZSBNUlNIUENfQ0RDUiAgICAgKENPTkZJR19TWVNfTUFSVUJVTl9NUlNIUEMgKyAyOCkKKyNkZWZpbmUgTVJTSFBDX1BDSUNfSU5GTyAoQ09ORklHX1NZU19NQVJVQlVOX01SU0hQQyArIDMwKQogCiBpbnQgcGNtY2lhX29uICh2b2lkKQogewpAQCAtOTgsOCArOTgsOCBAQAogCiAJb3V0dygweDAwMDAsTVJTSFBDX0lTUik7CiAJb3V0dygweDIwMDAsTVJTSFBDX0lDUik7Ci0Jb3V0YigweDAwLChDRkdfTUFSVUJVTl9NVzIgKyAweDIwNikpOwotCW91dGIoMHg0MiwoQ0ZHX01BUlVCVU5fTVcyICsgMHgyMDApKTsKKwlvdXRiKDB4MDAsKENPTkZJR19TWVNfTUFSVUJVTl9NVzIgKyAweDIwNikpOworCW91dGIoMHg0MiwoQ09ORklHX1NZU19NQVJVQlVOX01XMiArIDB4MjAwKSk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL21wYzh4eF9wY21jaWEuYyBiL2RyaXZlcnMvcGNtY2lhL21wYzh4eF9wY21jaWEuYwppbmRleCAxNDQ3N2E0Li45NWVhNWU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9tcGM4eHhfcGNtY2lhLmMKKysrIGIvZHJpdmVycy9wY21jaWEvbXBjOHh4X3BjbWNpYS5jCkBAIC0zNCw4ICszNCw4IEBACiAKIC8qIGxvb2sgdXAgdGFibGUgZm9yIHBnY3J4IHJlZ2lzdGVycyAqLwogdV9pbnQgKnBjbWNpYV9wZ2NyeFsyXSA9IHsKLQkmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEucGNtY19wZ2NyYSwKLQkmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEucGNtY19wZ2NyYiwKKwkmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhLnBjbWNfcGdjcmEsCisJJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYS5wY21jX3BnY3JiLAogfTsKIAogLyoKQEAgLTY2LDExICs2NiwxMSBAQAogI2VuZGlmCiAKICNpZglkZWZpbmVkKENPTkZJR19MV01PTikgfHwgZGVmaW5lZChDT05GSUdfTlNDVSkKLSNkZWZpbmUJQ0ZHX1BDTUNJQV9USU1JTkcJKAlQQ01DSUFfU0hUKDkpCVwKKyNkZWZpbmUJQ09ORklHX1NZU19QQ01DSUFfVElNSU5HCSgJUENNQ0lBX1NIVCg5KQlcCiAJCQkJfAlQQ01DSUFfU1NUKDMpCVwKIAkJCQl8CVBDTUNJQV9TTCgxMikpCiAjZWxzZQotI2RlZmluZQlDRkdfUENNQ0lBX1RJTUlORwkoCVBDTUNJQV9TSFQoMikJXAorI2RlZmluZQlDT05GSUdfU1lTX1BDTUNJQV9USU1JTkcJKAlQQ01DSUFfU0hUKDIpCVwKIAkJCQl8CVBDTUNJQV9TU1QoNCkJXAogCQkJCXwJUENNQ0lBX1NMKDkpKQogI2VuZGlmCkBAIC04OCwxMiArODgsMTIgQEAKIAlkZWJ1ZyAoIkVuYWJsZSBQQ01DSUEgIiBQQ01DSUFfU0xPVF9NU0cgIlxuIik7CiAKIAkvKiBpbnRpYWxpemUgdGhlIGZpeGVkIG1lbW9yeSB3aW5kb3dzICovCi0Jd2luID0gKHBjbWNpYV93aW5fdCAqKSgmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEucGNtY19wYnIwKTsKLQliYXNlID0gQ0ZHX1BDTUNJQV9NRU1fQUREUjsKKwl3aW4gPSAocGNtY2lhX3dpbl90ICopKCYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEucGNtY19wYnIwKTsKKwliYXNlID0gQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFI7CiAKLQlpZigocmVnID0gbTh4eF9nZXRfZ3JheWNvZGUoQ0ZHX1BDTUNJQV9NRU1fU0laRSkpID09IC0xKSB7CisJaWYoKHJlZyA9IG04eHhfZ2V0X2dyYXljb2RlKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFKSkgPT0gLTEpIHsKIAkJcHJpbnRmICgiQ2Fubm90IHNldCB3aW5kb3cgc2l6ZSB0byAweCUwOHhcbiIsCi0JCQlDRkdfUENNQ0lBX01FTV9TSVpFKTsKKwkJCUNPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFKTsKIAkJcmV0dXJuICgxKTsKIAl9CiAKQEAgLTEyNSw3ICsxMjUsNyBAQAogCQkJCXwJUENNQ0lBX1BSU19BVFRSCiAJCQkJfAlzbG90Yml0CiAJCQkJfAlQQ01DSUFfUFYKLQkJCQl8CUNGR19QQ01DSUFfVElNSU5HICk7CisJCQkJfAlDT05GSUdfU1lTX1BDTUNJQV9USU1JTkcgKTsKIAkJCWJyZWFrOwogCQl9CiAJCWNhc2UgNToKQEAgLTEzNSw3ICsxMzUsNyBAQAogCQkJCXwJUENNQ0lBX1BSU19JTwogCQkJCXwJc2xvdGJpdAogCQkJCXwJUENNQ0lBX1BWCi0JCQkJfAlDRkdfUENNQ0lBX1RJTUlORyApOworCQkJCXwJQ09ORklHX1NZU19QQ01DSUFfVElNSU5HICk7CiAJCQlicmVhazsKIAkJfQogCQljYXNlIDY6CkBAIC0xNDUsNyArMTQ1LDcgQEAKIAkJCQl8CVBDTUNJQV9QUlNfSU8KIAkJCQl8CXNsb3RiaXQKIAkJCQl8CVBDTUNJQV9QVgotCQkJCXwJQ0ZHX1BDTUNJQV9USU1JTkcgKTsKKwkJCQl8CUNPTkZJR19TWVNfUENNQ0lBX1RJTUlORyApOwogCQkJYnJlYWs7CiAJCX0KICNlbmRpZgkvKiBDT05GSUdfSURFXzh4eF9QQ0NBUkQgKi8KQEAgLTE1Nyw3ICsxNTcsNyBAQAogCQkJCXwJUENNQ0lBX1BSU19JTwogCQkJCXwJc2xvdGJpdAogCQkJCXwJUENNQ0lBX1BWCi0JCQkJfAlDRkdfUENNQ0lBX1RJTUlORyApOworCQkJCXwJQ09ORklHX1NZU19QQ01DSUFfVElNSU5HICk7CiAJCQlicmVhazsKIAkJfQogI2VuZGlmCS8qIENPTkZJR19ITUkxMCAqLwpAQCAtMTY4LDcgKzE2OCw3IEBACiAKIAkJZGVidWcgKCJNZW1XaW4gJWQ6IFBCUiAweCUwOGxYICBQT1IgJTA4bFhcbiIsCiAJCSAgICAgICBpLCB3aW4tPmJyLCB3aW4tPm9yKTsKLQkJYmFzZSArPSBDRkdfUENNQ0lBX01FTV9TSVpFOworCQliYXNlICs9IENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFOwogCQkrK3dpbjsKIAl9CiAKQEAgLTE5OCwxNCArMTk4LDE0IEBACiAJcHJpbnRmICgiRGlzYWJsZSBQQ01DSUEgIiBQQ01DSUFfU0xPVF9NU0cgIlxuIik7CiAKIAkvKiBjbGVhciBpbnRlcnJ1cHQgc3RhdGUsIGFuZCBkaXNhYmxlIGludGVycnVwdHMgKi8KLQkoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYS5wY21jX3BzY3IgPSAgUENNQ0lBX01BU0soX3Nsb3RfKTsKLQkoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYS5wY21jX3BlciAmPSB+UENNQ0lBX01BU0soX3Nsb3RfKTsKKwkoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEucGNtY19wc2NyID0gIFBDTUNJQV9NQVNLKF9zbG90Xyk7CisJKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhLnBjbWNfcGVyICY9IH5QQ01DSUFfTUFTSyhfc2xvdF8pOwogCiAJLyogdHVybiBvZmYgaW50ZXJydXB0IGFuZCBkaXNhYmxlIEN4T0UgKi8KIAlQQ01DSUFfUEdDUlgoX3Nsb3RfKSA9IF9fTVlfUENNQ0lBX0dDUlhfQ1hPRTsKIAogCS8qIHR1cm4gb2ZmIG1lbW9yeSB3aW5kb3dzICovCi0Jd2luID0gKHBjbWNpYV93aW5fdCAqKSgmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEucGNtY19wYnIwKTsKKwl3aW4gPSAocGNtY2lhX3dpbl90ICopKCYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEucGNtY19wYnIwKTsKIAogCWZvciAoaT0wOyBpPFBDTUNJQV9NRU1fV0lOX05POyArK2kpIHsKIAkJLyogZGlzYWJsZSBtZW1vcnkgd2luZG93ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9weGFfcGNtY2lhLmMgYi9kcml2ZXJzL3BjbWNpYS9weGFfcGNtY2lhLmMKaW5kZXggMTFkODU5MC4uZDA2YWI3NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvcHhhX3BjbWNpYS5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL3B4YV9wY21jaWEuYwpAQCAtMTMsMTIgKzEzLDEyIEBACiBpbnQgcGNtY2lhX29uICh2b2lkKQogewogCXVuc2lnbmVkIGludCByZWdfYXJyW10gPSB7Ci0JCTB4NDgwMDAwMjgsIENGR19NQ01FTTBfVkFMLAotCQkweDQ4MDAwMDJjLCBDRkdfTUNNRU0xX1ZBTCwKLQkJMHg0ODAwMDAzMCwgQ0ZHX01DQVRUMF9WQUwsCi0JCTB4NDgwMDAwMzQsIENGR19NQ0FUVDFfVkFMLAotCQkweDQ4MDAwMDM4LCBDRkdfTUNJTzBfVkFMLAotCQkweDQ4MDAwMDNjLCBDRkdfTUNJTzFfVkFMLAorCQkweDQ4MDAwMDI4LCBDT05GSUdfU1lTX01DTUVNMF9WQUwsCisJCTB4NDgwMDAwMmMsIENPTkZJR19TWVNfTUNNRU0xX1ZBTCwKKwkJMHg0ODAwMDAzMCwgQ09ORklHX1NZU19NQ0FUVDBfVkFMLAorCQkweDQ4MDAwMDM0LCBDT05GSUdfU1lTX01DQVRUMV9WQUwsCisJCTB4NDgwMDAwMzgsIENPTkZJR19TWVNfTUNJTzBfVkFMLAorCQkweDQ4MDAwMDNjLCBDT05GSUdfU1lTX01DSU8xX1ZBTCwKIAogCQkwLCAwCiAJfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3RpX3BjaTE0MTBhLmMgYi9kcml2ZXJzL3BjbWNpYS90aV9wY2kxNDEwYS5jCmluZGV4IGM4NzZkMGMuLjZhYjk3NTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL3RpX3BjaTE0MTBhLmMKKysrIGIvZHJpdmVycy9wY21jaWEvdGlfcGNpMTQxMGEuYwpAQCAtODgsOCArODgsOCBAQAogCiBpbnQgZG9fcGluaXQoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7Ci0jaWZuZGVmIENGR19GSVJTVF9QQ01DSUFfQlVTCi0jIGRlZmluZSBDRkdfRklSU1RfUENNQ0lBX0JVUyAwCisjaWZuZGVmIENPTkZJR19TWVNfRklSU1RfUENNQ0lBX0JVUworIyBkZWZpbmUgQ09ORklHX1NZU19GSVJTVF9QQ01DSUFfQlVTIDAKICNlbmRpZgogCiAJaW50IHJjb2RlID0gMDsKQEAgLTk5LDcgKzk5LDcgQEAKIAkJcmV0dXJuIDE7CiAJfQogCWlmIChzdHJjbXAoYXJndlsxXSwib24iKSA9PSAwKSB7Ci0JCXJjb2RlID0gcGNtY2lhX29uKENGR19GSVJTVF9QQ01DSUFfQlVTKTsKKwkJcmNvZGUgPSBwY21jaWFfb24oQ09ORklHX1NZU19GSVJTVF9QQ01DSUFfQlVTKTsKIAl9IGVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCJvZmYiKSA9PSAwKSB7CiAJCXJjb2RlID0gcGNtY2lhX29mZigpOwogCX0gZWxzZSB7CkBAIC0xNDgsMTEgKzE0OCwxMSBAQAogCQlkZWJ1ZygiRW5hYmxlIFBDTUNJQSBUaSBQQ0kxNDEwQVxuIik7CiAJfQogCi0JcGNtY2lhX2Npc19wdHIgPSBDRkdfUENNQ0lBX0NJU19XSU47Ci0JY2lzX2xlbiA9IENGR19QQ01DSUFfQ0lTX1dJTl9TSVpFOworCXBjbWNpYV9jaXNfcHRyID0gQ09ORklHX1NZU19QQ01DSUFfQ0lTX1dJTjsKKwljaXNfbGVuID0gQ09ORklHX1NZU19QQ01DSUFfQ0lTX1dJTl9TSVpFOwogCi0JaW9fYmFzZSA9IENGR19QQ01DSUFfSU9fV0lOOwotCWlvX2xlbiA9IENGR19QQ01DSUFfSU9fV0lOX1NJWkU7CisJaW9fYmFzZSA9IENPTkZJR19TWVNfUENNQ0lBX0lPX1dJTjsKKwlpb19sZW4gPSBDT05GSUdfU1lTX1BDTUNJQV9JT19XSU5fU0laRTsKIAogCS8qCiAJICogU2V0dXAgdGhlIFBDSSBkZXZpY2UuCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS90cW04eHhfcGNtY2lhLmMgYi9kcml2ZXJzL3BjbWNpYS90cW04eHhfcGNtY2lhLmMKaW5kZXggY2M5ODBjMi4uNmJhOGI1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvdHFtOHh4X3BjbWNpYS5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL3RxbTh4eF9wY21jaWEuYwpAQCAtNDAsNyArNDAsNyBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgcG93ZXJfY29uZmlnKGludCBzbG90KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCS8qCiAJICogQ29uZmlndXJlIFBvcnQgQiAgcGlucyBmb3IKIAkgKiA1IFZvbHRzIEVuYWJsZSBhbmQgMyBWb2x0cyBlbmFibGUKQEAgLTUwLDIxICs1MCwyMSBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgcG93ZXJfb2ZmKGludCBzbG90KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCS8qIHJlbW92ZSBhbGwgcG93ZXIgKi8KIAlpbW1hcC0+aW1fY3BtLmNwX3BiZGF0IHw9IDB4MDAwMDAzMDA7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb3dlcl9vbl81XzAoaW50IHNsb3QpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJaW1tYXAtPmltX2NwbS5jcF9wYmRhdCAmPSB+KDB4MDAwMDEwMCk7CiAJaW1tYXAtPmltX2NwbS5jcF9wYmRpciB8PSAweDAwMDAwMzAwOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcG93ZXJfb25fM18zKGludCBzbG90KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCWltbWFwLT5pbV9jcG0uY3BfcGJkYXQgJj0gfigweDAwMDAyMDApOwogCWltbWFwLT5pbV9jcG0uY3BfcGJkaXIgfD0gMHgwMDAwMDMwMDsKIH0KQEAgLTk3LDcgKzk3LDcgQEAKIAogc3RhdGljIGlubGluZSB2b2lkIHBvd2VyX2NvbmZpZyhpbnQgc2xvdCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAkvKgogCSogQ29uZmlndXJlIFBvcnQgQyBwaW5zIGZvcgogCSogNSBWb2x0cyBFbmFibGUgYW5kIDMgVm9sdHMgZW5hYmxlCkBAIC0xMDgsMjAgKzEwOCwyMCBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgcG93ZXJfb2ZmKGludCBzbG90KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCWltbWFwLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICY9IH4oMHgwMDAyIHwgMHgwMDA0KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHBvd2VyX29uXzVfMChpbnQgc2xvdCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAlpbW1hcC0+aW1faW9wb3J0LmlvcF9wY2RhdCB8PSAweDAwMDQ7CiAJaW1tYXAtPmltX2lvcG9ydC5pb3BfcGNkaXIgfD0gKDB4MDAwMiB8IDB4MDAwNCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb3dlcl9vbl8zXzMoaW50IHNsb3QpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJaW1tYXAtPmltX2lvcG9ydC5pb3BfcGNkYXQgfD0gMHgwMDAyOwogCWltbWFwLT5pbV9pb3BvcnQuaW9wX3BjZGlyIHw9ICgweDAwMDIgfCAweDAwMDQpOwogfQpAQCAtMTMyLDE0ICsxMzIsMTQgQEAKIHN0YXRpYyBpbmxpbmUgaW50IGNoZWNrX2NhcmRfaXNfYWJzZW50KGludCBzbG90KQogewogCXZvbGF0aWxlIHBjbWNvbmY4eHhfdCAqcGNtcCA9Ci0JCShwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOworCQkocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CiAJcmV0dXJuIHBjbXAtPnBjbWNfcGlwciAmICgweDEwMDAwMDAwID4+IChzbG90IDw8IDQpKTsKIH0KICNlbHNlCiBzdGF0aWMgaW5saW5lIGludCBjaGVja19jYXJkX2lzX2Fic2VudChpbnQgc2xvdCkKIHsKIAl2b2xhdGlsZSBwY21jb25mOHh4X3QgKnBjbXAgPQotCQkocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKKwkJKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogCXJldHVybiBwY21wLT5wY21jX3BpcHIgJiAoMHgxODAwMDAwMCA+PiAoc2xvdCA8PCA0KSk7CiB9CiAjZW5kaWYKQEAgLTE1Myw5ICsxNTMsOSBAQAogaW50IHBjbWNpYV9oYXJkd2FyZV9lbmFibGUoaW50IHNsb3QpCiB7CiAJdm9sYXRpbGUgcGNtY29uZjh4eF90ICpwY21wID0KLQkJKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7CisJCShwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEpKTsKIAl2b2xhdGlsZSBzeXNjb25mOHh4X3QgKnN5c3AgPQotCQkoc3lzY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9zaXVfY29uZikpOworCQkoc3lzY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fc2l1X2NvbmYpKTsKIAl1aW50IHJlZywgbWFzazsKIAogCWRlYnVnICgiaGFyZHdhcmVfZW5hYmxlOiAiIFBDTUNJQV9CT0FSRF9NU0cgIiBTbG90ICVjXG4iLCAnQScrc2xvdCk7CkBAIC0yNzEsNyArMjcxLDcgQEAKIAl1X2xvbmcgcmVnOwogIyBpZmRlZiBERUJVRwogCXZvbGF0aWxlIHBjbWNvbmY4eHhfdCAqcGNtcCA9Ci0JCShwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOworCQkocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CiAjIGVuZGlmCiAKIAlkZWJ1ZyAoInZvbHRhZ2Vfc2V0OiAiIFBDTUNJQV9CT0FSRF9NU0cKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcWUvdWVjLmMgYi9kcml2ZXJzL3FlL3VlYy5jCmluZGV4IDBkNDgzNjAuLmVkN2VkNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcWUvdWVjLmMKKysrIGIvZHJpdmVycy9xZS91ZWMuYwpAQCAtMzQsMTIgKzM0LDEyIEBACiAjaWZkZWYgQ09ORklHX1VFQ19FVEgxCiBzdGF0aWMgdWVjX2luZm9fdCBldGgxX3VlY19pbmZvID0gewogCS51Zl9pbmZvCQk9IHsKLQkJLnVjY19udW0JPSBDRkdfVUVDMV9VQ0NfTlVNLAotCQkucnhfY2xvY2sJPSBDRkdfVUVDMV9SWF9DTEssCi0JCS50eF9jbG9jawk9IENGR19VRUMxX1RYX0NMSywKLQkJLmV0aF90eXBlCT0gQ0ZHX1VFQzFfRVRIX1RZUEUsCisJCS51Y2NfbnVtCT0gQ09ORklHX1NZU19VRUMxX1VDQ19OVU0sCisJCS5yeF9jbG9jawk9IENPTkZJR19TWVNfVUVDMV9SWF9DTEssCisJCS50eF9jbG9jawk9IENPTkZJR19TWVNfVUVDMV9UWF9DTEssCisJCS5ldGhfdHlwZQk9IENPTkZJR19TWVNfVUVDMV9FVEhfVFlQRSwKIAl9LAotI2lmIChDRkdfVUVDMV9FVEhfVFlQRSA9PSBGQVNUX0VUSCkKKyNpZiAoQ09ORklHX1NZU19VRUMxX0VUSF9UWVBFID09IEZBU1RfRVRIKQogCS5udW1fdGhyZWFkc190eAkJPSBVRUNfTlVNX09GX1RIUkVBRFNfMSwKIAkubnVtX3RocmVhZHNfcngJCT0gVUVDX05VTV9PRl9USFJFQURTXzEsCiAjZWxzZQpAQCAtNTAsMTkgKzUwLDE5IEBACiAJLnJpc2NSeAkJCT0gUUVfUklTQ19BTExPQ0FUSU9OX1JJU0MxX0FORF9SSVNDMiwKIAkudHhfYmRfcmluZ19sZW4JCT0gMTYsCiAJLnJ4X2JkX3JpbmdfbGVuCQk9IDE2LAotCS5waHlfYWRkcmVzcwkJPSBDRkdfVUVDMV9QSFlfQUREUiwKLQkuZW5ldF9pbnRlcmZhY2UJCT0gQ0ZHX1VFQzFfSU5URVJGQUNFX01PREUsCisJLnBoeV9hZGRyZXNzCQk9IENPTkZJR19TWVNfVUVDMV9QSFlfQUREUiwKKwkuZW5ldF9pbnRlcmZhY2UJCT0gQ09ORklHX1NZU19VRUMxX0lOVEVSRkFDRV9NT0RFLAogfTsKICNlbmRpZgogI2lmZGVmIENPTkZJR19VRUNfRVRIMgogc3RhdGljIHVlY19pbmZvX3QgZXRoMl91ZWNfaW5mbyA9IHsKIAkudWZfaW5mbwkJPSB7Ci0JCS51Y2NfbnVtCT0gQ0ZHX1VFQzJfVUNDX05VTSwKLQkJLnJ4X2Nsb2NrCT0gQ0ZHX1VFQzJfUlhfQ0xLLAotCQkudHhfY2xvY2sJPSBDRkdfVUVDMl9UWF9DTEssCi0JCS5ldGhfdHlwZQk9IENGR19VRUMyX0VUSF9UWVBFLAorCQkudWNjX251bQk9IENPTkZJR19TWVNfVUVDMl9VQ0NfTlVNLAorCQkucnhfY2xvY2sJPSBDT05GSUdfU1lTX1VFQzJfUlhfQ0xLLAorCQkudHhfY2xvY2sJPSBDT05GSUdfU1lTX1VFQzJfVFhfQ0xLLAorCQkuZXRoX3R5cGUJPSBDT05GSUdfU1lTX1VFQzJfRVRIX1RZUEUsCiAJfSwKLSNpZiAoQ0ZHX1VFQzJfRVRIX1RZUEUgPT0gRkFTVF9FVEgpCisjaWYgKENPTkZJR19TWVNfVUVDMl9FVEhfVFlQRSA9PSBGQVNUX0VUSCkKIAkubnVtX3RocmVhZHNfdHgJCT0gVUVDX05VTV9PRl9USFJFQURTXzEsCiAJLm51bV90aHJlYWRzX3J4CQk9IFVFQ19OVU1fT0ZfVEhSRUFEU18xLAogI2Vsc2UKQEAgLTczLDE5ICs3MywxOSBAQAogCS5yaXNjUngJCQk9IFFFX1JJU0NfQUxMT0NBVElPTl9SSVNDMV9BTkRfUklTQzIsCiAJLnR4X2JkX3JpbmdfbGVuCQk9IDE2LAogCS5yeF9iZF9yaW5nX2xlbgkJPSAxNiwKLQkucGh5X2FkZHJlc3MJCT0gQ0ZHX1VFQzJfUEhZX0FERFIsCi0JLmVuZXRfaW50ZXJmYWNlCQk9IENGR19VRUMyX0lOVEVSRkFDRV9NT0RFLAorCS5waHlfYWRkcmVzcwkJPSBDT05GSUdfU1lTX1VFQzJfUEhZX0FERFIsCisJLmVuZXRfaW50ZXJmYWNlCQk9IENPTkZJR19TWVNfVUVDMl9JTlRFUkZBQ0VfTU9ERSwKIH07CiAjZW5kaWYKICNpZmRlZiBDT05GSUdfVUVDX0VUSDMKIHN0YXRpYyB1ZWNfaW5mb190IGV0aDNfdWVjX2luZm8gPSB7CiAJLnVmX2luZm8JCT0gewotCQkudWNjX251bQk9IENGR19VRUMzX1VDQ19OVU0sCi0JCS5yeF9jbG9jawk9IENGR19VRUMzX1JYX0NMSywKLQkJLnR4X2Nsb2NrCT0gQ0ZHX1VFQzNfVFhfQ0xLLAotCQkuZXRoX3R5cGUJPSBDRkdfVUVDM19FVEhfVFlQRSwKKwkJLnVjY19udW0JPSBDT05GSUdfU1lTX1VFQzNfVUNDX05VTSwKKwkJLnJ4X2Nsb2NrCT0gQ09ORklHX1NZU19VRUMzX1JYX0NMSywKKwkJLnR4X2Nsb2NrCT0gQ09ORklHX1NZU19VRUMzX1RYX0NMSywKKwkJLmV0aF90eXBlCT0gQ09ORklHX1NZU19VRUMzX0VUSF9UWVBFLAogCX0sCi0jaWYgKENGR19VRUMzX0VUSF9UWVBFID09IEZBU1RfRVRIKQorI2lmIChDT05GSUdfU1lTX1VFQzNfRVRIX1RZUEUgPT0gRkFTVF9FVEgpCiAJLm51bV90aHJlYWRzX3R4CQk9IFVFQ19OVU1fT0ZfVEhSRUFEU18xLAogCS5udW1fdGhyZWFkc19yeAkJPSBVRUNfTlVNX09GX1RIUkVBRFNfMSwKICNlbHNlCkBAIC05NiwxOSArOTYsMTkgQEAKIAkucmlzY1J4CQkJPSBRRV9SSVNDX0FMTE9DQVRJT05fUklTQzFfQU5EX1JJU0MyLAogCS50eF9iZF9yaW5nX2xlbgkJPSAxNiwKIAkucnhfYmRfcmluZ19sZW4JCT0gMTYsCi0JLnBoeV9hZGRyZXNzCQk9IENGR19VRUMzX1BIWV9BRERSLAotCS5lbmV0X2ludGVyZmFjZQkJPSBDRkdfVUVDM19JTlRFUkZBQ0VfTU9ERSwKKwkucGh5X2FkZHJlc3MJCT0gQ09ORklHX1NZU19VRUMzX1BIWV9BRERSLAorCS5lbmV0X2ludGVyZmFjZQkJPSBDT05GSUdfU1lTX1VFQzNfSU5URVJGQUNFX01PREUsCiB9OwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX1VFQ19FVEg0CiBzdGF0aWMgdWVjX2luZm9fdCBldGg0X3VlY19pbmZvID0gewogCS51Zl9pbmZvCQk9IHsKLQkJLnVjY19udW0JPSBDRkdfVUVDNF9VQ0NfTlVNLAotCQkucnhfY2xvY2sJPSBDRkdfVUVDNF9SWF9DTEssCi0JCS50eF9jbG9jawk9IENGR19VRUM0X1RYX0NMSywKLQkJLmV0aF90eXBlCT0gQ0ZHX1VFQzRfRVRIX1RZUEUsCisJCS51Y2NfbnVtCT0gQ09ORklHX1NZU19VRUM0X1VDQ19OVU0sCisJCS5yeF9jbG9jawk9IENPTkZJR19TWVNfVUVDNF9SWF9DTEssCisJCS50eF9jbG9jawk9IENPTkZJR19TWVNfVUVDNF9UWF9DTEssCisJCS5ldGhfdHlwZQk9IENPTkZJR19TWVNfVUVDNF9FVEhfVFlQRSwKIAl9LAotI2lmIChDRkdfVUVDNF9FVEhfVFlQRSA9PSBGQVNUX0VUSCkKKyNpZiAoQ09ORklHX1NZU19VRUM0X0VUSF9UWVBFID09IEZBU1RfRVRIKQogCS5udW1fdGhyZWFkc190eAkJPSBVRUNfTlVNX09GX1RIUkVBRFNfMSwKIAkubnVtX3RocmVhZHNfcngJCT0gVUVDX05VTV9PRl9USFJFQURTXzEsCiAjZWxzZQpAQCAtMTE5LDE5ICsxMTksMTkgQEAKIAkucmlzY1J4CQkJPSBRRV9SSVNDX0FMTE9DQVRJT05fUklTQzFfQU5EX1JJU0MyLAogCS50eF9iZF9yaW5nX2xlbgkJPSAxNiwKIAkucnhfYmRfcmluZ19sZW4JCT0gMTYsCi0JLnBoeV9hZGRyZXNzCQk9IENGR19VRUM0X1BIWV9BRERSLAotCS5lbmV0X2ludGVyZmFjZQkJPSBDRkdfVUVDNF9JTlRFUkZBQ0VfTU9ERSwKKwkucGh5X2FkZHJlc3MJCT0gQ09ORklHX1NZU19VRUM0X1BIWV9BRERSLAorCS5lbmV0X2ludGVyZmFjZQkJPSBDT05GSUdfU1lTX1VFQzRfSU5URVJGQUNFX01PREUsCiB9OwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX1VFQ19FVEg1CiBzdGF0aWMgdWVjX2luZm9fdCBldGg1X3VlY19pbmZvID0gewogCS51Zl9pbmZvCQk9IHsKLQkJLnVjY19udW0JPSBDRkdfVUVDNV9VQ0NfTlVNLAotCQkucnhfY2xvY2sJPSBDRkdfVUVDNV9SWF9DTEssCi0JCS50eF9jbG9jawk9IENGR19VRUM1X1RYX0NMSywKLQkJLmV0aF90eXBlCT0gQ0ZHX1VFQzVfRVRIX1RZUEUsCisJCS51Y2NfbnVtCT0gQ09ORklHX1NZU19VRUM1X1VDQ19OVU0sCisJCS5yeF9jbG9jawk9IENPTkZJR19TWVNfVUVDNV9SWF9DTEssCisJCS50eF9jbG9jawk9IENPTkZJR19TWVNfVUVDNV9UWF9DTEssCisJCS5ldGhfdHlwZQk9IENPTkZJR19TWVNfVUVDNV9FVEhfVFlQRSwKIAl9LAotI2lmIChDRkdfVUVDNV9FVEhfVFlQRSA9PSBGQVNUX0VUSCkKKyNpZiAoQ09ORklHX1NZU19VRUM1X0VUSF9UWVBFID09IEZBU1RfRVRIKQogCS5udW1fdGhyZWFkc190eAkJPSBVRUNfTlVNX09GX1RIUkVBRFNfMSwKIAkubnVtX3RocmVhZHNfcngJCT0gVUVDX05VTV9PRl9USFJFQURTXzEsCiAjZWxzZQpAQCAtMTQyLDE5ICsxNDIsMTkgQEAKIAkucmlzY1J4CQkJPSBRRV9SSVNDX0FMTE9DQVRJT05fUklTQzFfQU5EX1JJU0MyLAogCS50eF9iZF9yaW5nX2xlbgkJPSAxNiwKIAkucnhfYmRfcmluZ19sZW4JCT0gMTYsCi0JLnBoeV9hZGRyZXNzCQk9IENGR19VRUM1X1BIWV9BRERSLAotCS5lbmV0X2ludGVyZmFjZQkJPSBDRkdfVUVDNV9JTlRFUkZBQ0VfTU9ERSwKKwkucGh5X2FkZHJlc3MJCT0gQ09ORklHX1NZU19VRUM1X1BIWV9BRERSLAorCS5lbmV0X2ludGVyZmFjZQkJPSBDT05GSUdfU1lTX1VFQzVfSU5URVJGQUNFX01PREUsCiB9OwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX1VFQ19FVEg2CiBzdGF0aWMgdWVjX2luZm9fdCBldGg2X3VlY19pbmZvID0gewogCS51Zl9pbmZvCQk9IHsKLQkJLnVjY19udW0JPSBDRkdfVUVDNl9VQ0NfTlVNLAotCQkucnhfY2xvY2sJPSBDRkdfVUVDNl9SWF9DTEssCi0JCS50eF9jbG9jawk9IENGR19VRUM2X1RYX0NMSywKLQkJLmV0aF90eXBlCT0gQ0ZHX1VFQzZfRVRIX1RZUEUsCisJCS51Y2NfbnVtCT0gQ09ORklHX1NZU19VRUM2X1VDQ19OVU0sCisJCS5yeF9jbG9jawk9IENPTkZJR19TWVNfVUVDNl9SWF9DTEssCisJCS50eF9jbG9jawk9IENPTkZJR19TWVNfVUVDNl9UWF9DTEssCisJCS5ldGhfdHlwZQk9IENPTkZJR19TWVNfVUVDNl9FVEhfVFlQRSwKIAl9LAotI2lmIChDRkdfVUVDNl9FVEhfVFlQRSA9PSBGQVNUX0VUSCkKKyNpZiAoQ09ORklHX1NZU19VRUM2X0VUSF9UWVBFID09IEZBU1RfRVRIKQogCS5udW1fdGhyZWFkc190eAkJPSBVRUNfTlVNX09GX1RIUkVBRFNfMSwKIAkubnVtX3RocmVhZHNfcngJCT0gVUVDX05VTV9PRl9USFJFQURTXzEsCiAjZWxzZQpAQCAtMTY1LDggKzE2NSw4IEBACiAJLnJpc2NSeAkJCT0gUUVfUklTQ19BTExPQ0FUSU9OX1JJU0MxX0FORF9SSVNDMiwKIAkudHhfYmRfcmluZ19sZW4JCT0gMTYsCiAJLnJ4X2JkX3JpbmdfbGVuCQk9IDE2LAotCS5waHlfYWRkcmVzcwkJPSBDRkdfVUVDNl9QSFlfQUREUiwKLQkuZW5ldF9pbnRlcmZhY2UJCT0gQ0ZHX1VFQzZfSU5URVJGQUNFX01PREUsCisJLnBoeV9hZGRyZXNzCQk9IENPTkZJR19TWVNfVUVDNl9QSFlfQUREUiwKKwkuZW5ldF9pbnRlcmZhY2UJCT0gQ09ORklHX1NZU19VRUM2X0lOVEVSRkFDRV9NT0RFLAogfTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9kczEzMDYuYyBiL2RyaXZlcnMvcnRjL2RzMTMwNi5jCmluZGV4IDAzYzQwODkuLjc1Zjg4YTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL2RzMTMwNi5jCisrKyBiL2RyaXZlcnMvcnRjL2RzMTMwNi5jCkBAIC04Niw3ICs4Niw3IEBACiAvKiByZWFkIGNsb2NrIHRpbWUgZnJvbSBEUzEzMDYgYW5kIHJldHVybiBpdCBpbiAqdG1wICovCiBpbnQgcnRjX2dldCAoc3RydWN0IHJ0Y190aW1lICp0bXApCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1bnNpZ25lZCBjaGFyIHNwaV9ieXRlOwkvKiBEYXRhIEJ5dGUgKi8KIAogCWluaXRfc3BpICgpOwkJLyogc2V0IHBvcnQgQiBmb3Igc29mdHdhcmUgU1BJICovCkBAIC0xNDMsNyArMTQzLDcgQEAKIC8qIHNldCBjbG9jayB0aW1lIGluIERTMTMwNiBSVEMgYW5kIGluIE1QQzh4eCBSVEMgKi8KIGludCBydGNfc2V0IChzdHJ1Y3QgcnRjX3RpbWUgKnRtcCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJaW5pdF9zcGkgKCk7CQkvKiBzZXQgcG9ydCBCIGZvciBzb2Z0d2FyZSBTUEkgKi8KIApAQCAtMjE4LDcgKzIxOCw3IEBACiAvKiBJbml0aWFsaXplIFBvcnQgQiBmb3Igc29mdHdhcmUgU1BJICovCiBzdGF0aWMgdm9pZCBpbml0X3NwaSAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJLyogRm9yY2Ugb3V0cHV0IHBpbnMgdG8gYmVnaW4gYXQgbG9naWMgMCAqLwogCWltbWFwLT5pbV9jcG0uY3BfcGJkYXQgJj0gfihQQl9TUElfQ0UgfCBQQl9TUElNT1NJIHwgUEJfU1BJU0NLKTsKQEAgLTIzNSw3ICsyMzUsNyBAQAogLyogTk9URTogc29mdF9zcGlfc2VuZCgpIGFzc3VtZXMgdGhhdCB0aGUgSS9PIGxpbmVzIGFyZSBjb25maWd1cmVkIGFscmVhZHkgKi8KIHN0YXRpYyB2b2lkIHNvZnRfc3BpX3NlbmQgKHVuc2lnbmVkIGNoYXIgbikKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXVuc2lnbmVkIGNoYXIgYml0cG9zOwkvKiBiaXQgcG9zaXRpb24gdG8gcmVjZWl2ZSAqLwogCXVuc2lnbmVkIGNoYXIgaTsJLyogTG9vcCBDb250cm9sICovCiAKQEAgLTI2NCw3ICsyNjQsNyBAQAogLyogTk9URTogc29mdF9zcGlfcmVhZCgpIGFzc3VtZXMgdGhhdCB0aGUgSS9PIGxpbmVzIGFyZSBjb25maWd1cmVkIGFscmVhZHkgKi8KIHN0YXRpYyB1bnNpZ25lZCBjaGFyIHNvZnRfc3BpX3JlYWQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCXVuc2lnbmVkIGNoYXIgc3BpX2J5dGUgPSAwOwkvKiBSZXR1cm4gdmFsdWUsIGFzc3VtZSBzdWNjZXNzICovCiAJdW5zaWduZWQgY2hhciBiaXRwb3M7CS8qIGJpdCBwb3NpdGlvbiB0byByZWNlaXZlICovCkBAIC0zMTQsNyArMzE0LDcgQEAKIAkgKiBzdGVwIGp1c3Qgb25jZS4KIAkgKi8KIAlpZiAoIXNsYXZlKSB7Ci0JCXNsYXZlID0gc3BpX3NldHVwX3NsYXZlKDAsIENGR19TUElfUlRDX0RFVklELCA2MDAwMDAsCisJCXNsYXZlID0gc3BpX3NldHVwX3NsYXZlKDAsIENPTkZJR19TWVNfU1BJX1JUQ19ERVZJRCwgNjAwMDAwLAogCQkJCVNQSV9NT0RFXzMgfCBTUElfQ1NfSElHSCk7CiAJCWlmICghc2xhdmUpCiAJCQlyZXR1cm47CkBAIC0zNzcsNyArMzc3LDcgQEAKIHsKIAkvKiBBc3N1bWluZyBWY2MgPSAyLjBWIChsb3dlc3Qgc3BlZWQpICovCiAJaWYgKCFzbGF2ZSkgewotCQlzbGF2ZSA9IHNwaV9zZXR1cF9zbGF2ZSgwLCBDRkdfU1BJX1JUQ19ERVZJRCwgNjAwMDAwLAorCQlzbGF2ZSA9IHNwaV9zZXR1cF9zbGF2ZSgwLCBDT05GSUdfU1lTX1NQSV9SVENfREVWSUQsIDYwMDAwMCwKIAkJCQlTUElfTU9ERV8zIHwgU1BJX0NTX0hJR0gpOwogCQlpZiAoIXNsYXZlKQogCQkJcmV0dXJuOwpAQCAtNDA4LDcgKzQwOCw3IEBACiB7CiAJLyogQXNzdW1pbmcgVmNjID0gMi4wViAobG93ZXN0IHNwZWVkKSAqLwogCWlmICghc2xhdmUpIHsKLQkJc2xhdmUgPSBzcGlfc2V0dXBfc2xhdmUoMCwgQ0ZHX1NQSV9SVENfREVWSUQsIDYwMDAwMCwKKwkJc2xhdmUgPSBzcGlfc2V0dXBfc2xhdmUoMCwgQ09ORklHX1NZU19TUElfUlRDX0RFVklELCA2MDAwMDAsCiAJCQkJU1BJX01PREVfMyB8IFNQSV9DU19ISUdIKTsKIAkJaWYgKCFzbGF2ZSkKIAkJCXJldHVybjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL2RzMTMwNy5jIGIvZHJpdmVycy9ydGMvZHMxMzA3LmMKaW5kZXggYWZjNGI3OC4uMDY1MGQ5MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvZHMxMzA3LmMKKysrIGIvZHJpdmVycy9ydGMvZHMxMzA3LmMKQEAgLTQ3LDExICs0NywxMSBAQAogI2VuZGlmCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZm5kZWYgQ0ZHX0kyQ19SVENfQUREUgotIyBkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4CisjaWZuZGVmIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ09ORklHX1JUQ19EUzEzMDcpICYmIChDRkdfSTJDX1NQRUVEID4gMTAwMDAwKQorI2lmIGRlZmluZWQoQ09ORklHX1JUQ19EUzEzMDcpICYmIChDT05GSUdfU1lTX0kyQ19TUEVFRCA+IDEwMDAwMCkKICMgZXJyb3IgVGhlIERTMTMwNyBpcyBzcGVjaWZpZWQgb25seSB1cCB0byAxMDBrSHohCiAjZW5kaWYKIApAQCAtMTg3LDEzICsxODcsMTMgQEAKIHN0YXRpYwogdWNoYXIgcnRjX3JlYWQgKHVjaGFyIHJlZykKIHsKLQlyZXR1cm4gKGkyY19yZWdfcmVhZCAoQ0ZHX0kyQ19SVENfQUREUiwgcmVnKSk7CisJcmV0dXJuIChpMmNfcmVnX3JlYWQgKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCByZWcpKTsKIH0KIAogCiBzdGF0aWMgdm9pZCBydGNfd3JpdGUgKHVjaGFyIHJlZywgdWNoYXIgdmFsKQogewotCWkyY19yZWdfd3JpdGUgKENGR19JMkNfUlRDX0FERFIsIHJlZywgdmFsKTsKKwlpMmNfcmVnX3dyaXRlIChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgcmVnLCB2YWwpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgYmNkMmJpbiAodWNoYXIgbikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL2RzMTMzNy5jIGIvZHJpdmVycy9ydGMvZHMxMzM3LmMKaW5kZXggNTA5ZjgxZi4uNThlMzk2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvZHMxMzM3LmMKKysrIGIvZHJpdmVycy9ydGMvZHMxMzM3LmMKQEAgLTE2MCwxMCArMTYwLDEwIEBACiAgKiBTUVcvSU5UQiogcGluIGFuZCBwcm9ncmFtIGl0IGZvciAzMiw3NjggSHogb3V0cHV0LiBOb3RlIHRoYXQKICAqIGFjY29yZGluZyB0byB0aGUgZGF0YXNoZWV0LCB0dXJuaW5nIG9uIHRoZSBzcXVhcmUgd2F2ZSBvdXRwdXQKICAqIGluY3JlYXNlcyB0aGUgY3VycmVudCBkcmFpbiBvbiB0aGUgYmFja3VwIGJhdHRlcnkgZnJvbSBhYm91dAotICogNjAwIG5BIHRvIDJ1QS4gRGVmaW5lIENGR19SVENfRFMxMzM3X05PT1NDIGlmIHlvdSB3aXNoIHRvIHR1cm4KKyAqIDYwMCBuQSB0byAydUEuIERlZmluZSBDT05GSUdfU1lTX1JUQ19EUzEzMzdfTk9PU0MgaWYgeW91IHdpc2ggdG8gdHVybgogICogb2ZmIHRoZSBPU0Mgb3V0cHV0LgogICovCi0jaWZkZWYgQ0ZHX1JUQ19EUzEzMzdfTk9PU0MKKyNpZmRlZiBDT05GSUdfU1lTX1JUQ19EUzEzMzdfTk9PU0MKICAjZGVmaW5lIFJUQ19EUzEzMzdfUkVTRVRfVkFMIFwKIAkoUlRDX0NUTF9CSVRfSU5UQ04gfCBSVENfQ1RMX0JJVF9SUzEgfCBSVENfQ1RMX0JJVF9SUzIpCiAjZWxzZQpAQCAtMTgyLDEzICsxODIsMTMgQEAKIHN0YXRpYwogdWNoYXIgcnRjX3JlYWQgKHVjaGFyIHJlZykKIHsKLQlyZXR1cm4gKGkyY19yZWdfcmVhZCAoQ0ZHX0kyQ19SVENfQUREUiwgcmVnKSk7CisJcmV0dXJuIChpMmNfcmVnX3JlYWQgKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCByZWcpKTsKIH0KIAogCiBzdGF0aWMgdm9pZCBydGNfd3JpdGUgKHVjaGFyIHJlZywgdWNoYXIgdmFsKQogewotCWkyY19yZWdfd3JpdGUgKENGR19JMkNfUlRDX0FERFIsIHJlZywgdmFsKTsKKwlpMmNfcmVnX3dyaXRlIChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgcmVnLCB2YWwpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgYmNkMmJpbiAodWNoYXIgbikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL2RzMTM3NC5jIGIvZHJpdmVycy9ydGMvZHMxMzc0LmMKaW5kZXggNzlhM2Q3My4uZDYxYTIyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvZHMxMzc0LmMKKysrIGIvZHJpdmVycy9ydGMvZHMxMzc0LmMKQEAgLTQ4LDExICs0OCwxMSBAQAogI2VuZGlmCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZm5kZWYgQ0ZHX0kyQ19SVENfQUREUgotIyBkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4CisjaWZuZGVmIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ09ORklHX1JUQ19EUzEzNzQpICYmIChDRkdfSTJDX1NQRUVEID4gNDAwMDAwKQorI2lmIGRlZmluZWQoQ09ORklHX1JUQ19EUzEzNzQpICYmIChDT05GSUdfU1lTX0kyQ19TUEVFRCA+IDQwMDAwMCkKICMgZXJyb3IgVGhlIERTMTM3NCBpcyBzcGVjaWZpZWQgdXAgdG8gNDAwa0h6IGluIGZhc3QgbW9kZSEKICNlbmRpZgogCkBAIC0yMzksMjIgKzIzOSwyMiBAQAogICovCiBzdGF0aWMgdWNoYXIgcnRjX3JlYWQgKHVjaGFyIHJlZykKIHsKLQlyZXR1cm4gKGkyY19yZWdfcmVhZCAoQ0ZHX0kyQ19SVENfQUREUiwgcmVnKSk7CisJcmV0dXJuIChpMmNfcmVnX3JlYWQgKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCByZWcpKTsKIH0KIAogc3RhdGljIHZvaWQgcnRjX3dyaXRlICh1Y2hhciByZWcsIHVjaGFyIHZhbCwgYm9vbGVhbl90IHNldCkKIHsKIAlpZiAoc2V0ID09IFRSVUUpIHsKLQkJdmFsIHw9IGkyY19yZWdfcmVhZCAoQ0ZHX0kyQ19SVENfQUREUiwgcmVnKTsKLQkJaTJjX3JlZ193cml0ZSAoQ0ZHX0kyQ19SVENfQUREUiwgcmVnLCB2YWwpOworCQl2YWwgfD0gaTJjX3JlZ19yZWFkIChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgcmVnKTsKKwkJaTJjX3JlZ193cml0ZSAoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIHJlZywgdmFsKTsKIAl9IGVsc2UgewotCQl2YWwgPSBpMmNfcmVnX3JlYWQgKENGR19JMkNfUlRDX0FERFIsIHJlZykgJiB+dmFsOwotCQlpMmNfcmVnX3dyaXRlIChDRkdfSTJDX1JUQ19BRERSLCByZWcsIHZhbCk7CisJCXZhbCA9IGkyY19yZWdfcmVhZCAoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIHJlZykgJiB+dmFsOworCQlpMmNfcmVnX3dyaXRlIChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgcmVnLCB2YWwpOwogCX0KIH0KIAogc3RhdGljIHZvaWQgcnRjX3dyaXRlX3JhdyAodWNoYXIgcmVnLCB1Y2hhciB2YWwpCiB7Ci0JCWkyY19yZWdfd3JpdGUgKENGR19JMkNfUlRDX0FERFIsIHJlZywgdmFsKTsKKwkJaTJjX3JlZ193cml0ZSAoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIHJlZywgdmFsKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvZHMxNTU2LmMgYi9kcml2ZXJzL3J0Yy9kczE1NTYuYwppbmRleCA3NTc0NjI2Li43NjNkMjJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9kczE1NTYuYworKysgYi9kcml2ZXJzL3J0Yy9kczE1NTYuYwpAQCAtNDMsNyArNDMsNyBAQAogc3RhdGljIHVjaGFyIGJpbjJiY2QgICAodW5zaWduZWQgaW50IG4pOwogc3RhdGljIHVuc2lnbmVkIGJjZDJiaW4odWNoYXIgYyk7CiAKLSNkZWZpbmUgUlRDX0JBU0UJCSggQ0ZHX05WUkFNX1NJWkUgKyBDRkdfTlZSQU1fQkFTRV9BRERSICkKKyNkZWZpbmUgUlRDX0JBU0UJCSggQ09ORklHX1NZU19OVlJBTV9TSVpFICsgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgKQogCiAjZGVmaW5lIFJUQ19ZRUFSCQkoIFJUQ19CQVNFICsgMHhmICkKICNkZWZpbmUgUlRDX01PTlRICQkoIFJUQ19CQVNFICsgMHhlICkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL2RzMTY0eC5jIGIvZHJpdmVycy9ydGMvZHMxNjR4LmMKaW5kZXggMDA0OTRiMy4uMWU5NjY3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvZHMxNjR4LmMKKysrIGIvZHJpdmVycy9ydGMvZHMxNjR4LmMKQEAgLTQ5LDcgKzQ5LDcgQEAKIC8qCiAgKiBEUzE2NHggcmVnaXN0ZXJzIGxheW91dAogICovCi0jZGVmaW5lIFJUQ19CQVNFCQkoIENGR19OVlJBTV9CQVNFX0FERFIgKyBDRkdfTlZSQU1fU0laRSApCisjZGVmaW5lIFJUQ19CQVNFCQkoIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSICsgQ09ORklHX1NZU19OVlJBTV9TSVpFICkKIAogI2RlZmluZSBSVENfWUVBUgkJKCBSVENfQkFTRSArIDB4MDcgKQogI2RlZmluZSBSVENfTU9OVEgJCSggUlRDX0JBU0UgKyAweDA2ICkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL2RzMTc0eC5jIGIvZHJpdmVycy9ydGMvZHMxNzR4LmMKaW5kZXggNDNlNmFiNy4uNzM4ZDExOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvZHMxNzR4LmMKKysrIGIvZHJpdmVycy9ydGMvZHMxNzR4LmMKQEAgLTQwLDcgKzQwLDcgQEAKIHN0YXRpYyB1Y2hhciBiaW4yYmNkICAgKHVuc2lnbmVkIGludCBuKTsKIHN0YXRpYyB1bnNpZ25lZCBiY2QyYmluKHVjaGFyIGMpOwogCi0jZGVmaW5lIFJUQ19CQVNFCQkoIENGR19OVlJBTV9TSVpFICsgQ0ZHX05WUkFNX0JBU0VfQUREUiApCisjZGVmaW5lIFJUQ19CQVNFCQkoIENPTkZJR19TWVNfTlZSQU1fU0laRSArIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSICkKIAogI2RlZmluZSBSVENfWUVBUgkJKCBSVENfQkFTRSArIDcgKQogI2RlZmluZSBSVENfTU9OVEgJCSggUlRDX0JBU0UgKyA2ICkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL2RzMzIzMS5jIGIvZHJpdmVycy9ydGMvZHMzMjMxLmMKaW5kZXggZGE4YTNlNi4uZWYwMzM1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvZHMzMjMxLmMKKysrIGIvZHJpdmVycy9ydGMvZHMzMjMxLmMKQEAgLTE3NywxMyArMTc3LDEzIEBACiBzdGF0aWMKIHVjaGFyIHJ0Y19yZWFkICh1Y2hhciByZWcpCiB7Ci0JcmV0dXJuIChpMmNfcmVnX3JlYWQgKENGR19JMkNfUlRDX0FERFIsIHJlZykpOworCXJldHVybiAoaTJjX3JlZ19yZWFkIChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgcmVnKSk7CiB9CiAKIAogc3RhdGljIHZvaWQgcnRjX3dyaXRlICh1Y2hhciByZWcsIHVjaGFyIHZhbCkKIHsKLQlpMmNfcmVnX3dyaXRlIChDRkdfSTJDX1JUQ19BRERSLCByZWcsIHZhbCk7CisJaTJjX3JlZ193cml0ZSAoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIHJlZywgdmFsKTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGJjZDJiaW4gKHVjaGFyIG4pCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9pc2wxMjA4LmMgYi9kcml2ZXJzL3J0Yy9pc2wxMjA4LmMKaW5kZXggODdmMDZjYy4uNzFmNjNkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvaXNsMTIwOC5jCisrKyBiL2RyaXZlcnMvcnRjL2lzbDEyMDguYwpAQCAtMTUzLDEyICsxNTMsMTIgQEAKIAogc3RhdGljIHVjaGFyIHJ0Y19yZWFkICh1Y2hhciByZWcpCiB7Ci0JcmV0dXJuIChpMmNfcmVnX3JlYWQgKENGR19JMkNfUlRDX0FERFIsIHJlZykpOworCXJldHVybiAoaTJjX3JlZ19yZWFkIChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgcmVnKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0Y193cml0ZSAodWNoYXIgcmVnLCB1Y2hhciB2YWwpCiB7Ci0JaTJjX3JlZ193cml0ZSAoQ0ZHX0kyQ19SVENfQUREUiwgcmVnLCB2YWwpOworCWkyY19yZWdfd3JpdGUgKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCByZWcsIHZhbCk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBiY2QyYmluICh1Y2hhciBuKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvbTQxdDExLmMgYi9kcml2ZXJzL3J0Yy9tNDF0MTEuYwppbmRleCAwYTliMTJlLi4zYTc3YzFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9tNDF0MTEuYworKysgYi9kcml2ZXJzL3J0Yy9tNDF0MTEuYwpAQCAtMzUsMTUgKzM1LDE1IEBACiAJaXMgd2hhdCBzaG91bGQgYmUgZG9uZS4KIAogI2RlZmluZSBDT05GSUdfUlRDX000MVQxMSAxCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIgMHg2OAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUiAweDY4CiAjaWYgMAotI2RlZmluZSBDRkdfTTQxVDExX0VYVF9DRU5UVVJZX0RBVEEKKyNkZWZpbmUgQ09ORklHX1NZU19NNDFUMTFfRVhUX0NFTlRVUllfREFUQQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX000MVQxMV9CQVNFX1lFQVIgMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX000MVQxMV9CQVNFX1lFQVIgMjAwMAogI2VuZGlmCiAqLwogCi0jaWYgZGVmaW5lZChDRkdfSTJDX1JUQ19BRERSKSAmJiBkZWZpbmVkKENPTkZJR19DTURfREFURSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX1JUQ19BRERSKSAmJiBkZWZpbmVkKENPTkZJR19DTURfREFURSkKIAogc3RhdGljIHVuc2lnbmVkIGJjZDJiaW4gKHVjaGFyIG4pCiB7CkBAIC03NSw3ICs3NSw3IEBACiAjZGVmaW5lIFJUQ19DT05UUk9MX0FERFIgICAweDcKIAogCi0jaWZuZGVmIENGR19NNDFUMTFfRVhUX0NFTlRVUllfREFUQQorI2lmbmRlZiBDT05GSUdfU1lTX000MVQxMV9FWFRfQ0VOVFVSWV9EQVRBCiAKICNkZWZpbmUgUkVHX0NOVCAgICAgICAgICAgIChSVENfUkVHX0NOVCsxKQogCkBAIC04Myw4ICs4Myw4IEBACiAgIHlvdSBvbmx5IGdldCAwMC05OSBmb3IgdGhlIHllYXIgd2Ugd2lsbCBhc3VtZSB5b3UKICAgd2FudCBmcm9tIHRoZSB5ZWFyIDIwMDAgaWYgeW91IGRvbid0IHNldCB0aGUgY29uZmlnCiAqLwotI2lmbmRlZiBDRkdfTTQxVDExX0JBU0VfWUVBUgotI2RlZmluZSBDRkdfTTQxVDExX0JBU0VfWUVBUiAyMDAwCisjaWZuZGVmIENPTkZJR19TWVNfTTQxVDExX0JBU0VfWUVBUgorI2RlZmluZSBDT05GSUdfU1lTX000MVQxMV9CQVNFX1lFQVIgMjAwMAogI2VuZGlmCiAKICNlbHNlCkBAIC0xMDEsNyArMTAxLDcgQEAKIAlpbnQgcmVsID0gMDsKIAl1Y2hhciBkYXRhW1JUQ19SRUdfQ05UXTsKIAotCWkyY19yZWFkKENGR19JMkNfUlRDX0FERFIsIFJUQ19TRUNfQUREUiwgMSwgZGF0YSwgUlRDX1JFR19DTlQpOworCWkyY19yZWFkKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCBSVENfU0VDX0FERFIsIDEsIGRhdGEsIFJUQ19SRUdfQ05UKTsKIAogCWlmKCBkYXRhW1JUQ19TRUNfQUREUl0gJiAweDgwICl7CiAJCXByaW50ZiggIm00MXQxMSBSVEMgQ2xvY2sgc3RvcHBlZCEhIVxuIiApOwpAQCAtMTEyLDE0ICsxMTIsMTQgQEAKIAl0bXAtPnRtX2hvdXIgPSBiY2QyYmluIChkYXRhW1JUQ19IT1VSX0FERFJdICYgMHgzRik7CiAJdG1wLT50bV9tZGF5ID0gYmNkMmJpbiAoZGF0YVtSVENfREFURV9BRERSXSAmIDB4M0YpOwogCXRtcC0+dG1fbW9uICA9IGJjZDJiaW4gKGRhdGFbUlRDX01PTlRIX0FERFJdJiAweDFGKTsKLSNpZm5kZWYgQ0ZHX000MVQxMV9FWFRfQ0VOVFVSWV9EQVRBCi0JdG1wLT50bV95ZWFyID0gQ0ZHX000MVQxMV9CQVNFX1lFQVIKKyNpZm5kZWYgQ09ORklHX1NZU19NNDFUMTFfRVhUX0NFTlRVUllfREFUQQorCXRtcC0+dG1feWVhciA9IENPTkZJR19TWVNfTTQxVDExX0JBU0VfWUVBUgogCQkrIGJjZDJiaW4oZGF0YVtSVENfWUVBUlNfQUREUl0pCiAJCSsgKChkYXRhW1JUQ19IT1VSX0FERFJdJjB4NDApID8gMTAwIDogMCk7CiAjZWxzZQogCXsKIAkJdW5zaWduZWQgY2hhciBjZW50OwotCQlpMmNfcmVhZChDRkdfSTJDX1JUQ19BRERSLCBNNDFUMTFfWUVBUl9EQVRBLCAxLCAmY2VudCwgTTQxVDExX1lFQVJfU0laRSk7CisJCWkyY19yZWFkKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCBNNDFUMTFfWUVBUl9EQVRBLCAxLCAmY2VudCwgTTQxVDExX1lFQVJfU0laRSk7CiAJCWlmKCAhKGRhdGFbUlRDX0hPVVJfQUREUl0gJiAweDgwKSApewogCQkJcHJpbnRmKCAibTQxdDExIFJUQzogY2Fubid0IGtlZXAgdHJhY2sgb2YgeWVhcnMgd2l0aG91dCBDRUIgc2V0XG4iICk7CiAJCQlyZWwgPSAtMTsKQEAgLTEyNyw3ICsxMjcsNyBAQAogCQlpZiggKGNlbnQgJiAweDEpICE9ICgoZGF0YVtSVENfSE9VUl9BRERSXSYweDQwKT4+NykgKXsKIAkJCS8qY2VudHVyeSBmbGlwIHN0b3JlIG9mZiBuZXcgeWVhciovCiAJCQljZW50ICs9IDE7Ci0JCQlpMmNfd3JpdGUoQ0ZHX0kyQ19SVENfQUREUiwgTTQxVDExX1lFQVJfREFUQSwgMSwgJmNlbnQsIE00MVQxMV9ZRUFSX1NJWkUpOworCQkJaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCBNNDFUMTFfWUVBUl9EQVRBLCAxLCAmY2VudCwgTTQxVDExX1lFQVJfU0laRSk7CiAJCX0KIAkJdG1wLT50bV95ZWFyID0oKGludCljZW50KjEwMCkrYmNkMmJpbihkYXRhW1JUQ19ZRUFSU19BRERSXSk7CiAJfQpAQCAtMTYxLDIxICsxNjEsMjEgQEAKIAlkYXRhW1JUQ19IT1VSX0FERFJdICAgfD0gMHg4MDsvKndlIHdpbGwgYWx3YXlzIHVzZSBDRUIqLwogCiAJZGF0YVtSVENfWUVBUlNfQUREUl0gID0gYmluMmJjZCh0bXAtPnRtX3llYXIlMTAwKTsvKnNhbWUgdGhpbmcgZWl0aGVyIHdheSovCi0jaWZuZGVmIENGR19NNDFUMTFfRVhUX0NFTlRVUllfREFUQQotCWlmKCAoKHRtcC0+dG1feWVhciAtIENGR19NNDFUMTFfQkFTRV9ZRUFSKSA+IDIwMCkgfHwKLQkgICAgKHRtcC0+dG1feWVhciA8IENGR19NNDFUMTFfQkFTRV9ZRUFSKSApeworI2lmbmRlZiBDT05GSUdfU1lTX000MVQxMV9FWFRfQ0VOVFVSWV9EQVRBCisJaWYoICgodG1wLT50bV95ZWFyIC0gQ09ORklHX1NZU19NNDFUMTFfQkFTRV9ZRUFSKSA+IDIwMCkgfHwKKwkgICAgKHRtcC0+dG1feWVhciA8IENPTkZJR19TWVNfTTQxVDExX0JBU0VfWUVBUikgKXsKIAkJcHJpbnRmKCAibTQxdDExIFJUQyBzZXR0aW5nIHllYXIgb3V0IG9mIHJhbmdlISFuZWVkIHJlY29tcGlsZVxuIiApOwogCX0KLQlkYXRhW1JUQ19IT1VSX0FERFJdIHw9ICh0bXAtPnRtX3llYXIgLSBDRkdfTTQxVDExX0JBU0VfWUVBUikgPiAxMDAgPyAweDQwIDogMDsKKwlkYXRhW1JUQ19IT1VSX0FERFJdIHw9ICh0bXAtPnRtX3llYXIgLSBDT05GSUdfU1lTX000MVQxMV9CQVNFX1lFQVIpID4gMTAwID8gMHg0MCA6IDA7CiAjZWxzZQogCXsKIAkJdW5zaWduZWQgY2hhciBjZW50OwogCQljZW50ID0gdG1wLT50bV95ZWFyID8gdG1wLT50bV95ZWFyIC8gMTAwIDogMDsKIAkJZGF0YVtSVENfSE9VUl9BRERSXSB8PSAoY2VudCAmIDB4MSkgPyAweDQwIDogMDsKLQkJaTJjX3dyaXRlKENGR19JMkNfUlRDX0FERFIsIE00MVQxMV9ZRUFSX0RBVEEsIDEsICZjZW50LCBNNDFUMTFfWUVBUl9TSVpFKTsKKwkJaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCBNNDFUMTFfWUVBUl9EQVRBLCAxLCAmY2VudCwgTTQxVDExX1lFQVJfU0laRSk7CiAJfQogI2VuZGlmCi0JaTJjX3dyaXRlKENGR19JMkNfUlRDX0FERFIsIFJUQ19TRUNfQUREUiwgMSwgZGF0YSwgUlRDX1JFR19DTlQpOworCWkyY193cml0ZShDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgUlRDX1NFQ19BRERSLCAxLCBkYXRhLCBSVENfUkVHX0NOVCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE4NCwxMyArMTg0LDEzIEBACiB7CiAJdW5zaWduZWQgY2hhciB2YWw7CiAJLyogY2xlYXIgYWxsIGNvbnRyb2wgJiBzdGF0dXMgcmVnaXN0ZXJzICovCi0JaTJjX3JlYWQoQ0ZHX0kyQ19SVENfQUREUiwgUlRDX1NFQ19BRERSLCAxLCAmdmFsLCAxKTsKKwlpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgUlRDX1NFQ19BRERSLCAxLCAmdmFsLCAxKTsKIAl2YWwgPSB2YWwgJiAweDdGOy8qbWFrZSBzdXJlIHdlIGFyZSBydW5uaW5nKi8KLQlpMmNfd3JpdGUoQ0ZHX0kyQ19SVENfQUREUiwgUlRDX1NFQ19BRERSLCAxLCAmdmFsLCBSVENfUkVHX0NOVCk7CisJaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCBSVENfU0VDX0FERFIsIDEsICZ2YWwsIFJUQ19SRUdfQ05UKTsKIAotCWkyY19yZWFkKENGR19JMkNfUlRDX0FERFIsIFJUQ19DT05UUk9MX0FERFIsIDEsICZ2YWwsIDEpOworCWkyY19yZWFkKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCBSVENfQ09OVFJPTF9BRERSLCAxLCAmdmFsLCAxKTsKIAl2YWwgPSB2YWwgJiAweDNGOy8qdHVybiBvZmYgZnJlcSB0ZXN0IGtlZXAgY2FsaWJyYXRpb24qLwotCWkyY193cml0ZShDRkdfSTJDX1JUQ19BRERSLCBSVENfQ09OVFJPTF9BRERSLCAxLCAmdmFsLCAxKTsKKwlpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIFJUQ19DT05UUk9MX0FERFIsIDEsICZ2YWwsIDEpOwogfQogCiBpbnQgcnRjX3N0b3JlKGludCBhZGRyLCB1bnNpZ25lZCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKQEAgLTE5OCwxMiArMTk4LDEyIEBACiAJLypkb24ndCBsZXQgdGhpbmdzIHdyYXAgb250byB0aGUgdGltZSBvbiBhIHdyaXRlKi8KIAlpZiggKGFkZHIrc2l6ZSkgPj0gTTQxVDExX1NUT1JBR0VfU1ogKQogCQlyZXR1cm4gMTsKLQlyZXR1cm4gaTJjX3dyaXRlKCBDRkdfSTJDX1JUQ19BRERSLCBSRUdfQ05UK2FkZHIsIDEsIGRhdGEsIHNpemUgKTsKKwlyZXR1cm4gaTJjX3dyaXRlKCBDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgUkVHX0NOVCthZGRyLCAxLCBkYXRhLCBzaXplICk7CiB9CiAKIGludCBydGNfcmVjYWxsKGludCBhZGRyLCB1bnNpZ25lZCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKIHsKLQlyZXR1cm4gaTJjX3JlYWQoIENGR19JMkNfUlRDX0FERFIsIFJFR19DTlQrYWRkciwgMSwgZGF0YSwgc2l6ZSApOworCXJldHVybiBpMmNfcmVhZCggQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIFJFR19DTlQrYWRkciwgMSwgZGF0YSwgc2l6ZSApOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL200MXQ2MC5jIGIvZHJpdmVycy9ydGMvbTQxdDYwLmMKaW5kZXggNzFiZmMzMi4uZTM0YTVmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvbTQxdDYwLmMKKysrIGIvZHJpdmVycy9ydGMvbTQxdDYwLmMKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlIDxydGMuaD4KICNpbmNsdWRlIDxpMmMuaD4KIAotI2lmIGRlZmluZWQoQ0ZHX0kyQ19SVENfQUREUikgJiYgZGVmaW5lZChDT05GSUdfQ01EX0RBVEUpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0kyQ19SVENfQUREUikgJiYgZGVmaW5lZChDT05GSUdfQ01EX0RBVEUpCiAKIHN0YXRpYyB1bnNpZ25lZCBiY2QyYmluKHVjaGFyIG4pCiB7CkBAIC04NSw3ICs4NSw3IEBACiB7CiAJdWNoYXIgZGF0YVs4XTsKIAotCWlmIChpMmNfcmVhZChDRkdfSTJDX1JUQ19BRERSLCAwLCAxLCBkYXRhLCBzaXplb2YoZGF0YSkpKSB7CisJaWYgKGkyY19yZWFkKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCAwLCAxLCBkYXRhLCBzaXplb2YoZGF0YSkpKSB7CiAJCXByaW50ZigiSTJDIHJlYWQgZmFpbGVkIGluIHJ0Y19kdW1wKClcbiIpOwogCQlyZXR1cm47CiAJfQpAQCAtMTE0LDcgKzExNCw3IEBACiAJdWNoYXIgbWluLCBkYXRlLCBtb250aCwgeWVhcnM7CiAKIAlydGNfZHVtcCgiYmVnaW4gdmFsaWRhdGUiKTsKLQlpZiAoaTJjX3JlYWQoQ0ZHX0kyQ19SVENfQUREUiwgMCwgMSwgZGF0YSwgc2l6ZW9mKGRhdGEpKSkgeworCWlmIChpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgMCwgMSwgZGF0YSwgc2l6ZW9mKGRhdGEpKSkgewogCQlwcmludGYoIkkyQyByZWFkIGZhaWxlZCBpbiBydGNfdmFsaWRhdGUoKVxuIik7CiAJCXJldHVybiAwOwogCX0KQEAgLTEyNSw3ICsxMjUsNyBAQAogCWlmICgweDAwICE9IChkYXRhW1JUQ19DVFJMXSAmIDB4ODApKSB7CiAJCXByaW50ZigiTTQxVDYwIFJUQyBjbG9jayBsb3N0IHBvd2VyLlxuIik7CiAJCWRhdGFbUlRDX1NFQ10gPSAweDgwOwotCQlpZiAoaTJjX3dyaXRlKENGR19JMkNfUlRDX0FERFIsIFJUQ19TRUMsIDEsIGRhdGEsIDEpKSB7CisJCWlmIChpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIFJUQ19TRUMsIDEsIGRhdGEsIDEpKSB7CiAJCQlwcmludGYoIkkyQyB3cml0ZSBmYWlsZWQgaW4gcnRjX3ZhbGlkYXRlKClcbiIpOwogCQkJcmV0dXJuIDA7CiAJCX0KQEAgLTE2MSw3ICsxNjEsNyBAQAogCQlkYXRhW1JUQ19ZRUFSXSA9IDB4MDA7CiAJCWRhdGFbUlRDX0NUUkxdICY9IDB4N0Y7CS8qIHJlc2V0IE9VVCBiaXQgKi8KIAotCQlpZiAoaTJjX3dyaXRlKENGR19JMkNfUlRDX0FERFIsIDAsIDEsIGRhdGEsIHNpemVvZihkYXRhKSkpIHsKKwkJaWYgKGkyY193cml0ZShDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgMCwgMSwgZGF0YSwgc2l6ZW9mKGRhdGEpKSkgewogCQkJcHJpbnRmKCJJMkMgd3JpdGUgZmFpbGVkIGluIHJ0Y192YWxpZGF0ZSgpXG4iKTsKIAkJCXJldHVybiAwOwogCQl9CkBAIC0yMTIsNyArMjEyLDcgQEAKIAlkYXRhW1JUQ19ZRUFSXSA9IGJpbjJiY2QodG1wLT50bV95ZWFyICUgMTAwKTsKIAlkYXRhW1JUQ19NT05USF0gfD0geWVhcjJjYih0bXAtPnRtX3llYXIpIDw8IDY7CiAJZGF0YVtSVENfREFZXSA9IGJpbjJiY2QodG1wLT50bV93ZGF5ICsgMSkgJiAweDA3OwotCWlmIChpMmNfd3JpdGUoQ0ZHX0kyQ19SVENfQUREUiwgMCwgMSwgZGF0YSwgUlRDX1JFR19DTlQpKSB7CisJaWYgKGkyY193cml0ZShDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgMCwgMSwgZGF0YSwgUlRDX1JFR19DTlQpKSB7CiAJCXByaW50ZigiSTJDIHdyaXRlIGZhaWxlZCBpbiBydGNfc2V0KClcbiIpOwogCQlyZXR1cm4gLTE7CiAJfQpAQCAtMjU1LDEwICsyNTUsMTAgQEAKIAkgKiBUdXJuIG9mZiBmcmVxdWVuY3kgdGVzdC4KIAkgKi8KIAlkYXRhW1JUQ19DVFJMXSAmPSAweEJGOwotCWlmIChpMmNfd3JpdGUoQ0ZHX0kyQ19SVENfQUREUiwgUlRDX0NUUkwsIDEsIGRhdGEgKyBSVENfQ1RSTCwgMSkpIHsKKwlpZiAoaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCBSVENfQ1RSTCwgMSwgZGF0YSArIFJUQ19DVFJMLCAxKSkgewogCQlwcmludGYoIkkyQyB3cml0ZSBmYWlsZWQgaW4gcnRjX3Jlc2V0KClcbiIpOwogCQlyZXR1cm47CiAJfQogCXJ0Y19kdW1wKCJlbmQgcmVzZXQiKTsKIH0KLSNlbmRpZiAvKiBDT05GSUdfUlRDX000MVQ2MCAmJiBDRkdfSTJDX1JUQ19BRERSICYmIENPTkZJR19DTURfREFURSAqLworI2VuZGlmIC8qIENPTkZJR19SVENfTTQxVDYwICYmIENPTkZJR19TWVNfSTJDX1JUQ19BRERSICYmIENPTkZJR19DTURfREFURSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvbTQxdDYyLmMgYi9kcml2ZXJzL3J0Yy9tNDF0NjIuYwppbmRleCA5YjdjODRhLi5jZmU4NGY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9tNDF0NjIuYworKysgYi9kcml2ZXJzL3J0Yy9tNDF0NjIuYwpAQCAtNjgsNyArNjgsNyBAQAogewogCXU4IGJ1ZltNNDFUNjJfREFURVRJTUVfUkVHX1NJWkVdOwogCi0JaTJjX3JlYWQoQ0ZHX0kyQ19SVENfQUREUiwgMCwgMSwgYnVmLCBNNDFUNjJfREFURVRJTUVfUkVHX1NJWkUpOworCWkyY19yZWFkKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCAwLCAxLCBidWYsIE00MVQ2Ml9EQVRFVElNRV9SRUdfU0laRSk7CiAKIAlkZWJ1ZygiJXM6IHJhdyByZWFkIGRhdGEgLSBzZWM9JTAyeCwgbWluPSUwMngsIGhyPSUwMngsICIKIAkgICAgICAibWRheT0lMDJ4LCBtb249JTAyeCwgeWVhcj0lMDJ4LCB3ZGF5PSUwMngsIHkyaz0lMDJ4XG4iLApAQCAtMTA0LDcgKzEwNCw3IEBACiAJICAgICAgdG0tPnRtX3llYXIsIHRtLT50bV9tb24sIHRtLT50bV9tZGF5LCB0bS0+dG1fd2RheSwKIAkgICAgICB0bS0+dG1faG91ciwgdG0tPnRtX21pbiwgdG0tPnRtX3NlYyk7CiAKLQlpMmNfcmVhZChDRkdfSTJDX1JUQ19BRERSLCAwLCAxLCBidWYsIE00MVQ2Ml9EQVRFVElNRV9SRUdfU0laRSk7CisJaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDAsIDEsIGJ1ZiwgTTQxVDYyX0RBVEVUSU1FX1JFR19TSVpFKTsKIAogCS8qIE1lcmdlIHRpbWUtZGF0YSBhbmQgcmVnaXN0ZXIgZmxhZ3MgaW50byBidWZbMC4uN10gKi8KIAlidWZbTTQxVDYyX1JFR19TU0VDXSA9IDA7CkBAIC0xMjMsNyArMTIzLDcgQEAKIAkvKiBhc3N1bWUgMjBZWSBub3QgMTlZWSAqLwogCWJ1ZltNNDFUNjJfUkVHX1lFQVJdID0gQklOMkJDRCh0bS0+dG1feWVhciAlIDEwMCk7CiAKLQlpZiAoaTJjX3dyaXRlKENGR19JMkNfUlRDX0FERFIsIDAsIDEsIGJ1ZiwgTTQxVDYyX0RBVEVUSU1FX1JFR19TSVpFKSkgeworCWlmIChpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDAsIDEsIGJ1ZiwgTTQxVDYyX0RBVEVUSU1FX1JFR19TSVpFKSkgewogCQlwcmludGYoIkkyQyB3cml0ZSBmYWlsZWQgaW4gJXMoKVxuIiwgX19mdW5jX18pOwogCQlyZXR1cm4gLTE7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvbTQ4dDM1YXguYyBiL2RyaXZlcnMvcnRjL200OHQzNWF4LmMKaW5kZXggZTE5YjgxYi4uMTQ4MmVkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvbTQ4dDM1YXguYworKysgYi9kcml2ZXJzL3J0Yy9tNDh0MzVheC5jCkBAIC0xNDcsMTQgKzE0NywxNCBAQAogewogCXVjaGFyIHZhbDsKIAl2YWwgPSAqKHVuc2lnbmVkIGNoYXIgKikKLQkJKChDRkdfTlZSQU1fQkFTRV9BRERSICsgQ0ZHX05WUkFNX1NJWkUgLSA4KSArIHJlZyk7CisJCSgoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX05WUkFNX1NJWkUgLSA4KSArIHJlZyk7CiAJcmV0dXJuIHZhbDsKIH0KIAogc3RhdGljIHZvaWQgcnRjX3dyaXRlICh1Y2hhciByZWcsIHVjaGFyIHZhbCkKIHsKIAkqKHVuc2lnbmVkIGNoYXIgKikKLQkJKChDRkdfTlZSQU1fQkFTRV9BRERSICsgQ0ZHX05WUkFNX1NJWkUgLSA4KSArIHJlZykgPSB2YWw7CisJCSgoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX05WUkFNX1NJWkUgLSA4KSArIHJlZykgPSB2YWw7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBiY2QyYmluICh1Y2hhciBuKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvbWF4NjkwMC5jIGIvZHJpdmVycy9ydGMvbWF4NjkwMC5jCmluZGV4IDc1OGQ3YjcuLjdjOTljNWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL21heDY5MDAuYworKysgYi9kcml2ZXJzL3J0Yy9tYXg2OTAwLmMKQEAgLTM0LDIwICszNCwyMCBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0RBVEUpCiAKLSNpZm5kZWYJQ0ZHX0kyQ19SVENfQUREUgotI2RlZmluZQlDRkdfSTJDX1JUQ19BRERSCTB4NTAKKyNpZm5kZWYJQ09ORklHX1NZU19JMkNfUlRDX0FERFIKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg1MAogI2VuZGlmCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogc3RhdGljIHVjaGFyIHJ0Y19yZWFkICh1Y2hhciByZWcpCiB7Ci0JcmV0dXJuIChpMmNfcmVnX3JlYWQgKENGR19JMkNfUlRDX0FERFIsIHJlZykpOworCXJldHVybiAoaTJjX3JlZ19yZWFkIChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgcmVnKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0Y193cml0ZSAodWNoYXIgcmVnLCB1Y2hhciB2YWwpCiB7Ci0JaTJjX3JlZ193cml0ZSAoQ0ZHX0kyQ19SVENfQUREUiwgcmVnLCB2YWwpOworCWkyY19yZWdfd3JpdGUgKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCByZWcsIHZhbCk7CiAJdWRlbGF5KDI1MDApOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9tYzE0NjgxOC5jIGIvZHJpdmVycy9ydGMvbWMxNDY4MTguYwppbmRleCAxMjI1NDU0Li4zODQ4NGNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9tYzE0NjgxOC5jCisrKyBiL2RyaXZlcnMvcnRjL21jMTQ2ODE4LmMKQEAgLTM4LDcgKzM4LDcgQEAKIHN0YXRpYyB1Y2hhciBiaW4yYmNkICAgKHVuc2lnbmVkIGludCBuKTsKIHN0YXRpYyB1bnNpZ25lZCBiY2QyYmluKHVjaGFyIGMpOwogCi0jZGVmaW5lIFJUQ19QT1JUX01DMTQ2ODE4CUNGR19JU0FfSU9fQkFTRV9BRERSRVNTICsgIDB4NzAKKyNkZWZpbmUgUlRDX1BPUlRfTUMxNDY4MTgJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgIDB4NzAKICNkZWZpbmUgUlRDX1NFQ09ORFMJCTB4MDAKICNkZWZpbmUgUlRDX1NFQ09ORFNfQUxBUk0JMHgwMQogI2RlZmluZSBSVENfTUlOVVRFUwkJMHgwMgpAQCAtMTQxLDE4ICsxNDEsMTggQEAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCi0jaWZkZWYgQ0ZHX1JUQ19SRUdfQkFTRV9BRERSCisjaWZkZWYgQ09ORklHX1NZU19SVENfUkVHX0JBU0VfQUREUgogLyoKICAqIHVzZSBkaXJlY3QgbWVtb3J5IGFjY2VzcwogICovCiBzdGF0aWMgdWNoYXIgcnRjX3JlYWQgKHVjaGFyIHJlZykKIHsKLQlyZXR1cm4oaW44KENGR19SVENfUkVHX0JBU0VfQUREUityZWcpKTsKKwlyZXR1cm4oaW44KENPTkZJR19TWVNfUlRDX1JFR19CQVNFX0FERFIrcmVnKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0Y193cml0ZSAodWNoYXIgcmVnLCB1Y2hhciB2YWwpCiB7Ci0Jb3V0OChDRkdfUlRDX1JFR19CQVNFX0FERFIrcmVnLCB2YWwpOworCW91dDgoQ09ORklHX1NZU19SVENfUkVHX0JBU0VfQUREUityZWcsIHZhbCk7CiB9CiAjZWxzZQogc3RhdGljIHVjaGFyIHJ0Y19yZWFkICh1Y2hhciByZWcpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9tY2ZydGMuYyBiL2RyaXZlcnMvcnRjL21jZnJ0Yy5jCmluZGV4IGMyYWYxOTcuLjk3OWM0NjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL21jZnJ0Yy5jCisrKyBiL2RyaXZlcnMvcnRjL21jZnJ0Yy5jCkBAIC0zMiw3ICszMiw3IEBACiAKICN1bmRlZiBSVENfREVCVUcKIAotI2lmbmRlZiBDRkdfTUNGUlRDX0JBU0UKKyNpZm5kZWYgQ09ORklHX1NZU19NQ0ZSVENfQkFTRQogI2Vycm9yIFJUQ19CQVNFIGlzIG5vdCBkZWZpbmVkIQogI2VuZGlmCiAKQEAgLTQxLDcgKzQxLDcgQEAKIAogaW50IHJ0Y19nZXQoc3RydWN0IHJ0Y190aW1lICp0bXApCiB7Ci0Jdm9sYXRpbGUgcnRjX3QgKnJ0YyA9IChydGNfdCAqKSAoQ0ZHX01DRlJUQ19CQVNFKTsKKwl2b2xhdGlsZSBydGNfdCAqcnRjID0gKHJ0Y190ICopIChDT05GSUdfU1lTX01DRlJUQ19CQVNFKTsKIAogCWludCBydGNfZGF5cywgcnRjX2hycywgcnRjX21pbnM7CiAJaW50IHRpbTsKQEAgLTcwLDcgKzcwLDcgQEAKIAogaW50IHJ0Y19zZXQoc3RydWN0IHJ0Y190aW1lICp0bXApCiB7Ci0Jdm9sYXRpbGUgcnRjX3QgKnJ0YyA9IChydGNfdCAqKSAoQ0ZHX01DRlJUQ19CQVNFKTsKKwl2b2xhdGlsZSBydGNfdCAqcnRjID0gKHJ0Y190ICopIChDT05GSUdfU1lTX01DRlJUQ19CQVNFKTsKIAogCXN0YXRpYyBpbnQgbW9udGhfZGF5c1sxMl0gPSB7CiAJCTMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzEKQEAgLTExMiw3ICsxMTIsNyBAQAogCiB2b2lkIHJ0Y19yZXNldCh2b2lkKQogewotCXZvbGF0aWxlIHJ0Y190ICpydGMgPSAocnRjX3QgKikgKENGR19NQ0ZSVENfQkFTRSk7CisJdm9sYXRpbGUgcnRjX3QgKnJ0YyA9IChydGNfdCAqKSAoQ09ORklHX1NZU19NQ0ZSVENfQkFTRSk7CiAKIAlpZiAoKHJ0Yy0+Y3IgJiBSVENfQ1JfRU4pID09IDApIHsKIAkJcHJpbnRmKCJyZWFsLXRpbWUtY2xvY2sgd2FzIHN0b3BwZWQuIE5vdyBzdGFydGluZy4uLlxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9tcGM1eHh4LmMgYi9kcml2ZXJzL3J0Yy9tcGM1eHh4LmMKaW5kZXggNjIzMWI5Yi4uZWMwYjBlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvbXBjNXh4eC5jCisrKyBiL2RyaXZlcnMvcnRjL21wYzV4eHguYwpAQCAtNTcsNyArNTcsNyBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IHJ0Y19nZXQgKHN0cnVjdCBydGNfdGltZSAqdG1wKQogewotCVJUQzUyMDAJKnJ0YyA9IChSVEM1MjAwICopIChDRkdfTUJBUisweDgwMCk7CisJUlRDNTIwMAkqcnRjID0gKFJUQzUyMDAgKikgKENPTkZJR19TWVNfTUJBUisweDgwMCk7CiAJdWxvbmcgdGltZSwgZGF0ZSwgdGltZTI7CiAKIAkvKiByZWFkIHR3aWNlIHRvIGF2b2lkIGdldHRpbmcgYSBmdW5ueSB0aW1lIHdoZW4gdGhlIHNlY29uZCBpcyBqdXN0IGNoYW5naW5nICovCkBAIC05MCw3ICs5MCw3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBpbnQgcnRjX3NldCAoc3RydWN0IHJ0Y190aW1lICp0bXApCiB7Ci0JUlRDNTIwMAkqcnRjID0gKFJUQzUyMDAgKikgKENGR19NQkFSKzB4ODAwKTsKKwlSVEM1MjAwCSpydGMgPSAoUlRDNTIwMCAqKSAoQ09ORklHX1NZU19NQkFSKzB4ODAwKTsKIAl1bG9uZyB0aW1lLCBkYXRlLCB5ZWFyOwogCiAJZGVidWcgKCAiU2V0IERBVEU6ICU0ZC0lMDJkLSUwMmQgKHdkYXk9JWQpICBUSU1FOiAlMmQ6JTAyZDolMDJkXG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvbXBjOHh4LmMgYi9kcml2ZXJzL3J0Yy9tcGM4eHguYwppbmRleCAyYmJjNWQzLi4xYzI0ZTU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9tcGM4eHguYworKysgYi9kcml2ZXJzL3J0Yy9tcGM4eHguYwpAQCAtMzcsNyArMzcsNyBAQAogCiBpbnQgcnRjX2dldCAoc3RydWN0IHJ0Y190aW1lICp0bXApCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXVsb25nIHRpbTsKIAogCXRpbSA9IGltbXItPmltX3NpdC5zaXRfcnRjOwpAQCAtNTMsNyArNTMsNyBAQAogCiBpbnQgcnRjX3NldCAoc3RydWN0IHJ0Y190aW1lICp0bXApCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXVsb25nIHRpbTsKIAogCWRlYnVnICggIlNldCBEQVRFOiAlNGQtJTAyZC0lMDJkICh3ZGF5PSVkKSAgVElNRTogJTJkOiUwMmQ6JTAyZFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3BjZjg1NjMuYyBiL2RyaXZlcnMvcnRjL3BjZjg1NjMuYwppbmRleCAyZmUxZTM3Li5jZDlmYjY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9wY2Y4NTYzLmMKKysrIGIvZHJpdmVycy9ydGMvcGNmODU2My5jCkBAIC0xMjksMTIgKzEyOSwxMiBAQAogCiBzdGF0aWMgdWNoYXIgcnRjX3JlYWQgKHVjaGFyIHJlZykKIHsKLQlyZXR1cm4gKGkyY19yZWdfcmVhZCAoQ0ZHX0kyQ19SVENfQUREUiwgcmVnKSk7CisJcmV0dXJuIChpMmNfcmVnX3JlYWQgKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCByZWcpKTsKIH0KIAogc3RhdGljIHZvaWQgcnRjX3dyaXRlICh1Y2hhciByZWcsIHVjaGFyIHZhbCkKIHsKLQlpMmNfcmVnX3dyaXRlIChDRkdfSTJDX1JUQ19BRERSLCByZWcsIHZhbCk7CisJaTJjX3JlZ193cml0ZSAoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIHJlZywgdmFsKTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGJjZDJiaW4gKHVjaGFyIG4pCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9wbDAzMS5jIGIvZHJpdmVycy9ydGMvcGwwMzEuYwppbmRleCA2YzFlOWJkLi44YjJiMTc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9wbDAzMS5jCisrKyBiL2RyaXZlcnMvcnRjL3BsMDMxLmMKQEAgLTI5LDggKzI5LDggQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9EQVRFKQogCi0jaWZuZGVmIENGR19SVENfUEwwMzFfQkFTRQotI2Vycm9yIENGR19SVENfUEwwMzFfQkFTRSBpcyBub3QgZGVmaW5lZCEKKyNpZm5kZWYgQ09ORklHX1NZU19SVENfUEwwMzFfQkFTRQorI2Vycm9yIENPTkZJR19TWVNfUlRDX1BMMDMxX0JBU0UgaXMgbm90IGRlZmluZWQhCiAjZW5kaWYKIAogLyoKQEAgLTQ4LDkgKzQ4LDkgQEAKICNkZWZpbmUgUlRDX0NSX1NUQVJUCSgxIDw8IDApCiAKICNkZWZpbmUJUlRDX1dSSVRFX1JFRyhhZGRyLCB2YWwpIFwKLQkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqKShDRkdfUlRDX1BMMDMxX0JBU0UgKyAoYWRkcikpID0gKHZhbCkpCisJCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikoQ09ORklHX1NZU19SVENfUEwwMzFfQkFTRSArIChhZGRyKSkgPSAodmFsKSkKICNkZWZpbmUJUlRDX1JFQURfUkVHKGFkZHIpCVwKLQkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqKShDRkdfUlRDX1BMMDMxX0JBU0UgKyAoYWRkcikpKQorCQkJKCoodm9sYXRpbGUgdW5zaWduZWQgaW50ICopKENPTkZJR19TWVNfUlRDX1BMMDMxX0JBU0UgKyAoYWRkcikpKQogCiBzdGF0aWMgaW50IHBsMDMxX2luaXR0ZWQgPSAwOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9yczVjMzcyLmMgYi9kcml2ZXJzL3J0Yy9yczVjMzcyLmMKaW5kZXggODJkZDk2OS4uZDZjZDdjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnM1YzM3Mi5jCisrKyBiL2RyaXZlcnMvcnRjL3JzNWMzNzIuYwpAQCAtNTAsOCArNTAsOCBAQAogI2RlZmluZSBydGNfZGVidWcgMAkvKiBnY2Mgd2lsbCByZW1vdmUgYWxsIHRoZSBkZWJ1ZyBjb2RlIGZvciB1cyAqLwogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX0kyQ19SVENfQUREUgotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSIDB4MzIKKyNpZm5kZWYgQ09ORklHX1NZU19JMkNfUlRDX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIgMHgzMgogI2VuZGlmCiAKICNkZWZpbmUgUlM1QzM3Ml9SQU1fU0laRSAweDEwCkBAIC03Nyw3ICs3Nyw3IEBACiB7CiAJaW50IHJldDsKIAotCXJldCA9IGkyY19yZWFkKENGR19JMkNfUlRDX0FERFIsIDAsIDAsIGJ1ZiwgbGVuKTsKKwlyZXQgPSBpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgMCwgMCwgYnVmLCBsZW4pOwogCWlmIChyZXQgIT0gMCkgewogCQlwcmludGYoIiVzOiBmYWlsZWQgdG8gcmVhZFxuIiwgX19GVU5DVElPTl9fKTsKIAkJcmV0dXJuIHJldDsKQEAgLTExNyw3ICsxMTcsNyBAQAogCWJ1ZlsxNF0gPSAwOyAvKiByZWcuIDEzICovCiAJYnVmWzE1XSA9IDA7IC8qIHJlZy4gMTQgKi8KIAlidWZbMTZdID0gVVNFXzI0SE9VUl9NT0RFOyAvKiByZWcuIDE1ICovCi0JcmV0ID0gaTJjX3dyaXRlKENGR19JMkNfUlRDX0FERFIsIDAsIDAsIGJ1ZiwgUlM1QzM3Ml9SQU1fU0laRSsxKTsKKwlyZXQgPSBpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDAsIDAsIGJ1ZiwgUlM1QzM3Ml9SQU1fU0laRSsxKTsKIAlpZiAocmV0ICE9IDApIHsKIAkJcHJpbnRmKCIlczogZmFpbGVkXG4iLCBfX0ZVTkNUSU9OX18pOwogCQlyZXR1cm47CkBAIC0yMTgsNyArMjE4LDcgQEAKIAltZW1zZXQoYnVmLCAwLCBzaXplb2YoYnVmKSk7CiAKIAkvKiBvbmx5IHJlYWQgcmVnaXN0ZXIgMTUgKi8KLQlyZXQgPSBpMmNfcmVhZChDRkdfSTJDX1JUQ19BRERSLCAwLCAwLCBidWYsIDEpOworCXJldCA9IGkyY19yZWFkKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCAwLCAwLCBidWYsIDEpOwogCiAJaWYgKHJldCA9PSAwKSB7CiAJCS8qIG5lZWQgdG8gc2F2ZSByZWdpc3RlciAxNSAqLwpAQCAtMjQ3LDcgKzI0Nyw3IEBACiAJCQlwcmludGYoIldBUk5JTkc6IHllYXIgc2hvdWxkIGJlIGJldHdlZW4gMTk3MCBhbmQgMjA2OSFcbiIpOwogCQlidWZbN10gPSBiaW4yYmNkKHRtcC0+dG1feWVhciAlIDEwMCk7CiAKLQkJcmV0ID0gaTJjX3dyaXRlKENGR19JMkNfUlRDX0FERFIsIDAsIDAsIGJ1ZiwgOCk7CisJCXJldCA9IGkyY193cml0ZShDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgMCwgMCwgYnVmLCA4KTsKIAkJaWYgKHJldCAhPSAwKSB7CiAJCQlwcmludGYoInJzNWMzNzJfc2V0X2RhdGV0aW1lKCksIGkyY19tYXN0ZXJfc2VuZCgpIHJldHVybmVkICVkXG4iLHJldCk7CiAJCQlyZXR1cm4gLTE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9yeDgwMjUuYyBiL2RyaXZlcnMvcnRjL3J4ODAyNS5jCmluZGV4IDlmNGNlMmYuLmRhODczOTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J4ODAyNS5jCisrKyBiL2RyaXZlcnMvcnRjL3J4ODAyNS5jCkBAIC00Miw4ICs0Miw4IEBACiAjZW5kaWYKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2lmbmRlZiBDRkdfSTJDX1JUQ19BRERSCi0jIGRlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4MzIKKyNpZm5kZWYgQ09ORklHX1NZU19JMkNfUlRDX0FERFIKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4MzIKICNlbmRpZgogCiAvKgpAQCAtMTAyLDcgKzEwMiw3IEBACiAJdWNoYXIgc2VjLCBtaW4sIGhvdXIsIG1kYXksIHdkYXksIG1vbiwgeWVhciwgY3RsMjsKIAl1Y2hhciBidWZbMTZdOwogCi0JaWYgKGkyY19yZWFkKENGR19JMkNfUlRDX0FERFIsIDAsIDAsIGJ1ZiwgMTYpKQorCWlmIChpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgMCwgMCwgYnVmLCAxNikpCiAJCXByaW50ZigiRXJyb3IgcmVhZGluZyBmcm9tIFJUQ1xuIik7CiAKIAlzZWMgPSBydGNfcmVhZChSVENfU0VDX1JFR19BRERSKTsKQEAgLTE4OSw3ICsxODksNyBAQAogCXVjaGFyIGJ1ZlsxNl07CiAJdWNoYXIgY3RsMjsKIAotCWlmIChpMmNfcmVhZChDRkdfSTJDX1JUQ19BRERSLCAwLCAgICAwLCAgIGJ1ZiwgMTYpKQorCWlmIChpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgMCwgICAgMCwgICBidWYsIDE2KSkKIAkJcHJpbnRmKCJFcnJvciByZWFkaW5nIGZyb20gUlRDXG4iKTsKIAogCWN0bDIgPSBydGNfcmVhZChSVENfQ1RMMl9SRUdfQUREUik7CkBAIC0yMjEsNyArMjIxLDcgQEAKIAl1Y2hhciBidWZbMl07CiAJYnVmWzBdID0gcmVnIDw8IDQ7CiAJYnVmWzFdID0gdmFsOwotCWlmIChpMmNfd3JpdGUoQ0ZHX0kyQ19SVENfQUREUiwgMCwgMCwgYnVmLCAyKSAhPSAwKQorCWlmIChpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDAsIDAsIGJ1ZiwgMikgIT0gMCkKIAkJcHJpbnRmKCJFcnJvciB3cml0aW5nIHRvIFJUQ1xuIik7CiAKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3gxMjA1LmMgYi9kcml2ZXJzL3J0Yy94MTIwNS5jCmluZGV4IDdhM2I1MTQuLjU2MTE1YjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3gxMjA1LmMKKysrIGIvZHJpdmVycy9ydGMveDEyMDUuYwpAQCAtOTYsNyArOTYsNyBAQAogCiBzdGF0aWMgdm9pZCBydGNfd3JpdGUoaW50IHJlZywgdTggdmFsKQogewotCWkyY193cml0ZShDRkdfSTJDX1JUQ19BRERSLCByZWcsIDIsICZ2YWwsIDEpOworCWkyY193cml0ZShDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgcmVnLCAyLCAmdmFsLCAxKTsKIH0KIAogLyoKQEAgLTEwOCw3ICsxMDgsNyBAQAogewogCXU4IGJ1Zls4XTsKIAotCWkyY19yZWFkKENGR19JMkNfUlRDX0FERFIsIFgxMjA1X0NDUl9CQVNFLCAyLCBidWYsIDgpOworCWkyY19yZWFkKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCBYMTIwNV9DQ1JfQkFTRSwgMiwgYnVmLCA4KTsKIAogCWRlYnVnKCIlczogcmF3IHJlYWQgZGF0YSAtIHNlYz0lMDJ4LCBtaW49JTAyeCwgaHI9JTAyeCwgIgogCSAgICAgICJtZGF5PSUwMngsIG1vbj0lMDJ4LCB5ZWFyPSUwMngsIHdkYXk9JTAyeCwgeTJrPSUwMnhcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9tY2Z1YXJ0LmMgYi9kcml2ZXJzL3NlcmlhbC9tY2Z1YXJ0LmMKaW5kZXggYTFmY2QwNS4uZTA0ZmMyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvbWNmdWFydC5jCisrKyBiL2RyaXZlcnMvc2VyaWFsL21jZnVhcnQuYwpAQCAtNDEsNyArNDEsNyBAQAogCXZvbGF0aWxlIHVhcnRfdCAqdWFydDsKIAl1MzIgY291bnRlcjsKIAotCXVhcnQgPSAodm9sYXRpbGUgdWFydF90ICopKENGR19VQVJUX0JBU0UpOworCXVhcnQgPSAodm9sYXRpbGUgdWFydF90ICopKENPTkZJR19TWVNfVUFSVF9CQVNFKTsKIAogCXVhcnRfcG9ydF9jb25mKCk7CiAKQEAgLTc2LDcgKzc2LDcgQEAKIAogdm9pZCBzZXJpYWxfcHV0Yyhjb25zdCBjaGFyIGMpCiB7Ci0Jdm9sYXRpbGUgdWFydF90ICp1YXJ0ID0gKHZvbGF0aWxlIHVhcnRfdCAqKShDRkdfVUFSVF9CQVNFKTsKKwl2b2xhdGlsZSB1YXJ0X3QgKnVhcnQgPSAodm9sYXRpbGUgdWFydF90ICopKENPTkZJR19TWVNfVUFSVF9CQVNFKTsKIAogCWlmIChjID09ICdcbicpCiAJCXNlcmlhbF9wdXRjKCdccicpOwpAQCAtOTYsNyArOTYsNyBAQAogCiBpbnQgc2VyaWFsX2dldGModm9pZCkKIHsKLQl2b2xhdGlsZSB1YXJ0X3QgKnVhcnQgPSAodm9sYXRpbGUgdWFydF90ICopKENGR19VQVJUX0JBU0UpOworCXZvbGF0aWxlIHVhcnRfdCAqdWFydCA9ICh2b2xhdGlsZSB1YXJ0X3QgKikoQ09ORklHX1NZU19VQVJUX0JBU0UpOwogCiAJLyogV2FpdCBmb3IgYSBjaGFyYWN0ZXIgdG8gYXJyaXZlLiAqLwogCXdoaWxlICghKHVhcnQtPnVzciAmIFVBUlRfVVNSX1JYUkRZKSkgOwpAQCAtMTA1LDE0ICsxMDUsMTQgQEAKIAogaW50IHNlcmlhbF90c3RjKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgdWFydF90ICp1YXJ0ID0gKHZvbGF0aWxlIHVhcnRfdCAqKShDRkdfVUFSVF9CQVNFKTsKKwl2b2xhdGlsZSB1YXJ0X3QgKnVhcnQgPSAodm9sYXRpbGUgdWFydF90ICopKENPTkZJR19TWVNfVUFSVF9CQVNFKTsKIAogCXJldHVybiAodWFydC0+dXNyICYgVUFSVF9VU1JfUlhSRFkpOwogfQogCiB2b2lkIHNlcmlhbF9zZXRicmcodm9pZCkKIHsKLQl2b2xhdGlsZSB1YXJ0X3QgKnVhcnQgPSAodm9sYXRpbGUgdWFydF90ICopKENGR19VQVJUX0JBU0UpOworCXZvbGF0aWxlIHVhcnRfdCAqdWFydCA9ICh2b2xhdGlsZSB1YXJ0X3QgKikoQ09ORklHX1NZU19VQVJUX0JBU0UpOwogCXUzMiBjb3VudGVyOwogCiAJY291bnRlciA9ICgoZ2QtPmJ1c19jbGsgLyBnZC0+YmF1ZHJhdGUpKSA+PiA1OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvbnMxNjU1MC5jIGIvZHJpdmVycy9zZXJpYWwvbnMxNjU1MC5jCmluZGV4IDZiM2Y2MGUuLjkzYzIyNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsL25zMTY1NTAuYworKysgYi9kcml2ZXJzL3NlcmlhbC9uczE2NTUwLmMKQEAgLTEsMTIgKzEsMTIgQEAKIC8qCiAgKiBDT00xIE5TMTY1NTAgc3VwcG9ydAogICogb3JpZ2luYWxseSBmcm9tIGxpbnV4IHNvdXJjZSAoYXJjaC9wcGMvYm9vdC9uczE2NTUwLmMpCi0gKiBtb2RpZmllZCB0byB1c2UgQ0ZHX0lTQV9NRU0gYW5kIG5ldyBkZWZpbmVzCisgKiBtb2RpZmllZCB0byB1c2UgQ09ORklHX1NZU19JU0FfTUVNIGFuZCBuZXcgZGVmaW5lcwogICovCiAKICNpbmNsdWRlIDxjb25maWcuaD4KIAotI2lmZGVmIENGR19OUzE2NTUwCisjaWZkZWYgQ09ORklHX1NZU19OUzE2NTUwCiAKICNpbmNsdWRlIDxuczE2NTUwLmg+CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsL3NlcmlhbC5jIGIvZHJpdmVycy9zZXJpYWwvc2VyaWFsLmMKaW5kZXggYjM2MWVlZi4uYmNlNzU0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvc2VyaWFsLmMKKysrIGIvZHJpdmVycy9zZXJpYWwvc2VyaWFsLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWZkZWYgQ0ZHX05TMTY1NTBfU0VSSUFMCisjaWZkZWYgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAogCiAjaW5jbHVkZSA8bnMxNjU1MC5oPgogI2lmZGVmIENPTkZJR19OUzg3MzA4CkBAIC00OCwxMyArNDgsMTMgQEAKICNlcnJvcgkiSW52YWxpZCBjb25zb2xlIGluZGV4IHZhbHVlLiIKICNlbmRpZgogCi0jaWYgQ09ORklHX0NPTlNfSU5ERVggPT0gMSAmJiAhZGVmaW5lZChDRkdfTlMxNjU1MF9DT00xKQorI2lmIENPTkZJR19DT05TX0lOREVYID09IDEgJiYgIWRlZmluZWQoQ09ORklHX1NZU19OUzE2NTUwX0NPTTEpCiAjZXJyb3IJIkNvbnNvbGUgcG9ydCAxIGRlZmluZWQgYnV0IG5vdCBjb25maWd1cmVkLiIKLSNlbGlmIENPTkZJR19DT05TX0lOREVYID09IDIgJiYgIWRlZmluZWQoQ0ZHX05TMTY1NTBfQ09NMikKKyNlbGlmIENPTkZJR19DT05TX0lOREVYID09IDIgJiYgIWRlZmluZWQoQ09ORklHX1NZU19OUzE2NTUwX0NPTTIpCiAjZXJyb3IJIkNvbnNvbGUgcG9ydCAyIGRlZmluZWQgYnV0IG5vdCBjb25maWd1cmVkLiIKLSNlbGlmIENPTkZJR19DT05TX0lOREVYID09IDMgJiYgIWRlZmluZWQoQ0ZHX05TMTY1NTBfQ09NMykKKyNlbGlmIENPTkZJR19DT05TX0lOREVYID09IDMgJiYgIWRlZmluZWQoQ09ORklHX1NZU19OUzE2NTUwX0NPTTMpCiAjZXJyb3IJIkNvbnNvbGUgcG9ydCAzIGRlZmluZWQgYnV0IG5vdCBjb25maWd1cmVkLiIKLSNlbGlmIENPTkZJR19DT05TX0lOREVYID09IDQgJiYgIWRlZmluZWQoQ0ZHX05TMTY1NTBfQ09NNCkKKyNlbGlmIENPTkZJR19DT05TX0lOREVYID09IDQgJiYgIWRlZmluZWQoQ09ORklHX1NZU19OUzE2NTUwX0NPTTQpCiAjZXJyb3IJIkNvbnNvbGUgcG9ydCA0IGRlZmluZWQgYnV0IG5vdCBjb25maWd1cmVkLiIKICNlbmRpZgogCkBAIC02MiwyMyArNjIsMjMgQEAKICAqCSB0aGUgYXJyYXkgaXMgMCBiYXNlZC4KICAqLwogc3RhdGljIE5TMTY1NTBfdCBzZXJpYWxfcG9ydHNbNF0gPSB7Ci0jaWZkZWYgQ0ZHX05TMTY1NTBfQ09NMQotCShOUzE2NTUwX3QpQ0ZHX05TMTY1NTBfQ09NMSwKKyNpZmRlZiBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQorCShOUzE2NTUwX3QpQ09ORklHX1NZU19OUzE2NTUwX0NPTTEsCiAjZWxzZQogCU5VTEwsCiAjZW5kaWYKLSNpZmRlZiBDRkdfTlMxNjU1MF9DT00yCi0JKE5TMTY1NTBfdClDRkdfTlMxNjU1MF9DT00yLAorI2lmZGVmIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCisJKE5TMTY1NTBfdClDT05GSUdfU1lTX05TMTY1NTBfQ09NMiwKICNlbHNlCiAJTlVMTCwKICNlbmRpZgotI2lmZGVmIENGR19OUzE2NTUwX0NPTTMKLQkoTlMxNjU1MF90KUNGR19OUzE2NTUwX0NPTTMsCisjaWZkZWYgQ09ORklHX1NZU19OUzE2NTUwX0NPTTMKKwkoTlMxNjU1MF90KUNPTkZJR19TWVNfTlMxNjU1MF9DT00zLAogI2Vsc2UKIAlOVUxMLAogI2VuZGlmCi0jaWZkZWYgQ0ZHX05TMTY1NTBfQ09NNAotCShOUzE2NTUwX3QpQ0ZHX05TMTY1NTBfQ09NNAorI2lmZGVmIENPTkZJR19TWVNfTlMxNjU1MF9DT000CisJKE5TMTY1NTBfdClDT05GSUdfU1lTX05TMTY1NTBfQ09NNAogI2Vsc2UKIAlOVUxMCiAjZW5kaWYKQEAgLTEyNiw3ICsxMjYsNyBAQAogewogI2lmZGVmIENPTkZJR19PTUFQMTUxMAogCS8qIElmIGNhbid0IGNsZWFubHkgY2xvY2sgMTE1MjAwIHNldCBkaXYgdG8gMSAqLwotCWlmICgoQ0ZHX05TMTY1NTBfQ0xLID09IDEyMDAwMDAwKSAmJiAoZ2QtPmJhdWRyYXRlID09IDExNTIwMCkpIHsKKwlpZiAoKENPTkZJR19TWVNfTlMxNjU1MF9DTEsgPT0gMTIwMDAwMDApICYmIChnZC0+YmF1ZHJhdGUgPT0gMTE1MjAwKSkgewogCQlwb3J0LT5vc2NfMTJtX3NlbCA9IE9TQ18xMk1fU0VMOwkvKiBlbmFibGUgNi41ICogZGl2aXNvciAqLwogCQlyZXR1cm4gKDEpOwkJCQkvKiByZXR1cm4gMSBmb3IgYmFzZSBkaXZpc29yICovCiAJfQpAQCAtMTM0LDcgKzEzNCw3IEBACiAjZW5kaWYKICNpZmRlZiBDT05GSUdfT01BUDE2MTAKIAkvKiBJZiBjYW4ndCBjbGVhbmx5IGNsb2NrIDExNTIwMCBzZXQgZGl2IHRvIDEgKi8KLQlpZiAoKENGR19OUzE2NTUwX0NMSyA9PSA0ODAwMDAwMCkgJiYgKGdkLT5iYXVkcmF0ZSA9PSAxMTUyMDApKSB7CisJaWYgKChDT05GSUdfU1lTX05TMTY1NTBfQ0xLID09IDQ4MDAwMDAwKSAmJiAoZ2QtPmJhdWRyYXRlID09IDExNTIwMCkpIHsKIAkJcmV0dXJuICgyNik7CQkvKiByZXR1cm4gMjYgZm9yIGJhc2UgZGl2aXNvciAqLwogCX0KICNlbmRpZgpAQCAtMTQ2LDExICsxNDYsMTEgQEAKICNlbmRpZgogCiAJLyogQ29tcHV0ZSBkaXZpc29yIHZhbHVlLiBOb3JtYWxseSwgd2Ugc2hvdWxkIHNpbXBseSByZXR1cm46Ci0JICogICBDRkdfTlMxNjU1MF9DTEspIC8gTU9ERV9YX0RJViAvIGdkLT5iYXVkcmF0ZQorCSAqICAgQ09ORklHX1NZU19OUzE2NTUwX0NMSykgLyBNT0RFX1hfRElWIC8gZ2QtPmJhdWRyYXRlCiAJICogYnV0IHdlIG5lZWQgdG8gcm91bmQgdGhhdCB2YWx1ZSBieSBhZGRpbmcgMC41LgogCSAqIFJvdW5kaW5nIGlzIGVzcGVjaWFsbHkgaW1wb3J0YW50IGF0IGhpZ2ggYmF1ZCByYXRlcy4KIAkgKi8KLQlyZXR1cm4gKENGR19OUzE2NTUwX0NMSyArIChnZC0+YmF1ZHJhdGUgKiAoTU9ERV9YX0RJViAvIDIpKSkgLworCXJldHVybiAoQ09ORklHX1NZU19OUzE2NTUwX0NMSyArIChnZC0+YmF1ZHJhdGUgKiAoTU9ERV9YX0RJViAvIDIpKSkgLwogCQkoTU9ERV9YX0RJViAqIGdkLT5iYXVkcmF0ZSk7CiB9CiAKQEAgLTE2MywxOSArMTYzLDE5IEBACiAJaW5pdGlhbGlzZV9uczg3MzA4KCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19OUzE2NTUwX0NPTTEKKyNpZmRlZiBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQogCWNsb2NrX2Rpdmlzb3IgPSBjYWxjX2Rpdmlzb3Ioc2VyaWFsX3BvcnRzWzBdKTsKIAlOUzE2NTUwX2luaXQoc2VyaWFsX3BvcnRzWzBdLCBjbG9ja19kaXZpc29yKTsKICNlbmRpZgotI2lmZGVmIENGR19OUzE2NTUwX0NPTTIKKyNpZmRlZiBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgogCWNsb2NrX2Rpdmlzb3IgPSBjYWxjX2Rpdmlzb3Ioc2VyaWFsX3BvcnRzWzFdKTsKIAlOUzE2NTUwX2luaXQoc2VyaWFsX3BvcnRzWzFdLCBjbG9ja19kaXZpc29yKTsKICNlbmRpZgotI2lmZGVmIENGR19OUzE2NTUwX0NPTTMKKyNpZmRlZiBDT05GSUdfU1lTX05TMTY1NTBfQ09NMwogCWNsb2NrX2Rpdmlzb3IgPSBjYWxjX2Rpdmlzb3Ioc2VyaWFsX3BvcnRzWzJdKTsKIAlOUzE2NTUwX2luaXQoc2VyaWFsX3BvcnRzWzJdLCBjbG9ja19kaXZpc29yKTsKICNlbmRpZgotI2lmZGVmIENGR19OUzE2NTUwX0NPTTQKKyNpZmRlZiBDT05GSUdfU1lTX05TMTY1NTBfQ09NNAogCWNsb2NrX2Rpdmlzb3IgPSBjYWxjX2Rpdmlzb3Ioc2VyaWFsX3BvcnRzWzNdKTsKIAlOUzE2NTUwX2luaXQoc2VyaWFsX3BvcnRzWzNdLCBjbG9ja19kaXZpc29yKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvbXBjOHh4eF9zcGkuYyBiL2RyaXZlcnMvc3BpL21wYzh4eHhfc3BpLmMKaW5kZXggOWVhZjk4Ni4uYzRiMzZmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvbXBjOHh4eF9zcGkuYworKysgYi9kcml2ZXJzL3NwaS9tcGM4eHh4X3NwaS5jCkBAIC02Nyw3ICs2Nyw3IEBACiAKIHZvaWQgc3BpX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBzcGk4eHh4X3QgKnNwaSA9ICYoKGltbWFwX3QgKikgKENGR19JTU1SKSktPnNwaTsKKwl2b2xhdGlsZSBzcGk4eHh4X3QgKnNwaSA9ICYoKGltbWFwX3QgKikgKENPTkZJR19TWVNfSU1NUikpLT5zcGk7CiAKIAkvKgogCSAqIFNQSSBwaW5zIG9uIHRoZSBNUEM4M3h4IGFyZSBub3QgbXV4ZWQsIHNvIGFsbCB3ZSBkbyBpcyBpbml0aWFsaXplCkBAIC05NCw3ICs5NCw3IEBACiBpbnQgc3BpX3hmZXIoc3RydWN0IHNwaV9zbGF2ZSAqc2xhdmUsIHVuc2lnbmVkIGludCBiaXRsZW4sIGNvbnN0IHZvaWQgKmRvdXQsCiAJCXZvaWQgKmRpbiwgdW5zaWduZWQgbG9uZyBmbGFncykKIHsKLQl2b2xhdGlsZSBzcGk4eHh4X3QgKnNwaSA9ICYoKGltbWFwX3QgKikgKENGR19JTU1SKSktPnNwaTsKKwl2b2xhdGlsZSBzcGk4eHh4X3QgKnNwaSA9ICYoKGltbWFwX3QgKikgKENPTkZJR19TWVNfSU1NUikpLT5zcGk7CiAJdW5zaWduZWQgaW50IHRtcGRvdXQsIHRtcGRpbiwgZXZlbnQ7CiAJaW50IG51bUJsa3MgPSBiaXRsZW4gLyAzMiArIChiaXRsZW4gJSAzMiA/IDEgOiAwKTsKIAlpbnQgdG0sIGlzUmVhZCA9IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zb2Z0X3NwaS5jIGIvZHJpdmVycy9zcGkvc29mdF9zcGkuYwppbmRleCAyNWI1ODlhLi4xM2RmOGNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zb2Z0X3NwaS5jCisrKyBiL2RyaXZlcnMvc3BpL3NvZnRfc3BpLmMKQEAgLTU5LDcgKzU5LDcgQEAKIHZvaWQgc3BpX2luaXQgKHZvaWQpCiB7CiAjaWZkZWYJU1BJX0lOSVQKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAKIAlTUElfSU5JVDsKICNlbmRpZgpAQCAtOTUsOCArOTUsOCBAQAogCiBpbnQgc3BpX2NsYWltX2J1cyhzdHJ1Y3Qgc3BpX3NsYXZlICpzbGF2ZSkKIHsKLSNpZmRlZiBDRkdfSU1NUgotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworI2lmZGVmIENPTkZJR19TWVNfSU1NUgorCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICNlbmRpZgogCXN0cnVjdCBzb2Z0X3NwaV9zbGF2ZSAqc3MgPSB0b19zb2Z0X3NwaShzbGF2ZSk7CiAKQEAgLTEzMiw4ICsxMzIsOCBAQAogaW50ICBzcGlfeGZlcihzdHJ1Y3Qgc3BpX3NsYXZlICpzbGF2ZSwgdW5zaWduZWQgaW50IGJpdGxlbiwKIAkJY29uc3Qgdm9pZCAqZG91dCwgdm9pZCAqZGluLCB1bnNpZ25lZCBsb25nIGZsYWdzKQogewotI2lmZGVmIENGR19JTU1SCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisjaWZkZWYgQ09ORklHX1NZU19JTU1SCisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogI2VuZGlmCiAJc3RydWN0IHNvZnRfc3BpX3NsYXZlICpzcyA9IHRvX3NvZnRfc3BpKHNsYXZlKTsKIAl1Y2hhcgkJdG1wZGluICA9IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zbDgxMV91c2IuYyBiL2RyaXZlcnMvdXNiL3NsODExX3VzYi5jCmluZGV4IDE1OWNjMjUuLjQ4ZjFlZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NsODExX3VzYi5jCisrKyBiL2RyaXZlcnMvdXNiL3NsODExX3VzYi5jCkBAIC0xMTEsNyArMTExLDcgQEAKIAogaW50IHVzYl9pbml0X2t1cDR4ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWludCBpOwogCXVuc2lnbmVkIGNoYXIgdG1wOwpAQCAtMjY1LDcgKzI2NSw3IEBACiAKIAkJc2w4MTFfd3JpdGUoU0w4MTFfQ1RSTF9BLCBjdHJsKTsKIAkJd2hpbGUgKCEoc2w4MTFfcmVhZChTTDgxMV9JTlRSU1RTKSAmIFNMODExX0lOVFJfRE9ORV9BKSkgewotCQkJaWYgKDUqQ0ZHX0haIDwgZ2V0X3RpbWVyKHRpbWVfc3RhcnQpKSB7CisJCQlpZiAoNSpDT05GSUdfU1lTX0haIDwgZ2V0X3RpbWVyKHRpbWVfc3RhcnQpKSB7CiAJCQkJcHJpbnRmKCJVU0IgdHJhbnNtaXQgdGltZWQgb3V0XG4iKTsKIAkJCQlyZXR1cm4gLVVTQl9TVF9DUkNfRVJSOwogCQkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiX29oY2kuYyBiL2RyaXZlcnMvdXNiL3VzYl9vaGNpLmMKaW5kZXggZGExMWVjYi4uYzFhYWMzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvdXNiX29oY2kuYworKysgYi9kcml2ZXJzL3VzYi91c2Jfb2hjaS5jCkBAIC03Myw3ICs3Myw3IEBACiAgICAgZGVmaW5lZChDT05GSUdfNDQwRVApIHx8IFwKICAgICBkZWZpbmVkKENPTkZJR19QQ0lfT0hDSSkgfHwgXAogICAgIGRlZmluZWQoQ09ORklHX01QQzUyMDApIHx8IFwKLSAgICBkZWZpbmVkKENGR19PSENJX1VTRV9OUFMpCisgICAgZGVmaW5lZChDT05GSUdfU1lTX09IQ0lfVVNFX05QUykKICMgZGVmaW5lIE9IQ0lfVVNFX05QUwkJLyogZm9yY2UgTm9Qb3dlclN3aXRjaGluZyBtb2RlICovCiAjZW5kaWYKIApAQCAtODksMTMgKzg5LDEzIEBACiAvKgogICogZS5nLiBQQ0kgY29udHJvbGxlcnMgbmVlZCB0aGlzCiAgKi8KLSNpZmRlZiBDRkdfT0hDSV9TV0FQX1JFR19BQ0NFU1MKKyNpZmRlZiBDT05GSUdfU1lTX09IQ0lfU1dBUF9SRUdfQUNDRVNTCiAjIGRlZmluZSByZWFkbChhKSBfX3N3YXBfMzIoKigodm9sYXRpbGUgdTMyICopKGEpKSkKICMgZGVmaW5lIHdyaXRlbChhLCBiKSAoKigodm9sYXRpbGUgdTMyICopKGIpKSA9IF9fc3dhcF8zMigodm9sYXRpbGUgdTMyKWEpKQogI2Vsc2UKICMgZGVmaW5lIHJlYWRsKGEpICgqKCh2b2xhdGlsZSB1MzIgKikoYSkpKQogIyBkZWZpbmUgd3JpdGVsKGEsIGIpICgqKCh2b2xhdGlsZSB1MzIgKikoYikpID0gKCh2b2xhdGlsZSB1MzIpYSkpCi0jZW5kaWYgLyogQ0ZHX09IQ0lfU1dBUF9SRUdfQUNDRVNTICovCisjZW5kaWYgLyogQ09ORklHX1NZU19PSENJX1NXQVBfUkVHX0FDQ0VTUyAqLwogCiAjZGVmaW5lIG1pbl90KHR5cGUseCx5KSAoeyB0eXBlIF9feCA9ICh4KTsgdHlwZSBfX3kgPSAoeSk7IF9feCA8IF9feSA/IF9feDogX195OyB9KQogCkBAIC0xMjksMTMgKzEyOSwxMyBAQAogI2RlZmluZSBpbmZvKGZvcm1hdCwgYXJnLi4uKSBkbyB7fSB3aGlsZSgwKQogI2VuZGlmCiAKLSNpZmRlZiBDRkdfT0hDSV9CRV9DT05UUk9MTEVSCisjaWZkZWYgQ09ORklHX1NZU19PSENJX0JFX0NPTlRST0xMRVIKICMgZGVmaW5lIG0xNl9zd2FwKHgpIGNwdV90b19iZTE2KHgpCiAjIGRlZmluZSBtMzJfc3dhcCh4KSBjcHVfdG9fYmUzMih4KQogI2Vsc2UKICMgZGVmaW5lIG0xNl9zd2FwKHgpIGNwdV90b19sZTE2KHgpCiAjIGRlZmluZSBtMzJfc3dhcCh4KSBjcHVfdG9fbGUzMih4KQotI2VuZGlmIC8qIENGR19PSENJX0JFX0NPTlRST0xMRVIgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX09IQ0lfQkVfQ09OVFJPTExFUiAqLwogCiAvKiBnbG9iYWwgb2hjaV90ICovCiBzdGF0aWMgb2hjaV90IGdvaGNpOwpAQCAtMTgxOSwxMyArMTgxOSwxMyBAQAogCXBjaV9kZXZfdCBwZGV2OwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfVVNCX09IQ0lfQ1BVX0lOSVQKKyNpZmRlZiBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCiAJLyogY3B1IGRlcGVuZGFudCBpbml0ICovCiAJaWYodXNiX2NwdV9pbml0KCkpCiAJCXJldHVybiAtMTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1VTQl9PSENJX0JPQVJEX0lOSVQKKyNpZmRlZiBDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQKIAkvKiAgYm9hcmQgZGVwZW5kYW50IGluaXQgKi8KIAlpZih1c2JfYm9hcmRfaW5pdCgpKQogCQlyZXR1cm4gLTE7CkBAIC0xODczLDIxICsxODczLDIxIEBACiAJfSBlbHNlCiAJCXJldHVybiAtMTsKICNlbHNlCi0JZ29oY2kucmVncyA9IChzdHJ1Y3Qgb2hjaV9yZWdzICopQ0ZHX1VTQl9PSENJX1JFR1NfQkFTRTsKKwlnb2hjaS5yZWdzID0gKHN0cnVjdCBvaGNpX3JlZ3MgKilDT05GSUdfU1lTX1VTQl9PSENJX1JFR1NfQkFTRTsKICNlbmRpZgogCiAJZ29oY2kuZmxhZ3MgPSAwOwotCWdvaGNpLnNsb3RfbmFtZSA9IENGR19VU0JfT0hDSV9TTE9UX05BTUU7CisJZ29oY2kuc2xvdF9uYW1lID0gQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUU7CiAKIAlpZiAoaGNfcmVzZXQgKCZnb2hjaSkgPCAwKSB7CiAJCWhjX3JlbGVhc2Vfb2hjaSAoJmdvaGNpKTsKIAkJZXJyICgiY2FuJ3QgcmVzZXQgdXNiLSVzIiwgZ29oY2kuc2xvdF9uYW1lKTsKLSNpZmRlZiBDRkdfVVNCX09IQ0lfQk9BUkRfSU5JVAorI2lmZGVmIENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVAogCQkvKiBib2FyZCBkZXBlbmRhbnQgY2xlYW51cCAqLwogCQl1c2JfYm9hcmRfaW5pdF9mYWlsKCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19VU0JfT0hDSV9DUFVfSU5JVAorI2lmZGVmIENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQKIAkJLyogY3B1IGRlcGVuZGFudCBjbGVhbnVwICovCiAJCXVzYl9jcHVfaW5pdF9mYWlsKCk7CiAjZW5kaWYKQEAgLTE5MDEsMTIgKzE5MDEsMTIgQEAKIAkJZXJyICgiY2FuJ3Qgc3RhcnQgdXNiLSVzIiwgZ29oY2kuc2xvdF9uYW1lKTsKIAkJaGNfcmVsZWFzZV9vaGNpICgmZ29oY2kpOwogCQkvKiBJbml0aWFsaXphdGlvbiBmYWlsZWQgKi8KLSNpZmRlZiBDRkdfVVNCX09IQ0lfQk9BUkRfSU5JVAorI2lmZGVmIENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVAogCQkvKiBib2FyZCBkZXBlbmRhbnQgY2xlYW51cCAqLwogCQl1c2JfYm9hcmRfc3RvcCgpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfVVNCX09IQ0lfQ1BVX0lOSVQKKyNpZmRlZiBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCiAJCS8qIGNwdSBkZXBlbmRhbnQgY2xlYW51cCAqLwogCQl1c2JfY3B1X3N0b3AoKTsKICNlbmRpZgpAQCAtMTkzMiwxMyArMTkzMiwxMyBAQAogCS8qIGNhbGwgaGNfcmVsZWFzZV9vaGNpKCkgaGVyZSA/ICovCiAJaGNfcmVzZXQgKCZnb2hjaSk7CiAKLSNpZmRlZiBDRkdfVVNCX09IQ0lfQk9BUkRfSU5JVAorI2lmZGVmIENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVAogCS8qIGJvYXJkIGRlcGVuZGFudCBjbGVhbnVwICovCiAJaWYodXNiX2JvYXJkX3N0b3AoKSkKIAkJcmV0dXJuIC0xOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfVVNCX09IQ0lfQ1BVX0lOSVQKKyNpZmRlZiBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCiAJLyogY3B1IGRlcGVuZGFudCBjbGVhbnVwICovCiAJaWYodXNiX2NwdV9zdG9wKCkpCiAJCXJldHVybiAtMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3VzYl9vaGNpLmggYi9kcml2ZXJzL3VzYi91c2Jfb2hjaS5oCmluZGV4IDdhMDRiZjUuLmMxYWY1NDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3VzYl9vaGNpLmgKKysrIGIvZHJpdmVycy91c2IvdXNiX29oY2kuaApAQCAtMTU1LDggKzE1NSw4IEBACiAvKgogICogTWF4aW11bSBudW1iZXIgb2Ygcm9vdCBodWIgcG9ydHMuCiAgKi8KLSNpZm5kZWYgQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCi0jIGVycm9yICJDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMgdW5kZWZpbmVkISIKKyNpZm5kZWYgQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUworIyBlcnJvciAiQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUyB1bmRlZmluZWQhIgogI2VuZGlmCiAKIC8qCkBAIC0xOTEsNyArMTkxLDcgQEAKIAkJX191MzIJYTsKIAkJX191MzIJYjsKIAkJX191MzIJc3RhdHVzOwotCQlfX3UzMglwb3J0c3RhdHVzW0NGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUU107CisJCV9fdTMyCXBvcnRzdGF0dXNbQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUU107CiAJfSByb290aHViOwogfSBfX2F0dHJpYnV0ZSgoYWxpZ25lZCgzMikpKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiZGNvcmVfbXBjOHh4LmMgYi9kcml2ZXJzL3VzYi91c2JkY29yZV9tcGM4eHguYwppbmRleCAxMjI3OTNjLi5mYTAyMDAzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi91c2JkY29yZV9tcGM4eHguYworKysgYi9kcml2ZXJzL3VzYi91c2JkY29yZV9tcGM4eHguYwpAQCAtMTMzLDcgKzEzMyw3IEBACiBpbnQgdWRjX2luaXQgKHZvaWQpCiB7CiAJLyogSW5pdCB2YXJpb3VzIHBvaW50ZXJzICovCi0JaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJY3AgPSAoY3BtOHh4X3QgKikgJiAoaW1tci0+aW1fY3BtKTsKIAl1c2JfcGFyYW1wID0gKHVzYl9wcmFtX3QgKikgJiAoY3AtPmNwX2RwYXJhbVtQUk9GRl9VU0JdKTsKIAl1c2JwID0gKHVzYl90ICopICYgKGNwLT5jcF9zY2NbMF0pOwpAQCAtNzUyLDcgKzc1Miw3IEBACiBzdGF0aWMgdm9pZCBtcGM4eHhfdWRjX2FkdmFuY2VfcnggKHZvbGF0aWxlIGNiZF90ICoqIHJ4X2NiZHAsIGludCBlcGlkKQogewogCWlmICgoKnJ4X2NiZHApLT5jYmRfc2MgJiBSWF9CRF9XKSB7Ci0JCSpyeF9jYmRwID0gKHZvbGF0aWxlIGNiZF90ICopIChlbmRwb2ludHNbZXBpZF0tPnJiYXNlICsgQ0ZHX0lNTVIpOworCQkqcnhfY2JkcCA9ICh2b2xhdGlsZSBjYmRfdCAqKSAoZW5kcG9pbnRzW2VwaWRdLT5yYmFzZSArIENPTkZJR19TWVNfSU1NUik7CiAKIAl9IGVsc2UgewogCQkoKnJ4X2NiZHApKys7CkBAIC03ODAsNyArNzgwLDcgQEAKIAl1c2JwLT51c2NvbSA9IDB4NDAgfCAwOwogCiAJLyogcmVzZXQgcmluZyAqLwotCXR4X2NiZHAgPSAoY2JkX3QgKikgKGVuZHBvaW50c1tlcGlkXS0+dGJwdHIgKyBDRkdfSU1NUik7CisJdHhfY2JkcCA9IChjYmRfdCAqKSAoZW5kcG9pbnRzW2VwaWRdLT50YnB0ciArIENPTkZJR19TWVNfSU1NUik7CiAJdHhfY2JkcC0+Y2JkX3NjID0gKFRYX0JEX0kgfCBUWF9CRF9XKTsKIAogCkBAIC04ODYsNyArODg2LDcgQEAKIAl9CiAKIAllcCA9IGVwaS0+ZW5kcG9pbnRfYWRkcmVzcyAmIDB4MDM7Ci0JdHhfY2JkcCA9IChjYmRfdCAqKSAoZW5kcG9pbnRzW2VwXS0+dGJwdHIgKyBDRkdfSU1NUik7CisJdHhfY2JkcCA9IChjYmRfdCAqKSAoZW5kcG9pbnRzW2VwXS0+dGJwdHIgKyBDT05GSUdfU1lTX0lNTVIpOwogCiAJaWYgKHR4X2NiZHAtPmNiZF9zYyAmIFRYX0JEX1IgfHwgdXNicC0+dXNiZXIgJiBVU0JfRV9UWEIpIHsKIAkJbXBjOHh4X3VkY19mbHVzaF90eF9maWZvIChlcCk7CkBAIC05MDMsNyArOTAzLDcgQEAKIAkJCXJldHVybiAtMTsKIAkJfQogCi0JCXR4X2NiZHAgPSAoY2JkX3QgKikgKGVuZHBvaW50c1tlcF0tPnRicHRyICsgQ0ZHX0lNTVIpOworCQl0eF9jYmRwID0gKGNiZF90ICopIChlbmRwb2ludHNbZXBdLT50YnB0ciArIENPTkZJR19TWVNfSU1NUik7CiAJCXdoaWxlICh0eF9jYmRwLT5jYmRfc2MgJiBUWF9CRF9SKSB7CiAJCX07CiAJCXR4X2NiZHAtPmNiZF9zYyA9ICh0eF9jYmRwLT5jYmRfc2MgJiBUWF9CRF9XKTsKQEAgLTExODcsMTAgKzExODcsMTAgQEAKIAkJCQkgICB2b2xhdGlsZSBjcG04eHhfdCAqIGNwKQogewogCi0jaWYgZGVmaW5lZChDRkdfVVNCX0VYVENfQ0xLKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19VU0JfRVhUQ19DTEspCiAKIAkvKiBUaGlzIGhhcyBiZWVuIHRlc3RlZCB3aXRoIGEgNDhNSHogY3J5c3RhbCBvbiBDTEs2ICovCi0Jc3dpdGNoIChDRkdfVVNCX0VYVENfQ0xLKSB7CisJc3dpdGNoIChDT05GSUdfU1lTX1VTQl9FWFRDX0NMSykgewogCWNhc2UgMToKIAkJaW1tci0+aW1faW9wb3J0LmlvcF9wYXBhciB8PSAweDAxMDA7CiAJCWltbXItPmltX2lvcG9ydC5pb3BfcGFkaXIgJj0gfjB4MDEwMDsKQEAgLTEyMTYsNyArMTIxNiw3IEBACiAJCWJyZWFrOwogCX0KIAotI2VsaWYgZGVmaW5lZChDRkdfVVNCX0JSR0NMSykKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19VU0JfQlJHQ0xLKQogCiAJLyogVGhpcyBoYXMgYmVlbiB0ZXN0ZWQgd2l0aCBicmdjbGsgPT0gNTBNSHogKi8KIAlpbnQgZGl2aXNvciA9IDA7CkBAIC0xMjMzLDcgKzEyMzMsNyBAQAogCWRpdmlzb3IgPSAoZ2QtPmNwdV9jbGsgLyA0ODAwMDAwMEwpIC0gMTsKIAljcC0+Y3Bfc2ljciAmPSB+MHgwMDAwMDAzRjsKIAotCXN3aXRjaCAoQ0ZHX1VTQl9CUkdDTEspIHsKKwlzd2l0Y2ggKENPTkZJR19TWVNfVVNCX0JSR0NMSykgewogCWNhc2UgMToKIAkJY3AtPmNwX2JyZ2MxIHw9IChkaXZpc29yIHwgQ1BNX0JSR19FTik7CiAJCWNwLT5jcF9zaWNyICY9IH4weDJGOwpAQCAtMTI1Niw3ICsxMjU2LDcgQEAKIAl9CiAKICNlbHNlCi0jZXJyb3IgIkNGR19VU0JfRVhUQ19DTEsgb3IgQ0ZHX1VTQl9CUkdDTEsgbXVzdCBiZSBkZWZpbmVkIgorI2Vycm9yICJDT05GSUdfU1lTX1VTQl9FWFRDX0NMSyBvciBDT05GSUdfU1lTX1VTQl9CUkdDTEsgbXVzdCBiZSBkZWZpbmVkIgogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vYXRpX3JhZGVvbl9mYi5jIGIvZHJpdmVycy92aWRlby9hdGlfcmFkZW9uX2ZiLmMKaW5kZXggNjUwMzgwYi4uOWViYjBiMCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9hdGlfcmFkZW9uX2ZiLmMKKysrIGIvZHJpdmVycy92aWRlby9hdGlfcmFkZW9uX2ZiLmMKQEAgLTY1Myw3ICs2NTMsNyBAQAogCiAJdG1wID0gMDsKIAotCXZpZGVvbW9kZSA9IENGR19ERUZBVUxUX1ZJREVPX01PREU7CisJdmlkZW9tb2RlID0gQ09ORklHX1NZU19ERUZBVUxUX1ZJREVPX01PREU7CiAJLyogZ2V0IHZpZGVvIG1vZGUgdmlhIGVudmlyb25tZW50ICovCiAJaWYgKChwZW52ID0gZ2V0ZW52ICgidmlkZW9tb2RlIikpICE9IE5VTEwpIHsKIAkJLyogZGVjZWlkZSBpZiBpdCBpcyBhIHN0cmluZyAqLwpAQCAtNjcyLDcgKzY3Miw3IEBACiAJCQkJYnJlYWs7CiAJCX0KIAkJaWYgKGkgPT0gVkVTQV9NT0RFU19DT1VOVCkgewotCQkJcHJpbnRmICgibm8gVkVTQSBNb2RlIGZvdW5kLCBzd2l0Y2hpbmcgdG8gbW9kZSAweCV4ICIsIENGR19ERUZBVUxUX1ZJREVPX01PREUpOworCQkJcHJpbnRmICgibm8gVkVTQSBNb2RlIGZvdW5kLCBzd2l0Y2hpbmcgdG8gbW9kZSAweCV4ICIsIENPTkZJR19TWVNfREVGQVVMVF9WSURFT19NT0RFKTsKIAkJCWkgPSAwOwogCQl9CiAJCXJlc19tb2RlID0gKHN0cnVjdCBjdGZiX3Jlc19tb2RlcyAqKSAmcmVzX21vZGVfaW5pdFt2ZXNhX21vZGVzW2ldLnJlc2luZGV4XTsKQEAgLTczMiw3ICs3MzIsNyBAQAogCQlicmVhazsKIAl9CiAKLQlwR0QtPmlzYUJhc2UgPSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUzsKKwlwR0QtPmlzYUJhc2UgPSBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1M7CiAJcEdELT5wY2lCYXNlID0gcmluZm8tPmZiX2Jhc2VfcGh5czsKIAlwR0QtPmZyYW1lQWRycyA9IHJpbmZvLT5mYl9iYXNlX3BoeXM7CiAJcEdELT5tZW1TaXplID0gNjQgKiAxMDI0ICogMTAyNDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vY2ZiX2NvbnNvbGUuYyBiL2RyaXZlcnMvdmlkZW8vY2ZiX2NvbnNvbGUuYwppbmRleCBmZTQxOGYxLi43NzlhYTRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2NmYl9jb25zb2xlLmMKKysrIGIvZHJpdmVycy92aWRlby9jZmJfY29uc29sZS5jCkBAIC02MSw3ICs2MSw3IEBACiAKICBDT05GSUdfQ09OU09MRV9DVVJTT1IJICAgICAtIG9uL29mZiBkcmF3aW5nIGN1cnNvciBpcyBkb25lIHdpdGggZGVsYXkKIAkJCSAgICAgICBsb29wIGluIFZJREVPX1RTVENfRkNUIChpODA0MikKLSBDRkdfQ09OU09MRV9CTElOS19DT1VOVCAgICAgLSB2YWx1ZSBmb3IgZGVsYXkgbG9vcCAtIGJsaW5rIHJhdGUKKyBDT05GSUdfU1lTX0NPTlNPTEVfQkxJTktfQ09VTlQgICAgIC0gdmFsdWUgZm9yIGRlbGF5IGxvb3AgLSBibGluayByYXRlCiAgQ09ORklHX0NPTlNPTEVfVElNRQkgICAgIC0gZGlzcGxheSB0aW1lL2RhdGUgaW4gdXBwZXIgcmlnaHQgY29ybmVyLAogCQkJICAgICAgIG5lZWRzIENPTkZJR19DTURfREFURSBhbmQgQ09ORklHX0NPTlNPTEVfQ1VSU09SCiAgQ09ORklHX1ZJREVPX0xPR08JICAgICAtIGRpc3BsYXkgTGludXggTG9nbyBpbiB1cHBlciBsZWZ0IGNvcm5lcgpAQCAtODI0LDE5ICs4MjQsMTkgQEAKIAkJLyoKIAkJICogQ291bGQgYmUgYSBnemlwcGVkIGJtcCBpbWFnZSwgdHJ5IHRvIGRlY3JvbXByZXNzLi4uCiAJCSAqLwotCQlsZW4gPSBDRkdfVklERU9fTE9HT19NQVhfU0laRTsKLQkJZHN0ID0gbWFsbG9jKENGR19WSURFT19MT0dPX01BWF9TSVpFKTsKKwkJbGVuID0gQ09ORklHX1NZU19WSURFT19MT0dPX01BWF9TSVpFOworCQlkc3QgPSBtYWxsb2MoQ09ORklHX1NZU19WSURFT19MT0dPX01BWF9TSVpFKTsKIAkJaWYgKGRzdCA9PSBOVUxMKSB7CiAJCQlwcmludGYoIkVycm9yOiBtYWxsb2MgaW4gZ3VuemlwIGZhaWxlZCFcbiIpOwogCQkJcmV0dXJuKDEpOwogCQl9Ci0JCWlmIChndW56aXAoZHN0LCBDRkdfVklERU9fTE9HT19NQVhfU0laRSwgKHVjaGFyICopYm1wX2ltYWdlLCAmbGVuKSAhPSAwKSB7CisJCWlmIChndW56aXAoZHN0LCBDT05GSUdfU1lTX1ZJREVPX0xPR09fTUFYX1NJWkUsICh1Y2hhciAqKWJtcF9pbWFnZSwgJmxlbikgIT0gMCkgewogCQkJcHJpbnRmICgiRXJyb3I6IG5vIHZhbGlkIGJtcCBvciBibXAuZ3ogaW1hZ2UgYXQgJWx4XG4iLCBibXBfaW1hZ2UpOwogCQkJZnJlZShkc3QpOwogCQkJcmV0dXJuIDE7CiAJCX0KLQkJaWYgKGxlbiA9PSBDRkdfVklERU9fTE9HT19NQVhfU0laRSkgewotCQkJcHJpbnRmKCJJbWFnZSBjb3VsZCBiZSB0cnVuY2F0ZWQgKGluY3JlYXNlIENGR19WSURFT19MT0dPX01BWF9TSVpFKSFcbiIpOworCQlpZiAobGVuID09IENPTkZJR19TWVNfVklERU9fTE9HT19NQVhfU0laRSkgeworCQkJcHJpbnRmKCJJbWFnZSBjb3VsZCBiZSB0cnVuY2F0ZWQgKGluY3JlYXNlIENPTkZJR19TWVNfVklERU9fTE9HT19NQVhfU0laRSkhXG4iKTsKIAkJfQogCiAJCS8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2N0NjkwMDAuYyBiL2RyaXZlcnMvdmlkZW8vY3Q2OTAwMC5jCmluZGV4IGNhZTY2MmUuLmFlMjE5Y2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vY3Q2OTAwMC5jCisrKyBiL2RyaXZlcnMvdmlkZW8vY3Q2OTAwMC5jCkBAIC0xMTA3LDcgKzExMDcsNyBAQAogCQlwR0QtPmdkZkluZGV4ID0gR0RGXzI0QklUXzg4OFJHQjsKIAkJYnJlYWs7CiAJfQotCXBHRC0+aXNhQmFzZSA9IENGR19JU0FfSU9fQkFTRV9BRERSRVNTOworCXBHRC0+aXNhQmFzZSA9IENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUzsKIAlwR0QtPnBjaUJhc2UgPSBwY2lfbWVtX2Jhc2U7CiAJcEdELT5mcmFtZUFkcnMgPSBwY2lfbWVtX2Jhc2U7CiAJcEdELT5tZW1TaXplID0gY2hpcHNfcGFyYW0tPm1heF9tZW07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL21iODYyeHguYyBiL2RyaXZlcnMvdmlkZW8vbWI4NjJ4eC5jCmluZGV4IGQ0N2NiMDMuLjIyYTg1ZDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vbWI4NjJ4eC5jCisrKyBiL2RyaXZlcnMvdmlkZW8vbWI4NjJ4eC5jCkBAIC0zNTgsNyArMzU4LDcgQEAKICNlbmRpZgogCiAjaWYgKGRlZmluZWQoQ09ORklHX0xXTU9ONSkgfHwgXAotICAgICBkZWZpbmVkKENPTkZJR19TT0NSQVRFUykpICYmICEoQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TWVNNT04pCisgICAgIGRlZmluZWQoQ09ORklHX1NPQ1JBVEVTKSkgJiYgIShDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TWVNNT04pCiAJLyogTGFtcCBvbiAqLwogCWJvYXJkX2JhY2tsaWdodF9zd2l0Y2ggKDEpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL3NtaUx5bnhFTS5jIGIvZHJpdmVycy92aWRlby9zbWlMeW54RU0uYwppbmRleCAzOTBkZDU2Li41OWI0M2VmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL3NtaUx5bnhFTS5jCisrKyBiL2RyaXZlcnMvdmlkZW8vc21pTHlueEVNLmMKQEAgLTU5Niw3ICs1OTYsNyBAQAogCiAJdG1wID0gMDsKIAotCXZpZGVvbW9kZSA9IENGR19ERUZBVUxUX1ZJREVPX01PREU7CisJdmlkZW9tb2RlID0gQ09ORklHX1NZU19ERUZBVUxUX1ZJREVPX01PREU7CiAJLyogZ2V0IHZpZGVvIG1vZGUgdmlhIGVudmlyb25tZW50ICovCiAJaWYgKChwZW52ID0gZ2V0ZW52ICgidmlkZW9tb2RlIikpICE9IE5VTEwpIHsKIAkJLyogZGVjZWlkZSBpZiBpdCBpcyBhIHN0cmluZyAqLwpAQCAtNjE1LDcgKzYxNSw3IEBACiAJCQkJYnJlYWs7CiAJCX0KIAkJaWYgKGkgPT0gVkVTQV9NT0RFU19DT1VOVCkgewotCQkJcHJpbnRmICgibm8gVkVTQSBNb2RlIGZvdW5kLCBzd2l0Y2hpbmcgdG8gbW9kZSAweCV4ICIsIENGR19ERUZBVUxUX1ZJREVPX01PREUpOworCQkJcHJpbnRmICgibm8gVkVTQSBNb2RlIGZvdW5kLCBzd2l0Y2hpbmcgdG8gbW9kZSAweCV4ICIsIENPTkZJR19TWVNfREVGQVVMVF9WSURFT19NT0RFKTsKIAkJCWkgPSAwOwogCQl9CiAJCXJlc19tb2RlID0KQEAgLTY2OSw3ICs2NjksNyBAQAogCQlicmVhazsKIAl9CiAKLQlwR0QtPmlzYUJhc2UgPSBDRkdfSVNBX0lPOworCXBHRC0+aXNhQmFzZSA9IENPTkZJR19TWVNfSVNBX0lPOwogCXBHRC0+cGNpQmFzZSA9IHBjaV9tZW1fYmFzZTsKIAlwR0QtPmRwckJhc2UgPSAocGNpX21lbV9iYXNlICsgMHg0MDAwMDAgKyAweDgwMDApOwogCXBHRC0+dnByQmFzZSA9IChwY2lfbWVtX2Jhc2UgKyAweDQwMDAwMCArIDB4YzAwMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL3ZpZGVvbW9kZXMuYyBiL2RyaXZlcnMvdmlkZW8vdmlkZW9tb2Rlcy5jCmluZGV4IGM4MWU1YmMuLmQyN2NlMWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vdmlkZW9tb2Rlcy5jCisrKyBiL2RyaXZlcnMvdmlkZW8vdmlkZW9tb2Rlcy5jCkBAIC0yMyw3ICsyMyw3IEBACiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgR2V0IFBhcmFtZXRlcnMgZm9yIHRoZSB2aWRlbyBtb2RlOgotICBUaGUgZGVmYXVsdCB2aWRlbyBtb2RlIGNhbiBiZSBkZWZpbmVkIGluIENGR19ERUZBVUxUX1ZJREVPX01PREUuCisgIFRoZSBkZWZhdWx0IHZpZGVvIG1vZGUgY2FuIGJlIGRlZmluZWQgaW4gQ09ORklHX1NZU19ERUZBVUxUX1ZJREVPX01PREUuCiAgIElmIHVuZGVmaW5lZCwgZGVmYXVsdCB2aWRlbyBtb2RlIGlzIHNldCB0byAweDMwMQogICBQYXJhbWV0ZXJzIGNhbiBiZSBzZXQgdmlhIHRoZSB2YXJpYWJsZSAidmlkZW9tb2RlIiBpbiB0aGUgZW52aXJvbm1lbnQuCiAgIDIgZGlmZXJlbnQgd2F5cyBhcmUgcG9zc2libGU6CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL3ZpZGVvbW9kZXMuaCBiL2RyaXZlcnMvdmlkZW8vdmlkZW9tb2Rlcy5oCmluZGV4IGUyZGZmZTcuLjBkN2MzMzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vdmlkZW9tb2Rlcy5oCisrKyBiL2RyaXZlcnMvdmlkZW8vdmlkZW9tb2Rlcy5oCkBAIC0yMiw4ICsyMiw4IEBACiAgKi8KIAogCi0jaWZuZGVmIENGR19ERUZBVUxUX1ZJREVPX01PREUKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfVklERU9fTU9ERQkweDMwMQorI2lmbmRlZiBDT05GSUdfU1lTX0RFRkFVTFRfVklERU9fTU9ERQorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfVklERU9fTU9ERQkweDMwMQogI2VuZGlmCiAKIC8qIFNvbWUgbW9kZSBkZWZpbml0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWVtX3RvX21lbV9pZG1hMmludHIuYyBiL2V4YW1wbGVzL21lbV90b19tZW1faWRtYTJpbnRyLmMKaW5kZXggM2ZmMjgwNC4uMTU3NzlkMCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWVtX3RvX21lbV9pZG1hMmludHIuYworKysgYi9leGFtcGxlcy9tZW1fdG9fbWVtX2lkbWEyaW50ci5jCkBAIC0zOSw4ICszOSw4IEBACiAjaW5jbHVkZSA8d2F0Y2hkb2cuaD4KICNlbHNlCQkJCQkvKiBTdGFuZGFsb25lIGFwcCBvZiBQUENCb290ICovCiAjZGVmaW5lIFdBVENIRE9HX1JFU0VUKCkgewkJCQkJCVwKLQkJCSoodXNob3J0ICopKENGR19JTU1SICsgMHgxMDAwRSkgPSAweDU1NmM7CVwKLQkJCSoodXNob3J0ICopKENGR19JTU1SICsgMHgxMDAwRSkgPSAweGFhMzk7CVwKKwkJCSoodXNob3J0ICopKENPTkZJR19TWVNfSU1NUiArIDB4MTAwMEUpID0gMHg1NTZjOwlcCisJCQkqKHVzaG9ydCAqKShDT05GSUdfU1lTX0lNTVIgKyAweDEwMDBFKSA9IDB4YWEzOTsJXAogCQl9CiAjZW5kaWYJLyogU1RBTkRBTE9ORSAqLwogCkBAIC0xNTYsNyArMTU2LDcgQEAKIH0gcHJhbV9pZG1hX3Q7CiAKIAotdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKK3ZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogdm9sYXRpbGUgaWJkX3QgKmJkZjsKIHZvbGF0aWxlIHByYW1faWRtYV90ICpwaXB0cjsKIApAQCAtMzQ4LDcgKzM0OCw3IEBACiAKIHVpbnQgZHBhbGxvYyAodWludCBzaXplLCB1aW50IGFsaWduKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXVpbnQgcmV0bG9jOwogCXVpbnQgYWxpZ25fbWFzaywgb2ZmOwogCXVpbnQgc2F2ZWJhc2U7CmRpZmYgLS1naXQgYS9leGFtcGxlcy90ZXN0X2J1cnN0LmMgYi9leGFtcGxlcy90ZXN0X2J1cnN0LmMKaW5kZXggZDhjNWVkNC4uNzEwOWMwOSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvdGVzdF9idXJzdC5jCisrKyBiL2V4YW1wbGVzL3Rlc3RfYnVyc3QuYwpAQCAtNTAsMTkgKzUwLDE5IEBACiAvKiBEZWZpbmUgR1BJTyBwb3J0cyB0byBzaWduYWwgc3RhcnQgb2YgYnVyc3QgdHJhbnNmZXJzIGFuZCBlcnJvcnMgKi8KICNpZmRlZiBDT05GSUdfTFdNT04KIC8qIFVzZSBQRC44IHRvIHNpZ25hbCBzdGFydCBvZiBidXJzdCB0cmFuc2ZlcnMgKi8KLSNkZWZpbmUgR1BJTzFfREFUCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpCisjZGVmaW5lIEdQSU8xX0RBVAkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkKICNkZWZpbmUgR1BJTzFfQklUCTB4MDA4MAogLyogQ29uZmlndXJlIFBELjggYXMgZ2VuZXJhbCBwdXJwb3NlIG91dHB1dCAqLwogI2RlZmluZSBHUElPMV9JTklUIFwKLQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRwYXIgJj0gfkdQSU8xX0JJVDsgXAotCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRpciB8PSAgR1BJTzFfQklUOworCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRwYXIgJj0gfkdQSU8xX0JJVDsgXAorCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkaXIgfD0gIEdQSU8xX0JJVDsKIC8qIFVzZSBQRC45IHRvIHNpZ25hbCBlcnJvciAqLwotI2RlZmluZSBHUElPMl9EQVQJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkKKyNkZWZpbmUgR1BJTzJfREFUCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KQogI2RlZmluZSBHUElPMl9CSVQJMHgwMDQwCiAvKiBDb25maWd1cmUgUEQuOSBhcyBnZW5lcmFsIHB1cnBvc2Ugb3V0cHV0ICovCiAjZGVmaW5lIEdQSU8yX0lOSVQgXAotCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZHBhciAmPSB+R1BJTzJfQklUOyBcCi0JKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGlyIHw9ICBHUElPMl9CSVQ7CisJKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZHBhciAmPSB+R1BJTzJfQklUOyBcCisJKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRpciB8PSAgR1BJTzJfQklUOwogI2VuZGlmIC8qIENPTkZJR19MV01PTiAqLwogCiAKZGlmZiAtLWdpdCBhL2ZzL2pmZnMyL2pmZnMyXzFwYXNzLmMgYi9mcy9qZmZzMi9qZmZzMl8xcGFzcy5jCmluZGV4IDU3ZjU1ODIuLjAxNzcyNjggMTAwNjQ0Ci0tLSBhL2ZzL2pmZnMyL2pmZnMyXzFwYXNzLmMKKysrIGIvZnMvamZmczIvamZmczJfMXBhc3MuYwpAQCAtOTIsNyArOTIsNyBAQAogICogLSBpbXBsZW1lbnRlZCBmcmFnbWVudCBzb3J0aW5nIHRvIGVuc3VyZSB0aGF0IHRoZSBuZXdlc3QgZGF0YSBpcyBjb3BpZWQKICAqICAgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGNvcGllcyBvZiBmcmFnbWVudHMgZm9yIGEgY2VydGFpbiBmaWxlIG9mZnNldC4KICAqCi0gKiBUaGUgZnJhZ21lbnQgc29ydGluZyBmZWF0dXJlIG11c3QgYmUgZW5hYmxlZCBieSBDRkdfSkZGUzJfU09SVF9GUkFHTUVOVFMuCisgKiBUaGUgZnJhZ21lbnQgc29ydGluZyBmZWF0dXJlIG11c3QgYmUgZW5hYmxlZCBieSBDT05GSUdfU1lTX0pGRlMyX1NPUlRfRlJBR01FTlRTLgogICogU29ydGluZyBpcyBkb25lIHdoaWxlIGFkZGluZyBmcmFnbWVudHMgdG8gdGhlIGxpc3RzLCB3aGljaCBpcyBtb3JlIG9yIGxlc3MgYQogICogYnViYmxlIHNvcnQuIFRoaXMgdGFrZXMgYSBsb3Qgb2YgdGltZSwgYW5kIGlzIG1vc3QgcHJvYmFibHkgbm90IGFuIGlzc3VlIGlmCiAgKiB0aGUgYm9vdCBmaWxlc3lzdGVtIGlzIGFsd2F5cyBtb3VudGVkIHJlYWRvbmx5LgpAQCAtNTQ0LDcgKzU0NCw3IEBACiBpbnNlcnRfbm9kZShzdHJ1Y3QgYl9saXN0ICpsaXN0LCB1MzIgb2Zmc2V0KQogewogCXN0cnVjdCBiX25vZGUgKm5ldzsKLSNpZmRlZiBDRkdfSkZGUzJfU09SVF9GUkFHTUVOVFMKKyNpZmRlZiBDT05GSUdfU1lTX0pGRlMyX1NPUlRfRlJBR01FTlRTCiAJc3RydWN0IGJfbm9kZSAqYiwgKnByZXY7CiAjZW5kaWYKIApAQCAtNTU0LDcgKzU1NCw3IEBACiAJfQogCW5ldy0+b2Zmc2V0ID0gb2Zmc2V0OwogCi0jaWZkZWYgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjaWZkZWYgQ09ORklHX1NZU19KRkZTMl9TT1JUX0ZSQUdNRU5UUwogCWlmIChsaXN0LT5saXN0VGFpbCAhPSBOVUxMICYmIGxpc3QtPmxpc3RDb21wYXJlKG5ldywgbGlzdC0+bGlzdFRhaWwpKQogCQlwcmV2ID0gbGlzdC0+bGlzdFRhaWw7CiAJZWxzZSBpZiAobGlzdC0+bGlzdExhc3QgIT0gTlVMTCAmJiBsaXN0LT5saXN0Q29tcGFyZShuZXcsIGxpc3QtPmxpc3RMYXN0KSkKQEAgLTU5MSw3ICs1OTEsNyBAQAogCXJldHVybiBuZXc7CiB9CiAKLSNpZmRlZiBDRkdfSkZGUzJfU09SVF9GUkFHTUVOVFMKKyNpZmRlZiBDT05GSUdfU1lTX0pGRlMyX1NPUlRfRlJBR01FTlRTCiAvKiBTb3J0IGRhdGEgZW50cmllcyB3aXRoIHRoZSBsYXRlc3QgdmVyc2lvbiBsYXN0LCBzbyB0aGF0IGlmIHRoZXJlCiAgKiBpcyBvdmVybGFwcGluZyBkYXRhIHRoZSBsYXRlc3QgdmVyc2lvbiB3aWxsIGJlIHVzZWQuCiAgKi8KQEAgLTY5NCw3ICs2OTQsNyBAQAogCQlwTCA9IChzdHJ1Y3QgYl9saXN0cyAqKXBhcnQtPmpmZnMyX3ByaXY7CiAKIAkJbWVtc2V0KHBMLCAwLCBzaXplb2YoKnBMKSk7Ci0jaWZkZWYgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjaWZkZWYgQ09ORklHX1NZU19KRkZTMl9TT1JUX0ZSQUdNRU5UUwogCQlwTC0+ZGlyLmxpc3RDb21wYXJlID0gY29tcGFyZV9kaXJlbnRzOwogCQlwTC0+ZnJhZy5saXN0Q29tcGFyZSA9IGNvbXBhcmVfaW5vZGVzOwogI2VuZGlmCkBAIC03MTUsNyArNzE1LDcgQEAKIAlsb25nIHJldDsKIAlpbnQgaTsKIAl1MzIgY291bnRlciA9IDA7Ci0jaWZkZWYgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjaWZkZWYgQ09ORklHX1NZU19KRkZTMl9TT1JUX0ZSQUdNRU5UUwogCS8qIEZpbmQgZmlsZSBzaXplIGJlZm9yZSBsb2FkaW5nIGFueSBkYXRhLCBzbyBmcmFnbWVudHMgdGhhdAogCSAqIHN0YXJ0IHBhc3QgdGhlIGVuZCBvZiBmaWxlIGNhbiBiZSBpZ25vcmVkLiBBIGZyYWdtZW50CiAJICogdGhhdCBpcyBwYXJ0aWFsbHkgaW4gdGhlIGZpbGUgaXMgbG9hZGVkLCBzbyBleHRyYSBkYXRhIG1heQpAQCAtNzUzLDcgKzc1Myw3IEBACiAJCQlwdXRMYWJlbGVkV29yZCgicmVhZF9pbm9kZTogZmxhZ3MgPSAiLCBqTm9kZS0+ZmxhZ3MpOwogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjaWZuZGVmIENPTkZJR19TWVNfSkZGUzJfU09SVF9GUkFHTUVOVFMKIAkJCS8qIGdldCBhY3R1YWwgZmlsZSBsZW5ndGggZnJvbSB0aGUgbmV3ZXN0IG5vZGUgKi8KIAkJCWlmIChqTm9kZS0+dmVyc2lvbiA+PSBsYXRlc3RWZXJzaW9uKSB7CiAJCQkJdG90YWxTaXplID0gak5vZGUtPmlzaXplOwpkaWZmIC0tZ2l0IGEvZnMvamZmczIvamZmczJfbmFuZF8xcGFzcy5jIGIvZnMvamZmczIvamZmczJfbmFuZF8xcGFzcy5jCmluZGV4IGUyODhkNWEuLjZlYjY3NDUgMTAwNjQ0Ci0tLSBhL2ZzL2pmZnMyL2pmZnMyX25hbmRfMXBhc3MuYworKysgYi9mcy9qZmZzMi9qZmZzMl9uYW5kXzFwYXNzLmMKQEAgLTk2LDcgKzk2LDcgQEAKIHN0YXRpYyBzdHJ1Y3QgYl9ub2RlICoKIGluc2VydF9ub2RlKHN0cnVjdCBiX2xpc3QgKmxpc3QsIHN0cnVjdCBiX25vZGUgKm5ldykKIHsKLSNpZmRlZiBDRkdfSkZGUzJfU09SVF9GUkFHTUVOVFMKKyNpZmRlZiBDT05GSUdfU1lTX0pGRlMyX1NPUlRfRlJBR01FTlRTCiAJc3RydWN0IGJfbm9kZSAqYiwgKnByZXY7CiAKIAlpZiAobGlzdC0+bGlzdFRhaWwgIT0gTlVMTCAmJiBsaXN0LT5saXN0Q29tcGFyZShuZXcsIGxpc3QtPmxpc3RUYWlsKSkKQEAgLTE3Myw3ICsxNzMsNyBAQAogCXJldHVybiBpbnNlcnRfbm9kZShsaXN0LCAoc3RydWN0IGJfbm9kZSAqKW5ldyk7CiB9CiAKLSNpZmRlZiBDRkdfSkZGUzJfU09SVF9GUkFHTUVOVFMKKyNpZmRlZiBDT05GSUdfU1lTX0pGRlMyX1NPUlRfRlJBR01FTlRTCiAvKiBTb3J0IGRhdGEgZW50cmllcyB3aXRoIHRoZSBsYXRlc3QgdmVyc2lvbiBsYXN0LCBzbyB0aGF0IGlmIHRoZXJlCiAgKiBpcyBvdmVybGFwcGluZyBkYXRhIHRoZSBsYXRlc3QgdmVyc2lvbiB3aWxsIGJlIHVzZWQuCiAgKi8KQEAgLTI1MCw3ICsyNTAsNyBAQAogCQlwTCA9IChzdHJ1Y3QgYl9saXN0cyAqKXBhcnQtPmpmZnMyX3ByaXY7CiAKIAkJbWVtc2V0KHBMLCAwLCBzaXplb2YoKnBMKSk7Ci0jaWZkZWYgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjaWZkZWYgQ09ORklHX1NZU19KRkZTMl9TT1JUX0ZSQUdNRU5UUwogCQlwTC0+ZGlyLmxpc3RDb21wYXJlID0gY29tcGFyZV9kaXJlbnRzOwogCQlwTC0+ZnJhZy5saXN0Q29tcGFyZSA9IGNvbXBhcmVfaW5vZGVzOwogI2VuZGlmCkBAIC0yNjgsNyArMjY4LDcgQEAKIAl1MzIgbGF0ZXN0VmVyc2lvbiA9IDA7CiAJbG9uZyByZXQ7CiAKLSNpZmRlZiBDRkdfSkZGUzJfU09SVF9GUkFHTUVOVFMKKyNpZmRlZiBDT05GSUdfU1lTX0pGRlMyX1NPUlRfRlJBR01FTlRTCiAJLyogRmluZCBmaWxlIHNpemUgYmVmb3JlIGxvYWRpbmcgYW55IGRhdGEsIHNvIGZyYWdtZW50cyB0aGF0CiAJICogc3RhcnQgcGFzdCB0aGUgZW5kIG9mIGZpbGUgY2FuIGJlIGlnbm9yZWQuIEEgZnJhZ21lbnQKIAkgKiB0aGF0IGlzIHBhcnRpYWxseSBpbiB0aGUgZmlsZSBpcyBsb2FkZWQsIHNvIGV4dHJhIGRhdGEgbWF5CkBAIC0yOTAsNyArMjkwLDcgQEAKIAlmb3IgKGpOb2RlID0gKHN0cnVjdCBiX2lub2RlICopcEwtPmZyYWcubGlzdEhlYWQ7IGpOb2RlOyBqTm9kZSA9IGpOb2RlLT5uZXh0KSB7CiAJCWlmICgoaW5vICE9IGpOb2RlLT5pbm8pKQogCQkJY29udGludWU7Ci0jaWZuZGVmIENGR19KRkZTMl9TT1JUX0ZSQUdNRU5UUworI2lmbmRlZiBDT05GSUdfU1lTX0pGRlMyX1NPUlRfRlJBR01FTlRTCiAJCS8qIGdldCBhY3R1YWwgZmlsZSBsZW5ndGggZnJvbSB0aGUgbmV3ZXN0IG5vZGUgKi8KIAkJaWYgKGpOb2RlLT52ZXJzaW9uID49IGxhdGVzdFZlcnNpb24pIHsKIAkJCXRvdGFsU2l6ZSA9IGpOb2RlLT5pc2l6ZTsKZGlmZiAtLWdpdCBhL2ZzL2pmZnMyL2pmZnMyX3ByaXZhdGUuaCBiL2ZzL2pmZnMyL2pmZnMyX3ByaXZhdGUuaAppbmRleCA0NmVkNjQ0Li45NzQ1NzYyIDEwMDY0NAotLS0gYS9mcy9qZmZzMi9qZmZzMl9wcml2YXRlLmgKKysrIGIvZnMvamZmczIvamZmczJfcHJpdmF0ZS5oCkBAIC0xMiw3ICsxMiw3IEBACiBzdHJ1Y3QgYl9saXN0IHsKIAlzdHJ1Y3QgYl9ub2RlICpsaXN0VGFpbDsKIAlzdHJ1Y3QgYl9ub2RlICpsaXN0SGVhZDsKLSNpZmRlZiBDRkdfSkZGUzJfU09SVF9GUkFHTUVOVFMKKyNpZmRlZiBDT05GSUdfU1lTX0pGRlMyX1NPUlRfRlJBR01FTlRTCiAJc3RydWN0IGJfbm9kZSAqbGlzdExhc3Q7CiAJaW50ICgqbGlzdENvbXBhcmUpKHN0cnVjdCBiX25vZGUgKm5ldywgc3RydWN0IGJfbm9kZSAqbm9kZSk7CiAJdTMyIGxpc3RMb29wczsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvNHh4X2kyYy5oIGIvaW5jbHVkZS80eHhfaTJjLmgKaW5kZXggMmRmNGZiZC4uZjBlNzcyYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS80eHhfaTJjLmgKKysrIGIvaW5jbHVkZS80eHhfaTJjLmgKQEAgLTQzLDEwICs0MywxMCBAQAogI2lmIGRlZmluZWQoQ09ORklHXzQ0MEVQKSB8fCBkZWZpbmVkKENPTkZJR180NDBHUikgfHwgXAogICAgIGRlZmluZWQoQ09ORklHXzQ0MEVQWCkgfHwgZGVmaW5lZChDT05GSUdfNDQwR1JYKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfNDYwRVgpIHx8IGRlZmluZWQoQ09ORklHXzQ2MEdUKQotI2RlZmluZSBJMkNfQkFTRV9BRERSCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDcwMCArIEkyQ19CVVNfT0ZGUykKKyNkZWZpbmUgSTJDX0JBU0VfQUREUgkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNzAwICsgSTJDX0JVU19PRkZTKQogI2VsaWYgZGVmaW5lZChDT05GSUdfNDQwKSB8fCBkZWZpbmVkKENPTkZJR180MDVFWCkKIC8qIGFsbCByZW1haW5pbmcgNDQwIHZhcmlhbnRzICovCi0jZGVmaW5lIEkyQ19CQVNFX0FERFIJKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNDAwICsgSTJDX0JVU19PRkZTKQorI2RlZmluZSBJMkNfQkFTRV9BRERSCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDA0MDAgKyBJMkNfQlVTX09GRlMpCiAjZWxzZQogLyogYWxsIDQwNSB2YXJpYW50cyAqLwogI2RlZmluZSBJMkNfQkFTRV9BRERSCSgweEVGNjAwNTAwICsgSTJDX0JVU19PRkZTKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbHRlcmEuaCBiL2luY2x1ZGUvYWx0ZXJhLmgKaW5kZXggYzAzZmU4Ny4uNDRhMWVlNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbHRlcmEuaAorKysgYi9pbmNsdWRlL2FsdGVyYS5oCkBAIC0yOSwxOSArMjksMTkgQEAKIAogLyogQWx0ZXJhIE1vZGVsIGRlZmluaXRpb25zCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfQUNFWDFLCQlDRkdfRlBHQV9ERVYoIDB4MSApCi0jZGVmaW5lIENGR19DWUNMT04yCQlDRkdfRlBHQV9ERVYoIDB4MiApCi0jZGVmaW5lIENGR19TVFJBVElYX0lJCQlDRkdfRlBHQV9ERVYoIDB4NCApCisjZGVmaW5lIENPTkZJR19TWVNfQUNFWDFLCQlDT05GSUdfU1lTX0ZQR0FfREVWKCAweDEgKQorI2RlZmluZSBDT05GSUdfU1lTX0NZQ0xPTjIJCUNPTkZJR19TWVNfRlBHQV9ERVYoIDB4MiApCisjZGVmaW5lIENPTkZJR19TWVNfU1RSQVRJWF9JSQkJQ09ORklHX1NZU19GUEdBX0RFViggMHg0ICkKIAotI2RlZmluZSBDRkdfQUxURVJBX0FDRVgxSwkoQ0ZHX0ZQR0FfQUxURVJBIHwgQ0ZHX0FDRVgxSykKLSNkZWZpbmUgQ0ZHX0FMVEVSQV9DWUNMT04yCShDRkdfRlBHQV9BTFRFUkEgfCBDRkdfQ1lDTE9OMikKLSNkZWZpbmUgQ0ZHX0FMVEVSQV9TVFJBVElYX0lJCShDRkdfRlBHQV9BTFRFUkEgfCBDRkdfU1RSQVRJWF9JSSkKKyNkZWZpbmUgQ09ORklHX1NZU19BTFRFUkFfQUNFWDFLCShDT05GSUdfU1lTX0ZQR0FfQUxURVJBIHwgQ09ORklHX1NZU19BQ0VYMUspCisjZGVmaW5lIENPTkZJR19TWVNfQUxURVJBX0NZQ0xPTjIJKENPTkZJR19TWVNfRlBHQV9BTFRFUkEgfCBDT05GSUdfU1lTX0NZQ0xPTjIpCisjZGVmaW5lIENPTkZJR19TWVNfQUxURVJBX1NUUkFUSVhfSUkJKENPTkZJR19TWVNfRlBHQV9BTFRFUkEgfCBDT05GSUdfU1lTX1NUUkFUSVhfSUkpCiAvKiBBZGQgbmV3IG1vZGVscyBoZXJlICovCiAKIC8qIEFsdGVyYSBJbnRlcmZhY2UgZGVmaW5pdGlvbnMKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIENGR19BTFRFUkFfSUZfUFMJQ0ZHX0ZQR0FfSUYoIDB4MSApCS8qIHBhc3NpdmUgc2VyaWFsICovCi0jZGVmaW5lIENGR19BTFRFUkFfSUZfRlBQCUNGR19GUEdBX0lGKCAweDIgKQkvKiBmYXN0IHBhc3NpdmUgcGFyYWxsZWwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BTFRFUkFfSUZfUFMJQ09ORklHX1NZU19GUEdBX0lGKCAweDEgKQkvKiBwYXNzaXZlIHNlcmlhbCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FMVEVSQV9JRl9GUFAJQ09ORklHX1NZU19GUEdBX0lGKCAweDIgKQkvKiBmYXN0IHBhc3NpdmUgcGFyYWxsZWwgKi8KIC8qIEFkZCBuZXcgaW50ZXJmYWNlcyBoZXJlICovCiAKIHR5cGVkZWYgZW51bSB7CQkJCS8qIHR5cGVkZWYgQWx0ZXJhX2lmYWNlICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FwaV9wdWJsaWMuaCBiL2luY2x1ZGUvYXBpX3B1YmxpYy5oCmluZGV4IDViMGMwOWUuLmQzMTY0ZjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXBpX3B1YmxpYy5oCisrKyBiL2luY2x1ZGUvYXBpX3B1YmxpYy5oCkBAIC0xMTAsOCArMTEwLDggQEAKIAlpbnQJCQltcl9ubzsJLyogbnVtYmVyIG9mIG1lbW9yeSByZWdpb25zICovCiB9OwogCi0jdW5kZWYgQ0ZHXzY0QklUX0xCQQotI2lmZGVmIENGR182NEJJVF9MQkEKKyN1bmRlZiBDT05GSUdfU1lTXzY0QklUX0xCQQorI2lmZGVmIENPTkZJR19TWVNfNjRCSVRfTEJBCiB0eXBlZGVmCXVfaW50NjRfdCBsYmFzaXplX3Q7CiAjZWxzZQogdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxiYXNpemVfdDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWRhdmluY2kvbmFuZF9kZWZzLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1kYXZpbmNpL25hbmRfZGVmcy5oCmluZGV4IDYxOWJkNDcuLjE4N2QzYzMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWRhdmluY2kvbmFuZF9kZWZzLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtZGF2aW5jaS9uYW5kX2RlZnMuaApAQCAtMzEsOSArMzEsOSBAQAogI2RlZmluZQlNQVNLX0NMRQkweDEwCiAjZGVmaW5lCU1BU0tfQUxFCTB4MGEKIAotI2RlZmluZSBOQU5EX0NFMENMRQkoKHZvbGF0aWxlIHVfaW50OF90ICopKENGR19OQU5EX0JBU0UgKyAweDEwKSkKLSNkZWZpbmUgTkFORF9DRTBBTEUJKCh2b2xhdGlsZSB1X2ludDhfdCAqKShDRkdfTkFORF9CQVNFICsgMHgwYSkpCi0jZGVmaW5lIE5BTkRfQ0UwREFUQQkoKHZvbGF0aWxlIHVfaW50OF90ICopQ0ZHX05BTkRfQkFTRSkKKyNkZWZpbmUgTkFORF9DRTBDTEUJKCh2b2xhdGlsZSB1X2ludDhfdCAqKShDT05GSUdfU1lTX05BTkRfQkFTRSArIDB4MTApKQorI2RlZmluZSBOQU5EX0NFMEFMRQkoKHZvbGF0aWxlIHVfaW50OF90ICopKENPTkZJR19TWVNfTkFORF9CQVNFICsgMHgwYSkpCisjZGVmaW5lIE5BTkRfQ0UwREFUQQkoKHZvbGF0aWxlIHVfaW50OF90ICopQ09ORklHX1NZU19OQU5EX0JBU0UpCiAKIHR5cGVkZWYgc3RydWN0ICB7CiAJdV9pbnQzMl90CU5SQ1NSOwpAQCAtODksNyArODksNyBAQAogI2RlZmluZSBOQU5EX1JFQURfRU5ECQkweDMwCiAjZGVmaW5lIE5BTkRfU1RBVFVTCQkweDcwCiAKLSNpZmRlZiBDRkdfTkFORF9IV19FQ0MKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfSFdfRUNDCiAjZGVmaW5lIE5BTkRfRWNjX1AxZQkJKDEgPDwgMCkKICNkZWZpbmUgTkFORF9FY2NfUDJlCQkoMSA8PCAxKQogI2RlZmluZSBOQU5EX0VjY19QNGUJCSgxIDw8IDIpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwMjR4eC9tZW0uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAyNHh4L21lbS5oCmluZGV4IGM4MWYxYzQuLjQyZThhYjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAyNHh4L21lbS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAyNHh4L21lbS5oCkBAIC0xMDMsNyArMTAzLDcgQEAKIAogLyogR1BNQyBzZXR0aW5ncyAqLwogI2lmZGVmIFBSQ01fQ09ORklHX0lJCSAgICAgLyogTDMgYXQgMTAwTUh6ICovCi0jIGlmZGVmIENGR19OQU5EX0JPT1QKKyMgaWZkZWYgQ09ORklHX1NZU19OQU5EX0JPT1QKICMgIGRlZmluZSBINF8yNFhYX0dQTUNfQ09ORklHMV8wICAgMHgwCiAjICBkZWZpbmUgSDRfMjRYWF9HUE1DX0NPTkZJRzJfMCAgIDB4MDAxNDE0MDAKICMgIGRlZmluZSBINF8yNFhYX0dQTUNfQ09ORklHM18wICAgMHgwMDE0MTQwMApAQCAtMTE2LDcgKzExNiw3IEBACiAjICBkZWZpbmUgSDRfMjRYWF9HUE1DX0NPTkZJRzNfMCAgIDB4MDAwNTA1MDIKICMgIGRlZmluZSBINF8yNFhYX0dQTUNfQ09ORklHNF8wICAgMHgwQzA2MEMwNgogIyAgZGVmaW5lIEg0XzI0WFhfR1BNQ19DT05GSUc1XzAgICAweDAxMTMxRjFGCi0jIGVuZGlmIC8qIGVuZGlmIENGR19OQU5EX0JPT1QgKi8KKyMgZW5kaWYgLyogZW5kaWYgQ09ORklHX1NZU19OQU5EX0JPT1QgKi8KICMgZGVmaW5lIEg0XzI0WFhfR1BNQ19DT05GSUc3XzAJICAoMHgwMDAwMEM0MHwoSDRfQ1MwX0JBU0UgPj4gMjQpKQogIyBkZWZpbmUgSDRfMjRYWF9HUE1DX0NPTkZJRzFfMQkgIDB4MDAwMTEwMDAKICMgZGVmaW5lIEg0XzI0WFhfR1BNQ19DT05GSUcyXzEJICAweDAwMUYxRjAwCkBAIC0xMjgsNyArMTI4LDcgQEAKICNlbmRpZiAvKiBlbmRpZiBQUkNNX0NPTkZJR19JSSAqLwogCiAjaWZkZWYgUFJDTV9DT05GSUdfSUlJCS8qIEwzIGF0IDEzM01IeiAqLwotIyBpZmRlZiBDRkdfTkFORF9CT09UCisjIGlmZGVmIENPTkZJR19TWVNfTkFORF9CT09UCiAjICBkZWZpbmUgSDRfMjRYWF9HUE1DX0NPTkZJRzFfMCAgIDB4MAogIyAgZGVmaW5lIEg0XzI0WFhfR1BNQ19DT05GSUcyXzAgICAweDAwMTQxNDAwCiAjICBkZWZpbmUgSDRfMjRYWF9HUE1DX0NPTkZJRzNfMCAgIDB4MDAxNDE0MDAKQEAgLTE0Miw3ICsxNDIsNyBAQAogIyAgZGVmaW5lIEg0XzI0WFhfR1BNQ19DT05GSUc0XzAgICAweDEwMDgxMDA4CiAjICBkZWZpbmUgSDRfMjRYWF9HUE1DX0NPTkZJRzVfMCAgIDB4MDExMzFGMUYKICMgIGRlZmluZSBINF8yNFhYX0dQTUNfQ09ORklHNl8wICAgMHgwMDAwMDRjNAotIyBlbmRpZiAvKiBlbmRpZiBDRkdfTkFORF9CT09UICovCisjIGVuZGlmIC8qIGVuZGlmIENPTkZJR19TWVNfTkFORF9CT09UICovCiAjIGRlZmluZSBINF8yNFhYX0dQTUNfQ09ORklHN18wCSAgKDB4MDAwMDBDNDB8KEg0X0NTMF9CQVNFID4+IDI0KSkKICMgZGVmaW5lIEg0XzI0WFhfR1BNQ19DT05GSUcxXzEJICAweDAwMDExMDAwCiAjIGRlZmluZSBINF8yNFhYX0dQTUNfQ09ORklHMl8xCSAgMHgwMDFmMWYwMQpAQCAtMTUxLDYgKzE1MSw2IEBACiAjIGRlZmluZSBINF8yNFhYX0dQTUNfQ09ORklHNV8xCSAgMHgwNDFmMUYxRgogIyBkZWZpbmUgSDRfMjRYWF9HUE1DX0NPTkZJRzZfMQkgIDB4MDAwMDA0QzQKICMgZGVmaW5lIEg0XzI0WFhfR1BNQ19DT05GSUc3XzEJICAoMHgwMDAwMEY0MHwoSDRfQ1MxX0JBU0UgPj4gMjQpKQotI2VuZGlmIC8qIGVuZGlmIENGR19QUkNNX0lJSSAqLworI2VuZGlmIC8qIGVuZGlmIENPTkZJR19TWVNfUFJDTV9JSUkgKi8KIAogI2VuZGlmIC8qIGVuZGlmIF9PTUFQMjRYWF9NRU1fSF8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9nbG9iYWxfZGF0YS5oIGIvaW5jbHVkZS9hc20tYXJtL2dsb2JhbF9kYXRhLmgKaW5kZXggZjQxOWI0Mi4uNWM1NmNlMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2dsb2JhbF9kYXRhLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2dsb2JhbF9kYXRhLmgKQEAgLTMwLDcgKzMwLDcgQEAKICAqIGdsb2JhbCB2YXJpYWJsZXMgZHVyaW5nIHN5c3RlbSBpbml0aWFsaXphdGlvbiAodW50aWwgd2UgaGF2ZSBzZXQKICAqIHVwIHRoZSBtZW1vcnkgY29udHJvbGxlciBzbyB0aGF0IHdlIGNhbiB1c2UgUkFNKS4KICAqCi0gKiBLZWVwIGl0ICpTTUFMTCogYW5kIHJlbWVtYmVyIHRvIHNldCBDRkdfR0JMX0RBVEFfU0laRSA+IHNpemVvZihnZF90KQorICogS2VlcCBpdCAqU01BTEwqIGFuZCByZW1lbWJlciB0byBzZXQgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFID4gc2l6ZW9mKGdkX3QpCiAgKi8KIAogdHlwZWRlZglzdHJ1Y3QJZ2xvYmFsX2RhdGEgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXA3MDB4L2Nsay5oIGIvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXA3MDB4L2Nsay5oCmluZGV4IGU5YTRmZTQuLjc4MTc1NzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwNzAweC9jbGsuaAorKysgYi9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcDcwMHgvY2xrLmgKQEAgLTI1LDI2ICsyNSwyNiBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL2NoaXAtZmVhdHVyZXMuaD4KIAogI2lmZGVmIENPTkZJR19QTEwKLSNkZWZpbmUgTUFJTl9DTEtfUkFURSAoKENGR19PU0MwX0haIC8gQ0ZHX1BMTDBfRElWKSAqIENGR19QTEwwX01VTCkKKyNkZWZpbmUgTUFJTl9DTEtfUkFURSAoKENPTkZJR19TWVNfT1NDMF9IWiAvIENPTkZJR19TWVNfUExMMF9ESVYpICogQ09ORklHX1NZU19QTEwwX01VTCkKICNlbHNlCi0jZGVmaW5lIE1BSU5fQ0xLX1JBVEUgKENGR19PU0MwX0haKQorI2RlZmluZSBNQUlOX0NMS19SQVRFIChDT05GSUdfU1lTX09TQzBfSFopCiAjZW5kaWYKIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGdldF9jcHVfY2xrX3JhdGUodm9pZCkKIHsKLQlyZXR1cm4gTUFJTl9DTEtfUkFURSA+PiBDRkdfQ0xLRElWX0NQVTsKKwlyZXR1cm4gTUFJTl9DTEtfUkFURSA+PiBDT05GSUdfU1lTX0NMS0RJVl9DUFU7CiB9CiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZ2V0X2hzYl9jbGtfcmF0ZSh2b2lkKQogewotCXJldHVybiBNQUlOX0NMS19SQVRFID4+IENGR19DTEtESVZfSFNCOworCXJldHVybiBNQUlOX0NMS19SQVRFID4+IENPTkZJR19TWVNfQ0xLRElWX0hTQjsKIH0KIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBnZXRfcGJhX2Nsa19yYXRlKHZvaWQpCiB7Ci0JcmV0dXJuIE1BSU5fQ0xLX1JBVEUgPj4gQ0ZHX0NMS0RJVl9QQkE7CisJcmV0dXJuIE1BSU5fQ0xLX1JBVEUgPj4gQ09ORklHX1NZU19DTEtESVZfUEJBOwogfQogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGdldF9wYmJfY2xrX3JhdGUodm9pZCkKIHsKLQlyZXR1cm4gTUFJTl9DTEtfUkFURSA+PiBDRkdfQ0xLRElWX1BCQjsKKwlyZXR1cm4gTUFJTl9DTEtfUkFURSA+PiBDT05GSUdfU1lTX0NMS0RJVl9QQkI7CiB9CiAKIC8qIEFjY2Vzc29ycyBmb3Igc3BlY2lmaWMgZGV2aWNlcy4gTW9yZSB3aWxsIGJlIGFkZGVkIGFzIG5lZWRlZC4gKi8KQEAgLTg1LDYgKzg1LDYgQEAKIGV4dGVybiB2b2lkIGdjbGtfaW5pdCh2b2lkKSBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSk7CiAKIC8qIEJvYXJkIGNvZGUgbWF5IG5lZWQgdGhlIFNEUkFNIGJhc2UgY2xvY2sgYXMgYSBjb21waWxlLXRpbWUgY29uc3RhbnQgKi8KLSNkZWZpbmUgU0RSQU1DX0JVU19IWgkoTUFJTl9DTEtfUkFURSA+PiBDRkdfQ0xLRElWX0hTQikKKyNkZWZpbmUgU0RSQU1DX0JVU19IWgkoTUFJTl9DTEtfUkFURSA+PiBDT05GSUdfU1lTX0NMS0RJVl9IU0IpCiAKICNlbmRpZiAvKiBfX0FTTV9BVlIzMl9BUkNIX0NMS19IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWF2cjMyL2dsb2JhbF9kYXRhLmggYi9pbmNsdWRlL2FzbS1hdnIzMi9nbG9iYWxfZGF0YS5oCmluZGV4IDc1ZTc1Y2MuLjk3YTZjNjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWF2cjMyL2dsb2JhbF9kYXRhLmgKKysrIGIvaW5jbHVkZS9hc20tYXZyMzIvZ2xvYmFsX2RhdGEuaApAQCAtMjksNyArMjksNyBAQAogICogZ2xvYmFsIHZhcmlhYmxlcyBkdXJpbmcgc3lzdGVtIGluaXRpYWxpemF0aW9uICh1bnRpbCB3ZSBoYXZlIHNldAogICogdXAgdGhlIG1lbW9yeSBjb250cm9sbGVyIHNvIHRoYXQgd2UgY2FuIHVzZSBSQU0pLgogICoKLSAqIEtlZXAgaXQgKlNNQUxMKiBhbmQgcmVtZW1iZXIgdG8gc2V0IENGR19HQkxfREFUQV9TSVpFID4gc2l6ZW9mKGdkX3QpCisgKiBLZWVwIGl0ICpTTUFMTCogYW5kIHJlbWVtYmVyIHRvIHNldCBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgPiBzaXplb2YoZ2RfdCkKICAqLwogCiB0eXBlZGVmCXN0cnVjdAlnbG9iYWxfZGF0YSB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9ibGFja2Zpbi1jb25maWctcG9zdC5oIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vYmxhY2tmaW4tY29uZmlnLXBvc3QuaAppbmRleCA2YTFmZmExLi4wYWI2OGFjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9ibGFja2Zpbi1jb25maWctcG9zdC5oCisrKyBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL2JsYWNrZmluLWNvbmZpZy1wb3N0LmgKQEAgLTEwLDcgKzEwLDcgQEAKICNkZWZpbmUgX19BU01fQkxBQ0tGSU5fQ09ORklHX1BPU1RfSF9fCiAKIC8qIENoZWNrIHRvIG1ha2Ugc3VyZSBldmVyeXRoaW5nIGZpdHMgaW4gZXh0ZXJuYWwgUkFNICovCi0jaWYgKChDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKSA+IENGR19NQVhfUkFNX1NJWkUpCisjaWYgKChDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pID4gQ09ORklHX1NZU19NQVhfUkFNX1NJWkUpCiAjIGVycm9yIE1lbW9yeSBNYXAgZG9lcyBub3QgZml0IGludG8gY29uZmlndXJhdGlvbgogI2VuZGlmCiAKQEAgLTIwLDggKzIwLDggQEAKICNlbmRpZgogCiAvKiBNYWtlIHN1cmUgdGhlIHN0cnVjdHVyZSBpcyBwcm9wZXJseSBhbGlnbmVkICovCi0jaWYgKChDRkdfR0JMX0RBVEFfQUREUiAmIC00KSAhPSBDRkdfR0JMX0RBVEFfQUREUikKLSMgZXJyb3IgQ0ZHX0dCTF9EQVRBX0FERFI6IG11c3QgYmUgNCBieXRlIGFsaWduZWQKKyNpZiAoKENPTkZJR19TWVNfR0JMX0RBVEFfQUREUiAmIC00KSAhPSBDT05GSUdfU1lTX0dCTF9EQVRBX0FERFIpCisjIGVycm9yIENPTkZJR19TWVNfR0JMX0RBVEFfQUREUjogbXVzdCBiZSA0IGJ5dGUgYWxpZ25lZAogI2VuZGlmCiAKIC8qIFNldCBkZWZhdWx0IENPTkZJR19WQ09fSFogaWYgbmVlZCBiZSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vYmxhY2tmaW4tY29uZmlnLXByZS5oIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vYmxhY2tmaW4tY29uZmlnLXByZS5oCmluZGV4IGYyYzQ0ZjcuLjU0MWNiNzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL2JsYWNrZmluLWNvbmZpZy1wcmUuaAorKysgYi9pbmNsdWRlL2FzbS1ibGFja2Zpbi9ibGFja2Zpbi1jb25maWctcHJlLmgKQEAgLTE1LDEwICsxNSwxMCBAQAogI2RlZmluZSBBUlJBWV9TSVpFKHgpIChzaXplb2YoeCkgLyBzaXplb2YoKHgpWzBdKSkKIAogLyogQ29uZmlndXJhYmxlIEJsYWNrZmluLXNwZWNpZmljIG1vbml0b3IgY29tbWFuZHMgKi8KLSNkZWZpbmUgQ0ZHX0JGSU5fQ01EX0JPT1RMRFIgICAgIDB4MDEKLSNkZWZpbmUgQ0ZHX0JGSU5fQ01EX0NQTEJJTkZPICAgIDB4MDIKLSNkZWZpbmUgQ0ZHX0JGSU5fQ01EX09UUCAgICAgICAgIDB4MDQKLSNkZWZpbmUgQ0ZHX0JGSU5fQ01EX0NBQ0hFX0RVTVAgIDB4MDgKKyNkZWZpbmUgQ09ORklHX1NZU19CRklOX0NNRF9CT09UTERSICAgICAweDAxCisjZGVmaW5lIENPTkZJR19TWVNfQkZJTl9DTURfQ1BMQklORk8gICAgMHgwMgorI2RlZmluZSBDT05GSUdfU1lTX0JGSU5fQ01EX09UUCAgICAgICAgIDB4MDQKKyNkZWZpbmUgQ09ORklHX1NZU19CRklOX0NNRF9DQUNIRV9EVU1QICAweDA4CiAKIC8qIEJvb3Rtb2RlIGRlZmluZXMgLS0geW91ciBjb25maWcgbmVlZHMgdG8gc2VsZWN0IHRoaXMgdmlhIEJGSU5fQk9PVF9NT0RFLgogICogRGVwZW5kaW5nIG9uIHlvdXIgY3B1LCBzb21lIG9mIHRoZXNlIG1heSBub3QgYmUgdmFsaWQsIGNoZWNrIHlvdXIgSFJNLgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vZ2xvYmFsX2RhdGEuaCBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL2dsb2JhbF9kYXRhLmgKaW5kZXggMmY0MDg3MC4uNWM5OTAzYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vZ2xvYmFsX2RhdGEuaAorKysgYi9pbmNsdWRlL2FzbS1ibGFja2Zpbi9nbG9iYWxfZGF0YS5oCkBAIC0zNSw3ICszNSw3IEBACiAgKiBnbG9iYWwgdmFyaWFibGVzIGR1cmluZyBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gKHVudGlsIHdlIGhhdmUgc2V0CiAgKiB1cCB0aGUgbWVtb3J5IGNvbnRyb2xsZXIgc28gdGhhdCB3ZSBjYW4gdXNlIFJBTSkuCiAgKgotICogS2VlcCBpdCAqU01BTEwqIGFuZCByZW1lbWJlciB0byBzZXQgQ0ZHX0dCTF9EQVRBX1NJWkUgPiBzaXplb2YoZ2RfdCkKKyAqIEtlZXAgaXQgKlNNQUxMKiBhbmQgcmVtZW1iZXIgdG8gc2V0IENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSA+IHNpemVvZihnZF90KQogICovCiB0eXBlZGVmIHN0cnVjdCBnbG9iYWxfZGF0YSB7CiAJYmRfdCAqYmQ7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1pMzg2L2dsb2JhbF9kYXRhLmggYi9pbmNsdWRlL2FzbS1pMzg2L2dsb2JhbF9kYXRhLmgKaW5kZXggY2MzMDY4OS4uM2FiYmYxZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20taTM4Ni9nbG9iYWxfZGF0YS5oCisrKyBiL2luY2x1ZGUvYXNtLWkzODYvZ2xvYmFsX2RhdGEuaApAQCAtMzAsNyArMzAsNyBAQAogICogZ2xvYmFsIHZhcmlhYmxlcyBkdXJpbmcgc3lzdGVtIGluaXRpYWxpemF0aW9uICh1bnRpbCB3ZSBoYXZlIHNldAogICogdXAgdGhlIG1lbW9yeSBjb250cm9sbGVyIHNvIHRoYXQgd2UgY2FuIHVzZSBSQU0pLgogICoKLSAqIEtlZXAgaXQgKlNNQUxMKiBhbmQgcmVtZW1iZXIgdG8gc2V0IENGR19HQkxfREFUQV9TSVpFID4gc2l6ZW9mKGdkX3QpCisgKiBLZWVwIGl0ICpTTUFMTCogYW5kIHJlbWVtYmVyIHRvIHNldCBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgPiBzaXplb2YoZ2RfdCkKICAqLwogCiB0eXBlZGVmCXN0cnVjdCB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1tNjhrL2dsb2JhbF9kYXRhLmggYi9pbmNsdWRlL2FzbS1tNjhrL2dsb2JhbF9kYXRhLmgKaW5kZXggMTg3NjE4ZC4uNDEzYzIwMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbTY4ay9nbG9iYWxfZGF0YS5oCisrKyBiL2luY2x1ZGUvYXNtLW02OGsvZ2xvYmFsX2RhdGEuaApAQCAtMzAsNyArMzAsNyBAQAogICogZ2xvYmFsIHZhcmlhYmxlcyBkdXJpbmcgc3lzdGVtIGluaXRpYWxpemF0aW9uICh1bnRpbCB3ZSBoYXZlIHNldAogICogdXAgdGhlIG1lbW9yeSBjb250cm9sbGVyIHNvIHRoYXQgd2UgY2FuIHVzZSBSQU0pLgogICoKLSAqIEtlZXAgaXQgKlNNQUxMKiBhbmQgcmVtZW1iZXIgdG8gc2V0IENGR19HQkxfREFUQV9TSVpFID4gc2l6ZW9mKGdkX3QpCisgKiBLZWVwIGl0ICpTTUFMTCogYW5kIHJlbWVtYmVyIHRvIHNldCBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgPiBzaXplb2YoZ2RfdCkKICAqLwogCiB0eXBlZGVmCXN0cnVjdAlnbG9iYWxfZGF0YSB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwLmggYi9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwLmgKaW5kZXggYjA4MTRmMS4uY2NkN2MyYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbTY4ay9pbW1hcC5oCisrKyBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXAuaApAQCAtMzAsODQgKzMwLDg0IEBACiAjaW5jbHVkZSA8YXNtL2ltbWFwXzUyMjd4Lmg+CiAjaW5jbHVkZSA8YXNtL201MjI3eC5oPgogCi0jZGVmaW5lIENGR19VQVJUX0JBU0UJCShNTUFQX1VBUlQwICsgKENGR19VQVJUX1BPUlQgKiAweDQwMDApKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ09ORklHX1NZU19VQVJUX1BPUlQgKiAweDQwMDApKQogCi0jZGVmaW5lIENGR19NQ0ZSVENfQkFTRQkJKE1NQVBfUlRDKQorI2RlZmluZSBDT05GSUdfU1lTX01DRlJUQ19CQVNFCQkoTU1BUF9SVEMpCiAKICNpZmRlZiBDT05GSUdfTENECi0jZGVmaW5lCUNGR19MQ0RfQkFTRQkJKE1NQVBfTENEKQorI2RlZmluZQlDT05GSUdfU1lTX0xDRF9CQVNFCQkoTU1BUF9MQ0QpCiAjZW5kaWYKIAogLyogVGltZXIgKi8KICNpZmRlZiBDT05GSUdfTUNGVE1SCi0jZGVmaW5lIENGR19VREVMQVlfQkFTRQkJKE1NQVBfRFRNUjApCi0jZGVmaW5lIENGR19UTVJfQkFTRQkJKE1NQVBfRFRNUjEpCi0jZGVmaW5lIENGR19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ0ZHX0lOVFJfQkFTRSkpLT5pcHJoMCkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTk8JCShJTlQwX0hJX0RUTVIxKQotI2RlZmluZSBDRkdfVE1SSU5UUl9NQVNLCShJTlRDX0lQUkhfSU5UMzMpCi0jZGVmaW5lIENGR19UTVJJTlRSX1BFTkQJKENGR19UTVJJTlRSX01BU0spCi0jZGVmaW5lIENGR19UTVJJTlRSX1BSSQkJKDYpCi0jZGVmaW5lIENGR19USU1FUl9QUkVTQ0FMRVIJKCgoZ2QtPmJ1c19jbGsgLyAxMDAwMDAwKSAtIDEpIDw8IDgpCisjZGVmaW5lIENPTkZJR19TWVNfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUl9CQVNFCQkoTU1BUF9EVE1SMSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ09ORklHX1NZU19JTlRSX0JBU0UpKS0+aXByaDApCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9OTwkJKElOVDBfSElfRFRNUjEpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9NQVNLCShJTlRDX0lQUkhfSU5UMzMpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QRU5ECShDT05GSUdfU1lTX1RNUklOVFJfTUFTSykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX1BSSQkJKDYpCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkgLSAxKSA8PCA4KQogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTUNGUElUCi0jZGVmaW5lIENGR19VREVMQVlfQkFTRQkJKE1NQVBfUElUMCkKLSNkZWZpbmUgQ0ZHX1BJVF9CQVNFCQkoTU1BUF9QSVQxKQotI2RlZmluZSBDRkdfUElUX1BSRVNDQUxFCSg2KQorI2RlZmluZSBDT05GSUdfU1lTX1VERUxBWV9CQVNFCQkoTU1BUF9QSVQwKQorI2RlZmluZSBDT05GSUdfU1lTX1BJVF9CQVNFCQkoTU1BUF9QSVQxKQorI2RlZmluZSBDT05GSUdfU1lTX1BJVF9QUkVTQ0FMRQkoNikKICNlbmRpZgogCi0jZGVmaW5lIENGR19JTlRSX0JBU0UJCShNTUFQX0lOVEMwKQotI2RlZmluZSBDRkdfTlVNX0lSUVMJCSgxMjgpCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUl9CQVNFCQkoTU1BUF9JTlRDMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OVU1fSVJRUwkJKDEyOCkKICNlbmRpZgkJCQkvKiBDT05GSUdfTTUyMjc3ICovCiAKICNpZmRlZiBDT05GSUdfTTUyMzUKICNpbmNsdWRlIDxhc20vaW1tYXBfNTIzNS5oPgogI2luY2x1ZGUgPGFzbS9tNTIzNS5oPgogCi0jZGVmaW5lIENGR19GRUMwX0lPQkFTRQkJKE1NQVBfRkVDKQotI2RlZmluZSBDRkdfVUFSVF9CQVNFCQkoTU1BUF9VQVJUMCArIChDRkdfVUFSVF9QT1JUICogMHg0MCkpCisjZGVmaW5lIENPTkZJR19TWVNfRkVDMF9JT0JBU0UJCShNTUFQX0ZFQykKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX0JBU0UJCShNTUFQX1VBUlQwICsgKENPTkZJR19TWVNfVUFSVF9QT1JUICogMHg0MCkpCiAKIC8qIFRpbWVyICovCiAjaWZkZWYgQ09ORklHX01DRlRNUgotI2RlZmluZSBDRkdfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQotI2RlZmluZSBDRkdfVE1SX0JBU0UJCShNTUFQX0RUTVIzKQotI2RlZmluZSBDRkdfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50MF90ICopKENGR19JTlRSX0JBU0UpKS0+aXBybDApCi0jZGVmaW5lIENGR19UTVJJTlRSX05PCQkoSU5UMF9MT19EVE1SMykKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTUFTSwkoSU5UQ19JUFJMX0lOVDIyKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QRU5ECShDRkdfVE1SSU5UUl9NQVNLKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QUkkJCSgweDFFKQkJLyogTGV2ZWwgbXVzdCBpbmNsdWRlIGlub3JkZXIgdG8gd29yayAqLwotI2RlZmluZSBDRkdfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkgLSAxKSA8PCA4KQorI2RlZmluZSBDT05GSUdfU1lTX1VERUxBWV9CQVNFCQkoTU1BUF9EVE1SMCkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJfQkFTRQkJKE1NQVBfRFRNUjMpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50MF90ICopKENPTkZJR19TWVNfSU5UUl9CQVNFKSktPmlwcmwwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTk8JCShJTlQwX0xPX0RUTVIzKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTUFTSwkoSU5UQ19JUFJMX0lOVDIyKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfUEVORAkoQ09ORklHX1NZU19UTVJJTlRSX01BU0spCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QUkkJCSgweDFFKQkJLyogTGV2ZWwgbXVzdCBpbmNsdWRlIGlub3JkZXIgdG8gd29yayAqLworI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSX1BSRVNDQUxFUgkoKChnZC0+YnVzX2NsayAvIDEwMDAwMDApIC0gMSkgPDwgOCkKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX01DRlBJVAotI2RlZmluZSBDRkdfVURFTEFZX0JBU0UJCShNTUFQX1BJVDApCi0jZGVmaW5lIENGR19QSVRfQkFTRQkJKE1NQVBfUElUMSkKLSNkZWZpbmUgQ0ZHX1BJVF9QUkVTQ0FMRQkoNikKKyNkZWZpbmUgQ09ORklHX1NZU19VREVMQVlfQkFTRQkJKE1NQVBfUElUMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVRfQkFTRQkJKE1NQVBfUElUMSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVRfUFJFU0NBTEUJKDYpCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSU5UUl9CQVNFCQkoTU1BUF9JTlRDMCkKLSNkZWZpbmUgQ0ZHX05VTV9JUlFTCQkoMTI4KQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJfQkFTRQkJKE1NQVBfSU5UQzApCisjZGVmaW5lIENPTkZJR19TWVNfTlVNX0lSUVMJCSgxMjgpCiAjZW5kaWYJCQkJLyogQ09ORklHX001MjM1ICovCiAKICNpZmRlZiBDT05GSUdfTTUyNDkKICNpbmNsdWRlIDxhc20vaW1tYXBfNTI0OS5oPgogI2luY2x1ZGUgPGFzbS9tNTI0OS5oPgogCi0jZGVmaW5lIENGR19VQVJUX0JBU0UJCShNTUFQX1VBUlQwICsgKENGR19VQVJUX1BPUlQgKiAweDQwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX0JBU0UJCShNTUFQX1VBUlQwICsgKENPTkZJR19TWVNfVUFSVF9QT1JUICogMHg0MCkpCiAKLSNkZWZpbmUgQ0ZHX0lOVFJfQkFTRQkJKE1NQVBfSU5UQykKLSNkZWZpbmUgQ0ZHX05VTV9JUlFTCQkoNjQpCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUl9CQVNFCQkoTU1BUF9JTlRDKQorI2RlZmluZSBDT05GSUdfU1lTX05VTV9JUlFTCQkoNjQpCiAKIC8qIFRpbWVyICovCiAjaWZkZWYgQ09ORklHX01DRlRNUgotI2RlZmluZSBDRkdfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQotI2RlZmluZSBDRkdfVE1SX0JBU0UJCShNTUFQX0RUTVIxKQotI2RlZmluZSBDRkdfVE1SUE5EX1JFRwkJKG1iYXJfcmVhZExvbmcoTUNGU0lNX0lQUikpCi0jZGVmaW5lIENGR19UTVJJTlRSX05PCQkoMzEpCi0jZGVmaW5lIENGR19UTVJJTlRSX01BU0sJKDB4MDAwMDA0MDApCi0jZGVmaW5lIENGR19UTVJJTlRSX1BFTkQJKENGR19UTVJJTlRSX01BU0spCi0jZGVmaW5lIENGR19UTVJJTlRSX1BSSQkJKE1DRlNJTV9JQ1JfQVVUT1ZFQyB8IE1DRlNJTV9JQ1JfTEVWRUw3IHwgTUNGU0lNX0lDUl9QUkkzKQotI2RlZmluZSBDRkdfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMjAwMDAwMCkgLSAxKSA8PCA4KQorI2RlZmluZSBDT05GSUdfU1lTX1VERUxBWV9CQVNFCQkoTU1BUF9EVE1SMCkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJfQkFTRQkJKE1NQVBfRFRNUjEpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SUE5EX1JFRwkJKG1iYXJfcmVhZExvbmcoTUNGU0lNX0lQUikpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9OTwkJKDMxKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTUFTSwkoMHgwMDAwMDQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX1BFTkQJKENPTkZJR19TWVNfVE1SSU5UUl9NQVNLKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfUFJJCQkoTUNGU0lNX0lDUl9BVVRPVkVDIHwgTUNGU0lNX0lDUl9MRVZFTDcgfCBNQ0ZTSU1fSUNSX1BSSTMpCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMjAwMDAwMCkgLSAxKSA8PCA4KQogI2VuZGlmCiAjZW5kaWYJCQkJLyogQ09ORklHX001MjQ5ICovCiAKQEAgLTExNiwyMSArMTE2LDIxIEBACiAjaW5jbHVkZSA8YXNtL201MjQ5Lmg+CiAjaW5jbHVkZSA8YXNtL201MjUzLmg+CiAKLSNkZWZpbmUgQ0ZHX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ0ZHX1VBUlRfUE9SVCAqIDB4NDApKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ09ORklHX1NZU19VQVJUX1BPUlQgKiAweDQwKSkKIAotI2RlZmluZSBDRkdfSU5UUl9CQVNFCQkoTU1BUF9JTlRDKQotI2RlZmluZSBDRkdfTlVNX0lSUVMJCSg2NCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSX0JBU0UJCShNTUFQX0lOVEMpCisjZGVmaW5lIENPTkZJR19TWVNfTlVNX0lSUVMJCSg2NCkKIAogLyogVGltZXIgKi8KICNpZmRlZiBDT05GSUdfTUNGVE1SCi0jZGVmaW5lIENGR19VREVMQVlfQkFTRQkJKE1NQVBfRFRNUjApCi0jZGVmaW5lIENGR19UTVJfQkFTRQkJKE1NQVBfRFRNUjEpCi0jZGVmaW5lIENGR19UTVJQTkRfUkVHCQkobWJhcl9yZWFkTG9uZyhNQ0ZTSU1fSVBSKSkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTk8JCSgyNykKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTUFTSwkoMHgwMDAwMDQwMCkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfUEVORAkoQ0ZHX1RNUklOVFJfTUFTSykKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfUFJJCQkoTUNGU0lNX0lDUl9BVVRPVkVDIHwgTUNGU0lNX0lDUl9MRVZFTDMgfCBNQ0ZTSU1fSUNSX1BSSTMpCi0jZGVmaW5lIENGR19USU1FUl9QUkVTQ0FMRVIJKCgoZ2QtPmJ1c19jbGsgLyAyMDAwMDAwKSAtIDEpIDw8IDgpCisjZGVmaW5lIENPTkZJR19TWVNfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUl9CQVNFCQkoTU1BUF9EVE1SMSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJQTkRfUkVHCQkobWJhcl9yZWFkTG9uZyhNQ0ZTSU1fSVBSKSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX05PCQkoMjcpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9NQVNLCSgweDAwMDAwNDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfUEVORAkoQ09ORklHX1NZU19UTVJJTlRSX01BU0spCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QUkkJCShNQ0ZTSU1fSUNSX0FVVE9WRUMgfCBNQ0ZTSU1fSUNSX0xFVkVMMyB8IE1DRlNJTV9JQ1JfUFJJMykKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUl9QUkVTQ0FMRVIJKCgoZ2QtPmJ1c19jbGsgLyAyMDAwMDAwKSAtIDEpIDw8IDgpCiAjZW5kaWYKICNlbmRpZgkJCQkvKiBDT05GSUdfTTUyNTMgKi8KIApAQCAtMTM4LDQ1ICsxMzgsNDUgQEAKICNpbmNsdWRlIDxhc20vaW1tYXBfNTI3MS5oPgogI2luY2x1ZGUgPGFzbS9tNTI3MS5oPgogCi0jZGVmaW5lIENGR19GRUMwX0lPQkFTRQkJKE1NQVBfRkVDKQotI2RlZmluZSBDRkdfVUFSVF9CQVNFCQkoTU1BUF9VQVJUMCArIChDRkdfVUFSVF9QT1JUICogMHg0MCkpCisjZGVmaW5lIENPTkZJR19TWVNfRkVDMF9JT0JBU0UJCShNTUFQX0ZFQykKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX0JBU0UJCShNTUFQX1VBUlQwICsgKENPTkZJR19TWVNfVUFSVF9QT1JUICogMHg0MCkpCiAKIC8qIFRpbWVyICovCiAjaWZkZWYgQ09ORklHX01DRlRNUgotI2RlZmluZSBDRkdfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQotI2RlZmluZSBDRkdfVE1SX0JBU0UJCShNTUFQX0RUTVIzKQotI2RlZmluZSBDRkdfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50MF90ICopKENGR19JTlRSX0JBU0UpKS0+aXBybDApCi0jZGVmaW5lIENGR19UTVJJTlRSX05PCQkoSU5UMF9MT19EVE1SMykKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTUFTSwkoSU5UQ19JUFJMX0lOVDIyKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QRU5ECShDRkdfVE1SSU5UUl9NQVNLKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QUkkJCSgwKQkJLyogTGV2ZWwgbXVzdCBpbmNsdWRlIGlub3JkZXIgdG8gd29yayAqLwotI2RlZmluZSBDRkdfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkgLSAxKSA8PCA4KQorI2RlZmluZSBDT05GSUdfU1lTX1VERUxBWV9CQVNFCQkoTU1BUF9EVE1SMCkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJfQkFTRQkJKE1NQVBfRFRNUjMpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50MF90ICopKENPTkZJR19TWVNfSU5UUl9CQVNFKSktPmlwcmwwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTk8JCShJTlQwX0xPX0RUTVIzKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTUFTSwkoSU5UQ19JUFJMX0lOVDIyKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfUEVORAkoQ09ORklHX1NZU19UTVJJTlRSX01BU0spCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QUkkJCSgwKQkJLyogTGV2ZWwgbXVzdCBpbmNsdWRlIGlub3JkZXIgdG8gd29yayAqLworI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSX1BSRVNDQUxFUgkoKChnZC0+YnVzX2NsayAvIDEwMDAwMDApIC0gMSkgPDwgOCkKICNlbmRpZgogCi0jZGVmaW5lIENGR19JTlRSX0JBU0UJCShNTUFQX0lOVEMwKQotI2RlZmluZSBDRkdfTlVNX0lSUVMJCSgxMjgpCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUl9CQVNFCQkoTU1BUF9JTlRDMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OVU1fSVJRUwkJKDEyOCkKICNlbmRpZgkJCQkvKiBDT05GSUdfTTUyNzEgKi8KIAogI2lmZGVmIENPTkZJR19NNTI3MgogI2luY2x1ZGUgPGFzbS9pbW1hcF81MjcyLmg+CiAjaW5jbHVkZSA8YXNtL201MjcyLmg+CiAKLSNkZWZpbmUgQ0ZHX0ZFQzBfSU9CQVNFCQkoTU1BUF9GRUMpCi0jZGVmaW5lIENGR19VQVJUX0JBU0UJCShNTUFQX1VBUlQwICsgKENGR19VQVJUX1BPUlQgKiAweDQwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19GRUMwX0lPQkFTRQkJKE1NQVBfRkVDKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ09ORklHX1NZU19VQVJUX1BPUlQgKiAweDQwKSkKIAotI2RlZmluZSBDRkdfSU5UUl9CQVNFCQkoTU1BUF9JTlRDKQotI2RlZmluZSBDRkdfTlVNX0lSUVMJCSg2NCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSX0JBU0UJCShNTUFQX0lOVEMpCisjZGVmaW5lIENPTkZJR19TWVNfTlVNX0lSUVMJCSg2NCkKIAogLyogVGltZXIgKi8KICNpZmRlZiBDT05GSUdfTUNGVE1SCi0jZGVmaW5lIENGR19VREVMQVlfQkFTRQkJKE1NQVBfVE1SMCkKLSNkZWZpbmUgQ0ZHX1RNUl9CQVNFCQkoTU1BUF9UTVIzKQotI2RlZmluZSBDRkdfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50Y3RybF90ICopKENGR19JTlRSX0JBU0UpKS0+aW50X2lzcikKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTk8JCShJTlRfVE1SMykKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTUFTSwkoSU5UX0lTUl9JTlQyNCkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfUEVORAkoMCkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfUFJJCQkoSU5UX0lDUjFfVE1SM1BJIHwgSU5UX0lDUjFfVE1SM0lQTCg1KSkKLSNkZWZpbmUgQ0ZHX1RJTUVSX1BSRVNDQUxFUgkoKChnZC0+YnVzX2NsayAvIDEwMDAwMDApIC0gMSkgPDwgOCkKKyNkZWZpbmUgQ09ORklHX1NZU19VREVMQVlfQkFTRQkJKE1NQVBfVE1SMCkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJfQkFTRQkJKE1NQVBfVE1SMykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnRjdHJsX3QgKikoQ09ORklHX1NZU19JTlRSX0JBU0UpKS0+aW50X2lzcikKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX05PCQkoSU5UX1RNUjMpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9NQVNLCShJTlRfSVNSX0lOVDI0KQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfUEVORAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX1BSSQkJKElOVF9JQ1IxX1RNUjNQSSB8IElOVF9JQ1IxX1RNUjNJUEwoNSkpCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkgLSAxKSA8PCA4KQogI2VuZGlmCiAjZW5kaWYJCQkJLyogQ09ORklHX001MjcyICovCiAKQEAgLTE4NCwyMyArMTg0LDIzIEBACiAjaW5jbHVkZSA8YXNtL2ltbWFwXzUyNzUuaD4KICNpbmNsdWRlIDxhc20vbTUyNzUuaD4KIAotI2RlZmluZSBDRkdfRkVDMF9JT0JBU0UJCShNTUFQX0ZFQzApCi0jZGVmaW5lIENGR19GRUMxX0lPQkFTRQkJKE1NQVBfRkVDMSkKLSNkZWZpbmUgQ0ZHX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ0ZHX1VBUlRfUE9SVCAqIDB4NDApKQorI2RlZmluZSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCQkoTU1BUF9GRUMwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZFQzFfSU9CQVNFCQkoTU1BUF9GRUMxKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ09ORklHX1NZU19VQVJUX1BPUlQgKiAweDQwKSkKIAotI2RlZmluZSBDRkdfSU5UUl9CQVNFCQkoTU1BUF9JTlRDMCkKLSNkZWZpbmUgQ0ZHX05VTV9JUlFTCQkoMTkyKQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJfQkFTRQkJKE1NQVBfSU5UQzApCisjZGVmaW5lIENPTkZJR19TWVNfTlVNX0lSUVMJCSgxOTIpCiAKIC8qIFRpbWVyICovCiAjaWZkZWYgQ09ORklHX01DRlRNUgotI2RlZmluZSBDRkdfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQotI2RlZmluZSBDRkdfVE1SX0JBU0UJCShNTUFQX0RUTVIzKQotI2RlZmluZSBDRkdfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50MF90ICopKENGR19JTlRSX0JBU0UpKS0+aXBybDApCi0jZGVmaW5lIENGR19UTVJJTlRSX05PCQkoSU5UMF9MT19EVE1SMykKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTUFTSwkoSU5UQ19JUFJMX0lOVDIyKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QRU5ECShDRkdfVE1SSU5UUl9NQVNLKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QUkkJCSgweDFFKQotI2RlZmluZSBDRkdfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkgLSAxKSA8PCA4KQorI2RlZmluZSBDT05GSUdfU1lTX1VERUxBWV9CQVNFCQkoTU1BUF9EVE1SMCkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJfQkFTRQkJKE1NQVBfRFRNUjMpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50MF90ICopKENPTkZJR19TWVNfSU5UUl9CQVNFKSktPmlwcmwwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTk8JCShJTlQwX0xPX0RUTVIzKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTUFTSwkoSU5UQ19JUFJMX0lOVDIyKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfUEVORAkoQ09ORklHX1NZU19UTVJJTlRSX01BU0spCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QUkkJCSgweDFFKQorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSX1BSRVNDQUxFUgkoKChnZC0+YnVzX2NsayAvIDEwMDAwMDApIC0gMSkgPDwgOCkKICNlbmRpZgogI2VuZGlmCQkJCS8qIENPTkZJR19NNTI3NSAqLwogCkBAIC0yMDgsMjIgKzIwOCwyMiBAQAogI2luY2x1ZGUgPGFzbS9pbW1hcF81MjgyLmg+CiAjaW5jbHVkZSA8YXNtL201MjgyLmg+CiAKLSNkZWZpbmUgQ0ZHX0ZFQzBfSU9CQVNFCQkoTU1BUF9GRUMpCi0jZGVmaW5lIENGR19VQVJUX0JBU0UJCShNTUFQX1VBUlQwICsgKENGR19VQVJUX1BPUlQgKiAweDQwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19GRUMwX0lPQkFTRQkJKE1NQVBfRkVDKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ09ORklHX1NZU19VQVJUX1BPUlQgKiAweDQwKSkKIAotI2RlZmluZSBDRkdfSU5UUl9CQVNFCQkoTU1BUF9JTlRDMCkKLSNkZWZpbmUgQ0ZHX05VTV9JUlFTCQkoMTI4KQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJfQkFTRQkJKE1NQVBfSU5UQzApCisjZGVmaW5lIENPTkZJR19TWVNfTlVNX0lSUVMJCSgxMjgpCiAKIC8qIFRpbWVyICovCiAjaWZkZWYgQ09ORklHX01DRlRNUgotI2RlZmluZSBDRkdfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQotI2RlZmluZSBDRkdfVE1SX0JBU0UJCShNTUFQX0RUTVIzKQotI2RlZmluZSBDRkdfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50MF90ICopKENGR19JTlRSX0JBU0UpKS0+aXBybDApCi0jZGVmaW5lIENGR19UTVJJTlRSX05PCQkoSU5UMF9MT19EVE1SMykKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTUFTSwkoMSA8PCBJTlQwX0xPX0RUTVIzKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QRU5ECShDRkdfVE1SSU5UUl9NQVNLKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QUkkJCSgweDFFKQkJLyogTGV2ZWwgbXVzdCBpbmNsdWRlIGlub3JkZXIgdG8gd29yayAqLwotI2RlZmluZSBDRkdfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkgLSAxKSA8PCA4KQorI2RlZmluZSBDT05GSUdfU1lTX1VERUxBWV9CQVNFCQkoTU1BUF9EVE1SMCkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJfQkFTRQkJKE1NQVBfRFRNUjMpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50MF90ICopKENPTkZJR19TWVNfSU5UUl9CQVNFKSktPmlwcmwwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTk8JCShJTlQwX0xPX0RUTVIzKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTUFTSwkoMSA8PCBJTlQwX0xPX0RUTVIzKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfUEVORAkoQ09ORklHX1NZU19UTVJJTlRSX01BU0spCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QUkkJCSgweDFFKQkJLyogTGV2ZWwgbXVzdCBpbmNsdWRlIGlub3JkZXIgdG8gd29yayAqLworI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSX1BSRVNDQUxFUgkoKChnZC0+YnVzX2NsayAvIDEwMDAwMDApIC0gMSkgPDwgOCkKICNlbmRpZgogI2VuZGlmCQkJCS8qIENPTkZJR19NNTI4MiAqLwogCkBAIC0yMzEsNzEgKzIzMSw3MSBAQAogI2luY2x1ZGUgPGFzbS9pbW1hcF81MzI5Lmg+CiAjaW5jbHVkZSA8YXNtL201MzI5Lmg+CiAKLSNkZWZpbmUgQ0ZHX0ZFQzBfSU9CQVNFCQkoTU1BUF9GRUMpCi0jZGVmaW5lIENGR19VQVJUX0JBU0UJCShNTUFQX1VBUlQwICsgKENGR19VQVJUX1BPUlQgKiAweDQwMDApKQotI2RlZmluZSBDRkdfTUNGUlRDX0JBU0UJCShNTUFQX1JUQykKKyNkZWZpbmUgQ09ORklHX1NZU19GRUMwX0lPQkFTRQkJKE1NQVBfRkVDKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ09ORklHX1NZU19VQVJUX1BPUlQgKiAweDQwMDApKQorI2RlZmluZSBDT05GSUdfU1lTX01DRlJUQ19CQVNFCQkoTU1BUF9SVEMpCiAKIC8qIFRpbWVyICovCiAjaWZkZWYgQ09ORklHX01DRlRNUgotI2RlZmluZSBDRkdfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQotI2RlZmluZSBDRkdfVE1SX0JBU0UJCShNTUFQX0RUTVIxKQotI2RlZmluZSBDRkdfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50MF90ICopKENGR19JTlRSX0JBU0UpKS0+aXByaDApCi0jZGVmaW5lIENGR19UTVJJTlRSX05PCQkoSU5UMF9ISV9EVE1SMSkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTUFTSwkoSU5UQ19JUFJIX0lOVDMzKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QRU5ECShDRkdfVE1SSU5UUl9NQVNLKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QUkkJCSg2KQotI2RlZmluZSBDRkdfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkgLSAxKSA8PCA4KQorI2RlZmluZSBDT05GSUdfU1lTX1VERUxBWV9CQVNFCQkoTU1BUF9EVE1SMCkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJfQkFTRQkJKE1NQVBfRFRNUjEpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50MF90ICopKENPTkZJR19TWVNfSU5UUl9CQVNFKSktPmlwcmgwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTk8JCShJTlQwX0hJX0RUTVIxKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTUFTSwkoSU5UQ19JUFJIX0lOVDMzKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfUEVORAkoQ09ORklHX1NZU19UTVJJTlRSX01BU0spCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QUkkJCSg2KQorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSX1BSRVNDQUxFUgkoKChnZC0+YnVzX2NsayAvIDEwMDAwMDApIC0gMSkgPDwgOCkKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX01DRlBJVAotI2RlZmluZSBDRkdfVURFTEFZX0JBU0UJCShNTUFQX1BJVDApCi0jZGVmaW5lIENGR19QSVRfQkFTRQkJKE1NQVBfUElUMSkKLSNkZWZpbmUgQ0ZHX1BJVF9QUkVTQ0FMRQkoNikKKyNkZWZpbmUgQ09ORklHX1NZU19VREVMQVlfQkFTRQkJKE1NQVBfUElUMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVRfQkFTRQkJKE1NQVBfUElUMSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVRfUFJFU0NBTEUJKDYpCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSU5UUl9CQVNFCQkoTU1BUF9JTlRDMCkKLSNkZWZpbmUgQ0ZHX05VTV9JUlFTCQkoMTI4KQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJfQkFTRQkJKE1NQVBfSU5UQzApCisjZGVmaW5lIENPTkZJR19TWVNfTlVNX0lSUVMJCSgxMjgpCiAjZW5kaWYJCQkJLyogQ09ORklHX001MzI5ICYmIENPTkZJR19NNTM3MyAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfTTU0NDUxKSB8fCBkZWZpbmVkKENPTkZJR19NNTQ0NTUpCiAjaW5jbHVkZSA8YXNtL2ltbWFwXzU0NDV4Lmg+CiAjaW5jbHVkZSA8YXNtL201NDQ1eC5oPgogCi0jZGVmaW5lIENGR19GRUMwX0lPQkFTRQkJKE1NQVBfRkVDMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GRUMwX0lPQkFTRQkJKE1NQVBfRkVDMCkKICNpZiBkZWZpbmVkKENPTkZJR19NNTQ0NTVFVkIpCi0jZGVmaW5lIENGR19GRUMxX0lPQkFTRQkJKE1NQVBfRkVDMSkKKyNkZWZpbmUgQ09ORklHX1NZU19GRUMxX0lPQkFTRQkJKE1NQVBfRkVDMSkKICNlbmRpZgogCi0jZGVmaW5lIENGR19VQVJUX0JBU0UJCShNTUFQX1VBUlQwICsgKENGR19VQVJUX1BPUlQgKiAweDQwMDApKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ09ORklHX1NZU19VQVJUX1BPUlQgKiAweDQwMDApKQogCi0jZGVmaW5lIENGR19NQ0ZSVENfQkFTRQkJKE1NQVBfUlRDKQorI2RlZmluZSBDT05GSUdfU1lTX01DRlJUQ19CQVNFCQkoTU1BUF9SVEMpCiAKIC8qIFRpbWVyICovCiAjaWZkZWYgQ09ORklHX01DRlRNUgotI2RlZmluZSBDRkdfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQotI2RlZmluZSBDRkdfVE1SX0JBU0UJCShNTUFQX0RUTVIxKQotI2RlZmluZSBDRkdfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50MF90ICopKENGR19JTlRSX0JBU0UpKS0+aXByaDApCi0jZGVmaW5lIENGR19UTVJJTlRSX05PCQkoSU5UMF9ISV9EVE1SMSkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTUFTSwkoSU5UQ19JUFJIX0lOVDMzKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QRU5ECShDRkdfVE1SSU5UUl9NQVNLKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QUkkJCSg2KQotI2RlZmluZSBDRkdfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkgLSAxKSA8PCA4KQorI2RlZmluZSBDT05GSUdfU1lTX1VERUxBWV9CQVNFCQkoTU1BUF9EVE1SMCkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJfQkFTRQkJKE1NQVBfRFRNUjEpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50MF90ICopKENPTkZJR19TWVNfSU5UUl9CQVNFKSktPmlwcmgwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTk8JCShJTlQwX0hJX0RUTVIxKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTUFTSwkoSU5UQ19JUFJIX0lOVDMzKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfUEVORAkoQ09ORklHX1NZU19UTVJJTlRSX01BU0spCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QUkkJCSg2KQorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSX1BSRVNDQUxFUgkoKChnZC0+YnVzX2NsayAvIDEwMDAwMDApIC0gMSkgPDwgOCkKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX01DRlBJVAotI2RlZmluZSBDRkdfVURFTEFZX0JBU0UJCShNTUFQX1BJVDApCi0jZGVmaW5lIENGR19QSVRfQkFTRQkJKE1NQVBfUElUMSkKLSNkZWZpbmUgQ0ZHX1BJVF9QUkVTQ0FMRQkoNikKKyNkZWZpbmUgQ09ORklHX1NZU19VREVMQVlfQkFTRQkJKE1NQVBfUElUMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVRfQkFTRQkJKE1NQVBfUElUMSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVRfUFJFU0NBTEUJKDYpCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSU5UUl9CQVNFCQkoTU1BUF9JTlRDMCkKLSNkZWZpbmUgQ0ZHX05VTV9JUlFTCQkoMTI4KQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJfQkFTRQkJKE1NQVBfSU5UQzApCisjZGVmaW5lIENPTkZJR19TWVNfTlVNX0lSUVMJCSgxMjgpCiAKICNpZmRlZiBDT05GSUdfUENJCi0jZGVmaW5lIENGR19QQ0lfQkFSMAkJKENGR19NQkFSKQotI2RlZmluZSBDRkdfUENJX0JBUjUJCShDRkdfU0RSQU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSV9UQkFUUjAJCShDRkdfTUJBUikKLSNkZWZpbmUgQ0ZHX1BDSV9UQkFUUjUJCShDRkdfU0RSQU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFSMAkJKENPTkZJR19TWVNfTUJBUikKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFSNQkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEJBVFIwCQkoQ09ORklHX1NZU19NQkFSKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQkFUUjUJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UpCiAjZW5kaWYKICNlbmRpZgkJCQkvKiBDT05GSUdfTTU0NDUxIHx8IENPTkZJR19NNTQ0NTUgKi8KIApAQCAtMzA0LDggKzMwNCw4IEBACiAjaW5jbHVkZSA8YXNtL201NDd4Xzh4Lmg+CiAKICNpZmRlZiBDT05GSUdfRlNMRE1BRkVDCi0jZGVmaW5lIENGR19GRUMwX0lPQkFTRQkJKE1NQVBfRkVDMCkKLSNkZWZpbmUgQ0ZHX0ZFQzFfSU9CQVNFCQkoTU1BUF9GRUMxKQorI2RlZmluZSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCQkoTU1BUF9GRUMwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZFQzFfSU9CQVNFCQkoTU1BUF9GRUMxKQogCiAjZGVmaW5lIEZFQzBfUlhfVEFTSwkJMAogI2RlZmluZSBGRUMwX1RYX1RBU0sJCTEKQEAgLTMyMSwyNyArMzIxLDI3IEBACiAjZGVmaW5lIEZFQzFfVFhfSU5JVAkJMzEKICNlbmRpZgogCi0jZGVmaW5lIENGR19VQVJUX0JBU0UJCShNTUFQX1VBUlQwICsgKENGR19VQVJUX1BPUlQgKiAweDEwMCkpCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9CQVNFCQkoTU1BUF9VQVJUMCArIChDT05GSUdfU1lTX1VBUlRfUE9SVCAqIDB4MTAwKSkKIAogI2lmZGVmIENPTkZJR19TTFRUTVIKLSNkZWZpbmUgQ0ZHX1VERUxBWV9CQVNFCQkoTU1BUF9TTFQxKQotI2RlZmluZSBDRkdfVE1SX0JBU0UJCShNTUFQX1NMVDApCi0jZGVmaW5lIENGR19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ0ZHX0lOVFJfQkFTRSkpLT5pcHJoMCkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTk8JCShJTlQwX0hJX1NMVDApCi0jZGVmaW5lIENGR19UTVJJTlRSX01BU0sJKElOVENfSVBSSF9JTlQ1NCkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfUEVORAkoQ0ZHX1RNUklOVFJfTUFTSykKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfUFJJCQkoMHgxRSkKLSNkZWZpbmUgQ0ZHX1RJTUVSX1BSRVNDQUxFUgkoZ2QtPmJ1c19jbGsgLyAxMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1VERUxBWV9CQVNFCQkoTU1BUF9TTFQxKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUl9CQVNFCQkoTU1BUF9TTFQwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUlBORF9SRUcJCSgoKHZvbGF0aWxlIGludDBfdCAqKShDT05GSUdfU1lTX0lOVFJfQkFTRSkpLT5pcHJoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX05PCQkoSU5UMF9ISV9TTFQwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTUFTSwkoSU5UQ19JUFJIX0lOVDU0KQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfUEVORAkoQ09ORklHX1NZU19UTVJJTlRSX01BU0spCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QUkkJCSgweDFFKQorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSX1BSRVNDQUxFUgkoZ2QtPmJ1c19jbGsgLyAxMDAwMDAwKQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0lOVFJfQkFTRQkJKE1NQVBfSU5UQzApCi0jZGVmaW5lIENGR19OVU1fSVJRUwkJKDEyOCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSX0JBU0UJCShNTUFQX0lOVEMwKQorI2RlZmluZSBDT05GSUdfU1lTX05VTV9JUlFTCQkoMTI4KQogCiAjaWZkZWYgQ09ORklHX1BDSQotI2RlZmluZSBDRkdfUENJX0JBUjAJCSgweDQwMDAwMDAwKQotI2RlZmluZSBDRkdfUENJX0JBUjEJCShDRkdfU0RSQU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSV9UQkFUUjAJCShDRkdfTUJBUikKLSNkZWZpbmUgQ0ZHX1BDSV9UQkFUUjEJCShDRkdfU0RSQU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFSMAkJKDB4NDAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBUjEJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RCQVRSMAkJKENPTkZJR19TWVNfTUJBUikKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEJBVFIxCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFKQogI2VuZGlmCiAjZW5kaWYJCQkJLyogQ09ORklHX001NDd4ICovCiAKQEAgLTM1MCw4ICszNTAsOCBAQAogI2luY2x1ZGUgPGFzbS9tNTQ3eF84eC5oPgogCiAjaWZkZWYgQ09ORklHX0ZTTERNQUZFQwotI2RlZmluZSBDRkdfRkVDMF9JT0JBU0UJCShNTUFQX0ZFQzApCi0jZGVmaW5lIENGR19GRUMxX0lPQkFTRQkJKE1NQVBfRkVDMSkKKyNkZWZpbmUgQ09ORklHX1NZU19GRUMwX0lPQkFTRQkJKE1NQVBfRkVDMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GRUMxX0lPQkFTRQkJKE1NQVBfRkVDMSkKIAogI2RlZmluZSBGRUMwX1JYX1RBU0sJCTAKICNkZWZpbmUgRkVDMF9UWF9UQVNLCQkxCkBAIC0zNjcsMjggKzM2NywyOCBAQAogI2RlZmluZSBGRUMxX1RYX0lOSVQJCTMxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfVUFSVF9CQVNFCQkoTU1BUF9VQVJUMCArIChDRkdfVUFSVF9QT1JUICogMHgxMDApKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ09ORklHX1NZU19VQVJUX1BPUlQgKiAweDEwMCkpCiAKIC8qIFRpbWVyICovCiAjaWZkZWYgQ09ORklHX1NMVFRNUgotI2RlZmluZSBDRkdfVURFTEFZX0JBU0UJCShNTUFQX1NMVDEpCi0jZGVmaW5lIENGR19UTVJfQkFTRQkJKE1NQVBfU0xUMCkKLSNkZWZpbmUgQ0ZHX1RNUlBORF9SRUcJCSgoKHZvbGF0aWxlIGludDBfdCAqKShDRkdfSU5UUl9CQVNFKSktPmlwcmgwKQotI2RlZmluZSBDRkdfVE1SSU5UUl9OTwkJKElOVDBfSElfU0xUMCkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTUFTSwkoSU5UQ19JUFJIX0lOVDU0KQotI2RlZmluZSBDRkdfVE1SSU5UUl9QRU5ECShDRkdfVE1SSU5UUl9NQVNLKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QUkkJCSgweDFFKQotI2RlZmluZSBDRkdfVElNRVJfUFJFU0NBTEVSCShnZC0+YnVzX2NsayAvIDEwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfVURFTEFZX0JBU0UJCShNTUFQX1NMVDEpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SX0JBU0UJCShNTUFQX1NMVDApCisjZGVmaW5lIENPTkZJR19TWVNfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50MF90ICopKENPTkZJR19TWVNfSU5UUl9CQVNFKSktPmlwcmgwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTk8JCShJTlQwX0hJX1NMVDApCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9NQVNLCShJTlRDX0lQUkhfSU5UNTQpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QRU5ECShDT05GSUdfU1lTX1RNUklOVFJfTUFTSykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX1BSSQkJKDB4MUUpCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSCShnZC0+YnVzX2NsayAvIDEwMDAwMDApCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSU5UUl9CQVNFCQkoTU1BUF9JTlRDMCkKLSNkZWZpbmUgQ0ZHX05VTV9JUlFTCQkoMTI4KQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJfQkFTRQkJKE1NQVBfSU5UQzApCisjZGVmaW5lIENPTkZJR19TWVNfTlVNX0lSUVMJCSgxMjgpCiAKICNpZmRlZiBDT05GSUdfUENJCi0jZGVmaW5lIENGR19QQ0lfQkFSMAkJKENGR19NQkFSKQotI2RlZmluZSBDRkdfUENJX0JBUjEJCShDRkdfU0RSQU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSV9UQkFUUjAJCShDRkdfTUJBUikKLSNkZWZpbmUgQ0ZHX1BDSV9UQkFUUjEJCShDRkdfU0RSQU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFSMAkJKENPTkZJR19TWVNfTUJBUikKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFSMQkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEJBVFIwCQkoQ09ORklHX1NZU19NQkFSKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQkFUUjEJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UpCiAjZW5kaWYKICNlbmRpZgkJCQkvKiBDT05GSUdfTTU0OHggKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjI3eC5oIGIvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjI3eC5oCmluZGV4IDFkMWU2ZjEuLjgzZGEzZDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTIyN3guaAorKysgYi9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzUyMjd4LmgKQEAgLTI3LDQ0ICsyNyw0NCBAQAogI2RlZmluZSBfX0lNTUFQXzUyMjdYX18KIAogLyogTW9kdWxlIEJhc2UgQWRkcmVzc2VzICovCi0jZGVmaW5lIE1NQVBfU0NNMQkoQ0ZHX01CQVIgKyAweDAwMDAwMDAwKQotI2RlZmluZSBNTUFQX1hCUwkoQ0ZHX01CQVIgKyAweDAwMDA0MDAwKQotI2RlZmluZSBNTUFQX0ZCQ1MJKENGR19NQkFSICsgMHgwMDAwODAwMCkKLSNkZWZpbmUgTU1BUF9DQU4JKENGR19NQkFSICsgMHgwMDAyMDAwMCkKLSNkZWZpbmUgTU1BUF9SVEMJKENGR19NQkFSICsgMHgwMDAzQzAwMCkKLSNkZWZpbmUgTU1BUF9TQ00yCShDRkdfTUJBUiArIDB4MDAwNDAwMTApCi0jZGVmaW5lIE1NQVBfU0NNMwkoQ0ZHX01CQVIgKyAweDAwMDQwMDcwKQotI2RlZmluZSBNTUFQX0VETUEJKENGR19NQkFSICsgMHgwMDA0NDAwMCkKLSNkZWZpbmUgTU1BUF9JTlRDMAkoQ0ZHX01CQVIgKyAweDAwMDQ4MDAwKQotI2RlZmluZSBNTUFQX0lOVEMxCShDRkdfTUJBUiArIDB4MDAwNEMwMDApCi0jZGVmaW5lIE1NQVBfSUFDSwkoQ0ZHX01CQVIgKyAweDAwMDU0MDAwKQotI2RlZmluZSBNTUFQX0kyQwkoQ0ZHX01CQVIgKyAweDAwMDU4MDAwKQotI2RlZmluZSBNTUFQX0RTUEkJKENGR19NQkFSICsgMHgwMDA1QzAwMCkKLSNkZWZpbmUgTU1BUF9VQVJUMAkoQ0ZHX01CQVIgKyAweDAwMDYwMDAwKQotI2RlZmluZSBNTUFQX1VBUlQxCShDRkdfTUJBUiArIDB4MDAwNjQwMDApCi0jZGVmaW5lIE1NQVBfVUFSVDIJKENGR19NQkFSICsgMHgwMDA2ODAwMCkKLSNkZWZpbmUgTU1BUF9EVE1SMAkoQ0ZHX01CQVIgKyAweDAwMDcwMDAwKQotI2RlZmluZSBNTUFQX0RUTVIxCShDRkdfTUJBUiArIDB4MDAwNzQwMDApCi0jZGVmaW5lIE1NQVBfRFRNUjIJKENGR19NQkFSICsgMHgwMDA3ODAwMCkKLSNkZWZpbmUgTU1BUF9EVE1SMwkoQ0ZHX01CQVIgKyAweDAwMDdDMDAwKQotI2RlZmluZSBNTUFQX1BJVDAJKENGR19NQkFSICsgMHgwMDA4MDAwMCkKLSNkZWZpbmUgTU1BUF9QSVQxCShDRkdfTUJBUiArIDB4MDAwODQwMDApCi0jZGVmaW5lIE1NQVBfUFdNCShDRkdfTUJBUiArIDB4MDAwOTAwMDApCi0jZGVmaW5lIE1NQVBfRVBPUlQJKENGR19NQkFSICsgMHgwMDA5NDAwMCkKLSNkZWZpbmUgTU1BUF9SQ00JKENGR19NQkFSICsgMHgwMDBBMDAwMCkKLSNkZWZpbmUgTU1BUF9DQ00JKENGR19NQkFSICsgMHgwMDBBMDAwNCkKLSNkZWZpbmUgTU1BUF9HUElPCShDRkdfTUJBUiArIDB4MDAwQTQwMDApCi0jZGVmaW5lIE1NQVBfQURDCShDRkdfTUJBUiArIDB4MDAwQTgwMDApCi0jZGVmaW5lIE1NQVBfTENECShDRkdfTUJBUiArIDB4MDAwQUMwMDApCi0jZGVmaW5lIE1NQVBfTENEX0JHTFVUCShDRkdfTUJBUiArIDB4MDAwQUM4MDApCi0jZGVmaW5lIE1NQVBfTENEX0dXTFVUCShDRkdfTUJBUiArIDB4MDAwQUNDMDApCi0jZGVmaW5lIE1NQVBfVVNCSFcJKENGR19NQkFSICsgMHgwMDBCMDAwMCkKLSNkZWZpbmUgTU1BUF9VU0JDQVBTCShDRkdfTUJBUiArIDB4MDAwQjAxMDApCi0jZGVmaW5lIE1NQVBfVVNCRUhDSQkoQ0ZHX01CQVIgKyAweDAwMEIwMTQwKQotI2RlZmluZSBNTUFQX1VTQk9URwkoQ0ZHX01CQVIgKyAweDAwMEIwMUEwKQotI2RlZmluZSBNTUFQX1NEUkFNCShDRkdfTUJBUiArIDB4MDAwQjgwMDApCi0jZGVmaW5lIE1NQVBfU1NJCShDRkdfTUJBUiArIDB4MDAwQkMwMDApCi0jZGVmaW5lIE1NQVBfUExMCShDRkdfTUJBUiArIDB4MDAwQzAwMDApCisjZGVmaW5lIE1NQVBfU0NNMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDAwMCkKKyNkZWZpbmUgTU1BUF9YQlMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDQwMDApCisjZGVmaW5lIE1NQVBfRkJDUwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwODAwMCkKKyNkZWZpbmUgTU1BUF9DQU4JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMjAwMDApCisjZGVmaW5lIE1NQVBfUlRDCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDNDMDAwKQorI2RlZmluZSBNTUFQX1NDTTIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwNDAwMTApCisjZGVmaW5lIE1NQVBfU0NNMwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDA0MDA3MCkKKyNkZWZpbmUgTU1BUF9FRE1BCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDQ0MDAwKQorI2RlZmluZSBNTUFQX0lOVEMwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDQ4MDAwKQorI2RlZmluZSBNTUFQX0lOVEMxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDRDMDAwKQorI2RlZmluZSBNTUFQX0lBQ0sJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwNTQwMDApCisjZGVmaW5lIE1NQVBfSTJDCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDU4MDAwKQorI2RlZmluZSBNTUFQX0RTUEkJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwNUMwMDApCisjZGVmaW5lIE1NQVBfVUFSVDAJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwNjAwMDApCisjZGVmaW5lIE1NQVBfVUFSVDEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwNjQwMDApCisjZGVmaW5lIE1NQVBfVUFSVDIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwNjgwMDApCisjZGVmaW5lIE1NQVBfRFRNUjAJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwNzAwMDApCisjZGVmaW5lIE1NQVBfRFRNUjEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwNzQwMDApCisjZGVmaW5lIE1NQVBfRFRNUjIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwNzgwMDApCisjZGVmaW5lIE1NQVBfRFRNUjMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwN0MwMDApCisjZGVmaW5lIE1NQVBfUElUMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDA4MDAwMCkKKyNkZWZpbmUgTU1BUF9QSVQxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDg0MDAwKQorI2RlZmluZSBNTUFQX1BXTQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDA5MDAwMCkKKyNkZWZpbmUgTU1BUF9FUE9SVAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDA5NDAwMCkKKyNkZWZpbmUgTU1BUF9SQ00JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwQTAwMDApCisjZGVmaW5lIE1NQVBfQ0NNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMEEwMDA0KQorI2RlZmluZSBNTUFQX0dQSU8JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwQTQwMDApCisjZGVmaW5lIE1NQVBfQURDCShDT05GSUdfU1lTX01CQVIgKyAweDAwMEE4MDAwKQorI2RlZmluZSBNTUFQX0xDRAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDBBQzAwMCkKKyNkZWZpbmUgTU1BUF9MQ0RfQkdMVVQJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwQUM4MDApCisjZGVmaW5lIE1NQVBfTENEX0dXTFVUCShDT05GSUdfU1lTX01CQVIgKyAweDAwMEFDQzAwKQorI2RlZmluZSBNTUFQX1VTQkhXCShDT05GSUdfU1lTX01CQVIgKyAweDAwMEIwMDAwKQorI2RlZmluZSBNTUFQX1VTQkNBUFMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwQjAxMDApCisjZGVmaW5lIE1NQVBfVVNCRUhDSQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDBCMDE0MCkKKyNkZWZpbmUgTU1BUF9VU0JPVEcJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwQjAxQTApCisjZGVmaW5lIE1NQVBfU0RSQU0JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwQjgwMDApCisjZGVmaW5lIE1NQVBfU1NJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMEJDMDAwKQorI2RlZmluZSBNTUFQX1BMTAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDBDMDAwMCkKIAogI2luY2x1ZGUgPGFzbS9jb2xkZmlyZS9jcm9zc2Jhci5oPgogI2luY2x1ZGUgPGFzbS9jb2xkZmlyZS9kc3BpLmg+CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzUyMzUuaCBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTIzNS5oCmluZGV4IDRhMDM0NTAuLjNlZjAzMjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTIzNS5oCisrKyBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTIzNS5oCkBAIC0yNiw0MiArMjYsNDIgQEAKICNpZm5kZWYgX19JTU1BUF81MjM1X18KICNkZWZpbmUgX19JTU1BUF81MjM1X18KIAotI2RlZmluZSBNTUFQX1NDTQkoQ0ZHX01CQVIgKyAweDAwMDAwMDAwKQotI2RlZmluZSBNTUFQX1NEUkFNCShDRkdfTUJBUiArIDB4MDAwMDAwNDApCi0jZGVmaW5lIE1NQVBfRkJDUwkoQ0ZHX01CQVIgKyAweDAwMDAwMDgwKQotI2RlZmluZSBNTUFQX0RNQTAJKENGR19NQkFSICsgMHgwMDAwMDEwMCkKLSNkZWZpbmUgTU1BUF9ETUExCShDRkdfTUJBUiArIDB4MDAwMDAxMTApCi0jZGVmaW5lIE1NQVBfRE1BMgkoQ0ZHX01CQVIgKyAweDAwMDAwMTIwKQotI2RlZmluZSBNTUFQX0RNQTMJKENGR19NQkFSICsgMHgwMDAwMDEzMCkKLSNkZWZpbmUgTU1BUF9VQVJUMAkoQ0ZHX01CQVIgKyAweDAwMDAwMjAwKQotI2RlZmluZSBNTUFQX1VBUlQxCShDRkdfTUJBUiArIDB4MDAwMDAyNDApCi0jZGVmaW5lIE1NQVBfVUFSVDIJKENGR19NQkFSICsgMHgwMDAwMDI4MCkKLSNkZWZpbmUgTU1BUF9JMkMJKENGR19NQkFSICsgMHgwMDAwMDMwMCkKLSNkZWZpbmUgTU1BUF9RU1BJCShDRkdfTUJBUiArIDB4MDAwMDAzNDApCi0jZGVmaW5lIE1NQVBfRFRNUjAJKENGR19NQkFSICsgMHgwMDAwMDQwMCkKLSNkZWZpbmUgTU1BUF9EVE1SMQkoQ0ZHX01CQVIgKyAweDAwMDAwNDQwKQotI2RlZmluZSBNTUFQX0RUTVIyCShDRkdfTUJBUiArIDB4MDAwMDA0ODApCi0jZGVmaW5lIE1NQVBfRFRNUjMJKENGR19NQkFSICsgMHgwMDAwMDRDMCkKLSNkZWZpbmUgTU1BUF9JTlRDMAkoQ0ZHX01CQVIgKyAweDAwMDAwQzAwKQotI2RlZmluZSBNTUFQX0lOVEMxCShDRkdfTUJBUiArIDB4MDAwMDBEMDApCi0jZGVmaW5lIE1NQVBfSU5UQ0FDSwkoQ0ZHX01CQVIgKyAweDAwMDAwRjAwKQotI2RlZmluZSBNTUFQX0ZFQwkoQ0ZHX01CQVIgKyAweDAwMDAxMDAwKQotI2RlZmluZSBNTUFQX0ZFQ0ZJRk8JKENGR19NQkFSICsgMHgwMDAwMTQwMCkKLSNkZWZpbmUgTU1BUF9HUElPCShDRkdfTUJBUiArIDB4MDAxMDAwMDApCi0jZGVmaW5lIE1NQVBfQ0NNCShDRkdfTUJBUiArIDB4MDAxMTAwMDApCi0jZGVmaW5lIE1NQVBfUExMCShDRkdfTUJBUiArIDB4MDAxMjAwMDApCi0jZGVmaW5lIE1NQVBfRVBPUlQJKENGR19NQkFSICsgMHgwMDEzMDAwMCkKLSNkZWZpbmUgTU1BUF9XRE9HCShDRkdfTUJBUiArIDB4MDAxNDAwMDApCi0jZGVmaW5lIE1NQVBfUElUMAkoQ0ZHX01CQVIgKyAweDAwMTUwMDAwKQotI2RlZmluZSBNTUFQX1BJVDEJKENGR19NQkFSICsgMHgwMDE2MDAwMCkKLSNkZWZpbmUgTU1BUF9QSVQyCShDRkdfTUJBUiArIDB4MDAxNzAwMDApCi0jZGVmaW5lIE1NQVBfUElUMwkoQ0ZHX01CQVIgKyAweDAwMTgwMDAwKQotI2RlZmluZSBNTUFQX01ESEEJKENGR19NQkFSICsgMHgwMDE5MDAwMCkKLSNkZWZpbmUgTU1BUF9STkcJKENGR19NQkFSICsgMHgwMDFBMDAwMCkKLSNkZWZpbmUgTU1BUF9TS0hBCShDRkdfTUJBUiArIDB4MDAxQjAwMDApCi0jZGVmaW5lIE1NQVBfQ0FOMQkoQ0ZHX01CQVIgKyAweDAwMUMwMDAwKQotI2RlZmluZSBNTUFQX0VUUFUJKENGR19NQkFSICsgMHgwMDFEMDAwMCkKLSNkZWZpbmUgTU1BUF9DQU4yCShDRkdfTUJBUiArIDB4MDAxRjAwMDApCisjZGVmaW5lIE1NQVBfU0NNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMDAwKQorI2RlZmluZSBNTUFQX1NEUkFNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMDQwKQorI2RlZmluZSBNTUFQX0ZCQ1MJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwODApCisjZGVmaW5lIE1NQVBfRE1BMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDEwMCkKKyNkZWZpbmUgTU1BUF9ETUExCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTEwKQorI2RlZmluZSBNTUFQX0RNQTIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxMjApCisjZGVmaW5lIE1NQVBfRE1BMwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDEzMCkKKyNkZWZpbmUgTU1BUF9VQVJUMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDIwMCkKKyNkZWZpbmUgTU1BUF9VQVJUMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDI0MCkKKyNkZWZpbmUgTU1BUF9VQVJUMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDI4MCkKKyNkZWZpbmUgTU1BUF9JMkMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAzMDApCisjZGVmaW5lIE1NQVBfUVNQSQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDM0MCkKKyNkZWZpbmUgTU1BUF9EVE1SMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDQwMCkKKyNkZWZpbmUgTU1BUF9EVE1SMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDQ0MCkKKyNkZWZpbmUgTU1BUF9EVE1SMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDQ4MCkKKyNkZWZpbmUgTU1BUF9EVE1SMwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDRDMCkKKyNkZWZpbmUgTU1BUF9JTlRDMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMEMwMCkKKyNkZWZpbmUgTU1BUF9JTlRDMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMEQwMCkKKyNkZWZpbmUgTU1BUF9JTlRDQUNLCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwRjAwKQorI2RlZmluZSBNTUFQX0ZFQwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMTAwMCkKKyNkZWZpbmUgTU1BUF9GRUNGSUZPCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAxNDAwKQorI2RlZmluZSBNTUFQX0dQSU8JKENPTkZJR19TWVNfTUJBUiArIDB4MDAxMDAwMDApCisjZGVmaW5lIE1NQVBfQ0NNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTEwMDAwKQorI2RlZmluZSBNTUFQX1BMTAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDEyMDAwMCkKKyNkZWZpbmUgTU1BUF9FUE9SVAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDEzMDAwMCkKKyNkZWZpbmUgTU1BUF9XRE9HCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTQwMDAwKQorI2RlZmluZSBNTUFQX1BJVDAJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxNTAwMDApCisjZGVmaW5lIE1NQVBfUElUMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE2MDAwMCkKKyNkZWZpbmUgTU1BUF9QSVQyCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTcwMDAwKQorI2RlZmluZSBNTUFQX1BJVDMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxODAwMDApCisjZGVmaW5lIE1NQVBfTURIQQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE5MDAwMCkKKyNkZWZpbmUgTU1BUF9STkcJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxQTAwMDApCisjZGVmaW5lIE1NQVBfU0tIQQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDFCMDAwMCkKKyNkZWZpbmUgTU1BUF9DQU4xCShDT05GSUdfU1lTX01CQVIgKyAweDAwMUMwMDAwKQorI2RlZmluZSBNTUFQX0VUUFUJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxRDAwMDApCisjZGVmaW5lIE1NQVBfQ0FOMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDFGMDAwMCkKIAogLyogU3lzdGVtIENvbnRyb2wgTW9kdWxlIHJlZ2lzdGVyICovCiB0eXBlZGVmIHN0cnVjdCBzY21fY3RybCB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzUyNDkuaCBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI0OS5oCmluZGV4IDZjNmZiY2MuLjZiNTdiYTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI0OS5oCisrKyBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI0OS5oCkBAIC0yNSwxMSArMjUsMTEgQEAKICNpZm5kZWYgX19JTU1BUF81MjQ5X18KICNkZWZpbmUgX19JTU1BUF81MjQ5X18KIAotI2RlZmluZSBNTUFQX0lOVEMJCShDRkdfTUJBUiArIDB4MDAwMDAwNDApCi0jZGVmaW5lIE1NQVBfRFRNUjAJCShDRkdfTUJBUiArIDB4MDAwMDAxNDApCi0jZGVmaW5lIE1NQVBfRFRNUjEJCShDRkdfTUJBUiArIDB4MDAwMDAxODApCi0jZGVmaW5lIE1NQVBfVUFSVDAJCShDRkdfTUJBUiArIDB4MDAwMDAxQzApCi0jZGVmaW5lIE1NQVBfVUFSVDEJCShDRkdfTUJBUiArIDB4MDAwMDAyMDApCi0jZGVmaW5lIE1NQVBfUVNQSQkJKENGR19NQkFSICsgMHgwMDAwMDQwMCkKKyNkZWZpbmUgTU1BUF9JTlRDCQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDA0MCkKKyNkZWZpbmUgTU1BUF9EVE1SMAkJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxNDApCisjZGVmaW5lIE1NQVBfRFRNUjEJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTgwKQorI2RlZmluZSBNTUFQX1VBUlQwCQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDFDMCkKKyNkZWZpbmUgTU1BUF9VQVJUMQkJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAyMDApCisjZGVmaW5lIE1NQVBfUVNQSQkJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDA0MDApCiAKICNlbmRpZgkJCQkvKiBfX0lNTUFQXzUyNDlfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjUzLmggYi9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzUyNTMuaAppbmRleCBhYWZiZGQwLi40ZTNhNDgxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzUyNTMuaAorKysgYi9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzUyNTMuaApAQCAtMjYsMTggKzI2LDE4IEBACiAjaWZuZGVmIF9fSU1NQVBfNTI0OV9fCiAjZGVmaW5lIF9fSU1NQVBfNTI0OV9fCiAKLSNkZWZpbmUgTU1BUF9JTlRDCQkoQ0ZHX01CQVIgKyAweDAwMDAwMDQwKQotI2RlZmluZSBNTUFQX0RUTVIwCQkoQ0ZHX01CQVIgKyAweDAwMDAwMTQwKQotI2RlZmluZSBNTUFQX0RUTVIxCQkoQ0ZHX01CQVIgKyAweDAwMDAwMTgwKQotI2RlZmluZSBNTUFQX1VBUlQwCQkoQ0ZHX01CQVIgKyAweDAwMDAwMUMwKQotI2RlZmluZSBNTUFQX1VBUlQxCQkoQ0ZHX01CQVIgKyAweDAwMDAwMjAwKQotI2RlZmluZSBNTUFQX0kyQzAJCShDRkdfTUJBUiArIDB4MDAwMDAyODApCi0jZGVmaW5lIE1NQVBfUVNQSQkJKENGR19NQkFSICsgMHgwMDAwMDQwMCkKLSNkZWZpbmUgTU1BUF9DQU4wCQkoQ0ZHX01CQVIgKyAweDAwMDEwMDAwKQotI2RlZmluZSBNTUFQX0NBTjEJCShDRkdfTUJBUiArIDB4MDAwMTEwMDApCisjZGVmaW5lIE1NQVBfSU5UQwkJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwNDApCisjZGVmaW5lIE1NQVBfRFRNUjAJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTQwKQorI2RlZmluZSBNTUFQX0RUTVIxCQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDE4MCkKKyNkZWZpbmUgTU1BUF9VQVJUMAkJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxQzApCisjZGVmaW5lIE1NQVBfVUFSVDEJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjAwKQorI2RlZmluZSBNTUFQX0kyQzAJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjgwKQorI2RlZmluZSBNTUFQX1FTUEkJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNDAwKQorI2RlZmluZSBNTUFQX0NBTjAJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDEwMDAwKQorI2RlZmluZSBNTUFQX0NBTjEJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDExMDAwKQogCi0jZGVmaW5lIE1NQVBfSTJDMQkJKENGR19NQkFSMiArIDB4MDAwMDA0NDApCi0jZGVmaW5lIE1NQVBfVUFSVDIJCShDRkdfTUJBUjIgKyAweDAwMDAwQzAwKQorI2RlZmluZSBNTUFQX0kyQzEJCShDT05GSUdfU1lTX01CQVIyICsgMHgwMDAwMDQ0MCkKKyNkZWZpbmUgTU1BUF9VQVJUMgkJKENPTkZJR19TWVNfTUJBUjIgKyAweDAwMDAwQzAwKQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIEFUQSBNb2R1bGUgKEFUQUMpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzUyNzEuaCBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI3MS5oCmluZGV4IGQ5ZGMwMTUuLjQ2MmQ1ZjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI3MS5oCisrKyBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI3MS5oCkBAIC0yNiw0MiArMjYsNDIgQEAKICNpZm5kZWYgX19JTU1BUF81MjcxX18KICNkZWZpbmUgX19JTU1BUF81MjcxX18KIAotI2RlZmluZSBNTUFQX1NDTQkoQ0ZHX01CQVIgKyAweDAwMDAwMDAwKQotI2RlZmluZSBNTUFQX1NEUkFNCShDRkdfTUJBUiArIDB4MDAwMDAwNDApCi0jZGVmaW5lIE1NQVBfRkJDUwkoQ0ZHX01CQVIgKyAweDAwMDAwMDgwKQotI2RlZmluZSBNTUFQX0RNQTAJKENGR19NQkFSICsgMHgwMDAwMDEwMCkKLSNkZWZpbmUgTU1BUF9ETUExCShDRkdfTUJBUiArIDB4MDAwMDAxMTApCi0jZGVmaW5lIE1NQVBfRE1BMgkoQ0ZHX01CQVIgKyAweDAwMDAwMTIwKQotI2RlZmluZSBNTUFQX0RNQTMJKENGR19NQkFSICsgMHgwMDAwMDEzMCkKLSNkZWZpbmUgTU1BUF9VQVJUMAkoQ0ZHX01CQVIgKyAweDAwMDAwMjAwKQotI2RlZmluZSBNTUFQX1VBUlQxCShDRkdfTUJBUiArIDB4MDAwMDAyNDApCi0jZGVmaW5lIE1NQVBfVUFSVDIJKENGR19NQkFSICsgMHgwMDAwMDI4MCkKLSNkZWZpbmUgTU1BUF9JMkMJKENGR19NQkFSICsgMHgwMDAwMDMwMCkKLSNkZWZpbmUgTU1BUF9RU1BJCShDRkdfTUJBUiArIDB4MDAwMDAzNDApCi0jZGVmaW5lIE1NQVBfRFRNUjAJKENGR19NQkFSICsgMHgwMDAwMDQwMCkKLSNkZWZpbmUgTU1BUF9EVE1SMQkoQ0ZHX01CQVIgKyAweDAwMDAwNDQwKQotI2RlZmluZSBNTUFQX0RUTVIyCShDRkdfTUJBUiArIDB4MDAwMDA0ODApCi0jZGVmaW5lIE1NQVBfRFRNUjMJKENGR19NQkFSICsgMHgwMDAwMDRDMCkKLSNkZWZpbmUgTU1BUF9JTlRDMAkoQ0ZHX01CQVIgKyAweDAwMDAwQzAwKQotI2RlZmluZSBNTUFQX0lOVEMxCShDRkdfTUJBUiArIDB4MDAwMDBEMDApCi0jZGVmaW5lIE1NQVBfSU5UQ0FDSwkoQ0ZHX01CQVIgKyAweDAwMDAwRjAwKQotI2RlZmluZSBNTUFQX0ZFQwkoQ0ZHX01CQVIgKyAweDAwMDAxMDAwKQotI2RlZmluZSBNTUFQX0ZFQ0ZJRk8JKENGR19NQkFSICsgMHgwMDAwMTQwMCkKLSNkZWZpbmUgTU1BUF9HUElPCShDRkdfTUJBUiArIDB4MDAxMDAwMDApCi0jZGVmaW5lIE1NQVBfQ0NNCShDRkdfTUJBUiArIDB4MDAxMTAwMDApCi0jZGVmaW5lIE1NQVBfUExMCShDRkdfTUJBUiArIDB4MDAxMjAwMDApCi0jZGVmaW5lIE1NQVBfRVBPUlQJKENGR19NQkFSICsgMHgwMDEzMDAwMCkKLSNkZWZpbmUgTU1BUF9XRE9HCShDRkdfTUJBUiArIDB4MDAxNDAwMDApCi0jZGVmaW5lIE1NQVBfUElUMAkoQ0ZHX01CQVIgKyAweDAwMTUwMDAwKQotI2RlZmluZSBNTUFQX1BJVDEJKENGR19NQkFSICsgMHgwMDE2MDAwMCkKLSNkZWZpbmUgTU1BUF9QSVQyCShDRkdfTUJBUiArIDB4MDAxNzAwMDApCi0jZGVmaW5lIE1NQVBfUElUMwkoQ0ZHX01CQVIgKyAweDAwMTgwMDAwKQotI2RlZmluZSBNTUFQX01ESEEJKENGR19NQkFSICsgMHgwMDE5MDAwMCkKLSNkZWZpbmUgTU1BUF9STkcJKENGR19NQkFSICsgMHgwMDFBMDAwMCkKLSNkZWZpbmUgTU1BUF9TS0hBCShDRkdfTUJBUiArIDB4MDAxQjAwMDApCi0jZGVmaW5lIE1NQVBfQ0FOMQkoQ0ZHX01CQVIgKyAweDAwMUMwMDAwKQotI2RlZmluZSBNTUFQX0VUUFUJKENGR19NQkFSICsgMHgwMDFEMDAwMCkKLSNkZWZpbmUgTU1BUF9DQU4yCShDRkdfTUJBUiArIDB4MDAxRjAwMDApCisjZGVmaW5lIE1NQVBfU0NNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMDAwKQorI2RlZmluZSBNTUFQX1NEUkFNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMDQwKQorI2RlZmluZSBNTUFQX0ZCQ1MJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwODApCisjZGVmaW5lIE1NQVBfRE1BMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDEwMCkKKyNkZWZpbmUgTU1BUF9ETUExCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTEwKQorI2RlZmluZSBNTUFQX0RNQTIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxMjApCisjZGVmaW5lIE1NQVBfRE1BMwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDEzMCkKKyNkZWZpbmUgTU1BUF9VQVJUMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDIwMCkKKyNkZWZpbmUgTU1BUF9VQVJUMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDI0MCkKKyNkZWZpbmUgTU1BUF9VQVJUMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDI4MCkKKyNkZWZpbmUgTU1BUF9JMkMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAzMDApCisjZGVmaW5lIE1NQVBfUVNQSQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDM0MCkKKyNkZWZpbmUgTU1BUF9EVE1SMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDQwMCkKKyNkZWZpbmUgTU1BUF9EVE1SMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDQ0MCkKKyNkZWZpbmUgTU1BUF9EVE1SMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDQ4MCkKKyNkZWZpbmUgTU1BUF9EVE1SMwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDRDMCkKKyNkZWZpbmUgTU1BUF9JTlRDMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMEMwMCkKKyNkZWZpbmUgTU1BUF9JTlRDMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMEQwMCkKKyNkZWZpbmUgTU1BUF9JTlRDQUNLCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwRjAwKQorI2RlZmluZSBNTUFQX0ZFQwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMTAwMCkKKyNkZWZpbmUgTU1BUF9GRUNGSUZPCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAxNDAwKQorI2RlZmluZSBNTUFQX0dQSU8JKENPTkZJR19TWVNfTUJBUiArIDB4MDAxMDAwMDApCisjZGVmaW5lIE1NQVBfQ0NNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTEwMDAwKQorI2RlZmluZSBNTUFQX1BMTAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDEyMDAwMCkKKyNkZWZpbmUgTU1BUF9FUE9SVAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDEzMDAwMCkKKyNkZWZpbmUgTU1BUF9XRE9HCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTQwMDAwKQorI2RlZmluZSBNTUFQX1BJVDAJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxNTAwMDApCisjZGVmaW5lIE1NQVBfUElUMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE2MDAwMCkKKyNkZWZpbmUgTU1BUF9QSVQyCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTcwMDAwKQorI2RlZmluZSBNTUFQX1BJVDMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxODAwMDApCisjZGVmaW5lIE1NQVBfTURIQQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE5MDAwMCkKKyNkZWZpbmUgTU1BUF9STkcJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxQTAwMDApCisjZGVmaW5lIE1NQVBfU0tIQQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDFCMDAwMCkKKyNkZWZpbmUgTU1BUF9DQU4xCShDT05GSUdfU1lTX01CQVIgKyAweDAwMUMwMDAwKQorI2RlZmluZSBNTUFQX0VUUFUJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxRDAwMDApCisjZGVmaW5lIE1NQVBfQ0FOMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDFGMDAwMCkKIAogLyogSW50ZXJydXB0IG1vZHVsZSByZWdpc3RlcnMgKi8KIHR5cGVkZWYgc3RydWN0IGludDBfY3RybCB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzUyNzIuaCBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI3Mi5oCmluZGV4IDJlYmIxNDAuLmIxMDYyODkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI3Mi5oCisrKyBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI3Mi5oCkBAIC0yNSwyNCArMjUsMjQgQEAKICNpZm5kZWYgX19JTU1BUF81MjcyX18KICNkZWZpbmUgX19JTU1BUF81MjcyX18KIAotI2RlZmluZSBNTUFQX0NGRwkoQ0ZHX01CQVIgKyAweDAwMDAwMDAwKQotI2RlZmluZSBNTUFQX0lOVEMJKENGR19NQkFSICsgMHgwMDAwMDAyMCkKLSNkZWZpbmUgTU1BUF9GQkNTCShDRkdfTUJBUiArIDB4MDAwMDAwNDApCi0jZGVmaW5lIE1NQVBfR1BJTwkoQ0ZHX01CQVIgKyAweDAwMDAwMDgwKQotI2RlZmluZSBNTUFQX1FTUEkJKENGR19NQkFSICsgMHgwMDAwMDBBMCkKLSNkZWZpbmUgTU1BUF9QV00JKENGR19NQkFSICsgMHgwMDAwMDBDMCkKLSNkZWZpbmUgTU1BUF9ETUEwCShDRkdfTUJBUiArIDB4MDAwMDAwRTApCi0jZGVmaW5lIE1NQVBfVUFSVDAJKENGR19NQkFSICsgMHgwMDAwMDEwMCkKLSNkZWZpbmUgTU1BUF9VQVJUMQkoQ0ZHX01CQVIgKyAweDAwMDAwMTQwKQotI2RlZmluZSBNTUFQX1NEUkFNCShDRkdfTUJBUiArIDB4MDAwMDAxODApCi0jZGVmaW5lIE1NQVBfVE1SMAkoQ0ZHX01CQVIgKyAweDAwMDAwMjAwKQotI2RlZmluZSBNTUFQX1RNUjEJKENGR19NQkFSICsgMHgwMDAwMDIyMCkKLSNkZWZpbmUgTU1BUF9UTVIyCShDRkdfTUJBUiArIDB4MDAwMDAyNDApCi0jZGVmaW5lIE1NQVBfVE1SMwkoQ0ZHX01CQVIgKyAweDAwMDAwMjYwKQotI2RlZmluZSBNTUFQX1dET0cJKENGR19NQkFSICsgMHgwMDAwMDI4MCkKLSNkZWZpbmUgTU1BUF9QTElDCShDRkdfTUJBUiArIDB4MDAwMDAzMDApCi0jZGVmaW5lIE1NQVBfRkVDCShDRkdfTUJBUiArIDB4MDAwMDA4NDApCi0jZGVmaW5lIE1NQVBfVVNCCShDRkdfTUJBUiArIDB4MDAwMDEwMDApCisjZGVmaW5lIE1NQVBfQ0ZHCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMDAwKQorI2RlZmluZSBNTUFQX0lOVEMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwMjApCisjZGVmaW5lIE1NQVBfRkJDUwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDA0MCkKKyNkZWZpbmUgTU1BUF9HUElPCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMDgwKQorI2RlZmluZSBNTUFQX1FTUEkJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwQTApCisjZGVmaW5lIE1NQVBfUFdNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMEMwKQorI2RlZmluZSBNTUFQX0RNQTAJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwRTApCisjZGVmaW5lIE1NQVBfVUFSVDAJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxMDApCisjZGVmaW5lIE1NQVBfVUFSVDEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxNDApCisjZGVmaW5lIE1NQVBfU0RSQU0JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxODApCisjZGVmaW5lIE1NQVBfVE1SMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDIwMCkKKyNkZWZpbmUgTU1BUF9UTVIxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjIwKQorI2RlZmluZSBNTUFQX1RNUjIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAyNDApCisjZGVmaW5lIE1NQVBfVE1SMwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDI2MCkKKyNkZWZpbmUgTU1BUF9XRE9HCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjgwKQorI2RlZmluZSBNTUFQX1BMSUMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAzMDApCisjZGVmaW5lIE1NQVBfRkVDCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwODQwKQorI2RlZmluZSBNTUFQX1VTQgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMTAwMCkKIAogLyogU3lzdGVtIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXJzICovCiB0eXBlZGVmIHN0cnVjdCBzeXNfY3RybCB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzUyNzUuaCBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI3NS5oCmluZGV4IDc3NDg2NmUuLjQ5NTAxMGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI3NS5oCisrKyBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI3NS5oCkBAIC0yNyw0NCArMjcsNDQgQEAKICNpZm5kZWYgX19JTU1BUF81Mjc1X18KICNkZWZpbmUgX19JTU1BUF81Mjc1X18KIAotI2RlZmluZSBNTUFQX1NDTQkoQ0ZHX01CQVIgKyAweDAwMDAwMDAwKQotI2RlZmluZSBNTUFQX1NEUkFNCShDRkdfTUJBUiArIDB4MDAwMDAwNDApCi0jZGVmaW5lIE1NQVBfRkJDUwkoQ0ZHX01CQVIgKyAweDAwMDAwMDgwKQotI2RlZmluZSBNTUFQX0RNQTAJKENGR19NQkFSICsgMHgwMDAwMDEwMCkKLSNkZWZpbmUgTU1BUF9ETUExCShDRkdfTUJBUiArIDB4MDAwMDAxMTApCi0jZGVmaW5lIE1NQVBfRE1BMgkoQ0ZHX01CQVIgKyAweDAwMDAwMTIwKQotI2RlZmluZSBNTUFQX0RNQTMJKENGR19NQkFSICsgMHgwMDAwMDEzMCkKLSNkZWZpbmUgTU1BUF9VQVJUMAkoQ0ZHX01CQVIgKyAweDAwMDAwMjAwKQotI2RlZmluZSBNTUFQX1VBUlQxCShDRkdfTUJBUiArIDB4MDAwMDAyNDApCi0jZGVmaW5lIE1NQVBfVUFSVDIJKENGR19NQkFSICsgMHgwMDAwMDI4MCkKLSNkZWZpbmUgTU1BUF9JMkMJKENGR19NQkFSICsgMHgwMDAwMDMwMCkKLSNkZWZpbmUgTU1BUF9RU1BJCShDRkdfTUJBUiArIDB4MDAwMDAzNDApCi0jZGVmaW5lIE1NQVBfRFRNUjAJKENGR19NQkFSICsgMHgwMDAwMDQwMCkKLSNkZWZpbmUgTU1BUF9EVE1SMQkoQ0ZHX01CQVIgKyAweDAwMDAwNDQwKQotI2RlZmluZSBNTUFQX0RUTVIyCShDRkdfTUJBUiArIDB4MDAwMDA0ODApCi0jZGVmaW5lIE1NQVBfRFRNUjMJKENGR19NQkFSICsgMHgwMDAwMDRDMCkKLSNkZWZpbmUgTU1BUF9JTlRDMAkoQ0ZHX01CQVIgKyAweDAwMDAwQzAwKQotI2RlZmluZSBNTUFQX0lOVEMxCShDRkdfTUJBUiArIDB4MDAwMDBEMDApCi0jZGVmaW5lIE1NQVBfSU5UQ0FDSwkoQ0ZHX01CQVIgKyAweDAwMDAwRjAwKQotI2RlZmluZSBNTUFQX0ZFQzAJKENGR19NQkFSICsgMHgwMDAwMTAwMCkKLSNkZWZpbmUgTU1BUF9GRUMwRklGTwkoQ0ZHX01CQVIgKyAweDAwMDAxNDAwKQotI2RlZmluZSBNTUFQX0ZFQzEJKENGR19NQkFSICsgMHgwMDAwMTgwMCkKLSNkZWZpbmUgTU1BUF9GRUMxRklGTwkoQ0ZHX01CQVIgKyAweDAwMDAxQzAwKQotI2RlZmluZSBNTUFQX0dQSU8JKENGR19NQkFSICsgMHgwMDEwMDAwMCkKLSNkZWZpbmUgTU1BUF9SQ00JKENGR19NQkFSICsgMHgwMDExMDAwMCkKLSNkZWZpbmUgTU1BUF9DQ00JKENGR19NQkFSICsgMHgwMDExMDAwNCkKLSNkZWZpbmUgTU1BUF9QTEwJKENGR19NQkFSICsgMHgwMDEyMDAwMCkKLSNkZWZpbmUgTU1BUF9FUE9SVAkoQ0ZHX01CQVIgKyAweDAwMTMwMDAwKQotI2RlZmluZSBNTUFQX1dET0cJKENGR19NQkFSICsgMHgwMDE0MDAwMCkKLSNkZWZpbmUgTU1BUF9QSVQwCShDRkdfTUJBUiArIDB4MDAxNTAwMDApCi0jZGVmaW5lIE1NQVBfUElUMQkoQ0ZHX01CQVIgKyAweDAwMTYwMDAwKQotI2RlZmluZSBNTUFQX1BJVDIJKENGR19NQkFSICsgMHgwMDE3MDAwMCkKLSNkZWZpbmUgTU1BUF9QSVQzCShDRkdfTUJBUiArIDB4MDAxODAwMDApCi0jZGVmaW5lIE1NQVBfTURIQQkoQ0ZHX01CQVIgKyAweDAwMTkwMDAwKQotI2RlZmluZSBNTUFQX1JORwkoQ0ZHX01CQVIgKyAweDAwMUEwMDAwKQotI2RlZmluZSBNTUFQX1NLSEEJKENGR19NQkFSICsgMHgwMDFCMDAwMCkKLSNkZWZpbmUgTU1BUF9VU0IJKENGR19NQkFSICsgMHgwMDFDMDAwMCkKLSNkZWZpbmUgTU1BUF9QV00wCShDRkdfTUJBUiArIDB4MDAxRDAwMDApCisjZGVmaW5lIE1NQVBfU0NNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMDAwKQorI2RlZmluZSBNTUFQX1NEUkFNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMDQwKQorI2RlZmluZSBNTUFQX0ZCQ1MJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwODApCisjZGVmaW5lIE1NQVBfRE1BMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDEwMCkKKyNkZWZpbmUgTU1BUF9ETUExCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTEwKQorI2RlZmluZSBNTUFQX0RNQTIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxMjApCisjZGVmaW5lIE1NQVBfRE1BMwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDEzMCkKKyNkZWZpbmUgTU1BUF9VQVJUMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDIwMCkKKyNkZWZpbmUgTU1BUF9VQVJUMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDI0MCkKKyNkZWZpbmUgTU1BUF9VQVJUMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDI4MCkKKyNkZWZpbmUgTU1BUF9JMkMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAzMDApCisjZGVmaW5lIE1NQVBfUVNQSQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDM0MCkKKyNkZWZpbmUgTU1BUF9EVE1SMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDQwMCkKKyNkZWZpbmUgTU1BUF9EVE1SMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDQ0MCkKKyNkZWZpbmUgTU1BUF9EVE1SMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDQ4MCkKKyNkZWZpbmUgTU1BUF9EVE1SMwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDRDMCkKKyNkZWZpbmUgTU1BUF9JTlRDMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMEMwMCkKKyNkZWZpbmUgTU1BUF9JTlRDMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMEQwMCkKKyNkZWZpbmUgTU1BUF9JTlRDQUNLCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwRjAwKQorI2RlZmluZSBNTUFQX0ZFQzAJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDEwMDApCisjZGVmaW5lIE1NQVBfRkVDMEZJRk8JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDE0MDApCisjZGVmaW5lIE1NQVBfRkVDMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMTgwMCkKKyNkZWZpbmUgTU1BUF9GRUMxRklGTwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMUMwMCkKKyNkZWZpbmUgTU1BUF9HUElPCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTAwMDAwKQorI2RlZmluZSBNTUFQX1JDTQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDExMDAwMCkKKyNkZWZpbmUgTU1BUF9DQ00JKENPTkZJR19TWVNfTUJBUiArIDB4MDAxMTAwMDQpCisjZGVmaW5lIE1NQVBfUExMCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTIwMDAwKQorI2RlZmluZSBNTUFQX0VQT1JUCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTMwMDAwKQorI2RlZmluZSBNTUFQX1dET0cJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxNDAwMDApCisjZGVmaW5lIE1NQVBfUElUMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE1MDAwMCkKKyNkZWZpbmUgTU1BUF9QSVQxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTYwMDAwKQorI2RlZmluZSBNTUFQX1BJVDIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxNzAwMDApCisjZGVmaW5lIE1NQVBfUElUMwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE4MDAwMCkKKyNkZWZpbmUgTU1BUF9NREhBCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTkwMDAwKQorI2RlZmluZSBNTUFQX1JORwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDFBMDAwMCkKKyNkZWZpbmUgTU1BUF9TS0hBCShDT05GSUdfU1lTX01CQVIgKyAweDAwMUIwMDAwKQorI2RlZmluZSBNTUFQX1VTQgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDFDMDAwMCkKKyNkZWZpbmUgTU1BUF9QV00wCShDT05GSUdfU1lTX01CQVIgKyAweDAwMUQwMDAwKQogCiAvKiBTeXN0ZW0gY29uZmlndXJhdGlvbiByZWdpc3RlcnMKICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzUyODIuaCBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI4Mi5oCmluZGV4IGU4Mjk2MGEuLmU5NjQ2M2JlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzUyODIuaAorKysgYi9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzUyODIuaApAQCAtMjUsNDIgKzI1LDQyIEBACiAjaWZuZGVmIF9fSU1NQVBfNTI4Ml9fCiAjZGVmaW5lIF9fSU1NQVBfNTI4Ml9fCiAKLSNkZWZpbmUgTU1BUF9TQ00JKENGR19NQkFSICsgMHgwMDAwMDAwMCkKLSNkZWZpbmUgTU1BUF9TRFJBTUMJKENGR19NQkFSICsgMHgwMDAwMDA0MCkKLSNkZWZpbmUgTU1BUF9GQkNTCShDRkdfTUJBUiArIDB4MDAwMDAwODApCi0jZGVmaW5lIE1NQVBfRE1BMAkoQ0ZHX01CQVIgKyAweDAwMDAwMTAwKQotI2RlZmluZSBNTUFQX0RNQTEJKENGR19NQkFSICsgMHgwMDAwMDE0MCkKLSNkZWZpbmUgTU1BUF9ETUEyCShDRkdfTUJBUiArIDB4MDAwMDAxODApCi0jZGVmaW5lIE1NQVBfRE1BMwkoQ0ZHX01CQVIgKyAweDAwMDAwMUMwKQotI2RlZmluZSBNTUFQX1VBUlQwCShDRkdfTUJBUiArIDB4MDAwMDAyMDApCi0jZGVmaW5lIE1NQVBfVUFSVDEJKENGR19NQkFSICsgMHgwMDAwMDI0MCkKLSNkZWZpbmUgTU1BUF9VQVJUMgkoQ0ZHX01CQVIgKyAweDAwMDAwMjgwKQotI2RlZmluZSBNTUFQX0kyQwkoQ0ZHX01CQVIgKyAweDAwMDAwMzAwKQotI2RlZmluZSBNTUFQX1FTUEkJKENGR19NQkFSICsgMHgwMDAwMDM0MCkKLSNkZWZpbmUgTU1BUF9EVE1SMAkoQ0ZHX01CQVIgKyAweDAwMDAwNDAwKQotI2RlZmluZSBNTUFQX0RUTVIxCShDRkdfTUJBUiArIDB4MDAwMDA0NDApCi0jZGVmaW5lIE1NQVBfRFRNUjIJKENGR19NQkFSICsgMHgwMDAwMDQ4MCkKLSNkZWZpbmUgTU1BUF9EVE1SMwkoQ0ZHX01CQVIgKyAweDAwMDAwNEMwKQotI2RlZmluZSBNTUFQX0lOVEMwCShDRkdfTUJBUiArIDB4MDAwMDBDMDApCi0jZGVmaW5lIE1NQVBfSU5UQzEJKENGR19NQkFSICsgMHgwMDAwMEQwMCkKLSNkZWZpbmUgTU1BUF9JTlRDQUNLCShDRkdfTUJBUiArIDB4MDAwMDBGMDApCi0jZGVmaW5lIE1NQVBfRkVDCShDRkdfTUJBUiArIDB4MDAwMDEwMDApCi0jZGVmaW5lIE1NQVBfRkVDRklGTwkoQ0ZHX01CQVIgKyAweDAwMDAxNDAwKQotI2RlZmluZSBNTUFQX0dQSU8JKENGR19NQkFSICsgMHgwMDEwMDAwMCkKLSNkZWZpbmUgTU1BUF9DQ00JKENGR19NQkFSICsgMHgwMDExMDAwMCkKLSNkZWZpbmUgTU1BUF9QTEwJKENGR19NQkFSICsgMHgwMDEyMDAwMCkKLSNkZWZpbmUgTU1BUF9FUE9SVAkoQ0ZHX01CQVIgKyAweDAwMTMwMDAwKQotI2RlZmluZSBNTUFQX1dET0cJKENGR19NQkFSICsgMHgwMDE0MDAwMCkKLSNkZWZpbmUgTU1BUF9QSVQwCShDRkdfTUJBUiArIDB4MDAxNTAwMDApCi0jZGVmaW5lIE1NQVBfUElUMQkoQ0ZHX01CQVIgKyAweDAwMTYwMDAwKQotI2RlZmluZSBNTUFQX1BJVDIJKENGR19NQkFSICsgMHgwMDE3MDAwMCkKLSNkZWZpbmUgTU1BUF9QSVQzCShDRkdfTUJBUiArIDB4MDAxODAwMDApCi0jZGVmaW5lIE1NQVBfUUFEQwkoQ0ZHX01CQVIgKyAweDAwMTkwMDAwKQotI2RlZmluZSBNTUFQX0dQVE1SQQkoQ0ZHX01CQVIgKyAweDAwMUEwMDAwKQotI2RlZmluZSBNTUFQX0dQVE1SQgkoQ0ZHX01CQVIgKyAweDAwMUIwMDAwKQotI2RlZmluZSBNTUFQX0NBTgkoQ0ZHX01CQVIgKyAweDAwMUMwMDAwKQotI2RlZmluZSBNTUFQX0NGTUMJKENGR19NQkFSICsgMHgwMDFEMDAwMCkKLSNkZWZpbmUgTU1BUF9DRk1NRU0JKENGR19NQkFSICsgMHgwNDAwMDAwMCkKKyNkZWZpbmUgTU1BUF9TQ00JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwMDApCisjZGVmaW5lIE1NQVBfU0RSQU1DCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMDQwKQorI2RlZmluZSBNTUFQX0ZCQ1MJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwODApCisjZGVmaW5lIE1NQVBfRE1BMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDEwMCkKKyNkZWZpbmUgTU1BUF9ETUExCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTQwKQorI2RlZmluZSBNTUFQX0RNQTIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxODApCisjZGVmaW5lIE1NQVBfRE1BMwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDFDMCkKKyNkZWZpbmUgTU1BUF9VQVJUMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDIwMCkKKyNkZWZpbmUgTU1BUF9VQVJUMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDI0MCkKKyNkZWZpbmUgTU1BUF9VQVJUMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDI4MCkKKyNkZWZpbmUgTU1BUF9JMkMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAzMDApCisjZGVmaW5lIE1NQVBfUVNQSQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDM0MCkKKyNkZWZpbmUgTU1BUF9EVE1SMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDQwMCkKKyNkZWZpbmUgTU1BUF9EVE1SMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDQ0MCkKKyNkZWZpbmUgTU1BUF9EVE1SMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDQ4MCkKKyNkZWZpbmUgTU1BUF9EVE1SMwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDRDMCkKKyNkZWZpbmUgTU1BUF9JTlRDMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMEMwMCkKKyNkZWZpbmUgTU1BUF9JTlRDMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMEQwMCkKKyNkZWZpbmUgTU1BUF9JTlRDQUNLCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwRjAwKQorI2RlZmluZSBNTUFQX0ZFQwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMTAwMCkKKyNkZWZpbmUgTU1BUF9GRUNGSUZPCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAxNDAwKQorI2RlZmluZSBNTUFQX0dQSU8JKENPTkZJR19TWVNfTUJBUiArIDB4MDAxMDAwMDApCisjZGVmaW5lIE1NQVBfQ0NNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTEwMDAwKQorI2RlZmluZSBNTUFQX1BMTAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDEyMDAwMCkKKyNkZWZpbmUgTU1BUF9FUE9SVAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDEzMDAwMCkKKyNkZWZpbmUgTU1BUF9XRE9HCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTQwMDAwKQorI2RlZmluZSBNTUFQX1BJVDAJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxNTAwMDApCisjZGVmaW5lIE1NQVBfUElUMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE2MDAwMCkKKyNkZWZpbmUgTU1BUF9QSVQyCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTcwMDAwKQorI2RlZmluZSBNTUFQX1BJVDMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxODAwMDApCisjZGVmaW5lIE1NQVBfUUFEQwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE5MDAwMCkKKyNkZWZpbmUgTU1BUF9HUFRNUkEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxQTAwMDApCisjZGVmaW5lIE1NQVBfR1BUTVJCCShDT05GSUdfU1lTX01CQVIgKyAweDAwMUIwMDAwKQorI2RlZmluZSBNTUFQX0NBTgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDFDMDAwMCkKKyNkZWZpbmUgTU1BUF9DRk1DCShDT05GSUdfU1lTX01CQVIgKyAweDAwMUQwMDAwKQorI2RlZmluZSBNTUFQX0NGTU1FTQkoQ09ORklHX1NZU19NQkFSICsgMHgwNDAwMDAwMCkKIAogLyogU3lzdGVtIENvbnRyb2wgTW9kdWxlICovCiB0eXBlZGVmIHN0cnVjdCBzY21fY3RybCB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzU0N3hfOHguaCBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTQ3eF84eC5oCmluZGV4IDU0ZWY0MGYuLmMyMjE5MzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTQ3eF84eC5oCisrKyBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTQ3eF84eC5oCkBAIC0yNiwzNiArMjYsMzYgQEAKICNpZm5kZWYgX19JTU1BUF81NDd4Xzh4X18KICNkZWZpbmUgX19JTU1BUF81NDd4Xzh4X18KIAotI2RlZmluZSBNTUFQX1NJVQkoQ0ZHX01CQVIgKyAweDAwMDAwMDAwKQotI2RlZmluZSBNTUFQX1NEUkFNCShDRkdfTUJBUiArIDB4MDAwMDAxMDApCi0jZGVmaW5lIE1NQVBfWEFSQgkoQ0ZHX01CQVIgKyAweDAwMDAwMjQwKQotI2RlZmluZSBNTUFQX0ZCQ1MJKENGR19NQkFSICsgMHgwMDAwMDUwMCkKLSNkZWZpbmUgTU1BUF9JTlRDMAkoQ0ZHX01CQVIgKyAweDAwMDAwNzAwKQotI2RlZmluZSBNTUFQX0dQVE1SCShDRkdfTUJBUiArIDB4MDAwMDA4MDApCi0jZGVmaW5lIE1NQVBfU0xUMAkoQ0ZHX01CQVIgKyAweDAwMDAwOTAwKQotI2RlZmluZSBNTUFQX1NMVDEJKENGR19NQkFSICsgMHgwMDAwMDkxMCkKLSNkZWZpbmUgTU1BUF9HUElPCShDRkdfTUJBUiArIDB4MDAwMDBBMDApCi0jZGVmaW5lIE1NQVBfUENJCShDRkdfTUJBUiArIDB4MDAwMDBCMDApCi0jZGVmaW5lIE1NQVBfUENJQVJCCShDRkdfTUJBUiArIDB4MDAwMDBDMDApCi0jZGVmaW5lIE1NQVBfRVhURE1BCShDRkdfTUJBUiArIDB4MDAwMDBEMDApCi0jZGVmaW5lIE1NQVBfRVBPUlQJKENGR19NQkFSICsgMHgwMDAwMEYwMCkKLSNkZWZpbmUgTU1BUF9DVE0JKENGR19NQkFSICsgMHgwMDAwN0YwMCkKLSNkZWZpbmUgTU1BUF9NQ0RNQQkoQ0ZHX01CQVIgKyAweDAwMDA4MDAwKQotI2RlZmluZSBNTUFQX1NDUENJCShDRkdfTUJBUiArIDB4MDAwMDg0MDApCi0jZGVmaW5lIE1NQVBfVUFSVDAJKENGR19NQkFSICsgMHgwMDAwODYwMCkKLSNkZWZpbmUgTU1BUF9VQVJUMQkoQ0ZHX01CQVIgKyAweDAwMDA4NzAwKQotI2RlZmluZSBNTUFQX1VBUlQyCShDRkdfTUJBUiArIDB4MDAwMDg4MDApCi0jZGVmaW5lIE1NQVBfVUFSVDMJKENGR19NQkFSICsgMHgwMDAwODkwMCkKLSNkZWZpbmUgTU1BUF9EU1BJCShDRkdfTUJBUiArIDB4MDAwMDhBMDApCi0jZGVmaW5lIE1NQVBfSTJDCShDRkdfTUJBUiArIDB4MDAwMDhGMDApCi0jZGVmaW5lIE1NQVBfRkVDMAkoQ0ZHX01CQVIgKyAweDAwMDA5MDAwKQotI2RlZmluZSBNTUFQX0ZFQzEJKENGR19NQkFSICsgMHgwMDAwOTgwMCkKLSNkZWZpbmUgTU1BUF9DQU4wCShDRkdfTUJBUiArIDB4MDAwMEEwMDApCi0jZGVmaW5lIE1NQVBfQ0FOMQkoQ0ZHX01CQVIgKyAweDAwMDBBODAwKQotI2RlZmluZSBNTUFQX1VTQkQJKENGR19NQkFSICsgMHgwMDAwQjAwMCkKLSNkZWZpbmUgTU1BUF9TUkFNCShDRkdfTUJBUiArIDB4MDAwMTAwMDApCi0jZGVmaW5lIE1NQVBfU1JBTUNGRwkoQ0ZHX01CQVIgKyAweDAwMDFGRjAwKQotI2RlZmluZSBNTUFQX1NFQwkoQ0ZHX01CQVIgKyAweDAwMDIwMDAwKQorI2RlZmluZSBNTUFQX1NJVQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDAwMCkKKyNkZWZpbmUgTU1BUF9TRFJBTQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDEwMCkKKyNkZWZpbmUgTU1BUF9YQVJCCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjQwKQorI2RlZmluZSBNTUFQX0ZCQ1MJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDA1MDApCisjZGVmaW5lIE1NQVBfSU5UQzAJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDA3MDApCisjZGVmaW5lIE1NQVBfR1BUTVIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDA4MDApCisjZGVmaW5lIE1NQVBfU0xUMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDkwMCkKKyNkZWZpbmUgTU1BUF9TTFQxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwOTEwKQorI2RlZmluZSBNTUFQX0dQSU8JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDBBMDApCisjZGVmaW5lIE1NQVBfUENJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwQjAwKQorI2RlZmluZSBNTUFQX1BDSUFSQgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMEMwMCkKKyNkZWZpbmUgTU1BUF9FWFRETUEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDBEMDApCisjZGVmaW5lIE1NQVBfRVBPUlQJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDBGMDApCisjZGVmaW5lIE1NQVBfQ1RNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA3RjAwKQorI2RlZmluZSBNTUFQX01DRE1BCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA4MDAwKQorI2RlZmluZSBNTUFQX1NDUENJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA4NDAwKQorI2RlZmluZSBNTUFQX1VBUlQwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA4NjAwKQorI2RlZmluZSBNTUFQX1VBUlQxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA4NzAwKQorI2RlZmluZSBNTUFQX1VBUlQyCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA4ODAwKQorI2RlZmluZSBNTUFQX1VBUlQzCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA4OTAwKQorI2RlZmluZSBNTUFQX0RTUEkJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDhBMDApCisjZGVmaW5lIE1NQVBfSTJDCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA4RjAwKQorI2RlZmluZSBNTUFQX0ZFQzAJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDkwMDApCisjZGVmaW5lIE1NQVBfRkVDMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwOTgwMCkKKyNkZWZpbmUgTU1BUF9DQU4wCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDBBMDAwKQorI2RlZmluZSBNTUFQX0NBTjEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMEE4MDApCisjZGVmaW5lIE1NQVBfVVNCRAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwQjAwMCkKKyNkZWZpbmUgTU1BUF9TUkFNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDEwMDAwKQorI2RlZmluZSBNTUFQX1NSQU1DRkcJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMUZGMDApCisjZGVmaW5lIE1NQVBfU0VDCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDIwMDAwKQogCiAjaW5jbHVkZSA8YXNtL2NvbGRmaXJlL2ZsZXhidXMuaD4KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tbTY4ay9tNTI0OS5oIGIvaW5jbHVkZS9hc20tbTY4ay9tNTI0OS5oCmluZGV4IGZhY2YwYzkuLmZlYjY3NWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW02OGsvbTUyNDkuaAorKysgYi9pbmNsdWRlL2FzbS1tNjhrL201MjQ5LmgKQEAgLTMxLDE0ICszMSwxNCBAQAogLyoKICAqIHVzZWZ1bCBkZWZpbml0aW9ucyBmb3IgcmVhZGluZy93cml0aW5nIE1CQVIgb2Zmc2V0IG1lbW9yeQogICovCi0jZGVmaW5lIG1iYXJfcmVhZExvbmcoeCkJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKSAoQ0ZHX01CQVIgKyB4KSkKLSNkZWZpbmUgbWJhcl93cml0ZUxvbmcoeCx5KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopIChDRkdfTUJBUiArIHgpKSA9IHkKLSNkZWZpbmUgbWJhcl93cml0ZVNob3J0KHgseSkJKigodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikgKENGR19NQkFSICsgeCkpID0geQotI2RlZmluZSBtYmFyX3dyaXRlQnl0ZSh4LHkpCSooKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikgKENGR19NQkFSICsgeCkpID0geQotI2RlZmluZSBtYmFyMl9yZWFkTG9uZyh4KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopIChDRkdfTUJBUjIgKyB4KSkKLSNkZWZpbmUgbWJhcjJfd3JpdGVMb25nKHgseSkJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKSAoQ0ZHX01CQVIyICsgeCkpID0geQotI2RlZmluZSBtYmFyMl93cml0ZVNob3J0KHgseSkJKigodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikgKENGR19NQkFSMiArIHgpKSA9IHkKLSNkZWZpbmUgbWJhcjJfd3JpdGVCeXRlKHgseSkJKigodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKSAoQ0ZHX01CQVIyICsgeCkpID0geQorI2RlZmluZSBtYmFyX3JlYWRMb25nKHgpCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgKENPTkZJR19TWVNfTUJBUiArIHgpKQorI2RlZmluZSBtYmFyX3dyaXRlTG9uZyh4LHkpCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgKENPTkZJR19TWVNfTUJBUiArIHgpKSA9IHkKKyNkZWZpbmUgbWJhcl93cml0ZVNob3J0KHgseSkJKigodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikgKENPTkZJR19TWVNfTUJBUiArIHgpKSA9IHkKKyNkZWZpbmUgbWJhcl93cml0ZUJ5dGUoeCx5KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopIChDT05GSUdfU1lTX01CQVIgKyB4KSkgPSB5CisjZGVmaW5lIG1iYXIyX3JlYWRMb25nKHgpCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgKENPTkZJR19TWVNfTUJBUjIgKyB4KSkKKyNkZWZpbmUgbWJhcjJfd3JpdGVMb25nKHgseSkJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKSAoQ09ORklHX1NZU19NQkFSMiArIHgpKSA9IHkKKyNkZWZpbmUgbWJhcjJfd3JpdGVTaG9ydCh4LHkpCSooKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopIChDT05GSUdfU1lTX01CQVIyICsgeCkpID0geQorI2RlZmluZSBtYmFyMl93cml0ZUJ5dGUoeCx5KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopIChDT05GSUdfU1lTX01CQVIyICsgeCkpID0geQogCiAvKgogICogU2l6ZSBvZiBpbnRlcm5hbCBSQU0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW02OGsvbTUyNzEuaCBiL2luY2x1ZGUvYXNtLW02OGsvbTUyNzEuaAppbmRleCBiZTM0Mzk4Li4wMDBmMGE1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1tNjhrL201MjcxLmgKKysrIGIvaW5jbHVkZS9hc20tbTY4ay9tNTI3MS5oCkBAIC0yOCwxMiArMjgsMTIgQEAKICNpZm5kZWYJX01DRjUyNzFfSF8KICNkZWZpbmUJX01DRjUyNzFfSF8KIAotI2RlZmluZSBtYmFyX3JlYWRMb25nKHgpCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgKENGR19NQkFSICsgeCkpCi0jZGVmaW5lIG1iYXJfcmVhZFNob3J0KHgpCSooKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopIChDRkdfTUJBUiArIHgpKQotI2RlZmluZSBtYmFyX3JlYWRCeXRlKHgpCSooKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikgKENGR19NQkFSICsgeCkpCi0jZGVmaW5lIG1iYXJfd3JpdGVMb25nKHgseSkJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKSAoQ0ZHX01CQVIgKyB4KSkgPSB5Ci0jZGVmaW5lIG1iYXJfd3JpdGVTaG9ydCh4LHkpCSooKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopIChDRkdfTUJBUiArIHgpKSA9IHkKLSNkZWZpbmUgbWJhcl93cml0ZUJ5dGUoeCx5KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopIChDRkdfTUJBUiArIHgpKSA9IHkKKyNkZWZpbmUgbWJhcl9yZWFkTG9uZyh4KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopIChDT05GSUdfU1lTX01CQVIgKyB4KSkKKyNkZWZpbmUgbWJhcl9yZWFkU2hvcnQoeCkJKigodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikgKENPTkZJR19TWVNfTUJBUiArIHgpKQorI2RlZmluZSBtYmFyX3JlYWRCeXRlKHgpCSooKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikgKENPTkZJR19TWVNfTUJBUiArIHgpKQorI2RlZmluZSBtYmFyX3dyaXRlTG9uZyh4LHkpCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgKENPTkZJR19TWVNfTUJBUiArIHgpKSA9IHkKKyNkZWZpbmUgbWJhcl93cml0ZVNob3J0KHgseSkJKigodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikgKENPTkZJR19TWVNfTUJBUiArIHgpKSA9IHkKKyNkZWZpbmUgbWJhcl93cml0ZUJ5dGUoeCx5KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopIChDT05GSUdfU1lTX01CQVIgKyB4KSkgPSB5CiAKICNkZWZpbmUgTUNGX0ZNUExMX1NZTkNSCQkJCTB4MTIwMDAwCiAjZGVmaW5lIE1DRl9GTVBMTF9TWU5TUgkJCQkweDEyMDAwNApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tbTY4ay9tNTI4Mi5oIGIvaW5jbHVkZS9hc20tbTY4ay9tNTI4Mi5oCmluZGV4IGY2YTZiMDQuLjc3MmM3ZTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW02OGsvbTUyODIuaAorKysgYi9pbmNsdWRlL2FzbS1tNjhrL201MjgyLmgKQEAgLTEyNSwxMTIgKzEyNSwxMTIgQEAKIAogLyogR2VuZXJhbCBQdXJwb3NlIEkvTyBNb2R1bGUgR1BJTyAqLwogCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEEJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDAwKSkKLSNkZWZpbmUgTUNGR1BJT19QT1JUQgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMDEpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRDCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAwMikpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEQJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDAzKSkKLSNkZWZpbmUgTUNGR1BJT19QT1JURQkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMDQpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRGCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAwNSkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEcJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDA2KSkKLSNkZWZpbmUgTUNGR1BJT19QT1JUSAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMDcpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRKCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAwOCkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVERECQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAwOSkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEVICQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAwQSkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEVMCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAwQikpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEFTCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAwQykpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVFFTCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAwRCkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVFNECQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAwRSkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVFRDCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAwRikpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVFRECQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAxMCkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVFVBCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAxMSkpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEEJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAwMCkpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEIJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAwMSkpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEMJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAwMikpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEQJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAwMykpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEUJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAwNCkpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEYJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAwNSkpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEcJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAwNikpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEgJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAwNykpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEoJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAwOCkpCisjZGVmaW5lIE1DRkdQSU9fUE9SVERECQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMDkpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRFSAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDBBKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JURUwJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAwQikpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEFTCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMEMpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRRUwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDBEKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUU0QJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAwRSkpCisjZGVmaW5lIE1DRkdQSU9fUE9SVFRDCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMEYpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRURAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDEwKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUVUEJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAxMSkpCiAKLSNkZWZpbmUgTUNGR1BJT19ERFJBCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAxNCkpCi0jZGVmaW5lIE1DRkdQSU9fRERSQgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMTUpKQotI2RlZmluZSBNQ0ZHUElPX0REUkMJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDE2KSkKLSNkZWZpbmUgTUNGR1BJT19ERFJECQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAxNykpCi0jZGVmaW5lIE1DRkdQSU9fRERSRQkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMTgpKQotI2RlZmluZSBNQ0ZHUElPX0REUkYJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDE5KSkKLSNkZWZpbmUgTUNGR1BJT19ERFJHCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAxQSkpCi0jZGVmaW5lIE1DRkdQSU9fRERSSAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMUIpKQotI2RlZmluZSBNQ0ZHUElPX0REUkoJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDFDKSkKLSNkZWZpbmUgTUNGR1BJT19ERFJERAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMUQpKQotI2RlZmluZSBNQ0ZHUElPX0REUkVICQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAxRSkpCi0jZGVmaW5lIE1DRkdQSU9fRERSRUwJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDFGKSkKLSNkZWZpbmUgTUNGR1BJT19ERFJBUwkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMjApKQotI2RlZmluZSBNQ0ZHUElPX0REUlFTCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyMSkpCi0jZGVmaW5lIE1DRkdQSU9fRERSU0QJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDIyKSkKLSNkZWZpbmUgTUNGR1BJT19ERFJUQwkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMjMpKQotI2RlZmluZSBNQ0ZHUElPX0REUlRECQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyNCkpCi0jZGVmaW5lIE1DRkdQSU9fRERSVUEJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDI1KSkKKyNkZWZpbmUgTUNGR1BJT19ERFJBCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMTQpKQorI2RlZmluZSBNQ0ZHUElPX0REUkIJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAxNSkpCisjZGVmaW5lIE1DRkdQSU9fRERSQwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDE2KSkKKyNkZWZpbmUgTUNGR1BJT19ERFJECQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMTcpKQorI2RlZmluZSBNQ0ZHUElPX0REUkUJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAxOCkpCisjZGVmaW5lIE1DRkdQSU9fRERSRgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDE5KSkKKyNkZWZpbmUgTUNGR1BJT19ERFJHCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMUEpKQorI2RlZmluZSBNQ0ZHUElPX0REUkgJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAxQikpCisjZGVmaW5lIE1DRkdQSU9fRERSSgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDFDKSkKKyNkZWZpbmUgTUNGR1BJT19ERFJERAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDFEKSkKKyNkZWZpbmUgTUNGR1BJT19ERFJFSAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDFFKSkKKyNkZWZpbmUgTUNGR1BJT19ERFJFTAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDFGKSkKKyNkZWZpbmUgTUNGR1BJT19ERFJBUwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDIwKSkKKyNkZWZpbmUgTUNGR1BJT19ERFJRUwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDIxKSkKKyNkZWZpbmUgTUNGR1BJT19ERFJTRAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDIyKSkKKyNkZWZpbmUgTUNGR1BJT19ERFJUQwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDIzKSkKKyNkZWZpbmUgTUNGR1BJT19ERFJURAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDI0KSkKKyNkZWZpbmUgTUNGR1BJT19ERFJVQQkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDI1KSkKIAotI2RlZmluZSBNQ0ZHUElPX1BPUlRBUAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMjgpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRCUAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMjkpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRDUAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMkEpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlREUAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMkIpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRFUAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMkMpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRGUAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMkQpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRHUAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMkUpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRIUAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMkYpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRKUAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMzApKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRERFAJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDMxKSkKLSNkZWZpbmUgTUNGR1BJT19QT1JURUhQCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzMikpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEVMUAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMzMpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRBU1AJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDM0KSkKLSNkZWZpbmUgTUNGR1BJT19QT1JUUVNQCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzNSkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVFNEUAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMzYpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRUQ1AJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDM3KSkKLSNkZWZpbmUgTUNGR1BJT19QT1JUVERQCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzOCkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVFVBUAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMzkpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRBUAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDI4KSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUQlAJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAyOSkpCisjZGVmaW5lIE1DRkdQSU9fUE9SVENQCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMkEpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlREUAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDJCKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JURVAJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAyQykpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEZQCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMkQpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRHUAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDJFKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUSFAJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAyRikpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEpQCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMzApKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRERFAJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzMSkpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEVIUAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDMyKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JURUxQCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMzMpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRBU1AJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzNCkpCisjZGVmaW5lIE1DRkdQSU9fUE9SVFFTUAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDM1KSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUU0RQCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMzYpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRUQ1AJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzNykpCisjZGVmaW5lIE1DRkdQSU9fUE9SVFREUAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDM4KSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUVUFQCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMzkpKQogCi0jZGVmaW5lIE1DRkdQSU9fU0VUQQkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMjgpKQotI2RlZmluZSBNQ0ZHUElPX1NFVEIJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDI5KSkKLSNkZWZpbmUgTUNGR1BJT19TRVRDCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyQSkpCi0jZGVmaW5lIE1DRkdQSU9fU0VURAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMkIpKQotI2RlZmluZSBNQ0ZHUElPX1NFVEUJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDJDKSkKLSNkZWZpbmUgTUNGR1BJT19TRVRGCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyRCkpCi0jZGVmaW5lIE1DRkdQSU9fU0VURwkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMkUpKQotI2RlZmluZSBNQ0ZHUElPX1NFVEgJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDJGKSkKLSNkZWZpbmUgTUNGR1BJT19TRVRKCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzMCkpCi0jZGVmaW5lIE1DRkdQSU9fU0VUREQJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDMxKSkKLSNkZWZpbmUgTUNGR1BJT19TRVRFSAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMzIpKQotI2RlZmluZSBNQ0ZHUElPX1NFVEVMCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzMykpCi0jZGVmaW5lIE1DRkdQSU9fU0VUQVMJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDM0KSkKLSNkZWZpbmUgTUNGR1BJT19TRVRRUwkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMzUpKQotI2RlZmluZSBNQ0ZHUElPX1NFVFNECQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzNikpCi0jZGVmaW5lIE1DRkdQSU9fU0VUVEMJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDM3KSkKLSNkZWZpbmUgTUNGR1BJT19TRVRURAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMzgpKQotI2RlZmluZSBNQ0ZHUElPX1NFVFVBCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzOSkpCisjZGVmaW5lIE1DRkdQSU9fU0VUQQkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDI4KSkKKyNkZWZpbmUgTUNGR1BJT19TRVRCCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMjkpKQorI2RlZmluZSBNQ0ZHUElPX1NFVEMJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAyQSkpCisjZGVmaW5lIE1DRkdQSU9fU0VURAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDJCKSkKKyNkZWZpbmUgTUNGR1BJT19TRVRFCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMkMpKQorI2RlZmluZSBNQ0ZHUElPX1NFVEYJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAyRCkpCisjZGVmaW5lIE1DRkdQSU9fU0VURwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDJFKSkKKyNkZWZpbmUgTUNGR1BJT19TRVRICQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMkYpKQorI2RlZmluZSBNQ0ZHUElPX1NFVEoJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzMCkpCisjZGVmaW5lIE1DRkdQSU9fU0VUREQJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzMSkpCisjZGVmaW5lIE1DRkdQSU9fU0VURUgJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzMikpCisjZGVmaW5lIE1DRkdQSU9fU0VURUwJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzMykpCisjZGVmaW5lIE1DRkdQSU9fU0VUQVMJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzNCkpCisjZGVmaW5lIE1DRkdQSU9fU0VUUVMJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzNSkpCisjZGVmaW5lIE1DRkdQSU9fU0VUU0QJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzNikpCisjZGVmaW5lIE1DRkdQSU9fU0VUVEMJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzNykpCisjZGVmaW5lIE1DRkdQSU9fU0VUVEQJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzOCkpCisjZGVmaW5lIE1DRkdQSU9fU0VUVUEJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzOSkpCiAKLSNkZWZpbmUgTUNGR1BJT19DTFJBCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzQykpCi0jZGVmaW5lIE1DRkdQSU9fQ0xSQgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwM0QpKQotI2RlZmluZSBNQ0ZHUElPX0NMUkMJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDNFKSkKLSNkZWZpbmUgTUNGR1BJT19DTFJECQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzRikpCi0jZGVmaW5lIE1DRkdQSU9fQ0xSRQkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNDApKQotI2RlZmluZSBNQ0ZHUElPX0NMUkYJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDQxKSkKLSNkZWZpbmUgTUNGR1BJT19DTFJHCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDA0MikpCi0jZGVmaW5lIE1DRkdQSU9fQ0xSSAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNDMpKQotI2RlZmluZSBNQ0ZHUElPX0NMUkoJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDQ0KSkKLSNkZWZpbmUgTUNGR1BJT19DTFJERAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNDUpKQotI2RlZmluZSBNQ0ZHUElPX0NMUkVICQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDA0NikpCi0jZGVmaW5lIE1DRkdQSU9fQ0xSRUwJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDQ3KSkKLSNkZWZpbmUgTUNGR1BJT19DTFJBUwkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNDgpKQotI2RlZmluZSBNQ0ZHUElPX0NMUlFTCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDA0OSkpCi0jZGVmaW5lIE1DRkdQSU9fQ0xSU0QJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDRBKSkKLSNkZWZpbmUgTUNGR1BJT19DTFJUQwkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNEIpKQotI2RlZmluZSBNQ0ZHUElPX0NMUlRECQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDA0QykpCi0jZGVmaW5lIE1DRkdQSU9fQ0xSVUEJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDREKSkKKyNkZWZpbmUgTUNGR1BJT19DTFJBCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwM0MpKQorI2RlZmluZSBNQ0ZHUElPX0NMUkIJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzRCkpCisjZGVmaW5lIE1DRkdQSU9fQ0xSQwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDNFKSkKKyNkZWZpbmUgTUNGR1BJT19DTFJECQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwM0YpKQorI2RlZmluZSBNQ0ZHUElPX0NMUkUJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDA0MCkpCisjZGVmaW5lIE1DRkdQSU9fQ0xSRgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDQxKSkKKyNkZWZpbmUgTUNGR1BJT19DTFJHCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNDIpKQorI2RlZmluZSBNQ0ZHUElPX0NMUkgJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDA0MykpCisjZGVmaW5lIE1DRkdQSU9fQ0xSSgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDQ0KSkKKyNkZWZpbmUgTUNGR1BJT19DTFJERAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDQ1KSkKKyNkZWZpbmUgTUNGR1BJT19DTFJFSAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDQ2KSkKKyNkZWZpbmUgTUNGR1BJT19DTFJFTAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDQ3KSkKKyNkZWZpbmUgTUNGR1BJT19DTFJBUwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDQ4KSkKKyNkZWZpbmUgTUNGR1BJT19DTFJRUwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDQ5KSkKKyNkZWZpbmUgTUNGR1BJT19DTFJTRAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDRBKSkKKyNkZWZpbmUgTUNGR1BJT19DTFJUQwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDRCKSkKKyNkZWZpbmUgTUNGR1BJT19DTFJURAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDRDKSkKKyNkZWZpbmUgTUNGR1BJT19DTFJVQQkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDREKSkKIAotI2RlZmluZSBNQ0ZHUElPX1BCQ0RQQVIJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNTApKQotI2RlZmluZSBNQ0ZHUElPX1BGUEFSCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDA1MSkpCi0jZGVmaW5lIE1DRkdQSU9fUEVQQVIJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MTAwMDUyKSkKLSNkZWZpbmUgTUNGR1BJT19QSlBBUgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNTQpKQotI2RlZmluZSBNQ0ZHUElPX1BTRFBBUgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNTUpKQotI2RlZmluZSBNQ0ZHUElPX1BBU1BBUgkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgxMDAwNTYpKQotI2RlZmluZSBNQ0ZHUElPX1BFSExQQVIJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDU4KSkKLSNkZWZpbmUgTUNGR1BJT19QUVNQQVIJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDU5KSkKLSNkZWZpbmUgTUNGR1BJT19QVENQQVIJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDVBKSkKLSNkZWZpbmUgTUNGR1BJT19QVERQQVIJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDVCKSkKLSNkZWZpbmUgTUNGR1BJT19QVUFQQVIJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDVDKSkKKyNkZWZpbmUgTUNGR1BJT19QQkNEUEFSCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDA1MCkpCisjZGVmaW5lIE1DRkdQSU9fUEZQQVIJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDA1MSkpCisjZGVmaW5lIE1DRkdQSU9fUEVQQVIJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDEwMDA1MikpCisjZGVmaW5lIE1DRkdQSU9fUEpQQVIJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDA1NCkpCisjZGVmaW5lIE1DRkdQSU9fUFNEUEFSCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNTUpKQorI2RlZmluZSBNQ0ZHUElPX1BBU1BBUgkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MTAwMDU2KSkKKyNkZWZpbmUgTUNGR1BJT19QRUhMUEFSCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNTgpKQorI2RlZmluZSBNQ0ZHUElPX1BRU1BBUgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDU5KSkKKyNkZWZpbmUgTUNGR1BJT19QVENQQVIJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDA1QSkpCisjZGVmaW5lIE1DRkdQSU9fUFREUEFSCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNUIpKQorI2RlZmluZSBNQ0ZHUElPX1BVQVBBUgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDVDKSkKIAogLyogQml0IGxldmVsIGRlZmluaXRpb25zIGFuZCBtYWNyb3MgKi8KICNkZWZpbmUgTUNGR1BJT19QT1JUNwkJCSgweDgwKQpAQCAtMzI3LDI1ICszMjcsMjUgQEAKIAogLyogU3lzdGVtIENvbnJvbCBNb2R1bGUgU0NNICovCiAKLSNkZWZpbmUgTUNGU0NNX1JBTUJBUgkJKCoodnVfbG9uZyAqKSAoQ0ZHX01CQVIrMHgwMDAwMDAwOCkpCi0jZGVmaW5lIE1DRlNDTV9DUlNSCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDAwMDAwMDEwKSkKLSNkZWZpbmUgTUNGU0NNX0NXQ1IJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MDAwMDAwMTEpKQotI2RlZmluZSBNQ0ZTQ01fTFBJQ1IJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MDAwMDAwMTIpKQotI2RlZmluZSBNQ0ZTQ01fQ1dTUgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDAwMDAxMykpCisjZGVmaW5lIE1DRlNDTV9SQU1CQVIJCSgqKHZ1X2xvbmcgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDA4KSkKKyNkZWZpbmUgTUNGU0NNX0NSU1IJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDEwKSkKKyNkZWZpbmUgTUNGU0NNX0NXQ1IJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDExKSkKKyNkZWZpbmUgTUNGU0NNX0xQSUNSCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDAxMikpCisjZGVmaW5lIE1DRlNDTV9DV1NSCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDAxMykpCiAKLSNkZWZpbmUgTUNGU0NNX01QQVJLCQkoKih2dV9sb25nICopIChDRkdfTUJBUisweDAwMDAwMDFDKSkKLSNkZWZpbmUgTUNGU0NNX01QUgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDAwMDAyMCkpCi0jZGVmaW5lIE1DRlNDTV9QQUNSMAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDAwMDAyNCkpCi0jZGVmaW5lIE1DRlNDTV9QQUNSMQkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDAwMDAyNSkpCi0jZGVmaW5lIE1DRlNDTV9QQUNSMgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDAwMDAyNikpCi0jZGVmaW5lIE1DRlNDTV9QQUNSMwkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDAwMDAyNykpCi0jZGVmaW5lIE1DRlNDTV9QQUNSNAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDAwMDAyOCkpCi0jZGVmaW5lIE1DRlNDTV9QQUNSNQkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDAwMDAyQSkpCi0jZGVmaW5lIE1DRlNDTV9QQUNSNgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDAwMDAyQikpCi0jZGVmaW5lIE1DRlNDTV9QQUNSNwkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDAwMDAyQykpCi0jZGVmaW5lIE1DRlNDTV9QQUNSOAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDAwMDAyRSkpCi0jZGVmaW5lIE1DRlNDTV9HUEFDUjAJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MDAwMDAwMzApKQotI2RlZmluZSBNQ0ZTQ01fR1BBQ1IxCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDAwMDAwMDMxKSkKKyNkZWZpbmUgTUNGU0NNX01QQVJLCQkoKih2dV9sb25nICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDAxQykpCisjZGVmaW5lIE1DRlNDTV9NUFIJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDIwKSkKKyNkZWZpbmUgTUNGU0NNX1BBQ1IwCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDAyNCkpCisjZGVmaW5lIE1DRlNDTV9QQUNSMQkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwMjUpKQorI2RlZmluZSBNQ0ZTQ01fUEFDUjIJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDI2KSkKKyNkZWZpbmUgTUNGU0NNX1BBQ1IzCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDAyNykpCisjZGVmaW5lIE1DRlNDTV9QQUNSNAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwMjgpKQorI2RlZmluZSBNQ0ZTQ01fUEFDUjUJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDJBKSkKKyNkZWZpbmUgTUNGU0NNX1BBQ1I2CQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDAyQikpCisjZGVmaW5lIE1DRlNDTV9QQUNSNwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwMkMpKQorI2RlZmluZSBNQ0ZTQ01fUEFDUjgJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDJFKSkKKyNkZWZpbmUgTUNGU0NNX0dQQUNSMAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwMzApKQorI2RlZmluZSBNQ0ZTQ01fR1BBQ1IxCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDAzMSkpCiAKICNkZWZpbmUgTUNGU0NNX0NSU1JfRVhUCQkoMHg4MCkKICNkZWZpbmUgTUNGU0NNX0NSU1JfQ1dEUgkoMHgyMCkKQEAgLTM1NCw4ICszNTQsOCBAQAogCiAvKiBSZXNldCBDb250cm9sbGVyIE1vZHVsZSBSQ00gKi8KIAotI2RlZmluZSBNQ0ZSRVNFVF9SQ1IJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MDAxMTAwMDApKQotI2RlZmluZSBNQ0ZSRVNFVF9SU1IJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MDAxMTAwMDEpKQorI2RlZmluZSBNQ0ZSRVNFVF9SQ1IJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDAwMTEwMDAwKSkKKyNkZWZpbmUgTUNGUkVTRVRfUlNSCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgwMDExMDAwMSkpCiAKICNkZWZpbmUgTUNGUkVTRVRfUkNSX1NPRlRSU1QJKDB4ODApCiAjZGVmaW5lIE1DRlJFU0VUX1JDUl9GUkNSU1RPVVQJKDB4NDApCkBAIC0zNzcsOSArMzc3LDkgQEAKIAogLyogQ2hpcCBDb25maWd1cmF0aW9uIE1vZHVsZSBDQ00gKi8KIAotI2RlZmluZSBNQ0ZDQ01fQ0NSCQkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDAwMTEwMDA0KSkKLSNkZWZpbmUgTUNGQ0NNX1JDT04JCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MDAxMTAwMDgpKQotI2RlZmluZSBNQ0ZDQ01fQ0lSCQkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDAwMTEwMDBBKSkKKyNkZWZpbmUgTUNGQ0NNX0NDUgkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MDAxMTAwMDQpKQorI2RlZmluZSBNQ0ZDQ01fUkNPTgkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MDAxMTAwMDgpKQorI2RlZmluZSBNQ0ZDQ01fQ0lSCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgwMDExMDAwQSkpCiAKIC8qIEJpdCBsZXZlbCBkZWZpbml0aW9ucyBhbmQgbWFjcm9zICovCiAjZGVmaW5lIE1DRkNDTV9DQ1JfTE9BRAkJKDB4ODAwMCkKQEAgLTM5NCwxOCArMzk0LDE4IEBACiAKIC8qIENsb2NrIE1vZHVsZSAqLwogCi0jZGVmaW5lIE1DRkNMT0NLX1NZTkNSCQkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDEyMDAwMCkpCi0jZGVmaW5lIE1DRkNMT0NLX1NZTlNSCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEyMDAwMikpCisjZGVmaW5lIE1DRkNMT0NLX1NZTkNSCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgxMjAwMDApKQorI2RlZmluZSBNQ0ZDTE9DS19TWU5TUgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTIwMDAyKSkKIAogI2RlZmluZSBNQ0ZDTE9DS19TWU5DUl9NRkQoeCkJKCgoeCkmMHgwMDA3KTw8MTIpCiAjZGVmaW5lIE1DRkNMT0NLX1NZTkNSX1JGRCh4KQkoKCh4KSYweDAwMDcpPDw4KQogI2RlZmluZSBNQ0ZDTE9DS19TWU5TUl9MT0NLCTB4MDgKIAotI2RlZmluZSBNQ0ZTRFJBTUNfRENSCQkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDAwMDAwMDQwKSkKLSNkZWZpbmUgTUNGU0RSQU1DX0RBQ1IwCQkoKih2dV9sb25nICopIChDRkdfTUJBUisweDAwMDAwMDQ4KSkKLSNkZWZpbmUgTUNGU0RSQU1DX0RNUjAJCSgqKHZ1X2xvbmcgKikgKENGR19NQkFSKzB4MDAwMDAwNGMpKQotI2RlZmluZSBNQ0ZTRFJBTUNfREFDUjEJCSgqKHZ1X2xvbmcgKikgKENGR19NQkFSKzB4MDAwMDAwNTApKQotI2RlZmluZSBNQ0ZTRFJBTUNfRE1SMQkJKCoodnVfbG9uZyAqKSAoQ0ZHX01CQVIrMHgwMDAwMDA1NCkpCisjZGVmaW5lIE1DRlNEUkFNQ19EQ1IJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDQwKSkKKyNkZWZpbmUgTUNGU0RSQU1DX0RBQ1IwCQkoKih2dV9sb25nICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDA0OCkpCisjZGVmaW5lIE1DRlNEUkFNQ19ETVIwCQkoKih2dV9sb25nICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDA0YykpCisjZGVmaW5lIE1DRlNEUkFNQ19EQUNSMQkJKCoodnVfbG9uZyAqKSAoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwNTApKQorI2RlZmluZSBNQ0ZTRFJBTUNfRE1SMQkJKCoodnVfbG9uZyAqKSAoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwNTQpKQogCiAjZGVmaW5lIE1DRlNEUkFNQ19EQ1JfTkFNCSgweDIwMDApCiAjZGVmaW5lIE1DRlNEUkFNQ19EQ1JfQ09DCSgweDEwMDApCkBAIC00MzUsMjQgKzQzNSwyNCBAQAogI2RlZmluZSBNQ0ZTRFJBTUNfRE1SX1VECSgweDAwMDAwMDAyKQogI2RlZmluZSBNQ0ZTRFJBTUNfRE1SX1YJCSgweDAwMDAwMDAxKQogCi0jZGVmaW5lIE1DRldUTV9XQ1IJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MDAxNDAwMDApKQotI2RlZmluZSBNQ0ZXVE1fV01SCQkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDAwMTQwMDAyKSkKLSNkZWZpbmUgTUNGV1RNX1dDTlRSCQkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDAwMTQwMDA0KSkKLSNkZWZpbmUgTUNGV1RNX1dTUgkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgwMDE0MDAwNikpCisjZGVmaW5lIE1DRldUTV9XQ1IJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDAwMTQwMDAwKSkKKyNkZWZpbmUgTUNGV1RNX1dNUgkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MDAxNDAwMDIpKQorI2RlZmluZSBNQ0ZXVE1fV0NOVFIJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDAwMTQwMDA0KSkKKyNkZWZpbmUgTUNGV1RNX1dTUgkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MDAxNDAwMDYpKQogCiAvKiAgQ2hpcCBTRUxFQ1QgTW9kdWxlIENTTSAqLwotI2RlZmluZSBNQ0ZDU01fQ1NBUjAJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MDAwMDAwODApKQotI2RlZmluZSBNQ0ZDU01fQ1NNUjAJCSgqKHZ1X2xvbmcgKikgKENGR19NQkFSKzB4MDAwMDAwODQpKQotI2RlZmluZSBNQ0ZDU01fQ1NDUjAJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MDAwMDAwOGEpKQotI2RlZmluZSBNQ0ZDU01fQ1NBUjEJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MDAwMDAwOEMpKQotI2RlZmluZSBNQ0ZDU01fQ1NNUjEJCSgqKHZ1X2xvbmcgKikgKENGR19NQkFSKzB4MDAwMDAwOTApKQotI2RlZmluZSBNQ0ZDU01fQ1NDUjEJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MDAwMDAwOTYpKQotI2RlZmluZSBNQ0ZDU01fQ1NBUjIJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MDAwMDAwOTgpKQotI2RlZmluZSBNQ0ZDU01fQ1NNUjIJCSgqKHZ1X2xvbmcgKikgKENGR19NQkFSKzB4MDAwMDAwOUMpKQotI2RlZmluZSBNQ0ZDU01fQ1NDUjIJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MDAwMDAwQTIpKQotI2RlZmluZSBNQ0ZDU01fQ1NBUjMJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MDAwMDAwQTQpKQotI2RlZmluZSBNQ0ZDU01fQ1NNUjMJCSgqKHZ1X2xvbmcgKikgKENGR19NQkFSKzB4MDAwMDAwQTgpKQotI2RlZmluZSBNQ0ZDU01fQ1NDUjMJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MDAwMDAwQUUpKQorI2RlZmluZSBNQ0ZDU01fQ1NBUjAJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDgwKSkKKyNkZWZpbmUgTUNGQ1NNX0NTTVIwCQkoKih2dV9sb25nICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDA4NCkpCisjZGVmaW5lIE1DRkNTTV9DU0NSMAkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwOGEpKQorI2RlZmluZSBNQ0ZDU01fQ1NBUjEJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDhDKSkKKyNkZWZpbmUgTUNGQ1NNX0NTTVIxCQkoKih2dV9sb25nICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDA5MCkpCisjZGVmaW5lIE1DRkNTTV9DU0NSMQkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwOTYpKQorI2RlZmluZSBNQ0ZDU01fQ1NBUjIJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDk4KSkKKyNkZWZpbmUgTUNGQ1NNX0NTTVIyCQkoKih2dV9sb25nICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDA5QykpCisjZGVmaW5lIE1DRkNTTV9DU0NSMgkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwQTIpKQorI2RlZmluZSBNQ0ZDU01fQ1NBUjMJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDAwMDAwMEE0KSkKKyNkZWZpbmUgTUNGQ1NNX0NTTVIzCQkoKih2dV9sb25nICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDBBOCkpCisjZGVmaW5lIE1DRkNTTV9DU0NSMwkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwQUUpKQogCiAjZGVmaW5lIE1DRkNTTV9DU01SX0JBTSh4KQkoKHgpICYgMHhGRkZGMDAwMCkKICNkZWZpbmUgTUNGQ1NNX0NTTVJfV1AJCSgxPDw4KQpAQCAtNDY3LDUxICs0NjcsNTEgQEAKICogR2VuZXJhbCBQdXJwb3NlIFRpbWVyIChHUFQpIE1vZHVsZQogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jZGVmaW5lIE1DRkdQVEFfR1BUSU9TCQkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUEwMDAwKSkKLSNkZWZpbmUgTUNGR1BUQV9HUFRDRk9SQwkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUEwMDAxKSkKLSNkZWZpbmUgTUNGR1BUQV9HUFRPQzNNCQkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUEwMDAyKSkKLSNkZWZpbmUgTUNGR1BUQV9HUFRPQzNECQkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUEwMDAzKSkKLSNkZWZpbmUgTUNGR1BUQV9HUFRDTlQJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MUEwMDA0KSkKLSNkZWZpbmUgTUNGR1BUQV9HUFRTQ1IxCQkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUEwMDA2KSkKLSNkZWZpbmUgTUNGR1BUQV9HUFRUT1YJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMDgpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVENUTDEJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMDkpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVENUTDIJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMEIpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVElFCQkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUEwMDBDKSkKLSNkZWZpbmUgTUNGR1BUQV9HUFRTQ1IyCQkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUEwMDBEKSkKLSNkZWZpbmUgTUNGR1BUQV9HUFRGTEcxCQkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUEwMDBFKSkKLSNkZWZpbmUgTUNGR1BUQV9HUFRGTEcyCQkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUEwMDBGKSkKLSNkZWZpbmUgTUNGR1BUQV9HUFRDMAkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgxQTAwMTApKQotI2RlZmluZSBNQ0ZHUFRBX0dQVEMxCQkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDFBMDAxMikpCi0jZGVmaW5lIE1DRkdQVEFfR1BUQzIJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MUEwMDE0KSkKLSNkZWZpbmUgTUNGR1BUQV9HUFRDMwkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgxQTAwMTYpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVFBBQ1RMCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMTgpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVFBBRkxHCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMTkpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVFBBQ05UCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MUEwMDFBKSkKLSNkZWZpbmUgTUNGR1BUQV9HUFRQT1JUCQkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUEwMDFEKSkKLSNkZWZpbmUgTUNGR1BUQV9HUFRERFIJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMUUpKQorI2RlZmluZSBNQ0ZHUFRBX0dQVElPUwkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQTAwMDApKQorI2RlZmluZSBNQ0ZHUFRBX0dQVENGT1JDCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUEwMDAxKSkKKyNkZWZpbmUgTUNGR1BUQV9HUFRPQzNNCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFBMDAwMikpCisjZGVmaW5lIE1DRkdQVEFfR1BUT0MzRAkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQTAwMDMpKQorI2RlZmluZSBNQ0ZHUFRBX0dQVENOVAkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MUEwMDA0KSkKKyNkZWZpbmUgTUNGR1BUQV9HUFRTQ1IxCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFBMDAwNikpCisjZGVmaW5lIE1DRkdQVEFfR1BUVE9WCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFBMDAwOCkpCisjZGVmaW5lIE1DRkdQVEFfR1BUQ1RMMQkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQTAwMDkpKQorI2RlZmluZSBNQ0ZHUFRBX0dQVENUTDIJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUEwMDBCKSkKKyNkZWZpbmUgTUNGR1BUQV9HUFRJRQkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQTAwMEMpKQorI2RlZmluZSBNQ0ZHUFRBX0dQVFNDUjIJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUEwMDBEKSkKKyNkZWZpbmUgTUNGR1BUQV9HUFRGTEcxCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFBMDAwRSkpCisjZGVmaW5lIE1DRkdQVEFfR1BURkxHMgkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQTAwMEYpKQorI2RlZmluZSBNQ0ZHUFRBX0dQVEMwCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgxQTAwMTApKQorI2RlZmluZSBNQ0ZHUFRBX0dQVEMxCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgxQTAwMTIpKQorI2RlZmluZSBNQ0ZHUFRBX0dQVEMyCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgxQTAwMTQpKQorI2RlZmluZSBNQ0ZHUFRBX0dQVEMzCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgxQTAwMTYpKQorI2RlZmluZSBNQ0ZHUFRBX0dQVFBBQ1RMCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUEwMDE4KSkKKyNkZWZpbmUgTUNGR1BUQV9HUFRQQUZMRwkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFBMDAxOSkpCisjZGVmaW5lIE1DRkdQVEFfR1BUUEFDTlQJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MUEwMDFBKSkKKyNkZWZpbmUgTUNGR1BUQV9HUFRQT1JUCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFBMDAxRCkpCisjZGVmaW5lIE1DRkdQVEFfR1BURERSCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFBMDAxRSkpCiAKLSNkZWZpbmUgTUNGR1BUQl9HUFRJT1MJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQjAwMDApKQotI2RlZmluZSBNQ0ZHUFRCX0dQVENGT1JDCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQjAwMDEpKQotI2RlZmluZSBNQ0ZHUFRCX0dQVE9DM00JCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQjAwMDIpKQotI2RlZmluZSBNQ0ZHUFRCX0dQVE9DM0QJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQjAwMDMpKQotI2RlZmluZSBNQ0ZHUFRCX0dQVENOVAkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgxQjAwMDQpKQotI2RlZmluZSBNQ0ZHUFRCX0dQVFNDUjEJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQjAwMDYpKQotI2RlZmluZSBNQ0ZHUFRCX0dQVFRPVgkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAwOCkpCi0jZGVmaW5lIE1DRkdQVEJfR1BUQ1RMMQkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAwOSkpCi0jZGVmaW5lIE1DRkdQVEJfR1BUQ1RMMgkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAwQikpCi0jZGVmaW5lIE1DRkdQVEJfR1BUSUUJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQjAwMEMpKQotI2RlZmluZSBNQ0ZHUFRCX0dQVFNDUjIJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQjAwMEQpKQotI2RlZmluZSBNQ0ZHUFRCX0dQVEZMRzEJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQjAwMEUpKQotI2RlZmluZSBNQ0ZHUFRCX0dQVEZMRzIJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQjAwMEYpKQotI2RlZmluZSBNQ0ZHUFRCX0dQVEMwCQkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDFCMDAxMCkpCi0jZGVmaW5lIE1DRkdQVEJfR1BUQzEJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MUIwMDEyKSkKLSNkZWZpbmUgTUNGR1BUQl9HUFRDMgkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgxQjAwMTQpKQotI2RlZmluZSBNQ0ZHUFRCX0dQVEMzCQkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDFCMDAxNikpCi0jZGVmaW5lIE1DRkdQVEJfR1BUUEFDVEwJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAxOCkpCi0jZGVmaW5lIE1DRkdQVEJfR1BUUEFGTEcJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAxOSkpCi0jZGVmaW5lIE1DRkdQVEJfR1BUUEFDTlQJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgxQjAwMUEpKQotI2RlZmluZSBNQ0ZHUFRCX0dQVFBPUlQJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQjAwMUQpKQotI2RlZmluZSBNQ0ZHUFRCX0dQVEREUgkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAxRSkpCisjZGVmaW5lIE1DRkdQVEJfR1BUSU9TCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFCMDAwMCkpCisjZGVmaW5lIE1DRkdQVEJfR1BUQ0ZPUkMJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQjAwMDEpKQorI2RlZmluZSBNQ0ZHUFRCX0dQVE9DM00JCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDAyKSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRPQzNECQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFCMDAwMykpCisjZGVmaW5lIE1DRkdQVEJfR1BUQ05UCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgxQjAwMDQpKQorI2RlZmluZSBNQ0ZHUFRCX0dQVFNDUjEJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDA2KSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRUT1YJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDA4KSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRDVEwxCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFCMDAwOSkpCisjZGVmaW5lIE1DRkdQVEJfR1BUQ1RMMgkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQjAwMEIpKQorI2RlZmluZSBNQ0ZHUFRCX0dQVElFCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFCMDAwQykpCisjZGVmaW5lIE1DRkdQVEJfR1BUU0NSMgkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQjAwMEQpKQorI2RlZmluZSBNQ0ZHUFRCX0dQVEZMRzEJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDBFKSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRGTEcyCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFCMDAwRikpCisjZGVmaW5lIE1DRkdQVEJfR1BUQzAJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDFCMDAxMCkpCisjZGVmaW5lIE1DRkdQVEJfR1BUQzEJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDFCMDAxMikpCisjZGVmaW5lIE1DRkdQVEJfR1BUQzIJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDFCMDAxNCkpCisjZGVmaW5lIE1DRkdQVEJfR1BUQzMJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDFCMDAxNikpCisjZGVmaW5lIE1DRkdQVEJfR1BUUEFDVEwJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQjAwMTgpKQorI2RlZmluZSBNQ0ZHUFRCX0dQVFBBRkxHCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDE5KSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRQQUNOVAkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgxQjAwMUEpKQorI2RlZmluZSBNQ0ZHUFRCX0dQVFBPUlQJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDFEKSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRERFIJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDFFKSkKIAogLyogQml0IGxldmVsIGRlZmluaXRpb25zIGFuZCBtYWNyb3MgKi8KICNkZWZpbmUgTUNGR1BUX0dQVElPU19JT1MzCQkoMHgwOCkKQEAgLTU5Niw3ICs1OTYsNyBAQAogCiAvKiBDb2xkZmlyZSBGbGFzaCBNb2R1bGUgQ0ZNICovCiAKLSNkZWZpbmUgTUNGQ0ZNX01DUgkJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MUQwMDAwKSkKKyNkZWZpbmUgTUNGQ0ZNX01DUgkJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDFEMDAwMCkpCiAjZGVmaW5lIE1DRkNGTV9NQ1JfTE9DSwkJCSgweDA0MDApCiAjZGVmaW5lIE1DRkNGTV9NQ1JfUFZJRQkJCSgweDAyMDApCiAjZGVmaW5lIE1DRkNGTV9NQ1JfQUVJRQkJCSgweDAxMDApCkBAIC02MDQsMjMgKzYwNCwyMyBAQAogI2RlZmluZSBNQ0ZDRk1fTUNSX0NDSUUJCQkoMHgwMDQwKQogI2RlZmluZSBNQ0ZDRk1fTUNSX0tFWUFDQwkJKDB4MDAyMCkKIAotI2RlZmluZSBNQ0ZDRk1fQ0xLRAkJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxRDAwMDIpKQorI2RlZmluZSBNQ0ZDRk1fQ0xLRAkJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUQwMDAyKSkKIAotI2RlZmluZSBNQ0ZDRk1fU0VDCQkJKCoodnVfbG9uZyopIChDRkdfTUJBUisweDFEMDAwOCkpCisjZGVmaW5lIE1DRkNGTV9TRUMJCQkoKih2dV9sb25nKikgKENPTkZJR19TWVNfTUJBUisweDFEMDAwOCkpCiAjZGVmaW5lIE1DRkNGTV9TRUNfS0VZRU4JCSgweDgwMDAwMDAwKQogI2RlZmluZSBNQ0ZDRk1fU0VDX1NFQ1NUQVQJCSgweDQwMDAwMDAwKQogCi0jZGVmaW5lIE1DRkNGTV9QUk9UCQkJKCoodnVfbG9uZyopIChDRkdfTUJBUisweDFEMDAxMCkpCi0jZGVmaW5lIE1DRkNGTV9TQUNDCQkJKCoodnVfbG9uZyopIChDRkdfTUJBUisweDFEMDAxNCkpCi0jZGVmaW5lIE1DRkNGTV9EQUNDCQkJKCoodnVfbG9uZyopIChDRkdfTUJBUisweDFEMDAxOCkpCi0jZGVmaW5lIE1DRkNGTV9VU1RBVAkJCSgqKHZ1X2NoYXIqKSAoQ0ZHX01CQVIrMHgxRDAwMjApKQorI2RlZmluZSBNQ0ZDRk1fUFJPVAkJCSgqKHZ1X2xvbmcqKSAoQ09ORklHX1NZU19NQkFSKzB4MUQwMDEwKSkKKyNkZWZpbmUgTUNGQ0ZNX1NBQ0MJCQkoKih2dV9sb25nKikgKENPTkZJR19TWVNfTUJBUisweDFEMDAxNCkpCisjZGVmaW5lIE1DRkNGTV9EQUNDCQkJKCoodnVfbG9uZyopIChDT05GSUdfU1lTX01CQVIrMHgxRDAwMTgpKQorI2RlZmluZSBNQ0ZDRk1fVVNUQVQJCQkoKih2dV9jaGFyKikgKENPTkZJR19TWVNfTUJBUisweDFEMDAyMCkpCiAjZGVmaW5lIE1DRkNGTV9VU1RBVF9DQkVJRgkJMHg4MAogI2RlZmluZSBNQ0ZDRk1fVVNUQVRfQ0NJRgkJMHg0MAogI2RlZmluZSBNQ0ZDRk1fVVNUQVRfUFZJT0wJCTB4MjAKICNkZWZpbmUgTUNGQ0ZNX1VTVEFUX0FDQ0VSUgkJMHgxMAogI2RlZmluZSBNQ0ZDRk1fVVNUQVRfQkxBTksJCTB4MDQKIAotI2RlZmluZSBNQ0ZDRk1fQ01ECQkJKCoodnVfY2hhciopIChDRkdfTUJBUisweDFEMDAyNCkpCisjZGVmaW5lIE1DRkNGTV9DTUQJCQkoKih2dV9jaGFyKikgKENPTkZJR19TWVNfTUJBUisweDFEMDAyNCkpCiAjZGVmaW5lIE1DRkNGTV9DTURfRVJTVkVSCQkweDA1CiAjZGVmaW5lIE1DRkNGTV9DTURfUEdFUlNWRVIJCTB4MDYKICNkZWZpbmUgTUNGQ0ZNX0NNRF9QR00JCQkweDIwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1taWNyb2JsYXplL2dsb2JhbF9kYXRhLmggYi9pbmNsdWRlL2FzbS1taWNyb2JsYXplL2dsb2JhbF9kYXRhLmgKaW5kZXggMDEzYzU2YS4uM2Y0OWMzNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbWljcm9ibGF6ZS9nbG9iYWxfZGF0YS5oCisrKyBiL2luY2x1ZGUvYXNtLW1pY3JvYmxhemUvZ2xvYmFsX2RhdGEuaApAQCAtMzEsNyArMzEsNyBAQAogICogZ2xvYmFsIHZhcmlhYmxlcyBkdXJpbmcgc3lzdGVtIGluaXRpYWxpemF0aW9uICh1bnRpbCB3ZSBoYXZlIHNldAogICogdXAgdGhlIG1lbW9yeSBjb250cm9sbGVyIHNvIHRoYXQgd2UgY2FuIHVzZSBSQU0pLgogICoKLSAqIEtlZXAgaXQgKlNNQUxMKiBhbmQgcmVtZW1iZXIgdG8gc2V0IENGR19HQkxfREFUQV9TSVpFID4gc2l6ZW9mKGdkX3QpCisgKiBLZWVwIGl0ICpTTUFMTCogYW5kIHJlbWVtYmVyIHRvIHNldCBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgPiBzaXplb2YoZ2RfdCkKICAqLwogCiB0eXBlZGVmCXN0cnVjdAlnbG9iYWxfZGF0YSB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1taXBzL2dsb2JhbF9kYXRhLmggYi9pbmNsdWRlL2FzbS1taXBzL2dsb2JhbF9kYXRhLmgKaW5kZXggN2NmMmEwMC4uYjJjNDg5MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbWlwcy9nbG9iYWxfZGF0YS5oCisrKyBiL2luY2x1ZGUvYXNtLW1pcHMvZ2xvYmFsX2RhdGEuaApAQCAtMzMsNyArMzMsNyBAQAogICogZ2xvYmFsIHZhcmlhYmxlcyBkdXJpbmcgc3lzdGVtIGluaXRpYWxpemF0aW9uICh1bnRpbCB3ZSBoYXZlIHNldAogICogdXAgdGhlIG1lbW9yeSBjb250cm9sbGVyIHNvIHRoYXQgd2UgY2FuIHVzZSBSQU0pLgogICoKLSAqIEtlZXAgaXQgKlNNQUxMKiBhbmQgcmVtZW1iZXIgdG8gc2V0IENGR19HQkxfREFUQV9TSVpFID4gc2l6ZW9mKGdkX3QpCisgKiBLZWVwIGl0ICpTTUFMTCogYW5kIHJlbWVtYmVyIHRvIHNldCBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgPiBzaXplb2YoZ2RfdCkKICAqLwogCiB0eXBlZGVmCXN0cnVjdAlnbG9iYWxfZGF0YSB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wcGMvNHh4X3BjaWUuaCBiL2luY2x1ZGUvYXNtLXBwYy80eHhfcGNpZS5oCmluZGV4IGE3Y2YxZTguLmEwZTg4ZGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBwYy80eHhfcGNpZS5oCisrKyBiL2luY2x1ZGUvYXNtLXBwYy80eHhfcGNpZS5oCkBAIC0xOCw5ICsxOCw5IEBACiAjZGVmaW5lIERDUk5fU0RSMF9DRkdEQVRBCTB4MDBmCiAKICNpZiBkZWZpbmVkKENPTkZJR180NDBTUEUpCi0jZGVmaW5lIENGR19QQ0lFX05SX1BPUlRTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX05SX1BPUlRTCTMKIAotI2RlZmluZSBDRkdfUENJRV9BRERSX0hJR0gJMHgwMDAwMDAwZAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfQUREUl9ISUdICTB4MDAwMDAwMGQKIAogI2RlZmluZSBEQ1JOX1BDSUUwX0JBU0UJCTB4MTAwCiAjZGVmaW5lIERDUk5fUENJRTFfQkFTRQkJMHgxMjAKQEAgLTMyLDkgKzMyLDkgQEAKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfNDYwRVgpIHx8IGRlZmluZWQoQ09ORklHXzQ2MEdUKQotI2RlZmluZSBDRkdfUENJRV9OUl9QT1JUUwkyCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9OUl9QT1JUUwkyCiAKLSNkZWZpbmUgQ0ZHX1BDSUVfQUREUl9ISUdICTB4MDAwMDAwMGQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX0FERFJfSElHSAkweDAwMDAwMDBkCiAKICNkZWZpbmUgRENSTl9QQ0lFMF9CQVNFCQkweDEwMAogI2RlZmluZSBEQ1JOX1BDSUUxX0JBU0UJCTB4MTIwCkBAIC00NCw5ICs0NCw5IEBACiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHXzQwNUVYKQotI2RlZmluZSBDRkdfUENJRV9OUl9QT1JUUwkyCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9OUl9QT1JUUwkyCiAKLSNkZWZpbmUgQ0ZHX1BDSUVfQUREUl9ISUdICTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX0FERFJfSElHSAkweDAwMDAwMDAwCiAKICNkZWZpbmUJRENSTl9QQ0lFMF9CQVNFCQkweDA0MAogI2RlZmluZQlEQ1JOX1BDSUUxX0JBU0UJCTB4MDYwCkBAIC00MDYsNyArNDA2LDcgQEAKIAkJcmV0dXJuIFBDSUUwX1NEUjsKIAljYXNlIDE6CiAJCXJldHVybiBQQ0lFMV9TRFI7Ci0jaWYgQ0ZHX1BDSUVfTlJfUE9SVFMgPiAyCisjaWYgQ09ORklHX1NZU19QQ0lFX05SX1BPUlRTID4gMgogCWNhc2UgMjoKIAkJcmV0dXJuIFBDSUUyX1NEUjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcHBjL2NhY2hlLmggYi9pbmNsdWRlL2FzbS1wcGMvY2FjaGUuaAppbmRleCA5ZDliOTcxLi4zZDVmM2Y3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wcGMvY2FjaGUuaAorKysgYi9pbmNsdWRlL2FzbS1wcGMvY2FjaGUuaApAQCAtMTksMTAgKzE5LDEwIEBACiAjZGVmaW5lIEwxX0NBQ0hFX0JZVEVTICAgICAgICAgICgxIDw8IEwxX0NBQ0hFX1NISUZUKQogCiAvKgotICogRm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucyBzdXBwb3J0IHRoZSBDRkdfQ0FDSEVMSU5FX1NJWkUgdG9vCisgKiBGb3IgY29tcGF0aWJpbGl0eSByZWFzb25zIHN1cHBvcnQgdGhlIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgdG9vCiAgKi8KLSNpZm5kZWYgQ0ZHX0NBQ0hFTElORV9TSVpFCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQlMMV9DQUNIRV9CWVRFUworI2lmbmRlZiBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJTDFfQ0FDSEVfQllURVMKICNlbmRpZgogCiAjZGVmaW5lCUwxX0NBQ0hFX0FMSUdOKHgpICAgICAgICgoKHgpKyhMMV9DQUNIRV9CWVRFUy0xKSkmfihMMV9DQUNIRV9CWVRFUy0xKSkKQEAgLTQ0LDkgKzQ0LDkgQEAKIGV4dGVybiB2b2lkIGludmFsaWRhdGVfZGNhY2hlX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgc3RvcCk7CiBleHRlcm4gdm9pZCBmbHVzaF9kY2FjaGUodm9pZCk7CiBleHRlcm4gdm9pZCBpbnZhbGlkYXRlX2RjYWNoZSh2b2lkKTsKLSNpZmRlZiBDRkdfSU5JVF9SQU1fTE9DSworI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwogZXh0ZXJuIHZvaWQgdW5sb2NrX3JhbV9pbl9jYWNoZSh2b2lkKTsKLSNlbmRpZiAvKiBDRkdfSU5JVF9SQU1fTE9DSyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSyAqLwogI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLwogCiAvKiBwcmVwIHJlZ2lzdGVycyBmb3IgTDIgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBwYy9jcG1fODI2MC5oIGIvaW5jbHVkZS9hc20tcHBjL2NwbV84MjYwLmgKaW5kZXggMmE5Nzc0YS4uN2UwNjk0MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcHBjL2NwbV84MjYwLmgKKysrIGIvaW5jbHVkZS9hc20tcHBjL2NwbV84MjYwLmgKQEAgLTE0MSwxNiArMTQxLDE2IEBACiAKIC8qIFBhcmFtZXRlciBSQU0gb2Zmc2V0cyBmcm9tIHRoZSBiYXNlLgogKi8KLSNpZm5kZWYgQ0ZHX0NQTV9QT1NUX1dPUkRfQUREUgorI2lmbmRlZiBDT05GSUdfU1lTX0NQTV9QT1NUX1dPUkRfQUREUgogI2RlZmluZSBDUE1fUE9TVF9XT1JEX0FERFIgICAgICAweDgwRkMJLyogc3RlYWwgYSBsb25nIGF0IHRoZSBlbmQgb2YgU0NDMSAqLwogI2Vsc2UKLSNkZWZpbmUgQ1BNX1BPU1RfV09SRF9BRERSCUNGR19DUE1fUE9TVF9XT1JEX0FERFIKKyNkZWZpbmUgQ1BNX1BPU1RfV09SRF9BRERSCUNPTkZJR19TWVNfQ1BNX1BPU1RfV09SRF9BRERSCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfQ1BNX0JPT1RDT1VOVF9BRERSCisjaWZuZGVmIENPTkZJR19TWVNfQ1BNX0JPT1RDT1VOVF9BRERSCiAjZGVmaW5lIENQTV9CT09UQ09VTlRfQUREUgkoQ1BNX1BPU1RfV09SRF9BRERSIC0gMipzaXplb2YodWxvbmcpKQogI2Vsc2UKLSNkZWZpbmUgQ1BNX0JPT1RDT1VOVF9BRERSCUNGR19DUE1fQk9PVENPVU5UX0FERFIKKyNkZWZpbmUgQ1BNX0JPT1RDT1VOVF9BRERSCUNPTkZJR19TWVNfQ1BNX0JPT1RDT1VOVF9BRERSCiAjZW5kaWYKIAogI2RlZmluZSBQUk9GRl9TQ0MxCQkoKHVpbnQpMHg4MDAwKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcHBjL2dsb2JhbF9kYXRhLmggYi9pbmNsdWRlL2FzbS1wcGMvZ2xvYmFsX2RhdGEuaAppbmRleCA0MzMxYTE1Li5hYWRlMDk3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wcGMvZ2xvYmFsX2RhdGEuaAorKysgYi9pbmNsdWRlL2FzbS1wcGMvZ2xvYmFsX2RhdGEuaApAQCAtMzMsNyArMzMsNyBAQAogICogZ2xvYmFsIHZhcmlhYmxlcyBkdXJpbmcgc3lzdGVtIGluaXRpYWxpemF0aW9uICh1bnRpbCB3ZSBoYXZlIHNldAogICogdXAgdGhlIG1lbW9yeSBjb250cm9sbGVyIHNvIHRoYXQgd2UgY2FuIHVzZSBSQU0pLgogICoKLSAqIEtlZXAgaXQgKlNNQUxMKiBhbmQgcmVtZW1iZXIgdG8gc2V0IENGR19HQkxfREFUQV9TSVpFID4gc2l6ZW9mKGdkX3QpCisgKiBLZWVwIGl0ICpTTUFMTCogYW5kIHJlbWVtYmVyIHRvIHNldCBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgPiBzaXplb2YoZ2RfdCkKICAqLwogCiB0eXBlZGVmCXN0cnVjdAlnbG9iYWxfZGF0YSB7CkBAIC0xMjksMTQgKzEyOSwxNCBAQAogCXVuc2lnbmVkIGxvbmcJZW52X2FkZHI7CS8qIEFkZHJlc3MgIG9mIEVudmlyb25tZW50IHN0cnVjdAkqLwogCXVuc2lnbmVkIGxvbmcJZW52X3ZhbGlkOwkvKiBDaGVja3N1bSBvZiBFbnZpcm9ubWVudCB2YWxpZD8JKi8KIAl1bnNpZ25lZCBsb25nCWhhdmVfY29uc29sZTsJLyogc2VyaWFsX2luaXQoKSB3YXMgY2FsbGVkCQkqLwotI2lmIGRlZmluZWQoQ0ZHX0FMTE9DX0RQUkFNKSB8fCBkZWZpbmVkKENPTkZJR19DUE0yKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19BTExPQ19EUFJBTSkgfHwgZGVmaW5lZChDT05GSUdfQ1BNMikKIAl1bnNpZ25lZCBpbnQJZHBfYWxsb2NfYmFzZTsKIAl1bnNpZ25lZCBpbnQJZHBfYWxsb2NfdG9wOwogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfNHh4KQogCXUzMiAgdWFydF9jbGs7CiAjZW5kaWYgLyogQ09ORklHXzR4eCAqLwotI2lmIGRlZmluZWQoQ0ZHX0dUXzY0MjZ4KQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19HVF82NDI2eCkKIAl1bnNpZ25lZCBpbnQJbWlycm9yX2hhY2tbMTZdOwogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfQTMwMDApCXx8IFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBwYy9pbW1hcF84NXh4LmggYi9pbmNsdWRlL2FzbS1wcGMvaW1tYXBfODV4eC5oCmluZGV4IDUwYzlkZGUuLjUyZjU0OTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBwYy9pbW1hcF84NXh4LmgKKysrIGIvaW5jbHVkZS9hc20tcHBjL2ltbWFwXzg1eHguaApAQCAtMTY0NywzNyArMTY0NywzNyBAQAogCiAjZGVmaW5lIFBPUkRFVlNSX1BDSQkoMHgwMDgwMDAwMCkJLyogUENJIE1vZGUgKi8KIAotI2RlZmluZSBDRkdfTVBDODV4eF9HVVRTX09GRlNFVAkoMHhFMDAwMCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfR1VUU19BRERSCShDRkdfSU1NUiArIENGR19NUEM4NXh4X0dVVFNfT0ZGU0VUKQotI2RlZmluZSBDRkdfTVBDODV4eF9FQ01fT0ZGU0VUCSgweDAwMDApCi0jZGVmaW5lIENGR19NUEM4NXh4X0VDTV9BRERSCShDRkdfSU1NUiArIENGR19NUEM4NXh4X0VDTV9PRkZTRVQpCi0jZGVmaW5lIENGR19NUEM4NXh4X0REUl9PRkZTRVQJKDB4MjAwMCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfRERSX0FERFIJKENGR19JTU1SICsgQ0ZHX01QQzg1eHhfRERSX09GRlNFVCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfRERSMl9PRkZTRVQJKDB4NjAwMCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfRERSMl9BRERSCShDRkdfSU1NUiArIENGR19NUEM4NXh4X0REUjJfT0ZGU0VUKQotI2RlZmluZSBDRkdfTVBDODV4eF9MQkNfT0ZGU0VUCSgweDUwMDApCi0jZGVmaW5lIENGR19NUEM4NXh4X0xCQ19BRERSCShDRkdfSU1NUiArIENGR19NUEM4NXh4X0xCQ19PRkZTRVQpCi0jZGVmaW5lIENGR19NUEM4NXh4X1BDSVhfT0ZGU0VUCSgweDgwMDApCi0jZGVmaW5lIENGR19NUEM4NXh4X1BDSVhfQUREUgkoQ0ZHX0lNTVIgKyBDRkdfTVBDODV4eF9QQ0lYX09GRlNFVCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfUENJWDJfT0ZGU0VUCSgweDkwMDApCi0jZGVmaW5lIENGR19NUEM4NXh4X1BDSVgyX0FERFIJKENGR19JTU1SICsgQ0ZHX01QQzg1eHhfUENJWDJfT0ZGU0VUKQotI2RlZmluZSBDRkdfTVBDODV4eF9TQVRBMV9PRkZTRVQJKDB4MTgwMDApCi0jZGVmaW5lIENGR19NUEM4NXh4X1NBVEExX0FERFIJKENGR19JTU1SICsgQ0ZHX01QQzg1eHhfU0FUQTFfT0ZGU0VUKQotI2RlZmluZSBDRkdfTVBDODV4eF9TQVRBMl9PRkZTRVQJKDB4MTkwMDApCi0jZGVmaW5lIENGR19NUEM4NXh4X1NBVEEyX0FERFIJKENGR19JTU1SICsgQ0ZHX01QQzg1eHhfU0FUQTJfT0ZGU0VUKQotI2RlZmluZSBDRkdfTVBDODV4eF9MMl9PRkZTRVQJKDB4MjAwMDApCi0jZGVmaW5lIENGR19NUEM4NXh4X0wyX0FERFIJKENGR19JTU1SICsgQ0ZHX01QQzg1eHhfTDJfT0ZGU0VUKQotI2RlZmluZSBDRkdfTVBDODV4eF9ETUFfT0ZGU0VUCSgweDIxMDAwKQotI2RlZmluZSBDRkdfTVBDODV4eF9ETUFfQUREUgkoQ0ZHX0lNTVIgKyBDRkdfTVBDODV4eF9ETUFfT0ZGU0VUKQotI2RlZmluZSBDRkdfTVBDODV4eF9FU0RIQ19PRkZTRVQJKDB4MmUwMDApCi0jZGVmaW5lIENGR19NUEM4NXh4X0VTREhDX0FERFIJKENGR19JTU1SICsgQ0ZHX01QQzg1eHhfRVNESENfT0ZGU0VUKQotI2RlZmluZSBDRkdfTVBDODV4eF9QSUNfT0ZGU0VUCSgweDQwMDAwKQotI2RlZmluZSBDRkdfTVBDODV4eF9QSUNfQUREUgkoQ0ZHX0lNTVIgKyBDRkdfTVBDODV4eF9QSUNfT0ZGU0VUKQotI2RlZmluZSBDRkdfTVBDODV4eF9DUE1fT0ZGU0VUCSgweDgwMDAwKQotI2RlZmluZSBDRkdfTVBDODV4eF9DUE1fQUREUgkoQ0ZHX0lNTVIgKyBDRkdfTVBDODV4eF9DUE1fT0ZGU0VUKQotI2RlZmluZSBDRkdfTVBDODV4eF9TRVJERVMxX09GRlNFVAkoMHhFMzAwMCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfU0VSREVTMV9BRERSCShDRkdfSU1NUiArIENGR19NUEM4NXh4X1NFUkRFUzJfT0ZGU0VUKQotI2RlZmluZSBDRkdfTVBDODV4eF9TRVJERVMyX09GRlNFVAkoMHhFMzEwMCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfU0VSREVTMl9BRERSCShDRkdfSU1NUiArIENGR19NUEM4NXh4X1NFUkRFUzJfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfR1VUU19PRkZTRVQJKDB4RTAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfTVBDODV4eF9HVVRTX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X0VDTV9PRkZTRVQJKDB4MDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X0VDTV9BRERSCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX01QQzg1eHhfRUNNX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X0REUl9PRkZTRVQJKDB4MjAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X0REUl9BRERSCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX01QQzg1eHhfRERSX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X0REUjJfT0ZGU0VUCSgweDYwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9ERFIyX0FERFIJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfTVBDODV4eF9ERFIyX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X0xCQ19PRkZTRVQJKDB4NTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X0xCQ19BRERSCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX01QQzg1eHhfTEJDX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X1BDSVhfT0ZGU0VUCSgweDgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9QQ0lYX0FERFIJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfTVBDODV4eF9QQ0lYX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X1BDSVgyX09GRlNFVAkoMHg5MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfUENJWDJfQUREUgkoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19NUEM4NXh4X1BDSVgyX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X1NBVEExX09GRlNFVAkoMHgxODAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X1NBVEExX0FERFIJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfTVBDODV4eF9TQVRBMV9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9TQVRBMl9PRkZTRVQJKDB4MTkwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9TQVRBMl9BRERSCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX01QQzg1eHhfU0FUQTJfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfTDJfT0ZGU0VUCSgweDIwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfTDJfQUREUgkoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19NUEM4NXh4X0wyX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X0RNQV9PRkZTRVQJKDB4MjEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9ETUFfQUREUgkoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19NUEM4NXh4X0RNQV9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9FU0RIQ19PRkZTRVQJKDB4MmUwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9FU0RIQ19BRERSCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX01QQzg1eHhfRVNESENfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfUElDX09GRlNFVAkoMHg0MDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X1BJQ19BRERSCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX01QQzg1eHhfUElDX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9PRkZTRVQJKDB4ODAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUgkoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9TRVJERVMxX09GRlNFVAkoMHhFMzAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X1NFUkRFUzFfQUREUgkoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19NUEM4NXh4X1NFUkRFUzJfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfU0VSREVTMl9PRkZTRVQJKDB4RTMxMDApCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9TRVJERVMyX0FERFIJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfTVBDODV4eF9TRVJERVMyX09GRlNFVCkKIAogI2VuZGlmIC8qX19JTU1BUF84NXh4X18qLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcHBjL2ltbWFwXzg2eHguaCBiL2luY2x1ZGUvYXNtLXBwYy9pbW1hcF84Nnh4LmgKaW5kZXggMDNhMjVjNy4uZGYyOGMwZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcHBjL2ltbWFwXzg2eHguaAorKysgYi9pbmNsdWRlL2FzbS1wcGMvaW1tYXBfODZ4eC5oCkBAIC0xMzQ4LDkgKzEzNDgsOSBAQAogCiBleHRlcm4gaW1tYXBfdCAgKmltbXI7CiAKLSNkZWZpbmUgQ0ZHX01QQzg2eHhfRERSX09GRlNFVAkoMHgyMDAwKQotI2RlZmluZSBDRkdfTVBDODZ4eF9ERFJfQUREUgkoQ0ZHX0lNTVIgKyBDRkdfTVBDODZ4eF9ERFJfT0ZGU0VUKQotI2RlZmluZSBDRkdfTVBDODZ4eF9ERFIyX09GRlNFVAkoMHg2MDAwKQotI2RlZmluZSBDRkdfTVBDODZ4eF9ERFIyX0FERFIJKENGR19JTU1SICsgQ0ZHX01QQzg2eHhfRERSMl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODZ4eF9ERFJfT0ZGU0VUCSgweDIwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODZ4eF9ERFJfQUREUgkoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19NUEM4Nnh4X0REUl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODZ4eF9ERFIyX09GRlNFVAkoMHg2MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg2eHhfRERSMl9BRERSCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX01QQzg2eHhfRERSMl9PRkZTRVQpCiAKICNlbmRpZiAvKl9fSU1NQVBfODZ4eF9fKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBwYy9pb3Bpbl84MjYwLmggYi9pbmNsdWRlL2FzbS1wcGMvaW9waW5fODI2MC5oCmluZGV4IDIxZWQ4YzIuLjYxOWYzYTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBwYy9pb3Bpbl84MjYwLmgKKysrIGIvaW5jbHVkZS9hc20tcHBjL2lvcGluXzgyNjAuaApAQCAtMjYsMTQwICsyNiwxNDAgQEAKIGV4dGVybiBfX2lubGluZV9fIHZvaWQKIGlvcGluX3NldF9oaWdoKGlvcGluX3QgKmlvcGluKQogewotICAgIHZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkYXRhOworICAgIHZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGF0YTsKICAgICBkYXRwW2lvcGluLT5wb3J0ICogOF0gfD0gKDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB2b2lkCiBpb3Bpbl9zZXRfbG93KGlvcGluX3QgKmlvcGluKQogewotICAgIHZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkYXRhOworICAgIHZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGF0YTsKICAgICBkYXRwW2lvcGluLT5wb3J0ICogOF0gJj0gfigxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdWludAogaW9waW5faXNfaGlnaChpb3Bpbl90ICppb3BpbikKIHsKLSAgICB2b2xhdGlsZSB1aW50ICpkYXRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGF0YTsKKyAgICB2b2xhdGlsZSB1aW50ICpkYXRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRhdGE7CiAgICAgcmV0dXJuIChkYXRwW2lvcGluLT5wb3J0ICogOF0gPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdWludAogaW9waW5faXNfbG93KGlvcGluX3QgKmlvcGluKQogewotICAgIHZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkYXRhOworICAgIHZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGF0YTsKICAgICByZXR1cm4gKChkYXRwW2lvcGluLT5wb3J0ICogOF0gPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMSkgXiAxOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB2b2lkCiBpb3Bpbl9zZXRfb3V0KGlvcGluX3QgKmlvcGluKQogewotICAgIHZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkaXJhOworICAgIHZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGlyYTsKICAgICBkaXJwW2lvcGluLT5wb3J0ICogOF0gfD0gKDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB2b2lkCiBpb3Bpbl9zZXRfaW4oaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRpcmE7CisgICAgdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkaXJhOwogICAgIGRpcnBbaW9waW4tPnBvcnQgKiA4XSAmPSB+KDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB1aW50CiBpb3Bpbl9pc19vdXQoaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRpcmE7CisgICAgdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkaXJhOwogICAgIHJldHVybiAoZGlycFtpb3Bpbi0+cG9ydCAqIDhdID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDE7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHVpbnQKIGlvcGluX2lzX2luKGlvcGluX3QgKmlvcGluKQogewotICAgIHZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkaXJhOworICAgIHZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGlyYTsKICAgICByZXR1cm4gKChkaXJwW2lvcGluLT5wb3J0ICogOF0gPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMSkgXiAxOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB2b2lkCiBpb3Bpbl9zZXRfb2RyKGlvcGluX3QgKmlvcGluKQogewotICAgIHZvbGF0aWxlIHVpbnQgKm9kcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BvZHJhOworICAgIHZvbGF0aWxlIHVpbnQgKm9kcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wb2RyYTsKICAgICBvZHJwW2lvcGluLT5wb3J0ICogOF0gfD0gKDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB2b2lkCiBpb3Bpbl9zZXRfYWN0KGlvcGluX3QgKmlvcGluKQogewotICAgIHZvbGF0aWxlIHVpbnQgKm9kcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BvZHJhOworICAgIHZvbGF0aWxlIHVpbnQgKm9kcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wb2RyYTsKICAgICBvZHJwW2lvcGluLT5wb3J0ICogOF0gJj0gfigxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdWludAogaW9waW5faXNfb2RyKGlvcGluX3QgKmlvcGluKQogewotICAgIHZvbGF0aWxlIHVpbnQgKm9kcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BvZHJhOworICAgIHZvbGF0aWxlIHVpbnQgKm9kcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wb2RyYTsKICAgICByZXR1cm4gKG9kcnBbaW9waW4tPnBvcnQgKiA4XSA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB1aW50CiBpb3Bpbl9pc19hY3QoaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqb2RycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcG9kcmE7CisgICAgdm9sYXRpbGUgdWludCAqb2RycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BvZHJhOwogICAgIHJldHVybiAoKG9kcnBbaW9waW4tPnBvcnQgKiA4XSA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHZvaWQKIGlvcGluX3NldF9kZWQoaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcHBhcmE7CisgICAgdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BwYXJhOwogICAgIHBhcnBbaW9waW4tPnBvcnQgKiA4XSB8PSAoMSA8PCAoMzEgLSBpb3Bpbi0+cGluKSk7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHZvaWQKIGlvcGluX3NldF9nZW4oaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcHBhcmE7CisgICAgdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BwYXJhOwogICAgIHBhcnBbaW9waW4tPnBvcnQgKiA4XSAmPSB+KDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB1aW50CiBpb3Bpbl9pc19kZWQoaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcHBhcmE7CisgICAgdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BwYXJhOwogICAgIHJldHVybiAocGFycFtpb3Bpbi0+cG9ydCAqIDhdID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDE7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHVpbnQKIGlvcGluX2lzX2dlbihpb3Bpbl90ICppb3BpbikKIHsKLSAgICB2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wcGFyYTsKKyAgICB2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcHBhcmE7CiAgICAgcmV0dXJuICgocGFycFtpb3Bpbi0+cG9ydCAqIDhdID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdm9pZAogaW9waW5fc2V0X29wdDIoaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqc29ycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcHNvcmE7CisgICAgdm9sYXRpbGUgdWludCAqc29ycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3Bzb3JhOwogICAgIHNvcnBbaW9waW4tPnBvcnQgKiA4XSB8PSAoMSA8PCAoMzEgLSBpb3Bpbi0+cGluKSk7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHZvaWQKIGlvcGluX3NldF9vcHQxKGlvcGluX3QgKmlvcGluKQogewotICAgIHZvbGF0aWxlIHVpbnQgKnNvcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3Bzb3JhOworICAgIHZvbGF0aWxlIHVpbnQgKnNvcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wc29yYTsKICAgICBzb3JwW2lvcGluLT5wb3J0ICogOF0gJj0gfigxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdWludAogaW9waW5faXNfb3B0Mihpb3Bpbl90ICppb3BpbikKIHsKLSAgICB2b2xhdGlsZSB1aW50ICpzb3JwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wc29yYTsKKyAgICB2b2xhdGlsZSB1aW50ICpzb3JwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcHNvcmE7CiAgICAgcmV0dXJuIChzb3JwW2lvcGluLT5wb3J0ICogOF0gPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdWludAogaW9waW5faXNfb3B0MShpb3Bpbl90ICppb3BpbikKIHsKLSAgICB2b2xhdGlsZSB1aW50ICpzb3JwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wc29yYTsKKyAgICB2b2xhdGlsZSB1aW50ICpzb3JwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcHNvcmE7CiAgICAgcmV0dXJuICgoc29ycFtpb3Bpbi0+cG9ydCAqIDhdID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIH0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcHBjL2lvcGluXzg1eHguaCBiL2luY2x1ZGUvYXNtLXBwYy9pb3Bpbl84NXh4LmgKaW5kZXggZGFkZGI1NS4uMGYwN2JhMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcHBjL2lvcGluXzg1eHguaAorKysgYi9pbmNsdWRlL2FzbS1wcGMvaW9waW5fODV4eC5oCkBAIC0yMywxMjEgKzIzLDEyMSBAQAogCiBleHRlcm4gX19pbmxpbmVfXyB2b2lkIGlvcGluX3NldF9oaWdoIChpb3Bpbl90ICogaW9waW4pCiB7Ci0Jdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGNjc3JfY3BtX3QgKikgQ0ZHX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBkYXRhOworCXZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChjY3NyX2NwbV90ICopIENPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucGRhdGE7CiAJZGF0cFtpb3Bpbi0+cG9ydCAqIDhdIHw9ICgxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdm9pZCBpb3Bpbl9zZXRfbG93IChpb3Bpbl90ICogaW9waW4pCiB7Ci0Jdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGNjc3JfY3BtX3QgKikgQ0ZHX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBkYXRhOworCXZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChjY3NyX2NwbV90ICopIENPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucGRhdGE7CiAJZGF0cFtpb3Bpbi0+cG9ydCAqIDhdICY9IH4oMSA8PCAoMzEgLSBpb3Bpbi0+cGluKSk7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHVpbnQgaW9waW5faXNfaGlnaCAoaW9waW5fdCAqIGlvcGluKQogewotCXZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChjY3NyX2NwbV90ICopIENGR19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wZGF0YTsKKwl2b2xhdGlsZSB1aW50ICpkYXRwID0gJigoY2Nzcl9jcG1fdCAqKSBDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBkYXRhOwogCXJldHVybiAoZGF0cFtpb3Bpbi0+cG9ydCAqIDhdID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDE7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHVpbnQgaW9waW5faXNfbG93IChpb3Bpbl90ICogaW9waW4pCiB7Ci0Jdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGNjc3JfY3BtX3QgKikgQ0ZHX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBkYXRhOworCXZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChjY3NyX2NwbV90ICopIENPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucGRhdGE7CiAJcmV0dXJuICgoZGF0cFtpb3Bpbi0+cG9ydCAqIDhdID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdm9pZCBpb3Bpbl9zZXRfb3V0IChpb3Bpbl90ICogaW9waW4pCiB7Ci0Jdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGNjc3JfY3BtX3QgKikgQ0ZHX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBkaXJhOworCXZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChjY3NyX2NwbV90ICopIENPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucGRpcmE7CiAJZGlycFtpb3Bpbi0+cG9ydCAqIDhdIHw9ICgxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdm9pZCBpb3Bpbl9zZXRfaW4gKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucGRpcmE7CisJdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wZGlyYTsKIAlkaXJwW2lvcGluLT5wb3J0ICogOF0gJj0gfigxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdWludCBpb3Bpbl9pc19vdXQgKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucGRpcmE7CisJdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wZGlyYTsKIAlyZXR1cm4gKGRpcnBbaW9waW4tPnBvcnQgKiA4XSA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB1aW50IGlvcGluX2lzX2luIChpb3Bpbl90ICogaW9waW4pCiB7Ci0Jdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGNjc3JfY3BtX3QgKikgQ0ZHX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBkaXJhOworCXZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChjY3NyX2NwbV90ICopIENPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucGRpcmE7CiAJcmV0dXJuICgoZGlycFtpb3Bpbi0+cG9ydCAqIDhdID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdm9pZCBpb3Bpbl9zZXRfb2RyIChpb3Bpbl90ICogaW9waW4pCiB7Ci0Jdm9sYXRpbGUgdWludCAqb2RycCA9ICYoKGNjc3JfY3BtX3QgKikgQ0ZHX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBvZHJhOworCXZvbGF0aWxlIHVpbnQgKm9kcnAgPSAmKChjY3NyX2NwbV90ICopIENPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucG9kcmE7CiAJb2RycFtpb3Bpbi0+cG9ydCAqIDhdIHw9ICgxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdm9pZCBpb3Bpbl9zZXRfYWN0IChpb3Bpbl90ICogaW9waW4pCiB7Ci0Jdm9sYXRpbGUgdWludCAqb2RycCA9ICYoKGNjc3JfY3BtX3QgKikgQ0ZHX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBvZHJhOworCXZvbGF0aWxlIHVpbnQgKm9kcnAgPSAmKChjY3NyX2NwbV90ICopIENPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucG9kcmE7CiAJb2RycFtpb3Bpbi0+cG9ydCAqIDhdICY9IH4oMSA8PCAoMzEgLSBpb3Bpbi0+cGluKSk7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHVpbnQgaW9waW5faXNfb2RyIChpb3Bpbl90ICogaW9waW4pCiB7Ci0Jdm9sYXRpbGUgdWludCAqb2RycCA9ICYoKGNjc3JfY3BtX3QgKikgQ0ZHX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBvZHJhOworCXZvbGF0aWxlIHVpbnQgKm9kcnAgPSAmKChjY3NyX2NwbV90ICopIENPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucG9kcmE7CiAJcmV0dXJuIChvZHJwW2lvcGluLT5wb3J0ICogOF0gPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdWludCBpb3Bpbl9pc19hY3QgKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpvZHJwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucG9kcmE7CisJdm9sYXRpbGUgdWludCAqb2RycCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wb2RyYTsKIAlyZXR1cm4gKChvZHJwW2lvcGluLT5wb3J0ICogOF0gPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMSkgXiAxOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB2b2lkIGlvcGluX3NldF9kZWQgKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucHBhcmE7CisJdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wcGFyYTsKIAlwYXJwW2lvcGluLT5wb3J0ICogOF0gfD0gKDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB2b2lkIGlvcGluX3NldF9nZW4gKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucHBhcmE7CisJdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wcGFyYTsKIAlwYXJwW2lvcGluLT5wb3J0ICogOF0gJj0gfigxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdWludCBpb3Bpbl9pc19kZWQgKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucHBhcmE7CisJdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wcGFyYTsKIAlyZXR1cm4gKHBhcnBbaW9waW4tPnBvcnQgKiA4XSA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB1aW50IGlvcGluX2lzX2dlbiAoaW9waW5fdCAqIGlvcGluKQogewotCXZvbGF0aWxlIHVpbnQgKnBhcnAgPSAmKChjY3NyX2NwbV90ICopIENGR19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wcGFyYTsKKwl2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoY2Nzcl9jcG1fdCAqKSBDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBwYXJhOwogCXJldHVybiAoKHBhcnBbaW9waW4tPnBvcnQgKiA4XSA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHZvaWQgaW9waW5fc2V0X29wdDIgKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpzb3JwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucHNvcmE7CisJdm9sYXRpbGUgdWludCAqc29ycCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wc29yYTsKIAlzb3JwW2lvcGluLT5wb3J0ICogOF0gfD0gKDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB2b2lkIGlvcGluX3NldF9vcHQxIChpb3Bpbl90ICogaW9waW4pCiB7Ci0Jdm9sYXRpbGUgdWludCAqc29ycCA9ICYoKGNjc3JfY3BtX3QgKikgQ0ZHX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBzb3JhOworCXZvbGF0aWxlIHVpbnQgKnNvcnAgPSAmKChjY3NyX2NwbV90ICopIENPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucHNvcmE7CiAJc29ycFtpb3Bpbi0+cG9ydCAqIDhdICY9IH4oMSA8PCAoMzEgLSBpb3Bpbi0+cGluKSk7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHVpbnQgaW9waW5faXNfb3B0MiAoaW9waW5fdCAqIGlvcGluKQogewotCXZvbGF0aWxlIHVpbnQgKnNvcnAgPSAmKChjY3NyX2NwbV90ICopIENGR19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wc29yYTsKKwl2b2xhdGlsZSB1aW50ICpzb3JwID0gJigoY2Nzcl9jcG1fdCAqKSBDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBzb3JhOwogCXJldHVybiAoc29ycFtpb3Bpbi0+cG9ydCAqIDhdID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDE7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHVpbnQgaW9waW5faXNfb3B0MSAoaW9waW5fdCAqIGlvcGluKQogewotCXZvbGF0aWxlIHVpbnQgKnNvcnAgPSAmKChjY3NyX2NwbV90ICopIENGR19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wc29yYTsKKwl2b2xhdGlsZSB1aW50ICpzb3JwID0gJigoY2Nzcl9jcG1fdCAqKSBDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBzb3JhOwogCXJldHVybiAoKHNvcnBbaW9waW4tPnBvcnQgKiA4XSA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBwYy9pb3Bpbl84eHguaCBiL2luY2x1ZGUvYXNtLXBwYy9pb3Bpbl84eHguaAppbmRleCAxOTQ2ZWIyLi4zYTJhNjgyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wcGMvaW9waW5fOHh4LmgKKysrIGIvaW5jbHVkZS9hc20tcHBjL2lvcGluXzh4eC5oCkBAIC00NiwxNiArNDYsMTYgQEAKIGlvcGluX3NldF9oaWdoKGlvcGluX3QgKmlvcGluKQogewogCWlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQSkgewotCQl2b2xhdGlsZSB1c2hvcnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhZGF0OworCQl2b2xhdGlsZSB1c2hvcnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYWRhdDsKIAkJKmRhdHAgfD0gKDEgPDwgKDE1IC0gaW9waW4tPnBpbikpOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEIpIHsKLQkJdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYmRhdDsKKwkJdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQ7CiAJCSpkYXRwIHw9ICgxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRDKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQ7CisJCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0OwogCQkqZGF0cCB8PSAoMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JURCkgewotCQl2b2xhdGlsZSB1c2hvcnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0OworCQl2b2xhdGlsZSB1c2hvcnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdDsKIAkJKmRhdHAgfD0gKDEgPDwgKDE1IC0gaW9waW4tPnBpbikpOwogCX0KIH0KQEAgLTY0LDE2ICs2NCwxNiBAQAogaW9waW5fc2V0X2xvdyhpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEEpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYWRhdDsKKwkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkYXQ7CiAJCSpkYXRwICY9IH4oMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQikgewotCQl2b2xhdGlsZSB1aW50ICpkYXRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0OworCQl2b2xhdGlsZSB1aW50ICpkYXRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdDsKIAkJKmRhdHAgJj0gfigxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRDKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQ7CisJCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0OwogCQkqZGF0cCAmPSB+KDEgPDwgKDE1IC0gaW9waW4tPnBpbikpOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEQpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdDsKKwkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQ7CiAJCSpkYXRwICY9IH4oMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfQogfQpAQCAtODIsMTYgKzgyLDE2IEBACiBpb3Bpbl9pc19oaWdoKGlvcGluX3QgKmlvcGluKQogewogCWlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQSkgewotCQl2b2xhdGlsZSB1c2hvcnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhZGF0OworCQl2b2xhdGlsZSB1c2hvcnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYWRhdDsKIAkJcmV0dXJuICgqZGF0cCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEIpIHsKLQkJdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYmRhdDsKKwkJdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQ7CiAJCXJldHVybiAoKmRhdHAgPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRDKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQ7CisJCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0OwogCQlyZXR1cm4gKCpkYXRwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDE7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JURCkgewotCQl2b2xhdGlsZSB1c2hvcnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0OworCQl2b2xhdGlsZSB1c2hvcnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdDsKIAkJcmV0dXJuICgqZGF0cCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxOwogCX0KIAlyZXR1cm4gMDsKQEAgLTEwMSwxNiArMTAxLDE2IEBACiBpb3Bpbl9pc19sb3coaW9waW5fdCAqaW9waW4pCiB7CiAJaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRBKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkYXQ7CisJCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhZGF0OwogCQlyZXR1cm4gKCgqZGF0cCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQikgewotCQl2b2xhdGlsZSB1aW50ICpkYXRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0OworCQl2b2xhdGlsZSB1aW50ICpkYXRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdDsKIAkJcmV0dXJuICgoKmRhdHAgPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMSkgXiAxOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdDsKKwkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQ7CiAJCXJldHVybiAoKCpkYXRwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlREKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQ7CisJCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0OwogCQlyZXR1cm4gKCgqZGF0cCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiAJfQogCXJldHVybiAwOwpAQCAtMTIwLDE2ICsxMjAsMTYgQEAKIGlvcGluX3NldF9vdXQoaW9waW5fdCAqaW9waW4pCiB7CiAJaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRBKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqZGlycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkaXI7CisJCXZvbGF0aWxlIHVzaG9ydCAqZGlycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhZGlyOwogCQkqZGlycCB8PSAoMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQikgewotCQl2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGlyOworCQl2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRpcjsKIAkJKmRpcnAgfD0gKDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RpcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkaXI7CiAJCSpkaXJwIHw9ICgxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlREKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqZGlycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkaXI7CisJCXZvbGF0aWxlIHVzaG9ydCAqZGlycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGlyOwogCQkqZGlycCB8PSAoMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfQogfQpAQCAtMTM4LDE2ICsxMzgsMTYgQEAKIGlvcGluX3NldF9pbihpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEEpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYWRpcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkaXI7CiAJCSpkaXJwICY9IH4oMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQikgewotCQl2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGlyOworCQl2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRpcjsKIAkJKmRpcnAgJj0gfigxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRDKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqZGlycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkaXI7CisJCXZvbGF0aWxlIHVzaG9ydCAqZGlycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGlyOwogCQkqZGlycCAmPSB+KDEgPDwgKDE1IC0gaW9waW4tPnBpbikpOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEQpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRpcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkaXI7CiAJCSpkaXJwICY9IH4oMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfQogfQpAQCAtMTU2LDE2ICsxNTYsMTYgQEAKIGlvcGluX2lzX291dChpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEEpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYWRpcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkaXI7CiAJCXJldHVybiAoKmRpcnAgPj4gKDE1IC0gaW9waW4tPnBpbikpICYgMTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRCKSB7Ci0JCXZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkaXI7CisJCXZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BiZGlyOwogCQlyZXR1cm4gKCpkaXJwID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDE7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQykgewotCQl2b2xhdGlsZSB1c2hvcnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGlyOworCQl2b2xhdGlsZSB1c2hvcnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RpcjsKIAkJcmV0dXJuICgqZGlycCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEQpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRpcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkaXI7CiAJCXJldHVybiAoKmRpcnAgPj4gKDE1IC0gaW9waW4tPnBpbikpICYgMTsKIAl9CiAJcmV0dXJuIDA7CkBAIC0xNzUsMTYgKzE3NSwxNiBAQAogaW9waW5faXNfaW4oaW9waW5fdCAqaW9waW4pCiB7CiAJaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRBKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqZGlycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkaXI7CisJCXZvbGF0aWxlIHVzaG9ydCAqZGlycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhZGlyOwogCQlyZXR1cm4gKCgqZGlycCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQikgewotCQl2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGlyOworCQl2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRpcjsKIAkJcmV0dXJuICgoKmRpcnAgPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMSkgXiAxOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RpcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkaXI7CiAJCXJldHVybiAoKCpkaXJwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlREKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqZGlycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkaXI7CisJCXZvbGF0aWxlIHVzaG9ydCAqZGlycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGlyOwogCQlyZXR1cm4gKCgqZGlycCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiAJfQogCXJldHVybiAwOwpAQCAtMTk0LDEwICsxOTQsMTAgQEAKIGlvcGluX3NldF9vZHIoaW9waW5fdCAqaW9waW4pCiB7CiAJaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRBKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqb2RycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFvZHI7CisJCXZvbGF0aWxlIHVzaG9ydCAqb2RycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3Bhb2RyOwogCQkqb2RycCB8PSAoMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQikgewotCQl2b2xhdGlsZSB1c2hvcnQgKm9kcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJvZHI7CisJCXZvbGF0aWxlIHVzaG9ydCAqb2RycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJvZHI7CiAJCSpvZHJwIHw9ICgxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIAl9CiB9CkBAIC0yMDYsMTAgKzIwNiwxMCBAQAogaW9waW5fc2V0X2FjdChpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEEpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpvZHJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYW9kcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpvZHJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFvZHI7CiAJCSpvZHJwICY9IH4oMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQikgewotCQl2b2xhdGlsZSB1c2hvcnQgKm9kcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJvZHI7CisJCXZvbGF0aWxlIHVzaG9ydCAqb2RycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJvZHI7CiAJCSpvZHJwICY9IH4oMSA8PCAoMzEgLSBpb3Bpbi0+cGluKSk7CiAJfQogfQpAQCAtMjE4LDEwICsyMTgsMTAgQEAKIGlvcGluX2lzX29kcihpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEEpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpvZHJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYW9kcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpvZHJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFvZHI7CiAJCXJldHVybiAoKm9kcnAgPj4gKDE1IC0gaW9waW4tPnBpbikpICYgMTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRCKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqb2RycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYm9kcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpvZHJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYm9kcjsKIAkJcmV0dXJuICgqb2RycCA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxOwogCX0KIAlyZXR1cm4gMDsKQEAgLTIzMSwxMCArMjMxLDEwIEBACiBpb3Bpbl9pc19hY3QoaW9waW5fdCAqaW9waW4pCiB7CiAJaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRBKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqb2RycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFvZHI7CisJCXZvbGF0aWxlIHVzaG9ydCAqb2RycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3Bhb2RyOwogCQlyZXR1cm4gKCgqb2RycCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQikgewotCQl2b2xhdGlsZSB1c2hvcnQgKm9kcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJvZHI7CisJCXZvbGF0aWxlIHVzaG9ydCAqb2RycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJvZHI7CiAJCXJldHVybiAoKCpvZHJwID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIAl9CiAJcmV0dXJuIDA7CkBAIC0yNDQsMTYgKzI0NCwxNiBAQAogaW9waW5fc2V0X2RlZChpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEEpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYXBhcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFwYXI7CiAJCSpwYXJwIHw9ICgxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRCKSB7Ci0JCXZvbGF0aWxlIHVpbnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJwYXI7CisJCXZvbGF0aWxlIHVpbnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BicGFyOwogCQkqcGFycCB8PSAoMSA8PCAoMzEgLSBpb3Bpbi0+cGluKSk7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQykgewotCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjcGFyOworCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY3BhcjsKIAkJKnBhcnAgfD0gKDEgPDwgKDE1IC0gaW9waW4tPnBpbikpOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEQpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZHBhcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRwYXI7CiAJCSpwYXJwIHw9ICgxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9CiB9CkBAIC0yNjIsMTYgKzI2MiwxNiBAQAogaW9waW5fc2V0X2dlbihpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEEpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYXBhcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFwYXI7CiAJCSpwYXJwICY9IH4oMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQikgewotCQl2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BicGFyOworCQl2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYnBhcjsKIAkJKnBhcnAgJj0gfigxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRDKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqcGFycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNwYXI7CisJCXZvbGF0aWxlIHVzaG9ydCAqcGFycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjcGFyOwogCQkqcGFycCAmPSB+KDEgPDwgKDE1IC0gaW9waW4tPnBpbikpOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEQpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZHBhcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRwYXI7CiAJCSpwYXJwICY9IH4oMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfQogfQpAQCAtMjgwLDE2ICsyODAsMTYgQEAKIGlvcGluX2lzX2RlZChpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEEpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYXBhcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFwYXI7CiAJCXJldHVybiAoKnBhcnAgPj4gKDE1IC0gaW9waW4tPnBpbikpICYgMTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRCKSB7Ci0JCXZvbGF0aWxlIHVpbnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJwYXI7CisJCXZvbGF0aWxlIHVpbnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BicGFyOwogCQlyZXR1cm4gKCpwYXJwID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDE7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQykgewotCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjcGFyOworCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY3BhcjsKIAkJcmV0dXJuICgqcGFycCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEQpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZHBhcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRwYXI7CiAJCXJldHVybiAoKnBhcnAgPj4gKDE1IC0gaW9waW4tPnBpbikpICYgMTsKIAl9CiAJcmV0dXJuIDA7CkBAIC0yOTksMTYgKzI5OSwxNiBAQAogaW9waW5faXNfZ2VuKGlvcGluX3QgKmlvcGluKQogewogCWlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQSkgewotCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhcGFyOworCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYXBhcjsKIAkJcmV0dXJuICgoKnBhcnAgPj4gKDE1IC0gaW9waW4tPnBpbikpICYgMSkgXiAxOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEIpIHsKLQkJdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYnBhcjsKKwkJdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJwYXI7CiAJCXJldHVybiAoKCpwYXJwID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRDKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqcGFycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNwYXI7CisJCXZvbGF0aWxlIHVzaG9ydCAqcGFycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjcGFyOwogCQlyZXR1cm4gKCgqcGFycCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JURCkgewotCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkcGFyOworCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZHBhcjsKIAkJcmV0dXJuICgoKnBhcnAgPj4gKDE1IC0gaW9waW4tPnBpbikpICYgMSkgXiAxOwogCX0KIAlyZXR1cm4gMDsKQEAgLTMxOCw3ICszMTgsNyBAQAogaW9waW5fc2V0X29wdDIoaW9waW5fdCAqaW9waW4pCiB7CiAJaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRDKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqc29ycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNzbzsKKwkJdm9sYXRpbGUgdXNob3J0ICpzb3JwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNzbzsKIAkJKnNvcnAgfD0gKDEgPDwgKDE1IC0gaW9waW4tPnBpbikpOwogCX0KIH0KQEAgLTMyNyw3ICszMjcsNyBAQAogaW9waW5fc2V0X29wdDEoaW9waW5fdCAqaW9waW4pCiB7CiAJaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRDKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqc29ycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNzbzsKKwkJdm9sYXRpbGUgdXNob3J0ICpzb3JwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNzbzsKIAkJKnNvcnAgJj0gfigxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9CiB9CkBAIC0zMzYsNyArMzM2LDcgQEAKIGlvcGluX2lzX29wdDIoaW9waW5fdCAqaW9waW4pCiB7CiAJaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRDKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqc29ycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNzbzsKKwkJdm9sYXRpbGUgdXNob3J0ICpzb3JwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNzbzsKIAkJcmV0dXJuICgqc29ycCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxOwogCX0KIAlyZXR1cm4gMDsKQEAgLTM0Niw3ICszNDYsNyBAQAogaW9waW5faXNfb3B0MShpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpzb3JwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY3NvOworCQl2b2xhdGlsZSB1c2hvcnQgKnNvcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY3NvOwogCQlyZXR1cm4gKCgqc29ycCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiAJfQogCXJldHVybiAwOwpAQCAtMzU2LDcgKzM1Niw3IEBACiBpb3Bpbl9zZXRfZmFsbGVkZ2UoaW9waW5fdCAqaW9waW4pCiB7CiAJaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRDKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqaW50cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNpbnQ7CisJCXZvbGF0aWxlIHVzaG9ydCAqaW50cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjaW50OwogCQkqaW50cCB8PSAoMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfQogfQpAQCAtMzY1LDcgKzM2NSw3IEBACiBpb3Bpbl9zZXRfYW55ZWRnZShpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICppbnRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2ludDsKKwkJdm9sYXRpbGUgdXNob3J0ICppbnRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNpbnQ7CiAJCSppbnRwICY9IH4oMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfQogfQpAQCAtMzc0LDcgKzM3NCw3IEBACiBpb3Bpbl9pc19mYWxsZWRnZShpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICppbnRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2ludDsKKwkJdm9sYXRpbGUgdXNob3J0ICppbnRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNpbnQ7CiAJCXJldHVybiAoKmludHAgPj4gKDE1IC0gaW9waW4tPnBpbikpICYgMTsKIAl9CiAJcmV0dXJuIDA7CkBAIC0zODQsNyArMzg0LDcgQEAKIGlvcGluX2lzX2FueWVkZ2UoaW9waW5fdCAqaW9waW4pCiB7CiAJaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRDKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqaW50cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNpbnQ7CisJCXZvbGF0aWxlIHVzaG9ydCAqaW50cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjaW50OwogCQlyZXR1cm4gKCgqaW50cCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiAJfQogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcHBjL3N0YXR1c19sZWQuaCBiL2luY2x1ZGUvYXNtLXBwYy9zdGF0dXNfbGVkLmgKaW5kZXggZWI4MWYzNy4uMDM3NTcwOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcHBjL3N0YXR1c19sZWQuaAorKysgYi9pbmNsdWRlL2FzbS1wcGMvc3RhdHVzX2xlZC5oCkBAIC0yNCw3ICsyNCw3IEBACiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2xlZF9pbml0IChsZWRfaWRfdCBtYXNrLCBpbnQgc3RhdGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKICNpZmRlZiBTVEFUVVNfTEVEX1BBUgogCWltbXItPlNUQVRVU19MRURfUEFSICY9IH5tYXNrOwpAQCAtNTEsMTIgKzUxLDEyIEBACiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2xlZF90b2dnbGUgKGxlZF9pZF90IG1hc2spCiB7Ci0JKChpbW1hcF90ICopIENGR19JTU1SKS0+U1RBVFVTX0xFRF9EQVQgXj0gbWFzazsKKwkoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKS0+U1RBVFVTX0xFRF9EQVQgXj0gbWFzazsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIF9fbGVkX3NldCAobGVkX2lkX3QgbWFzaywgaW50IHN0YXRlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAjaWYgKFNUQVRVU19MRURfQUNUSVZFID09IDApCiAJaWYgKHN0YXRlID09IFNUQVRVU19MRURfT04pCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zcGFyYy9hc21tYWNyby5oIGIvaW5jbHVkZS9hc20tc3BhcmMvYXNtbWFjcm8uaAppbmRleCAwYzRjZWZkLi5hZWI4N2VlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zcGFyYy9hc21tYWNyby5oCisrKyBiL2luY2x1ZGUvYXNtLXNwYXJjL2FzbW1hY3JvLmgKQEAgLTMzLDggKzMzLDggQEAKICAqIGMtY29kZSBjYW4gYmUgY2FsbGVkLgogICovCiAjZGVmaW5lIFNBVkVfQUxMX0hFQUQgXAotCXNldGhpCSVoaSh0cmFwX3NldHVwKyhDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSkpLCAlbDQ7IFwKLQlqbXBsCSVsNCArICVsbyh0cmFwX3NldHVwKyhDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSkpLCAlbDY7CisJc2V0aGkJJWhpKHRyYXBfc2V0dXArKENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSkpLCAlbDQ7IFwKKwlqbXBsCSVsNCArICVsbyh0cmFwX3NldHVwKyhDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRS1URVhUX0JBU0UpKSwgJWw2OwogI2RlZmluZSBTQVZFX0FMTCBcCiAJU0FWRV9BTExfSEVBRCBcCiAJbm9wOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tc3BhcmMvZ2xvYmFsX2RhdGEuaCBiL2luY2x1ZGUvYXNtLXNwYXJjL2dsb2JhbF9kYXRhLmgKaW5kZXggZWViMzVkMC4uZGVhMjg1NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tc3BhcmMvZ2xvYmFsX2RhdGEuaAorKysgYi9pbmNsdWRlL2FzbS1zcGFyYy9nbG9iYWxfZGF0YS5oCkBAIC0zNiw3ICszNiw3IEBACiAgKiBnbG9iYWwgdmFyaWFibGVzIGR1cmluZyBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gKHVudGlsIHdlIGhhdmUgc2V0CiAgKiB1cCB0aGUgbWVtb3J5IGNvbnRyb2xsZXIgc28gdGhhdCB3ZSBjYW4gdXNlIFJBTSkuCiAgKgotICogS2VlcCBpdCAqU01BTEwqIGFuZCByZW1lbWJlciB0byBzZXQgQ0ZHX0dCTF9EQVRBX1NJWkUgPiBzaXplb2YoZ2RfdCkKKyAqIEtlZXAgaXQgKlNNQUxMKiBhbmQgcmVtZW1iZXIgdG8gc2V0IENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSA+IHNpemVvZihnZF90KQogICovCiAKIHR5cGVkZWYgc3RydWN0IGdsb2JhbF9kYXRhIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXNwYXJjL2lvLmggYi9pbmNsdWRlL2FzbS1zcGFyYy9pby5oCmluZGV4IGVkZTBiMWEuLjVmOGQwNWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXNwYXJjL2lvLmgKKysrIGIvaW5jbHVkZS9hc20tc3BhcmMvaW8uaApAQCAtMzIsNyArMzIsNyBAQAogICogb3ZlciBhbmQgb3ZlciBhZ2FpbiByZXN1bHRpbmcgaW4gYSBoYW5nICh1bnRpbCBhbiBJUlEgaWYgbHVja3kpCiAgKgogICovCi0jaWZuZGVmIENGR19IQVNfTk9fQ0FDSEUKKyNpZm5kZWYgQ09ORklHX1NZU19IQVNfTk9fQ0FDSEUKICNkZWZpbmUgUkVBRF9CWVRFKHZhcikgIFNQQVJDX05PQ0FDSEVfUkVBRF9CWVRFKCh1bnNpZ25lZCBpbnQpKHZhcikpCiAjZGVmaW5lIFJFQURfSFdPUkQodmFyKSBTUEFSQ19OT0NBQ0hFX1JFQURfSFdPUkQoKHVuc2lnbmVkIGludCkodmFyKSkKICNkZWZpbmUgUkVBRF9XT1JEKHZhcikgIFNQQVJDX05PQ0FDSEVfUkVBRCgodW5zaWduZWQgaW50KSh2YXIpKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hdGEuaCBiL2luY2x1ZGUvYXRhLmgKaW5kZXggMjM5Njc2OS4uYjUxNDc1ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hdGEuaAorKysgYi9pbmNsdWRlL2F0YS5oCkBAIC0zOSwxMyArMzksMTMgQEAKICAqIDgtYml0IChyZWdpc3RlcikgYW5kIDE2LWJpdCAoZGF0YSkgYWNjZXNzZXMgbWlnaHQgdXNlIGRpZmZlcmVudAogICogYWRkcmVzcyBzcGFjZXMuIFRoaXMgaXMgaW1wbGVtZW50ZWQgYnkgdGhlIGZvbGxvd2luZyBkZWZpbml0aW9ucy4KICAqLwotI2lmbmRlZiBDRkdfQVRBX1NUUklERQotI2RlZmluZSBDRkdfQVRBX1NUUklERQkxCisjaWZuZGVmIENPTkZJR19TWVNfQVRBX1NUUklERQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJMQogI2VuZGlmCiAKLSNkZWZpbmUgQVRBX0lPX0RBVEEoeCkJKENGR19BVEFfREFUQV9PRkZTRVQrKCh4KSAqIENGR19BVEFfU1RSSURFKSkKLSNkZWZpbmUgQVRBX0lPX1JFRyh4KQkoQ0ZHX0FUQV9SRUdfT0ZGU0VUICsoKHgpICogQ0ZHX0FUQV9TVFJJREUpKQotI2RlZmluZSBBVEFfSU9fQUxUKHgpCShDRkdfQVRBX0FMVF9PRkZTRVQgKygoeCkgKiBDRkdfQVRBX1NUUklERSkpCisjZGVmaW5lIEFUQV9JT19EQVRBKHgpCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCsoKHgpICogQ09ORklHX1NZU19BVEFfU1RSSURFKSkKKyNkZWZpbmUgQVRBX0lPX1JFRyh4KQkoQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVCArKCh4KSAqIENPTkZJR19TWVNfQVRBX1NUUklERSkpCisjZGVmaW5lIEFUQV9JT19BTFQoeCkJKENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQgKygoeCkgKiBDT05GSUdfU1lTX0FUQV9TVFJJREUpKQogCiAvKgogICogSS9PIFJlZ2lzdGVyIERlc2NyaXB0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb21tYW5kLmggYi9pbmNsdWRlL2NvbW1hbmQuaAppbmRleCA3OGZlZWE1Li5hOGExNTNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbW1hbmQuaAorKysgYi9pbmNsdWRlL2NvbW1hbmQuaApAQCAtNDUsNyArNDUsNyBAQAogCQkJCQkvKiBJbXBsZW1lbnRhdGlvbiBmdW5jdGlvbgkqLwogCWludAkJKCpjbWQpKHN0cnVjdCBjbWRfdGJsX3MgKiwgaW50LCBpbnQsIGNoYXIgKltdKTsKIAljaGFyCQkqdXNhZ2U7CQkvKiBVc2FnZSBtZXNzYWdlCShzaG9ydCkJKi8KLSNpZmRlZglDRkdfTE9OR0hFTFAKKyNpZmRlZglDT05GSUdfU1lTX0xPTkdIRUxQCiAJY2hhcgkJKmhlbHA7CQkvKiBIZWxwICBtZXNzYWdlCShsb25nKQkqLwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0FVVE9fQ09NUExFVEUKQEAgLTk4LDcgKzk4LDcgQEAKIAogI2RlZmluZSBTdHJ1Y3RfU2VjdGlvbiAgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCxzZWN0aW9uICgiLnVfYm9vdF9jbWQiKSkpCiAKLSNpZmRlZiAgQ0ZHX0xPTkdIRUxQCisjaWZkZWYgIENPTkZJR19TWVNfTE9OR0hFTFAKIAogI2RlZmluZSBVX0JPT1RfQ01EKG5hbWUsbWF4YXJncyxyZXAsY21kLHVzYWdlLGhlbHApIFwKIGNtZF90YmxfdCBfX3VfYm9vdF9jbWRfIyNuYW1lIFN0cnVjdF9TZWN0aW9uID0geyNuYW1lLCBtYXhhcmdzLCByZXAsIGNtZCwgdXNhZ2UsIGhlbHB9CkBAIC0xMTQsNiArMTE0LDYgQEAKICNkZWZpbmUgVV9CT09UX0NNRF9NS0VOVChuYW1lLG1heGFyZ3MscmVwLGNtZCx1c2FnZSxoZWxwKSBcCiB7I25hbWUsIG1heGFyZ3MsIHJlcCwgY21kLCB1c2FnZX0KIAotI2VuZGlmCS8qIENGR19MT05HSEVMUCAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfTE9OR0hFTFAgKi8KIAogI2VuZGlmCS8qIF9fQ09NTUFORF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbW1vbi5oIGIvaW5jbHVkZS9jb21tb24uaAppbmRleCAzM2M2ZTEwLi5lNjU5MDQ0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbW1vbi5oCisrKyBiL2luY2x1ZGUvY29tbW9uLmgKQEAgLTI3NiwxMCArMjc2LDEwIEBACiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgKGRlZmluZWQoQ09ORklHXzQ0MCkgfHwgZGVmaW5lZChDT05GSUdfNDA1RVgpKQotIyAgIGlmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkKKyMgICBpZiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogCXZvaWQJcGNpX3RhcmdldF9pbml0CSAgICAgKHN0cnVjdCBwY2lfY29udHJvbGxlciAqKTsKICMgICBlbmRpZgotIyAgIGlmIGRlZmluZWQoQ0ZHX1BDSV9NQVNURVJfSU5JVCkKKyMgICBpZiBkZWZpbmVkKENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUKQogCXZvaWQJcGNpX21hc3Rlcl9pbml0CSAgICAgKHN0cnVjdCBwY2lfY29udHJvbGxlciAqKTsKICMgICBlbmRpZgogICAgIGludAkgICAgaXNfcGNpX2hvc3QJCShzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKik7CkBAIC0zMjIsMTEgKzMyMiwxMSBAQAogICogU2V0IHRoaXMgdXAgcmVnYXJkbGVzcyBvZiBib2FyZAogICogdHlwZSwgdG8gcHJldmVudCBlcnJvcnMuCiAgKi8KLSNpZiBkZWZpbmVkKENPTkZJR19TUEkpIHx8ICFkZWZpbmVkKENGR19JMkNfRUVQUk9NX0FERFIpCi0jIGRlZmluZSBDRkdfREVGX0VFUFJPTV9BRERSIDAKKyNpZiBkZWZpbmVkKENPTkZJR19TUEkpIHx8ICFkZWZpbmVkKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSKQorIyBkZWZpbmUgQ09ORklHX1NZU19ERUZfRUVQUk9NX0FERFIgMAogI2Vsc2UKLSMgZGVmaW5lIENGR19ERUZfRUVQUk9NX0FERFIgQ0ZHX0kyQ19FRVBST01fQUREUgotI2VuZGlmIC8qIENPTkZJR19TUEkgfHwgIWRlZmluZWQoQ0ZHX0kyQ19FRVBST01fQUREUikgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCisjZW5kaWYgLyogQ09ORklHX1NQSSB8fCAhZGVmaW5lZChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUikgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1NQSSkKIGV4dGVybiB2b2lkIHNwaV9pbml0X2YgKHZvaWQpOwpAQCAtMzc2LDkgKzM3Niw5IEBACiBpbnQgYm9hcmRfZWFybHlfaW5pdF9yICh2b2lkKTsKIHZvaWQgYm9hcmRfcG93ZXJvZmYgKHZvaWQpOwogCi0jaWYgZGVmaW5lZChDRkdfRFJBTV9URVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19EUkFNX1RFU1QpCiBpbnQgdGVzdGRyYW0odm9pZCk7Ci0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUICovCiAKIC8qICQoQ1BVKS9zdGFydC5TICovCiAjaWYgZGVmaW5lZChDT05GSUdfNXh4KSB8fCBcCkBAIC02MDgsNyArNjA4LDcgQEAKIAogLyogbGliX2dlbmVyaWMvdnNwcmludGYuYyAqLwogdWxvbmcJc2ltcGxlX3N0cnRvdWwoY29uc3QgY2hhciAqY3AsY2hhciAqKmVuZHAsdW5zaWduZWQgaW50IGJhc2UpOwotI2lmZGVmIENGR182NEJJVF9WU1BSSU5URgorI2lmZGVmIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYKIHVuc2lnbmVkIGxvbmcgbG9uZwlzaW1wbGVfc3RydG91bGwoY29uc3QgY2hhciAqY3AsY2hhciAqKmVuZHAsdW5zaWduZWQgaW50IGJhc2UpOwogI2VuZGlmCiBsb25nCXNpbXBsZV9zdHJ0b2woY29uc3QgY2hhciAqY3AsY2hhciAqKmVuZHAsdW5zaWduZWQgaW50IGJhc2UpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb21tcHJvYy5oIGIvaW5jbHVkZS9jb21tcHJvYy5oCmluZGV4IDBhNGU4MTcuLjEyZGVjZmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29tbXByb2MuaAorKysgYi9pbmNsdWRlL2NvbW1wcm9jLmgKQEAgLTYyLDcgKzYyLDcgQEAKICAqIGFzIGRhdGEgcmFtIGZvciBidWZmZXIgZGVzY3JpcHRvcnMsIHdoaWNoIGlzIGFsbCB3ZSB1c2UgcmlnaHQgbm93LgogICogQ3VycmVudGx5IHRoZSBmaXJzdCA1MTIgYW5kIGxhc3QgMjU2IGJ5dGVzIGFyZSB1c2VkIGZvciBtaWNyb2NvZGUuCiAgKi8KLSNpZmRlZiAgQ0ZHX0FMTE9DX0RQUkFNCisjaWZkZWYgIENPTkZJR19TWVNfQUxMT0NfRFBSQU0KIAogI2RlZmluZSBDUE1fREFUQU9OTFlfQkFTRQkoKHVpbnQpMHgwODAwKQogI2RlZmluZSBDUE1fREFUQU9OTFlfU0laRQkoKHVpbnQpMHgwNzAwKQpAQCAtODEsMTYgKzgxLDE2IEBACiAKICNlbmRpZgogCi0jaWZuZGVmIENGR19DUE1fUE9TVF9XT1JEX0FERFIKKyNpZm5kZWYgQ09ORklHX1NZU19DUE1fUE9TVF9XT1JEX0FERFIKICNkZWZpbmUgQ1BNX1BPU1RfV09SRF9BRERSCTB4MDdGQwogI2Vsc2UKLSNkZWZpbmUgQ1BNX1BPU1RfV09SRF9BRERSCUNGR19DUE1fUE9TVF9XT1JEX0FERFIKKyNkZWZpbmUgQ1BNX1BPU1RfV09SRF9BRERSCUNPTkZJR19TWVNfQ1BNX1BPU1RfV09SRF9BRERSCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfQ1BNX0JPT1RDT1VOVF9BRERSCisjaWZuZGVmIENPTkZJR19TWVNfQ1BNX0JPT1RDT1VOVF9BRERSCiAjZGVmaW5lIENQTV9CT09UQ09VTlRfQUREUgkoQ1BNX1BPU1RfV09SRF9BRERSIC0gMipzaXplb2YodWxvbmcpKQogI2Vsc2UKLSNkZWZpbmUgQ1BNX0JPT1RDT1VOVF9BRERSCUNGR19DUE1fQk9PVENPVU5UX0FERFIKKyNkZWZpbmUgQ1BNX0JPT1RDT1VOVF9BRERSCUNPTkZJR19TWVNfQ1BNX0JPT1RDT1VOVF9BRERSCiAjZW5kaWYKIAogI2RlZmluZSBCRF9JSUNfU1RBUlQJKCh1aW50KSAweDA0MDApIC8qIDwtIHBsZWFzZSB1c2UgQ1BNX0kyQ19CQVNFICEhICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQTMwMDAuaCBiL2luY2x1ZGUvY29uZmlncy9BMzAwMC5oCmluZGV4IGNlZTU1NjAuLjZkODg3MGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9BMzAwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9BMzAwMC5oCkBAIC00OCw3ICs0OCw3IEBACiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CiAKQEAgLTcxLDE2ICs3MSwxNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI3VuZGVmIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSJBMzAwMD4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyN1bmRlZiBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSJBMzAwMD4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAKIC8qIFByaW50IEJ1ZmZlciBTaXplCiAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwk4CQkvKiBNYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgwMDQwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJOAkJLyogTWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MDA0MDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtODgsOCArODgsOCBAQAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkJLyogVG8gZW5hYmxlIEkyQyBzdXBwb3J0CSovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTExOCw2NCArMTE4LDY0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFMF9QUkVMSU0JCTB4RkYwMDAwMDAJLyogRkxBU0ggYmFuayBvbiBSQ1MjMCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRTFfUFJFTElNCQkweEZGMDAwMDAwCS8qIEZMQVNIIGJhbmsgb24gUkNTIzEgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQlDRkdfRkxBU0hfQkFTRTBfUFJFTElNCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LUwkJCXsgQ0ZHX0ZMQVNIX0JBU0UwX1BSRUxJTSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRTBfUFJFTElNCQkweEZGMDAwMDAwCS8qIEZMQVNIIGJhbmsgb24gUkNTIzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFMV9QUkVMSU0JCTB4RkYwMDAwMDAJLyogRkxBU0ggYmFuayBvbiBSQ1MjMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTCQkJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UwX1BSRUxJTSB9CiAKIC8qIGV2ZW4gdGhvdWdoIEZMQVNIUF9CQVNFIGlzIEZGODAwMDAwLCB3aXRoIDRNQiBpcyBSQ1MwLCB0aGUKICAqIHJlc2V0IHZlY3RvciBpcyBhY3R1YWxseSBsb2NhdGVkIGF0IEZGQjAwMTAwLCBidXQgdGhlIDgyNDUKICAqIHRha2VzIGNhcmUgb2YgdXMuCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MgICAweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKIAotI2RlZmluZSBDRkdfRVVNQl9BRERSCSAgICAweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVVNQl9BRERSCSAgICAweEZDMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSAgICAoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCSAgICAoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgICgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJICAgIDB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECSAgICAweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCiAKIAkvKiBNYXhpbXVtIGFtb3VudCBvZiBSQU0uCiAJICovCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUgICAgMHgwNDAwMDAwMAkvKiAwIC4uIDEyOCBNQiBvZiAoUylEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFICAgIDB4MDQwMDAwMDAJLyogMCAuLiAxMjggTUIgb2YgKFMpRFJBTSAqLwogCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCi0jdW5kZWYgQ0ZHX1JBTUJPT1QKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyN1bmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jZGVmaW5lIENGR19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0VVTUJfQUREUiArIDB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0VVTUJfQUREUiArIDB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19FVU1CX0FERFIgKyAweDQ2MDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQogICovCiAKLS8qICNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkgICBURVhUX0JBU0UgKi8KLS8qI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAyNTYqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisvKiAjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCSAgIFRFWFRfQkFTRSAqLworLyojZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAyNTYqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIAogLyoKQEAgLTE4Niw0MSArMTg2LDQxIEBACiAgKi8KIAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRICAzMzMzMzMzMwkvKiBleHRlcm5hbCBmcmVxdWVuY3kgdG8gcGxsICovCi0jZGVmaW5lIENGR19IWgkJICAgICAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCSAgICAgMTAwMAogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjEuCiAJICovCi0jZGVmaW5lIENGR19ST01OQUwJICAgIDcKLSNkZWZpbmUgQ0ZHX1JPTUZBTAkgICAgMTEKLSNkZWZpbmUgQ0ZHX0RCVVNfU0laRQkgICAgMHgzCisjZGVmaW5lIENPTkZJR19TWVNfUk9NTkFMCSAgICA3CisjZGVmaW5lIENPTkZJR19TWVNfUk9NRkFMCSAgICAxMQorI2RlZmluZSBDT05GSUdfU1lTX0RCVVNfU0laRQkgICAgMHgzCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMi4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1RTV0FJVAkgICAgMHg1CQkgICAgLyogVHJhbnNhY3Rpb24gU3RhcnQgV2FpdCBTdGF0ZXMgdGltZXIgKi8KLSNkZWZpbmUgQ0ZHX1JFRklOVAkgICAgMHg0MDAJICAgIC8qIFJlZnJlc2ggaW50ZXJ2YWwJRklYTUU6IHdhcyAwdDQzMAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19UU1dBSVQJICAgIDB4NQkJICAgIC8qIFRyYW5zYWN0aW9uIFN0YXJ0IFdhaXQgU3RhdGVzIHRpbWVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGSU5UCSAgICAweDQwMAkgICAgLyogUmVmcmVzaCBpbnRlcnZhbAlGSVhNRTogd2FzIDB0NDMwCQkqLwogCiAJLyogQnVyc3QgVG8gUHJlY2hhcmdlLiBCaXRzIG9mIHRoaXMgdmFsdWUgZ28gdG8gTUNDUjMgYW5kIE1DQ1I0LgogCSAqLwotI2RlZmluZSBDRkdfQlNUT1BSRQkgICAgMTIxCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRQkgICAgMTIxCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMy4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQwkgICAgOAkgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbCAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwkgICAgOAkgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbCAqLwogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjQuCiAJICovCi0jZGVmaW5lIENGR19QUkVUT0FDVAkgICAgMwkgICAgLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsIEZJWE1FOiB3YXMgMgkqLwotI2RlZmluZSBDRkdfQUNUVE9QUkUJICAgIDUJICAgIC8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbCBGSVhNRTogd2FzIDUJKi8KLSNkZWZpbmUgQ0ZHX0FDVE9SVwkgICAgMwkJLyogRklYTUUgd2FzIDIgKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUICAzCSAgICAvKiBTRE1PREUgQ0FTIGxhdGFuY3kgKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9XUkFQCSAgICAwCSAgICAvKiBTRE1PREUgd3JhcCB0eXBlCSovCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQotI2RlZmluZSBDRkdfRVhUUk9NCSAgICAxCi0jZGVmaW5lIENGR19SRUdESU1NCSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJICAgIDMJICAgIC8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbCBGSVhNRTogd2FzIDIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkgICAgNQkgICAgLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsIEZJWE1FOiB3YXMgNQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVE9SVwkgICAgMwkJLyogRklYTUUgd2FzIDIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVCAgMwkgICAgLyogU0RNT0RFIENBUyBsYXRhbmN5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX1dSQVAJICAgIDAJICAgIC8qIFNETU9ERSB3cmFwIHR5cGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQorI2RlZmluZSBDT05GSUdfU1lTX0VYVFJPTQkgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX1JFR0RJTU0JICAgIDAKIAotI2RlZmluZSBDRkdfUEdNQVgJICAgIDB4MzIgLyogaG93IGxvbmcgdGhlIDgyNDAgcmVhdGlucyB0aGUgY3VycmVudGx5IGFjY2Vzc2VkIHBhZ2UgaW4gbWVtb3J5IEZJWE1FOiB3YXMgMHgzMiovCisjZGVmaW5lIENPTkZJR19TWVNfUEdNQVgJICAgIDB4MzIgLyogaG93IGxvbmcgdGhlIDgyNDAgcmVhdGlucyB0aGUgY3VycmVudGx5IGFjY2Vzc2VkIHBhZ2UgaW4gbWVtb3J5IEZJWE1FOiB3YXMgMHgzMiovCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0RTQ0QJMHgyMAkvKiBTRFJBTSBkYXRhIGluIHNhbXBsZSBjbG9jayBkZWxheSAtIG5vdGUgYm90dG9tIDMgYml0cyBNVVNUIGJlIDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9EU0NECTB4MjAJLyogU0RSQU0gZGF0YSBpbiBzYW1wbGUgY2xvY2sgZGVsYXkgLSBub3RlIGJvdHRvbSAzIGJpdHMgTVVTVCBiZSAwICovCiAKIC8qIE1lbW9yeSBiYW5rIHNldHRpbmdzLgogICogT25seSBiaXRzIDIwLTI5IGFyZSBhY3R1YWxseSB1c2VkIGZyb20gdGhlc2UgdmFsZXMgdG8gc2V0IHRoZQpAQCAtMjI5LDY5ICsyMjksNjkgQEAKICAqIGFkZHJlc3MuIFJlZmVyIHRvIHRoZSBNUEM4MjQwIGJvb2suCiAgKi8KIAotI2RlZmluZSBDRkdfQkFOSzBfU1RBUlQJICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkswX0VORAkgICAgKENGR19NQVhfUkFNX1NJWkUgLSAxKQotI2RlZmluZSBDRkdfQkFOSzBfRU5BQkxFICAgIDEKLSNkZWZpbmUgQ0ZHX0JBTksxX1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMV9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksxX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LMl9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzJfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMl9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzNfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkszX0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzNfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks0X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks0X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNV9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNV9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzZfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzZfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks3X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks3X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfU1RBUlQJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkQJICAgIChDT05GSUdfU1lTX01BWF9SQU1fU0laRSAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VOQUJMRSAgICAwCiAKLSNkZWZpbmUgQ0ZHX09EQ1IJICAgIDB4ZmYKKyNkZWZpbmUgQ09ORklHX1NZU19PRENSCSAgICAweGZmCiAKLSNkZWZpbmUgQ0ZHX0lCQVQwTCAgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQyTCAgKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQzTCAgKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMICAoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAgQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVICBDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMICBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgIENGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVICBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMICBDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSAgQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAgQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgIENPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMICBDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSAgQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgZmxhc2gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgcGVyIGZsYXNoCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLwogCiAKIAkvKiBXYXJpbmluZzogZW52aXJvbm1lbnQgaXMgbm90IEVNQkVEREVEIGluIHRoZSBVLUJvb3QgY29kZS4KQEAgLTMwNSw5ICszMDUsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQURDSU9QLmggYi9pbmNsdWRlL2NvbmZpZ3MvQURDSU9QLmgKaW5kZXggY2M3ZWRkYy4uZDgzMDNmMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0FEQ0lPUC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9BRENJT1AuaApAQCAtNTAsNyArNTAsNyBAQAogI3VuZGVmCUNPTkZJR19CT09UQVJHUwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtODIsOTEgKzgyLDkxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgwMGRmMDAwMCAvKiBpbnNpZGUgb2YgU0RSQU0JCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MGYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDAwZGYwMDAwIC8qIGluc2lkZSBvZiBTRFJBTQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MGYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkQwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGRDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHgwQUE5CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgwNTU2CS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIGNoYXIJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHgwQUE5CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MDU1NgkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDIJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAwCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwNAkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAyCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDAJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwNAkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNpZiAxIC8qIFVzZSBOVlJBTSBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOVlJBTSBvcmdhbml6YXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05WUkFNCTEJLyogdXNlIE5WUkFNIGZvciBlbnZpcm9ubWVudCB2YXJzCSovCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHgxMDAwMDAwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJCS8qIE5WUkFNIHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4MTAwMDAwMDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCSgzMioxMDI0KQkJLyogTlZSQU0gc2l6ZQkJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDA0MDAJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycwkqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCVwKLQkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudgkqLwotI2RlZmluZSBDRkdfVlhXT1JLU19NQUNfUFRSICAgICAoQ0ZHX05WUkFNX0JBU0VfQUREUisweDc4MDApIC8qIFZ4V29ya3MgZXRoLWFkZHIqLworCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQkvKiBFbnYJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19WWFdPUktTX01BQ19QVFIgICAgIChDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUisweDc4MDApIC8qIFZ4V29ya3MgZXRoLWFkZHIqLwogCiAjZWxzZSAvKiBVc2UgRkxBU0ggZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogCkBAIC0xODgsOCArMTg4LDggQEAKIAogI2RlZmluZSBDT05GSUdfVFVMSVAKIAotI2RlZmluZSBDRkdfRVRIX0RFVl9GTgkgICAgIDB4MDAwMAotI2RlZmluZSBDRkdfRVRIX0lPQkFTRQkgICAgIDB4MGZmZjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVEhfREVWX0ZOCSAgICAgMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVRIX0lPQkFTRQkgICAgIDB4MGZmZjAwMDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQUROUEVTQzEuaCBiL2luY2x1ZGUvY29uZmlncy9BRE5QRVNDMS5oCmluZGV4IDliODRkMWYuLmU2MWEzZTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9BRE5QRVNDMS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9BRE5QRVNDMS5oCkBAIC0zNCw3ICszNCw3IEBACiAjaWYJZGVmaW5lZChDT05GSUdfTklPU19CQVNFXzMyKQogI2luY2x1ZGUgPGNvbmZpZ3MvQUROUEVTQzFfYmFzZV8zMi5oPgogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCByaWdodCBOSU9TIENQVSBjb25maWd1cmF0aW9uCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIHJpZ2h0IE5JT1MgQ1BVIGNvbmZpZ3VyYXRpb24KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDIsMzYgKzQyLDM2IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfTklPUwkJMQkJLyogTklPUy0zMiBjb3JlCQkqLwogI2RlZmluZQlDT05GSUdfQUROUEVTQzEJCTEJCS8qIFNTViBBRE5QL0VTQzEgYm9hcmQJKi8KLSNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQlDRkdfTklPU19DUFVfQ0xLLyogNTAgTUh6IGNvcmUgY2xvY2sJKi8KLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkJLyogMSBtc2VjIHRpbWUgdGljawkqLwotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgorI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCUNPTkZJR19TWVNfTklPU19DUFVfQ0xLLyogNTAgTUh6IGNvcmUgY2xvY2sJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIDEgbXNlYyB0aW1lIHRpY2sJKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCiAjZGVmaW5lCUNPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgMQkvKiBlbmFibGUgZWFybHkgYm9hcmQtc3BlYy4gaW5pdCovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQVNFIEFERFJFU1NFUyAvIFNJWkUgKEZsYXNoLCBTUkFNLCBTRFJBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9TRFJBTV9TSVpFICE9IDApCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fU0laRSAhPSAwKQogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfTklPU19DUFVfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJQ0ZHX05JT1NfQ1BVX1NEUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX1NJWkUKIAogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhbnkgU0RSQU0gaW4gTklPUyBDUFUgY29uZmlnCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGFueSBTRFJBTSBpbiBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCi0jaWYJZGVmaW5lZChDRkdfTklPU19DUFVfU1JBTV9CQVNFKSAmJiBkZWZpbmVkKENGR19OSU9TX0NQVV9TUkFNX1NJWkUpCisjaWYJZGVmaW5lZChDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fU0laRSkKIAotI2RlZmluZQlDRkdfU1JBTV9CQVNFCQlDRkdfTklPU19DUFVfU1JBTV9CQVNFCi0jZGVmaW5lCUNGR19TUkFNX1NJWkUJCUNGR19OSU9TX0NQVV9TUkFNX1NJWkUKKyNkZWZpbmUJQ09ORklHX1NZU19TUkFNX0JBU0UJCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfU1JBTV9TSVpFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fU0laRQogCiAjZWxzZQogCi0jdW5kZWYJQ0ZHX1NSQU1fQkFTRQotI3VuZGVmCUNGR19TUkFNX1NJWkUKKyN1bmRlZglDT05GSUdfU1lTX1NSQU1fQkFTRQorI3VuZGVmCUNPTkZJR19TWVNfU1JBTV9TSVpFCiAKICNlbmRpZgogCi0jZGVmaW5lIENGR19WRUNUX0JBU0UJCUNGR19OSU9TX0NQVV9WRUNfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1ZFQ1RfQkFTRQkJQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTUVNT1JZIE9SR0FOSVpBVElPTiAtIEZvciB0aGUgbW9zdCBwYXJ0LCB5b3UgY2FuIHB1dCB0aGluZ3MgcHJldHR5CkBAIC04NSw0NCArODUsNDQgQEAKICAqCS1HbG9iYWwgZGF0YSBpcyBwbGFjZWQgYmVsb3cgdGhlIGhlYXAuCiAgKgktVGhlIHN0YWNrIGlzIHBsYWNlZCBiZWxvdyBnbG9iYWwgZGF0YSAoJmdyb3dzIGRvd24pLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTZrCQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIEdsb2JhbCBkYXRhIHNpemUgcnN2ZCovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NmsJCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIEdsb2JhbCBkYXRhIHNpemUgcnN2ZCovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfQkFTRQkJKENGR19NT05JVE9SX0JBU0UgLSBDRkdfTUFMTE9DX0xFTikKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX01BTExPQ19CQVNFIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQCQlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19CQVNFCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfU1lTX01BTExPQ19MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX01BTExPQ19CQVNFIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1AJCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCAoQU0yOUxWMDY1RCkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9GTEFTSF9TSVpFICE9IDApCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfU0laRSAhPSAwKQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfTklPU19DUFVfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJQ0ZHX05JT1NfQ1BVX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogTWF4ICMgc2VjdHMgcGVyIGJhbmsgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAJCS8qIFdyaXRlIHRpbWVvdXQgKG1zZWMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBNYXggIyBzZWN0cyBwZXIgYmFuayAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkJLyogRXJhc2UgdGltZW91dCAobXNlYykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMAkJLyogV3JpdGUgdGltZW91dCAobXNlYykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplCSovCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYW55IEZsYXNoIG1lbW9yeSBpbiBOSU9TIENQVSBjb25maWcKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYW55IEZsYXNoIG1lbW9yeSBpbiBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRU5WSVJPTk1FTlQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9GTEFTSF9TSVpFICE9IDApCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfU0laRSAhPSAwKQogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQkJLyogRW52aXJvbm1lbnQgaW4gZmxhc2ggKi8KIAogLyogTWVtIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KICNpZglkZWZpbmVkKENPTkZJR19OSU9TX0JBU0VfMzIpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCB0aGUgZW52aXJvbm1lbnQgYmFzZSBhZGRyZXNzIENPTkZJR19FTlZfQUREUgorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCB0aGUgZW52aXJvbm1lbnQgYmFzZSBhZGRyZXNzIENPTkZJR19FTlZfQUREUgogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoNjQgKiAxMDI0KQkvKiA2NCBLQnl0ZSAoMSBzZWN0b3IpCSovCkBAIC0xMzYsMjYgKzEzNiwyNiBAQAogICogTklPUyBBUFBMSUNBVElPTiBDT0RFIEJBU0UgQVJFQQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZgkoKENPTkZJR19FTlZfQUREUiArIENPTkZJR19FTlZfU0laRSkgPT0gMHgxMDUwMDAwKQotI2RlZmluZQlDRkdfQUROUEVTQzFfVVBEQVRFX0xPQURfQUREUgkiMHgyMDAwMTAwIgotI2RlZmluZSBDRkdfQUROUEVTQzFfTklPU19BUFBMX0VOVFJZCSIweDEwNTAwMDAiCi0jZGVmaW5lIENGR19BRE5QRVNDMV9OSU9TX0FQUExfSURFTlQJIjB4MTA1MDAwYyIKLSNkZWZpbmUJQ0ZHX0FETlBFU0MxX05JT1NfQVBQTF9FTkQJIjB4MTFmZmZmZiIKLSNkZWZpbmUgQ0ZHX0FETlBFU0MxX0ZJTEVTWVNURU1fQkFTRQkiMHgxMjAwMDAwIgotI2RlZmluZQlDRkdfQUROUEVTQzFfRklMRVNZU1RFTV9FTkQJIjB4MTdmZmZmZiIKKyNkZWZpbmUJQ09ORklHX1NZU19BRE5QRVNDMV9VUERBVEVfTE9BRF9BRERSCSIweDIwMDAxMDAiCisjZGVmaW5lIENPTkZJR19TWVNfQUROUEVTQzFfTklPU19BUFBMX0VOVFJZCSIweDEwNTAwMDAiCisjZGVmaW5lIENPTkZJR19TWVNfQUROUEVTQzFfTklPU19BUFBMX0lERU5UCSIweDEwNTAwMGMiCisjZGVmaW5lCUNPTkZJR19TWVNfQUROUEVTQzFfTklPU19BUFBMX0VORAkiMHgxMWZmZmZmIgorI2RlZmluZSBDT05GSUdfU1lTX0FETlBFU0MxX0ZJTEVTWVNURU1fQkFTRQkiMHgxMjAwMDAwIgorI2RlZmluZQlDT05GSUdfU1lTX0FETlBFU0MxX0ZJTEVTWVNURU1fRU5ECSIweDE3ZmZmZmYiCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IG1pc3NpbmcgcmlnaHQgYXBwbC5jb2RlIGJhc2UgY29uZmlndXJhdGlvbiwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogbWlzc2luZyByaWdodCBhcHBsLmNvZGUgYmFzZSBjb25maWd1cmF0aW9uLCBleHBhbmQgeW91ciBjb25maWcuaAogI2VuZGlmCi0jZGVmaW5lIENGR19BRE5QRVNDMV9OSU9TX0lERU5USUZJRVIJIk5pb3MiCisjZGVmaW5lIENPTkZJR19TWVNfQUROUEVTQzFfTklPU19JREVOVElGSUVSCSJOaW9zIgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQk9PVCBFTlZJUk9OTUVOVAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZmRlZglDT05GSUdfRE5QRVZBMgkJCS8qIEROUC9FVkEyIGJhc2UgYm9hcmQgKi8KLSNkZWZpbmUJQ0ZHX0FETlBFU0MxX1NMRURfQk9PVF9PRkYJInNsZWQgYm9vdCBvZmY7ICIKLSNkZWZpbmUJQ0ZHX0FETlBFU0MxX1NMRURfUkVEX0JMSU5LCSJzbGVkIHJlZCBibGluazsgIgorI2RlZmluZQlDT05GSUdfU1lTX0FETlBFU0MxX1NMRURfQk9PVF9PRkYJInNsZWQgYm9vdCBvZmY7ICIKKyNkZWZpbmUJQ09ORklHX1NZU19BRE5QRVNDMV9TTEVEX1JFRF9CTElOSwkic2xlZCByZWQgYmxpbms7ICIKICNlbHNlCi0jZGVmaW5lCUNGR19BRE5QRVNDMV9TTEVEX0JPT1RfT0ZGCi0jZGVmaW5lCUNGR19BRE5QRVNDMV9TTEVEX1JFRF9CTElOSworI2RlZmluZQlDT05GSUdfU1lTX0FETlBFU0MxX1NMRURfQk9PVF9PRkYKKyNkZWZpbmUJQ09ORklHX1NZU19BRE5QRVNDMV9TTEVEX1JFRF9CTElOSwogI2VuZGlmCiAKICNkZWZpbmUJQ09ORklHX0JPT1RERUxBWQk1CkBAIC0xNjMsMTAgKzE2MywxMCBAQAogCSJpZiBpdGVzdC5zICokYXBwbF9pZGVudF9hZGRyID09IFwiJGFwcGxfaWRlbnRfc3RyXCI7ICIJCVwKIAkidGhlbiAiCQkJCQkJCQlcCiAJCSJ3ZCBvZmY7ICIJCQkJCQlcCi0JCUNGR19BRE5QRVNDMV9TTEVEX0JPT1RfT0ZGCQkJCVwKKwkJQ09ORklHX1NZU19BRE5QRVNDMV9TTEVEX0JPT1RfT0ZGCQkJCVwKIAkJImdvICRhcHBsX2VudHJ5X2FkZHI7ICIJCQkJCVwKIAkiZWxzZSAiCQkJCQkJCQlcCi0JCUNGR19BRE5QRVNDMV9TTEVEX1JFRF9CTElOSwkJCQlcCisJCUNPTkZJR19TWVNfQUROUEVTQzFfU0xFRF9SRURfQkxJTksJCQkJXAogCQkiZWNobyAqKiogbWlzc2luZyBcIiRhcHBsX2lkZW50X3N0clwiIGF0ICRhcHBsX2lkZW50X2FkZHI7ICJcCiAJCSJlY2hvICoqKiBpbnZhbGlkIGFwcGxpY2F0aW9uIGF0ICRhcHBsX2VudHJ5X2FkZHI7ICIJXAogCQkiZWNobyAqKiogc3RvcCBib290dXAuLi47ICIJCQkJXApAQCAtMTc2LDQ1ICsxNzYsNDUgQEAKICAqIEVYVFJBIEVOVklST05NRU5UCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmZGVmCUNPTkZJR19ETlBFVkEyCQkJLyogRE5QL0VWQTIgYmFzZSBib2FyZCAqLwotI2RlZmluZQlDRkdfQUROUEVTQzFfU0xFRF9ZRUxMT19PTgkic2xlZCB5ZWxsb3cgb247ICIKLSNkZWZpbmUJQ0ZHX0FETlBFU0MxX1NMRURfWUVMTE9fT0ZGCSJzbGVkIHllbGxvdyBvZmY7ICIKKyNkZWZpbmUJQ09ORklHX1NZU19BRE5QRVNDMV9TTEVEX1lFTExPX09OCSJzbGVkIHllbGxvdyBvbjsgIgorI2RlZmluZQlDT05GSUdfU1lTX0FETlBFU0MxX1NMRURfWUVMTE9fT0ZGCSJzbGVkIHllbGxvdyBvZmY7ICIKICNlbHNlCi0jZGVmaW5lCUNGR19BRE5QRVNDMV9TTEVEX1lFTExPX09OCi0jZGVmaW5lCUNGR19BRE5QRVNDMV9TTEVEX1lFTExPX09GRgorI2RlZmluZQlDT05GSUdfU1lTX0FETlBFU0MxX1NMRURfWUVMTE9fT04KKyNkZWZpbmUJQ09ORklHX1NZU19BRE5QRVNDMV9TTEVEX1lFTExPX09GRgogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJCQkJXAogCSJ1cGRhdGVfYWxsb3dlZD0wXDAiCQkJCQkJXAotCSJ1cGRhdGVfbG9hZF9hZGRyPSIJQ0ZHX0FETlBFU0MxX1VQREFURV9MT0FEX0FERFIJIlwwIglcCi0JImFwcGxfZW50cnlfYWRkcj0iCUNGR19BRE5QRVNDMV9OSU9TX0FQUExfRU5UUlkJIlwwIglcCi0JImFwcGxfZW5kX2FkZHI9IglDRkdfQUROUEVTQzFfTklPU19BUFBMX0VORAkiXDAiCVwKLQkiYXBwbF9pZGVudF9hZGRyPSIJQ0ZHX0FETlBFU0MxX05JT1NfQVBQTF9JREVOVAkiXDAiCVwKLQkiYXBwbF9pZGVudF9zdHI9IglDRkdfQUROUEVTQzFfTklPU19JREVOVElGSUVSCSJcMCIJXAorCSJ1cGRhdGVfbG9hZF9hZGRyPSIJQ09ORklHX1NZU19BRE5QRVNDMV9VUERBVEVfTE9BRF9BRERSCSJcMCIJXAorCSJhcHBsX2VudHJ5X2FkZHI9IglDT05GSUdfU1lTX0FETlBFU0MxX05JT1NfQVBQTF9FTlRSWQkiXDAiCVwKKwkiYXBwbF9lbmRfYWRkcj0iCUNPTkZJR19TWVNfQUROUEVTQzFfTklPU19BUFBMX0VORAkiXDAiCVwKKwkiYXBwbF9pZGVudF9hZGRyPSIJQ09ORklHX1NZU19BRE5QRVNDMV9OSU9TX0FQUExfSURFTlQJIlwwIglcCisJImFwcGxfaWRlbnRfc3RyPSIJQ09ORklHX1NZU19BRE5QRVNDMV9OSU9TX0lERU5USUZJRVIJIlwwIglcCiAJImFwcGxfbmFtZT1BRE5QRVNDMS9iYXNlMzIvbGludXguYmluXDAiCQkJCVwKIAkiYXBwbF91cGRhdGU9IgkJCQkJCQlcCiAJCSJpZiBpdGVzdC5iICR1cGRhdGVfYWxsb3dlZCAhPSAwOyAiCQkJXAogCQkidGhlbiAiCQkJCQkJCVwKLQkJCUNGR19BRE5QRVNDMV9TTEVEX1lFTExPX09OCQkJXAorCQkJQ09ORklHX1NZU19BRE5QRVNDMV9TTEVEX1lFTExPX09OCQkJXAogCQkJInRmdHAgJHVwZGF0ZV9sb2FkX2FkZHIgJGFwcGxfbmFtZTsgIgkJXAogCQkJInByb3RlY3Qgb2ZmICRhcHBsX2VudHJ5X2FkZHIgJGFwcGxfZW5kX2FkZHI7ICIJXAogCQkJImVyYSAkYXBwbF9lbnRyeV9hZGRyICRhcHBsX2VuZF9hZGRyOyAiCQlcCiAJCQkiY3AuYiAkdXBkYXRlX2xvYWRfYWRkciAkYXBwbF9lbnRyeV9hZGRyICRmaWxlc2l6ZTsgIlwKLQkJCUNGR19BRE5QRVNDMV9TTEVEX1lFTExPX09GRgkJCVwKKwkJCUNPTkZJR19TWVNfQUROUEVTQzFfU0xFRF9ZRUxMT19PRkYJCQlcCiAJCSJlbHNlICIJCQkJCQkJXAogCQkJImVjaG8gKioqIHVwZGF0ZSBub3QgYWxsb3dlZCAodXBkYXRlX2FsbG93ZWQ9JHVwZGF0ZV9hbGxvd2VkKTsgIlwKIAkJImZpXDAiCQkJCQkJCVwKLQkiZnNfYmFzZV9hZGRyPSIJCUNGR19BRE5QRVNDMV9GSUxFU1lTVEVNX0JBU0UJIlwwIglcCi0JImZzX2VuZF9hZGRyPSIJCUNGR19BRE5QRVNDMV9GSUxFU1lTVEVNX0VORAkiXDAiCVwKKwkiZnNfYmFzZV9hZGRyPSIJCUNPTkZJR19TWVNfQUROUEVTQzFfRklMRVNZU1RFTV9CQVNFCSJcMCIJXAorCSJmc19lbmRfYWRkcj0iCQlDT05GSUdfU1lTX0FETlBFU0MxX0ZJTEVTWVNURU1fRU5ECSJcMCIJXAogCSJmc19uYW1lPUFETlBFU0MxL2Jhc2UzMi9yb21mcy5pbWdcMCIJCQkJXAogCSJmc191cGRhdGU9IgkJCQkJCQlcCiAJCSJpZiBpdGVzdC5iICR1cGRhdGVfYWxsb3dlZCAhPSAwOyAiCQkJXAogCQkidGhlbiAiCQkJCQkJCVwKLQkJCUNGR19BRE5QRVNDMV9TTEVEX1lFTExPX09OCQkJXAorCQkJQ09ORklHX1NZU19BRE5QRVNDMV9TTEVEX1lFTExPX09OCQkJXAogCQkJInRmdHAgJHVwZGF0ZV9sb2FkX2FkZHIgJGZzX25hbWU7ICIJCVwKIAkJCSJwcm90ZWN0IG9mZiAkZnNfYmFzZV9hZGRyICRmc19lbmRfYWRkcjsgIglcCiAJCQkiZXJhICRmc19iYXNlX2FkZHIgJGZzX2VuZF9hZGRyOyAiCQlcCiAJCQkiY3AuYiAkdXBkYXRlX2xvYWRfYWRkciAkZnNfYmFzZV9hZGRyICRmaWxlc2l6ZTsgIlwKLQkJCUNGR19BRE5QRVNDMV9TTEVEX1lFTExPX09GRgkJCVwKKwkJCUNPTkZJR19TWVNfQUROUEVTQzFfU0xFRF9ZRUxMT19PRkYJCQlcCiAJCSJlbHNlICIJCQkJCQkJXAogCQkJImVjaG8gKioqIHVwZGF0ZSBub3QgYWxsb3dlZCAodXBkYXRlX2FsbG93ZWQ9JHVwZGF0ZV9hbGxvd2VkKTsgIlwKIAkJImZpXDAiCQkJCQkJCVwKQEAgLTIyMiw3ICsyMjIsNyBAQAogCSJ1Ym9vdF9sb2FkbnJ1bj0iCQkJCQkJXAogCQkiaWYgcGluZyAkc2VydmVyaXA7ICIJCQkJCVwKIAkJInRoZW4gIgkJCQkJCQlcCi0JCQlDRkdfQUROUEVTQzFfU0xFRF9ZRUxMT19PTgkJCVwKKwkJCUNPTkZJR19TWVNfQUROUEVTQzFfU0xFRF9ZRUxMT19PTgkJCVwKIAkJCSJ0ZnRwICR1cGRhdGVfbG9hZF9hZGRyICR1Ym9vdF9uYW1lOyAiCQlcCiAJCQkid2Qgb2ZmOyAiCQkJCQlcCiAJCQkiZ28gJHVwZGF0ZV9sb2FkX2FkZHI7ICIJCQlcCkBAIC0yMzQsOTIgKzIzNCw5MiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENPTlNPTEUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9VQVJUX05VTVMgIT0gMCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUX05VTVMgIT0gMCkKIAotI2RlZmluZSBDRkdfTklPU19DT05TT0xFCUNGR19OSU9TX0NQVV9VQVJUMCAvKiAxc3QgVUFSVCBpcyBDb25zLiAqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfQ09OU09MRQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwIC8qIDFzdCBVQVJUIGlzIENvbnMuICovCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1VBUlQwX0JSICE9IDApCi0jZGVmaW5lIENGR19OSU9TX0ZJWEVEQkFVRAkxCQkgICAvKiBCYXVkcmF0ZSBpcyBmaXhlZAkqLwotI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCUNGR19OSU9TX0NQVV9VQVJUMF9CUgorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0JSICE9IDApCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19GSVhFREJBVUQJMQkJICAgLyogQmF1ZHJhdGUgaXMgZml4ZWQJKi8KKyNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0JSCiAjZWxzZQotI3VuZGVmCUNGR19OSU9TX0ZJWEVEQkFVRAorI3VuZGVmCUNPTkZJR19TWVNfTklPU19GSVhFREJBVUQKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGF0IGxlYXN0IG9uZSBVQVJUIGluIE5JT1MgQ1BVIGNvbmZpZworI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhdCBsZWFzdCBvbmUgVUFSVCBpbiBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVElNRVIgRk9SIFRJTUVCQVNFIC0tIE5pb3MgZG9lc24ndCBoYXZlIHRoZSBlcXVpdmFsZW50IG9mIHBwYyAgUElULAogICogc28gYW4gYXZhbG9uIGJ1cyB0aW1lciBpcyByZXF1aXJlZC4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9USU1FUl9OVU1TICE9IDApICYmIGRlZmluZWQoQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIpCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVJfTlVNUyAhPSAwKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUikKIAotI2lmCShDRkdfTklPU19DUFVfVElDS19USU1FUiA9PSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJQ0tfVElNRVIgPT0gMCkKIAotI2RlZmluZSBDRkdfTklPU19UTVJCQVNFCUNGR19OSU9TX0NQVV9USU1FUjAgLyogVElNRVIwIGFzIHRpY2sJKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1SSVJRCQlDRkdfTklPU19DUFVfVElNRVIwX0lSUQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMCAvKiBUSU1FUjAgYXMgdGljawkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SSVJRCQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9JUlEKIAotI2lmCShDRkdfTklPU19DUFVfVElNRVIwX0ZQID09IDEpCQkgICAgLyogZml4ZWQgcGVyaW9kICovCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0ZQID09IDEpCQkgICAgLyogZml4ZWQgcGVyaW9kICovCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1RJTUVSMF9QRVIgPj0gQ0ZHX0haKQotI2RlZmluZSBDRkdfTklPU19UTVJNUwkJKENGR19OSU9TX0NQVV9USU1FUjBfUEVSIC8gQ0ZHX0haKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9QRVIgPj0gQ09ORklHX1NZU19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUk1TCQkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfUEVSIC8gQ09ORklHX1NZU19IWikKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gdXNlIGEgdGltZXIgcGVyaW9kZSBncmVhdGVyIHRoYW4gQ0ZHX0haCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHVzZSBhIHRpbWVyIHBlcmlvZGUgZ3JlYXRlciB0aGFuIENPTkZJR19TWVNfSFoKICNlbmRpZgogCi0jdW5kZWYJQ0ZHX05JT1NfVE1SQ05UCS8qIG5vIHByZWxvYWRhYmxlIGNvdW50ZXIgdmFsdWUgKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfVE1SQ05UCS8qIG5vIHByZWxvYWRhYmxlIGNvdW50ZXIgdmFsdWUgKi8KIAotI2VsaWYJKENGR19OSU9TX0NQVV9USU1FUjBfRlAgPT0gMCkJCSAgICAvKiB2YXJpYWJsZSBwZXJpb2QgKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9GUCA9PSAwKQkJICAgIC8qIHZhcmlhYmxlIHBlcmlvZCAqLwogCi0jaWYJKENGR19IWiA8PSAxMDAwKQotI2RlZmluZSBDRkdfTklPU19UTVJNUwkJKDEwMDAgLyBDRkdfSFopCisjaWYJKENPTkZJR19TWVNfSFogPD0gMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUk1TCQkoMTAwMCAvIENPTkZJR19TWVNfSFopCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNvcnJ5LCBDRkdfSFogaGF2ZSB0byBiZSBsZXNzIHRoYW4gMTAwMAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzb3JyeSwgQ09ORklHX1NZU19IWiBoYXZlIHRvIGJlIGxlc3MgdGhhbiAxMDAwCiAjZW5kaWYKIAotI2RlZmluZQlDRkdfTklPU19UTVJDTlQJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gQ0ZHX0haKQorI2RlZmluZQlDT05GSUdfU1lTX05JT1NfVE1SQ05UCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIENPTkZJR19TWVNfSFopCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gZGVmaW5lIENGR19OSU9TX0NQVV9USU1FUjBfRlAgY29ycmVjdAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfRlAgY29ycmVjdAogI2VuZGlmCiAKLSNlbGlmCShDRkdfTklPU19DUFVfVElDS19USU1FUiA9PSAxKQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUiA9PSAxKQogCi0jZGVmaW5lIENGR19OSU9TX1RNUkJBU0UJQ0ZHX05JT1NfQ1BVX1RJTUVSMSAvKiBUSU1FUjEgYXMgdGljawkqLwotI2RlZmluZSBDRkdfTklPU19UTVJJUlEJCUNGR19OSU9TX0NQVV9USU1FUjFfSVJRCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJCQVNFCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIxIC8qIFRJTUVSMSBhcyB0aWNrCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJJUlEJCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX0lSUQogCi0jaWYJKENGR19OSU9TX0NQVV9USU1FUjFfRlAgPT0gMSkJCSAgICAvKiBmaXhlZCBwZXJpb2QgKi8KKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfRlAgPT0gMSkJCSAgICAvKiBmaXhlZCBwZXJpb2QgKi8KIAotI2lmCShDRkdfTklPU19DUFVfVElNRVIxX1BFUiA+PSBDRkdfSFopCi0jZGVmaW5lIENGR19OSU9TX1RNUk1TCQkoQ0ZHX05JT1NfQ1BVX1RJTUVSMV9QRVIgLyBDRkdfSFopCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX1BFUiA+PSBDT05GSUdfU1lTX0haKQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1STVMJCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9QRVIgLyBDT05GSUdfU1lTX0haKQogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byB1c2UgYSB0aW1lciBwZXJpb2RlIGdyZWF0ZXIgdGhhbiBDRkdfSFoKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gdXNlIGEgdGltZXIgcGVyaW9kZSBncmVhdGVyIHRoYW4gQ09ORklHX1NZU19IWgogI2VuZGlmCiAKLSN1bmRlZglDRkdfTklPU19UTVJDTlQJLyogbm8gcHJlbG9hZGFibGUgY291bnRlciB2YWx1ZSAqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19UTVJDTlQJLyogbm8gcHJlbG9hZGFibGUgY291bnRlciB2YWx1ZSAqLwogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1RJTUVSMV9GUCA9PSAwKQkJICAgIC8qIHZhcmlhYmxlIHBlcmlvZCAqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX0ZQID09IDApCQkgICAgLyogdmFyaWFibGUgcGVyaW9kICovCiAKLSNpZgkoQ0ZHX0haIDw9IDEwMDApCi0jZGVmaW5lIENGR19OSU9TX1RNUk1TCQkoMTAwMCAvIENGR19IWikKKyNpZgkoQ09ORklHX1NZU19IWiA8PSAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1STVMJCSgxMDAwIC8gQ09ORklHX1NZU19IWikKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogc29ycnksIENGR19IWiBoYXZlIHRvIGJlIGxlc3MgdGhhbiAxMDAwCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNvcnJ5LCBDT05GSUdfU1lTX0haIGhhdmUgdG8gYmUgbGVzcyB0aGFuIDEwMDAKICNlbmRpZgogCi0jZGVmaW5lCUNGR19OSU9TX1RNUkNOVAkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBDRkdfSFopCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19UTVJDTlQJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gQ09ORklHX1NZU19IWikKIAogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBkZWZpbmUgQ0ZHX05JT1NfQ1BVX1RJTUVSMV9GUCBjb3JyZWN0CisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIGRlZmluZSBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9GUCBjb3JyZWN0CiAjZW5kaWYKIAotI2VuZGlmCS8qIENGR19OSU9TX0NQVV9USUNLX1RJTUVSICovCisjZW5kaWYJLyogQ09ORklHX1NZU19OSU9TX0NQVV9USUNLX1RJTUVSICovCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYXQgbGVhc3Qgb25lIFRJTUVSIGluIE5JT1MgQ1BVIGNvbmZpZworI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhdCBsZWFzdCBvbmUgVElNRVIgaW4gTklPUyBDUFUgY29uZmlnCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMzMCw1MyArMzMwLDUzIEBACiAjaWZkZWYJQ09ORklHX0hXX1dBVENIRE9HCiAKIC8qIE1BWDgyMyBzdXBlcnZpc29yIC0tIHdhdGNoZG9nIGVuYWJsZSBwb3J0IGF0OiAqLwotI2lmCShDRkdfTklPU19DUFVfV0RFTkFfUElPID09IDApCi0jZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNGR19OSU9TX0NQVV9QSU8wCS8qIFBJTzAJCSovCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1dERU5BX1BJTyA9PSAxKQotI2RlZmluZQlDT05GSUdfSFdfV0RFTkFfQkFTRQlDRkdfTklPU19DUFVfUElPMQkvKiBQSU8xCQkqLwotI2VsaWYJKENGR19OSU9TX0NQVV9XREVOQV9QSU8gPT0gMikKLSNkZWZpbmUJQ09ORklHX0hXX1dERU5BX0JBU0UJQ0ZHX05JT1NfQ1BVX1BJTzIJLyogUElPMgkJKi8KLSNlbGlmCShDRkdfTklPU19DUFVfV0RFTkFfUElPID09IDMpCi0jZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNGR19OSU9TX0NQVV9QSU8zCS8qIFBJTzMJCSovCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1dERU5BX1BJTyA9PSA0KQotI2RlZmluZQlDT05GSUdfSFdfV0RFTkFfQkFTRQlDRkdfTklPU19DUFVfUElPNAkvKiBQSU80CQkqLwotI2VsaWYJKENGR19OSU9TX0NQVV9XREVOQV9QSU8gPT0gNSkKLSNkZWZpbmUJQ09ORklHX0hXX1dERU5BX0JBU0UJQ0ZHX05JT1NfQ1BVX1BJTzUJLyogUElPNQkJKi8KLSNlbGlmCShDRkdfTklPU19DUFVfV0RFTkFfUElPID09IDYpCi0jZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNGR19OSU9TX0NQVV9QSU82CS8qIFBJTzYJCSovCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1dERU5BX1BJTyA9PSA3KQotI2RlZmluZQlDT05GSUdfSFdfV0RFTkFfQkFTRQlDRkdfTklPU19DUFVfUElPNwkvKiBQSU83CQkqLwotI2VsaWYJKENGR19OSU9TX0NQVV9XREVOQV9QSU8gPT0gOCkKLSNkZWZpbmUJQ09ORklHX0hXX1dERU5BX0JBU0UJQ0ZHX05JT1NfQ1BVX1BJTzgJLyogUElPOAkJKi8KLSNlbGlmCShDRkdfTklPU19DUFVfV0RFTkFfUElPID09IDkpCi0jZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNGR19OSU9TX0NQVV9QSU85CS8qIFBJTzkJCSovCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDApCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPMAkvKiBQSU8wCQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDEpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPMQkvKiBQSU8xCQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDIpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPMgkvKiBQSU8yCQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDMpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPMwkvKiBQSU8zCQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDQpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPNAkvKiBQSU80CQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDUpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPNQkvKiBQSU81CQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDYpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPNgkvKiBQSU82CQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDcpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPNwkvKiBQSU83CQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDgpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPOAkvKiBQSU84CQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDkpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPOQkvKiBQSU85CQkqLwogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhdCBsZWFzdCBvbmUgV0RFTkFfUElPIGluIE5JT1MgQ1BVIGNvbmZpZworI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhdCBsZWFzdCBvbmUgV0RFTkFfUElPIGluIE5JT1MgQ1BVIGNvbmZpZwogI2VuZGlmCiAKIC8qIE1BWDgyMyBzdXBlcnZpc29yIC0tIHdhdGNoZG9nIHRyaWdnZXIgcG9ydCBhdDogKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSAwKQotI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDRkdfTklPU19DUFVfUElPMAkvKiBQSU8wCQkqLwotI2VsaWYJKENGR19OSU9TX0NQVV9XRFRPR19QSU8gPT0gMSkKLSNkZWZpbmUJQ09ORklHX0hXX1dEVE9HX0JBU0UJQ0ZHX05JT1NfQ1BVX1BJTzEJLyogUElPMQkJKi8KLSNlbGlmCShDRkdfTklPU19DUFVfV0RUT0dfUElPID09IDIpCi0jZGVmaW5lCUNPTkZJR19IV19XRFRPR19CQVNFCUNGR19OSU9TX0NQVV9QSU8yCS8qIFBJTzIJCSovCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSAzKQotI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDRkdfTklPU19DUFVfUElPMwkvKiBQSU8zCQkqLwotI2VsaWYJKENGR19OSU9TX0NQVV9XRFRPR19QSU8gPT0gNCkKLSNkZWZpbmUJQ09ORklHX0hXX1dEVE9HX0JBU0UJQ0ZHX05JT1NfQ1BVX1BJTzQJLyogUElPNAkJKi8KLSNlbGlmCShDRkdfTklPU19DUFVfV0RUT0dfUElPID09IDUpCi0jZGVmaW5lCUNPTkZJR19IV19XRFRPR19CQVNFCUNGR19OSU9TX0NQVV9QSU81CS8qIFBJTzUJCSovCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA2KQotI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDRkdfTklPU19DUFVfUElPNgkvKiBQSU82CQkqLwotI2VsaWYJKENGR19OSU9TX0NQVV9XRFRPR19QSU8gPT0gNykKLSNkZWZpbmUJQ09ORklHX0hXX1dEVE9HX0JBU0UJQ0ZHX05JT1NfQ1BVX1BJTzcJLyogUElPNwkJKi8KLSNlbGlmCShDRkdfTklPU19DUFVfV0RUT0dfUElPID09IDgpCi0jZGVmaW5lCUNPTkZJR19IV19XRFRPR19CQVNFCUNGR19OSU9TX0NQVV9QSU84CS8qIFBJTzgJCSovCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA5KQotI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDRkdfTklPU19DUFVfUElPOQkvKiBQSU85CQkqLworI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSAwKQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzAJLyogUElPMAkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSAxKQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEJLyogUElPMQkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSAyKQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzIJLyogUElPMgkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSAzKQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzMJLyogUElPMwkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA0KQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzQJLyogUElPNAkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA1KQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzUJLyogUElPNQkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA2KQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzYJLyogUElPNgkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA3KQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzcJLyogUElPNwkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA4KQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzgJLyogUElPOAkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA5KQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzkJLyogUElPOQkJKi8KICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYXQgbGVhc3Qgb25lIFdEVE9HX1BJTyBpbiBOSU9TIENQVSBjb25maWcKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYXQgbGVhc3Qgb25lIFdEVE9HX1BJTyBpbiBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCiAjaWYJZGVmaW5lZChDT05GSUdfTklPU19CQVNFXzMyKQkJLyogTklPUyBDUFUgc3BlY2lmaWNzCSovCkBAIC0zODQsNyArMzg0LDcgQEAKICNkZWZpbmUJQ09ORklHX0hXX1dEVE9HX0JJVAkJMAkvKiBXRCB0cmlnZ2VyIEAgQml0IDAJKi8KICNkZWZpbmUJQ09ORklHX0hXX1dEUE9SVF9XUk9OTFkJMQkvKiBlYWNoIFdEIHBvcnQgd3Ivb25seSovCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IG1pc3Npbmcgd2F0Y2hkb2cgYml0IGNvbmZpZ3VyYXRpb24sIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IG1pc3Npbmcgd2F0Y2hkb2cgYml0IGNvbmZpZ3VyYXRpb24sIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAjZW5kaWYKIAogI2VuZGlmCS8qIENPTkZJR19IV19XQVRDSERPRyAqLwpAQCAtMzkyLDE0ICszOTIsMTQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTRVJJQUwgUEVSSVBIQVJFTCBJTlRFUkZBQ0UKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9TUElfTlVNUyA9PSAxKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1NQSV9OVU1TID09IDEpCiAKICNkZWZpbmUJQ09ORklHX05JT1NfU1BJCQkxCQkvKiBTUEkgc3VwcG9ydCBhY3RpdmUJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfU1BJQkFTRQlDRkdfTklPU19DUFVfU1BJMAotI2RlZmluZQlDRkdfTklPU19TUElCSVRTCUNGR19OSU9TX0NQVV9TUEkwX0JJVFMKKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX1NQSUJBU0UJQ09ORklHX1NZU19OSU9TX0NQVV9TUEkwCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19TUElCSVRTCUNPTkZJR19TWVNfTklPU19DUFVfU1BJMF9CSVRTCiAKICNkZWZpbmUJQ09ORklHX1JUQ19EUzEzMDYJMQkvKiBEYWxsYXMgMTMwNiByZWFsIHRpbWUgY2xvY2sJKi8KLSNkZWZpbmUgQ0ZHX1NQSV9SVENfREVWSUQJMAkvKiAgICAgICAgYXMgMXN0IFNQSSBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUElfUlRDX0RFVklECTAJLyogICAgICAgIGFzIDFzdCBTUEkgZGV2aWNlCSovCiAKICNlbHNlCiAjdW5kZWYJQ09ORklHX05JT1NfU1BJCQkJCS8qIE5PIFNQSSBzdXBwb3J0CSovCkBAIC00MDgsMjkgKzQwOCwyOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV0aGVybmV0IC0tIG5lZWRzIHdvcmshCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmCShDRkdfTklPU19DUFVfTEFOX05VTVMgPT0gMSkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU5fTlVNUyA9PSAxKQogCi0jaWYJKENGR19OSU9TX0NQVV9MQU4wX1RZUEUgPT0gMCkJCS8qIExBTjkxQzExMQkJKi8KKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX1RZUEUgPT0gMCkJCS8qIExBTjkxQzExMQkJKi8KIAogI2RlZmluZQlDT05GSUdfRFJJVkVSX1NNQzkxMTExCQkJLyogVXNpbmcgU01DOTFjMTExCSovCiAjdW5kZWYJQ09ORklHX1NNQzkxMTExX0VYVF9QSFkJCQkvKiBJbnRlcm5hbCBQSFkJCSovCi0jZGVmaW5lCUNPTkZJR19TTUM5MTExMV9CQVNFCShDRkdfTklPU19DUFVfTEFOMF9CQVNFICsgQ0ZHX05JT1NfQ1BVX0xBTjBfT0ZGUykKKyNkZWZpbmUJQ09ORklHX1NNQzkxMTExX0JBU0UJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CQVNFICsgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX09GRlMpCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX0xBTjBfQlVTVyA9PSAzMikKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JVU1cgPT0gMzIpCiAjZGVmaW5lCUNPTkZJR19TTUNfVVNFXzMyX0JJVAkxCiAjZWxzZQkvKiBubyAqLwogI3VuZGVmCUNPTkZJR19TTUNfVVNFXzMyX0JJVAogI2VuZGlmCiAKLSNlbGlmCShDRkdfTklPU19DUFVfTEFOMF9UWVBFID09IDEpCQkvKiBDUzg5MDBBCQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9UWVBFID09IDEpCQkvKiBDUzg5MDBBCQkqLwogCiAJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCS8qICEhISBDUzg5MDAgaXMgX19ub3RfXyB0ZXN0ZWQgb24gTklPUyAhISEgKi8KIAkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lCUNPTkZJR19EUklWRVJfQ1M4OTAwCQkJLyogVXNpbmcgQ1M4OTAwCQkqLwotI2RlZmluZQlDUzg5MDBfQkFTRQkJKENGR19OSU9TX0NQVV9MQU4wX0JBU0UgKyBDRkdfTklPU19DUFVfTEFOMF9PRkZTKQorI2RlZmluZQlDUzg5MDBfQkFTRQkJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CQVNFICsgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX09GRlMpCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX0xBTjBfQlVTVyA9PSAzMikKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JVU1cgPT0gMzIpCiAjdW5kZWYJQ1M4OTAwX0JVUzE2CiAjZGVmaW5lCUNTODkwMF9CVVMzMgkJMQogI2Vsc2UJLyogbm8gKi8KQEAgLTQzOSw3ICs0MzksNyBAQAogI2VuZGlmCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogaW52YWxpZCBMQU4wIGNoaXAgdHlwZSwgY2hlY2sgeW91ciBOSU9TIENQVSBjb25maWcKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogaW52YWxpZCBMQU4wIGNoaXAgdHlwZSwgY2hlY2sgeW91ciBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19FVEhBRERSCQkwMjo4MDphZToyMDo2MDo2ZgpAQCAtNDQ4LDgwICs0NDgsODAgQEAKICNkZWZpbmUgQ09ORklHX1NFUlZFUklQCQkxOTIuMTY4LjE2MS44NQogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGp1c3Qgb25lIExBTiBvbmx5IG9yIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGp1c3Qgb25lIExBTiBvbmx5IG9yIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNUQVRVUyBMRURzCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmCShDRkdfTklPU19DUFVfUElPX05VTVMgIT0gMCkgJiYgZGVmaW5lZChDRkdfTklPU19DUFVfTEVEX1BJTykKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9QSU9fTlVNUyAhPSAwKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19DUFVfTEVEX1BJTykKIAotI2lmCShDRkdfTklPU19DUFVfTEVEX1BJTyA9PSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gMCkKIAotI2RlZmluZQlTVEFUVVNfTEVEX0JBU0UJCQlDRkdfTklPU19DUFVfUElPMAotI2RlZmluZQlTVEFUVVNfTEVEX0JJVFMJCQlDRkdfTklPU19DUFVfUElPMF9CSVRTCisjZGVmaW5lCVNUQVRVU19MRURfQkFTRQkJCUNPTkZJR19TWVNfTklPU19DUFVfUElPMAorI2RlZmluZQlTVEFUVVNfTEVEX0JJVFMJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfQklUUwogI2RlZmluZQlTVEFUVVNfTEVEX0FDVElWRQkJMSAvKiBMRUQgb24gZm9yIGJpdCA9PSAxICovCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1BJTzBfVFlQRSA9PSAxKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfVFlQRSA9PSAxKQogI2RlZmluZQlTVEFUVVNfTEVEX1dST05MWQkJMQogI2Vsc2UKICN1bmRlZglTVEFUVVNfTEVEX1dST05MWQogI2VuZGlmCiAKLSNlbGlmCShDRkdfTklPU19DUFVfTEVEX1BJTyA9PSAxKQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfTEVEX1BJTyA9PSAxKQogCi0jZGVmaW5lCVNUQVRVU19MRURfQkFTRQkJCUNGR19OSU9TX0NQVV9QSU8xCi0jZGVmaW5lCVNUQVRVU19MRURfQklUUwkJCUNGR19OSU9TX0NQVV9QSU8xX0JJVFMKKyNkZWZpbmUJU1RBVFVTX0xFRF9CQVNFCQkJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xCisjZGVmaW5lCVNUQVRVU19MRURfQklUUwkJCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9CSVRTCiAjZGVmaW5lCVNUQVRVU19MRURfQUNUSVZFCQkxIC8qIExFRCBvbiBmb3IgYml0ID09IDEgKi8KIAotI2lmCShDRkdfTklPU19DUFVfUElPMV9UWVBFID09IDEpCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfUElPMV9UWVBFID09IDEpCiAjZGVmaW5lCVNUQVRVU19MRURfV1JPTkxZCQkxCiAjZWxzZQogI3VuZGVmCVNUQVRVU19MRURfV1JPTkxZCiAjZW5kaWYKIAotI2VsaWYJKENGR19OSU9TX0NQVV9MRURfUElPID09IDIpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPID09IDIpCiAKLSNkZWZpbmUJU1RBVFVTX0xFRF9CQVNFCQkJQ0ZHX05JT1NfQ1BVX1BJTzIKLSNkZWZpbmUJU1RBVFVTX0xFRF9CSVRTCQkJQ0ZHX05JT1NfQ1BVX1BJTzJfQklUUworI2RlZmluZQlTVEFUVVNfTEVEX0JBU0UJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzIKKyNkZWZpbmUJU1RBVFVTX0xFRF9CSVRTCQkJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0JJVFMKICNkZWZpbmUJU1RBVFVTX0xFRF9BQ1RJVkUJCTEgLyogTEVEIG9uIGZvciBiaXQgPT0gMSAqLwogCi0jaWYJKENGR19OSU9TX0NQVV9QSU8yX1RZUEUgPT0gMSkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX1RZUEUgPT0gMSkKICNkZWZpbmUJU1RBVFVTX0xFRF9XUk9OTFkJCTEKICNlbHNlCiAjdW5kZWYJU1RBVFVTX0xFRF9XUk9OTFkKICNlbmRpZgogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gMykKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gMykKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzMgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPMyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNCkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzQgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNSkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzUgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNikKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNikKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzYgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNiBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNykKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNykKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzcgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gOCkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gOCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzggbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPOCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gOSkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gOSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzkgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPOSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldCBDRkdfTklPU19DUFVfTEVEX1BJTyBpbiByaWdodCBjYXNlCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldCBDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gaW4gcmlnaHQgY2FzZQogI2VuZGlmCiAKICNkZWZpbmUJQ09ORklHX1NUQVRVU19MRUQJCTEgLyogZW5hYmxlIHN0YXR1cyBsZWQgZHJpdmVyICovCkBAIC01MjksMzkgKzUyOSwzOSBAQAogI2RlZmluZQlTVEFUVVNfTEVEX0JJVAkJCSgxIDw8IDApCS8qIExFRFswXSAqLwogI2RlZmluZQlTVEFUVVNfTEVEX1NUQVRFCQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAjZGVmaW5lCVNUQVRVU19MRURfQk9PVF9TVEFURQkJU1RBVFVTX0xFRF9PRkYKLSNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QJCShDRkdfSFogLyAyKQkvKiBjYS4gMSBIeiAqLworI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRAkJKENPTkZJR19TWVNfSFogLyAyKQkvKiBjYS4gMSBIeiAqLwogI2RlZmluZQlTVEFUVVNfTEVEX0JPT1QJCQkwCQkvKiBib290IExFRCAqLwogCiAjaWYJKFNUQVRVU19MRURfQklUUyA+IDEpCiAjZGVmaW5lCVNUQVRVU19MRURfQklUMQkJCSgxIDw8IDEpCS8qIExFRFsxXSAqLwogI2RlZmluZQlTVEFUVVNfTEVEX1NUQVRFMQkJU1RBVFVTX0xFRF9PRkYKLSNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QxCQkoQ0ZHX0haIC8gMTApCS8qIGNhLiA1IEh6ICovCisjZGVmaW5lCVNUQVRVU19MRURfUEVSSU9EMQkJKENPTkZJR19TWVNfSFogLyAxMCkJLyogY2EuIDUgSHogKi8KICNkZWZpbmUJU1RBVFVTX0xFRF9SRUQJCQkxCQkvKiBmYWlsIExFRCAqLwogI2VuZGlmCiAKICNpZgkoU1RBVFVTX0xFRF9CSVRTID4gMikKICNkZWZpbmUJU1RBVFVTX0xFRF9CSVQyCQkJKDEgPDwgMikJLyogTEVEWzJdICovCiAjZGVmaW5lCVNUQVRVU19MRURfU1RBVEUyCQlTVEFUVVNfTEVEX09GRgotI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDIJCShDRkdfSFogLyAyKQkvKiBjYS4gMSBIeiAqLworI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDIJCShDT05GSUdfU1lTX0haIC8gMikJLyogY2EuIDEgSHogKi8KICNkZWZpbmUJU1RBVFVTX0xFRF9ZRUxMT1cJCTIJCS8qIGluZm8gTEVEICovCiAjZW5kaWYKIAogI2lmCShTVEFUVVNfTEVEX0JJVFMgPiAzKQogI2RlZmluZQlTVEFUVVNfTEVEX0JJVDMJCQkoMSA8PCAzKQkvKiBMRURbM10gKi8KICNkZWZpbmUJU1RBVFVTX0xFRF9TVEFURTMJCVNUQVRVU19MRURfT0ZGCi0jZGVmaW5lCVNUQVRVU19MRURfUEVSSU9EMwkJKENGR19IWiAvIDIpCS8qIGNhLiAxIEh6ICovCisjZGVmaW5lCVNUQVRVU19MRURfUEVSSU9EMwkJKENPTkZJR19TWVNfSFogLyAyKQkvKiBjYS4gMSBIeiAqLwogI2RlZmluZQlTVEFUVVNfTEVEX0dSRUVOCQkzCQkvKiBpbmZvIExFRCAqLwogI2VuZGlmCiAKICNkZWZpbmUJU1RBVFVTX0xFRF9QQVIJCQkxIC8qIG1ha2VzIHN0YXR1c19sZWQuaCBoYXBweSAqLwogCi0jZW5kaWYJLyogQ0ZHX05JT1NfQ1BVX1BJT19OVU1TICovCisjZW5kaWYJLyogQ09ORklHX1NZU19OSU9TX0NQVV9QSU9fTlVNUyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGlhZ25vc3RpY3MgLyBQb3dlciBPbiBTZWxmIFRlc3RzCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZQlDT05GSUdfUE9TVAkJCUNGR19QT1NUX1JUQwotI2RlZmluZQlDRkdfTklPU19QT1NUX1dPUkRfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lCUNPTkZJR19QT1NUCQkJQ09ORklHX1NZU19QT1NUX1JUQworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfUE9TVF9XT1JEX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC01OTUsNyArNTk1LDcgQEAKICN1bmRlZiBDT05GSUdfQ01EX05GUwogI3VuZGVmIENPTkZJR19DTURfWElNRwogCi0jaWYgKENGR19OSU9TX0NQVV9TUElfTlVNUyA9PSAxKQorI2lmIChDT05GSUdfU1lTX05JT1NfQ1BVX1NQSV9OVU1TID09IDEpCiAjZGVmaW5lIENPTkZJR19DTURfREFURQogI2RlZmluZSBDT05GSUdfQ01EX1NQSQogI2VuZGlmCkBAIC02MTAsNjIgKzYxMCw2MiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1JU0MKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZQlDRkdfSFVTSF9QQVJTRVIJCTEJICAgIC8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIKKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZQlDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCSAgICAvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCiAJCQkJCSAgICAgICB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiQUROUEVTQzEgPiAiIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQk2NAkgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJBRE5QRVNDMSA+ICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJNjQJICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KIAotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSJbXT4gIgorI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIltdPiAiCiAjZW5kaWYKIAogLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KLSNpZgkoQ0ZHX1NSQU1fU0laRSAhPSAwKQorI2lmCShDT05GSUdfU1lTX1NSQU1fU0laRSAhPSAwKQogCiAvKiBkZWZhdWx0IGluIFNSQU0gKi8KLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJQ0ZHX1NSQU1fQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJQ09ORklHX1NZU19TUkFNX0JBU0UKIAotI2VsaWYJKENGR19TRFJBTV9TSVpFICE9IDApCisjZWxpZgkoQ09ORklHX1NZU19TRFJBTV9TSVpFICE9IDApCiAKIC8qIGRlZmF1bHQgaW4gU0RSQU0gKi8KLSNpZgkoQ0ZHX1NEUkFNX0JBU0UgPT0gQ0ZHX05JT1NfQ1BVX1ZFQ19CQVNFKQorI2lmCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgPT0gQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRSkKICNpZiAxCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCShDRkdfU0RSQU1fQkFTRSArIENGR19OSU9TX0NQVV9WRUNfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19TSVpFKQogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJKENGR19TRFJBTV9CQVNFICsgMHg0MDAwMDApCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg0MDAwMDApCiAjZW5kaWYKICNlbHNlCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCUNGR19TRFJBTV9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQlDT05GSUdfU1lTX1NEUkFNX0JBU0UKICNlbmRpZgogCiAjZWxzZQotI3VuZGVmCUNGR19MT0FEX0FERFIJCS8qIGZvcmNlIGVycm9yIGJyZWFrICovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEX0FERFIJCS8qIGZvcmNlIGVycm9yIGJyZWFrICovCiAjZW5kaWYKIAogLyogTUVNIHRlc3QgYXJlYSAqLwotI2lmCShDRkdfU0RSQU1fU0laRSAhPSAwKQorI2lmCShDT05GSUdfU1lTX1NEUkFNX1NJWkUgIT0gMCkKIAogLyogU0RSQU0gYmVnaW4gdG8gc3RhY2sgYXJlYSAoMU1CIHN0YWNrKSAqLwotI2lmCShDRkdfU0RSQU1fQkFTRSA9PSBDRkdfTklPU19DUFVfVkVDX0JBU0UpCisjaWYJKENPTkZJR19TWVNfU0RSQU1fQkFTRSA9PSBDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19CQVNFKQogI2lmIDAKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfU1RBUlQJKENGR19TRFJBTV9CQVNFICsgQ0ZHX05JT1NfQ1BVX1ZFQ19TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIENPTkZJR19TWVNfTklPU19DUFVfVkVDX1NJWkUpCiAjZWxzZQotI2RlZmluZQlDRkdfTUVNVEVTVF9TVEFSVAkoQ0ZHX1NEUkFNX0JBU0UgKyAweDQwMDAwMCkKKyNkZWZpbmUJQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDQwMDAwMCkKICNlbmRpZgogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRQogI2VuZGlmCiAKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfRU5ECQkoQ0ZHX0lOSVRfU1AgLSAoMTAyNCAqIDEwMjQpKQotI2RlZmluZQlDRkdfTUVNVEVTVF9FTkQJCShDRkdfSU5JVF9TUCAtICgxMDI0ICogMTAyNCkpCisjZGVmaW5lCUNPTkZJR19TWVNfTUVNVEVTVF9FTkQJCShDT05GSUdfU1lTX0lOSVRfU1AgLSAoMTAyNCAqIDEwMjQpKQorI2RlZmluZQlDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoQ09ORklHX1NZU19JTklUX1NQIC0gKDEwMjQgKiAxMDI0KSkKIAogI2Vsc2UKLSN1bmRlZglDRkdfTUVNVEVTVF9TVEFSVAkvKiBmb3JjZSBlcnJvciBicmVhayAqLwotI3VuZGVmCUNGR19NRU1URVNUX0VORAorI3VuZGVmCUNPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkvKiBmb3JjZSBlcnJvciBicmVhayAqLworI3VuZGVmCUNPTkZJR19TWVNfTUVNVEVTVF9FTkQKICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0FETlBFU0MxX2Jhc2VfMzIuaCBiL2luY2x1ZGUvY29uZmlncy9BRE5QRVNDMV9iYXNlXzMyLmgKaW5kZXggYzg0MjhiNC4uMWZlOGQwOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0FETlBFU0MxX2Jhc2VfMzIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQUROUEVTQzFfYmFzZV8zMi5oCkBAIC0zMCw0MDIgKzMwLDQwMiBAQAogICogSGVyZSB3ZSBtdXN0IGRlZmluZSBDUFUgZGVwZW5kZW5jaWVzLiBBbnkgdW5zdXBwb3J0ZWQgb3B0aW9uIGhhdmUgdG8KICAqIGJlIHVuZGVmaW5lZCBvciBkZWZpbmVkIHdpdGggemVybywgZXhhbXBsZSBDUFUgd2l0aG91dCBkYXRhIGNhY2hlIC8gT0NJOgogICoKLSAqCSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0lDQUNIRQk0MDk2Ci0gKgkjZGVmaW5lCUNGR19OSU9TX0NQVV9EQ0FDSEUJMAotICoJI3VuZGVmCUNGR19OSU9TX0NQVV9PQ0lfQkFTRQotICoJI3VuZGVmCUNGR19OSU9TX0NQVV9PQ0lfU0laRQorICoJI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0lDQUNIRQk0MDk2CisgKgkjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfRENBQ0hFCTAKKyAqCSN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9CQVNFCisgKgkjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfU0laRQogICovCiAKIC8qIENQVSBjb3JlICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9DTEsJNTAwMDAwMDAJLyogTklPUyBDUFUgY2xvY2sJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0lDQUNIRQkoMCkJCS8qIGluc3RydWN0aW9uIGNhY2hlCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9EQ0FDSEUJKDApCQkvKiBkYXRhIGNhY2hlCQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUkVHX05VTVMJNTEyCQkvKiBudW1iZXIgb2YgcmVnaXN0ZXIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX01VTAkwCQkvKiAxNngxNiBNVUw6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ0xLCTUwMDAwMDAwCS8qIE5JT1MgQ1BVIGNsb2NrCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfSUNBQ0hFCSgwKQkJLyogaW5zdHJ1Y3Rpb24gY2FjaGUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9EQ0FDSEUJKDApCQkvKiBkYXRhIGNhY2hlCQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JFR19OVU1TCTUxMgkJLyogbnVtYmVyIG9mIHJlZ2lzdGVyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTVVMCTAJCS8qIDE2eDE2IE1VTDoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX01TVEVQCTEJCS8qIDE2eDE2IE1TVEVQOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX01TVEVQCTEJCS8qIDE2eDE2IE1TVEVQOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfU1RBQ0sJMHgwMzAwMDAwMAkvKiBzdGFjayB0b3AJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVkVDX0JBU0UJMHgwMjAwMDAwMAkvKiBJUlEgdmVjdG9ycwlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9WRUNfU0laRQkyNTYJCS8qCQlzaXplCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9WRUNfTlVNUwk2NAkJLyoJCW51bWJlcnMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1JTVF9WRUNUCTB4MDAwMDAwMDAJLyogUkVTRVQgdmVjdG9yCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0RCR19DT1JFCTAJCS8qIENQVSBkZWJ1ZzoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9TVEFDSwkweDAzMDAwMDAwCS8qIHN0YWNrIHRvcAlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVkVDX0JBU0UJMHgwMjAwMDAwMAkvKiBJUlEgdmVjdG9ycwlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVkVDX1NJWkUJMjU2CQkvKgkJc2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19OVU1TCTY0CQkvKgkJbnVtYmVycwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JTVF9WRUNUCTB4MDAwMDAwMDAJLyogUkVTRVQgdmVjdG9yCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9EQkdfQ09SRQkwCQkvKiBDUFUgZGVidWc6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCiAKIC8qIFRoZSBvZmZzZXQgYWRkcmVzcyBpbiBmbGFzaCB0byBjaGVjayBmb3IgdGhlIE5pb3Mgc2lnbmF0dXJlICJOaSIuCiAgKiAoc2VlIEdNX0ZsYXNoRXhlYyBpbiBnZXJtc19tb25pdG9yLnMpICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9FWEVTX09GRlMJMHgwQworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0VYRVNfT0ZGUwkweDBDCiAKIC8qIG9uLWNoaXAgZXh0ZW5zaW9ucyAqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9SQU1fQkFTRQkJCS8qIG9uIGNoaXAgUkFNCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUkFNX1NJWkUJCQkvKiA2NCBLQglzaXplCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9SQU1fQkFTRQkJCS8qIG9uIGNoaXAgUkFNCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1JBTV9TSVpFCQkJLyogNjQgS0IJc2l6ZQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9ST01fQkFTRQkweDAwMDAwMDAwCS8qIG9uIGNoaXAgUk9NCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1JPTV9TSVpFCSgyICogMTAyNCkJLyogIDIgS0IJc2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9CQVNFCTB4MDAwMDAwMDAJLyogb24gY2hpcCBST00JYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9TSVpFCSgyICogMTAyNCkJLyogIDIgS0IJc2l6ZQkqLwogCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX09DSV9CQVNFCQkJLyogT0NJIGNvcmUJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9PQ0lfU0laRQkJCS8qCQlzaXplCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfQkFTRQkJCS8qIE9DSSBjb3JlCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9TSVpFCQkJLyoJCXNpemUJKi8KIAogLyogdGltZXIgKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSX05VTVMJMQkJLyogbnVtYmVyIG9mIHRpbWVyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVJfTlVNUwkxCQkvKiBudW1iZXIgb2YgdGltZXIJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIwCTB4MDAwMDA4NDAJLyogVElNRVIwCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9JUlEJMTYJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9QRVIJMTAwMAkJLyogIHBlcmlvZGUJdXNlYwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIwX0FSCTAJCS8qICBhbHdheXMgcnVuOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMAkweDAwMDAwODQwCS8qIFRJTUVSMAlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0lSUQkxNgkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9QRVIJMTAwMAkJLyogIHBlcmlvZGUJdXNlYwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9BUgkwCQkvKiAgYWx3YXlzIHJ1bjoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9GUAkwCQkvKiAgZml4ZWQgcGVyOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9GUAkwCQkvKiAgZml4ZWQgcGVyOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIwX1NTCTEJCS8qICBzbmFwaG90OglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9TUwkxCQkvKiAgc25hcGhvdDoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KIAogLyogc2VyaWFsIGkvbyAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVF9OVU1TCTIJCS8qIG51bWJlciBvZiB1YXJ0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlRfTlVNUwkyCQkvKiBudW1iZXIgb2YgdWFydHMJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDAJMHgwMDAwMDgwMAkvKiBVQVJUMAlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMF9JUlEJMTcJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX0JSCTExNTIwMAkJLyogIGJhdWRyYXRlCXZhcigwKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfREIJOAkJLyogIGRhdGEgYml0CQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfU0IJMQkJLyogIHN0b3AgYml0CQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfUEEJMAkJLyogIHBhcml0eQlub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDAJMHgwMDAwMDgwMAkvKiBVQVJUMAlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfSVJRCTE3CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfQlIJMTE1MjAwCQkvKiAgYmF1ZHJhdGUJdmFyKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfREIJOAkJLyogIGRhdGEgYml0CQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX1NCCTEJCS8qICBzdG9wIGJpdAkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9QQQkwCQkvKiAgcGFyaXR5CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlvZGQoMSkJKi8KIAkJCQkJCS8qCQlldmVuKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMF9IUwkxCQkvKiAgaGFuZHNoYWtlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0hTCTEJCS8qICBoYW5kc2hha2U6CW5vKDApCSovCiAJCQkJCQkvKgkJY3J0cygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfRU9QCTAJCS8qICBlb3AgcmVnOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0VPUAkwCQkvKiAgZW9wIHJlZzoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDEJMHgwMDAwMDgyMAkvKiBVQVJUMQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMV9JUlEJMTgJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQxX0JSCTExNTIwMAkJLyogIGJhdWRyYXRlCXZhcigwKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDFfREIJOAkJLyogIGRhdGEgYml0CQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDFfU0IJMQkJLyogIHN0b3AgYml0CQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDFfUEEJMAkJLyogIHBhcml0eQlub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDEJMHgwMDAwMDgyMAkvKiBVQVJUMQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDFfSVJRCTE4CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDFfQlIJMTE1MjAwCQkvKiAgYmF1ZHJhdGUJdmFyKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDFfREIJOAkJLyogIGRhdGEgYml0CQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQxX1NCCTEJCS8qICBzdG9wIGJpdAkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMV9QQQkwCQkvKiAgcGFyaXR5CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlvZGQoMSkJKi8KIAkJCQkJCS8qCQlldmVuKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMV9IUwkwCQkvKiAgaGFuZHNoYWtlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQxX0hTCTAJCS8qICBoYW5kc2hha2U6CW5vKDApCSovCiAJCQkJCQkvKgkJY3J0cygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDFfRU9QCTAJCS8qICBlb3AgcmVnOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQxX0VPUAkwCQkvKiAgZW9wIHJlZzoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KIAogLyogc2VyaWFsIHBlcmlwaGVyYWwgaS9vICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TUElfTlVNUwkxCQkvKiBudW1iZXIgb2Ygc3BpcwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NQSV9OVU1TCTEJCS8qIG51bWJlciBvZiBzcGlzCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NQSTAJMHgwMDAwMDhjMAkvKiBTUEkwCQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TUEkwX0lSUQkyNQkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfU1BJMF9CSVRTCTE2CQkvKiAgZGF0YSBiaXQJCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TUEkwX01BCTEJCS8qICBpcyBtYXN0ZXI6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1BJMAkweDAwMDAwOGMwCS8qIFNQSTAJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9TUEkwX0lSUQkyNQkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NQSTBfQklUUwkxNgkJLyogIGRhdGEgYml0CQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NQSTBfTUEJMQkJLyogIGlzIG1hc3RlcjoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NQSTBfU0xOCTEJCS8qICBudW0gc2xhdmVzCQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfU1BJMF9UQ0xLCTI1MDAwMAkJLyogIGNsb2NrIChIeikJCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TUEkwX1RERUxBWSAyCQkvKiAgZGVsYXkgKHVzZWMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TUEkwX0ZCCTAJCS8qICBmaXJzdCBiaXQJbXNiKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1BJMF9TTE4JMQkJLyogIG51bSBzbGF2ZXMJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1BJMF9UQ0xLCTI1MDAwMAkJLyogIGNsb2NrIChIeikJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1BJMF9UREVMQVkgMgkJLyogIGRlbGF5ICh1c2VjKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NQSTBfRkIJMAkJLyogIGZpcnN0IGJpdAltc2IoMCkJKi8KIAkJCQkJCS8qCQlsc2IoMSkJKi8KIAogLyogcGFyYWxsZWwgaS9vICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU9fTlVNUwkxNAkJLyogbnVtYmVyIG9mIHBhcnBvcnRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPX05VTVMJMTQJCS8qIG51bWJlciBvZiBwYXJwb3J0cwkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wCTB4MDAwMDA4NjAJLyogUElPMAkJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9QSU8wX0lSUQkJCS8qCQl3L28gSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX0JJVFMJOAkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfVFlQRQkwCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzAJMHgwMDAwMDg2MAkvKiBQSU8wCQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wX0lSUQkJCS8qCQl3L28gSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9CSVRTCTgJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9UWVBFCTAJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMF9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMQkweDAwMDAwODcwCS8qIFBJTzEJCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUElPMV9JUlEJCQkvKgkJdy9vIElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMV9CSVRTCTgJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX1RZUEUJMAkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xCTB4MDAwMDA4NzAJLyogUElPMQkJYWRkcgkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9JUlEJCQkvKgkJdy9vIElSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfQklUUwk4CQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfVFlQRQkwCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzFfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMV9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzIJMHgwMDAwMDg4MAkvKiBQSU8yCQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1BJTzJfSVJRCQkJLyoJCXcvbyBJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzJfQklUUwk0CQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMl9UWVBFCTAJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMgkweDAwMDAwODgwCS8qIFBJTzIJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzJfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0JJVFMJNAkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX1RZUEUJMAkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMl9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMl9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8yX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzJfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzJfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMl9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8zCTB4MDAwMDA4OTAJLyogUElPMwkJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9QSU8zX0lSUQkJCS8qCQl3L28gSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8zX0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzNfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzMJMHgwMDAwMDg5MAkvKiBQSU8zCQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0lSUQkJCS8qCQl3L28gSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzNfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPM19FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8zX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMwkweDAwMDAwODkwCS8qIFBJTzMJCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUElPM19JUlEJCQkvKgkJdy9vIElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPM19CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8zX1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zCTB4MDAwMDA4OTAJLyogUElPMwkJYWRkcgkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19JUlEJCQkvKgkJdy9vIElSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8zX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzNfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPM19JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzQJMHgwMDAwMDhhMAkvKiBQSU80CQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1BJTzRfSVJRCQkJLyoJCXcvbyBJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzRfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNF9UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNAkweDAwMDAwOGEwCS8qIFBJTzQJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzRfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU80X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU80X1RZUEUJMQkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNF9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNF9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU80X0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzRfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzRfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNF9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81CTB4MDAwMDA4YjAJLyogUElPNQkJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9QSU81X0lSUQkJCS8qCQl3L28gSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzVfVFlQRQkxCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzUJMHgwMDAwMDhiMAkvKiBQSU81CQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9QSU81X0lSUQkJCS8qCQl3L28gSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNV9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNV9UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzVfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNV9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU81X0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81X0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNgkweDAwMDAwOTAwCS8qIFBJTzYJCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzZfSVJRCTIwCQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU82X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzZfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzYJMHgwMDAwMDkwMAkvKiBQSU82CQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNl9JUlEJMjAJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU82X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU82X1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNl9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNl9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU82X0VER0UJMgkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzZfRURHRQkyCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzZfSVRZUEUJMQkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNl9JVFlQRQkxCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU83CTB4MDAwMDA5MTAJLyogUElPNwkJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPN19JUlEJMzEJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzdfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPN19UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNwkweDAwMDAwOTEwCS8qIFBJTzcJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X0lSUQkzMQkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzdfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzdfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU83X0NBUAkxCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X0NBUAkxCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzdfRURHRQkyCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPN19FREdFCTIJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPN19JVFlQRQkxCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X0lUWVBFCTEJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzgJMHgwMDAwMDkyMAkvKiBQSU84CQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU84X0lSUQkzMgkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPOF9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU84X1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU84CTB4MDAwMDA5MjAJLyogUElPOAkJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzhfSVJRCTMyCQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPOF9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPOF9UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzhfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzhfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPOF9FREdFCTIJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU84X0VER0UJMgkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU84X0lUWVBFCTEJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzhfSVRZUEUJMQkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPOQkweDAwMDAwOTMwCS8qIFBJTzkJCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzlfSVJRCTMzCQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU85X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzlfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzkJMHgwMDAwMDkzMAkvKiBQSU85CQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPOV9JUlEJMzMJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU85X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU85X1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPOV9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPOV9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU85X0VER0UJMgkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzlfRURHRQkyCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzlfSVRZUEUJMQkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPOV9JVFlQRQkxCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMAkweDAwMDAwOTQwCS8qIFBJTzEwCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzEwX0lSUQkzNAkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTBfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTBfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEwCTB4MDAwMDA5NDAJLyogUElPMTAJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEwX0lSUQkzNAkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEwX0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMF9UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzEwX0NBUAkxCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMF9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMF9FREdFCTIJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMF9FREdFCTIJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTBfSVRZUEUgMQkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTBfSVRZUEUgMQkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTEJMHgwMDAwMDk1MAkvKiBQSU8xMQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMV9JUlEJMzUJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzExX0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzExX1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMQkweDAwMDAwOTUwCS8qIFBJTzExCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMV9JUlEJMzUJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMV9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTFfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMV9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTFfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTFfRURHRQkyCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTFfRURHRQkyCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzExX0lUWVBFIDEJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzExX0lUWVBFIDEJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzEyCTB4MDAwMDA5NjAJLyogUElPMTIJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTJfSVJRCTM2CQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMl9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMl9UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTIJMHgwMDAwMDk2MAkvKiBQSU8xMglhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTJfSVJRCTM2CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTJfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEyX1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTJfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEyX0NBUAkxCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzEyX0VER0UJMgkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEyX0VER0UJMgkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMl9JVFlQRSAxCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMl9JVFlQRSAxCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMwkweDAwMDAwOTcwCS8qIFBJTzExMwlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xM19JUlEJMzcJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzEzX0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzEzX1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMwkweDAwMDAwOTcwCS8qIFBJTzExMwlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTNfSVJRCTM3CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTNfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEzX1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTNfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEzX0NBUAkxCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzEzX0VER0UJMgkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEzX0VER0UJMgkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xM19JVFlQRSAxCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xM19JVFlQRSAxCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCiAvKiBJREUgaS9mICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9JREVfTlVNUwkyCQkvKiBudW1iZXIgb2YgSURFIGNvbnRyLgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0lERV9OVU1TCTIJCS8qIG51bWJlciBvZiBJREUgY29udHIuCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0lERTAJMHgwMDAwMTAwMAkvKiBJREUwCQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9JREUwX0lSUQkzNgkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0lERTAJMHgwMDAwMTAwMAkvKiBJREUwCQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfSURFMF9JUlEJMzYJCS8qCQlJUlEJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfSURFMQkweDAwMDAxMDIwCS8qIElERTEJCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0lERTFfSVJRCTM3CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfSURFMQkweDAwMDAxMDIwCS8qIElERTEJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9JREUxX0lSUQkzNwkJLyoJCUlSUQkqLwogCiAvKiBtZW1vcnkgYWNjZXNzaWJpbGl0eSAqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9TUkFNX0JBU0UJCQkvKiBib2FyZCBTUkFNCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfU1JBTV9TSVpFCQkJLyogIDEgTUIJc2l6ZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9CQVNFCQkJLyogYm9hcmQgU1JBTQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX1NJWkUJCQkvKiAgMSBNQglzaXplCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NEUkFNX0JBU0UJMHgwMjAwMDAwMAkvKiBib2FyZCBTRFJBTQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TRFJBTV9TSVpFCSgxNioxMDI0KjEwMjQpCS8qIDE2IE1CCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9CQVNFCTB4MDIwMDAwMDAJLyogYm9hcmQgU0RSQU0JYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX1NJWkUJKDE2KjEwMjQqMTAyNCkJLyogMTYgTUIJc2l6ZQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9GTEFTSF9CQVNFCTB4MDEwMDAwMDAJLyogYm9hcmQgRmxhc2gJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfRkxBU0hfU0laRQkoOCoxMDI0KjEwMjQpCS8qICA4IE1CCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9CQVNFCTB4MDEwMDAwMDAJLyogYm9hcmQgRmxhc2gJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUJKDgqMTAyNCoxMDI0KQkvKiAgOCBNQglzaXplCSovCiAKIC8qIExBTiAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOX05VTVMJMQkJLyogbnVtYmVyIG9mIExBTiBpL2YJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU5fTlVNUwkxCQkvKiBudW1iZXIgb2YgTEFOIGkvZgkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX0JBU0UJMHgwMDAxMDAwMAkvKiBMQU4wCQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX09GRlMJKDApCQkvKgkJb2Zmc2V0CSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX0lSUQkyMAkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9CVVNXCTE2CQkvKgkgICAgICAgIGJ1c3dpZHRoKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xBTjBfVFlQRQkwCQkvKglzbWM5MTExMSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfQkFTRQkweDAwMDEwMDAwCS8qIExBTjAJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX09GRlMJKDApCQkvKgkJb2Zmc2V0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOMF9JUlEJMjAJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JVU1cJMTYJCS8qCSAgICAgICAgYnVzd2lkdGgqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfVFlQRQkwCQkvKglzbWM5MTExMSgwKQkqLwogCQkJCQkJLyoJY3M4OTAwKDEpCSovCiAJCQkJCQkvKiBleDoJb3Blbm1hYygyKQkqLwogCQkJCQkJLyogZXg6CWFsdGVyYW1hYygzKQkqLwogCiAvKiBleHRlcm5hbCBleHRlbnNpb24gKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NTMF9CQVNFCTB4NDAwMDAwMDAJLyogYm9hcmQgRVhUMAlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9DUzBfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ1MwX0JBU0UJMHg0MDAwMDAwMAkvKiBib2FyZCBFWFQwCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9DUzBfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NTMV9CQVNFCTB4NDEwMDAwMDAJLyogYm9hcmQgRVhUMQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9DUzFfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ1MxX0JBU0UJMHg0MTAwMDAwMAkvKiBib2FyZCBFWFQxCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9DUzFfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NTMl9CQVNFCTB4NDIwMDAwMDAJLyogYm9hcmQgRVhUMglhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9DUzJfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ1MyX0JBU0UJMHg0MjAwMDAwMAkvKiBib2FyZCBFWFQyCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9DUzJfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NTM19CQVNFCTB4NDMwMDAwMDAJLyogYm9hcmQgRVhUMwlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9DUzNfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ1MzX0JBU0UJMHg0MzAwMDAwMAkvKiBib2FyZCBFWFQzCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9DUzNfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCiAKIC8qIHN5bWJvbGljIHJlZGVmaW5pdGlvbiAodW5kZWYsIGlmIG5vdCBwcmVzZW50KSAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElDS19USU1FUgkJMAkvKiBUSU1FUjA6IHRpY2sgKG5lZWRlZCkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9VU0VSX1RJTUVSCQkJLyogVElNRVJ4OiB1c2VycyBjaG9pY2UJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USUNLX1RJTUVSCQkwCS8qIFRJTUVSMDogdGljayAobmVlZGVkKSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9VU0VSX1RJTUVSCQkJLyogVElNRVJ4OiB1c2VycyBjaG9pY2UJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUE9SVEFfUElPCQkwCS8qIFBJTzA6IFBvcnQgQQkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BPUlRCX1BJTwkJMQkvKiBQSU8xOiBQb3J0IEQJCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QT1JUQ19QSU8JCTIJLyogUElPMjogUG9ydCBDCQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUkNNX1BJTwkJMwkvKiBQSU8zOiBSQ00ganVtcGVyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9XREVOQV9QSU8JCTQJLyogUElPNDogd2F0Y2hkb2cgZW5hYmxlKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1dEVE9HX1BJTwkJNQkvKiBQSU81OiB3YXRjaGRvZyB0cmlnZy4qLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BPUlRBX1BJTwkJMAkvKiBQSU8wOiBQb3J0IEEJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUE9SVEJfUElPCQkxCS8qIFBJTzE6IFBvcnQgRAkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QT1JUQ19QSU8JCTIJLyogUElPMjogUG9ydCBDCQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JDTV9QSU8JCTMJLyogUElPMzogUkNNIGp1bXBlcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1dERU5BX1BJTwkJNAkvKiBQSU80OiB3YXRjaGRvZyBlbmFibGUqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTwkJNQkvKiBQSU81OiB3YXRjaGRvZyB0cmlnZy4qLwogCiAvKiBQSU94OiBMRUQgYmFyICovCiAjaWZkZWYJQ09ORklHX0ROUEVWQTIJCQkvKiBETlAvRVZBMiBiYXNlIGJvYXJkICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MRURfUElPCQlDRkdfTklPU19DUFVfUE9SVEFfUElPCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEVEX1BJTwkJQ09ORklHX1NZU19OSU9TX0NQVV9QT1JUQV9QSU8KICNlbHNlCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX0xFRF9QSU8JCQkvKiBubyBMRUQgYmFyCQkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfTEVEX1BJTwkJCS8qIG5vIExFRCBiYXIJCSovCiAjZW5kaWYKIAogI2VuZGlmCS8qIF9fQ09ORklHX0FETlBFU0MxX0JBU0VfMzJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0FEUzg2MC5oIGIvaW5jbHVkZS9jb25maWdzL0FEUzg2MC5oCmluZGV4IGY2NzdiOWMuLjY4OGU3N2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9BRFM4NjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQURTODYwLmgKQEAgLTI3LDEyICsyNywxMiBAQAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTM4NDAwCS8qIENvbnNvbGUgYmF1ZHJhdGUgKi8KIAogI2lmIDAKLSNkZWZpbmUgQ0ZHXzhYWF9GQUNUCQkxNTI2CS8qIDMyLjc2OCBrSHogY3J5c3RhbCBvbiBYVEFML0VYVEFMICovCisjZGVmaW5lIENPTkZJR19TWVNfOFhYX0ZBQ1QJCTE1MjYJLyogMzIuNzY4IGtIeiBjcnlzdGFsIG9uIFhUQUwvRVhUQUwgKi8KICNlbHNlCi0jZGVmaW5lIENGR184WFhfRkFDVAkJMTIJLyogNCBNSHogb3NjaWxsYXRvciBvbiBFWFRDTEsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU184WFhfRkFDVAkJMTIJLyogNCBNSHogb3NjaWxsYXRvciBvbiBFWFRDTEsgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QTFBSQ1IgICgoKENGR184WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUiAgKCgoQ09ORklHX1NZU184WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAogCQlQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKICNkZWZpbmUgQ09ORklHX0RSQU1fNTBNSFoJCTEKQEAgLTUzLDYgKzUzLDYgQEAKIAogI2luY2x1ZGUgIi4uLy4uL2JvYXJkL2ZhZHMvZmFkcy5oIgogCi0jZGVmaW5lIENGR19QQ19JREVfUkVTRVQJKCh1c2hvcnQpMHgwMDA4KSAgICAvKiBQQyAxMgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDX0lERV9SRVNFVAkoKHVzaG9ydCkweDAwMDgpICAgIC8qIFBDIDEyCSovCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQU1YODYwLmggYi9pbmNsdWRlL2NvbmZpZ3MvQU1YODYwLmgKaW5kZXggMzQzMTIzYi4uNmUyOTA3ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0FNWDg2MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9BTVg4NjAuaApAQCAtMTAxLDI1ICsxMDEsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDIwMDAwMAkvKiAxIC4uLiA0IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDIwMDAwMAkvKiAxIC4uLiA0IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xMzAsMzEgKzEzMCwzMSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCQkweEZGMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAogI2lmIGRlZmluZWQoREVCVUcpCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBVLUJvb3QgZm9yIEFNWCBib2FyZCBzdXBwb3J0cyB0d28gdHlwZXMgb2YgbWVtb3J5IGV4dGVuc2lvbgpAQCAtMTg2LDE4ICsxODYsMTggQEAKICAqIChDT05GSUdfQU1YX1JBTV9FWFQpCiAgKi8KICNpZmRlZiBDT05GSUdfQU1YX1JBTV9FWFQKLSMgZGVmaW5lCUNGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyMgZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAjZWxzZQotIyBkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkoNCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworIyBkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJKDQgPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJMHg4MDAwCS8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yMDYsOSArMjA2LDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjE4LDEwICsyMTgsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIyOSwyOCArMjI5LDI4IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJMTUtMzAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHNldCB0aGUgUExMLCB0aGUgbG93LXBvd2VyIG1vZGVzIGFuZCB0aGUgcmVzZXQgY29udHJvbCAoMTUtMjkpCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKChNUEM4WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKChNUEM4WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAogCQkJCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjYwLDkgKzI2MCw5IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlN8U0NDUl9DT00wMHxTQ0NSX0RGU1lOQzAwfFNDQ1JfREZCUkcwMHxTQ0NSX0RGTkwwMDB8U0NDUl9ERk5IMDAwfFNDQ1JfREZMQ0QwMDB8U0NDUl9ERkFMQ0QwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCU3xTQ0NSX0NPTTAwfFNDQ1JfREZTWU5DMDB8U0NDUl9ERkJSRzAwfFNDQ1JfREZOTDAwMHxTQ0NSX0RGTkgwMDB8U0NDUl9ERkxDRDAwMHxTQ0NSX0RGQUxDRDAwKQogCi0jZGVmaW5lIENGR19ERVIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0yNzUsMjcgKzI3NSwyNyBAQAogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0JMHg2MDAwMDAwMAkvKiBGTEFTSCBiYW5rICMxCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRkMwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRkMwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMCwgVFJMWCA9IDEsIENTTlQgPSAxLCBTQ1kgPSAzLCBFSFRSID0gMAkqLwogLyoJCQkJIDB4MDAwMDA4MDAJMHgwMDAwMDQwMCAweDAwMDAwMTAwIDB4MDAwMDAwMzAgICAgIDB4MDAwMDAwMDQgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV81X0NMSyB8IE9SX1RSTFgpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzVfQ0xLIHwgT1JfVFJMWCkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JMHhGRkMwMDk1NAkvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCTB4NDAwMDAwMDEJLyogUmVhbCB2YWx1ZXMgZm9yIHRoZSBib2FyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JMHhGRkMwMDk1NAkvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkweDQwMDAwMDAxCS8qIFJlYWwgdmFsdWVzIGZvciB0aGUgYm9hcmQgKi8KIAogI2lmbmRlZiBDT05GSUdfQU1YX1JBTV9FWFQKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCTB4RkZDMDA5NTQJLyogUmVhbCB2YWx1ZXMgZm9yIHRoZSBib2FyZCAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkweDYwMDAwMDAxCS8qIFJlYWwgdmFsdWVzIGZvciB0aGUgYm9hcmQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCTB4RkZDMDA5NTQJLyogUmVhbCB2YWx1ZXMgZm9yIHRoZSBib2FyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JMHg2MDAwMDAwMQkvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCiAjZW5kaWYKIAogLyogRFNQICgiR2x1ZSIpIFhpbGlueCAqLwotI2RlZmluZSBDRkdfT1I2X1BSRUxJTQkweEZGRkY4MDAwCS8qIDMya0IsIDE1IHdhaXRzLCBjcyBhZnRlciBhZGRyLCBubyBidXJzdHMgKi8KLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JMHg2MDAwMDQwMQkvKiB1c2UgR1BDTSBmb3IgQ1MgZ2VuZXJhdGlvbiwgOCBiaXQgcG9ydCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNl9QUkVMSU0JMHhGRkZGODAwMAkvKiAzMmtCLCAxNSB3YWl0cywgY3MgYWZ0ZXIgYWRkciwgbm8gYnVyc3RzICovCisjZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTQkweDYwMDAwNDAxCS8qIHVzZSBHUENNIGZvciBDUyBnZW5lcmF0aW9uLCA4IGJpdCBwb3J0ICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0FQMTAwMC5oIGIvaW5jbHVkZS9jb25maWdzL0FQMTAwMC5oCmluZGV4IDYzZDQwMDMuLmVjOTgyYmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9BUDEwMDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQVAxMDAwLmgKQEAgLTI5LDE2ICsyOSwxNiBAQAogCiAjZGVmaW5lIENPTkZJR19QQ0kJMQogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUiAxCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSIwPiAiCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSIDEJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSIwPiAiCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogI2RlZmluZSBDT05GSUdfQ09NTUFORF9FRElUCTEKICNkZWZpbmUgQ09ORklHX0NPTU1BTkRfSElTVE9SWQkxCiAjZGVmaW5lIENPTkZJR19DT01QTEVURV9BRERSRVNTRVMgMQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fTlZSQU0KICN1bmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC02Miw3ICs2Miw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQVJHUwkJImNvbnNvbGU9dHR5UzAsNTc2MDAiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogCiAvKgpAQCAtOTYsODIgKzk2LDgyIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotLyogdXN1YWxseTogKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFKzQrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisvKiB1c3VhbGx5OiAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFKzQrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCQkxCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDEwMDAwMDAJLyogNCAuLi4gMTYgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMTAwMDAwMAkvKiA0IC4uLiAxNiBNQiBpbiBEUkFNCSovCiAKIC8qCi0gKiBJZiBDRkdfRVhUX1NFUklBTF9DTE9DSywgdGhlbiB0aGUgVUFSVCBkaXZpc29yIGlzIDEuCi0gKiBJZiBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5LCB0aGVuIFVBUlQgZGl2aXNvciBpcyAzMS4KLSAqIE90aGVyd2lzZSwgVUFSVCBkaXZpc29yIGlzIGRldGVybWluZWQgYnkgQ1BVIENsb2NrIGFuZCBDRkdfQkFTRV9CQVVEIHZhbHVlLgorICogSWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLLCB0aGVuIHRoZSBVQVJUIGRpdmlzb3IgaXMgMS4KKyAqIElmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5LCB0aGVuIFVBUlQgZGl2aXNvciBpcyAzMS4KKyAqIE90aGVyd2lzZSwgVUFSVCBkaXZpc29yIGlzIGRldGVybWluZWQgYnkgQ1BVIENsb2NrIGFuZCBDT05GSUdfU1lTX0JBU0VfQkFVRCB2YWx1ZS4KICAqIFRoZSBMaW51eCBCQVNFX0JBVUQgZGVmaW5lIHNob3VsZCBtYXRjaCB0aGlzIGNvbmZpZ3VyYXRpb24uCiAgKiAgICBiYXNlQmF1ZCA9IGNwdUNsb2NrLyh1YXJ0RGl2aXNvcioxNikKLSAqIElmIENGR180MDVfVUFSVF9FUlJBVEFfNTkgYW5kIDIwME1IeiBDUFUgY2xvY2ssCisgKiBJZiBDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OSBhbmQgMjAwTUh6IENQVSBjbG9jaywKICAqIHNldCBMaW51eCBCQVNFX0JBVUQgdG8gNDAzMjAwLgogICovCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJCS8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLwotI3VuZGVmCUNGR180MDVfVUFSVF9FUlJBVEFfNTkJCS8qIDQwNUdQL0NSIFJldi4gRCBzaWxpY29uICovCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCQkvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KKyN1bmRlZglDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OQkJLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTQwMDAwMDAwCi0jZGVmaW5lIENGR19EVUFSVF9DSEFOCQkwCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKDB4NEMwMDAwMDAgKyAweDEwMDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKDB4NEM4MDAwMDAgKyAweDEwMDApCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTQKLSNkZWZpbmUgQ0ZHX05TMTY1NTAJCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfQ0hBTjEJCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfQ0hBTjIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJNDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EVUFSVF9DSEFOCQkwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCSgweDRDMDAwMDAwICsgMHgxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoMHg0QzgwMDAwMCArIDB4MTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTQKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9DSEFOMQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfQ0hBTjIJCTAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogICAgIHszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDIwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkJLyogUmVzZXJ2ZSAxOTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiAqIDEwMjQpCS8qIFJlc2VydmUgMTk2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEKLSNkZWZpbmUgQ0ZHX1BST0dGTEFTSF9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DT05GRkxBU0hfQkFTRQkweDI0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPR0ZMQVNIX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ09ORkZMQVNIX0JBU0UJMHgyNDAwMDAwMAogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIHByb3RlY3Rpb24JICAgICovCiAKIC8qIEJFRyBFTlZJUk9OTkVNRU5UIEZMQVNIICovCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSApAQCAtMTgzLDEzICsxODMsMTMgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5WUkFNIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhmMDAwMDAwMAkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJCTB4MWZmOAkJLyogTlZSQU0gc2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweGYwMDAwMDAwCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCTB4MWZmOAkJLyogTlZSQU0gc2l6ZQkqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9OVlJBTQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkJLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzICovCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkgICAgXAotICAgIChDRkdfTlZSQU1fQkFTRV9BRERSK0NGR19OVlJBTV9TSVpFLUNPTkZJR19FTlZfU0laRSkJLyogRW52CSovCisgICAgKENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSK0NPTkZJR19TWVNfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudgkqLwogI2VuZGlmCiAKIC8qCkBAIC0xOTgsNyArMTk4LDcgQEAKICAqIEJSMC8xIGFuZCBPUjAvMSAoRkxBU0gpCiAgKi8KIAotI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UJLyogRkxBU0ggYmFuayAjMAkqLworI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJKi8KICNkZWZpbmUgRkxBU0hfQkFTRTFfUFJFTElNCTAJCS8qIEZMQVNIIGJhbmsgIzEJKi8KIAogLyogQ29uZmlndXJhdGlvbiBQb3J0IGxvY2F0aW9uICovCkBAIC0yMDgsMTEgKzIwOCwxMSBAQAogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDAwMDAwICAvKiBpbnNpZGUgb2YgU0RSQU0JCQkgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAgIC8qIGluc2lkZSBvZiBTRFJBTQkJCSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgU2VyaWFsIFByZXNlbmNlIERldGVjdCBFRVBST00gYWRkcmVzcwpAQCAtMjM1LDE1ICsyMzUsMTUgQEAKIAogLyogSkZGUzIgc3R1ZmYgKi8KIAotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfQkFOSwkwCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJMQotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfU0VDVE9SCTEKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCTAKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUgkxCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQogI2RlZmluZSBDT05GSUdfRTEwMDAKIAotI2RlZmluZSBDRkdfRVRIX0RFVl9GTgkJMHgwODAwCi0jZGVmaW5lIENGR19FVEhfSU9CQVNFCQkweDMxMDAwMDAwCi0jZGVmaW5lIENGR19FVEhfTUVNQkFTRQkJMHgzMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9ERVZfRk4JCTB4MDgwMAorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9JT0JBU0UJCTB4MzEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVEhfTUVNQkFTRQkJMHgzMjAwMDAwMAogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0FQQzQwNS5oIGIvaW5jbHVkZS9jb25maWdzL0FQQzQwNS5oCmluZGV4IDRkNmI3YWMuLjc0NTM1MTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9BUEM0MDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQVBDNDA1LmgKQEAgLTUyLDE0ICs1MiwxNCBAQAogCiAjdW5kZWYJQ09ORklHX0JPT1RBUkdTCiAKLSNkZWZpbmUgQ0ZHX1VTQl9MT0FEX0NPTU1BTkQJImZhdGxvYWQgdXNiIDAgMjAwMDAwIHBJbWFnZTsiCQlcCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0xPQURfQ09NTUFORAkiZmF0bG9hZCB1c2IgMCAyMDAwMDAgcEltYWdlOyIJCVwKIAkJCQkiZmF0bG9hZCB1c2IgMCAzMDAwMDAgcEltYWdlLmluaXRyZCIKLSNkZWZpbmUgQ0ZHX1VTQl9TRUxGX0NPTU1BTkQJInVzYiBzdGFydDtydW4gdXNiX2xvYWQ7dXNiIHN0b3A7IglcCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX1NFTEZfQ09NTUFORAkidXNiIHN0YXJ0O3J1biB1c2JfbG9hZDt1c2Igc3RvcDsiCVwKIAkJCQkicnVuIHJhbWFyZ3MgYWRkaXAgYWRkY29uIHVzYmFyZ3M7IglcCiAJCQkJImJvb3RtIDIwMDAwMCAzMDAwMDAiCi0jZGVmaW5lIENGR19VU0JfQVJHUwkJInNldGVudiBib290YXJncyAkKGJvb3RhcmdzKSB1c2Jib290PTEiCi0jZGVmaW5lIENGR19CT09UTElNSVQJCSIzIgotI2RlZmluZSBDRkdfQUxUX0JPT1RDT01NQU5ECSJydW4gdXNiX3NlbGY7cmVzZXQiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0FSR1MJCSJzZXRlbnYgYm9vdGFyZ3MgJChib290YXJncykgdXNiYm9vdD0xIgorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RMSU1JVAkJIjMiCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX0JPT1RDT01NQU5ECSJydW4gdXNiX3NlbGY7cmVzZXQiCiAKICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAkiaG9zdG5hbWU9YWJnNDA1XDAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtODgsMTggKzg4LDE4IEBACiAJIm5ldG1hc2s9MjU1LjI1NS4wLjBcMCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAkic2VydmVyaXA9MTAuMC4wLjE5MFwwIgkJCQkJCVwKIAkic3BsYXNoaW1hZ2U9ZmZlODAwMDBcMCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotCSJ1c2JfbG9hZD0iQ0ZHX1VTQl9MT0FEX0NPTU1BTkQiXDAiCQkJCVwKLQkidXNiX3NlbGY9IkNGR19VU0JfU0VMRl9DT01NQU5EIlwwIgkJCQlcCi0JInVzYmFyZ3M9IkNGR19VU0JfQVJHUyJcMCIJCQkJCVwKLQkiYm9vdGxpbWl0PSJDRkdfQk9PVExJTUlUIlwwIgkJCQkJXAotCSJhbHRib290Y21kPSJDRkdfQUxUX0JPT1RDT01NQU5EIlwwIgkJCQlcCisJInVzYl9sb2FkPSJDT05GSUdfU1lTX1VTQl9MT0FEX0NPTU1BTkQiXDAiCQkJCVwKKwkidXNiX3NlbGY9IkNPTkZJR19TWVNfVVNCX1NFTEZfQ09NTUFORCJcMCIJCQkJXAorCSJ1c2JhcmdzPSJDT05GSUdfU1lTX1VTQl9BUkdTIlwwIgkJCQkJXAorCSJib290bGltaXQ9IkNPTkZJR19TWVNfQk9PVExJTUlUIlwwIgkJCQkJXAorCSJhbHRib290Y21kPSJDT05GSUdfU1lTX0FMVF9CT09UQ09NTUFORCJcMCIJCQkJXAogCSIiCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZsYXNoX3NlbGY7cmVzZXQiCiAKICNkZWZpbmUgQ09ORklHX0VUSEFERFIJCTAwOjAyOjI3OjhlOjAwOjAwCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICN1bmRlZiAgQ09ORklHX0hBU19FVEgxCkBAIC0xNDgsNDQgKzE0OCw0NCBAQAogI3VuZGVmICBDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZCAqLwogCiAjZGVmaW5lIENPTkZJR19SVENfTUMxNDY4MTgJCS8qIERTMTY4NSBpcyBNQzE0NjgxOCBjb21wYXRpYmxlKi8KLSNkZWZpbmUgQ0ZHX1JUQ19SRUdfQkFTRV9BRERSIDB4RjAwMDA1MDAgLyogUlRDIEJhc2UgQWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JUQ19SRUdfQkFTRV9BRERSIDB4RjAwMDA1MDAgLyogUlRDIEJhc2UgQWRkcmVzcyAqLwogCiAjZGVmaW5lIENPTkZJR19TRFJBTV9CQU5LMAkxCS8qIGluaXQgb25ib2FyZCBTRFJBTSBiYW5rIDAgKi8KIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZSAqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwIC8qIDQgLi4uIDEyIE1CIGluIERSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMCAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sgICAgMTQ3NDU2MDAgLyogdXNlIGV4dGVybmFsIHNlcmlhbCBjbG9jayAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSyAgICAxNDc0NTYwMCAvKiB1c2UgZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICAgKi8KIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgICAgICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgICAgICBcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogCkBAIC0yMDAsNyArMjAwLDcgQEAKIAogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRQkxCS8qIGluY2x1ZGUgdmVyc2lvbiBlbnYgdmFyaWFibGUgKi8KIAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCiAKIC8qCiAgKiBQQ0kgc3R1ZmYKQEAgLTIxNiwxNSArMjE2LDE1IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHByaW50IHBjaSBkZXZpY2VzIEAgc3RhcnR1cCAgKi8KICNkZWZpbmUgQ09ORklHX1BDSV9TS0lQX0hPU1RfQlJJREdFIDEKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFICAvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNSAgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUgICAgICAqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIDB4MDAwMDAwMDAgICAgICAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TICAweGZjMDAwMDAxICAgICAgLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEgIDB4ZmZjMDAwMDAgICAgICAvKiBwb2ludCB0byBmbGFzaCAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweGZmYzAwMDAxICAgICAgLyogNE1CLCBlbmFibGUgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRSAgLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmggICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1ICAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBICAweDAwMDAwMDAwICAgICAgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMgIDB4ZmMwMDAwMDEgICAgICAvKiA2NE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBICAweGZmYzAwMDAwICAgICAgLyogcG9pbnQgdG8gZmxhc2ggICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMgIDB4ZmZjMDAwMDEgICAgICAvKiA0TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyoKICAqIElERS9BVEEgc3R1ZmYKQEAgLTIzMywzMiArMjMzLDMyIEBACiAjdW5kZWYgIENPTkZJR19JREVfTEVECQkJLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkICovCiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJMQkvKiByZXNldCBmb3IgaWRlIHN1cHBvcnRlZCAqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCQkvKiBtYXguIDEgSURFIGJ1c3NlcyAqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCQkvKiBtYXguIDEgSURFIGJ1c3NlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUykgLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLwogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4RjAxMDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4RjAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2VzcyAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4RkZGODAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyKjEwMjQqMTAyNCkJLyogUmVzZXJ2ZSAyTUIgZm9yIG1hbGxvYygpICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweEZGRjgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyKjEwMjQqMTAyNCkJLyogUmVzZXJ2ZSAyTUIgZm9yIG1hbGxvYygpICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0LiBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXQuIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KQEAgLTI2NywyNiArMjY3LDI2IEBACiBleHRlcm4gaW50IGZsYXNoX2JhbmtzOwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJZmxhc2hfYmFua3MgLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCWZsYXNoX2JhbmtzIC8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MgKi8KIAkJCQkJICAgIC8qIHVwZGF0ZWQgaW4gYm9hcmRfZWFybHlfaW5pdF9yICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1NfREVURUNUIDIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QJMQotI2RlZmluZSBDRkdfRkxBU0hfSU5DUkVNRU5UCTB4MDEwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbiAqLwotI2RlZmluZSBDRkdfRkxBU0hfQVVUT1BST1RFQ1RfTElTVCB7IFwKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NfREVURUNUIDIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FVVE9QUk9URUNUX0xJU1QgeyBcCiAJCQkJezB4ZmUwMDAwMDAsIDB4NTAwMDAwfSwgXAogCQkJCXsweGZmZTgwMDAwLCAweDE4MDAwMH0gXAogCQkJCX0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IFwKLQkJCQlDRkdfRkxBU0hfQkFTRSwgXAotCQkJCUNGR19GTEFTSF9CQVNFICsgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVCBcCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IFwKKwkJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIFwKKwkJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVCBcCiAJCQkJfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAvKgogICogRW52aXJvbm1lbnQgVmFyaWFibGUgc2V0dXAKQEAgLTI5NywzMCArMjk3LDMwIEBACiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg4MDAJLyogMjA0OCBieXRlcyBtYXkgYmUgdXNlZCBmb3IgZW52IHZhcnMqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQkxCS8qIGFsbG93IG92ZXJ3cml0aW5nIHZlbmRvciB2YXJzICovCiAKLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweEYwMDAwNTAwCS8qIE5WUkFNIGJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMjQyCQkvKiBOVlJBTSBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4RjAwMDA1MDAJLyogTlZSQU0gYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMjQyCQkvKiBOVlJBTSBzaXplICovCiAKIC8qCiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDggKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMQkvKiBCeXRlcyBvZiBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQkvKiBCeXRlcyBvZiBhZGRyZXNzICovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzICovCiAJCQkJCS8qIDE2IGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdAk0IGJpdHMgb2YgdGhlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyoKICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCiAgKi8KLSNkZWZpbmUgRkxBU0gwX0JBICAgICAgIChDRkdfRkxBU0hfQkFTRSArIENGR19GTEFTSF9JTkNSRU1FTlQpIC8qIEZMQVNIIDAgQkEgKi8KLSNkZWZpbmUgRkxBU0gxX0JBICAgICAgIENGR19GTEFTSF9CQVNFICAgICAgLyogRkxBU0ggMSBCYXNlIEFkZHJlc3MgICAgICAgICAgKi8KKyNkZWZpbmUgRkxBU0gwX0JBICAgICAgIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVCkgLyogRkxBU0ggMCBCQSAqLworI2RlZmluZSBGTEFTSDFfQkEgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICAgICAgLyogRkxBU0ggMSBCYXNlIEFkZHJlc3MgICAgICAgICAgKi8KICNkZWZpbmUgQ0FOX0JBICAgICAgICAgIDB4RjAwMDAwMDAgICAgICAgICAgLyogQ0FOIEJhc2UgQWRkcmVzcyAgICAgICAgICAgICAgKi8KICNkZWZpbmUgRFVBUlQwX0JBICAgICAgIDB4RjAwMDA0MDAgICAgICAgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzICAgICAgICAgICAgKi8KICNkZWZpbmUgRFVBUlQxX0JBICAgICAgIDB4RjAwMDA0MDggICAgICAgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzICAgICAgICAgICAgKi8KQEAgLTMzMyw5NyArMzMzLDk3IEBACiAjZGVmaW5lIFBDTUNJQTJfQkEgICAgICAweDI4MDAwMDAwICAgICAgICAgIC8qIFBDTUNJQSBTbG90IDIgQmFzZSBBZGRyZXNzICAgICovCiAjZGVmaW5lIFZHQV9CQSAgICAgICAgICAweEYxMDAwMDAwICAgICAgICAgIC8qIEVwc29uIFZHQSBCYXNlIEFkZHJlc3MgICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRV9BRERSICAgICAgRlBHQV9CQSAgICAgLyogRlBHQSBpbnRlcm5hbCBCYXNlIEFkZHJlc3MgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUiAgICAgIEZQR0FfQkEgICAgIC8qIEZQR0EgaW50ZXJuYWwgQmFzZSBBZGRyZXNzICAgICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCkgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUCAgIDB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUiAgIEZMQVNIMF9CQSB8IDB4OUEwMDAgLyogQkFTPTB4RkYwLEJTPTE2TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUF9IV1JFVjggQ0ZHX0VCQ19QQjBBUAotI2RlZmluZSBDRkdfRUJDX1BCMENSX0hXUkVWOCBGTEFTSDFfQkEgfCAweEJBMDAwIC8qIEJTPTMyTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAgICAweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSICAgRkxBU0gwX0JBIHwgMHg5QTAwMCAvKiBCQVM9MHhGRjAsQlM9MTZNQixCVT1SL1csQlc9MTZiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUF9IV1JFVjggQ09ORklHX1NZU19FQkNfUEIwQVAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1JfSFdSRVY4IEZMQVNIMV9CQSB8IDB4QkEwMDAgLyogQlM9MzJNQiAqLwogCiAvKiBNZW1vcnkgQmFuayAxIChGbGFzaCBCYW5rIDEpIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAgICAweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IgICBGTEFTSDFfQkEgfCAweDlBMDAwIC8qIEJBUz0weEZFMCxCUz0xNk1CLEJVPVIvVyxCVz0xNmJpdCovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQICAgMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUiAgIEZMQVNIMV9CQSB8IDB4OUEwMDAgLyogQkFTPTB4RkUwLEJTPTE2TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KIAogLyogTWVtb3J5IEJhbmsgMiAoQ0FOMCwgMSwgUlRDLCBEdWFydCkgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQICAgMHgwMTAwNTNDMCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSICAgQ0FOX0JBIHwgMHgxODAwMCAgICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUCAgIDB4MDEwMDUzQzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IgICBDQU5fQkEgfCAweDE4MDAwICAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgICovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKENvbXBhY3RGbGFzaCBJREUsIEZQR0EgaW50ZXJuYWwpIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUCAgIDB4MDEwMDU5QzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUiAgIENGX0JBIHwgMHgxQTAwMCAgICAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAgICAweDAxMDA1OUMwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSICAgQ0ZfQkEgfCAweDFBMDAwICAgICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayA0IChQQ01DSUEgU2xvdCAxKSBpbml0aWFsaXphdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAgICAweDA1MDAwN0MwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IgICBQQ01DSUExX0JBIHwgMHhGQTAwMCAvKkJBUz0weDIwMCxCUz0xMjhNQixCVT1SL1csQlc9MTZiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUCAgIDB4MDUwMDA3QzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0Q1IgICBQQ01DSUExX0JBIHwgMHhGQTAwMCAvKkJBUz0weDIwMCxCUz0xMjhNQixCVT1SL1csQlc9MTZiaXQqLwogCiAvKiBNZW1vcnkgQmFuayA1IChFcHNvbiBWR0EpIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEI1QVAgICAweDAzODA1MzgwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0wICovCi0jZGVmaW5lIENGR19FQkNfUEI1Q1IgICBWR0FfQkEgfCAweDVBMDAwICAgIC8qIEJBUz0weEYxMCxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUFQICAgMHgwMzgwNTM4MCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVDUiAgIFZHQV9CQSB8IDB4NUEwMDAgICAgLyogQkFTPTB4RjEwLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgNiAoUENNQ0lBIFNsb3QgMikgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCNkFQICAgMHgwNTAwMDdDMCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCNkNSICAgUENNQ0lBMl9CQSB8IDB4RkEwMDAgLypCQVM9MHgyODAsQlM9MTI4TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI2QVAgICAweDA1MDAwN0MwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNkNSICAgUENNQ0lBMl9CQSB8IDB4RkEwMDAgLypCQVM9MHgyODAsQlM9MTI4TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KIAogLyoKICAqIEZQR0Egc3R1ZmYKICAqLwogCiAvKiBGUEdBIGludGVybmFsIHJlZ3MgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ1RSTCAgICAgICAgICAgMHgwMDgKLSNkZWZpbmUgQ0ZHX0ZQR0FfQ1RSTDIgICAgICAgICAgMHgwMGEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkwgICAgICAgICAgIDB4MDA4CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMMiAgICAgICAgICAweDAwYQogCiAvKiBGUEdBIENvbnRyb2wgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX0NUUkxfQ0ZfUkVTRVQgIDB4MDAwMQotI2RlZmluZSBDRkdfRlBHQV9DVFJMX1dESSAgICAgICAweDAwMDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfQ1RSTF9QUzJfUkVTRVQgMHgwMDIwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX0NGX1JFU0VUICAweDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkxfV0RJICAgICAgIDB4MDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9QUzJfUkVTRVQgMHgwMDIwCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1BBUlRBTjIgICAgICAgMSAgICAgICAgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTUFYX1NJWkUgICAgICAgODAqMTAyNCAgICAgLyogODBrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlM1MCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yICAgICAgIDEgICAgICAgICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSAgICAgICA4MCoxMDI0ICAgICAvKiA4MGtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzUwICAqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHICAgICAgICAgICAgMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ0xLICAgICAgICAgICAgMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfREFUQSAgICAgICAgICAgMHgwMTAwMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfSU5JVCAgICAgICAgICAgMHgwMDAxMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORSAgICAgICAgICAgMHgwMDAwODAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BSRyAgICAgICAgICAgIDB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsgICAgICAgICAgICAweDAyMDAwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfREFUQSAgICAgICAgICAgMHgwMTAwMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lOSVQgICAgICAgICAgIDB4MDAwMTAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9ET05FICAgICAgICAgICAweDAwMDA4MDAwICAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgICAqLwogCiAvKgogICogTENEIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0xDRF9CSUdfTUVNCQkoVkdBX0JBICsgMHgyMDAwMDApIC8qIFMxRDEzODA2IE1lbSBCYXNlICovCi0jZGVmaW5lIENGR19MQ0RfQklHX1JFRwkJVkdBX0JBIC8qIFMxRDEzODA2IFJlZyBCYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTENEX0JJR19NRU0JCShWR0FfQkEgKyAweDIwMDAwMCkgLyogUzFEMTM4MDYgTWVtIEJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQ0RfQklHX1JFRwkJVkdBX0JBIC8qIFMxRDEzODA2IFJlZyBCYXNlICovCiAKICNkZWZpbmUgQ09ORklHX0xDRF9CSUcJCTIgLyogRXBzb24gUzFEMTM4MDYgdXNlZCAqLwogCiAvKiBJbWFnZSBpbmZvcm1hdGlvbi4uLiAqLwogI2RlZmluZSBDT05GSUdfTENEX1VTRUQJCUNPTkZJR19MQ0RfQklHCiAKLSNkZWZpbmUgQ0ZHX0xDRF9NRU0JCUNGR19MQ0RfQklHX01FTQotI2RlZmluZSBDRkdfTENEX1JFRwkJQ0ZHX0xDRF9CSUdfUkVHCisjZGVmaW5lIENPTkZJR19TWVNfTENEX01FTQkJQ09ORklHX1NZU19MQ0RfQklHX01FTQorI2RlZmluZSBDT05GSUdfU1lTX0xDRF9SRUcJCUNPTkZJR19TWVNfTENEX0JJR19SRUcKIAotI2RlZmluZSBDRkdfVklERU9fTE9HT19NQVhfU0laRSAoMSA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19WSURFT19MT0dPX01BWF9TSVpFICgxIDw8IDIwKQogCiAvKgogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCiAKIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JMQogCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHJlc2VydmVkIGJ5dGVzIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOCAvKiByZXNlcnZlZCBieXRlcyBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIC8qIHJlc2VydmUgc29tZSBtZW1vcnkgZm9yIEJPT1QgbGltaXQgaW5mbyAqLwotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJKENGR19HQkxfREFUQV9PRkZTRVQgLSAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSAxNikKIAogI2lmZGVmIENPTkZJR19CT09UQ09VTlRfTElNSVQgLyogcmVzZXJ2ZSAyIHdvcmQgZm9yIGJvb3Rjb3VudCBsaW1pdCAqLwotI2RlZmluZSBDRkdfQk9PVENPVU5UX0FERFIgKENGR19HQkxfREFUQV9PRkZTRVQgLSA4KQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDT1VOVF9BRERSIChDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDgpCiAjZW5kaWYKIAogLyoKQEAgLTQzOSwxMCArNDM5LDEwIEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1VTQl9PSENJX05FVwkxCiAjZGVmaW5lIENPTkZJR19QQ0lfT0hDSQkJMQotI2RlZmluZSBDRkdfT0hDSV9TV0FQX1JFR19BQ0NFU1MgMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMgMTUKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkib2hjaV9wY2kiCisjZGVmaW5lIENPTkZJR19TWVNfT0hDSV9TV0FQX1JFR19BQ0NFU1MgMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTIDE1CisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCSJvaGNpX3BjaSIKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCTEKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX0JPQVJEX0lOSVQgMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQgMQogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0FSNDA1LmggYi9pbmNsdWRlL2NvbmZpZ3MvQVI0MDUuaAppbmRleCAxOGNhMTIyLi44NjQ3NzRjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQVI0MDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQVI0MDUuaApAQCAtNjUsNyArNjUsNyBAQAogI2RlZmluZSBDT05GSUdfUFJFQk9PVCAgICAgICAgICAgICAgICAgIC8qIGVuYWJsZSBwcmVib290IHZhcmlhYmxlICAgICAgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCTAJLyogUEhZIGFkZHJlc3MJCQkqLwpAQCAtMTAyLDM5ICsxMDIsMzkgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUJMSAgICAgICAvKiBhZGQgYXV0b2NvbXBsZXRpb24gc3VwcG9ydCAgICovCiAjZGVmaW5lIENPTkZJR19MT09QVyAgICAgICAgICAgIDEgICAgICAgLyogZW5hYmxlIGxvb3B3IGNvbW1hbmQgICAgICAgICAqLwogI2RlZmluZSBDT05GSUdfTVhfQ1lDTElDICAgICAgICAxICAgICAgIC8qIGVuYWJsZSBtZGMvbXdjIGNvbW1hbmRzICAgICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19FWFRfU0VSSUFMX0NMT0NLCTE0NzQ1NjAwIC8qIHVzZSBleHRlcm5hbCBzZXJpYWwgY2xvY2sJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCTE0NzQ1NjAwIC8qIHVzZSBleHRlcm5hbCBzZXJpYWwgY2xvY2sJKi8KIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogCkBAIC0xNTcsNTMgKzE1Nyw1MyBAQAogCiAjZGVmaW5lIENPTkZJR19QQ0lfQk9PVERFTEFZCTAJLyogZW5hYmxlIHBjaSBib290ZGVsYXkgdmFyaWFibGUqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDMJLyogUENJIERldmljZSBJRDogQVJJU1RPNDA1CSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ODAwMDAwMDEJLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4ZmZmMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCTB4ZmZmMDAwMDEJLyogMU1CLCBlbmFibGUJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDMJLyogUENJIERldmljZSBJRDogQVJJU1RPNDA1CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMJMHg4MDAwMDAwMQkvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmZjAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmYwMDAwMQkvKiAxTUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4RkZGQjAwMDAJLyogQWRkcmVzcyBvZiBFbnZpcm9ubWVudCBTZWN0b3IqLwpAQCAtMjI2LDM5ICsyMjYsMzkgQEAKICAqLwogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDApIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAxIChDQU4wLCAxLCAyLCAzKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHgwMTAwMDM4MCAgLyogZW5hYmxlIFJlYWR5LCBCRU09MAkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHgwMTAwMDM4MCAgLyogZW5hYmxlIFJlYWR5LCBCRU09MAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoRXhwZW5zaW9uIEJ1cykgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDEwMDAyODAgIC8qIGRpc2FibGUgUmVhZHksIEJFTT0wCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEYwMTE4MDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAxMDAwMjgwICAvKiBkaXNhYmxlIFJlYWR5LCBCRU09MAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4RjAxMTgwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMyAoMTY1NTIpIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMTAwMDM4MCAgLyogZW5hYmxlIFJlYWR5LCBCRU09MAkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJMHhGMDIxODAwMCAgLyogQkFTPTB4RjAyLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkJMHgwMTAwMDM4MCAgLyogZW5hYmxlIFJlYWR5LCBCRU09MAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCTB4RjAyMTgwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgNCAoRlBHQSByZWdzKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRBUAkJMHgwMTAwNTM4MCAgLyogZW5hYmxlIFJlYWR5LCBCRU09MAkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRDUgkJMHhGMDMxQzAwMCAgLyogQkFTPTB4RjAzLEJTPTFNQixCVT1SL1csQlc9MzJiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJCTB4MDEwMDUzODAgIC8qIGVuYWJsZSBSZWFkeSwgQkVNPTAJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNENSCQkweEYwMzFDMDAwICAvKiBCQVM9MHhGMDMsQlM9MU1CLEJVPVIvVyxCVz0zMmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayA1IChGbGFzaCBCYW5rIDEvRFVNTVkpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI1QVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjVDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1QVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1Q1IJCTB4RkY4NUEwMDAgIC8qIEJBUz0weEZGOCxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9EQ0FDSEVfQ1MJNwkvKiB1c2UgY3MgIyA3IGZvciBkYXRhIGNhY2hlIG1lbW9yeSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTCTcJLyogdXNlIGNzICMgNyBmb3IgZGF0YSBjYWNoZSBtZW1vcnkgICAgKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwICAvKiB1c2UgZGF0YSBjYWNoZQkJICAgICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIHVzZSBkYXRhIGNhY2hlCQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQVNINDA1LmggYi9pbmNsdWRlL2NvbmZpZ3MvQVNINDA1LmgKaW5kZXggOWIwOGFmNS4uYmNjODVlZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0FTSDQwNS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9BU0g0MDUuaApAQCAtNTEsNyArNTEsNyBAQAogI2RlZmluZSBDT05GSUdfUFJFQk9PVCAgICAgICAgICAgICAgICAgIC8qIGVuYWJsZSBwcmVib290IHZhcmlhYmxlICAgICAgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI3VuZGVmICBDT05GSUdfSEFTX0VUSDEKQEAgLTkyLDc0ICs5Miw3NCBAQAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCiAjZGVmaW5lIENPTkZJR19SVENfTUMxNDY4MTgJCS8qIERTMTY4NSBpcyBNQzE0NjgxOCBjb21wYXRpYmxlKi8KLSNkZWZpbmUgQ0ZHX1JUQ19SRUdfQkFTRV9BRERSCSAweEYwMDAwNTAwIC8qIFJUQyBCYXNlIEFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlRDX1JFR19CQVNFX0FERFIJIDB4RjAwMDA1MDAgLyogUlRDIEJhc2UgQWRkcmVzcwkJKi8KIAogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzAJMQkvKiBpbml0IG9uYm9hcmQgU0RSQU0gYmFuayAwCSovCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogI3VuZGVmCUNPTkZJR19VQVJUMV9DT05TT0xFCQkvKiBkZWZpbmUgZm9yIHVhcnQxIGFzIGNvbnNvbGUJKi8KIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogCiAjZGVmaW5lIENPTkZJR19WRVJTSU9OX1ZBUklBQkxFIDEJLyogaW5jbHVkZSB2ZXJzaW9uIGVudiB2YXJpYWJsZSAqLwogCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTE2CS8qIHVzZSAxNiByeCBidWZmZXIgb24gNDA1IGVtYWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTE2CS8qIHVzZSAxNiByeCBidWZmZXIgb24gNDA1IGVtYWMgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTkFORC1GTEFTSCBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7IENGR19OQU5EX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXsgQ09ORklHX1NZU19OQU5EX0JBU0UgfQogI2RlZmluZSBOQU5EX01BWF9DSElQUyAgICAgICAgICAxCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMSAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEgICAgICAgICAvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLwogI2RlZmluZSBOQU5EX0JJR19ERUxBWV9VUwkyNQogCi0jZGVmaW5lIENGR19OQU5EX0NFICAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDEpICAgLyogb3VyIENFIGlzIEdQSU8xICAqLwotI2RlZmluZSBDRkdfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQ0xFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMikgICAvKiBvdXIgQ0xFIGlzIEdQSU8yICovCi0jZGVmaW5lIENGR19OQU5EX0FMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDMpICAgLyogb3VyIEFMRSBpcyBHUElPMyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0UgICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMSkgICAvKiBvdXIgQ0UgaXMgR1BJTzEgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDIpICAgLyogb3VyIENMRSBpcyBHUElPMiAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUxFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMykgICAvKiBvdXIgQUxFIGlzIEdQSU8zICovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfU0tJUF9CQURfRE9UX0kgMSAgICAgICAvKiAiLmkiIHJlYWQgc2tpcHMgYmFkIGJsb2NrcyAgICovCi0jZGVmaW5lIENGR19OQU5EX1FVSUVUICAgICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NLSVBfQkFEX0RPVF9JIDEgICAgICAgLyogIi5pIiByZWFkIHNraXBzIGJhZCBibG9ja3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUVVJRVQgICAgICAgICAgMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE3Niw1OCArMTc2LDU4IEBACiAKICN1bmRlZglDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogcHJpbnQgcGNpIGRldmljZXMgQCBzdGFydHVwCSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNQkvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNQkqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEJMHhmZmMwMDAwMAkvKiBwb2ludCB0byBmbGFzaAkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNQkvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNpZiAwIC8qIHRlc3Qtb25seSAqLwotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfQkFOSwkwCSAgICAvKiB1c2UgZm9yIEpGRlMyICovCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJMQkgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyBVLUJvb3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCTAJICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJMQkgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyBVLUJvb3QgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzgsMjQgKzIzOCwyNCBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NzAwCS8qIDIwNDggYnl0ZXMgbWF5IGJlIHVzZWQgZm9yIGVudiB2YXJzKi8KIAkJCQkgICAvKiB0b3RhbCBzaXplIG9mIGEgQ0FUMjRXQzE2IGlzIDIwNDggYnl0ZXMgKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4RjAwMDA1MDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KIAkJCQkJLyogMTYgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0yNzAsMjEgKzI3MCwyMSBAQAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCwgTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKLS8qI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkgIDB4MDgwNTU4ODAgIC9YWFgqIFRXVD0xNixDU049MSxPRU49MSxXQk49MSxXQkY9MSxUSD00LFNPUj0xICovCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisvKiNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCSAgMHgwODA1NTg4MCAgL1hYWCogVFdUPTE2LENTTj0xLE9FTj0xLFdCTj0xLFdCRj0xLFRIPTQsU09SPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKEZsYXNoIEJhbmsgMSwgTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4RjQwMTgwMDAgIC8qIEJBUz0weEY0MCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4RjQwMTgwMDAgIC8qIEJBUz0weEY0MCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoOCBCaXQgUGVyaXBoZXJhbDogQ0FOLCBVQVJULCBSVEMpIGluaXRpYWxpemF0aW9uCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKDE2IEJpdCBQZXJpcGhlcmFsOiBGUEdBIGludGVybmFsLCBkaWcuIElPKSBpbml0aWFsaXphdGlvbgkqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJMHhGMDExQTAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJMHhGMDExQTAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogI2RlZmluZSBDQU5fQkEJCTB4RjAwMDAwMDAJICAgIC8qIENBTiBCYXNlIEFkZHJlc3MJCQkqLwogI2RlZmluZSBEVUFSVDBfQkEJMHhGMDAwMDQwMAkgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzCQkqLwpAQCAtMjkyLDM2ICsyOTIsMzYgQEAKICNkZWZpbmUgRFVBUlQyX0JBCTB4RjAwMDA0MTAJICAgIC8qIERVQVJUIEJhc2UgQWRkcmVzcwkJKi8KICNkZWZpbmUgRFVBUlQzX0JBCTB4RjAwMDA0MTgJICAgIC8qIERVQVJUIEJhc2UgQWRkcmVzcwkJKi8KICNkZWZpbmUgUlRDX0JBCQkweEYwMDAwNTAwCSAgICAvKiBSVEMgQmFzZSBBZGRyZXNzCQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkweEY0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCTB4RjQwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgogICovCi0jZGVmaW5lIENGR19GUEdBX1NQQVJUQU4yCTEJICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCi0jZGVmaW5lIENGR19GUEdBX01BWF9TSVpFCTEyOCoxMDI0ICAgIC8qIDEyOGtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzUwRSovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TUEFSVEFOMgkxCSAgICAvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdyAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUJMTI4KjEwMjQgICAgLyogMTI4a0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTNTBFKi8KIAogLyogRlBHQSBwcm9ncmFtIHBpbiBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ0xLCQkweDAyMDAwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9JTklUCQkweDAwMDEwMDAwICAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9ET05FCQkweDAwMDA4MDAwICAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ0xLCQkweDAyMDAwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9ET05FCQkweDAwMDA4MDAwICAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIGRhdGEgY2FjaGUpCiAgKi8KIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkgIDEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIEdQSU8gc2V0dXAgKFBQQzQwNUVQIHNwZWNpZmljKQpAQCAtMzM1LDE1ICszMzUsMTUgQEAKICAqIEdQSU8wWzI4LTI5XSAtIFVBUlQxIGRhdGEgc2lnbmFsIGlucHV0L291dHB1dAogICogR1BJTzBbMzAtMzFdIC0gRU1BQzAgYW5kIEVNQUMxIHJlamVjdCBwYWNrZXQgaW5wdXRzCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkgJCTB4NDAwMDA1NTAKLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9JU1IxTAkJMHgxNTU1NTQ0NQotI2RlZmluZSBDRkdfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVENSCQkweEY3RkUwMDE0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSSAkJMHg0MDAwMDU1MAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFMCQkweDE1NTU1NDQ1CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UQ1IJCTB4RjdGRTAwMTQKIAotI2RlZmluZSBDRkdfRFVBUlRfUlNUCQkoMHg4MDAwMDAwMCA+PiAxNCkKKyNkZWZpbmUgQ09ORklHX1NZU19EVUFSVF9SU1QJCSgweDgwMDAwMDAwID4+IDE0KQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9BVFVNODU0OC5oIGIvaW5jbHVkZS9jb25maWdzL0FUVU04NTQ4LmgKaW5kZXggOGVmZWEwMC4uMjQ1MGFkYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0FUVU04NTQ4LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0FUVU04NTQ4LmgKQEAgLTc5LDIzICs3OSwyMyBAQAogCiAjZGVmaW5lIENPTkZJR19DTURfU0RSQU0JCTEJLyogU0RSQU0gRElNTSBTUEQgaW5mbyBwcmludG91dCAqLwogI2RlZmluZSBDT05GSUdfRU5BQkxFXzM2QklUX1BIWVMJMQotI3VuZGVmCUNGR19EUkFNX1RFU1QKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAorI3VuZGVmCUNPTkZJR19TWVNfRFJBTV9URVNUCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAogCiAvKgogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCi0jZGVmaW5lIENGR19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUiAqLwogCiAjZGVmaW5lIFBDSV9TUEVFRAkJMzMzMzMwMDAgICAgICAgIC8qIENQTEQgY3VycmVubHR5IGRvZXMgbm90IGhhdmUgUENJIHNldHVwIGluZm8gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfQUREUgkoQ0ZHX0NDU1JCQVIrMHg4MDAwKQotI2RlZmluZSBDRkdfUENJMl9BRERSCShDRkdfQ0NTUkJBUisweDkwMDApCi0jZGVmaW5lIENGR19QQ0lFMV9BRERSCShDRkdfQ0NTUkJBUisweGEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9BRERSCShDT05GSUdfU1lTX0NDU1JCQVIrMHg4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfQUREUgkoQ09ORklHX1NZU19DQ1NSQkFSKzB4OTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9BRERSCShDT05GSUdfU1lTX0NDU1JCQVIrMHhhMDAwKQogCiAvKiBERFIgU2V0dXAgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9ERFIyCkBAIC0xMDcsOCArMTA3LDggQEAKICNkZWZpbmUgQ09ORklHX0VDQ19JTklUX1ZJQV9ERFJDT05UUk9MTEVSCS8qIEREUiBjb250cm9sbGVyIG9yIERNQT8gKi8KICNkZWZpbmUgQ09ORklHX01FTV9JTklUX1ZBTFVFCTB4RGVhZEJlZWYKIAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKQEAgLTExOSwxNSArMTE5LDE1IEBACiAjZGVmaW5lIFNQRF9FRVBST01fQUREUkVTUwkweDUxCS8qIENUTFIgMCBESU1NIDAgKi8KIAogLyogTWFudWFsbHkgc2V0IHVwIEREUiBwYXJhbWV0ZXJzICovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCTEwMjQJCS8qIEREUiBpcyAxMDI0TUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkweDAwMDAwMDBmCS8qIDAtMTAyNCAqLwotI2RlZmluZSBDRkdfRERSX0NTMF9DT05GSUcJMHg4MDAwMDEwMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18wCTB4MDAyNjA4MDIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMQkweDM4MzU1MzIyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzIJMHgwMzkwNDhjNwotI2RlZmluZSBDRkdfRERSX0NPTlRST0wJMHhjMjAwMDAwMAkvKiB1bmJ1ZmZlcmVkLG5vIERZTl9QV1IgKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCTB4MDAwMDA0MzIKLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkweDA1MTUwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkxMDI0CQkvKiBERFIgaXMgMTAyNE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9CTkRTCTB4MDAwMDAwMGYJLyogMC0xMDI0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9DT05GSUcJMHg4MDAwMDEwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMAkweDAwMjYwODAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4MzgzNTUzMjIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgwMzkwNDhjNworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05UUk9MCTB4YzIwMDAwMDAJLyogdW5idWZmZXJlZCxubyBEWU5fUFdSICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJMHgwMDAwMDQzMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkweDA1MTUwMTAwCiAjZGVmaW5lIEREUl9TRFJBTV9DRkcJMHg0MzAwMDAwMAogCiAjdW5kZWYgQ09ORklHX0NMT0NLU19JTl9NSFoKQEAgLTE2NCw2MyArMTY0LDYzIEBACiAgKiAxMTExIDEwMDAgMDAwMCAwMDAwIDAwMDAgMTExMCAwMTEwIDAxMDEgPSBmODAwMEU2NSAgICBPUngKICAqLwogCi0jZGVmaW5lIENGR19CT09UX0JMT0NLCQkweGY4MDAwMDAwCS8qIGJvb3QgVExCIGJsb2NrICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfQk9PVF9CTE9DSwkvKiBzdGFydCBvZiBGTEFTSCAxMjhNICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9CTE9DSwkJMHhmODAwMDAwMAkvKiBib290IFRMQiBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfQk9PVF9CTE9DSwkvKiBzdGFydCBvZiBGTEFTSCAxMjhNICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCTB4ZjgwMDEwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweGY4MDAxMDAxCiAKLSNkZWZpbmUJQ0ZHX09SMF9QUkVMSU0JCTB4ZjgwMDBFNjUKKyNkZWZpbmUJQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGY4MDAwRTY1CiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEwMjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLwotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk1MTIwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTgwMDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEwMjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTUxMjAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTgwMDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCiAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIgICAgMQotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJICAgICAgICAgICAxCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJICAgICAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCiAvKgogICogRmxhc2ggb24gdGhlIExvY2FsQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19DQUNIRV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgY2FjaGVhYmxlCSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19DQUNIRV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgY2FjaGVhYmxlCSAqLwogCiAvKiBNZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19JTklUX0wyX0FERFIJMHhmOGY4MDAwMAkvKiByZWxvY2F0ZSBib290IEwyU1JBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfTDJfQUREUgkweGY4ZjgwMDAwCS8qIHJlbG9jYXRlIGJvb3QgTDJTUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19DQ1NSQkFSKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwpAQCAtMjMzLDQxICsyMzMsNDEgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMJCS8qIFVzZSBGU0wgY29tbW9uIEkyQyBkcml2ZXIgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0Ki8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDU3Ci0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDU3CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIE1lbW9yeSBzcGFjZSBpcyBtYXBwZWQgMS0xLCBidXQgSS9PIHNwYWNlIG11c3Qgc3RhcnQgZnJvbSAwLgogICovCi0jZGVmaW5lIENGR19QQ0lfUEhZUwkJMHg4MDAwMDAwMAkvKiAxRyBQQ0kgVExCICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BIWVMJCTB4ODAwMDAwMDAJLyogMUcgUENJIFRMQiAqLwogCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCTB4ZTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCTB4ZTIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLwogCiAjaWZkZWYgQ09ORklHX1BDSTIKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX0JBU0UJMHhDMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9NRU1fUEhZUwlDRkdfUENJMl9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMl9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kyX0lPX1BIWVMJMHhlMjgwMDAwMAotI2RlZmluZSBDRkdfUENJMl9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFCTB4QzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMl9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMJMHhlMjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19QQ0lFMQotI2RlZmluZSBDRkdfUENJRTFfTUVNX0JBU0UJMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfTUVNX1BIWVMJQ0ZHX1BDSUUxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfSU9fUEhZUwkweGUzMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogICAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFCTB4YTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfSU9fUEhZUwkweGUzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfSU9fU0laRQkweDAwMTAwMDAwCS8qICAgMU0gKi8KICNlbmRpZgogCiAKQEAgLTI4OCw5ICsyODgsOSBAQAogI3VuZGVmIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KIAogLyogUENJIHZpZXcgb2YgU3lzdGVtIE1lbW9yeSAqLwotI2RlZmluZSBDRkdfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9QSFlTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfU0laRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFCTB4ODAwMDAwMDAKIAogI2VuZGlmCS8qIENPTkZJR19QQ0kgKi8KIApAQCAtMzM0LDEyICszMzQsMTIgQEAKICAqIEVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDB4NDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogMjU2SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTM2OSwyNSArMzY5LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0FkZGVyLmggYi9pbmNsdWRlL2NvbmZpZ3MvQWRkZXIuaAppbmRleCBmY2FjNjQ3Li5lNGQzMGExIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQWRkZXIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQWRkZXIuaApAQCAtNDEsMTggKzQxLDE4IEBACiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQogCiAjaWYgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkVDMSkgfHwgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkVDMikKLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2RlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKICNkZWZpbmUgRkVDX0VORVQKICNlbmRpZiAvKiBDT05GSUdfRVRIRVJfT05fRkVDIHx8IENPTkZJR19FVEhFUl9PTl9GRUMyICovCiAKICNkZWZpbmUgQ09ORklHXzh4eF9PU0NMSwkJMTAwMDAwMDAgLyogMTAgTUh6IG9zY2lsbGF0b3Igb24gRVhUQ0xLICovCiAjZGVmaW5lIENPTkZJR184eHhfQ1BVQ0xLX0RFRkFVTFQJNTAwMDAwMDAKLSNkZWZpbmUgQ0ZHXzh4eF9DUFVDTEtfTUlOCQk0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUlOCQk0MDAwMDAwMAogI2lmZGVmIENPTkZJR19NUEM4NTJUCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01BWAkJNTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU184eHhfQ1BVQ0xLX01BWAkJNTAwMDAwMDAKICNlbHNlCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01BWAkJMTMzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfOHh4X0NQVUNMS19NQVgJCTEzMzAwMDAwMAogI2VuZGlmIC8qIENPTkZJR19NUEM4NTJUICovCiAKIApAQCAtODYsMjggKzg2LDI4IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogI3VuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KSAgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBNYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogI3VuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikgIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIE1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDQwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4NDAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIERlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIERlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogUkFNIGNvbmZpZ3VyYXRpb24gKG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBtdXN0IGJlIHplcm8pCisgKiBSQU0gY29uZmlndXJhdGlvbiAobm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBtdXN0IGJlIHplcm8pCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX01BWF9TSVpFCTB4MDEwMDAwMDAJLyogVXAgdG8gMTYgTWJ5dGUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX01BWF9TSVpFCTB4MDEwMDAwMDAJLyogVXAgdG8gMTYgTWJ5dGUJCSovCiAKLSNkZWZpbmUgQ0ZHX01BTVIJCTB4MDAwMDIxMTQKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SCQkweDAwMDAyMTE0CiAKIC8qCiAgKiA0MDk2CVVwIHRvIDQwOTYgU0RSQU0gcm93cwpAQCAtMTE2LDk2ICsxMTYsOTYgQEAKICAqIDQJTnVtYmVyIG9mIHJlZnJlc2ggY3ljbGVzIHBlciBwZXJpb2QKICAqIDY0CVJlZnJlc2ggY3ljbGUgaW4gbXMgcGVyIG51bWJlciBvZiByb3dzCiAgKi8KLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCQkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDUwMDAwMAkvKiAxIC4uLiA1IE1CIGluIFNEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNTAwMDAwCS8qIDEgLi4uIDUgTUIgaW4gU0RSQU0JCSovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHgwOTkwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHgwOTkwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIE1vbml0b3IgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIE1vbml0b3IgICAqLwogI2lmZGVmIENPTkZJR19CWklQMgotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1MDAgPDwgMTApCS8qIFJlc2VydmUgfjIuNSBNQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjUwMCA8PCAxMCkJLyogUmVzZXJ2ZSB+Mi41IE1CIGZvciBtYWxsb2MoKSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IEtCIGZvciBtYWxsb2MoKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBLQiBmb3IgbWFsbG9jKCkgICovCiAjZW5kaWYgLyogQ09ORklHX0JaSVAyICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZsYXNoIG9yZ2FuaXNhdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlciAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIE1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogTWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCiAvKiBFbnZpcm9ubWVudCBpcyBpbiBmbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAJCS8qIFdlIHVzZSBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweEZGMDAwNzc0Ci0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoQ0ZHX0ZMQVNIX0JBU0UgfCBCUl9QU18xNiB8IEJSX01TX0dQQ00gfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4RkYwMDA3NzQKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQlJfUFNfMTYgfCBCUl9NU19HUENNIHwgQlJfVikKIAotI2RlZmluZQlDRkdfRElSRUNUX0ZMQVNIX1RGVFAKKyNkZWZpbmUJQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXJzCiAgKi8KICNpZmRlZiBDT05GSUdfV0FUQ0hET0cKLSNkZWZpbmUgQ0ZHX1NZUENSCQkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FICB8IFwKIAkJCQkgU1lQQ1JfU1dGICB8IFNZUENSX1NXRSB8IFNZUENSX1NXUkkgfCBcCiAJCQkJIFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCQkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSAgfCBcCiAJCQkJIFNZUENSX1NXRiAgfCBTWVBDUl9TV1ApCiAjZW5kaWYgLyogQ09ORklHX1dBVENIRE9HICovCiAKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkJKFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfREJHQzExKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkJKFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfREJHQzExKQogCiAvKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCQkoVEJTQ1JfVEJGIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCQkoVEJTQ1JfVEJGIHwgVEJTQ1JfVEJFKQogCiAvKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCQkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCQkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIgKi8KLS8qICNkZWZpbmUgQ0ZHX1BMUFJDUgkJUExQUkNSX1RFWFBTICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCQlQTFBSQ1JfVEVYUFMgKi8KIAogLyogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlciAqLwogI2RlZmluZSBTQ0NSX01BU0sJCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCQlTQ0NSX1JUU0VMCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkJU0NDUl9SVFNFTAogCi0jZGVmaW5lIENGR19ERVIJCQkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCQkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IGNoaXBzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBjaGlwcwkJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQWRkZXJVU0IuaCBiL2luY2x1ZGUvY29uZmlncy9BZGRlclVTQi5oCmluZGV4IGE0ZjdmOWEuLmU0YzFjOWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9BZGRlclVTQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9BZGRlclVTQi5oCkBAIC0zMSw5ICszMSw5IEBACiAKICNkZWZpbmUgQ09ORklHX1VTQl9ERVZJQ0UJCS8qIEluY2x1ZGUgVURDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfVVNCX1RUWQkJCS8qIEJpbmQgdGhlIFRUWSBkcml2ZXIgdG8gVURDICovCi0jZGVmaW5lIENGR19VU0JfRVhUQ19DTEsgMHgwMgkJLyogT3NjaWxsYXRvciBvbiBFWFRDX0NMSyAyICovCi0jZGVmaW5lIENGR19VU0JfQlJHX0NMSwkweDA0CQkvKiBvciB1c2UgQmF1ZCByYXRlIGdlbmVyYXRvciAweDA0ICovCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgkJLyogQ29uc29sZSBpcyBpbiBlbnYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfRVhUQ19DTEsgMHgwMgkJLyogT3NjaWxsYXRvciBvbiBFWFRDX0NMSyAyICovCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0JSR19DTEsJMHgwNAkJLyogb3IgdXNlIEJhdWQgcmF0ZSBnZW5lcmF0b3IgMHgwNCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCQkvKiBDb25zb2xlIGlzIGluIGVudiAqLwogCiAvKiBJZiB5b3UgaGF2ZSBhIFVTQi1JRiBhc3NpZ25lZCBWZW5kb3JJRCB0aGVuIHlvdSBtYXkgd2lzaCB0byBkZWZpbmUKICAqIHlvdXIgb3duIHZlbmRvciBzcGVjaWZpYyB2YWx1ZXMgZWl0aGVyIGluIEJvYXJkTmFtZS5oIG9yIGRpcmVjdGx5IGluCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQWxhc2thODIyMC5oIGIvaW5jbHVkZS9jb25maWdzL0FsYXNrYTgyMjAuaAppbmRleCA0MzFlZDRlLi4yNTgxZmRmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQWxhc2thODIyMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9BbGFza2E4MjIwLmgKQEAgLTM1LDggKzM1LDggQEAKIAogLyogSW5wdXQgY2xvY2sgcnVubmluZyBhdCAzME1oeiwgcmVhZCBIaWQxIGZvciB0aGUgQ1BVIG11bHRpcGxpZXIgdG8KICAgIGRldGVybWluZSB0aGUgQ1BVIHNwZWVkLiAqLwotI2RlZmluZSBDRkdfTVBDODIyMF9DTEtJTgkzMDAwMDAwMC8qIC4uLiBydW5uaW5nIGF0IDMwTUh6ICovCi0jZGVmaW5lIENGR19NUEM4MjIwX1NZU1BMTF9WQ09fTVVMVElQTElFUiAxNiAvKiBWQ08gbXVsdGlwbGllciBjYW4ndCBiZSByZWFkIGZyb20gYW55IHJlZ2lzdGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODIyMF9DTEtJTgkzMDAwMDAwMC8qIC4uLiBydW5uaW5nIGF0IDMwTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODIyMF9TWVNQTExfVkNPX01VTFRJUExJRVIgMTYgLyogVkNPIG11bHRpcGxpZXIgY2FuJ3QgYmUgcmVhZCBmcm9tIGFueSByZWdpc3RlciAqLwogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QJKi8KQEAgLTUzLDE2ICs1MywxNiBAQAogCiAjaWZkZWYgQ09ORklHX0VYVFVBUlRfQ09OU09MRQogIyAgIGRlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCi0jICAgZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotIyAgIGRlZmluZSBDRkdfTlMxNjU1MAotIyAgIGRlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRSAxCi0jICAgZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19DUExEX0JBU0UgKyAweDEwMDgpCi0jICAgZGVmaW5lIENGR19OUzE2NTUwX0NMSwkxODQzMjAwMAorIyAgIGRlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjICAgZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorIyAgIGRlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUgMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19DUExEX0JBU0UgKyAweDEwMDgpCisjICAgZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJMTg0MzIwMDAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCSAgICAvKiAuLi4gYXQgMTE1MjAwIGJwcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogI2RlZmluZSBDT05GSUdfVElNRVNUQU1QCQkJLyogUHJpbnQgaW1hZ2UgaW5mbyB3aXRoIHRpbWVzdGFtcCAqLwogCkBAIC0xMjAsMTA0ICsxMjAsMTA0IEBACiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJCTEKIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUyCS8qIDEwMTEwMDB4YiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MgkvKiAxMDExMDAweGIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNzAKIC8qCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkyNTYKICovCiAKLS8qIElmIENGR19BTURfQk9PVCBpcyBkZWZpbmVkLCB0aGUgdGhlIHN5c3RlbSB3aWxsIGJvb3QgZnJvbSBBTUQuCisvKiBJZiBDT05GSUdfU1lTX0FNRF9CT09UIGlzIGRlZmluZWQsIHRoZSB0aGUgc3lzdGVtIHdpbGwgYm9vdCBmcm9tIEFNRC4KICAgIGVsc2UgdW5kZWZpbmVkIGl0IHdpbGwgYm9vdCBmcm9tIEludGVsIFN0cmF0YSBmbGFzaCAqLwotI2RlZmluZSBDRkdfQU1EX0JPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19BTURfQk9PVAkJMQogCiAvKgogICogRmxleGJ1cyBDaGlwc2VsZWN0IGNvbmZpZ3VyYXRpb24KICAqLwotI2lmIGRlZmluZWQgKENGR19BTURfQk9PVCkKLSNkZWZpbmUgQ0ZHX0NTMF9CQVNFCQkweGZmZjAKLSNkZWZpbmUgQ0ZHX0NTMF9NQVNLCQkweDAwMDgwMDAwICAvKiA1MTIgS0IgKi8KLSNkZWZpbmUgQ0ZHX0NTMF9DVFJMCQkweDAwM2YwZDQwCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19BTURfQk9PVCkKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQkFTRQkJMHhmZmYwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX01BU0sJCTB4MDAwODAwMDAgIC8qIDUxMiBLQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMF9DVFJMCQkweDAwM2YwZDQwCiAKLSNkZWZpbmUgQ0ZHX0NTMV9CQVNFCQkweGZlMDAKLSNkZWZpbmUgQ0ZHX0NTMV9NQVNLCQkweDAxMDAwMDAwICAvKiAxNiBNQiAqLwotI2RlZmluZSBDRkdfQ1MxX0NUUkwJCTB4MDAzZjE1NDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQkFTRQkJMHhmZTAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX01BU0sJCTB4MDEwMDAwMDAgIC8qIDE2IE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NUUkwJCTB4MDAzZjE1NDAKICNlbHNlCi0jZGVmaW5lIENGR19DUzBfQkFTRQkJMHhmZjAwCi0jZGVmaW5lIENGR19DUzBfTUFTSwkJMHgwMTAwMDAwMCAgLyogMTYgTUIgKi8KLSNkZWZpbmUgQ0ZHX0NTMF9DVFJMCQkweDAwM2YxNTQwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0JBU0UJCTB4ZmYwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9NQVNLCQkweDAxMDAwMDAwICAvKiAxNiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMF9DVFJMCQkweDAwM2YxNTQwCiAKLSNkZWZpbmUgQ0ZHX0NTMV9CQVNFCQkweGZlMDgKLSNkZWZpbmUgQ0ZHX0NTMV9NQVNLCQkweDAwMDgwMDAwICAvKiA1MTIgS0IgKi8KLSNkZWZpbmUgQ0ZHX0NTMV9DVFJMCQkweDAwM2YwZDQwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0JBU0UJCTB4ZmUwOAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9NQVNLCQkweDAwMDgwMDAwICAvKiA1MTIgS0IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ1RSTAkJMHgwMDNmMGQ0MAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0NTMl9CQVNFCQkweGYxMDAKLSNkZWZpbmUgQ0ZHX0NTMl9NQVNLCQkweDAwMDQwMDAwCi0jZGVmaW5lIENGR19DUzJfQ1RSTAkJMHgwMDNmMTE0MAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9CQVNFCQkweGYxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfTUFTSwkJMHgwMDA0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9DVFJMCQkweDAwM2YxMTQwCiAKLSNkZWZpbmUgQ0ZHX0NTM19CQVNFCQkweGYyMDAKLSNkZWZpbmUgQ0ZHX0NTM19NQVNLCQkweDAwMDQwMDAwCi0jZGVmaW5lIENGR19DUzNfQ1RSTAkJMHgwMDNmMTEwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19CQVNFCQkweGYyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfTUFTSwkJMHgwMDA0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19DVFJMCQkweDAwM2YxMTAwCiAKIAotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UJCShDRkdfQ1MwX0JBU0UgPDwgMTYpCi0jZGVmaW5lIENGR19GTEFTSDFfQkFTRQkJKENGR19DUzFfQkFTRSA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRQkJKENPTkZJR19TWVNfQ1MwX0JBU0UgPDwgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX0JBU0UJCShDT05GSUdfU1lTX0NTMV9CQVNFIDw8IDE2KQogCi0jaWYgZGVmaW5lZCAoQ0ZHX0FNRF9CT09UKQotI2RlZmluZSBDRkdfQU1EX0JBU0UJCUNGR19GTEFTSDBfQkFTRQotI2RlZmluZSBDRkdfSU5URUxfQkFTRQkJQ0ZHX0ZMQVNIMV9CQVNFICsgMHhmMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19BTURfQkFTRQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfQU1EX0JPT1QpCisjZGVmaW5lIENPTkZJR19TWVNfQU1EX0JBU0UJCUNPTkZJR19TWVNfRkxBU0gwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRFTF9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIMV9CQVNFICsgMHhmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0FNRF9CQVNFCiAjZWxzZQotI2RlZmluZSBDRkdfSU5URUxfQkFTRQkJQ0ZHX0ZMQVNIMF9CQVNFICsgMHhmMDAwMDAKLSNkZWZpbmUgQ0ZHX0FNRF9CQVNFCQlDRkdfRkxBU0gxX0JBU0UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19JTlRFTF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5URUxfQkFTRQkJQ09ORklHX1NZU19GTEFTSDBfQkFTRSArIDB4ZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQU1EX0JBU0UJCUNPTkZJR19TWVNfRkxBU0gxX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0lOVEVMX0JBU0UKICNlbmRpZgogCi0jZGVmaW5lIENGR19DUExEX0JBU0UJCShDRkdfQ1MyX0JBU0UgPDwgMTYpCi0jZGVmaW5lIENGR19GUEdBX0JBU0UJCShDRkdfQ1MzX0JBU0UgPDwgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfQ1BMRF9CQVNFCQkoQ09ORklHX1NZU19DUzJfQkFTRSA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0UJCShDT05GSUdfU1lTX0NTM19CQVNFIDw8IDE2KQogCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwk0CS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwk0CS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0xPQ0tfVE9VVAk1CS8qIFRpbWVvdXQgZm9yIEZsYXNoIFNldCBMb2NrIEJpdCAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9VTkxPQ0tfVE9VVAkxMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBDbGVhciBMb2NrIEJpdHMgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkJLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVAkxMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBDbGVhciBMb2NrIEJpdHMgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLwogCiAjZGVmaW5lIFBIWVNfQU1EX1NFQ1RfU0laRQkweDAwMDEwMDAwIC8qICA2NCBLQiBzZWN0b3JzICh4MikgKi8KICNkZWZpbmUgUEhZU19JTlRFTF9TRUNUX1NJWkUJMHgwMDAyMDAwMCAvKiAxMjggS0Igc2VjdG9ycyAoeDIpICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2lmIGRlZmluZWQgKENGR19BTURfQk9PVCkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIMF9CQVNFICsgQ0ZHX0NTMF9NQVNLIC0gUEhZU19BTURfU0VDVF9TSVpFKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfQU1EX0JPT1QpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0gwX0JBU0UgKyBDT05GSUdfU1lTX0NTMF9NQVNLIC0gUEhZU19BTURfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCVBIWVNfQU1EX1NFQ1RfU0laRQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQlQSFlTX0FNRF9TRUNUX1NJWkUKLSNkZWZpbmUgQ09ORklHX0VOVjFfQUREUgkJKENGR19GTEFTSDFfQkFTRSArIENGR19DUzFfTUFTSyAtIFBIWVNfSU5URUxfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WMV9BRERSCQkoQ09ORklHX1NZU19GTEFTSDFfQkFTRSArIENPTkZJR19TWVNfQ1MxX01BU0sgLSBQSFlTX0lOVEVMX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVjFfU0laRQkJUEhZU19JTlRFTF9TRUNUX1NJWkUKICNkZWZpbmUgQ09ORklHX0VOVjFfU0VDVF9TSVpFCVBIWVNfSU5URUxfU0VDVF9TSVpFCiAjZWxzZQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0gwX0JBU0UgKyBDRkdfQ1MwX01BU0sgLSBQSFlTX0lOVEVMX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSDBfQkFTRSArIENPTkZJR19TWVNfQ1MwX01BU0sgLSBQSFlTX0lOVEVMX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlQSFlTX0lOVEVMX1NFQ1RfU0laRQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQlQSFlTX0lOVEVMX1NFQ1RfU0laRQotI2RlZmluZSBDT05GSUdfRU5WMV9BRERSCQkoQ0ZHX0ZMQVNIMV9CQVNFICsgQ0ZHX0NTMV9NQVNLIC0gUEhZU19BTURfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WMV9BRERSCQkoQ09ORklHX1NZU19GTEFTSDFfQkFTRSArIENPTkZJR19TWVNfQ1MxX01BU0sgLSBQSFlTX0FNRF9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlYxX1NJWkUJCVBIWVNfQU1EX1NFQ1RfU0laRQogI2RlZmluZSBDT05GSUdfRU5WMV9TRUNUX1NJWkUJUEhZU19BTURfU0VDVF9TSVpFCiAjZW5kaWYKQEAgLTIzOCwzNyArMjM4LDM3IEBACiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19NQkFSCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfU1JBTV9CQVNFCQkoQ0ZHX01CQVIgKyAweDIwMDAwKQotI2RlZmluZSBDRkdfU1JBTV9TSVpFCQkweDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1JBTV9CQVNFCQkoQ09ORklHX1NZU19NQkFSICsgMHgyMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX1NJWkUJCTB4ODAwMAogCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJKENGR19NQkFSICsgMHgyMDAwMCkKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDgwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJKENPTkZJR19TWVNfTUJBUiArIDB4MjAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qIFNEUkFNIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1RPVEFMX0JBTktTCQkyCi0jZGVmaW5lIENGR19TRFJBTV9TUERfSTJDX0FERFIJCTB4NTEJCS8qIDdiaXQgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NQRF9TSVpFCQkweDQwCi0jZGVmaW5lIENGR19TRFJBTV9DQVNfTEFURU5DWQkJNAkJLyogKENMPTIpeDIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9UT1RBTF9CQU5LUwkJMgorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NQRF9JMkNfQUREUgkJMHg1MQkJLyogN2JpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NQRF9TSVpFCQkweDQwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ0FTX0xBVEVOQ1kJCTQJCS8qIChDTD0yKXgyICovCiAKIC8qIFNEUkFNIGRyaXZlIHN0cmVuZ3RoIHJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19TRFJBTV9EUklWRV9TVFJFTkdUSAkoKERSSVZFX1NUUkVOR1RIX0xPVyAgPDwgU0RSQU1EU19TQkVfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0RSSVZFX1NUUkVOR1RICSgoRFJJVkVfU1RSRU5HVEhfTE9XICA8PCBTRFJBTURTX1NCRV9TSElGVCkgfCBcCiAJCQkJCSAoRFJJVkVfU1RSRU5HVEhfSElHSCA8PCBTRFJBTURTX1NCQ19TSElGVCkgfCBcCiAJCQkJCSAoRFJJVkVfU1RSRU5HVEhfTE9XICA8PCBTRFJBTURTX1NCQV9TSElGVCkgfCBcCiAJCQkJCSAoRFJJVkVfU1RSRU5HVEhfT0ZGICA8PCBTRFJBTURTX1NCU19TSElGVCkgfCBcCkBAIC0yODUsMzQgKzI4NSwzNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkgICAgLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJICAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJICAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwICAvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMCAgLyogMSAuLi4gMTUgTUIgaW4gRFJBTSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMCAgLyogMSAuLi4gMTUgTUIgaW4gRFJBTSAgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMCAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCSAgICAvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCSAgICAvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjIwIENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODIyMCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1ICAgLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1ICAgLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKIAogLyoKICAqIEpGRlMyIHBhcnRpdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9BbWlnYU9uZUczU0UuaCBiL2luY2x1ZGUvY29uZmlncy9BbWlnYU9uZUczU0UuaAppbmRleCBhNmU5MjI4Li5iNzFkYTFmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQW1pZ2FPbmVHM1NFLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0FtaWdhT25lRzNTRS5oCkBAIC01MCw3ICs1MCw3IEBACiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgkJLyogY2xvY2tzIHBhc3NlZCB0byBMaW51eCBpbiBIeiAqLwogCkBAIC0xMDAsNTIgKzEwMCw1MiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiXSAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIl0gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0vKiAjdW5kZWYgQ0ZHX0hVU0hfUEFSU0VSICovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKy8qICN1bmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSICovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogCiAvKiBQcmludCBCdWZmZXIgU2l6ZQogICovCi0jZGVmaW5lIENGR19QQlNJWkUJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQogCi0jZGVmaW5lIENGR19NQVhBUkdTCTY0CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgwMDUwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTY0CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgwMDUwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJICAgIDB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX01BWF9TSVpFICAweDAwMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgIDB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9NQVhfU0laRSAgMHgwMDA4MDAwMAogLyogTWF4aW11bSBhbW91bnQgb2YgUkFNLgogICovCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUgICAgMHg4MDAwMDAwMAkvKiAyRwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFICAgIDB4ODAwMDAwMDAJLyogMkcJCQkqLwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgICAweEZGRjAwMTAwCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSAgICAoNzY4IDw8IDEwKSAvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKDI1MDAgPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCSAgICAoNzY4IDw8IDEwKSAvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgICgyNTAwIDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX1NEUkFNX0JBU0UgJiYgXAotICAgIENGR19NT05JVE9SX0JBU0UgPCBDRkdfU0RSQU1fQkFTRSArIENGR19NQVhfUkFNX1NJWkUKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiYgXAorICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19TRFJBTV9CQVNFICsgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmIENGR19SQU1CT09UCisjdW5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhCkBAIC0xNTQsODggKzE1NCw4OCBAQAogLyogU2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhCiAgKi8KIC8qIEhKRjogdXNlZCB0byBiZSAweDQwMDAwMCAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg4MDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwogCiAvKgogICogVGVtcG9yYXJ5IGJ1ZmZlciBmb3Igc2VyaWFsIGRhdGEgdW50aWwgdGhlIHJlYWwgc2VyaWFsIGRyaXZlcgogICogaXMgaW5pdGlhbGlzZWQgKG1lbXRlc3Qgd2lsbCBkZXN0cm95IHRoaXMgYnVmZmVyKQogICovCi0jZGVmaW5lIENGR19TQ09OU09MRV9BRERSICAgICBDRkdfSU5JVF9SQU1fQUREUgotI2RlZmluZSBDRkdfU0NPTlNPTEVfU0laRSAgICAgMHgwMDAyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0NPTlNPTEVfQUREUiAgICAgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfU0NPTlNPTEVfU0laRSAgICAgMHgwMDAyMDAwCiAKIC8qIFNEUkFNIDAgLSAyNTZNQgogICovCiAKLS8qSEpGOiAjZGVmaW5lIENGR19JQkFUMEwgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDBVIChDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfNE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19EQkFUMFUgQ0ZHX0lCQVQwVSovCisvKkhKRjogI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVSAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF80TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSBDT05GSUdfU1lTX0lCQVQwVSovCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTAkgICAgICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19EQkFUMFUJICAgICAgKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMEwgICAgICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUgICAgICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJICAgICAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJICAgICAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAgICAgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVICAgICAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogLyogUENJIFJhbmdlCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQxTAkgKDB4ODAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDFVCSAoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDFMCSAoMHg4MDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkgKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJICgweDgwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCSAoMHg4MDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAvKiBISkY6Ci0jZGVmaW5lIENGR19JQkFUMUwgKChDRkdfU0RSQU1fQkFTRStDRkdfSU5JVF9SQU1fQUREUikgfCBCQVRMX1BQX1JXKQotI2RlZmluZSBDRkdfSUJBVDFVICgoQ0ZHX1NEUkFNX0JBU0UrQ0ZHX0lOSVRfUkFNX0FERFIpIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwgKChDRkdfU0RSQU1fQkFTRStDRkdfSU5JVF9SQU1fQUREUiArIDB4MjAwMDApIHwgQkFUTF9QUF9SVyApCi0jZGVmaW5lIENGR19EQkFUMVUgKChDRkdfU0RSQU1fQkFTRStDRkdfSU5JVF9SQU1fQUREUiArIDB4MjAwMDApIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMICgoQ09ORklHX1NZU19TRFJBTV9CQVNFK0NPTkZJR19TWVNfSU5JVF9SQU1fQUREUikgfCBCQVRMX1BQX1JXKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVSAoKENPTkZJR19TWVNfU0RSQU1fQkFTRStDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIpIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMICgoQ09ORklHX1NZU19TRFJBTV9CQVNFK0NPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDB4MjAwMDApIHwgQkFUTF9QUF9SVyApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICgoQ09ORklHX1NZU19TRFJBTV9CQVNFK0NPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDB4MjAwMDApIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAqLwogCiAvKiBJbml0IFJBTSBpbiB0aGUgQ1BVIERDYWNoZSAobm8gYmFja2luZyBtZW1vcnkpCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQyTAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19EQkFUMlUJKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIC8qIFRoaXMgdXNlZCB0byBiZSBjb21tZW50ZWQgb3V0ICovCi0jZGVmaW5lIENGR19JQkFUMkwJICBDRkdfREJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCSAgQ09ORklHX1NZU19EQkFUMkwKIC8qIFRoaXMgaGVyZSB0b28gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyVQkgIENGR19EQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJICBDT05GSUdfU1lTX0RCQVQyVQogCiAKIC8qIEkvTyBhbmQgUENJIG1lbW9yeSBhdCAweGYwMDAwMDAwCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQzTAkoMHhmMDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUM1UJKDB4ZjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJKDB4ZjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQkoMHhmMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUM0wJKDB4ZjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UJKDB4ZjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKDB4ZjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCSgweGYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwogICogKGFkZHJlc3MgbWFwcGluZ3MsIHJlZ2lzdGVyIGluaXRpYWwgdmFsdWVzLCBldGMuKQogICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAotI2RlZmluZSBDRkdfQlVTX0haCTEzMzAwMDAwMCAvKiBidXMgc3BlZWQgLSAxMDAgbWh6CQkqLwotI2RlZmluZSBDRkdfQ1BVX0NMSwkxMzMwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JVU19DTEsJMTMzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfSFoJMTMzMDAwMDAwIC8qIGJ1cyBzcGVlZCAtIDEwMCBtaHoJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVX0NMSwkxMzMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfQ0xLCTEzMzAwMDAwMAogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgaW4gb25lIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTgJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBpcyBzdG9yZWQgaW4gTlZSQU0uCkBAIC0yNDcsMjIgKzI0NywyMiBAQAogCQkJCQkgICAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDgwMDAJICAgLyogU2l6ZSBvZiB0aGUgRW52aXJvbm1lbnQuIFNlZSBjb21tZW50IGFib3ZlICovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCTEgLyogc3RkaW4vc3Rkb3V0L3N0ZGVyciBhcmUgaW4gZW52aXJvbm1lbnQgKi8KLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUJMQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCTEgLyogc3RkaW4vc3Rkb3V0L3N0ZGVyciBhcmUgaW4gZW52aXJvbm1lbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCTEKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUgMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyoKICAqIEwyIGNhY2hlCiAgKi8KLSNkZWZpbmUgQ0ZHX0wyCisjZGVmaW5lIENPTkZJR19TWVNfTDIKICNkZWZpbmUgTDJfSU5JVAkgIChMMkNSX0wyU0laXzJNIHwgTDJDUl9MMkNMS18zIHwgTDJDUl9MMlJBTV9CVVJTVCB8IFwKIAkJICAgTDJDUl9MMk9IXzUgfCBMMkNSX0wyQ1RMIHwgTDJDUl9MMldUKQogI2RlZmluZSBMMl9FTkFCTEUgKEwyX0lOSVQgfCBMMkNSX0wyRSkKQEAgLTI4MSwyNiArMjgxLDI2IEBACiAgKi8KIAogI2RlZmluZSBDT05GSUdfQVRBUEkJCTEKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTIKLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJNAorI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTQKICNkZWZpbmUgQ09ORklHX0lTT19QQVJUSVRJT04JMQogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4RkUwMDAwMDAgIC8qIHdhczogdmlhX2dldF9iYXNlX2FkZHIoKSAqLwotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MUYwCi0jZGVmaW5lIENGR19BVEFfSURFMV9PRkZTRVQJMHgxNzAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4RkUwMDAwMDAgIC8qIHdhczogdmlhX2dldF9iYXNlX2FkZHIoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDFGMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUxX09GRlNFVAkweDE3MAogCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkwCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMAotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMjAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMjAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERpc2stT24tQ2hpcCBjb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9ET0NfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBET0MgZGV2aWNlcwkJKi8KIAotI2RlZmluZSBDRkdfRE9DX1NVUFBPUlRfMjAwMAotI3VuZGVmIENGR19ET0NfU1VQUE9SVF9NSUxMRU5OSVVNCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfMjAwMAorI3VuZGVmIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFJUQwpAQCAtMzExLDE2ICszMTEsMTYgQEAKICAqIE5TMTY1NTAgQ29uZmlndXJhdGlvbgogICovCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMSAweEZFMDAwM0Y4Ci0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIgMHhGRTAwMDJGOAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMSAweEZFMDAwM0Y4CisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yIDB4RkUwMDAyRjgKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRSAxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSAxCiAKIC8qIGJhc2UgYWRkcmVzcyBmb3IgSVNBIEkvTwogICovCi0jZGVmaW5lIENGR19JU0FfSU9fQkFTRV9BRERSRVNTIDB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTIDB4RkUwMDAwMDAKIAogLyogSVNBIEludGVycnVwdCBzdHVmZiAodGFrZW4gZnJvbSBKV0wpICovCiAKQEAgLTM0Niw3ICszNDYsNyBAQAogICovCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQotI2RlZmluZSBDRkdfQk9BUkRfQVNNX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9BU01fSU5JVAogI2RlZmluZSBDT05GSUdfTEFTVF9TVEFHRV9JTklUCiAKIC8qICNkZWZpbmUgQ09ORklHX0VUSEFERFIJMDA6MDk6RDI6MTA6MDA6NzYgKi8KQEAgLTM2Myw3ICszNjMsNyBAQAogI2RlZmluZSBDT05GSUdfVVNCX1VIQ0kJCTEKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCTEKICNkZWZpbmUgQ09ORklHX1VTQl9LRVlCT0FSRAkxCi0jZGVmaW5lIENGR19ERVZJQ0VfREVSRUdJU1RFUgkxIC8qIG5lZWRlZCBieSBDT05GSUdfVVNCX0tFWUJPQVJEICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX0RFUkVHSVNURVIJMSAvKiBuZWVkZWQgYnkgQ09ORklHX1VTQl9LRVlCT0FSRCAqLwogCiAvKgogICogQXV0b2Jvb3Qgc3R1ZmYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9CMi5oIGIvaW5jbHVkZS9jb25maWdzL0IyLmgKaW5kZXggYTdjYjNlMi4uYzc3ZWExZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0IyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0IyLmgKQEAgLTQ4LDEwICs0OCwxMCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTEwMjQJCS8qIDEwMjQgYnl0ZXMgbWF5IGJlIHVzZWQgZm9yIGVudiB2YXJzKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCApCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQgKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtMTA2LDI0ICsxMDYsMjQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MEM0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEM4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDBDNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDBjNzAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDBjNzAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJCTEwMDAJCS8qIDEga0h6ICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkJMTAwMAkJLyogMSBrSHogKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTQ2LDcgKzE0Niw3IEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgwMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgwMDQwMDAwMCAvKiA0IE1CICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCkBAIC0xNTQsMjQgKzE1NCwyNCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudCBWYXJpYWJsZSBzZXR1cApAQCAtMTgzLDIzICsxODMsMjMgQEAKICAqIEkyQyBFRVBST00gKFNUTTI0QzAyVzYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweEE4CS8qIEVFUFJPTSBTVE0yNEMwMlc2CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4QTgJLyogRUVQUk9NIFNUTTI0QzAyVzYJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIgkqLwotLyojZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNyovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KIAkJCQkJLyogMTYgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyogRmxhc2ggYmFua3MgSkZGUzIgc2hvdWxkIHVzZSAqLwogLyoKLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX0JBTksgICAgMAotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfU0VDVE9SCTIKLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUyAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUgkyCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfTlVNX0JBTktTICAgICAxCiAqLwogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0JBQjd4eC5oIGIvaW5jbHVkZS9jb25maWdzL0JBQjd4eC5oCmluZGV4IGJmYmRhNTIuLjE5MTBiMzQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9CQUI3eHguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQkFCN3h4LmgKQEAgLTYzLDcgKzYzLDcgQEAKICAgICAiYm9vdG0iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8gICAgICAgMCAgICAgICAvKiBlY2hvIG9mZiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRSAgICAgICAgICAgLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFICAgICAgICAgICAvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2VzICovCiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC05Myw4ICs5Myw4IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUCAgICAgICAgICAgICAgICAgICAgLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVCAgICAgICAgICAgICAgIj0+ICIgICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAgICAgICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUICAgICAgICAgICAgICAiPT4gIiAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogLyoKICAqIGNob29zZSBiZXR3ZWVuIENPTTEgYW5kIENPTTIgYXMgc2VyaWFsIGNvbnNvbGUKQEAgLTEwMiwxMDUgKzEwMiwxMDUgQEAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVggICAgICAgMQogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUgICAgICAgICAgICAgIDEwMjQgICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFICAgICAgICAgICAgICAxMDI0ICAgICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRSAgICAgICAgICAgICAgMjU2ICAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUgICAgICAgICAgICAgIDI1NiAgICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAgICAgICAgICAgICAgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUyAgICAgICAgICAgICAxNiAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUgICAgICAgICAgICBDRkdfQ0JTSVpFICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFICAgICAgICAgICAgICAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTICAgICAgICAgICAgIDE2ICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUgICAgICAgICAgICBDT05GSUdfU1lTX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgICAgIDB4MDAwMDAwMDAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5EICAgICAgICAgMHgwNDAwMDAwMCAgLyogMCAuLi4gNjQgTUIgaW4gRFJBTSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAgICAgMHgwMDAwMDAwMCAgLyogbWVtdGVzdCB3b3JrcyBvbiAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5EICAgICAgICAgMHgwNDAwMDAwMCAgLyogMCAuLi4gNjQgTUIgaW4gRFJBTSAgICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIgICAgICAgICAgIDB4MTAwMDAwMCAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSICAgICAgICAgICAweDEwMDAwMDAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAgICAqLwogCi0jZGVmaW5lIENGR19IWiAgICAgICAgICAgICAgICAgIDEwMDAgICAgICAgIC8qIGRlYy4gZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haICAgICAgICAgICAgICAgICAgMTAwMCAgICAgICAgLyogZGVjLiBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCiAgKiAoYWRkcmVzcyBtYXBwaW5ncywgcmVnaXN0ZXIgaW5pdGlhbCB2YWx1ZXMsIGV0Yy4pCiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwotI2RlZmluZSBDRkdfQk9BUkRfQVNNX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9BU01fSU5JVAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKIAogLyoKICAqIENob29zZSB0aGUgYWRkcmVzcyBtYXBwaW5nIHNjaGVtZSBmb3IgdGhlIE1QQzEwNiBtZW0gY29udHJvbGxlci4KICAqIERlZmF1bHQgaXMgbWFwcGluZyBCIChDSFJQKSwgc2V0IHRoaXMgZGVmaW5lIHRvIGNob29zZSBtYXBwaW5nIEEgKFBSZVApLgogICovCi0jZGVmaW5lIENGR19BRERSRVNTX01BUF9BCi0jaWZkZWYgIENGR19BRERSRVNTX01BUF9BCisjZGVmaW5lIENPTkZJR19TWVNfQUREUkVTU19NQVBfQQorI2lmZGVmICBDT05GSUdfU1lTX0FERFJFU1NfTUFQX0EKIAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9CVVMgICAgICAweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1BIWVMgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfU0laRSAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTICAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUyAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSAgICAgMHg4MDAwMDAwMAogCi0jZGVmaW5lIENGR19QQ0lfTUVNX0JVUyAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fUEhZUyAgICAgICAgMHhjMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9TSVpFICAgICAgICAweDNmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CVVMgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9QSFlTICAgICAgICAweGMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9TSVpFICAgICAgICAweDNmMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lTQV9NRU1fQlVTICAgICAgICAgMAotI2RlZmluZSBDRkdfSVNBX01FTV9QSFlTICAgICAgICAwCi0jZGVmaW5lIENGR19JU0FfTUVNX1NJWkUgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNX0JVUyAgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNX1BIWVMgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNX1NJWkUgICAgICAgIDAKIAotI2RlZmluZSBDRkdfUENJX0lPX0JVUyAgICAgICAgICAweDEwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19QSFlTICAgICAgICAgMHg4MTAwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1NJWkUgICAgICAgICAweDAxMDAwMDAwLUNGR19QQ0lfSU9fQlVTCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX0JVUyAgICAgICAgICAweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fUEhZUyAgICAgICAgIDB4ODEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fU0laRSAgICAgICAgIDB4MDEwMDAwMDAtQ09ORklHX1NZU19QQ0lfSU9fQlVTCiAKLSNkZWZpbmUgQ0ZHX0lTQV9JT19CVVMgICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfSVNBX0lPX1BIWVMgICAgICAgICAweDgwMDAwMDAwCi0jZGVmaW5lIENGR19JU0FfSU9fU0laRSAgICAgICAgIDB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fQlVTICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fUEhZUyAgICAgICAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fU0laRSAgICAgICAgIDB4MDA4MDAwMDAKIAogI2Vsc2UKIAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9CVVMgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1BIWVMgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfU0laRSAgICAgMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUyAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSAgICAgMHg0MDAwMDAwMAogCi0jZGVmaW5lIENGR19QQ0lfTUVNX0JVUyAgICAgICAgIDB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fUEhZUyAgICAgICAgMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9TSVpFICAgICAgICAweDdkMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CVVMgICAgICAgICAweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9QSFlTICAgICAgICAweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9TSVpFICAgICAgICAweDdkMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lTQV9NRU1fQlVTICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfSVNBX01FTV9QSFlTICAgICAgICAweGZkMDAwMDAwCi0jZGVmaW5lIENGR19JU0FfTUVNX1NJWkUgICAgICAgIDB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNX0JVUyAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNX1BIWVMgICAgICAgIDB4ZmQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNX1NJWkUgICAgICAgIDB4MDEwMDAwMDAKIAotI2RlZmluZSBDRkdfUENJX0lPX0JVUyAgICAgICAgICAweDAwODAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fUEhZUyAgICAgICAgIDB4ZmU4MDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19TSVpFICAgICAgICAgMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19CVVMgICAgICAgICAgMHgwMDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19QSFlTICAgICAgICAgMHhmZTgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19TSVpFICAgICAgICAgMHgwMDQwMDAwMAogCi0jZGVmaW5lIENGR19JU0FfSU9fQlVTICAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lTQV9JT19QSFlTICAgICAgICAgMHhmZTAwMDAwMAotI2RlZmluZSBDRkdfSVNBX0lPX1NJWkUgICAgICAgICAweDAwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX0JVUyAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX1BIWVMgICAgICAgICAweGZlMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX1NJWkUgICAgICAgICAweDAwODAwMDAwCiAKLSNlbmRpZiAvKkNGR19BRERSRVNTX01BUF9BICovCisjZW5kaWYgLypDT05GSUdfU1lTX0FERFJFU1NfTUFQX0EgKi8KIAotI2RlZmluZSBDRkdfNjBYX1BDSV9NRU1fT0ZGU0VUICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfNjBYX1BDSV9NRU1fT0ZGU0VUICAweDAwMDAwMDAwCiAKIC8qIGRyaXZlciBkZWZpbmVzIEZEQyxJREUsLi4uICovCi0jZGVmaW5lIENGR19JU0FfSU9fQkFTRV9BRERSRVNTIENGR19JU0FfSU9fUEhZUwotI2RlZmluZSBDRkdfSVNBX0lPICAgICAgICAgICAgICBDRkdfSVNBX0lPX1BIWVMKLSNkZWZpbmUgQ0ZHXzYwWF9QQ0lfSU9fT0ZGU0VUICAgQ0ZHX0lTQV9JT19QSFlTCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyBDT05GSUdfU1lTX0lTQV9JT19QSFlTCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPICAgICAgICAgICAgICBDT05GSUdfU1lTX0lTQV9JT19QSFlTCisjZGVmaW5lIENPTkZJR19TWVNfNjBYX1BDSV9JT19PRkZTRVQgICBDT05GSUdfU1lTX0lTQV9JT19QSFlTCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRSAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgICAgIDB4ZmZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFICAgICAgICAgIDB4ZmZmMDAwMDAKIAogLyoKICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgICAgIDB4MDBmZDAwMDAgIC8qIGFib3ZlIHRoZSBtZW10ZXN0IHJlZ2lvbiAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgICAweDQwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAgNjQgICAgICAgICAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVCAgICAgIENGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAgIDB4MDBmZDAwMDAgIC8qIGFib3ZlIHRoZSBtZW10ZXN0IHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAgICAgICAgMHg0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgICA2NCAgICAgICAgICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBGbGFzaCBtYXBwaW5nL29yZ2FuaXphdGlvbiBvbiB0aGUgTVBDMTB4LgpAQCAtMjA4LDExICsyMDgsMTEgQEAKICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNICAgICAgMHhmZjgwMDAwMAogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0gICAgICAweGZmYzAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgICAgMiAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUICAgICAgNjcgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICAgICAyICAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUICAgICAgNjcgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQgICAgMTIwMDAwICAgICAgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVCAgICA1MDAgICAgICAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCAgICAxMjAwMDAgICAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCAgICA1MDAgICAgICAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCiAKIC8qCiAgKiBKRkZTMiBwYXJ0aXRpb25zCkBAIC0yMzQsMzYgKzIzNCwzNiBAQAogI2RlZmluZSBNVERQQVJUU19ERUZBVUxUCSJtdGRwYXJ0cz1iYWI3eHgtMDotKGpmZnMyKSIKICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICAgICAgQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOICAgICAgICAgMHg0MDAwMCAgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4gICAgICAgICAgMHgyMDAwMCAgICAgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCi0jdW5kZWYgIENGR19NRU1URVNUCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTiAgICAgICAgIDB4NDAwMDAgICAgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTiAgICAgICAgICAweDIwMDAwICAgICAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19NRU1URVNUCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwogICovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0gICAgIDEgICAgICAgICAgIC8qIHVzZSBOVlJBTSBmb3IgZW52aXJvbm1lbnQgdmFycyAqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRSAgICAgICAgICAweDFmZjAgICAgICAvKiBOVlJBTSBzaXplICg4a0IpLCB3ZSBtdXN0IHByb3RlY3QgdGhlIGNsb2NrIGRhdGEgKDE2IGJ5dGVzKSAqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUgICAgICAgICAgMHgxZmYwICAgICAgLyogTlZSQU0gc2l6ZSAoOGtCKSwgd2UgbXVzdCBwcm90ZWN0IHRoZSBjbG9jayBkYXRhICgxNiBieXRlcykgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFICAgICAgICAgICAgMHg0MDAgICAgICAgLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzICgxa0IpICovCiAvKgogICogV2Ugc3RvcmUgdGhlIGVudmlyb25tZW50IGFuZCBhbiBpbWFnZSBvZiByZXZpc2lvbiBlZXByb20gaW4gdGhlIHVwcGVyIHBhcnQgb2YgdGhlIE5WUkFNLiBUaHVzLAogICogdXNlciBhcHBsaWNhdGlvbnMgY2FuIHVzZSB0aGUgcmVtYWluaW5nIHNwYWNlIGZvciBvdGhlciBwdXJwb3Nlcy4KICAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgICAgICAoQ0ZHX05WUkFNX1NJWkUgKzB4MTAgLTB4ODAwKQotI2RlZmluZSBDRkdfTlZfU1JPTV9DT1BZX0FERFIgICAoQ0ZHX05WUkFNX1NJWkUgKzB4MTAgLTB4NDAwKQotI2RlZmluZSBDRkdfTlZSQU1fQUNDRVNTX1JPVVRJTkUgICAgICAgICAgICAvKiBUaGlzIGJvYXJkIG5lZWRzIGEgc3BlY2lhbCByb3V0aW5lIHRvIGFjY2VzcyB0aGUgTlZSQU0gKi8KLSNkZWZpbmUgQ0ZHX1NST01fU0laRSAgICAgICAgICAgMHgxMDAgICAgICAgLyogc2hhZG93IG9mIHJldmlzaW9uIGluZm8gaXMgaW4gbnZyYW0gKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSICAgICAgICAgICAgKENPTkZJR19TWVNfTlZSQU1fU0laRSArMHgxMCAtMHg4MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlZfU1JPTV9DT1BZX0FERFIgICAoQ09ORklHX1NZU19OVlJBTV9TSVpFICsweDEwIC0weDQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9BQ0NFU1NfUk9VVElORSAgICAgICAgICAgIC8qIFRoaXMgYm9hcmQgbmVlZHMgYSBzcGVjaWFsIHJvdXRpbmUgdG8gYWNjZXNzIHRoZSBOVlJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NST01fU0laRSAgICAgICAgICAgMHgxMDAgICAgICAgLyogc2hhZG93IG9mIHJldmlzaW9uIGluZm8gaXMgaW4gbnZyYW0gKi8KIAogLyoKICAqIFNlcmlhbCBkZXZpY2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFICAgIDEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLICAgICAgICAgMTg0MzIwMAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xICAgICAgICAoQ0ZHX0lTQV9JTyArIENGR19OUzg3MzA4X1VBUlQxX0JBU0UpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIgICAgICAgIChDRkdfSVNBX0lPICsgQ0ZHX05TODczMDhfVUFSVDJfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSyAgICAgICAgIDE4NDMyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEgICAgICAgIChDT05GSUdfU1lTX0lTQV9JTyArIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMiAgICAgICAgKENPTkZJR19TWVNfSVNBX0lPICsgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQyX0JBU0UpCiAKIC8qCiAgKiBQQ0kgc3R1ZmYKQEAgLTI4NCw3ICsyODQsNyBAQAogI2RlZmluZSBDT05GSUdfQ09OU09MRV9USU1FCiAjZGVmaW5lIENPTkZJR19DT05TT0xFX0VYVFJBX0lORk8KICNkZWZpbmUgQ09ORklHX0NPTlNPTEVfQ1VSU09SCi0jZGVmaW5lIENGR19DT05TT0xFX0JMSU5LX0NPVU5UICAgICAgICAgMzAwMDAgICAgLyogYXBwcm94LiAyIEhaICovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9CTElOS19DT1VOVCAgICAgICAgIDMwMDAwICAgIC8qIGFwcHJveC4gMiBIWiAqLwogCiAvKgogICogSURFL1NDU0kgZ2xvYmFscwpAQCAtMzAyLDE1ICszMDIsMTUgQEAKICAqIEFUQVBJIFN1cHBvcnQgKGV4cGVyaW1lbnRhbCkKICAqLwogI2RlZmluZSBDT05GSUdfQVRBUEkKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMgICAgICAgICAgMSAgICAgICAgICAgICAgICAgICAgICAgLyogbWF4LiAyIElERSBidXNzZXMgICAgKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UgICAgICAgKENGR19JREVfTUFYQlVTKjIpICAgICAgLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMgICAgICAgICAgMSAgICAgICAgICAgICAgICAgICAgICAgLyogbWF4LiAyIElERSBidXNzZXMgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFICAgICAgIChDT05GSUdfU1lTX0lERV9NQVhCVVMqMikgICAgICAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIgICAgICAgQ0ZHXzYwWF9QQ0lfSU9fT0ZGU0VUICAgLyogYmFzZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQgICAgIDB4MUYwICAgICAgICAgICAgICAgICAgIC8qIGRlZmF1bHQgaWRlMCBvZmZzdGUgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9JREUxX09GRlNFVCAgICAgMHgxNzAgICAgICAgICAgICAgICAgICAgLyogZGVmYXVsdCBpZGUxIG9mZnNldCAqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUICAgICAwICAgICAgICAgICAgICAgICAgICAgICAvKiBkYXRhIHJlZyBvZmZzZXQgICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUICAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgLyogcmVnIG9mZnNldCAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQgICAgICAweDIwMCAgICAgICAgICAgICAgICAgICAvKiBhbHRlcm5hdGUgcmVnaXN0ZXIgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUiAgICAgICBDT05GSUdfU1lTXzYwWF9QQ0lfSU9fT0ZGU0VUICAgLyogYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUICAgICAweDFGMCAgICAgICAgICAgICAgICAgICAvKiBkZWZhdWx0IGlkZTAgb2Zmc3RlICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VUICAgICAweDE3MCAgICAgICAgICAgICAgICAgICAvKiBkZWZhdWx0IGlkZTEgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUICAgICAwICAgICAgICAgICAgICAgICAgICAgICAvKiBkYXRhIHJlZyBvZmZzZXQgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVCAgICAgIDAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJlZyBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVCAgICAgIDB4MjAwICAgICAgICAgICAgICAgICAgIC8qIGFsdGVybmF0ZSByZWdpc3RlciBvZmZzZXQgKi8KIAogI2RlZmluZSBBVEFfUkVTRVRfVElNRSAgICAgICAgICAoYXRhX3Jlc2V0X3RpbWUpCiAKQEAgLTMyMiwxMSArMzIyLDExIEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1NDU0lfU1lNNTNDOFhYCiAjZGVmaW5lIENPTkZJR19TQ1NJX0RFVl9JRCAgICAgIChzY3NpX2Rldl9pZCkgICAgICAgICAgIC8qIDg3NSBvciA4NjAgKi8KLSNkZWZpbmUgQ0ZHX1NDU0lfU1lNNTNDOFhYX0NDRiAgKHNjc2lfc3ltNTNjOHh4X2NjZikgICAgLyogdmFsdWUgZm9yIG5vbmUgNDAgbWh6IGNsb2NrcyAqLwotI2RlZmluZSBDRkdfU0NTSV9NQVhfTFVOICAgICAgICA4ICAgICAgICAgICAgICAgICAgICAgICAvKiBudW1iZXIgb2Ygc3VwcG9ydGVkIExVTnMgKi8KLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX1NDU0lfSUQgICAgKHNjc2lfbWF4X3Njc2lfaWQpICAgICAgLyogbWF4IFNDU0kgSUQgKDAtNikgKi8KLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX0RFVklDRSAgICAgKDE1ICogQ0ZHX1NDU0lfTUFYX0xVTikgLyogbWF4LiBUYXJnZXQgZGV2aWNlcyAqLwotI2RlZmluZSBDRkdfU0NTSV9TUElOX1VQX1RJTUUgICAoc2NzaV9yZXNldF90aW1lKQorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfU1lNNTNDOFhYX0NDRiAgKHNjc2lfc3ltNTNjOHh4X2NjZikgICAgLyogdmFsdWUgZm9yIG5vbmUgNDAgbWh6IGNsb2NrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTiAgICAgICAgOCAgICAgICAgICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIHN1cHBvcnRlZCBMVU5zICovCisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhfU0NTSV9JRCAgICAoc2NzaV9tYXhfc2NzaV9pZCkgICAgICAvKiBtYXggU0NTSSBJRCAoMC02KSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRSAgICAgKDE1ICogQ09ORklHX1NZU19TQ1NJX01BWF9MVU4pIC8qIG1heC4gVGFyZ2V0IGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX1NQSU5fVVBfVElNRSAgIChzY3NpX3Jlc2V0X3RpbWUpCiAKIC8qCiAgKiBQYXJ0aW9uIHN1cHBwb3J0CkBAIC0zMzksNDAgKzMzOSw0MCBAQAogICogV2luYm9uZCBDb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX1dJTkJPTkRfODNDNTUzICAgICAgMSAgICAgICAgICAgICAgICAgICAgICAgLyogaGFzIGEgd2luYm9uZCBicmlkZ2UgKi8KLSNkZWZpbmUgQ0ZHX1VTRV9XSU5CT05EX0lERSAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgLyogdXNlIHdpbmJvbmQgODNjNTUzIGludGVybmFsIGlkZSAqLwotI2RlZmluZSBDRkdfV0lOQk9ORF9JU0FfQ0ZHX0FERFIgICAgMHg4MDAwNTgwMCAgICAgICAgICAvKiBwY2ktaXNhIGJyaWRnZSBjb25maWcgYWRkciAqLwotI2RlZmluZSBDRkdfV0lOQk9ORF9JREVfQ0ZHX0FERFIgICAgMHg4MDAwNTkwMCAgICAgICAgICAvKiBpZGUgY29uZmlnIGFkZHIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfV0lOQk9ORF9JREUgICAgIDAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVzZSB3aW5ib25kIDgzYzU1MyBpbnRlcm5hbCBpZGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19XSU5CT05EX0lTQV9DRkdfQUREUiAgICAweDgwMDA1ODAwICAgICAgICAgIC8qIHBjaS1pc2EgYnJpZGdlIGNvbmZpZyBhZGRyICovCisjZGVmaW5lIENPTkZJR19TWVNfV0lOQk9ORF9JREVfQ0ZHX0FERFIgICAgMHg4MDAwNTkwMCAgICAgICAgICAvKiBpZGUgY29uZmlnIGFkZHIgKi8KIAogLyoKICAqIE5TODczMDggQ29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19OUzg3MzA4ICAgICAgICAgICAgICAgICAgICAvKiBOYXQgU2VtaSBzdXBlci1pbyBjbnRyIG9uIElTQSBidXMgKi8KLSNkZWZpbmUgQ0ZHX05TODczMDhfQkFERFJfMTAgICAgMQotI2RlZmluZSBDRkdfTlM4NzMwOF9ERVZTICAgICAgICAoQ0ZHX05TODczMDhfVUFSVDEgICB8IFwKLQkJCQkgQ0ZHX05TODczMDhfVUFSVDIgICB8IFwKLQkJCQkgQ0ZHX05TODczMDhfS0JDMSAgICB8IFwKLQkJCQkgQ0ZHX05TODczMDhfTU9VU0UgICB8IFwKLQkJCQkgQ0ZHX05TODczMDhfRkRDICAgICB8IFwKLQkJCQkgQ0ZHX05TODczMDhfUkFSUCAgICB8IFwKLQkJCQkgQ0ZHX05TODczMDhfR1BJTyAgICB8IFwKLQkJCQkgQ0ZHX05TODczMDhfUE9XUk1BTiB8IFwKLQkJCQkgQ0ZHX05TODczMDhfUlRDX0FQQyApCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9CQUREUl8xMCAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9ERVZTICAgICAgICAoQ09ORklHX1NZU19OUzg3MzA4X1VBUlQxICAgfCBcCisJCQkJIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMiAgIHwgXAorCQkJCSBDT05GSUdfU1lTX05TODczMDhfS0JDMSAgICB8IFwKKwkJCQkgQ09ORklHX1NZU19OUzg3MzA4X01PVVNFICAgfCBcCisJCQkJIENPTkZJR19TWVNfTlM4NzMwOF9GREMgICAgIHwgXAorCQkJCSBDT05GSUdfU1lTX05TODczMDhfUkFSUCAgICB8IFwKKwkJCQkgQ09ORklHX1NZU19OUzg3MzA4X0dQSU8gICAgfCBcCisJCQkJIENPTkZJR19TWVNfTlM4NzMwOF9QT1dSTUFOIHwgXAorCQkJCSBDT05GSUdfU1lTX05TODczMDhfUlRDX0FQQyApCiAKLSNkZWZpbmUgQ0ZHX05TODczMDhfUFMyTU9ECi0jZGVmaW5lIENGR19OUzg3MzA4X0dQSU9fQkFTRSAgIDB4MDIyMAotI2RlZmluZSBDRkdfTlM4NzMwOF9QV01BTl9CQVNFICAweDA0NjAKLSNkZWZpbmUgQ0ZHX05TODczMDhfUE1DMiAgICAgICAgMHgwMCAgICAgICAgLyogU3VwZXJJL08gY2xvY2sgc291cmNlIGlzIDI0TUh6IHZpYSBYMSAqLworI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfUFMyTU9ECisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9HUElPX0JBU0UgICAweDAyMjAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X1BXTUFOX0JBU0UgIDB4MDQ2MAorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfUE1DMiAgICAgICAgMHgwMCAgICAgICAgLyogU3VwZXJJL08gY2xvY2sgc291cmNlIGlzIDI0TUh6IHZpYSBYMSAqLwogCiAvKgogICogc2V0IHVwIHRoZSBOVlJBTSBhY2Nlc3MgcmVnaXN0ZXJzCiAgKiBOVlJBTSdzIGNvbnRyb2xsZWQgYnkgdGhlIGNvbmZpZ3VyYWJsZSBDUyBsaW5lIGZyb20gdGhlIDg3MzA4CiAgKi8KLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MwX0JBU0UgICAgMHgwMDc2Ci0jZGVmaW5lIENGR19OUzg3MzA4X0NTMF9DT05GICAgIDB4NDAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MxX0JBU0UgICAgMHgwMDcwCi0jZGVmaW5lIENGR19OUzg3MzA4X0NTMV9DT05GICAgIDB4MUMKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MyX0JBU0UgICAgMHgwMDcxCi0jZGVmaW5lIENGR19OUzg3MzA4X0NTMl9DT05GICAgIDB4MUMKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMF9CQVNFICAgIDB4MDA3NgorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MwX0NPTkYgICAgMHg0MAorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MxX0JBU0UgICAgMHgwMDcwCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzFfQ09ORiAgICAweDFDCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzJfQkFTRSAgICAweDAwNzEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMl9DT05GICAgIDB4MUMKIAogI2RlZmluZSBDT05GSUdfUlRDX01LNDhUNTkKIApAQCAtMzgxLDUxICszODEsNTEgQEAKICAqLwogI2lmIDEKIAotI2RlZmluZSBDRkdfSUJBVDBMIDAKLSNkZWZpbmUgQ0ZHX0lCQVQwVSAwCi0jZGVmaW5lIENGR19EQkFUMEwgQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDBVIENGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVSAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVIENPTkZJR19TWVNfSUJBVDFVCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTCAwCi0jZGVmaW5lIENGR19JQkFUMVUgMAotI2RlZmluZSBDRkdfREJBVDFMIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSBDRkdfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMIDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTCBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVSBDT05GSUdfU1lTX0lCQVQxVQogCi0jZGVmaW5lIENGR19JQkFUMkwgMAotI2RlZmluZSBDRkdfSUJBVDJVIDAKLSNkZWZpbmUgQ0ZHX0RCQVQyTCBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgQ0ZHX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTCAwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVIDAKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwgQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgQ09ORklHX1NZU19JQkFUMlUKIAotI2RlZmluZSBDRkdfSUJBVDNMIDAKLSNkZWZpbmUgQ0ZHX0lCQVQzVSAwCi0jZGVmaW5lIENGR19EQkFUM0wgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVIENGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wgMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVSAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMIENPTkZJR19TWVNfSUJBVDNMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVIENPTkZJR19TWVNfSUJBVDNVCiAKICNlbHNlCiAKIC8qIFNEUkFNICovCi0jZGVmaW5lIENGR19JQkFUMEwgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9SVykKLSNkZWZpbmUgQ0ZHX0lCQVQwVSAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTCBDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMFUgQ0ZHX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9SVykKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSBDT05GSUdfU1lTX0lCQVQxVQogCiAvKiBhZGRyZXNzIHJhbmdlIGZvciBmbGFzaGVzICovCi0jZGVmaW5lIENGR19JQkFUMUwgKENGR19GTEFTSF9CQVNFIHwgQkFUTF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDFVIChDRkdfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwgQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVIENGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwgKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVExfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVIENPTkZJR19TWVNfSUJBVDFVCiAKIC8qIElTQSBJTyBzcGFjZSAqLwotI2RlZmluZSBDRkdfSUJBVDJMIChDRkdfSVNBX0lPIHwgQkFUTF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDJVIChDRkdfSVNBX0lPIHwgQkFUVV9CTF8xNk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQyTCBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgQ0ZHX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTCAoQ09ORklHX1NZU19JU0FfSU8gfCBCQVRMX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVIChDT05GSUdfU1lTX0lTQV9JTyB8IEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMIENPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVIENPTkZJR19TWVNfSUJBVDJVCiAKIC8qIElTQSBtZW1vcnkgc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQzTCAoQ0ZHX0lTQV9NRU0gfCBCQVRMX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UgKENGR19JU0FfTUVNIHwgQkFUVV9CTF8xNk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQzTCBDRkdfSUJBVDNMCi0jZGVmaW5lIENGR19EQkFUM1UgQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTCAoQ09ORklHX1NZU19JU0FfTUVNIHwgQkFUTF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVSAoQ09ORklHX1NZU19JU0FfTUVNIHwgQkFUVV9CTF8xNk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wgQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UgQ09ORklHX1NZU19JQkFUM1UKIAogI2VuZGlmCiAKQEAgLTQzNiwzNSArNDM2LDM1IEBACiBleHRlcm4gIHVuc2lnbmVkIGxvbmcgICAgICAgICAgIGJhYjd4eF9nZXRfYnVzX2ZyZXEgKHZvaWQpOwogZXh0ZXJuICB1bnNpZ25lZCBsb25nICAgICAgICAgICBiYWI3eHhfZ2V0X2djbGtfZnJlcSAodm9pZCk7CiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0JVU19IWiAgICAgICAgICAgICAgYmFiN3h4X2dldF9idXNfZnJlcSgpCi0jZGVmaW5lIENGR19CVVNfQ0xLICAgICAgICAgICAgIENGR19CVVNfSFoKLSNkZWZpbmUgQ0ZHX0NQVV9DTEsgICAgICAgICAgICAgYmFiN3h4X2dldF9nY2xrX2ZyZXEoKQorI2RlZmluZSBDT05GSUdfU1lTX0JVU19IWiAgICAgICAgICAgICAgYmFiN3h4X2dldF9idXNfZnJlcSgpCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0NMSyAgICAgICAgICAgICBDT05GSUdfU1lTX0JVU19IWgorI2RlZmluZSBDT05GSUdfU1lTX0NQVV9DTEsgICAgICAgICAgICAgYmFiN3h4X2dldF9nY2xrX2ZyZXEoKQogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaICAgICAgICAgICAoOCA8PCAyMCkgICAgICAgICAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1ogICAgICAgICAgICg4IDw8IDIwKSAgICAgICAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRSAgICAgICAgMzIgICAgLyogRm9yIGFsbCBNUEM3NHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAgICAgICAgMzIgICAgLyogRm9yIGFsbCBNUEM3NHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVCAgICAgICAgNSAgICAvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVCAgICAgICAgNSAgICAvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCiAgKiBMMiBDYWNoZSBDb25maWd1cmF0aW9uIGlzIGJvYXJkIHNwZWNpZmljIGZvciBCQUI3NDAvQkFCNzUwCiAgKiBJbml0IHZhbHVlcyByZWFkIGZyb20gcmV2aXNpb24gc3JvbS4KICAqLwotI3VuZGVmICBDRkdfTDIKKyN1bmRlZiAgQ09ORklHX1NZU19MMgogI2RlZmluZSBMMl9JTklUICAgICAoTDJDUl9MMlNJWl9ITSB8IEwyQ1JfTDJDTEtfMyB8IEwyQ1JfTDJSQU1fQlVSU1QgfCBcCiAJCSAgICAgTDJDUl9MMk9IXzUgICB8IEwyQ1JfTDJDVEwgICB8IEwyQ1JfTDJXVCkKICNkZWZpbmUgTDJfRU5BQkxFICAgKEwyX0lOSVQgfCBMMkNSX0wyRSkKIAotI2RlZmluZSBDRkdfTDJfQkFCN3h4CisjZGVmaW5lIENPTkZJR19TWVNfTDJfQkFCN3h4CiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0JDMzQ1MC5oIGIvaW5jbHVkZS9jb25maWdzL0JDMzQ1MC5oCmluZGV4IDdmZDY0OTAuLjI4YmU4ZGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9CQzM0NTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQkMzNDUwLmgKQEAgLTU2LDcgKzU2LDcgQEAKICNkZWZpbmUgQ09ORklHX0JDMzQ1MF9GUAkxCS8qICArIGVuYWJsZSBGUCBPL1AJCSAgICAqLwogI3VuZGVmIENPTkZJR19CQzM0NTBfQ1JUCQkvKiAgKyBlbmFibGUgQ1JUIE8vUCAoRGVidWcgb25seSEpICAqLwogCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkgICAgKi8KIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CQkgICAgKi8KQEAgLTY4LDcgKzY4LDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQzEJCSovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCS8qIC4uLiBhdCAxMTUyMDAgYnBzCQkqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qCiAgKiBBVC1QUy8yIE11bHRpcGxleGVyCkBAIC03Nyw3ICs3Nyw3IEBACiAjIGRlZmluZSBDT05GSUdfUFMyS0JECQkJLyogQVQtUFMvMiBLZXlib2FyZAkJKi8KICMgZGVmaW5lIENPTkZJR19QUzJNVUxUCQkJLyogLi4gb24gUFMvMiBNdWx0aXBsZXhlcgkqLwogIyBkZWZpbmUgQ09ORklHX1BTMlNFUklBTAk2CQkvKiAuLiBvbiBQU0M2CQkqLwotIyBkZWZpbmUgQ09ORklHX1BTMk1VTFRfREVMQVkJKENGR19IWi8yKQkvKiBJbml0aWFsIGRlbGF5CSovCisjIGRlZmluZSBDT05GSUdfUFMyTVVMVF9ERUxBWQkoQ09ORklHX1NZU19IWi8yKQkvKiBJbml0aWFsIGRlbGF5CSovCiAjIGRlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9SCiAjZW5kaWYgLyogQ09ORklHX0JDMzQ1MF9QUzIgKi8KIApAQCAtMTAxLDcgKzEwMSw3IEBACiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAvKiNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCVhYWCAtIEZJWE1FOiBjb25mbGljdHMgd2hlbiBDT05GSUdfTUlJIGlzIGVuYWJsZWQgKi8KLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAkvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCiAjZGVmaW5lIENPTkZJR19OUzgzODJYCQkxCiAKIC8qCkBAIC0xMTYsNyArMTE2LDcgQEAKICMgZGVmaW5lIENPTkZJR19DT05TT0xFX0VYVFJBX0lORk8JLyogZGlzcGxheSBCb2FyZC9EZXZpY2UtSW5mb3MgKi8KICMgZGVmaW5lIENPTkZJR19WSURFT19TV19DVVJTT1IKICMgZGVmaW5lIENPTkZJR19TUExBU0hfU0NSRUVOCi0jIGRlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYKKyMgZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYKIAogLyoKICAqIFBhcnRpdGlvbnMKQEAgLTEzNiw5ICsxMzYsOSBAQAogLyoKICAqIFBPU1Qgc3VwcG9ydAogICovCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfTUVNT1JZICAgfCBcCi0JCQkJIENGR19QT1NUX0NQVQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfSTJDKQorI2RlZmluZSBDT05GSUdfUE9TVAkJKENPTkZJR19TWVNfUE9TVF9NRU1PUlkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NQVQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0kyQykKIAogI2lmZGVmIENPTkZJR19QT1NUCiAvKiBwcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHBvc3Rfd29yZCBhdCBlbmQgb2Ygb24tY2hpcCBTUkFNICovCkBAIC0yMDgsNyArMjA4LDcgQEAKICNkZWZpbmUgQ09ORklHX1RJTUVTVEFNUAkJLyogZGlzcGxheSBpbWFnZSB0aW1lc3RhbXBzICovCiAKICNpZiAoVEVYVF9CQVNFID09IDB4RkMwMDAwMDApCQkvKiBCb290IGxvdyAqLwotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKICNlbmRpZgogCiAvKgpAQCAtMjY4LDI0ICsyNjgsMjQgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogCiAvKgogICogUENJIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uCiAgKgogICogQWN0dWFsbHkgYSBQQ0kgQ2xvY2sgb2YgNjYgTUh6IGlzIG9ubHkgc2V0IChpbiBjcHVfaW5pdC5jKSBpZgotICogQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLIGlzIGRlZmluZWQuIFRoaXMgaXMgYmVjYXVzZSBhIFBDSSBDbG9jaworICogQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSyBpcyBkZWZpbmVkLiBUaGlzIGlzIGJlY2F1c2UgYSBQQ0kgQ2xvY2sKICAqICBvZiA2NiBNSHogeWV0IGhhc24ndCBiZWVuIHRlc3RlZCB3aXRoIGEgSVBCIEJ1cyBDbG9jayBvZiA2NiBNSHouCiAgKi8KLSNpZiBkZWZpbmVkKENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSykKLSMgZGVmaW5lIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEspCisjIGRlZmluZSBDT05GSUdfU1lTX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIJLyogZGVmaW5lIGZvciA2Nk1IeiBzcGVlZCAqLwogI2VuZGlmCiAKIC8qCiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMiAqLwogCiAvKgogICogSTJDIGNsb2NrIGZyZXF1ZW5jeQpAQCAtMjkzLDExICsyOTMsMTEgQEAKICAqIFBsZWFzZSBub3RpY2UsIHRoYXQgdGhlIHJlc3VsdGluZyBjbG9jayBmcmVxdWVuY3kgY291bGQgZGlmZmVyIGZyb20gdGhlCiAgKiBjb25maWd1cmVkIHZhbHVlLiBUaGlzIGlzIGJlY2F1c2UgdGhlIEkyQyBjbG9jayBpcyBkZXJpdmVkIGZyb20gc3lzdGVtCiAgKiBjbG9jayBvdmVyIGEgZnJlcXVlbmN5IGRpdmlkZXIgd2l0aCBvbmx5IGEgZmV3IGRpdmlkZXIgdmFsdWVzLiBVLWJvb3QKLSAqIGNhbGN1bGF0ZXMgdGhlIGJlc3QgYXBwcm94aW1hdGlvbiBmb3IgQ0ZHX0kyQ19TUEVFRC4gSG93ZXZlciB0aGUgY2FsY3VsYXRlZAorICogY2FsY3VsYXRlcyB0aGUgYmVzdCBhcHByb3hpbWF0aW9uIGZvciBDT05GSUdfU1lTX0kyQ19TUEVFRC4gSG93ZXZlciB0aGUgY2FsY3VsYXRlZAogICogYXBwcm94aW1hdGlvbiBhbGx3YXlzIGxpZXMgYmVsb3cgdGhlIGNvbmZpZ3VyZWQgdmFsdWUsIG5ldmVyIGFib3ZlLgogICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbiBmb3IgScKyQyBFRVBST00gTTI0QzMyCkBAIC0zMDUsMTcgKzMwNSwxNyBAQAogICoKICAqIFRoZSBUUU01MjAwIG1vZHVsZSBtYXkgaG9sZCBhbiBFRVBST00gYXQgYWRkcmVzcyAweDUwLgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKFRRTSkgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTIKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiA9MzIgQnl0ZXMgcGVyIHdyaXRlICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAoVFFNKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogPTMyIEJ5dGVzIHBlciB3cml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTcwCiAKIC8qCiAgKiBSVEMgY29uZmlndXJhdGlvbgogICovCiAjaWYgZGVmaW5lZCAoQ09ORklHX0JDMzQ1MF9EUzEzNDApICYmICFkZWZpbmVkIChDT05GSUdfQkMzNDUwX0RTMzIzMSkKICMgZGVmaW5lIENPTkZJR19SVENfTTQxVDExCTEKLSMgZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAogI2Vsc2UKICMgZGVmaW5lIENPTkZJR19SVENfTVBDNTIwMAkxCS8qIHVzZSBNUEM1MjAwIGludGVybmFsIFJUQyAqLwogIyBkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfUgpAQCAtMzI0LDI2ICszMjQsMjYgQEAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVRFWFRfQkFTRSAvKiAweEZDMDAwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJVEVYVF9CQVNFIC8qIDB4RkMwMDAwMDAgKi8KIAogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgaWYgbm8gbW9kdWxlIHZhcmlhbnQgaXMgc3BlemlmaWVkICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfQk9PVENTX1NUQVJUIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAgLyogNjQgTUJ5dGUgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jdW5kZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJLyogbm90IHN1cHBvcnRlZCB5ZXQgZm9yIEFNRCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAgLyogNjQgTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkvKiBub3Qgc3VwcG9ydGVkIHlldCBmb3IgQU1EICovCiAKLSNpZiAhZGVmaW5lZChDRkdfTE9XQk9PVCkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwNzYwMDAwICsgMHgwMDgwMDAwMCkKLSNlbHNlCS8qIENGR19MT1dCT09UICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDA2MDAwMCkKLSNlbmRpZgkvKiBDRkdfTE9XQk9PVCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcworI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDc2MDAwMCArIDB4MDA4MDAwMDApCisjZWxzZQkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDA2MDAwMCkKKyNlbmRpZgkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCiAJCQkJCSAgICg9IGNoaXAgc2VsZWN0cykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCiAKIC8qIER5bmFtaWMgTVREIHBhcnRpdGlvbiBzdXBwb3J0ICovCiAjZGVmaW5lIENPTkZJR19KRkZTMl9DTURMSU5FCkBAIC0zNjcsMzEgKzM2NywzMSBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKIC8qIFVzZSBPTi1DaGlwIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCiAjaWZkZWYgQ09ORklHX1BPU1QKIC8qIHByZXNlcnZlIHNwYWNlIGZvciB0aGUgcG9zdF93b3JkIGF0IGVuZCBvZiBvbi1jaGlwIFNSQU0gKi8KLSMgZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1BPU1RfU0laRQorIyBkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1BPU1RfU0laRQogI2Vsc2UKLSMgZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKKyMgZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCiAjZW5kaWYgLypDT05GSUdfUE9TVCovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIEJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBCeXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgzODQgPDwgMTApIC8qIFJlc2VydmUgMzg0IGtCIGZvciBNb25pdG9yICAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKSAvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvciAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtNDI2LDM4ICs0MjYsMzggQEAKICAqICBJMkM6ICAgIENBTjEgLyBJwrJDMgkJICBbMHggYnh4eHh4eHhdCiAgKi8KICNpZmRlZiBDT05GSUdfQkMzNDUwX0FDOTcKLSMgZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHhiMTUwMjEyNAorIyBkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHhiMTUwMjEyNAogI2Vsc2UgLyogUFNDMj1VQVJUMiAqLwotIyBkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweGIxNTAyMTQ0CisjIGRlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweGIxNTAyMTQ0CiAjZW5kaWYKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbm8gb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJnLiBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBubyBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZy4gQnVmZmVyIFNpemUgICAgKi8KIAotI2RlZmluZSBDRkdfQUxUX01FTVRFU1QJCQkJLyogRW5hYmxlIGFuIGFsdGVybmF0aXZlLCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QJCQkJLyogRW5hYmxlIGFuIGFsdGVybmF0aXZlLCAgICovCiAJCQkJCQkvKiAgbW9yZSBleHRlbnNpdmUgbWVtIHRlc3QgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JICAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JICAgICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkgICAgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWMgZnJlcTogMW1zIHRpY2tzCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjIGZyZXE6IDFtcyB0aWNrcwkgICAgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcwkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcwkJICAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICAgICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAgICAqLwogI2VuZGlmCiAKIC8qCkBAIC00NjksMjIgKzQ2OSwyMiBAQAogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCi0jIGRlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotIyBkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjIGRlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyMgZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKICNlbHNlCi0jIGRlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jIGRlZmluZSBDRkdfSElEMF9GSU5BTAkJMAorIyBkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jaWZkZWYgQ0ZHX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIKLSMgZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDhERjMwCS8qIGZvciBwY2lfY2xrCT0gNjYgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNpZmRlZiBDT05GSUdfU1lTX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIKKyMgZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA4REYzMAkvKiBmb3IgcGNpX2Nsawk9IDY2IE1IeiAqLwogI2Vsc2UKLSMgZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDRERjMwCS8qIGZvciBwY2lfY2xrID0gMzMgTUh6CSAqLworIyBkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDRERjMwCS8qIGZvciBwY2lfY2xrID0gMzMgTUh6CSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAogLyogYXV0b21hdGljIGNvbmZpZ3VyYXRpb24gb2YgY2hpcCBzZWxlY3RzICovCiAjaWZkZWYgQ09ORklHX1RRTTUyMDAKQEAgLTQ5Niw5ICs0OTYsOSBAQAogICogZm9yIFNEUkFNIGF1dG9zaXppbmcuCiAgKi8KICNpZmRlZiBDT05GSUdfVFFNNTIwMAotIyBkZWZpbmUgQ0ZHX0NTMl9TVEFSVAkJMHhFNTAwMDAwMAotIyBkZWZpbmUgQ0ZHX0NTMl9TSVpFCQkweDEwMDAwMAkvKiAxIE1CeXRlICovCi0jIGRlZmluZSBDRkdfQ1MyX0NGRwkJMHgwMDA0RDkzMAorIyBkZWZpbmUgQ09ORklHX1NZU19DUzJfU1RBUlQJCTB4RTUwMDAwMDAKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NJWkUJCTB4MTAwMDAwCS8qIDEgTUJ5dGUgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfQ1MyX0NGRwkJMHgwMDA0RDkzMAogI2VuZGlmIC8qIENPTkZJR19UUU01MjAwICovCiAKIC8qCkBAIC01MDcsMTcgKzUwNywxNyBAQAogICovCiAjaWZkZWYgQ09ORklHX1RRTTUyMDAKICMgZGVmaW5lIFNNNTAxX0ZCX0JBU0UJCTB4RTAwMDAwMDAKLSMgZGVmaW5lIENGR19DUzFfU1RBUlQJCShTTTUwMV9GQl9CQVNFKQotIyBkZWZpbmUgQ0ZHX0NTMV9TSVpFCQkweDQwMDAwMDAJLyogNjQgTUJ5dGUgKi8KLSMgZGVmaW5lIENGR19DUzFfQ0ZHCQkweDhGNDhGRjcwCi0jIGRlZmluZSBTTTUwMV9NTUlPX0JBU0UJQ0ZHX0NTMV9TVEFSVCArIDB4MDNFMDAwMDAKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUCQkoU001MDFfRkJfQkFTRSkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NJWkUJCTB4NDAwMDAwMAkvKiA2NCBNQnl0ZSAqLworIyBkZWZpbmUgQ09ORklHX1NZU19DUzFfQ0ZHCQkweDhGNDhGRjcwCisjIGRlZmluZSBTTTUwMV9NTUlPX0JBU0UJQ09ORklHX1NZU19DUzFfU1RBUlQgKyAweDAzRTAwMDAwCiAjZW5kaWYgLyogQ09ORklHX1RRTTUyMDAgKi8KIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzExCS8qIDEgZGVhZCBjeWNsZSBmb3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzExCS8qIDEgZGVhZCBjeWNsZSBmb3IJKi8KIAkJCQkJCS8qICBmbGFzaCBhbmQgU001MDEJKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCiAKIC8qCiAgKiBVU0Igc3R1ZmYKQEAgLTUzNiwyMyArNTM2LDIzIEBACiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgICAgICBzdXBwb3J0ZWQgKi8KICNkZWZpbmUgQ09ORklHX0lERV9QUkVJTklUCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTIJLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkyCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzICovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoQ0ZHX0FUQV9EQVRBX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQpCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJKDB4MDA1QykKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQogCiAvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJNAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJCTQKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9CTVcuaCBiL2luY2x1ZGUvY29uZmlncy9CTVcuaAppbmRleCBkNWEzOThkLi4yNGZmYjAwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQk1XLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0JNVy5oCkBAIC01MiwxOCArNTIsMTggQEAKIAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJOTYwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBDT05GSUdfQ0xPQ0tTX0lOX01IWgkxCS8qIGNsb2NrcyBwYXNzc2VkIHRvIExpbnV4IGluIE1IegkqLwogCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiYm9vdG0gRkY4MjAwMDAiCS8qIGF1dG9ib290IGNvbW1hbmQJKi8KICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CiAKLSNkZWZpbmUgQ0ZHX01BWF9ET0NfREVWSUNFICAgICAgMSAvKiBPbmx5IHVzZSBPbmJvYXJkIFRTT1AtMTZNQiBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRSAgICAgIDEgLyogT25seSB1c2UgT25ib2FyZCBUU09QLTE2TUIgZGV2aWNlICovCiAjZGVmaW5lIERPQ19QQVNTSVZFX1BST0JFICAgICAgIDEKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAgICAgMQotI2RlZmluZSBDRkdfRE9DX1NVUFBPUlRfTUlMTEVOTklVTSAxCi0jZGVmaW5lIENGR19ET0NfU0hPUlRfVElNRU9VVCAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfMjAwMCAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTSAxCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NIT1JUX1RJTUVPVVQgICAgMQogCiAKIC8qCkBAIC05Niw2NiArOTYsNjYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+IgkgICAgICAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+IgkgICAgICAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogCiAvKiBQcmludCBCdWZmZXIgU2l6ZQogICovCi0jZGVmaW5lIENGR19QQlNJWkUJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQogCi0jZGVmaW5lIENGR19NQVhBUkdTCTgJCS8qIE1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJOAkJLyogTWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MDAxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFMF9QUkVMSU0gICAgICAweEZGRjAwMDAwICAgICAgLyogRkxBU0ggYmFuayBvbiBSQ1MjMCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRTFfUFJFTElNICAgICAgMHhGRjgwMDAwMCAgICAgIC8qIEZMQVNIIGJhbmsgb24gUkNTIzEgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgIENGR19NT05JVE9SX0JBU0UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTCQl7IENGR19GTEFTSF9CQVNFMF9QUkVMSU0gLCBDRkdfRkxBU0hfQkFTRTFfUFJFTElNIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFMF9QUkVMSU0gICAgICAweEZGRjAwMDAwICAgICAgLyogRkxBU0ggYmFuayBvbiBSQ1MjMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UxX1BSRUxJTSAgICAgIDB4RkY4MDAwMDAgICAgICAvKiBGTEFTSCBiYW5rIG9uIFJDUyMxICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LUwkJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UwX1BSRUxJTSAsIENPTkZJR19TWVNfRkxBU0hfQkFTRTFfUFJFTElNIH0KIAogLyogZXZlbiB0aG91Z2ggRkxBU0hQX0JBU0UgaXMgRkY4MDAwMDAsIHdpdGggNE1CIGlzIFJDUzAsIHRoZQogICogcmVzZXQgdmVjdG9yIGlzIGFjdHVhbGx5IGxvY2F0ZWQgYXQgRkZCMDAxMDAsIGJ1dCB0aGUgODI0NQogICogdGFrZXMgY2FyZSBvZiB1cy4KICAqLwotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAogCi0jZGVmaW5lIENGR19FVU1CX0FERFIJICAgIDB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVU1CX0FERFIJICAgIDB4RkMwMDAwMDAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JICAgICgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSAgICAoMjA0OCA8PCAxMCkgLyogUmVzZXJ2ZSAyTUIgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JICAgICgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkgICAgKDIwNDggPDwgMTApIC8qIFJlc2VydmUgMk1CIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJICAgIDB4MDQwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECSAgICAweDA0MDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCiAKIAkvKiBNYXhpbXVtIGFtb3VudCBvZiBSQU0uCiAJICovCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUgICAgMHgwNDAwMDAwMAkvKiAwIC4uIDY0IE1CIG9mIChTKURSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgICAgMHgwNDAwMDAwMAkvKiAwIC4uIDY0IE1CIG9mIChTKURSQU0gKi8KIAogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQotI3VuZGVmIENGR19SQU1CT09UCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCisjdW5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSIENGR19TRFJBTV9CQVNFICsgQ0ZHX01PTklUT1JfTEVOCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAweDJGMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQgIENGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSIENPTkZJR19TWVNfU0RSQU1fQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAweDJGMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjUsNDMgKzE2NSw0MyBAQAogICovCiAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUSAgMzMwMDAwMDAJLyogZXh0ZXJuYWwgZnJlcXVlbmN5IHRvIHBsbCAqLwotI2RlZmluZSBDRkdfSFoJCSAgICAgMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkgICAgIDEwMDAKIAotI2RlZmluZSBDRkdfRVRIX0RFVl9GTgkgICAgIDB4NzgwMAotI2RlZmluZSBDRkdfRVRIX0lPQkFTRQkgICAgIDB4MDAxMDQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVEhfREVWX0ZOCSAgICAgMHg3ODAwCisjZGVmaW5lIENPTkZJR19TWVNfRVRIX0lPQkFTRQkgICAgIDB4MDAxMDQwMDAKIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IxLgogCSAqLwotI2RlZmluZSBDRkdfUk9NTkFMCSAgICAweGYKLSNkZWZpbmUgQ0ZHX1JPTUZBTAkgICAgMHgxZgotI2RlZmluZSBDRkdfREJVU19TSVpFICAgICAgIDB4MworI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTAkgICAgMHhmCisjZGVmaW5lIENPTkZJR19TWVNfUk9NRkFMCSAgICAweDFmCisjZGVmaW5lIENPTkZJR19TWVNfREJVU19TSVpFICAgICAgIDB4MwogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjIuCiAJICovCi0jZGVmaW5lIENGR19UU1dBSVQJICAgIDB4NQkJICAgIC8qIFRyYW5zYWN0aW9uIFN0YXJ0IFdhaXQgU3RhdGVzIHRpbWVyICovCi0jZGVmaW5lIENGR19SRUZJTlQJICAgIDB4NDAwCSAgICAvKiBSZWZyZXNoIGludGVydmFsCUZJWE1FOiB3YXMgMHQ0MzAJCSovCisjZGVmaW5lIENPTkZJR19TWVNfVFNXQUlUCSAgICAweDUJCSAgICAvKiBUcmFuc2FjdGlvbiBTdGFydCBXYWl0IFN0YXRlcyB0aW1lciAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVAkgICAgMHg0MDAJICAgIC8qIFJlZnJlc2ggaW50ZXJ2YWwJRklYTUU6IHdhcyAwdDQzMAkJKi8KIAogCS8qIEJ1cnN0IFRvIFByZWNoYXJnZS4gQml0cyBvZiB0aGlzIHZhbHVlIGdvIHRvIE1DQ1IzIGFuZCBNQ0NSNC4KIAkgKi8KLSNkZWZpbmUgQ0ZHX0JTVE9QUkUJICAgIDAJCS8qIEZJWE1FOiB3YXMgMTkyICovCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRQkgICAgMAkJLyogRklYTUU6IHdhcyAxOTIgKi8KIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IzLgogCSAqLwotI2RlZmluZSBDRkdfUkVGUkVDCSAgICAyCSAgICAvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDCSAgICAyCSAgICAvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsICovCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSNC4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1BSRVRPQUNUCSAgICAyCSAgICAvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwgRklYTUU6IHdhcyAyCSovCi0jZGVmaW5lIENGR19BQ1RUT1BSRQkgICAgNQkgICAgLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsIEZJWE1FOiB3YXMgNQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX0NBU19MQVQgIDMJICAgIC8qIFNETU9ERSBDQVMgbGF0YW5jeSAqLwotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAJICAgIDAJICAgIC8qIFNETU9ERSB3cmFwIHR5cGUJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9CVVJTVExFTiAzCSAgICAvKiBTRE1PREUgQnVyc3QgbGVuZ3RoICovCi0jZGVmaW5lIENGR19BQ1RPUlcJICAgIDB4YQkJLyogRklYTUUgd2FzIDIgKi8KLSNkZWZpbmUgQ0ZHX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAxCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJICAgIDIJICAgIC8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbCBGSVhNRTogd2FzIDIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkgICAgNQkgICAgLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsIEZJWE1FOiB3YXMgNQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUICAzCSAgICAvKiBTRE1PREUgQ0FTIGxhdGFuY3kgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkgICAgMAkgICAgLyogU0RNT0RFIHdyYXAgdHlwZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9CVVJTVExFTiAzCSAgICAvKiBTRE1PREUgQnVyc3QgbGVuZ3RoICovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXCSAgICAweGEJCS8qIEZJWE1FIHdhcyAyICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDEKIAotI2RlZmluZSBDRkdfUEdNQVggICAgICAgICAgIDB4MCAvKiBob3cgbG9uZyB0aGUgODI0MCByZWF0aW5zIHRoZSBjdXJyZW50bHkgYWNjZXNzZWQgcGFnZSBpbiBtZW1vcnkgRklYTUU6IHdhcyAweDMyKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QR01BWCAgICAgICAgICAgMHgwIC8qIGhvdyBsb25nIHRoZSA4MjQwIHJlYXRpbnMgdGhlIGN1cnJlbnRseSBhY2Nlc3NlZCBwYWdlIGluIG1lbW9yeSBGSVhNRTogd2FzIDB4MzIqLwogCi0jZGVmaW5lIENGR19TRFJBTV9EU0NECTB4MjAJLyogU0RSQU0gZGF0YSBpbiBzYW1wbGUgY2xvY2sgZGVsYXkgLSBub3RlIGJvdHRvbSAzIGJpdHMgTVVTVCBiZSAwICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRFNDRAkweDIwCS8qIFNEUkFNIGRhdGEgaW4gc2FtcGxlIGNsb2NrIGRlbGF5IC0gbm90ZSBib3R0b20gMyBiaXRzIE1VU1QgYmUgMCAqLwogCiAvKiBNZW1vcnkgYmFuayBzZXR0aW5ncy4KICAqIE9ubHkgYml0cyAyMC0yOSBhcmUgYWN0dWFsbHkgdXNlZCBmcm9tIHRoZXNlIHZhbGVzIHRvIHNldCB0aGUKQEAgLTIxMCwzMiArMjEwLDMyIEBACiAgKiBhZGRyZXNzLiBSZWZlciB0byB0aGUgTVBDODI0MCBib29rLgogICovCiAKLSNkZWZpbmUgQ0ZHX0JBTkswX1NUQVJUCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMF9FTkQJICAgIChDRkdfTUFYX1JBTV9TSVpFIC0gMSkKLSNkZWZpbmUgQ0ZHX0JBTkswX0VOQUJMRSAgICAxCi0jZGVmaW5lIENGR19CQU5LMV9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzFfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMV9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzJfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksyX0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzJfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTkszX1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LM19FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTkszX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNF9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNF9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzVfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzVfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks2X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks2X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LN19TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LN19FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX1NUQVJUCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5ECSAgICAoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VOQUJMRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkFCTEUgICAgMAogCi0jZGVmaW5lIENGR19PRENSCSAgICAweGZmCisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkgICAgMHhmZgogCiAjZGVmaW5lIENPTkZJR19QQ0kgICAgICAgICAgICAgIDEgLyogSW5jbHVkZSBQQ0kgc3VwcG9ydCAqLwogI3VuZGVmIENPTkZJR19QQ0lfUE5QCkBAIC0yNDgsNDIgKzI0OCw0MiBAQAogI2luY2x1ZGUgIi4uL2JvYXJkL2Jtdy9ibXcuaCIKIAogLyogQkFUIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTCAgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgKDB4NzAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMVUgICgweDcwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMICAoMHg3MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgICgweDcwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQyTCAgKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQzTCAgKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMICAoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAgQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVICBDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMICBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgIENGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVICBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMICBDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSAgQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAgQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgIENPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMICBDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSAgQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTAJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTAJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NAkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgcGVyICBmbGFzaCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KIAogLyoKICAqIFdhcmluaW5nOiBlbnZpcm9ubWVudCBpcyBub3QgRU1CRURERUQgaW4gdGhlIFUtQm9vdCBjb2RlLgpAQCAtMjkxLDcgKzI5MSw3IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTSAgICAgIDEKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUgICAgIDEKLSNkZWZpbmUgQ0ZHX05WUkFNX0FDQ0VTU19ST1VUSU5FIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9BQ0NFU1NfUk9VVElORSAxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHg3YzAwNDAwMCAvKiByaWdodCBhdCB0aGUgc3RhcnQgb2YgTlZSQU0gICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxZmYwCS8qIFNpemUgb2YgdGhlIEVudmlyb25tZW50IC0gOEsJICAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTAJLyogc3RhcnRpbmcgcmlnaHQgYXQgdGhlIGJlZ2lubmluZyAqLwpAQCAtMjk5LDkgKzI5OSw5IEBACiAvKgogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICAgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICAgKi8KICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0NBTkJULmggYi9pbmNsdWRlL2NvbmZpZ3MvQ0FOQlQuaAppbmRleCBiZTU4ODM4Li5lM2U2ZTc1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ0FOQlQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQ0FOQlQuaApAQCAtNTAsNyArNTAsNyBAQAogCSJib290bSBmZmUwMDAwMCBmZmU4MDAwMCIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1BDSV9QTlAJCQkvKiBubyBwY2kgcGx1Zy1hbmQtcGxheQkJKi8KIApAQCAtODQsNzQgKzg0LDc0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfRVhUX1NFUklBTF9DTE9DSwkxNDc0NTYwMCAvKiB1c2UgZXh0ZXJuYWwgc2VyaWFsIGNsb2NrCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkxNDc0NTYwMCAvKiB1c2UgZXh0ZXJuYWwgc2VyaWFsIGNsb2NrCSovCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAgICAgXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGNoZWNrIGZvciBrZXlwcmVzcyBvbiBib290ZGVsYXk9PTAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGRTAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRkUwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmIDAgLyogVXNlIEZMQVNIIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KIApAQCAtMTczLDEzICsxNzMsMTMgQEAKICAqIEkyQyBFRVBST00gKENBVDI0V0MwOCkgZm9yIGVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBieXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIGJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIgkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTE5NSwyOSArMTk1LDI5IEBACiAgKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoQ0FOL1VTQikgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDEwMDUzQzAgIC8qIGVuYWJsZSBSZWFkeSwgQkVNPTEJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4MDEwMDUzQzAgIC8qIGVuYWJsZSBSZWFkeSwgQkVNPTEJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDIgKE1pc2MtSU8vTEVEcykgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDAwMDA0YzAgIC8qIG5vIFJlYWR5LCBCRU09MQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4RjAxMTgwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDAwMDA0YzAgIC8qIG5vIFJlYWR5LCBCRU09MQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMTE4MDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKENBTiBGZWF0dXJlcykgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4ODAwMDAwNDAgIC8qIG5vIFJlYWR5LCBCRU09MQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RjAyMUMwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPTMyYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDgwMDAwMDQwICAvKiBubyBSZWFkeSwgQkVNPTEJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJMHhGMDIxQzAwMCAgLyogQkFTPTB4RjAyLEJTPTFNQixCVT1SL1csQlc9MzJiaXQgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgwMGVmMDAwMCAvKiBpbnNpZGUgb2YgU0RSQU0JCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MGYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDAwZWYwMDAwIC8qIGluc2lkZSBvZiBTRFJBTQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MGYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9DQVRjZW50ZXIuaCBiL2luY2x1ZGUvY29uZmlncy9DQVRjZW50ZXIuaAppbmRleCA2OTQ2ODcxLi5hNDRmM2UxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ0FUY2VudGVyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0NBVGNlbnRlci5oCkBAIC02Myw3ICs2Myw3IEBACiAjZGVmaW5lIF9fRElTQUJMRV9NQUNISU5FX0VYQ0VQVElPTl9fCiAKICNpZmRlZiBfX0RFQlVHX1NUQVJUX0ZST01fU1JBTV9fCi0jZGVmaW5lIENGR19EVU1NWV9GTEFTSF9TSVpFCQkxMDI0KjEwMjQqNAorI2RlZmluZSBDT05GSUdfU1lTX0RVTU1ZX0ZMQVNIX1NJWkUJCTEwMjQqMTAyNCo0CiAjZW5kaWYKIAogLyoKQEAgLTEwMiw3ICsxMDIsNyBAQAogI2RlZmluZSBDT05GSUdfRVRIMUFERFIgMDA6NTA6QzI6MUU6QUY6RkQKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAKICN1bmRlZiBDT05GSUdfRVhUX1BIWQpAQCAtMTUyLDUwICsxNTIsNTAgQEAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIAogI2RlZmluZSBDT05GSUdfUlRDX01DMTQ2ODE4CQkvKiBEUzE2ODUgaXMgTUMxNDY4MTggY29tcGF0aWJsZSovCi0jZGVmaW5lIENGR19SVENfUkVHX0JBU0VfQUREUgkgMHhGMDAwMDUwMCAvKiBSVEMgQmFzZSBBZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JUQ19SRUdfQkFTRV9BRERSCSAweEYwMDAwNTAwIC8qIFJUQyBCYXNlIEFkZHJlc3MJCSovCiAKICNkZWZpbmUgQ09ORklHX1NEUkFNX0JBTkswCTEJLyogaW5pdCBvbmJvYXJkIFNEUkFNIGJhbmsgMAkqLwogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI2RlZmluZQlDRkdfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZQlDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkJLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkJNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCQkvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJCTY5MTIwMAogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKQEAgLTIwMywxMyArMjAzLDEzIEBACiAgKiBOQU5ELUZMQVNIIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkQwX0JBU0UgMHhGRjQwMDAwMAotI2RlZmluZSBDRkdfTkFORDFfQkFTRSAweEZGMDAwMDAwCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7IENGR19OQU5EMF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMF9CQVNFIDB4RkY0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMV9CQVNFIDB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0VfTElTVAl7IENPTkZJR19TWVNfTkFORDBfQkFTRSB9CiAjZGVmaW5lIE5BTkRfQklHX0RFTEFZX1VTCTI1CiAKIC8qIEZvciBDQVRjZW50ZXIgdGhlcmUgaXMgb25seSBOQU5EIG9uIHRoZSBtb2R1bGUgKi8KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzCQkqLwogI2RlZmluZSBTRUNUT1JTSVpFIDUxMgogI2RlZmluZSBOQU5EX05PX1JCCiAKQEAgLTIyMSwyNiArMjIxLDI2IEBACiAjZGVmaW5lIE5BTkRfTUFYX0ZMT09SUyAxCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTIDEKIAotI2RlZmluZSBDRkdfTkFORDBfQ0UgICgweDgwMDAwMDAwID4+IDEpCSAvKiBvdXIgQ0UgaXMgR1BJTzEgKi8KLSNkZWZpbmUgQ0ZHX05BTkQwX0NMRSAoMHg4MDAwMDAwMCA+PiAyKQkgLyogb3VyIENMRSBpcyBHUElPMiAqLwotI2RlZmluZSBDRkdfTkFORDBfQUxFICgweDgwMDAwMDAwID4+IDMpCSAvKiBvdXIgQUxFIGlzIEdQSU8zICovCi0jZGVmaW5lIENGR19OQU5EMF9SRFkgKDB4ODAwMDAwMDAgPj4gNCkJIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMF9DRSAgKDB4ODAwMDAwMDAgPj4gMSkJIC8qIG91ciBDRSBpcyBHUElPMSAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQwX0NMRSAoMHg4MDAwMDAwMCA+PiAyKQkgLyogb3VyIENMRSBpcyBHUElPMiAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQwX0FMRSAoMHg4MDAwMDAwMCA+PiAzKQkgLyogb3VyIEFMRSBpcyBHUElPMyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQwX1JEWSAoMHg4MDAwMDAwMCA+PiA0KQkgLyogb3VyIFJEWSBpcyBHUElPNCAqLwogCi0jZGVmaW5lIENGR19OQU5EMV9DRSAgKDB4ODAwMDAwMDAgPj4gMTQpICAvKiBvdXIgQ0UgaXMgR1BJTzE0ICovCi0jZGVmaW5lIENGR19OQU5EMV9DTEUgKDB4ODAwMDAwMDAgPj4gMTUpICAvKiBvdXIgQ0xFIGlzIEdQSU8xNSAqLwotI2RlZmluZSBDRkdfTkFORDFfQUxFICgweDgwMDAwMDAwID4+IDE2KSAgLyogb3VyIEFMRSBpcyBHUElPMTYgKi8KLSNkZWZpbmUgQ0ZHX05BTkQxX1JEWSAoMHg4MDAwMDAwMCA+PiAzMSkgIC8qIG91ciBSRFkgaXMgR1BJTzMxICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDFfQ0UgICgweDgwMDAwMDAwID4+IDE0KSAgLyogb3VyIENFIGlzIEdQSU8xNCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQxX0NMRSAoMHg4MDAwMDAwMCA+PiAxNSkgIC8qIG91ciBDTEUgaXMgR1BJTzE1ICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDFfQUxFICgweDgwMDAwMDAwID4+IDE2KSAgLyogb3VyIEFMRSBpcyBHUElPMTYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMV9SRFkgKDB4ODAwMDAwMDAgPj4gMzEpICAvKiBvdXIgUkRZIGlzIEdQSU8zMSAqLwogCiAKICNkZWZpbmUgTUFDUk9fTkFORF9ESVNBQkxFX0NFKG5hbmRwdHIpIGRvIFwKIHsgXAogCXN3aXRjaCgodW5zaWduZWQgbG9uZyluYW5kcHRyKSBcCiAJeyBcCi0JICAgIGNhc2UgQ0ZHX05BTkQwX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX05BTkQwX0NFKTsgXAorCSAgICBjYXNlIENPTkZJR19TWVNfTkFORDBfQkFTRTogXAorCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkQwX0NFKTsgXAogCQlicmVhazsgXAotCSAgICBjYXNlIENGR19OQU5EMV9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19OQU5EMV9DRSk7IFwKKwkgICAgY2FzZSBDT05GSUdfU1lTX05BTkQxX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19OQU5EMV9DRSk7IFwKIAkJYnJlYWs7IFwKIAl9IFwKIH0gd2hpbGUoMCkKQEAgLTI0OSwxMSArMjQ5LDExIEBACiB7IFwKIAlzd2l0Y2goKHVuc2lnbmVkIGxvbmcpbmFuZHB0cikgXAogCXsgXAotCSAgICBjYXNlIENGR19OQU5EMF9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfTkFORDBfQ0UpOyBcCisJICAgIGNhc2UgQ09ORklHX1NZU19OQU5EMF9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX05BTkQwX0NFKTsgXAogCQlicmVhazsgXAotCSAgICBjYXNlIENGR19OQU5EMV9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfTkFORDFfQ0UpOyBcCisJICAgIGNhc2UgQ09ORklHX1NZU19OQU5EMV9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX05BTkQxX0NFKTsgXAogCQlicmVhazsgXAogCX0gXAogfSB3aGlsZSgwKQpAQCAtMjYyLDExICsyNjIsMTEgQEAKIHsgXAogCXN3aXRjaCgodW5zaWduZWQgbG9uZyluYW5kcHRyKSBcCiAJeyBcCi0JICAgIGNhc2UgQ0ZHX05BTkQwX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNGR19OQU5EMF9BTEUpOyBcCisJICAgIGNhc2UgQ09ORklHX1NZU19OQU5EMF9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX05BTkQwX0FMRSk7IFwKIAkJYnJlYWs7IFwKLQkgICAgY2FzZSBDRkdfTkFORDFfQkFTRTogXAotCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q0ZHX05BTkQxX0FMRSk7IFwKKwkgICAgY2FzZSBDT05GSUdfU1lTX05BTkQxX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfTkFORDFfQUxFKTsgXAogCQlicmVhazsgXAogCX0gXAogfSB3aGlsZSgwKQpAQCAtMjc1LDExICsyNzUsMTEgQEAKIHsgXAogCXN3aXRjaCgodW5zaWduZWQgbG9uZyluYW5kcHRyKSBcCiAJeyBcCi0JICAgIGNhc2UgQ0ZHX05BTkQwX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX05BTkQwX0FMRSk7IFwKKwkgICAgY2FzZSBDT05GSUdfU1lTX05BTkQwX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19OQU5EMF9BTEUpOyBcCiAJCWJyZWFrOyBcCi0JICAgIGNhc2UgQ0ZHX05BTkQxX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX05BTkQxX0FMRSk7IFwKKwkgICAgY2FzZSBDT05GSUdfU1lTX05BTkQxX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19OQU5EMV9BTEUpOyBcCiAJCWJyZWFrOyBcCiAJfSBcCiB9IHdoaWxlKDApCkBAIC0yODgsMjIgKzI4OCwyMiBAQAogeyBcCiAJc3dpdGNoKCh1bnNpZ25lZCBsb25nKW5hbmRwdHIpIFwKIAl7IFwKLQkgICAgY2FzZSBDRkdfTkFORDBfQkFTRTogXAotCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q0ZHX05BTkQwX0NMRSk7IFwKKwkgICAgY2FzZSBDT05GSUdfU1lTX05BTkQwX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfTkFORDBfQ0xFKTsgXAogCQlicmVhazsgXAotCSAgICBjYXNlIENGR19OQU5EMV9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfTkFORDFfQ0xFKTsgXAorCSAgICBjYXNlIENPTkZJR19TWVNfTkFORDFfQkFTRTogXAorCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q09ORklHX1NZU19OQU5EMV9DTEUpOyBcCiAJCWJyZWFrOyBcCiAJfSBcCiB9IHdoaWxlKDApCiAKICNkZWZpbmUgTUFDUk9fTkFORF9DVExfU0VUQ0xFKG5hbmRwdHIpIGRvIHsgXAogCXN3aXRjaCgodW5zaWduZWQgbG9uZyluYW5kcHRyKSB7IFwKLQljYXNlIENGR19OQU5EMF9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19OQU5EMF9DTEUpOyBcCisJY2FzZSBDT05GSUdfU1lTX05BTkQwX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19OQU5EMF9DTEUpOyBcCiAJCWJyZWFrOyBcCi0JY2FzZSBDRkdfTkFORDFfQkFTRTogXAotCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDRkdfTkFORDFfQ0xFKTsgXAorCWNhc2UgQ09ORklHX1NZU19OQU5EMV9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfTkFORDFfQ0xFKTsgXAogCQlicmVhazsgXAogCX0gXAogfSB3aGlsZSgwKQpAQCAtMzM5LDU2ICszMzksNTYgQEAKIAogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogcHJpbnQgcGNpIGRldmljZXMgQCBzdGFydHVwCSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDE0CS8qIFBDSSBWZW5kb3IgSUQ6IElCTQkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDAwMDAJLyogUENJIERldmljZSBJRDogLS0tCSovCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFCTB4MGIyMAkvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwMTQJLyogUENJIFZlbmRvciBJRDogSUJNCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDAwMDAJLyogUENJIERldmljZSBJRDogLS0tCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLwogCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogI2VuZGlmCS8qIE5vIFBDSSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVudmlyb25tZW50IFZhcmlhYmxlIHNldHVwCkBAIC0zOTksMzUgKzM5OSwzNSBAQAogI2RlZmluZSBDT05GSUdfRU5WX0FERFJfUkVEVU5ECTB4RkZGRkEwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkweDIwMDAKIAotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4RjAwMDA1MDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0vKiNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ki8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLworLyojZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0RDQUNIRV9TSVpFCQkxNjM4NAkvKiBGb3IgQU1DQyA0MDUgQ1BVcywgb2xkZXIgNDA1IHBwYydzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NJWkUJCTE2Mzg0CS8qIEZvciBBTUNDIDQwNSBDUFVzLCBvbGRlciA0MDUgcHBjJ3MJKi8KIAkJCQkJLyogaGF2ZSBvbmx5IDhrQiwgMTZrQiBpcyBzYXZlIGhlcmUJKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIC4uLgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogLi4uCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKgpAQCAtNDQzLDIxICs0NDMsMjEgQEAKICAqLwogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDAsIE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAxIChFeHRlcm5hbCBTUkFNKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KIC8qIFNpbmNlIHRoaXMgbXVzdCByZXBsYWNlIE5PUiBGbGFzaCwgd2UgdXNlIHRoZSBzYW1lIHNldHRpbmdzIGZvciBDUzAJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAyIChGbGFzaCBCYW5rIDEsIE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEZGNDU4MDAwICAvKiBCQVM9MHhGRjQsQlM9NE1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEZGNDU4MDAwICAvKiBCQVM9MHhGRjQsQlM9NE1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKEZsYXNoIEJhbmsgMiwgTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RkYwNTgwMDAgIC8qIEJBUz0weEZGMCxCUz00TUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCTB4RkYwNTgwMDAgIC8qIEJBUz0weEZGMCxCUz00TUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogI2lmZGVmIENPTkZJR19QUENIQU1FTEVPTl9TTUk3MTIKIC8qCkBAIC00NzEsNjYgKzQ3MSw2NiBAQAogI2RlZmluZSBDT05GSUdfQ09OU09MRV9FWFRSQV9JTkZPCiAjZGVmaW5lIENPTkZJR19WR0FfQVNfU0lOR0xFX0RFVklDRQogLyogVGhpcyBpcyB0aGUgYmFzZSBhZGRyZXNzIChvbiA0MDVFUC1zaWRlKSB1c2VkIHRvIGdlbmVyYXRlIEkvTyBhY2Nlc3NlcyBvbiBQQ0kgYnVzICovCi0jZGVmaW5lIENGR19JU0FfSU8gMHhFODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JTyAweEU4MDAwMDAwCiAvKiBzZWUgYWxzbyBkcml2ZXJzL3ZpZGVvL3ZpZGVvbW9kZXMuYyAqLwotI2RlZmluZSBDRkdfREVGQVVMVF9WSURFT19NT0RFIDB4MzAzCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9WSURFT19NT0RFIDB4MzAzCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgogICovCiAvKiBGUEdBIGludGVybmFsIHJlZ3MgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERQkJMHgwMAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVMJCTB4MDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFMJCTB4MDQKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfTE9XCQkweDA2Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDAJMHgxMAotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAwX0xPVwkweDEyCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDEJMHgxNAotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAxX0xPVwkweDE2Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDIJMHgxOAotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAyX0xPVwkweDFhCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDMJMHgxYwotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAzX0xPVwkweDFlCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFCQkweDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVMJCTB4MDIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTCQkweDA0CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19MT1cJCTB4MDYKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDAJMHgxMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMF9MT1cJMHgxMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMQkweDE0CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAxX0xPVwkweDE2CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAyCTB4MTgKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDJfTE9XCTB4MWEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDMJMHgxYworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQM19MT1cJMHgxZQogCiAvKiBGUEdBIE1vZGUgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX01PREVfQ0ZfUkVTRVQJMHgwMDAxCi0jZGVmaW5lIENGR19GUEdBX01PREVfVFNfSVJRX0VOQUJMRSAweDAxMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9UU19JUlFfQ0xFQVIgIDB4MTAwMAotI2RlZmluZSBDRkdfRlBHQV9NT0RFX1RTX0NMRUFSCTB4MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9DRl9SRVNFVAkweDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVFNfSVJRX0VOQUJMRSAweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVFNfSVJRX0NMRUFSICAweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVFNfQ0xFQVIJMHgyMDAwCiAKIC8qIEZQR0EgU3RhdHVzIFJlZyAqLwotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfRElQMAkweDAwMDEKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0RJUDEJMHgwMDAyCi0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19ESVAyCTB4MDAwNAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfRkxBU0gJMHgwMDA4Ci0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19UU19JUlEJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRElQMAkweDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19ESVAxCTB4MDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0RJUDIJMHgwMDA0CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRkxBU0gJMHgwMDA4CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfVFNfSVJRCTB4MTAwMAogCi0jZGVmaW5lIENGR19GUEdBX1NQQVJUQU4yCTEJCS8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93CSovCi0jZGVmaW5lIENGR19GUEdBX01BWF9TSVpFCTEyOCoxMDI0CS8qIDEyOGtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzUwRSovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TUEFSVEFOMgkxCQkvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUJMTI4KjEwMjQJLyogMTI4a0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTNTBFKi8KIAogLyogRlBHQSBwcm9ncmFtIHBpbiBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GUEdBX1BSRwkJMHgwNDAwMDAwMAkvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MDIwMDAwMDAJLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KQkqLwotI2RlZmluZSBDRkdfRlBHQV9EQVRBCQkweDAxMDAwMDAwCS8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpCSovCi0jZGVmaW5lIENGR19GUEdBX0lOSVQJCTB4MDAwMTAwMDAJLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KQkqLwotI2RlZmluZSBDRkdfRlBHQV9ET05FCQkweDAwMDA4MDAwCS8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BSRwkJMHgwNDAwMDAwMAkvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ0xLCQkweDAyMDAwMDAwCS8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RBVEEJCTB4MDEwMDAwMDAJLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lOSVQJCTB4MDAwMTAwMDAJLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORQkJMHgwMDAwODAwMAkvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkxCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBHUElPIHNldHVwIChQUEM0MDVFUCBzcGVjaWZpYykKQEAgLTU0NSwxNCArNTQ1LDE0IEBACiAgKiBHUElPMFszMF0JLSBFTUFDMCBpbnB1dAogICogR1BJTzBbMzFdCS0gRU1BQzEgcmVqZWN0IHBhY2tldCBhcyBvdXRwdXQKICAqLwotI2RlZmluZSBDRkdfR1BJTzBfT1NSSAkJMHg0MDAwMDU1MAotI2RlZmluZSBDRkdfR1BJTzBfT1NSTAkJMHgwMDAwMDExMAotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAKLS8qI2RlZmluZSBDRkdfR1BJTzBfSVNSMUwJMHgxNTU1NTQ0NSovCi0jZGVmaW5lIENGR19HUElPMF9JU1IxTAkJMHgxNTU1NTQ0NAotI2RlZmluZSBDRkdfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVENSCQkweEY3RkY4MDE0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSSAkJMHg0MDAwMDU1MAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMAorLyojZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUwJMHgxNTU1NTQ0NSovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUwJCTB4MTU1NTU0NDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RDUgkJMHhGN0ZGODAxNAogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKQEAgLTc2MCwxNyArNzYwLDE3IEBACiAvKiBNb2RlbCBISSAqLwogI2RlZmluZSBQTExNUjBfREVGQVVMVAlQUENIQU1FTEVPTl9QTExNUjBfMzMzXzExMV8zN181NV81NQogI2RlZmluZSBQTExNUjFfREVGQVVMVAlQUENIQU1FTEVPTl9QTExNUjFfMzMzXzExMV8zN181NV81NQotI2RlZmluZSBDRkdfT1BCX0ZSRVEJNTU1NTU1NTUKKyNkZWZpbmUgQ09ORklHX1NZU19PUEJfRlJFUQk1NTU1NTU1NQogLyogTW9kZWwgTUUgKi8KICNlbGlmIChDT05GSUdfUFBDSEFNRUxFT05fTU9EVUxFX01PREVMID09IENPTkZJR19QUENIQU1FTEVPTl9NT0RVTEVfTUUpCiAjZGVmaW5lIFBMTE1SMF9ERUZBVUxUCVBQQ0hBTUVMRU9OX1BMTE1SMF8yNjZfMTMzXzMzXzY2XzMzCiAjZGVmaW5lIFBMTE1SMV9ERUZBVUxUCVBQQ0hBTUVMRU9OX1BMTE1SMV8yNjZfMTMzXzMzXzY2XzMzCi0jZGVmaW5lIENGR19PUEJfRlJFUQk2NjY2NjY2NgorI2RlZmluZSBDT05GSUdfU1lTX09QQl9GUkVRCTY2NjY2NjY2CiAjZWxzZQogLyogTW9kZWwgQkEgKGRlZmF1bHQpICovCiAjZGVmaW5lIFBMTE1SMF9ERUZBVUxUCVBQQ0hBTUVMRU9OX1BMTE1SMF8xMzNfMTMzXzMzXzY2XzMzCiAjZGVmaW5lIFBMTE1SMV9ERUZBVUxUCVBQQ0hBTUVMRU9OX1BMTE1SMV8xMzNfMTMzXzMzXzY2XzMzCi0jZGVmaW5lIENGR19PUEJfRlJFUQk2NjY2NjY2NgorI2RlZmluZSBDT05GSUdfU1lTX09QQl9GUkVRCTY2NjY2NjY2CiAjZW5kaWYKIAogI2VuZGlmIC8qIENPTkZJR19OT19TRVJJQUxfRUVQUk9NICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ0NNLmggYi9pbmNsdWRlL2NvbmZpZ3MvQ0NNLmgKaW5kZXggNDM1ZThlYy4uZDFjMjkzZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0NDTS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DQ00uaApAQCAtNjUsNyArNjUsNyBAQAogCQkJCSJib290bSIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lCUNPTkZJR19XQVRDSERPRwkJMQkvKiB3YXRjaGRvZyBlbmFibGVkCQkqLwogCkBAIC04Niw5ICs4Niw5IEBACiAgKiBmYXIgZW5vdWdoIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBkYXRhIGFyZWEgKGFzIHdlbGwgYXMgZnJvbSB0aGUKICAqIHN0YWNrIHBvaW50ZXIpLgogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotI2RlZmluZSBDRkdfU1BJX0lOSVRfT0ZGU0VUCQkweEIwMAorI2RlZmluZSBDT05GSUdfU1lTX1NQSV9JTklUX09GRlNFVAkJMHhCMDAKIAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qIDMyLWJ5dGUgcGFnZSBzaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qIDMyLWJ5dGUgcGFnZSBzaXplCSovCiAKIAogI2RlZmluZSBDT05GSUdfTUFDX1BBUlRJVElPTgkJLyogbm9kIHVzZWQgeWV0CQkJKi8KQEAgLTEyMCw0NiArMTIwLDQ2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEYwMDAwMAkvKiAxIC4uLiAxNU1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwRjAwMDAwCS8qIDEgLi4uIDE1TUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAogLyogRXRoZXJuZXQgaGFyZHdhcmUgY29uZmlndXJhdGlvbiBkb25lIHVzaW5nIHBvcnQgcGlucyAqLwotI2RlZmluZSBDRkdfUEFfRVRIX1JFU0VUCTB4MDIwMAkJLyogUEEgIDYJKi8KLSNkZWZpbmUgQ0ZHX1BBX0VUSF9NRERJUwkweDQwMDAJCS8qIFBBICAxCSovCi0jZGVmaW5lIENGR19QQl9FVEhfUE9XRVJET1dOCTB4MDAwMDA4MDAJLyogUEIgMjAJKi8KLSNkZWZpbmUgQ0ZHX1BCX0VUSF9DRkcxCQkweDAwMDAwNDAwCS8qIFBCIDIxCSovCi0jZGVmaW5lIENGR19QQl9FVEhfQ0ZHMgkJMHgwMDAwMDIwMAkvKiBQQiAyMgkqLwotI2RlZmluZSBDRkdfUEJfRVRIX0NGRzMJCTB4MDAwMDAxMDAJLyogUEIgMjMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQV9FVEhfUkVTRVQJMHgwMjAwCQkvKiBQQSAgNgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BBX0VUSF9NRERJUwkweDQwMDAJCS8qIFBBICAxCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJfRVRIX1BPV0VSRE9XTgkweDAwMDAwODAwCS8qIFBCIDIwCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJfRVRIX0NGRzEJCTB4MDAwMDA0MDAJLyogUEIgMjEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9FVEhfQ0ZHMgkJMHgwMDAwMDIwMAkvKiBQQiAyMgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCX0VUSF9DRkczCQkweDAwMDAwMTAwCS8qIFBCIDIzCSovCiAKIC8qIEV0aGVybmV0IHNldHRpbmdzOgogICogTURJTyBub3QgZGlzYWJsZWQsIGF1dG9uZWdvdGlhdGlvbiwgMTAvMTAwTWJwcywgaGFsZi9mdWxsIGR1cGxleAogICovCi0jZGVmaW5lIENGR19FVEhfTURESVNfVkFMVUUJMAotI2RlZmluZSBDRkdfRVRIX0NGRzFfVkFMVUUJMQotI2RlZmluZSBDRkdfRVRIX0NGRzJfVkFMVUUJMQotI2RlZmluZSBDRkdfRVRIX0NGRzNfVkFMVUUJMQorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9NRERJU19WQUxVRQkwCisjZGVmaW5lIENPTkZJR19TWVNfRVRIX0NGRzFfVkFMVUUJMQorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9DRkcyX1ZBTFVFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FVEhfQ0ZHM19WQUxVRQkxCiAKIC8qIFBVTUEgY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfUENfUFVNQV9QUk9HCTB4MDIwMAkJLyogUEMgIDYgICAgICAgICovCi0jZGVmaW5lIENGR19QQ19QVU1BX0RPTkUJMHgwMDA4CQkvKiBQQyAxMgkqLwotI2RlZmluZSBDRkdfUENfUFVNQV9JTklUCTB4MDAwNAkJLyogUEMgMTMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ19QVU1BX1BST0cJMHgwMjAwCQkvKiBQQyAgNiAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ19QVU1BX0RPTkUJMHgwMDA4CQkvKiBQQyAxMgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDX1BVTUFfSU5JVAkweDAwMDQJCS8qIFBDIDEzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjksNTIgKzE2OSw1MiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEFkZHJlc3MgYWNjZXNzZWQgdG8gcmVzZXQgdGhlIGJvYXJkIC0gbXVzdCBub3QgYmUgbWFwcGVkL2Fzc2lnbmVkCiAgKi8KLSNkZWZpbmUJQ0ZHX1JFU0VUX0FERFJFU1MJMHhGRUZGRkZGRgorI2RlZmluZQlDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhGRUZGRkZGRgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCiAjaWYgZGVmaW5lZChERUJVRykKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2lmIDEKIC8qIFN0YXJ0IHBvcnQgd2l0aCBlbnZpcm9ubWVudCBpbiBmbGFzaDsgc3dpdGNoIHRvIFNQSSBFRVBST00gbGF0ZXIgKi8KQEAgLTIzNSwxNSArMjM1LDE1IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTWVBDUiAtIFN5c3RlbSBQcm90ZWN0aW9uIENvbnRyb2wJCQkJMTEtOQpAQCAtMjUyLDEwICsyNTIsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJCQkJICBTWVBDUl9TV1ApCiAjZW5kaWYKIApAQCAtMjY0LDI3ICsyNjQsMjcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4KICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI5NSwxMCArMjk1LDEwIEBACiAgKiBJZiB0aGlzIGlzIGEgODAgTUh6IENQVSwgc2V0IFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgdG8gNSAoNSoxNj04MCkhCiAgKi8KICNpZmRlZglDQ01fODBNSHoJLyogZm9yIDgwIE1Ieiwgd2UgdXNlIGEgMTYgTUh6IGNsb2NrICogNSAqLwotI2RlZmluZSBDRkdfUExQUkNSCQkJCQkJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJCQkJCQkJXAogCQkoICg1LTEpPDxQTFBSQ1JfTUZfU0hJRlQgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QgKQogI2Vsc2UJCQkvKiB1cCB0byA1MCBNSHogd2UgdXNlIGEgMToxIGNsb2NrICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKICNlbmRpZgkvKiBDQ01fODBNSHogKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzA5LDEyICszMDksMTIgQEAKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKICNpZmRlZglDQ01fODBNSHoJLyogZm9yIDgwIE1Ieiwgd2UgdXNlIGEgMTYgTUh6IGNsb2NrICogNSAqLwotI2RlZmluZSBDRkdfU0NDUgkoLyogU0NDUl9UQlMgIHwgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKC8qIFNDQ1JfVEJTICB8ICovIFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogI2Vsc2UJCQkvKiB1cCB0byA1MCBNSHogd2UgdXNlIGEgMToxIGNsb2NrICovCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCkBAIC0zMjUsMTQgKzMyNSwxNCBAQAogICogSW50ZXJydXB0IExldmVscwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19DUE1fSU5URVJSVVBUCTEzCS8qIFNJVV9MRVZFTDYJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUE1fSU5URVJSVVBUCTEzCS8qIFNJVV9MRVZFTDYJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNDcsMjAgKzM0NywyMCBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDExLCBUUkxYID0gMCwgQ1NOVCA9IDEsIFNDWSA9IDUsIEVIVFIgPSAxCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVYyIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWMiB8IE9SX0JJIHwgXAogCQkJCSBPUl9TQ1lfNV9DTEsgfCBPUl9FSFRSKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyoKICAqIEJSMiBhbmQgT1IyIChTRFJBTSkKQEAgLTM3MSwxOCArMzcxLDE4IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogLyoKICAqIEJSMyBhbmQgT1IzIChDQU4gQ29udHJvbGxlcikKICAqLwotI2RlZmluZQlDRkdfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCi0jZGVmaW5lIENGR19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLwotI2RlZmluZSBDRkdfT1IzX0NBTgkJKENGR19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCi0jZGVmaW5lIENGR19CUjNfQ0FOCQkoKENGR19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCisjZGVmaW5lCUNPTkZJR19TWVNfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfQ0FOCQkoQ09ORklHX1NZU19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX0NBTgkJKChDT05GSUdfU1lTX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKIAkJCQkJQlJfUFNfOCB8IEJSX01TX1VQTUIgfCBCUl9WICkKIAogLyoKQEAgLTQwOSw4ICs0MDksOCBAQAogI2RlZmluZSBQVU1BX0NPTkZfQlJfUkVBRAkoKFBVTUFfQ09ORl9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfVikKICNkZWZpbmUgUFVNQV9DT05GX09SX1JFQUQJKFBVTUFfQ09ORl9PUl9BTSB8IFBVTUFfQ09ORl9SRUFEX1RJTUlORykKIAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkJUFVNQV9DT05GX0JSX1JFQUQKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JCVBVTUFfQ09ORl9PUl9SRUFECisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkJUFVNQV9DT05GX0JSX1JFQUQKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCQlQVU1BX0NPTkZfT1JfUkVBRAogCiAvKgogICogQlI1L09SNTogUFVNQTogU01BIEJ1cyA4IEJpdApAQCAtNDIwLDggKzQyMCw4IEBACiAjZGVmaW5lIFBVTUFfU01BOF9PUl9BTQkJMHhGRkUwMDAwMAkvKiAyIE1CICovCiAjZGVmaW5lIFBVTUFfU01BOF9USU1JTkcJKE9SX0JJIHwgT1JfU0NZXzBfQ0xLIHwgT1JfRUhUUikKIAotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJKChQVU1BX1NNQThfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JCShQVU1BX1NNQThfT1JfQU0gfCBQVU1BX1NNQThfVElNSU5HIHwgT1JfU0VUQSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCQkoKFBVTUFfU01BOF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JCShQVU1BX1NNQThfT1JfQU0gfCBQVU1BX1NNQThfVElNSU5HIHwgT1JfU0VUQSkKIAogLyoKICAqIEJSNi9PUjY6IFBVTUE6IFNNQSBCdXMgMTYgQml0CkBAIC00MzEsOCArNDMxLDggQEAKICNkZWZpbmUgUFVNQV9TTUExNl9PUl9BTQkweEZGRTAwMDAwCS8qIDIgTUIgKi8KICNkZWZpbmUgUFVNQV9TTUExNl9USU1JTkcJKE9SX0JJIHwgT1JfU0NZXzBfQ0xLIHwgT1JfRUhUUikKIAotI2RlZmluZSBDRkdfQlI2X1BSRUxJTQkJKChQVU1BX1NNQTE2X0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQotI2RlZmluZSBDRkdfT1I2X1BSRUxJTQkJKFBVTUFfU01BMTZfT1JfQU0gfCBQVU1BX1NNQTE2X1RJTUlORyB8IE9SX1NFVEEpCisjZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTQkJKChQVU1BX1NNQTE2X0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SNl9QUkVMSU0JCShQVU1BX1NNQTE2X09SX0FNIHwgUFVNQV9TTUExNl9USU1JTkcgfCBPUl9TRVRBKQogCiAvKgogICogQlI3L09SNzogUFVNQTogZXh0ZXJuYWwgRmxhc2gKQEAgLTQ0Miw4ICs0NDIsOCBAQAogI2RlZmluZSBQVU1BX0ZMQVNIX09SX0FNCTB4RkUwMDAwMDAJLyogMzIgTUIgKi8KICNkZWZpbmUgUFVNQV9GTEFTSF9USU1JTkcJKE9SX0JJIHwgT1JfU0NZXzBfQ0xLIHwgT1JfRUhUUikKIAotI2RlZmluZSBDRkdfQlI3X1BSRUxJTQkJKChQVU1BX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQotI2RlZmluZSBDRkdfT1I3X1BSRUxJTQkJKFBVTUFfRkxBU0hfT1JfQU0gfCBQVU1BX0ZMQVNIX1RJTUlORyB8IE9SX1NFVEEpCisjZGVmaW5lIENPTkZJR19TWVNfQlI3X1BSRUxJTQkJKChQVU1BX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SN19QUkVMSU0JCShQVU1BX0ZMQVNIX09SX0FNIHwgUFVNQV9GTEFTSF9USU1JTkcgfCBPUl9TRVRBKQogCiAKIC8qCkBAIC00NTEsMjYgKzQ1MSwyNiBAQAogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJOTcJCS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IegkqLwogCiAvKiByZWZyZXNoIHJhdGUgMTUuNiB1cyAoPSA2NCBtcyAvIDRLID0gNjIuNCAvIHF1YWQgYnVyc3RzKSBmb3IgPD0gMTI4IE1CaXQJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ01TNzAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvQ01TNzAwLmgKaW5kZXggOWFlYzc0Ni4uZDU4ZjUwOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0NNUzcwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DTVM3MDAuaApAQCAtNTAsNyArNTAsNyBAQAogCiAjZGVmaW5lIENPTkZJR19QUkVCT09UICAgICAgICAgICAgICAgICAgLyogZW5hYmxlIHByZWJvb3QgdmFyaWFibGUgICAgICAqLwogCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjdW5kZWYgIENPTkZJR19IQVNfRVRIMQpAQCAtOTksNzQgKzk5LDc0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI3VuZGVmCUNGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECSAgICA2OTEyMDAKICNkZWZpbmUJQ09ORklHX1VBUlQxX0NPTlNPTEUJCS8qIGRlZmluZSBmb3IgdWFydDEgYXMgY29uc29sZQkqLwogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVEMgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogI2RlZmluZSBDT05GSUdfUlRDX0RTMTMzNwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOQU5ELUZMQVNIIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRV9MSVNUCXsgQ0ZHX05BTkRfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFX0xJU1QJeyBDT05GSUdfU1lTX05BTkRfQkFTRSB9CiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTICAgICAgICAgIDEKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxICAgICAgICAgLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMSAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCiAjZGVmaW5lIE5BTkRfQklHX0RFTEFZX1VTCTI1CiAKLSNkZWZpbmUgQ0ZHX05BTkRfQ0UgICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMSkgICAvKiBvdXIgQ0UgaXMgR1BJTzEgICovCi0jZGVmaW5lIENGR19OQU5EX1JEWSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDQpICAgLyogb3VyIFJEWSBpcyBHUElPNCAqLwotI2RlZmluZSBDRkdfTkFORF9DTEUgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAyKSAgIC8qIG91ciBDTEUgaXMgR1BJTzIgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQUxFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMykgICAvKiBvdXIgQUxFIGlzIEdQSU8zICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DRSAgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAxKSAgIC8qIG91ciBDRSBpcyBHUElPMSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1JEWSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDQpICAgLyogb3VyIFJEWSBpcyBHUElPNCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0xFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMikgICAvKiBvdXIgQ0xFIGlzIEdQSU8yICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9BTEUgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAzKSAgIC8qIG91ciBBTEUgaXMgR1BJTzMgKi8KIAotI2RlZmluZSBDRkdfTkFORF9TS0lQX0JBRF9ET1RfSSAxICAgICAgIC8qICIuaSIgcmVhZCBza2lwcyBiYWQgYmxvY2tzICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUVVJRVQgICAgICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfU0tJUF9CQURfRE9UX0kgMSAgICAgICAvKiAiLmkiIHJlYWQgc2tpcHMgYmFkIGJsb2NrcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9RVUlFVCAgICAgICAgICAxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTgzLDY2ICsxODMsNjYgQEAKIAogI3VuZGVmCUNPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBwcmludCBwY2kgZGV2aWNlcyBAIHN0YXJ0dXAJKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1CS8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1CSovCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFCTB4MGIyMAkvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1CS8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4ZmZjMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4RkZDMDAwMDAJLyogRkxBU0ggYmFuayAjMAkqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmIDAgLyogdGVzdC1vbmx5ICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LCTAJICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUwkxCSAgICAvKiAhIHNlY29uZCBiYW5rIGNvbnRhaW5zIFUtQm9vdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksJMAkgICAgLyogdXNlIGZvciBKRkZTMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwkxCSAgICAvKiAhIHNlY29uZCBiYW5rIGNvbnRhaW5zIFUtQm9vdCAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgRkxBU0hfQkFTRTBfUFJFTElNKQotIyBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBGTEFTSF9CQVNFMF9QUkVMSU0pCisjIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbHNlCi0jIHVuZGVmIENGR19SQU1CT09UCisjIHVuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1Nyw2NiArMjU3LDY2IEBACiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCi0jZGVmaW5lIENGR19FRVBST01fV1JFTiAgICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fV1JFTiAgICAgICAgIDEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXh0ZXJuYWwgQnVzIENvbnRyb2xsZXIgKEVCQykgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfUExEX0JBU0UgICAgICAgICAgICAweGYwMDAwMDAwCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJICAgICAgICAweEY0MDAwMDAwICAvKiBOQU5EIEZMQVNIIEJhc2UgQWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QTERfQkFTRSAgICAgICAgICAgIDB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJICAgICAgICAweEY0MDAwMDAwICAvKiBOQU5EIEZMQVNIIEJhc2UgQWRkcmVzcwkJKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwLCBOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoRmxhc2ggQmFuayAxLCBOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGNDAxODAwMCAgLyogQkFTPTB4RjQwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGNDAxODAwMCAgLyogQkFTPTB4RjQwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAyICg4IEJpdCBQZXJpcGhlcmFsOiBDQU4sIFVBUlQsIFJUQykgaW5pdGlhbGl6YXRpb24JCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgogICovCi0jZGVmaW5lIENGR19GUEdBX1hDOTVYTAkJMQkgICAgLyogdXNpbmcgWGlsaW54IFhDOTVYTCBDUExECSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTUFYX1NJWkUJMzIqMTAyNAkgICAgLyogMzJrQnl0ZSBpcyBlbm91Z2ggZm9yIENQTEQgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1hDOTVYTAkJMQkgICAgLyogdXNpbmcgWGlsaW54IFhDOTVYTCBDUExECSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFCTMyKjEwMjQJICAgIC8qIDMya0J5dGUgaXMgZW5vdWdoIGZvciBDUExEICAgICovCiAKIC8qIEZQR0EgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEpUQUcgVE1TIHBpbiAocHBjIG91dHB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogSlRBRyBUQ0sgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogSlRBRyBURE8tPlRESSBkYXRhIHBpbiAocHBjIG91dHB1dCkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogdW51c2VkIChwcGMgaW5wdXQpCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORQkJMHgwMDAwODAwMCAgLyogSlRBRyBUREktPlRETyBwaW4gKHBwYyBpbnB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogSlRBRyBUTVMgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogSlRBRyBUQ0sgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEpUQUcgVERPLT5UREkgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9JTklUCQkweDAwMDEwMDAwICAvKiB1bnVzZWQgKHBwYyBpbnB1dCkJICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORQkJMHgwMDAwODAwMCAgLyogSlRBRyBUREktPlRETyBwaW4gKHBwYyBpbnB1dCkgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCiAvKiB1c2Ugb24gY2hpcCBtZW1vcnkgKCBPQ00gKSBmb3IgdGVtcGVyYXJ5IHN0YWNrIHVudGlsIHNkcmFtIGlzIHRlc3RlZCAqLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00JICAxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JICAxCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBHUElPIHNldHVwIChQUEM0MDVFUCBzcGVjaWZpYykKQEAgLTMzNCwxNiArMzM0LDE2IEBACiAvKiBHUElPIE91dHB1dDoJCU9TUj0wMCwgSVNSPTAwLCBUU1I9MDAsIFRDUj0xICovCiAvKiBBbHQuIEZ1bnRpb24gSW5wdXQ6CU9TUj0wMCwgSVNSPTAxLCBUU1I9MDAsIFRDUj0wICovCiAvKiBBbHQuIEZ1bnRpb24gT3V0cHV0OiBPU1I9MDEsIElTUj0wMCwgVFNSPTAwLCBUQ1I9MSAqLwotI2RlZmluZSBDRkdfR1BJTzBfT1NSSAkJMHg0MDAwMDUwMCAgLyoJMCAuLi4gMTUgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAgIC8qIDE2IC4uLiAzMSAqLwotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAgIC8qCTAgLi4uIDE1ICovCi0jZGVmaW5lIENGR19HUElPMF9JU1IxTAkJMHgxNDAwMDA0NSAgLyogMTYgLi4uIDMxICovCi0jZGVmaW5lIENGR19HUElPMF9UU1JICQkweDAwMDAwMDAwICAvKgkwIC4uLiAxNSAqLwotI2RlZmluZSBDRkdfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMCAgLyogMTYgLi4uIDMxICovCi0jZGVmaW5lIENGR19HUElPMF9UQ1IJCTB4RjdGRTAwMTQgIC8qCTAgLi4uIDMxICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSSAkJMHg0MDAwMDUwMCAgLyoJMCAuLi4gMTUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JMCQkweDAwMDAwMTEwICAvKiAxNiAuLi4gMzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMCAgLyoJMCAuLi4gMTUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxTAkJMHgxNDAwMDA0NSAgLyogMTYgLi4uIDMxICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMCAgLyoJMCAuLi4gMTUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JMCQkweDAwMDAwMDAwICAvKiAxNiAuLi4gMzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UQ1IJCTB4RjdGRTAwMTQgIC8qCTAgLi4uIDMxICovCiAKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9XUAkJKDB4ODAwMDAwMDAgPj4gOCkgICAgLyogR1BJTzggKi8KLSNkZWZpbmUgQ0ZHX1BMRF9SRVNFVAkJKDB4ODAwMDAwMDAgPj4gMTIpICAgLyogR1BJTzEyICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1dQCQkoMHg4MDAwMDAwMCA+PiA4KSAgICAvKiBHUElPOCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BMRF9SRVNFVAkJKDB4ODAwMDAwMDAgPj4gMTIpICAgLyogR1BJTzEyICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0NQQzQ1LmggYi9pbmNsdWRlL2NvbmZpZ3MvQ1BDNDUuaAppbmRleCBhMzM4YWYwLi45MWQyNjJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDNDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQ1BDNDUuaApAQCAtNDgsNyArNDgsNyBAQAogCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lIENPTkZJR19QUkVCT09UCSJlY2hvO2VjaG8gVHlwZSBcXFwicnVuIGZsYXNoX25mc1xcXCIgdG8gbW91bnQgcm9vdCBmaWxlc3lzdGVtIG92ZXIgTkZTO2VjaG8iCiAKQEAgLTg5LDYwICs4OSw2MCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAKICNpZiAxCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwogI2VuZGlmCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKIC8qIFByaW50IEJ1ZmZlciBTaXplCiAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCiAKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAogCiAjaWYgZGVmaW5lZChDT05GSUdfQk9PVF9ST00pCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGODAwMDAwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCiAKLSNkZWZpbmUgQ0ZHX0VVTUJfQUREUgkJMHhGQ0UwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VVTUJfQUREUgkJMHhGQ0UwMDAwMAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KIAogLyogTWF4aW11bSBhbW91bnQgb2YgUkFNLgogICovCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRQkweDEwMDAwMDAwCiAKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKLSN1bmRlZiBDRkdfUkFNQk9PVAorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQorI3VuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogCkBAIC0xNTIsNDggKzE1Miw0OCBAQAogCiAvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEKICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAvKgogICogTlMxNjU1MCBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19FVU1CX0FERFIgKyAweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19FVU1CX0FERFIgKyAweDQ2MDApCi0jZGVmaW5lIERVQVJUX0RDUgkJKENGR19FVU1CX0FERFIgKyAweDQ1MTEpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0VVTUJfQUREUiArIDB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NjAwKQorI2RlZmluZSBEVUFSVF9EQ1IJCShDT05GSUdfU1lTX0VVTUJfQUREUiArIDB4NDUxMSkKIAogLyoKICAqIEkyQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogUlRDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfUlRDX1BDRjg1NjMKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDUxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NTEKIAogLyoKICAqIEVFUFJPTSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1OAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTIwMyw0OCArMjAzLDQ4IEBACiAgKi8KIAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTMzMDAwMDAwCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAogCiAvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMS4KICAqLwotI2RlZmluZSBDRkdfUk9NTkFMCQkwCi0jZGVmaW5lIENGR19ST01GQUwJCTgKKyNkZWZpbmUgQ09ORklHX1NZU19ST01OQUwJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ST01GQUwJCTgKIAotI2RlZmluZSBDRkdfQkFOSzBfUk9XCQkwCS8qIFNEUkFNIGJhbmsgNy0wIHJvdyBhZGRyZXNzICovCi0jZGVmaW5lIENGR19CQU5LMV9ST1cJCTAKLSNkZWZpbmUgQ0ZHX0JBTksyX1JPVwkJMAotI2RlZmluZSBDRkdfQkFOSzNfUk9XCQkwCi0jZGVmaW5lIENGR19CQU5LNF9ST1cJCTAKLSNkZWZpbmUgQ0ZHX0JBTks1X1JPVwkJMAotI2RlZmluZSBDRkdfQkFOSzZfUk9XCQkwCi0jZGVmaW5lIENGR19CQU5LN19ST1cJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9ST1cJCTAJLyogU0RSQU0gYmFuayA3LTAgcm93IGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9ST1cJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9ST1cJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19ST1cJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9ST1cJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9ST1cJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9ST1cJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19ST1cJCTAKIAogLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjIuCiAgKi8KIAotI2RlZmluZSBDRkdfUkVGSU5UCQkweDJlYworI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVAkJMHgyZWMKIAogLyogQnVyc3QgVG8gUHJlY2hhcmdlLiBCaXRzIG9mIHRoaXMgdmFsdWUgZ28gdG8gTUNDUjMgYW5kIE1DQ1I0LgogICovCi0jZGVmaW5lIENGR19CU1RPUFJFCQkxNjAKKyNkZWZpbmUgQ09ORklHX1NZU19CU1RPUFJFCQkxNjAKIAogLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjMuCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQwkJMgkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLwotI2RlZmluZSBDRkdfUkRMQVQJCTAJLyogRGF0YSBsYXRhbmN5IGZyb20gcmVhZCBjb21tYW5kCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDCQkyCS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkRMQVQJCTAJLyogRGF0YSBsYXRhbmN5IGZyb20gcmVhZCBjb21tYW5kCSovCiAKIC8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1I0LgogICovCi0jZGVmaW5lIENGR19QUkVUT0FDVAkJMgkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCQk1CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfU0RNT0RFX0NBU19MQVQJMgkvKiBTRE1PREUgQ0FTIGxhdGFuY3kJCQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAJCTAJLyogU0RNT0RFIHdyYXAgdHlwZQkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfQlVSU1RMRU4JMgkvKiBTRE1PREUgQnVyc3QgbGVuZ3RoCQkJKi8KLSNkZWZpbmUgQ0ZHX0FDVE9SVwkJMgotI2RlZmluZSBDRkdfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDEKLSNkZWZpbmUgQ0ZHX0VYVFJPTQkJMAotI2RlZmluZSBDRkdfUkVHRElNTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX1BSRVRPQUNUCQkyCS8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVFRPUFJFCQk1CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUCTIJLyogU0RNT0RFIENBUyBsYXRhbmN5CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4JMgkvKiBTRE1PREUgQnVyc3QgbGVuZ3RoCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RPUlcJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQorI2RlZmluZSBDT05GSUdfU1lTX0VYVFJPTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX1JFR0RJTU0JCTAKIAogLyogTWVtb3J5IGJhbmsgc2V0dGluZ3MuCiAgKiBPbmx5IGJpdHMgMjAtMjkgYXJlIGFjdHVhbGx5IHVzZWQgZnJvbSB0aGVzZSB2YWxlcyB0byBzZXQgdGhlCkBAIC0yNTMsNzkgKzI1Myw3OSBAQAogICogYWRkcmVzcy4gUmVmZXIgdG8gdGhlIE1QQzgyNDAgYm9vay4KICAqLwogCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5ECQkoQ0ZHX01BWF9SQU1fU0laRSAtIDEpCi0jZGVmaW5lIENGR19CQU5LMF9FTkFCTEUJMQotI2RlZmluZSBDRkdfQkFOSzFfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksxX0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzFfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTksyX1NUQVJUCQkweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkQJCTB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksyX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LM19TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzNfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LM19FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzRfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzRfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks1X1NUQVJUCQkweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkQJCTB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks1X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNl9TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNl9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzdfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzdfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VORAkJKENPTkZJR19TWVNfTUFYX1JBTV9TSVpFIC0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkFCTEUJMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9TVEFSVAkJMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VORAkJMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9TVEFSVAkJMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VORAkJMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5BQkxFCTAKIAotI2RlZmluZSBDRkdfT0RDUgkJMHhmZgotI2RlZmluZSBDRkdfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PRENSCQkweGZmCisjZGVmaW5lIENPTkZJR19TWVNfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KIAkJCQkJLyogY3VycmVudGx5IGFjY2Vzc2VkIHBhZ2UgaW4gbWVtb3J5CSovCiAJCQkJCS8qIHNlZSA4MjQwIGJvb2sgZm9yIGRldGFpbHMJCSovCiAKLSNkZWZpbmUgQ0ZHX0lCQVQwTCAgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQyTCAgKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQzTCAgKDB4RkMwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UgICgweEZDMDAwMDAwIHwgQkFUVV9CTF82NE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wgICgweEZDMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVSAgKDB4RkMwMDAwMDAgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUMEwgIENGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVSAgQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDFMICBDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUgIENGR19JQkFUMVUKLSNkZWZpbmUgQ0ZHX0RCQVQyTCAgQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVICBDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wgIENGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVSAgQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCAgQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUgIENPTkZJR19TWVNfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMICBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVSAgQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwgIENPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVICBDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTCAgQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UgIENPTkZJR19TWVNfSUJBVDNVCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTM5CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBpbiBvbmUgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMzkJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rCSovCiAjZGVmaW5lIElOVEVMX0lEXzI4RjE2MEYzVAkweDg4RjM4OEYzCS8qICAxNk0gPSAxTSB4IDE2IHRvcCBib290IHNlY3RvcgkqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIAkvKiBXYXJpbmluZzogZW52aXJvbm1lbnQgaXMgbm90IEVNQkVEREVEIGluIHRoZSBwcGNib290IGNvZGUuCiAJICogSXQncyBzdG9yZWQgaW4gZmxhc2ggc2VwYXJhdGVseS4KIAkgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkgICAgMQogCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg3RjgwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4N0Y4MDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBTaXplIG9mIHRoZSBFbnZpcm9ubWVudAkJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTAJLyogc3RhcnRpbmcgcmlnaHQgYXQgdGhlIGJlZ2lubmluZwkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDgwMDAgLyogU2l6ZSBvZiB0aGUgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0zMzMsOSArMzMzLDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKgpAQCAtNDcyLDcgKzQ3Miw3IEBACiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCS8qIE11bHRpIGV0aGVybmV0IGNhcmRzIHN1cHBvcnQJCSovCiAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CS8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMAkqLwogCiAjZGVmaW5lIFBDSV9FTkVUMF9JT0FERFIJMHg4MjAwMDAwMAogI2RlZmluZSBQQ0lfRU5FVDBfTUVNQUREUgkweDgyMDAwMDAwCkBAIC00ODYsOCArNDg2LDggQEAKIAogI2RlZmluZSBDT05GSUdfSTgyMzY1CiAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUglQQ01DSUFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJUENNQ0lBX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCTB4MTAwMAogCiAjZGVmaW5lIENPTkZJR19QQ01DSUFfU0xPVF9BCiAKQEAgLTUwMiwyMCArNTAyLDIwIEBACiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIElERSBub3Qgc3VwcG9ydGVkCSovCiAjZGVmaW5lCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIElERSBpcyAgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCUNGR19QQ01DSUFfTUVNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDQwMCkKIAogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTJEUC5oIGIvaW5jbHVkZS9jb25maWdzL0NQQ0kyRFAuaAppbmRleCAyMDhmMWEyLi4zMjg3NzM0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTJEUC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DUENJMkRQLmgKQEAgLTQ5LDcgKzQ5LDcgQEAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QgICAgICAgICAgICAgICAgICAvKiBlbmFibGUgcHJlYm9vdCB2YXJpYWJsZSAgICAgICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkwCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTg1LDQ2ICs4NSw0NiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSN1bmRlZglDRkdfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI3VuZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUJMSAgICAgICAvKiBhZGQgYXV0b2NvbXBsZXRpb24gc3VwcG9ydCAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLwotI2RlZmluZSBDRkdfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECSAgICA2OTEyMDAKKyN1bmRlZglDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkgICAgNjkxMjAwCiAjZGVmaW5lIENPTkZJR19VQVJUMV9DT05TT0xFICAgICAgICAgICAgLyogZGVmaW5lIGZvciB1YXJ0MSBhcyBjb25zb2xlICAqLwogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19MT09QVyAgICAgICAgICAgIDEgICAgICAgLyogZW5hYmxlIGxvb3B3IGNvbW1hbmQgICAgICAgICAqLwogCkBAIC0xMzIsNyArMTMyLDcgQEAKIAogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRSAxCS8qIGluY2x1ZGUgdmVyc2lvbiBlbnYgdmFyaWFibGUgKi8KIAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTUzLDUyICsxNTMsNTIgQEAKIAogI2RlZmluZSBDT05GSUdfUENJX0JPT1RERUxBWSAgICAwICAgICAgIC8qIGVuYWJsZSBwY2kgYm9vdGRlbGF5IHZhcmlhYmxlKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUgIC8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDBiICAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTJEUCAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFICAgICAgIDB4MDI4MAkvKiBQQ0kgQ2xhc3MgQ29kZTogTmV0d29yay9PdGhlciovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUgIC8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwYiAgLyogUENJIERldmljZSBJRDogQ1BDSS0yRFAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUgICAgICAgMHgwMjgwCS8qIFBDSSBDbGFzcyBDb2RlOiBOZXR3b3JrL090aGVyKi8KIAotI2RlZmluZSBDRkdfUENJX1BUTTFMQSAgKGJkLT5iaV9tZW1zdGFydCkgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUyAgKH4oYmQtPmJpX21lbXNpemUgLSAxKSB8IDEpIC8qIG1lbXNpemUsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4ZWYwMDAwMDAJLyogcG9pbnQgdG8gaW50ZXJuYWwgcmVncyArIFBCMC8xICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweGZmMDAwMDAxICAgICAgLyogMTZNQiwgZW5hYmxlICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQSAgKGJkLT5iaV9tZW1zdGFydCkgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMgICh+KGJkLT5iaV9tZW1zaXplIC0gMSkgfCAxKSAvKiBtZW1zaXplLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4ZWYwMDAwMDAJLyogcG9pbnQgdG8gaW50ZXJuYWwgcmVncyArIFBCMC8xICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUyAgMHhmZjAwMDAwMSAgICAgIC8qIDE2TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00JMQkvKiB1c2UgRUVQUk9NIGZvciBlbnZpcm9ubWVudCB2YXJzICovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDAwMAkvKiBlbnZpcm9ubWVudCBzdGFydHMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgRUVQUk9NICovCkBAIC0yMDgsMTkgKzIwOCwxOSBAQAogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KIAkJCQkJLyogMTYgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAotI2RlZmluZSBDRkdfRUVQUk9NX1dSRU4gICAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1dSRU4gICAgICAgICAxCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMjM1LDM1ICsyMzUsMzUgQEAKICAqLwogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDApIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAyIChQQjApIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAzMDA0NTgwICAvKiBUV1Q9NixXQk49MSxUSD0yLFJFPTEsU09SPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhFRjAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMzAwNDU4MCAgLyogVFdUPTYsV0JOPTEsVEg9MixSRT0xLFNPUj0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEVGMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKFBCMSkgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMzAwNDU4MCAgLyogVFdUPTYsV0JOPTEsVEg9MixSRT0xLFNPUj0xICovCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RUYxMTgwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDMwMDQ1ODAgIC8qIFRXVD02LFdCTj0xLFRIPTIsUkU9MSxTT1I9MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJMHhFRjExODAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9OGJpdCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIGRhdGEgY2FjaGUpCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfRENBQ0hFX0NTCTcJLyogdXNlIGNzICMgNyBmb3IgZGF0YSBjYWNoZSBtZW1vcnkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUwk3CS8qIHVzZSBjcyAjIDcgZm9yIGRhdGEgY2FjaGUgbWVtb3J5ICAgICovCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMCAgLyogdXNlIGRhdGEgY2FjaGUJCSAgICAgICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIHVzZSBkYXRhIGNhY2hlCQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBHUElPIGRlZmluaXRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9XUAkJKDB4ODAwMDAwMDAgPj4gMTMpICAgLyogR1BJTzEzICovCi0jZGVmaW5lIENGR19TRUxGX1JTVAkJKDB4ODAwMDAwMDAgPj4gMTQpICAgLyogR1BJTzE0ICovCi0jZGVmaW5lIENGR19QQl9MRUQJCSgweDgwMDAwMDAwID4+IDE2KSAgIC8qIEdQSU8xNiAqLwotI2RlZmluZSBDRkdfSU5UQV9GQUtFCQkoMHg4MDAwMDAwMCA+PiAyMykgICAvKiBHUElPMjMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fV1AJCSgweDgwMDAwMDAwID4+IDEzKSAgIC8qIEdQSU8xMyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NFTEZfUlNUCQkoMHg4MDAwMDAwMCA+PiAxNCkgICAvKiBHUElPMTQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9MRUQJCSgweDgwMDAwMDAwID4+IDE2KSAgIC8qIEdQSU8xNiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOVEFfRkFLRQkJKDB4ODAwMDAwMDAgPj4gMjMpICAgLyogR1BJTzIzICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0NQQ0k0MDUuaCBiL2luY2x1ZGUvY29uZmlncy9DUENJNDA1LmgKaW5kZXggMmU5NDhmNS4uMzQ5M2Q3NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0NQQ0k0MDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTQwNS5oCkBAIC01MCw3ICs1MCw3IEBACiAjZGVmaW5lIENPTkZJR19QUkVCT09UICAgICAgICAgICAgICAgICAgLyogZW5hYmxlIHByZWJvb3QgdmFyaWFibGUgICAgICAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMAkvKiBQSFkgYWRkcmVzcwkJCSovCkBAIC05OSw0MyArOTksNDMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19MT09QVyAgICAgICAgICAgIDEgICAgICAgLyogZW5hYmxlIGxvb3B3IGNvbW1hbmQgICAgICAgICAqLwogCkBAIC0xNjAsMTYgKzE2MCwxNiBAQAogCiAjZGVmaW5lIENPTkZJR19QQ0lfQk9PVERFTEFZICAgIDAgICAgICAgLyogZW5hYmxlIHBjaSBib290ZGVsYXkgdmFyaWFibGUqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRSAgLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmggICAgICAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDUgIC8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1ICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQyIDB4MDQwNiAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNS1BICAgICovCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFICAgICAgIDB4MGIyMCAgLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQSAgKGJkLT5iaV9tZW1zdGFydCkgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUyAgKH4oYmQtPmJpX21lbXNpemUgLSAxKSB8IDEpIC8qIG1lbXNpemUsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBICAweGZmYzAwMDAwICAgICAgLyogcG9pbnQgdG8gZmxhc2ggICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUyAgMHhmZmMwMDAwMSAgICAgIC8qIDRNQiwgZW5hYmxlICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUgIC8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNSAgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQyIDB4MDQwNiAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNS1BICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBICAoYmQtPmJpX21lbXN0YXJ0KSAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUyAgKH4oYmQtPmJpX21lbXNpemUgLSAxKSB8IDEpIC8qIG1lbXNpemUsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEgIDB4ZmZjMDAwMDAgICAgICAvKiBwb2ludCB0byBmbGFzaCAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUyAgMHhmZmMwMDAwMSAgICAgIC8qIDRNQiwgZW5hYmxlICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmCkBAIC0xNzksNTggKzE3OSw1OCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogbm8gcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkJLyogbWF4LiAxIElERSBidXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCQkvKiBtYXguIDEgSURFIGJ1c3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoxKSAvKiBtYXguIDEgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZEMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiAqIDEwMjQpCS8qIFJlc2VydmUgMTk2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGRDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KQkvKiBSZXNlcnZlIDE5NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhmMDIwMDAwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJCS8qIE5WUkFNIHNpemUJCSovCi0jZGVmaW5lIENGR19WWFdPUktTX01BQ19QVFIgICAgIChDRkdfTlZSQU1fQkFTRV9BRERSKzB4NjkwMCkgLyogVnhXb3JrcyBldGgtYWRkciovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4ZjAyMDAwMDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCSgzMioxMDI0KQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19WWFdPUktTX01BQ19QVFIgICAgIChDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUisweDY5MDApIC8qIFZ4V29ya3MgZXRoLWFkZHIqLwogCiAjaWYgMSAvKiBVc2UgTlZSQU0gZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjM5LDcgKzIzOSw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0JMQkvKiB1c2UgTlZSQU0gZm9yIGVudmlyb25tZW50IHZhcnMJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycwkqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCVwKLQkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudgkqLworCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQkvKiBFbnYJKi8KIAogI2Vsc2UgLyogVXNlIEVFUFJPTSBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzICovCiAKQEAgLTI1MywxNyArMjUzLDE3IEBACiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMDgpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTI3OSw1NCArMjc5LDU0IEBACiAgKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoRmxhc2ggQmFuayAxKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkweEZGODVBMDAwICAvKiBCQVM9MHhGRjgsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoQ0FOMCwgMSwgMiwgQ29kZXN3aXRjaCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKENvbXBhY3RGbGFzaCBJREUpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayA0IChOVlJBTSkgaW5pdGlhbGl6YXRpb24JCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCNEFQCQkweDAxMDA1MjgwICAvKiBUV1Q9MixXQk49MSxXQkY9MSxUSD0xLFNPUj0xCSovCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IJCTB4RjAyMTgwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJCTB4MDEwMDUyODAgIC8qIFRXVD0yLFdCTj0xLFdCRj0xLFRIPTEsU09SPTEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0Q1IJCTB4RjAyMTgwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgNSAoUXVhcnQpIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVBUAkJMHgwNDAwNUI4MCAgLyogVFdUPTgsV0JOPTEsV0JGPTEsVEg9NSxSRT0xLFNPUj0xKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVDUgkJMHhGMDMxODAwMCAgLyogQkFTPTB4RjAzLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVBUAkJMHgwNDAwNUI4MCAgLyogVFdUPTgsV0JOPTEsV0JGPTEsVEg9NSxSRT0xLFNPUj0xKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1Q1IJCTB4RjAzMTgwMDAgIC8qIEJBUz0weEYwMyxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgogICovCiAKIC8qIEZQR0EgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCi0jZGVmaW5lIENGR19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfSU5JVAkJMHgwMDQwMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORQkJMHgwMDgwMDAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9JTklUCQkweDAwNDAwMDAwICAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORQkJMHgwMDgwMDAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCiAjaWYgMSAvKiB0ZXN0LW9ubHkgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfRENBQ0hFX0NTCTcJLyogdXNlIGNzICMgNyBmb3IgZGF0YSBjYWNoZSBtZW1vcnkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUwk3CS8qIHVzZSBjcyAjIDcgZm9yIGRhdGEgY2FjaGUgbWVtb3J5ICAgICovCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMCAgLyogdXNlIGRhdGEgY2FjaGUJCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMCAgLyogdXNlIGRhdGEgY2FjaGUJCSAgICAgICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgwMGRmMDAwMCAvKiBpbnNpZGUgb2YgU0RSQU0JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHgwMGRmMDAwMCAvKiBpbnNpZGUgb2YgU0RSQU0JCQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0NQQ0k0MDUyLmggYi9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTQwNTIuaAppbmRleCAxOTlmNTc3Li43MzRhYjk1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTQwNTIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTQwNTIuaApAQCAtNTIsNyArNTIsNyBAQAogI2RlZmluZSBDT05GSUdfUFJFQk9PVCAgICAgICAgICAgICAgICAgIC8qIGVuYWJsZSBwcmVib290IHZhcmlhYmxlICAgICAgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCTAJLyogUEhZIGFkZHJlc3MJCQkqLwpAQCAtMTA2LDQ1ICsxMDYsNDUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCTEgICAgICAgLyogYWRkIGF1dG9jb21wbGV0aW9uIHN1cHBvcnQgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwogCkBAIC0xNTQsNyArMTU0LDcgQEAKIAogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRSAxCS8qIGluY2x1ZGUgdmVyc2lvbiBlbnYgdmFyaWFibGUgKi8KIAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTc1LDE2ICsxNzUsMTYgQEAKIAogI2RlZmluZSBDT05GSUdfUENJX0JPT1RERUxBWSAgICAwICAgICAgIC8qIGVuYWJsZSBwY2kgYm9vdGRlbGF5IHZhcmlhYmxlKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUgIC8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1ICAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNSAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEMiAweDA0MDYgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUtQSAgICAqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIChiZC0+YmlfbWVtc3RhcnQpIC8qIHBvaW50IHRvIHNkcmFtICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMgICh+KGJkLT5iaV9tZW1zaXplIC0gMSkgfCAxKSAvKiBtZW1zaXplLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQSAgMHhmZmMwMDAwMCAgICAgIC8qIHBvaW50IHRvIGZsYXNoICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMgIDB4ZmZjMDAwMDEgICAgICAvKiA0TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFICAvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDUgIC8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1ICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEMiAweDA0MDYgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUtQSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUgICAgICAgMHgwYjIwICAvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQSAgKGJkLT5iaV9tZW1zdGFydCkgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMgICh+KGJkLT5iaV9tZW1zaXplIC0gMSkgfCAxKSAvKiBtZW1zaXplLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBICAweGZmYzAwMDAwICAgICAgLyogcG9pbnQgdG8gZmxhc2ggICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMgIDB4ZmZjMDAwMDEgICAgICAvKiA0TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZgpAQCAtMTk0LDMzICsxOTQsMzMgQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIG5vIGxlZCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1JFU0VUCTEJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkJLyogbWF4LiAxIElERSBidXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCQkvKiBtYXguIDEgSURFIGJ1c3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoxKSAvKiBtYXguIDEgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKICNkZWZpbmUgQ09ORklHX09GX0xJQkZEVAogI2RlZmluZSBDT05GSUdfT0ZfQk9BUkRfU0VUVVAKQEAgLTIyOCwyNCArMjI4LDI0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAjaWYgMCAvKiBVc2UgTlZSQU0gZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjU0LDcgKzI1NCw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0JMQkvKiB1c2UgTlZSQU0gZm9yIGVudmlyb25tZW50IHZhcnMJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDBmZjgJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycwkqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCVwKLQkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS0oQ09ORklHX0VOVl9TSVpFKzgpKQkvKiBFbnYJKi8KKwkoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIrQ09ORklHX1NZU19OVlJBTV9TSVpFLShDT05GSUdfRU5WX1NJWkUrOCkpCS8qIEVudgkqLwogCiAjZWxzZSAvKiBVc2UgRUVQUk9NIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KIApAQCAtMjY0LDI1ICsyNjQsMjUgQEAKIAkJCQkgICAvKiB0b3RhbCBzaXplIG9mIGEgQ0FUMjRXQzE2IGlzIDIwNDggYnl0ZXMgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhmMDIwMDAwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJCS8qIE5WUkFNIHNpemUJCSovCi0jZGVmaW5lIENGR19WWFdPUktTX01BQ19QVFIgICAgIChDRkdfTlZSQU1fQkFTRV9BRERSKzB4NjkwMCkgLyogVnhXb3JrcyBldGgtYWRkciovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4ZjAyMDAwMDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCSgzMioxMDI0KQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19WWFdPUktTX01BQ19QVFIgICAgIChDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUisweDY5MDApIC8qIFZ4V29ya3MgZXRoLWFkZHIqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTI5OCw4OCArMjk4LDg4IEBACiAgKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoRmxhc2ggQmFuayAxKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkweEZGODVBMDAwICAvKiBCQVM9MHhGRjgsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoQ0FOMCwgMSkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCi0jZGVmaW5lIENGR19MRURfQUREUgkJMHhGMDAwMDM4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTEVEX0FERFIJCTB4RjAwMDAzODAKIAogLyogTWVtb3J5IEJhbmsgMyAoQ29tcGFjdEZsYXNoIElERSkgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RjAxMUEwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCTB4RjAxMUEwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDQgKE5WUkFNL1JUQykgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0vKiNkZWZpbmUgQ0ZHX0VCQ19QQjRBUAkJICAweDAxODA1MjgwICAvICogVFdUPTMsV0JOPTEsV0JGPTEsVEg9MSxTT1I9MQkgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCNEFQCQkweDAxODA1NjgwICAvKiBUV1Q9MyxXQk49MSxXQkY9MSxUSD0zLFNPUj0xCSovCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IJCTB4RjAyMTgwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUAkJICAweDAxODA1MjgwICAvICogVFdUPTMsV0JOPTEsV0JGPTEsVEg9MSxTT1I9MQkgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUAkJMHgwMTgwNTY4MCAgLyogVFdUPTMsV0JOPTEsV0JGPTEsVEg9MyxTT1I9MQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUgkJMHhGMDIxODAwMCAgLyogQkFTPTB4RjAyLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayA1IChvcHRpb25hbCBRdWFydCkgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVBUAkJMHgwNDAwNUI4MCAgLyogVFdUPTgsV0JOPTEsV0JGPTEsVEg9NSxSRT0xLFNPUj0xKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVDUgkJMHhGMDMxODAwMCAgLyogQkFTPTB4RjAzLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVBUAkJMHgwNDAwNUI4MCAgLyogVFdUPTgsV0JOPTEsV0JGPTEsVEg9NSxSRT0xLFNPUj0xKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1Q1IJCTB4RjAzMTgwMDAgIC8qIEJBUz0weEYwMyxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgNiAoRlBHQSBpbnRlcm5hbCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI2QVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCNkNSCQkweEYwNDFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLwotI2RlZmluZSBDRkdfRlBHQV9CQVNFX0FERFIJMHhGMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjZBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNkNSCQkweEYwNDFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSCTB4RjA0MDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgogICovCiAvKiBGUEdBIGludGVybmFsIHJlZ3MgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERQkJMHgwMAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVMJCTB4MDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFMJCTB4MDQKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfTE9XCQkweDA2Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDAJMHgxMAotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAwX0xPVwkweDEyCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDEJMHgxNAotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAxX0xPVwkweDE2Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDIJMHgxOAotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAyX0xPVwkweDFhCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDMJMHgxYwotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAzX0xPVwkweDFlCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFCQkweDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVMJCTB4MDIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTCQkweDA0CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19MT1cJCTB4MDYKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDAJMHgxMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMF9MT1cJMHgxMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMQkweDE0CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAxX0xPVwkweDE2CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAyCTB4MTgKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDJfTE9XCTB4MWEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDMJMHgxYworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQM19MT1cJMHgxZQogCiAvKiBGUEdBIE1vZGUgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX01PREVfQ0ZfUkVTRVQJICAgIDB4MDAwMQotI2RlZmluZSBDRkdfRlBHQV9NT0RFX0RVQVJUX1JFU0VUICAgMHgwMDAyCi0jZGVmaW5lIENGR19GUEdBX01PREVfRU5BQkxFX09VVFBVVCAweDAwMDQgICAgIC8qIG9ubHkgc2V0IG9uIENQQ0ktNDA1IFZlciAzICovCi0jZGVmaW5lIENGR19GUEdBX01PREVfVFNfSVJRX0VOQUJMRSAweDAxMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9UU19JUlFfQ0xFQVIgIDB4MTAwMAotI2RlZmluZSBDRkdfRlBHQV9NT0RFX1RTX0NMRUFSCSAgICAweDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfQ0ZfUkVTRVQJICAgIDB4MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9EVUFSVF9SRVNFVCAgIDB4MDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9FTkFCTEVfT1VUUFVUIDB4MDAwNCAgICAgLyogb25seSBzZXQgb24gQ1BDSS00MDUgVmVyIDMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVFNfSVJRX0VOQUJMRSAweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVFNfSVJRX0NMRUFSICAweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVFNfQ0xFQVIJICAgIDB4MjAwMAogCiAvKiBGUEdBIFN0YXR1cyBSZWcgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0RJUDAJMHgwMDAxCi0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19ESVAxCTB4MDAwMgotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfRElQMgkweDAwMDQKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0ZMQVNICTB4MDAwOAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfVFNfSVJRCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0RJUDAJMHgwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRElQMQkweDAwMDIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19ESVAyCTB4MDAwNAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0ZMQVNICTB4MDAwOAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX1RTX0lSUQkweDEwMDAKIAotI2RlZmluZSBDRkdfRlBHQV9TUEFSVEFOMgkxCSAgICAvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdyAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9NQVhfU0laRQkzMioxMDI0CSAgICAvKiAzMmtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzE1ICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIJMQkgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFCTMyKjEwMjQJICAgIC8qIDMya0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTMTUgICovCiAKIC8qIEZQR0EgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCi0jZGVmaW5lIENGR19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORQkJMHgwMDAwODAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9JTklUCQkweDAwMDEwMDAwICAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORQkJMHgwMDAwODAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCi0jZGVmaW5lIENGR19JTklUX0RDQUNIRV9DUwk3CS8qIHVzZSBjcyAjIDcgZm9yIGRhdGEgY2FjaGUgbWVtb3J5ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MJNwkvKiB1c2UgY3MgIyA3IGZvciBkYXRhIGNhY2hlIG1lbW9yeSAgICAqLwogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIHVzZSBkYXRhIGNhY2hlCQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMCAgLyogdXNlIGRhdGEgY2FjaGUJCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTQwNUFCLmggYi9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTQwNUFCLmgKaW5kZXggY2Q4YTY1Yi4uNDdhZDg5ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0NQQ0k0MDVBQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DUENJNDA1QUIuaApAQCAtNTIsNyArNTIsNyBAQAogI2RlZmluZSBDT05GSUdfUFJFQk9PVCAgICAgICAgICAgICAgICAgIC8qIGVuYWJsZSBwcmVib290IHZhcmlhYmxlICAgICAgKi8KIAogI3VuZGVmCUNPTkZJR19MT0FEU19FQ0hPCQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkwCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTEwNiw0MyArMTA2LDQzIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI3VuZGVmCUNGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECSAgICA2OTEyMDAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KIApAQCAtMTUwLDcgKzE1MCw3IEBACiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE3MSwxNiArMTcxLDE2IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9CT09UREVMQVkJMAkvKiBlbmFibGUgcGNpIGJvb3RkZWxheSB2YXJpYWJsZSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNQkvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNQkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRDIgMHgwNDA2IC8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1LUEJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIChiZC0+YmlfbWVtc3RhcnQpIC8qIHBvaW50IHRvIHNkcmFtICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMgICh+KGJkLT5iaV9tZW1zaXplIC0gMSkgfCAxKSAvKiBtZW1zaXplLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4ZmZjMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCTB4ZmZjMDAwMDEJLyogNE1CLCBlbmFibGUJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDUJLyogUENJIERldmljZSBJRDogQ1BDSS00MDUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEMiAweDA0MDYgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUtQQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBICAoYmQtPmJpX21lbXN0YXJ0KSAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUyAgKH4oYmQtPmJpX21lbXNpemUgLSAxKSB8IDEpIC8qIG1lbXNpemUsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmCkBAIC0xOTAsMzMgKzE5MCwzMyBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkCSovCiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJMQkvKiByZXNldCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCQkvKiBtYXguIDEgSURFIGJ1c3NlcwkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMqMSkgLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJCS8qIG1heC4gMSBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkoQ09ORklHX1NZU19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkweEYwMTAwMDAwCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweEYwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogI2RlZmluZSBDT05GSUdfT0ZfTElCRkRUCiAjZGVmaW5lIENPTkZJR19PRl9CT0FSRF9TRVRVUApAQCAtMjI0LDQxICsyMjQsNDEgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQyBFRVBST00gKENBVDI0V0MzMikgZm9yIGVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJjIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MzMgkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMzIJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAyCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIgkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDEKLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TICAgMSAgICAgICAvKiBtb3JlIHRoYW4gb25lIGVlcHJvbSB1c2VkISAgICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDUJLyogVGhlIENhdGFseXN0IENBVDI0V0MzMiBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TICAgMSAgICAgICAvKiBtb3JlIHRoYW4gb25lIGVlcHJvbSB1c2VkISAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA1CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMzIgaGFzCSovCiAJCQkJCS8qIDMyIGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdCA1IGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKIC8qIFVzZSBFRVBST00gZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogCkBAIC0yNjcsOSArMjY3LDkgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDgwMAkvKiAyMDQ4IGJ5dGVzIG1heSBiZSB1c2VkIGZvciBlbnYgdmFycyovCiAJCQkJICAgLyogdG90YWwgc2l6ZSBvZiBhIENBVDI0V0MzMiBpcyA0MDk2IGJ5dGVzICovCiAKLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweGYwMjAwMDAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJCSgzMioxMDI0KQkJLyogTlZSQU0gc2l6ZQkJKi8KLSNkZWZpbmUgQ0ZHX1ZYV09SS1NfTUFDX1BUUiAgICAgKENGR19OVlJBTV9CQVNFX0FERFIrMHg2OTAwKSAvKiBWeFdvcmtzIGV0aC1hZGRyKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhmMDIwMDAwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJKDMyKjEwMjQpCQkvKiBOVlJBTSBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1ZYV09SS1NfTUFDX1BUUiAgICAgKENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSKzB4NjkwMCkgLyogVnhXb3JrcyBldGgtYWRkciovCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMjg1LDkyICsyODUsOTIgQEAKICAqLwogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDApIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAxIChGbGFzaCBCYW5rIDEpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4RkY4NUEwMDAgIC8qIEJBUz0weEZGOCxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkweEZGODVBMDAwICAvKiBCQVM9MHhGRjgsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAyIChDQU4wLCAxKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KLSNkZWZpbmUgQ0ZHX0xFRF9BRERSCQkweEYwMDAwMzgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MRURfQUREUgkJMHhGMDAwMDM4MAogCiAvKiBNZW1vcnkgQmFuayAzIChDb21wYWN0Rmxhc2ggSURFKSBpbml0aWFsaXphdGlvbgkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJMHhGMDExQTAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJMHhGMDExQTAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgNCAoTlZSQU0vUlRDKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLS8qI2RlZmluZSBDRkdfRUJDX1BCNEFQCQkgIDB4MDE4MDUyODAgIC8gKiBUV1Q9MyxXQk49MSxXQkY9MSxUSD0xLFNPUj0xCSAgICovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAJCTB4MDE4MDU2ODAgIC8qIFRXVD0zLFdCTj0xLFdCRj0xLFRIPTMsU09SPTEJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRDUgkJMHhGMDIxODAwMCAgLyogQkFTPTB4RjAyLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworLyojZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQCQkgIDB4MDE4MDUyODAgIC8gKiBUV1Q9MyxXQk49MSxXQkY9MSxUSD0xLFNPUj0xCSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQCQkweDAxODA1NjgwICAvKiBUV1Q9MyxXQk49MSxXQkY9MSxUSD0zLFNPUj0xCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNENSCQkweEYwMjE4MDAwICAvKiBCQVM9MHhGMDIsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDUgKG9wdGlvbmFsIFF1YXJ0KSBpbml0aWFsaXphdGlvbgkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCNUFQCQkweDA0MDA1QjgwICAvKiBUV1Q9OCxXQk49MSxXQkY9MSxUSD01LFJFPTEsU09SPTEqLwotI2RlZmluZSBDRkdfRUJDX1BCNUNSCQkweEYwMzE4MDAwICAvKiBCQVM9MHhGMDMsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUFQCQkweDA0MDA1QjgwICAvKiBUV1Q9OCxXQk49MSxXQkY9MSxUSD01LFJFPTEsU09SPTEqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVDUgkJMHhGMDMxODAwMCAgLyogQkFTPTB4RjAzLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayA2IChGUEdBIGludGVybmFsKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjZBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEI2Q1IJCTB4RjA0MUEwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0ICovCi0jZGVmaW5lIENGR19GUEdBX0JBU0VfQUREUgkweEYwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI2Q1IJCTB4RjA0MUEwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIJMHhGMDQwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGUEdBIHN0dWZmCiAgKi8KIC8qIEZQR0EgaW50ZXJuYWwgcmVncyAqLwotI2RlZmluZSBDRkdfRlBHQV9NT0RFCQkweDAwCi0jZGVmaW5lIENGR19GUEdBX1NUQVRVUwkJMHgwMgotI2RlZmluZSBDRkdfRlBHQV9UUwkJMHgwNAotI2RlZmluZSBDRkdfRlBHQV9UU19MT1cJCTB4MDYKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMAkweDEwCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDBfTE9XCTB4MTIKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMQkweDE0Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDFfTE9XCTB4MTYKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMgkweDE4Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDJfTE9XCTB4MWEKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMwkweDFjCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDNfTE9XCTB4MWUKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREUJCTB4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVUwkJMHgwMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFMJCTB4MDQKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0xPVwkJMHgwNgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMAkweDEwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAwX0xPVwkweDEyCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAxCTB4MTQKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDFfTE9XCTB4MTYKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDIJMHgxOAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMl9MT1cJMHgxYQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMwkweDFjCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAzX0xPVwkweDFlCiAKIC8qIEZQR0EgTW9kZSBSZWcgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9DRl9SRVNFVAkgICAgMHgwMDAxCi0jZGVmaW5lIENGR19GUEdBX01PREVfRFVBUlRfUkVTRVQgICAweDAwMDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9FTkFCTEVfT1VUUFVUIDB4MDAwNCAgICAgLyogb25seSBzZXQgb24gQ1BDSS00MDUgVmVyIDMgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV8xV0lSRV9ESVIgICAgIDB4MDEwMCAgICAgLyogZGlyPTEgLT4gb3V0cHV0ICovCi0jZGVmaW5lIENGR19GUEdBX01PREVfU0lNX09LX0RJUiAgICAweDAyMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9URVNUUklHX0ZBSUxfRElSIDB4MDQwMAotI2RlZmluZSBDRkdfRlBHQV9NT0RFXzFXSVJFICAgICAgICAgMHgxMDAwCi0jZGVmaW5lIENGR19GUEdBX01PREVfU0lNX09LICAgICAgICAweDIwMDAgICAgIC8qIHdpcmVkLW9yIG5ldCBmcm9tIGFsbCBkZXZpY2VzICovCi0jZGVmaW5lIENGR19GUEdBX01PREVfVEVTVFJJR19GQUlMICAweDQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfQ0ZfUkVTRVQJICAgIDB4MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9EVUFSVF9SRVNFVCAgIDB4MDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9FTkFCTEVfT1VUUFVUIDB4MDAwNCAgICAgLyogb25seSBzZXQgb24gQ1BDSS00MDUgVmVyIDMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfMVdJUkVfRElSICAgICAweDAxMDAgICAgIC8qIGRpcj0xIC0+IG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9TSU1fT0tfRElSICAgIDB4MDIwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9URVNUUklHX0ZBSUxfRElSIDB4MDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV8xV0lSRSAgICAgICAgIDB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9TSU1fT0sgICAgICAgIDB4MjAwMCAgICAgLyogd2lyZWQtb3IgbmV0IGZyb20gYWxsIGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVEVTVFJJR19GQUlMICAweDQwMDAKIAogLyogRlBHQSBTdGF0dXMgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19ESVAwICAgIDB4MDAwMQotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfRElQMSAgICAweDAwMDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0RJUDIgICAgMHgwMDA0Ci0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19GTEFTSCAgIDB4MDAwOAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfMVdJUkUgICAweDEwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX1NJTV9PSyAgMHgyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRElQMCAgICAweDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19ESVAxICAgIDB4MDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0RJUDIgICAgMHgwMDA0CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRkxBU0ggICAweDAwMDgKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU18xV0lSRSAgIDB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX1NJTV9PSyAgMHgyMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1BBUlRBTjIJMQkgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTUFYX1NJWkUJMTI4KjEwMjQgICAgLyogMTI4a0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTMzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCTEJICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRQkxMjgqMTAyNCAgICAvKiAxMjhrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlMzMCAqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAgICovCi0jZGVmaW5lIENGR19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9EQ0FDSEVfQ1MJNwkvKiB1c2UgY3MgIyA3IGZvciBkYXRhIGNhY2hlIG1lbW9yeSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTCTcJLyogdXNlIGNzICMgNyBmb3IgZGF0YSBjYWNoZSBtZW1vcnkgICAgKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwICAvKiB1c2UgZGF0YSBjYWNoZQkJICAgICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIHVzZSBkYXRhIGNhY2hlCQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0NQQ0k0MDVEVC5oIGIvaW5jbHVkZS9jb25maWdzL0NQQ0k0MDVEVC5oCmluZGV4IGM2N2U1MWMuLjRlOTRkZmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9DUENJNDA1RFQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTQwNURULmgKQEAgLTUxLDcgKzUxLDcgQEAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QgICAgICAgICAgICAgICAgICAvKiBlbmFibGUgcHJlYm9vdCB2YXJpYWJsZSAgICAgICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkwCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTEwNyw0NSArMTA3LDQ1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI3VuZGVmCUNGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURQkxICAgICAgIC8qIGFkZCBhdXRvY29tcGxldGlvbiBzdXBwb3J0ICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECSAgICA2OTEyMDAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfTE9PUFcgICAgICAgICAgICAxICAgICAgIC8qIGVuYWJsZSBsb29wdyBjb21tYW5kICAgICAgICAgKi8KIApAQCAtMTYxLDcgKzE2MSw3IEBACiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE4MiwxNiArMTgyLDE2IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9CT09UREVMQVkgICAgMCAgICAgICAvKiBlbmFibGUgcGNpIGJvb3RkZWxheSB2YXJpYWJsZSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFICAvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNSAgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRDIgMHgwNDA2IC8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1LUEgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9DTEFTU0NPREUgICAgICAgMHgwYjIwICAvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBICAoYmQtPmJpX21lbXN0YXJ0KSAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TICAofihiZC0+YmlfbWVtc2l6ZSAtIDEpIHwgMSkgLyogbWVtc2l6ZSwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEgIDB4ZmZjMDAwMDAgICAgICAvKiBwb2ludCB0byBmbGFzaCAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweGZmYzAwMDAxICAgICAgLyogNE1CLCBlbmFibGUgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRSAgLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmggICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1ICAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRDIgMHgwNDA2IC8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1LUEgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0xBU1NDT0RFICAgICAgIDB4MGIyMCAgLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEgIChiZC0+YmlfbWVtc3RhcnQpIC8qIHBvaW50IHRvIHNkcmFtICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TICAofihiZC0+YmlfbWVtc2l6ZSAtIDEpIHwgMSkgLyogbWVtc2l6ZSwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQSAgMHhmZmMwMDAwMCAgICAgIC8qIHBvaW50IHRvIGZsYXNoICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TICAweGZmYzAwMDAxICAgICAgLyogNE1CLCBlbmFibGUgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYKQEAgLTIwMSw1NCArMjAxLDU0IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBubyBsZWQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KICNkZWZpbmUgQ09ORklHX0lERV9SRVNFVAkxCS8qIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJCS8qIG1heC4gMSBJREUgYnVzc2VzCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCShDRkdfSURFX01BWEJVUyoxKSAvKiBtYXguIDEgZHJpdmVzIHBlciBJREUgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkJLyogbWF4LiAxIElERSBidXNzZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCShDT05GSUdfU1lTX0lERV9NQVhCVVMqMSkgLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLwogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4RjAxMDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4RjAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmIDAgLyogVXNlIE5WUkFNIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1Nyw3ICsyNTcsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05WUkFNCTEJLyogdXNlIE5WUkFNIGZvciBlbnZpcm9ubWVudCB2YXJzCSovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgwZmY4CQkvKiBTaXplIG9mIEVudmlyb25tZW50IHZhcnMJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlcCi0JKENGR19OVlJBTV9CQVNFX0FERFIrQ0ZHX05WUkFNX1NJWkUtKENPTkZJR19FTlZfU0laRSs4KSkJLyogRW52CSovCisJKENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSK0NPTkZJR19TWVNfTlZSQU1fU0laRS0oQ09ORklHX0VOVl9TSVpFKzgpKQkvKiBFbnYJKi8KIAogI2Vsc2UgLyogVXNlIEVFUFJPTSBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzICovCiAKQEAgLTI2NywyNSArMjY3LDI1IEBACiAJCQkJICAgLyogdG90YWwgc2l6ZSBvZiBhIENBVDI0V0MxNiBpcyAyMDQ4IGJ5dGVzICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4ZjAyMDAwMDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJKDMyKjEwMjQpCQkvKiBOVlJBTSBzaXplCQkqLwotI2RlZmluZSBDRkdfVlhXT1JLU19NQUNfUFRSICAgICAoQ0ZHX05WUkFNX0JBU0VfQUREUisweDY5MDApIC8qIFZ4V29ya3MgZXRoLWFkZHIqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweGYwMjAwMDAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJCS8qIE5WUkFNIHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfVlhXT1JLU19NQUNfUFRSICAgICAoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIrMHg2OTAwKSAvKiBWeFdvcmtzIGV0aC1hZGRyKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KIAkJCQkJLyogMTYgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zMDEsODggKzMwMSw4OCBAQAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKEZsYXNoIEJhbmsgMSkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4RkY4NUEwMDAgIC8qIEJBUz0weEZGOCxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDIgKENBTjAsIDEpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwotI2RlZmluZSBDRkdfTEVEX0FERFIJCTB4RjAwMDAzODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xFRF9BRERSCQkweEYwMDAwMzgwCiAKIC8qIE1lbW9yeSBCYW5rIDMgKENvbXBhY3RGbGFzaCBJREUpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayA0IChOVlJBTS9SVEMpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotLyojZGVmaW5lIENGR19FQkNfUEI0QVAJCSAgMHgwMTgwNTI4MCAgLyAqIFRXVD0zLFdCTj0xLFdCRj0xLFRIPTEsU09SPTEJICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRBUAkJMHgwMTgwNTY4MCAgLyogVFdUPTMsV0JOPTEsV0JGPTEsVEg9MyxTT1I9MQkqLwotI2RlZmluZSBDRkdfRUJDX1BCNENSCQkweEYwMjE4MDAwICAvKiBCQVM9MHhGMDIsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisvKiNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJCSAgMHgwMTgwNTI4MCAgLyAqIFRXVD0zLFdCTj0xLFdCRj0xLFRIPTEsU09SPTEJICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJCTB4MDE4MDU2ODAgIC8qIFRXVD0zLFdCTj0xLFdCRj0xLFRIPTMsU09SPTEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0Q1IJCTB4RjAyMTgwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgNSAob3B0aW9uYWwgUXVhcnQpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI1QVAJCTB4MDQwMDVCODAgIC8qIFRXVD04LFdCTj0xLFdCRj0xLFRIPTUsUkU9MSxTT1I9MSovCi0jZGVmaW5lIENGR19FQkNfUEI1Q1IJCTB4RjAzMTgwMDAgIC8qIEJBUz0weEYwMyxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1QVAJCTB4MDQwMDVCODAgIC8qIFRXVD04LFdCTj0xLFdCRj0xLFRIPTUsUkU9MSxTT1I9MSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUNSCQkweEYwMzE4MDAwICAvKiBCQVM9MHhGMDMsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDYgKEZQR0EgaW50ZXJuYWwpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCNkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjZDUgkJMHhGMDQxQTAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRV9BRERSCTB4RjA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI2QVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjZDUgkJMHhGMDQxQTAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUgkweEYwNDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZQR0Egc3R1ZmYKICAqLwogLyogRlBHQSBpbnRlcm5hbCByZWdzICovCi0jZGVmaW5lIENGR19GUEdBX01PREUJCTB4MDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTCQkweDAyCi0jZGVmaW5lIENGR19GUEdBX1RTCQkweDA0Ci0jZGVmaW5lIENGR19GUEdBX1RTX0xPVwkJMHgwNgotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAwCTB4MTAKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMF9MT1cJMHgxMgotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAxCTB4MTQKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMV9MT1cJMHgxNgotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAyCTB4MTgKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMl9MT1cJMHgxYQotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAzCTB4MWMKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQM19MT1cJMHgxZQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERQkJMHgwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTCQkweDAyCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UUwkJMHgwNAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfTE9XCQkweDA2CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAwCTB4MTAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDBfTE9XCTB4MTIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDEJMHgxNAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMV9MT1cJMHgxNgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMgkweDE4CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAyX0xPVwkweDFhCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAzCTB4MWMKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDNfTE9XCTB4MWUKIAogLyogRlBHQSBNb2RlIFJlZyAqLwotI2RlZmluZSBDRkdfRlBHQV9NT0RFX0NGX1JFU0VUCSAgICAweDAwMDEKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9EVUFSVF9SRVNFVCAgIDB4MDAwMgotI2RlZmluZSBDRkdfRlBHQV9NT0RFX0VOQUJMRV9PVVRQVVQgMHgwMDA0ICAgICAvKiBvbmx5IHNldCBvbiBDUENJLTQwNSBWZXIgMyAqLwotI2RlZmluZSBDRkdfRlBHQV9NT0RFX1RTX0lSUV9FTkFCTEUgMHgwMTAwCi0jZGVmaW5lIENGR19GUEdBX01PREVfVFNfSVJRX0NMRUFSICAweDEwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9UU19DTEVBUgkgICAgMHgyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFX0NGX1JFU0VUCSAgICAweDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfRFVBUlRfUkVTRVQgICAweDAwMDIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfRU5BQkxFX09VVFBVVCAweDAwMDQgICAgIC8qIG9ubHkgc2V0IG9uIENQQ0ktNDA1IFZlciAzICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFX1RTX0lSUV9FTkFCTEUgMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFX1RTX0lSUV9DTEVBUiAgMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFX1RTX0NMRUFSCSAgICAweDIwMDAKIAogLyogRlBHQSBTdGF0dXMgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19ESVAwCTB4MDAwMQotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfRElQMQkweDAwMDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0RJUDIJMHgwMDA0Ci0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19GTEFTSAkweDAwMDgKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX1RTX0lSUQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19ESVAwCTB4MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0RJUDEJMHgwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRElQMgkweDAwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19GTEFTSAkweDAwMDgKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19UU19JUlEJMHgxMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1BBUlRBTjIJMQkgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTUFYX1NJWkUJMzIqMTAyNAkgICAgLyogMzJrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlMxNSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCTEJICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRQkzMioxMDI0CSAgICAvKiAzMmtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzE1ICAqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAgICovCi0jZGVmaW5lIENGR19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9EQ0FDSEVfQ1MJNwkvKiB1c2UgY3MgIyA3IGZvciBkYXRhIGNhY2hlIG1lbW9yeSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTCTcJLyogdXNlIGNzICMgNyBmb3IgZGF0YSBjYWNoZSBtZW1vcnkgICAgKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwICAvKiB1c2UgZGF0YSBjYWNoZQkJICAgICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIHVzZSBkYXRhIGNhY2hlCQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTc1MC5oIGIvaW5jbHVkZS9jb25maWdzL0NQQ0k3NTAuaAppbmRleCA0NmY4MGQxLi44NDk0ZmFhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTc1MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DUENJNzUwLmgKQEAgLTY4LDE4ICs2OCwxOCBAQAogI2RlZmluZSBDT05GSUdfQk9BUkRfUFJFX0lOSVQKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRiAxCiAKLSNkZWZpbmUgQ0ZHX0JPQVJEX05BTUUJCSJDUENJNzUwIgorI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX05BTUUJCSJDUENJNzUwIgogI2RlZmluZSBDT05GSUdfSURFTlRfU1RSSU5HCSJNYXJ2ZWxsIDY0MzYwICsgSUJNNzUwRlgiCiAKLS8qI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKKy8qI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUgMQogCiAvKiBEZWZpbmUgd2hpY2ggRVRIIHBvcnQgd2lsbCBiZSB1c2VkIGZvciBjb25uZWN0aW5nIHRoZSBuZXR3b3JrICovCi0jZGVmaW5lIENGR19FVEhfUE9SVAkJRVRIXzAKKyNkZWZpbmUgQ09ORklHX1NZU19FVEhfUE9SVAkJRVRIXzAKIAogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBsZXQgeW91IHNlbGVjdCB3aGF0IHNlcmlhbCB5b3Ugd2FudCB0byB1c2UKQEAgLTg3LDcgKzg3LDcgQEAKICAqCiAgKiB3aGF0IHRvIGRvOgogICogdG8gdXNlIHRoZSBEVUFSVCwgdW5kZWYgQ09ORklHX01QU0MuCSBJZiB5b3UgaGF2ZSBoYWNrZWQgYSBzZXJpYWwKLSAqIGNhYmxlIG9udG8gdGhlIHNlY29uZCBEVUFSVCBjaGFubmVsLCBjaGFuZ2UgdGhlIENGR19EVUFSVCBwb3J0IGZyb20gMQorICogY2FibGUgb250byB0aGUgc2Vjb25kIERVQVJUIGNoYW5uZWwsIGNoYW5nZSB0aGUgQ09ORklHX1NZU19EVUFSVCBwb3J0IGZyb20gMQogICogdG8gMCBiZWxvdy4KICAqCiAgKiB0byB1c2UgdGhlIE1QU0MsICNkZWZpbmUgQ09ORklHX01QU0MuICBJZiB5b3UgaGF2ZSB3aXJlZCB1cCBhbm90aGVyCkBAIC0xMzAsNyArMTMwLDcgQEAKIAogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTAJLyogZWNobyBvZmYgZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlcwkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAjdW5kZWYJQ09ORklHX0FMVElWRUMJCQkvKiB1bmRlZiB0byBkaXNhYmxlCQkqLwpAQCAtMTc1LDc1ICsxNzUsNzUgQEAKICNkZWZpbmUgQ09ORklHX1ZJREVPX1NXX0NVUlNPUgogI2RlZmluZSBDT05GSUdfVklERU9fTE9HTwogI2RlZmluZSBDT05GSUdfSTgwNDJfS0JECi0jZGVmaW5lIENGR19JU0FfSU8gMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JTyAwCiAjZW5kaWYKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAyCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwotI2RlZmluZSBDRkdfSTJDX1NQRUVECTgwMDAwCQkvKiBJMkMgc3BlZWQgZGVmYXVsdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECTgwMDAwCQkvKiBJMkMgc3BlZWQgZGVmYXVsdCAqLwogCi0jZGVmaW5lIENGR19HVF9EVUFMX0NQVQkJCS8qIGFsc28gZm9yIEpUQUcgZXZlbiB3aXRoIG9uZSBjcHUgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HVF9EVUFMX0NQVQkJCS8qIGFsc28gZm9yIEpUQUcgZXZlbiB3aXRoIG9uZSBjcHUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotLyojZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAqLwkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0vKiNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwKi8JLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwotLyojZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwN2MwMDAwMCovCS8qIDQgLi4uIDEyNCBNQiBpbiBEUkFNICovCisvKiNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAqLwkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisvKiNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEMwMDAwMCovCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA3YzAwMDAwKi8JLyogNCAuLi4gMTI0IE1CIGluIERSQU0gKi8KIAogLyoKLSNkZWZpbmUgQ0ZHX0RSQU1fVEVTVAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fVEVTVAogICogRFJBTSB0ZXN0cwotICogICBDRkdfRFJBTV9URVNUIC0gZW5hYmxlcyB0aGUgZm9sbG93aW5nIHRlc3RzLgorICogICBDT05GSUdfU1lTX0RSQU1fVEVTVCAtIGVuYWJsZXMgdGhlIGZvbGxvd2luZyB0ZXN0cy4KICAqCi0gKiAgIENGR19EUkFNX1RFU1RfREFUQSAtIEVuYWJsZXMgdGVzdCBmb3Igc2hvcnRlZCBvciBvcGVuIGRhdGEgbGluZXMKKyAqICAgQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQSAtIEVuYWJsZXMgdGVzdCBmb3Igc2hvcnRlZCBvciBvcGVuIGRhdGEgbGluZXMKICAqCQkJICBFbnZpcm9ubWVudCB2YXJpYWJsZSAndGVzdF9kcmFtX2RhdGEnIG11c3QgYmUKICAqCQkJICBzZXQgdG8gJ3knLgotICogICBDRkdfRFJBTV9URVNUX0RBVEEgLSBFbmFibGVzIHRlc3QgdG8gdmVyaWZ5IHRoYXQgZWFjaCB3b3JkIGlzIHVuaXF1ZWx5CisgKiAgIENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEgLSBFbmFibGVzIHRlc3QgdG8gdmVyaWZ5IHRoYXQgZWFjaCB3b3JkIGlzIHVuaXF1ZWx5CiAgKgkJCSAgYWRkcmVzc2FibGUuIEVudmlyb25tZW50IHZhcmlhYmxlCiAgKgkJCSAgJ3Rlc3RfZHJhbV9hZGRyZXNzJyBtdXN0IGJlIHNldCB0byAneScuCi0gKiAgIENGR19EUkFNX1RFU1RfV0FMSyAtIEVuYWJsZXMgdGVzdCBhIDY0LWJpdCB3YWxraW5nIG9uZXMgcGF0dGVybiB0ZXN0LgorICogICBDT05GSUdfU1lTX0RSQU1fVEVTVF9XQUxLIC0gRW5hYmxlcyB0ZXN0IGEgNjQtYml0IHdhbGtpbmcgb25lcyBwYXR0ZXJuIHRlc3QuCiAgKgkJCSAgVGhpcyB0ZXN0IHRha2VzIGFib3V0IDYgbWludXRlcyB0byB0ZXN0IDY0IE1CLgogICoJCQkgIEVudmlyb25tZW50IHZhcmlhYmxlICd0ZXN0X2RyYW1fd2FsaycgbXVzdCBiZQogICoJCQkgIHNldCB0byAneScuCiAgKi8KLSNkZWZpbmUgQ0ZHX0RSQU1fVEVTVAotI2lmIGRlZmluZWQoQ0ZHX0RSQU1fVEVTVCkKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotLyojZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEMwMDAwMCovCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA3YzAwMDAwCS8qIDQgLi4uIDEyNCBNQiBpbiBEUkFNICovCi0jZGVmaW5lIENGR19EUkFNX1RFU1RfREFUQQotI2RlZmluZSBDRkdfRFJBTV9URVNUX0FERFJFU1MKLSNkZWZpbmUgQ0ZHX0RSQU1fVEVTVF9XQUxLCi0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fVEVTVAorI2lmIGRlZmluZWQoQ09ORklHX1NZU19EUkFNX1RFU1QpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisvKiNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEMwMDAwMCovCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwN2MwMDAwMAkvKiA0IC4uLiAxMjQgTUIgaW4gRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUX0FERFJFU1MKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1RFU1RfV0FMSworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUICovCiAKICNkZWZpbmUgQ09ORklHX0RJU1BMQVlfTUVNTUFQCQkvKiBhdCB0aGUgZW5kIG9mIHRoZSBib290cHJvY2VzcyBzaG93IHRoZSBtZW1vcnkgbWFwICovCi0jdW5kZWYgQ0ZHX0RJU1BMQVlfRElNTV9TUERfQ09OVEVOVAkvKiBzaG93IFNQRCBjb250ZW50IGR1cmluZyBib290ICovCisjdW5kZWYgQ09ORklHX1NZU19ESVNQTEFZX0RJTU1fU1BEX0NPTlRFTlQJLyogc2hvdyBTUEQgY29udGVudCBkdXJpbmcgYm9vdCAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAzMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAzMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyIGZyZXE6IDFtcyB0aWNrcyAqLwotI2RlZmluZSBDRkdfQlVTX0haCQkxMzMwMDAwMDAJLyogMTMzIE1IeiAoQ1BVID0gNSpCdXMgPSA2NjZNSHopCQkqLwotI2RlZmluZSBDRkdfQlVTX0NMSwkJQ0ZHX0JVU19IWgorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfSFoJCTEzMzAwMDAwMAkvKiAxMzMgTUh6IChDUFUgPSA1KkJ1cyA9IDY2Nk1IeikJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0NMSwkJQ09ORklHX1NZU19CVVNfSFoKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKLSNkZWZpbmUgQ0ZHX1RDTEsJCTEzMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RDTEsJCTEzMzAwMDAwMAogCi0vKiNkZWZpbmUgQ0ZHXzc1MEZYX0hJRDAJCTB4ODAwMGMwODQqLwotI2RlZmluZSBDRkdfNzUwRlhfSElEMAkJMHg4MDAwODQ4NAotI2RlZmluZSBDRkdfNzUwRlhfSElEMQkJMHg1NDgwMDAwMAotI2RlZmluZSBDRkdfNzUwRlhfSElEMgkJMHgwMDAwMDAwMAorLyojZGVmaW5lIENPTkZJR19TWVNfNzUwRlhfSElEMAkJMHg4MDAwYzA4NCovCisjZGVmaW5lIENPTkZJR19TWVNfNzUwRlhfSElEMAkJMHg4MDAwODQ4NAorI2RlZmluZSBDT05GSUdfU1lTXzc1MEZYX0hJRDEJCTB4NTQ4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU183NTBGWF9ISUQyCQkweDAwMDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjU2LDYzICsyNTYsNjMgQEAKICAqLwogCiAgLyoKLSAqIFdoZW4gbG9ja2luZyBkYXRhIGluIGNhY2hlIHlvdSBzaG91bGQgcG9pbnQgdGhlIENGR19JTklUX1JBTV9BRERSRVNTCisgKiBXaGVuIGxvY2tpbmcgZGF0YSBpbiBjYWNoZSB5b3Ugc2hvdWxkIHBvaW50IHRoZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJFU1MKICAqIFRvIGFuIHVudXNlZCBtZW1vcnkgcmVnaW9uLiBUaGUgc3RhY2sgd2lsbCByZW1haW4gaW4gY2FjaGUgdW50aWwgUkFNCiAgKiBpcyBpbml0aWFsaXplZAogKi8KLSN1bmRlZgkgIENGR19JTklUX1JBTV9MT0NLCi0vKiAjZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAqLyAvKiB1bnVzZWQgbWVtb3J5IHJlZ2lvbiAqLwotLyogI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweGZiYTAwMDAwKi8gLyogdW51c2VkIG1lbW9yeSByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhmMTA4MDAwMCAvKiB1bnVzZWQgbWVtb3J5IHJlZ2lvbiAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXQgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjdW5kZWYJICBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKKy8qICNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAqLyAvKiB1bnVzZWQgbWVtb3J5IHJlZ2lvbiAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhmYmEwMDAwMCovIC8qIHVudXNlZCBtZW1vcnkgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGYxMDgwMDAwIC8qIHVudXNlZCBtZW1vcnkgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAjZGVmaW5lIFJFTE9DQVRFX0lOVEVSTkFMX1JBTV9BRERSCiAjaWZkZWYgUkVMT0NBVEVfSU5URVJOQUxfUkFNX0FERFIKLS8qI2RlZmluZSBDRkdfSU5URVJOQUxfUkFNX0FERFIgMHhmYmEwMDAwMCovCi0jZGVmaW5lIENGR19JTlRFUk5BTF9SQU1fQUREUgkweGYxMDgwMDAwCisvKiNkZWZpbmUgQ09ORklHX1NZU19JTlRFUk5BTF9SQU1fQUREUiAweGZiYTAwMDAwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTlRFUk5BTF9SQU1fQUREUgkweGYxMDgwMDAwCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCiAvKiBEdW1taWVzIGZvciBCQVQgNC03ICovCi0jZGVmaW5lIENGR19TRFJBTTFfQkFTRQkJMHgxMDAwMDAwMAkvKiBlYWNoIDI1NiBNQnl0ZSAqLwotI2RlZmluZSBDRkdfU0RSQU0yX0JBU0UJCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNM19CQVNFCQkweDMwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTRfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmZjAwMTAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweGZmZjAwMDAwCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0xX0JBU0UJCTB4MTAwMDAwMDAJLyogZWFjaCAyNTYgTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTJfQkFTRQkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNM19CQVNFCQkweDMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU00X0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmZmMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHhmZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCSAgIC8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCSAgIC8qIHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCSAgIC8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZjMDAwMDAwIC8qIHN0YXJ0IG9mIGZsYXNoIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTQJICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVAkweDAxMDAwMDAwIC8qIHNpemUgb2YgIGZsYXNoIGJhbmsJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUICB7IENGR19GTEFTSF9CQVNFLAkJCQkgICBcCi0JCQkJQ0ZHX0ZMQVNIX0JBU0UgKyAxKkNGR19GTEFTSF9JTkNSRU1FTlQsCSAgIFwKLQkJCQlDRkdfRkxBU0hfQkFTRSArIDIqQ0ZHX0ZMQVNIX0lOQ1JFTUVOVCwJICAgXAotCQkJCUNGR19GTEFTSF9CQVNFICsgMypDRkdfRkxBU0hfSU5DUkVNRU5UIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JMQkgICAvKiBzaG93IGlmIGJhbmsgaXMgZW1wdHkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCSAgIC8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkgICAvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJICAgLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZjMDAwMDAwIC8qIHN0YXJ0IG9mIGZsYXNoIGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwk0CSAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UCTB4MDEwMDAwMDAgLyogc2l6ZSBvZiAgZmxhc2ggYmFuawkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCAgeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCQkJCSAgIFwKKwkJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAxKkNPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5ULAkgICBcCisJCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMipDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVCwJICAgXAorCQkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArIDMqQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JMQkgICAvKiBzaG93IGlmIGJhbmsgaXMgZW1wdHkJCSovCiAKIC8qIGFyZWFzIHRvIG1hcCBkaWZmZXJlbnQgdGhpbmdzIHdpdGggdGhlIEdUIGluIHBoeXNpY2FsIHNwYWNlICovCi0jZGVmaW5lIENGR19EUkFNX0JBTktTCQk0CisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQU5LUwkJNAogCiAvKiBXaGF0IHRvIHB1dCBpbiB0aGUgYmF0cy4gKi8KLSNkZWZpbmUgQ0ZHX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAogCiAvKiBQZXJpcGhlcmFsIERldmljZSBzZWN0aW9uICovCiAKQEAgLTMyNiwzNyArMzI2LDM3IEBACiAvKiBEYXRhIGZsYXNoIG9uIGV4dGVybmFsIGRldmljZSBtb2R1bGUJCSAgICAgICAqLwogLyogQm9vdCBmbGFzaCBvbiBleHRlcm5hbCBkZXZpY2UgbW9kdWxlCQkgICAgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJCQkJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KLSNkZWZpbmUJIENGR19DUENJNzUwX1JFU0VUX0FERFIgMHgxNDAwMDAwMAkJCQkvKiBBZnRlciBwb3dlciBvbiBSZXNldCB0aGUgQ1BDSTc1MCBpcyBoZXJlICovCisjZGVmaW5lIENPTkZJR19TWVNfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJCQkJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KKyNkZWZpbmUJIENPTkZJR19TWVNfQ1BDSTc1MF9SRVNFVF9BRERSIDB4MTQwMDAwMDAJCQkJLyogQWZ0ZXIgcG93ZXIgb24gUmVzZXQgdGhlIENQQ0k3NTAgaXMgaGVyZSAqLwogCiAjdW5kZWYJTUFSVkVMX1NUQU5EQVJEX0NGRwogI2lmbmRlZgkJTUFSVkVMX1NUQU5EQVJEX0NGRwogLyorKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKi8KLSNkZWZpbmUgQ0ZHX0dUX1JFR1MJCTB4ZjEwMDAwMDAJCQkJLyogR1QgUmVnaXN0ZXJzIHdpbGwgYmUgbWFwcGVkIGhlcmUgKi8KLS8qI2RlZmluZSBDRkdfREVWX0JBU0UJCTB4ZmMwMDAwMDAqLwkJCQkvKiBHVCBEZXZpY2VzIENTIHN0YXJ0IGhlcmUgKi8KLSNkZWZpbmUgQ0ZHX0lOVF9TUkFNX0JBU0UJMHhmMTA4MDAwMAkJCQkvKiBHVCBvZmZlcnMgMjU2ayBpbnRlcm5hbCBmYXN0IFNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HVF9SRUdTCQkweGYxMDAwMDAwCQkJCS8qIEdUIFJlZ2lzdGVycyB3aWxsIGJlIG1hcHBlZCBoZXJlICovCisvKiNkZWZpbmUgQ09ORklHX1NZU19ERVZfQkFTRQkJMHhmYzAwMDAwMCovCQkJCS8qIEdUIERldmljZXMgQ1Mgc3RhcnQgaGVyZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOVF9TUkFNX0JBU0UJMHhmMTA4MDAwMAkJCQkvKiBHVCBvZmZlcnMgMjU2ayBpbnRlcm5hbCBmYXN0IFNSQU0gKi8KIAotI2RlZmluZSBDRkdfQk9PVF9TUEFDRQkJMHhmZjAwMDAwMAkJCQkvKiBCT09UX0NTMCBmbGFzaCAwICAgICovCi0jZGVmaW5lIENGR19ERVYwX1NQQUNFCQkweGZjMDAwMDAwCQkJCS8qIERFVl9DUzAgZmxhc2ggMSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0RFVjFfU1BBQ0UJCTB4ZmQwMDAwMDAJCQkJLyogREVWX0NTMSBmbGFzaCAyICAgICAqLwotI2RlZmluZSBDRkdfREVWMl9TUEFDRQkJMHhmZTAwMDAwMAkJCQkvKiBERVZfQ1MyIGZsYXNoIDMgICAgICovCi0jZGVmaW5lIENGR19ERVYzX1NQQUNFCQkweGYwMDAwMDAwCQkJCS8qIERFVl9DUzMgbnZyYW0vY2FuICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX1NQQUNFCQkweGZmMDAwMDAwCQkJCS8qIEJPT1RfQ1MwIGZsYXNoIDAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYwX1NQQUNFCQkweGZjMDAwMDAwCQkJCS8qIERFVl9DUzAgZmxhc2ggMSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYxX1NQQUNFCQkweGZkMDAwMDAwCQkJCS8qIERFVl9DUzEgZmxhc2ggMiAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYyX1NQQUNFCQkweGZlMDAwMDAwCQkJCS8qIERFVl9DUzIgZmxhc2ggMyAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYzX1NQQUNFCQkweGYwMDAwMDAwCQkJCS8qIERFVl9DUzMgbnZyYW0vY2FuICAgKi8KIAotI2RlZmluZSBDRkdfQk9PVF9TSVpFCQlfMTZNCQkJCQkvKiBjcGNpNzUwIGZsYXNoIDAgICAgICovCi0jZGVmaW5lIENGR19ERVYwX1NJWkUJCV8xNk0JCQkJCS8qIGNwY2k3NTAgZmxhc2ggMSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0RFVjFfU0laRQkJXzE2TQkJCQkJLyogY3BjaTc1MCBmbGFzaCAyICAgICAqLwotI2RlZmluZSBDRkdfREVWMl9TSVpFCQlfMTZNCQkJCQkvKiBjcGNpNzUwIGZsYXNoIDMgICAgICovCi0jZGVmaW5lIENGR19ERVYzX1NJWkUJCV8xNk0JCQkJCS8qIGNwY2k3NTAgbnZyYW0vY2FuICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX1NJWkUJCV8xNk0JCQkJCS8qIGNwY2k3NTAgZmxhc2ggMCAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYwX1NJWkUJCV8xNk0JCQkJCS8qIGNwY2k3NTAgZmxhc2ggMSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYxX1NJWkUJCV8xNk0JCQkJCS8qIGNwY2k3NTAgZmxhc2ggMiAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYyX1NJWkUJCV8xNk0JCQkJCS8qIGNwY2k3NTAgZmxhc2ggMyAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYzX1NJWkUJCV8xNk0JCQkJCS8qIGNwY2k3NTAgbnZyYW0vY2FuICAgKi8KIAogLyorKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKi8KICNlbmRpZgogCiAvKiBSZXNldCB2YWx1ZXMgZm9yIFBvcnQgYmVoYXZpb3IgKDhiaXQvIDMyYml0LCBldGMuKSBvbmx5IGNvcnJlY3RlZCBieSBkZXZpY2Ugd2lkdGggKi8KLSNkZWZpbmUgQ0ZHX0RFVjBfUEFSCQkweDhGREZGRkZGCQkJCS8qIDE2IGJpdCBmbGFzaCAqLwotI2RlZmluZSBDRkdfREVWMV9QQVIJCTB4OEZERkZGRkYJCQkJLyogMTYgYml0IGZsYXNoICovCi0jZGVmaW5lIENGR19ERVYyX1BBUgkJMHg4RkRGRkZGRgkJCQkvKiAxNiBiaXQgZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0RFVjNfUEFSCQkweDhGQ0ZGRkZGCQkJCS8qIG52cmFtL2NhbgkqLwotI2RlZmluZSBDRkdfQk9PVF9QQVIJCTB4OEZERkZGRkYJCQkJLyogMTYgYml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMF9QQVIJCTB4OEZERkZGRkYJCQkJLyogMTYgYml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMV9QQVIJCTB4OEZERkZGRkYJCQkJLyogMTYgYml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9QQVIJCTB4OEZERkZGRkYJCQkJLyogMTYgYml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWM19QQVIJCTB4OEZDRkZGRkYJCQkJLyogbnZyYW0vY2FuCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9QQVIJCTB4OEZERkZGRkYJCQkJLyogMTYgYml0IGZsYXNoICovCiAKIAkvKiAgIGMJICA0ICAgIGEgICAgICA4CSAgICAyCSAgNCAgICAxICAgICAgYwkJKi8KIAkvKiAzMyAyMnwyMjIyfDIyIDIyfDExMSAxfDExIDExfDEgMSAgfAkgIHwJCSovCkBAIC0zNjYsMTggKzM2NiwxOCBAQAogCiAKIC8qIE1QUCBDb250cm9sIE1WNjQzNjAgQXBwZW5kaXggUCBQLiA2MzIqLwotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMAkweDAwMDAyMjIyCS8qCQkJCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzEJMHgxMTExMDAwMAkvKgkJCQkgICAgICovCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8yCTB4MTExMTExMTEJLyoJCQkJICAgICAqLwotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMwkweDAwMDAxMTExCS8qCQkJCSAgICAgKi8KLS8qICNkZWZpbmUgQ0ZHX1NFUklBTF9QT1JUX01VWAkweDAwMDAwMTAyKi8JLyoJCQkJICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzAJMHgwMDAwMjIyMgkvKgkJCQkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMQkweDExMTEwMDAwCS8qCQkJCSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8yCTB4MTExMTExMTEJLyoJCQkJICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzMJMHgwMDAwMTExMQkvKgkJCQkgICAgICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfU0VSSUFMX1BPUlRfTVVYCTB4MDAwMDAxMDIqLwkvKgkJCQkgICAgICovCiAKIAotI2RlZmluZSBDRkdfR1BQX0xFVkVMX0NPTlRST0wJMHhmZmZmZmZmZgkvKiAxMTExIDExMTEgMTExMSAxMTExIDExMTEgMTExMSAxMTExIDExMTEqLworI2RlZmluZSBDT05GSUdfU1lTX0dQUF9MRVZFTF9DT05UUk9MCTB4ZmZmZmZmZmYJLyogMTExMSAxMTExIDExMTEgMTExMSAxMTExIDExMTEgMTExMSAxMTExKi8KIAogLyogc2V0dXAgbmV3IGNvbmZpZ192YWx1ZSBmb3IgTVY2NDM2MCBERFItUkFNIFRvX2RvICEhICovCi0vKiMgZGVmaW5lIENGR19TRFJBTV9DT05GSUcJMHhkOGUxODIwMCovCS8qIDB4NDQ4ICovCi0vKiMgZGVmaW5lIENGR19TRFJBTV9DT05GSUcJMHhkOGUxNDQwMCovCS8qIDB4MTQwMCAqLworLyojIGRlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NPTkZJRwkweGQ4ZTE4MjAwKi8JLyogMHg0NDggKi8KKy8qIyBkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DT05GSUcJMHhkOGUxNDQwMCovCS8qIDB4MTQwMCAqLwogCQkJCS8qIEdCIGhhcyBoaWdoIHByaW8uCiAJCQkJICAgaWRtYSBoYXMgbG93IHByaW8KIAkJCQkgICBNUFNDIGhhcyBsb3cgcHJpbwpAQCAtMzkzLDcgKzM5Myw3IEBACiAJCQkJICAgdmlydHVhbCBpbnRlcmxlYXZpbmcgZW5hYmxlICovCiAJCQkJLyogMTUgMTQgMTM6MCAqLwogCQkJCS8qIDAgIDEJIDB4NDAwICovCi0jIGRlZmluZSBDRkdfU0RSQU1fQ09ORklHCTB4NTgyMDA0MDAJLyogMHgxNDAwICBjb3BpZWQgZnJvbSBEaW5rMzIgYnp3LiBWeFdvcmtzKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ09ORklHCTB4NTgyMDA0MDAJLyogMHgxNDAwICBjb3BpZWQgZnJvbSBEaW5rMzIgYnp3LiBWeFdvcmtzKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MTEsMzEgKzQxMSwzMSBAQAogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBkZXZpY2VzIG9uIGJ1cwkJKi8KIAogLyogUENJIE1FTU9SWSBNQVAgc2VjdGlvbiAqLwotI2RlZmluZSBDRkdfUENJMF9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX01FTV9TSVpFCV8xMjhNCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODgwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJXzEyOE0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9TSVpFCV8xMjhNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDg4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQlfMTI4TQogCi0jZGVmaW5lIENGR19QQ0kwXzBfTUVNX1NQQUNFCShDRkdfUENJMF9NRU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UJKENGR19QQ0kxX01FTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UpCiAKIC8qIFBDSSBJL08gTUFQIHNlY3Rpb24gKi8KLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fQkFTRQkweGZhMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX0lPX1NJWkUJXzE2TQotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4ZmIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQlfMTZNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19CQVNFCTB4ZmEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUJXzE2TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweGZiMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCV8xNk0KIAotI2RlZmluZSBDRkdfUENJMF9JT19TUEFDRQkoQ0ZHX1BDSTBfSU9fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fU1BBQ0VfUENJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU1BBQ0UJKENGR19QQ0kxX0lPX0JBU0UpCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NQQUNFX1BDSQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19TUEFDRQkoQ09ORklHX1NZU19QQ0kwX0lPX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19TUEFDRV9QQ0kJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0UJKENPTkZJR19TWVNfUENJMV9JT19CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0VfUENJCTB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyAoQ0ZHX1BDSTBfSU9fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTIChDT05GSUdfU1lTX1BDSTBfSU9fQkFTRSkKIAogI2lmIGRlZmluZWQgKENPTkZJR183NTBDWCkKLSNkZWZpbmUgQ0ZHX1BDSV9JRFNFTCAweDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSURTRUwgMHgwCiAjZWxzZQotI2RlZmluZSBDRkdfUENJX0lEU0VMIDB4MzAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSURTRUwgMHgzMAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ0NywxNiArNDQ3LDE2IEBACiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJCS8qIG5vIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkCSovCiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAkJLyogY2hlY2sgZm9yIHVuaXRzCQkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkyCQkvKiBtYXguIDEgSURFIGJ1c3NlcwkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMqMikgLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTIJCS8qIG1heC4gMSBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkoQ09ORklHX1NZU19JREVfTUFYQlVTKjIpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkwCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMAotI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUCTAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUxX09GRlNFVAkwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ2OSwyOCArNDY5LDI4IEBACiAgKi8KIAogLyogU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTCAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMFUgKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMEwgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQwVSBDRkdfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVIENPTkZJR19TWVNfSUJBVDBVCiAKIC8qIGluaXQgcmFtICovCi0jZGVmaW5lIENGR19JQkFUMUwgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVSAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8yNTZLIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzI1NksgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQogCiAvKiBQQ0kwLCBQQ0kxIGluIG9uZSBCQVQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyTCBCQVRMX05PX0FDQ0VTUwotI2RlZmluZSBDRkdfSUJBVDJVIENGR19EQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQyTCAoQ0ZHX1BDSTBfTUVNX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDJVIChDRkdfUENJMF9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTCBCQVRMX05PX0FDQ0VTUworI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVSBDT05GSUdfU1lTX0RCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAoQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBHVCByZWdzLCBib290cm9tLCBhbGwgdGhlIGRldmljZXMsIFBDSSBJL08gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQzTCAoQ0ZHX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcpCi0jZGVmaW5lIENGR19JQkFUM1UgKENGR19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUVV9WUyB8IEJBVFVfVlAgfCBCQVRVX0JMXzI1Nk0pCi0jZGVmaW5lIENGR19EQkFUM0wgKENGR19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQzVSBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMIChDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVIChDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRVX1ZTIHwgQkFUVV9WUCB8IEJBVFVfQkxfMjU2TSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wgKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVIENPTkZJR19TWVNfSUJBVDNVCiAKIC8qCiAgKiA3NTBGWCBJQkFUIGFuZCBEQkFUIHBhaXJzIChUb19kbzogZGVmaW5lIHJlZ2lucyBmb3IgSShEKUJBVDQgLSBJKEQpQkFUNykKQEAgLTUwMSw1MiArNTAxLDUyIEBACiAvKiNkZWZpbmUgU0VUVVBfSElHSF9CQVRTX0ZYNzUwKi8JCS8qIGluaXRpYWxpemUgQkFUUyA0LTcgKi8KIAogI2lmZGVmIFNFVFVQX0hJR0hfQkFUU19GWDc1MAotI2RlZmluZSBDRkdfSUJBVDRMIChDRkdfU0RSQU0xX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUNFUgKENGR19TRFJBTTFfQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDRMIChDRkdfU0RSQU0xX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDRVIENGR19JQkFUNFUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwgKENPTkZJR19TWVNfU0RSQU0xX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRVIChDT05GSUdfU1lTX1NEUkFNMV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMIChDT05GSUdfU1lTX1NEUkFNMV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNFUgQ09ORklHX1NZU19JQkFUNFUKIAogLyogSUJBVDUgYW5kIERCQVQ1ICovCi0jZGVmaW5lIENGR19JQkFUNUwgKENGR19TRFJBTTJfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQ1VSAoQ0ZHX1NEUkFNMl9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNUwgKENGR19TRFJBTTJfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUNVUgQ0ZHX0lCQVQ1VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1TCAoQ09ORklHX1NZU19TRFJBTTJfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNVUgKENPTkZJR19TWVNfU0RSQU0yX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNUwgKENPTkZJR19TWVNfU0RSQU0yX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VSBDT05GSUdfU1lTX0lCQVQ1VQogCiAvKiBJQkFUNiBhbmQgREJBVDYgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ2TCAoQ0ZHX1NEUkFNM19CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDZVIChDRkdfU0RSQU0zX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ2TCAoQ0ZHX1NEUkFNM19CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQ2VSBDRkdfSUJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMIChDT05GSUdfU1lTX1NEUkFNM19CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VSAoQ09ORklHX1NZU19TRFJBTTNfQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TCAoQ09ORklHX1NZU19TRFJBTTNfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVIENPTkZJR19TWVNfSUJBVDZVCiAKIC8qIElCQVQ3IGFuZCBEQkFUNyAqLwotI2RlZmluZSBDRkdfSUJBVDdMIChDRkdfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUN1UgKENGR19TRFJBTTRfQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDdMIChDRkdfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDdVIENGR19JQkFUN1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN0wgKENPTkZJR19TWVNfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVIChDT05GSUdfU1lTX1NEUkFNNF9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdMIChDT05GSUdfU1lTX1NEUkFNNF9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UgQ09ORklHX1NZU19JQkFUN1UKIAogI2Vsc2UJCS8qIHNldCBlbSBvdXQgb2YgcmFuZ2UgZm9yIExpbnV4ICEhISEhISEhISEhICovCi0jZGVmaW5lIENGR19JQkFUNEwgKENGR19TRFJBTTRfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQ0VSAoQ0ZHX1NEUkFNNF9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNEwgKENGR19TRFJBTTRfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUNFUgQ0ZHX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TCAoQ09ORklHX1NZU19TRFJBTTRfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUgKENPTkZJR19TWVNfU0RSQU00X0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNEwgKENPTkZJR19TWVNfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0VSBDT05GSUdfU1lTX0lCQVQ0VQogCiAvKiBJQkFUNSBhbmQgREJBVDUgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ1TCAoQ0ZHX1NEUkFNNF9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDVVIChDRkdfU0RSQU00X0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ1TCAoQ0ZHX1NEUkFNNF9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQ1VSBDRkdfSUJBVDRVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMIChDT05GSUdfU1lTX1NEUkFNNF9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VSAoQ09ORklHX1NZU19TRFJBTTRfQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TCAoQ09ORklHX1NZU19TRFJBTTRfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVVIENPTkZJR19TWVNfSUJBVDRVCiAKIC8qIElCQVQ2IGFuZCBEQkFUNiAqLwotI2RlZmluZSBDRkdfSUJBVDZMIChDRkdfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUNlUgKENGR19TRFJBTTRfQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDZMIChDRkdfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDZVIENGR19JQkFUNFUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwgKENPTkZJR19TWVNfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVIChDT05GSUdfU1lTX1NEUkFNNF9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMIChDT05GSUdfU1lTX1NEUkFNNF9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUgQ09ORklHX1NZU19JQkFUNFUKIAogLyogSUJBVDcgYW5kIERCQVQ3ICovCi0jZGVmaW5lIENGR19JQkFUN0wgKENGR19TRFJBTTRfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQ3VSAoQ0ZHX1NEUkFNNF9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUN0wgKENGR19TRFJBTTRfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUN1UgQ0ZHX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3TCAoQ09ORklHX1NZU19TRFJBTTRfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UgKENPTkZJR19TWVNfU0RSQU00X0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wgKENPTkZJR19TWVNfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VSBDT05GSUdfU1lTX0lCQVQ0VQogCiAjZW5kaWYKIC8qIEZJWE1FOiBpbmdvIGVuZDogZGlzYWJsZSBCQVRzIGZvciBMaW51eCBLZXJuZWwgKi8KQEAgLTU2MCw0MiArNTYwLDQyIEBACiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4PDwyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDg8PDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19CT09UX0ZMQVNIX1dJRFRICTIJLyogMTYgYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9GTEFTSF9XSURUSAkyCS8qIDE2IGJpdCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIExvY2sgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTE9DS19UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBMb2NrIChpbiBtcykgKi8KIAogI2lmIDAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHhGRkY3ODAwMCAvKiBNYXJ2ZWxsIDgtQml0IEJvb3RmbGFzaCBsYXN0IHNlY3RvciAqLwotLyogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJICAgKENGR19GTEFTSF9CQVNFK0NGR19NT05JVE9SX0xFTi1DT05GSUdfRU5WX1NFQ1RfU0laRSkgKi8KKy8qICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCSAgIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UrQ09ORklHX1NZU19NT05JVE9SX0xFTi1DT05GSUdfRU5WX1NFQ1RfU0laRSkgKi8KICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCTEJLyogdXNlIEVFUFJPTSBmb3IgZW52aXJvbm1lbnQgdmFycyAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA1Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAyMAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4MDUwCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA1CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMjAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHgwNTAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MjAwCS8qIGVudmlyb25tZW50IHN0YXJ0cyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBFRVBST00gKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDYwMAkvKiAyMDQ4IGJ5dGVzIG1heSBiZSB1c2VkIGZvciBlbnYgdmFycyovCiAKLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweGYwMDAwMDAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJCSgzMioxMDI0KQkJLyogTlZSQU0gc2l6ZQkJKi8KLSNkZWZpbmUgQ0ZHX1ZYV09SS1NfTUFDX1BUUgkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS0weDQwKQorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweGYwMDAwMDAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJCS8qIE5WUkFNIHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfVlhXT1JLU19NQUNfUFRSCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtMHg0MCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgYWxsIE1QQzc0eHggQ1BVcwkJICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIGFsbCBNUEM3NHh4IENQVXMJCSAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTYwMyw4ICs2MDMsOCBAQAogICogbG9vayBpbiBpbmNsdWRlL21wYzc0eHguaCBmb3IgdGhlIGRlZmluZXMgdXNlZCBoZXJlCiAgKi8KIAotLyojZGVmaW5lIENGR19MMiovCi0jdW5kZWYgQ0ZHX0wyCisvKiNkZWZpbmUgQ09ORklHX1NZU19MMiovCisjdW5kZWYgQ09ORklHX1NZU19MMgogCiAvKiAgICAjaWZkZWYgQ09ORklHXzc1MENYKi8KICNpZiBkZWZpbmVkIChDT05GSUdfNzUwQ1gpIHx8IGRlZmluZWQgKENPTkZJR183NTBGWCkKQEAgLTYyNCw2ICs2MjQsNiBAQAogI2RlZmluZSBCT09URkxBR19DT0xECTB4MDEJCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JMHgwMgkJLyogU29mdHdhcmUgcmVib290CQkgICAgKi8KIAotI2RlZmluZSBDRkdfQk9BUkRfQVNNX0lOSVQJMQorI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX0FTTV9JTklUCTEKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9DUENJSVNFUjQuaCBiL2luY2x1ZGUvY29uZmlncy9DUENJSVNFUjQuaAppbmRleCBkN2U5NzM5Li4yZDYwZWJmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDSUlTRVI0LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0NQQ0lJU0VSNC5oCkBAIC00OCw3ICs0OCw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiYm9vdG0gZmZmMDAwMDAiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkwCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTkyLDMzICs5MiwzMyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJMTg0MzIwMAkgLyogdXNlIGV4dGVybmFsIHNlcmlhbCBjbG9jawkqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJMTg0MzIwMAkgLyogdXNlIGV4dGVybmFsIHNlcmlhbCBjbG9jawkqLwogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKQEAgLTEzNSw2OSArMTM1LDY5IEBACiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkJCSovCiAJCQkJCS8qIHJlc291cmNlIGNvbmZpZ3VyYXRpb24JKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA0CS8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktSVNFUjQJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMJMHhmZjAwMDAwMQkvKiAxNk1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4ZmZlMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCTB4ZmZlMDAwMDEJLyogMk1CLCBlbmFibGUJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDQJLyogUENJIERldmljZSBJRDogQ1BDSS1JU0VSNAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4ZmYwMDAwMDEJLyogMTZNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4ZmZlMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkweGZmZTAwMDAxCS8qIDJNQiwgZW5hYmxlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQyBFRVBST00gKENBVDI0V0MwOCkgZm9yIGVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIgkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCiAJCQkJCS8qIDE2IGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdCA0IGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00JMQkvKiB1c2UgRUVQUk9NIGZvciBlbnZpcm9ubWVudCB2YXJzICovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDAwMAkvKiBlbnZpcm9ubWVudCBzdGFydHMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgRUVQUk9NICovCkBAIC0yMTgsMzAgKzIxOCwzMCBAQAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKFVhcnQgOGJpdCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDEwMDA0ODAgIC8qIFRXVD0yLFRIPTIsbm8gUmVhZHksQkVNPTAsU09SPTEJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHgwMTAwMDQ4MCAgLyogVFdUPTIsVEg9MixubyBSZWFkeSxCRU09MCxTT1I9MQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAyIChVYXJ0IDMyYml0KSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMDAwMDRjMCAgLyogbm8gUmVhZHksIEJFTT0xCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDExQzAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MzJiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDAwMDA0YzAgIC8qIG5vIFJlYWR5LCBCRU09MQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMTFDMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0zMmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAzIChGUEdBIFJlc2V0KSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMTAwMDRDMCAgLyogbm8gUmVhZHksIEJFTT0xCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJMHhGMDIxQTAwMCAgLyogQkFTPTB4RjAyLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDEwMDA0QzAgIC8qIG5vIFJlYWR5LCBCRU09MQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkweEYwMjFBMDAwICAvKiBCQVM9MHhGMDIsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX0RDQUNIRV9DUwk3CS8qIHVzZSBjcyAjIDcgZm9yIGRhdGEgY2FjaGUgbWVtb3J5ICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIHVzZSBkYXRhIGNhY2hlCQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTCTcJLyogdXNlIGNzICMgNyBmb3IgZGF0YSBjYWNoZSBtZW1vcnkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIHVzZSBkYXRhIGNhY2hlCQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ1BVODYuaCBiL2luY2x1ZGUvY29uZmlncy9DUFU4Ni5oCmluZGV4IDVmNGUwYzcuLmNmMjFmZDkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9DUFU4Ni5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DUFU4Ni5oCkBAIC04MywxMCArODMsMTAgQEAKICAqIC0gUkFNIGZvciBCRC9CdWZmZXJzIGlzIG9uIHRoZSA2MHggQnVzIChzZWUgMjgtMTMpCiAgKiAtIEVuYWJsZSBGdWxsIER1cGxleCBpbiBGU01SCiAgKi8KLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMXxDTVhGQ1JfUkYxQ1NfTVNLfENNWEZDUl9URjFDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYxQ1NfQ0xLMTF8Q01YRkNSX1RGMUNTX0NMSzEyKQotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMxfENNWEZDUl9SRjFDU19NU0t8Q01YRkNSX1RGMUNTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYxQ1NfQ0xLMTF8Q01YRkNSX1RGMUNTX0NMSzEyKQorIyBkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjIGRlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKIAogI2VsaWYgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkNDKSAmJiAoQ09ORklHX0VUSEVSX0lOREVYID09IDIpCiAKQEAgLTk2LDEwICs5NiwxMCBAQAogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIDYweCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzJ8Q01YRkNSX1JGMkNTX01TS3xDTVhGQ1JfVEYyQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQogCiAjZW5kaWYgLyogQ09ORklHX0VUSEVSX09OX0ZDQywgQ09ORklHX0VUSEVSX0lOREVYICovCiAKQEAgLTEyNSw4ICsxMjUsOCBAQAogICovCiAjZGVmaW5lCUNPTkZJR19TT0ZUX0kyQwkJCS8qIFNvZnR3YXJlIEkyQyBzdXBwb3J0IGVuYWJsZWQJKi8KIAotIyBkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNTAwMDAKLSMgZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUKIC8qCiAgKiBTb2Z0d2FyZSAoYml0LWJhbmcpIEkyQyBkcml2ZXIgY29uZmlndXJhdGlvbgogICovCkBAIC0xNDEsNyArMTQxLDcgQEAKICNkZWZpbmUgSTJDX0RFTEFZCXVkZWxheSg1KQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAKICNkZWZpbmUgQ09ORklHX1JUQ19QQ0Y4NTYzCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg1MQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDUxCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTQ5LDE3ICsxNDksMTcgQEAKICAqIERpc2stT24tQ2hpcCBjb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCSovCiAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU1VQUE9SVF8yMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucwogICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtMTg5LDE1NiArMTg5LDE1NiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCi0jZGVmaW5lCUNGR19SRVNFVF9BRERSRVNTIDB4RkZGMDAxMDAJLyogImJhZCIgYWRkcmVzcwkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19SRVNFVF9BRERSRVNTIDB4RkZGMDAxMDAJLyogImJhZCIgYWRkcmVzcwkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwogCi0jZGVmaW5lIENGR19CT09UUk9NX0JBU0UJMHhGRjgwMDAwMAotI2RlZmluZSBDRkdfQk9PVFJPTV9TSVpFCTB4MDAwODAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUk9NX0JBU0UJMHhGRjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RST01fU0laRQkweDAwMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBPdGhlciBhcmVhcyB0byBiZSBtYXBwZWQKICAqLwogCiAvKiBDUzM6IER1YWwgcG9ydGVkIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0RQU1JBTV9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19EUFNSQU1fU0laRQkJMHgwMDAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RQU1JBTV9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFBTUkFNX1NJWkUJCTB4MDAwMjAwMDAKIAogLyogQ1M0OiBEaXNrT25DaGlwICovCi0jZGVmaW5lIENGR19ET0NfQkFTRQkJMHhGNDAwMDAwMAotI2RlZmluZSBDRkdfRE9DX1NJWkUJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfQkFTRQkJMHhGNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TSVpFCQkweDAwMTAwMDAwCiAKIC8qIENTNTogRkRDMzdDNzggY29udHJvbGxlciAqLwotI2RlZmluZSBDRkdfRkRDMzdDNzhfQkFTRQkweEYxMDAwMDAwCi0jZGVmaW5lIENGR19GREMzN0M3OF9TSVpFCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GREMzN0M3OF9CQVNFCTB4RjEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GREMzN0M3OF9TSVpFCTB4MDAxMDAwMDAKIAogLyogQ1M2OiBCb2FyZCBjb25maWd1cmF0aW9uIHJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfQkNSU19CQVNFCQkweEYyMDAwMDAwCi0jZGVmaW5lIENGR19CQ1JTX1NJWkUJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1JTX0JBU0UJCTB4RjIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1JTX1NJWkUJCTB4MDAwMTAwMDAKIAogLyogQ1M3OiBWTUUgRXh0ZW5kZWQgQWNjZXNzIFJhbmdlICovCi0jZGVmaW5lIENGR19WTUVFQVJfQkFTRQkJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfVk1FRUFSX1NJWkUJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19WTUVFQVJfQkFTRQkJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1ZNRUVBUl9TSVpFCQkweDAxMDAwMDAwCiAKIC8qIENTODogVk1FIFN0YW5kYXJkIEFjY2VzcyBSYW5nZSAqLwotI2RlZmluZSBDRkdfVk1FU0FSX0JBU0UJCTB4RkUwMDAwMDAKLSNkZWZpbmUgQ0ZHX1ZNRVNBUl9TSVpFCQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVk1FU0FSX0JBU0UJCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19WTUVTQVJfU0laRQkJMHgwMTAwMDAwMAogCiAvKiBDUzk6IFZNRSBTaG9ydCBJL08gQWNjZXNzIFJhbmdlICovCi0jZGVmaW5lIENGR19WTUVTSU9BUl9CQVNFCTB4RkQwMDAwMDAKLSNkZWZpbmUgQ0ZHX1ZNRVNJT0FSX1NJWkUJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1ZNRVNJT0FSX0JBU0UJMHhGRDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1ZNRVNJT0FSX1NJWkUJMHgwMTAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZHMKICAqCi0gKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDRkdfKgorICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ09ORklHX1NZU18qCiAgKiBkZWZpbmVzIGZvciB0aGUgdmFyaW91cyByZWdpc3RlcnMgYWZmZWN0ZWQgYnkgdGhlIEhSQ1cgZS5nLiBjaGFuZ2luZwotICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENGR19TSVVNQ1IuCisgKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ09ORklHX1NZU19TSVVNQ1IuCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19CT09UX1JPTSkKLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCQkoSFJDV19DSVAgfCBIUkNXX0lTQjEwMCB8IEhSQ1dfQk1TIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCQkoSFJDV19DSVAgfCBIUkNXX0lTQjEwMCB8IEhSQ1dfQk1TIHwgXAogCQkJCSBIUkNXX0JQUzAxIHwgSFJDV19DUzEwUEMwMSkKICNlbHNlCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUyB8IEhSQ1dfQ1MxMFBDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJCShIUkNXX0NJUCB8IEhSQ1dfSVNCMTAwIHwgSFJDV19CTVMgfCBIUkNXX0NTMTBQQzAxKQogI2VuZGlmCiAKIC8qIG5vIHNsYXZlcyBzbyBqdXN0IGZpbGwgd2l0aCB6ZXJvcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUyCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMwkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU1CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNwkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEYwMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOCAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKgotICogNjB4IFNEUkFNIGlzIG1hcHBlZCBhdCBDRkdfU0RSQU1fQkFTRS4KKyAqIDYweCBTRFJBTSBpcyBtYXBwZWQgYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9NQVhfU0laRQkweDA4MDAwMDAwCS8qIG1heC4gMTI4IE1CCQkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9NQVhfU0laRQkweDA4MDAwMDAwCS8qIG1heC4gMTI4IE1CCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogI2lmIDAKIC8qIGVudmlyb25tZW50IGlzIGluIEZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2lmZGVmIENPTkZJR19CT09UX1JPTQotIyBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UrMHg3MDAwMCkKKyMgZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSsweDcwMDAwKQogIyBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAwCiAjIGRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAjZW5kaWYKICNlbHNlCiAvKiBlbnZpcm9ubWVudCBpcyBpbiBFRVBST00gKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00JMQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTgJLyogRUVQUk9NIFgyNEMxNgkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDU4CS8qIEVFUFJPTSBYMjRDMTYJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkxCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIiAgICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQk1MTIKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoMjA0OCAtIDUxMikKICNlbmRpZgpAQCAtMzU1LDkgKzM1NSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFICAgICAgMzIgICAgICAvKiBGb3IgTVBDODI2MCBDUFUgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgICAgICAzMiAgICAgIC8qIEZvciBNUEM4MjYwIENQVSAgICAgICAgICAgICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM3MCwzMCArMzcwLDMwIEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUICAgKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUICAgKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxcCiAJCQkgSElEMF9EQ0l8SElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMF9GSU5BTCAgKEhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDIgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMICAoSElEMF9JRkVNfEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIgICAgICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LTUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHR1cm4gb24gQ2hlY2tzdG9wIFJlc2V0IEVuYWJsZQogICovCi0jZGVmaW5lIENGR19STVIgICAgICAgICBSTVJfQ1NSRQorI2RlZmluZSBDT05GSUdfU1lTX1JNUiAgICAgICAgIFJNUl9DU1JFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEJDUiAtIEJ1cyBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC0yNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjZGVmaW5lIEJDUl9BUEQwMQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19CQ1IJCShCQ1JfQVBEMDF8QkNSX0VUTXxCQ1JfTEVUTSkJLyogODI2MCBtb2RlICovCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkoQkNSX0FQRDAxfEJDUl9FVE18QkNSX0xFVE0pCS8qIDgyNjAgbW9kZSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTSVVNQ1IgLSBTSVUgTW9kdWxlIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0lVTUNSICAgICAgKFNJVU1DUl9CQkR8U0lVTUNSX0RQUEMwMHxTSVVNQ1JfQVBQQzEwfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IgICAgICAoU0lVTUNSX0JCRHxTSVVNQ1JfRFBQQzAwfFNJVU1DUl9BUFBDMTB8XAogCQkJIFNJVU1DUl9DUzEwUEMwMXxTSVVNQ1JfQkNUTEMxMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDAzLDEwICs0MDMsMTAgQEAKICAqIFdhdGNoZG9nICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCA2MHggQnVzIE1vbml0b3IgZW5hYmxlCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQfFNZUENSX1NXRSkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUCkKICNlbmRpZiAvKiBDT05GSUdfV0FUQ0hET0cgKi8KIApAQCAtNDE2LDcgKzQxNiw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQyAgICAgKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgICAgICAgICAgICAgICAgIDQtNDIKQEAgLTQyNCwzMyArNDI0LDMzIEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jZGVmaW5lIENGR19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBDb250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVuc3VyZSBERkJSRyBpcyBEaXZpZGUgYnkgMTYKICAqLwotI2RlZmluZSBDRkdfU0NDUiAgICAgICAgU0NDUl9ERkJSRzAxCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUiAgICAgICAgU0NDUl9ERkJSRzAxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAxMy03CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSICAgICAgICAwCiAKLSNkZWZpbmUgQ0ZHX01JTl9BTV9NQVNLCTB4QzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NSU5fQU1fTUFTSwkweEMwMDAwMDAwCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNUFRQUiAtIE1lbW9yeSBSZWZyZXNoIFRpbWVyIFByZXNjYWxlciBSZWdpc3RlciAgICAgICAgICAgICAgMTAtMTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfTVBUUFIgICAgICAgMHgxRjAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIgICAgICAgMHgxRjAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBTUlQgLSBSZWZyZXNoIFRpbWVyIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC0xNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19QU1JUICAgICAgICAweDBmCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVCAgICAgICAgMHgwZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQU1JUIC0gU0RSQU0gTW9kZSBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAtMTAKQEAgLTQ1OSwxMiArNDU5LDEyIEBACiAKIAkvKiBTRFJBTSBpbml0aWFsaXphdGlvbiB2YWx1ZXMgZm9yIDgtY29sdW1uIGNoaXBzCiAJICovCi0jZGVmaW5lIENGR19PUjJfOENPTAkoQ0ZHX01JTl9BTV9NQVNLCQl8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMl84Q09MCShDT05GSUdfU1lTX01JTl9BTV9NQVNLCQl8XAogCQkJIE9SeFNfQlBEXzQJCQl8XAogCQkJIE9SeFNfUk9XU1RfUEJJMF9BOQkJfFwKIAkJCSBPUnhTX05VTVJfMTIpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SXzhDT0wJKFBTRE1SX1NEQU1fQTEzX0lTX0E1CQl8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SXzhDT0wJKFBTRE1SX1NEQU1fQTEzX0lTX0E1CQl8XAogCQkJIFBTRE1SX0JTTUFfQTE0X0ExNgkJfFwKIAkJCSBQU0RNUl9TREExMF9QQkkwX0ExMAkJfFwKIAkJCSBQU0RNUl9SRlJDXzdfQ0xLCQl8XApAQCAtNDc2LDEyICs0NzYsMTIgQEAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOS1jb2x1bW4gY2hpcHMKIAkgKi8KLSNkZWZpbmUgQ0ZHX09SMl85Q09MCShDRkdfTUlOX0FNX01BU0sJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IyXzlDT0wJKENPTkZJR19TWVNfTUlOX0FNX01BU0sJCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E3CQl8XAogCQkJIE9SeFNfTlVNUl8xMykKIAotI2RlZmluZSBDRkdfUFNETVJfOUNPTAkoUFNETVJfU0RBTV9BMTRfSVNfQTUJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfOUNPTAkoUFNETVJfU0RBTV9BMTRfSVNfQTUJCXxcCiAJCQkgUFNETVJfQlNNQV9BMTNfQTE1CQl8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTBfQTkJCXxcCiAJCQkgUFNETVJfUkZSQ183X0NMSwkJfFwKQEAgLTUwMiwxNyArNTAyLDE3IEBACiAgKgogICovCiAKLSNkZWZpbmUgQ0ZHX01SU19PRkZTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUlNfT0ZGUwkweDAwMDAwMDAwCiAKICNpZmRlZiBDT05GSUdfQk9PVF9ST00KIC8qIEJhbmsgMCAtIEJvb3QgUk9NCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0gICgoQ0ZHX0JPT1RST01fQkFTRSAmIEJSeF9CQV9NU0spfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNICAoKENPTkZJR19TWVNfQk9PVFJPTV9CQVNFICYgQlJ4X0JBX01TSyl8XAogCQkJIEJSeF9QU184ICAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNICAoUDJTWl9UT19BTShDRkdfQk9PVFJPTV9TSVpFKSAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19CT09UUk9NX1NJWkUpICAgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV8zX0NMSyAgICAgICAgICAgICAgICAgfFwKQEAgLTUyMCwxMiArNTIwLDEyIEBACiAKIC8qIEJhbmsgMSAtIEZMQVNICiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0gICgoQ0ZHX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNICAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNICAoUDJTWl9UT19BTShDRkdfRkxBU0hfU0laRSkgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19GTEFTSF9TSVpFKSAgICAgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV8zX0NMSyAgICAgICAgICAgICAgICAgfFwKQEAgLTUzNCwxMiArNTM0LDEyIEBACiAjZWxzZSAvKiBDT05GSUdfQk9PVF9ST00gKi8KIC8qIEJhbmsgMCAtIEZMQVNICiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0gICgoQ0ZHX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNICAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNICAoUDJTWl9UT19BTShDRkdfRkxBU0hfU0laRSkgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19GTEFTSF9TSVpFKSAgICAgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV8zX0NMSyAgICAgICAgICAgICAgICAgfFwKQEAgLTU0NywxMiArNTQ3LDEyIEBACiAKIC8qIEJhbmsgMSAtIEJvb3QgUk9NCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0gICgoQ0ZHX0JPT1RST01fQkFTRSAmIEJSeF9CQV9NU0spfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNICAoKENPTkZJR19TWVNfQk9PVFJPTV9CQVNFICYgQlJ4X0JBX01TSyl8XAogCQkJIEJSeF9QU184ICAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNICAoUDJTWl9UT19BTShDRkdfQk9PVFJPTV9TSVpFKSAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19CT09UUk9NX1NJWkUpICAgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV8zX0NMSyAgICAgICAgICAgICAgICAgfFwKQEAgLTU2MywyNSArNTYzLDI1IEBACiAKIC8qIEJhbmsgMiAtIDYweCBidXMgU0RSQU0KICAqLwotI2lmbmRlZiBDRkdfUkFNQk9PVAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTSAgKChDRkdfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19TRFJBTV9QICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCSBDRkdfT1IyXzlDT0wKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCSBDT05GSUdfU1lTX09SMl85Q09MCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SCSBDRkdfUFNETVJfOUNPTAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJIENPTkZJR19TWVNfUFNETVJfOUNPTAorI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAvKiBCYW5rIDMgLSBEdWFsIFBvcnRlZCBTUkFNCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0gICgoQ0ZHX0RQU1JBTV9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNICAoKENPTkZJR19TWVNfRFBTUkFNX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU18xNiAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjNfUFJFTElNICAoUDJTWl9UT19BTShDRkdfRFBTUkFNX1NJWkUpICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19EUFNSQU1fU0laRSkgICAgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV81X0NMSyAgICAgICAgICAgICAgICAgfFwKQEAgLTU4OSw0NyArNTg5LDQ3IEBACiAKIC8qIEJhbmsgNCAtIERpc2tPbkNoaXAKICAqLwotI2RlZmluZSBDRkdfQlI0X1BSRUxJTSAgKChDRkdfRE9DX0JBU0UgJiBCUnhfQkFfTVNLKSAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0gICgoQ09ORklHX1NZU19ET0NfQkFTRSAmIEJSeF9CQV9NU0spICAgIHxcCiAJCQkgQlJ4X1BTXzggICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0gIChQMlNaX1RPX0FNKENGR19ET0NfU0laRSkgICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNICAoUDJTWl9UT19BTShDT05GSUdfU1lTX0RPQ19TSVpFKSAgICAgICB8XAogCQkJIE9SeEdfQUNTX0RJVjIgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfU0NZXzVfQ0xLICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFVfRUhUUl84SURMRSkKIAogLyogQmFuayA1IC0gRkRDMzdDNzggY29udHJvbGxlcgogICovCi0jZGVmaW5lIENGR19CUjVfUFJFTElNICAoKENGR19GREMzN0M3OF9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNICAoKENPTkZJR19TWVNfRkRDMzdDNzhfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzggICAgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfTVNfR1BDTV9QICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjVfUFJFTElNICAoUDJTWl9UT19BTShDRkdfRkRDMzdDNzhfU0laRSkgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNICAoUDJTWl9UT19BTShDT05GSUdfU1lTX0ZEQzM3Qzc4X1NJWkUpICAgIHxcCiAJCQkgT1J4R19BQ1NfRElWMiAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV84X0NMSyAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFVfRUhUUl84SURMRSkKIAogLyogQmFuayA2IC0gQm9hcmQgY29udHJvbCByZWdpc3RlcnMKICAqLwotI2RlZmluZSBDRkdfQlI2X1BSRUxJTSAgKChDRkdfQkNSU19CQVNFICYgQlJ4X0JBX01TSykgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSNl9QUkVMSU0gICgoQ09ORklHX1NZU19CQ1JTX0JBU0UgJiBCUnhfQkFfTVNLKSAgIHxcCiAJCQkgQlJ4X1BTXzggICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SNl9QUkVMSU0gIChQMlNaX1RPX0FNKENGR19CQ1JTX1NJWkUpICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjZfUFJFTElNICAoUDJTWl9UT19BTShDT05GSUdfU1lTX0JDUlNfU0laRSkgICAgICB8XAogCQkJIE9SeEdfQ1NOVCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfU0NZXzVfQ0xLKQogCiAvKiBCYW5rIDcgLSBWTUUgRXh0ZW5kZWQgQWNjZXNzIFJhbmdlCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSN19QUkVMSU0gICgoQ0ZHX1ZNRUVBUl9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjdfUFJFTElNICAoKENPTkZJR19TWVNfVk1FRUFSX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU18zMiAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjdfUFJFTElNICAoUDJTWl9UT19BTShDRkdfVk1FRUFSX1NJWkUpICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1I3X1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19WTUVFQVJfU0laRSkgICAgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV81X0NMSyAgICAgICAgICAgICAgICAgfFwKQEAgLTYzNywxMiArNjM3LDEyIEBACiAKIC8qIEJhbmsgOCAtIFZNRSBTdGFuZGFyZCBBY2Nlc3MgUmFuZ2UKICAqLwotI2RlZmluZSBDRkdfQlI4X1BSRUxJTSAgKChDRkdfVk1FU0FSX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSOF9QUkVMSU0gICgoQ09ORklHX1NZU19WTUVTQVJfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzE2ICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SOF9QUkVMSU0gIChQMlNaX1RPX0FNKENGR19WTUVTQVJfU0laRSkgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjhfUFJFTElNICAoUDJTWl9UT19BTShDT05GSUdfU1lTX1ZNRVNBUl9TSVpFKSAgICB8XAogCQkJIE9SeEdfQ1NOVCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfQUNTX0RJVjEgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfU0NZXzVfQ0xLICAgICAgICAgICAgICAgICB8XApAQCAtNjUwLDEyICs2NTAsMTIgQEAKIAogLyogQmFuayA5IC0gVk1FIFNob3J0IEkvTyBBY2Nlc3MgUmFuZ2UKICAqLwotI2RlZmluZSBDRkdfQlI5X1BSRUxJTSAgKChDRkdfVk1FU0lPQVJfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlI5X1BSRUxJTSAgKChDT05GSUdfU1lTX1ZNRVNJT0FSX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU18xNiAgICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1I5X1BSRUxJTSAgKFAyU1pfVE9fQU0oQ0ZHX1ZNRVNJT0FSX1NJWkUpICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1I5X1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19WTUVTSU9BUl9TSVpFKSAgICB8XAogCQkJIE9SeEdfQ1NOVCAgICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4R19BQ1NfRElWMSAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV81X0NMSyAgICAgICAgICAgICAgICAgICB8XApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0NQVTg3LmggYi9pbmNsdWRlL2NvbmZpZ3MvQ1BVODcuaAppbmRleCBlMDg3NjI0Li40ODkzNzhhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ1BVODcuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQ1BVODcuaApAQCAtODcsMTAgKzg3LDEwIEBACiAgKiAtIFJBTSBmb3IgQkQvQnVmZmVycyBpcyBvbiB0aGUgNjB4IEJ1cyAoc2VlIDI4LTEzKQogICogLSBFbmFibGUgRnVsbCBEdXBsZXggaW4gRlNNUgogICovCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzF8Q01YRkNSX1JGMUNTX01TS3xDTVhGQ1JfVEYxQ1NfTVNLKQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzExfENNWEZDUl9URjFDU19DTEsxMikKLSMgZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMXxDTVhGQ1JfUkYxQ1NfTVNLfENNWEZDUl9URjFDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzExfENNWEZDUl9URjFDU19DTEsxMikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCiAKICNlbGlmIGRlZmluZWQoQ09ORklHX0VUSEVSX09OX0ZDQykgJiYgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAyKQogCkBAIC0xMDAsMTAgKzEwMCwxMCBAQAogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIDYweCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzJ8Q01YRkNSX1JGMkNTX01TS3xDTVhGQ1JfVEYyQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQogCiAjZW5kaWYgLyogQ09ORklHX0VUSEVSX09OX0ZDQywgQ09ORklHX0VUSEVSX0lOREVYICovCiAKQEAgLTEyOSw4ICsxMjksOCBAQAogICovCiAjZGVmaW5lIENPTkZJR19TT0ZUX0kyQwkJCS8qIFNvZnR3YXJlIEkyQyBzdXBwb3J0IGVuYWJsZWQgKi8KIAotIyBkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNTAwMDAKLSMgZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUKIC8qCiAgKiBTb2Z0d2FyZSAoYml0LWJhbmcpIEkyQyBkcml2ZXIgY29uZmlndXJhdGlvbgogICovCkBAIC0xNDUsNyArMTQ1LDcgQEAKICNkZWZpbmUgSTJDX0RFTEFZCXVkZWxheSg1KQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAKICNkZWZpbmUgQ09ORklHX1JUQ19QQ0Y4NTYzCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg1MQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDUxCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTUzLDE3ICsxNTMsMTcgQEAKICAqIERpc2stT24tQ2hpcCBjb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCSovCiAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU1VQUE9SVF8yMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucwogICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtMTk2LDI3ICsxOTYsMjcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUyAweEZGRjAwMTAwCS8qICJiYWQiIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAweEZGRjAwMTAwCS8qICJiYWQiIGFkZHJlc3MJCSovCiAKICNkZWZpbmUgQ09ORklHX0xPT1BXCiAKQEAgLTIyNSwxMzUgKzIyNSwxMzUgQEAKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwogCi0jZGVmaW5lIENGR19CT09UUk9NX0JBU0UJMHhGRjgwMDAwMAotI2RlZmluZSBDRkdfQk9PVFJPTV9TSVpFCTB4MDAwODAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUk9NX0JBU0UJMHhGRjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RST01fU0laRQkweDAwMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMzUJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTM1CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogT3RoZXIgYXJlYXMgdG8gYmUgbWFwcGVkCiAgKi8KIAogLyogQ1MzOiBEdWFsIHBvcnRlZCBTUkFNICovCi0jZGVmaW5lIENGR19EUFNSQU1fQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfRFBTUkFNX1NJWkUJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUFNSQU1fQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RQU1JBTV9TSVpFCQkweDAwMTAwMDAwCiAKIC8qIENTNDogRGlza09uQ2hpcCAqLwotI2RlZmluZSBDRkdfRE9DX0JBU0UJCTB4RjQwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TSVpFCQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX0JBU0UJCTB4RjQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU0laRQkJMHgwMDEwMDAwMAogCiAvKiBDUzU6IEZEQzM3Qzc4IGNvbnRyb2xsZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZEQzM3Qzc4X0JBU0UJMHhGMTAwMDAwMAotI2RlZmluZSBDRkdfRkRDMzdDNzhfU0laRQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkRDMzdDNzhfQkFTRQkweEYxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkRDMzdDNzhfU0laRQkweDAwMTAwMDAwCiAKIC8qIENTNjogQm9hcmQgY29uZmlndXJhdGlvbiByZWdpc3RlcnMgKi8KLSNkZWZpbmUgQ0ZHX0JDUlNfQkFTRQkJMHhGMjAwMDAwMAotI2RlZmluZSBDRkdfQkNSU19TSVpFCQkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkNSU19CQVNFCQkweEYyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkNSU19TSVpFCQkweDAwMDEwMDAwCiAKIC8qIENTNzogVk1FIEV4dGVuZGVkIEFjY2VzcyBSYW5nZSAqLwotI2RlZmluZSBDRkdfVk1FRUFSX0JBU0UJCTB4NjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1ZNRUVBUl9TSVpFCQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVk1FRUFSX0JBU0UJCTB4NjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19WTUVFQVJfU0laRQkJMHgwMTAwMDAwMAogCiAvKiBDUzg6IFZNRSBTdGFuZGFyZCBBY2Nlc3MgUmFuZ2UgKi8KLSNkZWZpbmUgQ0ZHX1ZNRVNBUl9CQVNFCQkweEZFMDAwMDAwCi0jZGVmaW5lIENGR19WTUVTQVJfU0laRQkJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1ZNRVNBUl9CQVNFCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVk1FU0FSX1NJWkUJCTB4MDEwMDAwMDAKIAogLyogQ1M5OiBWTUUgU2hvcnQgSS9PIEFjY2VzcyBSYW5nZSAqLwotI2RlZmluZSBDRkdfVk1FU0lPQVJfQkFTRQkweEZEMDAwMDAwCi0jZGVmaW5lIENGR19WTUVTSU9BUl9TSVpFCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19WTUVTSU9BUl9CQVNFCTB4RkQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19WTUVTSU9BUl9TSVpFCTB4MDEwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZCBSZXNldCBDb25maWd1cmF0aW9uIFdvcmRzCiAgKgotICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ0ZHXyoKKyAqIGlmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENPTkZJR19TWVNfKgogICogZGVmaW5lcyBmb3IgdGhlIHZhcmlvdXMgcmVnaXN0ZXJzIGFmZmVjdGVkIGJ5IHRoZSBIUkNXIGUuZy4gY2hhbmdpbmcKLSAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDRkdfU0lVTUNSLgorICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENPTkZJR19TWVNfU0lVTUNSLgogICovCiAjaWYgZGVmaW5lZChDT05GSUdfQk9PVF9ST00pCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUyB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUyB8IFwKIAkJCQkgSFJDV19CUFMwMSB8IEhSQ1dfQ1MxMFBDMDEpCiAjZWxzZQotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJCShIUkNXX0NJUCB8IEhSQ1dfSVNCMTAwIHwgSFJDV19CTVMgfCBIUkNXX0NTMTBQQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCQkoSFJDV19DSVAgfCBIUkNXX0lTQjEwMCB8IEhSQ1dfQk1TIHwgSFJDV19DUzEwUEMwMSkKICNlbmRpZgogCiAvKiBubyBzbGF2ZXMgc28ganVzdCBmaWxsIHdpdGggemVyb3MgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqCi0gKiA2MHggU0RSQU0gaXMgbWFwcGVkIGF0IENGR19TRFJBTV9CQVNFLgorICogNjB4IFNEUkFNIGlzIG1hcHBlZCBhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UuCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX01BWF9TSVpFCTB4MDgwMDAwMDAJLyogbWF4LiAxMjggTUIJCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX01BWF9TSVpFCTB4MDgwMDAwMDAJLyogbWF4LiAxMjggTUIJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyBkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAjaWZkZWYJQ09ORklHX1BDSQogI2RlZmluZSBDT05GSUdfUENJX1BOUAogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAkJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CQkvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAJKi8KICNlbmRpZgogCiAjaWYgMAogLyogZW52aXJvbm1lbnQgaXMgaW4gRmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjaWZkZWYgQ09ORklHX0JPT1RfUk9NCi0jIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSsweDcwMDAwKQorIyBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFKzB4NzAwMDApCiAjIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMDAKICMgZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAKICNlbmRpZgogI2Vsc2UKIC8qIGVudmlyb25tZW50IGlzIGluIEVFUFJPTSAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0VFUFJPTQkxCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1OAkvKiBFRVBST00gWDI0QzE2CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTgJLyogRUVQUk9NIFgyNEMxNgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTUxMgogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCSgyMDQ4IC0gNTEyKQogI2VuZGlmCkBAIC0zNzAsOSArMzcwLDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM4NSwzMCArMzg1LDMwIEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCShISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfFwKIAkJCSBISUQwX0RDSXxISUQwX0lGRU18SElEMF9BQkUpCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCShISUQwX0lGRU18SElEMF9BQkUpCi0jZGVmaW5lIENGR19ISUQyCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCShISUQwX0lGRU18SElEMF9BQkUpCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNUiAtIFJlc2V0IE1vZGUgUmVnaXN0ZXIJCQkJCSA1LTUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHR1cm4gb24gQ2hlY2tzdG9wIFJlc2V0IEVuYWJsZQogICovCi0jZGVmaW5lIENGR19STVIJCVJNUl9DU1JFCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQlSTVJfQ1NSRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQ1IgLSBCdXMgQ29uZmlndXJhdGlvbgkJCQkJIDQtMjUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogI2RlZmluZSBCQ1JfQVBEMDEJMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfQkNSCQkoQkNSX0FQRDAxfEJDUl9FVE18QkNSX0xFVE0pCS8qIDgyNjAgbW9kZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJKEJDUl9BUEQwMXxCQ1JfRVRNfEJDUl9MRVRNKQkvKiA4MjYwIG1vZGUgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0lVTUNSIC0gU0lVIE1vZHVsZSBDb25maWd1cmF0aW9uCQkJCSA0LTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0JCRHxTSVVNQ1JfRFBQQzAwfFNJVU1DUl9BUFBDMTB8XAorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0JCRHxTSVVNQ1JfRFBQQzAwfFNJVU1DUl9BUFBDMTB8XAogCQkJIFNJVU1DUl9DUzEwUEMwMXxTSVVNQ1JfQkNUTEMxMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDE4LDEwICs0MTgsMTAgQEAKICAqIFdhdGNoZG9nICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCA2MHggQnVzIE1vbml0b3IgZW5hYmxlCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQfFNZUENSX1NXRSkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUCkKICNlbmRpZiAvKiBDT05GSUdfV0FUQ0hET0cgKi8KIApAQCAtNDMxLDcgKzQzMSw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkgNC00MgpAQCAtNDM5LDIyICs0MzksMjIgQEAKICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssIGFuZCBlbmFibGUKICAqIFBlcmlvZGljIHRpbWVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIENvbnRyb2wJCQkJCSA5LTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVuc3VyZSBERkJSRyBpcyBEaXZpZGUgYnkgMTYKICAqLwotI2RlZmluZSBDRkdfU0NDUglTQ0NSX0RGQlJHMDEKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCVNDQ1JfREZCUkcwMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSQ0NSIC0gUklTQyBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24JCQkJMTMtNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SQ0NSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSCTAKIAotI2RlZmluZSBDRkdfTUlOX0FNX01BU0sgMHhDMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JTl9BTV9NQVNLIDB4QzAwMDAwMDAKIAogLyoKICAqIHdlIHVzZSB0aGUgc2FtZSB2YWx1ZXMgZm9yIDMyIE1CLCAxMjggTUIgYW5kIDI1NiBNQiBTRFJBTQpAQCAtNDY1LDEzICs0NjUsMTMgQEAKICAqIE1QVFBSIC0gTWVtb3J5IFJlZnJlc2ggVGltZXIgUHJlc2NhbGVyIFJlZ2lzdGVyCQkxMC0xOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19NUFRQUgkweDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkweDIwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUFNSVCAtIFJlZnJlc2ggVGltZXIgUmVnaXN0ZXIJCQkJMTAtMTYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUFNSVAkweDE2CisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkweDE2CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBTUlQgLSBTRFJBTSBNb2RlIFJlZ2lzdGVyCQkJCQkxMC0xMApAQCAtNDgwLDEyICs0ODAsMTIgQEAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOC1jb2x1bW4gY2hpcHMKIAkgKi8KLSNkZWZpbmUgQ0ZHX09SMl84Q09MCShDRkdfTUlOX0FNX01BU0sJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IyXzhDT0wJKENPTkZJR19TWVNfTUlOX0FNX01BU0sJCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E5CQl8XAogCQkJIE9SeFNfTlVNUl8xMikKIAotI2RlZmluZSBDRkdfUFNETVJfOENPTAkoUFNETVJfU0RBTV9BMTNfSVNfQTUJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfOENPTAkoUFNETVJfU0RBTV9BMTNfSVNfQTUJCXxcCiAJCQkgUFNETVJfQlNNQV9BMTRfQTE2CQl8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTBfQTEwCQl8XAogCQkJIFBTRE1SX1JGUkNfN19DTEsJCXxcCkBAIC00OTcsMTIgKzQ5NywxMiBAQAogCiAJLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzIGZvciA5LWNvbHVtbiBjaGlwcwogCSAqLwotI2RlZmluZSBDRkdfT1IyXzlDT0wJKENGR19NSU5fQU1fTUFTSwkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfOUNPTAkoQ09ORklHX1NZU19NSU5fQU1fTUFTSwkJfFwKIAkJCSBPUnhTX0JQRF80CQkJfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTBfQTcJCXxcCiAJCQkgT1J4U19OVU1SXzEzKQogCi0jZGVmaW5lIENGR19QU0RNUl85Q09MCShQU0RNUl9TREFNX0ExNF9JU19BNQkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUl85Q09MCShQU0RNUl9TREFNX0ExNF9JU19BNQkJfFwKIAkJCSBQU0RNUl9CU01BX0ExM19BMTUJCXxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMF9BOQkJfFwKIAkJCSBQU0RNUl9SRlJDXzdfQ0xLCQl8XApAQCAtNTE0LDEyICs1MTQsMTIgQEAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgMTAtY29sdW1uIGNoaXBzCiAJICovCi0jZGVmaW5lIENGR19PUjJfMTBDT0wJKENGR19NSU5fQU1fTUFTSwkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfMTBDT0wJKENPTkZJR19TWVNfTUlOX0FNX01BU0sJCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkxX0E0CQl8XAogCQkJIE9SeFNfTlVNUl8xMykKIAotI2RlZmluZSBDRkdfUFNETVJfMTBDT0wJKFBTRE1SX1BCSQkJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfMTBDT0wJKFBTRE1SX1BCSQkJCXxcCiAJCQkgUFNETVJfU0RBTV9BMTdfSVNfQTUJCXxcCiAJCQkgUFNETVJfQlNNQV9BMTNfQTE1CQl8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTFfQTYJCXxcCkBAIC01NDEsMTcgKzU0MSwxNyBAQAogICoKICAqLwogCi0jZGVmaW5lIENGR19NUlNfT0ZGUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTVJTX09GRlMJMHgwMDAwMDAwMAogCiAjaWZkZWYgQ09ORklHX0JPT1RfUk9NCiAvKiBCYW5rIDAgLSBCb290IFJPTQogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoQ0ZHX0JPT1RST01fQkFTRSAmIEJSeF9CQV9NU0spfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoQ09ORklHX1NZU19CT09UUk9NX0JBU0UgJiBCUnhfQkFfTVNLKXxcCiAJCQkgQlJ4X1BTXzgJCQl8XAogCQkJIEJSeF9NU19HUENNX1AJCQl8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShQMlNaX1RPX0FNKENGR19CT09UUk9NX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoUDJTWl9UT19BTShDT05GSUdfU1lTX0JPT1RST01fU0laRSkJfFwKIAkJCSBPUnhHX0NTTlQJCQl8XAogCQkJIE9SeEdfQUNTX0RJVjEJCQl8XAogCQkJIE9SeEdfU0NZXzVfQ0xLCQkJfFwKQEAgLTU1OSwxMiArNTU5LDEyIEBACiAKIC8qIEJhbmsgMSAtIEZMQVNICiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChDRkdfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkoUDJTWl9UT19BTShDRkdfRkxBU0hfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCShQMlNaX1RPX0FNKENPTkZJR19TWVNfRkxBU0hfU0laRSkJfFwKIAkJCSBPUnhHX0NTTlQJCQl8XAogCQkJIE9SeEdfQUNTX0RJVjEJCQl8XAogCQkJIE9SeEdfU0NZXzVfQ0xLCQkJfFwKQEAgLTU3MywxMiArNTczLDEyIEBACiAjZWxzZSAvKiBDT05GSUdfQk9PVF9ST00gKi8KIC8qIEJhbmsgMCAtIEZMQVNICiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChDRkdfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoUDJTWl9UT19BTShDRkdfRkxBU0hfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShQMlNaX1RPX0FNKENPTkZJR19TWVNfRkxBU0hfU0laRSkJfFwKIAkJCSBPUnhHX0NTTlQJCQl8XAogCQkJIE9SeEdfQUNTX0RJVjEJCQl8XAogCQkJIE9SeEdfU0NZXzVfQ0xLCQkJfFwKQEAgLTU4NiwxMiArNTg2LDEyIEBACiAKIC8qIEJhbmsgMSAtIEJvb3QgUk9NCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChDRkdfQk9PVFJPTV9CQVNFICYgQlJ4X0JBX01TSyl8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChDT05GSUdfU1lTX0JPT1RST01fQkFTRSAmIEJSeF9CQV9NU0spfFwKIAkJCSBCUnhfUFNfOAkJCXxcCiAJCQkgQlJ4X01TX0dQQ01fUAkJCXxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JKFAyU1pfVE9fQU0oQ0ZHX0JPT1RST01fU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCShQMlNaX1RPX0FNKENPTkZJR19TWVNfQk9PVFJPTV9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfNV9DTEsJCQl8XApAQCAtNjAyLDI1ICs2MDIsMjUgQEAKIAogLyogQmFuayAyIC0gNjB4IGJ1cyBTRFJBTQogICovCi0jaWZuZGVmIENGR19SQU1CT09UCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoQ0ZHX1NEUkFNX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykJfFwKIAkJCSBCUnhfUFNfNjQJCQl8XAogCQkJIEJSeF9NU19TRFJBTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkgQ0ZHX09SMl84Q09MCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkgQ09ORklHX1NZU19PUjJfOENPTAogCi0jZGVmaW5lIENGR19QU0RNUgkgQ0ZHX1BTRE1SXzhDT0wKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCSBDT05GSUdfU1lTX1BTRE1SXzhDT0wKKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogLyogQmFuayAzIC0gRHVhbCBQb3J0ZWQgU1JBTQogICovCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoQ0ZHX0RQU1JBTV9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoQ09ORklHX1NZU19EUFNSQU1fQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzE2CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkoUDJTWl9UT19BTShDRkdfRFBTUkFNX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkoUDJTWl9UT19BTShDT05GSUdfU1lTX0RQU1JBTV9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfN19DTEsJCQl8XApAQCAtNjI4LDEyICs2MjgsMTIgQEAKIAogLyogQmFuayA0IC0gRGlza09uQ2hpcAogICovCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCSgoQ0ZHX0RPQ19CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCSgoQ09ORklHX1NZU19ET0NfQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQkgQlJ4X1BTXzgJCQl8XAogCQkJIEJSeF9NU19HUENNX1AJCQl8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCShQMlNaX1RPX0FNKENGR19ET0NfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCShQMlNaX1RPX0FNKENPTkZJR19TWVNfRE9DX1NJWkUpCXxcCiAJCQkgT1J4R19DU05UCQkJfFwKIAkJCSBPUnhHX0FDU19ESVYyCQkJfFwKIAkJCSBPUnhHX1NDWV85X0NMSwkJCXxcCkBAIC02NDEsMzUgKzY0MSwzNSBAQAogCiAvKiBCYW5rIDUgLSBGREMzN0M3OCBjb250cm9sbGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JKChDRkdfRkRDMzdDNzhfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkoKENPTkZJR19TWVNfRkRDMzdDNzhfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzgJCQkgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUAkJCSAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkoUDJTWl9UT19BTShDRkdfRkRDMzdDNzhfU0laRSkJICB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JKFAyU1pfVE9fQU0oQ09ORklHX1NZU19GREMzN0M3OF9TSVpFKQkgIHxcCiAJCQkgT1J4R19BQ1NfRElWMgkJCSAgfFwKIAkJCSBPUnhHX1NDWV8xMF9DTEsJCSAgfFwKIAkJCSBPUnhVX0VIVFJfOElETEUpCiAKIC8qIEJhbmsgNiAtIEJvYXJkIGNvbnRyb2wgcmVnaXN0ZXJzCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JKChDRkdfQkNSU19CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjZfUFJFTElNCSgoQ09ORklHX1NZU19CQ1JTX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAogCQkJIEJSeF9QU184CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1I2X1BSRUxJTQkoUDJTWl9UT19BTShDRkdfQkNSU19TSVpFKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX09SNl9QUkVMSU0JKFAyU1pfVE9fQU0oQ09ORklHX1NZU19CQ1JTX1NJWkUpCXxcCiAJCQkgT1J4R19DU05UCQkJfFwKIAkJCSBPUnhHX1NDWV83X0NMSykKIAogLyogQmFuayA3IC0gVk1FIEV4dGVuZGVkIEFjY2VzcyBSYW5nZQogICovCi0jZGVmaW5lIENGR19CUjdfUFJFTElNCSgoQ0ZHX1ZNRUVBUl9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjdfUFJFTElNCSgoQ09ORklHX1NZU19WTUVFQVJfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzMyCQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1I3X1BSRUxJTQkoUDJTWl9UT19BTShDRkdfVk1FRUFSX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1I3X1BSRUxJTQkoUDJTWl9UT19BTShDT05GSUdfU1lTX1ZNRUVBUl9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfN19DTEsJCQl8XApAQCAtNjc3LDEyICs2NzcsMTIgQEAKIAogLyogQmFuayA4IC0gVk1FIFN0YW5kYXJkIEFjY2VzcyBSYW5nZQogICovCi0jZGVmaW5lIENGR19CUjhfUFJFTElNCSgoQ0ZHX1ZNRVNBUl9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjhfUFJFTElNCSgoQ09ORklHX1NZU19WTUVTQVJfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzE2CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1I4X1BSRUxJTQkoUDJTWl9UT19BTShDRkdfVk1FU0FSX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1I4X1BSRUxJTQkoUDJTWl9UT19BTShDT05GSUdfU1lTX1ZNRVNBUl9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfN19DTEsJCQl8XApAQCAtNjkwLDEyICs2OTAsMTIgQEAKIAogLyogQmFuayA5IC0gVk1FIFNob3J0IEkvTyBBY2Nlc3MgUmFuZ2UKICAqLwotI2RlZmluZSBDRkdfQlI5X1BSRUxJTQkoKENGR19WTUVTSU9BUl9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjlfUFJFTElNCSgoQ09ORklHX1NZU19WTUVTSU9BUl9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfMTYJCQkgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUAkJCSAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1I5X1BSRUxJTQkoUDJTWl9UT19BTShDRkdfVk1FU0lPQVJfU0laRSkJICB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SOV9QUkVMSU0JKFAyU1pfVE9fQU0oQ09ORklHX1NZU19WTUVTSU9BUl9TSVpFKQkgIHxcCiAJCQkgT1J4R19DU05UCQkJICB8XAogCQkJIE9SeEdfQUNTX0RJVjEJCQkgIHxcCiAJCQkgT1J4R19TQ1lfN19DTEsJCQkgIHxcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ1JBWUwxLmggYi9pbmNsdWRlL2NvbmZpZ3MvQ1JBWUwxLmgKaW5kZXggNDYzOWQzMC4uMTEyMmQwMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0NSQVlMMS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DUkFZTDEuaApAQCAtNTMsNyArNTMsNyBAQAogCiAvKiBCb290Y21kIGlzIG92ZXJyaWRkZW4gYnkgdGhlIGJvb3RzY3JpcHQgaW4gYm9hcmQvY3JheS9MMQogICovCi0jZGVmaW5lCUNGR19BVVRPTE9BRAkJIm5vIgorI2RlZmluZQlDT05GSUdfU1lTX0FVVE9MT0FECQkibm8iCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiZGhjcCIKIAogLyoKQEAgLTYzLDE1ICs2MywxNSBAQAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQyAgICAgICAgIDEJCS8qIGhhcmR3YXJlIHN1cHBvcnQgZm9yIGkyYyAqLwogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzAJCTEKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJICAgIDQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJICAgIDB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUiAgICAgMHg1NwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkgICAgNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJICAgIDB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgICAgIDB4NTcKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKICNkZWZpbmUgQ09ORklHX0lERU5UX1NUUklORyAgICAgIkNyYXkgTDEiCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFICAgICAxCi0jZGVmaW5lCUNGR19IWgkJICAgICAgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCQkxCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJCSI+ICIKKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJICAgICAgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkJIj4gIgogI2RlZmluZSBDT05GSUdfQVVUT1NDUklQVAkJMQogCiAKQEAgLTEyMyw1MCArMTIzLDUwIEBACiAgKiBmcm9tIHRoZSBEQ1IgYW55d2F5LCBzbyBpdHMga2luZGEtdGllZCB0byB0aGUgYWJvdmUgcmVmLiBjbG9jayB3aGljaCBpbiB0dXJuCiAgKiBkcml2ZXMgdGhlIHN5c3RlbSBjbG9jay4KICAqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVEICAgICAgIDQwMzIyNQotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQgICAgICAgNDAzMjI1CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKICAgICB7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwfQogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCQkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJCQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkJCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJCQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCQkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KIAogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIHdoZXJlIHRvIGxvYWQgd2hhdCB3ZSBnZXQgZnJvbSBURlRQICovCi0jZGVmaW5lIENGR19URlRQX0xPQURBRERSCUNGR19MT0FEX0FERFIKLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCi0jZGVmaW5lIENGR19EUkFNX1RFU1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIHdoZXJlIHRvIGxvYWQgd2hhdCB3ZSBnZXQgZnJvbSBURlRQICovCisjZGVmaW5lIENPTkZJR19TWVNfVEZUUF9MT0FEQUREUglDT05GSUdfU1lTX0xPQURfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUCQkxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGQzAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZDMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCiAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCSAxCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSA2NAkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUIDEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUIDUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCSAxCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkgNjQJCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQgMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUIDUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qIEJFRyBFTlZJUk9OTkVNRU5UIEZMQVNIOiBuZWVkcyB0byBiZSBhIHdob2xlIEZsYXNoU2VjdG9yICAqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgzYzgwMDAKQEAgLTE3NywxOSArMTc3LDE5IEBACiAvKiBNZW1vcnkgdGVzdHM6IFUtQk9PVCByZWxvY2F0ZXMgaXRzZWxmIHRvIHRoZSB0b3Agb2YgUmFtLCBzbyBpdHMgYXQKICAqIDMybWVnLSgxMjhrK3NvbWVfbWFsbG9jX3NwYWNlK2NvcHktb2YtRU5WIHNlY3RvcikuLgogICovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkzMgkJLyogbWVncyBvZiByYW0gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgyMDAwICAvKiBtZW10ZXN0IHdvcmtzIGZyb20gdGhlIGVuZCBvZiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTMyCQkvKiBtZWdzIG9mIHJhbSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgyMDAwICAvKiBtZW10ZXN0IHdvcmtzIGZyb20gdGhlIGVuZCBvZiAqLwogCQkJCQkJCQkJLyogdGhlIGV4Y2VwdGlvbiB2ZWN0b3IgdGFibGUgKi8KIAkJCQkJCQkJCS8qIHRvIHRoZSBlbmQgb2YgdGhlIERSQU0gICovCiAJCQkJCQkJCQkvKiBsZXNzIG1vbml0b3IgYW5kIG1hbGxvYyBhcmVhICovCi0jZGVmaW5lIENGR19TVEFDS19VU0FHRQkJMHgxMDAwMCAvKiBSZXNlcnZlIDY0ayBmb3IgdGhlIHN0YWNrIHVzYWdlICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiAxMjhrIGZvciBtYWxsb2Mgc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX01FTV9FTkRfVVNBR0UJKCBDRkdfTU9OSVRPUl9MRU4gXAotCQkJCSsgQ0ZHX01BTExPQ19MRU4gXAorI2RlZmluZSBDT05GSUdfU1lTX1NUQUNLX1VTQUdFCQkweDEwMDAwIC8qIFJlc2VydmUgNjRrIGZvciB0aGUgc3RhY2sgdXNhZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiAxMjhrIGZvciBtYWxsb2Mgc3BhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1fRU5EX1VTQUdFCSggQ09ORklHX1NZU19NT05JVE9SX0xFTiBcCisJCQkJKyBDT05GSUdfU1lTX01BTExPQ19MRU4gXAogCQkJCSsgQ09ORklHX0VOVl9TRUNUX1NJWkUgXAotCQkJCSsgQ0ZHX1NUQUNLX1VTQUdFICkKKwkJCQkrIENPTkZJR19TWVNfU1RBQ0tfVVNBR0UgKQogCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQgLSBDRkdfTUVNX0VORF9VU0FHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0IC0gQ09ORklHX1NZU19NRU1fRU5EX1VTQUdFKQogLyogRU5EIEVOVklST05ORU1FTlQgRkxBU0ggKi8KIAogLyoKQEAgLTE5OCw3ICsxOTgsNyBAQAogICogQlIwLzEgYW5kIE9SMC8xIChGTEFTSCkKICAqLwogCi0jZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSovCisjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogRkxBU0ggYmFuayAjMAkqLwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIwNiwyMyArMjA2LDIzIEBACiAgKi8KICNpZiAxCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00JMQotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDI1NiAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICAgICAgQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDI1NiAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAjZWxzZQotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUgkvKiBpbnNpZGUgb2YgT24gQ2hpcCBTUkFNICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUJLyogRW5kIG9mIE9uIENoaXAgU1JBTQkgICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkvKiBpbnNpZGUgb2YgT24gQ2hpcCBTUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkvKiBFbmQgb2YgT24gQ2hpcCBTUkFNCSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ1U4MjQuaCBiL2luY2x1ZGUvY29uZmlncy9DVTgyNC5oCmluZGV4IGE0MGRmNzYuLjRhM2YyYmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9DVTgyNC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DVTgyNC5oCkBAIC00OCw3ICs0OCw3IEBACiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QJImVjaG87ZWNobyBUeXBlIFxcXCJydW4gZmxhc2hfbmZzXFxcIiB0byBtb3VudCByb290IGZpbGVzeXN0ZW0gb3ZlciBORlM7ZWNobyIKIApAQCAtODMsNTQgKzgzLDU0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KIAogI2lmIDEKLSNkZWZpbmUJQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCiAjZW5kaWYKLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogLyogUHJpbnQgQnVmZmVyIFNpemUKICAqLwotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKIAotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MDAxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MDAxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCSAgICAweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgIDB4RkYwMDAwMDAKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAogCi0jZGVmaW5lIENGR19FVU1CX0FERFIJICAgIDB4RkNFMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVU1CX0FERFIJICAgIDB4RkNFMDAwMDAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JICAgICgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSAgICAoMTI4IDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkgICAgKDI1NiA8PCAxMCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSAgICAoMTI4IDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgIDB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECSAgICAweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCAgIDB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkgICAgMHgwMjAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLwogCiAJLyogTWF4aW11bSBhbW91bnQgb2YgUkFNLgogCSAqLwotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFICAgIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgICAgMHgxMDAwMDAwMAogCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCi0jdW5kZWYgQ0ZHX1JBTUJPT1QKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyN1bmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jZGVmaW5lIENGR19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKIApAQCAtMTQwLDI0ICsxNDAsMjQgQEAKIAogCS8qIFNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YQogCSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgIDEyOAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgICAweDEwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQk0CisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQk0CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkoMTQ3NDU2MDAgLyAyKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkoMTQ3NDU2MDAgLyAyKQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJMHhGRTgwMDA4MAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCTB4RkU4MDAwQzAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJMHhGRTgwMDA4MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkweEZFODAwMEMwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTY3LDM1ICsxNjcsMzUgQEAKICAqLwogCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEgIDMzMDAwMDAwCi0jZGVmaW5lIENGR19IWgkJICAgICAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCSAgICAgMTAwMAogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjEuCiAJICovCi0jZGVmaW5lIENGR19ST01OQUwJICAgIDAKLSNkZWZpbmUgQ0ZHX1JPTUZBTAkgICAgNworI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTAkgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JPTUZBTAkgICAgNwogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjIuCiAJICovCi0jZGVmaW5lIENGR19SRUZJTlQJICAgIDQzMAkgICAgLyogUmVmcmVzaCBpbnRlcnZhbAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGSU5UCSAgICA0MzAJICAgIC8qIFJlZnJlc2ggaW50ZXJ2YWwJCQkqLwogCiAJLyogQnVyc3QgVG8gUHJlY2hhcmdlLiBCaXRzIG9mIHRoaXMgdmFsdWUgZ28gdG8gTUNDUjMgYW5kIE1DQ1I0LgogCSAqLwotI2RlZmluZSBDRkdfQlNUT1BSRQkgICAgMTkyCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRQkgICAgMTkyCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMy4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQwkgICAgMgkgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfUkRMQVQJICAgIDMJICAgIC8qIERhdGEgbGF0YW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwkgICAgMgkgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX1JETEFUCSAgICAzCSAgICAvKiBEYXRhIGxhdGFuY3kgZnJvbSByZWFkIGNvbW1hbmQJKi8KIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1I0LgogCSAqLwotI2RlZmluZSBDRkdfUFJFVE9BQ1QJICAgIDIJICAgIC8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUVE9QUkUJICAgIDUJICAgIC8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfU0RNT0RFX0NBU19MQVQgIDIJICAgIC8qIFNETU9ERSBDQVMgbGF0YW5jeQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9XUkFQCSAgICAwCSAgICAvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9CVVJTVExFTiAyCSAgICAvKiBTRE1PREUgQnVyc3QgbGVuZ3RoCQkqLwotI2RlZmluZSBDRkdfQUNUT1JXCSAgICAyCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQorI2RlZmluZSBDT05GSUdfU1lTX1BSRVRPQUNUCSAgICAyCSAgICAvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkgICAgNQkgICAgLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQgIDIJICAgIC8qIFNETU9ERSBDQVMgbGF0YW5jeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkgICAgMAkgICAgLyogU0RNT0RFIHdyYXAgdHlwZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0JVUlNUTEVOIDIJICAgIC8qIFNETU9ERSBCdXJzdCBsZW5ndGgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXCSAgICAyCisjZGVmaW5lIENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDEKIAogLyogTWVtb3J5IGJhbmsgc2V0dGluZ3MuCiAgKiBPbmx5IGJpdHMgMjAtMjkgYXJlIGFjdHVhbGx5IHVzZWQgZnJvbSB0aGVzZSB2YWxlcyB0byBzZXQgdGhlCkBAIC0yMDQsNjkgKzIwNCw2OSBAQAogICogYWRkcmVzcy4gUmVmZXIgdG8gdGhlIE1QQzgyNDAgYm9vay4KICAqLwogCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVAkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5ECSAgICAoQ0ZHX01BWF9SQU1fU0laRSAtIDEpCi0jZGVmaW5lIENGR19CQU5LMF9FTkFCTEUgICAgMQotI2RlZmluZSBDRkdfQkFOSzFfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksxX0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzFfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTksyX1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksyX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LM19TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzNfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LM19FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzRfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzRfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks1X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks1X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNl9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNl9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzdfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzdfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9TVEFSVAkgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VORAkgICAgKENPTkZJR19TWVNfTUFYX1JBTV9TSVpFIC0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkFCTEUgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5BQkxFICAgIDAKIAotI2RlZmluZSBDRkdfT0RDUgkgICAgMHhmZgorI2RlZmluZSBDT05GSUdfU1lTX09EQ1IJICAgIDB4ZmYKIAotI2RlZmluZSBDRkdfSUJBVDBMICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUgIChDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDFMICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVSAgKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwgICgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVSAgKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDNMICAoMHhGQzAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQzVSAgKDB4RkMwMDAwMDAgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTCAgKDB4RkMwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVICAoMHhGQzAwMDAwMCB8IEJBVFVfQkxfNjRNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAgQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVICBDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMICBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgIENGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVICBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMICBDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSAgQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAgQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgIENPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMICBDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSAgQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMzkJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkzOQkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgaW4gb25lIGJhbmsJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIAkvKiBXYXJpbmluZzogZW52aXJvbm1lbnQgaXMgbm90IEVNQkVEREVEIGluIHRoZSBVLUJvb3QgY29kZS4KIAkgKiBJdCdzIHN0b3JlZCBpbiBmbGFzaCBzZXBhcmF0ZWx5LgpAQCAtMjg1LDkgKzI4NSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyoKQEAgLTMxMCwxMSArMzEwLDExIEBACiAjZGVmaW5lIENPTkZJR19UVUxJUAogI2RlZmluZSBDT05GSUdfVFVMSVBfVVNFX0lPCiAKLSNkZWZpbmUgQ0ZHX0VUSF9ERVZfRk4JICAgICAweDc4MDAKLSNkZWZpbmUgQ0ZHX0VUSF9JT0JBU0UJICAgICAweDAwMTA0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVRIX0RFVl9GTgkgICAgIDB4NzgwMAorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9JT0JBU0UJICAgICAweDAwMTA0MDAwCiAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAgICAgICAgICAgICAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogI2RlZmluZSBQQ0lfRU5FVDBfSU9BRERSCTB4MDAxMDQwMDAKICNkZWZpbmUgUENJX0VORVQwX01FTUFERFIJMHg4MDAwMDAwMAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9EQVNBX1NJTS5oIGIvaW5jbHVkZS9jb25maWdzL0RBU0FfU0lNLmgKaW5kZXggM2RkZjFiZi4uNjE3MDRkMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0RBU0FfU0lNLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0RBU0FfU0lNLmgKQEAgLTUwLDcgKzUwLDcgQEAKICN1bmRlZglDT05GSUdfQk9PVEFSR1MKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYgQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTc4LDg0ICs3OCw4NCBAQAogI2lmIDAgLyogRG9lcyBub3QgYXBwZWFyIHRvIGJlIHVzZWQ/ISAgSWYgaXQgaXMgdXNlZCwgbmVlZHMgdG8gYmUgZml4ZWQgKi8KICNkZWZpbmUgQ09ORklHX1NPRlRfSTJDCQkJLyogU29mdHdhcmUgSTJDIHN1cHBvcnQgZW5hYmxlZCAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4MDBkZjAwMDAgLyogaW5zaWRlIG9mIFNEUkFNCQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDBmMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHgwMGRmMDAwMCAvKiBpbnNpZGUgb2YgU0RSQU0JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDBmMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZEMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRkQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4MEFBOQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MDU1NgkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4MEFBOQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDA1NTYJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAyCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMAkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDQJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMgkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAwCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDQJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgwMDAxMDAwMAkvKiBPZmZzZXQgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCkBAIC0xNzcsMTAgKzE3NywxMCBAQAogCiAjZGVmaW5lIENPTkZJR19UVUxJUAogCi0jZGVmaW5lIENGR19FVEhfREVWX0ZOCSAgICAgMHgwMDAwCi0jZGVmaW5lIENGR19FVEhfSU9CQVNFCSAgICAgMHgwZmZmMDAwMAotI2RlZmluZSBDRkdfUENJOTA1NF9ERVZfRk4gICAweDA4MDAKLSNkZWZpbmUgQ0ZHX1BDSTkwNTRfSU9CQVNFICAgMHgwZWZmMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9ERVZfRk4JICAgICAweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVEhfSU9CQVNFCSAgICAgMHgwZmZmMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOICAgMHgwODAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJOTA1NF9JT0JBU0UgICAweDBlZmYwMDAwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0RCNjQzNjAuaCBiL2luY2x1ZGUvY29uZmlncy9EQjY0MzYwLmgKaW5kZXggMGVkZDUxYS4uZGFlZDkzNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0RCNjQzNjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvREI2NDM2MC5oCkBAIC0xMzIsMTMgKzEzMiwxMyBAQAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IgICAgIC8qIGluaXRpYWxpemUgdGhlIGljYWNoZSBMMSAqLwogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCiAKLSNkZWZpbmUgQ0ZHX0JPQVJEX05BTUUJCSJEQjY0MzYwIgorI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX05BTUUJCSJEQjY0MzYwIgogI2RlZmluZSBDT05GSUdfSURFTlRfU1RSSU5HCSJNYXJ2ZWxsIERCNjQzNjAgKDEuMSkiCiAKLS8qI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIgKi8KLSN1bmRlZiBDRkdfSFVTSF9QQVJTRVIKKy8qI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSICovCisjdW5kZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgbGV0IHlvdSBzZWxlY3Qgd2hhdCBzZXJpYWwgeW91IHdhbnQgdG8gdXNlCkBAIC0xNDYsNyArMTQ2LDcgQEAKICAqCiAgKiB3aGF0IHRvIGRvOgogICogdG8gdXNlIHRoZSBEVUFSVCwgdW5kZWYgQ09ORklHX01QU0MuCSBJZiB5b3UgaGF2ZSBoYWNrZWQgYSBzZXJpYWwKLSAqIGNhYmxlIG9udG8gdGhlIHNlY29uZCBEVUFSVCBjaGFubmVsLCBjaGFuZ2UgdGhlIENGR19EVUFSVCBwb3J0IGZyb20gMQorICogY2FibGUgb250byB0aGUgc2Vjb25kIERVQVJUIGNoYW5uZWwsIGNoYW5nZSB0aGUgQ09ORklHX1NZU19EVUFSVCBwb3J0IGZyb20gMQogICogdG8gMCBiZWxvdy4KICAqCiAgKiB0byB1c2UgdGhlIE1QU0MsICNkZWZpbmUgQ09ORklHX01QU0MuICBJZiB5b3UgaGF2ZSB3aXJlZCB1cCBhbm90aGVyCkBAIC0yMTAsNyArMjEwLDcgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTAJLyogZWNobyBvZmYgZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlcwkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAjdW5kZWYJQ09ORklHX0FMVElWRUMJCQkvKiB1bmRlZiB0byBkaXNhYmxlCQkqLwpAQCAtMjY1LDc0ICsyNjUsNzQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAk0MDAwMAkJLyogSTJDIHNwZWVkIGRlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAk0MDAwMAkJLyogSTJDIHNwZWVkIGRlZmF1bHQgKi8KIAotLyogI2RlZmluZSBDRkdfR1RfRFVBTF9DUFUJIGFsc28gZm9yIEpUQUcgZXZlbiB3aXRoIG9uZSBjcHUgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19HVF9EVUFMX0NQVQkgYWxzbyBmb3IgSlRBRyBldmVuIHdpdGggb25lIGNwdSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0vKiNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkgbWVtdGVzdCB3b3JrcyBvbgkqLwotLyojZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEMwMDAwMAkgNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwotLyojZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwN2MwMDAwMAkgNCAuLi4gMTI0IE1CIGluIERSQU0JKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkgbWVtdGVzdCB3b3JrcyBvbgkqLworLyojZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMDAJIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA3YzAwMDAwCSA0IC4uLiAxMjQgTUIgaW4gRFJBTQkqLwogCiAvKgotI2RlZmluZSBDRkdfRFJBTV9URVNUCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUCiAgKiBEUkFNIHRlc3RzCi0gKiAgIENGR19EUkFNX1RFU1QgLSBlbmFibGVzIHRoZSBmb2xsb3dpbmcgdGVzdHMuCisgKiAgIENPTkZJR19TWVNfRFJBTV9URVNUIC0gZW5hYmxlcyB0aGUgZm9sbG93aW5nIHRlc3RzLgogICoKLSAqICAgQ0ZHX0RSQU1fVEVTVF9EQVRBIC0gRW5hYmxlcyB0ZXN0IGZvciBzaG9ydGVkIG9yIG9wZW4gZGF0YSBsaW5lcworICogICBDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBIC0gRW5hYmxlcyB0ZXN0IGZvciBzaG9ydGVkIG9yIG9wZW4gZGF0YSBsaW5lcwogICoJCQkgIEVudmlyb25tZW50IHZhcmlhYmxlICd0ZXN0X2RyYW1fZGF0YScgbXVzdCBiZQogICoJCQkgIHNldCB0byAneScuCi0gKiAgIENGR19EUkFNX1RFU1RfREFUQSAtIEVuYWJsZXMgdGVzdCB0byB2ZXJpZnkgdGhhdCBlYWNoIHdvcmQgaXMgdW5pcXVlbHkKKyAqICAgQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQSAtIEVuYWJsZXMgdGVzdCB0byB2ZXJpZnkgdGhhdCBlYWNoIHdvcmQgaXMgdW5pcXVlbHkKICAqCQkJICBhZGRyZXNzYWJsZS4gRW52aXJvbm1lbnQgdmFyaWFibGUKICAqCQkJICAndGVzdF9kcmFtX2FkZHJlc3MnIG11c3QgYmUgc2V0IHRvICd5Jy4KLSAqICAgQ0ZHX0RSQU1fVEVTVF9XQUxLIC0gRW5hYmxlcyB0ZXN0IGEgNjQtYml0IHdhbGtpbmcgb25lcyBwYXR0ZXJuIHRlc3QuCisgKiAgIENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEsgLSBFbmFibGVzIHRlc3QgYSA2NC1iaXQgd2Fsa2luZyBvbmVzIHBhdHRlcm4gdGVzdC4KICAqCQkJICBUaGlzIHRlc3QgdGFrZXMgYWJvdXQgNiBtaW51dGVzIHRvIHRlc3QgNjQgTUIuCiAgKgkJCSAgRW52aXJvbm1lbnQgdmFyaWFibGUgJ3Rlc3RfZHJhbV93YWxrJyBtdXN0IGJlCiAgKgkJCSAgc2V0IHRvICd5Jy4KICAqLwotI2RlZmluZSBDRkdfRFJBTV9URVNUCi0jaWYgZGVmaW5lZChDRkdfRFJBTV9URVNUKQotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0vKiAjZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEMwMDAwMAkgNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDdjMDAwMDAJLyogNCAuLi4gMTI0IE1CIGluIERSQU0gKi8KLSNkZWZpbmUgQ0ZHX0RSQU1fVEVTVF9EQVRBCi0jZGVmaW5lIENGR19EUkFNX1RFU1RfQUREUkVTUwotI2RlZmluZSBDRkdfRFJBTV9URVNUX1dBTEsKLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUICovCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEMwMDAwMAkgNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA3YzAwMDAwCS8qIDQgLi4uIDEyNCBNQiBpbiBEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1RFU1RfQUREUkVTUworI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fVEVTVF9XQUxLCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1QgKi8KIAogI3VuZGVmIENPTkZJR19ESVNQTEFZX01FTU1BUAkJLyogYXQgdGhlIGVuZCBvZiB0aGUgYm9vdHByb2Nlc3Mgc2hvdyB0aGUgbWVtb3J5IG1hcCAqLwotI3VuZGVmIENGR19ESVNQTEFZX0RJTU1fU1BEX0NPTlRFTlQJLyogc2hvdyBTUEQgY29udGVudCBkdXJpbmcgYm9vdCAqLworI3VuZGVmIENPTkZJR19TWVNfRElTUExBWV9ESU1NX1NQRF9DT05URU5UCS8qIHNob3cgU1BEIGNvbnRlbnQgZHVyaW5nIGJvb3QgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwNDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwNDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkJLyogZGVjciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3IgZnJlcTogMW1zIHRpY2tzICovCiAvKnJvbmVuIC0gdGhpcyB0aGUgU3lzIGNsb2NrIChjcHUgYnVzLGludGVybmFsIGRyYW0gYW5kIFNEUkFNKSAqLwotI2RlZmluZSBDRkdfQlVTX0haCQkxMzMwMDAwMDAJLyogMTMzIE1IeiAoQ1BVID0gNSpCdXMgPSA2NjZNSHopCQkqLwotI2RlZmluZSBDRkdfQlVTX0NMSwkJQ0ZHX0JVU19IWgorI2RlZmluZSBDT05GSUdfU1lTX0JVU19IWgkJMTMzMDAwMDAwCS8qIDEzMyBNSHogKENQVSA9IDUqQnVzID0gNjY2TUh6KQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfQ0xLCQlDT05GSUdfU1lTX0JVU19IWgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfTE9QIDcgLyogZGVmaW5lIHRoZSBTRFJBTSBjeWNsZSBjb3VudCAqLwotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX1JPUCA1MCAvKiBmb3IgNDAwTUhaIC0+IDUuMCBucywgZm9yIDEzM01IWiAtPiA3LjUwIG5zICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX0xPUCA3IC8qIGRlZmluZSB0aGUgU0RSQU0gY3ljbGUgY291bnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfUk9QIDUwIC8qIGZvciA0MDBNSFogLT4gNS4wIG5zLCBmb3IgMTMzTUhaIC0+IDcuNTAgbnMgKi8KIAogLypyb25lbiAtIHRoaXMgaXMgdGhlIFRjbGsgKE1WNjQzNjAgY29yZSkgKi8KLSNkZWZpbmUgQ0ZHX1RDTEsJCTEzMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RDTEsJCTEzMzAwMDAwMAogCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCi0jZGVmaW5lIENGR183NTBGWF9ISUQwCQkweDgwMDBjMDg0Ci0jZGVmaW5lIENGR183NTBGWF9ISUQxCQkweDU0ODAwMDAwCi0jZGVmaW5lIENGR183NTBGWF9ISUQyCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfNzUwRlhfSElEMAkJMHg4MDAwYzA4NAorI2RlZmluZSBDT05GSUdfU1lTXzc1MEZYX0hJRDEJCTB4NTQ4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU183NTBGWF9ISUQyCQkweDAwMDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMzQ1LDUxICszNDUsNTEgQEAKICAqLwogCiAvKgotICogV2hlbiBsb2NraW5nIGRhdGEgaW4gY2FjaGUgeW91IHNob3VsZCBwb2ludCB0aGUgQ0ZHX0lOSVRfUkFNX0FERFJFU1MKKyAqIFdoZW4gbG9ja2luZyBkYXRhIGluIGNhY2hlIHlvdSBzaG91bGQgcG9pbnQgdGhlIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkVTUwogICogVG8gYW4gdW51c2VkIG1lbW9yeSByZWdpb24uIFRoZSBzdGFjayB3aWxsIHJlbWFpbiBpbiBjYWNoZSB1bnRpbCBSQU0KICAqIGlzIGluaXRpYWxpemVkCiAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwIC8qIHVudXNlZCBtZW1vcnkgcmVnaW9uICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwIC8qIHVudXNlZCBtZW1vcnkgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAjZGVmaW5lIFJFTE9DQVRFX0lOVEVSTkFMX1JBTV9BRERSCiAjaWZkZWYgUkVMT0NBVEVfSU5URVJOQUxfUkFNX0FERFIKLQkjZGVmaW5lIENGR19JTlRFUk5BTF9SQU1fQUREUgkweGY4MDAwMDAwCisJI2RlZmluZSBDT05GSUdfU1lTX0lOVEVSTkFMX1JBTV9BRERSCTB4ZjgwMDAwMDAKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKIC8qIER1bW1pZXMgZm9yIEJBVCA0LTcgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNMV9CQVNFCQkweDEwMDAwMDAwCS8qIGVhY2ggMjU2IE1CeXRlICovCi0jZGVmaW5lIENGR19TRFJBTTJfQkFTRQkJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0zX0JBU0UJCTB4MzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNNF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJMHhmZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMV9CQVNFCQkweDEwMDAwMDAwCS8qIGVhY2ggMjU2IE1CeXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0yX0JBU0UJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTNfQkFTRQkJMHgzMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNNF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCTB4ZmZmMDAwMDAKIAotI2RlZmluZSBDRkdfREZMX0JPT1RDU19CQVNFCTB4ZmY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERkxfQk9PVENTX0JBU0UJMHhmZjgwMDAwMAogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNCQkvKiB3ZSB3aWxsIHVzZSB1cCB0byAyNTZNIG1lbW9yeSBmb3IgY2F1c2Ugd2UgYXJlIHNob3J0IG9mIEJBVFMqLwogCiAjZGVmaW5lIEJSSURHRV9SRUdfQkFTRV9CT09UTSAweGZiZTAwMDAwIC8qIHRoaXMgcGFyYW1hdGVycyBhcmUgdXNlZCB3aGVuIGJvb3RpbmcgdGhlIGxpbnV4IGtlcm5lbCAqLwogI2RlZmluZSBVQVJUX0JBU0VfQk9PVE0JICAgICAgMHhmYmIwMDAwMCAvKiBpbiBvcmRlciB0byBiZSBzeW5jIHdpdGggdGhlIGtlcm5lbCBwYXJhbWV0ZXJzLiAqLwogI2RlZmluZSBQQ0kwX0lPX0JBU0VfQk9PVE0gICAgMHhmZDAwMDAwMAogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCQkweGZmZjAwMTAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCQkweGZmZjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCiAKIC8qIGFyZWFzIHRvIG1hcCBkaWZmZXJlbnQgdGhpbmdzIHdpdGggdGhlIEdUIGluIHBoeXNpY2FsIHNwYWNlICovCi0jZGVmaW5lIENGR19EUkFNX0JBTktTCQk0CisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQU5LUwkJNAogCiAvKiBXaGF0IHRvIHB1dCBpbiB0aGUgYmF0cy4gKi8KLSNkZWZpbmUgQ0ZHX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAogCiAvKiBQZXJpcGhlcmFsIERldmljZSBzZWN0aW9uICovCiAKQEAgLTQwMywzMCArNDAzLDMwIEBACiAvKiBEYXRhIGZsYXNoIG9uIGV4dGVybmFsIGRldmljZSBtb2R1bGUJCSAgICAqLwogLyogQm9vdCBmbGFzaCBvbiBleHRlcm5hbCBkZXZpY2UgbW9kdWxlCQkgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJCQkJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KLSNkZWZpbmUJIENGR19EQjY0MzYwX1JFU0VUX0FERFIgMHgxNDAwMDAwMAkJCQkvKiBBZnRlciBwb3dlciBvbiBSZXNldCB0aGUgREI2NDM2MCBpcyBoZXJlICovCisjZGVmaW5lIENPTkZJR19TWVNfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJCQkJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KKyNkZWZpbmUJIENPTkZJR19TWVNfREI2NDM2MF9SRVNFVF9BRERSIDB4MTQwMDAwMDAJCQkJLyogQWZ0ZXIgcG93ZXIgb24gUmVzZXQgdGhlIERCNjQzNjAgaXMgaGVyZSAqLwogCiAvKisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysqLwotI2RlZmluZSBDRkdfR1RfUkVHUwkJMHhmMTAwMDAwMAkJCQkvKiBHVCBSZWdpc3RlcnMgd2lsbCBiZSBtYXBwZWQgaGVyZSAqLwotI2RlZmluZSBDRkdfREVWX0JBU0UJCTB4ZmMwMDAwMDAJCQkJLyogR1QgRGV2aWNlcyBDUyBzdGFydCBoZXJlICovCisjZGVmaW5lIENPTkZJR19TWVNfR1RfUkVHUwkJMHhmMTAwMDAwMAkJCQkvKiBHVCBSZWdpc3RlcnMgd2lsbCBiZSBtYXBwZWQgaGVyZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVl9CQVNFCQkweGZjMDAwMDAwCQkJCS8qIEdUIERldmljZXMgQ1Mgc3RhcnQgaGVyZSAqLwogCi0jZGVmaW5lIENGR19ERVYwX1NQQUNFCQlDRkdfREVWX0JBU0UJCQkJLyogREVWX0NTMCBkZXZpY2UgbW9kdWwgc3JhbSAqLwotI2RlZmluZSBDRkdfREVWMV9TUEFDRQkJKENGR19ERVYwX1NQQUNFICsgQ0ZHX0RFVjBfU0laRSkJLyogREVWX0NTMSBkZXZpY2UgbW9kdWwgcmVhbCB0aW1lIGNsb2NrIChydGMpICovCi0jZGVmaW5lIENGR19ERVYyX1NQQUNFCQkoQ0ZHX0RFVjFfU1BBQ0UgKyBDRkdfREVWMV9TSVpFKQkvKiBERVZfQ1MyIGRldmljZSBtb2R1bCBkb3ViZWwgdWFydCAoZHVhcnQpICovCi0jZGVmaW5lIENGR19ERVYzX1NQQUNFCQkoQ0ZHX0RFVjJfU1BBQ0UgKyBDRkdfREVWMl9TSVpFKQkvKiBERVZfQ1MzIGRldmljZSBtb2R1bCBsYXJnZSBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjBfU1BBQ0UJCUNPTkZJR19TWVNfREVWX0JBU0UJCQkJLyogREVWX0NTMCBkZXZpY2UgbW9kdWwgc3JhbSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjFfU1BBQ0UJCShDT05GSUdfU1lTX0RFVjBfU1BBQ0UgKyBDT05GSUdfU1lTX0RFVjBfU0laRSkJLyogREVWX0NTMSBkZXZpY2UgbW9kdWwgcmVhbCB0aW1lIGNsb2NrIChydGMpICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9TUEFDRQkJKENPTkZJR19TWVNfREVWMV9TUEFDRSArIENPTkZJR19TWVNfREVWMV9TSVpFKQkvKiBERVZfQ1MyIGRldmljZSBtb2R1bCBkb3ViZWwgdWFydCAoZHVhcnQpICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWM19TUEFDRQkJKENPTkZJR19TWVNfREVWMl9TUEFDRSArIENPTkZJR19TWVNfREVWMl9TSVpFKQkvKiBERVZfQ1MzIGRldmljZSBtb2R1bCBsYXJnZSBmbGFzaCAqLwogCi0jZGVmaW5lIENGR19ERVYwX1NJWkUJCSBfOE0JCQkJCS8qIGRiNjQzNjAgc3JhbQkgQCAweGZjMDAuMDAwMCAqLwotI2RlZmluZSBDRkdfREVWMV9TSVpFCQkgXzhNCQkJCQkvKiBkYjY0MzYwIHJ0YwkgQCAweGZjODAuMDAwMCAqLwotI2RlZmluZSBDRkdfREVWMl9TSVpFCQlfMTZNCQkJCQkvKiBkYjY0MzYwIGR1YXJ0IEAgMHhmZDAwLjAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0RFVjNfU0laRQkJXzE2TQkJCQkJLyogZGI2NDM2MCBmbGFzaCBAIDB4ZmUwMC4wMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMF9TSVpFCQkgXzhNCQkJCQkvKiBkYjY0MzYwIHNyYW0JIEAgMHhmYzAwLjAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYxX1NJWkUJCSBfOE0JCQkJCS8qIGRiNjQzNjAgcnRjCSBAIDB4ZmM4MC4wMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9TSVpFCQlfMTZNCQkJCQkvKiBkYjY0MzYwIGR1YXJ0IEAgMHhmZDAwLjAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYzX1NJWkUJCV8xNk0JCQkJCS8qIGRiNjQzNjAgZmxhc2ggQCAweGZlMDAuMDAwMCAqLwogLyorKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKi8KIAogLyogUmVzZXQgdmFsdWVzIGZvciBQb3J0IGJlaGF2aW9yICg4Yml0LyAzMmJpdCwgZXRjLikgb25seSBjb3JyZWN0ZWQgYnkgZGV2aWNlIHdpZHRoICovCi0jZGVmaW5lIENGR19ERVYwX1BBUgkJMHg4RkVGRkZGRgkJCQkvKiAzMkJpdCAgc3JhbSAqLwotI2RlZmluZSBDRkdfREVWMV9QQVIJCTB4OEZDRkZGRkYJCQkJLyogOEJpdAkgcnRjICovCi0jZGVmaW5lIENGR19ERVYyX1BBUgkJMHg4RkNGRkZGRgkJCQkvKiA4Qml0IGR1YXJ0ICovCi0jZGVmaW5lIENGR184QklUX0JPT1RfUEFSCTB4OEZDRkZGRkYJCQkJLyogOEJpdCBmbGFzaCAqLwotI2RlZmluZSBDRkdfMzJCSVRfQk9PVF9QQVIJMHg4RkVGRkZGRgkJCQkvKiAzMkJpdCBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjBfUEFSCQkweDhGRUZGRkZGCQkJCS8qIDMyQml0ICBzcmFtICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMV9QQVIJCTB4OEZDRkZGRkYJCQkJLyogOEJpdAkgcnRjICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9QQVIJCTB4OEZDRkZGRkYJCQkJLyogOEJpdCBkdWFydCAqLworI2RlZmluZSBDT05GSUdfU1lTXzhCSVRfQk9PVF9QQVIJMHg4RkNGRkZGRgkJCQkvKiA4Qml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIJMHg4RkVGRkZGRgkJCQkvKiAzMkJpdCBmbGFzaCAqLwogCiAJLyogICBjCSAgNCAgICBhICAgICAgOAkgICAgMgkgIDQgICAgMSAgICAgIGMJCSovCiAJLyogMzMgMjJ8MjIyMnwyMiAyMnwxMTEgMXwxMSAxMXwxIDEgIHwJICB8CQkqLwpAQCAtNDM2LDI4ICs0MzYsMjggQEAKIAogCiAvKiByb25lbiAtIHVwZGF0ZSBNUFAgQ29udHJvbCBNVjY0MzYwKi8KLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzAJMHgwMjIyMjIyMgotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMQkweDExMzMzMDExCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8yCTB4NDA0MzExMTEKLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzMJMHgwMDAwMDA0NAorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzAJMHgwMjIyMjIyMgorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzEJMHgxMTMzMzAxMQorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzIJMHg0MDQzMTExMQorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzMJMHgwMDAwMDA0NAogCi0vKiMgZGVmaW5lIENGR19TRVJJQUxfUE9SVF9NVVgJMHgwMDAwMDEwMgkgMD1oaVoJMT1NUFNDMCAyPUVUSCAwIGFuZCAyIFJNSUkgKi8KKy8qIyBkZWZpbmUgQ09ORklHX1NZU19TRVJJQUxfUE9SVF9NVVgJMHgwMDAwMDEwMgkgMD1oaVoJMT1NUFNDMCAyPUVUSCAwIGFuZCAyIFJNSUkgKi8KIAogCi0jIGRlZmluZSBDRkdfR1BQX0xFVkVMX0NPTlRST0wJMHgyYzYwMDAwMAkvKiAxMTExIDEwMDEgMDAwMCAxMTExIDExMDAgMDAwMCAwMDAwIDAwMDAqLworIyBkZWZpbmUgQ09ORklHX1NZU19HUFBfTEVWRUxfQ09OVFJPTAkweDJjNjAwMDAwCS8qIDExMTEgMTAwMSAwMDAwIDExMTEgMTEwMCAwMDAwIDAwMDAgMDAwMCovCiAJCQkJCQkJLyogZ3BwWzMxXQkJZ3BwWzMwXQkJZ3BwWzI5XQkJZ3BwWzI4XSAqLwogCQkJCS8qIGdwcFsyN10JCQlncHBbMjRdKi8KIAkJCQkJCQkvKiBncHBbMTk6MTRdICovCiAKIC8qIHNldHVwIG5ldyBjb25maWdfdmFsdWUgZm9yIE1WNjQzNjAgRERSLVJBTSAhISAqLwotIyBkZWZpbmUgQ0ZHX1NEUkFNX0NPTkZJRwkweDU4MjAwNDAwCS8qIDB4MTQwMCAgY29waWVkIGZyb20gRGluazMyIGJ6dy4gVnhXb3JrcyovCisjIGRlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NPTkZJRwkweDU4MjAwNDAwCS8qIDB4MTQwMCAgY29waWVkIGZyb20gRGluazMyIGJ6dy4gVnhXb3JrcyovCiAKLSNkZWZpbmUgQ0ZHX0RVQVJUX0lPCQlDRkdfREVWMl9TUEFDRQotI2RlZmluZSBDRkdfRFVBUlRfQ0hBTgkJMQkJLyogY2hhbm5lbCB0byB1c2UgZm9yIGNvbnNvbGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfQ0hBTjEKLSNkZWZpbmUgQ0ZHX0lOSVRfQ0hBTjIKKyNkZWZpbmUgQ09ORklHX1NZU19EVUFSVF9JTwkJQ09ORklHX1NZU19ERVYyX1NQQUNFCisjZGVmaW5lIENPTkZJR19TWVNfRFVBUlRfQ0hBTgkJMQkJLyogY2hhbm5lbCB0byB1c2UgZm9yIGNvbnNvbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0NIQU4xCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9DSEFOMgogCi0jZGVmaW5lIFNSQU1fQkFTRQkJQ0ZHX0RFVjBfU1BBQ0UKKyNkZWZpbmUgU1JBTV9CQVNFCQlDT05GSUdfU1lTX0RFVjBfU1BBQ0UKICNkZWZpbmUgU1JBTV9TSVpFCQkweDAwMTAwMDAwCQkvKiAxIE1CIG9mIHNyYW0gKi8KIAogCkBAIC00NzYsMjkgKzQ3NiwyOSBAQAogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAJCQkvKiByb25lbiAtIFN1cHBvcnQgZm9yIEludGVsIDgyNTU3LzgyNTU5LzgyNTU5RVIgY2hpcHMgKi8KIAogLyogUENJIE1FTU9SWSBNQVAgc2VjdGlvbiAqLwotI2RlZmluZSBDRkdfUENJMF9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX01FTV9TSVpFCV8xMjhNCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODgwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJXzEyOE0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9TSVpFCV8xMjhNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDg4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQlfMTI4TQogCi0jZGVmaW5lIENGR19QQ0kwXzBfTUVNX1NQQUNFCShDRkdfUENJMF9NRU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UJKENGR19QQ0kxX01FTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UpCiAKIC8qIFBDSSBJL08gTUFQIHNlY3Rpb24gKi8KLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fQkFTRQkweGZhMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX0lPX1NJWkUJXzE2TQotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4ZmIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQlfMTZNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19CQVNFCTB4ZmEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUJXzE2TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweGZiMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCV8xNk0KIAotI2RlZmluZSBDRkdfUENJMF9JT19TUEFDRQkoQ0ZHX1BDSTBfSU9fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fU1BBQ0VfUENJCShDRkdfUENJMF9JT19CQVNFKSAvKiByb25lbiB3ZSB3YW50IHBoeT1idXMgMHgwMDAwMDAwMCAqLwotI2RlZmluZSBDRkdfUENJMV9JT19TUEFDRQkoQ0ZHX1BDSTFfSU9fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU1BBQ0VfUENJCShDRkdfUENJMV9JT19CQVNFKSAvKiByb25lbiB3ZSB3YW50IHBoeT1idXMgMHgwMDAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9JT19CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0VfUENJCShDT05GSUdfU1lTX1BDSTBfSU9fQkFTRSkgLyogcm9uZW4gd2Ugd2FudCBwaHk9YnVzIDB4MDAwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFX1BDSQkoQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UpIC8qIHJvbmVuIHdlIHdhbnQgcGh5PWJ1cyAweDAwMDAwMDAwICovCiAKICNpZiBkZWZpbmVkIChDT05GSUdfNzUwQ1gpCi0jZGVmaW5lIENGR19QQ0lfSURTRUwgMHgwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lEU0VMIDB4MAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1BDSV9JRFNFTCAweDMwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lEU0VMIDB4MzAKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIEJBVCBtYXBwaW5ncwpAQCAtNTEwLDI4ICs1MTAsMjggQEAKICAqLwogCiAvKiBTRFJBTSAqLwotI2RlZmluZSBDRkdfSUJBVDBMIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQwVSAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDBVIENGR19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUgQ09ORklHX1NZU19JQkFUMFUKIAogLyogaW5pdCByYW0gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzI1NksgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQxTCAgQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVICBDRkdfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVSAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMjU2SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTCAgQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUgIENPTkZJR19TWVNfSUJBVDFVCiAKIC8qIFBDSTAsIFBDSTEgaW4gb25lIEJBVCAqLwotI2RlZmluZSBDRkdfSUJBVDJMIEJBVExfTk9fQUNDRVNTCi0jZGVmaW5lIENGR19JQkFUMlUgQ0ZHX0RCQVQyVQotI2RlZmluZSBDRkdfREJBVDJMIChDRkdfUENJMF9NRU1fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMlUgKENGR19QQ0kwX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMIEJBVExfTk9fQUNDRVNTCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVIENPTkZJR19TWVNfREJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMIChDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVSAoQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIEdUIHJlZ3MsIGJvb3Ryb20sIGFsbCB0aGUgZGV2aWNlcywgUENJIEkvTyAqLwotI2RlZmluZSBDRkdfSUJBVDNMIChDRkdfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVykKLSNkZWZpbmUgQ0ZHX0lCQVQzVSAoQ0ZHX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRVX1ZTIHwgQkFUVV9WUCB8IEJBVFVfQkxfMjU2TSkKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAoQ0ZHX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDNVIENGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wgKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVykKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRSB8IEJBVFVfVlMgfCBCQVRVX1ZQIHwgQkFUVV9CTF8yNTZNKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTCAoQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UgQ09ORklHX1NZU19JQkFUM1UKIAogLyogSTJDIGFkZHJlc3NlcyBmb3IgdGhlIHR3byBESU1NIFNQRCBjaGlwcyAqLwogI2RlZmluZSBESU1NMF9JMkNfQUREUgkweDU2CkBAIC01NDIsMzUgKzU0MiwzNSBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoODw8MjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4PDwyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0VYVFJBX0ZMQVNIX0RFVklDRQlERVZJQ0UzIC8qIGV4dHJhIGZsYXNoIGF0IGRldmljZSAzICovCi0jZGVmaW5lIENGR19FWFRSQV9GTEFTSF9XSURUSAk0CS8qIDMyIGJpdCAqLwotI2RlZmluZSBDRkdfQk9PVF9GTEFTSF9XSURUSAkxCS8qIDggYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUkFfRkxBU0hfREVWSUNFCURFVklDRTMgLyogZXh0cmEgZmxhc2ggYXQgZGV2aWNlIDMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRSQV9GTEFTSF9XSURUSAk0CS8qIDMyIGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfRkxBU0hfV0lEVEgJMQkvKiA4IGJpdCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIExvY2sgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIExvY2sgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkgICAgICAweEZGRjc4MDAwIC8qIE1hcnZlbGwgOC1CaXQgQm9vdGZsYXNoIGxhc3Qgc2VjdG9yICovCi0vKiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkgICAoQ0ZHX0ZMQVNIX0JBU0UrQ0ZHX01PTklUT1JfTEVOLUNPTkZJR19FTlZfU0VDVF9TSVpFKSAqLworLyogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJICAgKENPTkZJR19TWVNfRkxBU0hfQkFTRStDT05GSUdfU1lTX01PTklUT1JfTEVOLUNPTkZJR19FTlZfU0VDVF9TSVpFKSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBhbGwgTVBDNzR4eCBDUFVzCQkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgYWxsIE1QQzc0eHggQ1BVcwkJICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTc4LDcgKzU3OCw3IEBACiAgKiBsb29rIGluIGluY2x1ZGUvbXBjNzR4eC5oIGZvciB0aGUgZGVmaW5lcyB1c2VkIGhlcmUKICAqLwogCi0jZGVmaW5lIENGR19MMgorI2RlZmluZSBDT05GSUdfU1lTX0wyCiAKIAogI2lmIGRlZmluZWQgKENPTkZJR183NTBDWCkgfHwgZGVmaW5lZCAoQ09ORklHXzc1MEZYKQpAQCAtNjAyLDYgKzYwMiw2IEBACiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJMHgwMQkJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkweDAyCQkvKiBTb2Z0d2FyZSByZWJvb3QJCSAgICAqLwogCi0jZGVmaW5lIENGR19CT0FSRF9BU01fSU5JVAkxCisjZGVmaW5lIENPTkZJR19TWVNfQk9BUkRfQVNNX0lOSVQJMQogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0RCNjQ0NjAuaCBiL2luY2x1ZGUvY29uZmlncy9EQjY0NDYwLmgKaW5kZXggMzA2MTVhNC4uNjA0ZmQ0NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0RCNjQ0NjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvREI2NDQ2MC5oCkBAIC03MCwxMyArNzAsMTMgQEAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SICAgICAvKiBpbml0aWFsaXplIHRoZSBpY2FjaGUgTDEgKi8KICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgogCi0jZGVmaW5lIENGR19CT0FSRF9OQU1FCQkiREI2NDQ2MCIKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9OQU1FCQkiREI2NDQ2MCIKICNkZWZpbmUgQ09ORklHX0lERU5UX1NUUklORwkiTWFydmVsbCBEQjY0NDYwICgxLjApIgogCi0vKiNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSICovCi0jdW5kZWYgQ0ZHX0hVU0hfUEFSU0VSCisvKiNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUiAqLworI3VuZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKIAotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGxldCB5b3Ugc2VsZWN0IHdoYXQgc2VyaWFsIHlvdSB3YW50IHRvIHVzZQpAQCAtODQsNyArODQsNyBAQAogICoKICAqIHdoYXQgdG8gZG86CiAgKiB0byB1c2UgdGhlIERVQVJULCB1bmRlZiBDT05GSUdfTVBTQy4JIElmIHlvdSBoYXZlIGhhY2tlZCBhIHNlcmlhbAotICogY2FibGUgb250byB0aGUgc2Vjb25kIERVQVJUIGNoYW5uZWwsIGNoYW5nZSB0aGUgQ0ZHX0RVQVJUIHBvcnQgZnJvbSAxCisgKiBjYWJsZSBvbnRvIHRoZSBzZWNvbmQgRFVBUlQgY2hhbm5lbCwgY2hhbmdlIHRoZSBDT05GSUdfU1lTX0RVQVJUIHBvcnQgZnJvbSAxCiAgKiB0byAwIGJlbG93LgogICoKICAqIHRvIHVzZSB0aGUgTVBTQywgI2RlZmluZSBDT05GSUdfTVBTQy4gIElmIHlvdSBoYXZlIHdpcmVkIHVwIGFub3RoZXIKQEAgLTE0OCw3ICsxNDgsNyBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMAkvKiBlY2hvIG9mZiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2VzCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KICN1bmRlZglDT05GSUdfQUxUSVZFQwkJCS8qIHVuZGVmIHRvIGRpc2FibGUJCSovCkBAIC0yMDMsNzQgKzIwMyw3NCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwotI2RlZmluZSBDRkdfSTJDX1NQRUVECTQwMDAwCQkvKiBJMkMgc3BlZWQgZGVmYXVsdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECTQwMDAwCQkvKiBJMkMgc3BlZWQgZGVmYXVsdCAqLwogCi0vKiAjZGVmaW5lIENGR19HVF9EVUFMX0NQVQkgYWxzbyBmb3IgSlRBRyBldmVuIHdpdGggb25lIGNwdSAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworLyogI2RlZmluZSBDT05GSUdfU1lTX0dUX0RVQUxfQ1BVCSBhbHNvIGZvciBKVEFHIGV2ZW4gd2l0aCBvbmUgY3B1ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLS8qI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCSBtZW10ZXN0IHdvcmtzIG9uCSovCi0vKiNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwCSA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCi0vKiNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA3YzAwMDAwCSA0IC4uLiAxMjQgTUIgaW4gRFJBTQkqLworLyojZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCSBtZW10ZXN0IHdvcmtzIG9uCSovCisvKiNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEMwMDAwMAkgNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworLyojZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDdjMDAwMDAJIDQgLi4uIDEyNCBNQiBpbiBEUkFNCSovCiAKIC8qCi0jZGVmaW5lIENGR19EUkFNX1RFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1RFU1QKICAqIERSQU0gdGVzdHMKLSAqICAgQ0ZHX0RSQU1fVEVTVCAtIGVuYWJsZXMgdGhlIGZvbGxvd2luZyB0ZXN0cy4KKyAqICAgQ09ORklHX1NZU19EUkFNX1RFU1QgLSBlbmFibGVzIHRoZSBmb2xsb3dpbmcgdGVzdHMuCiAgKgotICogICBDRkdfRFJBTV9URVNUX0RBVEEgLSBFbmFibGVzIHRlc3QgZm9yIHNob3J0ZWQgb3Igb3BlbiBkYXRhIGxpbmVzCisgKiAgIENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEgLSBFbmFibGVzIHRlc3QgZm9yIHNob3J0ZWQgb3Igb3BlbiBkYXRhIGxpbmVzCiAgKgkJCSAgRW52aXJvbm1lbnQgdmFyaWFibGUgJ3Rlc3RfZHJhbV9kYXRhJyBtdXN0IGJlCiAgKgkJCSAgc2V0IHRvICd5Jy4KLSAqICAgQ0ZHX0RSQU1fVEVTVF9EQVRBIC0gRW5hYmxlcyB0ZXN0IHRvIHZlcmlmeSB0aGF0IGVhY2ggd29yZCBpcyB1bmlxdWVseQorICogICBDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBIC0gRW5hYmxlcyB0ZXN0IHRvIHZlcmlmeSB0aGF0IGVhY2ggd29yZCBpcyB1bmlxdWVseQogICoJCQkgIGFkZHJlc3NhYmxlLiBFbnZpcm9ubWVudCB2YXJpYWJsZQogICoJCQkgICd0ZXN0X2RyYW1fYWRkcmVzcycgbXVzdCBiZSBzZXQgdG8gJ3knLgotICogICBDRkdfRFJBTV9URVNUX1dBTEsgLSBFbmFibGVzIHRlc3QgYSA2NC1iaXQgd2Fsa2luZyBvbmVzIHBhdHRlcm4gdGVzdC4KKyAqICAgQ09ORklHX1NZU19EUkFNX1RFU1RfV0FMSyAtIEVuYWJsZXMgdGVzdCBhIDY0LWJpdCB3YWxraW5nIG9uZXMgcGF0dGVybiB0ZXN0LgogICoJCQkgIFRoaXMgdGVzdCB0YWtlcyBhYm91dCA2IG1pbnV0ZXMgdG8gdGVzdCA2NCBNQi4KICAqCQkJICBFbnZpcm9ubWVudCB2YXJpYWJsZSAndGVzdF9kcmFtX3dhbGsnIG11c3QgYmUKICAqCQkJICBzZXQgdG8gJ3knLgogICovCi0jZGVmaW5lIENGR19EUkFNX1RFU1QKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLS8qICNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwCSA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwN2MwMDAwMAkvKiA0IC4uLiAxMjQgTUIgaW4gRFJBTSAqLwotI2RlZmluZSBDRkdfRFJBTV9URVNUX0RBVEEKLSNkZWZpbmUgQ0ZHX0RSQU1fVEVTVF9BRERSRVNTCi0jZGVmaW5lIENGR19EUkFNX1RFU1RfV0FMSwotI2VuZGlmIC8qIENGR19EUkFNX1RFU1QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1RFU1QKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRFJBTV9URVNUKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworLyogI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwCSA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDdjMDAwMDAJLyogNCAuLi4gMTI0IE1CIGluIERSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQQorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEsKKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVCAqLwogCiAjdW5kZWYgQ09ORklHX0RJU1BMQVlfTUVNTUFQCQkvKiBhdCB0aGUgZW5kIG9mIHRoZSBib290cHJvY2VzcyBzaG93IHRoZSBtZW1vcnkgbWFwICovCi0jdW5kZWYgQ0ZHX0RJU1BMQVlfRElNTV9TUERfQ09OVEVOVAkvKiBzaG93IFNQRCBjb250ZW50IGR1cmluZyBib290ICovCisjdW5kZWYgQ09ORklHX1NZU19ESVNQTEFZX0RJTU1fU1BEX0NPTlRFTlQJLyogc2hvdyBTUEQgY29udGVudCBkdXJpbmcgYm9vdCAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDA0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDA0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjciBmcmVxOiAxbXMgdGlja3MgKi8KIC8qcm9uZW4gLSB0aGlzIHRoZSBTeXMgY2xvY2sgKGNwdSBidXMsaW50ZXJuYWwgZHJhbSBhbmQgU0RSQU0pICovCi0jZGVmaW5lIENGR19CVVNfSFoJCTEzMzAwMDAwMAkvKiAxMzMgTUh6IChDUFUgPSA1KkJ1cyA9IDY2Nk1IeikJCSovCi0jZGVmaW5lIENGR19CVVNfQ0xLCQlDRkdfQlVTX0haCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0haCQkxMzMwMDAwMDAJLyogMTMzIE1IeiAoQ1BVID0gNSpCdXMgPSA2NjZNSHopCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JVU19DTEsJCUNPTkZJR19TWVNfQlVTX0haCiAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1AgNyAvKiBkZWZpbmUgdGhlIFNEUkFNIGN5Y2xlIGNvdW50ICovCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfUk9QIDUwIC8qIGZvciAyMDBNSFogLT4gNS4wIG5zLCAxNjZNSFogLT4gNi4wLCAxMzNNSFogLT4gNy41MCBucyAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1AgNyAvKiBkZWZpbmUgdGhlIFNEUkFNIGN5Y2xlIGNvdW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX1JPUCA1MCAvKiBmb3IgMjAwTUhaIC0+IDUuMCBucywgMTY2TUhaIC0+IDYuMCwgMTMzTUhaIC0+IDcuNTAgbnMgKi8KIAogLypyb25lbiAtIHRoaXMgaXMgdGhlIFRjbGsgKE1WNjQ0NjAgY29yZSkgKi8KLSNkZWZpbmUgQ0ZHX1RDTEsJCTEzMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RDTEsJCTEzMzAwMDAwMAogCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCi0jZGVmaW5lIENGR183NTBGWF9ISUQwCQkweDgwMDBjMDg0Ci0jZGVmaW5lIENGR183NTBGWF9ISUQxCQkweDU0ODAwMDAwCi0jZGVmaW5lIENGR183NTBGWF9ISUQyCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfNzUwRlhfSElEMAkJMHg4MDAwYzA4NAorI2RlZmluZSBDT05GSUdfU1lTXzc1MEZYX0hJRDEJCTB4NTQ4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU183NTBGWF9ISUQyCQkweDAwMDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjgzLDUxICsyODMsNTEgQEAKICAqLwogCiAvKgotICogV2hlbiBsb2NraW5nIGRhdGEgaW4gY2FjaGUgeW91IHNob3VsZCBwb2ludCB0aGUgQ0ZHX0lOSVRfUkFNX0FERFJFU1MKKyAqIFdoZW4gbG9ja2luZyBkYXRhIGluIGNhY2hlIHlvdSBzaG91bGQgcG9pbnQgdGhlIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkVTUwogICogVG8gYW4gdW51c2VkIG1lbW9yeSByZWdpb24uIFRoZSBzdGFjayB3aWxsIHJlbWFpbiBpbiBjYWNoZSB1bnRpbCBSQU0KICAqIGlzIGluaXRpYWxpemVkCiAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwIC8qIHVudXNlZCBtZW1vcnkgcmVnaW9uICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwIC8qIHVudXNlZCBtZW1vcnkgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAjZGVmaW5lIFJFTE9DQVRFX0lOVEVSTkFMX1JBTV9BRERSCiAjaWZkZWYgUkVMT0NBVEVfSU5URVJOQUxfUkFNX0FERFIKLQkjZGVmaW5lIENGR19JTlRFUk5BTF9SQU1fQUREUgkweGY4MDAwMDAwCisJI2RlZmluZSBDT05GSUdfU1lTX0lOVEVSTkFMX1JBTV9BRERSCTB4ZjgwMDAwMDAKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKIC8qIER1bW1pZXMgZm9yIEJBVCA0LTcgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNMV9CQVNFCQkweDEwMDAwMDAwCS8qIGVhY2ggMjU2IE1CeXRlICovCi0jZGVmaW5lIENGR19TRFJBTTJfQkFTRQkJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0zX0JBU0UJCTB4MzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNNF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJMHhmZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMV9CQVNFCQkweDEwMDAwMDAwCS8qIGVhY2ggMjU2IE1CeXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0yX0JBU0UJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTNfQkFTRQkJMHgzMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNNF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCTB4ZmZmMDAwMDAKIAotI2RlZmluZSBDRkdfREZMX0JPT1RDU19CQVNFCTB4ZmY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERkxfQk9PVENTX0JBU0UJMHhmZjgwMDAwMAogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNCQkvKiB3ZSB3aWxsIHVzZSB1cCB0byAyNTZNIG1lbW9yeSBmb3IgY2F1c2Ugd2UgYXJlIHNob3J0IG9mIEJBVFMqLwogCiAjZGVmaW5lIEJSSURHRV9SRUdfQkFTRV9CT09UTSAweGZiZTAwMDAwIC8qIHRoaXMgcGFyYW1hdGVycyBhcmUgdXNlZCB3aGVuIGJvb3RpbmcgdGhlIGxpbnV4IGtlcm5lbCAqLwogI2RlZmluZSBVQVJUX0JBU0VfQk9PVE0JICAgICAgMHhmYmIwMDAwMCAvKiBpbiBvcmRlciB0byBiZSBzeW5jIHdpdGggdGhlIGtlcm5lbCBwYXJhbWV0ZXJzLiAqLwogI2RlZmluZSBQQ0kwX0lPX0JBU0VfQk9PVE0gICAgMHhmZDAwMDAwMAogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCQkweGZmZjAwMTAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCQkweGZmZjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCiAKIC8qIGFyZWFzIHRvIG1hcCBkaWZmZXJlbnQgdGhpbmdzIHdpdGggdGhlIEdUIGluIHBoeXNpY2FsIHNwYWNlICovCi0jZGVmaW5lIENGR19EUkFNX0JBTktTCQk0CisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQU5LUwkJNAogCiAvKiBXaGF0IHRvIHB1dCBpbiB0aGUgYmF0cy4gKi8KLSNkZWZpbmUgQ0ZHX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAogCiAvKiBQZXJpcGhlcmFsIERldmljZSBzZWN0aW9uICovCiAKQEAgLTM0MSwzMCArMzQxLDMwIEBACiAvKiBEYXRhIGZsYXNoIG9uIGV4dGVybmFsIGRldmljZSBtb2R1bGUJCSAgICAqLwogLyogQm9vdCBmbGFzaCBvbiBleHRlcm5hbCBkZXZpY2UgbW9kdWxlCQkgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJCQkJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KLSNkZWZpbmUJIENGR19EQjY0NDYwX1JFU0VUX0FERFIgMHgxNDAwMDAwMAkJCQkvKiBBZnRlciBwb3dlciBvbiBSZXNldCB0aGUgREI2NDQ2MCBpcyBoZXJlICovCisjZGVmaW5lIENPTkZJR19TWVNfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJCQkJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KKyNkZWZpbmUJIENPTkZJR19TWVNfREI2NDQ2MF9SRVNFVF9BRERSIDB4MTQwMDAwMDAJCQkJLyogQWZ0ZXIgcG93ZXIgb24gUmVzZXQgdGhlIERCNjQ0NjAgaXMgaGVyZSAqLwogCiAvKisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysqLwotI2RlZmluZSBDRkdfR1RfUkVHUwkJMHhmMTAwMDAwMAkJCQkvKiBHVCBSZWdpc3RlcnMgd2lsbCBiZSBtYXBwZWQgaGVyZSAqLwotI2RlZmluZSBDRkdfREVWX0JBU0UJCTB4ZmMwMDAwMDAJCQkJLyogR1QgRGV2aWNlcyBDUyBzdGFydCBoZXJlICovCisjZGVmaW5lIENPTkZJR19TWVNfR1RfUkVHUwkJMHhmMTAwMDAwMAkJCQkvKiBHVCBSZWdpc3RlcnMgd2lsbCBiZSBtYXBwZWQgaGVyZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVl9CQVNFCQkweGZjMDAwMDAwCQkJCS8qIEdUIERldmljZXMgQ1Mgc3RhcnQgaGVyZSAqLwogCi0jZGVmaW5lIENGR19ERVYwX1NQQUNFCQlDRkdfREVWX0JBU0UJCQkJLyogREVWX0NTMCBkZXZpY2UgbW9kdWwgc3JhbSAqLwotI2RlZmluZSBDRkdfREVWMV9TUEFDRQkJKENGR19ERVYwX1NQQUNFICsgQ0ZHX0RFVjBfU0laRSkJLyogREVWX0NTMSBkZXZpY2UgbW9kdWwgcmVhbCB0aW1lIGNsb2NrIChydGMpICovCi0jZGVmaW5lIENGR19ERVYyX1NQQUNFCQkoQ0ZHX0RFVjFfU1BBQ0UgKyBDRkdfREVWMV9TSVpFKQkvKiBERVZfQ1MyIGRldmljZSBtb2R1bCBkb3ViZWwgdWFydCAoZHVhcnQpICovCi0jZGVmaW5lIENGR19ERVYzX1NQQUNFCQkoQ0ZHX0RFVjJfU1BBQ0UgKyBDRkdfREVWMl9TSVpFKQkvKiBERVZfQ1MzIGRldmljZSBtb2R1bCBsYXJnZSBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjBfU1BBQ0UJCUNPTkZJR19TWVNfREVWX0JBU0UJCQkJLyogREVWX0NTMCBkZXZpY2UgbW9kdWwgc3JhbSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjFfU1BBQ0UJCShDT05GSUdfU1lTX0RFVjBfU1BBQ0UgKyBDT05GSUdfU1lTX0RFVjBfU0laRSkJLyogREVWX0NTMSBkZXZpY2UgbW9kdWwgcmVhbCB0aW1lIGNsb2NrIChydGMpICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9TUEFDRQkJKENPTkZJR19TWVNfREVWMV9TUEFDRSArIENPTkZJR19TWVNfREVWMV9TSVpFKQkvKiBERVZfQ1MyIGRldmljZSBtb2R1bCBkb3ViZWwgdWFydCAoZHVhcnQpICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWM19TUEFDRQkJKENPTkZJR19TWVNfREVWMl9TUEFDRSArIENPTkZJR19TWVNfREVWMl9TSVpFKQkvKiBERVZfQ1MzIGRldmljZSBtb2R1bCBsYXJnZSBmbGFzaCAqLwogCi0jZGVmaW5lIENGR19ERVYwX1NJWkUJCSBfOE0JCQkJCS8qIGRiNjQ0NjAgc3JhbQkgQCAweGZjMDAuMDAwMCAqLwotI2RlZmluZSBDRkdfREVWMV9TSVpFCQkgXzhNCQkJCQkvKiBkYjY0NDYwIHJ0YwkgQCAweGZjODAuMDAwMCAqLwotI2RlZmluZSBDRkdfREVWMl9TSVpFCQlfMTZNCQkJCQkvKiBkYjY0NDYwIGR1YXJ0IEAgMHhmZDAwLjAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0RFVjNfU0laRQkJXzE2TQkJCQkJLyogZGI2NDQ2MCBmbGFzaCBAIDB4ZmUwMC4wMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMF9TSVpFCQkgXzhNCQkJCQkvKiBkYjY0NDYwIHNyYW0JIEAgMHhmYzAwLjAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYxX1NJWkUJCSBfOE0JCQkJCS8qIGRiNjQ0NjAgcnRjCSBAIDB4ZmM4MC4wMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9TSVpFCQlfMTZNCQkJCQkvKiBkYjY0NDYwIGR1YXJ0IEAgMHhmZDAwLjAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYzX1NJWkUJCV8xNk0JCQkJCS8qIGRiNjQ0NjAgZmxhc2ggQCAweGZlMDAuMDAwMCAqLwogLyorKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKi8KIAogLyogUmVzZXQgdmFsdWVzIGZvciBQb3J0IGJlaGF2aW9yICg4Yml0LyAzMmJpdCwgZXRjLikgb25seSBjb3JyZWN0ZWQgYnkgZGV2aWNlIHdpZHRoICovCi0jZGVmaW5lIENGR19ERVYwX1BBUgkJMHg4RkVGRkZGRgkJCQkvKiAzMkJpdCAgc3JhbSAqLwotI2RlZmluZSBDRkdfREVWMV9QQVIJCTB4OEZDRkZGRkYJCQkJLyogOEJpdAkgcnRjICovCi0jZGVmaW5lIENGR19ERVYyX1BBUgkJMHg4RkNGRkZGRgkJCQkvKiA4Qml0IGR1YXJ0ICovCi0jZGVmaW5lIENGR184QklUX0JPT1RfUEFSCTB4OEZDRkZGRkYJCQkJLyogOEJpdCBmbGFzaCAqLwotI2RlZmluZSBDRkdfMzJCSVRfQk9PVF9QQVIJMHg4RkVGRkZGRgkJCQkvKiAzMkJpdCBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjBfUEFSCQkweDhGRUZGRkZGCQkJCS8qIDMyQml0ICBzcmFtICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMV9QQVIJCTB4OEZDRkZGRkYJCQkJLyogOEJpdAkgcnRjICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9QQVIJCTB4OEZDRkZGRkYJCQkJLyogOEJpdCBkdWFydCAqLworI2RlZmluZSBDT05GSUdfU1lTXzhCSVRfQk9PVF9QQVIJMHg4RkNGRkZGRgkJCQkvKiA4Qml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIJMHg4RkVGRkZGRgkJCQkvKiAzMkJpdCBmbGFzaCAqLwogCiAJLyogICBjCSAgNCAgICBhICAgICAgOAkgICAgMgkgIDQgICAgMSAgICAgIGMJCSovCiAJLyogMzMgMjJ8MjIyMnwyMiAyMnwxMTEgMXwxMSAxMXwxIDEgIHwJICB8CQkqLwpAQCAtMzc0LDI4ICszNzQsMjggQEAKIAogCiAvKiByb25lbiAtIHVwZGF0ZSBNUFAgQ29udHJvbCBNVjY0NDYwKi8KLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzAJMHgwMjIyMjIyMgotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMQkweDExMzMzMDExCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8yCTB4NDA0MzExMTEKLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzMJMHgwMDAwMDA0NAorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzAJMHgwMjIyMjIyMgorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzEJMHgxMTMzMzAxMQorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzIJMHg0MDQzMTExMQorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzMJMHgwMDAwMDA0NAogCi0vKiMgZGVmaW5lIENGR19TRVJJQUxfUE9SVF9NVVgJMHgwMDAwMDEwMgkgMD1oaVoJMT1NUFNDMCAyPUVUSCAwIGFuZCAyIFJNSUkgKi8KKy8qIyBkZWZpbmUgQ09ORklHX1NZU19TRVJJQUxfUE9SVF9NVVgJMHgwMDAwMDEwMgkgMD1oaVoJMT1NUFNDMCAyPUVUSCAwIGFuZCAyIFJNSUkgKi8KIAogCi0jIGRlZmluZSBDRkdfR1BQX0xFVkVMX0NPTlRST0wJMHgyYzYwMDAwMAkvKiAxMTExIDEwMDEgMDAwMCAxMTExIDExMDAgMDAwMCAwMDAwIDAwMDAqLworIyBkZWZpbmUgQ09ORklHX1NZU19HUFBfTEVWRUxfQ09OVFJPTAkweDJjNjAwMDAwCS8qIDExMTEgMTAwMSAwMDAwIDExMTEgMTEwMCAwMDAwIDAwMDAgMDAwMCovCiAJCQkJCQkJLyogZ3BwWzMxXQkJZ3BwWzMwXQkJZ3BwWzI5XQkJZ3BwWzI4XSAqLwogCQkJCS8qIGdwcFsyN10JCQlncHBbMjRdKi8KIAkJCQkJCQkvKiBncHBbMTk6MTRdICovCiAKIC8qIHNldHVwIG5ldyBjb25maWdfdmFsdWUgZm9yIE1WNjQ0NjAgRERSLVJBTSAhISAqLwotIyBkZWZpbmUgQ0ZHX1NEUkFNX0NPTkZJRwkweDU4MjAwNDAwCS8qIDB4MTQwMCAgY29waWVkIGZyb20gRGluazMyIGJ6dy4gVnhXb3JrcyovCisjIGRlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NPTkZJRwkweDU4MjAwNDAwCS8qIDB4MTQwMCAgY29waWVkIGZyb20gRGluazMyIGJ6dy4gVnhXb3JrcyovCiAKLSNkZWZpbmUgQ0ZHX0RVQVJUX0lPCQlDRkdfREVWMl9TUEFDRQotI2RlZmluZSBDRkdfRFVBUlRfQ0hBTgkJMQkJLyogY2hhbm5lbCB0byB1c2UgZm9yIGNvbnNvbGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfQ0hBTjEKLSNkZWZpbmUgQ0ZHX0lOSVRfQ0hBTjIKKyNkZWZpbmUgQ09ORklHX1NZU19EVUFSVF9JTwkJQ09ORklHX1NZU19ERVYyX1NQQUNFCisjZGVmaW5lIENPTkZJR19TWVNfRFVBUlRfQ0hBTgkJMQkJLyogY2hhbm5lbCB0byB1c2UgZm9yIGNvbnNvbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0NIQU4xCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9DSEFOMgogCi0jZGVmaW5lIFNSQU1fQkFTRQkJQ0ZHX0RFVjBfU1BBQ0UKKyNkZWZpbmUgU1JBTV9CQVNFCQlDT05GSUdfU1lTX0RFVjBfU1BBQ0UKICNkZWZpbmUgU1JBTV9TSVpFCQkweDAwMTAwMDAwCQkvKiAxIE1CIG9mIHNyYW0gKi8KIAogCkBAIC00MTQsMjkgKzQxNCwyOSBAQAogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAJCQkvKiByb25lbiAtIFN1cHBvcnQgZm9yIEludGVsIDgyNTU3LzgyNTU5LzgyNTU5RVIgY2hpcHMgKi8KIAogLyogUENJIE1FTU9SWSBNQVAgc2VjdGlvbiAqLwotI2RlZmluZSBDRkdfUENJMF9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX01FTV9TSVpFCV8xMjhNCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODgwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJXzEyOE0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9TSVpFCV8xMjhNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDg4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQlfMTI4TQogCi0jZGVmaW5lIENGR19QQ0kwXzBfTUVNX1NQQUNFCShDRkdfUENJMF9NRU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UJKENGR19QQ0kxX01FTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UpCiAKIC8qIFBDSSBJL08gTUFQIHNlY3Rpb24gKi8KLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fQkFTRQkweGZhMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX0lPX1NJWkUJXzE2TQotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4ZmIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQlfMTZNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19CQVNFCTB4ZmEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUJXzE2TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweGZiMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCV8xNk0KIAotI2RlZmluZSBDRkdfUENJMF9JT19TUEFDRQkoQ0ZHX1BDSTBfSU9fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fU1BBQ0VfUENJCShDRkdfUENJMF9JT19CQVNFKSAvKiByb25lbiB3ZSB3YW50IHBoeT1idXMgMHgwMDAwMDAwMCAqLwotI2RlZmluZSBDRkdfUENJMV9JT19TUEFDRQkoQ0ZHX1BDSTFfSU9fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU1BBQ0VfUENJCShDRkdfUENJMV9JT19CQVNFKSAvKiByb25lbiB3ZSB3YW50IHBoeT1idXMgMHgwMDAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9JT19CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0VfUENJCShDT05GSUdfU1lTX1BDSTBfSU9fQkFTRSkgLyogcm9uZW4gd2Ugd2FudCBwaHk9YnVzIDB4MDAwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFX1BDSQkoQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UpIC8qIHJvbmVuIHdlIHdhbnQgcGh5PWJ1cyAweDAwMDAwMDAwICovCiAKICNpZiBkZWZpbmVkIChDT05GSUdfNzUwQ1gpCi0jZGVmaW5lIENGR19QQ0lfSURTRUwgMHgwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lEU0VMIDB4MAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1BDSV9JRFNFTCAweDMwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lEU0VMIDB4MzAKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIEJBVCBtYXBwaW5ncwpAQCAtNDQ4LDI4ICs0NDgsMjggQEAKICAqLwogCiAvKiBTRFJBTSAqLwotI2RlZmluZSBDRkdfSUJBVDBMIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQwVSAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDBVIENGR19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUgQ09ORklHX1NZU19JQkFUMFUKIAogLyogaW5pdCByYW0gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzI1NksgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQxTCAgQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVICBDRkdfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVSAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMjU2SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTCAgQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUgIENPTkZJR19TWVNfSUJBVDFVCiAKIC8qIFBDSTAsIFBDSTEgaW4gb25lIEJBVCAqLwotI2RlZmluZSBDRkdfSUJBVDJMIEJBVExfTk9fQUNDRVNTCi0jZGVmaW5lIENGR19JQkFUMlUgQ0ZHX0RCQVQyVQotI2RlZmluZSBDRkdfREJBVDJMIChDRkdfUENJMF9NRU1fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMlUgKENGR19QQ0kwX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMIEJBVExfTk9fQUNDRVNTCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVIENPTkZJR19TWVNfREJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMIChDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVSAoQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIEdUIHJlZ3MsIGJvb3Ryb20sIGFsbCB0aGUgZGV2aWNlcywgUENJIEkvTyAqLwotI2RlZmluZSBDRkdfSUJBVDNMIChDRkdfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVykKLSNkZWZpbmUgQ0ZHX0lCQVQzVSAoQ0ZHX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRVX1ZTIHwgQkFUVV9WUCB8IEJBVFVfQkxfMjU2TSkKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAoQ0ZHX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDNVIENGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wgKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVykKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRSB8IEJBVFVfVlMgfCBCQVRVX1ZQIHwgQkFUVV9CTF8yNTZNKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTCAoQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UgQ09ORklHX1NZU19JQkFUM1UKIAogLyogSTJDIGFkZHJlc3NlcyBmb3IgdGhlIHR3byBESU1NIFNQRCBjaGlwcyAqLwogI2RlZmluZSBESU1NMF9JMkNfQUREUgkweDU2CkBAIC00ODAsMzUgKzQ4MCwzNSBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoODw8MjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4PDwyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0VYVFJBX0ZMQVNIX0RFVklDRQlERVZJQ0UzIC8qIGV4dHJhIGZsYXNoIGF0IGRldmljZSAzICovCi0jZGVmaW5lIENGR19FWFRSQV9GTEFTSF9XSURUSAk0CS8qIDMyIGJpdCAqLwotI2RlZmluZSBDRkdfQk9PVF9GTEFTSF9XSURUSAkxCS8qIDggYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUkFfRkxBU0hfREVWSUNFCURFVklDRTMgLyogZXh0cmEgZmxhc2ggYXQgZGV2aWNlIDMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRSQV9GTEFTSF9XSURUSAk0CS8qIDMyIGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfRkxBU0hfV0lEVEgJMQkvKiA4IGJpdCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIExvY2sgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIExvY2sgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkgICAgICAweEZGRjc4MDAwIC8qIE1hcnZlbGwgOC1CaXQgQm9vdGZsYXNoIGxhc3Qgc2VjdG9yICovCi0vKiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkgICAoQ0ZHX0ZMQVNIX0JBU0UrQ0ZHX01PTklUT1JfTEVOLUNPTkZJR19FTlZfU0VDVF9TSVpFKSAqLworLyogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJICAgKENPTkZJR19TWVNfRkxBU0hfQkFTRStDT05GSUdfU1lTX01PTklUT1JfTEVOLUNPTkZJR19FTlZfU0VDVF9TSVpFKSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBhbGwgTVBDNzR4eCBDUFVzCQkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgYWxsIE1QQzc0eHggQ1BVcwkJICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTE2LDcgKzUxNiw3IEBACiAgKiBsb29rIGluIGluY2x1ZGUvbXBjNzR4eC5oIGZvciB0aGUgZGVmaW5lcyB1c2VkIGhlcmUKICAqLwogCi0jZGVmaW5lIENGR19MMgorI2RlZmluZSBDT05GSUdfU1lTX0wyCiAKIAogI2lmIGRlZmluZWQgKENPTkZJR183NTBDWCkgfHwgZGVmaW5lZCAoQ09ORklHXzc1MEZYKQpAQCAtNTQwLDYgKzU0MCw2IEBACiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJMHgwMQkJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkweDAyCQkvKiBTb2Z0d2FyZSByZWJvb3QJCSAgICAqLwogCi0jZGVmaW5lIENGR19CT0FSRF9BU01fSU5JVAkxCisjZGVmaW5lIENPTkZJR19TWVNfQk9BUkRfQVNNX0lOSVQJMQogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0RLMUMyMC5oIGIvaW5jbHVkZS9jb25maWdzL0RLMUMyMC5oCmluZGV4IDNlMWZjMGEuLjZmZGM1NjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ESzFDMjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvREsxQzIwLmgKQEAgLTQwLDcgKzQwLDcgQEAKICNlbGlmCWRlZmluZWQoQ09ORklHX05JT1NfU1RBTkRBUkRfMzIpCiAjaW5jbHVkZSA8Y29uZmlncy9ESzFDMjBfc3RhbmRhcmRfMzIuaD4KICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgcmlnaHQgTklPUyBDUFUgY29uZmlndXJhdGlvbgorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCByaWdodCBOSU9TIENQVSBjb25maWd1cmF0aW9uCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ4LDI2ICs0OCwyNiBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNkZWZpbmUgQ09ORklHX05JT1MJCTEJCS8qIE5JT1MtMzIgY29yZQkJKi8KICNkZWZpbmUJQ09ORklHX0RLMUMyMAkJMQkJLyogQ3ljbG9uZSBESy0xQzIwIGJvYXJkKi8KLSNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQlDRkdfTklPU19DUFVfQ0xLLyogNTAgTUh6IGNvcmUgY2xvY2sJKi8KLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkJLyogMSBtc2VjIHRpbWUgdGljawkqLwotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgorI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCUNPTkZJR19TWVNfTklPU19DUFVfQ0xLLyogNTAgTUh6IGNvcmUgY2xvY2sJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIDEgbXNlYyB0aW1lIHRpY2sJKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCiAjZGVmaW5lCUNPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgMQkvKiBlbmFibGUgZWFybHkgYm9hcmQtc3BlYy4gaW5pdCovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQVNFIEFERFJFU1NFUyAvIFNJWkUgKEZsYXNoLCBTUkFNLCBTRFJBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9TRFJBTV9TSVpFICE9IDApCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fU0laRSAhPSAwKQogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfTklPU19DUFVfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJQ0ZHX05JT1NfQ1BVX1NEUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX1NJWkUKIAogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhbnkgU0RSQU0gaW4gTklPUyBDUFUgY29uZmlnCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGFueSBTRFJBTSBpbiBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCi0jZGVmaW5lIENGR19TUkFNX0JBU0UJCUNGR19OSU9TX0NQVV9TUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX1NSQU1fU0laRQkJQ0ZHX05JT1NfQ1BVX1NSQU1fU0laRQotI2RlZmluZSBDRkdfVkVDVF9CQVNFCQlDRkdfTklPU19DUFVfVkVDX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX0JBU0UJCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU1JBTV9TSVpFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1ZFQ1RfQkFTRQkJQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTUVNT1JZIE9SR0FOSVpBVElPTiAtIEZvciB0aGUgbW9zdCBwYXJ0LCB5b3UgY2FuIHB1dCB0aGluZ3MgcHJldHR5CkBAIC04MCwzOSArODAsMzkgQEAKICAqCS1HbG9iYWwgZGF0YSBpcyBwbGFjZWQgYmVsb3cgdGhlIGhlYXAuCiAgKgktVGhlIHN0YWNrIGlzIHBsYWNlZCBiZWxvdyBnbG9iYWwgZGF0YSAoJmdyb3dzIGRvd24pLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTZrCQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIEdsb2JhbCBkYXRhIHNpemUgcnN2ZCovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NmsJCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIEdsb2JhbCBkYXRhIHNpemUgcnN2ZCovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfQkFTRQkJKENGR19NT05JVE9SX0JBU0UgLSBDRkdfTUFMTE9DX0xFTikKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX01BTExPQ19CQVNFIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQCQlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19CQVNFCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfU1lTX01BTExPQ19MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX01BTExPQ19CQVNFIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1AJCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCAoQU0yOUxWMDY1RCkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9GTEFTSF9TSVpFICE9IDApCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfU0laRSAhPSAwKQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfTklPU19DUFVfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJQ0ZHX05JT1NfQ1BVX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogTWF4ICMgc2VjdHMgcGVyIGJhbmsgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAJCS8qIFdyaXRlIHRpbWVvdXQgKG1zZWMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgkvKiBmbGFzaCB3b3JkIHNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQlDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIE1heCAjIHNlY3RzIHBlciBiYW5rICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIE1heCAjIG9mIGZsYXNoIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwCQkvKiBXcml0ZSB0aW1lb3V0IChtc2VjKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCS8qIGZsYXNoIHdvcmQgc2l6ZQkqLwogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGFueSBGbGFzaCBtZW1vcnkgaW4gTklPUyBDUFUgY29uZmlnCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGFueSBGbGFzaCBtZW1vcnkgaW4gTklPUyBDUFUgY29uZmlnCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVOVklST05NRU5UCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmCShDRkdfTklPU19DUFVfRkxBU0hfU0laRSAhPSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUgIT0gMCkKIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEJCS8qIEVudmlyb25tZW50IGluIGZsYXNoICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJQ0ZHX0ZMQVNIX0JBU0UJLyogTWVtIGFkZHIgb2YgZW52CSovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIE1lbSBhZGRyIG9mIGVudgkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCSg2NCAqIDEwMjQpCS8qIDY0IEtCeXRlICgxIHNlY3RvcikJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJCQkvKiBTZXJpYWwvZXRoIGNoYW5nZSBPayAqLwogCkBAIC0xMjMsMTIwICsxMjMsMTIwIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ09OU09MRQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX1VBUlRfTlVNUyAhPSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlRfTlVNUyAhPSAwKQogCi0jZGVmaW5lIENGR19OSU9TX0NPTlNPTEUJQ0ZHX05JT1NfQ1BVX1VBUlQwIC8qIDFzdCBVQVJUIGlzIENvbnMuICovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19DT05TT0xFCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDAgLyogMXN0IFVBUlQgaXMgQ29ucy4gKi8KIAotI2lmCShDRkdfTklPU19DUFVfVUFSVDBfQlIgIT0gMCkKLSNkZWZpbmUgQ0ZHX05JT1NfRklYRURCQVVECTEJCSAgIC8qIEJhdWRyYXRlIGlzIGZpeGVkCSovCi0jZGVmaW5lIENPTkZJR19CQVVEUkFURQkJQ0ZHX05JT1NfQ1BVX1VBUlQwX0JSCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfQlIgIT0gMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0ZJWEVEQkFVRAkxCQkgICAvKiBCYXVkcmF0ZSBpcyBmaXhlZAkqLworI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfQlIKICNlbHNlCi0jdW5kZWYJQ0ZHX05JT1NfRklYRURCQVVECisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0ZJWEVEQkFVRAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYXQgbGVhc3Qgb25lIFVBUlQgaW4gTklPUyBDUFUgY29uZmlnCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGF0IGxlYXN0IG9uZSBVQVJUIGluIE5JT1MgQ1BVIGNvbmZpZwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUSU1FUiBGT1IgVElNRUJBU0UgLS0gTmlvcyBkb2Vzbid0IGhhdmUgdGhlIGVxdWl2YWxlbnQgb2YgcHBjICBQSVQsCiAgKiBzbyBhbiBhdmFsb24gYnVzIHRpbWVyIGlzIHJlcXVpcmVkLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX1RJTUVSX05VTVMgIT0gMCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUl9OVU1TICE9IDApCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIgPT0gMCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9USUNLX1RJTUVSID09IDApCiAKLSNkZWZpbmUgQ0ZHX05JT1NfVE1SQkFTRQlDRkdfTklPU19DUFVfVElNRVIwIC8qIFRJTUVSMCBhcyB0aWNrCSovCi0jZGVmaW5lIENGR19OSU9TX1RNUklSUQkJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9JUlEKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUkJBU0UJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjAgLyogVElNRVIwIGFzIHRpY2sJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUklSUQkJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfSVJRCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1RJTUVSMF9GUCA9PSAxKQkJICAgIC8qIGZpeGVkIHBlcmlvZCAqLworI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9GUCA9PSAxKQkJICAgIC8qIGZpeGVkIHBlcmlvZCAqLwogCi0jaWYJKENGR19OSU9TX0NQVV9USU1FUjBfUEVSID49IENGR19IWikKLSNkZWZpbmUgQ0ZHX05JT1NfVE1STVMJCShDRkdfTklPU19DUFVfVElNRVIwX1BFUiAvIENGR19IWikKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfUEVSID49IENPTkZJR19TWVNfSFopCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJNUwkJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX1BFUiAvIENPTkZJR19TWVNfSFopCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHVzZSBhIHRpbWVyIHBlcmlvZGUgZ3JlYXRlciB0aGFuIENGR19IWgorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byB1c2UgYSB0aW1lciBwZXJpb2RlIGdyZWF0ZXIgdGhhbiBDT05GSUdfU1lTX0haCiAjZW5kaWYKIAotI3VuZGVmCUNGR19OSU9TX1RNUkNOVAkvKiBubyBwcmVsb2FkYWJsZSBjb3VudGVyIHZhbHVlICovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX1RNUkNOVAkvKiBubyBwcmVsb2FkYWJsZSBjb3VudGVyIHZhbHVlICovCiAKLSNlbGlmCShDRkdfTklPU19DUFVfVElNRVIwX0ZQID09IDApCQkgICAgLyogdmFyaWFibGUgcGVyaW9kICovCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfRlAgPT0gMCkJCSAgICAvKiB2YXJpYWJsZSBwZXJpb2QgKi8KIAotI2lmCShDRkdfSFogPD0gMTAwMCkKLSNkZWZpbmUgQ0ZHX05JT1NfVE1STVMJCSgxMDAwIC8gQ0ZHX0haKQorI2lmCShDT05GSUdfU1lTX0haIDw9IDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJNUwkJKDEwMDAgLyBDT05GSUdfU1lTX0haKQogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzb3JyeSwgQ0ZHX0haIGhhdmUgdG8gYmUgbGVzcyB0aGFuIDEwMDAKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc29ycnksIENPTkZJR19TWVNfSFogaGF2ZSB0byBiZSBsZXNzIHRoYW4gMTAwMAogI2VuZGlmCiAKLSNkZWZpbmUJQ0ZHX05JT1NfVE1SQ05UCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIENGR19IWikKKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX1RNUkNOVAkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBDT05GSUdfU1lTX0haKQogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIGRlZmluZSBDRkdfTklPU19DUFVfVElNRVIwX0ZQIGNvcnJlY3QKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gZGVmaW5lIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0ZQIGNvcnJlY3QKICNlbmRpZgogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIgPT0gMSkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJQ0tfVElNRVIgPT0gMSkKIAotI2RlZmluZSBDRkdfTklPU19UTVJCQVNFCUNGR19OSU9TX0NQVV9USU1FUjEgLyogVElNRVIxIGFzIHRpY2sJKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1SSVJRCQlDRkdfTklPU19DUFVfVElNRVIxX0lSUQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMSAvKiBUSU1FUjEgYXMgdGljawkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SSVJRCQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9JUlEKIAotI2lmCShDRkdfTklPU19DUFVfVElNRVIxX0ZQID09IDEpCQkgICAgLyogZml4ZWQgcGVyaW9kICovCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX0ZQID09IDEpCQkgICAgLyogZml4ZWQgcGVyaW9kICovCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1RJTUVSMV9QRVIgPj0gQ0ZHX0haKQotI2RlZmluZSBDRkdfTklPU19UTVJNUwkJKENGR19OSU9TX0NQVV9USU1FUjFfUEVSIC8gQ0ZHX0haKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9QRVIgPj0gQ09ORklHX1NZU19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUk1TCQkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfUEVSIC8gQ09ORklHX1NZU19IWikKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gdXNlIGEgdGltZXIgcGVyaW9kZSBncmVhdGVyIHRoYW4gQ0ZHX0haCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHVzZSBhIHRpbWVyIHBlcmlvZGUgZ3JlYXRlciB0aGFuIENPTkZJR19TWVNfSFoKICNlbmRpZgogCi0jdW5kZWYJQ0ZHX05JT1NfVE1SQ05UCS8qIG5vIHByZWxvYWRhYmxlIGNvdW50ZXIgdmFsdWUgKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfVE1SQ05UCS8qIG5vIHByZWxvYWRhYmxlIGNvdW50ZXIgdmFsdWUgKi8KIAotI2VsaWYJKENGR19OSU9TX0NQVV9USU1FUjFfRlAgPT0gMCkJCSAgICAvKiB2YXJpYWJsZSBwZXJpb2QgKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9GUCA9PSAwKQkJICAgIC8qIHZhcmlhYmxlIHBlcmlvZCAqLwogCi0jaWYJKENGR19IWiA8PSAxMDAwKQotI2RlZmluZSBDRkdfTklPU19UTVJNUwkJKDEwMDAgLyBDRkdfSFopCisjaWYJKENPTkZJR19TWVNfSFogPD0gMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUk1TCQkoMTAwMCAvIENPTkZJR19TWVNfSFopCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNvcnJ5LCBDRkdfSFogaGF2ZSB0byBiZSBsZXNzIHRoYW4gMTAwMAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzb3JyeSwgQ09ORklHX1NZU19IWiBoYXZlIHRvIGJlIGxlc3MgdGhhbiAxMDAwCiAjZW5kaWYKIAotI2RlZmluZQlDRkdfTklPU19UTVJDTlQJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gQ0ZHX0haKQorI2RlZmluZQlDT05GSUdfU1lTX05JT1NfVE1SQ05UCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIENPTkZJR19TWVNfSFopCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gZGVmaW5lIENGR19OSU9TX0NQVV9USU1FUjFfRlAgY29ycmVjdAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfRlAgY29ycmVjdAogI2VuZGlmCiAKLSNlbmRpZgkvKiBDRkdfTklPU19DUFVfVElDS19USU1FUiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUiAqLwogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGF0IGxlYXN0IG9uZSBUSU1FUiBpbiBOSU9TIENQVSBjb25maWcKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYXQgbGVhc3Qgb25lIFRJTUVSIGluIE5JT1MgQ1BVIGNvbmZpZwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFdGhlcm5ldAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX0xBTl9OVU1TID09IDEpCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfTEFOX05VTVMgPT0gMSkKIAotI2lmCShDRkdfTklPU19DUFVfTEFOMF9UWVBFID09IDApCQkvKiBMQU45MUMxMTEJCSovCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9UWVBFID09IDApCQkvKiBMQU45MUMxMTEJCSovCiAKICNkZWZpbmUJQ09ORklHX0RSSVZFUl9TTUM5MTExMQkJCS8qIFVzaW5nIFNNQzkxYzExMQkqLwogI3VuZGVmCUNPTkZJR19TTUM5MTExMV9FWFRfUEhZCQkJLyogSW50ZXJuYWwgUEhZCQkqLwotI2RlZmluZQlDT05GSUdfU01DOTExMTFfQkFTRQkoQ0ZHX05JT1NfQ1BVX0xBTjBfQkFTRSArIENGR19OSU9TX0NQVV9MQU4wX09GRlMpCisjZGVmaW5lCUNPTkZJR19TTUM5MTExMV9CQVNFCShDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfQkFTRSArIENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9PRkZTKQogCi0jaWYJKENGR19OSU9TX0NQVV9MQU4wX0JVU1cgPT0gMzIpCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CVVNXID09IDMyKQogI2RlZmluZQlDT05GSUdfU01DX1VTRV8zMl9CSVQJMQogI2Vsc2UJLyogbm8gKi8KICN1bmRlZglDT05GSUdfU01DX1VTRV8zMl9CSVQKICNlbmRpZgogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xBTjBfVFlQRSA9PSAxKQkJLyogQ1M4OTAwQQkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfVFlQRSA9PSAxKQkJLyogQ1M4OTAwQQkJKi8KIAogCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAkvKiAhISEgQ1M4OTAwIGlzIF9fbm90X18gdGVzdGVkIG9uIE5JT1MgISEhICovCiAJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogI2RlZmluZQlDT05GSUdfRFJJVkVSX0NTODkwMAkJCS8qIFVzaW5nIENTODkwMAkJKi8KLSNkZWZpbmUJQ1M4OTAwX0JBU0UJCShDRkdfTklPU19DUFVfTEFOMF9CQVNFICsgQ0ZHX05JT1NfQ1BVX0xBTjBfT0ZGUykKKyNkZWZpbmUJQ1M4OTAwX0JBU0UJCShDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfQkFTRSArIENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9PRkZTKQogCi0jaWYJKENGR19OSU9TX0NQVV9MQU4wX0JVU1cgPT0gMzIpCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CVVNXID09IDMyKQogI3VuZGVmCUNTODkwMF9CVVMxNgogI2RlZmluZQlDUzg5MDBfQlVTMzIJCTEKICNlbHNlCS8qIG5vICovCkBAIC0yNDUsNyArMjQ1LDcgQEAKICNlbmRpZgogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IGludmFsaWQgTEFOMCBjaGlwIHR5cGUsIGNoZWNrIHlvdXIgTklPUyBDUFUgY29uZmlnCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IGludmFsaWQgTEFOMCBjaGlwIHR5cGUsIGNoZWNrIHlvdXIgTklPUyBDUFUgY29uZmlnCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfRVRIQUREUgkJMDg6MDA6M2U6MjY6MGE6NWIKQEAgLTI1NCw2NCArMjU0LDY0IEBACiAjZGVmaW5lIENPTkZJR19TRVJWRVJJUAkJMTkyLjE2OC4yLjE2CiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAganVzdCBvbmUgTEFOIG9ubHkgb3IgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAganVzdCBvbmUgTEFOIG9ubHkgb3IgZXhwYW5kIHlvdXIgY29uZmlnLmgKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU1RBVFVTIExFRHMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9QSU9fTlVNUyAhPSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1BJT19OVU1TICE9IDApCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gMCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPID09IDApCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzdGF0dXMgTEVEcyBhdCBQSU8wIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzAgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKIAotI2VsaWYJKENGR19OSU9TX0NQVV9MRURfUElPID09IDEpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPID09IDEpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzdGF0dXMgTEVEcyBhdCBQSU8xIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzEgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKIAotI2VsaWYJKENGR19OSU9TX0NQVV9MRURfUElPID09IDIpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPID09IDIpCiAKLSNkZWZpbmUJU1RBVFVTX0xFRF9CQVNFCQkJQ0ZHX05JT1NfQ1BVX1BJTzIKLSNkZWZpbmUJU1RBVFVTX0xFRF9CSVRTCQkJQ0ZHX05JT1NfQ1BVX1BJTzJfQklUUworI2RlZmluZQlTVEFUVVNfTEVEX0JBU0UJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzIKKyNkZWZpbmUJU1RBVFVTX0xFRF9CSVRTCQkJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0JJVFMKICNkZWZpbmUJU1RBVFVTX0xFRF9BQ1RJVkUJCTEgLyogTEVEIG9uIGZvciBiaXQgPT0gMSAqLwogCi0jaWYJKENGR19OSU9TX0NQVV9QSU8yX1RZUEUgPT0gMSkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX1RZUEUgPT0gMSkKICNkZWZpbmUJU1RBVFVTX0xFRF9XUk9OTFkJCTEKICNlbHNlCiAjdW5kZWYJU1RBVFVTX0xFRF9XUk9OTFkKICNlbmRpZgogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gMykKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gMykKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzMgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPMyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNCkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzQgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNSkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzUgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNikKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNikKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzYgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNiBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNykKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNykKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzcgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gOCkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gOCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzggbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPOCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gOSkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gOSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzkgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPOSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldCBDRkdfTklPU19DUFVfTEVEX1BJTyBpbiByaWdodCBjYXNlCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldCBDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gaW4gcmlnaHQgY2FzZQogI2VuZGlmCiAKICNkZWZpbmUJQ09ORklHX1NUQVRVU19MRUQJCTEgLyogZW5hYmxlIHN0YXR1cyBsZWQgZHJpdmVyICovCkBAIC0zMTksODkgKzMxOSw4OSBAQAogI2RlZmluZQlTVEFUVVNfTEVEX0JJVAkJCSgxIDw8IDApCS8qIExFRFswXSAqLwogI2RlZmluZQlTVEFUVVNfTEVEX1NUQVRFCQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAjZGVmaW5lCVNUQVRVU19MRURfQk9PVF9TVEFURQkJU1RBVFVTX0xFRF9PRkYKLSNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QJCShDRkdfSFogLyAxMCkJLyogY2EuIDEgSHogKi8KKyNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QJCShDT05GSUdfU1lTX0haIC8gMTApCS8qIGNhLiAxIEh6ICovCiAjZGVmaW5lCVNUQVRVU19MRURfQk9PVAkJCTAJCS8qIGJvb3QgTEVEICovCiAKICNpZgkoU1RBVFVTX0xFRF9CSVRTID4gMSkKICNkZWZpbmUJU1RBVFVTX0xFRF9CSVQxCQkJKDEgPDwgMSkJLyogTEVEWzFdICovCiAjZGVmaW5lCVNUQVRVU19MRURfU1RBVEUxCQlTVEFUVVNfTEVEX09GRgotI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDEJCShDRkdfSFogLyA1MCkJLyogY2EuIDUgSHogKi8KKyNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QxCQkoQ09ORklHX1NZU19IWiAvIDUwKQkvKiBjYS4gNSBIeiAqLwogI2RlZmluZQlTVEFUVVNfTEVEX1JFRAkJCTEJCS8qIGZhaWwgTEVEICovCiAjZW5kaWYKIAogI2lmCShTVEFUVVNfTEVEX0JJVFMgPiAyKQogI2RlZmluZQlTVEFUVVNfTEVEX0JJVDIJCQkoMSA8PCAyKQkvKiBMRURbMl0gKi8KICNkZWZpbmUJU1RBVFVTX0xFRF9TVEFURTIJCVNUQVRVU19MRURfT0ZGCi0jZGVmaW5lCVNUQVRVU19MRURfUEVSSU9EMgkJKENGR19IWiAvIDEwKQkvKiBjYS4gMSBIeiAqLworI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDIJCShDT05GSUdfU1lTX0haIC8gMTApCS8qIGNhLiAxIEh6ICovCiAjZGVmaW5lCVNUQVRVU19MRURfWUVMTE9XCQkyCQkvKiBpbmZvIExFRCAqLwogI2VuZGlmCiAKICNpZgkoU1RBVFVTX0xFRF9CSVRTID4gMykKICNkZWZpbmUJU1RBVFVTX0xFRF9CSVQzCQkJKDEgPDwgMykJLyogTEVEWzNdICovCiAjZGVmaW5lCVNUQVRVU19MRURfU1RBVEUzCQlTVEFUVVNfTEVEX09GRgotI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDMJCShDRkdfSFogLyAxMCkJLyogY2EuIDEgSHogKi8KKyNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QzCQkoQ09ORklHX1NZU19IWiAvIDEwKQkvKiBjYS4gMSBIeiAqLwogI2RlZmluZQlTVEFUVVNfTEVEX0dSRUVOCQkzCQkvKiBpbmZvIExFRCAqLwogI2VuZGlmCiAKICNkZWZpbmUJU1RBVFVTX0xFRF9QQVIJCQkxIC8qIG1ha2VzIHN0YXR1c19sZWQuaCBoYXBweSAqLwogCi0jZW5kaWYJLyogQ0ZHX05JT1NfQ1BVX1BJT19OVU1TICovCisjZW5kaWYJLyogQ09ORklHX1NZU19OSU9TX0NQVV9QSU9fTlVNUyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0VWRU4gU0VHTUVOVCBMRUQgRElTUExBWQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX1BJT19OVU1TICE9IDApCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfUElPX05VTVMgIT0gMCkKIAotI2lmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDApCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDApCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPMCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPMCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSAxKQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDEpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPMSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPMSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSAyKQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDIpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPMiBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPMiBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSAzKQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDMpCiAKLSNkZWZpbmUJU0VWRU5TRUdfQkFTRQkJCUNGR19OSU9TX0NQVV9QSU8zCi0jZGVmaW5lCVNFVkVOU0VHX0JJVFMJCQlDRkdfTklPU19DUFVfUElPM19CSVRTCisjZGVmaW5lCVNFVkVOU0VHX0JBU0UJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzMKKyNkZWZpbmUJU0VWRU5TRUdfQklUUwkJCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19CSVRTCiAjZGVmaW5lCVNFVkVOU0VHX0FDVElWRQkJCTAgLyogTEVEIG9uIGZvciBiaXQgPT0gMSAqLwogCi0jaWYJKENGR19OSU9TX0NQVV9QSU8zX1RZUEUgPT0gMSkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX1RZUEUgPT0gMSkKICNkZWZpbmUJU0VWRU5TRUdfV1JPTkxZCQkJMQogI2Vsc2UKICN1bmRlZglTRVZFTlNFR19XUk9OTFkKICNlbmRpZgogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSA0KQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDQpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSA1KQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDUpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSA2KQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDYpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNiBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNiBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSA3KQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDcpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSA4KQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDgpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPOCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPOCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSA5KQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDkpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPOSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPOSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldCBDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPIGluIHJpZ2h0IGNhc2UKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gc2V0IENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPIGluIHJpZ2h0IGNhc2UKICNlbmRpZgogCiAjZGVmaW5lCUNPTkZJR19TRVZFTlNFRwkJCTEgLyogZW5hYmxlIHNldmVuIHNlZ21lbnQgbGVkIGRyaXZlciAqLwpAQCAtNDM1LDcgKzQzNSw3IEBACiAjZGVmaW5lCVNFVkVOU0VHX0RJR0lUX0cJCSgxIDw8IDApIC8qIGJpdCAwIGlzIHNlZ21lbnQgRyAqLwogI2RlZmluZQlTRVZFTlNFR19ESUdJVF9EUAkJKDEgPDwgNykgLyogYml0IDcgaXMgZGVjaW1hbCBwb2ludCAqLwogCi0jZW5kaWYJLyogQ0ZHX05JT1NfQ1BVX1BJT19OVU1TICovCisjZW5kaWYJLyogQ09ORklHX1NZU19OSU9TX0NQVV9QSU9fTlVNUyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQVNNSSAtIEFjdGl2ZSBTZXJpYWwgTWVtb3J5IEludGVyZmFjZS4KQEAgLTQ0NCw3ICs0NDQsNyBAQAogICogaXMgbG9hZGVkIHZpYSBKVEFHIG9yIEFTTUkuIFBsZWFzZSBzZWUgZG9jL1JFQURNRS5kazFjMjAgZm9yIGRldGFpbHMuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfTklPU19BU01JCQkJICAgLyogRW5hYmxlIEFTTUkJKi8KLSNkZWZpbmUgQ0ZHX05JT1NfQVNNSUJBU0UJQ0ZHX05JT1NfQ1BVX0FTTUkwIC8qIEFTTUkgYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19BU01JQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX0FTTUkwIC8qIEFTTUkgYmFzZSBhZGRyZXNzCSovCiAKIAogLyoKQEAgLTQ4NSwyMSArNDg1LDIxIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9JREUpCiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAkJCS8qIEltcGxlbWVudCBpZF9wcmVpbml0CSovCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCQkvKiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJCS8qIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCQkvKiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCQkvKiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHgwMDkyMGEwMAkvKiBJREUvQVRBIGJhc2UgYWRkcgkqLwotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAkJLyogSURFMCBvZmZzZXQJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDQwCQkvKiBEYXRhIElPIG9mZnNldAkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDQwCQkvKiBSZWdpc3RlciBvZmZzZXQJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAkJLyogQWx0ZXJuYXRlIHJlZyBvZmZzZXQJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUgICAgICAgICAgNAkJLyogV2lkdGggYmV0d2l4IGFkZHJzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweDAwOTIwYTAwCS8qIElERS9BVEEgYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAkJLyogSURFMCBvZmZzZXQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDA0MAkJLyogRGF0YSBJTyBvZmZzZXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDAwNDAJCS8qIFJlZ2lzdGVyIG9mZnNldAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAkJLyogQWx0ZXJuYXRlIHJlZyBvZmZzZXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfU1RSSURFICAgICAgICAgIDQJCS8qIFdpZHRoIGJldHdpeCBhZGRycwkqLwogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgogCiAvKiBCb2FyZC1zcGVjaWZpYyBjZiByZWdzICovCi0jZGVmaW5lIENGR19DRl9QUkVTRU5UCQkweDAwOTIwOWIwCS8qIENGIFByZXNlbnQgUElPIGJhc2UJKi8KLSNkZWZpbmUgQ0ZHX0NGX1BPV0VSCQkweDAwOTIwOWMwCS8qIENGIFBvd2VyIEZFVCBQSU8gYmFzZSovCi0jZGVmaW5lIENGR19DRl9BVEFTRUwJCTB4MDA5MjA5ZDAJLyogQ0YgQVRBU0VMIFBJTyBiYXNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0ZfUFJFU0VOVAkJMHgwMDkyMDliMAkvKiBDRiBQcmVzZW50IFBJTyBiYXNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0ZfUE9XRVIJCTB4MDA5MjA5YzAJLyogQ0YgUG93ZXIgRkVUIFBJTyBiYXNlKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DRl9BVEFTRUwJCTB4MDA5MjA5ZDAJLyogQ0YgQVRBU0VMIFBJTyBiYXNlCSovCiAKICNlbmRpZgogCkBAIC01MTMsMjUgKzUxMywyNSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1JU0MKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiREsxQzIwID4gIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIkRLMUMyMCA+ICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CSAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCi0jaWYJKENGR19TUkFNX1NJWkUgIT0gMCkKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJQ0ZHX1NSQU1fQkFTRQkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2lmCShDT05GSUdfU1lTX1NSQU1fU0laRSAhPSAwKQorI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJQ09ORklHX1NZU19TUkFNX0JBU0UJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KICNlbHNlCi0jdW5kZWYJQ0ZHX0xPQURfQUREUgorI3VuZGVmCUNPTkZJR19TWVNfTE9BRF9BRERSCiAjZW5kaWYKIAotI2lmCShDRkdfU0RSQU1fU0laRSAhPSAwKQotI2RlZmluZQlDRkdfTUVNVEVTVF9TVEFSVAlDRkdfU0RSQU1fQkFTRQkvKiBTRFJBTSB0aWwgc3RhY2sgYXJlYSAqLwotI2RlZmluZQlDRkdfTUVNVEVTVF9FTkQJCShDRkdfSU5JVF9TUCAtICgxMDI0ICogMTAyNCkpIC8qIDFNQiBzdGFjayAqLworI2lmCShDT05GSUdfU1lTX1NEUkFNX1NJWkUgIT0gMCkKKyNkZWZpbmUJQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkvKiBTRFJBTSB0aWwgc3RhY2sgYXJlYSAqLworI2RlZmluZQlDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoQ09ORklHX1NZU19JTklUX1NQIC0gKDEwMjQgKiAxMDI0KSkgLyogMU1CIHN0YWNrICovCiAjZWxzZQotI3VuZGVmCUNGR19NRU1URVNUX1NUQVJUCi0jdW5kZWYJQ0ZHX01FTVRFU1RfRU5ECisjdW5kZWYJQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCisjdW5kZWYJQ09ORklHX1NZU19NRU1URVNUX0VORAogI2VuZGlmCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvREsxQzIwX3NhZmVfMzIuaCBiL2luY2x1ZGUvY29uZmlncy9ESzFDMjBfc2FmZV8zMi5oCmluZGV4IGE0ODNlODcuLjg2ZTQ4NjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ESzFDMjBfc2FmZV8zMi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ESzFDMjBfc2FmZV8zMi5oCkBAIC0yOSw2ICsyOSw2IEBACiAgKgogICogISEhIFRPRE8gISEhIFRPRE8gISEhCiAgKi8KLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBESzFDMjBfc2FmZV8zMiBoYXZlIHRvIGJlIGRlZmluZWQgKHVzZSBESzFDMjBfc3RhbmRhcmRfMzIgYXMgdGVtcGxhdGUpCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IERLMUMyMF9zYWZlXzMyIGhhdmUgdG8gYmUgZGVmaW5lZCAodXNlIERLMUMyMF9zdGFuZGFyZF8zMiBhcyB0ZW1wbGF0ZSkKIAogI2VuZGlmCS8qIF9fQ09ORklHX0RLMUMyMF9TQUZFXzMyX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9ESzFDMjBfc3RhbmRhcmRfMzIuaCBiL2luY2x1ZGUvY29uZmlncy9ESzFDMjBfc3RhbmRhcmRfMzIuaAppbmRleCBlZDA4MTIxLi5jMDhhYWFlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvREsxQzIwX3N0YW5kYXJkXzMyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0RLMUMyMF9zdGFuZGFyZF8zMi5oCkBAIC0zMCwyNTAgKzMwLDI1MCBAQAogICogSGVyZSB3ZSBtdXN0IGRlZmluZSBDUFUgZGVwZW5kZW5jaWVzLiBBbnkgdW5zdXBwb3J0ZWQgb3B0aW9uIGhhdmUgdG8KICAqIGJlIGRlZmluZWQgd2l0aCB6ZXJvLCBleGFtcGxlIENQVSB3aXRob3V0IGRhdGEgY2FjaGUgLyBPQ0k6CiAgKgotICoJI2RlZmluZQlDRkdfTklPU19DUFVfSUNBQ0hFCTQwOTYKLSAqCSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0RDQUNIRQkwCi0gKgkjZGVmaW5lCUNGR19OSU9TX0NQVV9PQ0lfQkFTRQkwCi0gKgkjZGVmaW5lCUNGR19OSU9TX0NQVV9PQ0lfU0laRQkwCisgKgkjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfSUNBQ0hFCTQwOTYKKyAqCSNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9EQ0FDSEUJMAorICoJI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9CQVNFCTAKKyAqCSNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfU0laRQkwCiAgKi8KIAogLyogQ1BVIGNvcmUgKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NMSwk1MDAwMDAwMAkvKiBOSU9TIENQVSBjbG9jawkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfSUNBQ0hFCSg0ICogMTAyNCkJLyogaW5zdHJ1Y3Rpb24gY2FjaGUJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0RDQUNIRQkoNCAqIDEwMjQpCS8qIGRhdGEgY2FjaGUJCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9SRUdfTlVNUwkyNTYJCS8qIG51bWJlciBvZiByZWdpc3RlcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTVVMCTAJCS8qIDE2eDE2IE1VTDoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9DTEsJNTAwMDAwMDAJLyogTklPUyBDUFUgY2xvY2sJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9JQ0FDSEUJKDQgKiAxMDI0KQkvKiBpbnN0cnVjdGlvbiBjYWNoZQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0RDQUNIRQkoNCAqIDEwMjQpCS8qIGRhdGEgY2FjaGUJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUkVHX05VTVMJMjU2CQkvKiBudW1iZXIgb2YgcmVnaXN0ZXIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9NVUwJMAkJLyogMTZ4MTYgTVVMOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTVNURVAJMQkJLyogMTZ4MTYgTVNURVA6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTVNURVAJMQkJLyogMTZ4MTYgTVNURVA6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TVEFDSwkweDAwOGZmZjAwCS8qIHN0YWNrIHRvcAlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9WRUNfQkFTRQkweDAwOGZmZjAwCS8qIElSUSB2ZWN0b3JzCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1ZFQ19TSVpFCTI1NgkJLyoJCXNpemUJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1ZFQ19OVU1TCTY0CQkvKgkJbnVtYmVycwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUlNUX1ZFQ1QJMHgwMDkyMDAwMAkvKiBSRVNFVCB2ZWN0b3IJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfREJHX0NPUkUJMAkJLyogQ1BVIGRlYnVnOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NUQUNLCTB4MDA4ZmZmMDAJLyogc3RhY2sgdG9wCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRQkweDAwOGZmZjAwCS8qIElSUSB2ZWN0b3JzCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfU0laRQkyNTYJCS8qCQlzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVkVDX05VTVMJNjQJCS8qCQludW1iZXJzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUlNUX1ZFQ1QJMHgwMDkyMDAwMAkvKiBSRVNFVCB2ZWN0b3IJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0RCR19DT1JFCTAJCS8qIENQVSBkZWJ1ZzoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KIAogLyogb24tY2hpcCBleHRlbnNpb25zICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9SQU1fQkFTRQkwCQkvKiBvbiBjaGlwIFJBTQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9SQU1fU0laRQkwCQkvKgkJc2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JBTV9CQVNFCTAJCS8qIG9uIGNoaXAgUkFNCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9SQU1fU0laRQkwCQkvKgkJc2l6ZQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9ST01fQkFTRQkweDAwOTIwMDAwCS8qIG9uIGNoaXAgUk9NCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1JPTV9TSVpFCSgyICogMTAyNCkJLyogIDIgS0IJc2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9CQVNFCTB4MDA5MjAwMDAJLyogb24gY2hpcCBST00JYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9TSVpFCSgyICogMTAyNCkJLyogIDIgS0IJc2l6ZQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9PQ0lfQkFTRQkweDAwOTIwODAwCS8qIE9DSSBjb3JlCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX09DSV9TSVpFCTI1NgkJLyoJCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfQkFTRQkweDAwOTIwODAwCS8qIE9DSSBjb3JlCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfU0laRQkyNTYJCS8qCQlzaXplCSovCiAKIC8qIHRpbWVyICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUl9OVU1TCTIJCS8qIG51bWJlciBvZiB0aW1lcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSX05VTVMJMgkJLyogbnVtYmVyIG9mIHRpbWVyCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMAkweDAwOTIwOTQwCS8qIFRJTUVSMAlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfSVJRCTE2CQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfUEVSCTEwMDAJCS8qICBwZXJpb2RlCXVzZWMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9BUgkwCQkvKiAgYWx3YXlzIHJ1bjoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjAJMHgwMDkyMDk0MAkvKiBUSU1FUjAJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9JUlEJMTYJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfUEVSCTEwMDAJCS8qICBwZXJpb2RlCXVzZWMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfQVIJMAkJLyogIGFsd2F5cyBydW46CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfRlAJMAkJLyogIGZpeGVkIHBlcjoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfRlAJMAkJLyogIGZpeGVkIHBlcjoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9TUwkxCQkvKiAgc25hcGhvdDoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfU1MJMQkJLyogIHNuYXBob3Q6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMQkweDAwOTIwOWUwCS8qIFRJTUVSMQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjFfSVJRCTUwCQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjFfUEVSCTEwMDAwCQkvKiAgcGVyaW9kZQl1c2VjCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjFfQVIJMQkJLyogIGFsd2F5cyBydW46CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIxCTB4MDA5MjA5ZTAJLyogVElNRVIxCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfSVJRCTUwCQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX1BFUgkxMDAwMAkJLyogIHBlcmlvZGUJdXNlYwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9BUgkxCQkvKiAgYWx3YXlzIHJ1bjoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMV9GUAkxCQkvKiAgZml4ZWQgcGVyOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9GUAkxCQkvKiAgZml4ZWQgcGVyOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIxX1NTCTAJCS8qICBzbmFwaG90OglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9TUwkwCQkvKiAgc25hcGhvdDoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KIAogLyogc2VyaWFsIGkvbyAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVF9OVU1TCTEJCS8qIG51bWJlciBvZiB1YXJ0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlRfTlVNUwkxCQkvKiBudW1iZXIgb2YgdWFydHMJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDAJMHgwMDkyMDkwMAkvKiBVQVJUMAlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMF9JUlEJMjUJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX0JSCTExNTIwMAkJLyogIGJhdWRyYXRlCXZhcigwKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfREIJOAkJLyogIGRhdGEgYml0CQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfU0IJMQkJLyogIHN0b3AgYml0CQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfUEEJMAkJLyogIHBhcml0eQlub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDAJMHgwMDkyMDkwMAkvKiBVQVJUMAlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfSVJRCTI1CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfQlIJMTE1MjAwCQkvKiAgYmF1ZHJhdGUJdmFyKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfREIJOAkJLyogIGRhdGEgYml0CQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX1NCCTEJCS8qICBzdG9wIGJpdAkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9QQQkwCQkvKiAgcGFyaXR5CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlvZGQoMSkJKi8KIAkJCQkJCS8qCQlldmVuKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMF9IUwkwCQkvKiAgaGFuZHNoYWtlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0hTCTAJCS8qICBoYW5kc2hha2U6CW5vKDApCSovCiAJCQkJCQkvKgkJY3J0cygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfRU9QCTAJCS8qICBlb3AgcmVnOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0VPUAkwCQkvKiAgZW9wIHJlZzoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KIAogLyogcGFyYWxsZWwgaS9vICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU9fTlVNUwk4CQkvKiBudW1iZXIgb2YgcGFycG9ydHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU9fTlVNUwk4CQkvKiBudW1iZXIgb2YgcGFycG9ydHMJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMAkweDAwOTIwOTYwCS8qIFBJTzAJCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfSVJRCTQwCQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX0JJVFMJNAkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzAJMHgwMDkyMDk2MAkvKiBQSU8wCQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9JUlEJNDAJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wX0JJVFMJNAkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wX1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMF9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX0VER0UJMwkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfRURHRQkzCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfSVRZUEUJMgkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9JVFlQRQkyCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xCTB4MDA5MjA5NzAJLyogUElPMQkJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9QSU8xX0lSUQkJCS8qCQl3L28gSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX0JJVFMJMTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX1RZUEUJMAkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xCTB4MDA5MjA5NzAJLyogUElPMQkJYWRkcgkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9JUlEJCQkvKgkJdy9vIElSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfQklUUwkxMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xX1RZUEUJMAkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMV9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzFfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8yCTB4MDA5MjA5ODAJLyogUElPMgkJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9QSU8yX0lSUQkJCS8qCQl3L28gSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8yX0JJVFMJOAkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzJfVFlQRQkxCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzIJMHgwMDkyMDk4MAkvKiBQSU8yCQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0lSUQkJCS8qCQl3L28gSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMl9CSVRTCTgJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMl9UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzJfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzJfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMl9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8yX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzJfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMwkweDAwOTIwOTkwCS8qIFBJTzMJCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUElPM19JUlEJCQkvKgkJdy9vIElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPM19CSVRTCTE2CQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPM19UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMwkweDAwOTIwOTkwCS8qIFBJTzMJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0JJVFMJMTYJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzNfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPM19FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8zX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNAkweDAwOTIwOWEwCS8qIFBJTzQJCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUElPNF9JUlEJCQkvKgkJdy9vIElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNF9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU80X1RZUEUJMAkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU80CTB4MDA5MjA5YTAJLyogUElPNAkJYWRkcgkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUElPNF9JUlEJCQkvKgkJdy9vIElSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzRfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzRfVFlQRQkwCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU80X0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU80X0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzRfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNF9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNF9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU80X0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzUJMHgwMDkyMDliMAkvKiBQSU81CQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81X0lSUQkzNQkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNV9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81X1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU81CTB4MDA5MjA5YjAJLyogUElPNQkJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfSVJRCTM1CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNV9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNV9UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzVfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNV9FREdFCTMJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU81X0VER0UJMwkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81X0lUWVBFCTIJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfSVRZUEUJMgkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNgkweDAwOTIwOWMwCS8qIFBJTzYJCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUElPNl9JUlEJCQkvKgkJdy9vIElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNl9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU82X1RZUEUJMQkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU82CTB4MDA5MjA5YzAJLyogUElPNgkJYWRkcgkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUElPNl9JUlEJCQkvKgkJdy9vIElSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzZfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzZfVFlQRQkxCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU82X0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU82X0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzZfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNl9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNl9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU82X0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzcJMHgwMDkyMDlkMAkvKiBQSU83CQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1BJTzdfSVJRCQkJLyoJCXcvbyBJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzdfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPN19UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNwkweDAwOTIwOWQwCS8qIFBJTzcJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzdfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X1RZUEUJMQkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPN19DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPN19DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU83X0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzdfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzdfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPN19JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCiAvKiBJREUgaS9mICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9JREVfTlVNUwkxCQkvKiBudW1iZXIgb2YgSURFIGNvbnRyLgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfSURFMAkweDAwOTIwYTAwCS8qIElERTAJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9JREVfTlVNUwkxCQkvKiBudW1iZXIgb2YgSURFIGNvbnRyLgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0lERTAJMHgwMDkyMGEwMAkvKiBJREUwCQlhZGRyCSovCiAKIC8qIGFjdGl2ZSBzZXJpYWwgbWVtb3J5IGkvZiAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfQVNNSV9OVU1TCTEJCS8qIG51bWJlciBvZiBBU01JCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9BU01JMAkweDAwOTIwYjAwCS8qIEFTTUkwCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0FTTUkwX0lSUQk0NQkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0FTTUlfTlVNUwkxCQkvKiBudW1iZXIgb2YgQVNNSQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0FTTUkwCTB4MDA5MjBiMDAJLyogQVNNSTAJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0FTTUkwX0lSUQk0NQkJLyoJCUlSUQkqLwogCiAvKiBtZW1vcnkgYWNjZXNzaWJpbGl0eSAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfU1JBTV9CQVNFCTB4MDA4MDAwMDAJLyogYm9hcmQgU1JBTQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TUkFNX1NJWkUJKDEwMjQgKiAxMDI0KQkvKiAgMSBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9CQVNFCTB4MDA4MDAwMDAJLyogYm9hcmQgU1JBTQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9TSVpFCSgxMDI0ICogMTAyNCkJLyogIDEgTUIJc2l6ZQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TRFJBTV9CQVNFCTB4MDEwMDAwMDAJLyogYm9hcmQgU0RSQU0JYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfU0RSQU1fU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAxNiBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fQkFTRQkweDAxMDAwMDAwCS8qIGJvYXJkIFNEUkFNCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9TSVpFCSgxNioxMDI0KjEwMjQpCS8qIDE2IE1CCXNpemUJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfRkxBU0hfQkFTRQkweDAwMDAwMDAwCS8qIGJvYXJkIEZsYXNoCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0ZMQVNIX1NJWkUJKDgqMTAyNCoxMDI0KQkvKiAgOCBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfQkFTRQkweDAwMDAwMDAwCS8qIGJvYXJkIEZsYXNoCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFCSg4KjEwMjQqMTAyNCkJLyogIDggTUIJc2l6ZQkqLwogCiAvKiBMQU4gKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xBTl9OVU1TCTEJCS8qIG51bWJlciBvZiBMQU4gaS9mCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOX05VTVMJMQkJLyogbnVtYmVyIG9mIExBTiBpL2YJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9CQVNFCTB4MDA5MTAwMDAJLyogTEFOMAkJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9PRkZTCTB4MDMwMAkJLyoJCW9mZnNldAkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9JUlEJMzAJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xBTjBfQlVTVwkzMgkJLyoJICAgICAgICBidXN3aWR0aCovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX1RZUEUJMAkJLyoJc21jOTExMTEoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JBU0UJMHgwMDkxMDAwMAkvKiBMQU4wCQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOMF9PRkZTCTB4MDMwMAkJLyoJCW9mZnNldAkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfSVJRCTMwCQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CVVNXCTMyCQkvKgkgICAgICAgIGJ1c3dpZHRoKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX1RZUEUJMAkJLyoJc21jOTExMTEoMCkJKi8KIAkJCQkJCS8qCWNzODkwMCgxKQkqLwogCQkJCQkJLyogZXg6CWFsdGVyYW1hYygyKQkqLwogCiAvKiBzeW1ib2xpYyByZWRlZmluaXRpb24gKHVuZGVmLCBpZiBub3QgcHJlc2VudCkgKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VTRVJfVElNRVIJCTAJLyogVElNRVIwOiB1c2VycyBjaG9pY2UJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIJCTEJLyogVElNRVIxOiB0aWNrIChuZWVkZWQpKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VU0VSX1RJTUVSCQkwCS8qIFRJTUVSMDogdXNlcnMgY2hvaWNlCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUgkJMQkvKiBUSU1FUjE6IHRpY2sgKG5lZWRlZCkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9CVVRUT05fUElPCQkwCS8qIFBJTzA6IGJ1dHRvbnMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xDRF9QSU8JCTEJLyogUElPMTogQVNDSUkgTENECSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MRURfUElPCQkyCS8qIFBJTzI6IExFRCBiYXIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTwkzCS8qIFBJTzM6IDctc2VnLiBkaXNwbGF5CSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9SRUNPTkZfUElPCQk0CS8qIFBJTzQ6IHJlY29uZiBwaW4JKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8JNQkvKiBQSU81OiBDRiBwcmVzZW50IElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfQ0ZQT1dFUl9QSU8JNgkvKiBQSU82OiBDRiBwb3dlci9zdy4JKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NGQVRBU0VMX1BJTwk3CS8qIFBJTzc6IENGIEFUQSBzZWxlY3QJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9CVVRUT05fUElPCQkwCS8qIFBJTzA6IGJ1dHRvbnMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQ0RfUElPCQkxCS8qIFBJTzE6IEFTQ0lJIExDRAkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8JCTIJLyogUElPMjogTEVEIGJhcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NFVkVOU0VHX1BJTwkzCS8qIFBJTzM6IDctc2VnLiBkaXNwbGF5CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUkVDT05GX1BJTwkJNAkvKiBQSU80OiByZWNvbmYgcGluCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZQUkVTRU5UX1BJTwk1CS8qIFBJTzU6IENGIHByZXNlbnQgSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZQT1dFUl9QSU8JNgkvKiBQSU82OiBDRiBwb3dlci9zdy4JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9DRkFUQVNFTF9QSU8JNwkvKiBQSU83OiBDRiBBVEEgc2VsZWN0CSovCiAKICNlbmRpZgkvKiBfX0NPTkZJR19ESzFDMjBfU1RBTkRBUkRfMzJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0RLMVMxMC5oIGIvaW5jbHVkZS9jb25maWdzL0RLMVMxMC5oCmluZGV4IDEyZDRlNmIuLjFkMDMxZjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ESzFTMTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvREsxUzEwLmgKQEAgLTM4LDcgKzM4LDcgQEAKICNlbGlmCWRlZmluZWQoQ09ORklHX05JT1NfTVRYX0xES18yMCkKICNpbmNsdWRlIDxjb25maWdzL0RLMVMxMF9tdHhfbGRrXzIwLmg+CiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIHJpZ2h0IE5JT1MgQ1BVIGNvbmZpZ3VyYXRpb24KKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgcmlnaHQgTklPUyBDUFUgY29uZmlndXJhdGlvbgogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00NiwzNiArNDYsMzYgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjZGVmaW5lIENPTkZJR19OSU9TCQkxCQkvKiBOSU9TLTMyIGNvcmUJCSovCiAjZGVmaW5lCUNPTkZJR19ESzFTMTAJCTEJCS8qIFN0cmF0aXggREstMVMxMCBib2FyZCovCi0jZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJQ0ZHX05JT1NfQ1BVX0NMSy8qIDUwIE1IeiBjb3JlIGNsb2NrCSovCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJCS8qIDEgbXNlYyB0aW1lIHRpY2sJKi8KLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQlDT05GSUdfU1lTX05JT1NfQ1BVX0NMSy8qIDUwIE1IeiBjb3JlIGNsb2NrCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiAxIG1zZWMgdGltZSB0aWNrCSovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgogI2RlZmluZQlDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIDEJLyogZW5hYmxlIGVhcmx5IGJvYXJkLXNwZWMuIGluaXQqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkFTRSBBRERSRVNTRVMgLyBTSVpFIChGbGFzaCwgU1JBTSwgU0RSQU0pCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmCShDRkdfTklPU19DUFVfU0RSQU1fU0laRSAhPSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX1NJWkUgIT0gMCkKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX05JT1NfQ1BVX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCUNGR19OSU9TX0NQVV9TRFJBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9TSVpFCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYW55IFNEUkFNIGluIE5JT1MgQ1BVIGNvbmZpZworI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhbnkgU0RSQU0gaW4gTklPUyBDUFUgY29uZmlnCiAjZW5kaWYKIAotI2lmCWRlZmluZWQoQ0ZHX05JT1NfQ1BVX1NSQU1fQkFTRSkgJiYgZGVmaW5lZChDRkdfTklPU19DUFVfU1JBTV9TSVpFKQorI2lmCWRlZmluZWQoQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1NSQU1fQkFTRQkJQ0ZHX05JT1NfQ1BVX1NSQU1fQkFTRQotI2RlZmluZQlDRkdfU1JBTV9TSVpFCQlDRkdfTklPU19DUFVfU1JBTV9TSVpFCisjZGVmaW5lCUNPTkZJR19TWVNfU1JBTV9CQVNFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX1NSQU1fU0laRQkJQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX1NJWkUKIAogI2Vsc2UKIAotI3VuZGVmCUNGR19TUkFNX0JBU0UKLSN1bmRlZglDRkdfU1JBTV9TSVpFCisjdW5kZWYJQ09ORklHX1NZU19TUkFNX0JBU0UKKyN1bmRlZglDT05GSUdfU1lTX1NSQU1fU0laRQogCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfVkVDVF9CQVNFCQlDRkdfTklPU19DUFVfVkVDX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19WRUNUX0JBU0UJCUNPTkZJR19TWVNfTklPU19DUFVfVkVDX0JBU0UKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1FTU9SWSBPUkdBTklaQVRJT04gLSBGb3IgdGhlIG1vc3QgcGFydCwgeW91IGNhbiBwdXQgdGhpbmdzIHByZXR0eQpAQCAtODgsNDUgKzg4LDQ1IEBACiAgKgktR2xvYmFsIGRhdGEgaXMgcGxhY2VkIGJlbG93IHRoZSBoZWFwLgogICoJLVRoZSBzdGFjayBpcyBwbGFjZWQgYmVsb3cgZ2xvYmFsIGRhdGEgKCZncm93cyBkb3duKS4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2awkJKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBHbG9iYWwgZGF0YSBzaXplIHJzdmQqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTZrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBHbG9iYWwgZGF0YSBzaXplIHJzdmQqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0JBU0UJCShDRkdfTU9OSVRPUl9CQVNFIC0gQ0ZHX01BTExPQ19MRU4pCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19NQUxMT0NfQkFTRSAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUAkJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfQkFTRQkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gQ09ORklHX1NZU19NQUxMT0NfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19NQUxMT0NfQkFTRSAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQCQlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggKEFNMjlMVjA2NUQpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmCShDRkdfTklPU19DUFVfRkxBU0hfU0laRSAhPSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUgIT0gMCkKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX05JT1NfQ1BVX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCUNGR19OSU9TX0NQVV9GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIE1heCAjIHNlY3RzIHBlciBiYW5rICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogTWF4ICMgb2YgZmxhc2ggYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkJLyogRXJhc2UgdGltZW91dCAobXNlYykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwCQkvKiBXcml0ZSB0aW1lb3V0IChtc2VjKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIGNoYXIJLyogZmxhc2ggd29yZCBzaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBNYXggIyBzZWN0cyBwZXIgYmFuayAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkJLyogRXJhc2UgdGltZW91dCAobXNlYykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMAkJLyogV3JpdGUgdGltZW91dCAobXNlYykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgkvKiBmbGFzaCB3b3JkIHNpemUJKi8KIAogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhbnkgRmxhc2ggbWVtb3J5IGluIE5JT1MgQ1BVIGNvbmZpZworI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhbnkgRmxhc2ggbWVtb3J5IGluIE5JT1MgQ1BVIGNvbmZpZwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFTlZJUk9OTUVOVAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX0ZMQVNIX1NJWkUgIT0gMCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFICE9IDApCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCQkvKiBFbnZpcm9ubWVudCBpbiBmbGFzaCAqLwogCiAjaWYJZGVmaW5lZChDT05GSUdfTklPU19TVEFOREFSRF8zMikKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlDRkdfRkxBU0hfQkFTRQkvKiBNZW0gYWRkciBvZiBlbnYJKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogTWVtIGFkZHIgb2YgZW52CSovCiAjZWxpZglkZWZpbmVkKENPTkZJR19OSU9TX01UWF9MREtfMjApCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCB0aGUgZW52aXJvbm1lbnQgYmFzZSBhZGRyZXNzIENPTkZJR19FTlZfQUREUgorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCB0aGUgZW52aXJvbm1lbnQgYmFzZSBhZGRyZXNzIENPTkZJR19FTlZfQUREUgogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoNjQgKiAxMDI0KQkvKiA2NCBLQnl0ZSAoMSBzZWN0b3IpCSovCkBAIC0xMzksMTIxICsxMzksMTIxIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ09OU09MRQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX1VBUlRfTlVNUyAhPSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlRfTlVNUyAhPSAwKQogCi0jZGVmaW5lIENGR19OSU9TX0NPTlNPTEUJQ0ZHX05JT1NfQ1BVX1VBUlQwIC8qIDFzdCBVQVJUIGlzIENvbnMuICovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19DT05TT0xFCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDAgLyogMXN0IFVBUlQgaXMgQ29ucy4gKi8KICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkgLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1VBUlQwX0JSICE9IDApCi0jZGVmaW5lIENGR19OSU9TX0ZJWEVEQkFVRAkxCQkgICAvKiBCYXVkcmF0ZSBpcyBmaXhlZAkqLwotI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCUNGR19OSU9TX0NQVV9VQVJUMF9CUgorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0JSICE9IDApCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19GSVhFREJBVUQJMQkJICAgLyogQmF1ZHJhdGUgaXMgZml4ZWQJKi8KKyNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0JSCiAjZWxzZQotI3VuZGVmCUNGR19OSU9TX0ZJWEVEQkFVRAorI3VuZGVmCUNPTkZJR19TWVNfTklPU19GSVhFREJBVUQKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGF0IGxlYXN0IG9uZSBVQVJUIGluIE5JT1MgQ1BVIGNvbmZpZworI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhdCBsZWFzdCBvbmUgVUFSVCBpbiBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVElNRVIgRk9SIFRJTUVCQVNFIC0tIE5pb3MgZG9lc24ndCBoYXZlIHRoZSBlcXVpdmFsZW50IG9mIHBwYyAgUElULAogICogc28gYW4gYXZhbG9uIGJ1cyB0aW1lciBpcyByZXF1aXJlZC4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9USU1FUl9OVU1TICE9IDApICYmIGRlZmluZWQoQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIpCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVJfTlVNUyAhPSAwKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUikKIAotI2lmCShDRkdfTklPU19DUFVfVElDS19USU1FUiA9PSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJQ0tfVElNRVIgPT0gMCkKIAotI2RlZmluZSBDRkdfTklPU19UTVJCQVNFCUNGR19OSU9TX0NQVV9USU1FUjAgLyogVElNRVIwIGFzIHRpY2sJKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1SSVJRCQlDRkdfTklPU19DUFVfVElNRVIwX0lSUQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMCAvKiBUSU1FUjAgYXMgdGljawkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SSVJRCQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9JUlEKIAotI2lmCShDRkdfTklPU19DUFVfVElNRVIwX0ZQID09IDEpCQkgICAgLyogZml4ZWQgcGVyaW9kICovCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0ZQID09IDEpCQkgICAgLyogZml4ZWQgcGVyaW9kICovCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1RJTUVSMF9QRVIgPj0gQ0ZHX0haKQotI2RlZmluZSBDRkdfTklPU19UTVJNUwkJKENGR19OSU9TX0NQVV9USU1FUjBfUEVSIC8gQ0ZHX0haKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9QRVIgPj0gQ09ORklHX1NZU19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUk1TCQkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfUEVSIC8gQ09ORklHX1NZU19IWikKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gdXNlIGEgdGltZXIgcGVyaW9kZSBncmVhdGVyIHRoYW4gQ0ZHX0haCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHVzZSBhIHRpbWVyIHBlcmlvZGUgZ3JlYXRlciB0aGFuIENPTkZJR19TWVNfSFoKICNlbmRpZgogCi0jdW5kZWYJQ0ZHX05JT1NfVE1SQ05UCS8qIG5vIHByZWxvYWRhYmxlIGNvdW50ZXIgdmFsdWUgKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfVE1SQ05UCS8qIG5vIHByZWxvYWRhYmxlIGNvdW50ZXIgdmFsdWUgKi8KIAotI2VsaWYJKENGR19OSU9TX0NQVV9USU1FUjBfRlAgPT0gMCkJCSAgICAvKiB2YXJpYWJsZSBwZXJpb2QgKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9GUCA9PSAwKQkJICAgIC8qIHZhcmlhYmxlIHBlcmlvZCAqLwogCi0jaWYJKENGR19IWiA8PSAxMDAwKQotI2RlZmluZSBDRkdfTklPU19UTVJNUwkJKDEwMDAgLyBDRkdfSFopCisjaWYJKENPTkZJR19TWVNfSFogPD0gMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUk1TCQkoMTAwMCAvIENPTkZJR19TWVNfSFopCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNvcnJ5LCBDRkdfSFogaGF2ZSB0byBiZSBsZXNzIHRoYW4gMTAwMAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzb3JyeSwgQ09ORklHX1NZU19IWiBoYXZlIHRvIGJlIGxlc3MgdGhhbiAxMDAwCiAjZW5kaWYKIAotI2RlZmluZQlDRkdfTklPU19UTVJDTlQJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gQ0ZHX0haKQorI2RlZmluZQlDT05GSUdfU1lTX05JT1NfVE1SQ05UCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIENPTkZJR19TWVNfSFopCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gZGVmaW5lIENGR19OSU9TX0NQVV9USU1FUjBfRlAgY29ycmVjdAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfRlAgY29ycmVjdAogI2VuZGlmCiAKLSNlbGlmCShDRkdfTklPU19DUFVfVElDS19USU1FUiA9PSAxKQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUiA9PSAxKQogCi0jZGVmaW5lIENGR19OSU9TX1RNUkJBU0UJQ0ZHX05JT1NfQ1BVX1RJTUVSMSAvKiBUSU1FUjEgYXMgdGljawkqLwotI2RlZmluZSBDRkdfTklPU19UTVJJUlEJCUNGR19OSU9TX0NQVV9USU1FUjFfSVJRCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJCQVNFCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIxIC8qIFRJTUVSMSBhcyB0aWNrCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJJUlEJCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX0lSUQogCi0jaWYJKENGR19OSU9TX0NQVV9USU1FUjFfRlAgPT0gMSkJCSAgICAvKiBmaXhlZCBwZXJpb2QgKi8KKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfRlAgPT0gMSkJCSAgICAvKiBmaXhlZCBwZXJpb2QgKi8KIAotI2lmCShDRkdfTklPU19DUFVfVElNRVIxX1BFUiA+PSBDRkdfSFopCi0jZGVmaW5lIENGR19OSU9TX1RNUk1TCQkoQ0ZHX05JT1NfQ1BVX1RJTUVSMV9QRVIgLyBDRkdfSFopCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX1BFUiA+PSBDT05GSUdfU1lTX0haKQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1STVMJCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9QRVIgLyBDT05GSUdfU1lTX0haKQogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byB1c2UgYSB0aW1lciBwZXJpb2RlIGdyZWF0ZXIgdGhhbiBDRkdfSFoKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gdXNlIGEgdGltZXIgcGVyaW9kZSBncmVhdGVyIHRoYW4gQ09ORklHX1NZU19IWgogI2VuZGlmCiAKLSN1bmRlZglDRkdfTklPU19UTVJDTlQJLyogbm8gcHJlbG9hZGFibGUgY291bnRlciB2YWx1ZSAqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19UTVJDTlQJLyogbm8gcHJlbG9hZGFibGUgY291bnRlciB2YWx1ZSAqLwogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1RJTUVSMV9GUCA9PSAwKQkJICAgIC8qIHZhcmlhYmxlIHBlcmlvZCAqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX0ZQID09IDApCQkgICAgLyogdmFyaWFibGUgcGVyaW9kICovCiAKLSNpZgkoQ0ZHX0haIDw9IDEwMDApCi0jZGVmaW5lIENGR19OSU9TX1RNUk1TCQkoMTAwMCAvIENGR19IWikKKyNpZgkoQ09ORklHX1NZU19IWiA8PSAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1STVMJCSgxMDAwIC8gQ09ORklHX1NZU19IWikKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogc29ycnksIENGR19IWiBoYXZlIHRvIGJlIGxlc3MgdGhhbiAxMDAwCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNvcnJ5LCBDT05GSUdfU1lTX0haIGhhdmUgdG8gYmUgbGVzcyB0aGFuIDEwMDAKICNlbmRpZgogCi0jZGVmaW5lCUNGR19OSU9TX1RNUkNOVAkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBDRkdfSFopCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19UTVJDTlQJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gQ09ORklHX1NZU19IWikKIAogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBkZWZpbmUgQ0ZHX05JT1NfQ1BVX1RJTUVSMV9GUCBjb3JyZWN0CisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIGRlZmluZSBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9GUCBjb3JyZWN0CiAjZW5kaWYKIAotI2VuZGlmCS8qIENGR19OSU9TX0NQVV9USUNLX1RJTUVSICovCisjZW5kaWYJLyogQ09ORklHX1NZU19OSU9TX0NQVV9USUNLX1RJTUVSICovCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYXQgbGVhc3Qgb25lIFRJTUVSIGluIE5JT1MgQ1BVIGNvbmZpZworI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhdCBsZWFzdCBvbmUgVElNRVIgaW4gTklPUyBDUFUgY29uZmlnCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV0aGVybmV0IC0tIG5lZWRzIHdvcmshCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmCShDRkdfTklPU19DUFVfTEFOX05VTVMgPT0gMSkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU5fTlVNUyA9PSAxKQogCi0jaWYJKENGR19OSU9TX0NQVV9MQU4wX1RZUEUgPT0gMCkJCS8qIExBTjkxQzExMQkJKi8KKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX1RZUEUgPT0gMCkJCS8qIExBTjkxQzExMQkJKi8KIAogI2RlZmluZQlDT05GSUdfRFJJVkVSX1NNQzkxMTExCQkJLyogVXNpbmcgU01DOTFjMTExCSovCiAjdW5kZWYJQ09ORklHX1NNQzkxMTExX0VYVF9QSFkJCQkvKiBJbnRlcm5hbCBQSFkJCSovCi0jZGVmaW5lCUNPTkZJR19TTUM5MTExMV9CQVNFCShDRkdfTklPU19DUFVfTEFOMF9CQVNFICsgQ0ZHX05JT1NfQ1BVX0xBTjBfT0ZGUykKKyNkZWZpbmUJQ09ORklHX1NNQzkxMTExX0JBU0UJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CQVNFICsgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX09GRlMpCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX0xBTjBfQlVTVyA9PSAzMikKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JVU1cgPT0gMzIpCiAjZGVmaW5lCUNPTkZJR19TTUNfVVNFXzMyX0JJVAkxCiAjZWxzZQkvKiBubyAqLwogI3VuZGVmCUNPTkZJR19TTUNfVVNFXzMyX0JJVAogI2VuZGlmCiAKLSNlbGlmCShDRkdfTklPU19DUFVfTEFOMF9UWVBFID09IDEpCQkvKiBDUzg5MDBBCQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9UWVBFID09IDEpCQkvKiBDUzg5MDBBCQkqLwogCiAJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCS8qICEhISBDUzg5MDAgaXMgX19ub3RfXyB0ZXN0ZWQgb24gTklPUyAhISEgKi8KIAkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lCUNPTkZJR19EUklWRVJfQ1M4OTAwCQkJLyogVXNpbmcgQ1M4OTAwCQkqLwotI2RlZmluZQlDUzg5MDBfQkFTRQkJKENGR19OSU9TX0NQVV9MQU4wX0JBU0UgKyBDRkdfTklPU19DUFVfTEFOMF9PRkZTKQorI2RlZmluZQlDUzg5MDBfQkFTRQkJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CQVNFICsgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX09GRlMpCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX0xBTjBfQlVTVyA9PSAzMikKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JVU1cgPT0gMzIpCiAjdW5kZWYJQ1M4OTAwX0JVUzE2CiAjZGVmaW5lCUNTODkwMF9CVVMzMgkJMQogI2Vsc2UJLyogbm8gKi8KQEAgLTI2Miw3ICsyNjIsNyBAQAogI2VuZGlmCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogaW52YWxpZCBMQU4wIGNoaXAgdHlwZSwgY2hlY2sgeW91ciBOSU9TIENQVSBjb25maWcKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogaW52YWxpZCBMQU4wIGNoaXAgdHlwZSwgY2hlY2sgeW91ciBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19FVEhBRERSCQkwODowMDozZToyNjowYTo1YgpAQCAtMjcxLDY0ICsyNzEsNjQgQEAKICNkZWZpbmUgQ09ORklHX1NFUlZFUklQCQkxOTIuMTY4LjIuMTYKIAogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBqdXN0IG9uZSBMQU4gb25seSBvciBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBqdXN0IG9uZSBMQU4gb25seSBvciBleHBhbmQgeW91ciBjb25maWcuaAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTVEFUVVMgTEVEcwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX1BJT19OVU1TICE9IDApICYmIGRlZmluZWQoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8pCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfUElPX05VTVMgIT0gMCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8pCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gMCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPID09IDApCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzdGF0dXMgTEVEcyBhdCBQSU8wIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzAgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKIAotI2VsaWYJKENGR19OSU9TX0NQVV9MRURfUElPID09IDEpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPID09IDEpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzdGF0dXMgTEVEcyBhdCBQSU8xIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzEgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKIAotI2VsaWYJKENGR19OSU9TX0NQVV9MRURfUElPID09IDIpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPID09IDIpCiAKLSNkZWZpbmUJU1RBVFVTX0xFRF9CQVNFCQkJQ0ZHX05JT1NfQ1BVX1BJTzIKLSNkZWZpbmUJU1RBVFVTX0xFRF9CSVRTCQkJQ0ZHX05JT1NfQ1BVX1BJTzJfQklUUworI2RlZmluZQlTVEFUVVNfTEVEX0JBU0UJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzIKKyNkZWZpbmUJU1RBVFVTX0xFRF9CSVRTCQkJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0JJVFMKICNkZWZpbmUJU1RBVFVTX0xFRF9BQ1RJVkUJCTEgLyogTEVEIG9uIGZvciBiaXQgPT0gMSAqLwogCi0jaWYJKENGR19OSU9TX0NQVV9QSU8yX1RZUEUgPT0gMSkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX1RZUEUgPT0gMSkKICNkZWZpbmUJU1RBVFVTX0xFRF9XUk9OTFkJCTEKICNlbHNlCiAjdW5kZWYJU1RBVFVTX0xFRF9XUk9OTFkKICNlbmRpZgogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gMykKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gMykKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzMgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPMyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNCkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzQgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNSkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzUgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNikKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNikKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzYgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNiBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNykKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNykKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzcgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gOCkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gOCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzggbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPOCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gOSkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gOSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzkgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPOSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldCBDRkdfTklPU19DUFVfTEVEX1BJTyBpbiByaWdodCBjYXNlCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldCBDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gaW4gcmlnaHQgY2FzZQogI2VuZGlmCiAKICNkZWZpbmUJQ09ORklHX1NUQVRVU19MRUQJCTEgLyogZW5hYmxlIHN0YXR1cyBsZWQgZHJpdmVyICovCkBAIC0zMzYsODkgKzMzNiw4OSBAQAogI2RlZmluZQlTVEFUVVNfTEVEX0JJVAkJCSgxIDw8IDApCS8qIExFRFswXSAqLwogI2RlZmluZQlTVEFUVVNfTEVEX1NUQVRFCQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAjZGVmaW5lCVNUQVRVU19MRURfQk9PVF9TVEFURQkJU1RBVFVTX0xFRF9PRkYKLSNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QJCShDRkdfSFogLyAxMCkJLyogY2EuIDEgSHogKi8KKyNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QJCShDT05GSUdfU1lTX0haIC8gMTApCS8qIGNhLiAxIEh6ICovCiAjZGVmaW5lCVNUQVRVU19MRURfQk9PVAkJCTAJCS8qIGJvb3QgTEVEICovCiAKICNpZgkoU1RBVFVTX0xFRF9CSVRTID4gMSkKICNkZWZpbmUJU1RBVFVTX0xFRF9CSVQxCQkJKDEgPDwgMSkJLyogTEVEWzFdICovCiAjZGVmaW5lCVNUQVRVU19MRURfU1RBVEUxCQlTVEFUVVNfTEVEX09GRgotI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDEJCShDRkdfSFogLyA1MCkJLyogY2EuIDUgSHogKi8KKyNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QxCQkoQ09ORklHX1NZU19IWiAvIDUwKQkvKiBjYS4gNSBIeiAqLwogI2RlZmluZQlTVEFUVVNfTEVEX1JFRAkJCTEJCS8qIGZhaWwgTEVEICovCiAjZW5kaWYKIAogI2lmCShTVEFUVVNfTEVEX0JJVFMgPiAyKQogI2RlZmluZQlTVEFUVVNfTEVEX0JJVDIJCQkoMSA8PCAyKQkvKiBMRURbMl0gKi8KICNkZWZpbmUJU1RBVFVTX0xFRF9TVEFURTIJCVNUQVRVU19MRURfT0ZGCi0jZGVmaW5lCVNUQVRVU19MRURfUEVSSU9EMgkJKENGR19IWiAvIDEwKQkvKiBjYS4gMSBIeiAqLworI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDIJCShDT05GSUdfU1lTX0haIC8gMTApCS8qIGNhLiAxIEh6ICovCiAjZGVmaW5lCVNUQVRVU19MRURfWUVMTE9XCQkyCQkvKiBpbmZvIExFRCAqLwogI2VuZGlmCiAKICNpZgkoU1RBVFVTX0xFRF9CSVRTID4gMykKICNkZWZpbmUJU1RBVFVTX0xFRF9CSVQzCQkJKDEgPDwgMykJLyogTEVEWzNdICovCiAjZGVmaW5lCVNUQVRVU19MRURfU1RBVEUzCQlTVEFUVVNfTEVEX09GRgotI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDMJCShDRkdfSFogLyAxMCkJLyogY2EuIDEgSHogKi8KKyNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QzCQkoQ09ORklHX1NZU19IWiAvIDEwKQkvKiBjYS4gMSBIeiAqLwogI2RlZmluZQlTVEFUVVNfTEVEX0dSRUVOCQkzCQkvKiBpbmZvIExFRCAqLwogI2VuZGlmCiAKICNkZWZpbmUJU1RBVFVTX0xFRF9QQVIJCQkxIC8qIG1ha2VzIHN0YXR1c19sZWQuaCBoYXBweSAqLwogCi0jZW5kaWYJLyogQ0ZHX05JT1NfQ1BVX1BJT19OVU1TICovCisjZW5kaWYJLyogQ09ORklHX1NZU19OSU9TX0NQVV9QSU9fTlVNUyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0VWRU4gU0VHTUVOVCBMRUQgRElTUExBWQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX1BJT19OVU1TICE9IDApICYmIGRlZmluZWQoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTykKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9QSU9fTlVNUyAhPSAwKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPKQogCi0jaWYJKENGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gMCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gMCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU8wIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU8wIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDEpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gMSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU8xIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU8xIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDIpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gMikKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU8yIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU8yIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDMpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gMykKIAotI2RlZmluZQlTRVZFTlNFR19CQVNFCQkJQ0ZHX05JT1NfQ1BVX1BJTzMKLSNkZWZpbmUJU0VWRU5TRUdfQklUUwkJCUNGR19OSU9TX0NQVV9QSU8zX0JJVFMKKyNkZWZpbmUJU0VWRU5TRUdfQkFTRQkJCUNPTkZJR19TWVNfTklPU19DUFVfUElPMworI2RlZmluZQlTRVZFTlNFR19CSVRTCQkJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0JJVFMKICNkZWZpbmUJU0VWRU5TRUdfQUNUSVZFCQkJMCAvKiBMRUQgb24gZm9yIGJpdCA9PSAxICovCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1BJTzNfVFlQRSA9PSAxKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfVFlQRSA9PSAxKQogI2RlZmluZQlTRVZFTlNFR19XUk9OTFkJCQkxCiAjZWxzZQogI3VuZGVmCVNFVkVOU0VHX1dST05MWQogI2VuZGlmCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDQpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gNCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU80IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU80IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDUpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gNSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU81IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU81IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDYpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gNikKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU82IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU82IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDcpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gNykKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU83IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU83IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDgpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gOCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU84IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU84IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDkpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gOSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU85IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU85IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0IENGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8gaW4gcmlnaHQgY2FzZQorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXQgQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gaW4gcmlnaHQgY2FzZQogI2VuZGlmCiAKICNkZWZpbmUJQ09ORklHX1NFVkVOU0VHCQkJMSAvKiBlbmFibGUgc2V2ZW4gc2VnbWVudCBsZWQgZHJpdmVyICovCkBAIC00NTIsNyArNDUyLDcgQEAKICNkZWZpbmUJU0VWRU5TRUdfRElHSVRfRwkJKDEgPDwgMCkgLyogYml0IDAgaXMgc2VnbWVudCBHICovCiAjZGVmaW5lCVNFVkVOU0VHX0RJR0lUX0RQCQkoMSA8PCA3KSAvKiBiaXQgNyBpcyBkZWNpbWFsIHBvaW50ICovCiAKLSNlbmRpZgkvKiBDRkdfTklPU19DUFVfUElPX05VTVMgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX05JT1NfQ1BVX1BJT19OVU1TICovCiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC00OTYsNDggKzQ5Niw0OCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1JU0MKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiREsxUzEwID4gIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIkRLMVMxMCA+ICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CSAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCiAvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwotI2lmCShDRkdfU1JBTV9TSVpFICE9IDApCisjaWYJKENPTkZJR19TWVNfU1JBTV9TSVpFICE9IDApCiAKIC8qIGRlZmF1bHQgaW4gU1JBTSAqLwotI2RlZmluZQlDRkdfTE9BRF9BRERSCQlDRkdfU1JBTV9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQlDT05GSUdfU1lTX1NSQU1fQkFTRQogCi0jZWxpZgkoQ0ZHX1NEUkFNX1NJWkUgIT0gMCkKKyNlbGlmCShDT05GSUdfU1lTX1NEUkFNX1NJWkUgIT0gMCkKIAogLyogZGVmYXVsdCBpbiBTRFJBTSAqLwotI2lmCShDRkdfU0RSQU1fQkFTRSA9PSBDRkdfTklPU19DUFVfVkVDX0JBU0UpCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCShDRkdfU0RSQU1fQkFTRSArIENGR19OSU9TX0NQVV9WRUNfU0laRSkKKyNpZgkoQ09ORklHX1NZU19TRFJBTV9CQVNFID09IENPTkZJR19TWVNfTklPU19DUFVfVkVDX0JBU0UpCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfU0laRSkKICNlbHNlCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCUNGR19TRFJBTV9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQlDT05GSUdfU1lTX1NEUkFNX0JBU0UKICNlbmRpZgogCiAjZWxzZQotI3VuZGVmCUNGR19MT0FEX0FERFIJCS8qIGZvcmNlIGVycm9yIGJyZWFrICovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEX0FERFIJCS8qIGZvcmNlIGVycm9yIGJyZWFrICovCiAjZW5kaWYKIAogCiAvKiBNRU0gdGVzdCBhcmVhICovCi0jaWYJKENGR19TRFJBTV9TSVpFICE9IDApCisjaWYJKENPTkZJR19TWVNfU0RSQU1fU0laRSAhPSAwKQogCiAvKiBTRFJBTSBiZWdpbiB0byBzdGFjayBhcmVhICgxTUIgc3RhY2spICovCi0jaWYJKENGR19TRFJBTV9CQVNFID09IENGR19OSU9TX0NQVV9WRUNfQkFTRSkKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfU1RBUlQJKENGR19TRFJBTV9CQVNFICsgQ0ZHX05JT1NfQ1BVX1ZFQ19TSVpFKQotI2RlZmluZQlDRkdfTUVNVEVTVF9FTkQJCShDRkdfSU5JVF9TUCAtICgxMDI0ICogMTAyNCkpCisjaWYJKENPTkZJR19TWVNfU0RSQU1fQkFTRSA9PSBDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19CQVNFKQorI2RlZmluZQlDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIENPTkZJR19TWVNfTklPU19DUFVfVkVDX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfTUVNVEVTVF9FTkQJCShDT05GSUdfU1lTX0lOSVRfU1AgLSAoMTAyNCAqIDEwMjQpKQogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfRU5ECQkoQ0ZHX0lOSVRfU1AgLSAoMTAyNCAqIDEwMjQpKQorI2RlZmluZQlDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUVNVEVTVF9FTkQJCShDT05GSUdfU1lTX0lOSVRfU1AgLSAoMTAyNCAqIDEwMjQpKQogI2VuZGlmCiAKICNlbHNlCi0jdW5kZWYJQ0ZHX01FTVRFU1RfU1RBUlQJLyogZm9yY2UgZXJyb3IgYnJlYWsgKi8KLSN1bmRlZglDRkdfTUVNVEVTVF9FTkQKKyN1bmRlZglDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJLyogZm9yY2UgZXJyb3IgYnJlYWsgKi8KKyN1bmRlZglDT05GSUdfU1lTX01FTVRFU1RfRU5ECiAjZW5kaWYKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9ESzFTMTBfbXR4X2xka18yMC5oIGIvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9tdHhfbGRrXzIwLmgKaW5kZXggMDExNTY5OS4uODdhOGE1NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9tdHhfbGRrXzIwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9tdHhfbGRrXzIwLmgKQEAgLTMwLDE1OCArMzAsMTU4IEBACiAgKiBIZXJlIHdlIG11c3QgZGVmaW5lIENQVSBkZXBlbmRlbmNpZXMuIEFueSB1bnN1cHBvcnRlZCBvcHRpb24gaGF2ZSB0bwogICogYmUgZGVmaW5lZCB3aXRoIHplcm8sIGV4YW1wbGUgQ1BVIHdpdGhvdXQgZGF0YSBjYWNoZSAvIE9DSToKICAqCi0gKgkjZGVmaW5lCUNGR19OSU9TX0NQVV9JQ0FDSEUJNDA5NgotICoJI2RlZmluZQlDRkdfTklPU19DUFVfRENBQ0hFCTAKLSAqCSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX09DSV9CQVNFCTAKLSAqCSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX09DSV9TSVpFCTAKKyAqCSNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9JQ0FDSEUJNDA5NgorICoJI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0RDQUNIRQkwCisgKgkjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfT0NJX0JBU0UJMAorICoJI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9TSVpFCTAKICAqLwogCiAvKiBDUFUgY29yZSAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfQ0xLCTc1MDAwMDAwCS8qIE5JT1MgQ1BVIGNsb2NrCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9JQ0FDSEUJKDApCQkvKiBpbnN0cnVjdGlvbiBjYWNoZQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfRENBQ0hFCSgwKQkJLyogZGF0YSBjYWNoZQkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1JFR19OVU1TCTUxMgkJLyogbnVtYmVyIG9mIHJlZ2lzdGVyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9NVUwJMAkJLyogMTZ4MTYgTVVMOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0NMSwk3NTAwMDAwMAkvKiBOSU9TIENQVSBjbG9jawkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0lDQUNIRQkoMCkJCS8qIGluc3RydWN0aW9uIGNhY2hlCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfRENBQ0hFCSgwKQkJLyogZGF0YSBjYWNoZQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9SRUdfTlVNUwk1MTIJCS8qIG51bWJlciBvZiByZWdpc3RlcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX01VTAkwCQkvKiAxNngxNiBNVUw6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9NU1RFUAkxCQkvKiAxNngxNiBNU1RFUDoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9NU1RFUAkxCQkvKiAxNngxNiBNU1RFUDoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NUQUNLCTB4MDIwMDAwMDAJLyogc3RhY2sgdG9wCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1ZFQ19CQVNFCTB4MDEwMDAwMDAJLyogSVJRIHZlY3RvcnMJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVkVDX1NJWkUJMjU2CQkvKgkJc2l6ZQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVkVDX05VTVMJNjQJCS8qCQludW1iZXJzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9SU1RfVkVDVAkweDAwMDAwMDAwCS8qIFJFU0VUIHZlY3RvcglhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9EQkdfQ09SRQkwCQkvKiBDUFUgZGVidWc6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1RBQ0sJMHgwMjAwMDAwMAkvKiBzdGFjayB0b3AJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19CQVNFCTB4MDEwMDAwMDAJLyogSVJRIHZlY3RvcnMJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19TSVpFCTI1NgkJLyoJCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfTlVNUwk2NAkJLyoJCW51bWJlcnMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9SU1RfVkVDVAkweDAwMDAwMDAwCS8qIFJFU0VUIHZlY3RvcglhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfREJHX0NPUkUJMAkJLyogQ1BVIGRlYnVnOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwogCiAvKiBUaGUgb2Zmc2V0IGFkZHJlc3MgaW4gZmxhc2ggdG8gY2hlY2sgZm9yIHRoZSBOaW9zIHNpZ25hdHVyZSAiTmkiLgogICogKHNlZSBHTV9GbGFzaEV4ZWMgaW4gZ2VybXNfbW9uaXRvci5zKSAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfRVhFU19PRkZTCTB4MEMKKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9FWEVTX09GRlMJMHgwQwogCiAvKiBvbi1jaGlwIGV4dGVuc2lvbnMgKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUkFNX0JBU0UJCQkvKiBvbiBjaGlwIFJBTQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1JBTV9TSVpFCQkJLyogNjQgS0IJc2l6ZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUkFNX0JBU0UJCQkvKiBvbiBjaGlwIFJBTQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9SQU1fU0laRQkJCS8qIDY0IEtCCXNpemUJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUk9NX0JBU0UJMHgwMDAwMDAwMAkvKiBvbiBjaGlwIFJPTQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9ST01fU0laRQkoMiAqIDEwMjQpCS8qICAyIEtCCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9ST01fQkFTRQkweDAwMDAwMDAwCS8qIG9uIGNoaXAgUk9NCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9ST01fU0laRQkoMiAqIDEwMjQpCS8qICAyIEtCCXNpemUJKi8KIAotI3VuZGVmCUNGR19OSU9TX0NQVV9PQ0lfQkFTRQkJCS8qIE9DSSBjb3JlCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfT0NJX1NJWkUJCQkvKgkJc2l6ZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfT0NJX0JBU0UJCQkvKiBPQ0kgY29yZQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfU0laRQkJCS8qCQlzaXplCSovCiAKIC8qIHRpbWVyICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUl9OVU1TCTEJCS8qIG51bWJlciBvZiB0aW1lcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSX05VTVMJMQkJLyogbnVtYmVyIG9mIHRpbWVyCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMAkweDAwMDAwODQwCS8qIFRJTUVSMAlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfSVJRCTE2CQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfUEVSCTEwMDAJCS8qICBwZXJpb2RlCXVzZWMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9BUgkwCQkvKiAgYWx3YXlzIHJ1bjoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjAJMHgwMDAwMDg0MAkvKiBUSU1FUjAJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9JUlEJMTYJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfUEVSCTEwMDAJCS8qICBwZXJpb2RlCXVzZWMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfQVIJMAkJLyogIGFsd2F5cyBydW46CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfRlAJMAkJLyogIGZpeGVkIHBlcjoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfRlAJMAkJLyogIGZpeGVkIHBlcjoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9TUwkxCQkvKiAgc25hcGhvdDoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfU1MJMQkJLyogIHNuYXBob3Q6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCiAKIC8qIHNlcmlhbCBpL28gKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlRfTlVNUwkyCQkvKiBudW1iZXIgb2YgdWFydHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUX05VTVMJMgkJLyogbnVtYmVyIG9mIHVhcnRzCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwCTB4MDAwMDA4MDAJLyogVUFSVDAJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfSVJRCTE3CQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMF9CUgkxMTUyMDAJCS8qICBiYXVkcmF0ZQl2YXIoMCkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX0RCCTgJCS8qICBkYXRhIGJpdAkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX1NCCTIJCS8qICBzdG9wIGJpdAkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX1BBCTAJCS8qICBwYXJpdHkJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwCTB4MDAwMDA4MDAJLyogVUFSVDAJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0lSUQkxNwkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0JSCTExNTIwMAkJLyogIGJhdWRyYXRlCXZhcigwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0RCCTgJCS8qICBkYXRhIGJpdAkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9TQgkyCQkvKiAgc3RvcCBiaXQJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfUEEJMAkJLyogIHBhcml0eQlub25lKDApCSovCiAJCQkJCQkvKgkJb2RkKDEpCSovCiAJCQkJCQkvKgkJZXZlbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfSFMJMAkJLyogIGhhbmRzaGFrZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9IUwkwCQkvKiAgaGFuZHNoYWtlOglubygwKQkqLwogCQkJCQkJLyoJCWNydHMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX0VPUAkwCQkvKiAgZW9wIHJlZzoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9FT1AJMAkJLyogIGVvcCByZWc6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQxCTB4MDAwMDA4YTAJLyogVUFSVDEJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDFfSVJRCTE4CQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMV9CUgkxMTUyMDAJCS8qICBiYXVkcmF0ZQl2YXIoMCkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQxX0RCCTgJCS8qICBkYXRhIGJpdAkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQxX1NCCTEJCS8qICBzdG9wIGJpdAkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQxX1BBCTAJCS8qICBwYXJpdHkJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQxCTB4MDAwMDA4YTAJLyogVUFSVDEJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQxX0lSUQkxOAkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQxX0JSCTExNTIwMAkJLyogIGJhdWRyYXRlCXZhcigwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQxX0RCCTgJCS8qICBkYXRhIGJpdAkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMV9TQgkxCQkvKiAgc3RvcCBiaXQJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDFfUEEJMAkJLyogIHBhcml0eQlub25lKDApCSovCiAJCQkJCQkvKgkJb2RkKDEpCSovCiAJCQkJCQkvKgkJZXZlbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDFfSFMJMAkJLyogIGhhbmRzaGFrZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMV9IUwkwCQkvKiAgaGFuZHNoYWtlOglubygwKQkqLwogCQkJCQkJLyoJCWNydHMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQxX0VPUAkwCQkvKiAgZW9wIHJlZzoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMV9FT1AJMAkJLyogIGVvcCByZWc6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCiAKIC8qIHBhcmFsbGVsIGkvbyAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPX05VTVMJMgkJLyogbnVtYmVyIG9mIHBhcnBvcnRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPX05VTVMJMgkJLyogbnVtYmVyIG9mIHBhcnBvcnRzCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzAJMHgwMDAwMDg2MAkvKiBQSU8wCQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1BJTzBfSVJRCQkJLyoJCXcvbyBJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMF9UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMAkweDAwMDAwODYwCS8qIFBJTzAJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wX0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wX1RZUEUJMQkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMF9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xCTB4MDAwMDA4NzAJLyogUElPMQkJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9QSU8xX0lSUQkJCS8qCQl3L28gSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX0JJVFMJNAkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzFfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEJMHgwMDAwMDg3MAkvKiBQSU8xCQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xX0lSUQkJCS8qCQl3L28gSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9CSVRTCTQJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzFfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMV9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAogLyogSURFIGkvZiAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfSURFX05VTVMJMQkJLyogbnVtYmVyIG9mIElERSBjb250ci4JKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0lERTAJMHgwMDAwMDkwMAkvKiBJREUwCQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9JREUwX0lSUQkyNQkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0lERV9OVU1TCTEJCS8qIG51bWJlciBvZiBJREUgY29udHIuCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfSURFMAkweDAwMDAwOTAwCS8qIElERTAJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9JREUwX0lSUQkyNQkJLyoJCUlSUQkqLwogCiAvKiBtZW1vcnkgYWNjZXNzaWJpbGl0eSAqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9TUkFNX0JBU0UJCQkvKiBib2FyZCBTUkFNCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfU1JBTV9TSVpFCQkJLyogIDEgTUIJc2l6ZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9CQVNFCQkJLyogYm9hcmQgU1JBTQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX1NJWkUJCQkvKiAgMSBNQglzaXplCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NEUkFNX0JBU0UJMHgwMTAwMDAwMAkvKiBib2FyZCBTRFJBTQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TRFJBTV9TSVpFCSgxNioxMDI0KjEwMjQpCS8qIDE2IE1CCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9CQVNFCTB4MDEwMDAwMDAJLyogYm9hcmQgU0RSQU0JYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX1NJWkUJKDE2KjEwMjQqMTAyNCkJLyogMTYgTUIJc2l6ZQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9GTEFTSF9CQVNFCTB4MDA4MDAwMDAJLyogYm9hcmQgRmxhc2gJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfRkxBU0hfU0laRQkoOCoxMDI0KjEwMjQpCS8qICA4IE1CCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9CQVNFCTB4MDA4MDAwMDAJLyogYm9hcmQgRmxhc2gJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUJKDgqMTAyNCoxMDI0KQkvKiAgOCBNQglzaXplCSovCiAKIC8qIExBTiAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOX05VTVMJMQkJLyogbnVtYmVyIG9mIExBTiBpL2YJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU5fTlVNUwkxCQkvKiBudW1iZXIgb2YgTEFOIGkvZgkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX0JBU0UJMHgwMDAxMDAwMAkvKiBMQU4wCQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX09GRlMJMHgwMzAwCQkvKgkJb2Zmc2V0CSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX0lSUQkyMAkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9CVVNXCTMyCQkvKgkgICAgICAgIGJ1c3dpZHRoKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xBTjBfVFlQRQkwCQkvKglzbWM5MTExMSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfQkFTRQkweDAwMDEwMDAwCS8qIExBTjAJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX09GRlMJMHgwMzAwCQkvKgkJb2Zmc2V0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOMF9JUlEJMjAJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JVU1cJMzIJCS8qCSAgICAgICAgYnVzd2lkdGgqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfVFlQRQkwCQkvKglzbWM5MTExMSgwKQkqLwogCQkJCQkJLyoJY3M4OTAwKDEpCSovCiAJCQkJCQkvKiBleDoJb3Blbm1hYygyKQkqLwogCQkJCQkJLyogZXg6CWFsdGVyYW1hYygzKQkqLwogCiAvKiBzeW1ib2xpYyByZWRlZmluaXRpb24gKHVuZGVmLCBpZiBub3QgcHJlc2VudCkgKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIJCTAJLyogVElNRVIwOiB0aWNrIChuZWVkZWQpKi8KLSN1bmRlZglDRkdfTklPU19DUFVfVVNFUl9USU1FUgkJCS8qIFRJTUVSeDogdXNlcnMgY2hvaWNlCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUgkJMAkvKiBUSU1FUjA6IHRpY2sgKG5lZWRlZCkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfVVNFUl9USU1FUgkJCS8qIFRJTUVSeDogdXNlcnMgY2hvaWNlCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NGUE9XRVJfUElPCTAJLyogUElPMDogQ0YgcG93ZXIvc3cuCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9CVVRUT05fUElPCQkxCS8qIFBJTzE6IGJ1dHRvbnMJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfTENEX1BJTwkJCS8qIFBJT3g6IEFTQ0lJIExDRAkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9MRURfUElPCQkJLyogUElPeDogTEVEIGJhcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8JCS8qIFBJT3g6IDctc2VnLiBkaXNwbGF5CSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1JFQ09ORl9QSU8JCQkvKiBQSU94OiByZWNvbmYgcGluCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8JCS8qIFBJT3g6IENGIHByZXNlbnQgSVJRCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX0NGQVRBU0VMX1BJTwkJLyogUElPeDogQ0YgQVRBIHNlbGVjdAkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0NGUE9XRVJfUElPCTAJLyogUElPMDogQ0YgcG93ZXIvc3cuCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQlVUVE9OX1BJTwkJMQkvKiBQSU8xOiBidXR0b25zCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9MQ0RfUElPCQkJLyogUElPeDogQVNDSUkgTENECSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPCQkJLyogUElPeDogTEVEIGJhcgkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPCQkvKiBQSU94OiA3LXNlZy4gZGlzcGxheQkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUkVDT05GX1BJTwkJCS8qIFBJT3g6IHJlY29uZiBwaW4JKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8JCS8qIFBJT3g6IENGIHByZXNlbnQgSVJRCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9DRkFUQVNFTF9QSU8JCS8qIFBJT3g6IENGIEFUQSBzZWxlY3QJKi8KIAogI2VuZGlmCS8qIF9fQ09ORklHX0RLMVMxMF9NVFhfTERLXzIwX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9ESzFTMTBfc2FmZV8zMi5oIGIvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9zYWZlXzMyLmgKaW5kZXggODU0MWExMS4uY2VkNGVmMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9zYWZlXzMyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9zYWZlXzMyLmgKQEAgLTI5LDYgKzI5LDYgQEAKICAqCiAgKiAhISEgVE9ETyAhISEgVE9ETyAhISEKICAqLwotI2Vycm9yICoqKiBDRkdfRVJST1I6IERLMVMxMF9zYWZlXzMyIGhhdmUgdG8gYmUgZGVmaW5lZCAodXNlIERLMVMxMF9zdGFuZGFyZF8zMiBhcyB0ZW1wbGF0ZSkKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogREsxUzEwX3NhZmVfMzIgaGF2ZSB0byBiZSBkZWZpbmVkICh1c2UgREsxUzEwX3N0YW5kYXJkXzMyIGFzIHRlbXBsYXRlKQogCiAjZW5kaWYJLyogX19DT05GSUdfREsxUzEwX1NBRkVfMzJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9zdGFuZGFyZF8zMi5oIGIvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9zdGFuZGFyZF8zMi5oCmluZGV4IGI4M2MzMTUuLmU2Y2NhZjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ESzFTMTBfc3RhbmRhcmRfMzIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvREsxUzEwX3N0YW5kYXJkXzMyLmgKQEAgLTMwLDI0NSArMzAsMjQ1IEBACiAgKiBIZXJlIHdlIG11c3QgZGVmaW5lIENQVSBkZXBlbmRlbmNpZXMuIEFueSB1bnN1cHBvcnRlZCBvcHRpb24gaGF2ZSB0bwogICogYmUgZGVmaW5lZCB3aXRoIHplcm8sIGV4YW1wbGUgQ1BVIHdpdGhvdXQgZGF0YSBjYWNoZSAvIE9DSToKICAqCi0gKgkjZGVmaW5lCUNGR19OSU9TX0NQVV9JQ0FDSEUJNDA5NgotICoJI2RlZmluZQlDRkdfTklPU19DUFVfRENBQ0hFCTAKLSAqCSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX09DSV9CQVNFCTAKLSAqCSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX09DSV9TSVpFCTAKKyAqCSNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9JQ0FDSEUJNDA5NgorICoJI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0RDQUNIRQkwCisgKgkjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfT0NJX0JBU0UJMAorICoJI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9TSVpFCTAKICAqLwogCiAvKiBDUFUgY29yZSAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfQ0xLCTUwMDAwMDAwCS8qIE5JT1MgQ1BVIGNsb2NrCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9JQ0FDSEUJKDQgKiAxMDI0KQkvKiBpbnN0cnVjdGlvbiBjYWNoZQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfRENBQ0hFCSg0ICogMTAyNCkJLyogZGF0YSBjYWNoZQkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1JFR19OVU1TCTI1NgkJLyogbnVtYmVyIG9mIHJlZ2lzdGVyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9NVUwJMAkJLyogMTZ4MTYgTVVMOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0NMSwk1MDAwMDAwMAkvKiBOSU9TIENQVSBjbG9jawkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0lDQUNIRQkoNCAqIDEwMjQpCS8qIGluc3RydWN0aW9uIGNhY2hlCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfRENBQ0hFCSg0ICogMTAyNCkJLyogZGF0YSBjYWNoZQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9SRUdfTlVNUwkyNTYJCS8qIG51bWJlciBvZiByZWdpc3RlcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX01VTAkwCQkvKiAxNngxNiBNVUw6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9NU1RFUAkxCQkvKiAxNngxNiBNU1RFUDoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9NU1RFUAkxCQkvKiAxNngxNiBNU1RFUDoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NUQUNLCTB4MDA4ZmZmMDAJLyogc3RhY2sgdG9wCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1ZFQ19CQVNFCTB4MDA4ZmZmMDAJLyogSVJRIHZlY3RvcnMJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVkVDX1NJWkUJMjU2CQkvKgkJc2l6ZQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVkVDX05VTVMJNjQJCS8qCQludW1iZXJzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9SU1RfVkVDVAkweDAwOTIwMDAwCS8qIFJFU0VUIHZlY3RvcglhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9EQkdfQ09SRQkwCQkvKiBDUFUgZGVidWc6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1RBQ0sJMHgwMDhmZmYwMAkvKiBzdGFjayB0b3AJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19CQVNFCTB4MDA4ZmZmMDAJLyogSVJRIHZlY3RvcnMJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19TSVpFCTI1NgkJLyoJCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfTlVNUwk2NAkJLyoJCW51bWJlcnMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9SU1RfVkVDVAkweDAwOTIwMDAwCS8qIFJFU0VUIHZlY3RvcglhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfREJHX0NPUkUJMAkJLyogQ1BVIGRlYnVnOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwogCiAvKiBvbi1jaGlwIGV4dGVuc2lvbnMgKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1JBTV9CQVNFCTB4MDA5MDAwMDAJLyogb24gY2hpcCBSQU0JYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUkFNX1NJWkUJKDY0ICogMTAyNCkJLyogNjQgS0IJc2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JBTV9CQVNFCTB4MDA5MDAwMDAJLyogb24gY2hpcCBSQU0JYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JBTV9TSVpFCSg2NCAqIDEwMjQpCS8qIDY0IEtCCXNpemUJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUk9NX0JBU0UJMHgwMDkyMDAwMAkvKiBvbiBjaGlwIFJPTQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9ST01fU0laRQkoMiAqIDEwMjQpCS8qICAyIEtCCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9ST01fQkFTRQkweDAwOTIwMDAwCS8qIG9uIGNoaXAgUk9NCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9ST01fU0laRQkoMiAqIDEwMjQpCS8qICAyIEtCCXNpemUJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfT0NJX0JBU0UJMHgwMDkyMDgwMAkvKiBPQ0kgY29yZQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9PQ0lfU0laRQkyNTYJCS8qCQlzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfT0NJX0JBU0UJMHgwMDkyMDgwMAkvKiBPQ0kgY29yZQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfT0NJX1NJWkUJMjU2CQkvKgkJc2l6ZQkqLwogCiAvKiB0aW1lciAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVJfTlVNUwkyCQkvKiBudW1iZXIgb2YgdGltZXIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUl9OVU1TCTIJCS8qIG51bWJlciBvZiB0aW1lcgkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjAJMHgwMDkyMDk0MAkvKiBUSU1FUjAJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIwX0lSUQkxNgkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIwX1BFUgkxMDAwCQkvKiAgcGVyaW9kZQl1c2VjCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfQVIJMAkJLyogIGFsd2F5cyBydW46CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIwCTB4MDA5MjA5NDAJLyogVElNRVIwCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfSVJRCTE2CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX1BFUgkxMDAwCQkvKiAgcGVyaW9kZQl1c2VjCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0FSCTAJCS8qICBhbHdheXMgcnVuOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIwX0ZQCTAJCS8qICBmaXhlZCBwZXI6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0ZQCTAJCS8qICBmaXhlZCBwZXI6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfU1MJMQkJLyogIHNuYXBob3Q6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX1NTCTEJCS8qICBzbmFwaG90OglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjEJMHgwMDkyMDllMAkvKiBUSU1FUjEJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIxX0lSUQk1MAkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIxX1BFUgkxMDAwMAkJLyogIHBlcmlvZGUJdXNlYwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIxX0FSCTEJCS8qICBhbHdheXMgcnVuOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMQkweDAwOTIwOWUwCS8qIFRJTUVSMQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX0lSUQk1MAkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9QRVIJMTAwMDAJCS8qICBwZXJpb2RlCXVzZWMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfQVIJMQkJLyogIGFsd2F5cyBydW46CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjFfRlAJMQkJLyogIGZpeGVkIHBlcjoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfRlAJMQkJLyogIGZpeGVkIHBlcjoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMV9TUwkwCQkvKiAgc25hcGhvdDoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfU1MJMAkJLyogIHNuYXBob3Q6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCiAKIC8qIHNlcmlhbCBpL28gKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlRfTlVNUwkxCQkvKiBudW1iZXIgb2YgdWFydHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUX05VTVMJMQkJLyogbnVtYmVyIG9mIHVhcnRzCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwCTB4MDA5MjA5MDAJLyogVUFSVDAJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfSVJRCTI1CQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMF9CUgkxMTUyMDAJCS8qICBiYXVkcmF0ZQl2YXIoMCkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX0RCCTgJCS8qICBkYXRhIGJpdAkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX1NCCTEJCS8qICBzdG9wIGJpdAkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX1BBCTAJCS8qICBwYXJpdHkJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwCTB4MDA5MjA5MDAJLyogVUFSVDAJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0lSUQkyNQkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0JSCTExNTIwMAkJLyogIGJhdWRyYXRlCXZhcigwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0RCCTgJCS8qICBkYXRhIGJpdAkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9TQgkxCQkvKiAgc3RvcCBiaXQJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfUEEJMAkJLyogIHBhcml0eQlub25lKDApCSovCiAJCQkJCQkvKgkJb2RkKDEpCSovCiAJCQkJCQkvKgkJZXZlbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfSFMJMAkJLyogIGhhbmRzaGFrZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9IUwkwCQkvKiAgaGFuZHNoYWtlOglubygwKQkqLwogCQkJCQkJLyoJCWNydHMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX0VPUAkwCQkvKiAgZW9wIHJlZzoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9FT1AJMAkJLyogIGVvcCByZWc6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCiAKIC8qIHBhcmFsbGVsIGkvbyAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPX05VTVMJOAkJLyogbnVtYmVyIG9mIHBhcnBvcnRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPX05VTVMJOAkJLyogbnVtYmVyIG9mIHBhcnBvcnRzCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzAJMHgwMDkyMDk2MAkvKiBQSU8wCQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX0lSUQk0MAkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMF9CSVRTCTQJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wCTB4MDA5MjA5NjAJLyogUElPMAkJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfSVJRCTQwCQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9CSVRTCTQJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMF9FREdFCTMJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wX0VER0UJMwkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX0lUWVBFCTIJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfSVRZUEUJMgkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMQkweDAwOTIwOTcwCS8qIFBJTzEJCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUElPMV9JUlEJCQkvKgkJdy9vIElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMV9CSVRTCTExCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMV9UWVBFCTAJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMQkweDAwOTIwOTcwCS8qIFBJTzEJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xX0JJVFMJMTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9UWVBFCTAJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzFfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMV9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMgkweDAwOTIwOTgwCS8qIFBJTzIJCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUElPMl9JUlEJCQkvKgkJdy9vIElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMl9CSVRTCTgJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8yX1RZUEUJMQkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yCTB4MDA5MjA5ODAJLyogUElPMgkJYWRkcgkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUElPMl9JUlEJCQkvKgkJdy9vIElSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzJfQklUUwk4CQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzJfVFlQRQkxCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8yX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzJfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMl9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMl9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzMJMHgwMDkyMDk5MAkvKiBQSU8zCQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1BJTzNfSVJRCQkJLyoJCXcvbyBJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzNfQklUUwkxNgkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzNfVFlQRQkxCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzMJMHgwMDkyMDk5MAkvKiBQSU8zCQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0lSUQkJCS8qCQl3L28gSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19CSVRTCTE2CQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfVFlQRQkxCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8zX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzNfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPM19JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzQJMHgwMDkyMDlhMAkvKiBQSU80CQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1BJTzRfSVJRCQkJLyoJCXcvbyBJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzRfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNF9UWVBFCTAJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNAkweDAwOTIwOWEwCS8qIFBJTzQJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzRfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU80X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU80X1RZUEUJMAkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNF9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNF9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU80X0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzRfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzRfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNF9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81CTB4MDA5MjA5YjAJLyogUElPNQkJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNV9JUlEJMzUJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzVfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNV9UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNQkweDAwOTIwOWIwCS8qIFBJTzUJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU81X0lSUQkzNQkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81X0NBUAkxCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU81X0NBUAkxCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzVfRURHRQkzCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNV9FREdFCTMJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNV9JVFlQRQkyCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU81X0lUWVBFCTIJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzYJMHgwMDkyMDljMAkvKiBQSU82CQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1BJTzZfSVJRCQkJLyoJCXcvbyBJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzZfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNl9UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNgkweDAwOTIwOWMwCS8qIFBJTzYJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzZfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU82X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU82X1RZUEUJMQkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNl9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNl9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU82X0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzZfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzZfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNl9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU83CTB4MDA5MjA5ZDAJLyogUElPNwkJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9QSU83X0lSUQkJCS8qCQl3L28gSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU83X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzdfVFlQRQkxCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzcJMHgwMDkyMDlkMAkvKiBQSU83CQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X0lSUQkJCS8qCQl3L28gSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPN19CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPN19UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzdfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzdfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPN19FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU83X0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzdfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAogLyogSURFIGkvZiAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfSURFX05VTVMJMQkJLyogbnVtYmVyIG9mIElERSBjb250ci4JKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0lERTAJMHgwMDkyMGEwMAkvKiBJREUwCQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfSURFX05VTVMJMQkJLyogbnVtYmVyIG9mIElERSBjb250ci4JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9JREUwCTB4MDA5MjBhMDAJLyogSURFMAkJYWRkcgkqLwogCiAvKiBtZW1vcnkgYWNjZXNzaWJpbGl0eSAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfU1JBTV9CQVNFCTB4MDA4MDAwMDAJLyogYm9hcmQgU1JBTQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TUkFNX1NJWkUJKDEwMjQgKiAxMDI0KQkvKiAgMSBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9CQVNFCTB4MDA4MDAwMDAJLyogYm9hcmQgU1JBTQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9TSVpFCSgxMDI0ICogMTAyNCkJLyogIDEgTUIJc2l6ZQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TRFJBTV9CQVNFCTB4MDEwMDAwMDAJLyogYm9hcmQgU0RSQU0JYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfU0RSQU1fU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAxNiBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fQkFTRQkweDAxMDAwMDAwCS8qIGJvYXJkIFNEUkFNCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9TSVpFCSgxNioxMDI0KjEwMjQpCS8qIDE2IE1CCXNpemUJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfRkxBU0hfQkFTRQkweDAwMDAwMDAwCS8qIGJvYXJkIEZsYXNoCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0ZMQVNIX1NJWkUJKDgqMTAyNCoxMDI0KQkvKiAgOCBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfQkFTRQkweDAwMDAwMDAwCS8qIGJvYXJkIEZsYXNoCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFCSg4KjEwMjQqMTAyNCkJLyogIDggTUIJc2l6ZQkqLwogCiAvKiBMQU4gKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xBTl9OVU1TCTEJCS8qIG51bWJlciBvZiBMQU4gaS9mCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOX05VTVMJMQkJLyogbnVtYmVyIG9mIExBTiBpL2YJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9CQVNFCTB4MDA5MTAwMDAJLyogTEFOMAkJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9PRkZTCTB4MDMwMAkJLyoJCW9mZnNldAkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9JUlEJMzAJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xBTjBfQlVTVwkzMgkJLyoJICAgICAgICBidXN3aWR0aCovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX1RZUEUJMAkJLyoJc21jOTExMTEoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JBU0UJMHgwMDkxMDAwMAkvKiBMQU4wCQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOMF9PRkZTCTB4MDMwMAkJLyoJCW9mZnNldAkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfSVJRCTMwCQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CVVNXCTMyCQkvKgkgICAgICAgIGJ1c3dpZHRoKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX1RZUEUJMAkJLyoJc21jOTExMTEoMCkJKi8KIAkJCQkJCS8qCWNzODkwMCgxKQkqLwogCQkJCQkJLyogZXg6CWFsdGVyYW1hYygyKQkqLwogCiAvKiBzeW1ib2xpYyByZWRlZmluaXRpb24gKHVuZGVmLCBpZiBub3QgcHJlc2VudCkgKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VTRVJfVElNRVIJCTAJLyogVElNRVIwOiB1c2VycyBjaG9pY2UJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIJCTEJLyogVElNRVIxOiB0aWNrIChuZWVkZWQpKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VU0VSX1RJTUVSCQkwCS8qIFRJTUVSMDogdXNlcnMgY2hvaWNlCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUgkJMQkvKiBUSU1FUjE6IHRpY2sgKG5lZWRlZCkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9CVVRUT05fUElPCQkwCS8qIFBJTzA6IGJ1dHRvbnMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xDRF9QSU8JCTEJLyogUElPMTogQVNDSUkgTENECSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MRURfUElPCQkyCS8qIFBJTzI6IExFRCBiYXIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTwkzCS8qIFBJTzM6IDctc2VnLiBkaXNwbGF5CSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9SRUNPTkZfUElPCQk0CS8qIFBJTzQ6IHJlY29uZiBwaW4JKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8JNQkvKiBQSU81OiBDRiBwcmVzZW50IElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfQ0ZQT1dFUl9QSU8JNgkvKiBQSU82OiBDRiBwb3dlci9zdy4JKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NGQVRBU0VMX1BJTwk3CS8qIFBJTzc6IENGIEFUQSBzZWxlY3QJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9CVVRUT05fUElPCQkwCS8qIFBJTzA6IGJ1dHRvbnMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQ0RfUElPCQkxCS8qIFBJTzE6IEFTQ0lJIExDRAkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8JCTIJLyogUElPMjogTEVEIGJhcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NFVkVOU0VHX1BJTwkzCS8qIFBJTzM6IDctc2VnLiBkaXNwbGF5CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUkVDT05GX1BJTwkJNAkvKiBQSU80OiByZWNvbmYgcGluCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZQUkVTRU5UX1BJTwk1CS8qIFBJTzU6IENGIHByZXNlbnQgSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZQT1dFUl9QSU8JNgkvKiBQSU82OiBDRiBwb3dlci9zdy4JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9DRkFUQVNFTF9QSU8JNwkvKiBQSU83OiBDRiBBVEEgc2VsZWN0CSovCiAKICNlbmRpZgkvKiBfX0NPTkZJR19ESzFTMTBfU1RBTkRBUkRfMzJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0RQNDA1LmggYi9pbmNsdWRlL2NvbmZpZ3MvRFA0MDUuaAppbmRleCBkZjliYzdhLi4wZmY0ZjdkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvRFA0MDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRFA0MDUuaApAQCAtNTAsNyArNTAsNyBAQAogCiAjZGVmaW5lIENPTkZJR19QUkVCT09UICAgICAgICAgICAgICAgICAgLyogZW5hYmxlIHByZWJvb3QgdmFyaWFibGUgICAgICAqLwogCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMAkvKiBQSFkgYWRkcmVzcwkJCSovCkBAIC04Miw3ICs4Miw3IEBACiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKICNkZWZpbmUgQ09ORklHX1JUQ19NQzE0NjgxOAkJLyogRFMxNjg1IGlzIE1DMTQ2ODE4IGNvbXBhdGlibGUqLwotI2RlZmluZSBDRkdfUlRDX1JFR19CQVNFX0FERFIJIDB4RjAwMDA1MDAgLyogUlRDIEJhc2UgQWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SVENfUkVHX0JBU0VfQUREUgkgMHhGMDAwMDUwMCAvKiBSVEMgQmFzZSBBZGRyZXNzCQkqLwogCiAjZGVmaW5lIENPTkZJR19TRFJBTV9CQU5LMAkxCS8qIGluaXQgb25ib2FyZCBTRFJBTSBiYW5rIDAJKi8KIApAQCAtOTEsNTAgKzkxLDUwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI3VuZGVmCUNGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECSAgICA2OTEyMDAKICN1bmRlZglDT05GSUdfVUFSVDFfQ09OU09MRQkJLyogZGVmaW5lIGZvciB1YXJ0MSBhcyBjb25zb2xlCSovCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAgICAgXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGNoZWNrIGZvciBrZXlwcmVzcyBvbiBib290ZGVsYXk9PTAgKi8KIAogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRSAxCS8qIGluY2x1ZGUgdmVyc2lvbiBlbnYgdmFyaWFibGUgKi8KIAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTUxLDY2ICsxNTEsNjYgQEAKIAogI3VuZGVmCUNPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBwcmludCBwY2kgZGV2aWNlcyBAIHN0YXJ0dXAJKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1CS8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1CSovCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFCTB4MGIyMAkvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1CS8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4ZmZjMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4RkZDMDAwMDAJLyogRkxBU0ggYmFuayAjMAkqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmIDAgLyogdGVzdC1vbmx5ICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LCTAJICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUwkxCSAgICAvKiAhIHNlY29uZCBiYW5rIGNvbnRhaW5zIFUtQm9vdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksJMAkgICAgLyogdXNlIGZvciBKRkZTMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwkxCSAgICAvKiAhIHNlY29uZCBiYW5rIGNvbnRhaW5zIFUtQm9vdCAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgRkxBU0hfQkFTRTBfUFJFTElNKQotIyBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBGTEFTSF9CQVNFMF9QUkVMSU0pCisjIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbHNlCi0jIHVuZGVmIENGR19SQU1CT09UCisjIHVuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIyMSwyNCArMjIxLDI0IEBACiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg3MDAJLyogMjA0OCBieXRlcyBtYXkgYmUgdXNlZCBmb3IgZW52IHZhcnMqLwogCQkJCSAgIC8qIHRvdGFsIHNpemUgb2YgYSBDQVQyNFdDMTYgaXMgMjA0OCBieXRlcyAqLwogCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkyNDIJCQkvKiBOVlJBTSBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweEYwMDAwNTAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkyNDIJCQkvKiBOVlJBTSBzaXplCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cApAQCAtMjQ4LDQ3ICsyNDgsNDcgQEAKICNkZWZpbmUgUlRDX0JBCQkweEYwMDAwNTAwCSAgICAvKiBSVEMgQmFzZSBBZGRyZXNzCQkJKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwLCBOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogI2lmIDAgLyogdGVzdC1vbmx5ICovCiAvKiBNZW1vcnkgQmFuayAxIChGbGFzaCBCYW5rIDEsIE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkweEY0MDE4MDAwICAvKiBCQVM9MHhGNDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkweEY0MDE4MDAwICAvKiBCQVM9MHhGNDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAjZW5kaWYKIAogLyogTWVtb3J5IEJhbmsgMiAoOCBCaXQgUGVyaXBoZXJhbDogQ0FOLCBVQVJULCBSVEMpIGluaXRpYWxpemF0aW9uCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZQR0Egc3R1ZmYKICAqLwotI2RlZmluZSBDRkdfRlBHQV9YQzk1WEwJCTEJICAgIC8qIHVzaW5nIFhpbGlueCBYQzk1WEwgQ1BMRAkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX01BWF9TSVpFCTMyKjEwMjQJICAgIC8qIDMya0J5dGUgaXMgZW5vdWdoIGZvciBDUExEICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9YQzk1WEwJCTEJICAgIC8qIHVzaW5nIFhpbGlueCBYQzk1WEwgQ1BMRAkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRQkzMioxMDI0CSAgICAvKiAzMmtCeXRlIGlzIGVub3VnaCBmb3IgQ1BMRCAgICAqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBKVEFHIFRNUyBwaW4gKHBwYyBvdXRwdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEpUQUcgVENLIHBpbiAocHBjIG91dHB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEpUQUcgVERPLT5UREkgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICovCi0jZGVmaW5lIENGR19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIHVudXNlZCAocHBjIGlucHV0KQkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEpUQUcgVERJLT5URE8gcGluIChwcGMgaW5wdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEpUQUcgVE1TIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEpUQUcgVENLIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBKVEFHIFRETy0+VERJIGRhdGEgcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogdW51c2VkIChwcGMgaW5wdXQpCSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEpUQUcgVERJLT5URE8gcGluIChwcGMgaW5wdXQpICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCSAgMQorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCSAgMQogCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgR1BJTyBzZXR1cCAoUFBDNDA1RVAgc3BlY2lmaWMpCkBAIC0zMDYsMTMgKzMwNiwxMyBAQAogLyogR1BJTyBPdXRwdXQ6CQlPU1I9MDAsIElTUj0wMCwgVFNSPTAwLCBUQ1I9MSAqLwogLyogQWx0LiBGdW50aW9uIElucHV0OglPU1I9MDAsIElTUj0wMSwgVFNSPTAwLCBUQ1I9MCAqLwogLyogQWx0LiBGdW50aW9uIE91dHB1dDogT1NSPTAxLCBJU1I9MDAsIFRTUj0wMCwgVENSPTEgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkgJCTB4NDAwMDA1NDAgIC8qCTAgLi4uIDE1ICovCi0jZGVmaW5lIENGR19HUElPMF9PU1JMCQkweDAwMDAwMTEwICAvKiAxNiAuLi4gMzEgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFICQkweDAwMDAwMDAwICAvKgkwIC4uLiAxNSAqLwotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUwJCTB4MTQwMDAwNDUgIC8qIDE2IC4uLiAzMSAqLwotI2RlZmluZSBDRkdfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMCAgLyoJMCAuLi4gMTUgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAgIC8qIDE2IC4uLiAzMSAqLwotI2RlZmluZSBDRkdfR1BJTzBfVENSCQkweEY3RkUwMDE0ICAvKgkwIC4uLiAzMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkgJCTB4NDAwMDA1NDAgIC8qCTAgLi4uIDE1ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSTAkJMHgwMDAwMDExMCAgLyogMTYgLi4uIDMxICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAgIC8qCTAgLi4uIDE1ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUwJCTB4MTQwMDAwNDUgIC8qIDE2IC4uLiAzMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkgJCTB4MDAwMDAwMDAgIC8qCTAgLi4uIDE1ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMCAgLyogMTYgLi4uIDMxICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVENSCQkweEY3RkUwMDE0ICAvKgkwIC4uLiAzMSAqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9EVTQwNS5oIGIvaW5jbHVkZS9jb25maWdzL0RVNDA1LmgKaW5kZXggYjkzZTJhOC4uOTM5ZTIxNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0RVNDA1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0RVNDA1LmgKQEAgLTUyLDcgKzUyLDcgQEAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QgICAgICAgICAgICAgICAgICAvKiBlbmFibGUgcHJlYm9vdCB2YXJpYWJsZSAgICAgICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkwCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTg4LDQ0ICs4OCw0NCBAQAogI3VuZGVmIENPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCiAjZGVmaW5lIENPTkZJR19SVENfTUMxNDY4MTgJCS8qIEJRMzI4NSBpcyBNQzE0NjgxOCBjb21wYXRpYmxlKi8KLSNkZWZpbmUgQ0ZHX1JUQ19SRUdfQkFTRV9BRERSCSAweEYwMDAwMDgwIC8qIFJUQyBCYXNlIEFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlRDX1JFR19CQVNFX0FERFIJIDB4RjAwMDAwODAgLyogUlRDIEJhc2UgQWRkcmVzcwkJKi8KIAogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzAJMQkvKiBpbml0IG9uYm9hcmQgU0RSQU0gYmFuayAwCSovCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19FWFRfU0VSSUFMX0NMT0NLCTExMDU5MjAwICAvKiB1c2UgZXh0ZXJuYWwgc2VyaWFsIGNsb2NrCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkxMTA1OTIwMCAgLyogdXNlIGV4dGVybmFsIHNlcmlhbCBjbG9jawkqLwogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE0NCwxNCArMTQ0LDE0IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9CT09UREVMQVkJMAkvKiBlbmFibGUgcGNpIGJvb3RkZWxheSB2YXJpYWJsZSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNAkvKiBQQ0kgRGV2aWNlIElEOiBDUENJLUlTRVI0CSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ZmYwMDAwMDEJLyogMTZNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweGZmZTAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweGZmZTAwMDAxCS8qIDJNQiwgZW5hYmxlCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA0CS8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktSVNFUjQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUwkweGZmMDAwMDAxCS8qIDE2TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmZTAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmUwMDAwMQkvKiAyTUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmCkBAIC0xNjEsNzAgKzE2MSw3MCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogbm8gcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkJLyogbWF4LiAxIElERSBidXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCQkvKiBtYXguIDEgSURFIGJ1c3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoxKSAvKiBtYXguIDEgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZEMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiAqIDEwMjQpCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGRDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMDgpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCTEJLyogdXNlIEVFUFJPTSBmb3IgZW52aXJvbm1lbnQgdmFycyAqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgwMDAJLyogZW52aXJvbm1lbnQgc3RhcnRzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIEVFUFJPTSAqLwpAQCAtMjU2LDM2ICsyNTYsMzYgQEAKICNkZWZpbmUgRlBHQV9NT0RFX1JFRwkoRFVBUlRfQkErMHg4MCkJICAgIC8qIEZQR0EgTW9kZSBSZWdpc3RlcgkJKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJRkxBU0gwX0JBIHwgMHg1QTAwMCAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCUZMQVNIMF9CQSB8IDB4NUEwMDAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoRmxhc2ggQmFuayAxKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJRkxBU0gxX0JBIHwgMHg1QTAwMCAvKiBCQVM9MHhGRjgsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCUZMQVNIMV9CQSB8IDB4NUEwMDAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoQ0FOMCkgaW5pdGlhbGl6YXRpb24JCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCTB4MDEwMDUzQzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUglDQU5fQkEgfCAweDE4MDAwICAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJMHgwMTAwNTNDMCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUglDQU5fQkEgfCAweDE4MDAwICAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMyAoRFVBUlQpIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkweDAxMDA1M0MwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJRFVBUlRfQkEgfCAweDE4MDAwICAvKiBCQVM9MHhGMDMsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCTB4MDEwMDUzQzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJRFVBUlRfQkEgfCAweDE4MDAwICAvKiBCQVM9MHhGMDMsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDQgKENvbXBhY3RGbGFzaCBJREUpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAJMHgwMTAwNTNDMCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCNENSCUNGX0JBIHwgMHgxQTAwMAkgICAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJMHgwMTAwNTNDMCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUglDRl9CQSB8IDB4MUEwMDAJICAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDUgKFNSQU0pIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVBUAkweDAxMDA1M0MwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEI1Q1IJU1JBTV9CQSB8IDB4MUEwMDAgICAvKiBCQVM9MHhGMDIsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVBUAkweDAxMDA1M0MwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUNSCVNSQU1fQkEgfCAweDFBMDAwICAgLyogQkFTPTB4RjAyLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgNiAoRFVSQUcgQnVzIElPIFNwYWNlKSBpbml0aWFsaXphdGlvbgkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCNkFQCTB4MDEwMDUzQzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjZDUglEVVJBR19JT19CQSB8IDB4MTgwMDAgLyogQkFTPTB4RjA0LEJTPTFNQixCVT1SL1csQlc9OGJpdCovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNkFQCTB4MDEwMDUzQzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI2Q1IJRFVSQUdfSU9fQkEgfCAweDE4MDAwIC8qIEJBUz0weEYwNCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQqLwogCiAvKiBNZW1vcnkgQmFuayA3IChEVVJBRyBCdXMgTWVtIFNwYWNlKSBpbml0aWFsaXphdGlvbgkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCN0FQCTB4MDEwMDUzQzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjdDUglEVVJBR19NRU1fQkEgfCAweDE4MDAwIC8qIEJBUz0weEYwNSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI3QVAJMHgwMTAwNTNDMCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjdDUglEVVJBR19NRU1fQkEgfCAweDE4MDAwIC8qIEJBUz0weEYwNSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yOTMsMTcgKzI5MywxNyBAQAogICovCiAKIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkgIDEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0RVNDQwLmggYi9pbmNsdWRlL2NvbmZpZ3MvRFU0NDAuaAppbmRleCBjNDA4ZTQzLi41MDhhMGNhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvRFU0NDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRFU0NDAuaApAQCAtNDUsNTIgKzQ1LDUyIEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDM4NCAqIDEwMjQpCS8qIFJlc2VydmUgMzg0IGtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoOCA8PCAyMCkJLyogUmVzZXJ2ZSA4IE1CIGZvciBtYWxsb2MoKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDM4NCAqIDEwMjQpCS8qIFJlc2VydmUgMzg0IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDggPDwgMjApCS8qIFJlc2VydmUgOCBNQiBmb3IgbWFsbG9jKCkgICovCiAKLSNkZWZpbmUgQ0ZHX0JPT1RfQkFTRV9BRERSCTB4ZjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogX211c3RfIGJlIDAJCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZjMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19OQU5EMF9BRERSCQkweGQwMDAwMDAwICAgICAgLyogTkFORCBGbGFzaAkJKi8KLSNkZWZpbmUgQ0ZHX05BTkQxX0FERFIJCTB4ZDAxMDAwMDAgICAgICAvKiBOQU5EIEZsYXNoCQkqLwotI2RlZmluZSBDRkdfT0NNX0JBU0UJCTB4ZTAwMTAwMDAgICAgICAvKiBvY20JCQkqLwotI2RlZmluZSBDRkdfUENJX0JBU0UJCTB4ZTAwMDAwMDAgICAgICAvKiBJbnRlcm5hbCBQQ0kgcmVncwkqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UJCTB4ODAwMDAwMDAJLyogbWFwcGVkIHBjaSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMQlDRkdfUENJX01FTUJBU0UgICsgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTUJBU0UyCUNGR19QQ0lfTUVNQkFTRTEgKyAweDEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRTMJQ0ZHX1BDSV9NRU1CQVNFMiArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT0JBU0UgICAgICAgICAgMHhlODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSCTB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIF9tdXN0XyBiZSAwCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmMwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDBfQUREUgkJMHhkMDAwMDAwMCAgICAgIC8qIE5BTkQgRmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDFfQUREUgkJMHhkMDEwMDAwMCAgICAgIC8qIE5BTkQgRmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0JBU0UJCTB4ZTAwMTAwMDAgICAgICAvKiBvY20JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVNFCQkweGUwMDAwMDAwICAgICAgLyogSW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMQlDT05GSUdfU1lTX1BDSV9NRU1CQVNFICArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIJQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UzCUNPTkZJR19TWVNfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT0JBU0UgICAgICAgICAgMHhlODAwMDAwMAogCiAKIC8qIERvbid0IGNoYW5nZSBlaXRoZXIgb2YgdGhlc2UgKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRQkweGVmNjAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFCTB4ZWY2MDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KIAotI2RlZmluZSBDRkdfVVNCMkQwX0JBU0UJCTB4ZTAwMDAxMDAKLSNkZWZpbmUgQ0ZHX1VTQl9ERVZJQ0UJCTB4ZTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1VTQl9IT1NUCQkweGUwMDAwNDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCMkQwX0JBU0UJCTB4ZTAwMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfREVWSUNFCQkweGUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0hPU1QJCTB4ZTAwMDA0MDAKIAogLyoKICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlcgogICovCiAvKiA0NDBFUHgvNDQwR1J4IGhhdmUgMTZLQiBvZiBpbnRlcm5hbCBTUkFNLCBzbyBubyBuZWVkIGZvciBELUNhY2hlCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9PQ00JMQkJLyogT0NNIGFzIGluaXQgcmFtCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fQkFTRQkvKiBPQ00JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX09DTQkxCQkvKiBPQ00gYXMgaW5pdCByYW0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0JBU0UJLyogT0NNCQkJKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkoNCA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NgkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIFNlcmlhbCBQb3J0CiAgKi8KLSN1bmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSworI3VuZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogI2RlZmluZSBDT05GSUdfU0VSSUFMX01VTFRJICAgICAxCiAjdW5kZWYgQ09ORklHX1VBUlQxX0NPTlNPTEUKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJCQkJCQlcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CiAKIC8qCkBAIC0xMDQsMTAgKzEwNCwxMCBAQAogI2RlZmluZSBDT05GSUdfU1BMQVNIX1NDUkVFTgogI2RlZmluZSBDT05GSUdfU1BMQVNIX1NDUkVFTl9BTElHTgogI2RlZmluZSBDT05GSUdfVklERU9fQk1QX0daSVAgICAgICAgICAgICAgIC8qIGd6aXAgY29tcHJlc3NlZCBibXAgaW1hZ2VzICovCi0jZGVmaW5lIENGR19WSURFT19MT0dPX01BWF9TSVpFICg0IDw8IDIwKSAgLyogZm9yIGRlY29tcHJlc3NlZCBpbWcgKi8KLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfVklERU9fTU9ERSAweDMxYSAgICAgICAvKiAxMjgweDEwMjQsMTZicHAgKi8KLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCi0jZGVmaW5lIENGR19JU0FfSU8gQ0ZHX1BDSV9JT0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19WSURFT19MT0dPX01BWF9TSVpFICg0IDw8IDIwKSAgLyogZm9yIGRlY29tcHJlc3NlZCBpbWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX1ZJREVPX01PREUgMHgzMWEgICAgICAgLyogMTI4MHgxMDI0LDE2YnBwICovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU8gQ09ORklHX1NZU19QQ0lfSU9CQVNFCiAKIC8qCiAgKiBFbnZpcm9ubWVudApAQCAtMTE3LDI3ICsxMTcsMjcgQEAKIC8qCiAgKiBGTEFTSCByZWxhdGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICAgKi8KIC8qIENGSV9GTEFTSF9QUk9URUNUSU9OIG1ha2UgZmxhc2hfcHJvdGVjdCBoYW5nIHNvbWV0aW1lcyAtPiBkaXNhYmxlZCAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCS8qIHVzZSBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24gICAgICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2ggICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2ggICAgICAqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwIC8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvciAgICAgICAgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoKC1DRkdfTU9OSVRPUl9MRU4pLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSgoLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4pLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAgICovCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTU0LDkgKzE1NCw5IEBACiAvKgogICogRERSIFNEUkFNCiAgKi8KLSNkZWZpbmUgQ0ZHX01CWVRFU19TRFJBTSAgICAgICAgKDEwMjQpCS8qIDUxMiBNaUIgICAgICBUT0RPOiByZW1vdmUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQllURVNfU0RSQU0gICAgICAgICgxMDI0KQkvKiA1MTIgTWlCICAgICAgVE9ETzogcmVtb3ZlICAgICovCiAjZGVmaW5lIENPTkZJR19ERFJfREFUQV9FWUUJCS8qIHVzZSBERFIyIG9wdGltaXphdGlvbiAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01FTV9UT1BfSElERSAgICAgICAgKDQgPDwgMTApIC8qIGRvbid0IHVzZSBsYXN0IDRrYnl0ZXMgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNX1RPUF9ISURFICAgICAgICAoNCA8PCAxMCkgLyogZG9uJ3QgdXNlIGxhc3QgNGtieXRlcyAgICAgKi8KIAkJCQkJLyogNDQwRVB4IGVycmF0YSBDSElQIDExICAgICAgICAqLwogI2RlZmluZSBDT05GSUdfU1BEX0VFUFJPTQkJLyogVXNlIFNQRCBFRVBST00gZm9yIHNldHVwICAgICAqLwogI2RlZmluZSBDT05GSUdfRERSX0VDQwkJCS8qIFVzZSBFQ0Mgd2hlbiBhdmFpbGFibGUgICAgICAgKi8KQEAgLTE2OCwyNiArMTY4LDI2IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgICAgKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZAkgICAgICAgICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAjZGVmaW5lIENPTkZJR19JMkNfQ01EX1RSRUUgICAgIDEKICNkZWZpbmUgQ09ORklHX0kyQ19NVUxUSV9CVVMgICAgMQogCi0jZGVmaW5lIENGR19TUERfQlVTX05VTSAgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19TUERfQlVTX05VTSAgICAgICAgIDAKICNkZWZpbmUgSUlDMV9NQ1AzMDIxX0FERFIJMHg0ZAogI2RlZmluZSBJSUMxX1VTQjI1MDdfQUREUgkweDJjCiAjaWZkZWYgQ09ORklHX0kyQ19NVUxUSV9CVVMKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUyAgICAgICAge3sxLCBJSUMxX1VTQjI1MDdfQUREUn19CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTICAgICAgICB7ezEsIElJQzFfVVNCMjUwN19BRERSfX0KICNlbmRpZgotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDU0Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDIKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVyAweDAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1NAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XIDB4MDEKIAotI2RlZmluZSBDRkdfRUVQUk9NX1dSRU4gICAgICAgICAxCi0jZGVmaW5lIENGR19JMkNfQk9PVF9FRVBST01fQUREUiAweDUyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1dSRU4gICAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0JPT1RfRUVQUk9NX0FERFIgMHg1MgogCiAvKgogICogc3RhbmRhcmQgZHR0IHNlbnNvciBjb25maWd1cmF0aW9uIC0gYm90dG9tIGJpdCB3aWxsIGRldGVybWluZSBsb2NhbCBvcgpAQCAtMjA3LDEzICsyMDcsMTMgQEAKICAqIC0gcmVtb3RlIHRlbXAgc2Vuc29yIGVuYWJsZWQsIG1pbiBzZXQgdG8gMCBkZWcsIG1heCBzZXQgdG8gNzAgZGVnCiAgKi8KICNkZWZpbmUgQ09ORklHX0RUVF9BRE0xMDIxCi0jZGVmaW5lIENGR19EVFRfQURNMTAyMQkJeyB7IDB4NGMsIDB4MDIsIDAsIDEsIDcwLCAwLCAxLCA3MCwgMH0gfQorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9BRE0xMDIxCQl7IHsgMHg0YywgMHgwMiwgMCwgMSwgNzAsIDAsIDEsIDcwLCAwfSB9CiAKIC8qCiAgKiBSVEMgc3R1ZmYKICAqLwogI2RlZmluZSBDT05GSUdfUlRDX0RTMTMzOAotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAogCiAjdW5kZWYJQ09ORklHX0JPT1RBUkdTCiAKQEAgLTI0Nyw3ICsyNDcsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTMJLyogYXV0b2Jvb3QgYWZ0ZXIgNSBzZWNvbmRzCSovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KIGludCBkdTQ0MF9waHlfYWRkcihpbnQgZGV2bnVtKTsKQEAgLTI2MSw3ICsyNjEsNyBAQAogI3VuZGVmIENPTkZJR19QSFlfR0lHRQkJCS8qIG5vIEdiRSBkZXRlY3Rpb24JCSovCiAKICNkZWZpbmUgQ09ORklHX0hBU19FVEgwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTI4CiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQkJMQkvKiBhZGQgc3VwcG9ydCBmb3IgImV0aDFhZGRyIgkqLwpAQCAtMjcyLDEyICsyNzIsMTIgQEAKICAqLwogI2RlZmluZSBDT05GSUdfVVNCX09IQ0lfTkVXCiAjZGVmaW5lIENPTkZJR19VU0JfU1RPUkFHRQotI2RlZmluZSBDRkdfT0hDSV9CRV9DT05UUk9MTEVSCisjZGVmaW5lIENPTkZJR19TWVNfT0hDSV9CRV9DT05UUk9MTEVSCiAKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX0NQVV9JTklUCTEKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1JFR1NfQkFTRQlDRkdfVVNCX0hPU1QKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkiZHU0NDAiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9SRUdTX0JBU0UJQ09ORklHX1NZU19VU0JfSE9TVAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1NMT1RfTkFNRQkiZHU0NDAiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMTUKIAogLyogQ29tbWVudCB0aGlzIG91dCB0byBlbmFibGUgVVNCIDEuMSBkZXZpY2UgKi8KICNkZWZpbmUgVVNCXzJfMF9ERVZJQ0UKQEAgLTMxNywyNSArMzE3LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSAgICAgICAgIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSAgICAgICAgIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgICAgMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkgICAgICAgIDEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJICAgICAgICAyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgICAyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgogLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAgICAgICAgICAgICAgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkgICAgICAgIENGR19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAgICAgICAgICAgICAgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJICAgICAgICBDT05GSUdfU1lTX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4M2YwMDAwMDAgLyogNCAuLi4gPCAxR0IgRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDNmMDAwMDAwIC8qIDQgLi4uIDwgMUdCIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCSAgICAgICAgMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCSAgICAgICAgMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwogI2RlZmluZSBDT05GSUdfTE9PUFcgICAgICAgICAgICAxICAgICAgIC8qIGVuYWJsZSBsb29wdyBjb21tYW5kICAgICAgICAgKi8KQEAgLTM1NSw2NSArMzU1LDY1IEBACiAjZGVmaW5lIENPTkZJR19QQ0kJCQkvKiBpbmNsdWRlIHBjaSBzdXBwb3J0CSAgICAgICAgKi8KICNkZWZpbmUgQ09ORklHX1BDSV9QTlAJCQkvKiBkbyAobm90KSBwY2kgcGx1Zy1hbmQtcGxheSAgICovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0JBU0UgICAgICAgMHg4MDAwMDAwMCAvKiBQQ0lhZGRyIG1hcHBlZCB0byBDRkdfUENJX01FTUJBU0UqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRSAgICAgICAweDgwMDAwMDAwIC8qIFBDSWFkZHIgbWFwcGVkIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UqLwogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAotI2RlZmluZSBDRkdfUENJX01BU1RFUl9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKSAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApICAgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICovCi0jZGVmaW5lIENGR19GTEFTSAkJQ0ZHX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX0NQTERfQkFTRQkJMHhDMDAwMDAwMAotI2RlZmluZSBDRkdfQ1BMRF9SQU5HRQkgICAgICAgIDB4MDAwMDAwMTAKLSNkZWZpbmUgQ0ZHX0RVTUVNX0JBU0UJCTB4QzAxMDAwMDAKLSNkZWZpbmUgQ0ZHX0RVTUVNX1JBTkdFCQkweDAwMTAwMDAwCi0jZGVmaW5lIENGR19EVUlPX0JBU0UJCTB4QzAyMDAwMDAKLSNkZWZpbmUgQ0ZHX0RVSU9fUkFOR0UJICAgICAgICAweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1BMRF9CQVNFCQkweEMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1BMRF9SQU5HRQkgICAgICAgIDB4MDAwMDAwMTAKKyNkZWZpbmUgQ09ORklHX1NZU19EVU1FTV9CQVNFCQkweEMwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFVNRU1fUkFOR0UJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EVUlPX0JBU0UJCTB4QzAyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EVUlPX1JBTkdFCSAgICAgICAgMHgwMDAxMDAwMAogCi0jZGVmaW5lIENGR19OQU5EMF9DUwkJMgkJLyogTkFORCBjaGlwIGNvbm5lY3RlZCB0byBDU3ggKi8KLSNkZWZpbmUgQ0ZHX05BTkQxX0NTCQkzCQkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQwX0NTCQkyCQkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQxX0NTCQkzCQkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeCAqLwogLyogTWVtb3J5IEJhbmsgMCAoTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbiAqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDA0MDE3MjAwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShDRkdfRkxBU0hfQkFTRSB8IDB4ZGEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDA0MDE3MjAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgMHhkYTAwMCkKIAogLyogTWVtb3J5IEJhbmsgMSAoQ1BMRCwgMTYgYnl0ZXMgbmVlZGVkLCBidXQgMU1CIGlzIG1pbmltdW0pICovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDE4MDAzYzAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJKENGR19DUExEX0JBU0UgfCAweDE4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHgwMTgwMDNjMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJKENPTkZJR19TWVNfQ1BMRF9CQVNFIHwgMHgxODAwMCkKIAogLyogTWVtb3J5IEJhbmsgMiAoTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMTgwMDNjMAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkoQ0ZHX05BTkQwX0FERFIgfCAweDFjMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMTgwMDNjMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJKENPTkZJR19TWVNfTkFORDBfQUREUiB8IDB4MWMwMDApCiAKIC8qIE1lbW9yeSBCYW5rIDMgKE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uICovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDE4MDAzYzAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJKENGR19OQU5EMV9BRERSIHwgMHgxYzAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDE4MDAzYzAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCShDT05GSUdfU1lTX05BTkQxX0FERFIgfCAweDFjMDAwKQogCiAvKiBNZW1vcnkgQmFuayA0IChEVU1FTSwgMU1CKSBpbml0aWFsaXphdGlvbiAqLwotI2RlZmluZSBDRkdfRUJDX1BCNEFQCQkweDAxODA1M2MwCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IJCShDRkdfRFVNRU1fQkFTRSB8IDB4MTgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQCQkweDAxODA1M2MwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNENSCQkoQ09ORklHX1NZU19EVU1FTV9CQVNFIHwgMHgxODAwMCkKIAogLyogTWVtb3J5IEJhbmsgNSAoRFVJTywgNjRLQiBuZWVkZWQsIGJ1dCAxTUIgaXMgbWluaW11bSkgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVBUAkJMHgwMTgwNTNjMAotI2RlZmluZSBDRkdfRUJDX1BCNUNSCQkoQ0ZHX0RVSU9fQkFTRSB8IDB4MTgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUFQCQkweDAxODA1M2MwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUNSCQkoQ09ORklHX1NZU19EVUlPX0JBU0UgfCAweDE4MDAwKQogCiAvKgogICogTkFORCBGTEFTSAogICovCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMgotI2RlZmluZSBOQU5EX01BWF9DSElQUwkJQ0ZHX01BWF9OQU5EX0RFVklDRQotI2RlZmluZSBDRkdfTkFORF9TRUxFQ1RfREVWSUNFICAxCS8qIG5hbmQgZHJpdmVyIHN1cHBvcnRzIG11dGlwbC4gY2hpcHMgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRV9MSVNUCXtDRkdfTkFORDBfQUREUiArIENGR19OQU5EMF9DUywgXAotCQkJCSBDRkdfTkFORDFfQUREUiArIENGR19OQU5EMV9DU30KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMgorI2RlZmluZSBOQU5EX01BWF9DSElQUwkJQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NFTEVDVF9ERVZJQ0UgIDEJLyogbmFuZCBkcml2ZXIgc3VwcG9ydHMgbXV0aXBsLiBjaGlwcyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXtDT05GSUdfU1lTX05BTkQwX0FERFIgKyBDT05GSUdfU1lTX05BTkQwX0NTLCBcCisJCQkJIENPTkZJR19TWVNfTkFORDFfQUREUiArIENPTkZJR19TWVNfTkFORDFfQ1N9CiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0VCK01DRi1FVjEyMy5oIGIvaW5jbHVkZS9jb25maWdzL0VCK01DRi1FVjEyMy5oCmluZGV4IDcyZjdiM2YuLjg3NmVjMjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9FQitNQ0YtRVYxMjMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRUIrTUNGLUVWMTIzLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2RlZmluZSAgQ09ORklHX0VCX01DRl9FVjEyMwogCi0jdW5kZWYgQ0ZHX0hBTFRfQkVGT1JfUkFNX0pVTVAKKyN1bmRlZiBDT05GSUdfU1lTX0hBTFRfQkVGT1JfUkFNX0pVTVAKIAogLyoKICAqIEhpZ2ggTGV2ZWwgQ29uZmlndXJhdGlvbiBPcHRpb25zIChlYXN5IHRvIGNoYW5nZSkKQEAgLTM5LDkgKzM5LDkgQEAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCiAKICNkZWZpbmUgQ09ORklHX01DRlVBUlQKLSNkZWZpbmUgQ0ZHX1VBUlRfUE9SVAkJKDApCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9QT1JUCQkoMCkKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFIDk2MDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIHsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSB7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CiAKICN1bmRlZglDT05GSUdfTU9OSVRPUl9JU19JTl9SQU0JLyogZGVmaW5lIGlmIG1vbml0b3IgaXMgc3RhcnRlZCBmcm9tIGEgcHJlLWxvYWRlciAqLwogCkBAIC05MSwyMiArOTEsMjIgQEAKICMJZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCTEKICMJZGVmaW5lIENPTkZJR19NSUkJCTEKICMJZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQotIwlkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQotIwlkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAotIwlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCWRlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQorIwlkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgKKyMJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KIAotIwlkZWZpbmUgQ0ZHX0ZFQzBfUElOTVVYCQkwCi0jCWRlZmluZSBDRkdfRkVDMF9NSUlCQVNFCQlDRkdfRkVDMF9JT0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9QSU5NVVgJCTAKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9NSUlCQVNFCQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCiAjCWRlZmluZSBNQ0ZGRUNfVE9VVF9MT09QCQk1MDAwMAotLyogSWYgQ0ZHX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLwotIwlpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorLyogSWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KKyMJaWZuZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjCQlkZWZpbmUgRkVDRFVQTEVYCUZVTEwKICMJCWRlZmluZSBGRUNTUEVFRAkJXzEwMEJBU0VUCiAjCWVsc2UKLSMJCWlmbmRlZiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KLSMJCQlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQlpZm5kZWYgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAjCQllbmRpZgotIwllbmRpZgkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyMJZW5kaWYJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTUNGRkVDCkBAIC0xMTksMTQ2ICsxMTksMTQ2IEBACiAjZW5kaWYJCQkJLyogQ09ORklHX01DRkZFQyAqLwogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJNQotI2RlZmluZSBDRkdfUFJPTVBUCQkiXG5FVjEyMyBVLUJvb3Q+ICIKLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIlxuRVYxMjMgVS1Cb290PiAiCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDIwMDAwCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgxMDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDQwMDAwMAotLyojZGVmaW5lIENGR19EUkFNX1RFU1QJCTEgKi8KLSN1bmRlZiBDRkdfRFJBTV9URVNUCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDQwMDAwMAorLyojZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUCQkxICovCisjdW5kZWYgQ09ORklHX1NZU19EUkFNX1RFU1QKIAogLyogQ2xvY2sgYW5kIFBMTCBDb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAwMDAwCi0jZGVmaW5lCUNGR19DTEsJCQk1ODk4MjQwMCAgICAgICAvKiA5LDgzMDRNSHogKiA2ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0NMSwkJCTU4OTgyNDAwICAgICAgIC8qIDksODMwNE1IeiAqIDYgKi8KIAogLyogUExMIENvbmZpZ3VyYXRpb246IEV4dCBDbG9jayAqIDYgKHNlZSB0YWJsZSA5LTQgb2YgTUNGIHVzZXIgbWFudWFsKSAqLwogCi0jZGVmaW5lIENGR19NRkQJCQkweDAxCS8qIFBMTCBNdWx0aXBsaWNhdGlvbiBGYWN0b3IgRGV2aWRlciAqLwotI2RlZmluZSBDRkdfUkZECQkJMHgwMAkvKiBQTEwgUmVkdWNlIEZyZWN1ZW5jeSBEZXZpZGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfTUZECQkJMHgwMQkvKiBQTEwgTXVsdGlwbGljYXRpb24gRmFjdG9yIERldmlkZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRkQJCQkweDAwCS8qIFBMTCBSZWR1Y2UgRnJlY3VlbmN5IERldmlkZXIgKi8KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCiAgKiAoYWRkcmVzcyBtYXBwaW5ncywgcmVnaXN0ZXIgaW5pdGlhbCB2YWx1ZXMsIGV0Yy4pCiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwotI2RlZmluZQlDRkdfTUJBUgkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX01CQVIJCTB4NDAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgICAweDIwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgICAgMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFMQkJMHgwMDAwMDAwMAotI2RlZmluZQlDRkdfU0RSQU1fU0laRTEJCTE2CQkvKiBTRFJBTSBzaXplIGluIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRTEJCTB4MDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9TSVpFMQkJMTYJCS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KIAogLyoKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UwCQlDRkdfU0RSQU1fQkFTRTErQ0ZHX1NEUkFNX1NJWkUxKjEwMjQqMTAyNAotI2RlZmluZQlDRkdfU0RSQU1fU0laRTAJCTE2CSovCS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFMAkJQ09ORklHX1NZU19TRFJBTV9CQVNFMStDT05GSUdfU1lTX1NEUkFNX1NJWkUxKjEwMjQqMTAyNAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX1NJWkUwCQkxNgkqLwkvKiBTRFJBTSBzaXplIGluIE1CICovCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19TRFJBTV9CQVNFMQotI2RlZmluZQlDRkdfU0RSQU1fU0laRQkJQ0ZHX1NEUkFNX1NJWkUxCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19TRFJBTV9CQVNFMQorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX1NJWkUJCUNPTkZJR19TWVNfU0RSQU1fU0laRTEKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkUwMDAwMAotI2RlZmluZQlDRkdfSU5UX0ZMQVNIX0JBU0UJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfSU5UX0ZMQVNIX0VOQUJMRQkweDIxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkUwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRfRkxBU0hfRU5BQkxFCTB4MjEKIAogLyogSWYgTTUyODIgcG9ydCBpcyBmdWxseSBpbXBsZW1lbnRlZCB0aGUgbW9uaXRvciBiYXNlIHdpbGwgYmUgYmVoaW5kCiAgKiB0aGUgdmVjdG9yIHRhYmxlLiAqLwotI2lmIChURVhUX0JBU0UgIT0gIENGR19JTlRfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoVEVYVF9CQVNFICsgMHg0MDApCisjaWYgKFRFWFRfQkFTRSAhPSAgQ09ORklHX1NZU19JTlRfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKFRFWFRfQkFTRSArIDB4NDAwKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoVEVYVF9CQVNFICsgMHg0MTgpIC8qIDI0IEJ5dGUgZm9yIENGTS1Db25maWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKFRFWFRfQkFTRSArIDB4NDE4KSAvKiAyNCBCeXRlIGZvciBDRk0tQ29uZmlnICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MjAwMDAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gPz8KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUJQ0ZHX01BWF9GTEFTSF9TRUNUCTM1Ci0jZGVmaW5lCUNGR19NQVhfRkxBU0hfQkFOS1MJMgotI2RlZmluZQlDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMDAwMDAwMAotI2RlZmluZQlDRkdfRkxBU0hfUFJPVEVDVElPTgorI2RlZmluZQlDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTM1CisjZGVmaW5lCUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIKKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWVtb3J5IGJhbmsgZGVmaW5pdGlvbnMKICAqLwogCi0jZGVmaW5lIENGR19DUzBfQkFTRQkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQkyKjEwMjQqMTAyNAotI2RlZmluZSBDRkdfQ1MwX1dJRFRICQkxNgotI2RlZmluZSBDRkdfQ1MwX1JPCQkwCi0jZGVmaW5lIENGR19DUzBfV1MJCTYKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQkFTRQkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCTIqMTAyNCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1dJRFRICQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9STwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9XUwkJNgogCi0jZGVmaW5lIENGR19DUzNfQkFTRQkJMHhFMDAwMDAwMAotI2RlZmluZSBDRkdfQ1MzX1NJWkUJCTEqMTAyNCoxMDI0Ci0jZGVmaW5lIENGR19DUzNfV0lEVEgJCTE2Ci0jZGVmaW5lIENGR19DUzNfUk8JCTAKLSNkZWZpbmUgQ0ZHX0NTM19XUwkJNgorI2RlZmluZSBDT05GSUdfU1lTX0NTM19CQVNFCQkweEUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX1NJWkUJCTEqMTAyNCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX1dJRFRICQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NTM19STwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19XUwkJNgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQb3J0IGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfUEFDTlQJCTB4MDAwMDAwMAkvKiBQb3J0IEEgRFszMToyNF0gKi8KLSNkZWZpbmUgQ0ZHX1BBRERSCQkweDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BBREFUCQkweDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQUNOVAkJMHgwMDAwMDAwCS8qIFBvcnQgQSBEWzMxOjI0XSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BBRERSCQkweDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQURBVAkJMHgwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BCQ05UCQkweDAwMDAwMDAJLyogUG9ydCBCIERbMjM6MTZdICovCi0jZGVmaW5lIENGR19QQkREUgkJMHgwMDAwMDAwCi0jZGVmaW5lIENGR19QQkRBVAkJMHgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEJDTlQJCTB4MDAwMDAwMAkvKiBQb3J0IEIgRFsyMzoxNl0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQkREUgkJMHgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEJEQVQJCTB4MDAwMDAwMAogCi0jZGVmaW5lIENGR19QQ0NOVAkJMHgwMDAwMDAwCS8qIFBvcnQgQyBEWzE1OjA4XSAqLwotI2RlZmluZSBDRkdfUENERFIJCTB4MDAwMDAwMAotI2RlZmluZSBDRkdfUENEQVQJCTB4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDQ05UCQkweDAwMDAwMDAJLyogUG9ydCBDIERbMTU6MDhdICovCisjZGVmaW5lIENPTkZJR19TWVNfUENERFIJCTB4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDREFUCQkweDAwMDAwMDAKIAotI2RlZmluZSBDRkdfUERDTlQJCTB4MDAwMDAwMAkvKiBQb3J0IEQgRFswNzowMF0gKi8KLSNkZWZpbmUgQ0ZHX1BDRERSCQkweDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDREFUCQkweDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QRENOVAkJMHgwMDAwMDAwCS8qIFBvcnQgRCBEWzA3OjAwXSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDRERSCQkweDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0RBVAkJMHgwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BFSExQQVIJCTB4QzAKLSNkZWZpbmUgQ0ZHX1BVQVBBUgkJMHgwRgkJLyogVUEwLi5VQTMgPSBVYXJ0IDAgKzEgKi8KLSNkZWZpbmUgQ0ZHX0REUlVBCQkweDA1Ci0jZGVmaW5lIENGR19QSlBBUgkJMHhGRgorI2RlZmluZSBDT05GSUdfU1lTX1BFSExQQVIJCTB4QzAKKyNkZWZpbmUgQ09ORklHX1NZU19QVUFQQVIJCTB4MEYJCS8qIFVBMC4uVUEzID0gVWFydCAwICsxICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSVUEJCTB4MDUKKyNkZWZpbmUgQ09ORklHX1NZU19QSlBBUgkJMHhGRgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDQ00gY29uZmlndXJhdGlvbgogICovCiAKLSNkZWZpbmUJQ0ZHX0NDTV9TSVoJCTAKKyNkZWZpbmUJQ09ORklHX1NZU19DQ01fU0laCQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNlbmRpZgkvKiBfQ09ORklHX001MjgyRVZCX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9FTFBQQy5oIGIvaW5jbHVkZS9jb25maWdzL0VMUFBDLmgKaW5kZXggMDhlM2Q3MS4uNzkzOTI2NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0VMUFBDLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0VMUFBDLmgKQEAgLTYzLDcgKzYzLDcgQEAKICAgICAiYm9vdG0iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8gICAgICAgMCAgICAgICAvKiBlY2hvIG9mZiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRSAgICAgICAgICAgLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFICAgICAgICAgICAvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2VzICovCiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC04OCw4ICs4OCw4IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUCAgICAgICAgICAgICAgICAgICAgLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVCAgICAgICAgICAgICAgIj0+ICIgICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAgICAgICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUICAgICAgICAgICAgICAiPT4gIiAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogLyoKICAqIGNob29zZSBiZXR3ZWVuIENPTTEgYW5kIENPTTIgYXMgc2VyaWFsIGNvbnNvbGUKQEAgLTk3LDcyICs5Nyw3MiBAQAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWCAgICAgICAxCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRSAgICAgICAgICAgICAgMTAyNCAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUgICAgICAgICAgICAgIDEwMjQgICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFICAgICAgICAgICAgICAyNTYgICAgICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRSAgICAgICAgICAgICAgMjU2ICAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFICAgICAgICAgICAgICAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTICAgICAgICAgICAgIDE2ICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRSAgICAgICAgICAgIENGR19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgICAgICAgICAgICAgIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MgICAgICAgICAgICAgMTYgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRSAgICAgICAgICAgIENPTkZJR19TWVNfQ0JTSVpFICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAgICAgMHgwMDAwMDAwMCAgLyogbWVtdGVzdCB3b3JrcyBvbiAgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgICAgICAgICAweDA0MDAwMDAwICAvKiAwIC4uLiA2NCBNQiBpbiBEUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCAgICAgICAweDAwMDAwMDAwICAvKiBtZW10ZXN0IHdvcmtzIG9uICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgICAgICAgICAweDA0MDAwMDAwICAvKiAwIC4uLiA2NCBNQiBpbiBEUkFNICAgICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUiAgICAgICAgICAgMHgxMDAwMDAwICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIgICAgICAgICAgIDB4MTAwMDAwMCAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICAgICovCiAKLSNkZWZpbmUgQ0ZHX0haICAgICAgICAgICAgICAgICAgMTAwMCAgICAgICAgLyogZGVjLiBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFogICAgICAgICAgICAgICAgICAxMDAwICAgICAgICAvKiBkZWMuIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKICAqIChhZGRyZXNzIG1hcHBpbmdzLCByZWdpc3RlciBpbml0aWFsIHZhbHVlcywgZXRjLikKICAqIFlvdSBzaG91bGQga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgaWYgeW91IG1ha2UgY2hhbmdlcyBoZXJlLgogICovCi0jZGVmaW5lIENGR19CT0FSRF9BU01fSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX0FTTV9JTklUCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgogCiAvKgogICogQWRkcmVzcyBtYXBwaW5nIHNjaGVtZSBmb3IgdGhlIE1QQzEwNyBtZW0gY29udHJvbGxlciBpcyBtYXBwaW5nIEIgKENIUlApCiAgKi8KLSN1bmRlZiAgQ0ZHX0FERFJFU1NfTUFQX0EKKyN1bmRlZiAgQ09ORklHX1NZU19BRERSRVNTX01BUF9BCiAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfQlVTICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9QSFlTICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1NJWkUgICAgIDB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUyAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUgICAgIDB4NDAwMDAwMDAKIAotI2RlZmluZSBDRkdfUENJX01FTV9CVVMgICAgICAgICAweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNX1BIWVMgICAgICAgIDB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRSAgICAgICAgMHg3ZDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fQlVTICAgICAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyAgICAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fU0laRSAgICAgICAgMHg3ZDAwMDAwMAogCi0jZGVmaW5lIENGR19JU0FfTUVNX0JVUyAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lTQV9NRU1fUEhZUyAgICAgICAgMHhmZDAwMDAwMAotI2RlZmluZSBDRkdfSVNBX01FTV9TSVpFICAgICAgICAweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX01FTV9CVVMgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX01FTV9QSFlTICAgICAgICAweGZkMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX01FTV9TSVpFICAgICAgICAweDAxMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19CVVMgICAgICAgICAgMHgwMDgwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1BIWVMgICAgICAgICAweGZlODAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fU0laRSAgICAgICAgIDB4MDA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fQlVTICAgICAgICAgIDB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fUEhZUyAgICAgICAgIDB4ZmU4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fU0laRSAgICAgICAgIDB4MDA0MDAwMDAKIAotI2RlZmluZSBDRkdfSVNBX0lPX0JVUyAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19JU0FfSU9fUEhZUyAgICAgICAgIDB4ZmUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lTQV9JT19TSVpFICAgICAgICAgMHgwMDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19CVVMgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19QSFlTICAgICAgICAgMHhmZTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19TSVpFICAgICAgICAgMHgwMDgwMDAwMAogCiAvKiBkcml2ZXIgZGVmaW5lcyBGREMsSURFLC4uLiAqLwotI2RlZmluZSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyBDRkdfSVNBX0lPX1BIWVMKLSNkZWZpbmUgQ0ZHX0lTQV9JTyAgICAgICAgICAgICAgQ0ZHX0lTQV9JT19QSFlTCi0jZGVmaW5lIENGR182MFhfUENJX0lPX09GRlNFVCAgIENGR19JU0FfSU9fUEhZUworI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgQ09ORklHX1NZU19JU0FfSU9fUEhZUworI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JTyAgICAgICAgICAgICAgQ09ORklHX1NZU19JU0FfSU9fUEhZUworI2RlZmluZSBDT05GSUdfU1lTXzYwWF9QQ0lfSU9fT0ZGU0VUICAgQ09ORklHX1NZU19JU0FfSU9fUEhZUwogCiAvKgogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgICAgICAgICAgMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19VU1JfTEVEX0JBU0UgICAgICAgIDB4NzgwMDAwMDAKLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0UgICAgICAgICAgMHhmZjAwMDAwMAotI2RlZmluZSBDRkdfVUFSVF9CQVNFICAgICAgICAgICAweGZmNDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgICAgIDB4ZmZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU1JfTEVEX0JBU0UgICAgICAgIDB4NzgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFICAgICAgICAgIDB4ZmYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX0JBU0UgICAgICAgICAgIDB4ZmY0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFICAgICAgICAgIDB4ZmZmMDAwMDAKIAogI2RlZmluZSBNUEMxMDdfRVVNQl9BRERSICAgICAgICAweGZjZTAwMDAwCiAjZGVmaW5lIE1QQzEwN19FVU1CX1BJICAgICAgICAgIDB4ZmNlNDEwOTAKQEAgLTE3MywxMSArMTczLDExIEBACiAvKgogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICAgICAgMHgwMGZkMDAwMCAgLyogYWJvdmUgdGhlIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgICAgIDB4NDAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgICA2NCAgICAgICAgICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICAgICAgQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgICAgMHgwMGZkMDAwMCAgLyogYWJvdmUgdGhlIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgICAweDQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgIDY0ICAgICAgICAgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXQgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUICAgICAgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIEZsYXNoIG1hcHBpbmcvb3JnYW5pemF0aW9uIG9uIHRoZSBNUEMxMHguCkBAIC0xODUsMTEgKzE4NSwxMSBAQAogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0gICAgICAweGZmODAwMDAwCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTSAgICAgIDB4ZmZjMDAwMDAKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgICAyICAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICAgICA2NyAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgICAgIDIgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgICAgICA2NyAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVCAgICAxMjAwMDAgICAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUICAgIDUwMCAgICAgICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICAgIDEyMDAwMCAgICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICAgIDUwMCAgICAgICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KIAogLyoKICAqIEpGRlMyIHBhcnRpdGlvbnMKQEAgLTIwOSwzMyArMjA5LDMzIEBACiAjZGVmaW5lIE1URFBBUlRTX0RFRkFVTFQJIm10ZHBhcnRzPWVscHBjLTA6LShqZmZzMiksZWxwcGMtMTotKHVzZXIpIgogKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgICAgICBDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4gICAgICAgICAweDQwMDAwICAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTiAgICAgICAgICAweDIwMDAwICAgICAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KLSN1bmRlZiAgQ0ZHX01FTVRFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOICAgICAgICAgMHg0MDAwMCAgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOICAgICAgICAgIDB4MjAwMDAgICAgIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLworI3VuZGVmICBDT05GSUdfU1lTX01FTVRFU1QKIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTSAgICAgMSAgICAgICAgICAgLyogdXNlIE5WUkFNIGZvciBlbnZpcm9ubWVudCB2YXJzICovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFICAgICAgICAgIDB4ODAwICAgICAgIC8qIE5WUkFNIHNpemUgKDJrQikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFICAgICAgICAgIDB4ODAwICAgICAgIC8qIE5WUkFNIHNpemUgKDJrQikgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFICAgICAgICAgICAgMHg0MDAgICAgICAgLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzICgxa0IpICovCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAgICAgICAgIDB4MAogI2RlZmluZSBDT05GSUdfRU5WX01BUF9BRFJTICAgICAgICAweGZmMDAwMDAwCi0jZGVmaW5lIENGR19OVl9TUk9NX0NPUFlfQUREUiAgIChDT05GSUdfRU5WX0FERFIgKyBDT05GSUdfRU5WX1NJWkUpCi0jZGVmaW5lIENGR19OVlJBTV9BQ0NFU1NfUk9VVElORSAgICAgICAgICAgIC8qIG9ubHkgYnl0ZSBhY2NzZXNzIGFsb3dlZCAqLwotI2RlZmluZSBDRkdfU1JPTV9TSVpFICAgICAgICAgICAweDEwMCAgICAgICAvKiBzaGFkb3cgb2YgcmV2aXNpb24gaW5mbyBpcyBpbiBudnJhbSAqLworI2RlZmluZSBDT05GSUdfU1lTX05WX1NST01fQ09QWV9BRERSICAgKENPTkZJR19FTlZfQUREUiArIENPTkZJR19FTlZfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9BQ0NFU1NfUk9VVElORSAgICAgICAgICAgIC8qIG9ubHkgYnl0ZSBhY2NzZXNzIGFsb3dlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NST01fU0laRSAgICAgICAgICAgMHgxMDAgICAgICAgLyogc2hhZG93IG9mIHJldmlzaW9uIGluZm8gaXMgaW4gbnZyYW0gKi8KIAogLyoKICAqIFNlcmlhbCBkZXZpY2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFICAgIDEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLICAgICAgICAgMjQwMDAwMDAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMSAgICAgICAgKENGR19VQVJUX0JBU0UgKyAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yICAgICAgICAoQ0ZHX1VBUlRfQkFTRSArIDgpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsgICAgICAgICAyNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMSAgICAgICAgKENPTkZJR19TWVNfVUFSVF9CQVNFICsgMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIgICAgICAgIChDT05GSUdfU1lTX1VBUlRfQkFTRSArIDgpCiAKIC8qCiAgKiBQQ0kgc3R1ZmYKQEAgLTI2Myw3NCArMjYzLDc0IEBACiAgKi8KICNpZiAxCiAKLSNkZWZpbmUgQ0ZHX0lCQVQwTCAwCi0jZGVmaW5lIENGR19JQkFUMFUgMAotI2RlZmluZSBDRkdfREJBVDBMIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQwVSBDRkdfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMIDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSBDT05GSUdfU1lTX0lCQVQxVQogCi0jZGVmaW5lIENGR19JQkFUMUwgMAotI2RlZmluZSBDRkdfSUJBVDFVIDAKLSNkZWZpbmUgQ0ZHX0RCQVQxTCBDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUgQ0ZHX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVIDAKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUgQ09ORklHX1NZU19JQkFUMVUKIAotI2RlZmluZSBDRkdfSUJBVDJMIDAKLSNkZWZpbmUgQ0ZHX0lCQVQyVSAwCi0jZGVmaW5lIENGR19EQkFUMkwgQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVIENGR19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwgMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVSAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMIENPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVIENPTkZJR19TWVNfSUJBVDJVCiAKLSNkZWZpbmUgQ0ZHX0lCQVQzTCAwCi0jZGVmaW5lIENGR19JQkFUM1UgMAotI2RlZmluZSBDRkdfREJBVDNMIENGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVSBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMIDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTCBDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSBDT05GSUdfU1lTX0lCQVQzVQogCiAjZWxzZQogCiAvKiBTRFJBTSAqLwotI2RlZmluZSBDRkdfSUJBVDBMIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUlcpCi0jZGVmaW5lIENGR19JQkFUMFUgKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMEwgQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDBVIENGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUlcpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwgQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUgQ09ORklHX1NZU19JQkFUMVUKIAogLyogYWRkcmVzcyByYW5nZSBmb3IgZmxhc2hlcyAqLwotI2RlZmluZSBDRkdfSUJBVDFMIChDRkdfRkxBU0hfQkFTRSB8IEJBVExfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQxVSAoQ0ZHX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzE2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDFMIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSBDRkdfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRMX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzE2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTCBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVSBDT05GSUdfU1lTX0lCQVQxVQogCiAvKiBJU0EgSU8gc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyTCAoQ0ZHX0lTQV9JTyB8IEJBVExfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVSAoQ0ZHX0lTQV9JTyB8IEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMkwgQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVIENGR19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwgKENPTkZJR19TWVNfSVNBX0lPIHwgQkFUTF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVSAoQ09ORklHX1NZU19JU0FfSU8gfCBCQVRVX0JMXzE2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCBDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVSBDT05GSUdfU1lTX0lCQVQyVQogCiAvKiBJU0EgbWVtb3J5IHNwYWNlICovCi0jZGVmaW5lIENGR19JQkFUM0wgKENGR19JU0FfTUVNIHwgQkFUTF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVIChDRkdfSVNBX01FTSB8IEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUM0wgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVIENGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wgKENPTkZJR19TWVNfSVNBX01FTSB8IEJBVExfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgKENPTkZJR19TWVNfSVNBX01FTSB8IEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMIENPTkZJR19TWVNfSUJBVDNMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVIENPTkZJR19TWVNfSUJBVDNVCiAKICNlbmRpZgogCiAvKgogICogU3BlZWQgc2V0dGluZ3MgYXJlIGJvYXJkIHNwZWNpZmljCiAgKi8KLSNkZWZpbmUgQ0ZHX0JVU19IWiAgICAgICAgICAgICAgMTAwMDAwMDAwCi0jZGVmaW5lIENGR19DUFVfQ0xLICAgICAgICAgICAgIDQwMDAwMDAwMAotI2RlZmluZSBDRkdfQlVTX0NMSyAgICAgICAgICAgICBDRkdfQlVTX0haCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0haICAgICAgICAgICAgICAxMDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUFVfQ0xLICAgICAgICAgICAgIDQwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JVU19DTEsgICAgICAgICAgICAgQ09ORklHX1NZU19CVVNfSFoKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWiAgICAgICAgICAgKDggPDwgMjApICAgICAgICAgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaICAgICAgICAgICAoOCA8PCAyMCkgICAgICAgICAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUgICAgICAgIDMyICAgIC8qIEZvciBhbGwgTVBDNzR4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgICAgICAgIDMyICAgIC8qIEZvciBhbGwgTVBDNzR4eCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQgICAgICAgIDUgICAgLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQgICAgICAgIDUgICAgLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgpAQCAtMzM4LDcgKzMzOCw3IEBACiAgKiBsb29rIGluIGluY2x1ZGUvNzR4eF83eHguaCBmb3IgdGhlIGRlZmluZXMgdXNlZCBoZXJlCiAgKi8KIAotI2RlZmluZSBDRkdfTDIKKyNkZWZpbmUgQ09ORklHX1NZU19MMgogCiAjaWYgMQogI2RlZmluZSBMMl9JTklUICAgICAwICAgICAgIC8qIGNwdSA3NTAgQ1hlKi8KQEAgLTM1OCw3ICszNTgsNyBAQAogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkgICAgICAgIC8qIE11bHRpIGV0aGVybmV0IGNhcmRzIHN1cHBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAgICAgICAgICAgICAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogI2RlZmluZSBDT05GSUdfRUVQUk8xMDBfU1JPTV9XUklURQogCiAjZW5kaWYgICAgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0VMUFQ4NjAuaCBiL2luY2x1ZGUvY29uZmlncy9FTFBUODYwLmgKaW5kZXggYzZhM2I4Yi4uZmY1OGVhOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0VMUFQ4NjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRUxQVDg2MC5oCkBAIC05Nyw3ICs5Nyw3IEBACiAjZGVmaW5lIENPTkZJR19SVENfRFMxNjR4CTEJLyogUlRDIGlzIGEgRGFsbGFzIERTMTY0NgkqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJICBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCSAgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKIAogLyoKQEAgLTExMiwyNSArMTEyLDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUICAgICAiTEVPWF9lbHB0ODYwOiAiIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVCAgICAgIkxFT1hfZWxwdDg2MDogIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jICBkZWZpbmUgQ0ZHX0NCU0laRQkgMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCSAyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJICAxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCSAgQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJICAxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkgIENPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyoKICAqIEVudmlyb25tZW50IFZhcmlhYmxlcyBhbmQgU3RvcmFnZXMKQEAgLTE0Miw3ICsxNDIsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEgICAgICAvKiBFbnZpcm9ubWVudCBpcyBpbiBGTEFTSAkqLwogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJOTYwMCAgIC8qIGNvbnNvbGUgYmF1ZHJhdGUgPSA5NjAwIGJwcwkqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBDT05GSUdfRVRIQUREUgkJMDA6MDE6Nzc6MDA6NjA6NDAKICNkZWZpbmUgQ09ORklHX0lQQUREUgkJMTkyLjE2OC4wLjMwCkBAIC0xNjAsNTggKzE2MCw1OCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAyMDAwMDAwCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFCQkweDAzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFCQkweDAzMDAwMDAwCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjICBpZiBkZWZpbmVkKERFQlVHKQotIyAgICBkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSgzMjAgPDwgMTApICAvKiBSZXNlcnZlIDMyMCBrQiBmb3IgTW9uaXRvciAgKi8KKyMgICAgZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JKDMyMCA8PCAxMCkgIC8qIFJlc2VydmUgMzIwIGtCIGZvciBNb25pdG9yICAqLwogIyAgZWxzZQotIyAgICBkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSgyNTYgPDwgMTApICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgKi8KKyMgICAgZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JKDI1NiA8PCAxMCkgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAqLwogIyAgZW5kaWYKICNlbHNlCiAjICBpZiBkZWZpbmVkKERFQlVHKQotIyAgICBkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSgyNTYgPDwgMTApICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgKi8KKyMgICAgZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JKDI1NiA8PCAxMCkgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAqLwogIyAgZWxzZQotIyAgICBkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSgxOTIgPDwgMTApICAvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvciAgKi8KKyMgICAgZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JKDE5MiA8PCAxMCkgIC8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yICAqLwogIyAgZW5kaWYKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApICAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkgIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApICAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjICBkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJMHgxMDAwMCAvKiBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IgICAgKi8KQEAgLTIyMSwyMiArMjIxLDIyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOVlJBTSBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCUNGR19OVlJBTV9CQVNFIC8qIEJhc2UgYWRkcmVzcyBvZiBOVlJBTSBhcmVhICovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkoKDEyOCoxMDI0KS04KSAvKiBjbG9jayByZWdzIHJlc2lkZW50IGluIHRoZSAqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUglDT05GSUdfU1lTX05WUkFNX0JBU0UgLyogQmFzZSBhZGRyZXNzIG9mIE5WUkFNIGFyZWEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkoKDEyOCoxMDI0KS04KSAvKiBjbG9jayByZWdzIHJlc2lkZW50IGluIHRoZSAqLwogCQkJCQkgICAgICAgLyogICA4IHRvcCBOVlJBTSBsb2NhdGlvbnMgICAgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9OVlJBTSkKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCUNGR19OVlJBTV9CQVNFIC8qIEJhc2UgYWRkcmVzcyBvZiBOVlJBTSBhcmVhICovCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlDT05GSUdfU1lTX05WUkFNX0JBU0UgLyogQmFzZSBhZGRyZXNzIG9mIE5WUkFNIGFyZWEgKi8KICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkgICAgICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCSA0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICAgICAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCSA0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICAgICAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0NiwxMCArMjQ2LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotIyAgZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVAkgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjICBkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVAkgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkkgfCBTWVBDUl9TV1ApCiAjZWxzZQotIyAgZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVAkgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjICBkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVAkgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkJCQkgICBTWVBDUl9TV1ApCiAjZW5kaWYKIApAQCAtMjU4LDE0ICsyNTgsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwpAQCAtMjczLDE0ICsyNzMsMTQgQEAKICAqIE9uY2UtcGVyLVNlY29uZCBJbnRlcnJ1cHQsIEFsYXJtIEludGVycnVwdCwgUlRDIGZyZWV6aW5nIGVuYWJsZWQsIFJUQwogICogIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yODgsNyArMjg4LDcgQEAKICAqIFJlc2V0IFBMTCBsb2NrIHN0YXR1cyBzdGlja3kgYml0LCB0aW1lciBleHBpcmVkIHN0YXR1cyBiaXQgYW5kIHRpbWVyCiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdCAtIGxlYXZlIFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgdW5jaGFuZ2VkICEKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0yOTcsNyArMjk3LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCSBTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQpAQCAtMzA4LDkgKzMwOCw5IEBACiAgKgogICovCiAjaWZkZWYgREVCVUcKLSMgIGRlZmluZSBDRkdfREVSCQkweEZGRTc0MDBGCS8qIERlYnVnIEVuYWJsZSBSZWdpc3RlciAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfREVSCQkweEZGRTc0MDBGCS8qIERlYnVnIEVuYWJsZSBSZWdpc3RlciAqLwogI2Vsc2UKLSMgIGRlZmluZSBDRkdfREVSCQkwCisjICBkZWZpbmUgQ09ORklHX1NZU19ERVIJCTAKICNlbmRpZgogCiAvKgpAQCAtMzIwLDY4ICszMjAsNjggQEAKICAqIEJSMCBhbmQgT1IwIChGTEFTSCkKICAqLwogCi0jZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSAgKi8KKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSAgKi8KIAogLyogdXNlZCB0byByZS1tYXAgRkxBU0ggYm90aCB3aGVuIHN0YXJ0aW5nIGZyb20gU1JBTSBvciBGTEFTSDoKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RkYwMDAwMDAJLyogMTYgTUIgYmV0d2VlbiBlYWNoIENTeCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZGMDAwMDAwCS8qIDE2IE1CIGJldHdlZW4gZWFjaCBDU3ggKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMSwgVFJMWCA9IDAsIENTTlQgPSAwLCBTQ1kgPSA4LCBFSFRSID0gMAkgICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYyIHwgT1JfQkkgfCBPUl9TQ1lfOF9DTEspCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMiB8IE9SX0JJIHwgT1JfU0NZXzhfQ0xLKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCiAKIC8qCiAgKiBCUjEgYW5kIE9SMSAoU0RSQU0pCiAgKgogICovCi0jZGVmaW5lIFNEUkFNX0JBU0UxX1BSRUxJTQlDRkdfU0RSQU1fQkFTRQkvKiBTRFJBTSBiYW5rICMwCSovCisjZGVmaW5lIFNEUkFNX0JBU0UxX1BSRUxJTQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJLyogU0RSQU0gYmFuayAjMAkqLwogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJMHgwMjAwMDAwMAkvKiAzMiBNQiBNQVggZm9yIENTMQkqLwogCiAvKiBTRFJBTSB0aW1pbmc6CQkJCQkJCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JKCgyICogQ0ZHX1BSRUxJTV9PUl9BTSkgfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChTRFJBTV9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JKCgyICogQ09ORklHX1NZU19QUkVMSU1fT1JfQU0pIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChTRFJBTV9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAvKgogICogQlIyIGFuZCBPUjIgKE5WUkFNKQogICoKICAqLwotI2RlZmluZSBOVlJBTV9CQVNFMV9QUkVMSU0JQ0ZHX05WUkFNX0JBU0UJLyogTlZSQU0gYmFuayAjMAkqLworI2RlZmluZSBOVlJBTV9CQVNFMV9QUkVMSU0JQ09ORklHX1NZU19OVlJBTV9CQVNFCS8qIE5WUkFNIGJhbmsgIzAJKi8KICNkZWZpbmUgTlZSQU1fTUFYX1NJWkUJCTB4MDAwMjAwMDAJLyogMTI4IEtCIE1BWCBmb3IgQ1MyCSovCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4RkZGODAxNjAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChOVlJBTV9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4RkZGODAxNjAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoTlZSQU1fQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKICAqLwogCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTUFNUl9QVEEJCTk3ICAgICAvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJOTcgICAgIC8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IeiAqLwogCiAvKiByZWZyZXNoIHJhdGUgMTUuNiB1cyAoPSA2NCBtcyAvIDRLID0gNjIuNCAvIHF1YWQgYnVyc3RzKSBmb3IgPD0gMTI4IE1CaXQgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJICAvKiBzZXR0aW5nIGZvciAyIGJhbmtzICovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCSAgLyogc2V0dGluZyBmb3IgMSBiYW5rCSAqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJICAvKiBzZXR0aW5nIGZvciAyIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkgIC8qIHNldHRpbmcgZm9yIDEgYmFuawkgKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJICAvKiBzZXR0aW5nIGZvciAyIGJhbmtzICovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CSAgLyogc2V0dGluZyBmb3IgMSBiYW5rCSAqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkgIC8qIHNldHRpbmcgZm9yIDIgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CSAgLyogc2V0dGluZyBmb3IgMSBiYW5rCSAqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfCBcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfCBcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8IFwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8IFwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvRVAxQzIwLmggYi9pbmNsdWRlL2NvbmZpZ3MvRVAxQzIwLmgKaW5kZXggOTBlMzYzNy4uYTA5MDRkNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0VQMUMyMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9FUDFDMjAuaApAQCAtMzAsMjkgKzMwLDI5IEBACiAjZGVmaW5lIENPTkZJR19FUDFDMjAJCTEJCS8qIEVQMUMyMCBib2FyZAkJKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQk1MDAwMDAwMAkvKiA1MCBNSHogY29yZSBjbGsJKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUgkJMHgwMDAwMDAwMAkvKiBIYXJkLXJlc2V0IGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VYQ0VQVElPTl9BRERSCTB4MDEwMDAwMjAJLyogRXhjZXB0aW9uIGVudHJ5IHBvaW50Ki8KLSNkZWZpbmUgQ0ZHX05JT1NfU1lTSURfQkFTRQkweDAyMTIwOGI4CS8qIFN5c3RlbSBpZCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUgkJMHgwMDAwMDAwMAkvKiBIYXJkLXJlc2V0IGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWENFUFRJT05fQUREUgkweDAxMDAwMDIwCS8qIEV4Y2VwdGlvbiBlbnRyeSBwb2ludCovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19TWVNJRF9CQVNFCTB4MDIxMjA4YjgJLyogU3lzdGVtIGlkIGFkZHJlc3MJKi8KICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRiAxCS8qIGVuYWJsZSBlYXJseSBib2FyZC1zcGVjLiBpbml0Ki8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENBQ0hFIC0tIHRoZSBmb2xsb3dpbmcgd2lsbCBzdXBwb3J0IElJL3MgYW5kIElJL2YuIFRoZSBJSS9zIGRvZXMgbm90CiAgKiBoYXZlIGRjYWNoZSwgc28gdGhlIGNhY2hlIGluc3RydWN0aW9ucyB3aWxsIGJlaGF2ZSBhcyBOT1BzLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0lDQUNIRV9TSVpFCQk0MDk2CQkvKiA0IEtCeXRlIHRvdGFsCSovCi0jZGVmaW5lIENGR19JQ0FDSEVMSU5FX1NJWkUJMzIJCS8qIDMyIGJ5dGVzL2xpbmUJKi8KLSNkZWZpbmUgQ0ZHX0RDQUNIRV9TSVpFCQkyMDQ4CQkvKiAyIEtCeXRlIChJSS9mKQkqLwotI2RlZmluZSBDRkdfRENBQ0hFTElORV9TSVpFCTQJCS8qIDQgYnl0ZXMvbGluZSAoSUkvZikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfU0laRQkJNDA5NgkJLyogNCBLQnl0ZSB0b3RhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0lDQUNIRUxJTkVfU0laRQkzMgkJLyogMzIgYnl0ZXMvbGluZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9TSVpFCQkyMDQ4CQkvKiAyIEtCeXRlIChJSS9mKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRUxJTkVfU0laRQk0CQkvKiA0IGJ5dGVzL2xpbmUgKElJL2YpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNRU1PUlkgQkFTRSBBRERSRVNTRVMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAwMDAwMDAwCS8qIEZMQVNIIGJhc2UgYWRkcgkqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAkvKiA4IE1CeXRlCQkqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMTAwMDAwMAkvKiBTRFJBTSBiYXNlIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTB4MDEwMDAwMDAJLyogMTYgTUJ5dGUJCSovCi0jZGVmaW5lIENGR19TUkFNX0JBU0UJCTB4MDIwMDAwMDAJLyogU1JBTSBiYXNlIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX1NSQU1fU0laRQkJMHgwMDEwMDAwMAkvKiAxIE1CIChvbmx5IDFNIG1hcHBlZCkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAJLyogRkxBU0ggYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAkvKiA4IE1CeXRlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDEwMDAwMDAJLyogU0RSQU0gYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMHgwMTAwMDAwMAkvKiAxNiBNQnl0ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX0JBU0UJCTB4MDIwMDAwMDAJLyogU1JBTSBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX1NJWkUJCTB4MDAxMDAwMDAJLyogMSBNQiAob25seSAxTSBtYXBwZWQpKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1FTU9SWSBPUkdBTklaQVRJT04KQEAgLTYxLDI3ICs2MSwyNyBAQAogICoJLUdsb2JhbCBkYXRhIGlzIHBsYWNlZCBiZWxvdyB0aGUgaGVhcC4KICAqCS1UaGUgc3RhY2sgaXMgcGxhY2VkIGJlbG93IGdsb2JhbCBkYXRhICgmZ3Jvd3MgZG93bikuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDEyOGsJCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogR2xvYmFsIGRhdGEgc2l6ZSByc3ZkKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMTI4awkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogR2xvYmFsIGRhdGEgc2l6ZSByc3ZkKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19CQVNFCQkoQ0ZHX01PTklUT1JfQkFTRSAtIENGR19NQUxMT0NfTEVOKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfTUFMTE9DX0JBU0UgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1AJCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfTUFMTE9DX0JBU0UgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUAkJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIChBTTI5TFYwNjVEKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogTWF4ICMgc2VjdHMgcGVyIGJhbmsgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAJCS8qIFdyaXRlIHRpbWVvdXQgKG1zZWMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgkvKiBmbGFzaCB3b3JkIHNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIE1heCAjIHNlY3RzIHBlciBiYW5rICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIE1heCAjIG9mIGZsYXNoIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwCQkvKiBXcml0ZSB0aW1lb3V0IChtc2VjKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCS8qIGZsYXNoIHdvcmQgc2l6ZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogRU5WSVJPTk1FTlQgLS0gUHV0IGVudmlyb25tZW50IGluIHNlY3RvciBDRkdfTU9OSVRPUl9MRU4gYWJvdmUKLSAqIENGR19SRVNFVF9BRERSLCBzaW5jZSB3ZSBhc3N1bWUgdGhlIG1vbml0b3IgaXMgc3RvcmVkIGF0IHRoZQorICogRU5WSVJPTk1FTlQgLS0gUHV0IGVudmlyb25tZW50IGluIHNlY3RvciBDT05GSUdfU1lTX01PTklUT1JfTEVOIGFib3ZlCisgKiBDT05GSUdfU1lTX1JFU0VUX0FERFIsIHNpbmNlIHdlIGFzc3VtZSB0aGUgbW9uaXRvciBpcyBzdG9yZWQgYXQgdGhlCiAgKiByZXNldCBhZGRyZXNzLCBubz8gVGhpcyB3aWxsIGtlZXAgdGhlIGVudmlyb25tZW50IGluIHVzZXIgcmVnaW9uCiAgKiBvZiBmbGFzaC4gTk9URTogdGhlIG1vbml0b3IgbGVuZ3RoIG11c3QgYmUgbXVsdGlwbGUgb2Ygc2VjdG9yIHNpemUKICAqICh3aGljaCBpcyBjb21tb24gcHJhY3RpY2UpLgpAQCAtODksMzAgKzg5LDMwIEBACiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQkJLyogRW52aXJvbm1lbnQgaW4gZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoNjQgKiAxMDI0KQkvKiA2NCBLQnl0ZSAoMSBzZWN0b3IpCSovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCQkJLyogU2VyaWFsIGNoYW5nZSBPawkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19SRVNFVF9BRERSICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfUkVTRVRfQUREUiArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDT05TT0xFCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmIGRlZmluZWQoQ09ORklHX0NPTlNPTEVfSlRBRykKLSNkZWZpbmUgQ0ZHX05JT1NfQ09OU09MRQkweDAyMTIwOGIwCS8qIEpUQUcgVUFSVCBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NPTlNPTEUJMHgwMjEyMDhiMAkvKiBKVEFHIFVBUlQgYmFzZSBhZGRyCSovCiAjZWxzZQotI2RlZmluZSBDRkdfTklPU19DT05TT0xFCTB4MDIxMjA4NDAJLyogVUFSVCBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NPTlNPTEUJMHgwMjEyMDg0MAkvKiBVQVJUIGJhc2UgYWRkcgkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX05JT1NfRklYRURCQVVECTEJCS8qIEJhdWRyYXRlIGlzIGZpeGVkCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19GSVhFREJBVUQJMQkJLyogQmF1ZHJhdGUgaXMgZml4ZWQJKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJCS8qIEluaXRpYWwgYmF1ZHJhdGUJKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsxMTUyMDB9CS8qIEl0J3MgZml4ZWQgOy0pCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezExNTIwMH0JLyogSXQncyBmaXhlZCA7LSkJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJCS8qIFN1cHByZXNzIGNvbnNvbGUgaW5mbyovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJCS8qIFN1cHByZXNzIGNvbnNvbGUgaW5mbyovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiBFUENTIERldmljZSAtLSB3bmUgQ0ZHX05JT1NfRVBDU0JBU0UgaXMgZGVmaW5lZCBjb2RlL2NvbW1hbmRzIGZvcgorICogRVBDUyBEZXZpY2UgLS0gd25lIENPTkZJR19TWVNfTklPU19FUENTQkFTRSBpcyBkZWZpbmVkIGNvZGUvY29tbWFuZHMgZm9yCiAgKiBlcGNzIGRldmljZSBhY2Nlc3MgaXMgZW5hYmxlZC4gVGhlIGJhc2UgYWRkcmVzcyBpcyB0aGUgZXBjcwogICogX3JlZ2lzdGVyXyBiYXNlIGFkZHJlc3MsIE5PVCBUSEUgQUREUkVTUyBPRiBUSEUgTUVNT1JZIEJMT0NLLgogICogVGhlIHJlZ2lzdGVyIGJhc2UgaXMgY3VycmVudGx5IGF0IG9mZnNldCAweDYwMCBmcm9tIHRoZSBtZW1vcnkgYmFzZS4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19OSU9TX0VQQ1NCQVNFCTB4MDIxMDAyMDAJLyogRVBDUyByZWdpc3RlciBiYXNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19FUENTQkFTRQkweDAyMTAwMjAwCS8qIEVQQ1MgcmVnaXN0ZXIgYmFzZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogREVCVUcKQEAgLTEyNiwyMyArMTI2LDIzIEBACiAgKiByZWdpc3RlcnMsIHdlIGNhbiBzbG93IGl0IGRvd24gdG8gMTAgbXNlYyB1c2luZyBUTVJDTlQuIElmIHRoZSBkZWZhdWx0CiAgKiBwZXJpb2QgaXMgYWNjZXB0YWJsZSwgVE1SQ05UIGNhbiBiZSBsZWZ0IHVuZGVmaW5lZC4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19OSU9TX1RNUkJBU0UJMHgwMjEyMDgyMAkvKiBUaWNrIHRpbWVyIGJhc2UgYWRkciAqLwotI2RlZmluZSBDRkdfTklPU19UTVJJUlEJCTMJCS8qIFRpbWVyIElSUSBudW0JKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1STVMJCTEwCQkvKiAxMCBtc2VjIHBlciB0aWNrCSovCi0jZGVmaW5lIENGR19OSU9TX1RNUkNOVCAoQ0ZHX05JT1NfVE1STVMgKiAoQ09ORklHX1NZU19DTEtfRlJFUS8xMDAwKSkKLSNkZWZpbmUgQ0ZHX0haCQkoQ09ORklHX1NZU19DTEtfRlJFUS8oQ0ZHX05JT1NfVE1SQ05UICsgMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJCQVNFCTB4MDIxMjA4MjAJLyogVGljayB0aW1lciBiYXNlIGFkZHIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUklSUQkJMwkJLyogVGltZXIgSVJRIG51bQkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1STVMJCTEwCQkvKiAxMCBtc2VjIHBlciB0aWNrCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJDTlQgKENPTkZJR19TWVNfTklPU19UTVJNUyAqIChDT05GSUdfU1lTX0NMS19GUkVRLzEwMDApKQorI2RlZmluZSBDT05GSUdfU1lTX0haCQkoQ09ORklHX1NZU19DTEtfRlJFUS8oQ09ORklHX1NZU19OSU9TX1RNUkNOVCArIDEpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU1RBVFVTIExFRCAtLSBQcm92aWRlcyBhIHNpbXBsZSBibGlua2luZyBsZWQuIEZvciBOaW9zMiBlYWNoIGJvYXJkCiAgKiBtdXN0IGltcGxlbWVudCBpdHMgb3duIGxlZCByb3V0aW5lcyAtLSBsZWRzIGFyZSwgYWZ0ZXIgYWxsLAogICogYm9hcmQtc3BlY2lmaWMsIG5vPwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0xFRFBJT19BRERSCQkweDAyMTIwODcwCS8qIExFRCBQSU8gYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfTEVEUElPX0FERFIJCTB4MDIxMjA4NzAJLyogTEVEIFBJTyBiYXNlIGFkZHIJKi8KICNkZWZpbmUgQ09ORklHX1NUQVRVU19MRUQJCQkvKiBFbmFibGUgc3RhdHVzIGRyaXZlciAqLwogCiAjZGVmaW5lIFNUQVRVU19MRURfQklUCQkxCQkvKiBCaXQtMCBvbiBQSU8JCSovCiAjZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJMQkJLyogQmxpbmtpbmcJCSovCi0jZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECSg1MDAvQ0ZHX05JT1NfVE1STVMpIC8qIEV2ZXJ5IDUwMCBtc2VjCSovCisjZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECSg1MDAvQ09ORklHX1NZU19OSU9TX1RNUk1TKSAvKiBFdmVyeSA1MDAgbXNlYwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRVRIRVJORVQgLS0gVGhlIGhlYWRlciBmaWxlIGZvciB0aGUgU01DOTExMTEgZHJpdmVyIGh1cnRzIG15IGV5ZXMgLi4uCkBAIC0xOTQsMTcgKzE5NCwxNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1JU0MKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiBQcm92aWRlIGV4dGVuZGVkIGhlbHAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT0+ICIJCS8qIENvbW1hbmQgcHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gYnVmIHNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBNYXggY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IGFyZyBidWYgc2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgYnVmIHNpemUgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJQ0ZHX1NEUkFNX0JBU0UJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UJLyogU3RhcnQgYWRkciBmb3IgdGVzdAkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCUNGR19JTklUX1NQIC0gMHgwMDAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIFByb3ZpZGUgZXh0ZW5kZWQgaGVscCovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT0+ICIJCS8qIENvbW1hbmQgcHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIGJ1ZiBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIE1heCBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBhcmcgYnVmIHNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IGJ1ZiBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkvKiBTdGFydCBhZGRyIGZvciB0ZXN0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCUNPTkZJR19TWVNfSU5JVF9TUCAtIDB4MDAwMjAwMDAKIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0VQMVMxMC5oIGIvaW5jbHVkZS9jb25maWdzL0VQMVMxMC5oCmluZGV4IGFlOTQwOWYuLjYzYTBkM2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9FUDFTMTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRVAxUzEwLmgKQEAgLTMwLDI4ICszMCwyOCBAQAogI2RlZmluZSBDT05GSUdfRVAxUzEwCQkxCQkvKiBFUDFTMTAgYm9hcmQJCSovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJNTAwMDAwMDAJLyogNTAgTUh6IGNvcmUgY2xrCSovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFIJCTB4MDAwMDAwMDAJLyogSGFyZC1yZXNldCBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FWENFUFRJT05fQUREUgkweDAxMDAwMDIwCS8qIEV4Y2VwdGlvbiBlbnRyeSBwb2ludCovCi0jZGVmaW5lIENGR19OSU9TX1NZU0lEX0JBU0UJMHgwMjEyMDhiOAkvKiBTeXN0ZW0gaWQgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFIJCTB4MDAwMDAwMDAJLyogSGFyZC1yZXNldCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhDRVBUSU9OX0FERFIJMHgwMTAwMDAyMAkvKiBFeGNlcHRpb24gZW50cnkgcG9pbnQqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfU1lTSURfQkFTRQkweDAyMTIwOGI4CS8qIFN5c3RlbSBpZCBhZGRyZXNzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDQUNIRSAtLSB0aGUgZm9sbG93aW5nIHdpbGwgc3VwcG9ydCBJSS9zIGFuZCBJSS9mLiBUaGUgSUkvcyBkb2VzIG5vdAogICogaGF2ZSBkY2FjaGUsIHNvIHRoZSBjYWNoZSBpbnN0cnVjdGlvbnMgd2lsbCBiZWhhdmUgYXMgTk9Qcy4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JQ0FDSEVfU0laRQkJNDA5NgkJLyogNCBLQnl0ZSB0b3RhbAkqLwotI2RlZmluZSBDRkdfSUNBQ0hFTElORV9TSVpFCTMyCQkvKiAzMiBieXRlcy9saW5lCSovCi0jZGVmaW5lIENGR19EQ0FDSEVfU0laRQkJMjA0OAkJLyogMiBLQnl0ZSAoSUkvZikJKi8KLSNkZWZpbmUgQ0ZHX0RDQUNIRUxJTkVfU0laRQk0CQkvKiA0IGJ5dGVzL2xpbmUgKElJL2YpCSovCisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFX1NJWkUJCTQwOTYJCS8qIDQgS0J5dGUgdG90YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVMSU5FX1NJWkUJMzIJCS8qIDMyIGJ5dGVzL2xpbmUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EQ0FDSEVfU0laRQkJMjA0OAkJLyogMiBLQnl0ZSAoSUkvZikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EQ0FDSEVMSU5FX1NJWkUJNAkJLyogNCBieXRlcy9saW5lIChJSS9mKQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTUVNT1JZIEJBU0UgQUREUkVTU0VTCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMAkvKiBGTEFTSCBiYXNlIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAJLyogOCBNQnl0ZQkJKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDEwMDAwMDAJLyogU0RSQU0gYmFzZSBhZGRyCSovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkweDAxMDAwMDAwCS8qIDE2IE1CeXRlCQkqLwotI2RlZmluZSBDRkdfU1JBTV9CQVNFCQkweDAyMDAwMDAwCS8qIFNSQU0gYmFzZSBhZGRyCSovCi0jZGVmaW5lIENGR19TUkFNX1NJWkUJCTB4MDAxMDAwMDAJLyogMSBNQgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMAkvKiBGTEFTSCBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAwODAwMDAwCS8qIDggTUJ5dGUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMTAwMDAwMAkvKiBTRFJBTSBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkweDAxMDAwMDAwCS8qIDE2IE1CeXRlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fQkFTRQkJMHgwMjAwMDAwMAkvKiBTUkFNIGJhc2UgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fU0laRQkJMHgwMDEwMDAwMAkvKiAxIE1CCQkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1FTU9SWSBPUkdBTklaQVRJT04KQEAgLTYwLDI2ICs2MCwyNiBAQAogICoJLUdsb2JhbCBkYXRhIGlzIHBsYWNlZCBiZWxvdyB0aGUgaGVhcC4KICAqCS1UaGUgc3RhY2sgaXMgcGxhY2VkIGJlbG93IGdsb2JhbCBkYXRhICgmZ3Jvd3MgZG93bikuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NmsJCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogR2xvYmFsIGRhdGEgc2l6ZSByc3ZkKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAyNTYqMTAyNCkgLyogMjU2ayBoZWFwICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NmsJCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIEdsb2JhbCBkYXRhIHNpemUgcnN2ZCovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDI1NioxMDI0KSAvKiAyNTZrIGhlYXAgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0JBU0UJCShDRkdfTU9OSVRPUl9CQVNFIC0gQ0ZHX01BTExPQ19MRU4pCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19NQUxMT0NfQkFTRSAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUAkJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfQkFTRQkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gQ09ORklHX1NZU19NQUxMT0NfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19NQUxMT0NfQkFTRSAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQCQlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggKEFNMjlMVjA2NUQpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBNYXggIyBzZWN0cyBwZXIgYmFuayAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIE1heCAjIG9mIGZsYXNoIGJhbmtzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTgwMDAJCS8qIEVyYXNlIHRpbWVvdXQgKG1zZWMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEwMAkJLyogV3JpdGUgdGltZW91dCAobXNlYykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIE1heCAjIHNlY3RzIHBlciBiYW5rICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIE1heCAjIG9mIGZsYXNoIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwCQkvKiBXcml0ZSB0aW1lb3V0IChtc2VjKSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogRU5WSVJPTk1FTlQgLS0gUHV0IGVudmlyb25tZW50IGluIHNlY3RvciBDRkdfTU9OSVRPUl9MRU4gYWJvdmUKLSAqIENGR19GTEFTSF9CQVNFLCBzaW5jZSB3ZSBhc3N1bWUgdGhhdCB1LWJvb3QgaXMgc3RvcmVkIGF0IHRoZSBib3R0b20KKyAqIEVOVklST05NRU5UIC0tIFB1dCBlbnZpcm9ubWVudCBpbiBzZWN0b3IgQ09ORklHX1NZU19NT05JVE9SX0xFTiBhYm92ZQorICogQ09ORklHX1NZU19GTEFTSF9CQVNFLCBzaW5jZSB3ZSBhc3N1bWUgdGhhdCB1LWJvb3QgaXMgc3RvcmVkIGF0IHRoZSBib3R0b20KICAqIG9mIGZsYXNoIG1lbW9yeS4gVGhpcyB3aWxsIGtlZXAgdGhlIGVudmlyb25tZW50IGluIHVzZXIgcmVnaW9uCiAgKiBvZiBmbGFzaC4gTk9URTogdGhlIG1vbml0b3IgbGVuZ3RoIG11c3QgYmUgbXVsdGlwbGUgb2Ygc2VjdG9yIHNpemUKICAqICh3aGljaCBpcyBjb21tb24gcHJhY3RpY2UpLgpAQCAtODcsMjcgKzg3LDI3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQkJLyogRW52aXJvbm1lbnQgaW4gZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoNjQgKiAxMDI0KQkvKiA2NCBLQnl0ZSAoMSBzZWN0b3IpCSovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCQkJLyogU2VyaWFsIGNoYW5nZSBPawkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDT05TT0xFCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmIGRlZmluZWQoQ09ORklHX0NPTlNPTEVfSlRBRykKLSNkZWZpbmUgQ0ZHX05JT1NfQ09OU09MRQkweDAyMTIwOGIwCS8qIEpUQUcgVUFSVCBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NPTlNPTEUJMHgwMjEyMDhiMAkvKiBKVEFHIFVBUlQgYmFzZSBhZGRyCSovCiAjZWxzZQotI2RlZmluZSBDRkdfTklPU19DT05TT0xFCTB4MDIxMjA4NDAJLyogVUFSVCBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NPTlNPTEUJMHgwMjEyMDg0MAkvKiBVQVJUIGJhc2UgYWRkcgkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX05JT1NfRklYRURCQVVECTEJCS8qIEJhdWRyYXRlIGlzIGZpeGVkCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19GSVhFREJBVUQJMQkJLyogQmF1ZHJhdGUgaXMgZml4ZWQJKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJCS8qIEluaXRpYWwgYmF1ZHJhdGUJKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsxMTUyMDB9CS8qIEl0J3MgZml4ZWQgOy0pCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezExNTIwMH0JLyogSXQncyBmaXhlZCA7LSkJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJCS8qIFN1cHByZXNzIGNvbnNvbGUgaW5mbyovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJCS8qIFN1cHByZXNzIGNvbnNvbGUgaW5mbyovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFUENTIERldmljZSAtLSBOb25lIGZvciBzdHJhdGl4LgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSN1bmRlZiBDRkdfTklPU19FUENTQkFTRQorI3VuZGVmIENPTkZJR19TWVNfTklPU19FUENTQkFTRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogREVCVUcKQEAgLTEyMSwyMiArMTIxLDIyIEBACiAgKiByZWdpc3RlcnMsIHdlIGNhbiBzbG93IGl0IGRvd24gdG8gMTAgbXNlYyB1c2luZyBUTVJDTlQuIElmIHRoZSBkZWZhdWx0CiAgKiBwZXJpb2QgaXMgYWNjZXB0YWJsZSwgVE1SQ05UIGNhbiBiZSBsZWZ0IHVuZGVmaW5lZC4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19OSU9TX1RNUkJBU0UJMHgwMjEyMDgyMAkvKiBUaWNrIHRpbWVyIGJhc2UgYWRkciAqLwotI2RlZmluZSBDRkdfTklPU19UTVJJUlEJCTMJCS8qIFRpbWVyIElSUSBudW0JKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1STVMJCTEwCQkvKiAxMCBtc2VjIHBlciB0aWNrCSovCi0jZGVmaW5lIENGR19OSU9TX1RNUkNOVCAoQ0ZHX05JT1NfVE1STVMgKiAoQ09ORklHX1NZU19DTEtfRlJFUS8xMDAwKSkKLSNkZWZpbmUgQ0ZHX0haCQkoQ09ORklHX1NZU19DTEtfRlJFUS8oQ0ZHX05JT1NfVE1SQ05UICsgMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJCQVNFCTB4MDIxMjA4MjAJLyogVGljayB0aW1lciBiYXNlIGFkZHIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUklSUQkJMwkJLyogVGltZXIgSVJRIG51bQkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1STVMJCTEwCQkvKiAxMCBtc2VjIHBlciB0aWNrCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJDTlQgKENPTkZJR19TWVNfTklPU19UTVJNUyAqIChDT05GSUdfU1lTX0NMS19GUkVRLzEwMDApKQorI2RlZmluZSBDT05GSUdfU1lTX0haCQkoQ09ORklHX1NZU19DTEtfRlJFUS8oQ09ORklHX1NZU19OSU9TX1RNUkNOVCArIDEpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU1RBVFVTIExFRCAtLSBQcm92aWRlcyBhIHNpbXBsZSBibGlua2luZyBsZWQuIEZvciBOaW9zMiBlYWNoIGJvYXJkCiAgKiBtdXN0IGltcGxlbWVudCBpdHMgb3duIGxlZCByb3V0aW5lcyAtLSBzaW5jZSBsZWRzIGFyZSBib2FyZC1zcGVjaWZpYy4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19MRURQSU9fQUREUgkJMHgwMjEyMDg3MAkvKiBMRUQgUElPIGJhc2UgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0xFRFBJT19BRERSCQkweDAyMTIwODcwCS8qIExFRCBQSU8gYmFzZSBhZGRyCSovCiAjZGVmaW5lIENPTkZJR19TVEFUVVNfTEVECQkJLyogRW5hYmxlIHN0YXR1cyBkcml2ZXIgKi8KIAogI2RlZmluZSBTVEFUVVNfTEVEX0JJVAkJMQkJLyogQml0LTAgb24gUElPCQkqLwogI2RlZmluZSBTVEFUVVNfTEVEX1NUQVRFCTEJCS8qIEJsaW5raW5nCQkqLwotI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoNTAwL0NGR19OSU9TX1RNUk1TKSAvKiBFdmVyeSA1MDAgbXNlYwkqLworI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoNTAwL0NPTkZJR19TWVNfTklPU19UTVJNUykgLyogRXZlcnkgNTAwIG1zZWMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVUSEVSTkVUIC0tIFRoZSBoZWFkZXIgZmlsZSBmb3IgdGhlIFNNQzkxMTExIGRyaXZlciBodXJ0cyBteSBleWVzIC4uLgpAQCAtMTg3LDE3ICsxODcsMTcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNSVNDCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogUHJvdmlkZSBleHRlbmRlZCBoZWxwKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj09PiAiCQkvKiBDb21tYW5kIHByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIGJ1ZiBzaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogTWF4IGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBhcmcgYnVmIHNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IGJ1ZiBzaXplICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCUNGR19TRFJBTV9CQVNFCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCUNGR19TRFJBTV9CQVNFCS8qIFN0YXJ0IGFkZHIgZm9yIHRlc3QJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQlDRkdfSU5JVF9TUCAtIDB4MDAwMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiBQcm92aWRlIGV4dGVuZGVkIGhlbHAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj09PiAiCQkvKiBDb21tYW5kIHByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBidWYgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBNYXggY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgYXJnIGJ1ZiBzaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBidWYgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJQ09ORklHX1NZU19TRFJBTV9CQVNFCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAlDT05GSUdfU1lTX1NEUkFNX0JBU0UJLyogU3RhcnQgYWRkciBmb3IgdGVzdAkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQlDT05GSUdfU1lTX0lOSVRfU1AgLSAweDAwMDIwMDAwCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9FUDFTNDAuaCBiL2luY2x1ZGUvY29uZmlncy9FUDFTNDAuaAppbmRleCA5NWFlMTQ3Li4zNmUxZjgxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvRVAxUzQwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0VQMVM0MC5oCkBAIC0zMCwyOCArMzAsMjggQEAKICNkZWZpbmUgQ09ORklHX0VQMVM0MAkJMQkJLyogRVAxUzQwIGJvYXJkCQkqLwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTUwMDAwMDAwCS8qIDUwIE1IeiBjb3JlIGNsawkqLwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSCQkweDAwMDAwMDAwCS8qIEhhcmQtcmVzZXQgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRVhDRVBUSU9OX0FERFIJMHgwMTAwMDAyMAkvKiBFeGNlcHRpb24gZW50cnkgcG9pbnQqLwotI2RlZmluZSBDRkdfTklPU19TWVNJRF9CQVNFCTB4MDIxMjA4YjgJLyogU3lzdGVtIGlkIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSCQkweDAwMDAwMDAwCS8qIEhhcmQtcmVzZXQgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0VYQ0VQVElPTl9BRERSCTB4MDEwMDAwMjAJLyogRXhjZXB0aW9uIGVudHJ5IHBvaW50Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1NZU0lEX0JBU0UJMHgwMjEyMDhiOAkvKiBTeXN0ZW0gaWQgYWRkcmVzcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ0FDSEUgLS0gdGhlIGZvbGxvd2luZyB3aWxsIHN1cHBvcnQgSUkvcyBhbmQgSUkvZi4gVGhlIElJL3MgZG9lcyBub3QKICAqIGhhdmUgZGNhY2hlLCBzbyB0aGUgY2FjaGUgaW5zdHJ1Y3Rpb25zIHdpbGwgYmVoYXZlIGFzIE5PUHMuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSUNBQ0hFX1NJWkUJCTQwOTYJCS8qIDQgS0J5dGUgdG90YWwJKi8KLSNkZWZpbmUgQ0ZHX0lDQUNIRUxJTkVfU0laRQkzMgkJLyogMzIgYnl0ZXMvbGluZQkqLwotI2RlZmluZSBDRkdfRENBQ0hFX1NJWkUJCTIwNDgJCS8qIDIgS0J5dGUgKElJL2YpCSovCi0jZGVmaW5lIENGR19EQ0FDSEVMSU5FX1NJWkUJNAkJLyogNCBieXRlcy9saW5lIChJSS9mKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lDQUNIRV9TSVpFCQk0MDk2CQkvKiA0IEtCeXRlIHRvdGFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFTElORV9TSVpFCTMyCQkvKiAzMiBieXRlcy9saW5lCSovCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NJWkUJCTIwNDgJCS8qIDIgS0J5dGUgKElJL2YpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFTElORV9TSVpFCTQJCS8qIDQgYnl0ZXMvbGluZSAoSUkvZikJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1FTU9SWSBCQVNFIEFERFJFU1NFUwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAJLyogRkxBU0ggYmFzZSBhZGRyCSovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwODAwMDAwCS8qIDggTUJ5dGUJCSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAxMDAwMDAwCS8qIFNEUkFNIGJhc2UgYWRkcgkqLwotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMHgwMTAwMDAwMAkvKiAxNiBNQnl0ZQkJKi8KLSNkZWZpbmUgQ0ZHX1NSQU1fQkFTRQkJMHgwMjAwMDAwMAkvKiBTUkFNIGJhc2UgYWRkcgkqLwotI2RlZmluZSBDRkdfU1JBTV9TSVpFCQkweDAwMTAwMDAwCS8qIDEgTUIJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAJLyogRkxBU0ggYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAkvKiA4IE1CeXRlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDEwMDAwMDAJLyogU0RSQU0gYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMHgwMTAwMDAwMAkvKiAxNiBNQnl0ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX0JBU0UJCTB4MDIwMDAwMDAJLyogU1JBTSBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX1NJWkUJCTB4MDAxMDAwMDAJLyogMSBNQgkJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNRU1PUlkgT1JHQU5JWkFUSU9OCkBAIC02MCwyNiArNjAsMjYgQEAKICAqCS1HbG9iYWwgZGF0YSBpcyBwbGFjZWQgYmVsb3cgdGhlIGhlYXAuCiAgKgktVGhlIHN0YWNrIGlzIHBsYWNlZCBiZWxvdyBnbG9iYWwgZGF0YSAoJmdyb3dzIGRvd24pLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTZrCQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIEdsb2JhbCBkYXRhIHNpemUgcnN2ZCovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMjU2KjEwMjQpIC8qIDI1NmsgaGVhcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTZrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBHbG9iYWwgZGF0YSBzaXplIHJzdmQqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAyNTYqMTAyNCkgLyogMjU2ayBoZWFwICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19CQVNFCQkoQ0ZHX01PTklUT1JfQkFTRSAtIENGR19NQUxMT0NfTEVOKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfTUFMTE9DX0JBU0UgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1AJCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfTUFMTE9DX0JBU0UgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUAkJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIChBTTI5TFYwNjVEKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogTWF4ICMgc2VjdHMgcGVyIGJhbmsgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAJCS8qIFdyaXRlIHRpbWVvdXQgKG1zZWMpICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBNYXggIyBzZWN0cyBwZXIgYmFuayAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkJLyogRXJhc2UgdGltZW91dCAobXNlYykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMAkJLyogV3JpdGUgdGltZW91dCAobXNlYykgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqIEVOVklST05NRU5UIC0tIFB1dCBlbnZpcm9ubWVudCBpbiBzZWN0b3IgQ0ZHX01PTklUT1JfTEVOIGFib3ZlCi0gKiBDRkdfRkxBU0hfQkFTRSwgc2luY2Ugd2UgYXNzdW1lIHRoYXQgdS1ib290IGlzIHN0b3JlZCBhdCB0aGUgYm90dG9tCisgKiBFTlZJUk9OTUVOVCAtLSBQdXQgZW52aXJvbm1lbnQgaW4gc2VjdG9yIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gYWJvdmUKKyAqIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgc2luY2Ugd2UgYXNzdW1lIHRoYXQgdS1ib290IGlzIHN0b3JlZCBhdCB0aGUgYm90dG9tCiAgKiBvZiBmbGFzaCBtZW1vcnkuIFRoaXMgd2lsbCBrZWVwIHRoZSBlbnZpcm9ubWVudCBpbiB1c2VyIHJlZ2lvbgogICogb2YgZmxhc2guIE5PVEU6IHRoZSBtb25pdG9yIGxlbmd0aCBtdXN0IGJlIG11bHRpcGxlIG9mIHNlY3RvciBzaXplCiAgKiAod2hpY2ggaXMgY29tbW9uIHByYWN0aWNlKS4KQEAgLTg3LDI3ICs4NywyNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEJCS8qIEVudmlyb25tZW50IGluIGZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKDY0ICogMTAyNCkJLyogNjQgS0J5dGUgKDEgc2VjdG9yKQkqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQkJCS8qIFNlcmlhbCBjaGFuZ2UgT2sJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ09OU09MRQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZiBkZWZpbmVkKENPTkZJR19DT05TT0xFX0pUQUcpCi0jZGVmaW5lIENGR19OSU9TX0NPTlNPTEUJMHgwMjEyMDhiMAkvKiBKVEFHIFVBUlQgYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19DT05TT0xFCTB4MDIxMjA4YjAJLyogSlRBRyBVQVJUIGJhc2UgYWRkcgkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX05JT1NfQ09OU09MRQkweDAyMTIwODQwCS8qIFVBUlQgYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19DT05TT0xFCTB4MDIxMjA4NDAJLyogVUFSVCBiYXNlIGFkZHIJKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19OSU9TX0ZJWEVEQkFVRAkxCQkvKiBCYXVkcmF0ZSBpcyBmaXhlZAkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfRklYRURCQVVECTEJCS8qIEJhdWRyYXRlIGlzIGZpeGVkCSovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCQkvKiBJbml0aWFsIGJhdWRyYXRlCSovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7MTE1MjAwfQkvKiBJdCdzIGZpeGVkIDstKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsxMTUyMDB9CS8qIEl0J3MgZml4ZWQgOy0pCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCQkvKiBTdXBwcmVzcyBjb25zb2xlIGluZm8qLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCQkvKiBTdXBwcmVzcyBjb25zb2xlIGluZm8qLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRVBDUyBEZXZpY2UgLS0gTm9uZSBmb3Igc3RyYXRpeC4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jdW5kZWYgQ0ZHX05JT1NfRVBDU0JBU0UKKyN1bmRlZiBDT05GSUdfU1lTX05JT1NfRVBDU0JBU0UKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERFQlVHCkBAIC0xMjEsMjIgKzEyMSwyMiBAQAogICogcmVnaXN0ZXJzLCB3ZSBjYW4gc2xvdyBpdCBkb3duIHRvIDEwIG1zZWMgdXNpbmcgVE1SQ05ULiBJZiB0aGUgZGVmYXVsdAogICogcGVyaW9kIGlzIGFjY2VwdGFibGUsIFRNUkNOVCBjYW4gYmUgbGVmdCB1bmRlZmluZWQuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTklPU19UTVJCQVNFCTB4MDIxMjA4MjAJLyogVGljayB0aW1lciBiYXNlIGFkZHIgKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1SSVJRCQkzCQkvKiBUaW1lciBJUlEgbnVtCSovCi0jZGVmaW5lIENGR19OSU9TX1RNUk1TCQkxMAkJLyogMTAgbXNlYyBwZXIgdGljawkqLwotI2RlZmluZSBDRkdfTklPU19UTVJDTlQgKENGR19OSU9TX1RNUk1TICogKENPTkZJR19TWVNfQ0xLX0ZSRVEvMTAwMCkpCi0jZGVmaW5lIENGR19IWgkJKENPTkZJR19TWVNfQ0xLX0ZSRVEvKENGR19OSU9TX1RNUkNOVCArIDEpKQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SQkFTRQkweDAyMTIwODIwCS8qIFRpY2sgdGltZXIgYmFzZSBhZGRyICovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJJUlEJCTMJCS8qIFRpbWVyIElSUSBudW0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUk1TCQkxMAkJLyogMTAgbXNlYyBwZXIgdGljawkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SQ05UIChDT05GSUdfU1lTX05JT1NfVE1STVMgKiAoQ09ORklHX1NZU19DTEtfRlJFUS8xMDAwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJKENPTkZJR19TWVNfQ0xLX0ZSRVEvKENPTkZJR19TWVNfTklPU19UTVJDTlQgKyAxKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNUQVRVUyBMRUQgLS0gUHJvdmlkZXMgYSBzaW1wbGUgYmxpbmtpbmcgbGVkLiBGb3IgTmlvczIgZWFjaCBib2FyZAogICogbXVzdCBpbXBsZW1lbnQgaXRzIG93biBsZWQgcm91dGluZXMgLS0gc2luY2UgbGVkcyBhcmUgYm9hcmQtc3BlY2lmaWMuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTEVEUElPX0FERFIJCTB4MDIxMjA4NzAJLyogTEVEIFBJTyBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MRURQSU9fQUREUgkJMHgwMjEyMDg3MAkvKiBMRUQgUElPIGJhc2UgYWRkcgkqLwogI2RlZmluZSBDT05GSUdfU1RBVFVTX0xFRAkJCS8qIEVuYWJsZSBzdGF0dXMgZHJpdmVyICovCiAKICNkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTEJCS8qIEJpdC0wIG9uIFBJTwkJKi8KICNkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQkxCQkvKiBCbGlua2luZwkJKi8KLSNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKDUwMC9DRkdfTklPU19UTVJNUykgLyogRXZlcnkgNTAwIG1zZWMJKi8KKyNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKDUwMC9DT05GSUdfU1lTX05JT1NfVE1STVMpIC8qIEV2ZXJ5IDUwMCBtc2VjCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFVEhFUk5FVCAtLSBUaGUgaGVhZGVyIGZpbGUgZm9yIHRoZSBTTUM5MTExMSBkcml2ZXIgaHVydHMgbXkgZXllcyAuLi4KQEAgLTE4NywxNyArMTg3LDE3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTUlTQwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIFByb3ZpZGUgZXh0ZW5kZWQgaGVscCovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PT4gIgkJLyogQ29tbWFuZCBwcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBidWYgc2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIE1heCBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgYXJnIGJ1ZiBzaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBidWYgc2l6ZSAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQlDRkdfU0RSQU1fQkFTRQkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAlDRkdfU0RSQU1fQkFTRQkvKiBTdGFydCBhZGRyIGZvciB0ZXN0CSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJQ0ZHX0lOSVRfU1AgLSAweDAwMDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogUHJvdmlkZSBleHRlbmRlZCBoZWxwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PT4gIgkJLyogQ29tbWFuZCBwcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gYnVmIHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogTWF4IGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IGFyZyBidWYgc2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgYnVmIHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJQ09ORklHX1NZU19TRFJBTV9CQVNFCS8qIFN0YXJ0IGFkZHIgZm9yIHRlc3QJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJQ09ORklHX1NZU19JTklUX1NQIC0gMHgwMDAyMDAwMAogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvRVA4OHguaCBiL2luY2x1ZGUvY29uZmlncy9FUDg4eC5oCmluZGV4IDEwNmNjNmYuLmUxYzYwOTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9FUDg4eC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9FUDg4eC5oCkBAIC00MSwxNSArNDEsMTUgQEAKICNkZWZpbmUJQ09ORklHX0VUSEVSX09OX0ZFQzEJCQkvKiBFbmFibGUgRXRoZXJuZXQgb24gRkVDMQkqLwogI2RlZmluZQlDT05GSUdfRVRIRVJfT05fRkVDMgkJCS8qIEVuYWJsZSBFdGhlcm5ldCBvbiBGRUMyCSovCiAjaWYgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkVDMSkgfHwgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkVDMikKLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2RlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKICNkZWZpbmUgRkVDX0VORVQKICNlbmRpZiAvKiBDT05GSUdfRkVDX0VORVQgKi8KIAogI2RlZmluZSBDT05GSUdfOHh4X09TQ0xLCQkxMDAwMDAwMCAvKiAxMCBNSHogb3NjaWxsYXRvciBvbiBFWFRDTEsgKi8KICNkZWZpbmUgQ09ORklHXzh4eF9DUFVDTEtfREVGQVVMVAkxMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHXzh4eF9DUFVDTEtfTUlOCQk0MDAwMDAwMAotI2RlZmluZSBDRkdfOHh4X0NQVUNMS19NQVgJCTEzMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUlOCQk0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUFYCQkxMzMwMDAwMDAKIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTgxLDI4ICs4MSwyOCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qICN1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikgIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogTWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qICN1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpICAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBNYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHg0MDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDQwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBEZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBEZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqIFJBTSBjb25maWd1cmF0aW9uIChub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgbXVzdCBiZSB6ZXJvKQorICogUkFNIGNvbmZpZ3VyYXRpb24gKG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgbXVzdCBiZSB6ZXJvKQogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9NQVhfU0laRQkweDA4MDAwMDAwCS8qIFVwIHRvIDEyOCBNYnl0ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fTUFYX1NJWkUJMHgwODAwMDAwMAkvKiBVcCB0byAxMjggTWJ5dGUJCSovCiAKLSNkZWZpbmUgQ0ZHX01BTVIJCTB4MDA4MDUwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SCQkweDAwODA1MDAwCiAKIC8qCiAgKiA0MDk2CVVwIHRvIDQwOTYgU0RSQU0gcm93cwpAQCAtMTExLDk5ICsxMTEsOTkgQEAKICAqIDQJTnVtYmVyIG9mIHJlZnJlc2ggY3ljbGVzIHBlciBwZXJpb2QKICAqIDY0CVJlZnJlc2ggY3ljbGUgaW4gbXMgcGVyIG51bWJlciBvZiByb3dzCiAgKi8KLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCQkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDUwMDAwMAkvKiAxIC4uLiA1IE1CIGluIFNEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNTAwMDAwCS8qIDEgLi4uIDUgTUIgaW4gU0RSQU0JCSovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHgwOTkwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHgwOTkwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIE1vbml0b3IgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIE1vbml0b3IgICAqLwogI2lmZGVmIENPTkZJR19CWklQMgotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDQwOTYgPDwgMTApCS8qIFJlc2VydmUgfjQgTUIgZm9yIG1hbGxvYygpICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNDA5NiA8PCAxMCkJLyogUmVzZXJ2ZSB+NCBNQiBmb3IgbWFsbG9jKCkgICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IEtCIGZvciBtYWxsb2MoKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBLQiBmb3IgbWFsbG9jKCkgICovCiAjZW5kaWYgLyogQ09ORklHX0JaSVAyICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZsYXNoIG9yZ2FuaXNhdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZDMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlciAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJCS8qIE1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkJLyogTWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCiAvKiBFbnZpcm9ubWVudCBpcyBpbiBmbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAJCS8qIFdlIHVzZSBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhGQzAwMDE2MAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKENGR19GTEFTSF9CQVNFIHwgQlJfUFNfMzIgfCBCUl9NU19HUENNIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweEZDMDAwMTYwCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJSX1BTXzMyIHwgQlJfTVNfR1BDTSB8IEJSX1YpCiAKLSNkZWZpbmUJQ0ZHX0RJUkVDVF9GTEFTSF9URlRQCisjZGVmaW5lCUNPTkZJR19TWVNfRElSRUNUX0ZMQVNIX1RGVFAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNTUgogICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQkweEZGMDAwNUIwCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkoMHhGQTAwMDAwMCB8QlJfUFNfMTYgfCBCUl9NU19HUENNIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkweEZGMDAwNUIwCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkJKDB4RkEwMDAwMDAgfEJSX1BTXzE2IHwgQlJfTVNfR1BDTSB8IEJSX1YpCiAKLSNkZWZpbmUgQ0ZHX0JDU1IJCTB4RkE0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSCQkweEZBNDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXAgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggIC8qIFNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjggIC8qIFNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ29uZmlndXJhdGlvbiByZWdpc3RlcnMKICAqLwogI2lmZGVmIENPTkZJR19XQVRDSERPRwotI2RlZmluZSBDRkdfU1lQQ1IJCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgIHwgXAogCQkJCSBTWVBDUl9TV0YgIHwgU1lQQ1JfU1dFIHwgU1lQQ1JfU1dSSSB8IFwKIAkJCQkgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCQkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FICB8IFwKIAkJCQkgU1lQQ1JfU1dGICB8IFNZUENSX1NXUCkKICNlbmRpZiAvKiBDT05GSUdfV0FUQ0hET0cgKi8KIAotI2RlZmluZSBDRkdfU0lVTUNSCQkoU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9EQkdDMTEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCQkoU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9EQkdDMTEpCiAKIC8qIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlciAqLwotI2RlZmluZSBDRkdfVEJTQ1IJCShUQlNDUl9UQkYgfCBUQlNDUl9UQkUpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJCShUQlNDUl9UQkYgfCBUQlNDUl9UQkUpCiAKIC8qIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbCAqLwotI2RlZmluZSBDRkdfUElTQ1IJCVBJU0NSX1BTCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJCVBJU0NSX1BTCiAKIC8qIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIgKi8KICNkZWZpbmUgU0NDUl9NQVNLCQlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkJU0NDUl9SVFNFTAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJCVNDQ1JfUlRTRUwKIAotI2RlZmluZSBDRkdfREVSCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBjaGlwcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggY2hpcHMJCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0VSSUMuaCBiL2luY2x1ZGUvY29uZmlncy9FUklDLmgKaW5kZXggYzNjN2FhNC4uYzA1OTQ1YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0VSSUMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRVJJQy5oCkBAIC01NCwxMyArNTQsMTMgQEAKICNlbmRpZgkJCQkJLyogdG90YWwgc2l6ZSBvZiBhIFgxMjQwIGlzIDIwNDggYnl0ZXMgKi8KIAogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTcJLyogWDEyNDAgaGFzIHR3byBJMkMgc2xhdmUgYWRkcmVzc2VzLCBvbmUgZm9yIEVFUFJPTSAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkyCS8qIGFkZHJlc3MgbGVuZ3RoIGZvciB0aGUgZWVwcm9tICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTcJLyogWDEyNDAgaGFzIHR3byBJMkMgc2xhdmUgYWRkcmVzc2VzLCBvbmUgZm9yIEVFUFJPTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMgkvKiBhZGRyZXNzIGxlbmd0aCBmb3IgdGhlIGVlcHJvbSAqLwogI2RlZmluZSBDT05GSUdfSTJDX1JUQwkJMQkvKiB3ZSBoYXZlIGEgWGljb3IgWDEyNDAgUlRDICovCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2RgkvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIG9uZSBmb3IgUlRDICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NkYJLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBvbmUgZm9yIFJUQyAqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI3VuZGVmIENPTkZJR19FTlZfSVNfSU5fTlZSQU0KQEAgLTkxLDcgKzkxLDcgQEAKIAkJCQkiaXA9MTkyLjE2OC4xLjIyOjE5Mi4xNjguMS4yIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMQkvKiBQSFkgYWRkcmVzcwkJCSovCkBAIC0xMjIsMzEgKzEyMiwzMSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI3VuZGVmCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjdW5kZWYJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCSBDRkdfRVhUX1NFUklBTF9DTE9DSwkgMTQzMTgxODAKKyNkZWZpbmUJIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgMTQzMTgxODAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE2MSwxNCArMTYxLDE0IEBACiAjdW5kZWYgIENPTkZJR19QQ0lfUE5QCQkJLyogbm8gcGNpIHBsdWctYW5kLXBsYXkgICAgICAgICAqLwogCQkJCQkvKiByZXNvdXJjZSBjb25maWd1cmF0aW9uICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxNzQzCS8qIFBDSSBWZW5kb3IgSUQ6IFBlcHBlcmNvbiBBRwkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDUJLyogUENJIERldmljZSBJRDogNDA1R1AJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4RkZGQzAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4RkZGRkYwMDEJLyogNGtCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxNzQzCS8qIFBDSSBWZW5kb3IgSUQ6IFBlcHBlcmNvbiBBRwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1CS8qIFBDSSBEZXZpY2UgSUQ6IDQwNUdQCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHhGRkZDMDAwMAkvKiBwb2ludCB0byBmbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4RkZGRkYwMDEJLyogNGtCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXh0ZXJuYWwgcGVyaXBoZXJhbCBiYXNlIGFkZHJlc3MKQEAgLTIyNCwyMSArMjI0LDIxIEBACiAjZGVmaW5lIENTN19BUAkweDAyODE1NDgwIC8qIFdUPTEsIE9FTj0weDEsV0JOPTB4MSxXQkY9MHgxLFRIPTB4MixSRT0wLCAqLwogI2RlZmluZSBDUzdfQ1IJMHhGMDYxODAwMCAvKiBCQVM9MHhGMDEsQlM9KDFNQiksQlU9MHgzKFIvVyksIEJXPSg4IGJpdHMpICovCiAKLSNkZWZpbmUgQ0ZHX05WUkFNX1JFR19CQVNFX0FERFIJIDB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1JUQ19SRUdfQkFTRV9BRERSCSAoMHhGMDAwMDAwMCArIDB4N0Y4KQotI2RlZmluZSBDRkdfQURDX1JFR19CQVNFX0FERFIJIDB4RjAxMDAwMDAKLSNkZWZpbmUgQ0ZHX1BIWVJFU19SRUdfQkFTRV9BRERSIDB4RjAyMDAwMDAKLSNkZWZpbmUgQ0ZHX1BSU05UMV9SRUdfQkFTRV9BRERSIDB4RjAzMDAwMDAKLSNkZWZpbmUgQ0ZHX1BSU05UMl9SRUdfQkFTRV9BRERSIDB4RjA0MDAwMDAKLSNkZWZpbmUgQ0ZHX0xFRDBfUkVHX0JBU0VfQUREUgkgMHhGMDUwMDAwMAotI2RlZmluZSBDRkdfTEVEMV9SRUdfQkFTRV9BRERSCSAweEYwNjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fUkVHX0JBU0VfQUREUgkgMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JUQ19SRUdfQkFTRV9BRERSCSAoMHhGMDAwMDAwMCArIDB4N0Y4KQorI2RlZmluZSBDT05GSUdfU1lTX0FEQ19SRUdfQkFTRV9BRERSCSAweEYwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEhZUkVTX1JFR19CQVNFX0FERFIgMHhGMDIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BSU05UMV9SRUdfQkFTRV9BRERSIDB4RjAzMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QUlNOVDJfUkVHX0JBU0VfQUREUiAweEYwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEVEMF9SRUdfQkFTRV9BRERSCSAweEYwNTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEVEMV9SRUdfQkFTRV9BRERSCSAweEYwNjAwMDAwCiAKIAogLyogIFNEUkFNIENPTkZJRyAqLwotI2RlZmluZSBDRkdfU0RSQU1fTUFOVUFMTFkgICAgMQotI2RlZmluZSBDRkdfU0RSQU1fU0lOR0xFX0JBTksgMQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX01BTlVBTExZICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSU5HTEVfQkFOSyAxCiAKLSNpZmRlZiBDRkdfU0RSQU1fTUFOVUFMTFkKKyNpZmRlZiBDT05GSUdfU1lTX1NEUkFNX01BTlVBTExZCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXQgTUIwQ0YgZm9yIGJhbmsgMC4gKDAtMzJNQikgQWRkcmVzcyBNb2RlIDQgc2luY2UgMTJ4OCgyKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KQEAgLTI0Niw3ICsyNDYsNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2V0IE1CMUNGIGZvciBiYW5rIDEuICgzMk1CLTY0TUIpIEFkZHJlc3MgTW9kZSA0IHNpbmNlIDEyeDgoMikKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWZkZWYgQ0ZHX1NEUkFNX1NJTkdMRV9CQU5LCisjaWZkZWYgQ09ORklHX1NZU19TRFJBTV9TSU5HTEVfQkFOSwogI2RlZmluZSBNQjFDRgkweDAgLyogIDBNQiBAIDMyTUIgKi8KICNlbHNlCiAjZGVmaW5lIE1CMUNGCTB4MDIwNjIwMDEgLyogIDMyTUIgQCAzMk1CICovCkBAIC0yNjUsMzcgKzI2NSwzNyBAQAogI2RlZmluZSBTRFRSXzY2ICAgICAweDAwODU0MDA2CS8qIG9yaWcgVS1Cb290LXdhbGxudXQgc2F5cyAweDAwODU0MDA2ICovCiAjZGVmaW5lIFJUUl82NiAgICAgIDB4MDNmOAogCi0jZW5kaWYgICAvKiBDRkdfU0RSQU1fTUFOVUFMTFkgKi8KKyNlbmRpZiAgIC8qIENPTkZJR19TWVNfU0RSQU1fTUFOVUFMTFkgKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMzIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAgICAgICAvKiA4IE1CeXRlIEZsYXNoICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHhGRkZFMDAwMCAgICAgIC8qIGxhc3QgMTI4a0J5dGUgd2l0aGluIEZsYXNoICovCi0vKiNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkqLwkvKiBSZXNlcnZlIDE5NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAgICAgICAvKiA4IE1CeXRlIEZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4RkZGRTAwMDAgICAgICAvKiBsYXN0IDEyOGtCeXRlIHdpdGhpbiBGbGFzaCAqLworLyojZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KSovCS8qIFJlc2VydmUgMTk2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIXzE2QklUCQkxCS8qIFJvbSAxNiBiaXQgZGF0YSBidXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCQkxCS8qIFJvbSAxNiBiaXQgZGF0YSBidXMJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogLyogQkVHIEVOVklST05ORU1FTlQgRkxBU0ggKi8KICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC0zMDUsOSArMzA1LDkgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSICAgICAgICAgICAgMHhmZmZhMDAwMAogI2Vsc2UgIC8qIGZvcmNlIEVOViB0byBiZSBlbWJlZGRlZCAqLwogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCSgyICogMTAyNCkgLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgMmsgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSICAgICAgICAgICAgKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4gLSBDT05GSUdfRU5WX1NJWkUgLSAweDEwKSAvKiBsZXQgc3BhY2UgZm9yIHJlc2V0IHZlY3RvciAqLwotLyogI2RlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgICAgICAoQ0ZHX01PTklUT1JfQkFTRSkqLwotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVCAgICAgICAgICAoQ09ORklHX0VOVl9BRERSIC0gQ0ZHX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAgICAgICAgIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gLSBDT05GSUdfRU5WX1NJWkUgLSAweDEwKSAvKiBsZXQgc3BhY2UgZm9yIHJlc2V0IHZlY3RvciAqLworLyogI2RlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgICAgICAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UpKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQgICAgICAgICAgKENPTkZJR19FTlZfQUREUiAtIENPTkZJR19TWVNfRkxBU0hfQkFTRSkKICNlbmRpZgogCiAjZW5kaWYKQEAgLTMxNSwxMyArMzE1LDEzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOVlJBTSBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCUNGR19OVlJBTV9SRUdfQkFTRV9BRERSCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMHg3RjgJCS8qIE5WUkFNIHNpemUgMmtCeXRlIC0gOCBCeXRlIGZvciBSVEMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJQ09ORklHX1NZU19OVlJBTV9SRUdfQkFTRV9BRERSCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCTB4N0Y4CQkvKiBOVlJBTSBzaXplIDJrQnl0ZSAtIDggQnl0ZSBmb3IgUlRDICovCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX05WUkFNCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg3RjgJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycwkqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCVwKLQkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudgkqLworCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQkvKiBFbnYJKi8KICNlbmRpZgogCiAvKgpAQCAtMzQwLDExICszNDAsMTEgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgwMGRmMDAwMCAgLyogaW5zaWRlIG9mIFNEUkFNCQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDBmMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHgwMGRmMDAwMCAgLyogaW5zaWRlIG9mIFNEUkFNCQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgwZjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIFNlcmlhbCBQcmVzZW5jZSBEZXRlY3QgRUVQUk9NIGFkZHJlc3MKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9FU1RFRU0xOTJFLmggYi9pbmNsdWRlL2NvbmZpZ3MvRVNURUVNMTkyRS5oCmluZGV4IDAyNTM5ZTIuLjExYTg2MmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9FU1RFRU0xOTJFLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0VTVEVFTTE5MkUuaApAQCAtNDQsNyArNDQsNyBAQAogCiAjZGVmaW5lIE1QQzhYWF9GQUNUCTEwCQkvKiBNdWx0aXBseSBieSAxMAkJKi8KICNkZWZpbmUgTVBDOFhYX1hJTgk0OTE1MjAwCS8qIDQuOTE1MjAwIE1IeiBpbgktID8/PyAtIFhYWAkqLwotI2RlZmluZSBDRkdfUExQUkNSX01GCSgoTVBDOFhYX0ZBQ1QtMSkgPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSX01GCSgoTVBDOFhYX0ZBQ1QtMSkgPDwgMjApCiAjZGVmaW5lIE1QQzhYWF9IWiAoKE1QQzhYWF9YSU4pICogKE1QQzhYWF9GQUNUKSkgLyogNDksMTUyLDAwMCBIegkqLwogCiAjZGVmaW5lIENPTkZJR184eHhfR0NMS19GUkVRCU1QQzhYWF9IWgkvKiBGb3JjZSBpdCAtIGRvbnQgbWVhc3VyZSBpdCAqLwpAQCAtNjYsNyArNjYsNyBAQAogICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTg2LDIyICs4NiwyMiBAQAogI2luY2x1ZGUgPGNvbmZpZ19jbWRfZGVmYXVsdC5oPgogCiAKLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIkJPT1Q6ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwk4CQkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSJCT09UOiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwk4CQkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogCiAvKgpAQCAtMTEyLDQ3ICsxMTIsNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkYwMDAwMDAKIAogICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAogI2lmZGVmCURFQlVHCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJMHg4MDAwCS8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xNjAsNyArMTYwLDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNZUENSIC0gU3lzdGVtIFByb3RlY3Rpb24gQ29udHJvbAkJCQkxMS05CkBAIC0xNjgsMjEgKzE2OCwyMSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbgkJCQkxMS02CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkgLyogREJHQzAwICovCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpIC8qIERCR0MwMCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRiB8IFRCU0NSX1RCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYgfCBUQlNDUl9UQkUpCiAKIC8qIChUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikgKi8KIApAQCAtMTkyLDcgKzE5Miw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTIwMCw3ICsyMDAsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0IC0gbGVhdmUgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB1bmNoYW5nZWQgIQogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKENGR19QTFBSQ1JfTUYgfCBQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShDT05GSUdfU1lTX1BMUFJDUl9NRiB8IFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTIwOSw3ICsyMDksNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTIxOSwyNSArMjE5LDI1IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JTlRFUlJVUFQJU0lVX0xFVkVMNgorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JTlRFUlJVUFQJU0lVX0xFVkVMNgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotLyojZGVmaW5lCUNGR19ERVIJMHgyMDAyMDAwRiovCi0jZGVmaW5lIENGR19ERVIJMAotLyojZGVmaW5lIENGR19ERVIJMHgwMjAwMjAwMCAqLworLyojZGVmaW5lCUNPTkZJR19TWVNfREVSCTB4MjAwMjAwMEYqLworI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCisvKiNkZWZpbmUgQ09ORklHX1NZU19ERVIJMHgwMjAwMjAwMCAqLwogCiAKIC8qCkBAIC0yNTMsMjEgKzI1MywyMSBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDExLCBUUkxYID0gMCwgQ1NOVCA9IDEsIFNDWSA9IDUsIEVIVFIgPSAxCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJMHgwMDAwMDE2MAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkweDAwMDAwMTYwCiAJCQkJLyooT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IFwKIAkJCQkgT1JfU0NZXzVfQ0xLIHwgT1JfRUhUUikgKi8KIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCTB4ODAwMDAxNjAgICAgIC8qKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKSovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKCBGTEFTSF9CQVNFMF9QUkVMSU0gfCAweDAwMDAwODAxICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJMHg4MDAwMDE2MCAgICAgLyooQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoIEZMQVNIX0JBU0UwX1BSRUxJTSB8IDB4MDAwMDA4MDEgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoIEZMQVNIX0JBU0UxX1BSRUxJTSB8IDB4MDAwMDA4MDEgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoIEZMQVNIX0JBU0UxX1BSRUxJTSB8IDB4MDAwMDA4MDEgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTI3OCwxMyArMjc4LDEzIEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDAyMDAwMDAwCS8qIG1heCAzMiBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCTB4RkMwMDBFMDAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKFNEUkFNX0JBU0UyX1BSRUxJTSB8IDB4MDAwMDAwODEpCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkweEZDMDAwRTAwCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoU0RSQU1fQkFTRTJfUFJFTElNIHwgMHgwMDAwMDA4MSkKIAotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoU0RSQU1fQkFTRTNfUFJFTElNIHwgMHgwMDAwMDA4MSkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKFNEUkFNX0JBU0UzX1BSRUxJTSB8IDB4MDAwMDAwODEpCiAKIAogLyoKQEAgLTI5MiwyMyArMjkyLDIzIEBACiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk3CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJMHgxODgwMzExMgotI2RlZmluZSBDRkdfTUFNUl85Q09MCTB4MTg4MDMxMTIJLyogc2FtZSBhcyA4IGNvbHVtbiBiZWNhdXNlIGl0cyBqdXN0IGVhc2llciB0byBwb3J0IHdpdGgqLworI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkweDE4ODAzMTEyCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCTB4MTg4MDMxMTIJLyogc2FtZSBhcyA4IGNvbHVtbiBiZWNhdXNlIGl0cyBqdXN0IGVhc2llciB0byBwb3J0IHdpdGgqLwogCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvRVRYMDk0LmggYi9pbmNsdWRlL2NvbmZpZ3MvRVRYMDk0LmgKaW5kZXggYWRmNzljNy4uYzM2ZjJiYjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9FVFgwOTQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRVRYMDk0LmgKQEAgLTc2LDcgKzc2LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5EIENPTkZJR19SQU1CT09UQ09NTUFORAogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZQlDT05GSUdfV0FUQ0hET0cJCTEJLyogd2F0Y2hkb2cgZW5hYmxlZAkJKi8KIApAQCAtMTAyLDI1ICsxMDIsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAzMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDcwMDAwMAkvKiAzIC4uLiA3IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDMwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDcwMDAwMAkvKiAzIC4uLiA3IE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTEzMCw0NiArMTMwLDQ2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAogI2lmZGVmCURFQlVHCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjaWZkZWYgQ09ORklHX0ZMQVNIXzE2QklUCkBAIC0xODMsMTYgKzE4MywxNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwotI2RlZmluZSBDRkdfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDIsMTAgKzIwMiwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYJLyogQ09ORklHX1dBVENIRE9HICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIxMywyNyArMjEzLDI3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjQxLDcgKzI0MSw3IEBACiAgKiBSZXNldCBQTEwgbG9jayBzdGF0dXMgc3RpY2t5IGJpdCwgdGltZXIgZXhwaXJlZCBzdGF0dXMgYml0IGFuZCB0aW1lcgogICogaW50ZXJydXB0IHN0YXR1cyBiaXQgLSBsZWF2ZSBQTEwgbXVsdGlwbGljYXRpb24gZmFjdG9yIHVuY2hhbmdlZCAhCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMjUwLDcgKzI1MCw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQpAQCAtMjYwLDIxICsyNjAsMjEgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0yODksMjYgKzI4OSwyNiBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDExLCBUUkxYID0gMSwgQ1NOVCA9IDAsIFNDWSA9IDIsIEVIVFIgPSAwCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0ggICAgKE9SX0FDU19ESVYyIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIICAgIChPUl9BQ1NfRElWMiB8IE9SX0JJIHwgXAogCQkJICAgICAgIE9SX1NDWV8yX0NMSyB8IE9SX1RSTFggKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCiAKICNpZmRlZiBDT05GSUdfRkxBU0hfMTZCSVQJLyogMTYgYml0IGRhdGEgcG9ydCAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WIHwgQlJfUFNfMTYpCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgfCBCUl9QU18xNikKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgfCBCUl9QU18xNikKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgfCBCUl9QU18xNikKICNlbHNlCQkJCS8qIDMyIGJpdCBkYXRhIHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViB8IEJSX1BTXzMyKQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WIHwgQlJfUFNfMzIpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WIHwgQlJfUFNfMzIpCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WIHwgQlJfUFNfMzIpCiAjZW5kaWYJLyogQ09ORklHX0ZMQVNIXzE2QklUICovCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KIAogLyoKICAqIEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCkBAIC0zMTksMzkgKzMxOSwzOSBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKLSNkZWZpbmUJQ0ZHX09SM19QUkVMSU0JQ0ZHX09SMl9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZQlDT05GSUdfU1lTX09SM19QUkVMSU0JQ09ORklHX1NZU19PUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyCiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTIzCQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkyMwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzFYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfMVgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9FVkI2NDI2MC5oIGIvaW5jbHVkZS9jb25maWdzL0VWQjY0MjYwLmgKaW5kZXggZjk4ODMxZS4uYmY0MWMxMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0VWQjY0MjYwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0VWQjY0MjYwLmgKQEAgLTQwLDcgKzQwLDcgQEAKICAqLwogCiAjZGVmaW5lIENPTkZJR19FVkI2NDI2MAkJMQkvKiB0aGlzIGlzIGFuIEVWQjY0MjYwIGJvYXJkCSovCi0jZGVmaW5lIENGR19HVF82NDI2eCAgICAgICAgR1RfNjQyNjAgLyogd2l0aCBhIDY0MjYwIHN5c3RlbSBjb250cm9sbGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfR1RfNjQyNnggICAgICAgIEdUXzY0MjYwIC8qIHdpdGggYSA2NDI2MCBzeXN0ZW0gY29udHJvbGxlciAqLwogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMzg0MDAJLyogY29uc29sZSBiYXVkcmF0ZSA9IDM4NDAwCSovCiAKQEAgLTUyLDEzICs1MiwxMyBAQAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIDEKIAogI2lmbmRlZiBDT05GSUdfRVZCNjQyNjBfNzUwQ1gKLSNkZWZpbmUgQ0ZHX0JPQVJEX05BTUUJCSJFVkI2NDI2MCIKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9OQU1FCQkiRVZCNjQyNjAiCiAjZWxzZQotI2RlZmluZSBDRkdfQk9BUkRfTkFNRSAgICAgICAgICJFVkI2NDI2MC03NTBDWCIKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9OQU1FICAgICAgICAgIkVWQjY0MjYwLTc1MENYIgogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBsZXQgeW91IHNlbGVjdCB3aGF0IHNlcmlhbCB5b3Ugd2FudCB0byB1c2UKQEAgLTY2LDcgKzY2LDcgQEAKICAqCiAgKiB3aGF0IHRvIGRvOgogICogdG8gdXNlIHRoZSBEVUFSVCwgdW5kZWYgQ09ORklHX01QU0MuICBJZiB5b3UgaGF2ZSBoYWNrZWQgYSBzZXJpYWwKLSAqIGNhYmxlIG9udG8gdGhlIHNlY29uZCBEVUFSVCBjaGFubmVsLCBjaGFuZ2UgdGhlIENGR19EVUFSVCBwb3J0IGZyb20gMQorICogY2FibGUgb250byB0aGUgc2Vjb25kIERVQVJUIGNoYW5uZWwsIGNoYW5nZSB0aGUgQ09ORklHX1NZU19EVUFSVCBwb3J0IGZyb20gMQogICogdG8gMCBiZWxvdy4KICAqCiAgKiB0byB1c2UgdGhlIE1QU0MsICNkZWZpbmUgQ09ORklHX01QU0MuICBJZiB5b3UgaGF2ZSB3aXJlZCB1cCBhbm90aGVyCkBAIC05OCw3ICs5OCw3IEBACiAJImJvb3RtIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTAJLyogZWNobyBvZmYgZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZQlDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZXMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlcwkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAjdW5kZWYJQ09ORklHX0FMVElWRUMgICAgICAgICAgICAgICAgICAvKiB1bmRlZiB0byBkaXNhYmxlICAgICAgICAgICAgICovCkBAIC0xMjQsMzEgKzEyNCwzMSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MDAzMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAzMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCQkvKiBkZWNyIGZyZXE6IDFtcyB0aWNrcwkqLwotI2RlZmluZSBDRkdfQlVTX0haCQkxMDAwMDAwMDAJLyogMTAwIE1IegkJKi8KLSNkZWZpbmUgQ0ZHX0JVU19DTEsJCUNGR19CVVNfSFoKKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3IgZnJlcTogMW1zIHRpY2tzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0haCQkxMDAwMDAwMDAJLyogMTAwIE1IegkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfQ0xLCQlDT05GSUdfU1lTX0JVU19IWgogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogI2lmZGVmIENPTkZJR19FVkI2NDI2MF83NTBDWAogI2RlZmluZSBDT05GSUdfNzUwQ1gKLSNkZWZpbmUgQ0ZHX0JST0tFTl9DTDIKKyNkZWZpbmUgQ09ORklHX1NZU19CUk9LRU5fQ0wyCiAjZW5kaWYKIAogLyoKQEAgLTE2MCw1MSArMTYwLDUxIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgxMDAwCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXQgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmZjAwMDAwCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmZmMDAxMDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmZmMDAxMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYyAqLwogCiAvKiBhcmVhcyB0byBtYXAgZGlmZmVyZW50IHRoaW5ncyB3aXRoIHRoZSBHVCBpbiBwaHlzaWNhbCBzcGFjZSAqLwotI2RlZmluZSBDRkdfRFJBTV9CQU5LUwkJNAotI2RlZmluZSBDRkdfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBTktTCQk0CisjZGVmaW5lIENPTkZJR19TWVNfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KIAogLyogV2hhdCB0byBwdXQgaW4gdGhlIGJhdHMuICovCi0jZGVmaW5lIENGR19NSVNDX1JFR0lPTl9CQVNFCTB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFCTB4ZjAwMDAwMDAKIAogLyogUGVyaXBoZXJhbCBEZXZpY2Ugc2VjdGlvbiAqLwotI2RlZmluZSBDRkdfR1RfUkVHUwkJMHhmODAwMDAwMAotI2RlZmluZSBDRkdfREVWX0JBU0UJCTB4ZmMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HVF9SRUdTCQkweGY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVWX0JBU0UJCTB4ZmMwMDAwMDAKIAotI2RlZmluZSBDRkdfREVWMF9TUEFDRQkJQ0ZHX0RFVl9CQVNFCi0jZGVmaW5lIENGR19ERVYxX1NQQUNFCQkoQ0ZHX0RFVjBfU1BBQ0UgKyBDRkdfREVWMF9TSVpFKQotI2RlZmluZSBDRkdfREVWMl9TUEFDRQkJKENGR19ERVYxX1NQQUNFICsgQ0ZHX0RFVjFfU0laRSkKLSNkZWZpbmUgQ0ZHX0RFVjNfU1BBQ0UJCShDRkdfREVWMl9TUEFDRSArIENGR19ERVYyX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfREVWMF9TUEFDRQkJQ09ORklHX1NZU19ERVZfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0RFVjFfU1BBQ0UJCShDT05GSUdfU1lTX0RFVjBfU1BBQ0UgKyBDT05GSUdfU1lTX0RFVjBfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ERVYyX1NQQUNFCQkoQ09ORklHX1NZU19ERVYxX1NQQUNFICsgQ09ORklHX1NZU19ERVYxX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfREVWM19TUEFDRQkJKENPTkZJR19TWVNfREVWMl9TUEFDRSArIENPTkZJR19TWVNfREVWMl9TSVpFKQogCi0jZGVmaW5lIENGR19ERVYwX1NJWkUJCSBfOE0gLyogZXZiNjQyNjAgc3JhbSAgQCAweGZjMDAuMDAwMCAqLwotI2RlZmluZSBDRkdfREVWMV9TSVpFCQkgXzhNIC8qIGV2YjY0MjYwIHJ0YyAgIEAgMHhmYzgwLjAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0RFVjJfU0laRQkJXzE2TSAvKiBldmI2NDI2MCBkdWFydCBAIDB4ZmQwMC4wMDAwICovCi0jZGVmaW5lIENGR19ERVYzX1NJWkUJCV8xNk0gLyogZXZiNjQyNjAgZmxhc2ggQCAweGZlMDAuMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjBfU0laRQkJIF84TSAvKiBldmI2NDI2MCBzcmFtICBAIDB4ZmMwMC4wMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMV9TSVpFCQkgXzhNIC8qIGV2YjY0MjYwIHJ0YyAgIEAgMHhmYzgwLjAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYyX1NJWkUJCV8xNk0gLyogZXZiNjQyNjAgZHVhcnQgQCAweGZkMDAuMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjNfU0laRQkJXzE2TSAvKiBldmI2NDI2MCBmbGFzaCBAIDB4ZmUwMC4wMDAwICovCiAKLSNkZWZpbmUgQ0ZHX0RFVjBfUEFSCQkweDIwMjA1MDkzCi0jZGVmaW5lIENGR19ERVYxX1BBUgkJMHhjZmNmZmZmZgotI2RlZmluZSBDRkdfREVWMl9QQVIJCTB4YzAwNTliZDQKLSNkZWZpbmUgQ0ZHXzhCSVRfQk9PVF9QQVIJMHhjMDBiNWU3YwotI2RlZmluZSBDRkdfMzJCSVRfQk9PVF9QQVIJMHhjNGE4MjQxYworI2RlZmluZSBDT05GSUdfU1lTX0RFVjBfUEFSCQkweDIwMjA1MDkzCisjZGVmaW5lIENPTkZJR19TWVNfREVWMV9QQVIJCTB4Y2ZjZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19ERVYyX1BBUgkJMHhjMDA1OWJkNAorI2RlZmluZSBDT05GSUdfU1lTXzhCSVRfQk9PVF9QQVIJMHhjMDBiNWU3YworI2RlZmluZSBDT05GSUdfU1lTXzMyQklUX0JPT1RfUEFSCTB4YzRhODI0MWMKIAkvKiAgIGMgICAgNCAgICBhICAgICAgOCAgICAgMiAgICAgNCAgICAxICAgICAgYwkJKi8KIAkvKiAzMyAyMnwyMjIyfDIyIDIyfDExMSAxfDExIDExfDEgMSAgfCAgICB8CQkqLwogCS8qIDEwIDk4fDc2NTR8MzIgMTB8OTg3IDZ8NTQgMzJ8MSAwOTh8NyA2NTR8MyAyMTAJKi8KQEAgLTIxMiwxOSArMjEyLDE5IEBACiAJLyogIDN8IDB8Li4uLiAuLnwgMnwgNCB8ICAwIHwgIDQgfCAgOCAgfCAgMyAgfCA0CSovCiAKICNpZiAwIC8qIFdyb25nPz8gTlRMICovCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8wCTB4NTM1NDE3MTcJLyogSW5pdEFjdCBFT1RbNF0gREJ1cnN0IFRDRW5bMV0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8wCTB4NTM1NDE3MTcJLyogSW5pdEFjdCBFT1RbNF0gREJ1cnN0IFRDRW5bMV0gKi8KIAkJCQkJCS8qIERNQUFja1sxOjBdIEdOVDBbMTowXSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzAJMHg1MzU0Nzc3NwkvKiBJbml0QWN0IEVPVFs0XSBEQnVyc3QgVENFblsxXSAqLworI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzAJMHg1MzU0Nzc3NwkvKiBJbml0QWN0IEVPVFs0XSBEQnVyc3QgVENFblsxXSAqLwogCQkJCQkJLyogUkVRMFsxOjBdIEdOVDBbMTowXSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8xCTB4NDQwMDk5MTEJLyogVENFbls0XSBUQ1RjbnRbNF0gR1BQWzEzOjEyXSAqLworI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzEJMHg0NDAwOTkxMQkvKiBUQ0VuWzRdIFRDVGNudFs0XSBHUFBbMTM6MTJdICovCiAJCQkJCQkvKiBETUFSZXFbNF0gRE1BQWNrWzRdIFdETk1JIFdERSAqLwogI2lmIDAgLyogV3Jvbmc/PyBOVEwgKi8KLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzIJMHg0MDA5MTgxOAkvKiBUQ1RjbnRbMF0gR1BQWzIyOjIxXSBCQ2xrSW4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8yCTB4NDAwOTE4MTgJLyogVENUY250WzBdIEdQUFsyMjoyMV0gQkNsa0luICovCiAJCQkJCQkvKiBETUFBY2tbMTowXSBHTlQxWzE6MF0gKi8KICNlbHNlCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8yCTB4NDAwOTg4ODgJLyogVENUY250WzBdICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMgkweDQwMDk4ODg4CS8qIFRDVGNudFswXSAqLwogCQkJCQkJLyogR1BQWzIyXSAoUlMyMzJJbnRCIG9yIFBDSTFJbnQpICovCiAJCQkJCQkvKiBHUFBbMjFdIChSUzMyM0ludEEpICovCiAJCQkJCQkvKiBCQ2xrSW4gKi8KQEAgLTIzMiwxMCArMjMyLDEwIEBACiAjZW5kaWYKIAogI2lmIDAgLyogV3Jvbmc/PyBOVEwgKi8KLSMgZGVmaW5lIENGR19NUFBfQ09OVFJPTF8zCTB4MDAwOTAwNjYJLyogR1BQWzMxOjI5XSBCQ2xrT3V0MCAqLworIyBkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8zCTB4MDAwOTAwNjYJLyogR1BQWzMxOjI5XSBCQ2xrT3V0MCAqLwogCQkJCQkJLyogR1BQWzI3OjI2XSBJbnRbMTowXSAqLwogI2Vsc2UKLSMgZGVmaW5lIENGR19NUFBfQ09OVFJPTF8zCTB4MjIwOTAwNjYgICAgICAvKiBNUkVRIE1HTlQgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMwkweDIyMDkwMDY2ICAgICAgLyogTVJFUSBNR05UICovCiAJCQkJCQkvKiBHUFBbMjldICAgIChQQ0kxSW50KSAqLwogCQkJCQkJLyogQkNsa091dDAgKi8KIAkJCQkJCS8qIEdQUFsyN10gICAgKFBDSTBJbnQpICovCkBAIC0yNDMsMTcgKzI0MywxNyBAQAogCQkJCQkJLyogQ1BVSW50WzI1OjI0XSAqLwogI2VuZGlmCiAKLSMgZGVmaW5lIENGR19TRVJJQUxfUE9SVF9NVVgJMHgwMDAwMDEwMgkvKiAwPWhpWiAgMT1NUFNDMCAyPUVUSCAwIGFuZCAyIFJNSUkgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfU0VSSUFMX1BPUlRfTVVYCTB4MDAwMDAxMDIJLyogMD1oaVogIDE9TVBTQzAgMj1FVEggMCBhbmQgMiBSTUlJICovCiAKICNpZiAwIC8qIFdyb25nPz8gLSBOVEwgKi8KLSMgZGVmaW5lIENGR19HUFBfTEVWRUxfQ09OVFJPTAkweDAwMDAwMmM2CisjIGRlZmluZSBDT05GSUdfU1lTX0dQUF9MRVZFTF9DT05UUk9MCTB4MDAwMDAyYzYKICNlbHNlCi0jIGRlZmluZSBDRkdfR1BQX0xFVkVMX0NPTlRST0wJMHgyYzYwMDAwMAkvKiAwMDEwIDExMDAgMDExMCAwMDAwICovCisjIGRlZmluZSBDT05GSUdfU1lTX0dQUF9MRVZFTF9DT05UUk9MCTB4MmM2MDAwMDAJLyogMDAxMCAxMTAwIDAxMTAgMDAwMCAqLwogCQkJCQkJLyogZ3BwWzI5XSAqLwogCQkJCQkJLyogZ3BwWzI3OjI2XSAqLwogCQkJCQkJLyogZ3BwWzIyOjIxXSAqLwogCi0jIGRlZmluZSBDRkdfU0RSQU1fQ09ORklHCTB4ZDhlMTgyMDAJLyogMHg0NDggKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ09ORklHCTB4ZDhlMTgyMDAJLyogMHg0NDggKi8KIAkJCQkvKiBpZG1hcyB1c2UgYnVmZmVyIDEsMQogCQkJCSAgIGNvbW0gdXNlIGJ1ZmZlciAwCiAJCQkJICAgcGNpIHVzZSBidWZmZXIgMSwxCkBAIC0yNzAsMTIgKzI3MCwxMiBAQAogCQkJCS8qIDEgIDAgIDB4MjAwICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfRFVBUlRfSU8JCUNGR19ERVYyX1NQQUNFCi0jZGVmaW5lIENGR19EVUFSVF9DSEFOCQkxCQkvKiBjaGFubmVsIHRvIHVzZSBmb3IgY29uc29sZSAqLwotI2RlZmluZSBDRkdfSU5JVF9DSEFOMQotI2RlZmluZSBDRkdfSU5JVF9DSEFOMgorI2RlZmluZSBDT05GSUdfU1lTX0RVQVJUX0lPCQlDT05GSUdfU1lTX0RFVjJfU1BBQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19EVUFSVF9DSEFOCQkxCQkvKiBjaGFubmVsIHRvIHVzZSBmb3IgY29uc29sZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfQ0hBTjEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0NIQU4yCiAKLSNkZWZpbmUgU1JBTV9CQVNFCQlDRkdfREVWMF9TUEFDRQorI2RlZmluZSBTUkFNX0JBU0UJCUNPTkZJR19TWVNfREVWMF9TUEFDRQogI2RlZmluZSBTUkFNX1NJWkUJCTB4MDAxMDAwMDAJCS8qIDEgTUIgb2Ygc3JhbSAqLwogCiAKQEAgLTI5MywzNyArMjkzLDM3IEBACiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QICAgICAgICAgICAgICAgICAgLyogZG8gcGNpIHBsdWctYW5kLXBsYXkgICAgICAgICAqLwogCiAvKiBQQ0kgTUVNT1JZIE1BUCBzZWN0aW9uICovCi0jZGVmaW5lIENGR19QQ0kwX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTBfTUVNX1NJWkUJXzEyOE0KLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4ODAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQlfMTI4TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfTUVNX1NJWkUJXzEyOE0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCV8xMjhNCiAKLSNkZWZpbmUgQ0ZHX1BDSTBfMF9NRU1fU1BBQ0UJKENGR19QQ0kwX01FTV9CQVNFKQotI2RlZmluZSBDRkdfUENJMV8wX01FTV9TUEFDRQkoQ0ZHX1BDSTFfTUVNX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF8wX01FTV9TUEFDRQkoQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfMF9NRU1fU1BBQ0UJKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSkKIAogCiAvKiBQQ0kgSS9PIE1BUCBzZWN0aW9uICovCi0jZGVmaW5lIENGR19QQ0kwX0lPX0JBU0UJMHhmYTAwMDAwMAotI2RlZmluZSBDRkdfUENJMF9JT19TSVpFCV8xNk0KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweGZiMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJXzE2TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fQkFTRQkweGZhMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19TSVpFCV8xNk0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHhmYjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQlfMTZNCiAKLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fU1BBQ0UJKENGR19QQ0kwX0lPX0JBU0UpCi0jZGVmaW5lIENGR19QQ0kwX0lPX1NQQUNFX1BDSQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NQQUNFCShDRkdfUENJMV9JT19CQVNFKQotI2RlZmluZSBDRkdfUENJMV9JT19TUEFDRV9QQ0kJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9JT19CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0VfUENJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFX1BDSQkweDAwMDAwMDAwCiAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQktNAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJLTQKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTM2ODY0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJMzY4NjQwMAogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19EVUFSVF9JTyArIDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19EVUFSVF9JTyArIDB4MjApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0RVQVJUX0lPICsgMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfRFVBUlRfSU8gKyAweDIwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgQkFUIG1hcHBpbmdzCkBAIC0zMzUsMzIgKzMzNSwzMiBAQAogICovCiAKIC8qIFNEUkFNICovCi0jZGVmaW5lIENGR19JQkFUMEwgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDBVIChDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDBMIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMFUgQ0ZHX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVSAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSBDT05GSUdfU1lTX0lCQVQwVQogCiAvKiBpbml0IHJhbSAqLwotI2RlZmluZSBDRkdfSUJBVDFMICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDFMICBDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUgIENGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMICBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVSAgQ09ORklHX1NZU19JQkFUMVUKIAogLyogUENJMCwgUENJMSBpbiBvbmUgQkFUICovCi0jZGVmaW5lIENGR19JQkFUMkwgQkFUTF9OT19BQ0NFU1MKLSNkZWZpbmUgQ0ZHX0lCQVQyVSBDRkdfREJBVDJVCi0jZGVmaW5lIENGR19EQkFUMkwgKENGR19QQ0kwX01FTV9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQyVSAoQ0ZHX1BDSTBfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwgQkFUTF9OT19BQ0NFU1MKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgQ09ORklHX1NZU19EQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwgKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVIChDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogR1QgcmVncywgYm9vdHJvbSwgYWxsIHRoZSBkZXZpY2VzLCBQQ0kgSS9PICovCi0jZGVmaW5lIENGR19JQkFUM0wgKENGR19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXKQotI2RlZmluZSBDRkdfSUJBVDNVIChDRkdfTUlTQ19SRUdJT05fQkFTRSB8IEJBVFVfVlMgfCBCQVRVX1ZQIHwgQkFUVV9CTF8yNTZNKQotI2RlZmluZSBDRkdfREJBVDNMIChDRkdfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUM1UgQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTCAoQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVSAoQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUVV9WUyB8IEJBVFVfVlAgfCBCQVRVX0JMXzI1Nk0pCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMIChDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSBDT05GSUdfU1lTX0lCQVQzVQogCiAvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKGZvciBjb21wYXRhYmlsaXR5KSBkZWZhdWx0cyAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECTQwMDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCTB4N0YKIAogLyogSTJDIGFkZHJlc3NlcyBmb3IgdGhlIHR3byBESU1NIFNQRCBjaGlwcyAqLwogI2lmbmRlZiBDT05GSUdfRVZCNjQyNjBfNzUwQ1gKQEAgLTM3NiwzMiArMzc2LDMyIEBACiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4PDwyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDg8PDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRVhUUkFfRkxBU0hfREVWSUNFCURFVklDRTMJLyogZXh0cmEgZmxhc2ggYXQgZGV2aWNlIDMgKi8KLSNkZWZpbmUgQ0ZHX0VYVFJBX0ZMQVNIX1dJRFRICTQJLyogMzIgYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUkFfRkxBU0hfREVWSUNFCURFVklDRTMJLyogZXh0cmEgZmxhc2ggYXQgZGV2aWNlIDMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRSQV9GTEFTSF9XSURUSAk0CS8qIDMyIGJpdCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAoQ0ZHX0ZMQVNIX0JBU0UrQ0ZHX01PTklUT1JfTEVOLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIgICAgKENPTkZJR19TWVNfRkxBU0hfQkFTRStDT05GSUdfU1lTX01PTklUT1JfTEVOLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBhbGwgTVBDNzR4eCBDUFVzCQkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgYWxsIE1QQzc0eHggQ1BVcwkJICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDA5LDcgKzQwOSw3IEBACiAgKiBsb29rIGluIGluY2x1ZGUvNzR4eF83eHguaCBmb3IgdGhlIGRlZmluZXMgdXNlZCBoZXJlCiAgKi8KIAotI2RlZmluZSBDRkdfTDIKKyNkZWZpbmUgQ09ORklHX1NZU19MMgogCiAjaWZkZWYgQ09ORklHXzc1MENYCiAjZGVmaW5lIEwyX0lOSVQJCTAKQEAgLTQyOCw3ICs0MjgsNyBAQAogI2RlZmluZQlCT09URkxBR19DT0xECTB4MDEJCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JMHgwMgkJLyogU29mdHdhcmUgcmVib290CQkgICAgKi8KIAotI2RlZmluZSBDRkdfQk9BUkRfQVNNX0lOSVQgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfQk9BUkRfQVNNX0lOSVQgICAgICAxCiAKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9FWEJJVEdFTi5oIGIvaW5jbHVkZS9jb25maWdzL0VYQklUR0VOLmgKaW5kZXggNWJhMTcwNi4uOWY1ZDNjYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0VYQklUR0VOLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0VYQklUR0VOLmgKQEAgLTQzLDggKzQzLDggQEAKIAogLyogSTJDIGNvbmZpZ3VyYXRpb24gKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAJLyogSTJDIHNwZWVkCQkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgkvKiBJMkMgc2xhdmUgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwCS8qIEkyQyBzcGVlZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCS8qIEkyQyBzbGF2ZSBhZGRyZXNzCQkqLwogCiAvKiBlbnZpcm9ubWVudCBpcyBpbiBFRVBST00gKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00gICAgMQpAQCAtNTIsMTEgKzUyLDExIEBACiAjdW5kZWYgQ09ORklHX0VOVl9JU19JTl9OVlJBTQogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9FRVBST00KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1NiAgICAvKiAxMDEwMTEwICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCS8qIDgtYml0IGludGVybmFsIGFkZHJlc3NpbmcgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkxCS8qIC4uLiBhbmQgMSBiaXQgaW4gSTJDIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMwkvKiA0IGJ5dGVzIHBlciBwYWdlICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk0MAkvKiB3cml0ZSB0YWtlcyB1cCB0byA0MCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDU2ICAgIC8qIDEwMTAxMTAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCS8qIDgtYml0IGludGVybmFsIGFkZHJlc3NpbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMQkvKiAuLi4gYW5kIDEgYml0IGluIEkyQyBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCS8qIDQgYnl0ZXMgcGVyIHBhZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk0MAkvKiB3cml0ZSB0YWtlcyB1cCB0byA0MCBtc2VjICovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQk0CS8qIE9mZnNldCBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkzNTAJLyogdGhhdCBpcyAzNTAgYnl0ZXMgb25seSEJKi8KICNlbmRpZgpAQCAtNzcsNyArNzcsNyBAQAogCQkJCSJyYW09MTI4TSBkZWJ1ZyIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCTAJLyogUEhZIGFkZHJlc3MJCQkqLwpAQCAtMTAzLDM3ICsxMDMsMzcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCiAvKiBVQVJUIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkJNjkxMjAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECQk2OTEyMDAKIAogLyogRGVmYXVsdCBiYXVkIHJhdGUgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgICAgICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgICAgICBcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAgICAgXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfQ0xLU19JTl9IWgkJMQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJMQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTQ5LDI4ICsxNDksMjggQEAKICN1bmRlZiAgQ09ORklHX0lERV9MRUQgICAgICAgICAgICAgICAgICAvKiBubyBsZWQgZm9yIGlkZSBzdXBwb3J0ZWQgICAgICovCiAjdW5kZWYgIENPTkZJR19JREVfUkVTRVQgICAgICAgICAgICAgICAgLyogbm8gcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQgICAqLwogCi0jZGVmaW5lCUNGR19LRVlfUkVHX0JBU0VfQUREUgkweEYwMTAwMDAwCi0jZGVmaW5lCUNGR19JUl9SRUdfQkFTRV9BRERSCTB4RjAyMDAwMDAKLSNkZWZpbmUJQ0ZHX0ZQR0FfUkVHX0JBU0VfQUREUgkweEYwMzAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfS0VZX1JFR19CQVNFX0FERFIJMHhGMDEwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0lSX1JFR19CQVNFX0FERFIJMHhGMDIwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0ZQR0FfUkVHX0JBU0VfQUREUgkweEYwMzAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDBfQkFTRQkJMHhGRkY4MDAwMAotI2RlZmluZSBDRkdfRkxBU0gwX1NJWkUJCTB4MDAwODAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9CQVNFCQkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDFfU0laRQkJMHgwMjAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0ZMQVNIMF9CQVNFCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQlDRkdfRkxBU0gwX1NJWkUKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkJLyogUmVzZXJ2ZSAxOTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0JBU0UJCTB4RkZGODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfU0laRQkJMHgwMDA4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFCQkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX1NJWkUJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJQ09ORklHX1NZU19GTEFTSDBfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiAqIDEwMjQpCS8qIFJlc2VydmUgMTk2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSDBfQkFTRQotI2RlZmluZSBDRkdfUkFNU1RBUlQKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0gwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1TVEFSVAogI2VuZGlmCiAKIC8qCkBAIC0xNzgsMTUgKzE3OCwxNSBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJNQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJNQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgwMDA2MDAwMCAvKiBPZmZzZXQgb2YgRW52aXJvbm1lbnQgU2VjdG9yICAgICAgKi8KQEAgLTE5NSwxNSArMTk1LDE1IEBACiAjZW5kaWYKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24vc2l6ZSAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCiAKIC8qIEdsb2JhbCBpbmZvIGFuZCBpbml0aWFsIHN0YWNrICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBvbi1jaGlwIFNSQU0JKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2Ygb24tY2hpcCBTUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvRkFEUzgyMy5oIGIvaW5jbHVkZS9jb25maWdzL0ZBRFM4MjMuaAppbmRleCBhYmY1MWVmLi5jYjc1OTYwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvRkFEUzgyMy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9GQURTODIzLmgKQEAgLTE4LDE0ICsxOCwxNCBAQAogICogMDAwMDAwMDAgLT4gbm5ubm5ubm4gOiBzZHJhbS9kcmFtIHNldHVwIGJ5IFUtQm9vdAogKi8KIAotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJMHhmZjAyMDAwMAotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJMHgxMDAwMAotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCTB4ZTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkweDEwMDAwCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwCi0jZGVmaW5lCUNGR19TRFJBTV9TSVpFCQkoNDw8MjApIC8qIHN0YW5kYXJkIEZBRFMgaGFzIDRNICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAyODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJMHhmZjAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCTB4MTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJMHhlMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkweDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRjAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX1NJWkUJCSg0PDwyMCkgLyogc3RhbmRhcmQgRkFEUyBoYXMgNE0gKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgwMjgwMDAwMAogI2RlZmluZSBCQ1NSX0FERFIJCSgodWludCkgMHhmZjAxMDAwMCkKICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4MDI4MDAwMDAJLyogRkxBU0ggYmFuayAjMAkqLwogCkBAIC00Myw4ICs0Myw4IEBACiAKICNkZWZpbmUgQ09ORklHX1ZJREVPCQkxCS8qIFRvIGVuYWJsZSB2aWRlbyBjb250cm9sbGVyIHN1cHBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIFRvIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qI2RlZmluZSBDT05GSUdfUENNQ0lBCQkxCS8gKiBUbyBlbmFibGUgUENNQ0lBIHN1cHBvcnQgKi8KIApAQCAtODIsNyArODIsNyBAQAogI2Vsc2UKICNkZWZpbmUgTVBDOFhYX0ZBQ1QJMTAJCQkvKiBNdWx0aXBseSBieSAxMCAqLwogI2RlZmluZSBNUEM4WFhfWElOCTUwMDAwMDAJCQkvKiA1IE1IeiBpbiAqLwotI2RlZmluZSBDRkdfUExQUkNSX01GCShNUEM4WFhfRkFDVC0xKSA8PCAyMAkvKiBGcm9tIDAgdG8gNDA5NSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUl9NRgkoTVBDOFhYX0ZBQ1QtMSkgPDwgMjAJLyogRnJvbSAwIHRvIDQwOTUgKi8KICNlbmRpZgogI2RlZmluZSBNUEM4WFhfSFogKChNUEM4WFhfWElOKSAqIChNUEM4WFhfRkFDVCkpCiAKQEAgLTEzNCwyNSArMTM0LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIjo+IgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIjo+IgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMTAwMDAwMAkvKiAwIC4uLiAxNiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMTAwMDAwMAkvKiAwIC4uLiAxNiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTYyLDU4ICsxNjIsNTggQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUl9TSVpFCQkoKHVpbnQpKDY0ICogMTAyNCkpCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUl9TSVpFCQkoKHVpbnQpKDY0ICogMTAyNCkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICogQWxzbyBOT1RFIHRoYXQgaXQgZG9lc24ndCBtZWFuIFNEUkFNIC0gaXQgbWVhbnMgTUVNT1JZLgogICovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkoKHVpbnQpKDggKiAxMDI0ICogMTAyNCkpCS8qIG1heCA4TWJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoKHVpbnQpKDggKiAxMDI0ICogMTAyNCkpCS8qIG1heCA4TWJ5dGUgKi8KICNpZiAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MDAwNDAwMDAJLyogT2Zmc2V0IG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjIzLDEwICsyMjMsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIzNCwyMSArMjM0LDIxIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJMTUtMzAKQEAgLTI1Niw3ICsyNTYsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIgICoKICAqIGludGVycnVwdCBzdGF0dXMgYml0IC0gbGVhdmUgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB1bmNoYW5nZWQgIQogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCB8IENGR19QTFBSQ1JfTUYpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QgfCBDT05GSUdfU1lTX1BMUFJDUl9NRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTI2NSw3ICsyNjUsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IgICAgICAgKFNDQ1JfVEJTICAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSICAgICAgIChTQ0NSX1RCUyAgICAgfCBcCiAJCQkJU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkJU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkJU0NDUl9ERkFMQ0QwMCkKQEAgLTI3NSw3ICsyNzUsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCQkwCiAKIC8qIEJlY2F1c2Ugb2YgdGhlIHdheSB0aGUgODYwIHN0YXJ0cyB1cCBhbmQgYXNzaWducyBDUzAgdGhlCiAqIGVudGlyZSBhZGRyZXNzIHNwYWNlLCB3ZSBoYXZlIHRvIHNldCB0aGUgbWVtb3J5IGNvbnRyb2xsZXIKQEAgLTI5NiwyMCArMjk2LDIwIEBACiAKICNkZWZpbmUgRkxBU0hfQkFTRTFfUFJFTElNCTB4MDAwMDAwMDAJLyogRkxBU0ggYmFuayAjMQkqLwogCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZGRTAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZGRTAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDEwLCBUUkxYID0gMSwgQ1NOVCA9IDEsIFNDWSA9IDMsIEVIVFIgPSAwCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfM19DTEsgfCBPUl9UUkxYKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV8zX0NMSyB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkgICAvKiAxIE1ieXRlIHVudGlsIGRldGVjdGVkIGFuZCBvbmx5IDEgTWJ5dGUgaXMgbmVlZGVkKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpICAgLyogMSBNYnl0ZSB1bnRpbCBkZXRlY3RlZCBhbmQgb25seSAxIE1ieXRlIGlzIG5lZWRlZCovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyogQkNTUnggLSBCb2FyZCBDb250cm9sIGFuZCBTdGF0dXMgUmVnaXN0ZXJzICovCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkweGZmZmY4MTEwCQkJCQkJCQkJLyogNjRLYnl0ZSBhZGRyZXNzIHNwYWNlICovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoQkNTUl9BRERSKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JMHhmZmZmODExMAkJCQkJCQkJCS8qIDY0S2J5dGUgYWRkcmVzcyBzcGFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChCQ1NSX0FERFIpIHwgQlJfViApCiAKIAogLyoKQEAgLTMxNywzMCArMzE3LDMwIEBACiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCTk3CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KIAogLyogcmVmcmVzaCByYXRlIDE1LjYgdXMgKD0gNjQgbXMgLyA0SyA9IDYyLjQgLyBxdWFkIGJ1cnN0cykgZm9yIDw9IDEyOCBNQml0CSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIAotI2RlZmluZSBDRkdfTUFNUgkJMHgxM2EwMTExNAorI2RlZmluZSBDT05GSUdfU1lTX01BTVIJCTB4MTNhMDExMTQKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwogICoKQEAgLTQ3Nyw2ICs0NzcsNiBAQAogI2RlZmluZSBQQ01DSUFfU0xPVF9BIDEKICNlbmRpZgogCi0jZGVmaW5lIENGR19EQVVHSFRFUkJPQVJECisjZGVmaW5lIENPTkZJR19TWVNfREFVR0hURVJCT0FSRAogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0ZBRFM4NTBTQVIuaCBiL2luY2x1ZGUvY29uZmlncy9GQURTODUwU0FSLmgKaW5kZXggZDYxNzg2OC4uODQxODdmYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0ZBRFM4NTBTQVIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRkFEUzg1MFNBUi5oCkBAIC04MCwyNSArODAsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSN1bmRlZglDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIjo+IgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI6PiIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDgwMDAwMAkvKiAwIC4uLiA4IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwODAwMDAwCS8qIDAgLi4uIDggTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTEwOCw2MiArMTA4LDYyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCQkweEZGMDAwMDAwCi0jZGVmaW5lIENGR19JTU1SX1NJWkUJCSgodWludCkoNjQgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVJfU0laRQkJKCh1aW50KSg2NCAqIDEwMjQpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICogQWxzbyBOT1RFIHRoYXQgaXQgZG9lc24ndCBtZWFuIFNEUkFNIC0gaXQgbWVhbnMgTUVNT1JZLgogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lCUNGR19TRFJBTV9TSVpFCQkoNDw8MjApIC8qIHN0YW5kYXJkIEZBRFMgaGFzIDRNICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAyODAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkoKHVpbnQpKDggKiAxMDI0ICogMTAyNCkpCS8qIG1heCA4TWJ5dGUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fU0laRQkJKDQ8PDIwKSAvKiBzdGFuZGFyZCBGQURTIGhhcyA0TSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDI4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoKHVpbnQpKDggKiAxMDI0ICogMTAyNCkpCS8qIG1heCA4TWJ5dGUgKi8KICNpZiAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MDAwNDAwMDAJLyogT2Zmc2V0IG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTczLDEwICsxNzMsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE4NCwyMSArMTg0LDIxIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJMTUtMzAKQEAgLTIwNiw3ICsyMDYsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIgICoKICAqIGludGVycnVwdCBzdGF0dXMgYml0IC0gbGVhdmUgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB1bmNoYW5nZWQgIQogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgoTVBDOFhYX0ZBQ1QtMSkgPDwgMjApIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKChNUEM4WFhfRkFDVC0xKSA8PCAyMCkgfCBcCiAJCQkJUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMTYsNyArMjE2LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSICAgICAgIChTQ0NSX1RCUyAgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUiAgICAgICAoU0NDUl9UQlMgICAgIHwgXAogCQkJCVNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJCVNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJCVNDQ1JfREZBTENEMDApCkBAIC0yMjYsNyArMjI2LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJMAogCiAvKiBCZWNhdXNlIG9mIHRoZSB3YXkgdGhlIDg2MCBzdGFydHMgdXAgYW5kIGFzc2lnbnMgQ1MwIHRoZQogKiBlbnRpcmUgYWRkcmVzcyBzcGFjZSwgd2UgaGF2ZSB0byBzZXQgdGhlIG1lbW9yeSBjb250cm9sbGVyCkBAIC0yNTAsMjAgKzI1MCwyMCBAQAogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHgwMjgwMDAwMAkvKiBGTEFTSCBiYW5rICMwCSovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkweDAwMDAwMDAwCS8qIEZMQVNIIGJhbmsgIzEJKi8KIAotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRkUwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRkUwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMCwgVFJMWCA9IDEsIENTTlQgPSAxLCBTQ1kgPSAzLCBFSFRSID0gMAkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzNfQ0xLIHwgT1JfVFJMWCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfM19DTEsgfCBPUl9UUkxYKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpICAgLyogMSBNYnl0ZSB1bnRpbCBkZXRlY3RlZCBhbmQgb25seSAxIE1ieXRlIGlzIG5lZWRlZCovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKSAgIC8qIDEgTWJ5dGUgdW50aWwgZGV0ZWN0ZWQgYW5kIG9ubHkgMSBNYnl0ZSBpcyBuZWVkZWQqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qIEJDU1J4IC0gQm9hcmQgQ29udHJvbCBhbmQgU3RhdHVzIFJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JMHhmZmZmODExMAkJCQkJCQkJCS8qIDY0S2J5dGUgYWRkcmVzcyBzcGFjZSAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEJDU1JfQUREUikgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCTB4ZmZmZjgxMTAJCQkJCQkJCQkvKiA2NEtieXRlIGFkZHJlc3Mgc3BhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoQkNTUl9BRERSKSB8IEJSX1YgKQogCiAKIC8qCkBAIC0yNzEsMzAgKzI3MSwzMCBAQAogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJOTcJCS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IegkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKLSNkZWZpbmUgQ0ZHX01BTVIJCTB4MTNhMDExMTQKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SCQkweDEzYTAxMTE0CiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKICAqCkBAIC00MjEsNiArNDIxLDYgQEAKICNkZWZpbmUgUENNQ0lBX1NMT1RfQSAxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfREFVR0hURVJCT0FSRAorI2RlZmluZSBDT05GSUdfU1lTX0RBVUdIVEVSQk9BUkQKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9GQURTODYwVC5oIGIvaW5jbHVkZS9jb25maWdzL0ZBRFM4NjBULmgKaW5kZXggMzgyOTVjNC4uZGNiMGMzOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0ZBRFM4NjBULmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0ZBRFM4NjBULmgKQEAgLTI3LDEyICsyNywxMiBAQAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwogCiAjaWYgMCAvKiBvbGQgRkFEUyAqLwotIyBkZWZpbmUgQ0ZHXzhYWF9GQUNUCQkxMgkvKiA0IE1IeiBvc2NpbGxhdG9yIG9uIEVYVENMSyAqLworIyBkZWZpbmUgQ09ORklHX1NZU184WFhfRkFDVAkJMTIJLyogNCBNSHogb3NjaWxsYXRvciBvbiBFWFRDTEsgKi8KICNlbHNlIC8qIG5ldyBGQURTICovCi0jIGRlZmluZSBDRkdfOFhYX0ZBQ1QJCTEwCS8qIDUgTUh6IG9zY2lsbGF0b3Igb24gRVhUQ0xLICovCisjIGRlZmluZSBDT05GSUdfU1lTXzhYWF9GQUNUCQkxMAkvKiA1IE1IeiBvc2NpbGxhdG9yIG9uIEVYVENMSyAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BMUFJDUiAgKCgoQ0ZHXzhYWF9GQUNULTEpIDw8IFBMUFJDUl9NRl9TSElGVCkgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSICAoKChDT05GSUdfU1lTXzhYWF9GQUNULTEpIDw8IFBMUFJDUl9NRl9TSElGVCkgfAlcCiAJCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogI2RlZmluZSBDT05GSUdfRFJBTV81ME1IWgkJMQpAQCAtNDUsMTIgKzQ1LDEyIEBACiAgKiBUaGVzZSB2YWx1ZXMgZml0IG91ciBGQURTODYwVCAuLi4KICAqIFRoZSAiZGVmYXVsdCIgYmVoYXZpb3VyIHdpdGggMU1ieXRlIGluaXRpYWwgZG9lc24ndCB3b3JrIGZvciB1cyEKICAqLwotI3VuZGVmIENGR19PUjBfUFJFTElNCi0jdW5kZWYgQ0ZHX0JSMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JMHgwRkZDMDBEMzQgLyogUmVhbCB2YWx1ZXMgZm9yIHRoZSBib2FyZCAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkweDAyODAwMDAxICAvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCisjdW5kZWYgQ09ORklHX1NZU19PUjBfUFJFTElNCisjdW5kZWYgQ09ORklHX1NZU19CUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkweDBGRkMwMEQzNCAvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkweDAyODAwMDAxICAvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfREFVR0hURVJCT0FSRCAvKiBGQURTIGhhcyBwcm9jZXNzb3Itc3BlY2lmaWMgZGF1Z2h0ZXJib2FyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RBVUdIVEVSQk9BUkQgLyogRkFEUyBoYXMgcHJvY2Vzc29yLXNwZWNpZmljIGRhdWdodGVyYm9hcmQgKi8KIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9GTEFHQURNLmggYi9pbmNsdWRlL2NvbmZpZ3MvRkxBR0FETS5oCmluZGV4IDUyYjVhYjQuLjFlZjgwNjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9GTEFHQURNLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0ZMQUdBRE0uaApAQCAtNTcsNyArNTcsNyBAQAogI2VuZGlmIC8qIDB8MSovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAvKiNkZWZpbmUJQ09ORklHX1dBVENIRE9HKi8JLyogd2F0Y2hkb2cgZW5hYmxlZAkJKi8KICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KQEAgLTkyLDI1ICs5MiwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiRUVHPiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIkVFRz4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4NDAwNDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4NDAwNDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTEyMCw0MyArMTIwLDQzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTgwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogLyogVGhpcyBpcyBhIGxpdGxlYml0IHdhc3RlZnVsLCBidXQgb25lIHNlY3RvciBpcyAxMjhrYiBhbmQgd2UgaGF2ZSB0bwpAQCAtMTY5LDkgKzE2OSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE4MSw5ICsxODEsOSBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZmRlZiBDT05GSUdfV0FUQ0hET0cKLSNkZWZpbmUgQ0ZHX1NZUENSIChTWVBDUl9TV1RDIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dFIHwgU1lQQ1JfU1dSSSB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAoU1lQQ1JfU1dUQyB8IFNZUENSX1NXRiB8IFNZUENSX1NXRSB8IFNZUENSX1NXUkkgfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YpCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YpCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTkxLDI5ICsxOTEsMjkgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1BSRV9TSVVNQ1IgKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfTVBSRSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QUkVfU0lVTUNSIChTSVVNQ1JfREJHQzExIHwgU0lVTUNSX01QUkUgfCBcCiAJCQkJCQkJU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9HQjVFKQotI2RlZmluZSBDRkdfU0lVTUNSIChDRkdfUFJFX1NJVU1DUiB8IFNJVU1DUl9ETEspCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSIChDT05GSUdfU1lTX1BSRV9TSVVNQ1IgfCBTSVVNQ1JfRExLKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yMjIsNyArMjIyLDcgQEAKICAqIGludGVycnVwdCBzdGF0dXMgYml0IG1pbHRpcGxpZXIgb2YgMHgwMGIgaS5lLiBvcGVyYXRpb24gY2xvY2sgaXMKICAqIDRNSHogKiAoMHgwMGIrMSkgPSA0TUh6ICogMTIgPSAgNDhNSHoKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCSgweDAwYjAwMDAwIHwgUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoMHgwMGIwMDAwMCB8IFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTIzMSwxMSArMjMxLDExIEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKCBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogCi0jZGVmaW5lIENGR19ERVIgMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUiAwCiAKIC8qCiAgKiBJbiB0aGUgRmxhZ2EgRE0gd2UgaGF2ZToKQEAgLTI1MCw3ICsyNTAsNyBAQAogICogdW50b3VjaGVkLgogKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTiAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAwCiAKICNkZWZpbmUgRkxBU0hfQkFTRTAJCTB4NDAwMDAwMDAJLyogRkxBU0ggYmFuayAjMAkqLwogCkBAIC0yNTgsMTUgKzI1OCwxNSBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19PUl9BTQkJMHhmZjAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX09SX0FUTQkJMHgwMDAwNjAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX0FNCQkweGZmMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX09SX0FUTQkJMHgwMDAwNjAwMAogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDEwLCBUUkxYID0gMSwgQ1NOVCA9IDEsIFNDWSA9IDMsIEVIVFIgPSAxCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgXAogCQkJCSBPUl9TQ1lfM19DTEsgfCBPUl9UUkxYIHwgT1JfRUhUUiApCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19PUl9BTSB8IENGR19PUl9BVE0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19PUl9BTSB8IENPTkZJR19TWVNfT1JfQVRNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCiAKIC8qCiAgKiBCUjIgYW5kIE9SMiAoU0RSQU0pCkBAIC0yNzYsMTggKzI3NiwxOCBAQAogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkoIDB4MDAwMDA4MDAgKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkoIDB4MDAwMDA4MDAgKQogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0pCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfQlIyCQkJQ0ZHX0JSMl9QUkVMSU0KLSNkZWZpbmUgQ0ZHX09SMgkJCUNGR19PUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIyCQkJQ09ORklHX1NZU19CUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfT1IyCQkJQ09ORklHX1NZU19PUjJfUFJFTElNCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCi0jZGVmaW5lIENGR19NQU1SXzQ4X1NEUiAoQ0ZHX01BTVJfUFRBIHwJIE1BTVJfV0xGQV8xWCB8IE1BTVJfUkxGQV8xWCAgXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfNDhfU0RSIChDT05GSUdfU1lTX01BTVJfUFRBIHwJIE1BTVJfV0xGQV8xWCB8IE1BTVJfUkxGQV8xWCAgXAogCQkJCQl8IE1BTVJfRzBDTEFfQTExKQogCiAvKgpAQCAtMjk1LDcgKzI5NSw3IEBACiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTB4MEYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkweDBGMDAwMDAwCiAKIC8qCiAgICAqIEJSNCBhbmQgT1I0IChEU1AxKQpAQCAtMzA2LDggKzMwNiw4IEBACiAqLwogI2RlZmluZSBEU1BfQkFTRSAweDgwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX09SNCAoIE9SX0FNX01TSyB8IE9SX0NTTlRfU0FNIHwgT1JfQkkgfCBPUl9HNUxTKQotI2RlZmluZSBDRkdfQlI0ICggKERTUF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SNCAoIE9SX0FNX01TSyB8IE9SX0NTTlRfU0FNIHwgT1JfQkkgfCBPUl9HNUxTKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNCAoIChEU1BfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX01TX1VQTUIgfCBCUl9WICkKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvRlBTODUwTC5oIGIvaW5jbHVkZS9jb25maWdzL0ZQUzg1MEwuaAppbmRleCBjOWQ2YzkxLi4wODQwOGUyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvRlBTODUwTC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9GUFM4NTBMLmgKQEAgLTgwLDcgKzgwLDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gZmxhc2hfc2VsZiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTI0LDMyICsxMjQsMzIgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTU5LDQ3ICsxNTksNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KIAogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRStmbGFzaF9pbmZvWzBdLnNpemUgfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfT0ZGU0VUCQkweDgwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTIwOSw3ICsyMDksNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUK0NPTkZJR19FTlZfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkoQ09ORklHX0VOVl9TSVpFKQogCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkJLyogTWFrZSBzdXJlIHRvIHJlbWFwIGZsYXNoZXMgY29ycmVjdGx5ICovCiAKQEAgLTIyOCwxNiArMjI4LDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0NywxMCArMjQ3LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTgsMjcgKzI1OCwyNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI4Niw3ICsyODYsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0IC0gbGVhdmUgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB1bmNoYW5nZWQgIQogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTI5NSw3ICsyOTUsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTMwNSwyMSArMzA1LDIxIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzM0LDIyICszMzQsMjIgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzoKICAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCiAJCQkJIE9SX1NDWV8zX0NMSyB8IE9SX0VIVFIgfCBPUl9CSSkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtMzYwLDEzICszNjAsMTMgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCi0jZGVmaW5lCUNGR19PUjNfUFJFTElNCUNGR19PUjJfUFJFTElNCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgpAQCAtMzk1LDM0ICszOTUsMzQgQEAKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCiAKLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk4CisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTk4CiAKIC8qCiAgKiBGb3IgMTYgTUJpdCwgcmVmcmVzaCByYXRlcyBjb3VsZCBiZSAzMS4zIHVzCiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9GUFM4NjBMLmggYi9pbmNsdWRlL2NvbmZpZ3MvRlBTODYwTC5oCmluZGV4IGJmMjBhMGQuLmU1ZjNiNjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9GUFM4NjBMLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0ZQUzg2MEwuaApAQCAtODAsNyArODAsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMjQsMzIgKzEyNCwzMiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNTksNDcgKzE1OSw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UrZmxhc2hfaW5mb1swXS5zaXplIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4ODAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjA5LDcgKzIwOSw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQrQ09ORklHX0VOVl9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCQkvKiBNYWtlIHN1cmUgdG8gcmVtYXAgZmxhc2hlcyBjb3JyZWN0bHkgKi8KIApAQCAtMjI4LDE2ICsyMjgsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjQ3LDEwICsyNDcsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1OCwyNyArMjU4LDI3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjg2LDcgKzI4Niw3IEBACiAgKiBSZXNldCBQTEwgbG9jayBzdGF0dXMgc3RpY2t5IGJpdCwgdGltZXIgZXhwaXJlZCBzdGF0dXMgYml0IGFuZCB0aW1lcgogICogaW50ZXJydXB0IHN0YXR1cyBiaXQgLSBsZWF2ZSBQTEwgbXVsdGlwbGljYXRpb24gZmFjdG9yIHVuY2hhbmdlZCAhCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMjk1LDcgKzI5NSw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQpAQCAtMzA1LDIxICszMDUsMjEgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zMzQsMjIgKzMzNCwyMiBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOgogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgT1JfU0NZXzNfQ0xLIHwgT1JfRUhUUiB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyoKICAqIEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCkBAIC0zNjAsMTMgKzM2MCwxMyBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKLSNkZWZpbmUJQ0ZHX09SM19QUkVMSU0JQ0ZHX09SMl9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZQlDT05GSUdfU1lTX09SM19QUkVMSU0JQ09ORklHX1NZU19PUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyCkBAIC0zOTUsMzQgKzM5NSwzNCBAQAogICogODAgTWh6ID0+IDgwLjAwMC4wMDAgLyBEaXZpZGVyID0gMTU2CiAgKi8KIAotI2RlZmluZSBDRkdfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQotI2RlZmluZSBDRkdfTUFNUl9QVEEJOTgKKyNkZWZpbmUgQ09ORklHX1NZU19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJOTgKIAogLyoKICAqIEZvciAxNiBNQml0LCByZWZyZXNoIHJhdGVzIGNvdWxkIGJlIDMxLjMgdXMKICAqICg9IDY0IG1zIC8gMksgPSAxMjUgLyBxdWFkIGJ1cnN0cykuCiAgKiBGb3IgYSBzaW1wbGVyIGluaXRpYWxpemF0aW9uLCAxNS42IHVzIGlzIHVzZWQgaW5zdGVhZC4KICAqCi0gKiAjZGVmaW5lIENGR19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcwotICogI2RlZmluZSBDRkdfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuaworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuawogICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0cyMDAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvRzIwMDAuaAppbmRleCBmNDNkMGM1Li40MzQxZjAyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvRzIwMDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRzIwMDAuaApAQCAtNzYsNyArNzYsNyBAQAogCSIiCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIG5ldF9uZnMiCiAKLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKIApAQCAtMTI0LDUzICsxMjQsNTMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCTEgICAgICAgLyogYWRkIGF1dG9jb21wbGV0aW9uIHN1cHBvcnQgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogI3VuZGVmCUNPTkZJR19VQVJUMV9DT05TT0xFCQkvKiBkZWZpbmUgZm9yIHVhcnQxIGFzIGNvbnNvbGUJKi8KIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTMJLyogYXV0b2Jvb3QgYWZ0ZXIgMyBzZWNvbmRzCSovCiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogYWRkaW5nIEV0aGVybmV0IHNldHRpbmc6ICBGVFMgT1VJIDAwOjExOjBCICovCkBAIC0xODgsMTQgKzE4OCwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjZGVmaW5lIENPTkZJR19SVENfRFMxMzM3Ci0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CiAKICNpZiAwIC8qIHRlc3Qtb25seSAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTkFORC1GTEFTSCBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcwkJKi8KICNkZWZpbmUgU0VDVE9SU0laRSA1MTIKIAogI2RlZmluZSBBRERSX0NPTFVNTiAxCkBAIC0yMDYsMTggKzIwNiwxOCBAQAogI2RlZmluZSBOQU5EX01BWF9GTE9PUlMgMQogI2RlZmluZSBOQU5EX01BWF9DSElQUyAxCiAKLSNkZWZpbmUgQ0ZHX05BTkRfQ0UgICgweDgwMDAwMDAwID4+IDEpCS8qIG91ciBDRSBpcyBHUElPMSAqLwotI2RlZmluZSBDRkdfTkFORF9DTEUgKDB4ODAwMDAwMDAgPj4gMikJLyogb3VyIENMRSBpcyBHUElPMiAqLwotI2RlZmluZSBDRkdfTkFORF9BTEUgKDB4ODAwMDAwMDAgPj4gMykJLyogb3VyIEFMRSBpcyBHUElPMyAqLwotI2RlZmluZSBDRkdfTkFORF9SRFkgKDB4ODAwMDAwMDAgPj4gNCkJLyogb3VyIFJEWSBpcyBHUElPNCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0UgICgweDgwMDAwMDAwID4+IDEpCS8qIG91ciBDRSBpcyBHUElPMSAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0xFICgweDgwMDAwMDAwID4+IDIpCS8qIG91ciBDTEUgaXMgR1BJTzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0FMRSAoMHg4MDAwMDAwMCA+PiAzKQkvKiBvdXIgQUxFIGlzIEdQSU8zICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9SRFkgKDB4ODAwMDAwMDAgPj4gNCkJLyogb3VyIFJEWSBpcyBHUElPNCAqLwogCi0jZGVmaW5lIE5BTkRfRElTQUJMRV9DRShuYW5kKSBkbyB7IG91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19OQU5EX0NFKTt9IHdoaWxlKDApCi0jZGVmaW5lIE5BTkRfRU5BQkxFX0NFKG5hbmQpIGRvIHsgb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNGR19OQU5EX0NFKTt9IHdoaWxlKDApCi0jZGVmaW5lIE5BTkRfQ1RMX0NMUkFMRShuYW5kcHRyKSBkbyB7IG91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfTkFORF9BTEUpO30gd2hpbGUoMCkKLSNkZWZpbmUgTkFORF9DVExfU0VUQUxFKG5hbmRwdHIpIGRvIHsgb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX05BTkRfQUxFKTt9IHdoaWxlKDApCi0jZGVmaW5lIE5BTkRfQ1RMX0NMUkNMRShuYW5kcHRyKSBkbyB7IG91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfTkFORF9DTEUpO30gd2hpbGUoMCkKLSNkZWZpbmUgTkFORF9DVExfU0VUQ0xFKG5hbmRwdHIpIGRvIHsgb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX05BTkRfQ0xFKTt9IHdoaWxlKDApCi0jZGVmaW5lIE5BTkRfV0FJVF9SRUFEWShuYW5kKSB3aGlsZSAoIShpbjMyKEdQSU8wX0lSKSAmIENGR19OQU5EX1JEWSkpCisjZGVmaW5lIE5BTkRfRElTQUJMRV9DRShuYW5kKSBkbyB7IG91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfTkFORF9DRSk7fSB3aGlsZSgwKQorI2RlZmluZSBOQU5EX0VOQUJMRV9DRShuYW5kKSBkbyB7IG91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX05BTkRfQ0UpO30gd2hpbGUoMCkKKyNkZWZpbmUgTkFORF9DVExfQ0xSQUxFKG5hbmRwdHIpIGRvIHsgb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfTkFORF9BTEUpO30gd2hpbGUoMCkKKyNkZWZpbmUgTkFORF9DVExfU0VUQUxFKG5hbmRwdHIpIGRvIHsgb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19OQU5EX0FMRSk7fSB3aGlsZSgwKQorI2RlZmluZSBOQU5EX0NUTF9DTFJDTEUobmFuZHB0cikgZG8geyBvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q09ORklHX1NZU19OQU5EX0NMRSk7fSB3aGlsZSgwKQorI2RlZmluZSBOQU5EX0NUTF9TRVRDTEUobmFuZHB0cikgZG8geyBvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkRfQ0xFKTt9IHdoaWxlKDApCisjZGVmaW5lIE5BTkRfV0FJVF9SRUFEWShuYW5kKSB3aGlsZSAoIShpbjMyKEdQSU8wX0lSKSAmIENPTkZJR19TWVNfTkFORF9SRFkpKQogCiAjZGVmaW5lIFdSSVRFX05BTkRfQ09NTUFORChkLCBhZHIpIGRveyAqKHZvbGF0aWxlIF9fdTggKikoKHVuc2lnbmVkIGxvbmcpYWRyKSA9IChfX3U4KShkKTsgfSB3aGlsZSgwKQogI2RlZmluZSBXUklURV9OQU5EX0FERFJFU1MoZCwgYWRyKSBkb3sgKih2b2xhdGlsZSBfX3U4ICopKCh1bnNpZ25lZCBsb25nKWFkcikgPSAoX191OCkoZCk7IH0gd2hpbGUoMCkKQEAgLTI0Miw1OCArMjQyLDU4IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9DT05GSUdfSE9TVF9CUklER0UgMSAvKiBkb24ndCBza2lwIGhvc3QgYnJpZGdlIGNvbmZpZyovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFICAvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNSAgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUgICAgICAqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIDB4MDAwMDAwMDAgICAgICAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TICAweGZjMDAwMDAxICAgICAgLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEgIDB4ZmZjMDAwMDAgICAgICAvKiBwb2ludCB0byBmbGFzaCAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweGZmYzAwMDAxICAgICAgLyogNE1CLCBlbmFibGUgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRSAgLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmggICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1ICAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBICAweDAwMDAwMDAwICAgICAgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMgIDB4ZmMwMDAwMDEgICAgICAvKiA2NE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBICAweGZmYzAwMDAwICAgICAgLyogcG9pbnQgdG8gZmxhc2ggICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMgIDB4ZmZjMDAwMDEgICAgICAvKiA0TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCiAjaWYgMCAvKiBBUEM0MDUgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudAkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI3VuZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCQkvKiBkb24ndCB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZFMDAwMDAwIC8qIHRlc3Qtb25seS4uLiovCi0jZGVmaW5lIENGR19GTEFTSF9JTkNSRU1FTlQJMHgwMTAwMDAwMCAvKiB0ZXN0LW9ubHkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkJLyogZG9uJ3QgdXNlIGhhcmR3YXJlIHByb3RlY3Rpb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwIC8qIHRlc3Qtb25seS4uLiovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UCTB4MDEwMDAwMDAgLyogdGVzdC1vbmx5ICovCiAjZWxzZSAvKiBHMjAwMCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jdW5kZWYgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JCS8qIGRvbid0IHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uCSovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAgLyogdGVzdC1vbmx5Li4uKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVAkweDAxMDAwMDAwIC8qIHRlc3Qtb25seSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCQkvKiBkb24ndCB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAgLyogdGVzdC1vbmx5Li4uKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQJMHgwMTAwMDAwMCAvKiB0ZXN0LW9ubHkgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPICAgICAgICAgICAgLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTyAgICAgICAgICAgIC8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LICAgIDAgICAgICAgICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUyAgICAgMSAgICAgICAgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyB1LWJvb3QgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LICAgIDAgICAgICAgICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MgICAgIDEgICAgICAgICAgIC8qICEgc2Vjb25kIGJhbmsgY29udGFpbnMgdS1ib290ICAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHhGRkZDMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVudmlyb25tZW50IFZhcmlhYmxlIHNldHVwCkBAIC0zMTYsNjIgKzMxNiw2MiBAQAogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjRXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyNFdDMDgJCSovCiAvKiBDQVQyNFdDMDgvMTYuLi4gKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEludGVsIFN0cmF0YSBGbGFzaCkgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUCAgIDB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUiAgIDB4RkY4N0EwMDAgICAgICAgICAgLyogQkFTPTB4RkY4LEJTPTA4TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAgICAweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSICAgMHhGRjg3QTAwMCAgICAgICAgICAvKiBCQVM9MHhGRjgsQlM9MDhNQixCVT1SL1csQlc9MTZiaXQqLwogCiAvKiBNZW1vcnkgQmFuayAxICggUG93ZXIgVEFVKSBpbml0aWFsaXphdGlvbiAgICAgICAgICAgICAgICovCi0vKiAjZGVmaW5lIENGR19FQkNfUEIxQVAgICAgICAgICAgIDB4MDQwNDEwMDAgKi8KLS8qICNkZWZpbmUgQ0ZHX0VCQ19QQjFDUiAgICAgICAgICAgMHhGMDAxODAwMCAgICovICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICAqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQICAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IgICAgICAgICAgIDB4MDAwMDAwMDAKKy8qICNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAgICAgICAgICAgIDB4MDQwNDEwMDAgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IgICAgICAgICAgIDB4RjAwMTgwMDAgICAqLyAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IgICAgICAgICAgIDB4MDAwMDAwMDAKIAogLyogTWVtb3J5IEJhbmsgMiAoSW50ZWwgRmxhc2gpIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQICAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IgICAgICAgICAgIDB4MDAwMDAwMDAKIAogLyogTWVtb3J5IEJhbmsgMyAoTkFORCkgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQICAgICAgICAgICAweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IgICAgICAgICAgIDB4RjQwQjgwMDAgIC8qYWRkciAweEY0MCwgQlM9MzJNLEJVPVIvVywgQlc9OGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUCAgICAgICAgICAgMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUiAgICAgICAgICAgMHhGNDBCODAwMCAgLyphZGRyIDB4RjQwLCBCUz0zMk0sQlU9Ui9XLCBCVz04Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDQgKEZQR0EgcmVncykgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRBUCAgICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRUJDX1BCNENSICAgICAgICAgICAweDAwMDAwMDAwICAvKiBsZWF2ZSBpdCBibGFuayAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0Q1IgICAgICAgICAgIDB4MDAwMDAwMDAgIC8qIGxlYXZlIGl0IGJsYW5rICAqLwogCi0jZGVmaW5lIENGR19OQU5EX0JBU0UgICAweEY0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFICAgMHhGNDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIGRhdGEgY2FjaGUpCiAgKi8KIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkgIDEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIEdQSU8gc2V0dXAgKFBQQzQwNUVQIHNwZWNpZmljKQpAQCAtMzg3LDEzICszODcsMTMgQEAKICAqCiAgKiBmb2xsb3dpbmcgR1BJTyBzZXR0aW5nIGNoYW5nZWQgZm9yIEcyMDAwMCwgMDgwMzA0CiAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkggICAgICAgICAgMHg0MDAwNTU1NQotI2RlZmluZSBDRkdfR1BJTzBfT1NSTCAgICAgICAgICAweDQwMDAwMTEwCi0jZGVmaW5lIENGR19HUElPMF9JU1IxSCAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFMICAgICAgICAgMHgxNTU1NTQ0NQotI2RlZmluZSBDRkdfR1BJTzBfVFNSSCAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UU1JMICAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RDUiAgICAgICAgICAgMHhGN0ZGODAxNAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkggICAgICAgICAgMHg0MDAwNTU1NQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkwgICAgICAgICAgMHg0MDAwMDExMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFIICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFMICAgICAgICAgMHgxNTU1NTQ0NQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkggICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkwgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RDUiAgICAgICAgICAgMHhGN0ZGODAxNAogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9HRU44NjBULmggYi9pbmNsdWRlL2NvbmZpZ3MvR0VOODYwVC5oCmluZGV4IDE2MjczNDQuLmEzOTlkMjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9HRU44NjBULmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0dFTjg2MFQuaApAQCAtNjQsNyArNjQsNyBAQAogLyoKICAqIFNldCBhbGxvd2FibGUgY29uc29sZSBiYXVkIHJhdGVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCQl7IDk2MDAsCQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJCXsgOTYwMCwJCVwKIAkJCQkJICAxOTIwMCwJXAogCQkJCQkgIDM4NDAwLAlcCiAJCQkJCSAgNTc2MDAsCVwKQEAgLTc0LDcgKzc0LDcgQEAKIC8qCiAgKiBQcmludCBjb25zb2xlIGluZm9ybWF0aW9uCiAgKi8KLSN1bmRlZgkgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAorI3VuZGVmCSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAogCiAvKgogICogU2V0IHRoZSBhdXRvYm9vdCBkZWxheSBpbiBzZWNvbmRzLiAgQSBkZWxheSBvZiAtMSBkaXNhYmxlcyBhdXRvYm9vdApAQCAtMTAxLDEyICsxMDEsMTIgQEAKICAqIGZvciBkb3dubG9hZHMKICAqLwogI3VuZGVmCUNPTkZJR19MT0FEU19FQ0hPCi0jZGVmaW5lCUNGR19MT0FEU19CQVVEX0NIQU5HRQorI2RlZmluZQlDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCiAKIC8qCiAgKiBTZXQgZGVmYXVsdCBsb2FkIGFkZHJlc3MgZm9yIHRmdHAgbmV0d29yayBkb3dubG9hZHMKICAqLwotI2RlZmluZQlDRkdfVEZUUF9MT0FEQUREUgkJCQkweDAxMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfVEZUUF9MT0FEQUREUgkJCQkweDAxMDAwMDAwCiAKIC8qCiAgKiBUdXJuIG9mZiB0aGUgd2F0Y2hkb2cgdGltZXIKQEAgLTEyNyw3ICsxMjcsNyBAQAogICogUmVzZXQgYWRkcmVzcy4gV2UgcGljayBhbiBhZGRyZXNzIHN1Y2ggdGhhdCB3aGVuIGFuIGluc3RydWN0aW9uCiAgKiBpcyBleGVjdXRlZCBhdCB0aGF0IGFkZHJlc3MsIGEgbWFjaGluZSBjaGVjayBleGNlcHRpb24gb2NjdXJzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJCQkJKCh1bG9uZykgLTEpCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkJCQkoKHVsb25nKSAtMSkKIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTE0NSw3ICsxNDUsNyBAQAogICogTUlJIGFkZHJlc3MgaXMgaGFyZHdpcmVkIG9uIHRoZSBib2FyZCB0byB6ZXJvLgogICovCiAjZGVmaW5lIENPTkZJR19GRUNfRU5FVAotI2RlZmluZSBDRkdfRElTQ09WRVJfUEhZCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjZGVmaW5lIENPTkZJR19NSUkKICNkZWZpbmUgQ09ORklHX01JSV9JTklUCQkJMQogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCQkwCkBAIC0xNjIsMTAgKzE2MiwxMCBAQAogICogVGhpcyBib2FyZCBoYXMgYSAzMiBraWJpYnl0ZSBFRVBST00gKEF0bWVsIEFUMjRDMjU2KSBjb25uZWN0ZWQgdG8KICAqIHRoZSBNUEM4NjBUIEkyQyBpbnRlcmZhY2UuCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJCQkweDUwCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCQk2CQkvKiA2NCBieXRlIHBhZ2VzCQkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTIJCS8qIDEwIG1TIHcvIDIwJSBtYXJnaW4JKi8KLSNkZWZpbmUJQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCQkyCQkvKiBuZWVkIDE2IGJpdCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkJCTB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCQk2CQkvKiA2NCBieXRlIHBhZ2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEyCQkvKiAxMCBtUyB3LyAyMCUgbWFyZ2luCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJCTIJCS8qIG5lZWQgMTYgYml0IGFkZHJlc3MJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9FRVBST01fU0laRQkJCQkoMzIgKiAxMDI0KQogCiAvKgpAQCAtMTc1LDggKzE3NSw4IEBACiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJCQkJLyogQml0LWJhbmdlZCBJMkMJCQkqLwogCiAjaWZkZWYgQ09ORklHX0hBUkRfSTJDCi0jZGVmaW5lCUNGR19JMkNfU1BFRUQJCTEwMDAwMAkJCS8qIGNsb2NrIHNwZWVkIGluIEh6CQkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCQkJLyogSTJDIHNsYXZlIGFkZHJlc3MJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJCQkvKiBjbG9jayBzcGVlZCBpbiBIegkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUJCQkvKiBJMkMgc2xhdmUgYWRkcmVzcwkJKi8KICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1NPRlRfSTJDCkBAIC0yMDgsNyArMjA4LDcgQEAKICAqIGxlbmd0aCBvZiB0aW1lLCBzbyB3ZSB1c2UgYW4gZXh0ZXJuYWwgUlRDIG9uIHRoZSBJMkMgYnVzIGluc3RlYWQuCiAgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMzcKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkJCQkweDY4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCQkJCTB4NjgKIAogI2Vsc2UKIC8qCkBAIC0yMjAsMTEgKzIyMCwxMSBAQAogLyoKICAqIFBvd2VyIE9uIFNlbGYgVGVzdCBzdXBwb3J0CiAgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCQkgICggQ0ZHX1BPU1RfQ0FDSEUJCXwgXAotCQkJCQkJCQlDRkdfUE9TVF9NRU1PUlkJCXwgXAotCQkJCQkJCQlDRkdfUE9TVF9DUFUJCXwgXAotCQkJCQkJCQlDRkdfUE9TVF9VQVJUCQl8IFwKLQkJCQkJCQkJQ0ZHX1BPU1RfU1BSICkKKyNkZWZpbmUgQ09ORklHX1BPU1QJCQkgICggQ09ORklHX1NZU19QT1NUX0NBQ0hFCQl8IFwKKwkJCQkJCQkJQ09ORklHX1NZU19QT1NUX01FTU9SWQkJfCBcCisJCQkJCQkJCUNPTkZJR19TWVNfUE9TVF9DUFUJCXwgXAorCQkJCQkJCQlDT05GSUdfU1lTX1BPU1RfVUFSVAkJfCBcCisJCQkJCQkJCUNPTkZJR19TWVNfUE9TVF9TUFIgKQogCiAKIC8qCkBAIC0yNzcsNyArMjc3LDcgQEAKICNkZWZpbmUgQ09ORklHX0ZQR0EKICNkZWZpbmUgQ09ORklHX0ZQR0FfWElMSU5YCiAjZGVmaW5lIENPTkZJR19GUEdBX1ZJUlRFWDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCiAKICNkZWZpbmUgQ09ORklHX05BTkRfTEVHQUNZCkBAIC0yODUsNjQgKzI4NSw2NCBAQAogLyoKICAqIFZlcmJvc2UgaGVscCBmcm9tIGNvbW1hbmQgbW9uaXRvci4KICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAKKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAogI2lmICFkZWZpbmVkKENPTkZJR19TQykKLSNkZWZpbmUJQ0ZHX1BST01QVAkJCSJCMj4gIgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJCSJCMj4gIgogI2Vsc2UKLSNkZWZpbmUJQ0ZHX1BST01QVAkJCSJTQz4gIgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJCSJTQz4gIgogI2VuZGlmCiAKIAogLyoKICAqIFVzZSB0aGUgImh1c2giIGNvbW1hbmQgcGFyc2VyCiAgKi8KLSNkZWZpbmUJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZQlDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogLyoKICAqIFNldCBidWZmZXIgc2l6ZSBmb3IgY29uc29sZSBJL08KICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkJMTAyNAorI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJCTEwMjQKICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCQkyNTYKKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCQkyNTYKICNlbmRpZgogCiAvKgogICogUHJpbnQgYnVmZmVyIHNpemUKICAqLwotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKIAogLyoKICAqIE1heGltdW0gbnVtYmVyIG9mIGFyZ3VtZW50cyB0aGF0IGEgY29tbWFuZCBjYW4gYWNjZXB0CiAgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCQkxNgorI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCQkxNgogCiAvKgogICogQm9vdCBhcmd1bWVudCBidWZmZXIgc2l6ZQogICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQogCiAvKgogICogRGVmYXVsdCBtZW1vcnkgdGVzdCByYW5nZQogICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCShDRkdfTUVNVEVTVF9TVEFSVCAgKyAoMTI4ICogMTAyNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCAgKyAoMTI4ICogMTAyNCkpCiAKIC8qCiAgKiBTZWxlY3QgdGhlIG1vcmUgZnVsbC1mZWF0dXJlZCBtZW1vcnkgdGVzdAogICovCi0jZGVmaW5lCUNGR19BTFRfTUVNVEVTVAorI2RlZmluZQlDT05GSUdfU1lTX0FMVF9NRU1URVNUCiAKIC8qCiAgKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwogICovCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MDEwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDEwMDAwMDAKIAogLyoKICAqIFNldCBkZWNyZW1lbnRlciBmcmVxdWVuY3kgKDEgbXMgdGlja3MpCiAgKi8KLSNkZWZpbmUJQ0ZHX0haCQkJCTEwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCQkxMDAwCiAKIC8qCiAgKiBEZXZpY2UgbWVtb3J5IG1hcCAoYWZ0ZXIgU0RSQU0gcmVtYXAgdG8gMHgwKToKQEAgLTM2Myw3ICszNjMsNyBAQAogLyoKICAqIEJhc2UgYWRkcmVzc2VzIGFuZCBibG9jayBzaXplcwogICovCi0jZGVmaW5lIENGR19JTU1SCQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCQkweEZGMDAwMDAwCiAKICNkZWZpbmUgU0RSQU1fQkFTRQkJCTB4MDAwMDAwMDAKICNkZWZpbmUgU0RSQU1fU0laRQkJCSg2NCAqIDEwMjQgKiAxMDI0KQpAQCAtMzg2LDI3ICszODYsMjcgQEAKIC8qCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCQlDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECQkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkJKi8KLSNkZWZpbmUJQ0ZHX0lOSVRfREFUQV9TSVpFCQk2NAkvKiAjIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCQkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19JTklUX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCQlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECQkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX0RBVEFfU0laRQkJNjQJLyogIyBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfSU5JVF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJCVNEUkFNX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkJU0RSQU1fQkFTRQogCiAvKgogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQlGTEFTSF9CQVNFCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkJRkxBU0hfU0laRQotI2RlZmluZSBDRkdfRkxBU0hfU0VDVF9TSVpFCQkoMTI4ICogMTAyNCkKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlGTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJCUZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TRUNUX1NJWkUJCSgxMjggKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkxMjgKIAogLyoKICAqIFRoZSB0aW1lb3V0IHZhbHVlcyBhcmUgZm9yIGFuIGVudGlyZSBjaGlwIGFuZCBhcmUgaW4gbWlsbGlzZWNvbmRzLgpAQCAtNDE1LDIwICs0MTUsMjAgQEAKICAqIGNhc2UgVkNDIGFuZCB0ZW1wIGFmdGVyIDEwMEsgcHJvZ3JhbW1pbmcgY3ljbGVzLiAgSXQgd29ya3Mgb3V0CiAgKiB0byAyODAgbWludXRlcyAobWlnaHQgYXMgd2VsbCBiZSBmb3JldmVyKS4KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoQ0ZHX01BWF9GTEFTSF9TRUNUICogNTAwMCkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKENGR19NQVhfRkxBU0hfU0VDVCAqIDEyOCAqIDEwMjQgKiAxKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgKiA1MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgKiAxMjggKiAxMDI0ICogMSkKIAogLyoKICAqIEFsbG93IGRpcmVjdCB3cml0ZXMgdG8gRkxBU0ggZnJvbSB0ZnRwIHRyYW5zZmVycyAoKiogZGFuZ2Vyb3VzICoqKQogICovCi0jZGVmaW5lCUNGR19ESVJFQ1RfRkxBU0hfVEZUUAorI2RlZmluZQlDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9URlRQCiAKIC8qCiAgKiBSZXNlcnZlIG1lbW9yeSBmb3IgVS1Cb290LgogICovCi0jZGVmaW5lIENGR19NQVhfVUJPT1RfU0VDVFMJCTQKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkJKENGR19NQVhfVUJPT1RfU0VDVFMgKiBDRkdfRkxBU0hfU0VDVF9TSVpFKQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCQlDRkdfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9VQk9PVF9TRUNUUwkJNAorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkJKENPTkZJR19TWVNfTUFYX1VCT09UX1NFQ1RTICogQ09ORklHX1NZU19GTEFTSF9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAogLyoKICAqIFNlbGVjdCBlbnZpcm9ubWVudCBwbGFjZW1lbnQuICBOT1RFIHRoYXQgdS1ib290LmxkcyBtdXN0CkBAIC00NDIsNyArNDQyLDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCQkoQ09ORklHX0VOVl9FRVBST01fU0laRSAtICg4ICogMTAyNCkpCiAjZWxzZQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQkweDEwMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJCUNGR19GTEFTSF9TRUNUX1NJWkUKKyNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0VDVF9TSVpFCiAKIC8qCiAgKiBUaGlzIHVsdGltYXRlbHkgZ2V0cyBwYXNzZWQgcmlnaHQgaW50byB0aGUgbGlua2VyIHNjcmlwdCwgc28gd2UgaGF2ZSB0bwpAQCAtNDU0LDIxICs0NTQsMjEgQEAKIC8qCiAgKiBSZXNlcnZlIG1lbW9yeSBmb3IgbWFsbG9jKCkKICAqLwotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCAqIDEwMjQgKiAxMDI0KQogCiAvKgogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJCTQJLyogbG9nIGJhc2UgMiBvZiBhYm92ZSB2YWx1ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJCTQJLyogbG9nIGJhc2UgMiBvZiBhYm92ZSB2YWx1ZQkJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDc5LDcgKzQ3OSw3IEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKCBTWVBDUl9TV1RDCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCSggU1lQQ1JfU1dUQwl8IFwKIAkJCQkJICBTWVBDUl9CTVQJfCBcCiAJCQkJCSAgU1lQQ1JfQk1FCXwgXAogCQkJCQkgIFNZUENSX1NXRgl8IFwKQEAgLTQ4OCw3ICs0ODgsNyBAQAogCQkJCQkgIFNZUENSX1NXUAkJICBcCiAJCQkJCSkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoIFNZUENSX1NXVEMJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKCBTWVBDUl9TV1RDCXwgXAogCQkJCQkgIFNZUENSX0JNVAl8IFwKIAkJCQkJICBTWVBDUl9CTUUJfCBcCiAJCQkJCSAgU1lQQ1JfU1dGCXwgXApAQCAtNTAxLDcgKzUwMSw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXQgZGVidWcgcGluIG11eCwgZW5hYmxlIFNQS1JPVVQgYW5kIEdQTEI1Ki4KICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCSggU0lVTUNSX0RCR0MxMSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKCBTSVVNQ1JfREJHQzExIHwgXAogCQkJCQkgIFNJVU1DUl9EQlBDMTEgfCBcCiAJCQkJCSAgU0lVTUNSX01MUkMxMQl8IFwKIAkJCQkJICBTSVVNQ1JfR0I1RQkgIFwKQEAgLTUxMiw3ICs1MTIsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6ZSBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCSggVEJTQ1JfUkVGQSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoIFRCU0NSX1JFRkEgfCBcCiAJCQkJCSAgVEJTQ1JfUkVGQiB8IFwKIAkJCQkJICBUQlNDUl9UQkYJICAgXAogCQkJCQkpCkBAIC01MjEsNyArNTIxLDcgQEAKICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJCVVNIDExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCSggUlRDU0NfU0VDCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCSggUlRDU0NfU0VDCXwgXAogCQkJCQkgIFJUQ1NDX0FMUiB8IFwKIAkJCQkJICBSVENTQ19SVEYgfCBcCiAJCQkJCSAgUlRDU0NfUlRFCSAgXApAQCAtNTMyLDcgKzUzMiw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoIFBJU0NSX1BTCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoIFBJU0NSX1BTCQl8IFwKIAkJCQkJICBQSVNDUl9QSVRGCSAgXAogCQkJCQkpCiAKQEAgLTU0Miw3ICs1NDIsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0LiBTZXQgTUYgZm9yIDE6MjoxIG1vZGUuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoICgoMHgxIDw8IFBMUFJDUl9NRl9TSElGVCkgJiBQTFBSQ1JfTUZfTVNLKQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCAoKDB4MSA8PCBQTFBSQ1JfTUZfU0hJRlQpICYgUExQUkNSX01GX01TSykJfCBcCiAJCQkJCSAgUExQUkNSX1NQTFNTCXwgXAogCQkJCQkgIFBMUFJDUl9URVhQUwl8IFwKIAkJCQkJICBQTFBSQ1JfVE1JU1QJICBcCkBAIC01NTcsNyArNTU3LDcgQEAKICNkZWZpbmUgU0NDUl9NQVNLICAgU0NDUl9FQkRGMTEKIAogI2lmICFkZWZpbmVkKENPTkZJR19TQykKLSNkZWZpbmUgQ0ZHX1NDQ1IJKCBTQ0NSX1RCUwkJCXwJLyogdGltZWJhc2UgPSBHQ0xLLzIJKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKCBTQ0NSX1RCUwkJCXwJLyogdGltZWJhc2UgPSBHQ0xLLzIJKi8gXAogCQkJCQkgIFNDQ1JfQ09NMDAJCXwJLyogZnVsbCBzdHJlbmd0aCBDTEtPVVQJKi8gXAogCQkJCQkgIFNDQ1JfREZTWU5DMDAJfAkvKiBTWU5DTEsgLyAxIChub3JtYWwpCSovIFwKIAkJCQkJICBTQ0NSX0RGQlJHMDAJCXwJLyogQlJHQ0xLIC8gMSAobm9ybWFsKQkqLyBcCkBAIC01NjUsNyArNTY1LDcgQEAKIAkJCQkJICBTQ0NSX0RGTkgwMDAJCSAgXAogCQkJCQkpCiAjZWxzZQotI2RlZmluZSBDRkdfU0NDUgkoIFNDQ1JfVEJTCQkJfAkvKiB0aW1lYmFzZSA9IEdDTEsvMgkqLyBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoIFNDQ1JfVEJTCQkJfAkvKiB0aW1lYmFzZSA9IEdDTEsvMgkqLyBcCiAJCQkJCSAgU0NDUl9DT00wMAkJfAkvKiBmdWxsIHN0cmVuZ3RoIENMS09VVAkqLyBcCiAJCQkJCSAgU0NDUl9ERlNZTkMwMAl8CS8qIFNZTkNMSyAvIDEgKG5vcm1hbCkJKi8gXAogCQkJCQkgIFNDQ1JfREZCUkcwMAkJfAkvKiBCUkdDTEsgLyAxIChub3JtYWwpCSovIFwKQEAgLTU4MSw3ICs1ODEsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWFzayBhbGwgZXZlbnRzIHRoYXQgY2FuIGNhdXNlIGVudHJ5IGludG8gZGVidWcgbW9kZQogICovCi0jZGVmaW5lIENGR19ERVIJCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJCQkwCiAKIC8qCiAgKiBJbml0aWFsaXplIE1lbW9yeSBDb250cm9sbGVyOgpAQCAtNTkzLDEzICs1OTMsMTMgQEAKIC8qCiAgKiBGbGFzaCBhZGRyZXNzIG1hc2sKICAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4ZmUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhmZTAwMDAwMAogCiAvKgogICogRkxBU0ggdGltaW5nOgogICogMzMgTWh6IGJ1cyB3aXRoIEFDUyA9IDExLCBUUkxYID0gMSwgQ1NOVCA9IDEsIFNDWSA9IDMsIEVIVFIgPSAxCiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoIE9SX0NTTlRfU0FNCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoIE9SX0NTTlRfU0FNCXwgXAogCQkJCQkJCSAgT1JfQUNTX0RJVjIJfCBcCiAJCQkJCQkJICBPUl9CSQkJCXwgXAogCQkJCQkJCSAgT1JfU0NZXzJfQ0xLCXwgXApAQCAtNjA3LDExICs2MDcsMTEgQEAKIAkJCQkJCQkgIE9SX0VIVFIJCSAgXAogCQkJCQkJCSkKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoIENGR19QUkVMSU1fT1JfQU0JCXwgXAotCQkJCQkJICBDRkdfT1JfVElNSU5HX0ZMQVNICSAgXAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKCBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkJfCBcCisJCQkJCQkgIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICSAgXAogCQkJCQkJKQogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSggKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoIChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spCXwgXAogCQkJCQkJICBCUl9NU19HUENNCQkJCQkJfCBcCiAJCQkJCQkgIEJSX1BTXzgJCQkJCQkJfCBcCiAJCQkJCQkgIEJSX1YJCQkJCQkJCSAgXApAQCAtNjIwLDEyICs2MjAsMTIgQEAKIC8qCiAgKiBTRFJBTSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX09SMV9BTQkweGZjMDAwMDAwCi0jZGVmaW5lIENGR19PUjEJCSggKENGR19PUjFfQU0gJiBPUl9BTV9NU0spCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9BTQkweGZjMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1IxCQkoIChDT05GSUdfU1lTX09SMV9BTSAmIE9SX0FNX01TSykJfCBcCiAJCQkJCSAgT1JfQ1NOVF9TQU0JCQkJICBcCiAJCQkJCSkKIAotI2RlZmluZSBDRkdfQlIxCQkoIChTRFJBTV9CQVNFICYgQlJfQkFfTVNLKQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjEJCSggKFNEUkFNX0JBU0UgJiBCUl9CQV9NU0spCXwgXAogCQkJCQkgIEJSX01TX1VQTUEJCQkJfCBcCiAJCQkJCSAgQlJfUFNfMzIJCQkJCXwgXAogCQkJCQkgIEJSX1YJCQkJCQkgIFwKQEAgLTYzNSwxNyArNjM1LDE3IEBACiAgKiBSZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIHVTIHF1YWQgYnVyc3RzKSBmb3Igb25lIGJhbmsKICAqIG9mIDI1NiBNQml0IFNEUkFNCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CiAKIC8qCiAgKiBQZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCBAIDMzIE1IeiBzeXN0ZW0gY2xvY2sKICAqLwotI2RlZmluZSBDRkdfTUFNUl9QVEEJNjQKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk2NAogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSggKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSggKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpCXwgXAogCQkJCQkJICBNQU1SX1BUQUUJCQkJfCBcCiAJCQkJCQkgIE1BTVJfQU1BX1RZUEVfMQkJCXwgXAogCQkJCQkJICBNQU1SX0RTQV8xX0NZQ0wJCQl8IFwKQEAgLTY2MCw3ICs2NjAsNyBAQAogICogMzMgTUh6IGJ1cyB3aXRoIFRSTFg9MSwgQUNTPTExLCBDU05UPTEsIEVCREY9MSwgU0NZPTIsIEVIVFI9MSwKICAqIG5vIGJ1cnN0LgogICovCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCSggKDB4ZmZmZjAwMDAgJiBPUl9BTV9NU0spCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKCAoMHhmZmZmMDAwMCAmIE9SX0FNX01TSykJfCBcCiAJCQkJCQkgIE9SX0NTTlRfU0FNCQkJCXwgXAogCQkJCQkJICBPUl9BQ1NfRElWMgkJCQl8IFwKIAkJCQkJCSAgT1JfQkkJCQkJCQl8IFwKQEAgLTY2OSw3ICs2NjksNyBAQAogCQkJCQkJICBPUl9FSFRSCQkJCQkgIFwKIAkJCQkJCSkKIAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoIChET0NfQkFTRSAmIEJSX0JBX01TSykJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoIChET0NfQkFTRSAmIEJSX0JBX01TSykJfCBcCiAJCQkJCQkgIEJSX1BTXzgJCQkJCXwgXAogCQkJCQkJICBCUl9NU19HUENNCQkJCXwgXAogCQkJCQkJICBCUl9WCQkJCQkJICBcCkBAIC02ODMsMTIgKzY4MywxMiBAQAogICogdGhlIGN5Y2xlIHdpbGwgc3RpbGwgY29tcGxldGUgZXZlbiBpZiB0aGVyZSBpcyBhIGNvbmZpZ3VyYXRpb24KICAqIGVycm9yIHRoYXQgcHJldmVudHMgVEEgZnJvbSBhc3NlcnRpbmcgb24gRlBHQSBhY2Nlc3NzLgogICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCSggKDB4ZmMwMDAwMDAgJiBPUl9BTV9NU0spICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCSggKDB4ZmMwMDAwMDAgJiBPUl9BTV9NU0spICB8IFwKIAkJCQkJCSAgT1JfU0NZXzE1X0NMSwkJCQl8IFwKIAkJCQkJCSAgT1JfQkkJCQkJCSAgXAogCQkJCQkJKQogCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSggKEZQR0FfQkFTRSAmIEJSX0JBX01TSykJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoIChGUEdBX0JBU0UgJiBCUl9CQV9NU0spCXwgXAogCQkJCQkJICBCUl9QU18zMgkJCQkJfCBcCiAJCQkJCQkgIEJSX01TX0dQQ00JCQkJfCBcCiAJCQkJCQkgIEJSX1YJCQkJCQkgIFwKQEAgLTY5OCwxMiArNjk4LDEyIEBACiAgKiAzMyBNSHogYnVzLCBVUE1CLCBubyBidXJzdC4gRG8gbm90IGFzc2VydCBHUExCNSBvbiBmYWxsaW5nIGVkZ2UKICAqIG9mIEdDTEsxXzUwCiAgKi8KLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JKCAoMHhmZmZmMDAwMCAmIE9SX0FNX01TSykJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkoICgweGZmZmYwMDAwICYgT1JfQU1fTVNLKQl8IFwKIAkJCQkJCSAgT1JfRzVMUwkJCQkJCXwgXAogCQkJCQkJICBPUl9CSQkJCQkJCQkgIFwKIAkJCQkJCSkKIAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkoIChTRUxFQ1RNQVBfQkFTRSAmIEJSX0JBX01TSykJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkoIChTRUxFQ1RNQVBfQkFTRSAmIEJSX0JBX01TSykJfCBcCiAJCQkJCQkgIEJSX1BTXzgJCQkJCQl8IFwKIAkJCQkJCSAgQlJfTVNfVVBNQgkJCQkJfCBcCiAJCQkJCQkgIEJSX1YJCQkJCQkJICBcCkBAIC03MTcsNyArNzE3LDcgQEAKICAqIHRoZSBjeWNsZSB3aWxsIHN0aWxsIGNvbXBsZXRlIGV2ZW4gaWYgdGhlcmUgaXMgYSBjb25maWd1cmF0aW9uCiAgKiBlcnJvciB0aGF0IHByZXZlbnRzIFRBIGZyb20gYXNzZXJ0aW5nIG9uIEZQR0EgYWNjZXNzcy4KICAqLwotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkoICgweGZmZmYwMDAwICYgT1JfQU1fTVNLKSAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkoICgweGZmZmYwMDAwICYgT1JfQU1fTVNLKSAgfCBcCiAJCQkJCQkgIE9SX1NDWV8xNV9DTEsJCQkJfCBcCiAJCQkJCQkgIE9SX0VIVFIJCQkJCXwgXAogCQkJCQkJICBPUl9UUkxYCQkJCQl8IFwKQEAgLTcyNSw3ICs3MjUsNyBAQAogCQkJCQkJICBPUl9CSQkJCQkJCSAgXAogCQkJCQkJKQogCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCSggKE0xNTUzX0JBU0UgJiBCUl9CQV9NU0spCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JKCAoTTE1NTNfQkFTRSAmIEJSX0JBX01TSykJfCBcCiAJCQkJCQkgIEJSX1BTXzE2CQkJCQl8IFwKIAkJCQkJCSAgQlJfTVNfR1BDTQkJCQl8IFwKIAkJCQkJCSAgQlJfVgkJCQkJCSAgXApAQCAtNzQxLDEwICs3NDEsMTAgQEAKICAqIERpc2sgT24gQ2hpcCAobWlsbGVuaXVtKSBjb25maWd1cmF0aW9uCiAgKi8KICNpZiAhZGVmaW5lZChDT05GSUdfU0MpCi0jZGVmaW5lIENGR19NQVhfRE9DX0RFVklDRQkxCi0jdW5kZWYJQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KLSN1bmRlZglDRkdfRE9DX1BBU1NJVkVfUFJPQkUKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRQkxCisjdW5kZWYJQ09ORklHX1NZU19ET0NfU1VQUE9SVF8yMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQorI3VuZGVmCUNPTkZJR19TWVNfRE9DX1BBU1NJVkVfUFJPQkUKICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0dFTklFVFYuaCBiL2luY2x1ZGUvY29uZmlncy9HRU5JRVRWLmgKaW5kZXggYjZjYzE3Yi4uZmFkZDgzMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0dFTklFVFYuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvR0VOSUVUVi5oCkBAIC00MSwxOSArNDEsMTkgQEAKICNkZWZpbmUJQ09ORklHX0VUSEFERFIJCTA4OjAwOjIyOjUwOjcwOjYzCS8qIEV0aGVybmV0IGFkZHJlc3MgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQkvKiBPdmVyd3JpdGUgdGhlIGVudmlyb25tZW50ICovCiAKLSNkZWZpbmUgQ0ZHX0FMTE9DX0RQUkFNCQkJLyogVXNlIGR5bmFtaWMgRFBSQU0gYWxsb2NhdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCQkJLyogVXNlIGR5bmFtaWMgRFBSQU0gYWxsb2NhdGlvbiAqLwogCi0jZGVmaW5lIENGR19BVVRPTE9BRAkJIm4iCS8qIE5vIGF1dG9sb2FkICovCisjZGVmaW5lIENPTkZJR19TWVNfQVVUT0xPQUQJCSJuIgkvKiBObyBhdXRvbG9hZCAqLwogCiAvKiNkZWZpbmUgQ09ORklHX1ZJREVPCQkxCS8gIFRvIGVuYWJsZSB0aGUgdmlkZW8gaW5pdGlhbGl6YXRpb24gKi8KIC8qI2RlZmluZSBDT05GSUdfVklERU9fQUREUgkweDAwMjAwMDAwICovCiAvKiNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCTEJLyAgSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwogLyojZGVmaW5lIENPTkZJR19QQ01DSUEJCTEJLyAgVG8gZW5hYmxlIHRoZSBQQ01DSUEgaW5pdGlhbGl6YXRpb24gKi8KIAotLyojZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkweGZmMDIwMDAwICovCi0vKiNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCTB4MTAwMDAgKi8KLS8qI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCTB4ZTAwMDAwMDAgKi8KLS8qI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCTB4MTAwMDAgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCTB4ZmYwMjAwMDAgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCTB4MTAwMDAgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkweGUwMDAwMDAwICovCisvKiNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJMHgxMDAwMCAqLwogCiAvKiBWaWRlbyByZWxhdGVkICovCiAKQEAgLTg0LDcgKzg0LDcgQEAKICNkZWZpbmUgTVBDOFhYX1hJTgk1MDAwMDAwCQkJLyogNCBNSHogY2xvY2sJCSovCiAKICNkZWZpbmUgTVBDOFhYX0haCSgoTVBDOFhYX1hJTikgKiAoTVBDOFhYX0ZBQ1QpKQotI2RlZmluZSBDRkdfUExQUkNSX01GCSgoTVBDOFhYX0ZBQ1QtMSkgPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSX01GCSgoTVBDOFhYX0ZBQ1QtMSkgPDwgMjApCiAjZGVmaW5lIENPTkZJR184eHhfR0NMS19GUkVRCU1QQzhYWF9IWgkvKiBGb3JjZSBpdCAtIGRvbnQgbWVhc3VyZSBpdCAqLwogCiAjZGVmaW5lCUNPTkZJR19DTE9DS1NfSU5fTUhaCTEJLyogY2xvY2tzIHBhc3NzZWQgdG8gTGludXggaW4gTUh6ICovCkBAIC0xMjQsMjUgKzEyNCwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI6PiIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI6PiIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJOAkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTgJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwODAwMDAwCS8qIDAgLi4uIDggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA4MDAwMDAJLyogMCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTUyLDQ5ICsxNTIsNDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfSU1NUl9TSVpFCQkoKHVpbnQpKDY0ICogMTAyNCkpCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVJfU0laRQkJKCh1aW50KSg2NCAqIDEwMjQpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICogQWxzbyBOT1RFIHRoYXQgaXQgZG9lc24ndCBtZWFuIFNEUkFNIC0gaXQgbWVhbnMgTUVNT1JZLgogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAyODAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkoKHVpbnQpKDggKiAxMDI0ICogMTAyNCkpCS8qIG1heCA4TWJ5dGUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgwMjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCSgodWludCkoOCAqIDEwMjQgKiAxMDI0KSkJLyogbWF4IDhNYnl0ZSAqLwogI2lmIDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgxMDAwMAkvKiBPZmZzZXQgb2YgRW52aXJvbm1lbnQgU2VjdG9yCQkqLwpAQCAtMjA1LDkgKzIwNSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIxNywxMCArMjE3LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMjgsMjMgKzIyOCwyMyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMTApCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMTApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCTE1LTMwCkBAIC0yNTIsOSArMjUyLDkgQEAKICAqIFJlc2V0IFBMTCBsb2NrIHN0YXR1cyBzdGlja3kgYml0LCB0aW1lciBleHBpcmVkIHN0YXR1cyBiaXQgYW5kIHRpbWVyICAqCiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdCAtIGxlYXZlIFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgdW5jaGFuZ2VkICEKICAqCi0gKiAjZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyAqICNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QgfCBDRkdfUExQUkNSX01GKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUIHwgQ09ORklHX1NZU19QTFBSQ1JfTUYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0yNjMsNyArMjYzLDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSICAgICAgIChTQ0NSX1RCUyAgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUiAgICAgICAoU0NDUl9UQlMgICAgIHwgXAogCQkJCVNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJCVNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJCVNDQ1JfREZBTENEMDApCkBAIC0yNzMsNyArMjczLDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJMAogCiAvKiBCZWNhdXNlIG9mIHRoZSB3YXkgdGhlIDg2MCBzdGFydHMgdXAgYW5kIGFzc2lnbnMgQ1MwIHRoZQogKiBlbnRpcmUgYWRkcmVzcyBzcGFjZSwgd2UgaGF2ZSB0byBzZXQgdGhlIG1lbW9yeSBjb250cm9sbGVyCkBAIC0yOTEsMjIgKzI5MSwyMiBAQAogCiAjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQkweDAyODAwMDAwCS8qIEZMQVNIIGJhbmsgIzAJCSovCiAKLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzawkJKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAoNTEyS2IpICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAoNTEyS2IpICovCiAKIC8qIEZMQVNIIHRpbWluZyAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWMiB8IE9SX0JJIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IFwKIAkJCQlPUl9TQ1lfMTVfQ0xLIHwgT1JfVFJMWCApCiAKLS8qI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQkJLyogMHhmZmY4MGZmNCAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WIHwgQlJfUFNfOCkJLyogMHgwMjgwMDQwMSAqLworLyojZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCQkvKiAweGZmZjgwZmY0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WIHwgQlJfUFNfOCkJLyogMHgwMjgwMDQwMSAqLwogCiAvKgogICogQlIxLzIgYW5kIE9SMS8yIChTRFJBTSkKICovCiAKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiA2NE1iIGJhbmsgKi8KICNkZWZpbmUgU0RSQU1fQkFTRTFfUFJFTElNCTB4MDAwMDAwMDAJLyogRmlyc3QgYmFuayAqLwpAQCAtMzE3LDE3ICszMTcsMTcgQEAKICAqLwogCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTUJNUl9QVEIJCTB4NWQJCS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IegkqLworI2RlZmluZSBDT05GSUdfU1lTX01CTVJfUFRCCQkweDVkCQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KIAogLyogcmVmcmVzaCByYXRlIDE1LjYgdXMgKD0gNjQgbXMgLyA0SyA9IDYyLjQgLyBxdWFkIGJ1cnN0cykgZm9yIDw9IDEyOCBNQml0CSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsgICAgICAgIE1QVFBSX1BUUF9ESVYzMgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsgICAgICAgIE1QVFBSX1BUUF9ESVYzMgogLyoKICAqIE1CTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01CTVJfOENPTAkoKENGR19NQk1SX1BUQiA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX01CTVJfOENPTAkoKENPTkZJR19TWVNfTUJNUl9QVEIgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRSB8IFwKIAkJCU1BTVJfRzBDTEFfQTExIHwgTUFNUl9STEZBXzFYIHwgTUFNUl9XTEZBXzFYIFwKIAkJCXwgTUFNUl9UTEZBXzRYKQkvKiAweDVkODAyMTE0ICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9HVEguaCBiL2luY2x1ZGUvY29uZmlncy9HVEguaAppbmRleCAxOGJiYmMzLi5jMmNmODUyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvR1RILmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0dUSC5oCkBAIC04OCwxMSArODgsMTEgQEAKICNpZiAxCiAjZGVmaW5lCUNPTkZJR19TQ0MxX0VORVQJMQkvKiB1c2UgU0NDMSBldGhlcm5ldCAqLwogI3VuZGVmCUNPTkZJR19GRUNfRU5FVAkJCS8qIGRpc2FibGUgRkVDIGV0aGVybmV0ICAqLwotI2RlZmluZSBDRkdfRElTQ09WRVJfUEhZCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjZWxzZQogI3VuZGVmCUNPTkZJR19TQ0MxX0VORVQJCS8qIGRpc2FibGUgU0NDMSBldGhlcm5ldCAqLwogI2RlZmluZQlDT05GSUdfRkVDX0VORVQJCTEJLyogdXNlIEZFQyBldGhlcm5ldCAgKi8KLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfU0NDMV9FTkVUKSAmJiBkZWZpbmVkKENPTkZJR19GRUNfRU5FVCkKICNlcnJvciBCb3RoIENPTkZJR19TQ0MxX0VORVQgYW5kIENPTkZJR19GRUNfRU5FVCBjb25maWd1cmVkCkBAIC0xMjIsMjUgKzEyMiwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4iCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI9PiIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMAkvKiAxIC4uLiA0IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMAkvKiAxIC4uLiA0IE1CIGluIERSQU0JKi8KIAogLyogRGVmYXVsdCBsb2NhdGlvbiB0byBsb2FkIGRhdGEgZnJvbSBuZXQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNTAsNDkgKzE1MCw0OSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfSU1NUl9TSVpFCQkoKHVpbnQpKDY0ICogMTAyNCkpCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SX1NJWkUJCSgodWludCkoNjQgKiAxMDI0KSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ODAwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKCh1aW50KSg4ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggOE1ieXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJKCh1aW50KSg4ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggOE1ieXRlICovCiAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvcgkqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIFRFWFRfQkFTRQogCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSCAxCiAjdW5kZWYgQ09ORklHX0VOVl9JU19JTl9FRVBST00KQEAgLTIwNCw5ICsyMDQsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMTYsMTAgKzIxNiwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjI3LDE0ICsyMjcsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKQEAgLTI0MiwyMiArMjQyLDIyIEBACiAgKi8KIAogLypGSVhNRSBkb250IHVzZSBmb3Igbm93ICovCi0vKiNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkgKi8KLS8qI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1JURikgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19SVEYpICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIC8qIFBJVEUgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkxNS0zMAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogc2V0IHRoZSBQTEwsIHRoZSBsb3ctcG93ZXIgbW9kZXMgYW5kIHRoZSByZXNldCBjb250cm9sICgxNS0yOSkKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCSgoKE1QQzhYWF9GQUNULTEpIDw8IFBMUFJDUl9NRl9TSElGVCkgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoKE1QQzhYWF9GQUNULTEpIDw8IFBMUFJDUl9NRl9TSElGVCkgfAlcCiAJCQkJUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjksMTQgKzI2OSwxNCBAQAogCiAvKiBGSVhNRSBjaGVjayB2YWx1ZXMgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1RCU3xTQ0NSX1JUU0VMfFNDQ1JfQ09NMDB8U0NDUl9ERlNZTkMwMHxTQ0NSX0RGQlJHMDB8U0NDUl9ERk5MMDAwfFNDQ1JfREZOSDAwMHxTQ0NSX0RGTENEMDAwfFNDQ1JfREZBTENEMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlN8U0NDUl9SVFNFTHxTQ0NSX0NPTTAwfFNDQ1JfREZTWU5DMDB8U0NDUl9ERkJSRzAwfFNDQ1JfREZOTDAwMHxTQ0NSX0RGTkgwMDB8U0NDUl9ERkxDRDAwMHxTQ0NSX0RGQUxDRDAwKQogCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJMAogCiAvKiBCZWNhdXNlIG9mIHRoZSB3YXkgdGhlIDg2MCBzdGFydHMgdXAgYW5kIGFzc2lnbnMgQ1MwIHRoZQogKiBlbnRpcmUgYWRkcmVzcyBzcGFjZSwgd2UgaGF2ZSB0byBzZXQgdGhlIG1lbW9yeSBjb250cm9sbGVyCkBAIC0yOTMsMjIgKzI5MywyMiBAQAogICovCiAvKiB0aGUgb3RoZXIgQ1M6cyBhcmUgZGV0ZXJtaW5lZCBieSBsb29raW5nIGF0IHBhcmFtZXRlcnMgaW4gQkNTUnggKi8KIAotI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UJLyogRkxBU0ggYmFuayAjMAkqLworI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJKi8KIAotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4RkY4MDAwMDAJLyogNCBNQiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweEZGODAwMDAwCS8qIDQgTUIgT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RkY4MDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKICNkZWZpbmUgRlBHQV8yX0JBU0UgMHg5MDAwMDAwMAogI2RlZmluZSBGUEdBXzNfQkFTRSAweDk4MDAwMDAwCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMTAsIFRSTFggPSAxLCBDU05UID0gMSwgU0NZID0gMywgRUhUUiA9IDAJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV8zX0NMSyB8IE9SX1RSTFgpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzNfQ0xLIHwgT1JfVFJMWCkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCiAKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpICAgLyogMSBNYnl0ZSB1bnRpbCBkZXRlY3RlZCBhbmQgb25seSAxIE1ieXRlIGlzIG5lZWRlZCovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgfCBCUl9QU18xNiApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkgICAvKiAxIE1ieXRlIHVudGlsIGRldGVjdGVkIGFuZCBvbmx5IDEgTWJ5dGUgaXMgbmVlZGVkKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgfCBCUl9QU18xNiApCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtMzQxLDMxICszNDEsMzEgQEAKICNkZWZpbmUgQ09ORklHX1BDTUNJQV9TTE9UX0EgMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogI2RlZmluZSBDT05GSUdfSURFXzh4eF9QQ0NBUkQgICAgICAgMSAgICAgICAvKiBVc2UgSURFIHdpdGggUEMgQ2FyZCBBZGFwdGVyICovCiAjdW5kZWYgIENPTkZJR19JREVfOHh4X0RJUkVDVCAgICAgICAgICAgICAgIC8qIERpcmVjdCBJREUgICAgbm90IHN1cHBvcnRlZCAgKi8KICN1bmRlZiAgQ09ORklHX0lERV9MRUQgICAgICAgICAgICAgICAgICAvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQgICovCiAjdW5kZWYgIENPTkZJR19JREVfUkVTRVQgICAgICAgICAgICAgICAgLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkICAqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTICAgICAgICAgIDEgICAgICAgLyogbWF4LiAxIElERSBidXMgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRSAgICAgICAxICAgICAgIC8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cyAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTICAgICAgICAgIDEgICAgICAgLyogbWF4LiAxIElERSBidXMgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UgICAgICAgMSAgICAgICAvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVCAgICAgMHgwMDAwCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSICAgICAgIENGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQgICAgIDB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIgICAgICAgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08gICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUICAgICAoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCAgICAgKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUICAgICAgKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQgICAgICAoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUICAgICAgMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQgICAgICAweDAxMDAKIAogI2RlZmluZSBDT05GSUdfOHh4X0dDTEtfRlJFUSAgIE1QQzhYWF9IWiAgICAgICAvKiBGb3JjZSBpdCAtIGRvbnQgbWVhc3VyZSBpdCAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvSEg0MDUuaCBiL2luY2x1ZGUvY29uZmlncy9ISDQwNS5oCmluZGV4IDUyYmFhZTAuLjFlN2NjMTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ISDQwNS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ISDQwNS5oCkBAIC02Miw3ICs2Miw3IEBACiAJInBjaWNvbmZpZ2hvc3Q9MVwwIgkJCQkJCVwKIAkiIgogCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjdW5kZWYgIENPTkZJR19IQVNfRVRIMQpAQCAtOTMsMTAgKzkzLDEwIEBACiAjZGVmaW5lIENPTkZJR19DT05TT0xFX0VYVFJBX0lORk8KICNkZWZpbmUgQ09ORklHX1ZJREVPX1NXX0NVUlNPUgogI2RlZmluZSBDT05GSUdfU1BMQVNIX1NDUkVFTgotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgogI2RlZmluZSBDT05GSUdfU1BMQVNIX1NDUkVFTgogI2RlZmluZSBDT05GSUdfVklERU9fQk1QX0daSVAJCS8qIGd6aXAgY29tcHJlc3NlZCBibXAgaW1hZ2VzCSovCi0jZGVmaW5lIENGR19WSURFT19MT0dPX01BWF9TSVpFCSgyIDw8IDIwKQkvKiBmb3IgZGVjb21wcmVzc2VkIGltZyAqLworI2RlZmluZSBDT05GSUdfU1lTX1ZJREVPX0xPR09fTUFYX1NJWkUJKDIgPDwgMjApCS8qIGZvciBkZWNvbXByZXNzZWQgaW1nICovCiAKICNlbmRpZiAvKiBDT05GSUdfVklERU8gKi8KIApAQCAtMTQ5LDc2ICsxNDksNzYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWICAgICAgMSAgICAgICAvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYgICAgICAxICAgICAgIC8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UgICAgICAgKi8KIAotI3VuZGVmICBDRkdfQ09OU09MRV9JTkZPX1FVSUVUICAgICAgICAgIC8qIHByaW50IGNvbnNvbGUgQCBzdGFydHVwCSovCisjdW5kZWYgIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUICAgICAgICAgIC8qIHByaW50IGNvbnNvbGUgQCBzdGFydHVwCSovCiAKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUJMSAgICAgICAvKiBhZGQgYXV0b2NvbXBsZXRpb24gc3VwcG9ydCAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmICBDRkdfRVhUX1NFUklBTF9DTE9DSyAgICAgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkgICAvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OSAgICovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQgICAgICAgNjkxMjAwCisjdW5kZWYgIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSyAgICAgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5ICAgLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRCAgICAgICA2OTEyMDAKICNkZWZpbmUgQ09ORklHX1VBUlQxX0NPTlNPTEUgICAgICAgICAgICAvKiBkZWZpbmUgZm9yIHVhcnQxIGFzIGNvbnNvbGUgICovCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICAgICAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICAgICAgXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUJMSAgICAgICAvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYgICAgICAvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNiAgICAgIC8qIHVzZSAxNiByeCBidWZmZXIgb24gNDA1IGVtYWMgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMzgKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NjgKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTkFORC1GTEFTSCBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7IENGR19OQU5EX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXsgQ09ORklHX1NZU19OQU5EX0JBU0UgfQogI2RlZmluZSBOQU5EX01BWF9DSElQUyAgICAgICAgICAxCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMSAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEgICAgICAgICAvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLwogI2RlZmluZSBOQU5EX0JJR19ERUxBWV9VUwkyNQogCi0jZGVmaW5lIENGR19OQU5EX0NFICAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDEpICAgLyogb3VyIENFIGlzIEdQSU8xICAqLwotI2RlZmluZSBDRkdfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQ0xFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMikgICAvKiBvdXIgQ0xFIGlzIEdQSU8yICovCi0jZGVmaW5lIENGR19OQU5EX0FMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDMpICAgLyogb3VyIEFMRSBpcyBHUElPMyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0UgICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMSkgICAvKiBvdXIgQ0UgaXMgR1BJTzEgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDIpICAgLyogb3VyIENMRSBpcyBHUElPMiAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUxFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMykgICAvKiBvdXIgQUxFIGlzIEdQSU8zICovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfU0tJUF9CQURfRE9UX0kgMSAgICAgICAvKiAiLmkiIHJlYWQgc2tpcHMgYmFkIGJsb2NrcyAgICovCi0jZGVmaW5lIENGR19OQU5EX1FVSUVUICAgICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NLSVBfQkFEX0RPVF9JIDEgICAgICAgLyogIi5pIiByZWFkIHNraXBzIGJhZCBibG9ja3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUVVJRVQgICAgICAgICAgMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTIzNywxNSArMjM3LDE1IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9DT05GSUdfSE9TVF9CUklER0UgMSAvKiBkb24ndCBza2lwIGhvc3QgYnJpZGdlIGNvbmZpZyovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFICAvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNSAgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUgICAgICAqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIDB4MDAwMDAwMDAgICAgICAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TICAweGZjMDAwMDAxICAgICAgLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEgIDB4ZmZjMDAwMDAgICAgICAvKiBwb2ludCB0byBmbGFzaCAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweGZmYzAwMDAxICAgICAgLyogNE1CLCBlbmFibGUgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRSAgLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmggICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1ICAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBICAweDAwMDAwMDAwICAgICAgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMgIDB4ZmMwMDAwMDEgICAgICAvKiA2NE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBICAweGZmYzAwMDAwICAgICAgLyogcG9pbnQgdG8gZmxhc2ggICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMgIDB4ZmZjMDAwMDEgICAgICAvKiA0TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZgpAQCAtMjU1LDY2ICsyNTUsNjYgQEAKICN1bmRlZiAgQ09ORklHX0lERV9MRUQgICAgICAgICAgICAgICAgICAvKiBubyBsZWQgZm9yIGlkZSBzdXBwb3J0ZWQgICAgICovCiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJMQkvKiByZXNldCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lCUNGR19JREVfTUFYQlVTCSAgICAgICAgMQkJLyogbWF4LiAxIElERSBidXNzZXMJKi8KLSNkZWZpbmUJQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19JREVfTUFYQlVTCSAgICAgICAgMQkJLyogbWF4LiAxIElERSBidXNzZXMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19JREVfTUFYREVWSUNFCShDT05GSUdfU1lTX0lERV9NQVhCVVMqMSkgLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLwogCi0jZGVmaW5lCUNGR19BVEFfQkFTRV9BRERSCTB4RjAxMDAwMDAKLSNkZWZpbmUJQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4RjAxMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lCUNGR19BVEFfUkVHX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLworI2RlZmluZQlDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHhGRkMwMDAwMAkvKiBGTEFTSCBiYW5rICMwCSovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFICAgICB1bnNpZ25lZCBzaG9ydCAgLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkgICAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAgICAgICAgICAweDU1NTUgIC8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEgICAgICAgICAweDJBQUEgIC8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAgICAgdW5zaWduZWQgc2hvcnQgIC8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMCAgICAgICAgIDB4NTU1NSAgLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEgICAgICAgICAweDJBQUEgIC8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzICAqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwICAgICAgICAgMHgwMDAwICAvKiAwIGlzIHN0YW5kYXJkICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxICAgICAgICAgMHgwMDAxICAvKiAxIGlzIHN0YW5kYXJkICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyICAgICAgICAgMHgwMDAyICAvKiAyIGlzIHN0YW5kYXJkICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMCAgICAgICAgIDB4MDAwMCAgLyogMCBpcyBzdGFuZGFyZCAgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEgICAgICAgICAweDAwMDEgIC8qIDEgaXMgc3RhbmRhcmQgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyICAgICAgICAgMHgwMDAyICAvKiAyIGlzIHN0YW5kYXJkICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTyAgICAgICAgICAgIC8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8gICAgICAgICAgICAvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmIDAgLyogdGVzdC1vbmx5ICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LICAgIDAgICAgICAgICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUyAgICAgMSAgICAgICAgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyBVLUJvb3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LICAgIDAgICAgICAgICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MgICAgIDEgICAgICAgICAgIC8qICEgc2Vjb25kIGJhbmsgY29udGFpbnMgVS1Cb290ICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGODAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg0IDw8IDIwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg0IDw8IDIwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYygpCSovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IEZMQVNIX0JBU0UwX1BSRUxJTSkKLSMgZGVmaW5lIENGR19SQU1CT09UCQkxCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgRkxBU0hfQkFTRTBfUFJFTElNKQorIyBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZWxzZQotIyB1bmRlZiBDRkdfUkFNQk9PVAorIyB1bmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMjUsNDEgKzMyNSw0MSBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUgICAgICAgICAgICAweDcwMCAgIC8qIDIwNDggYnl0ZXMgbWF5IGJlIHVzZWQgZm9yIGVudiB2YXJzKi8KIAkJCQkgICAvKiB0b3RhbCBzaXplIG9mIGEgQ0FUMjRXQzE2IGlzIDIwNDggYnl0ZXMgKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4RjQwODAwMDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMHg4MDAwCQkgICAgICAgIC8qIE5WUkFNIHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4RjQwODAwMDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCTB4ODAwMAkJICAgICAgICAvKiBOVlJBTSBzaXplCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KICNpZiAwIC8qIHRlc3Qtb25seSAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCiAjZWxzZQotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjRXQzA4CQkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1dSRU4gICAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI0V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fV1JFTiAgICAgICAgIDEKIAogI2lmIDEgLyogdGVzdC1vbmx5ICovCiAvKiBDQVQyNFdDMDgvMTYuLi4gKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIgICAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QJNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCiAjZWxzZQogLyogQ0FUMjRXQzMyLzY0Li4uICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTIJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTIJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiICAgICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA1CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMzIgaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDUJLyogVGhlIENhdGFseXN0IENBVDI0V0MzMiBoYXMJKi8KIAkJCQkJLyogMzIgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0CTUgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cApAQCAtMzY3LDM3ICszNjcsMzcgQEAKIAogI2RlZmluZSBDQU5fQkEgICAgICAgICAgMHhGMDAwMDAwMCAgICAgICAgICAvKiBDQU4gQmFzZSBBZGRyZXNzICAgICAgICAgICAgICAgICAqLwogI2RlZmluZSBMQ0RfQkEgICAgICAgICAgMHhGMTAwMDAwMCAgICAgICAgICAvKiBFcHNvbiBMQ0QgQmFzZSBBZGRyZXNzICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFICAgMHhGNDAwMDAwMCAgICAgICAgICAvKiBOQU5EIEZMQVNIIEJhc2UgQWRkcmVzcyAgICAgICAgICAqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRSAgMHhGNDA4MDAwMCAgICAgICAgICAvKiBOVlJBTSBCYXNlIEFkZHJlc3MgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRSAgIDB4RjQwMDAwMDAgICAgICAgICAgLyogTkFORCBGTEFTSCBCYXNlIEFkZHJlc3MgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFICAweEY0MDgwMDAwICAgICAgICAgIC8qIE5WUkFNIEJhc2UgQWRkcmVzcyAgICAgICAgICAgICAgICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCwgTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbiAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUCAgICAgICAgICAgMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSICAgICAgICAgICAweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUCAgICAgICAgICAgMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUiAgICAgICAgICAgMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoRmxhc2ggQmFuayAxLCBOQU5ELUZMQVNIICYgTlZSQU0pIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQICAgICAgICAgICAweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IgICAgICAgICAgIDB4RjQwMTgwMDAgIC8qIEJBUz0weEY0MCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQICAgICAgICAgICAweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSICAgICAgICAgICAweEY0MDE4MDAwICAvKiBCQVM9MHhGNDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICAqLwogCiAvKiBNZW1vcnkgQmFuayAyICg4IEJpdCBQZXJpcGhlcmFsOiBDQU4sIFVBUlQsIFJUQykgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAgICAgICAgICAgIDB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSICAgICAgICAgICAweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUCAgICAgICAgICAgMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSICAgICAgICAgICAweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICAqLwogCiAvKiBNZW1vcnkgQmFuayAzICgxNiBCaXQgUGVyaXBoZXJhbDogRlBHQSBpbnRlcm5hbCwgZGlnLiBJTykgaW5pdGlhbGl6YXRpb24gICAgICovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAgICAgICAgICAgIDB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0NSICAgICAgICAgICAweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUCAgICAgICAgICAgMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSICAgICAgICAgICAweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayA0IChFcHNvbiBMQ0QpIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAgICAweDAzODA1MzgwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0wICovCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IgICBMQ0RfQkEgfCAweDdBMDAwICAgIC8qIEJBUz0weEYxMCxCUz04TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQICAgMHgwMzgwNTM4MCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUiAgIExDRF9CQSB8IDB4N0EwMDAgICAgLyogQkFTPTB4RjEwLEJTPThNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTENEIFNldHVwCiAgKi8KIAotI2RlZmluZSBDRkdfTENEX0JJR19NRU0gICAgICAgICAweEYxMjAwMDAwICAvKiBFcHNvbiBTMUQxMzgwNiBNZW0gQmFzZSBBZGRyZXNzICAqLwotI2RlZmluZSBDRkdfTENEX0JJR19SRUcgICAgICAgICAweEYxMDAwMDAwICAvKiBFcHNvbiBTMUQxMzgwNiBSZWcgQmFzZSBBZGRyZXNzICAqLwotI2RlZmluZSBDRkdfTENEX1NNQUxMX01FTSAgICAgICAweEYxNDAwMDAwICAvKiBFcHNvbiBTMUQxMzcwNCBNZW0gQmFzZSBBZGRyZXNzICAqLwotI2RlZmluZSBDRkdfTENEX1NNQUxMX1JFRyAgICAgICAweEYxNDBGRkUwICAvKiBFcHNvbiBTMUQxMzcwNCBSZWcgQmFzZSBBZGRyZXNzICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xDRF9CSUdfTUVNICAgICAgICAgMHhGMTIwMDAwMCAgLyogRXBzb24gUzFEMTM4MDYgTWVtIEJhc2UgQWRkcmVzcyAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQ0RfQklHX1JFRyAgICAgICAgIDB4RjEwMDAwMDAgIC8qIEVwc29uIFMxRDEzODA2IFJlZyBCYXNlIEFkZHJlc3MgICovCisjZGVmaW5lIENPTkZJR19TWVNfTENEX1NNQUxMX01FTSAgICAgICAweEYxNDAwMDAwICAvKiBFcHNvbiBTMUQxMzcwNCBNZW0gQmFzZSBBZGRyZXNzICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xDRF9TTUFMTF9SRUcgICAgICAgMHhGMTQwRkZFMCAgLyogRXBzb24gUzFEMTM3MDQgUmVnIEJhc2UgQWRkcmVzcyAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVW5pdmVyc2FsIEludGVycnVwdCBDb250cm9sbGVyIChVSUMpIFNldHVwCkBAIC00MDYsMzAgKzQwNiwzMCBAQAogLyoKICAqIGRlZmluZSBVSUNfRVhUMCAuLi4gVUlDX0VYVDYgaWYgZXh0ZXJuYWwgaW50ZXJydXB0IGlzIGFjdGl2ZSBoaWdoCiAgKi8KLSNkZWZpbmUgQ0ZHX1VJQzBfUE9MQVJJVFkgICAgICAgKDB4RkZGRkZGODAgfCBVSUNfTUFTSyhWRUNOVU1fRUlSUTYpKQorI2RlZmluZSBDT05GSUdfU1lTX1VJQzBfUE9MQVJJVFkgICAgICAgKDB4RkZGRkZGODAgfCBVSUNfTUFTSyhWRUNOVU1fRUlSUTYpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGUEdBIHN0dWZmCiAgKi8KIAotI2RlZmluZSBDRkdfRlBHQV9CQVNFX0FERFIgMHhGMDEwMDEwMCAgICAgICAvKiBGUEdBIGludGVybmFsIEJhc2UgQWRkcmVzcyAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSIDB4RjAxMDAxMDAgICAgICAgLyogRlBHQSBpbnRlcm5hbCBCYXNlIEFkZHJlc3MgICAgICAgKi8KIAogLyogRlBHQSBpbnRlcm5hbCByZWdzICovCi0jZGVmaW5lIENGR19GUEdBX0NUUkwgICAgICAgICAgIDB4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMICAgICAgICAgICAweDAwMAogCiAvKiBGUEdBIENvbnRyb2wgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX0NUUkxfUkVWMCAgICAgIDB4MDAwMQotI2RlZmluZSBDRkdfRlBHQV9DVFJMX1JFVjEgICAgICAweDAwMDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfQ1RSTF9WR0EwX0JMICAgMHgwMDA0Ci0jZGVmaW5lIENGR19GUEdBX0NUUkxfVkdBMF9CTF9NT0RFIDB4MDAwOAotI2RlZmluZSBDRkdfRlBHQV9DVFJMX0NGX1JFU0VUICAweDAwNDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfQ1RSTF9QUzJfUFdSICAgMHgwMDgwCi0jZGVmaW5lIENGR19GUEdBX0NUUkxfQ0ZfUFdSTiAgIDB4MDEwMCAgICAgIC8qIGxvdyBhY3RpdmUgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0NUUkxfQ0ZfQlVTX0VOIDB4MDIwMAotI2RlZmluZSBDRkdfRlBHQV9DVFJMX0xDRF9DTEsgICAweDcwMDAgICAgICAvKiBNYXNrIGZvciBsY2QgY2xvY2sgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9DVFJMX09XX0VOQUJMRSAweDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkxfUkVWMCAgICAgIDB4MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9SRVYxICAgICAgMHgwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX1ZHQTBfQkwgICAweDAwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkxfVkdBMF9CTF9NT0RFIDB4MDAwOAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9DRl9SRVNFVCAgMHgwMDQwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX1BTMl9QV1IgICAweDAwODAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkxfQ0ZfUFdSTiAgIDB4MDEwMCAgICAgIC8qIGxvdyBhY3RpdmUgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX0NGX0JVU19FTiAweDAyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkxfTENEX0NMSyAgIDB4NzAwMCAgICAgIC8qIE1hc2sgZm9yIGxjZCBjbG9jayAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX09XX0VOQUJMRSAweDgwMDAKIAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfQ0ZfREVURUNUIDB4ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0NGX0RFVEVDVCAweDgwMDAKIAogI2RlZmluZSBMQ0RfQ0xLX09GRiAgICAgICAgICAgICAweDAwMDAgICAgICAvKiBPZmYgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogI2RlZmluZSBMQ0RfQ0xLXzAyMDgzICAgICAgICAgICAweDEwMDAgICAgICAvKiAyLjA4MyBNSHogICAgICAgICAgICAgICAgICAgICAqLwpAQCAtNDQwLDMxICs0NDAsMzEgQEAKICNkZWZpbmUgTENEX0NMS18xMjUwMCAgICAgICAgICAgMHg2MDAwICAgICAgLyogMTIuNTAgTUh6ICAgICAgICAgICAgICAgICAgICAgKi8KICNkZWZpbmUgTENEX0NMS18yNTAwMCAgICAgICAgICAgMHg3MDAwICAgICAgLyogMjUuMDAgTUh6ICAgICAgICAgICAgICAgICAgICAgKi8KIAotI2RlZmluZSBDRkdfRlBHQV9TUEFSVEFOMiAgICAgICAxICAgICAgICAgICAvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdyAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9NQVhfU0laRSAgICAgICAxMjgqMTAyNCAgICAvKiAxMjhrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlM1MEUqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIgICAgICAgMSAgICAgICAgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFICAgICAgIDEyOCoxMDI0ICAgIC8qIDEyOGtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzUwRSovCiAKIC8qIEZQR0EgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRlBHQV9QUkcgICAgICAgICAgICAweDA0MDAwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsgICAgICAgICAgICAweDAyMDAwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9EQVRBICAgICAgICAgICAweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9JTklUICAgICAgICAgICAweDAwMDEwMDAwICAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9ET05FICAgICAgICAgICAweDAwMDA4MDAwICAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJHICAgICAgICAgICAgMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSyAgICAgICAgICAgIDB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBICAgICAgICAgICAweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVCAgICAgICAgICAgMHgwMDAxMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUgICAgICAgICAgIDB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNICAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00gICAgICAgIDEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQgICAgICBDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBHUElPIHNldHVwIChQUEM0MDVFUCBzcGVjaWZpYykKQEAgLTQ3OCwxOSArNDc4LDE5IEBACiAgKiBHUElPMFsyOC0yOV0gLSBVQVJUMSBkYXRhIHNpZ25hbCBpbnB1dC9vdXRwdXQKICAqIEdQSU8wWzMwLTMxXSAtIEVNQUMwIGFuZCBFTUFDMSByZWplY3QgcGFja2V0IGlucHV0cwogICovCi0jZGVmaW5lIENGR19HUElPMF9PU1JICQkweDQwMDAwNTUwCi0jZGVmaW5lIENGR19HUElPMF9PU1JMCQkweDAwMDAwMTEwCi0jZGVmaW5lIENGR19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUwJCTB4MTU1NTU0NDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkgJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RDUgkJMHhGN0ZFMDAxNworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkgJCTB4NDAwMDA1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JMCQkweDAwMDAwMTEwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxTAkJMHgxNTU1NTQ0MAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkgJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVENSCQkweEY3RkUwMDE3CiAKLSNkZWZpbmUgQ0ZHX0xDRF9FTkRJQU4JCSgweDgwMDAwMDAwID4+IDcpCi0jZGVmaW5lIENGR19FRVBST01fV1AJCSgweDgwMDAwMDAwID4+IDgpICAgLyogR1BJTzggKi8KLSNkZWZpbmUgQ0ZHX1RPVUNIX1JTVAkJKDB4ODAwMDAwMDAgPj4gOSkgICAvKiBHUElPOSAqLwotI2RlZmluZSBDRkdfTENEMF9SU1QJCSgweDgwMDAwMDAwID4+IDMwKQotI2RlZmluZSBDRkdfTENEMV9SU1QJCSgweDgwMDAwMDAwID4+IDMxKQorI2RlZmluZSBDT05GSUdfU1lTX0xDRF9FTkRJQU4JCSgweDgwMDAwMDAwID4+IDcpCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1dQCQkoMHg4MDAwMDAwMCA+PiA4KSAgIC8qIEdQSU84ICovCisjZGVmaW5lIENPTkZJR19TWVNfVE9VQ0hfUlNUCQkoMHg4MDAwMDAwMCA+PiA5KSAgIC8qIEdQSU85ICovCisjZGVmaW5lIENPTkZJR19TWVNfTENEMF9SU1QJCSgweDgwMDAwMDAwID4+IDMwKQorI2RlZmluZSBDT05GSUdfU1lTX0xDRDFfUlNUCQkoMHg4MDAwMDAwMCA+PiAzMSkKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvSElEREVOX0RSQUdPTi5oIGIvaW5jbHVkZS9jb25maWdzL0hJRERFTl9EUkFHT04uaAppbmRleCBjOGMwNDA5Li5mNjc3N2I5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvSElEREVOX0RSQUdPTi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ISURERU5fRFJBR09OLmgKQEAgLTc3LDE0ICs3NywxNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCTEJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJMQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJIHN0dWZmCkBAIC05NSw3ICs5NSw3IEBACiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkJCS8qIE11bHRpIGV0aGVybmV0IGNhcmRzIHN1cHBvcnQgKi8KIAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4CQkvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgJCS8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMAkqLwogCiAjZGVmaW5lIFBDSV9FTkVUMF9JT0FERFIJMHg4MDAwMDAwMAogI2RlZmluZSBQQ0lfRU5FVDBfTUVNQUREUgkweDgwMDAwMDAwCkBAIC0xMTQsNTMgKzExNCw1MyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9SQU1fU0laRQkweDAyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRQkweDAyMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAogCiAjaWYgZGVmaW5lZCAoVVNFX0RJTkszMikKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDAwMDMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgwMDA5MDAwMAotI2RlZmluZSBDRkdfUkFNQk9PVAkJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NiAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweDAwMDkwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAjZWxzZQotI3VuZGVmCUNGR19SQU1CT09UCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI3VuZGVmCUNPTkZJR19TWVNfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDAwMDMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAgIDB4MTAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgICAweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZFMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCSgyICogMTAyNCAqIDEwMjQpCS8qIFVuaXR5IGhhcyBvbmJvYXJkIDFNQnl0ZSBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZFMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoMiAqIDEwMjQgKiAxMDI0KQkvKiBVbml0eSBoYXMgb25ib2FyZCAxTUJ5dGUgZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDAwMDA0MDAwCS8qIE9mZnNldCBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDAwMDAyMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KIAotI2RlZmluZSBDRkdfRVVNQl9BRERSCQkweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVVNQl9BRERSCQkweEZDMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lTQV9NRU0JCTB4RkQwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lTQV9JTwkJMHhGRTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9NRU0JCTB4RkQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU8JCTB4RkUwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfUkFOR0VfQkFTRQkweEZGRTAwMDAwCS8qIGZsYXNoIG1lbW9yeSBhZGRyZXNzIHJhbmdlCSovCi0jZGVmaW5lIENGR19GTEFTSF9SQU5HRV9TSVpFCTB4MDAyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SQU5HRV9CQVNFCTB4RkZFMDAwMDAJLyogZmxhc2ggbWVtb3J5IGFkZHJlc3MgcmFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SQU5HRV9TSVpFCTB4MDAyMDAwMDAKICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4RkZFMDAwMDAJLyogcHJvY2Vzc29yIGJvYXJkIGZsYXNoCSovCiAKIC8qCkBAIC0xNzIsOCArMTcyLDggQEAKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJCS8qIFRvIGVuYWJsZSBJMkMgc3VwcG9ydAkqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogI2lmZGVmIENPTkZJR19TT0ZUX0kyQwogI2Vycm9yICJTb2Z0IEkyQyBpcyBub3QgY29uZmlndXJlZCBwcm9wZXJseS4gIFBsZWFzZSByZXZpZXchIgpAQCAtMTg4LDEzICsxODgsMTMgQEAKICNkZWZpbmUgSTJDX0RFTEFZCQl1ZGVsYXkoNSkJLyogMS80IEkyQyBjbG9jayBkdXJhdGlvbiAqLwogI2VuZGlmIC8qIENPTkZJR19TT0ZUX0kyQyAqLwogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1NwkJLyogRUVQUk9NIElTMjRDMDIJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTcJCS8qIEVFUFJPTSBJUzI0QzAyCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9Ci0jZGVmaW5lIENGR19GTEFTSF9CQU5LUwkJeyBGTEFTSF9CQVNFMF9QUkVMSU0gfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LUwkJeyBGTEFTSF9CQVNFMF9QUkVMSU0gfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQpAQCAtMjAyLDEyICsyMDIsMTIgQEAKIAogCiAjZGVmaW5lIENPTkZJR19XSU5CT05EXzgzQzU1MwkxCS8qaGFzIGEgd2luYm9uZCBicmlkZ2UJCQkqLwotI2RlZmluZSBDRkdfVVNFX1dJTkJPTkRfSURFCTAJLyp1c2Ugd2luYm9uZCA4M2M1NTMgaW50ZXJuYWwgSURFIGN0cmxyICovCi0jZGVmaW5lIENGR19XSU5CT05EX0lTQV9DRkdfQUREUiAgICAweDgwMDA1ODAwCS8qcGNpLWlzYSBicmlkZ2UgY29uZmlnIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX1dJTkJPTkRfSURFX0NGR19BRERSICAgIDB4ODAwMDU5MDAJLyppZGUgY29uZmlnIGFkZHIJCSovCisjZGVmaW5lIENPTkZJR19TWVNfVVNFX1dJTkJPTkRfSURFCTAJLyp1c2Ugd2luYm9uZCA4M2M1NTMgaW50ZXJuYWwgSURFIGN0cmxyICovCisjZGVmaW5lIENPTkZJR19TWVNfV0lOQk9ORF9JU0FfQ0ZHX0FERFIgICAgMHg4MDAwNTgwMAkvKnBjaS1pc2EgYnJpZGdlIGNvbmZpZyBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfV0lOQk9ORF9JREVfQ0ZHX0FERFIgICAgMHg4MDAwNTkwMAkvKmlkZSBjb25maWcgYWRkcgkJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMiAgIC8qIG1heC4gMiBJREUgYnVzc2VzCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCShDRkdfSURFX01BWEJVUyoyKSAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMiAgIC8qIG1heC4gMiBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkoQ09ORklHX1NZU19JREVfTUFYQlVTKjIpIC8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMgKi8KIAogLyogVE9ETzogQ2hhbmdlIHRoaXMgdG8gVklBNjg2QSAqLwogCkBAIC0yMTYsNDAgKzIxNiw0MCBAQAogICovCiAjZGVmaW5lIENPTkZJR19OUzg3MzA4CQkJLyogTmF0IFNlbWkgc3VwZXItaW8gY29udHJvbGxlciBvbiBJU0EgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQkFERFJfMTAJMQorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQkFERFJfMTAJMQogCi0jZGVmaW5lIENGR19OUzg3MzA4X0RFVlMJKCBDRkdfTlM4NzMwOF9VQVJUMSAgIHwgXAotCQkJCSAgQ0ZHX05TODczMDhfVUFSVDIgICB8IFwKLQkJCQkgIENGR19OUzg3MzA4X1BPV1JNQU4gfCBcCi0JCQkJICBDRkdfTlM4NzMwOF9SVENfQVBDICkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0RFVlMJKCBDT05GSUdfU1lTX05TODczMDhfVUFSVDEgICB8IFwKKwkJCQkgIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMiAgIHwgXAorCQkJCSAgQ09ORklHX1NZU19OUzg3MzA4X1BPV1JNQU4gfCBcCisJCQkJICBDT05GSUdfU1lTX05TODczMDhfUlRDX0FQQyApCiAKLSN1bmRlZglDRkdfTlM4NzMwOF9QUzJNT0QKKyN1bmRlZglDT05GSUdfU1lTX05TODczMDhfUFMyTU9ECiAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MwX0JBU0UJMHgwMDc2Ci0jZGVmaW5lIENGR19OUzg3MzA4X0NTMF9DT05GCTB4MzAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MxX0JBU0UJMHgwMDc1Ci0jZGVmaW5lIENGR19OUzg3MzA4X0NTMV9DT05GCTB4MzAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MyX0JBU0UJMHgwMDc0Ci0jZGVmaW5lIENGR19OUzg3MzA4X0NTMl9DT05GCTB4MzAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMF9CQVNFCTB4MDA3NgorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MwX0NPTkYJMHgzMAorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MxX0JBU0UJMHgwMDc1CisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzFfQ09ORgkweDMwCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzJfQkFTRQkweDAwNzQKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMl9DT05GCTB4MzAKIAogLyoKICAqIE5TMTY1NTAgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAogCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKIAogI2lmIChDT05GSUdfQ09OU19JTkRFWCA+IDIpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJQ09ORklHX0RSQU1fU1BFRUQqMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlDT05GSUdfRFJBTV9TUEVFRCoxMDAwMDAwCiAjZWxzZQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTE4NDMyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJMTg0MzIwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0lTQV9JTyArIENGR19OUzg3MzA4X1VBUlQxX0JBU0UpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19JU0FfSU8gKyBDRkdfTlM4NzMwOF9VQVJUMl9CQVNFKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00zCShDRkdfRVVNQl9BRERSICsgMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT000CShDRkdfRVVNQl9BRERSICsgMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19JU0FfSU8gKyBDT05GSUdfU1lTX05TODczMDhfVUFSVDFfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfSVNBX0lPICsgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQyX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00zCShDT05GSUdfU1lTX0VVTUJfQUREUiArIDB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTQJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NjAwKQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTI1OSwyNyArMjU5LDI3IEBACiAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUSAgMzMzMzMzMzMJLyogZXh0ZXJuYWwgZnJlcXVlbmN5IHRvIHBsbCAqLwogCi0jZGVmaW5lIENGR19ST01OQUwJCTcJLypyb20vZmxhc2ggbmV4dCBhY2Nlc3MgdGltZQkJKi8KLSNkZWZpbmUgQ0ZHX1JPTUZBTAkJMTEJLypyb20vZmxhc2ggYWNjZXNzIHRpbWUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTAkJNwkvKnJvbS9mbGFzaCBuZXh0IGFjY2VzcyB0aW1lCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTUZBTAkJMTEJLypyb20vZmxhc2ggYWNjZXNzIHRpbWUJCQkqLwogCi0jZGVmaW5lIENGR19SRUZJTlQJNDMwCS8qIG5vIG9mIGNsb2NrIGN5Y2xlcyBiZXR3ZWVuIENCUiByZWZyZXNoIGN5Y2xlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVAk0MzAJLyogbm8gb2YgY2xvY2sgY3ljbGVzIGJldHdlZW4gQ0JSIHJlZnJlc2ggY3ljbGVzICovCiAKIC8qIHRoZSBmb2xsb3dpbmcgYXJlIGZvciBTRFJBTSBvbmx5Ki8KLSNkZWZpbmUgQ0ZHX0JTVE9QUkUJMTIxCS8qIEJ1cnN0IFRvIFByZWNoYXJnZSwgc2V0cyBvcGVuIHBhZ2UgaW50ZXJ2YWwgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQwkJOAkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLwotI2RlZmluZSBDRkdfUkRMQVQJCTQJLyogZGF0YSBsYXRlbmN5IGZyb20gcmVhZCBjb21tYW5kCSovCi0jZGVmaW5lIENGR19QUkVUT0FDVAkJMwkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCQk1CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUT1JXCQkzCS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfQ0FTX0xBVAkzCS8qIFNETU9ERSBDQVMgbGF0ZW5jeQkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CU1RPUFJFCTEyMQkvKiBCdXJzdCBUbyBQcmVjaGFyZ2UsIHNldHMgb3BlbiBwYWdlIGludGVydmFsICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDCQk4CS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkRMQVQJCTQJLyogZGF0YSBsYXRlbmN5IGZyb20gcmVhZCBjb21tYW5kCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJCTMJLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUVE9QUkUJCTUJLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXCQkzCS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQJMwkvKiBTRE1PREUgQ0FTIGxhdGVuY3kJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9XUkFQCQkwCS8qIFNETU9ERSB3cmFwIHR5cGUJCQkqLwogI2lmIDAKLSNkZWZpbmUgQ0ZHX1NETU9ERV9CVVJTVExFTgkyCS8qIE9CU09MRVRFISAgU0RNT0RFIEJ1cnN0IGxlbmd0aCAyPTQsIDM9OAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4JMgkvKiBPQlNPTEVURSEgIFNETU9ERSBCdXJzdCBsZW5ndGggMj00LCAzPTgJCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUkVHSVNURVJEX1RZUEVfQlVGRkVSICAgMQotI2RlZmluZSBDRkdfRVhUUk9NIDEKLSNkZWZpbmUgQ0ZHX1JFR0RJTU0gMAorI2RlZmluZSBDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FWFRST00gMQorI2RlZmluZSBDT05GSUdfU1lTX1JFR0RJTU0gMAogCiAKIC8qIG1lbW9yeSBiYW5rIHNldHRpbmdzKi8KQEAgLTI4OSw5MyArMjg5LDkzIEBACiAgKiBiaXRzIHdpbGwgYmUgc2V0IHRvIDB4MDAwMDAgZm9yIGEgc3RhcnQgYWRkcmVzcywgb3IgMHhmZmZmZiBmb3IgYW4KICAqIGVuZCBhZGRyZXNzCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBTkswX1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMF9FTkQJCShDRkdfTUFYX1JBTV9TSVpFIC0gMSkKLSNkZWZpbmUgQ0ZHX0JBTkswX0VOQUJMRQkxCi0jZGVmaW5lIENGR19CQU5LMV9TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzFfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMV9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzJfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksyX0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzJfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTkszX1NUQVJUCQkweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LM19FTkQJCTB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTkszX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNF9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzVfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks2X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LN19TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5ECQkoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VOQUJMRQkxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19TVEFSVAkJMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VORAkJMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkFCTEUJMAogLyoKICAqIE1lbW9yeSBiYW5rIGVuYWJsZSBiaXRtYXNrLCBzcGVjaWZ5aW5nIHdoaWNoIG9mIHRoZSBiYW5rcyBkZWZpbmVkIGFib3ZlCiAgYXJlIGFjdHVhbGx5IHByZXNlbnQuIE1TQiBpcyBmb3IgYmFuayAjNywgTFNCIGlzIGZvciBiYW5rICMwLgogICovCi0jZGVmaW5lIENGR19CQU5LX0VOQUJMRQkJMHgwMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTktfRU5BQkxFCQkweDAxCiAKLSNkZWZpbmUgQ0ZHX09EQ1IJCTB4ZmYJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzLAkqLworI2RlZmluZSBDT05GSUdfU1lTX09EQ1IJCTB4ZmYJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzLAkqLwogCQkJCQkvKiBzZWUgODI0MCBib29rIGZvciBiaXQgZGVmaW5pdGlvbnMJKi8KLSNkZWZpbmUgQ0ZHX1BHTUFYCQkweDMyCS8qIGhvdyBsb25nIHRoZSA4MjQwIHJldGFpbnMgdGhlCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KIAkJCQkJLyogY3VycmVudGx5IGFjY2Vzc2VkIHBhZ2UgaW4gbWVtb3J5CSovCiAJCQkJCS8qIHNlZSA4MjQwIGJvb2sgZm9yIGRldGFpbHMJCSovCiAKIC8qIFNEUkFNIDAgLSAyNTZNQiAqLwotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBzdGFjayBpbiBEQ0FDSEUgQCAxR0IgKG5vIGJhY2tpbmcgbWVtKSAqLwogI2lmIGRlZmluZWQoVVNFX0RJTkszMikKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoMHg0MDAwMDAwMCB8IEJBVExfUFBfMDAgKQotI2RlZmluZSBDRkdfSUJBVDFVCSgweDQwMDAwMDAwIHwgQkFUVV9CTF8xMjhLICkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKDB4NDAwMDAwMDAgfCBCQVRMX1BQXzAwICkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKDB4NDAwMDAwMDAgfCBCQVRVX0JMXzEyOEsgKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKICNlbmRpZgogCiAvKiBQQ0kgbWVtb3J5ICovCi0jZGVmaW5lIENGR19JQkFUMkwJKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUJKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCSgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIEZsYXNoLCBjb25maWcgYWRkcnMsIGV0YyAqLwotI2RlZmluZSBDRkdfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkzNgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkzNgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNDAgQ1BVCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI0MCBDUFUJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0hNSTEwLmggYi9pbmNsdWRlL2NvbmZpZ3MvSE1JMTAuaAppbmRleCBjNThjYjhjLi42YzhlODFmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvSE1JMTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvSE1JMTAuaApAQCAtNTIsNyArNTIsNyBAQAogI2RlZmluZSBDT05GSUdfUFMyS0JECQkJLyogQVQtUFMvMiBLZXlib2FyZAkJKi8KICNkZWZpbmUgQ09ORklHX1BTMk1VTFQJCQkvKiAuLiBvbiBQUy8yIE11bHRpcGxleGVyCSovCiAjZGVmaW5lIENPTkZJR19QUzJTRVJJQUwJMgkvKiAuLiBvbiBDT00zCQkJKi8KLSNkZWZpbmUgQ09ORklHX1BTMk1VTFRfREVMQVkJKENGR19IWi8yKQkvKiBJbml0aWFsIGRlbGF5CSovCisjZGVmaW5lIENPTkZJR19QUzJNVUxUX0RFTEFZCShDT05GSUdfU1lTX0haLzIpCS8qIEluaXRpYWwgZGVsYXkJKi8KIAogI2RlZmluZSBDT05GSUdfQk9PVENPVU5UX0xJTUlUCiAKQEAgLTg4LDE0ICs4OCwxNCBAQAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJICAxCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAvKiBlbmFibGUgSTJDIGFuZCBzZWxlY3QgdGhlIGhhcmR3YXJlL3NvZnR3YXJlIGRyaXZlciAqLwogI3VuZGVmCUNPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUgQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwCS8qIDQwIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwCS8qIDQwIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCiAKIC8qIFNvZnR3YXJlIChiaXQtYmFuZykgSTJDIGRyaXZlciBjb25maWd1cmF0aW9uICovCiAjZGVmaW5lIFBCX1NDTAkJMHgwMDAwMDAyMAkvKiBQQiAyNiAqLwpAQCAtMTMxLDcgKzEzMSw3IEBACiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCiAKICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMzcJCS8qIFVzZSBkczEzMzcgcnRjIHZpYSBpMmMJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUiAweDY4CQkvKiBhdCBhZGRyZXNzIDB4NjgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSIDB4NjgJCS8qIGF0IGFkZHJlc3MgMHg2OAkJKi8KIAogCiAvKgpAQCAtMTU2LDMzICsxNTYsMzMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjaWYgMAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KICNlbmRpZgotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xOTIsNDcgKzE5Miw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDgwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTI0NSwxNiArMjQ1LDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUJICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplCSAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2NCwxMCArMjY0LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzYsOSArMjc2LDkgQEAKICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KICNpZm5kZWYgQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjg2LDIwICsyODYsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0zMDksNyArMzA5LDcgQEAKICAqCiAgKiBJZiB0aGlzIGlzIGEgODAgTUh6IENQVSwgc2V0IFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgdG8gNSAoNSoxNj04MCkhCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzE4LDcgKzMxOCw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKIApAQCAtMzI3LDE0ICszMjcsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDEwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDEwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MTAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzEwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDEwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MTAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODEwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzEwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKICNkZWZpbmUgUENNQ0lBX01FTV9XSU5fTk8JNQogI2RlZmluZSBOU0NVX09FX0lOVgkJMQkJLyogUENNQ0lBX0dDUlhfQ1hPRSBpcyBpbnZlcnRlZCAqLwogCkBAIC0zNTEsMjggKzM1MSwyOCBAQAogI2RlZmluZSBDT05GSUdfSURFX0xFRAkJMQkvKiBMRUQgICBmb3IgaWRlIHN1cHBvcnRlZAkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIgMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUiAwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzg3LDIyICszODcsMjIgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzoKICAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCiAJCQkJIE9SX1NDWV8zX0NMSyB8IE9SX0VIVFIgfCBPUl9CSSkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtNDEzLDE5ICs0MTMsMTkgQEAKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAjaWZuZGVmIENPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCUNGR19PUjJfUFJFTElNCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogI2Vsc2UJLyogQ0FOIHVzZXMgQ1MzIywgc28gd2UgY2FuIGhhdmUgb25seSBvbmUgU0RSQU0gYmFuayBhbnl3YXkgKi8KLSNkZWZpbmUgQ0ZHX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLwotI2RlZmluZSBDRkdfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KLSNkZWZpbmUgQ0ZHX09SM19DQU4JCShDRkdfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlIzX0NBTgkJKChDRkdfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX0NBTgkJKENPTkZJR19TWVNfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19DQU4JCSgoQ09ORklHX1NZU19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJCUJSX1BTXzggfCBCUl9NU19VUE1CIHwgQlJfViApCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIApAQCAtNDU2LDM0ICs0NTYsMzQgQEAKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCiAKLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk4CisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTk4CiAKIC8qCiAgKiBGb3IgMTYgTUJpdCwgcmVmcmVzaCByYXRlcyBjb3VsZCBiZSAzMS4zIHVzCiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9IVUI0MDUuaCBiL2luY2x1ZGUvY29uZmlncy9IVUI0MDUuaAppbmRleCAyYTYxZTc3Li4zZTU4NDI0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvSFVCNDA1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0hVQjQwNS5oCkBAIC01Miw3ICs1Miw3IEBACiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QgICAgICAgICAgICAgICAgICAvKiBlbmFibGUgcHJlYm9vdCB2YXJpYWJsZSAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkwCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTkyLDUwICs5Miw1MCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSN1bmRlZglDRkdfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI3VuZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLwotI2RlZmluZSBDRkdfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECSAgICA2OTEyMDAKKyN1bmRlZglDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkgICAgNjkxMjAwCiAjdW5kZWYJQ09ORklHX1VBUlQxX0NPTlNPTEUJCS8qIGRlZmluZSBmb3IgdWFydDEgYXMgY29uc29sZQkqLwogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKiBFdGhlcm5ldCBzdHVmZiAqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURSAvKiBMZXQgdGhlIHVzZXIgdG8gY2hhbmdlIHRoZSBFdGhlcm5ldCBNQUMgYWRkcmVzc2VzICovCkBAIC0xNDcsMTggKzE0NywxOCBAQAogICogTkFORC1GTEFTSCBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7IENGR19OQU5EX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXsgQ09ORklHX1NZU19OQU5EX0JBU0UgfQogI2RlZmluZSBOQU5EX01BWF9DSElQUyAgICAgICAgICAxCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMSAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEgICAgICAgICAvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLwogI2RlZmluZSBOQU5EX0JJR19ERUxBWV9VUwkyNQogCi0jZGVmaW5lIENGR19OQU5EX0NFICAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDEpICAgLyogb3VyIENFIGlzIEdQSU8xICAqLwotI2RlZmluZSBDRkdfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQ0xFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMikgICAvKiBvdXIgQ0xFIGlzIEdQSU8yICovCi0jZGVmaW5lIENGR19OQU5EX0FMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDMpICAgLyogb3VyIEFMRSBpcyBHUElPMyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0UgICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMSkgICAvKiBvdXIgQ0UgaXMgR1BJTzEgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDIpICAgLyogb3VyIENMRSBpcyBHUElPMiAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUxFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMykgICAvKiBvdXIgQUxFIGlzIEdQSU8zICovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfU0tJUF9CQURfRE9UX0kgMSAgICAgICAvKiAiLmkiIHJlYWQgc2tpcHMgYmFkIGJsb2NrcyAgICovCi0jZGVmaW5lIENGR19OQU5EX1FVSUVUICAgICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NLSVBfQkFEX0RPVF9JIDEgICAgICAgLyogIi5pIiByZWFkIHNraXBzIGJhZCBibG9ja3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUVVJRVQgICAgICAgICAgMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE3NSw1OCArMTc1LDU4IEBACiAKICN1bmRlZglDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogcHJpbnQgcGNpIGRldmljZXMgQCBzdGFydHVwCSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNQkvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNQkqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEJMHhmZmMwMDAwMAkvKiBwb2ludCB0byBmbGFzaAkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNQkvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNpZiAwIC8qIHRlc3Qtb25seSAqLwotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfQkFOSwkwCSAgICAvKiB1c2UgZm9yIEpGRlMyICovCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJMQkgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyBVLUJvb3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCTAJICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJMQkgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyBVLUJvb3QgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzcsMjQgKzIzNywyNCBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NzAwCS8qIDIwNDggYnl0ZXMgbWF5IGJlIHVzZWQgZm9yIGVudiB2YXJzKi8KIAkJCQkgICAvKiB0b3RhbCBzaXplIG9mIGEgQ0FUMjRXQzE2IGlzIDIwNDggYnl0ZXMgKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4RjAwMDA1MDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KIAkJCQkJLyogMTYgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0yNjksNTcgKzI2OSw1NyBAQAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCwgTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKLS8qI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkgIDB4MDgwNTU4ODAgIC9YWFgqIFRXVD0xNixDU049MSxPRU49MSxXQk49MSxXQkY9MSxUSD00LFNPUj0xICovCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisvKiNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCSAgMHgwODA1NTg4MCAgL1hYWCogVFdUPTE2LENTTj0xLE9FTj0xLFdCTj0xLFdCRj0xLFRIPTQsU09SPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKEZsYXNoIEJhbmsgMSwgTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4RjQwMTgwMDAgIC8qIEJBUz0weEY0MCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4RjQwMTgwMDAgIC8qIEJBUz0weEY0MCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoOCBCaXQgUGVyaXBoZXJhbDogVUFSVCkgaW5pdGlhbGl6YXRpb24JCQkqLwogI2lmIDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAjZW5kaWYKIAogI2RlZmluZSBEVUFSVDBfQkEJMHhGMDAwMDAwMAkgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzCQkqLwogI2RlZmluZSBEVUFSVDFfQkEJMHhGMDAwMDAwOAkgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzCQkqLwogI2RlZmluZSBEVUFSVDJfQkEJMHhGMDAwMDAxMAkgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzCQkqLwogI2RlZmluZSBEVUFSVDNfQkEJMHhGMDAwMDAxOAkgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFCTB4RjQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJMHhGNDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGUEdBIHN0dWZmCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfU1BBUlRBTjIJMQkgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTUFYX1NJWkUJMTI4KjEwMjQgICAgLyogMTI4a0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTNTBFKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCTEJICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRQkxMjgqMTAyNCAgICAvKiAxMjhrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlM1MEUqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAgICovCi0jZGVmaW5lIENGR19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCSAgMQorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCSAgMQogCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgR1BJTyBzZXR1cCAoUFBDNDA1RVAgc3BlY2lmaWMpCkBAIC0zMzMsMTkgKzMzMywxOSBAQAogICogR1BJTzBbMjgtMjldIC0gVUFSVDEgZGF0YSBzaWduYWwgaW5wdXQvb3V0cHV0CiAgKiBHUElPMFszMC0zMV0gLSBFTUFDMCBhbmQgRU1BQzEgcmVqZWN0IHBhY2tldCBpbnB1dHMKICAqLwotI2RlZmluZSBDRkdfR1BJTzBfT1NSSAkJMHg0MDAwMDU1MAotI2RlZmluZSBDRkdfR1BJTzBfT1NSTAkJMHgwMDAwMDExMAotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFMCQkweDE1NTU1NDQ1Ci0jZGVmaW5lIENGR19HUElPMF9UU1JICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UU1JMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UQ1IJCTB4RjdGRTAwMTQKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JICQkweDQwMDAwNTUwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSTAkJMHgwMDAwMDExMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUwJCTB4MTU1NTU0NDUKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RDUgkJMHhGN0ZFMDAxNAogCi0jZGVmaW5lIENGR19EVUFSVF9SU1QgICAgICAgICAgICgweDgwMDAwMDAwID4+IDE0KQotI2RlZmluZSBDRkdfVUFSVDJfUlMyMzIgICAgICAgICAoMHg4MDAwMDAwMCA+PiA1KQotI2RlZmluZSBDRkdfVUFSVDNfUlMyMzIgICAgICAgICAoMHg4MDAwMDAwMCA+PiA2KQotI2RlZmluZSBDRkdfVUFSVDRfUlMyMzIgICAgICAgICAoMHg4MDAwMDAwMCA+PiA3KQotI2RlZmluZSBDRkdfVUFSVDVfUlMyMzIgICAgICAgICAoMHg4MDAwMDAwMCA+PiA4KQorI2RlZmluZSBDT05GSUdfU1lTX0RVQVJUX1JTVCAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMTQpCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVDJfUlMyMzIgICAgICAgICAoMHg4MDAwMDAwMCA+PiA1KQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlQzX1JTMjMyICAgICAgICAgKDB4ODAwMDAwMDAgPj4gNikKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUNF9SUzIzMiAgICAgICAgICgweDgwMDAwMDAwID4+IDcpCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVDVfUlMyMzIgICAgICAgICAoMHg4MDAwMDAwMCA+PiA4KQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9JQUQyMTAuaCBiL2luY2x1ZGUvY29uZmlncy9JQUQyMTAuaAppbmRleCBhNDk0NGYxLi5jYTQ4OGM2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvSUFEMjEwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0lBRDIxMC5oCkBAIC05NywxMiArOTcsMTIgQEAKICMgdW5kZWYgIENPTkZJR19TQ0MxX0VORVQJCS8qIGRpc2FibGUgU0NDMSBldGhlcm5ldCAqLwogIyBkZWZpbmUgQ09ORklHX0ZFQ19FTkVUICAgIDEJLyogdXNlIEZFQyBldGhlcm5ldCAgKi8KICMgZGVmaW5lIENPTkZJR19NSUkgICAgICAgICAxCi0jIGRlZmluZSBDRkdfRElTQ09WRVJfUEhZICAgMQorIyBkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgICAxCiAjIGRlZmluZSBDT05GSUdfRkVDX1VUT1BJQSAgMQogIyBkZWZpbmUgQ09ORklHX0VUSEFERFIgICAgIDA4OjAwOjA2OjI2OkEyOjZECiAjIGRlZmluZSBDT05GSUdfSVBBRERSICAgICAgMTkyLjE2OC4yOC4xMjgKICMgZGVmaW5lIENPTkZJR19TRVJWRVJJUCAgICAxMzkuMTAuMTM3LjEzOAotIyBkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWSAgIDEKKyMgZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICAgMQogCiAjZGVmaW5lIENPTkZJR19NQUNfUEFSVElUSU9OCiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCkBAIC0xMTAsOSArMTEwLDkgQEAKIC8qIGVuYWJsZSBJMkMgYW5kIHNlbGVjdCB0aGUgaGFyZHdhcmUvc29mdHdhcmUgZHJpdmVyICovCiAjdW5kZWYgIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgICAgKi8KICNkZWZpbmUgQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkICAgICAgICAgICAgICAgKi8KLSMgZGVmaW5lIENGR19JMkNfU1BFRUQJCTUwMDAwCi0jIGRlZmluZSBDRkdfSTJDX1NMQVZFCQkweERECi0jIGRlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4REQKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAKIC8qCiAgKiBTb2Z0d2FyZSAoYml0LWJhbmcpIEkyQyBkcml2ZXIgY29uZmlndXJhdGlvbgogICovCkBAIC0xNDUsMjUgKzE0NSwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwNDAwMDAwCS8qIDEgLi4uIDQgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwNDAwMDAwCS8qIDEgLi4uIDQgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAKIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE3Myw1MiArMTczLDUyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0lNTVJfU0laRQkJKCh1aW50KSg2NCAqIDEwMjQpKQorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SX1NJWkUJCSgodWludCkoNjQgKiAxMDI0KSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgwODAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKCh1aW50KSg0ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggMTZNYnl0ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDA4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJKCh1aW50KSg0ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggMTZNYnl0ZSAqLwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKIAogI2lmIGRlZmluZWQoREVCVUcpCi0jIGRlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjIGRlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSMgZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyMgZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCiAjZW5kaWYKIAotIyBkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotIyBkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworIyBkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjIGRlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg4MDAwCkBAIC0yMjcsOSArMjI3LDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjM5LDEwICsyMzksMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1MCwyOCArMjUwLDI4IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJMTUtMzAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHNldCB0aGUgUExMLCB0aGUgbG93LXBvd2VyIG1vZGVzIGFuZCB0aGUgcmVzZXQgY29udHJvbCAoMTUtMjkpCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKChNUEM4WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKChNUEM4WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAogCQkJCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjgyLDcgKzI4Miw3IEBACiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCiAKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTCXwgU0NDUl9DT00wMAl8IFNDQ1JfREZTWU5DMDAJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlMJfCBTQ0NSX0NPTTAwCXwgU0NDUl9ERlNZTkMwMAl8IFwKIAkJCSBTQ0NSX0RGQlJHMDAJfCBTQ0NSX0RGTkwwMDAJfCBTQ0NSX0RGTkgwMDAJfCBcCiAJCQkgU0NDUl9ERkxDRDAwMAl8U0NDUl9ERkFMQ0QwMAkpCiAKQEAgLTI5MSw3ICsyOTEsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAvKiArMHgwOUM0ID0+IERSUVAgPSAxMCAoSURNQSByZXF1ZXN0cyBoYXZlIGxvd2VzdCBwcmlvcml0eSkgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IgMHgwMDIwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUiAweDAwMjAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIHN0dWZmCkBAIC0zMDUsNyArMzA1LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJMAogCiAvKiBCZWNhdXNlIG9mIHRoZSB3YXkgdGhlIDg2MCBzdGFydHMgdXAgYW5kIGFzc2lnbnMgQ1MwIHRoZQogKiBlbnRpcmUgYWRkcmVzcyBzcGFjZSwgd2UgaGF2ZSB0byBzZXQgdGhlIG1lbW9yeSBjb250cm9sbGVyCkBAIC0zMjEsMjIgKzMyMSwyMiBAQAogICogQlIwIGFuZCBPUjAgKEZMQVNIKQogICovCiAKLSNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNGR19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJKi8KKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSovCiAKIC8qIHVzZWQgdG8gcmUtbWFwIEZMQVNIIGJvdGggd2hlbiBzdGFydGluZyBmcm9tIFNSQU0gb3IgRkxBU0g6CiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweEY4MDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RjgwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4RjgwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RjgwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzoKICBUUkxYID0gMCwgQ1NOVCA9IDEsIFNDWSA9IDMsIEVIVFIgPSAxCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0JJIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV8zX0NMSyB8IE9SX0VIVFIpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtMzQ3LDI1ICszNDcsMjUgQEAKIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IE9SX0NTTlRfU0FNICB8IE9SX0JJIHwgT1JfQUNTX0RJVjQpCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKFNEUkFNX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IE9SX0NTTlRfU0FNICB8IE9SX0JJIHwgT1JfQUNTX0RJVjQpCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoU0RSQU1fQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WKQogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkxMjQJCS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgNjQgTUh6CSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJMTI0CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDY0IE1IegkqLwogCiAvKiByZWZyZXNoIHJhdGUgMTUuNiB1cyAoPSA2NCBtcyAvIDRLID0gNjIuNCAvIHF1YWQgYnVyc3RzKSBmb3IgPD0gMTI4IE1CaXQJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSCSAgICAgICAgTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkgICAgICAgIE1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKLSNkZWZpbmUgQ0ZHX01BTVIJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUgkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV84WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0lDVTg2Mi5oIGIvaW5jbHVkZS9jb25maWdzL0lDVTg2Mi5oCmluZGV4IDBmZjdmYTkuLjkxNzEzNWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9JQ1U4NjIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvSUNVODYyLmgKQEAgLTk1LDkgKzk1LDkgQEAKICNkZWZpbmUJQ09ORklHX0ZFQ19FTkVUCQkxCS8qIHVzZSBGRUMgZXRoZXJuZXQgICovCiAjZGVmaW5lCUNPTkZJR19NSUkJCTEKICNpZiAxCi0jZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkJMQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQkxCiAjZWxzZQotI3VuZGVmCUNGR19ESVNDT1ZFUl9QSFkKKyN1bmRlZglDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX01BQ19QQVJUSVRJT04KQEAgLTEwNiwxMCArMTA2LDEwIEBACiAvKiBlbmFibGUgSTJDIGFuZCBzZWxlY3QgdGhlIGhhcmR3YXJlL3NvZnR3YXJlIGRyaXZlciAqLwogI3VuZGVmICBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19TT0ZUX0kyQwkJMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSMgZGVmaW5lIENGR19JMkNfU1BFRUQJCTUwMDAwCi0jIGRlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCi0jIGRlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAKLSMgZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKgogICogU29mdHdhcmUgKGJpdC1iYW5nKSBJMkMgZHJpdmVyIGNvbmZpZ3VyYXRpb24KICAqLwpAQCAtMTI2LDggKzEyNiw4IEBACiAJCQllbHNlICAgIGltbXItPmltX2NwbS5jcF9wYmRhdCAmPSB+UEJfU0NMCiAjZGVmaW5lIEkyQ19ERUxBWQl1ZGVsYXkoNSkJLyogMS80IEkyQyBjbG9jayBkdXJhdGlvbiAqLwogCi0jZGVmaW5lIENGR19FRVBST01fWDQwNDMwCQkvKiBVc2UgYSBYaWNvciBYNDA0MzAgRUVQUk9NCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTICA0CS8qIDE2IGJ5dGVzIHBhZ2Ugd3JpdGUgbW9kZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9YNDA0MzAJCS8qIFVzZSBhIFhpY29yIFg0MDQzMCBFRVBST00JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTICA0CS8qIDE2IGJ5dGVzIHBhZ2Ugd3JpdGUgbW9kZQkqLwogCiAjZGVmaW5lCUNPTkZJR19SVENfTVBDOHh4CQkvKiB1c2UgaW50ZXJuYWwgUlRDIG9mIE1QQzh4eAkqLwogCkBAIC0xNTAsMjUgKzE1MCwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwNDAwMDAwCS8qIDEgLi4uIDQgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwNDAwMDAwCS8qIDEgLi4uIDQgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAKIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE3OCw1NSArMTc4LDU1IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lNTVJfU0laRQkJKCh1aW50KSg2NCAqIDEwMjQpKQorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SX1NJWkUJCSgodWludCkoNjQgKiAxMDI0KSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKCh1aW50KSgxNiAqIDEwMjQgKiAxMDI0KSkJLyogbWF4IDE2TWJ5dGUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCSgodWludCkoMTYgKiAxMDI0ICogMTAyNCkpCS8qIG1heCAxNk1ieXRlICovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAogCiAjaWYgMAogI2lmIGRlZmluZWQoREVCVUcpCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOICgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gKDI1NiA8PCAxMCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCkBAIC0yMzQsMTQgKzIzNCwxNCBAQAogCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBzZWN0b3IJKi8KICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAJLyogVXNlZCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTEsMTAgKzI1MSwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjYyLDI4ICsyNjIsMjggQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkUpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkxNS0zMAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogc2V0IHRoZSBQTEwsIHRoZSBsb3ctcG93ZXIgbW9kZXMgYW5kIHRoZSByZXNldCBjb250cm9sICgxNS0yOSkKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCSgoKE1QQzhYWF9GQUNULTEpIDw8IFBMUFJDUl9NRl9TSElGVCkgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoKE1QQzhYWF9GQUNULTEpIDw8IFBMUFJDUl9NRl9TSElGVCkgfAlcCiAJCQkJUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yOTQsMTIgKzI5NCwxMiBAQAogICovCiAjaWZkZWYgQ09ORklHXzEwME1IegkvKiBmb3IgMTAwIE1IeiwgZXh0ZXJuYWwgYnVzIGlzIGhhbGYgQ1BVIGNsb2NrICovCiAjZGVmaW5lIFNDQ1JfTUFTSwkwCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1RCUwl8IFNDQ1JfQ09NMDAJfCBTQ0NSX0RGU1lOQzAwCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTCXwgU0NDUl9DT00wMAl8IFNDQ1JfREZTWU5DMDAJfCBcCiAJCQkgU0NDUl9ERkJSRzAwCXwgU0NDUl9ERk5MMDAwCXwgU0NDUl9ERk5IMDAwCXwgXAogCQkJIFNDQ1JfREZMQ0QwMDAJfFNDQ1JfREZBTENEMDAJfCBTQ0NSX0VCREYwMSkKICNlbHNlCQkJLyogdXAgdG8gNTAgTUh6IHdlIHVzZSBhIDE6MSBjbG9jayAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTCXwgU0NDUl9DT00wMAl8IFNDQ1JfREZTWU5DMDAJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlMJfCBTQ0NSX0NPTTAwCXwgU0NDUl9ERlNZTkMwMAl8IFwKIAkJCSBTQ0NSX0RGQlJHMDAJfCBTQ0NSX0RGTkwwMDAJfCBTQ0NSX0RGTkgwMDAJfCBcCiAJCQkgU0NDUl9ERkxDRDAwMAl8U0NDUl9ERkFMQ0QwMAkpCiAjZW5kaWYJLyogQ09ORklHXzEwME1IeiAqLwpAQCAtMzA5LDIwICszMDksMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogLyogKzB4MDlDNCA9PiBEUlFQID0gMTAgKElETUEgcmVxdWVzdHMgaGF2ZSBsb3dlc3QgcHJpb3JpdHkpICovCi0jZGVmaW5lIENGR19SQ0NSIDB4MDAyMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgMHgwMDIwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBQb3dlciBTd2l0Y2gKQEAgLTM1NiwyMSArMzU2LDIxIEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzc4LDcgKzM3OCw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJCTAKIAogLyogQmVjYXVzZSBvZiB0aGUgd2F5IHRoZSA4NjAgc3RhcnRzIHVwIGFuZCBhc3NpZ25zIENTMCB0aGUKICogZW50aXJlIGFkZHJlc3Mgc3BhY2UsIHdlIGhhdmUgdG8gc2V0IHRoZSBtZW1vcnkgY29udHJvbGxlcgpAQCAtMzk3LDE2ICszOTcsMTYgQEAKICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4NDAwMDAwMDAJLyogRkxBU0ggYmFuayAjMAkqLwogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0JMHgwCQkvKiBGTEFTSCBiYW5rICMxCSovCiAKLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMTAsIFRSTFggPSAxLCBDU05UID0gMSwgU0NZID0gMywgRUhUUiA9IDAJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV8zX0NMSyB8IE9SX1RSTFgpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzNfQ0xLIHwgT1JfVFJMWCkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JMHhGRjAwMDk1NAkJLyogUmVhbCB2YWx1ZXMgZm9yIHRoZSBib2FyZCAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkweDQwMDAwMDAxCQkvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkweEZGMDAwOTU0CQkvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkweDQwMDAwMDAxCQkvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCiAKIC8qCiAgKiBCUjEgYW5kIE9SMSAoU0RSQU0pCkBAIC00MTQsNDAgKzQxNCw0MCBAQAogI2RlZmluZSBTRFJBTV9CQVNFMV9QUkVMSU0JMHgwMDAwMDAwMAkvKiBTRFJBTSBiYW5rCQkqLwogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDA4MDAJLyogQklIIGlzIG5vdCBzZXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMDgwMAkvKiBCSUggaXMgbm90IHNldAkqLwogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSkKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChTRFJBTV9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoU0RSQU1fQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WKQogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJOTcJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCTk3CS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IegkqLwogCiAvKiByZWZyZXNoIHJhdGUgMTUuNiB1cyAoPSA2NCBtcyAvIDRLID0gNjIuNCAvIHF1YWQgYnVyc3RzKSBmb3IgPD0gMTI4IE1CaXQJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCi0jZGVmaW5lIENGR19NQU1SCQkweDEzYTAxMTE0CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUgkJMHgxM2EwMTExNAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCiAgKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0lEUzgyNDcuaCBiL2luY2x1ZGUvY29uZmlncy9JRFM4MjQ3LmgKaW5kZXggNGQwMzk3Yy4uYTYxMGFjOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0lEUzgyNDcuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvSURTODI0Ny5oCkBAIC03Myw4ICs3Myw4IEBACiAvKiBlbmFibGUgSTJDIGFuZCBzZWxlY3QgdGhlIGhhcmR3YXJlL3NvZnR3YXJlIGRyaXZlciAqLwogI3VuZGVmICBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19TT0ZUX0kyQwkJMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBTb2Z0d2FyZSAoYml0LWJhbmcpIEkyQyBkcml2ZXIgY29uZmlndXJhdGlvbgpAQCAtOTEsMTAgKzkxLDEwIEBACiAjZGVmaW5lIEkyQ19ERUxBWQl1ZGVsYXkoNSkJLyogMS80IEkyQyBjbG9jayBkdXJhdGlvbiAqLwogCiAjaWYgMAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogI2RlZmluZSBDT05GSUdfSTJDX1gKICNlbmRpZgpAQCAtMTA4LDE3ICsxMDgsMTcgQEAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSAgICAxCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLICAgICAgICAgMTQ3NDU2MDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSyAgICAgICAgIDE0NzQ1NjAwCiAKLSNkZWZpbmUJQ0ZHX1VBUlRfQkFTRQkweEUwMDAwMDAwCi0jZGVmaW5lIENGR19VQVJUX1NJWkUJMHgxMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1VBUlRfQkFTRQkweEUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9TSVpFCTB4MTAwMDAKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xICAgICAgICAoQ0ZHX1VBUlRfQkFTRSArIDB4ODAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEgICAgICAgIChDT05GSUdfU1lTX1VBUlRfQkFTRSArIDB4ODAwMCkKIAogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCkBAIC0xNTQsMTcgKzE1NCwxNyBAQAogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIDYweCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMxfENNWEZDUl9SRjFDU19NU0t8Q01YRkNSX1RGMUNTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjFDU19DTEsxMHxDTVhGQ1JfVEYxQ1NfQ0xLOSkKLSMgZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMXxDTVhGQ1JfUkYxQ1NfTVNLfENNWEZDUl9URjFDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzEwfENNWEZDUl9URjFDU19DTEs5KQorIyBkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjIGRlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKIAogCiAvKiBzeXN0ZW0gY2xvY2sgcmF0ZSAoQ0xLSU4pIC0gZXF1YWwgdG8gdGhlIDYweCBhbmQgbG9jYWwgYnVzIHNwZWVkICovCiAjZGVmaW5lIENPTkZJR184MjYwX0NMS0lOCTY2NjY2NjY2CS8qIGluIEh6ICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTE4MCw3ICsxODAsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVFBfQk9PVEZJTEVTSVpFCiAKICNkZWZpbmUgQ09ORklHX1JUQ19QQ0Y4NTYzCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJCTB4NTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJCTB4NTEKIAogLyoKICAqIENvbW1hbmQgbGluZSBjb25maWd1cmF0aW9uLgpAQCAtMTk3LDYyICsxOTcsNjIgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZQlDRkdfUkVTRVRfQUREUkVTUyAweEZERkZGRkZDCS8qICJiYWQiIGFkZHJlc3MJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAweEZERkZGRkZDCS8qICJiYWQiIGFkZHJlc3MJCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1ogICAgICAgICg4IDw8IDIwKSAgICAgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaICAgICAgICAoOCA8PCAyMCkgICAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUgICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyICAgICAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IDB4RkY4MDAwMDAgfQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVAkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IDB4RkY4MDAwMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU19ERVRFQ1QJMQogLyogV2hhdCBzaG91bGQgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgbWFpbiBGTEFTSCBiZSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1CeXRlcyk/IFRoaXMgbXVzdCBjb250YWluIFRFWFRfQkFTRSBmcm9tIGJvYXJkL2lkczgyNDcvY29uZmlnLm1rCiAgKiBUaGUgbWFpbiBGTEFTSCBpcyB3aGljaGV2ZXIgaXMgY29ubmVjdGVkIHRvICpDUzAuCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9CQVNFIDB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9TSVpFIDgKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRSAweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX1NJWkUgOAogCiAvKiBGbGFzaCBiYW5rIHNpemUgKGZvciBwcmVsaW1pbmFyeSBzZXR0aW5ncykKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRSBDRkdfRkxBU0gwX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFIENPTkZJR19TWVNfRkxBU0gwX1NJWkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwogCiAvKiBFbnZpcm9ubWVudCBpbiBmbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UrMHg2MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFKzB4NjAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCiAKQEAgLTI2Myw5ICsyNjMsOSBAQAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9OQU5EKQogCiAjZGVmaW5lIENPTkZJR19OQU5EX0xFR0FDWQotI2RlZmluZSBDRkdfTkFORDBfQkFTRSAweEUxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDBfQkFTRSAweEUxMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRSAgICAgMSAgICAgICAvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UgICAgIDEgICAgICAgLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgICAgICAgICAgICovCiAjZGVmaW5lIFNFQ1RPUlNJWkUgNTEyCiAjZGVmaW5lIE5BTkRfTk9fUkIKIApAQCAtMzI2LDQ3ICszMjYsNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICoKLSAqIGlmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENGR18qCisgKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDT05GSUdfU1lTXyoKICAqIGRlZmluZXMgZm9yIHRoZSB2YXJpb3VzIHJlZ2lzdGVycyBhZmZlY3RlZCBieSB0aGUgSFJDVyBlLmcuIGNoYW5naW5nCi0gKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ0ZHX1NJVU1DUi4KKyAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDT05GSUdfU1lTX1NJVU1DUi4KICAqLwotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJKEhSQ1dfQlBTMDEgfCBIUkNXX0JNUyB8IEhSQ1dfSVNCMTAwIHwgSFJDV19BUFBDMTAgfCBIUkNXX01PRENLX0gxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCShIUkNXX0JQUzAxIHwgSFJDV19CTVMgfCBIUkNXX0lTQjEwMCB8IEhSQ1dfQVBQQzEwIHwgSFJDV19NT0RDS19IMTAwMCkKIAogLyogbm8gc2xhdmVzIHNvIGp1c3QgZmlsbCB3aXRoIHplcm9zICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNAkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3CQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MjAwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqCi0gKiA2MHggU0RSQU0gaXMgbWFwcGVkIGF0IENGR19TRFJBTV9CQVNFCisgKiA2MHggU0RSQU0gaXMgbWFwcGVkIGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRQogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfRkxBU0gwX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19GTEFTSDBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKQEAgLTM4MCw5ICszODAsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRSAgICAgIDMyICAgICAgLyogRm9yIE1QQzgyNjAgQ1BVICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFICAgICAgMzIgICAgICAvKiBGb3IgTVBDODI2MCBDUFUgICAgICAgICAgICAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zOTYsMjggKzM5NiwyOCBAQAogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwogCi0jZGVmaW5lIENGR19ISUQwX0lOSVQgICAoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfEhJRDBfRENJKQotI2RlZmluZSBDRkdfSElEMF9GSU5BTCAgMAotI2RlZmluZSBDRkdfSElEMiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVCAgIChISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0kpCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTCAgMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIgICAgICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LTUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHR1cm4gb24gQ2hlY2tzdG9wIFJlc2V0IEVuYWJsZQogICovCi0jZGVmaW5lIENGR19STVIgICAgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUk1SICAgICAgICAgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQ1IgLSBCdXMgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQtMjUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfQkNSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IgICAgICAoU0lVTUNSX0RQUEMwMHxTSVVNQ1JfQVBQQzEwfFNJVU1DUl9CQ1RMQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUiAgICAgIChTSVVNQ1JfRFBQQzAwfFNJVU1DUl9BUFBDMTB8U0lVTUNSX0JDVExDMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNZUENSIC0gU3lzdGVtIFByb3RlY3Rpb24gQ29udHJvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC0zNQpAQCAtNDI2LDEwICs0MjYsMTAgQEAKICAqIFdhdGNoZG9nICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCA2MHggQnVzIE1vbml0b3IgZW5hYmxlCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQfFNZUENSX1NXRSkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUCkKICNlbmRpZiAvKiBDT05GSUdfV0FUQ0hET0cgKi8KIApAQCAtNDM5LDcgKzQzOSw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQyAgICAgKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgICAgICAgICAgICAgICAgIDQtNDIKQEAgLTQ0NywyMCArNDQ3LDIwIEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jZGVmaW5lIENGR19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBDb250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVuc3VyZSBERkJSRyBpcyBEaXZpZGUgYnkgMTYKICAqLwotI2RlZmluZSBDRkdfU0NDUiAgICAgICAgKDB4MDAwMDAwMjggfCBTQ0NSX0RGQlJHMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUiAgICAgICAgKDB4MDAwMDAwMjggfCBTQ0NSX0RGQlJHMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAxMy03CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSICAgICAgICAwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtNDc5LDYwICs0NzksNjAgQEAKIC8qIE1pbmltdW0gbWFzayB0byBzZXBhcmF0ZSBwcmVsaW1pbmFyeQogICogYWRkcmVzcyByYW5nZXMgZm9yIENTWzA6Ml0KICAqLwotI2RlZmluZSBDRkdfR0xPQkFMX1NEUkFNX0xJTUlUCSgzMjw8MjApCS8qIGxlc3MgdGhhbiAzMiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0dMT0JBTF9TRFJBTV9MSU1JVAkoMzI8PDIwKQkvKiBsZXNzIHRoYW4gMzIgTUIgKi8KIAotI2RlZmluZSBDRkdfTVBUUFIgICAgICAgMHg2NjAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIgICAgICAgMHg2NjAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEFkZHJlc3MgZm9yIE1vZGUgUmVnaXN0ZXIgU2V0IChNUlMpIGNvbW1hbmQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfTVJTX09GRlMJMHgwMDAwMDExMAorI2RlZmluZSBDT05GSUdfU1lTX01SU19PRkZTCTB4MDAwMDAxMTAKIAogCiAvKiBCYW5rIDAgLSBGTEFTSAogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNICAoKENGR19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTSAgKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKIAkJCSBCUnhfUFNfOCAgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfTVNfR1BDTV9QICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTSAgKE1FR19UT19BTShDRkdfRkxBU0hfU0laRSkgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0gIChNRUdfVE9fQU0oQ09ORklHX1NZU19GTEFTSF9TSVpFKSAgICAgIHxcCiAJCQkgT1J4R19TQ1lfNl9DTEsgICAgICAgICAgICAgICAgICkKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9OQU5EKQogLyogQmFuayAxIC0gTkFORCBGbGFzaAogKi8KLSNkZWZpbmUJQ0ZHX05BTkRfQkFTRQkJQ0ZHX05BTkQwX0JBU0UKLSNkZWZpbmUJQ0ZHX05BTkRfU0laRQkJMHg4MDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTkFORF9CQVNFCQlDT05GSUdfU1lTX05BTkQwX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19OQU5EX1NJWkUJCTB4ODAwMAogCi0jZGVmaW5lIENGR19PUl9USU1JTkdfTkFORAkweDAwMDAzNgorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19OQU5ECTB4MDAwMDM2CiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0gICgoQ0ZHX05BTkRfQkFTRSAmIEJSeF9CQV9NU0spIHwgQlJ4X1BTXzggfCBCUnhfTVNfR1BDTV9QIHwgQlJ4X1YgICkKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0gIChQMlNaX1RPX0FNKENGR19OQU5EX1NJWkUpIHwgQ0ZHX09SX1RJTUlOR19OQU5EICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNICAoKENPTkZJR19TWVNfTkFORF9CQVNFICYgQlJ4X0JBX01TSykgfCBCUnhfUFNfOCB8IEJSeF9NU19HUENNX1AgfCBCUnhfViAgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0gIChQMlNaX1RPX0FNKENPTkZJR19TWVNfTkFORF9TSVpFKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX05BTkQgKQogI2VuZGlmCiAKIC8qIEJhbmsgMiAtIDYweCBidXMgU0RSQU0KICAqLwotI2RlZmluZSBDRkdfUFNSVCAgICAgICAgMHgyMAotI2RlZmluZSBDRkdfTFNSVCAgICAgICAgMHgyMAorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQgICAgICAgIDB4MjAKKyNkZWZpbmUgQ09ORklHX1NZU19MU1JUICAgICAgICAweDIwCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0gICgoQ0ZHX1NEUkFNX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU18zMiAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19TRFJBTV9QICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCUNGR19PUjIKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCUNPTkZJR19TWVNfT1IyCiAKIAogLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzCiAqLwotI2RlZmluZSBDRkdfT1IyICAgICgofihDRkdfR0xPQkFMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjIgICAgKCh+KENPTkZJR19TWVNfR0xPQkFMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKIAkJCSBPUnhTX0JQRF80ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTBfQTkJCXxcCiAJCQkgT1J4U19OVU1SXzEyKQogCi0jZGVmaW5lIENGR19QU0RNUiAgKFBTRE1SX1NEQU1fQTE0X0lTX0E1IHxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIgIChQU0RNUl9TREFNX0ExNF9JU19BNSB8XAogCQkJIFBTRE1SX0JTTUFfQTE1X0ExNyAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREExMF9QQkkwX0ExMAkJfFwKIAkJCSBQU0RNUl9SRlJDXzVfQ0xLICAgICAgICAgICAgICAgfFwKQEAgLTU0Niw3ICs1NDYsNyBAQAogLyogQmFuayAzIC0gVUFSVAogKi8KIAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTSAgKChDRkdfVUFSVF9CQVNFICYgQlJ4X0JBX01TSykgfCBCUnhfUFNfOCB8IEJSeF9NU19HUENNX1AgfCBCUnhfViAgKQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTSAgKCgoLUNGR19VQVJUX1NJWkUpICYgT1J4R19BTV9NU0spIHwgT1J4R19DU05UIHwgT1J4R19TQ1lfMV9DTEsgfCBPUnhHX1RSTFggKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0gICgoQ09ORklHX1NZU19VQVJUX0JBU0UgJiBCUnhfQkFfTVNLKSB8IEJSeF9QU184IHwgQlJ4X01TX0dQQ01fUCB8IEJSeF9WICApCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTSAgKCgoLUNPTkZJR19TWVNfVUFSVF9TSVpFKSAmIE9SeEdfQU1fTVNLKSB8IE9SeEdfQ1NOVCB8IE9SeEdfU0NZXzFfQ0xLIHwgT1J4R19UUkxYICkKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9JUDg2MC5oIGIvaW5jbHVkZS9jb25maWdzL0lQODYwLmgKaW5kZXggYzBiZjM2Ny4uYjljNTcxMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0lQODYwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0lQODYwLmgKQEAgLTUyLDcgKzUyLDcgQEAKIAkiYm9vdG0iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTc3LDE0ICs3NywxNCBAQAogI2RlZmluZSBJMkNfREVMQVkJdWRlbGF5KDUpCS8qIDEvNCBJMkMgY2xvY2sgZHVyYXRpb24gKi8KIAogCi0jIGRlZmluZSBDRkdfSTJDX1NQRUVECQk1MDAwMAotIyBkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHhGRQotIyBkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBYMjRDMTYJCSovCi0jIGRlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIGJ5dGVzIG9mIGFkZHJlc3MJCSovCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNTAwMDAKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBYMjRDMTYJCSovCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBieXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIgICAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogI2RlZmluZQlDT05GSUdfVElNRVNUQU1QCQkvKiBQcmludCBpbWFnZSBpbmZvIHdpdGggdGltZXN0YW1wICovCiAKQEAgLTExMSwyNyArMTExLDI3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEYwMDAwMAkvKiAxIC4uLiAxNU1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwRjAwMDAwCS8qIDEgLi4uIDE1TUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfUElPX01PREUJCTAJLyogSURFIGludGVyZmFjZSBpbiBQSU8gTW9kZSAwCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUElPX01PREUJCTAJLyogSURFIGludGVyZmFjZSBpbiBQSU8gTW9kZSAwCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNDEsNTAgKzE0MSw1MCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEYxMDAwMDAwCS8qIE5vbi1zdGFuZGFyZCB2YWx1ZSEhCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMTAwMDAwMAkvKiBOb24tc3RhbmRhcmQgdmFsdWUhIQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDEwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MTAwMDAwMDAKICNpZmRlZglERUJVRwotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBNb25pdG9yCSovCiAjZWxzZQogI2lmIDAgLyogbmVlZCBtb3JlIHNwYWNlIGZvciBJMkMgdGVzdHMgKi8KLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQogI2VuZGlmCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyNAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjdW5kZWYJQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI3VuZGVmCUNPTkZJR19FTlZfSVNfSU5fTlZSQU0KQEAgLTIwNSw5ICsyMDUsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMTgsMTAgKzIxOCwxMCBAQAogICogKzB4MDAwNAogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIyOSw3ICsyMjksNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogKzB4MDAwMCA9PiAweDgwNjAwODAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0VBUkIgICB8IFNJVU1DUl9FQVJQMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9FQVJCICAgfCBTSVVNQ1JfRUFSUDAgfCBcCiAJCQkgU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9NTFJDMTApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0Nyw3ICsyNDcsNyBAQAogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqICsweDAyMDAgPT4gMHgwMEMyCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKQEAgLTI1NSw3ICsyNTUsNyBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqICsweDAyNDAgPT4gMHgwMDgyCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjY0LDcgKzI2NCw3IEBACiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdCwgc2V0IFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgIQogICovCiAvKiArMHgwMjg2ID0+IHdhczogMHgwMDAwRDAwMCAqLwotI2RlZmluZSBDRkdfUExQUkNSCQkJCQkJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJCQkJCQkJXAogCQkoCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCB8CVwKIAkJCS8qUExQUkNSX0NTUkN8Ki8gUExQUkNSX0xQTV9OT1JNQUwgfAkJXAogCQkJUExQUkNSX0NTUiAgIHwgUExQUkNSX0xPTFJFIC8qfFBMUFJDUl9GSU9QRCovCVwKQEAgLTI3Nyw3ICsyNzcsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAJfCAgIFNDQ1JfVEJTCSAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMAl8ICAgU0NDUl9UQlMJICB8CVwKIAkJCSBTQ0NSX1JURElWCXwgICBTQ0NSX1JUU0VMCSAgfAlcCiAJCQkgLypTQ0NSX0NSUUVOfCovICAvKlNDQ1JfUFJRRU58Ki8JXAogCQkJIFNDQ1JfRUJERjAwCXwgICBTQ0NSX0RGU1lOQzAwIHwJXApAQCAtMjg5LDcgKzI4OSw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIC8qICsweDAyMjAgPT4gMHgwMEMzICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI5NywyMCArMjk3LDIwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIC8qICsweDA5QzQgPT4gVElNRVA9MSAqLwotI2RlZmluZSBDRkdfUkNDUiAweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSIDB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSTURTIC0gUklTQyBNaWNyb2NvZGUgRGV2ZWxvcG1lbnQgU3VwcG9ydCBDb250cm9sIFJlZ2lzdGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JNRFMgMAorI2RlZmluZSBDT05GSUdfU1lTX1JNRFMgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBERVIgLSBEZWJ1ZyBFdmVudCBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTMyMiw5ICszMjIsOSBAQAogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkweEMzCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJMHhDMwogCi0jZGVmaW5lIENGR19NQU1SCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVIJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKgpAQCAtMzM3LDE4ICszMzcsMTggQEAKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwogLyogYWxsb3cgZm9yIG1heCA4IE1CIG9mIEZsYXNoICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHhGRjgwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IE9SX1NDWV82X0NMSykKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IE9SX1NDWV82X0NMSykKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQogLyogMTYgYml0LCBiYW5rIHZhbGlkICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzMyIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JQ0ZHX0JSMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JQ09ORklHX1NZU19CUjBfUFJFTElNCiAKIC8qCiAgKiBCUjIvT1IyIC0gU0RSQU0KQEAgLTM1OSw0NiArMzU5LDQ2IEBACiAKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIFNEUkFNICovCiAKLSNkZWZpbmUgQ0ZHX09SMgkJKFNEUkFNX1BSRUxJTV9PUl9BTSB8IFNEUkFNX1RJTUlORyApCi0jZGVmaW5lIENGR19CUjIJCSgoU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyCQkoU0RSQU1fUFJFTElNX09SX0FNIHwgU0RSQU1fVElNSU5HICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjIJCSgoU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qCiAgKiBCUjMvT1IzIC0gU1JBTSAoMTYgYml0KQogICovCiAjZGVmaW5lCVNSQU1fQkFTRQkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19PUjMJCTB4RkZGMDAxMzAJCS8qIEJJL1NDWSA9IDUvVFJMWCAoaW50ZXJuYWwpICovCi0jZGVmaW5lIENGR19CUjMJCSgoU1JBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfVikKLSNkZWZpbmUgU1JBTV9TSVpFCSgxICsgKH4oQ0ZHX09SMyAmIEJSX0JBX01TSykpKQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQlDRkdfT1IzCQkJLyogTWFrZSBzdXJlIHRvIG1hcCBlYXJseSAqLwotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQlDRkdfQlIzCQkJLyogaW4gY2FzZSBpdCdzIHVzZWQgZm9yIEVOViAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMwkJMHhGRkYwMDEzMAkJLyogQkkvU0NZID0gNS9UUkxYIChpbnRlcm5hbCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjMJCSgoU1JBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfVikKKyNkZWZpbmUgU1JBTV9TSVpFCSgxICsgKH4oQ09ORklHX1NZU19PUjMgJiBCUl9CQV9NU0spKSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IzCQkJLyogTWFrZSBzdXJlIHRvIG1hcCBlYXJseSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JQ09ORklHX1NZU19CUjMJCQkvKiBpbiBjYXNlIGl0J3MgdXNlZCBmb3IgRU5WICovCiAKIC8qCiAgKiBCUjQvT1I0IC0gQm9hcmQgQ29udHJvbCAmIFN0YXR1cyAoOCBiaXQpCiAgKi8KICNkZWZpbmUJQkNTUl9CQVNFCTB4RkMwMDAwMDAKLSNkZWZpbmUgQ0ZHX09SNAkJMHhGRkZGMDEyMAkJLyogQkkgKGludGVybmFsKSAqLwotI2RlZmluZSBDRkdfQlI0CQkoKEJDU1JfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjQJCTB4RkZGRjAxMjAJCS8qIEJJIChpbnRlcm5hbCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjQJCSgoQkNTUl9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WKQogCiAvKgogICogQlI1L09SNSAtIElQIFNsb3QgQS9CICgxNiBiaXQpCiAgKi8KICNkZWZpbmUJSVBfU0xPVF9CQVNFCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX09SNQkJMHhGRTAwMDEwQwkJLyogU0VUQS9UUkxYL0JJLyBTQ1k9MCAoZXh0ZXJuYWwpICovCi0jZGVmaW5lIENGR19CUjUJCSgoSVBfU0xPVF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjUJCTB4RkUwMDAxMEMJCS8qIFNFVEEvVFJMWC9CSS8gU0NZPTAgKGV4dGVybmFsKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSNQkJKChJUF9TTE9UX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQogCiAvKgogICogQlI2L09SNiAtIFZNRSBTVEQgICgxNiBiaXQpCiAgKi8KICNkZWZpbmUJVk1FX1NURF9CQVNFCTB4RkUwMDAwMDAKLSNkZWZpbmUgQ0ZHX09SNgkJMHhGRjAwMDEwQwkJLyogU0VUQS9UUkxYL0JJL1NDWT0wICAoZXh0ZXJuYWwpICovCi0jZGVmaW5lIENGR19CUjYJCSgoVk1FX1NURF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjYJCTB4RkYwMDAxMEMJCS8qIFNFVEEvVFJMWC9CSS9TQ1k9MCAgKGV4dGVybmFsKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSNgkJKChWTUVfU1REX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQogCiAvKgogICogQlI3L09SNyAtIFNIT1JUIEkvTyArIFJUQyArIElBQ0sgICgxNiBiaXQpCiAgKi8KICNkZWZpbmUgVk1FX1NIT1JUX0JBU0UJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfT1I3CQkweEZGMDAwMTBDCQkvKiBTRVRBL1RSTFgvQkkvIFNDWT0wIChleHRlcm5hbCkgKi8KLSNkZWZpbmUgQ0ZHX0JSNwkJKChWTUVfU0hPUlRfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1I3CQkweEZGMDAwMTBDCQkvKiBTRVRBL1RSTFgvQkkvIFNDWT0wIChleHRlcm5hbCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjcJCSgoVk1FX1NIT1JUX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCb2FyZCBDb250cm9sIGFuZCBTdGF0dXMgUmVnaW9uOgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0lQSEFTRTQ1MzkuaCBiL2luY2x1ZGUvY29uZmlncy9JUEhBU0U0NTM5LmgKaW5kZXggMzFmYmYzMi4uM2NiNmNmNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0lQSEFTRTQ1MzkuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvSVBIQVNFNDUzOS5oCkBAIC04MCwxMCArODAsMTAgQEAKICAqIC0gU2VsZWN0IGJ1cyBmb3IgYmQvYnVmZmVycyAoc2VlIDI4LTEzKQogICogLSBIYWxmIGR1cGxleAogICovCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzMgfCBDTVhGQ1JfUkYzQ1NfTVNLIHwgQ01YRkNSX1RGM0NTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNCB8IENNWEZDUl9URjNDU19DTEsxNikKLSMgZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMyB8IENNWEZDUl9SRjNDU19NU0sgfCBDTVhGQ1JfVEYzQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNCB8IENNWEZDUl9URjNDU19DTEsxNikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCiAKICNlbmRpZgkvKiBDT05GSUdfRVRIRVJfT05fRkNDLCBDT05GSUdfRVRIRVJfSU5ERVggKi8KIApAQCAtMTEwLDggKzExMCw4IEBACiAgKi8KICN1bmRlZiAgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogU29mdHdhcmUgKGJpdC1iYW5nKSBJMkMgZHJpdmVyIGNvbmZpZ3VyYXRpb24KQEAgLTE1MiwzMCArMTUyLDMwIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpICAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBGMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBGMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCiAjZGVmaW5lIENPTkZJR19DTE9DS1NfSU5fTUhaCTEJLyogY2xvY2tzIHBhc3NlZCB0byBMaW51eCBpbiBNSHogKi8KIAkJCQkJLyogZm9yIHZlcnNpb25zIDwgMi40LjUtcHJlNQkgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4MDQ0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4MDQ0MDAwMDAKIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJMQkvKiBXZSBuZWVkIG1pc2NfaW5pdF9yKCkJKi8KIApAQCAtMTg0LDcwICsxODQsNzAgQEAKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uIChTZXR1cCBieSB0aGUKLSAqIHN0YXJ0dXAgY29kZSkuIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAuCisgKiBzdGFydHVwIGNvZGUpLiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMC4KICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGODAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKSAgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApICAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0laRQkoQ0ZHX01BWF9GTEFTSF9TRUNUICogMHgxMDAwMCkJLyogNCBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TSVpFCShDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUICogMHgxMDAwMCkJLyogNCBNQiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCiAKIC8qIEVudmlyb25tZW50IGluIEZMQVNILCB0aGVyZSBpcyBsaXR0bGUgc3BhY2UgbGVmdCBpbiBTZXJpYWwgRUVQUk9NICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwIC8qIFdlIHVzZSBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgxMDAwMCkgLyogMi4gc2VjdG9yICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MTAwMDApIC8qIDIuIHNlY3RvciAqLwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICoKLSAqIGlmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENGR18qCisgKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDT05GSUdfU1lTXyoKICAqIGRlZmluZXMgZm9yIHRoZSB2YXJpb3VzIHJlZ2lzdGVycyBhZmZlY3RlZCBieSB0aGUgSFJDVyBlLmcuIGNoYW5naW5nCi0gKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ0ZHX1NJVU1DUi4KKyAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDT05GSUdfU1lTX1NJVU1DUi4KICAqLwotI2RlZmluZSBDRkdfSFJDV19NQVNURVIgKCAoIEhSQ1dfQlBTMDEgfCBIUkNXX0VCTSApCQl8XAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSICggKCBIUkNXX0JQUzAxIHwgSFJDV19FQk0gKQkJfFwKIAkJCSAgKCBIUkNXX0wyQ1BDMTAgfCBIUkNXX0lTQjExMCApCXxcCiAJCQkgICggSFJDV19NTVIxMSB8IEhSQ1dfQVBQQzEwICkJCXxcCiAJCQkgICggSFJDV19DUzEwUEMwMSB8IEhSQ1dfTU9EQ0tfSDAxMDEgKQkgXAogCQkJKSAvKiAweDE0ODYzMjQ1ICovCiAKIC8qIG5vIHNsYXZlcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMiAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0IDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNSAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3IDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwIC8qIFdlIGtlZXAgb3JpZ2luYWwgdmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwIC8qIFdlIGtlZXAgb3JpZ2luYWwgdmFsdWUgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtMjYxLDkgKzI2MSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyICAgICAvKiBGb3IgTVBDODI2MCBDUFUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIgICAgIC8qIEZvciBNUEM4MjYwIENQVQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNSAgICAgIC8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1ICAgICAgLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzMsMjkgKzI3MywyOSBAQAogICoKICAqIEhJRDEgaGFzIG9ubHkgcmVhZC1vbmx5IGluZm9ybWF0aW9uIC0gbm90aGluZyB0byBzZXQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfEhJRDBfRENJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxISUQwX0RDSXxcCiAJCQkgSElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkoSElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMgkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkoSElEMF9JRkVNfEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSTVIgLSBSZXNldCBNb2RlIFJlZ2lzdGVyCQkJCQkgNS01CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiB0dXJuIG9uIENoZWNrc3RvcCBSZXNldCBFbmFibGUKICAqLwotI2RlZmluZSBDRkdfUk1SCQlSTVJfQ1NSRQorI2RlZmluZSBDT05GSUdfU1lTX1JNUgkJUk1SX0NTUkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24JCQkJCSA0LTI1CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0JDUgkJMHhBMDFDMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJMHhBMDFDMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTSVVNQ1IgLSBTSVUgTW9kdWxlIENvbmZpZ3VyYXRpb24JCQkJIDQtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCTBYNDIwNUMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJMFg0MjA1QzAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTWVBDUiAtIFN5c3RlbSBQcm90ZWN0aW9uIENvbnRyb2wJCQkJIDQtMzUKQEAgLTMwNCwxMCArMzA0LDEwIEBACiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCiAjaWYgZGVmaW5lZCAoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1B8U1lQQ1JfU1dFKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQKQogI2VuZGlmIC8qIENPTkZJR19XQVRDSERPRyAqLwogCkBAIC0zMTcsNyArMzE3LDcgQEAKICAqIGFuZCBlbmFibGUgVGltZSBDb3VudGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1RNQ05UU0MJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCSA0LTQyCkBAIC0zMjUsMjAgKzMyNSwyMCBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgQ29udHJvbAkJCQkJIDktOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRW5zdXJlIERGQlJHIGlzIERpdmlkZSBieSAxNgogICovCi0jZGVmaW5lIENGR19TQ0NSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uCQkJCTEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUgkwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUgkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNDksMTMgKzM0OSwxMyBAQAogICogIDEJNjB4CVNEUkFNCTY0IGJpdAlTRFJBTQogICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChDRkdfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spIHwgMHgwODAxKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkweEZGODAwODgyCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoQ0ZHX1NEUkFNX0JBU0UgJiBCUnhfQkFfTVNLKSB8IDB4MDA0MSkKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JMHhGODAwMkNEMAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKSB8IDB4MDgwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCTB4RkY4MDA4ODIKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykgfCAweDAwNDEpCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkweEY4MDAyQ0QwCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SCTB4NDA0QTI0MUEKLSNkZWZpbmUgQ0ZHX01QVFBSCTB4MDAwMDc0MDAKLSNkZWZpbmUgQ0ZHX1BTUlQJMHgwMDAwMDAwNworI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCTB4NDA0QTI0MUEKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkweDAwMDA3NDAwCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkweDAwMDAwMDA3CiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvSVNQQU4uaCBiL2luY2x1ZGUvY29uZmlncy9JU1BBTi5oCmluZGV4IDhiNmYzY2UuLjZlYjQ2NmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9JU1BBTi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9JU1BBTi5oCkBAIC02OSwxNCArNjksMTQgQEAKIAogI2lmIENPTkZJR19FVEhFUl9JTkRFWCA9PSAzCiAKLSNkZWZpbmUgQ0ZHX1BIWV9BRERSCQkwCi0jZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNCB8IENNWEZDUl9URjNDU19DTEsxNikKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCQkoQ01YRkNSX0ZDMyB8IENNWEZDUl9SRjNDU19NU0sgfCBDTVhGQ1JfVEYzQ1NfTVNLKQorI2RlZmluZSBDT05GSUdfU1lTX1BIWV9BRERSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYzQ1NfQ0xLMTQgfCBDTVhGQ1JfVEYzQ1NfQ0xLMTYpCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJCShDTVhGQ1JfRkMzIHwgQ01YRkNSX1JGM0NTX01TSyB8IENNWEZDUl9URjNDU19NU0spCiAKICNlbmRpZiAvKiBDT05GSUdfRVRIRVJfSU5ERVggPT0gMyAqLwogCi0jZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKKyNkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCiAKICNkZWZpbmUgQ09ORklHX01JSQkJCQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19CSVRCQU5HTUlJCQkJLyogQml0LWJhbmcgTUlJIFBIWSBtYW5hZ2VtZW50CSovCkBAIC04NSwxOCArODUsMTggQEAKICAqLwogI2RlZmluZSBNRElPX1BPUlQJCTMJCS8qIFBvcnQgRCAqLwogCi0jZGVmaW5lIENGR19NRElPX1BJTgkJMHgwMDA0MDAwMAkvKiBQRDEzICovCi0jZGVmaW5lIENGR19NRENfUElOCQkweDAwMDgwMDAwCS8qIFBEMTIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRElPX1BJTgkJMHgwMDA0MDAwMAkvKiBQRDEzICovCisjZGVmaW5lIENPTkZJR19TWVNfTURDX1BJTgkJMHgwMDA4MDAwMAkvKiBQRDEyICovCiAKLSNkZWZpbmUgTURJT19BQ1RJVkUJCShpb3AtPnBkaXIgfD0gIENGR19NRElPX1BJTikKLSNkZWZpbmUgTURJT19UUklTVEFURQkJKGlvcC0+cGRpciAmPSB+Q0ZHX01ESU9fUElOKQotI2RlZmluZSBNRElPX1JFQUQJCSgoaW9wLT5wZGF0ICYgIENGR19NRElPX1BJTikgIT0gMCkKKyNkZWZpbmUgTURJT19BQ1RJVkUJCShpb3AtPnBkaXIgfD0gIENPTkZJR19TWVNfTURJT19QSU4pCisjZGVmaW5lIE1ESU9fVFJJU1RBVEUJCShpb3AtPnBkaXIgJj0gfkNPTkZJR19TWVNfTURJT19QSU4pCisjZGVmaW5lIE1ESU9fUkVBRAkJKChpb3AtPnBkYXQgJiAgQ09ORklHX1NZU19NRElPX1BJTikgIT0gMCkKIAotI2RlZmluZSBNRElPKGJpdCkJCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICBDRkdfTURJT19QSU47IFwKLQkJCQllbHNlCWlvcC0+cGRhdCAmPSB+Q0ZHX01ESU9fUElOCisjZGVmaW5lIE1ESU8oYml0KQkJaWYoYml0KSBpb3AtPnBkYXQgfD0gIENPTkZJR19TWVNfTURJT19QSU47IFwKKwkJCQllbHNlCWlvcC0+cGRhdCAmPSB+Q09ORklHX1NZU19NRElPX1BJTgogCi0jZGVmaW5lIE1EQyhiaXQpCQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ0ZHX01EQ19QSU47IFwKLQkJCQllbHNlCWlvcC0+cGRhdCAmPSB+Q0ZHX01EQ19QSU4KKyNkZWZpbmUgTURDKGJpdCkJCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICBDT05GSUdfU1lTX01EQ19QSU47IFwKKwkJCQllbHNlCWlvcC0+cGRhdCAmPSB+Q09ORklHX1NZU19NRENfUElOCiAKICNkZWZpbmUgTUlJREVMQVkJCXVkZWxheSgxKQogCkBAIC0xMzgsMjUgKzEzOCwyNSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qICN1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikgIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogTWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qICN1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpICAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBNYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDNCMDAwMDAJLyogMSAuLi4gNTkgTUIgaW4gU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDNCMDAwMDAJLyogMSAuLi4gNTkgTUIgaW4gU0RSQU0JCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBEZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBEZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHgwOTkwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHgwOTkwMDAwMAogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkJCS8qIFdlIG5lZWQgbWlzY19pbml0X3IoKQkqLwogCkBAIC0xNjUsNzAgKzE2NSw3MCBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yICAgKi8KICNpZmRlZiBDT05GSUdfQlpJUDIKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg0MDk2IDw8IDEwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYygpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDQwOTYgPDwgMTApCS8qIFJlc2VydmUgNCBNQiBmb3IgbWFsbG9jKCkgICAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBLQiBmb3IgbWFsbG9jKCkgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjggS0IgZm9yIG1hbGxvYygpICAqLwogI2VuZGlmIC8qIENPTkZJR19CWklQMiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIgICAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogTWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTE0MgkJLyogTWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggbnVtIG9mIG1lbW9yeSBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTE0MgkJLyogTWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCiAvKiBFbnZpcm9ubWVudCBpcyBpbiBmbGFzaCwgdGhlcmUgaXMgbGl0dGxlIHNwYWNlIGxlZnQgaW4gU2VyaWFsIEVFUFJPTSAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAJCS8qIFdlIHVzZSBvbmUgY29tcGxldGUgc2VjdG9yCSovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKENPTkZJR19FTlZfU0VDVF9TSVpFKQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENPTkZJR19FTlZfQUREUiArIENPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICoKLSAqIElmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENGR18qCisgKiBJZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDT05GSUdfU1lTXyoKICAqIGRlZmluZXMgZm9yIHRoZSB2YXJpb3VzIHJlZ2lzdGVycyBhZmZlY3RlZCBieSB0aGUgSFJDVyBlLmcuIGNoYW5naW5nCi0gKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ0ZHX1NJVU1DUi4KKyAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDT05GSUdfU1lTX1NJVU1DUi4KICAqLwogLyogMHgxNjg2QjI0NSAqLwotI2RlZmluZSBDRkdfSFJDV19NQVNURVIgKEhSQ1dfRUJNICAgICAgfCBIUkNXX0JQUzAxICAgICAgIHwgSFJDV19DSVAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUiAoSFJDV19FQk0gICAgICB8IEhSQ1dfQlBTMDEgICAgICAgfCBIUkNXX0NJUCAgICB8XAogCQkJIEhSQ1dfTDJDUEMxMCAgfCBIUkNXX0lTQjExMCAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBIUkNXX0JNUyAgICAgIHwgSFJDV19NTVIxMSAgICAgICB8IEhSQ1dfQVBQQzEwIHxcCiAJCQkgSFJDV19DUzEwUEMwMSB8IEhSQ1dfTU9EQ0tfSDAxMDEgICAgICAgICAgICAgICAgXAogCQkJKQogLyogTm8gc2xhdmVzICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMSAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMiAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMyAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNCAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNSAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNiAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNyAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMyAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1IDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNiAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjBGMDAwMDAKLSNpZmRlZiBDRkdfUkVWX0IKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfSU1NUgkweEZGMDAwMDAwCi0jZW5kaWYgLyogQ0ZHX1JFVl9CICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMEYwMDAwMAorI2lmZGVmIENPTkZJR19TWVNfUkVWX0IKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX0lNTVIJMHhGRjAwMDAwMAorI2VuZGlmIC8qIENPTkZJR19TWVNfUkVWX0IgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIERlZmluaXRpb25zCkBAIC0yNDEsNyArMjQxLDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFUJCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBISUR4IC0gSGFyZHdhcmUgSW1wbGVtZW50YXRpb24tZGVwZW5kZW50IFJlZ2lzdGVycwkJMi0xMQpAQCAtMjUwLDI5ICsyNTAsMjkgQEAKICAqCiAgKiBISUQxIGhhcyBvbmx5IHJlYWQtb25seSBpbmZvcm1hdGlvbiAtIG5vdGhpbmcgdG8gc2V0LgogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCShISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0l8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxISUQwX0RDSXxcCiAJCQkJSElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJKEhJRDBfSUNFfEhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkoSElEMF9JQ0V8SElEMF9JRkVNfEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlcgkJCQkJIDUtNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogdHVybiBvbiBDaGVja3N0b3AgUmVzZXQgRW5hYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX1JNUgkJCVJNUl9DU1JFCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQkJUk1SX0NTUkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24JCQkJCSA0LTI1CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0JDUgkJCTB4QTAxQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IJCQkweEEwMUMwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbgkJCQkgNC0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJCTB4NDIyNTAwMDAvKiAweDQyMDVDMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCQkweDQyMjUwMDAwLyogMHg0MjA1QzAwMCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTWVBDUiAtIFN5c3RlbSBQcm90ZWN0aW9uIENvbnRyb2wJCQkJIDQtMzUKQEAgLTI4MSwxMCArMjgxLDEwIEBACiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCiAjaWYgZGVmaW5lZCAoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCQkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCQlTWVBDUl9TV1JJfFNZUENSX1NXUHxTWVBDUl9TV0UpCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCQkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCQlTWVBDUl9TV1JJfFNZUENSX1NXUCkKICNlbmRpZiAvKiBDT05GSUdfV0FUQ0hET0cgKi8KIApAQCAtMjk0LDcgKzI5NCw3IEBACiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19UTUNOVFNDCQkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQwkJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCSA0LTQyCkBAIC0zMDIsMjAgKzMwMiwyMCBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCQkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBDb250cm9sCQkJCQkgOS04CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnN1cmUgREZCUkcgaXMgRGl2aWRlIGJ5IDE2CiAgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJCVNDQ1JfREZCUkcwMQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJCVNDQ1JfREZCUkcwMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSQ0NSIC0gUklTQyBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24JCQkJMTMtNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SQ0NSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUgkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzI2LDMxICszMjYsMzEgQEAKICAqICAxCTYweAlTRFJBTQk2NCBiaXQgICAgICAgICAgICAgICAgICAgICAgICAgIFNEUkFNCiAgKiAgMglMb2NhbAlTRFJBTQkzMiBiaXQJICAgICAgICAgICAgICAgICAgICAgICAgU0RSQU0KICAqLwotI2RlZmluZSBDRkdfVVNFX0ZJUk1XQVJFCS8qIElmIGRlZmluZWQgLSBkbyBub3QgaW5pdGlhbGlzZSBtZW1vcnkKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfRklSTVdBUkUJLyogSWYgZGVmaW5lZCAtIGRvIG5vdCBpbml0aWFsaXNlIG1lbW9yeQogCQkJCSAgIGNvbnRyb2xsZXIsIHJlbHkgb24gaW5pdGlhbGlzYXRpb24KIAkJCQkgICBwZXJmb3JtZWQgYnkgdGhlIEludGVycGhhc2UgYm9vdCBmaXJtd2FyZS4KIAkJCQkgKi8KIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhGRTAwMDg4MgotI2lmZGVmIENGR19SRVZfQgotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKENGR19GTEFTSF9CQVNFIHwgQlJ4X1BTXzggIHwgQlJ4X1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhGRTAwMDg4MgorI2lmZGVmIENPTkZJR19TWVNfUkVWX0IKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQlJ4X1BTXzggIHwgQlJ4X1YpCiAjZWxzZSAgLyogUmV2LiBEICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoQ0ZHX0ZMQVNIX0JBU0UgfCBCUnhfUFNfMTYgfCBCUnhfVikKLSNlbmRpZiAvKiBDRkdfUkVWX0IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQlJ4X1BTXzE2IHwgQlJ4X1YpCisjZW5kaWYgLyogQ09ORklHX1NZU19SRVZfQiAqLwogCi0jZGVmaW5lIENGR19NUFRQUgkJMHg3RjAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJCTB4N0YwMAogCiAvKiBQbGVhc2Ugbm90ZSB0aGF0IDYweCBTRFJBTSBNVVNUIHN0YXJ0IGF0IDAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHXzYweF9CUgkJMHgwMDAwMDA0MQotI2RlZmluZSBDRkdfNjB4X09SCQkweEYwMDAyQ0QwCi0jZGVmaW5lIENGR19QU0RNUgkJMHgwMDQ5OTI5QQotI2RlZmluZSBDRkdfUFNSVAkJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU182MHhfQlIJCTB4MDAwMDAwNDEKKyNkZWZpbmUgQ09ORklHX1NZU182MHhfT1IJCTB4RjAwMDJDRDAKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUgkJMHgwMDQ5OTI5QQorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQJCTB4MDcKIAotI2RlZmluZSBDRkdfTFNEUkFNX0JBU0UJCTB4RjcwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xPQ19CUgkJMHgwMDAwMTg2MQotI2RlZmluZSBDRkdfTE9DX09SCQkweEZGODAzMjgwCi0jZGVmaW5lIENGR19MU0RNUgkJMHg4Mjg1QTU1MgotI2RlZmluZSBDRkdfTFNSVAkJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0xTRFJBTV9CQVNFCQkweEY3MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9DX0JSCQkweDAwMDAxODYxCisjZGVmaW5lIENPTkZJR19TWVNfTE9DX09SCQkweEZGODAzMjgwCisjZGVmaW5lIENPTkZJR19TWVNfTFNETVIJCTB4ODI4NUE1NTIKKyNkZWZpbmUgQ09ORklHX1NZU19MU1JUCQkweDA3CiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvSVZNTDI0LmggYi9pbmNsdWRlL2NvbmZpZ3MvSVZNTDI0LmgKaW5kZXggNmE0MjJjOC4uY2QxMDBkZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0lWTUwyNC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9JVk1MMjQuaApAQCAtNjYsNyArNjYsNyBAQAogCQkJCSJuZnNhZGRycz0xMC4wLjAuOTk6MTAuMC4wLjIiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTk2LDM2ICs5NiwzNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBGMDAwMDAJLyogMSAuLi4gMTVNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEYwMDAwMAkvKiAxIC4uLiAxNU1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX1BJT19NT0RFCQkwCS8qIElERSBpbnRlcmZhY2UgaW4gUElPIE1vZGUgMAkqLworI2RlZmluZQlDT05GSUdfU1lTX1BJT19NT0RFCQkwCS8qIElERSBpbnRlcmZhY2UgaW4gUElPIE1vZGUgMAkqLwogCi0jZGVmaW5lIENGR19QQl8xMlZfRU5BQkxFCTB4MDAwMDIwMDAJCS8qIFBCIDE4CSovCi0jZGVmaW5lIENGR19QQl9JTE9DS19TV0lUQ0gJMHgwMDAwNDAwMAkJLyogUEIgMTcJKi8KLSNkZWZpbmUgQ0ZHX1BCX1NEUkFNX0NMS0UJMHgwMDAwODAwMAkJLyogUEIgMTYJKi8KLSNkZWZpbmUgQ0ZHX1BCX0VUSF9QT1dFUkRPV04JMHgwMDAxMDAwMAkJLyogUEIgMTUJKi8KLSNkZWZpbmUgQ0ZHX1BCX0lERV9NT1RPUgkweDAwMDIwMDAwCQkvKiBQQiAxNAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCXzEyVl9FTkFCTEUJMHgwMDAwMjAwMAkJLyogUEIgMTgJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9JTE9DS19TV0lUQ0gJMHgwMDAwNDAwMAkJLyogUEIgMTcJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9TRFJBTV9DTEtFCTB4MDAwMDgwMDAJCS8qIFBCIDE2CSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJfRVRIX1BPV0VSRE9XTgkweDAwMDEwMDAwCQkvKiBQQiAxNQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCX0lERV9NT1RPUgkweDAwMDIwMDAwCQkvKiBQQiAxNAkqLwogCi0jZGVmaW5lIENGR19QQ19FVEhfUkVTRVQJKCh1c2hvcnQpMHgwMDEwKQkvKiBQQyAxMQkqLwotI2RlZmluZSBDRkdfUENfSURFX1JFU0VUCSgodXNob3J0KTB4MDAyMCkJLyogUEMgMTAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ19FVEhfUkVTRVQJKCh1c2hvcnQpMHgwMDEwKQkvKiBQQyAxMQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDX0lERV9SRVNFVAkoKHVzaG9ydCkweDAwMjApCS8qIFBDIDEwCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xMzUsNTQgKzEzNSw1NCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwIC8qIHdhczogMHhGRjAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAgLyogd2FzOiAweEZGMDAwMDAwICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgogCiAjaWYgZGVmaW5lZCAoQ09ORklHX0lWTUwyNF8xNk0pCi0jIGRlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjIGRlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwogI2VsaWYgZGVmaW5lZCAoQ09ORklHX0lWTUwyNF8zMk0pCi0jIGRlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MzAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjIGRlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwogI2VsaWYgZGVmaW5lZCAoQ09ORklHX0lWTUwyNF82NE0pCi0jIGRlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MzAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjIGRlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwogI2VuZGlmCiAKLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCiAjaWZkZWYJREVCVUcKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4N0EwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTE5MCw5ICsxOTAsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDQsMTggKzIwNCwxOCBAQAogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQogCiAjIGlmIGRlZmluZWQgKENPTkZJR19JVk1MMjRfMTZNKQotIyAgZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyMgIGRlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjIGVsaWYgZGVmaW5lZCAoQ09ORklHX0lWTUwyNF8zMk0pCi0jICBkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorIyAgZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUCkKICMgZWxpZiBkZWZpbmVkIChDT05GSUdfSVZNTDI0XzY0TSkKLSMgIGRlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjICBkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dQKQogIyBlbmRpZgogCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjI1LDIxICsyMjUsMjEgQEAKICAqLwogLyogRUFSQiwgREJHQyBhbmQgREJQQyBhcmUgaW5pdGlhbGlzZWQgYnkgdGhlIEhDVyAqLwogLyogPT4gMHgwMDAwMDBDMCAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfQlNDIHwgU0lVTUNSX0dCNUUpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfQlNDIHwgU0lVTUNSX0dCNUUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yNDgsNyArMjQ4LDcgQEAKICAqIGludGVycnVwdCBzdGF0dXMgYml0LCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciAhCiAgKi8KIC8qIDB4MDBCMEMwQzAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCQkJCQkJCVwKIAkJKAkoMTEgPDwgUExQUkNSX01GX1NISUZUKSB8CQkJXAogCQkJUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgLypQTFBSQ1JfVE1JU1R8Ki8JXAogCQkJLypQTFBSQ1JfQ1NSQ3wqLyBQTFBSQ1JfTFBNX05PUk1BTCB8CQlcCkBAIC0yNjMsNyArMjYzLDcgQEAKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKIC8qIDB4MDE4MDAwMTQgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDEJfCAvKlNDQ1JfVEJTfCovCQlcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMQl8IC8qU0NDUl9UQlN8Ki8JCVwKIAkJCSBTQ0NSX1JURElWCXwgICBTQ0NSX1JUU0VMCSAgfAlcCiAJCQkgLypTQ0NSX0NSUUVOfCovICAvKlNDQ1JfUFJRRU58Ki8JXAogCQkJIFNDQ1JfRUJERjAwCXwgICBTQ0NSX0RGU1lOQzAwIHwJXApAQCAtMjc2LDcgKzI3Niw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIC8qIDB4MDBDMyAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yODQsMzQgKzI4NCwzNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAvKiBUSU1FUD0yICovCi0jZGVmaW5lIENGR19SQ0NSIDB4MDIwMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgMHgwMjAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNRFMgLSBSSVNDIE1pY3JvY29kZSBEZXZlbG9wbWVudCBTdXBwb3J0IENvbnRyb2wgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUk1EUyAwCisjZGVmaW5lIENPTkZJR19TWVNfUk1EUyAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKiBJbnRlcnJ1cHQgTGV2ZWxzCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0NQTV9JTlRFUlJVUFQJMTMJLyogU0lVX0xFVkVMNgkqLworI2RlZmluZSBDT05GSUdfU1lTX0NQTV9JTlRFUlJVUFQJMTMJLyogU0lVX0xFVkVMNgkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZgpAQCAtMzIwLDIzICszMjAsMjMgQEAKICNkZWZpbmUgQ09ORklHX0lERV84eHhfRElSRUNUCTEJLyogUENNQ0lBIGludGVyZmFjZSByZXF1aXJlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1JFU0VUCTEJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBUaGUgSVZNTDI0IGhhcyBvbmx5IDEgSURFIGJ1cyovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogICAgLi4uIGFuZCBvbmx5IDEgSURFIGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogVGhlIElWTUwyNCBoYXMgb25seSAxIElERSBidXMqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiAgICAuLi4gYW5kIG9ubHkgMSBJREUgZGV2aWNlCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGRTEwMDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAotI3VuZGVmCUNGR19BVEFfSURFMV9PRkZTRVQJCS8qIG9ubHkgb25lIElERSBidXMgYXZhaWxhYmxlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweEZFMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI3VuZGVmCUNPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VUCQkvKiBvbmx5IG9uZSBJREUgYnVzIGF2YWlsYWJsZQkqLwogCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDgwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDAwODAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzUxLDE4ICszNTEsMTggQEAKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwogLyogRVBST01zIGFyZSA1MTJrYiAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4RkZGODAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMSwgVFJMWCA9IDAsIENTTlQgPSAxLCBTQ1kgPSA1LCBFSFRSID0gMQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9TQ1lfNV9DTEsgfCBPUl9FSFRSKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfU0NZXzVfQ0xLIHwgT1JfRUhUUikKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCSggQ0ZHX1JFTUFQX09SX0FNIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IFwKLQkJCQlDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBcCi0JCQkJQ0ZHX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKCBDT05GSUdfU1lTX1JFTUFQX09SX0FNIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IFwKKwkJCQlDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBcCisJCQkJQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCiAvKiAxNiBiaXQsIGJhbmsgdmFsaWQgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCiAKIC8qCiAgKiBCUjEvT1IxIC0gRUxJQyBTQUNDTyBiYW5rICBAIDB4RkUwMDAwMDAKQEAgLTM3Myw5ICszNzMsOSBAQAogI2RlZmluZSBFTElDX1NBQ0NPX09SX0FNCTB4RkZGRjgwMDAKICNkZWZpbmUgRUxJQ19TQUNDT19USU1JTkcJKE9SX1NDWV8yX0NMSyB8IE9SX1RSTFggfCBPUl9FSFRSKQogCi0jZGVmaW5lIENGR19PUjEJKEVMSUNfU0FDQ09fT1JfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0FDU19ESVYyIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxCShFTElDX1NBQ0NPX09SX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWMiB8IE9SX0JJIHwgXAogCQkJRUxJQ19TQUNDT19USU1JTkcpCi0jZGVmaW5lIENGR19CUjEJKChFTElDX1NBQ0NPX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMQkoKEVMSUNfU0FDQ09fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCiAKIC8qCiAgKiBCUjIvT1IyIC0gRUxJQyBFUElDIGJhbmsgICBAIDB4RkUwMDgwMDAKQEAgLTM4Niw5ICszODYsOSBAQAogI2RlZmluZSBFTElDX0VQSUNfT1JfQU0JCTB4RkZGRjgwMDAKICNkZWZpbmUgRUxJQ19FUElDX1RJTUlORwkoT1JfU0NZXzJfQ0xLIHwgT1JfVFJMWCB8IE9SX0VIVFIpCiAKLSNkZWZpbmUgQ0ZHX09SMiAoRUxJQ19FUElDX09SX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWMiB8IE9SX0JJIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SMiAoRUxJQ19FUElDX09SX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWMiB8IE9SX0JJIHwgXAogCQkJRUxJQ19FUElDX1RJTUlORykKLSNkZWZpbmUgQ0ZHX0JSMgkoKEVMSUNfRVBJQ19CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjIJKChFTElDX0VQSUNfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCiAKIC8qCiAgKiBCUjMvT1IzOiBTRFJBTQpAQCAtNDAxLDggKzQwMSw4IEBACiAKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIFNEUkFNICovCiAKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JKFNEUkFNX1BSRUxJTV9PUl9BTSB8IE9SX0NTTlRfU0FNIHwgT1JfRzVMUyB8IFNEUkFNX1RJTUlORyApCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUIgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCShTRFJBTV9QUkVMSU1fT1JfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0c1TFMgfCBTRFJBTV9USU1JTkcgKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogCiAvKgogICogQlI0L09SNCAtIEhETEMgQWRkcmVzcwpAQCAtNDEzLDggKzQxMyw4IEBACiAjZGVmaW5lIEhETENfQUREUl9PUl9BTQkJMHhGRkZGODAwMAogI2RlZmluZSBIRExDX0FERFJfVElNSU5HCU9SX1NDWV8xX0NMSwogCi0jZGVmaW5lIENGR19PUjQJKEhETENfQUREUl9PUl9BTSB8IE9SX0JJIHwgSERMQ19BRERSX1RJTUlORykKLSNkZWZpbmUgQ0ZHX0JSNAkoKEhETENfQUREUl9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9XUCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SNAkoSERMQ19BRERSX09SX0FNIHwgT1JfQkkgfCBIRExDX0FERFJfVElNSU5HKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNAkoKEhETENfQUREUl9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9XUCB8IEJSX1YgKQogCiAvKgogICogQlI1L09SNTogU0hBUkMgQURTUC0yMTY1TApAQCAtNDI1LDI5ICs0MjUsMjkgQEAKICNkZWZpbmUgU0hBUkNfT1JfQU0JCTB4RkZDMDAwMDAKICNkZWZpbmUgU0hBUkNfVElNSU5HCQlPUl9TQ1lfMF9DTEsKIAotI2RlZmluZSBDRkdfT1I1CShTSEFSQ19PUl9BTSB8IE9SX0FDU19ESVYyIHwgT1JfQkkgfCBTSEFSQ19USU1JTkcgKQotI2RlZmluZSBDRkdfQlI1CSgoU0hBUkNfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjUJKFNIQVJDX09SX0FNIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IFNIQVJDX1RJTUlORyApCisjZGVmaW5lIENPTkZJR19TWVNfQlI1CSgoU0hBUkNfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKICAqLwogCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTUJNUl9QVEIJMjA0CisjZGVmaW5lIENPTkZJR19TWVNfTUJNUl9QVEIJMjA0CiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwogCiAjaWYgZGVmaW5lZCAoQ09ORklHX0lWTUwyNF8xNk0pCi0jIGRlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjIGRlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogI2VsaWYgZGVmaW5lZCAoQ09ORklHX0lWTUwyNF8zMk0pCi0jIGRlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjIGRlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogI2VsaWYgZGVmaW5lZCAoQ09ORklHX0lWTUwyNF82NE0pCi0jIGRlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KICNlbmRpZgogCiAKQEAgLTQ1NywxNyArNDU3LDE3IEBACiAKICNpZiBkZWZpbmVkIChDT05GSUdfSVZNTDI0XzE2TSkKICAvKiA4IGNvbHVtbiBTRFJBTSAqLwotIyBkZWZpbmUgQ0ZHX01CTVJfOENPTAkoKENGR19NQk1SX1BUQiA8PCBNQk1SX1BUQl9TSElGVCkgIHwgXAorIyBkZWZpbmUgQ09ORklHX1NZU19NQk1SXzhDT0wJKChDT05GSUdfU1lTX01CTVJfUFRCIDw8IE1CTVJfUFRCX1NISUZUKSAgfCBcCiAJCQkgTUJNUl9BTUJfVFlQRV8wIHwgTUJNUl9EU0JfMV9DWUNMIHwgTUJNUl9HMENMQl9BMTEgfAlcCiAJCQkgTUJNUl9STEZCXzFYCSB8IE1CTVJfV0xGQl8xWAkgICB8IE1CTVJfVExGQl80WCkKICNlbGlmIGRlZmluZWQgKENPTkZJR19JVk1MMjRfMzJNKQogLyogMTI4IE1CaXQgU0RSQU0gKi8KLSMgZGVmaW5lIENGR19NQk1SXzhDT0wJKChDRkdfTUJNUl9QVEIgPDwgTUJNUl9QVEJfU0hJRlQpICB8IFwKKyMgZGVmaW5lIENPTkZJR19TWVNfTUJNUl84Q09MCSgoQ09ORklHX1NZU19NQk1SX1BUQiA8PCBNQk1SX1BUQl9TSElGVCkgIHwgXAogCQkJIE1CTVJfQU1CX1RZUEVfMSB8IE1CTVJfRFNCXzFfQ1lDTCB8IE1CTVJfRzBDTEJfQTEwIHwJXAogCQkJIE1CTVJfUkxGQl8xWAkgfCBNQk1SX1dMRkJfMVgJICAgfCBNQk1SX1RMRkJfNFgpCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfSVZNTDI0XzY0TSkKIC8qIDEyOCBNQml0IFNEUkFNICovCi0jIGRlZmluZSBDRkdfTUJNUl84Q09MCSgoQ0ZHX01CTVJfUFRCIDw8IE1CTVJfUFRCX1NISUZUKSAgfCBcCisjIGRlZmluZSBDT05GSUdfU1lTX01CTVJfOENPTAkoKENPTkZJR19TWVNfTUJNUl9QVEIgPDwgTUJNUl9QVEJfU0hJRlQpICB8IFwKIAkJCSBNQk1SX0FNQl9UWVBFXzEgfCBNQk1SX0RTQl8xX0NZQ0wgfCBNQk1SX0cwQ0xCX0ExMCB8CVwKIAkJCSBNQk1SX1JMRkJfMVgJIHwgTUJNUl9XTEZCXzFYCSAgIHwgTUJNUl9UTEZCXzRYKQogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvSVZNUzguaCBiL2luY2x1ZGUvY29uZmlncy9JVk1TOC5oCmluZGV4IDU0NDc3ZWUuLjEyNWNiNGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9JVk1TOC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9JVk1TOC5oCkBAIC02Niw3ICs2Niw3IEBACiAJCQkJIm5mc2FkZHJzPTEwLjAuMC45OToxMC4wLjAuMiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtOTUsMzQgKzk1LDM0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEYwMDAwMAkvKiAxIC4uLiAxNU1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwRjAwMDAwCS8qIDEgLi4uIDE1TUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfUElPX01PREUJCTAJLyogSURFIGludGVyZmFjZSBpbiBQSU8gTW9kZSAwCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUElPX01PREUJCTAJLyogSURFIGludGVyZmFjZSBpbiBQSU8gTW9kZSAwCSovCiAKLSNkZWZpbmUgQ0ZHX1BCX1NEUkFNX0NMS0UJMHgwMDAwODAwMAkJLyogUEIgMTYJKi8KLSNkZWZpbmUgQ0ZHX1BCX0VUSF9QT1dFUkRPV04JMHgwMDAxMDAwMAkJLyogUEIgMTUJKi8KLSNkZWZpbmUgQ0ZHX1BCX0lERV9NT1RPUgkweDAwMDIwMDAwCQkvKiBQQiAxNAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCX1NEUkFNX0NMS0UJMHgwMDAwODAwMAkJLyogUEIgMTYJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9FVEhfUE9XRVJET1dOCTB4MDAwMTAwMDAJCS8qIFBCIDE1CSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJfSURFX01PVE9SCTB4MDAwMjAwMDAJCS8qIFBCIDE0CSovCiAKLSNkZWZpbmUgQ0ZHX1BDX0VUSF9SRVNFVAkoKHVzaG9ydCkweDAwMTApCS8qIFBDIDExCSovCi0jZGVmaW5lIENGR19QQ19JREVfUkVTRVQJKCh1c2hvcnQpMHgwMDIwKQkvKiBQQyAxMAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDX0VUSF9SRVNFVAkoKHVzaG9ydCkweDAwMTApCS8qIFBDIDExCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENfSURFX1JFU0VUCSgodXNob3J0KTB4MDAyMCkJLyogUEMgMTAJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTEzMiw1MyArMTMyLDUzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAgLyogd2FzOiAweEZGMDAwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMCAvKiB3YXM6IDB4RkYwMDAwMDAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCiAjaWYgZGVmaW5lZCAoQ09ORklHX0lWTVM4XzE2TSkKLSMgZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyMgZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfSVZNUzhfMzJNKQotIyBkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworIyBkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgzMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KICNlbGlmIGRlZmluZWQgKENPTkZJR19JVk1TOF82NE0pCi0jIGRlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MzAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjIGRlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwogI2VuZGlmCiAKLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCiAjaWZkZWYJREVCVUcKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4N0EwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTE4Niw5ICsxODYsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xOTksMTcgKzE5OSwxNyBAQAogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCiAjIGlmIGRlZmluZWQgKENPTkZJR19JVk1TOF8xNk0pCi0jICAgZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyMgICBkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogIyAgZWxpZiBkZWZpbmVkIChDT05GSUdfSVZNUzhfMzJNKQotIyAgIGRlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjICAgZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUCkKICMgIGVsaWYgZGVmaW5lZCAoQ09ORklHX0lWTVM4XzY0TSkKLSMgICBkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorIyAgIGRlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1ApCiAjICBlbmRpZgogI2Vsc2UKLSMgZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyMgZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjE5LDIxICsyMTksMjEgQEAKICAqLwogLyogRUFSQiwgREJHQyBhbmQgREJQQyBhcmUgaW5pdGlhbGlzZWQgYnkgdGhlIEhDVyAqLwogLyogPT4gMHgwMDAwMDBDMCAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfQlNDIHwgU0lVTUNSX0dCNUUpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfQlNDIHwgU0lVTUNSX0dCNUUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yNDIsNyArMjQyLDcgQEAKICAqIGludGVycnVwdCBzdGF0dXMgYml0LCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciAhCiAgKi8KIC8qIDB4MDBCMEMwQzAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCQkJCQkJCVwKIAkJKAkoMTEgPDwgUExQUkNSX01GX1NISUZUKSB8CQkJXAogCQkJUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgLypQTFBSQ1JfVE1JU1R8Ki8JXAogCQkJLypQTFBSQ1JfQ1NSQ3wqLyBQTFBSQ1JfTFBNX05PUk1BTCB8CQlcCkBAIC0yNTcsNyArMjU3LDcgQEAKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKIC8qIDB4MDE4MDAwMTQgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDEJfCAvKlNDQ1JfVEJTfCovCQlcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMQl8IC8qU0NDUl9UQlN8Ki8JCVwKIAkJCSBTQ0NSX1JURElWCXwgICBTQ0NSX1JUU0VMCSAgfAlcCiAJCQkgLypTQ0NSX0NSUUVOfCovICAvKlNDQ1JfUFJRRU58Ki8JXAogCQkJIFNDQ1JfRUJERjAwCXwgICBTQ0NSX0RGU1lOQzAwIHwJXApAQCAtMjcwLDcgKzI3MCw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIC8qIDB4MDBDMyAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzgsMzQgKzI3OCwzNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAvKiBUSU1FUD0yICovCi0jZGVmaW5lIENGR19SQ0NSIDB4MDIwMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgMHgwMjAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNRFMgLSBSSVNDIE1pY3JvY29kZSBEZXZlbG9wbWVudCBTdXBwb3J0IENvbnRyb2wgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUk1EUyAwCisjZGVmaW5lIENPTkZJR19TWVNfUk1EUyAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKiBJbnRlcnJ1cHQgTGV2ZWxzCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0NQTV9JTlRFUlJVUFQJMTMJLyogU0lVX0xFVkVMNgkqLworI2RlZmluZSBDT05GSUdfU1lTX0NQTV9JTlRFUlJVUFQJMTMJLyogU0lVX0xFVkVMNgkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZgpAQCAtMzE0LDIzICszMTQsMjMgQEAKICNkZWZpbmUgQ09ORklHX0lERV84eHhfRElSRUNUCTEJLyogUENNQ0lBIGludGVyZmFjZSByZXF1aXJlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1JFU0VUCTEJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBUaGUgSVZNUzggaGFzIG9ubHkgMSBJREUgYnVzCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogICAgLi4uIGFuZCBvbmx5IDEgSURFIGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogVGhlIElWTVM4IGhhcyBvbmx5IDEgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiAgICAuLi4gYW5kIG9ubHkgMSBJREUgZGV2aWNlCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGRTEwMDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAotI3VuZGVmCUNGR19BVEFfSURFMV9PRkZTRVQJCS8qIG9ubHkgb25lIElERSBidXMgYXZhaWxhYmxlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweEZFMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI3VuZGVmCUNPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VUCQkvKiBvbmx5IG9uZSBJREUgYnVzIGF2YWlsYWJsZQkqLwogCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDgwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDAwODAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzQ1LDE3ICszNDUsMTcgQEAKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwogLyogRVBST01zIGFyZSA1MTJrYiAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4RkZGODAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMSwgVFJMWCA9IDAsIENTTlQgPSAxLCBTQ1kgPSA1LCBFSFRSID0gMQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICSgvKiBPUl9DU05UX1NBTSB8ICovIE9SX0FDU19ESVY0IHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICSgvKiBPUl9DU05UX1NBTSB8ICovIE9SX0FDU19ESVY0IHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV81X0NMSyB8IE9SX0VIVFIpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKIC8qIDE2IGJpdCwgYmFuayB2YWxpZCAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKIAogLyoKICAqIEJSMS9PUjEgLSBFTElDIFNBQ0NPIGJhbmsgIEAgMHhGRTAwMDAwMApAQCAtMzY2LDggKzM2Niw4IEBACiAjZGVmaW5lIEVMSUNfU0FDQ09fT1JfQU0JMHhGRkZGODAwMAogI2RlZmluZSBFTElDX1NBQ0NPX1RJTUlORwkweDAwMDAwRjI2CiAKLSNkZWZpbmUgQ0ZHX09SMQkoRUxJQ19TQUNDT19PUl9BTSB8IEVMSUNfU0FDQ09fVElNSU5HKQotI2RlZmluZSBDRkdfQlIxCSgoRUxJQ19TQUNDT19CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjEJKEVMSUNfU0FDQ09fT1JfQU0gfCBFTElDX1NBQ0NPX1RJTUlORykKKyNkZWZpbmUgQ09ORklHX1NZU19CUjEJKChFTElDX1NBQ0NPX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQogCiAvKgogICogQlIyL09SMiAtIEVMSUMgRVBJQyBiYW5rICAgQCAweEZFMDA4MDAwCkBAIC0zNzgsOCArMzc4LDggQEAKICNkZWZpbmUgRUxJQ19FUElDX09SX0FNCQkweEZGRkY4MDAwCiAjZGVmaW5lIEVMSUNfRVBJQ19USU1JTkcJMHgwMDAwMEYyNgogCi0jZGVmaW5lIENGR19PUjIgKEVMSUNfRVBJQ19PUl9BTSB8IEVMSUNfRVBJQ19USU1JTkcpCi0jZGVmaW5lIENGR19CUjIJKChFTElDX0VQSUNfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyIChFTElDX0VQSUNfT1JfQU0gfCBFTElDX0VQSUNfVElNSU5HKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMgkoKEVMSUNfRVBJQ19CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKIAogLyoKICAqIEJSMy9PUjM6IFNEUkFNCkBAIC0zOTIsOCArMzkyLDggQEAKIAogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgU0RSQU0gKi8KIAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkoU0RSQU1fUFJFTElNX09SX0FNIHwgU0RSQU1fVElNSU5HICkKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JKFNEUkFNX1BSRUxJTV9PUl9BTSB8IFNEUkFNX1RJTUlORyApCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1CIHwgQlJfViApCiAKIC8qCiAgKiBCUjQvT1I0OiBub3QgdXNlZApAQCAtNDA4LDI4ICs0MDgsMjggQEAKICNkZWZpbmUgU0hBUkNfT1JfQU0JCTB4RkZDMDAwMDAKICNkZWZpbmUgU0hBUkNfVElNSU5HCQkweDAwMDAwNzAwCiAKLSNkZWZpbmUgQ0ZHX09SNQkoU0hBUkNfT1JfQU0gfCBTSEFSQ19USU1JTkcgKQotI2RlZmluZSBDRkdfQlI1CSgoU0hBUkNfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjUJKFNIQVJDX09SX0FNIHwgU0hBUkNfVElNSU5HICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjUJKChTSEFSQ19CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzMyIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQk1SX1BUQgkyMDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQk1SX1BUQgkyMDQKIAogLyogcmVmcmVzaCByYXRlIDE1LjYgdXMgKD0gNjQgbXMgLyA0SyA9IDYyLjQgLyBxdWFkIGJ1cnN0cykgZm9yIDw9IDEyOCBNQml0CSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCiAjaWYgZGVmaW5lZCAoQ09ORklHX0lWTVM4XzE2TSkKLSAjZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfSVZNUzhfMzJNKQotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfSVZNUzhfNjRNKQotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogI2VuZGlmCiAKIApAQCAtNDM5LDE3ICs0MzksMTcgQEAKIAogI2lmIGRlZmluZWQgKENPTkZJR19JVk1TOF8xNk0pCiAgLyogOCBjb2x1bW4gU0RSQU0gKi8KLSMgZGVmaW5lIENGR19NQk1SXzhDT0wJKChDRkdfTUJNUl9QVEIgPDwgTUJNUl9QVEJfU0hJRlQpICB8IFwKKyMgZGVmaW5lIENPTkZJR19TWVNfTUJNUl84Q09MCSgoQ09ORklHX1NZU19NQk1SX1BUQiA8PCBNQk1SX1BUQl9TSElGVCkgIHwgXAogCQkJIE1CTVJfQU1CX1RZUEVfMCB8IE1CTVJfRFNCXzFfQ1lDTCB8IE1CTVJfRzBDTEJfQTExIHwJXAogCQkJIE1CTVJfUkxGQl8xWAkgfCBNQk1SX1dMRkJfMVgJICAgfCBNQk1SX1RMRkJfNFgpCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfSVZNUzhfMzJNKQogLyogMTI4IE1CaXQgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01CTVJfOENPTAkoKENGR19NQk1SX1BUQiA8PCBNQk1SX1BUQl9TSElGVCkgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX01CTVJfOENPTAkoKENPTkZJR19TWVNfTUJNUl9QVEIgPDwgTUJNUl9QVEJfU0hJRlQpICB8IFwKIAkJCSBNQk1SX0FNQl9UWVBFXzEgfCBNQk1SX0RTQl8xX0NZQ0wgfCBNQk1SX0cwQ0xCX0ExMCB8CVwKIAkJCSBNQk1SX1JMRkJfMVgJIHwgTUJNUl9XTEZCXzFYCSAgIHwgTUJNUl9UTEZCXzRYKQogI2VsaWYgZGVmaW5lZCAoQ09ORklHX0lWTVM4XzY0TSkKIC8qIDEyOCBNQml0IFNEUkFNICovCi0jZGVmaW5lIENGR19NQk1SXzhDT0wJKChDRkdfTUJNUl9QVEIgPDwgTUJNUl9QVEJfU0hJRlQpICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19NQk1SXzhDT0wJKChDT05GSUdfU1lTX01CTVJfUFRCIDw8IE1CTVJfUFRCX1NISUZUKSAgfCBcCiAJCQkgTUJNUl9BTUJfVFlQRV8xIHwgTUJNUl9EU0JfMV9DWUNMIHwgTUJNUl9HMENMQl9BMTAgfAlcCiAJCQkgTUJNUl9STEZCXzFYCSB8IE1CTVJfV0xGQl8xWAkgICB8IE1CTVJfVExGQl80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0ljZUN1YmUuaCBiL2luY2x1ZGUvY29uZmlncy9JY2VDdWJlLmgKaW5kZXggYTcwNWFjMS4uZjhjOTRlYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0ljZUN1YmUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvSWNlQ3ViZS5oCkBAIC0zMiw3ICszMiw3IEBACiAjZGVmaW5lIENPTkZJR19NUEM1eHh4CQkxCS8qIFRoaXMgaXMgYW4gTVBDNXh4eCBDUFUgKi8KICNkZWZpbmUgQ09ORklHX0lDRUNVQkUJCTEJLyogLi4uIG9uIEljZUN1YmUgYm9hcmQgKi8KIAotI2RlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLwogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CSAgICAgKi8KQEAgLTQ0LDcgKzQ0LDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQzEgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogLi4uIGF0IDExNTIwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAKICNpZmRlZiBDT05GSUdfTVBDNTIwMAkvKiBNUEM1MTAwIFBDSSBpcyBub3Qgc3VwcG9ydGVkIHlldC4gKi8KQEAgLTY5LDEyICs2OSwxMiBAQAogI2RlZmluZSBDT05GSUdfUENJX0lPX1NJWkUJMHgwMTAwMDAwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1hMQl9QSVBFTElOSU5HCTEKKyNkZWZpbmUgQ09ORklHX1NZU19YTEJfUElQRUxJTklORwkxCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjZGVmaW5lIENPTkZJR19NSUkJCTEKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCQkxCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTggIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTggIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KICNkZWZpbmUgQ09ORklHX05TODM4MlgJCTEKIAogI2Vsc2UKQEAgLTg5LDEyICs4OSwxMiBAQAogLyogVVNCICovCiAjZGVmaW5lIENPTkZJR19VU0JfT0hDSV9ORVcKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCi0jZGVmaW5lIENGR19PSENJX0JFX0NPTlRST0xMRVIKLSN1bmRlZiBDRkdfVVNCX09IQ0lfQk9BUkRfSU5JVAotI2RlZmluZSBDRkdfVVNCX09IQ0lfQ1BVX0lOSVQJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfUkVHU19CQVNFCU1QQzVYWFhfVVNCCi0jZGVmaW5lIENGR19VU0JfT0hDSV9TTE9UX05BTUUJIm1wYzUyMDAiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQorI2RlZmluZSBDT05GSUdfU1lTX09IQ0lfQkVfQ09OVFJPTExFUgorI3VuZGVmIENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9SRUdTX0JBU0UJTVBDNVhYWF9VU0IKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJIm1wYzUyMDAiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMTUKIAogI2RlZmluZQlDT05GSUdfVElNRVNUQU1QCQkvKiBQcmludCBpbWFnZSBpbmZvIHdpdGggdGltZXN0YW1wICovCiAKQEAgLTEyNywxNSArMTI3LDE1IEBACiAKIAogI2lmIChURVhUX0JBU0UgPT0gMHhGRjAwMDAwMCkJCS8qIEJvb3QgbG93IHdpdGggMTYgTUIgRmxhc2ggKi8KLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJICAgICAgICAxCi0jICAgZGVmaW5lIENGR19MT1dCT09UMTYJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJICAgICAgICAxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVDE2CTEKICNlbmRpZgogI2lmIChURVhUX0JBU0UgPT0gMHhGRjgwMDAwMCkJCS8qIEJvb3QgbG93IHdpdGggIDggTUIgRmxhc2ggKi8KICNpZiBkZWZpbmVkKENPTkZJR19MSVRFNTIwMEIpCi0jICAgZXJyb3IgQ0ZHX0xPV0JPT1QwOCBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgTGl0ZTUyMDBCCisjICAgZXJyb3IgQ09ORklHX1NZU19MT1dCT09UMDggaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIExpdGU1MjAwQgogI2Vsc2UKLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJICAgICAgICAxCi0jICAgZGVmaW5lIENGR19MT1dCT09UMDgJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJICAgICAgICAxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVDA4CTEKICNlbmRpZgogI2VuZGlmCiAKQEAgLTE3NCw5ICsxNzQsOSBAQAogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCiAjaWYgZGVmaW5lZChDT05GSUdfTElURTUyMDBCKQotI2RlZmluZSBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogI2Vsc2UKLSN1bmRlZiBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjdW5kZWYgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KICNlbmRpZgogI2VuZGlmIC8qIENPTkZJR19NUEM1MjAwICovCiAKQEAgLTE5Myw2MiArMTkzLDYyIEBACiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNzAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNzAKIAogLyoKICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0xJVEU1MjAwQikKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAKLSNpZiAhZGVmaW5lZChDRkdfTE9XQk9PVCkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAxNzYwMDAwICsgMHgwMDgwMDAwMCkKLSNlbHNlCS8qIENGR19MT1dCT09UICovCi0jaWYgZGVmaW5lZChDRkdfTE9XQk9PVDA4KQotIyBlcnJvciBDRkdfTE9XQk9PVDA4IGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBMaXRlNTIwMEIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMTAwMDAwMAorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMTc2MDAwMCArIDB4MDA4MDAwMDApCisjZWxzZQkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVDA4KQorIyBlcnJvciBDT05GSUdfU1lTX0xPV0JPT1QwOCBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgTGl0ZTUyMDBCCiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19MT1dCT09UMTYpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMTA2MDAwMCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVDE2KQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAxMDYwMDAwKQogI2VuZGlmCi0jZW5kaWYgLyogQ0ZHX0xPV0JPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KICNlbHNlIC8qICFDT05GSUdfTElURTUyMDBCIChJY2VDdWJlKSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAxMDAwMDAwCi0jaWYgIWRlZmluZWQoQ0ZHX0xPV0JPT1QpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDc0MDAwMCArIDB4MDA4MDAwMDApCi0jZWxzZQkvKiBDRkdfTE9XQk9PVCAqLwotI2lmIGRlZmluZWQoQ0ZHX0xPV0JPT1QwOCkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwMDQwMDAwICsgMHgwMDgwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMTAwMDAwMAorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDc0MDAwMCArIDB4MDA4MDAwMDApCisjZWxzZQkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVDA4KQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAwMDQwMDAwICsgMHgwMDgwMDAwMCkKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX0xPV0JPT1QxNikKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwMDQwMDAwKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19MT1dCT09UMTYpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDAwNDAwMDApCiAjZW5kaWYKLSNlbmRpZgkvKiBDRkdfTE9XQk9PVCAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfTE9XQk9PVCAqLwogI2VuZGlmIC8qIENPTkZJR19MSVRFNTIwMEIgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCiAKICN1bmRlZiBDT05GSUdfRkxBU0hfMTZCSVQJLyogRmxhc2ggaXMgOC1iaXQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0xJVEU1MjAwQikKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7Q0ZHX0NTMV9TVEFSVCxDRkdfQ1MwX1NUQVJUfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJe0NPTkZJR19TWVNfQ1MxX1NUQVJULENPTkZJR19TWVNfQ1MwX1NUQVJUfQogI2VuZGlmCiAKIApAQCAtMjY3LDI3ICsyNjcsMjcgQEAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAogCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KIAogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0zMDYsODIgKzMwNiw4MiBAQAogICogR1BJTyBjb25maWd1cmF0aW9uCiAgKi8KICNpZmRlZiBDT05GSUdfTVBDNTIwMF9ERFIKLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDkwMDAwMDA0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4OTAwMDAwMDQKICNlbHNlCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHgxMDAwMDAwNAorI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDEwMDAwMDA0CiAjZW5kaWYKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAjZWxzZQotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19MSVRFNTIwMEIpCi0jZGVmaW5lIENGR19DUzFfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzFfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0NTMV9DRkcJCTB4MDAwNDc4MDAKLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX0ZMQVNIX1NJWkUpCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfQ1MwX1NUQVJUCi0jZGVmaW5lIENGR19CT09UQ1NfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNDc4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ0ZHCQkweDAwMDQ3ODAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19GTEFTSF9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJQ09ORklHX1NZU19DUzBfU1RBUlQKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0NzgwMAogI2Vsc2UgLyogSWNlQ3ViZSBha2EgTGl0ZTUyMDAgKi8KICNpZmRlZiBDT05GSUdfTVBDNTIwMF9ERFIKIAotI2RlZmluZSBDRkdfQk9PVENTX1NUQVJUCShDRkdfQ1MxX1NUQVJUICsgQ0ZHX0NTMV9TSVpFKQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCTB4MDA4MDAwMDAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNDc4MDEKLSNkZWZpbmUgQ0ZHX0NTMV9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMV9TSVpFCQkweDAwODAwMDAwCi0jZGVmaW5lIENGR19DUzFfQ0ZHCQkweDAwMDQ3ODAwCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCShDT05GSUdfU1lTX0NTMV9TVEFSVCArIENPTkZJR19TWVNfQ1MxX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJCTB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDQ3ODAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRQkJMHgwMDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DRkcJCTB4MDAwNDc4MDAKIAogI2Vsc2UgLyogIUNPTkZJR19NUEM1MjAwX0REUiAqLwogCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0NzgwMQotI2RlZmluZSBDRkdfQ1MwX1NUQVJUCQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQ1MwX1NJWkUJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDQ3ODAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCiAKICNlbmRpZiAvKiBDT05GSUdfTVBDNTIwMF9ERFIgKi8KICNlbmRpZiAvKkNPTkZJR19MSVRFNTIwMEIgKi8KIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVVNCIHN0dWZmCkBAIC00MDMsMjQgKzQwMywyNCBAQAogI2RlZmluZQlDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1BSRUlOSVQKIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMgkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMgkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfQVRBX0RBVEFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCiAKIC8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUgICAgICAgICAgNAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUgICAgICAgICAgNAogCiAjZGVmaW5lIENPTkZJR19BVEFQSSAgICAgICAgICAgIDEKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0pTRS5oIGIvaW5jbHVkZS9jb25maWdzL0pTRS5oCmluZGV4IGI0NTcyNzIuLjUwOGI1YzggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9KU0UuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvSlNFLmgKQEAgLTQxLDI4ICs0MSwyOCBAQAogICAvKiAuLi4gd2l0aCBhIDMzTUh6IE9TQy4gY29ubmVjdGVkIHRvIHRoZSBTeXNDTEsgaW5wdXQgKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkzMzMzMzMzMwogICAvKiAuLi4gd2l0aCBvbi1jaGlwIG1lbW9yeSBoZXJlICg0S0J5dGVzKSAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUiAweEY0MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFIDB4MDAwMDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSIDB4RjQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIDB4MDAwMDEwMDAKICAgLyogRG8gbm90IHNldCB1cCBsb2NrZWQgZGNhY2hlIGFzIGluaXQgcmFtLiAqLwotI3VuZGVmIENGR19JTklUX0RDQUNIRV9DUworI3VuZGVmIENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MKIAogICAvKiBNYXAgdGhlIFN5c3RlbUFDRSBjaGlwIChDUyMxKSBoZXJlLiAoTXVzdCBiZSBhIG11bHRpcGxlIG9mIDFNZWcpICovCiAjZGVmaW5lIENPTkZJR19TWVNURU1BQ0UgMQotI2RlZmluZSBDRkdfU1lTVEVNQUNFX0JBU0UgMHhmMDAwMDAwMAotI2RlZmluZSBDRkdfU1lTVEVNQUNFX1dJRFRIIDgKKyNkZWZpbmUgQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRSAweGYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1lTVEVNQUNFX1dJRFRIIDgKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04gMQogCiAgIC8qIFVzZSB0aGUgT24tQ2hpcC1NZW1vcnkgKE9DTSkgYXMgYSB0ZW1wb3Jhcnkgc3RhY2sgZm9yIHRoZSBzdGFydHVwIGNvZGUuICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTSAxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00gMQogICAvKiAuLi4gcGxhY2UgSU5JVCBSQU0gaW4gdGhlIE9DTSBhZGRyZXNzICovCi0jIGRlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUgorIyBkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUgogICAvKiAuLi4gZ2l2ZSBpdCB0aGUgd2hvbGUgaW5pdCByYW0gKi8KLSMgZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUKKyMgZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRQogICAvKiAuLi4gU2hhdmUgYSBiaXQgb2ZmIHRoZSBlbmQgZm9yIGdsb2JhbCBkYXRhICovCi0jIGRlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgKLSMgZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyMgZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgKKyMgZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKICAgLyogLi4uIGFuZCBwbGFjZSB0aGUgc3RhY2sgcG9pbnRlciBhdCB0aGUgdG9wIG9mIHdoYXQncyBsZWZ0LiAqLwotIyBkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyMgZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogICAvKiBFbmFibGUgYm9hcmRfcHJlX2luaXQgZnVuY3Rpb24gKi8KICNkZWZpbmUgQ09ORklHX0JPQVJEX1BSRV9JTklUCTEKQEAgLTcyLDcgKzcyLDcgQEAKICAgLyogRGlzYWJsZSBjYWxsIHRvIHBvc3RfaW5pdF9mOiBsYXRlIGluaXQgZnVuY3Rpb24uICovCiAjdW5kZWYgQ09ORklHX1BPU1QKICAgLyogRW5hYmxlIERSQU0gdGVzdC4gKi8KLSNkZWZpbmUgQ0ZHX0RSQU1fVEVTVCAxCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUIDEKICAgLyogRW5hYmxlIG1pc2NfaW5pdF9yIGZ1bmN0aW9uLiAqLwogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IgMQogCkBAIC04MywxNCArODMsMTQgQEAKICN1bmRlZglDT05GSUdfRU5WX0lTX05PV0hFUkUKIAogICAvKiBUaGlzIGlzIHRoZSA3Yml0IGFkZHJlc3Mgb2YgdGhlIGRldmljZSwgbm90IGluY2x1ZGluZyBQLiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSIDB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgMHg1MAogICAvKiBBZnRlciB0aGUgZGV2aWNlIGFkZHJlc3MsIG5lZWQgb25lIG1vcmUgYWRkcmVzcyBieXRlLiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCiAgIC8qIFRoZSBFRVBST00gaXMgNTEyIGJ5dGVzLiAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1NJWkUgNTEyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1NJWkUgNTEyCiAgIC8qIFRoZSBFRVBST00gY2FuIGRvIDE2Ynl0ZSAoIDEgPDwgNCApIHBhZ2Ugd3JpdGVzLiAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCiAgIC8qIFB1dCB0aGUgZW52aXJvbm1lbnQgaW4gdGhlIHNlY29uZCBoYWxmLiAqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkweDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQk1MTIKQEAgLTEzMCw3ICsxMzAsNyBAQAogCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkxCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTE3MSw1MiArMTcxLDUyIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAogLyoKLSAqIElmIENGR19FWFRfU0VSSUFMX0NMT0NLLCB0aGVuIHRoZSBVQVJUIGRpdmlzb3IgaXMgMS4KLSAqIElmIENGR180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgotICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENGR19CQVNFX0JBVUQgdmFsdWUuCisgKiBJZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0ssIHRoZW4gdGhlIFVBUlQgZGl2aXNvciBpcyAxLgorICogSWYgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgorICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENPTkZJR19TWVNfQkFTRV9CQVVEIHZhbHVlLgogICogVGhlIExpbnV4IEJBU0VfQkFVRCBkZWZpbmUgc2hvdWxkIG1hdGNoIHRoaXMgY29uZmlndXJhdGlvbi4KICAqICAgIGJhc2VCYXVkID0gY3B1Q2xvY2svKHVhcnREaXZpc29yKjE2KQotICogSWYgQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OSBhbmQgMjAwTUh6IENQVSBjbG9jaywKKyAqIElmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5IGFuZCAyMDBNSHogQ1BVIGNsb2NrLAogICogc2V0IExpbnV4IEJBU0VfQkFVRCB0byA0MDMyMDAuCiAgKi8KLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCi0jdW5kZWYJQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OQkgICAgICAgLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KKyN1bmRlZglDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OQkgICAgICAgLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAgICAgezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzIsMTQgKzIzMiwxNCBAQAogI3VuZGVmCUNPTkZJR19QQ0lfUE5QCQkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkJCSovCiAJCQkJCS8qIHJlc291cmNlIGNvbmZpZ3VyYXRpb24JKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDAwMDAJLyogUENJIFZlbmRvciBJRDogdG8tZG8hISEJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwMDAwCS8qIFBDSSBEZXZpY2UgSUQ6IHRvLWRvISEhCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ODAwMDAwMDEJLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MDAwMAkvKiBQQ0kgVmVuZG9yIElEOiB0by1kbyEhIQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwMDAwCS8qIFBDSSBEZXZpY2UgSUQ6IHRvLWRvISEhCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMJMHg4MDAwMDAwMQkvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXh0ZXJuYWwgcGVyaXBoZXJhbCBiYXNlIGFkZHJlc3MKQEAgLTI0OCwzNiArMjQ4LDM2IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBubyBsZWQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiBubyByZXNldCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19LRVlfUkVHX0JBU0VfQUREUgkweEYwMTAwMDAwCi0jZGVmaW5lIENGR19JUl9SRUdfQkFTRV9BRERSCTB4RjAyMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfUkVHX0JBU0VfQUREUgkweEYwMzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfS0VZX1JFR19CQVNFX0FERFIJMHhGMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lSX1JFR19CQVNFX0FERFIJMHhGMDIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUkVHX0JBU0VfQUREUgkweEYwMzAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRjgwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkY4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMjg1LDcgKzI4NSw3IEBACiAgKiBCUjAvMSBhbmQgT1IwLzEgKEZMQVNIKQogICovCiAKLSNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNGR19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJKi8KKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkwCQkvKiBGTEFTSCBiYW5rICMxCSovCiAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0tBUkVGLmggYi9pbmNsdWRlL2NvbmZpZ3MvS0FSRUYuaAppbmRleCBlZWIzOTI0Li40MDMwODFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvS0FSRUYuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvS0FSRUYuaApAQCAtNDMsNyArNDMsNyBAQAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIDEJICAgICAvKiBDYWxsIGJvYXJkX3ByZV9pbml0CSovCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfRgkgIDEJICAgICAvKiBDYWxsIGJvYXJkIG1pc2NfaW5pdF9mCSovCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkgIDEJICAgICAvKiBDYWxsIGJvYXJkIG1pc2NfaW5pdF9yCSovCi0jdW5kZWYJQ0ZHX0RSQU1fVEVTVAkJCSAgICAgLyogRGlzYWJsZS10YWtlcyBsb25nIHRpbWUhKi8KKyN1bmRlZglDT05GSUdfU1lTX0RSQU1fVEVTVAkJCSAgICAgLyogRGlzYWJsZS10YWtlcyBsb25nIHRpbWUhKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkgIDY2NjY2NjY2ICAgLyogZXh0ZXJuYWwgZnJlcSB0byBwbGwJKi8KIAogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNIDEKQEAgLTU1LDM4ICs1NSwzOCBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCSAgICAgICAweDAwMDAwMDAwICAgIC8qIF9tdXN0XyBiZSAwCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkgICAgICAgMHhmZmY4MDAwMCAgICAvKiBzdGFydCBvZiBGTEFTSAkJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICAgICAweGZmZjgwMDAwICAgIC8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCSAgICAgICAweDgwMDAwMDAwICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX0JBU0UgICAgMHhlMDAwMDAwMCAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLwotI2RlZmluZSBDRkdfSVNSQU1fQkFTRQkgICAgICAgMHhjMDAwMDAwMCAgICAvKiBpbnRlcm5hbCBTUkFNCQkqLwotI2RlZmluZSBDRkdfUENJX0JBU0UJICAgICAgIDB4ZDAwMDAwMDAgICAgLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCSAgICAgICAweDAwMDAwMDAwICAgIC8qIF9tdXN0XyBiZSAwCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgICAgIDB4ZmZmODAwMDAgICAgLyogc3RhcnQgb2YgRkxBU0gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgICAgIDB4ZmZmODAwMDAgICAgLyogc3RhcnQgb2YgbW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCSAgICAgICAweDgwMDAwMDAwICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICAgIDB4ZTAwMDAwMDAgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JU1JBTV9CQVNFCSAgICAgICAweGMwMDAwMDAwICAgIC8qIGludGVybmFsIFNSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJICAgICAgIDB4ZDAwMDAwMDAgICAgLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MDAwMDAwKQotI2RlZmluZSBDRkdfS0FSRUZfRlBHQV9CQVNFICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MjAwMDAwKQotI2RlZmluZSBDRkdfT0ZFTV9GUEdBX0JBU0UgICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4NDAwMDAwKQotI2RlZmluZSBDRkdfQk1FMzJfQkFTRQkgICAgICAoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDg1MDAwMDApCi0jZGVmaW5lIENGR19HUElPX0JBU0UJICAgICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNzAwKQorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiAgIChDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfS0FSRUZfRlBHQV9CQVNFICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwODIwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19PRkVNX0ZQR0FfQkFTRSAgICAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDA4NDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JNRTMyX0JBU0UJICAgICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwODUwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0JBU0UJICAgICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDcwMCkKIAogLyogSGVyZSBmb3IgY29tcGxldGVuZXNzICovCi0jZGVmaW5lIENGR19PRkVNQUNfQkFTRQkgICAgICAoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDg2MDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfT0ZFTUFDX0JBU0UJICAgICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwODYwMDAwMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyIChwbGFjZWQgaW4gaW50ZXJuYWwgU1JBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTSAgICAxCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSICAgICBDRkdfSVNSQU1fQkFTRQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgQ0ZHX0lTUkFNX0JBU0UgLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgMHgyMDAwCSAgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgIDEyOAkgICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAgICAgQ09ORklHX1NZU19JU1JBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAgICAgQ09ORklHX1NZU19JU1JBTV9CQVNFIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgICAweDIwMDAJICAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgIDEyOAkgICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSICAgIChDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQgICAgQ0ZHX1BPU1RfV09SRF9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSICAgIChDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSAgICAgICgyNTYgKiAxMDI0KSAgIC8qIFJzcnYgMjU2a0IgZm9yIE1vbgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgICAoMTI4ICogMTAyNCkgICAvKiBSc3J2IDEyOGtCIGZvciBtYWxsb2MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkgICAgICAoMjU2ICogMTAyNCkgICAvKiBSc3J2IDI1NmtCIGZvciBNb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSAgICAgICgxMjggKiAxMDI0KSAgIC8qIFJzcnYgMTI4a0IgZm9yIG1hbGxvYwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydApAQCAtOTUsNyArOTUsNyBAQAogI2RlZmluZSBDT05GSUdfU0VSSUFMX01VTFRJICAgMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJICAgICAgOTYwMAogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAgICAgezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTEwNSwyMSArMTA1LDIxIEBACiAgKiBUaGUgRFMxNzQzIGNvZGUgYXNzdW1lcyB0aGlzIGNvbmRpdGlvbiAoaS5lLiAtLSBpdCBhc3N1bWVzIHRoZSBiYXNlCiAgKiBhZGRyZXNzIGZvciB0aGUgUlRDIHJlZ2lzdGVycyBpczoKICAqCi0gKglDRkdfTlZSQU1fQkFTRV9BRERSICsgQ0ZHX05WUkFNX1NJWkUKKyAqCUNPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSICsgQ09ORklHX1NZU19OVlJBTV9TSVpFCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJICAgICAgKDB4MjAwMCAtIDgpICAgLyogTlZSQU0gc2l6ZSg4ayktIFJUQyByZWdzKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCSAgICAgICgweDIwMDAgLSA4KSAgIC8qIE5WUkFNIHNpemUoOGspLSBSVEMgcmVncyovCiAjZGVmaW5lIENPTkZJR19SVENfRFMxNzR4ICAgICAxCQkgICAgIC8qIERTMTc0MyBSVEMJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MgICAxCQkgICAgIC8qIG51bWJlciBvZiBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUICAgIDgJCSAgICAgLyogc2VjdG9ycyBwZXIgZGV2aWNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICAgMQkJICAgICAvKiBudW1iZXIgb2YgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgICAgOAkJICAgICAvKiBzZWN0b3JzIHBlciBkZXZpY2UJKi8KIAotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVCAgMTIwMDAwCSAgICAgLyogRmxhc2ggRXJhc2UgVE8gKGluIG1zKQkgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQgIDUwMAkgICAgIC8qIEZsYXNoIFdyaXRlIFRPKGluIG1zKQkgKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCAgMTIwMDAwCSAgICAgLyogRmxhc2ggRXJhc2UgVE8gKGluIG1zKQkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICA1MDAJICAgICAvKiBGbGFzaCBXcml0ZSBUTyhpbiBtcykJICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEREUiBTRFJBTQpAQCAtMTMyLDkgKzEzMiw5IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJICAgICAgMQkJICAgICAvKiBJMkMgaGFyZHdhcmUgc3VwcG9ydAkqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCSAgICAgLyogSTJDICFiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECSAgICAgIDQwMDAwMAkgICAgIC8qIEkyQyBzcGVlZCA0MDBrSHoJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkgICAgICAweDdGCSAgICAgLyogSTJDIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUyAgICAgIHsweDY5fQkgICAgIC8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECSAgICAgIDQwMDAwMAkgICAgIC8qIEkyQyBzcGVlZCA0MDBrSHoJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJICAgICAgMHg3RgkgICAgIC8qIEkyQyBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTICAgICAgezB4Njl9CSAgICAgLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KICNkZWZpbmUgQ09ORklHX0kyQ19CVVMxCSAgICAgIDEJCSAgICAgLyogSW5jbHVkZSBpMmMgYnVzIDEgc3VwcAkqLwogCiAKQEAgLTE0NywxMiArMTQ3LDEyIEBACiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFICAxCQkgICAgIC8qIGFsbG93IGVudiBvdmVyd3JpdGUJKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJICAgICAgMHgxMDAwCSAgICAgLyogU2l6ZSBvZiBFbnYgdmFycwkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJICAgICAgKENGR19OVlJBTV9CQVNFX0FERFIpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkgICAgICAoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIpCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWSAgICAgIDUJCSAgICAvKiA1IHNlY29uZCBhdXRvYm9vdCAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPICAgICAxCQkgICAgIC8qIGVjaG8gb24gZm9yIHNlcmlhbCBkbmxkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRSAxCQkgICAgIC8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFIDEJCSAgICAgLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5ldHdvcmtpbmcKQEAgLTE3NSw3ICsxNzUsNyBAQAogI2RlZmluZSBDT05GSUdfTkVUTUFTSwkgICAgICAyNTUuMjU1LjAuMAogI2RlZmluZSBDT05GSUdfRVRIQUREUgkgICAgICAwMDowMDowMDowMDowMDowMCAvKiBObyBFTUFDIDAgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfRVRIMUFERFIJICAgICAgMDA6MDA6MDA6MDA6MDA6MDAgLyogTm8gRU1BQyAxIHN1cHBvcnQJKi8KLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIgICAgIDMyCSAgICAgLyogI2V0aCByeCBidWZmICYgZGVzY3JzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUiAgICAgMzIJICAgICAvKiAjZXRoIHJ4IGJ1ZmYgJiBkZXNjcnMJKi8KIAogCiAvKgpAQCAtMjEyLDMzICsyMTIsMzMgQEAKIAogLyogSW5jbHVkZSBhdXRvIGNvbXBsZXRlIHdpdGggdGFicyAqLwogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURSAxCi0jZGVmaW5lIENGR19BTFRfTUVNVEVTVAkgICAgIDEJICAgICAvKiB1c2UgcmVhbCBtZW1vcnkgdGVzdAkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVAkgICAgIDEJICAgICAvKiB1c2UgcmVhbCBtZW1vcnkgdGVzdAkgKi8KIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QUk9NUFQJICAgICAgIkthUmVmRGVzPT4gIiAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJICAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkgICAgICAiS2FSZWZEZXM9PiAiICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCSAgICAgICAxCSAgICAgLyogSFVTSCBmb3IgZXh0J2QgY2xpCSovCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgICAgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCSAgICAgICAxCSAgICAgLyogSFVTSCBmb3IgZXh0J2QgY2xpCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICAgICI+ICIKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDb25zb2xlIEJ1ZmZlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkgICAgICAxMDI0CSAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgMTAyNAkgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgIDI1NgkgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCSAgICAgIDI1NgkgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQogCQkJCQkgICAgIC8qIFByaW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19NQVhBUkdTCSAgICAgIDE2CSAgICAgLyogbWF4IG51bWJlciBvZiBjbWQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJICAgICAgQ0ZHX0NCU0laRSAgICAgLyogQm9vdCBBcmcgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCSAgICAgIDE2CSAgICAgLyogbWF4IG51bWJlciBvZiBjbWQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCSAgICAgIENPTkZJR19TWVNfQ0JTSVpFICAgICAvKiBCb290IEFyZyBCdWZmZXIgU2l6ZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNZW1vcnkgVGVzdAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAgIDB4MDQwMDAwMAkgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECSAgICAgIDB4MEMwMDAwMAkgICAgIC8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgICAweDA0MDAwMDAJICAgICAvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJICAgICAgMHgwQzAwMDAwCSAgICAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDb21wYWN0IEZsYXNoIChpbiB0cnVlIElERSBtb2RlKQpAQCAtMjQ3LDE2ICsyNDcsMTYgQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIG5vIGxlZCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogCiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkCSovCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzc2VzCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCShDRkdfSURFX01BWEJVUyoxKSAvKiBtYXguIDEgZHJpdmVzIHBlciBJREUgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1c3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoxKSAvKiBtYXguIDEgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkgLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDAwCSAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDEwMDAwMCAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkgLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkgLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MTAwMDAwIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLwogCi0jZGVmaW5lIENGR19BVEFfU1RSSURFCQkyCSAvKiBEaXJlY3RseSBjb25uZWN0ZWQgQ0YsIG5lZWRzIGEgc3RyaWRlCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJMgkgLyogRGlyZWN0bHkgY29ubmVjdGVkIENGLCBuZWVkcyBhIHN0cmlkZQogCQkJCQkgICAgdG8gZ2V0IHRvIHRoZSBjb3JyZWN0IG9mZnNldCAqLwogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTiAgMQkJICAgICAvKiBJbmNsdWRlIGRvcyBwYXJ0aXRpb24JKi8KIApAQCAtMjY3LDIwICsyNjcsMjAgQEAKICNkZWZpbmUgQ09ORklHX1BDSQkJCSAgICAgLyogaW5jbHVkZSBwY2kgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJCSAgICAgLyogZG8gcGNpIHBsdWctYW5kLXBsYXkJKi8KICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCSAgICAgLyogc2hvdyBwY2kgZGV2aWNlcwkqLwotI2RlZmluZSBDRkdfUENJX1RBUkdCQVNFICAgICAgKENGR19QQ0lfTUVNQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UgICAgICAoQ09ORklHX1NZU19QQ0lfTUVNQkFTRSkKIAogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQJCSAgICAgLyogbGV0IGJvYXJkIGluaXQgcGNpIHRhcmdldCovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCQkgICAgIC8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTdCQQkgICAgIC8qIFNhbmRidXJzdCAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJICAgICAvKiBXaGF0ZXZlciAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxN0JBCSAgICAgLyogU2FuZGJ1cnN0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJICAgICAvKiBXaGF0ZXZlciAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCkBAIC0yOTksMTAgKzI5OSwxMCBAQAogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICN1bmRlZiBDT05GSUdfV0FUQ0hET0cJCQkgICAgIC8qIHdhdGNoZG9nIGRpc2FibGVkCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJICAgICAgMHg4MDAwMDAwCSAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkgICAgICAxCQkgICAgIC8qIHVzZSBleHRlbmRlZCBib2FyZF9pbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCSAgICAgIDB4ODAwMDAwMAkgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCSAgICAgIDEJCSAgICAgLyogdXNlIGV4dGVuZGVkIGJvYXJkX2luZm8gKi8KIAotI2RlZmluZSBDRkdfSFoJCSAgICAgIDEwMAkgICAgIC8qIGRlY3IgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkgICAgICAxMDAJICAgICAvKiBkZWNyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0tVUDRLLmggYi9pbmNsdWRlL2NvbmZpZ3MvS1VQNEsuaAppbmRleCA2Zjk5YzFiLi5hODI5OTg0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvS1VQNEsuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvS1VQNEsuaApAQCAtODEsNyArODEsNyBAQAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX0YJMQogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZQlDT05GSUdfV0FUQ0hET0cJMQkJLyogd2F0Y2hkb2cgZW5hYmxlZAkJKi8KIApAQCAtMTA5LDggKzEwOSw4IEBACiAjdW5kZWYJQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZQlDT05GSUdfU09GVF9JMkMgICAgICAgICAxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTkzMDAwCS8qIDkzIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTkzMDAwCS8qIDkzIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCiAKICNpZmRlZiBDT05GSUdfU09GVF9JMkMKIC8qCkBAIC0xMzUsMjAgKzEzNSwyMCBAQAogICogSTJDIENvbmZpZ3VyYXRpb24KICAqLwogCi0jZGVmaW5lIENGR19JMkNfUElDSU9fQUREUgkweDIxCS8qIFBDRjg1NzQgSU8gRXhwYW5kZXIJCQkqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NTEJLyogUENGODU2MyBSVEMJCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUElDSU9fQUREUgkweDIxCS8qIFBDRjg1NzQgSU8gRXhwYW5kZXIJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDUxCS8qIFBDRjg1NjMgUlRDCQkJCSovCiAKIAogLyogTGlzdCBvZiBJMkMgYWRkcmVzc2VzIHRvIGJlIHZlcmlmaWVkIGJ5IFBPU1QgKi8KIAotI2RlZmluZSBJMkNfQUREUl9MSVNUCXtDRkdfSTJDX1BJQ0lPX0FERFIsCVwKLQkJCUNGR19JMkNfUlRDX0FERFIsCVwKKyNkZWZpbmUgSTJDX0FERFJfTElTVAl7Q09ORklHX1NZU19JMkNfUElDSU9fQUREUiwJXAorCQkJQ09ORklHX1NZU19JMkNfUlRDX0FERFIsCVwKIAkJCX0KIAogCiAjZGVmaW5lIENPTkZJR19SVENfUENGODU2MwkJLyogdXNlIFBoaWxpcHMgUENGODU2MyBSVEMJKi8KIAotI2RlZmluZSBDRkdfRElTQ09WRVJfUEhZCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjZGVmaW5lIENPTkZJR19NSUkKIAogI2lmIDAKQEAgLTE2MSw5ICsxNjEsOSBAQAogI2lmIDEKIC8qIFBPU1Qgc3VwcG9ydCAqLwogCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfQ1BVCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9SVEMJICAgfCBcCi0JCQkJIENGR19QT1NUX0kyQykKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfQ1BVCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfUlRDCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfSTJDKQogI2VuZGlmCiAKIApAQCAtMTg2LDI3ICsxODYsMjcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDJDMDAwMDAJLyogNCAuLi4gNDQgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwMkMwMDAwMAkvKiA0IC4uLiA0NCBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDExNTIwMCB9CiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVCAxCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUIDEKIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0yMTYsNDMgKzIxNiw0MyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxOQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxOQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDQwMDAwIC8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yNjgsMTYgKzI2OCwxNiBAQAogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwogI2lmIDEKLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDBGMDAwMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAxMDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDRCMjY1MDBECS8qICdLJlA8Q1I+JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDBGMDAwMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMTAwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NEIyNjUwMEQJLyogJ0smUDxDUj4nICovCiAjZW5kaWYKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjg3LDEwICsyODcsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgMCAmJiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykgICAgICAgLyogS1VQIHVzZXMgZXh0ZXJuYWwgVFBTMzcwNSBXRCAqLwotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yOTgsMjcgKzI5OCwyNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTMyOCw3ICszMjgsNyBAQAogICoKICAqIElmIHRoaXMgaXMgYSA4MCBNSHogQ1BVLCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB0byA1ICg1KjE2PTgwKSEKICAqLwotI2RlZmluZSBDRkdfUExQUkNSICggKDUtMSk8PFBMUFJDUl9NRl9TSElGVCB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCApCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSICggKDUtMSk8PFBMUFJDUl9NRl9TSElGVCB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0zMzcsNyArMzM3LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjAwCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1RCUyB8IFNDQ1JfRUJERjAxIHwgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyB8IFNDQ1JfRUJERjAxIHwgIFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQpAQCAtMzUxLDE0ICszNTEsMTQgQEAKIC8qIEtVUDRLIHVzZSBib3RoIHNsb3RzLCBTTE9UX0EgYXMgInByaW1hcnkiLiAqLwogI2RlZmluZSBDT05GSUdfUENNQ0lBX1NMT1RfQSAxCiAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogI2RlZmluZSBQQ01DSUFfU09DS0VUU19OTyAyCiAjZGVmaW5lIFBDTUNJQV9NRU1fV0lOX05PIDgKQEAgLTM3MywyMyArMzczLDIzIEBACiAjZGVmaW5lIENPTkZJR19JREVfTEVECQkxCS8qIExFRAkgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMgotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQk0CisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMgorI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJNAogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfSURFMV9PRkZTRVQJKDQgKiBDRkdfUENNQ0lBX01FTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUxX09GRlNFVAkoNCAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFKQogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM5Nyw3ICszOTcsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIgMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTQxMCwyMiArNDEwLDIyIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAogCQkJCSBPUl9TQ1lfMl9DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCiAKIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAogCiAvKgpAQCAtNDU1LDExICs0NTUsMTEgQEAKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCiAjaWYgICBkZWZpbmVkKENPTkZJR184ME1IeikKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkxNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJMTU2CiAjZWxpZiBkZWZpbmVkKENPTkZJR182Nk1IeikKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkxMjkKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJMTI5CiAjZWxzZQkJLyogICA1MCBNSHogKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkgOTgKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJIDk4CiAjZW5kaWYJLypDT05GSUdfPz9NSHogKi8KIAogLyoKQEAgLTQ2NywxNSArNDY3LDE1IEBACiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFIgMHg0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUiAweDQwMAogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwotI2RlZmluZSBDRkdfTUFNUiAweDgwODAyMTE0CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUiAweDgwODAyMTE0CiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0tVUDRYLmggYi9pbmNsdWRlL2NvbmZpZ3MvS1VQNFguaAppbmRleCBhNzFiZTBmLi5iZTZkZmRhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvS1VQNFguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvS1VQNFguaApAQCAtNTAsMTEgKzUwLDExIEBACiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX1RZUEVTCTEJLyogc3VwcG9ydCBib2FyZCB0eXBlcwkJCSovCiAKLSNkZWZpbmUgQ0ZHXzhYWF9GQUNUCQk4CS8qIE11bHRpcGx5IGJ5IDgJCQkqLwotI2RlZmluZSBDRkdfOFhYX1hJTgkJMTYwMDAwMDAJLyogMTYgTUh6IGluCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU184WFhfRkFDVAkJOAkvKiBNdWx0aXBseSBieSA4CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU184WFhfWElOCQkxNjAwMDAwMAkvKiAxNiBNSHogaW4JCQkqLwogCiAKLSNkZWZpbmUgTVBDOFhYX0haICgoQ0ZHXzhYWF9YSU4pICogKENGR184WFhfRkFDVCkpCisjZGVmaW5lIE1QQzhYWF9IWiAoKENPTkZJR19TWVNfOFhYX1hJTikgKiAoQ09ORklHX1NZU184WFhfRkFDVCkpCiAKIC8qIHNob3VsZCBBTFdBWVMgZGVmaW5lIHRoaXMsIG1lYXN1cmVfZ2NsayBpbiBzcGVlZC5jIGlzIHVucmVsaWFibGUgKi8KIC8qIGluIGdlbmVyYWwsIHdlIGFsd2F5cyBrbm93IHRoaXMgZm9yIEZBRFMrbmV3IEFEUyBhbnl3YXkgKi8KQEAgLTkxLDcgKzkxLDcgQEAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9GCTEKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUJQ09ORklHX1dBVENIRE9HCQkxCS8qIHdhdGNoZG9nIGVuYWJsZWQJCSovCiAKQEAgLTExOCw4ICsxMTgsOCBAQAogI3VuZGVmCUNPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUJQ09ORklHX1NPRlRfSTJDICAgICAgICAgMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk5MzAwMAkvKiA5MyBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk5MzAwMAkvKiA5MyBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhGRQogCiAjaWZkZWYgQ09ORklHX1NPRlRfSTJDCiAvKgpAQCAtMTQ0LDIwICsxNDQsMjAgQEAKICAqIEkyQyBDb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfSTJDX1BJQ0lPX0FERFIJMHgyMQkvKiBQQ0Y4NTc0IElPIEV4cGFuZGVyCQkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDUxCS8qIFBDRjg1NjMgUlRDCQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1BJQ0lPX0FERFIJMHgyMQkvKiBQQ0Y4NTc0IElPIEV4cGFuZGVyCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg1MQkvKiBQQ0Y4NTYzIFJUQwkJCQkqLwogCiAKIC8qIExpc3Qgb2YgSTJDIGFkZHJlc3NlcyB0byBiZSB2ZXJpZmllZCBieSBQT1NUICovCiAKLSNkZWZpbmUgSTJDX0FERFJfTElTVAl7Q0ZHX0kyQ19QSUNJT19BRERSLAlcCi0JCQlDRkdfSTJDX1JUQ19BRERSLAlcCisjZGVmaW5lIEkyQ19BRERSX0xJU1QJe0NPTkZJR19TWVNfSTJDX1BJQ0lPX0FERFIsCVwKKwkJCUNPTkZJR19TWVNfSTJDX1JUQ19BRERSLAlcCiAJCQl9CiAKIAogI2RlZmluZSBDT05GSUdfUlRDX1BDRjg1NjMJCS8qIHVzZSBQaGlsaXBzIFBDRjg1NjMgUlRDCSovCiAKLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2RlZmluZSBDT05GSUdfTUlJCiAKICNpZiAwCkBAIC0xNzIsOSArMTcyLDkgQEAKICNpZiAxCiAvKiBQT1NUIHN1cHBvcnQgKi8KIAotI2RlZmluZSBDT05GSUdfUE9TVAkJKENGR19QT1NUX0NQVQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfUlRDCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9JMkMpCisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX0NQVQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1JUQwkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0kyQykKICNlbmRpZgogCiAKQEAgLTE5OSwyNiArMTk5LDI2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDAzQzAwMDAwCS8qIDQgLi4uIDYwIE1CIGluIERSQU0JKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDNDMDAwMDAJLyogNCAuLi4gNjAgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgMTE1MjAwIH0KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUIDEKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQgMQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTIyOCw0MyArMjI4LDQzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxOQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxOQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDQwMDAwIC8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yODAsMTYgKzI4MCwxNiBAQAogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwogI2lmIDEKLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDBGMDAwMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAxMDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDRCMjY1MDBECS8qICdLJlA8Q1I+JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDBGMDAwMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMTAwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NEIyNjUwMEQJLyogJ0smUDxDUj4nICovCiAjZW5kaWYKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjk5LDEwICsyOTksMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgMCAmJiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykgICAgICAgLyogS1VQIHVzZXMgZXh0ZXJuYWwgVFBTMzcwNSBXRCAqLwotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMTAsMTQgKzMxMCwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMjUsNyArMzI1LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMzMsNyArMzMzLDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHNldCB0aGUgUExMLCB0aGUgbG93LXBvd2VyIG1vZGVzIGFuZCB0aGUgcmVzZXQgY29udHJvbCAoMTUtMjkpCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKENGR184WFhfRkFDVCA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKChDT05GSUdfU1lTXzhYWF9GQUNUIDw8IFBMUFJDUl9NRklfU0hJRlQpIHwJXAogCQkJCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUykKIAogCkBAIC0zNDQsNyArMzQ0LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjAwCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1RCUyB8IFNDQ1JfRUJERjAxIHwgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyB8IFNDQ1JfRUJERjAxIHwgIFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQpAQCAtMzU4LDE0ICszNTgsMTQgQEAKIC8qIEtVUDRLIHVzZSBib3RoIHNsb3RzLCBTTE9UX0EgYXMgInByaW1hcnkiLiAqLwogI2RlZmluZSBDT05GSUdfUENNQ0lBX1NMT1RfQSAxCiAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogI2RlZmluZSBQQ01DSUFfU09DS0VUU19OTyAxCiAjZGVmaW5lIFBDTUNJQV9NRU1fV0lOX05PIDgKQEAgLTM4MCwyMyArMzgwLDIzIEBACiAjZGVmaW5lIENPTkZJR19JREVfTEVECQkJMSAgIC8qIExFRCAgIGZvciBpZGUgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEKLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMgorI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTIKIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUCSg0ICogQ0ZHX1BDTUNJQV9NRU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQJKDQgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSkKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MDQsNyArNDA0LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUiAwCisjZGVmaW5lIENPTkZJR19TWVNfREVSIDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC00MTcsMzAgKzQxNywzMCBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOgogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgT1JfU0NZXzJfQ0xLIHwgT1JfRUhUUiB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQogCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKIAotI2RlZmluZSBDRkdfTVBUUFIgMHg0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUiAweDQwMAogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwotI2RlZmluZSBDRkdfTUFNUiAweDgwODAyMTE0CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUiAweDgwODAyMTE0CiAKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9MQU5URUMuaCBiL2luY2x1ZGUvY29uZmlncy9MQU5URUMuaAppbmRleCA4YjdiMWUxLi5mMTRkOTQ1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTEFOVEVDLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0xBTlRFQy5oCkBAIC02OCw3ICs2OCw3IEBACiAJInNldGVudiBib290YXJncyByb290PS9kZXYvcmFtIHBhbmljPTU7Ym9vdG0gNDAwNDAwMDAgNDAwQTAwMDAiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTExOSwyNSArMTE5LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE0Nyw0MyArMTQ3LDQzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4ODAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTkyLDkgKzE5Miw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIwNCwxMCArMjA0LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMTUsNyArMjE1LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0RMSykKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9ETEspCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsb2NrIFNldHRpbmcgLSBIYXMgdGhlIExhbnRlYyBib2FyZCBhIDMya0h6IGNsb2NrID8/PyBbWFhYXQpAQCAtMjI4LDIwICsyMjgsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yNTIsNyArMjUyLDcgQEAKICAqIElmIHRoaXMgaXMgYSA4MCBNSHogQ1BVLCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB0byA1ICg1KjE2PTgwKSEKICAqLwogCQkJLyogdXAgdG8gNTAgTUh6IHdlIHVzZSBhIDE6MSBjbG9jayAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0yNjIsNyArMjYyLDcgQEAKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKIAkJCS8qIHVwIHRvIDUwIE1IeiB3ZSB1c2UgYSAxOjEgY2xvY2sgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTI3Miw3ICsyNzIsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTI4NywyMCArMjg3LDIwIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZyAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNIICAgICAoT1JfQ1NOVF9TQU0gIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIICAgICAoT1JfQ1NOVF9TQU0gIHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV81X0NMSyB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1I1X1JFTUFQICAgQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1I1X1BSRUxJTSAgQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0gICgoRkxBU0hfQkFTRTVfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9SRU1BUCAgIENPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTSAgQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTSAgKChGTEFTSF9CQVNFNV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtMzEwLDMyICszMTAsMzIgQEAKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUgICAgICAgICAgMHgwNDAwMDAwMCAgICAgIC8qIG1heCA2NCBNQiBwZXIgYmFuayAgICovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzCQkJCQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNICAgICAoT1JfQ1NOVF9TQU0pCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICAgICAoT1JfQ1NOVF9TQU0pCiAKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0gIChDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjNfUFJFTElNICAoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTSAgKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0gICgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKICAqLwogCiAvKiByZWZyZXNoIHJhdGUgMTUuNiB1cyAoPSA2NCBtcyAvIDRLID0gNjIuNCAvIHF1YWQgYnVyc3RzKSBmb3IgPD0gMTI4IE1CaXQJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk3CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wgXAotCQkJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRSAgICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTCBcCisJCQkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRSAgICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWCAgICB8IE1BTVJfV0xGQV8xWCAgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL001MjI3N0VWQi5oIGIvaW5jbHVkZS9jb25maWdzL001MjI3N0VWQi5oCmluZGV4IDdmMjRjNGUuLmI2MjI2YzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NNTIyNzdFVkIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTTUyMjc3RVZCLmgKQEAgLTM5LDkgKzM5LDkgQEAKICNkZWZpbmUgQ09ORklHX001MjI3N0VWQgkvKiBNNTIyNzdFVkIgYm9hcmQgKi8KIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogI3VuZGVmIENPTkZJR19XQVRDSERPRwogCkBAIC03NSw4ICs3NSw4IEBACiAKICNkZWZpbmUgQ09ORklHX0hPU1ROQU1FCQlNNTIyNzdFVkIKICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJXAotCSJpbnBjbGs9IiBNS19TVFIoQ0ZHX0lOUFVUX0NMS1NSQykgIlwwIglcCi0JImxvYWRhZGRyPSIgTUtfU1RSKENGR19MT0FEX0FERFIpICJcMCIJXAorCSJpbnBjbGs9IiBNS19TVFIoQ09ORklHX1NZU19JTlBVVF9DTEtTUkMpICJcMCIJXAorCSJsb2FkYWRkcj0iIE1LX1NUUihDT05GSUdfU1lTX0xPQURfQUREUikgIlwwIglcCiAJInUtYm9vdD11LWJvb3QuYmluXDAiCQkJXAogCSJsb2FkPXRmdHAgJHtsb2FkYWRkcikgJHt1LWJvb3R9XDAiCVwKIAkidXBkPXJ1biBsb2FkOyBydW4gcHJvZ1wwIgkJXApAQCAtMTAyLDE0ICsxMDIsMTQgQEAKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04KICNkZWZpbmUgQ09ORklHX01BQ19QQVJUSVRJT04KICNkZWZpbmUgQ09ORklHX0lTT19QQVJUSVRJT04KLSNkZWZpbmUgQ0ZHX1VTQl9FSENJX1JFR1NfQkFTRQkJMHhGQzBCMDAwMAotI2RlZmluZSBDRkdfVVNCX0VIQ0lfQ1BVX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfRUhDSV9SRUdTX0JBU0UJCTB4RkMwQjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfRUhDSV9DUFVfSU5JVAogI2VuZGlmCiAKIC8qIFJlYWx0aW1lIGNsb2NrICovCiAjZGVmaW5lIENPTkZJR19NQ0ZSVEMKICN1bmRlZiBSVENfREVCVUcKLSNkZWZpbmUgQ0ZHX1JUQ19PU0NJTExBVE9SCSgzMiAqIENGR19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19SVENfT1NDSUxMQVRPUgkoMzIgKiBDT05GSUdfU1lTX0haKQogCiAvKiBUaW1lciAqLwogI2RlZmluZSBDT05GSUdfTUNGVE1SCkBAIC0xMTksMzUgKzExOSwzNSBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCS8qIEkyQyBiaXQtYmFuZ2VkICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJODAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDU4MDAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4NTgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX01CQVIKIAogLyogSW5wdXQsIFBDSSwgRmxleGJ1cywgYW5kIFZDTyAqLwogI2RlZmluZSBDT05GSUdfRVhUUkFfQ0xPQ0sKIAotI2RlZmluZSBDRkdfSU5QVVRfQ0xLU1JDCTE2MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDCTE2MDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX1BSQU0JCTUxMgkvKiA1MTIgS0IgKi8KIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiLT4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiLT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkoQ0ZHX1NEUkFNX0JBU0UgKyAweDEwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MTAwMDApCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAogCi0jZGVmaW5lIENGR19NQkFSCQkweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGQzAwMDAwMAogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE1OCwzNiArMTU4LDM2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDgwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9DVFJMCTB4MjEKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCSgoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKSAtIDE2KQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDgwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQ1RSTAkweDIxCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCSgoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpIC0gMTYpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTY0CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0NGRzEJCTB4NDM3MTE2MzAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0NGRzIJCTB4NTY2NzAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0NUUkwJCTB4RTEwOTIwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0VNT0QJCTB4ODE4MTAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX01PREUJCTB4MDBDRDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJNjQJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NGRzEJCTB4NDM3MTE2MzAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcyCQkweDU2NjcwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ1RSTAkJMHhFMTA5MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0VNT0QJCTB4ODE4MTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9NT0RFCQkweDAwQ0QwMDAwCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UgKyAweDQwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCSgoQ0ZHX1NEUkFNX1NJWkUgLSAzKSA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCSgoQ09ORklHX1NZU19TRFJBTV9TSVpFIC0gMykgPDwgMjApCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMCkKLSNkZWZpbmUgQ0ZHX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCiAKIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyogQ29uZmlndXJhdGlvbiBmb3IgZW52aXJvbm1lbnQKICAqIEVudmlyb25tZW50IGlzIGVtYmVkZGVkIGluIHUtYm9vdCBpbiB0aGUgc2Vjb25kIHNlY3RvciBvZiB0aGUgZmxhc2gKQEAgLTE5OSwyMSArMTk5LDIxIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0NTMF9CQVNFCi0jZGVmaW5lIENGR19GTEFTSDBfQkFTRQkJQ0ZHX0NTMF9CQVNFCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfQ1MwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRQkJQ09ORklHX1NZU19DUzBfQkFTRQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDgwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4ODAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNpZmRlZiBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9DRkkKIAogIwlkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQotIwlkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MTAwMDAwMAkvKiBNYXggc2l6ZSB0aGF0IHRoZSBib2FyZCBtaWdodCBoYXZlICovCi0jCWRlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jCWRlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTM3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotIwlkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCi0jCWRlZmluZSBDRkdfRkxBU0hfQ0hFQ0tTVU0KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgxMDAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCiAjZW5kaWYKIAogLyoKQEAgLTIyMywxMyArMjIzLDEzIEBACiAjaWZkZWYgQ09ORklHX0NNRF9KRkZTMgogIwlkZWZpbmUgQ09ORklHX0pGRlMyX0RFVgkJIm5vcjAiCiAjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9TSVpFCSgweDAxMDAwMDAwIC0gMHg0MDAwMCkKLSMJZGVmaW5lIENPTkZJR19KRkZTMl9QQVJUX09GRlNFVAkoQ0ZHX0ZMQVNIMF9CQVNFICsgMHg0MDAwMCkKKyMJZGVmaW5lIENPTkZJR19KRkZTMl9QQVJUX09GRlNFVAkoQ09ORklHX1NZU19GTEFTSDBfQkFTRSArIDB4NDAwMDApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJMTYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWVtb3J5IGJhbmsgZGVmaW5pdGlvbnMKQEAgLTI0Myw4ICsyNDMsOCBAQAogICogQ1M1IC0gQXZhaWxhYmxlCiAgKi8KIAotI2RlZmluZSBDRkdfQ1MwX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMF9NQVNLCQkweDAwRkYwMDAxCi0jZGVmaW5lIENGR19DUzBfQ1RSTAkJMHgwMDAwMUZBMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX01BU0sJCTB4MDBGRjAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQ1RSTAkJMHgwMDAwMUZBMAogCiAjZW5kaWYJCQkJLyogX001MjI3N0VWQl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTTUyMzVFVkIuaCBiL2luY2x1ZGUvY29uZmlncy9NNTIzNUVWQi5oCmluZGV4IGYzNTJkYjEuLmU2Yzg3ZWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NNTIzNUVWQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NNTIzNUVWQi5oCkBAIC0zOCw5ICszOCw5IEBACiAjZGVmaW5lIENPTkZJR19NNTIzNQkJLyogZGVmaW5lIHByb2Nlc3NvciB0eXBlICovCiAKICNkZWZpbmUgQ09ORklHX01DRlVBUlQKLSNkZWZpbmUgQ0ZHX1VBUlRfUE9SVAkJKDApCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9QT1JUCQkoMCkKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CiAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cKICNkZWZpbmUgQ09ORklHX1dBVENIRE9HX1RJTUVPVVQJNTAwMAkvKiB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcywgbWF4IHRpbWVvdXQgaXMgNi43MXNlYyAqLwpAQCAtNzgsMjIgKzc4LDIyIEBACiAjCWRlZmluZSBDT05GSUdfTkVUX01VTFRJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKLSMJZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkKLSMJZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgKLSMJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwlkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKKyMJZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CisjCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAKLSMJZGVmaW5lIENGR19GRUMwX1BJTk1VWAkJMAotIwlkZWZpbmUgQ0ZHX0ZFQzBfTUlJQkFTRQkJQ0ZHX0ZFQzBfSU9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfUElOTVVYCQkwCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQkJQ09ORklHX1NZU19GRUMwX0lPQkFTRQogIwlkZWZpbmUgTUNGRkVDX1RPVVRfTE9PUAkJNTAwMDAKLS8qIElmIENGR19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KLSMJaWZuZGVmIENGR19ESVNDT1ZFUl9QSFkKKy8qIElmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIGlzIG5vdCBkZWZpbmVkIC0gaGFyZGNvZGVkICovCisjCWlmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogIwkJZGVmaW5lIEZFQ0RVUExFWAlGVUxMCiAjCQlkZWZpbmUgRkVDU1BFRUQJCV8xMDBCQVNFVAogIwllbHNlCi0jCQlpZm5kZWYgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCi0jCQkJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJaWZuZGVmIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJCQlkZWZpbmUgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgogIwkJZW5kaWYKLSMJZW5kaWYJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjCWVuZGlmCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KICNlbmRpZgogCiAvKiBUaW1lciAqLwpAQCAtMTA0LDEzICsxMDQsMTMgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBodyBzdXBwb3J0ICovCiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDAwMDAwMzAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgotI2RlZmluZSBDRkdfSTJDX1BJTk1VWF9SRUcJKGdwaW8tPnBhcl9xc3BpKQotI2RlZmluZSBDRkdfSTJDX1BJTk1VWF9DTFIJfihHUElPX1BBUl9GRUNJMkNfU0NMX01BU0sgfCBHUElPX1BBUl9GRUNJMkNfU0RBX01BU0spCi0jZGVmaW5lIENGR19JMkNfUElOTVVYX1NFVAkoR1BJT19QQVJfRkVDSTJDX1NDTF9JMkNTQ0wgfCBHUElPX1BBUl9GRUNJMkNfU0RBX0kyQ1NEQSkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgwMDAwMDMwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfTUJBUgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19QSU5NVVhfUkVHCShncGlvLT5wYXJfcXNwaSkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUElOTVVYX0NMUgl+KEdQSU9fUEFSX0ZFQ0kyQ19TQ0xfTUFTSyB8IEdQSU9fUEFSX0ZFQ0kyQ19TREFfTUFTSykKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUElOTVVYX1NFVAkoR1BJT19QQVJfRkVDSTJDX1NDTF9JMkNTQ0wgfCBHUElPX1BBUl9GRUNJMkNfU0RBX0kyQ1NEQSkKIAogLyogdGhpcyBtdXN0IGJlIGluY2x1ZGVkIEFGVEVSIHRoZSBkZWZpbml0aW9uIG9mIENPTkZJR19DT01NQU5EUyAoaWYgYW55KSAqLwogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTEJLyogYXV0b2Jvb3QgYWZ0ZXIgNSBzZWNvbmRzICovCkBAIC0xMzgsMjUgKzEzOCwyNSBAQAogCSIiCiAKICNkZWZpbmUgQ09ORklHX1BSQU0JCTUxMgkvKiA1MTIgS0IgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIi0+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIi0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0tHREIpCi0jCWRlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjCWRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSMJZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworIwlkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJKENGR19TRFJBTV9CQVNFKzB4MjAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFKzB4MjAwMDApCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAotI2RlZmluZSBDRkdfQ0xLCQkJNzUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NQVV9DTEsJCUNGR19DTEsgKiAyCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLCQkJNzUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUFVfQ0xLCQlDT05GSUdfU1lTX0NMSyAqIDIKIAotI2RlZmluZSBDRkdfTUJBUgkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4NDAwMDAwMDAKIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjYsMjkgKzE2NiwyOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0NUUkwJMHgyMQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSAtIDB4MTApCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQ1RSTAkweDIxCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAtIDB4MTApCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTE2CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMTYJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCUNGR19TRFJBTV9CQVNFICsgMHg0MDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoKENGR19TRFJBTV9TSVpFIC0gMykgPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAlDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoKENPTkZJR19TWVNfU0RSQU1fU0laRSAtIDMpIDw8IDIwKQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFICsgMHg0MDApCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwogCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0Ci0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCkBAIC0xOTYsMjYgKzE5NiwyNiBAQAogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2lmZGVmIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NGSQogIwlkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQotIwlkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4ODAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHg4MDAwMDAJLyogTWF4IHNpemUgdGhhdCB0aGUgYm9hcmQgbWlnaHQgaGF2ZSAqLwogI2lmZGVmIE5PUkZMQVNIX1BTMzJCSVQKLSMJZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzMyQklUCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMzJCSVQKICNlbHNlCi0jCWRlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCiAjZW5kaWYKLSMJZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEzNwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSMJZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJKENGR19DUzBfQkFTRSA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkoQ09ORklHX1NZU19DUzBfQkFTRSA8PCAxNikKIAogLyogQ29uZmlndXJhdGlvbiBmb3IgZW52aXJvbm1lbnQKICAqIEVudmlyb25tZW50IGlzIGVtYmVkZGVkIGluIHUtYm9vdCBpbiB0aGUgc2Vjb25kIHNlY3RvciBvZiB0aGUgZmxhc2gKQEAgLTIzNSw3ICsyMzUsNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENoaXBzZWxlY3QgYmFuayBkZWZpbml0aW9ucwpAQCAtMjUxLDEzICsyNTEsMTMgQEAKICAqIENTNyAtIEF2YWlsYWJsZQogICovCiAjaWZkZWYgTk9SRkxBU0hfUFMzMkJJVAotIwlkZWZpbmUgQ0ZHX0NTMF9CQVNFCTB4RkZDMAotIwlkZWZpbmUgQ0ZHX0NTMF9NQVNLCTB4MDAzZjAwMDEKLSMJZGVmaW5lIENGR19DUzBfQ1RSTAkweDFEMDAKKyMJZGVmaW5lIENPTkZJR19TWVNfQ1MwX0JBU0UJMHhGRkMwCisjCWRlZmluZSBDT05GSUdfU1lTX0NTMF9NQVNLCTB4MDAzZjAwMDEKKyMJZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NUUkwJMHgxRDAwCiAjZWxzZQotIwlkZWZpbmUgQ0ZHX0NTMF9CQVNFCTB4RkZFMAotIwlkZWZpbmUgQ0ZHX0NTMF9NQVNLCTB4MDAxZjAwMDEKLSMJZGVmaW5lIENGR19DUzBfQ1RSTAkweDFEODAKKyMJZGVmaW5lIENPTkZJR19TWVNfQ1MwX0JBU0UJMHhGRkUwCisjCWRlZmluZSBDT05GSUdfU1lTX0NTMF9NQVNLCTB4MDAxZjAwMDEKKyMJZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NUUkwJMHgxRDgwCiAjZW5kaWYKIAogI2VuZGlmCQkJCS8qIF9NNTMyOUVWQl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTTUyNDlFVkIuaCBiL2luY2x1ZGUvY29uZmlncy9NNTI0OUVWQi5oCmluZGV4IDQ1MjVlMmQuLjg2OTllZjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NNTI0OUVWQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NNTI0OUVWQi5oCkBAIC00MCw5ICs0MCw5IEBACiAjZGVmaW5lIENPTkZJR19NQ0ZUTVIKIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogI3VuZGVmICBDT05GSUdfV0FUQ0hET0cKIApAQCAtNjIsMzggKzYyLDM4IEBACiAjaW5jbHVkZSA8Y29uZmlnX2NtZF9kZWZhdWx0Lmg+CiAjdW5kZWYgQ09ORklHX0NNRF9ORVQKIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cAkqLwogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURQkxCS8qIGFkZCBhdXRvY29tcGxldGlvbiBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19MT09QVwkJMQkvKiBlbmFibGUgbG9vcHcgY29tbWFuZAkqLwogI2RlZmluZSBDT05GSUdfTVhfQ1lDTElDCTEJLyogZW5hYmxlIG1kYy9td2MgY29tbWFuZHMJKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDQwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MzgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDM4MDAwMAogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAogLyoKICAqIENsb2NrIGNvbmZpZ3VyYXRpb246IGVuYWJsZSBvbmx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbnMKICAqLwogCi0jdW5kZWYgIENGR19QTExfQllQQVNTCQkJCS8qIGJ5cGFzcyBQTEwgZm9yIHRlc3QgcHVycG9zZSAqLwotI2RlZmluZSBDRkdfRkFTVF9DTEsJCTEJCS8qIE1DRjUyNDkgY2FuIHJ1biBhdCAxNDBNSHogICAqLwotI2RlZmluZQlDRkdfQ0xLCQkJMTMyMDI1NjAwCS8qIE1DRjUyNDkgY2FuIHJ1biBhdCAxNDBNSHogICAqLworI3VuZGVmICBDT05GSUdfU1lTX1BMTF9CWVBBU1MJCQkJLyogYnlwYXNzIFBMTCBmb3IgdGVzdCBwdXJwb3NlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkFTVF9DTEsJCTEJCS8qIE1DRjUyNDkgY2FuIHJ1biBhdCAxNDBNSHogICAqLworI2RlZmluZQlDT05GSUdfU1lTX0NMSwkJCTEzMjAyNTYwMAkvKiBNQ0Y1MjQ5IGNhbiBydW4gYXQgMTQwTUh6ICAgKi8KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xMDEsMTcgKzEwMSwxNyBAQAogICogWW91IHNob3VsZCBrbm93IHdoYXQgeW91IGFyZSBkb2luZyBpZiB5b3UgbWFrZSBjaGFuZ2VzIGhlcmUuCiAgKi8KIAotI2RlZmluZSBDRkdfTUJBUgkJMHgxMDAwMDAwMAkvKiBSZWdpc3RlciBCYXNlIEFkZHJzICovCi0jZGVmaW5lCUNGR19NQkFSMgkJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4MTAwMDAwMDAJLyogUmVnaXN0ZXIgQmFzZSBBZGRycyAqLworI2RlZmluZQlDT05GSUdfU1lTX01CQVIyCQkweDgwMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg0MDAwCS8qIEFkZHJlc3Mgb2YgRW52aXJvbm1lbnQgU2VjdG9yKi8KQEAgLTEyMSw3NCArMTIxLDc0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMTYJCS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCShDRkdfQ1NBUjAgPDwgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTE2CQkvKiBTRFJBTSBzaXplIGluIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJKENPTkZJR19TWVNfQ1NBUjAgPDwgMTYpCiAKICNpZiAwIC8qIHRlc3Qtb25seSAqLwogI2RlZmluZSBDT05GSUdfUFJBTQkJNTEyIC8qIHRlc3Qtb25seSBmb3IgU0RSQU0gcHJvYmxlbSEhISEhISEhISEhISEhISEhISEhICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDApCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDIwMDAwCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMSAqIDEwMjQqMTAyNCkJLyogUmVzZXJ2ZSAxIE1CIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JNjQqMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEgKiAxMDI0KjEwMjQpCS8qIFJlc2VydmUgMSBNQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2lmZGVmIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NGSQogCiAjCWRlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCi0jCWRlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgxMDAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KLSMJZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCi0jCWRlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSMJZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jCWRlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KLSMJZGVmaW5lIENGR19GTEFTSF9DSEVDS1NVTQotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9CisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MTAwMDAwMAkvKiBNYXggc2l6ZSB0aGF0IHRoZSBib2FyZCBtaWdodCBoYXZlICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKKyMJZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTM3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWVtb3J5IGJhbmsgZGVmaW5pdGlvbnMKICAqLwogCiAvKiBDUzAgLSBBTUQgRmxhc2gsIGFkZHJlc3MgMHhmZmMwMDAwMCAqLwotI2RlZmluZQlDRkdfQ1NBUjAJCTB4ZmZlMAotI2RlZmluZQlDRkdfQ1NDUjAJCTB4MTk4MAkJLyogV1M9MDExMCwgQUE9MSwgUFM9MTAgICAgICAgICAqLworI2RlZmluZQlDT05GSUdfU1lTX0NTQVIwCQkweGZmZTAKKyNkZWZpbmUJQ09ORklHX1NZU19DU0NSMAkJMHgxOTgwCQkvKiBXUz0wMTEwLCBBQT0xLCBQUz0xMCAgICAgICAgICovCiAvKiogTm90ZTogVGhlcmUgaXMgYSBDU01SMC9EUkFNIHZlY3RvciBwcm9ibGVtLCBuZWVkIHRvIGRpc2FibGUgQy9JICoqKi8KLSNkZWZpbmUJQ0ZHX0NTTVIwCQkweDAwM2YwMDIxCS8qIDRNQiwgQUE9MCwgV1A9MCwgQy9JPTEsIFY9MSAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DU01SMAkJMHgwMDNmMDAyMQkvKiA0TUIsIEFBPTAsIFdQPTAsIEMvST0xLCBWPTEgICovCiAKIC8qIENTMSAtIEZQR0EsIGFkZHJlc3MgMHhlMDAwMDAwMCAqLwotI2RlZmluZQlDRkdfQ1NBUjEJCTB4ZTAwMAotI2RlZmluZQlDRkdfQ1NDUjEJCTB4MGQ4MAkJLyogV1M9MDAxMSwgQUE9MSwgUFM9MTAgICAgICAgICAqLwotI2RlZmluZQlDRkdfQ1NNUjEJCTB4MDAwMTAwMDEJLyogMTI4a0IsIEFBPTAsIFdQPTAsIEMvST0wLCBWPTEqLworI2RlZmluZQlDT05GSUdfU1lTX0NTQVIxCQkweGUwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19DU0NSMQkJMHgwZDgwCQkvKiBXUz0wMDExLCBBQT0xLCBQUz0xMCAgICAgICAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ1NNUjEJCTB4MDAwMTAwMDEJLyogMTI4a0IsIEFBPTAsIFdQPTAsIEMvST0wLCBWPTEqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQb3J0IGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZQlDRkdfR1BJT19GVU5DCQkweDAwMDAwMDA4CS8qIFNldCBncGlvIHBpbnM6IG5vbmUgICAgICAgICAgKi8KLSNkZWZpbmUJQ0ZHX0dQSU8xX0ZVTkMJCTB4MDBkZjAwZjAJLyogMzYtMzkoU1dJVENIKSw0OC01MihGUEdBcyksNTQqLwotI2RlZmluZQlDRkdfR1BJT19FTgkJMHgwMDAwMDAwOAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICAgICAgICovCi0jZGVmaW5lCUNGR19HUElPMV9FTgkJMHgwMGM3MDAwMAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICAgICAgICovCi0jZGVmaW5lCUNGR19HUElPX09VVAkJMHgwMDAwMDAwOAkvKiBTZXQgb3V0cHV0cyB0byBkZWZhdWx0IHN0YXRlICovCi0jZGVmaW5lCUNGR19HUElPMV9PVVQJCTB4MDBjNzAwMDAJLyogU2V0IG91dHB1dHMgdG8gZGVmYXVsdCBzdGF0ZSAqLwotI2RlZmluZSBDRkdfR1BJTzFfTEVECQkweDAwNDAwMDAwCS8qIHVzZXIgbGVkICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HUElPX0ZVTkMJCTB4MDAwMDAwMDgJLyogU2V0IGdwaW8gcGluczogbm9uZSAgICAgICAgICAqLworI2RlZmluZQlDT05GSUdfU1lTX0dQSU8xX0ZVTkMJCTB4MDBkZjAwZjAJLyogMzYtMzkoU1dJVENIKSw0OC01MihGUEdBcyksNTQqLworI2RlZmluZQlDT05GSUdfU1lTX0dQSU9fRU4JCTB4MDAwMDAwMDgJLyogU2V0IGdwaW8gb3V0cHV0IGVuYWJsZSAgICAgICAqLworI2RlZmluZQlDT05GSUdfU1lTX0dQSU8xX0VOCQkweDAwYzcwMDAwCS8qIFNldCBncGlvIG91dHB1dCBlbmFibGUgICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HUElPX09VVAkJMHgwMDAwMDAwOAkvKiBTZXQgb3V0cHV0cyB0byBkZWZhdWx0IHN0YXRlICovCisjZGVmaW5lCUNPTkZJR19TWVNfR1BJTzFfT1VUCQkweDAwYzcwMDAwCS8qIFNldCBvdXRwdXRzIHRvIGRlZmF1bHQgc3RhdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9MRUQJCTB4MDA0MDAwMDAJLyogdXNlciBsZWQgICAgICAgICAgICAgICAgICAgICAqLwogCiAjZW5kaWYJLyogTTUyNDkgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NNTI1M0RFTU8uaCBiL2luY2x1ZGUvY29uZmlncy9NNTI1M0RFTU8uaAppbmRleCA4ZDliZmEzLi4zYTVjMTJmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTTUyNTNERU1PLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL001MjUzREVNTy5oCkBAIC0zMSw5ICszMSw5IEBACiAjZGVmaW5lIENPTkZJR19NQ0ZUTVIKIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogI3VuZGVmIENPTkZJR19XQVRDSERPRwkJLyogZGlzYWJsZSB3YXRjaGRvZyAqLwogCkBAIC00Nyw3ICs0Nyw3IEBACiAjCWRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAKICMJZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2Vsc2UKLSMJZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg0MDAwKQorIwlkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwKQogIwlkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwCiAjCWRlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNlbmRpZgpAQCAtNzUsMjIgKzc1LDIyIEBACiAjCWRlZmluZSBDT05GSUdfQVRBUEkKICMJdW5kZWYgQ09ORklHX0xCQTQ4CiAKLSMJZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCi0jCWRlZmluZSBDRkdfSURFX01BWERFVklDRQkyCisjCWRlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEKKyMJZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkyCiAKLSMJZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCShDRkdfTUJBUjIgKyAweDgwMCkKLSMJZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMAorIwlkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCShDT05GSUdfU1lTX01CQVIyICsgMHg4MDApCisjCWRlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkwCiAKLSMJZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHhBMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCi0jCWRlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHhBMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAqLwotIwlkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4QzAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCi0jCWRlZmluZSBDRkdfQVRBX1NUUklERQkJNAkvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHhBMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCisjCWRlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4QTAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHhDMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJNAkvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycyAqLwogIwlkZWZpbmUgX0lPX0JBU0UJCQkwCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfRFJJVkVSX0RNOTAwMAogI2lmZGVmIENPTkZJR19EUklWRVJfRE05MDAwCi0jCWRlZmluZSBDT05GSUdfRE05MDAwX0JBU0UJKChDRkdfQ1NBUjEgPDwgMTYpIHwgMHgzMDApCisjCWRlZmluZSBDT05GSUdfRE05MDAwX0JBU0UJKChDT05GSUdfU1lTX0NTQVIxIDw8IDE2KSB8IDB4MzAwKQogIwlkZWZpbmUgRE05MDAwX0lPCQlDT05GSUdfRE05MDAwX0JBU0UKICMJZGVmaW5lIERNOTAwMF9EQVRBCQkoQ09ORklHX0RNOTAwMF9CQVNFICsgNCkKICMJdW5kZWYgQ09ORklHX0RNOTAwMF9ERUJVRwpAQCAtMTA0LDcgKzEwNCw3IEBACiAKICMJZGVmaW5lIENPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MJCVwKIAkJIm5ldGRldj1ldGgwXDAiCQkJCVwKLQkJImlucGNsaz0iIE1LX1NUUihDRkdfSU5QVVRfQ0xLU1JDKSAiXDAiCVwKKwkJImlucGNsaz0iIE1LX1NUUihDT05GSUdfU1lTX0lOUFVUX0NMS1NSQykgIlwwIglcCiAJCSJsb2FkYWRkcj0xMDAwMFwwIgkJCVwKIAkJInUtYm9vdD11LWJvb3QuYmluXDAiCQkJXAogCQkibG9hZD10ZnRwICR7bG9hZGFkZHIpICR7dS1ib290fVwwIglcCkBAIC0xMjEsNDEgKzEyMSw0MSBAQAogLyogSTJDICovCiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaHcgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDAwMDAwMjgwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgotI2RlZmluZSBDRkdfSTJDX1BJTk1VWF9SRUcJKCoodTMyICopIChDRkdfTUJBUisweDE5QykpCi0jZGVmaW5lIENGR19JMkNfUElOTVVYX0NMUgkoMHhGRkZGRTdGRikKLSNkZWZpbmUgQ0ZHX0kyQ19QSU5NVVhfU0VUCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDAwMDAwMjgwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19NQkFSCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1BJTk1VWF9SRUcJKCoodTMyICopIChDT05GSUdfU1lTX01CQVIrMHgxOUMpKQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19QSU5NVVhfQ0xSCSgweEZGRkZFN0ZGKQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19QSU5NVVhfU0VUCSgwKQogCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMJZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotIwlkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjCWRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4NDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgzODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MzgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAogCi0jdW5kZWYgQ0ZHX1BMTF9CWVBBU1MJCS8qIGJ5cGFzcyBQTEwgZm9yIHRlc3QgcHVycG9zZSAqLwotI2RlZmluZSBDRkdfRkFTVF9DTEsKLSNpZmRlZiBDRkdfRkFTVF9DTEsKLSMJZGVmaW5lIENGR19QTExDUgkweDEyNDNFMDU0Ci0jCWRlZmluZSBDRkdfQ0xLCQkxNDAwMDAwMDAKKyN1bmRlZiBDT05GSUdfU1lTX1BMTF9CWVBBU1MJCS8qIGJ5cGFzcyBQTEwgZm9yIHRlc3QgcHVycG9zZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZBU1RfQ0xLCisjaWZkZWYgQ09ORklHX1NZU19GQVNUX0NMSworIwlkZWZpbmUgQ09ORklHX1NZU19QTExDUgkweDEyNDNFMDU0CisjCWRlZmluZSBDT05GSUdfU1lTX0NMSwkJMTQwMDAwMDAwCiAjZWxzZQotIwlkZWZpbmUgQ0ZHX1BMTENSCTB4MTM1YTQxNDAKLSMJZGVmaW5lIENGR19DTEsJCTcwMDAwMDAwCisjCWRlZmluZSBDT05GSUdfU1lTX1BMTENSCTB4MTM1YTQxNDAKKyMJZGVmaW5lIENPTkZJR19TWVNfQ0xLCQk3MDAwMDAwMAogI2VuZGlmCiAKIC8qCkBAIC0xNjQsMTAwICsxNjQsMTAwIEBACiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwogCi0jZGVmaW5lIENGR19NQkFSCQkweDEwMDAwMDAwCS8qIFJlZ2lzdGVyIEJhc2UgQWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX01CQVIyCQkweDgwMDAwMDAwCS8qIE1vZHVsZSBCYXNlIEFkZHJzIDIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweDEwMDAwMDAwCS8qIFJlZ2lzdGVyIEJhc2UgQWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSMgkJMHg4MDAwMDAwMAkvKiBNb2R1bGUgQmFzZSBBZGRycyAyICovCiAKIC8qCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMTYJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkxNgkvKiBTRFJBTSBzaXplIGluIE1CICovCiAKICNpZmRlZiBDT05GSUdfTU9OSVRPUl9JU19JTl9SQU0KLSMJZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgyMDAwMAorIwlkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgyMDAwMAogI2Vsc2UKLSMJZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFICsgMHg0MDApCisjCWRlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDApCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4NDAwMDAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkoNjQqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHg0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JKDY0KjEwMjQpCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyogRkxBU0ggb3JnYW5pemF0aW9uICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkoQ0ZHX0NTQVIwIDw8IDE2KQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTIwNDgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkoQ09ORklHX1NZU19DU0FSMCA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTIwNDgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMDAwCiAKICNkZWZpbmUgRkxBU0hfU1NUNjQwMUIJCTB4MjAwCiAjZGVmaW5lIFNTVF9JRF94RjY0MDFCCQkweDIzNkQyMzZECiAKLSN1bmRlZiBDRkdfRkxBU0hfQ0ZJCi0jaWZkZWYgQ0ZHX0ZMQVNIX0NGSQorI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9DRkkKIC8qCiAgKiBVbmFibGUgdG8gdXNlIENGSSBkcml2ZXIsIGR1ZSB0byBpbmNvbXBhdGlibGUgc2VjdG9yIGVyYXNlIGNvbW1hbmQgYnkgU1NULgogICogQW1kL0F0bWVsIHVzZSAweDMwIGZvciBzZWN0b3IgZXJhc2UsIFNTVCB1c2UgMHg1MC4KICAqIDB4MzAgaXMgYmxvY2sgZXJhc2UgaW4gU1NUCiAgKi8KICMJZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLSMJZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDgwMDAwMAotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHg4MDAwMDAKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAogIwlkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9MRUdBQ1kKICNlbHNlCi0jCWRlZmluZSBDRkdfU1NUX1NFQ1QJCTIwNDgKLSMJZGVmaW5lIENGR19TU1RfU0VDVFNaCQkweDEwMDAKLSMJZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAorIwlkZWZpbmUgQ09ORklHX1NZU19TU1RfU0VDVAkJMjA0OAorIwlkZWZpbmUgQ09ORklHX1NZU19TU1RfU0VDVFNaCQkweDEwMDAKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAKICNlbmRpZgogCiAvKiBDYWNoZSBDb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CiAKIC8qIFBvcnQgY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRkVDSTJDCQkweEYwCisjZGVmaW5lIENPTkZJR19TWVNfRkVDSTJDCQkweEYwCiAKLSNkZWZpbmUgQ0ZHX0NTQVIwCQkweEZGODAKLSNkZWZpbmUgQ0ZHX0NTTVIwCQkweDAwN0YwMDIxCi0jZGVmaW5lIENGR19DU0NSMAkJMHgxRDgwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NBUjAJCTB4RkY4MAorI2RlZmluZSBDT05GSUdfU1lTX0NTTVIwCQkweDAwN0YwMDIxCisjZGVmaW5lIENPTkZJR19TWVNfQ1NDUjAJCTB4MUQ4MAogCi0jZGVmaW5lIENGR19DU0FSMSAgICAgICAgICAgICAgIDB4RTAwMAotI2RlZmluZSBDRkdfQ1NNUjEgICAgICAgICAgICAgICAweDAwMDAwMDAxCi0jZGVmaW5lIENGR19DU0NSMSAgICAgICAgICAgICAgIDB4M0REOAorI2RlZmluZSBDT05GSUdfU1lTX0NTQVIxICAgICAgICAgICAgICAgMHhFMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NNUjEgICAgICAgICAgICAgICAweDAwMDAwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1NDUjEgICAgICAgICAgICAgICAweDNERDgKIAotI2RlZmluZSBDRkdfQ1NBUjIJCTAKLSNkZWZpbmUgQ0ZHX0NTTVIyCQkwCi0jZGVmaW5lIENGR19DU0NSMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTQVIyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NNUjIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DU0NSMgkJMAogCi0jZGVmaW5lIENGR19DU0FSMwkJMAotI2RlZmluZSBDRkdfQ1NNUjMJCTAKLSNkZWZpbmUgQ0ZHX0NTQ1IzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NBUjMJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DU01SMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTQ1IzCQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBvcnQgY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19HUElPX0ZVTkMJCTB4MDAwMDAwMDgJLyogU2V0IGdwaW8gcGluczogbm9uZSAqLwotI2RlZmluZSBDRkdfR1BJTzFfRlVOQwkJMHgwMGRmMDBmMAkvKiAzNi0zOShTV0lUQ0gpLDQ4LTUyKEZQR0FzKSw1NCAqLwotI2RlZmluZSBDRkdfR1BJT19FTgkJMHgwMDAwMDAwOAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICovCi0jZGVmaW5lIENGR19HUElPMV9FTgkJMHgwMGM3MDAwMAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICovCi0jZGVmaW5lIENGR19HUElPX09VVAkJMHgwMDAwMDAwOAkvKiBTZXQgb3V0cHV0cyB0byBkZWZhdWx0IHN0YXRlICovCi0jZGVmaW5lIENGR19HUElPMV9PVVQJCTB4MDBjNzAwMDAJLyogU2V0IG91dHB1dHMgdG8gZGVmYXVsdCBzdGF0ZSAqLwotI2RlZmluZSBDRkdfR1BJTzFfTEVECQkweDAwNDAwMDAwCS8qIHVzZXIgbGVkICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19GVU5DCQkweDAwMDAwMDA4CS8qIFNldCBncGlvIHBpbnM6IG5vbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9GVU5DCQkweDAwZGYwMGYwCS8qIDM2LTM5KFNXSVRDSCksNDgtNTIoRlBHQXMpLDU0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19FTgkJMHgwMDAwMDAwOAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfRU4JCTB4MDBjNzAwMDAJLyogU2V0IGdwaW8gb3V0cHV0IGVuYWJsZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fT1VUCQkweDAwMDAwMDA4CS8qIFNldCBvdXRwdXRzIHRvIGRlZmF1bHQgc3RhdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9PVVQJCTB4MDBjNzAwMDAJLyogU2V0IG91dHB1dHMgdG8gZGVmYXVsdCBzdGF0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX0xFRAkJMHgwMDQwMDAwMAkvKiB1c2VyIGxlZCAqLwogCiAjZW5kaWYJCQkJLyogX001MjUzREVNT19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTTUyNTNFVkJFLmggYi9pbmNsdWRlL2NvbmZpZ3MvTTUyNTNFVkJFLmgKaW5kZXggZjU4Zjg5Yy4uYzJjZDYyYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL001MjUzRVZCRS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NNTI1M0VWQkUuaApAQCAtMzEsOSArMzEsOSBAQAogI2RlZmluZSBDT05GSUdfTUNGVE1SCiAKICNkZWZpbmUgQ09ORklHX01DRlVBUlQKLSNkZWZpbmUgQ0ZHX1VBUlRfUE9SVAkJKDApCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9QT1JUCQkoMCkKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CiAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cJCS8qIGRpc2FibGUgd2F0Y2hkb2cgKi8KIApAQCAtODEsNDUgKzgxLDQ1IEBACiAjZGVmaW5lIENPTkZJR19BVEFQSQogI3VuZGVmIENPTkZJR19MQkE0OAogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTIKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkyCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJKENGR19NQkFSMiArIDB4ODAwKQotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCShDT05GSUdfU1lTX01CQVIyICsgMHg4MDApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTAKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4QTAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHhBMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHhDMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUJCTQJLyogSW50ZXJ2YWwgYmV0d2VlbiByZWdpc3RlcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHhBMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHhBMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4QzAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJNAkvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycyAqLwogI2RlZmluZSBfSU9fQkFTRQkJMAogCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg0MDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDM4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHg0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgzODAwMDAKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKLSN1bmRlZiBDRkdfUExMX0JZUEFTUwkJLyogYnlwYXNzIFBMTCBmb3IgdGVzdCBwdXJwb3NlICovCi0jZGVmaW5lIENGR19GQVNUX0NMSwotI2lmZGVmIENGR19GQVNUX0NMSwotIwlkZWZpbmUgQ0ZHX1BMTENSCTB4MTI0M0UwNTQKLSMJZGVmaW5lIENGR19DTEsJCTE0MDAwMDAwMAorI3VuZGVmIENPTkZJR19TWVNfUExMX0JZUEFTUwkJLyogYnlwYXNzIFBMTCBmb3IgdGVzdCBwdXJwb3NlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkFTVF9DTEsKKyNpZmRlZiBDT05GSUdfU1lTX0ZBU1RfQ0xLCisjCWRlZmluZSBDT05GSUdfU1lTX1BMTENSCTB4MTI0M0UwNTQKKyMJZGVmaW5lIENPTkZJR19TWVNfQ0xLCQkxNDAwMDAwMDAKICNlbHNlCi0jCWRlZmluZSBDRkdfUExMQ1IJMHgxMzVhNDE0MAotIwlkZWZpbmUgQ0ZHX0NMSwkJNzAwMDAwMDAKKyMJZGVmaW5lIENPTkZJR19TWVNfUExMQ1IJMHgxMzVhNDE0MAorIwlkZWZpbmUgQ09ORklHX1NZU19DTEsJCTcwMDAwMDAwCiAjZW5kaWYKIAogLyoKQEAgLTEyOCw4NSArMTI4LDg1IEBACiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwogCi0jZGVmaW5lIENGR19NQkFSCQkweDEwMDAwMDAwCS8qIFJlZ2lzdGVyIEJhc2UgQWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX01CQVIyCQkweDgwMDAwMDAwCS8qIE1vZHVsZSBCYXNlIEFkZHJzIDIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweDEwMDAwMDAwCS8qIFJlZ2lzdGVyIEJhc2UgQWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSMgkJMHg4MDAwMDAwMAkvKiBNb2R1bGUgQmFzZSBBZGRycyAyICovCiAKIC8qCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJOAkvKiBTRFJBTSBzaXplIGluIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTgJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLwogCiAjaWZkZWYgQ09ORklHX01PTklUT1JfSVNfSU5fUkFNCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweDIwMDAwCiAjZWxzZQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDApCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4NDAwMDAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkoNjQqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHg0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JKDY0KjEwMjQpCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyogRkxBU0ggb3JnYW5pemF0aW9uICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmZTAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmZTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkzNQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MjAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCiAKIC8qIENhY2hlIENvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYKIAogLyogUG9ydCBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GRUNJMkMJCTB4RjAKKyNkZWZpbmUgQ09ORklHX1NZU19GRUNJMkMJCTB4RjAKIAotI2RlZmluZSBDRkdfQ1NBUjAJCTB4RkZFMAotI2RlZmluZSBDRkdfQ1NNUjAJCTB4MDAxRjAwMjEKLSNkZWZpbmUgQ0ZHX0NTQ1IwCQkweDFEODAKKyNkZWZpbmUgQ09ORklHX1NZU19DU0FSMAkJMHhGRkUwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NNUjAJCTB4MDAxRjAwMjEKKyNkZWZpbmUgQ09ORklHX1NZU19DU0NSMAkJMHgxRDgwCiAKLSNkZWZpbmUgQ0ZHX0NTQVIxCQkwCi0jZGVmaW5lIENGR19DU01SMQkJMAotI2RlZmluZSBDRkdfQ1NDUjEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DU0FSMQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTTVIxCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NDUjEJCTAKIAotI2RlZmluZSBDRkdfQ1NBUjIJCTAKLSNkZWZpbmUgQ0ZHX0NTTVIyCQkwCi0jZGVmaW5lIENGR19DU0NSMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTQVIyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NNUjIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DU0NSMgkJMAogCi0jZGVmaW5lIENGR19DU0FSMwkJMAotI2RlZmluZSBDRkdfQ1NNUjMJCTAKLSNkZWZpbmUgQ0ZHX0NTQ1IzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NBUjMJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DU01SMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTQ1IzCQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBvcnQgY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19HUElPX0ZVTkMJCTB4MDAwMDAwMDgJLyogU2V0IGdwaW8gcGluczogbm9uZSAqLwotI2RlZmluZSBDRkdfR1BJTzFfRlVOQwkJMHgwMGRmMDBmMAkvKiAzNi0zOShTV0lUQ0gpLDQ4LTUyKEZQR0FzKSw1NCAqLwotI2RlZmluZSBDRkdfR1BJT19FTgkJMHgwMDAwMDAwOAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICovCi0jZGVmaW5lIENGR19HUElPMV9FTgkJMHgwMGM3MDAwMAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICovCi0jZGVmaW5lIENGR19HUElPX09VVAkJMHgwMDAwMDAwOAkvKiBTZXQgb3V0cHV0cyB0byBkZWZhdWx0IHN0YXRlICovCi0jZGVmaW5lIENGR19HUElPMV9PVVQJCTB4MDBjNzAwMDAJLyogU2V0IG91dHB1dHMgdG8gZGVmYXVsdCBzdGF0ZSAqLwotI2RlZmluZSBDRkdfR1BJTzFfTEVECQkweDAwNDAwMDAwCS8qIHVzZXIgbGVkICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19GVU5DCQkweDAwMDAwMDA4CS8qIFNldCBncGlvIHBpbnM6IG5vbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9GVU5DCQkweDAwZGYwMGYwCS8qIDM2LTM5KFNXSVRDSCksNDgtNTIoRlBHQXMpLDU0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19FTgkJMHgwMDAwMDAwOAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfRU4JCTB4MDBjNzAwMDAJLyogU2V0IGdwaW8gb3V0cHV0IGVuYWJsZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fT1VUCQkweDAwMDAwMDA4CS8qIFNldCBvdXRwdXRzIHRvIGRlZmF1bHQgc3RhdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9PVVQJCTB4MDBjNzAwMDAJLyogU2V0IG91dHB1dHMgdG8gZGVmYXVsdCBzdGF0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX0xFRAkJMHgwMDQwMDAwMAkvKiB1c2VyIGxlZCAqLwogCiAjZW5kaWYJCQkJLyogX001MjUzRVZCX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NNTI3MUVWQi5oIGIvaW5jbHVkZS9jb25maWdzL001MjcxRVZCLmgKaW5kZXggODQ0Yjc0Zi4uN2RkZWI1NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL001MjcxRVZCLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL001MjcxRVZCLmgKQEAgLTQxLDkgKzQxLDkgQEAKICNkZWZpbmUgQ09ORklHX01DRlRNUgogCiAjZGVmaW5lIENPTkZJR19NQ0ZVQVJUCi0jZGVmaW5lIENGR19VQVJUX1BPUlQJCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfUE9SVAkJKDApCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQogCiAjdW5kZWYgQ09ORklHX1dBVENIRE9HCQkvKiBkaXNhYmxlIHdhdGNoZG9nICovCiAKQEAgLTU3LDcgKzU3LDcgQEAKICNlbmRpZgogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtODksMzIgKzg5LDMyIEBACiAjCWRlZmluZSBDT05GSUdfTkVUX01VTFRJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKLSMJZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkKLSMJZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgKLSMJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwlkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKKyMJZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CisjCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAKLSMJZGVmaW5lIENGR19GRUMwX1BJTk1VWAkJMAotIwlkZWZpbmUgQ0ZHX0ZFQzBfTUlJQkFTRQkJQ0ZHX0ZFQzBfSU9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfUElOTVVYCQkwCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQkJQ09ORklHX1NZU19GRUMwX0lPQkFTRQogIwlkZWZpbmUgTUNGRkVDX1RPVVRfTE9PUAkJNTAwMDAKLS8qIElmIENGR19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KLSMJaWZuZGVmIENGR19ESVNDT1ZFUl9QSFkKKy8qIElmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIGlzIG5vdCBkZWZpbmVkIC0gaGFyZGNvZGVkICovCisjCWlmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogIwkJZGVmaW5lIEZFQ0RVUExFWAlGVUxMCiAjCQlkZWZpbmUgRkVDU1BFRUQJCV8xMDBCQVNFVAogIwllbHNlCi0jCQlpZm5kZWYgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCi0jCQkJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJaWZuZGVmIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJCQlkZWZpbmUgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgogIwkJZW5kaWYKLSMJZW5kaWYJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjCWVuZGlmCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KICNlbmRpZgogCiAvKiBJMkMgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBodyBzdXBwb3J0ICovCiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDAwMDAwMzAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDAwMDAwMzAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19NQkFSCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkxCS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcyAqLwogI2RlZmluZSBDT05GSUdfQk9PVEZJTEUJCSJ1LWJvb3QuYmluIgpAQCAtMTQxLDI1ICsxNDEsMjUgQEAKIAkic2F2ZVwwIgkJCQlcCiAJIiIKIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4NDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgzODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MzgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMDAwMAotI2RlZmluZSBDRkdfQ0xLCQkJMTAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLCQkJMTAwMDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTY3LDU2ICsxNjcsNTYgQEAKICAqIFlvdSBzaG91bGQga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgaWYgeW91IG1ha2UgY2hhbmdlcyBoZXJlLgogICovCiAKLSNkZWZpbmUgQ0ZHX01CQVIJCTB4NDAwMDAwMDAJLyogUmVnaXN0ZXIgQmFzZSBBZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4NDAwMDAwMDAJLyogUmVnaXN0ZXIgQmFzZSBBZGRycyAqLwogCiAvKgogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMTYJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZmUwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkxNgkvKiBTRFJBTSBzaXplIGluIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZmUwMDAwMAogCiAjaWZkZWYJQ09ORklHX01PTklUT1JfSVNfSU5fUkFNCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweDIwMDAwCiAjZWxzZQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDApCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4NDAwMDAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkoNjQqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHg0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JKDY0KjEwMjQpCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyogRkxBU0ggb3JnYW5pemF0aW9uICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTExCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MjAwMDAwCiAKIC8qIENhY2hlIENvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYKIAogLyogUG9ydCBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GRUNJMkMJCTB4RjAKKyNkZWZpbmUgQ09ORklHX1NZU19GRUNJMkMJCTB4RjAKIAogI2VuZGlmCQkJCS8qIF9NNTI3MUVWQl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTTUyNzJDMy5oIGIvaW5jbHVkZS9jb25maWdzL001MjcyQzMuaAppbmRleCAzNWYwNDhlLi43NzlkMzczIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTTUyNzJDMy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NNTI3MkMzLmgKQEAgLTM5LDkgKzM5LDkgQEAKICNkZWZpbmUgQ09ORklHX01DRlRNUgogCiAjZGVmaW5lIENPTkZJR19NQ0ZVQVJUCi0jZGVmaW5lIENGR19VQVJUX1BPUlQJCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfUE9SVAkJKDApCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQogCiAjdW5kZWYgQ09ORklHX1dBVENIRE9HCiAjZGVmaW5lIENPTkZJR19XQVRDSERPR19USU1FT1VUIDEwMDAwCS8qIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzICovCkBAIC05MiwyMiArOTIsMjIgQEAKICMJZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCTEKICMJZGVmaW5lIENPTkZJR19NSUkJCTEKICMJZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQotIwlkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQotIwlkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAotIwlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCWRlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQorIwlkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgKKyMJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KIAotIwlkZWZpbmUgQ0ZHX0ZFQzBfUElOTVVYCQkwCi0jCWRlZmluZSBDRkdfRkVDMF9NSUlCQVNFCQlDRkdfRkVDMF9JT0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9QSU5NVVgJCTAKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9NSUlCQVNFCQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCiAjCWRlZmluZSBNQ0ZGRUNfVE9VVF9MT09QCQk1MDAwMAotLyogSWYgQ0ZHX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLwotIwlpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorLyogSWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KKyMJaWZuZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjCQlkZWZpbmUgRkVDRFVQTEVYCUZVTEwKICMJCWRlZmluZSBGRUNTUEVFRAkJXzEwMEJBU0VUCiAjCWVsc2UKLSMJCWlmbmRlZiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KLSMJCQlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQlpZm5kZWYgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAjCQllbmRpZgotIwllbmRpZgkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyMJZW5kaWYJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTUNGRkVDCkBAIC0xMzIsMTA4ICsxMzIsMTA4IEBACiAJInNhdmVcMCIJCQkJXAogCSIiCiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIi0+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIi0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg0MDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDM4MDAwMAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCi0jZGVmaW5lIENGR19DTEsJCQk2NjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDM4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NMSwkJCTY2MDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwogICogKGFkZHJlc3MgbWFwcGluZ3MsIHJlZ2lzdGVyIGluaXRpYWwgdmFsdWVzLCBldGMuKQogICogWW91IHNob3VsZCBrbm93IHdoYXQgeW91IGFyZSBkb2luZyBpZiB5b3UgbWFrZSBjaGFuZ2VzIGhlcmUuCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4MTAwMDAwMDAJLyogUmVnaXN0ZXIgQmFzZSBBZGRycyAqLwotI2RlZmluZSBDRkdfU0NSCQkJMHgwMDAzCi0jZGVmaW5lIENGR19TUFIJCQkweGZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweDEwMDAwMDAwCS8qIFJlZ2lzdGVyIEJhc2UgQWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ1IJCQkweDAwMDMKKyNkZWZpbmUgQ09ORklHX1NZU19TUFIJCQkweGZmZmYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQk0CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmZlMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJNAkvKiBTRFJBTSBzaXplIGluIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZmUwMDAwMAogCiAjaWZkZWYJQ09ORklHX01PTklUT1JfSVNfSU5fUkFNCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweDIwMDAwCiAjZWxzZQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDApCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MjAwMDAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gPz8KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoQ0ZHX1NEUkFNX0JBU0UgKyAoQ0ZHX1NEUkFNX1NJWkUgPDwgMjApKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIChDT05GSUdfU1lTX1NEUkFNX1NJWkUgPDwgMjApKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgICAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTExCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWVtb3J5IGJhbmsgZGVmaW5pdGlvbnMKICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhGRkUwMDIwMQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhGRkUwMDAxNAotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJMAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJMHgzMDAwMDAwMQotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhGRkY4MDAwMAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkJMAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJMAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkJMAotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkJMAotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJMAotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkJMAotI2RlZmluZSBDRkdfQlI2X1BSRUxJTQkJMAotI2RlZmluZSBDRkdfT1I2X1BSRUxJTQkJMAotI2RlZmluZSBDRkdfQlI3X1BSRUxJTQkJMHgwMDAwMDcwMQotI2RlZmluZSBDRkdfT1I3X1BSRUxJTQkJMHhGRkMwMDA3QworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4RkZFMDAyMDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweEZGRTAwMDE0CisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkweDMwMDAwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJMHhGRkY4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCQkwCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNl9QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjZfUFJFTElNCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQlI3X1BSRUxJTQkJMHgwMDAwMDcwMQorI2RlZmluZSBDT05GSUdfU1lTX09SN19QUkVMSU0JCTB4RkZDMDAwN0MKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUG9ydCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX1BBQ05UCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQUREUgkJMHgwMDAwCi0jZGVmaW5lIENGR19QQURBVAkJMHgwMDAwCi0jZGVmaW5lIENGR19QQkNOVAkJMHg1NTU1NDE1NQkvKiBFdGhlcm5ldC9VQVJUIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX1BCRERSCQkweDAwMDAKLSNkZWZpbmUgQ0ZHX1BCREFUCQkweDAwMDAKLSNkZWZpbmUgQ0ZHX1BEQ05UCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEFDTlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQUREUgkJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEFEQVQJCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BCQ05UCQkweDU1NTU0MTU1CS8qIEV0aGVybmV0L1VBUlQgY29uZmlndXJhdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCRERSCQkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQkRBVAkJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUERDTlQJCTB4MDAwMDAwMDAKICNlbmRpZgkJCQkvKiBfTTUyNzJDM19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTTUyNzVFVkIuaCBiL2luY2x1ZGUvY29uZmlncy9NNTI3NUVWQi5oCmluZGV4IGIwZWY0MWUuLjFmMzUzOWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NNTI3NUVWQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NNTI3NUVWQi5oCkBAIC00NCw5ICs0NCw5IEBACiAjZGVmaW5lIENPTkZJR19NQ0ZUTVIKIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogLyogQ29uZmlndXJhdGlvbiBmb3IgZW52aXJvbm1lbnQKICAqIEVudmlyb25tZW50IGlzIGVtYmVkZGVkIGluIHUtYm9vdCBpbiB0aGUgc2Vjb25kIHNlY3RvciBvZiB0aGUgZmxhc2gKQEAgLTkwLDIyICs5MCwyMiBAQAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX01JSQkJMQogI2RlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4Ci0jZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgotI2RlZmluZSBDRkdfRkVDMF9QSU5NVVgJCTAKLSNkZWZpbmUgQ0ZHX0ZFQzBfTUlJQkFTRQlDRkdfRkVDMF9JT0JBU0UKLSNkZWZpbmUgQ0ZHX0ZFQzFfUElOTVVYCQkwCi0jZGVmaW5lIENGR19GRUMxX01JSUJBU0UJQ0ZHX0ZFQzFfSU9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CisjZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KKyNkZWZpbmUgQ09ORklHX1NZU19GRUMwX1BJTk1VWAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkVDMV9QSU5NVVgJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19GRUMxX01JSUJBU0UJQ09ORklHX1NZU19GRUMxX0lPQkFTRQogI2RlZmluZSBNQ0ZGRUNfVE9VVF9MT09QCTUwMDAwCiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQotLyogSWYgQ0ZHX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLwotI2lmbmRlZiBDRkdfRElTQ09WRVJfUEhZCisvKiBJZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLworI2lmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2RlZmluZSBGRUNEVVBMRVgJCUZVTEwKICNkZWZpbmUgRkVDU1BFRUQJCV8xMDBCQVNFVAogI2Vsc2UKLSNpZm5kZWYgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCi0jZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorI2lmbmRlZiBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KICNlbmRpZgogI2VuZGlmCiAjZW5kaWYKQEAgLTExNCw0MCArMTE0LDQwIEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaHcgc3VwcG9ydCAqLwogI3VuZGVmIENPTkZJR19TT0ZUX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDAwMDAwMzAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgotI2RlZmluZSBDRkdfSTJDX1BJTk1VWF9SRUcJKGdwaW9fcmVnLT5wYXJfZmVjaTJjKQotI2RlZmluZSBDRkdfSTJDX1BJTk1VWF9DTFIJKDB4RkZGMCkKLSNkZWZpbmUgQ0ZHX0kyQ19QSU5NVVhfU0VUCSgweDAwMEYpCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MDAwMDAzMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX01CQVIKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUElOTVVYX1JFRwkoZ3Bpb19yZWctPnBhcl9mZWNpMmMpCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1BJTk1VWF9DTFIJKDB4RkZGMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUElOTVVYX1NFVAkoMHgwMDBGKQogCiAjaWZkZWYgQ09ORklHX01DRkZFQwogI2RlZmluZSBDT05GSUdfRVRIQUREUgkJMDA6MDY6M2I6MDE6NDE6NTUKICNkZWZpbmUgQ09ORklHX0VUSDFBRERSCQkwMDowZTowYzpiYzplNTo2MAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIi0+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIi0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KIAogI2lmIChDT05GSUdfQ01EX0tHREIpCi0jCWRlZmluZSBDRkdfQ0JTSVpFCTEwMjQKKyMJZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQKICNlbHNlCi0jCWRlZmluZSBDRkdfQ0JTSVpFCTI1NgorIwlkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2Ci0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHg4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4ODAwMDAwCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiYm9vdG0gZmZlNDAwMDAiCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4NDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgzODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MzgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAotI2RlZmluZSBDRkdfQ0xLCQkJMTUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLCQkJMTUwMDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTU1LDczICsxNTUsNzMgQEAKICAqIFlvdSBzaG91bGQga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgaWYgeW91IG1ha2UgY2hhbmdlcyBoZXJlLgogICovCiAKLSNkZWZpbmUgQ0ZHX01CQVIJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweDQwMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEwMDAJLyogYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMDAwCS8qIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkxNgkvKiBTRFJBTSBzaXplIGluIE1CICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmZTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTE2CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmZTAwMDAwCiAKICNpZmRlZiBDT05GSUdfTU9OSVRPUl9JU19JTl9SQU0KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4MjAwMDAKICNlbHNlCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFICsgMHg0MDApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMCkKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgyMDAwMAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkKLSNkZWZpbmUgQ0ZHX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JNjQqMTAyNAogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbiA/PwogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIG1tYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBtbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTExCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgyMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1lbW9yeSBiYW5rIGRlZmluaXRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0FSMF9QUkVMSU0JCShDRkdfRkxBU0hfQkFTRSA+PiAxNikKLSNkZWZpbmUgQ0ZHX0NSMF9QUkVMSU0JCTB4MTk4MAotI2RlZmluZSBDRkdfTVIwX1BSRUxJTQkJMHgwMDFGMDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0FSMF9QUkVMSU0JCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgPj4gMTYpCisjZGVmaW5lIENPTkZJR19TWVNfQ1IwX1BSRUxJTQkJMHgxOTgwCisjZGVmaW5lIENPTkZJR19TWVNfTVIwX1BSRUxJTQkJMHgwMDFGMDAwMQogCi0jZGVmaW5lIENGR19BUjFfUFJFTElNCQkweDMwMDAKLSNkZWZpbmUgQ0ZHX0NSMV9QUkVMSU0JCTB4MTkwMAotI2RlZmluZSBDRkdfTVIxX1BSRUxJTQkJMHgwMDA3MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0FSMV9QUkVMSU0JCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NSMV9QUkVMSU0JCTB4MTkwMAorI2RlZmluZSBDT05GSUdfU1lTX01SMV9QUkVMSU0JCTB4MDAwNzAwMDEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUG9ydCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZFQ0kyQwkJMHgwRkEwCisjZGVmaW5lIENPTkZJR19TWVNfRkVDSTJDCQkweDBGQTAKIAogI2VuZGlmCS8qIF9NNTI3NUVWQl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTTUyODJFVkIuaCBiL2luY2x1ZGUvY29uZmlncy9NNTI4MkVWQi5oCmluZGV4IDFiYzg3N2EuLmE4YTI2NTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NNTI4MkVWQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NNTI4MkVWQi5oCkBAIC0zOSw5ICszOSw5IEBACiAjZGVmaW5lIENPTkZJR19NQ0ZUTVIKIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogI3VuZGVmCUNPTkZJR19NT05JVE9SX0lTX0lOX1JBTQkvKiBkZWZpbmUgaWYgbW9uaXRvciBpcyBzdGFydGVkIGZyb20gYSBwcmUtbG9hZGVyICovCiAKQEAgLTc2LDIyICs3NiwyMiBAQAogIwlkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkJMQogIwlkZWZpbmUgQ09ORklHX01JSQkJMQogIwlkZWZpbmUgQ09ORklHX01JSV9JTklUCQkxCi0jCWRlZmluZSBDRkdfRElTQ09WRVJfUEhZCi0jCWRlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4Ci0jCWRlZmluZSBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCisjCWRlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOAorIwlkZWZpbmUgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgogCi0jCWRlZmluZSBDRkdfRkVDMF9QSU5NVVgJCTAKLSMJZGVmaW5lIENGR19GRUMwX01JSUJBU0UJCUNGR19GRUMwX0lPQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GRUMwX1BJTk1VWAkJMAorIwlkZWZpbmUgQ09ORklHX1NZU19GRUMwX01JSUJBU0UJCUNPTkZJR19TWVNfRkVDMF9JT0JBU0UKICMJZGVmaW5lIE1DRkZFQ19UT1VUX0xPT1AJCTUwMDAwCi0vKiBJZiBDRkdfRElTQ09WRVJfUEhZIGlzIG5vdCBkZWZpbmVkIC0gaGFyZGNvZGVkICovCi0jCWlmbmRlZiBDRkdfRElTQ09WRVJfUEhZCisvKiBJZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLworIwlpZm5kZWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKICMJCWRlZmluZSBGRUNEVVBMRVgJRlVMTAogIwkJZGVmaW5lIEZFQ1NQRUVECQlfMTAwQkFTRVQKICMJZWxzZQotIwkJaWZuZGVmIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgotIwkJCWRlZmluZSBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJCWlmbmRlZiBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQkJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KICMJCWVuZGlmCi0jCWVuZGlmCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSAqLworIwllbmRpZgkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICovCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUKQEAgLTExNywxMzUgKzExNywxMzUgQEAKIAkic2F2ZVwwIgkJCQlcCiAJIiIKIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiLT4gIgotI2RlZmluZQlDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSItPiAiCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDQwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MzgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDM4MDAwMAogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKLSNkZWZpbmUJQ0ZHX0NMSwkJCTY0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ0xLCQkJNjQwMDAwMDAKIAogLyogUExMIENvbmZpZ3VyYXRpb246IEV4dCBDbG9jayAqIDYgKHNlZSB0YWJsZSA5LTQgb2YgTUNGIHVzZXIgbWFudWFsKSAqLwogCi0jZGVmaW5lIENGR19NRkQJCQkweDAyCS8qIFBMTCBNdWx0aXBsaWNhdGlvbiBGYWN0b3IgRGV2aWRlciAqLwotI2RlZmluZSBDRkdfUkZECQkJMHgwMAkvKiBQTEwgUmVkdWNlIEZyZWN1ZW5jeSBEZXZpZGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfTUZECQkJMHgwMgkvKiBQTEwgTXVsdGlwbGljYXRpb24gRmFjdG9yIERldmlkZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRkQJCQkweDAwCS8qIFBMTCBSZWR1Y2UgRnJlY3VlbmN5IERldmlkZXIgKi8KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCiAgKiAoYWRkcmVzcyBtYXBwaW5ncywgcmVnaXN0ZXIgaW5pdGlhbCB2YWx1ZXMsIGV0Yy4pCiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwotI2RlZmluZQlDRkdfTUJBUgkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX01CQVIJCTB4NDAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUJQ0ZHX1NEUkFNX1NJWkUJCTE2CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmZlMDAwMDAKLSNkZWZpbmUJQ0ZHX0lOVF9GTEFTSF9CQVNFCTB4ZjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOVF9GTEFTSF9FTkFCTEUJMHgyMQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9TSVpFCQkxNgkvKiBTRFJBTSBzaXplIGluIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZmUwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFCTB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRfRkxBU0hfRU5BQkxFCTB4MjEKIAogLyogSWYgTTUyODIgcG9ydCBpcyBmdWxseSBpbXBsZW1lbnRlZCB0aGUgbW9uaXRvciBiYXNlIHdpbGwgYmUgYmVoaW5kCiAgKiB0aGUgdmVjdG9yIHRhYmxlLiAqLwotI2lmIChURVhUX0JBU0UgIT0gQ0ZHX0lOVF9GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorI2lmIChURVhUX0JBU0UgIT0gQ09ORklHX1NZU19JTlRfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoVEVYVF9CQVNFICsgMHg0MTgpCS8qIDI0IEJ5dGUgZm9yIENGTS1Db25maWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKFRFWFRfQkFTRSArIDB4NDE4KQkvKiAyNCBCeXRlIGZvciBDRk0tQ29uZmlnICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MjAwMDAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gPz8KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoQ0ZHX1NEUkFNX0JBU0UgKyAoQ0ZHX1NEUkFNX1NJWkUgPDwgMjApKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIChDT05GSUdfU1lTX1NEUkFNX1NJWkUgPDwgMjApKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jaWZkZWYgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAKICMJZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLSMJZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDEwMDAwMDAJLyogTWF4IHNpemUgdGhhdCB0aGUgYm9hcmQgbWlnaHQgaGF2ZSAqLwotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKLSMJZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEzNwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSMJZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLwotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jCWRlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgxMDAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNZW1vcnkgYmFuayBkZWZpbml0aW9ucwogICovCi0jZGVmaW5lIENGR19DUzBfQkFTRQkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQkyKjEwMjQqMTAyNAotI2RlZmluZSBDRkdfQ1MwX1dJRFRICQkxNgotI2RlZmluZSBDRkdfQ1MwX1JPCQkwCi0jZGVmaW5lIENGR19DUzBfV1MJCTYKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQkFTRQkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCTIqMTAyNCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1dJRFRICQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9STwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9XUwkJNgogLyoKLSNkZWZpbmUgQ0ZHX0NTM19CQVNFCQkweEUwMDAwMDAwCi0jZGVmaW5lIENGR19DUzNfU0laRQkJMSoxMDI0KjEwMjQKLSNkZWZpbmUgQ0ZHX0NTM19XSURUSAkJMTYKLSNkZWZpbmUgQ0ZHX0NTM19STwkJMAotI2RlZmluZSBDRkdfQ1MzX1dTCQk2CisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX0JBU0UJCTB4RTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfU0laRQkJMSoxMDI0KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfV0lEVEgJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX1JPCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX1dTCQk2CiAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUG9ydCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX1BBQ05UCQkweDAwMDAwMDAJLyogUG9ydCBBIERbMzE6MjRdICovCi0jZGVmaW5lIENGR19QQUREUgkJMHgwMDAwMDAwCi0jZGVmaW5lIENGR19QQURBVAkJMHgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEFDTlQJCTB4MDAwMDAwMAkvKiBQb3J0IEEgRFszMToyNF0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQUREUgkJMHgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEFEQVQJCTB4MDAwMDAwMAogCi0jZGVmaW5lIENGR19QQkNOVAkJMHgwMDAwMDAwCS8qIFBvcnQgQiBEWzIzOjE2XSAqLwotI2RlZmluZSBDRkdfUEJERFIJCTB4MDAwMDAwMAotI2RlZmluZSBDRkdfUEJEQVQJCTB4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BCQ05UCQkweDAwMDAwMDAJLyogUG9ydCBCIERbMjM6MTZdICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJERFIJCTB4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BCREFUCQkweDAwMDAwMDAKIAotI2RlZmluZSBDRkdfUENDTlQJCTB4MDAwMDAwMAkvKiBQb3J0IEMgRFsxNTowOF0gKi8KLSNkZWZpbmUgQ0ZHX1BDRERSCQkweDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDREFUCQkweDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0NOVAkJMHgwMDAwMDAwCS8qIFBvcnQgQyBEWzE1OjA4XSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDRERSCQkweDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0RBVAkJMHgwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BEQ05UCQkweDAwMDAwMDAJLyogUG9ydCBEIERbMDc6MDBdICovCi0jZGVmaW5lIENGR19QQ0REUgkJMHgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0RBVAkJMHgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUERDTlQJCTB4MDAwMDAwMAkvKiBQb3J0IEQgRFswNzowMF0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0REUgkJMHgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENEQVQJCTB4MDAwMDAwMAogCi0jZGVmaW5lIENGR19QRUhMUEFSCQkweEMwCi0jZGVmaW5lIENGR19QVUFQQVIJCTB4MEYJLyogVUEwLi5VQTMgPSBVYXJ0IDAgKzEgKi8KLSNkZWZpbmUgQ0ZHX0REUlVBCQkweDA1Ci0jZGVmaW5lIENGR19QSlBBUgkJMHhGRgorI2RlZmluZSBDT05GSUdfU1lTX1BFSExQQVIJCTB4QzAKKyNkZWZpbmUgQ09ORklHX1NZU19QVUFQQVIJCTB4MEYJLyogVUEwLi5VQTMgPSBVYXJ0IDAgKzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJVQQkJMHgwNQorI2RlZmluZSBDT05GSUdfU1lTX1BKUEFSCQkweEZGCiAKICNlbmRpZgkJCQkvKiBfQ09ORklHX001MjgyRVZCX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NNTMyOUVWQi5oIGIvaW5jbHVkZS9jb25maWdzL001MzI5RVZCLmgKaW5kZXggM2E4ZTQ5YS4uYzIwNzk0NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL001MzI5RVZCLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL001MzI5RVZCLmgKQEAgLTM4LDkgKzM4LDkgQEAKICNkZWZpbmUgQ09ORklHX001MzI5CQkvKiBkZWZpbmUgcHJvY2Vzc29yIHR5cGUgKi8KIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogI3VuZGVmIENPTkZJR19XQVRDSERPRwogI2RlZmluZSBDT05GSUdfV0FUQ0hET0dfVElNRU9VVAk1MDAwCS8qIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLCBtYXggdGltZW91dCBpcyA2Ljcxc2VjICovCkBAIC02NCwyOSArNjQsMjkgQEAKICMgICAgICBkZWZpbmUgQ09ORklHX0NNRF9OQU5ECiAjZW5kaWYKIAotI2RlZmluZSBDRkdfVU5JRllfQ0FDSEUKKyNkZWZpbmUgQ09ORklHX1NZU19VTklGWV9DQUNIRQogCiAjZGVmaW5lIENPTkZJR19NQ0ZGRUMKICNpZmRlZiBDT05GSUdfTUNGRkVDCiAjCWRlZmluZSBDT05GSUdfTkVUX01VTFRJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKLSMJZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkKLSMJZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgKLSMJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwlkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKKyMJZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CisjCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAKLSMJZGVmaW5lIENGR19GRUMwX1BJTk1VWAkJMAotIwlkZWZpbmUgQ0ZHX0ZFQzBfTUlJQkFTRQkJQ0ZHX0ZFQzBfSU9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfUElOTVVYCQkwCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQkJQ09ORklHX1NZU19GRUMwX0lPQkFTRQogIwlkZWZpbmUgTUNGRkVDX1RPVVRfTE9PUAkJNTAwMDAKLS8qIElmIENGR19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KLSMJaWZuZGVmIENGR19ESVNDT1ZFUl9QSFkKKy8qIElmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIGlzIG5vdCBkZWZpbmVkIC0gaGFyZGNvZGVkICovCisjCWlmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogIwkJZGVmaW5lIEZFQ0RVUExFWAlGVUxMCiAjCQlkZWZpbmUgRkVDU1BFRUQJCV8xMDBCQVNFVAogIwllbHNlCi0jCQlpZm5kZWYgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCi0jCQkJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJaWZuZGVmIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJCQlkZWZpbmUgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgogIwkJZW5kaWYKLSMJZW5kaWYJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjCWVuZGlmCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19NQ0ZSVEMKQEAgLTEwMCwxMCArMTAwLDEwIEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGh3IHN1cHBvcnQgKi8KICN1bmRlZiBDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDU4MDAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDU4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19NQkFSCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkxCS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcyAqLwogI2RlZmluZSBDT05GSUdfVURQX0NIRUNLU1VNCkBAIC0xMzEsMjcgKzEzMSwyNyBAQAogCSIiCiAKICNkZWZpbmUgQ09ORklHX1BSQU0JCTUxMgkvKiA1MTIgS0IgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIi0+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIi0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KIAogI2lmZGVmIENPTkZJR19DTURfS0dEQgotIwlkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjCWRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotIwlkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4NDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDQwMDEwMDAwCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAotI2RlZmluZSBDRkdfQ0xLCQkJODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NQVV9DTEsJCUNGR19DTEsgKiAzCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLCQkJODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUFVfQ0xLCQlDT05GSUdfU1lTX0NMSyAqIDMKIAotI2RlZmluZSBDRkdfTUJBUgkJMHhGQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RkMwMDAwMDAKIAotI2RlZmluZSBDRkdfTEFUQ0hfQUREUgkJKENGR19DUzFfQkFTRSArIDB4ODAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTEFUQ0hfQUREUgkJKENPTkZJR19TWVNfQ1MxX0JBU0UgKyAweDgwMDAwKQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE2MSw2OSArMTYxLDY5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDgwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9DVFJMCTB4MjIxCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkgLSAweDEwKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDgwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQ1RSTAkweDIyMQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKSAtIDB4MTApCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTMyCS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0NGRzEJCTB4NTM3MjI3MzAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0NGRzIJCTB4NTY2NzAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0NUUkwJCTB4RTEwOTIwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0VNT0QJCTB4NDAwMTAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX01PREUJCTB4MDE4RDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMzIJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NGRzEJCTB4NTM3MjI3MzAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcyCQkweDU2NjcwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ1RSTAkJMHhFMTA5MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0VNT0QJCTB4NDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9NT0RFCQkweDAxOEQwMDAwCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UgKyAweDQwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCSgoQ0ZHX1NEUkFNX1NJWkUgLSAzKSA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCSgoQ09ORklHX1NZU19TRFJBTV9TSVpFIC0gMykgPDwgMjApCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMCkKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCiAKLSNkZWZpbmUgQ0ZHX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gPz8KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoQ0ZHX1NEUkFNX0JBU0UgKyAoQ0ZHX1NEUkFNX1NJWkUgPDwgMjApKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIChDT05GSUdfU1lTX1NEUkFNX1NJWkUgPDwgMjApKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jaWZkZWYgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjCWRlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCi0jCWRlZmluZSBDRkdfRkxBU0hfU0laRQkJMHg4MDAwMDAJLyogTWF4IHNpemUgdGhhdCB0aGUgYm9hcmQgbWlnaHQgaGF2ZSAqLwotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKLSMJZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEzNwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSMJZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDgwMDAwMAkvKiBNYXggc2l6ZSB0aGF0IHRoZSBib2FyZCBtaWdodCBoYXZlICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKKyMJZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTM3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLwogI2VuZGlmCiAKICNpZmRlZiBOQU5ERkxBU0hfU0laRQotIwlkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCi0jCWRlZmluZSBDRkdfTkFORF9CQVNFCQlDRkdfQ1MyX0JBU0UKLSMJZGVmaW5lIENGR19OQU5EX1NJWkUJCTEKLSMJZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7IENGR19OQU5EX0JBU0UgfQorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQorIwlkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCUNPTkZJR19TWVNfQ1MyX0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfTkFORF9TSVpFCQkxCisjCWRlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXsgQ09ORklHX1NZU19OQU5EX0JBU0UgfQogIwlkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCTEKICMJZGVmaW5lIE5BTkRfQUxMT1dfRVJBU0VfQUxMCTEKICMJZGVmaW5lIENPTkZJR19KRkZTMl9OQU5ECTEKICMJZGVmaW5lIENPTkZJR19KRkZTMl9ERVYJCSJuYW5kMCIKLSMJZGVmaW5lIENPTkZJR19KRkZTMl9QQVJUX1NJWkUJKENGR19DUzJfTUFTSyAmIH4xKQorIwlkZWZpbmUgQ09ORklHX0pGRlMyX1BBUlRfU0laRQkoQ09ORklHX1NZU19DUzJfTUFTSyAmIH4xKQogIwlkZWZpbmUgQ09ORklHX0pGRlMyX1BBUlRfT0ZGU0VUCTB4MDAwMDAwMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfQ1MwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0NTMF9CQVNFCiAKIC8qIENvbmZpZ3VyYXRpb24gZm9yIGVudmlyb25tZW50CiAgKiBFbnZpcm9ubWVudCBpcyBlbWJlZGRlZCBpbiB1LWJvb3QgaW4gdGhlIHNlY29uZCBzZWN0b3Igb2YgdGhlIGZsYXNoCkBAIC0yMzYsNyArMjM2LDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDaGlwc2VsZWN0IGJhbmsgZGVmaW5pdGlvbnMKQEAgLTI0OSwxOCArMjQ5LDE4IEBACiAgKiBDUzQgLSBBdmFpbGFibGUKICAqIENTNSAtIEF2YWlsYWJsZQogICovCi0jZGVmaW5lIENGR19DUzBfQkFTRQkJMAotI2RlZmluZSBDRkdfQ1MwX01BU0sJCTB4MDA3ZjAwMDEKLSNkZWZpbmUgQ0ZHX0NTMF9DVFJMCQkweDAwMDAxZmEwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0JBU0UJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfTUFTSwkJMHgwMDdmMDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9DVFJMCQkweDAwMDAxZmEwCiAKLSNkZWZpbmUgQ0ZHX0NTMV9CQVNFCQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19DUzFfTUFTSwkJMHgwMDFmMDAwMQotI2RlZmluZSBDRkdfQ1MxX0NUUkwJCTB4MDAyQTM3ODAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQkFTRQkJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9NQVNLCQkweDAwMWYwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NUUkwJCTB4MDAyQTM3ODAKIAogI2lmZGVmIE5BTkRGTEFTSF9TSVpFCi0jZGVmaW5lIENGR19DUzJfQkFTRQkJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfQ1MyX01BU0sJCSgoTkFOREZMQVNIX1NJWkUgPDwgMjApIHwgMSkKLSNkZWZpbmUgQ0ZHX0NTMl9DVFJMCQkweDAwMDAxZjYwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX0JBU0UJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfTUFTSwkJKChOQU5ERkxBU0hfU0laRSA8PCAyMCkgfCAxKQorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9DVFJMCQkweDAwMDAxZjYwCiAjZW5kaWYKIAogI2VuZGlmCQkJCS8qIF9NNTMyOUVWQl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTTUzNzNFVkIuaCBiL2luY2x1ZGUvY29uZmlncy9NNTM3M0VWQi5oCmluZGV4IDM0Njk4ZWUuLmExYmMzMmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NNTM3M0VWQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NNTM3M0VWQi5oCkBAIC0zOCw5ICszOCw5IEBACiAjZGVmaW5lIENPTkZJR19NNTM3MwkJLyogZGVmaW5lIHByb2Nlc3NvciB0eXBlICovCiAKICNkZWZpbmUgQ09ORklHX01DRlVBUlQKLSNkZWZpbmUgQ0ZHX1VBUlRfUE9SVAkJKDApCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9QT1JUCQkoMCkKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CiAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cKICNkZWZpbmUgQ09ORklHX1dBVENIRE9HX1RJTUVPVVQJMzM2MAkvKiB0aW1lb3V0IGluIG1zLCBtYXggaXMgMy4zNiBzZWMgKi8KQEAgLTY0LDI5ICs2NCwyOSBAQAogIyAgICAgIGRlZmluZSBDT05GSUdfQ01EX05BTkQKICNlbmRpZgogCi0jZGVmaW5lIENGR19VTklGWV9DQUNIRQorI2RlZmluZSBDT05GSUdfU1lTX1VOSUZZX0NBQ0hFCiAKICNkZWZpbmUgQ09ORklHX01DRkZFQwogI2lmZGVmIENPTkZJR19NQ0ZGRUMKICMJZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCTEKICMJZGVmaW5lIENPTkZJR19NSUkJCTEKICMJZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQotIwlkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQotIwlkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAotIwlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCWRlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQorIwlkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgKKyMJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KIAotIwlkZWZpbmUgQ0ZHX0ZFQzBfUElOTVVYCQkwCi0jCWRlZmluZSBDRkdfRkVDMF9NSUlCQVNFCQlDRkdfRkVDMF9JT0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9QSU5NVVgJCTAKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9NSUlCQVNFCQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCiAjCWRlZmluZSBNQ0ZGRUNfVE9VVF9MT09QCQk1MDAwMAotLyogSWYgQ0ZHX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLwotIwlpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorLyogSWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KKyMJaWZuZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjCQlkZWZpbmUgRkVDRFVQTEVYCUZVTEwKICMJCWRlZmluZSBGRUNTUEVFRAkJXzEwMEJBU0VUCiAjCWVsc2UKLSMJCWlmbmRlZiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KLSMJCQlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQlpZm5kZWYgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAjCQllbmRpZgotIwllbmRpZgkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyMJZW5kaWYJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX01DRlJUQwpAQCAtMTAwLDEwICsxMDAsMTAgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBodyBzdXBwb3J0ICovCiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDU4MDAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDU4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19NQkFSCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkxCS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcyAqLwogI2RlZmluZSBDT05GSUdfVURQX0NIRUNLU1VNCkBAIC0xMjAsNyArMTIwLDcgQEAKICNkZWZpbmUgQ09ORklHX0hPU1ROQU1FCQlNNTM3M0VWQgogI2RlZmluZSBDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCQkJCQlcCiAJIm5ldGRldj1ldGgwXDAiCQkJXAotCSJsb2FkYWRkcj0iIE1LX1NUUihDRkdfTE9BRF9BRERSKSAiXDAiCVwKKwkibG9hZGFkZHI9IiBNS19TVFIoQ09ORklHX1NZU19MT0FEX0FERFIpICJcMCIJXAogCSJ1LWJvb3Q9dS1ib290LmJpblwwIglcCiAJImxvYWQ9dGZ0cCAke2xvYWRhZGRyKSAke3UtYm9vdH1cMCIJXAogCSJ1cGQ9cnVuIGxvYWQ7IHJ1biBwcm9nXDAiCVwKQEAgLTEzMSwyNyArMTMxLDI3IEBACiAJIiIKIAogI2RlZmluZSBDT05GSUdfUFJBTQkJNTEyCS8qIDUxMiBLQiAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiLT4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiLT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwogCiAjaWZkZWYgQ09ORklHX0NNRF9LR0RCCi0jCWRlZmluZSBDRkdfQ0JTSVpFCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jCWRlZmluZSBDRkdfQ0JTSVpFCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworIwlkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFCQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHg0MDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4NDAwMTAwMDAKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCi0jZGVmaW5lIENGR19DTEsJCQk4MDAwMDAwMAotI2RlZmluZSBDRkdfQ1BVX0NMSwkJQ0ZHX0NMSyAqIDMKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DTEsJCQk4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NQVV9DTEsJCUNPTkZJR19TWVNfQ0xLICogMwogCi0jZGVmaW5lIENGR19NQkFSCQkweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGQzAwMDAwMAogCi0jZGVmaW5lIENGR19MQVRDSF9BRERSCQkoQ0ZHX0NTMV9CQVNFICsgMHg4MDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQVRDSF9BRERSCQkoQ09ORklHX1NZU19DUzFfQkFTRSArIDB4ODAwMDApCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTYxLDY5ICsxNjEsNjkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0NUUkwJMHgyMjEKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCSgoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKSAtIDB4MTApCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9DVFJMCTB4MjIxCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCSgoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpIC0gMHgxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMzIJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLwotI2RlZmluZSBDRkdfU0RSQU1fQ0ZHMQkJMHg1MzcyMjczMAotI2RlZmluZSBDRkdfU0RSQU1fQ0ZHMgkJMHg1NjY3MDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQ1RSTAkJMHhFMTA5MjAwMAotI2RlZmluZSBDRkdfU0RSQU1fRU1PRAkJMHg0MDAxMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fTU9ERQkJMHgwMThEMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkzMgkvKiBTRFJBTSBzaXplIGluIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ0ZHMQkJMHg1MzcyMjczMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NGRzIJCTB4NTY2NzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DVFJMCQkweEUxMDkyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRU1PRAkJMHg0MDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX01PREUJCTB4MDE4RDAwMDAKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAlDRkdfU0RSQU1fQkFTRSArIDB4NDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKChDRkdfU0RSQU1fU0laRSAtIDMpIDw8IDIwKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKChDT05GSUdfU1lTX1NEUkFNX1NJWkUgLSAzKSA8PCAyMCkKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KIAotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JNjQqMTAyNAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JNjQqMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbiA/PwogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCShDRkdfU0RSQU1fQkFTRSArIChDRkdfU0RSQU1fU0laRSA8PCAyMCkpCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgKENPTkZJR19TWVNfU0RSQU1fU0laRSA8PCAyMCkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNpZmRlZiBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9DRkkKICMJZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLSMJZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDgwMDAwMAkvKiBNYXggc2l6ZSB0aGF0IHRoZSBib2FyZCBtaWdodCBoYXZlICovCi0jCWRlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jCWRlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTM3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotIwlkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4ODAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCiAjZW5kaWYKIAogI2lmZGVmIE5BTkRGTEFTSF9TSVpFCi0jCWRlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEKLSMJZGVmaW5lIENGR19OQU5EX0JBU0UJCUNGR19DUzJfQkFTRQotIwlkZWZpbmUgQ0ZHX05BTkRfU0laRQkJMQotIwlkZWZpbmUgQ0ZHX05BTkRfQkFTRV9MSVNUCXsgQ0ZHX05BTkRfQkFTRSB9CisjCWRlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCisjCWRlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJQ09ORklHX1NZU19DUzJfQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NJWkUJCTEKKyMJZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFX0xJU1QJeyBDT05GSUdfU1lTX05BTkRfQkFTRSB9CiAjCWRlZmluZSBOQU5EX01BWF9DSElQUwkJMQogIwlkZWZpbmUgTkFORF9BTExPV19FUkFTRV9BTEwJMQogIwlkZWZpbmUgQ09ORklHX0pGRlMyX05BTkQJMQogIwlkZWZpbmUgQ09ORklHX0pGRlMyX0RFVgkJIm5hbmQwIgotIwlkZWZpbmUgQ09ORklHX0pGRlMyX1BBUlRfU0laRQkoQ0ZHX0NTMl9NQVNLICYgfjEpCisjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9TSVpFCShDT05GSUdfU1lTX0NTMl9NQVNLICYgfjEpCiAjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9PRkZTRVQJMHgwMDAwMDAwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19DUzBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfQ1MwX0JBU0UKIAogLyogQ29uZmlndXJhdGlvbiBmb3IgZW52aXJvbm1lbnQKICAqIEVudmlyb25tZW50IGlzIGVtYmVkZGVkIGluIHUtYm9vdCBpbiB0aGUgc2Vjb25kIHNlY3RvciBvZiB0aGUgZmxhc2gKQEAgLTIzNiw3ICsyMzYsNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENoaXBzZWxlY3QgYmFuayBkZWZpbml0aW9ucwpAQCAtMjQ5LDE4ICsyNDksMTggQEAKICAqIENTNCAtIEF2YWlsYWJsZQogICogQ1M1IC0gQXZhaWxhYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX0NTMF9CQVNFCQkwCi0jZGVmaW5lIENGR19DUzBfTUFTSwkJMHgwMDdmMDAwMQotI2RlZmluZSBDRkdfQ1MwX0NUUkwJCTB4MDAwMDFmYTAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQkFTRQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9NQVNLCQkweDAwN2YwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NUUkwJCTB4MDAwMDFmYTAKIAotI2RlZmluZSBDRkdfQ1MxX0JBU0UJCTB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9NQVNLCQkweDAwMWYwMDAxCi0jZGVmaW5lIENGR19DUzFfQ1RSTAkJMHgwMDJBMzc4MAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9CQVNFCQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX01BU0sJCTB4MDAxZjAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ1RSTAkJMHgwMDJBMzc4MAogCiAjaWZkZWYgTkFOREZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0NTMl9CQVNFCQkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19DUzJfTUFTSwkJKChOQU5ERkxBU0hfU0laRSA8PCAyMCkgfCAxKQotI2RlZmluZSBDRkdfQ1MyX0NUUkwJCTB4MDAwMDFmNjAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfQkFTRQkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9NQVNLCQkoKE5BTkRGTEFTSF9TSVpFIDw8IDIwKSB8IDEpCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX0NUUkwJCTB4MDAwMDFmNjAKICNlbmRpZgogCiAjZW5kaWYJCQkJLyogX001MzczRVZCX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NNTQ0NTFFVkIuaCBiL2luY2x1ZGUvY29uZmlncy9NNTQ0NTFFVkIuaAppbmRleCAwM2QyMWJlLi40NWY3MDE2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTTU0NDUxRVZCLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL001NDQ1MUVWQi5oCkBAIC0zOSw5ICszOSw5IEBACiAjZGVmaW5lIENPTkZJR19NNTQ0NTFFVkIJLyogTTU0NDUxRVZCIGJvYXJkICovCiAKICNkZWZpbmUgQ09ORklHX01DRlVBUlQKLSNkZWZpbmUgQ0ZHX1VBUlRfUE9SVAkJKDApCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9QT1JUCQkoMCkKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CiAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cKIApAQCAtODQsMTIgKzg0LDEyIEBACiAjCWRlZmluZSBDT05GSUdfTkVUX01VTFRJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKLSMJZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkKLSMJZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgKLSMJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwlkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKKyMJZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CisjCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAKLSMJZGVmaW5lIENGR19GRUMwX1BJTk1VWAkwCi0jCWRlZmluZSBDRkdfRkVDMF9NSUlCQVNFCUNGR19GRUMwX0lPQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GRUMwX1BJTk1VWAkwCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCiAjCWRlZmluZSBNQ0ZGRUNfVE9VVF9MT09QIDUwMDAwCiAKICMJZGVmaW5lIENPTkZJR19CT09UREVMQVkJMQkvKiBhdXRvYm9vdCBhZnRlciA1IHNlY29uZHMgKi8KQEAgLTEwMiwyOSArMTAyLDI5IEBACiAjCWRlZmluZSBDT05GSUdfR0FURVdBWUlQCQkxOTIuMTYyLjEuMQogIwlkZWZpbmUgQ09ORklHX09WRVJXUklURV9FVEhBRERSX09OQ0UKIAotLyogSWYgQ0ZHX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLwotIwlpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorLyogSWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KKyMJaWZuZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjCQlkZWZpbmUgRkVDRFVQTEVYCUZVTEwKICMJCWRlZmluZSBGRUNTUEVFRAkJXzEwMEJBU0VUCiAjCWVsc2UKLSMJCWlmbmRlZiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KLSMJCQlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQlpZm5kZWYgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAjCQllbmRpZgotIwllbmRpZgkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyMJZW5kaWYJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0hPU1ROQU1FCQlNNTQ0NTFFVkIKLSNpZmRlZiBDRkdfU1RNSUNST19CT09UCisjaWZkZWYgQ09ORklHX1NZU19TVE1JQ1JPX0JPT1QKIC8qIFNUIE1pY3JvIHNlcmlhbCBmbGFzaCAqLwotI2RlZmluZQlDRkdfTE9BRF9BRERSMgkJMHg0MDAxMDAwNworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUjIJCTB4NDAwMTAwMDcKICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJXAogCSJuZXRkZXY9ZXRoMFwwIgkJCQlcCi0JImlucGNsaz0iIE1LX1NUUihDRkdfSU5QVVRfQ0xLU1JDKSAiXDAiCVwKKwkiaW5wY2xrPSIgTUtfU1RSKENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDKSAiXDAiCVwKIAkibG9hZGFkZHI9MHg0MDAxMDAwMFwwIgkJCVwKIAkic2JmaGRyPXNiZmhkci5iaW5cMCIJCQlcCiAJInVib290PXUtYm9vdC5iaW5cMCIJCQlcCiAJImxvYWQ9dGZ0cCAke2xvYWRhZGRyfSAke3NiZmhkcn07IglcCi0JInRmdHAgIiBNS19TVFIoQ0ZHX0xPQURfQUREUjIpICIgJHt1Ym9vdH0gXDAiCVwKKwkidGZ0cCAiIE1LX1NUUihDT05GSUdfU1lTX0xPQURfQUREUjIpICIgJHt1Ym9vdH0gXDAiCVwKIAkidXBkPXJ1biBsb2FkOyBydW4gcHJvZ1wwIgkJXAogCSJwcm9nPXNmIHByb2JlIDA6MSAxMDAwMCAxOyIJCVwKIAkic2YgZXJhc2UgMCAzMDAwMDsiCQkJXApAQCAtMTMyLDE2ICsxMzIsMTYgQEAKIAkic2F2ZVwwIgkJCQlcCiAJIiIKICNlbHNlCi0jZGVmaW5lIENGR19VQk9PVF9FTkQJMHgzRkZGRgorI2RlZmluZSBDT05GSUdfU1lTX1VCT09UX0VORAkweDNGRkZGCiAjZGVmaW5lIENPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MJCVwKIAkibmV0ZGV2PWV0aDBcMCIJCQkJXAotCSJpbnBjbGs9IiBNS19TVFIoQ0ZHX0lOUFVUX0NMS1NSQykgIlwwIglcCisJImlucGNsaz0iIE1LX1NUUihDT05GSUdfU1lTX0lOUFVUX0NMS1NSQykgIlwwIglcCiAJImxvYWRhZGRyPTQwMDEwMDAwXDAiCQkJXAogCSJ1LWJvb3Q9dS1ib290LmJpblwwIgkJCVwKIAkibG9hZD10ZnRwICR7bG9hZGFkZHIpICR7dS1ib290fVwwIglcCiAJInVwZD1ydW4gbG9hZDsgcnVuIHByb2dcMCIJCVwKLQkicHJvZz1wcm90IG9mZiAwICIgTUtfU1RSKENGR19VQk9PVF9FTkQpCVwKLQkiOyBlcmEgMCAiIE1LX1NUUihDRkdfVUJPT1RfRU5EKSAiIDsiCVwKKwkicHJvZz1wcm90IG9mZiAwICIgTUtfU1RSKENPTkZJR19TWVNfVUJPT1RfRU5EKQlcCisJIjsgZXJhIDAgIiBNS19TVFIoQ09ORklHX1NZU19VQk9PVF9FTkQpICIgOyIJXAogCSJjcC5iICR7bG9hZGFkZHJ9IDAgJHtmaWxlc2l6ZX07IglcCiAJInNhdmVcMCIJCQkJXAogCSIiCkBAIC0xNTAsNyArMTUwLDcgQEAKIC8qIFJlYWx0aW1lIGNsb2NrICovCiAjZGVmaW5lIENPTkZJR19NQ0ZSVEMKICN1bmRlZiBSVENfREVCVUcKLSNkZWZpbmUgQ0ZHX1JUQ19PU0NJTExBVE9SCSgzMiAqIENGR19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19SVENfT1NDSUxMQVRPUgkoMzIgKiBDT05GSUdfU1lTX0haKQogCiAvKiBUaW1lciAqLwogI2RlZmluZSBDT05GSUdfTUNGVE1SCkBAIC0xNjAsMjIgKzE2MCwyMiBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCS8qIEkyQyBiaXQtYmFuZ2VkICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJODAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDU4MDAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4NTgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX01CQVIKIAogLyogRFNQSSBhbmQgU2VyaWFsIEZsYXNoICovCiAjZGVmaW5lIENPTkZJR19DRl9EU1BJCiAjZGVmaW5lIENPTkZJR19TRVJJQUxfRkxBU0gKICNkZWZpbmUgQ09ORklHX0hBUkRfU1BJCi0jZGVmaW5lIENGR19TRVJfRkxBU0hfQkFTRQkweDAxMDAwMDAwCi0jZGVmaW5lIENGR19TQkZIRFJfU0laRQkJMHg3CisjZGVmaW5lIENPTkZJR19TWVNfU0VSX0ZMQVNIX0JBU0UJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NCRkhEUl9TSVpFCQkweDcKICNpZmRlZiBDT05GSUdfQ01EX1NQSQogIwlkZWZpbmUgQ09ORklHX1NQSV9GTEFTSAogIwlkZWZpbmUgQ09ORklHX1NQSV9GTEFTSF9TVE1JQ1JPCiAKLSMJZGVmaW5lIENGR19EU1BJX0RDVEFSMAkJKERTUElfRENUQVJfVFJTWig3KSB8IFwKKyMJZGVmaW5lIENPTkZJR19TWVNfRFNQSV9EQ1RBUjAJCShEU1BJX0RDVEFSX1RSU1ooNykgfCBcCiAJCQkJCSBEU1BJX0RDVEFSX0NQT0wgfCBcCiAJCQkJCSBEU1BJX0RDVEFSX0NQSEEgfCBcCiAJCQkJCSBEU1BJX0RDVEFSX1BDU1NDS18xQ0xLIHwgXApAQCAtMTkzLDIzICsxOTMsMjMgQEAKIAogI2RlZmluZSBDT05GSUdfUFJBTQkJMjA0OAkvKiAyMDQ4IEtCICovCiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIi0+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIi0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCShDRkdfU0RSQU1fQkFTRSArIDB4MTAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwMCkKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEZDMDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjIwLDM5ICsyMjAsMzkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0NUUkwJMHgyMjEKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMjU2CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCSgoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKSAtIDMyKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAotI2RlZmluZSBDRkdfU0JGSERSX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gMzIpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9DVFJMCTB4MjIxCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkyNTYJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCSgoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpIC0gMzIpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19TQkZIRFJfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gMzIpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkxMjgJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLwotI2RlZmluZSBDRkdfU0RSQU1fQ0ZHMQkJMHgzMzYzM0YzMAotI2RlZmluZSBDRkdfU0RSQU1fQ0ZHMgkJMHg1NzY3MDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQ1RSTAkJMHhFMjBEMkMwMAotI2RlZmluZSBDRkdfU0RSQU1fRU1PRAkJMHg4MDgxMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fTU9ERQkJMHgwMDhEMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fRFJWX1NUUkVOR1RICTB4NDQKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMTI4CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcxCQkweDMzNjMzRjMwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ0ZHMgkJMHg1NzY3MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NUUkwJCTB4RTIwRDJDMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9FTU9ECQkweDgwODEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fTU9ERQkJMHgwMDhEMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0RSVl9TVFJFTkdUSAkweDQ0CiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UgKyAweDQwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCSgoQ0ZHX1NEUkFNX1NJWkUgLSAzKSA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCSgoQ09ORklHX1NZU19TRFJBTV9TSVpFIC0gMykgPDwgMjApCiAKICNpZmRlZiBDT05GSUdfQ0ZfU0JGCi0jCWRlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShURVhUX0JBU0UgKyAweDQwMCkKKyMJZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShURVhUX0JBU0UgKyAweDQwMCkKICNlbHNlCi0jCWRlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorIwlkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwKQogI2VuZGlmCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0Ci0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKQEAgLTI2MCw3ICsyNjAsNyBAQAogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyogQ29uZmlndXJhdGlvbiBmb3IgZW52aXJvbm1lbnQKICAqIEVudmlyb25tZW50IGlzIGVtYmVkZGVkIGluIHUtYm9vdCBpbiB0aGUgc2Vjb25kIHNlY3RvciBvZiB0aGUgZmxhc2gKQEAgLTI3Myw3ICsyNzMsNyBAQAogIwlkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAogI2Vsc2UKICMJZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotIwlkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMDApCisjCWRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMDApCiAjCWRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAKICNlbmRpZgogI3VuZGVmIENPTkZJR19FTlZfT1ZFUldSSVRFCkBAIC0yODIsMjggKzI4MiwyOCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNpZmRlZiBDRkdfU1RNSUNST19CT09UCi0jCWRlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX1NFUl9GTEFTSF9CQVNFCi0jCWRlZmluZSBDRkdfRkxBU0gwX0JBU0UJCUNGR19TRVJfRkxBU0hfQkFTRQotIwlkZWZpbmUgQ0ZHX0ZMQVNIMV9CQVNFCQlDRkdfQ1MwX0JBU0UKKyNpZmRlZiBDT05GSUdfU1lTX1NUTUlDUk9fQk9PVAorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX1NFUl9GTEFTSF9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCQlDT05GSUdfU1lTX1NFUl9GTEFTSF9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFCQlDT05GSUdfU1lTX0NTMF9CQVNFCiAjZW5kaWYKLSNpZmRlZiBDRkdfU1BBTlNJT05fQk9PVAotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19DUzBfQkFTRQotIwlkZWZpbmUgQ0ZHX0ZMQVNIMF9CQVNFCQlDRkdfQ1MwX0JBU0UKLSMJZGVmaW5lIENGR19GTEFTSDFfQkFTRQkJQ0ZHX1NFUl9GTEFTSF9CQVNFCisjaWZkZWYgQ09ORklHX1NZU19TUEFOU0lPTl9CT09UCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfQ1MwX0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0JBU0UJCUNPTkZJR19TWVNfQ1MwX0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX0JBU0UJCUNPTkZJR19TWVNfU0VSX0ZMQVNIX0JBU0UKICNlbmRpZgogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNpZmRlZiBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9DRkkKIAogIwlkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQotIwlkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MTAwMDAwMAkvKiBNYXggc2l6ZSB0aGF0IHRoZSBib2FyZCBtaWdodCBoYXZlICovCi0jCWRlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jCWRlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTM3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotIwlkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCi0jCWRlZmluZSBDRkdfRkxBU0hfQ0hFQ0tTVU0KLSMJZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0NTMF9CQVNFIH0KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgxMDAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0NTMF9CQVNFIH0KIAogI2VuZGlmCiAKQEAgLTMxMSwyMSArMzExLDIxIEBACiAgKiBUaGlzIGlzIHNldHRpbmcgZm9yIEpGRlMyIHN1cHBvcnQgaW4gdS1ib290LgogICogTk9URTogRW5hYmxlIENPTkZJR19DTURfSkZGUzIgZm9yIEpGRlMyIHN1cHBvcnQuCiAgKi8KLSNpZmRlZiBDRkdfU1BBTlNJT05fQk9PVAorI2lmZGVmIENPTkZJR19TWVNfU1BBTlNJT05fQk9PVAogIwlkZWZpbmUgQ09ORklHX0pGRlMyX0RFVgkJIm5vcjAiCiAjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9TSVpFCTB4MDEwMDAwMDAKLSMJZGVmaW5lIENPTkZJR19KRkZTMl9QQVJUX09GRlNFVAkoQ0ZHX0ZMQVNIMF9CQVNFICsgMHg1MDAwMDApCisjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9PRkZTRVQJKENPTkZJR19TWVNfRkxBU0gwX0JBU0UgKyAweDUwMDAwMCkKICNlbmRpZgotI2lmZGVmIENGR19TVE1JQ1JPX0JPT1QKKyNpZmRlZiBDT05GSUdfU1lTX1NUTUlDUk9fQk9PVAogIwlkZWZpbmUgQ09ORklHX0pGRlMyX0RFVgkJIm5vcjAiCiAjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9TSVpFCTB4MDEwMDAwMDAKLSMJZGVmaW5lIENPTkZJR19KRkZTMl9QQVJUX09GRlNFVAkoQ0ZHX0ZMQVNIMF9CQVNFICsgMHg1MDAwMDApCisjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9PRkZTRVQJKENPTkZJR19TWVNfRkxBU0gwX0JBU0UgKyAweDUwMDAwMCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkxNgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNZW1vcnkgYmFuayBkZWZpbml0aW9ucwpAQCAtMzQwLDEwICszNDAsMTAgQEAKICAqLwogCiAgLyogU1BBTlNJT04gRmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0NTMF9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DUzBfTUFTSwkJMHgwMDdGMDAwMQotI2RlZmluZSBDRkdfQ1MwX0NUUkwJCTB4MDAwMDExODAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9NQVNLCQkweDAwN0YwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NUUkwJCTB4MDAwMDExODAKIAotI2RlZmluZSBDRkdfU1BBTlNJT05fQkFTRQlDRkdfQ1MwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19TUEFOU0lPTl9CQVNFCUNPTkZJR19TWVNfQ1MwX0JBU0UKIAogI2VuZGlmCQkJCS8qIF9NNTQ0NTFFVkJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL001NDQ1NUVWQi5oIGIvaW5jbHVkZS9jb25maWdzL001NDQ1NUVWQi5oCmluZGV4IDk1MTMyNzkuLjEwMWRjZWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NNTQ0NTVFVkIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTTU0NDU1RVZCLmgKQEAgLTM5LDkgKzM5LDkgQEAKICNkZWZpbmUgQ09ORklHX001NDQ1NUVWQgkvKiBNNTQ0NTVFVkIgYm9hcmQgKi8KIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogI3VuZGVmIENPTkZJR19XQVRDSERPRwogCkBAIC04OCwxNCArODgsMTQgQEAKICMJZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCTEKICMJZGVmaW5lIENPTkZJR19NSUkJCTEKICMJZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQotIwlkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQotIwlkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAotIwlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCWRlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQorIwlkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgKKyMJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KIAotIwlkZWZpbmUgQ0ZHX0ZFQzBfUElOTVVYCTAKLSMJZGVmaW5lIENGR19GRUMxX1BJTk1VWAkwCi0jCWRlZmluZSBDRkdfRkVDMF9NSUlCQVNFCUNGR19GRUMwX0lPQkFTRQotIwlkZWZpbmUgQ0ZHX0ZFQzFfTUlJQkFTRQlDRkdfRkVDMF9JT0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9QSU5NVVgJMAorIwlkZWZpbmUgQ09ORklHX1NZU19GRUMxX1BJTk1VWAkwCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzFfTUlJQkFTRQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCiAjCWRlZmluZSBNQ0ZGRUNfVE9VVF9MT09QIDUwMDAwCiAjCWRlZmluZSBDT05GSUdfSEFTX0VUSDEKIApAQCAtMTEwLDI5ICsxMTAsMjkgQEAKICMJZGVmaW5lIENPTkZJR19HQVRFV0FZSVAJCTE5Mi4xNjIuMS4xCiAjCWRlZmluZSBDT05GSUdfT1ZFUldSSVRFX0VUSEFERFJfT05DRQogCi0vKiBJZiBDRkdfRElTQ09WRVJfUEhZIGlzIG5vdCBkZWZpbmVkIC0gaGFyZGNvZGVkICovCi0jCWlmbmRlZiBDRkdfRElTQ09WRVJfUEhZCisvKiBJZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLworIwlpZm5kZWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKICMJCWRlZmluZSBGRUNEVVBMRVgJRlVMTAogIwkJZGVmaW5lIEZFQ1NQRUVECQlfMTAwQkFTRVQKICMJZWxzZQotIwkJaWZuZGVmIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgotIwkJCWRlZmluZSBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJCWlmbmRlZiBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQkJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KICMJCWVuZGlmCi0jCWVuZGlmCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSAqLworIwllbmRpZgkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICovCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfSE9TVE5BTUUJCU01NDQ1NUVWQgotI2lmZGVmIENGR19TVE1JQ1JPX0JPT1QKKyNpZmRlZiBDT05GSUdfU1lTX1NUTUlDUk9fQk9PVAogLyogU1QgTWljcm8gc2VyaWFsIGZsYXNoICovCi0jZGVmaW5lCUNGR19MT0FEX0FERFIyCQkweDQwMDEwMDEzCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSMgkJMHg0MDAxMDAxMwogI2RlZmluZSBDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCQlcCiAJIm5ldGRldj1ldGgwXDAiCQkJCVwKLQkiaW5wY2xrPSIgTUtfU1RSKENGR19JTlBVVF9DTEtTUkMpICJcMCIJXAorCSJpbnBjbGs9IiBNS19TVFIoQ09ORklHX1NZU19JTlBVVF9DTEtTUkMpICJcMCIJXAogCSJsb2FkYWRkcj0weDQwMDEwMDAwXDAiCQkJXAogCSJzYmZoZHI9c2JmaGRyLmJpblwwIgkJCVwKIAkidWJvb3Q9dS1ib290LmJpblwwIgkJCVwKIAkibG9hZD10ZnRwICR7bG9hZGFkZHJ9ICR7c2JmaGRyfTsiCVwKLQkidGZ0cCAiIE1LX1NUUihDRkdfTE9BRF9BRERSMikgIiAke3Vib290fSBcMCIJXAorCSJ0ZnRwICIgTUtfU1RSKENPTkZJR19TWVNfTE9BRF9BRERSMikgIiAke3Vib290fSBcMCIJXAogCSJ1cGQ9cnVuIGxvYWQ7IHJ1biBwcm9nXDAiCQlcCiAJInByb2c9c2YgcHJvYmUgMDoxIDEwMDAwIDE7IgkJXAogCSJzZiBlcmFzZSAwIDMwMDAwOyIJCQlcCkBAIC0xNDEsMjMgKzE0MSwyMyBAQAogCSIiCiAjZWxzZQogLyogQXRtZWwgYW5kIEludGVsICovCi0jaWZkZWYgQ0ZHX0FUTUVMX0JPT1QKLSMJZGVmaW5lIENGR19VQk9PVF9FTkQJMHgwNDAzRkZGRgotI2VsaWYgZGVmaW5lZChDRkdfSU5URUxfQk9PVCkKLSMJZGVmaW5lIENGR19VQk9PVF9FTkQJMHgzRkZGRgorI2lmZGVmIENPTkZJR19TWVNfQVRNRUxfQk9PVAorIwlkZWZpbmUgQ09ORklHX1NZU19VQk9PVF9FTkQJMHgwNDAzRkZGRgorI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTX0lOVEVMX0JPT1QpCisjCWRlZmluZSBDT05GSUdfU1lTX1VCT09UX0VORAkweDNGRkZGCiAjZW5kaWYKICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJXAogCSJuZXRkZXY9ZXRoMFwwIgkJCQlcCi0JImlucGNsaz0iIE1LX1NUUihDRkdfSU5QVVRfQ0xLU1JDKSAiXDAiCVwKKwkiaW5wY2xrPSIgTUtfU1RSKENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDKSAiXDAiCVwKIAkibG9hZGFkZHI9MHg0MDAxMDAwMFwwIgkJCVwKIAkidWJvb3Q9dS1ib290LmJpblwwIgkJCVwKIAkibG9hZD10ZnRwICR7bG9hZGFkZHJ9ICR7dWJvb3R9XDAiCVwKIAkidXBkPXJ1biBsb2FkOyBydW4gcHJvZ1wwIgkJXAotCSJwcm9nPXByb3Qgb2ZmICIgTUtfU1RSKENGR19GTEFTSF9CQVNFKQlcCi0JIiAiIE1LX1NUUihDRkdfVUJPT1RfRU5EKSAiOyIJCVwKLQkiZXJhICIgTUtfU1RSKENGR19GTEFTSF9CQVNFKSAiICIJXAotCU1LX1NUUihDRkdfVUJPT1RfRU5EKSAiOyIJCVwKLQkiY3AuYiAke2xvYWRhZGRyfSAiIE1LX1NUUihDRkdfRkxBU0hfQkFTRSkJXAorCSJwcm9nPXByb3Qgb2ZmICIgTUtfU1RSKENPTkZJR19TWVNfRkxBU0hfQkFTRSkJXAorCSIgIiBNS19TVFIoQ09ORklHX1NZU19VQk9PVF9FTkQpICI7IgkJXAorCSJlcmEgIiBNS19TVFIoQ09ORklHX1NZU19GTEFTSF9CQVNFKSAiICIJXAorCU1LX1NUUihDT05GSUdfU1lTX1VCT09UX0VORCkgIjsiCQlcCisJImNwLmIgJHtsb2FkYWRkcn0gIiBNS19TVFIoQ09ORklHX1NZU19GTEFTSF9CQVNFKQlcCiAJIiAke2ZpbGVzaXplfTsgc2F2ZVwwIgkJCVwKIAkiIgogI2VuZGlmCkBAIC0xNzAsMjIgKzE3MCwyMiBAQAogI2RlZmluZSBDT05GSUdfQVRBUEkKICN1bmRlZiBDT05GSUdfTEJBNDgKIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkyCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMgogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4OTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweDkwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTAKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4QTAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHhBMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHhDMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgICAgICAgICAgICovCi0jZGVmaW5lIENGR19BVEFfU1RSSURFCQk0CS8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweEEwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08gICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweEEwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHhDMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJNAkvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycyAgICAgICAgICAgICAgICAgKi8KICNkZWZpbmUgX0lPX0JBU0UJCTAKIAogLyogUmVhbHRpbWUgY2xvY2sgKi8KICNkZWZpbmUgQ09ORklHX01DRlJUQwogI3VuZGVmIFJUQ19ERUJVRwotI2RlZmluZSBDRkdfUlRDX09TQ0lMTEFUT1IJKDMyICogQ0ZHX0haKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ19PU0NJTExBVE9SCSgzMiAqIENPTkZJR19TWVNfSFopCiAKIC8qIFRpbWVyICovCiAjZGVmaW5lIENPTkZJR19NQ0ZUTVIKQEAgLTE5NSwyMSArMTk1LDIxIEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJLyogSTJDIGJpdC1iYW5nZWQgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4NTgwMDAKLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19NQkFSCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk4MDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHg1ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfTUJBUgogCiAvKiBEU1BJIGFuZCBTZXJpYWwgRmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0NGX0RTUEkKICNkZWZpbmUgQ09ORklHX0hBUkRfU1BJCi0jZGVmaW5lIENGR19TRVJfRkxBU0hfQkFTRQkweDAxMDAwMDAwCi0jZGVmaW5lIENGR19TQkZIRFJfU0laRQkJMHgxMworI2RlZmluZSBDT05GSUdfU1lTX1NFUl9GTEFTSF9CQVNFCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQkZIRFJfU0laRQkJMHgxMwogI2lmZGVmIENPTkZJR19DTURfU1BJCiAjCWRlZmluZSBDT05GSUdfU1BJX0ZMQVNICiAjCWRlZmluZSBDT05GSUdfU1BJX0ZMQVNIX1NUTUlDUk8KIAotIwlkZWZpbmUgQ0ZHX0RTUElfRENUQVIwCQkoRFNQSV9EQ1RBUl9UUlNaKDcpIHwgXAorIwlkZWZpbmUgQ09ORklHX1NZU19EU1BJX0RDVEFSMAkJKERTUElfRENUQVJfVFJTWig3KSB8IFwKIAkJCQkJIERTUElfRENUQVJfQ1BPTCB8IFwKIAkJCQkJIERTUElfRENUQVJfQ1BIQSB8IFwKIAkJCQkJIERTUElfRENUQVJfUENTU0NLXzFDTEsgfCBcCkBAIC0yMjgsMjcgKzIyOCwyNyBAQAogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJMQogI2RlZmluZSBDT05GSUdfUENJQVVUT19TS0lQX0hPU1RfQlJJREdFCTEKIAotI2RlZmluZSBDRkdfUENJX0NBQ0hFX0xJTkVfU0laRQk0CisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NBQ0hFX0xJTkVfU0laRQk0CiAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fQlVTCQkweEEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNX1BIWVMJQ0ZHX1BDSV9NRU1fQlVTCi0jZGVmaW5lIENGR19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fQlVTCQkweEEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9QSFlTCUNPTkZJR19TWVNfUENJX01FTV9CVVMKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMAogCi0jZGVmaW5lIENGR19QQ0lfSU9fQlVTCQkweEIxMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fUEhZUwkJQ0ZHX1BDSV9JT19CVVMKLSNkZWZpbmUgQ0ZHX1BDSV9JT19TSVpFCQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX0JVUwkJMHhCMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19QSFlTCQlDT05GSUdfU1lTX1BDSV9JT19CVVMKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fU0laRQkJMHgwMTAwMDAwMAogCi0jZGVmaW5lIENGR19QQ0lfQ0ZHX0JVUwkJMHhCMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX0NGR19QSFlTCUNGR19QQ0lfQ0ZHX0JVUwotI2RlZmluZSBDRkdfUENJX0NGR19TSVpFCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0ZHX0JVUwkJMHhCMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DRkdfUEhZUwlDT05GSUdfU1lTX1BDSV9DRkdfQlVTCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NGR19TSVpFCTB4MDEwMDAwMDAKICNlbmRpZgogCiAvKiBGUEdBIC0gU3BhcnRhbiAyICovCiAvKiBleHBlcmltZW50Ci0jZGVmaW5lIENPTkZJR19GUEdBCQlDRkdfU1BBUlRBTjMKKyNkZWZpbmUgQ09ORklHX0ZQR0EJCUNPTkZJR19TWVNfU1BBUlRBTjMKICNkZWZpbmUgQ09ORklHX0ZQR0FfQ09VTlQJMQotI2RlZmluZSBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCi0jZGVmaW5lIENGR19GUEdBX0NIRUNLX0NUUkxDCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DSEVDS19DVFJMQwogKi8KIAogLyogSW5wdXQsIFBDSSwgRmxleGJ1cywgYW5kIFZDTyAqLwpAQCAtMjU2LDIzICsyNTYsMjMgQEAKIAogI2RlZmluZSBDT05GSUdfUFJBTQkJMjA0OAkvKiAyMDQ4IEtCICovCiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIi0+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIi0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCShDRkdfU0RSQU1fQkFTRSArIDB4MTAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwMCkKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEZDMDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjgzLDQwICsyODMsNDAgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0NUUkwJMHgyMjEKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCSgoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKSAtIDMyKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAotI2RlZmluZSBDRkdfU0JGSERSX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gMzIpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9DVFJMCTB4MjIxCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCSgoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpIC0gMzIpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19TQkZIRFJfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gMzIpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFMQkJMHg0ODAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMjU2CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0NGRzEJCTB4NjUzMTE2MTAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0NGRzIJCTB4NTk2NzAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0NUUkwJCTB4RUEwQjIwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0VNT0QJCTB4NDAwMTAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX01PREUJCTB4MDAwMTAwMzMKLSNkZWZpbmUgQ0ZHX1NEUkFNX0RSVl9TVFJFTkdUSAkweEFBCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UxCQkweDQ4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMjU2CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcxCQkweDY1MzExNjEwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ0ZHMgkJMHg1OTY3MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NUUkwJCTB4RUEwQjIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9FTU9ECQkweDQwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fTU9ERQkJMHgwMDAxMDAzMworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0RSVl9TVFJFTkdUSAkweEFBCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UgKyAweDQwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCSgoQ0ZHX1NEUkFNX1NJWkUgLSAzKSA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCSgoQ09ORklHX1NZU19TRFJBTV9TSVpFIC0gMykgPDwgMjApCiAKICNpZmRlZiBDT05GSUdfQ0ZfU0JGCi0jCWRlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShURVhUX0JBU0UgKyAweDQwMCkKKyMJZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShURVhUX0JBU0UgKyAweDQwMCkKICNlbHNlCi0jCWRlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorIwlkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwKQogI2VuZGlmCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0Ci0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKQEAgLTMyNCw3ICszMjQsNyBAQAogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyoKICAqIENvbmZpZ3VyYXRpb24gZm9yIGVudmlyb25tZW50CkBAIC0zNDIsNDkgKzM0Miw0OSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNpZmRlZiBDRkdfU1RNSUNST19CT09UCi0jCWRlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX1NFUl9GTEFTSF9CQVNFCi0jCWRlZmluZSBDRkdfRkxBU0gwX0JBU0UJCUNGR19TRVJfRkxBU0hfQkFTRQotIwlkZWZpbmUgQ0ZHX0ZMQVNIMV9CQVNFCQlDRkdfQ1MwX0JBU0UKLSMJZGVmaW5lIENGR19GTEFTSDJfQkFTRQkJQ0ZHX0NTMV9CQVNFCisjaWZkZWYgQ09ORklHX1NZU19TVE1JQ1JPX0JPT1QKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19TRVJfRkxBU0hfQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRQkJQ09ORklHX1NZU19TRVJfRkxBU0hfQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfQkFTRQkJQ09ORklHX1NZU19DUzBfQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSDJfQkFTRQkJQ09ORklHX1NZU19DUzFfQkFTRQogIwlkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MzAwMDAKICMJZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjCWRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAjZW5kaWYKLSNpZmRlZiBDRkdfQVRNRUxfQk9PVAotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19DUzBfQkFTRQotIwlkZWZpbmUgQ0ZHX0ZMQVNIMF9CQVNFCQlDRkdfQ1MwX0JBU0UKLSMJZGVmaW5lIENGR19GTEFTSDFfQkFTRQkJQ0ZHX0NTMV9CQVNFCi0jCWRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwMCkKKyNpZmRlZiBDT05GSUdfU1lTX0FUTUVMX0JPT1QKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19DUzBfQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRQkJQ09ORklHX1NZU19DUzBfQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfQkFTRQkJQ09ORklHX1NZU19DUzFfQkFTRQorIwlkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwKQogIwlkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwCiAjZW5kaWYKLSNpZmRlZiBDRkdfSU5URUxfQk9PVAotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19DUzBfQkFTRQotIwlkZWZpbmUgQ0ZHX0ZMQVNIMF9CQVNFCQlDRkdfQ1MwX0JBU0UKLSMJZGVmaW5lIENGR19GTEFTSDFfQkFTRQkJQ0ZHX0NTMV9CQVNFCi0jCWRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwMDApCisjaWZkZWYgQ09ORklHX1NZU19JTlRFTF9CT09UCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfQ1MwX0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0JBU0UJCUNPTkZJR19TWVNfQ1MwX0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX0JBU0UJCUNPTkZJR19TWVNfQ1MxX0JBU0UKKyMJZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwMDApCiAjCWRlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogIwlkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2lmZGVmIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NGSQogCiAjCWRlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCi0jCWRlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgxMDAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KLSMJZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzhCSVQKLSMJZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEzNwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSMJZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLwotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jCWRlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19DUzBfQkFTRSwgQ0ZHX0NTMV9CQVNFIH0KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgxMDAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV84QklUCisjCWRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjCWRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEzNwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfQ1MwX0JBU0UsIENPTkZJR19TWVNfQ1MxX0JBU0UgfQogIwlkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9MRUdBQ1kKIAogI2lmZGVmIENPTkZJR19GTEFTSF9DRklfTEVHQUNZCi0jCWRlZmluZSBDRkdfQVRNRUxfUkVHSU9OCQk0Ci0jCWRlZmluZSBDRkdfQVRNRUxfVE9UQUxTRUNUCTExCi0jCWRlZmluZSBDRkdfQVRNRUxfU0VDVAkJezEsIDIsIDEsIDd9Ci0jCWRlZmluZSBDRkdfQVRNRUxfU0VDVFNaCQl7MHg0MDAwLCAweDIwMDAsIDB4ODAwMCwgMHgxMDAwMH0KKyMJZGVmaW5lIENPTkZJR19TWVNfQVRNRUxfUkVHSU9OCQk0CisjCWRlZmluZSBDT05GSUdfU1lTX0FUTUVMX1RPVEFMU0VDVAkxMQorIwlkZWZpbmUgQ09ORklHX1NZU19BVE1FTF9TRUNUCQl7MSwgMiwgMSwgN30KKyMJZGVmaW5lIENPTkZJR19TWVNfQVRNRUxfU0VDVFNaCQl7MHg0MDAwLCAweDIwMDAsIDB4ODAwMCwgMHgxMDAwMH0KICNlbmRpZgogI2VuZGlmCiAKQEAgLTM5NiwyNCArMzk2LDI0IEBACiAjaWZkZWYgQ0ZfU1RNSUNST19CT09UCiAjCWRlZmluZSBDT05GSUdfSkZGUzJfREVWCQkibm9yMSIKICMJZGVmaW5lIENPTkZJR19KRkZTMl9QQVJUX1NJWkUJMHgwMTAwMDAwMAotIwlkZWZpbmUgQ09ORklHX0pGRlMyX1BBUlRfT0ZGU0VUCShDRkdfRkxBU0gyX0JBU0UgKyAweDUwMDAwMCkKKyMJZGVmaW5lIENPTkZJR19KRkZTMl9QQVJUX09GRlNFVAkoQ09ORklHX1NZU19GTEFTSDJfQkFTRSArIDB4NTAwMDAwKQogI2VuZGlmCi0jaWZkZWYgQ0ZHX0FUTUVMX0JPT1QKKyNpZmRlZiBDT05GSUdfU1lTX0FUTUVMX0JPT1QKICMJZGVmaW5lIENPTkZJR19KRkZTMl9ERVYJCSJub3IxIgogIwlkZWZpbmUgQ09ORklHX0pGRlMyX1BBUlRfU0laRQkweDAxMDAwMDAwCi0jCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9PRkZTRVQJKENGR19GTEFTSDFfQkFTRSArIDB4NTAwMDAwKQorIwlkZWZpbmUgQ09ORklHX0pGRlMyX1BBUlRfT0ZGU0VUCShDT05GSUdfU1lTX0ZMQVNIMV9CQVNFICsgMHg1MDAwMDApCiAjZW5kaWYKLSNpZmRlZiBDRkdfSU5URUxfQk9PVAorI2lmZGVmIENPTkZJR19TWVNfSU5URUxfQk9PVAogIwlkZWZpbmUgQ09ORklHX0pGRlMyX0RFVgkJIm5vcjAiCiAjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9TSVpFCSgweDAxMDAwMDAwIC0gMHg1MDAwMDApCi0jCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9PRkZTRVQJKENGR19GTEFTSDBfQkFTRSArIDB4NTAwMDAwKQorIwlkZWZpbmUgQ09ORklHX0pGRlMyX1BBUlRfT0ZGU0VUCShDT05GSUdfU1lTX0ZMQVNIMF9CQVNFICsgMHg1MDAwMDApCiAjZW5kaWYKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkxNgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNZW1vcnkgYmFuayBkZWZpbml0aW9ucwpAQCAtNDI3LDM4ICs0MjcsMzggQEAKICAqIENTNSAtIEF2YWlsYWJsZQogICovCiAKLSNpZiBkZWZpbmVkKENGR19BVE1FTF9CT09UKSB8fCBkZWZpbmVkKENGR19TVE1JQ1JPX0JPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0FUTUVMX0JPT1QpIHx8IGRlZmluZWQoQ09ORklHX1NZU19TVE1JQ1JPX0JPT1QpCiAgLyogQXRtZWwgRmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0NTMF9CQVNFCQkweDA0MDAwMDAwCi0jZGVmaW5lIENGR19DUzBfTUFTSwkJMHgwMDA3MDAwMQotI2RlZmluZSBDRkdfQ1MwX0NUUkwJCTB4MDAwMDExNDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQkFTRQkJMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9NQVNLCQkweDAwMDcwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NUUkwJCTB4MDAwMDExNDAKIC8qIEludGVsIEZsYXNoICovCi0jZGVmaW5lIENGR19DUzFfQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1MxX01BU0sJCTB4MDFGRjAwMDEKLSNkZWZpbmUgQ0ZHX0NTMV9DVFJMCQkweDAwMDAwRDYwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfTUFTSwkJMHgwMUZGMDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DVFJMCQkweDAwMDAwRDYwCiAKLSNkZWZpbmUgQ0ZHX0FUTUVMX0JBU0UJCUNGR19DUzBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0FUTUVMX0JBU0UJCUNPTkZJR19TWVNfQ1MwX0JBU0UKICNlbHNlCiAvKiBJbnRlbCBGbGFzaCAqLwotI2RlZmluZSBDRkdfQ1MwX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMF9NQVNLCQkweDAxRkYwMDAxCi0jZGVmaW5lIENGR19DUzBfQ1RSTAkJMHgwMDAwMEQ2MAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX01BU0sJCTB4MDFGRjAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQ1RSTAkJMHgwMDAwMEQ2MAogIC8qIEF0bWVsIEZsYXNoICovCi0jZGVmaW5lIENGR19DUzFfQkFTRQkJMHgwNDAwMDAwMAotI2RlZmluZSBDRkdfQ1MxX01BU0sJCTB4MDAwNzAwMDEKLSNkZWZpbmUgQ0ZHX0NTMV9DVFJMCQkweDAwMDAxMTQwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0JBU0UJCTB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfTUFTSwkJMHgwMDA3MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DVFJMCQkweDAwMDAxMTQwCiAKLSNkZWZpbmUgQ0ZHX0FUTUVMX0JBU0UJCUNGR19DUzFfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0FUTUVMX0JBU0UJCUNPTkZJR19TWVNfQ1MxX0JBU0UKICNlbmRpZgogCiAvKiBDUExEICovCi0jZGVmaW5lIENGR19DUzJfQkFTRQkJMHgwODAwMDAwMAotI2RlZmluZSBDRkdfQ1MyX01BU0sJCTB4MDAwNzAwMDEKLSNkZWZpbmUgQ0ZHX0NTMl9DVFJMCQkweDAwM2YxMTQwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX0JBU0UJCTB4MDgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfTUFTSwkJMHgwMDA3MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9DVFJMCQkweDAwM2YxMTQwCiAKIC8qIEZQR0EgKi8KLSNkZWZpbmUgQ0ZHX0NTM19CQVNFCQkweDA5MDAwMDAwCi0jZGVmaW5lIENGR19DUzNfTUFTSwkJMHgwMDA3MDAwMQotI2RlZmluZSBDRkdfQ1MzX0NUUkwJCTB4MDAwMDAwMjAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfQkFTRQkJMHgwOTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19NQVNLCQkweDAwMDcwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX0NUUkwJCTB4MDAwMDAwMjAKIAogI2VuZGlmCQkJCS8qIF9NNTQ0NTVFVkJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL001NDc1RVZCLmggYi9pbmNsdWRlL2NvbmZpZ3MvTTU0NzVFVkIuaAppbmRleCAzN2IxYzYwLi5lNDhkZTE1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTTU0NzVFVkIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTTU0NzVFVkIuaApAQCAtMzksOSArMzksOSBAQAogI2RlZmluZSBDT05GSUdfTTU0NzUJCS8qIGRlZmluZSBwcm9jZXNzb3IgdHlwZSAqLwogCiAjZGVmaW5lIENPTkZJR19NQ0ZVQVJUCi0jZGVmaW5lIENGR19VQVJUX1BPUlQJCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfUE9SVAkJKDApCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lIENPTkZJR19IV19XQVRDSERPRwogI2RlZmluZSBDT05GSUdfV0FUQ0hET0dfVElNRU9VVAk1MDAwCS8qIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLCBtYXggdGltZW91dCBpcyA2Ljcxc2VjICovCkBAIC03MiwyNyArNzIsMjcgQEAKICMJZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQogIwlkZWZpbmUgQ09ORklHX0hBU19FVEgxCiAKLSMJZGVmaW5lIENGR19ETUFfVVNFX0lOVFNSQU0JMQotIwlkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQotIwlkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMzIKLSMJZGVmaW5lIENGR19UWF9FVEhfQlVGRkVSCTQ4Ci0jCWRlZmluZSBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJZGVmaW5lIENPTkZJR19TWVNfRE1BX1VTRV9JTlRTUkFNCTEKKyMJZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCisjCWRlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMzIKKyMJZGVmaW5lIENPTkZJR19TWVNfVFhfRVRIX0JVRkZFUgk0OAorIwlkZWZpbmUgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgogCi0jCWRlZmluZSBDRkdfRkVDMF9QSU5NVVgJCTAKLSMJZGVmaW5lIENGR19GRUMwX01JSUJBU0UJCUNGR19GRUMwX0lPQkFTRQotIwlkZWZpbmUgQ0ZHX0ZFQzFfUElOTVVYCQkwCi0jCWRlZmluZSBDRkdfRkVDMV9NSUlCQVNFCQlDRkdfRkVDMF9JT0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9QSU5NVVgJCTAKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9NSUlCQVNFCQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzFfUElOTVVYCQkwCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzFfTUlJQkFTRQkJQ09ORklHX1NZU19GRUMwX0lPQkFTRQogCiAjCWRlZmluZSBNQ0ZGRUNfVE9VVF9MT09QCQk1MDAwMAotLyogSWYgQ0ZHX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLwotIwlpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorLyogSWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KKyMJaWZuZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjCQlkZWZpbmUgRkVDRFVQTEVYCUZVTEwKICMJCWRlZmluZSBGRUNTUEVFRAkJXzEwMEJBU0VUCiAjCWVsc2UKLSMJCWlmbmRlZiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KLSMJCQlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQlpZm5kZWYgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAjCQllbmRpZgotIwllbmRpZgkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyMJZW5kaWYJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogCiAjCWRlZmluZSBDT05GSUdfRVRIQUREUgkwMDplMDowYzpiYzplNTo2MAogIwlkZWZpbmUgQ09ORklHX0VUSDFBRERSCTAwOmUwOjBjOmJjOmU1OjYxCkBAIC0xMTQsMjEgKzExNCwyMSBAQAogIwlkZWZpbmUgQ09ORklHX1BDSV9PSENJCiAjCWRlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgogCi0jCXVuZGVmIENGR19VU0JfT0hDSV9CT0FSRF9JTklUCi0jCXVuZGVmIENGR19VU0JfT0hDSV9DUFVfSU5JVAotIwlkZWZpbmUgQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1Ci0jCWRlZmluZSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FCQkiaXNwMTU2MSIKLSMJZGVmaW5lIENGR19PSENJX1NXQVBfUkVHX0FDQ0VTUworIwl1bmRlZiBDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQKKyMJdW5kZWYgQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVAorIwlkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQorIwlkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJCSJpc3AxNTYxIgorIwlkZWZpbmUgQ09ORklHX1NZU19PSENJX1NXQVBfUkVHX0FDQ0VTUwogI2VuZGlmCiAKIC8qIEkyQyAqLwogI2RlZmluZSBDT05GSUdfRlNMX0kyQwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGh3IHN1cHBvcnQgKi8KICN1bmRlZiBDT05GSUdfU09GVF9JMkMJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTgwMDAwCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MDAwMDhGMDAKLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19NQkFSCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MDAwMDhGMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX01CQVIKIAogLyogUENJICovCiAjaWZkZWYgQ09ORklHX0NNRF9QQ0kKQEAgLTEzNiwxOSArMTM2LDE5IEBACiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkxCiAjZGVmaW5lIENPTkZJR19QQ0lBVVRPX1NLSVBfSE9TVF9CUklER0UJMQogCi0jZGVmaW5lIENGR19QQ0lfQ0FDSEVfTElORV9TSVpFCTgKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0FDSEVfTElORV9TSVpFCTgKIAotI2RlZmluZSBDRkdfUENJX01FTV9CVVMJCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fUEhZUwlDRkdfUENJX01FTV9CVVMKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CVVMJCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lfTUVNX0JVUworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19CVVMJCTB4NzEwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19QSFlTCQlDRkdfUENJX0lPX0JVUwotI2RlZmluZSBDRkdfUENJX0lPX1NJWkUJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fQlVTCQkweDcxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1BIWVMJCUNPTkZJR19TWVNfUENJX0lPX0JVUworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19TSVpFCQkweDAxMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSV9DRkdfQlVTCQkweDcwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfQ0ZHX1BIWVMJQ0ZHX1BDSV9DRkdfQlVTCi0jZGVmaW5lIENGR19QQ0lfQ0ZHX1NJWkUJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DRkdfQlVTCQkweDcwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NGR19QSFlTCUNPTkZJR19TWVNfUENJX0NGR19CVVMKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0ZHX1NJWkUJMHgwMTAwMDAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkxCS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcyAqLwpAQCAtMTc3LDI5ICsxNzcsMjkgQEAKIAkiIgogCiAjZGVmaW5lIENPTkZJR19QUkFNCQk1MTIJLyogNTEyIEtCICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSItPiAiCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSItPiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCiAKICNpZmRlZiBDT05GSUdfQ01EX0tHREIKLSMJZGVmaW5lIENGR19DQlNJWkUJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworIwlkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSMJZGVmaW5lIENGR19DQlNJWkUJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjCWRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAwMTAwMDAKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCi0jZGVmaW5lIENGR19DTEsJCQlDRkdfQlVTQ0xLCi0jZGVmaW5lIENGR19DUFVfQ0xLCQlDRkdfQ0xLICogMgorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NMSwkJCUNPTkZJR19TWVNfQlVTQ0xLCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVX0NMSwkJQ09ORklHX1NZU19DTEsgKiAyCiAKLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOVFNSQU0JCShDRkdfTUJBUiArIDB4MTAwMDApCi0jZGVmaW5lIENGR19JTlRTUkFNU1oJCTB4ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRTUkFNCQkoQ09ORklHX1NZU19NQkFSICsgMHgxMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRTUkFNU1oJCTB4ODAwMAogCi0vKiNkZWZpbmUgQ0ZHX0xBVENIX0FERFIJCShDRkdfQ1MxX0JBU0UgKyAweDgwMDAwKSovCisvKiNkZWZpbmUgQ09ORklHX1NZU19MQVRDSF9BRERSCQkoQ09ORklHX1NZU19DUzFfQkFTRSArIDB4ODAwMDApKi8KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0yMDksNjggKzIwOSw2OCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweEYyMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQ1RSTAkweDIxCi0jZGVmaW5lIENGR19JTklUX1JBTTFfQUREUgkoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfSU5JVF9SQU1fRU5EKQotI2RlZmluZSBDRkdfSU5JVF9SQU0xX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTTFfQ1RSTAkweDIxCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkgLSAweDEwKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhGMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQ1RSTAkweDIxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU0xX0FERFIJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNMV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNMV9DVFJMCTB4MjEKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkgLSAweDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9DRkcxCQkweDczNzExNjMwCi0jZGVmaW5lIENGR19TRFJBTV9DRkcyCQkweDQ2NzcwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9DVFJMCQkweEUxMEIwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9FTU9ECQkweDQwMDEwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9NT0RFCQkweDAxOEQwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9EUlZTVFJFTkdUSAkweDAwMDAwMkFBCi0jaWZkZWYgQ0ZHX0RSQU1TWjEKLSMJZGVmaW5lIENGR19TRFJBTV9TSVpFCShDRkdfRFJBTVNaICsgQ0ZHX0RSQU1TWjEpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NGRzEJCTB4NzM3MTE2MzAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcyCQkweDQ2NzcwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ1RSTAkJMHhFMTBCMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0VNT0QJCTB4NDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9NT0RFCQkweDAxOEQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRFJWU1RSRU5HVEgJMHgwMDAwMDJBQQorI2lmZGVmIENPTkZJR19TWVNfRFJBTVNaMQorIwlkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCShDT05GSUdfU1lTX0RSQU1TWiArIENPTkZJR19TWVNfRFJBTVNaMSkKICNlbHNlCi0jCWRlZmluZSBDRkdfU0RSQU1fU0laRQlDRkdfRFJBTVNaCisjCWRlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJQ09ORklHX1NZU19EUkFNU1oKICNlbmRpZgogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCUNGR19TRFJBTV9CQVNFICsgMHg0MDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoKENGR19TRFJBTV9TSVpFIC0gMykgPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAlDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoKENPTkZJR19TWVNfU0RSQU1fU0laRSAtIDMpIDw8IDIwKQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFICsgMHg0MDApCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwogCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0Ci0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2lmZGVmIENGR19GTEFTSF9DRkkKLSMJZGVmaW5lIENGR19GTEFTSF9CQVNFCQkoQ0ZHX0NTMF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCShDT05GSUdfU1lTX0NTMF9CQVNFKQogIwlkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKLSMJZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jCWRlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KLSMJZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCi0jaWZkZWYgQ0ZHX05PUjFTWgotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jCWRlZmluZSBDRkdfRkxBU0hfU0laRQkJKChDRkdfTk9SMVNaICsgQ0ZHX0JPT1RTWikgPDwgMjApCi0jCWRlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19DUzBfQkFTRSwgQ0ZHX0NTMV9CQVNFIH0KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX05PUjFTWgorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoKENPTkZJR19TWVNfTk9SMVNaICsgQ09ORklHX1NZU19CT09UU1opIDw8IDIwKQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19DUzBfQkFTRSwgQ09ORklHX1NZU19DUzFfQkFTRSB9CiAjZWxzZQotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jCWRlZmluZSBDRkdfRkxBU0hfU0laRQkJKENGR19CT09UU1ogPDwgMjApCisjCWRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCShDT05GSUdfU1lTX0JPT1RTWiA8PCAyMCkKICNlbmRpZgogI2VuZGlmCiAKQEAgLTI4NSw3ICsyODUsNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENoaXBzZWxlY3QgYmFuayBkZWZpbml0aW9ucwpAQCAtMjk4LDE0ICsyOTgsMTQgQEAKICAqIENTNCAtIEF2YWlsYWJsZQogICogQ1M1IC0gQXZhaWxhYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX0NTMF9CQVNFCQkweEZGODAwMDAwCi0jZGVmaW5lIENGR19DUzBfTUFTSwkJKCgoQ0ZHX0JPT1RTWiA8PCAyMCkgLSAxKSAmIDB4RkZGRjAwMDEpCi0jZGVmaW5lIENGR19DUzBfQ1RSTAkJMHgwMDEwMTk4MAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9CQVNFCQkweEZGODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX01BU0sJCSgoKENPTkZJR19TWVNfQk9PVFNaIDw8IDIwKSAtIDEpICYgMHhGRkZGMDAwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQ1RSTAkJMHgwMDEwMTk4MAogCi0jaWZkZWYgQ0ZHX05PUjFTWgotI2RlZmluZSBDRkdfQ1MxX0JBU0UJCTB4RTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9NQVNLCQkoKChDRkdfTk9SMVNaIDw8IDIwKSAtIDEpICYgMHhGRkZGMDAwMSkKLSNkZWZpbmUgQ0ZHX0NTMV9DVFJMCQkweDAwMTAxRDgwCisjaWZkZWYgQ09ORklHX1NZU19OT1IxU1oKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQkFTRQkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9NQVNLCQkoKChDT05GSUdfU1lTX05PUjFTWiA8PCAyMCkgLSAxKSAmIDB4RkZGRjAwMDEpCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NUUkwJCTB4MDAxMDFEODAKICNlbmRpZgogCiAjZW5kaWYJCQkJLyogX001NDc1RVZCX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NNTQ4NUVWQi5oIGIvaW5jbHVkZS9jb25maWdzL001NDg1RVZCLmgKaW5kZXggNDgyMTM2ZS4uMjhiZjBhZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL001NDg1RVZCLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL001NDg1RVZCLmgKQEAgLTM5LDkgKzM5LDkgQEAKICNkZWZpbmUgQ09ORklHX001NDg1CQkvKiBkZWZpbmUgcHJvY2Vzc29yIHR5cGUgKi8KIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBDT05GSUdfSFdfV0FUQ0hET0cKICNkZWZpbmUgQ09ORklHX1dBVENIRE9HX1RJTUVPVVQJNTAwMAkvKiB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcywgbWF4IHRpbWVvdXQgaXMgNi43MXNlYyAqLwpAQCAtNzIsMjcgKzcyLDI3IEBACiAjCWRlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKICMJZGVmaW5lIENPTkZJR19IQVNfRVRIMQogCi0jCWRlZmluZSBDRkdfRE1BX1VTRV9JTlRTUkFNCTEKLSMJZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkKLSMJZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTMyCi0jCWRlZmluZSBDRkdfVFhfRVRIX0JVRkZFUgk0OAotIwlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCWRlZmluZSBDT05GSUdfU1lTX0RNQV9VU0VfSU5UU1JBTQkxCisjCWRlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQorIwlkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTMyCisjCWRlZmluZSBDT05GSUdfU1lTX1RYX0VUSF9CVUZGRVIJNDgKKyMJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KIAotIwlkZWZpbmUgQ0ZHX0ZFQzBfUElOTVVYCQkwCi0jCWRlZmluZSBDRkdfRkVDMF9NSUlCQVNFCQlDRkdfRkVDMF9JT0JBU0UKLSMJZGVmaW5lIENGR19GRUMxX1BJTk1VWAkJMAotIwlkZWZpbmUgQ0ZHX0ZFQzFfTUlJQkFTRQkJQ0ZHX0ZFQzBfSU9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfUElOTVVYCQkwCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQkJQ09ORklHX1NZU19GRUMwX0lPQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GRUMxX1BJTk1VWAkJMAorIwlkZWZpbmUgQ09ORklHX1NZU19GRUMxX01JSUJBU0UJCUNPTkZJR19TWVNfRkVDMF9JT0JBU0UKIAogIwlkZWZpbmUgTUNGRkVDX1RPVVRfTE9PUAkJNTAwMDAKLS8qIElmIENGR19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KLSMJaWZuZGVmIENGR19ESVNDT1ZFUl9QSFkKKy8qIElmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIGlzIG5vdCBkZWZpbmVkIC0gaGFyZGNvZGVkICovCisjCWlmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogIwkJZGVmaW5lIEZFQ0RVUExFWAlGVUxMCiAjCQlkZWZpbmUgRkVDU1BFRUQJCV8xMDBCQVNFVAogIwllbHNlCi0jCQlpZm5kZWYgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCi0jCQkJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJaWZuZGVmIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJCQlkZWZpbmUgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgogIwkJZW5kaWYKLSMJZW5kaWYJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjCWVuZGlmCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KIAogIwlkZWZpbmUgQ09ORklHX0VUSEFERFIJMDA6ZTA6MGM6YmM6ZTU6NjAKICMJZGVmaW5lIENPTkZJR19FVEgxQUREUgkwMDplMDowYzpiYzplNTo2MQpAQCAtMTEyLDIwICsxMTIsMjAgQEAKICMJCWRlZmluZSBDT05GSUdfQ01EX1BDSQogIwllbmRpZgogLyojCWRlZmluZSBDT05GSUdfUENJX09IQ0kqLwotIwlkZWZpbmUgQ0ZHX1VTQl9PSENJX1JFR1NfQkFTRQkJMHg4MDA0MTAwMAotIwlkZWZpbmUgQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1Ci0jCWRlZmluZSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FCQkiaXNwMTU2MSIKLSMJZGVmaW5lIENGR19PSENJX1NXQVBfUkVHX0FDQ0VTUworIwlkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9SRUdTX0JBU0UJCTB4ODAwNDEwMDAKKyMJZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMTUKKyMJZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCQkiaXNwMTU2MSIKKyMJZGVmaW5lIENPTkZJR19TWVNfT0hDSV9TV0FQX1JFR19BQ0NFU1MKICNlbmRpZgogCiAvKiBJMkMgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBodyBzdXBwb3J0ICovCiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDAwMDA4RjAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDAwMDA4RjAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19NQkFSCiAKIC8qIFBDSSAqLwogI2lmZGVmIENPTkZJR19DTURfUENJCkBAIC0xMzMsMTcgKzEzMywxNyBAQAogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJMQogI2RlZmluZSBDT05GSUdfUENJQVVUT19TS0lQX0hPU1RfQlJJREdFCTEKIAotI2RlZmluZSBDRkdfUENJX01FTV9CVVMJCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fUEhZUwlDRkdfUENJX01FTV9CVVMKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CVVMJCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lfTUVNX0JVUworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19CVVMJCTB4NzEwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19QSFlTCQlDRkdfUENJX0lPX0JVUwotI2RlZmluZSBDRkdfUENJX0lPX1NJWkUJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fQlVTCQkweDcxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1BIWVMJCUNPTkZJR19TWVNfUENJX0lPX0JVUworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19TSVpFCQkweDAxMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSV9DRkdfQlVTCQkweDcwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfQ0ZHX1BIWVMJQ0ZHX1BDSV9DRkdfQlVTCi0jZGVmaW5lIENGR19QQ0lfQ0ZHX1NJWkUJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DRkdfQlVTCQkweDcwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NGR19QSFlTCUNPTkZJR19TWVNfUENJX0NGR19CVVMKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0ZHX1NJWkUJMHgwMTAwMDAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkxCS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcyAqLwpAQCAtMTYzLDI5ICsxNjMsMjkgQEAKIAkiIgogCiAjZGVmaW5lIENPTkZJR19QUkFNCQk1MTIJLyogNTEyIEtCICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSItPiAiCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSItPiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCiAKICNpZmRlZiBDT05GSUdfQ01EX0tHREIKLSMJZGVmaW5lIENGR19DQlNJWkUJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworIwlkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSMJZGVmaW5lIENGR19DQlNJWkUJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjCWRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAwMTAwMDAKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCi0jZGVmaW5lIENGR19DTEsJCQlDRkdfQlVTQ0xLCi0jZGVmaW5lIENGR19DUFVfQ0xLCQlDRkdfQ0xLICogMgorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NMSwkJCUNPTkZJR19TWVNfQlVTQ0xLCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVX0NMSwkJQ09ORklHX1NZU19DTEsgKiAyCiAKLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOVFNSQU0JCShDRkdfTUJBUiArIDB4MTAwMDApCi0jZGVmaW5lIENGR19JTlRTUkFNU1oJCTB4ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRTUkFNCQkoQ09ORklHX1NZU19NQkFSICsgMHgxMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRTUkFNU1oJCTB4ODAwMAogCi0vKiNkZWZpbmUgQ0ZHX0xBVENIX0FERFIJCShDRkdfQ1MxX0JBU0UgKyAweDgwMDAwKSovCisvKiNkZWZpbmUgQ09ORklHX1NZU19MQVRDSF9BRERSCQkoQ09ORklHX1NZU19DUzFfQkFTRSArIDB4ODAwMDApKi8KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xOTUsNjggKzE5NSw2OCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweEYyMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQ1RSTAkweDIxCi0jZGVmaW5lIENGR19JTklUX1JBTTFfQUREUgkoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfSU5JVF9SQU1fRU5EKQotI2RlZmluZSBDRkdfSU5JVF9SQU0xX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTTFfQ1RSTAkweDIxCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkgLSAweDEwKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhGMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQ1RSTAkweDIxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU0xX0FERFIJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNMV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNMV9DVFJMCTB4MjEKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkgLSAweDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9DRkcxCQkweDczNzExNjMwCi0jZGVmaW5lIENGR19TRFJBTV9DRkcyCQkweDQ2NzcwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9DVFJMCQkweEUxMEIwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9FTU9ECQkweDQwMDEwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9NT0RFCQkweDAxOEQwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9EUlZTVFJFTkdUSAkweDAwMDAwMkFBCi0jaWZkZWYgQ0ZHX0RSQU1TWjEKLSMJZGVmaW5lIENGR19TRFJBTV9TSVpFCShDRkdfRFJBTVNaICsgQ0ZHX0RSQU1TWjEpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NGRzEJCTB4NzM3MTE2MzAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcyCQkweDQ2NzcwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ1RSTAkJMHhFMTBCMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0VNT0QJCTB4NDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9NT0RFCQkweDAxOEQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRFJWU1RSRU5HVEgJMHgwMDAwMDJBQQorI2lmZGVmIENPTkZJR19TWVNfRFJBTVNaMQorIwlkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCShDT05GSUdfU1lTX0RSQU1TWiArIENPTkZJR19TWVNfRFJBTVNaMSkKICNlbHNlCi0jCWRlZmluZSBDRkdfU0RSQU1fU0laRQlDRkdfRFJBTVNaCisjCWRlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJQ09ORklHX1NZU19EUkFNU1oKICNlbmRpZgogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCUNGR19TRFJBTV9CQVNFICsgMHg0MDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoKENGR19TRFJBTV9TSVpFIC0gMykgPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAlDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoKENPTkZJR19TWVNfU0RSQU1fU0laRSAtIDMpIDw8IDIwKQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFICsgMHg0MDApCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwogCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0Ci0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2lmZGVmIENGR19GTEFTSF9DRkkKLSMJZGVmaW5lIENGR19GTEFTSF9CQVNFCQkoQ0ZHX0NTMF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCShDT05GSUdfU1lTX0NTMF9CQVNFKQogIwlkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKLSMJZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jCWRlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KLSMJZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCi0jaWZkZWYgQ0ZHX05PUjFTWgotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jCWRlZmluZSBDRkdfRkxBU0hfU0laRQkJKChDRkdfTk9SMVNaICsgQ0ZHX0JPT1RTWikgPDwgMjApCi0jCWRlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19DUzBfQkFTRSwgQ0ZHX0NTMV9CQVNFIH0KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX05PUjFTWgorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoKENPTkZJR19TWVNfTk9SMVNaICsgQ09ORklHX1NZU19CT09UU1opIDw8IDIwKQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19DUzBfQkFTRSwgQ09ORklHX1NZU19DUzFfQkFTRSB9CiAjZWxzZQotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jCWRlZmluZSBDRkdfRkxBU0hfU0laRQkJKENGR19CT09UU1ogPDwgMjApCisjCWRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCShDT05GSUdfU1lTX0JPT1RTWiA8PCAyMCkKICNlbmRpZgogI2VuZGlmCiAKQEAgLTI3MSw3ICsyNzEsNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENoaXBzZWxlY3QgYmFuayBkZWZpbml0aW9ucwpAQCAtMjg0LDE0ICsyODQsMTQgQEAKICAqIENTNCAtIEF2YWlsYWJsZQogICogQ1M1IC0gQXZhaWxhYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX0NTMF9CQVNFCQkweEZGODAwMDAwCi0jZGVmaW5lIENGR19DUzBfTUFTSwkJKCgoQ0ZHX0JPT1RTWiA8PCAyMCkgLSAxKSAmIDB4RkZGRjAwMDEpCi0jZGVmaW5lIENGR19DUzBfQ1RSTAkJMHgwMDEwMTk4MAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9CQVNFCQkweEZGODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX01BU0sJCSgoKENPTkZJR19TWVNfQk9PVFNaIDw8IDIwKSAtIDEpICYgMHhGRkZGMDAwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQ1RSTAkJMHgwMDEwMTk4MAogCi0jaWZkZWYgQ0ZHX05PUjFTWgotI2RlZmluZSBDRkdfQ1MxX0JBU0UJCTB4RTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9NQVNLCQkoKChDRkdfTk9SMVNaIDw8IDIwKSAtIDEpICYgMHhGRkZGMDAwMSkKLSNkZWZpbmUgQ0ZHX0NTMV9DVFJMCQkweDAwMTAxRDgwCisjaWZkZWYgQ09ORklHX1NZU19OT1IxU1oKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQkFTRQkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9NQVNLCQkoKChDT05GSUdfU1lTX05PUjFTWiA8PCAyMCkgLSAxKSAmIDB4RkZGRjAwMDEpCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NUUkwJCTB4MDAxMDFEODAKICNlbmRpZgogCiAjZW5kaWYJCQkJLyogX001NDg1RVZCX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NQlguaCBiL2luY2x1ZGUvY29uZmlncy9NQlguaAppbmRleCBmZWQ0ZDczLi41ZjdjN2E4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTUJYLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01CWC5oCkBAIC02Nyw3ICs2Nyw3IEBACiAJCQkJIm5mc2FkZHJzPTEwLjAuMC45OToxMC4wLjAuMiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRSAgIC8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UgICAvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC05NiwyOSArOTYsMjkgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSN1bmRlZglDRkdfSFVTSF9QQVJTRVIJCQkvKiBIdXNoIHBhcnNlIGZvciBVLUJvb3QJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogSHVzaCBwYXJzZSBmb3IgVS1Cb290CSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTEyOSw2MiArMTI5LDYyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQaHlzaWNhbCBtZW1vcnkgbWFwIGFzIGRlZmluZWQgYnkgdGhlIE1CWCBQR00KICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGQTIwMDAwMCAvKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0UJCTB4RkEwMDAwMDAgLyogTlZSQU0JCQkgICAgICovCi0jZGVmaW5lIENGR19OVlJBTV9PUgkJMHhmZmUwMDAwMCAvKiB3L28gc3BlZWQgZGVwZW5kZW50IGZsYWdzISEgICAgKi8KLSNkZWZpbmUgQ0ZHX0NTUl9CQVNFCQkweEZBMTAwMDAwIC8qIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVycwkgICAgICovCi0jZGVmaW5lIENGR19QQ0lNRU1fQkFTRQkJMHg4MDAwMDAwMCAvKiBQQ0kgSS9PIGFuZCBNZW1vcnkgU3BhY2VzCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSU1FTV9PUgkJMHhBMDAwMDEwOAotI2RlZmluZSBDRkdfUENJQlJJREdFX0JBU0UJMHhGQTIxMDAwMCAvKiBQQ0ktQnVzIEJyaWRnZSBSZWdpc3RlcnMJICAgICAqLwotI2RlZmluZSBDRkdfUENJQlJJREdFX09SCTB4RkZGRjAxMDgKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZBMjAwMDAwIC8qIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0UJCTB4RkEwMDAwMDAgLyogTlZSQU0JCQkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fT1IJCTB4ZmZlMDAwMDAgLyogdy9vIHNwZWVkIGRlcGVuZGVudCBmbGFncyEhICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1NSX0JBU0UJCTB4RkExMDAwMDAgLyogQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXJzCSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lNRU1fQkFTRQkJMHg4MDAwMDAwMCAvKiBQQ0kgSS9PIGFuZCBNZW1vcnkgU3BhY2VzCSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lNRU1fT1IJCTB4QTAwMDAxMDgKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lCUklER0VfQkFTRQkweEZBMjEwMDAwIC8qIFBDSS1CdXMgQnJpZGdlIFJlZ2lzdGVycwkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJQlJJREdFX09SCTB4RkZGRjAxMDgKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MmYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9WUERfU0laRQkyNTYgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgdnBkIGJ1ZmZlciAqLwotI2RlZmluZSBDRkdfSU5JVF9WUERfT0ZGU0VUCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gQ0ZHX0lOSVRfVlBEX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAkoQ0ZHX0lOSVRfVlBEX09GRlNFVC04KQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MmYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1ZQRF9TSVpFCTI1NiAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciB2cGQgYnVmZmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9WUERfT0ZGU0VUCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIENPTkZJR19TWVNfSU5JVF9WUERfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1ZQRF9PRkZTRVQtOCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogT2Zmc2V0IGluIERQTUVNIHdoZXJlIHdlIGtlZXAgdGhlIFZQRCBkYXRhCiAgKi8KLSNkZWZpbmUgQ0ZHX0RQUkFNVlBECQkoQ0ZHX0lOSVRfVlBEX09GRlNFVCAtIDB4MjAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EUFJBTVZQRAkJKENPTkZJR19TWVNfSU5JVF9WUERfT0ZGU0VUIC0gMHgyMDAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZlMDAwMDAwCiAjaWZkZWYJREVCVUcKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jdW5kZWYJQ0ZHX01PTklUT1JfQkFTRQkvKiAweDIwMDAwMAkgICB0byBydW4gVS1Cb290IGZyb20gUkFNICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI3VuZGVmCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFCS8qIDB4MjAwMDAwCSAgIHRvIHJ1biBVLUJvb3QgZnJvbSBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxNgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxNgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5WUkFNIENvbmZpZ3VyYXRpb24KQEAgLTE5NCwxNSArMTk0LDE1IEBACiAgKiBhY2Nlc3MgdGhlIE5WUkFNIGF0IHRoZSBvZmZzZXQgMHgxMDAwLgogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0JMQkvKiB0dXJuIG9uIE5WUkFNIGVudiBmZWF0dXJlICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19OVlJBTV9CQVNFICsgMHgxMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX05WUkFNX0JBU0UgKyAweDEwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjEyLDEwICsyMTIsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIyMywyMiArMjIzLDIyIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0vKiAjZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfRFBDIHwgU0lVTUNSX01MUkMxMCB8IFNJVU1DUl9TRU1FKSAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RQQyB8IFNJVU1DUl9NTFJDMTEgfCBTSVVNQ1JfU0VNRSB8IFNJVU1DUl9CU0MgKQorLyogI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EUEMgfCBTSVVNQ1JfTUxSQzEwIHwgU0lVTUNSX1NFTUUpICovCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RQQyB8IFNJVU1DUl9NTFJDMTEgfCBTSVVNQ1JfU0VNRSB8IFNJVU1DUl9CU0MgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYgfCBQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURiB8IFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjQ2LDcgKzI0Niw3IEBACiAgKiBSZXNldCBQTEwgbG9jayBzdGF0dXMgc3RpY2t5IGJpdCwgdGltZXIgZXhwaXJlZCBzdGF0dXMgYml0IGFuZCB0aW1lcgogICogaW50ZXJydXB0IHN0YXR1cyBiaXQgLSBsZWF2ZSBQTEwgbXVsdGlwbGljYXRpb24gZmFjdG9yIHVuY2hhbmdlZCAhCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMjU1LDIzICsyNTUsMjMgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCShTQ0NSX1JURElWIHwgU0NDUl9SVFNFTCkKLSNkZWZpbmUgQ0ZHX1NDQ1IJU0NDUl9UQlMKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCVNDQ1JfVEJTCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCi0jZGVmaW5lIENGR19QQ01DSUFfSU5URVJSVVBUCVNJVV9MRVZFTDYKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU5URVJSVVBUCVNJVV9MRVZFTDYKIAogI2RlZmluZSBDT05GSUdfUENNQ0lBX1NMT1RfQQkxCiAKQEAgLTI4NywyOCArMjg3LDI4IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQJIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08gKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVidWcgRW50cnkgTW9kZQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIgMAogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NQlg4NjBULmggYi9pbmNsdWRlL2NvbmZpZ3MvTUJYODYwVC5oCmluZGV4IGNjMDUxMTEuLjRjYjNhNjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NQlg4NjBULmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01CWDg2MFQuaApAQCAtNTYsMjEgKzU2LDIxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jdW5kZWYJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI6PiIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZQlDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjdW5kZWYJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIjo+IgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC04MCw2MSArODAsNjEgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJCTB4RkZBMDAwMDAKLSNkZWZpbmUgQ0ZHX0lNTVJfU0laRQkJKCh1aW50KSg2NCAqIDEwMjQpKQotI2RlZmluZSBDRkdfTlZSQU1fQkFTRQkJMHhGQTAwMDAwMCAvKiBOVlJBTSAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX09SCQkweGZmZTAwMDAwIC8qIHcvbyBzcGVlZCBkZXBlbmRlbnQgZmxhZ3MhISAgICAqLwotI2RlZmluZSBDRkdfQ1NSX0JBU0UJCTB4RkExMDAwMDAgLyogQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXJzICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lNRU1fQkFTRQkJMHg4MDAwMDAwMCAvKiBQQ0kgSS9PIGFuZCBNZW1vcnkgU3BhY2VzICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSU1FTV9PUgkJMHhBMDAwMDEwOAotI2RlZmluZSBDRkdfUENJQlJJREdFX0JBU0UJMHhGQTIxMDAwMCAvKiBQQ0ktQnVzIEJyaWRnZSBSZWdpc3RlcnMgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSUJSSURHRV9PUgkweEZGRkYwMTA4CisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJCTB4RkZBMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SX1NJWkUJCSgodWludCkoNjQgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFCQkweEZBMDAwMDAwIC8qIE5WUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX09SCQkweGZmZTAwMDAwIC8qIHcvbyBzcGVlZCBkZXBlbmRlbnQgZmxhZ3MhISAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTUl9CQVNFCQkweEZBMTAwMDAwIC8qIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVycyAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSU1FTV9CQVNFCQkweDgwMDAwMDAwIC8qIFBDSSBJL08gYW5kIE1lbW9yeSBTcGFjZXMgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSU1FTV9PUgkJMHhBMDAwMDEwOAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUJSSURHRV9CQVNFCTB4RkEyMTAwMDAgLyogUENJLUJ1cyBCcmlkZ2UgUmVnaXN0ZXJzICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJQlJJREdFX09SCTB4RkZGRjAxMDgKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MmYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9WUERfU0laRQkyNTYgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgdnBkIGJ1ZmZlciAqLwotI2RlZmluZSBDRkdfSU5JVF9WUERfT0ZGU0VUCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gQ0ZHX0lOSVRfVlBEX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAkoQ0ZHX0lOSVRfVlBEX09GRlNFVC04KQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MmYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1ZQRF9TSVpFCTI1NiAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciB2cGQgYnVmZmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9WUERfT0ZGU0VUCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIENPTkZJR19TWVNfSU5JVF9WUERfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1ZQRF9PRkZTRVQtOCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogT2Zmc2V0IGluIERQTUVNIHdoZXJlIHdlIGtlZXAgdGhlIFZQRCBkYXRhCiAgKi8KLSNkZWZpbmUgQ0ZHX0RQUkFNVlBECQkoQ0ZHX0lOSVRfVlBEX09GRlNFVCAtIDB4MjAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EUFJBTVZQRAkJKENPTkZJR19TWVNfSU5JVF9WUERfT0ZGU0VUIC0gMHgyMDAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDAwMDAwMDAwCiAvKjB4RkUwMDAwMDAqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKCh1aW50KSg4ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggOE1ieXRlICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfSFdJTkZPX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIENGR19NT05JVE9SX0xFTiAtIENGR19IV0lORk9fTEVOKQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJKCh1aW50KSg4ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggOE1ieXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTiAtIENPTkZJR19TWVNfSFdJTkZPX0xFTikKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJNAkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTE2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwk0CS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTE2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTlZSQU0gQ29uZmlndXJhdGlvbgpAQCAtMTQ0LDE1ICsxNDQsMTUgQEAKICAqIGFjY2VzcyB0aGUgTlZSQU0gYXQgdGhlIG9mZnNldCAweDEwMDAuCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTQkxCS8qIHR1cm4gb24gTlZSQU0gZW52IGZlYXR1cmUgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX05WUkFNX0JBU0UgKyAweDEwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTlZSQU1fQkFTRSArIDB4MTAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNjIsMTAgKzE2MiwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YpCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YpCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTczLDIxICsxNzMsMjEgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EUEMgfCBTSVVNQ1JfTUxSQzEwIHwgU0lVTUNSX1NFTUUpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RQQyB8IFNJVU1DUl9NTFJDMTAgfCBTSVVNQ1JfU0VNRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGIHwgUElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYgfCBQSVNDUl9QVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTE5NSw3ICsxOTUsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0IC0gbGVhdmUgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB1bmNoYW5nZWQgIQogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTIwNCwxNCArMjA0LDE0IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwkoU0NDUl9SVERJViB8IFNDQ1JfUlRTRUwpCi0jZGVmaW5lIENGR19TQ0NSCVNDQ1JfVEJTCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUglTQ0NSX1RCUwogCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJMAogCiAvKiBCZWNhdXNlIG9mIHRoZSB3YXkgdGhlIDg2MCBzdGFydHMgdXAgYW5kIGFzc2lnbnMgQ1MwIHRoZQogKiBlbnRpcmUgYWRkcmVzcyBzcGFjZSwgd2UgaGF2ZSB0byBzZXQgdGhlIG1lbW9yeSBjb250cm9sbGVyCkBAIC0yMzUsMjAgKzIzNSwyMCBAQAogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHhGRTAwMDAwMAkvKiBGTEFTSCBiYW5rICMwCSovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkweEZGMDEwMDAwCS8qIEZMQVNIIGJhbmsgIzAJKi8KIAotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRkYwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRkYwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMCwgVFJMWCA9IDEsIENTTlQgPSAxLCBTQ1kgPSAzLCBFSFRSID0gMAkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzNfQ0xLIHwgT1JfVFJMWCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfM19DTEsgfCBPUl9UUkxYKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoMHhGRjgwMDAwMCB8IE9SX0NTTlRfU0FNIHwgT1JfQkkgfCBPUl9TQ1lfM19DTEspICAgLyogMSBNYnl0ZSB1bnRpbCBkZXRlY3RlZCBhbmQgb25seSAxIE1ieXRlIGlzIG5lZWRlZCovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgweEZFMDAwMDAwIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKDB4RkY4MDAwMDAgfCBPUl9DU05UX1NBTSB8IE9SX0JJIHwgT1JfU0NZXzNfQ0xLKSAgIC8qIDEgTWJ5dGUgdW50aWwgZGV0ZWN0ZWQgYW5kIG9ubHkgMSBNYnl0ZSBpcyBuZWVkZWQqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKDB4RkUwMDAwMDAgfCBCUl9WICkKIAogLyogQkNTUnggLSBCb2FyZCBDb250cm9sIGFuZCBTdGF0dXMgUmVnaXN0ZXJzICovCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkweEZGQzAwMDAwIHwgT1JfQUNTX0RJVjQKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKDB4MDAwMDAwMDAgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkweEZGQzAwMDAwIHwgT1JfQUNTX0RJVjQKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgweDAwMDAwMDAwIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAKIC8qCkBAIC0yNTYsMzAgKzI1NiwzMCBAQAogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJOTcJCS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IegkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKLSNkZWZpbmUgQ0ZHX01BTVIJCTB4MTM4MjEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SCQkweDEzODIxMDAwCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKICAqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTUVUUk9CT1guaCBiL2luY2x1ZGUvY29uZmlncy9NRVRST0JPWC5oCmluZGV4IDE2ZDIzNjMuLmMwZGRkNDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NRVRST0JPWC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NRVRST0JPWC5oCkBAIC0xMDksNyArMTA5LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRiAxCSAgICAgLyogQ2FsbCBib2FyZF9wcmVfaW5pdAkqLwogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX0YJICAxCSAgICAgLyogQ2FsbCBib2FyZCBtaXNjX2luaXRfZgkqLwogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJICAxCSAgICAgLyogQ2FsbCBib2FyZCBtaXNjX2luaXRfcgkqLwotI3VuZGVmCUNGR19EUkFNX1RFU1QJCQkgICAgIC8qIERpc2FibGUtdGFrZXMgbG9uZyB0aW1lISovCisjdW5kZWYJQ09ORklHX1NZU19EUkFNX1RFU1QJCQkgICAgIC8qIERpc2FibGUtdGFrZXMgbG9uZyB0aW1lISovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJICA2NjY2NjY2NiAgIC8qIGV4dGVybmFsIGZyZXEgdG8gcGxsCSovCiAKICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTSAxCkBAIC0xMjEsMzQgKzEyMSwzNCBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCSAgICAgICAweDAwMDAwMDAwICAgIC8qIF9tdXN0XyBiZSAwCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkgICAgICAgMHhmZmY4MDAwMCAgICAvKiBzdGFydCBvZiBGTEFTSAkJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICAgICAweGZmZjgwMDAwICAgIC8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCSAgICAgICAweDgwMDAwMDAwICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX0JBU0UgICAgMHhlMDAwMDAwMCAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLwotI2RlZmluZSBDRkdfSVNSQU1fQkFTRQkgICAgICAgMHhjMDAwMDAwMCAgICAvKiBpbnRlcm5hbCBTUkFNCQkqLwotI2RlZmluZSBDRkdfUENJX0JBU0UJICAgICAgIDB4ZDAwMDAwMDAgICAgLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCSAgICAgICAweDAwMDAwMDAwICAgIC8qIF9tdXN0XyBiZSAwCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgICAgIDB4ZmZmODAwMDAgICAgLyogc3RhcnQgb2YgRkxBU0gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgICAgIDB4ZmZmODAwMDAgICAgLyogc3RhcnQgb2YgbW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCSAgICAgICAweDgwMDAwMDAwICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICAgIDB4ZTAwMDAwMDAgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JU1JBTV9CQVNFCSAgICAgICAweGMwMDAwMDAwICAgIC8qIGludGVybmFsIFNSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJICAgICAgIDB4ZDAwMDAwMDAgICAgLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MDAwMDAwKQotI2RlZmluZSBDRkdfRlBHQV9CQVNFCSAgICAgIChDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwODIwMDAwMCkKLSNkZWZpbmUgQ0ZHX0JNRTMyX0JBU0UJICAgICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4NTAwMDAwKQotI2RlZmluZSBDRkdfR1BJT19CQVNFCSAgICAgIChDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDcwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgICAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRQkgICAgICAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MjAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JNRTMyX0JBU0UJICAgICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwODUwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0JBU0UJICAgICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDcwMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyIChwbGFjZWQgaW4gaW50ZXJuYWwgU1JBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTSAgICAxCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSICAgICBDRkdfSVNSQU1fQkFTRQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgQ0ZHX0lTUkFNX0JBU0UgLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgMHgyMDAwCSAgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgIDEyOAkgICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAgICAgQ09ORklHX1NZU19JU1JBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAgICAgQ09ORklHX1NZU19JU1JBTV9CQVNFIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgICAweDIwMDAJICAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgIDEyOAkgICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSICAgIChDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQgICAgQ0ZHX1BPU1RfV09SRF9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSICAgIChDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSAgICAgICgyNTYgKiAxMDI0KSAgIC8qIFJzcnYgMjU2a0IgZm9yIE1vbgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgICAoMTI4ICogMTAyNCkgICAvKiBSc3J2IDEyOGtCIGZvciBtYWxsb2MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkgICAgICAoMjU2ICogMTAyNCkgICAvKiBSc3J2IDI1NmtCIGZvciBNb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSAgICAgICgxMjggKiAxMDI0KSAgIC8qIFJzcnYgMTI4a0IgZm9yIG1hbGxvYwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydApAQCAtMTU3LDcgKzE1Nyw3IEBACiAjZGVmaW5lIENPTkZJR19TRVJJQUxfTVVMVEkgICAxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkgICAgICA5NjAwCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKICAgICB7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTY3LDIxICsxNjcsMjEgQEAKICAqIFRoZSBEUzE3NDMgY29kZSBhc3N1bWVzIHRoaXMgY29uZGl0aW9uIChpLmUuIC0tIGl0IGFzc3VtZXMgdGhlIGJhc2UKICAqIGFkZHJlc3MgZm9yIHRoZSBSVEMgcmVnaXN0ZXJzIGlzOgogICoKLSAqCUNGR19OVlJBTV9CQVNFX0FERFIgKyBDRkdfTlZSQU1fU0laRQorICoJQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX05WUkFNX1NJWkUKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkgICAgICAoMHgyMDAwIC0gOCkgICAvKiBOVlJBTSBzaXplKDhrKS0gUlRDIHJlZ3MqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJICAgICAgKDB4MjAwMCAtIDgpICAgLyogTlZSQU0gc2l6ZSg4ayktIFJUQyByZWdzKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzE3NHggICAgIDEJCSAgICAgLyogRFMxNzQzIFJUQwkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgIDEJCSAgICAgLyogbnVtYmVyIG9mIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICAgOAkJICAgICAvKiBzZWN0b3JzIHBlciBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgICAxCQkgICAgIC8qIG51bWJlciBvZiBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICA4CQkgICAgIC8qIHNlY3RvcnMgcGVyIGRldmljZQkqLwogCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUICAxMjAwMDAJICAgICAvKiBGbGFzaCBFcmFzZSBUTyAoaW4gbXMpCSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVCAgNTAwCSAgICAgLyogRmxhc2ggV3JpdGUgVE8oaW4gbXMpCSAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICAxMjAwMDAJICAgICAvKiBGbGFzaCBFcmFzZSBUTyAoaW4gbXMpCSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQgIDUwMAkgICAgIC8qIEZsYXNoIFdyaXRlIFRPKGluIG1zKQkgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRERSIFNEUkFNCkBAIC0xOTQsOSArMTk0LDkgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkgICAgICAxCQkgICAgIC8qIEkyQyBoYXJkd2FyZSBzdXBwb3J0CSovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJICAgICAvKiBJMkMgIWJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJICAgICAgNDAwMDAwCSAgICAgLyogSTJDIHNwZWVkIDQwMGtIegkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCSAgICAgIDB4N0YJICAgICAvKiBJMkMgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTICAgICAgezB4Njl9CSAgICAgLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJICAgICAgNDAwMDAwCSAgICAgLyogSTJDIHNwZWVkIDQwMGtIegkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkgICAgICAweDdGCSAgICAgLyogSTJDIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMgICAgICB7MHg2OX0JICAgICAvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwogI2RlZmluZSBDT05GSUdfSTJDX0JVUzEJICAgICAgMQkJICAgICAvKiBJbmNsdWRlIGkyYyBidXMgMSBzdXBwCSovCiAKIApAQCAtMjA5LDE0ICsyMDksMTQgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUgIDEJCSAgICAgLyogYWxsb3cgZW52IG92ZXJ3cml0ZQkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkgICAgICAweDEwMDAJICAgICAvKiBTaXplIG9mIEVudiB2YXJzCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkgICAgICAoQ0ZHX05WUkFNX0JBU0VfQUREUikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCSAgICAgIChDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUikKIAogI2RlZmluZSBDT05GSUdfQk9PVEFSR1MJICAgICAgImNvbnNvbGU9dHR5UzAsOTYwMCByb290PS9kZXYvbmZzIHJ3IG5mc3Jvb3Q9JHNlcnZlcmlwOi9ob21lL21ldHJvYm94MCBuZnNhZGRycz0kaXBhZGRyOjo6OjpldGgwOm5vbmUgIgogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQgICAgInRmdHAgODAwMDAwMCBwSW1hZ2UubWV0cm9ib3g7Ym9vdG0gODAwMDAwMCIKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWSAgICAgIDUJCSAgICAvKiBkaXNhYmxlIGF1dG9ib290ICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8gICAgIDEJCSAgICAgLyogZWNobyBvbiBmb3Igc2VyaWFsIGRubGQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFIDEJCSAgICAgLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UgMQkJICAgICAvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTmV0d29ya2luZwpAQCAtMjM5LDcgKzIzOSw3IEBACiAjZGVmaW5lIENPTkZJR19ORVRNQVNLCSAgICAgIDI1NS4yNTUuMC4wCiAjZGVmaW5lIENPTkZJR19FVEhBRERSCSAgICAgIDAwOjAwOjAwOjAwOjAwOjAwIC8qIE5vIEVNQUMgMCBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19FVEgxQUREUgkgICAgICAwMDowMDowMDowMDowMDowMCAvKiBObyBFTUFDIDEgc3VwcG9ydAkqLwotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUiAgICAgMzIJICAgICAvKiAjZXRoIHJ4IGJ1ZmYgJiBkZXNjcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSICAgICAzMgkgICAgIC8qICNldGggcnggYnVmZiAmIGRlc2NycwkqLwogCiAKIC8qCkBAIC0yNzcsMzMgKzI3NywzMyBAQAogLyogSW5jbHVkZSBhdXRvIGNvbXBsZXRlIHdpdGggdGFicyAqLwogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURSAxCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFIDEKLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCSAgICAgMQkgICAgIC8qIHVzZSByZWFsIG1lbW9yeSB0ZXN0CSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCSAgICAgMQkgICAgIC8qIHVzZSByZWFsIG1lbW9yeSB0ZXN0CSAqLwogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCSAgICAgLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkgICAgICAiTWV0cm9Cb3g9PiAiICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSAgICAgICJNZXRyb0JveD0+ICIgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJICAgICAgIDEJICAgICAvKiBIVVNIIGZvciBleHQnZCBjbGkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAgICAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJICAgICAgIDEJICAgICAvKiBIVVNIIGZvciBleHQnZCBjbGkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgICAgIj4gIgogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENvbnNvbGUgQnVmZmVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgIDEwMjQJICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkgICAgICAxMDI0CSAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJICAgICAgMjU2CSAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgMjU2CSAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCiAJCQkJCSAgICAgLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJICAgICAgMTYJICAgICAvKiBtYXggbnVtYmVyIG9mIGNtZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkgICAgICBDRkdfQ0JTSVpFICAgICAvKiBCb290IEFyZyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJICAgICAgMTYJICAgICAvKiBtYXggbnVtYmVyIG9mIGNtZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJICAgICAgQ09ORklHX1NZU19DQlNJWkUgICAgIC8qIEJvb3QgQXJnIEJ1ZmZlciBTaXplCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1lbW9yeSBUZXN0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgICAgMHgwNDAwMDAwCSAgICAgLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJICAgICAgMHgwQzAwMDAwCSAgICAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAgIDB4MDQwMDAwMAkgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkgICAgICAweDBDMDAwMDAJICAgICAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENvbXBhY3QgRmxhc2ggKGluIHRydWUgSURFIG1vZGUpCkBAIC0zMTIsMTYgKzMxMiwxNiBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkCSovCiAKICNkZWZpbmUgQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkoQ09ORklHX1NZU19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCSAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkweDAwMDAJIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MTAwMDAwIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCSAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDAwCSAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgxMDAwMDAgLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUJCTIJIC8qIERpcmVjdGx5IGNvbm5lY3RlZCBDRiwgbmVlZHMgYSBzdHJpZGUKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfU1RSSURFCQkyCSAvKiBEaXJlY3RseSBjb25uZWN0ZWQgQ0YsIG5lZWRzIGEgc3RyaWRlCiAJCQkJCSAgICB0byBnZXQgdG8gdGhlIGNvcnJlY3Qgb2Zmc2V0ICovCiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OICAxCQkgICAgIC8qIEluY2x1ZGUgZG9zIHBhcnRpdGlvbgkqLwogCkBAIC0zMzIsMjAgKzMzMiwyMCBAQAogI2RlZmluZSBDT05GSUdfUENJCQkJICAgICAvKiBpbmNsdWRlIHBjaSBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJICAgICAvKiBkbyBwY2kgcGx1Zy1hbmQtcGxheQkqLwogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwkJICAgICAvKiBzaG93IHBjaSBkZXZpY2VzCSovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0JBU0UgICAgICAoQ0ZHX1BDSV9NRU1CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRSAgICAgIChDT05GSUdfU1lTX1BDSV9NRU1CQVNFKQogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAkJICAgICAvKiBsZXQgYm9hcmQgaW5pdCBwY2kgdGFyZ2V0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQJCSAgICAgLyogbGV0IGJvYXJkIGluaXQgcGNpIHRhcmdldCovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxN0JBCSAgICAgLyogU2FuZGJ1cnN0ICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkgICAgIC8qIFdoYXRldmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDE3QkEJICAgICAvKiBTYW5kYnVyc3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkgICAgIC8qIFdoYXRldmVyICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKQEAgLTM2NCwxMCArMzY0LDEwIEBACiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI3VuZGVmIENPTkZJR19XQVRDSERPRwkJCSAgICAgLyogd2F0Y2hkb2cgZGlzYWJsZWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkgICAgICAweDgwMDAwMDAJICAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCSAgICAgIDEJCSAgICAgLyogdXNlIGV4dGVuZGVkIGJvYXJkX2luZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJICAgICAgMHg4MDAwMDAwCSAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JICAgICAgMQkJICAgICAvKiB1c2UgZXh0ZW5kZWQgYm9hcmRfaW5mbyAqLwogCi0jZGVmaW5lIENGR19IWgkJICAgICAgMTAwCSAgICAgLyogZGVjciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCSAgICAgIDEwMAkgICAgIC8qIGRlY3IgZnJlcTogMSBtcyB0aWNrcwkqLwogCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTUhQQy5oIGIvaW5jbHVkZS9jb25maWdzL01IUEMuaAppbmRleCBhNzkwMWU1Li44ZTdmOWNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTUhQQy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NSFBDLmgKQEAgLTYzLDcgKzYzLDcgQEAKIAkiYm9vdG0iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAjZGVmaW5lIENPTkZJR19SVENfTVBDOHh4CQkvKiB1c2UgaW50ZXJuYWwgUlRDIG9mIE1QQzh4eAkqLwpAQCAtODksMTQgKzg5LDE0IEBACiAJCQllbHNlCWltbXItPmltX2NwbS5jcF9wYmRhdCAmPSB+UEJfU0NMCiAjZGVmaW5lIEkyQ19ERUxBWQl1ZGVsYXkoNSkJLyogMS80IEkyQyBjbG9jayBkdXJhdGlvbiAqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCQk1MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkJMHhGRQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIEVFUFJPTSBYMjRDMDQJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCS8qIGJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkJNTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCQkweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIEVFUFJPTSBYMjRDMDQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQkvKiBieXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAogCiAjZGVmaW5lIExDRF9WSURFT19BRERSCQkoU0RSQU1fTUFYX1NJWkUtU0RSQU1fUkVTX1NJWkUpCiAjZGVmaW5lIExDRF9WSURFT19TSVpFCQlTRFJBTV9SRVNfU0laRQkvKiAyTUIgKi8KQEAgLTE0MiwyNSArMTQyLDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDMwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgzMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTcxLDI5ICsxNzEsMjkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBoeXNpY2FsIG1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMCAvKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwIC8qIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZlMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmUwMDAwMDAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4NDAwMDAJCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jdW5kZWYJQ0ZHX01PTklUT1JfQkFTRQkJICAgIC8qIHRvIHJ1biBVLUJvb3QgZnJvbSBSQU0gKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4NDAwMDAJCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjdW5kZWYJQ09ORklHX1NZU19NT05JVE9SX0JBU0UJCSAgICAvKiB0byBydW4gVS1Cb290IGZyb20gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogSkZGUzIgcGFydGl0aW9ucwpAQCAtMjE4LDI2ICsyMTgsMjYgQEAKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcC0gZm9yIExpbnV4CSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwLSBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCUNGR19NT05JVE9SX0xFTiAvKiBPZmZzZXQgb2YgRW52aXJvbm1lbnQgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4gLyogT2Zmc2V0IG9mIEVudmlyb25tZW50ICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwMCAvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjQ3LDEwICsyNDcsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXUCkKICNlbmRpZgogCkBAIC0yNTksMjcgKzI1OSwyNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfU0VNRSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9TRU1FKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYgfCBQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURiB8IFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMi0xOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yOTAsNyArMjkwLDcgQEAKICNkZWZpbmUgTVBDOFhYX1NQRUVECTUwMDAwMDAwTAogI2RlZmluZSBNUEM4WFhfWElOCTUwMDAwMDBMICAgICAgLyogcmVmIGNsayAqLwogI2RlZmluZSBNUEM4WFhfRkFDVAkoTVBDOFhYX1NQRUVEL01QQzhYWF9YSU4pCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgoTVBDOFhYX0ZBQ1QtMSkgPDwgUExQUkNSX01GX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgoTVBDOFhYX0ZBQ1QtMSkgPDwgUExQUkNSX01GX1NISUZUKSB8IFwKIAkJCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzAxLDcgKzMwMSw3IEBACiAgKi8KIAogI2RlZmluZSBTQ0NSX01BU0sJKFNDQ1JfUlRESVYgfCBTQ0NSX1JUU0VMKSAgICAgLyogU0NDUl9FQkRGMTEgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTIHwgU0NDUl9ERkxDRDAwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyB8IFNDQ1JfREZMQ0QwMDEpCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzEwLDggKzMxMCw4IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaAogICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkweEMwCi0jZGVmaW5lIENGR19NQU1SCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSB8IE1BTVJfUFRBRSB8IE1BTVJfRzBDTEFfQTExIHwgTUFNUl9UTEZBX01TSykKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkweEMwCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUgkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpIHwgTUFNUl9QVEFFIHwgTUFNUl9HMENMQV9BMTEgfCBNQU1SX1RMRkFfTVNLKQogCiAvKgogICogQlIwIGFuZCBPUjAgKEZMQVNIKSB1c2VkIHRvIHJlLW1hcCBGTEFTSApAQCAtMzIwLDE0ICszMjAsMTQgQEAKIC8qIGFsbG93IGZvciBtYXggOCBNQiBvZiBGbGFzaCAqLwogI2RlZmluZSBGTEFTSF9CQVNFCQkweEZFMDAwMDAwCS8qIEZMQVNIIGJhbmsgIzAqLwogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHhGRTAwMDAwMAkvKiBGTEFTSCBiYW5rICMwKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RkY4MDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4RkY4MDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RkY4MDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gfCBPUl9CSSB8IE9SX1NDWV84X0NMSykgLyogKE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IE9SX1NDWV82X0NMSykqLworI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gfCBPUl9CSSB8IE9SX1NDWV84X0NMSykgLyogKE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IE9SX1NDWV82X0NMSykqLwogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX01TX0dQQ00gfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX01TX0dQQ00gfCBCUl9WICkKIAogLyoKICAqIEJSMSBhbmQgT1IxIChTRFJBTSkKQEAgLTMzNyw0NiArMzM3LDQ2IEBACiAjZGVmaW5lIFNEUkFNX1JFU19TSVpFCQkweDAwMjAwMDAwCS8qIDIgTUIgZm9yIGZyYW1lYnVmZmVyICovCiAKIC8qIFNEUkFNIHRpbWluZzogZHJpdmUgR1BMNSBoaWdoIG9uIGZpcnN0IGN5Y2xlICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JKE9SX0c1TFMpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCShPUl9HNUxTKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCSgofihTRFJBTV9NQVhfU0laRSkrMSl8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKFNEUkFNX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoKH4oU0RSQU1fTUFYX1NJWkUpKzEpfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKFNEUkFNX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvT1IyIC0gRElNTQogICovCi0jZGVmaW5lIENGR19PUjIJCShPUl9BQ1NfRElWNCkKLSNkZWZpbmUgQ0ZHX0JSMgkJKEJSX01TX1VQTUEpCisjZGVmaW5lIENPTkZJR19TWVNfT1IyCQkoT1JfQUNTX0RJVjQpCisjZGVmaW5lIENPTkZJR19TWVNfQlIyCQkoQlJfTVNfVVBNQSkKIAogLyoKICAqIEJSMy9PUjMgLSBESU1NCiAgKi8KLSNkZWZpbmUgQ0ZHX09SMwkJKE9SX0FDU19ESVY0KQotI2RlZmluZSBDRkdfQlIzCQkoQlJfTVNfVVBNQSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjMJCShPUl9BQ1NfRElWNCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjMJCShCUl9NU19VUE1BKQogCiAvKgogICogQlI0L09SNAogICovCi0jZGVmaW5lIENGR19PUjQJCTAKLSNkZWZpbmUgQ0ZHX0JSNAkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SNAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNAkJMAogCiAvKgogICogQlI1L09SNQogICovCi0jZGVmaW5lIENGR19PUjUJCTAKLSNkZWZpbmUgQ0ZHX0JSNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNQkJMAogCiAvKgogICogQlI2L09SNgogICovCi0jZGVmaW5lIENGR19PUjYJCTAKLSNkZWZpbmUgQ0ZHX0JSNgkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SNgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNgkJMAogCiAvKgogICogQlI3L09SNwogICovCi0jZGVmaW5lIENGR19PUjcJCTAKLSNkZWZpbmUgQ0ZHX0JSNwkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SNwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNwkJMAogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM4NCw3ICszODQsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIgMAogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NSVA0MDUuaCBiL2luY2x1ZGUvY29uZmlncy9NSVA0MDUuaAppbmRleCAyOGIzODAyLi43ZGNmMTg1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTUlQNDA1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01JUDQwNS5oCkBAIC05MCw4ICs5MCw4IEBACiAKICNkZWZpbmUgQ09ORklHX05BTkRfTEVHQUNZCiAKLSNkZWZpbmUJIENGR19IVVNIX1BBUlNFUgotI2RlZmluZQkgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lCSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEkyQyBTdHVmZjoKICAqIHRoZSBNSVA0MDUgaXMgZXF1aXBlZCB3aXRoIGFuIEF0bWVsIDI0QzEyOC8yNTYgRUVQUk9NIGF0IGFkZHJlc3MKQEAgLTEwMCwxNyArMTAwLDE3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNTAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTUwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MwkvKiBFRVBST00gMjRDMTI4LzI1NgkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMgkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUzCS8qIEVFUFJPTSAyNEMxMjgvMjU2CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMgkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIgICAgKi8KLSN1bmRlZiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDYJLyogVGhlIEF0bWVsIDI0QzEyOC8yNTYgaGFzCSovCisjdW5kZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDYJLyogVGhlIEF0bWVsIDI0QzEyOC8yNTYgaGFzCSovCiAJCQkJCS8qIDY0IGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdAk2IGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCTEJLyogdXNlIEVFUFJPTSBmb3IgZW52aXJvbm1lbnQgdmFycyAqLwpAQCAtMTQyLDU0ICsxNDIsNTQgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIGRlZmluZXMgaWYgdGhlIGNvbnNvbGUgaXMgc3RvcmVkIGluIHRoZSBlbnZpcm9ubWVudAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCS8qIHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVyciBhcmUgaW4gZXZpcm9ubWVudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCS8qIHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVyciBhcmUgaW4gZXZpcm9ubWVudCAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogZGVmaW5lcyBpZiBhbiBvdmVyd3JpdGVfY29uc29sZSBmdW5jdGlvbiBleGlzdHMKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogZGVmaW5lcyBpZiB0aGUgb3ZlcndyaXRlX2NvbnNvbGUgc2hvdWxkIGJlIHN0b3JlZCBpbiB0aGUKICAqIGVudmlyb25tZW50CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jdW5kZWYgQ0ZHX0NPTlNPTEVfRU5WX09WRVJXUklURQorI3VuZGVmIENPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogbG9hZHMgY29uZmlnCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogMSAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDEgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVEICAgICAgIDkxNjY2NworI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQgICAgICAgOTE2NjY3CiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAgICAgXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4NDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4NDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMjAzLDQwICsyMDMsNDAgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9IT1NUIFBDSV9IT1NUX0ZPUkNFCS8qIGNvbmZpZ3VyZSBhcyBwY2ktaG9zdAkqLwogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJCS8qIHBjaSBwbHVnLWFuZC1wbGF5CQkqLwogCQkJCQkvKiByZXNvdXJjZSBjb25maWd1cmF0aW9uCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MDAwMAkvKiBQQ0kgVmVuZG9yIElEOiB0by1kbyEhIQkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDAwMDAJLyogUENJIERldmljZSBJRDogdG8tZG8hISEJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMJMHg4MDAwMDAwMQkvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDAwMDAJLyogUENJIFZlbmRvciBJRDogdG8tZG8hISEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDAwMAkvKiBQQ0kgRGV2aWNlIElEOiB0by1kbyEhIQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4ODAwMDAwMDEJLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGODAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEwMjQgKiAxMDI0KQkvKiBSZXNlcnZlIDEwMjQga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkJLyogUmVzZXJ2ZSAxMDI0IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAvKgogICogSkZGUzIgcGFydGl0aW9ucwpAQCAtMjY5LDEwICsyNjksMTAgQEAKICAqIFBPU1QgQ29uZmlndXJhdGlvbgogICovCiAjaWYgMCAvKiBlbmFibGUgdGhpcyBpZiBQT1NUIGlzIGRlc2lyZWQgKGlzIHN1cHBvcnRlZCBidXQgbm90IGVuYWJsZWQpICovCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfTUVNT1JZCXwgXAotCQkJCSBDRkdfUE9TVF9DUFUJCXwgXAotCQkJCSBDRkdfUE9TVF9SVEMJCXwgXAotCQkJCSBDRkdfUE9TVF9JMkMpCisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX01FTU9SWQl8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NQVQkJfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9SVEMJCXwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfSTJDKQogCiAjZW5kaWYKIC8qCkBAIC0yOTcsMjIgKzI5NywyMiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBPbiBDaGlwIFNSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNICAgICAgMQotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUgkvKiBpbnNpZGUgb2YgT24gQ2hpcCBTUkFNICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUJLyogRW5kIG9mIE9uIENoaXAgU1JBTQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00gICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkvKiBpbnNpZGUgb2YgT24gQ2hpcCBTUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkvKiBFbmQgb2YgT24gQ2hpcCBTUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAvKiByZXNlcnZlIHNvbWUgbWVtb3J5IGZvciBQT1NUIGFuZCBCT09UIGxpbWl0IGluZm8gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMzIpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gMzIpCiAKICNpZmRlZiAgQ09ORklHX1BPU1QJCS8qIHJlc2VydmUgb25lIHdvcmQgZm9yIFBPU1QgSW5mbyAqLwotI2RlZmluZSBDRkdfUE9TVF9XT1JEX0FERFIJKENGR19HQkxfREFUQV9PRkZTRVQgLSA0KQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDQpCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19CT09UQ09VTlRfTElNSVQgLyogcmVzZXJ2ZSAyIHdvcmQgZm9yIGJvb3Rjb3VudCBsaW1pdCAqLwotI2RlZmluZSBDRkdfQk9PVENPVU5UX0FERFIgKENGR19HQkxfREFUQV9PRkZTRVQgLSAxMikKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ09VTlRfQUREUiAoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSAxMikKICNlbmRpZgogCiAvKgpAQCAtMzI3LDcgKzMyNyw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEV4dGVybmFsIHBlcmlwaGVyYWwgYmFzZSBhZGRyZXNzCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIENGR19JU0FfSU9fQkFTRV9BRERSRVNTIDB4RTgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTIDB4RTgwMDAwMDAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBMYXN0IFN0YWdlIEluaXQKQEAgLTM1MCwxOSArMzUwLDE5IEBACiAgKiBJREUvQVRBIHN0dWZmCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogI2lmIGRlZmluZWQoQ09ORklHX01JUDQwNVQpCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxICAgLyogTUlQNDA1VCBoYXMgb25seSBvbmUgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEgICAvKiBNSVA0MDVUIGhhcyBvbmx5IG9uZSBJREUgYnVzCSovCiAjZWxzZQotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMiAgIC8qIG1heC4gMiBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMiAgIC8qIG1heC4gMiBJREUgYnVzc2VzCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMqMikgLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoyKSAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgLyogYmFzZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMUYwCQkvKiBpZGUwIG9mZnN0ZSAqLwotI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUCTB4MDE3MAkJLyogaWRlMSBvZmZzZXQgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkwCQkvKiBkYXRhIHJlZyBvZmZzZXQJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTAJCS8qIHJlZyBvZmZzZXQgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MjAwCQkvKiBhbHRlcm5hdGUgcmVnaXN0ZXIgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgLyogYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDFGMAkJLyogaWRlMCBvZmZzdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQJMHgwMTcwCQkvKiBpZGUxIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkwCQkvKiBkYXRhIHJlZyBvZmZzZXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkwCQkvKiByZWcgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgyMDAJCS8qIGFsdGVybmF0ZSByZWdpc3RlciBvZmZzZXQgKi8KIAogI3VuZGVmCUNPTkZJR19JREVfOHh4X0RJUkVDVCAgICAgIC8qIG5vIHBjbWNpYSBpbnRlcmZhY2UgcmVxdWlyZWQgKi8KICN1bmRlZglDT05GSUdfSURFX0xFRAkgICAgICAgLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkICAgICAqLwpAQCAtMzg0LDEwICszODQsMTAgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIERpc2stT24tQ2hpcCBjb25maWd1cmF0aW9uCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCQkqLwotI2RlZmluZSBDRkdfRE9DX1NIT1JUX1RJTUVPVVQKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgRE9DIGRldmljZXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NIT1JUX1RJTUVPVVQKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU1VQUE9SVF8yMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogS2V5Ym9hcmQgc3VwcG9ydAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KQEAgLTQxMyw3ICs0MTMsNyBAQAogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UKIAogLyogRW5hYmxlIG5lZWRlZCBoZWxwZXIgZnVuY3Rpb25zICovCi0jZGVmaW5lIENGR19ERVZJQ0VfREVSRUdJU1RFUgkJLyogbmVlZHMgZGV2aWNlX2RlcmVnaXN0ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfREVSRUdJU1RFUgkJLyogbmVlZHMgZGV2aWNlX2RlcmVnaXN0ZXIgKi8KICNlbmRpZgogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogRGVidWcgc3VwcG9ydApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01MMi5oIGIvaW5jbHVkZS9jb25maWdzL01MMi5oCmluZGV4IDExMzIzZGIuLjE5MDIzOTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NTDIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTUwyLmgKQEAgLTczLDcgKzczLDcgQEAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKIAogLyoKQEAgLTExMSw3NyArMTExLDc3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAogLyoKLSAqIElmIENGR19FWFRfU0VSSUFMX0NMT0NLLCB0aGVuIHRoZSBVQVJUIGRpdmlzb3IgaXMgMS4KLSAqIElmIENGR180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgotICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENGR19CQVNFX0JBVUQgdmFsdWUuCisgKiBJZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0ssIHRoZW4gdGhlIFVBUlQgZGl2aXNvciBpcyAxLgorICogSWYgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgorICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENPTkZJR19TWVNfQkFTRV9CQVVEIHZhbHVlLgogICogVGhlIExpbnV4IEJBU0VfQkFVRCBkZWZpbmUgc2hvdWxkIG1hdGNoIHRoaXMgY29uZmlndXJhdGlvbi4KICAqICAgIGJhc2VCYXVkID0gY3B1Q2xvY2svKHVhcnREaXZpc29yKjE2KQotICogSWYgQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OSBhbmQgMjAwTUh6IENQVSBjbG9jaywKKyAqIElmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5IGFuZCAyMDBNSHogQ1BVIGNsb2NrLAogICogc2V0IExpbnV4IEJBU0VfQkFVRCB0byA0MDMyMDAuCiAgKi8KLSN1bmRlZiAgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sgICAgICAgICAgIC8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLwotI3VuZGVmICBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5ICAgICAgICAgLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KKyN1bmRlZiAgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLICAgICAgICAgICAvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KKyN1bmRlZiAgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTkgICAgICAgICAvKiA0MDVHUC9DUiBSZXYuIEQgc2lsaWNvbiAqLwogCi0jZGVmaW5lIENGR19CQVNFX0JBVUQgICAgICAgKDMxMjUwMDAqMTYpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSyBDRkdfQkFTRV9CQVVECi0jZGVmaW5lIENGR19EVUFSVF9DSEFOCQkwCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJMHhhMDAwMTAwMwotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCTB4YTAwMTEwMDMKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUgLTQKLSNkZWZpbmUgQ0ZHX05TMTY1NTAgMQotI2RlZmluZSBDRkdfSU5JVF9DSEFOMQkgMQotI2RlZmluZSBDRkdfSU5JVF9DSEFOMgkgMQorI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRCAgICAgICAoMzEyNTAwMCoxNikKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSyBDT05GSUdfU1lTX0JBU0VfQkFVRAorI2RlZmluZSBDT05GSUdfU1lTX0RVQVJUX0NIQU4JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJMHhhMDAwMTAwMworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkweGEwMDExMDAzCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSAtNAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAgMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfQ0hBTjEJIDEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0NIQU4yCSAxCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKICAgICB7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDE4MDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkJLyogUmVzZXJ2ZSAxOTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgxODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiAqIDEwMjQpCS8qIFJlc2VydmUgMTk2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAvKiBCRUcgRU5WSVJPTk5FTUVOVCBGTEFTSCAqLwogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKQEAgLTE5MywxMyArMTkzLDEzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOVlJBTSBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4ZjAwMDAwMDAJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkweDFmZjgJCS8qIE5WUkFNIHNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhmMDAwMDAwMAkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkweDFmZjgJCS8qIE5WUkFNIHNpemUJKi8KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fTlZSQU0KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycwkqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCVwKLQkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudgkqLworCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQkvKiBFbnYJKi8KICNlbmRpZgogCiAvKgpAQCAtMjA4LDcgKzIwOCw3IEBACiAgKiBCUjAvMSBhbmQgT1IwLzEgKEZMQVNIKQogICovCiAKLSNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNGR19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJKi8KKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkwCQkvKiBGTEFTSCBiYW5rICMxCSovCiAKIApAQCAtMjE5LDExICsyMTksMTEgQEAKICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgICAweDgwMDAwMCAgLyogaW5zaWRlIG9mIFNEUkFNICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAgICAgMHgyMDAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICAgICAgQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgICAgMHg4MDAwMDAgIC8qIGluc2lkZSBvZiBTRFJBTSAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgICAweDIwMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBTZXJpYWwgUHJlc2VuY2UgRGV0ZWN0IEVFUFJPTSBhZGRyZXNzCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTU9VU1NFLmggYi9pbmNsdWRlL2NvbmZpZ3MvTU9VU1NFLmgKaW5kZXggYjY5Y2VkNi4uOTg2NTkwYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01PVVNTRS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NT1VTU0UuaApAQCAtNDgsNyArNDgsNyBAQAogI2RlZmluZSBDT05GSUdfTVBDODI0WCAgICAgIDEKICNkZWZpbmUgQ09ORklHX01QQzgyNDAgICAgICAxCiAjZGVmaW5lIENPTkZJR19NT1VTU0UgICAgICAgMQotI2RlZmluZSBDRkdfQUREUl9NQVBfQiAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19BRERSX01BUF9CICAgICAgMQogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWCAgIDEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFICAgICA5NjAwCiAjaWYgMQpAQCAtODgsNzUgKzg4LDc1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jdW5kZWYgQ0ZHX0xPTkdIRUxQICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUICAgICAgIj0+IiAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCi0jZGVmaW5lIENGR19DQlNJWkUgICAgICAyNTYgICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwotI2RlZmluZSBDRkdfUEJTSVpFICAgICAgKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MgICAgIDggICAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0xPTkdIRUxQICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVCAgICAgICI9PiIgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRSAgICAgIDI1NiAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFICAgICAgKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MgICAgIDggICAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KIAotI2RlZmluZSBDRkdfQkFSR1NJWkUgICAgQ0ZHX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSICAgMHgwMDEwMDAwMCAgLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFICAgIENPTkZJR19TWVNfQ0JTSVpFICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSICAgMHgwMDEwMDAwMCAgLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MgICAgICAgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRSAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFICAgICAgMHgwMDAwMDAwMAogCiAjaWZkZWYgREVCVUcKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBDRkdfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBDT05GSUdfU1lTX1NEUkFNX0JBU0UKICNlbHNlCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgQ0ZHX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFCiAjZW5kaWYKIAogI2lmZGVmIERFQlVHCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTiAgICAgKDQgPDwgMjApCS8qIGxvdHMgb2YgbWVtIC4uLiAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOICAgICAoNCA8PCAyMCkJLyogbG90cyBvZiBtZW0gLi4uICovCiAjZWxzZQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4gICAgICg1MTIgPDwgMTApCS8qIDUxMksgUExDQyBib290cm9tICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gICAgICg1MTIgPDwgMTApCS8qIDUxMksgUExDQyBib290cm9tICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4gICAgICAoMiooNDA5NiA8PCAxMCkpICAgIC8qIDIqNDA5NmtCIGZvciBtYWxsb2MoKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOICAgICAgKDIqKDQwOTYgPDwgMTApKSAgICAvKiAyKjQwOTZrQiBmb3IgbWFsbG9jKCkgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgICAgIDB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCAgIDB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgICAgIDB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTSAgICovCiAKIAotI2RlZmluZSBDRkdfRVVNQl9BRERSICAgICAgIDB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVU1CX0FERFIgICAgICAgMHhGQzAwMDAwMAogCi0jZGVmaW5lIENGR19JU0FfTUVNICAgICAgICAgMHhGRDAwMDAwMAotI2RlZmluZSBDRkdfSVNBX0lPICAgICAgICAgIDB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNICAgICAgICAgMHhGRDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JTyAgICAgICAgICAweEZFMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgICAgICAweEZGRjAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFICAgICAgKCh1aW50KSg1MTIgKiAxMDI0KSkKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MgICAweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICAgIDB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFICAgICAgKCh1aW50KSg1MTIgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0gIDB4RkZGMDAwMDAgIC8qIDUxMksgUExDQyBGTEFTSC9BTTI5RjA0MCovCiAjZGVmaW5lIEZMQVNIX0JBU0UwX1NJWkUgICAgMHg4MDAwMCAgICAgLyogNTEySyAqLwogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0gIDB4RkZFMTAwMDAgIC8qIEFNRCAyOUxWMTYwREIKIAkJCQkJICAgMU1CIC0gNjRLIEZMQVNIMCBTRUcgPTk2MEsKIAkJCQkJICAgKHNpemU9MHhmMDAwMCkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkxODQzMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkxODQzMjAwMAogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJMHhGRkUwODA4MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkweEZGRTA4MDgwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgQ0ZHX1NEUkFNX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgIDB4MkYwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgIDY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICBDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgMHgyRjAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgIDY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjcsMjQgKzE2NywyNCBAQAogCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEgIDMzMDAwMDAwCS8qIGV4dGVybmFsIGZyZXF1ZW5jeSB0byBwbGwgKi8KICNkZWZpbmUgQ09ORklHX1BMTF9QQ0lfVE9fTUVNX01VTFRJUExJRVIgIDIKLSNkZWZpbmUgQ0ZHX0haICAgICAgICAgICAgICAgMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haICAgICAgICAgICAgICAgMTAwMAogCi0jZGVmaW5lIENGR19FVEhfREVWX0ZOICAgICAgIDB4MDAKLSNkZWZpbmUgQ0ZHX0VUSF9JT0JBU0UgICAgICAgMHgwMDEwNDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9ERVZfRk4gICAgICAgMHgwMAorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9JT0JBU0UgICAgICAgMHgwMDEwNDAwMAogCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMS4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1JPTU5BTCAgICAgICAgICA4Ci0jZGVmaW5lIENGR19ST01GQUwgICAgICAgICAgOAorI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTCAgICAgICAgICA4CisjZGVmaW5lIENPTkZJR19TWVNfUk9NRkFMICAgICAgICAgIDgKIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IyLgogCSAqLwotI2RlZmluZSBDRkdfUkVGSU5UICAgICAgICAgIDB4ZjUgICAgIC8qIFJlZnJlc2ggaW50ZXJ2YWwgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVCAgICAgICAgICAweGY1ICAgICAvKiBSZWZyZXNoIGludGVydmFsICAgICAgICAgICAgICAgKi8KIAogCS8qIEJ1cnN0IFRvIFByZWNoYXJnZS4gQml0cyBvZiB0aGlzIHZhbHVlIGdvIHRvIE1DQ1IzIGFuZCBNQ0NSNC4KIAkgKi8KLSNkZWZpbmUgQ0ZHX0JTVE9QUkUgICAgICAgICAweDc5CisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRSAgICAgICAgIDB4NzkKIAogI2lmZGVmIElOQ0xVREVfRUNDCiAjZGVmaW5lIFVTRV9FQ0MJCQkJMQpAQCAtMTk1LDE4ICsxOTUsMTggQEAKIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IzLgogCSAqLwotI2RlZmluZSBDRkdfUkVGUkVDICAgICAgICAgIDggICAgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbCAgICovCi0jZGVmaW5lIENGR19SRExBVCAgICAgICAgICAgKDQrVVNFX0VDQykgICAvKiBEYXRhIGxhdGFuY3kgZnJvbSByZWFkIGNvbW1hbmQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUZSRUMgICAgICAgICAgOCAgICAgICAvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRExBVCAgICAgICAgICAgKDQrVVNFX0VDQykgICAvKiBEYXRhIGxhdGFuY3kgZnJvbSByZWFkIGNvbW1hbmQgKi8KIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1I0LgogCSAqLwotI2RlZmluZSBDRkdfUFJFVE9BQ1QgICAgICAgIDMgICAgICAgLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsICovCi0jZGVmaW5lIENGR19BQ1RUT1BSRSAgICAgICAgNSAgICAgICAvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwgKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUICAzICAgICAgIC8qIFNETU9ERSBDQVMgbGF0YW5jeSAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAgICAgIDAgICAgICAgLyogU0RNT0RFIHdyYXAgdHlwZSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19TRE1PREVfQlVSU1RMRU4gMiAgICAgICAvKiBTRE1PREUgQnVyc3QgbGVuZ3RoICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0FDVE9SVyAgICAgICAgICAyCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgKDEtVVNFX0VDQykKKyNkZWZpbmUgQ09ORklHX1NZU19QUkVUT0FDVCAgICAgICAgMyAgICAgICAvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRSAgICAgICAgNSAgICAgICAvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVCAgMyAgICAgICAvKiBTRE1PREUgQ0FTIGxhdGFuY3kgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUCAgICAgMCAgICAgICAvKiBTRE1PREUgd3JhcCB0eXBlICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4gMiAgICAgICAvKiBTRE1PREUgQnVyc3QgbGVuZ3RoICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RPUlcgICAgICAgICAgMgorI2RlZmluZSBDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAoMS1VU0VfRUNDKQogCiAvKiBNZW1vcnkgYmFuayBzZXR0aW5ncy4KICAqIE9ubHkgYml0cyAyMC0yOSBhcmUgYWN0dWFsbHkgdXNlZCBmcm9tIHRoZXNlIHZhbGVzIHRvIHNldCB0aGUKQEAgLTIxNCw3MSArMjE0LDcxIEBACiAgKiAyMCBiaXRzIHdpbGwgYmUgMHgwMDAwMCBmb3IgYSBzdGFydCBhZGRyZXNzLCBvciAweGZmZmZmIGZvciBhbiBlbmQKICAqIGFkZHJlc3MuIFJlZmVyIHRvIHRoZSBNUEM4MjQwIGJvb2suCiAgKi8KLSNkZWZpbmUgQ0ZHX1JBTV9TSVpFICAgICAgICAweDA0MDAwMDAwICAvKiA2NE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfUkFNX1NJWkUgICAgICAgIDB4MDQwMDAwMDAgIC8qIDY0TUIgKi8KIAogCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVCAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5EICAgICAgIChDRkdfUkFNX1NJWkUgLSAxKQotI2RlZmluZSBDRkdfQkFOSzBfRU5BQkxFICAgIDEKLSNkZWZpbmUgQ0ZHX0JBTksxX1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMV9FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzFfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTksyX1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzJfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTkszX1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LM19FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzNfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks0X1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzRfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks1X1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzVfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks2X1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzZfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks3X1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzdfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9TVEFSVCAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VORCAgICAgICAoQ09ORklHX1NZU19SQU1fU0laRSAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5BQkxFICAgIDAKIAotI2RlZmluZSBDRkdfT0RDUiAgICAgICAgICAgIDB4N2YKKyNkZWZpbmUgQ09ORklHX1NZU19PRENSICAgICAgICAgICAgMHg3ZgogCiAKLSNkZWZpbmUgQ0ZHX1BHTUFYICAgICAgICAgICAweDMyIC8qIGhvdyBsb25nIHRoZSA4MjQwIHJlYXRpbnMgdGhlIGN1cnJlbnRseSBhY2Nlc3NlZCBwYWdlIGluIG1lbW9yeQorI2RlZmluZSBDT05GSUdfU1lTX1BHTUFYICAgICAgICAgICAweDMyIC8qIGhvdyBsb25nIHRoZSA4MjQwIHJlYXRpbnMgdGhlIGN1cnJlbnRseSBhY2Nlc3NlZCBwYWdlIGluIG1lbW9yeQogCQkJCSAgICBzZWUgODI0MCBib29rIGZvciBkZXRhaWxzKi8KICNkZWZpbmUgUENJX01FTV9TUEFDRTFfU1RBUlQJMHg4MDAwMDAwMAogI2RlZmluZSBQQ0lfTUVNX1NQQUNFMl9TVEFSVAkweGZkMDAwMDAwCiAKIC8qIElCQVQvREJBVCBDb25maWd1cmF0aW9uICovCiAvKiBSYW06IDY0TUIsIHN0YXJ0cyBhdCBhZGRyZXNzLTAsIHIvdyBpbnN0cnVjdGlvbi9kYXRhICovCi0jZGVmaW5lIENGR19JQkFUMFUgICAgICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDBMICAgICAgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfREJBVDBVICAgICAgQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDBMICAgICAgQ0ZHX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVSAgICAgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAgICAgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVICAgICAgQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwgICAgICBDT05GSUdfU1lTX0lCQVQwTAogCiAvKiBNUExEL1BvcnQtWCBJL08gU3BhY2UgOiBkYXRhIGFuZCBpbnN0cnVjdGlvbiByZWFkL3dyaXRlLCAgY2FjaGUtaW5oaWJpdCAqLwotI2RlZmluZSBDRkdfSUJBVDFVICAgICAgKFBPUlRYX0RFVl9CQVNFIHwgQkFUVV9CTF8xMjhNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICAgICAgKFBPUlRYX0RFVl9CQVNFIHwgQkFUVV9CTF8xMjhNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAjaWYgMAotI2RlZmluZSBDRkdfSUJBVDFMICAgICAgKFBPUlRYX0RFVl9CQVNFIHwgQkFUTF9QUF8xMCAgfCBCQVRMX01FTUNPSEVSRU5DRSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAgICAgIChQT1JUWF9ERVZfQkFTRSB8IEJBVExfUFBfMTAgIHwgQkFUTF9NRU1DT0hFUkVOQ0UgfFwKIAkJCSBCQVRMX1dSSVRFVEhST1VHSCB8IEJBVExfQ0FDSEVJTkhJQklUKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgICAgIChQT1JUWF9ERVZfQkFTRSB8IEJBVExfUFBfMTAgfEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAgICAgIChQT1JUWF9ERVZfQkFTRSB8IEJBVExfUFBfMTAgfEJBVExfQ0FDSEVJTkhJQklUKQogI2VuZGlmCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDFMCUNGR19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKIAogLyogUENJIE1lbW9yeSByZWdpb24gMTogMHg4WFhYX1hYWFggUENJIE1lbSBzcGFjZTogRVVNQkFSLCBldGMgLSAxNk1CICovCi0jZGVmaW5lIENGR19JQkFUMlUJKFBDSV9NRU1fU1BBQ0UxX1NUQVJUfEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMkwJKFBDSV9NRU1fU1BBQ0UxX1NUQVJUfEJBVExfUFBfMTAgfCBCQVRMX0dVQVJERURTVE9SQUdFfEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfREJBVDJVICAgICAgQ0ZHX0lCQVQyVQotI2RlZmluZSBDRkdfREJBVDJMICAgICAgQ0ZHX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkoUENJX01FTV9TUEFDRTFfU1RBUlR8QkFUVV9CTF8xNk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKFBDSV9NRU1fU1BBQ0UxX1NUQVJUfEJBVExfUFBfMTAgfCBCQVRMX0dVQVJERURTVE9SQUdFfEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVSAgICAgIENPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMICAgICAgQ09ORklHX1NZU19JQkFUMkwKIAogLyogUENJIE1lbW9yeSByZWdpb24gMjogUENJIERldmljZXMgaW4gMHhGRCBzcGFjZSAqLwotI2RlZmluZSBDRkdfSUJBVDNVCShQQ0lfTUVNX1NQQUNFMl9TVEFSVHxCQVRVX0JMXzE2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDNMCShQQ0lfTUVNX1NQQUNFMl9TVEFSVHxCQVRMX1BQXzEwIHwgQkFUTF9HVUFSREVEU1RPUkFHRSB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfREJBVDNVICAgICAgQ0ZHX0lCQVQzVQotI2RlZmluZSBDRkdfREJBVDNMICAgICAgQ0ZHX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoUENJX01FTV9TUEFDRTJfU1RBUlR8QkFUVV9CTF8xNk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKFBDSV9NRU1fU1BBQ0UyX1NUQVJUfEJBVExfUFBfMTAgfCBCQVRMX0dVQVJERURTVE9SQUdFIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVICAgICAgQ09ORklHX1NZU19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wgICAgICBDT05GSUdfU1lTX0lCQVQzTAogCiAKIC8qCkBAIC0yODYsMTYgKzI4NiwxNiBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaICAgICAgICg4IDw8IDIwKSAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1ogICAgICAgKDggPDwgMjApICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgICAzICAgICAgIC8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MgICAgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICAgICA2NCAgICAgIC8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBpbiBvbmUgYmFuayAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAgICAgMyAgICAgICAvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICAgIDY0ICAgICAgLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQgICAgMTIwMDAwICAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQgICAgNTAwICAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICAgIDEyMDAwMCAgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCAgICA1MDAgICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgICAqLwogCiAjaWYgMAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICSAgICAxCkBAIC0zMTAsNyArMzEwLDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUgIDE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgIDE2CiAKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4MjYwQURTLmggYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODI2MEFEUy5oCmluZGV4IDc2M2FkNGMuLjQyZmJlOTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4MjYwQURTLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzgyNjBBRFMuaApAQCAtNTIsMjQgKzUyLDI0IEBACiAgKiBGaWd1cmUgb3V0IGlmIHdlIGFyZSBib290aW5nIGxvdyB2aWEgZmxhc2ggSFJDVyBvciBoaWdoIHZpYSB0aGUgQkNTUi4KICAqLwogI2lmIChURVhUX0JBU0UgIT0gMHhGRkYwMDAwMCkJCS8qIEJvb3QgbG93IChmbGFzaCBIUkNXKSAqLwotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKICNlbmRpZgogCiAvKiBBRFMgZmxhdm91cnMgKi8KLSNkZWZpbmUgQ0ZHXzgyNjBBRFMJCTEJLyogTVBDODI2MEFEUyAqLwotI2RlZmluZSBDRkdfODI2NkFEUwkJMgkvKiBNUEM4MjY2QURTICovCi0jZGVmaW5lIENGR19QUTJGQURTCQkzCS8qIFBRMkZBRFMtWlUgb3IgUFEyRkFEUy1WUiAqLwotI2RlZmluZSBDRkdfODI3MkFEUwkJNAkvKiBNUEM4MjcyQURTICovCisjZGVmaW5lIENPTkZJR19TWVNfODI2MEFEUwkJMQkvKiBNUEM4MjYwQURTICovCisjZGVmaW5lIENPTkZJR19TWVNfODI2NkFEUwkJMgkvKiBNUEM4MjY2QURTICovCisjZGVmaW5lIENPTkZJR19TWVNfUFEyRkFEUwkJMwkvKiBQUTJGQURTLVpVIG9yIFBRMkZBRFMtVlIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU184MjcyQURTCQk0CS8qIE1QQzgyNzJBRFMgKi8KIAogI2lmbmRlZiBDT05GSUdfQURTVFlQRQotI2RlZmluZSBDT05GSUdfQURTVFlQRQkJQ0ZHXzgyNjBBRFMKKyNkZWZpbmUgQ09ORklHX0FEU1RZUEUJCUNPTkZJR19TWVNfODI2MEFEUwogI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFICovCiAKLSNpZiBDT05GSUdfQURTVFlQRSA9PSBDRkdfODI3MkFEUworI2lmIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUwogI2RlZmluZSBDT05GSUdfTVBDODI3MgkJMQogI2Vsc2UKICNkZWZpbmUgQ09ORklHX01QQzgyNjAJCTEKLSNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSA9PSBDRkdfODI3MkFEUyAqLworI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUyAqLwogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgMQkvKiBDYWxsIGJvYXJkX2Vhcmx5X2luaXRfZgkqLwogCkBAIC0xMTMsMjYgKzExMywyNiBAQAogCiAjaWYgICBDT05GSUdfRVRIRVJfSU5ERVggPT0gMQogCi0jIGRlZmluZSBDRkdfUEhZX0FERFIJCTAKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjFDU19DTEsxMSB8IENNWEZDUl9URjFDU19DTEsxMCkKLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMSB8IENNWEZDUl9SRjFDU19NU0sgfCBDTVhGQ1JfVEYxQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19QSFlfQUREUgkJMAorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjFDU19DTEsxMSB8IENNWEZDUl9URjFDU19DTEsxMCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzEgfCBDTVhGQ1JfUkYxQ1NfTVNLIHwgQ01YRkNSX1RGMUNTX01TSykKIAogI2VsaWYgQ09ORklHX0VUSEVSX0lOREVYID09IDIKIAotI2lmIENPTkZJR19BRFNUWVBFID09IENGR184MjcyQURTCS8qIFJ4Q0xLIGlzIENMSzE1LCBUeENMSyBpcyBDTEsxNiAqLwotIyBkZWZpbmUgQ0ZHX1BIWV9BRERSCQkzCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTUgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTYpCisjaWYgQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU184MjcyQURTCS8qIFJ4Q0xLIGlzIENMSzE1LCBUeENMSyBpcyBDTEsxNiAqLworIyBkZWZpbmUgQ09ORklHX1NZU19QSFlfQUREUgkJMworIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxNSB8IENNWEZDUl9URjJDU19DTEsxNikKICNlbHNlCQkJCQkvKiBSeENMSyBpcyBDTEsxMywgVHhDTEsgaXMgQ0xLMTQgKi8KLSMgZGVmaW5lIENGR19QSFlfQUREUgkJMAotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQotI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENGR184MjcyQURTICovCisjIGRlZmluZSBDT05GSUdfU1lTX1BIWV9BRERSCQkwCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQorI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUyAqLwogCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKIAogI2VuZGlmCS8qIENPTkZJR19FVEhFUl9JTkRFWCAqLwogCi0jZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCQkvKiBCRHMgYW5kIGJ1ZmZlcnMgb24gNjB4IGJ1cyAqLwotI2RlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpICAvKiBGdWxsIGR1cGxleCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAJCS8qIEJEcyBhbmQgYnVmZmVycyBvbiA2MHggYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpICAvKiBGdWxsIGR1cGxleCAqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19CSVRCQU5HTUlJCQkvKiBiaXQtYmFuZyBNSUkgUEhZIG1hbmFnZW1lbnQJKi8KQEAgLTE0MSwzOSArMTQxLDM5IEBACiAgKi8KICNkZWZpbmUgTURJT19QT1JUCTIJCS8qIFBvcnQgQyAqLwogCi0jaWYgQ09ORklHX0FEU1RZUEUgPT0gQ0ZHXzgyNzJBRFMKLSNkZWZpbmUgQ0ZHX01ESU9fUElOCTB4MDAwMDIwMDAJLyogUEMxOCAqLwotI2RlZmluZSBDRkdfTURDX1BJTgkweDAwMDAxMDAwCS8qIFBDMTkgKi8KKyNpZiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTXzgyNzJBRFMKKyNkZWZpbmUgQ09ORklHX1NZU19NRElPX1BJTgkweDAwMDAyMDAwCS8qIFBDMTggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRENfUElOCTB4MDAwMDEwMDAJLyogUEMxOSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01ESU9fUElOCTB4MDA0MDAwMDAJLyogUEM5CSovCi0jZGVmaW5lIENGR19NRENfUElOCTB4MDAyMDAwMDAJLyogUEMxMCAqLwotI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENGR184MjcyQURTICovCisjZGVmaW5lIENPTkZJR19TWVNfTURJT19QSU4JMHgwMDQwMDAwMAkvKiBQQzkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRENfUElOCTB4MDAyMDAwMDAJLyogUEMxMCAqLworI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUyAqLwogCi0jZGVmaW5lIE1ESU9fQUNUSVZFCShpb3AtPnBkaXIgfD0gIENGR19NRElPX1BJTikKLSNkZWZpbmUgTURJT19UUklTVEFURQkoaW9wLT5wZGlyICY9IH5DRkdfTURJT19QSU4pCi0jZGVmaW5lIE1ESU9fUkVBRAkoKGlvcC0+cGRhdCAmICBDRkdfTURJT19QSU4pICE9IDApCisjZGVmaW5lIE1ESU9fQUNUSVZFCShpb3AtPnBkaXIgfD0gIENPTkZJR19TWVNfTURJT19QSU4pCisjZGVmaW5lIE1ESU9fVFJJU1RBVEUJKGlvcC0+cGRpciAmPSB+Q09ORklHX1NZU19NRElPX1BJTikKKyNkZWZpbmUgTURJT19SRUFECSgoaW9wLT5wZGF0ICYgIENPTkZJR19TWVNfTURJT19QSU4pICE9IDApCiAKLSNkZWZpbmUgTURJTyhiaXQpCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICBDRkdfTURJT19QSU47IFwKLQkJCWVsc2UJaW9wLT5wZGF0ICY9IH5DRkdfTURJT19QSU4KKyNkZWZpbmUgTURJTyhiaXQpCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICBDT05GSUdfU1lTX01ESU9fUElOOyBcCisJCQllbHNlCWlvcC0+cGRhdCAmPSB+Q09ORklHX1NZU19NRElPX1BJTgogCi0jZGVmaW5lIE1EQyhiaXQpCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICBDRkdfTURDX1BJTjsgXAotCQkJZWxzZQlpb3AtPnBkYXQgJj0gfkNGR19NRENfUElOCisjZGVmaW5lIE1EQyhiaXQpCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICBDT05GSUdfU1lTX01EQ19QSU47IFwKKwkJCWVsc2UJaW9wLT5wZGF0ICY9IH5DT05GSUdfU1lTX01EQ19QSU4KIAogI2RlZmluZSBNSUlERUxBWQl1ZGVsYXkoMSkKIAogI2VuZGlmIC8qIENPTkZJR19FVEhFUl9PTl9GQ0MgKi8KIAotI2lmIENPTkZJR19BRFNUWVBFID49IENGR19QUTJGQURTCisjaWYgQ09ORklHX0FEU1RZUEUgPj0gQ09ORklHX1NZU19QUTJGQURTCiAjdW5kZWYgQ09ORklHX1NQRF9FRVBST00JLyogT24gbmV3IGJvYXJkcywgU0RSQU0gaXMgc29sZGVyZWQgKi8KICNlbHNlCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBUbyBlbmFibGUgSTJDIHN1cHBvcnQJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKICNpZiBkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKSAmJiAhZGVmaW5lZChDT05GSUdfU1BEX0FERFIpCiAjZGVmaW5lIENPTkZJR19TUERfQUREUgkJMHg1MAogI2VuZGlmCi0jZW5kaWYgLyogQ09ORklHX0FEU1RZUEUgPj0gQ0ZHX1BRMkZBRFMgKi8KKyNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSA+PSBDT05GSUdfU1lTX1BRMkZBRFMgKi8KIAogLypQQ0kqLwogI2lmZGVmIENPTkZJR19NUEM4MjcyCkBAIC0xODgsNyArMTg4LDcgQEAKICNlbmRpZgogCiAjaWZuZGVmIENPTkZJR184MjYwX0NMS0lOCi0jaWYgQ09ORklHX0FEU1RZUEUgPj0gQ0ZHX1BRMkZBRFMKKyNpZiBDT05GSUdfQURTVFlQRSA+PSBDT05GSUdfU1lTX1BRMkZBRFMKICNkZWZpbmUgQ09ORklHXzgyNjBfQ0xLSU4JMTAwMDAwMDAwCS8qIGluIEh6ICovCiAjZWxzZQogI2RlZmluZSBDT05GSUdfODI2MF9DTEtJTgk2NjAwMDAwMAkvKiBpbiBIeiAqLwpAQCAtMjM3LDExICsyMzcsMTEgQEAKIAogI3VuZGVmIENPTkZJR19DTURfWElNRwogCi0jaWYgQ09ORklHX0FEU1RZUEUgPT0gQ0ZHXzgyNzJBRFMKKyNpZiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTXzgyNzJBRFMKICAgICAjdW5kZWYgQ09ORklHX0NNRF9TRFJBTQogICAgICN1bmRlZiBDT05GSUdfQ01EX0kyQwogCi0jZWxpZiBDT05GSUdfQURTVFlQRSA+PSBDRkdfUFEyRkFEUworI2VsaWYgQ09ORklHX0FEU1RZUEUgPj0gQ09ORklHX1NZU19QUTJGQURTCiAgICAgI3VuZGVmIENPTkZJR19DTURfU0RSQU0KICAgICAjdW5kZWYgQ09ORklHX0NNRF9JMkMKICAgICAjdW5kZWYgQ09ORklHX0NNRF9QQ0kKQEAgLTI0OSw3ICsyNDksNyBAQAogI2Vsc2UKICAgICAjdW5kZWYgQ09ORklHX0NNRF9QQ0kKIAotI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID49IENGR19QUTJGQURTICovCisjZW5kaWYgLyogQ09ORklHX0FEU1RZUEUgPj0gQ09ORklHX1NZU19QUTJGQURTICovCiAKIAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUJCS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcyAqLwpAQCAtMjcwLDM3ICsyNzAsMzcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDQwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHg0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZjgwMDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTMyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTgKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCQkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkzMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJOAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1CS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkJLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCiAKIC8qCiAgKiBKRkZTMiBwYXJ0aXRpb25zCkBAIC0zMDksMjAgKzMwOSwyMCBAQAogICovCiAjZGVmaW5lIE1URElEU19ERUZBVUxUCQkibm9yMD1tcGM4MjYwYWRzLTAiCiAjZGVmaW5lIE1URFBBUlRTX0RFRkFVTFQJIm10ZHBhcnRzPW1wYzgyNjBhZHMtMDotQDFtKGpmZnMyKSIKLSNkZWZpbmUgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfU09SVF9GUkFHTUVOVFMKIAogLyogdGhpcyBpcyBzdHVmZiBjYW1lIG91dCBvZiB0aGUgTW90b3JvbGEgZG9jcyAqLwotI2lmbmRlZiBDRkdfTE9XQk9PVAotI2RlZmluZSBDRkdfREVGQVVMVF9JTU1SCTB4MEYwMTAwMDAKKyNpZm5kZWYgQ09ORklHX1NZU19MT1dCT09UCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9JTU1SCTB4MEYwMTAwMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19CQ1NSCQkweEY0NTAwMDAwCi0jaWYgQ09ORklHX0FEU1RZUEUgPT0gQ0ZHXzgyNzJBRFMKLSNkZWZpbmUgQ0ZHX1BDSV9JTlQJCTB4RjgyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUgkJMHhGNDUwMDAwMAorI2lmIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JTlQJCTB4RjgyMDAwMDAKICNlbmRpZgotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTFNEUkFNX0JBU0UJCTB4RkQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTFNEUkFNX0JBU0UJCTB4RkQwMDAwMDAKIAogI2RlZmluZSBSUzIzMkVOXzEJCTB4MDIwMDAwMDIKICNkZWZpbmUgUlMyMzJFTl8yCQkweDAxMDAwMDAxCkBAIC0zMzIsMTI3ICszMzIsMTI3IEBACiAjZGVmaW5lIEZFVEgyX1JTVAkJMHgwODAwMDAwMAogI2RlZmluZSBCQ1NSX1BDSV9NT0RFCQkweDAxMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2lmZGVmIENGR19MT1dCT09UCisjaWZkZWYgQ09ORklHX1NZU19MT1dCT09UCiAvKiBQUTJGQURTIGZsYXNoIEhSQ1cgPSAweDBFQjRCNjQ1ICovCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUiAoICAgKCBIUkNXX0JQUzExIHwgSFJDV19DSVAgKQkJCSAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSICggICAoIEhSQ1dfQlBTMTEgfCBIUkNXX0NJUCApCQkJICAgIHxcCiAJCQkgICAgKCBIUkNXX0wyQ1BDMTAgfCBIUkNXX0RQUEMxMSB8IEhSQ1dfSVNCMTAwICkgICAgfFwKIAkJCSAgICAoIEhSQ1dfQk1TIHwgSFJDV19NTVIxMSB8IEhSQ1dfTEJQQzAxIHwgSFJDV19BUFBDMTAgKSB8XAogCQkJICAgICggSFJDV19DUzEwUEMwMSB8IEhSQ1dfTU9EQ0tfSDAxMDEgKQkgICAgIFwKIAkJCSkKICNlbHNlCiAvKiBQUTJGQURTIEJDU1IgSFJDVyA9IDB4MENCMjM2NDUgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSICggICAoIEhSQ1dfQlBTMTEgfCBIUkNXX0NJUCApCQkJICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIgKCAgICggSFJDV19CUFMxMSB8IEhSQ1dfQ0lQICkJCQkgICAgfFwKIAkJCSAgICAoIEhSQ1dfTDJDUEMxMCB8IEhSQ1dfRFBQQzEwIHwgSFJDV19JU0IwMTAgKSAgICB8XAogCQkJICAgICggSFJDV19CTVMgfCBIUkNXX0FQUEMxMCApCQkJICAgIHxcCiAJCQkgICAgKCBIUkNXX01PRENLX0gwMTAxICkJCQkgICAgIFwKIAkJCSkKICNlbmRpZgogLyogbm8gc2xhdmVzICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMSAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMiAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMyAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNCAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNSAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNiAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNyAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMyAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1IDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNiAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcgMAogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAgKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdAkgICAgICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogI2lmZGVmIENPTkZJR19CWklQMgotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDQwOTYgPDwgMTApCS8qIFJlc2VydmUgNCBNQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNDA5NiA8PCAxMCkJLyogUmVzZXJ2ZSA0IE1CIGZvciBtYWxsb2MoKQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IEtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IEtCIGZvciBtYWxsb2MoKQkqLwogI2VuZGlmIC8qIENPTkZJR19CWklQMiAqLwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogIyAgZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfRU5WX1NFQ1RfU0laRSkKICNlbHNlCiAjICBkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTQkxCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJKEhJRDBfSUNFIHwgSElEMF9JRkVNIHwgSElEMF9BQkUgKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCShISUQwX0lDRSB8IEhJRDBfSUZFTSB8IEhJRDBfQUJFICkKIAotI2RlZmluZSBDRkdfSElEMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJCTAKIAotI2RlZmluZSBDRkdfU1lQQ1IJCTB4RkZGRkZGQzMKLSNkZWZpbmUgQ0ZHX0JDUgkJCTB4MTAwQzAwMDAKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkJMHgwQTIwMDAwMAotI2RlZmluZSBDRkdfU0NDUgkJU0NDUl9ERkJSRzAxCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoQ0ZHX0ZMQVNIX0JBU0UgfCAweDAwMDAxODAxKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhGRjgwMDg3NgotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJKENGR19CQ1NSIHwgMHgwMDAwMTgwMSkKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4RkZGRjgwMTAKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkJMHhGRkZGRkZDMworI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJCTB4MTAwQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJCTB4MEEyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCQlTQ0NSX0RGQlJHMDEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgMHgwMDAwMTgwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweEZGODAwODc2CisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJKENPTkZJR19TWVNfQkNTUiB8IDB4MDAwMDE4MDEpCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhGRkZGODAxMAogCiAvKldlIG5lZWQgdG8gY29uZmlndXJlIGNoaXAgc2VsZWN0IHRvIHVzZSBDUExEIFBDSSBJQyBvbiBNUEM4MjcyQURTKi8KIAotI2lmIENPTkZJR19BRFNUWVBFID09IENGR184MjcyQURTCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCShDRkdfUENJX0lOVCB8IDB4MTgwMSkJLyogUENJIGludGVycnVwdCBjb250cm9sbGVyICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCTB4RkZGRjgwMTAKKyNpZiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTXzgyNzJBRFMKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCShDT05GSUdfU1lTX1BDSV9JTlQgfCAweDE4MDEpCS8qIFBDSSBpbnRlcnJ1cHQgY29udHJvbGxlciAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JMHhGRkZGODAxMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1JNUgkJCVJNUl9DU1JFCi0jZGVmaW5lIENGR19UTUNOVFNDCQkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCi0jZGVmaW5lIENGR19QSVNDUgkJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCi0jZGVmaW5lIENGR19SQ0NSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQkJUk1SX0NTUkUKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDCQkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IJCTAKIAotI2lmIChDT05GSUdfQURTVFlQRSA9PSBDRkdfODI2NkFEUykgfHwgKENPTkZJR19BRFNUWVBFID09IENGR184MjcyQURTKQotI3VuZGVmIENGR19MU0RSQU1fQkFTRQkJLyogTm8gbG9jYWwgYnVzIFNEUkFNIG9uIHRoZXNlIGJvYXJkcyAqLwotI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENGR184MjY2QURTICovCisjaWYgKENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI2NkFEUykgfHwgKENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUykKKyN1bmRlZiBDT05GSUdfU1lTX0xTRFJBTV9CQVNFCQkvKiBObyBsb2NhbCBidXMgU0RSQU0gb24gdGhlc2UgYm9hcmRzICovCisjZW5kaWYgLyogQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU184MjY2QURTICovCiAKLSNpZiBDT05GSUdfQURTVFlQRSA9PSBDRkdfUFEyRkFEUwotI2RlZmluZSBDRkdfT1IyCQkJMHhGRTAwMkVDMAotI2RlZmluZSBDRkdfUFNETVIJCTB4ODI0QjM2QTMKLSNkZWZpbmUgQ0ZHX1BTUlQJCTB4MTMKLSNkZWZpbmUgQ0ZHX0xTRE1SCQkweDgyODczN0EzCi0jZGVmaW5lIENGR19MU1JUCQkweDEzCi0jZGVmaW5lIENGR19NUFRQUgkJMHgyODAwCi0jZWxpZiBDT05GSUdfQURTVFlQRSA9PSBDRkdfODI3MkFEUwotI2RlZmluZSBDRkdfT1IyCQkJMHhGQzAwMkNDMAotI2RlZmluZSBDRkdfUFNETVIJCTB4ODM0RTI0QTMKLSNkZWZpbmUgQ0ZHX1BTUlQJCTB4MTMKLSNkZWZpbmUgQ0ZHX01QVFBSCQkweDI4MDAKKyNpZiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTX1BRMkZBRFMKKyNkZWZpbmUgQ09ORklHX1NZU19PUjIJCQkweEZFMDAyRUMwCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJCTB4ODI0QjM2QTMKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUCQkweDEzCisjZGVmaW5lIENPTkZJR19TWVNfTFNETVIJCTB4ODI4NzM3QTMKKyNkZWZpbmUgQ09ORklHX1NZU19MU1JUCQkweDEzCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJCTB4MjgwMAorI2VsaWYgQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU184MjcyQURTCisjZGVmaW5lIENPTkZJR19TWVNfT1IyCQkJMHhGQzAwMkNDMAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCQkweDgzNEUyNEEzCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkJMHgxMworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCQkweDI4MDAKICNlbHNlCi0jZGVmaW5lIENGR19PUjIJCQkweEZGMDAwQ0EwCi0jZGVmaW5lIENGR19QU0RNUgkJMHgwMTZFQjQ1MgotI2RlZmluZSBDRkdfUFNSVAkJMHgyMQotI2RlZmluZSBDRkdfTFNETVIJCTB4MDA4NkE1MjIKLSNkZWZpbmUgQ0ZHX0xTUlQJCTB4MjEKLSNkZWZpbmUgQ0ZHX01QVFBSCQkweDE5MDAKLSNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSA9PSBDRkdfUFEyRkFEUyAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMgkJCTB4RkYwMDBDQTAKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUgkJMHgwMTZFQjQ1MgorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQJCTB4MjEKKyNkZWZpbmUgQ09ORklHX1NZU19MU0RNUgkJMHgwMDg2QTUyMgorI2RlZmluZSBDT05GSUdfU1lTX0xTUlQJCTB4MjEKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkJMHgxOTAwCisjZW5kaWYgLyogQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU19QUTJGQURTICovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHgwNDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHgwNDQwMDAwMAogCi0jaWYgQ09ORklHX0FEU1RZUEUgPT0gQ0ZHXzgyNzJBRFMKKyNpZiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTXzgyNzJBRFMKIAogLyogUENJIE1lbW9yeSBtYXAgKGlmIGRpZmZlcmVudCBmcm9tIGRlZmF1bHQgbWFwICovCi0jZGVmaW5lIENGR19QQ0lfU0xWX01FTV9MT0NBTAlDRkdfU0RSQU1fQkFTRQkJLyogTG9jYWwgYmFzZSAqLwotI2RlZmluZSBDRkdfUENJX1NMVl9NRU1fQlVTCQkweDAwMDAwMDAwCQkvKiBQQ0kgYmFzZSAqLwotI2RlZmluZSBDRkdfUElDTVIwX01BU0tfQVRUUklCCShQSUNNUl9NQVNLXzUxMk1CIHwgUElDTVJfRU5BQkxFIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0xPQ0FMCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJLyogTG9jYWwgYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0JVUwkJMHgwMDAwMDAwMAkJLyogUENJIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QSUNNUjBfTUFTS19BVFRSSUIJKFBJQ01SX01BU0tfNTEyTUIgfCBQSUNNUl9FTkFCTEUgfCBcCiAJCQkJIFBJQ01SX1BSRUZFVENIX0VOKQogCiAvKgpAQCAtNDY4LDExICs0NjgsMTEgQEAKICAqIGluIHRoZSBicmlkZ2UuCiAgKi8KIAotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNX0xPQ0FMCTB4ODAwMDAwMDAgICAgICAgICAgLyogTG9jYWwgYmFzZSAqLwotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNX0JVUwkweDgwMDAwMDAwICAgICAgICAgIC8qIFBDSSBiYXNlICAgKi8KLSNkZWZpbmUJQ0ZHX0NQVV9QQ0lfTUVNX1NUQVJUCVBDSV9NU1RSX01FTV9MT0NBTAotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNX1NJWkUJMHgyMDAwMDAwMCAgICAgICAgICAvKiA1MTJNQiAqLwotI2RlZmluZSBDRkdfUE9DTVIwX01BU0tfQVRUUklCCShQT0NNUl9NQVNLXzUxMk1CIHwgUE9DTVJfRU5BQkxFIHwgUE9DTVJfUFJFRkVUQ0hfRU4pCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfTUVNX0xPQ0FMCTB4ODAwMDAwMDAgICAgICAgICAgLyogTG9jYWwgYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSX01FTV9CVVMJMHg4MDAwMDAwMCAgICAgICAgICAvKiBQQ0kgYmFzZSAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ1BVX1BDSV9NRU1fU1RBUlQJUENJX01TVFJfTUVNX0xPQ0FMCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfTUVNX1NJWkUJMHgyMDAwMDAwMCAgICAgICAgICAvKiA1MTJNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BPQ01SMF9NQVNLX0FUVFJJQgkoUE9DTVJfTUFTS181MTJNQiB8IFBPQ01SX0VOQUJMRSB8IFBPQ01SX1BSRUZFVENIX0VOKQogCiAvKgogICogTWFzdGVyIHdpbmRvdyB0aGF0IGFsbG93cyB0aGUgQ1BVIHRvIGFjY2VzcyBQQ0kgTWVtb3J5IChub24tcHJlZmV0Y2gpLgpAQCAtNDgwLDExICs0ODAsMTEgQEAKICAqIGluIHRoZSBicmlkZ2UuCiAgKi8KIAotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNSU9fTE9DQUwgICAgMHhBMDAwMDAwMCAgICAgICAgICAvKiBMb2NhbCBiYXNlICovCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9NRU1JT19CVVMgICAgICAweEEwMDAwMDAwICAgICAgICAgIC8qIFBDSSBiYXNlICAgKi8KLSNkZWZpbmUgQ0ZHX0NQVV9QQ0lfTUVNSU9fU1RBUlQgICAgIFBDSV9NU1RSX01FTUlPX0xPQ0FMCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9NRU1JT19TSVpFICAgICAweDIwMDAwMDAwICAgICAgICAgIC8qIDUxMk1CICovCi0jZGVmaW5lIENGR19QT0NNUjFfTUFTS19BVFRSSUIgICAgICAoUE9DTVJfTUFTS181MTJNQiB8IFBPQ01SX0VOQUJMRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1JT19MT0NBTCAgICAweEEwMDAwMDAwICAgICAgICAgIC8qIExvY2FsIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1JT19CVVMgICAgICAweEEwMDAwMDAwICAgICAgICAgIC8qIFBDSSBiYXNlICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVfUENJX01FTUlPX1NUQVJUICAgICBQQ0lfTVNUUl9NRU1JT19MT0NBTAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX1NJWkUgICAgIDB4MjAwMDAwMDAgICAgICAgICAgLyogNTEyTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QT0NNUjFfTUFTS19BVFRSSUIgICAgICAoUE9DTVJfTUFTS181MTJNQiB8IFBPQ01SX0VOQUJMRSkKIAogLyoKICAqIE1hc3RlciB3aW5kb3cgdGhhdCBhbGxvd3MgdGhlIENQVSB0byBhY2Nlc3MgUENJIElPIHNwYWNlLgpAQCAtNDkyLDIzICs0OTIsMjMgQEAKICAqIGluIHRoZSBicmlkZ2UuCiAgKi8KIAotI2RlZmluZSBDRkdfUENJX01TVFJfSU9fTE9DQUwgICAgICAgMHhGNjAwMDAwMCAgICAgICAgICAvKiBMb2NhbCBiYXNlICovCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9JT19CVVMgICAgICAgICAweDAwMDAwMDAwICAgICAgICAgIC8qIFBDSSBiYXNlICAgKi8KLSNkZWZpbmUgQ0ZHX0NQVV9QQ0lfSU9fU1RBUlQgICAgICAgIFBDSV9NU1RSX0lPX0xPQ0FMCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9JT19TSVpFICAgICAgICAweDAyMDAwMDAwICAgICAgICAgIC8qIDY0TUIgKi8KLSNkZWZpbmUgQ0ZHX1BPQ01SMl9NQVNLX0FUVFJJQiAgICAgIChQT0NNUl9NQVNLXzMyTUIgfCBQT0NNUl9FTkFCTEUgfCBQT0NNUl9QQ0lfSU8pCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfSU9fTE9DQUwgICAgICAgMHhGNjAwMDAwMCAgICAgICAgICAvKiBMb2NhbCBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfSU9fQlVTICAgICAgICAgMHgwMDAwMDAwMCAgICAgICAgICAvKiBQQ0kgYmFzZSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVX1BDSV9JT19TVEFSVCAgICAgICAgUENJX01TVFJfSU9fTE9DQUwKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9JT19TSVpFICAgICAgICAweDAyMDAwMDAwICAgICAgICAgIC8qIDY0TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QT0NNUjJfTUFTS19BVFRSSUIgICAgICAoUE9DTVJfTUFTS18zMk1CIHwgUE9DTVJfRU5BQkxFIHwgUE9DTVJfUENJX0lPKQogCiAKIC8qIFBDSUJSMCAtIGZvciBQQ0kgSU8qLwotI2RlZmluZSBDRkdfUENJX01TVFIwX0xPQ0FMCQlDRkdfUENJX01TVFJfSU9fTE9DQUwJCS8qIExvY2FsIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BDSU1TSzBfTUFTSwkJfihDRkdfUENJX01TVFJfSU9fU0laRSAtIDFVKQkvKiBTaXplIG9mIHdpbmRvdyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSMF9MT0NBTAkJQ09ORklHX1NZU19QQ0lfTVNUUl9JT19MT0NBTAkJLyogTG9jYWwgYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSU1TSzBfTUFTSwkJfihDT05GSUdfU1lTX1BDSV9NU1RSX0lPX1NJWkUgLSAxVSkJLyogU2l6ZSBvZiB3aW5kb3cgKi8KIC8qIFBDSUJSMSAtIHByZWZldGNoIGFuZCBub24tcHJlZmV0Y2ggcmVnaW9ucyBqb2luZWQgdG9nZXRoZXIgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSMV9MT0NBTAkJQ0ZHX1BDSV9NU1RSX01FTV9MT0NBTAotI2RlZmluZSBDRkdfUENJTVNLMV9NQVNLCQl+KENGR19QQ0lfTVNUUl9NRU1fU0laRSArIENGR19QQ0lfTVNUUl9NRU1JT19TSVpFIC0gMVUpCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFIxX0xPQ0FMCQlDT05GSUdfU1lTX1BDSV9NU1RSX01FTV9MT0NBTAorI2RlZmluZSBDT05GSUdfU1lTX1BDSU1TSzFfTUFTSwkJfihDT05GSUdfU1lTX1BDSV9NU1RSX01FTV9TSVpFICsgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1JT19TSVpFIC0gMVUpCiAKICNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfODI3MkFEUyovCiAKLSNpZiBDT05GSUdfQURTVFlQRSA9PSBDRkdfODI3MkFEUworI2lmIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUwogI2RlZmluZSBDT05GSUdfSEFTX0VUSDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODI2NkFEUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzgyNjZBRFMuaAppbmRleCAyNmM2ZmJlLi5mZTFjYzE3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODI2NkFEUy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4MjY2QURTLmgKQEAgLTM2LDcgKzM2LDcgQEAKICAgICEhICBUbyBtYWtlIGl0IHdvcmsgZm9yIHRoZSBkZWZhdWx0LCB0aGUgVEVYVF9CQVNFIGRlZmluZSBpbgkgICAgICAhIQogICAgISEgIGJvYXJkL21wYzgyNjZhZHMvY29uZmlnLm1rIG11c3QgYmUgY2hhbmdlZCBmcm9tIDB4ZmUwMDAwMDAgdG8gICEhCiAgICAhISAgMHhmZmYwMDAwMAkJCQkJCSAgICAgICEhCi0gICAhISAgVGhlIENGR19IUkNXX01BU1RFUiBkZWZpbmUgYmVsb3cgbXVzdCBhbHNvIGJlIGNoYW5nZWQgdG8gbWF0Y2ggISEKKyAgICEhICBUaGUgQ09ORklHX1NZU19IUkNXX01BU1RFUiBkZWZpbmUgYmVsb3cgbXVzdCBhbHNvIGJlIGNoYW5nZWQgdG8gbWF0Y2ggISEKICAgICEhCQkJCQkJCQkgICAgICAhIQogICAgISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhCiAgKi8KQEAgLTExNSwxOCArMTE1LDE4IEBACiAgKiAtIFNlbGVjdCBidXMgZm9yIGJkL2J1ZmZlcnMgKHNlZSAyOC0xMykKICAqIC0gSGFsZiBkdXBsZXgKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTMgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMiB8IENNWEZDUl9SRjJDU19NU0sgfCBDTVhGQ1JfVEYyQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxMyB8IENNWEZDUl9URjJDU19DTEsxNCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKIAogI2VuZGlmCS8qIENPTkZJR19FVEhFUl9JTkRFWCAqLwogCiAvKiBvdGhlciBvcHRpb25zICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBUbyBlbmFibGUgSTJDIHN1cHBvcnQJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKIAogLyogUENJICovCiAjZGVmaW5lIENPTkZJR19QQ0kKQEAgLTIxOCw0NyArMjE4LDQ3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgkJLyogY2xvY2tzIHBhc3NzZWQgdG8gTGludXggaW4gTUh6ICovCiAJCQkJCS8qIGZvciB2ZXJzaW9ucyA8IDIuNC41LXByZTUJKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKICNkZWZpbmUgRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTMyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTgKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMzIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTgKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTgwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAgICovCiAKLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCiAKIC8qIHRoaXMgaXMgc3R1ZmYgY2FtZSBvdXQgb2YgdGhlIE1vdG9yb2xhIGRvY3MgKi8KIC8qIE9ubHkgY2hhbmdlIHRoaXMgaWYgeW91IGFsc28gY2hhbmdlIHRoZSBIYXJkd2FyZSBjb25maWd1cmF0aW9uIFdvcmQgKi8KLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfSU1NUgkweDBGMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9JTU1SCTB4MEYwMTAwMDAKIAogLyogU2V0IElNTVIgdG8gMHhGMDAwMDAwMCBvciBhYm92ZSB0byBib290IExpbnV4ICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfQkNTUgkJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfUENJX0lOVAkJMHhGODIwMDAwMAkvKiBQQ0kgaW50ZXJydXB0IGNvbnRyb2xsZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUgkJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JTlQJCTB4RjgyMDAwMDAJLyogUENJIGludGVycnVwdCBjb250cm9sbGVyICovCiAKIC8qIERlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNIHRvIGFsbG93IHVzZSBvZiBTRFJBTXMgbGFyZ2VyIHRoYW4gMjU2TUJ5dGVzCiAgKi8KQEAgLTI2Nyw4ICsyNjcsOCBAQAogLyogV2hhdCBzaG91bGQgYmUgdGhlIGJhc2UgYWRkcmVzcyBvZiBTRFJBTSBESU1NIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gTWJ5dGVzKT8gIFRoaXMgd2lsbCBub3JtYWxseSBhdXRvLWNvbmZpZ3VyZSB2aWEgdGhlIFNQRC4KICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUgMTYKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFIDE2CiAKICNkZWZpbmUgU0RSQU1fU1BEX0FERFIgMHg1MAogCkBAIC0yOTUsMTIgKzI5NSwxMiBAQAogICogICAgIC0gTm8gZGF0YSBwaXBlbGluaW5nIGlzIGRvbmUKICAqICAgICAtIFZhbGlkCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChDRkdfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfU0RSQU1fUAkJCXxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChDRkdfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfU0RSQU1fUAkJCXxcCiAJCQkgQlJ4X1YpCkBAIC0zMTQsMTMgKzMxNCwxMyBAQAogICogICAgIC0gQmFjay10by1iYWNrIHBhZ2UgbW9kZQogICogICAgIC0gSW50ZXJuYWwgYmFuayBpbnRlcmxlYXZpbmcgd2l0aGluIHNhdmUgZGV2aWNlIGVuYWJsZWQKICAqLwotI2lmIChDRkdfU0RSQU1fU0laRSA9PSA2NCkKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKE1FR19UT19BTShDRkdfU0RSQU1fU0laRSkJfFwKKyNpZiAoQ09ORklHX1NZU19TRFJBTV9TSVpFID09IDY0KQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKE1FR19UT19BTShDT05GSUdfU1lTX1NEUkFNX1NJWkUpCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E4CQl8XAogCQkJIE9SeFNfTlVNUl8xMikKLSNlbGlmIChDRkdfU0RSQU1fU0laRSA9PSAxNikKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKDB4RkYwMDBDODApCisjZWxpZiAoQ09ORklHX1NZU19TRFJBTV9TSVpFID09IDE2KQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKDB4RkYwMDBDODApCiAjZWxzZQogI2Vycm9yICJJTlZBTElEIFNEUkFNIENPTkZJR1VSQVRJT04iCiAjZW5kaWYKQEAgLTMzMSw3ICszMzEsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKLSNpZiAoQ0ZHX1NEUkFNX1NJWkUgPT0gNjQpCisjaWYgKENPTkZJR19TWVNfU0RSQU1fU0laRSA9PSA2NCkKIC8qIFdpdGggYSA2NCBNQiBESU1NLCB0aGUgUFNETVIgaXMgY29uZmlndXJlZCBhcyBmb2xsb3dzOgogICoKICAqICAgICAtIEJhbmsgQmFzZWQgSW50ZXJsZWF2aW5nLApAQCAtMzQ5LDcgKzM0OSw3IEBACiAgKiAgICAgLSBlYXJsaWVzdCB0aW1pbmcgZm9yIFBSRUNIQVJHRSBhZnRlciBsYXN0IGRhdGEgd2FzIHdyaXR0ZW4gaXMgMSBjbG9jaywKICAqICAgICAtIENBUyBMYXRlbmN5IGlzIDIuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BTRE1SCShQU0RNUl9SRkVOCSAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJKFBTRE1SX1JGRU4JICAgICAgfFwKIAkJCSBQU0RNUl9TREFNX0ExNF9JU19BNSB8XAogCQkJIFBTRE1SX0JTTUFfQTE0X0ExNiAgIHxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMF9BOSAgfFwKQEAgLTM1OSwxMiArMzU5LDEyIEBACiAJCQkgUFNETVJfTERPVE9QUkVfMUMgICAgfFwKIAkJCSBQU0RNUl9XUkNfMUMJICAgICAgfFwKIAkJCSBQU0RNUl9DTF8yKQotI2VsaWYgKENGR19TRFJBTV9TSVpFID09IDE2KQorI2VsaWYgKENPTkZJR19TWVNfU0RSQU1fU0laRSA9PSAxNikKIC8qIFdpdGggYSAxNiBNQiBESU1NLCB0aGUgUFNETVIgaXMgY29uZmlndXJlZCBhcyBmb2xsb3dzOgogICoKICAqICAgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGZvdW5kIGluIE1vdG9yb2xhIGRvY3VtZW50YXRpb24KICAqLwotI2RlZmluZSBDRkdfUFNETVIJKDB4MDE2RUI0NTIpCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJKDB4MDE2RUI0NTIpCiAjZWxzZQogI2Vycm9yICJJTlZBTElEIFNEUkFNIENPTkZJR1VSQVRJT04iCiAjZW5kaWYKQEAgLTM3NCwyMiArMzc0LDIyIEBACiAjZGVmaW5lIEZFVEhJRU4JCQkweDA4MDAwMDA4CiAjZGVmaW5lIEZFVEhfUlNUCQkweDA0MDAwMDA0CiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyogVXNlIHRoaXMgSFJDVyBmb3IgYm9vdGluZyBmcm9tIGFkZHJlc3MgMHhmZTAwMDAwIChKUDMgaW4gc2V0dGluZyAxLTIpICAqLwogLyogMHgwRUIyQjY0NSAqLwotI2RlZmluZSBDRkdfSFJDV19NQVNURVIgKCggSFJDV19CUFMxMSB8IEhSQ1dfQ0lQICkJCQkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUiAoKCBIUkNXX0JQUzExIHwgSFJDV19DSVAgKQkJCQl8XAogCQkJICggSFJDV19MMkNQQzEwIHwgSFJDV19EUFBDMTEgfCBIUkNXX0lTQjAxMCApCQl8XAogCQkJICggSFJDV19CTVMgfCBIUkNXX01NUjExIHwgSFJDV19MQlBDMDEgfCBIUkNXX0FQUEMxMCApCXxcCiAJCQkgKCBIUkNXX0NTMTBQQzAxIHwgSFJDV19NT0RDS19IMDEwMSApCQkJXAogCQkJKQogCiAvKiBVc2UgdGhpcyBIUkNXIGZvciBib290aW5nIGZyb20gYWRkcmVzcyAweGZmZjAwMDAgKEpQMyBpbiBzZXR0aW5nIDItMykgICovCi0vKiAjZGVmaW5lIENGR19IUkNXX01BU1RFUiAweDBjYjIzNjQ1ICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIgMHgwY2IyMzY0NSAqLwogCiAvKiBUaGlzIHZhbHVlIHNob3VsZCBhY3R1YWxseSBiZSBzaXR1YXRlZCBpbiB0aGUgZmlyc3QgMjU2IGJ5dGVzIG9mIHRoZSBGTEFTSAogCXdoaWNoIG9uIHRoZSBzdGFuZGFyZCBNUEM4MjY2QURTIGJvYXJkIGlzIGF0IGFkZHJlc3MgMHhGRjgwMDAwMApAQCAtNDA2LDM5ICs0MDYsMzkgQEAKICovCiAKIC8qIG5vIHNsYXZlcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMiAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0IDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNSAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3IDAKIAogI2RlZmluZSBCT09URkxBR19DT0xECTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QJICAgICAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICMgIGRlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSMgICAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX01PTklUT1JfQkFTRSArIDB4NDAwMDApCisjICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKICMgICAgZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAKICNlbHNlCiAjICBkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTQkxCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ1MSwyMiArNDUxLDIyIEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotLyojZGVmaW5lIENGR19ISUQwX0lOSVQJCTAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkoSElEMF9JQ0UgIHxcCisvKiNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJKEhJRDBfSUNFICB8XAogCQkJIEhJRDBfRENFICB8XAogCQkJIEhJRDBfSUNGSSB8XAogCQkJIEhJRDBfRENJICB8XAogCQkJIEhJRDBfSUZFTSB8XAogCQkJIEhJRDBfQUJFKQogCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkoSElEMF9JQ0UgfCBISUQwX0lGRU0gfCBISUQwX0FCRSApCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJKEhJRDBfSUNFIHwgSElEMF9JRkVNIHwgSElEMF9BQkUgKQogCi0jZGVmaW5lIENGR19ISUQyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkJMAogCi0jZGVmaW5lIENGR19TWVBDUgkJMHhGRkZGRkZDMwotI2RlZmluZSBDRkdfQkNSCQkJMHgwMDRDMDAwMAotI2RlZmluZSBDRkdfU0lVTUNSCQkweDRFNjRDMDAwCi0jZGVmaW5lIENGR19TQ0NSCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJCTB4RkZGRkZGQzMKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IJCQkweDAwNEMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCQkweDRFNjRDMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkJMHgwMDAwMDAwMAogCiAvKglsb2NhbCBidXMgbWVtb3J5IG1hcAogICoKQEAgLTQ4MSwzMSArNDgxLDMxIEBACiAgKgkweEY4MzAwMDAwLTB4RjgzMDdGRkYJIDMyS0IJRUVQUk9NCiAgKgkweEZFMDAwMDAwLTB4RkZGRkZGRkYJIDMyTUIJZmxhc2gKICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkweEZFMDAxODAxCQkvKiBmbGFzaCAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkweEZFMDAwODM2Ci0jZGVmaW5lIENGR19CUjFfUFJFTElNCShDRkdfQkNTUiB8IDB4MTgwMSkJLyogQkNTUiAqLwotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkweEZGRkY4MDEwCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCTB4RjgzMDA4MDEJCS8qIEVFUFJPTSAqLwotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkweEZGRkY4ODQ2Ci0jZGVmaW5lIENGR19CUjVfUFJFTElNCTB4RjgxMDA4MDEJCS8qIFBNNTM1MCBBVE0gVU5JICovCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCTB4RkZGRjhFMzYKLSNkZWZpbmUgQ0ZHX0JSOF9QUkVMSU0JKENGR19QQ0lfSU5UIHwgMHgxODAxKQkvKiBQQ0kgaW50ZXJydXB0IGNvbnRyb2xsZXIgKi8KLSNkZWZpbmUgQ0ZHX09SOF9QUkVMSU0JMHhGRkZGODAxMAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JMHhGRTAwMTgwMQkJLyogZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCTB4RkUwMDA4MzYKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCShDT05GSUdfU1lTX0JDU1IgfCAweDE4MDEpCS8qIEJDU1IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCTB4RkZGRjgwMTAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCTB4RjgzMDA4MDEJCS8qIEVFUFJPTSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JMHhGRkZGODg0NgorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JMHhGODEwMDgwMQkJLyogUE01MzUwIEFUTSBVTkkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCTB4RkZGRjhFMzYKKyNkZWZpbmUgQ09ORklHX1NZU19CUjhfUFJFTElNCShDT05GSUdfU1lTX1BDSV9JTlQgfCAweDE4MDEpCS8qIFBDSSBpbnRlcnJ1cHQgY29udHJvbGxlciAqLworI2RlZmluZSBDT05GSUdfU1lTX09SOF9QUkVMSU0JMHhGRkZGODAxMAogCi0jZGVmaW5lIENGR19STVIJCQkweDAwMDEKLSNkZWZpbmUgQ0ZHX1RNQ05UU0MJCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKLSNkZWZpbmUgQ0ZHX1BJU0NSCQkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKLSNkZWZpbmUgQ0ZHX1JDQ1IJCTAKLSNkZWZpbmUgQ0ZHX01QVFBSCQkweDAwMDAxOTAwCi0jZGVmaW5lIENGR19QU1JUCQkweDAwMDAwMDIxCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQkJMHgwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQwkJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCQkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJCTB4MDAwMDE5MDAKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUCQkweDAwMDAwMDIxCiAKIC8qIFRoaXMgYWRkcmVzcyBtdXN0IG5vdCBleGlzdCAqLwotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweEZDRkZGRjAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweEZDRkZGRjAwCiAKIC8qIFBDSSBNZW1vcnkgbWFwIChpZiBkaWZmZXJlbnQgZnJvbSBkZWZhdWx0IG1hcCAqLwotI2RlZmluZSBDRkdfUENJX1NMVl9NRU1fTE9DQUwJQ0ZHX1NEUkFNX0JBU0UJCS8qIExvY2FsIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TTFZfTUVNX0JVUwkJMHgwMDAwMDAwMAkJLyogUENJIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BJQ01SMF9NQVNLX0FUVFJJQgkoUElDTVJfTUFTS181MTJNQiB8IFBJQ01SX0VOQUJMRSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9MT0NBTAlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCS8qIExvY2FsIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9CVVMJCTB4MDAwMDAwMDAJCS8qIFBDSSBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfUElDTVIwX01BU0tfQVRUUklCCShQSUNNUl9NQVNLXzUxMk1CIHwgUElDTVJfRU5BQkxFIHwgXAogCQkJCSBQSUNNUl9QUkVGRVRDSF9FTikKIAogLyoKQEAgLTUxNiwxMSArNTE2LDExIEBACiAgKi8KIAogLyogUENJQlIwICovCi0jZGVmaW5lIENGR19QQ0lfTVNUUjBfTE9DQUwJCTB4ODAwMDAwMDAJCS8qIExvY2FsIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BDSU1TSzBfTUFTSwkJUENJTVNLXzFHQgkJLyogU2l6ZSBvZiB3aW5kb3cgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUjBfTE9DQUwJCTB4ODAwMDAwMDAJCS8qIExvY2FsIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lNU0swX01BU0sJCVBDSU1TS18xR0IJCS8qIFNpemUgb2Ygd2luZG93ICovCiAvKiBQQ0lCUjEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSMV9MT0NBTAkJMHhGNDAwMDAwMAkJLyogTG9jYWwgYmFzZSAqLwotI2RlZmluZSBDRkdfUENJTVNLMV9NQVNLCQlQQ0lNU0tfNjRNQgkJLyogU2l6ZSBvZiB3aW5kb3cgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUjFfTE9DQUwJCTB4RjQwMDAwMDAJCS8qIExvY2FsIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lNU0sxX01BU0sJCVBDSU1TS182NE1CCQkvKiBTaXplIG9mIHdpbmRvdyAqLwogCiAvKgogICogTWFzdGVyIHdpbmRvdyB0aGF0IGFsbG93cyB0aGUgQ1BVIHRvIGFjY2VzcyBQQ0kgTWVtb3J5IChwcmVmZXRjaCkuCkBAIC01MjgsMTEgKzUyOCwxMSBAQAogICogaW4gdGhlIGJyaWRnZS4KICAqLwogCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9NRU1fTE9DQUwJMHg4MDAwMDAwMAkJCS8qIExvY2FsIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSX01FTV9CVVMJMHg4MDAwMDAwMAkJCS8qIFBDSSBiYXNlICAgKi8KLSNkZWZpbmUgQ0ZHX0NQVV9QQ0lfTUVNX1NUQVJUCVBDSV9NU1RSX01FTV9MT0NBTAotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNX1NJWkUJMHgyMDAwMDAwMAkJCS8qIDUxMk1CICovCi0jZGVmaW5lIENGR19QT0NNUjBfTUFTS19BVFRSSUIJKFBPQ01SX01BU0tfNTEyTUIgfCBQT0NNUl9FTkFCTEUgfCBQT0NNUl9QUkVGRVRDSF9FTikKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1fTE9DQUwJMHg4MDAwMDAwMAkJCS8qIExvY2FsIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1fQlVTCTB4ODAwMDAwMDAJCQkvKiBQQ0kgYmFzZSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVX1BDSV9NRU1fU1RBUlQJUENJX01TVFJfTUVNX0xPQ0FMCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfTUVNX1NJWkUJMHgyMDAwMDAwMAkJCS8qIDUxMk1CICovCisjZGVmaW5lIENPTkZJR19TWVNfUE9DTVIwX01BU0tfQVRUUklCCShQT0NNUl9NQVNLXzUxMk1CIHwgUE9DTVJfRU5BQkxFIHwgUE9DTVJfUFJFRkVUQ0hfRU4pCiAKIC8qCiAgKiBNYXN0ZXIgd2luZG93IHRoYXQgYWxsb3dzIHRoZSBDUFUgdG8gYWNjZXNzIFBDSSBNZW1vcnkgKG5vbi1wcmVmZXRjaCkuCkBAIC01NDAsMTEgKzU0MCwxMSBAQAogICogaW4gdGhlIGJyaWRnZS4KICAqLwogCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9NRU1JT19MT0NBTCAgICAweEEwMDAwMDAwCQkJLyogTG9jYWwgYmFzZSAqLwotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNSU9fQlVTCSAgICAweEEwMDAwMDAwCQkJLyogUENJIGJhc2UgICAqLwotI2RlZmluZSBDRkdfQ1BVX1BDSV9NRU1JT19TVEFSVAkgICAgUENJX01TVFJfTUVNSU9fTE9DQUwKLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSX01FTUlPX1NJWkUJICAgIDB4MjAwMDAwMDAJCQkvKiA1MTJNQiAqLwotI2RlZmluZSBDRkdfUE9DTVIxX01BU0tfQVRUUklCCSAgICAoUE9DTVJfTUFTS181MTJNQiB8IFBPQ01SX0VOQUJMRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1JT19MT0NBTCAgICAweEEwMDAwMDAwCQkJLyogTG9jYWwgYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX0JVUwkgICAgMHhBMDAwMDAwMAkJCS8qIFBDSSBiYXNlICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVfUENJX01FTUlPX1NUQVJUCSAgICBQQ0lfTVNUUl9NRU1JT19MT0NBTAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX1NJWkUJICAgIDB4MjAwMDAwMDAJCQkvKiA1MTJNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BPQ01SMV9NQVNLX0FUVFJJQgkgICAgKFBPQ01SX01BU0tfNTEyTUIgfCBQT0NNUl9FTkFCTEUpCiAKIC8qCiAgKiBNYXN0ZXIgd2luZG93IHRoYXQgYWxsb3dzIHRoZSBDUFUgdG8gYWNjZXNzIFBDSSBJTyBzcGFjZS4KQEAgLTU1MiwxMSArNTUyLDExIEBACiAgKiBpbiB0aGUgYnJpZGdlLgogICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSX0lPX0xPQ0FMCSAgICAweEY0MDAwMDAwCQkJLyogTG9jYWwgYmFzZSAqLwotI2RlZmluZSBDRkdfUENJX01TVFJfSU9fQlVTCSAgICAweEY0MDAwMDAwCQkJLyogUENJIGJhc2UgICAqLwotI2RlZmluZSBDRkdfQ1BVX1BDSV9JT19TVEFSVAkgICAgUENJX01TVFJfSU9fTE9DQUwKLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSX0lPX1NJWkUJICAgIDB4MDQwMDAwMDAJCQkvKiA2NE1CICovCi0jZGVmaW5lIENGR19QT0NNUjJfTUFTS19BVFRSSUIJICAgIChQT0NNUl9NQVNLXzY0TUIgfCBQT0NNUl9FTkFCTEUgfCBQT0NNUl9QQ0lfSU8pCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfSU9fTE9DQUwJICAgIDB4RjQwMDAwMDAJCQkvKiBMb2NhbCBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfSU9fQlVTCSAgICAweEY0MDAwMDAwCQkJLyogUENJIGJhc2UgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVV9QQ0lfSU9fU1RBUlQJICAgIFBDSV9NU1RSX0lPX0xPQ0FMCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfSU9fU0laRQkgICAgMHgwNDAwMDAwMAkJCS8qIDY0TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QT0NNUjJfTUFTS19BVFRSSUIJICAgIChQT0NNUl9NQVNLXzY0TUIgfCBQT0NNUl9FTkFCTEUgfCBQT0NNUl9QQ0lfSU8pCiAKIC8qCiAgKiBKRkZTMiBwYXJ0aXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODMxM0VSREIuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzEzRVJEQi5oCmluZGV4IDMwYzQyNDMuLmZjM2ZhMTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4MzEzRVJEQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzEzRVJEQi5oCkBAIC00OSw5ICs0OSw5IEBACiAjZGVmaW5lIENPTkZJR19WU0M3Mzg1X0VORVQKICNkZWZpbmUgQ09ORklHX1RTRUMyCiAKLSNpZmRlZiBDRkdfNjZNSFoKKyNpZmRlZiBDT05GSUdfU1lTXzY2TUhaCiAjZGVmaW5lIENPTkZJR184M1hYX0NMS0lOCTY2NjY2NjY3CS8qIGluIEh6ICovCi0jZWxpZiBkZWZpbmVkKENGR18zM01IWikKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU18zM01IWikKICNkZWZpbmUgQ09ORklHXzgzWFhfQ0xLSU4JMzMzMzMzMzMJLyogaW4gSHogKi8KICNlbHNlCiAjZXJyb3IgVW5rbm93biBvc2NpbGxhdG9yIGZyZXF1ZW5jeS4KQEAgLTYxLDIzICs2MSwyMyBAQAogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YJCS8qIGNhbGwgYm9hcmRfcHJlX2luaXQgKi8KIAotI2RlZmluZSBDRkdfSU1NUgkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RTAwMDAwMDAKIAogI2lmIGRlZmluZWQoQ09ORklHX05BTkRfVV9CT09UKSAmJiAhZGVmaW5lZChDT05GSUdfTkFORF9TUEwpCi0jZGVmaW5lIENPTkZJR19ERUZBVUxUX0lNTVIJQ0ZHX0lNTVIKKyNkZWZpbmUgQ09ORklHX0RFRkFVTFRfSU1NUglDT05GSUdfU1lTX0lNTVIKICNlbmRpZgogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDEwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA3ZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDdmMDAwMDAKIAogLyogRWFybHkgcmV2cyBvZiB0aGlzIGJvYXJkIHdpbGwgbG9jayB1cCBoYXJkIHdoZW4gYXR0ZW1wdGluZwogICogdG8gYWNjZXNzIHRoZSBQTUMgcmVnaXN0ZXJzLCB1bmxlc3MgYSBKVEFHIGRlYnVnZ2VyIGlzCiAgKiBjb25uZWN0ZWQsIG9yIHNvbWUgcmVzaXN0b3IgbW9kaWZpY2F0aW9ucyBhcmUgbWFkZS4KICAqLwotI2RlZmluZSBDRkdfODMxM0VSREJfQlJPS0VOX1BNQyAxCisjZGVmaW5lIENPTkZJR19TWVNfODMxM0VSREJfQlJPS0VOX1BNQyAxCiAKLSNkZWZpbmUgQ0ZHX0FDUl9QSVBFX0RFUAkzCS8qIEFyYml0ZXIgcGlwZWxpbmUgZGVwdGggKDAtMykgKi8KLSNkZWZpbmUgQ0ZHX0FDUl9SUFRDTlQJCTMJLyogQXJiaXRlciByZXBlYXQgY291bnQgKDAtNykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1JfUElQRV9ERVAJMwkvKiBBcmJpdGVyIHBpcGVsaW5lIGRlcHRoICgwLTMpICovCisjZGVmaW5lIENPTkZJR19TWVNfQUNSX1JQVENOVAkJMwkvKiBBcmJpdGVyIHJlcGVhdCBjb3VudCAoMC03KSAqLwogCiAvKgogICogRGV2aWNlIGNvbmZpZ3VyYXRpb25zCkBAIC05OCwyMiArOTgsMjIgQEAKIC8qCiAgKiBERFIgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfRERSX0JBU0UJCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9CQVNFCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQlDRkdfRERSX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQkFTRQkJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCUNPTkZJR19TWVNfRERSX0JBU0UKIAogLyoKICAqIE1hbnVhbGx5IHNldCB1cCBERFIgcGFyYW1ldGVycywgYXMgdGhpcyBib2FyZCBkb2VzIG5vdAogICogc2VlbSB0byBoYXZlIHRoZSBTUEQgY29ubmVjdGVkIHRvIEkyQy4KICAqLwotI2RlZmluZSBDRkdfRERSX1NJWkUJCTEyOAkJLyogTUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DT05GSUcJCSggQ1NDT05GSUdfRU4gXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TSVpFCQkxMjgJCS8qIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTkZJRwkJKCBDU0NPTkZJR19FTiBcCiAJCQkJfCAweDAwMDEwMDAwIC8qIFRPRE8gKi8gXAogCQkJCXwgQ1NDT05GSUdfUk9XX0JJVF8xMyB8IENTQ09ORklHX0NPTF9CSVRfMTAgKQogCQkJCS8qIDB4ODAwMTAxMDIgKi8KIAotI2RlZmluZSBDRkdfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMAkoICggMCA8PCBUSU1JTkdfQ0ZHMF9SV1RfU0hJRlQgKSBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzAJKCAoIDAgPDwgVElNSU5HX0NGRzBfUldUX1NISUZUICkgXAogCQkJCXwgKCAwIDw8IFRJTUlOR19DRkcwX1dSVF9TSElGVCApIFwKIAkJCQl8ICggMCA8PCBUSU1JTkdfQ0ZHMF9SUlRfU0hJRlQgKSBcCiAJCQkJfCAoIDAgPDwgVElNSU5HX0NGRzBfV1dUX1NISUZUICkgXApAQCAtMTIyLDcgKzEyMiw3IEBACiAJCQkJfCAoIDggPDwgVElNSU5HX0NGRzBfT0RUX1BEX0VYSVRfU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzBfTVJTX0NZQ19TSElGVCApICkKIAkJCQkvKiAweDAwMjIwODAyICovCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJKCAoIDMgPDwgVElNSU5HX0NGRzFfUFJFVE9BQ1RfU0hJRlQgKSBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCSggKCAzIDw8IFRJTUlOR19DRkcxX1BSRVRPQUNUX1NISUZUICkgXAogCQkJCXwgKCA4IDw8IFRJTUlOR19DRkcxX0FDVFRPUFJFX1NISUZUICkgXAogCQkJCXwgKCAzIDw8IFRJTUlOR19DRkcxX0FDVFRPUldfU0hJRlQgKSBcCiAJCQkJfCAoIDUgPDwgVElNSU5HX0NGRzFfQ0FTTEFUX1NISUZUICkgXApAQCAtMTMxLDcgKzEzMSw3IEBACiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzFfQUNUVE9BQ1RfU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzFfV1JUT1JEX1NISUZUICkgKQogCQkJCS8qIDB4MzgzNWEzMjIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkoICggMSA8PCBUSU1JTkdfQ0ZHMl9BRERfTEFUX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMgkoICggMSA8PCBUSU1JTkdfQ0ZHMl9BRERfTEFUX1NISUZUICkgXAogCQkJCXwgKCA1IDw8IFRJTUlOR19DRkcyX0NQT19TSElGVCApIFwKIAkJCQl8ICggMiA8PCBUSU1JTkdfQ0ZHMl9XUl9MQVRfREVMQVlfU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzJfUkRfVE9fUFJFX1NISUZUICkgXApAQCAtMTM5LDMwICsxMzksMzAgQEAKIAkJCQl8ICggMyA8PCBUSU1JTkdfQ0ZHMl9DS0VfUExTX1NISUZUICkgXAogCQkJCXwgKCA2IDw8IFRJTUlOR19DRkcyX0ZPVVJfQUNUX1NISUZUKSApCiAJCQkJLyogMHgxMjkwNDhjNiAqLyAvKiBQOS00NSxtYXkgbmVlZCB0dW5pbmcgKi8KLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkoICggMTI5NiA8PCBTRFJBTV9JTlRFUlZBTF9SRUZJTlRfU0hJRlQgKSBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0lOVEVSVkFMCSggKCAxMjk2IDw8IFNEUkFNX0lOVEVSVkFMX1JFRklOVF9TSElGVCApIFwKIAkJCQl8ICggMTI4MCA8PCBTRFJBTV9JTlRFUlZBTF9CU1RPUFJFX1NISUZUICkgKQogCQkJCS8qIDB4MDUxMDA1MDAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19ERFJfMlRfVElNSU5HKQotI2RlZmluZSBDRkdfU0RSQU1fQ0ZHCQkoIFNEUkFNX0NGR19TUkVOIFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcJCSggU0RSQU1fQ0ZHX1NSRU4gXAogCQkJCXwgU0RSQU1fQ0ZHX1NEUkFNX1RZUEVfRERSMiBcCiAJCQkJfCBTRFJBTV9DRkdfMlRfRU4gXAogCQkJCXwgU0RSQU1fQ0ZHX0RCV18zMiApCiAjZWxzZQotI2RlZmluZSBDRkdfU0RSQU1fQ0ZHCQkoIFNEUkFNX0NGR19TUkVOIFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcJCSggU0RSQU1fQ0ZHX1NSRU4gXAogCQkJCXwgU0RSQU1fQ0ZHX1NEUkFNX1RZUEVfRERSMiBcCiAJCQkJfCBTRFJBTV9DRkdfMzJfQkUgKQogCQkJCS8qIDB4NDMwODAwMDAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfU0RSQU1fQ0ZHMgkJMHgwMDQwMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NGRzIJCTB4MDA0MDEwMDAKIC8qIHNldCBidXJzdCBsZW5ndGggdG8gOCBmb3IgMzItYml0IGRhdGEgcGF0aCAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCSggKCAweDQ0NDggPDwgU0RSQU1fTU9ERV9FU0RfU0hJRlQgKSBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCSggKCAweDQ0NDggPDwgU0RSQU1fTU9ERV9FU0RfU0hJRlQgKSBcCiAJCQkJfCAoIDB4MDYzMiA8PCBTRFJBTV9NT0RFX1NEX1NISUZUICkgKQogCQkJCS8qIDB4NDQ0ODA2MzIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFXzIJCTB4ODAwMEMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERV8yCQkweDgwMDBDMDAwCiAKLSNkZWZpbmUgQ0ZHX0REUl9DTEtfQ05UTAlERFJfU0RSQU1fQ0xLX0NOVExfQ0xLX0FESlVTVF8wNQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DTEtfQ05UTAlERFJfU0RSQU1fQ0xLX0NOVExfQ0xLX0FESlVTVF8wNQogCQkJCS8qMHgwMjAwMDAwMCovCi0jZGVmaW5lIENGR19ERFJDRFJfVkFMVUUJKCBERFJDRFJfRU4gXAorI2RlZmluZSBDT05GSUdfU1lTX0REUkNEUl9WQUxVRQkoIEREUkNEUl9FTiBcCiAJCQkJfCBERFJDRFJfUFpfTk9NWiBcCiAJCQkJfCBERFJDRFJfTlpfTk9NWiBcCiAJCQkJfCBERFJDRFJfTV9PRFIgKQpAQCAtMTcwLDg2ICsxNzAsODYgQEAKIC8qCiAgKiBGTEFTSCBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCQkvKiB1c2UgdGhlIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJLyogdXNlIHRoZSBDRkkgZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTgJCS8qIGZsYXNoIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJCS8qIGRpc3BsYXkgZW1wdHkgc2VjdG9ycyAqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkJLyogYnVmZmVyIHVwIG11bHRpcGxlIGJ5dGVzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJOAkJLyogZmxhc2ggc2l6ZSBpbiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCQkvKiBkaXNwbGF5IGVtcHR5IHNlY3RvcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCQkvKiBidWZmZXIgdXAgbXVsdGlwbGUgYnl0ZXMgKi8KIAotI2RlZmluZSBDRkdfTk9SX0JSX1BSRUxJTQkoQ0ZHX0ZMQVNIX0JBU0UgfAkvKiBmbGFzaCBCYXNlIGFkZHJlc3MgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX05PUl9CUl9QUkVMSU0JKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8CS8qIGZsYXNoIEJhc2UgYWRkcmVzcyAqLyBcCiAJCQkJKDIgPDwgQlJfUFNfU0hJRlQpIHwJLyogMTYgYml0IHBvcnQgc2l6ZSAqLyBcCiAJCQkJQlJfVikJCQkvKiB2YWxpZCAqLwotI2RlZmluZSBDRkdfTk9SX09SX1BSRUxJTQkoIDB4RkY4MDAwMDAJCS8qIDggTUJ5dGUgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX05PUl9PUl9QUkVMSU0JKCAweEZGODAwMDAwCQkvKiA4IE1CeXRlICovIFwKIAkJCQl8IE9SX0dQQ01fWEFDUyBcCiAJCQkJfCBPUl9HUENNX1NDWV85IFwKIAkJCQl8IE9SX0dQQ01fRUhUUiBcCiAJCQkJfCBPUl9HUENNX0VBRCApCiAJCQkJLyogMHhGRjAwNkZGNwlUT0RPIFNMT1cgMTYgTUIgZmxhc2ggc2l6ZSAqLwotI2RlZmluZSBDRkdfTEJMQVdCQVIwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRQkvKiB3aW5kb3cgYmFzZSBhdCBmbGFzaCBiYXNlICovCi0jZGVmaW5lIENGR19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxNwkvKiAxNiBNQiB3aW5kb3cgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIHdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxNwkvKiAxNiBNQiB3aW5kb3cgc2l6ZSAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMzUJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzUJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKSAmJiAhZGVmaW5lZChDT05GSUdfTkFORF9TUEwpCi0jZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKSAmJiAhZGVmaW5lZChDT05GSUdfTkFORF9TUEwpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweEZEMDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RkQwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkweDEwMAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotLyogQ0ZHX01PTklUT1JfTEVOIG11c3QgYmUgYSBtdWx0aXBsZSBvZiBDT05GSUdfRU5WX1NFQ1RfU0laRSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworLyogQ09ORklHX1NZU19NT05JVE9SX0xFTiBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgQ09ORklHX0VOVl9TRUNUX1NJWkUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKgogICogTG9jYWwgQnVzIExDUlIgYW5kIExCQ1IgcmVncwogICovCi0jZGVmaW5lIENGR19MQ1JSCUxDUlJfRUFEQ18xIHwgTENSUl9DTEtESVZfNAotI2RlZmluZSBDRkdfTEJDX0xCQ1IJKCAweDAwMDQwMDAwIC8qIFRPRE8gKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX0xDUlIJTENSUl9FQURDXzEgfCBMQ1JSX0NMS0RJVl80CisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJKCAweDAwMDQwMDAwIC8qIFRPRE8gKi8gXAogCQkJfCAoMHhGRiA8PCBMQkNSX0JNVF9TSElGVCkgXAogCQkJfCAweEYgKQkvKiAweDAwMDRmZjBmICovCiAKLSNkZWZpbmUgQ0ZHX0xCQ19NUlRQUgkweDIwMDAwMDAwICAvKlRPRE8gKi8JLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsLCAyNjZNSHovMzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJMHgyMDAwMDAwMCAgLypUT0RPICovCS8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCwgMjY2TUh6LzMyICovCiAKIC8qIGRyaXZlcnMvbXRkL25hbmQvbmFuZC5jICovCiAjaWZkZWYgQ09ORklHX05BTkRfU1BMCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCTB4RkZGMDAwMDAKICNlbHNlCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4RTI4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCTB4RTI4MDAwMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkxCiAjZGVmaW5lIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUKICNkZWZpbmUgQ09ORklHX0NNRF9OQU5EIDEKICNkZWZpbmUgQ09ORklHX05BTkRfRlNMX0VMQkMgMQotI2RlZmluZSBDRkdfTkFORF9CTE9DS19TSVpFIDE2Mzg0CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFIDE2Mzg0CiAKLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX1NJWkUgICg1MTIgPDwgMTApCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9EU1QgICAweDAwMTAwMDAwCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9TVEFSVCAweDAwMTAwMTAwCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9PRkZTICAxNjM4NAotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfUkVMT0MgMHgwMDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NJWkUgICg1MTIgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfRFNUICAgMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NUQVJUIDB4MDAxMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9PRkZTICAxNjM4NAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1JFTE9DIDB4MDAwMTAwMDAKIAotI2RlZmluZSBDRkdfTkFORF9CUl9QUkVMSU0JKCBDRkdfTkFORF9CQVNFIFwKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JSX1BSRUxJTQkoIENPTkZJR19TWVNfTkFORF9CQVNFIFwKIAkJCQl8ICgyPDxCUl9ERUNDX1NISUZUKQkvKiBVc2UgSFcgRUNDICovIFwKIAkJCQl8IEJSX1BTXzgJCS8qIFBvcnQgU2l6ZSA9IDggYml0ICovIFwKIAkJCQl8IEJSX01TX0ZDTQkJLyogTVNFTCA9IEZDTSAqLyBcCiAJCQkJfCBCUl9WICkJCS8qIHZhbGlkICovCi0jZGVmaW5lIENGR19OQU5EX09SX1BSRUxJTQkoIDB4RkZGRjgwMDAJCS8qIGxlbmd0aCAzMksgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfT1JfUFJFTElNCSggMHhGRkZGODAwMAkJLyogbGVuZ3RoIDMySyAqLyBcCiAJCQkJfCBPUl9GQ01fQ1NDVCBcCiAJCQkJfCBPUl9GQ01fQ1NUIFwKIAkJCQl8IE9SX0ZDTV9DSFQgXApAQCAtMjU5LDM5ICsyNTksMzkgQEAKIAkJCQkvKiAweEZGRkY4Mzk2ICovCiAKICNpZmRlZiBDT05GSUdfTkFORF9VX0JPT1QKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0gQ0ZHX05BTkRfQlJfUFJFTElNCi0jZGVmaW5lIENGR19PUjBfUFJFTElNIENGR19OQU5EX09SX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTSBDRkdfTk9SX0JSX1BSRUxJTQotI2RlZmluZSBDRkdfT1IxX1BSRUxJTSBDRkdfTk9SX09SX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0gQ09ORklHX1NZU19OQU5EX0JSX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0gQ09ORklHX1NZU19OQU5EX09SX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0gQ09ORklHX1NZU19OT1JfQlJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTSBDT05GSUdfU1lTX05PUl9PUl9QUkVMSU0KICNlbHNlCi0jZGVmaW5lIENGR19CUjBfUFJFTElNIENGR19OT1JfQlJfUFJFTElNCi0jZGVmaW5lIENGR19PUjBfUFJFTElNIENGR19OT1JfT1JfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNIENGR19OQU5EX0JSX1BSRUxJTQotI2RlZmluZSBDRkdfT1IxX1BSRUxJTSBDRkdfTkFORF9PUl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNIENPTkZJR19TWVNfTk9SX0JSX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0gQ09ORklHX1NZU19OT1JfT1JfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTSBDT05GSUdfU1lTX05BTkRfQlJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTSBDT05GSUdfU1lTX05BTkRfT1JfUFJFTElNCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTEJMQVdCQVIxX1BSRUxJTQlDRkdfTkFORF9CQVNFCi0jZGVmaW5lIENGR19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRQkvKiAzMktCICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMV9QUkVMSU0JQ09ORklHX1NZU19OQU5EX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRQkvKiAzMktCICAqLwogCi0jZGVmaW5lIENGR19OQU5EX0xCTEFXQkFSX1BSRUxJTSBDRkdfTEJMQVdCQVIxX1BSRUxJTQotI2RlZmluZSBDRkdfTkFORF9MQkxBV0FSX1BSRUxJTSBDRkdfTEJMQVdBUjFfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9MQkxBV0JBUl9QUkVMSU0gQ09ORklHX1NZU19MQkxBV0JBUjFfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9MQkxBV0FSX1BSRUxJTSBDT05GSUdfU1lTX0xCTEFXQVIxX1BSRUxJTQogCiAvKiBsb2NhbCBidXMgcmVhZCB3cml0ZSBidWZmZXIgbWFwcGluZyAqLwotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkJMHhGQTAwMDgwMQkvKiBtYXAgYXQgMHhGQTAwMDAwMCAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJMHhGRkZGOEZGNwkvKiAzMmtCICovCi0jZGVmaW5lIENGR19MQkxBV0JBUjNfUFJFTElNCTB4RkEwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIzX1BSRUxJTQkweDgwMDAwMDBFCS8qIDMyS0IgICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkJMHhGQTAwMDgwMQkvKiBtYXAgYXQgMHhGQTAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCTB4RkZGRjhGRjcJLyogMzJrQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSM19QUkVMSU0JMHhGQTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIzX1BSRUxJTQkweDgwMDAwMDBFCS8qIDMyS0IgICovCiAKIC8qIFZpdGVzc2UgNzM4NSAqLwogCi0jZGVmaW5lIENGR19WU0M3Mzg1X0JBU0UJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1ZTQzczODVfQkFTRQkweEYwMDAwMDAwCiAKICNpZmRlZiBDT05GSUdfVlNDNzM4NV9FTkVUCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4ZjAwMDA4MDEJLyogVlNDNzM4NSBCYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4ZmZmZTA5ZmYJLyogVlNDNzM4NSwgMTI4SyBieXRlcyovCi0jZGVmaW5lIENGR19MQkxBV0JBUjJfUFJFTElNCUNGR19WU0M3Mzg1X0JBU0UvKiBBY2Nlc3Mgd2luZG93IGJhc2UgYXQgVlNDNzM4NSBiYXNlICovCi0jZGVmaW5lIENGR19MQkxBV0FSMl9QUkVMSU0JMHg4MDAwMDAxMAkvKiBBY2Nlc3Mgd2luZG93IHNpemUgMTI4SyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4ZjAwMDA4MDEJLyogVlNDNzM4NSBCYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweGZmZmUwOWZmCS8qIFZTQzczODUsIDEyOEsgYnl0ZXMqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMl9QUkVMSU0JQ09ORklHX1NZU19WU0M3Mzg1X0JBU0UvKiBBY2Nlc3Mgd2luZG93IGJhc2UgYXQgVlNDNzM4NSBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjJfUFJFTElNCTB4ODAwMDAwMTAJLyogQWNjZXNzIHdpbmRvdyBzaXplIDEyOEsgKi8KIAogI2VuZGlmCiAKQEAgLTMwNCw0NyArMzA0LDQ3IEBACiAgKiBTZXJpYWwgUG9ydAogICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19JTU1SKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0lNTVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19JTU1SKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfSU1NUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKIAogLyogSTJDICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI2RlZmluZSBDT05GSUdfRlNMX0kyQwogI2RlZmluZSBDT05GSUdfSTJDX01VTFRJX0JVUwogI2RlZmluZSBDT05GSUdfSTJDX0NNRF9UUkVFCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXt7MCwweDY5fX0gLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAotI2RlZmluZSBDRkdfSTJDMl9PRkZTRVQJCTB4MzEwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7ezAsMHg2OX19IC8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDMl9PRkZTRVQJCTB4MzEwMAogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KICAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJMV9NTUlPX0JBU0UJMHg5MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NTUlPX1BIWVMJQ0ZHX1BDSTFfTU1JT19CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01NSU9fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1BIWVMJMHhFMjAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UJMHg5MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTCUNPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweEUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KIAogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3CS8qIE1vdG9yb2xhICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcJLyogTW90b3JvbGEgKi8KIAogLyoKICAqIFRTRUMKQEAgLTM1Nyw3ICszNTcsNyBAQAogI2lmZGVmIENPTkZJR19UU0VDMQogI2RlZmluZSBDT05GSUdfSEFTX0VUSDAKICNkZWZpbmUgQ09ORklHX1RTRUMxX05BTUUJIlRTRUMwIgotI2RlZmluZSBDRkdfVFNFQzFfT0ZGU0VUCTB4MjQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMV9PRkZTRVQJMHgyNDAwMAogI2RlZmluZSBUU0VDMV9QSFlfQUREUgkJMHgxYwogI2RlZmluZSBUU0VDMV9GTEFHUwkJVFNFQ19HSUdBQklUCiAjZGVmaW5lIFRTRUMxX1BIWUlEWAkJMApAQCAtMzY2LDcgKzM2Niw3IEBACiAjaWZkZWYgQ09ORklHX1RTRUMyCiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQogI2RlZmluZSBDT05GSUdfVFNFQzJfTkFNRQkiVFNFQzEiCi0jZGVmaW5lIENGR19UU0VDMl9PRkZTRVQJMHgyNTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMyX09GRlNFVAkweDI1MDAwCiAjZGVmaW5lIFRTRUMyX1BIWV9BRERSCQk0CiAjZGVmaW5lIFRTRUMyX0ZMQUdTCQlUU0VDX0dJR0FCSVQKICNkZWZpbmUgVFNFQzJfUEhZSURYCQkwCkBAIC0zODAsNyArMzgwLDcgQEAKICAqIENvbmZpZ3VyZSBvbi1ib2FyZCBSVEMKICAqLwogI2RlZmluZSBDT05GSUdfUlRDX0RTMTMzNwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCQkweDY4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCQkweDY4CiAKIC8qCiAgKiBFbnZpcm9ubWVudApAQCAtMzg4LDI2ICszODgsMjYgQEAKICNpZiBkZWZpbmVkKENPTkZJR19OQU5EX1VfQk9PVCkKIAkjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTkFORAkxCiAJI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKDUxMiAqIDEwMjQpCi0JI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQlDRkdfTkFORF9CTE9DS19TSVpFCisJI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQlDT05GSUdfU1lTX05BTkRfQkxPQ0tfU0laRQogCSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlDT05GSUdfRU5WX1NFQ1RfU0laRQogCSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAlDT05GSUdfRU5WX1NJWkUKIAkjZGVmaW5lIENPTkZJR19FTlZfUkFOR0UJCShDT05GSUdfRU5WX1NFQ1RfU0laRSAqIDQpCiAJI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUICsgQ09ORklHX0VOVl9SQU5HRSkKLSNlbGlmICFkZWZpbmVkKENGR19SQU1CT09UKQorI2VsaWYgIWRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogCSNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAkvKiA2NEsob25lIHNlY3RvcikgZm9yIGVudiAqLwogCSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjZWxzZQogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTQzMCw3ICs0MzAsNyBAQAogI2RlZmluZSBDT05GSUdfQ01EX0RBVEUKICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpICYmICFkZWZpbmVkKENPTkZJR19OQU5EX1VfQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkgJiYgIWRlZmluZWQoQ09ORklHX05BTkRfVV9CT09UKQogICAgICN1bmRlZiBDT05GSUdfQ01EX0VOVgogICAgICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTQ0MSwzMCArNDQxLDMwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KIAotI2RlZmluZSBDRkdfUkNXSF9QQ0lIT1NUIDB4ODAwMDAwMDAJLyogUENJSE9TVCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SQ1dIX1BDSUhPU1QgMHg4MDAwMDAwMAkvKiBQQ0lIT1NUICAqLwogCi0jaWZkZWYgQ0ZHXzY2TUhaCisjaWZkZWYgQ09ORklHX1NZU182Nk1IWgogCiAvKiA2Nk1IeiBJTiwgMTMzTUh6IENTQiwgMjY2IEREUiwgMjY2IENPUkUgKi8KIC8qIDB4NjIwNDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAkweDIwMDAwMDAwIC8qIHJlc2VydmVkLCBtdXN0IGJlIHNldCAqLyB8XAogCUhSQ1dMX0REUkNNIHxcCiAJSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLXzFYMSB8XApAQCAtNDcyLDEzICs0NzIsMTMgQEAKIAlIUkNXTF9DU0JfVE9fQ0xLSU5fMlgxIHxcCiAJSFJDV0xfQ09SRV9UT19DU0JfMlgxKQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSyAoQ09ORklHXzgzWFhfQ0xLSU4gKiAyKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLIChDT05GSUdfODNYWF9DTEtJTiAqIDIpCiAKLSNlbGlmIGRlZmluZWQoQ0ZHXzMzTUhaKQorI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTXzMzTUhaKQogCiAvKiAzM01IeiBJTiwgMTY1TUh6IENTQiwgMzMwIEREUiwgMzMwIENPUkUgKi8KIC8qIDB4NjUwNDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAkweDIwMDAwMDAwIC8qIHJlc2VydmVkLCBtdXN0IGJlIHNldCAqLyB8XAogCUhSQ1dMX0REUkNNIHxcCiAJSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLXzFYMSB8XApAQCAtNDg2LDExICs0ODYsMTEgQEAKIAlIUkNXTF9DU0JfVE9fQ0xLSU5fNVgxIHxcCiAJSFJDV0xfQ09SRV9UT19DU0JfMlgxKQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSyAoQ09ORklHXzgzWFhfQ0xLSU4gKiA1KQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLIChDT05GSUdfODNYWF9DTEtJTiAqIDUpCiAKICNlbmRpZgogCi0jZGVmaW5lIENGR19IUkNXX0hJR0hfQkFTRSAoXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfSElHSF9CQVNFIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRU5BQkxFIHxcCiAJSFJDV0hfQ09SRV9FTkFCTEUgfFwKQEAgLTUwMSw3MiArNTAxLDcyIEBACiAJSFJDV0hfQklHX0VORElBTikKIAogI2lmZGVmIENPTkZJR19OQU5EX1NQTAotI2RlZmluZSBDRkdfSFJDV19ISUdIIChDRkdfSFJDV19ISUdIX0JBU0UgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKENPTkZJR19TWVNfSFJDV19ISUdIX0JBU0UgfFwKIAkJICAgICAgIEhSQ1dIX0ZST01fMFhGRkYwMDEwMCB8XAogCQkgICAgICAgSFJDV0hfUk9NX0xPQ19OQU5EX1NQXzhCSVQgfFwKIAkJICAgICAgIEhSQ1dIX1JMX0VYVF9OQU5EKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hSQ1dfSElHSCAoQ0ZHX0hSQ1dfSElHSF9CQVNFIHxcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChDT05GSUdfU1lTX0hSQ1dfSElHSF9CQVNFIHxcCiAJCSAgICAgICBIUkNXSF9GUk9NXzBYMDAwMDAxMDAgfFwKIAkJICAgICAgIEhSQ1dIX1JPTV9MT0NfTE9DQUxfMTZCSVQgfFwKIAkJICAgICAgIEhSQ1dIX1JMX0VYVF9MRUdBQ1kpCiAjZW5kaWYKIAogLyogU3lzdGVtIElPIENvbmZpZyAqLwotI2RlZmluZSBDRkdfU0lDUkgJKFNJQ1JIX1RTT0JJMSB8IFNJQ1JIX1RTT0JJMikJLyogUkdNSUkgKi8KLSNkZWZpbmUgQ0ZHX1NJQ1JMCVNJQ1JMX1VTQkRSCQkJLyogRW5hYmxlIEludGVybmFsIFVTQiBQaHkgICovCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkgJKFNJQ1JIX1RTT0JJMSB8IFNJQ1JIX1RTT0JJMikJLyogUkdNSUkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSTAlTSUNSTF9VU0JEUgkJCS8qIEVuYWJsZSBJbnRlcm5hbCBVU0IgUGh5ICAqLwogCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJMHgwMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJKEhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCTB4MDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkoSElEMF9FTkFCTEVfTUFDSElORV9DSEVDSyB8IFwKIAkJCSBISUQwX0VOQUJMRV9EWU5BTUlDX1BPV0VSX01BTkFHTUVOVCkKIAotI2RlZmluZSBDRkdfSElEMiBISUQyX0hCRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIgSElEMl9IQkUKIAogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCTEJLyogSGlnaCBCQVRzIHN1cHBvcnRlZCAqLwogCiAvKiBERFIgQCAweDAwMDAwMDAwICovCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogUENJIEAgMHg4MDAwMDAwMCAqLwotI2RlZmluZSBDRkdfSUJBVDFMCShDRkdfUENJMV9NRU1fQkFTRSB8IEJBVExfUFBfMTApCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMkwJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUMlUJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUTF9QUF8xMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkoQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCShDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIFBDSTIgbm90IHN1cHBvcnRlZCBvbiA4MzEzICovCi0jZGVmaW5lIENGR19JQkFUM0wJKDApCi0jZGVmaW5lIENGR19JQkFUM1UJKDApCi0jZGVmaW5lIENGR19JQkFUNEwJKDApCi0jZGVmaW5lIENGR19JQkFUNFUJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRVCSgwKQogCiAvKiBJTU1SQkFSIEAgMHhFMDAwMDAwMCwgUENJIElPIEAgMHhFMjAwMDAwMCAmIEJDU1IgQCAweEUyNDAwMDAwICovCi0jZGVmaW5lIENGR19JQkFUNUwJKENGR19JTU1SIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQkoQ0ZHX0lNTVIgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNUwJKENPTkZJR19TWVNfSU1NUiB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVVCShDT05GSUdfU1lTX0lNTVIgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogU0RSQU0gQCAweEYwMDAwMDAwLCBzdGFjayBpbiBEQ0FDSEUgMHhGREYwMDAwMCAmIEZMQVNIIEAgMHhGRTAwMDAwMCAqLwotI2RlZmluZSBDRkdfSUJBVDZMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQ3TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ3VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN0wJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVCSgwKQogCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKLSNkZWZpbmUgQ0ZHX0RCQVQ0TAlDRkdfSUJBVDRMCi0jZGVmaW5lIENGR19EQkFUNFUJQ0ZHX0lCQVQ0VQotI2RlZmluZSBDRkdfREJBVDVMCUNGR19JQkFUNUwKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQlDRkdfSUJBVDVVCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAlDRkdfSUJBVDdMCi0jZGVmaW5lIENGR19EQkFUN1UJQ0ZHX0lCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAlDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQlDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAlDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0TAlDT05GSUdfU1lTX0lCQVQ0TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0VQlDT05GSUdfU1lTX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAlDT05GSUdfU1lTX0lCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQlDT05GSUdfU1lTX0lCQVQ1VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAlDT05GSUdfU1lTX0lCQVQ2TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQlDT05GSUdfU1lTX0lCQVQ2VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TAlDT05GSUdfU1lTX0lCQVQ3TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VQlDT05GSUdfU1lTX0lCQVQ3VQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4MzE1RVJEQi5oIGIvaW5jbHVkZS9jb25maWdzL01QQzgzMTVFUkRCLmgKaW5kZXggODNmNjRjNi4uMTIyNTI3MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzgzMTVFUkRCLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzgzMTVFUkRCLmgKQEAgLTQ1LDEzICs0NSwxMyBAQAogICogaWYgQ0xLSU4gaXMgNjYuNjZNSHosIHRoZW4KICAqIENTQiA9IDEzM01IeiwgQ09SRSA9IDQwME1IeiwgRERSQyA9IDI2Nk1IeiwgTEJDID0gMTMzTUh6CiAgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMlgxIHxcCiAJSFJDV0xfU1ZDT0RfRElWXzIgfFwKIAlIUkNXTF9DU0JfVE9fQ0xLSU5fMlgxIHxcCiAJSFJDV0xfQ09SRV9UT19DU0JfM1gxKQotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRU5BQkxFIHxcCiAJSFJDV0hfQ09SRV9FTkFCTEUgfFwKQEAgLTY4LDMxICs2OCwzMSBAQAogLyoKICAqIFN5c3RlbSBJTyBDb25maWcKICAqLwotI2RlZmluZSBDRkdfU0lDUkgJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NJQ1JMCQkweDAwMDAwMDAwIC8qIDMuM1YsIG5vIGRlbGF5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkgJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSTAkJMHgwMDAwMDAwMCAvKiAzLjNWLCBubyBkZWxheSAqLwogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgLyogY2FsbCBib2FyZF9wcmVfaW5pdCAqLwogCiAvKgogICogSU1NUiBuZXcgYWRkcmVzcwogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhFMDAwMDAwMAogCiAvKgogICogQXJiaXRlciBTZXR1cAogICovCi0jZGVmaW5lIENGR19BQ1JfUElQRV9ERVAJMyAvKiBBcmJpdGVyIHBpcGVsaW5lIGRlcHRoIGlzIDQgKi8KLSNkZWZpbmUgQ0ZHX0FDUl9SUFRDTlQJCTMgLyogQXJiaXRlciByZXBlYXQgY291bnQgaXMgNCAqLwotI2RlZmluZSBDRkdfU1BDUl9UU0VDRVAJCTMgLyogZVRTRUMgZW1lcmdlbmN5IHByaW9yaXR5IGlzIGhpZ2hlc3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1JfUElQRV9ERVAJMyAvKiBBcmJpdGVyIHBpcGVsaW5lIGRlcHRoIGlzIDQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1JfUlBUQ05UCQkzIC8qIEFyYml0ZXIgcmVwZWF0IGNvdW50IGlzIDQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUENSX1RTRUNFUAkJMyAvKiBlVFNFQyBlbWVyZ2VuY3kgcHJpb3JpdHkgaXMgaGlnaGVzdCAqLwogCiAvKgogICogRERSIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9CQVNFCQkweDAwMDAwMDAwIC8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5ICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCUNGR19ERFJfQkFTRQotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NMS19DTlRMCUREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1Ci0jZGVmaW5lIENGR19ERFJDRFJfVkFMVUUJKCBERFJDRFJfRU4gXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9CQVNFCQkweDAwMDAwMDAwIC8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCUNPTkZJR19TWVNfRERSX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0xLX0NOVEwJRERSX1NEUkFNX0NMS19DTlRMX0NMS19BREpVU1RfMDUKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJDRFJfVkFMVUUJKCBERFJDRFJfRU4gXAogCQkJCXwgRERSQ0RSX1BaX0xPWiBcCiAJCQkJfCBERFJDRFJfTlpfTE9aIFwKIAkJCQl8IEREUkNEUl9PRFQgXApAQCAtMTAyLDE0ICsxMDIsMTQgQEAKICAqIE1hbnVhbGx5IHNldCB1cCBERFIgcGFyYW1ldGVycwogICogY29uc2lzdCBvZiB0d28gY2hpcHMgSFk1UFMxMjYyMUJGUC1DNCBmcm9tIEhZTklYCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TSVpFCQkxMjggLyogTUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkweDAwMDAwMDA3Ci0jZGVmaW5lIENGR19ERFJfQ1MwX0NPTkZJRwkoIENTQ09ORklHX0VOIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0laRQkJMTI4IC8qIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9CTkRTCTB4MDAwMDAwMDcKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkoIENTQ09ORklHX0VOIFwKIAkJCQl8IDB4MDAwMTAwMDAgIC8qIE9EVF9XUiB0byBDU24gKi8gXAogCQkJCXwgQ1NDT05GSUdfUk9XX0JJVF8xMyB8IENTQ09ORklHX0NPTF9CSVRfMTAgKQogCQkJCS8qIDB4ODAwMTAxMDIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzAJKCAoIDAgPDwgVElNSU5HX0NGRzBfUldUX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18wCSggKCAwIDw8IFRJTUlOR19DRkcwX1JXVF9TSElGVCApIFwKIAkJCQl8ICggMCA8PCBUSU1JTkdfQ0ZHMF9XUlRfU0hJRlQgKSBcCiAJCQkJfCAoIDAgPDwgVElNSU5HX0NGRzBfUlJUX1NISUZUICkgXAogCQkJCXwgKCAwIDw8IFRJTUlOR19DRkcwX1dXVF9TSElGVCApIFwKQEAgLTExOCw3ICsxMTgsNyBAQAogCQkJCXwgKCA4IDw8IFRJTUlOR19DRkcwX09EVF9QRF9FWElUX1NISUZUICkgXAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcwX01SU19DWUNfU0hJRlQgKSApCiAJCQkJLyogMHgwMDIyMDgwMiAqLwotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCSggKCAzIDw8IFRJTUlOR19DRkcxX1BSRVRPQUNUX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkoICggMyA8PCBUSU1JTkdfQ0ZHMV9QUkVUT0FDVF9TSElGVCApIFwKIAkJCQl8ICggOSA8PCBUSU1JTkdfQ0ZHMV9BQ1RUT1BSRV9TSElGVCApIFwKIAkJCQl8ICggMyA8PCBUSU1JTkdfQ0ZHMV9BQ1RUT1JXX1NISUZUICkgXAogCQkJCXwgKCA1IDw8IFRJTUlOR19DRkcxX0NBU0xBVF9TSElGVCApIFwKQEAgLTEyNyw3ICsxMjcsNyBAQAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcxX0FDVFRPQUNUX1NISUZUICkgXAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcxX1dSVE9SRF9TSElGVCApICkKIAkJCQkvKiAweDM5MzU2MjIyICovCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzIJKCAoIDEgPDwgVElNSU5HX0NGRzJfQUREX0xBVF9TSElGVCApIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJKCAoIDEgPDwgVElNSU5HX0NGRzJfQUREX0xBVF9TSElGVCApIFwKIAkJCQl8ICggNCA8PCBUSU1JTkdfQ0ZHMl9DUE9fU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzJfV1JfTEFUX0RFTEFZX1NISUZUICkgXAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcyX1JEX1RPX1BSRV9TSElGVCApIFwKQEAgLTEzNSw3MyArMTM1LDczIEBACiAJCQkJfCAoIDMgPDwgVElNSU5HX0NGRzJfQ0tFX1BMU19TSElGVCApIFwKIAkJCQl8ICggNyA8PCBUSU1JTkdfQ0ZHMl9GT1VSX0FDVF9TSElGVCkgKQogCQkJCS8qIDB4MTIxMDQ4YzcgKi8KLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkoICggMHgwMzYwIDw8IFNEUkFNX0lOVEVSVkFMX1JFRklOVF9TSElGVCApIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfSU5URVJWQUwJKCAoIDB4MDM2MCA8PCBTRFJBTV9JTlRFUlZBTF9SRUZJTlRfU0hJRlQgKSBcCiAJCQkJfCAoIDB4MDEwMCA8PCBTRFJBTV9JTlRFUlZBTF9CU1RPUFJFX1NISUZUICkgKQogCQkJCS8qIDB4MDM2MDAxMDAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcJKCBTRFJBTV9DRkdfU1JFTiBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NGRwkoIFNEUkFNX0NGR19TUkVOIFwKIAkJCQl8IFNEUkFNX0NGR19TRFJBTV9UWVBFX0REUjIgXAogCQkJCXwgU0RSQU1fQ0ZHXzMyX0JFICkKIAkJCQkvKiAweDQzMDgwMDAwICovCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0ZHMgkweDAwNDAxMDAwIC8qIDEgcG9zdGVkIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCQkoICggMHgwNDQ4IDw8IFNEUkFNX01PREVfRVNEX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcyCTB4MDA0MDEwMDAgLyogMSBwb3N0ZWQgcmVmcmVzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFCQkoICggMHgwNDQ4IDw8IFNEUkFNX01PREVfRVNEX1NISUZUICkgXAogCQkJCXwgKCAweDAyMzIgPDwgU0RSQU1fTU9ERV9TRF9TSElGVCApICkKIAkJCQkvKiBPRFQgMTUwb2htIENMPTMsIEFMPTEgb24gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFMgkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFMgkJMHgwMDAwMDAwMAogCiAvKgogICogTWVtb3J5IHRlc3QKICAqLwotI3VuZGVmIENGR19EUkFNX1RFU1QJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwNDAwMDAgLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwMTQwMDAwCisjdW5kZWYgQ09ORklHX1NZU19EUkFNX1RFU1QJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDQwMDAwIC8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDAxNDAwMDAKIAogLyoKICAqIFRoZSByZXNlcnZlZCBtZW1vcnkKICAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRSAvKiBzdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRSAvKiBzdGFydCBvZiBtb25pdG9yICovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmIENGR19SQU1CT09UCisjdW5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgKiAxMDI0KSAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qCiAgKiBJbml0aWFsIFJBTSBCYXNlIEFkZHJlc3MgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4RTYwMDAwMDAgLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMCAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkweDEwMCAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RTYwMDAwMDAgLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTB4MTAwIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAvKgogICogTG9jYWwgQnVzIENvbmZpZ3VyYXRpb24gJiBDbG9jayBTZXR1cAogICovCi0jZGVmaW5lIENGR19MQ1JSCQkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfMikKLSNkZWZpbmUgQ0ZHX0xCQ19MQkNSCQkweDAwMDQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTENSUgkJKExDUlJfREJZUCB8IExDUlJfQ0xLRElWXzIpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJCTB4MDAwNDAwMDAKIAogLyoKICAqIEZMQVNIIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkvKiB1c2UgdGhlIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkvKiB1c2UgdGhlIENGSSBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAgLyogRkxBU0ggYmFzZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQk4IC8qIEZMQVNIIHNpemUgaXMgOE0gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAgLyogRkxBU0ggYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJOCAvKiBGTEFTSCBzaXplIGlzIDhNICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCQkvKiBVc2UgaC93IEZsYXNoIHByb3RlY3Rpb24uICovCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UgLyogV2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLwotI2RlZmluZSBDRkdfTEJMQVdBUjBfUFJFTElNCTB4ODAwMDAwMTYgLyogOE1CIHdpbmRvdyBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgLyogV2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIwX1BSRUxJTQkweDgwMDAwMDE2IC8qIDhNQiB3aW5kb3cgc2l6ZSAqLwogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoIENGR19GTEFTSF9CQVNFCS8qIEZsYXNoIEJhc2UgYWRkcmVzcyAqLyBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJKCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogRmxhc2ggQmFzZSBhZGRyZXNzICovIFwKIAkJCQl8ICgyIDw8IEJSX1BTX1NISUZUKQkvKiAxNiBiaXQgcG9ydCBzaXplICovIFwKIAkJCQl8IEJSX1YgKQkJLyogdmFsaWQgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCSggKH4oQ0ZHX0ZMQVNIX1NJWkUgLSAxKSA8PCAyMCkgXAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCSggKH4oQ09ORklHX1NZU19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIFwKIAkJCQl8IE9SX1VQTV9YQU0gXAogCQkJCXwgT1JfR1BDTV9DU05UIFwKIAkJCQl8IE9SX0dQQ01fQUNTX0RJVjIgXApAQCAtMjExLDI3ICsyMTEsMjcgQEAKIAkJCQl8IE9SX0dQQ01fRUhUUiBcCiAJCQkJfCBPUl9HUENNX0VBRCApCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxIC8qIG51bWJlciBvZiBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTM1IC8qIDEyNyA2NEtCIHNlY3RvcnMgYW5kIDggOEtCIHRvcCBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMSAvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzUgLyogMTI3IDY0S0Igc2VjdG9ycyBhbmQgOCA4S0IgdG9wIHNlY3RvcnMgcGVyIGRldmljZSAqLwogCi0jdW5kZWYgQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwIC8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAgLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAgLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAgLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCiAKIC8qCiAgKiBOQU5EIEZsYXNoIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkweEUwNjAwMDAwCS8qIDB4RTA2MDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkweEUwNjAwMDAwCS8qIDB4RTA2MDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJMQogI2RlZmluZSBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFCiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCSggQ0ZHX05BTkRfQkFTRSBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJKCBDT05GSUdfU1lTX05BTkRfQkFTRSBcCiAJCQkJfCAoMjw8QlJfREVDQ19TSElGVCkJLyogVXNlIEhXIEVDQyAqLyBcCiAJCQkJfCBCUl9QU184CQkvKiBQb3J0IFNpemUgPSA4IGJpdCAqLyBcCiAJCQkJfCBCUl9NU19GQ00JCS8qIE1TRUwgPSBGQ00gKi8gXAogCQkJCXwgQlJfViApCQkvKiB2YWxpZCAqLwotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJKCAweEZGRkY4MDAwCQkvKiBsZW5ndGggMzJLICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkoIDB4RkZGRjgwMDAJCS8qIGxlbmd0aCAzMksgKi8gXAogCQkJCXwgT1JfRkNNX0NTQ1QgXAogCQkJCXwgT1JfRkNNX0NTVCBcCiAJCQkJfCBPUl9GQ01fQ0hUIFwKQEAgLTI0MCwyOSArMjQwLDI5IEBACiAJCQkJfCBPUl9GQ01fRUhUUiApCiAJCQkJLyogMHhGRkZGODM5NiAqLwogCi0jZGVmaW5lIENGR19MQkxBV0JBUjFfUFJFTElNCUNGR19OQU5EX0JBU0UKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIxX1BSRUxJTQkweDgwMDAwMDBFCS8qIDMyS0IgICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIxX1BSRUxJTQlDT05GSUdfU1lTX05BTkRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIxX1BSRUxJTQkweDgwMDAwMDBFCS8qIDMyS0IgICovCiAKIC8qCiAgKiBTZXJpYWwgUG9ydAogICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICN1bmRlZiBDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfSU1NUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19JTU1SKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfSU1NUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0lNTVIrMHg0NjAwKQogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qIFBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KQEAgLTI3Myw0MCArMjczLDQwIEBACiAvKiBJMkMgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMCAvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXsweDUxfSAvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCi0jZGVmaW5lIENGR19JMkMyX09GRlNFVAkJMHgzMTAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAgLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsweDUxfSAvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCQkweDMxMDAKIAogLyoKICAqIEJvYXJkIGluZm8gLSByZXZpc2lvbiBhbmQgd2hlcmUgYm9vdCBmcm9tCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19QQ0Y4NTc0QV9BRERSCTB4MzkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUENGODU3NEFfQUREUgkweDM5CiAKIC8qCiAgKiBDb25maWcgb24tYm9hcmQgUlRDCiAgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMzcJLyogZHMxMzM5IG9uIGJvYXJkLCB1c2UgZHMxMzM3IHJ0YyB2aWEgaTJjICovCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OCAvKiBhdCBhZGRyZXNzIDB4NjggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OCAvKiBhdCBhZGRyZXNzIDB4NjggKi8KIAogLyoKICAqIEdlbmVyYWwgUENJCiAgKiBBZGRyZXNzZXMgYXJlIG1hcHBlZCAxLTEuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNX1BIWVMJQ0ZHX1BDSV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJX01FTV9TSVpFCTB4MTAwMDAwMDAgLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJX01NSU9fQkFTRQkweDkwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTU1JT19QSFlTCUNGR19QQ0lfTU1JT19CQVNFCi0jZGVmaW5lIENGR19QQ0lfTU1JT19TSVpFCTB4MTAwMDAwMDAgLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJX0lPX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19QSFlTCQkweEUwMzAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fU0laRQkJMHgxMDAwMDAgLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwIC8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTU1JT19CQVNFCTB4OTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTU1JT19QSFlTCUNPTkZJR19TWVNfUENJX01NSU9fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NTUlPX1NJWkUJMHgxMDAwMDAwMCAvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fUEhZUwkJMHhFMDMwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19TSVpFCQkweDEwMDAwMCAvKiAxTSAqLwogCi0jZGVmaW5lIENGR19QQ0lfU0xWX01FTV9MT0NBTAlDRkdfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfUENJX1NMVl9NRU1fQlVTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9TTFZfTUVNX1NJWkUJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0xPQ0FMCUNPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0JVUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NMVl9NRU1fU0laRQkweDgwMDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX1BDSQogI2RlZmluZSBDT05GSUdfODNYWF9HRU5FUklDX1BDSQkxIC8qIFVzZSBnZW5lcmljIFBDSSBzZXR1cCAqLwpAQCAtMzE2LDcgKzMxNiw3IEBACiAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCiAjdW5kZWYgQ09ORklHX1BDSV9TQ0FOX1NIT1cJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTk1NwkvKiBGcmVlc2NhbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTk1NwkvKiBGcmVlc2NhbGUgKi8KIAogI2lmbmRlZiBDT05GSUdfTkVUX01VTFRJCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQpAQCAtMzI4LDEwICszMjgsMTAgQEAKICAqIFRTRUMKICAqLwogI2RlZmluZSBDT05GSUdfVFNFQ19FTkVUCS8qIFRTRUMgZXRoZXJuZXQgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfVFNFQzFfT0ZGU0VUCTB4MjQwMDAKLSNkZWZpbmUgQ0ZHX1RTRUMxCQkoQ0ZHX0lNTVIrQ0ZHX1RTRUMxX09GRlNFVCkKLSNkZWZpbmUgQ0ZHX1RTRUMyX09GRlNFVAkweDI1MDAwCi0jZGVmaW5lIENGR19UU0VDMgkJKENGR19JTU1SK0NGR19UU0VDMl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzFfT0ZGU0VUCTB4MjQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMQkJKENPTkZJR19TWVNfSU1NUitDT05GSUdfU1lTX1RTRUMxX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMl9PRkZTRVQJMHgyNTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMyCQkoQ09ORklHX1NZU19JTU1SK0NPTkZJR19TWVNfVFNFQzJfT0ZGU0VUKQogCiAvKgogICogVFNFQyBldGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0zNTcsMTUgKzM1NywxNSBAQAogI2RlZmluZSBDT05GSUdfTElCQVRBCiAjZGVmaW5lIENPTkZJR19GU0xfU0FUQQogCi0jZGVmaW5lIENGR19TQVRBX01BWF9ERVZJQ0UJMgorI2RlZmluZSBDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRQkyCiAjZGVmaW5lIENPTkZJR19TQVRBMQotI2RlZmluZSBDRkdfU0FUQTFfT0ZGU0VUCTB4MTgwMDAKLSNkZWZpbmUgQ0ZHX1NBVEExCQkoQ0ZHX0lNTVIgKyBDRkdfU0FUQTFfT0ZGU0VUKQotI2RlZmluZSBDRkdfU0FUQTFfRkxBR1MJCUZMQUdTX0RNQQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEExX09GRlNFVAkweDE4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQTEJCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX1NBVEExX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19TQVRBMV9GTEFHUwkJRkxBR1NfRE1BCiAjZGVmaW5lIENPTkZJR19TQVRBMgotI2RlZmluZSBDRkdfU0FUQTJfT0ZGU0VUCTB4MTkwMDAKLSNkZWZpbmUgQ0ZHX1NBVEEyCQkoQ0ZHX0lNTVIgKyBDRkdfU0FUQTJfT0ZGU0VUKQotI2RlZmluZSBDRkdfU0FUQTJfRkxBR1MJCUZMQUdTX0RNQQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEEyX09GRlNFVAkweDE5MDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQTIJCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX1NBVEEyX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19TQVRBMl9GTEFHUwkJRkxBR1NfRE1BCiAKICNpZmRlZiBDT05GSUdfRlNMX1NBVEEKICNkZWZpbmUgQ09ORklHX0xCQTQ4CkBAIC0zNzcsMjAgKzM3NywyMCBAQAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLQkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisJI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAJI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwIC8qIDY0SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2Vsc2UKLQkjZGVmaW5lIENGR19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLworCSNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLwogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTQxMSw3ICs0MTEsNyBAQAogI2RlZmluZSBDT05GSUdfQ01EX0RBVEUKICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAgICAgI3VuZGVmIENPTkZJR19DTURfRU5WCiAgICAgI3VuZGVmIENPTkZJR19DTURfTE9BRFMKICNlbmRpZgpAQCAtNDIzLDM1ICs0MjMsMzUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIwMDAwMDAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgyMDAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLQkjZGVmaW5lIENGR19DQlNJWkUJMTAyNCAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNCAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLQkjZGVmaW5lIENGR19DQlNJWkUJMjU2IC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisJI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogQ29yZSBISUQgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCQkweDAwMDAwMDAwMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJKEhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkweDAwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCShISUQwX0VOQUJMRV9NQUNISU5FX0NIRUNLIHwgXAogCQkJCSBISUQwX0VOQUJMRV9EWU5BTUlDX1BPV0VSX01BTkFHTUVOVCkKLSNkZWZpbmUgQ0ZHX0hJRDIJCUhJRDJfSEJFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkJSElEMl9IQkUKIAogLyoKICAqIE1NVSBTZXR1cApAQCAtNDU5LDUzICs0NTksNTMgQEAKICNkZWZpbmUgQ09ORklHX0hJR0hfQkFUUwkxCS8qIEhpZ2ggQkFUcyBzdXBwb3J0ZWQgKi8KIAogLyogRERSOiBjYWNoZSBjYWNoZWFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTAkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUJKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8xMjhNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMTI4TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQogCiAvKiBJTU1SQkFSLCBQQ0kgSU8gYW5kIE5BTkQ6IGNhY2hlLWluaGliaXQgYW5kIGd1YXJkZWQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX0lNTVIgfCBCQVRMX1BQXzEwIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19JTU1SIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX0lNTVIgfCBCQVRVX0JMXzhNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfSU1NUiB8IEJBVFVfQkxfOE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKIAogLyogRkxBU0g6IGljYWNoZSBjYWNoZWFibGUsIGJ1dCBkY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDJMCShDRkdfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQyVQkoQ0ZHX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzhNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMkwJKENGR19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVFVfQkxfOE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBcCiAJCQlCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMlUJQ0ZHX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQogCiAvKiBTdGFjayBpbiBkY2FjaGU6IGNhY2hlYWJsZSwgbm8gbWVtb3J5IGNvaGVyZW5jZSAqLwotI2RlZmluZSBDRkdfSUJBVDNMCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTApCi0jZGVmaW5lIENGR19JQkFUM1UJKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKIAogLyogUENJIE1FTSBzcGFjZTogY2FjaGVhYmxlICovCi0jZGVmaW5lIENGR19JQkFUNEwJKENGR19QQ0lfTUVNX1BIWVMgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUNFUJKENGR19QQ0lfTUVNX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ0TAlDRkdfSUJBVDRMCi0jZGVmaW5lIENGR19EQkFUNFUJQ0ZHX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkoQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRVCShDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0TAlDT05GSUdfU1lTX0lCQVQ0TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0VQlDT05GSUdfU1lTX0lCQVQ0VQogCiAvKiBQQ0kgTU1JTyBzcGFjZTogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDVMCShDRkdfUENJX01NSU9fUEhZUyB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCShDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDVVCShDRkdfUENJX01NSU9fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDVMCUNGR19JQkFUNUwKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQlDRkdfSUJBVDVVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVVCShDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNUwJQ09ORklHX1NZU19JQkFUNUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNVUJQ09ORklHX1NZU19JQkFUNVUKIAotI2RlZmluZSBDRkdfSUJBVDZMCTAKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkwCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwJMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VQkwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMCUNPTkZJR19TWVNfSUJBVDZMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVCUNPTkZJR19TWVNfSUJBVDZVCiAKLSNkZWZpbmUgQ0ZHX0lCQVQ3TAkwCi0jZGVmaW5lIENGR19JQkFUN1UJMAotI2RlZmluZSBDRkdfREJBVDdMCUNGR19JQkFUN0wKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQlDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCTAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UJMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TAlDT05GSUdfU1lTX0lCQVQ3TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VQlDT05GSUdfU1lTX0lCQVQ3VQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4MzIzRVJEQi5oIGIvaW5jbHVkZS9jb25maWdzL01QQzgzMjNFUkRCLmgKaW5kZXggYjk1ZjU0ZC4uYzZhYzkxYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzgzMjNFUkRCLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzgzMjNFUkRCLmgKQEAgLTMyLDcgKzMyLDcgQEAKIC8qCiAgKiBIYXJkd2FyZSBSZXNldCBDb25maWd1cmF0aW9uIFdvcmQKICAqLwotI2RlZmluZSBDRkdfSFJDV19MT1cgKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0xPVyAoXAogCUhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9ERFJfVE9fU0NCX0NMS18yWDEgfFwKIAlIUkNXTF9WQ09fMVgyIHxcCkBAIC00Miw3ICs0Miw3IEBACiAJSFJDV0xfQ0VfUExMX0RJVl8xWDEgfFwKIAlIUkNXTF9DRV9UT19QTExfMVgzKQogCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfSE9TVCB8XAogCUhSQ1dIX1BDSTFfQVJCSVRFUl9FTkFCTEUgfFwKIAlIUkNXSF9DT1JFX0VOQUJMRSB8XApAQCAtNTYsMjkgKzU2LDI5IEBACiAvKgogICogU3lzdGVtIElPIENvbmZpZwogICovCi0jZGVmaW5lIENGR19TSUNSTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NJQ1JMCQkweDAwMDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgkvKiBjYWxsIGJvYXJkX3ByZV9pbml0ICovCiAKIC8qCiAgKiBJTU1SIG5ldyBhZGRyZXNzCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEUwMDAwMDAwCiAKIC8qCiAgKiBTeXN0ZW0gcGVyZm9ybWFuY2UKICAqLwotI2RlZmluZSBDRkdfQUNSX1BJUEVfREVQCTMJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAoMC0zKSAqLwotI2RlZmluZSBDRkdfQUNSX1JQVENOVAkJMwkvKiBBcmJpdGVyIHJlcGVhdCBjb3VudCAoMC03KSAqLwotI2RlZmluZSBDRkdfU1BDUl9PUFQJCTEJLyogKDAtMSkgT3B0aW1pemUgdHJhbnNhY3Rpb25zIGJldHdlZW4gIENTQiBhbmQgdGhlIFNFQyBhbmQgUVVJQ0MgRW5naW5lIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfQUNSX1BJUEVfREVQCTMJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAoMC0zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDUl9SUFRDTlQJCTMJLyogQXJiaXRlciByZXBlYXQgY291bnQgKDAtNykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUENSX09QVAkJMQkvKiAoMC0xKSBPcHRpbWl6ZSB0cmFuc2FjdGlvbnMgYmV0d2VlbiAgQ1NCIGFuZCB0aGUgU0VDIGFuZCBRVUlDQyBFbmdpbmUgYmxvY2sgKi8KIAogLyoKICAqIEREUiBTZXR1cAogICovCi0jZGVmaW5lIENGR19ERFJfQkFTRQkJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9CQVNFCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUkNEUgkJMHg3MzAwMDAwMgkvKiBERFIgSUkgdm9sdGFnZSBpcyAxLjhWICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0JBU0UJCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUkNEUgkJMHg3MzAwMDAwMgkvKiBERFIgSUkgdm9sdGFnZSBpcyAxLjhWICovCiAKICN1bmRlZiBDT05GSUdfU1BEX0VFUFJPTQogI2lmIGRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pCkBAIC04OCwxMiArODgsMTIgQEAKICNlbHNlCiAvKiBNYW51YWxseSBzZXQgdXAgRERSIHBhcmFtZXRlcnMKICAqLwotI2RlZmluZSBDRkdfRERSX1NJWkUJCTY0CS8qIE1CICovCi0jZGVmaW5lIENGR19ERFJfQ1MwX0NPTkZJRwkoIENTQ09ORklHX0VOIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0laRQkJNjQJLyogTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkoIENTQ09ORklHX0VOIFwKIAkJCQl8IENTQ09ORklHX09EVF9XUl9BQ1MgXAogCQkJCXwgQ1NDT05GSUdfUk9XX0JJVF8xMyB8IENTQ09ORklHX0NPTF9CSVRfOSApCiAJCQkJLyogMHg4MDAxMDEwMSAqLwotI2RlZmluZSBDRkdfRERSX1RJTUlOR18wCSggKCAwIDw8IFRJTUlOR19DRkcwX1JXVF9TSElGVCApIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzAJKCAoIDAgPDwgVElNSU5HX0NGRzBfUldUX1NISUZUICkgXAogCQkJCXwgKCAwIDw8IFRJTUlOR19DRkcwX1dSVF9TSElGVCApIFwKIAkJCQl8ICggMCA8PCBUSU1JTkdfQ0ZHMF9SUlRfU0hJRlQgKSBcCiAJCQkJfCAoIDAgPDwgVElNSU5HX0NGRzBfV1dUX1NISUZUICkgXApAQCAtMTAyLDcgKzEwMiw3IEBACiAJCQkJfCAoIDggPDwgVElNSU5HX0NGRzBfT0RUX1BEX0VYSVRfU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzBfTVJTX0NZQ19TSElGVCApICkKIAkJCQkvKiAweDAwMjIwODAyICovCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJKCAoIDIgPDwgVElNSU5HX0NGRzFfUFJFVE9BQ1RfU0hJRlQgKSBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCSggKCAyIDw8IFRJTUlOR19DRkcxX1BSRVRPQUNUX1NISUZUICkgXAogCQkJCXwgKCA2IDw8IFRJTUlOR19DRkcxX0FDVFRPUFJFX1NISUZUICkgXAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcxX0FDVFRPUldfU0hJRlQgKSBcCiAJCQkJfCAoIDUgPDwgVElNSU5HX0NGRzFfQ0FTTEFUX1NISUZUICkgXApAQCAtMTExLDcgKzExMSw3IEBACiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzFfQUNUVE9BQ1RfU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzFfV1JUT1JEX1NISUZUICkgKQogCQkJCS8qIDB4MjYyNTMyMjIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkoICggMSA8PCBUSU1JTkdfQ0ZHMl9BRERfTEFUX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMgkoICggMSA8PCBUSU1JTkdfQ0ZHMl9BRERfTEFUX1NISUZUICkgXAogCQkJCXwgKDMxIDw8IFRJTUlOR19DRkcyX0NQT19TSElGVCApIFwKIAkJCQl8ICggMiA8PCBUSU1JTkdfQ0ZHMl9XUl9MQVRfREVMQVlfU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzJfUkRfVE9fUFJFX1NISUZUICkgXApAQCAtMTE5LDk5ICsxMTksOTkgQEAKIAkJCQl8ICggMyA8PCBUSU1JTkdfQ0ZHMl9DS0VfUExTX1NISUZUICkgXAogCQkJCXwgKCA3IDw8IFRJTUlOR19DRkcyX0ZPVVJfQUNUX1NISUZUKSApCiAJCQkJLyogMHgxZjkwNDhjNyAqLwotI2RlZmluZSBDRkdfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9DTEtfQ05UTAlERFJfU0RSQU1fQ0xLX0NOVExfQ0xLX0FESlVTVF8wNQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NMS19DTlRMCUREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1CiAJCQkJLyogMHgwMjAwMDAwMCAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCSggKCAweDQ0NDggPDwgU0RSQU1fTU9ERV9FU0RfU0hJRlQgKSBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCSggKCAweDQ0NDggPDwgU0RSQU1fTU9ERV9FU0RfU0hJRlQgKSBcCiAJCQkJfCAoIDB4MDIzMiA8PCBTRFJBTV9NT0RFX1NEX1NISUZUICkgKQogCQkJCS8qIDB4NDQ0ODAyMzIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFMgkJMHg4MDAwYzAwMAotI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCSggKCA4MDAgPDwgU0RSQU1fSU5URVJWQUxfUkVGSU5UX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFMgkJMHg4MDAwYzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkoICggODAwIDw8IFNEUkFNX0lOVEVSVkFMX1JFRklOVF9TSElGVCApIFwKIAkJCQl8ICggMTAwIDw8IFNEUkFNX0lOVEVSVkFMX0JTVE9QUkVfU0hJRlQgKSApCiAJCQkJLyogMHgwMzIwMDA2NCAqLwotI2RlZmluZSBDRkdfRERSX0NTMF9CTkRTCTB4MDAwMDAwMDMKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcJKCBTRFJBTV9DRkdfU1JFTiBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9CTkRTCTB4MDAwMDAwMDMKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHCSggU0RSQU1fQ0ZHX1NSRU4gXAogCQkJCXwgU0RSQU1fQ0ZHX1NEUkFNX1RZUEVfRERSMiBcCiAJCQkJfCBTRFJBTV9DRkdfMzJfQkUgKQogCQkJCS8qIDB4NDMwODAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcyCTB4MDA0MDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHMgkweDAwNDAxMDAwCiAjZW5kaWYKIAogLyoKICAqIE1lbW9yeSB0ZXN0CiAgKi8KLSN1bmRlZiBDRkdfRFJBTV9URVNUCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDMwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwM2YwMDAwMAorI3VuZGVmIENPTkZJR19TWVNfRFJBTV9URVNUCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAzMDAwMAkvKiBtZW10ZXN0IHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAzZjAwMDAwCiAKIC8qCiAgKiBUaGUgcmVzZXJ2ZWQgbWVtb3J5CiAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSN1bmRlZiAgQ0ZHX1JBTUJPT1QKKyN1bmRlZiAgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotLyogQ0ZHX01PTklUT1JfTEVOIG11c3QgYmUgYSBtdWx0aXBsZSBvZiBDT05GSUdfRU5WX1NFQ1RfU0laRSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworLyogQ09ORklHX1NZU19NT05JVE9SX0xFTiBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgQ09ORklHX0VOVl9TRUNUX1NJWkUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKgogICogSW5pdGlhbCBSQU0gQmFzZSBBZGRyZXNzIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweEU2MDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4MTAwCQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RTYwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIC8qCiAgKiBMb2NhbCBCdXMgQ29uZmlndXJhdGlvbiAmIENsb2NrIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0xDUlIJCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl8yKQotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQ1JSCQkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfMikKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMAogCiAvKgogICogRkxBU0ggb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCS8qIHVzZSB0aGUgQ0ZJIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAkvKiBGTEFTSCBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTE2CS8qIEZMQVNIIHNpemUgaXMgMTZNICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJCS8qIFVzZSBoL3cgRmxhc2ggcHJvdGVjdGlvbi4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCS8qIEZMQVNIIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTE2CS8qIEZMQVNIIHNpemUgaXMgMTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCQkvKiBVc2UgaC93IEZsYXNoIHByb3RlY3Rpb24uICovCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UJLyogV2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLwotI2RlZmluZSBDRkdfTEJMQVdBUjBfUFJFTElNCTB4ODAwMDAwMTgJLyogMzJNQiB3aW5kb3cgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIFdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxOAkvKiAzMk1CIHdpbmRvdyBzaXplICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKENGR19GTEFTSF9CQVNFIHwJLyogRmxhc2ggQmFzZSBhZGRyZXNzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfAkvKiBGbGFzaCBCYXNlIGFkZHJlc3MgKi8gXAogCQkJKDIgPDwgQlJfUFNfU0hJRlQpIHwJLyogMTYgYml0IHBvcnQgc2l6ZSAqLyBcCiAJCQlCUl9WKQkJCS8qIHZhbGlkICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweGZlMDA2ZmY3CS8qIDE2TUIgRmxhc2ggc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZmUwMDZmZjcJLyogMTZNQiBGbGFzaCBzaXplICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCiAKLSN1bmRlZiBDRkdfRkxBU0hfQ0hFQ0tTVU0KKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCiAKIC8qCiAgKiBTRFJBTSBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSN1bmRlZiBDRkdfTEJfU0RSQU0JCS8qIFRoZSBib2FyZCBoYXMgbm90IFNSREFNIG9uIGxvY2FsIGJ1cyAqLworI3VuZGVmIENPTkZJR19TWVNfTEJfU0RSQU0JCS8qIFRoZSBib2FyZCBoYXMgbm90IFNSREFNIG9uIGxvY2FsIGJ1cyAqLwogCi0jaWZkZWYgQ0ZHX0xCX1NEUkFNCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fQkFTRQkweEYwMDAwMDAwCS8qIFNEUkFNIGJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CICovCisjaWZkZWYgQ09ORklHX1NZU19MQl9TRFJBTQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCTB4RjAwMDAwMDAJLyogU0RSQU0gYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CICovCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMl9QUkVMSU0JQ0ZHX0xCQ19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19MQkxBV0FSMl9QUkVMSU0JMHg4MDAwMDAxOQkvKiA2NE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIyX1BSRUxJTQlDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjJfUFJFTElNCTB4ODAwMDAwMTkJLyogNjRNQiAqLwogCiAvKmxvY2FsIGJ1cyBCUjIsIE9SMiBkZWZpbml0aW9uIGZvciBTRFJBTSBpZiBzb2xkZXJlZCBvbiB0aGUgRVBCIGJvYXJkICovCiAvKgogICogQmFzZSBSZWdpc3RlciAyIGFuZCBPcHRpb24gUmVnaXN0ZXIgMiBjb25maWd1cmUgU0RSQU0uCi0gKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDRkdfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCisgKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgogICoKICAqIEZvciBCUjIsIG5lZWQ6CiAgKiAgICBCYXNlIGFkZHJlc3Mgb2YgMHhmMDAwMDAwMCA9IEJSWzA6MTZdID0gMTExMSAwMDAwIDAwMDAgMDAwMCAwCkBAIC0yMjMsMTQgKzIyMywxNCBAQAogICogMCAgICA0ICAgIDggICAgMTIgICAxNiAgIDIwICAgMjQgICAyOAogICogMTExMSAwMDAwIDAwMDAgMDAwMCAwMDAxIDEwMDAgMDExMCAwMDAxID0gZjAwMDE4NjEKICAqCi0gKiBDRkdfTEJDX1NEUkFNX0JBU0Ugc2hvdWxkIGJlIG1hc2tlZCBhbmQgT1InZWQgaW50bworICogQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSBzaG91bGQgYmUgbWFza2VkIGFuZCBPUidlZCBpbnRvCiAgKiB0aGUgdG9wIDE3IGJpdHMgb2YgQlIyLgogICovCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JMHhmMDAwMTg2MQkvKlBvcnQgc2l6ZT0zMmJpdCwgTVNFTD1TRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JMHhmMDAwMTg2MQkvKlBvcnQgc2l6ZT0zMmJpdCwgTVNFTD1TRFJBTSAqLwogCiAvKgotICogVGhlIFNEUkFNIHNpemUgaW4gTUIsIENGR19MQkNfU0RSQU1fU0laRSwgaXMgNjQuCisgKiBUaGUgU0RSQU0gc2l6ZSBpbiBNQiwgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRSwgaXMgNjQuCiAgKgogICogRm9yIE9SMiwgbmVlZDoKICAqICAgIDY0TUIgbWFzayBmb3IgQU0sIE9SMlswOjddID0gMTExMSAxMTAwCkBAIC0yNDMsNjggKzI0Myw2OCBAQAogICogMTExMSAxMTAwIDAwMDAgMDAwMCAwMTEwIDEwMDEgMDAwMCAwMDAxID0gZmMwMDY5MDEKICAqLwogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCTB4ZmMwMDY5MDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCTB4ZmMwMDY5MDEKIAotI2RlZmluZSBDRkdfTEJDX0xTUlQJMHgzMjAwMDAwMAkvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyLCBhYm91dCA2dXMgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19NUlRQUgkweDIwMDAwMDAwCS8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCwgMjY2TUh6LzMyICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJMHgzMjAwMDAwMAkvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyLCBhYm91dCA2dXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJMHgyMDAwMDAwMAkvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwsIDI2Nk1Iei8zMiAqLwogCiAvKgogICogTFNETVIgbWFza3MKICAqLwotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gJKDEgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9OT1JNQUwJKDAgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FDVEJOSwkoNiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DT01NT04JMHgwMDYzYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04JMHgwMDYzYjcyMwogCiAvKgogICogU0RSQU0gQ29udHJvbGxlciBjb25maWd1cmF0aW9uIHNlcXVlbmNlLgogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMQkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTCkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8yCQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfQVJGUlNIKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzMJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNAkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX01SVykKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl81CQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfTk9STUFMKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xCQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEwpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzIJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMwkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNIKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl80CQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlcpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzUJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTCkKIAogI2VuZGlmCiAKIC8qCiAgKiBXaW5kb3dzIHRvIGFjY2VzcyBQSUIgdmlhIGxvY2FsIGJ1cwogICovCi0jZGVmaW5lIENGR19MQkxBV0JBUjNfUFJFTElNCTB4ZjgwMDgwMDAJLyogd2luZG93cyBiYXNlIDB4ZjgwMDgwMDAgKi8KLSNkZWZpbmUgQ0ZHX0xCTEFXQVIzX1BSRUxJTQkweDgwMDAwMDBmCS8qIHdpbmRvd3Mgc2l6ZSA2NEtCICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIzX1BSRUxJTQkweGY4MDA4MDAwCS8qIHdpbmRvd3MgYmFzZSAweGY4MDA4MDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjNfUFJFTElNCTB4ODAwMDAwMGYJLyogd2luZG93cyBzaXplIDY0S0IgKi8KIAogLyoKICAqIFNlcmlhbCBQb3J0CiAgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI3VuZGVmIENPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfSU1NUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19JTU1SKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfSU1NUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0lNTVIrMHg0NjAwKQogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkgKi8KIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwpAQCAtMzE2LDMyICszMTYsMzIgQEAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4NTF9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4NTF9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkweDMwMDAKIAogLyoKICAqIENvbmZpZyBvbi1ib2FyZCBFRVBST00KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTYKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kxX01NSU9fQkFTRQkweDkwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01NSU9fUEhZUwlDRkdfUENJMV9NTUlPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTU1JT19TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCQkweGQwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1BIWVMJCUNGR19QQ0kxX0lPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkJMHgwNDAwMDAwMAkvKiA2NE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UJMHg5MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTCUNPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJCTB4ZDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMJCUNPTkZJR19TWVNfUENJMV9JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCQkweDA0MDAwMDAwCS8qIDY0TSAqLwogCiAjaWZkZWYgQ09ORklHX1BDSQogI2RlZmluZSBDT05GSUdfUENJX1NLSVBfSE9TVF9CUklER0UKQEAgLTM1MCw3ICszNTAsNyBAQAogCiAjdW5kZWYgQ09ORklHX0VFUFJPMTAwCiAjdW5kZWYgQ09ORklHX1BDSV9TQ0FOX1NIT1cJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklECTB4MTk1NwkvKiBGcmVlc2NhbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklECTB4MTk1NwkvKiBGcmVlc2NhbGUgKi8KIAogI2VuZGlmCS8qIENPTkZJR19QQ0kgKi8KIApAQCAtMzY4LDQyICszNjgsNDIgQEAKICNkZWZpbmUgQ09ORklHX1VFQ19FVEgxCQkvKiBFVEgzICovCiAKICNpZmRlZiBDT05GSUdfVUVDX0VUSDEKLSNkZWZpbmUgQ0ZHX1VFQzFfVUNDX05VTQkyCS8qIFVDQzMgKi8KLSNkZWZpbmUgQ0ZHX1VFQzFfUlhfQ0xLCQlRRV9DTEs5Ci0jZGVmaW5lIENGR19VRUMxX1RYX0NMSwkJUUVfQ0xLMTAKLSNkZWZpbmUgQ0ZHX1VFQzFfRVRIX1RZUEUJRkFTVF9FVEgKLSNkZWZpbmUgQ0ZHX1VFQzFfUEhZX0FERFIJNAotI2RlZmluZSBDRkdfVUVDMV9JTlRFUkZBQ0VfTU9ERQlFTkVUXzEwMF9NSUkKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1VDQ19OVU0JMgkvKiBVQ0MzICovCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMV9SWF9DTEsJCVFFX0NMSzkKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1RYX0NMSwkJUUVfQ0xLMTAKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX0VUSF9UWVBFCUZBU1RfRVRICisjZGVmaW5lIENPTkZJR19TWVNfVUVDMV9QSFlfQUREUgk0CisjZGVmaW5lIENPTkZJR19TWVNfVUVDMV9JTlRFUkZBQ0VfTU9ERQlFTkVUXzEwMF9NSUkKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19VRUNfRVRIMgkJLyogRVRINCAqLwogCiAjaWZkZWYgQ09ORklHX1VFQ19FVEgyCi0jZGVmaW5lIENGR19VRUMyX1VDQ19OVU0JMQkvKiBVQ0MyICovCi0jZGVmaW5lIENGR19VRUMyX1JYX0NMSwkJUUVfQ0xLMTYKLSNkZWZpbmUgQ0ZHX1VFQzJfVFhfQ0xLCQlRRV9DTEszCi0jZGVmaW5lIENGR19VRUMyX0VUSF9UWVBFCUZBU1RfRVRICi0jZGVmaW5lIENGR19VRUMyX1BIWV9BRERSCTAKLSNkZWZpbmUgQ0ZHX1VFQzJfSU5URVJGQUNFX01PREUJRU5FVF8xMDBfTUlJCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9VQ0NfTlVNCTEJLyogVUNDMiAqLworI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfUlhfQ0xLCQlRRV9DTEsxNgorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfVFhfQ0xLCQlRRV9DTEszCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9FVEhfVFlQRQlGQVNUX0VUSAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfUEhZX0FERFIJMAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfSU5URVJGQUNFX01PREUJRU5FVF8xMDBfTUlJCiAjZW5kaWYKIAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLQkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisJI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAJI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2Vsc2UKLQkjZGVmaW5lIENGR19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLworCSNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLwogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTQyNiw3ICs0MjYsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKIAkjZGVmaW5lIENPTkZJR19DTURfUENJCiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogCSN1bmRlZiBDT05GSUdfQ01EX0VOVgogCSN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTQzNiwzNCArNDM2LDM0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgKENPTkZJR19DTURfS0dEQikKLQkjZGVmaW5lIENGR19DQlNJWkUJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLQkjZGVmaW5lIENGR19DQlNJWkUJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisJI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogQ29yZSBISUQgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCQkweDAwMDAwMDAwMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9FTkFCTEVfTUFDSElORV9DSEVDSwotI2RlZmluZSBDRkdfSElEMgkJSElEMl9IQkUKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTB4MDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9FTkFCTEVfTUFDSElORV9DSEVDSworI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJCUhJRDJfSEJFCiAKIC8qCiAgKiBNTVUgU2V0dXAKQEAgLTQ3MSw2NCArNDcxLDY0IEBACiAjZGVmaW5lIENPTkZJR19ISUdIX0JBVFMJMQkvKiBIaWdoIEJBVHMgc3VwcG9ydGVkICovCiAKIC8qIEREUjogY2FjaGUgY2FjaGVhYmxlICovCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVCShDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDBMCUNGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVQlDRkdfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJQ09ORklHX1NZU19JQkFUMFUKIAogLyogSU1NUkJBUiAmIFBDSSBJTzogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDFMCShDRkdfSU1NUiB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCShDT05GSUdfU1lTX0lNTVIgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDFVCShDRkdfSU1NUiB8IEJBVFVfQkxfNE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoQ09ORklHX1NZU19JTU1SIHwgQkFUVV9CTF80TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAlDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQlDT05GSUdfU1lTX0lCQVQxVQogCiAvKiBGTEFTSDogaWNhY2hlIGNhY2hlYWJsZSwgYnV0IGRjYWNoZS1pbmhpYml0IGFuZCBndWFyZGVkICovCi0jZGVmaW5lIENGR19JQkFUMkwJKENGR19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDJVCShDRkdfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMkwJKENGR19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDJVCUNGR19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKIAotI2RlZmluZSBDRkdfSUJBVDNMCSgwKQotI2RlZmluZSBDRkdfSUJBVDNVCSgwKQotI2RlZmluZSBDRkdfREJBVDNMCUNGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVQlDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKIAogLyogU3RhY2sgaW4gZGNhY2hlOiBjYWNoZWFibGUsIG5vIG1lbW9yeSBjb2hlcmVuY2UgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ0TAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQotI2RlZmluZSBDRkdfSUJBVDRVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDRMCUNGR19JQkFUNEwKLSNkZWZpbmUgQ0ZHX0RCQVQ0VQlDRkdfSUJBVDRVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0VQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMCUNPTkZJR19TWVNfSUJBVDRMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRVCUNPTkZJR19TWVNfSUJBVDRVCiAKICNpZmRlZiBDT05GSUdfUENJCiAvKiBQQ0kgTUVNIHNwYWNlOiBjYWNoZWFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ1TAkoQ0ZHX1BDSTFfTUVNX1BIWVMgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUNVUJKENGR19QQ0kxX01FTV9QSFlTIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNUwJQ0ZHX0lCQVQ1TAotI2RlZmluZSBDRkdfREJBVDVVCUNGR19JQkFUNVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNUwJKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNVUJKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAlDT05GSUdfU1lTX0lCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQlDT05GSUdfU1lTX0lCQVQ1VQogLyogUENJIE1NSU8gc3BhY2U6IGNhY2hlLWluaGliaXQgYW5kIGd1YXJkZWQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkoQ0ZHX1BDSTFfTU1JT19QSFlTIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwJKENPTkZJR19TWVNfUENJMV9NTUlPX1BIWVMgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDZVCShDRkdfUENJMV9NTUlPX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ2TAlDRkdfSUJBVDZMCi0jZGVmaW5lIENGR19EQkFUNlUJQ0ZHX0lCQVQ2VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VQkoQ09ORklHX1NZU19QQ0kxX01NSU9fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAlDT05GSUdfU1lTX0lCQVQ2TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQlDT05GSUdfU1lTX0lCQVQ2VQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lCQVQ1TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkoMCkKLSNkZWZpbmUgQ0ZHX0RCQVQ1TAlDRkdfSUJBVDVMCi0jZGVmaW5lIENGR19EQkFUNVUJQ0ZHX0lCQVQ1VQotI2RlZmluZSBDRkdfREJBVDZMCUNGR19JQkFUNkwKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQlDRkdfSUJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAlDT05GSUdfU1lTX0lCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQlDT05GSUdfU1lTX0lCQVQ1VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAlDT05GSUdfU1lTX0lCQVQ2TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQlDT05GSUdfU1lTX0lCQVQ2VQogI2VuZGlmCiAKIC8qIE5vdGhpbmcgaW4gQkFUNyAqLwotI2RlZmluZSBDRkdfSUJBVDdMCSgwKQotI2RlZmluZSBDRkdfSUJBVDdVCSgwKQotI2RlZmluZSBDRkdfREJBVDdMCUNGR19JQkFUN0wKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQlDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJQ09ORklHX1NZU19JQkFUN0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJQ09ORklHX1NZU19JQkFUN1UKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCkBAIC01NTMsOCArNTUzLDggQEAKICNkZWZpbmUgQ09ORklHX0hBU19FVEgxCQkJCS8qIGFkZCBzdXBwb3J0IGZvciAiZXRoMWFkZHIiICovCiAjZGVmaW5lIENPTkZJR19FVEgxQUREUgkwMDowNDo5ZjplZjowMzowMgogCi0vKiB1c2UgbWFjX3JlYWRfZnJvbV9lZXByb20oKSB0byByZWFkIGV0aGFkZHIgZnJvbSBJMkMgRUVQUk9NIChzZWUgQ0ZHX0kyQ19FRVBST00pICovCi0jZGVmaW5lIENGR19JMkNfTUFDX09GRlNFVAkweDdmMDAJLyogTUFDIGFkZHJlc3Mgb2Zmc2V0IGluIEkyQyBFRVBST00gKi8KKy8qIHVzZSBtYWNfcmVhZF9mcm9tX2VlcHJvbSgpIHRvIHJlYWQgZXRoYWRkciBmcm9tIEkyQyBFRVBST00gKHNlZSBDT05GSUdfU1lTX0kyQ19FRVBST00pICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01BQ19PRkZTRVQJMHg3ZjAwCS8qIE1BQyBhZGRyZXNzIG9mZnNldCBpbiBJMkMgRUVQUk9NICovCiAKICNkZWZpbmUgQ09ORklHX0lQQUREUgkJMTAuMC4wLjIKICNkZWZpbmUgQ09ORklHX1NFUlZFUklQCQkxMC4wLjAuMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzgzMlhFTURTLmggYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODMyWEVNRFMuaAppbmRleCA5YTliNTAwLi5iYzU2ZTY4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODMyWEVNRFMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODMyWEVNRFMuaApAQCAtNDcsNyArNDcsNyBAQAogLyoKICAqIEhhcmR3YXJlIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZAogICovCi0jZGVmaW5lIENGR19IUkNXX0xPVyAoXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTE9XIChcCiAJSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLXzFYMSB8XAogCUhSQ1dMX0REUl9UT19TQ0JfQ0xLXzJYMSB8XAogCUhSQ1dMX1ZDT18xWDIgfFwKQEAgLTU4LDcgKzU4LDcgQEAKIAlIUkNXTF9DRV9UT19QTExfMVgzKQogCiAjaWZkZWYgQ09ORklHX1BDSVNMQVZFCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfQUdFTlQgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRElTQUJMRSB8XAogCUhSQ1dIX0NPUkVfRU5BQkxFIHxcCkBAIC02OSw3ICs2OSw3IEBACiAJSFJDV0hfQklHX0VORElBTiB8XAogCUhSQ1dIX0xBTEVfTk9STUFMKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hSQ1dfSElHSCAoXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfSElHSCAoXAogCUhSQ1dIX1BDSV9IT1NUIHxcCiAJSFJDV0hfUENJMV9BUkJJVEVSX0VOQUJMRSB8XAogCUhSQ1dIX0NPUkVfRU5BQkxFIHxcCkBAIC04NCw3ICs4NCw3IEBACiAvKgogICogU3lzdGVtIElPIENvbmZpZwogICovCi0jZGVmaW5lIENGR19TSUNSTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NJQ1JMCQkweDAwMDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgkvKiBjYWxsIGJvYXJkX3ByZV9pbml0ICovCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IKQEAgLTkyLDE1ICs5MiwxNSBAQAogLyoKICAqIElNTVIgbmV3IGFkZHJlc3MKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RTAwMDAwMDAKIAogLyoKICAqIEREUiBTZXR1cAogICovCi0jZGVmaW5lIENGR19ERFJfQkFTRQkJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9CQVNFCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUkNEUgkJMHg3MzAwMDAwMgkvKiBERFIgSUkgdm9sdGFnZSBpcyAxLjhWICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0JBU0UJCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUkNEUgkJMHg3MzAwMDAwMgkvKiBERFIgSUkgdm9sdGFnZSBpcyAxLjhWICovCiAKICN1bmRlZiBDT05GSUdfU1BEX0VFUFJPTQogI2lmIGRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pCkBAIC0xMTAsMTA2ICsxMTAsMTA2IEBACiAjZWxzZQogLyogTWFudWFsbHkgc2V0IHVwIEREUiBwYXJhbWV0ZXJzCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TSVpFCQkxMjgJLyogTUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQ09ORklHCTB4ODA4NDAxMDIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMAkweDAwMjIwODAyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJMHgzOTM1ZDMyMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MGY5MDQ4Y2EKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfQ0xLX0NOVEwJMHgwMjAwMDAwMAotI2RlZmluZSBDRkdfRERSX01PREUJCTB4NDQ0MDAyMzIKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFMgkJMHg4MDAwYzAwMAotI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCTB4MDMyMDAwNjQKLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkweDAwMDAwMDA3Ci0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0ZHCTB4NDMwODAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcyCTB4MDA0MDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0laRQkJMTI4CS8qIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9DT05GSUcJMHg4MDg0MDEwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMAkweDAwMjIwODAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4MzkzNWQzMjIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgwZjkwNDhjYQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NMS19DTlRMCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJMHg0NDQwMDIzMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFMgkJMHg4MDAwYzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkweDAzMjAwMDY0CisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9CTkRTCTB4MDAwMDAwMDcKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHCTB4NDMwODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHMgkweDAwNDAxMDAwCiAjZW5kaWYKIAogLyoKICAqIE1lbW9yeSB0ZXN0CiAgKi8KLSN1bmRlZiBDRkdfRFJBTV9URVNUCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDEwMDAwMAorI3VuZGVmIENPTkZJR19TWVNfRFJBTV9URVNUCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwMTAwMDAwCiAKIC8qCiAgKiBUaGUgcmVzZXJ2ZWQgbWVtb3J5CiAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSN1bmRlZiAgQ0ZHX1JBTUJPT1QKKyN1bmRlZiAgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotLyogQ0ZHX01PTklUT1JfTEVOIG11c3QgYmUgYSBtdWx0aXBsZSBvZiBDT05GSUdfRU5WX1NFQ1RfU0laRSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworLyogQ09ORklHX1NZU19NT05JVE9SX0xFTiBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgQ09ORklHX0VOVl9TRUNUX1NJWkUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKgogICogSW5pdGlhbCBSQU0gQmFzZSBBZGRyZXNzIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweEU2MDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4MTAwCQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RTYwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIC8qCiAgKiBMb2NhbCBCdXMgQ29uZmlndXJhdGlvbiAmIENsb2NrIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0xDUlIJCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl8yKQotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQ1JSCQkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfMikKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMAogCiAvKgogICogRkxBU0ggb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCS8qIHVzZSB0aGUgQ0ZJIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAkvKiBGTEFTSCBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTE2CS8qIEZMQVNIIHNpemUgaXMgMTZNICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJCS8qIFVzZSBoL3cgRmxhc2ggcHJvdGVjdGlvbi4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCS8qIEZMQVNIIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTE2CS8qIEZMQVNIIHNpemUgaXMgMTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCQkvKiBVc2UgaC93IEZsYXNoIHByb3RlY3Rpb24uICovCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UJLyogV2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLwotI2RlZmluZSBDRkdfTEJMQVdBUjBfUFJFTElNCTB4ODAwMDAwMTgJLyogMzJNQiB3aW5kb3cgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIFdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxOAkvKiAzMk1CIHdpbmRvdyBzaXplICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKENGR19GTEFTSF9CQVNFIHwJLyogRmxhc2ggQmFzZSBhZGRyZXNzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfAkvKiBGbGFzaCBCYXNlIGFkZHJlc3MgKi8gXAogCQkJKDIgPDwgQlJfUFNfU0hJRlQpIHwJLyogMTYgYml0IHBvcnQgc2l6ZSAqLyBcCiAJCQlCUl9WKQkJCS8qIHZhbGlkICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweGZlMDA2ZmY3CS8qIDE2TUIgRmxhc2ggc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZmUwMDZmZjcJLyogMTZNQiBGbGFzaCBzaXplICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCiAKLSN1bmRlZiBDRkdfRkxBU0hfQ0hFQ0tTVU0KKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCiAKIC8qCiAgKiBCQ1NSIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfQkNTUgkJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdCQVIxX1BSRUxJTQlDRkdfQkNTUgkvKiBBY2Nlc3Mgd2luZG93IGJhc2UgYXQgQkNTUiBiYXNlICovCi0jZGVmaW5lIENGR19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRQkvKiBBY2Nlc3Mgd2luZG93IHNpemUgMzJLICovCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUgkJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMV9QUkVMSU0JQ09ORklHX1NZU19CQ1NSCS8qIEFjY2VzcyB3aW5kb3cgYmFzZSBhdCBCQ1NSIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRQkvKiBBY2Nlc3Mgd2luZG93IHNpemUgMzJLICovCiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCShDRkdfQkNTUnwweDAwMDAwODAxKQkvKiBQb3J0IHNpemU9OGJpdCwgTVNFTD1HUENNICovCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkweEZGRkZFOWY3CS8qIGxlbmd0aCAzMksgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkoQ09ORklHX1NZU19CQ1NSfDB4MDAwMDA4MDEpCS8qIFBvcnQgc2l6ZT04Yml0LCBNU0VMPUdQQ00gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweEZGRkZFOWY3CS8qIGxlbmd0aCAzMksgKi8KIAogLyoKICAqIFNEUkFNIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI3VuZGVmIENGR19MQl9TRFJBTQkJLyogVGhlIGJvYXJkIGhhcyBub3QgU1JEQU0gb24gbG9jYWwgYnVzICovCisjdW5kZWYgQ09ORklHX1NZU19MQl9TRFJBTQkJLyogVGhlIGJvYXJkIGhhcyBub3QgU1JEQU0gb24gbG9jYWwgYnVzICovCiAKLSNpZmRlZiBDRkdfTEJfU0RSQU0KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4RjAwMDAwMDAJLyogU0RSQU0gYmFzZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KKyNpZmRlZiBDT05GSUdfU1lTX0xCX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UJMHhGMDAwMDAwMAkvKiBTRFJBTSBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KIAotI2RlZmluZSBDRkdfTEJMQVdCQVIyX1BSRUxJTQlDRkdfTEJDX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIyX1BSRUxJTQkweDgwMDAwMDE5CS8qIDY0TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjJfUFJFTElNCUNPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMl9QUkVMSU0JMHg4MDAwMDAxOQkvKiA2NE1CICovCiAKIC8qbG9jYWwgYnVzIEJSMiwgT1IyIGRlZmluaXRpb24gZm9yIFNEUkFNIGlmIHNvbGRlcmVkIG9uIHRoZSBFUEIgYm9hcmQgKi8KIC8qCiAgKiBCYXNlIFJlZ2lzdGVyIDIgYW5kIE9wdGlvbiBSZWdpc3RlciAyIGNvbmZpZ3VyZSBTRFJBTS4KLSAqIFRoZSBTRFJBTSBiYXNlIGFkZHJlc3MsIENGR19MQkNfU0RSQU1fQkFTRSwgaXMgMHhmMDAwMDAwMC4KKyAqIFRoZSBTRFJBTSBiYXNlIGFkZHJlc3MsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCiAgKgogICogRm9yIEJSMiwgbmVlZDoKICAqICAgIEJhc2UgYWRkcmVzcyBvZiAweGYwMDAwMDAwID0gQlJbMDoxNl0gPSAxMTExIDAwMDAgMDAwMCAwMDAwIDAKQEAgLTIyMSwxNCArMjIxLDE0IEBACiAgKiAwICAgIDQgICAgOCAgICAxMiAgIDE2ICAgMjAgICAyNCAgIDI4CiAgKiAxMTExIDAwMDAgMDAwMCAwMDAwIDAwMDEgMTAwMCAwMTEwIDAwMDEgPSBmMDAwMTg2MQogICoKLSAqIENGR19MQkNfU0RSQU1fQkFTRSBzaG91bGQgYmUgbWFza2VkIGFuZCBPUidlZCBpbnRvCisgKiBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFIHNob3VsZCBiZSBtYXNrZWQgYW5kIE9SJ2VkIGludG8KICAqIHRoZSB0b3AgMTcgYml0cyBvZiBCUjIuCiAgKi8KIAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkweGYwMDAxODYxCS8qUG9ydCBzaXplPTMyYml0LCBNU0VMPVNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkweGYwMDAxODYxCS8qUG9ydCBzaXplPTMyYml0LCBNU0VMPVNEUkFNICovCiAKIC8qCi0gKiBUaGUgU0RSQU0gc2l6ZSBpbiBNQiwgQ0ZHX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KKyAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KICAqCiAgKiBGb3IgT1IyLCBuZWVkOgogICogICAgNjRNQiBtYXNrIGZvciBBTSwgT1IyWzA6N10gPSAxMTExIDExMDAKQEAgLTI0MSw4MCArMjQxLDgwIEBACiAgKiAxMTExIDExMDAgMDAwMCAwMDAwIDAxMTAgMTAwMSAwMDAwIDAwMDEgPSBmYzAwNjkwMQogICovCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JMHhmYzAwNjkwMQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JMHhmYzAwNjkwMQogCi0jZGVmaW5lIENGR19MQkNfTFNSVAkweDMyMDAwMDAwCS8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIsIGFib3V0IDZ1cyAqLwotI2RlZmluZSBDRkdfTEJDX01SVFBSCTB4MjAwMDAwMDAJLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsLCAyNjZNSHovMzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkweDMyMDAwMDAwCS8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIsIGFib3V0IDZ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkweDIwMDAwMDAwCS8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCwgMjY2TUh6LzMyICovCiAKIC8qCiAgKiBMU0RNUiBtYXNrcwogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTk9STUFMCSgwIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTVJXCSgzIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BQ1RCTksJKDYgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNICSgxIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKIAotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0NPTU1PTgkweDAwNjNiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTgkweDAwNjNiNzIzCiAKIC8qCiAgKiBTRFJBTSBDb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gc2VxdWVuY2UuCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8xCQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfUENIQUxMKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzIJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMwkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSCkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl80CQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfTVJXKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzUJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUwpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzEJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMgkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNIKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8zCQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0gpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzQJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVykKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfNQkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMKQogCiAjZW5kaWYKIAogLyoKICAqIFdpbmRvd3MgdG8gYWNjZXNzIFBJQiB2aWEgbG9jYWwgYnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSM19QUkVMSU0JMHhmODAwODAwMAkvKiB3aW5kb3dzIGJhc2UgMHhmODAwODAwMCAqLwotI2RlZmluZSBDRkdfTEJMQVdBUjNfUFJFTElNCTB4ODAwMDAwMGYJLyogd2luZG93cyBzaXplIDY0S0IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjNfUFJFTElNCTB4ZjgwMDgwMDAJLyogd2luZG93cyBiYXNlIDB4ZjgwMDgwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSM19QUkVMSU0JMHg4MDAwMDAwZgkvKiB3aW5kb3dzIHNpemUgNjRLQiAqLwogCiAvKgogICogQ1MyIG9uIExvY2FsIEJ1cywgdG8gUElCCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JMHhmODAwODgwMQkvKiBDUzIgYmFzZSBhZGRyZXNzIGF0IDB4ZjgwMDgwMDAgKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JMHhmZmZmZTlmNwkvKiBzaXplIDMyS0IsIHBvcnQgc2l6ZSA4Yml0LCBHUENNICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkweGY4MDA4ODAxCS8qIENTMiBiYXNlIGFkZHJlc3MgYXQgMHhmODAwODAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JMHhmZmZmZTlmNwkvKiBzaXplIDMyS0IsIHBvcnQgc2l6ZSA4Yml0LCBHUENNICovCiAKIC8qCiAgKiBDUzMgb24gTG9jYWwgQnVzLCB0byBQSUIKICAqLwotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkweGY4MDEwODAxCS8qIENTMyBiYXNlIGFkZHJlc3MgYXQgMHhmODAxMDAwMCAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkweGZmZmZlOWY3CS8qIHNpemUgMzJLQiwgcG9ydCBzaXplIDhiaXQsIEdQQ00gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCTB4ZjgwMTA4MDEJLyogQ1MzIGJhc2UgYWRkcmVzcyBhdCAweGY4MDEwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkweGZmZmZlOWY3CS8qIHNpemUgMzJLQiwgcG9ydCBzaXplIDhiaXQsIEdQQ00gKi8KIAogLyoKICAqIFNlcmlhbCBQb3J0CiAgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI3VuZGVmIENPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfSU1NUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19JTU1SKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfSU1NUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0lNTVIrMHg0NjAwKQogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwpAQCAtMzI2LDM0ICszMjYsMzQgQEAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4NTF9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4NTF9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkweDMwMDAKIAogLyoKICAqIENvbmZpZyBvbi1ib2FyZCBSVEMKICAqLwogI2RlZmluZSBDT05GSUdfUlRDX0RTMTM3NAkJLyogdXNlIGRzMTM3NCBydGMgdmlhIGkyYyAqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgJLyogYXQgYWRkcmVzcyAweDY4ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NjgJLyogYXQgYWRkcmVzcyAweDY4ICovCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCi0jZGVmaW5lIENGR19QQ0lfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9QSFlTCUNGR19QQ0lfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NTUlPX0JBU0UJMHg5MDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01NSU9fUEhZUwlDRkdfUENJX01NSU9fQkFTRQotI2RlZmluZSBDRkdfUENJX01NSU9fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSV9JT19CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fUEhZUwkJMHhFMDMwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1NJWkUJCTB4MTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01NSU9fQkFTRQkweDkwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01NSU9fUEhZUwlDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTU1JT19TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1BIWVMJCTB4RTAzMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fU0laRQkJMHgxMDAwMDAJLyogMU0gKi8KIAotI2RlZmluZSBDRkdfUENJX1NMVl9NRU1fTE9DQUwJQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9TTFZfTUVNX0JVUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfU0xWX01FTV9TSVpFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9MT0NBTAlDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9CVVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX1NJWkUJMHg4MDAwMDAwMAogCiAKICNpZmRlZiBDT05GSUdfUENJCkBAIC0zNjMsNyArMzYzLDcgQEAKIAogI3VuZGVmIENPTkZJR19FRVBSTzEwMAogI3VuZGVmIENPTkZJR19QQ0lfU0NBTl9TSE9XCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRAkweDE5NTcJLyogRnJlZXNjYWxlICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRAkweDE5NTcJLyogRnJlZXNjYWxlICovCiAKICNlbmRpZgkvKiBDT05GSUdfUENJICovCiAKQEAgLTM4MSw0MiArMzgxLDQyIEBACiAjZGVmaW5lIENPTkZJR19VRUNfRVRIMQkJLyogRVRIMyAqLwogCiAjaWZkZWYgQ09ORklHX1VFQ19FVEgxCi0jZGVmaW5lIENGR19VRUMxX1VDQ19OVU0JMgkvKiBVQ0MzICovCi0jZGVmaW5lIENGR19VRUMxX1JYX0NMSwkJUUVfQ0xLOQotI2RlZmluZSBDRkdfVUVDMV9UWF9DTEsJCVFFX0NMSzEwCi0jZGVmaW5lIENGR19VRUMxX0VUSF9UWVBFCUZBU1RfRVRICi0jZGVmaW5lIENGR19VRUMxX1BIWV9BRERSCTMKLSNkZWZpbmUgQ0ZHX1VFQzFfSU5URVJGQUNFX01PREUJRU5FVF8xMDBfTUlJCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMV9VQ0NfTlVNCTIJLyogVUNDMyAqLworI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfUlhfQ0xLCQlRRV9DTEs5CisjZGVmaW5lIENPTkZJR19TWVNfVUVDMV9UWF9DTEsJCVFFX0NMSzEwCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMV9FVEhfVFlQRQlGQVNUX0VUSAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfUEhZX0FERFIJMworI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfSU5URVJGQUNFX01PREUJRU5FVF8xMDBfTUlJCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfVUVDX0VUSDIJCS8qIEVUSDQgKi8KIAogI2lmZGVmIENPTkZJR19VRUNfRVRIMgotI2RlZmluZSBDRkdfVUVDMl9VQ0NfTlVNCTMJLyogVUNDNCAqLwotI2RlZmluZSBDRkdfVUVDMl9SWF9DTEsJCVFFX0NMSzcKLSNkZWZpbmUgQ0ZHX1VFQzJfVFhfQ0xLCQlRRV9DTEs4Ci0jZGVmaW5lIENGR19VRUMyX0VUSF9UWVBFCUZBU1RfRVRICi0jZGVmaW5lIENGR19VRUMyX1BIWV9BRERSCTQKLSNkZWZpbmUgQ0ZHX1VFQzJfSU5URVJGQUNFX01PREUJRU5FVF8xMDBfTUlJCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9VQ0NfTlVNCTMJLyogVUNDNCAqLworI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfUlhfQ0xLCQlRRV9DTEs3CisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9UWF9DTEsJCVFFX0NMSzgKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX0VUSF9UWVBFCUZBU1RfRVRICisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9QSFlfQUREUgk0CisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9JTlRFUkZBQ0VfTU9ERQlFTkVUXzEwMF9NSUkKICNlbmRpZgogCiAvKgogICogRW52aXJvbm1lbnQKICAqLwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAkjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAKIAkjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZWxzZQotCSNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCisJI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCiAJI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkgKi8KLQkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisJI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKIAkjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtNDQwLDcgKzQ0MCw3IEBACiAgICAgI2RlZmluZSBDT05GSUdfQ01EX1BDSQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogICAgICN1bmRlZiBDT05GSUdfQ01EX0VOVgogICAgICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTQ1MSwzNCArNDUxLDM0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIENvcmUgSElEIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMHgwMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKLSNkZWZpbmUgQ0ZHX0hJRDIJCUhJRDJfSEJFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkweDAwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCQlISUQyX0hCRQogCiAvKgogICogTU1VIFNldHVwCkBAIC00ODcsNjQgKzQ4Nyw2NCBAQAogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCTEJLyogSGlnaCBCQVRzIHN1cHBvcnRlZCAqLwogCiAvKiBERFI6IGNhY2hlIGNhY2hlYWJsZSAqLwotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCUNPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCUNPTkZJR19TWVNfSUJBVDBVCiAKIC8qIElNTVJCQVIgJiBQQ0kgSU86IGNhY2hlLWluaGliaXQgYW5kIGd1YXJkZWQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX0lNTVIgfCBCQVRMX1BQXzEwIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19JTU1SIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX0lNTVIgfCBCQVRVX0JMXzRNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfSU1NUiB8IEJBVFVfQkxfNE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKIAogLyogQkNTUjogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDJMCShDRkdfQkNTUiB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX0JDU1IgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDJVCShDRkdfQkNTUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCShDT05GSUdfU1lTX0JDU1IgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKIAogLyogRkxBU0g6IGljYWNoZSBjYWNoZWFibGUsIGJ1dCBkY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDNMCShDRkdfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQkoQ0ZHX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDNMCShDRkdfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQzVQlDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVCUNPTkZJR19TWVNfSUJBVDNVCiAKLSNkZWZpbmUgQ0ZHX0lCQVQ0TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ0VQkoMCkKLSNkZWZpbmUgQ0ZHX0RCQVQ0TAlDRkdfSUJBVDRMCi0jZGVmaW5lIENGR19EQkFUNFUJQ0ZHX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJKDApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMCUNPTkZJR19TWVNfSUJBVDRMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRVCUNPTkZJR19TWVNfSUJBVDRVCiAKIC8qIFN0YWNrIGluIGRjYWNoZTogY2FjaGVhYmxlLCBubyBtZW1vcnkgY29oZXJlbmNlICovCi0jZGVmaW5lIENGR19JQkFUNUwJKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ1TAlDRkdfSUJBVDVMCi0jZGVmaW5lIENGR19EQkFUNVUJQ0ZHX0lCQVQ1VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1TAkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNVUJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAlDT05GSUdfU1lTX0lCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQlDT05GSUdfU1lTX0lCQVQ1VQogCiAjaWZkZWYgQ09ORklHX1BDSQogLyogUENJIE1FTSBzcGFjZTogY2FjaGVhYmxlICovCi0jZGVmaW5lIENGR19JQkFUNkwJKENGR19QQ0lfTUVNX1BIWVMgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUNlUJKENGR19QQ0lfTUVNX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ2TAlDRkdfSUJBVDZMCi0jZGVmaW5lIENGR19EQkFUNlUJQ0ZHX0lCQVQ2VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCShDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAlDT05GSUdfU1lTX0lCQVQ2TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQlDT05GSUdfU1lTX0lCQVQ2VQogLyogUENJIE1NSU8gc3BhY2U6IGNhY2hlLWluaGliaXQgYW5kIGd1YXJkZWQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ3TAkoQ0ZHX1BDSV9NTUlPX1BIWVMgfCBCQVRMX1BQXzEwIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3TAkoQ09ORklHX1NZU19QQ0lfTU1JT19QSFlTIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ3VQkoQ0ZHX1BDSV9NTUlPX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAlDRkdfSUJBVDdMCi0jZGVmaW5lIENGR19EQkFUN1UJQ0ZHX0lCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VQkoQ09ORklHX1NZU19QQ0lfTU1JT19QSFlTIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdMCUNPTkZJR19TWVNfSUJBVDdMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdVCUNPTkZJR19TWVNfSUJBVDdVCiAjZWxzZQotI2RlZmluZSBDRkdfSUJBVDZMCSgwKQotI2RlZmluZSBDRkdfSUJBVDZVCSgwKQotI2RlZmluZSBDRkdfSUJBVDdMCSgwKQotI2RlZmluZSBDRkdfSUJBVDdVCSgwKQotI2RlZmluZSBDRkdfREJBVDZMCUNGR19JQkFUNkwKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQlDRkdfSUJBVDZVCi0jZGVmaW5lIENGR19EQkFUN0wJQ0ZHX0lCQVQ3TAotI2RlZmluZSBDRkdfREJBVDdVCUNGR19JQkFUN1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3TAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UJKDApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMCUNPTkZJR19TWVNfSUJBVDZMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVCUNPTkZJR19TWVNfSUJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdMCUNPTkZJR19TWVNfSUJBVDdMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdVCUNPTkZJR19TWVNfSUJBVDdVCiAjZW5kaWYKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4MzQ5RU1EUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzgzNDlFTURTLmgKaW5kZXggODEzNTI1NC4uYmJkYzIxMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzgzNDlFTURTLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzgzNDlFTURTLmgKQEAgLTY1LDExICs2NSwxMSBAQAogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YJCS8qIGNhbGwgYm9hcmRfcHJlX2luaXQgKi8KIAotI2RlZmluZSBDRkdfSU1NUgkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RTAwMDAwMDAKIAotI3VuZGVmIENGR19EUkFNX1RFU1QJCQkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMCAgICAgIC8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDEwMDAwMAorI3VuZGVmIENPTkZJR19TWVNfRFJBTV9URVNUCQkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwICAgICAgLyogbWVtdGVzdCByZWdpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDEwMDAwMAogCiAvKgogICogRERSIFNldHVwCkBAIC05MCwxNyArOTAsMTcgQEAKICAqLwogI3VuZGVmIENPTkZJR19ERFJfMzJCSVQKIAotI2RlZmluZSBDRkdfRERSX0JBU0UJCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9CQVNFCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DTEtfQ05UTAkoRERSX1NEUkFNX0NMS19DTlRMX1NTX0VOIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9CQVNFCQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DTEtfQ05UTAkoRERSX1NEUkFNX0NMS19DTlRMX1NTX0VOIHwgXAogCQkJCUREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1KQogI3VuZGVmICBDT05GSUdfRERSXzJUX1RJTUlORwogCiAvKgogICogRERSQ0RSIC0gRERSIENvbnRyb2wgRHJpdmVyIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUkNEUl9WQUxVRQkweDgwMDgwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfRERSQ0RSX1ZBTFVFCTB4ODAwODAwMDEKIAogI2lmIGRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pCiAvKgpAQCAtMTExLDM0ICsxMTEsMzQgQEAKIC8qCiAgKiBNYW51YWxseSBzZXQgdXAgRERSIHBhcmFtZXRlcnMKICAqLwotI2RlZmluZSBDRkdfRERSX1NJWkUJCTI1NgkJLyogTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0laRQkJMjU2CQkvKiBNQiAqLwogI2lmIGRlZmluZWQoQ09ORklHX0REUl9JSSkKLSNkZWZpbmUgQ0ZHX0REUkNEUgkJMHg4MDA4MDAwMQotI2RlZmluZSBDRkdfRERSX0NTMl9CTkRTCTB4MDAwMDAwMGYKLSNkZWZpbmUgQ0ZHX0REUl9DUzJfQ09ORklHCTB4ODAzMzAxMDIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMAkweDAwMjIwODAyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJMHgzODM1NzMyMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MmY5MDQ4YzgKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfQ0xLX0NOVEwJMHgwMjAwMDAwMAotI2RlZmluZSBDRkdfRERSX01PREUJCTB4NDdkMDA0MzIKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFMgkJMHg4MDAwYzAwMAotI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCTB4MDNjZjAwODAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcJMHg0MzAwMDAwMAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NGRzIJMHgwMDQwMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUkNEUgkJMHg4MDA4MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzJfQk5EUwkweDAwMDAwMDBmCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMl9DT05GSUcJMHg4MDMzMDEwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMAkweDAwMjIwODAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4MzgzNTczMjIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgyZjkwNDhjOAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NMS19DTlRMCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJMHg0N2QwMDQzMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFMgkJMHg4MDAwYzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkweDAzY2YwMDgwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NGRwkweDQzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NGRzIJMHgwMDQwMTAwMAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0REUl9DT05GSUcJCShDU0NPTkZJR19FTiB8IENTQ09ORklHX1JPV19CSVRfMTMgfCBDU0NPTkZJR19DT0xfQklUXzEwKQotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCTB4MzYzMzIzMjEKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkweDAwMDAwODAwCS8qIFA5LTQ1LG1heSBuZWVkIHR1bmluZyAqLwotI2RlZmluZSBDRkdfRERSX0NPTlRST0wJCTB4YzIwMDAwMDAJLyogdW5idWZmZXJlZCxubyBEWU5fUFdSICovCi0jZGVmaW5lIENGR19ERFJfSU5URVJWQUwJMHgwNDA2MDEwMAkvKiBhdXRvY2hhcmdlLG5vIG9wZW4gcGFnZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05GSUcJCShDU0NPTkZJR19FTiB8IENTQ09ORklHX1JPV19CSVRfMTMgfCBDU0NPTkZJR19DT0xfQklUXzEwKQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkweDM2MzMyMzIxCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCTB4MDAwMDA4MDAJLyogUDktNDUsbWF5IG5lZWQgdHVuaW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTlRST0wJCTB4YzIwMDAwMDAJLyogdW5idWZmZXJlZCxubyBEWU5fUFdSICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0lOVEVSVkFMCTB4MDQwNjAxMDAJLyogYXV0b2NoYXJnZSxubyBvcGVuIHBhZ2UgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0REUl8zMkJJVCkKIC8qIHNldCBidXJzdCBsZW5ndGggdG8gOCBmb3IgMzItYml0IGRhdGEgcGF0aCAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCTB4MDAwMDAwMjMJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUsIDggYnVyc3QgbGVuICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCTB4MDAwMDAwMjMJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUsIDggYnVyc3QgbGVuICovCiAjZWxzZQogLyogdGhlIGRlZmF1bHQgYnVyc3QgbGVuZ3RoIGlzIDQgLSBmb3IgNjQtYml0IGRhdGEgcGF0aCAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCTB4MDAwMDAwMjIJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUsIDQgYnVyc3QgbGVuICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCTB4MDAwMDAwMjIJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUsIDQgYnVyc3QgbGVuICovCiAjZW5kaWYKICNlbmRpZgogI2VuZGlmCkBAIC0xNDYsNjQgKzE0Niw2NCBAQAogLyoKICAqIFNEUkFNIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX0JBU0UJMHhGMDAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UJMHhGMDAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQiAqLwogCiAvKgogICogRkxBU0ggb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJCS8qIHVzZSB0aGUgQ0ZJIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAgICovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkzMgkJLyogbWF4IGZsYXNoIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLwotLyogI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTMyCQkvKiBtYXggZmxhc2ggc2l6ZSBpbiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgKi8KIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKENGR19GTEFTSF9CQVNFIHwJLyogZmxhc2ggQmFzZSBhZGRyZXNzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwJLyogZmxhc2ggQmFzZSBhZGRyZXNzICovIFwKIAkJCQkoMiA8PCBCUl9QU19TSElGVCkgfAkvKiAxNiBiaXQgcG9ydCBzaXplICovCSBcCiAJCQkJQlJfVikJCQkvKiB2YWxpZCAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJKCh+KENGR19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIHwgT1JfVVBNX1hBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkoKH4oQ09ORklHX1NZU19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIHwgT1JfVVBNX1hBTSB8IFwKIAkJCQlPUl9HUENNX0NTTlQgfCBPUl9HUENNX0FDU19ESVYyIHwgT1JfR1BDTV9YQUNTIHwgT1JfR1BDTV9TQ1lfMTUgfCBcCiAJCQkJT1JfR1BDTV9UUkxYIHwgT1JfR1BDTV9FSFRSIHwgT1JfR1BDTV9FQUQpCi0jZGVmaW5lIENGR19MQkxBV0JBUjBfUFJFTElNCUNGR19GTEFTSF9CQVNFCS8qIHdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0xCTEFXQVIwX1BSRUxJTQkweDgwMDAwMDE4CS8qIDMyIE1CIHdpbmRvdyBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogd2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIwX1BSRUxJTQkweDgwMDAwMDE4CS8qIDMyIE1CIHdpbmRvdyBzaXplICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkJLyogbWF4IHNlY3RvcnMgcGVyIGRldmljZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJCS8qIG1heCBzZWN0b3JzIHBlciBkZXZpY2UgKi8KIAotI3VuZGVmIENGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwogCi0jZGVmaW5lIENGR19NSURfRkxBU0hfSlVNUAkweDdGMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NSURfRkxBU0hfSlVNUAkweDdGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmICBDRkdfUkFNQk9PVAorI3VuZGVmICBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAvKgogICogQkNTUiByZWdpc3RlciBvbiBsb2NhbCBidXMgMzJLQiwgOC1iaXQgd2lkZSBmb3IgTURTIGNvbmZpZyByZWcKICAqLwotI2RlZmluZSBDRkdfQkNTUgkJMHhFMjQwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdCQVIxX1BSRUxJTQlDRkdfQkNTUgkJLyogQWNjZXNzIHdpbmRvdyBiYXNlIGF0IEJDU1IgYmFzZSAqLwotI2RlZmluZSBDRkdfTEJMQVdBUjFfUFJFTElNCTB4ODAwMDAwMEUJCS8qIEFjY2VzcyB3aW5kb3cgc2l6ZSAzMksgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCShDRkdfQkNTUnwweDAwMDAwODAxKQkvKiBQb3J0LXNpemU9OGJpdCwgTVNFTD1HUENNICovCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkweEZGRkZFOEYwCQkvKiBsZW5ndGggMzJLICovCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUgkJMHhFMjQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMV9QUkVMSU0JQ09ORklHX1NZU19CQ1NSCQkvKiBBY2Nlc3Mgd2luZG93IGJhc2UgYXQgQkNTUiBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjFfUFJFTElNCTB4ODAwMDAwMEUJCS8qIEFjY2VzcyB3aW5kb3cgc2l6ZSAzMksgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkoQ09ORklHX1NZU19CQ1NSfDB4MDAwMDA4MDEpCS8qIFBvcnQtc2l6ZT04Yml0LCBNU0VMPUdQQ00gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweEZGRkZFOEYwCQkvKiBsZW5ndGggMzJLICovCiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhGRDAwMDAwMAkJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAkJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RkQwMDAwMDAJCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCQkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0qLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4MTAwCQkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMAkJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyoKICAqIExvY2FsIEJ1cyBMQ1JSIGFuZCBMQkNSIHJlZ3MKQEAgLTIxMSwyMCArMjExLDIwIEBACiAgKiBFeHRlcm5hbCBMb2NhbCBCdXMgcmF0ZSBpcwogICogICAgQ0xLSU4gKiBIUkNXTF9DU0JfVE9fQ0xLSU4gLyBIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEsgLyBMQ1JSX0NMS0RJVgogICovCi0jZGVmaW5lIENGR19MQ1JSCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl80KQotI2RlZmluZSBDRkdfTEJDX0xCQ1IJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xDUlIJKExDUlJfREJZUCB8IExDUlJfQ0xLRElWXzQpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJMHgwMDAwMDAwMAogCiAvKgogICogVGhlIE1QQzgzNHhFQSBNRFMgZm9yIDgzNHhFIHJldjMuMSBtYXkgbm90IGJlIGFzc2VtYmxlZCBTRFJBTSBtZW1vcnkuCi0gKiBpZiBib2FyZCBoYXMgU1JEQU0gb24gbG9jYWwgYnVzLCB5b3UgY2FuIGRlZmluZSBDRkdfTEJfU0RSQU0KKyAqIGlmIGJvYXJkIGhhcyBTUkRBTSBvbiBsb2NhbCBidXMsIHlvdSBjYW4gZGVmaW5lIENPTkZJR19TWVNfTEJfU0RSQU0KICAqLwotI3VuZGVmIENGR19MQl9TRFJBTQorI3VuZGVmIENPTkZJR19TWVNfTEJfU0RSQU0KIAotI2lmZGVmIENGR19MQl9TRFJBTQorI2lmZGVmIENPTkZJR19TWVNfTEJfU0RSQU0KIC8qIExvY2FsIGJ1cyBCUjIsIE9SMiBkZWZpbml0aW9uIGZvciBTRFJBTSBpZiBzb2xkZXJlZCBvbiB0aGUgTURTIGJvYXJkICovCiAvKgogICogQmFzZSBSZWdpc3RlciAyIGFuZCBPcHRpb24gUmVnaXN0ZXIgMiBjb25maWd1cmUgU0RSQU0uCi0gKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDRkdfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCisgKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgogICoKICAqIEZvciBCUjIsIG5lZWQ6CiAgKiAgICBCYXNlIGFkZHJlc3Mgb2YgMHhmMDAwMDAwMCA9IEJSWzA6MTZdID0gMTExMSAwMDAwIDAwMDAgMDAwMCAwCkBAIC0yMzYsMTYgKzIzNiwxNiBAQAogICogMCAgICA0ICAgIDggICAgMTIgICAxNiAgIDIwICAgMjQgICAyOAogICogMTExMSAwMDAwIDAwMDAgMDAwMCAwMDAxIDEwMDAgMDExMCAwMDAxID0gRjAwMDE4NjEKICAqCi0gKiBGSVhNRTogQ0ZHX0xCQ19TRFJBTV9CQVNFIHNob3VsZCBiZSBtYXNrZWQgYW5kIE9SJ2VkIGludG8KKyAqIEZJWE1FOiBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFIHNob3VsZCBiZSBtYXNrZWQgYW5kIE9SJ2VkIGludG8KICAqIEZJWE1FOiB0aGUgdG9wIDE3IGJpdHMgb2YgQlIyLgogICovCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4RjAwMDE4NjEgLyogUG9ydC1zaXplPTMyYml0LCBNU0VMPVNEUkFNICovCi0jZGVmaW5lIENGR19MQkxBV0JBUjJfUFJFTElNCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIyX1BSRUxJTQkweDgwMDAwMDE5IC8qIDY0TSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4RjAwMDE4NjEgLyogUG9ydC1zaXplPTMyYml0LCBNU0VMPVNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIyX1BSRUxJTQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjJfUFJFTElNCTB4ODAwMDAwMTkgLyogNjRNICovCiAKIC8qCi0gKiBUaGUgU0RSQU0gc2l6ZSBpbiBNQiwgQ0ZHX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KKyAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KICAqCiAgKiBGb3IgT1IyLCBuZWVkOgogICogICAgNjRNQiBtYXNrIGZvciBBTSwgT1IyWzA6N10gPSAxMTExIDExMDAKQEAgLTI1OCw2NSArMjU4LDY1IEBACiAgKiAxMTExIDExMDAgMDAwMCAwMDAwIDAxMTAgMTAwMSAwMDAwIDAwMDEgPSBGQzAwNjkwMQogICovCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JMHhGQzAwNjkwMQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JMHhGQzAwNjkwMQogCi0jZGVmaW5lIENGR19MQkNfTFNSVAkweDMyMDAwMDAwICAgIC8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIsIGFib3V0IDZ1cyAqLwotI2RlZmluZSBDRkdfTEJDX01SVFBSCTB4MjAwMDAwMDAgICAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsLCAyNjZNSHovMzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkweDMyMDAwMDAwICAgIC8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIsIGFib3V0IDZ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkweDIwMDAwMDAwICAgIC8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCwgMjY2TUh6LzMyICovCiAKIC8qCiAgKiBMU0RNUiBtYXNrcwogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUkZFTgkoMSA8PCAoMzEgLSAgMSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQlNNQTE1MTYJKDMgPDwgKDMxIC0gMTApKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JTTUExNjE3CSg0IDw8ICgzMSAtIDEwKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkNSNQkoMyA8PCAoMzEgLSAxNikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUkZDUjgJKDUgPDwgKDMxIC0gMTYpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUFJFVE9BQ1QzCSgzIDw8ICgzMSAtIDE5KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDYJKDUgPDwgKDMxIC0gMTkpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1BSRVRPQUNUNwkoNyA8PCAoMzEgLSAxOSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQUNUVE9SVzMJKDMgPDwgKDMxIC0gMjIpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlc3CSg3IDw8ICgzMSAtIDIyKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNgkoNiA8PCAoMzEgLSAyMikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQkw4CSgxIDw8ICgzMSAtIDIzKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9XUkMyCSgyIDw8ICgzMSAtIDI3KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9XUkMzCSgzIDw8ICgzMSAtIDI3KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9XUkM0CSgwIDw8ICgzMSAtIDI3KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CVUZDTUQJKDEgPDwgKDMxIC0gMjkpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0NMMwkoMyA8PCAoMzEgLSAzMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGRU4JKDEgPDwgKDMxIC0gIDEpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTUxNgkoMyA8PCAoMzEgLSAxMCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNjE3CSg0IDw8ICgzMSAtIDEwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUkZDUjUJKDMgPDwgKDMxIC0gMTYpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSOAkoNSA8PCAoMzEgLSAxNikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUMwkoMyA8PCAoMzEgLSAxOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUNgkoNSA8PCAoMzEgLSAxOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUNwkoNyA8PCAoMzEgLSAxOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlczCSgzIDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzcJKDcgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNgkoNiA8PCAoMzEgLSAyMikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JMOAkoMSA8PCAoMzEgLSAyMykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1dSQzIJKDIgPDwgKDMxIC0gMjcpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkMzCSgzIDw8ICgzMSAtIDI3KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDNAkoMCA8PCAoMzEgLSAyNykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JVRkNNRAkoMSA8PCAoMzEgLSAyOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0NMMwkoMyA8PCAoMzEgLSAzMSkpCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUwJKDAgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQVJGUlNICSgxIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1NSRlJTSAkoMiA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUENIQUxMCSg1IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FDVEJOSwkoNiA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMCSgwIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0gJKDEgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1NSRlJTSAkoMiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTVJXCSgzIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUENIQUxMCSg1IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BQ1RCTksJKDYgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQogCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQ09NTU9OICAgICggQ0ZHX0xCQ19MU0RNUl9SRkVOICAgICAgICAgICAgXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9CU01BMTUxNglcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX1JGQ1I4CQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX1BSRVRPQUNUNglcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0FDVFRPUlczCVwKLQkJCQl8IENGR19MQkNfTFNETVJfQkw4CQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX1dSQzMJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfQ0wzCQlcCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiAgICAoIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGRU4gICAgICAgICAgICBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTUxNglcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSOAkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1Q2CVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlczCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0JMOAkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDMwkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQ0wzCQlcCiAJCQkJKQogCiAvKgogICogU0RSQU0gQ29udHJvbGxlciBjb25maWd1cmF0aW9uIHNlcXVlbmNlLgogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMQkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTCkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8yCQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfQVJGUlNIKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzMJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNAkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX01SVykKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl81CQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfTk9STUFMKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xCQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEwpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzIJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMwkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNIKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl80CQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlcpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzUJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTCkKICNlbmRpZgogCiAvKgpAQCAtMzI0LDIyICszMjQsMjIgQEAKICAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWCAgICAgMQogI3VuZGVmIENPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUgICAgMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xICAgICAgICAoQ0ZHX0lNTVIrMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yICAgICAgICAoQ0ZHX0lNTVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMSAgICAgICAgKENPTkZJR19TWVNfSU1NUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yICAgICAgICAoQ09ORklHX1NZU19JTU1SKzB4NDYwMCkKIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmICBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwpAQCAtMzUzLDUzICszNTMsNTMgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMKICNkZWZpbmUgQ09ORklHX0kyQ19NVUxUSV9CVVMKICNkZWZpbmUgQ09ORklHX0kyQ19DTURfVFJFRQotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7ezAsMHg2OX19CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKLSNkZWZpbmUgQ0ZHX0kyQzJfT0ZGU0VUCQkweDMxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJe3swLDB4Njl9fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCQkweDMxMDAKIAogLyogU1BJICovCiAjZGVmaW5lIENPTkZJR19NUEM4WFhYX1NQSQogI3VuZGVmIENPTkZJR19TT0ZUX1NQSQkJCS8qIFNQSSBiaXQtYmFuZ2VkICovCiAKIC8qIEdQSU9zLiAgVXNlZCBhcyBTUEkgY2hpcCBzZWxlY3RzICovCi0jZGVmaW5lIENGR19HUElPMV9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0dQSU8xX0RJUgkJMHhDMDAwMDAwMCAgLyogU1BJIENTIG9uIDAsIExFRCBvbiAxICovCi0jZGVmaW5lIENGR19HUElPMV9EQVQJCTB4QzAwMDAwMDAgIC8qIEJvdGggYXJlIGFjdGl2ZSBMT1cgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9ESVIJCTB4QzAwMDAwMDAgIC8qIFNQSSBDUyBvbiAwLCBMRUQgb24gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX0RBVAkJMHhDMDAwMDAwMCAgLyogQm90aCBhcmUgYWN0aXZlIExPVyAqLwogCiAvKiBUU0VDICovCi0jZGVmaW5lIENGR19UU0VDMV9PRkZTRVQgMHgyNDAwMAotI2RlZmluZSBDRkdfVFNFQzEgKENGR19JTU1SK0NGR19UU0VDMV9PRkZTRVQpCi0jZGVmaW5lIENGR19UU0VDMl9PRkZTRVQgMHgyNTAwMAotI2RlZmluZSBDRkdfVFNFQzIgKENGR19JTU1SK0NGR19UU0VDMl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzFfT0ZGU0VUIDB4MjQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMSAoQ09ORklHX1NZU19JTU1SK0NPTkZJR19TWVNfVFNFQzFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMyX09GRlNFVCAweDI1MDAwCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzIgKENPTkZJR19TWVNfSU1NUitDT05GSUdfU1lTX1RTRUMyX09GRlNFVCkKIAogLyogVVNCICovCi0jZGVmaW5lIENGR19VU0VfTVBDODM0WFNZU19VU0JfUEhZCTEgLyogVXNlIFNZUyBib2FyZCBQSFkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfTVBDODM0WFNZU19VU0JfUEhZCTEgLyogVXNlIFNZUyBib2FyZCBQSFkgKi8KIAogLyoKICAqIEdlbmVyYWwgUENJCiAgKiBBZGRyZXNzZXMgYXJlIG1hcHBlZCAxLTEuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fUEhZUwlDRkdfUENJMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfTU1JT19CQVNFCTB4OTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTU1JT19QSFlTCUNGR19QQ0kxX01NSU9fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NTUlPX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCTB4RTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFCTB4OTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fUEhZUwlDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NTUlPX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMJMHhFMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCiAKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX0JBU0UJMHhBMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9NRU1fUEhZUwlDRkdfUENJMl9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMl9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTJfTU1JT19CQVNFCTB4QjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfTU1JT19QSFlTCUNGR19QQ0kyX01NSU9fQkFTRQotI2RlZmluZSBDRkdfUENJMl9NTUlPX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kyX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9JT19QSFlTCTB4RTIxMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fQkFTRQkweEEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTU1JT19CQVNFCTB4QjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01NSU9fUEhZUwlDT05GSUdfU1lTX1BDSTJfTU1JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NTUlPX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMJMHhFMjEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAKQEAgLTQyNSw3ICs0MjUsNyBAQAogI2VuZGlmCiAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTk1NyAgLyogRnJlZXNjYWxlICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDE5NTcgIC8qIEZyZWVzY2FsZSAqLwogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwogCkBAIC00NjAsMTQgKzQ2MCwxNCBAQAogICogQ29uZmlndXJlIG9uLWJvYXJkIFJUQwogICovCiAjZGVmaW5lIENPTkZJR19SVENfRFMxMzc0CQkJLyogdXNlIGRzMTM3NCBydGMgdmlhIGkyYwkqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCQkweDY4CS8qIGF0IGFkZHJlc3MgMHg2OAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJCTB4NjgJLyogYXQgYWRkcmVzcyAweDY4CQkqLwogCiAvKgogICogRW52aXJvbm1lbnQKICAqLwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAkjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAJLyogMTI4SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogCkBAIC00NzYsMTQgKzQ3NiwxNCBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKICNlbHNlCi0JI2RlZmluZSBDRkdfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cgKi8KIAkjZGVmaW5lIENPTkZJR19FTlZfSVNfTk9XSEVSRQkxCS8qIFN0b3JlIEVOViBpbiBtZW1vcnkgb25seSAqLwotCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQogCSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCiAKIAogLyoKQEAgLTUwOSw3ICs1MDksNyBAQAogICAgICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICAgICAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICAgICAjdW5kZWYgQ09ORklHX0NNRF9MT0FEUwogI2VuZGlmCkBAIC01MjAsNjAgKzUyMCw2MCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotCSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKLSNkZWZpbmUgQ0ZHX1JDV0hfUENJSE9TVCAweDgwMDAwMDAwIC8qIFBDSUhPU1QgICovCisjZGVmaW5lIENPTkZJR19TWVNfUkNXSF9QQ0lIT1NUIDB4ODAwMDAwMDAgLyogUENJSE9TVCAgKi8KIAogI2lmIDEgLyo1MjgvMjY0Ki8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOIHxcCiAJSFJDV0xfVkNPXzFYMiB8XAogCUhSQ1dMX0NPUkVfVE9fQ1NCXzJYMSkKICNlbGlmIDAgLyozOTYvMTMyKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOIHxcCiAJSFJDV0xfVkNPXzFYNCB8XAogCUhSQ1dMX0NPUkVfVE9fQ1NCXzNYMSkKICNlbGlmIDAgLyoyNjQvMTMyKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOIHxcCiAJSFJDV0xfVkNPXzFYNCB8XAogCUhSQ1dMX0NPUkVfVE9fQ1NCXzJYMSkKICNlbGlmIDAgLyoxMzIvMTMyKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOIHxcCiAJSFJDV0xfVkNPXzFYNCB8XAogCUhSQ1dMX0NPUkVfVE9fQ1NCXzFYMSkKICNlbGlmIDAgLyoyNjQvMjY0ICovCi0jZGVmaW5lIENGR19IUkNXX0xPVyAoXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTE9XIChcCiAJSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLXzFYMSB8XAogCUhSQ1dMX0REUl9UT19TQ0JfQ0xLXzFYMSB8XAogCUhSQ1dMX0NTQl9UT19DTEtJTiB8XApAQCAtNTgyLDcgKzU4Miw3IEBACiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19QQ0lTTEFWRQotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0FHRU5UIHxcCiAJSFJDV0hfNjRfQklUX1BDSSB8XAogCUhSQ1dIX1BDSTFfQVJCSVRFUl9ESVNBQkxFIHxcCkBAIC01OTYsNyArNTk2LDcgQEAKIAlIUkNXSF9UU0VDMk1fSU5fR01JSSApCiAjZWxzZQogI2lmIGRlZmluZWQoUENJXzY0QklUKQotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF82NF9CSVRfUENJIHxcCiAJSFJDV0hfUENJMV9BUkJJVEVSX0VOQUJMRSB8XApAQCAtNjA5LDcgKzYwOSw3IEBACiAJSFJDV0hfVFNFQzFNX0lOX0dNSUkgfFwKIAlIUkNXSF9UU0VDMk1fSU5fR01JSSApCiAjZWxzZQotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF8zMl9CSVRfUENJIHxcCiAJSFJDV0hfUENJMV9BUkJJVEVSX0VOQUJMRSB8XApAQCAtNjI3LDg1ICs2MjcsODUgQEAKIC8qCiAgKiBTeXN0ZW0gcGVyZm9ybWFuY2UKICAqLwotI2RlZmluZSBDRkdfQUNSX1BJUEVfREVQCTMJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAoMC0zKSAqLwotI2RlZmluZSBDRkdfQUNSX1JQVENOVAkJMwkvKiBBcmJpdGVyIHJlcGVhdCBjb3VudCAoMC03KSAqLwotI2RlZmluZSBDRkdfU1BDUl9UU0VDMUVQCTMJLyogVFNFQzEgZW1lcmdlbmN5IHByaW9yaXR5ICgwLTMpICovCi0jZGVmaW5lIENGR19TUENSX1RTRUMyRVAJMwkvKiBUU0VDMiBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1JfVFNFQzFDTQkxCS8qIFRTRUMxIGNsb2NrIG1vZGUgKDAtMykgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1JfVFNFQzJDTQkxCS8qIFRTRUMyICYgSTJDMCBjbG9jayBtb2RlICgwLTMpICovCisjZGVmaW5lIENPTkZJR19TWVNfQUNSX1BJUEVfREVQCTMJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAoMC0zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDUl9SUFRDTlQJCTMJLyogQXJiaXRlciByZXBlYXQgY291bnQgKDAtNykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUENSX1RTRUMxRVAJMwkvKiBUU0VDMSBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUENSX1RTRUMyRVAJMwkvKiBUU0VDMiBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSX1RTRUMxQ00JMQkvKiBUU0VDMSBjbG9jayBtb2RlICgwLTMpICovCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUl9UU0VDMkNNCTEJLyogVFNFQzIgJiBJMkMwIGNsb2NrIG1vZGUgKDAtMykgKi8KIAogLyogU3lzdGVtIElPIENvbmZpZyAqLwotI2RlZmluZSBDRkdfU0lDUkggU0lDUkhfVFNPQkkxCi0jZGVmaW5lIENGR19TSUNSTCBTSUNSTF9MRFBfQQorI2RlZmluZSBDT05GSUdfU1lTX1NJQ1JIIFNJQ1JIX1RTT0JJMQorI2RlZmluZSBDT05GSUdfU1lTX1NJQ1JMIFNJQ1JMX0xEUF9BCiAKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkweDAwMDAwMDAwMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAlISUQwX0VOQUJMRV9NQUNISU5FX0NIRUNLCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCTB4MDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAlISUQwX0VOQUJMRV9NQUNISU5FX0NIRUNLCiAKLS8qICNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCShcCisvKiAjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJKFwKIAlISUQwX0VOQUJMRV9JTlNUUlVDVElPTl9DQUNIRSB8XAogCUhJRDBfRU5BQkxFX01fQklUIHxcCiAJSElEMF9FTkFCTEVfQUREUkVTU19CUk9BRENBU1QgKSAqLwogCiAKLSNkZWZpbmUgQ0ZHX0hJRDIgSElEMl9IQkUKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyIEhJRDJfSEJFCiAjZGVmaW5lIENPTkZJR19ISUdIX0JBVFMJMQkvKiBIaWdoIEJBVHMgc3VwcG9ydGVkICovCiAKIC8qIEREUiBAIDB4MDAwMDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTAkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUJKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogUENJIEAgMHg4MDAwMDAwMCAqLwogI2lmZGVmIENPTkZJR19QQ0kKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX1BDSTFfTUVNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMkwJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUMlUJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKICNlbHNlCi0jZGVmaW5lIENGR19JQkFUMUwJKDApCi0jZGVmaW5lIENGR19JQkFUMVUJKDApCi0jZGVmaW5lIENGR19JQkFUMkwJKDApCi0jZGVmaW5lIENGR19JQkFUMlUJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCSgwKQogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTVBDODNYWF9QQ0kyCi0jZGVmaW5lIENGR19JQkFUM0wJKENGR19QQ0kyX01FTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDNVCShDRkdfUENJMl9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDRMCShDRkdfUENJMl9NTUlPX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDRVCShDRkdfUENJMl9NTUlPX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJKENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkoQ09ORklHX1NZU19QQ0kyX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRVCShDT05GSUdfU1lTX1BDSTJfTU1JT19CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAjZWxzZQotI2RlZmluZSBDRkdfSUJBVDNMCSgwKQotI2RlZmluZSBDRkdfSUJBVDNVCSgwKQotI2RlZmluZSBDRkdfSUJBVDRMCSgwKQotI2RlZmluZSBDRkdfSUJBVDRVCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0VQkoMCkKICNlbmRpZgogCiAvKiBJTU1SQkFSIEAgMHhFMDAwMDAwMCwgUENJIElPIEAgMHhFMjAwMDAwMCAmIEJDU1IgQCAweEUyNDAwMDAwICovCi0jZGVmaW5lIENGR19JQkFUNUwJKENGR19JTU1SIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQkoQ0ZHX0lNTVIgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNUwJKENPTkZJR19TWVNfSU1NUiB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVVCShDT05GSUdfU1lTX0lNTVIgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogU0RSQU0gQCAweEYwMDAwMDAwLCBzdGFjayBpbiBEQ0FDSEUgMHhGREYwMDAwMCAmIEZMQVNIIEAgMHhGRTAwMDAwMCAqLwotI2RlZmluZSBDRkdfSUJBVDZMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDZVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUN0wJKDApCi0jZGVmaW5lIENGR19JQkFUN1UJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VQkoMCkKIAotI2RlZmluZSBDRkdfREJBVDBMCUNGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVQlDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKLSNkZWZpbmUgQ0ZHX0RCQVQyTAlDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUJQ0ZHX0lCQVQyVQotI2RlZmluZSBDRkdfREJBVDNMCUNGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVQlDRkdfSUJBVDNVCi0jZGVmaW5lIENGR19EQkFUNEwJQ0ZHX0lCQVQ0TAotI2RlZmluZSBDRkdfREJBVDRVCUNGR19JQkFUNFUKLSNkZWZpbmUgQ0ZHX0RCQVQ1TAlDRkdfSUJBVDVMCi0jZGVmaW5lIENGR19EQkFUNVUJQ0ZHX0lCQVQ1VQotI2RlZmluZSBDRkdfREJBVDZMCUNGR19JQkFUNkwKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQlDRkdfSUJBVDZVCi0jZGVmaW5lIENGR19EQkFUN0wJQ0ZHX0lCQVQ3TAotI2RlZmluZSBDRkdfREJBVDdVCUNGR19JQkFUN1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNEwJQ09ORklHX1NZU19JQkFUNEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNFUJQ09ORklHX1NZU19JQkFUNFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNUwJQ09ORklHX1NZU19JQkFUNUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNVUJQ09ORklHX1NZU19JQkFUNVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNkwJQ09ORklHX1NZU19JQkFUNkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUJQ09ORklHX1NZU19JQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJQ09ORklHX1NZU19JQkFUN0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJQ09ORklHX1NZU19JQkFUN1UKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODM0OUlUWC5oIGIvaW5jbHVkZS9jb25maWdzL01QQzgzNDlJVFguaAppbmRleCA4MWVhOWY4Li5mNjMzZjI0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODM0OUlUWC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzQ5SVRYLmgKQEAgLTU3LDcgKzU3LDcgQEAKICNkZWZpbmUgX19DT05GSUdfSAogCiAjaWYgKFRFWFRfQkFTRSA9PSAweEZFMDAwMDAwKQotI2RlZmluZSBDRkdfTE9XQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QKICNlbmRpZgogCiAvKgpAQCAtNjYsNyArNjYsNyBAQAogI2RlZmluZSBDT05GSUdfTVBDODM0WAkJLyogTVBDODM0eCBmYW1pbHkgKDgzNDMsIDgzNDcsIDgzNDkpICovCiAjZGVmaW5lIENPTkZJR19NUEM4MzQ5CQkvKiBNUEM4MzQ5IHNwZWNpZmljICovCiAKLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RTAwMDAwMDAJLyogVGhlIElNTVIgaXMgcmVsb2NhdGVkIHRvIGhlcmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEUwMDAwMDAwCS8qIFRoZSBJTU1SIGlzIHJlbG9jYXRlZCB0byBoZXJlICovCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9GCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgpAQCAtOTUsMjYgKzk1LDI2IEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCiAjZGVmaW5lIENPTkZJR19JMkNfTVVMVElfQlVTCiAjZGVmaW5lIENPTkZJR19JMkNfQ01EX1RSRUUKLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAotI2RlZmluZSBDRkdfSTJDMl9PRkZTRVQJCTB4MzEwMAotI2RlZmluZSBDRkdfU1BEX0JVU19OVU0JCTEJLyogVGhlIEkyQyBidXMgZm9yIFNQRCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCQkweDMxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TUERfQlVTX05VTQkJMQkvKiBUaGUgSTJDIGJ1cyBmb3IgU1BEICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ184NTc0X0FERFIxCTB4MjAJLyogSTJDMSwgUENGODU3NCAqLwotI2RlZmluZSBDRkdfSTJDXzg1NzRfQUREUjIJMHgyMQkvKiBJMkMxLCBQQ0Y4NTc0ICovCi0jZGVmaW5lIENGR19JMkNfODU3NEFfQUREUjEJMHgzOAkvKiBJMkMxLCBQQ0Y4NTc0QSAqLwotI2RlZmluZSBDRkdfSTJDXzg1NzRBX0FERFIyCTB4MzkJLyogSTJDMSwgUENGODU3NEEgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEkyQzAsIEJvYXJkIEVFUFJPTSAqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgJLyogSTJDMSwgRFMxMzM5IFJUQyovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDXzg1NzRfQUREUjEJMHgyMAkvKiBJMkMxLCBQQ0Y4NTc0ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDXzg1NzRfQUREUjIJMHgyMQkvKiBJMkMxLCBQQ0Y4NTc0ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDXzg1NzRBX0FERFIxCTB4MzgJLyogSTJDMSwgUENGODU3NEEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfODU3NEFfQUREUjIJMHgzOQkvKiBJMkMxLCBQQ0Y4NTc0QSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEkyQzAsIEJvYXJkIEVFUFJPTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CS8qIEkyQzEsIERTMTMzOSBSVEMqLwogI2RlZmluZSBTUERfRUVQUk9NX0FERFJFU1MJMHg1MQkvKiBJMkMxLCBERFIgKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcmVzc2VzOiAqLwotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXt7MSwgQ0ZHX0kyQ184NTc0X0FERFIxfSwgXAotCQkJCSB7MSwgQ0ZHX0kyQ184NTc0X0FERFIyfSwgXAotCQkJCSB7MSwgQ0ZHX0kyQ184NTc0QV9BRERSMX0sIFwKLQkJCQkgezEsIENGR19JMkNfODU3NEFfQUREUjJ9fQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7ezEsIENPTkZJR19TWVNfSTJDXzg1NzRfQUREUjF9LCBcCisJCQkJIHsxLCBDT05GSUdfU1lTX0kyQ184NTc0X0FERFIyfSwgXAorCQkJCSB7MSwgQ09ORklHX1NZU19JMkNfODU3NEFfQUREUjF9LCBcCisJCQkJIHsxLCBDT05GSUdfU1lTX0kyQ184NTc0QV9BRERSMn19CiAvKiBCaXQgZGVmaW5pdGlvbnMgZm9yIHRoZSA4NTc0W0FdIEkyQyBleHBhbmRlciAqLwogI2RlZmluZSBJMkNfODU3NF9SRVZJU0lPTgkweDAzCS8qIEJvYXJkIHJldmlzaW9uLCAwMD0wLjAsIDAxPTAuMSwgMTA9MS4wICovCiAjZGVmaW5lIEkyQ184NTc0X0NGCQkweDA4CS8qIDE9Q29tcGFjdCBmbGFzaCBhYnNlbnQsIDA9cHJlc2VudCAqLwpAQCAtMTI5LDE1ICsxMjksMTUgQEAKIC8qIENvbXBhY3QgRmxhc2ggKi8KICNpZmRlZiBDT05GSUdfQ09NUEFDVF9GTEFTSAogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX0NGX0JBU0UKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTAKLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDIwMAotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJMgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfQ0ZfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMjAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJMgogCiAjZGVmaW5lIEFUQV9SRVNFVF9USU1FCTEJLyogSWYgYSBDRiBjYXJkIGlzIG5vdCBpbnNlcnRlZCwgdGltZSBvdXQgcXVpY2tseSAqLwogCkBAIC0xNDgsMTQgKzE0OCwxNCBAQAogLyoKICAqIEREUiBTZXR1cAogICovCi0jZGVmaW5lIENGR19ERFJfQkFTRQkJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCUNGR19ERFJfQkFTRQotI2RlZmluZSBDRkdfODNYWF9ERFJfVVNFU19DUzAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgxMDAwCQkvKiBtZW10ZXN0IHJlZ2lvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9CQVNFCQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTXzgzWFhfRERSX1VTRVNfQ1MwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDEwMDAJCS8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MjAwMAogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0xLX0NOVEwJKEREUl9TRFJBTV9DTEtfQ05UTF9TU19FTiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0xLX0NOVEwJKEREUl9TRFJBTV9DTEtfQ05UTF9TU19FTiB8IFwKIAkJCQlERFJfU0RSQU1fQ0xLX0NOVExfQ0xLX0FESlVTVF8wNzUpCiAKICNpZmRlZiBDT05GSUdfSEFSRF9JMkMKQEAgLTE2MywzNCArMTYzLDM0IEBACiAjZW5kaWYKIAogI2lmbmRlZiBDT05GSUdfU1BEX0VFUFJPTQkvKiBObyBTUEQ/IFRoZW4gbWFudWFsbHkgc2V0IHVwIEREUiBwYXJhbWV0ZXJzICovCi0gICAgI2RlZmluZSBDRkdfRERSX1NJWkUJMjU2CQkvKiBNYiAqLwotICAgICNkZWZpbmUgQ0ZHX0REUl9DT05GSUcJKENTQ09ORklHX0VOIHwgQ1NDT05GSUdfUk9XX0JJVF8xMyB8IENTQ09ORklHX0NPTF9CSVRfMTApCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9TSVpFCTI1NgkJLyogTWIgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTkZJRwkoQ1NDT05GSUdfRU4gfCBDU0NPTkZJR19ST1dfQklUXzEzIHwgQ1NDT05GSUdfQ09MX0JJVF8xMCkKIAotICAgICNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMQkweDI2MjQyMzIxCi0gICAgI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MDAwMDA4MDAgIC8qIFA5LTQ1LCBtYXkgbmVlZCB0dW5pbmcgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4MjYyNDIzMjEKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCTB4MDAwMDA4MDAgIC8qIFA5LTQ1LCBtYXkgbmVlZCB0dW5pbmcgKi8KICNlbmRpZgogCiAvKgogICpGbGFzaCBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCQkvKiB1c2UgdGhlIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCQkvKiB1c2UgdGhlIENGSSBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggICAqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTM1CS8qIDEyNyA2NEtCIHNlY3RvcnMgKyA4IDhLQiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTM1CS8qIDEyNyA2NEtCIHNlY3RvcnMgKyA4IDhLQiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKIAogLyogVGhlIElUWCBoYXMgdHdvIGZsYXNoIGNoaXBzLCBidXQgdGhlIElUWC1HUCBoYXMgb25seSBvbmUuICBUbyBzdXBwb3J0IGJvdGgKIGJvYXJkcywgd2Ugc2F5IHdlIGhhdmUgdHdvLCBidXQgZG9uJ3QgZGlzcGxheSBhIG1lc3NhZ2UgaWYgd2UgZmluZCBvbmx5IG9uZS4gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJe0NGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSArIDB4ODAwMDAwfQotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMTYJCS8qIEZMQVNIIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkVfU0hJRlQJNAkJLyogbG9nMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkJLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7Q09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDgwMDAwMH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkxNgkJLyogRkxBU0ggc2l6ZSBpbiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkVfU0hJRlQJNAkJLyogbG9nMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJCS8qIFVzZSBoL3cgRmxhc2ggcHJvdGVjdGlvbi4gKi8KIAogLyogVml0ZXNzZSA3Mzg1ICovCiAKQEAgLTIxMCwzNCArMjEwLDM0IEBACiAKIC8qIEZsYXNoICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCShDRkdfRkxBU0hfQkFTRSB8IEJSX1BTXzE2IHwgQlJfVikKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCSgofihDRkdfRkxBU0hfU0laRSAtIDEpIDw8IDIwKSB8IE9SX1VQTV9YQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJSX1BTXzE2IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkoKH4oQ09ORklHX1NZU19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIHwgT1JfVVBNX1hBTSB8IFwKIAkJCQlPUl9HUENNX0NTTlQgfCBPUl9HUENNX0FDU19ESVYyIHwgT1JfR1BDTV9YQUNTIHwgT1JfR1BDTV9TQ1lfMTUgfCBcCiAJCQkJT1JfR1BDTV9UUkxYIHwgT1JfR1BDTV9FSFRSIHwgT1JfR1BDTV9FQUQpCi0jZGVmaW5lIENGR19MQkxBV0JBUjBfUFJFTElNCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19MQkxBV0FSMF9QUkVMSU0JKExCTEFXQVJfRU4gfCAoMHgxMyArIENGR19GTEFTSF9TSVpFX1NISUZUKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIwX1BSRUxJTQkoTEJMQVdBUl9FTiB8ICgweDEzICsgQ09ORklHX1NZU19GTEFTSF9TSVpFX1NISUZUKSkKIAogLyogVml0ZXNzZSA3Mzg1ICovCiAKLSNkZWZpbmUgQ0ZHX1ZTQzczODVfQkFTRQkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVlNDNzM4NV9CQVNFCTB4RjgwMDAwMDAKIAogI2lmZGVmIENPTkZJR19WU0M3Mzg1X0VORVQKIAotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJKENGR19WU0M3Mzg1X0JBU0UgfCBCUl9QU184IHwgQlJfVikKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCShPUl9BTV8xMjhLQiB8IE9SX0dQQ01fQ1NOVCB8IE9SX0dQQ01fWEFDUyB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkoQ09ORklHX1NZU19WU0M3Mzg1X0JBU0UgfCBCUl9QU184IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkoT1JfQU1fMTI4S0IgfCBPUl9HUENNX0NTTlQgfCBPUl9HUENNX1hBQ1MgfCBcCiAJCQkJT1JfR1BDTV9TQ1lfMTUgfCBPUl9HUENNX1NFVEEgfCBPUl9HUENNX1RSTFggfCBcCiAJCQkJT1JfR1BDTV9FSFRSIHwgT1JfR1BDTV9FQUQpCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMV9QUkVMSU0JQ0ZHX1ZTQzczODVfQkFTRQotI2RlZmluZSBDRkdfTEJMQVdBUjFfUFJFTElNCShMQkxBV0FSX0VOIHwgTEJMQVdBUl8xMjhLQikKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjFfUFJFTElNCUNPTkZJR19TWVNfVlNDNzM4NV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjFfUFJFTElNCShMQkxBV0FSX0VOIHwgTEJMQVdBUl8xMjhLQikKIAogI2VuZGlmCiAKIC8qIExFRCAqLwogCi0jZGVmaW5lIENGR19MRURfQkFTRQkJMHhGOTAwMDAwMAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJKENGR19MRURfQkFTRSB8IEJSX1BTXzggfCBCUl9WKQotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJKE9SX0FNXzJNQiB8IE9SX0dQQ01fQ1NOVCB8IE9SX0dQQ01fQUNTX0RJVjIgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfTEVEX0JBU0UJCTB4RjkwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkoQ09ORklHX1NZU19MRURfQkFTRSB8IEJSX1BTXzggfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCShPUl9BTV8yTUIgfCBPUl9HUENNX0NTTlQgfCBPUl9HUENNX0FDU19ESVYyIHwgXAogCQkJCU9SX0dQQ01fWEFDUyB8IE9SX0dQQ01fU0NZXzkgfCBPUl9HUENNX1RSTFggfCBcCiAJCQkJT1JfR1BDTV9FSFRSIHwgT1JfR1BDTV9FQUQpCiAKQEAgLTI0NSwzOSArMjQ1LDM5IEBACiAKICNpZmRlZiBDT05GSUdfQ09NUEFDVF9GTEFTSAogCi0jZGVmaW5lIENGR19DRl9CQVNFCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ0ZfQkFTRQkJMHhGMDAwMDAwMAogCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkoQ0ZHX0NGX0JBU0UgfCBCUl9QU18xNiB8IEJSX01TX1VQTUEgfCBCUl9WKQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJKE9SX1VQTV9BTSB8IE9SX1VQTV9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkoQ09ORklHX1NZU19DRl9CQVNFIHwgQlJfUFNfMTYgfCBCUl9NU19VUE1BIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkoT1JfVVBNX0FNIHwgT1JfVVBNX0JJKQogCi0jZGVmaW5lIENGR19MQkxBV0JBUjNfUFJFTElNCUNGR19DRl9CQVNFCi0jZGVmaW5lIENGR19MQkxBV0FSM19QUkVMSU0JKExCTEFXQVJfRU4gfCBMQkxBV0FSXzY0S0IpCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIzX1BSRUxJTQlDT05GSUdfU1lTX0NGX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSM19QUkVMSU0JKExCTEFXQVJfRU4gfCBMQkxBV0FSXzY0S0IpCiAKICNlbmRpZgogCiAvKgogICogVS1Cb290IG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSN1bmRlZglDRkdfUkFNQk9PVAorI3VuZGVmCUNPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4RkQwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0qLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RkQwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkweDEwMAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotLyogQ0ZHX01PTklUT1JfTEVOIG11c3QgYmUgYSBtdWx0aXBsZSBvZiBDT05GSUdfRU5WX1NFQ1RfU0laRSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworLyogQ09ORklHX1NZU19NT05JVE9SX0xFTiBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgQ09ORklHX0VOVl9TRUNUX1NJWkUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKgogICogTG9jYWwgQnVzIExDUlIgYW5kIExCQ1IgcmVncwpAQCAtMjg1LDMwICsyODUsMzAgQEAKICAqIEV4dGVybmFsIExvY2FsIEJ1cyByYXRlIGlzCiAgKiAgICBDTEtJTiAqIEhSQ1dMX0NTQl9UT19DTEtJTiAvIEhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMSyAvIExDUlJfQ0xLRElWCiAgKi8KLSNkZWZpbmUgQ0ZHX0xDUlIJKExDUlJfREJZUCB8IExDUlJfQ0xLRElWXzQpCi0jZGVmaW5lIENGR19MQkNfTEJDUgkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTENSUgkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MU1JUCTB4MzIwMDAwMDAgICAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciwgYWJvdXQgNnVzICovCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJMHgyMDAwMDAwMCAgICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwsIDI2Nk1Iei8zMiovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJMHgzMjAwMDAwMCAgICAvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyLCBhYm91dCA2dXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJMHgyMDAwMDAwMCAgICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwsIDI2Nk1Iei8zMiovCiAKIC8qCiAgKiBTZXJpYWwgUG9ydAogICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgMTE1MjAwfQogCiAjZGVmaW5lIENPTkZJR19DT05TT0xFCQl0dHlTMAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19JTU1SICsgMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfSU1NUiArIDB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfSU1NUiArIDB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfSU1NUiArIDB4NDYwMCkKIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwogI2RlZmluZSBDT05GSUdfT0ZfTElCRkRUCTEKQEAgLTMyNiwyNiArMzI2LDI2IEBACiAgKiBHZW5lcmFsIFBDSQogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kxX01NSU9fQkFTRQkoQ0ZHX1BDSTFfTUVNX0JBU0UgKyBDRkdfUENJMV9NRU1fU0laRSkKLSNkZWZpbmUgQ0ZHX1BDSTFfTU1JT19QSFlTCUNGR19QQ0kxX01NSU9fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NTUlPX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCTB4RTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDAxMDAwMDAwCS8qIDE2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRQkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFICsgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTCUNPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweEUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDEwMDAwMDAJLyogMTZNICovCiAKICNpZmRlZiBDT05GSUdfTVBDODNYWF9QQ0kyCi0jZGVmaW5lIENGR19QQ0kyX01FTV9CQVNFCShDRkdfUENJMV9NTUlPX0JBU0UgKyBDRkdfUENJMV9NTUlPX1NJWkUpCi0jZGVmaW5lIENGR19QQ0kyX01FTV9QSFlTCUNGR19QQ0kyX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kyX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJMl9NTUlPX0JBU0UJKENGR19QQ0kyX01FTV9CQVNFICsgQ0ZHX1BDSTJfTUVNX1NJWkUpCi0jZGVmaW5lIENGR19QQ0kyX01NSU9fUEhZUwlDRkdfUENJMl9NTUlPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTJfTU1JT19TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJMl9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fUEhZUwkoQ0ZHX1BDSTFfSU9fUEhZUyArIENGR19QQ0kxX0lPX1NJWkUpCi0jZGVmaW5lIENGR19QQ0kyX0lPX1NJWkUJMHgwMTAwMDAwMAkvKiAxNk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFCShDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFICsgQ09ORklHX1NZU19QQ0kxX01NSU9fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMl9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NTUlPX0JBU0UJKENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSArIENPTkZJR19TWVNfUENJMl9NRU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01NSU9fUEhZUwlDT05GSUdfU1lTX1BDSTJfTU1JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NTUlPX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMJKENPTkZJR19TWVNfUENJMV9JT19QSFlTICsgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19TSVpFCTB4MDEwMDAwMDAJLyogMTZNICovCiAjZW5kaWYKIAogI2RlZmluZSBfSU9fQkFTRQkJMHgwMDAwMDAwMAkvKiBwb2ludHMgdG8gUENJIEkvTyBzcGFjZSAqLwpAQCAtMzYwLDcgKzM2MCw3IEBACiAKICNpZm5kZWYgQ09ORklHX1BDSV9QTlAKICAgICAjZGVmaW5lIFBDSV9FTkVUMF9JT0FERFIJMHgwMDAwMDAwMAotICAgICNkZWZpbmUgUENJX0VORVQwX01FTUFERFIJQ0ZHX1BDSTJfTUVNX0JBU0UKKyAgICAjZGVmaW5lIFBDSV9FTkVUMF9NRU1BRERSCUNPTkZJR19TWVNfUENJMl9NRU1fQkFTRQogICAgICNkZWZpbmUgUENJX0lEU0VMX05VTUJFUgkweDBmCS8qIElEU0VMID0gQUQxNSAqLwogI2VuZGlmCiAKQEAgLTM4OCw3ICszODgsNyBAQAogI2lmZGVmIENPTkZJR19UU0VDMQogI2RlZmluZSBDT05GSUdfSEFTX0VUSDAKICNkZWZpbmUgQ09ORklHX1RTRUMxX05BTUUgICJUU0VDMCIKLSNkZWZpbmUgQ0ZHX1RTRUMxX09GRlNFVAkweDI0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzFfT0ZGU0VUCTB4MjQwMDAKICNkZWZpbmUgVFNFQzFfUEhZX0FERFIJCTB4MWMJLyogVlNDODIwMSB1c2VzIGFkZHJlc3MgMHgxYyAqLwogI2RlZmluZSBUU0VDMV9QSFlJRFgJCTAKICNkZWZpbmUgVFNFQzFfRkxBR1MJCVRTRUNfR0lHQUJJVApAQCAtMzk3LDcgKzM5Nyw3IEBACiAjaWZkZWYgQ09ORklHX1RTRUMyCiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQogI2RlZmluZSBDT05GSUdfVFNFQzJfTkFNRSAgIlRTRUMxIgotI2RlZmluZSBDRkdfVFNFQzJfT0ZGU0VUCTB4MjUwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMl9PRkZTRVQJMHgyNTAwMAogCiAjZGVmaW5lIFRTRUMyX1BIWV9BRERSCQk0CiAjZGVmaW5lIFRTRUMyX1BIWUlEWAkJMApAQCAtNDEzLDIxICs0MTMsMjEgQEAKICAqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogICAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKLSAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKICAgI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwIC8qIDY0SyAob25lIHNlY3RvcikgZm9yIGVudmlyb25tZW50ICovCiAgICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNlbHNlCi0gICNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLworICAjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCiAgICN1bmRlZiAgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKICAgI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0gICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKICAgI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTQ2OSw0NyArNDY5LDQ3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCQkvKiBDb21tYW5kLWxpbmUgZWRpdGluZyAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAjZGVmaW5lIENPTkZJR19MT0FEQUREUgk1MDAwMDAJLyogZGVmYXVsdCBsb2NhdGlvbiBmb3IgdGZ0cCBhbmQgYm9vdG0gKi8KIAogI2lmZGVmIENPTkZJR19NUEM4MzQ5SVRYCi0jZGVmaW5lIENGR19QUk9NUFQJIk1QQzgzNDlFLW1JVFg+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiTVBDODM0OUUtbUlUWD4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZWxzZQotI2RlZmluZSBDRkdfUFJPTVBUCSJNUEM4MzQ5RS1tSVRYLUdQPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIk1QQzgzNDlFLW1JVFgtR1A+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSAgICAjZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotICAgICNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOXzRYMSB8XAogCUhSQ1dMX1ZDT18xWDIgfFwKIAlIUkNXTF9DT1JFX1RPX0NTQl8yWDEpCiAKLSNpZmRlZiBDRkdfTE9XQk9PVAotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjaWZkZWYgQ09ORklHX1NZU19MT1dCT09UCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF8zMl9CSVRfUENJIHxcCiAJSFJDV0hfUENJMV9BUkJJVEVSX0VOQUJMRSB8XApAQCAtNTIyLDcgKzUyMiw3IEBACiAJSFJDV0hfVFNFQzFNX0lOX0dNSUkgfFwKIAlIUkNXSF9UU0VDMk1fSU5fR01JSSApCiAjZWxzZQotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF8zMl9CSVRfUENJIHxcCiAJSFJDV0hfUENJMV9BUkJJVEVSX0VOQUJMRSB8XApAQCAtNTM5LDgxICs1MzksODEgQEAKIC8qCiAgKiBTeXN0ZW0gcGVyZm9ybWFuY2UKICAqLwotI2RlZmluZSBDRkdfQUNSX1BJUEVfREVQCTMJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAoMC0zKSAqLwotI2RlZmluZSBDRkdfQUNSX1JQVENOVAkJMwkvKiBBcmJpdGVyIHJlcGVhdCBjb3VudCAoMC03KSAqLwotI2RlZmluZSBDRkdfU1BDUl9UU0VDMUVQCTMJLyogVFNFQzEgZW1lcmdlbmN5IHByaW9yaXR5ICgwLTMpICovCi0jZGVmaW5lIENGR19TUENSX1RTRUMyRVAJMwkvKiBUU0VDMiBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1JfVFNFQzFDTQkxCS8qIFRTRUMxIGNsb2NrIG1vZGUgKDAtMykgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1JfVFNFQzJDTQkxCS8qIFRTRUMyICYgSTJDMCBjbG9jayBtb2RlICgwLTMpICovCisjZGVmaW5lIENPTkZJR19TWVNfQUNSX1BJUEVfREVQCTMJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAoMC0zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDUl9SUFRDTlQJCTMJLyogQXJiaXRlciByZXBlYXQgY291bnQgKDAtNykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUENSX1RTRUMxRVAJMwkvKiBUU0VDMSBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUENSX1RTRUMyRVAJMwkvKiBUU0VDMiBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSX1RTRUMxQ00JMQkvKiBUU0VDMSBjbG9jayBtb2RlICgwLTMpICovCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUl9UU0VDMkNNCTEJLyogVFNFQzIgJiBJMkMwIGNsb2NrIG1vZGUgKDAtMykgKi8KIAogLyoKICAqIFN5c3RlbSBJTyBDb25maWcKICAqLwotI2RlZmluZSBDRkdfU0lDUkggU0lDUkhfVFNPQkkxCS8qIE5lZWRlZCBmb3IgZ2lnYWJpdCB0byB3b3JrIG9uIFRTRUMgMSAqLwotI2RlZmluZSBDRkdfU0lDUkwgKFNJQ1JMX0xEUF9BIHwgU0lDUkxfVVNCMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSSCBTSUNSSF9UU09CSTEJLyogTmVlZGVkIGZvciBnaWdhYml0IHRvIHdvcmsgb24gVFNFQyAxICovCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkwgKFNJQ1JMX0xEUF9BIHwgU0lDUkxfVVNCMSkKIAotI2RlZmluZSBDRkdfSElEMF9JTklUCTB4MDAwMDAwMDAwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCUNGR19ISUQwX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJMHgwMDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCUNPTkZJR19TWVNfSElEMF9JTklUCiAKLSNkZWZpbmUgQ0ZHX0hJRDIJSElEMl9IQkUKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCUhJRDJfSEJFCiAjZGVmaW5lIENPTkZJR19ISUdIX0JBVFMJMQkvKiBIaWdoIEJBVHMgc3VwcG9ydGVkICovCiAKIC8qIEREUiAgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTAkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUJKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogUENJICAqLwogI2lmZGVmIENPTkZJR19QQ0kKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX1BDSTFfTUVNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMkwJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUMlUJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKICNlbHNlCi0jZGVmaW5lIENGR19JQkFUMUwJMAotI2RlZmluZSBDRkdfSUJBVDFVCTAKLSNkZWZpbmUgQ0ZHX0lCQVQyTAkwCi0jZGVmaW5lIENGR19JQkFUMlUJMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCTAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkwCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19NUEM4M1hYX1BDSTIKLSNkZWZpbmUgQ0ZHX0lCQVQzTAkoQ0ZHX1BDSTJfTUVNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUM1UJKENGR19QQ0kyX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUNEwJKENGR19QQ0kyX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUNFUJKENGR19QQ0kyX01NSU9fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkoQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRMCShDT05GSUdfU1lTX1BDSTJfTU1JT19CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJKENPTkZJR19TWVNfUENJMl9NTUlPX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKICNlbHNlCi0jZGVmaW5lIENGR19JQkFUM0wJMAotI2RlZmluZSBDRkdfSUJBVDNVCTAKLSNkZWZpbmUgQ0ZHX0lCQVQ0TAkwCi0jZGVmaW5lIENGR19JQkFUNFUJMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCTAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwJMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0VQkwCiAjZW5kaWYKIAogLyogSU1NUkJBUiBAIDB4RTAwMDAwMDAsIFBDSSBJTyBAIDB4RTIwMDAwMDAgJiBCQ1NSIEAgMHhFMjQwMDAwMCAqLwotI2RlZmluZSBDRkdfSUJBVDVMCShDRkdfSU1NUiB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUNVUJKENGR19JTU1SIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCShDT05GSUdfU1lTX0lNTVIgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VQkoQ09ORklHX1NZU19JTU1SIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIFNEUkFNIEAgMHhGMDAwMDAwMCwgc3RhY2sgaW4gRENBQ0hFIDB4RkRGMDAwMDAgJiBGTEFTSCBAIDB4RkUwMDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNlUJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDdMCTAKLSNkZWZpbmUgQ0ZHX0lCQVQ3VQkwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCTAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UJMAogCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKLSNkZWZpbmUgQ0ZHX0RCQVQ0TAlDRkdfSUJBVDRMCi0jZGVmaW5lIENGR19EQkFUNFUJQ0ZHX0lCQVQ0VQotI2RlZmluZSBDRkdfREJBVDVMCUNGR19JQkFUNUwKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQlDRkdfSUJBVDVVCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAlDRkdfSUJBVDdMCi0jZGVmaW5lIENGR19EQkFUN1UJQ0ZHX0lCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAlDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQlDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAlDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0TAlDT05GSUdfU1lTX0lCQVQ0TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0VQlDT05GSUdfU1lTX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAlDT05GSUdfU1lTX0lCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQlDT05GSUdfU1lTX0lCQVQ1VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAlDT05GSUdfU1lTX0lCQVQ2TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQlDT05GSUdfU1lTX0lCQVQ2VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TAlDT05GSUdfU1lTX0lCQVQ3TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VQlDT05GSUdfU1lTX0lCQVQ3VQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4MzYwRU1EUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzgzNjBFTURTLmgKaW5kZXggYmFmZjAzZS4uZWU1MTY0YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzgzNjBFTURTLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzgzNjBFTURTLmgKQEAgLTQ5LDcgKzQ5LDcgQEAKIC8qCiAgKiBIYXJkd2FyZSBSZXNldCBDb25maWd1cmF0aW9uIFdvcmQKICAqLwotI2RlZmluZSBDRkdfSFJDV19MT1cgKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0xPVyAoXAogCUhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9ERFJfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9DU0JfVE9fQ0xLSU5fNFgxIHxcCkBAIC02MCw3ICs2MCw3IEBACiAJSFJDV0xfQ09SRV9UT19DU0JfMlgxKQogCiAjaWZkZWYgQ09ORklHX1BDSVNMQVZFCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfQUdFTlQgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRElTQUJMRSB8XAogCUhSQ1dIX1BDSUNLRFJWX0RJU0FCTEUgfFwKQEAgLTcwLDcgKzcwLDcgQEAKIAlIUkNXSF9TV19XQVRDSERPR19ESVNBQkxFIHxcCiAJSFJDV0hfUk9NX0xPQ19MT0NBTF8xNkJJVCkKICNlbHNlCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfSE9TVCB8XAogCUhSQ1dIX1BDSTFfQVJCSVRFUl9FTkFCTEUgfFwKIAlIUkNXSF9QQ0lDS0RSVl9FTkFCTEUgfFwKQEAgLTg0LDggKzg0LDggQEAKIC8qCiAgKiBTeXN0ZW0gSU8gQ29uZmlnCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJQ1JICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TSUNSTAkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NJQ1JICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkwJCTB4NDAwMDAwMDAKIAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIC8qIGNhbGwgYm9hcmRfcHJlX2luaXQgKi8KICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfUgpAQCAtOTMsMTggKzkzLDE4IEBACiAvKgogICogSU1NUiBuZXcgYWRkcmVzcwogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhFMDAwMDAwMAogCiAvKgogICogRERSIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9CQVNFCQkweDAwMDAwMDAwIC8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5ICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCUNGR19ERFJfQkFTRQotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NMS19DTlRMCShERFJfU0RSQU1fQ0xLX0NOVExfU1NfRU4gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0JBU0UJCTB4MDAwMDAwMDAgLyogRERSIGlzIHN5c3RlbSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DTEtfQ05UTAkoRERSX1NEUkFNX0NMS19DTlRMX1NTX0VOIHwgXAogCQkJCUREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1KQogCi0jZGVmaW5lIENGR184M1hYX0REUl9VU0VTX0NTMAorI2RlZmluZSBDT05GSUdfU1lTXzgzWFhfRERSX1VTRVNfQ1MwCiAKICNkZWZpbmUgQ09ORklHX0REUl9FQ0MJCS8qIHN1cHBvcnQgRERSIEVDQyBmdW5jdGlvbiAqLwogI2RlZmluZSBDT05GSUdfRERSX0VDQ19DTUQJLyogVXNlIEREUiBFQ0MgdXNlciBjb21tYW5kcyAqLwpAQCAtMTEyLDcgKzExMiw3IEBACiAvKgogICogRERSQ0RSIC0gRERSIENvbnRyb2wgRHJpdmVyIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUkNEUl9WQUxVRQkweDgwMDgwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfRERSQ0RSX1ZBTFVFCTB4ODAwODAwMDEKIAogI2RlZmluZSBDT05GSUdfU1BEX0VFUFJPTQkvKiBVc2UgU1BEIEVFUFJPTSBmb3IgRERSIHNldHVwICovCiAjaWYgZGVmaW5lZChDT05GSUdfU1BEX0VFUFJPTSkKQEAgLTEyNCwxMjAgKzEyNCwxMjAgQEAKIC8qCiAgKiBNYW51YWxseSBzZXQgdXAgRERSIHBhcmFtZXRlcnMKICAqLwotI2RlZmluZSBDRkdfRERSX1NJWkUJCTI1NiAvKiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9TSVpFCQkyNTYgLyogTUIgKi8KICNpZiBkZWZpbmVkKENPTkZJR19ERFJfSUkpCi0jZGVmaW5lIENGR19ERFJDRFIJCTB4ODAwODAwMDEKLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkweDAwMDAwMDBmCi0jZGVmaW5lIENGR19ERFJfQ1MwX0NPTkZJRwkweDgwMzMwMTAyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzAJMHgwMDIyMDgwMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCTB4MzgzNTczMjIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkweDJmOTA0OGM4Ci0jZGVmaW5lIENGR19ERFJfVElNSU5HXzMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX0NMS19DTlRMCTB4MDIwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCQkweDQ3ZDAwNDMyCi0jZGVmaW5lIENGR19ERFJfTU9ERTIJCTB4ODAwMGMwMDAKLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkweDAzY2YwMDgwCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0ZHCTB4NDMwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcyCTB4MDA0MDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJDRFIJCTB4ODAwODAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwZgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHCTB4ODAzMzAxMDIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzAJMHgwMDIyMDgwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkweDM4MzU3MzIyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCTB4MmY5MDQ4YzgKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DTEtfQ05UTAkweDAyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCTB4NDdkMDA0MzIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERTIJCTB4ODAwMGMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfSU5URVJWQUwJMHgwM2NmMDA4MAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcJMHg0MzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcyCTB4MDA0MDEwMDAKICNlbHNlCi0jZGVmaW5lIENGR19ERFJfQ09ORklHIChDU0NPTkZJR19FTiB8IENTQ09ORklHX1JPV19CSVRfMTMgfCBDU0NPTkZJR19DT0xfQklUXzkpCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJMHgzNzM0NDMyMSAvKiB0Q0wtdFJDRC10UlAtdFJBUz0yLjUtMy0zLTcgKi8KLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkweDAwMDAwODAwIC8qIG1heSBuZWVkIHR1bmluZyAqLwotI2RlZmluZSBDRkdfRERSX0NPTlRST0wJCTB4NDIwMDgwMDAgLyogU2VsZiByZWZyZXNoLDJUIHRpbWluZyAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCTB4MjAwMDAxNjIgLyogRExMLG5vcm1hbCxzZXEsNC8yLjUgKi8KLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkweDA0NWIwMTAwIC8qIHBhZ2UgbW9kZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05GSUcgKENTQ09ORklHX0VOIHwgQ1NDT05GSUdfUk9XX0JJVF8xMyB8IENTQ09ORklHX0NPTF9CSVRfOSkKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzEJMHgzNzM0NDMyMSAvKiB0Q0wtdFJDRC10UlAtdFJBUz0yLjUtMy0zLTcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgwMDAwMDgwMCAvKiBtYXkgbmVlZCB0dW5pbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ09OVFJPTAkJMHg0MjAwODAwMCAvKiBTZWxmIHJlZnJlc2gsMlQgdGltaW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCTB4MjAwMDAxNjIgLyogRExMLG5vcm1hbCxzZXEsNC8yLjUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfSU5URVJWQUwJMHgwNDViMDEwMCAvKiBwYWdlIG1vZGUgKi8KICNlbmRpZgogI2VuZGlmCiAKIC8qCiAgKiBNZW1vcnkgdGVzdAogICovCi0jdW5kZWYgQ0ZHX0RSQU1fVEVTVAkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMCAvKiBtZW10ZXN0IHJlZ2lvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDAxMDAwMDAKKyN1bmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVAkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAgLyogbWVtdGVzdCByZWdpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDEwMDAwMAogCiAvKgogICogVGhlIHJlc2VydmVkIG1lbW9yeQogICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UgLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UgLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSN1bmRlZglDRkdfUkFNQk9PVAorI3VuZGVmCUNPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLS8qIENGR19NT05JVE9SX0xFTiBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgQ09ORklHX0VOVl9TRUNUX1NJWkUgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKy8qIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gbXVzdCBiZSBhIG11bHRpcGxlIG9mIENPTkZJR19FTlZfU0VDVF9TSVpFICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyoKICAqIEluaXRpYWwgUkFNIEJhc2UgQWRkcmVzcyBTZXR1cAogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhFNjAwMDAwMCAvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4MTAwIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhFNjAwMDAwMCAvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMCAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMHgxMDAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIC8qCiAgKiBMb2NhbCBCdXMgQ29uZmlndXJhdGlvbiAmIENsb2NrIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0xDUlIJCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl80KQotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQ1JSCQkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMAogCiAvKgogICogRkxBU0ggb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCS8qIHVzZSB0aGUgQ0ZJIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMCAvKiBGTEFTSCBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTMyIC8qIG1heCBGTEFTSCBzaXplIGlzIDMyTSAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCQkvKiBVc2UgaC93IEZsYXNoIHByb3RlY3Rpb24uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMCAvKiBGTEFTSCBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkzMiAvKiBtYXggRkxBU0ggc2l6ZSBpcyAzMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJCS8qIFVzZSBoL3cgRmxhc2ggcHJvdGVjdGlvbi4gKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX1NIT1dfUFJPR1JFU1MgNDUgLyogY291bnQgZG93biBmcm9tIDQ1LzU6IDkuLjEgKi8KIAotI2RlZmluZSBDRkdfTEJMQVdCQVIwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRSAvKiBXaW5kb3cgYmFzZSBhdCBmbGFzaCBiYXNlICovCi0jZGVmaW5lIENGR19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxOCAvKiAzMk1CIHdpbmRvdyBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgLyogV2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIwX1BSRUxJTQkweDgwMDAwMDE4IC8qIDMyTUIgd2luZG93IHNpemUgKi8KIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoQ0ZHX0ZMQVNIX0JBU0UgfCAvKiBGbGFzaCBCYXNlIGFkZHJlc3MgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IC8qIEZsYXNoIEJhc2UgYWRkcmVzcyAqLyBcCiAJCQkoMiA8PCBCUl9QU19TSElGVCkgfCAvKiAxNiBiaXQgcG9ydCBzaXplICovIFwKIAkJCUJSX1YpCS8qIHZhbGlkICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkoKH4oQ0ZHX0ZMQVNIX1NJWkUgLSAxKSA8PCAyMCkgfCBPUl9VUE1fWEFNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCSgofihDT05GSUdfU1lTX0ZMQVNIX1NJWkUgLSAxKSA8PCAyMCkgfCBPUl9VUE1fWEFNIHwgXAogCQkJCU9SX0dQQ01fQ1NOVCB8IE9SX0dQQ01fQUNTX0RJVjIgfCBPUl9HUENNX1hBQ1MgfCBPUl9HUENNX1NDWV8xNSB8IFwKIAkJCQlPUl9HUENNX1RSTFggfCBPUl9HUENNX0VIVFIgfCBPUl9HUENNX0VBRCkKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEgLyogbnVtYmVyIG9mIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYgLyogbWF4IHNlY3RvcnMgcGVyIGRldmljZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxIC8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NiAvKiBtYXggc2VjdG9ycyBwZXIgZGV2aWNlICovCiAKLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCiAKIC8qCiAgKiBCQ1NSIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfQkNTUgkJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdCQVIxX1BSRUxJTQlDRkdfQkNTUiAvKiBBY2Nlc3Mgd2luZG93IGJhc2UgYXQgQkNTUiBiYXNlICovCi0jZGVmaW5lIENGR19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRiAvKiBBY2Nlc3Mgd2luZG93IHNpemUgNjRLICovCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUgkJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMV9QUkVMSU0JQ09ORklHX1NZU19CQ1NSIC8qIEFjY2VzcyB3aW5kb3cgYmFzZSBhdCBCQ1NSIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRiAvKiBBY2Nlc3Mgd2luZG93IHNpemUgNjRLICovCiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCShDRkdfQkNTUnwweDAwMDAwODAxKSAvKiBQb3J0IHNpemU9OGJpdCwgTVNFTD1HUENNICovCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkweEZGRkZFOWY3IC8qIGxlbmd0aCAzMksgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkoQ09ORklHX1NZU19CQ1NSfDB4MDAwMDA4MDEpIC8qIFBvcnQgc2l6ZT04Yml0LCBNU0VMPUdQQ00gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweEZGRkZFOWY3IC8qIGxlbmd0aCAzMksgKi8KIAogLyoKICAqIFNEUkFNIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX0JBU0UJMHhGMDAwMDAwMAkvKiBTRFJBTSBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCTB4RjAwMDAwMDAJLyogU0RSQU0gYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CICovCiAKLSNkZWZpbmUgQ0ZHX0xCX1NEUkFNCQkvKiBpZiBib2FyZCBoYXMgU1JEQU0gb24gbG9jYWwgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJfU0RSQU0JCS8qIGlmIGJvYXJkIGhhcyBTUkRBTSBvbiBsb2NhbCBidXMgKi8KIAotI2lmZGVmIENGR19MQl9TRFJBTQotI2RlZmluZSBDRkdfTEJMQVdCQVIyX1BSRUxJTQlDRkdfTEJDX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIyX1BSRUxJTQkweDgwMDAwMDE5IC8qIDY0TUIgKi8KKyNpZmRlZiBDT05GSUdfU1lTX0xCX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIyX1BSRUxJTQlDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjJfUFJFTElNCTB4ODAwMDAwMTkgLyogNjRNQiAqLwogCiAvKmxvY2FsIGJ1cyBCUjIsIE9SMiBkZWZpbml0aW9uIGZvciBTRFJBTSBpZiBzb2xkZXJlZCBvbiB0aGUgRVBCIGJvYXJkICovCiAvKgogICogQmFzZSBSZWdpc3RlciAyIGFuZCBPcHRpb24gUmVnaXN0ZXIgMiBjb25maWd1cmUgU0RSQU0uCi0gKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDRkdfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCisgKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgogICoKICAqIEZvciBCUjIsIG5lZWQ6CiAgKiAgICBCYXNlIGFkZHJlc3Mgb2YgMHhmMDAwMDAwMCA9IEJSWzA6MTZdID0gMTExMSAwMDAwIDAwMDAgMDAwMCAwCkBAIC0yNDksMTQgKzI0OSwxNCBAQAogICogMAk0ICAgIDgJICAxMiAgIDE2ICAgMjAJIDI0ICAgMjgKICAqIDExMTEgMDAwMCAwMDAwIDAwMDAgMDAwMSAxMDAwIDAxMTAgMDAwMSA9IGYwMDAxODYxCiAgKgotICogQ0ZHX0xCQ19TRFJBTV9CQVNFIHNob3VsZCBiZSBtYXNrZWQgYW5kIE9SJ2VkIGludG8KKyAqIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0Ugc2hvdWxkIGJlIG1hc2tlZCBhbmQgT1InZWQgaW50bwogICogdGhlIHRvcCAxNyBiaXRzIG9mIEJSMi4KICAqLwogCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCTB4ZjAwMDE4NjEgLypQb3J0IHNpemU9MzJiaXQsIE1TRUw9U0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCTB4ZjAwMDE4NjEgLypQb3J0IHNpemU9MzJiaXQsIE1TRUw9U0RSQU0gKi8KIAogLyoKLSAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDRkdfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgorICogVGhlIFNEUkFNIHNpemUgaW4gTUIsIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgogICoKICAqIEZvciBPUjIsIG5lZWQ6CiAgKiAgICA2NE1CIG1hc2sgZm9yIEFNLCBPUjJbMDo3XSA9IDExMTEgMTEwMApAQCAtMjY5LDgwICsyNjksODAgQEAKICAqIDExMTEgMTEwMCAwMDAwIDAwMDAgMDExMCAxMDAxIDAwMDAgMDAwMSA9IGZjMDA2OTAxCiAgKi8KIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkweGZjMDA2OTAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkweGZjMDA2OTAxCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MU1JUCTB4MzIwMDAwMDAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciwgYWJvdXQgNnVzICovCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJMHgyMDAwMDAwMCAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwsIDI2Nk1Iei8zMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU1JUCTB4MzIwMDAwMDAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciwgYWJvdXQgNnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX01SVFBSCTB4MjAwMDAwMDAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsLCAyNjZNSHovMzIgKi8KIAogLyoKICAqIExTRE1SIG1hc2tzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUwgKDAgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQVJGUlNIICgxIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1NSRlJTSCAoMiA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUENIQUxMICg1IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FDVEJOSyAoNiA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMICgwIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0ggKDEgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1NSRlJTSCAoMiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTVJXCSgzIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUENIQUxMICg1IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BQ1RCTksgKDYgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQogCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQ09NTU9OCTB4MDA2M2I3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OCTB4MDA2M2I3MjMKIAogLyoKICAqIFNEUkFNIENvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBzZXF1ZW5jZS4KICAqLwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzEJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEwpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMgkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSCkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8zCQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfQVJGUlNIKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzQJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9NUlcpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNQkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX05PUk1BTCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMQkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUENIQUxMKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8yCQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0gpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzMJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfNAkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTVJXKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl81CQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9OT1JNQUwpCiAKICNlbmRpZgogCiAvKgogICogV2luZG93cyB0byBhY2Nlc3MgUElCIHZpYSBsb2NhbCBidXMKICAqLwotI2RlZmluZSBDRkdfTEJMQVdCQVIzX1BSRUxJTQkweGY4MDEwMDAwIC8qIHdpbmRvd3MgYmFzZSAweGY4MDEwMDAwICovCi0jZGVmaW5lIENGR19MQkxBV0FSM19QUkVMSU0JMHg4MDAwMDAwZSAvKiB3aW5kb3dzIHNpemUgMzJLQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSM19QUkVMSU0JMHhmODAxMDAwMCAvKiB3aW5kb3dzIGJhc2UgMHhmODAxMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIzX1BSRUxJTQkweDgwMDAwMDBlIC8qIHdpbmRvd3Mgc2l6ZSAzMktCICovCiAKIC8qCiAgKiBDUzQgb24gTG9jYWwgQnVzLCB0byBQSUIKICAqLwotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkweGY4MDEwODAxIC8qIENTNCBiYXNlIGFkZHJlc3MgYXQgMHhmODAxMDAwMCAqLwotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkweGZmZmZlOWY3IC8qIHNpemUgMzJLQiwgcG9ydCBzaXplIDhiaXQsIEdQQ00gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCTB4ZjgwMTA4MDEgLyogQ1M0IGJhc2UgYWRkcmVzcyBhdCAweGY4MDEwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkweGZmZmZlOWY3IC8qIHNpemUgMzJLQiwgcG9ydCBzaXplIDhiaXQsIEdQQ00gKi8KIAogLyoKICAqIENTNSBvbiBMb2NhbCBCdXMsIHRvIFBJQgogICovCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCTB4ZjgwMDg4MDEgLyogQ1M1IGJhc2UgYWRkcmVzcyBhdCAweGY4MDA4MDAwICovCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCTB4ZmZmZmU5ZjcgLyogc2l6ZSAzMktCLCBwb3J0IHNpemUgOGJpdCwgR1BDTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JMHhmODAwODgwMSAvKiBDUzUgYmFzZSBhZGRyZXNzIGF0IDB4ZjgwMDgwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCTB4ZmZmZmU5ZjcgLyogc2l6ZSAzMktCLCBwb3J0IHNpemUgOGJpdCwgR1BDTSAqLwogCiAvKgogICogU2VyaWFsIFBvcnQKICAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19JTU1SKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0lNTVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19JTU1SKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfSU1NUisweDQ2MDApCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCkBAIC0zNTQsMzUgKzM1NCwzNSBAQAogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCS8qIEkyQyBiaXQtYmFuZ2VkICovCiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7MHg1Mn0gLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJMHgzMDAwCi0jZGVmaW5lIENGR19JMkMyX09GRlNFVCAweDMxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsweDUyfSAvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDMl9PRkZTRVQgMHgzMTAwCiAKIC8qCiAgKiBDb25maWcgb24tYm9hcmQgUlRDCiAgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzNzQJCS8qIHVzZSBkczEzNzQgcnRjIHZpYSBpMmMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4CS8qIGF0IGFkZHJlc3MgMHg2OCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CS8qIGF0IGFkZHJlc3MgMHg2OCAqLwogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KICAqLwotI2RlZmluZSBDRkdfUENJX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fUEhZUwlDRkdfUENJX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMCAvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0lfTU1JT19CQVNFCTB4OTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NTUlPX1BIWVMJQ0ZHX1BDSV9NTUlPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9NTUlPX1NJWkUJMHgxMDAwMDAwMCAvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0lfSU9fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1BIWVMJCTB4RTAzMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19TSVpFCQkweDEwMDAwMCAvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9QSFlTCUNPTkZJR19TWVNfUENJX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9TSVpFCTB4MTAwMDAwMDAgLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UJMHg5MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMJQ09ORklHX1NZU19QQ0lfTU1JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01NSU9fU0laRQkweDEwMDAwMDAwIC8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19QSFlTCQkweEUwMzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1NJWkUJCTB4MTAwMDAwIC8qIDFNICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TTFZfTUVNX0xPQ0FMCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfU0xWX01FTV9CVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX1NMVl9NRU1fU0laRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NMVl9NRU1fTE9DQUwJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NMVl9NRU1fQlVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9TSVpFCTB4ODAwMDAwMDAKIAogCiAjaWZkZWYgQ09ORklHX1BDSQpAQCAtMzkyLDcgKzM5Miw3IEBACiAKICN1bmRlZiBDT05GSUdfRUVQUk8xMDAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxOTU3CS8qIEZyZWVzY2FsZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxOTU3CS8qIEZyZWVzY2FsZSAqLwogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwogCkBAIC00MTEsNDMgKzQxMSw0MyBAQAogI2RlZmluZSBDT05GSUdfVUVDX0VUSDEJCS8qIEdFVEgxICovCiAKICNpZmRlZiBDT05GSUdfVUVDX0VUSDEKLSNkZWZpbmUgQ0ZHX1VFQzFfVUNDX05VTQkwCS8qIFVDQzEgKi8KLSNkZWZpbmUgQ0ZHX1VFQzFfUlhfQ0xLCQlRRV9DTEtfTk9ORQotI2RlZmluZSBDRkdfVUVDMV9UWF9DTEsJCVFFX0NMSzkKLSNkZWZpbmUgQ0ZHX1VFQzFfRVRIX1RZUEUJR0lHQV9FVEgKLSNkZWZpbmUgQ0ZHX1VFQzFfUEhZX0FERFIJMAotI2RlZmluZSBDRkdfVUVDMV9JTlRFUkZBQ0VfTU9ERSBFTkVUXzEwMDBfR01JSQorI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfVUNDX05VTQkwCS8qIFVDQzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1JYX0NMSwkJUUVfQ0xLX05PTkUKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1RYX0NMSwkJUUVfQ0xLOQorI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfRVRIX1RZUEUJR0lHQV9FVEgKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1BIWV9BRERSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX0lOVEVSRkFDRV9NT0RFIEVORVRfMTAwMF9HTUlJCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfVUVDX0VUSDIJCS8qIEdFVEgyICovCiAKICNpZmRlZiBDT05GSUdfVUVDX0VUSDIKLSNkZWZpbmUgQ0ZHX1VFQzJfVUNDX05VTQkxCS8qIFVDQzIgKi8KLSNkZWZpbmUgQ0ZHX1VFQzJfUlhfQ0xLCQlRRV9DTEtfTk9ORQotI2RlZmluZSBDRkdfVUVDMl9UWF9DTEsJCVFFX0NMSzQKLSNkZWZpbmUgQ0ZHX1VFQzJfRVRIX1RZUEUJR0lHQV9FVEgKLSNkZWZpbmUgQ0ZHX1VFQzJfUEhZX0FERFIJMQotI2RlZmluZSBDRkdfVUVDMl9JTlRFUkZBQ0VfTU9ERSBFTkVUXzEwMDBfR01JSQorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfVUNDX05VTQkxCS8qIFVDQzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX1JYX0NMSwkJUUVfQ0xLX05PTkUKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX1RYX0NMSwkJUUVfQ0xLNAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfRVRIX1RZUEUJR0lHQV9FVEgKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX1BIWV9BRERSCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX0lOVEVSRkFDRV9NT0RFIEVORVRfMTAwMF9HTUlJCiAjZW5kaWYKIAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAkjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAKIAkjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZWxzZQotCSNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCisJI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCiAJI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkgKi8KLQkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisJI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKIAkjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtNDcyLDcgKzQ3Miw3IEBACiAgICAgI2RlZmluZSBDT05GSUdfQ01EX1BDSQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogICAgICN1bmRlZiBDT05GSUdfQ01EX0VOVgogICAgICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTQ4MywzNCArNDgzLDM0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTI1NiAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2IC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIENvcmUgSElEIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMHgwMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKLSNkZWZpbmUgQ0ZHX0hJRDIJCUhJRDJfSEJFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkweDAwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCQlISUQyX0hCRQogCiAvKgogICogTU1VIFNldHVwCkBAIC01MTksNjUgKzUxOSw2NSBAQAogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCTEJLyogSGlnaCBCQVRzIHN1cHBvcnRlZCAqLwogCiAvKiBERFI6IGNhY2hlIGNhY2hlYWJsZSAqLwotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCUNPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCUNPTkZJR19TWVNfSUJBVDBVCiAKIC8qIElNTVJCQVIgJiBQQ0kgSU86IGNhY2hlLWluaGliaXQgYW5kIGd1YXJkZWQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX0lNTVIgfCBCQVRMX1BQXzEwIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19JTU1SIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX0lNTVIgfCBCQVRVX0JMXzRNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfSU1NUiB8IEJBVFVfQkxfNE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKIAogLyogQkNTUjogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDJMCShDRkdfQkNTUiB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX0JDU1IgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDJVCShDRkdfQkNTUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCShDT05GSUdfU1lTX0JDU1IgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKIAogLyogRkxBU0g6IGljYWNoZSBjYWNoZWFibGUsIGJ1dCBkY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDNMCShDRkdfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQkoQ0ZHX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDNMCShDRkdfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQzVQlDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVCUNPTkZJR19TWVNfSUJBVDNVCiAKIC8qIExvY2FsIGJ1cyBTRFJBTTogY2FjaGVhYmxlICovCi0jZGVmaW5lIENGR19JQkFUNEwJKENGR19MQkNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ0VQkoQ0ZHX0xCQ19TRFJBTV9CQVNFIHwgQkFUVV9CTF82NE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ0TAlDRkdfSUJBVDRMCi0jZGVmaW5lIENGR19EQkFUNFUJQ0ZHX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkoQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJKENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0TAlDT05GSUdfU1lTX0lCQVQ0TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0VQlDT05GSUdfU1lTX0lCQVQ0VQogCiAvKiBTdGFjayBpbiBkY2FjaGU6IGNhY2hlYWJsZSwgbm8gbWVtb3J5IGNvaGVyZW5jZSAqLwotI2RlZmluZSBDRkdfSUJBVDVMCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTApCi0jZGVmaW5lIENGR19JQkFUNVUJKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNUwJQ0ZHX0lCQVQ1TAotI2RlZmluZSBDRkdfREJBVDVVCUNGR19JQkFUNVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNUwJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVVCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNUwJQ09ORklHX1NZU19JQkFUNUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNVUJQ09ORklHX1NZU19JQkFUNVUKIAogI2lmZGVmIENPTkZJR19QQ0kKIC8qIFBDSSBNRU0gc3BhY2U6IGNhY2hlYWJsZSAqLwotI2RlZmluZSBDRkdfSUJBVDZMCShDRkdfUENJX01FTV9QSFlTIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDZVCShDRkdfUENJX01FTV9QSFlTIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwJKENPTkZJR19TWVNfUENJX01FTV9QSFlTIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VQkoQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNkwJQ09ORklHX1NZU19JQkFUNkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUJQ09ORklHX1NZU19JQkFUNlUKIC8qIFBDSSBNTUlPIHNwYWNlOiBjYWNoZS1pbmhpYml0IGFuZCBndWFyZGVkICovCi0jZGVmaW5lIENGR19JQkFUN0wJKENGR19QQ0lfTU1JT19QSFlTIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN0wJKENPTkZJR19TWVNfUENJX01NSU9fUEhZUyB8IEJBVExfUFBfMTAgfCBcCiAJCQlCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUN1UJKENGR19QQ0lfTU1JT19QSFlTIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUN0wJQ0ZHX0lCQVQ3TAotI2RlZmluZSBDRkdfREJBVDdVCUNGR19JQkFUN1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UJKENPTkZJR19TWVNfUENJX01NSU9fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TAlDT05GSUdfU1lTX0lCQVQ3TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VQlDT05GSUdfU1lTX0lCQVQ3VQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ3TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ3VQkoMCkKLSNkZWZpbmUgQ0ZHX0RCQVQ2TAlDRkdfSUJBVDZMCi0jZGVmaW5lIENGR19EQkFUNlUJQ0ZHX0lCQVQ2VQotI2RlZmluZSBDRkdfREJBVDdMCUNGR19JQkFUN0wKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQlDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN0wJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAlDT05GSUdfU1lTX0lCQVQ2TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQlDT05GSUdfU1lTX0lCQVQ2VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TAlDT05GSUdfU1lTX0lCQVQ3TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VQlDT05GSUdfU1lTX0lCQVQ3VQogI2VuZGlmCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODM2MEVSREsuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzYwRVJESy5oCmluZGV4IGIyZTZiM2IuLmE0ZjI4NjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4MzYwRVJESy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzYwRVJESy5oCkBAIC00NCwxNCArNDQsMTQgQEAKIC8qCiAgKiBIYXJkd2FyZSBSZXNldCBDb25maWd1cmF0aW9uIFdvcmQKICAqLwotI2RlZmluZSBDRkdfSFJDV19MT1cgKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0xPVyAoXAogCUhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9ERFJfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9DU0JfVE9fQ0xLSU5fTVBDODM2MEVSREsgfFwKIAlIUkNXTF9DT1JFX1RPX0NTQl8yWDEgfFwKIAlIUkNXTF9DRV9UT19QTExfMVgxNSkKIAotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRU5BQkxFIHxcCiAJSFJDV0hfUENJQ0tEUlZfRU5BQkxFIHxcCkBAIC02Nyw4ICs2Nyw4IEBACiAvKgogICogU3lzdGVtIElPIENvbmZpZwogICovCi0jZGVmaW5lIENGR19TSUNSSAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0lDUkwJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NJQ1JMCQkweDQwMDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRiAvKiBjYWxsIGJvYXJkX3ByZV9pbml0ICovCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IKQEAgLTc2LDE4ICs3NiwxOCBAQAogLyoKICAqIElNTVIgbmV3IGFkZHJlc3MKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RTAwMDAwMDAKIAogLyoKICAqIEREUiBTZXR1cAogICovCi0jZGVmaW5lIENGR19ERFJfQkFTRQkJMHgwMDAwMDAwMCAvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9CQVNFCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DTEtfQ05UTAkoRERSX1NEUkFNX0NMS19DTlRMX1NTX0VOIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9CQVNFCQkweDAwMDAwMDAwIC8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCUNPTkZJR19TWVNfRERSX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0xLX0NOVEwJKEREUl9TRFJBTV9DTEtfQ05UTF9TU19FTiB8IFwKIAkJCQlERFJfU0RSQU1fQ0xLX0NOVExfQ0xLX0FESlVTVF8wNSkKIAotI2RlZmluZSBDRkdfODNYWF9ERFJfVVNFU19DUzAKKyNkZWZpbmUgQ09ORklHX1NZU184M1hYX0REUl9VU0VTX0NTMAogCiAjZGVmaW5lIENPTkZJR19ERFJfRUNDCQkvKiBzdXBwb3J0IEREUiBFQ0MgZnVuY3Rpb24gKi8KICNkZWZpbmUgQ09ORklHX0REUl9FQ0NfQ01ECS8qIFVzZSBERFIgRUNDIHVzZXIgY29tbWFuZHMgKi8KQEAgLTk1LDcgKzk1LDcgQEAKIC8qCiAgKiBERFJDRFIgLSBERFIgQ29udHJvbCBEcml2ZXIgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfRERSQ0RSX1ZBTFVFCTB4ODAwODAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJDRFJfVkFMVUUJMHg4MDA4MDAwMQogCiAjdW5kZWYgQ09ORklHX1NQRF9FRVBST00JLyogRG8gbm90IHVzZSBTUEQgRUVQUk9NIGZvciBERFIgc2V0dXAgKi8KIApAQCAtMTAzLDE5ICsxMDMsMTkgQEAKICAqIE1hbnVhbGx5IHNldCB1cCBERFIgcGFyYW1ldGVycwogICovCiAjZGVmaW5lIENPTkZJR19ERFJfSUkKLSNkZWZpbmUgQ0ZHX0REUl9TSVpFCQkyNTYgLyogTUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkweDAwMDAwMDBmCi0jZGVmaW5lIENGR19ERFJfQ1MwX0NPTkZJRwkoQ1NDT05GSUdfRU4gfCBDU0NPTkZJR19ST1dfQklUXzEzIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TSVpFCQkyNTYgLyogTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwZgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHCShDU0NPTkZJR19FTiB8IENTQ09ORklHX1JPV19CSVRfMTMgfCBcCiAJCQkJIENTQ09ORklHX0NPTF9CSVRfMTAgfCBDU0NPTkZJR19PRFRfV1JfQUNTKQotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NGRwkoU0RSQU1fQ0ZHX1NEUkFNX1RZUEVfRERSMiB8IFNEUkFNX0NGR19FQ0NfRU4pCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0ZHMgkweDAwMDAxMDAwCi0jZGVmaW5lIENGR19ERFJfQ0xLX0NOVEwJKEREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1KQotI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCSgoMjU2IDw8IFNEUkFNX0lOVEVSVkFMX0JTVE9QUkVfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcJKFNEUkFNX0NGR19TRFJBTV9UWVBFX0REUjIgfCBTRFJBTV9DRkdfRUNDX0VOKQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcyCTB4MDAwMDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ0xLX0NOVEwJKEREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1KQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkoKDI1NiA8PCBTRFJBTV9JTlRFUlZBTF9CU1RPUFJFX1NISUZUKSB8IFwKIAkJCQkgKDExMTUgPDwgU0RSQU1fSU5URVJWQUxfUkVGSU5UX1NISUZUKSkKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCQkweDQ3ODAwNDMyCi0jZGVmaW5lIENGR19ERFJfTU9ERTIJCTB4ODAwMGMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJMHg0NzgwMDQzMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFMgkJMHg4MDAwYzAwMAogCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzAJKCgyIDw8IFRJTUlOR19DRkcwX01SU19DWUNfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMAkoKDIgPDwgVElNSU5HX0NGRzBfTVJTX0NZQ19TSElGVCkgfCBcCiAJCQkJICg5IDw8IFRJTUlOR19DRkcwX09EVF9QRF9FWElUX1NISUZUKSB8IFwKIAkJCQkgKDMgPDwgVElNSU5HX0NGRzBfUFJFX1BEX0VYSVRfU0hJRlQpIHwgXAogCQkJCSAoMyA8PCBUSU1JTkdfQ0ZHMF9BQ1RfUERfRVhJVF9TSElGVCkgfCBcCkBAIC0xMjQsNyArMTI0LDcgQEAKIAkJCQkgKDAgPDwgVElNSU5HX0NGRzBfV1JUX1NISUZUKSB8IFwKIAkJCQkgKDAgPDwgVElNSU5HX0NGRzBfUldUX1NISUZUKSkKIAotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCSgoICAgICAgVElNSU5HX0NGRzFfQ0FTTEFUXzMwKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzEJKCggICAgICBUSU1JTkdfQ0ZHMV9DQVNMQVRfMzApIHwgXAogCQkJCSAoIDIgPDwgVElNSU5HX0NGRzFfV1JUT1JEX1NISUZUKSB8IFwKIAkJCQkgKCAyIDw8IFRJTUlOR19DRkcxX0FDVFRPQUNUX1NISUZUKSB8IFwKIAkJCQkgKCAzIDw8IFRJTUlOR19DRkcxX1dSUkVDX1NISUZUKSB8IFwKQEAgLTEzMyw3ICsxMzMsNyBAQAogCQkJCSAoIDggPDwgVElNSU5HX0NGRzFfQUNUVE9QUkVfU0hJRlQpIHwgXAogCQkJCSAoIDMgPDwgVElNSU5HX0NGRzFfUFJFVE9BQ1RfU0hJRlQpKQogCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzIJKCg5IDw8IFRJTUlOR19DRkcyX0ZPVVJfQUNUX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJKCg5IDw8IFRJTUlOR19DRkcyX0ZPVVJfQUNUX1NISUZUKSB8IFwKIAkJCQkgKDQgPDwgVElNSU5HX0NGRzJfQ0tFX1BMU19TSElGVCkgfCBcCiAJCQkJICgyIDw8IFRJTUlOR19DRkcyX1dSX0RBVEFfREVMQVlfU0hJRlQpIHwgXAogCQkJCSAoMiA8PCBUSU1JTkdfQ0ZHMl9SRF9UT19QUkVfU0hJRlQpIHwgXApAQCAtMTQxLDExOSArMTQxLDExOSBAQAogCQkJCSAoMCA8PCBUSU1JTkdfQ0ZHMl9BRERfTEFUX1NISUZUKSB8IFwKIAkJCQkgKDAgPDwgVElNSU5HX0NGRzJfQ1BPX1NISUZUKSkKIAotI2RlZmluZSBDRkdfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzMJMHgwMDAwMDAwMAogCiAvKgogICogTWVtb3J5IHRlc3QKICAqLwotI3VuZGVmIENGR19EUkFNX1RFU1QJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAgLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwMTAwMDAwCisjdW5kZWYgQ09ORklHX1NZU19EUkFNX1RFU1QJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwIC8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDAxMDAwMDAKIAogLyoKICAqIFRoZSByZXNlcnZlZCBtZW1vcnkKICAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRSAvKiBzdGFydCBvZiBtb25pdG9yICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGODAwMDAwIC8qIEZMQVNIIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UgLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAgLyogRkxBU0ggYmFzZSBhZGRyZXNzICovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmCUNGR19SQU1CT09UCisjdW5kZWYJQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KSAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qCiAgKiBJbml0aWFsIFJBTSBCYXNlIEFkZHJlc3MgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4RTYwMDAwMDAgLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMCAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkweDEwMCAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RTYwMDAwMDAgLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTB4MTAwIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAvKgogICogTG9jYWwgQnVzIENvbmZpZ3VyYXRpb24gJiBDbG9jayBTZXR1cAogICovCi0jZGVmaW5lIENGR19MQ1JSCQkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfNCkKLSNkZWZpbmUgQ0ZHX0xCQ19MQkNSCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTENSUgkJKExDUlJfREJZUCB8IExDUlJfQ0xLRElWXzQpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKIAogLyoKICAqIEZMQVNIIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkvKiB1c2UgdGhlIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkvKiB1c2UgdGhlIENGSSBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTggLyogbWF4IEZMQVNIIHNpemUgaXMgMzJNICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEgLyogVXNlIGludGVsIEZsYXNoIHByb3RlY3Rpb24uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJOCAvKiBtYXggRkxBU0ggc2l6ZSBpcyAzMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEgLyogVXNlIGludGVsIEZsYXNoIHByb3RlY3Rpb24uICovCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UgLyogV2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLwotI2RlZmluZSBDRkdfTEJMQVdBUjBfUFJFTElNCTB4ODAwMDAwMTggLyogMzJNQiB3aW5kb3cgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFIC8qIFdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxOCAvKiAzMk1CIHdpbmRvdyBzaXplICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKENGR19GTEFTSF9CQVNFIHwgLyogRmxhc2ggQmFzZSBhZGRyZXNzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCAvKiBGbGFzaCBCYXNlIGFkZHJlc3MgKi8gXAogCQkJKDIgPDwgQlJfUFNfU0hJRlQpIHwgLyogMTYgYml0IHBvcnQgc2l6ZSAqLyBcCiAJCQlCUl9WKQkvKiB2YWxpZCAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJKCh+KENGR19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIHwgT1JfVVBNX1hBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkoKH4oQ09ORklHX1NZU19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIHwgT1JfVVBNX1hBTSB8IFwKIAkJCQlPUl9HUENNX0NTTlQgfCBPUl9HUENNX0FDU19ESVYyIHwgXAogCQkJCU9SX0dQQ01fWEFDUyB8IE9SX0dQQ01fU0NZXzE1IHwgXAogCQkJCU9SX0dQQ01fVFJMWCB8IE9SX0dQQ01fRUhUUiB8IE9SX0dQQ01fRUFEKQogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMSAvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NiAvKiBtYXggc2VjdG9ycyBwZXIgZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEgLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2IC8qIG1heCBzZWN0b3JzIHBlciBkZXZpY2UgKi8KIAotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQorI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KIAogLyoKICAqIE5BTkQgZmxhc2ggb24gdGhlIGxvY2FsIGJ1cwogICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4NjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCTB4NjAwMDAwMDAKICNkZWZpbmUgQ09ORklHX0NNRF9OQU5ECQkxCiAjZGVmaW5lIENPTkZJR19OQU5EX0ZTTF9VUE0JMQotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJMQogI2RlZmluZSBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMV9QUkVMSU0JQ0ZHX05BTkRfQkFTRQotI2RlZmluZSBDRkdfTEJMQVdBUjFfUFJFTElNCTB4ODAwMDAwMWIgLyogQWNjZXNzIHdpbmRvdyBzaXplIDRLICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIxX1BSRUxJTQlDT05GSUdfU1lTX05BTkRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIxX1BSRUxJTQkweDgwMDAwMDFiIC8qIEFjY2VzcyB3aW5kb3cgc2l6ZSA0SyAqLwogCiAvKiBQb3J0IHNpemUgOCBiaXQsIFVQTUEgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCShDRkdfTkFORF9CQVNFIHwgMHgwMDAwMDg4MSkKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4ZmMwMDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkoQ09ORklHX1NZU19OQU5EX0JBU0UgfCAweDAwMDAwODgxKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCTB4ZmMwMDAwMDEKIAogLyoKICAqIEZ1aml0c3UgTUI4NjI3NyAoTUlOVCkgZ3JhcGhpY3MgY29udHJvbGxlcgogICovCi0jZGVmaW5lIENGR19WSURFT19CQVNFCQkweDcwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVklERU9fQkFTRQkJMHg3MDAwMDAwMAogCi0jZGVmaW5lIENGR19MQkxBV0JBUjJfUFJFTElNCUNGR19WSURFT19CQVNFCi0jZGVmaW5lIENGR19MQkxBV0FSMl9QUkVMSU0JMHg4MDAwMDAxOSAvKiBBY2Nlc3Mgd2luZG93IHNpemUgNjRNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMl9QUkVMSU0JQ09ORklHX1NZU19WSURFT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjJfUFJFTElNCTB4ODAwMDAwMTkgLyogQWNjZXNzIHdpbmRvdyBzaXplIDY0TUIgKi8KIAogLyogUG9ydCBzaXplIDMyIGJpdCwgVVBNQiAqLwotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJKENGR19WSURFT19CQVNFIHwgMHgwMDAwMThhMSkgLyogUFM9MTEsIFVQTUIgKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4ZmMwMDAwMDEgLyogKDY0TUIsIEVBRD0xKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCShDT05GSUdfU1lTX1ZJREVPX0JBU0UgfCAweDAwMDAxOGExKSAvKiBQUz0xMSwgVVBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4ZmMwMDAwMDEgLyogKDY0TUIsIEVBRD0xKSAqLwogCiAvKgogICogU2VyaWFsIFBvcnQKICAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDExNTIwMCx9CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0lNTVIrMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfSU1NUisweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0lNTVIrMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19JTU1SKzB4NDYwMCkKIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5ICovCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qIFBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KQEAgLTI2NywxMSArMjY3LDExIEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCiAjZGVmaW5lIENPTkZJR19JMkNfTVVMVElfQlVTCiAjZGVmaW5lIENPTkZJR19JMkNfQ01EX1RSRUUKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXt7MHg1Mn19IC8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCTB4MzAwMAotI2RlZmluZSBDRkdfSTJDMl9PRkZTRVQgMHgzMTAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7ezB4NTJ9fSAvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDMl9PRkZTRVQgMHgzMTAwCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQpAQCAtMjgwLDE1ICsyODAsMTUgQEAKICNkZWZpbmUgQ09ORklHX1BDSQogI2RlZmluZSBDT05GSUdfODNYWF9HRU5FUklDX1BDSQkxCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fUEhZUwlDRkdfUENJMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQkweDEwMDAwMDAwIC8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfTU1JT19CQVNFCTB4OTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTU1JT19QSFlTCUNGR19QQ0kxX01NSU9fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NTUlPX1NJWkUJMHgxMDAwMDAwMCAvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHhFMDMwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCTB4RTAzMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDEwMDAwMCAvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDEwMDAwMDAwIC8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRQkweDkwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NTUlPX1BIWVMJQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTU1JT19TSVpFCTB4MTAwMDAwMDAgLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweEUwMzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCTB4RTAzMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgxMDAwMDAgLyogMU0gKi8KIAogI2lmZGVmIENPTkZJR19QQ0kKIApAQCAtMjk3LDcgKzI5Nyw3IEBACiAKICN1bmRlZiBDT05GSUdfRUVQUk8xMDAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxOTU3CS8qIEZyZWVzY2FsZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxOTU3CS8qIEZyZWVzY2FsZSAqLwogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwogCkBAIC0zMTUsNDMgKzMxNSw0MyBAQAogI2RlZmluZSBDT05GSUdfVUVDX0VUSDEJCS8qIEdFVEgxICovCiAKICNpZmRlZiBDT05GSUdfVUVDX0VUSDEKLSNkZWZpbmUgQ0ZHX1VFQzFfVUNDX05VTQkwCS8qIFVDQzEgKi8KLSNkZWZpbmUgQ0ZHX1VFQzFfUlhfQ0xLCQlRRV9DTEtfTk9ORQotI2RlZmluZSBDRkdfVUVDMV9UWF9DTEsJCVFFX0NMSzkKLSNkZWZpbmUgQ0ZHX1VFQzFfRVRIX1RZUEUJR0lHQV9FVEgKLSNkZWZpbmUgQ0ZHX1VFQzFfUEhZX0FERFIJMgotI2RlZmluZSBDRkdfVUVDMV9JTlRFUkZBQ0VfTU9ERSBFTkVUXzEwMDBfUkdNSUlfUlhJRAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfVUNDX05VTQkwCS8qIFVDQzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1JYX0NMSwkJUUVfQ0xLX05PTkUKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1RYX0NMSwkJUUVfQ0xLOQorI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfRVRIX1RZUEUJR0lHQV9FVEgKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1BIWV9BRERSCTIKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX0lOVEVSRkFDRV9NT0RFIEVORVRfMTAwMF9SR01JSV9SWElECiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfVUVDX0VUSDIJCS8qIEdFVEgyICovCiAKICNpZmRlZiBDT05GSUdfVUVDX0VUSDIKLSNkZWZpbmUgQ0ZHX1VFQzJfVUNDX05VTQkxCS8qIFVDQzIgKi8KLSNkZWZpbmUgQ0ZHX1VFQzJfUlhfQ0xLCQlRRV9DTEtfTk9ORQotI2RlZmluZSBDRkdfVUVDMl9UWF9DTEsJCVFFX0NMSzQKLSNkZWZpbmUgQ0ZHX1VFQzJfRVRIX1RZUEUJR0lHQV9FVEgKLSNkZWZpbmUgQ0ZHX1VFQzJfUEhZX0FERFIJNAotI2RlZmluZSBDRkdfVUVDMl9JTlRFUkZBQ0VfTU9ERSBFTkVUXzEwMDBfUkdNSUlfUlhJRAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfVUNDX05VTQkxCS8qIFVDQzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX1JYX0NMSwkJUUVfQ0xLX05PTkUKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX1RYX0NMSwkJUUVfQ0xLNAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfRVRIX1RZUEUJR0lHQV9FVEgKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX1BIWV9BRERSCTQKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX0lOVEVSRkFDRV9NT0RFIEVORVRfMTAwMF9SR01JSV9SWElECiAjZW5kaWYKIAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDB4NDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAgLyogMTI4SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwMAotI2Vsc2UgLyogQ0ZHX1JBTUJPT1QgKi8KLSNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtMzc2LDcgKzM3Niw3IEBACiAjZGVmaW5lIENPTkZJR19DTURfUENJCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTM4NiwzNCArMzg2LDM0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTI1NiAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2IC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIENvcmUgSElEIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMHgwMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKLSNkZWZpbmUgQ0ZHX0hJRDIJCUhJRDJfSEJFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkweDAwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCQlISUQyX0hCRQogCiAvKgogICogTU1VIFNldHVwCkBAIC00MjIsNjUgKzQyMiw2NSBAQAogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCTEJLyogSGlnaCBCQVRzIHN1cHBvcnRlZCAqLwogCiAvKiBERFI6IGNhY2hlIGNhY2hlYWJsZSAqLwotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCUNPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCUNPTkZJR19TWVNfSUJBVDBVCiAKIC8qIElNTVJCQVIgJiBQQ0kgSU86IGNhY2hlLWluaGliaXQgYW5kIGd1YXJkZWQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX0lNTVIgfCBCQVRMX1BQXzEwIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19JTU1SIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX0lNTVIgfCBCQVRVX0JMXzRNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfSU1NUiB8IEJBVFVfQkxfNE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKIAogLyogTkFORDogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDJMCShDRkdfTkFORF9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHxcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX05BTkRfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8XAogCQkJIEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUMlUJKENGR19OQU5EX0JBU0UgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCShDT05GSUdfU1lTX05BTkRfQkFTRSB8IEJBVFVfQkxfNjRNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCUNPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCUNPTkZJR19TWVNfSUJBVDJVCiAKIC8qIEZMQVNIOiBpY2FjaGUgY2FjaGVhYmxlLCBidXQgZGNhY2hlLWluaGliaXQgYW5kIGd1YXJkZWQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQzTAkoQ0ZHX0ZMQVNIX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUM1UJKENGR19GTEFTSF9CQVNFIHwgQkFUVV9CTF8zMk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQzTAkoQ0ZHX0ZMQVNIX0JBU0UgfCBCQVRMX1BQXzEwIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQkFUVV9CTF8zMk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBcCiAJCQkgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKIAogLyogU3RhY2sgaW4gZGNhY2hlOiBjYWNoZWFibGUsIG5vIG1lbW9yeSBjb2hlcmVuY2UgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ0TAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQotI2RlZmluZSBDRkdfSUJBVDRVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDRMCUNGR19JQkFUNEwKLSNkZWZpbmUgQ0ZHX0RCQVQ0VQlDRkdfSUJBVDRVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0VQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMCUNPTkZJR19TWVNfSUJBVDRMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRVCUNPTkZJR19TWVNfSUJBVDRVCiAKLSNkZWZpbmUgQ0ZHX0lCQVQ1TAkoQ0ZHX1ZJREVPX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCShDT05GSUdfU1lTX1ZJREVPX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBcCiAJCQkgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQkoQ0ZHX1ZJREVPX0JBU0UgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDVMCUNGR19JQkFUNUwKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQlDRkdfSUJBVDVVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVVCShDT05GSUdfU1lTX1ZJREVPX0JBU0UgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAlDT05GSUdfU1lTX0lCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQlDT05GSUdfU1lTX0lCQVQ1VQogCiAjaWZkZWYgQ09ORklHX1BDSQogLyogUENJIE1FTSBzcGFjZTogY2FjaGVhYmxlICovCi0jZGVmaW5lIENGR19JQkFUNkwJKENGR19QQ0kxX01FTV9QSFlTIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDZVCShDRkdfUENJMV9NRU1fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDZMCUNGR19JQkFUNkwKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQlDRkdfSUJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMCShDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCShDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNkwJQ09ORklHX1NZU19JQkFUNkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUJQ09ORklHX1NZU19JQkFUNlUKIC8qIFBDSSBNTUlPIHNwYWNlOiBjYWNoZS1pbmhpYml0IGFuZCBndWFyZGVkICovCi0jZGVmaW5lIENGR19JQkFUN0wJKENGR19QQ0kxX01NSU9fUEhZUyB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCShDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTIHwgQkFUTF9QUF8xMCB8IFwKIAkJCSBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUN1UJKENGR19QQ0kxX01NSU9fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDdMCUNGR19JQkFUN0wKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQlDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVCShDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdMCUNPTkZJR19TWVNfSUJBVDdMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdVCUNPTkZJR19TWVNfSUJBVDdVCiAjZWxzZSAvKiBDT05GSUdfUENJICovCi0jZGVmaW5lIENGR19JQkFUNkwJKDApCi0jZGVmaW5lIENGR19JQkFUNlUJKDApCi0jZGVmaW5lIENGR19JQkFUN0wJKDApCi0jZGVmaW5lIENGR19JQkFUN1UJKDApCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAlDRkdfSUJBVDdMCi0jZGVmaW5lIENGR19EQkFUN1UJQ0ZHX0lCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNlUJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNkwJQ09ORklHX1NZU19JQkFUNkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUJQ09ORklHX1NZU19JQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJQ09ORklHX1NZU19JQkFUN0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJQ09ORklHX1NZU19JQkFUN1UKICNlbmRpZiAvKiBDT05GSUdfUENJICovCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODM3WEVNRFMuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzdYRU1EUy5oCmluZGV4IDI1NmYxNTYuLmFlYjYxYTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4MzdYRU1EUy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzdYRU1EUy5oCkBAIC00Nyw3ICs0Nyw3IEBACiAgKiBpZiBDTEtJTiBpcyA2Nk1IeiwgdGhlbgogICogQ1NCID0gMzk2TUh6LCBDT1JFID0gNTk0TUh6LCBERFJDID0gMzk2TUh6LCBMQkMgPSAzOTZNSHoKICAqLwotI2RlZmluZSBDRkdfSFJDV19MT1cgKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0xPVyAoXAogCUhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9ERFJfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9TVkNPRF9ESVZfMiB8XApAQCAtNTUsNyArNTUsNyBAQAogCUhSQ1dMX0NPUkVfVE9fQ1NCXzFfNVgxKQogCiAjaWZkZWYgQ09ORklHX1BDSVNMQVZFCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfQUdFTlQgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRElTQUJMRSB8XAogCUhSQ1dIX0NPUkVfRU5BQkxFIHxcCkBAIC02OSw3ICs2OSw3IEBACiAJSFJDV0hfQklHX0VORElBTiB8XAogCUhSQ1dIX0xEUF9DTEVBUikKICNlbHNlCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfSE9TVCB8XAogCUhSQ1dIX1BDSTFfQVJCSVRFUl9FTkFCTEUgfFwKIAlIUkNXSF9DT1JFX0VOQUJMRSB8XApAQCAtODUsMjkgKzg1LDI5IEBACiAjZW5kaWYKIAogLyogQXJiaXRlciBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19BQ1JfUElQRV9ERVAJMwkvKiBBcmJpdGVyIHBpcGVsaW5lIGRlcHRoIGlzIDQgKi8KLSNkZWZpbmUgQ0ZHX0FDUl9SUFRDTlQJCTMJLyogQXJiaXRlciByZXBlYXQgY291bnQgaXMgNCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDUl9QSVBFX0RFUAkzCS8qIEFyYml0ZXIgcGlwZWxpbmUgZGVwdGggaXMgNCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDUl9SUFRDTlQJCTMJLyogQXJiaXRlciByZXBlYXQgY291bnQgaXMgNCAqLwogCiAvKiBTeXN0ZW0gUHJpb3JpdHkgQ29udHJvbCBSZWdpc3RlciAqLwotI2RlZmluZSBDRkdfU1BDUl9UU0VDRVAJCTMJLyogZVRTRUMxLzIgZW1lcmdlbmN5IGhhcyBoaWdoZXN0IHByaW9yaXR5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU1BDUl9UU0VDRVAJCTMJLyogZVRTRUMxLzIgZW1lcmdlbmN5IGhhcyBoaWdoZXN0IHByaW9yaXR5ICovCiAKIC8qCiAgKiBJUCBibG9ja3MgY2xvY2sgY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19TQ0NSX1RTRUMxQ00JMQkvKiBDU0I6ZVRTRUMxID0gMToxICovCi0jZGVmaW5lIENGR19TQ0NSX1RTRUMyQ00JMQkvKiBDU0I6ZVRTRUMyID0gMToxICovCi0jZGVmaW5lIENGR19TQ0NSX1NBVEFDTQkJU0NDUl9TQVRBQ01fMgkvKiBDU0I6U0FUQVswOjNdID0gMjoxICovCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUl9UU0VDMUNNCTEJLyogQ1NCOmVUU0VDMSA9IDE6MSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NDQ1JfVFNFQzJDTQkxCS8qIENTQjplVFNFQzIgPSAxOjEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSX1NBVEFDTQkJU0NDUl9TQVRBQ01fMgkvKiBDU0I6U0FUQVswOjNdID0gMjoxICovCiAKIC8qCiAgKiBTeXN0ZW0gSU8gQ29uZmlnCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJQ1JICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TSUNSTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NJQ1JICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkwJCTB4MDAwMDAwMDAKIAogLyoKICAqIE91dHB1dCBCdWZmZXIgSW1wZWRhbmNlCiAgKi8KLSNkZWZpbmUgQ0ZHX09CSVIJCTB4MzExMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQklSCQkweDMxMTAwMDAwCiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRiAvKiBjYWxsIGJvYXJkX3ByZV9pbml0ICovCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IKQEAgLTExNSwxNyArMTE1LDE3IEBACiAvKgogICogSU1NUiBuZXcgYWRkcmVzcwogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhFMDAwMDAwMAogCiAvKgogICogRERSIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9CQVNFCQkweDAwMDAwMDAwIC8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5ICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCUNGR19ERFJfQkFTRQotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NMS19DTlRMCUREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1Ci0jZGVmaW5lIENGR184M1hYX0REUl9VU0VTX0NTMAotI2RlZmluZSBDRkdfRERSQ0RSX1ZBTFVFCTB4ODAwODAwMDEgLyogT0RUIDE1MG9obSBvbiBTb0MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQkFTRQkJMHgwMDAwMDAwMCAvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NMS19DTlRMCUREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1CisjZGVmaW5lIENPTkZJR19TWVNfODNYWF9ERFJfVVNFU19DUzAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJDRFJfVkFMVUUJMHg4MDA4MDAwMSAvKiBPRFQgMTUwb2htIG9uIFNvQyAqLwogCiAjdW5kZWYgQ09ORklHX0REUl9FQ0MJCS8qIHN1cHBvcnQgRERSIEVDQyBmdW5jdGlvbiAqLwogI3VuZGVmIENPTkZJR19ERFJfRUNDX0NNRAkvKiBVc2UgRERSIEVDQyB1c2VyIGNvbW1hbmRzICovCkBAIC0xNDEsMTQgKzE0MSwxNCBAQAogICogV0hJVEUgRUxFQ1RST05JQyBERVNJR05TIC0gVzNIRzY0TTcyRUVVNDAzUEQ0IFNPLURJTU0KICAqIGNvbnNpc3Qgb2YgbmluZSBjaGlwcyBmcm9tIFNBTVNVTkcgSzRUNTEwODNRRS1aQyhMKUQ1CiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TSVpFCQk1MTIgLyogTUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkweDAwMDAwMDFmCi0jZGVmaW5lIENGR19ERFJfQ1MwX0NPTkZJRwkoIENTQ09ORklHX0VOIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0laRQkJNTEyIC8qIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9CTkRTCTB4MDAwMDAwMWYKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkoIENTQ09ORklHX0VOIFwKIAkJCQl8IDB4MDAwMTAwMDAgIC8qIE9EVF9XUiB0byBDU24gKi8gXAogCQkJCXwgQ1NDT05GSUdfUk9XX0JJVF8xNCB8IENTQ09ORklHX0NPTF9CSVRfMTAgKQogCQkJCS8qIDB4ODAwMTAyMDIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzAJKCAoIDAgPDwgVElNSU5HX0NGRzBfUldUX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18wCSggKCAwIDw8IFRJTUlOR19DRkcwX1JXVF9TSElGVCApIFwKIAkJCQl8ICggMCA8PCBUSU1JTkdfQ0ZHMF9XUlRfU0hJRlQgKSBcCiAJCQkJfCAoIDAgPDwgVElNSU5HX0NGRzBfUlJUX1NISUZUICkgXAogCQkJCXwgKCAwIDw8IFRJTUlOR19DRkcwX1dXVF9TSElGVCApIFwKQEAgLTE1Nyw3ICsxNTcsNyBAQAogCQkJCXwgKCA4IDw8IFRJTUlOR19DRkcwX09EVF9QRF9FWElUX1NISUZUICkgXAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcwX01SU19DWUNfU0hJRlQgKSApCiAJCQkJLyogMHgwMDYyMDgwMiAqLwotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCSggKCAzIDw8IFRJTUlOR19DRkcxX1BSRVRPQUNUX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkoICggMyA8PCBUSU1JTkdfQ0ZHMV9QUkVUT0FDVF9TSElGVCApIFwKIAkJCQl8ICggOSA8PCBUSU1JTkdfQ0ZHMV9BQ1RUT1BSRV9TSElGVCApIFwKIAkJCQl8ICggMyA8PCBUSU1JTkdfQ0ZHMV9BQ1RUT1JXX1NISUZUICkgXAogCQkJCXwgKCA1IDw8IFRJTUlOR19DRkcxX0NBU0xBVF9TSElGVCApIFwKQEAgLTE2Niw3ICsxNjYsNyBAQAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcxX0FDVFRPQUNUX1NISUZUICkgXAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcxX1dSVE9SRF9TSElGVCApICkKIAkJCQkvKiAweDM5MzVkMzIyICovCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzIJKCAoIDEgPDwgVElNSU5HX0NGRzJfQUREX0xBVF9TSElGVCApIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJKCAoIDEgPDwgVElNSU5HX0NGRzJfQUREX0xBVF9TSElGVCApIFwKIAkJCQl8ICggNiA8PCBUSU1JTkdfQ0ZHMl9DUE9fU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzJfV1JfTEFUX0RFTEFZX1NISUZUICkgXAogCQkJCXwgKCA0IDw8IFRJTUlOR19DRkcyX1JEX1RPX1BSRV9TSElGVCApIFwKQEAgLTE3NCw3MCArMTc0LDcwIEBACiAJCQkJfCAoIDMgPDwgVElNSU5HX0NGRzJfQ0tFX1BMU19TSElGVCApIFwKIAkJCQl8ICggOCA8PCBUSU1JTkdfQ0ZHMl9GT1VSX0FDVF9TSElGVCkgKQogCQkJCS8qIDB4MTMxMDg4YzggKi8KLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkoICggMHgwM0UwIDw8IFNEUkFNX0lOVEVSVkFMX1JFRklOVF9TSElGVCApIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfSU5URVJWQUwJKCAoIDB4MDNFMCA8PCBTRFJBTV9JTlRFUlZBTF9SRUZJTlRfU0hJRlQgKSBcCiAJCQkJfCAoIDB4MDEwMCA8PCBTRFJBTV9JTlRFUlZBTF9CU1RPUFJFX1NISUZUICkgKQogCQkJCS8qIDB4MDNFMDAxMDAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcJMHg0MzAwMDAwMAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NGRzIJMHgwMDAwMTAwMCAvKiAxIHBvc3RlZCByZWZyZXNoICovCi0jZGVmaW5lIENGR19ERFJfTU9ERQkJKCAoIDB4MDQ0OCA8PCBTRFJBTV9NT0RFX0VTRF9TSElGVCApIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHCTB4NDMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHMgkweDAwMDAxMDAwIC8qIDEgcG9zdGVkIHJlZnJlc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJKCAoIDB4MDQ0OCA8PCBTRFJBTV9NT0RFX0VTRF9TSElGVCApIFwKIAkJCQl8ICggMHgxNDMyIDw8IFNEUkFNX01PREVfU0RfU0hJRlQgKSApCiAJCQkJLyogT0RUIDE1MG9obSBDTD0zLCBBTD0xIG9uIFNEUkFNICovCi0jZGVmaW5lIENGR19ERFJfTU9ERTIJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERTIJCTB4MDAwMDAwMDAKICNlbmRpZgogCiAvKgogICogTWVtb3J5IHRlc3QKICAqLwotI3VuZGVmIENGR19EUkFNX1RFU1QJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwNDAwMDAgLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwMTQwMDAwCisjdW5kZWYgQ09ORklHX1NZU19EUkFNX1RFU1QJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDQwMDAwIC8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDAxNDAwMDAKIAogLyoKICAqIFRoZSByZXNlcnZlZCBtZW1vcnkKICAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRSAvKiBzdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRSAvKiBzdGFydCBvZiBtb25pdG9yICovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmIENGR19SQU1CT09UCisjdW5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotLyogQ0ZHX01PTklUT1JfTEVOIG11c3QgYmUgYSBtdWx0aXBsZSBvZiBDT05GSUdfRU5WX1NFQ1RfU0laRSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworLyogQ09ORklHX1NZU19NT05JVE9SX0xFTiBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgQ09ORklHX0VOVl9TRUNUX1NJWkUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKgogICogSW5pdGlhbCBSQU0gQmFzZSBBZGRyZXNzIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweEU2MDAwMDAwIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMHgxMDAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweEU2MDAwMDAwIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMCAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogLyoKICAqIExvY2FsIEJ1cyBDb25maWd1cmF0aW9uICYgQ2xvY2sgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfTENSUgkJKExDUlJfREJZUCB8IExDUlJfQ0xLRElWXzgpCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xDUlIJCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl84KQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQkNSCQkweDAwMDAwMDAwCiAKIC8qCiAgKiBGTEFTSCBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkvKiB1c2UgdGhlIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJLyogdXNlIHRoZSBDRkkgZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZFMDAwMDAwIC8qIEZMQVNIIGJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMzIgLyogbWF4IEZMQVNIIHNpemUgaXMgMzJNICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJCS8qIFVzZSBoL3cgRmxhc2ggcHJvdGVjdGlvbi4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwIC8qIEZMQVNIIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTMyIC8qIG1heCBGTEFTSCBzaXplIGlzIDMyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLwogCi0jZGVmaW5lIENGR19MQkxBV0JBUjBfUFJFTElNCUNGR19GTEFTSF9CQVNFIC8qIFdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0xCTEFXQVIwX1BSRUxJTQkweDgwMDAwMDE4IC8qIDMyTUIgd2luZG93IHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRSAvKiBXaW5kb3cgYmFzZSBhdCBmbGFzaCBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjBfUFJFTElNCTB4ODAwMDAwMTggLyogMzJNQiB3aW5kb3cgc2l6ZSAqLwogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoIENGR19GTEFTSF9CQVNFCS8qIEZsYXNoIEJhc2UgYWRkcmVzcyAqLyBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJKCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogRmxhc2ggQmFzZSBhZGRyZXNzICovIFwKIAkJCQl8ICgyIDw8IEJSX1BTX1NISUZUKQkvKiAxNiBiaXQgcG9ydCBzaXplICovIFwKIAkJCQl8IEJSX1YgKQkJLyogdmFsaWQgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCSggKH4oQ0ZHX0ZMQVNIX1NJWkUgLSAxKSA8PCAyMCkgXAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCSggKH4oQ09ORklHX1NZU19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIFwKIAkJCQl8IE9SX1VQTV9YQU0gXAogCQkJCXwgT1JfR1BDTV9DU05UIFwKIAkJCQl8IE9SX0dQQ01fQUNTX0RJVjIgXApAQCAtMjQ4LDMzICsyNDgsMzMgQEAKIAkJCQl8IE9SX0dQQ01fRUFEICkKIAkJCQkvKiAweEZFMDAwRkY3ICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxIC8qIG51bWJlciBvZiBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2IC8qIG1heCBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMSAvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYgLyogbWF4IHNlY3RvcnMgcGVyIGRldmljZSAqLwogCi0jdW5kZWYgQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwIC8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAgLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAgLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAgLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCiAKIC8qCiAgKiBCQ1NSIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfQkNTUgkJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdCQVIxX1BSRUxJTQlDRkdfQkNTUiAvKiBBY2Nlc3Mgd2luZG93IGJhc2UgYXQgQkNTUiBiYXNlICovCi0jZGVmaW5lIENGR19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRSAvKiBBY2Nlc3Mgd2luZG93IHNpemUgMzJLICovCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUgkJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMV9QUkVMSU0JQ09ORklHX1NZU19CQ1NSIC8qIEFjY2VzcyB3aW5kb3cgYmFzZSBhdCBCQ1NSIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRSAvKiBBY2Nlc3Mgd2luZG93IHNpemUgMzJLICovCiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCShDRkdfQkNTUiB8IDB4MDAwMDA4MDEpIC8qIFBvcnQgc2l6ZT04Yml0LCBNU0VMPUdQQ00gKi8KLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4RkZGRkU5ZjcgLyogbGVuZ3RoIDMySyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCShDT05GSUdfU1lTX0JDU1IgfCAweDAwMDAwODAxKSAvKiBQb3J0IHNpemU9OGJpdCwgTVNFTD1HUENNICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhGRkZGRTlmNyAvKiBsZW5ndGggMzJLICovCiAKIC8qCiAgKiBOQU5EIEZsYXNoIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkweEUwNjAwMDAwCS8qIDB4RTA2MDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCSggQ0ZHX05BTkRfQkFTRSBcCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkweEUwNjAwMDAwCS8qIDB4RTA2MDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkoIENPTkZJR19TWVNfTkFORF9CQVNFIFwKIAkJCQl8ICgyPDxCUl9ERUNDX1NISUZUKQkvKiBVc2UgSFcgRUNDICovIFwKIAkJCQl8IEJSX1BTXzgJCS8qIFBvcnQgU2l6ZSA9IDggYml0ICovIFwKIAkJCQl8IEJSX01TX0ZDTQkJLyogTVNFTCA9IEZDTSAqLyBcCiAJCQkJfCBCUl9WICkJCS8qIHZhbGlkICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQkoIDB4RkZGRjgwMDAJCS8qIGxlbmd0aCAzMksgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCSggMHhGRkZGODAwMAkJLyogbGVuZ3RoIDMySyAqLyBcCiAJCQkJfCBPUl9GQ01fQ1NDVCBcCiAJCQkJfCBPUl9GQ01fQ1NUIFwKIAkJCQl8IE9SX0ZDTV9DSFQgXApAQCAtMjgzLDI5ICsyODMsMjkgQEAKIAkJCQl8IE9SX0ZDTV9FSFRSICkKIAkJCQkvKiAweEZGRkY4Mzk2ICovCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSM19QUkVMSU0JQ0ZHX05BTkRfQkFTRQotI2RlZmluZSBDRkdfTEJMQVdBUjNfUFJFTElNCTB4ODAwMDAwMEUJLyogMzJLQiAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjNfUFJFTElNCUNPTkZJR19TWVNfTkFORF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjNfUFJFTElNCTB4ODAwMDAwMEUJLyogMzJLQiAgKi8KIAogLyoKICAqIFNlcmlhbCBQb3J0CiAgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI3VuZGVmIENPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19JTU1SKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0lNTVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19JTU1SKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfSU1NUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyogUGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwpAQCAtMzE3LDM1ICszMTcsMzUgQEAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAgLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7MHg1MX0gLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAotI2RlZmluZSBDRkdfSTJDMl9PRkZTRVQJCTB4MzEwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwIC8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7MHg1MX0gLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkMyX09GRlNFVAkJMHgzMTAwCiAKIC8qCiAgKiBDb25maWcgb24tYm9hcmQgUlRDCiAgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzNzQJLyogdXNlIGRzMTM3NCBydGMgdmlhIGkyYyAqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjggLyogYXQgYWRkcmVzcyAweDY4ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NjggLyogYXQgYWRkcmVzcyAweDY4ICovCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCi0jZGVmaW5lIENGR19QQ0lfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9QSFlTCUNGR19QQ0lfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwIC8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NTUlPX0JBU0UJMHg5MDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01NSU9fUEhZUwlDRkdfUENJX01NSU9fQkFTRQotI2RlZmluZSBDRkdfUENJX01NSU9fU0laRQkweDEwMDAwMDAwIC8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSV9JT19CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fUEhZUwkJMHhFMDMwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1NJWkUJCTB4MTAwMDAwIC8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMCAvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01NSU9fQkFTRQkweDkwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01NSU9fUEhZUwlDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTU1JT19TSVpFCTB4MTAwMDAwMDAgLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1BIWVMJCTB4RTAzMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fU0laRQkJMHgxMDAwMDAgLyogMU0gKi8KIAotI2RlZmluZSBDRkdfUENJX1NMVl9NRU1fTE9DQUwJQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9TTFZfTUVNX0JVUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfU0xWX01FTV9TSVpFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9MT0NBTAlDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9CVVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX1NJWkUJMHg4MDAwMDAwMAogCiAjaWZkZWYgQ09ORklHX1BDSQogI2RlZmluZSBDT05GSUdfODNYWF9HRU5FUklDX1BDSQkxIC8qIFVzZSBnZW5lcmljIFBDSSBzZXR1cCAqLwpAQCAtMzU2LDcgKzM1Niw3IEBACiAKICN1bmRlZiBDT05GSUdfRUVQUk8xMDAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxOTU3CS8qIEZyZWVzY2FsZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxOTU3CS8qIEZyZWVzY2FsZSAqLwogI2VuZGlmIC8qIENPTkZJR19QQ0kgKi8KIAogI2lmbmRlZiBDT05GSUdfTkVUX01VTFRJCkBAIC0zNjcsMTAgKzM2NywxMCBAQAogICogVFNFQwogICovCiAjZGVmaW5lIENPTkZJR19UU0VDX0VORVQJLyogVFNFQyBldGhlcm5ldCBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19UU0VDMV9PRkZTRVQJMHgyNDAwMAotI2RlZmluZSBDRkdfVFNFQzEJCShDRkdfSU1NUitDRkdfVFNFQzFfT0ZGU0VUKQotI2RlZmluZSBDRkdfVFNFQzJfT0ZGU0VUCTB4MjUwMDAKLSNkZWZpbmUgQ0ZHX1RTRUMyCQkoQ0ZHX0lNTVIrQ0ZHX1RTRUMyX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMV9PRkZTRVQJMHgyNDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMxCQkoQ09ORklHX1NZU19JTU1SK0NPTkZJR19TWVNfVFNFQzFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMyX09GRlNFVAkweDI1MDAwCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzIJCShDT05GSUdfU1lTX0lNTVIrQ09ORklHX1NZU19UU0VDMl9PRkZTRVQpCiAKIC8qCiAgKiBUU0VDIGV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTQwMSwxNSArNDAxLDE1IEBACiAjZGVmaW5lIENPTkZJR19MSUJBVEEKICNkZWZpbmUgQ09ORklHX0ZTTF9TQVRBCiAKLSNkZWZpbmUgQ0ZHX1NBVEFfTUFYX0RFVklDRQkyCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQV9NQVhfREVWSUNFCTIKICNkZWZpbmUgQ09ORklHX1NBVEExCi0jZGVmaW5lIENGR19TQVRBMV9PRkZTRVQJMHgxODAwMAotI2RlZmluZSBDRkdfU0FUQTEJCShDRkdfSU1NUiArIENGR19TQVRBMV9PRkZTRVQpCi0jZGVmaW5lIENGR19TQVRBMV9GTEFHUwkJRkxBR1NfRE1BCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQTFfT0ZGU0VUCTB4MTgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQVRBMQkJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfU0FUQTFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEExX0ZMQUdTCQlGTEFHU19ETUEKICNkZWZpbmUgQ09ORklHX1NBVEEyCi0jZGVmaW5lIENGR19TQVRBMl9PRkZTRVQJMHgxOTAwMAotI2RlZmluZSBDRkdfU0FUQTIJCShDRkdfSU1NUiArIENGR19TQVRBMl9PRkZTRVQpCi0jZGVmaW5lIENGR19TQVRBMl9GTEFHUwkJRkxBR1NfRE1BCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQTJfT0ZGU0VUCTB4MTkwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQVRBMgkJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfU0FUQTJfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEEyX0ZMQUdTCQlGTEFHU19ETUEKIAogI2lmZGVmIENPTkZJR19GU0xfU0FUQQogI2RlZmluZSBDT05GSUdfTEJBNDgKQEAgLTQyMSwyMCArNDIxLDIwIEBACiAvKgogICogRW52aXJvbm1lbnQKICAqLwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAkjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAgLyogMTI4SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2Vsc2UKLQkjZGVmaW5lIENGR19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLworCSNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLwogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTQ1OSw3ICs0NTksNyBAQAogICAgICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICAgICAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICAgICAjdW5kZWYgQ09ORklHX0NNRF9MT0FEUwogI2VuZGlmCkBAIC00NzEsMzQgKzQ3MSwzNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjAwMDAwMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDIwMDAwMDAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotCSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0IC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisJI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0IC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotCSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NiAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBDb3JlIEhJRCBTZXR1cAogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCTB4MDAwMDAwMDAwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0VOQUJMRV9NQUNISU5FX0NIRUNLCi0jZGVmaW5lIENGR19ISUQyCQlISUQyX0hCRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMHgwMDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0VOQUJMRV9NQUNISU5FX0NIRUNLCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkJSElEMl9IQkUKIAogLyoKICAqIE1NVSBTZXR1cApAQCAtNTA2LDY3ICs1MDYsNjcgQEAKICNkZWZpbmUgQ09ORklHX0hJR0hfQkFUUwkxCS8qIEhpZ2ggQkFUcyBzdXBwb3J0ZWQgKi8KIAogLyogRERSOiBjYWNoZSBjYWNoZWFibGUgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0xPV0VSCQlDRkdfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfU0RSQU1fVVBQRVIJCShDRkdfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fTE9XRVIJCUNPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1VQUEVSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCkKIAotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fTE9XRVIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUJKENGR19TRFJBTV9MT1dFUiB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDBMCUNGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVQlDRkdfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCShDT05GSUdfU1lTX1NEUkFNX0xPV0VSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9MT1dFUiB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQogCi0jZGVmaW5lIENGR19JQkFUMUwJKENGR19TRFJBTV9VUFBFUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX1NEUkFNX1VQUEVSIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKENPTkZJR19TWVNfU0RSQU1fVVBQRVIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCShDT05GSUdfU1lTX1NEUkFNX1VQUEVSIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMCUNPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVCUNPTkZJR19TWVNfSUJBVDFVCiAKIC8qIElNTVJCQVIsIFBDSSBJTyBhbmQgTkFORDogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDJMCShDRkdfSU1NUiB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX0lNTVIgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDJVCShDRkdfSU1NUiB8IEJBVFVfQkxfOE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQyTAlDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUJQ0ZHX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkoQ09ORklHX1NZU19JTU1SIHwgQkFUVV9CTF84TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAlDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQogCiAvKiBCQ1NSOiBjYWNoZS1pbmhpYml0IGFuZCBndWFyZGVkICovCi0jZGVmaW5lIENGR19JQkFUM0wJKENGR19CQ1NSIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKENPTkZJR19TWVNfQkNTUiB8IEJBVExfUFBfMTAgfCBcCiAJCQlCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUM1UJKENGR19CQ1NSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJKENPTkZJR19TWVNfQkNTUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQogCiAvKiBGTEFTSDogaWNhY2hlIGNhY2hlYWJsZSwgYnV0IGRjYWNoZS1pbmhpYml0IGFuZCBndWFyZGVkICovCi0jZGVmaW5lIENGR19JQkFUNEwJKENGR19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDRVCShDRkdfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNEwJKENGR19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDRVCUNGR19JQkFUNFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNFUJQ09ORklHX1NZU19JQkFUNFUKIAogLyogU3RhY2sgaW4gZGNhY2hlOiBjYWNoZWFibGUsIG5vIG1lbW9yeSBjb2hlcmVuY2UgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ1TAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQotI2RlZmluZSBDRkdfSUJBVDVVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDVMCUNGR19JQkFUNUwKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQlDRkdfSUJBVDVVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVMCUNPTkZJR19TWVNfSUJBVDVMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVVCUNPTkZJR19TWVNfSUJBVDVVCiAKICNpZmRlZiBDT05GSUdfUENJCiAvKiBQQ0kgTUVNIHNwYWNlOiBjYWNoZWFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkoQ0ZHX1BDSV9NRU1fUEhZUyB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkoQ0ZHX1BDSV9NRU1fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDZMCUNGR19JQkFUNkwKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQlDRkdfSUJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMCShDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNlUJKENPTkZJR19TWVNfUENJX01FTV9QSFlTIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMCUNPTkZJR19TWVNfSUJBVDZMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVCUNPTkZJR19TWVNfSUJBVDZVCiAvKiBQQ0kgTU1JTyBzcGFjZTogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDdMCShDRkdfUENJX01NSU9fUEhZUyB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCShDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDdVCShDRkdfUENJX01NSU9fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDdMCUNGR19JQkFUN0wKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQlDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVCShDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJQ09ORklHX1NZU19JQkFUN0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJQ09ORklHX1NZU19JQkFUN1UKICNlbHNlCi0jZGVmaW5lIENGR19JQkFUNkwJKDApCi0jZGVmaW5lIENGR19JQkFUNlUJKDApCi0jZGVmaW5lIENGR19JQkFUN0wJKDApCi0jZGVmaW5lIENGR19JQkFUN1UJKDApCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAlDRkdfSUJBVDdMCi0jZGVmaW5lIENGR19EQkFUN1UJQ0ZHX0lCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNlUJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNkwJQ09ORklHX1NZU19JQkFUNkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUJQ09ORklHX1NZU19JQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJQ09ORklHX1NZU19JQkFUN0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJQ09ORklHX1NZU19JQkFUN1UKICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzgzN1hFUkRCLmggYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODM3WEVSREIuaAppbmRleCA0NjUwYjhkLi5mMjgxYzU5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODM3WEVSREIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODM3WEVSREIuaApAQCAtNTgsNyArNTgsNyBAQAogLyoKICAqIEhhcmR3YXJlIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZAogICovCi0jZGVmaW5lIENGR19IUkNXX0xPVyAoXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTE9XIChcCiAJSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLXzFYMSB8XAogCUhSQ1dMX0REUl9UT19TQ0JfQ0xLXzFYMSB8XAogCUhSQ1dMX1NWQ09EX0RJVl8yIHxcCkBAIC02Niw3ICs2Niw3IEBACiAJSFJDV0xfQ09SRV9UT19DU0JfMlgxKQogCiAjaWZkZWYgQ09ORklHX1BDSVNMQVZFCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfQUdFTlQgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRElTQUJMRSB8XAogCUhSQ1dIX0NPUkVfRU5BQkxFIHxcCkBAIC04MCw3ICs4MCw3IEBACiAJSFJDV0hfQklHX0VORElBTiB8XAogCUhSQ1dIX0xEUF9DTEVBUikKICNlbHNlCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfSE9TVCB8XAogCUhSQ1dIX1BDSTFfQVJCSVRFUl9FTkFCTEUgfFwKIAlIUkNXSF9DT1JFX0VOQUJMRSB8XApAQCAtOTUsMzYgKzk1LDM2IEBACiAJSFJDV0hfTERQX0NMRUFSKQogI2VuZGlmCiAKLS8qIFN5c3RlbSBwZXJmb3JtYW5jZSAtIGRlZmluZSB0aGUgdmFsdWUgaS5lLiBDRkdfWFhYCisvKiBTeXN0ZW0gcGVyZm9ybWFuY2UgLSBkZWZpbmUgdGhlIHZhbHVlIGkuZS4gQ09ORklHX1NZU19YWFgKICovCiAKIC8qIEFyYml0ZXIgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLwotI2RlZmluZSBDRkdfQUNSX1BJUEVfREVQCTMJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAoMC0zKSAqLwotI2RlZmluZSBDRkdfQUNSX1JQVENOVAkJMwkvKiBBcmJpdGVyIHJlcGVhdCBjb3VudCAoMC03KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDUl9QSVBFX0RFUAkzCS8qIEFyYml0ZXIgcGlwZWxpbmUgZGVwdGggKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1JfUlBUQ05UCQkzCS8qIEFyYml0ZXIgcmVwZWF0IGNvdW50ICgwLTcpICovCiAKIC8qIFN5c3RlbSBQcmlvcml0eSBDb250cm9sIFJlZ3NpdGVyICovCi0jZGVmaW5lIENGR19TUENSX1RTRUNFUAkJMwkvKiBlVFNFQzEmMiBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUENSX1RTRUNFUAkJMwkvKiBlVFNFQzEmMiBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KIAogLyogU3lzdGVtIENsb2NrIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1JfVFNFQzFDTQkxCQkvKiBlVFNFQzEgY2xvY2sgbW9kZSAoMC0zKSAqLwotI2RlZmluZSBDRkdfU0NDUl9UU0VDMkNNCTEJCS8qIGVUU0VDMiBjbG9jayBtb2RlICgwLTMpICovCi0jZGVmaW5lIENGR19TQ0NSX1NBVEFDTQkJU0NDUl9TQVRBQ01fMgkvKiBTQVRBMS00IGNsb2NrIG1vZGUgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSX1RTRUMxQ00JMQkJLyogZVRTRUMxIGNsb2NrIG1vZGUgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSX1RTRUMyQ00JMQkJLyogZVRTRUMyIGNsb2NrIG1vZGUgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSX1NBVEFDTQkJU0NDUl9TQVRBQ01fMgkvKiBTQVRBMS00IGNsb2NrIG1vZGUgKDAtMykgKi8KIAogLyoKICAqIFN5c3RlbSBJTyBDb25maWcKICAqLwotI2RlZmluZSBDRkdfU0lDUkgJCTB4MDgyMDAwMDAKLSNkZWZpbmUgQ0ZHX1NJQ1JMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkgJCTB4MDgyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSTAkJMHgwMDAwMDAwMAogCiAvKgogICogT3V0cHV0IEJ1ZmZlciBJbXBlZGFuY2UKICAqLwotI2RlZmluZSBDRkdfT0JJUgkJMHgzMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09CSVIJCTB4MzAxMDAwMDAKIAogLyoKICAqIElNTVIgbmV3IGFkZHJlc3MKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RTAwMDAwMDAKIAogLyoKICAqIERldmljZSBjb25maWd1cmF0aW9ucwpAQCAtMTQ1LDEzICsxNDUsMTMgQEAKIC8qCiAgKiBERFIgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfRERSX0JBU0UJCTB4MDAwMDAwMDAgLyogRERSIGlzIHN5c3RlbSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfQkFTRQotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJQ0ZHX0REUl9CQVNFCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0xLX0NOVEwJMHgwMzAwMDAwMAotI2RlZmluZSBDRkdfODNYWF9ERFJfVVNFU19DUzAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQkFTRQkJMHgwMDAwMDAwMCAvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NMS19DTlRMCTB4MDMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU184M1hYX0REUl9VU0VTX0NTMAogCi0jZGVmaW5lIENGR19ERFJDRFJfVkFMVUUJKEREUkNEUl9ESENfRU4gfCBERFJDRFJfT0RUIHwgRERSQ0RSX1FfRFJOKQorI2RlZmluZSBDT05GSUdfU1lTX0REUkNEUl9WQUxVRQkoRERSQ0RSX0RIQ19FTiB8IEREUkNEUl9PRFQgfCBERFJDRFJfUV9EUk4pCiAKICN1bmRlZiBDT05GSUdfRERSX0VDQwkJLyogc3VwcG9ydCBERFIgRUNDIGZ1bmN0aW9uICovCiAjdW5kZWYgQ09ORklHX0REUl9FQ0NfQ01ECS8qIFVzZSBERFIgRUNDIHVzZXIgY29tbWFuZHMgKi8KQEAgLTE2MSwxMyArMTYxLDEzIEBACiAvKgogICogTWFudWFsbHkgc2V0IHVwIEREUiBwYXJhbWV0ZXJzCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TSVpFCQkyNTYJCS8qIE1CICovCi0jZGVmaW5lIENGR19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwZgotI2RlZmluZSBDRkdfRERSX0NTMF9DT05GSUcJKENTQ09ORklHX0VOIHwgQ1NDT05GSUdfT0RUX1dSX0FDUyBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NJWkUJCTI1NgkJLyogTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwZgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHCShDU0NPTkZJR19FTiB8IENTQ09ORklHX09EVF9XUl9BQ1MgXAogCQkJCXwgQ1NDT05GSUdfUk9XX0JJVF8xMyB8IENTQ09ORklHX0NPTF9CSVRfMTApCiAKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzAJKCgwIDw8IFRJTUlOR19DRkcwX1JXVF9TSElGVCkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18wCSgoMCA8PCBUSU1JTkdfQ0ZHMF9SV1RfU0hJRlQpIFwKIAkJCQl8ICgwIDw8IFRJTUlOR19DRkcwX1dSVF9TSElGVCkgXAogCQkJCXwgKDAgPDwgVElNSU5HX0NGRzBfUlJUX1NISUZUKSBcCiAJCQkJfCAoMCA8PCBUSU1JTkdfQ0ZHMF9XV1RfU0hJRlQpIFwKQEAgLTE3Nyw3ICsxNzcsNyBAQAogCQkJCXwgKDIgPDwgVElNSU5HX0NGRzBfTVJTX0NZQ19TSElGVCkpCiAJCQkJLyogMHgwMDIyMDgwMiAqLwogCQkJCS8qIDB4MDAyNjA4MDIgKi8gLyogRERSNDAwICovCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJKCgzIDw8IFRJTUlOR19DRkcxX1BSRVRPQUNUX1NISUZUKSBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCSgoMyA8PCBUSU1JTkdfQ0ZHMV9QUkVUT0FDVF9TSElGVCkgXAogCQkJCXwgKDkgPDwgVElNSU5HX0NGRzFfQUNUVE9QUkVfU0hJRlQpIFwKIAkJCQl8ICgzIDw8IFRJTUlOR19DRkcxX0FDVFRPUldfU0hJRlQpIFwKIAkJCQl8ICg3IDw8IFRJTUlOR19DRkcxX0NBU0xBVF9TSElGVCkgXApAQCAtMTg3LDEyNSArMTg3LDEyNSBAQAogCQkJCXwgKDIgPDwgVElNSU5HX0NGRzFfV1JUT1JEX1NISUZUKSkKIAkJCQkvKiAweDM5MzVkMzIyICovCiAJCQkJLyogMHgzOTM3ZDMyMiAqLwotI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MDI5ODRjYzgKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgwMjk4NGNjOAogCi0jZGVmaW5lIENGR19ERFJfSU5URVJWQUwJKCgxNTQ1IDw8IFNEUkFNX0lOVEVSVkFMX1JFRklOVF9TSElGVCkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkoKDE1NDUgPDwgU0RSQU1fSU5URVJWQUxfUkVGSU5UX1NISUZUKSBcCiAJCQkJfCAoMjU2IDw8IFNEUkFNX0lOVEVSVkFMX0JTVE9QUkVfU0hJRlQpKQogCQkJCS8qIDB4MDYwOTAxMDAgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0REUl8yVF9USU1JTkcpCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0ZHCQkoU0RSQU1fQ0ZHX1NSRU4gXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcJCShTRFJBTV9DRkdfU1JFTiBcCiAJCQkJfCAzIDw8IFNEUkFNX0NGR19TRFJBTV9UWVBFX1NISUZUIFwKIAkJCQl8IFNEUkFNX0NGR18yVF9FTiBcCiAJCQkJfCBTRFJBTV9DRkdfREJXXzMyKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcJCShTRFJBTV9DRkdfU1JFTiBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NGRwkJKFNEUkFNX0NGR19TUkVOIFwKIAkJCQl8IDMgPDwgU0RSQU1fQ0ZHX1NEUkFNX1RZUEVfU0hJRlQpCiAJCQkJLyogMHg0MzAwMDAwMCAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0ZHMgkweDAwMDAxMDAwIC8qIDEgcG9zdGVkIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCQkoKDB4MDQ0MCA8PCBTRFJBTV9NT0RFX0VTRF9TSElGVCkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcyCTB4MDAwMDEwMDAgLyogMSBwb3N0ZWQgcmVmcmVzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFCQkoKDB4MDQ0MCA8PCBTRFJBTV9NT0RFX0VTRF9TSElGVCkgXAogCQkJCXwgKDB4MDQ0MiA8PCBTRFJBTV9NT0RFX1NEX1NISUZUKSkKIAkJCQkvKiAweDA0NDAwNDQyICovIC8qIEREUjQwMCAqLwotI2RlZmluZSBDRkdfRERSX01PREUyCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUyCQkweDAwMDAwMDAwCiAKIC8qCiAgKiBNZW1vcnkgdGVzdAogICovCi0jdW5kZWYgQ0ZHX0RSQU1fVEVTVAkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDA0MDAwMCAvKiBtZW10ZXN0IHJlZ2lvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MGVmNzAwMTAKKyN1bmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVAkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwNDAwMDAgLyogbWVtdGVzdCByZWdpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwZWY3MDAxMAogCiAvKgogICogVGhlIHJlc2VydmVkIG1lbW9yeQogICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFIC8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFIC8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jdW5kZWYJQ0ZHX1JBTUJPT1QKKyN1bmRlZglDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgKiAxMDI0KSAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDUxMiAqIDEwMjQpIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyoKICAqIEluaXRpYWwgUkFNIEJhc2UgQWRkcmVzcyBTZXR1cAogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhFNjAwMDAwMCAvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4MTAwIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhFNjAwMDAwMCAvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMCAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMHgxMDAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIC8qCiAgKiBMb2NhbCBCdXMgQ29uZmlndXJhdGlvbiAmIENsb2NrIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0xDUlIJCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl84KQotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQ1JSCQkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfOCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMAogCiAvKgogICogRkxBU0ggb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCS8qIHVzZSB0aGUgQ0ZJIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMCAvKiBGTEFTSCBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTggLyogbWF4IEZMQVNIIHNpemUgaXMgMzJNICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMCAvKiBGTEFTSCBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQk4IC8qIG1heCBGTEFTSCBzaXplIGlzIDMyTSAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJCS8qIFVzZSBoL3cgRmxhc2ggcHJvdGVjdGlvbi4gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCQkvKiBkaXNwbGF5IGVtcHR5IHNlY3RvcnMgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJCS8qIGJ1ZmZlciB1cCBtdWx0aXBsZSBieXRlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCQkvKiBkaXNwbGF5IGVtcHR5IHNlY3RvcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCQkvKiBidWZmZXIgdXAgbXVsdGlwbGUgYnl0ZXMgKi8KIAotI2RlZmluZSBDRkdfTEJMQVdCQVIwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRSAvKiBXaW5kb3cgYmFzZSBhdCBmbGFzaCBiYXNlICovCi0jZGVmaW5lIENGR19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxNgkvKiA4IE1CIHdpbmRvdyBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgLyogV2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIwX1BSRUxJTQkweDgwMDAwMDE2CS8qIDggTUIgd2luZG93IHNpemUgKi8KIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKENGR19GTEFTSF9CQVNFIHwgLyogRmxhc2ggQmFzZSBhZGRyZXNzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgLyogRmxhc2ggQmFzZSBhZGRyZXNzICovIFwKIAkJCQkoMiA8PCBCUl9QU19TSElGVCkgfCAvKiAxNiBiaXQgcG9ydCBzaXplICovIFwKIAkJCQlCUl9WKSAvKiB2YWxpZCAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJKDB4RkY4MDAwMDAJCS8qIDggTUJ5dGUgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCSgweEZGODAwMDAwCQkvKiA4IE1CeXRlICovIFwKIAkJCQl8IE9SX0dQQ01fWEFDUyBcCiAJCQkJfCBPUl9HUENNX1NDWV85IFwKIAkJCQl8IE9SX0dQQ01fRUhUUiBcCiAJCQkJfCBPUl9HUENNX0VBRCkKIAkJCQkvKiAweEZGODA2RkY3CVRPRE8gU0xPVyA4IE1CIGZsYXNoIHNpemUgKi8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEgLyogbnVtYmVyIG9mIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYgLyogbWF4IHNlY3RvcnMgcGVyIGRldmljZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxIC8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NiAvKiBtYXggc2VjdG9ycyBwZXIgZGV2aWNlICovCiAKLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KIAogLyoKICAqIE5BTkQgRmxhc2ggb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4RTA2MDAwMDAJLyogMHhFMDYwMDAwMCAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJKENGR19OQU5EX0JBU0UgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkweEUwNjAwMDAwCS8qIDB4RTA2MDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkoQ09ORklHX1NZU19OQU5EX0JBU0UgfCBcCiAJCQkJICgyIDw8IEJSX0RFQ0NfU0hJRlQpIHwJLyogVXNlIEhXIEVDQyAqLyBcCiAJCQkJIEJSX1BTXzggfAkJLyogUG9ydCBTaXplID0gOCBiaXQgKi8gXAogCQkJCSBCUl9NU19GQ00gfAkJLyogTVNFTCA9IEZDTSAqLyBcCiAJCQkJIEJSX1YpCQkJLyogdmFsaWQgKi8KLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCSgweEZGRkY4MDAwIHwJCS8qIGxlbmd0aCAzMksgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCSgweEZGRkY4MDAwIHwJCS8qIGxlbmd0aCAzMksgKi8gXAogCQkJCSBPUl9GQ01fQ1NDVCB8IFwKIAkJCQkgT1JfRkNNX0NTVCB8IFwKIAkJCQkgT1JfRkNNX0NIVCB8IFwKIAkJCQkgT1JfRkNNX1NDWV8xIHwgXAogCQkJCSBPUl9GQ01fVFJMWCB8IFwKIAkJCQkgT1JfRkNNX0VIVFIpCi0jZGVmaW5lIENGR19MQkxBV0JBUjFfUFJFTElNCUNGR19OQU5EX0JBU0UKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIxX1BSRUxJTQkweDgwMDAwMDBFCS8qIDMyS0IgICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIxX1BSRUxJTQlDT05GSUdfU1lTX05BTkRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIxX1BSRUxJTQkweDgwMDAwMDBFCS8qIDMyS0IgICovCiAKIC8qIFZpdGVzc2UgNzM4NSAqLwogCi0jZGVmaW5lIENGR19WU0M3Mzg1X0JBU0UJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1ZTQzczODVfQkFTRQkweEYwMDAwMDAwCiAKICNpZmRlZiBDT05GSUdfVlNDNzM4NV9FTkVUCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4ZjAwMDA4MDEJCS8qIEJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhmZmZlMDlmZgkJLyogMTI4SyBieXRlcyovCi0jZGVmaW5lIENGR19MQkxBV0JBUjJfUFJFTElNCUNGR19WU0M3Mzg1X0JBU0UJLyogQWNjZXNzIEJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0xCTEFXQVIyX1BSRUxJTQkweDgwMDAwMDEwCQkvKiBBY2Nlc3MgU2l6ZSAxMjhLICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJMHhmMDAwMDgwMQkJLyogQmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJMHhmZmZlMDlmZgkJLyogMTI4SyBieXRlcyovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIyX1BSRUxJTQlDT05GSUdfU1lTX1ZTQzczODVfQkFTRQkvKiBBY2Nlc3MgQmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIyX1BSRUxJTQkweDgwMDAwMDEwCQkvKiBBY2Nlc3MgU2l6ZSAxMjhLICovCiAKICNlbmRpZgogCkBAIC0zMTQsMTYgKzMxNCwxNiBAQAogICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfSU1NUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19JTU1SKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfSU1NUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0lNTVIrMHg0NjAwKQogCiAvKiBTRVJERVMgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9TRVJERVMKQEAgLTMzMSw5ICszMzEsOSBAQAogI2RlZmluZSBDT05GSUdfRlNMX1NFUkRFUzIJMHhlMzEwMAogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qIFBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KQEAgLTM0NSw0MiArMzQ1LDQyIEBACiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJLyogSTJDIGJpdC1iYW5nZWQgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwIC8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4NTF9IC8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKLSNkZWZpbmUgQ0ZHX0kyQzJfT0ZGU0VUCQkweDMxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMCAvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4NTF9IC8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDMl9PRkZTRVQJCTB4MzEwMAogCiAvKgogICogQ29uZmlnIG9uLWJvYXJkIFJUQwogICovCiAjZGVmaW5lIENPTkZJR19SVENfRFMxMzc0CS8qIHVzZSBkczEzNzQgcnRjIHZpYSBpMmMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4IC8qIGF0IGFkZHJlc3MgMHg2OCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4IC8qIGF0IGFkZHJlc3MgMHg2OCAqLwogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KICAqLwotI2RlZmluZSBDRkdfUENJX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fUEhZUwlDRkdfUENJX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMCAvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0lfTU1JT19CQVNFCTB4OTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NTUlPX1BIWVMJQ0ZHX1BDSV9NTUlPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9NTUlPX1NJWkUJMHgxMDAwMDAwMCAvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0lfSU9fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1BIWVMJCTB4RTAzMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19TSVpFCQkweDEwMDAwMCAvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9QSFlTCUNPTkZJR19TWVNfUENJX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9TSVpFCTB4MTAwMDAwMDAgLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UJMHg5MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMJQ09ORklHX1NZU19QQ0lfTU1JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01NSU9fU0laRQkweDEwMDAwMDAwIC8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19QSFlTCQkweEUwMzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1NJWkUJCTB4MTAwMDAwIC8qIDFNICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TTFZfTUVNX0xPQ0FMCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfU0xWX01FTV9CVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX1NMVl9NRU1fU0laRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NMVl9NRU1fTE9DQUwJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NMVl9NRU1fQlVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9TSVpFCTB4ODAwMDAwMDAKIAogI2lmZGVmIENPTkZJR19QQ0kKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkgKi8KIAogI3VuZGVmIENPTkZJR19QQ0lfU0NBTl9TSE9XCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDE5NTcJLyogRnJlZXNjYWxlICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDE5NTcJLyogRnJlZXNjYWxlICovCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwogCiAvKgpAQCAtMzk2LDcgKzM5Niw3IEBACiAjaWZkZWYgQ09ORklHX1RTRUMxCiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMAogI2RlZmluZSBDT05GSUdfVFNFQzFfTkFNRQkJIlRTRUMwIgotI2RlZmluZSBDRkdfVFNFQzFfT0ZGU0VUCQkweDI0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzFfT0ZGU0VUCQkweDI0MDAwCiAjZGVmaW5lIFRTRUMxX1BIWV9BRERSCQkJMgogI2RlZmluZSBUU0VDMV9GTEFHUwkJCShUU0VDX0dJR0FCSVQgfCBUU0VDX1JFRFVDRUQpCiAjZGVmaW5lIFRTRUMxX1BIWUlEWAkJCTAKQEAgLTQwNSw3ICs0MDUsNyBAQAogI2lmZGVmIENPTkZJR19UU0VDMgogI2RlZmluZSBDT05GSUdfSEFTX0VUSDEKICNkZWZpbmUgQ09ORklHX1RTRUMyX05BTUUJCSJUU0VDMSIKLSNkZWZpbmUgQ0ZHX1RTRUMyX09GRlNFVAkJMHgyNTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMyX09GRlNFVAkJMHgyNTAwMAogI2RlZmluZSBUU0VDMl9QSFlfQUREUgkJCTB4MWMKICNkZWZpbmUgVFNFQzJfRkxBR1MJCQkoVFNFQ19HSUdBQklUIHwgVFNFQ19SRURVQ0VEKQogI2RlZmluZSBUU0VDMl9QSFlJRFgJCQkwCkBAIC00MjIsMTUgKzQyMiwxNSBAQAogI2RlZmluZSBDT05GSUdfTElCQVRBCiAjZGVmaW5lIENPTkZJR19GU0xfU0FUQQogCi0jZGVmaW5lIENGR19TQVRBX01BWF9ERVZJQ0UJMgorI2RlZmluZSBDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRQkyCiAjZGVmaW5lIENPTkZJR19TQVRBMQotI2RlZmluZSBDRkdfU0FUQTFfT0ZGU0VUCTB4MTgwMDAKLSNkZWZpbmUgQ0ZHX1NBVEExCQkoQ0ZHX0lNTVIgKyBDRkdfU0FUQTFfT0ZGU0VUKQotI2RlZmluZSBDRkdfU0FUQTFfRkxBR1MJCUZMQUdTX0RNQQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEExX09GRlNFVAkweDE4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQTEJCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX1NBVEExX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19TQVRBMV9GTEFHUwkJRkxBR1NfRE1BCiAjZGVmaW5lIENPTkZJR19TQVRBMgotI2RlZmluZSBDRkdfU0FUQTJfT0ZGU0VUCTB4MTkwMDAKLSNkZWZpbmUgQ0ZHX1NBVEEyCQkoQ0ZHX0lNTVIgKyBDRkdfU0FUQTJfT0ZGU0VUKQotI2RlZmluZSBDRkdfU0FUQTJfRkxBR1MJCUZMQUdTX0RNQQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEEyX09GRlNFVAkweDE5MDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQTIJCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX1NBVEEyX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19TQVRBMl9GTEFHUwkJRkxBR1NfRE1BCiAKICNpZmRlZiBDT05GSUdfRlNMX1NBVEEKICNkZWZpbmUgQ09ORklHX0xCQTQ4CkBAIC00NDIsMjAgKzQ0MiwyMCBAQAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLQkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UrQ0ZHX01PTklUT1JfTEVOKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UrQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAkjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAJLyogNjRLIChvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAogI2Vsc2UKLQkjZGVmaW5lIENGR19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLworCSNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLwogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFLTB4MTAwMCkKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLTB4MTAwMCkKIAkjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtNDgwLDcgKzQ4MCw3IEBACiAjZGVmaW5lIENPTkZJR19DTURfUENJCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTQ5MiwzNCArNDkyLDM0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTI1NiAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2IC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIENvcmUgSElEIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMHgwMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKLSNkZWZpbmUgQ0ZHX0hJRDIJCUhJRDJfSEJFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkweDAwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCQlISUQyX0hCRQogCiAvKgogICogTU1VIFNldHVwCkBAIC01MjgsNjcgKzUyOCw2NyBAQAogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCTEJLyogSGlnaCBCQVRzIHN1cHBvcnRlZCAqLwogCiAvKiBERFI6IGNhY2hlIGNhY2hlYWJsZSAqLwotI2RlZmluZSBDRkdfU0RSQU1fTE9XRVIJCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19TRFJBTV9VUFBFUgkJKENGR19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9MT1dFUgkJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fVVBQRVIJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwKQogCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9MT1dFUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0xPV0VSIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fTE9XRVIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCShDT05GSUdfU1lTX1NEUkFNX0xPV0VSIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCUNPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCUNPTkZJR19TWVNfSUJBVDBVCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX1NEUkFNX1VQUEVSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVCShDRkdfU0RSQU1fVVBQRVIgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19TRFJBTV9VUFBFUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfU0RSQU1fVVBQRVIgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKIAogLyogSU1NUkJBUiwgUENJIElPIGFuZCBOQU5EOiBjYWNoZS1pbmhpYml0IGFuZCBndWFyZGVkICovCi0jZGVmaW5lIENGR19JQkFUMkwJKENGR19JTU1SIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKENPTkZJR19TWVNfSU1NUiB8IEJBVExfUFBfMTAgfCBcCiAJCQlCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUMlUJKENGR19JTU1SIHwgQkFUVV9CTF84TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCShDT05GSUdfU1lTX0lNTVIgfCBCQVRVX0JMXzhNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCUNPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCUNPTkZJR19TWVNfSUJBVDJVCiAKIC8qIEwyIFN3aXRjaDogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDNMCShDRkdfVlNDNzM4NV9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKENPTkZJR19TWVNfVlNDNzM4NV9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQkoQ0ZHX1ZTQzczODVfQkFTRSB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDNMCUNGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVQlDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCShDT05GSUdfU1lTX1ZTQzczODVfQkFTRSB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQogCiAvKiBGTEFTSDogaWNhY2hlIGNhY2hlYWJsZSwgYnV0IGRjYWNoZS1pbmhpYml0IGFuZCBndWFyZGVkICovCi0jZGVmaW5lIENGR19JQkFUNEwJKENGR19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDRVCShDRkdfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNEwJKENGR19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDRVCUNGR19JQkFUNFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNFUJQ09ORklHX1NZU19JQkFUNFUKIAogLyogU3RhY2sgaW4gZGNhY2hlOiBjYWNoZWFibGUsIG5vIG1lbW9yeSBjb2hlcmVuY2UgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ1TAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQotI2RlZmluZSBDRkdfSUJBVDVVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDVMCUNGR19JQkFUNUwKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQlDRkdfSUJBVDVVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVMCUNPTkZJR19TWVNfSUJBVDVMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVVCUNPTkZJR19TWVNfSUJBVDVVCiAKICNpZmRlZiBDT05GSUdfUENJCiAvKiBQQ0kgTUVNIHNwYWNlOiBjYWNoZWFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkoQ0ZHX1BDSV9NRU1fUEhZUyB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkoQ0ZHX1BDSV9NRU1fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDZMCUNGR19JQkFUNkwKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQlDRkdfSUJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMCShDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNlUJKENPTkZJR19TWVNfUENJX01FTV9QSFlTIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMCUNPTkZJR19TWVNfSUJBVDZMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVCUNPTkZJR19TWVNfSUJBVDZVCiAvKiBQQ0kgTU1JTyBzcGFjZTogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDdMCShDRkdfUENJX01NSU9fUEhZUyB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCShDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDdVCShDRkdfUENJX01NSU9fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDdMCUNGR19JQkFUN0wKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQlDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVCShDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJQ09ORklHX1NZU19JQkFUN0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJQ09ORklHX1NZU19JQkFUN1UKICNlbHNlCi0jZGVmaW5lIENGR19JQkFUNkwJKDApCi0jZGVmaW5lIENGR19JQkFUNlUJKDApCi0jZGVmaW5lIENGR19JQkFUN0wJKDApCi0jZGVmaW5lIENGR19JQkFUN1UJKDApCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAlDRkdfSUJBVDdMCi0jZGVmaW5lIENGR19EQkFUN1UJQ0ZHX0lCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNlUJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNkwJQ09ORklHX1NZU19JQkFUNkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUJQ09ORklHX1NZU19JQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJQ09ORklHX1NZU19JQkFUN0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJQ09ORklHX1NZU19JQkFUN1UKICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzg1MzZEUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzg1MzZEUy5oCmluZGV4IGI1MDRhZGQuLjkxYTVkOGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4NTM2RFMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODUzNkRTLmgKQEAgLTczLDIzICs3MywyMyBAQAogCiAjZGVmaW5lIENPTkZJR19FTkFCTEVfMzZCSVRfUEhZUwkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHg3ZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4N2ZmZmZmZmYKICNkZWZpbmUgQ09ORklHX1BBTklDX0hBTkcJLyogZG8gbm90IHJlc2V0IGJvYXJkIG9uIHBhbmljICovCiAKIC8qCiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVIJCTB4ZmZlMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfUEhZUwlDRkdfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDRkdfSU1NUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJCTB4ZmZlMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMJQ09ORklHX1NZU19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ09ORklHX1NZU19JTU1SICovCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfQUREUgkJKENGR19DQ1NSQkFSKzB4ODAwMCkKLSNkZWZpbmUgQ0ZHX1BDSUUxX0FERFIJCShDRkdfQ0NTUkJBUisweGEwMDApCi0jZGVmaW5lIENGR19QQ0lFMl9BRERSCQkoQ0ZHX0NDU1JCQVIrMHg5MDAwKQotI2RlZmluZSBDRkdfUENJRTNfQUREUgkJKENGR19DQ1NSQkFSKzB4YjAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHg4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHhhMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHg5MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHhiMDAwKQogCiAvKiBERFIgU2V0dXAgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9ERFIyCkBAIC0xMDEsOCArMTAxLDggQEAKICN1bmRlZiBDT05GSUdfRUNDX0lOSVRfVklBX0REUkNPTlRST0xMRVIJLyogRERSIGNvbnRyb2xsZXIgb3IgRE1BPyAqLwogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKICNkZWZpbmUgQ09ORklHX0RJTU1fU0xPVFNfUEVSX0NUTFIJMQpAQCAtMTEwLDM3ICsxMTAsMzcgQEAKIAogLyogSTJDIGFkZHJlc3NlcyBvZiBTUEQgRUVQUk9NcyAqLwogI2RlZmluZSBTUERfRUVQUk9NX0FERFJFU1MJMHg1MQkvKiBDVExSIDAgRElNTSAwICovCi0jZGVmaW5lIENGR19TUERfQlVTX05VTQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1NQRF9CVVNfTlVNCQkxCiAKIC8qIFRoZXNlIGFyZSB1c2VkIHdoZW4gRERSIGRvZXNuJ3QgdXNlIFNQRC4gKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTI1NgkJLyogRERSIGlzIDI1Nk1CICovCi0jZGVmaW5lIENGR19ERFJfQ1MwX0JORFMJMHgwMDAwMDAxRgotI2RlZmluZSBDRkdfRERSX0NTMF9DT05GSUcJMHg4MDAxMDEwMgkvKiBFbmFibGUsIG5vIGludGVybGVhdmluZyAqLwotI2RlZmluZSBDRkdfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMAkweDAwMjYwODAyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJMHgzOTM1ZDMyMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MTQ5MDRjYzgKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFXzEJCTB4MDA0ODA0MzIKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFXzIJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkweDA2MTgwMTAwCi0jZGVmaW5lIENGR19ERFJfREFUQV9JTklUCTB4ZGVhZGJlZWYKLSNkZWZpbmUgQ0ZHX0REUl9DTEtfQ1RSTAkweDAzODAwMDAwCi0jZGVmaW5lIENGR19ERFJfT0NEX0NUUkwJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX09DRF9TVEFUVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX0NPTlRST0wJCTB4QzMwMDgwMDAJLyogVHlwZSA9IEREUjIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DT05UUk9MMgkweDA0NDAwMDEwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMjU2CQkvKiBERFIgaXMgMjU2TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0JORFMJMHgwMDAwMDAxRgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHCTB4ODAwMTAxMDIJLyogRW5hYmxlLCBubyBpbnRlcmxlYXZpbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMAkweDAwMjYwODAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4MzkzNWQzMjIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgxNDkwNGNjOAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFXzEJCTB4MDA0ODA0MzIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERV8yCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0lOVEVSVkFMCTB4MDYxODAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfREFUQV9JTklUCTB4ZGVhZGJlZWYKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ0xLX0NUUkwJMHgwMzgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9PQ0RfQ1RSTAkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX09DRF9TVEFUVVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05UUk9MCQkweEMzMDA4MDAwCS8qIFR5cGUgPSBERFIyICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTlRST0wyCTB4MDQ0MDAwMTAKIAotI2RlZmluZSBDRkdfRERSX0VSUl9JTlRfRU4JMHgwMDAwMDAwZAotI2RlZmluZSBDRkdfRERSX0VSUl9ESVMJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9TQkUJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfRVJSX0lOVF9FTgkweDAwMDAwMDBkCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0VSUl9ESVMJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0JFCQkweDAwMDEwMDAwCiAKIC8qIEZJWE1FOiBOb3QgdXNlZCBpbiBmaXhlZF9zZHJhbSBmdW5jdGlvbiAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCTB4MDAwMDAwMjIKLSNkZWZpbmUgQ0ZHX0REUl9DUzFfQk5EUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfQ1MyX0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLwotI2RlZmluZSBDRkdfRERSX0NTM19CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzRfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCi0jZGVmaW5lIENGR19ERFJfQ1M1X0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFCQkweDAwMDAwMDIyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMV9CTkRTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MyX0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzNfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTNF9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1M1X0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLwogCiAvKiBNYWtlIHN1cmUgcmVxdWlyZWQgb3B0aW9ucyBhcmUgc2V0ICovCiAjaWZuZGVmIENPTkZJR19TUERfRUVQUk9NCkBAIC0xNzIsMzggKzE3MiwzOCBAQAogLyoKICAqIExvY2FsIEJ1cyBEZWZpbml0aW9ucwogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGUwMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIIDEyOE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGUwMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIIDEyOE0gKi8KIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhlODAwMTAwMQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhmODAwMGZmNworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4ZTgwMDEwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGY4MDAwZmY3CiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCTB4ZTAwMDEwMDEKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4ZjgwMDBmZjcKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkweGUwMDAxMDAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhmODAwMGZmNwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXtDRkdfRkxBU0hfQkFTRSArIDB4ODAwMDAwMCwgQ0ZHX0ZMQVNIX0JBU0V9Ci0jZGVmaW5lIENGR19GTEFTSF9RVUlFVF9URVNUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7Q09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg4MDAwMDAwLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0V9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAogI2RlZmluZSBDT05GSUdfRkxBU0hfU0hPV19QUk9HUkVTUyA0NSAvKiBjb3VudCBkb3duIGZyb20gNDUvNTogOS4uMSAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkJLyogbnVtYmVyIG9mIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMDI0CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMDI0CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9BTURfQ0hFQ0tfRFE3CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FNRF9DSEVDS19EUTcKIAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9SCS8qIGNhbGwgYm9hcmRfZWFybHlfaW5pdF9yIGZ1bmN0aW9uICovCiAKICNkZWZpbmUgQ09ORklHX0ZTTF9QSVhJUwkxCS8qIHVzZSBjb21tb24gUElYSVMgY29kZSAqLwogI2RlZmluZSBQSVhJU19CQVNFCTB4ZmZkZjAwMDAJLyogUElYSVMgcmVnaXN0ZXJzICovCiAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKFBJWElTX0JBU0UgfCAweDA4MDEpCS8qIHBvcnQgc2l6ZSA4Yml0ICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQkweGZmZmZlZmY3CS8qIDMyS0IgYnV0IG9ubHkgNGsgbWFwcGVkICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoUElYSVNfQkFTRSB8IDB4MDgwMSkJLyogcG9ydCBzaXplIDhiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkweGZmZmZlZmY3CS8qIDMyS0IgYnV0IG9ubHkgNGsgbWFwcGVkICovCiAKICNkZWZpbmUgUElYSVNfSUQJCTB4MAkvKiBCb2FyZCBJRCBhdCBvZmZzZXQgMCAqLwogI2RlZmluZSBQSVhJU19WRVIJCTB4MQkvKiBCb2FyZCB2ZXJzaW9uIGF0IG9mZnNldCAxICovCkBAIC0yMzUsMjAgKzIzNSwyMCBAQAogLyogb2xkIHBpeGlzIHJlZmVyZW5jZWQgbmFtZXMgKi8KICNkZWZpbmUgUElYSVNfVkNMS0gJCTB4MTkJLyogVkVMQSBWQ0xLSCByZWdpc3RlciAqLwogI2RlZmluZSBQSVhJU19WQ0xLTAkJMHgxQQkvKiBWRUxBIFZDTEtMIHJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19QSVhJU19WQk9PVF9NQVNLCTB4YzAKKyNkZWZpbmUgQ09ORklHX1NZU19QSVhJU19WQk9PVF9NQVNLCTB4YzAKIAogLyogZGVmaW5lIHRvIHVzZSBMMSBhcyBpbml0aWFsIHN0YWNrICovCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ZmZkMDAwMDAJLyogSW5pdGlhbCBMMSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgwMDAwNDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhmZmQwMDAwMAkvKiBJbml0aWFsIEwxIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgwMDAwNDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKiBTZXJpYWwgUG9ydCAtIGNvbnRyb2xsZWQgb24gYm9hcmQgd2l0aCBqdW1wZXIgSjgKICAqIG9wZW4gLSBpbmRleCAyCkBAIC0yNTYsMjEgKzI1NiwyMSBAQAogICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19DQ1NSQkFSKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyoKQEAgLTI4MCw4ICsyODAsOCBAQAogI2RlZmluZSBDT05GSUdfT0ZfQk9BUkRfU0VUVVAJCTEKICNkZWZpbmUgQ09ORklHX09GX1NURE9VVF9WSUFfQUxJQVMJMQogCi0jZGVmaW5lIENGR182NEJJVF9TVFJUT1VMCQkxCi0jZGVmaW5lIENGR182NEJJVF9WU1BSSU5URgkJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwJCTEKKyNkZWZpbmUgQ09ORklHX1NZU182NEJJVF9WU1BSSU5URgkJMQogCiAKIC8qCkBAIC0yOTIsMjIgKzI5MiwyMiBAQAogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJLyogSTJDIGJpdC1iYW5nZWQgKi8KICNkZWZpbmUgQ09ORklHX0kyQ19NVUxUSV9CVVMKICNkZWZpbmUgQ09ORklHX0kyQ19DTURfVFJFRQotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7ezAsIDB4Mjl9fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCi0jZGVmaW5lIENGR19JMkMyX09GRlNFVAkJMHgzMTAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXt7MCwgMHgyOX19CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDMl9PRkZTRVQJCTB4MzEwMAogCiAvKgogICogSTJDMiBFRVBST00KICAqLwogI2RlZmluZSBDT05GSUdfSURfRUVQUk9NCiAjaWZkZWYgQ09ORklHX0lEX0VFUFJPTQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9OWElECisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9OWElECiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDU3Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9CVVNfTlVNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1NworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9CVVNfTlVNCTEKIAogLyoKICAqIEdlbmVyYWwgUENJCkBAIC0zMTUsNDAgKzMxNSw0MCBAQAogICovCiAKIC8qIFBDSSB2aWV3IG9mIFN5c3RlbSBNZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1NJWkUJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRQkweDgwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fUEhZUwlDRkdfUENJMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1BIWVMJMHhmZmMwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCTB4ZmZjMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KIAogLyogY29udHJvbGxlciAxLCBTbG90IDEsIHRndGlkIDEsIEJhc2UgYWRkcmVzcyBhMDAwICovCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fQkFTRQkweDkwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fUEhZUwlDRkdfUENJRTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9TSVpFCTB4MDgwMDAwMDAJLyogMTI4TSAqLwotI2RlZmluZSBDRkdfUENJRTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9JT19QSFlTCTB4ZmZjMTAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQkweDkwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFCTB4MDgwMDAwMDAJLyogMTI4TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMJMHhmZmMxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KIAogLyogY29udHJvbGxlciAyLCBTbG90IDIsIHRndGlkIDIsIEJhc2UgYWRkcmVzcyA5MDAwICovCi0jZGVmaW5lIENGR19QQ0lFMl9NRU1fQkFTRQkweDk4MDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMl9NRU1fUEhZUwlDRkdfUENJRTJfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSUUyX01FTV9TSVpFCTB4MDgwMDAwMDAJLyogMTI4TSAqLwotI2RlZmluZSBDRkdfUENJRTJfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMl9JT19QSFlTCTB4ZmZjMjAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUyX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9NRU1fQkFTRQkweDk4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lFMl9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX01FTV9TSVpFCTB4MDgwMDAwMDAJLyogMTI4TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0lPX1BIWVMJMHhmZmMyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KIAogLyogY29udHJvbGxlciAzLCBkaXJlY3QgdG8gdWxpLCB0Z3RpZCAzLCBCYXNlIGFkZHJlc3MgODAwMCAqLwotI2RlZmluZSBDRkdfUENJRTNfTUVNX0JBU0UJMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTNfTUVNX1BIWVMJQ0ZHX1BDSUUzX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lFM19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSUUzX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTNfSU9fUEhZUwkweGZmYzMwMDAwCi0jZGVmaW5lIENGR19QQ0lFM19JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTNfTUVNX0JBU0UJMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTCUNPTkZJR19TWVNfUENJRTNfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19JT19QSFlTCTB4ZmZjMzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAKQEAgLTM1NiwxMCArMzU2LDEwIEBACiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkgKi8KIAogLypQQ0lFIHZpZGVvIGNhcmQgdXNlZCovCi0jZGVmaW5lIFZJREVPX0lPX09GRlNFVAkJQ0ZHX1BDSUUzX0lPX1BIWVMKKyNkZWZpbmUgVklERU9fSU9fT0ZGU0VUCQlDT05GSUdfU1lTX1BDSUUzX0lPX1BIWVMKIAogLypQQ0kgdmlkZW8gY2FyZCB1c2VkKi8KLS8qI2RlZmluZSBWSURFT19JT19PRkZTRVQJQ0ZHX1BDSTFfSU9fUEhZUyovCisvKiNkZWZpbmUgVklERU9fSU9fT0ZGU0VUCUNPTkZJR19TWVNfUENJMV9JT19QSFlTKi8KIAogLyogdmlkZW8gKi8KICNkZWZpbmUgQ09ORklHX1ZJREVPCkBAIC0zNzIsNyArMzcyLDcgQEAKICNkZWZpbmUgQ09ORklHX0FUSV9SQURFT05fRkIKICNkZWZpbmUgQ09ORklHX1ZJREVPX0xPR08KIC8qI2RlZmluZSBDT05GSUdfQ09OU09MRV9DVVJTT1IqLwotI2RlZmluZSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyBDRkdfUENJRTNfSU9fUEhZUworI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgQ09ORklHX1NZU19QQ0lFM19JT19QSFlTCiAjZW5kaWYKIAogI3VuZGVmIENPTkZJR19FRVBSTzEwMApAQCAtMzg2LDggKzM4Niw4IEBACiAjZW5kaWYKIAogI2lmbmRlZiBDT05GSUdfUENJX1BOUAotCSNkZWZpbmUgUENJX0VORVQwX0lPQUREUglDRkdfUENJMV9JT19CQVNFCi0JI2RlZmluZSBQQ0lfRU5FVDBfTUVNQUREUglDRkdfUENJMV9JT19CQVNFCisJI2RlZmluZSBQQ0lfRU5FVDBfSU9BRERSCUNPTkZJR19TWVNfUENJMV9JT19CQVNFCisJI2RlZmluZSBQQ0lfRU5FVDBfTUVNQUREUglDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQogCSNkZWZpbmUgUENJX0lEU0VMX05VTUJFUgkweDExCS8qIElEU0VMID0gQUQxMSAqLwogI2VuZGlmCiAKQEAgLTM5OSwxMyArMzk5LDEzIEBACiAjZGVmaW5lIENPTkZJR19MSUJBVEEKICNkZWZpbmUgQ09ORklHX0ZTTF9TQVRBCiAKLSNkZWZpbmUgQ0ZHX1NBVEFfTUFYX0RFVklDRQkyCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQV9NQVhfREVWSUNFCTIKICNkZWZpbmUgQ09ORklHX1NBVEExCi0jZGVmaW5lIENGR19TQVRBMQkJQ0ZHX01QQzg1eHhfU0FUQTFfQUREUgotI2RlZmluZSBDRkdfU0FUQTFfRkxBR1MJCUZMQUdTX0RNQQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEExCQlDT05GSUdfU1lTX01QQzg1eHhfU0FUQTFfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX1NBVEExX0ZMQUdTCQlGTEFHU19ETUEKICNkZWZpbmUgQ09ORklHX1NBVEEyCi0jZGVmaW5lIENGR19TQVRBMgkJQ0ZHX01QQzg1eHhfU0FUQTJfQUREUgotI2RlZmluZSBDRkdfU0FUQTJfRkxBR1MJCUZMQUdTX0RNQQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEEyCQlDT05GSUdfU1lTX01QQzg1eHhfU0FUQTJfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX1NBVEEyX0ZMQUdTCQlGTEFHU19ETUEKIAogI2lmZGVmIENPTkZJR19GU0xfU0FUQQogI2RlZmluZSBDT05GSUdfTEJBNDgKQEAgLTQ0NiwxNiArNDQ2LDE2IEBACiAgKiBFbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2lmIENGR19NT05JVE9SX0JBU0UgPiAweGZmZjgwMDAwCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPiAweGZmZjgwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHhmZmY4MDAwMAogI2Vsc2UKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIDB4NjAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg2MDAwMCkKICNlbmRpZgogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwIC8qIDEyOEsgKG9uZSBzZWN0b3IpICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIENvbW1hbmQgbGluZSBjb25maWd1cmF0aW9uLgpAQCAtNDc5LDI2ICs0NzksMjYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJCS8qIENvbW1hbmQtbGluZSBlZGl0aW5nICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODU0MEFEUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzg1NDBBRFMuaAppbmRleCAwZjVmODM0Li5hMjQ5ZjZkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODU0MEFEUy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4NTQwQURTLmgKQEAgLTgwLDE4ICs4MCwxOCBAQAogI2RlZmluZSBDT05GSUdfQlRCCQkJLyogdG9nZ2xlIGJyYW5jaCBwcmVkaXRpb24gKi8KICNkZWZpbmUgQ09ORklHX0FERFJfU1RSRUFNSU5HCQkvKiB0b2dnbGUgYWRkciBzdHJlYW1pbmcgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCiAKIAogLyoKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9QSFlTCUNGR19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfSU1NUgkJQ0ZHX0NDU1JCQVIJLyogUFFJSSB1c2VzIENGR19JTU1SICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUwlDT05GSUdfU1lTX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDT05GSUdfU1lTX0lNTVIgKi8KIAogLyogRERSIFNldHVwICovCiAjZGVmaW5lIENPTkZJR19GU0xfRERSMQpAQCAtMTAxLDggKzEwMSw4IEBACiAKICNkZWZpbmUgQ09ORklHX01FTV9JTklUX1ZBTFVFCQkweERlYWRCZWVmCiAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKICNkZWZpbmUgQ09ORklHX0RJTU1fU0xPVFNfUEVSX0NUTFIJMQpAQCAtMTEyLDQyICsxMTIsNDIgQEAKICNkZWZpbmUgU1BEX0VFUFJPTV9BRERSRVNTCTB4NTEJLyogQ1RMUiAwIERJTU0gMCAqLwogCiAvKiBUaGVzZSBhcmUgdXNlZCB3aGVuIEREUiBkb2Vzbid0IHVzZSBTUEQuICovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCTEyOAkJLyogRERSIGlzIDEyOE1CICovCi0jZGVmaW5lIENGR19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwNwkvKiAwLTEyOE1CICovCi0jZGVmaW5lIENGR19ERFJfQ1MwX0NPTkZJRwkweDgwMDAwMDAyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJMHgzNzM0NDMyMQotI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MDAwMDA4MDAJLyogUDktNDUsbWF5IG5lZWQgdHVuaW5nICovCi0jZGVmaW5lIENGR19ERFJfQ09OVFJPTAkJMHhjMjAwMDAwMAkvKiB1bmJ1ZmZlcmVkLG5vIERZTl9QV1IgKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCQkweDAwMDAwMDYyCS8qIERMTCxub3JtYWwsc2VxLDQvMi41ICovCi0jZGVmaW5lIENGR19ERFJfSU5URVJWQUwJMHgwNTIwMDEwMAkvKiBhdXRvY2hhcmdlLG5vIG9wZW4gcGFnZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJMTI4CQkvKiBERFIgaXMgMTI4TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwNwkvKiAwLTEyOE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9DT05GSUcJMHg4MDAwMDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkweDM3MzQ0MzIxCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCTB4MDAwMDA4MDAJLyogUDktNDUsbWF5IG5lZWQgdHVuaW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTlRST0wJCTB4YzIwMDAwMDAJLyogdW5idWZmZXJlZCxubyBEWU5fUFdSICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCTB4MDAwMDAwNjIJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfSU5URVJWQUwJMHgwNTIwMDEwMAkvKiBhdXRvY2hhcmdlLG5vIG9wZW4gcGFnZSAqLwogCiAvKgogICogU0RSQU0gb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fQkFTRQkweGYwMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRQkweGYwMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmYwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggMTZNICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkweGZmMDAxODAxCS8qIHBvcnQgc2l6ZSAzMmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmYwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggMTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJMHhmZjAwMTgwMQkvKiBwb3J0IHNpemUgMzJiaXQgKi8KIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhmZjAwNmZmNwkvKiAxNk1CIEZsYXNoICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhmZjAwNmZmNwkvKiAxNk1CIEZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmICBDRkdfUkFNQk9PVAorI3VuZGVmICBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgogCkBAIC0xNTgsNyArMTU4LDcgQEAKIAogLyoKICAqIEJhc2UgUmVnaXN0ZXIgMiBhbmQgT3B0aW9uIFJlZ2lzdGVyIDIgY29uZmlndXJlIFNEUkFNLgotICogVGhlIFNEUkFNIGJhc2UgYWRkcmVzcywgQ0ZHX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgorICogVGhlIFNEUkFNIGJhc2UgYWRkcmVzcywgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgaXMgMHhmMDAwMDAwMC4KICAqCiAgKiBGb3IgQlIyLCBuZWVkOgogICogICAgQmFzZSBhZGRyZXNzIG9mIDB4ZjAwMDAwMDAgPSBCUlswOjE2XSA9IDExMTEgMDAwMCAwMDAwIDAwMDAgMApAQCAtMTcwLDE0ICsxNzAsMTQgQEAKICAqIDAgICAgNCAgICA4ICAgIDEyICAgMTYgICAyMCAgIDI0ICAgMjgKICAqIDExMTEgMDAwMCAwMDAwIDAwMDAgMDAwMSAxMDAwIDAxMTAgMDAwMSA9IGYwMDAxODYxCiAgKgotICogRklYTUU6IENGR19MQkNfU0RSQU1fQkFTRSBzaG91bGQgYmUgbWFza2VkIGFuZCBPUidlZCBpbnRvCisgKiBGSVhNRTogQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSBzaG91bGQgYmUgbWFza2VkIGFuZCBPUidlZCBpbnRvCiAgKiBGSVhNRTogdGhlIHRvcCAxNyBiaXRzIG9mIEJSMi4KICAqLwogCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkweGYwMDAxODYxCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJMHhmMDAwMTg2MQogCiAvKgotICogVGhlIFNEUkFNIHNpemUgaW4gTUIsIENGR19MQkNfU0RSQU1fU0laRSwgaXMgNjQuCisgKiBUaGUgU0RSQU0gc2l6ZSBpbiBNQiwgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRSwgaXMgNjQuCiAgKgogICogRm9yIE9SMiwgbmVlZDoKICAqICAgIDY0TUIgbWFzayBmb3IgQU0sIE9SMlswOjddID0gMTExMSAxMTAwCkBAIC0xOTAsMTAzICsxOTAsMTAzIEBACiAgKiAxMTExIDExMDAgMDAwMCAwMDAwIDAxMTAgMTAwMSAwMDAwIDAwMDEgPSBmYzAwNjkwMQogICovCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweGZjMDA2OTAxCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MQ1JSCQkweDAwMDMwMDA0ICAgIC8qIExCIGNsb2NrIHJhdGlvIHJlZyAqLwotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAgICAgLyogTEIgY29uZmlnIHJlZyAqLwotI2RlZmluZSBDRkdfTEJDX0xTUlQJCTB4MjAwMDAwMDAgICAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLwotI2RlZmluZSBDRkdfTEJDX01SVFBSCQkweDIwMDAwMDAwICAgIC8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xDUlIJCTB4MDAwMzAwMDQgICAgLyogTEIgY2xvY2sgcmF0aW8gcmVnICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJCTB4MDAwMDAwMDAgICAgLyogTEIgY29uZmlnIHJlZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU1JUCQkweDIwMDAwMDAwICAgIC8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJCTB4MjAwMDAwMDAgICAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsKi8KIAogLyoKICAqIExTRE1SIG1hc2tzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkVOCSgxIDw8ICgzMSAtICAxKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CU01BMTUxNgkoMyA8PCAoMzEgLSAxMCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQlNNQTE2MTcJKDQgPDwgKDMxIC0gMTApKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGQ1I1CSgzIDw8ICgzMSAtIDE2KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkNSMTYJKDcgPDwgKDMxIC0gMTYpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1BSRVRPQUNUMwkoMyA8PCAoMzEgLSAxOSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUFJFVE9BQ1Q3CSg3IDw8ICgzMSAtIDE5KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXMwkoMyA8PCAoMzEgLSAyMikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQUNUVE9SVzcJKDcgPDwgKDMxIC0gMjIpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlc2CSg2IDw8ICgzMSAtIDIyKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CTDgJKDEgPDwgKDMxIC0gMjMpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1dSQzIJKDIgPDwgKDMxIC0gMjcpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1dSQzQJKDAgPDwgKDMxIC0gMjcpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JVRkNNRAkoMSA8PCAoMzEgLSAyOSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQ0wzCSgzIDw8ICgzMSAtIDMxKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUkZFTgkoMSA8PCAoMzEgLSAgMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNTE2CSgzIDw8ICgzMSAtIDEwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE2MTcJKDQgPDwgKDMxIC0gMTApKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSNQkoMyA8PCAoMzEgLSAxNikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUMwkoMyA8PCAoMzEgLSAxOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUNwkoNyA8PCAoMzEgLSAxOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlczCSgzIDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzcJKDcgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNgkoNiA8PCAoMzEgLSAyMikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JMOAkoMSA8PCAoMzEgLSAyMykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1dSQzIJKDIgPDwgKDMxIC0gMjcpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkM0CSgwIDw8ICgzMSAtIDI3KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlVGQ01ECSgxIDw8ICgzMSAtIDI5KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQ0wzCSgzIDw8ICgzMSAtIDMxKSkKIAotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gJKDEgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9OT1JNQUwJKDAgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FDVEJOSwkoNiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DT01NT04JKCBDRkdfTEJDX0xTRE1SX0JTTUExNTE2CVwKLQkJCQl8IENGR19MQkNfTFNETVJfUkZDUjUJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfUFJFVE9BQ1QzCVwKLQkJCQl8IENGR19MQkNfTFNETVJfQUNUVE9SVzMJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9CTDgJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfV1JDMgkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9DTDMJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfUkZFTgkJXAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04JKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTUxNglcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSNQkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1QzCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlczCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0JMOAkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDMgkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQ0wzCQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkVOCQlcCiAJCQkJKQogCiAvKgogICogU0RSQU0gQ29udHJvbGxlciBjb25maWd1cmF0aW9uIHNlcXVlbmNlLgogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMQkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTCkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8yCQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfQVJGUlNIKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzMJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNAkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX01SVykKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl81CQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfTk9STUFMKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xCQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEwpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzIJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMwkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNIKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl80CQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlcpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzUJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTCkKIAogCiAvKgogICogMzJLQiwgOC1iaXQgd2lkZSBmb3IgQURTIGNvbmZpZyByZWcKICAqLwotI2RlZmluZSBDRkdfQlI0X1BSRUxJTSAgICAgICAgICAweGY4MDAwODAxCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCQkweGZmZmZlMWYxCi0jZGVmaW5lIENGR19CQ1NSCQkoQ0ZHX0JSNF9QUkVMSU0gJiAweGZmZmY4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0gICAgICAgICAgMHhmODAwMDgwMQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JCTB4ZmZmZmUxZjEKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSCQkoQ09ORklHX1NZU19CUjRfUFJFTElNICYgMHhmZmZmODAwMCkKIAogI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpICAgIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpICAgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgICAgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKiBTZXJpYWwgUG9ydCAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWCAgICAgMQogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUgICAgMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xICAgICAgICAoQ0ZHX0NDU1JCQVIrMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yICAgICAgICAoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMSAgICAgICAgKENPTkZJR19TWVNfQ0NTUkJBUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yICAgICAgICAoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDYwMCkKIAogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYgIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qIHBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KQEAgLTI5NCw4ICsyOTQsOCBAQAogI2RlZmluZSBDT05GSUdfT0ZfQk9BUkRfU0VUVVAJCTEKICNkZWZpbmUgQ09ORklHX09GX1NURE9VVF9WSUFfQUxJQVMJMQogCi0jZGVmaW5lIENGR182NEJJVF9WU1BSSU5URgkxCi0jZGVmaW5lIENGR182NEJJVF9TVFJUT1VMCTEKKyNkZWZpbmUgQ09ORklHX1NZU182NEJJVF9WU1BSSU5URgkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfU1RSVE9VTAkxCiAKIC8qCiAgKiBJMkMKQEAgLTMwMywyNiArMzAzLDI2IEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCQkvKiBVc2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMgICAgICAgIHsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTICAgICAgICB7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMwMDAKIAogLyogUmFwaWRJTyBNTVUgKi8KLSNkZWZpbmUgQ0ZHX1JJT19NRU1fQkFTRQkweGMwMDAwMDAwCS8qIGJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUklPX01FTV9QSFlTCUNGR19SSU9fTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1JJT19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDEyOE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UJMHhjMDAwMDAwMAkvKiBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX1BIWVMJQ09ORklHX1NZU19SSU9fTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiAxMjhNICovCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogTWVtb3J5IHNwYWNlIGlzIG1hcHBlZCAxLTEsIGJ1dCBJL08gc3BhY2UgbXVzdCBzdGFydCBmcm9tIDAuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fUEhZUwlDRkdfUENJMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1BIWVMJMHhlMjAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19TSVpFCTB4MTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCTB4ZTIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgxMDAwMDAJLyogMU0gKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKIApAQCAtMzM5LDcgKzMzOSw3IEBACiAjZW5kaWYKIAogI3VuZGVmIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3ICAvKiBNb3Rvcm9sYSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3ICAvKiBNb3Rvcm9sYSAqLwogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwogCkBAIC0zODAsMjAgKzM4MCwyMCBAQAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAgICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0gICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIDB4NDAwMDApCisgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQogICAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogMjU2SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAgICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNlbHNlCi0gICNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCisgICNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLwogICAjZGVmaW5lIENPTkZJR19FTlZfSVNfTk9XSEVSRQkxCS8qIFN0b3JlIEVOViBpbiBtZW1vcnkgb25seSAqLwotICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAgICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCiAKIAogLyoKQEAgLTQxOCw3ICs0MTgsNyBAQAogICAgICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICAgICAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICAgICAjdW5kZWYgQ09ORklHX0NNRF9MT0FEUwogI2VuZGlmCkBAIC00MjksMjggKzQyOSwyOCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkJLyogQ29tbWFuZC1saW5lIGVkaXRpbmcgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotICAgICNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworICAgICNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0gICAgI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzg1NDBFVkFMLmggYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODU0MEVWQUwuaAppbmRleCBlZTRmNDFmLi40NmExNDFhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODU0MEVWQUwuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODU0MEVWQUwuaApAQCAtNjYsOSArNjYsOSBAQAogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9QUkVfSU5JVAkxCSAgICAvKiBDYWxsIGJvYXJkX3ByZV9pbml0CSovCiAKLSN1bmRlZglDRkdfRFJBTV9URVNUCQkJICAgIC8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCisjdW5kZWYJQ09ORklHX1NZU19EUkFNX1RFU1QJCQkgICAgLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19UU0VDX0VORVQpCiAjZXJyb3IgIllvdSBjYW4gb25seSB1c2UgZWl0aGVyIFBDSSBFdGhlcm5ldCBDYXJkIG9yIFRTRUMgRXRoZXJuZXQsIG5vdCBib3RoLiIKQEAgLTc4LDQyICs3OCw0MiBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0CSovCi0jZGVmaW5lIENGR19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSCSovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUgkqLwogCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkyNTYgICAgICAgICAgICAgLyogRERSIGlzIG5vdyAyNTZNQiAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkyNTYgICAgICAgICAgICAgLyogRERSIGlzIG5vdyAyNTZNQiAgICAgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1JBTV9BU19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4ZmMwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRQkweGZjMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCiAjZWxzZQotI2RlZmluZSBDRkdfTEJDX1NEUkFNX0JBU0UgICAgICAweGYwMDAwMDAwICAgICAgLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSAgICAgIDB4ZjAwMDAwMDAgICAgICAvKiBMb2NhbGJ1cyBTRFJBTSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDBNQgkqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgME1CCSovCiAKICNpZiBkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgICAgIDB4ZjgwMDAwMDAgICAgICAvKiBzdGFydCBvZiBGTEFTSCAgMTZNICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTSAgICAgICAgICAweGY4MDAxODAxICAgICAgLyogcG9ydCBzaXplIDMyYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICAgICAgICAweGY4MDAwMDAwICAgICAgLyogc3RhcnQgb2YgRkxBU0ggIDE2TSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNICAgICAgICAgIDB4ZjgwMDE4MDEgICAgICAvKiBwb3J0IHNpemUgMzJiaXQgKi8KICNlbHNlIC8qIEJvb3QgZnJvbSByZWFsIEZsYXNoICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmODAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIIDhNICAgICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkweGZmODAxMDAxCS8qIHBvcnQgc2l6ZSAxNmJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmY4MDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggOE0gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweGZmODAxMDAxCS8qIHBvcnQgc2l6ZSAxNmJpdAkqLwogI2VuZGlmCiAKLSNkZWZpbmUJQ0ZHX09SMF9QUkVMSU0JCTB4ZmY4MDZmNjcJLyogOE1CIEZsYXNoCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAgICovCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEKKyNkZWZpbmUJQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGZmODA2ZjY3CS8qIDhNQiBGbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAgICovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSN1bmRlZiAgQ0ZHX1JBTUJPT1QKKyN1bmRlZiAgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogLyogRERSIFNldHVwICovCkBAIC0xMjcsOCArMTI3LDggQEAKICN1bmRlZiBDT05GSUdfRUNDX0lOSVRfVklBX0REUkNPTlRST0xMRVIJLyogRERSIGNvbnRyb2xsZXIgb3IgRE1BPyAqLwogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNCiAKICNkZWZpbmUgQ09ORklHX05VTV9ERFJfQ09OVFJPTExFUlMJMQpAQCAtMTQxLDU3ICsxNDEsNTcgQEAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgogCiAvKiBsb2NhbCBidXMgZGVmaW5pdGlvbnMgKi8KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4ZjAwMDE4NjEJLyogNjRNQiBsb2NhbGJ1cyBTRFJBTSAgKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKLSNkZWZpbmUgQ0ZHX0xCQ19MQ1JSCQkweDAwMDMwMDA0CS8qIGxvY2FsIGJ1cyBmcmVxIGRpdmlkZXIqLwotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCQ19MU1JUCQkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8xCQkweDI4NjFiNzIzCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMgkJMHgwODYxYjcyMwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzMJCTB4MDg2MWI3MjMKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl80CQkweDE4NjFiNzIzCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNQkJMHg0MDYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4ZjAwMDE4NjEJLyogNjRNQiBsb2NhbGJ1cyBTRFJBTSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweGZjMDA2OTAxCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xDUlIJCTB4MDAwMzAwMDQJLyogbG9jYWwgYnVzIGZyZXEgZGl2aWRlciovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xCQkweDI4NjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzIJCTB4MDg2MWI3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMwkJMHgwODYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl80CQkweDE4NjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzUJCTB4NDA2MWI3MjMKIAogI2lmIGRlZmluZWQoQ09ORklHX1JBTV9BU19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0gICAgICAgICAgMHhmODAwMDgwMSAgICAgIC8qIDMyS0IsIDgtYml0IHdpZGUgZm9yIEFEUyBjb25maWcgcmVnICovCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTSAgICAgICAgICAweGY4MDAwODAxICAgICAgLyogMzJLQiwgOC1iaXQgd2lkZSBmb3IgQURTIGNvbmZpZyByZWcgKi8KICNlbHNlCi0jZGVmaW5lIENGR19CUjRfUFJFTElNICAgICAgICAgIDB4ZjgwMDA4MDEgICAgICAvKiAzMktCLCA4LWJpdCB3aWRlIGZvciBBRFMgY29uZmlnIHJlZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0gICAgICAgICAgMHhmODAwMDgwMSAgICAgIC8qIDMyS0IsIDgtYml0IHdpZGUgZm9yIEFEUyBjb25maWcgcmVnICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0gICAgICAgICAgMHhmZmZmZTFmMQotI2RlZmluZSBDRkdfQkNTUiAgICAgICAgICAgICAgICAoQ0ZHX0JSNF9QUkVMSU0gJiAweGZmZmY4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0gICAgICAgICAgMHhmZmZmZTFmMQorI2RlZmluZSBDT05GSUdfU1lTX0JDU1IgICAgICAgICAgICAgICAgKENPTkZJR19TWVNfQlI0X1BSRUxJTSAmIDB4ZmZmZjgwMDApCiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpICAgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KSAgICAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpICAgIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyogU2VyaWFsIFBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVggICAgIDEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFICAgIDEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwxMTUyMDB9CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMSAgICAgICAgKENGR19DQ1NSQkFSKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMiAgICAgICAgKENGR19DQ1NSQkFSKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEgICAgICAgIChDT05GSUdfU1lTX0NDU1JCQVIrMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMiAgICAgICAgKENPTkZJR19TWVNfQ0NTUkJBUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKgpAQCAtMjAwLDE2ICsyMDAsMTYgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMJCS8qIFVzZSBGU0wgY29tbW9uIEkyQyBkcml2ZXIgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0Ki8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMgICAgICAgIHsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTICAgICAgICB7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMwMDAKIAogLyogR2VuZXJhbCBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNX1BIWVMJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9TSVpFCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19CQVNFICAgICAgICAgMHhlMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9QSFlTCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19CQVNFICAgICAgICAgMHhlMjAwMDAwMAogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCkBAIC0yMjIsOCArMjIyLDggQEAKICNkZWZpbmUgUENJX0lEU0VMX05VTUJFUiAgICAgIDB4MGMJLypzbG90MC0+MyhJRFNFTCk9MTItPjE1Ki8KICNlbmRpZgogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVyAgICAxICAgICAgIC8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3ICAvKiBNb3Rvcm9sYSAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDAwMDgKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDAwOAogI2VsaWYgZGVmaW5lZChDT05GSUdfVFNFQ19FTkVUKQogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJKi8KQEAgLTI1NCwyMSArMjU0LDIxIEBACiAjZW5kaWYKIAogLyogRW52aXJvbm1lbnQgKi8KLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjaWYgZGVmaW5lZChDT05GSUdfUkFNX0FTX0ZMQVNIKQogI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDEwMDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgxMDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZWxzZQogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIDB4NDAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiAyNTZLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KICNlbmRpZgogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2Vsc2UKLS8qICNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxICovCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93CSovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEgKi8JLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5CSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKQEAgLTI3Nyw3ICsyNzcsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTMJLyogLTEgZGlzYWJsZSBhdXRvYm9vdCAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKIAogLyoKQEAgLTMwMSw3ICszMDEsNyBAQAogICAgICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkgfHwgZGVmaW5lZChDT05GSUdfUkFNX0FTX0ZMQVNIKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKSB8fCBkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpCiAgICAgI3VuZGVmIENPTkZJR19DTURfRU5WCiAgICAgI3VuZGVmIENPTkZJR19DTURfTE9BRFMKICNlbmRpZgpAQCAtMzEyLDI1ICszMTIsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIgICAweDIwMDAwMDAgICAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiTVBDODU0MEVWQUw9PiAiLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSICAgMHgyMDAwMDAwICAgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSJNUEM4NTQwRVZBTD0+ICIvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzg1NDFDRFMuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4NTQxQ0RTLmgKaW5kZXggNmE0MDBmNS4uNDVlZGRiOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzg1NDFDRFMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODU0MUNEUy5oCkBAIC02NCwxNyArNjQsMTcgQEAKICNkZWZpbmUgQ09ORklHX0JUQgkJCSAgICAvKiB0b2dnbGUgYnJhbmNoIHByZWRpdGlvbiAqLwogI2RlZmluZSBDT05GSUdfQUREUl9TVFJFQU1JTkcJCSAgICAvKiB0b2dnbGUgYWRkciBzdHJlYW1pbmcgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCiAKIC8qCiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfUEhZUwlDRkdfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDRkdfSU1NUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMJQ09ORklHX1NZU19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ09ORklHX1NZU19JTU1SICovCiAKIC8qIEREUiBTZXR1cCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0REUjEKQEAgLTg0LDggKzg0LDggQEAKIAogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJCTB4RGVhZEJlZWYKIAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCiAKICNkZWZpbmUgQ09ORklHX05VTV9ERFJfQ09OVFJPTExFUlMJMQogI2RlZmluZSBDT05GSUdfRElNTV9TTE9UU19QRVJfQ1RMUgkxCkBAIC0xMzcsMzcgKzEzNywzNyBAQAogICogMTExMSAxMTExIDEwMDAgMDAwMCAwMTEwIDExMTAgMDExMCAwMTAxID0gZmY4MDZlNjUgICAgT1J4CiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZjAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCA4TSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmYwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggOE0gKi8KIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhmZjgwMTAwMQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhmZjAwMTAwMQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4ZmY4MDEwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkweGZmMDAxMDAxCiAKLSNkZWZpbmUJQ0ZHX09SMF9QUkVMSU0JCTB4ZmY4MDZlNjUKLSNkZWZpbmUJQ0ZHX09SMV9QUkVMSU0JCTB4ZmY4MDZlNjUKKyNkZWZpbmUJQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGZmODA2ZTY1CisjZGVmaW5lCUNPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhmZjgwNmU2NQogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsweGZmODAwMDAwLCBDRkdfRkxBU0hfQkFTRX0KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7MHhmZjgwMDAwMCwgQ09ORklHX1NZU19GTEFTSF9CQVNFfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCiAKIC8qCiAgKiBTRFJBTSBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KIAogLyoKICAqIEJhc2UgUmVnaXN0ZXIgMiBhbmQgT3B0aW9uIFJlZ2lzdGVyIDIgY29uZmlndXJlIFNEUkFNLgotICogVGhlIFNEUkFNIGJhc2UgYWRkcmVzcywgQ0ZHX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgorICogVGhlIFNEUkFNIGJhc2UgYWRkcmVzcywgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgaXMgMHhmMDAwMDAwMC4KICAqCiAgKiBGb3IgQlIyLCBuZWVkOgogICogICAgQmFzZSBhZGRyZXNzIG9mIDB4ZjAwMDAwMDAgPSBCUlswOjE2XSA9IDExMTEgMDAwMCAwMDAwIDAwMDAgMApAQCAtMTc5LDE0ICsxNzksMTQgQEAKICAqIDAgICAgNCAgICA4ICAgIDEyICAgMTYgICAyMCAgIDI0ICAgMjgKICAqIDExMTEgMDAwMCAwMDAwIDAwMDAgMDAwMSAxMDAwIDAxMTAgMDAwMSA9IGYwMDAxODYxCiAgKgotICogRklYTUU6IENGR19MQkNfU0RSQU1fQkFTRSBzaG91bGQgYmUgbWFza2VkIGFuZCBPUidlZCBpbnRvCisgKiBGSVhNRTogQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSBzaG91bGQgYmUgbWFza2VkIGFuZCBPUidlZCBpbnRvCiAgKiBGSVhNRTogdGhlIHRvcCAxNyBiaXRzIG9mIEJSMi4KICAqLwogCi0jZGVmaW5lIENGR19CUjJfUFJFTElNICAgICAgICAgIDB4ZjAwMDE4NjEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNICAgICAgICAgIDB4ZjAwMDE4NjEKIAogLyoKLSAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDRkdfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgorICogVGhlIFNEUkFNIHNpemUgaW4gTUIsIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgogICoKICAqIEZvciBPUjIsIG5lZWQ6CiAgKiAgICA2NE1CIG1hc2sgZm9yIEFNLCBPUjJbMDo3XSA9IDExMTEgMTEwMApAQCAtMTk5LDM1ICsxOTksMzUgQEAKICAqIDExMTEgMTEwMCAwMDAwIDAwMDAgMDExMCAxMDAxIDAwMDAgMDAwMSA9IGZjMDA2OTAxCiAgKi8KIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhmYzAwNjkwMQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKIAotI2RlZmluZSBDRkdfTEJDX0xDUlIJCTB4MDAwMzAwMDQgICAgLyogTEIgY2xvY2sgcmF0aW8gcmVnICovCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMCAgICAvKiBMQiBjb25maWcgcmVnICovCi0jZGVmaW5lIENGR19MQkNfTFNSVAkJMHgyMDAwMDAwMCAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLwotI2RlZmluZSBDRkdfTEJDX01SVFBSCQkweDAwMDAwMDAwICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQ1JSCQkweDAwMDMwMDA0ICAgIC8qIExCIGNsb2NrIHJhdGlvIHJlZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQkNSCQkweDAwMDAwMDAwICAgIC8qIExCIGNvbmZpZyByZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkJMHgyMDAwMDAwMCAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkJMHgwMDAwMDAwMCAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsKi8KIAogLyoKICAqIExTRE1SIG1hc2tzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkVOCSgxIDw8ICgzMSAtICAxKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CU01BMTUxNgkoMyA8PCAoMzEgLSAxMCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQlNNQTE2MTcJKDQgPDwgKDMxIC0gMTApKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUFJFVE9BQ1Q3CSg3IDw8ICgzMSAtIDE5KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNwkoNyA8PCAoMzEgLSAyMikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQUNUVE9SVzYJKDYgPDwgKDMxIC0gMjIpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JMOAkoMSA8PCAoMzEgLSAyMykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfV1JDNAkoMCA8PCAoMzEgLSAyNykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQ0wzCSgzIDw8ICgzMSAtIDMxKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUkZFTgkoMSA8PCAoMzEgLSAgMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNTE2CSgzIDw8ICgzMSAtIDEwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE2MTcJKDQgPDwgKDMxIC0gMTApKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSMTYJKDcgPDwgKDMxIC0gMTYpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9QUkVUT0FDVDcJKDcgPDwgKDMxIC0gMTkpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNwkoNyA8PCAoMzEgLSAyMikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlc2CSg2IDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQkw4CSgxIDw8ICgzMSAtIDIzKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDNAkoMCA8PCAoMzEgLSAyNykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0NMMwkoMyA8PCAoMzEgLSAzMSkpCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUwJKDAgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQVJGUlNICSgxIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1NSRlJTSAkoMiA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUENIQUxMCSg1IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FDVEJOSwkoNiA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMCSgwIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0gJKDEgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1NSRlJTSAkoMiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTVJXCSgzIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUENIQUxMCSg1IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BQ1RCTksJKDYgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQogCiAvKgogICogQ29tbW9uIHNldHRpbmdzIGZvciBhbGwgTG9jYWwgQnVzIFNEUkFNIGNvbW1hbmRzLgpAQCAtMjM1LDEzICsyMzUsMTMgQEAKICAqICAgICAgICAgICAgICAgICAgb3IgQlNNQTE2MTcgKGZvciBDUFUgMS4wKSAob2xkKQogICogaXMgT1InZWQgaW4gdG9vLgogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQ09NTU9OCSggQ0ZHX0xCQ19MU0RNUl9SRkNSMTYJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfUFJFVE9BQ1Q3CVwKLQkJCQl8IENGR19MQkNfTFNETVJfQUNUVE9SVzcJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9CTDgJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfV1JDNAkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9DTDMJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfUkZFTgkJXAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04JKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSMTYJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUNwlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNwlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9CTDgJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1dSQzQJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0NMMwkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfUkZFTgkJXAogCQkJCSkKIAogLyoKQEAgLTI3NywzOSArMjc3LDM5IEBACiAjZGVmaW5lIENPTkZJR19GU0xfQ0FETVVTCiAKICNkZWZpbmUgQ0FETVVTX0JBU0VfQUREUiAweGY4MDAwMDAwCi0jZGVmaW5lIENGR19CUjNfUFJFTElNICAgMHhmODAwMDgwMQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTSAgIDB4ZmZmMDBmZjcKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNICAgMHhmODAwMDgwMQorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0gICAweGZmZjAwZmY3CiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhlNDAxMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCSAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhlNDAxMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CSAgICAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyogU2VyaWFsIFBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVggICAgIDIKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFICAgIDEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwxMTUyMDB9CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMSAgICAgICAgKENGR19DQ1NSQkFSKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMiAgICAgICAgKENGR19DQ1NSQkFSKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEgICAgICAgIChDT05GSUdfU1lTX0NDU1JCQVIrMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMiAgICAgICAgKENPTkZJR19TWVNfQ0NTUkJBUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCkBAIC0zMTcsOCArMzE3LDggQEAKICNkZWZpbmUgQ09ORklHX09GX0JPQVJEX1NFVFVQCQkxCiAjZGVmaW5lIENPTkZJR19PRl9TVERPVVRfVklBX0FMSUFTCTEKIAotI2RlZmluZSBDRkdfNjRCSVRfVlNQUklOVEYJMQotI2RlZmluZSBDRkdfNjRCSVRfU1RSVE9VTAkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwJMQogCiAvKgogICogSTJDCkBAIC0zMjYsMzUgKzMyNiwzNSBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTICAgICAgICB7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUyAgICAgICAgezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCiAKIC8qIEVFUFJPTSAqLwogI2RlZmluZSBDT05GSUdfSURfRUVQUk9NCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0NDSUQKLSNkZWZpbmUgQ0ZHX0lEX0VFUFJPTQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSICAgICAweDU3Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDIKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0NDSUQKKyNkZWZpbmUgQ09ORklHX1NZU19JRF9FRVBST00KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgICAgIDB4NTcKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDIKIAogLyoKICAqIEdlbmVyYWwgUENJCiAgKiBNZW1vcnkgc3BhY2UgaXMgbWFwcGVkIDEtMSwgYnV0IEkvTyBzcGFjZSBtdXN0IHN0YXJ0IGZyb20gMC4KICAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgxMDAwMDAJLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMJMHhlMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQkweDEwMDAwMAkvKiAxTSAqLwogCi0jZGVmaW5lIENGR19QQ0kyX01FTV9CQVNFCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1BIWVMJQ0ZHX1BDSTJfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kyX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9JT19QSFlTCTB4ZTIxMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fU0laRQkweDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UJMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fUEhZUwkweGUyMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19TSVpFCTB4MTAwMDAwCS8qIDFNICovCiAKICNpZmRlZiBDT05GSUdfTEVHQUNZCiAjZGVmaW5lIEJSSURHRV9JRCAxNwpAQCAtMzc0LDcgKzM3NCw3IEBACiAjdW5kZWYgQ09ORklHX1RVTElQCiAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KIAogI2VuZGlmCS8qIENPTkZJR19QQ0kgKi8KIApAQCAtNDA2LDEyICs0MDYsMTIgQEAKICAqIEVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDB4NDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogMjU2SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTQ0MiwyNiArNDQyLDI2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCQkvKiBDb21tYW5kLWxpbmUgZWRpdGluZyAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzg1NDREUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzg1NDREUy5oCmluZGV4IGI2NTA4NzQuLmZiNGQxNzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4NTQ0RFMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODU0NERTLmgKQEAgLTcyLDIzICs3MiwyMyBAQAogICovCiAjZGVmaW5lIENPTkZJR19FTkFCTEVfMzZCSVRfUEhZUwkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKICNkZWZpbmUgQ09ORklHX1BBTklDX0hBTkcJLyogZG8gbm90IHJlc2V0IGJvYXJkIG9uIHBhbmljICovCiAKIC8qCiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfUEhZUwlDRkdfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDRkdfSU1NUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMJQ09ORklHX1NZU19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ09ORklHX1NZU19JTU1SICovCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfQUREUgkJKENGR19DQ1NSQkFSKzB4ODAwMCkKLSNkZWZpbmUgQ0ZHX1BDSUUxX0FERFIJCShDRkdfQ0NTUkJBUisweGEwMDApCi0jZGVmaW5lIENGR19QQ0lFMl9BRERSCQkoQ0ZHX0NDU1JCQVIrMHg5MDAwKQotI2RlZmluZSBDRkdfUENJRTNfQUREUgkJKENGR19DQ1NSQkFSKzB4YjAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHg4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHhhMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHg5MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHhiMDAwKQogCiAvKiBERFIgU2V0dXAgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9ERFIyCkBAIC05OSw4ICs5OSw4IEBACiAjdW5kZWYgQ09ORklHX0VDQ19JTklUX1ZJQV9ERFJDT05UUk9MTEVSCS8qIEREUiBjb250cm9sbGVyIG9yIERNQT8gKi8KICNkZWZpbmUgQ09ORklHX01FTV9JTklUX1ZBTFVFCTB4RGVhZEJlZWYKIAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKQEAgLTE0NSwzOSArMTQ1LDM5IEBACiAvKgogICogTG9jYWwgQnVzIERlZmluaXRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RfQkxPQ0sJCTB4ZmMwMDAwMDAJLyogYm9vdCBUTEIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX0JMT0NLCQkweGZjMDAwMDAwCS8qIGJvb3QgVExCICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmY4MDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggOE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmODAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIIDhNICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCTB4ZmY4MDEwMDEKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCTB4ZmU4MDEwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweGZmODAxMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJMHhmZTgwMTAwMQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweGZmODA2ZTY1Ci0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkweGZmODA2ZTY1CisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhmZjgwNmU2NQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCTB4ZmY4MDZlNjUKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7Q0ZHX0ZMQVNIX0JBU0V9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7Q09ORklHX1NZU19GTEFTSF9CQVNFfQogCi0jZGVmaW5lIENGR19GTEFTSF9RVUlFVF9URVNUCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLwotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCQkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9TSE9XX1BST0dSRVNTIDQ1IC8qIGNvdW50IGRvd24gZnJvbSA0NS81OiA5Li4xICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAKLSNkZWZpbmUgQ0ZHX0xCQ19OT05DQUNIRV9CQVNFCTB4ZjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTk9OQ0FDSEVfQkFTRQkweGY4MDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4ZjgyMDEwMDEJLyogcG9ydCBzaXplIDE2Yml0ICovCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkweGZmZjA2ZmY3CS8qIDFNQiBDb21wYWN0IEZsYXNoIGFyZWEqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4ZjgyMDEwMDEJLyogcG9ydCBzaXplIDE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJMHhmZmYwNmZmNwkvKiAxTUIgQ29tcGFjdCBGbGFzaCBhcmVhKi8KIAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkJMHhmODEwMDgwMQkvKiBwb3J0IHNpemUgOGJpdCAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJMHhmZmYwNmZmNwkvKiAxTUIgUElYSVMgYXJlYSovCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkJMHhmODEwMDgwMQkvKiBwb3J0IHNpemUgOGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCTB4ZmZmMDZmZjcJLyogMU1CIFBJWElTIGFyZWEqLwogCiAjZGVmaW5lIENPTkZJR19GU0xfUElYSVMJMQkvKiB1c2UgY29tbW9uIFBJWElTIGNvZGUgKi8KICNkZWZpbmUgUElYSVNfQkFTRQkweGY4MTAwMDAwCS8qIFBJWElTIHJlZ2lzdGVycyAqLwpAQCAtMTk3LDcgKzE5Nyw3IEBACiAjZGVmaW5lIFBJWElTX1ZDTEtICQkweDE5CS8qIFZFTEEgVkNMS0ggcmVnaXN0ZXIgKi8KICNkZWZpbmUgUElYSVNfVkNMS0wJCTB4MUEJLyogVkVMQSBWQ0xLTCByZWdpc3RlciAqLwogI2RlZmluZSBQSVhJU19WU1BFRUQyCQkweDFkCS8qIFZFTEEgVlNwZWVkIDIgKi8KLSNkZWZpbmUgQ0ZHX1BJWElTX1ZCT09UX01BU0sJMHg0MCAgICAvKiBSZXNldCBhbHRiYW5rIG1hc2sqLworI2RlZmluZSBDT05GSUdfU1lTX1BJWElTX1ZCT09UX01BU0sJMHg0MCAgICAvKiBSZXNldCBhbHRiYW5rIG1hc2sqLwogI2RlZmluZSBQSVhJU19WU1BFRUQyX1RTRUMxU0VSCTB4MgogI2RlZmluZSBQSVhJU19WU1BFRUQyX1RTRUMzU0VSCTB4MQogI2RlZmluZSBQSVhJU19WQ0ZHRU4xX1RTRUMxU0VSCTB4MjAKQEAgLTIwNiwxNyArMjA2LDE3IEBACiAKIC8qIGRlZmluZSB0byB1c2UgTDEgYXMgaW5pdGlhbCBzdGFjayAqLwogI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sgICAgICAxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgICAgMHhmNDAxMDAwMCAgICAgIC8qIEluaXRpYWwgTDEgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgIDB4MDAwMDQwMDAgICAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAgICAgIDB4ZjQwMTAwMDAgICAgICAvKiBJbml0aWFsIEwxIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgICAgMHgwMDAwNDAwMCAgICAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTAyNCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTAyNCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyogU2VyaWFsIFBvcnQgLSBjb250cm9sbGVkIG9uIGJvYXJkIHdpdGgganVtcGVyIEo4CiAgKiBvcGVuIC0gaW5kZXggMgpAQCAtMjI0LDIxICsyMjQsMjEgQEAKICAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfQ0NTUkJBUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19DQ1NSQkFSKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0NDU1JCQVIrMHg0NjAwKQogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qIHBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KQEAgLTI0Niw3MiArMjQ2LDcyIEBACiAjZGVmaW5lIENPTkZJR19PRl9CT0FSRF9TRVRVUAkJMQogI2RlZmluZSBDT05GSUdfT0ZfU1RET1VUX1ZJQV9BTElBUwkxCiAKLSNkZWZpbmUgQ0ZHXzY0QklUX1NUUlRPVUwJCTEKLSNkZWZpbmUgQ0ZHXzY0QklUX1ZTUFJJTlRGCQkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfU1RSVE9VTAkJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1ZTUFJJTlRGCQkxCiAKIC8qIEkyQyAqLwogI2RlZmluZSBDT05GSUdfRlNMX0kyQwkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDU3Ci0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzEwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDU3CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzEwMAogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIE1lbW9yeSBzcGFjZSBpcyBtYXBwZWQgMS0xLCBidXQgSS9PIHNwYWNlIG11c3Qgc3RhcnQgZnJvbSAwLgogICovCi0jZGVmaW5lIENGR19QQ0lFX1BIWVMJCTB4ODAwMDAwMDAJLyogMUcgUENJRSBUTEIgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QSFlTCQkweGMwMDAwMDAwCS8qIDUxMk0gUENJIFRMQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfUEhZUwkJMHg4MDAwMDAwMAkvKiAxRyBQQ0lFIFRMQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QSFlTCQkweGMwMDAwMDAwCS8qIDUxMk0gUENJIFRMQiAqLwogCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4YzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCTB4ZTEwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDAwMDEwMDAwCS8qIDY0ayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHhjMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweGUxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCiAKIC8qIFBDSSB2aWV3IG9mIFN5c3RlbSBNZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1NJWkUJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRQkweDgwMDAwMDAwCiAKIC8qIGNvbnRyb2xsZXIgMiwgU2xvdCAxLCB0Z3RpZCAxLCBCYXNlIGFkZHJlc3MgOTAwMCAqLwotI2RlZmluZSBDRkdfUENJRTJfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTJfTUVNX1BIWVMJQ0ZHX1BDSUUyX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lFMl9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSUUyX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTJfSU9fUEhZUwkweGUxMDEwMDAwCi0jZGVmaW5lIENGR19QQ0lFMl9JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX01FTV9QSFlTCUNPTkZJR19TWVNfUENJRTJfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9JT19QSFlTCTB4ZTEwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCiAKIC8qIGNvbnRyb2xsZXIgMSwgU2xvdCAyLHRndGlkIDIsIEJhc2UgYWRkcmVzcyBhMDAwICovCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fQkFTRQkweGEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fUEhZUwlDRkdfUENJRTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJRTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9JT19QSFlTCTB4ZTEwMjAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMJMHhlMTAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KIAogLyogY29udHJvbGxlciAzLCBkaXJlY3QgdG8gdWxpLCB0Z3RpZCAzLCBCYXNlIGFkZHJlc3MgYjAwMCAqLwotI2RlZmluZSBDRkdfUENJRTNfTUVNX0JBU0UJMHhiMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTNfTUVNX1BIWVMJQ0ZHX1BDSUUzX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lFM19NRU1fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCi0jZGVmaW5lIENGR19QQ0lFM19JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUzX0lPX1BIWVMJMHhiMDEwMDAwMAkvKiByZXVzZSBtZW0gTEFXICovCi0jZGVmaW5lIENGR19QQ0lFM19JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KLSNkZWZpbmUgQ0ZHX1BDSUUzX01FTV9CQVNFMgkweGIwMjAwMDAwCi0jZGVmaW5lIENGR19QQ0lFM19NRU1fUEhZUzIJQ0ZHX1BDSUUzX01FTV9CQVNFMgotI2RlZmluZSBDRkdfUENJRTNfTUVNX1NJWkUyCTB4MDAyMDAwMDAJLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19NRU1fQkFTRQkweGIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTNfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lFM19NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX01FTV9TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19JT19QSFlTCTB4YjAxMDAwMDAJLyogcmV1c2UgbWVtIExBVyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX01FTV9CQVNFMgkweGIwMjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTNfTUVNX1BIWVMyCUNPTkZJR19TWVNfUENJRTNfTUVNX0JBU0UyCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTNfTUVNX1NJWkUyCTB4MDAyMDAwMDAJLyogMU0gKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKIAogLypQQ0lFIHZpZGVvIGNhcmQgdXNlZCovCi0jZGVmaW5lIFZJREVPX0lPX09GRlNFVAkJQ0ZHX1BDSUUyX0lPX1BIWVMKKyNkZWZpbmUgVklERU9fSU9fT0ZGU0VUCQlDT05GSUdfU1lTX1BDSUUyX0lPX1BIWVMKIAogLypQQ0kgdmlkZW8gY2FyZCB1c2VkKi8KLS8qI2RlZmluZSBWSURFT19JT19PRkZTRVQJQ0ZHX1BDSTFfSU9fUEhZUyovCisvKiNkZWZpbmUgVklERU9fSU9fT0ZGU0VUCUNPTkZJR19TWVNfUENJMV9JT19QSFlTKi8KIAogLyogdmlkZW8gKi8KICNkZWZpbmUgQ09ORklHX1ZJREVPCkBAIC0zMjQsNyArMzI0LDcgQEAKICNkZWZpbmUgQ09ORklHX0FUSV9SQURFT05fRkIKICNkZWZpbmUgQ09ORklHX1ZJREVPX0xPR08KIC8qI2RlZmluZSBDT05GSUdfQ09OU09MRV9DVVJTT1IqLwotI2RlZmluZSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyBWSURFT19JT19PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTIFZJREVPX0lPX09GRlNFVAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQpAQCAtMzQxLDggKzM0MSw4IEBACiAjZW5kaWYKIAogI2lmbmRlZiBDT05GSUdfUENJX1BOUAotCSNkZWZpbmUgUENJX0VORVQwX0lPQUREUglDRkdfUENJMV9JT19CQVNFCi0JI2RlZmluZSBQQ0lfRU5FVDBfTUVNQUREUglDRkdfUENJMV9JT19CQVNFCisJI2RlZmluZSBQQ0lfRU5FVDBfSU9BRERSCUNPTkZJR19TWVNfUENJMV9JT19CQVNFCisJI2RlZmluZSBQQ0lfRU5FVDBfTUVNQUREUglDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQogCSNkZWZpbmUgUENJX0lEU0VMX05VTUJFUgkweDExCS8qIElEU0VMID0gQUQxMSAqLwogI2VuZGlmCiAKQEAgLTM1MiwxMCArMzUyLDEwIEBACiAKICNpZmRlZiBDT05GSUdfU0NTSV9BSENJCiAjZGVmaW5lIENPTkZJR19TQVRBX1VMSTUyODgKLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX1NDU0lfSUQJNAotI2RlZmluZSBDRkdfU0NTSV9NQVhfTFVOCTEKLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX0RFVklDRQkoQ0ZHX1NDU0lfTUFYX1NDU0lfSUQgKiBDRkdfU0NTSV9NQVhfTFVOKQotI2RlZmluZSBDRkdfU0NTSV9NQVhERVZJQ0UJQ0ZHX1NDU0lfTUFYX0RFVklDRQorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQJNAorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTgkxCisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhfREVWSUNFCShDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQgKiBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTikKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWERFVklDRQlDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRQogI2VuZGlmIC8qIFNDU0NJICovCiAKICNlbmRpZgkvKiBDT05GSUdfUENJICovCkBAIC0zOTUsMTYgKzM5NSwxNiBAQAogICogRW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID4gMHhmZmY4MDAwMAorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID4gMHhmZmY4MDAwMAogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4ZmZmODAwMDAKICNlbHNlCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDcwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDB4NzAwMDApCiAjZW5kaWYKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMCAvKiA2NEsgKG9uZSBzZWN0b3IpICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTQzOSwyNiArNDM5LDI2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCQkvKiBDb21tYW5kLWxpbmUgZWRpdGluZyAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzg1NDhDRFMuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4NTQ4Q0RTLmgKaW5kZXggNjhiYzEwNi4uZGQ0NDdkMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzg1NDhDRFMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODU0OENEUy5oCkBAIC03NiwyMSArNzYsMjEgQEAKICAqLwogI2RlZmluZSBDT05GSUdfRU5BQkxFXzM2QklUX1BIWVMJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCiAKIC8qCiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfUEhZUwlDRkdfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDRkdfSU1NUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMJQ09ORklHX1NZU19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ09ORklHX1NZU19JTU1SICovCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfQUREUgkoQ0ZHX0NDU1JCQVIrMHg4MDAwKQotI2RlZmluZSBDRkdfUENJMl9BRERSCShDRkdfQ0NTUkJBUisweDkwMDApCi0jZGVmaW5lIENGR19QQ0lFMV9BRERSCShDRkdfQ0NTUkJBUisweGEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9BRERSCShDT05GSUdfU1lTX0NDU1JCQVIrMHg4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfQUREUgkoQ09ORklHX1NZU19DQ1NSQkFSKzB4OTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9BRERSCShDT05GSUdfU1lTX0NDU1JCQVIrMHhhMDAwKQogCiAvKiBERFIgU2V0dXAgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9ERFIyCkBAIC0xMDIsOCArMTAyLDggQEAKICN1bmRlZiBDT05GSUdfRUNDX0lOSVRfVklBX0REUkNPTlRST0xMRVIJLyogRERSIGNvbnRyb2xsZXIgb3IgRE1BPyAqLwogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKIAogI2RlZmluZSBDT05GSUdfTlVNX0REUl9DT05UUk9MTEVSUwkxCiAjZGVmaW5lIENPTkZJR19ESU1NX1NMT1RTX1BFUl9DVExSCTEKQEAgLTE1Myw0MyArMTUzLDQzIEBACiAgKiAxMTExIDExMTEgMTAwMCAwMDAwIDAxMTAgMTExMCAwMTEwIDAxMDEgPSBmZjgwNmU2NQkgT1J4CiAgKi8KIAotI2RlZmluZSBDRkdfQk9PVF9CTE9DSwkJMHhmZjAwMDAwMAkvKiBib290IFRMQiBibG9jayAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0JPT1RfQkxPQ0sJLyogc3RhcnQgb2YgRkxBU0ggMTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9CTE9DSwkJMHhmZjAwMDAwMAkvKiBib290IFRMQiBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfQk9PVF9CTE9DSwkvKiBzdGFydCBvZiBGTEFTSCAxNk0gKi8KIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhmZjgwMTAwMQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhmZjAwMTAwMQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4ZmY4MDEwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkweGZmMDAxMDAxCiAKLSNkZWZpbmUJQ0ZHX09SMF9QUkVMSU0JCTB4ZmY4MDZlNjUKLSNkZWZpbmUJQ0ZHX09SMV9QUkVMSU0JCTB4ZmY4MDZlNjUKKyNkZWZpbmUJQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGZmODA2ZTY1CisjZGVmaW5lCUNPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhmZjgwNmU2NQogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsweGZmODAwMDAwLCBDRkdfRkxBU0hfQkFTRX0KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7MHhmZjgwMDAwMCwgQ09ORklHX1NZU19GTEFTSF9CQVNFfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCiAKIC8qCiAgKiBTRFJBTSBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19DQUNIRV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgY2FjaGVhYmxlICovCi0jZGVmaW5lIENGR19MQkNfQ0FDSEVfU0laRQk2NAotI2RlZmluZSBDRkdfTEJDX05PTkNBQ0hFX0JBU0UJMHhmODAwMDAwMAkvKiBMb2NhbGJ1cyBub24tY2FjaGVhYmxlICovCi0jZGVmaW5lIENGR19MQkNfTk9OQ0FDSEVfU0laRQk2NAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19DQUNIRV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgY2FjaGVhYmxlICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0NBQ0hFX1NJWkUJNjQKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTk9OQ0FDSEVfQkFTRQkweGY4MDAwMDAwCS8qIExvY2FsYnVzIG5vbi1jYWNoZWFibGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTk9OQ0FDSEVfU0laRQk2NAogCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fQkFTRQlDRkdfTEJDX0NBQ0hFX0JBU0UJLyogTG9jYWxidXMgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCUNPTkZJR19TWVNfTEJDX0NBQ0hFX0JBU0UJLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KIAogLyoKICAqIEJhc2UgUmVnaXN0ZXIgMiBhbmQgT3B0aW9uIFJlZ2lzdGVyIDIgY29uZmlndXJlIFNEUkFNLgotICogVGhlIFNEUkFNIGJhc2UgYWRkcmVzcywgQ0ZHX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgorICogVGhlIFNEUkFNIGJhc2UgYWRkcmVzcywgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgaXMgMHhmMDAwMDAwMC4KICAqCiAgKiBGb3IgQlIyLCBuZWVkOgogICogICAgQmFzZSBhZGRyZXNzIG9mIDB4ZjAwMDAwMDAgPSBCUlswOjE2XSA9IDExMTEgMDAwMCAwMDAwIDAwMDAgMApAQCAtMjAxLDE0ICsyMDEsMTQgQEAKICAqIDAJNCAgICA4CSAgMTIgICAxNiAgIDIwCSAyNCAgIDI4CiAgKiAxMTExIDAwMDAgMDAwMCAwMDAwIDAwMDEgMTAwMCAwMTEwIDAwMDEgPSBmMDAwMTg2MQogICoKLSAqIEZJWE1FOiBDRkdfTEJDX1NEUkFNX0JBU0Ugc2hvdWxkIGJlIG1hc2tlZCBhbmQgT1InZWQgaW50bworICogRklYTUU6IENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0Ugc2hvdWxkIGJlIG1hc2tlZCBhbmQgT1InZWQgaW50bwogICogRklYTUU6IHRoZSB0b3AgMTcgYml0cyBvZiBCUjIuCiAgKi8KIAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJMHhmMDAwMTg2MQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4ZjAwMDE4NjEKIAogLyoKLSAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDRkdfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgorICogVGhlIFNEUkFNIHNpemUgaW4gTUIsIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgogICoKICAqIEZvciBPUjIsIG5lZWQ6CiAgKiAgICA2NE1CIG1hc2sgZm9yIEFNLCBPUjJbMDo3XSA9IDExMTEgMTEwMApAQCAtMjIxLDM1ICsyMjEsMzUgQEAKICAqIDExMTEgMTEwMCAwMDAwIDAwMDAgMDExMCAxMDAxIDAwMDAgMDAwMSA9IGZjMDA2OTAxCiAgKi8KIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhmYzAwNjkwMQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKIAotI2RlZmluZSBDRkdfTEJDX0xDUlIJCTB4MDAwMzAwMDQJLyogTEIgY2xvY2sgcmF0aW8gcmVnICovCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMAkvKiBMQiBjb25maWcgcmVnICovCi0jZGVmaW5lIENGR19MQkNfTFNSVAkJMHgyMDAwMDAwMAkvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyICovCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJCTB4MDAwMDAwMDAJLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTENSUgkJMHgwMDAzMDAwNAkvKiBMQiBjbG9jayByYXRpbyByZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMAkvKiBMQiBjb25maWcgcmVnICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJCTB4MjAwMDAwMDAJLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkJMHgwMDAwMDAwMAkvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwqLwogCiAvKgogICogTFNETVIgbWFza3MKICAqLwotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGRU4JKDEgPDwgKDMxIC0gIDEpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JTTUExNTE2CSgzIDw8ICgzMSAtIDEwKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CU01BMTYxNwkoNCA8PCAoMzEgLSAxMCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUkZDUjE2CSg3IDw8ICgzMSAtIDE2KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDcJKDcgPDwgKDMxIC0gMTkpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlc3CSg3IDw8ICgzMSAtIDIyKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNgkoNiA8PCAoMzEgLSAyMikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQkw4CSgxIDw8ICgzMSAtIDIzKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9XUkM0CSgwIDw8ICgzMSAtIDI3KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DTDMJKDMgPDwgKDMxIC0gMzEpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkVOCSgxIDw8ICgzMSAtICAxKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE1MTYJKDMgPDwgKDMxIC0gMTApKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTYxNwkoNCA8PCAoMzEgLSAxMCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUNwkoNyA8PCAoMzEgLSAxOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlc3CSg3IDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzYJKDYgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CTDgJKDEgPDwgKDMxIC0gMjMpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkM0CSgwIDw8ICgzMSAtIDI3KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQ0wzCSgzIDw8ICgzMSAtIDMxKSkKIAotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gJKDEgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9OT1JNQUwJKDAgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FDVEJOSwkoNiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCiAKIC8qCiAgKiBDb21tb24gc2V0dGluZ3MgZm9yIGFsbCBMb2NhbCBCdXMgU0RSQU0gY29tbWFuZHMuCkBAIC0yNTcsMTMgKzI1NywxMyBAQAogICoJCSAgICBvciBCU01BMTYxNyAoZm9yIENQVSAxLjApIChvbGQpCiAgKiBpcyBPUidlZCBpbiB0b28uCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DT01NT04JKCBDRkdfTEJDX0xTRE1SX1JGQ1IxNgkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDcJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNwlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0JMOAkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9XUkM0CQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0NMMwkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9SRkVOCQlcCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTgkoIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1IxNgkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1Q3CVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlc3CVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0JMOAkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDNAkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQ0wzCQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkVOCQlcCiAJCQkJKQogCiAvKgpAQCAtMjk5LDQxICsyOTksNDEgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9DQURNVVMKIAogI2RlZmluZSBDQURNVVNfQkFTRV9BRERSIDB4ZjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JIDB4ZjgwMDA4MDEKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JIDB4ZmZmMDBmZjcKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSAweGY4MDAwODAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkgMHhmZmYwMGZmNwogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfTDJfQUREUgkweGY4ZjgwMDAwCS8qIHJlbG9jYXRlIGJvb3QgTDJTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9MMl9BRERSCTB4ZjhmODAwMDAJLyogcmVsb2NhdGUgYm9vdCBMMlNSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyogU2VyaWFsIFBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMgogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwxMTUyMDB9CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0NDU1JCQVIrMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfQ0NTUkJBUisweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0NDU1JCQVIrMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDYwMCkKIAogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCkBAIC0zNDEsOCArMzQxLDggQEAKICNkZWZpbmUgQ09ORklHX09GX0JPQVJEX1NFVFVQCQkxCiAjZGVmaW5lIENPTkZJR19PRl9TVERPVVRfVklBX0FMSUFTCTEKIAotI2RlZmluZSBDRkdfNjRCSVRfVlNQUklOVEYJMQotI2RlZmluZSBDRkdfNjRCSVRfU1RSVE9VTAkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwJMQogCiAvKgogICogSTJDCkBAIC0zNTAsNTUgKzM1MCw1NSBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJLyogSTJDIGJpdC1iYW5nZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCiAKIC8qIEVFUFJPTSAqLwogI2RlZmluZSBDT05GSUdfSURfRUVQUk9NCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0NDSUQKLSNkZWZpbmUgQ0ZHX0lEX0VFUFJPTQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSICAgICAweDU3Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDIKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0NDSUQKKyNkZWZpbmUgQ09ORklHX1NZU19JRF9FRVBST00KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgICAgIDB4NTcKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDIKIAogLyoKICAqIEdlbmVyYWwgUENJCiAgKiBNZW1vcnkgc3BhY2UgaXMgbWFwcGVkIDEtMSwgYnV0IEkvTyBzcGFjZSBtdXN0IHN0YXJ0IGZyb20gMC4KICAqLwotI2RlZmluZSBDRkdfUENJX1BIWVMJCTB4ODAwMDAwMDAJLyogMUcgUENJIFRMQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QSFlTCQkweDgwMDAwMDAwCS8qIDFHIFBDSSBUTEIgKi8KIAotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KIAogI2lmZGVmIENPTkZJR19QQ0kyCi0jZGVmaW5lIENGR19QQ0kyX01FTV9CQVNFCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1BIWVMJQ0ZHX1BDSTJfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kyX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9JT19QSFlTCTB4ZTI4MDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fQkFTRQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19QSFlTCTB4ZTI4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfUENJRTEKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9CQVNFCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9QSFlTCUNGR19QQ0lFMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJRTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0lFMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX1BIWVMJMHhlMzAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfSU9fU0laRQkweDAwMTAwMDAwCS8qICAgMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMJMHhlMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAgIDFNICovCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19SSU8KIC8qCiAgKiBSYXBpZElPIE1NVQogICovCi0jZGVmaW5lIENGR19SSU9fTUVNX0JBU0UJMHhDMDAwMDAwMAotI2RlZmluZSBDRkdfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fQkFTRQkweEMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTEVHQUNZCkBAIC00MjAsOSArNDIwLDkgQEAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCiAKIC8qIFBDSSB2aWV3IG9mIFN5c3RlbSBNZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1NJWkUJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRQkweDgwMDAwMDAwCiAKICNlbmRpZgkvKiBDT05GSUdfUENJICovCiAKQEAgLTQ2NywxMiArNDY3LDEyIEBACiAgKiBFbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCS8qIDI1Nksob25lIHNlY3RvcikgZm9yIGVudiAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC01MDMsMjYgKzUwMywyNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkJLyogQ29tbWFuZC1saW5lIGVkaXRpbmcgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4NTU1Q0RTLmggYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODU1NUNEUy5oCmluZGV4IGFiNGJjODYuLjZiN2YzMzggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4NTU1Q0RTLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzg1NTVDRFMuaApAQCAtNjQsMTcgKzY0LDE3IEBACiAjZGVmaW5lIENPTkZJR19CVEIJCQkgICAgLyogdG9nZ2xlIGJyYW5jaCBwcmVkaXRpb24gKi8KICNkZWZpbmUgQ09ORklHX0FERFJfU1RSRUFNSU5HCQkgICAgLyogdG9nZ2xlIGFkZHIgc3RyZWFtaW5nICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAogCiAvKgogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCi0jZGVmaW5lIENGR19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUiAqLwogCiAvKiBERFIgU2V0dXAgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9ERFIxCkBAIC04NCw4ICs4NCw4IEBACiAKICNkZWZpbmUgQ09ORklHX01FTV9JTklUX1ZBTFVFCQkweERlYWRCZWVmCiAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKICNkZWZpbmUgQ09ORklHX0RJTU1fU0xPVFNfUEVSX0NUTFIJMQpAQCAtMTM1LDM3ICsxMzUsMzcgQEAKICAqIDExMTEgMTExMSAxMDAwIDAwMDAgMDExMCAxMTEwIDAxMTAgMDEwMSA9IGZmODA2ZTY1ICAgIE9SeAogICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmYwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggOE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIIDhNICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCTB4ZmY4MDEwMDEKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCTB4ZmYwMDEwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweGZmODAxMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJMHhmZjAwMTAwMQogCi0jZGVmaW5lCUNGR19PUjBfUFJFTElNCQkweGZmODA2ZTY1Ci0jZGVmaW5lCUNGR19PUjFfUFJFTElNCQkweGZmODA2ZTY1CisjZGVmaW5lCUNPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhmZjgwNmU2NQorI2RlZmluZQlDT05GSUdfU1lTX09SMV9QUkVMSU0JCTB4ZmY4MDZlNjUKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7MHhmZjgwMDAwMCwgQ0ZHX0ZMQVNIX0JBU0V9Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkJLyogbnVtYmVyIG9mIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLwotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJezB4ZmY4MDAwMDAsIENPTkZJR19TWVNfRkxBU0hfQkFTRX0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkJLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAogCiAvKgogICogU0RSQU0gb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fQkFTRQkweGYwMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRQkweGYwMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CICovCiAKIC8qCiAgKiBCYXNlIFJlZ2lzdGVyIDIgYW5kIE9wdGlvbiBSZWdpc3RlciAyIGNvbmZpZ3VyZSBTRFJBTS4KLSAqIFRoZSBTRFJBTSBiYXNlIGFkZHJlc3MsIENGR19MQkNfU0RSQU1fQkFTRSwgaXMgMHhmMDAwMDAwMC4KKyAqIFRoZSBTRFJBTSBiYXNlIGFkZHJlc3MsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCiAgKgogICogRm9yIEJSMiwgbmVlZDoKICAqICAgIEJhc2UgYWRkcmVzcyBvZiAweGYwMDAwMDAwID0gQlJbMDoxNl0gPSAxMTExIDAwMDAgMDAwMCAwMDAwIDAKQEAgLTE3NywxNCArMTc3LDE0IEBACiAgKiAwICAgIDQgICAgOCAgICAxMiAgIDE2ICAgMjAgICAyNCAgIDI4CiAgKiAxMTExIDAwMDAgMDAwMCAwMDAwIDAwMDEgMTAwMCAwMTEwIDAwMDEgPSBmMDAwMTg2MQogICoKLSAqIEZJWE1FOiBDRkdfTEJDX1NEUkFNX0JBU0Ugc2hvdWxkIGJlIG1hc2tlZCBhbmQgT1InZWQgaW50bworICogRklYTUU6IENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0Ugc2hvdWxkIGJlIG1hc2tlZCBhbmQgT1InZWQgaW50bwogICogRklYTUU6IHRoZSB0b3AgMTcgYml0cyBvZiBCUjIuCiAgKi8KIAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTSAgICAgICAgICAweGYwMDAxODYxCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTSAgICAgICAgICAweGYwMDAxODYxCiAKIC8qCi0gKiBUaGUgU0RSQU0gc2l6ZSBpbiBNQiwgQ0ZHX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KKyAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KICAqCiAgKiBGb3IgT1IyLCBuZWVkOgogICogICAgNjRNQiBtYXNrIGZvciBBTSwgT1IyWzA6N10gPSAxMTExIDExMDAKQEAgLTE5NywzNSArMTk3LDM1IEBACiAgKiAxMTExIDExMDAgMDAwMCAwMDAwIDAxMTAgMTAwMSAwMDAwIDAwMDEgPSBmYzAwNjkwMQogICovCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweGZjMDA2OTAxCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MQ1JSCQkweDAwMDMwMDA0ICAgIC8qIExCIGNsb2NrIHJhdGlvIHJlZyAqLwotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAgICAgLyogTEIgY29uZmlnIHJlZyAqLwotI2RlZmluZSBDRkdfTEJDX0xTUlQJCTB4MjAwMDAwMDAgIC8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19NUlRQUgkJMHgwMDAwMDAwMCAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTENSUgkJMHgwMDAzMDAwNCAgICAvKiBMQiBjbG9jayByYXRpbyByZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMCAgICAvKiBMQiBjb25maWcgcmVnICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJCTB4MjAwMDAwMDAgIC8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJCTB4MDAwMDAwMDAgIC8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCovCiAKIC8qCiAgKiBMU0RNUiBtYXNrcwogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUkZFTgkoMSA8PCAoMzEgLSAgMSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQlNNQTE1MTYJKDMgPDwgKDMxIC0gMTApKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JTTUExNjE3CSg0IDw8ICgzMSAtIDEwKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkNSMTYJKDcgPDwgKDMxIC0gMTYpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1BSRVRPQUNUNwkoNyA8PCAoMzEgLSAxOSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQUNUVE9SVzcJKDcgPDwgKDMxIC0gMjIpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlc2CSg2IDw8ICgzMSAtIDIyKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CTDgJKDEgPDwgKDMxIC0gMjMpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1dSQzQJKDAgPDwgKDMxIC0gMjcpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0NMMwkoMyA8PCAoMzEgLSAzMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGRU4JKDEgPDwgKDMxIC0gIDEpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTUxNgkoMyA8PCAoMzEgLSAxMCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNjE3CSg0IDw8ICgzMSAtIDEwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUkZDUjE2CSg3IDw8ICgzMSAtIDE2KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1Q3CSg3IDw8ICgzMSAtIDE5KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzcJKDcgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNgkoNiA8PCAoMzEgLSAyMikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JMOAkoMSA8PCAoMzEgLSAyMykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1dSQzQJKDAgPDwgKDMxIC0gMjcpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DTDMJKDMgPDwgKDMxIC0gMzEpKQogCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTk9STUFMCSgwIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTVJXCSgzIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BQ1RCTksJKDYgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNICSgxIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKIAogLyoKICAqIENvbW1vbiBzZXR0aW5ncyBmb3IgYWxsIExvY2FsIEJ1cyBTRFJBTSBjb21tYW5kcy4KQEAgLTIzMywxMyArMjMzLDEzIEBACiAgKiAgICAgICAgICAgICAgICAgIG9yIEJTTUExNjE3IChmb3IgQ1BVIDEuMCkgKG9sZCkKICAqIGlzIE9SJ2VkIGluIHRvby4KICAqLwotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0NPTU1PTgkoIENGR19MQkNfTFNETVJfUkZDUjE2CQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX1BSRVRPQUNUNwlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0FDVFRPUlc3CVwKLQkJCQl8IENGR19MQkNfTFNETVJfQkw4CQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX1dSQzQJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfQ0wzCQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX1JGRU4JCVwKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OCSggQ09ORklHX1NZU19MQkNfTFNETVJfUkZDUjE2CQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9QUkVUT0FDVDcJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzcJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQkw4CQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkM0CQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DTDMJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1JGRU4JCVwKIAkJCQkpCiAKIC8qCkBAIC0yNzUsMzkgKzI3NSwzOSBAQAogI2RlZmluZSBDT05GSUdfRlNMX0NBRE1VUwogCiAjZGVmaW5lIENBRE1VU19CQVNFX0FERFIgMHhmODAwMDAwMAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTSAgIDB4ZjgwMDA4MDEKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0gICAweGZmZjAwZmY3CisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTSAgIDB4ZjgwMDA4MDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNICAgMHhmZmYwMGZmNwogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJICAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CSAgICAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkgICAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYICAgICAyCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRSAgICAxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEgICAgICAgIChDRkdfQ0NTUkJBUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIgICAgICAgIChDRkdfQ0NTUkJBUisweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xICAgICAgICAoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIgICAgICAgIChDT05GSUdfU1lTX0NDU1JCQVIrMHg0NjAwKQogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmICBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwpAQCAtMzE1LDggKzMxNSw4IEBACiAjZGVmaW5lIENPTkZJR19PRl9CT0FSRF9TRVRVUAkJMQogI2RlZmluZSBDT05GSUdfT0ZfU1RET1VUX1ZJQV9BTElBUwkxCiAKLSNkZWZpbmUgQ0ZHXzY0QklUX1ZTUFJJTlRGCTEKLSNkZWZpbmUgQ0ZHXzY0QklUX1NUUlRPVUwJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1ZTUFJJTlRGCTEKKyNkZWZpbmUgQ09ORklHX1NZU182NEJJVF9TVFJUT1VMCTEKIAogLyoKICAqIEkyQwpAQCAtMzI0LDM1ICszMjQsMzUgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMJCS8qIFVzZSBGU0wgY29tbW9uIEkyQyBkcml2ZXIgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0Ki8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUyAgICAgICAgezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMgICAgICAgIHsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAogCiAvKiBFRVBST00gKi8KICNkZWZpbmUgQ09ORklHX0lEX0VFUFJPTQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9DQ0lECi0jZGVmaW5lIENGR19JRF9FRVBST00KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUiAgICAgMHg1NwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAyCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9DQ0lECisjZGVmaW5lIENPTkZJR19TWVNfSURfRUVQUk9NCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSICAgICAweDU3CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAyCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCTB4ZTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCTB4ZTIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLwogCi0jZGVmaW5lIENGR19QQ0kyX01FTV9CQVNFCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1BIWVMJQ0ZHX1BDSTJfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kyX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9JT19QSFlTCTB4ZTIxMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fQkFTRQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19QSFlTCTB4ZTIxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLwogCiAjaWZkZWYgQ09ORklHX0xFR0FDWQogI2RlZmluZSBCUklER0VfSUQgMTcKQEAgLTM3Miw3ICszNzIsNyBAQAogI3VuZGVmIENPTkZJR19UVUxJUAogCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3ICAvKiBNb3Rvcm9sYSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3ICAvKiBNb3Rvcm9sYSAqLwogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwogCkBAIC00MDQsMTIgKzQwNCwxMiBAQAogICogRW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIDB4NDAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiAyNTZLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtNDQwLDI2ICs0NDAsMjYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJCS8qIENvbW1hbmQtbGluZSBlZGl0aW5nICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODU2MEFEUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzg1NjBBRFMuaAppbmRleCAyYmQ4NzI0Li41OWQwMjBjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODU2MEFEUy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4NTYwQURTLmgKQEAgLTc0LDIwICs3NCwyMCBAQAogI2RlZmluZSBDT05GSUdfQlRCCQkJLyogdG9nZ2xlIGJyYW5jaCBwcmVkaXRpb24gKi8KICNkZWZpbmUgQ09ORklHX0FERFJfU1RSRUFNSU5HCQkvKiB0b2dnbGUgYWRkciBzdHJlYW1pbmcgKi8KIAotI2RlZmluZSBDRkdfSU5JVF9EQkNSIERCQ1JfSURNCQkvKiBFbmFibGUgRGVidWcgRXhjZXB0aW9ucyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfREJDUiBEQkNSX0lETQkJLyogRW5hYmxlIERlYnVnIEV4Y2VwdGlvbnMgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCiAKIAogLyoKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9QSFlTCUNGR19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfSU1NUgkJQ0ZHX0NDU1JCQVIJLyogUFFJSSB1c2VzIENGR19JTU1SICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUwlDT05GSUdfU1lTX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDT05GSUdfU1lTX0lNTVIgKi8KIAogLyogRERSIFNldHVwICovCiAjZGVmaW5lIENPTkZJR19GU0xfRERSMQpAQCAtOTcsOCArOTcsOCBAQAogCiAjZGVmaW5lIENPTkZJR19NRU1fSU5JVF9WQUxVRQkJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKIAogI2RlZmluZSBDT05GSUdfTlVNX0REUl9DT05UUk9MTEVSUwkxCiAjZGVmaW5lIENPTkZJR19ESU1NX1NMT1RTX1BFUl9DVExSCTEKQEAgLTEwOCw0MiArMTA4LDQyIEBACiAjZGVmaW5lIFNQRF9FRVBST01fQUREUkVTUwkweDUxCS8qIENUTFIgMCBESU1NIDAgKi8KIAogLyogVGhlc2UgYXJlIHVzZWQgd2hlbiBERFIgZG9lc24ndCB1c2UgU1BELiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJMTI4CQkvKiBERFIgaXMgMTI4TUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkweDAwMDAwMDA3CS8qIDAtMTI4TUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQ09ORklHCTB4ODAwMDAwMDIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMQkweDM3MzQ0MzIxCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzIJMHgwMDAwMDgwMAkvKiBQOS00NSxtYXkgbmVlZCB0dW5pbmcgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DT05UUk9MCQkweGMyMDAwMDAwCS8qIHVuYnVmZmVyZWQsbm8gRFlOX1BXUiAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCTB4MDAwMDAwNjIJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUgKi8KLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkweDA1MjAwMTAwCS8qIGF1dG9jaGFyZ2Usbm8gb3BlbiBwYWdlICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkxMjgJCS8qIEREUiBpcyAxMjhNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUwkweDAwMDAwMDA3CS8qIDAtMTI4TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkweDgwMDAwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4MzczNDQzMjEKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgwMDAwMDgwMAkvKiBQOS00NSxtYXkgbmVlZCB0dW5pbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ09OVFJPTAkJMHhjMjAwMDAwMAkvKiB1bmJ1ZmZlcmVkLG5vIERZTl9QV1IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJMHgwMDAwMDA2MgkvKiBETEwsbm9ybWFsLHNlcSw0LzIuNSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkweDA1MjAwMTAwCS8qIGF1dG9jaGFyZ2Usbm8gb3BlbiBwYWdlICovCiAKIC8qCiAgKiBTRFJBTSBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZjAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAxNk0gKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCTB4ZmYwMDE4MDEJLyogcG9ydCBzaXplIDMyYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZjAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAxNk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweGZmMDAxODAxCS8qIHBvcnQgc2l6ZSAzMmJpdCAqLwogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweGZmMDA2ZmY3CS8qIDE2TUIgRmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGZmMDA2ZmY3CS8qIDE2TUIgRmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jdW5kZWYgIENGR19SQU1CT09UCisjdW5kZWYgIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAogI3VuZGVmIENPTkZJR19DTE9DS1NfSU5fTUhaCiAKQEAgLTE1NCw3ICsxNTQsNyBAQAogCiAvKgogICogQmFzZSBSZWdpc3RlciAyIGFuZCBPcHRpb24gUmVnaXN0ZXIgMiBjb25maWd1cmUgU0RSQU0uCi0gKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDRkdfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCisgKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgogICoKICAqIEZvciBCUjIsIG5lZWQ6CiAgKiAgICBCYXNlIGFkZHJlc3Mgb2YgMHhmMDAwMDAwMCA9IEJSWzA6MTZdID0gMTExMSAwMDAwIDAwMDAgMDAwMCAwCkBAIC0xNjYsMTQgKzE2NiwxNCBAQAogICogMCAgICA0ICAgIDggICAgMTIgICAxNiAgIDIwICAgMjQgICAyOAogICogMTExMSAwMDAwIDAwMDAgMDAwMCAwMDAxIDEwMDAgMDExMCAwMDAxID0gZjAwMDE4NjEKICAqCi0gKiBGSVhNRTogQ0ZHX0xCQ19TRFJBTV9CQVNFIHNob3VsZCBiZSBtYXNrZWQgYW5kIE9SJ2VkIGludG8KKyAqIEZJWE1FOiBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFIHNob3VsZCBiZSBtYXNrZWQgYW5kIE9SJ2VkIGludG8KICAqIEZJWE1FOiB0aGUgdG9wIDE3IGJpdHMgb2YgQlIyLgogICovCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4ZjAwMDE4NjEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkweGYwMDAxODYxCiAKIC8qCi0gKiBUaGUgU0RSQU0gc2l6ZSBpbiBNQiwgQ0ZHX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KKyAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KICAqCiAgKiBGb3IgT1IyLCBuZWVkOgogICogICAgNjRNQiBtYXNrIGZvciBBTSwgT1IyWzA6N10gPSAxMTExIDExMDAKQEAgLTE4Niw4NCArMTg2LDg0IEBACiAgKiAxMTExIDExMDAgMDAwMCAwMDAwIDAxMTAgMTAwMSAwMDAwIDAwMDEgPSBmYzAwNjkwMQogICovCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweGZjMDA2OTAxCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MQ1JSCQkweDAwMDMwMDA0ICAgIC8qIExCIGNsb2NrIHJhdGlvIHJlZyAqLwotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAgICAgLyogTEIgY29uZmlnIHJlZyAqLwotI2RlZmluZSBDRkdfTEJDX0xTUlQJCTB4MjAwMDAwMDAgICAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLwotI2RlZmluZSBDRkdfTEJDX01SVFBSCQkweDIwMDAwMDAwICAgIC8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xDUlIJCTB4MDAwMzAwMDQgICAgLyogTEIgY2xvY2sgcmF0aW8gcmVnICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJCTB4MDAwMDAwMDAgICAgLyogTEIgY29uZmlnIHJlZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU1JUCQkweDIwMDAwMDAwICAgIC8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJCTB4MjAwMDAwMDAgICAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsKi8KIAogLyoKICAqIExTRE1SIG1hc2tzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkVOCSgxIDw8ICgzMSAtICAxKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CU01BMTUxNgkoMyA8PCAoMzEgLSAxMCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQlNNQTE2MTcJKDQgPDwgKDMxIC0gMTApKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGQ1I1CSgzIDw8ICgzMSAtIDE2KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkNSMTYJKDcgPDwgKDMxIC0gMTYpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1BSRVRPQUNUMwkoMyA8PCAoMzEgLSAxOSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUFJFVE9BQ1Q3CSg3IDw8ICgzMSAtIDE5KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXMwkoMyA8PCAoMzEgLSAyMikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQUNUVE9SVzcJKDcgPDwgKDMxIC0gMjIpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlc2CSg2IDw8ICgzMSAtIDIyKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CTDgJKDEgPDwgKDMxIC0gMjMpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1dSQzIJKDIgPDwgKDMxIC0gMjcpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1dSQzQJKDAgPDwgKDMxIC0gMjcpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JVRkNNRAkoMSA8PCAoMzEgLSAyOSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQ0wzCSgzIDw8ICgzMSAtIDMxKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUkZFTgkoMSA8PCAoMzEgLSAgMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNTE2CSgzIDw8ICgzMSAtIDEwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE2MTcJKDQgPDwgKDMxIC0gMTApKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSNQkoMyA8PCAoMzEgLSAxNikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUMwkoMyA8PCAoMzEgLSAxOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUNwkoNyA8PCAoMzEgLSAxOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlczCSgzIDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzcJKDcgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNgkoNiA8PCAoMzEgLSAyMikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JMOAkoMSA8PCAoMzEgLSAyMykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1dSQzIJKDIgPDwgKDMxIC0gMjcpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkM0CSgwIDw8ICgzMSAtIDI3KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlVGQ01ECSgxIDw8ICgzMSAtIDI5KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQ0wzCSgzIDw8ICgzMSAtIDMxKSkKIAotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gJKDEgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9OT1JNQUwJKDAgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FDVEJOSwkoNiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DT01NT04JKCBDRkdfTEJDX0xTRE1SX0JTTUExNTE2CVwKLQkJCQl8IENGR19MQkNfTFNETVJfUkZDUjUJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfUFJFVE9BQ1QzCVwKLQkJCQl8IENGR19MQkNfTFNETVJfQUNUVE9SVzMJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9CTDgJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfV1JDMgkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9DTDMJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfUkZFTgkJXAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04JKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTUxNglcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSNQkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1QzCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlczCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0JMOAkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDMgkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQ0wzCQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkVOCQlcCiAJCQkJKQogCiAvKgogICogU0RSQU0gQ29udHJvbGxlciBjb25maWd1cmF0aW9uIHNlcXVlbmNlLgogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMQkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTCkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8yCQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfQVJGUlNIKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzMJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNAkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX01SVykKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl81CQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfTk9STUFMKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xCQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEwpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzIJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMwkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNIKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl80CQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlcpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzUJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTCkKIAogCiAvKgogICogMzJLQiwgOC1iaXQgd2lkZSBmb3IgQURTIGNvbmZpZyByZWcKICAqLwotI2RlZmluZSBDRkdfQlI0X1BSRUxJTSAgICAgICAgICAweGY4MDAwODAxCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCQkweGZmZmZlMWYxCi0jZGVmaW5lIENGR19CQ1NSCQkoQ0ZHX0JSNF9QUkVMSU0gJiAweGZmZmY4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0gICAgICAgICAgMHhmODAwMDgwMQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JCTB4ZmZmZmUxZjEKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSCQkoQ09ORklHX1NZU19CUjRfUFJFTElNICYgMHhmZmZmODAwMCkKIAogI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpICAgIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpICAgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgICAgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKiBTZXJpYWwgUG9ydCAqLwogI2RlZmluZSBDT05GSUdfQ09OU19PTl9TQ0MJLyogZGVmaW5lIGlmIGNvbnNvbGUgb24gU0NDICovCkBAIC0yNzIsMTMgKzI3MiwxMyBAQAogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwxMTUyMDB9CiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCkBAIC0yODYsOCArMjg2LDggQEAKICNkZWZpbmUgQ09ORklHX09GX0JPQVJEX1NFVFVQCQkxCiAjZGVmaW5lIENPTkZJR19PRl9TVERPVVRfVklBX0FMSUFTCTEKIAotI2RlZmluZSBDRkdfNjRCSVRfVlNQUklOVEYJMQotI2RlZmluZSBDRkdfNjRCSVRfU1RSVE9VTAkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwJMQogCiAvKgogICogSTJDCkBAIC0yOTUsMjYgKzI5NSwyNiBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTICAgICAgICB7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUyAgICAgICAgezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCiAKIC8qIFJhcGlkSU8gTU1VICovCi0jZGVmaW5lIENGR19SSU9fTUVNX0JBU0UJMHhjMDAwMDAwMAkvKiBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1JJT19NRU1fUEhZUwlDRkdfUklPX01FTV9CQVNFCi0jZGVmaW5lIENGR19SSU9fTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiAxMjhNICovCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9CQVNFCTB4YzAwMDAwMDAJLyogYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9QSFlTCUNPTkZJR19TWVNfUklPX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogMTI4TSAqLwogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIE1lbW9yeSBzcGFjZSBpcyBtYXBwZWQgMS0xLCBidXQgSS9PIHNwYWNlIG11c3Qgc3RhcnQgZnJvbSAwLgogICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCTB4ZTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MTAwMDAwCS8qIDFNICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAKQEAgLTMzMSw3ICszMzEsNyBAQAogI2VuZGlmCiAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KIAogI2VuZGlmCS8qIENPTkZJR19QQ0kgKi8KIApAQCAtMzczLDEwICszNzMsMTAgQEAKICAgICogLSBTZWxlY3QgYnVzIGZvciBiZC9idWZmZXJzCiAgICAqIC0gRnVsbCBkdXBsZXgKICAgICovCi0gICNkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLICAgICAgIChDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCi0gICNkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRSAgICAgIChDTVhGQ1JfUkYyQ1NfQ0xLMTMgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0gICNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFICAgIDAKLSAgI2RlZmluZSBDRkdfRkNDX1BTTVIgICAgICAgICAgKEZDQ19QU01SX0ZERSkKKyAgI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLICAgICAgIChDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCisgICNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUgICAgICAoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQorICAjZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUgICAgMAorICAjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIgICAgICAgICAgKEZDQ19QU01SX0ZERSkKICAgI2RlZmluZSBGRVRIMl9SU1QJCTB4MDEKICNlbGlmIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMykKICAgLyogbmVlZCBtb3JlIGRlZmluaXRpb25zIGhlcmUgZm9yIEZFMyAqLwpAQCAtNDExLDIwICs0MTEsMjAgQEAKIC8qCiAgKiBFbnZpcm9ubWVudAogICovCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogICAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQorICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKICAgI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCS8qIDI1Nksob25lIHNlY3RvcikgZm9yIGVudiAqLwogICAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZWxzZQotICAjZGVmaW5lIENGR19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLworICAjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cgKi8KICAgI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkgKi8KLSAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQogICAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtNDUyLDcgKzQ1Miw3IEBACiAgICAgI2RlZmluZSBDT05GSUdfQ01EX01JSQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogICAgICN1bmRlZiBDT05GSUdfQ01EX0VOVgogICAgICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTQ2MywyOCArNDYzLDI4IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCQkvKiBDb21tYW5kLWxpbmUgZWRpdGluZyAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0gICAgI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSAgICAjZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworICAgICNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODU2OE1EUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzg1NjhNRFMuaAppbmRleCAwNzYxMzdhLi41YzE0YWUzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODU2OE1EUy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4NTY4TURTLmgKQEAgLTcwLDIwICs3MCwyMCBAQAogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YJMQkvKiBDYWxsIGJvYXJkX3ByZV9pbml0ICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKIAogLyoKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9QSFlTCUNGR19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfSU1NUgkJQ0ZHX0NDU1JCQVIJLyogUFFJSSB1c2VzIENGR19JTU1SICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUwlDT05GSUdfU1lTX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDT05GSUdfU1lTX0lNTVIgKi8KIAotI2RlZmluZSBDRkdfUENJMV9BRERSICAgICAgICAgICAoQ0ZHX0NDU1JCQVIrMHg4MDAwKQotI2RlZmluZSBDRkdfUENJRTFfQUREUiAgICAgICAgICAoQ0ZHX0NDU1JCQVIrMHhhMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfQUREUiAgICAgICAgICAgKENPTkZJR19TWVNfQ0NTUkJBUisweDgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfQUREUiAgICAgICAgICAoQ09ORklHX1NZU19DQ1NSQkFSKzB4YTAwMCkKIAogLyogRERSIFNldHVwICovCiAjZGVmaW5lIENPTkZJR19GU0xfRERSMgpAQCAtOTUsOCArOTUsOCBAQAogCiAjZGVmaW5lIENPTkZJR19NRU1fSU5JVF9WQUxVRQkweERlYWRCZWVmCiAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKICNkZWZpbmUgQ09ORklHX0RJTU1fU0xPVFNfUEVSX0NUTFIJMQpAQCAtMTQ1LDcwICsxNDUsNzAgQEAKICAqIDAgICAgNCAgICA4ICAgIDEyICAgMTYgICAyMCAgIDI0ICAgMjgKICAqIDExMTEgMTExMSAxMDAwIDAwMDAgMDExMCAxMTEwIDAxMTAgMDEwMSA9IGZmODA2ZTY1ICAgIE9SeAogICovCi0jZGVmaW5lIENGR19CQ1NSX0JBU0UJCTB4ZjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSX0JBU0UJCTB4ZjgwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZTAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAzMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZlMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIIDMyTSAqLwogCiAvKkNoaXAgc2VsZWN0IDAgLSBGbGFzaCovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkweGZlMDAxMDAxCi0jZGVmaW5lCUNGR19PUjBfUFJFTElNCQkweGZlMDA2ZmY3CisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJMHhmZTAwMTAwMQorI2RlZmluZQlDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZmUwMDZmZjcKIAogLypDaGlwIHNsZWxlY3QgMSAtIEJDU1IqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhmODAwMDgwMQotI2RlZmluZQlDRkdfT1IxX1BSRUxJTQkJMHhmZmZmZTlmNworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCTB4ZjgwMDA4MDEKKyNkZWZpbmUJQ09ORklHX1NZU19PUjFfUFJFTElNCQkweGZmZmZlOWY3CiAKLS8qI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7MHhmZjgwMDAwMCwgQ0ZHX0ZMQVNIX0JBU0V9ICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTUxMgkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworLyojZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7MHhmZjgwMDAwMCwgQ09ORklHX1NZU19GTEFTSF9CQVNFfSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTUxMgkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCiAKIC8qCiAgKiBTRFJBTSBvbiB0aGUgTG9jYWxCdXMKICAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX0JBU0UJMHhmMDAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTQkgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9TSVpFCTY0CQkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRQkweGYwMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNCSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFCTY0CQkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KIAogCiAvKkNoaXAgc2VsZWN0IDIgLSBTRFJBTSovCi0jZGVmaW5lIENGR19CUjJfUFJFTElNICAgICAgMHhmMDAwMTg2MQotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhmYzAwNjkwMQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0gICAgICAweGYwMDAxODYxCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJMHhmYzAwNjkwMQogCi0jZGVmaW5lIENGR19MQkNfTENSUgkJMHgwMDAzMDAwNAkvKiBMQiBjbG9jayByYXRpbyByZWcgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MQkNSCQkweDAwMDAwMDAwCS8qIExCIGNvbmZpZyByZWcgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU1JUCQkweDIwMDAwMDAwCS8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19NUlRQUgkJMHgwMDAwMDAwMAkvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQ1JSCQkweDAwMDMwMDA0CS8qIExCIGNsb2NrIHJhdGlvIHJlZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQkNSCQkweDAwMDAwMDAwCS8qIExCIGNvbmZpZyByZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkJMHgyMDAwMDAwMAkvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX01SVFBSCQkweDAwMDAwMDAwCS8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCovCiAKIC8qCiAgKiBMU0RNUiBtYXNrcwogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUkZFTgkoMSA8PCAoMzEgLSAgMSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQlNNQTE1MTYJKDMgPDwgKDMxIC0gMTApKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JTTUExNjE3CSg0IDw8ICgzMSAtIDEwKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkNSMTYJKDcgPDwgKDMxIC0gMTYpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1BSRVRPQUNUNwkoNyA8PCAoMzEgLSAxOSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQUNUVE9SVzcJKDcgPDwgKDMxIC0gMjIpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlc2CSg2IDw8ICgzMSAtIDIyKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CTDgJKDEgPDwgKDMxIC0gMjMpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1dSQzQJKDAgPDwgKDMxIC0gMjcpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0NMMwkoMyA8PCAoMzEgLSAzMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGRU4JKDEgPDwgKDMxIC0gIDEpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTUxNgkoMyA8PCAoMzEgLSAxMCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNjE3CSg0IDw8ICgzMSAtIDEwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUkZDUjE2CSg3IDw8ICgzMSAtIDE2KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1Q3CSg3IDw8ICgzMSAtIDE5KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzcJKDcgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNgkoNiA8PCAoMzEgLSAyMikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JMOAkoMSA8PCAoMzEgLSAyMykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1dSQzQJKDAgPDwgKDMxIC0gMjcpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DTDMJKDMgPDwgKDMxIC0gMzEpKQogCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTk9STUFMCSgwIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTVJXCSgzIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BQ1RCTksJKDYgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNICSgxIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKIAogLyoKICAqIENvbW1vbiBzZXR0aW5ncyBmb3IgYWxsIExvY2FsIEJ1cyBTRFJBTSBjb21tYW5kcy4KQEAgLTIxNiwxMyArMjE2LDEzIEBACiAgKiAgICAgICAgICAgICAgICAgIG9yIEJTTUExNjE3IChmb3IgQ1BVIDEuMCkgKG9sZCkKICAqIGlzIE9SJ2VkIGluIHRvby4KICAqLwotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0NPTU1PTgkoIENGR19MQkNfTFNETVJfUkZDUjE2CQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX1BSRVRPQUNUNwlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0FDVFRPUlc3CVwKLQkJCQl8IENGR19MQkNfTFNETVJfQkw4CQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX1dSQzQJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfQ0wzCQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX1JGRU4JCVwKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OCSggQ09ORklHX1NZU19MQkNfTFNETVJfUkZDUjE2CQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9QUkVUT0FDVDcJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzcJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQkw4CQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkM0CQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DTDMJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1JGRU4JCVwKIAkJCQkpCiAKIC8qCkBAIC0yNTQsNDYgKzI1NCw0NiBAQAogICogMCAgICA0ICAgIDggICAgMTIgICAxNiAgIDIwICAgMjQgICAyOAogICogMTExMSAxMTExIDExMTEgMDAwMCAwMDAwIDExMTEgMTExMSAwMTExID0gZmZmMDBmZjcKICAqLwotI2RlZmluZSBDRkdfQkNTUiAoMHhmODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSICgweGY4MDAwMDAwKQogCiAvKkNoaXAgc2xlbGVjdCA0IC0gUElCKi8KLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0gICAweGY4MDA4ODAxCi0jZGVmaW5lIENGR19PUjRfUFJFTElNICAgMHhmZmZmZTlmNworI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0gICAweGY4MDA4ODAxCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTSAgIDB4ZmZmZmU5ZjcKIAogLypDaGlwIHNlbGVjdCA1IC0gUElCKi8KLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JIDB4ZjgwMTA4MDEKLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JIDB4ZmZmZjY5ZjcKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCSAweGY4MDEwODAxCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkgMHhmZmZmNjlmNwogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJICAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CSAgICAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkgICAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCQkxCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRSAgICAxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEgICAgICAgIChDRkdfQ0NTUkJBUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIgICAgICAgIChDRkdfQ0NTUkJBUisweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xICAgICAgICAoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIgICAgICAgIChDT05GSUdfU1lTX0NDU1JCQVIrMHg0NjAwKQogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCkBAIC0zMDEsOCArMzAxLDggQEAKICNkZWZpbmUgQ09ORklHX09GX0JPQVJEX1NFVFVQCQkxCiAjZGVmaW5lIENPTkZJR19PRl9TVERPVVRfVklBX0FMSUFTCTEKIAotI2RlZmluZSBDRkdfNjRCSVRfVlNQUklOVEYJMQotI2RlZmluZSBDRkdfNjRCSVRfU1RSVE9VTAkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwJMQogCiAvKgogICogSTJDCkBAIC0zMTIsMzIgKzMxMiwzMiBAQAogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkICovCiAjZGVmaW5lIENPTkZJR19JMkNfTVVMVElfQlVTCiAjZGVmaW5lIENPTkZJR19JMkNfQ01EX1RSRUUKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTIKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTICAgICAgICB7ezAsMHg2OX19CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKLSNkZWZpbmUgQ0ZHX0kyQzJfT0ZGU0VUCQkweDMxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUyAgICAgICAge3swLDB4Njl9fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCQkweDMxMDAKIAogLyoKICAqIEdlbmVyYWwgUENJCiAgKiBNZW1vcnkgQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLiBJL08gaXMgbWFwcGVkIGZyb20gMAogICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCTB4ZTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDAwODAwMDAwCS8qIDhNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCTB4ZTIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgwMDgwMDAwMAkvKiA4TSAqLwogCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fQkFTRQkweGEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fUEhZUwlDRkdfUENJRTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJRTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9JT19QSFlTCTB4ZTI4MDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX1NJWkUJMHgwMDgwMDAwMAkvKiA4TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFCTB4YTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfSU9fUEhZUwkweGUyODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfSU9fU0laRQkweDAwODAwMDAwCS8qIDhNICovCiAKLSNkZWZpbmUgQ0ZHX1NSSU9fTUVNX0JBU0UJMHhjMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NSSU9fTUVNX0JBU0UJMHhjMDAwMDAwMAogCiAjaWZkZWYgQ09ORklHX1FFCiAvKgpAQCAtMzU3LDIzICszNTcsMjMgQEAKICNkZWZpbmUgQ09ORklHX1VFQ19FVEgxICAgICAgICAgLyogR0VUSDEgKi8KIAogI2lmZGVmIENPTkZJR19VRUNfRVRIMQotI2RlZmluZSBDRkdfVUVDMV9VQ0NfTlVNICAgICAgICAwICAgICAgIC8qIFVDQzEgKi8KLSNkZWZpbmUgQ0ZHX1VFQzFfUlhfQ0xLICAgICAgICAgUUVfQ0xLX05PTkUKLSNkZWZpbmUgQ0ZHX1VFQzFfVFhfQ0xLICAgICAgICAgUUVfQ0xLMTYKLSNkZWZpbmUgQ0ZHX1VFQzFfRVRIX1RZUEUgICAgICAgR0lHQV9FVEgKLSNkZWZpbmUgQ0ZHX1VFQzFfUEhZX0FERFIgICAgICAgNwotI2RlZmluZSBDRkdfVUVDMV9JTlRFUkZBQ0VfTU9ERSBFTkVUXzEwMDBfUkdNSUlfSUQKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1VDQ19OVU0gICAgICAgIDAgICAgICAgLyogVUNDMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfUlhfQ0xLICAgICAgICAgUUVfQ0xLX05PTkUKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1RYX0NMSyAgICAgICAgIFFFX0NMSzE2CisjZGVmaW5lIENPTkZJR19TWVNfVUVDMV9FVEhfVFlQRSAgICAgICBHSUdBX0VUSAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfUEhZX0FERFIgICAgICAgNworI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfSU5URVJGQUNFX01PREUgRU5FVF8xMDAwX1JHTUlJX0lECiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfVUVDX0VUSDIgICAgICAgICAvKiBHRVRIMiAqLwogCiAjaWZkZWYgQ09ORklHX1VFQ19FVEgyCi0jZGVmaW5lIENGR19VRUMyX1VDQ19OVU0gICAgICAgIDEgICAgICAgLyogVUNDMiAqLwotI2RlZmluZSBDRkdfVUVDMl9SWF9DTEsgICAgICAgICBRRV9DTEtfTk9ORQotI2RlZmluZSBDRkdfVUVDMl9UWF9DTEsgICAgICAgICBRRV9DTEsxNgotI2RlZmluZSBDRkdfVUVDMl9FVEhfVFlQRSAgICAgICBHSUdBX0VUSAotI2RlZmluZSBDRkdfVUVDMl9QSFlfQUREUiAgICAgICAxCi0jZGVmaW5lIENGR19VRUMyX0lOVEVSRkFDRV9NT0RFIEVORVRfMTAwMF9SR01JSV9JRAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfVUNDX05VTSAgICAgICAgMSAgICAgICAvKiBVQ0MyICovCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9SWF9DTEsgICAgICAgICBRRV9DTEtfTk9ORQorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfVFhfQ0xLICAgICAgICAgUUVfQ0xLMTYKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX0VUSF9UWVBFICAgICAgIEdJR0FfRVRICisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9QSFlfQUREUiAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9JTlRFUkZBQ0VfTU9ERSBFTkVUXzEwMDBfUkdNSUlfSUQKICNlbmRpZgogI2VuZGlmIC8qIENPTkZJR19RRSAqLwogCkBAIC0zODYsMTIgKzM4NiwxMiBAQAogI3VuZGVmIENPTkZJR19UVUxJUAogCiAjdW5kZWYgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcgIC8qIE1vdG9yb2xhICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcgIC8qIE1vdG9yb2xhICovCiAKIC8qIFBDSSB2aWV3IG9mIFN5c3RlbSBNZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfQlVTICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9QSFlTICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1NJWkUgICAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUyAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUgICAgIDB4ODAwMDAwMDAKIAogI2VuZGlmCS8qIENPTkZJR19QQ0kgKi8KIApAQCAtNDI1LDEyICs0MjUsMTIgQEAKICAqIEVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDB4NDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogMjU2SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogCiAvKgpAQCAtNDYyLDI2ICs0NjIsMjYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJCS8qIENvbW1hbmQtbGluZSBlZGl0aW5nICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4NTcyRFMuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4NTcyRFMuaAppbmRleCA0MTE0YTQyLi4yZDA0NmFhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODU3MkRTLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzg1NzJEUy5oCkBAIC03NCwyMiArNzQsMjIgQEAKIAogI2RlZmluZSBDT05GSUdfRU5BQkxFXzM2QklUX1BIWVMJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4N2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDdmZmZmZmZmCiAjZGVmaW5lIENPTkZJR19QQU5JQ19IQU5HCS8qIGRvIG5vdCByZXNldCBib2FyZCBvbiBwYW5pYyAqLwogCiAvKgogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCi0jZGVmaW5lIENGR19DQ1NSQkFSCQkweGZmZTAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGZmZTAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUiAqLwogCi0jZGVmaW5lIENGR19QQ0lFM19BRERSCQkoQ0ZHX0NDU1JCQVIrMHg4MDAwKQotI2RlZmluZSBDRkdfUENJRTJfQUREUgkJKENGR19DQ1NSQkFSKzB4OTAwMCkKLSNkZWZpbmUgQ0ZHX1BDSUUxX0FERFIJCShDRkdfQ0NTUkJBUisweGEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTNfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUisweDgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUisweDkwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUisweGEwMDApCiAKIC8qIEREUiBTZXR1cCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0REUjIKQEAgLTEwMCw0OSArMTAwLDQ5IEBACiAKICNkZWZpbmUgQ09ORklHX01FTV9JTklUX1ZBTFVFCTB4RGVhZEJlZWYKIAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKIAogI2RlZmluZSBDT05GSUdfTlVNX0REUl9DT05UUk9MTEVSUwkyCiAjZGVmaW5lIENPTkZJR19ESU1NX1NMT1RTX1BFUl9DVExSCTEKICNkZWZpbmUgQ09ORklHX0NISVBfU0VMRUNUU19QRVJfQ1RSTAkyCiAKIC8qIEkyQyBhZGRyZXNzZXMgb2YgU1BEIEVFUFJPTXMgKi8KLSNkZWZpbmUgQ0ZHX1NQRF9CVVNfTlVNCQkxCS8qIFNQRCBFRVBST01TIGxvY2F0ZSBvbiBJMkMgYnVzIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUERfQlVTX05VTQkJMQkvKiBTUEQgRUVQUk9NUyBsb2NhdGUgb24gSTJDIGJ1cyAxICovCiAjZGVmaW5lIFNQRF9FRVBST01fQUREUkVTUzEJMHg1MQkvKiBDVExSIDAgRElNTSAwICovCiAjZGVmaW5lIFNQRF9FRVBST01fQUREUkVTUzIJMHg1MgkvKiBDVExSIDEgRElNTSAwICovCiAKIC8qIFRoZXNlIGFyZSB1c2VkIHdoZW4gRERSIGRvZXNuJ3QgdXNlIFNQRC4gICovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkyNTYJCS8qIEREUiBpcyAyNTZNQiAqLwotI2RlZmluZSBDRkdfRERSX0NTMF9CTkRTCTB4MDAwMDAwMUYKLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQ09ORklHCTB4ODAwMTAxMDIJLyogRW5hYmxlLCBubyBpbnRlcmxlYXZpbmcgKi8KLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzAJMHgwMDI2MDgwMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCTB4MzkzNWQzMjIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkweDE0OTA0Y2M4Ci0jZGVmaW5lIENGR19ERFJfTU9ERV8xCQkweDAwNDgwNDMyCi0jZGVmaW5lIENGR19ERFJfTU9ERV8yCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfSU5URVJWQUwJMHgwNjE4MDEwMAotI2RlZmluZSBDRkdfRERSX0RBVEFfSU5JVAkweGRlYWRiZWVmCi0jZGVmaW5lIENGR19ERFJfQ0xLX0NUUkwJMHgwMzgwMDAwMAotI2RlZmluZSBDRkdfRERSX09DRF9DVFJMCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9PQ0RfU1RBVFVTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9DT05UUk9MCQkweEMzMDA4MDAwCS8qIFR5cGUgPSBERFIyICovCi0jZGVmaW5lIENGR19ERFJfQ09OVFJPTDIJMHgwNDQwMDAxMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTI1NgkJLyogRERSIGlzIDI1Nk1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9CTkRTCTB4MDAwMDAwMUYKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkweDgwMDEwMTAyCS8qIEVuYWJsZSwgbm8gaW50ZXJsZWF2aW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzAJMHgwMDI2MDgwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkweDM5MzVkMzIyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCTB4MTQ5MDRjYzgKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERV8xCQkweDAwNDgwNDMyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREVfMgkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkweDA2MTgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0RBVEFfSU5JVAkweGRlYWRiZWVmCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NMS19DVFJMCTB4MDM4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfT0NEX0NUUkwJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9PQ0RfU1RBVFVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ09OVFJPTAkJMHhDMzAwODAwMAkvKiBUeXBlID0gRERSMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05UUk9MMgkweDA0NDAwMDEwCiAKLSNkZWZpbmUgQ0ZHX0REUl9FUlJfSU5UX0VOCTB4MDAwMDAwMGQKLSNkZWZpbmUgQ0ZHX0REUl9FUlJfRElTCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfU0JFCQkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0VSUl9JTlRfRU4JMHgwMDAwMDAwZAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9FUlJfRElTCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NCRQkJMHgwMDAxMDAwMAogCiAvKgogICogRklYTUU6IE5vdCB1c2VkIGluIGZpeGVkX3NkcmFtIGZ1bmN0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCQkweDAwMDAwMDIyCi0jZGVmaW5lIENGR19ERFJfQ1MxX0JORFMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX0NTMl9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzNfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCi0jZGVmaW5lIENGR19ERFJfQ1M0X0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLwotI2RlZmluZSBDRkdfRERSX0NTNV9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJMHgwMDAwMDAyMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzFfQk5EUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMl9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MzX0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzRfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTNV9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KIAogLyoKICAqIE1ha2Ugc3VyZSByZXF1aXJlZCBvcHRpb25zIGFyZSBzZXQKQEAgLTE3NSwzOCArMTc1LDM4IEBACiAvKgogICogTG9jYWwgQnVzIERlZmluaXRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZTAwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggMTI4TSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZTAwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggMTI4TSAqLwogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkweGU4MDAxMDAxCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweGY4MDAwZmY3CisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJMHhlODAwMTAwMQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZjgwMDBmZjcKIAotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhlMDAwMTAwMQotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJMHhmODAwMGZmNworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCTB4ZTAwMDEwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweGY4MDAwZmY3CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJe0NGR19GTEFTSF9CQVNFICsgMHg4MDAwMDAwLCBDRkdfRkxBU0hfQkFTRX0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXtDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDgwMDAwMDAsIENPTkZJR19TWVNfRkxBU0hfQkFTRX0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCiAjZGVmaW5lIENPTkZJR19GTEFTSF9TSE9XX1BST0dSRVNTIDQ1IC8qIGNvdW50IGRvd24gZnJvbSA0NS81OiA5Li4xICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEwMjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLwotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEwMjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCQkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FNRF9DSEVDS19EUTcKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQU1EX0NIRUNLX0RRNwogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IJLyogY2FsbCBib2FyZF9lYXJseV9pbml0X3IgZnVuY3Rpb24gKi8KIAogI2RlZmluZSBDT05GSUdfRlNMX1BJWElTCTEJLyogdXNlIGNvbW1vbiBQSVhJUyBjb2RlICovCiAjZGVmaW5lIFBJWElTX0JBU0UJMHhmZmRmMDAwMAkvKiBQSVhJUyByZWdpc3RlcnMgKi8KIAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoUElYSVNfQkFTRSB8IDB4MDgwMSkJLyogcG9ydCBzaXplIDhiaXQgKi8KLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JCTB4ZmZmZmVmZjcJLyogMzJLQiBidXQgb25seSA0ayBtYXBwZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCShQSVhJU19CQVNFIHwgMHgwODAxKQkvKiBwb3J0IHNpemUgOGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCTB4ZmZmZmVmZjcJLyogMzJLQiBidXQgb25seSA0ayBtYXBwZWQgKi8KIAogI2RlZmluZSBQSVhJU19JRAkJMHgwCS8qIEJvYXJkIElEIGF0IG9mZnNldCAwICovCiAjZGVmaW5lIFBJWElTX1ZFUgkJMHgxCS8qIEJvYXJkIHZlcnNpb24gYXQgb2Zmc2V0IDEgKi8KQEAgLTIzOCwyMCArMjM4LDIwIEBACiAvKiBvbGQgcGl4aXMgcmVmZXJlbmNlZCBuYW1lcyAqLwogI2RlZmluZSBQSVhJU19WQ0xLSAkJMHgxOQkvKiBWRUxBIFZDTEtIIHJlZ2lzdGVyICovCiAjZGVmaW5lIFBJWElTX1ZDTEtMCQkweDFBCS8qIFZFTEEgVkNMS0wgcmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX1BJWElTX1ZCT09UX01BU0sJMHhjMAorI2RlZmluZSBDT05GSUdfU1lTX1BJWElTX1ZCT09UX01BU0sJMHhjMAogCiAvKiBkZWZpbmUgdG8gdXNlIEwxIGFzIGluaXRpYWwgc3RhY2sgKi8KICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhmZmQwMDAwMAkvKiBJbml0aWFsIEwxIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDAwMDA0MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGZmZDAwMDAwCS8qIEluaXRpYWwgTDEgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDAwMDA0MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEwMjQgKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEwMjQgKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0IC0gY29udHJvbGxlZCBvbiBib2FyZCB3aXRoIGp1bXBlciBKOAogICogb3BlbiAtIGluZGV4IDIKQEAgLTI1OSwyMSArMjU5LDIxIEBACiAgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwxMTUyMDB9CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0NDU1JCQVIrMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfQ0NTUkJBUisweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0NDU1JCQVIrMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDYwMCkKIAogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKgpAQCAtMjgzLDggKzI4Myw4IEBACiAjZGVmaW5lIENPTkZJR19PRl9CT0FSRF9TRVRVUAkJMQogI2RlZmluZSBDT05GSUdfT0ZfU1RET1VUX1ZJQV9BTElBUwkxCiAKLSNkZWZpbmUgQ0ZHXzY0QklUX1ZTUFJJTlRGCTEKLSNkZWZpbmUgQ0ZHXzY0QklUX1NUUlRPVUwJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1ZTUFJJTlRGCTEKKyNkZWZpbmUgQ09ORklHX1NZU182NEJJVF9TVFJUT1VMCTEKIAogLyogbmV3IHVJbWFnZSBmb3JtYXQgc3VwcG9ydCAqLwogI2RlZmluZSBDT05GSUdfRklUCQkxCkBAIC0yOTYsMjMgKzI5NiwyMyBAQAogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJLyogSTJDIGJpdC1iYW5nZWQgKi8KICNkZWZpbmUgQ09ORklHX0kyQ19NVUxUSV9CVVMKICNkZWZpbmUgQ09ORklHX0kyQ19DTURfVFJFRQotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1NwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJe3swLDB4Mjl9fS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKLSNkZWZpbmUgQ0ZHX0kyQzJfT0ZGU0VUCQkweDMxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1NworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7ezAsMHgyOX19LyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkMyX09GRlNFVAkJMHgzMTAwCiAKIC8qCiAgKiBJMkMyIEVFUFJPTQogICovCiAjZGVmaW5lIENPTkZJR19JRF9FRVBST00KICNpZmRlZiBDT05GSUdfSURfRUVQUk9NCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX05YSUQKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX05YSUQKICNlbmRpZgotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTcKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQotI2RlZmluZSBDRkdfRUVQUk9NX0JVU19OVU0JMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDU3CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX0JVU19OVU0JMQogCiAvKgogICogR2VuZXJhbCBQQ0kKQEAgLTMyMCwzOCArMzIwLDM4IEBACiAgKi8KIAogLyogUENJIHZpZXcgb2YgU3lzdGVtIE1lbW9yeSAqLwotI2RlZmluZSBDRkdfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9QSFlTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfU0laRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFCTB4ODAwMDAwMDAKIAogLyogY29udHJvbGxlciAzLCBkaXJlY3QgdG8gdWxpLCB0Z3RpZCAzLCBCYXNlIGFkZHJlc3MgODAwMCAqLwotI2RlZmluZSBDRkdfUENJRTNfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTNfTUVNX1BIWVMJQ0ZHX1BDSUUzX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lFM19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSUUzX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTNfSU9fUEhZUwkweGZmYzAwMDAwCi0jZGVmaW5lIENGR19QQ0lFM19JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTNfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTCUNPTkZJR19TWVNfUENJRTNfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19JT19QSFlTCTB4ZmZjMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCiAKIC8qIGNvbnRyb2xsZXIgMiwgU2xvdCAyLCB0Z3RpZCAyLCBCYXNlIGFkZHJlc3MgOTAwMCAqLwotI2RlZmluZSBDRkdfUENJRTJfTUVNX0JBU0UJMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTJfTUVNX1BIWVMJQ0ZHX1BDSUUyX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lFMl9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSUUyX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTJfSU9fUEhZUwkweGZmYzEwMDAwCi0jZGVmaW5lIENGR19QQ0lFMl9JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfTUVNX0JBU0UJMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX01FTV9QSFlTCUNPTkZJR19TWVNfUENJRTJfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9JT19QSFlTCTB4ZmZjMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCiAKIC8qIGNvbnRyb2xsZXIgMSwgU2xvdCAxLCB0Z3RpZCAxLCBCYXNlIGFkZHJlc3MgYTAwMCAqLwotI2RlZmluZSBDRkdfUENJRTFfTUVNX0JBU0UJMHhjMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfTUVNX1BIWVMJQ0ZHX1BDSUUxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfSU9fUEhZUwkweGZmYzIwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UJMHhjMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTCTB4ZmZjMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAKIC8qUENJRSB2aWRlbyBjYXJkIHVzZWQqLwotI2RlZmluZSBWSURFT19JT19PRkZTRVQJCUNGR19QQ0lFMV9JT19QSFlTCisjZGVmaW5lIFZJREVPX0lPX09GRlNFVAkJQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTCiAKIC8qIHZpZGVvICovCiAjZGVmaW5lIENPTkZJR19WSURFTwpAQCAtMzY0LDcgKzM2NCw3IEBACiAjZGVmaW5lIENPTkZJR19BVElfUkFERU9OX0ZCCiAjZGVmaW5lIENPTkZJR19WSURFT19MT0dPCiAvKiNkZWZpbmUgQ09ORklHX0NPTlNPTEVfQ1VSU09SKi8KLSNkZWZpbmUgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgVklERU9fSU9fT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyBWSURFT19JT19PRkZTRVQKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkKQEAgLTM4MSw4ICszODEsOCBAQAogI2VuZGlmCiAKICNpZm5kZWYgQ09ORklHX1BDSV9QTlAKLQkjZGVmaW5lIFBDSV9FTkVUMF9JT0FERFIJQ0ZHX1BDSUUzX0lPX0JBU0UKLQkjZGVmaW5lIFBDSV9FTkVUMF9NRU1BRERSCUNGR19QQ0lFM19JT19CQVNFCisJI2RlZmluZSBQQ0lfRU5FVDBfSU9BRERSCUNPTkZJR19TWVNfUENJRTNfSU9fQkFTRQorCSNkZWZpbmUgUENJX0VORVQwX01FTUFERFIJQ09ORklHX1NZU19QQ0lFM19JT19CQVNFCiAJI2RlZmluZSBQQ0lfSURTRUxfTlVNQkVSCTB4MTEJLyogSURTRUwgPSBBRDExICovCiAjZW5kaWYKIApAQCAtMzkyLDEwICszOTIsMTAgQEAKIAogI2lmZGVmIENPTkZJR19TQ1NJX0FIQ0kKICNkZWZpbmUgQ09ORklHX1NBVEFfVUxJNTI4OAotI2RlZmluZSBDRkdfU0NTSV9NQVhfU0NTSV9JRAk0Ci0jZGVmaW5lIENGR19TQ1NJX01BWF9MVU4JMQotI2RlZmluZSBDRkdfU0NTSV9NQVhfREVWSUNFCShDRkdfU0NTSV9NQVhfU0NTSV9JRCAqIENGR19TQ1NJX01BWF9MVU4pCi0jZGVmaW5lIENGR19TQ1NJX01BWERFVklDRQlDRkdfU0NTSV9NQVhfREVWSUNFCisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhfU0NTSV9JRAk0CisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhfTFVOCTEKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0UJKENPTkZJR19TWVNfU0NTSV9NQVhfU0NTSV9JRCAqIENPTkZJR19TWVNfU0NTSV9NQVhfTFVOKQorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYREVWSUNFCUNPTkZJR19TWVNfU0NTSV9NQVhfREVWSUNFCiAjZW5kaWYgLyogU0NTSSAqLwogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwpAQCAtNDQyLDE2ICs0NDIsMTYgQEAKICAqIEVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+IDB4ZmZmODAwMDAKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+IDB4ZmZmODAwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkweGZmZjgwMDAwCiAjZWxzZQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgMHg3MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyAweDcwMDAwKQogI2VuZGlmCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAgLyogMTI4SyAob25lIHNlY3RvcikgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAvKgogICogQ29tbWFuZCBsaW5lIGNvbmZpZ3VyYXRpb24uCkBAIC00NzcsMjYgKzQ3NywyNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkJLyogQ29tbWFuZC1saW5lIGVkaXRpbmcgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4NjEwSFBDRC5oIGIvaW5jbHVkZS9jb25maWdzL01QQzg2MTBIUENELmgKaW5kZXggNGVlZTIxYy4uNjc4ZTFlMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzg2MTBIUENELmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzg2MTBIUENELmgKQEAgLTMxLDEwICszMSwxMCBAQAogI2VuZGlmCiAKICNpZmRlZiBSVU5fRElBRwotI2RlZmluZSBDRkdfRElBR19BRERSCQkweGZmODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRElBR19BRERSCQkweGZmODAwMDAwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmZjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmZjAwMTAwCiAKICNkZWZpbmUgQ09ORklHX1BDSQkJMQkvKiBFbmFibGUgUENJL1BDSUUqLwogI2RlZmluZSBDT05GSUdfUENJMQkJMQkvKiBQQ0kgY29udHJvbGVyIDEgKi8KQEAgLTUyLDcgKzUyLDcgQEAKIC8qCiAgKiBMMkNSIHNldHVwIC0tIG1ha2Ugc3VyZSB0aGlzIGlzIHJpZ2h0IGZvciB5b3VyIGJvYXJkIQogICovCi0jZGVmaW5lIENGR19MMgorI2RlZmluZSBDT05GSUdfU1lTX0wyCiAjZGVmaW5lIEwyX0lOSVQJCTAKICNkZWZpbmUgTDJfRU5BQkxFCShMMkNSX0wyRSB8MHgwMDEwMDAwMCApCiAKQEAgLTYzLDIyICs2MywyMiBAQAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCTEJLyogQ2FsbCBib2FyZF9wcmVfaW5pdCAqLwogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJCTEKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCiAKIC8qCiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDRkdfSU1NUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUiAqLwogCi0jZGVmaW5lIENGR19QQ0kxX0FERFIJCShDRkdfQ0NTUkJBUisweDgwMDApCi0jZGVmaW5lIENGR19QQ0lFMV9BRERSCQkoQ0ZHX0NDU1JCQVIrMHhhMDAwKQotI2RlZmluZSBDRkdfUENJRTJfQUREUgkJKENGR19DQ1NSQkFSKzB4OTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHg4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHhhMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHg5MDAwKQogCi0jZGVmaW5lIENGR19ESVVfQUREUgkJKENGR19DQ1NSQkFSKzB4MmMwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRElVX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHgyYzAwMCkKIAogLyogRERSIFNldHVwICovCiAjZGVmaW5lIENPTkZJR19GU0xfRERSMgpAQCAtODksOCArODksOCBAQAogI2RlZmluZSBDT05GSUdfRUNDX0lOSVRfVklBX0REUkNPTlRST0xMRVIJLyogRERSIGNvbnRyb2xsZXIgb3IgRE1BPyAqLwogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTQogCiAjZGVmaW5lIE1QQzg2eHhfRERSX1NEUkFNX0NMS19DTlRMCkBAIC0xMDIsNjQgKzEwMiw2NCBAQAogI2RlZmluZSBTUERfRUVQUk9NX0FERFJFU1MxCTB4NTEJLyogQ1RMUiAwIERJTU0gMCAqLwogCiAvKiBUaGVzZSBhcmUgdXNlZCB3aGVuIEREUiBkb2Vzbid0IHVzZSBTUEQuICAqLwotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkyNTYJCS8qIEREUiBpcyAyNTZNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJMjU2CQkvKiBERFIgaXMgMjU2TUIgKi8KIAogI2lmIDAgLyogVE9ETyAqLwotI2RlZmluZSBDRkdfRERSX0NTMF9CTkRTCTB4MDAwMDAwMEYKLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQ09ORklHCTB4ODAwMTAyMDIJLyogRW5hYmxlLCBubyBpbnRlcmxlYXZpbmcgKi8KLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzAJMHgwMDI2MDgwMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCTB4MzkzNWQzMjIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkweDE0OTA0Y2M4Ci0jZGVmaW5lIENGR19ERFJfTU9ERV8xCQkweDAwNDgwNDMyCi0jZGVmaW5lIENGR19ERFJfTU9ERV8yCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfSU5URVJWQUwJMHgwNjE4MDEwMAotI2RlZmluZSBDRkdfRERSX0RBVEFfSU5JVAkweGRlYWRiZWVmCi0jZGVmaW5lIENGR19ERFJfQ0xLX0NUUkwJMHgwMzgwMDAwMAotI2RlZmluZSBDRkdfRERSX09DRF9DVFJMCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9PQ0RfU1RBVFVTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9DT05UUk9MCQkweGUzMDA4MDAwCS8qIFR5cGUgPSBERFIyICovCi0jZGVmaW5lIENGR19ERFJfQ09OVFJPTDIJMHgwNDQwMDAxMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUwkweDAwMDAwMDBGCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9DT05GSUcJMHg4MDAxMDIwMgkvKiBFbmFibGUsIG5vIGludGVybGVhdmluZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18wCTB4MDAyNjA4MDIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzEJMHgzOTM1ZDMyMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMgkweDE0OTA0Y2M4CisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREVfMQkJMHgwMDQ4MDQzMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFXzIJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfSU5URVJWQUwJMHgwNjE4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9EQVRBX0lOSVQJMHhkZWFkYmVlZgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DTEtfQ1RSTAkweDAzODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX09DRF9DVFJMCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfT0NEX1NUQVRVUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTlRST0wJCTB4ZTMwMDgwMDAJLyogVHlwZSA9IEREUjIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ09OVFJPTDIJMHgwNDQwMDAxMAogCi0jZGVmaW5lIENGR19ERFJfRVJSX0lOVF9FTgkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfRVJSX0RJUwkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX1NCRQkJMHgwMDBmMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9FUlJfSU5UX0VOCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfRVJSX0RJUwkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TQkUJCTB4MDAwZjAwMDAKIAogLyoKICAqIEZJWE1FOiBOb3QgdXNlZCBpbiBmaXhlZF9zZHJhbSBmdW5jdGlvbgogICovCi0jZGVmaW5lIENGR19ERFJfTU9ERQkJMHgwMDAwMDAyMgotI2RlZmluZSBDRkdfRERSX0NTMV9CTkRTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9DUzJfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCi0jZGVmaW5lIENGR19ERFJfQ1MzX0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLwotI2RlZmluZSBDRkdfRERSX0NTNF9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzVfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCTB4MDAwMDAwMjIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MxX0JORFMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzJfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTM19CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1M0X0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzVfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCiAjZW5kaWYKIAogCiAjZGVmaW5lIENPTkZJR19JRF9FRVBST00KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fTlhJRAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fTlhJRAogI2RlZmluZSBDT05GSUdfSURfRUVQUk9NCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIgICAgIDB4NTcKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiAgICAgMHg1NworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQogCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZjAwMDAwMDAgLyogc3RhcnQgb2YgRkxBU0ggMTI4TSAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRTIJCTB4ZjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGYwMDAwMDAwIC8qIHN0YXJ0IG9mIEZMQVNIIDEyOE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFMgkJMHhmODAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUIHtDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UyfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1Qge0NPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFMn0KIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhmODAwMTAwMSAvKiBwb3J0IHNpemUgMTZiaXQgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCTB4ZjgwMDZlNjUgLyogMTI4TUIgTk9SIEZsYXNoKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweGY4MDAxMDAxIC8qIHBvcnQgc2l6ZSAxNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZjgwMDZlNjUgLyogMTI4TUIgTk9SIEZsYXNoKi8KIAotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhmMDAwMTAwMSAvKiBwb3J0IHNpemUgMTZiaXQgKi8KLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4ZjgwMDZlNjUgLyogMTI4TUIgUHJvbWpldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCTB4ZjAwMDEwMDEgLyogcG9ydCBzaXplIDE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhmODAwNmU2NSAvKiAxMjhNQiBQcm9tamV0ICovCiAjaWYgMCAvKiBUT0RPICovCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkweGYwMDAwMDAwCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkweGYwMDAwMDAwIC8qIDI1Nk1CIE5BTkQgRmxhc2ggLSBiYW5rIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkweGYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJMHhmMDAwMDAwMCAvKiAyNTZNQiBOQU5EIEZsYXNoIC0gYmFuayAxICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCTB4ZTgwMDA4MDEgLyogcG9ydCBzaXplIDhiaXQgKi8KLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JCTB4ZmZmMDZmZjcgLyogMU1CIFBJWElTIGFyZWEqLworI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCTB4ZTgwMDA4MDEgLyogcG9ydCBzaXplIDhiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkweGZmZjA2ZmY3IC8qIDFNQiBQSVhJUyBhcmVhKi8KIAogCiAjZGVmaW5lIENPTkZJR19GU0xfUElYSVMJMQkvKiB1c2UgY29tbW9uIFBJWElTIGNvZGUgKi8KQEAgLTE3OSw2NyArMTc5LDY3IEBACiAjZGVmaW5lIFBJWElTX1ZTUEVFRDEJCTB4MTgJLyogVkVMQSBWU3BlZWQgMSAqLwogI2RlZmluZSBQSVhJU19WQ0xLSAkJMHgxOQkvKiBWRUxBIFZDTEtIIHJlZ2lzdGVyICovCiAjZGVmaW5lIFBJWElTX1ZDTEtMCQkweDFBCS8qIFZFTEEgVkNMS0wgcmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX1BJWElTX1ZCT09UX01BU0sJMHgwQyAgICAvKiBSZXNldCBhbHRiYW5rIG1hc2sqLworI2RlZmluZSBDT05GSUdfU1lTX1BJWElTX1ZCT09UX01BU0sJMHgwQyAgICAvKiBSZXNldCBhbHRiYW5rIG1hc2sqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkJLyogbnVtYmVyIG9mIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMDI0CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkJLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTAyNAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCiAKLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmCUNGR19SQU1CT09UCisjdW5kZWYJQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAjdW5kZWYgQ09ORklHX1NQRF9FRVBST00KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkyNTYKICNlbmRpZgogCiAjdW5kZWYgQ09ORklHX0NMT0NLU19JTl9NSFoKIAogI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2lmbmRlZiBDRkdfSU5JVF9SQU1fTE9DSwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNpZm5kZWYgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KICNlbHNlCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ZTQwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhlNDAwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDUxMiAqIDEwMjQpCS8qIFJlc2VydmUgNTEyIEtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg2ICogMTAyNCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDUxMiAqIDEwMjQpCS8qIFJlc2VydmUgNTEyIEtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNiAqIDEwMjQgKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfQ0NTUkJBUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19DQ1NSQkFSKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0NDU1JCQVIrMHg0NjAwKQogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qCkBAIC0yNTMsOCArMjUzLDggQEAKIC8qIG1heGltdW0gc2l6ZSBvZiB0aGUgZmxhdCB0cmVlICg4SykgKi8KICNkZWZpbmUgT0ZfRkxBVF9UUkVFX01BWF9TSVpFCTgxOTIKIAotI2RlZmluZSBDRkdfNjRCSVRfVlNQUklOVEYJMQotI2RlZmluZSBDRkdfNjRCSVRfU1RSVE9VTAkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwJMQogCiAvKgogICogSTJDCkBAIC0yNjIsNDYgKzI2Miw0NiBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KICAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwkweGUxMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweGUxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KIAogLyogUENJIHZpZXcgb2YgU3lzdGVtIE1lbW9yeSAqLwotI2RlZmluZSBDRkdfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9QSFlTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfU0laRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFCTB4ODAwMDAwMDAKIAogLyogRm9yIFJUTDgxMzkgKi8KICNkZWZpbmUgS1NFRzFBRERSKHgpCSh7dTMyIF94ID0gbGUzMl90b19jcHUoKih1MzIgKikoeCkpOyAoJl94KTsgfSkKICNkZWZpbmUgX0lPX0JBU0UJCTB4MDAwMDAwMDAKIAogLyogY29udHJvbGxlciAxLCBCYXNlIGFkZHJlc3MgMHhhMDAwICovCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fQkFTRQkweGEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fUEhZUwlDRkdfUENJRTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJRTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9JT19QSFlTCTB4ZTMwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFCTB4YTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfSU9fUEhZUwkweGUzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCiAKIC8qIGNvbnRyb2xsZXIgMiwgQmFzZSBBZGRyZXNzIDB4OTAwMCAqLwotI2RlZmluZSBDRkdfUENJRTJfTUVNX0JBU0UJMHg5MDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTJfTUVNX1BIWVMJQ0ZHX1BDSUUyX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lFMl9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSUUyX0lPX0JBU0UJMHgwMDAwMDAwMAkvKiByZXVzZSBtZW0gTEFXICovCi0jZGVmaW5lIENGR19QQ0lFMl9JT19QSFlTCTB4ZTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUyX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX01FTV9CQVNFCTB4OTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSUUyX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfSU9fQkFTRQkweDAwMDAwMDAwCS8qIHJldXNlIG1lbSBMQVcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9JT19QSFlTCTB4ZTIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KIAogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQpAQCAtMzI0LDExICszMjQsMTEgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9PSENJCQkxCiAjZGVmaW5lIENPTkZJR19VU0JfT0hDSV9ORVcJCTEKICNkZWZpbmUgQ09ORklHX1VTQl9LRVlCT0FSRAkxCi0jZGVmaW5lIENGR19ERVZJQ0VfREVSRUdJU1RFUgotI2RlZmluZSBDRkdfVVNCX0VWRU5UX1BPTEwJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FCSJvaGNpX3BjaSIKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTIDE1Ci0jZGVmaW5lIENGR19PSENJX1NXQVBfUkVHX0FDQ0VTUwkxCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX0RFUkVHSVNURVIKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfRVZFTlRfUE9MTAkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCSJvaGNpX3BjaSIKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUyAxNQorI2RlZmluZSBDT05GSUdfU1lTX09IQ0lfU1dBUF9SRUdfQUNDRVNTCTEKIAogI2lmICFkZWZpbmVkKENPTkZJR19QQ0lfUE5QKQogI2RlZmluZSBQQ0lfRU5FVDBfSU9BRERSCTB4ZTAwMDAwMDAKQEAgLTM0MSwxMCArMzQxLDEwIEBACiAKICNpZmRlZiBDT05GSUdfU0NTSV9BSENJCiAjZGVmaW5lIENPTkZJR19TQVRBX1VMSTUyODgKLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX1NDU0lfSUQJNAotI2RlZmluZSBDRkdfU0NTSV9NQVhfTFVOCTEKLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX0RFVklDRQkoQ0ZHX1NDU0lfTUFYX1NDU0lfSUQgKiBDRkdfU0NTSV9NQVhfTFVOKQotI2RlZmluZSBDRkdfU0NTSV9NQVhERVZJQ0UJQ0ZHX1NDU0lfTUFYX0RFVklDRQorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQJNAorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTgkxCisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhfREVWSUNFCShDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQgKiBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTikKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWERFVklDRQlDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRQogI2VuZGlmCiAKICNlbmRpZgkvKiBDT05GSUdfUENJICovCkBAIC0zNTMsMTAgKzM1MywxMCBAQAogICogQkFUMAkJMkcJQ2FjaGVhYmxlLCBub24tZ3VhcmRlZAogICogMHgwMDAwXzAwMDAJMkcJRERSCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQwTAkoQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfREJBVDBVCShCQVRVX0JMXzJHIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMEwJKEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSApCi0jZGVmaW5lIENGR19JQkFUMFUJQ0ZHX0RCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAkoQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQkoQkFUVV9CTF8yRyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFICkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUJQ09ORklHX1NZU19EQkFUMFUKIAogLyoKICAqIEJBVDEJCTFHCUNhY2hlLWluaGliaXRlZCwgZ3VhcmRlZApAQCAtMzY1LDIyICszNjUsMjIgQEAKICAqIDB4OTAwMF8wMDAwCTI1Nk0JUENJLUV4cHJlc3MgMiBNZW1vcnkKICAqLwogCi0jZGVmaW5lIENGR19EQkFUMUwJKENGR19QQ0kxX01FTV9QSFlTIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIFwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCBcCiAJCQl8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMVUJKENGR19QQ0kxX01FTV9QSFlTIHwgQkFUVV9CTF8xRyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDFMCShDRkdfUENJMV9NRU1fUEhZUyB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQlDRkdfREJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVCShDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgfCBCQVRVX0JMXzFHIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCShDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCUNPTkZJR19TWVNfREJBVDFVCiAKIC8qCiAgKiBCQVQyCQkxNk0JQ2FjaGUtaW5oaWJpdGVkLCBndWFyZGVkCiAgKiAweGUxMDBfMDAwMAkxTQlQQ0ktMSBJL08KICAqLwogCi0jZGVmaW5lIENGR19EQkFUMkwJKENGR19QQ0kxX0lPX1BIWVMgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAkoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgXAogCQkJfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDJVCShDRkdfUENJMV9JT19QSFlTIHwgQkFUVV9CTF8xNk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQyTAkoQ0ZHX1BDSTFfSU9fUEhZUyB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVQlDRkdfREJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCShDT05GSUdfU1lTX1BDSTFfSU9fUEhZUyB8IEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX1BDSTFfSU9fUEhZUyB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJQ09ORklHX1NZU19EQkFUMlUKIAogLyoKICAqIEJBVDMJCTMyTQlDYWNoZS1pbmhpYml0ZWQsIGd1YXJkZWQKQEAgLTM4OCw2OCArMzg4LDY4IEBACiAgKiAweGUzMDBfMDAwMAkxTQlQQ0ktRXhwcmVzcyAxIEkvTwogICovCiAKLSNkZWZpbmUgQ0ZHX0RCQVQzTAkoQ0ZHX1BDSUUyX0lPX1BIWVMgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAkoQ09ORklHX1NZU19QQ0lFMl9JT19QSFlTIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIFwKIAkJCXwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQzVQkoQ0ZHX1BDSUUyX0lPX1BIWVMgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDNMCShDRkdfUENJRTJfSU9fUEhZUyB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQlDRkdfREJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVCShDT05GSUdfU1lTX1BDSUUyX0lPX1BIWVMgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkoQ09ORklHX1NZU19QQ0lFMl9JT19QSFlTIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQlDT05GSUdfU1lTX0RCQVQzVQogCiAvKgogICogQkFUNAkJNE0JQ2FjaGUtaW5oaWJpdGVkLCBndWFyZGVkCiAgKiAweGUwMDBfMDAwMAk0TQlDQ1NSCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQ0TAkoQ0ZHX0NDU1JCQVIgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0TAkoQ09ORklHX1NZU19DQ1NSQkFSIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIFwKIAkJCXwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQ0VQkoQ0ZHX0NDU1JCQVIgfCBCQVRVX0JMXzFNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUNEwJKENGR19DQ1NSQkFSIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDRVCUNGR19EQkFUNFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNFUJKENPTkZJR19TWVNfQ0NTUkJBUiB8IEJBVFVfQkxfMU0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwJKENPTkZJR19TWVNfQ0NTUkJBUiB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJQ09ORklHX1NZU19EQkFUNFUKIAogLyoKICAqIEJBVDUJCTEyOEsJQ2FjaGVhYmxlLCBub24tZ3VhcmRlZAogICogMHhlNDAwXzAwMDAJMTI4SwlJbml0IFJBTSBmb3Igc3RhY2sgaW4gdGhlIENQVSBEQ2FjaGUgKG5vIGJhY2tpbmcgbWVtb3J5KQogICovCi0jZGVmaW5lIENGR19EQkFUNUwJKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfREJBVDVVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDVMCUNGR19EQkFUNUwKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQlDRkdfREJBVDVVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVVCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNUwJQ09ORklHX1NZU19EQkFUNUwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNVUJQ09ORklHX1NZU19EQkFUNVUKIAogLyoKICAqIEJBVDYJCTI1Nk0JQ2FjaGUtaW5oaWJpdGVkLCBndWFyZGVkCiAgKiAweGYwMDBfMDAwMAkyNTZNCUZMQVNICiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQ2TAkoQ0ZHX0ZMQVNIX0JBU0UJIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIFwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNkwJKENPTkZJR19TWVNfRkxBU0hfQkFTRQkgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgXAogCQkJfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDZVCShDRkdfRkxBU0hfQkFTRQkgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkoQ0ZHX0ZMQVNIX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUNlUJQ0ZHX0RCQVQ2VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQkoQ09ORklHX1NZU19GTEFTSF9CQVNFCSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VQlDT05GSUdfU1lTX0RCQVQ2VQogCiAvKgogICogQkFUNwkJNE0JQ2FjaGUtaW5oaWJpdGVkLCBndWFyZGVkCiAgKiAweGU4MDBfMDAwMAk0TQlQSVhJUwogICovCi0jZGVmaW5lIENGR19EQkFUN0wJKFBJWElTX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TAkoUElYSVNfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCBcCiAJCQl8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUN1UJKFBJWElTX0JBU0UgfCBCQVRVX0JMXzFNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUN0wJKFBJWElTX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUN1UJQ0ZHX0RCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VQkoUElYSVNfQkFTRSB8IEJBVFVfQkxfMU0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN0wJKFBJWElTX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVCUNPTkZJR19TWVNfREJBVDdVCiAKIAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAJLyogMTI2ayAob25lIHNlY3RvcikgZm9yIGVudiAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2Vsc2UKICNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogCiAvKgpAQCAtNDcwLDcgKzQ3MCw3IEBACiAjZGVmaW5lIENPTkZJR19DTURfSTJDCiAjZGVmaW5lIENPTkZJR19DTURfTUlJCiAKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogI3VuZGVmIENPTkZJR19DTURfRU5WCiAjZW5kaWYKIApAQCAtNDgzLDcgKzQ4Myw3IEBACiAKIAogI2RlZmluZSBDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBlbmFibGVkICovCi0jZGVmaW5lIENGR19XQVRDSERPR19GUkVRCTUwMDAJLyogRmVlZCBpbnRlcnZhbCwgNXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19XQVRDSERPR19GUkVRCTUwMDAJLyogRmVlZCBpbnRlcnZhbCwgNXMgKi8KIAogLypESVUgQ29uZmlndXJhdGlvbiovCiAjZGVmaW5lIERJVV9DT05ORUNUX1RPX0RWSQkJLyogRElVIGNvbnRyb2xsZXIgY29ubmVjdHMgdG8gRFZJIGVuY29kZXIqLwpAQCAtNDkxLDI4ICs0OTEsMjggQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcgICAgICAgICAgLyogQ29tbWFuZC1saW5lIGVkaXRpbmcgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODY0MUhQQ04uaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4NjQxSFBDTi5oCmluZGV4IGZjNTVmZWIuLmU1NzEwYzAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4NjQxSFBDTi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4NjQxSFBDTi5oCkBAIC00MCwxMCArNDAsMTAgQEAKICNkZWZpbmUgQ09ORklHX0xJTlVYX1JFU0VUX1ZFQwkweDEwMAkvKiBSZXNldCB2ZWN0b3IgdXNlZCBieSBMaW51eCAqLwogCiAjaWZkZWYgUlVOX0RJQUcKLSNkZWZpbmUgQ0ZHX0RJQUdfQUREUgkgICAgIDB4ZmY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ESUFHX0FERFIJICAgICAweGZmODAwMDAwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUyAgICAweGZmZjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAgICAweGZmZjAwMTAwCiAKICNkZWZpbmUgQ09ORklHX1BDSQkJMQkvKiBFbmFibGUgUENJL1BDSUUgKi8KICNkZWZpbmUgQ09ORklHX1BDSTEJCTEJLyogUENJRSBjb250cm9sZXIgMSAoVUxJIGJyaWRnZSkgKi8KQEAgLTYxLDcgKzYxLDcgQEAKIC8qCiAgKiBMMkNSIHNldHVwIC0tIG1ha2Ugc3VyZSB0aGlzIGlzIHJpZ2h0IGZvciB5b3VyIGJvYXJkIQogICovCi0jZGVmaW5lIENGR19MMgorI2RlZmluZSBDT05GSUdfU1lTX0wyCiAjZGVmaW5lIEwyX0lOSVQJCTAKICNkZWZpbmUgTDJfRU5BQkxFCShMMkNSX0wyRSkKIApAQCAtNzQsMTkgKzc0LDE5IEBACiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgkxCS8qIENhbGwgYm9hcmRfcHJlX2luaXQgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCiAKIC8qCiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVIJCTB4ZjgwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDRkdfSU1NUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJCTB4ZjgwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUiAqLwogCi0jZGVmaW5lIENGR19QQ0kxX0FERFIJCShDRkdfQ0NTUkJBUisweDgwMDApCi0jZGVmaW5lIENGR19QQ0kyX0FERFIJCShDRkdfQ0NTUkJBUisweDkwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9BRERSCQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4ODAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHg5MDAwKQogCiAvKgogICogRERSIFNldHVwCkBAIC05OSw4ICs5OSw4IEBACiAjZGVmaW5lIENPTkZJR19FQ0NfSU5JVF9WSUFfRERSQ09OVFJPTExFUgkvKiBERFIgY29udHJvbGxlciBvciBETUE/ICovCiAjZGVmaW5lIENPTkZJR19NRU1fSU5JVF9WQUxVRQkweERlYWRCZWVmCiAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNCiAKICNkZWZpbmUgTVBDODZ4eF9ERFJfU0RSQU1fQ0xLX0NOVEwKQEAgLTEyMSwzOSArMTIxLDM5IEBACiAvKgogICogVGhlc2UgYXJlIHVzZWQgd2hlbiBERFIgZG9lc24ndCB1c2UgU1BELgogICovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkyNTYJCS8qIEREUiBpcyAyNTZNQiAqLwotI2RlZmluZSBDRkdfRERSX0NTMF9CTkRTCTB4MDAwMDAwMEYKLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQ09ORklHCTB4ODAwMTAxMDIgICAgICAvKiBFbmFibGUsIG5vIGludGVybGVhdmluZyAqLwotI2RlZmluZSBDRkdfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMAkweDAwMjYwODAyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJMHgzOTM1NzMyMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MTQ5MDRjYzgKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFXzEJCTB4MDA0ODA0MzIKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFXzIJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkweDA2MDkwMTAwCi0jZGVmaW5lIENGR19ERFJfREFUQV9JTklUCTB4ZGVhZGJlZWYKLSNkZWZpbmUgQ0ZHX0REUl9DTEtfQ1RSTAkweDAzODAwMDAwCi0jZGVmaW5lIENGR19ERFJfT0NEX0NUUkwJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX09DRF9TVEFUVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX0NPTlRST0wJCTB4ZTMwMDgwMDAJLyogVHlwZSA9IEREUjIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DT05UUk9MMgkweDA0NDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMjU2CQkvKiBERFIgaXMgMjU2TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwRgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHCTB4ODAwMTAxMDIgICAgICAvKiBFbmFibGUsIG5vIGludGVybGVhdmluZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18wCTB4MDAyNjA4MDIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzEJMHgzOTM1NzMyMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMgkweDE0OTA0Y2M4CisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREVfMQkJMHgwMDQ4MDQzMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFXzIJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfSU5URVJWQUwJMHgwNjA5MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9EQVRBX0lOSVQJMHhkZWFkYmVlZgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DTEtfQ1RSTAkweDAzODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX09DRF9DVFJMCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfT0NEX1NUQVRVUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTlRST0wJCTB4ZTMwMDgwMDAJLyogVHlwZSA9IEREUjIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ09OVFJPTDIJMHgwNDQwMDAwMAogCiAvKgogICogRklYTUU6IE5vdCB1c2VkIGluIGZpeGVkX3NkcmFtIGZ1bmN0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCQkweDAwMDAwMDIyCi0jZGVmaW5lIENGR19ERFJfQ1MxX0JORFMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX0NTMl9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzNfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCi0jZGVmaW5lIENGR19ERFJfQ1M0X0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLwotI2RlZmluZSBDRkdfRERSX0NTNV9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJMHgwMDAwMDAyMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzFfQk5EUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMl9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MzX0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzRfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTNV9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KIAogCiAjZGVmaW5lIENPTkZJR19JRF9FRVBST00KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fTlhJRAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fTlhJRAogI2RlZmluZSBDT05GSUdfSURfRUVQUk9NCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIgICAgIDB4NTcKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiAgICAgMHg1NworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQogCiAvKgogICogSW4gTVBDODY0MUhQQ04sIGFsbG9jYXRlIDE2TUIgZmxhc2ggc3BhY2VzIGF0IGZlMDAwMDAwIGFuZCBmZjAwMDAwMC4KQEAgLTE2NywyMiArMTY3LDIyIEBACiAgKgogICogTm90ZSB0aGF0LCBvbiBzd2l0Y2hpbmcgdGhlIGJvb3QgbG9jYXRpb24sIGZlZjAwMDAwIGJlY29tZXMgZmZmMDAwMDAuCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmU4MDAwMDAgICAgIC8qIHN0YXJ0IG9mIEZMQVNIIDMyTSAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRTIJCTB4ZmY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZlODAwMDAwICAgICAvKiBzdGFydCBvZiBGTEFTSCAzMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFMgkJMHhmZjgwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUIHtDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UyfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1Qge0NPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFMn0KIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhmZjAwMTAwMQkvKiBwb3J0IHNpemUgMTZiaXQgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCTB4ZmYwMDZmZjcJLyogMTZNQiBCb290IEZsYXNoIGFyZWEqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4ZmYwMDEwMDEJLyogcG9ydCBzaXplIDE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhmZjAwNmZmNwkvKiAxNk1CIEJvb3QgRmxhc2ggYXJlYSovCiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCTB4ZmUwMDEwMDEJLyogcG9ydCBzaXplIDE2Yml0ICovCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkweGZmMDA2ZmY3CS8qIDE2TUIgQWx0ZXJuYXRlIEJvb3QgRmxhc2ggYXJlYSovCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJMHhmZTAwMTAwMQkvKiBwb3J0IHNpemUgMTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweGZmMDA2ZmY3CS8qIDE2TUIgQWx0ZXJuYXRlIEJvb3QgRmxhc2ggYXJlYSovCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4ZjgyMDEwMDEJLyogcG9ydCBzaXplIDE2Yml0ICovCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkweGZmZjA2ZmY3CS8qIDFNQiBDb21wYWN0IEZsYXNoIGFyZWEqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4ZjgyMDEwMDEJLyogcG9ydCBzaXplIDE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJMHhmZmYwNmZmNwkvKiAxTUIgQ29tcGFjdCBGbGFzaCBhcmVhKi8KIAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkJMHhmODEwMDgwMQkvKiBwb3J0IHNpemUgOGJpdCAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJMHhmZmYwNmZmNwkvKiAxTUIgUElYSVMgYXJlYSovCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkJMHhmODEwMDgwMQkvKiBwb3J0IHNpemUgOGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCTB4ZmZmMDZmZjcJLyogMU1CIFBJWElTIGFyZWEqLwogCiAKICNkZWZpbmUgQ09ORklHX0ZTTF9QSVhJUwkxCS8qIHVzZSBjb21tb24gUElYSVMgY29kZSAqLwpAQCAtMjAxLDY3ICsyMDEsNjcgQEAKICNkZWZpbmUgUElYSVNfVlNQRUVEMQkJMHgxOAkvKiBWRUxBIFZTcGVlZCAxICovCiAjZGVmaW5lIFBJWElTX1ZDTEtICQkweDE5CS8qIFZFTEEgVkNMS0ggcmVnaXN0ZXIgKi8KICNkZWZpbmUgUElYSVNfVkNMS0wJCTB4MUEJLyogVkVMQSBWQ0xLTCByZWdpc3RlciAqLwotI2RlZmluZSBDRkdfUElYSVNfVkJPT1RfTUFTSwkweDQwCS8qIFJlc2V0IGFsdGJhbmsgbWFzayovCisjZGVmaW5lIENPTkZJR19TWVNfUElYSVNfVkJPT1RfTUFTSwkweDQwCS8qIFJlc2V0IGFsdGJhbmsgbWFzayovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCiAKLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmCUNGR19SQU1CT09UCisjdW5kZWYJQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAjdW5kZWYgQ09ORklHX1NQRF9FRVBST00KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkyNTYKICNlbmRpZgogCiAjdW5kZWYgQ09ORklHX0NMT0NLU19JTl9NSFoKIAogI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2lmbmRlZiBDRkdfSU5JVF9SQU1fTE9DSwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDBmZDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNpZm5kZWYgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDBmZDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KICNlbHNlCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4Zjg0MDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhmODQwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkJIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTAyNCAqIDEwMjQpCSAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYICAgICAxCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19DQ1NSQkFSKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyoKQEAgLTI3Miw4ICsyNzIsOCBAQAogI2RlZmluZSBDT05GSUdfT0ZfU1RET1VUX1ZJQV9BTElBUwkxCiAKIAotI2RlZmluZSBDRkdfNjRCSVRfVlNQUklOVEYJMQotI2RlZmluZSBDRkdfNjRCSVRfU1RSVE9VTAkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwJMQogCiAvKgogICogSTJDCkBAIC0yODEsNTAgKzI4MSw1MCBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMTAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzEwMAogCiAvKgogICogUmFwaWRJTyBNTVUKICAqLwotI2RlZmluZSBDRkdfUklPX01FTV9CQVNFCTB4YzAwMDAwMDAJLyogYmFzZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19SSU9fTUVNX1BIWVMJQ0ZHX1JJT19NRU1fQkFTRQotI2RlZmluZSBDRkdfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogMTI4TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fQkFTRQkweGMwMDAwMDAwCS8qIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fUEhZUwlDT05GSUdfU1lTX1JJT19NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDEyOE0gKi8KIAogLyoKICAqIEdlbmVyYWwgUENJCiAgKiBBZGRyZXNzZXMgYXJlIG1hcHBlZCAxLTEuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fUEhZUwlDRkdfUENJMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1BIWVMJMHhlMjAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMJMHhlMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCiAKIC8qIFBDSSB2aWV3IG9mIFN5c3RlbSBNZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1NJWkUJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRQkweDgwMDAwMDAwCiAKIC8qIEZvciBSVEw4MTM5ICovCiAjZGVmaW5lIEtTRUcxQUREUih4KQkJKHt1MzIgX3g9bGUzMl90b19jcHUoKih1MzIgKikoeCkpOyAoJl94KTt9KQogI2RlZmluZSBfSU9fQkFTRQkJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19QQ0kyX01FTV9CQVNFCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1BIWVMJQ0ZHX1BDSTJfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kyX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9JT19QSFlTCTB4ZTMwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fQkFTRQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19QSFlTCTB4ZTMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQogCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KIAotI3VuZGVmIENGR19TQ1NJX1NDQU5fQlVTX1JFVkVSU0UKKyN1bmRlZiBDT05GSUdfU1lTX1NDU0lfU0NBTl9CVVNfUkVWRVJTRQogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkKICNkZWZpbmUgQ09ORklHX1BDSV9QTlAJCQkvKiBkbyBwY2kgcGx1Zy1hbmQtcGxheSAqLwpAQCAtMzQwLDExICszNDAsMTEgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9PSENJCQkJMQogI2RlZmluZSBDT05GSUdfVVNCX09IQ0lfTkVXCQkxCiAjZGVmaW5lIENPTkZJR19VU0JfS0VZQk9BUkQJCTEKLSNkZWZpbmUgQ0ZHX0RFVklDRV9ERVJFR0lTVEVSCi0jZGVmaW5lIENGR19VU0JfRVZFTlRfUE9MTAkJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FCQkib2hjaV9wY2kiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQotI2RlZmluZSBDRkdfT0hDSV9TV0FQX1JFR19BQ0NFU1MJMQorI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9ERVJFR0lTVEVSCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0VWRU5UX1BPTEwJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJCSJvaGNpX3BjaSIKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQorI2RlZmluZSBDT05GSUdfU1lTX09IQ0lfU1dBUF9SRUdfQUNDRVNTCTEKIAogI2lmICFkZWZpbmVkKENPTkZJR19QQ0lfUE5QKQogICAgICNkZWZpbmUgUENJX0VORVQwX0lPQUREUgkweGUwMDAwMDAwCkBAIC0zNTMsMTAgKzM1MywxMCBAQAogI2VuZGlmCiAKIC8qUENJRSB2aWRlbyBjYXJkIHVzZWQqLwotI2RlZmluZSBWSURFT19JT19PRkZTRVQJCUNGR19QQ0kyX0lPX1BIWVMKKyNkZWZpbmUgVklERU9fSU9fT0ZGU0VUCQlDT05GSUdfU1lTX1BDSTJfSU9fUEhZUwogCiAvKlBDSSB2aWRlbyBjYXJkIHVzZWQqLwotLyojZGVmaW5lIFZJREVPX0lPX09GRlNFVAlDRkdfUENJMV9JT19QSFlTKi8KKy8qI2RlZmluZSBWSURFT19JT19PRkZTRVQJQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMqLwogCiAvKiB2aWRlbyAqLwogI2RlZmluZSBDT05GSUdfVklERU8KQEAgLTM2OSw3ICszNjksNyBAQAogI2RlZmluZSBDT05GSUdfQVRJX1JBREVPTl9GQgogI2RlZmluZSBDT05GSUdfVklERU9fTE9HTwogLyojZGVmaW5lIENPTkZJR19DT05TT0xFX0NVUlNPUiovCi0jZGVmaW5lIENGR19JU0FfSU9fQkFTRV9BRERSRVNTIENGR19QQ0kyX0lPX1BIWVMKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTIENPTkZJR19TWVNfUENJMl9JT19QSFlTCiAjZW5kaWYKIAogI3VuZGVmIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KQEAgLTM3OSwxMCArMzc5LDEwIEBACiAKICNpZmRlZiBDT05GSUdfU0NTSV9BSENJCiAjZGVmaW5lIENPTkZJR19TQVRBX1VMSTUyODgKLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX1NDU0lfSUQJNAotI2RlZmluZSBDRkdfU0NTSV9NQVhfTFVOCTEKLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX0RFVklDRQkoQ0ZHX1NDU0lfTUFYX1NDU0lfSUQgKiBDRkdfU0NTSV9NQVhfTFVOKQotI2RlZmluZSBDRkdfU0NTSV9NQVhERVZJQ0UJQ0ZHX1NDU0lfTUFYX0RFVklDRQorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQJNAorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTgkxCisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhfREVWSUNFCShDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQgKiBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTikKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWERFVklDRQlDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRQogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX01QQzg2WFhfUENJMgpAQCAtNDI3LDEwICs0MjcsMTAgQEAKICAqIEJBVDAJCTJHICAgICBDYWNoZWFibGUsIG5vbi1ndWFyZGVkCiAgKiAweDAwMDBfMDAwMAkyRyAgICAgRERSCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQwTAkoQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfREJBVDBVCShCQVRVX0JMXzJHIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMEwJKEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSApCi0jZGVmaW5lIENGR19JQkFUMFUJQ0ZHX0RCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAkoQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQkoQkFUVV9CTF8yRyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFICkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUJQ09ORklHX1NZU19EQkFUMFUKIAogLyoKICAqIEJBVDEJCTFHICAgICBDYWNoZS1pbmhpYml0ZWQsIGd1YXJkZWQKQEAgLTQzOCwzMSArNDM4LDMxIEBACiAgKiAweGEwMDBfMDAwMAk1MTJNICAgUENJLUV4cHJlc3MgMiBNZW1vcnkKICAqCUNoYW5nZWQgaXQgZm9yIG9wZXJhdGluZyBmcm9tIDB4ZDAwMDAwMDAKICAqLwotI2RlZmluZSBDRkdfREJBVDFMCSggQ0ZHX1BDSTFfTUVNX1BIWVMgfCBCQVRMX1BQX1JXIFwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJKCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgfCBCQVRMX1BQX1JXIFwKIAkJCXwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDFVCShDRkdfUENJMV9NRU1fUEhZUyB8IEJBVFVfQkxfMUcgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX1BDSTFfTUVNX1BIWVMgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMVUJQ0ZHX0RCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQkoQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTIHwgQkFUVV9CTF8xRyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQlDT05GSUdfU1lTX0RCQVQxVQogCiAvKgogICogQkFUMgkJNTEyTSAgIENhY2hlLWluaGliaXRlZCwgZ3VhcmRlZAogICogMHhjMDAwXzAwMDAJNTEyTSAgIFJhcGlkSU8gTWVtb3J5CiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQyTAkoQ0ZHX1JJT19NRU1fUEhZUyB8IEJBVExfUFBfUlcgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAkoQ09ORklHX1NZU19SSU9fTUVNX1BIWVMgfCBCQVRMX1BQX1JXIFwKIAkJCXwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDJVCShDRkdfUklPX01FTV9QSFlTIHwgQkFUVV9CTF81MTJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMkwJKENGR19SSU9fTUVNX1BIWVMgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUJQ0ZHX0RCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQkoQ09ORklHX1NZU19SSU9fTUVNX1BIWVMgfCBCQVRVX0JMXzUxMk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKENPTkZJR19TWVNfUklPX01FTV9QSFlTIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQlDT05GSUdfU1lTX0RCQVQyVQogCiAvKgogICogQkFUMwkJNE0gICAgIENhY2hlLWluaGliaXRlZCwgZ3VhcmRlZAogICogMHhmODAwXzAwMDAJNE0gICAgIENDU1IKICAqLwotI2RlZmluZSBDRkdfREJBVDNMCSggQ0ZHX0NDU1JCQVIgfCBCQVRMX1BQX1JXIFwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJKCBDT05GSUdfU1lTX0NDU1JCQVIgfCBCQVRMX1BQX1JXIFwKIAkJCXwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDNVCShDRkdfQ0NTUkJBUiB8IEJBVFVfQkxfNE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQzTAkoQ0ZHX0NDU1JCQVIgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UJQ0ZHX0RCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQkoQ09ORklHX1NZU19DQ1NSQkFSIHwgQkFUVV9CTF80TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkoQ09ORklHX1NZU19DQ1NSQkFSIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQlDT05GSUdfU1lTX0RCQVQzVQogCiAvKgogICogQkFUNAkJMzJNICAgIENhY2hlLWluaGliaXRlZCwgZ3VhcmRlZApAQCAtNDcwLDUyICs0NzAsNTIgQEAKICAqIDB4ZTMwMF8wMDAwCTE2TSAgICBQQ0ktRXhwcmVzcyAyIEkvMAogICogICAgTm90ZSB0aGF0IHRoaXMgaXMgYXQgMHhlMDAwMDAwMAogICovCi0jZGVmaW5lIENGR19EQkFUNEwJKCBDRkdfUENJMV9JT19QSFlTIHwgQkFUTF9QUF9SVyBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMCSggQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMgfCBCQVRMX1BQX1JXIFwKIAkJCXwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDRVCShDRkdfUENJMV9JT19QSFlTIHwgQkFUVV9CTF8zMk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQ0TAkoQ0ZHX1BDSTFfSU9fUEhZUyB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQ0VQlDRkdfREJBVDRVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRVCShDT05GSUdfU1lTX1BDSTFfSU9fUEhZUyB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRMCShDT05GSUdfU1lTX1BDSTFfSU9fUEhZUyB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJQ09ORklHX1NZU19EQkFUNFUKIAogLyoKICAqIEJBVDUJCTEyOEsgICBDYWNoZWFibGUsIG5vbi1ndWFyZGVkCiAgKiAweGU0MDFfMDAwMAkxMjhLICAgSW5pdCBSQU0gZm9yIHN0YWNrIGluIHRoZSBDUFUgRENhY2hlIChubyBiYWNraW5nIG1lbW9yeSkKICAqLwotI2RlZmluZSBDRkdfREJBVDVMCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQ1TAlDRkdfREJBVDVMCi0jZGVmaW5lIENGR19JQkFUNVUJQ0ZHX0RCQVQ1VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCUNPTkZJR19TWVNfREJBVDVMCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVVCUNPTkZJR19TWVNfREJBVDVVCiAKIC8qCiAgKiBCQVQ2CQkzMk0gICAgQ2FjaGUtaW5oaWJpdGVkLCBndWFyZGVkCiAgKiAweGZlMDBfMDAwMAkzMk0gICAgRkxBU0gKICAqLwotI2RlZmluZSBDRkdfREJBVDZMCSgoQ0ZHX0ZMQVNIX0JBU0UgJiAweGZlMDAwMDAwKSB8IEJBVExfUFBfUlcgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAkoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIDB4ZmUwMDAwMDApIHwgQkFUTF9QUF9SVyBcCiAJCQl8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQkoKENGR19GTEFTSF9CQVNFICYgMHhmZTAwMDAwMCkgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDZMCSgoQ0ZHX0ZMQVNIX0JBU0UgJiAweGZlMDAwMDAwKSB8IEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQlDRkdfREJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVCSgoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgMHhmZTAwMDAwMCkgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIDB4ZmUwMDAwMDApIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VQlDT05GSUdfU1lTX0RCQVQ2VQogCi0jZGVmaW5lIENGR19EQkFUN0wgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREJBVDdVIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lCQVQ3TCAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19JQkFUN1UgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TCAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdVIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN0wgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VSAweDAwMDAwMDAwCiAKIC8qCiAgKiBFbnZpcm9ubWVudAogICovCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogICAgICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0gICAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgMHg2MDAwMCkKKyAgICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg2MDAwMCkKICAgICAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCQkweDEwMDAwCS8qIDY0SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAgICAgI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2Vsc2UKICAgICAjZGVmaW5lIENPTkZJR19FTlZfSVNfTk9XSEVSRQkxCS8qIFN0b3JlIEVOViBpbiBtZW1vcnkgb25seSAqLwotICAgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyAgICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQogICAgICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCiAKIAogLyoKQEAgLTUzNiw3ICs1MzYsNyBAQAogI2RlZmluZSBDT05GSUdfQ01EX0kyQwogI2RlZmluZSBDT05GSUdfQ01EX1JFR0lORk8KIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAgICAgI3VuZGVmIENPTkZJR19DTURfRU5WCiAjZW5kaWYKIApAQCAtNTUzLDI4ICs1NTMsMjggQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJCS8qIENvbW1hbmQtbGluZSBlZGl0aW5nICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSAgICAjZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotICAgICNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4NnhBRFMuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4NnhBRFMuaAppbmRleCAyMzNhOGQxLi44NWM2ODkwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODZ4QURTLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzg2eEFEUy5oCkBAIC0zNSwxNSArMzUsMTUgQEAKIAogI2RlZmluZSBDT05GSUdfOHh4X09TQ0xLCQkxMDAwMDAwMCAvKiAxME1IeiBvc2NpbGxhdG9yIG9uIEVYVENMSyAgKi8KICNkZWZpbmUgQ09ORklHXzh4eF9DUFVDTEtfREVGQVVMVAk1MDAwMDAwMAotI2RlZmluZSBDRkdfOHh4X0NQVUNMS19NSU4JCTQwMDAwMDAwCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01BWAkJODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU184eHhfQ1BVQ0xLX01JTgkJNDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU184eHhfQ1BVQ0xLX01BWAkJODAwMDAwMDAKIAogI2RlZmluZSBDT05GSUdfRFJBTV81ME1IWiAgICAgICAxCiAjZGVmaW5lIENPTkZJR19TRFJBTV81ME1IWiAgICAgIDEKIAogI2luY2x1ZGUgIi4uLy4uL2JvYXJkL2ZhZHMvZmFkcy5oIgogCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCQkweEZGRkY4MTEwCS8qIDY0S2J5dGUgYWRkcmVzcyBzcGFjZSAqLwotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJKENGR19QSFlERVZfQUREUiB8IEJSX1BTXzggfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JCTB4RkZGRjgxMTAJLyogNjRLYnl0ZSBhZGRyZXNzIHNwYWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkJKENPTkZJR19TWVNfUEhZREVWX0FERFIgfCBCUl9QU184IHwgQlJfVikKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4ODVBRFMuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4ODVBRFMuaAppbmRleCBmNGQxODQyLi44ZmZjMWIyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODg1QURTLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzg4NUFEUy5oCkBAIC0yMiwxNSArMjIsMTUgQEAKIAogI2RlZmluZSBDT05GSUdfOHh4X09TQ0xLCQkxMDAwMDAwMCAvKiAxMCBNSHogb3NjaWxsYXRvciBvbiBFWFRDTEsgICovCiAjZGVmaW5lIENPTkZJR184eHhfQ1BVQ0xLX0RFRkFVTFQJNTAwMDAwMDAKLSNkZWZpbmUgQ0ZHXzh4eF9DUFVDTEtfTUlOCQk0MDAwMDAwMAotI2RlZmluZSBDRkdfOHh4X0NQVUNMS19NQVgJCTEzMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUlOCQk0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUFYCQkxMzMwMDAwMDAKIAogI2RlZmluZSBDT05GSUdfU0RSQU1fNTBNSFogICAgICAxCiAKICNpbmNsdWRlICIuLi8uLi9ib2FyZC9mYWRzL2ZhZHMuaCIKIAotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkJMHhGRkZGODExMAkvKiA2NEtieXRlIGFkZHJlc3Mgc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JCShDRkdfUEhZREVWX0FERFIgfCBCUl9QU184IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCQkweEZGRkY4MTEwCS8qIDY0S2J5dGUgYWRkcmVzcyBzcGFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JCShDT05GSUdfU1lTX1BIWURFVl9BRERSIHwgQlJfUFNfOCB8IEJSX1YpCiAKICNkZWZpbmUgQ09ORklHX0hBU19FVEgxCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NVVNFTktJLmggYi9pbmNsdWRlL2NvbmZpZ3MvTVVTRU5LSS5oCmluZGV4IDg4ZDgwNzIuLmVjOWUxZWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NVVNFTktJLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01VU0VOS0kuaApAQCAtNDgsNyArNDgsNyBAQAogCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJNQogCkBAIC03MSwxNiArNzEsMTYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSN1bmRlZiBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyN1bmRlZiBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KIAogLyogUHJpbnQgQnVmZmVyIFNpemUKICAqLwotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCi0jZGVmaW5lIENGR19NQVhBUkdTCTgJCS8qIE1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwk4CQkvKiBNYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgwMDEwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJIHN0dWZmCkBAIC0xMDIsNjMgKzEwMiw2MyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UwX1BSRUxJTSAgICAgIDB4RkY4MDAwMDAgICAgICAvKiBGTEFTSCBiYW5rIG9uIFJDUyMwICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFMV9QUkVMSU0gICAgICAweEZGMDAwMDAwICAgICAgLyogRkxBU0ggYmFuayBvbiBSQ1MjMSAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRSAgQ0ZHX0ZMQVNIX0JBU0UwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UwX1BSRUxJTSAgICAgIDB4RkY4MDAwMDAgICAgICAvKiBGTEFTSCBiYW5rIG9uIFJDUyMwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRTFfUFJFTElNICAgICAgMHhGRjAwMDAwMCAgICAgIC8qIEZMQVNIIGJhbmsgb24gUkNTIzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UwX1BSRUxJTQogCiAvKiBldmVuIHRob3VnaCBGTEFTSFBfQkFTRSBpcyBGRjgwMDAwMCwgd2l0aCA0TUIgaXMgUkNTMCwgdGhlCiAgKiByZXNldCB2ZWN0b3IgaXMgYWN0dWFsbHkgbG9jYXRlZCBhdCBGRkIwMDEwMCwgYnV0IHRoZSA4MjQ1CiAgKiB0YWtlcyBjYXJlIG9mIHVzLgogICovCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgICAweEZGRjAwMTAwCiAKLSNkZWZpbmUgQ0ZHX0VVTUJfQUREUgkgICAgMHhGQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VVTUJfQUREUgkgICAgMHhGQzAwMDAwMAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkgICAgKDI1NiA8PCAxMCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JICAgICgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkgICAgKDI1NiA8PCAxMCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSAgICAoMTI4IDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgIDB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECSAgICAweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCAgIDB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkgICAgMHgwMjAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLwogCiAJLyogTWF4aW11bSBhbW91bnQgb2YgUkFNLgogCSAqLwotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFICAgIDB4MDgwMDAwMDAJLyogMCAuLiAxMjggTUIgb2YgKFMpRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRSAgICAweDA4MDAwMDAwCS8qIDAgLi4gMTI4IE1CIG9mIChTKURSQU0gKi8KIAogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQotI3VuZGVmIENGR19SQU1CT09UCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCisjdW5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAvKgogICogTlMxNjU1MCBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19FVU1CX0FERFIgKyAweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19FVU1CX0FERFIgKyAweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0VVTUJfQUREUiArIDB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NjAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEKICAqLwogCi0vKiAjZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgICAgIFRFWFRfQkFTRSAqLwotLyojZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgIDI1NiovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4Ci0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgICAweDEwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKy8qICNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgICAgIFRFWFRfQkFTRSAqLworLyojZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAyNTYqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIAogLyoKQEAgLTE2OSw0MSArMTY5LDQxIEBACiAgKi8KIAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRICAzMzMzMzMzMwkvKiBleHRlcm5hbCBmcmVxdWVuY3kgdG8gcGxsICovCi0jZGVmaW5lIENGR19IWgkJICAgICAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCSAgICAgMTAwMAogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjEuCiAJICovCi0jZGVmaW5lIENGR19ST01OQUwJICAgIDcKLSNkZWZpbmUgQ0ZHX1JPTUZBTAkgICAgMTEKLSNkZWZpbmUgQ0ZHX0RCVVNfU0laRSAgICAgICAweDMKKyNkZWZpbmUgQ09ORklHX1NZU19ST01OQUwJICAgIDcKKyNkZWZpbmUgQ09ORklHX1NZU19ST01GQUwJICAgIDExCisjZGVmaW5lIENPTkZJR19TWVNfREJVU19TSVpFICAgICAgIDB4MwogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjIuCiAJICovCi0jZGVmaW5lIENGR19UU1dBSVQJICAgIDB4NQkJICAgIC8qIFRyYW5zYWN0aW9uIFN0YXJ0IFdhaXQgU3RhdGVzIHRpbWVyICovCi0jZGVmaW5lIENGR19SRUZJTlQJICAgIDB4NDAwCSAgICAvKiBSZWZyZXNoIGludGVydmFsCUZJWE1FOiB3YXMgMHQ0MzAJCSovCisjZGVmaW5lIENPTkZJR19TWVNfVFNXQUlUCSAgICAweDUJCSAgICAvKiBUcmFuc2FjdGlvbiBTdGFydCBXYWl0IFN0YXRlcyB0aW1lciAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVAkgICAgMHg0MDAJICAgIC8qIFJlZnJlc2ggaW50ZXJ2YWwJRklYTUU6IHdhcyAwdDQzMAkJKi8KIAogCS8qIEJ1cnN0IFRvIFByZWNoYXJnZS4gQml0cyBvZiB0aGlzIHZhbHVlIGdvIHRvIE1DQ1IzIGFuZCBNQ0NSNC4KIAkgKi8KLSNkZWZpbmUgQ0ZHX0JTVE9QUkUJICAgIDEyMQorI2RlZmluZSBDT05GSUdfU1lTX0JTVE9QUkUJICAgIDEyMQogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjMuCiAJICovCi0jZGVmaW5lIENGR19SRUZSRUMJICAgIDgJICAgIC8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUZSRUMJICAgIDgJICAgIC8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwgKi8KIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1I0LgogCSAqLwotI2RlZmluZSBDRkdfUFJFVE9BQ1QJICAgIDMJICAgIC8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbCBGSVhNRTogd2FzIDIJKi8KLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCSAgICA1CSAgICAvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwgRklYTUU6IHdhcyA1CSovCi0jZGVmaW5lIENGR19BQ1RPUlcJICAgIDMJCS8qIEZJWE1FIHdhcyAyICovCi0jZGVmaW5lIENGR19TRE1PREVfQ0FTX0xBVCAgMwkgICAgLyogU0RNT0RFIENBUyBsYXRhbmN5ICovCi0jZGVmaW5lIENGR19TRE1PREVfV1JBUAkgICAgMAkgICAgLyogU0RNT0RFIHdyYXAgdHlwZQkqLwotI2RlZmluZSBDRkdfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDEKLSNkZWZpbmUgQ0ZHX0VYVFJPTQkgICAgMQotI2RlZmluZSBDRkdfUkVHRElNTQkgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1BSRVRPQUNUCSAgICAzCSAgICAvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwgRklYTUU6IHdhcyAyCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUVE9QUkUJICAgIDUJICAgIC8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbCBGSVhNRTogd2FzIDUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RPUlcJICAgIDMJCS8qIEZJWE1FIHdhcyAyICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQgIDMJICAgIC8qIFNETU9ERSBDQVMgbGF0YW5jeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9XUkFQCSAgICAwCSAgICAvKiBTRE1PREUgd3JhcCB0eXBlCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FWFRST00JICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19SRUdESU1NCSAgICAwCiAKLSNkZWZpbmUgQ0ZHX1BHTUFYICAgICAgICAgICAweDMyIC8qIGhvdyBsb25nIHRoZSA4MjQwIHJlYXRpbnMgdGhlIGN1cnJlbnRseSBhY2Nlc3NlZCBwYWdlIGluIG1lbW9yeSBGSVhNRTogd2FzIDB4MzIqLworI2RlZmluZSBDT05GSUdfU1lTX1BHTUFYICAgICAgICAgICAweDMyIC8qIGhvdyBsb25nIHRoZSA4MjQwIHJlYXRpbnMgdGhlIGN1cnJlbnRseSBhY2Nlc3NlZCBwYWdlIGluIG1lbW9yeSBGSVhNRTogd2FzIDB4MzIqLwogCi0jZGVmaW5lIENGR19TRFJBTV9EU0NECTB4MjAJLyogU0RSQU0gZGF0YSBpbiBzYW1wbGUgY2xvY2sgZGVsYXkgLSBub3RlIGJvdHRvbSAzIGJpdHMgTVVTVCBiZSAwICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRFNDRAkweDIwCS8qIFNEUkFNIGRhdGEgaW4gc2FtcGxlIGNsb2NrIGRlbGF5IC0gbm90ZSBib3R0b20gMyBiaXRzIE1VU1QgYmUgMCAqLwogCiAvKiBNZW1vcnkgYmFuayBzZXR0aW5ncy4KICAqIE9ubHkgYml0cyAyMC0yOSBhcmUgYWN0dWFsbHkgdXNlZCBmcm9tIHRoZXNlIHZhbGVzIHRvIHNldCB0aGUKQEAgLTIxMiw2OSArMjEyLDY5IEBACiAgKiBhZGRyZXNzLiBSZWZlciB0byB0aGUgTVBDODI0MCBib29rLgogICovCiAKLSNkZWZpbmUgQ0ZHX0JBTkswX1NUQVJUCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMF9FTkQJICAgIChDRkdfTUFYX1JBTV9TSVpFIC0gMSkKLSNkZWZpbmUgQ0ZHX0JBTkswX0VOQUJMRSAgICAxCi0jZGVmaW5lIENGR19CQU5LMV9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzFfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMV9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzJfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksyX0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzJfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTkszX1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LM19FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTkszX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNF9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNF9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzVfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzVfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks2X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks2X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LN19TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LN19FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX1NUQVJUCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5ECSAgICAoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VOQUJMRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkFCTEUgICAgMAogCi0jZGVmaW5lIENGR19PRENSCSAgICAweGZmCisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkgICAgMHhmZgogCi0jZGVmaW5lIENGR19JQkFUMEwgIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVSAgKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVSAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUMUwgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVSAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVSAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUMkwgICgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDJVICAoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTCAgKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVICAoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUM0wgICgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVICAoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTCAgKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVICAoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUMEwgIENGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVSAgQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDFMICBDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUgIENGR19JQkFUMVUKLSNkZWZpbmUgQ0ZHX0RCQVQyTCAgQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVICBDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wgIENGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVSAgQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCAgQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUgIENPTkZJR19TWVNfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMICBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVSAgQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwgIENPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVICBDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTCAgQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UgIENPTkZJR19TWVNfSUJBVDNVCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSAgICAoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgZmxhc2gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgZmxhc2gJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCiAKIAogCS8qIFdhcmluaW5nOiBlbnZpcm9ubWVudCBpcyBub3QgRU1CRURERUQgaW4gdGhlIFUtQm9vdCBjb2RlLgpAQCAtMjg4LDkgKzI4OCw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NVkJDX1AuaCBiL2luY2x1ZGUvY29uZmlncy9NVkJDX1AuaAppbmRleCAyMTQ3NWZiLi5jZDkxMGVhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVZCQ19QLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01WQkNfUC5oCkBAIC0zMiwyMSArMzIsMjEgQEAKICNkZWZpbmUgQ09ORklHX01QQzV4eHgJMQogI2RlZmluZSBDT05GSUdfTVBDNTIwMCAJMQogCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMAogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEKICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkxCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKICNpZmRlZiBDT05GSUdfQ01EX0tHREIKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19QU0NfQ09OU09MRQkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7OTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwfQogCiAjZGVmaW5lIENPTkZJR19QQ0kJCTEKICNkZWZpbmUgQ09ORklHX1BDSV9QTlAJCTEKQEAgLTYxLDcgKzYxLDcgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9JT19QSFlTCUNPTkZJR19QQ0lfSU9fQlVTCiAjZGVmaW5lIENPTkZJR19QQ0lfSU9fU0laRQkweDAxMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1hMQl9QSVBFTElOSU5HCTEKKyNkZWZpbmUgQ09ORklHX1NZU19YTEJfUElQRUxJTklORwkxCiAjZGVmaW5lIENPTkZJR19ISUdIX0JBVFMJMQogCiAjZGVmaW5lIE1WX0NJCQkJbXZCbHVlQ09VR0FSLVAKQEAgLTE5MCwzMyArMTkwLDMzIEBACiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jZGVmaW5lIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSwotI2RlZmluZSBDRkdfUENJQ0xLX0VRVUFMU19JUEJDTEtfRElWMgorI2RlZmluZSBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCisjZGVmaW5lIENPTkZJR19TWVNfUENJQ0xLX0VRVUFMU19JUEJDTEtfRElWMgogCiAvKgogICogRmxhc2ggY29uZmlndXJhdGlvbgogICovCiAjdW5kZWYgCUNPTkZJR19GTEFTSF8xNkJJVAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRklfQU1EX1JFU0VUIDEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfQU1EX1JFU0VUIDEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNTAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMDAKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CiAKLSNkZWZpbmUgQ0ZHX0xPV0JPT1QKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAwODAwMDAwCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKLSN1bmRlZglDRkdfRkxBU0hfUFJPVEVDVElPTgorI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHhGRkZFMDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMDAKQEAgLTIyNywyNiArMjI3LDI2IEBACiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19NQkFSCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4Ci0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotLyogQ0ZHX01PTklUT1JfTEVOIG11c3QgYmUgYSBtdWx0aXBsZSBvZiBDT05GSUdfRU5WX1NFQ1RfU0laRSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSg1MTIgPDwgMTApCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyIDw8IDEwKQotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkKKy8qIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gbXVzdCBiZSBhIG11bHRpcGxlIG9mIENPTkZJR19FTlZfU0VDVF9TSVpFICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMjYzLDUyICsyNjMsNTIgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyIAkiPiAiCi0jdW5kZWYgCUNGR19MT05HSEVMUAotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAJIj4gIgorI3VuZGVmIAlDT05GSUdfU1lTX0xPTkdIRUxQCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgogI2lmZGVmIENPTkZJR19DTURfS0dEQgotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYKLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDgwMDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDJmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMmYwMDAwMAogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAogLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMjAwMDAwMAogLyogZGVmYXVsdCBsb2NhdGlvbiBmb3IgdGZ0cCBhbmQgYm9vdG0gKi8KICNkZWZpbmUgQ09ORklHX0xPQURBRERSIAkweDAwMjAwMDAwCiAKIC8qCiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHgyMDAwMDAwNAorI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDIwMDAwMDA0CiAKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJKEhJRDBfSUNFIHwgSElEMF9JQ0ZJKQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCShISUQwX0lDRSB8IEhJRDBfSUNGSSkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0NzgwMAotI2RlZmluZSBDRkdfQ1MwX1NUQVJUCQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQ1MwX1NJWkUJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDQ3ODAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCiAKLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMGYwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgzMzMzMzMwMworI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMGYwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMDMKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweDAwMDAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweDAwMDAwMTAwCiAKICN1bmRlZiBGUEdBX0RFQlVHCi0jdW5kZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSwotI2RlZmluZSBDT05GSUdfRlBHQQkJQ0ZHX0FMVEVSQV9DWUNMT04yCisjdW5kZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKKyNkZWZpbmUgQ09ORklHX0ZQR0EJCUNPTkZJR19TWVNfQUxURVJBX0NZQ0xPTjIKICNkZWZpbmUgQ09ORklHX0ZQR0FfQUxURVJBCTEKICNkZWZpbmUgQ09ORklHX0ZQR0FfQ1lDTE9OMgkxCiAjZGVmaW5lIENPTkZJR19GUEdBX0NPVU5UCTEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NVkJMTTcuaCBiL2luY2x1ZGUvY29uZmlncy9NVkJMTTcuaAppbmRleCBlYzM2ZjU1Li5iYzJkODI1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVZCTE03LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01WQkxNNy5oCkBAIC0zNyw3ICszNyw3IEBACiAjZGVmaW5lIENPTkZJR19NUEM4MzRYCTEKICNkZWZpbmUgQ09ORklHX01QQzgzNDMJMQogCi0jZGVmaW5lIENGR19JTU1SCQkweEUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhFMDAwMDAwMAogCiAjZGVmaW5lIENPTkZJR19QQ0kKICNkZWZpbmUgQ09ORklHXzgzWFhfR0VORVJJQ19QQ0kKQEAgLTU0LDk0ICs1NCw5NCBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwogI2RlZmluZSBDT05GSUdfSTJDX01VTFRJX0JVUwogI2RlZmluZSBDT05GSUdfSTJDX0NNRF9UUkVFCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKLSNkZWZpbmUgQ0ZHX0kyQzJfT0ZGU0VUCQkweDMxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkMyX09GRlNFVAkJMHgzMTAwCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogRERSIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCUNGR19ERFJfQkFTRQotI2RlZmluZSBDRkdfODNYWF9ERFJfVVNFU19DUzAJMQotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkoNjA8PDIwKQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCSg3MDw8MjApCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTXzgzWFhfRERSX1VTRVNfQ1MwCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCSg2MDw8MjApCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCSg3MDw8MjApCiAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DTEtfQ05UTAkoRERSX1NEUkFNX0NMS19DTlRMX1NTX0VOIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DTEtfQ05UTAkoRERSX1NEUkFNX0NMS19DTlRMX1NTX0VOIHwgXAogCQkJCUREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1CiAKLSNkZWZpbmUgQ0ZHX0REUl9TSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0laRQkJMjU2CiAKIC8qIEhDLCA3NU9obSwgRERSLUlJLCBEUlEgKi8KLSNkZWZpbmUgQ0ZHX0REUkNEUgkJMHg4MDAwMDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0REUkNEUgkJMHg4MDAwMDAwMQogLyogRU4sIE9EVF9XUiwgM0JBLCAxNHJvdywgMTBjb2wgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQ09ORklHCTB4ODAwMTQxMDIKLSNkZWZpbmUgQ0ZHX0REUl9DUzFfQ09ORklHCTB4MAotI2RlZmluZSBDRkdfRERSX0NTMl9DT05GSUcJMHgwCi0jZGVmaW5lIENGR19ERFJfQ1MzX0NPTkZJRwkweDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkweDgwMDE0MTAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMV9DT05GSUcJMHgwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMl9DT05GSUcJMHgwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTM19DT05GSUcJMHgwCiAKLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkweDAwMDAwMDBmCi0jZGVmaW5lIENGR19ERFJfQ1MxX0JORFMJMHgwCi0jZGVmaW5lIENGR19ERFJfQ1MyX0JORFMJMHgwCi0jZGVmaW5lIENGR19ERFJfQ1MzX0JORFMJMHgwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9CTkRTCTB4MDAwMDAwMGYKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MxX0JORFMJMHgwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMl9CTkRTCTB4MAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzNfQk5EUwkweDAKIAotI2RlZmluZSBDRkdfRERSX0NMS19DTlRMCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ0xLX0NOVEwJMHgwMjAwMDAwMAogCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzAJMHgwMDI2MDgwMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCTB4MjYyNWIyMjEKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkweDFmOTgyMGM3Ci0jZGVmaW5lIENGR19ERFJfVElNSU5HXzMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMAkweDAwMjYwODAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4MjYyNWIyMjEKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgxZjk4MjBjNworI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCiAKIC8qIH5NRU1fRU4sIFNSRU4sIEREUi1JSSwgMzJfQkUgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcJMHg0MzA4MDAwMAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NGRzIJMHgwMDQwMTAwMAotI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCTB4MDQwNjAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHCTB4NDMwODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHMgkweDAwNDAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0lOVEVSVkFMCTB4MDQwNjAxMDAKIAotI2RlZmluZSBDRkdfRERSX01PREUJCTB4MDc4ZTAyMzIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJMHgwNzhlMDIzMgogCiAvKiBGbGFzaCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGODAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQk4Ci0jZGVmaW5lIENGR19GTEFTSF9TSVpFX1NISUZUCTMKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTgKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFX1NISUZUCTMKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYKIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKENGR19GTEFTSF9CQVNFIHwgQlJfUFNfMTYgfCBCUl9WKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJKCh+KENGR19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIHwgT1JfVVBNX1hBTSB8ICBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJSX1BTXzE2IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkoKH4oQ09ORklHX1NZU19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIHwgT1JfVVBNX1hBTSB8ICBcCiAJCQkJT1JfR1BDTV9DU05UIHwgT1JfR1BDTV9BQ1NfRElWMiB8IE9SX0dQQ01fWEFDU3xcCiAJCQkJT1JfR1BDTV9TQ1lfMTUgfCBPUl9HUENNX1RSTFggfCBPUl9HUENNX0VIVFIgfCBcCiAJCQkJT1JfR1BDTV9FQUQpCi0jZGVmaW5lIENGR19MQkxBV0JBUjBfUFJFTElNCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19MQkxBV0FSMF9QUkVMSU0JKExCTEFXQVJfRU4gfCAoMHgxMyArIENGR19GTEFTSF9TSVpFX1NISUZUKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIwX1BSRUxJTQkoTEJMQVdBUl9FTiB8ICgweDEzICsgQ09ORklHX1NZU19GTEFTSF9TSVpFX1NISUZUKSkKIAogLyoKICAqIFUtQm9vdCBtZW1vcnkgY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jdW5kZWYJQ0ZHX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjdW5kZWYJQ09ORklHX1NZU19SQU1CT09UCiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4RkQwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0qLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RkQwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkweDEwMAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotLyogQ0ZHX01PTklUT1JfTEVOIG11c3QgYmUgYSBtdWx0aXBsZSBvZiBDT05GSUdfRU5WX1NFQ1RfU0laRSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDUxMiAqIDEwMjQpCisvKiBDT05GSUdfU1lTX01PTklUT1JfTEVOIG11c3QgYmUgYSBtdWx0aXBsZSBvZiBDT05GSUdfRU5WX1NFQ1RfU0laRSAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoNTEyICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkKIAogLyoKICAqIExvY2FsIEJ1cyBMQ1JSIGFuZCBMQkNSIHJlZ3MKQEAgLTE0OSwzMiArMTQ5LDMyIEBACiAgKiBFeHRlcm5hbCBMb2NhbCBCdXMgcmF0ZSBpcwogICogIENMS0lOICogSFJDV0xfQ1NCX1RPX0NMS0lOIC8gSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLIC8gTENSUl9DTEtESVYKICAqLwotI2RlZmluZSBDRkdfTENSUgkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfNCkKLSNkZWZpbmUgQ0ZHX0xCQ19MQkNSCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQ1JSCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl80KQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQkNSCTB4MDAwMDAwMDAKIAogLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciwgYWJvdXQgNnVzICovCi0jZGVmaW5lIENGR19MQkNfTFNSVAkweDMyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJMHgzMjAwMDAwMAogLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsLCAyNjZNSHovMzIqLwotI2RlZmluZSBDRkdfTEJDX01SVFBSCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJMHgyMDAwMDAwMAogCiAvKgogICogU2VyaWFsIFBvcnQKICAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDExNTIwMH0KIAogI2RlZmluZSBDT05GSUdfQ09OU09MRQkJdHR5UzAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfSU1NUiArIDB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0lNTVIgKyAweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0lNTVIgKyAweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0lNTVIgKyAweDQ2MDApCiAKIC8qIHBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KICNkZWZpbmUgQ09ORklHX09GX0xJQkZEVAkJMQpAQCAtMTg1LDE1ICsxODUsMTUgQEAKIC8qCiAgKiBQQ0kKICAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTU1JT19CQVNFCShDRkdfUENJMV9NRU1fQkFTRSArIENGR19QQ0kxX01FTV9TSVpFKQotI2RlZmluZSBDRkdfUENJMV9NTUlPX1BIWVMJQ0ZHX1BDSTFfTU1JT19CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01NSU9fU0laRQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCTB4RTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRQkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFICsgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTCUNPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fU0laRQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMJMHhFMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQkweDAxMDAwMDAwCiAKICNkZWZpbmUgX0lPX0JBU0UJCTB4MDAwMDAwMDAKIApAQCAtMjA3LDkgKzIwNyw5IEBACiAKIC8qIFRTRUMgKi8KICNkZWZpbmUgQ09ORklHX0dNSUkKLSNkZWZpbmUgQ0ZHX1ZTQzg2MDFfU0tFV0ZJWAotI2RlZmluZQlDRkdfVlNDODYwMV9TS0VXX1RYCTMKLSNkZWZpbmUJQ0ZHX1ZTQzg2MDFfU0tFV19SWAkzCisjZGVmaW5lIENPTkZJR19TWVNfVlNDODYwMV9TS0VXRklYCisjZGVmaW5lCUNPTkZJR19TWVNfVlNDODYwMV9TS0VXX1RYCTMKKyNkZWZpbmUJQ09ORklHX1NZU19WU0M4NjAxX1NLRVdfUlgJMwogCiAjZGVmaW5lIENPTkZJR19UU0VDMQogI2RlZmluZSBDT05GSUdfVFNFQzIKQEAgLTIxNyw4ICsyMTcsOCBAQAogI2RlZmluZSBDT05GSUdfSEFTX0VUSDAKICNkZWZpbmUgQ09ORklHX1RTRUMxX05BTUUJIlRTRUMwIgogI2RlZmluZSBDT05GSUdfRkVDMV9QSFlfTk9SWEVSUgotI2RlZmluZSBDRkdfVFNFQzFfT0ZGU0VUCTB4MjQwMDAKLSNkZWZpbmUgQ0ZHX1RTRUMxCQkoQ0ZHX0lNTVIrQ0ZHX1RTRUMxX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMV9PRkZTRVQJMHgyNDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMxCQkoQ09ORklHX1NZU19JTU1SK0NPTkZJR19TWVNfVFNFQzFfT0ZGU0VUKQogI2RlZmluZSBUU0VDMV9QSFlfQUREUgkJMHgxMAogI2RlZmluZSBUU0VDMV9QSFlJRFgJCTAKICNkZWZpbmUgVFNFQzFfRkxBR1MJCShUU0VDX0dJR0FCSVR8VFNFQ19SRURVQ0VEKQpAQCAtMjI2LDggKzIyNiw4IEBACiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQogI2RlZmluZSBDT05GSUdfVFNFQzJfTkFNRSAgCSJUU0VDMSIKICNkZWZpbmUgQ09ORklHX0ZFQzJfUEhZX05PUlhFUlIKLSNkZWZpbmUgQ0ZHX1RTRUMyX09GRlNFVAkweDI1MDAwCi0jZGVmaW5lIENGR19UU0VDMiAJCShDRkdfSU1NUitDRkdfVFNFQzJfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMyX09GRlNFVAkweDI1MDAwCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzIgCQkoQ09ORklHX1NZU19JTU1SK0NPTkZJR19TWVNfVFNFQzJfT0ZGU0VUKQogI2RlZmluZSBUU0VDMl9QSFlfQUREUgkJMHgxMQogI2RlZmluZSBUU0VDMl9QSFlJRFgJCTAKICNkZWZpbmUgVFNFQzJfRkxBR1MJCShUU0VDX0dJR0FCSVR8VFNFQ19SRURVQ0VEKQpAQCAtMjUyLDcgKzI1Miw3IEBACiAvKgogICogRW52aXJvbm1lbnQKICAqLwotI3VuZGVmICBDRkdfRkxBU0hfUFJPVEVDVElPTgorI3VuZGVmICBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKQEAgLTI2Myw3ICsyNjMsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5EIAlDT05GSUdfRU5WX1NJWkUKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQogCiAvKgogICogQ29tbWFuZCBsaW5lIGNvbmZpZ3VyYXRpb24uCkBAIC0yODYsMTAyICsyODYsMTAyIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKIAogLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgyMDAwMDAwCiAvKiBkZWZhdWx0IGxvY2F0aW9uIGZvciB0ZnRwIGFuZCBib290bSAqLwogI2RlZmluZSBDT05GSUdfTE9BREFERFIJMHgyMDAwMDAKIAotI2RlZmluZSBDRkdfUFJPTVBUCSJtdkJMLU03PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSJtdkJMLU03PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgogCi0jZGVmaW5lIENGR19QQlNJWkUJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYKLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLwogCi0jZGVmaW5lIENGR19IUkNXX0xPVwkweDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfSElHSAkweDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0xPVwkweDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0gJMHgwCiAKIC8qCiAgKiBTeXN0ZW0gcGVyZm9ybWFuY2UKICAqLwotI2RlZmluZSBDRkdfQUNSX1BJUEVfREVQCTMJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAoMC0zKSAqLwotI2RlZmluZSBDRkdfQUNSX1JQVENOVAkJMwkvKiBBcmJpdGVyIHJlcGVhdCBjb3VudCAoMC03KSAqLwotI2RlZmluZSBDRkdfU1BDUl9UU0VDMUVQCTMJLyogVFNFQzEgZW1lcmdlbmN5IHByaW9yaXR5ICgwLTMpICovCi0jZGVmaW5lIENGR19TUENSX1RTRUMyRVAJMwkvKiBUU0VDMiBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1JfUElQRV9ERVAJMwkvKiBBcmJpdGVyIHBpcGVsaW5lIGRlcHRoICgwLTMpICovCisjZGVmaW5lIENPTkZJR19TWVNfQUNSX1JQVENOVAkJMwkvKiBBcmJpdGVyIHJlcGVhdCBjb3VudCAoMC03KSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NQQ1JfVFNFQzFFUAkzCS8qIFRTRUMxIGVtZXJnZW5jeSBwcmlvcml0eSAoMC0zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NQQ1JfVFNFQzJFUAkzCS8qIFRTRUMyIGVtZXJnZW5jeSBwcmlvcml0eSAoMC0zKSAqLwogCiAvKiBjbG9ja2luZyAqLwotI2RlZmluZSBDRkdfU0NDUl9FTkNDTQkJMAotI2RlZmluZSBDRkdfU0NDUl9VU0JNUEhDTQkwCi0jZGVmaW5lCUNGR19TQ0NSX1VTQkRSQ00JMgotI2RlZmluZSBDRkdfU0NDUl9UU0VDMUNNCTEKLSNkZWZpbmUgQ0ZHX1NDQ1JfVFNFQzJDTQkxCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUl9FTkNDTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1JfVVNCTVBIQ00JMAorI2RlZmluZQlDT05GSUdfU1lTX1NDQ1JfVVNCRFJDTQkyCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUl9UU0VDMUNNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSX1RTRUMyQ00JMQogCi0jZGVmaW5lIENGR19TSUNSSAkweDFmZmY4MDAzCi0jZGVmaW5lIENGR19TSUNSTAkoU0lDUkxfTERQX0EgfCBTSUNSTF9VU0IxIHwgU0lDUkxfVVNCMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSSAkweDFmZmY4MDAzCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkwJKFNJQ1JMX0xEUF9BIHwgU0lDUkxfVVNCMSB8IFNJQ1JMX1VTQjApCiAKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkweDAwMDAwMDAwMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAlDRkdfSElEMF9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCTB4MDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAlDT05GSUdfU1lTX0hJRDBfSU5JVAogCi0jZGVmaW5lIENGR19ISUQyCUhJRDJfSEJFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMglISUQyX0hCRQogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCTEKIAogLyogRERSICAqLwotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBQQ0kgICovCi0jZGVmaW5lIENGR19JQkFUMUwJKENGR19QQ0kxX01FTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVCShDRkdfUENJMV9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDJMCShDRkdfUENJMV9NTUlPX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkoQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8XAogCQkJCUJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUMlUJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkoQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBubyBQQ0kyICovCi0jZGVmaW5lIENGR19JQkFUM0wJMAotI2RlZmluZSBDRkdfSUJBVDNVCTAKLSNkZWZpbmUgQ0ZHX0lCQVQ0TAkwCi0jZGVmaW5lIENGR19JQkFUNFUJMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCTAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwJMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0VQkwCiAKIC8qIElNTVJCQVIgQCAweEUwMDAwMDAwLCBQQ0kgSU8gQCAweEUyMDAwMDAwICYgQkNTUiBAIDB4RTI0MDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ1TAkoQ0ZHX0lNTVIgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCShDT05GSUdfU1lTX0lNTVIgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBcCiAJCQkJQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQkoQ0ZHX0lNTVIgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNVUJKENPTkZJR19TWVNfSU1NUiB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBzdGFjayBpbiBEQ0FDSEUgMHhGREYwMDAwMCAmIEZMQVNIIEAgMHhGRjgwMDAwMCAqLwotI2RlZmluZSBDRkdfSUJBVDZMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDZVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUN0wJMAotI2RlZmluZSBDRkdfSUJBVDdVCTAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCTAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UJMAogCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKLSNkZWZpbmUgQ0ZHX0RCQVQ0TAlDRkdfSUJBVDRMCi0jZGVmaW5lIENGR19EQkFUNFUJQ0ZHX0lCQVQ0VQotI2RlZmluZSBDRkdfREJBVDVMCUNGR19JQkFUNUwKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQlDRkdfSUJBVDVVCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAlDRkdfSUJBVDdMCi0jZGVmaW5lIENGR19EQkFUN1UJQ0ZHX0lCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAlDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQlDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAlDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0TAlDT05GSUdfU1lTX0lCQVQ0TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0VQlDT05GSUdfU1lTX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAlDT05GSUdfU1lTX0lCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQlDT05GSUdfU1lTX0lCQVQ1VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAlDT05GSUdfU1lTX0lCQVQ2TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQlDT05GSUdfU1lTX0lCQVQ2VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TAlDT05GSUdfU1lTX0lCQVQ3TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VQlDT05GSUdfU1lTX0lCQVQ3VQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKQEAgLTQ3NSw3ICs0NzUsNyBAQAogCSIiCiAKICNkZWZpbmUgQ09ORklHX0ZQR0FfQ09VTlQJMQotI2RlZmluZSBDT05GSUdfRlBHQQkJQ0ZHX0FMVEVSQV9DWUNMT04yCisjZGVmaW5lIENPTkZJR19GUEdBCQlDT05GSUdfU1lTX0FMVEVSQV9DWUNMT04yCiAjZGVmaW5lIENPTkZJR19GUEdBX0FMVEVSQQogI2RlZmluZSBDT05GSUdfRlBHQV9DWUNMT04yCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NVkJMVUUuaCBiL2luY2x1ZGUvY29uZmlncy9NVkJMVUUuaAppbmRleCAyNTE4ZGJlLi4zMWI5ZjAzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVZCTFVFLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01WQkxVRS5oCkBAIC02Myw3ICs2Myw3IEBACiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTMKICNkZWZpbmUgQ09ORklHX0JPT1RfUkVUUllfVElNRQktMQpAQCAtMTE3LDE0ICsxMTcsMTQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19QQlNJWkUJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIE1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIE1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkJKi8KIAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBuZnNib290IgogI2RlZmluZSBDT05GSUdfQk9PVEFSR1MJCQkicm9vdD0vZGV2L210ZGJsb2NrNSBybyByb290ZnN0eXBlPWpmZnMyIgpAQCAtMTY4LDU0ICsxNjgsNTQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgMHhGRkYwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgICAgICAweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAotI2RlZmluZSBDRkdfRVVNQl9BRERSCSAgICAweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVU1CX0FERFIJICAgIDB4RkMwMDAwMDAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4gICAgIDB4MDAxMDAwMDAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4gICAgICAoNTEyIDw8IDEwKSAvKiBSZXNlcnZlIHNvbWUga0IgZm9yIG1hbGxvYygpICAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOICAgICAweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTiAgICAgICg1MTIgPDwgMTApIC8qIFJlc2VydmUgc29tZSBrQiBmb3IgbWFsbG9jKCkgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkgICAgMHgwMDgwMDAwMAkvKiAxTSAuLi4gOE0gaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECSAgICAweDAwODAwMDAwCS8qIDFNIC4uLiA4TSBpbiBEUkFNCQkqLwogCiAvKiBNYXhpbXVtIGFtb3VudCBvZiBSQU0uICAqLwotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFICAgIDB4MTAwMDAwMDAJLyogMCAuLiAyNTZNQiBvZiAoUylEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFICAgIDB4MTAwMDAwMDAJLyogMCAuLiAyNTZNQiBvZiAoUylEUkFNICovCiAKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKLSN1bmRlZiBDRkdfUkFNQk9PVAorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQorI3VuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSVNBX0lPICAgICAgMHhGRTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JTyAgICAgIDB4RkUwMDAwMDAKIAogLyoKICAqIHNlcmlhbCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUgICAgMQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSyAgICAgZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsgICAgIGdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEgICAgKENGR19FVU1CX0FERFIgKyAweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIgICAgKENGR19FVU1CX0FERFIgKyAweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xICAgIChDT05GSUdfU1lTX0VVTUJfQUREUiArIDB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIgICAgKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NjAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAxMjgKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAgICAgMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAgICAgIDB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgIDEyOAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0yMjUsMzUgKzIyNSwzNSBAQAogICovCiAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUSAgMzMwMDAwMDAKLSNkZWZpbmUgQ0ZHX0haCQkJIDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkgMTAwMDAKIAogLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjEuICAqLwotI2RlZmluZSBDRkdfUk9NTkFMICAgICAgNwotI2RlZmluZSBDRkdfUk9NRkFMICAgICAgMTEKKyNkZWZpbmUgQ09ORklHX1NZU19ST01OQUwgICAgICA3CisjZGVmaW5lIENPTkZJR19TWVNfUk9NRkFMICAgICAgMTEKIAogLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjIuICAqLwotI2RlZmluZSBDRkdfVFNXQUlUICAgICAgMHg1Ci0jZGVmaW5lIENGR19SRUZJTlQgICAgICA0MzAKKyNkZWZpbmUgQ09ORklHX1NZU19UU1dBSVQgICAgICAweDUKKyNkZWZpbmUgQ09ORklHX1NZU19SRUZJTlQgICAgICA0MzAKIAogLyogQnVyc3QgVG8gUHJlY2hhcmdlLiBCaXRzIG9mIHRoaXMgdmFsdWUgZ28gdG8gTUNDUjMgYW5kIE1DQ1I0LiAgKi8KLSNkZWZpbmUgQ0ZHX0JTVE9QUkUgICAgIDEyMQorI2RlZmluZSBDT05GSUdfU1lTX0JTVE9QUkUgICAgIDEyMQogCiAvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMy4gICovCi0jZGVmaW5lIENGR19SRUZSRUMgICAgICA4CisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDICAgICAgOAogCiAvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSNC4gICovCi0jZGVmaW5lIENGR19QUkVUT0FDVCAgICAzCi0jZGVmaW5lIENGR19BQ1RUT1BSRSAgICA1Ci0jZGVmaW5lIENGR19BQ1RPUlcgICAgICAzCi0jZGVmaW5lIENGR19TRE1PREVfQ0FTX0xBVCAgMwotI2RlZmluZSBDRkdfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDEKLSNkZWZpbmUgQ0ZHX0VYVFJPTSAgICAgIDEKLSNkZWZpbmUgQ0ZHX1JFR0RJTU0gICAgIDAKLSNkZWZpbmUgQ0ZHX0RCVVNfU0laRTIgIDEKLSNkZWZpbmUgQ0ZHX1NETU9ERV9XUkFQIDAKKyNkZWZpbmUgQ09ORklHX1NZU19QUkVUT0FDVCAgICAzCisjZGVmaW5lIENPTkZJR19TWVNfQUNUVE9QUkUgICAgNQorI2RlZmluZSBDT05GSUdfU1lTX0FDVE9SVyAgICAgIDMKKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVCAgMworI2RlZmluZSBDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAxCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUk9NICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX1JFR0RJTU0gICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19EQlVTX1NJWkUyICAxCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX1dSQVAgMAogCi0jZGVmaW5lIENGR19QR01BWCAgICAgICAweDMyCi0jZGVmaW5lIENGR19TRFJBTV9EU0NEICAweDIwCisjZGVmaW5lIENPTkZJR19TWVNfUEdNQVggICAgICAgMHgzMgorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0RTQ0QgIDB4MjAKIAogLyogTWVtb3J5IGJhbmsgc2V0dGluZ3MuCiAgKiBPbmx5IGJpdHMgMjAtMjkgYXJlIGFjdHVhbGx5IHVzZWQgZnJvbSB0aGVzZSB2YWxlcyB0byBzZXQgdGhlCkBAIC0yNjIsNzAgKzI2Miw3MCBAQAogICogYWRkcmVzcy4gUmVmZXIgdG8gdGhlIE1QQzgyNDAgYm9vay4KICAqLwogCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVAkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5ECSAgICAoQ0ZHX01BWF9SQU1fU0laRSAtIDEpCi0jZGVmaW5lIENGR19CQU5LMF9FTkFCTEUgICAgMQotI2RlZmluZSBDRkdfQkFOSzFfU1RBUlQgICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksxX0VORCAgICAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMV9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzJfU1RBUlQgICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksyX0VORCAgICAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMl9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzNfU1RBUlQgICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkszX0VORCAgICAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LM19FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzRfU1RBUlQgICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VORCAgICAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNF9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzVfU1RBUlQgICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VORCAgICAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNV9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzZfU1RBUlQgICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VORCAgICAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNl9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzdfU1RBUlQgICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VORCAgICAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LN19FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX1NUQVJUCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5ECSAgICAoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VOQUJMRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfU1RBUlQgICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkQgICAgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfU1RBUlQgICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkQgICAgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfU1RBUlQgICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkQgICAgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfU1RBUlQgICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkQgICAgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfU1RBUlQgICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkQgICAgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfU1RBUlQgICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkQgICAgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfU1RBUlQgICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkQgICAgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VOQUJMRSAgICAwCiAKLSNkZWZpbmUgQ0ZHX09EQ1IJICAgIDB4ZmYKKyNkZWZpbmUgQ09ORklHX1NZU19PRENSCSAgICAweGZmCiAKLSNkZWZpbmUgQ0ZHX0lCQVQwTCAgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQyTCAgKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQzTCAgKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMICAoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAgQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVICBDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMICBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgIENGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVICBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMICBDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSAgQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAgQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgIENPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMICBDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSAgQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jdW5kZWYgIENGR19GTEFTSF9QUk9URUNUSU9OCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCQk2MwkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgcGVyIGZsYXNoCSovCisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQk2MwkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgcGVyIGZsYXNoCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMDAKIAogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKQEAgLTMzNyw5ICszMzcsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NVlMxLmggYi9pbmNsdWRlL2NvbmZpZ3MvTVZTMS5oCmluZGV4IGRhODIzMWMuLmIwMzYxMjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NVlMxLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01WUzEuaApAQCAtNTgsNyArNTgsNyBAQAogCSJib290bSIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQvZW5hYmxlZAkqLwogCkBAIC0xMDAsMzEgKzEwMCwzMSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI3VuZGVmCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjdW5kZWYJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogSHVzaCBwYXJzZSBmb3IgVS1Cb290ID8/ICovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI3VuZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkvKiBIdXNoIHBhcnNlIGZvciBVLUJvb3QgPz8gKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xMzQsNDUgKzEzNCw0NSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKIAotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwIChmb3IgQU1EMzIwREIgY2hpcCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKGZvciBBTUQzMjBEQiBjaGlwKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKIApAQCAtMTgzLDkgKzE4Myw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE5NSwxMCArMTk1LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IgICAoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAgIChTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCSAgICAgU1lQQ1JfU1dFCXwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSICAgKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IgICAoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDYsMjcgKzIwNiwyNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSICAoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUiAgKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjM1LDcgKzIzNSw3IEBACiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdAogICoKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0yNDQsNyArMjQ0LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCkBAIC0yNTQsMTQgKzI1NCwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0yNzQsMzAgKzI3NCwzMCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVECSBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMAkvKiBtYXguIG5vLiBvZiBJREUgYnVzZXMJCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkwCS8qIG1heC4gbm8uIG9mIGRyaXZlcyBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTAJLyogbWF4LiBuby4gb2YgSURFIGJ1c2VzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTAJLyogbWF4LiBuby4gb2YgZHJpdmVzIHBlciBJREUgYnVzCSovCiAKIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLS8qI2RlZmluZQlDRkdfREVSCTB4MjAwMjAwMEYqLwotI2RlZmluZSBDRkdfREVSCTAKKy8qI2RlZmluZQlDT05GSUdfU1lTX0RFUgkweDIwMDIwMDBGKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTMxMiwzMyArMzEyLDMzIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIAogLyoKICAqIEZMQVNIIHRpbWluZzoKICAqLwogLyogNTAgTUh6IENQVSAtIDUwIE1IeiBidXM6IEFDUyA9IDAwLCBUUkxYID0gMSwgQ1NOVCA9IDEsIFNDWSA9IDIsIEVIVFIgPSAxICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgT1JfU0NZXzJfQ0xLIHwgT1JfRUhUUiB8IE9SX0JJKQogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMSwgVFJMWCA9IDAsIENTTlQgPSAxLCBTQ1kgPSA1LCBFSFRSID0gMQkqLwogLyoKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVYyIHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV81X0NMSyB8IE9SX0VIVFIpCiAqLwogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCiAjaWZkZWYgQ09ORklHX01WU18xNkJJVF9GTEFTSAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKICNlbHNlCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzMyIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX1YgKQogI2VuZGlmCiAKLSN1bmRlZiBDRkdfT1IxX1JFTUFQCi0jdW5kZWYgQ0ZHX09SMV9QUkVMSU0KLSN1bmRlZiBDRkdfQlIxX1BSRUxJTQorI3VuZGVmIENPTkZJR19TWVNfT1IxX1JFTUFQCisjdW5kZWYgQ09ORklHX1NZU19PUjFfUFJFTElNCisjdW5kZWYgQ09ORklHX1NZU19CUjFfUFJFTElNCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKICAqCkBAIC0zNDgsMTMgKzM0OCwxMyBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKLSN1bmRlZiBDRkdfT1IzX1BSRUxJTQotI3VuZGVmIENGR19CUjNfUFJFTElNCisjdW5kZWYgQ09ORklHX1NZU19PUjNfUFJFTElNCisjdW5kZWYgQ09ORklHX1NZU19CUjNfUFJFTElNCiAKIAogLyoKQEAgLTM4MywyNiArMzgzLDI2IEBACiAgKiA2NiBNaHogPT4gNjYuMDAwLjAwMCAvIERpdmlkZXIgPSAxMjkKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJIDk4CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCSA5OAogCiAvKiByZWZyZXNoIHJhdGUgMTUuNiB1cyAoPSA2NCBtcyAvIDRLID0gNjIuNCAvIHF1YWQgYnVyc3RzKSBmb3IgPD0gMTI4IE1CaXQJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0E3IHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NaWdvUi5oIGIvaW5jbHVkZS9jb25maWdzL01pZ29SLmgKaW5kZXggN2Q5MGUxNi4uZTE3MWY3NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01pZ29SLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01pZ29SLmgKQEAgLTU4LDkwICs1OCw5MCBAQAogI2RlZmluZSBNSUdPX1JfRkxBU0hfQkFTRV8xCSgweEEwMDAwMDAwKQogI2RlZmluZSBNSUdPX1JfRkxBU0hfQkFOS19TSVpFCSg2NCAqIDEwMjQgKiAxMDI0KQogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBCdWZmZXIgc2l6ZSBmb3IgaW5wdXQgZnJvbSB0aGUgQ29uc29sZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCQkyNTYJCS8qIEJ1ZmZlciBzaXplIGZvciBDb25zb2xlIG91dHB1dCAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBhcmdzIGFjY2VwdGVkIGZvciBtb25pdG9yIGNvbW1hbmRzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQk1MTIJCS8qIEJ1ZmZlciBzaXplIGZvciBCb290IEFyZ3VtZW50cyBwYXNzZWQgdG8ga2VybmVsICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCB9CS8qIExpc3Qgb2YgbGVnYWwgYmF1ZHJhdGUgc2V0dGluZ3MgZm9yIHRoaXMgYm9hcmQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIEJ1ZmZlciBzaXplIGZvciBpbnB1dCBmcm9tIHRoZSBDb25zb2xlICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkyNTYJCS8qIEJ1ZmZlciBzaXplIGZvciBDb25zb2xlIG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggYXJncyBhY2NlcHRlZCBmb3IgbW9uaXRvciBjb21tYW5kcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCTUxMgkJLyogQnVmZmVyIHNpemUgZm9yIEJvb3QgQXJndW1lbnRzIHBhc3NlZCB0byBrZXJuZWwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCB9CS8qIExpc3Qgb2YgbGVnYWwgYmF1ZHJhdGUgc2V0dGluZ3MgZm9yIHRoaXMgYm9hcmQgKi8KIAogLyogU0NJRiAqLwogI2RlZmluZSBDT05GSUdfU0NJRl9DT05TT0xFCTEKICNkZWZpbmUgQ09ORklHX0NPTlNfU0NJRjAJMQotI3VuZGVmICBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCS8qIFN1cHByZXNzIGRpc3BsYXkgb2YgY29uc29sZQorI3VuZGVmICBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkvKiBTdXBwcmVzcyBkaXNwbGF5IG9mIGNvbnNvbGUKIAkJCQkJCQkJICAgaW5mb3JtYXRpb24gYXQgYm9vdCAqLwotI3VuZGVmICBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQotI3VuZGVmICBDRkdfQ09OU09MRV9FTlZfT1ZFUldSSVRFCisjdW5kZWYgIENPTkZJR19TWVNfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQorI3VuZGVmICBDT05GSUdfU1lTX0NPTlNPTEVfRU5WX09WRVJXUklURQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCShNSUdPX1JfU0RSQU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoQ0ZHX01FTVRFU1RfU1RBUlQgKyAoNjAgKiAxMDI0ICogMTAyNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkoTUlHT19SX1NEUkFNX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCShDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgKyAoNjAgKiAxMDI0ICogMTAyNCkpCiAKIC8qIEVuYWJsZSBhbHRlcm5hdGUsIG1vcmUgZXh0ZW5zaXZlLCBtZW1vcnkgdGVzdCAqLwotI3VuZGVmICBDRkdfQUxUX01FTVRFU1QKKyN1bmRlZiAgQ09ORklHX1NZU19BTFRfTUVNVEVTVAogLyogU2NyYXRjaCBhZGRyZXNzIHVzZWQgYnkgdGhlIGFsdGVybmF0ZSBtZW1vcnkgdGVzdCAqLwotI3VuZGVmICBDRkdfTUVNVEVTVF9TQ1JBVENICisjdW5kZWYgIENPTkZJR19TWVNfTUVNVEVTVF9TQ1JBVENICiAKIC8qIEVuYWJsZSB0ZW1wb3JhcnkgYmF1ZHJhdGUgY2hhbmdlIHdoaWxlIHNlcmlhbCBkb3dubG9hZCAqLwotI3VuZGVmICBDRkdfTE9BRFNfQkFVRF9DSEFOR0UKKyN1bmRlZiAgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCShNSUdPX1JfU0RSQU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCShNSUdPX1JfU0RSQU1fQkFTRSkKIC8qIG1heWJlIG1vcmUsIGJ1dCBpZiBzbyB1LWJvb3QgZG9lc24ndCBrbm93IGFib3V0IGl0Li4uICovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCSg2NCAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJKDY0ICogMTAyNCAqIDEwMjQpCiAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyBmb3Igc2NyaXB0cyA/IT8gKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkoQ0ZHX1NEUkFNX0JBU0UgKyAxNiAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMTYgKiAxMDI0ICogMTAyNCkKIAogLyogQWRkcmVzcyBvZiB1LWJvb3QgaW1hZ2UgaW4gRmxhc2ggKE5PVCBydW4gdGltZSBhZGRyZXNzIGluIFNEUkFNKSA/IT8gKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoTUlHT19SX0ZMQVNIX0JBU0VfMSkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKE1JR09fUl9GTEFTSF9CQVNFXzEpCiAvKiBNb25pdG9yIHNpemUgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSgxMjggKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCSgxMjggKiAxMDI0KQogLyogU2l6ZSBvZiBEUkFNIHJlc2VydmVkIGZvciBtYWxsb2MoKSB1c2UgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JKDI1NiAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkoMjU2ICogMTAyNCkKIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkoMjU2KQotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkoMjU2KQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCAqIDEwMjQgKiAxMDI0KQogCiAvKiBGTEFTSCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jdW5kZWYgIENGR19GTEFTSF9RVUlFVF9URVNUCisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAogLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogLyogUGh5c2ljYWwgc3RhcnQgYWRkcmVzcyBvZiBGbGFzaCBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJKE1JR09fUl9GTEFTSF9CQVNFXzEpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkoTUlHT19SX0ZMQVNIX0JBU0VfMSkKIC8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBlYWNoIEZsYXNoIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgogCiAvKiBpZiB5b3UgdXNlIGFsbCBOT1IgRmxhc2ggLCB5b3UgY2hhbmdlIGRpcC1zd2l0Y2guIFBsZWFzZSBzZWUgTUlHT19SMDEgTWFudWFsLiAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSArICgwICogTUlHT19SX0ZMQVNIX0JBTktfU0laRSkgfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgwICogTUlHT19SX0ZMQVNIX0JBTktfU0laRSkgfQogCiAvKiBUaW1lb3V0IGZvciBGbGFzaCBlcmFzZSBvcGVyYXRpb25zIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDMgKiAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDMgKiAxMDAwKQogLyogVGltZW91dCBmb3IgRmxhc2ggd3JpdGUgb3BlcmF0aW9ucyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgzICogMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgzICogMTAwMCkKIC8qIFRpbWVvdXQgZm9yIEZsYXNoIHNldCBzZWN0b3IgbG9jayBiaXQgb3BlcmF0aW9ucyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJKDMgKiAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0xPQ0tfVE9VVAkoMyAqIDEwMDApCiAvKiBUaW1lb3V0IGZvciBGbGFzaCBjbGVhciBsb2NrIGJpdCBvcGVyYXRpb25zIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUCSgzICogMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVAkoMyAqIDEwMDApCiAKIC8qIFVzZSBoYXJkd2FyZSBmbGFzaCBzZWN0b3JzIHByb3RlY3Rpb24gaW5zdGVhZCBvZiBVLUJvb3Qgc29mdHdhcmUgcHJvdGVjdGlvbiAqLwotI3VuZGVmICBDRkdfRkxBU0hfUFJPVEVDVElPTgotI3VuZGVmICBDRkdfRElSRUNUX0ZMQVNIX1RGVFAKKyN1bmRlZiAgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCisjdW5kZWYgIENPTkZJR19TWVNfRElSRUNUX0ZMQVNIX1RGVFAKIAogLyogRU5WIHNldHRpbmcgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCSgxMjggKiAxMDI0KQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCShDT05GSUdfRU5WX1NFQ1RfU0laRSkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCi0vKiBPZmZzZXQgb2YgZW52IEZsYXNoIHNlY3RvciByZWxhdGl2ZSB0byBDRkdfRkxBU0hfQkFTRSAqLwotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENPTkZJR19FTlZfQUREUiAtIENGR19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQorLyogT2Zmc2V0IG9mIGVudiBGbGFzaCBzZWN0b3IgcmVsYXRpdmUgdG8gQ09ORklHX1NZU19GTEFTSF9CQVNFICovCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ09ORklHX0VOVl9BRERSIC0gQ09ORklHX1NZU19GTEFTSF9CQVNFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NFQ1RfU0laRSkKIAogLyogQm9hcmQgQ2xvY2sgKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkzMzMzMzMzMwogI2RlZmluZSBUTVVfQ0xLX0RJVklERVIJCSg0KQkvKiA0IChkZWZhdWx0KSwgMTYsIDY0LCAyNTYgb3IgMTAyNCAqLwotI2RlZmluZSBDRkdfSFoJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gVE1VX0NMS19ESVZJREVSKQogCiAjZW5kaWYJLyogX19NSUdPX1JfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL05DNjUwLmggYi9pbmNsdWRlL2NvbmZpZ3MvTkM2NTAuaAppbmRleCAzZTY0YTdlLi40MjNjYTcxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTkM2NTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTkM2NTAuaApAQCAtNTUsMTUgKzU1LDE1IEBACiAvKgogICogMTUgTUh6IC0gQ1BVIG1pbmltdW0gY2xvY2sKICAqLwotI2RlZmluZSBDRkdfOHh4X0NQVUNMS19NSU4JCTE1MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfOHh4X0NQVUNMS19NSU4JCTE1MDAwMDAwCiAKIC8qCiAgKiAxMzMgTUh6IC0gQ1BVIG1heGltdW0gY2xvY2sKICAqLwotI2RlZmluZSBDRkdfOHh4X0NQVUNMS19NQVgJCTEzMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUFYCQkxMzMwMDAwMDAKIAotI2RlZmluZSBDRkdfTUVBU1VSRV9DUFVDTEsKLSNkZWZpbmUgQ0ZHXzhYWF9YSU4JCQlDT05GSUdfOHh4X09TQ0xLCisjZGVmaW5lIENPTkZJR19TWVNfTUVBU1VSRV9DUFVDTEsKKyNkZWZpbmUgQ09ORklHX1NZU184WFhfWElOCQkJQ09ORklHXzh4eF9PU0NMSwogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJCTUJLyogYXV0b2Jvb3QgYWZ0ZXIgNSBzZWNvbmRzCSovCiAjZGVmaW5lIENPTkZJR19BVVRPQk9PVF9LRVlFRApAQCAtOTksMTQgKzk5LDE0IEBACiAjZGVmaW5lCUNPTkZJR19GRUNfRU5FVAkJMQkvKiB1c2UgRkVDIGV0aGVybmV0ICAqLwogI2RlZmluZSBGRUNfRU5FVAogI2RlZmluZSBDT05GSUdfTUlJCi0jZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkJMQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQkxCiAKIAogLyogZW5hYmxlIEkyQyBhbmQgc2VsZWN0IHRoZSBoYXJkd2FyZS9zb2Z0d2FyZSBkcml2ZXIgKi8KICN1bmRlZiAgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAkvKiAxMDAga0h6CQkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3ZgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIDEwMCBrSHoJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3ZgogCiAvKgogICogU29mdHdhcmUgKGJpdC1iYW5nKSBJMkMgZHJpdmVyIGNvbmZpZ3VyYXRpb24KQEAgLTE0MSw3ICsxNDEsNyBAQAogI2RlZmluZQlJMkNfVFJJU1RBVEUJeyBfX0kyQ19ESVIgJj0gflNEQTsgfQogCiAjZGVmaW5lIENPTkZJR19SVENfUENGODU2MwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCQkweDUxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCQkweDUxCiAKIAogLyoKQEAgLTE2MiwyNSArMTYyLDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA0MDAwMDAJLyogMSAuLi4gNCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA0MDAwMDAJLyogMSAuLi4gNCBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTkwLDQ2ICsxOTAsNDYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfSU1NUl9TSVpFCQkoKHVpbnQpKDY0ICogMTAyNCkpCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVJfU0laRQkJKCh1aW50KSg2NCAqIDEwMjQpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQpAQCAtMjQxLDE1ICsyNDEsMTUgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyoKICAqIE5BTkQgZmxhc2ggc3VwcG9ydAogICovCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1OSwzMSArMjU5LDMxIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTSVVNQ1IgLSBTSVUgTW9kdWxlIENvbmZpZ3VyYXRpb24JCQkJCTExLTYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTI5Miw3ICsyOTIsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAJfCBTQ0NSX0RGU1lOQzAwCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMDAJfCBTQ0NSX0RGU1lOQzAwCXwgXAogCQkJIFNDQ1JfREZCUkcwMAl8IFNDQ1JfREZOTDAwMAl8IFNDQ1JfREZOSDAwMAl8IFwKIAkJCSBTQ0NSX0RGTENEMDAwCXwgU0NDUl9ERkFMQ0QwMCkKIApAQCAtMzAxLDcgKzMwMSw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zMTEsMjkgKzMxMSwyOSBAQAogCiAjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQkweDQwMDAwMDAwCS8qIEZMQVNIIGJhbmsgIzAJKi8KIAotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBEZWZhdWx0IHZhbHVlIG9mIE9SMCBhZnRlciByZXNldCAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfTVNLIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfTVNLIHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV8xNV9DTEsgfCBPUl9UUkxYKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YpCiAKIC8qCiAgKiBCUjIgYW5kIE9SMiAoTkFORCBGbGFzaCkgLSBhZGRyZXNzZWQgdGhyb3VnaCBVUE1CIG9uIHJldiAxCiAgKiByZXYyIG9ubHkgdXNlcyB0aGUgY2hpcHNlbGVjdAogICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4NTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX05BTkRfU0laRQkJMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJMHg1MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfU0laRQkJMHgwNDAwMDAwMAogCi0jZGVmaW5lIENGR19PUl9USU1JTkdfTkFORAkoT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWMSB8IE9SX0JJIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19OQU5ECShPUl9DU05UX1NBTSB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV8xNV9DTEsgfCBPUl9FSFRSIHwgT1JfVFJMWCkKIAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTSAgKChDRkdfTkFORF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9NU19VUE1CIHwgQlJfViAgKQotI2RlZmluZSBDRkdfT1IyX1BSRUxJTSAgKCgoLUNGR19OQU5EX1NJWkUpICYgT1JfQU1fTVNLKSB8IE9SX0JJICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNICAoKENPTkZJR19TWVNfTkFORF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9NU19VUE1CIHwgQlJfViAgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0gICgoKC1DT05GSUdfU1lTX05BTkRfU0laRSkgJiBPUl9BTV9NU0spIHwgT1JfQkkgKQogCiAvKgogICogQlIzIGFuZCBPUjMgKFNEUkFNKQpAQCAtMzQ0LDQxICszNDQsNDEgQEAKICAvKgogICAqIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCiAgICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNKQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YpCiAKIC8qCiAgKiBCUjQgYW5kIE9SNCAoQ1BMRCkKICAqLwotI2RlZmluZSBDRkdfQ1BMRF9CQVNFICAgICAgICAgICAweDgwMDAwMDAwICAgICAgLyogQ1BMRCAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0NQTERfU0laRSAgICAgICAgICAgMHgxMDAwMCAgICAgICAgIC8qIG9ubHkgMTYgdXNlZCAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BMRF9CQVNFICAgICAgICAgICAweDgwMDAwMDAwICAgICAgLyogQ1BMRCAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUExEX1NJWkUgICAgICAgICAgIDB4MTAwMDAgICAgICAgICAvKiBvbmx5IDE2IHVzZWQgICAgICAgICAqLwogCi0jZGVmaW5lIENGR19PUl9USU1JTkdfQ1BMRAkoT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWMSB8IE9SX0JJIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19DUExECShPUl9DU05UX1NBTSB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV8xX0NMSykKIAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTSAgKChDRkdfQ1BMRF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0gICgoKC1DRkdfQ1BMRF9TSVpFKSAmIE9SX0FNX01TSykgfCBDRkdfT1JfVElNSU5HX0NQTEQpCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTSAgKChDT05GSUdfU1lTX0NQTERfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTSAgKCgoLUNPTkZJR19TWVNfQ1BMRF9TSVpFKSAmIE9SX0FNX01TSykgfCBDT05GSUdfU1lTX09SX1RJTUlOR19DUExEKQogCiAvKgogICogQlI1IGFuZCBPUjUgKFNSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX1NSQU1fQkFTRQkJMHg2MDAwMDAwMAotI2RlZmluZSBDRkdfU1JBTV9TSVpFCQkweDAwMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1JBTV9CQVNFCQkweDYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1JBTV9TSVpFCQkweDAwMDgwMDAwCiAKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TUkFNCShPUl9DU05UX1NBTSB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NSQU0JKE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjEgfCBPUl9CSSB8IFwKIAkJCQkgT1JfU0NZXzE1X0NMSyB8IE9SX0VIVFIgfCBPUl9UUkxYKQogCi0jZGVmaW5lIENGR19CUjVfUFJFTElNICAoKENGR19TUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQotI2RlZmluZSBDRkdfT1I1X1BSRUxJTSAgKCgoLUNGR19TUkFNX1NJWkUpICYgT1JfQU1fTVNLKSB8IENGR19PUl9USU1JTkdfU1JBTSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNICAoKENPTkZJR19TWVNfU1JBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNICAoKCgtQ09ORklHX1NZU19TUkFNX1NJWkUpICYgT1JfQU1fTVNLKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NSQU0pCiAKICNpZiBkZWZpbmVkKENPTkZJR19DUDg1MCkKIC8qCiAgKiAgQlI2IGFuZCBPUjYgKERQUkFNKSAtIG9ubHkgb24gQ1A4NTAKICAqLwotI2RlZmluZSBDRkdfT1I2X1BSRUxJTSAgICAgICAgICAweGZmZmY4MTcwCi0jZGVmaW5lIENGR19CUjZfUFJFTElNICAgICAgICAgIDB4YTAwMDA0MDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjZfUFJFTElNICAgICAgICAgIDB4ZmZmZjgxNzAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjZfUFJFTElNICAgICAgICAgIDB4YTAwMDA0MDEKICNkZWZpbmUgRFBSQU1fQkFTRV9BRERSICAgICAgICAgMHhhMDAwMDAwMAogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUiAgICAgIDEKQEAgLTM5MSwzMSArMzkxLDMxIEBACiAgKiA0ICAgIE51bWJlciBvZiByZWZyZXNoIGN5Y2xlcyBwZXIgcGVyaW9kCiAgKiA2NCAgIFJlZnJlc2ggY3ljbGUgaW4gbXMgcGVyIG51bWJlciBvZiByb3dzCiAgKi8KLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCQkoKDQwOTYgKiA2NCAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJCSgoNDA5NiAqIDY0ICogMTAwMCkgLyAoNCAqIDY0KSkKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKICAqLwogCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTUFNUl9QVEEJCTM5CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCTM5CiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRSB8IFwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8IFwKIAkJCSBNQU1SX1JMRkFfMVggICAgfCBNQU1SX1dMRkFfMVggICAgfCBNQU1SX1RMRkFfNFgpCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUgfCBcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfCBcCiAJCQkgTUFNUl9STEZBXzFYICAgIHwgTUFNUl9XTEZBXzFYICAgIHwgTUFNUl9UTEZBXzRYKQogCkBAIC00MjMsNyArNDIzLDcgQEAKICAqIE1CTVIgc2V0dGluZ3MgZm9yIE5BTkQgZmxhc2gKICAqLwogCi0jZGVmaW5lIENGR19NQk1SX05BTkQgKCBNQk1SX1dMRkJfNVggKQorI2RlZmluZSBDT05GSUdfU1lTX01CTVJfTkFORCAoIE1CTVJfV0xGQl81WCApCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL05FVFBIT05FLmggYi9pbmNsdWRlL2NvbmZpZ3MvTkVUUEhPTkUuaAppbmRleCA3Y2M2MzY0Li5hMTQ3YWZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTkVUUEhPTkUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTkVUUEhPTkUuaApAQCAtNzMsNyArNzMsNyBAQAogCiAjZGVmaW5lIENPTkZJR19BVVRPU0NSSVBUCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTAJLyogZWNobyBvZmYgZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtOTksNyArOTksNyBAQAogCiAjZGVmaW5lCUNPTkZJR19ORVRfTVVMVEkJMQkvKiB0aGUgb25seSB3YXkgdG8gZ2V0IHRoZSBGRUMgaW4gKi8KICNkZWZpbmUJRkVDX0VORVQJCTEJLyogZXRoLmMgbmVlZHMgaXQgdGhhdCB3YXkuLi4gKi8KLSN1bmRlZiBDRkdfRElTQ09WRVJfUEhZCisjdW5kZWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKICNkZWZpbmUgQ09ORklHX01JSQkJMQogI2RlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKICNkZWZpbmUgQ09ORklHX1JNSUkJCTEJLyogdXNlIFJNSUkgaW50ZXJmYWNlICovCkBAIC0xMzMsMjkgKzEzMywyOSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCTEKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMzAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA3MDAwMDAJLyogMyAuLi4gNyBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAzMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA3MDAwMDAJLyogMyAuLi4gNyBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjUsNzQgKzE2NSw3NCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgzMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgzMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKICNpZiBkZWZpbmVkKERFQlVHKQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCiAjZWxzZQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogI2lmIENPTkZJR19ORVRQSE9ORV9WRVJTSU9OID09IDIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0U0CQkweDQwMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRTQJCTB4NDAwODAwMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgICAweDgwMDAwMDAwCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogI2lmIENPTkZJR19ORVRQSE9ORV9WRVJTSU9OID09IDEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwogI2VsaWYgQ09ORklHX05FVFBIT05FX1ZFUlNJT04gPT0gMgotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAKIAotI2RlZmluZQlDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4NjAwMDApCisjZGVmaW5lCUNPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NjAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkwCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHg0MDAwCiAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDcwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFJfUkVEVU5ECShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDcwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJMAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECUNPTkZJR19FTlZfU0laRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0MiwxMCArMjQyLDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTQsOSArMjU0LDkgQEAKICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0ZSQykKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9GUkMpCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9GUkMpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfRlJDKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2NCwyMCArMjY0LDIwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjkwLDI3ICsyOTAsMjcgQEAKICNpZiBDT05GSUdfWElOID09IDEwMDAwMDAwCiAKICNpZiBNUEM4WFhfSFogPT0gMTIwMDAwMDAwCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgwIDw8IFBMUFJDUl9TX1NISUZUKSB8ICgxMiA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbGlmIE1QQzhYWF9IWiA9PSAxMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDAgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDEwIDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDAgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2VsaWYgTVBDOFhYX0haID09IDUwMDAwMDAwCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgxIDw8IFBMUFJDUl9TX1NISUZUKSB8ICg4IDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDMgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2VsaWYgTVBDOFhYX0haID09IDI1MDAwMDAwCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgyIDw8IFBMUFJDUl9TX1NISUZUKSB8ICg4IDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDMgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2VsaWYgTVBDOFhYX0haID09IDQwMDAwMDAwCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgxIDw8IFBMUFJDUl9TX1NISUZUKSB8ICg4IDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDQgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2VsaWYgTVBDOFhYX0haID09IDc1MDAwMDAwCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgxIDw8IFBMUFJDUl9TX1NISUZUKSB8ICgxNSA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbHNlCkBAIC0zMjAsMTUgKzMyMCwxNSBAQAogI2VsaWYgQ09ORklHX1hJTiA9PSA1MDAwMDAwMAogCiAjaWYgTVBDOFhYX0haID09IDEyMDAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMCA8PCBQTFBSQ1JfU19TSElGVCkgfCAoMTIgPDwgUExQUkNSX01GSV9TSElGVCkgfCAoNCA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gMTAwMDAwMDAwCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgwIDw8IFBMUFJDUl9TX1NISUZUKSB8ICg2IDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDIgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2VsaWYgTVBDOFhYX0haID09ICA2NjY2NjY2NgotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMSA8PCBQTFBSQ1JfU19TSElGVCkgfCAoOCA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICgyIDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbHNlCkBAIC0zNTMsMTIgKzM1MywxMiBAQAogCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQogI2lmIE1QQzhYWF9IWiA+IDY2NjY2NjY2Ci0jZGVmaW5lIENGR19TQ0NSCSgvKiBTQ0NSX1RCUwl8ICovIFNDQ1JfQ1JRRU4gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoLyogU0NDUl9UQlMJfCAqLyBTQ0NSX0NSUUVOIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDAgfCBTQ0NSX0VCREYwMSkKICNlbHNlCi0jZGVmaW5lIENGR19TQ0NSCSgvKiBTQ0NSX1RCUwl8ICovIFNDQ1JfQ1JRRU4gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoLyogU0NDUl9UQlMJfCAqLyBTQ0NSX0NSUUVOIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCkBAIC0zNjksOCArMzY5LDggQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLS8qI2RlZmluZQlDRkdfREVSCTB4MjAwMjAwMEYqLwotI2RlZmluZSBDRkdfREVSCTAKKy8qI2RlZmluZQlDT05GSUdfU1lTX0RFUgkweDIwMDIwMDBGKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM4NCwyMyArMzg0LDIzIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMTEsIFRSTFggPSAwLCBDU05UID0gMSwgU0NZID0gNSwgRUhUUiA9IDEJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQkkgfCBPUl9TQ1lfNV9DTEsgfCBPUl9UUkxYKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQkkgfCBPUl9TQ1lfNV9DTEsgfCBPUl9UUkxYKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKIAogI2lmIENPTkZJR19ORVRQSE9ORV9WRVJTSU9OID09IDIKIAogI2RlZmluZSBGTEFTSF9CQVNFNF9QUkVMSU0JMHg0MDA4MDAwMAkvKiBGTEFTSCBiYW5rICMxCSovCiAKLSNkZWZpbmUgQ0ZHX09SNF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JKChGTEFTSF9CQVNFNF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0JKChGTEFTSF9CQVNFNF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQogCiAjZW5kaWYKIApAQCAtNDEyLDEwICs0MTIsMTAgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCSgyNTYgPDwgMjApCS8qIG1heCAyNTZNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCShPUl9DU05UX1NBTSB8IE9SX0c1TFMpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCShPUl9DU05UX1NBTSB8IE9SX0c1TFMpCiAKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JKCgweEZGRkZGRkZGTFUgJiB+KFNEUkFNX01BWF9TSVpFIC0gMSkpIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSkKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1BTXzMyIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCSgoMHhGRkZGRkZGRkxVICYgfihTRFJBTV9NQVhfU0laRSAtIDEpKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1BTXzMyIHwgQlJfVikKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKQEAgLTQ0OCwzNCArNDQ4LDM0IEBACiAgKiA4MCBNaHogPT4gODAuMDAwLjAwMCAvIERpdmlkZXIgPSAxNTYKICAqLwogCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJIDIzNAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCQkgMjM0CiAKIC8qCiAgKiBGb3IgMTYgTUJpdCwgcmVmcmVzaCByYXRlcyBjb3VsZCBiZSAzMS4zIHVzCiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApAQCAtNTAxLDEyICs1MDEsMTIgQEAKIAogLyogTkFORCAqLwogI2RlZmluZSBDT05GSUdfTkFORF9MRUdBQ1kKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkJTkFORF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQlOQU5EX0JBU0UKICNkZWZpbmUgQ09ORklHX01URF9OQU5EX0VDQ19KRkZTMgogI2RlZmluZSBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFCiAjZGVmaW5lIENPTkZJR19NVERfTkFORF9VTlNBRkUKIAotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQogCiAjZGVmaW5lIFNFQ1RPUlNJWkUJCTUxMgogI2RlZmluZSBBRERSX0NPTFVNTgkJMQpAQCAtNTE5LDM5ICs1MTksMzkgQEAKIC8qIEFMRSA9IFBEMTcsIENMRSA9IFBFMTgsIENFID0gUEUyMCwgRl9SWV9CWSA9IFBFMzEgKi8KICNkZWZpbmUgTkFORF9ESVNBQkxFX0NFKG5hbmQpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSB8PSAgKDEgPDwgKDMxIC0gMjApKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSB8PSAgKDEgPDwgKDMxIC0gMjApKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0VOQUJMRV9DRShuYW5kKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgJj0gfigxIDw8ICgzMSAtIDIwKSk7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgJj0gfigxIDw8ICgzMSAtIDIwKSk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9DVExfQ0xSQUxFKG5hbmRwdHIpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSAmPSB+KDEgPDwgKDMxIC0gMTcpKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSAmPSB+KDEgPDwgKDMxIC0gMTcpKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0NUTF9TRVRBTEUobmFuZHB0cikgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpIHw9ICAoMSA8PCAoMzEgLSAxNykpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpIHw9ICAoMSA8PCAoMzEgLSAxNykpOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIE5BTkRfQ1RMX0NMUkNMRShuYW5kcHRyKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgJj0gfigxIDw8ICgzMSAtIDE4KSk7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgJj0gfigxIDw8ICgzMSAtIDE4KSk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9DVExfU0VUQ0xFKG5hbmRwdHIpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSB8PSAgKDEgPDwgKDMxIC0gMTgpKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSB8PSAgKDEgPDwgKDMxIC0gMTgpKTsgXAogCX0gd2hpbGUoMCkKIAogI2lmIENPTkZJR19ORVRQSE9ORV9WRVJTSU9OID09IDEKICNkZWZpbmUgTkFORF9XQUlUX1JFQURZKG5hbmQpIFwKIAlkbyB7IFwKIAkJaW50IF90cmllcyA9IDA7IFwKLQkJd2hpbGUgKCgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wZWRhdCAmICgxIDw8ICgzMSAtIDMxKSkpID09IDApIFwKKwkJd2hpbGUgKCgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQgJiAoMSA8PCAoMzEgLSAzMSkpKSA9PSAwKSBcCiAJCQlpZiAoKytfdHJpZXMgPiAxMDAwMDApIFwKIAkJCQlicmVhazsgXAogCX0gd2hpbGUgKDApCkBAIC01NTksNyArNTU5LDcgQEAKICNkZWZpbmUgTkFORF9XQUlUX1JFQURZKG5hbmQpIFwKIAlkbyB7IFwKIAkJaW50IF90cmllcyA9IDA7IFwKLQkJd2hpbGUgKCgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQgJiAoMSA8PCAoMTUgLSAxNSkpKSA9PSAwKSBcCisJCXdoaWxlICgoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCAmICgxIDw8ICgxNSAtIDE1KSkpID09IDApIFwKIAkJCWlmICgrK190cmllcyA+IDEwMDAwMCkgXAogCQkJCWJyZWFrOyBcCiAJfSB3aGlsZSAoMCkKQEAgLTU4NSw4ICs1ODUsOCBAQAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLSNkZWZpbmUgQ0ZHX0RJUkVDVF9GTEFTSF9URlRQCi0jZGVmaW5lIENGR19ESVJFQ1RfTkFORF9URlRQCisjZGVmaW5lIENPTkZJR19TWVNfRElSRUNUX0ZMQVNIX1RGVFAKKyNkZWZpbmUgQ09ORklHX1NZU19ESVJFQ1RfTkFORF9URlRQCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtNTk2LDcgKzU5Niw3IEBACiAjZGVmaW5lIFNUQVRVU19MRURfQklUCQkweDAwMDAwMDgwCQkvKiBiaXQgMjQgKi8KICNlbmRpZgogCi0jZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDRkdfSFogLyAyKQorI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ09ORklHX1NZU19IWiAvIDIpCiAjZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJU1RBVFVTX0xFRF9CTElOS0lORwogCiAjZGVmaW5lIFNUQVRVU19MRURfQUNUSVZFCTAJCS8qIExFRCBvbiBmb3IgYml0ID09IDAJKi8KQEAgLTYxMSwxNSArNjExLDE1IEBACiAKICNkZWZpbmUgX19sZWRfdG9nZ2xlKF9tc2spIFwKIAlkbyB7IFwKLQkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQgXj0gKF9tc2spOyBcCisJCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wZWRhdCBePSAoX21zayk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgX19sZWRfc2V0KF9tc2ssIF9zdCkgXAogCWRvIHsgXAogCQlpZiAoKF9zdCkpIFwKLQkJCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0IHw9IChfbXNrKTsgXAorCQkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0IHw9IChfbXNrKTsgXAogCQllbHNlIFwKLQkJCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0ICY9IH4oX21zayk7IFwKKwkJCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wZWRhdCAmPSB+KF9tc2spOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIF9fbGVkX2luaXQobXNrLCBzdCkgX19sZWRfc2V0KG1zaywgc3QpCkBAIC03NTksMjYgKzc1OSwyNiBAQAogCiAvKiBzZXJpYWwgaW50ZXJmYWNpbmcgbWFjcm9zICovCiAKLSNkZWZpbmUgU0VEMTU2WF9TUElfUlhEX1BPUlQJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQorI2RlZmluZSBTRUQxNTZYX1NQSV9SWERfUE9SVAkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQogI2RlZmluZSBTRUQxNTZYX1NQSV9SWERfTUFTSwkweDAwMDAwMDA4CiAKLSNkZWZpbmUgU0VEMTU2WF9TUElfVFhEX1BPUlQJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQorI2RlZmluZSBTRUQxNTZYX1NQSV9UWERfUE9SVAkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQogI2RlZmluZSBTRUQxNTZYX1NQSV9UWERfTUFTSwkweDAwMDAwMDA0CiAKLSNkZWZpbmUgU0VEMTU2WF9TUElfQ0xLX1BPUlQJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQorI2RlZmluZSBTRUQxNTZYX1NQSV9DTEtfUE9SVAkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQogI2RlZmluZSBTRUQxNTZYX1NQSV9DTEtfTUFTSwkweDAwMDAwMDAyCiAKLSNkZWZpbmUgU0VEMTU2WF9DU19QT1JUCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQpCisjZGVmaW5lIFNFRDE1NlhfQ1NfUE9SVAkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKICNkZWZpbmUgU0VEMTU2WF9DU19NQVNLCQkweDAwMDAwMDEwCiAKLSNkZWZpbmUgU0VEMTU2WF9BMF9QT1JUCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0KQorI2RlZmluZSBTRUQxNTZYX0EwX1BPUlQJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0KQogI2RlZmluZSBTRUQxNTZYX0EwX01BU0sJCTB4MDAyMAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYJCTEKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUJMQotI2RlZmluZSBDRkdfQ09OU09MRV9FTlZfT1ZFUldSSVRFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUJMQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfRU5WX09WRVJXUklURQkxCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC03OTEsNyArNzkxLDcgQEAKIAogLyogcGhvbmUgY29uc29sZSBjb25maWd1cmF0aW9uICovCiAKLSNkZWZpbmUgUEhPTkVfQ09OU09MRV9QT0xMX0haCQkoQ0ZHX0haLzIwMCkJLyogcG9sbCBldmVyeSA1bXMgKi8KKyNkZWZpbmUgUEhPTkVfQ09OU09MRV9QT0xMX0haCQkoQ09ORklHX1NZU19IWi8yMDApCS8qIHBvbGwgZXZlcnkgNW1zICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTkVUVEEuaCBiL2luY2x1ZGUvY29uZmlncy9ORVRUQS5oCmluZGV4IDgwNWI4MmEuLjYzODEwYjMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ORVRUQS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ORVRUQS5oCkBAIC03MCw3ICs3MCw3IEBACiAJImJvb3RtIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTAJLyogZWNobyBvZmYgZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KICNkZWZpbmUgQ09ORklHX0hXX1dBVENIRE9HCkBAIC05NSw3ICs5NSw3IEBACiAKICNkZWZpbmUJQ09ORklHX05FVF9NVUxUSQkxCS8qIHRoZSBvbmx5IHdheSB0byBnZXQgdGhlIEZFQyBpbiAqLwogI2RlZmluZQlGRUNfRU5FVAkJMQkvKiBldGguYyBuZWVkcyBpdCB0aGF0IHdheS4uLiAqLwotI3VuZGVmICBDRkdfRElTQ09WRVJfUEhZCQkvKiBkbyBub3QgZGlzY292ZXIgcGh5cyAqLworI3VuZGVmICBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQkJLyogZG8gbm90IGRpc2NvdmVyIHBoeXMgKi8KICNkZWZpbmUgQ09ORklHX01JSQkJMQogI2RlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKICNkZWZpbmUgQ09ORklHX1JNSUkJCTEJLyogdXNlIFJNSUkgaW50ZXJmYWNlICovCkBAIC0xMTcsOSArMTE3LDkgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQkvKiBhbGxvdyBtb2RpZmljYXRpb24gb2YgdmVuZG9yIHBhcmFtcyAqLwogCiAvKiBQT1NUIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9NRU1PUlkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfQ09ERUMJICAgfCBcCi0JCQkJIENGR19QT1NUX0RTUAkgICApCisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX01FTU9SWSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ09ERUMJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9EU1AJICAgKQogCiAKIC8qCkBAIC0xNDYsMjkgKzE0NiwyOSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCTEKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMzAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA3MDAwMDAJLyogMyAuLi4gNyBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAzMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA3MDAwMDAJLyogMyAuLi4gNyBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNzgsNjUgKzE3OCw2NSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgzMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgzMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKICNpZiBkZWZpbmVkKERFQlVHKQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCiAjZWxzZQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAogCi0jZGVmaW5lCUNPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg2MDAwMCkKKyNkZWZpbmUJQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg2MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTAKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAKIAotI2RlZmluZSBDT05GSUdfRU5WX0FERFJfUkVEVU5ECShDRkdfRkxBU0hfQkFTRSArIDB4NzAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NzAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkwCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJQ09ORklHX0VOVl9TSVpFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjQ2LDEwICsyNDYsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1OCw5ICsyNTgsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfRlJDKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0ZSQykKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0ZSQykKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9GUkMpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjY4LDIwICsyNjgsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yOTQsMjcgKzI5NCwyNyBAQAogI2lmIENPTkZJR19YSU4gPT0gMTAwMDAwMDAKIAogI2lmIE1QQzhYWF9IWiA9PSAxMjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDAgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDEyIDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDAgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2VsaWYgTVBDOFhYX0haID09IDEwMDAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMCA8PCBQTFBSQ1JfU19TSElGVCkgfCAoMTAgPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gNTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDEgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDggPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMyA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gMjUwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDIgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDggPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMyA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gNDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDEgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDggPDwgUExQUkNSX01GSV9TSElGVCkgfCAoNCA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gNzUwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDEgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDE1IDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDAgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2Vsc2UKQEAgLTMyNCwxOSArMzI0LDE5IEBACiAjZWxpZiBDT05GSUdfWElOID09IDUwMDAwMDAwCiAKICNpZiBNUEM4WFhfSFogPT0gMTIwMDAwMDAwCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgwIDw8IFBMUFJDUl9TX1NISUZUKSB8ICgxMiA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICg0IDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbGlmIE1QQzhYWF9IWiA9PSAxMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDAgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDYgPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMiA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gIDgwMDAwMDAwCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgwIDw8IFBMUFJDUl9TX1NISUZUKSB8ICg4IDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDQgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2VsaWYgTVBDOFhYX0haID09ICA1MDAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMSA8PCBQTFBSQ1JfU19TSElGVCkgfCAoNiA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICgyIDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbHNlCkBAIC0zNjEsMTIgKzM2MSwxMiBAQAogCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQogI2lmIE1QQzhYWF9IWiA+IDY2NjY2NjY2Ci0jZGVmaW5lIENGR19TQ0NSCSgvKiBTQ0NSX1RCUwl8ICovIFNDQ1JfQ1JRRU4gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoLyogU0NDUl9UQlMJfCAqLyBTQ0NSX0NSUUVOIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDExMSB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDAgfCBTQ0NSX0VCREYwMSkKICNlbHNlCi0jZGVmaW5lIENGR19TQ0NSCSgvKiBTQ0NSX1RCUwl8ICovIFNDQ1JfQ1JRRU4gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoLyogU0NDUl9UQlMJfCAqLyBTQ0NSX0NSUUVOIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDExMSB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCkBAIC0zNzcsOCArMzc3LDggQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLS8qI2RlZmluZQlDRkdfREVSCTB4MjAwMjAwMEYqLwotI2RlZmluZSBDRkdfREVSCTAKKy8qI2RlZmluZQlDT05GSUdfU1lTX0RFUgkweDIwMDIwMDBGKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM5MiwxNSArMzkyLDE1IEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMTEsIFRSTFggPSAwLCBDU05UID0gMSwgU0NZID0gNSwgRUhUUiA9IDEJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQkkgfCBPUl9TQ1lfNV9DTEsgfCBPUl9UUkxYKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQkkgfCBPUl9TQ1lfNV9DTEsgfCBPUl9UUkxYKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKIAogLyoKICAqIEJSMyBhbmQgT1IzIChTRFJBTSkKQEAgLTQxMCwxMCArNDEwLDEwIEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkoMjU2IDw8IDIwKQkvKiBtYXggMjU2TUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkoT1JfQ1NOVF9TQU0gfCBPUl9HNUxTKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkoT1JfQ1NOVF9TQU0gfCBPUl9HNUxTKQogCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCSgoMHhGRkZGRkZGRkxVICYgfihTRFJBTV9NQVhfU0laRSAtIDEpKSB8IENGR19PUl9USU1JTkdfU0RSQU0pCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUIgfCBCUl9QU18zMiB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkoKDB4RkZGRkZGRkZMVSAmIH4oU0RSQU1fTUFYX1NJWkUgLSAxKSkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUIgfCBCUl9QU18zMiB8IEJSX1YpCiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyCkBAIC00NDcsMTMgKzQ0NywxMyBAQAogICovCiAKICNpZiAgIE1QQzhYWF9IWiA9PSAxMjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkgMjM0CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCSAyMzQKICNlbGlmIE1QQzhYWF9IWiA9PSAxMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkgMTk1CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCSAxOTUKICNlbGlmIE1QQzhYWF9IWiA9PSAgODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkgMTU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCSAxNTYKICNlbGlmIE1QQzhYWF9IWiA9PSAgNTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkgIDk4CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCSAgOTgKICNlbHNlCiAjZXJyb3IgVW5rbm93biBmcmVxdWVuY3kKICNlbmRpZgpAQCAtNDY0LDI3ICs0NjQsMjcgQEAKICAqICg9IDY0IG1zIC8gMksgPSAxMjUgLyBxdWFkIGJ1cnN0cykuCiAgKiBGb3IgYSBzaW1wbGVyIGluaXRpYWxpemF0aW9uLCAxNS42IHVzIGlzIHVzZWQgaW5zdGVhZC4KICAqCi0gKiAjZGVmaW5lIENGR19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcwotICogI2RlZmluZSBDRkdfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuaworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuawogICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCkBAIC02MjAsMTEgKzYyMCwxMSBAQAogCiAvKiBOQU5EICovCiAjZGVmaW5lIENPTkZJR19OQU5EX0xFR0FDWQotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkJTkFORF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkJTkFORF9CQVNFCiAjZGVmaW5lIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUKICNkZWZpbmUgQ09ORklHX01URF9OQU5EX1VOU0FGRQogCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJCTEKIC8qICNkZWZpbmUgTkFORF9OT19SQiAqLwogCiAjZGVmaW5lIFNFQ1RPUlNJWkUJCTUxMgpAQCAtNjM4LDM4ICs2MzgsMzggQEAKIC8qIEFMRSA9IFBEMywgQ0xFID0gUEQ0LCBDRSA9IFBENSwgRl9SWV9CWSA9IFBDMTMgKi8KICNkZWZpbmUgTkFORF9ESVNBQkxFX0NFKG5hbmQpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgfD0gICgxIDw8ICgxNSAtIDUpKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgfD0gICgxIDw8ICgxNSAtIDUpKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0VOQUJMRV9DRShuYW5kKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpICY9IH4oMSA8PCAoMTUgLSA1KSk7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpICY9IH4oMSA8PCAoMTUgLSA1KSk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9DVExfQ0xSQUxFKG5hbmRwdHIpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgJj0gfigxIDw8ICgxNSAtIDMpKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgJj0gfigxIDw8ICgxNSAtIDMpKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0NUTF9TRVRBTEUobmFuZHB0cikgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KSB8PSAgKDEgPDwgKDE1IC0gMykpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KSB8PSAgKDEgPDwgKDE1IC0gMykpOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIE5BTkRfQ1RMX0NMUkNMRShuYW5kcHRyKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpICY9IH4oMSA8PCAoMTUgLSA0KSk7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpICY9IH4oMSA8PCAoMTUgLSA0KSk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9DVExfU0VUQ0xFKG5hbmRwdHIpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgfD0gICgxIDw8ICgxNSAtIDQpKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgfD0gICgxIDw8ICgxNSAtIDQpKTsgXAogCX0gd2hpbGUoMCkKIAogI2lmbmRlZiBOQU5EX05PX1JCCiAjZGVmaW5lIE5BTkRfV0FJVF9SRUFEWShuYW5kKSBcCiAJZG8geyBcCi0JCXdoaWxlICgoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICYgKDEgPDwgKDE1IC0gMTMpKSkgPT0gMCkgeyBcCisJCXdoaWxlICgoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCAmICgxIDw8ICgxNSAtIDEzKSkpID09IDApIHsgXAogCQkJV0FUQ0hET0dfUkVTRVQoKTsgXAogCQl9IFwKIAl9IHdoaWxlICgwKQpAQCAtNzE4LDggKzcxOCw4IEBACiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2RlZmluZSBDRkdfRElSRUNUX0ZMQVNIX1RGVFAKLSNkZWZpbmUgQ0ZHX0RJUkVDVF9OQU5EX1RGVFAKKyNkZWZpbmUgQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAorI2RlZmluZSBDT05GSUdfU1lTX0RJUkVDVF9OQU5EX1RGVFAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC03MjksMTQgKzcyOSwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtNzQ5LDIxICs3NDksMjEgQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAjZGVmaW5lIENPTkZJR19NQUNfUEFSVElUSU9OCiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTkVUVEEyLmggYi9pbmNsdWRlL2NvbmZpZ3MvTkVUVEEyLmgKaW5kZXggNjg3ZGIxZC4uNjFjNTU0NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL05FVFRBMi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ORVRUQTIuaApAQCAtNzMsNyArNzMsNyBAQAogCiAjZGVmaW5lIENPTkZJR19BVVRPU0NSSVBUCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTAJLyogZWNobyBvZmYgZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTAwLDcgKzEwMCw3IEBACiAKICNkZWZpbmUJQ09ORklHX05FVF9NVUxUSQkxCS8qIHRoZSBvbmx5IHdheSB0byBnZXQgdGhlIEZFQyBpbiAqLwogI2RlZmluZQlGRUNfRU5FVAkJMQkvKiBldGguYyBuZWVkcyBpdCB0aGF0IHdheS4uLiAqLwotI3VuZGVmIENGR19ESVNDT1ZFUl9QSFkKKyN1bmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2RlZmluZSBDT05GSUdfTUlJCQkxCiAjZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQogI2RlZmluZSBDT05GSUdfUk1JSQkJMQkvKiB1c2UgUk1JSSBpbnRlcmZhY2UgKi8KQEAgLTEzNCwyOSArMTM0LDI5IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJMQotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAzMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDcwMDAwMAkvKiAzIC4uLiA3IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDMwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDcwMDAwMAkvKiAzIC4uLiA3IE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE2Niw3NCArMTY2LDc0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAogI2lmIGRlZmluZWQoREVCVUcpCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAjaWYgQ09ORklHX05FVFRBMl9WRVJTSU9OID09IDIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0U0CQkweDQwMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRTQJCTB4NDAwODAwMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgICAweDgwMDAwMDAwCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogI2lmIENPTkZJR19ORVRUQTJfVkVSU0lPTiA9PSAxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KICNlbGlmIENPTkZJR19ORVRUQTJfVkVSU0lPTiA9PSAyCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAogCi0jZGVmaW5lCUNPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg2MDAwMCkKKyNkZWZpbmUJQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg2MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTAKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAKIAotI2RlZmluZSBDT05GSUdfRU5WX0FERFJfUkVEVU5ECShDRkdfRkxBU0hfQkFTRSArIDB4NzAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NzAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkwCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJQ09ORklHX0VOVl9TSVpFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjQzLDEwICsyNDMsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1NSw5ICsyNTUsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfRlJDKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0ZSQykKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0ZSQykKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9GUkMpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjY1LDIwICsyNjUsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yOTEsMjcgKzI5MSwyNyBAQAogI2lmIENPTkZJR19YSU4gPT0gMTAwMDAwMDAKIAogI2lmIE1QQzhYWF9IWiA9PSAxMjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDAgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDEyIDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDAgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2VsaWYgTVBDOFhYX0haID09IDEwMDAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMCA8PCBQTFBSQ1JfU19TSElGVCkgfCAoMTAgPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gNTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDEgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDggPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMyA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gMjUwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDIgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDggPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMyA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gNDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDEgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDggPDwgUExQUkNSX01GSV9TSElGVCkgfCAoNCA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gNzUwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDEgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDE1IDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDAgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2Vsc2UKQEAgLTMyMSwxNSArMzIxLDE1IEBACiAjZWxpZiBDT05GSUdfWElOID09IDUwMDAwMDAwCiAKICNpZiBNUEM4WFhfSFogPT0gMTIwMDAwMDAwCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgwIDw8IFBMUFJDUl9TX1NISUZUKSB8ICgxMiA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICg0IDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbGlmIE1QQzhYWF9IWiA9PSAxMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDAgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDYgPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMiA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gIDY2NjY2NjY2Ci0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgxIDw8IFBMUFJDUl9TX1NISUZUKSB8ICg4IDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDIgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2Vsc2UKQEAgLTM1NCwxMiArMzU0LDEyIEBACiAKICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCiAjaWYgTVBDOFhYX0haID4gNjY2NjY2NjYKLSNkZWZpbmUgQ0ZHX1NDQ1IJKC8qIFNDQ1JfVEJTICAgICB8ICovIFNDQ1JfQ1JRRU4gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoLyogU0NDUl9UQlMgICAgIHwgKi8gU0NDUl9DUlFFTiB8IFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwIHwgU0NDUl9FQkRGMDEpCiAjZWxzZQotI2RlZmluZSBDRkdfU0NDUgkoLyogU0NDUl9UQlMgICAgIHwgKi8gU0NDUl9DUlFFTiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCSgvKiBTQ0NSX1RCUyAgICAgfCAqLyBTQ0NSX0NSUUVOIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCkBAIC0zNzAsOCArMzcwLDggQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLS8qI2RlZmluZQlDRkdfREVSCTB4MjAwMjAwMEYqLwotI2RlZmluZSBDRkdfREVSCTAKKy8qI2RlZmluZQlDT05GSUdfU1lTX0RFUgkweDIwMDIwMDBGKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM4NSwyMyArMzg1LDIzIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMTEsIFRSTFggPSAwLCBDU05UID0gMSwgU0NZID0gNSwgRUhUUiA9IDEJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQkkgfCBPUl9TQ1lfNV9DTEsgfCBPUl9UUkxYKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQkkgfCBPUl9TQ1lfNV9DTEsgfCBPUl9UUkxYKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKIAogI2lmIENPTkZJR19ORVRUQTJfVkVSU0lPTiA9PSAyCiAKICNkZWZpbmUgRkxBU0hfQkFTRTRfUFJFTElNCTB4NDAwODAwMDAJLyogRkxBU0ggYmFuayAjMQkqLwogCi0jZGVmaW5lIENGR19PUjRfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCSgoRkxBU0hfQkFTRTRfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCSgoRkxBU0hfQkFTRTRfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKIAogI2VuZGlmCiAKQEAgLTQxMywxMCArNDEzLDEwIEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkoMjU2IDw8IDIwKQkvKiBtYXggMjU2TUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkoT1JfQ1NOVF9TQU0gfCBPUl9HNUxTKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkoT1JfQ1NOVF9TQU0gfCBPUl9HNUxTKQogCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCSgoMHhGRkZGRkZGRkxVICYgfihTRFJBTV9NQVhfU0laRSAtIDEpKSB8IENGR19PUl9USU1JTkdfU0RSQU0pCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUIgfCBCUl9QU18zMiB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkoKDB4RkZGRkZGRkZMVSAmIH4oU0RSQU1fTUFYX1NJWkUgLSAxKSkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUIgfCBCUl9QU18zMiB8IEJSX1YpCiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyCkBAIC00NDksMzQgKzQ0OSwzNCBAQAogICogODAgTWh6ID0+IDgwLjAwMC4wMDAgLyBEaXZpZGVyID0gMTU2CiAgKi8KIAotI2RlZmluZSBDRkdfTUFNUl9QVEEJCSAyMzQKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJIDIzNAogCiAvKgogICogRm9yIDE2IE1CaXQsIHJlZnJlc2ggcmF0ZXMgY291bGQgYmUgMzEuMyB1cwogICogKD0gNjQgbXMgLyAySyA9IDEyNSAvIHF1YWQgYnVyc3RzKS4KICAqIEZvciBhIHNpbXBsZXIgaW5pdGlhbGl6YXRpb24sIDE1LjYgdXMgaXMgdXNlZCBpbnN0ZWFkLgogICoKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCi0gKiAjZGVmaW5lIENGR19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIAogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKQEAgLTUwMiwxMiArNTAyLDEyIEBACiAKIC8qIE5BTkQgKi8KICNkZWZpbmUgQ09ORklHX05BTkRfTEVHQUNZCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCU5BTkRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJTkFORF9CQVNFCiAjZGVmaW5lIENPTkZJR19NVERfTkFORF9FQ0NfSkZGUzIKICNkZWZpbmUgQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURQogI2RlZmluZSBDT05GSUdfTVREX05BTkRfVU5TQUZFCiAKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEKIAogI2RlZmluZSBTRUNUT1JTSVpFCQk1MTIKICNkZWZpbmUgQUREUl9DT0xVTU4JCTEKQEAgLTUyMCwzOSArNTIwLDM5IEBACiAvKiBBTEUgPSBQRDE3LCBDTEUgPSBQRTE4LCBDRSA9IFBFMjAsIEZfUllfQlkgPSBQRTMxICovCiAjZGVmaW5lIE5BTkRfRElTQUJMRV9DRShuYW5kKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgfD0gICgxIDw8ICgzMSAtIDIwKSk7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgfD0gICgxIDw8ICgzMSAtIDIwKSk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9FTkFCTEVfQ0UobmFuZCkgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpICY9IH4oMSA8PCAoMzEgLSAyMCkpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpICY9IH4oMSA8PCAoMzEgLSAyMCkpOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIE5BTkRfQ1RMX0NMUkFMRShuYW5kcHRyKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgJj0gfigxIDw8ICgzMSAtIDE3KSk7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgJj0gfigxIDw8ICgzMSAtIDE3KSk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9DVExfU0VUQUxFKG5hbmRwdHIpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSB8PSAgKDEgPDwgKDMxIC0gMTcpKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSB8PSAgKDEgPDwgKDMxIC0gMTcpKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0NUTF9DTFJDTEUobmFuZHB0cikgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpICY9IH4oMSA8PCAoMzEgLSAxOCkpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpICY9IH4oMSA8PCAoMzEgLSAxOCkpOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIE5BTkRfQ1RMX1NFVENMRShuYW5kcHRyKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgfD0gICgxIDw8ICgzMSAtIDE4KSk7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgfD0gICgxIDw8ICgzMSAtIDE4KSk7IFwKIAl9IHdoaWxlKDApCiAKICNpZiBDT05GSUdfTkVUVEEyX1ZFUlNJT04gPT0gMQogI2RlZmluZSBOQU5EX1dBSVRfUkVBRFkobmFuZCkgXAogCWRvIHsgXAogCQlpbnQgX3RyaWVzID0gMDsgXAotCQl3aGlsZSAoKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0ICYgKDEgPDwgKDMxIC0gMzEpKSkgPT0gMCkgXAorCQl3aGlsZSAoKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wZWRhdCAmICgxIDw8ICgzMSAtIDMxKSkpID09IDApIFwKIAkJCWlmICgrK190cmllcyA+IDEwMDAwMCkgXAogCQkJCWJyZWFrOyBcCiAJfSB3aGlsZSAoMCkKQEAgLTU2MCw3ICs1NjAsNyBAQAogI2RlZmluZSBOQU5EX1dBSVRfUkVBRFkobmFuZCkgXAogCWRvIHsgXAogCQlpbnQgX3RyaWVzID0gMDsgXAotCQl3aGlsZSAoKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCAmICgxIDw8ICgxNSAtIDE1KSkpID09IDApIFwKKwkJd2hpbGUgKCgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICYgKDEgPDwgKDE1IC0gMTUpKSkgPT0gMCkgXAogCQkJaWYgKCsrX3RyaWVzID4gMTAwMDAwKSBcCiAJCQkJYnJlYWs7IFwKIAl9IHdoaWxlICgwKQpAQCAtNTg2LDggKzU4Niw4IEBACiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2RlZmluZSBDRkdfRElSRUNUX0ZMQVNIX1RGVFAKLSNkZWZpbmUgQ0ZHX0RJUkVDVF9OQU5EX1RGVFAKKyNkZWZpbmUgQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAorI2RlZmluZSBDT05GSUdfU1lTX0RJUkVDVF9OQU5EX1RGVFAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC01OTcsNyArNTk3LDcgQEAKICNkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4MDAwMDAwODAJCS8qIGJpdCAyNCAqLwogI2VuZGlmCiAKLSNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENGR19IWiAvIDIpCisjZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDT05GSUdfU1lTX0haIC8gMikKICNkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAKICNkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMAkJLyogTEVEIG9uIGZvciBiaXQgPT0gMAkqLwpAQCAtNjEyLDE1ICs2MTIsMTUgQEAKIAogI2RlZmluZSBfX2xlZF90b2dnbGUoX21zaykgXAogCWRvIHsgXAotCQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wZWRhdCBePSAoX21zayk7IFwKKwkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0IF49IChfbXNrKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBfX2xlZF9zZXQoX21zaywgX3N0KSBcCiAJZG8geyBcCiAJCWlmICgoX3N0KSkgXAotCQkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQgfD0gKF9tc2spOyBcCisJCQkoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQgfD0gKF9tc2spOyBcCiAJCWVsc2UgXAotCQkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQgJj0gfihfbXNrKTsgXAorCQkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0ICY9IH4oX21zayk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgX19sZWRfaW5pdChtc2ssIHN0KSBfX2xlZF9zZXQobXNrLCBzdCkKQEAgLTczNCw5ICs3MzQsOSBAQAogCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYJCTEKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUJMQotI2RlZmluZSBDRkdfQ09OU09MRV9FTlZfT1ZFUldSSVRFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUJMQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfRU5WX09WRVJXUklURQkxCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTkVUVklBLmggYi9pbmNsdWRlL2NvbmZpZ3MvTkVUVklBLmgKaW5kZXggZTU1MDAzMC4uODdjOTIwZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL05FVFZJQS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ORVRWSUEuaApAQCAtNjksNyArNjksNyBAQAogCSJib290bSIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkwCS8qIGVjaG8gb2ZmIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTExNywyNSArMTE3LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMzAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA3MDAwMDAJLyogMyAuLi4gNyBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAzMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA3MDAwMDAJLyogMyAuLi4gNyBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNDUsNjUgKzE0NSw2NSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgzMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgzMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKICNpZiBkZWZpbmVkKERFQlVHKQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCiAjZWxzZQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAogCi0jZGVmaW5lCUNPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg2MDAwMCkKKyNkZWZpbmUJQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg2MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTAKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAKIAotI2RlZmluZSBDT05GSUdfRU5WX0FERFJfUkVEVU5ECShDRkdfRkxBU0hfQkFTRSArIDB4NzAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NzAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkwCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJQ09ORklHX0VOVl9TSVpFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjEzLDEwICsyMTMsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIyNSw5ICsyMjUsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfRlJDKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0ZSQykKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0ZSQykKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9GUkMpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjM1LDIwICsyMzUsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yNjgsMTYgKzI2OCwxNiBAQAogCiAjaWYgQ09ORklHXzh4eF9HQ0xLX0ZSRVEgPT0gNTAwMDAwMDAKIAotI2RlZmluZSBDRkdfUExQUkNSCSggKCg1IC0gMSkgPDwgUExQUkNSX01GX1NISUZUKSB8IFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCAoKDUgLSAxKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwgUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogCiAjZWxpZiBDT05GSUdfOHh4X0dDTEtfRlJFUSA9PSA4MDAwMDAwMAogCi0jZGVmaW5lIENGR19QTFBSQ1IJKCAoKDggLSAxKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwgUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoICgoOCAtIDEpIDw8IFBMUFJDUl9NRl9TSElGVCkgfCBQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDAgfCBTQ0NSX0VCREYwMSkKQEAgLTI4OSw4ICsyODksOCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotLyojZGVmaW5lCUNGR19ERVIJMHgyMDAyMDAwRiovCi0jZGVmaW5lIENGR19ERVIJMAorLyojZGVmaW5lCUNPTkZJR19TWVNfREVSCTB4MjAwMjAwMEYqLworI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzA0LDE1ICszMDQsMTUgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMSwgVFJMWCA9IDAsIENTTlQgPSAxLCBTQ1kgPSA1LCBFSFRSID0gMQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9CSSB8IE9SX1NDWV81X0NMSyB8IE9SX1RSTFgpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9CSSB8IE9SX1NDWV81X0NMSyB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQogCiAvKgogICogQlIzIGFuZCBPUjMgKFNEUkFNKQpAQCAtMzIyLDI3ICszMjIsMjcgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JKE9SX0NTTlRfU0FNIHwgT1JfRzVMUykKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JKE9SX0NTTlRfU0FNIHwgT1JfRzVMUykKIAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkoKDB4RkZGRkZGRkZMVSAmIH4oU0RSQU1fTUFYX1NJWkUgLSAxKSkgfCBDRkdfT1JfVElNSU5HX1NEUkFNKQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfUFNfMzIgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JKCgweEZGRkZGRkZGTFUgJiB+KFNEUkFNX01BWF9TSVpFIC0gMSkpIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0pCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfUFNfMzIgfCBCUl9WKQogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkyMDgKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkyMDgKIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKQEAgLTM4MSwxMSArMzgxLDExIEBACiAjaWYgZGVmaW5lZChDT05GSUdfTkVUVklBX1ZFUlNJT04pICYmIENPTkZJR19ORVRWSUFfVkVSU0lPTiA+PSAyCiAKICNkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4MDAwMDAwMDEJCS8qIGJpdCAzMSAqLwotI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ0ZHX0haIC8gMikKKyNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENPTkZJR19TWVNfSFogLyAyKQogI2RlZmluZSBTVEFUVVNfTEVEX1NUQVRFCVNUQVRVU19MRURfQkxJTktJTkcKIAogI2RlZmluZSBTVEFUVVNfTEVEX0JJVDEJCTB4MDAwMDAwMDIJCS8qIGJpdCAzMCAqLwotI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRDEJKENGR19IWiAvIDIpCisjZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMQkoQ09ORklHX1NZU19IWiAvIDIpCiAjZGVmaW5lIFNUQVRVU19MRURfU1RBVEUxCVNUQVRVU19MRURfT0ZGCiAKICNkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMAkJLyogTEVEIG9uIGZvciBiaXQgPT0gMAkqLwpAQCAtNDAwLDEwICs0MDAsMTAgQEAKICNpZiBkZWZpbmVkKENPTkZJR19ORVRWSUFfVkVSU0lPTikgJiYgQ09ORklHX05FVFZJQV9WRVJTSU9OID49IDIKIAogLyogTkFORCAqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkJTkFORF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkJTkFORF9CQVNFCiAjZGVmaW5lIENPTkZJR19NVERfTkFORF9FQ0NfSkZGUzIKIAotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCQkxCiAKICNkZWZpbmUgU0VDVE9SU0laRQkJNTEyCiAjZGVmaW5lIEFERFJfQ09MVU1OCQkxCkBAIC00MTUsMzcgKzQxNSwzNyBAQAogCiAjZGVmaW5lIE5BTkRfRElTQUJMRV9DRShuYW5kKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpIHw9ICAweDAwNDA7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpIHw9ICAweDAwNDA7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9FTkFCTEVfQ0UobmFuZCkgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KSAmPSB+MHgwMDQwOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KSAmPSB+MHgwMDQwOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIE5BTkRfQ1RMX0NMUkFMRShuYW5kcHRyKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpICY9IH4weDAxMDA7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpICY9IH4weDAxMDA7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9DVExfU0VUQUxFKG5hbmRwdHIpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgfD0gIDB4MDEwMDsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgfD0gIDB4MDEwMDsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0NUTF9DTFJDTEUobmFuZHB0cikgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KSAmPSB+MHgwMDgwOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KSAmPSB+MHgwMDgwOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIE5BTkRfQ1RMX1NFVENMRShuYW5kcHRyKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpIHw9ICAweDAwODA7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpIHw9ICAweDAwODA7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9XQUlUX1JFQURZKG5hbmQpIFwKIAlkbyB7IFwKLQkJd2hpbGUgKCgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQgJiAweDEwMCkgPT0gMCkgXAorCQl3aGlsZSAoKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQgJiAweDEwMCkgPT0gMCkgXAogCQkJOyBcCiAJfSB3aGlsZSAoMCkKIApAQCAtNTE5LDE2ICs1MTksMTYgQEAKIH0KIAogLyogTUFYMzEwMCBjb25zb2xlICovCi0jZGVmaW5lIE1BWDMxMDBfU1BJX1JYRF9QT1JUCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKKyNkZWZpbmUgTUFYMzEwMF9TUElfUlhEX1BPUlQJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKICNkZWZpbmUgTUFYMzEwMF9TUElfUlhEX0JJVAkweDAwMDAwMDA4CiAKLSNkZWZpbmUgTUFYMzEwMF9TUElfVFhEX1BPUlQJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQorI2RlZmluZSBNQVgzMTAwX1NQSV9UWERfUE9SVAkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQogI2RlZmluZSBNQVgzMTAwX1NQSV9UWERfQklUCTB4MDAwMDAwMDQKIAotI2RlZmluZSBNQVgzMTAwX1NQSV9DTEtfUE9SVAkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQpCisjZGVmaW5lIE1BWDMxMDBfU1BJX0NMS19QT1JUCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQpCiAjZGVmaW5lIE1BWDMxMDBfU1BJX0NMS19CSVQJMHgwMDAwMDAwMgogCi0jZGVmaW5lIE1BWDMxMDBfQ1NfUE9SVAkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkKKyNkZWZpbmUgTUFYMzEwMF9DU19QT1JUCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkKICNkZWZpbmUgTUFYMzEwMF9DU19CSVQJCTB4MDAxMAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9OU0NVLmggYi9pbmNsdWRlL2NvbmZpZ3MvTlNDVS5oCmluZGV4IGUyOTdjODQuLjZhYmQzZjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9OU0NVLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL05TQ1UuaApAQCAtODMsNyArODMsNyBAQAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJICAxCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTEyOSwzMyArMTI5LDMzIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CiAqLwotI2RlZmluZQlDRkdfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTY1LDQ3ICsxNjUsNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KIAogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRStmbGFzaF9pbmZvWzBdLnNpemUgfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfT0ZGU0VUCQkweDgwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTIxNSwyMSArMjE1LDIxIEBACiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQrQ09ORklHX0VOVl9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjM5LDEwICsyMzksMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1MSw5ICsyNTEsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjEsMjAgKzI2MSwyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI4Miw3ICsyODIsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0CiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMjkxLDcgKzI5MSw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKIApAQCAtMzAzLDE0ICszMDMsMTQgQEAKIC8qIE5TQ1UgdXNlIGJvdGggc2xvdHMsIFNMT1RfQSBhcyAicHJpbWFyeSIuICovCiAjZGVmaW5lCUNPTkZJR19QQ01DSUFfU0xPVF9BIDEKIAotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogI2RlZmluZSBQQ01DSUFfTUVNX1dJTl9OTwk4IC8qIG92ZXJyaWRlIGRlZmF1bHQgNCBpbiBwY21jaWEuaCAqLwogI2RlZmluZQlQQ01DSUFfU09DS0VUU19OTwkyIC8qIHdlIGhhdmUgdHdvIHNvY2tldHMgKi8KICN1bmRlZglOU0NVX09FX0lOVgkJLyogUENNQ0lBX0dDUlhfQ1hPRSB3YXMgaW52ZXJ0ZWQgb24gZWFybHkgYm9hcmRzICovCkBAIC0zMjYsMjkgKzMyNiwyOSBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTIJLyogbWF4LiAyIElERSBidXNlcwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJNAkvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMgkvKiBtYXguIDIgSURFIGJ1c2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJNAkvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUxX09GRlNFVAkoNCAqIENGR19QQ01DSUFfTUVNX1NJWkUpIC8qIHN0YXJ0cyBAIDR0aCB3aW5kb3cgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VUCSg0ICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUpIC8qIHN0YXJ0cyBAIDR0aCB3aW5kb3cgKi8KIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNjMsMjIgKzM2MywyMiBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOgogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgT1JfU0NZXzNfQ0xLIHwgT1JfRUhUUiB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyoKICAqIEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCkBAIC0zODksMjggKzM4OSwyOCBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUJQ0ZHX09SM19QUkVMSU0JQ0ZHX09SMl9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZQlDT05GSUdfU1lTX09SM19QUkVMSU0JQ09ORklHX1NZU19PUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAjZWxzZQkvKiBDQU4gdXNlcyBDUzMjLCBzbyB3ZSBjYW4gaGF2ZSBvbmx5IG9uZSBTRFJBTSBiYW5rIGFueXdheSAqLwotI2RlZmluZQlDRkdfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCi0jZGVmaW5lIENGR19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLwotI2RlZmluZSBDRkdfT1IzX0NBTgkJKENGR19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCi0jZGVmaW5lIENGR19CUjNfQ0FOCQkoKENGR19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCisjZGVmaW5lCUNPTkZJR19TWVNfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfQ0FOCQkoQ09ORklHX1NZU19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX0NBTgkJKChDT05GSUdfU1lTX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKIAkJCQkJQlJfUFNfOCB8IEJSX01TX1VQTUIgfCBCUl9WICkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAjaWZkZWYJQ09ORklHX0lTUDEzNjJfVVNCCi0jZGVmaW5lCUNGR19JU1AxMzYyX0JBU0UJMHhEMDAwMDAwMAkvKiBJU1AxMzYyIG1hcHBlZCBhdCAweEQwMDAwMDAwICovCi0jZGVmaW5lIENGR19JU1AxMzYyX09SX0FNCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLwotI2RlZmluZSBDRkdfT1I1X0lTUDEzNjIJCShDRkdfSVNQMTM2Ml9PUl9BTSB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZQlDT05GSUdfU1lTX0lTUDEzNjJfQkFTRQkweEQwMDAwMDAwCS8qIElTUDEzNjIgbWFwcGVkIGF0IDB4RDAwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JU1AxMzYyX09SX0FNCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SNV9JU1AxMzYyCQkoQ09ORklHX1NZU19JU1AxMzYyX09SX0FNIHwgT1JfQ1NOVF9TQU0gfCBcCiAJCQkJIE9SX0FDU19ESVYyICAgICAgIHwgT1JfQkkgICAgICAgfCBPUl9TQ1lfNV9DTEspCi0jZGVmaW5lIENGR19CUjVfSVNQMTM2MgkJKChDRkdfSVNQMTM2Ml9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfSVNQMTM2MgkJKChDT05GSUdfU1lTX0lTUDEzNjJfQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJIEJSX1BTXzE2ICAgICAgICAgIHwgQlJfTVNfR1BDTSB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19JU1AxMzYyX1VTQiAqLwogCkBAIC00NDEsMzQgKzQ0MSwzNCBAQAogICogODAgTWh6ID0+IDgwLjAwMC4wMDAgLyBEaXZpZGVyID0gMTU2CiAgKi8KIAotI2RlZmluZSBDRkdfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQotI2RlZmluZSBDRkdfTUFNUl9QVEEJOTgKKyNkZWZpbmUgQ09ORklHX1NZU19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJOTgKIAogLyoKICAqIEZvciAxNiBNQml0LCByZWZyZXNoIHJhdGVzIGNvdWxkIGJlIDMxLjMgdXMKICAqICg9IDY0IG1zIC8gMksgPSAxMjUgLyBxdWFkIGJ1cnN0cykuCiAgKiBGb3IgYSBzaW1wbGVyIGluaXRpYWxpemF0aW9uLCAxNS42IHVzIGlzIHVzZWQgaW5zdGVhZC4KICAqCi0gKiAjZGVmaW5lIENGR19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcwotICogI2RlZmluZSBDRkdfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuaworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuawogICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL05YODIzLmggYi9pbmNsdWRlL2NvbmZpZ3MvTlg4MjMuaAppbmRleCAxZjRjMzI5Li45MTgyMjIzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTlg4MjMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTlg4MjMuaApAQCAtNTMsNyArNTMsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJImJvb3RtIDQwMGUwMDAwIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZCwgZm9yIG5vdwkgICAgKi8KICNkZWZpbmUgQ09ORklHX0FVVE9TQ1JJUFQKIApAQCAtODEsMjUgKzgxLDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTA5LDY0ICsxMDksNjQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgeEVNQkVECiAjaWZkZWYJRU1CRUQKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMAkvKiBGSVhNRSBIb3cgYmlnIHdoZW4gZW1iZWRkZWQ/PyAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCUNGR19NT05JVE9SX0JBU0UKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRQogI2Vsc2UKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkweDQwMDIwMDAwCS8qIGFic29sdXRlIGFkZHJlc3MgZm9yIG5vdyAgICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwMCAvKiA4SyBvdWNoLCB0aGlzIG1heSBsYXRlciBiZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NOX0JBU0UJMHg0MDAxZmZmMAkvKiBwcm9ncmFtbWVyIGF1dG9tYWdpY2FsbHkgcHV0cyAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfU05fU0VDVE9SCTB4NDAwMDAwMDAJLyogYSBzZXJpYWwgbnVtYmVyIGhlcmUJCSAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfU05fQllURVMJOAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NOX0JBU0UJMHg0MDAxZmZmMAkvKiBwcm9ncmFtbWVyIGF1dG9tYWdpY2FsbHkgcHV0cyAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NOX1NFQ1RPUgkweDQwMDAwMDAwCS8qIGEgc2VyaWFsIG51bWJlciBoZXJlCQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TTl9CWVRFUwk4CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAgICAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE3NiwxMCArMTc2LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xODcsMjcgKzE4NywyNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTItMTYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTItMTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMi0yMwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTUtNwpAQCAtMjE4LDggKzIxOCw4IEBACiAjZGVmaW5lIE1QQzhYWF9TUEVFRAk2NjY2NjY2NkwKICNkZWZpbmUgTVBDOFhYX1hJTgkzMjc2OAkvKiAzMi43Njgga0h6IGNyeXN0YWwgKi8KICNkZWZpbmUgTVBDOFhYX0ZBQ1QJCShNUEM4WFhfU1BFRUQvTVBDOFhYX1hJTikKLSNkZWZpbmUgQ0ZHX1BMUFJDUl9NRiAgKChNUEM4WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpCi0jZGVmaW5lIENGR19QTFBSQ1IJCShDRkdfUExQUkNSX01GIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUl9NRiAgKChNUEM4WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCQkoQ09ORklHX1NZU19QTFBSQ1JfTUYgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTUtMwpAQCAtMjI4LDcgKzIyOCw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQpAQCAtMjM4LDcgKzIzOCw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0yNTIsMTYgKzI1MiwxNiBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDAwLCBUUkxYID0gMCwgQ1NOVCA9IDEsIFNDWSA9IDgsIEVIVFIgPSAwCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWMSB8IE9SX0JJIHwgXAogCQkJCSBPUl9TQ1lfOF9DTEsgKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQogCiAvKgogICogQlIxLzIgYW5kIE9SMS8yIChTRFJBTSkKQEAgLTI3MSwxMiArMjcxLDEyIEBACiAjZGVmaW5lIFNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgZHJpdmUgR1BMNSBoaWdoIG9uIGZpcnN0IGN5Y2xlICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JKE9SX0c1TFMgfCBPUl9DU05UX1NBTSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JKE9SX0c1TFMgfCBPUl9DU05UX1NBTSkKIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKFNEUkFNX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCUNGR19PUjFfUFJFTElNCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoU0RSQU1fQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCUNPTkZJR19TWVNfT1IxX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAvKiBJTyBhbmQgbWVtb3J5IG1hcHBlZCBzdHVmZiAqLwogI2RlZmluZSBOWDgyM19JT19PUl9BTQkJMHhGRkZGMDAwMAkvKiBtYXNrIGZvciBJTyBhZGRyZXNzZXMgKi8KQEAgLTI5MiwyNCArMjkyLDI0IEBACiAgKi8KICNkZWZpbmUgR1BPVVRfQkFTRQkoTlg4MjNfSU9fQkFTRSArIEdQT1VUX09GRlNFVCkKICNkZWZpbmUgR1BPVVRfVElNSU5HCShPUl9DU05UX1NBTSB8IE9SX1RSTFggfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JKE5YODIzX0lPX09SX0FNIHwgR1BPVVRfVElNSU5HKQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoR1BPVVRfQkFTRSB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkoTlg4MjNfSU9fT1JfQU0gfCBHUE9VVF9USU1JTkcpCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoR1BPVVRfQkFTRSB8IEJSX1YpCiAKIC8qCiAgKiBCUjQgYW5kIE9SNCAoUVVBUlQpCiAgKi8KICNkZWZpbmUgUVVBUlRfQkFTRQkoTlg4MjNfSU9fQkFTRSArIFFVQVJUX09GRlNFVCkKICNkZWZpbmUgUVVBUlRfVElNSU5HCShPUl9BQ1NfRElWNCB8IE9SX1NDWV8zX0NMSyB8IE9SX0NTTlRfU0FNIHwgT1JfVFJMWCkKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JKE5YODIzX0lPX09SX0FNIHwgUVVBUlRfVElNSU5HIHwgT1JfQkkpCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCShRVUFSVF9CQVNFIHwgQlJfUFNfOCB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkoTlg4MjNfSU9fT1JfQU0gfCBRVUFSVF9USU1JTkcgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCShRVUFSVF9CQVNFIHwgQlJfUFNfOCB8IEJSX1YpCiAKIC8qCiAgKiBCUjUgYW5kIE9SNSAoVmlkZW8gREFDKQogICovCiAjZGVmaW5lIFZJREFDX0JBU0UJKE5YODIzX0lPX0JBU0UgKyBWSURBQ19PRkZTRVQpCiAjZGVmaW5lIFZJREFDX1RJTUlORwkoT1JfQUNTX0RJVjQgfCBPUl9TQ1lfM19DTEsgfCBPUl9DU05UX1NBTSB8IE9SX0VIVFIpCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCShOWDgyM19JT19PUl9BTSB8IFZJREFDX1RJTUlORyB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkoVklEQUNfQkFTRSB8IEJSX1BTXzggfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JKE5YODIzX0lPX09SX0FNIHwgVklEQUNfVElNSU5HIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkoVklEQUNfQkFTRSB8IEJSX1BTXzggfCBCUl9WKQogCiAvKgogICogQlI2IGFuZCBPUjYgKENQTEQpCkBAIC0zMTcsNDIgKzMxNyw0MiBAQAogICovCiAjZGVmaW5lIENQTERfQkFTRQkoTlg4MjNfSU9fQkFTRSArIENQTERfT0ZGU0VUKQogI2RlZmluZSBDUExEX1RJTUlORwkoT1JfQUNTX0RJVjQgfCBPUl9TQ1lfM19DTEsgfCBPUl9DU05UX1NBTSB8IE9SX0VIVFIpCi0jZGVmaW5lIENGR19PUjZfUFJFTElNCShOWDgyM19JT19PUl9BTSB8IENQTERfVElNSU5HIHwgT1JfQkkpCi0jZGVmaW5lIENGR19CUjZfUFJFTElNCShDUExEX0JBU0UgfCBCUl9QU184IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1I2X1BSRUxJTQkoTlg4MjNfSU9fT1JfQU0gfCBDUExEX1RJTUlORyB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNl9QUkVMSU0JKENQTERfQkFTRSB8IEJSX1BTXzggfCBCUl9WICkKIAogLyoKICAqIEJSNyBhbmQgT1I3IChTRUQxMzg2KQogICogRklYTUUgdGltaW5nIG5vdCB2ZXJpZmllZCBmb3IgU0VEIGNvbnRyb2xsZXIKICAqLwogI2RlZmluZSBTRUQxMzg2X0JBU0UJMHhGNzAwMDAwMAotI2RlZmluZSBDRkdfT1I3X1BSRUxJTQkoMHhGRjAwMDAwMCB8IE9SX0JJIHwgT1JfU0VUQSkKLSNkZWZpbmUgQ0ZHX0JSN19QUkVMSU0JKFNFRDEzODZfQkFTRSB8IEJSX1BTXzE2IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1I3X1BSRUxJTQkoMHhGRjAwMDAwMCB8IE9SX0JJIHwgT1JfU0VUQSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjdfUFJFTElNCShTRUQxMzg2X0JBU0UgfCBCUl9QU18xNiB8IEJSX1YgKQogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6ICAgKi8KIAogLyogcmVmcmVzaCByYXRlIDE1LjYgdXMgKD0gNjQgbXMgLyA0SyA9IDYyLjQgLyBxdWFkIGJ1cnN0cykgZm9yIDw9IDEyOCBNQml0CSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2IC8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIgLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNiAvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMiAvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNiAvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYgLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9PQ1JUQy5oIGIvaW5jbHVkZS9jb25maWdzL09DUlRDLmgKaW5kZXggMTRkYWJkYy4uZmYxMWRmOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL09DUlRDLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL09DUlRDLmgKQEAgLTQ4LDcgKzQ4LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5EICJnbyBmZmYwMDEwMCIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCTAJLyogUEhZIGFkZHJlc3MJCQkqLwpAQCAtODcsMzUgKzg3LDM1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLwotI2RlZmluZSBDRkdfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECSAgICA2OTEyMDAKKyN1bmRlZglDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkgICAgNjkxMjAwCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAgICAgXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGNoZWNrIGZvciBrZXlwcmVzcyBvbiBib290ZGVsYXk9PTAgKi8KIApAQCAtMTM2LDY2ICsxMzYsNjYgQEAKIAogI2RlZmluZSBDT05GSUdfUENJX0JPT1RERUxBWQkxCS8qIGVuYWJsZSBwY2kgYm9vdGRlbGF5IHZhcmlhYmxlKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDEwCS8qIFBDSSBEZXZpY2UgSUQ6IE9DUlRDCQkqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEJMHhmZmMwMDAwMAkvKiBwb2ludCB0byBmbGFzaAkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQxMAkvKiBQQ0kgRGV2aWNlIElEOiBPQ1JUQwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0xBU1NDT0RFCTB4MGIyMAkvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMJMHhmYzAwMDAwMQkvKiA2NE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEJMHhmZmMwMDAwMAkvKiBwb2ludCB0byBmbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TCTB4ZmZjMDAwMDEJLyogNE1CLCBlbmFibGUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGRDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRkQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmIDAgLyogVXNlIE5WUkFNIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5WUkFNIG9yZ2FuaXphdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0JMQkvKiB1c2UgTlZSQU0gZm9yIGVudmlyb25tZW50IHZhcnMJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweGYwMjAwMDAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJCSgzMioxMDI0KQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhmMDIwMDAwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJKDMyKjEwMjQpCQkvKiBOVlJBTSBzaXplCQkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkJLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzCSovCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJXAotCShDRkdfTlZSQU1fQkFTRV9BRERSK0NGR19OVlJBTV9TSVpFLUNPTkZJR19FTlZfU0laRSkJLyogRW52CSovCi0jZGVmaW5lIENGR19OVlJBTV9WWFdPUktTX09GRlMJMHg2OTAwCQkvKiBPZmZzZXQgZm9yIFZ4V29ya3MgZXRoLWFkZHIJKi8KKwkoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIrQ09ORklHX1NZU19OVlJBTV9TSVpFLUNPTkZJR19FTlZfU0laRSkJLyogRW52CSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fVlhXT1JLU19PRkZTCTB4NjkwMAkJLyogT2Zmc2V0IGZvciBWeFdvcmtzIGV0aC1hZGRyCSovCiAKICNlbHNlIC8qIFVzZSBFRVBST00gZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogCkBAIC0yMDksMTcgKzIwOSwxNyBAQAogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzA4KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KIAkJCQkJLyogMTYgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0yMzUsNjIgKzIzNSw2MiBAQAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKEZsYXNoIEJhbmsgMSkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4RkY4NUEwMDAgIC8qIEJBUz0weEZGOCxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDIgKFBMRCAtIEZQR0EtYm9vdCkgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMjAxNTQ4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDIwMTU0ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCiAJCQkJCSAgICAvKiBXQk49MHgxLFdCRj0weDEsVEg9MHgyLFJFPTB4MCxTT1I9MHgxLEJFTT0weDAsUEVOPTB4MCovCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMyAoUExEIC0gT1NMKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMjAxNTQ4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDIwMTU0ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCiAJCQkJCSAgICAvKiBXQk49MHgxLFdCRj0weDEsVEg9MHgyLFJFPTB4MCxTT1I9MHgxLEJFTT0weDAsUEVOPTB4MCovCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RjAxMTgwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCTB4RjAxMTgwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgNCAoU3BhcnRhbjIgMSkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAJCTB4MDIwMTU1ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQCQkweDAyMDE1NTgwICAvKiBCTUU9MHgwLFRXVD0weDA0LENTTj0weDAsT0VOPTB4MSAqLwogCQkJCQkgICAgLyogV0JOPTB4MSxXQkY9MHgxLFRIPTB4MixSRT0weDEsU09SPTB4MSxCRU09MHgwLFBFTj0weDAqLwotI2RlZmluZSBDRkdfRUJDX1BCNENSCQkweEYyMDlDMDAwICAvKiBCQVM9MHhGMjAsQlM9MTZNQixCVT1SL1csQlc9MzJiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUgkJMHhGMjA5QzAwMCAgLyogQkFTPTB4RjIwLEJTPTE2TUIsQlU9Ui9XLEJXPTMyYml0Ki8KIAogLyogTWVtb3J5IEJhbmsgNSAoU3BhcnRhbjIgMikgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI1QVAJCTB4MDIwMTU1ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUFQCQkweDAyMDE1NTgwICAvKiBCTUU9MHgwLFRXVD0weDA0LENTTj0weDAsT0VOPTB4MSAqLwogCQkJCQkgICAgLyogV0JOPTB4MSxXQkY9MHgxLFRIPTB4MixSRT0weDEsU09SPTB4MSxCRU09MHgwLFBFTj0weDAqLwotI2RlZmluZSBDRkdfRUJDX1BCNUNSCQkweEYzMDlDMDAwICAvKiBCQVM9MHhGMzAsQlM9MTZNQixCVT1SL1csQlc9MzJiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVDUgkJMHhGMzA5QzAwMCAgLyogQkFTPTB4RjMwLEJTPTE2TUIsQlU9Ui9XLEJXPTMyYml0Ki8KIAogLyogTWVtb3J5IEJhbmsgNiAoVmlydGV4IDEpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCNkFQCQkweDAyMDE1NTgwICAvKiBCTUU9MHgwLFRXVD0weDA0LENTTj0weDAsT0VOPTB4MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjZBUAkJMHgwMjAxNTU4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KIAkJCQkJICAgIC8qIFdCTj0weDEsV0JGPTB4MSxUSD0weDIsUkU9MHgxLFNPUj0weDEsQkVNPTB4MCxQRU49MHgwKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjZDUgkJMHhGNDA5QTAwMCAgLyogQkFTPTB4RjQwLEJTPTE2TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI2Q1IJCTB4RjQwOUEwMDAgIC8qIEJBUz0weEY0MCxCUz0xNk1CLEJVPVIvVyxCVz0xNmJpdCovCiAKIC8qIE1lbW9yeSBCYW5rIDcgKFZpcnRleCAyKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjdBUAkJMHgwMjAxNTU4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI3QVAJCTB4MDIwMTU1ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCiAJCQkJCSAgICAvKiBXQk49MHgxLFdCRj0weDEsVEg9MHgyLFJFPTB4MSxTT1I9MHgxLEJFTT0weDAsUEVOPTB4MCovCi0jZGVmaW5lIENGR19FQkNfUEI3Q1IJCTB4RjUwOUEwMDAgIC8qIEJBUz0weEY1MCxCUz0xNk1CLEJVPVIvVyxCVz0xNmJpdCovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCN0NSCQkweEY1MDlBMDAwICAvKiBCQVM9MHhGNTAsQlM9MTZNQixCVT1SL1csQlc9MTZiaXQqLwogCiAKLSNkZWZpbmUgQ0ZHX1ZYV09SS1NfTUFDX1BUUgkweDAwMDAwMDAwCS8qIFBhc3MgRXRoZXJuZXQgTUFDIHRvIFZ4V29ya3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19WWFdPUktTX01BQ19QVFIJMHgwMDAwMDAwMAkvKiBQYXNzIEV0aGVybmV0IE1BQyB0byBWeFdvcmtzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KIAogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCSAgMQorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCSAgMQogCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvT1JTRy5oIGIvaW5jbHVkZS9jb25maWdzL09SU0cuaAppbmRleCAyODliYmE1Li5hNjM1ZmNhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvT1JTRy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9PUlNHLmgKQEAgLTQ4LDcgKzQ4LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5EICJnbyBmZmYwMDEwMCIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCTAJLyogUEhZIGFkZHJlc3MJCQkqLwpAQCAtODcsMzUgKzg3LDM1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLwotI2RlZmluZSBDRkdfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECSAgICA2OTEyMDAKKyN1bmRlZglDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkgICAgNjkxMjAwCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAgICAgXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGNoZWNrIGZvciBrZXlwcmVzcyBvbiBib290ZGVsYXk9PTAgKi8KIApAQCAtMTM0LDY2ICsxMzQsNjYgQEAKIAogI3VuZGVmCUNPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBwcmludCBwY2kgZGV2aWNlcyBAIHN0YXJ0dXAJKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDExCS8qIFBDSSBEZXZpY2UgSUQ6IE9SU0cJCSovCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFCTB4MGIyMAkvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDExCS8qIFBDSSBEZXZpY2UgSUQ6IE9SU0cJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4ZmZjMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkQwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkZEMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiAqIDEwMjQpCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNpZiAwIC8qIFVzZSBOVlJBTSBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOVlJBTSBvcmdhbml6YXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05WUkFNCTEJLyogdXNlIE5WUkFNIGZvciBlbnZpcm9ubWVudCB2YXJzCSovCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhmMDIwMDAwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJCS8qIE5WUkFNIHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4ZjAyMDAwMDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCSgzMioxMDI0KQkJLyogTlZSQU0gc2l6ZQkJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycwkqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCVwKLQkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudgkqLwotI2RlZmluZSBDRkdfTlZSQU1fVlhXT1JLU19PRkZTCTB4NjkwMAkJLyogT2Zmc2V0IGZvciBWeFdvcmtzIGV0aC1hZGRyCSovCisJKENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSK0NPTkZJR19TWVNfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudgkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1ZYV09SS1NfT0ZGUwkweDY5MDAJCS8qIE9mZnNldCBmb3IgVnhXb3JrcyBldGgtYWRkcgkqLwogCiAjZWxzZSAvKiBVc2UgRUVQUk9NIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KIApAQCAtMjA3LDE3ICsyMDcsMTcgQEAKICAqIEkyQyBFRVBST00gKENBVDI0V0MwOCkgZm9yIGVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJjIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIgkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCiAJCQkJCS8qIDE2IGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdCA0IGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMjMzLDYyICsyMzMsNjIgQEAKICAqLwogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDApIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAxIChGbGFzaCBCYW5rIDEpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4RkY4NUEwMDAgIC8qIEJBUz0weEZGOCxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkweEZGODVBMDAwICAvKiBCQVM9MHhGRjgsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAyIChQTEQgLSBGUEdBLWJvb3QpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDIwMTU0ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAyMDE1NDgwICAvKiBCTUU9MHgwLFRXVD0weDA0LENTTj0weDAsT0VOPTB4MSAqLwogCQkJCQkgICAgLyogV0JOPTB4MSxXQkY9MHgxLFRIPTB4MixSRT0weDAsU09SPTB4MSxCRU09MHgwLFBFTj0weDAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKFBMRCAtIE9TTCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDIwMTU0ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDAyMDE1NDgwICAvKiBCTUU9MHgwLFRXVD0weDA0LENTTj0weDAsT0VOPTB4MSAqLwogCQkJCQkgICAgLyogV0JOPTB4MSxXQkY9MHgxLFRIPTB4MixSRT0weDAsU09SPTB4MSxCRU09MHgwLFBFTj0weDAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkweEYwMTE4MDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkweEYwMTE4MDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDQgKFNwYXJ0YW4yIDEpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCNEFQCQkweDAyMDE1NTgwICAvKiBCTUU9MHgwLFRXVD0weDA0LENTTj0weDAsT0VOPTB4MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUAkJMHgwMjAxNTU4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KIAkJCQkJICAgIC8qIFdCTj0weDEsV0JGPTB4MSxUSD0weDIsUkU9MHgxLFNPUj0weDEsQkVNPTB4MCxQRU49MHgwKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRDUgkJMHhGMjA5QzAwMCAgLyogQkFTPTB4RjIwLEJTPTE2TUIsQlU9Ui9XLEJXPTMyYml0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0Q1IJCTB4RjIwOUMwMDAgIC8qIEJBUz0weEYyMCxCUz0xNk1CLEJVPVIvVyxCVz0zMmJpdCovCiAKIC8qIE1lbW9yeSBCYW5rIDUgKFNwYXJ0YW4yIDIpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCNUFQCQkweDAyMDE1NTgwICAvKiBCTUU9MHgwLFRXVD0weDA0LENTTj0weDAsT0VOPTB4MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVBUAkJMHgwMjAxNTU4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KIAkJCQkJICAgIC8qIFdCTj0weDEsV0JGPTB4MSxUSD0weDIsUkU9MHgxLFNPUj0weDEsQkVNPTB4MCxQRU49MHgwKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVDUgkJMHhGMzA5QzAwMCAgLyogQkFTPTB4RjMwLEJTPTE2TUIsQlU9Ui9XLEJXPTMyYml0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1Q1IJCTB4RjMwOUMwMDAgIC8qIEJBUz0weEYzMCxCUz0xNk1CLEJVPVIvVyxCVz0zMmJpdCovCiAKIC8qIE1lbW9yeSBCYW5rIDYgKFZpcnRleCAxKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjZBUAkJMHgwMjAxNTU4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI2QVAJCTB4MDIwMTU1ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCiAJCQkJCSAgICAvKiBXQk49MHgxLFdCRj0weDEsVEg9MHgyLFJFPTB4MSxTT1I9MHgxLEJFTT0weDAsUEVOPTB4MCovCi0jZGVmaW5lIENGR19FQkNfUEI2Q1IJCTB4RjQwOUEwMDAgIC8qIEJBUz0weEY0MCxCUz0xNk1CLEJVPVIvVyxCVz0xNmJpdCovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNkNSCQkweEY0MDlBMDAwICAvKiBCQVM9MHhGNDAsQlM9MTZNQixCVT1SL1csQlc9MTZiaXQqLwogCiAvKiBNZW1vcnkgQmFuayA3IChWaXJ0ZXggMikgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI3QVAJCTB4MDIwMTU1ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCN0FQCQkweDAyMDE1NTgwICAvKiBCTUU9MHgwLFRXVD0weDA0LENTTj0weDAsT0VOPTB4MSAqLwogCQkJCQkgICAgLyogV0JOPTB4MSxXQkY9MHgxLFRIPTB4MixSRT0weDEsU09SPTB4MSxCRU09MHgwLFBFTj0weDAqLwotI2RlZmluZSBDRkdfRUJDX1BCN0NSCQkweEY1MDlBMDAwICAvKiBCQVM9MHhGNTAsQlM9MTZNQixCVT1SL1csQlc9MTZiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjdDUgkJMHhGNTA5QTAwMCAgLyogQkFTPTB4RjUwLEJTPTE2TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KIAogCi0jZGVmaW5lIENGR19WWFdPUktTX01BQ19QVFIJMHgwMDAwMDAwMAkvKiBQYXNzIEV0aGVybmV0IE1BQyB0byBWeFdvcmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfVlhXT1JLU19NQUNfUFRSCTB4MDAwMDAwMDAJLyogUGFzcyBFdGhlcm5ldCBNQUMgdG8gVnhXb3JrcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCiAKIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkgIDEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL09YQy5oIGIvaW5jbHVkZS9jb25maWdzL09YQy5oCmluZGV4IDJjY2FmNDcuLjEwNGMyM2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9PWEMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvT1hDLmgKQEAgLTQ5LDcgKzQ5LDcgQEAKIAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJOTYwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogCiAvKgpAQCAtNzIsMTQgKzcyLDE0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJMQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkxCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkxCQkvKiBjYWxsIG1pc2NfaW5pdF9yKCkgb24gaW5pdAkqLwogCkBAIC05NSw4ICs5NSw4IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkidGZ0cCAweDEwMDAwIDsgYm9vdGVsZiAweDEwMDAwIgogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTEwCiAKLSNkZWZpbmUgQ0ZHX09YQ19HRU5FUkFURV9JUAkxCQkvKiBHZW5lcmF0ZSBJUCBhdXRvbWF0aWNhbGx5CSovCi0jZGVmaW5lIENGR19PWENfSVBNQVNLCQkweDBBMDAwMDAwCS8qIDEwLjAuMC54CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PWENfR0VORVJBVEVfSVAJMQkJLyogR2VuZXJhdGUgSVAgYXV0b21hdGljYWxseQkqLworI2RlZmluZSBDT05GSUdfU1lTX09YQ19JUE1BU0sJCTB4MEEwMDAwMDAJLyogMTAuMC4wLngJCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTEwNyw3ICsxMDcsNyBAQAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCQkJLyogTXVsdGkgZXRoZXJuZXQgY2FyZHMgc3VwcG9ydCAqLwogCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMAkJCQkvKiBFdGhlcm5ldCBFeHByZXNzIFBSTyAxMDAJKi8KLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOCAgICAgICAgICAgICAgIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCiAKICNkZWZpbmUgUENJX0VORVQwX0lPQUREUgkweDgwMDAwMDAwCiAjZGVmaW5lIFBDSV9FTkVUMF9NRU1BRERSCTB4ODAwMDAwMDAKQEAgLTExOCw2MyArMTE4LDYzIEBACiAgKiBGTEFTSAogICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BSRUxJTUJBU0UJMHhGRjgwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJKDAtZmxhc2hfaW5mb1swXS5zaXplKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BSRUxJTUJBU0UJMHhGRjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCSgwLWZsYXNoX2luZm9bMF0uc2l6ZSkKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkzMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkzMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJBTQogICovCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9SQU1fU0laRQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRQkweDEwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfUFJFTElNQkFTRSkKLSMgZGVmaW5lIENGR19SQU1CT09UCQkxCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9QUkVMSU1CQVNFKQorIyBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZWxzZQotIyB1bmRlZiBDRkdfUkFNQk9PVAorIyB1bmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4Ci0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIG1hbGxvYygpCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwNDAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNZW1vcnkgbWFwcGluZwogICovCiAKLSNkZWZpbmUgQ0ZHX0NQTERfQkFTRQkJMHhmZjAwMDAwMAkvKiBDUExEIHJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfQ1BMRF9XQVRDSERPRwkoQ0ZHX0NQTERfQkFTRSkJCQkvKiBXYXRjaGRvZyAqLwotI2RlZmluZSBDRkdfQ1BMRF9SRVNFVAkJKENGR19DUExEX0JBU0UgKyAweDA0MDAwMCkJLyogTWlub3IgcmVzZXRzICovCi0jZGVmaW5lIENGR19VQVJUX0JBU0UJCShDRkdfQ1BMRF9CQVNFICsgMHg3MDAwMDApCS8qIGRlYnVnIFVBUlQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUExEX0JBU0UJCTB4ZmYwMDAwMDAJLyogQ1BMRCByZWdpc3RlcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUExEX1dBVENIRE9HCShDT05GSUdfU1lTX0NQTERfQkFTRSkJCQkvKiBXYXRjaGRvZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQTERfUkVTRVQJCShDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4MDQwMDAwKQkvKiBNaW5vciByZXNldHMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX0JBU0UJCShDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4NzAwMDAwKQkvKiBkZWJ1ZyBVQVJUICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5TMTY1NTAgQ29uZmlndXJhdGlvbgogICovCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCS00Ci0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJMTg0MzIwMAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCUNGR19VQVJUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCS00CisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCTE4NDMyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJQ09ORklHX1NZU19VQVJUX0JBU0UKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIEJ1cwpAQCAtMTgyLDEyICsxODIsMTIgQEAKIAogI2RlZmluZSBDT05GSUdfSTJDCQkxCQkvKiBJMkMgc3VwcG9ydCBvbiAuLi4gKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCQkvKiAuLi4gaGFyZHdhcmUgb25lICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YJCS8qIEkyQyBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgkJLyogSTJDIHNsYXZlIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSTJDX0VYUEFOREVSMF9BRERSCTB4MjAJCS8qIFBDRjg1NzQgZXhwYW5kZXIgMCBhZGRyZXJyICovCi0jZGVmaW5lIENGR19JMkNfRVhQQU5ERVIxX0FERFIJMHgyMQkJLyogUENGODU3NCBleHBhbmRlciAxIGFkZHJlcnIgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FWFBBTkRFUjJfQUREUgkweDI2CQkvKiBQQ0Y4NTc0IGV4cGFuZGVyIDIgYWRkcmVyciAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FWFBBTkRFUjBfQUREUgkweDIwCQkvKiBQQ0Y4NTc0IGV4cGFuZGVyIDAgYWRkcmVyciAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FWFBBTkRFUjFfQUREUgkweDIxCQkvKiBQQ0Y4NTc0IGV4cGFuZGVyIDEgYWRkcmVyciAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FWFBBTkRFUjJfQUREUgkweDI2CQkvKiBQQ0Y4NTc0IGV4cGFuZGVyIDIgYWRkcmVyciAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudApAQCAtMjA4LDMwICsyMDgsMzAgQEAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUSAgMzMwMDAwMDAJLyogZXh0ZXJuYWwgZnJlcXVlbmN5IHRvIHBsbCAqLwogI2RlZmluZSBDT05GSUdfUExMX1BDSV9UT19NRU1fTVVMVElQTElFUiAgMgogCi0jZGVmaW5lIENGR19FVU1CX0FERFIJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVU1CX0FERFIJCTB4RkMwMDAwMDAKIAogLyogTUNDUjEgKi8KLSNkZWZpbmUgQ0ZHX1JPTU5BTAkJMAkvKiByb20vZmxhc2ggbmV4dCBhY2Nlc3MgdGltZQkJKi8KLSNkZWZpbmUgQ0ZHX1JPTUZBTAkJMTkJLyogcm9tL2ZsYXNoIGFjY2VzcyB0aW1lCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTAkJMAkvKiByb20vZmxhc2ggbmV4dCBhY2Nlc3MgdGltZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ST01GQUwJCTE5CS8qIHJvbS9mbGFzaCBhY2Nlc3MgdGltZQkJKi8KIAogLyogTUNDUjIgKi8KLSNkZWZpbmUgQ0ZHX0FTUklTRQkJMTUJLyogQVNSSVNFPTE1IGNsb2NrcwkJCSovCi0jZGVmaW5lIENGR19BU0ZBTEwJCTMJLyogQVNGQUxMPTMgY2xvY2tzCQkJKi8KLSNkZWZpbmUgQ0ZHX1JFRklOVAkJMTAwMAkvKiBSRUZJTlQ9MTAwMCBjbG9ja3MJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FTUklTRQkJMTUJLyogQVNSSVNFPTE1IGNsb2NrcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVNGQUxMCQkzCS8qIEFTRkFMTD0zIGNsb2NrcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGSU5UCQkxMDAwCS8qIFJFRklOVD0xMDAwIGNsb2NrcwkJCSovCiAKIC8qIE1DQ1IzICovCi0jZGVmaW5lIENGR19CU1RPUFJFCQkweDM1YwkvKiBCdXJzdCBUbyBQcmVjaGFyZ2UJCQkqLwotI2RlZmluZSBDRkdfUkVGUkVDCQk3CS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCi0jZGVmaW5lIENGR19SRExBVAkJNAkvKiBkYXRhIGxhdGVuY3kgZnJvbSByZWFkIGNvbW1hbmQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CU1RPUFJFCQkweDM1YwkvKiBCdXJzdCBUbyBQcmVjaGFyZ2UJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwkJNwkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JETEFUCQk0CS8qIGRhdGEgbGF0ZW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLwogCiAvKiBNQ0NSNCAqLwotI2RlZmluZSBDRkdfUFJFVE9BQ1QJCTIJLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsCSovCi0jZGVmaW5lIENGR19BQ1RUT1BSRQkJNQkvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVE9SVwkJMgkvKiBBY3RpdmF0ZSB0byBSL1cJCQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX0NBU19MQVQJMwkvKiBTRE1PREUgQ0FTIGxhdGVuY3kJCQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAJCTAJLyogU0RNT0RFIHdyYXAgdHlwZQkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfQlVSU1RMRU4JMwkvKiBTRE1PREUgQnVyc3QgbGVuZ3RoIDI9NCwgMz04CQkqLwotI2RlZmluZSBDRkdfUkVHSVNURVJEX1RZUEVfQlVGRkVSICAgMQorI2RlZmluZSBDT05GSUdfU1lTX1BSRVRPQUNUCQkyCS8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVFRPUFJFCQk1CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVE9SVwkJMgkvKiBBY3RpdmF0ZSB0byBSL1cJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUCTMJLyogU0RNT0RFIENBUyBsYXRlbmN5CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4JMwkvKiBTRE1PREUgQnVyc3QgbGVuZ3RoIDI9NCwgMz04CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAgIDEKIAogLyogbWVtb3J5IGJhbmsgc2V0dGluZ3MqLwogLyoKQEAgLTI0MCw4MCArMjQwLDgwIEBACiAgKiBiaXRzIHdpbGwgYmUgc2V0IHRvIDB4MDAwMDAgZm9yIGEgc3RhcnQgYWRkcmVzcywgb3IgMHhmZmZmZiBmb3IgYW4KICAqIGVuZCBhZGRyZXNzCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBTkswX1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMF9FTkQJCShDRkdfTUFYX1JBTV9TSVpFIC0gMSkKLSNkZWZpbmUgQ0ZHX0JBTkswX0VOQUJMRQkxCi0jZGVmaW5lIENGR19CQU5LMV9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzFfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMV9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzJfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksyX0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzJfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTkszX1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LM19FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkszX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNF9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzVfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks2X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LN19TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5ECQkoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VOQUJMRQkxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkFCTEUJMAogLyoKICAqIE1lbW9yeSBiYW5rIGVuYWJsZSBiaXRtYXNrLCBzcGVjaWZ5aW5nIHdoaWNoIG9mIHRoZSBiYW5rcyBkZWZpbmVkIGFib3ZlCiAgYXJlIGFjdHVhbGx5IHByZXNlbnQuIE1TQiBpcyBmb3IgYmFuayAjNywgTFNCIGlzIGZvciBiYW5rICMwLgogICovCi0jZGVmaW5lIENGR19CQU5LX0VOQUJMRQkJMHgwMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTktfRU5BQkxFCQkweDAxCiAKLSNkZWZpbmUgQ0ZHX09EQ1IJCTB4ZmYJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzLAkqLworI2RlZmluZSBDT05GSUdfU1lTX09EQ1IJCTB4ZmYJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzLAkqLwogCQkJCQkvKiBzZWUgODI0MCBib29rIGZvciBiaXQgZGVmaW5pdGlvbnMJKi8KLSNkZWZpbmUgQ0ZHX1BHTUFYCQkweDMyCS8qIGhvdyBsb25nIHRoZSA4MjQwIHJldGFpbnMgdGhlCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KIAkJCQkJLyogY3VycmVudGx5IGFjY2Vzc2VkIHBhZ2UgaW4gbWVtb3J5CSovCiAJCQkJCS8qIHNlZSA4MjQwIGJvb2sgZm9yIGRldGFpbHMJCSovCiAKIC8qIFNEUkFNIDAgLSAyNTZNQiAqLwotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBzdGFjayBpbiBEQ0FDSEUgQCAxR0IgKG5vIGJhY2tpbmcgbWVtKSAqLwotI2RlZmluZSBDRkdfSUJBVDFMCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBQQ0kgbWVtb3J5ICovCi0jZGVmaW5lIENGR19JQkFUMkwJKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUJKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCSgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIEZsYXNoLCBjb25maWcgYWRkcnMsIGV0YyAqLwotI2RlZmluZSBDRkdfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNDAgQ1BVCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI0MCBDUFUJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1AzRzQuaCBiL2luY2x1ZGUvY29uZmlncy9QM0c0LmgKaW5kZXggODE1MDA5MS4uOTcxMzM4YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1AzRzQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvUDNHNC5oCkBAIC00MCw3ICs0MCw3IEBACiAgKi8KIAogI2RlZmluZSBDT05GSUdfUDNHNAkJMQkvKiB0aGlzIGlzIGEgUDNHNCAgYm9hcmQJKi8KLSNkZWZpbmUgQ0ZHX0dUXzY0MjZ4ICAgICAgICBHVF82NDI2MCAvKiB3aXRoIGEgNjQyNjAgc3lzdGVtIGNvbnRyb2xsZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HVF82NDI2eCAgICAgICAgR1RfNjQyNjAgLyogd2l0aCBhIDY0MjYwIHN5c3RlbSBjb250cm9sbGVyICovCiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogY29uc29sZSBiYXVkcmF0ZSA9IDExNTIwMAkqLwogCkBAIC01MSwxMCArNTEsMTAgQEAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCTEKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRiAxCiAKLSNkZWZpbmUgQ0ZHX0JPQVJEX05BTUUJCSJQM0c0IgorI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX05BTUUJCSJQM0c0IgogCi0jdW5kZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI3VuZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGxldCB5b3Ugc2VsZWN0IHdoYXQgc2VyaWFsIHlvdSB3YW50IHRvIHVzZQpAQCAtMTE1LDcgKzExNSw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZsYXNoX3NlbGYiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMAkvKiBlY2hvIG9mZiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2VzCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KICN1bmRlZglDT05GSUdfQUxUSVZFQyAgICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIGRpc2FibGUgICAgICAgICAgICAgKi8KQEAgLTE1MSwyNyArMTUxLDI3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgwMDMwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDMwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJCS8qIGRlY3IgZnJlcTogMW1zIHRpY2tzCSovCi0jZGVmaW5lIENGR19CVVNfSFoJCTEzMzAwMDAwMAkvKiAxMzMgTUh6CQkqLwotI2RlZmluZSBDRkdfQlVTX0NMSwkJQ0ZHX0JVU19IWgorI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjciBmcmVxOiAxbXMgdGlja3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfSFoJCTEzMzAwMDAwMAkvKiAxMzMgTUh6CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JVU19DTEsJCUNPTkZJR19TWVNfQlVTX0haCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAKIC8qCkBAIC0xODMsNjMgKzE4Myw2MyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQkxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXQgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAorI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZjAwMDAwMAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmZjAwMTAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhmZmYwMDEwMAorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCiAKIC8qIGFyZWFzIHRvIG1hcCBkaWZmZXJlbnQgdGhpbmdzIHdpdGggdGhlIEdUIGluIHBoeXNpY2FsIHNwYWNlICovCi0jZGVmaW5lIENGR19EUkFNX0JBTktTCQkxCi0jZGVmaW5lIENGR19ERkxfR1RfUkVHUwkJMHgxNDAwMDAwMAkvKiBib290IHRpbWUgR1RfUkVHUyAqLworI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQkFOS1MJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19ERkxfR1RfUkVHUwkJMHgxNDAwMDAwMAkvKiBib290IHRpbWUgR1RfUkVHUyAqLwogCiAvKiBXaGF0IHRvIHB1dCBpbiB0aGUgYmF0cy4gKi8KLSNkZWZpbmUgQ0ZHX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAogCiAvKiBQZXJpcGhlcmFsIERldmljZSBzZWN0aW9uICovCi0jZGVmaW5lIENGR19HVF9SRUdTCQkweGY4MDAwMDAwCi0jZGVmaW5lIENGR19ERVZfQkFTRQkJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dUX1JFR1MJCTB4ZjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVZfQkFTRQkJMHhmZjAwMDAwMAogCi0jZGVmaW5lIENGR19ERVYwX1NQQUNFCQlDRkdfREVWX0JBU0UKLSNkZWZpbmUgQ0ZHX0RFVjFfU1BBQ0UJCShDRkdfREVWMF9TUEFDRSArIENGR19ERVYwX1NJWkUpCi0jZGVmaW5lIENGR19ERVYyX1NQQUNFCQkoQ0ZHX0RFVjFfU1BBQ0UgKyBDRkdfREVWMV9TSVpFKQotI2RlZmluZSBDRkdfREVWM19TUEFDRQkJKENGR19ERVYyX1NQQUNFICsgQ0ZHX0RFVjJfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ERVYwX1NQQUNFCQlDT05GSUdfU1lTX0RFVl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfREVWMV9TUEFDRQkJKENPTkZJR19TWVNfREVWMF9TUEFDRSArIENPTkZJR19TWVNfREVWMF9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0RFVjJfU1BBQ0UJCShDT05GSUdfU1lTX0RFVjFfU1BBQ0UgKyBDT05GSUdfU1lTX0RFVjFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ERVYzX1NQQUNFCQkoQ09ORklHX1NZU19ERVYyX1NQQUNFICsgQ09ORklHX1NZU19ERVYyX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX0RFVjBfU0laRQkJIF84TSAvKiBGbGFzaCBiYW5rICovCi0jZGVmaW5lIENGR19ERVYxX1NJWkUJCSAwICAgLyogdW51c2VkICovCi0jZGVmaW5lIENGR19ERVYyX1NJWkUJCSAwICAgLyogdW51c2VkICovCi0jZGVmaW5lIENGR19ERVYzX1NJWkUJCSAwICAgLyogdW51c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMF9TSVpFCQkgXzhNIC8qIEZsYXNoIGJhbmsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYxX1NJWkUJCSAwICAgLyogdW51c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9TSVpFCQkgMCAgIC8qIHVudXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjNfU0laRQkJIDAgICAvKiB1bnVzZWQgKi8KIAotI2RlZmluZSBDRkdfMTZCSVRfQk9PVF9QQVIJMHhjMDFiNWU3YwotI2RlZmluZSBDRkdfREVWMF9QQVIJCUNGR18xNkJJVF9CT09UX1BBUgorI2RlZmluZSBDT05GSUdfU1lTXzE2QklUX0JPT1RfUEFSCTB4YzAxYjVlN2MKKyNkZWZpbmUgQ09ORklHX1NZU19ERVYwX1BBUgkJQ09ORklHX1NZU18xNkJJVF9CT09UX1BBUgogCiAjaWYgMCAvKiBXcm9uZz8/IE5UTCAqLwotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMAkweDUzNTQxNzE3CS8qIEluaXRBY3QgRU9UWzRdIERCdXJzdCBUQ0VuWzFdICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMAkweDUzNTQxNzE3CS8qIEluaXRBY3QgRU9UWzRdIERCdXJzdCBUQ0VuWzFdICovCiAJCQkJCQkvKiBETUFBY2tbMTowXSBHTlQwWzE6MF0gKi8KICNlbHNlCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8wCTB4NTM1NDc3NzcJLyogSW5pdEFjdCBFT1RbNF0gREJ1cnN0IFRDRW5bMV0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8wCTB4NTM1NDc3NzcJLyogSW5pdEFjdCBFT1RbNF0gREJ1cnN0IFRDRW5bMV0gKi8KIAkJCQkJCS8qIFJFUTBbMTowXSBHTlQwWzE6MF0gKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMQkweDQ0MDA5OTExCS8qIFRDRW5bNF0gVENUY250WzRdIEdQUFsxMzoxMl0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8xCTB4NDQwMDk5MTEJLyogVENFbls0XSBUQ1RjbnRbNF0gR1BQWzEzOjEyXSAqLwogCQkJCQkJLyogRE1BUmVxWzRdIERNQUFja1s0XSBXRE5NSSBXREUgKi8KICNpZiAwIC8qIFdyb25nPz8gTlRMICovCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8yCTB4NDAwOTE4MTgJLyogVENUY250WzBdIEdQUFsyMjoyMV0gQkNsa0luICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMgkweDQwMDkxODE4CS8qIFRDVGNudFswXSBHUFBbMjI6MjFdIEJDbGtJbiAqLwogCQkJCQkJLyogRE1BQWNrWzE6MF0gR05UMVsxOjBdICovCiAjZWxzZQotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMgkweDQwMDk4ODg4CS8qIFRDVGNudFswXSAqLworI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzIJMHg0MDA5ODg4OAkvKiBUQ1RjbnRbMF0gKi8KIAkJCQkJCS8qIEdQUFsyMl0gKFJTMjMySW50QiBvciBQQ0kxSW50KSAqLwogCQkJCQkJLyogR1BQWzIxXSAoUlMzMjNJbnRBKSAqLwogCQkJCQkJLyogQkNsa0luICovCkBAIC0yNDcsMTAgKzI0NywxMCBAQAogI2VuZGlmCiAKICNpZiAwIC8qIFdyb25nPz8gTlRMICovCi0jIGRlZmluZSBDRkdfTVBQX0NPTlRST0xfMwkweDAwMDkwMDY2CS8qIEdQUFszMToyOV0gQkNsa091dDAgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMwkweDAwMDkwMDY2CS8qIEdQUFszMToyOV0gQkNsa091dDAgKi8KIAkJCQkJCS8qIEdQUFsyNzoyNl0gSW50WzE6MF0gKi8KICNlbHNlCi0jIGRlZmluZSBDRkdfTVBQX0NPTlRST0xfMwkweDIyMDkwMDY2ICAgICAgLyogTVJFUSBNR05UICovCisjIGRlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzMJMHgyMjA5MDA2NiAgICAgIC8qIE1SRVEgTUdOVCAqLwogCQkJCQkJLyogR1BQWzI5XSAgICAoUENJMUludCkgKi8KIAkJCQkJCS8qIEJDbGtPdXQwICovCiAJCQkJCQkvKiBHUFBbMjddICAgIChQQ0kwSW50KSAqLwpAQCAtMjU4LDE3ICsyNTgsMTcgQEAKIAkJCQkJCS8qIENQVUludFsyNToyNF0gKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19TRVJJQUxfUE9SVF9NVVgJMHgwMDAwMTEwMgkvKiAxMT1NUFNDMS9NUFNDMCAwMj1FVEggMCBhbmQgMiBSTUlJICovCisjZGVmaW5lIENPTkZJR19TWVNfU0VSSUFMX1BPUlRfTVVYCTB4MDAwMDExMDIJLyogMTE9TVBTQzEvTVBTQzAgMDI9RVRIIDAgYW5kIDIgUk1JSSAqLwogCiAjaWYgMCAvKiBXcm9uZz8/IC0gTlRMICovCi0jIGRlZmluZSBDRkdfR1BQX0xFVkVMX0NPTlRST0wJMHgwMDAwMDJjNgorIyBkZWZpbmUgQ09ORklHX1NZU19HUFBfTEVWRUxfQ09OVFJPTAkweDAwMDAwMmM2CiAjZWxzZQotIyBkZWZpbmUgQ0ZHX0dQUF9MRVZFTF9DT05UUk9MCTB4MmM2MDAwMDAJLyogMDAxMCAxMTAwIDAxMTAgMDAwMCAqLworIyBkZWZpbmUgQ09ORklHX1NZU19HUFBfTEVWRUxfQ09OVFJPTAkweDJjNjAwMDAwCS8qIDAwMTAgMTEwMCAwMTEwIDAwMDAgKi8KIAkJCQkJCS8qIGdwcFsyOV0gKi8KIAkJCQkJCS8qIGdwcFsyNzoyNl0gKi8KIAkJCQkJCS8qIGdwcFsyMjoyMV0gKi8KIAotIyBkZWZpbmUgQ0ZHX1NEUkFNX0NPTkZJRwkweGQ4ZTE4MjAwCS8qIDB4NDQ4ICovCisjIGRlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NPTkZJRwkweGQ4ZTE4MjAwCS8qIDB4NDQ4ICovCiAJCQkJLyogaWRtYXMgdXNlIGJ1ZmZlciAxLDEKIAkJCQkgICBjb21tIHVzZSBidWZmZXIgMAogCQkJCSAgIHBjaSB1c2UgYnVmZmVyIDEsMQpAQCAtMjg2LDEzICsyODYsMTMgQEAKICNlbmRpZgogCiAjaWYgMAotI2RlZmluZSBDRkdfRFVBUlRfSU8JCUNGR19ERVYyX1NQQUNFCi0jZGVmaW5lIENGR19EVUFSVF9DSEFOCQkxCQkvKiBjaGFubmVsIHRvIHVzZSBmb3IgY29uc29sZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RVQVJUX0lPCQlDT05GSUdfU1lTX0RFVjJfU1BBQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19EVUFSVF9DSEFOCQkxCQkvKiBjaGFubmVsIHRvIHVzZSBmb3IgY29uc29sZSAqLwogI2VuZGlmCi0jdW5kZWYgQ0ZHX0lOSVRfQ0hBTjEKLSN1bmRlZiBDRkdfSU5JVF9DSEFOMgorI3VuZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMQorI3VuZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMgogI2lmIDAKLSNkZWZpbmUgU1JBTV9CQVNFCQlDRkdfREVWMF9TUEFDRQorI2RlZmluZSBTUkFNX0JBU0UJCUNPTkZJR19TWVNfREVWMF9TUEFDRQogI2RlZmluZSBTUkFNX1NJWkUJCTB4MDAxMDAwMDAJCS8qIDEgTUIgb2Ygc3JhbSAqLwogI2VuZGlmCiAKQEAgLTMxMSwyNCArMzExLDI0IEBACiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QICAgICAgICAgICAgICAgICAgLyogZG8gcGNpIHBsdWctYW5kLXBsYXkgICAgICAgICAqLwogCiAvKiBQQ0kgTUVNT1JZIE1BUCBzZWN0aW9uICovCi0jZGVmaW5lIENGR19QQ0kwX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTBfTUVNX1NJWkUJXzEyOE0KLSNkZWZpbmUgQ0ZHX1BDSTBfMF9NRU1fU1BBQ0UJKENGR19QQ0kwX01FTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfTUVNX1NJWkUJXzEyOE0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwXzBfTUVNX1NQQUNFCShDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UpCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4ODAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQlfMTI4TQotI2RlZmluZSBDRkdfUENJMV8wX01FTV9TUEFDRQkoQ0ZHX1BDSTFfTUVNX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDg4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQlfMTI4TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfMF9NRU1fU1BBQ0UJKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSkKIAogLyogUENJIEkvTyBNQVAgc2VjdGlvbiAqLwotI2RlZmluZSBDRkdfUENJMF9JT19CQVNFCTB4ZmEwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fU0laRQlfMTZNCi0jZGVmaW5lIENGR19QQ0kwX0lPX1NQQUNFCShDRkdfUENJMF9JT19CQVNFKQotI2RlZmluZSBDRkdfUENJMF9JT19TUEFDRV9QQ0kJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fQkFTRQkweGZhMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19TSVpFCV8xNk0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFCShDT05GSUdfU1lTX1BDSTBfSU9fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFX1BDSQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweGZiMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJXzE2TQotI2RlZmluZSBDRkdfUENJMV9JT19TUEFDRQkoQ0ZHX1BDSTFfSU9fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU1BBQ0VfUENJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHhmYjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQlfMTZNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TUEFDRQkoQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TUEFDRV9QQ0kJMHgwMDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgQkFUIG1hcHBpbmdzCkBAIC0zNDAsMzIgKzM0MCwzMiBAQAogICovCiAKIC8qIFNEUkFNICovCi0jZGVmaW5lIENGR19JQkFUMEwgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDBVIChDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDBMIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMFUgQ0ZHX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVSAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSBDT05GSUdfU1lTX0lCQVQwVQogCiAvKiBpbml0IHJhbSAqLwotI2RlZmluZSBDRkdfSUJBVDFMICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDFMICBDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUgIENGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMICBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVSAgQ09ORklHX1NZU19JQkFUMVUKIAogLyogUENJMCwgUENJMSBpbiBvbmUgQkFUICovCi0jZGVmaW5lIENGR19JQkFUMkwgQkFUTF9OT19BQ0NFU1MKLSNkZWZpbmUgQ0ZHX0lCQVQyVSBDRkdfREJBVDJVCi0jZGVmaW5lIENGR19EQkFUMkwgKENGR19QQ0kwX01FTV9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQyVSAoQ0ZHX1BDSTBfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwgQkFUTF9OT19BQ0NFU1MKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgQ09ORklHX1NZU19EQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwgKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVIChDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogR1QgcmVncywgYm9vdHJvbSwgYWxsIHRoZSBkZXZpY2VzLCBQQ0kgSS9PICovCi0jZGVmaW5lIENGR19JQkFUM0wgKENGR19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXKQotI2RlZmluZSBDRkdfSUJBVDNVIChDRkdfTUlTQ19SRUdJT05fQkFTRSB8IEJBVFVfVlMgfCBCQVRVX1ZQIHwgQkFUVV9CTF8yNTZNKQotI2RlZmluZSBDRkdfREJBVDNMIChDRkdfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUM1UgQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTCAoQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVSAoQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUVV9WUyB8IEJBVFVfVlAgfCBCQVRVX0JMXzI1Nk0pCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMIChDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSBDT05GSUdfU1lTX0lCQVQzVQogCiAvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKGZvciBjb21wYXRhYmlsaXR5KSBkZWZhdWx0cyAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECTQwMDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCTB4N0YKIAogLyogSTJDIGFkZHJlc3NlcyBmb3IgdGhlIHR3byBESU1NIFNQRCBjaGlwcyAqLwogI2lmbmRlZiBDT05GSUdfRVZCNjQyNjBfNzUwQ1gKQEAgLTM4MSwyMSArMzgxLDIxIEBACiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4PDwyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDg8PDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRVhUUkFfRkxBU0hfREVWSUNFCUJPT1RfREVWSUNFCi0jZGVmaW5lIENGR19FWFRSQV9GTEFTSF9XSURUSAkyCS8qIDE2IGJpdCAqLwotI2RlZmluZSBDRkdfQk9PVF9GTEFTSF9XSURUSAkyCS8qIDE2IGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVFJBX0ZMQVNIX0RFVklDRQlCT09UX0RFVklDRQorI2RlZmluZSBDT05GSUdfU1lTX0VYVFJBX0ZMQVNIX1dJRFRICTIJLyogMTYgYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9GTEFTSF9XSURUSAkyCS8qIDE2IGJpdCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwpAQCAtNDA1LDkgKzQwNSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBhbGwgTVBDNzR4eCBDUFVzCQkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgYWxsIE1QQzc0eHggQ1BVcwkJICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDE1LDcgKzQxNSw3IEBACiAgKiBsb29rIGluIGluY2x1ZGUvNzR4eF83eHguaCBmb3IgdGhlIGRlZmluZXMgdXNlZCBoZXJlCiAgKi8KIAotI2RlZmluZSBDRkdfTDIKKyNkZWZpbmUgQ09ORklHX1NZU19MMgogCiAjZGVmaW5lIEwyX0lOSVQJCShMMkNSX0wyU0laXzJNIHwgTDJDUl9MMkNMS18zIHwgTDJDUl9MMlJBTV9CVVJTVCB8IFwKIAkJCSBMMkNSX0wyT0hfNSB8IEwyQ1JfTDJDVEwgfCBMMkNSX0wyV1QpCkBAIC00MzAsNyArNDMwLDcgQEAKICNkZWZpbmUJQk9PVEZMQUdfQ09MRAkweDAxCQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCTB4MDIJCS8qIFNvZnR3YXJlIHJlYm9vdAkJICAgICovCiAKLSNkZWZpbmUgQ0ZHX0JPQVJEX0FTTV9JTklUICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX0FTTV9JTklUICAgICAgMQogCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUEFUSS5oIGIvaW5jbHVkZS9jb25maWdzL1BBVEkuaAppbmRleCA0MmIxNTVlLi45ZDgwY2U0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUEFUSS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9QQVRJLmgKQEAgLTg3LDI4ICs4NywyOCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYJLyogc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIGFyZSBpbiBldmlyb25tZW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYJLyogc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIGFyZSBpbiBldmlyb25tZW50ICovCiAjZGVmaW5lIENPTkZJR19QUkVCT09UCiAKLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkicGF0aT0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJwYXRpPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CSAgICAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMTAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwQTAwMDAwCS8qIDEwIE1CIGluIFNSQU0JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAxMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwQTAwMDAwCS8qIDEwIE1CIGluIFNSQU0JCQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkJLyogRGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogRGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMTI1MDAwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDEyNTAwMDAgfQogCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTIzLDQxICsxMjMsNDEgQEAKIC8qCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIChUaGlzIGlzIG5vdCB0aGUgSU1NUiBjb250ZW50KQogICovCi0jZGVmaW5lIENGR19JTU1SCQkweDAxQzAwMDAwCQkvKiBQaHlzaWNhbCBzdGFydCBhZHJlc3Mgb2YgaW50ZXJuYWwgbWVtb3J5IG1hcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4MDFDMDAwMDAJCS8qIFBoeXNpY2FsIHN0YXJ0IGFkcmVzcyBvZiBpbnRlcm5hbCBtZW1vcnkgbWFwICovCiAKIC8qCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkoQ0ZHX0lNTVIgKyAweDAwM2Y5ODAwKQkvKiBQaHlzaWNhbCBzdGFydCBhZHJlc3Mgb2YgaW50ZXJuYWwgTVBDNTU1IHdyaXRhYmxlIFJBTSAqLwotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECShDRkdfSU1NUiArIDB4MDAzZmZmZmYpCS8qIFBoeXNpY2FsIGVuZCBhZHJlc3Mgb2YgaW50ZXJuYWwgTVBDNTU1IHVzZWQgUkFNIGFyZWEJKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkJLyogU2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBnbG9iYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCSgoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19JTklUX1JBTV9BRERSKSAtIENGR19HQkxfREFUQV9TSVpFKSAvKiBPZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHJhbSAqLwotI2RlZmluZQlDRkdfSU5JVF9TUF9BRERSCShDRkdfSU1NUiArIDB4MDNmYTAwMCkJLyogUGh5c2ljYWwgc3RhcnQgYWRyZXNzIG9mIGluaXRhbCBzdGFjayAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJKENPTkZJR19TWVNfSU1NUiArIDB4MDAzZjk4MDApCS8qIFBoeXNpY2FsIHN0YXJ0IGFkcmVzcyBvZiBpbnRlcm5hbCBNUEM1NTUgd3JpdGFibGUgUkFNICovCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECShDT05GSUdfU1lTX0lNTVIgKyAweDAwM2ZmZmZmKQkvKiBQaHlzaWNhbCBlbmQgYWRyZXNzIG9mIGludGVybmFsIE1QQzU1NSB1c2VkIFJBTSBhcmVhCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCQkvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGdsb2JhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCSgoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIpIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKSAvKiBPZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHJhbSAqLworI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfQUREUgkoQ09ORklHX1NZU19JTU1SICsgMHgwM2ZhMDAwKQkvKiBQaHlzaWNhbCBzdGFydCBhZHJlc3Mgb2YgaW5pdGFsIHN0YWNrICovCiAvKgogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogTW9uaXRvciB3b24ndCBjaGFuZ2UgbWVtb3J5IG1hcAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmQzAwMDAwCS8qIEV4dGVybmFsIGZsYXNoICovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAkvKiBNb25pdG9yIHdvbid0IGNoYW5nZSBtZW1vcnkgbWFwCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmQzAwMDAwCS8qIEV4dGVybmFsIGZsYXNoICovCiAjZGVmaW5lIFBDSV9CQVNFCQkweDAzMDAwMDAwCS8qIFBDSSBCYXNlIChDUzIpICovCiAjZGVmaW5lIFBDSV9DT05GSUdfQkFTRQkJMHgwNDAwMDAwMAkvKiBQQ0kgJiBQTEQgIChDUzMpICovCiAjZGVmaW5lIFBMRF9DT05GSUdfQkFTRQkJMHgwNDAwMTAwMAkvKiBQTEQgIChDUzMpICovCiAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfQkFTRQkweEZGRjAwMDAwCi0vKiBDRkdfRkxBU0hfQkFTRQkqLyAvKiBURVhUX0JBU0UgaXMgZGVmaW5lZCBpbiB0aGUgYm9hcmQgY29uZmlnLm1rIGZpbGUuCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4RkZGMDAwMDAKKy8qIENPTkZJR19TWVNfRkxBU0hfQkFTRQkqLyAvKiBURVhUX0JBU0UgaXMgZGVmaW5lZCBpbiB0aGUgYm9hcmQgY29uZmlnLm1rIGZpbGUuCSovCiAJCQkJCQkvKiBUaGlzIGFkcmVzcyBpcyBnaXZlbiB0byB0aGUgbGlua2VyIHdpdGggLVR0ZXh0IHRvCSovCiAJCQkJCQkvKiBsb2NhdGUgdGhlIHRleHQgc2VjdGlvbiBhdCB0aGlzIGFkcmVzcy4JCSovCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJCQkJKi8KLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkJCQkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkJCQkqLworI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkJCQkqLwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCShQTERfQ09ORklHX0JBU0UgKyAweDEwKQkgLyogQWRyZXNzIHdoaWNoIGNhdXNlcyByZXNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJKFBMRF9DT05GSUdfQkFTRSArIDB4MTApCSAvKiBBZHJlc3Mgd2hpY2ggY2F1c2VzIHJlc2V0ICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CQkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJCSovCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTY2LDEwICsxNjYsMTAgQEAKICAqCiAgKi8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCQkxCQkvKiBNYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCQkxMjgJCS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxODAwMDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNjAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCQkvKiBNYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJMTI4CQkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTE4MDAwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNjAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0VFUFJPTQpAQCAtMTgxLDE0ICsxODEsMTQgQEAKICN1bmRlZiAgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2lmZGVmCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDAwMDAyMDAwCQkvKiBTZXQgd2hvbGUgc2VjdG9yIGFzIGVudgkJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCSgoMCAtIENGR19GTEFTSF9CQVNFKSAtIENPTkZJR19FTlZfU0laRSkJCS8qIEVudmlyb25tZW50IHN0YXJ0cyBhdCB0aGlzIGFkcmVzcwkqLworI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKCgwIC0gQ09ORklHX1NZU19GTEFTSF9CQVNFKSAtIENPTkZJR19FTlZfU0laRSkJCS8qIEVudmlyb25tZW50IHN0YXJ0cyBhdCB0aGlzIGFkcmVzcwkqLwogI2VuZGlmCiAKIAogI2RlZmluZSBDT05GSUdfU1BJCQkxCi0jZGVmaW5lIENGR19TUElfQ1NfVVNFRAkweDA5IC8qIENTMCBhbmQgQ1MzIGFyZSB1c2VkICovCi0jZGVmaW5lIENGR19TUElfQ1NfQkFTRQkweDA4IC8qIENTMyBpcyBhY3RpdmUgbG93ICovCi0jZGVmaW5lIENGR19TUElfQ1NfQUNUCTB4MDAgLyogQ1MzIGlzIGFjdGl2ZSBsb3cgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUElfQ1NfVVNFRAkweDA5IC8qIENTMCBhbmQgQ1MzIGFyZSB1c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfU1BJX0NTX0JBU0UJMHgwOCAvKiBDUzMgaXMgYWN0aXZlIGxvdyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NQSV9DU19BQ1QJMHgwMCAvKiBDUzMgaXMgYWN0aXZlIGxvdyAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU1lQQ1IgLSBTeXN0ZW0gUHJvdGVjdGlvbiBDb250cm9sCiAgKiBTWVBDUiBjYW4gb25seSBiZSB3cml0dGVuIG9uY2UgYWZ0ZXIgcmVzZXQhCkBAIC0xOTcsMTAgKzE5NywxMCBAQAogICovCiAjdW5kZWYgQ09ORklHX1dBVENIRE9HCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dQKQogI2VuZGlmCS8qIENPTkZJR19XQVRDSERPRyAqLwogCkBAIC0yMDksMTQgKzIwOSwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIKQEAgLTIyNSw3ICsyMjUsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMDAKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFNDQ1JfUlRESVYgICAgfCBTQ0NSX1JUU0VMICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFNDQ1JfUlRESVYgICAgfCBTQ0NSX1JUU0VMICAgIHwgXAogCQkJIFNDQ1JfQ09NMDEgICB8IFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjMzLDcgKzIzMyw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEYXRhIHNob3cgY3ljbGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0VBUkIgfCBTSVVNQ1JfR1BDMDEgfCBTSVVNQ1JfTUxSQzExKSAvKiBEaXNhYmxlIGRhdGEgc2hvdyBjeWNsZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9FQVJCIHwgU0lVTUNSX0dQQzAxIHwgU0lVTUNSX01MUkMxMSkgLyogRGlzYWJsZSBkYXRhIHNob3cgY3ljbGUJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCkBAIC0yNDEsNDcgKzI0MSw0NyBAQAogICogU2V0IGFsbCBiaXRzIHRvIDQwIE1oegogICoKICAqLwotI2RlZmluZSBDRkdfT1NDX0NMSwkoKHVpbnQpNDAwMDAwMCkJCS8qIE9zY2lsbGF0b3IgY2xvY2sgaXMgNE1IegkqLworI2RlZmluZSBDT05GSUdfU1lTX09TQ19DTEsJKCh1aW50KTQwMDAwMDApCQkvKiBPc2NpbGxhdG9yIGNsb2NrIGlzIDRNSHoJKi8KIAogCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9NRl85IHwgUExQUkNSX0RJVkZfMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9NRl85IHwgUExQUkNSX0RJVkZfMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVU1DUiAtIFVJTUIgTW9kdWxlIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1VNQ1IJKFVNQ1JfRlNQRUVEKQkJLyogSU1CIGNsb2NrIHNhbWUgYXMgVS1idXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VTUNSCShVTUNSX0ZTUEVFRCkJCS8qIElNQiBjbG9jayBzYW1lIGFzIFUtYnVzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElDVFJMIC0gSS1CdXMgU3VwcG9ydCBDb250cm9sIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lDVFJMCShJQ1RSTF9JU0NUX1NFUl83KQkvKiBUYWtlIG91dCBvZiBzZXJpYWxpemVkIG1vZGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JQ1RSTAkoSUNUUkxfSVNDVF9TRVJfNykJLyogVGFrZSBvdXQgb2Ygc2VyaWFsaXplZCBtb2RlCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFVTSVUgLSBNZW1vcnkgQ29udHJvbGxlciBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoQ0ZHX0ZMQVNIX0JBU0UgfCBCUl9WIHwgQlJfQkkgfCBCUl9QU18xNiB8IEJSX1NFVEEpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkoMHhmZmMwMDAwMCkgLyogU0NZIGlzIG5vdCB1c2VkIGlmIGV4dGVybmFsIFRBIGlzIHNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCUl9WIHwgQlJfQkkgfCBCUl9QU18xNiB8IEJSX1NFVEEpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJKDB4ZmZjMDAwMDApIC8qIFNDWSBpcyBub3QgdXNlZCBpZiBleHRlcm5hbCBUQSBpcyBzZXQgKi8KIC8qIFNEUkFNICovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCQkoQ0ZHX1NEUkFNX0JBU0UgfCBCUl9WIHwgQlJfQkkgfCBCUl9QU18zMiB8IEJSX1NFVEEpCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkoT1JfQUREUl9NS19GRikgLyogU0NZIGlzIG5vdCB1c2VkIGlmIGV4dGVybmFsIFRBIGlzIHNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCUl9WIHwgQlJfQkkgfCBCUl9QU18zMiB8IEJSX1NFVEEpCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJKE9SX0FERFJfTUtfRkYpIC8qIFNDWSBpcyBub3QgdXNlZCBpZiBleHRlcm5hbCBUQSBpcyBzZXQgKi8KIC8qIFBDSSAqLwotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJKFBDSV9CQVNFIHwgQlJfViB8IEJSX1BTXzMyIHwgQlJfU0VUQSkKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCShPUl9BRERSX01LX0ZGKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCShQQ0lfQkFTRSB8IEJSX1YgfCBCUl9QU18zMiB8IEJSX1NFVEEpCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJKE9SX0FERFJfTUtfRkYpCiAvKiBjb25maWcgcmVnaXN0ZXJzOiAqLwotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkJKFBDSV9DT05GSUdfQkFTRSB8IEJSX1YgfCBCUl9CSSB8IEJSX1BTXzMyIHwgQlJfU0VUQSkKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JCSgweGZmZmYwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCShQQ0lfQ09ORklHX0JBU0UgfCBCUl9WIHwgQlJfQkkgfCBCUl9QU18zMiB8IEJSX1NFVEEpCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkJKDB4ZmZmZjAwMDApCiAKLSNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNGR19GTEFTSF9CQVNFCS8qIFdlIGRvbid0IHJlYWxpZ24gdGhlIGZsYXNoCSovCisjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogV2UgZG9uJ3QgcmVhbGlnbiB0aGUgZmxhc2gJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogREVSIC0gVGltZXIgRGVjcmVtZW50ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWxpc2UgdG8gemVybwogICovCi0jZGVmaW5lIENGR19ERVIJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCQkJMHgwMDAwMDAwMAogCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUENJNDA1LmggYi9pbmNsdWRlL2NvbmZpZ3MvUENJNDA1LmgKaW5kZXggYjBjYTVhOC4uYjU1ZTM4MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1BDSTQwNS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9QQ0k0MDUuaApAQCAtNjEsNyArNjEsNyBAQAogI2RlZmluZSBDT05GSUdfUFJFQk9PVCAgICAgICAgICAgICAgICAgIC8qIGVuYWJsZSBwcmVib290IHZhcmlhYmxlICAgICAgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCTAJLyogUEhZIGFkZHJlc3MJCQkqLwpAQCAtMTAxLDQzICsxMDEsNDMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLwotI2RlZmluZSBDRkdfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECSAgICA2OTEyMDAKKyN1bmRlZglDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkgICAgNjkxMjAwCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAgICAgXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICN1bmRlZiBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogCkBAIC0xNTgsNjEgKzE1OCw2MSBAQAogCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBwcmludCBwY2kgZGV2aWNlcyBAIHN0YXJ0dXAJKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA3CS8qIFBDSSBEZXZpY2UgSUQ6IFBDSS00MDUJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9DTEFTU0NPREUJMHgwMjgwCS8qIFBDSSBDbGFzcyBDb2RlOiBOZXR3b3JrL090aGVyKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMJMHhmZjAwMDAwMQkvKiAxNk1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNwkvKiBQQ0kgRGV2aWNlIElEOiBQQ0ktNDA1CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERQkweDAyODAJLyogUENJIENsYXNzIENvZGU6IE5ldHdvcmsvT3RoZXIqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4ZmYwMDAwMDEJLyogMTZNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KIAogI2lmIDAgLyogdGVzdC1vbmx5ICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4ZmZjMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCTB4ZmZjMDAwMDEJLyogNE1CLCBlbmFibGUJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEJMHhmZmMwMDAwMAkvKiBwb2ludCB0byBmbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TCTB4ZmZjMDAwMDEJLyogNE1CLCBlbmFibGUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KICNlbHNlCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4ZWY2MDAwMDAJLyogcG9pbnQgdG8gaW50ZXJuYWwgcmVncwkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweGZmZTAwMDAxCS8qIDJNQiwgZW5hYmxlCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4ZWY2MDAwMDAJLyogcG9pbnQgdG8gaW50ZXJuYWwgcmVncwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmUwMDAwMQkvKiAyTUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkQwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkJLyogUmVzZXJ2ZSAxOTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkZEMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiAqIDEwMjQpCS8qIFJlc2VydmUgMTk2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNpZiAwIC8qIFVzZSBOVlJBTSBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMjEsNyArMjIxLDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTQkxCS8qIHVzZSBOVlJBTSBmb3IgZW52aXJvbm1lbnQgdmFycwkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MGZmOAkJLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzCSovCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJXAotCShDRkdfTlZSQU1fQkFTRV9BRERSK0NGR19OVlJBTV9TSVpFLShDT05GSUdfRU5WX1NJWkUrOCkpCS8qIEVudgkqLworCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtKENPTkZJR19FTlZfU0laRSs4KSkJLyogRW52CSovCiAKICNlbHNlIC8qIFVzZSBFRVBST00gZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogCkBAIC0yMzEsMjQgKzIzMSwyNCBAQAogCQkJCSAgIC8qIHRvdGFsIHNpemUgb2YgYSBDQVQyNFdDMDggaXMgMTAyNCBieXRlcyAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweGYwMjAwMDAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJCSgzMioxMDI0KQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhmMDIwMDAwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJKDMyKjEwMjQpCQkvKiBOVlJBTSBzaXplCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTI2Myw4OCArMjYzLDg4IEBACiAgKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoTlZSQU0vUlRDKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHgwMTAwNTI4MCAgLyogVFdUPTIsV0JOPTEsV0JGPTEsVEg9MSxTT1I9MQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkweEYwMjE4MDAwICAvKiBCQVM9MHhGMDIsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQCQkweDAxMDA1MjgwICAvKiBUV1Q9MixXQk49MSxXQkY9MSxUSD0xLFNPUj0xCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkweEYwMjE4MDAwICAvKiBCQVM9MHhGMDIsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDIgKENBTjAsIDEpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLS8qI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkgIDB4MDM4MDU2QzAgIC8gKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisvKiNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCSAgMHgwMzgwNTZDMCAgLyAqIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAzIChGUEdBIGludGVybmFsKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RjA0MUMwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPTMyYml0ICovCi0jZGVmaW5lIENGR19GUEdBX0JBU0VfQUREUgkweEYwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCTB4RjA0MUMwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPTMyYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIJMHhGMDQwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGUEdBIHN0dWZmCiAgKi8KIC8qIEZQR0EgaW50ZXJuYWwgcmVncyAqLwotI2RlZmluZSBDRkdfRlBHQV9NT0RFCQkweDAwCi0jZGVmaW5lIENGR19GUEdBX1NUQVRVUwkJMHgwMgotI2RlZmluZSBDRkdfRlBHQV9UUwkJMHgwNAotI2RlZmluZSBDRkdfRlBHQV9UU19MT1cJCTB4MDYKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMAkweDEwCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDBfTE9XCTB4MTIKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMQkweDE0Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDFfTE9XCTB4MTYKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMgkweDE4Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDJfTE9XCTB4MWEKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMwkweDFjCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDNfTE9XCTB4MWUKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREUJCTB4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVUwkJMHgwMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFMJCTB4MDQKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0xPVwkJMHgwNgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMAkweDEwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAwX0xPVwkweDEyCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAxCTB4MTQKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDFfTE9XCTB4MTYKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDIJMHgxOAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMl9MT1cJMHgxYQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMwkweDFjCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAzX0xPVwkweDFlCiAKIC8qIEZQR0EgTW9kZSBSZWcgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9DRl9SRVNFVAkweDAwMDEKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9UU19JUlFfRU5BQkxFIDB4MDEwMAotI2RlZmluZSBDRkdfRlBHQV9NT0RFX1RTX0lSUV9DTEVBUiAgMHgxMDAwCi0jZGVmaW5lIENGR19GUEdBX01PREVfVFNfQ0xFQVIJMHgyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFX0NGX1JFU0VUCTB4MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9UU19JUlFfRU5BQkxFIDB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9UU19JUlFfQ0xFQVIgIDB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9UU19DTEVBUgkweDIwMDAKIAogLyogRlBHQSBTdGF0dXMgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19ESVAwCTB4MDAwMQotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfRElQMQkweDAwMDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0RJUDIJMHgwMDA0Ci0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19GTEFTSAkweDAwMDgKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX1RTX0lSUQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19ESVAwCTB4MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0RJUDEJMHgwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRElQMgkweDAwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19GTEFTSAkweDAwMDgKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19UU19JUlEJMHgxMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1BBUlRBTjIJMQkgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTUFYX1NJWkUJMzIqMTAyNAkgICAgLyogMzJrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlMxNSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCTEJICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRQkzMioxMDI0CSAgICAvKiAzMmtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzE1ICAqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAgICovCi0jZGVmaW5lIENGR19GUEdBX0lOSVQJCTB4MDA0MDAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkUJCTB4MDA4MDAwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVAkJMHgwMDQwMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MDA4MDAwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCiAvKiBuZXcgSU5JVCBhbmQgRE9ORSBwaW5zIHNpbmNlIGJvYXJkIHJldmlzaW9uIDEuMiAoZm9yIFBQQzQwNUdQciBzdXBwb3J0KSAgICovCi0jZGVmaW5lIENGR19GUEdBX0lOSVRfVjEyCTB4MDAwMDgwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkVfVjEyCTB4MDAwMTAwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9JTklUX1YxMgkweDAwMDA4MDAwICAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORV9WMTIJMHgwMDAxMDAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCiAjaWYgMCAvKiB0ZXN0LW9ubHkgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfRENBQ0hFX0NTCTcJLyogdXNlIGNzICMgNyBmb3IgZGF0YSBjYWNoZSBtZW1vcnkgICAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMCAgLyogdXNlIGRhdGEgY2FjaGUJCSAgICAgICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MJNwkvKiB1c2UgY3MgIyA3IGZvciBkYXRhIGNhY2hlIG1lbW9yeSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMCAgLyogdXNlIGRhdGEgY2FjaGUJCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogI2Vsc2UKIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkgIDEKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAjZW5kaWYKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9QQ0k1NDQxLmggYi9pbmNsdWRlL2NvbmZpZ3MvUENJNTQ0MS5oCmluZGV4IGI4OGExNzMuLjQ4MWUzMzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9QQ0k1NDQxLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1BDSTU0NDEuaApAQCAtMzAsMjcgKzMwLDI3IEBACiAjZGVmaW5lCUNPTkZJR19QQ0k1NDQxCQkxCQkvKiBQQ0ktNTQ0MSBib2FyZAkqLwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTUwMDAwMDAwCS8qIDUwIE1IeiBjb3JlIGNsawkqLwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSCQkweDAwMDAwMDAwCS8qIEhhcmQtcmVzZXQgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRVhDRVBUSU9OX0FERFIJMHgwMTAwMDAyMAkvKiBFeGNlcHRpb24gZW50cnkgcG9pbnQqLwotI2RlZmluZSBDRkdfTklPU19TWVNJRF9CQVNFCTB4MDA5MjA4MjgJLyogU3lzdGVtIGlkIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSCQkweDAwMDAwMDAwCS8qIEhhcmQtcmVzZXQgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0VYQ0VQVElPTl9BRERSCTB4MDEwMDAwMjAJLyogRXhjZXB0aW9uIGVudHJ5IHBvaW50Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1NZU0lEX0JBU0UJMHgwMDkyMDgyOAkvKiBTeXN0ZW0gaWQgYWRkcmVzcwkqLwogI2RlZmluZQlDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIDEJLyogZW5hYmxlIGVhcmx5IGJvYXJkLXNwZWMuIGluaXQqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ0FDSEUgLS0gdGhlIGZvbGxvd2luZyB3aWxsIHN1cHBvcnQgSUkvcyBhbmQgSUkvZi4gVGhlIElJL3MgZG9lcyBub3QKICAqIGhhdmUgZGNhY2hlLCBzbyB0aGUgY2FjaGUgaW5zdHJ1Y3Rpb25zIHdpbGwgYmVoYXZlIGFzIE5PUHMuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSUNBQ0hFX1NJWkUJCTQwOTYJCS8qIDQgS0J5dGUgdG90YWwJKi8KLSNkZWZpbmUgQ0ZHX0lDQUNIRUxJTkVfU0laRQkzMgkJLyogMzIgYnl0ZXMvbGluZQkqLwotI2RlZmluZSBDRkdfRENBQ0hFX1NJWkUJCTIwNDgJCS8qIDIgS0J5dGUgKElJL2YpCSovCi0jZGVmaW5lIENGR19EQ0FDSEVMSU5FX1NJWkUJNAkJLyogNCBieXRlcy9saW5lIChJSS9mKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lDQUNIRV9TSVpFCQk0MDk2CQkvKiA0IEtCeXRlIHRvdGFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFTElORV9TSVpFCTMyCQkvKiAzMiBieXRlcy9saW5lCSovCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NJWkUJCTIwNDgJCS8qIDIgS0J5dGUgKElJL2YpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFTElORV9TSVpFCTQJCS8qIDQgYnl0ZXMvbGluZSAoSUkvZikJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1FTU9SWSBCQVNFIEFERFJFU1NFUwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAJLyogRkxBU0ggYmFzZSBhZGRyCSovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwODAwMDAwCS8qIDggTUJ5dGUJCSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAxMDAwMDAwCS8qIFNEUkFNIGJhc2UgYWRkcgkqLwotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMHgwMTAwMDAwMAkvKiAxNiBNQnl0ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDAwMDAwMDAwCS8qIEZMQVNIIGJhc2UgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAJLyogOCBNQnl0ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAxMDAwMDAwCS8qIFNEUkFNIGJhc2UgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTB4MDEwMDAwMDAJLyogMTYgTUJ5dGUJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNRU1PUlkgT1JHQU5JWkFUSU9OCkBAIC01OSwyNyArNTksMjcgQEAKICAqCS1HbG9iYWwgZGF0YSBpcyBwbGFjZWQgYmVsb3cgdGhlIGhlYXAuCiAgKgktVGhlIHN0YWNrIGlzIHBsYWNlZCBiZWxvdyBnbG9iYWwgZGF0YSAoJmdyb3dzIGRvd24pLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjhrCQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIEdsb2JhbCBkYXRhIHNpemUgcnN2ZCovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOGsJCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIEdsb2JhbCBkYXRhIHNpemUgcnN2ZCovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfQkFTRQkJKENGR19NT05JVE9SX0JBU0UgLSBDRkdfTUFMTE9DX0xFTikKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX01BTExPQ19CQVNFIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQCQlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19CQVNFCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfU1lTX01BTExPQ19MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX01BTExPQ19CQVNFIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1AJCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCAoQU0yOUxWMDY1RCkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIE1heCAjIHNlY3RzIHBlciBiYW5rICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogTWF4ICMgb2YgZmxhc2ggYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkJLyogRXJhc2UgdGltZW91dCAobXNlYykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwCQkvKiBXcml0ZSB0aW1lb3V0IChtc2VjKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIGNoYXIJLyogZmxhc2ggd29yZCBzaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBNYXggIyBzZWN0cyBwZXIgYmFuayAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkJLyogRXJhc2UgdGltZW91dCAobXNlYykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMAkJLyogV3JpdGUgdGltZW91dCAobXNlYykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgkvKiBmbGFzaCB3b3JkIHNpemUJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqIEVOVklST05NRU5UIC0tIFB1dCBlbnZpcm9ubWVudCBpbiBzZWN0b3IgQ0ZHX01PTklUT1JfTEVOIGFib3ZlCi0gKiBDRkdfUkVTRVRfQUREUiwgc2luY2Ugd2UgYXNzdW1lIHRoZSBtb25pdG9yIGlzIHN0b3JlZCBhdCB0aGUKKyAqIEVOVklST05NRU5UIC0tIFB1dCBlbnZpcm9ubWVudCBpbiBzZWN0b3IgQ09ORklHX1NZU19NT05JVE9SX0xFTiBhYm92ZQorICogQ09ORklHX1NZU19SRVNFVF9BRERSLCBzaW5jZSB3ZSBhc3N1bWUgdGhlIG1vbml0b3IgaXMgc3RvcmVkIGF0IHRoZQogICogcmVzZXQgYWRkcmVzcywgbm8/IFRoaXMgd2lsbCBrZWVwIHRoZSBlbnZpcm9ubWVudCBpbiB1c2VyIHJlZ2lvbgogICogb2YgZmxhc2guIE5PVEU6IHRoZSBtb25pdG9yIGxlbmd0aCBtdXN0IGJlIG11bHRpcGxlIG9mIHNlY3RvciBzaXplCiAgKiAod2hpY2ggaXMgY29tbW9uIHByYWN0aWNlKS4KQEAgLTg3LDIyICs4NywyMiBAQAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEJCS8qIEVudmlyb25tZW50IGluIGZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKDY0ICogMTAyNCkJLyogNjQgS0J5dGUgKDEgc2VjdG9yKQkqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQkJCS8qIFNlcmlhbCBjaGFuZ2UgT2sJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfUkVTRVRfQUREUiArIENGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX1JFU0VUX0FERFIgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ09OU09MRQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZiBkZWZpbmVkKENPTkZJR19DT05TT0xFX0pUQUcpCi0jZGVmaW5lIENGR19OSU9TX0NPTlNPTEUJMHgwMDkyMDgyMAkvKiBKVEFHIFVBUlQgYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19DT05TT0xFCTB4MDA5MjA4MjAJLyogSlRBRyBVQVJUIGJhc2UgYWRkcgkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX05JT1NfQ09OU09MRQkweDAwOTIwOGEwCS8qIFVBUlQgYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19DT05TT0xFCTB4MDA5MjA4YTAJLyogVUFSVCBiYXNlIGFkZHIJKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19OSU9TX0ZJWEVEQkFVRAkxCQkvKiBCYXVkcmF0ZSBpcyBmaXhlZAkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfRklYRURCQVVECTEJCS8qIEJhdWRyYXRlIGlzIGZpeGVkCSovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCQkvKiBJbml0aWFsIGJhdWRyYXRlCSovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7MTE1MjAwfQkvKiBJdCdzIGZpeGVkIDstKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsxMTUyMDB9CS8qIEl0J3MgZml4ZWQgOy0pCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCQkvKiBTdXBwcmVzcyBjb25zb2xlIGluZm8qLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCQkvKiBTdXBwcmVzcyBjb25zb2xlIGluZm8qLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogREVCVUcKQEAgLTExNiwxMSArMTE2LDExIEBACiAgKiByZWdpc3RlcnMsIHdlIGNhbiBzbG93IGl0IGRvd24gdG8gMTAgbXNlYyB1c2luZyBUTVJDTlQuIElmIHRoZSBkZWZhdWx0CiAgKiBwZXJpb2QgaXMgYWNjZXB0YWJsZSwgVE1SQ05UIGNhbiBiZSBsZWZ0IHVuZGVmaW5lZC4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19OSU9TX1RNUkJBU0UJMHgwMDkyMDg2MAkvKiBUaWNrIHRpbWVyIGJhc2UgYWRkcgkqLwotI2RlZmluZSBDRkdfTklPU19UTVJJUlEJCTMJCS8qIFRpbWVyIElSUSBudW0JKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1STVMJCTEwCQkvKiAxMCBtc2VjIHBlciB0aWNrCSovCi0jZGVmaW5lIENGR19OSU9TX1RNUkNOVAkoQ0ZHX05JT1NfVE1STVMgKiAoQ09ORklHX1NZU19DTEtfRlJFUS8xMDAwKSkKLSNkZWZpbmUJQ0ZHX0haCQkoQ09ORklHX1NZU19DTEtfRlJFUS8oQ0ZHX05JT1NfVE1SQ05UICsgMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJCQVNFCTB4MDA5MjA4NjAJLyogVGljayB0aW1lciBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUklSUQkJMwkJLyogVGltZXIgSVJRIG51bQkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1STVMJCTEwCQkvKiAxMCBtc2VjIHBlciB0aWNrCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJDTlQJKENPTkZJR19TWVNfTklPU19UTVJNUyAqIChDT05GSUdfU1lTX0NMS19GUkVRLzEwMDApKQorI2RlZmluZQlDT05GSUdfU1lTX0haCQkoQ09ORklHX1NZU19DTEtfRlJFUS8oQ09ORklHX1NZU19OSU9TX1RNUkNOVCArIDEpKQogCiAKIC8qCkBAIC0xNTIsMTQgKzE1MiwxNCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1JU0MKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiBQcm92aWRlIGV4dGVuZGVkIGhlbHAqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT0+ICIJCS8qIENvbW1hbmQgcHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gYnVmIHNpemUJKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBNYXggY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IGFyZyBidWYgc2l6ZQkqLwotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgYnVmIHNpemUJKi8KLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJQ0ZHX1NEUkFNX0JBU0UJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UJLyogU3RhcnQgYWRkciBmb3IgdGVzdAkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCUNGR19JTklUX1NQIC0gMHgwMDAyMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIFByb3ZpZGUgZXh0ZW5kZWQgaGVscCovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT0+ICIJCS8qIENvbW1hbmQgcHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIGJ1ZiBzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIE1heCBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBhcmcgYnVmIHNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IGJ1ZiBzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkvKiBTdGFydCBhZGRyIGZvciB0ZXN0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCUNPTkZJR19TWVNfSU5JVF9TUCAtIDB4MDAwMjAwMDAKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9QQ0lQUEMyLmggYi9pbmNsdWRlL2NvbmZpZ3MvUENJUFBDMi5oCmluZGV4IDA0OGU4OTYuLjU5NTFkMDAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9QQ0lQUEMyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1BDSVBQQzIuaApAQCAtNDgsNyArNDgsNyBAQAogCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lIENPTkZJR19QUkVCT09UCQkiIgogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUKQEAgLTg5LDUxICs4OSw1MSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSNkZWZpbmUJQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAKIC8qIFByaW50IEJ1ZmZlciBTaXplCiAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCiAKLSNkZWZpbmUJQ0ZHX01BWEFSR1MJNjQJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJNjQJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkgICAgMHhGRkYwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfTUFYX1NJWkUgIDB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkgICAgMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX01BWF9TSVpFICAweDAwMTAwMDAwCiAvKiBNYXhpbXVtIGFtb3VudCBvZiBSQU0uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9SQU1fU0laRSAgICAweDIwMDAwMDAwICAvKiA1MTJNYgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFICAgIDB4MjAwMDAwMDAgIC8qIDUxMk1iCQkJKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkgICAgKDI1NiA8PCAxMCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JICAgICgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCSAgICAoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgICgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfU0RSQU1fQkFTRSAmJiBcCi0gICAgQ0ZHX01PTklUT1JfQkFTRSA8IENGR19TRFJBTV9CQVNFICsgQ0ZHX01BWF9SQU1fU0laRQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfU0RSQU1fQkFTRSAmJiBcCisgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBDT05GSUdfU1lTX01BWF9SQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jdW5kZWYgQ0ZHX1JBTUJPT1QKKyN1bmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJICAgIDB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECSAgICAweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQpAQCAtMTQxLDU0ICsxNDEsNTQgQEAKIAogLyogU2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhCiAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgMTI4CisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAxMjgKIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgMHg4MDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVCAgICBDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAgICAgMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAgICAgIDB4ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCiAKIC8qCiAgKiBUZW1wb3JhcnkgYnVmZmVyIGZvciBzZXJpYWwgZGF0YSB1bnRpbCB0aGUgcmVhbCBzZXJpYWwgZHJpdmVyCiAgKiBpcyBpbml0aWFsaXNlZCAobWVtdGVzdCB3aWxsIGRlc3Ryb3kgdGhpcyBidWZmZXIpCiAgKi8KLSNkZWZpbmUgQ0ZHX1NDT05TT0xFX0FERFIgICAgIENGR19JTklUX1JBTV9BRERSCi0jZGVmaW5lIENGR19TQ09OU09MRV9TSVpFICAgICAweDAwMDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ09OU09MRV9BRERSICAgICBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19TQ09OU09MRV9TSVpFICAgICAweDAwMDIwMDAKIAogLyogU0RSQU0gMCAtIDI1Nk1CCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQwTAkgICAgICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19EQkFUMFUJICAgICAgKENGR19TRFJBTV9CQVNFIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAkgICAgICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQkgICAgICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgXAogCQkJICAgICAgIEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogLyogU0RSQU0gMSAtIDI1Nk1CCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQxTAkgICAgICAoKENGR19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMCSAgICAgICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCkgfCBcCiAJCQkgICAgICAgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfREJBVDFVCSAgICAgICgoQ0ZHX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJICAgICAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwKSB8IFwKIAkJCSAgICAgICBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogSW5pdCBSQU0gaW4gdGhlIENQVSBEQ2FjaGUgKG5vIGJhY2tpbmcgbWVtb3J5KQogICovCi0jZGVmaW5lIENGR19EQkFUMkwJICAgICAgKENGR19JTklUX1JBTV9BRERSIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAkgICAgICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgXAogCQkJICAgICAgIEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0RCQVQyVQkgICAgICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCSAgICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBcCiAJCQkgICAgICAgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIEkvTyBhbmQgUENJIG1lbW9yeSBhdCAweGYwMDAwMDAwCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQzTAkgICAgICAoMHhmMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0RCQVQzVQkgICAgICAoMHhmMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAkgICAgICAoMHhmMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJICAgICAgKDB4ZjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDBMCSAgICAgIENGR19EQkFUMEwKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkgICAgICBDRkdfREJBVDBVCi0jZGVmaW5lIENGR19JQkFUMUwJICAgICAgQ0ZHX0RCQVQxTAotI2RlZmluZSBDRkdfSUJBVDFVCSAgICAgIENGR19EQkFUMVUKLSNkZWZpbmUgQ0ZHX0lCQVQyTAkgICAgICBDRkdfREJBVDJMCi0jZGVmaW5lIENGR19JQkFUMlUJICAgICAgQ0ZHX0RCQVQyVQotI2RlZmluZSBDRkdfSUJBVDNMCSAgICAgIENGR19EQkFUM0wKLSNkZWZpbmUgQ0ZHX0lCQVQzVQkgICAgICBDRkdfREJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCSAgICAgIENPTkZJR19TWVNfREJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCSAgICAgIENPTkZJR19TWVNfREJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCSAgICAgIENPTkZJR19TWVNfREJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCSAgICAgIENPTkZJR19TWVNfREJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCSAgICAgIENPTkZJR19TWVNfREJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCSAgICAgIENPTkZJR19TWVNfREJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCSAgICAgIENPTkZJR19TWVNfREJBVDNMCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCSAgICAgIENPTkZJR19TWVNfREJBVDNVCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTk2LDQ4ICsxOTYsNDggQEAKICAqIFlvdSBzaG91bGQga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgaWYgeW91IG1ha2UgY2hhbmdlcyBoZXJlLgogICogRm9yIHRoZSBkZXRhaWwgZGVzY3JpcHRpb24gcmVmZXIgdG8gdGhlIFBDSVBQQzIgdXNlcidzIG1hbnVhbC4KICAqLwotI2RlZmluZSBDRkdfSFoJCSAgICAgIDEwMDAKLSNkZWZpbmUgQ0ZHX0JVU19IWiAgICAgICAgICAgIDEwMDAwMDAwMCAvKiBidXMgc3BlZWQgLSAxMDAgbWh6ICAgICAgICAgICovCi0jZGVmaW5lIENGR19DUFVfQ0xLCSAgICAgIDMwMDAwMDAwMAotI2RlZmluZSBDRkdfQlVTX0NMSwkgICAgICAxMDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJICAgICAgMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JVU19IWiAgICAgICAgICAgIDEwMDAwMDAwMCAvKiBidXMgc3BlZWQgLSAxMDAgbWh6ICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVX0NMSwkgICAgICAzMDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfQ0xLCSAgICAgIDEwMDAwMDAwMAogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSAgICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSAgICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTYJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxNgkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgaW4gb25lIGJhbmsJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogLyoKICAqIE5vdGU6IGVudmlyb25tZW50IGlzIG5vdCBFTUJFRERFRCBpbiB0aGUgVS1Cb290IGNvZGUuCiAgKiBJdCdzIHN0b3JlZCBpbiBmbGFzaCBzZXBhcmF0ZWx5LgogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4NzAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NzAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwCS8qIFNpemUgb2YgdGhlIEVudmlyb25tZW50CQkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwIC8qIFNpemUgb2YgdGhlIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyoKICAqIEwyIGNhY2hlCiAgKi8KLSN1bmRlZiBDRkdfTDIKKyN1bmRlZiBDT05GSUdfU1lTX0wyCiAjZGVmaW5lIEwyX0lOSVQgICAoTDJDUl9MMlNJWl8yTSB8IEwyQ1JfTDJDTEtfMyB8IEwyQ1JfTDJSQU1fQlVSU1QgfCBcCiAJCSAgIEwyQ1JfTDJPSF81IHwgTDJDUl9MMkNUTCB8IEwyQ1JfTDJXVCkKICNkZWZpbmUgTDJfRU5BQkxFIChMMl9JTklUIHwgTDJDUl9MMkUpCkBAIC0yNTQsMTAgKzI1NCwxMCBAQAogICogRGlzay1Pbi1DaGlwIGNvbmZpZ3VyYXRpb24KICAqLwogCi0jZGVmaW5lIENGR19NQVhfRE9DX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgRE9DIGRldmljZXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCQkqLwogCi0jZGVmaW5lIENGR19ET0NfU1VQUE9SVF8yMDAwCi0jdW5kZWYgQ0ZHX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU1VQUE9SVF8yMDAwCisjdW5kZWYgQ09ORklHX1NZU19ET0NfU1VQUE9SVF9NSUxMRU5OSVVNCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgUlRDIG00OHQ1OQpAQCAtMjY5LDcgKzI2OSw3IEBACiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCQkvKiBNdWx0aSBldGhlcm5ldCBjYXJkcyBzdXBwb3J0ICovCiAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAgICAgICAgICAgICAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogI2RlZmluZSBDT05GSUdfVFVMSVAKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9QQ0lQUEM2LmggYi9pbmNsdWRlL2NvbmZpZ3MvUENJUFBDNi5oCmluZGV4IGFjYWFiN2YuLmE2ODNhOGYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9QQ0lQUEM2LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1BDSVBQQzYuaApAQCAtNDgsNyArNDgsNyBAQAogCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lIENPTkZJR19QUkVCT09UCQkiIgogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUKQEAgLTkxLDUxICs5MSw1MSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAKIC8qIFByaW50IEJ1ZmZlciBTaXplCiAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCiAKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJNjQJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJNjQJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkgICAgMHhGRkYwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfTUFYX1NJWkUgIDB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkgICAgMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX01BWF9TSVpFICAweDAwMTAwMDAwCiAvKiBNYXhpbXVtIGFtb3VudCBvZiBSQU0uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9SQU1fU0laRSAgICAweDIwMDAwMDAwCS8qIDUxMk1iCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgICAgMHgyMDAwMDAwMAkvKiA1MTJNYgkJCSovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MgICAweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JICAgICgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSAgICAoMTI4IDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkgICAgKDI1NiA8PCAxMCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSAgICAoMTI4IDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX1NEUkFNX0JBU0UgJiYgXAotICAgIENGR19NT05JVE9SX0JBU0UgPCBDRkdfU0RSQU1fQkFTRSArIENGR19NQVhfUkFNX1NJWkUKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiYgXAorICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19TRFJBTV9CQVNFICsgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmIENGR19SQU1CT09UCisjdW5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgIDB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECSAgICAweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCAgIDB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkgICAgMHgwMjAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEKQEAgLTE0Myw1NCArMTQzLDU0IEBACiAKIC8qIFNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YQogICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgIDEyOAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgMTI4CiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAgIDB4ODAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQgICAgQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgICAweDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwogCiAvKgogICogVGVtcG9yYXJ5IGJ1ZmZlciBmb3Igc2VyaWFsIGRhdGEgdW50aWwgdGhlIHJlYWwgc2VyaWFsIGRyaXZlcgogICogaXMgaW5pdGlhbGlzZWQgKG1lbXRlc3Qgd2lsbCBkZXN0cm95IHRoaXMgYnVmZmVyKQogICovCi0jZGVmaW5lIENGR19TQ09OU09MRV9BRERSICAgICBDRkdfSU5JVF9SQU1fQUREUgotI2RlZmluZSBDRkdfU0NPTlNPTEVfU0laRSAgICAgMHgwMDAyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0NPTlNPTEVfQUREUiAgICAgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfU0NPTlNPTEVfU0laRSAgICAgMHgwMDAyMDAwCiAKIC8qIFNEUkFNIDAgLSAyNTZNQgogICovCi0jZGVmaW5lIENGR19EQkFUMEwJICAgICAgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfREJBVDBVCSAgICAgIChDRkdfU0RSQU1fQkFTRSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJICAgICAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJICAgICAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IFwKIAkJCSAgICAgICBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIC8qIFNEUkFNIDEgLSAyNTZNQgogICovCi0jZGVmaW5lIENGR19EQkFUMUwJICAgICAgKChDRkdfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDApIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAkgICAgICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDApIHwgXAogCQkJICAgICAgIEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0RCQVQxVQkgICAgICAoKENGR19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVCSAgICAgICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCkgfCBcCiAJCQkgICAgICAgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIEluaXQgUkFNIGluIHRoZSBDUFUgRENhY2hlIChubyBiYWNraW5nIG1lbW9yeSkKICAqLwotI2RlZmluZSBDRkdfREJBVDJMCSAgICAgIChDRkdfSU5JVF9SQU1fQUREUiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJICAgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IFwKIAkJCSAgICAgICBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19EQkFUMlUJICAgICAgKENGR19JTklUX1JBTV9BRERSIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQkgICAgICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgXAogCQkJICAgICAgIEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBJL08gYW5kIFBDSSBtZW1vcnkgYXQgMHhmMDAwMDAwMAogICovCi0jZGVmaW5lIENGR19EQkFUM0wJICAgICAgKDB4ZjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19EQkFUM1UJICAgICAgKDB4ZjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJICAgICAgKDB4ZjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVCSAgICAgICgweGYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQwTAkgICAgICBDRkdfREJBVDBMCi0jZGVmaW5lIENGR19JQkFUMFUJICAgICAgQ0ZHX0RCQVQwVQotI2RlZmluZSBDRkdfSUJBVDFMCSAgICAgIENGR19EQkFUMUwKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkgICAgICBDRkdfREJBVDFVCi0jZGVmaW5lIENGR19JQkFUMkwJICAgICAgQ0ZHX0RCQVQyTAotI2RlZmluZSBDRkdfSUJBVDJVCSAgICAgIENGR19EQkFUMlUKLSNkZWZpbmUgQ0ZHX0lCQVQzTAkgICAgICBDRkdfREJBVDNMCi0jZGVmaW5lIENGR19JQkFUM1UJICAgICAgQ0ZHX0RCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkgICAgICBDT05GSUdfU1lTX0RCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkgICAgICBDT05GSUdfU1lTX0RCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkgICAgICBDT05GSUdfU1lTX0RCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkgICAgICBDT05GSUdfU1lTX0RCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkgICAgICBDT05GSUdfU1lTX0RCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkgICAgICBDT05GSUdfU1lTX0RCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkgICAgICBDT05GSUdfU1lTX0RCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkgICAgICBDT05GSUdfU1lTX0RCQVQzVQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE5OCw0OCArMTk4LDQ4IEBACiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqIEZvciB0aGUgZGV0YWlsIGRlc2NyaXB0aW9uIHJlZmVyIHRvIHRoZSBQQ0lQUEMyIHVzZXIncyBtYW51YWwuCiAgKi8KLSNkZWZpbmUgQ0ZHX0haCQkgICAgICAxMDAwCi0jZGVmaW5lIENGR19CVVNfSFoJICAgICAgMTAwMDAwMDAwIC8qIGJ1cyBzcGVlZCAtIDEwMCBtaHoJCSovCi0jZGVmaW5lIENGR19DUFVfQ0xLCSAgICAgIDMwMDAwMDAwMAotI2RlZmluZSBDRkdfQlVTX0NMSwkgICAgICAxMDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJICAgICAgMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JVU19IWgkgICAgICAxMDAwMDAwMDAgLyogYnVzIHNwZWVkIC0gMTAwIG1oegkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVfQ0xLCSAgICAgIDMwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JVU19DTEsJICAgICAgMTAwMDAwMDAwCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJICAgICAgKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJICAgICAgKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxNgkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgaW4gb25lIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTE2CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBpbiBvbmUgYmFuawkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAvKgogICogTm90ZTogZW52aXJvbm1lbnQgaXMgbm90IEVNQkVEREVEIGluIHRoZSBVLUJvb3QgY29kZS4KICAqIEl0J3Mgc3RvcmVkIGluIGZsYXNoIHNlcGFyYXRlbHkuCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg3MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg3MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAJLyogU2l6ZSBvZiB0aGUgRW52aXJvbm1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAgLyogU2l6ZSBvZiB0aGUgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKgogICogTDIgY2FjaGUKICAqLwotI3VuZGVmIENGR19MMgorI3VuZGVmIENPTkZJR19TWVNfTDIKICNkZWZpbmUgTDJfSU5JVAkgIChMMkNSX0wyU0laXzJNIHwgTDJDUl9MMkNMS18zIHwgTDJDUl9MMlJBTV9CVVJTVCB8IFwKIAkJICAgTDJDUl9MMk9IXzUgfCBMMkNSX0wyQ1RMIHwgTDJDUl9MMldUKQogI2RlZmluZSBMMl9FTkFCTEUgKEwyX0lOSVQgfCBMMkNSX0wyRSkKQEAgLTI1NiwxMCArMjU2LDEwIEBACiAgKiBEaXNrLU9uLUNoaXAgY29uZmlndXJhdGlvbgogICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9ET0NfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBET0MgZGV2aWNlcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgRE9DIGRldmljZXMJCSovCiAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKLSN1bmRlZiBDRkdfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TVVBQT1JUXzIwMDAKKyN1bmRlZiBDT05GSUdfU1lTX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBSVEMgbTQ4dDU5CkBAIC0yNzEsMTcgKzI3MSwxNyBAQAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCQkvKiBNdWx0aSBldGhlcm5ldCBjYXJkcyBzdXBwb3J0ICovCiAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAgICAgICAgICAgICAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogI2RlZmluZSBDT05GSUdfVFVMSVAKIAogCiAjZGVmaW5lIENPTkZJR19TQ1NJX1NZTTUzQzhYWAogI2RlZmluZSBDT05GSUdfU0NTSV9ERVZfSUQJMHgwMDBCCS8qIDUzYzg5NiAqLwotI2RlZmluZSBDRkdfU0NTSV9NQVhfTFVOCTgJLyogbnVtYmVyIG9mIHN1cHBvcnRlZCBMVU5zICovCi0jZGVmaW5lIENGR19TQ1NJX01BWF9TQ1NJX0lECTE1CS8qIG1heGltdW0gU0NTSSBJRCAoMC4uNikgKi8KLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX0RFVklDRQlDRkdfU0NTSV9NQVhfU0NTSV9JRCAqIENGR19TQ1NJX01BWF9MVU4gLyogbWF4aW11bSBUYXJnZXQgZGV2aWNlcyAqLwotI2RlZmluZSBDRkdfU0NTSV9TUElOX1VQX1RJTUUJMgotI2RlZmluZSBDRkdfU0NTSV9TQ0FOX0JVU19SRVZFUlNFIDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWF9MVU4JOAkvKiBudW1iZXIgb2Ygc3VwcG9ydGVkIExVTnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWF9TQ1NJX0lECTE1CS8qIG1heGltdW0gU0NTSSBJRCAoMC4uNikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0UJQ09ORklHX1NZU19TQ1NJX01BWF9TQ1NJX0lEICogQ09ORklHX1NZU19TQ1NJX01BWF9MVU4gLyogbWF4aW11bSBUYXJnZXQgZGV2aWNlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfU1BJTl9VUF9USU1FCTIKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX1NDQU5fQlVTX1JFVkVSU0UgMAogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgogI2RlZmluZSBDT05GSUdfTUFDX1BBUlRJVElPTgogI2RlZmluZSBDT05GSUdfSVNPX1BBUlRJVElPTgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1BJUDQwNS5oIGIvaW5jbHVkZS9jb25maWdzL1BJUDQwNS5oCmluZGV4IDZlOGQ3YWQuLjI5NjY5NzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9QSVA0MDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvUElQNDA1LmgKQEAgLTc5LDggKzc5LDggQEAKIAogI2RlZmluZSBDT05GSUdfTkFORF9MRUdBQ1kKIAotI2RlZmluZQkgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUJIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogSTJDIFN0dWZmOgogICogdGhlIFBJUDQwNSBpcyBlcXVpcGVkIHdpdGggYW4gQXRtZWwgMjRDMTI4LzI1NiBFRVBST00gYXQgYWRkcmVzcwpAQCAtOTAsMjAgKzkwLDIwIEBACiAgKiBUaGUgQXRtZWwgRUVQUk9NIHVzZXMgMTZCaXQgYWRkcmVzc2luZy4KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNTAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTUwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkyCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTMKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTIKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00gICAgMSAgICAgICAvKiB1c2UgRUVQUk9NIGZvciBlbnZpcm9ubWVudCB2YXJzICovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUICAgICAgICAgIDB4MDAwICAgLyogZW52aXJvbm1lbnQgc3RhcnRzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIEVFUFJPTSAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUgICAgICAgICAgICAweDgwMCAgIC8qIDIga0J5dGVzIG1heSBiZSB1c2VkIGZvciBlbnYgdmFycyAqLwogCi0jdW5kZWYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA2CS8qIFRoZSBBdG1lbCAyNEMxMjgvMjU2IGhhcwkqLworI3VuZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA2CS8qIFRoZSBBdG1lbCAyNEMxMjgvMjU2IGhhcwkqLwogCQkJCQkvKiA2NCBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QJNiBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTM0LDU0ICsxMzQsNTQgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIGRlZmluZXMgaWYgdGhlIGNvbnNvbGUgaXMgc3RvcmVkIGluIHRoZSBlbnZpcm9ubWVudAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCS8qIHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVyciBhcmUgaW4gZXZpcm9ubWVudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCS8qIHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVyciBhcmUgaW4gZXZpcm9ubWVudCAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogZGVmaW5lcyBpZiBhbiBvdmVyd3JpdGVfY29uc29sZSBmdW5jdGlvbiBleGlzdHMKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogZGVmaW5lcyBpZiB0aGUgb3ZlcndyaXRlX2NvbnNvbGUgc2hvdWxkIGJlIHN0b3JlZCBpbiB0aGUKICAqIGVudmlyb25tZW50CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jdW5kZWYgQ0ZHX0NPTlNPTEVfRU5WX09WRVJXUklURQorI3VuZGVmIENPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogbG9hZHMgY29uZmlnCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogMSAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDEgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVEICAgICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQgICAgICAgNjkxMjAwCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAgICAgXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDQwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHg0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJIHN0dWZmCkBAIC0xOTUsNDAgKzE5NSw0MCBAQAogI2RlZmluZSBDT05GSUdfUENJX0hPU1QgUENJX0hPU1RfRk9SQ0UJLyogY29uZmlndXJlIGFzIHBjaS1ob3N0CSovCiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJLyogcGNpIHBsdWctYW5kLXBsYXkJCSovCiAJCQkJCS8qIHJlc291cmNlIGNvbmZpZ3VyYXRpb24JKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgwMDAwCS8qIFBDSSBWZW5kb3IgSUQ6IHRvLWRvISEhCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDAwMAkvKiBQQ0kgRGV2aWNlIElEOiB0by1kbyEhIQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUwkweDgwMDAwMDAxCS8qIDJHQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MDAwMAkvKiBQQ0kgVmVuZG9yIElEOiB0by1kbyEhIQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwMDAwCS8qIFBDSSBEZXZpY2UgSUQ6IHRvLWRvISEhCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMJMHg4MDAwMDAwMQkvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkY4MDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDUxMiAqIDEwMjQpCS8qIFJlc2VydmUgNTEyIGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTAyNCAqIDEwMjQpCS8qIFJlc2VydmUgMTAyNCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkY4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDUxMiAqIDEwMjQpCS8qIFJlc2VydmUgNTEyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEwMjQgKiAxMDI0KQkvKiBSZXNlcnZlIDEwMjQga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMjQ4LDE0ICsyNDgsMTQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gT24gQ2hpcCBTUkFNKQogICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkxCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSCS8qIGluc2lkZSBvZiBPbiBDaGlwIFNSQU0gICAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRQkvKiBFbmQgb2YgT24gQ2hpcCBTUkFNCSAgICAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkxCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkvKiBpbnNpZGUgb2YgT24gQ2hpcCBTUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkvKiBFbmQgb2YgT24gQ2hpcCBTUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCkBAIC0yNjksNyArMjY5LDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogRXh0ZXJuYWwgcGVyaXBoZXJhbCBiYXNlIGFkZHJlc3MKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgMHhFODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgMHhFODAwMDAwMAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIExhc3QgU3RhZ2UgSW5pdApAQCAtMjg5LDE1ICsyODksMTUgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIElERS9BVEEgc3R1ZmYKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkyICAgLyogbWF4LiAyIElERSBidXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjIpIC8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkyICAgLyogbWF4LiAyIElERSBidXNzZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCShDT05GSUdfU1lTX0lERV9NQVhCVVMqMikgLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cyAqLwogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19JU0FfSU9fQkFTRV9BRERSRVNTIC8qIGJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDFGMAkvKiBpZGUwIG9mZnN0ZSAqLwotI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUCTB4MDE3MAkvKiBpZGUxIG9mZnNldCAqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTAJLyogZGF0YSByZWcgb2Zmc2V0CSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkwCS8qIHJlZyBvZmZzZXQgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MjAwCS8qIGFsdGVybmF0ZSByZWdpc3RlciBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyAvKiBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMUYwCS8qIGlkZTAgb2Zmc3RlICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VUCTB4MDE3MAkvKiBpZGUxIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkwCS8qIGRhdGEgcmVnIG9mZnNldAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTAJLyogcmVnIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MjAwCS8qIGFsdGVybmF0ZSByZWdpc3RlciBvZmZzZXQgKi8KIAogI3VuZGVmCUNPTkZJR19JREVfOHh4X0RJUkVDVAkJLyogbm8gcGNtY2lhIGludGVyZmFjZSByZXF1aXJlZCAqLwogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkCSovCkBAIC0zMTQsMTggKzMxNCwxOCBAQAogICogU0NTSSBzdXBwb3J0IChleHBlcmltZW50YWwpIG9ubHkgU1lNNTNDOHh4IHN1cHBvcnRlZAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICNkZWZpbmUgQ09ORklHX1NDU0lfU1lNNTNDOFhYCi0jZGVmaW5lIENGR19TQ1NJX01BWF9MVU4JOAkvKiBudW1iZXIgb2Ygc3VwcG9ydGVkIExVTnMgKi8KLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX1NDU0lfSUQJNwkvKiBtYXhpbXVtIFNDU0kgSUQgKDAuLjYpICovCi0jZGVmaW5lIENGR19TQ1NJX01BWF9ERVZJQ0UJQ0ZHX1NDU0lfTUFYX1NDU0lfSUQgKiBDRkdfU0NTSV9NQVhfTFVOIC8qIG1heGltdW0gVGFyZ2V0IGRldmljZXMgKi8KLSNkZWZpbmUgQ0ZHX1NDU0lfU1BJTl9VUF9USU1FCTIKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWF9MVU4JOAkvKiBudW1iZXIgb2Ygc3VwcG9ydGVkIExVTnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWF9TQ1NJX0lECTcJLyogbWF4aW11bSBTQ1NJIElEICgwLi42KSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRQlDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQgKiBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTiAvKiBtYXhpbXVtIFRhcmdldCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9TUElOX1VQX1RJTUUJMgogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBEaXNrLU9uLUNoaXAgY29uZmlndXJhdGlvbgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgQ0ZHX01BWF9ET0NfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBET0MgZGV2aWNlcwkJKi8KLSNkZWZpbmUgQ0ZHX0RPQ19TSE9SVF9USU1FT1VUCi0jZGVmaW5lIENGR19ET0NfU1VQUE9SVF8yMDAwCi0jZGVmaW5lIENGR19ET0NfU1VQUE9SVF9NSUxMRU5OSVVNCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TSE9SVF9USU1FT1VUCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogRElTSyBQYXJ0aXRpb24gc3VwcG9ydApAQCAtMzU5LDcgKzM1OSw3IEBACiAjZGVmaW5lIENPTkZJR19VU0JfU1RPUkFHRQogCiAvKiBFbmFibGUgbmVlZGVkIGhlbHBlciBmdW5jdGlvbnMgKi8KLSNkZWZpbmUgQ0ZHX0RFVklDRV9ERVJFR0lTVEVSCQkvKiBuZWVkcyBkZXZpY2VfZGVyZWdpc3RlciAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9ERVJFR0lTVEVSCQkvKiBuZWVkcyBkZXZpY2VfZGVyZWdpc3RlciAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBEZWJ1ZyBzdXBwb3J0CmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUEsxQzIwLmggYi9pbmNsdWRlL2NvbmZpZ3MvUEsxQzIwLmgKaW5kZXggNWQyYmMyZi4uNWIxZmNmZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1BLMUMyMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9QSzFDMjAuaApAQCAtMzAsMjkgKzMwLDI5IEBACiAjZGVmaW5lIENPTkZJR19QSzFDMjAJCTEJCS8qIFBLMUMyMCBib2FyZAkJKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQk1MDAwMDAwMAkvKiA1MCBNSHogY29yZSBjbGsJKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUgkJMHgwMDAwMDAwMAkvKiBIYXJkLXJlc2V0IGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VYQ0VQVElPTl9BRERSCTB4MDEwMDAwMjAJLyogRXhjZXB0aW9uIGVudHJ5IHBvaW50Ki8KLSNkZWZpbmUgQ0ZHX05JT1NfU1lTSURfQkFTRQkweDAyMTIwOGI4CS8qIFN5c3RlbSBpZCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUgkJMHgwMDAwMDAwMAkvKiBIYXJkLXJlc2V0IGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWENFUFRJT05fQUREUgkweDAxMDAwMDIwCS8qIEV4Y2VwdGlvbiBlbnRyeSBwb2ludCovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19TWVNJRF9CQVNFCTB4MDIxMjA4YjgJLyogU3lzdGVtIGlkIGFkZHJlc3MJKi8KICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRiAxCS8qIGVuYWJsZSBlYXJseSBib2FyZC1zcGVjLiBpbml0Ki8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENBQ0hFIC0tIHRoZSBmb2xsb3dpbmcgd2lsbCBzdXBwb3J0IElJL3MgYW5kIElJL2YuIFRoZSBJSS9zIGRvZXMgbm90CiAgKiBoYXZlIGRjYWNoZSwgc28gdGhlIGNhY2hlIGluc3RydWN0aW9ucyB3aWxsIGJlaGF2ZSBhcyBOT1BzLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0lDQUNIRV9TSVpFCQk0MDk2CQkvKiA0IEtCeXRlIHRvdGFsCSovCi0jZGVmaW5lIENGR19JQ0FDSEVMSU5FX1NJWkUJMzIJCS8qIDMyIGJ5dGVzL2xpbmUJKi8KLSNkZWZpbmUgQ0ZHX0RDQUNIRV9TSVpFCQkyMDQ4CQkvKiAyIEtCeXRlIChJSS9mKQkqLwotI2RlZmluZSBDRkdfRENBQ0hFTElORV9TSVpFCTQJCS8qIDQgYnl0ZXMvbGluZSAoSUkvZikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfU0laRQkJNDA5NgkJLyogNCBLQnl0ZSB0b3RhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0lDQUNIRUxJTkVfU0laRQkzMgkJLyogMzIgYnl0ZXMvbGluZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9TSVpFCQkyMDQ4CQkvKiAyIEtCeXRlIChJSS9mKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRUxJTkVfU0laRQk0CQkvKiA0IGJ5dGVzL2xpbmUgKElJL2YpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNRU1PUlkgQkFTRSBBRERSRVNTRVMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAwMDAwMDAwCS8qIEZMQVNIIGJhc2UgYWRkcgkqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAkvKiA4IE1CeXRlCQkqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMTAwMDAwMAkvKiBTRFJBTSBiYXNlIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTB4MDEwMDAwMDAJLyogMTYgTUJ5dGUJCSovCi0jZGVmaW5lIENGR19TUkFNX0JBU0UJCTB4MDIwMDAwMDAJLyogU1JBTSBiYXNlIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX1NSQU1fU0laRQkJMHgwMDEwMDAwMAkvKiAxIE1CIChvbmx5IDFNIG1hcHBlZCkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAJLyogRkxBU0ggYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAkvKiA4IE1CeXRlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDEwMDAwMDAJLyogU0RSQU0gYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMHgwMTAwMDAwMAkvKiAxNiBNQnl0ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX0JBU0UJCTB4MDIwMDAwMDAJLyogU1JBTSBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX1NJWkUJCTB4MDAxMDAwMDAJLyogMSBNQiAob25seSAxTSBtYXBwZWQpKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1FTU9SWSBPUkdBTklaQVRJT04KQEAgLTYxLDI3ICs2MSwyNyBAQAogICoJLUdsb2JhbCBkYXRhIGlzIHBsYWNlZCBiZWxvdyB0aGUgaGVhcC4KICAqCS1UaGUgc3RhY2sgaXMgcGxhY2VkIGJlbG93IGdsb2JhbCBkYXRhICgmZ3Jvd3MgZG93bikuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDEyOGsJCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogR2xvYmFsIGRhdGEgc2l6ZSByc3ZkKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMTI4awkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogR2xvYmFsIGRhdGEgc2l6ZSByc3ZkKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19CQVNFCQkoQ0ZHX01PTklUT1JfQkFTRSAtIENGR19NQUxMT0NfTEVOKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfTUFMTE9DX0JBU0UgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1AJCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfTUFMTE9DX0JBU0UgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUAkJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIChBTTI5TFYwNjVEKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogTWF4ICMgc2VjdHMgcGVyIGJhbmsgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAJCS8qIFdyaXRlIHRpbWVvdXQgKG1zZWMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgkvKiBmbGFzaCB3b3JkIHNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIE1heCAjIHNlY3RzIHBlciBiYW5rICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIE1heCAjIG9mIGZsYXNoIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwCQkvKiBXcml0ZSB0aW1lb3V0IChtc2VjKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCS8qIGZsYXNoIHdvcmQgc2l6ZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogRU5WSVJPTk1FTlQgLS0gUHV0IGVudmlyb25tZW50IGluIHNlY3RvciBDRkdfTU9OSVRPUl9MRU4gYWJvdmUKLSAqIENGR19SRVNFVF9BRERSLCBzaW5jZSB3ZSBhc3N1bWUgdGhlIG1vbml0b3IgaXMgc3RvcmVkIGF0IHRoZQorICogRU5WSVJPTk1FTlQgLS0gUHV0IGVudmlyb25tZW50IGluIHNlY3RvciBDT05GSUdfU1lTX01PTklUT1JfTEVOIGFib3ZlCisgKiBDT05GSUdfU1lTX1JFU0VUX0FERFIsIHNpbmNlIHdlIGFzc3VtZSB0aGUgbW9uaXRvciBpcyBzdG9yZWQgYXQgdGhlCiAgKiByZXNldCBhZGRyZXNzLCBubz8gVGhpcyB3aWxsIGtlZXAgdGhlIGVudmlyb25tZW50IGluIHVzZXIgcmVnaW9uCiAgKiBvZiBmbGFzaC4gTk9URTogdGhlIG1vbml0b3IgbGVuZ3RoIG11c3QgYmUgbXVsdGlwbGUgb2Ygc2VjdG9yIHNpemUKICAqICh3aGljaCBpcyBjb21tb24gcHJhY3RpY2UpLgpAQCAtODksMzAgKzg5LDMwIEBACiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQkJLyogRW52aXJvbm1lbnQgaW4gZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoNjQgKiAxMDI0KQkvKiA2NCBLQnl0ZSAoMSBzZWN0b3IpCSovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCQkJLyogU2VyaWFsIGNoYW5nZSBPawkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19SRVNFVF9BRERSICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfUkVTRVRfQUREUiArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDT05TT0xFCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmIGRlZmluZWQoQ09ORklHX0NPTlNPTEVfSlRBRykKLSNkZWZpbmUgQ0ZHX05JT1NfQ09OU09MRQkweDAyMTIwOGIwCS8qIEpUQUcgVUFSVCBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NPTlNPTEUJMHgwMjEyMDhiMAkvKiBKVEFHIFVBUlQgYmFzZSBhZGRyCSovCiAjZWxzZQotI2RlZmluZSBDRkdfTklPU19DT05TT0xFCTB4MDIxMjA4NDAJLyogVUFSVCBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NPTlNPTEUJMHgwMjEyMDg0MAkvKiBVQVJUIGJhc2UgYWRkcgkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX05JT1NfRklYRURCQVVECTEJCS8qIEJhdWRyYXRlIGlzIGZpeGVkCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19GSVhFREJBVUQJMQkJLyogQmF1ZHJhdGUgaXMgZml4ZWQJKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJCS8qIEluaXRpYWwgYmF1ZHJhdGUJKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsxMTUyMDB9CS8qIEl0J3MgZml4ZWQgOy0pCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezExNTIwMH0JLyogSXQncyBmaXhlZCA7LSkJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJCS8qIFN1cHByZXNzIGNvbnNvbGUgaW5mbyovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJCS8qIFN1cHByZXNzIGNvbnNvbGUgaW5mbyovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiBFUENTIERldmljZSAtLSB3bmUgQ0ZHX05JT1NfRVBDU0JBU0UgaXMgZGVmaW5lZCBjb2RlL2NvbW1hbmRzIGZvcgorICogRVBDUyBEZXZpY2UgLS0gd25lIENPTkZJR19TWVNfTklPU19FUENTQkFTRSBpcyBkZWZpbmVkIGNvZGUvY29tbWFuZHMgZm9yCiAgKiBlcGNzIGRldmljZSBhY2Nlc3MgaXMgZW5hYmxlZC4gVGhlIGJhc2UgYWRkcmVzcyBpcyB0aGUgZXBjcwogICogX3JlZ2lzdGVyXyBiYXNlIGFkZHJlc3MsIE5PVCBUSEUgQUREUkVTUyBPRiBUSEUgTUVNT1JZIEJMT0NLLgogICogVGhlIHJlZ2lzdGVyIGJhc2UgaXMgY3VycmVudGx5IGF0IG9mZnNldCAweDYwMCBmcm9tIHRoZSBtZW1vcnkgYmFzZS4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19OSU9TX0VQQ1NCQVNFCTB4MDIxMDAyMDAJLyogRVBDUyByZWdpc3RlciBiYXNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19FUENTQkFTRQkweDAyMTAwMjAwCS8qIEVQQ1MgcmVnaXN0ZXIgYmFzZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogREVCVUcKQEAgLTEyNiwyMyArMTI2LDIzIEBACiAgKiByZWdpc3RlcnMsIHdlIGNhbiBzbG93IGl0IGRvd24gdG8gMTAgbXNlYyB1c2luZyBUTVJDTlQuIElmIHRoZSBkZWZhdWx0CiAgKiBwZXJpb2QgaXMgYWNjZXB0YWJsZSwgVE1SQ05UIGNhbiBiZSBsZWZ0IHVuZGVmaW5lZC4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19OSU9TX1RNUkJBU0UJMHgwMjEyMDgyMAkvKiBUaWNrIHRpbWVyIGJhc2UgYWRkciAqLwotI2RlZmluZSBDRkdfTklPU19UTVJJUlEJCTMJCS8qIFRpbWVyIElSUSBudW0JKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1STVMJCTEwCQkvKiAxMCBtc2VjIHBlciB0aWNrCSovCi0jZGVmaW5lIENGR19OSU9TX1RNUkNOVCAoQ0ZHX05JT1NfVE1STVMgKiAoQ09ORklHX1NZU19DTEtfRlJFUS8xMDAwKSkKLSNkZWZpbmUgQ0ZHX0haCQkoQ09ORklHX1NZU19DTEtfRlJFUS8oQ0ZHX05JT1NfVE1SQ05UICsgMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJCQVNFCTB4MDIxMjA4MjAJLyogVGljayB0aW1lciBiYXNlIGFkZHIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUklSUQkJMwkJLyogVGltZXIgSVJRIG51bQkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1STVMJCTEwCQkvKiAxMCBtc2VjIHBlciB0aWNrCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJDTlQgKENPTkZJR19TWVNfTklPU19UTVJNUyAqIChDT05GSUdfU1lTX0NMS19GUkVRLzEwMDApKQorI2RlZmluZSBDT05GSUdfU1lTX0haCQkoQ09ORklHX1NZU19DTEtfRlJFUS8oQ09ORklHX1NZU19OSU9TX1RNUkNOVCArIDEpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU1RBVFVTIExFRCAtLSBQcm92aWRlcyBhIHNpbXBsZSBibGlua2luZyBsZWQuIEZvciBOaW9zMiBlYWNoIGJvYXJkCiAgKiBtdXN0IGltcGxlbWVudCBpdHMgb3duIGxlZCByb3V0aW5lcyAtLSBsZWRzIGFyZSwgYWZ0ZXIgYWxsLAogICogYm9hcmQtc3BlY2lmaWMsIG5vPwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0xFRFBJT19BRERSCQkweDAyMTIwODcwCS8qIExFRCBQSU8gYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfTEVEUElPX0FERFIJCTB4MDIxMjA4NzAJLyogTEVEIFBJTyBiYXNlIGFkZHIJKi8KICNkZWZpbmUgQ09ORklHX1NUQVRVU19MRUQJCQkvKiBFbmFibGUgc3RhdHVzIGRyaXZlciAqLwogCiAjZGVmaW5lIFNUQVRVU19MRURfQklUCQkxCQkvKiBCaXQtMCBvbiBQSU8JCSovCiAjZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJMQkJLyogQmxpbmtpbmcJCSovCi0jZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECSg1MDAvQ0ZHX05JT1NfVE1STVMpIC8qIEV2ZXJ5IDUwMCBtc2VjCSovCisjZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECSg1MDAvQ09ORklHX1NZU19OSU9TX1RNUk1TKSAvKiBFdmVyeSA1MDAgbXNlYwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRVRIRVJORVQgLS0gVGhlIGhlYWRlciBmaWxlIGZvciB0aGUgU01DOTExMTEgZHJpdmVyIGh1cnRzIG15IGV5ZXMgLi4uCkBAIC0xOTYsMjEgKzE5NiwyMSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfSURFKQogI2RlZmluZSBDT05GSUdfSURFX1BSRUlOSVQJCQkvKiBJbXBsZW1lbnQgaWRfcHJlaW5pdAkqLwotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkJLyogMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCQkvKiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkJLyogMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkJLyogMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4MDA5MDA4MDAJLyogQVRBIGJhc2UgYWRkcgkqLwotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAkJLyogSURFMCBvZmZzZXQJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDQwCQkvKiBEYXRhIElPIG9mZnNldAkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDQwCQkvKiBSZWdpc3RlciBvZmZzZXQJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAkJLyogQWx0ZXJuYXRlIHJlZyBvZmZzZXQJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUgICAgICAgICAgNAkJLyogV2lkdGggYmV0d2l4IGFkZHJzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweDAwOTAwODAwCS8qIEFUQSBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCQkvKiBJREUwIG9mZnNldAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDQwCQkvKiBEYXRhIElPIG9mZnNldAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MDA0MAkJLyogUmVnaXN0ZXIgb2Zmc2V0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCQkvKiBBbHRlcm5hdGUgcmVnIG9mZnNldAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUgICAgICAgICAgNAkJLyogV2lkdGggYmV0d2l4IGFkZHJzCSovCiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCiAKIC8qIEJvYXJkLXNwZWNpZmljIGNmIHJlZ3MgKi8KLSNkZWZpbmUgQ0ZHX0NGX1BSRVNFTlQJCTB4MDA5MDA4ODAJLyogQ0YgUHJlc2VudCBQSU8gYmFzZQkqLwotI2RlZmluZSBDRkdfQ0ZfUE9XRVIJCTB4MDA5MDA4OTAJLyogQ0YgUG93ZXIgRkVUIFBJTyBiYXNlKi8KLSNkZWZpbmUgQ0ZHX0NGX0FUQVNFTAkJMHgwMDkwMDhhMAkvKiBDRiBBVEFTRUwgUElPIGJhc2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DRl9QUkVTRU5UCQkweDAwOTAwODgwCS8qIENGIFByZXNlbnQgUElPIGJhc2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DRl9QT1dFUgkJMHgwMDkwMDg5MAkvKiBDRiBQb3dlciBGRVQgUElPIGJhc2UqLworI2RlZmluZSBDT05GSUdfU1lTX0NGX0FUQVNFTAkJMHgwMDkwMDhhMAkvKiBDRiBBVEFTRUwgUElPIGJhc2UJKi8KIAogI2VuZGlmCiAKQEAgLTIxOCwyMyArMjE4LDIzIEBACiAgKiBKRkZTMgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfSkZGUzIpCi0jZGVmaW5lIENGR19KRkZTX0NVU1RPTV9QQVJUCQkJLyogYm9hcmQgZGVmaW5lZCBwYXJ0CSovCisjZGVmaW5lIENPTkZJR19TWVNfSkZGU19DVVNUT01fUEFSVAkJCS8qIGJvYXJkIGRlZmluZWQgcGFydAkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNSVNDCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogUHJvdmlkZSBleHRlbmRlZCBoZWxwKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj09PiAiCQkvKiBDb21tYW5kIHByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIGJ1ZiBzaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogTWF4IGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBhcmcgYnVmIHNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IGJ1ZiBzaXplICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCUNGR19TRFJBTV9CQVNFCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCUNGR19TRFJBTV9CQVNFCS8qIFN0YXJ0IGFkZHIgZm9yIHRlc3QJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQlDRkdfSU5JVF9TUCAtIDB4MDAwMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiBQcm92aWRlIGV4dGVuZGVkIGhlbHAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj09PiAiCQkvKiBDb21tYW5kIHByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBidWYgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBNYXggY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgYXJnIGJ1ZiBzaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBidWYgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJQ09ORklHX1NZU19TRFJBTV9CQVNFCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAlDT05GSUdfU1lTX1NEUkFNX0JBU0UJLyogU3RhcnQgYWRkciBmb3IgdGVzdAkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQlDT05GSUdfU1lTX0lOSVRfU1AgLSAweDAwMDIwMDAwCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9QTFU0MDUuaCBiL2luY2x1ZGUvY29uZmlncy9QTFU0MDUuaAppbmRleCAzMzdjYmZiLi42NzVkYmU2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUExVNDA1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1BMVTQwNS5oCkBAIC00OSw3ICs0OSw3IEBACiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QgICAgICAgICAgICAgICAgICAvKiBlbmFibGUgcHJlYm9vdCB2YXJpYWJsZSAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICN1bmRlZiAgQ09ORklHX0hBU19FVEgxCkBAIC0xMDMsNTMgKzEwMyw1MyBAQAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCiAjZGVmaW5lIENPTkZJR19SVENfTUMxNDY4MTgJCS8qIERTMTY4NSBpcyBNQzE0NjgxOCBjb21wYXRpYmxlKi8KLSNkZWZpbmUgQ0ZHX1JUQ19SRUdfQkFTRV9BRERSCSAweEYwMDAwNTAwIC8qIFJUQyBCYXNlIEFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlRDX1JFR19CQVNFX0FERFIJIDB4RjAwMDA1MDAgLyogUlRDIEJhc2UgQWRkcmVzcwkJKi8KIAogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzAJMQkvKiBpbml0IG9uYm9hcmQgU0RSQU0gYmFuayAwCSovCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCTEgICAgICAgLyogYWRkIGF1dG9jb21wbGV0aW9uIHN1cHBvcnQgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogI3VuZGVmCUNPTkZJR19VQVJUMV9DT05TT0xFCQkvKiBkZWZpbmUgZm9yIHVhcnQxIGFzIGNvbnNvbGUJKi8KIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCkBAIC0xNjYsMjMgKzE2NiwyMyBAQAogCiAjZGVmaW5lIENPTkZJR19WRVJTSU9OX1ZBUklBQkxFIDEJLyogaW5jbHVkZSB2ZXJzaW9uIGVudiB2YXJpYWJsZSAqLwogCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTE2CS8qIHVzZSAxNiByeCBidWZmZXIgb24gNDA1IGVtYWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTE2CS8qIHVzZSAxNiByeCBidWZmZXIgb24gNDA1IGVtYWMgKi8KIAogLyoKICAqIE5BTkQtRkxBU0ggc3R1ZmYKICAqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFX0xJU1QJe0NGR19OQU5EX0JBU0V9CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFX0xJU1QJe0NPTkZJR19TWVNfTkFORF9CQVNFfQogI2RlZmluZSBOQU5EX01BWF9DSElQUyAgICAgICAgICAxCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMSAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEgICAgICAgICAvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLwogI2RlZmluZSBOQU5EX0JJR19ERUxBWV9VUwkyNQogCi0jZGVmaW5lIENGR19OQU5EX0NFICAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDEpICAgLyogb3VyIENFIGlzIEdQSU8xICAqLwotI2RlZmluZSBDRkdfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQ0xFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMikgICAvKiBvdXIgQ0xFIGlzIEdQSU8yICovCi0jZGVmaW5lIENGR19OQU5EX0FMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDMpICAgLyogb3VyIEFMRSBpcyBHUElPMyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0UgICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMSkgICAvKiBvdXIgQ0UgaXMgR1BJTzEgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDIpICAgLyogb3VyIENMRSBpcyBHUElPMiAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUxFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMykgICAvKiBvdXIgQUxFIGlzIEdQSU8zICovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfU0tJUF9CQURfRE9UX0kgMSAgICAgICAvKiAiLmkiIHJlYWQgc2tpcHMgYmFkIGJsb2NrcyAgICovCi0jZGVmaW5lIENGR19OQU5EX1FVSUVUICAgICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NLSVBfQkFEX0RPVF9JIDEgICAgICAgLyogIi5pIiByZWFkIHNraXBzIGJhZCBibG9ja3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUVVJRVQgICAgICAgICAgMQogCiAvKgogICogUENJIHN0dWZmCkBAIC0yMDAsMTUgKzIwMCwxNSBAQAogCiAjZGVmaW5lIENPTkZJR19QQ0lfQ09ORklHX0hPU1RfQlJJREdFIDEgLyogZG9uJ3Qgc2tpcCBob3N0IGJyaWRnZSBjb25maWcqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRSAgLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmggICAgICAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDUgIC8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1ICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9DTEFTU0NPREUgICAgICAgMHgwYjIwICAvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBICAweDAwMDAwMDAwICAgICAgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUyAgMHhmODAwMDAwMSAgICAgIC8qIDEyOE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQSAgMHhmZmMwMDAwMCAgICAgIC8qIHBvaW50IHRvIGZsYXNoICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMgIDB4ZmZjMDAwMDEgICAgICAvKiA0TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA4MDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFICAvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDUgIC8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1ICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0xBU1NDT0RFICAgICAgIDB4MGIyMCAgLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEgIDB4MDAwMDAwMDAgICAgICAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUyAgMHhmODAwMDAwMSAgICAgIC8qIDEyOE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBICAweGZmYzAwMDAwICAgICAgLyogcG9pbnQgdG8gZmxhc2ggICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMgIDB4ZmZjMDAwMDEgICAgICAvKiA0TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwODAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyoKICAqIElERS9BVEEgc3R1ZmYKQEAgLTIxNyw1OCArMjE3LDU4IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBubyBsZWQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KICNkZWZpbmUgQ09ORklHX0lERV9SRVNFVAkxCS8qIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJCS8qIG1heC4gMSBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkJLyogbWF4LiAxIElERSBidXNzZXMJKi8KIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjEpCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkoQ09ORklHX1NZU19JREVfTUFYQlVTKjEpCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzICovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2VzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHhGRkMwMDAwMCAvKiBGTEFTSCBiYW5rICMwICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkciBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkciBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHIgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyIGZvciBmbGFzaCBjb25maWcgY3ljbGVzICovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yICovCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZBMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgzODQgKiAxMDI0KQkvKiBSZXNlcnZlIDM4NGtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMzg0ICogMTAyNCkJLyogUmVzZXJ2ZSAzODRrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkZBMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDM4NCAqIDEwMjQpCS8qIFJlc2VydmUgMzg0a0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMzg0ICogMTAyNCkJLyogUmVzZXJ2ZSAzODRrQiBmb3IgbWFsbG9jKCkgKi8KIAogLyoKICAqIEVudmlyb25tZW50IFZhcmlhYmxlIHNldHVwCkBAIC0yODEsMjAgKzI4MSwyMCBAQAogICogSTJDIEVFUFJPTSAoMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gMjRXQzE2ICovCi0jZGVmaW5lIENGR19FRVBST01fV1JFTiAgICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gMjRXQzE2ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1dSRU4gICAgICAgICAxCiAKIC8qIDI0V0MxNiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIiAgICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgMjRXQzE2IGhhcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIDI0V0MxNiBoYXMgICAqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyAqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcyAgICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKgogICogRXh0ZXJuYWwgQnVzIENvbnRyb2xsZXIgKEVCQykgU2V0dXAKQEAgLTMwNCw2OSArMzA0LDY5IEBACiAjZGVmaW5lIERVQVJUMV9CQQkweEYwMDAwNDA4CSAgICAvKiBEVUFSVCBCYXNlIEFkZHJlc3MgICAgICAgKi8KICNkZWZpbmUgUlRDX0JBCQkweEYwMDAwNTAwCSAgICAvKiBSVEMgQmFzZSBBZGRyZXNzICAgICAgICAgKi8KICNkZWZpbmUgVkdBX0JBCQkweEYxMDAwMDAwCSAgICAvKiBFcHNvbiBWR0EgQmFzZSBBZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkweEY0MDAwMDAwCSAgICAvKiBOQU5EIEZMQVNIIEJhc2UgQWRkcmVzcyAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJMHhGNDAwMDAwMAkgICAgLyogTkFORCBGTEFTSCBCYXNlIEFkZHJlc3MgICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCwgTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbiAqLwogLyogVFdUPTE2LENTTj0xLE9FTj0xLFdCTj0xLFdCRj0xLFRIPTQsU09SPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAogLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJMHhGRkM1QTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMAogCiAvKiBNZW1vcnkgQmFuayAxIChGbGFzaCBCYW5rIDEsIE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uICovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKIC8qIEJBUz0weEY0MCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGNDAxODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGNDAxODAwMAogCiAvKiBNZW1vcnkgQmFuayAyICg4IEJpdCBQZXJpcGhlcmFsOiBDQU4sIFVBUlQsIFJUQykgaW5pdGlhbGl6YXRpb24gKi8KIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAxMDA1M0MwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAxMDA1M0MwCiAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICovCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAKIAogLyogTWVtb3J5IEJhbmsgMyAoMTYgQml0IFBlcmlwaGVyYWw6IEZQR0EgaW50ZXJuYWwsIGRpZy4gSU8pIGluaXRpYWxpemF0aW9uICovCiAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMTAwNTNDMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkJMHgwMTAwNTNDMAogLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJMHhGMDExQTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJMHhGMDExQTAwMAogCiAvKgogICogRlBHQSBzdHVmZgogICovCi0jZGVmaW5lIENGR19GUEdBX0JBU0VfQUREUiAweEYwMTAwMTAwCSAgICAvKiBGUEdBIGludGVybmFsIEJhc2UgQWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSIDB4RjAxMDAxMDAJICAgIC8qIEZQR0EgaW50ZXJuYWwgQmFzZSBBZGRyZXNzICovCiAKIC8qIEZQR0EgaW50ZXJuYWwgcmVncyAqLwotI2RlZmluZSBDRkdfRlBHQV9DVFJMCQkweDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ1RSTAkJMHgwMDAKIAogLyogRlBHQSBDb250cm9sIFJlZyAqLwotI2RlZmluZSBDRkdfRlBHQV9DVFJMX0NGX1JFU0VUCTB4MDAwMQotI2RlZmluZSBDRkdfRlBHQV9DVFJMX1dESQkweDAwMDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfQ1RSTF9QUzJfUkVTRVQgMHgwMDIwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX0NGX1JFU0VUCTB4MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9XREkJMHgwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX1BTMl9SRVNFVCAweDAwMjAKIAotI2RlZmluZSBDRkdfRlBHQV9TUEFSVEFOMgkxCSAgICAvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdyAqLwotI2RlZmluZSBDRkdfRlBHQV9NQVhfU0laRQkxMjgqMTAyNCAgICAvKiAxMjhrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlM1MEUqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIJMQkgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFCTEyOCoxMDI0ICAgIC8qIDEyOGtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzUwRSovCiAKIC8qIEZQR0EgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCi0jZGVmaW5lIENGR19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9JTklUCQkweDAwMDEwMDAwICAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgKi8KIAogLyoKICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCSAgMQorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCSAgMQogCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAxMjggLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIERlZmluaXRpb25zIGZvciBHUElPIHNldHVwIChQUEM0MDVFUCBzcGVjaWZpYykKQEAgLTM4MCwxNiArMzgwLDE2IEBACiAgKiBHUElPMFsyOC0yOV0gLSBVQVJUMSBkYXRhIHNpZ25hbCBpbnB1dC9vdXRwdXQKICAqIEdQSU8wWzMwLTMxXSAtIEVNQUMwIGFuZCBFTUFDMSByZWplY3QgcGFja2V0IGlucHV0cwogICovCi0jZGVmaW5lIENGR19HUElPMF9PU1JICQkweDAwMDAwNTUwCi0jZGVmaW5lIENGR19HUElPMF9PU1JMCQkweDAwMDAwMTEwCi0jZGVmaW5lIENGR19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUwJCTB4MTU1NTU0NDUKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkgJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RDUgkJMHg3N0ZFMDAxNAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkgJCTB4MDAwMDA1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JMCQkweDAwMDAwMTEwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxTAkJMHgxNTU1NTQ0NQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkgJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVENSCQkweDc3RkUwMDE0CiAKLSNkZWZpbmUgQ0ZHX0RVQVJUX1JTVAkJKDB4ODAwMDAwMDAgPj4gMTQpCi0jZGVmaW5lIENGR19FRVBST01fV1AJCSgweDgwMDAwMDAwID4+IDApCisjZGVmaW5lIENPTkZJR19TWVNfRFVBUlRfUlNUCQkoMHg4MDAwMDAwMCA+PiAxNCkKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fV1AJCSgweDgwMDAwMDAwID4+IDApCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtNDIxLDkgKzQyMSw5IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1VTQl9PSENJX05FVwkxCiAjZGVmaW5lIENPTkZJR19QQ0lfT0hDSQkJMQotI2RlZmluZSBDRkdfT0hDSV9TV0FQX1JFR19BQ0NFU1MgMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMgMTUKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkib2hjaV9wY2kiCisjZGVmaW5lIENPTkZJR19TWVNfT0hDSV9TV0FQX1JFR19BQ0NFU1MgMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTIDE1CisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCSJvaGNpX3BjaSIKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCTEKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9QTTUyMC5oIGIvaW5jbHVkZS9jb25maWdzL1BNNTIwLmgKaW5kZXggMjY3NmQ3ZC4uZTI1MGUwMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1BNNTIwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1BNNTIwLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNkZWZpbmUgQ09ORklHX01QQzV4eHgJCTEJLyogVGhpcyBpcyBhbiBNUEM1eHh4IENQVSAqLwogI2RlZmluZSBDT05GSUdfUE01MjAJCTEJLyogLi4uIG9uIFBNNTIwIGJvYXJkICovCiAKLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzNNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzTUh6ICovCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCiAKQEAgLTQ3LDcgKzQ3LDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQzEgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCS8qIC4uLiBhdCA5NjAwIGJwcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIAogI2lmZGVmIENPTkZJR19NUEM1MjAwCS8qIE1QQzUxMDAgUENJIGlzIG5vdCBzdXBwb3J0ZWQgeWV0LiAqLwpAQCAtNzIsNyArNzIsNyBAQAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX01JSQkJMQogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAJCTEKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOCAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOCAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogI3VuZGVmICBDT05GSUdfTlM4MzgyWAogCiAjZW5kaWYKQEAgLTE2MSw0MiArMTYxLDQyIEBACiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jdW5kZWYgQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLworI3VuZGVmIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCiAjZW5kaWYKIC8qCiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTgKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKIAogLyoKICAqIFJUQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19QQ0Y4NTYzCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJCTB4NTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJCTB4NTEKIAogLyoKICAqIERpc2stT24tQ2hpcCBjb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfRE9DX1NIT1JUX1RJTUVPVVQKLSNkZWZpbmUgQ0ZHX01BWF9ET0NfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBET0MgZGV2aWNlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TSE9SVF9USU1FT1VUCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCSovCiAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KLSNkZWZpbmUgQ0ZHX0RPQ19CQVNFCQkweEUwMDAwMDAwCi0jZGVmaW5lIENGR19ET0NfU0laRQkJMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TVVBQT1JUXzIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU1VQUE9SVF9NSUxMRU5OSVVNCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX0JBU0UJCTB4RTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU0laRQkJMHgwMDEwMDAwMAogCiAjaWYgZGVmaW5lZChDT05GSUdfQk9PVF9ST00pCiAvKgpAQCAtMjA4LDEwICsyMDgsMTAgQEAKICAqICAgICAgICAgICAgICAgMHhGRDAwMDAwMCBmb3IgMTYgTUIKICAqICAgICAgICAgICAgICAgMHhGRDgwMDAwMCBmb3IgIDggTUIKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGQTAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwNDAwMDAwMAotI2RlZmluZSBDRkdfQk9PVFJPTV9CQVNFCTB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0JPT1RST01fU0laRQkweDAwMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGQTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUk9NX0JBU0UJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RST01fU0laRQkweDAwMDgwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKDB4RkRGMDAwMDAgKyAweDQwMDAwKQogI2Vsc2UKIC8qCkBAIC0yMjMsMTkgKzIyMywxOSBAQAogICogICAgICAgICAgICAgICAweEZGMDAwMDAwIGZvciAxNiBNQgogICogICAgICAgICAgICAgICAweEZGODAwMDAwIGZvciAgOCBNQgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZDMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDA0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoMHhGRkYwMDAwMCArIDB4NDAwMDApCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCQkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0xPQ0tfVE9VVAk1CS8qIFRpbWVvdXQgZm9yIEZsYXNoIFNldCBMb2NrIEJpdCAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVU5MT0NLX1RPVVQJMTAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCQkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KIAogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDQwMDAwIC8qIDI1NiBLQiBzZWN0b3JzICh4MikgKi8KIApAQCAtMjUzLDI3ICsyNTMsMjcgQEAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4ZjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAogCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KIAogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0yODgsNjkgKzI4OCw2OSBAQAogLyoKICAqIEdQSU8gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHgxMDAwMDAwNAorI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDEwMDAwMDA0CiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCTAKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQk9PVF9ST00pCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0JPT1RST01fQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19CT09UUk9NX1NJWkUKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNDc4MDAKLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0JPT1RST01fQkFTRQotI2RlZmluZSBDRkdfQ1MwX1NJWkUJCUNGR19CT09UUk9NX1NJWkUKLSNkZWZpbmUgQ0ZHX0NTMV9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMV9TSVpFCQlDRkdfRkxBU0hfU0laRQotI2RlZmluZSBDRkdfQ1MxX0NGRwkJMHgwMDA0RkYwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0JPT1RST01fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0JPT1RST01fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwNDc4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfQk9PVFJPTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCUNPTkZJR19TWVNfQk9PVFJPTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NGRwkJMHgwMDA0RkYwMAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDRGRjAwCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0NTMV9TVEFSVAkJQ0ZHX0RPQ19CQVNFCi0jZGVmaW5lIENGR19DUzFfU0laRQkJQ0ZHX0RPQ19TSVpFCi0jZGVmaW5lIENGR19DUzFfQ0ZHCQkweDAwMDQ3ODAwCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDRGRjAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUCQlDT05GSUdfU1lTX0RPQ19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NJWkUJCUNPTkZJR19TWVNfRE9DX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ0ZHCQkweDAwMDQ3ODAwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVVNCIHN0dWZmCkBAIC0zNzIsMjMgKzM3MiwyMyBAQAogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkCSovCiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkyCS8qIG1heC4gMiBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkyCS8qIG1heC4gMiBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoMHgwMDYwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoMHgwMDYwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKENGR19BVEFfREFUQV9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJKDB4MDA1QykKIAogLyogSW50ZXJ2YWwgYmV0d2VlbiByZWdpc3RlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERSAgICAgICAgICA0CisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERSAgICAgICAgICA0CiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUE04MjYuaCBiL2luY2x1ZGUvY29uZmlncy9QTTgyNi5oCmluZGV4IGY2MjUzNjEuLmI1OGY1MjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9QTTgyNi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9QTTgyNi5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaWZuZGVmIF9fQ09ORklHX0gKICNkZWZpbmUgX19DT05GSUdfSAogCi0jdW5kZWYgQ0ZHX1JBTUJPT1QKKyN1bmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAogLyoKICAqIEhpZ2ggTGV2ZWwgQ29uZmlndXJhdGlvbiBPcHRpb25zCkBAIC01NSw4ICs1NSw4IEBACiAvKiBlbmFibGUgSTJDIGFuZCBzZWxlY3QgdGhlIGhhcmR3YXJlL3NvZnR3YXJlIGRyaXZlciAqLwogI3VuZGVmICBDT05GSUdfSEFSRF9JMkMKICNkZWZpbmUgQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotIyBkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNTAwMDAKLSMgZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUKIC8qCiAgKiBTb2Z0d2FyZSAoYml0LWJhbmcpIEkyQyBkcml2ZXIgY29uZmlndXJhdGlvbgogICovCkBAIC03Miw3ICs3Miw3IEBACiAKIAogI2RlZmluZSBDT05GSUdfUlRDX1BDRjg1NjMKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDUxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NTEKIAogLyoKICAqIHNlbGVjdCBzZXJpYWwgY29uc29sZSBjb25maWd1cmF0aW9uCkBAIC0xMTcsMjUgKzExNywyNSBAQAogICogLSBUeC1DTEsgaXMgQ0xLMTAKICAqLwogI2RlZmluZQlDT05GSUdfRVRIRVJfT05fRkNDMQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLMQkoQ01YRkNSX0ZDMXxDTVhGQ1JfUkYxQ1NfTVNLfENNWEZDUl9URjFDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLMQkoQ01YRkNSX0ZDMXxDTVhGQ1JfUkYxQ1NfTVNLfENNWEZDUl9URjFDU19NU0spCiAjaWZuZGVmIENPTkZJR19EQl9DUjgyNl9KMzB4X09OCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFMQkoQ01YRkNSX1JGMUNTX0NMSzExfENNWEZDUl9URjFDU19DTEsxMCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFMQkoQ01YRkNSX1JGMUNTX0NMSzExfENNWEZDUl9URjFDU19DTEsxMCkKICNlbHNlCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFMQkoQ01YRkNSX1JGMUNTX0NMSzExfENNWEZDUl9URjFDU19DTEsxMikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFMQkoQ01YRkNSX1JGMUNTX0NMSzExfENNWEZDUl9URjFDU19DTEsxMikKICNlbmRpZgogLyoKICAqIC0gUngtQ0xLIGlzIENMSzE1CiAgKiAtIFR4LUNMSyBpcyBDTEsxNAogICovCiAjZGVmaW5lCUNPTkZJR19FVEhFUl9PTl9GQ0MyCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0syCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUyCShDTVhGQ1JfUkYyQ1NfQ0xLMTN8Q01YRkNSX1RGMkNTX0NMSzE0KQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSzIJKENNWEZDUl9GQzJ8Q01YRkNSX1JGMkNTX01TS3xDTVhGQ1JfVEYyQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUyCShDTVhGQ1JfUkYyQ1NfQ0xLMTN8Q01YRkNSX1RGMkNTX0NMSzE0KQogLyoKICAqIC0gUkFNIGZvciBCRC9CdWZmZXJzIGlzIG9uIHRoZSA2MHggQnVzIChzZWUgMjgtMTMpCiAgKiAtIEVuYWJsZSBGdWxsIER1cGxleCBpbiBGU01SCiAgKi8KLSMgZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjIGRlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKIAogLyogc3lzdGVtIGNsb2NrIHJhdGUgKENMS0lOKSAtIGVxdWFsIHRvIHRoZSA2MHggYW5kIGxvY2FsIGJ1cyBzcGVlZCAqLwogI2RlZmluZSBDT05GSUdfODI2MF9DTEtJTgk2NDAwMDAwMAkvKiBpbiBIeiAqLwpAQCAtMTQ3LDcgKzE0Nyw3IEBACiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTg2LDg4ICsxODYsODggQEAKICAqIERpc2stT24tQ2hpcCBjb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfRE9DX1NIT1JUX1RJTUVPVVQKLSNkZWZpbmUgQ0ZHX01BWF9ET0NfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBET0MgZGV2aWNlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TSE9SVF9USU1FT1VUCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCSovCiAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU1VQUE9SVF8yMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKLSNkZWZpbmUJQ0ZHX1JFU0VUX0FERFJFU1MgMHhGREZGRkZGQwkvKiAiYmFkIiBhZGRyZXNzCQkqLworI2RlZmluZQlDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgMHhGREZGRkZGQwkvKiAiYmFkIiBhZGRyZXNzCQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaICAgICAgICAoOCA8PCAyMCkgICAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWiAgICAgICAgKDggPDwgMjApICAgICAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRmxhc2ggYW5kIEJvb3QgUk9NIG1hcHBpbmcKICAqLwogI2lmZGVmIENPTkZJR19GTEFTSF8zMk1CCi0jZGVmaW5lCUNGR19GTEFTSDBfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZQlDRkdfRkxBU0gwX1NJWkUJCTB4MDIwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSDBfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIMF9TSVpFCQkweDAyMDAwMDAwCiAjZWxzZQotI2RlZmluZQlDRkdfRkxBU0gwX0JBU0UJCTB4RkYwMDAwMDAKLSNkZWZpbmUJQ0ZHX0ZMQVNIMF9TSVpFCQkweDAwODAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0gwX0JBU0UJCTB4RkYwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSDBfU0laRQkJMHgwMDgwMDAwMAogI2VuZGlmCi0jZGVmaW5lCUNGR19CT09UUk9NX0JBU0UJMHhGRjgwMDAwMAotI2RlZmluZQlDRkdfQk9PVFJPTV9TSVpFCTB4MDAwODAwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19CQVNFCQkweEZGODAwMDAwCi0jZGVmaW5lIENGR19ET0NfU0laRQkJMHgwMDEwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0JPT1RST01fQkFTRQkweEZGODAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVFJPTV9TSVpFCTB4MDAwODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfQkFTRQkJMHhGRjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TSVpFCQkweDAwMTAwMDAwCiAKIC8qIEZsYXNoIGJhbmsgc2l6ZSAoZm9yIHByZWxpbWluYXJ5IHNldHRpbmdzKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFIENGR19GTEFTSDBfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUgQ09ORklHX1NZU19GTEFTSDBfU0laRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KICNpZmRlZiBDT05GSUdfRkxBU0hfMzJNQgotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTM1CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzUJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCiAKICNpZiAwCiAvKiBTdGFydCBwb3J0IHdpdGggZW52aXJvbm1lbnQgaW4gZmxhc2g7IHN3aXRjaCB0byBFRVBST00gbGF0ZXIgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFKzB4NDAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSsweDQwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAogI2Vsc2UKIC8qIEZpbmFsIHZlcnNpb246IGVudmlyb25tZW50IGluIEVFUFJPTSAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0VFUFJPTQkxCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1OAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJNTEyCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKDIwNDggLSA1MTIpCiAjZW5kaWYKQEAgLTI3NSw2MSArMjc1LDYxIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZHMKICAqCi0gKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDRkdfKgorICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ09ORklHX1NZU18qCiAgKiBkZWZpbmVzIGZvciB0aGUgdmFyaW91cyByZWdpc3RlcnMgYWZmZWN0ZWQgYnkgdGhlIEhSQ1cgZS5nLiBjaGFuZ2luZwotICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENGR19TSVVNQ1IuCisgKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ09ORklHX1NZU19TSVVNQ1IuCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19CT09UX1JPTSkKLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCQkoSFJDV19CUFMwMSB8IEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUykKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJKEhSQ1dfQlBTMDEgfCBIUkNXX0NJUCB8IEhSQ1dfSVNCMTAwIHwgSFJDV19CTVMpCiAjZWxzZQotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJCShIUkNXX0NJUCB8IEhSQ1dfSVNCMTAwIHwgSFJDV19CTVMpCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJCShIUkNXX0NJUCB8IEhSQ1dfSVNCMTAwIHwgSFJDV19CTVMpCiAjZW5kaWYKIAogLyogbm8gc2xhdmVzIHNvIGp1c3QgZmlsbCB3aXRoIHplcm9zICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNAkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3CQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqCi0gKiA2MHggU0RSQU0gaXMgbWFwcGVkIGF0IENGR19TRFJBTV9CQVNFLCBsb2NhbCBTRFJBTQorICogNjB4IFNEUkFNIGlzIG1hcHBlZCBhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIGxvY2FsIFNEUkFNCiAgKiBpcyBtYXBwZWQgYXQgU0RSQU1fQkFTRTJfUFJFTElNLgogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfRkxBU0gwX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19GTEFTSDBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogI2lmZGVmCUNPTkZJR19QQ0kKICNkZWZpbmUgQ09ORklHX1BDSV9QTlAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAgICAgICAgICAgICAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogI2VuZGlmCiAKIC8qCkBAIC0zNDQsOSArMzQ0LDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUgICAgICAzMiAgICAgIC8qIEZvciBNUEM4MjYwIENQVSAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAgICAgIDMyICAgICAgLyogRm9yIE1QQzgyNjAgQ1BVICAgICAgICAgICAgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNTksMTcgKzM1OSwxNyBAQAogICoKICAqIEhJRDEgaGFzIG9ubHkgcmVhZC1vbmx5IGluZm9ybWF0aW9uIC0gbm90aGluZyB0byBzZXQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVCAgIChISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0l8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVCAgIChISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0l8XAogCQkJCUhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwgIChISUQwX0lDRXxISUQwX0lGRU18SElEMF9BQkUpCi0jZGVmaW5lIENGR19ISUQyICAgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTCAgKEhJRDBfSUNFfEhJRDBfSUZFTXxISUQwX0FCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyICAgICAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNUiAtIFJlc2V0IE1vZGUgUmVnaXN0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS01CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiB0dXJuIG9uIENoZWNrc3RvcCBSZXNldCBFbmFibGUKICAqLwotI2RlZmluZSBDRkdfUk1SICAgICAgICAgUk1SX0NTUkUKKyNkZWZpbmUgQ09ORklHX1NZU19STVIgICAgICAgICBSTVJfQ1NSRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQ1IgLSBCdXMgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQtMjUKQEAgLTM3NywxNiArMzc3LDE2IEBACiAgKi8KIAogI2RlZmluZSBCQ1JfQVBEMDEgICAgICAgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfQkNSICAgICAgICAgKEJDUl9BUEQwMXxCQ1JfRVRNfEJDUl9MRVRNKSAgICAvKiA4MjYwIG1vZGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IgICAgICAgICAoQkNSX0FQRDAxfEJDUl9FVE18QkNSX0xFVE0pICAgIC8qIDgyNjAgbW9kZSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTSVVNQ1IgLSBTSVUgTW9kdWxlIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogI2lmIDAKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RQUEMwMHxTSVVNQ1JfQVBQQzEwfFNJVU1DUl9DUzEwUEMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EUFBDMDB8U0lVTUNSX0FQUEMxMHxTSVVNQ1JfQ1MxMFBDMDEpCiAjZWxzZQotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfRFBQQzEwfFNJVU1DUl9BUFBDMTApCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfRFBQQzEwfFNJVU1DUl9BUFBDMTApCiAjZW5kaWYKIAogCkBAIC0zOTcsMTAgKzM5NywxMCBAQAogICogV2F0Y2hkb2cgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIDYweCBCdXMgTW9uaXRvciBlbmFibGUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1B8U1lQQ1JfU1dFKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQKQogI2VuZGlmIC8qIENPTkZJR19XQVRDSERPRyAqLwogCkBAIC00MTAsNyArNDEwLDcgQEAKICAqIENsZWFyIG9uY2UgcGVyIFNlY29uZCBhbmQgQWxhcm0gSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywKICAqIGFuZCBlbmFibGUgVGltZSBDb3VudGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1RNQ05UU0MgICAgIChUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbCAgICAgICAgICAgICAgICAgNC00MgpAQCAtNDE4LDE5ICs0MTgsMTkgQEAKICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssIGFuZCBlbmFibGUKICAqIFBlcmlvZGljIHRpbWVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSICAgICAgIChQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSICAgICAgIChQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIENvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDktOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TQ0NSICAgICAgICAoU0NDUl9ERkJSRzAwKQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IgICAgICAgIChTQ0NSX0RGQlJHMDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAxMy03CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSICAgICAgICAwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtNDQ0LDM0ICs0NDQsMzQgQEAKIAogCS8qIEluaXRpYWxpemUgU0RSQU0gb24gbG9jYWwgYnVzCiAJICovCi0jZGVmaW5lIENGR19JTklUX0xPQ0FMX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9MT0NBTF9TRFJBTQogCiAKIC8qIE1pbmltdW0gbWFzayB0byBzZXBhcmF0ZSBwcmVsaW1pbmFyeQogICogYWRkcmVzcyByYW5nZXMgZm9yIENTWzA6Ml0KICAqLwotI2RlZmluZSBDRkdfTUlOX0FNX01BU0sJMHhDMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JTl9BTV9NQVNLCTB4QzAwMDAwMDAKIAogLyoKICAqIHdlIHVzZSB0aGUgc2FtZSB2YWx1ZXMgZm9yIDMyIE1CIGFuZCAxMjggTUIgU0RSQU0KICAqIHJlZnJlc2ggcmF0ZSA9IDcuNzMgdVMgKDY0IE1IeiBCdXMgQ2xvY2spCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSICAgICAgIDB4MjAwMAotI2RlZmluZSBDRkdfUFNSVCAgICAgICAgMHgwRQorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSICAgICAgIDB4MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQgICAgICAgIDB4MEUKIAotI2RlZmluZSBDRkdfTVJTX09GRlMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01SU19PRkZTCTB4MDAwMDAwMDAKIAogCiAjaWYgZGVmaW5lZChDT05GSUdfQk9PVF9ST00pCiAvKgogICogQmFuayAwIC0gQm9vdCBST00gKDggYml0IHdpZGUpCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChDRkdfQk9PVFJPTV9CQVNFICYgQlJ4X0JBX01TSyl8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChDT05GSUdfU1lTX0JPT1RST01fQkFTRSAmIEJSeF9CQV9NU0spfFwKIAkJCSBCUnhfUFNfOAkJCXxcCiAJCQkgQlJ4X01TX0dQQ01fUAkJCXxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKFAyU1pfVE9fQU0oQ0ZHX0JPT1RST01fU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShQMlNaX1RPX0FNKENPTkZJR19TWVNfQk9PVFJPTV9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfM19DTEsJCQl8XApAQCAtNDgxLDEyICs0ODEsMTIgQEAKIC8qCiAgKiBCYW5rIDEgLSBGbGFzaCAoNjQgYml0IHdpZGUpCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChDRkdfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkoUDJTWl9UT19BTShDRkdfRkxBU0hfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCShQMlNaX1RPX0FNKENPTkZJR19TWVNfRkxBU0hfU0laRSkJfFwKIAkJCSBPUnhHX0NTTlQJCQl8XAogCQkJIE9SeEdfQUNTX0RJVjEJCQl8XAogCQkJIE9SeEdfU0NZXzNfQ0xLCQkJfFwKQEAgLTQ5OCwxMiArNDk4LDEyIEBACiAvKgogICogQmFuayAwIC0gRmxhc2ggKDY0IGJpdCB3aWRlKQogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNICAoKENGR19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTSAgKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKIAkJCSBCUnhfUFNfNjQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfTVNfR1BDTV9QICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTSAgKFAyU1pfVE9fQU0oQ0ZHX0ZMQVNIX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19GTEFTSF9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfQUNTX0RJVjEgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfU0NZXzNfQ0xLICAgICAgICAgICAgICAgICB8XApAQCAtNTEzLDEyICs1MTMsMTIgQEAKIC8qCiAgKiBCYW5rIDEgLSBEaXNrLU9uLUNoaXAKICAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKENGR19ET0NfQkFTRSAmIEJSeF9CQV9NU0spCXxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKENPTkZJR19TWVNfRE9DX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAogCQkJIEJSeF9QU184CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkoUDJTWl9UT19BTShDRkdfRE9DX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoUDJTWl9UT19BTShDT05GSUdfU1lTX0RPQ19TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfM19DTEsJCQl8XApAQCAtNTMwLDIwICs1MzAsMjAgQEAKIC8qIEJhbmsgMiAtIFNEUkFNCiAgKi8KIAotI2lmbmRlZiBDRkdfUkFNQk9PVAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTSAgKChDRkdfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19TRFJBTV9QICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCiAJLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzIGZvciA4LWNvbHVtbiBjaGlwcwogCSAqLwotI2RlZmluZSBDRkdfT1IyXzhDT0wgICAgKENGR19NSU5fQU1fTUFTSwkgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IyXzhDT0wgICAgKENPTkZJR19TWVNfTUlOX0FNX01BU0sJICAgICAgICB8XAogCQkJIE9SeFNfQlBEXzQgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMF9BOSAgICAgICAgICAgICB8XAogCQkJIE9SeFNfTlVNUl8xMikKIAotI2RlZmluZSBDRkdfUFNETVJfOENPTCAgKFBTRE1SX1NEQU1fQTEzX0lTX0E1ICAgICAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SXzhDT0wgIChQU0RNUl9TREFNX0ExM19JU19BNSAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9CU01BX0ExNF9BMTYgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREExMF9QQkkwX0ExMCAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9SRlJDXzdfQ0xLICAgICAgICAgICAgICAgfFwKQEAgLTU1NSwxMiArNTU1LDEyIEBACiAKIAkvKiBTRFJBTSBpbml0aWFsaXphdGlvbiB2YWx1ZXMgZm9yIDktY29sdW1uIGNoaXBzCiAJICovCi0jZGVmaW5lIENGR19PUjJfOUNPTCAgICAoQ0ZHX01JTl9BTV9NQVNLICAgICAgICAgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IyXzlDT0wgICAgKENPTkZJR19TWVNfTUlOX0FNX01BU0sgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX0JQRF80ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTBfQTcgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX05VTVJfMTMpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SXzlDT0wgIChQU0RNUl9TREFNX0ExNF9JU19BNSAgICAgICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUl85Q09MICAoUFNETVJfU0RBTV9BMTRfSVNfQTUgICAgICAgICAgIHxcCiAJCQkgUFNETVJfQlNNQV9BMTNfQTE1ICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMF9BOSAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfUkZSQ183X0NMSyAgICAgICAgICAgICAgIHxcCkBAIC01NzAsOSArNTcwLDkgQEAKIAkJCSBQU0RNUl9XUkNfMUMgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9DTF8yKQogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNICAgQ0ZHX09SMl85Q09MCi0jZGVmaW5lIENGR19QU0RNUiAgICAgICAgQ0ZHX1BTRE1SXzlDT0wKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNICAgQ09ORklHX1NZU19PUjJfOUNPTAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SICAgICAgICBDT05GSUdfU1lTX1BTRE1SXzlDT0wKIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUE04MjguaCBiL2luY2x1ZGUvY29uZmlncy9QTTgyOC5oCmluZGV4IGY0MzdkMjEuLjk2Yzg2ZjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9QTTgyOC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9QTTgyOC5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaWZuZGVmIF9fQ09ORklHX0gKICNkZWZpbmUgX19DT05GSUdfSAogCi0jdW5kZWYgQ0ZHX1JBTUJPT1QKKyN1bmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAogLyoKICAqIEhpZ2ggTGV2ZWwgQ29uZmlndXJhdGlvbiBPcHRpb25zCkBAIC01NSw4ICs1NSw4IEBACiAvKiBlbmFibGUgSTJDIGFuZCBzZWxlY3QgdGhlIGhhcmR3YXJlL3NvZnR3YXJlIGRyaXZlciAqLwogI3VuZGVmCUNPTkZJR19IQVJEX0kyQwogI2RlZmluZSBDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jIGRlZmluZSBDRkdfSTJDX1NQRUVECQk1MDAwMAotIyBkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHhGRQorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTUwMDAwCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhGRQogLyoKICAqIFNvZnR3YXJlIChiaXQtYmFuZykgSTJDIGRyaXZlciBjb25maWd1cmF0aW9uCiAgKi8KQEAgLTcyLDcgKzcyLDcgQEAKIAogCiAjZGVmaW5lIENPTkZJR19SVENfUENGODU2MwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg1MQogCiAvKgogICogc2VsZWN0IHNlcmlhbCBjb25zb2xlIGNvbmZpZ3VyYXRpb24KQEAgLTExNywyNSArMTE3LDI1IEBACiAgKiAtIFR4LUNMSyBpcyBDTEsxMAogICovCiAjZGVmaW5lIENPTkZJR19FVEhFUl9PTl9GQ0MxCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0sxCShDTVhGQ1JfRkMxfENNWEZDUl9SRjFDU19NU0t8Q01YRkNSX1RGMUNTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sxCShDTVhGQ1JfRkMxfENNWEZDUl9SRjFDU19NU0t8Q01YRkNSX1RGMUNTX01TSykKICNpZm5kZWYgQ09ORklHX0RCX0NSODI2X0ozMHhfT04KLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUxCShDTVhGQ1JfUkYxQ1NfQ0xLMTF8Q01YRkNSX1RGMUNTX0NMSzEwKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUxCShDTVhGQ1JfUkYxQ1NfQ0xLMTF8Q01YRkNSX1RGMUNTX0NMSzEwKQogI2Vsc2UKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUxCShDTVhGQ1JfUkYxQ1NfQ0xLMTF8Q01YRkNSX1RGMUNTX0NMSzEyKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUxCShDTVhGQ1JfUkYxQ1NfQ0xLMTF8Q01YRkNSX1RGMUNTX0NMSzEyKQogI2VuZGlmCiAvKgogICogLSBSeC1DTEsgaXMgQ0xLMTUKICAqIC0gVHgtQ0xLIGlzIENMSzE0CiAgKi8KICNkZWZpbmUgQ09ORklHX0VUSEVSX09OX0ZDQzIKLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSzIJKENNWEZDUl9GQzJ8Q01YRkNSX1JGMkNTX01TS3xDTVhGQ1JfVEYyQ1NfTVNLKQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRTIJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLMgkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTIJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCiAvKgogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIDYweCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQogCiAvKiBzeXN0ZW0gY2xvY2sgcmF0ZSAoQ0xLSU4pIC0gZXF1YWwgdG8gdGhlIDYweCBhbmQgbG9jYWwgYnVzIHNwZWVkICovCiAjZGVmaW5lIENPTkZJR184MjYwX0NMS0lOCTEwMDAwMDAwMAkvKiBpbiBIeiAqLwpAQCAtMTQ3LDcgKzE0Nyw3IEBACiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTg1LDgyICsxODUsODIgQEAKICAqLwogI2RlZmluZSBDT05GSUdfTkFORF9MRUdBQ1kKIAotI2RlZmluZSBDRkdfRE9DX1NIT1JUX1RJTUVPVVQKLSNkZWZpbmUgQ0ZHX01BWF9ET0NfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBET0MgZGV2aWNlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TSE9SVF9USU1FT1VUCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCSovCiAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU1VQUE9SVF8yMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5EIDB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5EIDB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MgMHhGREZGRkZGQwkvKiAiYmFkIiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgMHhGREZGRkZGQwkvKiAiYmFkIiBhZGRyZXNzCQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSAgICAgKDggPDwgMjApCSAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkgICAgICg4IDw8IDIwKQkgICAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRmxhc2ggYW5kIEJvb3QgUk9NIG1hcHBpbmcKICAqLwogCi0jZGVmaW5lIENGR19CT09UUk9NX0JBU0UJMHhGRjgwMDAwMAotI2RlZmluZSBDRkdfQk9PVFJPTV9TSVpFCTB4MDAwODAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDBfU0laRQkJMHgwMjAwMDAwMAotI2RlZmluZSBDRkdfRE9DX0JBU0UJCTB4RkY4MDAwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TSVpFCQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFJPTV9CQVNFCTB4RkY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUk9NX1NJWkUJMHgwMDA4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX1NJWkUJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfQkFTRQkJMHhGRjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TSVpFCQkweDAwMTAwMDAwCiAKIAogLyogRmxhc2ggYmFuayBzaXplIChmb3IgcHJlbGltaW5hcnkgc2V0dGluZ3MpCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUgQ0ZHX0ZMQVNIMF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcwkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTM1CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEzNQkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCiAKICNpZiAwCiAvKiBTdGFydCBwb3J0IHdpdGggZW52aXJvbm1lbnQgaW4gZmxhc2g7IHN3aXRjaCB0byBFRVBST00gbGF0ZXIgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFKzB4NDAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSsweDQwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAogI2Vsc2UKIC8qIEZpbmFsIHZlcnNpb246IGVudmlyb25tZW50IGluIEVFUFJPTSAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0VFUFJPTQkxCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1OAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJNTEyCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKDIwNDggLSA1MTIpCiAjZW5kaWYKQEAgLTI2OCw2MSArMjY4LDYxIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZHMKICAqCi0gKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDRkdfKgorICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ09ORklHX1NZU18qCiAgKiBkZWZpbmVzIGZvciB0aGUgdmFyaW91cyByZWdpc3RlcnMgYWZmZWN0ZWQgYnkgdGhlIEhSQ1cgZS5nLiBjaGFuZ2luZwotICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENGR19TSVVNQ1IuCisgKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ09ORklHX1NZU19TSVVNQ1IuCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19CT09UX1JPTSkKLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCQkoSFJDV19CUFMwMSB8IEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUykKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJKEhSQ1dfQlBTMDEgfCBIUkNXX0NJUCB8IEhSQ1dfSVNCMTAwIHwgSFJDV19CTVMpCiAjZWxzZQotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJCShIUkNXX0NJUCB8IEhSQ1dfSVNCMTAwIHwgSFJDV19CTVMpCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJCShIUkNXX0NJUCB8IEhSQ1dfSVNCMTAwIHwgSFJDV19CTVMpCiAjZW5kaWYKIAogLyogbm8gc2xhdmVzIHNvIGp1c3QgZmlsbCB3aXRoIHplcm9zICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNAkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3CQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOCAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOCAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKgotICogNjB4IFNEUkFNIGlzIG1hcHBlZCBhdCBDRkdfU0RSQU1fQkFTRSwgbG9jYWwgU0RSQU0KKyAqIDYweCBTRFJBTSBpcyBtYXBwZWQgYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFLCBsb2NhbCBTRFJBTQogICogaXMgbWFwcGVkIGF0IFNEUkFNX0JBU0UyX1BSRUxJTS4KICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0ZMQVNIMF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfRkxBU0gwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jIGRlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKICNpZmRlZglDT05GSUdfUENJCiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4CQkvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgJCS8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMAkqLwogI2VuZGlmCiAKIC8qCkBAIC0zMzcsOSArMzM3LDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzUyLDE3ICszNTIsMTcgQEAKICAqCiAgKiBISUQxIGhhcyBvbmx5IHJlYWQtb25seSBpbmZvcm1hdGlvbiAtIG5vdGhpbmcgdG8gc2V0LgogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxISUQwX0RDSXxcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCShISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0l8XAogCQkJCUhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJKEhJRDBfSUNFfEhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDIJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJKEhJRDBfSUNFfEhJRDBfSUZFTXxISUQwX0FCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlcgkJCQkJIDUtNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogdHVybiBvbiBDaGVja3N0b3AgUmVzZXQgRW5hYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX1JNUgkJUk1SX0NTUkUKKyNkZWZpbmUgQ09ORklHX1NZU19STVIJCVJNUl9DU1JFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEJDUiAtIEJ1cyBDb25maWd1cmF0aW9uCQkJCQkgNC0yNQpAQCAtMzcwLDE2ICszNzAsMTYgQEAKICAqLwogCiAjZGVmaW5lIEJDUl9BUEQwMQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19CQ1IJCShCQ1JfQVBEMDF8QkNSX0VUTXxCQ1JfTEVUTSkJLyogODI2MCBtb2RlICovCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkoQkNSX0FQRDAxfEJDUl9FVE18QkNSX0xFVE0pCS8qIDgyNjAgbW9kZSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTSVVNQ1IgLSBTSVUgTW9kdWxlIENvbmZpZ3VyYXRpb24JCQkJIDQtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogI2lmIDAKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RQUEMwMHxTSVVNQ1JfQVBQQzEwfFNJVU1DUl9DUzEwUEMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EUFBDMDB8U0lVTUNSX0FQUEMxMHxTSVVNQ1JfQ1MxMFBDMDEpCiAjZWxzZQotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfRFBQQzEwfFNJVU1DUl9BUFBDMTApCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfRFBQQzEwfFNJVU1DUl9BUFBDMTApCiAjZW5kaWYKIAogCkBAIC0zOTAsMTAgKzM5MCwxMCBAQAogICogV2F0Y2hkb2cgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIDYweCBCdXMgTW9uaXRvciBlbmFibGUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1B8U1lQQ1JfU1dFKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQKQogI2VuZGlmIC8qIENPTkZJR19XQVRDSERPRyAqLwogCkBAIC00MDMsNyArNDAzLDcgQEAKICAqIENsZWFyIG9uY2UgcGVyIFNlY29uZCBhbmQgQWxhcm0gSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywKICAqIGFuZCBlbmFibGUgVGltZSBDb3VudGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1RNQ05UU0MJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCSA0LTQyCkBAIC00MTEsMTkgKzQxMSwxOSBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgQ29udHJvbAkJCQkJIDktOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0RGQlJHMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9ERkJSRzAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSQ0NSIC0gUklTQyBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24JCQkJMTMtNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SQ0NSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC00MzcsMzQgKzQzNywzNCBAQAogCiAJLyogSW5pdGlhbGl6ZSBTRFJBTSBvbiBsb2NhbCBidXMKIAkgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfTE9DQUxfU0RSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0xPQ0FMX1NEUkFNCiAKIAogLyogTWluaW11bSBtYXNrIHRvIHNlcGFyYXRlIHByZWxpbWluYXJ5CiAgKiBhZGRyZXNzIHJhbmdlcyBmb3IgQ1NbMDoyXQogICovCi0jZGVmaW5lIENGR19NSU5fQU1fTUFTSyAweEMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUlOX0FNX01BU0sgMHhDMDAwMDAwMAogCiAvKgogICogd2UgdXNlIHRoZSBzYW1lIHZhbHVlcyBmb3IgMzIgTUIgYW5kIDEyOCBNQiBTRFJBTQogICogcmVmcmVzaCByYXRlID0gNy42OCB1UyAoMTAwIE1IeiBCdXMgQ2xvY2spCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSCTB4MjAwMAotI2RlZmluZSBDRkdfUFNSVAkweDE2CisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJMHgyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkweDE2CiAKLSNkZWZpbmUgQ0ZHX01SU19PRkZTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUlNfT0ZGUwkweDAwMDAwMDAwCiAKIAogI2lmIGRlZmluZWQoQ09ORklHX0JPT1RfUk9NKQogLyoKICAqIEJhbmsgMCAtIEJvb3QgUk9NICg4IGJpdCB3aWRlKQogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoQ0ZHX0JPT1RST01fQkFTRSAmIEJSeF9CQV9NU0spfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoQ09ORklHX1NZU19CT09UUk9NX0JBU0UgJiBCUnhfQkFfTVNLKXxcCiAJCQkgQlJ4X1BTXzgJCQl8XAogCQkJIEJSeF9NU19HUENNX1AJCQl8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShQMlNaX1RPX0FNKENGR19CT09UUk9NX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoUDJTWl9UT19BTShDT05GSUdfU1lTX0JPT1RST01fU0laRSkJfFwKIAkJCSBPUnhHX0NTTlQJCQl8XAogCQkJIE9SeEdfQUNTX0RJVjEJCQl8XAogCQkJIE9SeEdfU0NZXzVfQ0xLCQkJfFwKQEAgLTQ3NCwxMiArNDc0LDEyIEBACiAvKgogICogQmFuayAxIC0gRmxhc2ggKDY0IGJpdCB3aWRlKQogICovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoQ0ZHX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAogCQkJIEJSeF9QU182NAkJCXxcCiAJCQkgQlJ4X01TX0dQQ01fUAkJCXxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JKFAyU1pfVE9fQU0oQ0ZHX0ZMQVNIX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoUDJTWl9UT19BTShDT05GSUdfU1lTX0ZMQVNIX1NJWkUpCXxcCiAJCQkgT1J4R19DU05UCQkJfFwKIAkJCSBPUnhHX0FDU19ESVYxCQkJfFwKIAkJCSBPUnhHX1NDWV81X0NMSwkJCXxcCkBAIC00OTEsMTIgKzQ5MSwxMiBAQAogLyoKICAqIEJhbmsgMCAtIEZsYXNoICg2NCBiaXQgd2lkZSkKICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKENGR19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykJfFwKIAkJCSBCUnhfUFNfNjQJCQl8XAogCQkJIEJSeF9NU19HUENNX1AJCQl8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShQMlNaX1RPX0FNKENGR19GTEFTSF9TSVpFKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKFAyU1pfVE9fQU0oQ09ORklHX1NZU19GTEFTSF9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfNV9DTEsJCQl8XApAQCAtNTA2LDEyICs1MDYsMTIgQEAKIC8qCiAgKiBCYW5rIDEgLSBEaXNrLU9uLUNoaXAKICAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKENGR19ET0NfQkFTRSAmIEJSeF9CQV9NU0spCXxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKENPTkZJR19TWVNfRE9DX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAogCQkJIEJSeF9QU184CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkoUDJTWl9UT19BTShDRkdfRE9DX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoUDJTWl9UT19BTShDT05GSUdfU1lTX0RPQ19TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfNV9DTEsJCQl8XApAQCAtNTIzLDIwICs1MjMsMjAgQEAKIC8qIEJhbmsgMiAtIFNEUkFNCiAgKi8KIAotI2lmbmRlZiBDRkdfUkFNQk9PVAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKENGR19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfU0RSQU1fUAkJCXxcCiAJCQkgQlJ4X1YpCiAKIAkvKiBTRFJBTSBpbml0aWFsaXphdGlvbiB2YWx1ZXMgZm9yIDgtY29sdW1uIGNoaXBzCiAJICovCi0jZGVmaW5lIENGR19PUjJfOENPTAkoQ0ZHX01JTl9BTV9NQVNLCQl8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMl84Q09MCShDT05GSUdfU1lTX01JTl9BTV9NQVNLCQl8XAogCQkJIE9SeFNfQlBEXzQJCQl8XAogCQkJIE9SeFNfUk9XU1RfUEJJMF9BOQkJfFwKIAkJCSBPUnhTX05VTVJfMTIpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SXzhDT0wJKFBTRE1SX1NEQU1fQTEzX0lTX0E1CQl8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SXzhDT0wJKFBTRE1SX1NEQU1fQTEzX0lTX0E1CQl8XAogCQkJIFBTRE1SX0JTTUFfQTE0X0ExNgkJfFwKIAkJCSBQU0RNUl9TREExMF9QQkkwX0ExMAkJfFwKIAkJCSBQU0RNUl9SRlJDXzdfQ0xLCQl8XApAQCAtNTQ4LDEyICs1NDgsMTIgQEAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOS1jb2x1bW4gY2hpcHMKIAkgKi8KLSNkZWZpbmUgQ0ZHX09SMl85Q09MCShDRkdfTUlOX0FNX01BU0sJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IyXzlDT0wJKENPTkZJR19TWVNfTUlOX0FNX01BU0sJCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E3CQl8XAogCQkJIE9SeFNfTlVNUl8xMykKIAotI2RlZmluZSBDRkdfUFNETVJfOUNPTAkoUFNETVJfU0RBTV9BMTRfSVNfQTUJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfOUNPTAkoUFNETVJfU0RBTV9BMTRfSVNfQTUJCXxcCiAJCQkgUFNETVJfQlNNQV9BMTNfQTE1CQl8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTBfQTkJCXxcCiAJCQkgUFNETVJfUkZSQ183X0NMSwkJfFwKQEAgLTU2Myw5ICs1NjMsOSBAQAogCQkJIFBTRE1SX1dSQ18xQwkJCXxcCiAJCQkgUFNETVJfQ0xfMikKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkgQ0ZHX09SMl85Q09MCi0jZGVmaW5lIENGR19QU0RNUgkgQ0ZHX1BTRE1SXzlDT0wKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCSBDT05GSUdfU1lTX09SMl85Q09MCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJIENPTkZJR19TWVNfUFNETVJfOUNPTAogCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9QTTg1NC5oIGIvaW5jbHVkZS9jb25maWdzL1BNODU0LmgKaW5kZXggMWJlZWUwZi4uYzNhN2Y4MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1BNODU0LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1BNODU0LmgKQEAgLTc1LDE5ICs3NSwxOSBAQAogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YJMQkvKiBDYWxsIGJvYXJkX3ByZV9pbml0ICovCiAKLSN1bmRlZglDRkdfRFJBTV9URVNUCQkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHJlZ2lvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKKyN1bmRlZglDT05GSUdfU1lTX0RSQU1fVEVTVAkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKIAogCiAvKgogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCi0jZGVmaW5lIENGR19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUiAqLwogCiAKIC8qIEREUiBTZXR1cCAqLwpAQCAtMTAwLDggKzEwMCw4IEBACiAKICNkZWZpbmUgQ09ORklHX01FTV9JTklUX1ZBTFVFCTB4RGVhZEJlZWYKIAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKQEAgLTExMiw4NSArMTEyLDg1IEBACiAjZGVmaW5lIFNQRF9FRVBST01fQUREUkVTUwkweDU4CS8qIENUTFIgMCBESU1NIDAgKi8KIAogLyogTWFudWFsbHkgc2V0IHVwIEREUiBwYXJhbWV0ZXJzICovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCTI1NgkJLyogRERSIGlzIDI1NiBNQiAqLwotI2RlZmluZSBDRkdfRERSX0NTMF9CTkRTCTB4MDAwMDAwMGYJLyogMC0yNTZNQiAqLwotI2RlZmluZSBDRkdfRERSX0NTMF9DT05GSUcJMHg4MDAwMDEwMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCTB4NDc0NDQzMjEKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkweDAwMDAwODAwCS8qIFA5LTQ1LG1heSBuZWVkIHR1bmluZyAqLwotI2RlZmluZSBDRkdfRERSX0NPTlRST0wJMHhjMjAwODAwMAkvKiB1bmJ1ZmZlcmVkLG5vIERZTl9QV1IgKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCTB4MDAwMDAwNjIJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUgKi8KLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkweDA0NWIwMTAwCS8qIGF1dG9jaGFyZ2Usbm8gb3BlbiBwYWdlICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkyNTYJCS8qIEREUiBpcyAyNTYgTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwZgkvKiAwLTI1Nk1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9DT05GSUcJMHg4MDAwMDEwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkweDQ3NDQ0MzIxCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCTB4MDAwMDA4MDAJLyogUDktNDUsbWF5IG5lZWQgdHVuaW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTlRST0wJMHhjMjAwODAwMAkvKiB1bmJ1ZmZlcmVkLG5vIERZTl9QV1IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkweDAwMDAwMDYyCS8qIERMTCxub3JtYWwsc2VxLDQvMi41ICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0lOVEVSVkFMCTB4MDQ1YjAxMDAJLyogYXV0b2NoYXJnZSxubyBvcGVuIHBhZ2UgKi8KIAogLyoKICAqIFNEUkFNIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX0JBU0UJMHhmMDAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX1NJWkUJMAkJLyogTEJDIFNEUkFNIGlzIDAgTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRQkweGYwMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUJMAkJLyogTEJDIFNEUkFNIGlzIDAgTUIgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZTAwMDAwMAkvKiBzdGFydCBvZiAzMiBNQiBGTEFTSCAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhmZTAwMTgwMQkvKiBwb3J0IHNpemUgMzJiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZlMDAwMDAwCS8qIHN0YXJ0IG9mIDMyIE1CIEZMQVNIICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJMHhmZTAwMTgwMQkvKiBwb3J0IHNpemUgMzJiaXQgKi8KIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhmZTAwNmY2NwkvKiAzMiBNQiBGbGFzaCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGZlMDA2ZjY3CS8qIDMyIE1CIEZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmCUNGR19SQU1CT09UCisjdW5kZWYJQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCiAjdW5kZWYgQ09ORklHX0NMT0NLU19JTl9NSFoKIAogLyoKICAqIExvY2FsIEJ1cyBEZWZpbml0aW9ucwogICovCi0jZGVmaW5lIENGR19MQkNfTENSUgkJMHgwMDAzMDAwNCAgICAvKiBMQiBjbG9jayByYXRpbyByZWcgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MQkNSCQkweDAwMDAwMDAwICAgIC8qIExCIGNvbmZpZyByZWcgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU1JUCQkweDIwMDAwMDAwICAgIC8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19NUlRQUgkJMHgyMDAwMDAwMCAgICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQ1JSCQkweDAwMDMwMDA0ICAgIC8qIExCIGNsb2NrIHJhdGlvIHJlZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQkNSCQkweDAwMDAwMDAwICAgIC8qIExCIGNvbmZpZyByZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkJMHgyMDAwMDAwMCAgICAvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX01SVFBSCQkweDIwMDAwMDAwICAgIC8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCovCiAKIAogI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDUxMiAqIDEwMjQpCS8qIFJlc2VydmUgNTEyIGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKiBTZXJpYWwgUG9ydCAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWCAgICAgMQogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfQ0NTUkJBUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19DQ1NSQkFSKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0NDU1JCQVIrMHg0NjAwKQogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qCkBAIC0xOTksNDAgKzE5OSw0MCBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDU4Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDU4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCiAKIC8qCiAgKiBSVEMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19SVENfUENGODU2MwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCQkweDUxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCQkweDUxCiAKIC8qIFJhcGlkSU8gTU1VICovCi0jZGVmaW5lIENGR19SSU9fTUVNX0JBU0UJMHhjMDAwMDAwMAkvKiBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1JJT19NRU1fUEhZUwlDRkdfUklPX01FTV9CQVNFCi0jZGVmaW5lIENGR19SSU9fTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiAxMjhNICovCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9CQVNFCTB4YzAwMDAwMDAJLyogYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9QSFlTCUNPTkZJR19TWVNfUklPX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogMTI4TSAqLwogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KICAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4ZTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwlDRkdfUENJMV9JT19CQVNFCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgxMDAwMDAwCS8qIDE2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHhlMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwlDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQkweDEwMDAwMDAJLyogMTZNICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAKQEAgLTI1MCw3ICsyNTAsNyBAQAogI2VuZGlmCiAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NwkvKiBNb3Rvcm9sYSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3CS8qIE1vdG9yb2xhICovCiAKICNlbmRpZgkvKiBDT05GSUdfUENJICovCiAKQEAgLTI5MiwyMCArMjkyLDIwIEBACiAvKgogICogRW52aXJvbm1lbnQKICAqLwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICAgI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHg4MDAwMCkKKyAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4ODAwMDApCiAgICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMCAvKiAyNTZLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KICAgI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2Vsc2UKLSAgI2RlZmluZSBDRkdfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cgKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCiAgICNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0gICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKICAgI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogCiAvKgpAQCAtMzMyLDcgKzMzMiw3IEBACiAgICAgI2RlZmluZSBDT05GSUdfQ01EX1BDSQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogICAgICN1bmRlZiBDT05GSUdfQ01EX0VOVgogICAgICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTM0MywyMCArMzQzLDIwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0gICAgI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSAgICAjZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworICAgICNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KICNkZWZpbmUgQ09ORklHX0xPT1BXCiAKIC8qCkBAIC0zNjQsNyArMzY0LDcgQEAKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUE04NTYuaCBiL2luY2x1ZGUvY29uZmlncy9QTTg1Ni5oCmluZGV4IDlkNTM1YjYuLmIzYmNmMjMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9QTTg1Ni5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9QTTg1Ni5oCkBAIC03NiwyMSArNzYsMjEgQEAKIAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCTEJLyogQ2FsbCBib2FyZF9wcmVfaW5pdCAqLwogCi0jZGVmaW5lIENGR19JTklUX0RCQ1IgREJDUl9JRE0JCS8qIEVuYWJsZSBEZWJ1ZyBFeGNlcHRpb25zICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9EQkNSIERCQ1JfSURNCQkvKiBFbmFibGUgRGVidWcgRXhjZXB0aW9ucyAqLwogCi0jdW5kZWYJQ0ZHX0RSQU1fVEVTVAkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCisjdW5kZWYJQ09ORklHX1NZU19EUkFNX1RFU1QJCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCiAKIAogLyoKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9QSFlTCUNGR19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfSU1NUgkJQ0ZHX0NDU1JCQVIJLyogUFFJSSB1c2VzIENGR19JTU1SICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUwlDT05GSUdfU1lTX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDT05GSUdfU1lTX0lNTVIgKi8KIAogLyogRERSIFNldHVwICovCiAjZGVmaW5lIENPTkZJR19GU0xfRERSMQpAQCAtMTAyLDggKzEwMiw4IEBACiAKICNkZWZpbmUgQ09ORklHX01FTV9JTklUX1ZBTFVFCTB4RGVhZEJlZWYKIAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKQEAgLTExNCw0MiArMTE0LDQyIEBACiAjZGVmaW5lIFNQRF9FRVBST01fQUREUkVTUwkweDU4CS8qIENUTFIgMCBESU1NIDAgKi8KIAogLyogTWFudWFsbHkgc2V0IHVwIEREUiBwYXJhbWV0ZXJzICovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCTI1NgkJLyogRERSIGlzIDI1NiBNQiAqLwotI2RlZmluZSBDRkdfRERSX0NTMF9CTkRTCTB4MDAwMDAwMGYJLyogMC0yNTZNQiAqLwotI2RlZmluZSBDRkdfRERSX0NTMF9DT05GSUcJMHg4MDAwMDEwMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCTB4NDc0NDQzMjEKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkweDAwMDAwODAwCS8qIFA5LTQ1LG1heSBuZWVkIHR1bmluZyAqLwotI2RlZmluZSBDRkdfRERSX0NPTlRST0wJMHhjMjAwODAwMAkvKiB1bmJ1ZmZlcmVkLG5vIERZTl9QV1IgKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCTB4MDAwMDAwNjIJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUgKi8KLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkweDA0NWIwMTAwCS8qIGF1dG9jaGFyZ2Usbm8gb3BlbiBwYWdlICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkyNTYJCS8qIEREUiBpcyAyNTYgTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwZgkvKiAwLTI1Nk1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9DT05GSUcJMHg4MDAwMDEwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkweDQ3NDQ0MzIxCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCTB4MDAwMDA4MDAJLyogUDktNDUsbWF5IG5lZWQgdHVuaW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTlRST0wJMHhjMjAwODAwMAkvKiB1bmJ1ZmZlcmVkLG5vIERZTl9QV1IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkweDAwMDAwMDYyCS8qIERMTCxub3JtYWwsc2VxLDQvMi41ICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0lOVEVSVkFMCTB4MDQ1YjAxMDAJLyogYXV0b2NoYXJnZSxubyBvcGVuIHBhZ2UgKi8KIAogLyoKICAqIFNEUkFNIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX0JBU0UJMHhmMDAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX1NJWkUJMAkJLyogTEJDIFNEUkFNIGlzIDAgTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRQkweGYwMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUJMAkJLyogTEJDIFNEUkFNIGlzIDAgTUIgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZTAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAzMk0gKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCTB4ZmUwMDE4MDEJLyogcG9ydCBzaXplIDMyYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZTAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAzMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweGZlMDAxODAxCS8qIHBvcnQgc2l6ZSAzMmJpdCAqLwogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweGZlMDA2ZjY3CS8qIDMyTUIgRmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhmZTAwNmY2NwkvKiAzMk1CIEZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSN1bmRlZiAgQ0ZHX1JBTUJPT1QKKyN1bmRlZiAgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCiAjdW5kZWYgQ09ORklHX0NMT0NLU19JTl9NSFoKIApAQCAtMTU4LDM2ICsxNTgsMzYgQEAKICAqIExvY2FsIEJ1cyBEZWZpbml0aW9ucwogICovCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MQ1JSCQkweDAwMDMwMDA0ICAgIC8qIExCIGNsb2NrIHJhdGlvIHJlZyAqLwotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAgICAgLyogTEIgY29uZmlnIHJlZyAqLwotI2RlZmluZSBDRkdfTEJDX0xTUlQJCTB4MjAwMDAwMDAgICAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLwotI2RlZmluZSBDRkdfTEJDX01SVFBSCQkweDIwMDAwMDAwICAgIC8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xDUlIJCTB4MDAwMzAwMDQgICAgLyogTEIgY2xvY2sgcmF0aW8gcmVnICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJCTB4MDAwMDAwMDAgICAgLyogTEIgY29uZmlnIHJlZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU1JUCQkweDIwMDAwMDAwICAgIC8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJCTB4MjAwMDAwMDAgICAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsKi8KIAogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KSAgICAvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgICAgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoNTEyICogMTAyNCkgICAgLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KSAgICAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjZGVmaW5lIENPTkZJR19DT05TX09OX1NDQwkvKiBkZWZpbmUgaWYgY29uc29sZSBvbiBTQ0MgKi8KICN1bmRlZiAgQ09ORklHX0NPTlNfTk9ORQkvKiBkZWZpbmUgaWYgY29uc29sZSBvbiBzb21ldGhpbmcgZWxzZSAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWCAgICAgICAxICAvKiB3aGljaCBzZXJpYWwgY2hhbm5lbCBmb3IgY29uc29sZSAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmICBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyoKQEAgLTE5Niw0MCArMTk2LDQwIEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCQkvKiBVc2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMgICAgICAgIHsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTICAgICAgICB7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMwMDAKIAogLyoKICAqIEVFUFJPTSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1OAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1OAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAogCiAvKgogICogUlRDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfUlRDX1BDRjg1NjMKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkJMHg1MQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkJMHg1MQogCiAvKiBSYXBpZElPIE1NVSAqLwotI2RlZmluZSBDRkdfUklPX01FTV9CQVNFCTB4YzAwMDAwMDAJLyogYmFzZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19SSU9fTUVNX1BIWVMJQ0ZHX1JJT19NRU1fQkFTRQotI2RlZmluZSBDRkdfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogMTI4TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fQkFTRQkweGMwMDAwMDAwCS8qIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fUEhZUwlDT05GSUdfU1lTX1JJT19NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDEyOE0gKi8KIAogLyoKICAqIEdlbmVyYWwgUENJCiAgKiBBZGRyZXNzZXMgYXJlIG1hcHBlZCAxLTEuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fUEhZUwlDRkdfUENJMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweGUyMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1BIWVMJQ0ZHX1BDSTFfSU9fQkFTRQotI2RlZmluZSBDRkdfUENJMV9JT19TSVpFCTB4MTAwMDAwMAkvKiAxNk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19CQVNFCTB4ZTIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMJQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgxMDAwMDAwCS8qIDE2TSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQogCkBAIC0yNDYsNyArMjQ2LDcgQEAKICNlbmRpZgogCiAjdW5kZWYgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcgIC8qIE1vdG9yb2xhICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcgIC8qIE1vdG9yb2xhICovCiAKICNlbmRpZgkvKiBDT05GSUdfUENJICovCiAKQEAgLTI4NCwyOCArMjg0LDI4IEBACiAgICAqIC0gRnVsbCBkdXBsZXgKICAqLwogI2RlZmluZSBDT05GSUdfRVRIRVJfT05fRkNDMwotI2RlZmluZSBDRkdfQ01YRkNSX01BU0szCShDTVhGQ1JfRkMzIHwgQ01YRkNSX1JGM0NTX01TSyB8IENNWEZDUl9URjNDU19NU0spCi0jZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUzCShDTVhGQ1JfUkYzQ1NfQ0xLMTUgfCBDTVhGQ1JfVEYzQ1NfQ0xLMTQpCi0jZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSkKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSzMJKENNWEZDUl9GQzMgfCBDTVhGQ1JfUkYzQ1NfTVNLIHwgQ01YRkNSX1RGM0NTX01TSykKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUzCShDTVhGQ1JfUkYzQ1NfQ0xLMTUgfCBDTVhGQ1JfVEYzQ1NfQ0xLMTQpCisjZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFKQogCiAvKgogICogRW52aXJvbm1lbnQKICAqLwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICAgI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHg4MDAwMCkKKyAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4ODAwMDApCiAgICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiAyNTZLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KICAgI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2Vsc2UKLSAgI2RlZmluZSBDRkdfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cgKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCiAgICNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0gICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKICAgI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogCiAvKgpAQCAtMzMxLDcgKzMzMSw3IEBACiAgICAgI2RlZmluZSBDT05GSUdfQ01EX1BDSQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogICAgICN1bmRlZiBDT05GSUdfQ01EX0VOVgogICAgICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTM0MiwyMCArMzQyLDIwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0gICAgI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSAgICAjZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworICAgICNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KICNkZWZpbmUgQ09ORklHX0xPT1BXCiAKIC8qCkBAIC0zNjMsNyArMzYzLDcgQEAKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUE1DNDA1LmggYi9pbmNsdWRlL2NvbmZpZ3MvUE1DNDA1LmgKaW5kZXggNGE0MjU3My4uMTJlNjNiNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1BNQzQwNS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9QTUM0MDUuaApAQCAtNTEsNyArNTEsNyBAQAogI2RlZmluZSBDT05GSUdfUFJFQk9PVCAgICAgICAgICAgICAgICAgIC8qIGVuYWJsZSBwcmVib290IHZhcmlhYmxlICAgICAgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI3VuZGVmICBDT05GSUdfSEFTX0VUSDEKQEAgLTk3LDUyICs5Nyw1MiBAQAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCiAjZGVmaW5lIENPTkZJR19SVENfTUMxNDY4MTggICAgICAgICAgICAgLyogRFMxNjg1IGlzIE1DMTQ2ODE4IGNvbXBhdGlibGUqLwotI2RlZmluZSBDRkdfUlRDX1JFR19CQVNFX0FERFIJIDB4RjAwMDA1MDAgLyogUlRDIEJhc2UgQWRkcmVzcyAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlRDX1JFR19CQVNFX0FERFIJIDB4RjAwMDA1MDAgLyogUlRDIEJhc2UgQWRkcmVzcyAgICAgICAgICovCiAKICNkZWZpbmUgQ09ORklHX1NEUkFNX0JBTkswCTEJLyogaW5pdCBvbmJvYXJkIFNEUkFNIGJhbmsgMAkqLwogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI3VuZGVmCUNGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURQkxICAgICAgIC8qIGFkZCBhdXRvY29tcGxldGlvbiBzdXBwb3J0ICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECSAgICA2OTEyMDAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfTE9PUFcgICAgICAgICAgICAxICAgICAgIC8qIGVuYWJsZSBsb29wdyBjb21tYW5kICAgICAgICAgKi8KIApAQCAtMTUwLDcgKzE1MCw3IEBACiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE3MSw1NyArMTcxLDU3IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9CT09UREVMQVkgICAgMCAgICAgICAvKiBlbmFibGUgcGNpIGJvb3RkZWxheSB2YXJpYWJsZSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFICAvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEX05PTk1PTkFSQ0ggMHgwNDA4ICAvKiBQQ0kgRGV2aWNlIElEOiBOb24tTW9uYXJjaCAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRF9NT05BUkNIIDB4MDQwOSAgICAgLyogUENJIERldmljZSBJRDogTW9uYXJjaCAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCBwbWM0MDVfcGNpX3N1YnN5c19kZXZpY2VpZCgpCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUgIC8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEX05PTk1PTkFSQ0ggMHgwNDA4ICAvKiBQQ0kgRGV2aWNlIElEOiBOb24tTW9uYXJjaCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSURfTU9OQVJDSCAweDA0MDkgICAgIC8qIFBDSSBEZXZpY2UgSUQ6IE1vbmFyY2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIHBtYzQwNV9wY2lfc3Vic3lzX2RldmljZWlkKCkKIAotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0xBU1NDT0RFICAgICAgIDB4MGIyMCAgLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLwogCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBICAoYmQtPmJpX21lbXN0YXJ0KSAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TICAofihiZC0+YmlfbWVtc2l6ZSAtIDEpIHwgMSkgLyogbWVtc2l6ZSwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBICAoYmQtPmJpX21lbXN0YXJ0KSAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUyAgKH4oYmQtPmJpX21lbXNpemUgLSAxKSB8IDEpIC8qIG1lbXNpemUsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwogI2lmIDEKLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEJMHhlZjAwMDAwMAkvKiBwb2ludCB0byBpbnRlcm5hbCByZWdzICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweGZmMDAwMDAxICAgICAgLyogMTZNQiwgZW5hYmxlICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4ZWYwMDAwMDAJLyogcG9pbnQgdG8gaW50ZXJuYWwgcmVncyAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMgIDB4ZmYwMDAwMDEgICAgICAvKiAxNk1CLCBlbmFibGUgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KICNlbHNlIC8qIG9sZCBtYXBwaW5nICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBICAweGZmYzAwMDAwICAgICAgLyogcG9pbnQgdG8gZmxhc2ggICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUyAgMHhmZmMwMDAwMSAgICAgIC8qIDRNQiwgZW5hYmxlICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQSAgMHhmZmMwMDAwMCAgICAgIC8qIHBvaW50IHRvIGZsYXNoICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TICAweGZmYzAwMDAxICAgICAgLyogNE1CLCBlbmFibGUgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCiAjZW5kaWYKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHhGRkZDMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfSU5DUkVNRU5UCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UCTB4MDEwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJICAgICAgICAgMSAgICAgICAvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSSAgICAgICAgIDEgICAgICAgLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIgIDEgICAgICAgLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OICAxICAgICAgIC8qIGRvbid0IHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uICAgICAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxICAvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgIDIgICAgICAgLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVCB7IENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSArIENGR19GTEFTSF9JTkNSRU1FTlQgfQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICAgMTI4ICAgICAvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAgMSAgICAgICAvKiBkb24ndCB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbiAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgIC8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAgIDIgICAgICAgLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UIH0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICAxMjggICAgIC8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKIC8qCiAgKiBKRkZTMiBwYXJ0aXRpb25zIC0gc2Vjb25kIGJhbmsgY29udGFpbnMgdS1ib290CkBAIC0yNDksMjQgKzI0OSwyNCBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4ODAwCS8qIDIwNDggYnl0ZXMgbWF5IGJlIHVzZWQgZm9yIGVudiB2YXJzKi8KIAkJCQkgICAvKiB0b3RhbCBzaXplIG9mIGEgQ0FUMjRXQzE2IGlzIDIwNDggYnl0ZXMgKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4RjAwMDA1MDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KIAkJCQkJLyogMTYgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXh0ZXJuYWwgQnVzIENvbnRyb2xsZXIgKEVCQykgU2V0dXAKQEAgLTI3OCw2MyArMjc4LDYzIEBACiAjZGVmaW5lIE5WUkFNX0JBICAgICAgICAweEYwMjAwMDAwICAgICAgICAgIC8qIE5WUkFNIEJhc2UgQWRkcmVzcyAgICAgICAgICAgICAgICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCUZMQVNIMF9CQSB8IDB4OUEwMDAgLyogQkFTPTB4RkYwLEJTPTE2TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUglGTEFTSDBfQkEgfCAweDlBMDAwIC8qIEJBUz0weEZGMCxCUz0xNk1CLEJVPVIvVyxCVz0xNmJpdCovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKEZsYXNoIEJhbmsgMSkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMUNSCUZMQVNIMV9CQSB8IDB4OUEwMDAgLyogQkFTPTB4RkUwLEJTPTE2TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUglGTEFTSDFfQkEgfCAweDlBMDAwIC8qIEJBUz0weEZFMCxCUz0xNk1CLEJVPVIvVyxCVz0xNmJpdCovCiAKIC8qIE1lbW9yeSBCYW5rIDIgKENBTjAsIDEsIFJUQykgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJMHgwMzAwMDQ0MCAgIC8qIFRXVD01LFRIPTIsQ1NOPTAsT0VOPTAsV0JOPTAsV0JGPTAgICAgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSCUNBTl9CQSB8IDB4MTgwMDAgICAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkweDAzMDAwNDQwICAgLyogVFdUPTUsVEg9MixDU049MCxPRU49MCxXQk49MCxXQkY9MCAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCUNBTl9CQSB8IDB4MTgwMDAgICAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAzIC0+IHVudXNlZCAqLwogCiAvKiBNZW1vcnkgQmFuayA0IChOVlJBTSkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAJMHgwMzAwMDQ0MCAgIC8qIFRXVD01LFRIPTIsQ1NOPTAsT0VOPTAsV0JOPTAsV0JGPTAgICAgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCNENSCU5WUkFNX0JBIHwgMHgxODAwMCAgICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQCTB4MDMwMDA0NDAgICAvKiBUV1Q9NSxUSD0yLENTTj0wLE9FTj0wLFdCTj0wLFdCRj0wICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0Q1IJTlZSQU1fQkEgfCAweDE4MDAwICAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgogICovCi0jZGVmaW5lIENGR19GUEdBX1hDOTVYTAkJMQkgICAgLyogdXNpbmcgWGlsaW54IFhDOTVYTCBDUExECSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTUFYX1NJWkUJMzIqMTAyNAkgICAgLyogMzJrQnl0ZSBpcyBlbm91Z2ggZm9yIENQTEQgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1hDOTVYTAkJMQkgICAgLyogdXNpbmcgWGlsaW54IFhDOTVYTCBDUExECSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFCTMyKjEwMjQJICAgIC8qIDMya0J5dGUgaXMgZW5vdWdoIGZvciBDUExEICAgICovCiAKIC8qIEZQR0EgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEpUQUcgVE1TIHBpbiAocHBjIG91dHB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogSlRBRyBUQ0sgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogSlRBRyBURE8tPlRESSBkYXRhIHBpbiAocHBjIG91dHB1dCkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogdW51c2VkIChwcGMgaW5wdXQpCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORQkJMHgwMDAwODAwMCAgLyogSlRBRyBUREktPlRETyBwaW4gKHBwYyBpbnB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogSlRBRyBUTVMgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogSlRBRyBUQ0sgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEpUQUcgVERPLT5UREkgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9JTklUCQkweDAwMDEwMDAwICAvKiB1bnVzZWQgKHBwYyBpbnB1dCkJICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORQkJMHgwMDAwODAwMCAgLyogSlRBRyBUREktPlRETyBwaW4gKHBwYyBpbnB1dCkgKi8KIAotI2RlZmluZSBDRkdfVlhXT1JLU19NQUNfUFRSCTB4MDAwMDAwMDAJLyogUGFzcyBFdGhlcm5ldCBNQUMgdG8gVnhXb3JrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1ZYV09SS1NfTUFDX1BUUgkweDAwMDAwMDAwCS8qIFBhc3MgRXRoZXJuZXQgTUFDIHRvIFZ4V29ya3MgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogR1BJT3MKICAqLwotI2RlZmluZSBDRkdfTk9OTU9OQVJDSAkJKDB4ODAwMDAwMDAgPj4gMTQpICAgLyogR1BJTzI0ICovCi0jZGVmaW5lIENGR19YRVJFQURZCQkoMHg4MDAwMDAwMCA+PiAxNSkgICAvKiBHUElPMTUgKi8KLSNkZWZpbmUgQ0ZHX0lOVEFfRkFLRQkJKDB4ODAwMDAwMDAgPj4gMTkpICAgLyogR1BJTzE5ICovCi0jZGVmaW5lIENGR19TRUxGX1JTVAkJKDB4ODAwMDAwMDAgPj4gMjEpICAgLyogR1BJTzIxICovCi0jZGVmaW5lIENGR19SRVYxXzIJCSgweDgwMDAwMDAwID4+IDIzKSAgIC8qIEdQSU8yMyAqLworI2RlZmluZSBDT05GSUdfU1lTX05PTk1PTkFSQ0gJCSgweDgwMDAwMDAwID4+IDE0KSAgIC8qIEdQSU8yNCAqLworI2RlZmluZSBDT05GSUdfU1lTX1hFUkVBRFkJCSgweDgwMDAwMDAwID4+IDE1KSAgIC8qIEdQSU8xNSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOVEFfRkFLRQkJKDB4ODAwMDAwMDAgPj4gMTkpICAgLyogR1BJTzE5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0VMRl9SU1QJCSgweDgwMDAwMDAwID4+IDIxKSAgIC8qIEdQSU8yMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFVjFfMgkJKDB4ODAwMDAwMDAgPj4gMjMpICAgLyogR1BJTzIzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwogCiAvKiB1c2Ugb24gY2hpcCBtZW1vcnkgKCBPQ00gKSBmb3IgdGVtcGVyYXJ5IHN0YWNrIHVudGlsIHNkcmFtIGlzIHRlc3RlZCAqLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00JMQorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCTEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUE1DNDQwLmggYi9pbmNsdWRlL2NvbmZpZ3MvUE1DNDQwLmgKaW5kZXggOTYzOTg3ZS4uODUzNDJhNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1BNQzQ0MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9QTUM0NDAuaApAQCAtNTIsNTMgKzUyLDUzIEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMzg0ICAqIDEwMjQpCS8qIFJlc2VydmUgMzg0IGtCIGZvciBNb25pdG9yICAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpICAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMzg0ICAqIDEwMjQpCS8qIFJlc2VydmUgMzg0IGtCIGZvciBNb25pdG9yICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTAyNCAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKSAgKi8KIAogI2RlZmluZSBDT05GSUdfUFJBTQkJMAkvKiB1c2UgcHJhbSB2YXJpYWJsZSB0byBvdmVyd3JpdGUgKi8KIAotI2RlZmluZSBDRkdfQk9PVF9CQVNFX0FERFIJMHhmMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAkvKiBfbXVzdF8gYmUgMCAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmYzAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAgICAgICAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTkFORF9BRERSCQkweGQwMDAwMDAwCS8qIE5BTkQgRmxhc2ggICAgICAgICAgICovCi0jZGVmaW5lIENGR19PQ01fQkFTRQkJMHhlMDAxMDAwMAkvKiBvY20gICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUglDRkdfT0NNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9CQVNFCQkweGUwMDAwMDAwCS8qIEludGVybmFsIFBDSSByZWdzICAgICovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgcGNpIG1lbW9yeSAgICAqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UxCUNGR19QQ0lfTUVNQkFTRSAgKyAweDEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRTIJQ0ZHX1BDSV9NRU1CQVNFMSArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMwlDRkdfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTVNJWkUJCTB4ODAwMDAwMDAJLyogMkdCISAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSCTB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIF9tdXN0XyBiZSAwICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmYzAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0FERFIJCTB4ZDAwMDAwMDAJLyogTkFORCBGbGFzaCAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fQkFTRQkJMHhlMDAxMDAwMAkvKiBvY20gICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJQ09ORklHX1NZU19PQ01fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVNFCQkweGUwMDAwMDAwCS8qIEludGVybmFsIFBDSSByZWdzICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UJCTB4ODAwMDAwMDAJLyogbWFwcGVkIHBjaSBtZW1vcnkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEJQ09ORklHX1NZU19QQ0lfTUVNQkFTRSAgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UyCUNPTkZJR19TWVNfUENJX01FTUJBU0UxICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMwlDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNU0laRQkJMHg4MDAwMDAwMAkvKiAyR0IhICovCiAKIC8qIERvbid0IGNoYW5nZSBlaXRoZXIgb2YgdGhlc2UgKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRQkweGVmNjAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFCTB4ZWY2MDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMgKi8KIAotI2RlZmluZSBDRkdfVVNCMkQwX0JBU0UJCTB4ZTAwMDAxMDAKLSNkZWZpbmUgQ0ZHX1VTQl9ERVZJQ0UJCTB4ZTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1VTQl9IT1NUCQkweGUwMDAwNDAwCi0jZGVmaW5lIENGR19GUEdBX0JBU0UwCQkweGVmMDAwMDAwCS8qIDMyIGJpdCAqLwotI2RlZmluZSBDRkdfRlBHQV9CQVNFMQkJMHhlZjEwMDAwMAkvKiAxNiBiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VU0IyRDBfQkFTRQkJMHhlMDAwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9ERVZJQ0UJCTB4ZTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfSE9TVAkJMHhlMDAwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRTAJCTB4ZWYwMDAwMDAJLyogMzIgYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFMQkJMHhlZjEwMDAwMAkvKiAxNiBiaXQgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogNDQwRVB4LzQ0MEdSeCBoYXZlIDE2S0Igb2YgaW50ZXJuYWwgU1JBTSwgc28gbm8gbmVlZCBmb3IgRC1DYWNoZQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0JBU0UJLyogT0NNICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkoNCA8PCAxMCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMjU2CS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX1BPU1RfV09SRF9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9CQVNFCS8qIE9DTSAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2CS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIFBvcnQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jdW5kZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sKKyN1bmRlZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKICNkZWZpbmUgQ09ORklHX1NFUklBTF9NVUxUSQkxCiAjdW5kZWYgQ09ORklHX1VBUlQxX0NPTlNPTEUJLyogY29uc29sZSBvbiBmcm9udCBwYW5lbCAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQkJCQkJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQkJCQkJCVwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTE5LDI2ICsxMTksMjYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyICAgICAgICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbiAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCS8qIHVzZSBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uICAgICAgICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoICAgICAgICAqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvciAgICAgICAgICAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSgoLUNGR19NT05JVE9SX0xFTiktQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKCgtQ09ORklHX1NZU19NT05JVE9SX0xFTiktQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHgyMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICAgICAqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTE3MCwzNCArMTcwLDM0IEBACiAgKiB0aGUgTkFORCBjb250cm9sbGVyLglzciAtIDIwMDYtMDgtMjUKICAqLwogI2lmIGRlZmluZWQgKENPTkZJR19OQU5EX1VfQk9PVCkKLSNkZWZpbmUgQ0ZHX05BTkRfQk9PVF9TUExfU1JDCTB4ZmZmZmYwMDAJLyogU1BMIGxvY2F0aW9uICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9TSVpFCSg0IDw8IDEwKQkvKiBTUEwgc2l6ZSAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX0JPT1RfU1BMX0RTVAkoQ0ZHX09DTV9CQVNFICsgKDEyIDw8IDEwKSkgLyogQ29weSBTUEwgaGVyZSAgICAqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfRFNUCTB4MDEwMDAwMDAJLyogTG9hZCBOVUIgdG8gdGhpcyBhZGRyICAgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfU1RBUlQJQ0ZHX05BTkRfVV9CT09UX0RTVCAvKiBTdGFydCBOVUIgZnJvbSB0aGlzIGFkZHIgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQk9PVF9TUExfREVMVEEJKENGR19OQU5EX0JPT1RfU1BMX1NSQyAtIENGR19OQU5EX0JPT1RfU1BMX0RTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQwkweGZmZmZmMDAwCS8qIFNQTCBsb2NhdGlvbiAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NJWkUJKDQgPDwgMTApCS8qIFNQTCBzaXplICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX0RTVAkoQ09ORklHX1NZU19PQ01fQkFTRSArICgxMiA8PCAxMCkpIC8qIENvcHkgU1BMIGhlcmUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9EU1QJMHgwMTAwMDAwMAkvKiBMb2FkIE5VQiB0byB0aGlzIGFkZHIgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfU1RBUlQJQ09ORklHX1NZU19OQU5EX1VfQk9PVF9EU1QgLyogU3RhcnQgTlVCIGZyb20gdGhpcyBhZGRyICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9ERUxUQQkoQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQyAtIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9EU1QpCiAKIC8qCiAgKiBEZWZpbmUgdGhlIHBhcnRpdGlvbmluZyBvZiB0aGUgTkFORCBjaGlwIChvbmx5IFJBTSBVLUJvb3QgaXMgbmVlZGVkIGhlcmUpCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX09GRlMJKDE2IDw8IDEwKQkvKiBPZmZzZXQgdG8gUkFNIFUtQm9vdCBpbWFnZSAgICovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9TSVpFCSgzODQgPDwgMTApCS8qIFNpemUgb2YgUkFNIFUtQm9vdCBpbWFnZSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9PRkZTCSgxNiA8PCAxMCkJLyogT2Zmc2V0IHRvIFJBTSBVLUJvb3QgaW1hZ2UgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NJWkUJKDM4NCA8PCAxMCkJLyogU2l6ZSBvZiBSQU0gVS1Cb290IGltYWdlICAgICAqLwogCiAvKgogICogTm93IHRoZSBOQU5EIGNoaXAgaGFzIHRvIGJlIGRlZmluZWQgKG5vIGF1dG9kZXRlY3Rpb24gdXNlZCEpCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUEFHRV9TSVpFCTUxMgkvKiBOQU5EIGNoaXAgcGFnZSBzaXplICAgICAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX0JMT0NLX1NJWkUJKDE2IDw8IDEwKSAvKiBOQU5EIGNoaXAgYmxvY2sgc2l6ZSAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX1BBR0VfQ09VTlQJMzIJLyogTkFORCBjaGlwIHBhZ2UgY291bnQgICAgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9CQURfQkxPQ0tfUE9TCTUJLyogTG9jYXRpb24gb2YgYmFkIGJsb2NrIG1hcmtlciAqLwotI3VuZGVmIENGR19OQU5EXzRfQUREUl9DWUNMRQkJLyogTm8gZm91cnRoIGFkZHIgdXNlZCAoPD0zMk1CKSAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFCTUxMgkvKiBOQU5EIGNoaXAgcGFnZSBzaXplICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFCSgxNiA8PCAxMCkgLyogTkFORCBjaGlwIGJsb2NrIHNpemUgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUEFHRV9DT1VOVAkzMgkvKiBOQU5EIGNoaXAgcGFnZSBjb3VudCAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQURfQkxPQ0tfUE9TCTUJLyogTG9jYXRpb24gb2YgYmFkIGJsb2NrIG1hcmtlciAqLworI3VuZGVmIENPTkZJR19TWVNfTkFORF80X0FERFJfQ1lDTEUJCS8qIE5vIGZvdXJ0aCBhZGRyIHVzZWQgKDw9MzJNQikgKi8KIAotI2RlZmluZSBDRkdfTkFORF9FQ0NTSVpFCTI1NgotI2RlZmluZSBDRkdfTkFORF9FQ0NCWVRFUwkzCi0jZGVmaW5lIENGR19OQU5EX0VDQ1NURVBTCShDRkdfTkFORF9QQUdFX1NJWkUgLyBDRkdfTkFORF9FQ0NTSVpFKQotI2RlZmluZSBDRkdfTkFORF9PT0JTSVpFCTE2Ci0jZGVmaW5lIENGR19OQU5EX0VDQ1RPVEFMCShDRkdfTkFORF9FQ0NCWVRFUyAqIENGR19OQU5EX0VDQ1NURVBTKQotI2RlZmluZSBDRkdfTkFORF9FQ0NQT1MJCXswLCAxLCAyLCAzLCA2LCA3fQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDU0laRQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1NURVBTCShDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFIC8gQ09ORklHX1NZU19OQU5EX0VDQ1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9PT0JTSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NUT1RBTAkoQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTICogQ09ORklHX1NZU19OQU5EX0VDQ1NURVBTKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDUE9TCQl7MCwgMSwgMiwgMywgNiwgN30KICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9OQU5ECkBAIC0yMDUsMTUgKzIwNSwxNSBAQAogICogRm9yIE5BTkQgYm9vdGluZyB0aGUgZW52aXJvbm1lbnQgaXMgZW1iZWRkZWQgaW4gdGhlIFUtQm9vdCBpbWFnZS4gUGxlYXNlIHRha2UKICAqIGxvb2sgYXQgdGhlIGZpbGUgYm9hcmQvYW1jYy9zZXF1b2lhL3UtYm9vdC1uYW5kLmxkcyBmb3IgZGV0YWlscy4KICAqLwotI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCUNGR19OQU5EX0JMT0NLX1NJWkUKLSNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDRkdfTkFORF9VX0JPT1RfT0ZGUyArIENPTkZJR19FTlZfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlDT05GSUdfU1lTX05BTkRfQkxPQ0tfU0laRQorI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENPTkZJR19TWVNfTkFORF9VX0JPT1RfT0ZGUyArIENPTkZJR19FTlZfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECShDT05GSUdfRU5WX09GRlNFVCArIENPTkZJR19FTlZfU0laRSkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBERFIgU0RSQU0KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQllURVNfU0RSQU0JKDI1NikJLyogMjU2TUIgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01CWVRFU19TRFJBTQkoMjU2KQkvKiAyNTZNQiAgICAgICAgICAgICAgICAgICAgICAgICovCiAjaWYgIWRlZmluZWQoQ09ORklHX05BTkRfVV9CT09UKSAmJiAhZGVmaW5lZChDT05GSUdfTkFORF9TUEwpCiAjZGVmaW5lIENPTkZJR19ERFJfREFUQV9FWUUJLyogdXNlIEREUjIgb3B0aW1pemF0aW9uICAgICAgICAqLwogI2VuZGlmCkBAIC0yMjMsMjIgKzIyMywyMiBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgICAgKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCS8qIEkyQyBiaXQtYmFuZ2VkICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogI2RlZmluZSBDT05GSUdfSTJDX0NNRF9UUkVFCTEKICNkZWZpbmUgQ09ORklHX0kyQ19NVUxUSV9CVVMJMQogCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1NAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTQKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwMQogCi0jZGVmaW5lIENGR19FRVBST01fV1JFTgkJCTEKLSNkZWZpbmUgQ0ZHX0kyQ19CT09UX0VFUFJPTV9BRERSCTB4NTIKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fV1JFTgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfQk9PVF9FRVBST01fQUREUgkweDUyCiAKIC8qCiAgKiBzdGFuZGFyZCBkdHQgc2Vuc29yIGNvbmZpZ3VyYXRpb24gLSBib3R0b20gYml0IHdpbGwgZGV0ZXJtaW5lIGxvY2FsIG9yCkBAIC0yNTgsNyArMjU4LDcgQEAKICAqIC0gcmVtb3RlIHRlbXAgc2Vuc29yIGVuYWJsZWQsIG1pbiBzZXQgdG8gMCBkZWcsIG1heCBzZXQgdG8gNzAgZGVnCiAgKi8KICNkZWZpbmUgQ09ORklHX0RUVF9BRE0xMDIxCi0jZGVmaW5lIENGR19EVFRfQURNMTAyMQkJeyB7IDB4NGMsIDB4MDIsIDAsIDEsIDcwLCAwLCAxLCA3MCwgMH0gfQorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9BRE0xMDIxCQl7IHsgMHg0YywgMHgwMiwgMCwgMSwgNzAsIDAsIDEsIDcwLCAwfSB9CiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QJCS8qIGVuYWJsZSBwcmVib290IHZhcmlhYmxlICovCiAKQEAgLTI2NiwxMiArMjY2LDEyIEBACiAKIC8qIFNldHVwIHNvbWUgYm9hcmQgc3BlY2lmaWMgdmFsdWVzIGZvciB0aGUgZGVmYXVsdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KICNkZWZpbmUgQ09ORklHX0hPU1ROQU1FCQlwbWM0NDAKLSNkZWZpbmUgQ0ZHX0JPT1RGSUxFCQkiYm9vdGZpbGU9L3RmdHBib290L3BtYzQ0MC91SW1hZ2VcMCIKLSNkZWZpbmUgQ0ZHX1JPT1RQQVRICQkicm9vdHBhdGg9L29wdC9lbGRrXzQxMC9wcGNfNHh4XDAiCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVEZJTEUJCSJib290ZmlsZT0vdGZ0cGJvb3QvcG1jNDQwL3VJbWFnZVwwIgorI2RlZmluZSBDT05GSUdfU1lTX1JPT1RQQVRICQkicm9vdHBhdGg9L29wdC9lbGRrXzQxMC9wcGNfNHh4XDAiCiAKICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJCQkJXAotCUNGR19CT09URklMRQkJCQkJCQlcCi0JQ0ZHX1JPT1RQQVRICQkJCQkJCVwKKwlDT05GSUdfU1lTX0JPT1RGSUxFCQkJCQkJCVwKKwlDT05GSUdfU1lTX1JPT1RQQVRICQkJCQkJCVwKIAkibmV0ZGV2PWV0aDBcMCIJCQkJCQkJXAogCSJldGhyb3RhdGU9bm9cMCIJCQkJCQlcCiAJIm5mc2FyZ3M9c2V0ZW52IGJvb3RhcmdzIHJvb3Q9L2Rldi9uZnMgcncgIgkJCVwKQEAgLTI5Nyw3ICsyOTcsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTMJLyogYXV0b2Jvb3QgYWZ0ZXIgMyBzZWNvbmRzICAgICAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgICAgICAgICovCiAKICNkZWZpbmUgQ09ORklHX0lCTV9FTUFDNF9WNAkxCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50ICAgICAgICAgICAqLwpAQCAtMzA2LDcgKzMwNiw3IEBACiAjZGVmaW5lIENPTkZJR19QSFlfR0lHRQkJMQkvKiBJbmNsdWRlIEdiRSBzcGVlZC9kdXBsZXggZGV0ZWN0aW9uICovCiAKICNkZWZpbmUgQ09ORklHX0hBU19FVEgwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTMyCS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTMyCS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KIAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX0hBU19FVEgxCQkxCS8qIGFkZCBzdXBwb3J0IGZvciAiZXRoMWFkZHIiICAgKi8KQEAgLTMxNiwxMyArMzE2LDEzIEBACiAvKiBVU0IgKi8KICNkZWZpbmUgQ09ORklHX1VTQl9PSENJX05FVwogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UKLSNkZWZpbmUgQ0ZHX09IQ0lfQkVfQ09OVFJPTExFUgorI2RlZmluZSBDT05GSUdfU1lTX09IQ0lfQkVfQ09OVFJPTExFUgogCi0jZGVmaW5lIENGR19VU0JfT0hDSV9CT0FSRF9JTklUIDEKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX0NQVV9JTklUCTEKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1JFR1NfQkFTRQlDRkdfVVNCX0hPU1QKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkicHBjNDQwIgotI2RlZmluZSBDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMTUKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9CT0FSRF9JTklUIDEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVAkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfUkVHU19CQVNFCUNPTkZJR19TWVNfVVNCX0hPU1QKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJInBwYzQ0MCIKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQogCiAvKiBDb21tZW50IHRoaXMgb3V0IHRvIGVuYWJsZSBVU0IgMS4xIGRldmljZSAqLwogI2RlZmluZSBVU0JfMl8wX0RFVklDRQpAQCAtMzU2LDE2ICszNTYsMTYgQEAKICNkZWZpbmUgQ09ORklHX0NNRF9TRFJBTQogCiAvKiBQT1NUIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9NRU1PUlkgfAlcCi0JCQkJIENGR19QT1NUX0NQVSAgICB8CVwKLQkJCQkgQ0ZHX1BPU1RfVUFSVCAgIHwJXAotCQkJCSBDRkdfUE9TVF9JMkMgICAgfAlcCi0JCQkJIENGR19QT1NUX0NBQ0hFICB8CVwKLQkJCQkgQ0ZHX1BPU1RfRlBVICAgIHwJXAotCQkJCSBDRkdfUE9TVF9FVEhFUiAgfAlcCi0JCQkJIENGR19QT1NUX1NQUikKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfTUVNT1JZIHwJXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ1BVICAgIHwJXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfVUFSVCAgIHwJXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfSTJDICAgIHwJXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ0FDSEUgIHwJXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRlBVICAgIHwJXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRVRIRVIgIHwJXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfU1BSKQogCi0jZGVmaW5lIENGR19QT1NUX1dPUkRfQUREUgkoQ0ZHX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSAweDQpCiAKIC8qIGVzZCBleHBlY3RzIHByYW0gYXQgZW5kIG9mIHBoeXNpY2FsIG1lbW9yeS4KICAqIFNvIG5vIGxvZ2J1ZmZlciBhdCB0aGUgbW9tZW50LgpAQCAtMzczLDMzICszNzMsMzMgQEAKICNpZiAwCiAjZGVmaW5lIENPTkZJR19MT0dCVUZGRVIKICNlbmRpZgotI2RlZmluZSBDRkdfUE9TVF9DQUNIRV9BRERSCTB4MTAwMDAwMDAJLyogZnJlZSB2aXJ0dWFsIGFkZHJlc3MgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9DQUNIRV9BRERSCTB4MTAwMDAwMDAJLyogZnJlZSB2aXJ0dWFsIGFkZHJlc3MgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCS8qIE90aGVyd2lzZSBpdCBjYXRjaGVzIGxvZ2J1ZmZlciBhcyBvdXRwdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgkvKiBPdGhlcndpc2UgaXQgY2F0Y2hlcyBsb2didWZmZXIgYXMgb3V0cHV0ICovCiAKICNkZWZpbmUgQ09ORklHX1NVUFBPUlRfVkZBVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICAgICAgICAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0gICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgICAgICAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkgICAgICovCiAjZGVmaW5lIENPTkZJR19MT09QVwkJMQkvKiBlbmFibGUgbG9vcHcgY29tbWFuZCAgICAgICAgICovCkBAIC00MTksMjcgKzQxOSwyNyBAQAogLyogR2VuZXJhbCBQQ0kgKi8KICNkZWZpbmUgQ09ORklHX1BDSQkJLyogaW5jbHVkZSBwY2kgc3VwcG9ydCAgICAgICAgICAqLwogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJLyogZG8gKG5vdCkgcGNpIHBsdWctYW5kLXBsYXkgICAqLwotI2RlZmluZSBDRkdfUENJX0NBQ0hFX0xJTkVfU0laRQkwCS8qIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggUE5QICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0FDSEVfTElORV9TSVpFCTAJLyogdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBQTlAgICAqLwogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0JBU0UJMHg4MDAwMDAwMCAvKiBQQ0lhZGRyIG1hcHBlZCB0byBDRkdfUENJX01FTUJBU0UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UJMHg4MDAwMDAwMCAvKiBQQ0lhZGRyIG1hcHBlZCB0byBDT05GSUdfU1lTX1BDSV9NRU1CQVNFICovCiAKIC8qIEJvYXJkLXNwZWNpZmljIFBDSSAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdFVF9JTklUCi0jZGVmaW5lIENGR19QQ0lfTUFTVEVSX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQKIAogLyogUENJIGlkZW50aWZpY2F0aW9uICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0lEX05PTk1PTkFSQ0ggMHgwNDQxCS8qIFBDSSBEZXZpY2UgSUQ6IE5vbi1Nb25hcmNoICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0lEX01PTkFSQ0ggMHgwNDQwCS8qIFBDSSBEZXZpY2UgSUQ6IE1vbmFyY2ggKi8KLSNkZWZpbmUgQ0ZHX1BDSV9DTEFTU0NPREVfTk9OTU9OQVJDSAlQQ0lfQ0xBU1NfUFJPQ0VTU09SX1BPV0VSUEMKLSNkZWZpbmUgQ0ZHX1BDSV9DTEFTU0NPREVfTU9OQVJDSAlQQ0lfQ0xBU1NfQlJJREdFX0hPU1QKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19JRF9OT05NT05BUkNIIDB4MDQ0MQkvKiBQQ0kgRGV2aWNlIElEOiBOb24tTW9uYXJjaCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSURfTU9OQVJDSCAweDA0NDAJLyogUENJIERldmljZSBJRDogTW9uYXJjaCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREVfTk9OTU9OQVJDSAlQQ0lfQ0xBU1NfUFJPQ0VTU09SX1BPV0VSUEMKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0xBU1NDT0RFX01PTkFSQ0gJUENJX0NMQVNTX0JSSURHRV9IT1NUCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGUEdBIHN0dWZmCkBAIC00NTgsNDIgKzQ1OCw0MiBAQAogICogT24gU2VxdW9pYSBDUzAgYW5kIENTMyBhcmUgc3dpdGNoZWQgd2hlbiBjb25maWd1cmluZyBmb3IgTkFORCBib290aW5nCiAgKi8KICNpZiAhZGVmaW5lZChDT05GSUdfTkFORF9VX0JPT1QpICYmICFkZWZpbmVkKENPTkZJR19OQU5EX1NQTCkKLSNkZWZpbmUgQ0ZHX05BTkRfQ1MJCTIJLyogTkFORCBjaGlwIGNvbm5lY3RlZCB0byBDU3ggICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ1MJCTIJLyogTkFORCBjaGlwIGNvbm5lY3RlZCB0byBDU3ggICAqLwogCiAvKiBNZW1vcnkgQmFuayAwIChOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uICovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4MDMwMTcyMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJKENGR19GTEFTSF9CQVNFIHwgMHhkYTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDMwMTcyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCAweGRhMDAwKQogCiAvKiBNZW1vcnkgQmFuayAyIChOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbiAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAxODAwM2MwCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCShDRkdfTkFORF9BRERSIHwgMHgxYzAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDE4MDAzYzAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCShDT05GSUdfU1lTX05BTkRfQUREUiB8IDB4MWMwMDApCiAjZWxzZQotI2RlZmluZSBDRkdfTkFORF9DUwkJMAkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DUwkJMAkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeCAgICovCiAvKiBNZW1vcnkgQmFuayAyIChOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uICovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDMwMTcyMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJKENGR19GTEFTSF9CQVNFIHwgMHhkYTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDMwMTcyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCAweGRhMDAwKQogCiAvKiBNZW1vcnkgQmFuayAwIChOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbiAqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDAxODAwM2MwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShDRkdfTkFORF9BRERSIHwgMHgxYzAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDE4MDAzYzAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShDT05GSUdfU1lTX05BTkRfQUREUiB8IDB4MWMwMDApCiAjZW5kaWYKIAogLyogTWVtb3J5IEJhbmsgNCAoRlBHQSAvIDMyQml0KSBpbml0aWFsaXphdGlvbiAqLwotI2RlZmluZSBDRkdfRUJDX1BCNEFQCQkweDAzODQwZjQwCS8qIEJNRT0wLFRXVD03LENTTj0xLFRIPTcsUkU9MSxTT1I9MCxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCNENSCQkoQ0ZHX0ZQR0FfQkFTRTAgfCAweDFjMDAwKQkvKiBCUz0xTSxCVT1SL1csQlc9MzJiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJCTB4MDM4NDBmNDAJLyogQk1FPTAsVFdUPTcsQ1NOPTEsVEg9NyxSRT0xLFNPUj0wLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNENSCQkoQ09ORklHX1NZU19GUEdBX0JBU0UwIHwgMHgxYzAwMCkJLyogQlM9MU0sQlU9Ui9XLEJXPTMyYml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDUgKEZQR0EgLyAxNkJpdCkgaW5pdGlhbGl6YXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVBUAkJMHgwMzg0MGY0MAkvKiBCTUU9MCxUV1Q9MyxDU049MSxUSD0wLFJFPTEsU09SPTAsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVDUgkJKENGR19GUEdBX0JBU0UxIHwgMHgxYTAwMCkJLyogQlM9MU0sQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUFQCQkweDAzODQwZjQwCS8qIEJNRT0wLFRXVD0zLENTTj0xLFRIPTAsUkU9MSxTT1I9MCxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVDUgkJKENPTkZJR19TWVNfRlBHQV9CQVNFMSB8IDB4MWEwMDApCS8qIEJTPTFNLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOQU5EIEZMQVNICiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJMQotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkoQ0ZHX05BTkRfQUREUiArIENGR19OQU5EX0NTKQotI2RlZmluZSBDRkdfTkFORF9TRUxFQ1RfREVWSUNFCTEgLyogbmFuZCBkcml2ZXIgc3VwcG9ydHMgbXV0aXBsLiBjaGlwcyAqLwotI2RlZmluZSBDRkdfTkFORF9RVUlFVF9URVNUCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCShDT05GSUdfU1lTX05BTkRfQUREUiArIENPTkZJR19TWVNfTkFORF9DUykKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NFTEVDVF9ERVZJQ0UJMSAvKiBuYW5kIGRyaXZlciBzdXBwb3J0cyBtdXRpcGwuIGNoaXBzICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9RVUlFVF9URVNUCTEKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUE42Mi5oIGIvaW5jbHVkZS9jb25maWdzL1BONjIuaAppbmRleCAxOTJjYmQ0Li4yYzA3NzRmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUE42Mi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9QTjYyLmgKQEAgLTk5LDE0ICs5OSwxNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCTEJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJMQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfUFJBTQkJMTAyNAkJLyogcmVzZXJ2ZSAxIE1CIHByb3RlY3RlZCBSQU0JKi8KIApAQCAtMTM5LDUwICsxMzksNTAgQEAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFCTB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFCTB4MTAwMDAwMDAKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmZjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmZjAwMTAwCiAKLSN1bmRlZglDRkdfUkFNQk9PVAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MDAwMzAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyN1bmRlZglDT05GSUdfU1lTX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKIAotLyojZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgIDI1NiovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAorLyojZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAyNTYqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIAotI2RlZmluZSBDRkdfTk9fRkxBU0gJCTEJCS8qIFRoZXJlIGlzIG5vIEZMQVNIIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkxCQkvKiBUaGVyZSBpcyBubyBGTEFTSCBtZW1vcnkJKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQkJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5CSovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDAwMDA0MDAwCS8qIE9mZnNldCBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDAwMDAyMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAxZjAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDFmMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KIAogLyoKICAqIFNlcmlhbCBwb3J0IGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkxODQzMjAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCTE4NDMyMDAKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCTB4ZmY4MDAwMDgKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkweGZmODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCTB4ZmY4MDAwMDgKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJMHhmZjgwMDAwMAogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE5MywzMCArMTkzLDMwIEBACiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEgIDMzMzMzMzMzCS8qIGV4dGVybmFsIGZyZXF1ZW5jeSB0byBwbGwgKi8KICNkZWZpbmUgQ09ORklHX1BMTF9QQ0lfVE9fTUVNX01VTFRJUExJRVIgIDMKIAotI2RlZmluZSBDRkdfRVVNQl9BRERSCQkweEZDRTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVVNQl9BRERSCQkweEZDRTAwMDAwCiAKIC8qIE1DQ1IxICovCi0jZGVmaW5lIENGR19ST01OQUwJCTMJLyogcm9tL2ZsYXNoIG5leHQgYWNjZXNzIHRpbWUJCSovCi0jZGVmaW5lIENGR19ST01GQUwJCTcJLyogcm9tL2ZsYXNoIGFjY2VzcyB0aW1lCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTAkJMwkvKiByb20vZmxhc2ggbmV4dCBhY2Nlc3MgdGltZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ST01GQUwJCTcJLyogcm9tL2ZsYXNoIGFjY2VzcyB0aW1lCQkqLwogCiAvKiBNQ0NSMiAqLwotI2RlZmluZSBDRkdfQVNSSVNFCQk2CS8qIEFTUklTRSBpbiBjbG9ja3MJCQkqLwotI2RlZmluZSBDRkdfQVNGQUxMCQkxMgkvKiBBU0ZBTEwgaW4gY2xvY2tzCQkJKi8KLSNkZWZpbmUgQ0ZHX1JFRklOVAkJNTYwMAkvKiBSRUZJTlQgaW4gY2xvY2tzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BU1JJU0UJCTYJLyogQVNSSVNFIGluIGNsb2NrcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVNGQUxMCQkxMgkvKiBBU0ZBTEwgaW4gY2xvY2tzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUZJTlQJCTU2MDAJLyogUkVGSU5UIGluIGNsb2NrcwkJCSovCiAKIC8qIE1DQ1IzICovCi0jZGVmaW5lIENGR19CU1RPUFJFCQkweDNjZgkvKiBCdXJzdCBUbyBQcmVjaGFyZ2UJCQkqLwotI2RlZmluZSBDRkdfUkVGUkVDCQkyCS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCi0jZGVmaW5lIENGR19SRExBVAkJMwkvKiBkYXRhIGxhdGVuY3kgZnJvbSByZWFkIGNvbW1hbmQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CU1RPUFJFCQkweDNjZgkvKiBCdXJzdCBUbyBQcmVjaGFyZ2UJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwkJMgkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JETEFUCQkzCS8qIGRhdGEgbGF0ZW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLwogCiAvKiBNQ0NSNCAqLwotI2RlZmluZSBDRkdfUFJFVE9BQ1QJCTEJLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsCSovCi0jZGVmaW5lIENGR19BQ1RUT1BSRQkJMwkvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVE9SVwkJMgkvKiBBY3RpdmF0ZSB0byBSL1cJCQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX0NBU19MQVQJMgkvKiBTRE1PREUgQ0FTIGxhdGVuY3kJCQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAJCTAJLyogU0RNT0RFIFdyYXAgdHlwZQkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfQlVSU1RMRU4JMgkvKiBTRE1PREUgQnVyc3QgbGVuZ3RoIDI9NCwgMz04CQkqLwotI2RlZmluZSBDRkdfUkVHSVNURVJEX1RZUEVfQlVGRkVSICAgMQorI2RlZmluZSBDT05GSUdfU1lTX1BSRVRPQUNUCQkxCS8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVFRPUFJFCQkzCS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVE9SVwkJMgkvKiBBY3RpdmF0ZSB0byBSL1cJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUCTIJLyogU0RNT0RFIENBUyBsYXRlbmN5CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgV3JhcCB0eXBlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4JMgkvKiBTRE1PREUgQnVyc3QgbGVuZ3RoIDI9NCwgMz04CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAgIDEKIAogLyogTWVtb3J5IGJhbmsgc2V0dGluZ3M6CiAgKgpAQCAtMjI1LDgwICsyMjUsODAgQEAKICAqIGJpdHMgd2lsbCBiZSBzZXQgdG8gMHgwMDAwMCBmb3IgYSBzdGFydCBhZGRyZXNzLCBvciAweGZmZmZmIGZvciBhbgogICogZW5kIGFkZHJlc3MKICAqLwotI2RlZmluZSBDRkdfQkFOSzBfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkswX0VORAkJKENGR19NQVhfUkFNX1NJWkUgLSAxKQotI2RlZmluZSBDRkdfQkFOSzBfRU5BQkxFCTEKLSNkZWZpbmUgQ0ZHX0JBTksxX1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMV9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksxX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LMl9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzJfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzNfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkszX0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzNfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks0X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNV9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzZfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks3X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkQJCShDT05GSUdfU1lTX01BWF9SQU1fU0laRSAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VOQUJMRQkwCiAKIC8qCiAgKiBNZW1vcnkgYmFuayBlbmFibGUgYml0bWFzaywgc3BlY2lmeWluZyB3aGljaCBvZiB0aGUgYmFua3MgZGVmaW5lZCBhYm92ZQogICogYXJlIGFjdHVhbGx5IHByZXNlbnQuIE1TQiBpcyBmb3IgYmFuayAjNywgTFNCIGlzIGZvciBiYW5rICMwLgogICovCi0jZGVmaW5lIENGR19CQU5LX0VOQUJMRQkJMHgwMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTktfRU5BQkxFCQkweDAxCiAKLSNkZWZpbmUgQ0ZHX09EQ1IJCTB4ZmYJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzLAkqLworI2RlZmluZSBDT05GSUdfU1lTX09EQ1IJCTB4ZmYJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzLAkqLwogCQkJCQkvKiBzZWUgODI0MCBib29rIGZvciBiaXQgZGVmaW5pdGlvbnMJKi8KLSNkZWZpbmUgQ0ZHX1BHTUFYCQkweDMyCS8qIGhvdyBsb25nIHRoZSA4MjQwIHJldGFpbnMgdGhlCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KIAkJCQkJLyogY3VycmVudGx5IGFjY2Vzc2VkIHBhZ2UgaW4gbWVtb3J5CSovCiAJCQkJCS8qIHNlZSA4MjQwIGJvb2sgZm9yIGRldGFpbHMJCSovCiAKIC8qIFNEUkFNIDAgLSAyNTZNQiAqLwotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUMUwJKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIFBDSSBtZW1vcnkgc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVQkoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogQ29uZmlnIGFkZHJzLCBldGMgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQzTAkoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfREJBVDBMCUNGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVQlDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKLSNkZWZpbmUgQ0ZHX0RCQVQyTAlDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUJQ0ZHX0lCQVQyVQotI2RlZmluZSBDRkdfREJBVDNMCUNGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVQlDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCUNPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCUNPTkZJR19TWVNfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMCUNPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVCUNPTkZJR19TWVNfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCUNPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCUNPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMCUNPTkZJR19TWVNfSUJBVDNMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVCUNPTkZJR19TWVNfSUJBVDNVCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI0MCBDUFUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjQwIENQVQkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1BQQ2hhbWVsZW9uRVZCLmggYi9pbmNsdWRlL2NvbmZpZ3MvUFBDaGFtZWxlb25FVkIuaAppbmRleCBkOWQ4NzA2Li5lNjZmOGVmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUFBDaGFtZWxlb25FVkIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvUFBDaGFtZWxlb25FVkIuaApAQCAtNjMsNyArNjMsNyBAQAogI2RlZmluZSBfX0RJU0FCTEVfTUFDSElORV9FWENFUFRJT05fXwogCiAjaWZkZWYgX19ERUJVR19TVEFSVF9GUk9NX1NSQU1fXwotI2RlZmluZSBDRkdfRFVNTVlfRkxBU0hfU0laRQkJMTAyNCoxMDI0KjQKKyNkZWZpbmUgQ09ORklHX1NZU19EVU1NWV9GTEFTSF9TSVpFCQkxMDI0KjEwMjQqNAogI2VuZGlmCiAKIC8qCkBAIC05OSw3ICs5OSw3IEBACiAjZGVmaW5lIENPTkZJR19FVEgxQUREUiAwMDo1MDpjMjoxZTphZjpmZAogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZiBDT05GSUdfRVhUX1BIWQogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKQEAgLTE0OCw4ICsxNDgsOCBAQAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCiAjZGVmaW5lIENPTkZJR19SVENfTTQxVDExCTEJLyogdXNlcyBhIE00MVQwMCBSVEMJCSovCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OAotI2RlZmluZSBDRkdfTTQxVDExX0JBU0VfWUVBUgkxOTAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NjgKKyNkZWZpbmUgQ09ORklHX1NZU19NNDFUMTFfQkFTRV9ZRUFSCTE5MDAKIAogLyoKICAqIFNEUkFNIGNvbmZpZ3VyYXRpb24gKHBsZWFzZSBzZWUgY3B1L3BwYy9zZHJhbS5bY2hdKQpAQCAtMTU3LDUyICsxNTcsNTIgQEAKICNkZWZpbmUgQ09ORklHX1NEUkFNX0JBTkswCTEJLyogaW5pdCBvbmJvYXJkIFNEUkFNIGJhbmsgMAkqLwogCiAvKiBTRFJBTSB0aW1pbmdzIHVzZWQgaW4gZGF0YXNoZWV0ICovCi0jZGVmaW5lIENGR19TRFJBTV9DTCAgICAgICAgICAgIDIKLSNkZWZpbmUgQ0ZHX1NEUkFNX3RSUCAgICAgICAgICAgMjAKLSNkZWZpbmUgQ0ZHX1NEUkFNX3RSQyAgICAgICAgICAgNjUKLSNkZWZpbmUgQ0ZHX1NEUkFNX3RSQ0QgICAgICAgICAgMjAKLSN1bmRlZiAgQ0ZHX1NEUkFNX3RSRkMKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DTCAgICAgICAgICAgIDIKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV90UlAgICAgICAgICAgIDIwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fdFJDICAgICAgICAgICA2NQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX3RSQ0QgICAgICAgICAgMjAKKyN1bmRlZiAgQ09ORklHX1NZU19TRFJBTV90UkZDCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkJLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkJNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCQkvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJCTY5MTIwMAogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKQEAgLTIxNywzMyArMjE3LDMzIEBACiAgKi8KICNkZWZpbmUgUFBDSEFNRUxPTl9OQU5EX1RJTUVSX0hBQ0sKIAotI2RlZmluZSBDRkdfTkFORDBfQkFTRSAweEZGNDAwMDAwCi0jZGVmaW5lIENGR19OQU5EMV9CQVNFIDB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRV9MSVNUCXsgQ0ZHX05BTkQwX0JBU0UsIENGR19OQU5EMV9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMF9CQVNFIDB4RkY0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMV9CQVNFIDB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0VfTElTVAl7IENPTkZJR19TWVNfTkFORDBfQkFTRSwgQ09ORklHX1NZU19OQU5EMV9CQVNFIH0KICNkZWZpbmUgTkFORF9CSUdfREVMQVlfVVMJMjUKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkyCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTIJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KIAogI2RlZmluZSBOQU5EX01BWF9DSElQUyAxCiAKLSNkZWZpbmUgQ0ZHX05BTkQwX0NFICAoMHg4MDAwMDAwMCA+PiAxKQkgLyogb3VyIENFIGlzIEdQSU8xICovCi0jZGVmaW5lIENGR19OQU5EMF9SRFkgKDB4ODAwMDAwMDAgPj4gNCkJIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KLSNkZWZpbmUgQ0ZHX05BTkQwX0NMRSAoMHg4MDAwMDAwMCA+PiAyKQkgLyogb3VyIENMRSBpcyBHUElPMiAqLwotI2RlZmluZSBDRkdfTkFORDBfQUxFICgweDgwMDAwMDAwID4+IDMpCSAvKiBvdXIgQUxFIGlzIEdQSU8zICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDBfQ0UgICgweDgwMDAwMDAwID4+IDEpCSAvKiBvdXIgQ0UgaXMgR1BJTzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMF9SRFkgKDB4ODAwMDAwMDAgPj4gNCkJIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMF9DTEUgKDB4ODAwMDAwMDAgPj4gMikJIC8qIG91ciBDTEUgaXMgR1BJTzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMF9BTEUgKDB4ODAwMDAwMDAgPj4gMykJIC8qIG91ciBBTEUgaXMgR1BJTzMgKi8KIAotI2RlZmluZSBDRkdfTkFORDFfQ0UgICgweDgwMDAwMDAwID4+IDE0KSAgLyogb3VyIENFIGlzIEdQSU8xNCAqLwotI2RlZmluZSBDRkdfTkFORDFfUkRZICgweDgwMDAwMDAwID4+IDMxKSAgLyogb3VyIFJEWSBpcyBHUElPMzEgKi8KLSNkZWZpbmUgQ0ZHX05BTkQxX0NMRSAoMHg4MDAwMDAwMCA+PiAxNSkgIC8qIG91ciBDTEUgaXMgR1BJTzE1ICovCi0jZGVmaW5lIENGR19OQU5EMV9BTEUgKDB4ODAwMDAwMDAgPj4gMTYpICAvKiBvdXIgQUxFIGlzIEdQSU8xNiAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQxX0NFICAoMHg4MDAwMDAwMCA+PiAxNCkgIC8qIG91ciBDRSBpcyBHUElPMTQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMV9SRFkgKDB4ODAwMDAwMDAgPj4gMzEpICAvKiBvdXIgUkRZIGlzIEdQSU8zMSAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQxX0NMRSAoMHg4MDAwMDAwMCA+PiAxNSkgIC8qIG91ciBDTEUgaXMgR1BJTzE1ICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDFfQUxFICgweDgwMDAwMDAwID4+IDE2KSAgLyogb3VyIEFMRSBpcyBHUElPMTYgKi8KIAogI2RlZmluZSBNQUNST19OQU5EX0RJU0FCTEVfQ0UobmFuZHB0cikgZG8gXAogeyBcCiAJc3dpdGNoKCh1bnNpZ25lZCBsb25nKW5hbmRwdHIpIFwKIAl7IFwKLQkgICAgY2FzZSBDRkdfTkFORDBfQkFTRTogXAotCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDRkdfTkFORDBfQ0UpOyBcCisJICAgIGNhc2UgQ09ORklHX1NZU19OQU5EMF9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfTkFORDBfQ0UpOyBcCiAJCWJyZWFrOyBcCi0JICAgIGNhc2UgQ0ZHX05BTkQxX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX05BTkQxX0NFKTsgXAorCSAgICBjYXNlIENPTkZJR19TWVNfTkFORDFfQkFTRTogXAorCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkQxX0NFKTsgXAogCQlicmVhazsgXAogCX0gXAogfSB3aGlsZSgwKQpAQCAtMjUyLDExICsyNTIsMTEgQEAKIHsgXAogCXN3aXRjaCgodW5zaWduZWQgbG9uZyluYW5kcHRyKSBcCiAJeyBcCi0JICAgIGNhc2UgQ0ZHX05BTkQwX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNGR19OQU5EMF9DRSk7IFwKKwkgICAgY2FzZSBDT05GSUdfU1lTX05BTkQwX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfTkFORDBfQ0UpOyBcCiAJCWJyZWFrOyBcCi0JICAgIGNhc2UgQ0ZHX05BTkQxX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNGR19OQU5EMV9DRSk7IFwKKwkgICAgY2FzZSBDT05GSUdfU1lTX05BTkQxX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfTkFORDFfQ0UpOyBcCiAJCWJyZWFrOyBcCiAJfSBcCiB9IHdoaWxlKDApCkBAIC0yNjUsMTEgKzI2NSwxMSBAQAogeyBcCiAJc3dpdGNoKCh1bnNpZ25lZCBsb25nKW5hbmRwdHIpIFwKIAl7IFwKLQkgICAgY2FzZSBDRkdfTkFORDBfQkFTRTogXAotCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q0ZHX05BTkQwX0FMRSk7IFwKKwkgICAgY2FzZSBDT05GSUdfU1lTX05BTkQwX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfTkFORDBfQUxFKTsgXAogCQlicmVhazsgXAotCSAgICBjYXNlIENGR19OQU5EMV9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfTkFORDFfQUxFKTsgXAorCSAgICBjYXNlIENPTkZJR19TWVNfTkFORDFfQkFTRTogXAorCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q09ORklHX1NZU19OQU5EMV9BTEUpOyBcCiAJCWJyZWFrOyBcCiAJfSBcCiB9IHdoaWxlKDApCkBAIC0yNzgsMTEgKzI3OCwxMSBAQAogeyBcCiAJc3dpdGNoKCh1bnNpZ25lZCBsb25nKW5hbmRwdHIpIFwKIAl7IFwKLQkgICAgY2FzZSBDRkdfTkFORDBfQkFTRTogXAotCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDRkdfTkFORDBfQUxFKTsgXAorCSAgICBjYXNlIENPTkZJR19TWVNfTkFORDBfQkFTRTogXAorCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkQwX0FMRSk7IFwKIAkJYnJlYWs7IFwKLQkgICAgY2FzZSBDRkdfTkFORDFfQkFTRTogXAotCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDRkdfTkFORDFfQUxFKTsgXAorCSAgICBjYXNlIENPTkZJR19TWVNfTkFORDFfQkFTRTogXAorCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkQxX0FMRSk7IFwKIAkJYnJlYWs7IFwKIAl9IFwKIH0gd2hpbGUoMCkKQEAgLTI5MSwyMiArMjkxLDIyIEBACiB7IFwKIAlzd2l0Y2goKHVuc2lnbmVkIGxvbmcpbmFuZHB0cikgXAogCXsgXAotCSAgICBjYXNlIENGR19OQU5EMF9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfTkFORDBfQ0xFKTsgXAorCSAgICBjYXNlIENPTkZJR19TWVNfTkFORDBfQkFTRTogXAorCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q09ORklHX1NZU19OQU5EMF9DTEUpOyBcCiAJCWJyZWFrOyBcCi0JICAgIGNhc2UgQ0ZHX05BTkQxX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNGR19OQU5EMV9DTEUpOyBcCisJICAgIGNhc2UgQ09ORklHX1NZU19OQU5EMV9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX05BTkQxX0NMRSk7IFwKIAkJYnJlYWs7IFwKIAl9IFwKIH0gd2hpbGUoMCkKIAogI2RlZmluZSBNQUNST19OQU5EX0NUTF9TRVRDTEUobmFuZHB0cikgZG8geyBcCiAJc3dpdGNoKCh1bnNpZ25lZCBsb25nKW5hbmRwdHIpIHsgXAotCWNhc2UgQ0ZHX05BTkQwX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX05BTkQwX0NMRSk7IFwKKwljYXNlIENPTkZJR19TWVNfTkFORDBfQkFTRTogXAorCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkQwX0NMRSk7IFwKIAkJYnJlYWs7IFwKLQljYXNlIENGR19OQU5EMV9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19OQU5EMV9DTEUpOyBcCisJY2FzZSBDT05GSUdfU1lTX05BTkQxX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19OQU5EMV9DTEUpOyBcCiAJCWJyZWFrOyBcCiAJfSBcCiB9IHdoaWxlKDApCkBAIC0zNTIsNjUgKzM1Miw2NSBAQAogCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBwcmludCBwY2kgZGV2aWNlcyBAIHN0YXJ0dXAJKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwMTQJLyogUENJIFZlbmRvciBJRDogSUJNCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDAwMAkvKiBQQ0kgRGV2aWNlIElEOiAtLS0JKi8KLSNkZWZpbmUgQ0ZHX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTAxNAkvKiBQQ0kgVmVuZG9yIElEOiBJQk0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDAwMAkvKiBQQ0kgRGV2aWNlIElEOiAtLS0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0xBU1NDT0RFCTB4MGIyMAkvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMJMHhmYzAwMDAwMQkvKiA2NE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4ZmZjMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCTB4ZmZjMDAwMDEJLyogNE1CLCBlbmFibGUJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4ZmZjMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAogCiAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogLyoKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQogKi8KIAogLyogUmVzZXJ2ZSAzMjAga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGQjAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgzMjAgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgzMjAgKiAxMDI0KQogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRW52aXJvbm1lbnQgVmFyaWFibGUgc2V0dXAKQEAgLTQyOSwyOSArNDI5LDI5IEBACiAjZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJMHhGRkZGQTAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECTB4MjAwMAogCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCiAjZW5kaWYJLyogRU5WSVJPTk1FTlRfSU5fRUVQUk9NICovCiAKIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4RjAwMDA1MDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0vKiNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ki8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLworLyojZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTQ2NiwyMSArNDY2LDIxIEBACiAgKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwLCBOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoRXh0ZXJuYWwgU1JBTSkgaW5pdGlhbGl6YXRpb24JCQkJCSovCiAvKiBTaW5jZSB0aGlzIG11c3QgcmVwbGFjZSBOT1IgRmxhc2gsIHdlIHVzZSB0aGUgc2FtZSBzZXR0aW5ncyBmb3IgQ1MwCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4RkY4NUEwMDAgIC8qIEJBUz0weEZGOCxCUz00TUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4RkY4NUEwMDAgIC8qIEJBUz0weEZGOCxCUz00TUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoRmxhc2ggQmFuayAxLCBOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGRjQ1ODAwMCAgLyogQkFTPTB4RkY0LEJTPTRNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJMHhGRjQ1ODAwMCAgLyogQkFTPTB4RkY0LEJTPTRNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAzIChGbGFzaCBCYW5rIDIsIE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkweEZGMDU4MDAwICAvKiBCQVM9MHhGRjAsQlM9NE1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkweEZGMDU4MDAwICAvKiBCQVM9MHhGRjAsQlM9NE1CLEJVPVIvVyxCVz04Yml0CSovCiAKICNpZmRlZiBDT05GSUdfUFBDSEFNRUxFT05fU01JNzEyCiAvKgpAQCAtNDk0LDY2ICs0OTQsNjYgQEAKICNkZWZpbmUgQ09ORklHX0NPTlNPTEVfRVhUUkFfSU5GTwogI2RlZmluZSBDT05GSUdfVkdBX0FTX1NJTkdMRV9ERVZJQ0UKIC8qIFRoaXMgaXMgdGhlIGJhc2UgYWRkcmVzcyAob24gNDA1RVAtc2lkZSkgdXNlZCB0byBnZW5lcmF0ZSBJL08gYWNjZXNzZXMgb24gUENJIGJ1cyAqLwotI2RlZmluZSBDRkdfSVNBX0lPIDB4RTgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU8gMHhFODAwMDAwMAogLyogc2VlIGFsc28gZHJpdmVycy92aWRlby92aWRlb21vZGVzLmMgKi8KLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfVklERU9fTU9ERSAweDMwMworI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfVklERU9fTU9ERSAweDMwMwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZQR0Egc3R1ZmYKICAqLwogLyogRlBHQSBpbnRlcm5hbCByZWdzICovCi0jZGVmaW5lIENGR19GUEdBX01PREUJCTB4MDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTCQkweDAyCi0jZGVmaW5lIENGR19GUEdBX1RTCQkweDA0Ci0jZGVmaW5lIENGR19GUEdBX1RTX0xPVwkJMHgwNgotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAwCTB4MTAKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMF9MT1cJMHgxMgotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAxCTB4MTQKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMV9MT1cJMHgxNgotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAyCTB4MTgKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMl9MT1cJMHgxYQotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAzCTB4MWMKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQM19MT1cJMHgxZQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERQkJMHgwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTCQkweDAyCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UUwkJMHgwNAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfTE9XCQkweDA2CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAwCTB4MTAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDBfTE9XCTB4MTIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDEJMHgxNAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMV9MT1cJMHgxNgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMgkweDE4CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAyX0xPVwkweDFhCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAzCTB4MWMKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDNfTE9XCTB4MWUKIAogLyogRlBHQSBNb2RlIFJlZyAqLwotI2RlZmluZSBDRkdfRlBHQV9NT0RFX0NGX1JFU0VUCTB4MDAwMQotI2RlZmluZSBDRkdfRlBHQV9NT0RFX1RTX0lSUV9FTkFCTEUgMHgwMTAwCi0jZGVmaW5lIENGR19GUEdBX01PREVfVFNfSVJRX0NMRUFSICAweDEwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9UU19DTEVBUgkweDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfQ0ZfUkVTRVQJMHgwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFX1RTX0lSUV9FTkFCTEUgMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFX1RTX0lSUV9DTEVBUiAgMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFX1RTX0NMRUFSCTB4MjAwMAogCiAvKiBGUEdBIFN0YXR1cyBSZWcgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0RJUDAJMHgwMDAxCi0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19ESVAxCTB4MDAwMgotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfRElQMgkweDAwMDQKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0ZMQVNICTB4MDAwOAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfVFNfSVJRCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0RJUDAJMHgwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRElQMQkweDAwMDIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19ESVAyCTB4MDAwNAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0ZMQVNICTB4MDAwOAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX1RTX0lSUQkweDEwMDAKIAotI2RlZmluZSBDRkdfRlBHQV9TUEFSVEFOMgkxCQkvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdwkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTUFYX1NJWkUJMTI4KjEwMjQJLyogMTI4a0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTNTBFKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCTEJCS8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93CSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUJMTI4KjEwMjQJLyogMTI4a0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTNTBFKi8KIAogLyogRlBHQSBwcm9ncmFtIHBpbiBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GUEdBX1BSRwkJMHgwNDAwMDAwMAkvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MDIwMDAwMDAJLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KQkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfREFUQQkJMHgwMTAwMDAwMAkvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KQkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMAkvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpCSAqLwotI2RlZmluZSBDRkdfRlBHQV9ET05FCQkweDAwMDA4MDAwCS8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkJICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJCTB4MDQwMDAwMDAJLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSwkJMHgwMjAwMDAwMAkvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpCSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfREFUQQkJMHgwMTAwMDAwMAkvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KQkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lOSVQJCTB4MDAwMTAwMDAJLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KQkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MDAwMDgwMDAJLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KQkgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCiAvKiB1c2Ugb24gY2hpcCBtZW1vcnkgKCBPQ00gKSBmb3IgdGVtcGVyYXJ5IHN0YWNrIHVudGlsIHNkcmFtIGlzIHRlc3RlZCAqLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00JMQorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCTEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIEdQSU8gc2V0dXAgKFBQQzQwNUVQIHNwZWNpZmljKQpAQCAtNTY4LDE0ICs1NjgsMTQgQEAKICAqIEdQSU8wWzMwXQktIEVNQUMwIGlucHV0CiAgKiBHUElPMFszMV0JLSBFTUFDMSByZWplY3QgcGFja2V0IGFzIG91dHB1dAogICovCi0jZGVmaW5lIENGR19HUElPMF9PU1JICQkweDQwMDAwNTUwCi0jZGVmaW5lIENGR19HUElPMF9PU1JMCQkweDAwMDAwMTEwCi0jZGVmaW5lIENGR19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMAotLyojZGVmaW5lIENGR19HUElPMF9JU1IxTAkweDE1NTU1NDQ1Ki8KLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFMCQkweDE1NTU1NDQ0Ci0jZGVmaW5lIENGR19HUElPMF9UU1JICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UU1JMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UQ1IJCTB4RjdGRjgwMTQKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JICQkweDQwMDAwNTUwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSTAkJMHgwMDAwMDExMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFICQkweDAwMDAwMDAwCisvKiNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxTAkweDE1NTU1NDQ1Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxTAkJMHgxNTU1NTQ0NAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkgJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVENSCQkweEY3RkY4MDE0CiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtNzgzLDE3ICs3ODMsMTcgQEAKIC8qIE1vZGVsIEhJICovCiAjZGVmaW5lIFBMTE1SMF9ERUZBVUxUCVBQQ0hBTUVMRU9OX1BMTE1SMF8zMzNfMTExXzM3XzU1XzU1CiAjZGVmaW5lIFBMTE1SMV9ERUZBVUxUCVBQQ0hBTUVMRU9OX1BMTE1SMV8zMzNfMTExXzM3XzU1XzU1Ci0jZGVmaW5lIENGR19PUEJfRlJFUQk1NTU1NTU1NQorI2RlZmluZSBDT05GSUdfU1lTX09QQl9GUkVRCTU1NTU1NTU1CiAvKiBNb2RlbCBNRSAqLwogI2VsaWYgKENPTkZJR19QUENIQU1FTEVPTl9NT0RVTEVfTU9ERUwgPT0gQ09ORklHX1BQQ0hBTUVMRU9OX01PRFVMRV9NRSkKICNkZWZpbmUgUExMTVIwX0RFRkFVTFQJUFBDSEFNRUxFT05fUExMTVIwXzI2Nl8xMzNfMzNfNjZfMzMKICNkZWZpbmUgUExMTVIxX0RFRkFVTFQJUFBDSEFNRUxFT05fUExMTVIxXzI2Nl8xMzNfMzNfNjZfMzMKLSNkZWZpbmUgQ0ZHX09QQl9GUkVRCTY2NjY2NjY2CisjZGVmaW5lIENPTkZJR19TWVNfT1BCX0ZSRVEJNjY2NjY2NjYKICNlbHNlCiAvKiBNb2RlbCBCQSAoZGVmYXVsdCkgKi8KICNkZWZpbmUgUExMTVIwX0RFRkFVTFQJUFBDSEFNRUxFT05fUExMTVIwXzEzM18xMzNfMzNfNjZfMzMKICNkZWZpbmUgUExMTVIxX0RFRkFVTFQJUFBDSEFNRUxFT05fUExMTVIxXzEzM18xMzNfMzNfNjZfMzMKLSNkZWZpbmUgQ0ZHX09QQl9GUkVRCTY2NjY2NjY2CisjZGVmaW5lIENPTkZJR19TWVNfT1BCX0ZSRVEJNjY2NjY2NjYKICNlbmRpZgogCiAjZW5kaWYgLyogQ09ORklHX05PX1NFUklBTF9FRVBST00gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9RUzgyMy5oIGIvaW5jbHVkZS9jb25maWdzL1FTODIzLmgKaW5kZXggMjU4NjA1OC4uNGFjMzFiMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1FTODIzLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1FTODIzLmgKQEAgLTM1LDE0ICszNSwxNCBAQAogI2RlZmluZSBfX0NPTkZJR19ICiAKIC8qIHZhcmlvdXMgZGVidWcgc2V0dGluZ3MgKi8KLSN1bmRlZiBDRkdfREVWSUNFX05VTExERVYJCS8qIG51bGwgZGV2aWNlICovCisjdW5kZWYgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkJLyogbnVsbCBkZXZpY2UgKi8KICN1bmRlZiBDT05GSUdfU0lMRU5UX0NPTlNPTEUJCS8qIHNpbGVudCBjb25zb2xlICovCi0jdW5kZWYgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkJLyogc2lsZW50IGNvbnNvbGUgPyAqLworI3VuZGVmIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCQkvKiBzaWxlbnQgY29uc29sZSA/ICovCiAjdW5kZWYgREVCVUdfRkxBU0gJCQkvKiBkZWJ1ZyBmbGFzaCBjb2RlICovCiAjdW5kZWYgRkxBU0hfREVCVUcJCQkvKiBkZWJ1ZyBmYXNoIGNvZGUgKi8KICN1bmRlZiBERUJVR19FTlYJCQkvKiBkZWJ1ZyBlbnZpcm9ubWVudCBjb2RlICovCiAKLSNkZWZpbmUgQ0ZHX0RJUkVDVF9GTEFTSF9URlRQCTEJLyogYWxsb3cgZGlyZWN0IHRmdHAgdG8gZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAkxCS8qIGFsbG93IGRpcmVjdCB0ZnRwIHRvIGZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEJLyogYWxsb3cgb3ZlcndyaXRlIE1BQyBhZGRyZXNzICovCiAKIC8qCkBAIC0xODMsNyArMTgzLDcgQEAKICNlbmRpZiAvKiBDT05GSUdfRkxBU0hfOE1CICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSN1bmRlZiBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI3VuZGVmIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogI3VuZGVmIENPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkICovCiAjdW5kZWYgQ09ORklHX1NUQVRVU19MRUQJCS8qIFN0YXR1cyBMRUQgZGlzYWJsZWQgKi8KICN1bmRlZiBDT05GSUdfQ0FOX0RSSVZFUgkJLyogQ0FOIERyaXZlciBzdXBwb3J0IGRpc2FibGVkICovCkBAIC0yMzEsMjkgKzIzMSwyOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlciAqLwotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlciAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHg0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4NDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjY0LDU2ICsyNjQsNTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkYwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGODAwMDAwCS8qIEFsbG93IGFuIDhNYnl0ZSB3aW5kb3cgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAkvKiBBbGxvdyBhbiA4TWJ5dGUgd2luZG93ICovCiAKICNkZWZpbmUgRkxBU0hfQkFTRTBfNE1fUFJFTElNCTB4RkZDMDAwMDAJLyogQmFzZSBmb3IgNE0gRmxhc2ggKi8KICNkZWZpbmUgRkxBU0hfQkFTRTBfOE1fUFJFTElNCTB4RkY4MDAwMDAJLyogQmFzZSBmb3IgOE0gRmxhc2ggKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHhGRkYwMDAwMAkvKiBVLWJvb3QgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweEZGRjAwMDAwCS8qIFUtYm9vdCBsb2NhdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVE9ETyBmbGFzaCBwYXJhbWV0ZXJzCiAgKiBGTEFTSCBvcmdhbml6YXRpb24gZm9yIEludGVsIFN0cmF0YWZsYXNoCiAgKi8KLSN1bmRlZiAgQ0ZHX0ZMQVNIXzE2QklUCQkJCS8qIDMyLWJpdCB3aWRlIGZsYXNoIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfMTZCSVQJCQkJLyogMzItYml0IHdpZGUgZmxhc2ggbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzEJCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJCS8qIEZvciBhbGwgTVBDOHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkJLyogRm9yIGFsbCBNUEM4eHggQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJCS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJCS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzI0LDM0ICszMjQsMzQgQEAKICAqLwogCiAjaWZkZWYgQ09ORklHX1dBVENIRE9HCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXRSB8IFNZUENSX1NXUkkgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV0UgfCBTWVBDUl9TV1JJIHwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dSSSB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUkkgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0lVTUNSIC0gU0lVIE1vZHVsZSBDb25maWd1cmF0aW9uIDExLTYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfRExLIHwgU0lVTUNSX0RQQyB8IFNJVU1DUl9NUFJFIHwgU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9HQjVFKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RMSyB8IFNJVU1DUl9EUEMgfCBTSVVNQ1JfTVBSRSB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfR0I1RSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sIDExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlciAxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIgMTUtMzAKQEAgLTM2MSwzNiArMzYxLDM2IEBACiAvKiBNRiAoTXVsdGlwbGljYXRpb24gRmFjdG9yIG9mIFNQTEwpICovCiAvKiBTZXRzIHRoZSBRUzgyMyB0byBzcGVjaWZpZWQgY2xvY2sgZnJvbSAzMktIeiBjbG9jayBhdCBFWFRBTC4gKi8KICNkZWZpbmUgdlBMUFJDUl9NRgkoKENPTkZJR19DTE9DS19NVUxUKzEpIDw8IDIwKQotI2RlZmluZSBDRkdfUExQUkNSCSh2UExQUkNSX01GIHwgUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUIHwgUExQUkNSX0xPTFJFKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkodlBMUFJDUl9NRiB8IFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCB8IFBMUFJDUl9MT0xSRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NMT0NLXzE2TUhaKSB8fCBkZWZpbmVkKENPTkZJR19DTE9DS18zM01IWikgfHwgZGVmaW5lZChDT05GSUdfQ0xPQ0tfNTBNSFopCi0jZGVmaW5lIENGR19TQ0NSCQkoU0NDUl9UQlMgfCBTQ0NSX0VCREYwMCB8IFNDQ1JfREZCUkcwMCkKLSNkZWZpbmUgQ0ZHX0JSR0NMS19QUkVTQ0FMRQkxCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkJKFNDQ1JfVEJTIHwgU0NDUl9FQkRGMDAgfCBTQ0NSX0RGQlJHMDApCisjZGVmaW5lIENPTkZJR19TWVNfQlJHQ0xLX1BSRVNDQUxFCTEKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ0xPQ0tfNjZNSFopCi0jZGVmaW5lIENGR19TQ0NSCQkoU0NDUl9UQlMgfCBTQ0NSX0VCREYwMCB8IFNDQ1JfREZCUkcwMSkKLSNkZWZpbmUgQ0ZHX0JSR0NMS19QUkVTQ0FMRQk0CisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkJKFNDQ1JfVEJTIHwgU0NDUl9FQkRGMDAgfCBTQ0NSX0RGQlJHMDEpCisjZGVmaW5lIENPTkZJR19TWVNfQlJHQ0xLX1BSRVNDQUxFCTQKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ0xPQ0tfODBNSFopCi0jZGVmaW5lIENGR19TQ0NSCQkoU0NDUl9UQlMgfCBTQ0NSX0VCREYwMSB8IFNDQ1JfREZCUkcwMSkKLSNkZWZpbmUgQ0ZHX0JSR0NMS19QUkVTQ0FMRQk0CisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkJKFNDQ1JfVEJTIHwgU0NDUl9FQkRGMDEgfCBTQ0NSX0RGQlJHMDEpCisjZGVmaW5lIENPTkZJR19TWVNfQlJHQ0xLX1BSRVNDQUxFCTQKICNlbmRpZgogCi0jZGVmaW5lIFNDQ1JfTUFTSwkJQ0ZHX1NDQ1IKKyNkZWZpbmUgU0NDUl9NQVNLCQlDT05GSUdfU1lTX1NDQ1IKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVidWcgRW5hYmxlIFJlZ2lzdGVyCiAgKiAweDczRTY3QzBGIC0gQWxsIGludGVycnVwdHMgaGFuZGxlZCBieSBCRE0KICAqIDB4MDA4MjQwMDEgLSBPbmx5IGludGVycnVwdHMgbmVlZGVkIGJ5IE1XRGVidWcuZXhlIGhhbmRsZWQgYnkgQkRNCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jZGVmaW5lIENGR19ERVIJCQkweDczRTY3QzBGCi0jZGVmaW5lIENGR19ERVIJCQkweDAwODI0MDBGCisjZGVmaW5lIENPTkZJR19TWVNfREVSCQkJMHg3M0U2N0MwRgorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJCTB4MDA4MjQwMEYKIAogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBQcm9ncmFtIHRoZSBEZWJ1ZyBFbmFibGUgUmVnaXN0ZXIgKERFUikuIFRoaXMgcmVnaXN0ZXIgcHJvdmlkZXMgdGhlIHVzZXIKQEAgLTQwMCw3ICs0MDAsNyBAQAogICMgTVBDODYwIFVzZXIgTWFudWFsIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoaXMgcmVnaXN0ZXIuCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCi0jZGVmaW5lIENGR19ERVIJCQkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCQkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNZW1vcnkgQ29udHJvbGxlciBJbml0aWFsaXphdGlvbiBDb25zdGFudHMKQEAgLTQxMSw4ICs0MTEsOCBAQAogICogQlIwIGFuZCBPUjAgKEFNRCBkdWFsIEZMQVNIIGRldmljZXMpCiAgKiBCYXNlIGFkZHJlc3MgPSAweEZGRjBfMDAwMCAtIDB4RkZGN19GRkZGIChBZnRlciByZWxvY2F0aW9uKQogICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAorI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAogCiAvKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDI0LDcgKzQyNCw3IEBACiAvKiBCQSAoQmFzZSBBZGRyZXNzKSA9IDB4RkY4MCswYiBmb3IgYSB0b3RhbCBvZiAxNyBiaXRzLiAxNyBiaXQgYmFzZSBhZGRyICovCiAvKiAgICAgICAgICAgICAgICAgICAgIHJlcHJlc2VudHMgYSBtaW51bXVtIDMySyBibG9jayBzaXplLiAqLwogI2RlZmluZSB2QlIwX0JBCQkJKCgweEZGODAgPDwgMTYpICsgKDAgPDwgMTUpKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKHZCUjBfQkEgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCSh2QlIwX0JBIHwgQlJfVikKIAogLyogQU0gKEFkZHJlc3MgTWFzaykgPSAweEZGODArMGIgPSBXZSd2ZSBtYXNrZWQgdGhlIHVwcGVyIDkgYml0cyAgICAgICAgKi8KIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpY2ggZGVmaW5lcyBhIDggTWJ5dGUgbWVtb3J5IGJsb2NrLiAqLwpAQCAtNDMyLDE4ICs0MzIsMTggQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NMT0NLXzUwTUhaKSB8fCBkZWZpbmVkKENPTkZJR19DTE9DS184ME1IWikKIC8qICAwMTAxID0gQWRkIGEgNSBjbG9jayBjeWNsZSB3YWl0IHN0YXRlICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkodk9SMF9BTSB8IE9SX0NTTlRfU0FNIHwgMFJfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV81X0NMSykKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkodk9SMF9BTSB8IE9SX0NTTlRfU0FNIHwgMFJfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV81X0NMSykKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ0xPQ0tfMzNNSFopIHx8IGRlZmluZWQoQ09ORklHX0NMT0NLXzY2TUhaKQogLyogIDAwMTEgPSBBZGQgYSAzIGNsb2NrIGN5Y2xlIHdhaXQgc3RhdGUgKi8KIC8qICAyOS44bnMgY2xvY2sgKiAoMyArIDIpID0gMTQ5bnMgY3ljbGUgdGltZSAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJKHZPUjBfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfM19DTEspCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJKHZPUjBfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfM19DTEspCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NMT0NLXzE2TUhaKQogLyogIDAwMTAgPSBBZGQgYSAyIGNsb2NrIGN5Y2xlIHdhaXQgc3RhdGUgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCSh2T1IwX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzJfQ0xLKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCSh2T1IwX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzJfQ0xLKQogI2VuZGlmCiAKIC8qCkBAIC00NjMsOCArNDYzLDggQEAKICAqLwogI2RlZmluZSB2T1IxX0FNCQkJKCgweEY4MDAgPDwgMTYpICsgKDAgPDwgMTUpKQogI2RlZmluZSB2QlIxX0JBCQkJKCgweDAwMDAgPDwgMTYpICsgKDAgPDwgMTUpKQotI2RlZmluZSBDRkdfT1IxCQkJKHZPUjFfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlIxCQkJKHZCUjFfQkEgfCBCUl9NU19VUE1BIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjEJCQkodk9SMV9BTSB8IE9SX0NTTlRfU0FNIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlIxCQkJKHZCUjFfQkEgfCBCUl9NU19VUE1BIHwgQlJfVikKIAogLyogTWFjaGluZSBBIE1vZGUgUmVnaXN0ZXIgKi8KIApAQCAtNDkyLDEyICs0OTIsMTIgQEAKIAogLyogRm9yIGJvYXJkcyB3aXRoIDE2TSBvZiBTRFJBTSAqLwogI2RlZmluZSBTRFJBTV8xNk1fTUFYX1NJWkUJMHgwMTAwMDAwMAkvKiBtYXggMTZNQiBTRFJBTSAqLwotI2RlZmluZSBDRkdfMTZNX01BTVIJCSh2TUFNUl9QVEEgfCBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8yX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8XAorI2RlZmluZSBDT05GSUdfU1lTXzE2TV9NQU1SCQkodk1BTVJfUFRBIHwgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMl9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfFwKIE1BTVJfUkxGQV8xWCB8IE1BTVJfV0xGQV8xWCB8IE1BTVJfVExGQV80WCkKIAogLyogRm9yIGJvYXJkcyB3aXRoIDMyTSBvZiBTRFJBTSAqLwogI2RlZmluZSBTRFJBTV8zMk1fTUFYX1NJWkUJMHgwMjAwMDAwMAkvKiBtYXggMzJNQiBTRFJBTSAqLwotI2RlZmluZSBDRkdfMzJNX01BTVIJCSh2TUFNUl9QVEEgfCBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8yX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8XAorI2RlZmluZSBDT05GSUdfU1lTXzMyTV9NQU1SCQkodk1BTVJfUFRBIHwgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMl9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfFwKIE1BTVJfUkxGQV8xWCB8IE1BTVJfV0xGQV8xWCB8IE1BTVJfVExGQV80WCkKIAogCkBAIC01MDUsMTIgKzUwNSwxMiBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ0xPQ0tfNjZNSFopIHx8IGRlZmluZWQoQ09ORklHX0NMT0NLXzgwTUhaKQogLyogRGl2aWRlIGJ5IDMyICovCi0jZGVmaW5lIENGR19NUFRQUgkJMHgwMgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCQkweDAyCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NMT0NLXzE2TUhaKSB8fCBkZWZpbmVkKENPTkZJR19DTE9DS18zM01IWikgfHwgZGVmaW5lZChDT05GSUdfQ0xPQ0tfNTBNSFopCiAvKiBEaXZpZGUgYnkgMTYgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSCQkweDA0CisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJCTB4MDQKICNlbmRpZgogCiAvKgpAQCAtNTE4LDI0ICs1MTgsMjQgQEAKICAqIEJhc2UgYWRkcmVzcyA9IDB4RjAyMF8wMDAwIC0gMHhGMDIwXzBGRkYKICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4RjAyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJMHhGMDIwMDAwMAogCiAvKgogICogQlIzIGFuZCBPUjMgKEV4dGVybmFsIEJ1cyBDUzMpCiAgKiBCYXNlIGFkZHJlc3MgPSAweEYwMzBfMDAwMCAtIDB4RjAzMF8wRkZGCiAgKgogICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQkweEZGRjAwMDAwCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkweEYwMzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCTB4RjAzMDAwMDAKIAogLyoKICAqIEJSNCBhbmQgT1I0IChFeHRlcm5hbCBCdXMgQ1MzKQogICogQmFzZSBhZGRyZXNzID0gMHhGMDQwXzAwMDAgLSAweEYwNDBfMEZGRgogICoKICAqLwotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkJMHhGRkYwMDAwMAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkJMHhGMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCQkweEYwNDAwMDAwCiAKIAogLyoKQEAgLTU0MywyNCArNTQzLDI0IEBACiAgKiBCYXNlIGFkZHJlc3MgPSAweEYwNTBfMDAwMCAtIDB4RjA1MF8wRkZGCiAgKgogICovCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCQkweEZGRjAwMDAwCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCQkweEYwNTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JCTB4RjA1MDAwMDAKIAogLyoKICAqIEJSNiBhbmQgT1I2IChVbnVzZWQpCiAgKiBCYXNlIGFkZHJlc3MgPSAweEYwNjBfMDAwMCAtIDB4RjA2MF8wRkZGCiAgKgogICovCi0jZGVmaW5lIENGR19PUjZfUFJFTElNCQkweEZGRjAwMDAwCi0jZGVmaW5lIENGR19CUjZfUFJFTElNCQkweEYwNjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1I2X1BSRUxJTQkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNl9QUkVMSU0JCTB4RjA2MDAwMDAKIAogLyoKICAqIEJSNyBhbmQgT1I3IChVbnVzZWQpCiAgKiBCYXNlIGFkZHJlc3MgPSAweEYwNzBfMDAwMCAtIDB4RjA3MF8wRkZGCiAgKgogICovCi0jZGVmaW5lIENGR19PUjdfUFJFTElNCQkweEZGRjAwMDAwCi0jZGVmaW5lIENGR19CUjdfUFJFTElNCQkweEYwNzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1I3X1BSRUxJTQkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSN19QUkVMSU0JCTB4RjA3MDAwMDAKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUVM4NTAuaCBiL2luY2x1ZGUvY29uZmlncy9RUzg1MC5oCmluZGV4IDg3YTE4NGIuLjY1ZjQxZTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9RUzg1MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9RUzg1MC5oCkBAIC0zNSwxNCArMzUsMTQgQEAKICNkZWZpbmUgX19DT05GSUdfSAogCiAvKiB2YXJpb3VzIGRlYnVnIHNldHRpbmdzICovCi0jdW5kZWYgQ0ZHX0RFVklDRV9OVUxMREVWCQkvKiBudWxsIGRldmljZSAqLworI3VuZGVmIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJCS8qIG51bGwgZGV2aWNlICovCiAjdW5kZWYgQ09ORklHX1NJTEVOVF9DT05TT0xFCQkvKiBzaWxlbnQgY29uc29sZSAqLwotI3VuZGVmIENGR19DT05TT0xFX0lORk9fUVVJRVQJCS8qIHNpbGVudCBjb25zb2xlID8gKi8KKyN1bmRlZiBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkJLyogc2lsZW50IGNvbnNvbGUgPyAqLwogI3VuZGVmIERFQlVHX0ZMQVNICQkJLyogZGVidWcgZmxhc2ggY29kZSAqLwogI3VuZGVmIEZMQVNIX0RFQlVHCQkJLyogZGVidWcgZmFzaCBjb2RlICovCiAjdW5kZWYgREVCVUdfRU5WCQkJLyogZGVidWcgZW52aXJvbm1lbnQgY29kZSAqLwogCi0jZGVmaW5lIENGR19ESVJFQ1RfRkxBU0hfVEZUUAkxCS8qIGFsbG93IGRpcmVjdCB0ZnRwIHRvIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfRElSRUNUX0ZMQVNIX1RGVFAJMQkvKiBhbGxvdyBkaXJlY3QgdGZ0cCB0byBmbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQkxCS8qIGFsbG93IG92ZXJ3cml0ZSBNQUMgYWRkcmVzcyAqLwogCiAvKgpAQCAtMTgzLDcgKzE4Myw3IEBACiAjZW5kaWYgLyogQ09ORklHX0ZMQVNIXzhNQiAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jdW5kZWYgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KICN1bmRlZiBDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZCAqLwogI3VuZGVmIENPTkZJR19TVEFUVVNfTEVECQkvKiBTdGF0dXMgTEVEIGRpc2FibGVkICovCiAjdW5kZWYgQ09ORklHX0NBTl9EUklWRVIJCS8qIENBTiBEcml2ZXIgc3VwcG9ydCBkaXNhYmxlZCAqLwpAQCAtMjMxLDI5ICsyMzEsMjkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTSAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4NDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDQwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTI2NCw1NiArMjY0LDU2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAkvKiBBbGxvdyBhbiA4TWJ5dGUgd2luZG93ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAJLyogQWxsb3cgYW4gOE1ieXRlIHdpbmRvdyAqLwogCiAjZGVmaW5lIEZMQVNIX0JBU0UwXzRNX1BSRUxJTQkweEZGQzAwMDAwCS8qIEJhc2UgZm9yIDRNIEZsYXNoICovCiAjZGVmaW5lIEZMQVNIX0JBU0UwXzhNX1BSRUxJTQkweEZGODAwMDAwCS8qIEJhc2UgZm9yIDhNIEZsYXNoICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4RkZGMDAwMDAJLyogVS1ib290IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHhGRkYwMDAwMAkvKiBVLWJvb3QgbG9jYXRpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRPRE8gZmxhc2ggcGFyYW1ldGVycwogICogRkxBU0ggb3JnYW5pemF0aW9uIGZvciBJbnRlbCBTdHJhdGFmbGFzaAogICovCi0jdW5kZWYgIENGR19GTEFTSF8xNkJJVAkJCQkvKiAzMi1iaXQgd2lkZSBmbGFzaCBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNzEJCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI3VuZGVmICBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCQkJCS8qIDMyLWJpdCB3aWRlIGZsYXNoIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTcxCQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CQkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJCS8qIEZvciBhbGwgTVBDOHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMyNCwzNCArMzI0LDM0IEBACiAgKi8KIAogI2lmZGVmIENPTkZJR19XQVRDSERPRwotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV0UgfCBTWVBDUl9TV1JJIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dFIHwgU1lQQ1JfU1dSSSB8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUkkgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1JJIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbiAxMS02CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RMSyB8IFNJVU1DUl9EUEMgfCBTSVVNQ1JfTVBSRSB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfR0I1RSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9ETEsgfCBTSVVNQ1JfRFBDIHwgU0lVTUNSX01QUkUgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0dCNUUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbCAxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIgMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sIDExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyIDE1LTMwCkBAIC0zNjEsMzYgKzM2MSwzNiBAQAogLyogTUYgKE11bHRpcGxpY2F0aW9uIEZhY3RvciBvZiBTUExMKSAqLwogLyogU2V0cyB0aGUgUVM4NTAgdG8gc3BlY2lmaWVkIGNsb2NrIGZyb20gMzJLSHogY2xvY2sgYXQgRVhUQUwuICovCiAjZGVmaW5lIHZQTFBSQ1JfTUYJKChDT05GSUdfQ0xPQ0tfTVVMVCsxKSA8PCAyMCkKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkodlBMUFJDUl9NRiB8IFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCB8IFBMUFJDUl9MT0xSRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKHZQTFBSQ1JfTUYgfCBQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QgfCBQTFBSQ1JfTE9MUkUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTE9DS18xNk1IWikgfHwgZGVmaW5lZChDT05GSUdfQ0xPQ0tfMzNNSFopIHx8IGRlZmluZWQoQ09ORklHX0NMT0NLXzUwTUhaKQotI2RlZmluZSBDRkdfU0NDUgkJKFNDQ1JfVEJTIHwgU0NDUl9FQkRGMDAgfCBTQ0NSX0RGQlJHMDApCi0jZGVmaW5lIENGR19CUkdDTEtfUFJFU0NBTEUJMQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJCShTQ0NSX1RCUyB8IFNDQ1JfRUJERjAwIHwgU0NDUl9ERkJSRzAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JSR0NMS19QUkVTQ0FMRQkxCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NMT0NLXzY2TUhaKQotI2RlZmluZSBDRkdfU0NDUgkJKFNDQ1JfVEJTIHwgU0NDUl9FQkRGMDAgfCBTQ0NSX0RGQlJHMDEpCi0jZGVmaW5lIENGR19CUkdDTEtfUFJFU0NBTEUJNAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJCShTQ0NSX1RCUyB8IFNDQ1JfRUJERjAwIHwgU0NDUl9ERkJSRzAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JSR0NMS19QUkVTQ0FMRQk0CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NMT0NLXzgwTUhaKQotI2RlZmluZSBDRkdfU0NDUgkJKFNDQ1JfVEJTIHwgU0NDUl9FQkRGMDEgfCBTQ0NSX0RGQlJHMDEpCi0jZGVmaW5lIENGR19CUkdDTEtfUFJFU0NBTEUJNAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJCShTQ0NSX1RCUyB8IFNDQ1JfRUJERjAxIHwgU0NDUl9ERkJSRzAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JSR0NMS19QUkVTQ0FMRQk0CiAjZW5kaWYKIAotI2RlZmluZSBTQ0NSX01BU0sJCUNGR19TQ0NSCisjZGVmaW5lIFNDQ1JfTUFTSwkJQ09ORklHX1NZU19TQ0NSCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlYnVnIEVuYWJsZSBSZWdpc3RlcgogICogMHg3M0U2N0MwRiAtIEFsbCBpbnRlcnJ1cHRzIGhhbmRsZWQgYnkgQkRNCiAgKiAweDAwODI0MDAxIC0gT25seSBpbnRlcnJ1cHRzIG5lZWRlZCBieSBNV0RlYnVnLmV4ZSBoYW5kbGVkIGJ5IEJETQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotI2RlZmluZSBDRkdfREVSCQkJMHg3M0U2N0MwRgotI2RlZmluZSBDRkdfREVSCQkJMHgwMDgyNDAwRgorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJCTB4NzNFNjdDMEYKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJCQkweDAwODI0MDBGCiAKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICMgUHJvZ3JhbSB0aGUgRGVidWcgRW5hYmxlIFJlZ2lzdGVyIChERVIpLiBUaGlzIHJlZ2lzdGVyIHByb3ZpZGVzIHRoZSB1c2VyCkBAIC00MDAsNyArNDAwLDcgQEAKICAjIE1QQzg2MCBVc2VyIE1hbnVhbCBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGlzIHJlZ2lzdGVyLgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqLwotI2RlZmluZSBDRkdfREVSCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWVtb3J5IENvbnRyb2xsZXIgSW5pdGlhbGl6YXRpb24gQ29uc3RhbnRzCkBAIC00MTEsOCArNDExLDggQEAKICAqIEJSMCBhbmQgT1IwIChBTUQgZHVhbCBGTEFTSCBkZXZpY2VzKQogICogQmFzZSBhZGRyZXNzID0gMHhGRkYwXzAwMDAgLSAweEZGRjdfRkZGRiAoQWZ0ZXIgcmVsb2NhdGlvbikKICAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gKKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0KKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gKIAogLyoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQyNCw3ICs0MjQsNyBAQAogLyogQkEgKEJhc2UgQWRkcmVzcykgPSAweEZGODArMGIgZm9yIGEgdG90YWwgb2YgMTcgYml0cy4gMTcgYml0IGJhc2UgYWRkciAqLwogLyogICAgICAgICAgICAgICAgICAgICByZXByZXNlbnRzIGEgbWludW11bSAzMksgYmxvY2sgc2l6ZS4gKi8KICNkZWZpbmUgdkJSMF9CQQkJCSgoMHhGRjgwIDw8IDE2KSArICgwIDw8IDE1KSkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCSh2QlIwX0JBIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkodkJSMF9CQSB8IEJSX1YpCiAKIC8qIEFNIChBZGRyZXNzIE1hc2spID0gMHhGRjgwKzBiID0gV2UndmUgbWFza2VkIHRoZSB1cHBlciA5IGJpdHMgICAgICAgICovCiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWNoIGRlZmluZXMgYSA4IE1ieXRlIG1lbW9yeSBibG9jay4gKi8KQEAgLTQzMiwxOCArNDMyLDE4IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19DTE9DS181ME1IWikgfHwgZGVmaW5lZChDT05GSUdfQ0xPQ0tfODBNSFopCiAvKiAgMDEwMSA9IEFkZCBhIDUgY2xvY2sgY3ljbGUgd2FpdCBzdGF0ZSAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJKHZPUjBfQU0gfCBPUl9DU05UX1NBTSB8IDBSX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfNV9DTEspCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJKHZPUjBfQU0gfCBPUl9DU05UX1NBTSB8IDBSX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfNV9DTEspCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NMT0NLXzMzTUhaKSB8fCBkZWZpbmVkKENPTkZJR19DTE9DS182Nk1IWikKIC8qICAwMDExID0gQWRkIGEgMyBjbG9jayBjeWNsZSB3YWl0IHN0YXRlICovCiAvKiAgMjkuOG5zIGNsb2NrICogKDMgKyAyKSA9IDE0OW5zIGN5Y2xlIHRpbWUgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCSh2T1IwX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzNfQ0xLKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCSh2T1IwX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzNfQ0xLKQogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTE9DS18xNk1IWikKIC8qICAwMDEwID0gQWRkIGEgMiBjbG9jayBjeWNsZSB3YWl0IHN0YXRlICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkodk9SMF9BTSB8IE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV8yX0NMSykKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkodk9SMF9BTSB8IE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV8yX0NMSykKICNlbmRpZgogCiAvKgpAQCAtNDYzLDggKzQ2Myw4IEBACiAgKi8KICNkZWZpbmUgdk9SMV9BTQkJCSgoMHhGODAwIDw8IDE2KSArICgwIDw8IDE1KSkKICNkZWZpbmUgdkJSMV9CQQkJCSgoMHgwMDAwIDw8IDE2KSArICgwIDw8IDE1KSkKLSNkZWZpbmUgQ0ZHX09SMQkJCSh2T1IxX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSMQkJCSh2QlIxX0JBIHwgQlJfTVNfVVBNQSB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IxCQkJKHZPUjFfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMQkJCSh2QlIxX0JBIHwgQlJfTVNfVVBNQSB8IEJSX1YpCiAKIC8qIE1hY2hpbmUgQSBNb2RlIFJlZ2lzdGVyICovCiAKQEAgLTQ5MiwxMiArNDkyLDEyIEBACiAKIC8qIEZvciBib2FyZHMgd2l0aCAxNk0gb2YgU0RSQU0gKi8KICNkZWZpbmUgU0RSQU1fMTZNX01BWF9TSVpFCTB4MDEwMDAwMDAJLyogbWF4IDE2TUIgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHXzE2TV9NQU1SCQkodk1BTVJfUFRBIHwgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMl9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfFwKKyNkZWZpbmUgQ09ORklHX1NZU18xNk1fTUFNUgkJKHZNQU1SX1BUQSB8IE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzJfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHxcCiBNQU1SX1JMRkFfMVggfCBNQU1SX1dMRkFfMVggfCBNQU1SX1RMRkFfNFgpCiAKIC8qIEZvciBib2FyZHMgd2l0aCAzMk0gb2YgU0RSQU0gKi8KICNkZWZpbmUgU0RSQU1fMzJNX01BWF9TSVpFCTB4MDIwMDAwMDAJLyogbWF4IDMyTUIgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHXzMyTV9NQU1SCQkodk1BTVJfUFRBIHwgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMl9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU18zMk1fTUFNUgkJKHZNQU1SX1BUQSB8IE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzJfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHxcCiBNQU1SX1JMRkFfMVggfCBNQU1SX1dMRkFfMVggfCBNQU1SX1RMRkFfNFgpCiAKIApAQCAtNTA1LDEyICs1MDUsMTIgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NMT0NLXzY2TUhaKSB8fCBkZWZpbmVkKENPTkZJR19DTE9DS184ME1IWikKIC8qIERpdmlkZSBieSAzMiAqLwotI2RlZmluZSBDRkdfTVBUUFIJCTB4MDIKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkJMHgwMgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTE9DS18xNk1IWikgfHwgZGVmaW5lZChDT05GSUdfQ0xPQ0tfMzNNSFopIHx8IGRlZmluZWQoQ09ORklHX0NMT0NLXzUwTUhaKQogLyogRGl2aWRlIGJ5IDE2ICovCi0jZGVmaW5lIENGR19NUFRQUgkJMHgwNAorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCQkweDA0CiAjZW5kaWYKIAogLyoKQEAgLTUxOCwyNCArNTE4LDI0IEBACiAgKiBCYXNlIGFkZHJlc3MgPSAweEYwMjBfMDAwMCAtIDB4RjAyMF8wRkZGCiAgKgogICovCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkweEZGRjAwMDAwCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkweEYwMjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4RjAyMDAwMDAKIAogLyoKICAqIEJSMyBhbmQgT1IzIChFeHRlcm5hbCBCdXMgQ1MzKQogICogQmFzZSBhZGRyZXNzID0gMHhGMDMwXzAwMDAgLSAweEYwMzBfMEZGRgogICoKICAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJMHhGRkYwMDAwMAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkJMHhGMDMwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkweEYwMzAwMDAwCiAKIC8qCiAgKiBCUjQgYW5kIE9SNCAoRXh0ZXJuYWwgQnVzIENTMykKICAqIEJhc2UgYWRkcmVzcyA9IDB4RjA0MF8wMDAwIC0gMHhGMDQwXzBGRkYKICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JCTB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JCTB4RjA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkJMHhGMDQwMDAwMAogCiAKIC8qCkBAIC01NDMsMjQgKzU0MywyNCBAQAogICogQmFzZSBhZGRyZXNzID0gMHhGMDUwXzAwMDAgLSAweEYwNTBfMEZGRgogICoKICAqLwotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkJMHhGRkYwMDAwMAotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJMHhGMDUwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCQkweEYwNTAwMDAwCiAKIC8qCiAgKiBCUjYgYW5kIE9SNiAoVW51c2VkKQogICogQmFzZSBhZGRyZXNzID0gMHhGMDYwXzAwMDAgLSAweEYwNjBfMEZGRgogICoKICAqLwotI2RlZmluZSBDRkdfT1I2X1BSRUxJTQkJMHhGRkYwMDAwMAotI2RlZmluZSBDRkdfQlI2X1BSRUxJTQkJMHhGMDYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SNl9QUkVMSU0JCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjZfUFJFTElNCQkweEYwNjAwMDAwCiAKIC8qCiAgKiBCUjcgYW5kIE9SNyAoVW51c2VkKQogICogQmFzZSBhZGRyZXNzID0gMHhGMDcwXzAwMDAgLSAweEYwNzBfMEZGRgogICoKICAqLwotI2RlZmluZSBDRkdfT1I3X1BSRUxJTQkJMHhGRkYwMDAwMAotI2RlZmluZSBDRkdfQlI3X1BSRUxJTQkJMHhGMDcwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SN19QUkVMSU0JCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjdfUFJFTElNCQkweEYwNzAwMDAwCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1FTODYwVC5oIGIvaW5jbHVkZS9jb25maWdzL1FTODYwVC5oCmluZGV4IDU0ZGJjMzAuLjcwNWQzNzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9RUzg2MFQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvUVM4NjBULmgKQEAgLTM1LDE0ICszNSwxNCBAQAogI2RlZmluZSBfX0NPTkZJR19ICiAKIC8qIHZhcmlvdXMgZGVidWcgc2V0dGluZ3MgKi8KLSN1bmRlZiBDRkdfREVWSUNFX05VTExERVYJCS8qIG51bGwgZGV2aWNlICovCisjdW5kZWYgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkJLyogbnVsbCBkZXZpY2UgKi8KICN1bmRlZiBDT05GSUdfU0lMRU5UX0NPTlNPTEUJCS8qIHNpbGVudCBjb25zb2xlICovCi0jdW5kZWYgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkJLyogc2lsZW50IGNvbnNvbGUgPyAqLworI3VuZGVmIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCQkvKiBzaWxlbnQgY29uc29sZSA/ICovCiAjdW5kZWYgREVCVUdfRkxBU0gJCQkvKiBkZWJ1ZyBmbGFzaCBjb2RlICovCiAjdW5kZWYgRkxBU0hfREVCVUcJCQkvKiBkZWJ1ZyBmYXNoIGNvZGUgKi8KICN1bmRlZiBERUJVR19FTlYJCQkvKiBkZWJ1ZyBlbnZpcm9ubWVudCBjb2RlICovCiAKLSNkZWZpbmUgQ0ZHX0RJUkVDVF9GTEFTSF9URlRQCTEJLyogYWxsb3cgZGlyZWN0IHRmdHAgdG8gZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAkxCS8qIGFsbG93IGRpcmVjdCB0ZnRwIHRvIGZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEJLyogYWxsb3cgb3ZlcndyaXRlIE1BQyBhZGRyZXNzICovCiAKIApAQCAtNTgsNyArNTgsNyBAQAogI2RlZmluZSBDT05GSUdfTUlJCiAjZGVmaW5lIEZFQ19JTlRFUlJVUFQJCVNJVV9MRVZFTDEKICN1bmRlZiBDT05GSUdfU0NDMV9FTkVUCQkJLyogU0NDMSAxMEJhc2VUIGV0aGVybmV0ICovCi0jZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkKKyNkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKIAogI3VuZGVmIENPTkZJR184eHhfQ09OU19TTUMxCiAjZGVmaW5lIENPTkZJR184eHhfQ09OU19TTUMyCTEJLyogQ29uc29sZSBpcyBvbiBTTUMgKi8KQEAgLTgzLDcgKzgzLDcgQEAKIAkiYm9vdG0iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSN1bmRlZiBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI3VuZGVmIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAjdW5kZWYgQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQgKi8KIApAQCAtMTM5LDMwICsxMzksMzAgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyICovCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKIC8qIFRPRE8gLSBzaXplPyAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTSAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE3Miw1NSArMTcyLDU1IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEYwMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRjAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKiBUT0RPIGZsYXNoIHBhcmFtZXRlcnMgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbiBmb3IgSW50ZWwgU3RyYXRhZmxhc2gKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfMTZCSVQJCTEJCS8qIDE2LWJpdCB3aWRlIGZsYXNoIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfMTZCSVQJCTEJCS8qIDE2LWJpdCB3aWRlIGZsYXNoIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLwogCiAjdW5kZWYJQ09ORklHX0VOVl9JU19JTl9GTEFTSAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CQkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJCS8qIEZvciBhbGwgTVBDOHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIzMCw0NyArMjMwLDQ3IEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKDB4RkZGRkZGODggfCBTWVBDUl9TV0UgfCBTWVBDUl9TV1JJKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCSgweEZGRkZGRjg4IHwgU1lQQ1JfU1dFIHwgU1lQQ1JfU1dSSSkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkweEZGRkZGRjg4CisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJMHhGRkZGRkY4OAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbiAxMS02CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkweDAwNjIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCTB4MDA2MjAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sIDExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCTB4MDBDMworI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCTB4MDBDMwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIgMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sIDExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCTB4MDA4MgorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCTB4MDA4MgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIgMTUtMzAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUExQUkNSCTB4MDA5MEQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJMHgwMDkwRDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkweDAyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkweDAyMDAwMDAwCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjc4LDkgKzI3OCw5IEBACiAgKiAweDczRTY3QzBGIC0gQWxsIGludGVycnVwdHMgaGFuZGxlZCBieSBCRE0KICAqIDB4MDA4MjQwMDEgLSBPbmx5IGludGVycnVwdHMgbmVlZGVkIGJ5IE1XRGVidWcuZXhlIGhhbmRsZWQgYnkgQkRNCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jZGVmaW5lIENGR19ERVIJCQkweDczRTY3QzBGCisjZGVmaW5lIENPTkZJR19TWVNfREVSCQkJMHg3M0U2N0MwRgogKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJCTB4MDA4MjQwMEYKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJCQkweDAwODI0MDBGCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjkyLDEyICsyOTIsMTIgQEAKICAqIEJSMCBhbmQgT1IwIChBTUQgNTEySyBTb2NrZXRlZCBGTEFTSCkKICAqIEJhc2UgYWRkcmVzcyA9IDB4RkZGMF8wMDAwIC0gMHhGRkY3X0ZGRkYgKEFmdGVyIHJlbG9jYXRpb24pCiAgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICiAKICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4RkZGMDAwMDEKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCTB4RkZGODBENDIKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCTB4RkZGMDA0MDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweEZGRjgwRDQyCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJMHhGRkYwMDQwMQogCiAKIC8qCkBAIC0zMDYsMTAgKzMwNiwxMCBAQAogICovCiAKICNkZWZpbmUgRkxBU0hfQkFTRTFfUFJFTElNCTB4RDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4RkY4MDBENDIKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCTB4RDAwMDA4MDEKLS8qICNkZWZpbmUgQ0ZHX09SMQkJMHhGRjgwMEQ0MiAqLwotLyogI2RlZmluZSBDRkdfQlIxCQkweEQwMDAwODAxICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhGRjgwMEQ0MgorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCTB4RDAwMDA4MDEKKy8qICNkZWZpbmUgQ09ORklHX1NZU19PUjEJCTB4RkY4MDBENDIgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19CUjEJCTB4RDAwMDA4MDEgKi8KIAogCiAvKgpAQCAtMzI3LDE1ICszMjcsMTUgQEAKIAogLyogRm9yIGJvYXJkcyB3aXRoIDE2TSBvZiBTRFJBTSAqLwogI2RlZmluZSBTRFJBTV8xNk1fTUFYX1NJWkUJMHgwMTAwMDAwMAkvKiBtYXggMTZNQiBTRFJBTSAqLwotI2RlZmluZSBDRkdfMTZNX01CTVIJCTB4MTg4MDIxMTQJLyogTWVtIFBlcmlvZGljIFRpbWVyIFByZXNjYWxlciAqLworI2RlZmluZSBDT05GSUdfU1lTXzE2TV9NQk1SCQkweDE4ODAyMTE0CS8qIE1lbSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIgKi8KIAogLyogRm9yIGJvYXJkcyB3aXRoIDY0TSBvZiBTRFJBTSAqLwogI2RlZmluZSBTRFJBTV82NE1fTUFYX1NJWkUJMHgwNDAwMDAwMAkvKiBtYXggNjRNQiBTRFJBTSAqLwogLyogVE9ETyAtIGRldGVybWluZSByZWFsIHZhbHVlICovCi0jZGVmaW5lIENGR182NE1fTUJNUgkJMHgxODgwMjExNAkvKiBNZW0gUGVyaW9kIFRpbWVyIFByZXNjYWxlciAqLworI2RlZmluZSBDT05GSUdfU1lTXzY0TV9NQk1SCQkweDE4ODAyMTE0CS8qIE1lbSBQZXJpb2QgVGltZXIgUHJlc2NhbGVyICovCiAKLSNkZWZpbmUgQ0ZHX09SMgkJCShTRFJBTV9QUkVMSU1fT1JfQU0gfCBTRFJBTV9USU1JTkcpCi0jZGVmaW5lIENGR19CUjIJCQkoU0RSQU1fQkFTRSB8IDB4MDAwMDAwQzEpCisjZGVmaW5lIENPTkZJR19TWVNfT1IyCQkJKFNEUkFNX1BSRUxJTV9PUl9BTSB8IFNEUkFNX1RJTUlORykKKyNkZWZpbmUgQ09ORklHX1NZU19CUjIJCQkoU0RSQU1fQkFTRSB8IDB4MDAwMDAwQzEpCiAKIAogLyoKQEAgLTM0NywxMCArMzQ3LDEwIEBACiAgKgogICovCiAKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JCTB4RkZDMDBERjYKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCTB4RDEwMDA0MDEKLS8qICNkZWZpbmUgQ0ZHX09SMwkJMHhGRkMwMERGNiAqLwotLyogI2RlZmluZSBDRkdfQlIzCQkweEQxMDAwNDAxICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkJMHhGRkMwMERGNgorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCTB4RDEwMDA0MDEKKy8qICNkZWZpbmUgQ09ORklHX1NZU19PUjMJCTB4RkZDMDBERjYgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19CUjMJCTB4RDEwMDA0MDEgKi8KIAogCiAvKgpAQCAtMzU5LDEwICszNTksMTAgQEAKICAqCiAgKi8KIAotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkJMHhFMDAwMDAwMAotLyogI2RlZmluZSBDRkdfT1I0CQkweEZGMDAwMDAwICovCi0vKiAjZGVmaW5lIENGR19CUjQJCTB4RTAwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkJMHhFMDAwMDAwMAorLyogI2RlZmluZSBDT05GSUdfU1lTX09SNAkJMHhGRjAwMDAwMCAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX0JSNAkJMHhFMDAwMDAwMCAqLwogCiAKIC8qCkBAIC0zNzEsMTAgKzM3MSwxMCBAQAogICoKICAqLwogCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCQkweEZGMDAwMDAwCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCQkweEU0MDAwMDAwCi0vKiAjZGVmaW5lIENGR19PUjUJCTB4RkYwMDAwMDAgKi8KLS8qICNkZWZpbmUgQ0ZHX0JSNQkJMHhFNDAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCQkweEU0MDAwMDAwCisvKiAjZGVmaW5lIENPTkZJR19TWVNfT1I1CQkweEZGMDAwMDAwICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfQlI1CQkweEU0MDAwMDAwICovCiAKIAogLyoKQEAgLTM4MywxMCArMzgzLDEwIEBACiAgKgogICovCiAKLSNkZWZpbmUgQ0ZHX09SNl9QUkVMSU0JCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JCTB4RTgwMDAwMDAKLS8qICNkZWZpbmUgQ0ZHX09SNgkJMHhGRjAwMDAwMCAqLwotLyogI2RlZmluZSBDRkdfQlI2CQkweEU4MDAwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfT1I2X1BSRUxJTQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNl9QUkVMSU0JCTB4RTgwMDAwMDAKKy8qICNkZWZpbmUgQ09ORklHX1NZU19PUjYJCTB4RkYwMDAwMDAgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19CUjYJCTB4RTgwMDAwMDAgKi8KIAogCiAvKgpAQCAtMzk1LDEwICszOTUsMTAgQEAKICAqCiAgKi8KIAotI2RlZmluZSBDRkdfT1I3X1BSRUxJTQkJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfQlI3X1BSRUxJTQkJMHhFODAwMDAwMAotLyogI2RlZmluZSBDRkdfT1I3CQkweEZGMDAwMDAwICovCi0vKiAjZGVmaW5lIENGR19CUjcJCTB4RTgwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjdfUFJFTElNCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlI3X1BSRUxJTQkJMHhFODAwMDAwMAorLyogI2RlZmluZSBDT05GSUdfU1lTX09SNwkJMHhGRjAwMDAwMCAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX0JSNwkJMHhFODAwMDAwMCAqLwogCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUjM2ME1QSS5oIGIvaW5jbHVkZS9jb25maWdzL1IzNjBNUEkuaAppbmRleCAwMDFhYzFjLi5iYWI0NDYwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUjM2ME1QSS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9SMzYwTVBJLmgKQEAgLTcxLDcgKzcxLDcgQEAKICNkZWZpbmUJQ09ORklHX1NDQzJfRU5FVAogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZQlDT05GSUdfTUlTQ19JTklUX1IJCS8qIGhhdmUgbWlzY19pbml0X3IoKSBmdW5jdGlvbgkqLwogCkBAIC05NSw4ICs5NSw4IEBACiAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIFRvIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KICN1bmRlZiBDT05GSUdfU09SVF9JMkMJCQkvKiBUbyBJMkMgd2l0aCBzb2Z0d2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQ3MDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQ3MDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBTb2Z0d2FyZSAoYml0LWJhbmcpIEkyQyBkcml2ZXIgY29uZmlndXJhdGlvbgpAQCAtMTE0LDkgKzExNCw5IEBACiAJCQkJZWxzZSAgICBpbW1yLT5pbV9jcG0uY3BfcGJkYXQgJj0gflBCX1NDTAogI2RlZmluZSBJMkNfREVMQVkJCXVkZWxheSg1MCkKIAotI2RlZmluZSBDRkdfSTJDX0xDRF9BRERSCTB4OAkvKiBMQ0QgQ29udHJvbCAqLwotI2RlZmluZSBDRkdfSTJDX0tFWV9BRERSCTB4OQkvKiBLZXlib2FyZCBjb3Byb2Nlc3NvciAqLwotI2RlZmluZSBDRkdfSTJDX1RFTV9BRERSCTB4NDkJLyogVGVtcGVyYXR1cmUgU2Vuc29ycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19MQ0RfQUREUgkweDgJLyogTENEIENvbnRyb2wgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfS0VZX0FERFIJMHg5CS8qIEtleWJvYXJkIGNvcHJvY2Vzc29yICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1RFTV9BRERSCTB4NDkJLyogVGVtcGVyYXR1cmUgU2Vuc29ycyAqLwogCiAKIC8qCkBAIC0xMzksMjggKzEzOSwyOCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJMQkvKiB3ZSBuZWVkIHRoZSBudWxsIGRldmljZQkqLwotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYJMQkvKiBtdXN0IHNldCBjb25zb2xlIGZyb20gZW52CSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQkvKiB3ZSBuZWVkIHRoZSBudWxsIGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCTEJLyogbXVzdCBzZXQgY29uc29sZSBmcm9tIGVudgkqLwogCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogSkZGUzIgcGFydGl0aW9ucwpAQCAtMTg3LDYwICsxODcsNjAgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkYwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCiAjaWYgZGVmaW5lZChERUJVRykKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJMHg0MDAwMAkvKiBPZmZzZXQgb2YgRW52aXJvbm1lbnQJCSovCiAjZGVmaW5lCUNPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBzZWN0b3IJKi8KICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAJLyogVXNlZCBTaXplIG9mIEVudmlyb25tZW50IHNlY3RvcgkqLwotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTAsMTAgKzI1MCwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjYxLDI3ICsyNjEsMjcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yOTIsMTAgKzI5MiwxMCBAQAogICogSWYgdGhpcyBpcyBhIDgwIE1IeiBDUFUsIHNldCBQTEwgbXVsdGlwbGljYXRpb24gZmFjdG9yIHRvIDUgKDUqMTY9ODApIQogICovCiAjaWZkZWYJQ09ORklHXzgwTUh6CS8qIGZvciA4MCBNSHosIHdlIHVzZSBhIDE2IE1IeiBjbG9jayAqIDUgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCQkJCQkJCVwKIAkJKCAoNS0xKTw8UExQUkNSX01GX1NISUZUIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUICkKICNlbHNlCQkJLyogdXAgdG8gNTAgTUh6IHdlIHVzZSBhIDE6MSBjbG9jayAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAjZW5kaWYJLyogQ09ORklHXzgwTUh6ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMwNSw3ICszMDUsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTMxNSwxNCArMzE1LDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTMzNiwyMSArMzM2LDIxIEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNTgsNyArMzU4LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNzIsMTcgKzM3MiwxNyBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZGMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZGMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOgogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxIHwgT1JfU0NZXzdfQ0xLIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSB8IE9SX1NDWV83X0NMSyB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQogCiAKIC8qCkBAIC0zOTIsMjMgKzM5MiwyMyBAQAogI2RlZmluZSBTRFJBTV9CQVNFMl9QUkVMSU0JMHgwMDAwMDAwMAkvKiBTRFJBTSBiYW5rICMwCSovCiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCi0jZGVmaW5lIENGR19QUkVMSU1fT1IyX0FNCTB4RjgwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SMl9BTQkweEY4MDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCShPUl9BQ1NfRElWMSAgfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JKE9SX0FDU19ESVYxICB8IE9SX0NTTlRfU0FNIHwgXAogCQkJCSBPUl9TQ1lfMF9DTEsgfCBPUl9HNUxTKQogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SMl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1IyX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAvKgogICogQlIzIGFuZCBPUjMgKENBTiBDb250cm9sbGVyKQogICovCiAjaWZkZWYgQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBiYXNlIGFkZHJlc3MgICAqLwotI2RlZmluZSBDRkdfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzayAqLwotI2RlZmluZSBDRkdfT1IzX0NBTgkJKENGR19DQU5fT1JfQU0gfCBPUl9HNUxBIHxPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gYmFzZSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX0NBTgkJKENPTkZJR19TWVNfQ0FOX09SX0FNIHwgT1JfRzVMQSB8T1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX0NBTgkJKChDT05GSUdfU1lTX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKIAkJCQkgQlJfUFNfOCB8IEJSX01TX1VQTUIgfCBCUl9WKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTQ0MCwxMSArNDQwLDExIEBACiAgKiA4MCBNaHogPT4gODAuMDAwLjAwMCAvIERpdmlkZXIgPSAxNTYKICAqLwogI2lmICAgZGVmaW5lZChDT05GSUdfODBNSHopCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJMTU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCTE1NgogI2VsaWYgZGVmaW5lZChDT05GSUdfNjZNSHopCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJMTI5CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCTEyOQogI2Vsc2UJCS8qICAgNTAgTUh6ICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJIDk4CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCSA5OAogI2VuZGlmCS8qQ09ORklHXz8/TUh6ICovCiAKIC8qCkBAIC00NTIsMjYgKzQ1MiwyNiBAQAogICogKD0gNjQgbXMgLyAySyA9IDEyNSAvIHF1YWQgYnVyc3RzKS4KICAqIEZvciBhIHNpbXBsZXIgaW5pdGlhbGl6YXRpb24sIDE1LjYgdXMgaXMgdXNlZCBpbnN0ZWFkLgogICoKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCi0gKiAjZGVmaW5lIENGR19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUkJDODIzLmggYi9pbmNsdWRlL2NvbmZpZ3MvUkJDODIzLmgKaW5kZXggYWVjMjA0Yi4uMjgwMTc1YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1JCQzgyMy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9SQkM4MjMuaApAQCAtNzEsNyArNzEsNyBAQAogCSJib290bSIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtOTUsMTIgKzk1LDEyIEBACiAjdW5kZWYJQ09ORklHX1JUQ19NUEM4eHgJCS8qIGRvbid0IHVzZSBpbnRlcm5hbCBSVEMgb2YgTVBDOHh4IChubyBiYXR0ZXJ5KQkqLwogCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVEIDQwMDAwCi0jZGVmaW5lIENGR19JMkNfU0xBVkUgMHhmZQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCi0jZGVmaW5lIENGR19FRVBST01fV1JJVEVfQklUUwkJNAotI2RlZmluZSBDRkdfRUVQUk9NX1dSSVRFX0RFTEFZX01TCTEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVEIDQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFIDB4ZmUKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1dSSVRFX0JJVFMJCTQKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fV1JJVEVfREVMQVlfTVMJMTAKIAogLyoKICAqIENvbW1hbmQgbGluZSBjb25maWd1cmF0aW9uLgpAQCAtMTMzLDI1ICsxMzMsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjEsNDcgKzE2MSw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRjAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGMDAwMDAKICNpZiBkZWZpbmVkKERFQlVHKQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgzODQgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgzODQgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCiAjZWxzZQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgzODQgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgzODQgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJMHgxMDAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjEwLDkgKzIxMCw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIyMiwxMyArMjIyLDEzIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCiAvKgotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAqLwotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV1JJIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dSSSB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzYsMjcgKzIzNiwyNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDAgfCBTSVVNQ1JfRlJDKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAwIHwgU0lVTUNSX0ZSQykKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjY5LDcgKzI2OSw3IEBACiAvKgogICogZm9yIDQ4IE1Ieiwgd2UgdXNlIGEgNCBNSHogY2xvY2sgKiAxMgogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJCQkJCQkJXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkJCQkJCQlcCiAJCSggKDEyLTEpPDxQTFBSQ1JfTUZfU0hJRlQgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfTE9MUkUgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzksNyArMjc5LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1JURElWICAgfCBTQ0NSX1JUU0VMICAgIHwgU0NDUl9DUlFFTiAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1JURElWICAgfCBTQ0NSX1JUU0VMICAgIHwgU0NDUl9DUlFFTiAgICB8IFwKIAkJICAgICAgICAgU0NDUl9QUlFFTiAgIHwgU0NDUl9FQkRGMDAgICB8IFwKIAkJICAgICAgICAgU0NDUl9DT00wMSAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDEgfCBcCkBAIC0yOTEsMTQgKzI5MSwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0zMTEsMzkgKzMxMSwzOSBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKICNlbmRpZgogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBEaXNrLU9uLUNoaXAgY29uZmlndXJhdGlvbgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgQ0ZHX01BWF9ET0NfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBET0MgZGV2aWNlcwkJKi8KLSNkZWZpbmUgQ0ZHX0RPQ19TSE9SVF9USU1FT1VUCi0jZGVmaW5lIENGR19ET0NfU1VQUE9SVF8yMDAwCi0jZGVmaW5lIENGR19ET0NfU1VQUE9SVF9NSUxMRU5OSVVNCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TSE9SVF9USU1FT1VUCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLS8qI2RlZmluZQlDRkdfREVSCTB4MjAwMjAwMEYqLwotI2RlZmluZSBDRkdfREVSCTAKKy8qI2RlZmluZQlDT05GSUdfU1lTX0RFUgkweDIwMDIwMDBGKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM1OCwxOCArMzU4LDE4IEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZGRjgwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZGRjgwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDAwLCBUUkxYID0gMCwgQ1NOVCA9IDEsIFNDWSA9IDcsIEVIVFIgPSAxCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0ggIChPUl9BQ1NfRElWMSB8IE9SX0JJIHwgT1JfU0NZXzdfQ0xLIHwgT1JfRUhUUikKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggIChPUl9BQ1NfRElWMSB8IE9SX0JJIHwgT1JfU0NZXzdfQ0xLIHwgT1JfRUhUUikKIAotI2RlZmluZSBDRkdfT1JfVElNSU5HX01TWVMgICAoT1JfQUNTX0RJVjEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfTVNZUyAgIChPUl9BQ1NfRElWMSB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19NU1lTKQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1CIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfTVNZUykKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUIgfCBcCiAJCSAgICAgICAgICBCUl9QU184IHwgQlJfVikKIAogLyoKQEAgLTM4MiwzNiArMzgyLDM2IEBACiAvKgogICogU0RSQU0gdGltaW5nOgogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JKE9SX0NTTlRfU0FNKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkoT1JfQ1NOVF9TQU0pCiAKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JKH4oU0RSQU1fTUFYX1NJWkUtMSkgfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JKChTRFJBTV9CQVNFNF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JKH4oU0RSQU1fTUFYX1NJWkUtMSkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkoKFNEUkFNX0JBU0U0X1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyCiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTE4NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciA0OCBNSHoJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkxODcJCS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgNDggTUh6CSovCiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9SUFhDbGFzc2ljLmggYi9pbmNsdWRlL2NvbmZpZ3MvUlBYQ2xhc3NpYy5oCmluZGV4IDRmYTIxYjguLjE2MmVmMDkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9SUFhDbGFzc2ljLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1JQWENsYXNzaWMuaApAQCAtNTAsNyArNTAsNyBAQAogLyogRGVmaW5lIENPTkZJR19GRUNfRU5FVCB0byB1c2UgRmFzdCBldGhlcm5ldCBpbnN0ZWFkIG9mIGV0aGVybmV0IG9uIFNDQzEgICAqLwogI2RlZmluZSBDT05GSUdfRkVDX0VORVQKICNpZmRlZiBDT05GSUdfRkVDX0VORVQKLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWSAgICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAgICAgICAgMQogI2RlZmluZSBDT05GSUdfTUlJICAgICAgICAgICAgICAxCiAjZW5kaWYgLyogQ09ORklHX0ZFQ19FTkVUICovCiAKQEAgLTg0LDcgKzg0LDcgQEAKIAkiYm9vdG0iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTExMiwyNiArMTEyLDI2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ODAwMDAwMDAKLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ODAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwQzAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTQxLDE1ICsxNDEsMTUgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGQTIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkEyMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIENvbmZpZ3VyYXRpb24KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogI2RlZmluZSBDT05GSUdfSTJDICAgICAgICAgICAgICAxCi0jZGVmaW5lIENGR19JMkNfU1BFRUQgICAgICAgICAgIDUwMDAwCi0jZGVmaW5lIENGR19JMkNfU0xBVkUgICAgICAgICAgIDB4MzQKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQgICAgICAgICAgIDUwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFICAgICAgICAgICAweDM0CiAKIAogLyogZW5hYmxlIEkyQyBhbmQgc2VsZWN0IHRoZSBoYXJkd2FyZS9zb2Z0d2FyZSBkcml2ZXIgKi8KQEAgLTE2OSw1NCArMTY5LDU0IEBACiAjZGVmaW5lIEkyQ19ERUxBWQl1ZGVsYXkoNSkJLyogMS80IEkyQyBjbG9jayBkdXJhdGlvbiAqLwogCiAKLSMgZGVmaW5lIENGR19JMkNfU1BFRUQJCTUwMDAwCi0jIGRlZmluZSBDRkdfSTJDX1NMQVZFCQkweDM0Ci0jIGRlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIFgyNEMxNgkJKi8KLSMgZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogYnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4MzQKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIFgyNEMxNgkJKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIGJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIiAgICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgzMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgzMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCTB4RkYwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkweEZGMDAwMDAwCiAKICNpZiBkZWZpbmVkKERFQlVHKSB8fCBkZWZpbmVkIChDT05GSUdfVklERU9fU0VEMTM4MDYpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9JREUpCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4RkYwMDAwMDAKLS8qJSUlICNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRSAqLwotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4RkYwMDAwMDAKKy8qJSUlICNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNpZiAwCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQpAQCAtMjMyLDkgKzIzMiw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0Myw3ICsyNDMsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXUCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjUxLDI4ICsyNTEsMjggQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX01MUkMxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9NTFJDMTApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0vKiUlJSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCAgUlRDU0NfQUxSIHwgUlRDU0NfUlRFKQorLyolJSUjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKSAqLworI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCAgUlRDU0NfQUxSIHwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUiAoUElTQ1JfUFMgfCBQSVNDUl9QSVRGIHwgUElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSIChQSVNDUl9QUyB8IFBJU0NSX1BJVEYgfCBQSVNDUl9QVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI4Myw3ICsyODMsNyBAQAogICogSWYgdGhpcyBpcyBhIDgwIE1IeiBDUFUsIHNldCBQTEwgbXVsdGlwbGljYXRpb24gZmFjdG9yIHRvIDUgKDUqMTY9ODApIQogICovCiAvKiB1cCB0byA1MCBNSHogd2UgdXNlIGEgMToxIGNsb2NrICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKCAoNCA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1NQTFNTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoICg0IDw8IFBMUFJDUl9NRl9TSElGVCkgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0yOTMsMjEgKzI5MywyMSBAQAogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYwMAogLyogdXAgdG8gNTAgTUh6IHdlIHVzZSBhIDE6MSBjbG9jayAqLwotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCB8IFNDQ1JfVEJTKQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMDAgfCBTQ0NSX1RCUykKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTMyMCwyOSArMzIwLDI5IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLS8qICNkZWZpbmUJQ0ZHX0RFUgkweDIwMDIwMDBGICovCi0jZGVmaW5lIENGR19ERVIJMAorLyogI2RlZmluZQlDT05GSUdfU1lTX0RFUgkweDIwMDIwMDBGICovCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNTEsMTMgKzM1MSwxMyBAQAogICovCiAKICNkZWZpbmUgRkxBU0hfQkFTRV9QUkVMSU0JMHhGRTAwMDAwMAkvKiBGTEFTSCBiYXNlICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRTAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRTAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAwLCBUUkxYID0gMCwgQ1NOVCA9IDAsIFNDWSA9IDQsIEVUSFIgPSAwLCBCSUggPSAxICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0ggKE9SX1NDWV80X0NMSyB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCAoT1JfU0NZXzRfQ0xLIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfVikKIAogLyoKICAqIEJSMSBhbmQgT1IxIChTRFJBTSkKQEAgLTM2NywxNiArMzY3LDE2IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDAxMDAwMDAwCS8qIG1heCAxNiBNQiAqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBFMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEUwMAogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoU0RSQU1fQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChTRFJBTV9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qIFJQWExJVEUgbWVtIHNldHRpbmcgKi8KLSNkZWZpbmUJQ0ZHX0JSM19QUkVMSU0JMHhGQTQwMDAwMQkJLyogQkNTUiAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkweGZmN2Y4OTcwCi0jZGVmaW5lCUNGR19CUjRfUFJFTElNCTB4RkEwMDA0MDEJCS8qIE5WUkFNJlNSQU0gKi8KLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JMHhGRkY4MDk3MAorI2RlZmluZQlDT05GSUdfU1lTX0JSM19QUkVMSU0JMHhGQTQwMDAwMQkJLyogQkNTUiAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JMHhmZjdmODk3MAorI2RlZmluZQlDT05GSUdfU1lTX0JSNF9QUkVMSU0JMHhGQTAwMDQwMQkJLyogTlZSQU0mU1JBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JMHhGRkY4MDk3MAogCiAvKiBFQ0NYIENTIHNldHRpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAjZGVmaW5lIFNFRDEzODA2X09SICAgICAgICAgICAgIDB4RkZDMDAxMDggICAgIC8qIC0gNCBNbwpAQCAtNDI1LDE5ICs0MjUsMTkgQEAKICAqLwogCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTUFNUl9QVEEJNTgKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk1OAogCiAvKgogICogUmVmcmVzaCBjbG9jayBQcmVzY2FsYXIKICAqLwotI2RlZmluZSBDRkdfTVBUUFIJTVBUUFJfUFRQX0RJVjgKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUglNUFRQUl9QVFBfRElWOAogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiAxMCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfMTBDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl8xMENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8yIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTIgfAlcCiAJCQkgTUFNUl9HUExfQTRESVMgfCBNQU1SX1JMRkFfNFggfCBNQU1SX1dMRkFfM1ggfCBNQU1SX1RMRkFfMTZYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUlBYbGl0ZS5oIGIvaW5jbHVkZS9jb25maWdzL1JQWGxpdGUuaAppbmRleCAyODcwNjU5Li5kZDkxMzRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUlBYbGl0ZS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9SUFhsaXRlLmgKQEAgLTU3LDcgKzU3LDcgQEAKIAkiYm9vdG0iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19CWklQMgkJLyogSW5jbHVkZSBzdXBwb3J0IGZvciBiemlwMiBjb21wcmVzc2VkIGltYWdlcyAgKi8KICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KQEAgLTgxLDI3ICs4MSwyNyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4MDk5MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4MDk5MDAwMDAKIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDQwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHg0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTExLDMwICsxMTEsMzAgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGQTIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkEyMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkMwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZDMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCiAjaWZkZWYgQ09ORklHX0JaSVAyCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNDA5NiA8PCAxMCkJLyogUmVzZXJ2ZSB+NCBNQiBmb3IgbWFsbG9jKCkgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg0MDk2IDw8IDEwKQkvKiBSZXNlcnZlIH40IE1CIGZvciBtYWxsb2MoKSAgICovCiAjZWxzZQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjggS0IgZm9yIG1hbGxvYygpICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IEtCIGZvciBtYWxsb2MoKSAgKi8KICNlbmRpZiAvKiBDT05GSUdfQlpJUDIgKi8KIAogLyoKQEAgLTE0MiwzMSArMTQyLDMxIEBACiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxOQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxOQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUJQ0ZHX0RJUkVDVF9GTEFTSF9URlRQCisjZGVmaW5lCUNPTkZJR19TWVNfRElSRUNUX0ZMQVNIX1RGVFAKIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiBXZSB1c2Ugb25lIGNvbXBsZXRlIHNlY3RvcgkJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTc2LDEwICsxNzYsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgMHgwMDAwMDYwMCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IDB4MDAwMDA2MDAgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTg3LDI4ICsxODcsMjggQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX01MUkMxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9NTFJDMTApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0vKiUlJSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19SVEUpCisvKiUlJSNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpICovCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IgKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yMTksNyArMjE5LDcgQEAKICAqIElmIHRoaXMgaXMgYSA4MCBNSHogQ1BVLCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB0byA1ICg1KjE2PTgwKSEKICAqLwogLyogdXAgdG8gNTAgTUh6IHdlIHVzZSBhIDE6MSBjbG9jayAqLwotI2RlZmluZSBDRkdfUExQUkNSCSggKDUgPDwgUExQUkNSX01GX1NISUZUKSB8IFBMUFJDUl9URVhQUyApCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSggKDUgPDwgUExQUkNSX01GX1NISUZUKSB8IFBMUFJDUl9URVhQUyApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0yMjksMjEgKzIyOSwyMSBAQAogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYwMAogLyogdXAgdG8gNTAgTUh6IHdlIHVzZSBhIDE6MSBjbG9jayAqLwotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00xMSB8IFNDQ1JfVEJTKQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMTEgfCBTQ0NSX1RCUykKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTI1NiwyOSArMjU2LDI5IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLS8qI2RlZmluZQlDRkdfREVSCTB4MjAwMjAwMEYqLwotI2RlZmluZSBDRkdfREVSCTAKKy8qI2RlZmluZQlDT05GSUdfU1lTX0RFUgkweDIwMDIwMDBGKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTI4NywxMyArMjg3LDEzIEBACiAgKi8KIAogI2RlZmluZSBGTEFTSF9CQVNFX1BSRUxJTQkweEZFMDAwMDAwCS8qIEZMQVNIIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZFMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZFMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDAsIFRSTFggPSAwLCBDU05UID0gMCwgU0NZID0gNCwgRVRIUiA9IDAsIEJJSCA9IDEgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSCAoT1JfU0NZXzRfQ0xLIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIChPUl9TQ1lfNF9DTEsgfCBPUl9CSSkKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WKQogCiAvKgogICogQlIxIGFuZCBPUjEgKFNEUkFNKQpAQCAtMzAzLDM1ICszMDMsMzUgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDEwMDAwMDAJLyogbWF4IDE2IE1CICovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEUwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwRTAwCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChTRFJBTV9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKFNEUkFNX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogLyogUlBYTElURSBtZW0gc2V0dGluZyAqLwotI2RlZmluZQlDRkdfQlIzX1BSRUxJTQkweEZBNDAwMDAxCQkvKiBCQ1NSICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCTB4RkZGRjg5MTAKLSNkZWZpbmUJQ0ZHX0JSNF9QUkVMSU0JMHhGQTAwMDQwMQkJLyogTlZSQU0mU1JBTSAqLwotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkweEZGRkUwOTcwCisjZGVmaW5lCUNPTkZJR19TWVNfQlIzX1BSRUxJTQkweEZBNDAwMDAxCQkvKiBCQ1NSICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkweEZGRkY4OTEwCisjZGVmaW5lCUNPTkZJR19TWVNfQlI0X1BSRUxJTQkweEZBMDAwNDAxCQkvKiBOVlJBTSZTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkweEZGRkUwOTcwCiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyCiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTU4CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJNTgKIAogLyoKICAqIFJlZnJlc2ggY2xvY2sgUHJlc2NhbGFyCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSCU1QVFBSX1BUUF9ESVY4CisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJTVBUUFJfUFRQX0RJVjgKIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogMTAgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzEwQ09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfMTBDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMiB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEyIHwJXAogCQkJIE1BTVJfR1BMX0E0RElTIHwgTUFNUl9STEZBXzRYIHwgTUFNUl9XTEZBXzNYIHwgTUFNUl9UTEZBXzE2WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1JQWGxpdGVfRFcuaCBiL2luY2x1ZGUvY29uZmlncy9SUFhsaXRlX0RXLmgKaW5kZXggNmU3MmU5Ni4uYTU5MDUzYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1JQWGxpdGVfRFcuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvUlBYbGl0ZV9EVy5oCkBAIC0xMTIsNyArMTEyLDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gZmxhc2hfc2VsZiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAjdW5kZWYJQ09ORklHX1NUQVRVU19MRUQJCS8qIGRpc3R1cmJzIGRpc3BsYXkuIFN0YXR1cyBMRUQgZGlzYWJsZWQuICovCiAKQEAgLTE0OCw4ICsxNDgsOCBAQAogCiAKIC8qIHRlc3Qtb25seSAqLwotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfQkFOSwkwCSAgICAvKiB1c2UgZm9yIEpGRlMyICovCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJMQkgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyBVLUJvb3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCTAJICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJMQkgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyBVLUJvb3QgKi8KIAogI2RlZmluZSBDT05GSUdfTkVUQ09OU09MRQogCkBAIC0xNTgsMjUgKzE1OCwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkidS1ib290PiIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJInUtYm9vdD4iCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwQzAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEMwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTg2LDQ4ICsxODYsNDggQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGQTIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkEyMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKIAogI2lmIGRlZmluZWQoREVCVUcpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9JREUpCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNpZmRlZglDT05GSUdfRU5WX0lTX0lOX05WUkFNCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHhGQTAwMDEwMApAQCAtMjM4LDE0ICsyMzgsMTQgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDgwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KICNlbmRpZgkvKiBDT05GSUdfRU5WX0lTX0lOX05WUkFNICovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJKCh1bG9uZykoKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY2xrcnN0LnJlcykpKQorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJKCh1bG9uZykoKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2Nsa3JzdC5yZXMpKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTUsMTAgKzI1NSwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCAweDAwMDAwNjAwIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgMHgwMDAwMDYwMCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgkvKiBXZSBjYW4gZ2V0IFNZUENSOiAweEZGRkYwNjg5LiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjYsMTQgKzI2NiwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfTUxSQzEwKQkgICAgICAgLyogU0lVTUNSOjB4MDAwMDA4MDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9NTFJDMTApCSAgICAgICAvKiBTSVVNQ1I6MHgwMDAwMDgwMCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCSAxNi1iaXQJCQkgMTItMTYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYgfCBUQlNDUl9UQkUpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGIHwgVEJTQ1JfVEJFKQogLyogVEJTQ1I6IDB4MDBDMyBbU0FNXSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yODEsNyArMjgxLDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFtSVEMgZW5hYmxlZCBidXQgbm90IHN0b3BwZWQgb24gRlJaXQogICovCi0jZGVmaW5lIENGR19SVENTQyAgICAoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRFKSAvKiBSVENTQzoweDAwQzEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQyAgICAoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRFKSAvKiBSVENTQzoweDAwQzEJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sIDE2LWJpdAkJIDEyLTIzCkBAIC0yODksNyArMjg5LDcgQEAKICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKiBbUGVyaW9kaWMgdGltZXIgZW5hYmxlZCxQZXJpb2RpYyB0aW1lciBpbnRlcnJ1cHQgZGlzYWJsZS4gXQogICovCi0jZGVmaW5lIENGR19QSVNDUiAoUElTQ1JfUFMgfCBQSVNDUl9QSVRGIHwgUElTQ1JfUFRFKSAgLyogUElTQ1I6MHgwMDgzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSIChQSVNDUl9QUyB8IFBJU0NSX1BJVEYgfCBQSVNDUl9QVEUpICAvKiBQSVNDUjoweDAwODMJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkzMi1iaXQJIDUtNwpAQCAtMjk5LDkgKzI5OSw5IEBACiAgKi8KIC8qIHVwIHRvIDY0IE1IeiB3ZSB1c2UgYSAxOjIgY2xvY2sgKi8KICNpZiBkZWZpbmVkKFJQWGxpdGVfNjRNSHopCi0jZGVmaW5lIENGR19QTFBSQ1IJKCAoNyA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwgUExQUkNSX1RFWFBTICkgICAvKlBMUFJDUjogMHgwMDcwMDAwMC4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCAoNyA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwgUExQUkNSX1RFWFBTICkgICAvKlBMUFJDUjogMHgwMDcwMDAwMC4gKi8KICNlbHNlCi0jZGVmaW5lIENGR19QTFBSQ1IJKCAoNSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwgUExQUkNSX1RFWFBTICkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCAoNSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwgUExQUkNSX1RFWFBTICkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMTMsMjMgKzMxMywyMyBAQAogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMDAKIC8qIFVwIHRvIDQ4TUh6IHN5c3RlbSBjbG9jaywgd2UgdXNlIDE6MSBTWVNURU0vQlVTIHJhdGlvICovCiAjaWYgZGVmaW5lZChSUFhsaXRlXzY0TUh6KQotI2RlZmluZSBDRkdfU0NDUgkoIFNDQ1JfVEJTIHwgU0NDUl9FQkRGMDEgKSAgLyogJSUlU0NDUjoweDAyMDIwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoIFNDQ1JfVEJTIHwgU0NDUl9FQkRGMDEgKSAgLyogJSUlU0NDUjoweDAyMDIwMDAwICovCiAjZWxzZQotI2RlZmluZSBDRkdfU0NDUgkoIFNDQ1JfVEJTIHwgU0NDUl9FQkRGMDAgKSAgLyogJSUlU0NDUjoweDAyMDAwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoIFNDQ1JfVEJTIHwgU0NDUl9FQkRGMDAgKSAgLyogJSUlU0NDUjoweDAyMDAwMDAwICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzQxLDIyICszNDEsMjIgQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRAkgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCi0jZGVmaW5lCQlDRkdfREVSCQkwCisjZGVmaW5lCQlDT05GSUdfU1lTX0RFUgkJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM2NCwxMiArMzY0LDEyIEBACiAgKiBCUjAgYW5kIE9SMCAoRkxBU0gpCiAgKi8KICNkZWZpbmUgRkxBU0hfQkFTRV9QUkVMSU0JMHhGQzAwMDAwMAkvKiBGTEFTSCBiYXNlCSovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGQzAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGQzAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAwLCBUUkxYID0gMCwgQ1NOVCA9IDAsIFNDWSA9IDgsIEVUSFIgPSAwLCBCSUggPSAxICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0ggKE9SX1NDWV84X0NMSyB8IE9SX0JJKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggKE9SX1NDWV84X0NMSyB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YpCiAKIC8qCiAgKiBCUjEgYW5kIE9SMSAoU0RSQU0pCkBAIC0zNzksNDAgKzM3OSw0MCBAQAogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJMHgwODAwMDAwMAkvKiBtYXggMTI4IE1CIGluIHN5c3RlbSAqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBFMDAKLSNkZWZpbmUgQ0ZHX09SX0FNX1NEUkFNCQkoLShTRFJBTV9NQVhfU0laRSAmIE9SX0FNX01TSykpCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCSggQ0ZHX09SX0FNX1NEUkFNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoU0RSQU1fQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwRTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfQU1fU0RSQU0JCSgtKFNEUkFNX01BWF9TSVpFICYgT1JfQU1fTVNLKSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCSggQ09ORklHX1NZU19PUl9BTV9TRFJBTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoU0RSQU1fQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAvKiBSUFhsaXRlIG1lbSBzZXR0aW5nICovCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCTB4RkE0MDAwMDEJCS8qIEJDU1IgKi8KLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JMHhGRjdGODkwMAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkweEZBMDAwNDAxCQkvKiBOVlJBTSZTUkFNICovCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCTB4RkZGRTAwNDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCTB4RkE0MDAwMDEJCS8qIEJDU1IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCTB4RkY3Rjg5MDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCTB4RkEwMDA0MDEJCS8qIE5WUkFNJlNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCTB4RkZGRTAwNDAKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKICAqLwogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KICNpZiBkZWZpbmVkKFJQWGxpdGVfNjRNSHopCi0jZGVmaW5lIENGR19NQU1SX1BUQQkzMgorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTMyCiAjZWxzZQotI2RlZmluZSBDRkdfTUFNUl9QVEEJMjAKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkyMAogI2VuZGlmCiAKIC8qCiAgKiBSZWZyZXNoIGNsb2NrIFByZXNjYWxhcgogICovCi0jZGVmaW5lIENGR19NUFRQUglNUFRQUl9QVFBfRElWMgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCU1QVFBSX1BUUF9ESVYyCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wgICgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MICAoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRSB8IFwKIAkJCU1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwKQotLyogQ0ZHX01BTVJfOUNPTDoweDIwOTA0MDAwIEAgNjRNSHogKi8KKy8qIENPTkZJR19TWVNfTUFNUl85Q09MOjB4MjA5MDQwMDAgQCA2NE1IeiAqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9SUFhzdXBlci5oIGIvaW5jbHVkZS9jb25maWdzL1JQWHN1cGVyLmgKaW5kZXggZTgwNTIxMy4uZTk3ZWY5NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1JQWHN1cGVyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1JQWHN1cGVyLmgKQEAgLTgsNyArOCw3IEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogZm9yIHRoZSBBWS1SZXZpc2lvbiB3aGljaCBkb2VzIG5vdCB1c2UgdGhlIEhSQ1cgKi8KLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfSU1NUgkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9JTU1SCTB4MDAwMTAwMDAKIAogLyogV2hhdCBpcyB0aGUgb3NjaWxsYXRvcidzIChVWDIpIGZyZXF1ZW5jeSBpbiBIej8gKi8KICNkZWZpbmUgQ09ORklHXzgyNjBfQ0xLSU4gICg2NiAqIDEwMDAgKiAxMDAwKQpAQCAtMTYsNyArMTYsNyBAQAogLyogSG93IGlzIHN3aXRjaCBTMiBzZXQ/IFdlIHJlYWxseSBvbmx5IHdhbnQgdGhlIE1PRENLWzEtM10gYml0cywgc28KICAqIG9ubHkgdGhlIDMgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBhcmUgaW1wb3J0YW50LgogKi8KLSNkZWZpbmUgQ0ZHX1NCQ19TMiAgMHgwNAorI2RlZmluZSBDT05GSUdfU1lTX1NCQ19TMiAgMHgwNAogCiAvKiBXaGF0IHNob3VsZCBNT0RDS19IIGJlPyBJdCBpcyBkZXBlbmRlbnQgb24gdGhlIG9zY2lsbGF0b3IKICAqIGZyZXF1ZW5jeSwgTU9EQ0tbMS0zXSwgYW5kIGRlc2lyZWQgQ1BNIGFuZCBjb3JlIGZyZXF1ZW5jaWVzLgpAQCAtMjgsNDUgKzI4LDQ1IEBACiAgKiAweDUgICAgICAgMHg1ICAgICAgICAgNjYgICAgIDEzMyAgICAxMzMKICAqIDB4NSAgICAgICAweDcgICAgICAgICA2NiAgICAgMTMzICAgIDIwMAogICovCi0jZGVmaW5lIENGR19TQkNfTU9EQ0tfSCAweDA2CisjZGVmaW5lIENPTkZJR19TWVNfU0JDX01PRENLX0ggMHgwNgogCi0jZGVmaW5lIENGR19TQkNfQk9PVF9MT1cgMQkvKiBvbmx5IGZvciBIUkNXICovCi0jdW5kZWYgQ0ZHX1NCQ19CT09UX0xPVworI2RlZmluZSBDT05GSUdfU1lTX1NCQ19CT09UX0xPVyAxCS8qIG9ubHkgZm9yIEhSQ1cgKi8KKyN1bmRlZiBDT05GSUdfU1lTX1NCQ19CT09UX0xPVwogCiAvKiBXaGF0IHNob3VsZCB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBtYWluIEZMQVNIIGJlIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gTUJ5dGVzKT8gVGhpcyBtdXN0IGNvbnRhaW4gVEVYVF9CQVNFIGZyb20gYm9hcmQvc2JjODI2MC9jb25maWcubWsKICAqIFRoZSBtYWluIEZMQVNIIGlzIHdoaWNoZXZlciBpcyBjb25uZWN0ZWQgdG8gKkNTMC4gVS1Cb290IGV4cGVjdHMKICAqIHRoaXMgdG8gYmUgdGhlIFNJTU0uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9CQVNFIDB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9TSVpFIDE2CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0JBU0UgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFIDE2CiAKIC8qIFdoYXQgc2hvdWxkIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIHNlY29uZGFyeSBGTEFTSCBiZSBhbmQgaG93IGJpZwogICogaXMgaXQgKGluIE1ieXRlcyk/IFRoZSBzZWNvbmRhcnkgRkxBU0ggaXMgd2hpY2hldmVyIGlzIGNvbm5lY3RlZAogICogdG8gKkNTNi4gVS1Cb290IGV4cGVjdHMgdGhpcyB0byBiZSB0aGUgb24gYm9hcmQgRkxBU0guIElmIHlvdSBkb24ndAogICogd2FudCBpdCBlbmFibGVkLCBkb24ndCBkZWZpbmUgdGhlc2UgY29uc3RhbnRzLgogICovCi0jZGVmaW5lIENGR19GTEFTSDFfQkFTRSAwCi0jZGVmaW5lIENGR19GTEFTSDFfU0laRSAwCi0jdW5kZWYgQ0ZHX0ZMQVNIMV9CQVNFCi0jdW5kZWYgQ0ZHX0ZMQVNIMV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX0JBU0UgMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMV9TSVpFIDAKKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSDFfU0laRQogCiAvKiBXaGF0IHNob3VsZCBiZSB0aGUgYmFzZSBhZGRyZXNzIG9mIFNEUkFNIERJTU0gYW5kIGhvdyBiaWcgaXMKICAqIGl0IChpbiBNYnl0ZXMpPwogKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNMF9CQVNFIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9TSVpFIDY0CisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0JBU0UgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9TSVpFIDY0CiAKIC8qIFdoYXQgc2hvdWxkIGJlIHRoZSBiYXNlIGFkZHJlc3Mgb2YgU0RSQU0gRElNTSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1ieXRlcyk/CiAqLwotI2RlZmluZSBDRkdfU0RSQU0xX0JBU0UgMHgwNDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0xX1NJWkUgMzIKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTFfQkFTRSAweDA0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0xX1NJWkUgMzIKIAogLyogV2hhdCBzaG91bGQgYmUgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgTEVEcyBhbmQgc3dpdGNoIFMwPwogICogSWYgeW91IGRvbid0IHdhbnQgdGhlbSBlbmFibGVkLCBkb24ndCBkZWZpbmUgdGhpcy4KICAqLwotI2RlZmluZSBDRkdfTEVEX0JBU0UgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xFRF9CQVNFIDB4MDAwMDAwMDAKIAogLyoKICAqIHNlbGVjdCBzZXJpYWwgY29uc29sZSBjb25maWd1cmF0aW9uCkBAIC0xMDYsMTkgKzEwNiwxOSBAQAogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIDYweCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEhhbGYgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMzfENNWEZDUl9SRjNDU19NU0t8Q01YRkNSX1RGM0NTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNXxDTVhGQ1JfVEYzQ1NfQ0xLMTYpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotLyojZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpICovCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzN8Q01YRkNSX1JGM0NTX01TS3xDTVhGQ1JfVEYzQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNXxDTVhGQ1JfVEYzQ1NfQ0xLMTYpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKy8qI2RlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCTAKIAogI2Vsc2UgLyogQ09ORklHX0VUSEVSX0lOREVYICovCiAjIGVycm9yICJvbiBSUFggU3VwZXIgZXRoZXJuZXQgbXVzdCBiZSBGQ0MzIgogI2VuZGlmIC8qIENPTkZJR19FVEhFUl9JTkRFWCAqLwogCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQyAgICAgICAgIDEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogCiAvKiBEZWZpbmUgdGhpcyB0byByZXNlcnZlIGFuIGVudGlyZSBGTEFTSCBzZWN0b3IgKDI1NiBLQikgZm9yCkBAIC0xNDQsMTAgKzE0NCwxMCBAQAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZICAgICAgICAtMQogCiAvKiB1bmRlZiB0aGlzIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAKIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVCAgICAgICAgICAgICAgIj0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQgICAgICAgICAgICAgICI9PiAiCiAKIAogLyoKQEAgLTE3MywxMCArMTczLDEwIEBACiAKIAogLyogV2hlcmUgZG8gdGhlIGludGVybmFsIHJlZ2lzdGVycyBsaXZlPyAqLwotI2RlZmluZSBDRkdfSU1NUiAgICAgICAgICAgICAgIDB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SICAgICAgICAgICAgICAgMHhGMDAwMDAwMAogCiAvKiBXaGVyZSBkbyB0aGUgb24gYm9hcmQgcmVnaXN0ZXJzIChDUzQpIGxpdmU/ICovCi0jZGVmaW5lIENGR19SRUdTX0JBU0UgICAgICAgICAgMHhGQTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFR1NfQkFTRSAgICAgICAgICAweEZBMDAwMDAwCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTE5NCwyOCArMTk0LDI4IEBACiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0JTSVpFICAgICAgICAgICAgICAxMDI0ICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NCU0laRSAgICAgICAgICAgICAgMTAyNCAgICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCiAjZWxzZQotIyAgZGVmaW5lIENGR19DQlNJWkUgICAgICAgICAgICAgIDI1NiAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFICAgICAgICAgICAgICAyNTYgICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KICNlbmRpZgogCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFICAgICAgICAoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgICAgICAgIChDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCiAKLSNkZWZpbmUgQ0ZHX01BWEFSR1MgICAgICAgOCAgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTICAgICAgIDggICAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCiAKLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFICAgICAgQ0ZHX0NCU0laRSAgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRSAgICAgIENPTkZJR19TWVNfQ0JTSVpFICAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUIDB4MDQwMDAwMDAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgICAweDA2MDAwMDAwICAgLyogNjQtOTYgTUIgaW4gU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUIDB4MDQwMDAwMDAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5EICAgMHgwNjAwMDAwMCAgIC8qIDY0LTk2IE1CIGluIFNEUkFNICovCiAKICNkZWZpbmUJQ09ORklHX0NMT0NLU19JTl9NSFoJMQkvKiBjbG9ja3MgcGFzc3NlZCB0byBMaW51eCBpbiBNSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSICAgICAweDEwMDAwMCAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0haICAgICAgICAgICAgMTAwMCAgICAgICAgIC8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIgICAgIDB4MTAwMDAwICAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haICAgICAgICAgICAgMTAwMCAgICAgICAgIC8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0yMjMsMTA2ICsyMjMsMTA2IEBACiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgIENGR19GTEFTSDBfQkFTRQotI2RlZmluZSBDRkdfU0RSQU1fQkFTRSAgICBDRkdfU0RSQU0wX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFICAgIENPTkZJR19TWVNfRkxBU0gwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFICAgIENPTkZJR19TWVNfU0RSQU0wX0JBU0UKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZCBSZXNldCBDb25maWd1cmF0aW9uIFdvcmRzCiAgKi8KLSNpZiBkZWZpbmVkKENGR19TQkNfQk9PVF9MT1cpCi0jICBkZWZpbmUgIENGR19TQkNfSFJDV19CT09UX0ZMQUdTICAoSFJDV19DSVAgfCBIUkNXX0JNUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfU0JDX0JPT1RfTE9XKQorIyAgZGVmaW5lICBDT05GSUdfU1lTX1NCQ19IUkNXX0JPT1RfRkxBR1MgIChIUkNXX0NJUCB8IEhSQ1dfQk1TKQogI2Vsc2UKLSMgIGRlZmluZSAgQ0ZHX1NCQ19IUkNXX0JPT1RfRkxBR1MgICgwKQotI2VuZGlmIC8qIGRlZmluZWQoQ0ZHX1NCQ19CT09UX0xPVykgKi8KKyMgIGRlZmluZSAgQ09ORklHX1NZU19TQkNfSFJDV19CT09UX0ZMQUdTICAoMCkKKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19TWVNfU0JDX0JPT1RfTE9XKSAqLwogCi0vKiBnZXQgdGhlIEhSQ1cgSVNCIGZpZWxkIGZyb20gQ0ZHX0lNTVIgKi8KLSNkZWZpbmUgQ0ZHX1NCQ19IUkNXX0lNTVIgKCAoKENGR19JTU1SICYgMHgxMDAwMDAwMCkgPj4gMTApIHxcCi0JCQkgICAgKChDRkdfSU1NUiAmIDB4MDEwMDAwMDApID4+IDcpICB8XAotCQkJICAgICgoQ0ZHX0lNTVIgJiAweDAwMTAwMDAwKSA+PiA0KSApCisvKiBnZXQgdGhlIEhSQ1cgSVNCIGZpZWxkIGZyb20gQ09ORklHX1NZU19JTU1SICovCisjZGVmaW5lIENPTkZJR19TWVNfU0JDX0hSQ1dfSU1NUiAoICgoQ09ORklHX1NZU19JTU1SICYgMHgxMDAwMDAwMCkgPj4gMTApIHxcCisJCQkgICAgKChDT05GSUdfU1lTX0lNTVIgJiAweDAxMDAwMDAwKSA+PiA3KSAgfFwKKwkJCSAgICAoKENPTkZJR19TWVNfSU1NUiAmIDB4MDAxMDAwMDApID4+IDQpICkKIAotI2RlZmluZSBDRkdfSFJDV19NQVNURVIgKEhSQ1dfQlBTMTEgICAgICAgICAgICAgICAgICAgICAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSIChIUkNXX0JQUzExICAgICAgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBIUkNXX0RQUEMxMSAgICAgICAgICAgICAgICAgICAgICAgICAgfFwKLQkJCSBDRkdfU0JDX0hSQ1dfSU1NUiAgICAgICAgICAgICAgICAgICAgfFwKKwkJCSBDT05GSUdfU1lTX1NCQ19IUkNXX0lNTVIgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgSFJDV19NTVIwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgSFJDV19MQlBDMTEgICAgICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgSFJDV19BUFBDMTAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgSFJDV19DUzEwUEMwMCAgICAgICAgICAgICAgICAgICAgICAgIHxcCi0JCQkgKENGR19TQkNfTU9EQ0tfSCAmIEhSQ1dfTU9EQ0tfSDExMTEpIHxcCi0JCQkgQ0ZHX1NCQ19IUkNXX0JPT1RfRkxBR1MpCisJCQkgKENPTkZJR19TWVNfU0JDX01PRENLX0ggJiBIUkNXX01PRENLX0gxMTExKSB8XAorCQkJIENPTkZJR19TWVNfU0JDX0hSQ1dfQk9PVF9GTEFHUykKIAogLyogbm8gc2xhdmVzICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMSAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMiAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMyAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNCAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNSAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNiAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNyAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMyAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1IDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNiAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgICAgIENGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgICAgIDB4NDAwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgICAgLyogYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVCAgICAgIENGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAgIENPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAgICAgICAgMHg0MDAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgICAgLyogYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQgICAgICBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAotICogTm90ZSBhbHNvIHRoYXQgdGhlIGxvZ2ljIHRoYXQgc2V0cyBDRkdfUkFNQk9PVCBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQuCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogTm90ZSBhbHNvIHRoYXQgdGhlIGxvZ2ljIHRoYXQgc2V0cyBDT05GSUdfU1lTX1JBTUJPT1QgaXMgcGxhdGZvcm0gZGVwZW5kZW50LgogICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgICAgIChDRkdfRkxBU0gwX0JBU0UgKyAweDAwRjAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICAgICAgKENPTkZJR19TWVNfRkxBU0gwX0JBU0UgKyAweDAwRjAwMDAwKQogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgIGRlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTiAgICAgICgyNTYgPDwgMTApICAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOICAgICAgICgxMjggPDwgMTApICAgICAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gICAgICAoMjU2IDw8IDEwKSAgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4gICAgICAgKDEyOCA8PCAxMCkgICAgIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWiAgICAgICAgKDggPDwgMjApICAgICAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1ogICAgICAgICg4IDw8IDIwKSAgICAgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgMSAgICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVCAgICA3MSAgICAgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgICAxICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICA3MSAgICAgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVCAgODAwMCAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUICAxICAgICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICA4MDAwICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICAxICAgICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgICAgKi8KIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICMgIGRlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIICAxCiAKICMgIGlmZGVmIENPTkZJR19FTlZfSU5fT1dOX1NFQ1QKLSMgICAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAgICAoQ0ZHX01PTklUT1JfQkFTRSArIDB4NDAwMDApCisjICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKICMgICAgZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFICAweDQwMDAwCiAjICBlbHNlCi0jICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgKENGR19GTEFTSF9CQVNFICsgQ0ZHX01PTklUT1JfTEVOIC0gQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKICMgICAgZGVmaW5lIENPTkZJR19FTlZfU0laRSAgICAgICAweDEwMDAgIC8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjICAgIGRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRSAgMHgxMDAwMCAvKiBzZWUgUkVBRE1FIC0gZW52IHNlY3QgcmVhbCBzaXplICovCiAjICBlbmRpZiAvKiBDT05GSUdfRU5WX0lOX09XTl9TRUNUICovCiAjZWxzZQogIyAgZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0gIDEKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgICAoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgICAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFICAgICAgICAgMHgyMDAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFICAgICAgMzIgICAgICAvKiBGb3IgTVBDODI2MCBDUFUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAgICAgIDMyICAgICAgLyogRm9yIE1QQzgyNjAgQ1BVICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUICAgICA1ICAgICAvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUICAgICA1ICAgICAvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMzNSwzMCArMzM1LDMwIEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUICAgKC8qSElEMF9JQ0UgIHwqL1wKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQgICAoLypISUQwX0lDRSAgfCovXAogCQkJIC8qSElEMF9EQ0UgIHwqL1wKIAkJCSBISUQwX0lDRkkgfFwKIAkJCSBISUQwX0RDSSAgfFwKIAkJCSBISUQwX0lGRU0gfFwKIAkJCSBISUQwX0FCRSkKIAotI2RlZmluZSBDRkdfSElEMF9GSU5BTCAgKC8qSElEMF9JQ0UgIHwqL1wKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMICAoLypISUQwX0lDRSAgfCovXAogCQkJIEhJRDBfSUZFTSB8XAogCQkJIEhJRDBfQUJFICB8XAogCQkJIEhJRDBfRU1DUCkKLSNkZWZpbmUgQ0ZHX0hJRDIgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyICAgICAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNUiAtIFJlc2V0IE1vZGUgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUk1SICAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JNUiAgICAgICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LTI1CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0JDUiAgICAgICAgIChCQ1JfRUJNICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IgICAgICAgICAoQkNSX0VCTSAgIHxcCiAJCQkgQkNSX1BMRFAgIHxcCiAJCQkgQkNSX0VBViAgIHxcCiAJCQkgQkNSX05QUU0wKQpAQCAtMzY4LDcgKzM2OCw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIAotI2RlZmluZSBDRkdfU0lVTUNSICAgICAgKFNJVU1DUl9MMkNQQzAxIHxcCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSICAgICAgKFNJVU1DUl9MMkNQQzAxIHxcCiAJCQkgU0lVTUNSX0FQUEMxMCAgfFwKIAkJCSBTSVVNQ1JfQ1MxMFBDMDEpCiAKQEAgLTM3OSw3ICszNzksNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogV2F0Y2hkb2cgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIDYweCBCdXMgTW9uaXRvciBlbmFibGUKICAqLwotI2RlZmluZSBDRkdfU1lQQ1IgICAgICAgKFNZUENSX1NXVEMgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQyB8XAogCQkJIFNZUENSX0JNVCAgfFwKIAkJCSBTWVBDUl9QQk1FIHxcCiAJCQkgU1lQQ1JfTEJNRSB8XApAQCAtMzkyLDcgKzM5Miw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUMgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUMgfFwKIAkJCSBUTUNOVFNDX0FMUiB8XAogCQkJIFRNQ05UU0NfVENGIHxcCiAJCQkgVE1DTlRTQ19UQ0UpCkBAIC00MDMsNyArNDAzLDcgQEAKICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssIGFuZCBlbmFibGUKICAqIFBlcmlvZGljIHRpbWVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSICAgICAgIChQSVNDUl9QUyAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAgICAgICAoUElTQ1JfUFMgIHxcCiAJCQkgUElTQ1JfUFRGIHxcCiAJCQkgUElTQ1JfUFRFKQogCkBAIC00MTEsMTMgKzQxMSwxMyBAQAogICogU0NDUiAtIFN5c3RlbSBDbG9jayBDb250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0NDUiAgICAgICAgKFNDQ1JfREZCUkcwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSICAgICAgICAoU0NDUl9ERkJSRzAxKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSQ0NSIC0gUklTQyBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgMTMtNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SQ0NSICAgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUiAgICAgICAgMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTQ0MSwxMyArNDQxLDEzIEBACiAvKiBCYW5rIDAgLSBGTEFTSAogICoKICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTSAgKChDRkdfRkxBU0gwX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0gICgoQ09ORklHX1NZU19GTEFTSDBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzY0ICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X0RFQ0NfTk9ORSAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0gIChNRUdfVE9fQU0oQ0ZHX0ZMQVNIMF9TSVpFKSAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNICAoTUVHX1RPX0FNKENPTkZJR19TWVNfRkxBU0gwX1NJWkUpICAgICB8XAogCQkJIE9SeEdfQ1NOVCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfQUNTX0RJVjEgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfU0NZXzZfQ0xLICAgICAgICAgICAgICAgICB8XApAQCAtNDU2LDQ4ICs0NTYsNDggQEAKIC8qIEJhbmsgMSAtIFNEUkFNCiAgKgogICovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNICAoKENGR19TRFJBTTBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTSAgKChDT05GSUdfU1lTX1NEUkFNMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfNjQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfTVNfU0RSQU1fUCAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTSAgKE1FR19UT19BTShDRkdfU0RSQU0wX1NJWkUpICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0gIChNRUdfVE9fQU0oQ09ORklHX1NZU19TRFJBTTBfU0laRSkgICAgIHxcCiAJCQkgT1J4U19CUERfNCAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E4ICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19OVU1SXzEyICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19JQklEKQogCi0jZGVmaW5lIENGR19QU0RNUiAgICAgICAweDAxNERBNDEyCi0jZGVmaW5lIENGR19QU1JUCTB4NzkKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUiAgICAgICAweDAxNERBNDEyCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkweDc5CiAKIAogLyogQmFuayAyIC0gU0RSQU0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0gICgoQ0ZHX1NEUkFNMV9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU0xX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU18zMiAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19TRFJBTV9MICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNICAoTUVHX1RPX0FNKENGR19TRFJBTTFfU0laRSkgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTSAgKE1FR19UT19BTShDT05GSUdfU1lTX1NEUkFNMV9TSVpFKSAgICAgfFwKIAkJCSBPUnhTX0JQRF80ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTBfQTkgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX05VTVJfMTIpCiAKLSNkZWZpbmUgQ0ZHX0xTRE1SICAgICAgIDB4MDE2OUE1MTIKLSNkZWZpbmUgQ0ZHX0xTUlQJMHg3OQorI2RlZmluZSBDT05GSUdfU1lTX0xTRE1SICAgICAgIDB4MDE2OUE1MTIKKyNkZWZpbmUgQ09ORklHX1NZU19MU1JUCTB4NzkKIAotI2RlZmluZSBDRkdfTVBUUFIJKDB4MDgwMCAmIE1QVFBSX1BUUF9NU0spCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJKDB4MDgwMCAmIE1QVFBSX1BUUF9NU0spCiAKIC8qIEJhbmsgNCAtIE9uIGJvYXJkIHJlZ2lzdGVycwogICoKICAqLwotI2RlZmluZSBDRkdfQlI0X1BSRUxJTSAgICgoQ0ZHX1JFR1NfQkFTRSAmIEJSeF9CQV9NU0spICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0gICAoKENPTkZJR19TWVNfUkVHU19CQVNFICYgQlJ4X0JBX01TSykgIHxcCiAJCQkgICBCUnhfUFNfOCAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgICBCUnhfTVNfR1BDTV9QICAgICAgICAgICAgICAgIHxcCiAJCQkgICBCUnhfVikKIAotI2RlZmluZSBDRkdfT1I0X1BSRUxJTSAgICAoT1J4R19BTV9NU0sgICAgICAgICAgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTSAgICAoT1J4R19BTV9NU0sgICAgICAgICAgICAgICAgIHxcCiAJCQkgICBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgfFwKIAkJCSAgIE9SeEdfQUNTX0RJVjEgICAgICAgICAgICAgICB8XAogCQkJICAgT1J4R19TQ1lfNV9DTEsgICAgICAgICAgICAgIHxcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUlJ2aXNpb24uaCBiL2luY2x1ZGUvY29uZmlncy9SUnZpc2lvbi5oCmluZGV4IDU0MWQ1ODYuLjZlYzViZTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9SUnZpc2lvbi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9SUnZpc2lvbi5oCkBAIC04NCw3ICs4NCw3IEBACiAKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTIxLDggKzEyMSw4IEBACiAjdW5kZWYJQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZQlDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KIAotIyBkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNTAwMDAJLyogNTAga0h6IGlzIHN1cHBvc2VkIHRvIHdvcmsJKi8KLSMgZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAkvKiA1MCBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLworIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUKIAogI2lmZGVmIENPTkZJR19TT0ZUX0kyQwogLyoKQEAgLTE2MCwyNSArMTYwLDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE4OCw0NCArMTg4LDQ0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgPSBtcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMTIwKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDEgKiBDRkdfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMTIwKkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMSAqIENPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlCSovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfT0ZGU0VUCQkweDgwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTIzNSwxNCArMjM1LDE0IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQrQ09ORklHX0VOVl9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjUyLDEwICsyNTIsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2NCw5ICsyNjQsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzQsMjAgKzI3NCwyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGIHwgUElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYgfCBQSVNDUl9QVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI5Nyw3ICsyOTcsNyBAQAogICovCiAKIC8qIGZvciA2NCBNSHosIHdlIHVzZSBhIDE2IE1IeiBjbG9jayAqIDQgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUiAoICg0LTEpPDxQTFBSQ1JfTUZfU0hJRlQgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QgKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUiAoICg0LTEpPDxQTFBSQ1JfTUZfU0hJRlQgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzA2LDcgKzMwNiw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoLyogU0NDUl9UQlMgIHwgKi8gU0NDUl9SVFNFTCB8IFNDQ1JfUlRESVYgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoLyogU0NDUl9UQlMgIHwgKi8gU0NDUl9SVFNFTCB8IFNDQ1JfUlRESVYgICAgfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTMxNiwxNCArMzE2LDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTMzNiwyOSArMzM2LDI5IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLS8qI2RlZmluZQlDRkdfREVSCTB4MjAwMjAwMEYqLwotI2RlZmluZSBDRkdfREVSCTAKKy8qI2RlZmluZQlDT05GSUdfU1lTX0RFUgkweDIwMDIwMDBGKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM3MiwxOSArMzcyLDE5IEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KIC8qIDY2IE1IeiBDUFUgLSA2NiBNSHogYnVzOiBBQ1MgPSAwMCwgVFJMWCA9IDEsIENTTlQgPSAxLCBTQ1kgPSAzLCBFSFRSID0gMSAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCiAJCQkJIE9SX1NDWV8zX0NMSyB8IE9SX0VIVFIgfCBPUl9CSSkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTM5NSwxOSArMzk1LDE5IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lCUNPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lCUNGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUJQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTQzNywzMyArNDM3LDMzIEBACiAgKiA2NiBNaHogPT4gNjYuMDAwLjAwMCAvIERpdmlkZXIgPSAxMjkKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJMTI5CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCTEyOQogCiAvKgogICogRm9yIDE2IE1CaXQsIHJlZnJlc2ggcmF0ZXMgY291bGQgYmUgMzEuMyB1cwogICogKD0gNjQgbXMgLyAySyA9IDEyNSAvIHF1YWQgYnVyc3RzKS4KICAqIEZvciBhIHNpbXBsZXIgaW5pdGlhbGl6YXRpb24sIDE1LjYgdXMgaXMgdXNlZCBpbnN0ZWFkLgogICoKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCi0gKiAjZGVmaW5lIENGR19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUmF0dGxlci5oIGIvaW5jbHVkZS9jb25maWdzL1JhdHRsZXIuaAppbmRleCA2ZWM1MmU2Li4wMWQwZDVmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUmF0dGxlci5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9SYXR0bGVyLmgKQEAgLTc4LDEwICs3OCwxMCBAQAogICogLSBCRHMvYnVmZmVycyBvbiA2MHggYnVzCiAgKiAtIEZ1bGwgZHVwbGV4CiAgKi8KLSNkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMxIHwgQ01YRkNSX1JGMUNTX01TSyB8IENNWEZDUl9URjFDU19NU0spCi0jZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjFDU19DTEsxMSB8IENNWEZDUl9URjFDU19DTEsxMCkKLSNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSNkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQorI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMxIHwgQ01YRkNSX1JGMUNTX01TSyB8IENNWEZDUl9URjFDU19NU0spCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYxQ1NfQ0xLMTEgfCBDTVhGQ1JfVEYxQ1NfQ0xLMTApCisjZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQogCiAjZWxpZiAoQ09ORklHX0VUSEVSX0lOREVYID09IDIpCiAKQEAgLTkwLDEwICs5MCwxMCBAQAogICogLSBCRHMvYnVmZmVycyBvbiA2MHggYnVzCiAgKiAtIEZ1bGwgZHVwbGV4CiAgKi8KLSNkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCi0jZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxNSB8IENNWEZDUl9URjJDU19DTEsxNCkKLSNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSNkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQorI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTUgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisjZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQogCiAjZW5kaWYgLyogQ09ORklHX0VUSEVSX0lOREVYICovCiAKQEAgLTE2MywzOSArMTYzLDM5IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lCUNGR19ESVJFQ1RfRkxBU0hfVEZUUAorI2RlZmluZQlDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9URlRQCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfSkZGUzIpCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJQ0ZHX01BWF9GTEFTSF9CQU5LUwotI2RlZmluZSBDRkdfSkZGUzJfU09SVF9GUkFHTUVOVFMKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9TT1JUX0ZSQUdNRU5UUwogCiAvKgogICogSkZGUzIgcGFydGl0aW9ucwpAQCAtMjE2LDgzICsyMTYsODMgQEAKICovCiAjZW5kaWYgLyogQ09ORklHX0NNRF9KRkZTMiAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogI2VuZGlmIC8qIENPTkZJR19FTlZfSVNfSU5fRkxBU0ggKi8KIAotI2RlZmluZSBDRkdfREVGQVVMVF9JTU1SCTB4RkYwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX0lNTVIJMHhGRjAxMDAwMAogCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTMyCi0jZGVmaW5lIENGR19TRFJBTV9CUgkJKENGR19TRFJBTV9CQVNFIHwgMHgwMDAwMDA0MSkKLSNkZWZpbmUgQ0ZHX1NEUkFNX09SCQkweEZFMDAyRUMwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQlIJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCAweDAwMDAwMDQxKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX09SCQkweEZFMDAyRUMwCiAKLSNkZWZpbmUgQ0ZHX0JDU1IJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSCQkweEZDMDAwMDAwCiAKIC8qIEhhcmQgcmVzZXQgY29uZmlndXJhdGlvbiB3b3JkICovCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJMHgwQTA2ODc1QSAvKiBOb3QgdXNlZCAtIHByb3ZpZGVkIGJ5IEZQR0EgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJMHgwQTA2ODc1QSAvKiBOb3QgdXNlZCAtIHByb3ZpZGVkIGJ5IEZQR0EgKi8KIC8qIE5vIHNsYXZlcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUyCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMwkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU1CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNwkJMAogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QgICAgICAgICAgICAgICAgICAqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNDA5NiA8PCAxMCkJLyogUmVzZXJ2ZSA0IE1CIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg0MDk2IDw8IDEwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCTAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCShISUQwX0lDRSB8IEhJRDBfSUZFTSB8IEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCShISUQwX0lDRSB8IEhJRDBfSUZFTSB8IEhJRDBfQUJFKQogCi0jZGVmaW5lIENGR19ISUQyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkJMAogCi0jZGVmaW5lIENGR19TSVVNQ1IJCTB4MEUwNEMwMDAKLSNkZWZpbmUgQ0ZHX1NZUENSCQkweEZGRkZGRkMzCi0jZGVmaW5lIENGR19CQ1IJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TQ0NSCQlTQ0NSX0RGQlJHMDEKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJCTB4MEUwNEMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkJMHhGRkZGRkZDMworI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCQlTQ0NSX0RGQlJHMDEKIAotI2RlZmluZSBDRkdfUk1SCQkJUk1SX0NTUkUKLSNkZWZpbmUgQ0ZHX1RNQ05UU0MJCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKLSNkZWZpbmUgQ0ZHX1BJU0NSCQkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKLSNkZWZpbmUgQ0ZHX1JDQ1IJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19STVIJCQlSTVJfQ1NSRQorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MJCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUgkJMAogCi0jZGVmaW5lIENGR19QU0RNUgkJMHg4MjQ5QTQ1MgotI2RlZmluZSBDRkdfUFNSVAkJMHgxRgotI2RlZmluZSBDRkdfTVBUUFIJCTB4MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCQkweDgyNDlBNDUyCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkJMHgxRgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCQkweDIwMDAKIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKENGR19GTEFTSF9CQVNFIHwgMHgwMDAwMTAwMSkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCTB4RkYwMDFFRDYKLSNkZWZpbmUgQ0ZHX0JSN19QUkVMSU0JCShDRkdfQkNTUiB8IDB4MDAwMDA4MDEpCi0jZGVmaW5lIENGR19PUjdfUFJFTElNCQkweEZGRkY4N0Y2CisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IDB4MDAwMDEwMDEpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhGRjAwMUVENgorI2RlZmluZSBDT05GSUdfU1lTX0JSN19QUkVMSU0JCShDT05GSUdfU1lTX0JDU1IgfCAweDAwMDAwODAxKQorI2RlZmluZSBDT05GSUdfU1lTX09SN19QUkVMSU0JCTB4RkZGRjg3RjYKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweEMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweEMwMDAwMDAwCiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvU0JDODU0MC5oIGIvaW5jbHVkZS9jb25maWdzL1NCQzg1NDAuaAppbmRleCAyY2Y3NWUzLi40OGM5MzM5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvU0JDODU0MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9TQkM4NTQwLmgKQEAgLTc5LDkgKzc5LDkgQEAKIAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIDEJICAgIC8qIENhbGwgYm9hcmRfZWFybHlfaW5pdF9mCSovCiAKLSN1bmRlZglDRkdfRFJBTV9URVNUCQkJICAgIC8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lCSovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAgIC8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAorI3VuZGVmCUNPTkZJR19TWVNfRFJBTV9URVNUCQkJICAgIC8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwICAvKiBtZW10ZXN0IHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCiAKICNpZiAoZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19UU0VDX0VORVQpIHx8IFwKICAgICAgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19FVEhFUl9PTl9GQ0MpIHx8IFwKQEAgLTkzLDE3ICs5MywxNyBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0CSovCiAKICNpZiBYWFgKLSAgI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhmZGYwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUgkqLworICAjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUgkJMHhmZGYwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUgkqLwogI2Vsc2UKLSAgI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhmZjcwMDAwMAkvKiBkZWZhdWx0IENDU1JCQVIJKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJCTB4ZmY3MDAwMDAJLyogZGVmYXVsdCBDQ1NSQkFSCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfUEhZUwlDRkdfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDRkdfSU1NUgkqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUwlDT05GSUdfU1lTX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDT05GSUdfU1lTX0lNTVIJKi8KIAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJNTEyCQkvKiBERFIgaXMgNTEyTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQk1MTIJCS8qIEREUiBpcyA1MTJNQiAqLwogCiAvKiBERFIgU2V0dXAgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9ERFIxCkBAIC0xMjAsOCArMTIwLDggQEAKICN1bmRlZiBDT05GSUdfRUNDX0lOSVRfVklBX0REUkNPTlRST0xMRVIJLyogRERSIGNvbnRyb2xsZXIgb3IgRE1BPyAqLwogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNCiAKICNkZWZpbmUgQ09ORklHX05VTV9ERFJfQ09OVFJPTExFUlMJMQpAQCAtMTM0LDY5ICsxMzQsNjkgQEAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgogCiAjaWYgZGVmaW5lZChDT05GSUdfUkFNX0FTX0ZMQVNIKQotICAjZGVmaW5lIENGR19MQkNfU0RSQU1fQkFTRQkweGZjMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCi0gICNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJMHhmODAwMDAwMCAgICAgIC8qIHN0YXJ0IG9mIEZMQVNIIDhNICAqLwotICAjZGVmaW5lIENGR19CUjBfUFJFTElNCTB4ZjgwMDA4MDEgICAgICAvKiBwb3J0IHNpemUgOGJpdCAqLwotICAjZGVmaW5lIENGR19PUjBfUFJFTElNCTB4ZjgwMDBmZjcJLyogOE1CIEZsYXNoCQkqLworICAjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UJMHhmYzAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLworICAjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkweGY4MDAwMDAwICAgICAgLyogc3RhcnQgb2YgRkxBU0ggOE0gICovCisgICNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCTB4ZjgwMDA4MDEgICAgICAvKiBwb3J0IHNpemUgOGJpdCAqLworICAjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkweGY4MDAwZmY3CS8qIDhNQiBGbGFzaAkJKi8KICNlbHNlIC8qIEJvb3QgZnJvbSByZWFsIEZsYXNoICovCi0gICNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4ZjgwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KLSAgI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkweGZmODAwMDAwICAgICAgLyogc3RhcnQgb2YgRkxBU0ggOE0gICAgKi8KLSAgI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkweGZmODAwODAxICAgICAgLyogcG9ydCBzaXplIDhiaXQgICAgICAqLwotICAjZGVmaW5lIENGR19PUjBfUFJFTElNCTB4ZmY4MDBmZjcJLyogOE1CIEZsYXNoCQkqLworICAjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UJMHhmODAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLworICAjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkweGZmODAwMDAwICAgICAgLyogc3RhcnQgb2YgRkxBU0ggOE0gICAgKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JMHhmZjgwMDgwMSAgICAgIC8qIHBvcnQgc2l6ZSA4Yml0ICAgICAgKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JMHhmZjgwMGZmNwkvKiA4TUIgRmxhc2gJCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQgkqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQgkqLwogCiAvKiBsb2NhbCBidXMgZGVmaW5pdGlvbnMgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCTB4ZTQwMDE4MDEJLyogNjRNLCAzMi1iaXQgZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4ZmMwMDBmZjcKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkweGU0MDAxODAxCS8qIDY0TSwgMzItYml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhmYzAwMGZmNwogCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkweDAwMDAwMDAwCS8qIENTMiBub3QgdXNlZCAqLwotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4MDAwMDAwMDAJLyogQ1MyIG5vdCB1c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkweGYwMDAxODYxCS8qIDY0TUIgbG9jYWxidXMgU0RSQU0JKi8KLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JCTB4ZmMwMDBjYzEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkweGYwMDAxODYxCS8qIDY0TUIgbG9jYWxidXMgU0RSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkweGZjMDAwY2MxCiAKICNpZiBkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpCi0gICNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JMHhmNDAwMTg2MQkvKiA2NE0gbG9jYWxidXMgU0RSQU0gKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0JMHhmNDAwMTg2MQkvKiA2NE0gbG9jYWxidXMgU0RSQU0gKi8KICNlbHNlCi0gICNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JMHhmODAwMTg2MQkvKiA2NE0gbG9jYWxidXMgU0RSQU0gKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0JMHhmODAwMTg2MQkvKiA2NE0gbG9jYWxidXMgU0RSQU0gKi8KICNlbmRpZgotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkJMHhmYzAwMGNjMQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JCTB4ZmMwMDBjYzEKIAotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJMHhmYzAwMDgwMQkvKiAxNk0gQ1M1IG1pc2MgZGV2aWNlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JCTB4ZmMwMDA4MDEJLyogMTZNIENTNSBtaXNjIGRldmljZXMgKi8KICNpZiAxCi0gICNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JMHhmZjAwMGZmNworICAjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkweGZmMDAwZmY3CiAjZWxzZQotICAjZGVmaW5lIENGR19PUjVfUFJFTElNCTB4ZmYwMDAwZjAKKyAgI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JMHhmZjAwMDBmMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JCTB4ZTAwMDE4MDEJLyogNjRNLCAzMi1iaXQgZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX09SNl9QUkVMSU0JCTB4ZmMwMDBmZjcKLSNkZWZpbmUgQ0ZHX0xCQ19MQ1JSCQkweDAwMDMwMDAyCS8qIGxvY2FsIGJ1cyBmcmVxCSovCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTEJDX0xTUlQJCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCQ19NUlRQUgkJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzEJCTB4Mjg2MWI3MjMKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8yCQkweDA4NjFiNzIzCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMwkJMHgwODYxYjcyMwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzQJCTB4MTg2MWI3MjMKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl81CQkweDQwNjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTQkJMHhlMDAwMTgwMQkvKiA2NE0sIDMyLWJpdCBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNl9QUkVMSU0JCTB4ZmMwMDBmZjcKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTENSUgkJMHgwMDAzMDAwMgkvKiBsb2NhbCBidXMgZnJlcQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQkNSCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMQkJMHgyODYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8yCQkweDA4NjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzMJCTB4MDg2MWI3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfNAkJMHgxODYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl81CQkweDQwNjFiNzIzCiAKIC8qIGp1c3QgaGlqYWNrIHRoZSBNT1QgQkNTUiBkZWYgZm9yIFNCQzg1NjAgbWlzYyBkZXZpY2VzICovCi0jZGVmaW5lIENGR19CQ1NSCQkoKENGR19CUjVfUFJFTElNICYgMHhmZjAwMDAwMCl8MHgwMDQwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSCQkoKENPTkZJR19TWVNfQlI1X1BSRUxJTSAmIDB4ZmYwMDAwMDApfDB4MDA0MDAwMDApCiAvKiB0aGUgc2l6ZSBvZiBDUzUgbmVlZHMgdG8gYmUgPj0gMTZNIGZvciBUTEIgYW5kIExBVyBzZXR1cHMgKi8KIAogI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDcwMDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDcwMDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKiBTZXJpYWwgUG9ydCAqLwogI3VuZGVmICBDT05GSUdfQ09OU19PTl9TQ0MJCQkvKiBkZWZpbmUgaWYgY29uc29sZSBvbiBTQ0MgKi8KQEAgLTIwNCwzMyArMjA0LDMzIEBACiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVggICAgIDEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKICNpZiAwCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJMTg0MzIwMCAvKiBnZXRfYnVzX2ZyZXEoMCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJMTg0MzIwMCAvKiBnZXRfYnVzX2ZyZXEoMCkgKi8KICNlbHNlCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJMjY0MDAwMDAwIC8qIGdldF9idXNfZnJlcSgwKSAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkyNjQwMDAwMDAgLyogZ2V0X2J1c19mcmVxKDApICovCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAogI2lmIDAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoKENGR19CUjVfUFJFTElNICYgMHhmZjAwMDAwMCkrMHgwMDcwMDAwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoKENGR19CUjVfUFJFTElNICYgMHhmZjAwMDAwMCkrMHgwMDgwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKChDT05GSUdfU1lTX0JSNV9QUkVMSU0gJiAweGZmMDAwMDAwKSsweDAwNzAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoKENPTkZJR19TWVNfQlI1X1BSRUxJTSAmIDB4ZmYwMDAwMDApKzB4MDA4MDAwMDApCiAjZWxzZQogLyogU0JDODU0MCB1c2VzIGludGVybmFsIENPTU0gY29udHJvbGxlciAqLwotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCSgoQ0ZHX0NDU1JCQVIgJiAweGZmZjAwMDAwKSsweDAwMDA0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCSgoQ0ZHX0NDU1JCQVIgJiAweGZmZjAwMDAwKSsweDAwMDA0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoKENPTkZJR19TWVNfQ0NTUkJBUiAmIDB4ZmZmMDAwMDApKzB4MDAwMDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCSgoQ09ORklHX1NZU19DQ1NSQkFSICYgMHhmZmYwMDAwMCkrMHgwMDAwNDYwMCkKICNlbmRpZgogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qCkBAIC0yMzksMTQgKzIzOSwxNCBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAogCi0jZGVmaW5lIENGR19QQ0lfTUVNX0JBU0UJMHhDMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9QSFlTCTB4QzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CQVNFCTB4QzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMJMHhDMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCiAKICNpZiBkZWZpbmVkKENPTkZJR19UU0VDX0VORVQpCQkvKiBUU0VDIEV0aGVybmV0IHBvcnQgKi8KIApAQCAtMjczLDEwICsyNzMsMTAgQEAKICAgICAgKiAtIFNlbGVjdCBidXMgZm9yIGJkL2J1ZmZlcnMKICAgICAgKiAtIEZ1bGwgZHVwbGV4CiAgICAgICovCi0gICAgI2RlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKLSAgICAjZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxMyB8IENNWEZDUl9URjJDU19DTEsxNCkKLSAgICAjZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0gICAgI2RlZmluZSBDRkdfRkNDX1BTTVIJKEZDQ19QU01SX0ZERSkKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTMgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJKEZDQ19QU01SX0ZERSkKIAogICAjZWxpZiAoQ09ORklHX0VUSEVSX0lOREVYID09IDMpCiAgICAgLyogbmVlZCBtb3JlIGRlZmluaXRpb25zIGhlcmUgZm9yIEZFMyAqLwpAQCAtMzA2LDQ2ICszMDYsNDYgQEAKICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CQkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlcgkJKi8KICNpZiAwCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgICAgLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCQkvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgICAgLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkJLyogdXNlIGhhcmR3YXJlIHByb3RlY3Rpb24JCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCiAKLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjAwMDAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMDAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjAwMDAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KIAogI2lmIDAKIC8qIFhYWCBUaGlzIGRvZXNuJ3Qgd29yayBhbmQgSSBkb24ndCB3YW50IHRvIGZpeCBpdCAqLwotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0gICNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisgICNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotICAjdW5kZWYgIENGR19SQU1CT09UCisgICN1bmRlZiAgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKICNlbmRpZgogCiAvKiBFbnZpcm9ubWVudCAqLwotI2lmICFkZWZpbmVkKENGR19SQU1CT09UKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICAgI2lmIGRlZmluZWQoQ09ORklHX1JBTV9BU19GTEFTSCkKICAgICAjZGVmaW5lIENPTkZJR19FTlZfSVNfTk9XSEVSRQotICAgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIDB4MTAwMDAwKQorICAgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDEwMDAwMCkKICAgICAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkweDIwMDAKICAgI2Vsc2UKICAgICAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogICAgICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMCAvKiAxMjhLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KLSAgICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX01PTklUT1JfQkFTRSAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQorICAgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQogICAgICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCTB4MjAwMCAvKiBDT05GSUdfRU5WX1NFQ1RfU0laRSAqLwogICAjZW5kaWYKICNlbHNlCi0gICNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93CSovCisgICNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdwkqLwogICAjZGVmaW5lIENPTkZJR19FTlZfSVNfTk9XSEVSRQkxCS8qIFN0b3JlIEVOViBpbiBtZW1vcnkgb25seQkqLwotICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAgICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNlbmRpZgogCkBAIC0zNTUsNyArMzU1LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CS8qIC0xIGRpc2FibGUgYXV0b2Jvb3QgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAKIC8qCkBAIC0zODMsNyArMzgzLDcgQEAKICAgICAjZGVmaW5lIENPTkZJR19DTURfTUlJCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAgICAgI3VuZGVmIENPTkZJR19DTURfRU5WCiAgICAgI3VuZGVmIENPTkZJR19DTURfTE9BRFMKICNlbmRpZgpAQCAtMzk0LDI1ICszOTQsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIlNCQzg1NDA9PiAiIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiU0JDODU0MD0+ICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotICAjZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSAgI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1NDTS5oIGIvaW5jbHVkZS9jb25maWdzL1NDTS5oCmluZGV4IDUwY2Y0OTkuLmM2ZmIwNzQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9TQ00uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvU0NNLmgKQEAgLTc1LDggKzc1LDggQEAKIC8qIGVuYWJsZSBJMkMgYW5kIHNlbGVjdCB0aGUgaGFyZHdhcmUvc29mdHdhcmUgZHJpdmVyICovCiAjdW5kZWYgIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUgQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIFNvZnR3YXJlIChiaXQtYmFuZykgSTJDIGRyaXZlciBjb25maWd1cmF0aW9uCkBAIC05MiwxMCArOTIsMTAgQEAKIAkJCWVsc2UgICAgaW9wLT5wZGF0ICY9IH4weDAwMDIwMDAwCiAjZGVmaW5lIEkyQ19ERUxBWQl1ZGVsYXkoNSkJLyogMS80IEkyQyBjbG9jayBkdXJhdGlvbiAqLwogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAyCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDIKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAjZGVmaW5lIENPTkZJR19JMkNfWAogCkBAIC0xNTEsMTAgKzE1MSwxMCBAQAogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIDYweCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMxfENNWEZDUl9SRjFDU19NU0t8Q01YRkNSX1RGMUNTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjFDU19DTEsxMnxDTVhGQ1JfVEYxQ1NfQ0xLMTEpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzF8Q01YRkNSX1JGMUNTX01TS3xDTVhGQ1JfVEYxQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjFDU19DTEsxMnxDTVhGQ1JfVEYxQ1NfQ0xLMTEpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQogCiAjZWxpZiBkZWZpbmVkKENPTkZJR19FVEhFUl9PTl9GQ0MpICYmIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMykKIApAQCAtMTY0LDEwICsxNjQsMTAgQEAKICAqIC0gUkFNIGZvciBCRC9CdWZmZXJzIGlzIG9uIHRoZSA2MHggQnVzIChzZWUgMjgtMTMpCiAgKiAtIEVuYWJsZSBGdWxsIER1cGxleCBpbiBGU01SCiAgKi8KLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDM3xDTVhGQ1JfUkYzQ1NfTVNLfENNWEZDUl9URjNDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYzQ1NfQ0xLMTV8Q01YRkNSX1RGM0NTX0NMSzE2KQotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMzfENNWEZDUl9SRjNDU19NU0t8Q01YRkNSX1RGM0NTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYzQ1NfQ0xLMTV8Q01YRkNSX1RGM0NTX0NMSzE2KQorIyBkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjIGRlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKIAogI2VuZGlmIC8qIENPTkZJR19FVEhFUl9PTl9GQ0MsIENPTkZJR19FVEhFUl9JTkRFWCAqLwogCkBAIC0xODYsNyArMTg2LDcgQEAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0yMTQsMjcgKzIxNCwyNyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUIDB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCAweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkJKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCi0jZGVmaW5lCUNGR19SRVNFVF9BRERSRVNTIDB4RkZGRkZGRkMJLyogImJhZCIgYWRkcmVzcwkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19SRVNFVF9BRERSRVNTIDB4RkZGRkZGRkMJLyogImJhZCIgYWRkcmVzcwkJKi8KIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJCS8qIGhhdmUgbWlzY19pbml0X3IoKSBmdW5jdGlvbgkqLwogCkBAIC0yNDMsMzUgKzI0MywzNSBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaICAgICAgICAoOCA8PCAyMCkgICAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWiAgICAgICAgKDggPDwgMjApICAgICAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogCiAvKiBXaGF0IHNob3VsZCB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBtYWluIEZMQVNIIGJlIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gTUJ5dGVzKT8gVGhpcyBtdXN0IGNvbnRhaW4gVEVYVF9CQVNFIGZyb20gYm9hcmQvdHFtODI2MC9jb25maWcubWsKICAqIFRoZSBtYWluIEZMQVNIIGlzIHdoaWNoZXZlciBpcyBjb25uZWN0ZWQgdG8gKkNTMC4KICAqLwotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UgMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gxX0JBU0UgMHg2MDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gwX1NJWkUgMzIKLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9TSVpFIDMyCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0JBU0UgMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFIDB4NjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfU0laRSAzMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMV9TSVpFIDMyCiAKIC8qIEZsYXNoIGJhbmsgc2l6ZSAoZm9yIHByZWxpbWluYXJ5IHNldHRpbmdzKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFIENGR19GTEFTSDBfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUgQ09ORklHX1NZU19GTEFTSDBfU0laRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCiAKICNpZiAwCiAvKiBTdGFydCBwb3J0IHdpdGggZW52aXJvbm1lbnQgaW4gZmxhc2g7IHN3aXRjaCB0byBFRVBST00gbGF0ZXIgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFKzB4NDAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSsweDQwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAogI2Vsc2UKQEAgLTI4NCw2MyArMjg0LDYzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZHMKICAqCi0gKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDRkdfKgorICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ09ORklHX1NZU18qCiAgKiBkZWZpbmVzIGZvciB0aGUgdmFyaW91cyByZWdpc3RlcnMgYWZmZWN0ZWQgYnkgdGhlIEhSQ1cgZS5nLiBjaGFuZ2luZwotICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENGR19TSVVNQ1IuCisgKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ09ORklHX1NZU19TSVVNQ1IuCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR18yNjZNSHopCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMTEgfCBIUkNXX0JNUyB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMTEgfCBIUkNXX0JNUyB8IFwKIAkJCQkJCQkgICAgICBIUkNXX01PRENLX0gwMTExKQogI2VsaWYgZGVmaW5lZChDT05GSUdfMzAwTUh6KQotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJCShIUkNXX0NJUCB8IEhSQ1dfSVNCMTExIHwgSFJDV19CTVMgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJCShIUkNXX0NJUCB8IEhSQ1dfSVNCMTExIHwgSFJDV19CTVMgfCBcCiAJCQkJCQkJICAgICAgSFJDV19NT0RDS19IMDExMCkKICNlbHNlCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMTEgfCBIUkNXX0JNUykKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMTEgfCBIUkNXX0JNUykKICNlbmRpZgogCiAvKiBubyBzbGF2ZXMgc28ganVzdCBmaWxsIHdpdGggemVyb3MgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOCAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjggLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICoKLSAqIDYweCBTRFJBTSBpcyBtYXBwZWQgYXQgQ0ZHX1NEUkFNX0JBU0UsIGxvY2FsIFNEUkFNCisgKiA2MHggU0RSQU0gaXMgbWFwcGVkIGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSwgbG9jYWwgU0RSQU0KICAqIGlzIG1hcHBlZCBhdCBTRFJBTV9CQVNFMl9QUkVMSU0uCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19GTEFTSDBfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtMzU0LDE2ICszNTQsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUgICAgICAzMiAgICAgIC8qIEZvciBNUEM4MjYwIENQVSAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAgICAgIDMyICAgICAgLyogRm9yIE1QQzgyNjAgQ1BVICAgICAgICAgICAgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzc2LDI4ICszNzYsMjggQEAKICAqCiAgKiBISUQxIGhhcyBvbmx5IHJlYWQtb25seSBpbmZvcm1hdGlvbiAtIG5vdGhpbmcgdG8gc2V0LgogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQgICAoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfEhJRDBfRENJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQgICAoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfEhJRDBfRENJfFwKIAkJCQlISUQwX0lGRU18SElEMF9BQkUpCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMICAoSElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwgIChISUQwX0lGRU18SElEMF9BQkUpCisjZGVmaW5lIENPTkZJR19TWVNfSElEMiAgICAgICAgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSTVIgLSBSZXNldCBNb2RlIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUtNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogdHVybiBvbiBDaGVja3N0b3AgUmVzZXQgRW5hYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX1JNUiAgICAgICAgIFJNUl9DU1JFCisjZGVmaW5lIENPTkZJR19TWVNfUk1SICAgICAgICAgUk1SX0NTUkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LTI1CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KICNpZmRlZglDT05GSUdfQlVTTU9ERV82MHgKLSNkZWZpbmUgQ0ZHX0JDUiAgICAgICAgIChCQ1JfRUJNfEJDUl9MMkN8QkNSX0xFVE18XAorI2RlZmluZSBDT05GSUdfU1lTX0JDUiAgICAgICAgIChCQ1JfRUJNfEJDUl9MMkN8QkNSX0xFVE18XAogCQkJIEJDUl9OUFFNMHxCQ1JfTlBRTTF8QkNSX05QUU0yKQkvKiA2MHggbW9kZSAgKi8KICNlbHNlCiAjZGVmaW5lIEJDUl9BUEQwMQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19CQ1IJCShCQ1JfQVBEMDF8QkNSX0VUTXxCQ1JfTEVUTSkJLyogODI2MCBtb2RlICovCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkoQkNSX0FQRDAxfEJDUl9FVE18QkNSX0xFVE0pCS8qIDgyNjAgbW9kZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQwNSw5ICs0MDUsOSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjaWYgMAotI2RlZmluZSBDRkdfU0lVTUNSICAgICAgKFNJVU1DUl9EUFBDMTB8U0lVTUNSX0FQUEMxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IgICAgICAoU0lVTUNSX0RQUEMxMHxTSVVNQ1JfQVBQQzEwKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NJVU1DUiAgICAgIChTSVVNQ1JfRFBQQzAwfFNJVU1DUl9BUFBDMTApCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSICAgICAgKFNJVU1DUl9EUFBDMDB8U0lVTUNSX0FQUEMxMCkKICNlbmRpZgogCiAKQEAgLTQxOCwxMCArNDE4LDEwIEBACiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUHxTWVBDUl9TV0UpCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1ApCiAjZW5kaWYgLyogQ09ORklHX1dBVENIRE9HICovCiAKQEAgLTQzMSw3ICs0MzEsNyBAQAogICogQ2xlYXIgb25jZSBwZXIgU2Vjb25kIGFuZCBBbGFybSBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLAogICogYW5kIGVuYWJsZSBUaW1lIENvdW50ZXIKICAqLwotI2RlZmluZSBDRkdfVE1DTlRTQyAgICAgKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MgICAgIChUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sICAgICAgICAgICAgICAgICA0LTQyCkBAIC00MzksMjAgKzQzOSwyMCBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IgICAgICAgKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IgICAgICAgKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgQ29udHJvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS04CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnN1cmUgREZCUkcgaXMgRGl2aWRlIGJ5IDE2CiAgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSICAgICAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAxMy03CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSICAgICAgICAwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtNDY3LDE3ICs0NjcsMTcgQEAKIAogCS8qIEluaXRpYWxpemUgU0RSQU0gb24gbG9jYWwgYnVzCiAJICovCi0jZGVmaW5lIENGR19JTklUX0xPQ0FMX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9MT0NBTF9TRFJBTQogCiAjZGVmaW5lIFNEUkFNX01BWF9TSVpFCTB4MDgwMDAwMDAJLyogbWF4LiAxMjggTUIJCSovCiAKIC8qIE1pbmltdW0gbWFzayB0byBzZXBhcmF0ZSBwcmVsaW1pbmFyeQogICogYWRkcmVzcyByYW5nZXMgZm9yIENTWzA6Ml0KICAqLwotI2RlZmluZSBDRkdfR0xPQkFMX1NEUkFNX0xJTUlUCSg1MTI8PDIwKQkvKiBsZXNzIHRoYW4gNTEyIE1CICovCi0jZGVmaW5lIENGR19MT0NBTF9TRFJBTV9MSU1JVAkoMTI4PDwyMCkJLyogbGVzcyB0aGFuIDEyOCBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0dMT0JBTF9TRFJBTV9MSU1JVAkoNTEyPDwyMCkJLyogbGVzcyB0aGFuIDUxMiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQ0FMX1NEUkFNX0xJTUlUCSgxMjg8PDIwKQkvKiBsZXNzIHRoYW4gMTI4IE1CICovCiAKLSNkZWZpbmUgQ0ZHX01QVFBSICAgICAgIDB4NDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSICAgICAgIDB4NDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBBZGRyZXNzIGZvciBNb2RlIFJlZ2lzdGVyIFNldCAoTVJTKSBjb21tYW5kCkBAIC00OTQsMTcgKzQ5NCwxNyBAQAogICogIFNldHRpbmdzOiAgICAgICAgICAgICAgfCAgMCAgfCAgMCAgICAwICB8ICAwICAxICAwICB8ICAwICB8ICAgMCAgMSAgMCAgICB8CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX01SU19PRkZTCTB4MDAwMDAxMTAKKyNkZWZpbmUgQ09ORklHX1NZU19NUlNfT0ZGUwkweDAwMDAwMTEwCiAKIAogLyogQmFuayAwIC0gRkxBU0gKICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTSAgKChDRkdfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0gICgoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykgIHxcCiAJCQkgQlJ4X1BTXzY0ICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0gIChNRUdfVE9fQU0oQ0ZHX0ZMQVNIX1NJWkUpICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNICAoTUVHX1RPX0FNKENPTkZJR19TWVNfRkxBU0hfU0laRSkgICAgICB8XAogCQkJIE9SeEdfQ1NOVCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfQUNTX0RJVjEgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfU0NZXzNfQ0xLICAgICAgICAgICAgICAgICB8XApAQCAtNTE3LDI1ICs1MTcsMjUgQEAKIAogLyogQmFuayAxIC0gNjB4IGJ1cyBTRFJBTQogICovCi0jZGVmaW5lIENGR19QU1JUICAgICAgICAweDIwCi0jZGVmaW5lIENGR19MU1JUICAgICAgICAweDIwCi0jaWZuZGVmIENGR19SQU1CT09UCi0jZGVmaW5lIENGR19CUjFfUFJFTElNICAoKENGR19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVCAgICAgICAgMHgyMAorI2RlZmluZSBDT05GSUdfU1lTX0xTUlQgICAgICAgIDB4MjAKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTSAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKIAkJCSBCUnhfUFNfNjQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfTVNfU0RSQU1fUCAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IxXzhDT0wKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IxXzhDT0wKIAogCiAJLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzIGZvciA4LWNvbHVtbiBjaGlwcwogCSAqLwotI2RlZmluZSBDRkdfT1IxXzhDT0wgICAgKCh+KENGR19HTE9CQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMV84Q09MICAgICgofihDT05GSUdfU1lTX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCiAJCQkgT1J4U19CUERfNCAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19ST1dTVF9QQkkxX0E3ICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19OVU1SXzEyKQogCi0jZGVmaW5lIENGR19QU0RNUl84Q09MICAoUFNETVJfUEJJICAgICAgICAgICAgICAgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfOENPTCAgKFBTRE1SX1BCSSAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQU1fQTE1X0lTX0E1ICAgICAgICAgICB8XAogCQkJIFBTRE1SX0JTTUFfQTEyX0ExNCAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTFfQTggICAgICAgICAgICB8XApAQCAtNTQ5LDEyICs1NDksMTIgQEAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOS1jb2x1bW4gY2hpcHMKIAkgKi8KLSNkZWZpbmUgQ0ZHX09SMV85Q09MICAgICgofihDRkdfR0xPQkFMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfOUNPTCAgICAoKH4oQ09ORklHX1NZU19HTE9CQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAogCQkJIE9SeFNfQlBEXzQgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BNSAgICAgICAgICAgICB8XAogCQkJIE9SeFNfTlVNUl8xMykKIAotI2RlZmluZSBDRkdfUFNETVJfOUNPTCAgKFBTRE1SX1BCSSAgICAgICAgICAgICAgICAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SXzlDT0wgIChQU0RNUl9QQkkgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREFNX0ExNl9JU19BNSAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9CU01BX0ExMl9BMTQgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREExMF9QQkkxX0E3ICAgICAgICAgICAgfFwKQEAgLTU2OCwyNCArNTY4LDI0IEBACiAKIC8qIEJhbmsgMiAtIExvY2FsIGJ1cyBTRFJBTQogICovCi0jaWZkZWYgQ0ZHX0lOSVRfTE9DQUxfU0RSQU0KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0gICgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJ4X0JBX01TSykgfFwKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfTE9DQUxfU0RSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNICAoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzMyICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX1NEUkFNX0wgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JQ0ZHX09SMl84Q09MCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQlDT05GSUdfU1lTX09SMl84Q09MCiAKICNkZWZpbmUgU0RSQU1fQkFTRTJfUFJFTElNCTB4ODAwMDAwMDAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOC1jb2x1bW4gY2hpcHMKIAkgKi8KLSNkZWZpbmUgQ0ZHX09SMl84Q09MICAgICgofihDRkdfTE9DQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMl84Q09MICAgICgofihDT05GSUdfU1lTX0xPQ0FMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKIAkJCSBPUnhTX0JQRF80ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTFfQTggICAgICAgICAgICAgfFwKIAkJCSBPUnhTX05VTVJfMTIpCiAKLSNkZWZpbmUgQ0ZHX0xTRE1SXzhDT0wgIChQU0RNUl9QQkkgICAgICAgICAgICAgICAgICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19MU0RNUl84Q09MICAoUFNETVJfUEJJICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBTV9BMTVfSVNfQTUgICAgICAgICAgIHxcCiAJCQkgUFNETVJfQlNNQV9BMTNfQTE1ICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMV9BOSAgICAgICAgICAgIHxcCkBAIC01OTksMTIgKzU5OSwxMiBAQAogCiAJLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzIGZvciA5LWNvbHVtbiBjaGlwcwogCSAqLwotI2RlZmluZSBDRkdfT1IyXzlDT0wgICAgKCh+KENGR19MT0NBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IyXzlDT0wgICAgKCh+KENPTkZJR19TWVNfTE9DQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAogCQkJIE9SeFNfQlBEXzQgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BNiAgICAgICAgICAgICB8XAogCQkJIE9SeFNfTlVNUl8xMykKIAotI2RlZmluZSBDRkdfTFNETVJfOUNPTCAgKFBTRE1SX1BCSSAgICAgICAgICAgICAgICAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0xTRE1SXzlDT0wgIChQU0RNUl9QQkkgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREFNX0ExNl9JU19BNSAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9CU01BX0ExM19BMTUgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREExMF9QQkkxX0E4ICAgICAgICAgICAgfFwKQEAgLTYxNiw1MyArNjE2LDUzIEBACiAJCQkgUFNETVJfV1JDXzJDICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfQ0xfMikKIAotI2VuZGlmIC8qIENGR19JTklUX0xPQ0FMX1NEUkFNICovCisjZW5kaWYgLyogQ09ORklHX1NZU19JTklUX0xPQ0FMX1NEUkFNICovCiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCi0jZGVmaW5lIENGR19DQU4wX0JBU0UJCTB4YzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NBTjFfQkFTRQkJMHhjMDAwODAwMAotI2RlZmluZSBDRkdfRklPWF9CQVNFCQkweGMwMDEwMDAwCi0jZGVmaW5lIENGR19GRE9ITV9CQVNFCQkweGMwMDE4MDAwCi0jZGVmaW5lIENGR19FWFRQUk9NX0JBU0UJMHhjMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NBTjBfQkFTRQkJMHhjMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NBTjFfQkFTRQkJMHhjMDAwODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZJT1hfQkFTRQkJMHhjMDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZET0hNX0JBU0UJCTB4YzAwMTgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FWFRQUk9NX0JBU0UJMHhjMjAwMDAwMAogCi0jZGVmaW5lIENGR19DQU5fU0laRQkJMHgwMDAwMDEwMAotI2RlZmluZSBDRkdfRklPWF9TSVpFCQkweDAwMDAwMDIwCi0jZGVmaW5lIENGR19GRE9ITV9TSVpFCQkweDAwMDAyMDAwCi0jZGVmaW5lIENGR19FWFRQUk9NX0JBTktfU0laRQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOX1NJWkUJCTB4MDAwMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GSU9YX1NJWkUJCTB4MDAwMDAwMjAKKyNkZWZpbmUgQ09ORklHX1NZU19GRE9ITV9TSVpFCQkweDAwMDAyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUFJPTV9CQU5LX1NJWkUJMHgwMTAwMDAwMAogCiAjZGVmaW5lIEVYVF9FRVBST01fTUFYX0ZMQVNIX0JBTktTCTB4MDIKIAogLyogQ1MzIC0gQ0FOIDAKICAqLwotI2RlZmluZSBDRkdfQ0FOMF9CUjMgICAoKENGR19DQU4wX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX0NBTjBfQlIzICAgKChDT05GSUdfU1lTX0NBTjBfQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQlCUnhfUFNfOAkJCXxcCiAJCQlCUnhfTVNfVVBNQQkJCXxcCiAJCQlCUnhfVikKIAotI2RlZmluZSBDRkdfQ0FOMF9PUjMgICAoUDJTWl9UT19BTShDRkdfQ0FOX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOMF9PUjMgICAoUDJTWl9UT19BTShDT05GSUdfU1lTX0NBTl9TSVpFKQl8XAogCQkJT1J4VV9CSQkJCQl8XAogCQkJT1J4VV9FSFRSXzRJRExFKQogCiAvKiBDUzQgLSBDQU4gMQogICovCi0jZGVmaW5lIENGR19DQU4xX0JSNCAgICgoQ0ZHX0NBTjFfQkFTRSAmIEJSeF9CQV9NU0spCXxcCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOMV9CUjQgICAoKENPTkZJR19TWVNfQ0FOMV9CQVNFICYgQlJ4X0JBX01TSykJfFwKIAkJCUJSeF9QU184CQkJfFwKIAkJCUJSeF9NU19VUE1BCQkJfFwKIAkJCUJSeF9WKQogCi0jZGVmaW5lIENGR19DQU4xX09SNCAgIChQMlNaX1RPX0FNKENGR19DQU5fU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19DQU4xX09SNCAgIChQMlNaX1RPX0FNKENPTkZJR19TWVNfQ0FOX1NJWkUpCXxcCiAJCQlPUnhVX0JJCQkJCXxcCiAJCQlPUnhVX0VIVFJfNElETEUpCiAKIC8qIENTNSAtIEV4dGVuZGVkIFBST00gKDE2TUIgb3B0aW9uYWwpCiAgKi8KLSNkZWZpbmUgQ0ZHX0VYVFBST01fQlI1ICgoQ0ZHX0VYVFBST01fQkFTRSAmIEJSeF9CQV9NU0spfFwKKyNkZWZpbmUgQ09ORklHX1NZU19FWFRQUk9NX0JSNSAoKENPTkZJR19TWVNfRVhUUFJPTV9CQVNFICYgQlJ4X0JBX01TSyl8XAogCQkJQlJ4X1BTXzMyCQkJfFwKIAkJCUJSeF9NU19HUENNX1AJCQl8XAogCQkJQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX0VYVFBST01fT1I1IChQMlNaX1RPX0FNKENGR19FWFRQUk9NX0JBTktfU0laRSl8XAorI2RlZmluZSBDT05GSUdfU1lTX0VYVFBST01fT1I1IChQMlNaX1RPX0FNKENPTkZJR19TWVNfRVhUUFJPTV9CQU5LX1NJWkUpfFwKIAkJCU9SeEdfQ1NOVAkJCXxcCiAJCQlPUnhHX0FDU19ESVY0CQkJfFwKIAkJCU9SeEdfU0NZXzVfQ0xLCQkJfFwKQEAgLTY3MCwxMyArNjcwLDEzIEBACiAKIC8qIENTNiAtIEV4dGVuZGVkIFBST00gKDE2TUIgb3B0aW9uYWwpCiAgKi8KLSNkZWZpbmUgQ0ZHX0VYVFBST01fQlI2ICgoKENGR19FWFRQUk9NX0JBU0UgKyBcCi0JCQlDRkdfRVhUUFJPTV9CQU5LX1NJWkUpICYgQlJ4X0JBX01TSyl8XAorI2RlZmluZSBDT05GSUdfU1lTX0VYVFBST01fQlI2ICgoKENPTkZJR19TWVNfRVhUUFJPTV9CQVNFICsgXAorCQkJQ09ORklHX1NZU19FWFRQUk9NX0JBTktfU0laRSkgJiBCUnhfQkFfTVNLKXxcCiAJCQlCUnhfUFNfMzIJCQl8XAogCQkJQlJ4X01TX0dQQ01fUAkJCXxcCiAJCQlCUnhfVikKIAotI2RlZmluZSBDRkdfRVhUUFJPTV9PUjYgKFAyU1pfVE9fQU0oQ0ZHX0VYVFBST01fQkFOS19TSVpFKXxcCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUFJPTV9PUjYgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19FWFRQUk9NX0JBTktfU0laRSl8XAogCQkJT1J4R19DU05UCQkJfFwKIAkJCU9SeEdfQUNTX0RJVjQJCQl8XAogCQkJT1J4R19TQ1lfNV9DTEsJCQl8XApAQCAtNjg0LDM3ICs2ODQsMzcgQEAKIAogLyogQ1M3IC0gRlBHQSBGSU9YOiBHbHVlIExvZ2ljCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZJT1hfQlI3ICAgKChDRkdfRklPWF9CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19GSU9YX0JSNyAgICgoQ09ORklHX1NZU19GSU9YX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAogCQkJQlJ4X1BTXzMyCQkJfFwKIAkJCUJSeF9NU19HUENNX1AJCQl8XAogCQkJQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX0ZJT1hfT1I3ICAgKFAyU1pfVE9fQU0oQ0ZHX0ZJT1hfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19GSU9YX09SNyAgIChQMlNaX1RPX0FNKENPTkZJR19TWVNfRklPWF9TSVpFKQl8XAogCQkJT1J4R19BQ1NfRElWNAkJCXxcCiAJCQlPUnhHX1NDWV81X0NMSwkJCXxcCiAJCQlPUnhHX1RSTFgpCiAKIC8qIENTOCAtIEZQR0EgRE9IIE1hc3RlcgogICovCi0jZGVmaW5lIENGR19GRE9ITV9CUjggICgoQ0ZHX0ZET0hNX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX0ZET0hNX0JSOCAgKChDT05GSUdfU1lTX0ZET0hNX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAogCQkJQlJ4X1BTXzE2CQkJfFwKIAkJCUJSeF9NU19HUENNX1AJCQl8XAogCQkJQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX0ZET0hNX09SOCAgKFAyU1pfVE9fQU0oQ0ZHX0ZET0hNX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfRkRPSE1fT1I4ICAoUDJTWl9UT19BTShDT05GSUdfU1lTX0ZET0hNX1NJWkUpCXxcCiAJCQlPUnhHX0FDU19ESVY0CQkJfFwKIAkJCU9SeEdfU0NZXzVfQ0xLCQkJfFwKIAkJCU9SeEdfVFJMWCkKIAogCiAvKiBGUEdBIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX1BEX0ZJT1hfUFJPRwkoMSA8PCAoMzEtIDUpKQkvKiBQRCAgNSAqLwotI2RlZmluZSBDRkdfUERfRklPWF9ET05FCSgxIDw8ICgzMS0yOCkpCS8qIFBEIDI4ICovCi0jZGVmaW5lIENGR19QRF9GSU9YX0lOSVQJKDEgPDwgKDMxLTI5KSkJLyogUEQgMjkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QRF9GSU9YX1BST0cJKDEgPDwgKDMxLSA1KSkJLyogUEQgIDUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QRF9GSU9YX0RPTkUJKDEgPDwgKDMxLTI4KSkJLyogUEQgMjggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QRF9GSU9YX0lOSVQJKDEgPDwgKDMxLTI5KSkJLyogUEQgMjkgKi8KIAotI2RlZmluZSBDRkdfUERfRkRPSE1fUFJPRwkoMSA8PCAoMzEtIDQpKQkvKiBQRCAgNCAqLwotI2RlZmluZSBDRkdfUERfRkRPSE1fRE9ORQkoMSA8PCAoMzEtMjYpKQkvKiBQRCAyNiAqLwotI2RlZmluZSBDRkdfUERfRkRPSE1fSU5JVAkoMSA8PCAoMzEtMjcpKQkvKiBQRCAyNyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BEX0ZET0hNX1BST0cJKDEgPDwgKDMxLSA0KSkJLyogUEQgIDQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QRF9GRE9ITV9ET05FCSgxIDw8ICgzMS0yNikpCS8qIFBEIDI2ICovCisjZGVmaW5lIENPTkZJR19TWVNfUERfRkRPSE1fSU5JVAkoMSA8PCAoMzEtMjcpKQkvKiBQRCAyNyAqLwogCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvU0w4MjQ1LmggYi9pbmNsdWRlL2NvbmZpZ3MvU0w4MjQ1LmgKaW5kZXggODlkMTQ2MS4uODc2ZDg4MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1NMODI0NS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9TTDgyNDUuaApAQCAtNDcsNyArNDcsNyBAQAogCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CiAKQEAgLTc0LDcwICs3NCw3MCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI3VuZGVmIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI3VuZGVmIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogCiAvKiBQcmludCBCdWZmZXIgU2l6ZQogICovCi0jZGVmaW5lIENGR19QQlNJWkUJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMzIJCS8qIE1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDAwNDAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkzMgkJLyogTWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MDA0MDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFMF9QUkVMSU0JMHhGRjgwMDAwMAkvKiBGTEFTSCBiYW5rIG9uIFJDUyMwICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfRkxBU0hfQkFTRTBfUFJFTElNCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LUwkJeyBDRkdfRkxBU0hfQkFTRTBfUFJFTElNIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFMF9QUkVMSU0JMHhGRjgwMDAwMAkvKiBGTEFTSCBiYW5rIG9uIFJDUyMwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19GTEFTSF9CQVNFMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LUwkJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UwX1BSRUxJTSB9CiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MgICAweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKIAotI2RlZmluZSBDRkdfRVVNQl9BRERSCSAgICAweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVVNQl9BRERSCSAgICAweEZDMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSAgICAoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCSAgICAoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgICgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJICAgIDB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECSAgICAweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCiAKIAkvKiBNYXhpbXVtIGFtb3VudCBvZiBSQU0uCiAJICovCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUgICAgMHgxMDAwMDAwMAkvKiAwIC4uIDI1NiBNQiBvZiAoUylEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFICAgIDB4MTAwMDAwMDAJLyogMCAuLiAyNTYgTUIgb2YgKFMpRFJBTSAqLwogCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCi0jdW5kZWYgQ0ZHX1JBTUJPT1QKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyN1bmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jZGVmaW5lIENGR19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0VVTUJfQUREUiArIDB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NTAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEKICAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4Ci0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgICAweDEwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgMTI4CisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAgICAgMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAgICAgIDB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE0Nyw0MCArMTQ3LDQwIEBACiAgKi8KIAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRICA2NjY2NjY2NgkvKiBleHRlcm5hbCBmcmVxdWVuY3kgdG8gcGxsICovCi0jZGVmaW5lIENGR19IWgkJICAgICAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCSAgICAgMTAwMAogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjEuCiAJICovCi0jZGVmaW5lIENGR19ST01OQUwJICAgIDAKLSNkZWZpbmUgQ0ZHX1JPTUZBTAkgICAgNwotI2RlZmluZSBDRkdfQkFOSzBfUk9XICAgICAgIDIKKyNkZWZpbmUgQ09ORklHX1NZU19ST01OQUwJICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ST01GQUwJICAgIDcKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9ST1cgICAgICAgMgogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjIuCiAJICovCi0jZGVmaW5lIENGR19SRUZJTlQJICAgIDB4NDAwCSAgICAvKiBSZWZyZXNoIGludGVydmFsCUZJWE1FOiB3YXMgMHQ0MzAJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGSU5UCSAgICAweDQwMAkgICAgLyogUmVmcmVzaCBpbnRlcnZhbAlGSVhNRTogd2FzIDB0NDMwCQkqLwogCiAJLyogQnVyc3QgVG8gUHJlY2hhcmdlLiBCaXRzIG9mIHRoaXMgdmFsdWUgZ28gdG8gTUNDUjMgYW5kIE1DQ1I0LgogCSAqLwotI2RlZmluZSBDRkdfQlNUT1BSRQkgICAgMTkyCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRQkgICAgMTkyCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMy4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQwkgICAgMgkgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbCAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwkgICAgMgkgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbCAqLwogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjQuCiAJICovCi0jZGVmaW5lIENGR19QUkVUT0FDVAkgICAgMgkgICAgLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsICovCi0jZGVmaW5lIENGR19BQ1RUT1BSRQkgICAgNQkgICAgLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsICovCi0jZGVmaW5lIENGR19BQ1RPUlcJICAgIDMgICAgICAgLyogRklYTUUgd2FzIDIgKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUICAzCSAgICAvKiBTRE1PREUgQ0FTIGxhdGFuY3kgKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9XUkFQCSAgICAwCSAgICAvKiBTRE1PREUgd3JhcCB0eXBlCSovCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQotI2RlZmluZSBDRkdfRVhUUk9NCSAgICAxCi0jZGVmaW5lIENGR19SRUdESU1NCSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJICAgIDIJICAgIC8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVFRPUFJFCSAgICA1CSAgICAvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RPUlcJICAgIDMgICAgICAgLyogRklYTUUgd2FzIDIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVCAgMwkgICAgLyogU0RNT0RFIENBUyBsYXRhbmN5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX1dSQVAJICAgIDAJICAgIC8qIFNETU9ERSB3cmFwIHR5cGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQorI2RlZmluZSBDT05GSUdfU1lTX0VYVFJPTQkgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX1JFR0RJTU0JICAgIDAKIAotI2RlZmluZSBDRkdfT0RDUgkJMHhmZgkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkJMHhmZgkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCiAJCQkJCS8qIHNlZSA4MjQ1IGJvb2sgZm9yIGJpdCBkZWZpbml0aW9ucwkqLwotI2RlZmluZSBDRkdfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDUgcmV0YWlucyB0aGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QR01BWAkJMHgzMgkvKiBob3cgbG9uZyB0aGUgODI0NSByZXRhaW5zIHRoZQkqLwogCQkJCQkvKiBjdXJyZW50bHkgYWNjZXNzZWQgcGFnZSBpbiBtZW1vcnkJKi8KIAkJCQkJLyogc2VlIDgyNDUgYm9vayBmb3IgZGV0YWlscwkJKi8KIApAQCAtMTkxLDY3ICsxOTEsNjcgQEAKICAqIGFkZHJlc3MuIFJlZmVyIHRvIHRoZSBNUEM4MjQwIGJvb2suCiAgKi8KIAotI2RlZmluZSBDRkdfQkFOSzBfU1RBUlQJICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkswX0VORAkgICAgKENGR19NQVhfUkFNX1NJWkUgLSAxKQotI2RlZmluZSBDRkdfQkFOSzBfRU5BQkxFICAgIDEKLSNkZWZpbmUgQ0ZHX0JBTksxX1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMV9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksxX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LMl9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzJfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMl9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzNfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkszX0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzNfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks0X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks0X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNV9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNV9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzZfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzZfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks3X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks3X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfU1RBUlQJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkQJICAgIChDT05GSUdfU1lTX01BWF9SQU1fU0laRSAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VOQUJMRSAgICAwCiAKLSNkZWZpbmUgQ0ZHX0lCQVQwTCAgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQyTCAgKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQzTCAgKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMICAoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAgQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVICBDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMICBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgIENGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVICBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMICBDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSAgQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAgQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgIENPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMICBDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSAgQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIHBlciBmbGFzaAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIHBlciBmbGFzaAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KIAogCiAJLyogV2FyaW5pbmc6IGVudmlyb25tZW50IGlzIG5vdCBFTUJFRERFRCBpbiB0aGUgVS1Cb290IGNvZGUuCkBAIC0yNjUsOSArMjY1LDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1NNODUwLmggYi9pbmNsdWRlL2NvbmZpZ3MvU004NTAuaAppbmRleCBjODk2YjU4Li40YzQ2OWUzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvU004NTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvU004NTAuaApAQCAtNjAsNyArNjAsNyBAQAogCSJib290bSIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtOTMsMjUgKzkzLDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikgJiYgZGVmaW5lZChLR0RCX0RFQlVHKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTIxLDUwICsxMjEsNTAgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCiAjaWYgZGVmaW5lZChERUJVRykKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkweDgwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTE3NSwxNiArMTc1LDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE5NCwxMCArMTk0LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDYsOSArMjA2LDkgQEAKICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KICNpZm5kZWYgQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjE2LDIwICsyMTYsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yNDAsMTAgKzI0MCwxMCBAQAogICogSWYgdGhpcyBpcyBhIDgwIE1IeiBDUFUsIHNldCBQTEwgbXVsdGlwbGljYXRpb24gZmFjdG9yIHRvIDUgKDUqMTY9ODApIQogICovCiAjaWZkZWYgVFFNOHh4TF84ME1IegkvKiBmb3IgODAgTUh6LCB3ZSB1c2UgYSAxNiBNSHogY2xvY2sgKiA1ICovCi0jZGVmaW5lIENGR19QTFBSQ1IJCQkJCQkJXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkJCQkJCQlcCiAJCSggKDUtMSk8PFBMUFJDUl9NRl9TSElGVCB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCApCiAjZWxzZQotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAjZW5kaWYJLyogVFFNOHh4TF84ME1IeiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTQsMTIgKzI1NCwxMiBAQAogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQogI2lmZGVmIFRRTTh4eExfODBNSHoJLyogZm9yIDgwIE1Ieiwgd2UgdXNlIGEgMTYgTUh6IGNsb2NrICogNSAqLwotI2RlZmluZSBDRkdfU0NDUgkoLyogU0NDUl9UQlMgIHwgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKC8qIFNDQ1JfVEJTICB8ICovIFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogI2Vsc2UJCQkvKiB1cCB0byA1MCBNSHogd2UgdXNlIGEgMToxIGNsb2NrICovCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCkBAIC0yNzAsMjEgKzI3MCwyMSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTI5OSwyMCArMjk5LDIwIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMTEsIFRSTFggPSAwLCBDU05UID0gMSwgU0NZID0gNSwgRUhUUiA9IDEJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVYyIHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV81X0NMSyB8IE9SX0VIVFIpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTMyMywxOSArMzIzLDE5IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lCUNPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lIENGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTM0NCwyNiArMzQ0LDI2IEBACiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk3CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9TTU40Mi5oIGIvaW5jbHVkZS9jb25maWdzL1NNTjQyLmgKaW5kZXggNDVmZTE0Yi4uNDVlNmE1OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1NNTjQyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1NNTjQyLmgKQEAgLTQ5LDggKzQ5LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtODAsMTMgKzgwLDEzIEBACiAjdW5kZWYJQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCiAvKiB0aGlzIHdvdWxkIGJlIDB4QUUgaWYgRTAsIEUxIGFuZCBFMiB3ZXJlIHB1bGxlZCBoaWdoICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4QTAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkoMHhBMCA+PiAxKQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAyIC8qIDE2IGJpdCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDYgLyogNjQgYnl0ZXMgcGVyIHdyaXRlICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAyMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhBMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkoMHhBMCA+PiAxKQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMiAvKiAxNiBiaXQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNiAvKiA2NCBieXRlcyBwZXIgd3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAyMAogLyogbm90IHVzZWQgYnV0IHJlcXVpcmVkIGJ5IGRldmljZXMuYyAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVEIDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVEIDEwMDAwCiAKICNpZmRlZiBDT05GSUdfU09GVF9JMkMKIC8qCkBAIC0xMjksMjYgKzEyOSwyNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJTTU40MiAjICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiU01ONDIgIyAiIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDgxODAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDgzMDAwMDAwCS8qIDI0IE1CIGluIFNSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4ODE4MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDgzMDAwMDAwCS8qIDI0IE1CIGluIFNSQU0JKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHg4MTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHg4MTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCQkJCQkJLyogZm9yIHVDbGludXggaW1nIGlzIGhlcmUqLwogCi0jZGVmaW5lIENGR19TWVNfQ0xLX0ZSRVEJNTg5ODI0MDAJLyogSHogKi8KLSNkZWZpbmUJQ0ZHX0haCQkJMjA0OAkJLyogZGVjcmVtZW50ZXIgZnJlcSBpbiBIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NZU19DTEtfRlJFUQk1ODk4MjQwMAkvKiBIeiAqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMjA0OAkJLyogZGVjcmVtZW50ZXIgZnJlcSBpbiBIeiAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xNzcsMjMgKzE3NywyMyBAQAogICovCiAKIC8qCi0gKiBUaGUgZmlyc3QgZW50cnkgaW4gQ0ZHX0ZMQVNIX0JBTktTX0xJU1QgaXMgYSBkdW1teSwgYnV0IGl0IG11c3QgYmUgcHJlc2VudC4KKyAqIFRoZSBmaXJzdCBlbnRyeSBpbiBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgaXMgYSBkdW1teSwgYnV0IGl0IG11c3QgYmUgcHJlc2VudC4KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IDAsIFBIWVNfRkxBU0hfMSB9Ci0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJCTB4NTU1Ci0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJCTB4MkFBCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTE2Mzg0CS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IDAsIFBIWVNfRkxBU0hfMSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCQkweDU1NQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkJMHgyQUEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTE2Mzg0CS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjggIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOCAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogLyogVGhlIEVudmlyb25tZW50IFNlY3RvciBpcyBpbiB0aGUgQ1BVLWludGVybmFsIGZsYXNoICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgzQzAwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAgLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9UQUcKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9TUEQ4MjNUUy5oIGIvaW5jbHVkZS9jb25maWdzL1NQRDgyM1RTLmgKaW5kZXggOTI5YTRiNi4uOTIwMTM0NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1NQRDgyM1RTLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1NQRDgyM1RTLmgKQEAgLTU1LDcgKzU1LDcgQEAKIAkJCQkibmZzYWRkcnM9MTAuMC4wLjk5OjEwLjAuMC4yIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC05NCwyOSArOTQsMjkgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwRjAwMDAwCS8qIDEgLi4uIDE1TUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBGMDAwMDAJLyogMSAuLi4gMTVNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19QSU9fTU9ERQkJMAkvKiBJREUgaW50ZXJmYWNlIGluIFBJTyBNb2RlIDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QSU9fTU9ERQkJMAkvKiBJREUgaW50ZXJmYWNlIGluIFBJTyBNb2RlIDAJKi8KIAotI2RlZmluZSBDRkdfUENfSURFX1JFU0VUCSgodXNob3J0KTB4MDAwOCkJLyogUEMgMTIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ19JREVfUkVTRVQJKCh1c2hvcnQpMHgwMDA4KQkvKiBQQyAxMgkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTI2LDQ2ICsxMjYsNDYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMCAvKiB3YXM6IDB4RkYwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwIC8qIHdhczogMHhGRjAwMDAwMCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKICNpZmRlZglERUJVRwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBNb25pdG9yCSovCiAjZWxzZQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMAkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTAJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTAJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg4MDAwCS8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xNzMsOSArMTczLDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTg1LDEwICsxODUsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE5NywyMSArMTk3LDIxIEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAvKiAweDAwMDAwMDQwICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMCB8IFNJVU1DUl9HQjVFKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAwIHwgU0lVTUNSX0dCNUUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yMjAsNyArMjIwLDcgQEAKICAqIGludGVycnVwdCBzdGF0dXMgYml0LCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciAhCiAgKi8KIC8qIDB4MDBiMGMwYzAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCQkJCQkJCVwKIAkJKAkoMTEgPDwgUExQUkNSX01GX1NISUZUKSB8CQkJXAogCQkJUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgLypQTFBSQ1JfVE1JU1R8Ki8gXAogCQkJLypQTFBSQ1JfQ1NSQ3wqLyBQTFBSQ1JfTFBNX05PUk1BTCB8CQlcCkBAIC0yMzUsNyArMjM1LDcgQEAKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKIC8qIDB4MDE4MDAwMTQgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAJfCAvKlNDQ1JfVEJTfCovCQlcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMAl8IC8qU0NDUl9UQlN8Ki8JCVwKIAkJCSBTQ0NSX1JURElWCXwgICBTQ0NSX1JUU0VMCSAgfAlcCiAJCQkgLypTQ0NSX0NSUUVOfCovICAvKlNDQ1JfUFJRRU58Ki8JXAogCQkJIFNDQ1JfRUJERjAwCXwgICBTQ0NSX0RGU1lOQzAwIHwJXApAQCAtMjQ4LDcgKzI0OCw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIC8qIDB4MDBDMyAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTYsNDYgKzI1Niw0NiBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAvKiBUSU1FUD0yICovCi0jZGVmaW5lIENGR19SQ0NSIDB4MDIwMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgMHgwMjAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNRFMgLSBSSVNDIE1pY3JvY29kZSBEZXZlbG9wbWVudCBTdXBwb3J0IENvbnRyb2wgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUk1EUyAwCisjZGVmaW5lIENPTkZJR19TWVNfUk1EUyAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNEU1IgLSBTRE1BIFN0YXR1cyBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TRFNSICgodV9jaGFyKTB4ODMpCisjZGVmaW5lIENPTkZJR19TWVNfU0RTUiAoKHVfY2hhcikweDgzKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTRE1SIC0gU0RNQSBNYXNrIFJlZ2lzdGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1NETVIgKCh1X2NoYXIpMHgwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TRE1SICgodV9jaGFyKTB4MDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKiBJbnRlcnJ1cHQgTGV2ZWxzCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0NQTV9JTlRFUlJVUFQJMTMJLyogU0lVX0xFVkVMNgkqLworI2RlZmluZSBDT05GSUdfU1lTX0NQTV9JTlRFUlJVUFQJMTMJLyogU0lVX0xFVkVMNgkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZgpAQCAtMzA1LDIzICszMDUsMjMgQEAKICNkZWZpbmUgQ09ORklHX0lERV9MRUQJCTEJLyogTEVEICAgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KICNkZWZpbmUgQ09ORklHX0lERV9SRVNFVAkxCS8qIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTIJLyogbWF4LiAyIElERSBidXNzZXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCShDRkdfSURFX01BWEJVUyoyKSAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMgkvKiBtYXguIDIgSURFIGJ1c3NlcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCShDT05GSUdfU1lTX0lERV9NQVhCVVMqMikgLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cyAqLwogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4RkUxMDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUxX09GRlNFVAkweDBDMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4RkUxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VUCTB4MEMwMAogCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDgwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDAwODAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIgMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUiAwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzM3LDIyICszMzcsMjIgQEAKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwogLyogRVBST01zIGFyZSA1MTJrYiAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4RkZGODAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMSwgVFJMWCA9IDAsIENTTlQgPSAxLCBTQ1kgPSA1LCBFSFRSID0gMQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICSgvKiBPUl9DU05UX1NBTSB8ICovIE9SX0FDU19ESVY0IHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICSgvKiBPUl9DU05UX1NBTSB8ICovIE9SX0FDU19ESVY0IHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV81X0NMSyB8IE9SX0VIVFIpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKIC8qIDE2IGJpdCwgYmFuayB2YWxpZCAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQogLyogMTYgYml0LCBiYW5rIHZhbGlkICovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQogCiAvKgogICogQlIyLTUgYW5kIE9SMi01IChTUkFNL1NEUkFNL1BFUjgvU0hBUkMpCkBAIC0zNzMsNDQgKzM3Myw0NCBAQAogCiAvKiBTUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCiAKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TUkFNCTB4MDAwMDBENDIJLyogU1JBTS1UaW1pbmcgKi8KLSNkZWZpbmUgQ0ZHX09SMiAoU1JBTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU1JBTSApCi0jZGVmaW5lIENGR19CUjIgKChTUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU1JBTQkweDAwMDAwRDQyCS8qIFNSQU0tVGltaW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IyIChTUkFNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU1JBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyICgoU1JBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCiAKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCS8qIFNEUkFNLVRpbWluZyAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkoU0RSQU1fUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUIgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAkvKiBTRFJBTS1UaW1pbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCShTRFJBTV9QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1CIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19QRVI4CTB4MDAwMDBGMzIJLyogUEVSOC1UaW1pbmcgKi8KLSNkZWZpbmUgQ0ZHX09SNCAoUEVSOF9PUl9BTSB8IENGR19PUl9USU1JTkdfUEVSOCApCi0jZGVmaW5lIENGR19CUjQgKChQRVI4X0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19QRVI4CTB4MDAwMDBGMzIJLyogUEVSOC1UaW1pbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjQgKFBFUjhfT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19QRVI4ICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjQgKChQRVI4X0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0hBUkMJMHgwMDAwMDcwMAkvKiBTSEFSQy1UaW1pbmcgKi8KLSNkZWZpbmUgQ0ZHX09SNSAoU0hBUkNfT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NIQVJDICkKLSNkZWZpbmUgQ0ZHX0JSNSAoKFNIQVJDX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMzIgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NIQVJDCTB4MDAwMDA3MDAJLyogU0hBUkMtVGltaW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfT1I1IChTSEFSQ19PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NIQVJDICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjUgKChTSEFSQ19CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzMyIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKICAqLwogCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTUJNUl9QVEIJMjA0CisjZGVmaW5lIENPTkZJR19TWVNfTUJNUl9QVEIJMjA0CiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQk1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQk1SXzhDT0wJKChDRkdfTUJNUl9QVEIgPDwgTUJNUl9QVEJfU0hJRlQpICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19NQk1SXzhDT0wJKChDT05GSUdfU1lTX01CTVJfUFRCIDw8IE1CTVJfUFRCX1NISUZUKSAgfCBcCiAJCQkgTUJNUl9BTUJfVFlQRV8wIHwgTUJNUl9EU0JfMV9DWUNMIHwgTUJNUl9HMENMQl9BMTEgfAlcCiAJCQkgTUJNUl9STEZCXzFYCSB8IE1CTVJfV0xGQl8xWAkgICB8IE1CTVJfVExGQl80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1NYMS5oIGIvaW5jbHVkZS9jb25maWdzL1NYMS5oCmluZGV4IGZmNGUxYTAuLmZkMWEzYmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9TWDEuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvU1gxLmgKQEAgLTQ2LDggKzQ2LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtNTYsMTEgKzU2LDExIEBACiAvKgogICogTlMxNjU1MCBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCSgtNCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkoQ09ORklHX1NZU19DTEtfRlJFUSkJLyogY2FuIGJlIDEyTS8zMktoeiBvciA0OE1oeiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkweGZmZmIwMDAwCQkvKiB1YXJ0MSwgYmx1ZXRvb3RoIHVhcnQgb24gaGVsZW4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCSgtNCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJKENPTkZJR19TWVNfQ0xLX0ZSRVEpCS8qIGNhbiBiZSAxMk0vMzJLaHogb3IgNDhNaHogICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCTB4ZmZmYjAwMDAJCS8qIHVhcnQxLCBibHVldG9vdGggdWFydCBvbiBoZWxlbiAqLwogCiAvKgogICogc2VsZWN0IHNlcmlhbCBjb25zb2xlIGNvbmZpZ3VyYXRpb24KQEAgLTgyLDggKzgyLDggQEAKICAqIEkyQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTEKICNkZWZpbmUgQ09ORklHX0RSSVZFUl9PTUFQMTUxMF9JMkMKIAogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQpAQCAtOTEsNyArOTEsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAKIC8qCkBAIC0xMjEsMjYgKzEyMSwyNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJTWDEjICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiU1gxIyAiIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDEwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDEyMDAwMDAwCS8qIDMyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MTAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDEyMDAwMDAwCS8qIDMyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCiAvKiBUaGUgMTUxMCBoYXMgMyB0aW1lcnMsIHRoZXkgY2FuIGJlIGRyaXZlbiBieSB0aGUgUmVmQ2xrICgxMk1oeikgb3IgYnkgRFBMTDEuCiAgKiBUaGlzIHRpbWUgaXMgZnVydGhlciBzdWJkaXZpZGVkIGJ5IGEgbG9jYWwgZGl2aXNvci4KICAqLwotI2RlZmluZSBDRkdfVElNRVJCQVNFCTB4RkZGRUM1MDAJICAgIC8qIHVzZSB0aW1lciAxICovCi0jZGVmaW5lIENGR19QVlQJCTcJCSAgICAvKiAyXihwdnQrMSksIGRpdmlkZSBieSAyNTYgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJKChDT05GSUdfU1lTX0NMS19GUkVRKS8oMiA8PCBDRkdfUFZUKSkKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUkJBU0UJMHhGRkZFQzUwMAkgICAgLyogdXNlIHRpbWVyIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QVlQJCTcJCSAgICAvKiAyXihwdnQrMSksIGRpdmlkZSBieSAyNTYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCSgoQ09ORklHX1NZU19DTEtfRlJFUSkvKDIgPDwgQ09ORklHX1NZU19QVlQpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTYzLDM2ICsxNjMsMzYgQEAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweDAwMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19GTEFTSF8yCQkweDA0MDAwMDAwIC8qIEZsYXNoIEJhbmsgIzIgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCSgxNiA8PCAxMCkgLyogMTYgTUIgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUJKDEyOCoxMDI0KSAvKiBTaXplIG9mIGEgc2VjdG9yICgxMjhrQikgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgxMjgpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgUEhZU19GTEFTSF9TRUNUX1NJWkUpIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQkvKiBNb25pdG9yIGF0IGJlZ2lubmluZyBvZiBmbGFzaCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCVBIWVNfRkxBU0hfU0VDVF9TSVpFCS8qIFJlc2VydmUgMSBzZWN0b3IgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UgKyBQSFlTX0ZMQVNIX1NJWkUgfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgxMjgpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIFBIWVNfRkxBU0hfU0VDVF9TSVpFKSAvKiBhZGRyIG9mIGVudmlyb25tZW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBNb25pdG9yIGF0IGJlZ2lubmluZyBvZiBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQlQSFlTX0ZMQVNIX1NFQ1RfU0laRQkvKiBSZXNlcnZlIDEgc2VjdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgUEhZU19GTEFTSF9TSVpFIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggZHJpdmVyIHNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBtZW1vcnkgaXMgQ0ZJIGNvbXBsaWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBtZW1vcnkgaXMgQ0ZJIGNvbXBsaWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSBkcml2ZXJzL210ZC9jZmlfZmxhc2guYyAqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIFVzZSBidWZmZXJlZCB3cml0ZXMgKH4xMHggZmFzdGVyKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCS8qIFVzZSBoYXJkd2FyZSBzZWN0b3IgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiBVc2UgYnVmZmVyZWQgd3JpdGVzICh+MTB4IGZhc3RlcikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogVXNlIGhhcmR3YXJlIHNlY3RvciBwcm90ZWN0aW9uICovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMjAqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMjAqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDIwKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMjAqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJUEhZU19GTEFTSF9TRUNUX1NJWkUKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlDT05GSUdfRU5WX1NFQ1RfU0laRSAvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkoIENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4gKSAvKiBFbnZpcm9ubWVudCBhZnRlciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCSggQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOICkgLyogRW52aXJvbm1lbnQgYWZ0ZXIgTW9uaXRvciAqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkweDIwMDAwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvU1hOSTg1NVQuaCBiL2luY2x1ZGUvY29uZmlncy9TWE5JODU1VC5oCmluZGV4IDBjYzRmZTQuLjdmYzQ1NWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9TWE5JODU1VC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9TWE5JODU1VC5oCkBAIC05NCw3ICs5NCw3IEBACiAjIGRlZmluZSBTVEFUVVNfTEVEX0RBVAkJaW1faW9wb3J0LmlvcF9wYWRhdAogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVAkJMHg4MDAwCQkvKiBMRUQgMCBpcyBvbiBQQS4wICovCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoKENGR19IWiAvIDIpIC8gNSkJLyogYmxpbmsgYXQgNSBIeiAqLworIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKChDT05GSUdfU1lTX0haIC8gMikgLyA1KQkvKiBibGluayBhdCA1IEh6ICovCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFCVNUQVRVU19MRURfQkxJTktJTkcKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMAkJLyogTEVEIG9uIGZvciBiaXQgPT0gMAkqLwpAQCAtMTM2LDE1ICsxMzYsMTUgQEAKIAkJCWVsc2UgICAgaW1tci0+aW1fY3BtLmNwX3BiZGF0ICY9IH5QQl9TQ0wKICNkZWZpbmUgSTJDX0RFTEFZCXVkZWxheSg1KQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAKLSMgZGVmaW5lIENGR19JMkNfU1BFRUQJCTUwMDAwCi0jIGRlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCi0jIGRlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogQXRtZWwgMjRDNjQJCQkqLwotIyBkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgkvKiB0d28gYnl0ZSBhZGRyZXNzCQkqLworIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTUwMDAwCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhGRQorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBBdG1lbCAyNEM2NAkJCSovCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMgkvKiB0d28gYnl0ZSBhZGRyZXNzCQkqLwogCiAjZGVmaW5lCUNPTkZJR19GRUNfRU5FVAkJMQkvKiB1c2UgRkVDIGV0aGVybmV0ICAqLwogI2RlZmluZQlDT05GSUdfTUlJCQkxCiAKLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogCiAKIC8qCkBAIC0xNjcsNyArMTY3LDcgQEAKICNkZWZpbmUgQ09ORklHX0NNRF9EQVRFCiAKIAotI2RlZmluZSBDRkdfSkZGUzJfU09SVF9GUkFHTUVOVFMKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9TT1JUX0ZSQUdNRU5UUwogCiAvKgogICogSkZGUzIgcGFydGl0aW9ucwpAQCAtMTk3LDcgKzE5Nyw3IEBACiAvKiBOQU5EIGZsYXNoIHN1cHBvcnQgKi8KICNkZWZpbmUgQ09ORklHX05BTkRfTEVHQUNZCiAjZGVmaW5lIENPTkZJR19NVERfTkFORF9FQ0NfSkZGUzIKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMJKi8KICNkZWZpbmUgU0VDVE9SU0laRSA1MTIKIAogI2RlZmluZSBBRERSX0NPTFVNTiAxCkBAIC0yMTAsNyArMjEwLDcgQEAKIAogLyogREZCVVNZIGlzIGF2YWlsYWJsZSBvbiBQb3J0IEMsIGJpdCAxMjsgMCBpZiBidXN5ICovCiAjZGVmaW5lIE5BTkRfV0FJVF9SRUFEWShuYW5kKQlcCi0Jd2hpbGUgKCEoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICYgMHgwMDA4KSk7CisJd2hpbGUgKCEoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCAmIDB4MDAwOCkpOwogI2RlZmluZSBXUklURV9OQU5EX0NPTU1BTkQoZCwgYWRyKSBXUklURV9OQU5EKChkKSwgKGFkcikpCiAjZGVmaW5lIFdSSVRFX05BTkRfQUREUkVTUyhkLCBhZHIpIFdSSVRFX05BTkQoKGQpLCAoYWRyKSkKICNkZWZpbmUgV1JJVEVfTkFORChkLCBhZHIpCVwKQEAgLTIzNiwyNSArMjM2LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgYSBsaXR0bGUgbWVtb3J5ICovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBhIGxpdHRsZSBtZW1vcnkgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI9PiIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMAkvKiAxIC4uLiA0IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMAkvKiAxIC4uLiA0IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0yNjQsNjUgKzI2NCw2NSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwCi0jZGVmaW5lIENGR19JTU1SX1NJWkUJCSgodWludCkoNjQgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUl9TSVpFCQkoKHVpbnQpKDY0ICogMTAyNCkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUJQ0ZHX1NSQU1fQkFTRQkJMHhGNDAwMDAwMAotI2RlZmluZQlDRkdfU1JBTV9TSVpFCQkweDA0MDAwMDAwCS8qIGF1dG9zaXplIHVwIHRvIDY0TWJ5dGUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU1JBTV9CQVNFCQkweEY0MDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU1JBTV9TSVpFCQkweDA0MDAwMDAwCS8qIGF1dG9zaXplIHVwIHRvIDY0TWJ5dGUgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKCh1aW50KSg4ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggOE1ieXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCSgodWludCkoOCAqIDEwMjQgKiAxMDI0KSkJLyogbWF4IDhNYnl0ZSAqLwogCi0jZGVmaW5lIENGR19ERkxBU0hfQkFTRQkJMHhmZjAyMDAwMCAvKiBEaXNrT25DaGlwIG9yIE5BTkQgRkxBU0ggKi8KLSNkZWZpbmUgQ0ZHX0RGTEFTSF9TSVpFCQkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREZMQVNIX0JBU0UJCTB4ZmYwMjAwMDAgLyogRGlza09uQ2hpcCBvciBOQU5EIEZMQVNIICovCisjZGVmaW5lIENPTkZJR19TWVNfREZMQVNIX1NJWkUJCTB4MDAwMTAwMDAKIAotI2RlZmluZSBDRkdfRlBHQV9CQVNFCQkweEZGMTAwMDAwCS8qIFhpbGlueCBGUEdBICovCi0jZGVmaW5lIENGR19GUEdBX1BST0cJCTB4RkYxMzAwMDAJLyogUHJvZ3JhbW1pbmcgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRlBHQV9TSVpFCQkweDAwMDQwMDAwCS8qIDI1NktpQiB1c2FibGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0UJCTB4RkYxMDAwMDAJLyogWGlsaW54IEZQR0EgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BST0cJCTB4RkYxMzAwMDAJLyogUHJvZ3JhbW1pbmcgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU0laRQkJMHgwMDA0MDAwMAkvKiAyNTZLaUIgdXNhYmxlICovCiAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwogLyogSW50ZWwgMjhGNjQwIGhhcyAxMzUsIDEyNyA2NEsgc2VjdG9ycyBpbiA4TUIsICsgOCBtb3JlIGZvciA4SyBib290IGJsb2Nrcy4KICAqIEFNRCAyOUxWNjQxIGhhcyAxMjggNjRLIHNlY3RvcnMgaW4gOE1CCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEzNQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMzMiwxMCArMzMyLDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNDMsMjggKzM0MywyOCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCTE1LTMwCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBzZXQgdGhlIFBMTCwgdGhlIGxvdy1wb3dlciBtb2RlcyBhbmQgdGhlIHJlc2V0IGNvbnRyb2wgKDE1LTI5KQogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgoTVBDOFhYX0ZBQ1QtMSkgPDwgUExQUkNSX01GX1NISUZUKSB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgoTVBDOFhYX0ZBQ1QtMSkgPDwgUExQUkNSX01GX1NISUZUKSB8CVwKIAkJCQlQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM3NCwxNCArMzc0LDE0IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlN8U0NDUl9DT00wMHxTQ0NSX0RGU1lOQzAwfFNDQ1JfREZCUkcwMHxTQ0NSX0RGTkwwMDB8U0NDUl9ERk5IMDAwfFNDQ1JfREZMQ0QwMDB8U0NDUl9ERkFMQ0QwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCU3xTQ0NSX0NPTTAwfFNDQ1JfREZTWU5DMDB8U0NDUl9ERkJSRzAwfFNDQ1JfREZOTDAwMHxTQ0NSX0RGTkgwMDB8U0NDUl9ERkxDRDAwMHxTQ0NSX0RGQUxDRDAwKQogCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJMAogCiAvKiBCZWNhdXNlIG9mIHRoZSB3YXkgdGhlIDg2MCBzdGFydHMgdXAgYW5kIGFzc2lnbnMgQ1MwIHRoZQogICogZW50aXJlIGFkZHJlc3Mgc3BhY2UsIHdlIGhhdmUgdG8gc2V0IHRoZSBtZW1vcnkgY29udHJvbGxlcgpAQCAtMzk4LDQ3ICszOTgsNDcgQEAKICAqIEJSMCBhbmQgT1IwIChGTEFTSCkKICAqLwogCi0jZGVmaW5lIENGR19QUkVMSU1fT1IwX0FNCTB4RkMwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SMF9BTQkweEZDMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDEwLCBUUkxYID0gMSwgQ1NOVCA9IDEsIFNDWSA9IDMsIEVIVFIgPSAwCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfM19DTEsgfCBPUl9UUkxYKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV8zX0NMSyB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1IwX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUjBfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKIAogI2RlZmluZSBDT05GSUdfRkxBU0hfMTZCSVQKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkvKiBuZWVkIHRvIGxvY2svdW5sb2NrIHNlY3RvcnMgaW4gaGFyZHdhcmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkvKiBuZWVkIHRvIGxvY2svdW5sb2NrIHNlY3RvcnMgaW4gaGFyZHdhcmUgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEJSMSBhbmQgT1IxIChGUEdBKQogICogVGhlc2UgcHJlbGltaW5hcnkgdmFsdWVzIGFyZSBhbHNvIHRoZSBmaW5hbCB2YWx1ZXMuCiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GUEdBIFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRlBHQSBcCiAJKE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IE9SX1NDWV80X0NMSyB8IE9SX0VIVFIgfCBPUl9UUkxYKQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKENGR19GUEdBX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkoKCgtQ0ZHX0ZQR0FfU0laRSkgJiBPUl9BTV9NU0spIHwgQ0ZHX09SX1RJTUlOR19GUEdBKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChDT05GSUdfU1lTX0ZQR0FfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoKCgtQ09ORklHX1NZU19GUEdBX1NJWkUpICYgT1JfQU1fTVNLKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZQR0EpCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBCUjQgYW5kIE9SNCAoZGF0YSBmbGFzaCkKICAqIFRoZXNlIHByZWxpbWluYXJ5IHZhbHVlcyBhcmUgYWxzbyB0aGUgZmluYWwgdmFsdWVzLgogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfREZMQVNIIFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfREZMQVNIIFwKIAkoT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzJfQ0xLIHwgT1JfRUhUUiB8IE9SX1RSTFgpCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCSgoQ0ZHX0RGTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JKCgoLUNGR19ERkxBU0hfU0laRSkgJiBPUl9BTV9NU0spIHwgQ0ZHX09SX1RJTUlOR19ERkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkoKENPTkZJR19TWVNfREZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JKCgoLUNPTkZJR19TWVNfREZMQVNIX1NJWkUpICYgT1JfQU1fTVNLKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0RGTEFTSCkKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEJSNS82IGFuZCBPUjUvNiAoRHVhbCBVQVJUKQogICovCi0jZGVmaW5lIENGR19EVUFSVF9TSVpFCTB4ODAwMAkvKiAzMksgd2luZG93LCBvbmx5IHVzZXMgOCBieXRlcyAqLwotI2RlZmluZSBDRkdfRFVBUlRBX0JBU0UJMHhmZjAxMDAwMAotI2RlZmluZSBDRkdfRFVBUlRCX0JBU0UJMHhmZjAxODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RVQVJUX1NJWkUJMHg4MDAwCS8qIDMySyB3aW5kb3csIG9ubHkgdXNlcyA4IGJ5dGVzICovCisjZGVmaW5lIENPTkZJR19TWVNfRFVBUlRBX0JBU0UJMHhmZjAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RVQVJUQl9CQVNFCTB4ZmYwMTgwMDAKIAogI2RlZmluZSBEVUFSVF9NQk1SCTAKLSNkZWZpbmUgRFVBUlRfT1JfVkFMVUUgKE9STUFTSyhDRkdfRFVBUlRfU0laRSkgfCBPUl9HNUxTfCBPUl9CSSkKKyNkZWZpbmUgRFVBUlRfT1JfVkFMVUUgKE9STUFTSyhDT05GSUdfU1lTX0RVQVJUX1NJWkUpIHwgT1JfRzVMU3wgT1JfQkkpCiAjZGVmaW5lIERVQVJUX0JSX1ZBTFVFIChCUl9NU19VUE1CIHwgQlJfUFNfOCB8IEJSX1YpCi0jZGVmaW5lIERVQVJUX0JSNV9WQUxVRSAoKENGR19EVUFSVEFfQkFTRSAmIEJSX0JBX01TSyApIHwgRFVBUlRfQlJfVkFMVUUpCi0jZGVmaW5lIERVQVJUX0JSNl9WQUxVRSAoKENGR19EVUFSVEJfQkFTRSAmIEJSX0JBX01TSyApIHwgRFVBUlRfQlJfVkFMVUUpCisjZGVmaW5lIERVQVJUX0JSNV9WQUxVRSAoKENPTkZJR19TWVNfRFVBUlRBX0JBU0UgJiBCUl9CQV9NU0sgKSB8IERVQVJUX0JSX1ZBTFVFKQorI2RlZmluZSBEVUFSVF9CUjZfVkFMVUUgKChDT05GSUdfU1lTX0RVQVJUQl9CQVNFICYgQlJfQkFfTVNLICkgfCBEVUFSVF9CUl9WQUxVRSkKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvU2FuZHBvaW50ODI0MC5oIGIvaW5jbHVkZS9jb25maWdzL1NhbmRwb2ludDgyNDAuaAppbmRleCA5ODk4YThiLi4xMjViOWEyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvU2FuZHBvaW50ODI0MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9TYW5kcG9pbnQ4MjQwLmgKQEAgLTExMCwxNCArMTEwLDE0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJMQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkxCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTEyOSw3ICsxMjksNyBAQAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCQkJLyogTXVsdGkgZXRoZXJuZXQgY2FyZHMgc3VwcG9ydCAqLwogCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4ICAgICAgICAgICAgICAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOCAgICAgICAgICAgICAgIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KIAogI2RlZmluZSBQQ0lfRU5FVDBfSU9BRERSCTB4ODAwMDAwMDAKICNkZWZpbmUgUENJX0VORVQwX01FTUFERFIJMHg4MDAwMDAwMApAQCAtMTQwLDU4ICsxNDAsNTggQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUJMHgxMDAwMDAwMAogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKIAogI2lmIGRlZmluZWQgKFVTRV9ESU5LMzIpCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4MDAwOTAwMDAKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MDAwMzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgwMDA5MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NiAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogI2Vsc2UKLSN1bmRlZglDRkdfUkFNQk9PVAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MDAwMzAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyN1bmRlZglDT05GSUdfU1lTX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKIAotLyojZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgIDI1NiovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAorLyojZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAyNTYqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAgIDB4MTAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgICAweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRjAwMDAwCiAjaWYgMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKDUxMiAqIDEwMjQpCS8qIHNhbmRwb2ludCBoYXMgdGlueSBlZXByb20JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoNTEyICogMTAyNCkJLyogc2FuZHBvaW50IGhhcyB0aW55IGVlcHJvbQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCSgxMDI0ICogMTAyNCkJLyogVW5pdHkgaGFzIG9uYm9hcmQgMU1CeXRlIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJKDEwMjQgKiAxMDI0KQkvKiBVbml0eSBoYXMgb25ib2FyZCAxTUJ5dGUgZmxhc2ggKi8KICNlbmRpZgogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MDAwMDQwMDAJLyogT2Zmc2V0IG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MDAwMDIwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIG1hbGxvYygpCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwNDAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLwogCi0jZGVmaW5lIENGR19FVU1CX0FERFIJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVU1CX0FERFIJCTB4RkMwMDAwMDAKIAotI2RlZmluZSBDRkdfSVNBX01FTQkJMHhGRDAwMDAwMAotI2RlZmluZSBDRkdfSVNBX0lPCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX01FTQkJMHhGRDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JTwkJMHhGRTAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9SQU5HRV9CQVNFCTB4RkYwMDAwMDAJLyogZmxhc2ggbWVtb3J5IGFkZHJlc3MgcmFuZ2UJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JBTkdFX1NJWkUJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JBTkdFX0JBU0UJMHhGRjAwMDAwMAkvKiBmbGFzaCBtZW1vcnkgYWRkcmVzcyByYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JBTkdFX1NJWkUJMHgwMTAwMDAwMAogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHhGRkYwMDAwMAkvKiBzYW5kcG9pbnQgZmxhc2gJCSovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkweEZGMDAwMDAwCS8qIFBNQyBvbmJvYXJkIGZsYXNoCQkqLwogCkBAIC0yMDQsOCArMjA0LDggQEAKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJCS8qIFRvIGVuYWJsZSBJMkMgc3VwcG9ydAkqLwogI3VuZGVmICBDT05GSUdfU09GVF9JMkMJCQkJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKICNpZmRlZiBDT05GSUdfU09GVF9JMkMKICNlcnJvciAiU29mdCBJMkMgaXMgbm90IGNvbmZpZ3VyZWQgcHJvcGVybHkuICBQbGVhc2UgcmV2aWV3ISIKQEAgLTIyMSwxNCArMjIxLDE0IEBACiAjZW5kaWYgLyogQ09ORklHX1NPRlRfSTJDICovCiAKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTcJCS8qIEVFUFJPTSBJUzI0QzAyCQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCS8qIHdyaXRlIHBhZ2Ugc2l6ZQkJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIHRha2VzIHVwIHRvIDEwIG1zZWMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTcJCS8qIEVFUFJPTSBJUzI0QzAyCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQkJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTMJLyogd3JpdGUgcGFnZSBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIHRha2VzIHVwIHRvIDEwIG1zZWMJCSovCiAKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1MJCXsgRkxBU0hfQkFTRTBfUFJFTElNICwgRkxBU0hfQkFTRTFfUFJFTElNIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1MJCXsgRkxBU0hfQkFTRTBfUFJFTElNICwgRkxBU0hfQkFTRTFfUFJFTElNIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKQEAgLTIzNiw0NiArMjM2LDQ2IEBACiAKIAogI2RlZmluZSBDT05GSUdfV0lOQk9ORF84M0M1NTMJMQkvKmhhcyBhIHdpbmJvbmQgYnJpZGdlCQkJKi8KLSNkZWZpbmUgQ0ZHX1VTRV9XSU5CT05EX0lERQkwCS8qdXNlIHdpbmJvbmQgODNjNTUzIGludGVybmFsIElERSBjdHJsciAqLwotI2RlZmluZSBDRkdfV0lOQk9ORF9JU0FfQ0ZHX0FERFIgICAgMHg4MDAwNTgwMAkvKnBjaS1pc2EgYnJpZGdlIGNvbmZpZyBhZGRyCSovCi0jZGVmaW5lIENGR19XSU5CT05EX0lERV9DRkdfQUREUiAgICAweDgwMDA1OTAwCS8qaWRlIGNvbmZpZyBhZGRyCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1VTRV9XSU5CT05EX0lERQkwCS8qdXNlIHdpbmJvbmQgODNjNTUzIGludGVybmFsIElERSBjdHJsciAqLworI2RlZmluZSBDT05GSUdfU1lTX1dJTkJPTkRfSVNBX0NGR19BRERSICAgIDB4ODAwMDU4MDAJLypwY2ktaXNhIGJyaWRnZSBjb25maWcgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX1dJTkJPTkRfSURFX0NGR19BRERSICAgIDB4ODAwMDU5MDAJLyppZGUgY29uZmlnIGFkZHIJCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTIgICAvKiBtYXguIDIgSURFIGJ1c3NlcwkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMqMikgLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTIgICAvKiBtYXguIDIgSURFIGJ1c3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoyKSAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCiAKIC8qCiAgKiBOUzg3MzA4IENvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfTlM4NzMwOAkJCS8qIE5hdCBTZW1pIHN1cGVyLWlvIGNvbnRyb2xsZXIgb24gSVNBIGJ1cyAqLwogCi0jZGVmaW5lIENGR19OUzg3MzA4X0JBRERSXzEwCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0JBRERSXzEwCTEKIAotI2RlZmluZSBDRkdfTlM4NzMwOF9ERVZTCSggQ0ZHX05TODczMDhfVUFSVDEgICB8IFwKLQkJCQkgIENGR19OUzg3MzA4X1VBUlQyICAgfCBcCi0JCQkJICBDRkdfTlM4NzMwOF9QT1dSTUFOIHwgXAotCQkJCSAgQ0ZHX05TODczMDhfUlRDX0FQQyApCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9ERVZTCSggQ09ORklHX1NZU19OUzg3MzA4X1VBUlQxICAgfCBcCisJCQkJICBDT05GSUdfU1lTX05TODczMDhfVUFSVDIgICB8IFwKKwkJCQkgIENPTkZJR19TWVNfTlM4NzMwOF9QT1dSTUFOIHwgXAorCQkJCSAgQ09ORklHX1NZU19OUzg3MzA4X1JUQ19BUEMgKQogCi0jdW5kZWYgIENGR19OUzg3MzA4X1BTMk1PRAorI3VuZGVmICBDT05GSUdfU1lTX05TODczMDhfUFMyTU9ECiAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MwX0JBU0UJMHgwMDc2Ci0jZGVmaW5lIENGR19OUzg3MzA4X0NTMF9DT05GCTB4MzAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MxX0JBU0UJMHgwMDc1Ci0jZGVmaW5lIENGR19OUzg3MzA4X0NTMV9DT05GCTB4MzAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MyX0JBU0UJMHgwMDc0Ci0jZGVmaW5lIENGR19OUzg3MzA4X0NTMl9DT05GCTB4MzAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMF9CQVNFCTB4MDA3NgorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MwX0NPTkYJMHgzMAorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MxX0JBU0UJMHgwMDc1CisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzFfQ09ORgkweDMwCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzJfQkFTRQkweDAwNzQKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMl9DT05GCTB4MzAKIAogLyoKICAqIE5TMTY1NTAgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAogCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTE4NDMyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJMTg0MzIwMAogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19JU0FfSU8gKyBDRkdfTlM4NzMwOF9VQVJUMV9CQVNFKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfSVNBX0lPICsgQ0ZHX05TODczMDhfVUFSVDJfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfSVNBX0lPICsgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQxX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0lTQV9JTyArIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMl9CQVNFKQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTI4NiwyMyArMjg2LDIzIEBACiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEgIDMzMDAwMDAwCS8qIGV4dGVybmFsIGZyZXF1ZW5jeSB0byBwbGwgKi8KICNkZWZpbmUgQ09ORklHX1BMTF9QQ0lfVE9fTUVNX01VTFRJUExJRVIgIDEKIAotI2RlZmluZSBDRkdfUk9NTkFMCQk3CS8qcm9tL2ZsYXNoIG5leHQgYWNjZXNzIHRpbWUJCSovCi0jZGVmaW5lIENGR19ST01GQUwJCTExCS8qcm9tL2ZsYXNoIGFjY2VzcyB0aW1lCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ST01OQUwJCTcJLypyb20vZmxhc2ggbmV4dCBhY2Nlc3MgdGltZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ST01GQUwJCTExCS8qcm9tL2ZsYXNoIGFjY2VzcyB0aW1lCQkJKi8KIAotI2RlZmluZSBDRkdfUkVGSU5UCTQzMAkvKiBubyBvZiBjbG9jayBjeWNsZXMgYmV0d2VlbiBDQlIgcmVmcmVzaCBjeWNsZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUZJTlQJNDMwCS8qIG5vIG9mIGNsb2NrIGN5Y2xlcyBiZXR3ZWVuIENCUiByZWZyZXNoIGN5Y2xlcyAqLwogCiAvKiB0aGUgZm9sbG93aW5nIGFyZSBmb3IgU0RSQU0gb25seSovCi0jZGVmaW5lIENGR19CU1RPUFJFCTEyMQkvKiBCdXJzdCBUbyBQcmVjaGFyZ2UsIHNldHMgb3BlbiBwYWdlIGludGVydmFsICovCi0jZGVmaW5lIENGR19SRUZSRUMJCTgJLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbAkJKi8KLSNkZWZpbmUgQ0ZHX1JETEFUCQk0CS8qIGRhdGEgbGF0ZW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLwotI2RlZmluZSBDRkdfUFJFVE9BQ1QJCTMJLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsCSovCi0jZGVmaW5lIENGR19BQ1RUT1BSRQkJNQkvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVE9SVwkJMwkvKiBBY3RpdmF0ZSB0byBSL1cJCQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX0NBU19MQVQJMwkvKiBTRE1PREUgQ0FTIGxhdGVuY3kJCQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAJCTAJLyogU0RNT0RFIHdyYXAgdHlwZQkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfQlVSU1RMRU4JMgkvKiBTRE1PREUgQnVyc3QgbGVuZ3RoIDI9NCwgMz04CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JTVE9QUkUJMTIxCS8qIEJ1cnN0IFRvIFByZWNoYXJnZSwgc2V0cyBvcGVuIHBhZ2UgaW50ZXJ2YWwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUZSRUMJCTgJLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRExBVAkJNAkvKiBkYXRhIGxhdGVuY3kgZnJvbSByZWFkIGNvbW1hbmQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVUT0FDVAkJMwkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkJNQkvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RPUlcJCTMJLyogQWN0aXZhdGUgdG8gUi9XCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVAkzCS8qIFNETU9ERSBDQVMgbGF0ZW5jeQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX1dSQVAJCTAJLyogU0RNT0RFIHdyYXAgdHlwZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0JVUlNUTEVOCTIJLyogU0RNT0RFIEJ1cnN0IGxlbmd0aCAyPTQsIDM9OAkJKi8KIAotI2RlZmluZSBDRkdfUkVHSVNURVJEX1RZUEVfQlVGRkVSICAgMQorI2RlZmluZSBDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAgIDEKIAogLyogbWVtb3J5IGJhbmsgc2V0dGluZ3MqLwogLyoKQEAgLTMxMSw5MyArMzExLDkzIEBACiAgKiBiaXRzIHdpbGwgYmUgc2V0IHRvIDB4MDAwMDAgZm9yIGEgc3RhcnQgYWRkcmVzcywgb3IgMHhmZmZmZiBmb3IgYW4KICAqIGVuZCBhZGRyZXNzCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBTkswX1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMF9FTkQJCShDRkdfTUFYX1JBTV9TSVpFIC0gMSkKLSNkZWZpbmUgQ0ZHX0JBTkswX0VOQUJMRQkxCi0jZGVmaW5lIENGR19CQU5LMV9TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzFfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMV9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzJfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksyX0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzJfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTkszX1NUQVJUCQkweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LM19FTkQJCTB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTkszX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNF9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzVfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks2X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LN19TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5ECQkoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VOQUJMRQkxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19TVEFSVAkJMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VORAkJMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkFCTEUJMAogLyoKICAqIE1lbW9yeSBiYW5rIGVuYWJsZSBiaXRtYXNrLCBzcGVjaWZ5aW5nIHdoaWNoIG9mIHRoZSBiYW5rcyBkZWZpbmVkIGFib3ZlCiAgYXJlIGFjdHVhbGx5IHByZXNlbnQuIE1TQiBpcyBmb3IgYmFuayAjNywgTFNCIGlzIGZvciBiYW5rICMwLgogICovCi0jZGVmaW5lIENGR19CQU5LX0VOQUJMRQkJMHgwMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTktfRU5BQkxFCQkweDAxCiAKLSNkZWZpbmUgQ0ZHX09EQ1IJCTB4ZmYJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzLAkqLworI2RlZmluZSBDT05GSUdfU1lTX09EQ1IJCTB4ZmYJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzLAkqLwogCQkJCQkvKiBzZWUgODI0MCBib29rIGZvciBiaXQgZGVmaW5pdGlvbnMJKi8KLSNkZWZpbmUgQ0ZHX1BHTUFYCQkweDMyCS8qIGhvdyBsb25nIHRoZSA4MjQwIHJldGFpbnMgdGhlCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KIAkJCQkJLyogY3VycmVudGx5IGFjY2Vzc2VkIHBhZ2UgaW4gbWVtb3J5CSovCiAJCQkJCS8qIHNlZSA4MjQwIGJvb2sgZm9yIGRldGFpbHMJCSovCiAKIC8qIFNEUkFNIDAgLSAyNTZNQiAqLwotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBzdGFjayBpbiBEQ0FDSEUgQCAxR0IgKG5vIGJhY2tpbmcgbWVtKSAqLwogI2lmIGRlZmluZWQoVVNFX0RJTkszMikKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoMHg0MDAwMDAwMCB8IEJBVExfUFBfMDAgKQotI2RlZmluZSBDRkdfSUJBVDFVCSgweDQwMDAwMDAwIHwgQkFUVV9CTF8xMjhLICkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKDB4NDAwMDAwMDAgfCBCQVRMX1BQXzAwICkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKDB4NDAwMDAwMDAgfCBCQVRVX0JMXzEyOEsgKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKICNlbmRpZgogCiAvKiBQQ0kgbWVtb3J5ICovCi0jZGVmaW5lIENGR19JQkFUMkwJKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUJKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCSgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIEZsYXNoLCBjb25maWcgYWRkcnMsIGV0YyAqLwotI2RlZmluZSBDRkdfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyMAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyMAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNDAgQ1BVCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI0MCBDUFUJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9TYW5kcG9pbnQ4MjQ1LmggYi9pbmNsdWRlL2NvbmZpZ3MvU2FuZHBvaW50ODI0NS5oCmluZGV4IDQxODM1ZjAuLjhjYjkyMGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9TYW5kcG9pbnQ4MjQ1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1NhbmRwb2ludDgyNDUuaApAQCAtNzgsMTQgKzc4LDE0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJMQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkxCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTk3LDcgKzk3LDcgQEAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkJCS8qIE11bHRpIGV0aGVybmV0IGNhcmRzIHN1cHBvcnQgKi8KIAogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOCAgICAgICAgICAgICAgIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCiAjZGVmaW5lIENPTkZJR19OQVRTRU1JCiAjZGVmaW5lIENPTkZJR19OUzgzODJYCiAKQEAgLTExMCw1OCArMTEwLDU4IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFCTB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFCTB4MTAwMDAwMDAKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCiAKICNpZiBkZWZpbmVkIChVU0VfRElOSzMyKQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MDAwMzAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweDAwMDkwMDAwCi0jZGVmaW5lIENGR19SQU1CT09UCQkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMjU2ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDAwMDMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4MDAwOTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkyNTYgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKICNlbHNlCi0jdW5kZWYJQ0ZHX1JBTUJPT1QKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDAwMDMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjdW5kZWYJQ09ORklHX1NZU19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MDAwMzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCiAKLS8qI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAyNTYqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgKKy8qI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgMjU2Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgICAweDEwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKICNlbmRpZgogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkYwMDAwMAogI2lmIDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCSg1MTIgKiAxMDI0KQkvKiBzYW5kcG9pbnQgaGFzIHRpbnkgZWVwcm9tCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJKDUxMiAqIDEwMjQpCS8qIHNhbmRwb2ludCBoYXMgdGlueSBlZXByb20JKi8KICNlbHNlCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkoMTAyNCAqIDEwMjQpCS8qIFVuaXR5IGhhcyBvbmJvYXJkIDFNQnl0ZSBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCSgxMDI0ICogMTAyNCkJLyogVW5pdHkgaGFzIG9uYm9hcmQgMU1CeXRlIGZsYXNoICovCiAjZW5kaWYKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDAwMDA0MDAwCS8qIE9mZnNldCBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDAwMDAyMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA0MDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KIAotI2RlZmluZSBDRkdfRVVNQl9BRERSCQkweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVVNQl9BRERSCQkweEZDMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lTQV9NRU0JCTB4RkQwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lTQV9JTwkJMHhGRTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9NRU0JCTB4RkQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU8JCTB4RkUwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfUkFOR0VfQkFTRQkweEZGMDAwMDAwCS8qIGZsYXNoIG1lbW9yeSBhZGRyZXNzIHJhbmdlCSovCi0jZGVmaW5lIENGR19GTEFTSF9SQU5HRV9TSVpFCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SQU5HRV9CQVNFCTB4RkYwMDAwMDAJLyogZmxhc2ggbWVtb3J5IGFkZHJlc3MgcmFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SQU5HRV9TSVpFCTB4MDEwMDAwMDAKICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4RkZGMDAwMDAJLyogc2FuZHBvaW50IGZsYXNoCQkqLwogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0JMHhGRjAwMDAwMAkvKiBQTUMgb25ib2FyZCBmbGFzaAkJKi8KIApAQCAtMTc0LDggKzE3NCw4IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCQkvKiBUbyBlbmFibGUgSTJDIHN1cHBvcnQJKi8KICN1bmRlZiAgQ09ORklHX1NPRlRfSTJDCQkJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAjaWZkZWYgQ09ORklHX1NPRlRfSTJDCiAjZXJyb3IgIlNvZnQgSTJDIGlzIG5vdCBjb25maWd1cmVkIHByb3Blcmx5LiAgUGxlYXNlIHJldmlldyEiCkBAIC0xOTAsMTMgKzE5MCwxMyBAQAogI2RlZmluZSBJMkNfREVMQVkJCXVkZWxheSg1KQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAjZW5kaWYgLyogQ09ORklHX1NPRlRfSTJDICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDU3CQkvKiBFRVBST00gSVMyNEMwMgkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMQkJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1NwkJLyogRUVQUk9NIElTMjRDMDIJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkxCQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTCQl7IEZMQVNIX0JBU0UwX1BSRUxJTSAsIEZMQVNIX0JBU0UxX1BSRUxJTSB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTCQl7IEZMQVNIX0JBU0UwX1BSRUxJTSAsIEZMQVNIX0JBU0UxX1BSRUxJTSB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCkBAIC0yMDQsNTIgKzIwNCw1MiBAQAogCiAKICNkZWZpbmUgQ09ORklHX1dJTkJPTkRfODNDNTUzCTEJLypoYXMgYSB3aW5ib25kIGJyaWRnZQkJCSovCi0jZGVmaW5lIENGR19VU0VfV0lOQk9ORF9JREUJMAkvKnVzZSB3aW5ib25kIDgzYzU1MyBpbnRlcm5hbCBJREUgY3RybHIgKi8KLSNkZWZpbmUgQ0ZHX1dJTkJPTkRfSVNBX0NGR19BRERSICAgIDB4ODAwMDU4MDAJLypwY2ktaXNhIGJyaWRnZSBjb25maWcgYWRkcgkqLwotI2RlZmluZSBDRkdfV0lOQk9ORF9JREVfQ0ZHX0FERFIgICAgMHg4MDAwNTkwMAkvKmlkZSBjb25maWcgYWRkcgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfV0lOQk9ORF9JREUJMAkvKnVzZSB3aW5ib25kIDgzYzU1MyBpbnRlcm5hbCBJREUgY3RybHIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19XSU5CT05EX0lTQV9DRkdfQUREUiAgICAweDgwMDA1ODAwCS8qcGNpLWlzYSBicmlkZ2UgY29uZmlnIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19XSU5CT05EX0lERV9DRkdfQUREUiAgICAweDgwMDA1OTAwCS8qaWRlIGNvbmZpZyBhZGRyCQkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkyICAgLyogbWF4LiAyIElERSBidXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjIpIC8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkyICAgLyogbWF4LiAyIElERSBidXNzZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCShDT05GSUdfU1lTX0lERV9NQVhCVVMqMikgLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cyAqLwogCiAvKgogICogTlM4NzMwOCBDb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX05TODczMDgJCQkvKiBOYXQgU2VtaSBzdXBlci1pbyBjb250cm9sbGVyIG9uIElTQSBidXMgKi8KIAotI2RlZmluZSBDRkdfTlM4NzMwOF9CQUREUl8xMAkxCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9CQUREUl8xMAkxCiAKLSNkZWZpbmUgQ0ZHX05TODczMDhfREVWUwkoIENGR19OUzg3MzA4X1VBUlQxICAgfCBcCi0JCQkJICBDRkdfTlM4NzMwOF9VQVJUMiAgIHwgXAotCQkJCSAgQ0ZHX05TODczMDhfUE9XUk1BTiB8IFwKLQkJCQkgIENGR19OUzg3MzA4X1JUQ19BUEMgKQorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfREVWUwkoIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMSAgIHwgXAorCQkJCSAgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQyICAgfCBcCisJCQkJICBDT05GSUdfU1lTX05TODczMDhfUE9XUk1BTiB8IFwKKwkJCQkgIENPTkZJR19TWVNfTlM4NzMwOF9SVENfQVBDICkKIAotI3VuZGVmICBDRkdfTlM4NzMwOF9QUzJNT0QKKyN1bmRlZiAgQ09ORklHX1NZU19OUzg3MzA4X1BTMk1PRAogCi0jZGVmaW5lIENGR19OUzg3MzA4X0NTMF9CQVNFCTB4MDA3NgotI2RlZmluZSBDRkdfTlM4NzMwOF9DUzBfQ09ORgkweDMwCi0jZGVmaW5lIENGR19OUzg3MzA4X0NTMV9CQVNFCTB4MDA3NQotI2RlZmluZSBDRkdfTlM4NzMwOF9DUzFfQ09ORgkweDMwCi0jZGVmaW5lIENGR19OUzg3MzA4X0NTMl9CQVNFCTB4MDA3NAotI2RlZmluZSBDRkdfTlM4NzMwOF9DUzJfQ09ORgkweDMwCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzBfQkFTRQkweDAwNzYKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMF9DT05GCTB4MzAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMV9CQVNFCTB4MDA3NQorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MxX0NPTkYJMHgzMAorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MyX0JBU0UJMHgwMDc0CisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzJfQ09ORgkweDMwCiAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCiAKICNpZiAoQ09ORklHX0NPTlNfSU5ERVggPiAyKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsgICAgICAgICBDT05GSUdfRFJBTV9TUEVFRCoxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsgICAgICAgICBDT05GSUdfRFJBTV9TUEVFRCoxMDAwMDAwCiAjZWxzZQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsgICAgICAgICAxODQzMjAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsgICAgICAgICAxODQzMjAwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfSVNBX0lPICsgQ0ZHX05TODczMDhfVUFSVDFfQkFTRSkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0lTQV9JTyArIENGR19OUzg3MzA4X1VBUlQyX0JBU0UpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTMJKENGR19FVU1CX0FERFIgKyAweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTQJKENGR19FVU1CX0FERFIgKyAweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0lTQV9JTyArIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19JU0FfSU8gKyBDT05GSUdfU1lTX05TODczMDhfVUFSVDJfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTMJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NNAkoQ09ORklHX1NZU19FVU1CX0FERFIgKyAweDQ2MDApCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjU5LDI3ICsyNTksMjcgQEAKIAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRICAzMzMzMzMzMwkvKiBleHRlcm5hbCBmcmVxdWVuY3kgdG8gcGxsICovCiAKLSNkZWZpbmUgQ0ZHX1JPTU5BTAkJNwkvKnJvbS9mbGFzaCBuZXh0IGFjY2VzcyB0aW1lCQkqLwotI2RlZmluZSBDRkdfUk9NRkFMCQkxMQkvKnJvbS9mbGFzaCBhY2Nlc3MgdGltZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUk9NTkFMCQk3CS8qcm9tL2ZsYXNoIG5leHQgYWNjZXNzIHRpbWUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUk9NRkFMCQkxMQkvKnJvbS9mbGFzaCBhY2Nlc3MgdGltZQkJCSovCiAKLSNkZWZpbmUgQ0ZHX1JFRklOVAk0MzAJLyogbm8gb2YgY2xvY2sgY3ljbGVzIGJldHdlZW4gQ0JSIHJlZnJlc2ggY3ljbGVzICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGSU5UCTQzMAkvKiBubyBvZiBjbG9jayBjeWNsZXMgYmV0d2VlbiBDQlIgcmVmcmVzaCBjeWNsZXMgKi8KIAogLyogdGhlIGZvbGxvd2luZyBhcmUgZm9yIFNEUkFNIG9ubHkqLwotI2RlZmluZSBDRkdfQlNUT1BSRQkxMjEJLyogQnVyc3QgVG8gUHJlY2hhcmdlLCBzZXRzIG9wZW4gcGFnZSBpbnRlcnZhbCAqLwotI2RlZmluZSBDRkdfUkVGUkVDCQk4CS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCi0jZGVmaW5lIENGR19SRExBVAkJNAkvKiBkYXRhIGxhdGVuY3kgZnJvbSByZWFkIGNvbW1hbmQJKi8KLSNkZWZpbmUgQ0ZHX1BSRVRPQUNUCQkzCS8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUVE9QUkUJCTUJLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCi0jZGVmaW5lIENGR19BQ1RPUlcJCTMJLyogQWN0aXZhdGUgdG8gUi9XCQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUCTMJLyogU0RNT0RFIENBUyBsYXRlbmN5CQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9XUkFQCQkwCS8qIFNETU9ERSB3cmFwIHR5cGUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JTVE9QUkUJMTIxCS8qIEJ1cnN0IFRvIFByZWNoYXJnZSwgc2V0cyBvcGVuIHBhZ2UgaW50ZXJ2YWwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUZSRUMJCTgJLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRExBVAkJNAkvKiBkYXRhIGxhdGVuY3kgZnJvbSByZWFkIGNvbW1hbmQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVUT0FDVAkJMwkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkJNQkvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RPUlcJCTMJLyogQWN0aXZhdGUgdG8gUi9XCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVAkzCS8qIFNETU9ERSBDQVMgbGF0ZW5jeQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX1dSQVAJCTAJLyogU0RNT0RFIHdyYXAgdHlwZQkJCSovCiAjaWYgMAotI2RlZmluZSBDRkdfU0RNT0RFX0JVUlNUTEVOCTIJLyogT0JTT0xFVEUhICBTRE1PREUgQnVyc3QgbGVuZ3RoIDI9NCwgMz04CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9CVVJTVExFTgkyCS8qIE9CU09MRVRFISAgU0RNT0RFIEJ1cnN0IGxlbmd0aCAyPTQsIDM9OAkJKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgICAxCi0jZGVmaW5lIENGR19FWFRST00gMQotI2RlZmluZSBDRkdfUkVHRElNTSAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0VYVFJPTSAxCisjZGVmaW5lIENPTkZJR19TWVNfUkVHRElNTSAwCiAKIAogLyogbWVtb3J5IGJhbmsgc2V0dGluZ3MqLwpAQCAtMjg5LDkzICsyODksOTMgQEAKICAqIGJpdHMgd2lsbCBiZSBzZXQgdG8gMHgwMDAwMCBmb3IgYSBzdGFydCBhZGRyZXNzLCBvciAweGZmZmZmIGZvciBhbgogICogZW5kIGFkZHJlc3MKICAqLwotI2RlZmluZSBDRkdfQkFOSzBfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkswX0VORAkJKENGR19NQVhfUkFNX1NJWkUgLSAxKQotI2RlZmluZSBDRkdfQkFOSzBfRU5BQkxFCTEKLSNkZWZpbmUgQ0ZHX0JBTksxX1NUQVJUCQkweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMV9FTkQJCTB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksxX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LMl9TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzJfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMl9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzNfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkszX0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzNfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks0X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNV9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzZfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks3X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkQJCShDT05GSUdfU1lTX01BWF9SQU1fU0laRSAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVAkJMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORAkJMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VOQUJMRQkwCiAvKgogICogTWVtb3J5IGJhbmsgZW5hYmxlIGJpdG1hc2ssIHNwZWNpZnlpbmcgd2hpY2ggb2YgdGhlIGJhbmtzIGRlZmluZWQgYWJvdmUKICBhcmUgYWN0dWFsbHkgcHJlc2VudC4gTVNCIGlzIGZvciBiYW5rICM3LCBMU0IgaXMgZm9yIGJhbmsgIzAuCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBTktfRU5BQkxFCQkweDAxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOS19FTkFCTEUJCTB4MDEKIAotI2RlZmluZSBDRkdfT0RDUgkJMHhmZgkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkJMHhmZgkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCiAJCQkJCS8qIHNlZSA4MjQwIGJvb2sgZm9yIGJpdCBkZWZpbml0aW9ucwkqLwotI2RlZmluZSBDRkdfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QR01BWAkJMHgzMgkvKiBob3cgbG9uZyB0aGUgODI0MCByZXRhaW5zIHRoZQkqLwogCQkJCQkvKiBjdXJyZW50bHkgYWNjZXNzZWQgcGFnZSBpbiBtZW1vcnkJKi8KIAkJCQkJLyogc2VlIDgyNDAgYm9vayBmb3IgZGV0YWlscwkJKi8KIAogLyogU0RSQU0gMCAtIDI1Nk1CICovCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVCShDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIHN0YWNrIGluIERDQUNIRSBAIDFHQiAobm8gYmFja2luZyBtZW0pICovCiAjaWYgZGVmaW5lZChVU0VfRElOSzMyKQotI2RlZmluZSBDRkdfSUJBVDFMCSgweDQwMDAwMDAwIHwgQkFUTF9QUF8wMCApCi0jZGVmaW5lIENGR19JQkFUMVUJKDB4NDAwMDAwMDAgfCBCQVRVX0JMXzEyOEsgKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoMHg0MDAwMDAwMCB8IEJBVExfUFBfMDAgKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoMHg0MDAwMDAwMCB8IEJBVFVfQkxfMTI4SyApCiAjZWxzZQotI2RlZmluZSBDRkdfSUJBVDFMCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogI2VuZGlmCiAKIC8qIFBDSSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVQkoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogRmxhc2gsIGNvbmZpZyBhZGRycywgZXRjICovCi0jZGVmaW5lIENGR19JQkFUM0wJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDFMCUNGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVQlDRkdfSUJBVDFVCi0jZGVmaW5lIENGR19EQkFUMkwJQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVCUNGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTAlDRkdfSUJBVDNMCi0jZGVmaW5lIENGR19EQkFUM1UJQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAlDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQlDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAlDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTIwCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTIwCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI0MCBDUFUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjQwIENQVQkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1RBU1JFRy5oIGIvaW5jbHVkZS9jb25maWdzL1RBU1JFRy5oCmluZGV4IGQyN2E1NGUuLjE4ZmZiZmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9UQVNSRUcuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVEFTUkVHLmgKQEAgLTQ2LDkgKzQ2LDkgQEAKICNkZWZpbmUgQ09ORklHX01DRlRNUgogCiAjZGVmaW5lIENPTkZJR19NQ0ZVQVJUCi0jZGVmaW5lIENGR19VQVJUX1BPUlQJCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfUE9SVAkJKDApCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTkyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIHsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSB7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CiAKICN1bmRlZiAgQ09ORklHX1dBVENIRE9HCiAKQEAgLTc4LDUxICs3OCw1MSBAQAogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwogCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURQkxICAgICAgIC8qIGFkZCBhdXRvY29tcGxldGlvbiBzdXBwb3J0ICAgKi8KICNkZWZpbmUgQ09ORklHX0xPT1BXICAgICAgICAgICAgMSAgICAgICAvKiBlbmFibGUgbG9vcHcgY29tbWFuZCAgICAgICAgICovCiAjZGVmaW5lIENPTkZJR19NWF9DWUNMSUMgICAgICAgIDEgICAgICAgLyogZW5hYmxlIG1kYy9td2MgY29tbWFuZHMgICAgICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJICAgICAgICAweDIwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkgICAgICAgIDB4MjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg0MDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDM4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHg0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgzODAwMDAKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKIC8qCiAgKiBDbG9jayBjb25maWd1cmF0aW9uOiBlbmFibGUgb25seSBvbmUgb2YgdGhlIGZvbGxvd2luZyBvcHRpb25zCiAgKi8KIAogI2lmIDAgLyogdGhpcyBzZXR0aW5nIHdpbGwgcnVuIHRoZSBjcHUgYXQgMTFNSHogKi8KLSNkZWZpbmUgQ0ZHX1BMTF9CWVBBU1MgICAgICAgICAgMSAgICAgICAgICAgICAgICAvKiBieXBhc3MgUExMIGZvciB0ZXN0IHB1cnBvc2UgKi8KLSN1bmRlZiAgQ0ZHX0ZBU1RfQ0xLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNQ0Y1MjQ5IGNhbiBydW4gYXQgMTQwTUh6ICAgKi8KLSNkZWZpbmUgQ0ZHX0NMSwkJICAgICAgICAxMTI4OTYwMCAgICAgICAgIC8qIFBMTCBieXBhc3MgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BMTF9CWVBBU1MgICAgICAgICAgMSAgICAgICAgICAgICAgICAvKiBieXBhc3MgUExMIGZvciB0ZXN0IHB1cnBvc2UgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19GQVNUX0NMSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTUNGNTI0OSBjYW4gcnVuIGF0IDE0ME1IeiAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLCQkgICAgICAgIDExMjg5NjAwICAgICAgICAgLyogUExMIGJ5cGFzcyAgICAgICAgICAgICAgICAgICovCiAjZW5kaWYKIAogI2lmIDAgLyogdGhpcyBzZXR0aW5nIHdpbGwgcnVuIHRoZSBjcHUgYXQgNzBNSHogKi8KLSN1bmRlZiAgQ0ZHX1BMTF9CWVBBU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBieXBhc3MgUExMIGZvciB0ZXN0IHB1cnBvc2UgKi8KLSN1bmRlZiAgQ0ZHX0ZBU1RfQ0xLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNQ0Y1MjQ5IGNhbiBydW4gYXQgMTQwTUh6ICAgKi8KLSNkZWZpbmUgQ0ZHX0NMSwkJICAgICAgICA3MjE4NTAxOCAgICAgICAgIC8qIFRoZSBuZXh0IGxvd2VyIHNwZWVkICAgICAgICAqLworI3VuZGVmICBDT05GSUdfU1lTX1BMTF9CWVBBU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBieXBhc3MgUExMIGZvciB0ZXN0IHB1cnBvc2UgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19GQVNUX0NMSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTUNGNTI0OSBjYW4gcnVuIGF0IDE0ME1IeiAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLCQkgICAgICAgIDcyMTg1MDE4ICAgICAgICAgLyogVGhlIG5leHQgbG93ZXIgc3BlZWQgICAgICAgICovCiAjZW5kaWYKIAogI2lmIDEgLyogdGhpcyBzZXR0aW5nIHdpbGwgcnVuIHRoZSBjcHUgYXQgMTQwTUh6ICovCi0jdW5kZWYgIENGR19QTExfQllQQVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYnlwYXNzIFBMTCBmb3IgdGVzdCBwdXJwb3NlICovCi0jZGVmaW5lIENGR19GQVNUX0NMSyAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgLyogTUNGNTI0OSBjYW4gcnVuIGF0IDE0ME1IeiAgICovCi0jZGVmaW5lCUNGR19DTEsJCSAgICAgICAgMTMyMDI1NjAwICAgICAgICAvKiBNQ0Y1MjQ5IGNhbiBydW4gYXQgMTQwTUh6ICAgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19QTExfQllQQVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYnlwYXNzIFBMTCBmb3IgdGVzdCBwdXJwb3NlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkFTVF9DTEsgICAgICAgICAgICAxICAgICAgICAgICAgICAgIC8qIE1DRjUyNDkgY2FuIHJ1biBhdCAxNDBNSHogICAqLworI2RlZmluZQlDT05GSUdfU1lTX0NMSwkJICAgICAgICAxMzIwMjU2MDAgICAgICAgIC8qIE1DRjUyNDkgY2FuIHJ1biBhdCAxNDBNSHogICAqLwogI2VuZGlmCiAKIC8qCkBAIC0xMzEsMzQgKzEzMSwzNCBAQAogICogWW91IHNob3VsZCBrbm93IHdoYXQgeW91IGFyZSBkb2luZyBpZiB5b3UgbWFrZSBjaGFuZ2VzIGhlcmUuCiAgKi8KIAotI2RlZmluZSBDRkdfTUJBUgkJMHgxMDAwMDAwMAkvKiBSZWdpc3RlciBCYXNlIEFkZHJzICovCi0jZGVmaW5lCUNGR19NQkFSMgkgICAgICAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweDEwMDAwMDAwCS8qIFJlZ2lzdGVyIEJhc2UgQWRkcnMgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQkFSMgkgICAgICAgIDB4ODAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDCiAgKi8KICNkZWZpbmUJQ09ORklHX1NPRlRfSTJDCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MzMgkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMzIJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAyCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIgkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNQkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzMyIGhhcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDAxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA1CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMzIgaGFzCSovCiAJCQkJCS8qIDMyIGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdCA1IGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKICNpZiBkZWZpbmVkIChDT05GSUdfU09GVF9JMkMpCiAjaWYgMCAvKiBwdXNoLXB1bGwgKi8KICNkZWZpbmUJU0RBCSAgICAgICAgMHgwMDgwMDAwMAogI2RlZmluZQlTQ0wJICAgICAgICAweDAwMDAwMDA4Ci0jZGVmaW5lIERJUjAgICAgICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENGR19NQkFSMitNQ0ZTSU1fR1BJT19FTikpCi0jZGVmaW5lIERJUjEgICAgICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENGR19NQkFSMitNQ0ZTSU1fR1BJTzFfRU4pKQotI2RlZmluZSBPVVQwCSAgICAgICAgKigodm9sYXRpbGUgdWxvbmcqKShDRkdfTUJBUjIrTUNGU0lNX0dQSU9fT1VUKSkKLSNkZWZpbmUgT1VUMQkgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ0ZHX01CQVIyK01DRlNJTV9HUElPMV9PVVQpKQotI2RlZmluZSBJTjAJICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENGR19NQkFSMitNQ0ZTSU1fR1BJT19SRUFEKSkKLSNkZWZpbmUgSU4xCSAgICAgICAgKigodm9sYXRpbGUgdWxvbmcqKShDRkdfTUJBUjIrTUNGU0lNX0dQSU8xX1JFQUQpKQorI2RlZmluZSBESVIwICAgICAgICAgICAgKigodm9sYXRpbGUgdWxvbmcqKShDT05GSUdfU1lTX01CQVIyK01DRlNJTV9HUElPX0VOKSkKKyNkZWZpbmUgRElSMSAgICAgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ09ORklHX1NZU19NQkFSMitNQ0ZTSU1fR1BJTzFfRU4pKQorI2RlZmluZSBPVVQwCSAgICAgICAgKigodm9sYXRpbGUgdWxvbmcqKShDT05GSUdfU1lTX01CQVIyK01DRlNJTV9HUElPX09VVCkpCisjZGVmaW5lIE9VVDEJICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENPTkZJR19TWVNfTUJBUjIrTUNGU0lNX0dQSU8xX09VVCkpCisjZGVmaW5lIElOMAkgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ09ORklHX1NZU19NQkFSMitNQ0ZTSU1fR1BJT19SRUFEKSkKKyNkZWZpbmUgSU4xCSAgICAgICAgKigodm9sYXRpbGUgdWxvbmcqKShDT05GSUdfU1lTX01CQVIyK01DRlNJTV9HUElPMV9SRUFEKSkKICNkZWZpbmUJSTJDX0lOSVQJe09VVDF8PVNEQTtPVVQwfD1TQ0w7fQogI2RlZmluZQlJMkNfUkVBRAkoKElOMSZTREEpPzE6MCkKICNkZWZpbmUJSTJDX1NEQSh4KQl7aWYoeClPVVQxfD1TREE7ZWxzZSBPVVQxJj1+U0RBO30KQEAgLTE2OSwxMiArMTY5LDEyIEBACiAjZWxzZSAvKiBvcGVuLWNvbGxlY3RvciAqLwogI2RlZmluZQlTREEJICAgICAgICAweDAwODAwMDAwCiAjZGVmaW5lCVNDTAkgICAgICAgIDB4MDAwMDAwMDgKLSNkZWZpbmUgRElSMCAgICAgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ0ZHX01CQVIyK01DRlNJTV9HUElPX0VOKSkKLSNkZWZpbmUgRElSMSAgICAgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ0ZHX01CQVIyK01DRlNJTV9HUElPMV9FTikpCi0jZGVmaW5lIE9VVDAJICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENGR19NQkFSMitNQ0ZTSU1fR1BJT19PVVQpKQotI2RlZmluZSBPVVQxCSAgICAgICAgKigodm9sYXRpbGUgdWxvbmcqKShDRkdfTUJBUjIrTUNGU0lNX0dQSU8xX09VVCkpCi0jZGVmaW5lIElOMAkgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ0ZHX01CQVIyK01DRlNJTV9HUElPX1JFQUQpKQotI2RlZmluZSBJTjEJICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENGR19NQkFSMitNQ0ZTSU1fR1BJTzFfUkVBRCkpCisjZGVmaW5lIERJUjAgICAgICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENPTkZJR19TWVNfTUJBUjIrTUNGU0lNX0dQSU9fRU4pKQorI2RlZmluZSBESVIxICAgICAgICAgICAgKigodm9sYXRpbGUgdWxvbmcqKShDT05GSUdfU1lTX01CQVIyK01DRlNJTV9HUElPMV9FTikpCisjZGVmaW5lIE9VVDAJICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENPTkZJR19TWVNfTUJBUjIrTUNGU0lNX0dQSU9fT1VUKSkKKyNkZWZpbmUgT1VUMQkgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ09ORklHX1NZU19NQkFSMitNQ0ZTSU1fR1BJTzFfT1VUKSkKKyNkZWZpbmUgSU4wCSAgICAgICAgKigodm9sYXRpbGUgdWxvbmcqKShDT05GSUdfU1lTX01CQVIyK01DRlNJTV9HUElPX1JFQUQpKQorI2RlZmluZSBJTjEJICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENPTkZJR19TWVNfTUJBUjIrTUNGU0lNX0dQSU8xX1JFQUQpKQogI2RlZmluZQlJMkNfSU5JVAl7RElSMSY9flNEQTtESVIwJj1+U0NMO09VVDEmPX5TREE7T1VUMCY9flNDTDt9CiAjZGVmaW5lCUkyQ19SRUFECSgoSU4xJlNEQSk/MTowKQogI2RlZmluZQlJMkNfU0RBKHgpCXtpZih4KURJUjEmPX5TREE7ZWxzZSBESVIxfD1TREE7fQpAQCAtMTg4LDExICsxODgsMTEgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4RkZDNDAwMDAJLyogQWRkcmVzcyBvZiBFbnZpcm9ubWVudCBTZWN0b3IqLwpAQCAtMjAyLDk0ICsyMDIsOTQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkxNgkJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZmMwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkxNgkJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmZjMDAwMDAKIAogI2lmIDAgLyogdGVzdC1vbmx5ICovCiAjZGVmaW5lIENPTkZJR19QUkFNICAgICAgICAgICAgIDUxMiAvKiB0ZXN0LW9ubHkgZm9yIFNEUkFNIHByb2JsZW0hISEhISEhISEhISEhISEhISEhISAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwKQogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgyMDAwMAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEgKiAxMDI0KjEwMjQpCS8qIFJlc2VydmUgMSBNQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxICogMTAyNCoxMDI0KQkvKiBSZXNlcnZlIDEgTUIgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JNjQqMTAyNAogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbiA/PwogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWVtb3J5IGJhbmsgZGVmaW5pdGlvbnMKICAqLwogCiAvKiBDUzAgLSBBTUQgRmxhc2gsIGFkZHJlc3MgMHhmZmMwMDAwMCAqLwotI2RlZmluZQlDRkdfQ1NBUjAgICAgICAgICAgICAgICAweGZmYzAKLSNkZWZpbmUJQ0ZHX0NTQ1IwICAgICAgICAgICAgICAgMHgxOTgwICAgICAgICAgIC8qIFdTPTAxMTAsIEFBPTEsIFBTPTEwICAgICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DU0FSMCAgICAgICAgICAgICAgIDB4ZmZjMAorI2RlZmluZQlDT05GSUdfU1lTX0NTQ1IwICAgICAgICAgICAgICAgMHgxOTgwICAgICAgICAgIC8qIFdTPTAxMTAsIEFBPTEsIFBTPTEwICAgICAgICAgKi8KIC8qKiBOb3RlOiBUaGVyZSBpcyBhIENTTVIwL0RSQU0gdmVjdG9yIHByb2JsZW0sIG5lZWQgdG8gZGlzYWJsZSBDL0kgKioqLwotI2RlZmluZQlDRkdfQ1NNUjAgICAgICAgICAgICAgICAweDAwM2YwMDIxICAgICAgLyogNE1CLCBBQT0wLCBXUD0wLCBDL0k9MSwgVj0xICAqLworI2RlZmluZQlDT05GSUdfU1lTX0NTTVIwICAgICAgICAgICAgICAgMHgwMDNmMDAyMSAgICAgIC8qIDRNQiwgQUE9MCwgV1A9MCwgQy9JPTEsIFY9MSAgKi8KIAogLyogQ1MxIC0gRlBHQSwgYWRkcmVzcyAweGUwMDAwMDAwICovCi0jZGVmaW5lCUNGR19DU0FSMSAgICAgICAgICAgICAgIDB4ZTAwMAotI2RlZmluZQlDRkdfQ1NDUjEgICAgICAgICAgICAgICAweDBkODAgICAgICAgICAgLyogV1M9MDAxMSwgQUE9MSwgUFM9MTAgICAgICAgICAqLwotI2RlZmluZQlDRkdfQ1NNUjEgICAgICAgICAgICAgICAweDAwMDEwMDAxICAgICAgLyogMTI4a0IsIEFBPTAsIFdQPTAsIEMvST0wLCBWPTEqLworI2RlZmluZQlDT05GSUdfU1lTX0NTQVIxICAgICAgICAgICAgICAgMHhlMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1NDUjEgICAgICAgICAgICAgICAweDBkODAgICAgICAgICAgLyogV1M9MDAxMSwgQUE9MSwgUFM9MTAgICAgICAgICAqLworI2RlZmluZQlDT05GSUdfU1lTX0NTTVIxICAgICAgICAgICAgICAgMHgwMDAxMDAwMSAgICAgIC8qIDEyOGtCLCBBQT0wLCBXUD0wLCBDL0k9MCwgVj0xKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUG9ydCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUJQ0ZHX0dQSU9fRlVOQyAgICAgICAgICAgMHgwMDAwMDAwOCAgICAgIC8qIFNldCBncGlvIHBpbnM6IG5vbmUgICAgICAgICAgKi8KLSNkZWZpbmUJQ0ZHX0dQSU8xX0ZVTkMgICAgICAgICAgMHgwMGRmMDBmMCAgICAgIC8qIDM2LTM5KFNXSVRDSCksNDgtNTIoRlBHQXMpLDU0Ki8KLSNkZWZpbmUJQ0ZHX0dQSU9fRU4gICAgICAgICAgICAgMHgwMDAwMDAwOCAgICAgIC8qIFNldCBncGlvIG91dHB1dCBlbmFibGUgICAgICAgKi8KLSNkZWZpbmUJQ0ZHX0dQSU8xX0VOICAgICAgICAgICAgMHgwMGM3MDAwMCAgICAgIC8qIFNldCBncGlvIG91dHB1dCBlbmFibGUgICAgICAgKi8KLSNkZWZpbmUJQ0ZHX0dQSU9fT1VUICAgICAgICAgICAgMHgwMDAwMDAwOCAgICAgIC8qIFNldCBvdXRwdXRzIHRvIGRlZmF1bHQgc3RhdGUgKi8KLSNkZWZpbmUJQ0ZHX0dQSU8xX09VVCAgICAgICAgICAgMHgwMGM3MDAwMCAgICAgIC8qIFNldCBvdXRwdXRzIHRvIGRlZmF1bHQgc3RhdGUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HUElPX0ZVTkMgICAgICAgICAgIDB4MDAwMDAwMDggICAgICAvKiBTZXQgZ3BpbyBwaW5zOiBub25lICAgICAgICAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfR1BJTzFfRlVOQyAgICAgICAgICAweDAwZGYwMGYwICAgICAgLyogMzYtMzkoU1dJVENIKSw0OC01MihGUEdBcyksNTQqLworI2RlZmluZQlDT05GSUdfU1lTX0dQSU9fRU4gICAgICAgICAgICAgMHgwMDAwMDAwOCAgICAgIC8qIFNldCBncGlvIG91dHB1dCBlbmFibGUgICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HUElPMV9FTiAgICAgICAgICAgIDB4MDBjNzAwMDAgICAgICAvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICAgICAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfR1BJT19PVVQgICAgICAgICAgICAweDAwMDAwMDA4ICAgICAgLyogU2V0IG91dHB1dHMgdG8gZGVmYXVsdCBzdGF0ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX0dQSU8xX09VVCAgICAgICAgICAgMHgwMGM3MDAwMCAgICAgIC8qIFNldCBvdXRwdXRzIHRvIGRlZmF1bHQgc3RhdGUgKi8KIAotI2RlZmluZSBDRkdfR1BJTzFfTEVEICAgICAgICAgICAweDAwNDAwMDAwICAgICAgLyogdXNlciBsZWQgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX0xFRCAgICAgICAgICAgMHgwMDQwMDAwMCAgICAgIC8qIHVzZXIgbGVkICAgICAgICAgICAgICAgICAgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgogICovCi0jZGVmaW5lIENGR19GUEdBX1NQQVJUQU4yCTEJICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCi0jZGVmaW5lIENGR19GUEdBX01BWF9TSVpFCTUxMioxMDI0ICAgIC8qIDUxMmtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzIwMCovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TUEFSVEFOMgkxCSAgICAvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdyAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUJNTEyKjEwMjQgICAgLyogNTEya0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTMjAwKi8KIAogLyogRlBHQSBwcm9ncmFtIHBpbiBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GUEdBX1BSRwkJMHgwMDAxMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ0xLCQkweDAwMDQwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9EQVRBCQkweDAwMDIwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9JTklUCQkweDAwMDgwMDAwICAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9ET05FCQkweDAwMTAwMDAwICAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJHCQkweDAwMDEwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ0xLCQkweDAwMDQwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfREFUQQkJMHgwMDAyMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lOSVQJCTB4MDAwODAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9ET05FCQkweDAwMTAwMDAwICAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgICAqLwogCiAjZW5kaWYJLyogX1RBU1JFR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVEI1MjAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvVEI1MjAwLmgKaW5kZXggZTRlMTM2Ny4uNjAxMDI0NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RCNTIwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9UQjUyMDAuaApAQCAtMzcsNyArMzcsNyBAQAogI2RlZmluZSBDT05GSUdfVFFNNTIwMAkJMQkvKiAuLi4gb24gVFFNNTIwMCBtb2R1bGUgKi8KICNkZWZpbmUgQ09ORklHX1RCNTIwMAkJMQkvKiAuLi4gb24gYSBUQjUyMDAgYmFzZSBib2FyZCAqLwogCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAgKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QJICAgICAqLwpAQCAtNTEsNyArNTEsNyBAQAogI2RlZmluZSBDT05GSUdfU0VSSUFMX01VTFRJCTEJLyogc3VwcG9ydCBtdWx0aXBsZSBjb25zb2xlcyAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUyCTYJLyogc2Vjb25kIGNvbnNvbGUgaXMgb24gUFNDNiAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAkvKiAuLi4gYXQgMTE1MjAwIGJwcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qCiAgKiBWaWRlbyBjb25zb2xlCkBAIC02Niw3ICs2Niw3IEBACiAjZGVmaW5lIENPTkZJR19DT05TT0xFX0VYVFJBX0lORk8KICNkZWZpbmUgQ09ORklHX1ZJREVPX1NXX0NVUlNPUgogI2RlZmluZSBDT05GSUdfU1BMQVNIX1NDUkVFTgotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgogI2VuZGlmCiAKIC8qIFBhcnRpdGlvbnMgKi8KQEAgLTc5LDkgKzc5LDkgQEAKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCiAKIC8qIFBPU1Qgc3VwcG9ydCAqLwotI2RlZmluZSBDT05GSUdfUE9TVAkJKENGR19QT1NUX01FTU9SWSAgIHwgXAotCQkJCSBDRkdfUE9TVF9DUFUJICAgfCBcCi0JCQkJIENGR19QT1NUX0kyQykKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfTUVNT1JZICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DUFUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9JMkMpCiAKICNpZmRlZiBDT05GSUdfUE9TVAogLyogcHJlc2VydmUgc3BhY2UgZm9yIHRoZSBwb3N0X3dvcmQgYXQgZW5kIG9mIG9uLWNoaXAgU1JBTSAqLwpAQCAtMTMzLDcgKzEzMyw3IEBACiAjZGVmaW5lCUNPTkZJR19USU1FU1RBTVAJCS8qIGRpc3BsYXkgaW1hZ2UgdGltZXN0YW1wcyAqLwogCiAjaWYgKFRFWFRfQkFTRSA9PSAweEZDMDAwMDAwKQkJLyogQm9vdCBsb3cgKi8KLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UCQkxCiAjZW5kaWYKIAogLyoKQEAgLTIwMCwyNCArMjAwLDI0IEBACiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jZGVmaW5lIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSykKIC8qCiAgKiBQQ0kgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24KICAqCiAgKiBBY3R1YWxseSBhIFBDSSBDbG9jayBvZiA2NiBNSHogaXMgb25seSBzZXQgKGluIGNwdV9pbml0LmMpIGlmCi0gKiBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsgaXMgZGVmaW5lZC4gVGhpcyBpcyBiZWNhdXNlIGEgUENJIENsb2NrCisgKiBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLIGlzIGRlZmluZWQuIFRoaXMgaXMgYmVjYXVzZSBhIFBDSSBDbG9jawogICogb2YgNjYgTUh6IHlldCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgd2l0aCBhIElQQiBCdXMgQ2xvY2sgb2YgNjYgTUh6LgogICovCi0jZGVmaW5lIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCQkvKiBkZWZpbmUgZm9yIDY2TUh6IHNwZWVkICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJQ0xLX0VRVUFMU19JUEJDTEtfRElWMgkJLyogZGVmaW5lIGZvciA2Nk1IeiBzcGVlZCAqLwogI2VuZGlmCiAKIC8qCiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMiAqLwogCiAvKgogICogSTJDIGNsb2NrIGZyZXF1ZW5jeQpAQCAtMjI1LDExICsyMjUsMTEgQEAKICAqIFBsZWFzZSBub3RpY2UsIHRoYXQgdGhlIHJlc3VsdGluZyBjbG9jayBmcmVxdWVuY3kgY291bGQgZGlmZmVyIGZyb20gdGhlCiAgKiBjb25maWd1cmVkIHZhbHVlLiBUaGlzIGlzIGJlY2F1c2UgdGhlIEkyQyBjbG9jayBpcyBkZXJpdmVkIGZyb20gc3lzdGVtCiAgKiBjbG9jayBvdmVyIGEgZnJlcXVlbmN5IGRpdmlkZXIgd2l0aCBvbmx5IGEgZmV3IGRpdmlkZXIgdmFsdWVzLiBVLWJvb3QKLSAqIGNhbGN1bGF0ZXMgdGhlIGJlc3QgYXBwcm94aW1hdGlvbiBmb3IgQ0ZHX0kyQ19TUEVFRC4gSG93ZXZlciB0aGUgY2FsY3VsYXRlZAorICogY2FsY3VsYXRlcyB0aGUgYmVzdCBhcHByb3hpbWF0aW9uIGZvciBDT05GSUdfU1lTX0kyQ19TUEVFRC4gSG93ZXZlciB0aGUgY2FsY3VsYXRlZAogICogYXBwcm94aW1hdGlvbiBhbGx3YXlzIGxpZXMgYmVsb3cgdGhlIGNvbmZpZ3VyZWQgdmFsdWUsIG5ldmVyIGFib3ZlLgogICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbiBmb3Igb25ib2FyZCBFRVBST00gTTI0QzMyIChNMjRDNjQgc2hvdWxkIHdvcmsKQEAgLTIzNyw0MSArMjM3LDQxIEBACiAgKiBFRVBST00gKDI0QzY0KSBpcyBvbiB0aGUgc2FtZSBJMkMgYWRkcmVzcyAoYnV0IG9uIG90aGVyIEkyQyBidXMpLCBzbyB0aGUKICAqIHNhbWUgY29uZmlndXJhdGlvbiBjb3VsZCBiZSB1c2VkLgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTIKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiA9MzIgQnl0ZXMgcGVyIHdyaXRlICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogPTMyIEJ5dGVzIHBlciB3cml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCiAKIC8qIExpc3Qgb2YgSTJDIGFkZHJlc3NlcyB0byBiZSB2ZXJpZmllZCBieSBQT1NUICovCiAjdW5kZWYgSTJDX0FERFJfTElTVAotI2RlZmluZSBJMkNfQUREUl9MSVNUCXsJQ0ZHX0kyQ19FRVBST01fQUREUiwJXAotCQkJCUNGR19JMkNfUlRDX0FERFIsCVwKLQkJCQlDRkdfSTJDX1NMQVZFIH0KKyNkZWZpbmUgSTJDX0FERFJfTElTVAl7CUNPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLAlcCisJCQkJQ09ORklHX1NZU19JMkNfUlRDX0FERFIsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19TTEFWRSB9CiAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVRFWFRfQkFTRSAvKiAweEZDMDAwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJVEVYVF9CQVNFIC8qIDB4RkMwMDAwMDAgKi8KIAogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19CT09UQ1NfU1RBUlQgfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwNDAwMDAwMCAvKiA2NCBNQnl0ZSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAgLyogNjQgTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQogCi0jaWYgIWRlZmluZWQoQ0ZHX0xPV0JPT1QpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDc2MDAwMCArIDB4MDA4MDAwMDApCi0jZWxzZQkvKiBDRkdfTE9XQk9PVCAqLworI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDc2MDAwMCArIDB4MDA4MDAwMDApCisjZWxzZQkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KICNpZiBkZWZpbmVkKENPTkZJR19UUU01MjAwX0IpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDA4MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDA4MDAwMCkKICNlbHNlCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDA2MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDA2MDAwMCkKICNlbmRpZiAvKiBDT05GSUdfVFFNNTIwMF9CICovCi0jZW5kaWYJLyogQ0ZHX0xPV0JPT1QgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MKKyNlbmRpZgkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCiAJCQkJCSAgICg9IGNoaXAgc2VsZWN0cykgKi8KIAogLyogRHluYW1pYyBNVEQgcGFydGl0aW9uIHN1cHBvcnQgKi8KQEAgLTMwOSwzNiArMzA5LDM2IEBACiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19NQkFSCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKIAogLyogVXNlIE9OLUNoaXAgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KICNpZmRlZiBDT05GSUdfUE9TVAogLyogcHJlc2VydmUgc3BhY2UgZm9yIHRoZSBwb3N0X3dvcmQgYXQgZW5kIG9mIG9uLWNoaXAgU1JBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1BPU1RfU0laRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQogI2VuZGlmCiAKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19UUU01MjAwX0IpCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDM4NCA8PCAxMCkJLyogUmVzZXJ2ZSAzODQga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDM4NCA8PCAxMCkJLyogUmVzZXJ2ZSAzODQga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZiAvKiBDT05GSUdfVFFNNTIwMF9CICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTAyNCA8PCAxMCkJLyogUmVzZXJ2ZSAxMDI0IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMDI0IDw8IDEwKQkvKiBSZXNlcnZlIDEwMjQga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMzc5LDQ1ICszNzksNDUgQEAKICAqICAgR1BJTyBvbiBQU0M2XzMgaXMgdXNlZCBpbiBwb3N0X2hvdGtleXNfcHJlc3NlZCgpIHRvIGVuYWJsZSBleHRlbmRlZCBQT1NUCiAgKiAgIHRlc3RzLgogICovCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHg4MTUwMDExNAorI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDgxNTAwMTE0CiAKIC8qCiAgKiBSVEMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19SVENfTTQxVDExCTEKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4Ci0jZGVmaW5lIENGR19NNDFUMTFfQkFTRV9ZRUFSCTE5MDAgICAgLyogYmVjYXVzZSBMaW51eCB1c2VzIHRoZSBzYW1lIGJhc2UKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAorI2RlZmluZSBDT05GSUdfU1lTX000MVQxMV9CQVNFX1lFQVIJMTkwMCAgICAvKiBiZWNhdXNlIExpbnV4IHVzZXMgdGhlIHNhbWUgYmFzZQogCQkJCQkgICB5ZWFyICovCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeSAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyogRW5hYmxlIGFuIGFsdGVybmF0ZSwgbW9yZSBleHRlbnNpdmUgbWVtb3J5IHRlc3QgKi8KLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKgogICogRW5hYmxlIGxvb3B3IGNvbW1hbmQuCkBAIC00MjgsMjIgKzQyOCwyMiBAQAogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCTAKICNlbmRpZgogCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2lmZGVmIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDhERjMwIC8qIGZvciBwY2lfY2xrICA9IDY2IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjaWZkZWYgQ09ORklHX1NZU19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA4REYzMCAvKiBmb3IgcGNpX2NsayAgPSA2NiBNSHogKi8KICNlbHNlCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDRERjMwIC8qIGZvciBwY2lfY2xrID0gMzMgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0REYzMCAvKiBmb3IgcGNpX2NsayA9IDMzIE1IeiAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAogI2RlZmluZSBDT05GSUdfTEFTVF9TVEFHRV9JTklUCiAKQEAgLTQ1MSwyNCArNDUxLDI0IEBACiAgKiBTUkFNIC0gRG8gbm90IG1hcCBiZWxvdyAyIEdCIGluIGFkZHJlc3Mgc3BhY2UsIGJlY2F1c2UgdGhpcyBhcmVhIGlzIHVzZWQKICAqIGZvciBTRFJBTSBhdXRvc2l6aW5nLgogICovCi0jZGVmaW5lIENGR19DUzJfU1RBUlQJCTB4RTUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMl9TSVpFCQkweDEwMDAwMAkvKiAxIE1CeXRlICovCi0jZGVmaW5lIENGR19DUzJfQ0ZHCQkweDAwMDREOTMwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NUQVJUCQkweEU1MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NJWkUJCTB4MTAwMDAwCS8qIDEgTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfQ0ZHCQkweDAwMDREOTMwCiAKIC8qCiAgKiBHcmFmaWMgY29udHJvbGxlciAtIERvIG5vdCBtYXAgYmVsb3cgMiBHQiBpbiBhZGRyZXNzIHNwYWNlLCBiZWNhdXNlIHRoaXMKICAqIGFyZWEgaXMgdXNlZCBmb3IgU0RSQU0gYXV0b3NpemluZy4KICAqLwogI2RlZmluZSBTTTUwMV9GQl9CQVNFCQkweEUwMDAwMDAwCi0jZGVmaW5lIENGR19DUzFfU1RBUlQJCShTTTUwMV9GQl9CQVNFKQotI2RlZmluZSBDRkdfQ1MxX1NJWkUJCTB4NDAwMDAwMAkvKiA2NCBNQnl0ZSAqLwotI2RlZmluZSBDRkdfQ1MxX0NGRwkJMHg4RjQ4RkY3MAotI2RlZmluZSBTTTUwMV9NTUlPX0JBU0UJCUNGR19DUzFfU1RBUlQgKyAweDAzRTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUCQkoU001MDFfRkJfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRQkJMHg0MDAwMDAwCS8qIDY0IE1CeXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NGRwkJMHg4RjQ4RkY3MAorI2RlZmluZSBTTTUwMV9NTUlPX0JBU0UJCUNPTkZJR19TWVNfQ1MxX1NUQVJUICsgMHgwM0UwMDAwMAogCi0jZGVmaW5lIENGR19DU19CVVJTVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMTEJLyogMSBkZWFkIGN5Y2xlIGZvciBmbGFzaCBhbmQgU001MDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzExCS8qIDEgZGVhZCBjeWNsZSBmb3IgZmxhc2ggYW5kIFNNNTAxICovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBVU0Igc3R1ZmYKQEAgLTQ5MCwyMyArNDkwLDIzIEBACiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkCSovCiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkyCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMgkvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoQ0ZHX0FUQV9EQVRBX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQpCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJKDB4MDA1QykKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQogCiAvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycwkJCQkJCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUJCTQKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfU1RSSURFCQk0CiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVEs4ODVELmggYi9pbmNsdWRlL2NvbmZpZ3MvVEs4ODVELmgKaW5kZXggMmVmYzEwYS4uMTRmZjYyYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RLODg1RC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9USzg4NUQuaApAQCAtNDEsOCArNDEsOCBAQAogI2RlZmluZSBDT05GSUdfVEs4ODVECQkxCS8qIC4uLmluIGEgVEs4ODVEIGJhc2UgYm9hcmQJKi8KIAogI2RlZmluZSBDT05GSUdfOHh4X09TQ0xLCQkxMDAwMDAwMAkvKiAgMTAgTUh6IC0gUExMIGlucHV0IGNsb2NrCSovCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01JTgkJMTUwMDAwMDAJLyogIDE1IE1IeiAtIENQVSBtaW5pbXVtIGNsb2NrCSovCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01BWAkJMTMzMDAwMDAwCS8qIDEzMyBNSHogLSBDUFUgbWF4aW11bSBjbG9jawkqLworI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUlOCQkxNTAwMDAwMAkvKiAgMTUgTUh6IC0gQ1BVIG1pbmltdW0gY2xvY2sJKi8KKyNkZWZpbmUgQ09ORklHX1NZU184eHhfQ1BVQ0xLX01BWAkJMTMzMDAwMDAwCS8qIDEzMyBNSHogLSBDUFUgbWF4aW11bSBjbG9jawkqLwogI2RlZmluZSBDT05GSUdfOHh4X0NQVUNMS19ERUZBVUxUCTY2MDAwMDAwCS8qICA2NiBNSHogLSBDUFUgZGVmYXVsdCBjbG9jawkqLwogCQkJCQkJLyogKGl0IHdpbGwgYmUgdXNlZCBpZiB0aGVyZSBpcyBubwkqLwogCQkJCQkJLyogJ2NwdWNsaycgdmFyaWFibGUgd2l0aCB2YWxpZCB2YWx1ZSkJKi8KQEAgLTkyLDcgKzkyLDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gZmxhc2hfc2VsZiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTA0LDggKzEwNCw4IEBACiAjdW5kZWYJQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJOTMwMDAJLyogOTMga0h6IGlzIHN1cHBvc2VkIHRvIHdvcmsJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHhGRQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJOTMwMDAJLyogOTMga0h6IGlzIHN1cHBvc2VkIHRvIHdvcmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUKIAogI2lmZGVmIENPTkZJR19TT0ZUX0kyQwogLyoKQEAgLTEyNSwxMyArMTI1LDEzIEBACiAjZGVmaW5lIEkyQ19ERUxBWQl1ZGVsYXkoMikJLyogMS80IEkyQyBjbG9jayBkdXJhdGlvbiAqLwogI2VuZGlmCS8qIENPTkZJR19TT0ZUX0kyQyAqLwogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkJLyogRUVQUk9NIEFUMjRDPz8JKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgkJLyogdHdvIGJ5dGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiBFRVBST00gQVQyNEM/PwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMgkJLyogdHdvIGJ5dGUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKICMgZGVmaW5lIENPTkZJR19SVENfRFMxMzM3IDEKLSMgZGVmaW5lIENGR19JMkNfUlRDX0FERFIgMHg2OAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIgMHg2OAogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtMTcwLDM0ICsxNzAsMzQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDMwMDAwMAkvKiAxIC4uLiAzIE1CIGluIERSQU0JKi8KLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCQkJCS8qIGFsdGVybmF0ZSwgbW9yZSBleHRlbnNpdmUKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDMwMDAwMAkvKiAxIC4uLiAzIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVAkJCQkvKiBhbHRlcm5hdGUsIG1vcmUgZXh0ZW5zaXZlCiAJCQkJCQkgICBtZW1vcnkgdGVzdC4qLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBFbmFibGUgbG9vcHcgY29tbWFuZC4KQEAgLTIxMiw0NyArMjEyLDQ3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCiAKIC8qIHVzZSBDRkkgZmxhc2ggZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg0MDAwMCAvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjY2LDE2ICsyNjYsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZQkgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUJICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjg1LDEwICsyODUsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI5Nyw5ICsyOTcsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZiBDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMDcsMTQgKzMwNywxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzIzLDcgKzMyMyw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKIApAQCAtMzMyLDE0ICszMzIsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzUyLDI4ICszNTIsMjggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRAkgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIgMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUiAwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzg4LDIyICszODgsMjIgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzogRGVmYXVsdCB2YWx1ZSBvZiBPUjAgYWZ0ZXIgcmVzZXQKICAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSB8IE9SX0FDU19NU0sgfCBPUl9CSSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNIHwgT1JfQUNTX01TSyB8IE9SX0JJIHwgXAogCQkJCSBPUl9TQ1lfNl9DTEsgfCBPUl9UUkxYKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyoKICAqIEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCkBAIC00MTQsMTkgKzQxNCwxOSBAQAogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJKDI1NiA8PCAyMCkJLyogbWF4IDI1NiBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZiBDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lIENGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTQzNyw0OCArNDM3LDQ4IEBACiAgKiA0CU51bWJlciBvZiByZWZyZXNoIGN5Y2xlcyBwZXIgcGVyaW9kCiAgKiA2NAlSZWZyZXNoIGN5Y2xlIGluIG1zIHBlciBudW1iZXIgb2Ygcm93cwogICovCi0jZGVmaW5lIENGR19QVEFfUEVSX0NMSwkoKDQwOTYgKiA2NCAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogNjQgKiAxMDAwKSAvICg0ICogNjQpKQogCiAvKgogICogUGVyaW9kaWMgdGltZXIgKE1BTVJbUFR4XSkgZm9yIDQgKiA3LjggdXMgcmVmcmVzaCAoPSAzMS4yIHVzIHBlciBxdWFkKQogICoKICAqICAgICAgICAgICAgICAgICAgICAgICAgQ1BVY2xvY2soTUh6KSAqIDMxLjIKLSAqIENGR19NQU1SX1BUQSA9IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICB3aXRoIERGQlJHID0gMAorICogQ09ORklHX1NZU19NQU1SX1BUQSA9IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICB3aXRoIERGQlJHID0gMAogICogICAgICAgICAgICAgICAgMl4oMipTQ0NSW0RGQlJHXSkgKiBNUFRQUl9QVFBfRElWMTYKICAqCi0gKiBDUFUgY2xvY2sgPSAgMTUgTUh6OiAgQ0ZHX01BTVJfUFRBID0gIDI5ICAgLT4gIDQgKiA3LjczIHVzCi0gKiBDUFUgY2xvY2sgPSAgNTAgTUh6OiAgQ0ZHX01BTVJfUFRBID0gIDk3ICAgLT4gIDQgKiA3Ljc2IHVzCi0gKiBDUFUgY2xvY2sgPSAgNjYgTUh6OiAgQ0ZHX01BTVJfUFRBID0gMTI4ICAgLT4gIDQgKiA3Ljc1IHVzCi0gKiBDUFUgY2xvY2sgPSAxMzMgTUh6OiAgQ0ZHX01BTVJfUFRBID0gMjU1ICAgLT4gIDQgKiA3LjY3IHVzCisgKiBDUFUgY2xvY2sgPSAgMTUgTUh6OiAgQ09ORklHX1NZU19NQU1SX1BUQSA9ICAyOSAgIC0+ICA0ICogNy43MyB1cworICogQ1BVIGNsb2NrID0gIDUwIE1IejogIENPTkZJR19TWVNfTUFNUl9QVEEgPSAgOTcgICAtPiAgNCAqIDcuNzYgdXMKKyAqIENQVSBjbG9jayA9ICA2NiBNSHo6ICBDT05GSUdfU1lTX01BTVJfUFRBID0gMTI4ICAgLT4gIDQgKiA3Ljc1IHVzCisgKiBDUFUgY2xvY2sgPSAxMzMgTUh6OiAgQ09ORklHX1NZU19NQU1SX1BUQSA9IDI1NSAgIC0+ICA0ICogNy42NyB1cwogICoKICAqIFZhbHVlIDk3IGlzIGZvciA0ICogNy44IHVzIGF0IDUwIE1Iei4gU28gdGhlIHJlZnJlc2ggY3ljbGUgcmVxdWlyZW1lbnQgd2lsbAogICogYmUgbWV0IGFsc28gaW4gdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiwgaS5lLiBpZiBlbnZpcm9ubWVudCB2YXJpYWJsZQogICogJ2NwdWNsaycgaXMgbm90IHNldC4KICAqLwotI2RlZmluZSBDRkdfTUFNUl9QVEEJCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCQkxMjgKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIgUmVnaXN0ZXIgKE1QVFBSKSB2YWx1ZXMuCiAgKi8KIC8qIDQgKiA3LjggdXMgcmVmcmVzaCAoPSAzMS4yIHVzIHBlciBxdWFkKSBhdCA1MCBNSHogYW5kIFBUQSA9IDk3ICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgogLyogNCAqIDMuOSB1cyByZWZyZXNoICg9IDE1LjYgdXMgcGVyIHF1YWQpIGF0IDUwIE1IeiBhbmQgUFRBID0gOTcgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogMTAgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzEwQ09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfMTBDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMiB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTkgIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKQEAgLTQ5OSwxMiArNDk5LDEyIEBACiAKICNkZWZpbmUgQ09ORklHX0xBU1RfU1RBR0VfSU5JVAkJMSAvKiBIYXZlIHRvIGNvbmZpZ3VyZSBQSFlzIGZvciBMaW51eCAqLwogCi0vKiBDRkdfRElTQ09WRVJfUEhZIG9ubHkgd29ya3Mgd2l0aCBGRUMgaWYgb25seSBvbmUgaW50ZXJmYWNlIGlzIGVuYWJsZWQgKi8KKy8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIG9ubHkgd29ya3Mgd2l0aCBGRUMgaWYgb25seSBvbmUgaW50ZXJmYWNlIGlzIGVuYWJsZWQgKi8KICNpZiAoIWRlZmluZWQoQ09ORklHX0VUSEVSX09OX0ZFQzEpIHx8ICFkZWZpbmVkKENPTkZJR19FVEhFUl9PTl9GRUMyKSkKLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorI2lmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogLyogUEhZIGFkZHJlc3NlcyAtIGhhcmQgd2lyZWQgaW4gaGFyZHdhcmUgKi8KICNkZWZpbmUgQ09ORklHX0ZFQzFfUEhZCTEKICNkZWZpbmUgQ09ORklHX0ZFQzJfUEhZCTIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9UT1A1MjAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvVE9QNTIwMC5oCmluZGV4IDM4MTgzNjguLjA0Njk0OGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9UT1A1MjAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RPUDUyMDAuaApAQCAtNDUsNyArNDUsNyBAQAogI2RlZmluZSBDT05GSUdfTVBDNTIwMAkJMQkvKiBNb3JlIGV4YWN0bHkgYSBNUEM1MjAwICovCiAjZGVmaW5lIENPTkZJR19UT1A1MjAwCQkxCS8qIC4uLiBvbiBUT1A1MjAwIGJvYXJkIC0gd2UgbmVlZCB0aGlzIGZvciBGRUMuQyAqLwogCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAgKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QJICAgICAqLwpAQCAtNTcsNyArNTcsNyBAQAogICovCiAjZGVmaW5lIENPTkZJR19QU0NfQ09OU09MRQkxCS8qIGNvbnNvbGUgaXMgb24gUFNDMSAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAJLyogLi4uIGF0IDk2MDAgYnBzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogCiAjaWYgZGVmaW5lZCAoQ09ORklHX0VWQUw1MjAwKSB8fCBkZWZpbmVkIChDT05GSUdfTElURTUyMDApCkBAIC0xMzksOCArMTM5LDggQEAKICAqIE1VU1QgYmUgbG93IGJvb3QgLSBISUdIQk9PVCBpcyBub3Qgc3VwcG9ydGVkIGFueW1vcmUKICAqLwogI2lmIChURVhUX0JBU0UgPT0gMHhGRjAwMDAwMCkJCS8qIEJvb3QgbG93IHdpdGggMTYgTUIgRmxhc2ggKi8KLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QxNgkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QxNgkxCiAjZWxzZQogIyAgIGVycm9yICJURVhUX0JBU0UgbXVzdCBiZSAweGZmMDAwMDAwIgogI2VuZGlmCkBAIC0xNzgsNyArMTc4LDcgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSN1bmRlZiBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjdW5kZWYgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KIAogLyoKICAqIEkyQyBjb25maWd1cmF0aW9uCkBAIC0xODYsMTEgKzE4NiwxMSBAQAogLyoKICAqIEVFUFJPTSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNzAKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MAogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDIKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9TSVpFIDB4MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9TSVpFIDB4MjAwMAogCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgpAQCAtMjAxLDExICsyMDEsMTEgQEAKICNpZiBkZWZpbmVkIChDT05GSUdfU09GVF9JMkMpCiAjICBkZWZpbmUgU0RBMAkJCTB4NDAKICMgIGRlZmluZSBTQ0wwCQkJMHg4MAotIyAgZGVmaW5lIEdQSU9FMAkJKigodm9sYXRpbGUgdWNoYXIqKShDRkdfTUJBUisweDBjMDApKQotIyAgZGVmaW5lIEREUjAJCQkqKCh2b2xhdGlsZSB1Y2hhciopKENGR19NQkFSKzB4MGMwOCkpCi0jICBkZWZpbmUgRFZPMAkJCSooKHZvbGF0aWxlIHVjaGFyKikoQ0ZHX01CQVIrMHgwYzBjKSkKLSMgIGRlZmluZSBEVkkwCQkJKigodm9sYXRpbGUgdWNoYXIqKShDRkdfTUJBUisweDBjMjApKQotIyAgZGVmaW5lIE9ERTAJCQkqKCh2b2xhdGlsZSB1Y2hhciopKENGR19NQkFSKzB4MGMwNCkpCisjICBkZWZpbmUgR1BJT0UwCQkqKCh2b2xhdGlsZSB1Y2hhciopKENPTkZJR19TWVNfTUJBUisweDBjMDApKQorIyAgZGVmaW5lIEREUjAJCQkqKCh2b2xhdGlsZSB1Y2hhciopKENPTkZJR19TWVNfTUJBUisweDBjMDgpKQorIyAgZGVmaW5lIERWTzAJCQkqKCh2b2xhdGlsZSB1Y2hhciopKENPTkZJR19TWVNfTUJBUisweDBjMGMpKQorIyAgZGVmaW5lIERWSTAJCQkqKCh2b2xhdGlsZSB1Y2hhciopKENPTkZJR19TWVNfTUJBUisweDBjMjApKQorIyAgZGVmaW5lIE9ERTAJCQkqKCh2b2xhdGlsZSB1Y2hhciopKENPTkZJR19TWVNfTUJBUisweDBjMDQpKQogIyAgZGVmaW5lIEkyQ19JTklUCQl7R1BJT0UwfD0oU0RBMHxTQ0wwKTtPREUwfD0oU0RBMHxTQ0wwKTtEVk8wfD0oU0RBMHxTQ0wwKTtERFIwfD0oU0RBMHxTQ0wwKTt9CiAjICBkZWZpbmUgSTJDX1JFQUQJCSgoRFZJMCZTREEwKT8xOjApCiAjICBkZWZpbmUgSTJDX1NEQSh4KQl7aWYoeClEVk8wfD1TREEwO2Vsc2UgRFZPMCY9flNEQTA7fQpAQCAtMjEzLDMyICsyMTMsMzIgQEAKICMgIGRlZmluZSBJMkNfREVMQVkJCXt1ZGVsYXkoNSk7fQogIyAgZGVmaW5lIEkyQ19BQ1RJVkUJe0REUjB8PVNEQTA7fQogIyAgZGVmaW5lIEkyQ19UUklTVEFURQl7RERSMCY9flNEQTA7fQotIyAgZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAotIyAgZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUiAweDU3Ci0jZGVmaW5lIENGR19JMkNfRkFDVF9BRERSCTB4NTcKKyMgIGRlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCisjICBkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgMHg1NworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19GQUNUX0FERFIJMHg1NwogI2VuZGlmCiAKICNpZiBkZWZpbmVkIChDT05GSUdfSEFSRF9JMkMpCi0jICBkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJMgkJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KLSMgIGRlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogMTAwIGtIeiAqLwotIyAgZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUiAweDU0Ci0jZGVmaW5lIENGR19JMkNfRkFDVF9BRERSCTB4NTQKKyMgIGRlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJMgkJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIDEwMCBrSHogKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiAweDU0CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0ZBQ1RfQUREUgkweDU0CiAjZW5kaWYKIAogLyoKICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24sIGV4cGVjdCBvbmUgMTYgTWVnYWJ5dGUgQmFuayBhdCBtb3N0CiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmYwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAwKQogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwogCiAjdW5kZWYgQ09ORklHX0ZMQVNIXzE2QklUCS8qIEZsYXNoIGlzIDgtYml0ICovCiAKQEAgLTI0NywyNSArMjQ3LDI1IEBACiAgKi8KICNpZiAwCiAvKiAyeCBNVDQ4TEMxNk0xNkEyIC0gNy4wIG5zIFNEUkFNUyA9IDY0IE1lZ2FCeXRlcyBUb3RhbCAqLwotI2RlZmluZQlDRkdfRFJBTV9ERFIJCTAKLSNkZWZpbmUgQ0ZHX0RSQU1fRU1PREUJCTAKLSNkZWZpbmUgQ0ZHX0RSQU1fTU9ERQkJMHgwMDhECi0jZGVmaW5lIENGR19EUkFNX0NPTlRST0wJMHg1MTRGMDAwMAotI2RlZmluZSBDRkdfRFJBTV9DT05GSUcxCTB4QzIyMzNBMDAKLSNkZWZpbmUgQ0ZHX0RSQU1fQ09ORklHMgkweDg4QjcwMDA0Ci0jZGVmaW5lCUNGR19EUkFNX1RBUF9ERUwJMHgwOAotI2RlZmluZSBDRkdfRFJBTV9SQU1fU0laRQkweDE5CisjZGVmaW5lCUNPTkZJR19TWVNfRFJBTV9ERFIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0VNT0RFCQkwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9NT0RFCQkweDAwOEQKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0NPTlRST0wJMHg1MTRGMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQ09ORklHMQkweEMyMjMzQTAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9DT05GSUcyCTB4ODhCNzAwMDQKKyNkZWZpbmUJQ09ORklHX1NZU19EUkFNX1RBUF9ERUwJMHgwOAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fUkFNX1NJWkUJMHgxOQogI2VuZGlmCiAjaWYgMQogLyogMnggTVQ0OExDMTZNMTZBMiAtIDcuNSBucyBTRFJBTVMgPSA2NCBNZWdhQnl0ZXMgVG90YWwgKi8KLSNkZWZpbmUJQ0ZHX0RSQU1fRERSCQkwCi0jZGVmaW5lIENGR19EUkFNX0VNT0RFCQkwCi0jZGVmaW5lIENGR19EUkFNX01PREUJCTB4MDBDRAotI2RlZmluZSBDRkdfRFJBTV9DT05UUk9MCTB4NTE0RjAwMDAKLSNkZWZpbmUgQ0ZHX0RSQU1fQ09ORklHMQkweEQyMzMzQTAwCi0jZGVmaW5lIENGR19EUkFNX0NPTkZJRzIJMHg4QUQ3MDAwNAotI2RlZmluZQlDRkdfRFJBTV9UQVBfREVMCTB4MDgKLSNkZWZpbmUgQ0ZHX0RSQU1fUkFNX1NJWkUJMHgxOQorI2RlZmluZQlDT05GSUdfU1lTX0RSQU1fRERSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9FTU9ERQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fTU9ERQkJMHgwMENECisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9DT05UUk9MCTB4NTE0RjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0NPTkZJRzEJMHhEMjMzM0EwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQ09ORklHMgkweDhBRDcwMDA0CisjZGVmaW5lCUNPTkZJR19TWVNfRFJBTV9UQVBfREVMCTB4MDgKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1JBTV9TSVpFCTB4MTkKICNlbmRpZgogCiAvKgpAQCAtMjc4LDM1ICsyNzgsMzUgQEAKIC8qCiAgKiBWUEQgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfRkFDVF9PRkZTRVQJCTB4MTgwMAotI2RlZmluZSBDRkdfRkFDVF9TSVpFCQkweDA4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19GQUNUX09GRlNFVAkJMHgxODAwCisjZGVmaW5lIENPTkZJR19TWVNfRkFDVF9TSVpFCQkweDA4MDAKIAogLyoKICAqIE1lbW9yeSBtYXAKICAqCiAgKiBXYXJuaW5nISEhIHdpdGggdGhlIGN1cnJlbnQgQmVzdENvbW0gVGFzaywgTUJBUiBNVVNUIEJFIHNldCB0byAweGYwMDAwMDAwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCQkweGYwMDAwMDAwCS8qIERPIE5PVCBDSEFOR0UgdGhpcyAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkJMHhmMDAwMDAwMAkvKiBETyBOT1QgQ0hBTkdFIHRoaXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKIAogLyogVXNlIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCiAKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMzIxLDMyICszMjEsMzIgQEAKICAqIFBDSSBkaXNhYmxlZAogICogRXRoZXJuZXQgMTAwIHdpdGggTUQKICAqLwotI2RlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4MDAwNTgwNDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHgwMDA1ODA0NAogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jICBkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAxZjAwMDAwCS8qIDEgLi4uIDMxIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAxZjAwMDAwCS8qIDEgLi4uIDMxIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAKQEAgLTM1NCwxMiArMzU0LDEyIEBACiAgICNkZWZpbmUgQ09ORklHX1JUQ19NSzQ4VDU5CTEJLyogdXNlIE00OFQwOCBvbiBFVkFMNTIwMCAqLwogICAjZGVmaW5lIFJUQyhyZWcpCQkoMHhmMDAxMDAwMCtyZWcpCiAgIC8qIHNldHVwIENTMiBmb3IgTTQ4VDA4LiBNdXN0IE1BUCA2NGtCICovCi0gICNkZWZpbmUgQ0ZHX0NTMl9TVEFSVAlSVEMoMCkKLSAgI2RlZmluZSBDRkdfQ1MyX1NJWkUJMHgxMDAwMAorICAjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NUQVJUCVJUQygwKQorICAjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NJWkUJMHgxMDAwMAogICAvKiBzZXR1cCBDUzIgY29uZmlndXJhdGlvbiByZWdpc3RlcjogKi8KICAgLyogV2FpdFAgPSAwLCBXYWl0WCA9IDQsIE1YPTAsIEFMPTEsIEFBPTEsIENFPTEgKi8KICAgLyogQVM9MiwgRFM9MCwgQmFuaz0wLCBXVHlwPTAsIFdTPTAsIFJTPTAsIFdPPTAsIFJPPTAgKi8KLSAgI2RlZmluZSBDRkdfQ1MyX0NGRwkweDAwMDQ3ODAwCisgICNkZWZpbmUgQ09ORklHX1NZU19DUzJfQ0ZHCTB4MDAwNDc4MDAKICNlbHNlCiAgICNkZWZpbmUgQ09ORklHX1JUQ19NUEM1MjAwCTEJLyogdXNlIGludGVybmFsIE1QQzUyMDAgUlRDICovCiAjZW5kaWYKQEAgLTM2NywxOSArMzY3LDE5IEBACiAvKgogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKIAotI2RlZmluZSBDRkdfQk9PVENTX1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19CT09UQ1NfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNDc4MDEKLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQlDRkdfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0NzgwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TVEFSVAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQogCi0jZGVmaW5lIENGR19DU19CVVJTVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHg3ZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHg3ZjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIFN1cHBvcnRzIElERSBoYXJkZGlzawpAQCAtMzk0LDIzICszOTQsMjMgQEAKICNkZWZpbmUgQ09ORklHX0lERV9SRVNFVAkxCiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoMHgwMDYwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoMHgwMDYwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKENGR19BVEFfREFUQV9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCSgweDAwNWMpCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJKDB4MDA1YykKIAogLyogSW50ZXJ2YWwgYmV0d2VlbiByZWdpc3RlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERSAgICAgICAgICA0CisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERSAgICAgICAgICA0CiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVE9QODYwLmggYi9pbmNsdWRlL2NvbmZpZ3MvVE9QODYwLmgKaW5kZXggYjI3MDgzMi4uOGMyYmVmYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RPUDg2MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9UT1A4NjAuaApAQCAtNjAsNyArNjAsNyBAQAogICogQ0xPQ0sgc2V0dGluZ3MKICAqLwogI2RlZmluZQlDT05GSUdfU1lTQ0xLCTQ5MTUyMDAwCi0jZGVmaW5lCUNGR19YVEFMCQkzMjc2OAorI2RlZmluZQlDT05GSUdfU1lTX1hUQUwJCTMyNzY4CiAjZGVmaW5lCUNPTkZJR19FQkRGCQkxCiAjZGVmaW5lCUNPTkZJR19DT00JCTMKICNkZWZpbmUJQ09ORklHX1JUQ19NUEM4eHgKQEAgLTY4LDMyICs2OCwzMiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUGh5c2ljYWwgbWVtb3J5IG1hcCBhcyBkZWZpbmVkIGJ5IEVNSwogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCS8qIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIgKi8KLSNkZWZpbmUJQ0ZHX0ZMQVNIX0JBU0UJMHg4MDAwMDAwMAkvKiBGTEFTSCBpbiBmaW5hbCBtYXBwaW5nICovCi0jZGVmaW5lCUNGR19EUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBEUkFNIGluIGZpbmFsIG1hcHBpbmcgKi8KLSNkZWZpbmUJQ0ZHX0ZMQVNIX01BWAkweDAwNDAwMDAwCS8qIG1heCBGTEFTSCB0byBleHBlY3QgKi8KLSNkZWZpbmUJQ0ZHX0RSQU1fTUFYCTB4MDEwMDAwMDAJLyogbWF4IERSQU0gdG8gZXhwZWN0ICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAkvKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyICovCisjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkweDgwMDAwMDAwCS8qIEZMQVNIIGluIGZpbmFsIG1hcHBpbmcgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19EUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBEUkFNIGluIGZpbmFsIG1hcHBpbmcgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9NQVgJMHgwMDQwMDAwMAkvKiBtYXggRkxBU0ggdG8gZXhwZWN0ICovCisjZGVmaW5lCUNPTkZJR19TWVNfRFJBTV9NQVgJMHgwMTAwMDAwMAkvKiBtYXggRFJBTSB0byBleHBlY3QgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogZGVyaXZlZCB2YWx1ZXMKICAqLwotI2RlZmluZQlDRkdfTUYJCQkoQ09ORklHX1NZU0NMSy9DRkdfWFRBTCkKLSNkZWZpbmUJQ0ZHX0NQVUNMT0NLCUNPTkZJR19TWVNDTEsKLSNkZWZpbmUJQ0ZHX0JSR0NMT0NLCUNPTkZJR19TWVNDTEsKLSNkZWZpbmUJQ0ZHX0JVU0NMT0NLCShDT05GSUdfU1lTQ0xLID4+IENPTkZJR19FQkRGKQotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NRgkJCShDT05GSUdfU1lTQ0xLL0NPTkZJR19TWVNfWFRBTCkKKyNkZWZpbmUJQ09ORklHX1NZU19DUFVDTE9DSwlDT05GSUdfU1lTQ0xLCisjZGVmaW5lCUNPTkZJR19TWVNfQlJHQ0xPQ0sJQ09ORklHX1NZU0NMSworI2RlZmluZQlDT05GSUdfU1lTX0JVU0NMT0NLCShDT05GSUdfU1lTQ0xLID4+IENPTkZJR19FQkRGKQorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAjZGVmaW5lCUNPTkZJR184eHhfR0NMS19GUkVRCUNPTkZJR19TWVNDTEsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUJQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX0NGSQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDb21tYW5kIGludGVycHJldGVyCkBAIC0xMDUsNyArMTA1LDcgQEAKIC8qCiAgKiBBbGxvdyBwYXJ0aWFsIGNvbW1hbmRzIHRvIGJlIG1hdGNoZWQgdG8gdW5pcXVlbmVzcy4KICAqLwotI2RlZmluZSBDRkdfTUFUQ0hfUEFSVElBTF9DTUQKKyNkZWZpbmUgQ09ORklHX1NZU19NQVRDSF9QQVJUSUFMX0NNRAogCiAKIC8qCkBAIC0xMjYsMzQgKzEyNiwzNCBAQAogCiAKICNkZWZpbmUJQ09ORklHX0FVVE9TQ1JJUFQJCTEKLSNkZWZpbmUJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEKKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCiAjdW5kZWYJQ09ORklHX0xPQURTX0VDSE8JCQkvKiBOTyBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KIAogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI3VuZGVmCUNGR19IVVNIX1BBUlNFUgkJCS8qIEh1c2ggcGFyc2UgZm9yIFUtQm9vdAkqLworI3VuZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkvKiBIdXNoIHBhcnNlIGZvciBVLUJvb3QJKi8KIAotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotICNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorICNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSAjZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotICNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisgI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1lbW9yeSBUZXN0IENvbW1hbmQKICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudCBoYW5kbGVyCkBAIC0xNjMsMTYgKzE2MywxNiBAQAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0VFUFJPTQkxCS8qIHR1cm4gb24gRUVQUk9NIGVudiBmZWF0dXJlICovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDEwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDA3MDAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUiAweDU3Ci0jZGVmaW5lIENGR19GQUNUX09GRlNFVAkJMHgxODAwCi0jZGVmaW5lIENGR19GQUNUX1NJWkUJCTB4MDgwMAotI2RlZmluZSBDRkdfSTJDX0ZBQ1RfQUREUgkweDU3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgotI2RlZmluZSBDRkdfRUVQUk9NX1NJWkUgMHgyMDAwCi0jZGVmaW5lCUNGR19JMkNfU1BFRUQJMTAwMDAwCi0jZGVmaW5lCUNGR19JMkNfU0xBVkUJMHhGRQotI2RlZmluZQlDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTIKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgMHg1NworI2RlZmluZSBDT05GSUdfU1lTX0ZBQ1RfT0ZGU0VUCQkweDE4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19GQUNUX1NJWkUJCTB4MDgwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19GQUNUX0FERFIJMHg1NworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9TSVpFIDB4MjAwMAorI2RlZmluZQlDT05GSUdfU1lTX0kyQ19TUEVFRAkxMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfU0xBVkUJMHhGRQorI2RlZmluZQlDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEyCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgogCkBAIC0xOTUsNyArMTk1LDcgQEAKICNkZWZpbmUJSTJDX1RSSVNUQVRFCXsgX19JMkNfRElSICY9IH5TREE7IH0KICNlbmRpZgogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogZGVmaW5lcyB3ZSBuZWVkIHRvIGdldCBGRUMgcnVubmluZwpAQCAtMjAzLDcgKzIwMyw3IEBACiAjZGVmaW5lCUNPTkZJR19ORVRfTVVMVEkJMQkvKiB0aGUgb25seSB3YXkgdG8gZ2V0IHRoZSBGRUMgaW4gKi8KICNkZWZpbmUgQ09ORklHX0ZFQ19FTkVUCQkxCS8qIEV0aGVybmV0IG9ubHkgdmlhIEZFQwkqLwogI2RlZmluZQlGRUNfRU5FVAkJMQkvKiBldGguYyBuZWVkcyBpdCB0aGF0IHdheS4uLiAqLwotI2RlZmluZSBDRkdfRElTQ09WRVJfUEhZCTEKKyNkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkJMQogI2RlZmluZSBDT05GSUdfTUlJCQkxCiAjZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCTMxCkBAIC0yMTEsMzUgKzIxMSwzNSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogYWRyZXNzZXMKICAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ODAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MmYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9WUERfU0laRQkyNTYgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgdnBkIGJ1ZmZlciAqLwotI2RlZmluZSBDRkdfSU5JVF9WUERfT0ZGU0VUCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gQ0ZHX0lOSVRfVlBEX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAkoQ0ZHX0lOSVRfVlBEX09GRlNFVC04KQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MmYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1ZQRF9TSVpFCTI1NiAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciB2cGQgYnVmZmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9WUERfT0ZGU0VUCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIENPTkZJR19TWVNfSU5JVF9WUERfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1ZQRF9PRkZTRVQtOCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKiBJbnRlcnJ1cHQgbGV2ZWwgYXNzaWdubWVudHMuCkBAIC0yNTksNyArMjU5LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUiAwCQkJCQkvKiB1c2VkIGluIHN0YXJ0LlMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVIgMAkJCQkJLyogdXNlZCBpbiBzdGFydC5TICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI3OSw3ICsyNzksNyBAQAogICoJMQlGSU9QRAkwCQkJRm9yY2UgSS9PIHB1bGwgZG93bgogICoJNQkwCQkwMDAwMAogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9URVhQUyB8ICgoQ0ZHX01GLTEpPDwyMCkpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfVEVYUFMgfCAoKENPTkZJR19TWVNfTUYtMSk8PDIwKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU1lQQ1IgLSBTeXN0ZW0gUHJvdGVjdGlvbiBDb250cm9sCQkJCTExLTkKQEAgLTI5NiwxMCArMjk2LDEwIEBACiAgKgkxCVNXUAkJMC8xCQkJU29mdHdhcmUgd2F0Y2hkb2cgcHJlc2NhbGUgKDE9LzIwNDgpCiAgKi8KICNpZiBkZWZpbmVkIChDT05GSUdfV0FUQ0hET0cpCi0gI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisgI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0gI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YpCisgI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMyOCwyMSArMzI4LDIxIEBACiAgKgkxCUIzREQJMAkJCUJhbmsgMyBkb3VibGUgZHJpdmUKICAqCTQJMAkJMDAwMAogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9NTFJDMTEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfTUxSQzExKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYgfCBQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURiB8IFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTM2Nyw5ICszNjcsOSBAQAogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwkwCiAjaWZkZWYgQ09ORklHX0VCREYKLSAjZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTExIHwgU0NDUl9UQlMgfCBTQ0NSX0VCREYwMSkKKyAjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00xMSB8IFNDQ1JfVEJTIHwgU0NDUl9FQkRGMDEpCiAjZWxzZQotICNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMTEgfCBTQ0NSX1RCUykKKyAjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00xMSB8IFNDQ1JfVEJTKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM3OCw5ICszNzgsOSBAQAogICogUHJlbGltaW5hcnkgVmFsdWVzCiAgKi8KIC8qIEZMQVNIIHRpbWluZzogQ1NOVD0xIEFDUz0xMCBCSUg9MSBTQ1k9NCBTRVRBPTAgVExSWD0xIEVIVFI9MQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzRfQ0xLIHwgT1JfVFJMWCB8IE9SX0VIVFIpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCSgtQ0ZHX0ZMQVNIX01BWCB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCShDRkdfRkxBU0hfQkFTRSB8IEJSX1BTXzE2IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzRfQ0xLIHwgT1JfVFJMWCB8IE9SX0VIVFIpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoLUNPTkZJR19TWVNfRkxBU0hfTUFYIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQlJfUFNfMTYgfCBCUl9WICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogbWlzYwpAQCAtNDI4LDE1ICs0MjgsMTUgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmF1bHRzIGZvciBBdXRvc2NyaXB0CiAgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZQlDRkdfVEZUUF9MT0FEQUREUgkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lCUNPTkZJR19TWVNfVEZUUF9MT0FEQUREUgkweDAwMTAwMDAwCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVFFNNTIwMC5oIGIvaW5jbHVkZS9jb25maWdzL1RRTTUyMDAuaAppbmRleCAyY2MyMTVhLi5kYjdmNTFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVFFNNTIwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9UUU01MjAwLmgKQEAgLTQyLDcgKzQyLDcgQEAKICNkZWZpbmUgQ09ORklHX1NUSzUyWFgJCTEJLyogLi4uIG9uIGEgU1RLNTJYWCBib2FyZAkJKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkJKi8KIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNICSovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CQkJKi8KQEAgLTU0LDExICs1NCwxMSBAQAogICovCiAjZGVmaW5lIENPTkZJR19QU0NfQ09OU09MRQkxCS8qIGNvbnNvbGUgaXMgb24gUFNDMQkJCSovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCS8qIC4uLiBhdCAxMTUyMDAgYnBzCQkJKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogI2RlZmluZSBDT05GSUdfQk9PVENPVU5UX0xJTUlUCTEKIAogI2lmZGVmIENPTkZJR19GTzMwMAotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJCTEJLyogZW5hYmxlIG51bGwgZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJCTEJLyogZW5hYmxlIG51bGwgZGV2aWNlICovCiAjZGVmaW5lIENPTkZJR19TSUxFTlRfQ09OU09MRQkJMQkvKiBlbmFibGUgc2lsZW50IHN0YXJ0dXAgKi8KICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgkxCS8qIHVzZWQgdG8gZGV0ZWN0IFMxIHN3aXRjaCBwb3NpdGlvbiAqLwogI2RlZmluZSBDT05GSUdfVVNCX0JJTl9GSVhVUAkJMQkvKiBmb3IgYSBidWdneSBVU0IgZGV2aWNlICovCkBAIC03NSw3ICs3NSw3IEBACiAjZGVmaW5lIENPTkZJR19QUzJLQkQJCQkvKiBBVC1QUy8yIEtleWJvYXJkCQkqLwogI2RlZmluZSBDT05GSUdfUFMyTVVMVAkJCS8qIC4uIG9uIFBTLzIgTXVsdGlwbGV4ZXIJKi8KICNkZWZpbmUgQ09ORklHX1BTMlNFUklBTAk2CS8qIC4uIG9uIFBTQzYJCQkqLwotI2RlZmluZSBDT05GSUdfUFMyTVVMVF9ERUxBWQkoQ0ZHX0haLzIpCS8qIEluaXRpYWwgZGVsYXkJKi8KKyNkZWZpbmUgQ09ORklHX1BTMk1VTFRfREVMQVkJKENPTkZJR19TWVNfSFovMikJLyogSW5pdGlhbCBkZWxheQkqLwogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9SCiAjZW5kaWYgLyogQ09ORklHX1NUSzUyWFggKi8KIApAQCAtOTksNyArOTksNyBAQAogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAJCTEKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOCAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOCAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogI2RlZmluZSBDT05GSUdfTlM4MzgyWAkJMQogI2VuZGlmCS8qIENPTkZJR19TVEs1MlhYICovCiAKQEAgLTEyMiw3ICsxMjIsNyBAQAogI2RlZmluZSBDT05GSUdfVkdBX0FTX1NJTkdMRV9ERVZJQ0UKICNkZWZpbmUgQ09ORklHX1ZJREVPX1NXX0NVUlNPUgogI2RlZmluZSBDT05GSUdfU1BMQVNIX1NDUkVFTgotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgogI2VuZGlmIC8qICNpZm5kZWYgQ09ORklHX1RRTTUyMDBTICovCiAKIApAQCAtMTM0LDI0ICsxMzQsMjQgQEAKIC8qIFVTQiAqLwogI2lmIGRlZmluZWQoQ09ORklHX1NUSzUyWFgpIHx8IGRlZmluZWQoQ09ORklHX0ZPMzAwKQogI2RlZmluZSBDT05GSUdfVVNCX09IQ0lfTkVXCi0jZGVmaW5lIENGR19PSENJX0JFX0NPTlRST0xMRVIKKyNkZWZpbmUgQ09ORklHX1NZU19PSENJX0JFX0NPTlRST0xMRVIKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCiAjZGVmaW5lIENPTkZJR19DTURfRkFUCiAjZGVmaW5lIENPTkZJR19DTURfVVNCCiAKLSN1bmRlZiBDRkdfVVNCX09IQ0lfQk9BUkRfSU5JVAotI2RlZmluZSBDRkdfVVNCX09IQ0lfQ1BVX0lOSVQKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1JFR1NfQkFTRQlNUEM1WFhYX1VTQgotI2RlZmluZSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FCSJtcGM1MjAwIgotI2RlZmluZSBDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMTUKKyN1bmRlZiBDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1JFR1NfQkFTRQlNUEM1WFhYX1VTQgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1NMT1RfTkFNRQkibXBjNTIwMCIKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQogCiAjZW5kaWYKIAogI2lmbmRlZiBDT05GSUdfQ0FNNTIwMAogLyogUE9TVCBzdXBwb3J0ICovCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfTUVNT1JZICAgfCBcCi0JCQkJIENGR19QT1NUX0NQVQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfSTJDKQorI2RlZmluZSBDT05GSUdfUE9TVAkJKENPTkZJR19TWVNfUE9TVF9NRU1PUlkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NQVQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0kyQykKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1BPU1QKQEAgLTIxNSw3ICsyMTUsNyBAQAogI2RlZmluZQlDT05GSUdfVElNRVNUQU1QCQkvKiBkaXNwbGF5IGltYWdlIHRpbWVzdGFtcHMgKi8KIAogI2lmIChURVhUX0JBU0UgIT0gMHhGRkYwMDAwMCkKLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEJLyogQm9vdCBsb3cgKi8KKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UCQkxCS8qIEJvb3QgbG93ICovCiAjZW5kaWYKIAogLyoKQEAgLTIyOSw3ICsyMjksNyBAQAogCiAjdW5kZWYJQ09ORklHX0JPT1RBUkdTCiAKLSNpZiBkZWZpbmVkKENPTkZJR19UUU01MjAwX0IpICYmICFkZWZpbmVkKENGR19MT1dCT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1RRTTUyMDBfQikgJiYgIWRlZmluZWQoQ09ORklHX1NZU19MT1dCT09UKQogIyBkZWZpbmUgRU5WX1VQRFQJCQkJCQkJXAogCSJ1cGRhdGU9cHJvdGVjdCBvZmYgRkZGMDAwMDAgKyR7ZmlsZXNpemV9OyIJCQlcCiAJCSJlcmFzZSBGRkYwMDAwMCArJHtmaWxlc2l6ZX07IgkJCQlcCkBAIC0zMDcsMTcgKzMwNywxNyBAQAogLyoKICAqIElQQiBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbi4KICAqLwotI2RlZmluZSBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjZGVmaW5lIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCiAKLSNpZiBkZWZpbmVkKENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSykgJiYgIWRlZmluZWQoQ09ORklHX0NBTTUyMDApCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLKSAmJiAhZGVmaW5lZChDT05GSUdfQ0FNNTIwMCkKIC8qCiAgKiBQQ0kgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24KICAqCiAgKiBBY3R1YWxseSBhIFBDSSBDbG9jayBvZiA2NiBNSHogaXMgb25seSBzZXQgKGluIGNwdV9pbml0LmMpIGlmCi0gKiBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsgaXMgZGVmaW5lZC4gVGhpcyBpcyBiZWNhdXNlIGEgUENJIENsb2NrIG9mCisgKiBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLIGlzIGRlZmluZWQuIFRoaXMgaXMgYmVjYXVzZSBhIFBDSSBDbG9jayBvZgogICogNjYgTUh6IHlldCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgd2l0aCBhIElQQiBCdXMgQ2xvY2sgb2YgNjYgTUh6LgogICovCi0jZGVmaW5lIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KICNlbmRpZgogCiAvKgpAQCAtMzI1LDkgKzMyNSw5IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KICNpZmRlZiBDT05GSUdfVFFNNTIwMF9SRVYxMDAKLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTEJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgZm9yIHJldi4gMTAwIGJvYXJkICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMQkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBmb3IgcmV2LiAxMDAgYm9hcmQgKi8KICNlbHNlCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMyIGZvciBhbGwgb3RoZXIgcmV2cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzIgZm9yIGFsbCBvdGhlciByZXZzICovCiAjZW5kaWYKIAogLyoKQEAgLTMzNiwxMSArMzM2LDExIEBACiAgKiBQbGVhc2Ugbm90aWNlLCB0aGF0IHRoZSByZXN1bHRpbmcgY2xvY2sgZnJlcXVlbmN5IGNvdWxkIGRpZmZlciBmcm9tIHRoZQogICogY29uZmlndXJlZCB2YWx1ZS4gVGhpcyBpcyBiZWNhdXNlIHRoZSBJMkMgY2xvY2sgaXMgZGVyaXZlZCBmcm9tIHN5c3RlbQogICogY2xvY2sgb3ZlciBhIGZyZXF1ZW5jeSBkaXZpZGVyIHdpdGggb25seSBhIGZldyBkaXZpZGVyIHZhbHVlcy4gVS1ib290Ci0gKiBjYWxjdWxhdGVzIHRoZSBiZXN0IGFwcHJveGltYXRpb24gZm9yIENGR19JMkNfU1BFRUQuIEhvd2V2ZXIgdGhlIGNhbGN1bGF0ZWQKKyAqIGNhbGN1bGF0ZXMgdGhlIGJlc3QgYXBwcm94aW1hdGlvbiBmb3IgQ09ORklHX1NZU19JMkNfU1BFRUQuIEhvd2V2ZXIgdGhlIGNhbGN1bGF0ZWQKICAqIGFwcHJveGltYXRpb24gYWxsd2F5cyBsaWVzIGJlbG93IHRoZSBjb25maWd1cmVkIHZhbHVlLCBuZXZlciBhYm92ZS4KICAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24gZm9yIG9uYm9hcmQgRUVQUk9NIE0yNEMzMiAoTTI0QzY0IHNob3VsZCB3b3JrCkBAIC0zNDgsNjIgKzM0OCw2MiBAQAogICogRUVQUk9NICgyNEM2NCkgaXMgb24gdGhlIHNhbWUgSTJDIGFkZHJlc3MgKGJ1dCBvbiBvdGhlciBJMkMgYnVzKSwgc28gdGhlCiAgKiBzYW1lIGNvbmZpZ3VyYXRpb24gY291bGQgYmUgdXNlZC4KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4ICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogPTMyIEJ5dGVzIHBlciB3cml0ZSAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qID0zMiBCeXRlcyBwZXIgd3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAogCiAvKgogICogSFctTW9uaXRvciBjb25maWd1cmF0aW9uIG9uIE1pbmktRkFQCiAgKi8KICNpZiBkZWZpbmVkIChDT05GSUdfTUlOSUZBUCkKLSNkZWZpbmUgQ0ZHX0kyQ19IV01PTl9BRERSCQkweDJDCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0hXTU9OX0FERFIJCTB4MkMKICNlbmRpZgogCiAvKiBMaXN0IG9mIEkyQyBhZGRyZXNzZXMgdG8gYmUgdmVyaWZpZWQgYnkgUE9TVCAqLwogI2lmIGRlZmluZWQgKENPTkZJR19NSU5JRkFQKQogI3VuZGVmIEkyQ19BRERSX0xJU1QKLSNkZWZpbmUgSTJDX0FERFJfTElTVAl7CUNGR19JMkNfRUVQUk9NX0FERFIsCVwKLQkJCQlDRkdfSTJDX0hXTU9OX0FERFIsCVwKLQkJCQlDRkdfSTJDX1NMQVZFIH0KKyNkZWZpbmUgSTJDX0FERFJfTElTVAl7CUNPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLAlcCisJCQkJQ09ORklHX1NZU19JMkNfSFdNT05fQUREUiwJXAorCQkJCUNPTkZJR19TWVNfSTJDX1NMQVZFIH0KICNlbmRpZgogCiAvKgogICogRmxhc2ggY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGQzAwMDAwMAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ0FNNTIwMCkgJiYgZGVmaW5lZChDT05GSUdfQ0FNNTIwMF9OSU9TRkxBU0gpCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcwogCQkJCQkgICAoPSBjaGlwIHNlbGVjdHMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgaW50IC8qIG1haW4gZmxhc2ggZGV2aWNlIHdpdGggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgaW50IC8qIG1haW4gZmxhc2ggZGV2aWNlIHdpdGggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTUKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQQotI2RlZmluZSBDRkdfRkxBU0hfMk5EXzE2QklUX0RFVgkxCS8qIE5JT1MgZmxhc2ggaXMgYSAxNmJpdCBkZXZpY2UgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIXzJORF8xNkJJVF9ERVYJMQkvKiBOSU9TIGZsYXNoIGlzIGEgMTZiaXQgZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CiAjZWxzZQogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19CT09UQ1NfU1RBUlQgfQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcwogCQkJCQkgICAoPSBjaGlwIHNlbGVjdHMpICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwNDAwMDAwMCAvKiA2NCBNQnl0ZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAgLyogNjQgTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKIAogI2lmIGRlZmluZWQgKENPTkZJR19DQU01MjAwKQotIyBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwMDQwMDAwKQorIyBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDA0MDAwMCkKICNlbGlmIGRlZmluZWQoQ09ORklHX1RRTTUyMDBfQikKLSMgZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDA4MDAwMCkKKyMgZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDAwODAwMDApCiAjZWxzZQotIyBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwMDYwMDAwKQorIyBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDA2MDAwMCkKICNlbmRpZgogCiAvKiBEeW5hbWljIE1URCBwYXJ0aXRpb24gc3VwcG9ydCAqLwpAQCAtNDEyLDcgKzQxMiw3IEBACiAKICNpZmRlZiBDT05GSUdfU1RLNTJYWAogIyBpZiBkZWZpbmVkKENPTkZJR19UUU01MjAwX0IpCi0jICBpZiBkZWZpbmVkKENGR19MT1dCT09UKQorIyAgaWYgZGVmaW5lZChDT05GSUdfU1lTX0xPV0JPT1QpCiAjICAgZGVmaW5lIE1URFBBUlRTX0RFRkFVTFQJIm10ZHBhcnRzPVRRTTUyMDAtMDoxbShmaXJtd2FyZSksIglcCiAJCQkJCQkiMjU2ayhkdGIpLCIJCVwKIAkJCQkJCSIyMzA0ayhrZXJuZWwpLCIJXApAQCAtNDI3LDcgKzQyNyw3IEBACiAJCQkJCQkiOG0obWlzYyksIgkJXAogCQkJCQkJIjE1bShiaWctZnMpLCIJCVwKIAkJCQkJCSIxbShmaXJtd2FyZSkiCi0jICBlbmRpZiAvKiBDRkdfTE9XQk9PVCAqLworIyAgZW5kaWYgLyogQ09ORklHX1NZU19MT1dCT09UICovCiAjIGVsc2UJLyogIUNPTkZJR19UUU01MjAwX0IgKi8KICMgICBkZWZpbmUgTVREUEFSVFNfREVGQVVMVAkibXRkcGFydHM9VFFNNTIwMC0wOjY0MGsoZmlybXdhcmUpLCIJXAogCQkJCQkJIjEyOGsoZHRiKSwiCQlcCkBAIC00NjksMzkgKzQ2OSwzOSBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKIC8qIFVzZSBPTi1DaGlwIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCiAjaWZkZWYgQ09ORklHX1BPU1QKIC8qIHByZXNlcnZlIHNwYWNlIGZvciB0aGUgcG9zdF93b3JkIGF0IGVuZCBvZiBvbi1jaGlwIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fUE9TVF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKICNlbHNlCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKICNlbmRpZgogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCiAjaWYgZGVmaW5lZCAoQ09ORklHX0NBTTUyMDApCi0jIGRlZmluZSBDRkdfTU9OSVRPUl9MRU4JKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbGlmIGRlZmluZWQoQ09ORklHX1RRTTUyMDBfQikKLSMgZGVmaW5lIENGR19NT05JVE9SX0xFTgkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLworIyBkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSMgZGVmaW5lIENGR19NT05JVE9SX0xFTgkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvcgkqLworIyBkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMDI0IDw8IDEwKQkvKiBSZXNlcnZlIDEwMjQga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEwMjQgPDwgMTApCS8qIFJlc2VydmUgMTAyNCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC01NTUsMjMgKzU1NSwyMyBAQAogICoJIDEwMCAtPiBVQVJUIChvbiBhbGwgYm9hcmRzKS4KICAqLwogI2lmIGRlZmluZWQgKENPTkZJR19NSU5JRkFQKQotIyBkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDkxMDAwMDA0CisjIGRlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDkxMDAwMDA0CiAjZWxpZiBkZWZpbmVkIChDT05GSUdfU1RLNTJYWCkKICMgaWYgZGVmaW5lZCAoQ09ORklHX1NUSzUyWFhfUkVWMTAwKQotIyAgZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHg4MTUwMDAxNAorIyAgZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4ODE1MDAwMTQKICMgZWxzZSAvKiBTVEs1Mnh4IFJFVjIwMCBhbmQgYWJvdmUgKi8KICMgIGlmIGRlZmluZWQgKENPTkZJR19UUU01MjAwX1JFVjEwMCkKICMgICBlcnJvciBUUU01MjAwIFJFVjEwMCBub3Qgc3VwcG9ydGVkIG9uIFNUSzUyWFggUkVWMjAwIG9yIGFib3ZlCiAjICBlbHNlLyogVFFNNTIwMCBSRVYyMDAgYW5kIGFib3ZlICovCi0jICAgZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHg5MTUwMDQwNAorIyAgIGRlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDkxNTAwNDA0CiAjICBlbmRpZgogIyBlbmRpZgogI2VsaWYgZGVmaW5lZCAoQ09ORklHX0ZPMzAwKQotIyBkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDkxNTAyYzI0CisjIGRlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDkxNTAyYzI0CiAjZWxpZiBkZWZpbmVkIChDT05GSUdfQ0FNNTIwMCkKLSMgZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHg4MDUwQTQ0NAorIyBkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHg4MDUwQTQ0NAogI2Vsc2UgIC8qIFRNUTUyMDAgSW5iZXRyaWVibmFobWUtQm9hcmQgKi8KLSMgZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHg4MTAwMDAwNAorIyBkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHg4MTAwMDAwNAogI2VuZGlmCiAKIC8qCkBAIC01NzksOCArNTc5LDggQEAKICAqLwogI2lmIGRlZmluZWQgKENPTkZJR19TVEs1MlhYKSAmJiAhZGVmaW5lZCAoQ09ORklHX1NUSzUyWFhfUkVWMTAwKQogIyBkZWZpbmUgQ09ORklHX1JUQ19NNDFUMTEgMQotIyBkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUiAweDY4Ci0jIGRlZmluZSBDRkdfTTQxVDExX0JBU0VfWUVBUgkxOTAwICAgIC8qIGJlY2F1c2UgTGludXggdXNlcyB0aGUgc2FtZSBiYXNlCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUiAweDY4CisjIGRlZmluZSBDT05GSUdfU1lTX000MVQxMV9CQVNFX1lFQVIJMTkwMCAgICAvKiBiZWNhdXNlIExpbnV4IHVzZXMgdGhlIHNhbWUgYmFzZQogCQkJCQkgICB5ZWFyICovCiAjZWxzZQogIyBkZWZpbmUgQ09ORklHX1JUQ19NUEM1MjAwCTEJLyogdXNlIGludGVybmFsIE1QQzUyMDAgUlRDICovCkBAIC01ODksMzYgKzU4OSwzNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KLSNkZWZpbmUJQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAogLyogRW5hYmxlIGFuIGFsdGVybmF0ZSwgbW9yZSBleHRlbnNpdmUgbWVtb3J5IHRlc3QgKi8KLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKgogICogRW5hYmxlIGxvb3B3IGNvbW1hbmQuCkBAIC02MjksMjIgKzYyOSwyMiBAQAogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCTAKICNlbmRpZgogCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2lmZGVmIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDhERjMwIC8qIGZvciBwY2lfY2xrICA9IDY2IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjaWZkZWYgQ09ORklHX1NZU19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA4REYzMCAvKiBmb3IgcGNpX2NsayAgPSA2NiBNSHogKi8KICNlbHNlCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDRERjMwIC8qIGZvciBwY2lfY2xrID0gMzMgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0REYzMCAvKiBmb3IgcGNpX2NsayA9IDMzIE1IeiAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAogI2RlZmluZSBDT05GSUdfTEFTVF9TVEFHRV9JTklUCiAKQEAgLTY1MiwzNCArNjUyLDM0IEBACiAgKiBTUkFNIC0gRG8gbm90IG1hcCBiZWxvdyAyIEdCIGluIGFkZHJlc3Mgc3BhY2UsIGJlY2F1c2UgdGhpcyBhcmVhIGlzIHVzZWQKICAqIGZvciBTRFJBTSBhdXRvc2l6aW5nLgogICovCi0jZGVmaW5lIENGR19DUzJfU1RBUlQJCTB4RTUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMl9TSVpFCQkweDEwMDAwMAkvKiAxIE1CeXRlICovCi0jZGVmaW5lIENGR19DUzJfQ0ZHCQkweDAwMDREOTMwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NUQVJUCQkweEU1MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NJWkUJCTB4MTAwMDAwCS8qIDEgTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfQ0ZHCQkweDAwMDREOTMwCiAKIC8qCiAgKiBHcmFmaWMgY29udHJvbGxlciAtIERvIG5vdCBtYXAgYmVsb3cgMiBHQiBpbiBhZGRyZXNzIHNwYWNlLCBiZWNhdXNlIHRoaXMKICAqIGFyZWEgaXMgdXNlZCBmb3IgU0RSQU0gYXV0b3NpemluZy4KICAqLwogI2RlZmluZSBTTTUwMV9GQl9CQVNFCQkweEUwMDAwMDAwCi0jZGVmaW5lIENGR19DUzFfU1RBUlQJCShTTTUwMV9GQl9CQVNFKQotI2RlZmluZSBDRkdfQ1MxX1NJWkUJCTB4NDAwMDAwMAkvKiA2NCBNQnl0ZSAqLwotI2RlZmluZSBDRkdfQ1MxX0NGRwkJMHg4RjQ4RkY3MAotI2RlZmluZSBTTTUwMV9NTUlPX0JBU0UJCUNGR19DUzFfU1RBUlQgKyAweDAzRTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUCQkoU001MDFfRkJfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRQkJMHg0MDAwMDAwCS8qIDY0IE1CeXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NGRwkJMHg4RjQ4RkY3MAorI2RlZmluZSBTTTUwMV9NTUlPX0JBU0UJCUNPTkZJR19TWVNfQ1MxX1NUQVJUICsgMHgwM0UwMDAwMAogCi0jZGVmaW5lIENGR19DU19CVVJTVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMTEJLyogMSBkZWFkIGN5Y2xlIGZvciBmbGFzaCBhbmQgU001MDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzExCS8qIDEgZGVhZCBjeWNsZSBmb3IgZmxhc2ggYW5kIFNNNTAxICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DQU01MjAwKQotI2RlZmluZSBDRkdfQ1M0X1NUQVJUCQkweEIwMDAwMDAwCi0jZGVmaW5lIENGR19DUzRfU0laRQkJMHgwMDAxMDAwMAotI2RlZmluZSBDRkdfQ1M0X0NGRwkJMHgwMTAxOUMxMAorI2RlZmluZSBDT05GSUdfU1lTX0NTNF9TVEFSVAkJMHhCMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTNF9TSVpFCQkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1M0X0NGRwkJMHgwMTAxOUMxMAogCi0jZGVmaW5lIENGR19DUzVfU1RBUlQJCTB4RDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTNV9TSVpFCQkweDAxMjA4MDAwCi0jZGVmaW5lIENGR19DUzVfQ0ZHCQkweDE0MTRCRjEwCisjZGVmaW5lIENPTkZJR19TWVNfQ1M1X1NUQVJUCQkweEQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1M1X1NJWkUJCTB4MDEyMDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzVfQ0ZHCQkweDE0MTRCRjEwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFVTQiBzdHVmZgpAQCAtNzAxLDI0ICs3MDEsMjQgQEAKICNkZWZpbmUgQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KICNkZWZpbmUgQ09ORklHX0lERV9QUkVJTklUCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTIJLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkyCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfQVRBX0RBVEFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCiAKIC8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzCQkJCQkJICAgICAqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJNAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJCTQKIAogLyogU3VwcG9ydCBBVEFQSSBkZXZpY2VzICovCiAjZGVmaW5lIENPTkZJR19BVEFQSSAgICAgICAgICAgIDEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9UUU04MjNMLmggYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODIzTC5oCmluZGV4IGRjNDU4MmYuLjIyMzI2OWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9UUU04MjNMLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RRTTgyM0wuaApAQCAtODYsNyArODYsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMzgsMzIgKzEzOCwzMiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNzMsNDcgKzE3Myw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UrZmxhc2hfaW5mb1swXS5zaXplIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4ODAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjIzLDcgKzIyMyw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQrQ09ORklHX0VOVl9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCQkvKiBNYWtlIHN1cmUgdG8gcmVtYXAgZmxhc2hlcyBjb3JyZWN0bHkgKi8KIApAQCAtMjQyLDE2ICsyNDIsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjYxLDEwICsyNjEsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI3Myw5ICsyNzMsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yODMsMjAgKzI4MywyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTMwNCw3ICszMDQsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0CiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzEzLDcgKzMxMyw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKIApAQCAtMzIyLDE0ICszMjIsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzQyLDI4ICszNDIsMjggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM3OCwyMiArMzc4LDIyIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAogCQkJCSBPUl9TQ1lfM19DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTQwNCwxOSArNDA0LDE5IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lCUNPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lCUNGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUJQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTQ0NywzNCArNDQ3LDM0IEBACiAgKiA4MCBNaHogPT4gODAuMDAwLjAwMCAvIERpdmlkZXIgPSAxNTYKICAqLwogCi0jZGVmaW5lIENGR19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCi0jZGVmaW5lIENGR19NQU1SX1BUQQk5OAorI2RlZmluZSBDT05GSUdfU1lTX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5OAogCiAvKgogICogRm9yIDE2IE1CaXQsIHJlZnJlc2ggcmF0ZXMgY291bGQgYmUgMzEuMyB1cwogICogKD0gNjQgbXMgLyAySyA9IDEyNSAvIHF1YWQgYnVyc3RzKS4KICAqIEZvciBhIHNpbXBsZXIgaW5pdGlhbGl6YXRpb24sIDE1LjYgdXMgaXMgdXNlZCBpbnN0ZWFkLgogICoKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCi0gKiAjZGVmaW5lIENGR19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODIzTS5oIGIvaW5jbHVkZS9jb25maWdzL1RRTTgyM00uaAppbmRleCA3ZWE3MzQyLi5hZWQ1ZDViIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODIzTS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9UUU04MjNNLmgKQEAgLTg0LDcgKzg0LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gZmxhc2hfc2VsZiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTMzLDMyICsxMzMsMzIgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTY4LDQ3ICsxNjgsNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KIAogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfT0ZGU0VUCQkweDQwMDAwCS8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yMTksNyArMjE5LDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECShDT05GSUdfRU5WX09GRlNFVCtDT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkoQ09ORklHX0VOVl9TSVpFKQogCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkJLyogTWFrZSBzdXJlIHRvIHJlbWFwIGZsYXNoZXMgY29ycmVjdGx5ICovCiAKQEAgLTIzOCwxNiArMjM4LDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1NywxMCArMjU3LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjksOSArMjY5LDkgQEAKICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjc5LDIwICsyNzksMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0zMDAsNyArMzAwLDcgQEAKICAqIFJlc2V0IFBMTCBsb2NrIHN0YXR1cyBzdGlja3kgYml0LCB0aW1lciBleHBpcmVkIHN0YXR1cyBiaXQgYW5kIHRpbWVyCiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdAogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTMwOSw3ICszMDksNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCiAKQEAgLTMxOCwxNCArMzE4LDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTMzOCwyOCArMzM4LDI4IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNzQsMjIgKzM3NCwyMiBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOgogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgT1JfU0NZXzNfQ0xLIHwgT1JfRUhUUiB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyoKICAqIEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCkBAIC00MDAsMTkgKzQwMCwxOSBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUJQ0ZHX09SM19QUkVMSU0JQ0ZHX09SMl9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZQlDT05GSUdfU1lTX09SM19QUkVMSU0JQ09ORklHX1NZU19PUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAjZWxzZQkvKiBDQU4gdXNlcyBDUzMjLCBzbyB3ZSBjYW4gaGF2ZSBvbmx5IG9uZSBTRFJBTSBiYW5rIGFueXdheSAqLwotI2RlZmluZQlDRkdfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCi0jZGVmaW5lIENGR19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLwotI2RlZmluZSBDRkdfT1IzX0NBTgkJKENGR19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCi0jZGVmaW5lIENGR19CUjNfQ0FOCQkoKENGR19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCisjZGVmaW5lCUNPTkZJR19TWVNfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfQ0FOCQkoQ09ORklHX1NZU19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX0NBTgkJKChDT05GSUdfU1lTX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKIAkJCQkJQlJfUFNfOCB8IEJSX01TX1VQTUIgfCBCUl9WICkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCkBAIC00NDMsMzQgKzQ0MywzNCBAQAogICogODAgTWh6ID0+IDgwLjAwMC4wMDAgLyBEaXZpZGVyID0gMTU2CiAgKi8KIAotI2RlZmluZSBDRkdfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQotI2RlZmluZSBDRkdfTUFNUl9QVEEJOTgKKyNkZWZpbmUgQ09ORklHX1NZU19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJOTgKIAogLyoKICAqIEZvciAxNiBNQml0LCByZWZyZXNoIHJhdGVzIGNvdWxkIGJlIDMxLjMgdXMKICAqICg9IDY0IG1zIC8gMksgPSAxMjUgLyBxdWFkIGJ1cnN0cykuCiAgKiBGb3IgYSBzaW1wbGVyIGluaXRpYWxpemF0aW9uLCAxNS42IHVzIGlzIHVzZWQgaW5zdGVhZC4KICAqCi0gKiAjZGVmaW5lIENGR19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcwotICogI2RlZmluZSBDRkdfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuaworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuawogICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1RRTTgyNjAuaCBiL2luY2x1ZGUvY29uZmlncy9UUU04MjYwLmgKaW5kZXggMmQ1NGQyMy4uNTRmNGIzMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RRTTgyNjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODI2MC5oCkBAIC05Myw4ICs5Myw4IEBACiAvKiBlbmFibGUgSTJDIGFuZCBzZWxlY3QgdGhlIGhhcmR3YXJlL3NvZnR3YXJlIGRyaXZlciAqLwogI3VuZGVmICBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19TT0ZUX0kyQwkJMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBTb2Z0d2FyZSAoYml0LWJhbmcpIEkyQyBkcml2ZXIgY29uZmlndXJhdGlvbgpAQCAtMTI2LDEwICsxMjYsMTAgQEAKICNkZWZpbmUgSTJDX0RFTEFZCXVkZWxheSg1KQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogI2RlZmluZSBDT05GSUdfSTJDX1gKIApAQCAtMTgzLDcgKzE4Myw3IEBACiAgKiAgLSBSWCBjbGsgaXMgQ0xLMTEKICAqICAtIFRYIGNsayBpcyBDTEsxMgogICovCi0jIGRlZmluZSBDRkdfQ01YU0NSX1ZBTFVFCShDTVhTQ1JfUlMxQ1NfQ0xLMTEgfCBDTVhTQ1JfVFMxQ1NfQ0xLMTIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWFNDUl9WQUxVRQkoQ01YU0NSX1JTMUNTX0NMSzExIHwgQ01YU0NSX1RTMUNTX0NMSzEyKQogCiAjZWxpZiBkZWZpbmVkKENPTkZJR19FVEhFUl9PTl9GQ0MpICYmIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMikKIApAQCAtMTkzLDEwICsxOTMsMTAgQEAKICAqIC0gUkFNIGZvciBCRC9CdWZmZXJzIGlzIG9uIHRoZSA2MHggQnVzIChzZWUgMjgtMTMpCiAgKiAtIEVuYWJsZSBGdWxsIER1cGxleCBpbiBGU01SCiAgKi8KLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTN8Q01YRkNSX1RGMkNTX0NMSzE0KQotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTN8Q01YRkNSX1RGMkNTX0NMSzE0KQorIyBkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjIGRlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKIAogI2VuZGlmIC8qIENPTkZJR19FVEhFUl9PTl9GQ0MsIENPTkZJR19FVEhFUl9JTkRFWCAqLwogCkBAIC0yMTMsNyArMjEzLDcgQEAKICNlbmRpZgkvKiBDT05GSUdfTVBDODI1NSAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0yNDUsNjkgKzI0NSw2OSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCi0jZGVmaW5lCUNGR19SRVNFVF9BRERSRVNTIDB4RkZGRkZGRkMJLyogImJhZCIgYWRkcmVzcwkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19SRVNFVF9BRERSRVNTIDB4RkZGRkZGRkMJLyogImJhZCIgYWRkcmVzcwkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWiAgICAgICAgKDggPDwgMjApICAgICAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1ogICAgICAgICg4IDw8IDIwKSAgICAgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIAogLyogV2hhdCBzaG91bGQgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgbWFpbiBGTEFTSCBiZSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1CeXRlcyk/IFRoaXMgbXVzdCBjb250YWluIFRFWFRfQkFTRSBmcm9tIGJvYXJkL3RxbTgyNjAvY29uZmlnLm1rCiAgKiBUaGUgbWFpbiBGTEFTSCBpcyB3aGljaGV2ZXIgaXMgY29ubmVjdGVkIHRvICpDUzAuCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9CQVNFIDB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9CQVNFIDB4NjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9TSVpFIDMyCi0jZGVmaW5lIENGR19GTEFTSDFfU0laRSAzMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFIDB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfQkFTRSAweDYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX1NJWkUgMzIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfU0laRSAzMgogCiAvKiBGbGFzaCBiYW5rIHNpemUgKGZvciBwcmVsaW1pbmFyeSBzZXR0aW5ncykKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRSBDRkdfRkxBU0gwX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFIENPTkZJR19TWVNfRkxBU0gwX1NJWkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwogCiAjaWYgMAogLyogU3RhcnQgcG9ydCB3aXRoIGVudmlyb25tZW50IGluIGZsYXNoOyBzd2l0Y2ggdG8gRUVQUk9NIGxhdGVyICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSsweDQwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UrMHg0MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAKICNlbHNlCkBAIC0zMjAsNjcgKzMyMCw2NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwotI2RlZmluZSBDRkdfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZCBSZXNldCBDb25maWd1cmF0aW9uIFdvcmRzCiAgKgotICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ0ZHXyoKKyAqIGlmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENPTkZJR19TWVNfKgogICogZGVmaW5lcyBmb3IgdGhlIHZhcmlvdXMgcmVnaXN0ZXJzIGFmZmVjdGVkIGJ5IHRoZSBIUkNXIGUuZy4gY2hhbmdpbmcKLSAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDRkdfU0lVTUNSLgorICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENPTkZJR19TWVNfU0lVTUNSLgogICovCiAjZGVmaW5lCV9fSFJDV19fQUxMX18JCShIUkNXX0NJUCB8IEhSQ1dfSVNCMTExIHwgSFJDV19CTVMpCiAKICNpZiBkZWZpbmVkKENPTkZJR19NUEM4MjU1KSB8fCBkZWZpbmVkKENPTkZJR19NUEM4MjY1KQotIyAgZGVmaW5lIENGR19IUkNXX01BU1RFUgkoX19IUkNXX19BTExfXyB8IEhSQ1dfTU9EQ0tfSDAxMTEpCisjICBkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkoX19IUkNXX19BTExfXyB8IEhSQ1dfTU9EQ0tfSDAxMTEpCiAjZWxzZQkvKiAhIE1QQzgyNTUgJiYgIU1QQzgyNjUgKi8KICMgaWYgZGVmaW5lZChDT05GSUdfMjY2TUh6KQotIyAgZGVmaW5lIENGR19IUkNXX01BU1RFUgkoX19IUkNXX19BTExfXyB8IEhSQ1dfTU9EQ0tfSDAxMTEpCisjICBkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkoX19IUkNXX19BTExfXyB8IEhSQ1dfTU9EQ0tfSDAxMTEpCiAjIGVsaWYgZGVmaW5lZChDT05GSUdfMzAwTUh6KQotIyAgZGVmaW5lIENGR19IUkNXX01BU1RFUgkoX19IUkNXX19BTExfXyB8IEhSQ1dfTU9EQ0tfSDAxMTApCisjICBkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkoX19IUkNXX19BTExfXyB8IEhSQ1dfTU9EQ0tfSDAxMTApCiAjIGVsc2UKLSMgIGRlZmluZSBDRkdfSFJDV19NQVNURVIJKF9fSFJDV19fQUxMX18pCisjICBkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkoX19IUkNXX19BTExfXykKICMgZW5kaWYKICNlbmRpZgkvKiBDT05GSUdfTVBDODI1NSAqLwogCiAvKiBubyBzbGF2ZXMgc28ganVzdCBmaWxsIHdpdGggemVyb3MgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOCAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjggLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICoKLSAqIDYweCBTRFJBTSBpcyBtYXBwZWQgYXQgQ0ZHX1NEUkFNX0JBU0UsIGxvY2FsIFNEUkFNCisgKiA2MHggU0RSQU0gaXMgbWFwcGVkIGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSwgbG9jYWwgU0RSQU0KICAqIGlzIG1hcHBlZCBhdCBTRFJBTV9CQVNFMl9QUkVMSU0uCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19GTEFTSDBfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtMzk0LDkgKzM5NCw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFICAgICAgMzIgICAgICAvKiBGb3IgTVBDODI2MCBDUFUgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgICAgICAzMiAgICAgIC8qIEZvciBNUEM4MjYwIENQVSAgICAgICAgICAgICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQwOSwyOCArNDA5LDI4IEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUICAgKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxISUQwX0RDSXxcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUICAgKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxISUQwX0RDSXxcCiAJCQkJSElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMF9GSU5BTCAgKEhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDIgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMICAoSElEMF9JRkVNfEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIgICAgICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LTUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHR1cm4gb24gQ2hlY2tzdG9wIFJlc2V0IEVuYWJsZQogICovCi0jZGVmaW5lIENGR19STVIgICAgICAgICBSTVJfQ1NSRQorI2RlZmluZSBDT05GSUdfU1lTX1JNUiAgICAgICAgIFJNUl9DU1JFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEJDUiAtIEJ1cyBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC0yNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjaWZkZWYJQ09ORklHX0JVU01PREVfNjB4Ci0jZGVmaW5lIENGR19CQ1IgICAgICAgICAoQkNSX0VCTXxCQ1JfTDJDfEJDUl9MRVRNfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IgICAgICAgICAoQkNSX0VCTXxCQ1JfTDJDfEJDUl9MRVRNfFwKIAkJCSBCQ1JfTlBRTTB8QkNSX05QUU0xfEJDUl9OUFFNMikJLyogNjB4IG1vZGUgICovCiAjZWxzZQogI2RlZmluZSBCQ1JfQVBEMDEJMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfQkNSCQkoQkNSX0FQRDAxfEJDUl9FVE18QkNSX0xFVE0pCS8qIDgyNjAgbW9kZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJKEJDUl9BUEQwMXxCQ1JfRVRNfEJDUl9MRVRNKQkvKiA4MjYwIG1vZGUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MzgsOSArNDM4LDkgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogI2lmIDAKLSNkZWZpbmUgQ0ZHX1NJVU1DUiAgICAgIChTSVVNQ1JfRFBQQzEwfFNJVU1DUl9BUFBDMTApCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSICAgICAgKFNJVU1DUl9EUFBDMTB8U0lVTUNSX0FQUEMxMCkKICNlbHNlCi0jZGVmaW5lIENGR19TSVVNQ1IgICAgICAoU0lVTUNSX0RQUEMwMHxTSVVNQ1JfQVBQQzEwKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUiAgICAgIChTSVVNQ1JfRFBQQzAwfFNJVU1DUl9BUFBDMTApCiAjZW5kaWYKIAogCkBAIC00NTEsMTAgKzQ1MSwxMCBAQAogICogV2F0Y2hkb2cgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIDYweCBCdXMgTW9uaXRvciBlbmFibGUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1B8U1lQQ1JfU1dFKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQKQogI2VuZGlmIC8qIENPTkZJR19XQVRDSERPRyAqLwogCkBAIC00NjQsNyArNDY0LDcgQEAKICAqIENsZWFyIG9uY2UgcGVyIFNlY29uZCBhbmQgQWxhcm0gSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywKICAqIGFuZCBlbmFibGUgVGltZSBDb3VudGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1RNQ05UU0MgICAgIChUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbCAgICAgICAgICAgICAgICAgNC00MgpAQCAtNDcyLDIwICs0NzIsMjAgQEAKICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssIGFuZCBlbmFibGUKICAqIFBlcmlvZGljIHRpbWVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSICAgICAgIChQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSICAgICAgIChQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIENvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDktOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRW5zdXJlIERGQlJHIGlzIERpdmlkZSBieSAxNgogICovCi0jZGVmaW5lIENGR19TQ0NSICAgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUiAgICAgICAgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSQ0NSIC0gUklTQyBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgMTMtNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SQ0NSICAgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUiAgICAgICAgMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTUwMCwxNyArNTAwLDE3IEBACiAKIAkvKiBJbml0aWFsaXplIFNEUkFNIG9uIGxvY2FsIGJ1cwogCSAqLwotI2RlZmluZSBDRkdfSU5JVF9MT0NBTF9TRFJBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfTE9DQUxfU0RSQU0KIAogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkweDA4MDAwMDAwCS8qIG1heC4gMTI4IE1CCQkqLwogCiAvKiBNaW5pbXVtIG1hc2sgdG8gc2VwYXJhdGUgcHJlbGltaW5hcnkKICAqIGFkZHJlc3MgcmFuZ2VzIGZvciBDU1swOjJdCiAgKi8KLSNkZWZpbmUgQ0ZHX0dMT0JBTF9TRFJBTV9MSU1JVAkoNTEyPDwyMCkJLyogbGVzcyB0aGFuIDUxMiBNQiAqLwotI2RlZmluZSBDRkdfTE9DQUxfU0RSQU1fTElNSVQJKDEyODw8MjApCS8qIGxlc3MgdGhhbiAxMjggTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HTE9CQUxfU0RSQU1fTElNSVQJKDUxMjw8MjApCS8qIGxlc3MgdGhhbiA1MTIgTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0NBTF9TRFJBTV9MSU1JVAkoMTI4PDwyMCkJLyogbGVzcyB0aGFuIDEyOCBNQiAqLwogCi0jZGVmaW5lIENGR19NUFRQUiAgICAgICAweDQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUiAgICAgICAweDQwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQWRkcmVzcyBmb3IgTW9kZSBSZWdpc3RlciBTZXQgKE1SUykgY29tbWFuZApAQCAtNTI3LDE3ICs1MjcsMTcgQEAKICAqICBTZXR0aW5nczogICAgICAgICAgICAgIHwgIDAgIHwgIDAgICAgMCAgfCAgMCAgMSAgMCAgfCAgMCAgfCAgIDAgIDEgIDAgICAgfAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19NUlNfT0ZGUwkweDAwMDAwMTEwCisjZGVmaW5lIENPTkZJR19TWVNfTVJTX09GRlMJMHgwMDAwMDExMAogCiAKIC8qIEJhbmsgMCAtIEZMQVNICiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0gICgoQ0ZHX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNICAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNICAoTUVHX1RPX0FNKENGR19GTEFTSF9TSVpFKSAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTSAgKE1FR19UT19BTShDT05GSUdfU1lTX0ZMQVNIX1NJWkUpICAgICAgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV8zX0NMSyAgICAgICAgICAgICAgICAgfFwKQEAgLTU1MCwyNSArNTUwLDI1IEBACiAKIC8qIEJhbmsgMSAtIDYweCBidXMgU0RSQU0KICAqLwotI2RlZmluZSBDRkdfUFNSVCAgICAgICAgMHgyMAotI2RlZmluZSBDRkdfTFNSVCAgICAgICAgMHgyMAotI2lmbmRlZiBDRkdfUkFNQk9PVAotI2RlZmluZSBDRkdfQlIxX1BSRUxJTSAgKChDRkdfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQgICAgICAgIDB4MjAKKyNkZWZpbmUgQ09ORklHX1NZU19MU1JUICAgICAgICAweDIwCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0gICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykgIHxcCiAJCQkgQlJ4X1BTXzY0ICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX1NEUkFNX1AgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMV84Q09MCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMV84Q09MCiAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOC1jb2x1bW4gY2hpcHMKIAkgKi8KLSNkZWZpbmUgQ0ZHX09SMV84Q09MICAgICgofihDRkdfR0xPQkFMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfOENPTCAgICAoKH4oQ09ORklHX1NZU19HTE9CQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAogCQkJIE9SeFNfQlBEXzQgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BNyAgICAgICAgICAgICB8XAogCQkJIE9SeFNfTlVNUl8xMikKIAotI2RlZmluZSBDRkdfUFNETVJfOENPTCAgKFBTRE1SX1BCSSAgICAgICAgICAgICAgICAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SXzhDT0wgIChQU0RNUl9QQkkgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREFNX0ExNV9JU19BNSAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9CU01BX0ExMl9BMTQgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREExMF9QQkkxX0E4ICAgICAgICAgICAgfFwKQEAgLTU4MiwxMiArNTgyLDEyIEBACiAKIAkvKiBTRFJBTSBpbml0aWFsaXphdGlvbiB2YWx1ZXMgZm9yIDktY29sdW1uIGNoaXBzCiAJICovCi0jZGVmaW5lIENGR19PUjFfOUNPTCAgICAoKH4oQ0ZHX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxXzlDT0wgICAgKCh+KENPTkZJR19TWVNfR0xPQkFMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKIAkJCSBPUnhTX0JQRF80ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTFfQTUgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX05VTVJfMTMpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SXzlDT0wgIChQU0RNUl9QQkkgICAgICAgICAgICAgICAgICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUl85Q09MICAoUFNETVJfUEJJICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBTV9BMTZfSVNfQTUgICAgICAgICAgIHxcCiAJCQkgUFNETVJfQlNNQV9BMTJfQTE0ICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMV9BNyAgICAgICAgICAgIHxcCkBAIC02MDEsMjQgKzYwMSwyNCBAQAogCiAvKiBCYW5rIDIgLSBMb2NhbCBidXMgU0RSQU0KICAqLwotI2lmZGVmIENGR19JTklUX0xPQ0FMX1NEUkFNCi0jZGVmaW5lIENGR19CUjJfUFJFTElNICAoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSeF9CQV9NU0spIHxcCisjaWZkZWYgQ09ORklHX1NZU19JTklUX0xPQ0FMX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTSAgKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU18zMiAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19TRFJBTV9MICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCUNGR19PUjJfOENPTAorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JQ09ORklHX1NZU19PUjJfOENPTAogCiAjZGVmaW5lIFNEUkFNX0JBU0UyX1BSRUxJTQkweDgwMDAwMDAwCiAKIAkvKiBTRFJBTSBpbml0aWFsaXphdGlvbiB2YWx1ZXMgZm9yIDgtY29sdW1uIGNoaXBzCiAJICovCi0jZGVmaW5lIENGR19PUjJfOENPTCAgICAoKH4oQ0ZHX0xPQ0FMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfOENPTCAgICAoKH4oQ09ORklHX1NZU19MT0NBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCiAJCQkgT1J4U19CUERfNCAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19ST1dTVF9QQkkxX0E4ICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19OVU1SXzEyKQogCi0jZGVmaW5lIENGR19MU0RNUl84Q09MICAoUFNETVJfUEJJICAgICAgICAgICAgICAgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfTFNETVJfOENPTCAgKFBTRE1SX1BCSSAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQU1fQTE1X0lTX0E1ICAgICAgICAgICB8XAogCQkJIFBTRE1SX0JTTUFfQTEzX0ExNSAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTFfQTkgICAgICAgICAgICB8XApAQCAtNjMyLDEyICs2MzIsMTIgQEAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOS1jb2x1bW4gY2hpcHMKIAkgKi8KLSNkZWZpbmUgQ0ZHX09SMl85Q09MICAgICgofihDRkdfTE9DQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMl85Q09MICAgICgofihDT05GSUdfU1lTX0xPQ0FMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKIAkJCSBPUnhTX0JQRF80ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTFfQTYgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX05VTVJfMTMpCiAKLSNkZWZpbmUgQ0ZHX0xTRE1SXzlDT0wgIChQU0RNUl9QQkkgICAgICAgICAgICAgICAgICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19MU0RNUl85Q09MICAoUFNETVJfUEJJICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBTV9BMTZfSVNfQTUgICAgICAgICAgIHxcCiAJCQkgUFNETVJfQlNNQV9BMTNfQTE1ICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMV9BOCAgICAgICAgICAgIHxcCkBAIC02NDksOCArNjQ5LDggQEAKIAkJCSBQU0RNUl9XUkNfMkMgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9DTF8yKQogCi0jZW5kaWYgLyogQ0ZHX0lOSVRfTE9DQUxfU0RSQU0gKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0lOSVRfTE9DQUxfU0RSQU0gKi8KIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODI3Mi5oIGIvaW5jbHVkZS9jb25maWdzL1RRTTgyNzIuaAppbmRleCAwNzI2MDhjLi4xOTE1YTczIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODI3Mi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9UUU04MjcyLmgKQEAgLTk3LDggKzk3LDggQEAKIC8qIGVuYWJsZSBJMkMgYW5kIHNlbGVjdCB0aGUgaGFyZHdhcmUvc29mdHdhcmUgZHJpdmVyICovCiAjdW5kZWYgIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUgQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIFNvZnR3YXJlIChiaXQtYmFuZykgSTJDIGRyaXZlciBjb25maWd1cmF0aW9uCkBAIC0xMTYsMjEgKzExNiwyMSBAQAogI2RlZmluZSBDT05GSUdfSTJDX1gKIAogLyogRUVQUk9NICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDIKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCQkxCS8qIG1vcmUgdGhhbiBvbmUgZWVwcm9tICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUwkJMQkvKiBtb3JlIHRoYW4gb25lIGVlcHJvbSAqLwogCiAvKiBJMkMgUlRDICovCiAjZGVmaW5lIENPTkZJR19SVENfRFMxMzM3CQkvKiBVc2UgZHMxMzM3IHJ0YyB2aWEgaTJjCSovCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OAkvKiBhdCBhZGRyZXNzIDB4NjgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NjgJLyogYXQgYWRkcmVzcyAweDY4CQkqLwogCiAvKiBJMkMgU1lTTU9OIChMTTc1KSAqLwogI2RlZmluZSBDT05GSUdfRFRUX0xNNzUJCTEJCS8qIE9OIFNlbWkncyBMTTc1CSovCiAjZGVmaW5lIENPTkZJR19EVFRfU0VOU09SUwl7MH0JCS8qIFNlbnNvciBhZGRyZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0RUVF9NQVhfVEVNUAk3MAotI2RlZmluZSBDRkdfRFRUX0xPV19URU1QCS0zMAotI2RlZmluZSBDRkdfRFRUX0hZU1RFUkVTSVMJMworI2RlZmluZSBDT05GSUdfU1lTX0RUVF9NQVhfVEVNUAk3MAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9MT1dfVEVNUAktMzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUwkzCiAKICNlbHNlCiAjdW5kZWYgQ09ORklHX0hBUkRfSTJDCkBAIC0xNzYsOSArMTc2LDkgQEAKICAqIChPbiBUUU04MjcyIGVpdGhlciBTQ0MxIG9yIEZDQzIgbWF5IGJlIGNob3NlbjogU0NDMSBpcyBoYXJkd2lyZWQgdG8gdGhlCiAgKiBYLjI5IGNvbm5lY3RvciwgYW5kIEZDQzIgaXMgaGFyZHdpcmVkIHRvIHRoZSBYLjEgY29ubmVjdG9yKQogICovCi0jZGVmaW5lIENGR19GQ0NfRVRIRVJORVQKKyNkZWZpbmUgQ09ORklHX1NZU19GQ0NfRVRIRVJORVQKIAotI2lmIGRlZmluZWQoQ0ZHX0ZDQ19FVEhFUk5FVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkNDX0VUSEVSTkVUKQogI3VuZGVmCUNPTkZJR19FVEhFUl9PTl9TQ0MJCS8qIGRlZmluZSBpZiBldGhlciBvbiBTQ0MgICAgICAgKi8KICNkZWZpbmUJQ09ORklHX0VUSEVSX09OX0ZDQwkJLyogZGVmaW5lIGlmIGV0aGVyIG9uIEZDQyAgICAgICAqLwogI3VuZGVmCUNPTkZJR19FVEhFUl9OT05FCQkvKiBkZWZpbmUgaWYgZXRoZXIgb24gc29tZXRoaW5nIGVsc2UgKi8KQEAgLTE5Niw3ICsxOTYsNyBAQAogICogIC0gUlggY2xrIGlzIENMSzExCiAgKiAgLSBUWCBjbGsgaXMgQ0xLMTIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWFNDUl9WQUxVRQkoQ01YU0NSX1JTMUNTX0NMSzExIHwgQ01YU0NSX1RTMUNTX0NMSzEyKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhTQ1JfVkFMVUUJKENNWFNDUl9SUzFDU19DTEsxMSB8IENNWFNDUl9UUzFDU19DTEsxMikKIAogI2VsaWYgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkNDKSAmJiAoQ09ORklHX0VUSEVSX0lOREVYID09IDIpCiAKQEAgLTIwNiwxMCArMjA2LDEwIEBACiAgKiAtIFJBTSBmb3IgQkQvQnVmZmVycyBpcyBvbiB0aGUgNjB4IEJ1cyAoc2VlIDI4LTEzKQogICogLSBFbmFibGUgRnVsbCBEdXBsZXggaW4gRlNNUgogICovCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzJ8Q01YRkNSX1JGMkNTX01TS3xDTVhGQ1JfVEYyQ1NfTVNLKQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzfENNWEZDUl9URjJDU19DTEsxNCkKLSMgZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzfENNWEZDUl9URjJDU19DTEsxNCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCiAKICNlbmRpZiAvKiBDT05GSUdfRVRIRVJfT05fRkNDLCBDT05GSUdfRVRIRVJfSU5ERVggKi8KIApAQCAtMjIxLDM1ICsyMjEsMzUgQEAKICNkZWZpbmUgTURJT19QT1JUCTIJCS8qIFBvcnQgQyAqLwogCiAjaWYgU1RLODJ4eF8xNTAKLSNkZWZpbmUgQ0ZHX01ESU9fUElOCTB4MDAwMDgwMDAJLyogUEMxNiAqLwotI2RlZmluZSBDRkdfTURDX1BJTgkweDAwMDA0MDAwCS8qIFBDMTcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRElPX1BJTgkweDAwMDA4MDAwCS8qIFBDMTYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRENfUElOCTB4MDAwMDQwMDAJLyogUEMxNyAqLwogI2VuZGlmCiAKICNpZiBTVEs4Mnh4XzEwMAotI2RlZmluZSBDRkdfTURJT19QSU4JMHgwMDAwMDAwMgkvKiBQQzMwICovCi0jZGVmaW5lIENGR19NRENfUElOCTB4MDAwMDAwMDEJLyogUEMzMSAqLworI2RlZmluZSBDT05GSUdfU1lTX01ESU9fUElOCTB4MDAwMDAwMDIJLyogUEMzMCAqLworI2RlZmluZSBDT05GSUdfU1lTX01EQ19QSU4JMHgwMDAwMDAwMQkvKiBQQzMxICovCiAjZW5kaWYKIAogI2lmIDEKLSNkZWZpbmUgTURJT19BQ1RJVkUJKGlvcC0+cGRpciB8PSAgQ0ZHX01ESU9fUElOKQotI2RlZmluZSBNRElPX1RSSVNUQVRFCShpb3AtPnBkaXIgJj0gfkNGR19NRElPX1BJTikKLSNkZWZpbmUgTURJT19SRUFECSgoaW9wLT5wZGF0ICYgIENGR19NRElPX1BJTikgIT0gMCkKKyNkZWZpbmUgTURJT19BQ1RJVkUJKGlvcC0+cGRpciB8PSAgQ09ORklHX1NZU19NRElPX1BJTikKKyNkZWZpbmUgTURJT19UUklTVEFURQkoaW9wLT5wZGlyICY9IH5DT05GSUdfU1lTX01ESU9fUElOKQorI2RlZmluZSBNRElPX1JFQUQJKChpb3AtPnBkYXQgJiAgQ09ORklHX1NZU19NRElPX1BJTikgIT0gMCkKIAotI2RlZmluZSBNRElPKGJpdCkJaWYoYml0KSBpb3AtPnBkYXQgfD0gIENGR19NRElPX1BJTjsgXAotCQkJZWxzZQlpb3AtPnBkYXQgJj0gfkNGR19NRElPX1BJTgorI2RlZmluZSBNRElPKGJpdCkJaWYoYml0KSBpb3AtPnBkYXQgfD0gIENPTkZJR19TWVNfTURJT19QSU47IFwKKwkJCWVsc2UJaW9wLT5wZGF0ICY9IH5DT05GSUdfU1lTX01ESU9fUElOCiAKLSNkZWZpbmUgTURDKGJpdCkJaWYoYml0KSBpb3AtPnBkYXQgfD0gIENGR19NRENfUElOOyBcCi0JCQllbHNlCWlvcC0+cGRhdCAmPSB+Q0ZHX01EQ19QSU4KKyNkZWZpbmUgTURDKGJpdCkJaWYoYml0KSBpb3AtPnBkYXQgfD0gIENPTkZJR19TWVNfTURDX1BJTjsgXAorCQkJZWxzZQlpb3AtPnBkYXQgJj0gfkNPTkZJR19TWVNfTURDX1BJTgogI2Vsc2UKLSNkZWZpbmUgTURJT19BQ1RJVkUJKHt1bnNpZ25lZCBsb25nIHRtcDsgdG1wID0gaW9wLT5wZGlyOyB0bXAgfD0gIENGR19NRElPX1BJTjsgaW9wLT5wZGlyID0gdG1wO30pCi0jZGVmaW5lIE1ESU9fVFJJU1RBVEUJKHt1bnNpZ25lZCBsb25nIHRtcDsgdG1wID0gaW9wLT5wZGlyOyB0bXAgJj0gfkNGR19NRElPX1BJTjsgaW9wLT5wZGlyID0gdG1wO30pCi0jZGVmaW5lIE1ESU9fUkVBRAkoKGlvcC0+cGRhdCAmICBDRkdfTURJT19QSU4pICE9IDApCisjZGVmaW5lIE1ESU9fQUNUSVZFCSh7dW5zaWduZWQgbG9uZyB0bXA7IHRtcCA9IGlvcC0+cGRpcjsgdG1wIHw9ICBDT05GSUdfU1lTX01ESU9fUElOOyBpb3AtPnBkaXIgPSB0bXA7fSkKKyNkZWZpbmUgTURJT19UUklTVEFURQkoe3Vuc2lnbmVkIGxvbmcgdG1wOyB0bXAgPSBpb3AtPnBkaXI7IHRtcCAmPSB+Q09ORklHX1NZU19NRElPX1BJTjsgaW9wLT5wZGlyID0gdG1wO30pCisjZGVmaW5lIE1ESU9fUkVBRAkoKGlvcC0+cGRhdCAmICBDT05GSUdfU1lTX01ESU9fUElOKSAhPSAwKQogCi0jZGVmaW5lIE1ESU8oYml0KQlpZihiaXQpIHt1bnNpZ25lZCBsb25nIHRtcDsgdG1wID0gaW9wLT5wZGF0OyB0bXAgfD0gIENGR19NRElPX1BJTjsgaW9wLT5wZGF0ID0gdG1wO31cCi0JCQllbHNlCXt1bnNpZ25lZCBsb25nIHRtcDsgdG1wID0gaW9wLT5wZGF0OyB0bXAgJj0gfkNGR19NRElPX1BJTjsgaW9wLT5wZGF0ID0gdG1wO30KKyNkZWZpbmUgTURJTyhiaXQpCWlmKGJpdCkge3Vuc2lnbmVkIGxvbmcgdG1wOyB0bXAgPSBpb3AtPnBkYXQ7IHRtcCB8PSAgQ09ORklHX1NZU19NRElPX1BJTjsgaW9wLT5wZGF0ID0gdG1wO31cCisJCQllbHNlCXt1bnNpZ25lZCBsb25nIHRtcDsgdG1wID0gaW9wLT5wZGF0OyB0bXAgJj0gfkNPTkZJR19TWVNfTURJT19QSU47IGlvcC0+cGRhdCA9IHRtcDt9CiAKLSNkZWZpbmUgTURDKGJpdCkJaWYoYml0KSB7dW5zaWduZWQgbG9uZyB0bXA7IHRtcCA9IGlvcC0+cGRhdDsgdG1wIHw9ICBDRkdfTURDX1BJTjsgaW9wLT5wZGF0ID0gdG1wO31cCi0JCQllbHNlCXt1bnNpZ25lZCBsb25nIHRtcDsgdG1wID0gaW9wLT5wZGF0OyB0bXAgJj0gfkNGR19NRENfUElOOyBpb3AtPnBkYXQgPSB0bXA7fQorI2RlZmluZSBNREMoYml0KQlpZihiaXQpIHt1bnNpZ25lZCBsb25nIHRtcDsgdG1wID0gaW9wLT5wZGF0OyB0bXAgfD0gIENPTkZJR19TWVNfTURDX1BJTjsgaW9wLT5wZGF0ID0gdG1wO31cCisJCQllbHNlCXt1bnNpZ25lZCBsb25nIHRtcDsgdG1wID0gaW9wLT5wZGF0OyB0bXAgJj0gfkNPTkZJR19TWVNfTURDX1BJTjsgaW9wLT5wZGF0ID0gdG1wO30KICNlbmRpZgogCiAjZGVmaW5lIE1JSURFTEFZCXVkZWxheSgxKQpAQCAtMjU5LDcgKzI1OSw3IEBACiAjZGVmaW5lIENPTkZJR184MjYwX0NMS0lOCTY2NjY2NjY2CS8qIGluIEh6ICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTMwMCw1NiArMzAwLDU2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAogI2lmIDAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkweDMwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkweDMwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKLSNkZWZpbmUJQ0ZHX1JFU0VUX0FERFJFU1MgMHg0MDAwMDEwNAkvKiAiYmFkIiBhZGRyZXNzCQkqLworI2RlZmluZQlDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgMHg0MDAwMDEwNAkvKiAiYmFkIiBhZGRyZXNzCQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaICAgICAgICAoOCA8PCAyMCkgICAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWiAgICAgICAgKDggPDwgMjApICAgICAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ0FOIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBTl9CQVNFCTB4NTEwMDAwMDAKLSNkZWZpbmUJQ0ZHX0NBTl9TSVpFCTEKLSNkZWZpbmUgQ0ZHX0NBTl9CUgkoKENGR19DQU5fQkFTRSAmIEJSeF9CQV9NU0spCXxcCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOX0JBU0UJMHg1MTAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0NBTl9TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fQlIJKChDT05GSUdfU1lTX0NBTl9CQVNFICYgQlJ4X0JBX01TSykJfFwKIAkJCSBCUnhfUFNfOAkJCXxcCiAJCQkgQlJ4X01TX1VQTUMJCQl8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19DQU5fT1IJKE1FR19UT19BTShDRkdfQ0FOX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOX09SCShNRUdfVE9fQU0oQ09ORklHX1NZU19DQU5fU0laRSkJfFwKIAkJCSBPUnhVX0JJKQogCiAKQEAgLTM1NywzMSArMzU3LDMxIEBACiAgKiBpdCAoaW4gTUJ5dGVzKT8gVGhpcyBtdXN0IGNvbnRhaW4gVEVYVF9CQVNFIGZyb20gYm9hcmQvdHFtODI3Mi9jb25maWcubWsKICAqIFRoZSBtYWluIEZMQVNIIGlzIHdoaWNoZXZlciBpcyBjb25uZWN0ZWQgdG8gKkNTMC4KICAqLwotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UgMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gwX1NJWkUgMzIJLyogMzIgTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRSAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX1NJWkUgMzIJLyogMzIgTUIgKi8KIAogLyogRmxhc2ggYmFuayBzaXplIChmb3IgcHJlbGltaW5hcnkgc2V0dGluZ3MpCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUgQ0ZHX0ZMQVNIMF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogZmxhc2ggaXMgQ0ZJIGNvbXBhdC4JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogZmxhc2ggaXMgQ0ZJIGNvbXBhdC4JKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3IJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBmbGFzaCovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2gqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KIAotI2RlZmluZSBDRkdfVVBEQVRFX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19VUERBVEVfRkxBU0hfU0laRQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENPTkZJR19FTlZfQUREUiArIENPTkZJR19FTlZfU0laRSkKQEAgLTM4OSwxNCArMzg5LDE0IEBACiAKIC8qIFdoZXJlIGlzIHRoZSBIYXJkd2FyZWluZm9ybWF0aW9uIEJsb2NrIChmcm9tIE1vbml0b3IgU291cmNlcykgKi8KICNkZWZpbmUgTU9OX1JFU19MRU5HVEgJCSgweDAwMDNGQzAwKQotI2RlZmluZSBIV0lCX0lORk9fU1RBUlRfQUREUiAgICAoQ0ZHX0ZMQVNIX0JBU0UgKyBNT05fUkVTX0xFTkdUSCkKKyNkZWZpbmUgSFdJQl9JTkZPX1NUQVJUX0FERFIgICAgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIE1PTl9SRVNfTEVOR1RIKQogI2RlZmluZSBIV0lCX0lORk9fTEVOICAgICAgICAgICA1MTIKLSNkZWZpbmUgQ0lCX0lORk9fU1RBUlRfQUREUiAgICAgKENGR19GTEFTSF9CQVNFICsgTU9OX1JFU19MRU5HVEggKyBIV0lCX0lORk9fTEVOKQorI2RlZmluZSBDSUJfSU5GT19TVEFSVF9BRERSICAgICAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgTU9OX1JFU19MRU5HVEggKyBIV0lCX0lORk9fTEVOKQogI2RlZmluZSBDSUJfSU5GT19MRU4gICAgICAgICAgICA1MTIKIAotI2RlZmluZSBDRkdfSFdJTkZPX09GRlNFVAkweDNmYzAwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fU0laRQkJMHgwMDAwMDA2MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAkweDNmYzAwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNjAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTkFORC1GTEFTSCBzdHVmZgpAQCAtNDA0LDMyICs0MDQsMzIgQEAKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9OQU5EKQogCi0jZGVmaW5lIENGR19OQU5EX0NTX0RJU1QJCTB4ODAKLSNkZWZpbmUgQ0ZHX05BTkRfVVBNX1dSSVRFX0NNRF9PRlMJMHgyMAotI2RlZmluZSBDRkdfTkFORF9VUE1fV1JJVEVfQUREUl9PRlMJMHg0MAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ1NfRElTVAkJMHg4MAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVVBNX1dSSVRFX0NNRF9PRlMJMHgyMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVVBNX1dSSVRFX0FERFJfT0ZTCTB4NDAKIAotI2RlZmluZSBDRkdfTkFORF9CUgkoKENGR19OQU5EMF9CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JSCSgoQ09ORklHX1NZU19OQU5EMF9CQVNFICYgQlJ4X0JBX01TSykJfFwKIAkJCSBCUnhfUFNfOAkJCXxcCiAJCQkgQlJ4X01TX1VQTUIJCQl8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19OQU5EX09SCShNRUdfVE9fQU0oQ0ZHX05BTkRfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX09SCShNRUdfVE9fQU0oQ09ORklHX1NZU19OQU5EX1NJWkUpCXxcCiAJCQkgT1J4VV9CSQkJCXxcCiAJCQkgT1J4VV9FSFRSXzhJRExFKQogCi0jZGVmaW5lIENGR19OQU5EX1NJWkUJMQotI2RlZmluZSBDRkdfTkFORDBfQkFTRSAweDUwMDAwMDAwCi0jZGVmaW5lIENGR19OQU5EMV9CQVNFIChDRkdfTkFORDBfQkFTRSArIENGR19OQU5EX0NTX0RJU1QpCi0jZGVmaW5lIENGR19OQU5EMl9CQVNFIChDRkdfTkFORDFfQkFTRSArIENGR19OQU5EX0NTX0RJU1QpCi0jZGVmaW5lIENGR19OQU5EM19CQVNFIChDRkdfTkFORDJfQkFTRSArIENGR19OQU5EX0NTX0RJU1QpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMF9CQVNFIDB4NTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMV9CQVNFIChDT05GSUdfU1lTX05BTkQwX0JBU0UgKyBDT05GSUdfU1lTX05BTkRfQ1NfRElTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMl9CQVNFIChDT05GSUdfU1lTX05BTkQxX0JBU0UgKyBDT05GSUdfU1lTX05BTkRfQ1NfRElTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EM19CQVNFIChDT05GSUdfU1lTX05BTkQyX0JBU0UgKyBDT05GSUdfU1lTX05BTkRfQ1NfRElTVCkKIAotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFICAgICA0ICAgICAgIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRSAgICAgNCAgICAgICAvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAgICAgICAgICAgKi8KICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMgMQogCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVCB7IENGR19OQU5EMF9CQVNFLCBcCi0JCQkgICAgIENGR19OQU5EMV9CQVNFLCBcCi0JCQkgICAgIENGR19OQU5EMl9CQVNFLCBcCi0JCQkgICAgIENGR19OQU5EM19CQVNFLCBcCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFX0xJU1QgeyBDT05GSUdfU1lTX05BTkQwX0JBU0UsIFwKKwkJCSAgICAgQ09ORklHX1NZU19OQU5EMV9CQVNFLCBcCisJCQkgICAgIENPTkZJR19TWVNfTkFORDJfQkFTRSwgXAorCQkJICAgICBDT05GSUdfU1lTX05BTkQzX0JBU0UsIFwKIAkJCSAgIH0KIAogI2RlZmluZSBXUklURV9OQU5EKGQsIGFkcikgZG97ICoodm9sYXRpbGUgX191OCAqKSgodW5zaWduZWQgbG9uZykoYWRyKSkgPSAoX191OClkOyB9IHdoaWxlKDApCkBAIC00NDcsNTggKzQ0Nyw1OCBAQAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIDEJLyogQ2FsbCBib2FyZF9lYXJseV9pbml0X2YJKi8KICNkZWZpbmUgQ09ORklHX1BDSV9QTlAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgJCS8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOAkJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZCBSZXNldCBDb25maWd1cmF0aW9uIFdvcmRzCiAgKgotICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ0ZHXyoKKyAqIGlmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENPTkZJR19TWVNfKgogICogZGVmaW5lcyBmb3IgdGhlIHZhcmlvdXMgcmVnaXN0ZXJzIGFmZmVjdGVkIGJ5IHRoZSBIUkNXIGUuZy4gY2hhbmdpbmcKLSAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDRkdfU0lVTUNSLgorICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENPTkZJR19TWVNfU0lVTUNSLgogICovCiAjaWYgMAogI2RlZmluZQlfX0hSQ1dfX0FMTF9fCQkoSFJDV19DSVAgfCBIUkNXX0lTQjExMSB8IEhSQ1dfQk1TKQogCi0jICBkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCShfX0hSQ1dfX0FMTF9fIHwgSFJDV19NT0RDS19IMDExMSkKKyMgIGRlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCShfX0hSQ1dfX0FMTF9fIHwgSFJDV19NT0RDS19IMDExMSkKICNlbHNlCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkoSFJDV19CUFMxMSB8IEhSQ1dfSVNCMTExIHwgSFJDV19CTVMgfCBIUkNXX01PRENLX0gwMTExKQorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCShIUkNXX0JQUzExIHwgSFJDV19JU0IxMTEgfCBIUkNXX0JNUyB8IEhSQ1dfTU9EQ0tfSDAxMTEpCiAjZW5kaWYKIAogLyogbm8gc2xhdmVzIHNvIGp1c3QgZmlsbCB3aXRoIHplcm9zICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNAkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3CQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MjAwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0ZMQVNIMF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfRkxBU0gwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpKi8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCkBAIC01MTEsOSArNTExLDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUgICAgICAzMiAgICAgIC8qIEZvciBNUEM4MjYwIENQVSAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAgICAgIDMyICAgICAgLyogRm9yIE1QQzgyNjAgQ1BVICAgICAgICAgICAgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTI2LDM1ICs1MjYsMzUgQEAKICAqCiAgKiBISUQxIGhhcyBvbmx5IHJlYWQtb25seSBpbmZvcm1hdGlvbiAtIG5vdGhpbmcgdG8gc2V0LgogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQgICAoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfEhJRDBfRENJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQgICAoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfEhJRDBfRENJfFwKIAkJCQlISUQwX0lGRU18SElEMF9BQkUpCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMICAoSElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwgIChISUQwX0lGRU18SElEMF9BQkUpCisjZGVmaW5lIENPTkZJR19TWVNfSElEMiAgICAgICAgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSTVIgLSBSZXNldCBNb2RlIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUtNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogdHVybiBvbiBDaGVja3N0b3AgUmVzZXQgRW5hYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX1JNUiAgICAgICAgIFJNUl9DU1JFCisjZGVmaW5lIENPTkZJR19TWVNfUk1SICAgICAgICAgUk1SX0NTUkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LTI1CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0JDUl82MHggICAgICAgICAoQkNSX0VCTXxCQ1JfTlBRTTB8QkNSX05QUU0yKQkvKiA2MHggbW9kZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQ1JfNjB4ICAgICAgICAgKEJDUl9FQk18QkNSX05QUU0wfEJDUl9OUFFNMikJLyogNjB4IG1vZGUgICovCiAjZGVmaW5lIEJDUl9BUEQwMQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19CQ1JfU0lOR0xFCQkoQkNSX0FQRDAxfEJDUl9FVE0pCS8qIDgyNjAgbW9kZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JDUl9TSU5HTEUJCShCQ1JfQVBEMDF8QkNSX0VUTSkJLyogODI2MCBtb2RlICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfQk9BUkRfR0VUX0NQVV9DTEtfRikKLSNkZWZpbmUgQ0ZHX1NJVU1DUl9MT1cJCShTSVVNQ1JfRFBQQzAwKQotI2RlZmluZSBDRkdfU0lVTUNSX0hJR0gJCShTSVVNQ1JfRFBQQzAwIHwgU0lVTUNSX0FCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1JfTE9XCQkoU0lVTUNSX0RQUEMwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1JfSElHSAkJKFNJVU1DUl9EUFBDMDAgfCBTSVVNQ1JfQUJFKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkJKFNJVU1DUl9EUFBDMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCQkoU0lVTUNSX0RQUEMwMCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC01NjQsMTAgKzU2NCwxMCBAQAogICogV2F0Y2hkb2cgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIDYweCBCdXMgTW9uaXRvciBlbmFibGUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1B8U1lQQ1JfU1dFKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQKQogI2VuZGlmIC8qIENPTkZJR19XQVRDSERPRyAqLwogCkBAIC01NzcsNyArNTc3LDcgQEAKICAqIENsZWFyIG9uY2UgcGVyIFNlY29uZCBhbmQgQWxhcm0gSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywKICAqIGFuZCBlbmFibGUgVGltZSBDb3VudGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1RNQ05UU0MgICAgIChUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbCAgICAgICAgICAgICAgICAgNC00MgpAQCAtNTg1LDIwICs1ODUsMjAgQEAKICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssIGFuZCBlbmFibGUKICAqIFBlcmlvZGljIHRpbWVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSICAgICAgIChQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSICAgICAgIChQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIENvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDktOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRW5zdXJlIERGQlJHIGlzIERpdmlkZSBieSAxNgogICovCi0jZGVmaW5lIENGR19TQ0NSICAgICAgICBTQ0NSX0RGQlJHMDEKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSICAgICAgICBTQ0NSX0RGQlJHMDEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgIDEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgICAgICAgIDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC02MTQsMTYgKzYxNCwxNiBAQAogCiAvKiBJbml0aWFsaXplIFNEUkFNCiAJICovCi0jdW5kZWYgQ0ZHX0lOSVRfTE9DQUxfU0RSQU0JCS8qIE5vIFNEUkFNIG9uIExvY2FsIEJ1cyAqLworI3VuZGVmIENPTkZJR19TWVNfSU5JVF9MT0NBTF9TRFJBTQkJLyogTm8gU0RSQU0gb24gTG9jYWwgQnVzICovCiAKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUJMHgyMDAwMDAwMAkvKiBtYXguIDUxMiBNQgkJKi8KIAogLyogTWluaW11bSBtYXNrIHRvIHNlcGFyYXRlIHByZWxpbWluYXJ5CiAgKiBhZGRyZXNzIHJhbmdlcyBmb3IgQ1NbMDoyXQogICovCi0jZGVmaW5lIENGR19HTE9CQUxfU0RSQU1fTElNSVQJKDUxMjw8MjApCS8qIGxlc3MgdGhhbiA1MTIgTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HTE9CQUxfU0RSQU1fTElNSVQJKDUxMjw8MjApCS8qIGxlc3MgdGhhbiA1MTIgTUIgKi8KIAotI2RlZmluZSBDRkdfTVBUUFIgICAgICAgMHg0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIgICAgICAgMHg0MDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEFkZHJlc3MgZm9yIE1vZGUgUmVnaXN0ZXIgU2V0IChNUlMpIGNvbW1hbmQKQEAgLTY0MCwxNiArNjQwLDE2IEBACiAgKiAgU2V0dGluZ3M6ICAgICAgICAgICAgICB8ICAwICB8ICAwICAgIDAgIHwgIDAgIDEgIDAgIHwgIDAgIHwgICAwICAxICAwICAgIHwKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfTVJTX09GRlMJMHgwMDAwMDExMAorI2RlZmluZSBDT05GSUdfU1lTX01SU19PRkZTCTB4MDAwMDAxMTAKIAogLyogQmFuayAwIC0gRkxBU0gKICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTSAgKChDRkdfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0gICgoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykgIHxcCiAJCQkgQlJ4X1BTXzMyICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0gIChNRUdfVE9fQU0oQ0ZHX0ZMQVNIX1NJWkUpICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNICAoTUVHX1RPX0FNKENPTkZJR19TWVNfRkxBU0hfU0laRSkgICAgICB8XAogCQkJIE9SeEdfQ1NOVCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfQUNTX0RJVjQgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfU0NZXzhfQ0xLICAgICAgICAgICAgICAgICB8XApAQCAtNjYxLDI1ICs2NjEsMjUgQEAKIAogLyogQmFuayAxIC0gNjB4IGJ1cyBTRFJBTQogICovCi0jZGVmaW5lIENGR19QU1JUICAgICAgICAweDIwCS8qIExvdyBWYWx1ZSAqLwotLyogI2RlZmluZSBDRkdfUFNSVCAgICAgICAgMHgxMAkgRmFzdCBWYWx1ZSAqLwotI2RlZmluZSBDRkdfTFNSVCAgICAgICAgMHgyMAkvKiBMb2NhbCBCdXMgKi8KLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0gICgoQ0ZHX1NEUkFNX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUICAgICAgICAweDIwCS8qIExvdyBWYWx1ZSAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX1BTUlQgICAgICAgIDB4MTAJIEZhc3QgVmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MU1JUICAgICAgICAweDIwCS8qIExvY2FsIEJ1cyAqLworI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19TRFJBTV9QICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjFfOENPTAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjFfOENPTAogCiAvKiBTRFJBTSBpbml0aWFsaXphdGlvbiB2YWx1ZXMgZm9yIDgtY29sdW1uIGNoaXBzCiAgKi8KLSNkZWZpbmUgQ0ZHX09SMV84Q09MICAgICgofihDRkdfR0xPQkFMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfOENPTCAgICAoKH4oQ09ORklHX1NZU19HTE9CQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAogCQkJIE9SeFNfQlBEXzQgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BNyAgICAgICAgICAgICB8XAogCQkJIE9SeFNfTlVNUl8xMikKIAotI2RlZmluZSBDRkdfUFNETVJfOENPTCAgKFBTRE1SX1BCSSAgICAgICAgICAgICAgICAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SXzhDT0wgIChQU0RNUl9QQkkgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREFNX0ExNV9JU19BNSAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9CU01BX0ExMl9BMTQgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREExMF9QQkkxX0E4ICAgICAgICAgICAgfFwKQEAgLTY5NSwxMiArNjk1LDEyIEBACiAKIC8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOS1jb2x1bW4gY2hpcHMKICAqLwotI2RlZmluZSBDRkdfT1IxXzlDT0wgICAgKCh+KENGR19HTE9CQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMV85Q09MICAgICgofihDT05GSUdfU1lTX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCiAJCQkgT1J4U19CUERfNCAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19ST1dTVF9QQkkxX0E1ICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19OVU1SXzEzKQogCi0jZGVmaW5lIENGR19QU0RNUl85Q09MICAoUFNETVJfUEJJICAgICAgICAgICAgICAgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfOUNPTCAgKFBTRE1SX1BCSSAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQU1fQTE2X0lTX0E1ICAgICAgICAgICB8XAogCQkJIFBTRE1SX0JTTUFfQTEyX0ExNCAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTFfQTcgICAgICAgICAgICB8XApAQCAtNzEzLDEyICs3MTMsMTIgQEAKIAkJCSBQU0RNUl9CVUZDTUQJCQl8XAogCQkJIFBTRE1SX0NMXzIpCiAKLSNkZWZpbmUgQ0ZHX09SMV8xMENPTCAgICAoKH4oQ0ZHX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxXzEwQ09MICAgICgofihDT05GSUdfU1lTX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCiAJCQkgT1J4U19CUERfNCAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19ST1dTVF9QQkkxX0E0ICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19OVU1SXzEzKQogCi0jZGVmaW5lIENGR19QU0RNUl8xMENPTCAgKFBTRE1SX1BCSSAgICAgICAgICAgICAgICAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SXzEwQ09MICAoUFNETVJfUEJJICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBTV9BMTdfSVNfQTUgICAgICAgICAgIHxcCiAJCQkgUFNETVJfQlNNQV9BMTJfQTE0ICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMV9BNCAgICAgICAgICAgIHxcCkBAIC03NTksNiArNzU5LDYgQEAKICNkZWZpbmUgUFNETVJfQlVGQ01EXzEwME1IWl82MFggICAgICAgICAweDAwMDAwMDAwICAvKiBQU0RNUltCVUZDTURdIGF0IDEwMCBNSHogNjB4IG1vZGUgKi8KICNkZWZpbmUgUFNETVJfQlVGQ01EX0RFRkFVTFQgICAgICAgICAgICBQU0RNUl9CVUZDTURfMTMzTUhaX1NJTkdMRSAgLyogUFNETVJbQlVGQ01EXSBkZWZhdWx0IHZhbHVlICovCiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1RRTTgzNHguaCBiL2luY2x1ZGUvY29uZmlncy9UUU04MzR4LmgKaW5kZXggN2IwNjJmNC4uMjk2MWExYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RRTTgzNHguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODM0eC5oCkBAIC0zOCw3ICszOCw3IEBACiAjZGVmaW5lIENPTkZJR19UUU04MzRYCQkxCS8qIFRRTTgzNFggYm9hcmQgc3BlY2lmaWMgKi8KIAogLyogSU1NUiBCYXNlIEFkZHJlcyBSZWdpc3RlciwgdXNlIEZyZWVzY2FsZSBkZWZhdWx0OiAweGZmNDAwMDAwICovCi0jZGVmaW5lIENGR19JTU1SCQkweGZmNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhmZjQwMDAwMAogCiAvKiBTeXN0ZW0gY2xvY2suIFByaW1hcnkgaW5wdXQgY2xvY2sgd2hlbiBpbiBQQ0kgaG9zdCBtb2RlICovCiAjZGVmaW5lIENPTkZJR184M1hYX0NMS0lOCTY2NjY2MDAwCS8qIDY2LDY2NiBNSHogKi8KQEAgLTUyLDcgKzUyLDcgQEAKICAqIEV4dGVybmFsIExvY2FsIEJ1cyByYXRlIGlzCiAgKiAgICBDTEtJTiAqIEhSQ1dMX0NTQl9UT19DTEtJTiAvIEhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMSyAvIExDUlJfQ0xLRElWCiAgKi8KLSNkZWZpbmUgQ0ZHX0xDUlIJCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl84KQorI2RlZmluZSBDT05GSUdfU1lTX0xDUlIJCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl84KQogCiAvKiBib2FyZCBwcmUgaW5pdDogZG8gbm90IGNhbGwsIG5vdGhpbmcgdG8gZG8gKi8KICN1bmRlZiBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCkBAIC02MywxNDEgKzYzLDE0MSBAQAogLyoKICAqIEREUiBTZXR1cAogICovCi0jZGVmaW5lIENGR19ERFJfQkFTRQkJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCUNGR19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9CQVNFCQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJQ09ORklHX1NZU19ERFJfQkFTRQogI2RlZmluZSBERFJfQ0FTTEFUXzI1CQkJCS8qIENBU0xBVCBzZXQgdG8gMi41ICovCiAjdW5kZWYgQ09ORklHX0REUl9FQ0MJCQkJLyogb25seSBmb3IgRUNDIEREUiBtb2R1bGUgKi8KICN1bmRlZiBDT05GSUdfU1BEX0VFUFJPTQkJCS8qIGRvIG5vdCB1c2UgU1BEIEVFUFJPTSBmb3IgRERSIHNldHVwICovCiAKLSN1bmRlZiBDRkdfRFJBTV9URVNUCQkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwMTAwMDAwCisjdW5kZWYgQ09ORklHX1NZU19EUkFNX1RFU1QJCQkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCByZWdpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDEwMDAwMAogCiAvKgogICogRkxBU0ggb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJCS8qIHVzZSB0aGUgQ0ZJIGRyaXZlciAqLwotI3VuZGVmIENGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg4MDAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAgICovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQk4CQkvKiBGTEFTSCBzaXplIGluIE1CICovCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ODAwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTgJCS8qIEZMQVNIIHNpemUgaW4gTUIgKi8KIAogLyogYnVmZmVyZWQgd3JpdGVzIGluIHRoZSBBTUQgY2hpcCBzZXQgaXMgbm90IHN1cHBvcnRlZCB5ZXQgKi8KLSN1bmRlZiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQogCiAvKgogICogRkxBU0ggYmFuayBudW1iZXIgZGV0ZWN0aW9uCiAgKi8KIAogLyoKLSAqIFdoZW4gQ0ZHX01BWF9GTEFTSF9CQU5LU19ERVRFQ1QgaXMgZGVmaW5lZCwgdGhlIGFjdHVhbCBudW1iZXIgb2YgRmxhc2gKKyAqIFdoZW4gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NfREVURUNUIGlzIGRlZmluZWQsIHRoZSBhY3R1YWwgbnVtYmVyIG9mIEZsYXNoCiAgKiBiYW5rcyBoYXMgdG8gYmUgZGV0ZXJtaW5lZCBhdCBydW50aW1lIGFuZCBzdG9yZWQgaW4gYSBnbG9hYmwgdmFyaWFibGUKLSAqIHRxbTgzNHhfbnVtX2ZsYXNoX2JhbmtzLiBUaGUgdmFsdWUgb2YgQ0ZHX01BWF9GTEFTSF9CQU5LU19ERVRFQ1QgaXMgb25seQotICogdXNlZCBpbnN0ZWFkIG9mIENGR19NQVhfRkxBU0hfQkFOS1MgdG8gYWxsb2NhdGUgdGhlIGFycmF5IGZsYXNoX2luZm8sIGFuZAorICogdHFtODM0eF9udW1fZmxhc2hfYmFua3MuIFRoZSB2YWx1ZSBvZiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU19ERVRFQ1QgaXMgb25seQorICogdXNlZCBpbnN0ZWFkIG9mIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTIHRvIGFsbG9jYXRlIHRoZSBhcnJheSBmbGFzaF9pbmZvLCBhbmQKICAqIHNob3VsZCBiZSBtYWRlIHN1ZmZpY2llbnRseSBsYXJnZSB0byBhY2NvbW9kYXRlIHRoZSBudW1iZXIgb2YgYmFua3MgdGhhdAogICogbWlnaHQgYWN0dWFsbHkgYmUgZGV0ZWN0ZWQuICBTaW5jZSBtb3N0IChhbGw/KSBGbGFzaCByZWxhdGVkIGZ1bmN0aW9ucyB1c2UKLSAqIENGR19NQVhfRkxBU0hfQkFOS1MgYXMgdGhlIG51bWJlciBvZiBhY3R1YWwgYmFua3Mgb24gdGhlIGJvYXJkLCBpdCBpcworICogQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgYXMgdGhlIG51bWJlciBvZiBhY3R1YWwgYmFua3Mgb24gdGhlIGJvYXJkLCBpdCBpcwogICogZGVmaW5lZCBhcyB0cW04MzR4X251bV9mbGFzaF9iYW5rcy4KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVAkyCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVAkyCiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogZXh0ZXJuIGludCB0cW04MzR4X251bV9mbGFzaF9iYW5rczsKICNlbmRpZgotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICh0cW04MzR4X251bV9mbGFzaF9iYW5rcykKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgKHRxbTgzNHhfbnVtX2ZsYXNoX2JhbmtzKQogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJNTEyCS8qIG1heCBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJNTEyCS8qIG1heCBzZWN0b3JzIHBlciBkZXZpY2UgKi8KIAogLyogMzIgYml0IGRldmljZSBhdCAweDgwMDAwMDAwIHZpYSBHUENNICgweDgwMDBfMTgwMSkgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCSgoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQSkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQSkgfCBcCiAJCQkJCUJSX01TX0dQQ00gfCBCUl9QU18zMiB8IEJSX1YpCiAKIC8qIEZMQVNIIHRpbWluZyAoMHgwMDAwXzBjNTQpICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0dQQ01fQ1NOVCB8IE9SX0dQQ01fQUNTX0RJVjQgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9HUENNX0NTTlQgfCBPUl9HUENNX0FDU19ESVY0IHwgXAogCQkJCQlPUl9HUENNX1NDWV81IHwgT1JfR1BDTV9UUkxYKQogCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhjMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2s6IDEgR2lCICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4YzAwMDAwMDAJLyogT1IgYWRkciBtYXNrOiAxIEdpQiAqLwogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkoQ0ZHX1BSRUxJTV9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKIAotI2RlZmluZSBDRkdfTEJMQVdBUjBfUFJFTElNCTB4ODAwMDAwMUQJLyogMSBHaUIgd2luZG93IHNpemUgKDJeKHNpemUgKyAxKSkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxRAkvKiAxIEdpQiB3aW5kb3cgc2l6ZSAoMl4oc2l6ZSArIDEpKSAqLwogCi0jZGVmaW5lIENGR19MQkxBV0JBUjBfUFJFTElNCUNGR19GTEFTSF9CQVNFCS8qIFdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBXaW5kb3cgYmFzZSBhdCBmbGFzaCBiYXNlICovCiAKIC8qIGRpc2FibGUgcmVtYWluaW5nIG1hcHBpbmdzICovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19MQkxBV0JBUjFfUFJFTElNCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIxX1BSRUxJTQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjFfUFJFTElNCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMV9QUkVMSU0JMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19MQkxBV0JBUjJfUFJFTElNCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIyX1BSRUxJTQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjJfUFJFTElNCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMl9QUkVMSU0JMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19MQkxBV0JBUjNfUFJFTElNCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIzX1BSRUxJTQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjNfUFJFTElNCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSM19QUkVMSU0JMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19MQkxBV0JBUjRfUFJFTElNCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQVI0X1BSRUxJTQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjRfUFJFTElNCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSNF9QUkVMSU0JMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19MQkxBV0JBUjVfUFJFTElNCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQVI1X1BSRUxJTQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjVfUFJFTElNCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSNV9QUkVMSU0JMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19CUjZfUFJFTElNCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19PUjZfUFJFTElNCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19MQkxBV0JBUjZfUFJFTElNCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQVI2X1BSRUxJTQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SNl9QUkVMSU0JCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjZfUFJFTElNCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSNl9QUkVMSU0JMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19CUjdfUFJFTElNCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19PUjdfUFJFTElNCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19MQkxBV0JBUjdfUFJFTElNCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQVI3X1BSRUxJTQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlI3X1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SN19QUkVMSU0JCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjdfUFJFTElNCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSN19QUkVMSU0JMHgwMDAwMDAwMAogCiAvKgogICogTW9uaXRvciBjb25maWcKICAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmICBDRkdfUkFNQk9PVAorI3VuZGVmICBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0qLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHgyMDAwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0qLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4MTAwCQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTB4MTAwCQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MgKi8KIAogLyoKICAqIFNlcmlhbCBQb3J0CiAgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI3VuZGVmIENPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfSU1NUiArIDB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0lNTVIgKyAweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0lNTVIgKyAweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0lNTVIgKyAweDQ2MDApCiAKIC8qCiAgKiBJMkMKQEAgLTIwNSwyNyArMjA1LDI3IEBACiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwogI2RlZmluZSBDT05GSUdfRlNMX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkJNDAwMDAwCS8qIEkyQyBzcGVlZDogNDAwS0h6CQkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkJMHg3RgkvKiBzbGF2ZSBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJCTQwMDAwMAkvKiBJMkMgc3BlZWQ6IDQwMEtIegkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCQkweDdGCS8qIHNsYXZlIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJCTB4MzAwMAogCiAvKiBJMkMgRUVQUk9NLCBjb25maWd1cmF0aW9uIGZvciBvbmJvYXJkIEVFUFJPTXMgMjRDMjU2IGFuZCAyNEMzMiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4CQkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTIJLyogMTYgYml0CQkJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiAzMiBieXRlcyBwZXIgd3JpdGUJCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMgkvKiAxMG1zICsvLSAyMCUJCQkqLwotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMJCTEgICAgICAgLyogbW9yZSB0aGFuIG9uZSBlZXByb20JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCS8qIDE2IGJpdAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qIDMyIGJ5dGVzIHBlciB3cml0ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMgkvKiAxMG1zICsvLSAyMCUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCQkxICAgICAgIC8qIG1vcmUgdGhhbiBvbmUgZWVwcm9tCQkqLwogCiAvKiBJMkMgUlRDICovCiAjZGVmaW5lIENPTkZJR19SVENfRFMxMzM3CQkJLyogdXNlIGRzMTMzNyBydGMgdmlhIGkyYwkqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCQkweDY4CS8qIGF0IGFkZHJlc3MgMHg2OAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJCTB4NjgJLyogYXQgYWRkcmVzcyAweDY4CQkqLwogCiAvKiBJMkMgU1lTTU9OIChMTTc1KSAqLwogI2RlZmluZSBDT05GSUdfRFRUX0xNNzUJCQkxCS8qIE9OIFNlbWkncyBMTTc1CQkqLwogI2RlZmluZSBDT05GSUdfRFRUX1NFTlNPUlMJCXswfQkvKiBTZW5zb3IgYWRkcmVzc2VzCQkqLwotI2RlZmluZSBDRkdfRFRUX01BWF9URU1QCQk3MAotI2RlZmluZSBDRkdfRFRUX0xPV19URU1QCQktMzAKLSNkZWZpbmUgQ0ZHX0RUVF9IWVNURVJFU0lTCQkzCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX01BWF9URU1QCQk3MAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9MT1dfVEVNUAkJLTMwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0hZU1RFUkVTSVMJCTMKIAogLyoKICAqIFRTRUMKQEAgLTIzMywxMCArMjMzLDEwIEBACiAjZGVmaW5lIENPTkZJR19UU0VDX0VORVQJCS8qIHRzZWMgZXRoZXJuZXQgc3VwcG9ydCAqLwogI2RlZmluZSBDT05GSUdfTUlJCiAKLSNkZWZpbmUgQ0ZHX1RTRUMxX09GRlNFVAkweDI0MDAwCi0jZGVmaW5lIENGR19UU0VDMQkJKENGR19JTU1SICsgQ0ZHX1RTRUMxX09GRlNFVCkKLSNkZWZpbmUgQ0ZHX1RTRUMyX09GRlNFVAkweDI1MDAwCi0jZGVmaW5lIENGR19UU0VDMgkJKENGR19JTU1SICsgQ0ZHX1RTRUMyX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMV9PRkZTRVQJMHgyNDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMxCQkoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19UU0VDMV9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzJfT0ZGU0VUCTB4MjUwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMgkJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfVFNFQzJfT0ZGU0VUKQogCiAjaWYgZGVmaW5lZChDT05GSUdfVFNFQ19FTkVUKQogCkBAIC0yNzIsMjQgKzI3MiwyNCBAQAogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVyAgICAgICAgICAgIC8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAqLwogCiAvKiBQQ0kxIGhvc3QgYnJpZGdlICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFICAgICAgIDB4YzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMgICAgICAgQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUgICAgICAgMHgyMDAwMDAwMCAgICAgIC8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRSAgICAgICAgMHhlMjAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTICAgICAgICBDRkdfUENJMV9JT19CQVNFCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUgICAgICAgIDB4MTAwMDAwMCAgICAgICAvKiAxNk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFICAgICAgIDB4YzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUgICAgICAgMHgyMDAwMDAwMCAgICAgIC8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UgICAgICAgIDB4ZTIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMgICAgICAgIENPTkZJR19TWVNfUENJMV9JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFICAgICAgICAweDEwMDAwMDAgICAgICAgLyogMTZNICovCiAKICN1bmRlZiBDT05GSUdfRUVQUk8xMDAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCiAjdW5kZWYgQ09ORklHX1RVTElQCiAKICNpZiAhZGVmaW5lZChDT05GSUdfUENJX1BOUCkKLQkjZGVmaW5lIFBDSV9FTkVUMF9JT0FERFIJQ0ZHX1BDSTFfSU9fQkFTRQotCSNkZWZpbmUgUENJX0VORVQwX01FTUFERFIJQ0ZHX1BDSTFfTUVNX0JBU0UKKwkjZGVmaW5lIFBDSV9FTkVUMF9JT0FERFIJQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UKKwkjZGVmaW5lIFBDSV9FTkVUMF9NRU1BRERSCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRQogCSNkZWZpbmUgUENJX0lEU0VMX05VTUJFUgkweDFjICAgIC8qIHNsb3QwIChJRFNFTCkgPSAyOCAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQJCTB4MTk1NyAgLyogRnJlZXNjYWxlICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRAkJMHgxOTU3ICAvKiBGcmVlc2NhbGUgKi8KIAogI2VuZGlmCS8qIENPTkZJR19QQ0kgKi8KIApAQCAtMjk4LDIwICsyOTgsMjAgQEAKICAqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKIAkjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogMjU2SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2Vsc2UKLQkjZGVmaW5lIENGR19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLworCSNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLwogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTM0MCw3ICszNDAsNyBAQAogICAgICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICAgICAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICAgICAjdW5kZWYgQ09ORklHX0NNRF9MT0FEUwogI2VuZGlmCkBAIC0zNDgsMjYgKzM0OCwyNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLQkjZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotCSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisJI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAjdW5kZWYgQ09ORklHX1dBVENIRE9HCQkJCS8qIHdhdGNoZG9nIGRpc2FibGVkICovCiAKQEAgLTM3Niw5ICszNzYsOSBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLwogCi0jZGVmaW5lIENGR19IUkNXX0xPVyAoXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTE9XIChcCiAJSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLXzFYMSB8XAogCUhSQ1dMX0REUl9UT19TQ0JfQ0xLXzFYMSB8XAogCUhSQ1dMX0NTQl9UT19DTEtJTl80WDEgfFwKQEAgLTM4Niw3ICszODYsNyBAQAogCUhSQ1dMX0NPUkVfVE9fQ1NCXzJYMSkKIAogI2lmIGRlZmluZWQoUENJXzY0QklUKQotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF82NF9CSVRfUENJIHxcCiAJSFJDV0hfUENJMV9BUkJJVEVSX0VOQUJMRSB8XApAQCAtMzk5LDcgKzM5OSw3IEBACiAJSFJDV0hfVFNFQzFNX0lOX0dNSUkgfFwKIAlIUkNXSF9UU0VDMk1fSU5fR01JSSApCiAjZWxzZQotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF8zMl9CSVRfUENJIHxcCiAJSFJDV0hfUENJMV9BUkJJVEVSX0VOQUJMRSB8XApAQCAtNDE0LDY3ICs0MTQsNjcgQEAKICNlbmRpZgogCiAvKiBTeXN0ZW0gSU8gQ29uZmlnICovCi0jZGVmaW5lIENGR19TSUNSSAlTSUNSSF9UU09CSTEKLSNkZWZpbmUgQ0ZHX1NJQ1JMCVNJQ1JMX0xEUF9BCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkgJU0lDUkhfVFNPQkkxCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkwJU0lDUkxfTERQX0EKIAogLyogaS1jYWNoZSBhbmQgZC1jYWNoZSBkaXNhYmxlZCAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCTB4MDAwMDAwMDAwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCUNGR19ISUQwX0lOSVQKLSNkZWZpbmUgQ0ZHX0hJRDIJSElEMl9IQkUKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJMHgwMDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCUNPTkZJR19TWVNfSElEMF9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfSElEMglISUQyX0hCRQogCiAjZGVmaW5lIENPTkZJR19ISUdIX0JBVFMJMQkvKiBIaWdoIEJBVHMgc3VwcG9ydGVkICovCiAKIC8qIEREUiAwIC0gNTEyTSAqLwotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVCShDRkdfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogc3RhY2sgaW4gRENBQ0hFIEAgNTEyTSAobm8gYmFja2luZyBtZW0pICovCi0jZGVmaW5lIENGR19JQkFUMkwJKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDJVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIFBDSSAqLwogI2lmZGVmIENPTkZJR19QQ0kKLSNkZWZpbmUgQ0ZHX0lCQVQzTAkoQ0ZHX1BDSTFfTUVNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUM1UJKENGR19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUNEwJKENGR19QQ0kxX01FTV9CQVNFICsgMHgxMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ0VQkoQ0ZHX1BDSTFfTUVNX0JBU0UgKyAweDEwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUNUwJKENGR19QQ0kxX0lPX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDVVCShDRkdfUENJMV9JT19CQVNFICsgMHgxMDAwMDAwMCB8IEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwJKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSArIDB4MTAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRVCShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UgKyAweDEwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCShDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVVCShDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSArIDB4MTAwMDAwMDAgfCBCQVRVX0JMXzE2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lCQVQzTAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ0TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ0VQkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ1TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VQkoMCkKICNlbmRpZgogCiAvKiBJTU1SQkFSICovCi0jZGVmaW5lIENGR19JQkFUNkwJKENGR19JTU1SIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkoQ0ZHX0lNTVIgfCBCQVRVX0JMXzFNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMCShDT05GSUdfU1lTX0lNTVIgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VQkoQ09ORklHX1NZU19JTU1SIHwgQkFUVV9CTF8xTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBGTEFTSCAqLwotI2RlZmluZSBDRkdfSUJBVDdMCShDRkdfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUN1UJKENGR19GTEFTSF9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDFMCUNGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVQlDRkdfSUJBVDFVCi0jZGVmaW5lIENGR19EQkFUMkwJQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVCUNGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTAlDRkdfSUJBVDNMCi0jZGVmaW5lIENGR19EQkFUM1UJQ0ZHX0lCQVQzVQotI2RlZmluZSBDRkdfREJBVDRMCUNGR19JQkFUNEwKLSNkZWZpbmUgQ0ZHX0RCQVQ0VQlDRkdfSUJBVDRVCi0jZGVmaW5lIENGR19EQkFUNUwJQ0ZHX0lCQVQ1TAotI2RlZmluZSBDRkdfREJBVDVVCUNGR19JQkFUNVUKLSNkZWZpbmUgQ0ZHX0RCQVQ2TAlDRkdfSUJBVDZMCi0jZGVmaW5lIENGR19EQkFUNlUJQ0ZHX0lCQVQ2VQotI2RlZmluZSBDRkdfREJBVDdMCUNGR19JQkFUN0wKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQlDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCUNPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCUNPTkZJR19TWVNfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMCUNPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVCUNPTkZJR19TWVNfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCUNPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCUNPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMCUNPTkZJR19TWVNfSUJBVDNMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVCUNPTkZJR19TWVNfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMCUNPTkZJR19TWVNfSUJBVDRMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRVCUNPTkZJR19TWVNfSUJBVDRVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVMCUNPTkZJR19TWVNfSUJBVDVMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVVCUNPTkZJR19TWVNfSUJBVDVVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMCUNPTkZJR19TWVNfSUJBVDZMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVCUNPTkZJR19TWVNfSUJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdMCUNPTkZJR19TWVNfSUJBVDdMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdVCUNPTkZJR19TWVNfSUJBVDdVCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1RRTTg1MEwuaCBiL2luY2x1ZGUvY29uZmlncy9UUU04NTBMLmgKaW5kZXggNDczYzM5MC4uNGFhOGRiOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RRTTg1MEwuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODUwTC5oCkBAIC04MCw3ICs4MCw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZsYXNoX3NlbGYiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTEyMywzMiArMTIzLDMyIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE1OCw0NyArMTU4LDQ3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCiAKIC8qIHVzZSBDRkkgZmxhc2ggZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UrZmxhc2hfaW5mb1swXS5zaXplIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRStmbGFzaF9pbmZvWzBdLnNpemUgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJMHg4MDAwCS8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yMDgsNyArMjA4LDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECShDT05GSUdfRU5WX09GRlNFVCtDT05GSUdfRU5WX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJCS8qIE1ha2Ugc3VyZSB0byByZW1hcCBmbGFzaGVzIGNvcnJlY3RseSAqLwogCkBAIC0yMjcsMTYgKzIyNywxNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwotI2RlZmluZSBDRkdfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNDYsMTAgKzI0NiwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjU4LDkgKzI1OCw5IEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2OCwyMCArMjY4LDIwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjg5LDcgKzI4OSw3IEBACiAgKiBSZXNldCBQTEwgbG9jayBzdGF0dXMgc3RpY2t5IGJpdCwgdGltZXIgZXhwaXJlZCBzdGF0dXMgYml0IGFuZCB0aW1lcgogICogaW50ZXJydXB0IHN0YXR1cyBiaXQKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0yOTgsNyArMjk4LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogCkBAIC0zMDcsMTQgKzMwNywxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0zMjcsMjggKzMyNywyOCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzYzLDIyICszNjMsMjIgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzoKICAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCiAJCQkJIE9SX1NDWV8zX0NMSyB8IE9SX0VIVFIgfCBPUl9CSSkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtMzg5LDE5ICszODksMTkgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lCUNGR19PUjNfUFJFTElNCUNGR19PUjJfUFJFTElNCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogI2Vsc2UJLyogQ0FOIHVzZXMgQ1MzIywgc28gd2UgY2FuIGhhdmUgb25seSBvbmUgU0RSQU0gYmFuayBhbnl3YXkgKi8KLSNkZWZpbmUJQ0ZHX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLwotI2RlZmluZSBDRkdfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KLSNkZWZpbmUgQ0ZHX09SM19DQU4JCShDRkdfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlIzX0NBTgkJKChDRkdfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZQlDT05GSUdfU1lTX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX0NBTgkJKENPTkZJR19TWVNfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19DQU4JCSgoQ09ORklHX1NZU19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJCUJSX1BTXzggfCBCUl9NU19VUE1CIHwgQlJfViApCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIApAQCAtNDMyLDM0ICs0MzIsMzQgQEAKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCiAKLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk4CisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTk4CiAKIC8qCiAgKiBGb3IgMTYgTUJpdCwgcmVmcmVzaCByYXRlcyBjb3VsZCBiZSAzMS4zIHVzCiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9UUU04NTBNLmggYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODUwTS5oCmluZGV4IDRkZTVhMzMuLmNlNWRjYzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9UUU04NTBNLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RRTTg1ME0uaApAQCAtNzgsNyArNzgsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMjIsMzIgKzEyMiwzMiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNTcsNDcgKzE1Nyw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4NDAwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTIwOCw3ICsyMDgsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUK0NPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCQkvKiBNYWtlIHN1cmUgdG8gcmVtYXAgZmxhc2hlcyBjb3JyZWN0bHkgKi8KIApAQCAtMjI3LDE2ICsyMjcsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjQ2LDEwICsyNDYsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1OCw5ICsyNTgsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjgsMjAgKzI2OCwyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI4OSw3ICsyODksNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0CiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMjk4LDcgKzI5OCw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKIApAQCAtMzA3LDE0ICszMDcsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzI3LDI4ICszMjcsMjggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM2MywyMiArMzYzLDIyIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAogCQkJCSBPUl9TQ1lfM19DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTM4OSwxOSArMzg5LDE5IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lCUNPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lCUNGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUJQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTQzMiwzNCArNDMyLDM0IEBACiAgKiA4MCBNaHogPT4gODAuMDAwLjAwMCAvIERpdmlkZXIgPSAxNTYKICAqLwogCi0jZGVmaW5lIENGR19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCi0jZGVmaW5lIENGR19NQU1SX1BUQQk5OAorI2RlZmluZSBDT05GSUdfU1lTX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5OAogCiAvKgogICogRm9yIDE2IE1CaXQsIHJlZnJlc2ggcmF0ZXMgY291bGQgYmUgMzEuMyB1cwogICogKD0gNjQgbXMgLyAySyA9IDEyNSAvIHF1YWQgYnVyc3RzKS4KICAqIEZvciBhIHNpbXBsZXIgaW5pdGlhbGl6YXRpb24sIDE1LjYgdXMgaXMgdXNlZCBpbnN0ZWFkLgogICoKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCi0gKiAjZGVmaW5lIENGR19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODU1TC5oIGIvaW5jbHVkZS9jb25maWdzL1RRTTg1NUwuaAppbmRleCAyYmE5NGM4Li4wMTJlMjAzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODU1TC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9UUU04NTVMLmgKQEAgLTgzLDcgKzgzLDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gZmxhc2hfc2VsZiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTI4LDMyICsxMjgsMzIgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTYzLDQ3ICsxNjMsNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KIAogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRStmbGFzaF9pbmZvWzBdLnNpemUgfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfT0ZGU0VUCQkweDgwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTIxMyw3ICsyMTMsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUK0NPTkZJR19FTlZfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkoQ09ORklHX0VOVl9TSVpFKQogCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkJLyogTWFrZSBzdXJlIHRvIHJlbWFwIGZsYXNoZXMgY29ycmVjdGx5ICovCiAKQEAgLTIzMiwxNiArMjMyLDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1MSwxMCArMjUxLDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjMsOSArMjYzLDkgQEAKICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjczLDIwICsyNzMsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yOTQsNyArMjk0LDcgQEAKICAqIFJlc2V0IFBMTCBsb2NrIHN0YXR1cyBzdGlja3kgYml0LCB0aW1lciBleHBpcmVkIHN0YXR1cyBiaXQgYW5kIHRpbWVyCiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdAogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTMwMyw3ICszMDMsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCiAKQEAgLTMxMiwxNCArMzEyLDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTMzMiwyOCArMzMyLDI4IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNjgsMjIgKzM2OCwyMiBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOgogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgT1JfU0NZXzNfQ0xLIHwgT1JfRUhUUiB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyoKICAqIEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCkBAIC0zOTQsMTkgKzM5NCwxOSBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUJQ0ZHX09SM19QUkVMSU0JQ0ZHX09SMl9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZQlDT05GSUdfU1lTX09SM19QUkVMSU0JQ09ORklHX1NZU19PUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAjZWxzZQkvKiBDQU4gdXNlcyBDUzMjLCBzbyB3ZSBjYW4gaGF2ZSBvbmx5IG9uZSBTRFJBTSBiYW5rIGFueXdheSAqLwotI2RlZmluZQlDRkdfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCi0jZGVmaW5lIENGR19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLwotI2RlZmluZSBDRkdfT1IzX0NBTgkJKENGR19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCi0jZGVmaW5lIENGR19CUjNfQ0FOCQkoKENGR19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCisjZGVmaW5lCUNPTkZJR19TWVNfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfQ0FOCQkoQ09ORklHX1NZU19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX0NBTgkJKChDT05GSUdfU1lTX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKIAkJCQkJQlJfUFNfOCB8IEJSX01TX1VQTUIgfCBCUl9WICkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCkBAIC00MzcsMzQgKzQzNywzNCBAQAogICogODAgTWh6ID0+IDgwLjAwMC4wMDAgLyBEaXZpZGVyID0gMTU2CiAgKi8KIAotI2RlZmluZSBDRkdfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQotI2RlZmluZSBDRkdfTUFNUl9QVEEJOTgKKyNkZWZpbmUgQ09ORklHX1NZU19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJOTgKIAogLyoKICAqIEZvciAxNiBNQml0LCByZWZyZXNoIHJhdGVzIGNvdWxkIGJlIDMxLjMgdXMKICAqICg9IDY0IG1zIC8gMksgPSAxMjUgLyBxdWFkIGJ1cnN0cykuCiAgKiBGb3IgYSBzaW1wbGVyIGluaXRpYWxpemF0aW9uLCAxNS42IHVzIGlzIHVzZWQgaW5zdGVhZC4KICAqCi0gKiAjZGVmaW5lIENGR19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcwotICogI2RlZmluZSBDRkdfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuaworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuawogICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1RRTTg1NU0uaCBiL2luY2x1ZGUvY29uZmlncy9UUU04NTVNLmgKaW5kZXggNzY5OWQ1MS4uODQ4ODllYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RRTTg1NU0uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODU1TS5oCkBAIC04Myw3ICs4Myw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZsYXNoX3NlbGYiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTk1LDggKzk1LDggQEAKICN1bmRlZglDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjZGVmaW5lCUNPTkZJR19TT0ZUX0kyQyAgICAgICAgIDEJLyogSTJDIGJpdC1iYW5nZWQJCSovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJOTMwMDAJLyogOTMga0h6IGlzIHN1cHBvc2VkIHRvIHdvcmsJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHhGRQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJOTMwMDAJLyogOTMga0h6IGlzIHN1cHBvc2VkIHRvIHdvcmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUKIAogI2lmZGVmIENPTkZJR19TT0ZUX0kyQwogLyoKQEAgLTExNiwxMiArMTE2LDEyIEBACiAjZGVmaW5lIEkyQ19ERUxBWQl1ZGVsYXkoMikJLyogMS80IEkyQyBjbG9jayBkdXJhdGlvbiAqLwogI2VuZGlmCS8qIENPTkZJR19TT0ZUX0kyQyAqLwogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkJLyogRUVQUk9NIEFUMjRDNjQJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMgkJLyogdHdvIGJ5dGUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiBFRVBST00gQVQyNEM2NAkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMgkJLyogdHdvIGJ5dGUgYWRkcmVzcwkqLwogI2lmIDAKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIHRha2VzIHVwIHRvIDEwIG1zZWMJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVyAweDAxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTUKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiB0YWtlcyB1cCB0byAxMCBtc2VjCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XIDB4MDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTUKICNlbmRpZgogCiAvKgpAQCAtMTYyLDMyICsxNjIsMzIgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTk3LDQ3ICsxOTcsNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KIAogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfT0ZGU0VUCQkweDQwMDAwCS8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yNDgsNyArMjQ4LDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECShDT05GSUdfRU5WX09GRlNFVCtDT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkoQ09ORklHX0VOVl9TSVpFKQogCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkJLyogTWFrZSBzdXJlIHRvIHJlbWFwIGZsYXNoZXMgY29ycmVjdGx5ICovCiAKQEAgLTI2NywxNiArMjY3LDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI4NiwxMCArMjg2LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yOTgsOSArMjk4LDkgQEAKICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzA4LDIwICszMDgsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0zMjksNyArMzI5LDcgQEAKICAqIFJlc2V0IFBMTCBsb2NrIHN0YXR1cyBzdGlja3kgYml0LCB0aW1lciBleHBpcmVkIHN0YXR1cyBiaXQgYW5kIHRpbWVyCiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdAogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTMzOCw3ICszMzgsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCiAKQEAgLTM0NywxNCArMzQ3LDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTM2NywyOCArMzY3LDI4IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC00MDMsMjIgKzQwMywyMiBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOgogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgT1JfU0NZXzNfQ0xLIHwgT1JfRUhUUiB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyoKICAqIEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCkBAIC00MjksMTkgKzQyOSwxOSBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUJQ0ZHX09SM19QUkVMSU0JQ0ZHX09SMl9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZQlDT05GSUdfU1lTX09SM19QUkVMSU0JQ09ORklHX1NZU19PUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAjZWxzZQkvKiBDQU4gdXNlcyBDUzMjLCBzbyB3ZSBjYW4gaGF2ZSBvbmx5IG9uZSBTRFJBTSBiYW5rIGFueXdheSAqLwotI2RlZmluZQlDRkdfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCi0jZGVmaW5lIENGR19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLwotI2RlZmluZSBDRkdfT1IzX0NBTgkJKENGR19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCi0jZGVmaW5lIENGR19CUjNfQ0FOCQkoKENGR19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCisjZGVmaW5lCUNPTkZJR19TWVNfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfQ0FOCQkoQ09ORklHX1NZU19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX0NBTgkJKChDT05GSUdfU1lTX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKIAkJCQkJQlJfUFNfOCB8IEJSX01TX1VQTUIgfCBCUl9WICkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCkBAIC00NzIsMzQgKzQ3MiwzNCBAQAogICogODAgTWh6ID0+IDgwLjAwMC4wMDAgLyBEaXZpZGVyID0gMTU2CiAgKi8KIAotI2RlZmluZSBDRkdfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQotI2RlZmluZSBDRkdfTUFNUl9QVEEJOTgKKyNkZWZpbmUgQ09ORklHX1NZU19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJOTgKIAogLyoKICAqIEZvciAxNiBNQml0LCByZWZyZXNoIHJhdGVzIGNvdWxkIGJlIDMxLjMgdXMKICAqICg9IDY0IG1zIC8gMksgPSAxMjUgLyBxdWFkIGJ1cnN0cykuCiAgKiBGb3IgYSBzaW1wbGVyIGluaXRpYWxpemF0aW9uLCAxNS42IHVzIGlzIHVzZWQgaW5zdGVhZC4KICAqCi0gKiAjZGVmaW5lIENGR19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcwotICogI2RlZmluZSBDRkdfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuaworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuawogICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1RRTTg1eHguaCBiL2luY2x1ZGUvY29uZmlncy9UUU04NXh4LmgKaW5kZXggN2VjYmI3ZS4uYjA1ZjQzZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RRTTg1eHguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODV4eC5oCkBAIC0xMDgsMzQgKzEwOCwzNCBAQAogI2RlZmluZSBDT05GSUdfQlRCCQkJLyogdG9nZ2xlIGJyYW5jaCBwcmVkaXRpb24JKi8KICNkZWZpbmUgQ09ORklHX0FERFJfU1RSRUFNSU5HCQkvKiB0b2dnbGUgYWRkciBzdHJlYW1pbmcJKi8KIAotI2RlZmluZSBDRkdfSU5JVF9EQkNSIERCQ1JfSURNCQkvKiBFbmFibGUgRGVidWcgRXhjZXB0aW9ucwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfREJDUiBEQkNSX0lETQkJLyogRW5hYmxlIERlYnVnIEV4Y2VwdGlvbnMJKi8KIAotI3VuZGVmCUNGR19EUkFNX1RFU1QJCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgxMDAwMDAwMAorI3VuZGVmCUNPTkZJR19TWVNfRFJBTV9URVNUCQkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgxMDAwMDAwMAogCiAvKgogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4RkY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4RkY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0CSovCiAjaWZkZWYgQ09ORklHX1RRTV9CSUdGTEFTSAotI2RlZmluZSBDRkdfQ0NTUkJBUgkgCTB4QTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCSAJMHhBMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUgkqLwogI2Vsc2UgLyogIUNPTkZJR19UUU1fQklHRkxBU0ggKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVIJCTB4RTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweEUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSCSovCiAjZW5kaWYgLyogQ09ORklHX1RRTV9CSUdGTEFTSCAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9QSFlTCUNGR19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfSU1NUgkJQ0ZHX0NDU1JCQVIJLyogUFFJSSB1c2VzIENGR19JTU1SCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUgkqLwogCi0jZGVmaW5lIENGR19QQ0kxX0FERFIJCShDRkdfQ0NTUkJBUiArIDB4ODAwMCkKLSNkZWZpbmUgQ0ZHX1BDSTJfQUREUgkJKENGR19DQ1NSQkFSICsgMHg5MDAwKQotI2RlZmluZSBDRkdfUENJRTFfQUREUgkJKENGR19DQ1NSQkFSICsgMHhhMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUiArIDB4ODAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIgKyAweDkwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUiArIDB4YTAwMCkKIAogLyoKICAqIEREUiBTZXR1cAogICovCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5CSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKICNkZWZpbmUgQ09ORklHX0RJTU1fU0xPVFNfUEVSX0NUTFIJMQpAQCAtMTY1LDE2ICsxNjUsMTYgQEAKICAqIEZsYXNoIG9uIHRoZSBMb2NhbCBCdXMKICAqLwogI2lmZGVmIENPTkZJR19UUU1fQklHRkxBU0gKLSNkZWZpbmUgQ0ZHX0ZMQVNIMAkJMHhFMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gxCQkweEMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwCQkweEUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxCQkweEMwMDAwMDAwCiAjZWxzZSAvKiAhQ09ORklHX1RRTV9CSUdGTEFTSCAqLwotI2RlZmluZSBDRkdfRkxBU0gwCQkweEZDMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDEJCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDAJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDEJCTB4RjgwMDAwMDAKICNlbmRpZiAvKiBDT05GSUdfVFFNX0JJR0ZMQVNIICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIMSwgQ0ZHX0ZMQVNIMCB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0gxLCBDT05GSUdfU1lTX0ZMQVNIMCB9CiAKLSNkZWZpbmUgQ0ZHX0xCQ19GTEFTSF9CQVNFCUNGR19GTEFTSDEJLyogTG9jYWxidXMgZmxhc2ggc3RhcnQJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19MQkNfRkxBU0hfQkFTRSAgLyogc3RhcnQgb2YgRkxBU0gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfRkxBU0hfQkFTRQlDT05GSUdfU1lTX0ZMQVNIMQkvKiBMb2NhbGJ1cyBmbGFzaCBzdGFydAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfTEJDX0ZMQVNIX0JBU0UgIC8qIHN0YXJ0IG9mIEZMQVNICSovCiAKIC8qIERlZmF1bHQgT1J4IHRpbWluZ3MgYXJlIGZvciA8PSA0MS43IE1IeiBMb2NhbCBCdXMgQ2xvY2suCiAgKgpAQCAtMTgzLDcgKzE4Myw3IEBACiAgKgogICogRm9yIG90aGVyIExvY2FsIEJ1cyBDbG9ja3Mgc2VlIGZvbGxvd2luZyB0YWJsZToKICAqCi0gKiBDbG9jay9NSHogICBDRkdfT1J4X1BSRUxJTQorICogQ2xvY2svTUh6ICAgQ09ORklHX1NZU19PUnhfUFJFTElNCiAgKiAxNjYgICAgICAgICAweC4uLi4uQ0E1CiAgKiAxMzMgICAgICAgICAweC4uLi4uQzg1CiAgKiAxMDAgICAgICAgICAweC4uLi4uQzY1CkBAIC0xOTYsNTYgKzE5Niw1NiBAQAogICoKICAqLwogI2lmZGVmIENPTkZJR19UUU1fQklHRkxBU0gKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCTB4RTAwMDE4MDEJLyogcG9ydCBzaXplIDMyYml0CSovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweEUwMDAwMDQwCS8qIDUxMk1CIEZsYXNoCQkqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhDMDAwMTgwMQkvKiBwb3J0IHNpemUgMzJiaXQJKi8KLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4RTAwMDAwNDAJLyogNTEyTUIgRmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJMHhFMDAwMTgwMQkvKiBwb3J0IHNpemUgMzJiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweEUwMDAwMDQwCS8qIDUxMk1CIEZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCTB4QzAwMDE4MDEJLyogcG9ydCBzaXplIDMyYml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhFMDAwMDA0MAkvKiA1MTJNQiBGbGFzaAkJKi8KICNlbHNlIC8qICFDT05GSUdfVFFNX0JJR0ZMQVNIICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkweGZjMDAxODAxCS8qIHBvcnQgc2l6ZSAzMmJpdAkqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhmYzAwMDA0MAkvKiA2NE1CIEZsYXNoCQkqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhmODAwMTgwMQkvKiBwb3J0IHNpemUgMzJiaXQJKi8KLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4ZmMwMDAwNDAJLyogNjRNQiBGbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweGZjMDAxODAxCS8qIHBvcnQgc2l6ZSAzMmJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZmMwMDAwNDAJLyogNjRNQiBGbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkweGY4MDAxODAxCS8qIHBvcnQgc2l6ZSAzMmJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCTB4ZmMwMDAwNDAJLyogNjRNQiBGbGFzaAkJKi8KICNlbmRpZiAvKiBDT05GSUdfVFFNX0JJR0ZMQVNIICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCS8qIGZsYXNoIGlzIENGSSBjb21wYXQuCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCS8qIGZsYXNoIGlzIENGSSBjb21wYXQuCQkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyCSovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvcgkqLwotI2RlZmluZSBDRkdfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMSAvKiBzcGVlZCB1cCBvdXRwdXQgdG8gRmxhc2gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBmbGFzaCovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxIC8qIHNwZWVkIHVwIG91dHB1dCB0byBGbGFzaAkqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBudW1iZXIgb2YgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogc2VjdG9ycyBwZXIgZGV2aWNlCQkqLwotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG51bWJlciBvZiBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogc2VjdG9ycyBwZXIgZGV2aWNlCQkqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKQkqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KIAogLyoKICAqIE5vdGU6IHdoZW4gY2hhbmdpbmcgdGhlIExvY2FsIEJ1cyBjbG9jayBkaXZpZGVyIHlvdSBoYXZlIHRvCi0gKiBjaGFuZ2UgdGhlIHRpbWluZyB2YWx1ZXMgaW4gQ0ZHX09SeF9QUkVMSU0uCisgKiBjaGFuZ2UgdGhlIHRpbWluZyB2YWx1ZXMgaW4gQ09ORklHX1NZU19PUnhfUFJFTElNLgogICoKICAqIExDUlJbMDA6MDNdIENMS0RJVjogU3lzdGVtIChDQ0IpIGNsb2NrIGRpdmlkZXIuIFZhbGlkIHZhbHVlcyBhcmUgMiwgNCwgOC4KICAqIExDUlJbMTY6MTddIEVBREMgIDogRXh0ZXJuYWwgYWRkcmVzcyBkZWxheSBjeWNsZXMuIEl0IHNob3VsZCBiZSBzZXQgdG8gMgogICogICAgICAgICAgICAgICAgICAgICBmb3IgTG9jYWwgQnVzIENsb2NrID4gODMuMyBNSHouCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MQ1JSCQkweDAwMDMwMDA4CS8qIExCIGNsb2NrIHJhdGlvIHJlZwkqLwotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAJLyogTEIgY29uZmlnIHJlZwkqLwotI2RlZmluZSBDRkdfTEJDX0xTUlQJCTB4MjAwMDAwMDAJLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLwotI2RlZmluZSBDRkdfTEJDX01SVFBSCQkweDIwMDAwMDAwCS8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2MuKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTENSUgkJMHgwMDAzMDAwOAkvKiBMQiBjbG9jayByYXRpbyByZWcJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMAkvKiBMQiBjb25maWcgcmVnCSovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJCTB4MjAwMDAwMDAJLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkJMHgyMDAwMDAwMAkvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjLiovCiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJKENGR19DQ1NSQkFSIFwKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCShDT05GSUdfU1lTX0NDU1JCQVIgXAogCQkJCSArIDB4MDQwMTAwMDApCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIHVzZWQgYXJlYSBpbiBSQU0JKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSh+VEVYVF9CQVNFICsgMSkvKiBSZXNlcnZlZCBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDM4NCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKH5URVhUX0JBU0UgKyAxKS8qIFJlc2VydmVkIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDM4NCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MJKi8KIAogLyogU2VyaWFsIFBvcnQgKi8KICNpZiBkZWZpbmVkKENPTkZJR19UUU04NTYwKQpAQCAtMjU4LDMyICsyNTgsMzIgQEAKIAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWCAgICAgMQogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfQ0NTUkJBUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19DQ1NSQkFSKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0NDU1JCQVIrMHg0NjAwKQogCiAvKiBQUy8yIEtleWJvYXJkICovCiAjZGVmaW5lIENPTkZJR19QUzJLQkQJCQkvKiBBVC1QUy8yIEtleWJvYXJkCQkqLwogI2RlZmluZSBDT05GSUdfUFMyTVVMVAkJCS8qIC4uIG9uIFBTLzIgTXVsdGlwbGV4ZXIJKi8KICNkZWZpbmUgQ09ORklHX1BTMlNFUklBTAkyCS8qIC4uIG9uIERVQVJUMgkJCSovCi0jZGVmaW5lIENPTkZJR19QUzJNVUxUX0RFTEFZCShDRkdfSFovMikJLyogSW5pdGlhbCBkZWxheQkqLworI2RlZmluZSBDT05GSUdfUFMyTVVMVF9ERUxBWQkoQ09ORklHX1NZU19IWi8yKQkvKiBJbml0aWFsIGRlbGF5CSovCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IJMQogCiAjZW5kaWYgLyogQ09ORklHX1RRTTg1NjAgKi8KIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAxMTUyMDB9CiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCkBAIC0yOTIsMTIgKzI5MiwxMiBAQAogI2RlZmluZSBDT05GSUdfT0ZfU1RET1VUX1ZJQV9BTElBUwkxCiAKIC8qIENBTiAqLwotI2RlZmluZSBDRkdfQ0FOX0JBU0UJCShDRkdfQ0NTUkJBUiBcCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOX0JBU0UJCShDT05GSUdfU1lTX0NDU1JCQVIgXAogCQkJCSArIDB4MDMwMDAwMDApCS8qIENBTiBiYXNlIGFkZHJlc3MgICAgICovCiAjaWZkZWYgQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBLaUIgYWRkcmVzcyBtYXNrICAqLwotI2RlZmluZSBDRkdfT1IyX0NBTgkJKENGR19DQU5fT1JfQU0gfCBPUl9VUE1fQkkpCi0jZGVmaW5lIENGR19CUjJfQ0FOCQkoKENGR19DQU5fQkFTRSAmIEJSX0JBKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIgS2lCIGFkZHJlc3MgbWFzayAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfQ0FOCQkoQ09ORklHX1NZU19DQU5fT1JfQU0gfCBPUl9VUE1fQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX0NBTgkJKChDT05GSUdfU1lTX0NBTl9CQVNFICYgQlJfQkEpIHwgXAogCQkJCSBCUl9QU184IHwgQlJfTVNfVVBNQyB8IEJSX1YpCiAjZW5kaWYgLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIApAQCAtMzA3LDQyICszMDcsNDIgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMJCQkvKiBVc2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyCSovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4NDh9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzCSovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4NDh9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCiAKIC8qIEkyQyBSVEMgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMzcJCS8qIFVzZSBkczEzMzcgcnRjIHZpYSBpMmMJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4CS8qIGF0IGFkZHJlc3MgMHg2OAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAkvKiBhdCBhZGRyZXNzIDB4NjgJCSovCiAKIC8qIEkyQyBFRVBST00gKi8KIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbiBmb3Igb25ib2FyZCBFRVBST00gTTI0QzMyIChNMjRDNjQgc2hvdWxkIHdvcmsgYWxzbykuCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTIKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiA9MzIgQnl0ZXMgcGVyIHdyaXRlCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMJCTEJLyogbW9yZSB0aGFuIG9uZSBlZXByb20JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiA9MzIgQnl0ZXMgcGVyIHdyaXRlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUwkJMQkvKiBtb3JlIHRoYW4gb25lIGVlcHJvbQkqLwogCiAvKiBJMkMgU1lTTU9OIChMTTc1KSAqLwogI2RlZmluZSBDT05GSUdfRFRUX0xNNzUJCTEJCS8qIE9OIFNlbWkncyBMTTc1CSovCiAjZGVmaW5lIENPTkZJR19EVFRfU0VOU09SUwl7MH0JCS8qIFNlbnNvciBhZGRyZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0RUVF9NQVhfVEVNUAk3MAotI2RlZmluZSBDRkdfRFRUX0xPV19URU1QCS0zMAotI2RlZmluZSBDRkdfRFRUX0hZU1RFUkVTSVMJMworI2RlZmluZSBDT05GSUdfU1lTX0RUVF9NQVhfVEVNUAk3MAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9MT1dfVEVNUAktMzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUwkzCiAKICNpZm5kZWYgQ09ORklHX1BDSUUxCiAvKiBSYXBpZElPIE1NVSAqLwogI2lmZGVmIENPTkZJR19UUU1fQklHRkxBU0gKLSNkZWZpbmUgQ0ZHX1JJT19NRU1fQkFTRQkweGIwMDAwMDAwCS8qIGJhc2UgYWRkcmVzcwkJKi8KLSNkZWZpbmUgQ0ZHX1JJT19NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fQkFTRQkweGIwMDAwMDAwCS8qIGJhc2UgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNCQkJKi8KICNlbHNlIC8qICFDT05GSUdfVFFNX0JJR0ZMQVNIICovCi0jZGVmaW5lIENGR19SSU9fTUVNX0JBU0UJMHhjMDAwMDAwMAkvKiBiYXNlIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19SSU9fTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UJMHhjMDAwMDAwMAkvKiBiYXNlIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTQkJCSovCiAjZW5kaWYgLyogQ09ORklHX1RRTV9CSUdGTEFTSCAqLwotI2RlZmluZSBDRkdfUklPX01FTV9QSFlTCUNGR19SSU9fTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX1BIWVMJQ09ORklHX1NZU19SSU9fTUVNX0JBU0UKICNlbmRpZiAvKiBDT05GSUdfUENJRTEgKi8KIAogLyogTkFORCBGTEFTSCAqLwpAQCAtMzU1LDM4ICszNTUsMzggQEAKICNkZWZpbmUJQ09ORklHX01URF9OQU5EX0VDQ19KRkZTMgkxCS8qIHVzZSBKRkZTMiBFQ0MJKi8KIAogLyogYWRkcmVzcyBkaXN0YW5jZSBiZXR3ZWVuIGNoaXAgc2VsZWN0cyAqLwotI2RlZmluZQlDRkdfTkFORF9TRUxFQ1RfREVWSUNFCTEKLSNkZWZpbmUJQ0ZHX05BTkRfQ1NfRElTVAkweDIwMAorI2RlZmluZQlDT05GSUdfU1lTX05BTkRfU0VMRUNUX0RFVklDRQkxCisjZGVmaW5lCUNPTkZJR19TWVNfTkFORF9DU19ESVNUCTB4MjAwCiAKLSNkZWZpbmUgQ0ZHX05BTkRfU0laRQkJMHg4MDAwCi0jZGVmaW5lIENGR19OQU5EMF9CQVNFCQkoQ0ZHX0NDU1JCQVIgKyAweDAzMDEwMDAwKQotI2RlZmluZSBDRkdfTkFORDFfQkFTRQkJKENGR19OQU5EMF9CQVNFICsgQ0ZHX05BTkRfQ1NfRElTVCkKLSNkZWZpbmUgQ0ZHX05BTkQyX0JBU0UJCShDRkdfTkFORDFfQkFTRSArIENGR19OQU5EX0NTX0RJU1QpCi0jZGVmaW5lIENGR19OQU5EM19CQVNFCQkoQ0ZHX05BTkQyX0JBU0UgKyBDRkdfTkFORF9DU19ESVNUKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfU0laRQkJMHg4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDBfQkFTRQkJKENPTkZJR19TWVNfQ0NTUkJBUiArIDB4MDMwMTAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDFfQkFTRQkJKENPTkZJR19TWVNfTkFORDBfQkFTRSArIENPTkZJR19TWVNfTkFORF9DU19ESVNUKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkQyX0JBU0UJCShDT05GSUdfU1lTX05BTkQxX0JBU0UgKyBDT05GSUdfU1lTX05BTkRfQ1NfRElTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EM19CQVNFCQkoQ09ORklHX1NZU19OQU5EMl9CQVNFICsgQ09ORklHX1NZU19OQU5EX0NTX0RJU1QpCiAKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRSAgICAgMgkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRSAgICAgMgkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcwkqLwogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJMQogCi0jaWYgKENGR19NQVhfTkFORF9ERVZJQ0UgPT0gMSkKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRV9MSVNUIHsgQ0ZHX05BTkQwX0JBU0UgfQotI2VsaWYgKENGR19NQVhfTkFORF9ERVZJQ0UgPT0gMikKLSNkZWZpbmUJQ0ZHX05BTkRfUVVJRVRfVEVTVAkxCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVCB7IENGR19OQU5EMF9CQVNFLCBcCi0JCQkgICAgIENGR19OQU5EMV9CQVNFLCBcCisjaWYgKENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFID09IDEpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFX0xJU1QgeyBDT05GSUdfU1lTX05BTkQwX0JBU0UgfQorI2VsaWYgKENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFID09IDIpCisjZGVmaW5lCUNPTkZJR19TWVNfTkFORF9RVUlFVF9URVNUCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0VfTElTVCB7IENPTkZJR19TWVNfTkFORDBfQkFTRSwgXAorCQkJICAgICBDT05GSUdfU1lTX05BTkQxX0JBU0UsIFwKIH0KLSNlbGlmIChDRkdfTUFYX05BTkRfREVWSUNFID09IDQpCi0jZGVmaW5lCUNGR19OQU5EX1FVSUVUX1RFU1QJMQotI2RlZmluZSBDRkdfTkFORF9CQVNFX0xJU1QgeyBDRkdfTkFORDBfQkFTRSwgXAotCQkJICAgICBDRkdfTkFORDFfQkFTRSwgXAotCQkJICAgICBDRkdfTkFORDJfQkFTRSwgXAotCQkJICAgICBDRkdfTkFORDNfQkFTRSwgXAorI2VsaWYgKENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFID09IDQpCisjZGVmaW5lCUNPTkZJR19TWVNfTkFORF9RVUlFVF9URVNUCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0VfTElTVCB7IENPTkZJR19TWVNfTkFORDBfQkFTRSwgXAorCQkJICAgICBDT05GSUdfU1lTX05BTkQxX0JBU0UsIFwKKwkJCSAgICAgQ09ORklHX1NZU19OQU5EMl9CQVNFLCBcCisJCQkgICAgIENPTkZJR19TWVNfTkFORDNfQkFTRSwgXAogfQogI2VuZGlmCiAKIC8qIENTMyBmb3IgTkFORCBGbGFzaCAqLwotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkJKChDRkdfTkFORDBfQkFTRSAmIEJSX0JBKSB8IEJSX1BTXzggfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkJKChDT05GSUdfU1lTX05BTkQwX0JBU0UgJiBCUl9CQSkgfCBCUl9QU184IHwgXAogCQkJCSBCUl9NU19VUE1CIHwgQlJfVikKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JCShQMlNaX1RPX0FNKENGR19OQU5EX1NJWkUpIHwgT1JfVVBNX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCShQMlNaX1RPX0FNKENPTkZJR19TWVNfTkFORF9TSVpFKSB8IE9SX1VQTV9CSSkKIAogI2RlZmluZSBOQU5EX0JJR19ERUxBWV9VUyAgICAgICAyNQkvKiBtYXggdFIgZm9yIFNhbXN1bmcgZGV2aWNlcwkqLwogCkBAIC0zOTYsMTcgKzM5NiwxNyBAQAogICogR2VuZXJhbCBQQ0kKICAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KICAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTQkJCSovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJKENGR19DQ1NSQkFSICsgMHgwMjAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwlDRkdfUENJMV9JT19CQVNFCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgxMDAwMDAwCS8qICAxNk0JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkoQ09ORklHX1NZU19DQ1NSQkFSICsgMHgwMjAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMJQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgxMDAwMDAwCS8qICAxNk0JCQkqLwogCiAvKiBQQ0kgdmlldyBvZiBTeXN0ZW0gTWVtb3J5ICovCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX0JVUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1BIWVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9TSVpFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUJMHg4MDAwMDAwMAogCiAjaWZkZWYgQ09ORklHX1BDSUUxCiAvKgpAQCAtNDE0LDE3ICs0MTQsMTcgQEAKICAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KICAqLwogI2lmZGVmIENPTkZJR19UUU1fQklHRkxBU0gKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9CQVNFCTB4YjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9TSVpFCTB4MTAwMDAwMDAgICAgICAvKiA1MTJNICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJRTFfSU9fQkFTRQkweGFmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UJMHhiMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFCTB4MTAwMDAwMDAgICAgICAvKiA1MTJNICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UJMHhhZjAwMDAwMAogI2Vsc2UgLyogIUNPTkZJR19UUU1fQklHRkxBU0ggKi8KLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9CQVNFCTB4YzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9TSVpFCTB4MjAwMDAwMDAgICAgICAvKiA1MTJNICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJRTFfSU9fQkFTRQkweGVmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UJMHhjMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFCTB4MjAwMDAwMDAgICAgICAvKiA1MTJNICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UJMHhlZjAwMDAwMAogI2VuZGlmIC8qIENPTkZJR19UUU1fQklHRkxBU0ggKi8KLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9QSFlTCUNGR19QQ0lFMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJRTFfSU9fUEhZUwlDRkdfUENJRTFfSU9fQkFTRQotI2RlZmluZSBDRkdfUENJRTFfSU9fU0laRQkweDEwMDAwMDAgICAgICAgLyogMTZNICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfSU9fUEhZUwlDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9JT19TSVpFCTB4MTAwMDAwMCAgICAgICAvKiAxNk0gICAgICAgICAgICAgICAgICAqLwogI2VuZGlmIC8qIENPTkZJR19QQ0lFMSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQpAQCAtNDM1LDcgKzQzNSw3IEBACiAjdW5kZWYgQ09ORklHX1RVTElQCiAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NwkvKiBNb3Rvcm9sYQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcJLyogTW90b3JvbGEJCQkqLwogCiAjZW5kaWYgLyogQ09ORklHX1BDSSAqLwogCkBAIC01MjksMjkgKzUyOSwyOSBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkNDKSAmJiAoQ09ORklHX0VUSEVSX0lOREVYID09IDEpCiAjZGVmaW5lIENPTkZJR19FVEhFUl9PTl9GQ0MxCi0jZGVmaW5lIENGR19DTVhGQ1JfTUFTSzEJKENNWEZDUl9GQzEgfCBDTVhGQ1JfUkYxQ1NfTVNLIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLMQkoQ01YRkNSX0ZDMSB8IENNWEZDUl9SRjFDU19NU0sgfCBcCiAJCQkJIENNWEZDUl9URjFDU19NU0spCi0jZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUxCShDTVhGQ1JfUkYxQ1NfQ0xLMTEgfCBDTVhGQ1JfVEYxQ1NfQ0xLMTIpCi0jZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUxCShDTVhGQ1JfUkYxQ1NfQ0xLMTEgfCBDTVhGQ1JfVEYxQ1NfQ0xLMTIpCisjZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19FVEhFUl9PTl9GQ0MpICYmIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMikKICNkZWZpbmUgQ09ORklHX0VUSEVSX09OX0ZDQzIKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLMgkoQ01YRkNSX0ZDMiB8IENNWEZDUl9SRjJDU19NU0sgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0syCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IFwKIAkJCQkgQ01YRkNSX1RGMkNTX01TSykKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRTIJKENNWEZDUl9SRjJDU19DTEsxNiB8IENNWEZDUl9URjJDU19DTEsxMykKLSNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSNkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQorI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTIJKENNWEZDUl9SRjJDU19DTEsxNiB8IENNWEZDUl9URjJDU19DTEsxMykKKyNkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0VUSEVSX09OX0ZDQykgJiYgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAzKQogI2RlZmluZSBDT05GSUdfRVRIRVJfT05fRkNDMwotI2RlZmluZSBDRkdfQ01YRkNSX01BU0szCShDTVhGQ1JfRkMzIHwgQ01YRkNSX1JGM0NTX01TSyB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSzMJKENNWEZDUl9GQzMgfCBDTVhGQ1JfUkYzQ1NfTVNLIHwgXAogCQkJCSBDTVhGQ1JfVEYzQ1NfTVNLKQotI2RlZmluZSBDRkdfQ01YRkNSX1ZBTFVFMwkoQ01YRkNSX1JGM0NTX0NMSzE1IHwgQ01YRkNSX1RGM0NTX0NMSzE0KQotI2RlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotI2RlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFMwkoQ01YRkNSX1JGM0NTX0NMSzE1IHwgQ01YRkNSX1RGM0NTX0NMSzE0KQorI2RlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKICNlbmRpZgogCiAvKgpAQCAtNTY0LDEzICs1NjQsMTMgQEAKICNlbHNlIC8qICFDT05GSUdfVFFNX0ZMQVNIX05fVFlQRSAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwIC8qIDEyOEsgKG9uZSBzZWN0b3IpIGZvciBlbnYJKi8KICNlbmRpZiAvKiBDT05GSUdfVFFNX0ZMQVNIX05fVFlQRSAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENPTkZJR19FTlZfQUREUiAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZQlDT05GSUdfVElNRVNUQU1QCS8qIFByaW50IGltYWdlIGluZm8gd2l0aCB0cwkqLwogCkBAIC02MjYsMjggKzYyNiwyOCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUJKENGR19DQlNJWkUgKyBcCi0JCQkgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpICAgLyogUHJpbnQgQnVmIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFICsgXAorCQkJIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikgICAvKiBQcmludCBCdWYgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9UUU04NjBMLmggYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODYwTC5oCmluZGV4IDIzZDBkZDYuLmI2N2NkY2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9UUU04NjBMLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RRTTg2MEwuaApAQCAtODMsNyArODMsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMjcsMzIgKzEyNywzMiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjIsNDcgKzE2Miw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UrZmxhc2hfaW5mb1swXS5zaXplIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4ODAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjEyLDcgKzIxMiw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQrQ09ORklHX0VOVl9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCQkvKiBNYWtlIHN1cmUgdG8gcmVtYXAgZmxhc2hlcyBjb3JyZWN0bHkgKi8KIApAQCAtMjMxLDE2ICsyMzEsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjUwLDEwICsyNTAsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2Miw5ICsyNjIsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzIsMjAgKzI3MiwyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI5Myw3ICsyOTMsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0CiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzAyLDcgKzMwMiw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKIApAQCAtMzExLDE0ICszMTEsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzMxLDI4ICszMzEsMjggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM2NywyMiArMzY3LDIyIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAogCQkJCSBPUl9TQ1lfM19DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTM5MywxOSArMzkzLDE5IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lCUNPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lCUNGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUJQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTQzNiwzNCArNDM2LDM0IEBACiAgKiA4MCBNaHogPT4gODAuMDAwLjAwMCAvIERpdmlkZXIgPSAxNTYKICAqLwogCi0jZGVmaW5lIENGR19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCi0jZGVmaW5lIENGR19NQU1SX1BUQQk5OAorI2RlZmluZSBDT05GSUdfU1lTX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5OAogCiAvKgogICogRm9yIDE2IE1CaXQsIHJlZnJlc2ggcmF0ZXMgY291bGQgYmUgMzEuMyB1cwogICogKD0gNjQgbXMgLyAySyA9IDEyNSAvIHF1YWQgYnVyc3RzKS4KICAqIEZvciBhIHNpbXBsZXIgaW5pdGlhbGl6YXRpb24sIDE1LjYgdXMgaXMgdXNlZCBpbnN0ZWFkLgogICoKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCi0gKiAjZGVmaW5lIENGR19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODYwTS5oIGIvaW5jbHVkZS9jb25maWdzL1RRTTg2ME0uaAppbmRleCBlOGQyZWM0Li40Njg1MmRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODYwTS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9UUU04NjBNLmgKQEAgLTgzLDcgKzgzLDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gZmxhc2hfc2VsZiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTI4LDMyICsxMjgsMzIgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTYzLDQ2ICsxNjMsNDYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KIC8qIHVzZSBDRkkgZmxhc2ggZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJMHg0MDAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjEzLDcgKzIxMyw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQrQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJCS8qIE1ha2Ugc3VyZSB0byByZW1hcCBmbGFzaGVzIGNvcnJlY3RseSAqLwogCkBAIC0yMzIsMTYgKzIzMiwxNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwotI2RlZmluZSBDRkdfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTEsMTAgKzI1MSwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjYzLDkgKzI2Myw5IEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI3MywyMCArMjczLDIwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjk0LDcgKzI5NCw3IEBACiAgKiBSZXNldCBQTEwgbG9jayBzdGF0dXMgc3RpY2t5IGJpdCwgdGltZXIgZXhwaXJlZCBzdGF0dXMgYml0IGFuZCB0aW1lcgogICogaW50ZXJydXB0IHN0YXR1cyBiaXQKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0zMDMsNyArMzAzLDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogCkBAIC0zMTIsMTQgKzMxMiwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0zMzIsMjggKzMzMiwyOCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzY4LDIyICszNjgsMjIgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzoKICAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCiAJCQkJIE9SX1NDWV8zX0NMSyB8IE9SX0VIVFIgfCBPUl9CSSkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtMzk0LDE5ICszOTQsMTkgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDgwMDAwMDAJLyogbWF4IDEyOCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lCUNPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lCUNGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUJQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTQzNywzOCArNDM3LDM4IEBACiAgKiA4MCBNaHogPT4gODAuMDAwLjAwMCAvIERpdmlkZXIgPSAxNTYKICAqLwogCi0jZGVmaW5lIENGR19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCi0jZGVmaW5lIENGR19NQU1SX1BUQQk5OAorI2RlZmluZSBDT05GSUdfU1lTX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5OAogCiAvKgogICogRm9yIDE2IE1CaXQsIHJlZnJlc2ggcmF0ZXMgY291bGQgYmUgMzEuMyB1cwogICogKD0gNjQgbXMgLyAySyA9IDEyNSAvIHF1YWQgYnVyc3RzKS4KICAqIEZvciBhIHNpbXBsZXIgaW5pdGlhbGl6YXRpb24sIDE1LjYgdXMgaXMgdXNlZCBpbnN0ZWFkLgogICoKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCi0gKiAjZGVmaW5lIENGR19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogMTAgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzEwQ09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfMTBDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMiB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTkgIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9UUU04NjJMLmggYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODYyTC5oCmluZGV4IDc0YzgxNWIuLmE3ZmNiMWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9UUU04NjJMLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RRTTg2MkwuaApAQCAtODYsNyArODYsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMzEsMzIgKzEzMSwzMiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjYsNDcgKzE2Niw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UrZmxhc2hfaW5mb1swXS5zaXplIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4ODAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjE2LDcgKzIxNiw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQrQ09ORklHX0VOVl9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCQkvKiBNYWtlIHN1cmUgdG8gcmVtYXAgZmxhc2hlcyBjb3JyZWN0bHkgKi8KIApAQCAtMjM1LDE2ICsyMzUsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjU0LDEwICsyNTQsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2Niw5ICsyNjYsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzYsMjAgKzI3NiwyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI5Nyw3ICsyOTcsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0CiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzA2LDcgKzMwNiw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKIApAQCAtMzE1LDE0ICszMTUsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzM1LDI4ICszMzUsMjggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM3MSwyMiArMzcxLDIyIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAogCQkJCSBPUl9TQ1lfM19DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTM5NywxOSArMzk3LDE5IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lCUNPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lCUNGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUJQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTQ0MSwzNCArNDQxLDM0IEBACiAgKiAxMDAgTWh6ID0+IDEwMC4wMDAuMDAwIC8gRGl2aWRlciA9IDE5NQogICovCiAKLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk4CisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTk4CiAKIC8qCiAgKiBGb3IgMTYgTUJpdCwgcmVmcmVzaCByYXRlcyBjb3VsZCBiZSAzMS4zIHVzCiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9UUU04NjJNLmggYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODYyTS5oCmluZGV4IGE1ZmMzOGQuLmJjZjM3ZDkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9UUU04NjJNLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RRTTg2Mk0uaApAQCAtODYsNyArODYsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMzEsMzIgKzEzMSwzMiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjYsNDcgKzE2Niw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4NDAwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTIxNyw3ICsyMTcsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUK0NPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCQkvKiBNYWtlIHN1cmUgdG8gcmVtYXAgZmxhc2hlcyBjb3JyZWN0bHkgKi8KIApAQCAtMjM2LDE2ICsyMzYsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjU1LDEwICsyNTUsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2Nyw5ICsyNjcsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzcsMjAgKzI3NywyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI5OCw3ICsyOTgsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0CiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzA3LDcgKzMwNyw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKIApAQCAtMzE2LDE0ICszMTYsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzM2LDI4ICszMzYsMjggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM3MiwyMiArMzcyLDIyIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAogCQkJCSBPUl9TQ1lfM19DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTM5OCwxOSArMzk4LDE5IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lCUNPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lCUNGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUJQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTQ0MiwzNCArNDQyLDM0IEBACiAgKiAxMDAgTWh6ID0+IDEwMC4wMDAuMDAwIC8gRGl2aWRlciA9IDE5NQogICovCiAKLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk4CisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTk4CiAKIC8qCiAgKiBGb3IgMTYgTUJpdCwgcmVmcmVzaCByYXRlcyBjb3VsZCBiZSAzMS4zIHVzCiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9UUU04NjZNLmggYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODY2TS5oCmluZGV4IDllMTRkOTkuLjg3ZGMyNjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9UUU04NjZNLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RRTTg2Nk0uaApAQCAtMzcsMTcgKzM3LDE3IEBACiAjZGVmaW5lIENPTkZJR19UUU04NjZNCQkxCS8qIC4uLm9uIGEgVFFNOHh4TSBtb2R1bGUJKi8KIAogI2RlZmluZSBDT05GSUdfOHh4X09TQ0xLCQkxMDAwMDAwMAkvKiAgMTAgTUh6IC0gUExMIGlucHV0IGNsb2NrCSovCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01JTgkJMTUwMDAwMDAJLyogIDE1IE1IeiAtIENQVSBtaW5pbXVtIGNsb2NrCSovCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01BWAkJMTMzMDAwMDAwCS8qIDEzMyBNSHogLSBDUFUgbWF4aW11bSBjbG9jawkqLworI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUlOCQkxNTAwMDAwMAkvKiAgMTUgTUh6IC0gQ1BVIG1pbmltdW0gY2xvY2sJKi8KKyNkZWZpbmUgQ09ORklHX1NZU184eHhfQ1BVQ0xLX01BWAkJMTMzMDAwMDAwCS8qIDEzMyBNSHogLSBDUFUgbWF4aW11bSBjbG9jawkqLwogI2RlZmluZSBDT05GSUdfOHh4X0NQVUNMS19ERUZBVUxUCTUwMDAwMDAwCS8qICA1MCBNSHogLSBDUFUgZGVmYXVsdCBjbG9jawkqLwogCQkJCQkJLyogKGl0IHdpbGwgYmUgdXNlZCBpZiB0aGVyZSBpcyBubwkqLwogCQkJCQkJLyogJ2NwdWNsaycgdmFyaWFibGUgd2l0aCB2YWxpZCB2YWx1ZSkJKi8KIAotI3VuZGVmIENGR19NRUFTVVJFX0NQVUNMSwkJCS8qIE1lYXN1cmUgcmVhbCBjcHUgY2xvY2sJKi8KKyN1bmRlZiBDT05GSUdfU1lTX01FQVNVUkVfQ1BVQ0xLCQkJLyogTWVhc3VyZSByZWFsIGNwdSBjbG9jawkqLwogCQkJCQkJLyogKGZ1bmN0aW9uIG1lYXN1cmVfZ2NsaygpCSovCiAJCQkJCQkvKiB3aWxsIGJlIGNhbGxlZCkJCSovCi0jaWZkZWYgQ0ZHX01FQVNVUkVfQ1BVQ0xLCi0jZGVmaW5lIENGR184WFhfWElOCQkxMDAwMDAwMAkvKiBtZWFzdXJlX2djbGsoKSBuZWVkcyB0aGlzCSovCisjaWZkZWYgQ09ORklHX1NZU19NRUFTVVJFX0NQVUNMSworI2RlZmluZSBDT05GSUdfU1lTXzhYWF9YSU4JCTEwMDAwMDAwCS8qIG1lYXN1cmVfZ2NsaygpIG5lZWRzIHRoaXMJKi8KICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR184eHhfQ09OU19TTUMxCTEJLyogQ29uc29sZSBpcyBvbiBTTUMxCQkqLwpAQCAtOTUsNyArOTUsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMDcsOCArMTA3LDggQEAKICN1bmRlZglDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19TT0ZUX0kyQwkJMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk5MzAwMAkvKiA5MyBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk5MzAwMAkvKiA5MyBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhGRQogCiAjaWZkZWYgQ09ORklHX1NPRlRfSTJDCiAvKgpAQCAtMTI4LDEwICsxMjgsMTAgQEAKICNkZWZpbmUgSTJDX0RFTEFZCXVkZWxheSgyKQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAjZW5kaWYJLyogQ09ORklHX1NPRlRfSTJDICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiBFRVBST00gQVQyNEMyNTYJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgkJLyogdHdvIGJ5dGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiBFRVBST00gQVQyNEMyNTYJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDIJCS8qIHR3byBieXRlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtMTcyLDMyICsxNzIsMzIgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjA3LDQ2ICsyMDcsNDYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KIC8qIHVzZSBDRkkgZmxhc2ggZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg0MDAwMCAvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjU3LDcgKzI1Nyw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQrQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJCS8qIE1ha2Ugc3VyZSB0byByZW1hcCBmbGFzaGVzIGNvcnJlY3RseSAqLwogCkBAIC0yNzYsMTYgKzI3NiwxNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwotI2RlZmluZSBDRkdfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplCSAgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZQkgIG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yOTUsMTAgKzI5NSwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzA3LDkgKzMwNyw5IEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmIENPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMxNywxNCArMzE3LDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0zMzMsNyArMzMzLDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogCkBAIC0zNDIsMTQgKzM0MiwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0zNjIsMjggKzM2MiwyOCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVECSBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUiAwCisjZGVmaW5lIENPTkZJR19TWVNfREVSIDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zOTgsMjIgKzM5OCwyMiBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOiBEZWZhdWx0IHZhbHVlIG9mIE9SMCBhZnRlciByZXNldAogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNIHwgT1JfQUNTX01TSyB8IE9SX0JJIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfTVNLIHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV8xNV9DTEsgfCBPUl9UUkxYKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyoKICAqIEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCkBAIC00MjQsMTkgKzQyNCwxOSBAQAogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJKDI1NiA8PCAyMCkJLyogbWF4IDI1NiBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZiBDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lIENGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTQ0Nyw0OCArNDQ3LDQ4IEBACiAgKiA0CU51bWJlciBvZiByZWZyZXNoIGN5Y2xlcyBwZXIgcGVyaW9kCiAgKiA2NAlSZWZyZXNoIGN5Y2xlIGluIG1zIHBlciBudW1iZXIgb2Ygcm93cwogICovCi0jZGVmaW5lIENGR19QVEFfUEVSX0NMSwkoKDQwOTYgKiA2NCAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogNjQgKiAxMDAwKSAvICg0ICogNjQpKQogCiAvKgogICogUGVyaW9kaWMgdGltZXIgKE1BTVJbUFR4XSkgZm9yIDQgKiA3LjggdXMgcmVmcmVzaCAoPSAzMS4yIHVzIHBlciBxdWFkKQogICoKICAqICAgICAgICAgICAgICAgICAgICAgICAgQ1BVY2xvY2soTUh6KSAqIDMxLjIKLSAqIENGR19NQU1SX1BUQSA9IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICB3aXRoIERGQlJHID0gMAorICogQ09ORklHX1NZU19NQU1SX1BUQSA9IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICB3aXRoIERGQlJHID0gMAogICogICAgICAgICAgICAgICAgMl4oMipTQ0NSW0RGQlJHXSkgKiBNUFRQUl9QVFBfRElWMTYKICAqCi0gKiBDUFUgY2xvY2sgPSAgMTUgTUh6OiAgQ0ZHX01BTVJfUFRBID0gIDI5ICAgLT4gIDQgKiA3LjczIHVzCi0gKiBDUFUgY2xvY2sgPSAgNTAgTUh6OiAgQ0ZHX01BTVJfUFRBID0gIDk3ICAgLT4gIDQgKiA3Ljc2IHVzCi0gKiBDUFUgY2xvY2sgPSAgNjYgTUh6OiAgQ0ZHX01BTVJfUFRBID0gMTI4ICAgLT4gIDQgKiA3Ljc1IHVzCi0gKiBDUFUgY2xvY2sgPSAxMzMgTUh6OiAgQ0ZHX01BTVJfUFRBID0gMjU1ICAgLT4gIDQgKiA3LjY3IHVzCisgKiBDUFUgY2xvY2sgPSAgMTUgTUh6OiAgQ09ORklHX1NZU19NQU1SX1BUQSA9ICAyOSAgIC0+ICA0ICogNy43MyB1cworICogQ1BVIGNsb2NrID0gIDUwIE1IejogIENPTkZJR19TWVNfTUFNUl9QVEEgPSAgOTcgICAtPiAgNCAqIDcuNzYgdXMKKyAqIENQVSBjbG9jayA9ICA2NiBNSHo6ICBDT05GSUdfU1lTX01BTVJfUFRBID0gMTI4ICAgLT4gIDQgKiA3Ljc1IHVzCisgKiBDUFUgY2xvY2sgPSAxMzMgTUh6OiAgQ09ORklHX1NZU19NQU1SX1BUQSA9IDI1NSAgIC0+ICA0ICogNy42NyB1cwogICoKICAqIFZhbHVlIDk3IGlzIGZvciA0ICogNy44IHVzIGF0IDUwIE1Iei4gU28gdGhlIHJlZnJlc2ggY3ljbGUgcmVxdWlyZW1lbnQgd2lsbAogICogYmUgbWV0IGFsc28gaW4gdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiwgaS5lLiBpZiBlbnZpcm9ubWVudCB2YXJpYWJsZQogICogJ2NwdWNsaycgaXMgbm90IHNldC4KICAqLwotI2RlZmluZSBDRkdfTUFNUl9QVEEJCTk3CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCTk3CiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyIFJlZ2lzdGVyIChNUFRQUikgdmFsdWVzLgogICovCiAvKiA0ICogNy44IHVzIHJlZnJlc2ggKD0gMzEuMiB1cyBwZXIgcXVhZCkgYXQgNTAgTUh6IGFuZCBQVEEgPSA5NyAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYKIC8qIDQgKiAzLjkgdXMgcmVmcmVzaCAoPSAxNS42IHVzIHBlciBxdWFkKSBhdCA1MCBNSHogYW5kIFBUQSA9IDk3ICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgKIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDEwIGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl8xMENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzEwQ09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzIgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0E5ICB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODg1RC5oIGIvaW5jbHVkZS9jb25maWdzL1RRTTg4NUQuaAppbmRleCA2NmY0YTk4Li45NDJiYmY2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODg1RC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9UUU04ODVELmgKQEAgLTQwLDggKzQwLDggQEAKICNkZWZpbmUgQ09ORklHX1RRTTg4NUQJCTEJLyogLi4ub24gYSBUUU04OEQgbW9kdWxlCSovCiAKICNkZWZpbmUgQ09ORklHXzh4eF9PU0NMSwkJMTAwMDAwMDAJLyogIDEwIE1IeiAtIFBMTCBpbnB1dCBjbG9jawkqLwotI2RlZmluZSBDRkdfOHh4X0NQVUNMS19NSU4JCTE1MDAwMDAwCS8qICAxNSBNSHogLSBDUFUgbWluaW11bSBjbG9jawkqLwotI2RlZmluZSBDRkdfOHh4X0NQVUNMS19NQVgJCTEzMzAwMDAwMAkvKiAxMzMgTUh6IC0gQ1BVIG1heGltdW0gY2xvY2sJKi8KKyNkZWZpbmUgQ09ORklHX1NZU184eHhfQ1BVQ0xLX01JTgkJMTUwMDAwMDAJLyogIDE1IE1IeiAtIENQVSBtaW5pbXVtIGNsb2NrCSovCisjZGVmaW5lIENPTkZJR19TWVNfOHh4X0NQVUNMS19NQVgJCTEzMzAwMDAwMAkvKiAxMzMgTUh6IC0gQ1BVIG1heGltdW0gY2xvY2sJKi8KICNkZWZpbmUgQ09ORklHXzh4eF9DUFVDTEtfREVGQVVMVAk2NjAwMDAwMAkvKiAgNjYgTUh6IC0gQ1BVIGRlZmF1bHQgY2xvY2sJKi8KIAkJCQkJCS8qIChpdCB3aWxsIGJlIHVzZWQgaWYgdGhlcmUgaXMgbm8JKi8KIAkJCQkJCS8qICdjcHVjbGsnIHZhcmlhYmxlIHdpdGggdmFsaWQgdmFsdWUpCSovCkBAIC04OSw3ICs4OSw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZsYXNoX3NlbGYiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTEwMSw4ICsxMDEsOCBAQAogI3VuZGVmCUNPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUgQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTkzMDAwCS8qIDkzIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTkzMDAwCS8qIDkzIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCiAKICNpZmRlZiBDT05GSUdfU09GVF9JMkMKIC8qCkBAIC0xMjIsMTMgKzEyMiwxMyBAQAogI2RlZmluZSBJMkNfREVMQVkJdWRlbGF5KDIpCS8qIDEvNCBJMkMgY2xvY2sgZHVyYXRpb24gKi8KICNlbmRpZgkvKiBDT05GSUdfU09GVF9JMkMgKi8KIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJCS8qIEVFUFJPTSBBVDI0Qz8/CSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDIJCS8qIHR3byBieXRlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkJLyogRUVQUk9NIEFUMjRDPz8JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDIJCS8qIHR3byBieXRlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAjIGRlZmluZSBDT05GSUdfUlRDX0RTMTMzNyAxCi0jIGRlZmluZSBDRkdfSTJDX1JUQ19BRERSIDB4NjgKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSIDB4NjgKIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTE2NywzNCArMTY3LDM0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAzMDAwMDAJLyogMSAuLi4gMyBNQiBpbiBEUkFNCSovCi0jZGVmaW5lIENGR19BTFRfTUVNVEVTVAkJCQkvKiBhbHRlcm5hdGUsIG1vcmUgZXh0ZW5zaXZlCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAzMDAwMDAJLyogMSAuLi4gMyBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QJCQkJLyogYWx0ZXJuYXRlLCBtb3JlIGV4dGVuc2l2ZQogCQkJCQkJICAgbWVtb3J5IHRlc3QuKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogRW5hYmxlIGxvb3B3IGNvbW1hbmQuCkBAIC0yMDksNDcgKzIwOSw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4NDAwMDAgLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTI2MywxNiArMjYzLDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUJICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplCSAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI4MiwxMCArMjgyLDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yOTQsOSArMjk0LDkgQEAKICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KICNpZm5kZWYgQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzA0LDE0ICszMDQsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTMyMCw3ICszMjAsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCiAKQEAgLTMyOSwxNCArMzI5LDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTM0OSwyOCArMzQ5LDI4IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQJIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIgMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM4NSwyMiArMzg1LDIyIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6IERlZmF1bHQgdmFsdWUgb2YgT1IwIGFmdGVyIHJlc2V0CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfTVNLIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSB8IE9SX0FDU19NU0sgfCBPUl9CSSB8IFwKIAkJCQkgT1JfU0NZXzZfQ0xLIHwgT1JfVFJMWCkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtNDExLDE5ICs0MTEsMTkgQEAKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUJCSgyNTYgPDwgMjApCS8qIG1heCAyNTYgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKICNpZm5kZWYgQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JQ0ZHX09SMl9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JQ09ORklHX1NZU19PUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAjZWxzZQkvKiBDQU4gdXNlcyBDUzMjLCBzbyB3ZSBjYW4gaGF2ZSBvbmx5IG9uZSBTRFJBTSBiYW5rIGFueXdheSAqLwotI2RlZmluZSBDRkdfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCi0jZGVmaW5lIENGR19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLwotI2RlZmluZSBDRkdfT1IzX0NBTgkJKENGR19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCi0jZGVmaW5lIENGR19CUjNfQ0FOCQkoKENGR19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfQ0FOCQkoQ09ORklHX1NZU19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX0NBTgkJKChDT05GSUdfU1lTX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKIAkJCQkJQlJfUFNfOCB8IEJSX01TX1VQTUIgfCBCUl9WICkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCkBAIC00MzQsNDggKzQzNCw0OCBAQAogICogNAlOdW1iZXIgb2YgcmVmcmVzaCBjeWNsZXMgcGVyIHBlcmlvZAogICogNjQJUmVmcmVzaCBjeWNsZSBpbiBtcyBwZXIgbnVtYmVyIG9mIHJvd3MKICAqLwotI2RlZmluZSBDRkdfUFRBX1BFUl9DTEsJKCg0MDk2ICogNjQgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDY0ICogMTAwMCkgLyAoNCAqIDY0KSkKIAogLyoKICAqIFBlcmlvZGljIHRpbWVyIChNQU1SW1BUeF0pIGZvciA0ICogNy44IHVzIHJlZnJlc2ggKD0gMzEuMiB1cyBwZXIgcXVhZCkKICAqCiAgKiAgICAgICAgICAgICAgICAgICAgICAgIENQVWNsb2NrKE1IeikgKiAzMS4yCi0gKiBDRkdfTUFNUl9QVEEgPSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgd2l0aCBERkJSRyA9IDAKKyAqIENPTkZJR19TWVNfTUFNUl9QVEEgPSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgd2l0aCBERkJSRyA9IDAKICAqICAgICAgICAgICAgICAgIDJeKDIqU0NDUltERkJSR10pICogTVBUUFJfUFRQX0RJVjE2CiAgKgotICogQ1BVIGNsb2NrID0gIDE1IE1IejogIENGR19NQU1SX1BUQSA9ICAyOSAgIC0+ICA0ICogNy43MyB1cwotICogQ1BVIGNsb2NrID0gIDUwIE1IejogIENGR19NQU1SX1BUQSA9ICA5NyAgIC0+ICA0ICogNy43NiB1cwotICogQ1BVIGNsb2NrID0gIDY2IE1IejogIENGR19NQU1SX1BUQSA9IDEyOCAgIC0+ICA0ICogNy43NSB1cwotICogQ1BVIGNsb2NrID0gMTMzIE1IejogIENGR19NQU1SX1BUQSA9IDI1NSAgIC0+ICA0ICogNy42NyB1cworICogQ1BVIGNsb2NrID0gIDE1IE1IejogIENPTkZJR19TWVNfTUFNUl9QVEEgPSAgMjkgICAtPiAgNCAqIDcuNzMgdXMKKyAqIENQVSBjbG9jayA9ICA1MCBNSHo6ICBDT05GSUdfU1lTX01BTVJfUFRBID0gIDk3ICAgLT4gIDQgKiA3Ljc2IHVzCisgKiBDUFUgY2xvY2sgPSAgNjYgTUh6OiAgQ09ORklHX1NZU19NQU1SX1BUQSA9IDEyOCAgIC0+ICA0ICogNy43NSB1cworICogQ1BVIGNsb2NrID0gMTMzIE1IejogIENPTkZJR19TWVNfTUFNUl9QVEEgPSAyNTUgICAtPiAgNCAqIDcuNjcgdXMKICAqCiAgKiBWYWx1ZSA5NyBpcyBmb3IgNCAqIDcuOCB1cyBhdCA1MCBNSHouIFNvIHRoZSByZWZyZXNoIGN5Y2xlIHJlcXVpcmVtZW50IHdpbGwKICAqIGJlIG1ldCBhbHNvIGluIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24sIGkuZS4gaWYgZW52aXJvbm1lbnQgdmFyaWFibGUKICAqICdjcHVjbGsnIGlzIG5vdCBzZXQuCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJMTI4CiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyIFJlZ2lzdGVyIChNUFRQUikgdmFsdWVzLgogICovCiAvKiA0ICogNy44IHVzIHJlZnJlc2ggKD0gMzEuMiB1cyBwZXIgcXVhZCkgYXQgNTAgTUh6IGFuZCBQVEEgPSA5NyAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYKIC8qIDQgKiAzLjkgdXMgcmVmcmVzaCAoPSAxNS42IHVzIHBlciBxdWFkKSBhdCA1MCBNSHogYW5kIFBUQSA9IDk3ICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgKIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDEwIGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl8xMENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzEwQ09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzIgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0E5ICB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCkBAIC00OTYsNyArNDk2LDcgQEAKICNkZWZpbmUgQ09ORklHX0VUSEVSX09OX0ZFQzIJCS8qIC4uLiBmb3IgRkVDMiAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2RlZmluZSBDT05GSUdfTUlJX0lOSVQJMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9Ub3RhbDUyMDAuaCBiL2luY2x1ZGUvY29uZmlncy9Ub3RhbDUyMDAuaAppbmRleCAxOWIzYmU3Li43NWQxOTg1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVG90YWw1MjAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RvdGFsNTIwMC5oCkBAIC00Myw3ICs0Myw3IEBACiAjZGVmaW5lIENPTkZJR19NUEM1eHh4CQkxCS8qIFRoaXMgaXMgYW4gTVBDNXh4eCBDUFUgKi8KICNkZWZpbmUgQ09ORklHX1RPVEFMNTIwMAkxCS8qIC4uLiBvbiBUb3RhbDUyMDAgYm9hcmQgKi8KIAotI2RlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLwogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CSAgICAgKi8KQEAgLTU1LDcgKzU1LDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMwkvKiBjb25zb2xlIGlzIG9uIFBTQzMgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogLi4uIGF0IDExNTIwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKgogICogVmlkZW8gY29uc29sZQpAQCAtOTUsNyArOTUsNyBAQAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX01JSQkJMQogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAJCTEKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOCAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOCAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogI2RlZmluZSBDT05GSUdfTlM4MzgyWAkJMQogCiAjZWxzZQkvKiBNR1Q1MTAwICovCkBAIC0xNDEsNyArMTQxLDcgQEAKIAogCiAjaWYgKFRFWFRfQkFTRSA9PSAweEZFMDAwMDAwKQkJLyogQm9vdCBsb3cgKi8KLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UCQkxCiAjZW5kaWYKIAogLyoKQEAgLTE4MCw1NCArMTgwLDU0IEBACiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jdW5kZWYgQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLworI3VuZGVmIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCiAjZW5kaWYKIAogLyoKICAqIEkyQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTEJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTU9EVUxFCQkxCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIEVFUFJPTSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MAogCiAvKgogICogRmxhc2ggY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KICNpZiBDT05GSUdfVE9UQUw1MjAwX1JFVj09MgotIyAgIGRlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTMJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAqLwotIyAgIGRlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVCB7IENGR19DUzVfU1RBUlQsIENGR19DUzRfU1RBUlQsIENGR19CT09UQ1NfU1RBUlQgfQorIyAgIGRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkzCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MgKi8KKyMgICBkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUIHsgQ09ORklHX1NZU19DUzVfU1RBUlQsIENPTkZJR19TWVNfQ1M0X1NUQVJULCBDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB9CiAjZWxzZQotIyAgIGRlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAgKi8KLSMgICBkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QgeyBDRkdfQk9PVENTX1NUQVJUIH0KKyMgICBkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzICAqLworIyAgIGRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgeyBDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB9CiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKICNpZiBDT05GSUdfVE9UQUw1MjAwX1JFVj09MQotIyAgIGRlZmluZSBDRkdfRkxBU0hfQkFTRQkweEZFMDAwMDAwCi0jICAgZGVmaW5lIENGR19GTEFTSF9TSVpFCTB4MDIwMDAwMDAKKyMgICBkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCTB4RkUwMDAwMDAKKyMgICBkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCTB4MDIwMDAwMDAKICNlbGlmIENPTkZJR19UT1RBTDUyMDBfUkVWPT0yCi0jICAgZGVmaW5lIENGR19GTEFTSF9CQVNFCTB4RkEwMDAwMDAKLSMgICBkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJMHgwNjAwMDAwMAorIyAgIGRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJMHhGQTAwMDAwMAorIyAgIGRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJMHgwNjAwMDAwMAogI2VuZGlmIC8qIENPTkZJR19UT1RBTDUyMDBfUkVWICovCiAKLSNpZiBkZWZpbmVkKENGR19MT1dCT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19MT1dCT09UKQogIyAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4RkUwNDAwMDAKLSNlbHNlCS8qIENGR19MT1dCT09UICovCisjZWxzZQkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KICMgICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkweEZGRjQwMDAwCi0jZW5kaWYJLyogQ0ZHX0xPV0JPT1QgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCkBAIC0yNDAsMjkgKzI0MCwyOSBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAJLyogICA2NCBrQiAqLwotI2RlZmluZSBDRkdfRlBHQV9CQVNFCQkweEYwMDEwMDAwCS8qICAgNjQga0IgKi8KLSNkZWZpbmUgQ0ZHX0NQTERfQkFTRQkJMHhGMDAyMDAwMAkvKiAgIDY0IGtCICovCi0jZGVmaW5lIENGR19MQ0RfQkFTRQkJMHhGMTAwMDAwMAkvKiA0MDk2IGtCICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAkvKiAgIDY0IGtCICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFCQkweEYwMDEwMDAwCS8qICAgNjQga0IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUExEX0JBU0UJCTB4RjAwMjAwMDAJLyogICA2NCBrQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xDRF9CQVNFCQkweEYxMDAwMDAwCS8qIDQwOTYga0IgKi8KIAogLyogVXNlIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTI5MywzMiArMjkzLDMyIEBACiAgKiBQU0MxOiAgcmVzZXQgZGVmYXVsdCwgY2hhbmdlZCBpbiBBQyc5NyBkcml2ZXIgICAgICAgICAgICAgICAgIDAwMAogICoKICAqLwotI2RlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4MDAwMDBDMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHgwMDAwMEMxMAogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogCkBAIC0zMjYsMTEgKzMyNiwxMSBAQAogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCTAKICNlbmRpZgogCiAjaWYgZGVmaW5lZCAoQ09ORklHX01HVDUxMDApCkBAIC0zMzgsNDMgKzMzOCw0MyBAQAogI2VuZGlmCiAKICNpZiBDT05GSUdfVE9UQUw1MjAwX1JFVj09MQotIyAgIGRlZmluZSBDRkdfQk9PVENTX1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jICAgZGVmaW5lIENGR19CT09UQ1NfU0laRQkweDAyMDAwMDAwCS8qIDMyIE1CICovCi0jICAgZGVmaW5lIENGR19CT09UQ1NfQ0ZHCTB4MDAwNERGMDAJLyogNFdTLCBNWCwgQUwsIENFLCBBU18yNSwgRFNfMzIgKi8KLSMgICBkZWZpbmUgQ0ZHX0NTMF9TVEFSVAlDRkdfRkxBU0hfQkFTRQotIyAgIGRlZmluZSBDRkdfQ1MwX1NJWkUJCTB4MDIwMDAwMDAJLyogMzIgTUIgKi8KKyMgICBkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjICAgZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJMHgwMjAwMDAwMAkvKiAzMiBNQiAqLworIyAgIGRlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJMHgwMDA0REYwMAkvKiA0V1MsIE1YLCBBTCwgQ0UsIEFTXzI1LCBEU18zMiAqLworIyAgIGRlZmluZSBDT05GSUdfU1lTX0NTMF9TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyMgICBkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJMHgwMjAwMDAwMAkvKiAzMiBNQiAqLwogI2Vsc2UKLSMgICBkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAkoQ0ZHX0NTNF9TVEFSVCArIENGR19DUzRfU0laRSkKLSMgICBkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCTB4MDIwMDAwMDAJLyogMzIgTUIgKi8KLSMgICBkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJMHgwMDA0REYwMAkvKiA0V1MsIE1YLCBBTCwgQ0UsIEFTXzI1LCBEU18zMiAqLwotIyAgIGRlZmluZSBDRkdfQ1M0X1NUQVJUCShDRkdfQ1M1X1NUQVJUICsgQ0ZHX0NTNV9TSVpFKQotIyAgIGRlZmluZSBDRkdfQ1M0X1NJWkUJCTB4MDIwMDAwMDAJLyogMzIgTUIgKi8KLSMgICBkZWZpbmUgQ0ZHX0NTNF9DRkcJCTB4MDAwNERGMDAJLyogNFdTLCBNWCwgQUwsIENFLCBBU18yNSwgRFNfMzIgKi8KLSMgICBkZWZpbmUgQ0ZHX0NTNV9TVEFSVAlDRkdfRkxBU0hfQkFTRQotIyAgIGRlZmluZSBDRkdfQ1M1X1NJWkUJCTB4MDIwMDAwMDAJLyogMzIgTUIgKi8KLSMgICBkZWZpbmUgQ0ZHX0NTNV9DRkcJCTB4MDAwNERGMDAJLyogNFdTLCBNWCwgQUwsIENFLCBBU18yNSwgRFNfMzIgKi8KKyMgICBkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJKENPTkZJR19TWVNfQ1M0X1NUQVJUICsgQ09ORklHX1NZU19DUzRfU0laRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkweDAyMDAwMDAwCS8qIDMyIE1CICovCisjICAgZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkweDAwMDRERjAwCS8qIDRXUywgTVgsIEFMLCBDRSwgQVNfMjUsIERTXzMyICovCisjICAgZGVmaW5lIENPTkZJR19TWVNfQ1M0X1NUQVJUCShDT05GSUdfU1lTX0NTNV9TVEFSVCArIENPTkZJR19TWVNfQ1M1X1NJWkUpCisjICAgZGVmaW5lIENPTkZJR19TWVNfQ1M0X1NJWkUJCTB4MDIwMDAwMDAJLyogMzIgTUIgKi8KKyMgICBkZWZpbmUgQ09ORklHX1NZU19DUzRfQ0ZHCQkweDAwMDRERjAwCS8qIDRXUywgTVgsIEFMLCBDRSwgQVNfMjUsIERTXzMyICovCisjICAgZGVmaW5lIENPTkZJR19TWVNfQ1M1X1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0NTNV9TSVpFCQkweDAyMDAwMDAwCS8qIDMyIE1CICovCisjICAgZGVmaW5lIENPTkZJR19TWVNfQ1M1X0NGRwkJMHgwMDA0REYwMAkvKiA0V1MsIE1YLCBBTCwgQ0UsIEFTXzI1LCBEU18zMiAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0NTMV9TVEFSVAkJQ0ZHX0ZQR0FfQkFTRQotI2RlZmluZSBDRkdfQ1MxX1NJWkUJCTB4MDAwMTAwMDAJLyogNjQga0IgKi8KLSNkZWZpbmUgQ0ZHX0NTMV9DRkcJCTB4MDAxOUZGMDAJLyogMjVXUywgTVgsIEFMLCBBQSwgQ0UsIEFTXzI1LCBEU18zMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TVEFSVAkJQ09ORklHX1NZU19GUEdBX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRQkJMHgwMDAxMDAwMAkvKiA2NCBrQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DRkcJCTB4MDAxOUZGMDAJLyogMjVXUywgTVgsIEFMLCBBQSwgQ0UsIEFTXzI1LCBEU18zMiAqLwogCi0jZGVmaW5lIENGR19DUzJfU1RBUlQJCUNGR19MQ0RfQkFTRQotI2RlZmluZSBDRkdfQ1MyX1NJWkUJCTB4MDA0MDAwMDAJLyogNDA5NiBrQiAqLwotI2RlZmluZSBDRkdfQ1MyX0NGRwkJMHgwMDMyRkQwQwkvKiA1MFdTLCBNWCwgQUwsIEFBLCBDRSwgQVNfMjUsIERTXzE2LCBlbmRpYW4gc3dhcHBpbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfU1RBUlQJCUNPTkZJR19TWVNfTENEX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfU0laRQkJMHgwMDQwMDAwMAkvKiA0MDk2IGtCICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX0NGRwkJMHgwMDMyRkQwQwkvKiA1MFdTLCBNWCwgQUwsIEFBLCBDRSwgQVNfMjUsIERTXzE2LCBlbmRpYW4gc3dhcHBpbmcgKi8KIAogI2lmIENPTkZJR19UT1RBTDUyMDBfUkVWPT0xCi0jICAgZGVmaW5lIENGR19DUzNfU1RBUlQJQ0ZHX0NQTERfQkFTRQotIyAgIGRlZmluZSBDRkdfQ1MzX1NJWkUJCTB4MDAwMTAwMDAJLyogNjQga0IgKi8KLSMgICBkZWZpbmUgQ0ZHX0NTM19DRkcJCTB4MDAwQURGMDAJLyogMTBXUywgTVgsIEFMLCBDRSwgQVNfMjUsIERTXzMyICovCisjICAgZGVmaW5lIENPTkZJR19TWVNfQ1MzX1NUQVJUCUNPTkZJR19TWVNfQ1BMRF9CQVNFCisjICAgZGVmaW5lIENPTkZJR19TWVNfQ1MzX1NJWkUJCTB4MDAwMTAwMDAJLyogNjQga0IgKi8KKyMgICBkZWZpbmUgQ09ORklHX1NZU19DUzNfQ0ZHCQkweDAwMEFERjAwCS8qIDEwV1MsIE1YLCBBTCwgQ0UsIEFTXzI1LCBEU18zMiAqLwogI2Vsc2UKLSMgICBkZWZpbmUgQ0ZHX0NTM19TVEFSVAlDRkdfQ1BMRF9CQVNFCi0jICAgZGVmaW5lIENGR19DUzNfU0laRQkJMHgwMDAxMDAwMAkvKiA2NCBrQiAqLwotIyAgIGRlZmluZSBDRkdfQ1MzX0NGRwkJMHgwMDBBRDgwMAkvKiAxMFdTLCBNWCwgQUwsIENFLCBBU18yNCwgRFNfOCAqLworIyAgIGRlZmluZSBDT05GSUdfU1lTX0NTM19TVEFSVAlDT05GSUdfU1lTX0NQTERfQkFTRQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0NTM19TSVpFCQkweDAwMDEwMDAwCS8qIDY0IGtCICovCisjICAgZGVmaW5lIENPTkZJR19TWVNfQ1MzX0NGRwkJMHgwMDBBRDgwMAkvKiAxMFdTLCBNWCwgQUwsIENFLCBBU18yNCwgRFNfOCAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMworI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVVNCIHN0dWZmCkBAIC0zOTYsMjMgKzM5NiwyMyBAQAogI2RlZmluZQlDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1BSRUlOSVQKIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfQVRBX0RBVEFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCiAKIC8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUgICAgICAgICAgNAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUgICAgICAgICAgNAogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1ZDTUE5LmggYi9pbmNsdWRlL2NvbmZpZ3MvVkNNQTkuaAppbmRleCBhZWI2NDllLi4wYmMyZjY4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVkNNQTkuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVkNNQTkuaApAQCAtNzYsMzUgKzc2LDM1IEBACiAjZGVmaW5lIENPTkZJR19DTURfQlNQCiAKIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBJMkMgc3R1ZmY6CiAgKiB0aGUgTVBMIFZDTUE5IGlzIGVxdWlwcGVkIHdpdGggYW4gQVRNRUwgMjRDMjU2IEVFUFJPTSBhdAogICogYWRkcmVzcyAweDUwIHdpdGggMTZiaXQgYWRkcmVzc2luZwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgkvKiBJMkMgc2xhdmUgYWRkciAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgkvKiBJMkMgc2xhdmUgYWRkciAqLwogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkyCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTIKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00JMQkvKiB1c2UgRUVQUk9NIGZvciBlbnZpcm9ubWVudCB2YXJzICovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDAwMAkvKiBlbnZpcm9ubWVudCBzdGFydHMgYXQgb2Zmc2V0IDAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDgwMAkvKiAyS0Igc2hvdWxkIGJlIG1vcmUgdGhhbiBlbm91Z2ggKi8KIAotI3VuZGVmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNgkvKiA2NCBieXRlcyBwYWdlIHdyaXRlIG1vZGUgb24gMjRDMjU2ICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAorI3VuZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA2CS8qIDY0IGJ5dGVzIHBhZ2Ugd3JpdGUgbW9kZSBvbiAyNEMyNTYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAogCiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KIC8qI2RlZmluZSBDT05GSUdfTUFMTE9DX1NJWkUJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTAyNCAqIDEwMjQpCS8qIEJVTlpJUDIgbmVlZHMgYSBsb3Qgb2YgUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkJLyogQlVOWklQMiBuZWVkcyBhIGxvdCBvZiBSQU0gKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTEyOSw3ICsxMjksNyBAQAogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgkxCiAKIC8qIEVuYWJsZSBuZWVkZWQgaGVscGVyIGZ1bmN0aW9ucyAqLwotI2RlZmluZSBDRkdfREVWSUNFX0RFUkVHSVNURVIJCS8qIG5lZWRzIGRldmljZV9kZXJlZ2lzdGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX0RFUkVHSVNURVIJCS8qIG5lZWRzIGRldmljZV9kZXJlZ2lzdGVyICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIFJUQwpAQCAtMTYwLDI4ICsxNjAsMjggQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiVkNNQTkgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIlZDTUE5ICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgzMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgzMEY4MDAwMAkvKiAxNS41IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MzAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDMwRjgwMDAwCS8qIDE1LjUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19BTFRfTUVNVEVTVAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDMwODAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QKKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MzA4MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCiAvKiB3ZSBjb25maWd1cmUgUFdNIFRpbWVyIDQgdG8gMXVzIH4gMU1IeiAqLwotLyojZGVmaW5lCUNGR19IWgkJCTEwMDAwMDAgKi8KLSNkZWZpbmUJQ0ZHX0haCQkJMTU2MjUwMAorLyojZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwMDAwICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxNTYyNTAwCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyogc3VwcG9ydCBCWklQMiBjb21wcmVzc2lvbiAqLwogI2RlZmluZSBDT05GSUdfQlpJUDIJCTEKQEAgLTIxMSw3ICsyMTEsNyBAQAogI2RlZmluZSBQSFlTX1NEUkFNXzEJCTB4MzAwMDAwMDAgLyogU0RSQU0gQmFuayAjMSAqLwogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCTB4MDAwMDAwMDAgLyogRmxhc2ggQmFuayAjMSAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgpAQCAtMjIyLDIxICsyMjIsMjEgQEAKICNkZWZpbmUgQ09ORklHX0FNRF9MVjgwMAkxCS8qIHVuY29tbWVudCB0aGlzIGlmIHlvdSBoYXZlIGEgTFY4MDAgZmxhc2ggKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCiAjaWZkZWYgQ09ORklHX0FNRF9MVjgwMAogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCTB4MDAxMDAwMDAgLyogMU1CICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMTkpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4MEYwMDAwKSAvKiBhZGRyIG9mIGVudmlyb25tZW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDE5KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwRjAwMDApIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KICNlbmRpZgogI2lmZGVmIENPTkZJR19BTURfTFY0MDAKICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAwMDgwMDAwIC8qIDUxMktCICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMTEpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4MDcwMDAwKSAvKiBhZGRyIG9mIGVudmlyb25tZW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDExKQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwNzAwMDApIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KICNlbmRpZgogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2lmIDAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCkBAIC0yNDQsOCArMjQ0LDggQEAKICNlbmRpZgogCiAKLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX0JBTksJMAotI2RlZmluZSBDRkdfSkZGUzJfTlVNX0JBTktTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCTAKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJMQogCiAjZGVmaW5lIE1VTFRJX1BVUlBPU0VfU09DS0VUX0FERFIgMHgwODAwMDAwMAogCkBAIC0yNTUsNyArMjU1LDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfTkFORCkKIAogI2RlZmluZSBDT05GSUdfTkFORF9MRUdBQ1kKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzCQkqLwogI2RlZmluZSBTRUNUT1JTSVpFIDUxMgogCiAjZGVmaW5lIEFERFJfQ09MVU1OIDEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9WT0g0MDUuaCBiL2luY2x1ZGUvY29uZmlncy9WT0g0MDUuaAppbmRleCA5M2QwNDlmLi5mYjFmZWJjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVk9INDA1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1ZPSDQwNS5oCkBAIC01MCw3ICs1MCw3IEBACiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QgICAgICAgICAgICAgICAgICAvKiBlbmFibGUgcHJlYm9vdCB2YXJpYWJsZSAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICN1bmRlZiAgQ09ORklHX0hBU19FVEgxCkBAIC05OSw3NiArOTksNzYgQEAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIAogI2RlZmluZSBDT05GSUdfUlRDX01DMTQ2ODE4CQkvKiBEUzE2ODUgaXMgTUMxNDY4MTggY29tcGF0aWJsZSovCi0jZGVmaW5lIENGR19SVENfUkVHX0JBU0VfQUREUgkgMHhGMDAwMDUwMCAvKiBSVEMgQmFzZSBBZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JUQ19SRUdfQkFTRV9BRERSCSAweEYwMDAwNTAwIC8qIFJUQyBCYXNlIEFkZHJlc3MJCSovCiAKICNkZWZpbmUgQ09ORklHX1NEUkFNX0JBTkswCTEJLyogaW5pdCBvbmJvYXJkIFNEUkFNIGJhbmsgMAkqLwogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI3VuZGVmCUNGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURQkxICAgICAgIC8qIGFkZCBhdXRvY29tcGxldGlvbiBzdXBwb3J0ICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYgIENGR19FWFRfU0VSSUFMX0NMT0NLICAgICAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLwotI2RlZmluZSBDRkdfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OSAgIC8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5ICAgKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRCAgICAgICA2OTEyMDAKKyN1bmRlZiAgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLICAgICAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkgICAvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVEICAgICAgIDY5MTIwMAogI2RlZmluZSBDT05GSUdfVUFSVDFfQ09OU09MRSAgICAgICAgICAgIC8qIGRlZmluZSBmb3IgdWFydDEgYXMgY29uc29sZSAgKi8KIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogCiAjZGVmaW5lIENPTkZJR19WRVJTSU9OX1ZBUklBQkxFIDEJLyogaW5jbHVkZSB2ZXJzaW9uIGVudiB2YXJpYWJsZSAqLwogCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTE2CS8qIHVzZSAxNiByeCBidWZmZXIgb24gNDA1IGVtYWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTE2CS8qIHVzZSAxNiByeCBidWZmZXIgb24gNDA1IGVtYWMgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTkFORC1GTEFTSCBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7IENGR19OQU5EX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXsgQ09ORklHX1NZU19OQU5EX0JBU0UgfQogI2RlZmluZSBOQU5EX01BWF9DSElQUyAgICAgICAgICAxCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMSAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEgICAgICAgICAvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLwogI2RlZmluZSBOQU5EX0JJR19ERUxBWV9VUwkyNQogCi0jZGVmaW5lIENGR19OQU5EX0NFICAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDEpICAgLyogb3VyIENFIGlzIEdQSU8xICAqLwotI2RlZmluZSBDRkdfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQ0xFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMikgICAvKiBvdXIgQ0xFIGlzIEdQSU8yICovCi0jZGVmaW5lIENGR19OQU5EX0FMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDMpICAgLyogb3VyIEFMRSBpcyBHUElPMyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0UgICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMSkgICAvKiBvdXIgQ0UgaXMgR1BJTzEgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDIpICAgLyogb3VyIENMRSBpcyBHUElPMiAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUxFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMykgICAvKiBvdXIgQUxFIGlzIEdQSU8zICovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfU0tJUF9CQURfRE9UX0kgMSAgICAgICAvKiAiLmkiIHJlYWQgc2tpcHMgYmFkIGJsb2NrcyAgICovCi0jZGVmaW5lIENGR19OQU5EX1FVSUVUICAgICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NLSVBfQkFEX0RPVF9JIDEgICAgICAgLyogIi5pIiByZWFkIHNraXBzIGJhZCBibG9ja3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUVVJRVQgICAgICAgICAgMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE4NywxNSArMTg3LDE1IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9DT05GSUdfSE9TVF9CUklER0UgMSAvKiBkb24ndCBza2lwIGhvc3QgYnJpZGdlIGNvbmZpZyovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFICAvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNSAgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUgICAgICAqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIDB4MDAwMDAwMDAgICAgICAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TICAweGZjMDAwMDAxICAgICAgLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEgIDB4ZmZjMDAwMDAgICAgICAvKiBwb2ludCB0byBmbGFzaCAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweGZmYzAwMDAxICAgICAgLyogNE1CLCBlbmFibGUgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRSAgLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmggICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1ICAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBICAweDAwMDAwMDAwICAgICAgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMgIDB4ZmMwMDAwMDEgICAgICAvKiA2NE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBICAweGZmYzAwMDAwICAgICAgLyogcG9pbnQgdG8gZmxhc2ggICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMgIDB4ZmZjMDAwMDEgICAgICAvKiA0TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZgpAQCAtMjA1LDYyICsyMDUsNjIgQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIG5vIGxlZCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1JFU0VUCTEJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMgkJLyogbWF4LiAyIElERSBidXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjIpIC8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkyCQkvKiBtYXguIDIgSURFIGJ1c3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoyKSAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUCTB4MDAxMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQJMHgwMDEwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHhGRkMwMDAwMAkvKiBGTEFTSCBiYW5rICMwCSovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkY4MDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDIgKiAxMDI0KjEwMjQpCS8qIFJlc2VydmUgMiBNQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkY4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDUxMiAqIDEwMjQpCS8qIFJlc2VydmUgNTEyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDIgKiAxMDI0KjEwMjQpCS8qIFJlc2VydmUgMiBNQiBmb3IgbWFsbG9jKCkJKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgRkxBU0hfQkFTRTBfUFJFTElNKQotIyBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBGTEFTSF9CQVNFMF9QUkVMSU0pCisjIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbHNlCi0jIHVuZGVmIENGR19SQU1CT09UCisjIHVuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI3MSwyNyArMjcxLDI3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg3MDAJLyogMjA0OCBieXRlcyBtYXkgYmUgdXNlZCBmb3IgZW52IHZhcnMqLwogCQkJCSAgIC8qIHRvdGFsIHNpemUgb2YgYSBDQVQyNFdDMTYgaXMgMjA0OCBieXRlcyAqLwogCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkyNDIJCQkvKiBOVlJBTSBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweEYwMDAwNTAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkyNDIJCQkvKiBOVlJBTSBzaXplCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyNFdDMDgJCSovCi0jZGVmaW5lIENGR19FRVBST01fV1JFTiAgICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjRXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9XUkVOICAgICAgICAgMQogCiAvKiBDQVQyNFdDMzIvNjQuLi4gKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMgkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDAxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDUJLyogVGhlIENhdGFseXN0IENBVDI0V0MzMiBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNQkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzMyIGhhcwkqLwogCQkJCQkvKiAzMiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNSBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cApAQCAtMzAyLDc5ICszMDIsNzkgQEAKICNkZWZpbmUgRFVBUlQxX0JBCTB4RjAwMDA0MDgJICAgIC8qIERVQVJUIEJhc2UgQWRkcmVzcwkJKi8KICNkZWZpbmUgUlRDX0JBCQkweEYwMDAwNTAwCSAgICAvKiBSVEMgQmFzZSBBZGRyZXNzCQkJKi8KICNkZWZpbmUgVkdBX0JBCQkweEYxMDAwMDAwCSAgICAvKiBFcHNvbiBWR0EgQmFzZSBBZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFCTB4RjQwMDAwMDAJICAgIC8qIE5BTkQgRkxBU0ggQmFzZSBBZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkweEY0MDAwMDAwCSAgICAvKiBOQU5EIEZMQVNIIEJhc2UgQWRkcmVzcwkJKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwLCBOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotLyojZGVmaW5lIENGR19FQkNfUEIwQVAJCSAgMHgwODA1NTg4MCAgL1hYWCogVFdUPTE2LENTTj0xLE9FTj0xLFdCTj0xLFdCRj0xLFRIPTQsU09SPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKKy8qI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJICAweDA4MDU1ODgwICAvWFhYKiBUV1Q9MTYsQ1NOPTEsT0VOPTEsV0JOPTEsV0JGPTEsVEg9NCxTT1I9MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoRmxhc2ggQmFuayAxLCBOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGNDAxODAwMCAgLyogQkFTPTB4RjQwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGNDAxODAwMCAgLyogQkFTPTB4RjQwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAyICg4IEJpdCBQZXJpcGhlcmFsOiBDQU4sIFVBUlQsIFJUQykgaW5pdGlhbGl6YXRpb24JCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMyAoMTYgQml0IFBlcmlwaGVyYWw6IEZQR0EgaW50ZXJuYWwsIGRpZy4gSU8pIGluaXRpYWxpemF0aW9uCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayA0IChFcHNvbiBWR0EpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCNEFQCTB4MDM4MDUzODAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRDUglWR0FfQkEgfCAweDdBMDAwICAgIC8qIEJBUz0weEYxMCxCUz04TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQCTB4MDM4MDUzODAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0Q1IJVkdBX0JBIHwgMHg3QTAwMCAgICAvKiBCQVM9MHhGMTAsQlM9OE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBMQ0QgU2V0dXAKICAqLwogCi0jZGVmaW5lIENGR19MQ0RfQklHX01FTSAgICAgICAgIDB4RjEyMDAwMDAgIC8qIEVwc29uIFMxRDEzODA2IE1lbSBCYXNlIEFkZHJlc3MgICovCi0jZGVmaW5lIENGR19MQ0RfQklHX1JFRyAgICAgICAgIDB4RjEwMDAwMDAgIC8qIEVwc29uIFMxRDEzODA2IFJlZyBCYXNlIEFkZHJlc3MgICovCi0jZGVmaW5lIENGR19MQ0RfU01BTExfTUVNICAgICAgIDB4RjE0MDAwMDAgIC8qIEVwc29uIFMxRDEzNzA0IE1lbSBCYXNlIEFkZHJlc3MgICovCi0jZGVmaW5lIENGR19MQ0RfU01BTExfUkVHICAgICAgIDB4RjE0MEZGRTAgIC8qIEVwc29uIFMxRDEzNzA0IFJlZyBCYXNlIEFkZHJlc3MgICovCisjZGVmaW5lIENPTkZJR19TWVNfTENEX0JJR19NRU0gICAgICAgICAweEYxMjAwMDAwICAvKiBFcHNvbiBTMUQxMzgwNiBNZW0gQmFzZSBBZGRyZXNzICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xDRF9CSUdfUkVHICAgICAgICAgMHhGMTAwMDAwMCAgLyogRXBzb24gUzFEMTM4MDYgUmVnIEJhc2UgQWRkcmVzcyAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQ0RfU01BTExfTUVNICAgICAgIDB4RjE0MDAwMDAgIC8qIEVwc29uIFMxRDEzNzA0IE1lbSBCYXNlIEFkZHJlc3MgICovCisjZGVmaW5lIENPTkZJR19TWVNfTENEX1NNQUxMX1JFRyAgICAgICAweEYxNDBGRkUwICAvKiBFcHNvbiBTMUQxMzcwNCBSZWcgQmFzZSBBZGRyZXNzICAqLwogCi0jZGVmaW5lIENGR19WSURFT19MT0dPX01BWF9TSVpFICgxIDw8IDIwKQorI2RlZmluZSBDT05GSUdfU1lTX1ZJREVPX0xPR09fTUFYX1NJWkUgKDEgPDwgMjApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZQR0Egc3R1ZmYKICAqLwogCi0jZGVmaW5lIENGR19GUEdBX0JBU0VfQUREUiAweEYwMTAwMTAwCSAgICAvKiBGUEdBIGludGVybmFsIEJhc2UgQWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSIDB4RjAxMDAxMDAJICAgIC8qIEZQR0EgaW50ZXJuYWwgQmFzZSBBZGRyZXNzCSovCiAKIC8qIEZQR0EgaW50ZXJuYWwgcmVncyAqLwotI2RlZmluZSBDRkdfRlBHQV9DVFJMCQkweDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ1RSTAkJMHgwMDAKIAogLyogRlBHQSBDb250cm9sIFJlZyAqLwotI2RlZmluZSBDRkdfRlBHQV9DVFJMX0NGX1JFU0VUCTB4MDAwMQotI2RlZmluZSBDRkdfRlBHQV9DVFJMX1dESQkweDAwMDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfQ1RSTF9QUzJfUkVTRVQgMHgwMDIwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX0NGX1JFU0VUCTB4MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9XREkJMHgwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX1BTMl9SRVNFVCAweDAwMjAKIAotI2RlZmluZSBDRkdfRlBHQV9TUEFSVEFOMgkxCSAgICAvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdyAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9NQVhfU0laRQkxMjgqMTAyNCAgICAvKiAxMjhrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlM1MEUqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIJMQkgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFCTEyOCoxMDI0ICAgIC8qIDEyOGtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzUwRSovCiAKIC8qIEZQR0EgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCi0jZGVmaW5lIENGR19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORQkJMHgwMDAwODAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9JTklUCQkweDAwMDEwMDAwICAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORQkJMHgwMDAwODAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCiAvKiB1c2Ugb24gY2hpcCBtZW1vcnkgKCBPQ00gKSBmb3IgdGVtcGVyYXJ5IHN0YWNrIHVudGlsIHNkcmFtIGlzIHRlc3RlZCAqLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00JICAxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JICAxCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBHUElPIHNldHVwIChQUEM0MDVFUCBzcGVjaWZpYykKQEAgLTM4OCwyMCArMzg4LDIwIEBACiAgKiBHUElPMFsyOC0yOV0gLSBVQVJUMSBkYXRhIHNpZ25hbCBpbnB1dC9vdXRwdXQKICAqIEdQSU8wWzMwLTMxXSAtIEVNQUMwIGFuZCBFTUFDMSByZWplY3QgcGFja2V0IGlucHV0cyAtPiBHUElPCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkgJCTB4MDAwMDA1NTAKLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9JU1IxTAkJMHgxNTU1NTQ0MAotI2RlZmluZSBDRkdfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVENSCQkweDc3N0UwMDE3CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSSAkJMHgwMDAwMDU1MAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFMCQkweDE1NTU1NDQwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UQ1IJCTB4Nzc3RTAwMTcKIAotI2RlZmluZSBDRkdfRFVBUlRfUlNUCQkoMHg4MDAwMDAwMCA+PiAxNCkKLSNkZWZpbmUgQ0ZHX0xDRF9FTkRJQU4JCSgweDgwMDAwMDAwID4+IDcpCi0jZGVmaW5lIENGR19JSUNfT04JCSgweDgwMDAwMDAwID4+IDgpCi0jZGVmaW5lIENGR19MQ0QwX1JTVAkJKDB4ODAwMDAwMDAgPj4gMzApCi0jZGVmaW5lIENGR19MQ0QxX1JTVAkJKDB4ODAwMDAwMDAgPj4gMzEpCi0jZGVmaW5lIENGR19FRVBST01fV1AJCSgweDgwMDAwMDAwID4+IDApCisjZGVmaW5lIENPTkZJR19TWVNfRFVBUlRfUlNUCQkoMHg4MDAwMDAwMCA+PiAxNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQ0RfRU5ESUFOCQkoMHg4MDAwMDAwMCA+PiA3KQorI2RlZmluZSBDT05GSUdfU1lTX0lJQ19PTgkJKDB4ODAwMDAwMDAgPj4gOCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQ0QwX1JTVAkJKDB4ODAwMDAwMDAgPj4gMzApCisjZGVmaW5lIENPTkZJR19TWVNfTENEMV9SU1QJCSgweDgwMDAwMDAwID4+IDMxKQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9XUAkJKDB4ODAwMDAwMDAgPj4gMCkKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVk9NNDA1LmggYi9pbmNsdWRlL2NvbmZpZ3MvVk9NNDA1LmgKaW5kZXggNWMxNDczMC4uYjZlMzU4OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1ZPTTQwNS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9WT000MDUuaApAQCAtNDgsNyArNDgsNyBAQAogCiAjZGVmaW5lIENPTkZJR19QUkVCT09UICAgICAgICAgICAgICAgICAgLyogZW5hYmxlIHByZWJvb3QgdmFyaWFibGUgICAgICAqLwogCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjdW5kZWYgIENPTkZJR19IQVNfRVRIMQpAQCAtOTUsOTcgKzk1LDk3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI3VuZGVmCUNGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECSAgICA2OTEyMDAKICN1bmRlZglDT05GSUdfVUFSVDFfQ09OU09MRQkJLyogZGVmaW5lIGZvciB1YXJ0MSBhcyBjb25zb2xlCSovCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAgICAgXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogCiAjZGVmaW5lIENPTkZJR19WRVJTSU9OX1ZBUklBQkxFIDEJLyogaW5jbHVkZSB2ZXJzaW9uIGVudiB2YXJpYWJsZSAqLwogCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTE2CS8qIHVzZSAxNiByeCBidWZmZXIgb24gNDA1IGVtYWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTE2CS8qIHVzZSAxNiByeCBidWZmZXIgb24gNDA1IGVtYWMgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKgogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4RkZDMDAwMDAJLyogRkxBU0ggYmFuayAjMAkqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogLyoKICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgRkxBU0hfQkFTRTBfUFJFTElNKQotIyBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBGTEFTSF9CQVNFMF9QUkVMSU0pCisjIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbHNlCi0jIHVuZGVmIENGR19SQU1CT09UCisjIHVuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKIC8qCkBAIC0xOTYsMjQgKzE5NiwyNCBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NzAwCS8qIDIwNDggYnl0ZXMgbWF5IGJlIHVzZWQgZm9yIGVudiB2YXJzKi8KIAkJCQkgICAvKiB0b3RhbCBzaXplIG9mIGEgQ0FUMjRXQzE2IGlzIDIwNDggYnl0ZXMgKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4RjAwMDA1MDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KIAogLyoKICAqIEkyQyBFRVBST00gKENBVDI0V0MxNikgZm9yIGVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJjIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIgkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCiAJCQkJCS8qIDE2IGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdCA0IGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKIC8qCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cApAQCAtMjIxLDQxICsyMjEsNDEgQEAKICNkZWZpbmUgQ0FOX0JBCQkweEYwMDAwMDAwCSAgICAvKiBDQU4gQmFzZSBBZGRyZXNzCQkJKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwLCBOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoOCBCaXQgUGVyaXBoZXJhbDogQ0FOLCBVQVJULCBSVEMpIGluaXRpYWxpemF0aW9uCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qCiAgKiBGUEdBIHN0dWZmCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfWEM5NVhMCQkxCSAgICAvKiB1c2luZyBYaWxpbnggWEM5NVhMIENQTEQJICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9NQVhfU0laRQkzMioxMDI0CSAgICAvKiAzMmtCeXRlIGlzIGVub3VnaCBmb3IgQ1BMRCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfWEM5NVhMCQkxCSAgICAvKiB1c2luZyBYaWxpbnggWEM5NVhMIENQTEQJICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUJMzIqMTAyNAkgICAgLyogMzJrQnl0ZSBpcyBlbm91Z2ggZm9yIENQTEQgICAgKi8KIAogLyogRlBHQSBwcm9ncmFtIHBpbiBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogSlRBRyBUTVMgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ0xLCQkweDAyMDAwMDAwICAvKiBKVEFHIFRDSyBwaW4gKHBwYyBvdXRwdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBKVEFHIFRETy0+VERJIGRhdGEgcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9JTklUCQkweDAwMDEwMDAwICAvKiB1bnVzZWQgKHBwYyBpbnB1dCkJICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9ET05FCQkweDAwMDA4MDAwICAvKiBKVEFHIFRESS0+VERPIHBpbiAocHBjIGlucHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBKVEFHIFRNUyBwaW4gKHBwYyBvdXRwdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ0xLCQkweDAyMDAwMDAwICAvKiBKVEFHIFRDSyBwaW4gKHBwYyBvdXRwdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogSlRBRyBURE8tPlRESSBkYXRhIHBpbiAocHBjIG91dHB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIHVudXNlZCAocHBjIGlucHV0KQkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9ET05FCQkweDAwMDA4MDAwICAvKiBKVEFHIFRESS0+VERPIHBpbiAocHBjIGlucHV0KSAqLwogCiAvKgogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCiAvKiB1c2Ugb24gY2hpcCBtZW1vcnkgKCBPQ00gKSBmb3IgdGVtcGVyYXJ5IHN0YWNrIHVudGlsIHNkcmFtIGlzIHRlc3RlZCAqLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00JICAxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JICAxCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBEZWZpbml0aW9ucyBmb3IgR1BJTyBzZXR1cCAoUFBDNDA1RVAgc3BlY2lmaWMpCkBAIC0yNzMsMTMgKzI3MywxMyBAQAogLyogR1BJTyBPdXRwdXQ6CQlPU1I9MDAsIElTUj0wMCwgVFNSPTAwLCBUQ1I9MSAqLwogLyogQWx0LiBGdW50aW9uIElucHV0OglPU1I9MDAsIElTUj0wMSwgVFNSPTAwLCBUQ1I9MCAqLwogLyogQWx0LiBGdW50aW9uIE91dHB1dDogT1NSPTAxLCBJU1I9MDAsIFRTUj0wMCwgVENSPTEgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkgJCTB4NDAwMDA1MDAgIC8qCTAgLi4uIDE1ICovCi0jZGVmaW5lIENGR19HUElPMF9PU1JMCQkweDAwMDAwMTEwICAvKiAxNiAuLi4gMzEgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFICQkweDAwMDAwMDAwICAvKgkwIC4uLiAxNSAqLwotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUwJCTB4MTQwMDAwNDUgIC8qIDE2IC4uLiAzMSAqLwotI2RlZmluZSBDRkdfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMCAgLyoJMCAuLi4gMTUgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAgIC8qIDE2IC4uLiAzMSAqLwotI2RlZmluZSBDRkdfR1BJTzBfVENSCQkweEY3RkUwMDE0ICAvKgkwIC4uLiAzMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkgJCTB4NDAwMDA1MDAgIC8qCTAgLi4uIDE1ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSTAkJMHgwMDAwMDExMCAgLyogMTYgLi4uIDMxICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAgIC8qCTAgLi4uIDE1ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUwJCTB4MTQwMDAwNDUgIC8qIDE2IC4uLiAzMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkgJCTB4MDAwMDAwMDAgIC8qCTAgLi4uIDE1ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMCAgLyogMTYgLi4uIDMxICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVENSCQkweEY3RkUwMDE0ICAvKgkwIC4uLiAzMSAqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9Wb1ZQTi1HVy5oIGIvaW5jbHVkZS9jb25maWdzL1ZvVlBOLUdXLmgKaW5kZXggZjcyZGE3OC4uOTgyZjhkOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1ZvVlBOLUdXLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1ZvVlBOLUdXLmgKQEAgLTgyLDEwICs4MiwxMCBAQAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkJMQogCiAvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UKKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCiAKIC8qIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIHNlbGVjdCBldGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0xMDcsMzIgKzEwNywzMiBAQAogI2RlZmluZQlDT05GSUdfRVRIRVJfSU5ERVgJCTEKIAogLyogTWFydmVsbCBTd2l0Y2ggU01JIGJhc2UgYWRkciAqLwotI2RlZmluZSBDRkdfUEhZX0FERFIJCQkweDEwCisjZGVmaW5lIENPTkZJR19TWVNfUEhZX0FERFIJCQkweDEwCiAKIC8qIEZDQzEgUk1JSSBSRUZDTEsgaXMgQ0xLMTAgKi8KLSNkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkJQ01YRkNSX1RGMUNTX0NMSzEwCi0jZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkJCShDTVhGQ1JfRkMxfENNWEZDUl9URjFDU19NU0spCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCQlDTVhGQ1JfVEYxQ1NfQ0xLMTAKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkJCShDTVhGQ1JfRkMxfENNWEZDUl9URjFDU19NU0spCiAKIC8qIEJEcyBhbmQgYnVmZmVycyBvbiA2MHggYnVzICovCi0jZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCQkwCiAKIC8qIExvY2FsIFByb3RlY3QsIEZ1bGwgZHVwbGV4LCBGbG93Y29udHJvbCwgUk1JSSAqLwotI2RlZmluZSBDRkdfRkNDX1BTTVIJCQkoRkNDX1BTTVJfTFBCfEZDQ19QU01SX0ZERXxcCisjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCQkoRkNDX1BTTVJfTFBCfEZDQ19QU01SX0ZERXxcCiAJCQkJCSBGQ0NfUFNNUl9GQ0V8RkNDX1BTTVJfUk1JSSkKIAogLyogYml0LWJhbmcgTUlJIFBIWSBtYW5hZ2VtZW50CSovCiAjZGVmaW5lIENPTkZJR19CSVRCQU5HTUlJCiAKICNkZWZpbmUgTURJT19QT1JUCQkJMQkJLyogUG9ydCBCICovCi0jZGVmaW5lIENGR19NRElPX1BJTgkJCTB4MDAwMDIwMDAJLyogUEIxOCAqLwotI2RlZmluZSBDRkdfTURDX1BJTgkJCTB4MDAwMDEwMDAJLyogUEIxOSAqLwotI2RlZmluZSBNRElPX0FDVElWRQkJCShpb3AtPnBkaXIgfD0gIENGR19NRElPX1BJTikKLSNkZWZpbmUgTURJT19UUklTVEFURQkJCShpb3AtPnBkaXIgJj0gfkNGR19NRElPX1BJTikKLSNkZWZpbmUgTURJT19SRUFECQkJKChpb3AtPnBkYXQgJiAgQ0ZHX01ESU9fUElOKSAhPSAwKQotI2RlZmluZSBNRElPKGJpdCkJCQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ0ZHX01ESU9fUElOOyBcCi0JCQkJCWVsc2UJaW9wLT5wZGF0ICY9IH5DRkdfTURJT19QSU4KLSNkZWZpbmUgTURDKGJpdCkJCQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ0ZHX01EQ19QSU47IFwKLQkJCQkJZWxzZQlpb3AtPnBkYXQgJj0gfkNGR19NRENfUElOCisjZGVmaW5lIENPTkZJR19TWVNfTURJT19QSU4JCQkweDAwMDAyMDAwCS8qIFBCMTggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRENfUElOCQkJMHgwMDAwMTAwMAkvKiBQQjE5ICovCisjZGVmaW5lIE1ESU9fQUNUSVZFCQkJKGlvcC0+cGRpciB8PSAgQ09ORklHX1NZU19NRElPX1BJTikKKyNkZWZpbmUgTURJT19UUklTVEFURQkJCShpb3AtPnBkaXIgJj0gfkNPTkZJR19TWVNfTURJT19QSU4pCisjZGVmaW5lIE1ESU9fUkVBRAkJCSgoaW9wLT5wZGF0ICYgIENPTkZJR19TWVNfTURJT19QSU4pICE9IDApCisjZGVmaW5lIE1ESU8oYml0KQkJCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICBDT05GSUdfU1lTX01ESU9fUElOOyBcCisJCQkJCWVsc2UJaW9wLT5wZGF0ICY9IH5DT05GSUdfU1lTX01ESU9fUElOCisjZGVmaW5lIE1EQyhiaXQpCQkJaWYoYml0KSBpb3AtPnBkYXQgfD0gIENPTkZJR19TWVNfTURDX1BJTjsgXAorCQkJCQllbHNlCWlvcC0+cGRhdCAmPSB+Q09ORklHX1NZU19NRENfUElOCiAjZGVmaW5lIE1JSURFTEFZCQkJdWRlbGF5KDEpCiAKICNlbmRpZgpAQCAtMjA5LDU4ICsyMDksNTggQEAKICAqLwogCiAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAKKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAogCiAvKiBtb25pdG9yIGNvbW1hbmQgcHJvbXB0ICovCi0jZGVmaW5lCUNGR19QUk9NUFQJCQkiPT4gIgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJCSI9PiAiCiAKIC8qIGNvbnNvbGUgaS9vIGJ1ZmZlciBzaXplICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCQkxMDI0CisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkJMTAyNAogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJCTI1NgorI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJCTI1NgogI2VuZGlmCiAKIC8qIHByaW50IGJ1ZmZlciBzaXplICovCi0jZGVmaW5lCUNGR19QQlNJWkUJCQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQorI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRQkJCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKIAogLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCQkxNgorI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCQkxNgogCiAvKiBib290IGFyZ3VtZW50IGJ1ZmZlciBzaXplICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJCUNGR19DQlNJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJCUNPTkZJR19TWVNfQ0JTSVpFCiAKIC8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQkweDAwMTAwMDAwCiAvKiAxIC4uLiAxNSBNQiBpbiBEUkFNICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCTB4MDBmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJCTB4MDBmMDAwMDAKIC8qIGZ1bGwgZmVhdHVyZWQgbWVtdGVzdCAqLwotI2RlZmluZSBDRkdfQUxUX01FTVRFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVAogCiAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkJMHgwMDEwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJCTB4MDAxMDAwMDAKIAogLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwotI2RlZmluZQlDRkdfSFoJCQkJMTAwMAorI2RlZmluZQlDT05GSUdfU1lTX0haCQkJCTEwMDAKIAogLyogY29uZmlndXJlIGZsYXNoICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJMHhmZjgwMDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJNjQKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCQk4Ci0jdW5kZWYJQ0ZHX0ZMQVNIXzE2QklUCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCQkyNDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJCTUwMAotI2RlZmluZSBDRkdfRkxBU0hfTE9DS19UT1VUCQk1MDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUCQkxMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQkweGZmODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTY0CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJCTgKKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIXzE2QklUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkJMjQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkJNTAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTE9DS19UT1VUCQk1MDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVAkJMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAKIC8qIG1vbml0b3IgaW4gZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfT0ZGU0VUCQkweDAwNzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9PRkZTRVQJCTB4MDA3MDAwMDAKIAogLyogZW52aXJvbm1lbnQgaW4gZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwMDIwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDAyMDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJMHgwMDAyMDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkJMHgwMDAyMDAwMAogCkBAIC0yNzAsNTIgKzI3MCw1MiBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkJKDggPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkJKDggPDwgMjApCiAKIC8qIGhhcmQgcmVzZXQgY29uZmlndXJhdGlvbiB3b3JkcyAqLwogI2lmZGVmCUNPTkZJR19DTEtJTl82Nk1IegotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJCQkweDA0NjQzMDUwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJCQkweDA0NjQzMDUwCiAjZWxzZQogI2Vycm9yIE5PIEhSQ1cgRk9SIDEwME1IWiBTUEVDSUZJRUQgISEhCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxCQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMwkJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0CQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNgkJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3CQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0CQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1CQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3CQkJMHgwMDAwMDAwMAogCiAvKiBpbnRlcm5hbCBtZW1vcnkgbWFwcGVkIHJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19JTU1SCQkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCQkweEYwMDAwMDAwCiAKIC8qIGRlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCQlDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECQkweDIwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJCTEyOAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCQkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCQlDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJCTB4MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCQlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKgogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkJKDMyKjEwMjQqMTAyNCkKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0ZMQVNICQkoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfTU9OSVRPUl9PRkZTRVQpCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJCTB4MDAwMjAwMDAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCQkweDAwMDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkJKDMyKjEwMjQqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfRkxBU0gJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkJMHgwMDAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCQkweDAwMDIwMDAwCiAKIC8qIGJvb3QgZmxhZ3MgKi8KICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJCTB4MDEJLyogbm9ybWFsIHBvd2VyLW9uICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCQkweDAyCS8qIHNvZnR3YXJlIHJlYm9vdCAqLwogCiAvKiBjYWNoZSBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkJMzIgICAgICAvKiBmb3IgTVBDODI2MCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkzMiAgICAgIC8qIGZvciBNUEM4MjYwICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJCTUJLyogbG9nIGJhc2UgMiBvZiBhYm92ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAkJNQkvKiBsb2cgYmFzZSAyIG9mIGFib3ZlICovCiAjZW5kaWYKIAogLyoKQEAgLTMyOCw0MyArMzI4LDQzIEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCQkJKEhJRDBfSUNFfEhJRDBfRENFfFwKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCQkoSElEMF9JQ0V8SElEMF9EQ0V8XAogCQkJCQkgSElEMF9JQ0ZJfEhJRDBfRENJfEhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCQkoSElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMgkJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkJKEhJRDBfSUZFTXxISUQwX0FCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCQkJMAogCiAvKiBSTVIgLSByZXNldCBtb2RlIHJlZ2lzdGVyIC0gdHVybiBvbiBjaGVja3N0b3AgcmVzZXQgZW5hYmxlICovCi0jZGVmaW5lIENGR19STVIJCQkJUk1SX0NTUkUKKyNkZWZpbmUgQ09ORklHX1NZU19STVIJCQkJUk1SX0NTUkUKIAogLyogQkNSIC0gYnVzIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0JDUgkJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkJCTB4MDAwMDAwMDAKIAogLyogU0lVTUNSIC0gc2l1IG1vZHVsZSBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19TSVVNQ1IJCQkweDQ5MDVjMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCQkJMHg0OTA1YzAwMAogCiAvKiBTWVBDUiAtIHN5c3RlbSBwcm90ZWN0aW9uIGNvbnRyb2wgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCQkJMHhmZmZmZmY4NworI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCQkJMHhmZmZmZmY4NwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCQkJMHhmZmZmZmY4MworI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCQkJMHhmZmZmZmY4MwogI2VuZGlmCiAKIC8qIFRNQ05UU0MgLSB0aW1lIGNvdW50ZXIgc3RhdHVzIGFuZCBjb250cm9sICovCiAvKiBjbGVhciBpbnRlcnJ1cHRzIFhYWCBqc2UgKi8KLS8qI2RlZmluZSBDRkdfVE1DTlRTQwkJCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUikgKi8KLSNkZWZpbmUgQ0ZHX1RNQ05UU0MJCQkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8XAorLyojZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQwkJCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDCQkJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFwKIAkJCQkJIFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKiBQSVNDUiAtIHBlcmlvZGljIGludGVycnVwdCBzdGF0dXMgYW5kIGNvbnRyb2wgKi8KIC8qIGNsZWFyIGludGVycnVwdHMgWFhYIGpzZSAqLwotLyojZGVmaW5lIENGR19QSVNDUgkJCShQSVNDUl9QUykgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCQkJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCisvKiNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkJCShQSVNDUl9QUykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkJCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQogCiAvKiBTQ0NSIC0gc3lzdGVtIGNsb2NrIGNvbnRyb2wgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJCQkweDAwMDAwMWE5CisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkJCTB4MDAwMDAxYTkKIAogLyogUkNDUiAtIHJpc2MgY29udHJvbGxlciBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19SQ0NSCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IJCQkwCiAKIC8qCiAgKiBNRU1PUlkgTUFQCkBAIC0zNzksMzcgKzM3OSwzNyBAQAogICogIHggIC0gSU1NUiAgICAgMzg0S0IJCWJhc2U9MHhmMDAwMDAwMAogICovCiAvKiBYWFgganNlIDEwME1IeiBUT0RPICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkJMHhmZjgwMDgwMQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJCTB4ZmY4MDFlNDQKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCQkweDAwMDAwMDQxCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkJMHhmZTAwMmVjMAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCQkweGZmODAwODAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJCTB4ZmY4MDFlNDQKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkJMHgwMDAwMDA0MQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCQkweGZlMDAyZWMwCiAjaWYgMQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJCTB4ZjAxMDEwMDEKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCQkweGZmZjAwZWY0Ci0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkJMHhmMDIwMTAwMQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJCTB4ZmZmMDBlZjQKLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JCQkweGYwMzAxMDAxCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCQkJMHhmZmYwMGVmNAotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJCTB4ZjA0MDEwMDEKLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JCQkweGZmZjAwZWY0CisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJCTB4ZjAxMDEwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkJMHhmZmYwMGVmNAorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCQkweGYwMjAxMDAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkJCTB4ZmZmMDBlZjQKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCQkJMHhmMDMwMTAwMQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JCQkweGZmZjAwZWY0CisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkJCTB4ZjA0MDEwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCQkJMHhmZmYwMGVmNAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCQkweGYwMTAxMDgxCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkJMHhmZmYwMDEwNAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkJCTB4ZjAyMDEwODEKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JCQkweGZmZjAwMTA0Ci0jZGVmaW5lIENGR19CUjRfUFJFTElNCQkJMHhmMDMwMTA4MQotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkJCTB4ZmZmMDAxMDQKLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JCQkweGYwNDAxMDgxCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCQkJMHhmZmYwMDEwNAorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCQkweGYwMTAxMDgxCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJCTB4ZmZmMDAxMDQKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkJMHhmMDIwMTA4MQorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCQkweGZmZjAwMTA0CisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkJCTB4ZjAzMDEwODEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCQkJMHhmZmYwMDEwNAorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JCQkweGYwNDAxMDgxCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkJCTB4ZmZmMDAxMDQKICNlbmRpZgotI2RlZmluZSBDRkdfQlI3X1BSRUxJTQkJCTB4ZjA1MDA4ODEKLSNkZWZpbmUgQ0ZHX09SN19QUkVMSU0JCQkweGZmZmY4MTA0Ci0jZGVmaW5lIENGR19NUFRQUgkJCTB4MjcwMAotI2RlZmluZSBDRkdfUFNETVIJCQkweDgyMmEyNDUyCS8qIG9wdGltYWwgKi8KLS8qI2RlZmluZSBDRkdfUFNETVIJCQkweDgyMmE0OGEzICovCS8qIHJlbGF4ZWQgKi8KLSNkZWZpbmUgQ0ZHX1BTUlQJCQkweDFhCisjZGVmaW5lIENPTkZJR19TWVNfQlI3X1BSRUxJTQkJCTB4ZjA1MDA4ODEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjdfUFJFTElNCQkJMHhmZmZmODEwNAorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCQkJMHgyNzAwCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJCQkweDgyMmEyNDUyCS8qIG9wdGltYWwgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCQkJMHg4MjJhNDhhMyAqLwkvKiByZWxheGVkICovCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkJCTB4MWEKIAogLyogImJhZCIgYWRkcmVzcyAqLwotI2RlZmluZQlDRkdfUkVTRVRfQUREUkVTUwkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJCTB4NDAwMDAwMDAKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9XN09MTUMuaCBiL2luY2x1ZGUvY29uZmlncy9XN09MTUMuaAppbmRleCA2YTUxODgwLi5lNTQ2MzY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVzdPTE1DLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1c3T0xNQy5oCkBAIC02Myw3ICs2Myw3IEBACiAjZGVmaW5lIENPTkZJR19TRVJWRVJJUAkJMTkyLjE2OC4xLjIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZiBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCQkvKiBkaXNhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZiBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkJLyogZGlzYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCTAJCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTEwNCwzOCArMTA0LDM4IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIldhdmU3T3B0aWNzPiAiIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSN1bmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCQkJCS8qIE5vIGh1c2ggcGFyc2UgZm9yIFUtQm9vdCAgICAgICAqLwotI2lmZGVmICBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAgICAgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIldhdmU3T3B0aWNzPiAiIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyN1bmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCQkvKiBObyBodXNoIHBhcnNlIGZvciBVLUJvb3QgICAgICAgKi8KKyNpZmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAgICAgIj4gIgogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JCSovCiAKLSN1bmRlZiAgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJCQkvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KLSNkZWZpbmUgQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OQkJCS8qIDQwNUdQL0NSIFJldi4gRCBzaWxpY29uICovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJCTM4NDAwMAorI3VuZGVmICBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJCQkvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTkJCQkvKiA0MDVHUC9DUiBSZXYuIEQgc2lsaWNvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkJMzg0MDAwCiAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJezk2MDB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezk2MDB9CiAKLSNkZWZpbmUgQ0ZHX0NMS1NfSU5fSFoJCTEJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTEtTX0lOX0haCQkxCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJCS8qIHVzZSBleHRlbmRlZCBib2FyZF9pbmZvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCQkvKiB1c2UgZXh0ZW5kZWQgYm9hcmRfaW5mbyAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTUwLDE0ICsxNTAsMTQgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9IT1NUCQlQQ0lfSE9TVF9BVVRPCS8qIHNlbGVjdCBwY2kgaG9zdCBmdW5jdGlvbgkqLwogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJCQkvKiBwY2kgcGx1Zy1hbmQtcGxheQkJKi8KIC8qIHJlc291cmNlIGNvbmZpZ3VyYXRpb24JKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDE0CQkvKiBQQ0kgVmVuZG9yIElEOiBJQk0JCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDE1NgkJLyogUENJIERldmljZSBJRDogNDA1R1AJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUwkJMHg4MDAwMDAwMQkvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJCQkweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJCQkweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDE0CQkvKiBQQ0kgVmVuZG9yIElEOiBJQk0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDAxNTYJCS8qIFBDSSBEZXZpY2UgSUQ6IDQwNUdQCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUwkJMHg4MDAwMDAwMQkvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSQkJMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TCQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSQkJMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2V0IHVwIHZhbHVlcyBmb3IgZXh0ZXJuYWwgYnVzIGNvbnRyb2xsZXIKQEAgLTE2OCw5NCArMTY4LDk0IEBACiAjdW5kZWYgQ09ORklHX1VTRV9QRVJXRQogCiAvKiB1c2Ugb24gY2hpcCBtZW1vcnkgKCBPQ00gKSBmb3IgdGVtcGVyYXJ5IHN0YWNrIHVudGlsIHNkcmFtIGlzIHRlc3RlZCAqLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00gICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTSAgICAgICAgMQogCiAvKiBiYW5rIDAgaXMgYm9vdCBmbGFzaCAqLwogLyogQk1FPTAsVFdUPTYsQ1NOPTEsT0VOPTEsV0JOPTAsV0JGPTAsVEg9MixSRT0wLFNPUj0wLEJFTT0xLFBFTj0wICovCi0jZGVmaW5lIENGR19XN09fRUJDX1BCMEFQICAgMHgwMzA1MDQ0MAorI2RlZmluZSBDT05GSUdfU1lTX1c3T19FQkNfUEIwQVAgICAweDAzMDUwNDQwCiAvKiBCQVM9MHhGRkUsQlM9MHgxKDJNQiksQlU9MHgzKFIvVyksQlc9MHgwKDggYml0cykgKi8KLSNkZWZpbmUgQ0ZHX1c3T19FQkNfUEIwQ1IgICAweEZGRTM4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfVzdPX0VCQ19QQjBDUiAgIDB4RkZFMzgwMDAKIAogLyogYmFuayAxIGlzIG1haW4gZmxhc2ggKi8KIC8qIEJNRT0wLFRXVD0xMSxDU049MSxPRU49MSxXQk49MCxXQkY9MCxUSD0xLFJFPTAsU09SPTAsQkVNPTEsUEVOPTAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUCAgIDB4MDU4NTAyNDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAgICAweDA1ODUwMjQwCiAvKiBCQVM9MHhGMDAsQlM9MHg3KDEyOE1CKSxCVT0weDMoUi9XKSxCVz0weDEwKDMyIGJpdHMpICovCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IgICAweEYwMEZDMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSICAgMHhGMDBGQzAwMAogCiAvKiBiYW5rIDIgaXMgUlRDL05WUkFNICovCiAvKiBCTUU9MCxUV1Q9NixDU049MCxPRU49MCxXQk49MCxXQkY9MCxUSD0yLFJFPTAsU09SPTAsQkVNPTEsUEVOPTAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUCAgIDB4MDMwMDA0NDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAgICAweDAzMDAwNDQwCiAvKiBCQVM9MHhGQzAsQlM9MHgwKDFNQiksQlU9MHgzKFIvVyksQlc9MHgwKDggYml0cykgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUiAgIDB4RkMwMTgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IgICAweEZDMDE4MDAwCiAKIC8qIGJhbmsgMyBpcyBGUEdBIDAgKi8KIC8qIEJNRT0wLFRXVD00LENTTj0wLE9FTj0wLFdCTj0wLFdCRj0wLFRIPTIsUkU9MCxTT1I9MCxCRU09MCxQRU49MCAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQICAgMHgwMjAwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUCAgIDB4MDIwMDA0MDAKIC8qIEJBUz0weEZEMCxCUz0weDAoMU1CKSxCVT0weDMoUi9XKSxCVz0weDEoMTYgYml0cykgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUiAgIDB4RkQwMUEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IgICAweEZEMDFBMDAwCiAKIC8qIGJhbmsgNCBpcyBGUEdBIDEgKi8KIC8qIEJNRT0sVFdUPSxDU049LE9FTj0sV0JOPSxXQkY9LFRIPSxSRT0sU09SPSxCRU09LFBFTj0gKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRBUCAgIDB4MDIwMDA0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAgICAweDAyMDAwNDAwCiAvKiBCQVM9LEJTPSxCVT0weDMoUi9XKSxCVz0weDAoOCBiaXRzKSAqLwotI2RlZmluZSBDRkdfRUJDX1BCNENSICAgMHhGRDExQTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUiAgIDB4RkQxMUEwMDAKIAogLyogYmFuayA1IGlzIEZQR0EgMiAqLwogLyogQk1FPSxUV1Q9LENTTj0sT0VOPSxXQk49LFdCRj0sVEg9LFJFPSxTT1I9LEJFTT0sUEVOPSAqLwotI2RlZmluZSBDRkdfRUJDX1BCNUFQICAgMHgwMjAwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVBUCAgIDB4MDIwMDA0MDAKIC8qIEJBUz0sQlM9LEJVPTB4MyhSL1cpLEJXPTB4MSgxNiBiaXRzKSAqLwotI2RlZmluZSBDRkdfRUJDX1BCNUNSICAgMHhGRDIxQTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVDUiAgIDB4RkQyMUEwMDAKIAogLyogYmFuayA2IGlzIHVudXNlZCAqLwogLyogcGI2YXAgPSAwICovCi0jZGVmaW5lIENGR19FQkNfUEI2QVAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNkFQICAgMHgwMDAwMDAwMAogLyogcGI2Y3IgPSAwICovCi0jZGVmaW5lIENGR19FQkNfUEI2Q1IgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNkNSICAgMHgwMDAwMDAwMAogCiAvKiBiYW5rIDcgaXMgTEVEIHJlZ2lzdGVyICovCiAvKiBCTUU9MCxUV1Q9NixDU049MSxPRU49MSxXQk49MCxXQkY9MCxUSD0yLFJFPTAsU09SPTAsQkVNPTEsUEVOPTAgKi8KLSNkZWZpbmUgQ0ZHX1c3T19FQkNfUEI3QVAgICAweDAzMDUwNDQwCisjZGVmaW5lIENPTkZJR19TWVNfVzdPX0VCQ19QQjdBUCAgIDB4MDMwNTA0NDAKIC8qIEJBUz0weEZFMCxCUz0weDAoMU1CKSxCVT0weDMoUi9XKSxCVz0weDIoMzIgYml0cykgKi8KLSNkZWZpbmUgQ0ZHX1c3T19FQkNfUEI3Q1IgICAweEZFMDFDMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVzdPX0VCQ19QQjdDUiAgIDB4RkUwMUMwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CQkvKiBtYXggbnVtYmVyIG9mIHNlYyBvbiAxIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJCS8qIG1heCBudW1iZXIgb2Ygc2VjIG9uIDEgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkJLyogVGltZW91dCwgRmxhc2ggRXJhc2UsIGluIG1zCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCwgRmxhc2ggV3JpdGUsIGluIG1zCSovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJCS8qIFVzZSByZWFsIEZsYXNoIHByb3RlY3Rpb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkJLyogVGltZW91dCwgRmxhc2ggRXJhc2UsIGluIG1zCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIFRpbWVvdXQsIEZsYXNoIFdyaXRlLCBpbiBtcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIHJlYWwgRmxhc2ggcHJvdGVjdGlvbgkqLwogCiAjaWYgMSAvKiBVc2UgTlZSQU0gZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTlZSQU0gb3JnYW5pemF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTQkxCQkvKiB1c2UgTlZSQU0gZm9yIGVudiB2YXJzCSovCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhmYzAwMDAwMAkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJLyogTlZSQU0gc2l6ZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4ZmMwMDAwMDAJLyogTlZSQU0gYmFzZSBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCSgzMioxMDI0KQkvKiBOVlJBTSBzaXplCQkJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycwkqLwogLypkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkgXAotCShDRkdfTlZSQU1fQkFTRV9BRERSK0NGR19OVlJBTV9TSVpFLUNPTkZJR19FTlZfU0laRSkgRW52ICAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCUNGR19OVlJBTV9CQVNFX0FERFIKKwkoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIrQ09ORklHX1NZU19OVlJBTV9TSVpFLUNPTkZJR19FTlZfU0laRSkgRW52ICAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCUNPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCiAKICNlbHNlIC8qIFVzZSBCb290IEZsYXNoIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI3MiwxNyArMjcyLDE3IEBACiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMDgpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIgICAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QJNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgU2VyaWFsIFByZXNlbmNlIERldGVjdCBFRVBST00gYWRkcmVzcwogICogKHRvIGdldCBTRFJBTSBzZXR0aW5ncykKQEAgLTI5NiwxNyArMjk2LDE3IEBACiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkweEYwMDAwMDAwCS8qIEZMQVNIIGJhbmsgIzEJCSovCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAKIC8qCkBAIC0zMjUsNyArMzI1LDcgQEAKIC8qCiAgKiBGUEdBKHMpIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRlBHQV9JTUFHRV9MRU4JMHg4MDAwMAkJLyogNTEyS0IgRlBHQSBpbWFnZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lNQUdFX0xFTgkweDgwMDAwCQkvKiA1MTJLQiBGUEdBIGltYWdlCQkqLwogI2RlZmluZSBDT05GSUdfTlVNX0ZQR0FTCTMJCS8qIE51bWJlciBvZiBGUEdBcyBvbiBib2FyZAkqLwogI2RlZmluZSBDT05GSUdfTUFYX0ZQR0FTCTYJCS8qIE1heGltdW0gbnVtYmVyIG9mIEZQR0FzCSovCiAjZGVmaW5lIENPTkZJR19GUEdBU19CQVNFCTB4RkQwMDAwMDBMCS8qIEJhc2UgYWRkcmVzcyBvZiBGUEdBcwkqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1c3T0xNRy5oIGIvaW5jbHVkZS9jb25maWdzL1c3T0xNRy5oCmluZGV4IGMzYjM5ZjIuLjIyNjAzMzggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9XN09MTUcuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVzdPTE1HLmgKQEAgLTYzLDcgKzYzLDcgQEAKICNkZWZpbmUgQ09ORklHX1NFUlZFUklQCQkxOTIuMTY4LjEuMgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmIENGR19MT0FEU19CQVVEX0NIQU5HRQkJCS8qIGRpc2FsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCQkvKiBkaXNhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMAkJLyogUEhZIGFkZHJlc3MJCQkqLwpAQCAtNzEsOSArNzEsOSBAQAogI2RlZmluZSBDT05GSUdfUlRDX000OFQzNUEJMQkJLyogU1QgRWxlY3Ryb25pY3MgTTQ4IHRpbWVrZWVwZXIgKi8KICNkZWZpbmUgQ09ORklHX0RUVF9MTTc1ICAgICAxICAgICAgICAgICAgICAgIC8qIE9OIFNlbWkncyBMTTc1ICovCiAjZGVmaW5lIENPTkZJR19EVFRfU0VOU09SUyAgezIsIDR9ICAgICAgICAgICAvKiBTZW5zb3IgYWRkcmVzc2VzICovCi0jZGVmaW5lIENGR19EVFRfTUFYX1RFTVAJNzAKLSNkZWZpbmUgQ0ZHX0RUVF9MT1dfVEVNUAktMzAKLSNkZWZpbmUgQ0ZHX0RUVF9IWVNURVJFU0lTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTUFYX1RFTVAJNzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTE9XX1RFTVAJLTMwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0hZU1RFUkVTSVMJMwogCiAKIC8qCkBAIC0xMTIsMzggKzExMiwzOCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJXYXZlN09wdGljcz4gIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jdW5kZWYgIENGR19IVVNIX1BBUlNFUgkJCQkvKiBObyBodXNoIHBhcnNlIGZvciBVLUJvb3QgICAgICAgKi8KLSNpZmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgICAgICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJXYXZlN09wdGljcz4gIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjdW5kZWYgIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkJLyogTm8gaHVzaCBwYXJzZSBmb3IgVS1Cb290ICAgICAgICovCisjaWZkZWYgIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgICAgICI+ICIKICNlbmRpZgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCQkqLwogCi0jdW5kZWYgIENGR19FWFRfU0VSSUFMX0NMT0NLCQkJLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCi0jZGVmaW5lIENGR180MDVfVUFSVF9FUlJBVEFfNTkJCQkvKiA0MDVHUC9DUiBSZXYuIEQgc2lsaWNvbiAqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECQkzODQwMDAKKyN1bmRlZiAgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCQkJLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5CQkJLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJCTM4NDAwMAogCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXs5NjAwfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXs5NjAwfQogCi0jZGVmaW5lIENGR19DTEtTX0lOX0haCQkxCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJMQkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCQkvKiB1c2UgZXh0ZW5kZWQgYm9hcmRfaW5mbyAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkJLyogdXNlIGV4dGVuZGVkIGJvYXJkX2luZm8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE1NywxNCArMTU3LDE0IEBACiAjZGVmaW5lIENPTkZJR19QQ0lfSE9TVAkJUENJX0hPU1RfQVVUTwkvKiBzZWxlY3QgcGNpIGhvc3QgZnVuY3Rpb24JKi8KICNkZWZpbmUgQ09ORklHX1BDSV9QTlAJCQkJLyogcGNpIHBsdWctYW5kLXBsYXkJCSovCiAvKiByZXNvdXJjZSBjb25maWd1cmF0aW9uCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTAxNAkJLyogUENJIFZlbmRvciBJRDogSUJNCQkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDAxNTYJCS8qIFBDSSBEZXZpY2UgSUQ6IDQwNUdQCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQQkJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMJCTB4ODAwMDAwMDEJLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSQkJMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEJCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSQkJMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTAxNAkJLyogUENJIFZlbmRvciBJRDogSUJNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwMTU2CQkvKiBQQ0kgRGV2aWNlIElEOiA0MDVHUAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBCQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMJCTB4ODAwMDAwMDEJLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kJCTB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kJCTB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNldCB1cCB2YWx1ZXMgZm9yIGV4dGVybmFsIGJ1cyBjb250cm9sbGVyCkBAIC0xNzUsOTQgKzE3NSw5NCBAQAogI2RlZmluZSBDT05GSUdfVVNFX1BFUldFIDEKIAogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNICAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00gICAgICAgIDEKIAogLyogYmFuayAwIGlzIGJvb3QgZmxhc2ggKi8KIC8qIEJNRT0wLFRXVD02LENTTj0xLE9FTj0xLFdCTj0wLFdCRj0wLFRIPTIsUkU9MCxTT1I9MCxCRU09MSxQRU49MCAqLwotI2RlZmluZSBDRkdfVzdPX0VCQ19QQjBBUCAgIDB4MDMwNTA0NDAKKyNkZWZpbmUgQ09ORklHX1NZU19XN09fRUJDX1BCMEFQICAgMHgwMzA1MDQ0MAogLyogQkFTPTB4RkZFLEJTPTB4MSgyTUIpLEJVPTB4MyhSL1cpLEJXPTB4MCg4IGJpdHMpICovCi0jZGVmaW5lIENGR19XN09fRUJDX1BCMENSICAgMHhGRkUzODAwMAorI2RlZmluZSBDT05GSUdfU1lTX1c3T19FQkNfUEIwQ1IgICAweEZGRTM4MDAwCiAKIC8qIGJhbmsgMSBpcyBtYWluIGZsYXNoICovCiAvKiBCTUU9MCxUV1Q9OSxDU049MSxPRU49MSxXQk49MCxXQkY9MCxUSD0xLFJFPTAsU09SPTAsQkVNPTEsUEVOPTAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUCAgIDB4MDQ4NTAyNDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAgICAweDA0ODUwMjQwCiAvKiBCQVM9MHhGMDAsQlM9MHg3KDEyOE1CKSxCVT0weDMoUi9XKSxCVz0weDEwKDMyIGJpdHMpICovCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IgICAweEYwMEZDMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSICAgMHhGMDBGQzAwMAogCiAvKiBiYW5rIDIgaXMgUlRDL05WUkFNICovCiAvKiBCTUU9MCxUV1Q9NixDU049MCxPRU49MCxXQk49MCxXQkY9MCxUSD0yLFJFPTAsU09SPTAsQkVNPTEsUEVOPTAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUCAgIDB4MDMwMDA0NDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAgICAweDAzMDAwNDQwCiAvKiBCQVM9MHhGQzAsQlM9MHgwKDFNQiksQlU9MHgzKFIvVyksQlc9MHgwKDggYml0cykgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUiAgIDB4RkMwMTgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IgICAweEZDMDE4MDAwCiAKIC8qIGJhbmsgMyBpcyBGUEdBIDAgKi8KIC8qIEJNRT0wLFRXVD00LENTTj0wLE9FTj0wLFdCTj0wLFdCRj0wLFRIPTIsUkU9MCxTT1I9MCxCRU09MCxQRU49MCAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQICAgMHgwMjAwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUCAgIDB4MDIwMDA0MDAKIC8qIEJBUz0weEZEMCxCUz0weDAoMU1CKSxCVT0weDMoUi9XKSxCVz0weDEoMTYgYml0cykgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUiAgIDB4RkQwMUEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IgICAweEZEMDFBMDAwCiAKIC8qIGJhbmsgNCBpcyBTQU0gOCBiaXQgcmFuZ2UgKi8KIC8qIEJNRT0sVFdUPSxDU049LE9FTj0sV0JOPSxXQkY9LFRIPSxSRT0sU09SPSxCRU09LFBFTj0gKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRBUCAgIDB4MDI4NDAzODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAgICAweDAyODQwMzgwCiAvKiBCQVM9LEJTPSxCVT0weDMoUi9XKSxCVz0weDAoOCBiaXRzKSAqLwotI2RlZmluZSBDRkdfRUJDX1BCNENSICAgMHhGRTg3ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUiAgIDB4RkU4NzgwMDAKIAogLyogYmFuayA1IGlzIFNBTSAxNiBiaXQgcmFuZ2UgKi8KIC8qIEJNRT0wLFRXVD0xMCxDU049MixPRU49MCxXQk49MCxXQkY9MCxUSD02LFJFPTEsU09SPTEsQkVNPTAsUEVOPTAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVBUCAgIDB4MDUwNDBkODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1QVAgICAweDA1MDQwZDgwCiAvKiBCQVM9LEJTPSxCVT0weDMoUi9XKSxCVz0weDEoMTYgYml0cykgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVDUiAgIDB4RkQ4N0EwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1Q1IgICAweEZEODdBMDAwCiAKIC8qIGJhbmsgNiBpcyB1bnVzZWQgKi8KIC8qIHBiNmFwID0gMCAqLwotI2RlZmluZSBDRkdfRUJDX1BCNkFQICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjZBUCAgIDB4MDAwMDAwMDAKIC8qIHBiNmNyID0gMCAqLwotI2RlZmluZSBDRkdfRUJDX1BCNkNSICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjZDUiAgIDB4MDAwMDAwMDAKIAogLyogYmFuayA3IGlzIExFRCByZWdpc3RlciAqLwogLyogQk1FPTAsVFdUPTYsQ1NOPTEsT0VOPTEsV0JOPTAsV0JGPTAsVEg9MixSRT0wLFNPUj0wLEJFTT0xLFBFTj0wICovCi0jZGVmaW5lIENGR19XN09fRUJDX1BCN0FQICAgMHgwMzA1MDQ0MAorI2RlZmluZSBDT05GSUdfU1lTX1c3T19FQkNfUEI3QVAgICAweDAzMDUwNDQwCiAvKiBCQVM9MHhGRTAsQlM9MHgwKDFNQiksQlU9MHgzKFIvVyksQlc9MHgyKDMyIGJpdHMpICovCi0jZGVmaW5lIENGR19XN09fRUJDX1BCN0NSICAgMHhGRTAxQzAwMAorI2RlZmluZSBDT05GSUdfU1lTX1c3T19FQkNfUEI3Q1IgICAweEZFMDFDMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAxOTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMTk2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkJLyogbWF4IG51bWJlciBvZiBzZWMgb24gMSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CQkvKiBtYXggbnVtYmVyIG9mIHNlYyBvbiAxIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJCS8qIFRpbWVvdXQsIEZsYXNoIEVyYXNlLCBpbiBtcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIFRpbWVvdXQsIEZsYXNoIFdyaXRlLCBpbiBtcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCQkvKiBVc2UgcmVhbCBGbGFzaCBwcm90ZWN0aW9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJCS8qIFRpbWVvdXQsIEZsYXNoIEVyYXNlLCBpbiBtcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCQkvKiBUaW1lb3V0LCBGbGFzaCBXcml0ZSwgaW4gbXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJCS8qIFVzZSByZWFsIEZsYXNoIHByb3RlY3Rpb24JKi8KIAogI2lmIDEgLyogVXNlIE5WUkFNIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5WUkFNIG9yZ2FuaXphdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0JMQkJLyogdXNlIE5WUkFNIGZvciBlbnYgdmFycwkqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4ZmMwMDAwMDAJLyogTlZSQU0gYmFzZSBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJKDMyKjEwMjQpCS8qIE5WUkFNIHNpemUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweGZjMDAwMDAwCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJLyogTlZSQU0gc2l6ZQkJCSovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwCQkvKiBTaXplIG9mIEVudmlyb25tZW50IHZhcnMJKi8KIC8qZGVmaW5lIENPTkZJR19FTlZfQUREUgkJIFwKLQkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpIEVudiAgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlDRkdfTlZSQU1fQkFTRV9BRERSCisJKENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSK0NPTkZJR19TWVNfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpIEVudiAgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgogCiAjZWxzZSAvKiBVc2UgQm9vdCBGbGFzaCBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzksMTMgKzI3OSwxMyBAQAogICogSTJDIEVFUFJPTSAoQVRNRUwgMjRDMDROKQogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkJLyogSGFyZHdhcmUgYXNzaXN0ZWQgSTJDCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiBFRVBST00gQVRNRUwgMjRDMDROCQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiBFRVBST00gQVRNRUwgMjRDMDROCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQkJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIFNlcmlhbCBQcmVzZW5jZSBEZXRlY3QgRUVQUk9NIGFkZHJlc3MKICAqICh0byBnZXQgU0RSQU0gc2V0dGluZ3MpCkBAIC0yOTksMTcgKzI5OSwxNyBAQAogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0JMHhGMDAwMDAwMAkvKiBGTEFTSCBiYW5rICMxCQkqLwogCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogCiAvKgpAQCAtMzI4LDcgKzMyOCw3IEBACiAvKgogICogRlBHQShzKSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfSU1BR0VfTEVOCTB4ODAwMDAJCS8qIDUxMktCIEZQR0EgaW1hZ2UJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9JTUFHRV9MRU4JMHg4MDAwMAkJLyogNTEyS0IgRlBHQSBpbWFnZQkJKi8KICNkZWZpbmUgQ09ORklHX05VTV9GUEdBUwkxCQkvKiBOdW1iZXIgb2YgRlBHQXMgb24gYm9hcmQJKi8KICNkZWZpbmUgQ09ORklHX01BWF9GUEdBUwk2CQkvKiBNYXhpbXVtIG51bWJlciBvZiBGUEdBcwkqLwogI2RlZmluZSBDT05GSUdfRlBHQVNfQkFTRQkweEZEMDAwMDAwTAkvKiBCYXNlIGFkZHJlc3Mgb2YgRlBHQXMJKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9XVUg0MDUuaCBiL2luY2x1ZGUvY29uZmlncy9XVUg0MDUuaAppbmRleCBhZmUxZGE5Li5lYzgxNTY0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvV1VINDA1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1dVSDQwNS5oCkBAIC01Miw3ICs1Miw3IEBACiAjZGVmaW5lIENPTkZJR19QUkVCT09UICAgICAgICAgICAgICAgICAgLyogZW5hYmxlIHByZWJvb3QgdmFyaWFibGUgICAgICAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMAkvKiBQSFkgYWRkcmVzcwkJCSovCkBAIC04OSw3MyArODksNzMgQEAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIAogI2RlZmluZSBDT05GSUdfUlRDX01DMTQ2ODE4CQkvKiBEUzE2ODUgaXMgTUMxNDY4MTggY29tcGF0aWJsZSovCi0jZGVmaW5lIENGR19SVENfUkVHX0JBU0VfQUREUgkgMHhGMDAwMDUwMCAvKiBSVEMgQmFzZSBBZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JUQ19SRUdfQkFTRV9BRERSCSAweEYwMDAwNTAwIC8qIFJUQyBCYXNlIEFkZHJlc3MJCSovCiAKICNkZWZpbmUgQ09ORklHX1NEUkFNX0JBTkswCTEJLyogaW5pdCBvbmJvYXJkIFNEUkFNIGJhbmsgMAkqLwogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI3VuZGVmCUNGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECSAgICA2OTEyMDAKICNkZWZpbmUJQ09ORklHX1VBUlQxX0NPTlNPTEUJCS8qIGRlZmluZSBmb3IgdWFydDEgYXMgY29uc29sZQkqLwogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOQU5ELUZMQVNIIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRV9MSVNUCXsgQ0ZHX05BTkRfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFX0xJU1QJeyBDT05GSUdfU1lTX05BTkRfQkFTRSB9CiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTICAgICAgICAgIDEKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxICAgICAgICAgLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMSAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCiAjZGVmaW5lIE5BTkRfQklHX0RFTEFZX1VTCTI1CiAKLSNkZWZpbmUgQ0ZHX05BTkRfQ0UgICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMSkgICAvKiBvdXIgQ0UgaXMgR1BJTzEgICovCi0jZGVmaW5lIENGR19OQU5EX1JEWSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDQpICAgLyogb3VyIFJEWSBpcyBHUElPNCAqLwotI2RlZmluZSBDRkdfTkFORF9DTEUgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAyKSAgIC8qIG91ciBDTEUgaXMgR1BJTzIgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQUxFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMykgICAvKiBvdXIgQUxFIGlzIEdQSU8zICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DRSAgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAxKSAgIC8qIG91ciBDRSBpcyBHUElPMSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1JEWSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDQpICAgLyogb3VyIFJEWSBpcyBHUElPNCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0xFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMikgICAvKiBvdXIgQ0xFIGlzIEdQSU8yICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9BTEUgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAzKSAgIC8qIG91ciBBTEUgaXMgR1BJTzMgKi8KIAotI2RlZmluZSBDRkdfTkFORF9TS0lQX0JBRF9ET1RfSSAgICAgIDEgIC8qICIuaSIgcmVhZCBza2lwcyBiYWQgYmxvY2tzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NLSVBfQkFEX0RPVF9JICAgICAgMSAgLyogIi5pIiByZWFkIHNraXBzIGJhZCBibG9ja3MgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE3Miw1OCArMTcyLDU4IEBACiAKICN1bmRlZglDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogcHJpbnQgcGNpIGRldmljZXMgQCBzdGFydHVwCSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNQkvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNQkqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEJMHhmZmMwMDAwMAkvKiBwb2ludCB0byBmbGFzaAkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNQkvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNpZiAwIC8qIHRlc3Qtb25seSAqLwotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfQkFOSwkwCSAgICAvKiB1c2UgZm9yIEpGRlMyICovCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJMQkgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyBVLUJvb3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCTAJICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJMQkgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyBVLUJvb3QgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzQsMjQgKzIzNCwyNCBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NzAwCS8qIDIwNDggYnl0ZXMgbWF5IGJlIHVzZWQgZm9yIGVudiB2YXJzKi8KIAkJCQkgICAvKiB0b3RhbCBzaXplIG9mIGEgQ0FUMjRXQzE2IGlzIDIwNDggYnl0ZXMgKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4RjAwMDA1MDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KIAkJCQkJLyogMTYgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0yNjYsMjEgKzI2NiwyMSBAQAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCwgTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKLS8qI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkgIDB4MDgwNTU4ODAgIC9YWFgqIFRXVD0xNixDU049MSxPRU49MSxXQk49MSxXQkY9MSxUSD00LFNPUj0xICovCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisvKiNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCSAgMHgwODA1NTg4MCAgL1hYWCogVFdUPTE2LENTTj0xLE9FTj0xLFdCTj0xLFdCRj0xLFRIPTQsU09SPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKEZsYXNoIEJhbmsgMSwgTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4RjQwMTgwMDAgIC8qIEJBUz0weEY0MCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4RjQwMTgwMDAgIC8qIEJBUz0weEY0MCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoOCBCaXQgUGVyaXBoZXJhbDogQ0FOLCBVQVJULCBSVEMpIGluaXRpYWxpemF0aW9uCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKDE2IEJpdCBQZXJpcGhlcmFsOiBGUEdBIGludGVybmFsLCBkaWcuIElPKSBpbml0aWFsaXphdGlvbgkqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJMHhGMDExQTAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJMHhGMDExQTAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogI2RlZmluZSBDQU5fQkEJCTB4RjAwMDAwMDAJICAgIC8qIENBTiBCYXNlIEFkZHJlc3MJCQkqLwogI2RlZmluZSBEVUFSVDBfQkEJMHhGMDAwMDQwMAkgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzCQkqLwpAQCAtMjg4LDM2ICsyODgsMzYgQEAKICNkZWZpbmUgRFVBUlQyX0JBCTB4RjAwMDA0MTAJICAgIC8qIERVQVJUIEJhc2UgQWRkcmVzcwkJKi8KICNkZWZpbmUgRFVBUlQzX0JBCTB4RjAwMDA0MTgJICAgIC8qIERVQVJUIEJhc2UgQWRkcmVzcwkJKi8KICNkZWZpbmUgUlRDX0JBCQkweEYwMDAwNTAwCSAgICAvKiBSVEMgQmFzZSBBZGRyZXNzCQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkweEY0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCTB4RjQwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgogICovCi0jZGVmaW5lIENGR19GUEdBX1NQQVJUQU4yCTEJICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCi0jZGVmaW5lIENGR19GUEdBX01BWF9TSVpFCTEyOCoxMDI0ICAgIC8qIDEyOGtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzUwRSovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TUEFSVEFOMgkxCSAgICAvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdyAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUJMTI4KjEwMjQgICAgLyogMTI4a0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTNTBFKi8KIAogLyogRlBHQSBwcm9ncmFtIHBpbiBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ0xLCQkweDAyMDAwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9JTklUCQkweDAwMDEwMDAwICAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9ET05FCQkweDAwMDA4MDAwICAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ0xLCQkweDAyMDAwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9ET05FCQkweDAwMDA4MDAwICAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIGRhdGEgY2FjaGUpCiAgKi8KIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkgIDEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIEdQSU8gc2V0dXAgKFBQQzQwNUVQIHNwZWNpZmljKQpAQCAtMzMxLDE1ICszMzEsMTUgQEAKICAqIEdQSU8wWzI4LTI5XSAtIFVBUlQxIGRhdGEgc2lnbmFsIGlucHV0L291dHB1dAogICogR1BJTzBbMzAtMzFdIC0gRU1BQzAgYW5kIEVNQUMxIHJlamVjdCBwYWNrZXQgaW5wdXRzCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkgJCTB4NDAwMDA1NTAKLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9JU1IxTAkJMHgxNTU1NTQ0NQotI2RlZmluZSBDRkdfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVENSCQkweEY3RkUwMDE0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSSAkJMHg0MDAwMDU1MAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFMCQkweDE1NTU1NDQ1CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UQ1IJCTB4RjdGRTAwMTQKIAotI2RlZmluZSBDRkdfRFVBUlRfUlNUCQkoMHg4MDAwMDAwMCA+PiAxNCkKKyNkZWZpbmUgQ09ORklHX1NZU19EVUFSVF9SU1QJCSgweDgwMDAwMDAwID4+IDE0KQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9YUEVESVRFMUsuaCBiL2luY2x1ZGUvY29uZmlncy9YUEVESVRFMUsuaAppbmRleCBkNTMzYjE3Li41NjliYjkwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvWFBFRElURTFLLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1hQRURJVEUxSy5oCkBAIC0zOCwyOSArMzgsMjkgQEAKICNkZWZpbmUgQ09ORklHXzQ0MAkJMQogI2RlZmluZSBDT05GSUdfNDQwR1gJCTEJCS8qIDQ0MCBHWCAqLwogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIDEJCS8qIENhbGwgYm9hcmRfcHJlX2luaXQJKi8KLSN1bmRlZglDRkdfRFJBTV9URVNUCQkJCS8qIERpc2FibGUtdGFrZXMgbG9uZyB0aW1lISAqLworI3VuZGVmCUNPTkZJR19TWVNfRFJBTV9URVNUCQkJCS8qIERpc2FibGUtdGFrZXMgbG9uZyB0aW1lISAqLwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTMzMzMzMzMzCS8qIGV4dGVybmFsIGZyZXEgdG8gcGxsICovCiAKIAogLyogUE9TVCBzdXBwb3J0ICovCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfUlRDCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9JMkMpCisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX1JUQwkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0kyQykKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCQkvKiBfbXVzdF8gYmUgMAkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJICAgIDB4ZmZmODAwMDAJCS8qIHN0YXJ0IG9mIEZMQVNICSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAkJLyogX211c3RfIGJlIDAJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkgICAgMHhmZmY4MDAwMAkJLyogc3RhcnQgb2YgRkxBU0gJKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIENGR19GTEFTSF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCSAgICAweDgwMDAwMDAwCQkvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUEVSSVBIRVJBTF9CQVNFIDB4ZTAwMDAwMDAJCS8qIGludGVybmFsIHBlcmlwaGVyYWxzICovCi0jZGVmaW5lIENGR19JU1JBTV9CQVNFCSAgICAweGMwMDAwMDAwCQkvKiBpbnRlcm5hbCBTUkFNCSovCi0jZGVmaW5lIENGR19QQ0lfQkFTRQkgICAgMHhkMDAwMDAwMAkJLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkgICAgMHg4MDAwMDAwMAkJLyogbWFwcGVkIHBjaSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgMHhlMDAwMDAwMAkJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JU1JBTV9CQVNFCSAgICAweGMwMDAwMDAwCQkvKiBpbnRlcm5hbCBTUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJICAgIDB4ZDAwMDAwMDAJCS8qIGludGVybmFsIFBDSSByZWdzCSovCiAKLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUiAoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDgwMDAwMDApCi0jZGVmaW5lIENGR19HUElPX0JBU0UJICAgIChDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDcwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0JBU0UJICAgIChDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDA3MDApCiAKICNkZWZpbmUgVVNSX0xFRDAJICAgIDB4MDAwMDAwODAKICNkZWZpbmUgVVNSX0xFRDEJICAgIDB4MDAwMDAxMDAKQEAgLTcxLDMzICs3MSwzMyBAQAogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW4zMih1bnNpZ25lZCBpbnQpOwogZXh0ZXJuIHZvaWQgb3V0MzIodW5zaWduZWQgaW50LCB1bnNpZ25lZCBsb25nKTsKIAotI2RlZmluZSBMRUQwX09OKCkgb3V0MzIoQ0ZHX0dQSU9fQkFTRSwgKGluMzIoQ0ZHX0dQSU9fQkFTRSkgJiB+VVNSX0xFRDApKQotI2RlZmluZSBMRUQxX09OKCkgb3V0MzIoQ0ZHX0dQSU9fQkFTRSwgKGluMzIoQ0ZHX0dQSU9fQkFTRSkgJiB+VVNSX0xFRDEpKQotI2RlZmluZSBMRUQyX09OKCkgb3V0MzIoQ0ZHX0dQSU9fQkFTRSwgKGluMzIoQ0ZHX0dQSU9fQkFTRSkgJiB+VVNSX0xFRDIpKQotI2RlZmluZSBMRUQzX09OKCkgb3V0MzIoQ0ZHX0dQSU9fQkFTRSwgKGluMzIoQ0ZHX0dQSU9fQkFTRSkgJiB+VVNSX0xFRDMpKQorI2RlZmluZSBMRUQwX09OKCkgb3V0MzIoQ09ORklHX1NZU19HUElPX0JBU0UsIChpbjMyKENPTkZJR19TWVNfR1BJT19CQVNFKSAmIH5VU1JfTEVEMCkpCisjZGVmaW5lIExFRDFfT04oKSBvdXQzMihDT05GSUdfU1lTX0dQSU9fQkFTRSwgKGluMzIoQ09ORklHX1NZU19HUElPX0JBU0UpICYgflVTUl9MRUQxKSkKKyNkZWZpbmUgTEVEMl9PTigpIG91dDMyKENPTkZJR19TWVNfR1BJT19CQVNFLCAoaW4zMihDT05GSUdfU1lTX0dQSU9fQkFTRSkgJiB+VVNSX0xFRDIpKQorI2RlZmluZSBMRUQzX09OKCkgb3V0MzIoQ09ORklHX1NZU19HUElPX0JBU0UsIChpbjMyKENPTkZJR19TWVNfR1BJT19CQVNFKSAmIH5VU1JfTEVEMykpCiAKLSNkZWZpbmUgTEVEMF9PRkYoKSBvdXQzMihDRkdfR1BJT19CQVNFLCAoaW4zMihDRkdfR1BJT19CQVNFKSB8IFVTUl9MRUQwKSkKLSNkZWZpbmUgTEVEMV9PRkYoKSBvdXQzMihDRkdfR1BJT19CQVNFLCAoaW4zMihDRkdfR1BJT19CQVNFKSB8IFVTUl9MRUQxKSkKLSNkZWZpbmUgTEVEMl9PRkYoKSBvdXQzMihDRkdfR1BJT19CQVNFLCAoaW4zMihDRkdfR1BJT19CQVNFKSB8IFVTUl9MRUQyKSkKLSNkZWZpbmUgTEVEM19PRkYoKSBvdXQzMihDRkdfR1BJT19CQVNFLCAoaW4zMihDRkdfR1BJT19CQVNFKSB8IFVTUl9MRUQzKSkKKyNkZWZpbmUgTEVEMF9PRkYoKSBvdXQzMihDT05GSUdfU1lTX0dQSU9fQkFTRSwgKGluMzIoQ09ORklHX1NZU19HUElPX0JBU0UpIHwgVVNSX0xFRDApKQorI2RlZmluZSBMRUQxX09GRigpIG91dDMyKENPTkZJR19TWVNfR1BJT19CQVNFLCAoaW4zMihDT05GSUdfU1lTX0dQSU9fQkFTRSkgfCBVU1JfTEVEMSkpCisjZGVmaW5lIExFRDJfT0ZGKCkgb3V0MzIoQ09ORklHX1NZU19HUElPX0JBU0UsIChpbjMyKENPTkZJR19TWVNfR1BJT19CQVNFKSB8IFVTUl9MRUQyKSkKKyNkZWZpbmUgTEVEM19PRkYoKSBvdXQzMihDT05GSUdfU1lTX0dQSU9fQkFTRSwgKGluMzIoQ09ORklHX1NZU19HUElPX0JBU0UpIHwgVVNSX0xFRDMpKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlciAocGxhY2VkIGluIGludGVybmFsIFNSQU0pCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00gIDEKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIgICBDRkdfSVNSQU1fQkFTRQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgIENGR19JU1JBTV9CQVNFICAvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgMHgyMDAwCSAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgIDEyOAkJICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTSAgMQorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgICBDT05GSUdfU1lTX0lTUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgQ09ORklHX1NZU19JU1JBTV9CQVNFICAvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgIDB4MjAwMAkgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgMTI4CQkgICAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YQkqLwogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfUE9TVF9XT1JEX0FERFIgIChDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQgIENGR19QT1NUX1dPUkRfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIgIChDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkgICAgKDI1NiAqIDEwMjQpICAgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24JKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JICAgICgxMjggKiAxMDI0KSAgICAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkgICAgKDI1NiAqIDEwMjQpICAgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSAgICAoMTI4ICogMTAyNCkgICAgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYyovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CkBAIC0xMDUsNyArMTA1LDcgQEAKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKICAgICB7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTE1LDIzICsxMTUsMjMgQEAKICAqIFRoZSBEUzE3NDMgY29kZSBhc3N1bWVzIHRoaXMgY29uZGl0aW9uIChpLmUuIC0tIGl0IGFzc3VtZXMgdGhlIGJhc2UKICAqIGFkZHJlc3MgZm9yIHRoZSBSVEMgcmVnaXN0ZXJzIGlzOgogICoKLSAqCUNGR19OVlJBTV9CQVNFX0FERFIgKyBDRkdfTlZSQU1fU0laRQorICoJQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX05WUkFNX1NJWkUKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogVEJTOgkgWHBlZGl0ZSAxMDAwIGhhcyBTVE1pY3JvIE00MVQwMCB2aWEgSUlDICovCiAjZGVmaW5lIENPTkZJR19SVENfTTQxVDExIDEKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUiAweDY4Ci0jZGVmaW5lIENGR19NNDFUMTFfQkFTRV9ZRUFSIDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIgMHg2OAorI2RlZmluZSBDT05GSUdfU1lTX000MVQxMV9CQVNFX1lFQVIgMjAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCByZWxhdGVkCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCSAgICAvKiBudW1iZXIgb2YgYmFua3MJICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk4CQkgICAgLyogc2VjdG9ycyBwZXIgZGV2aWNlICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJICAgIC8qIG51bWJlciBvZiBiYW5rcwkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk4CQkgICAgLyogc2VjdG9ycyBwZXIgZGV2aWNlICAgKi8KIAotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCSAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEREUiBTRFJBTQpAQCAtMTQ0LDkgKzE0NCw5IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJICAgIC8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkgICAgLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3ZgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXsweDU1LDB4NTYsMHg1NywweDU4LDB4NTksMHg1YSwweDViLDB4NWMsMHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N2YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4NTUsMHg1NiwweDU3LDB4NTgsMHg1OSwweDVhLDB4NWIsMHg1YywweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudApAQCAtMTU0LDEwICsxNTQsMTAgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00gMQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwCSAgICAvKiBTaXplIG9mIEVudmlyb25tZW50IHZhcnMgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MTAwCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkJLyogdGhpcyBpcyBhY3R1YWxseSB0aGUgc2Vjb25kIHBhZ2Ugb2YgdGhlIGVlcHJvbSAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJCS8qIHRoaXMgaXMgYWN0dWFsbHkgdGhlIHNlY29uZCBwYWdlIG9mIHRoZSBlZXByb20gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAogCiAjZGVmaW5lIENPTkZJR19CT09UQVJHUwkJInJvb3Q9L2Rldi9oZGExICIKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJib290bSBmZmMwMDAwMCIgICAgLyogYXV0b2Jvb3QgY29tbWFuZCAqLwpAQCAtMTY1LDcgKzE2NSw3IEBACiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJOTYwMAogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCTAJLyogUEhZIGFkZHJlc3MgcGh5MCBub3QgcG9wdWxhdGVkICovCkBAIC0xNzUsNyArMTc1LDcgQEAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjZGVmaW5lIENPTkZJR19QSFlfR0lHRQkJMQkvKiBJbmNsdWRlIEdiRSBzcGVlZC9kdXBsZXggZGV0ZWN0aW9uICovCiAjZGVmaW5lIENPTkZJR19QSFlfUkVTRVQgICAgICAgIDEgICAgICAgLyogcmVzZXQgcGh5IHVwb24gc3RhcnR1cCAgICAgICAgICovCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSICAgMzIJLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIgICAzMgkvKiBOdW1iZXIgb2YgZXRoZXJuZXQgcnggYnVmZmVycyAmIGRlc2NyaXB0b3JzICovCiAKICNkZWZpbmUgQ09ORklHX0hBU19FVEgxCQkxCS8qIGFkZCBzdXBwb3J0IGZvciAiZXRoMWFkZHIiCSovCiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMgkJMQkvKiBhZGQgc3VwcG9ydCBmb3IgImV0aDJhZGRyIgkqLwpAQCAtMjE0LDI0ICsyMTQsMjQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0MiwyMCArMjQyLDIwIEBACiAjZGVmaW5lIENPTkZJR19QQ0kJCQkJICAgIC8qIGluY2x1ZGUgcGNpIHN1cHBvcnQJCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJCS8qIGRvIHBjaSBwbHVnLWFuZC1wbGF5CQkqLwogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwCSovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0JBU0UgICAgMHg4MDAwMDAwMAkvKiBQQ0lhZGRyIG1hcHBlZCB0byBDRkdfUENJX01FTUJBU0UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UgICAgMHg4MDAwMDAwMAkvKiBQQ0lhZGRyIG1hcHBlZCB0byBDT05GSUdfU1lTX1BDSV9NRU1CQVNFICovCiAKIC8qIEJvYXJkLXNwZWNpZmljIFBDSSAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdFVF9JTklUCQkgICAgLyogbGV0IGJvYXJkIGluaXQgcGNpIHRhcmdldCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVAkJICAgIC8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQgICAgKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwMTQJLyogSUJNICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkvKiBXaGF0ZXZlciAqLwotI2RlZmluZSBDRkdfUENJX0ZPUkNFX1BDSV9DT05WICAgICAgICAgIC8qIEZvcmNlIFBDSSBDb252ZW50aW9uYWwgTW9kZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDE0CS8qIElCTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHhjYWZlCS8qIFdoYXRldmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0ZPUkNFX1BDSV9DT05WICAgICAgICAgIC8qIEZvcmNlIFBDSSBDb252ZW50aW9uYWwgTW9kZSAqLwogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1l1a29uODIyMC5oIGIvaW5jbHVkZS9jb25maWdzL1l1a29uODIyMC5oCmluZGV4IGNiYzFlZDYuLmM0MzkwNjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ZdWtvbjgyMjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvWXVrb244MjIwLmgKQEAgLTM1LDggKzM1LDggQEAKIAogLyogSW5wdXQgY2xvY2sgcnVubmluZyBhdCAzME1oeiwgcmVhZCBIaWQxIGZvciB0aGUgQ1BVIG11bHRpcGxpZXIgdG8KICAgIGRldGVybWluZSB0aGUgQ1BVIHNwZWVkLiAqLwotI2RlZmluZSBDRkdfTVBDODIyMF9DTEtJTgkzMDAwMDAwMC8qIC4uLiBydW5uaW5nIGF0IDMwTUh6ICovCi0jZGVmaW5lIENGR19NUEM4MjIwX1NZU1BMTF9WQ09fTVVMVElQTElFUiAxNiAvKiBWQ08gbXVsdGlwbGllciBjYW4ndCBiZSByZWFkIGZyb20gYW55IHJlZ2lzdGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODIyMF9DTEtJTgkzMDAwMDAwMC8qIC4uLiBydW5uaW5nIGF0IDMwTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODIyMF9TWVNQTExfVkNPX01VTFRJUExJRVIgMTYgLyogVkNPIG11bHRpcGxpZXIgY2FuJ3QgYmUgcmVhZCBmcm9tIGFueSByZWdpc3RlciAqLwogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QJKi8KQEAgLTUzLDE2ICs1MywxNiBAQAogCiAjaWZkZWYgQ09ORklHX0VYVFVBUlRfQ09OU09MRQogIyAgIGRlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCi0jICAgZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotIyAgIGRlZmluZSBDRkdfTlMxNjU1MAotIyAgIGRlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRSAxCi0jICAgZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19DUExEX0JBU0UgKyAweDEwMDgpCi0jICAgZGVmaW5lIENGR19OUzE2NTUwX0NMSwkxODQzMjAwMAorIyAgIGRlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjICAgZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorIyAgIGRlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUgMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19DUExEX0JBU0UgKyAweDEwMDgpCisjICAgZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJMTg0MzIwMDAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCSAgICAvKiAuLi4gYXQgMTE1MjAwIGJwcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogI2RlZmluZSBDT05GSUdfVElNRVNUQU1QCQkJLyogUHJpbnQgaW1hZ2UgaW5mbyB3aXRoIHRpbWVzdGFtcCAqLwogCkBAIC0xMjAsMTA0ICsxMjAsMTA0IEBACiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJCTEKIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUyCS8qIDEwMTEwMDB4YiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MgkvKiAxMDExMDAweGIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNzAKIC8qCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkyNTYKICovCiAKLS8qIElmIENGR19BTURfQk9PVCBpcyBkZWZpbmVkLCB0aGUgdGhlIHN5c3RlbSB3aWxsIGJvb3QgZnJvbSBBTUQuCisvKiBJZiBDT05GSUdfU1lTX0FNRF9CT09UIGlzIGRlZmluZWQsIHRoZSB0aGUgc3lzdGVtIHdpbGwgYm9vdCBmcm9tIEFNRC4KICAgIGVsc2UgdW5kZWZpbmVkIGl0IHdpbGwgYm9vdCBmcm9tIEludGVsIFN0cmF0YSBmbGFzaCAqLwotI2RlZmluZSBDRkdfQU1EX0JPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19BTURfQk9PVAkJMQogCiAvKgogICogRmxleGJ1cyBDaGlwc2VsZWN0IGNvbmZpZ3VyYXRpb24KICAqLwotI2lmIGRlZmluZWQgKENGR19BTURfQk9PVCkKLSNkZWZpbmUgQ0ZHX0NTMF9CQVNFCQkweGZmZjAKLSNkZWZpbmUgQ0ZHX0NTMF9NQVNLCQkweDAwMDgwMDAwICAvKiA1MTIgS0IgKi8KLSNkZWZpbmUgQ0ZHX0NTMF9DVFJMCQkweDAwM2YwZDQwCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19BTURfQk9PVCkKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQkFTRQkJMHhmZmYwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX01BU0sJCTB4MDAwODAwMDAgIC8qIDUxMiBLQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMF9DVFJMCQkweDAwM2YwZDQwCiAKLSNkZWZpbmUgQ0ZHX0NTMV9CQVNFCQkweGZlMDAKLSNkZWZpbmUgQ0ZHX0NTMV9NQVNLCQkweDAxMDAwMDAwICAvKiAxNiBNQiAqLwotI2RlZmluZSBDRkdfQ1MxX0NUUkwJCTB4MDAzZjE1NDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQkFTRQkJMHhmZTAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX01BU0sJCTB4MDEwMDAwMDAgIC8qIDE2IE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NUUkwJCTB4MDAzZjE1NDAKICNlbHNlCi0jZGVmaW5lIENGR19DUzBfQkFTRQkJMHhmZjAwCi0jZGVmaW5lIENGR19DUzBfTUFTSwkJMHgwMTAwMDAwMCAgLyogMTYgTUIgKi8KLSNkZWZpbmUgQ0ZHX0NTMF9DVFJMCQkweDAwM2YxNTQwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0JBU0UJCTB4ZmYwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9NQVNLCQkweDAxMDAwMDAwICAvKiAxNiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMF9DVFJMCQkweDAwM2YxNTQwCiAKLSNkZWZpbmUgQ0ZHX0NTMV9CQVNFCQkweGZlMDgKLSNkZWZpbmUgQ0ZHX0NTMV9NQVNLCQkweDAwMDgwMDAwICAvKiA1MTIgS0IgKi8KLSNkZWZpbmUgQ0ZHX0NTMV9DVFJMCQkweDAwM2YwZDQwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0JBU0UJCTB4ZmUwOAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9NQVNLCQkweDAwMDgwMDAwICAvKiA1MTIgS0IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ1RSTAkJMHgwMDNmMGQ0MAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0NTMl9CQVNFCQkweGYxMDAKLSNkZWZpbmUgQ0ZHX0NTMl9NQVNLCQkweDAwMDQwMDAwCi0jZGVmaW5lIENGR19DUzJfQ1RSTAkJMHgwMDNmMTE0MAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9CQVNFCQkweGYxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfTUFTSwkJMHgwMDA0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9DVFJMCQkweDAwM2YxMTQwCiAKLSNkZWZpbmUgQ0ZHX0NTM19CQVNFCQkweGYyMDAKLSNkZWZpbmUgQ0ZHX0NTM19NQVNLCQkweDAwMDQwMDAwCi0jZGVmaW5lIENGR19DUzNfQ1RSTAkJMHgwMDNmMTEwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19CQVNFCQkweGYyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfTUFTSwkJMHgwMDA0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19DVFJMCQkweDAwM2YxMTAwCiAKIAotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UJCShDRkdfQ1MwX0JBU0UgPDwgMTYpCi0jZGVmaW5lIENGR19GTEFTSDFfQkFTRQkJKENGR19DUzFfQkFTRSA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRQkJKENPTkZJR19TWVNfQ1MwX0JBU0UgPDwgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX0JBU0UJCShDT05GSUdfU1lTX0NTMV9CQVNFIDw8IDE2KQogCi0jaWYgZGVmaW5lZCAoQ0ZHX0FNRF9CT09UKQotI2RlZmluZSBDRkdfQU1EX0JBU0UJCUNGR19GTEFTSDBfQkFTRQotI2RlZmluZSBDRkdfSU5URUxfQkFTRQkJQ0ZHX0ZMQVNIMV9CQVNFICsgMHhmMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19BTURfQkFTRQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfQU1EX0JPT1QpCisjZGVmaW5lIENPTkZJR19TWVNfQU1EX0JBU0UJCUNPTkZJR19TWVNfRkxBU0gwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRFTF9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIMV9CQVNFICsgMHhmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0FNRF9CQVNFCiAjZWxzZQotI2RlZmluZSBDRkdfSU5URUxfQkFTRQkJQ0ZHX0ZMQVNIMF9CQVNFICsgMHhmMDAwMDAKLSNkZWZpbmUgQ0ZHX0FNRF9CQVNFCQlDRkdfRkxBU0gxX0JBU0UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19JTlRFTF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5URUxfQkFTRQkJQ09ORklHX1NZU19GTEFTSDBfQkFTRSArIDB4ZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQU1EX0JBU0UJCUNPTkZJR19TWVNfRkxBU0gxX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0lOVEVMX0JBU0UKICNlbmRpZgogCi0jZGVmaW5lIENGR19DUExEX0JBU0UJCShDRkdfQ1MyX0JBU0UgPDwgMTYpCi0jZGVmaW5lIENGR19GUEdBX0JBU0UJCShDRkdfQ1MzX0JBU0UgPDwgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfQ1BMRF9CQVNFCQkoQ09ORklHX1NZU19DUzJfQkFTRSA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0UJCShDT05GSUdfU1lTX0NTM19CQVNFIDw8IDE2KQogCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwk0CS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwk0CS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0xPQ0tfVE9VVAk1CS8qIFRpbWVvdXQgZm9yIEZsYXNoIFNldCBMb2NrIEJpdCAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9VTkxPQ0tfVE9VVAkxMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBDbGVhciBMb2NrIEJpdHMgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkJLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVAkxMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBDbGVhciBMb2NrIEJpdHMgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLwogCiAjZGVmaW5lIFBIWVNfQU1EX1NFQ1RfU0laRQkweDAwMDEwMDAwIC8qICA2NCBLQiBzZWN0b3JzICh4MikgKi8KICNkZWZpbmUgUEhZU19JTlRFTF9TRUNUX1NJWkUJMHgwMDAyMDAwMCAvKiAxMjggS0Igc2VjdG9ycyAoeDIpICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2lmIGRlZmluZWQgKENGR19BTURfQk9PVCkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIMF9CQVNFICsgQ0ZHX0NTMF9NQVNLIC0gUEhZU19BTURfU0VDVF9TSVpFKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfQU1EX0JPT1QpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0gwX0JBU0UgKyBDT05GSUdfU1lTX0NTMF9NQVNLIC0gUEhZU19BTURfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCVBIWVNfQU1EX1NFQ1RfU0laRQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQlQSFlTX0FNRF9TRUNUX1NJWkUKLSNkZWZpbmUgQ09ORklHX0VOVjFfQUREUgkJKENGR19GTEFTSDFfQkFTRSArIENGR19DUzFfTUFTSyAtIFBIWVNfSU5URUxfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WMV9BRERSCQkoQ09ORklHX1NZU19GTEFTSDFfQkFTRSArIENPTkZJR19TWVNfQ1MxX01BU0sgLSBQSFlTX0lOVEVMX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVjFfU0laRQkJUEhZU19JTlRFTF9TRUNUX1NJWkUKICNkZWZpbmUgQ09ORklHX0VOVjFfU0VDVF9TSVpFCVBIWVNfSU5URUxfU0VDVF9TSVpFCiAjZWxzZQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0gwX0JBU0UgKyBDRkdfQ1MwX01BU0sgLSBQSFlTX0lOVEVMX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSDBfQkFTRSArIENPTkZJR19TWVNfQ1MwX01BU0sgLSBQSFlTX0lOVEVMX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlQSFlTX0lOVEVMX1NFQ1RfU0laRQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQlQSFlTX0lOVEVMX1NFQ1RfU0laRQotI2RlZmluZSBDT05GSUdfRU5WMV9BRERSCQkoQ0ZHX0ZMQVNIMV9CQVNFICsgQ0ZHX0NTMV9NQVNLIC0gUEhZU19BTURfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WMV9BRERSCQkoQ09ORklHX1NZU19GTEFTSDFfQkFTRSArIENPTkZJR19TWVNfQ1MxX01BU0sgLSBQSFlTX0FNRF9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlYxX1NJWkUJCVBIWVNfQU1EX1NFQ1RfU0laRQogI2RlZmluZSBDT05GSUdfRU5WMV9TRUNUX1NJWkUJUEhZU19BTURfU0VDVF9TSVpFCiAjZW5kaWYKQEAgLTIzNSw1MSArMjM1LDUxIEBACiAjdW5kZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX0pGRlMyX0ZJUlNUX1NFQ1RPUgotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfU0VDVE9SCTAKKyNpZm5kZWYgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9TRUNUT1IKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9TRUNUT1IJMAogI2VuZGlmCi0jaWZuZGVmIENGR19KRkZTMl9GSVJTVF9CQU5LCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LCTAKKyNpZm5kZWYgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOSwkwCiAjZW5kaWYKLSNpZm5kZWYgQ0ZHX0pGRlMyX05VTV9CQU5LUwotI2RlZmluZSBDRkdfSkZGUzJfTlVNX0JBTktTCTEKKyNpZm5kZWYgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJMQogI2VuZGlmCi0jZGVmaW5lIENGR19KRkZTMl9MQVNUX0JBTksgKENGR19KRkZTMl9GSVJTVF9CQU5LICsgQ0ZHX0pGRlMyX05VTV9CQU5LUyAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfTEFTVF9CQU5LIChDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksgKyBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUyAtIDEpCiAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19TUkFNX0JBU0UJCShDRkdfTUJBUiArIDB4MjAwMDApCi0jZGVmaW5lIENGR19TUkFNX1NJWkUJCTB4ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX0JBU0UJCShDT05GSUdfU1lTX01CQVIgKyAweDIwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fU0laRQkJMHg4MDAwCiAKIC8qIFVzZSBTUkFNIHVudGlsIFJBTSB3aWxsIGJlIGF2YWlsYWJsZSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkoQ0ZHX01CQVIgKyAweDIwMDAwKQotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkoQ09ORklHX1NZU19NQkFSICsgMHgyMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg4MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKSAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyogU0RSQU0gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfU0RSQU1fVE9UQUxfQkFOS1MJCTIKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NQRF9JMkNfQUREUgkJMHg1MQkJLyogN2JpdCAqLwotI2RlZmluZSBDRkdfU0RSQU1fU1BEX1NJWkUJCTB4NDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0NBU19MQVRFTkNZCQk0CQkvKiAoQ0w9Mil4MiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1RPVEFMX0JBTktTCQkyCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU1BEX0kyQ19BRERSCQkweDUxCQkvKiA3Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU1BEX1NJWkUJCTB4NDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DQVNfTEFURU5DWQkJNAkJLyogKENMPTIpeDIgKi8KIAogLyogU0RSQU0gZHJpdmUgc3RyZW5ndGggcmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0RSSVZFX1NUUkVOR1RICSgoRFJJVkVfU1RSRU5HVEhfTE9XICA8PCBTRFJBTURTX1NCRV9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRFJJVkVfU1RSRU5HVEgJKChEUklWRV9TVFJFTkdUSF9MT1cgIDw8IFNEUkFNRFNfU0JFX1NISUZUKSB8IFwKIAkJCQkJIChEUklWRV9TVFJFTkdUSF9ISUdIIDw8IFNEUkFNRFNfU0JDX1NISUZUKSB8IFwKIAkJCQkJIChEUklWRV9TVFJFTkdUSF9MT1cgIDw8IFNEUkFNRFNfU0JBX1NISUZUKSB8IFwKIAkJCQkJIChEUklWRV9TVFJFTkdUSF9PRkYgIDw8IFNEUkFNRFNfU0JTX1NISUZUKSB8IFwKQEAgLTI5NiwzMyArMjk2LDMzIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkgICAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkgICAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CSAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CSAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwICAvKiAxIC4uLiAxNSBNQiBpbiBEUkFNICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMCAgLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwICAvKiAxIC4uLiAxNSBNQiBpbiBEUkFNICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMCAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJICAgIC8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJICAgIC8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyMjAgQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjIwIENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUgICAvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUgICAvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1pQQzE5MDAuaCBiL2luY2x1ZGUvY29uZmlncy9aUEMxOTAwLmgKaW5kZXggNTljY2EwYi4uOWNkYTNmOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1pQQzE5MDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvWlBDMTkwMC5oCkBAIC03MywxMCArNzMsMTAgQEAKICAqIC0gU2VsZWN0IGJ1cyBmb3IgYmQvYnVmZmVycyAoc2VlIDI4LTEzKQogICogLSBGdWxsIGR1cGxleAogICovCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxMyB8IENNWEZDUl9URjJDU19DTEsxNCkKLSMgZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQorIyBkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjIGRlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQogCiAjZW5kaWYgLyogQ09ORklHX0VUSEVSX0lOREVYICovCiAKQEAgLTE0Niw3OSArMTQ2LDc5IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDM4MDAwMDAJLyogMSAuLi4gNTYgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDM4MDAwMDAJLyogMSAuLi4gNTYgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4NDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDQwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQk2NAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQk2NAogCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19MU0RSQU1fQkFTRQkJMHhGQzAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAotI2RlZmluZSBDRkdfQkNTUgkJMHhGRUEwMDAwMAotI2RlZmluZSBDRkdfRUVQUk9NCQkweEZFQjAwMDAwCi0jZGVmaW5lIENGR19GTFNJTU1fQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MU0RSQU1fQkFTRQkJMHhGQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSCQkweEZFQTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NCQkweEZFQjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxTSU1NX0JBU0UJCTB4RkYwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkzMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTMyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFLCBDRkdfRkxTSU1NX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxTSU1NX0JBU0UgfQogCiAjZGVmaW5lIEJDU1JfUENJX01PREUJCTB4MDEKIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKiBIYXJkIHJlc2V0IGNvbmZpZ3VyYXRpb24gd29yZCAqLwotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJCShIUkNXX0VCTSB8IEhSQ1dfQlBTMDF8IEhSQ1dfQ0lQICAgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJCShIUkNXX0VCTSB8IEhSQ1dfQlBTMDF8IEhSQ1dfQ0lQICAgICAgICAgIHxcCiAJCQkJIEhSQ1dfTDJDUEMxMCB8IEhSQ1dfRFBQQzAwIHwgSFJDV19JU0IxMDAgfFwKIAkJCQkgSFJDV19CTVMgfCBIUkNXX0xCUEMwMCB8IEhSQ1dfQVBQQzEwICAgICB8XAogCQkJCSBIUkNXX01PRENLX0gwMTExICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAJCQkJKSAvKiAweDE2ODQ4MjA3ICovCiAvKiBObyBzbGF2ZXMgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJCTAKIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290ICAgICAgICAgICAgICAgICAgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNDA5NiA8PCAxMCkJLyogUmVzZXJ2ZSA0IE1CIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg0MDk2IDw8IDEwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAjaWYgIWRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkgJiYgIWRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9OVlJBTSkKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTQkxCkBAIC0yMjYsNTMgKzIyNiw1MyBAQAogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogIyAgZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKICNlbHNlCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0VFUFJPTSArIDB4NDAwKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRUVQUk9NICsgMHg0MDApCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAKLSMgIGRlZmluZSBDRkdfTlZSQU1fQUNDRVNTX1JPVVRJTkUKKyMgIGRlZmluZSBDT05GSUdfU1lTX05WUkFNX0FDQ0VTU19ST1VUSU5FCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJKEhJRDBfSUNGSSkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCShISUQwX0lDRSB8IEhJRDBfSUZFTSB8IEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJKEhJRDBfSUNGSSkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkoSElEMF9JQ0UgfCBISUQwX0lGRU0gfCBISUQwX0FCRSkKIAotI2RlZmluZSBDRkdfSElEMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJCTAKIAotI2RlZmluZSBDRkdfU0lVTUNSCQkweDQyMjAwMDAwCi0jZGVmaW5lIENGR19TWVBDUgkJMHhGRkZGRkZDMwotI2RlZmluZSBDRkdfQkNSCQkJMHg5MDAwMDAwMAotI2RlZmluZSBDRkdfU0NDUgkJU0NDUl9ERkJSRzAxCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCQkweDQyMjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJCTB4RkZGRkZGQzMKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IJCQkweDkwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkJU0NDUl9ERkJSRzAxCiAKLSNkZWZpbmUgQ0ZHX1JNUgkJCVJNUl9DU1JFCi0jZGVmaW5lIENGR19UTUNOVFNDCQkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCi0jZGVmaW5lIENGR19QSVNDUgkJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCi0jZGVmaW5lIENGR19SQ0NSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQkJUk1SX0NTUkUKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDCQkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IJCTAKIAotI2RlZmluZSBDRkdfUFNETVIJCS8qIDB4ODM0REE0M0IgKi8weDAxNERBNDNBCi0jZGVmaW5lIENGR19QU1JUCQkweDBGLyogMHgwQyAqLwotI2RlZmluZSBDRkdfTFNETVIJCTB4MDA4NUE1NjIKLSNkZWZpbmUgQ0ZHX0xTUlQJCTB4MEYKLSNkZWZpbmUgQ0ZHX01QVFBSCQkweDQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUgkJLyogMHg4MzREQTQzQiAqLzB4MDE0REE0M0EKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUCQkweDBGLyogMHgwQyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xTRE1SCQkweDAwODVBNTYyCisjZGVmaW5lIENPTkZJR19TWVNfTFNSVAkJMHgwRgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCQkweDQwMDAKIAotI2RlZmluZSBDRkdfUFNEUkFNX0JSCQkoQ0ZHX1NEUkFNX0JBU0UgfCAweDAwMDAwMDQxKQotI2RlZmluZSBDRkdfUFNEUkFNX09SCQkweEZDMDAyOEMwCi0jZGVmaW5lIENGR19MU0RSQU1fQlIJCShDRkdfTFNEUkFNX0JBU0UgfCAweDAwMDAxODYxKQotI2RlZmluZSBDRkdfTFNEUkFNX09SCQkweEZGODAzNDgwCisjZGVmaW5lIENPTkZJR19TWVNfUFNEUkFNX0JSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgMHgwMDAwMDA0MSkKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RSQU1fT1IJCTB4RkMwMDI4QzAKKyNkZWZpbmUgQ09ORklHX1NZU19MU0RSQU1fQlIJCShDT05GSUdfU1lTX0xTRFJBTV9CQVNFIHwgMHgwMDAwMTg2MSkKKyNkZWZpbmUgQ09ORklHX1NZU19MU0RSQU1fT1IJCTB4RkY4MDM0ODAKIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKENGR19GTEFTSF9CQVNFIHwgMHgwMDAwMDgwMSkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCTB4RkZFMDA4NTYKLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JCShDRkdfRUVQUk9NIHwgMHgwMDAwMDgwMSkKLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JCTB4RkZGRjAzRjYKLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JCShDRkdfRkxTSU1NX0JBU0UgfCAweDAwMDAxODAxKQotI2RlZmluZSBDRkdfT1I2X1BSRUxJTQkJMHhGRjAwMDg1NgotI2RlZmluZSBDRkdfQlI3X1BSRUxJTQkJKENGR19CQ1NSIHwgMHgwMDAwMDgwMSkKLSNkZWZpbmUgQ0ZHX09SN19QUkVMSU0JCTB4RkZGRjgzRjYKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgMHgwMDAwMDgwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweEZGRTAwODU2CisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkJKENPTkZJR19TWVNfRUVQUk9NIHwgMHgwMDAwMDgwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCQkweEZGRkYwM0Y2CisjZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTQkJKENPTkZJR19TWVNfRkxTSU1NX0JBU0UgfCAweDAwMDAxODAxKQorI2RlZmluZSBDT05GSUdfU1lTX09SNl9QUkVMSU0JCTB4RkYwMDA4NTYKKyNkZWZpbmUgQ09ORklHX1NZU19CUjdfUFJFTElNCQkoQ09ORklHX1NZU19CQ1NSIHwgMHgwMDAwMDgwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjdfUFJFTElNCQkweEZGRkY4M0Y2CiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhDMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhDMDAwMDAwMAogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1pVTUEuaCBiL2luY2x1ZGUvY29uZmlncy9aVU1BLmgKaW5kZXggMTcwNTUzYy4uMDhjNGNlZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1pVTUEuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvWlVNQS5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaWZuZGVmIF9fQ09ORklHX0gKICNkZWZpbmUgX19DT05GSUdfSAogCi0jZGVmaW5lIENGR19HVF82NDI2eCAgICAgICAgR1RfNjQyNjAgLyogd2l0aCBhIDY0MjYwIHN5c3RlbSBjb250cm9sbGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfR1RfNjQyNnggICAgICAgIEdUXzY0MjYwIC8qIHdpdGggYSA2NDI2MCBzeXN0ZW0gY29udHJvbGxlciAqLwogI2RlZmluZSBDT05GSUdfRVRIRVJfUE9SVF9NSUkJLyogdXNlIHR3byBNSUkgcG9ydHMgKi8KICNkZWZpbmUgQ09ORklHX0lOVEVMX0xYVDk3WAkvKiBJbnRlbCBMWFQ5N1ggcGh5ICovCiAKQEAgLTUyLDEyICs1MiwxMiBAQAogLyogd2hpY2ggaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25zIHRvIGNhbGwgZm9yIHRoaXMgYm9hcmQgKi8KICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YKLSNkZWZpbmUgQ0ZHX0JPQVJEX0FTTV9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfQk9BUkRfQVNNX0lOSVQKIAotI2RlZmluZSBDRkdfQk9BUkRfTkFNRQkJIlp1bWEgQVB2MiIKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9OQU1FCQkiWnVtYSBBUHYyIgogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgbGV0IHlvdSBzZWxlY3Qgd2hhdCBzZXJpYWwgeW91IHdhbnQgdG8gdXNlCkBAIC02NSw3ICs2NSw3IEBACiAgKgogICogd2hhdCB0byBkbzoKICAqIHRvIHVzZSB0aGUgRFVBUlQsIHVuZGVmIENPTkZJR19NUFNDLgkgSWYgeW91IGhhdmUgaGFja2VkIGEgc2VyaWFsCi0gKiBjYWJsZSBvbnRvIHRoZSBzZWNvbmQgRFVBUlQgY2hhbm5lbCwgY2hhbmdlIHRoZSBDRkdfRFVBUlQgcG9ydCBmcm9tIDEKKyAqIGNhYmxlIG9udG8gdGhlIHNlY29uZCBEVUFSVCBjaGFubmVsLCBjaGFuZ2UgdGhlIENPTkZJR19TWVNfRFVBUlQgcG9ydCBmcm9tIDEKICAqIHRvIDAgYmVsb3cuCiAgKgogICogdG8gdXNlIHRoZSBNUFNDLCAjZGVmaW5lIENPTkZJR19NUFNDLiAgSWYgeW91IGhhdmUgd2lyZWQgdXAgYW5vdGhlcgpAQCAtOTYsNyArOTYsNyBAQAogCSIkbmV0bWFzazokaG9zdG5hbWU6ZXRoMDpub25lIHBhbmljPTUgJiYgYm9vdG0iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMAkvKiBlY2hvIG9mZiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2VzCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KICN1bmRlZglDT05GSUdfQUxUSVZFQwkJCS8qIHVuZGVmIHRvIGRpc2FibGUJCSovCkBAIC0xNDYsMjkgKzE0NiwyOSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAzMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAzMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjciBmcmVxOiAxbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQlVTX0haCQkxMzMwMDAwMDAJLyogMTMzIE1IegkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfSFoJCTEzMzAwMDAwMAkvKiAxMzMgTUh6CQkqLwogCi0jZGVmaW5lIENGR19CVVNfQ0xLCQlDRkdfQlVTX0haCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0NMSwkJQ09ORklHX1NZU19CVVNfSFoKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTc5LDQ4ICsxNzksNDggQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmZmMDAwMDAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhmZmYwMDEwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhmZmYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCiAKIC8qIGFyZWFzIHRvIG1hcCBkaWZmZXJlbnQgdGhpbmdzIHdpdGggdGhlIEdUIGluIHBoeXNpY2FsIHNwYWNlICovCi0jZGVmaW5lIENGR19EUkFNX0JBTktTCQk0Ci0jZGVmaW5lIENGR19ERkxfR1RfUkVHUwkJMHgxNDAwMDAwMAkvKiBib290IHRpbWUgR1RfUkVHUyAqLworI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQkFOS1MJCTQKKyNkZWZpbmUgQ09ORklHX1NZU19ERkxfR1RfUkVHUwkJMHgxNDAwMDAwMAkvKiBib290IHRpbWUgR1RfUkVHUyAqLwogCiAvKiBXaGF0IHRvIHB1dCBpbiB0aGUgYmF0cy4gKi8KLSNkZWZpbmUgQ0ZHX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAogCiAvKiBQZXJpcGhlcmFsIERldmljZSBzZWN0aW9uICovCi0jZGVmaW5lIENGR19HVF9SRUdTCQkweGY4MDAwMDAwCS8qIGxhdGVyIG1hcHBlZCBHVF9SRUdTICovCi0jZGVmaW5lIENGR19ERVZfQkFTRQkJMHhmMDAwMDAwMAotI2RlZmluZSBDRkdfREVWMF9TSVpFCQlfNjRNIC8qIHp1bWEgZmxhc2ggQCAweGYwMDAuMDAwMCovCi0jZGVmaW5lIENGR19ERVYxX1NJWkUJCSBfOE0gLyogenVtYSBJREUgICBAIDB4ZjQwMC4wMDAwICovCi0jZGVmaW5lIENGR19ERVYyX1NJWkUJCSBfOE0gLyogdW51c2VkICovCi0jZGVmaW5lIENGR19ERVYzX1NJWkUJCSBfOE0gLyogdW51c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfR1RfUkVHUwkJMHhmODAwMDAwMAkvKiBsYXRlciBtYXBwZWQgR1RfUkVHUyAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVl9CQVNFCQkweGYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVWMF9TSVpFCQlfNjRNIC8qIHp1bWEgZmxhc2ggQCAweGYwMDAuMDAwMCovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMV9TSVpFCQkgXzhNIC8qIHp1bWEgSURFICAgQCAweGY0MDAuMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjJfU0laRQkJIF84TSAvKiB1bnVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYzX1NJWkUJCSBfOE0gLyogdW51c2VkICovCiAKLSNkZWZpbmUgQ0ZHX0RFVjBfUEFSCQkweGM0OTgyNDNjCisjZGVmaW5lIENPTkZJR19TWVNfREVWMF9QQVIJCTB4YzQ5ODI0M2MKIAkvKiAgICAgYyAgICA0ICAgICA5ICAgICA4ICAgICAyCSAgICA0ICAgICAzICAgICBjICovCiAJLyogMzMgMjJ8MjIyMnwyMiAyMnwxMTEgMXwxMSAxMXwxIDEgIHwJICAgfCAgICAgICovCiAJLyogMTAgOTh8NzY1NHwzMiAxMHw5ODcgNnw1NCAzMnwxIDA5OHw3IDY1NHwzIDIxMCAqLwogCS8qIDExfDAwfDAxMDB8MTAgMDF8MTAwfDAgMDB8MTAgMHwxMDAgMHwwMTEgMXwxMDAgKi8KIAkvKiAgM3wgMHwuLi4uIC4ufCAxfCA0IHwgIDAgfCAgNCB8ICAgOCB8ICAgNyB8IDQgICovCiAKLSNkZWZpbmUgQ0ZHX0RFVjFfUEFSCQkweGMwMWI2YWM1CisjZGVmaW5lIENPTkZJR19TWVNfREVWMV9QQVIJCTB4YzAxYjZhYzUKIAkvKiAgICAgYyAgICAwICAgICAxICAgICBiICAgICA2CSAgICBhICAgICBjICAgICA1ICovCiAJLyogMzMgMjJ8MjIyMnwyMiAyMnwxMTEgMXwxMSAxMXwxIDEgIHwJICAgfCAgICAgICovCiAJLyogMTAgOTh8NzY1NHwzMiAxMHw5ODcgNnw1NCAzMnwxIDA5OHw3IDY1NHwzIDIxMCAqLwpAQCAtMjI4LDE4ICsyMjgsMTggQEAKIAkvKiAgM3wgMHwuLi4uIC4ufCAxfCA1IHwgIDUgfCAgNSB8ICAgNSB8ICAgOCB8IDUgICovCiAKIAotI2RlZmluZSBDRkdfOEJJVF9CT09UX1BBUgkweGMwMGI1ZTdjCisjZGVmaW5lIENPTkZJR19TWVNfOEJJVF9CT09UX1BBUgkweGMwMGI1ZTdjCiAKLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzAJMHgwMDAwNzc3NyAvKiBHUFBbNzo0XSA6IFJFUTBbMTowXSBHTlQwWzE6MF0gKi8KLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzEJMHgwMDAwMDAwMCAvKiBHUFBbMTU6MTJdIDogR1BQWzExOjhdICovCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8yCTB4MDAwMDg4ODggLyogR1BQWzIzOjIwXSA6IFJFUTFbMTowXSBHTlQxWzE6MF0gKi8KLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzMJMHgwMDAwMDAwMCAvKiBHUFBbMzE6MjhdIChpbnRbMzowXSkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8wCTB4MDAwMDc3NzcgLyogR1BQWzc6NF0gOiBSRVEwWzE6MF0gR05UMFsxOjBdICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMQkweDAwMDAwMDAwIC8qIEdQUFsxNToxMl0gOiBHUFBbMTE6OF0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8yCTB4MDAwMDg4ODggLyogR1BQWzIzOjIwXSA6IFJFUTFbMTowXSBHTlQxWzE6MF0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8zCTB4MDAwMDAwMDAgLyogR1BQWzMxOjI4XSAoaW50WzM6MF0pICovCiAJCQkJCSAgIC8qIEdQUFsyNzoyNF0gKDI3IGlzIGludDQsIHJlc3QgYXJlIEdQUCkgKi8KIAotI2RlZmluZSBDRkdfU0VSSUFMX1BPUlRfTVVYCTB4MDAwMDExMDEgLyogMTE9TVBTQzEvTVBTQzAgMDE9RVRILCAgMD1vbmx5IE1JSSAqLwotI2RlZmluZSBDRkdfR1BQX0xFVkVMX0NPTlRST0wJMHhmODAwMDAwMCAvKiBpbnRlcnJ1cHQgaW5wdXRzOiBHUFBbMzE6MjddICovCisjZGVmaW5lIENPTkZJR19TWVNfU0VSSUFMX1BPUlRfTVVYCTB4MDAwMDExMDEgLyogMTE9TVBTQzEvTVBTQzAgMDE9RVRILCAgMD1vbmx5IE1JSSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQUF9MRVZFTF9DT05UUk9MCTB4ZjgwMDAwMDAgLyogaW50ZXJydXB0IGlucHV0czogR1BQWzMxOjI3XSAqLwogCi0jZGVmaW5lIENGR19TRFJBTV9DT05GSUcJMHhlNGUxODIwMAkvKiAweDQ0OCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NPTkZJRwkweGU0ZTE4MjAwCS8qIDB4NDQ4ICovCiAJCQkJLyogaWRtYXMgdXNlIGJ1ZmZlciAxLDEKIAkJCQkgICBjb21tIHVzZSBidWZmZXIgMQogCQkJCSAgIHBjaSB1c2UgYnVmZmVyIDAsMCAocGNpMS0+MCBwY2kwLT4wKQpAQCAtMjU3LDEwICsyNTcsMTAgQEAKIAkJCQkvKiAxNSAxNCAxMzowICovCiAJCQkJLyogMSAgMAkgMHgyMDAgKi8KIAotI2RlZmluZSBDRkdfREVWMF9TUEFDRQkJQ0ZHX0RFVl9CQVNFCi0jZGVmaW5lIENGR19ERVYxX1NQQUNFCQkoQ0ZHX0RFVjBfU1BBQ0UgKyBDRkdfREVWMF9TSVpFKQotI2RlZmluZSBDRkdfREVWMl9TUEFDRQkJKENGR19ERVYxX1NQQUNFICsgQ0ZHX0RFVjFfU0laRSkKLSNkZWZpbmUgQ0ZHX0RFVjNfU1BBQ0UJCShDRkdfREVWMl9TUEFDRSArIENGR19ERVYyX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfREVWMF9TUEFDRQkJQ09ORklHX1NZU19ERVZfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0RFVjFfU1BBQ0UJCShDT05GSUdfU1lTX0RFVjBfU1BBQ0UgKyBDT05GSUdfU1lTX0RFVjBfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ERVYyX1NQQUNFCQkoQ09ORklHX1NZU19ERVYxX1NQQUNFICsgQ09ORklHX1NZU19ERVYxX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfREVWM19TUEFDRQkJKENPTkZJR19TWVNfREVWMl9TUEFDRSArIENPTkZJR19TWVNfREVWMl9TSVpFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTI3NSwyNCArMjc1LDI0IEBACiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkJCSovCiAKIC8qIFBDSSBNRU1PUlkgTUFQIHNlY3Rpb24gKi8KLSNkZWZpbmUgQ0ZHX1BDSTBfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMF9NRU1fU0laRQlfMTI4TQotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDg4MDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCV8xMjhNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9NRU1fU0laRQlfMTI4TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4ODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJXzEyOE0KIAotI2RlZmluZSBDRkdfUENJMF8wX01FTV9TUEFDRQkoQ0ZHX1BDSTBfTUVNX0JBU0UpCi0jZGVmaW5lIENGR19QQ0kxXzBfTUVNX1NQQUNFCShDRkdfUENJMV9NRU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwXzBfTUVNX1NQQUNFCShDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV8wX01FTV9TUEFDRQkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFKQogCiAvKiBQQ0kgSS9PIE1BUCBzZWN0aW9uICovCi0jZGVmaW5lIENGR19QQ0kwX0lPX0JBU0UJMHhmYTAwMDAwMAotI2RlZmluZSBDRkdfUENJMF9JT19TSVpFCV8xNk0KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweGZiMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJXzE2TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fQkFTRQkweGZhMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19TSVpFCV8xNk0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHhmYjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQlfMTZNCiAKLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fU1BBQ0UJKENGR19QQ0kwX0lPX0JBU0UpCi0jZGVmaW5lIENGR19QQ0kwX0lPX1NQQUNFX1BDSQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NQQUNFCShDRkdfUENJMV9JT19CQVNFKQotI2RlZmluZSBDRkdfUENJMV9JT19TUEFDRV9QQ0kJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9JT19CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0VfUENJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFX1BDSQkweDAwMDAwMDAwCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMDUsNDkgKzMwNSw0OSBAQAogICovCiAKIC8qIFNEUkFNICovCi0jZGVmaW5lIENGR19JQkFUMEwgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDBVIChDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDBMIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMFUgQ0ZHX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVSAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSBDT05GSUdfU1lTX0lCQVQwVQogCiAvKiBpbml0IHJhbSAqLwotI2RlZmluZSBDRkdfSUJBVDFMICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDFMICBDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUgIENGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMICBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVSAgQ09ORklHX1NZU19JQkFUMVUKIAogLyogUENJMCwgUENJMSBtZW1vcnkgc3BhY2UgKHN0YXJ0aW5nIGF0IFBDSTAgYmFzZSwgbWFwcGVkIGluIG9uZSBCQVQpICovCi0jZGVmaW5lIENGR19JQkFUMkwgQkFUTF9OT19BQ0NFU1MKLSNkZWZpbmUgQ0ZHX0lCQVQyVSBDRkdfREJBVDJVCi0jZGVmaW5lIENGR19EQkFUMkwgKENGR19QQ0kwX01FTV9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQyVSAoQ0ZHX1BDSTBfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwgQkFUTF9OT19BQ0NFU1MKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgQ09ORklHX1NZU19EQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwgKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVIChDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogR1QgcmVncywgYm9vdHJvbSwgYWxsIHRoZSBkZXZpY2VzLCBQQ0kgSS9PICovCi0jZGVmaW5lIENGR19JQkFUM0wgKENGR19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXKQotI2RlZmluZSBDRkdfSUJBVDNVIChDRkdfTUlTQ19SRUdJT05fQkFTRSB8IEJBVFVfVlMgfCBCQVRVX1ZQIHwgQkFUVV9CTF8yNTZNKQotI2RlZmluZSBDRkdfREJBVDNMIChDRkdfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUM1UgQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTCAoQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVSAoQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUVV9WUyB8IEJBVFVfVlAgfCBCQVRVX0JMXzI1Nk0pCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMIChDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSBDT05GSUdfU1lTX0lCQVQzVQogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoODw8MjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4PDwyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMwkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTMwCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkzCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTMwCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19FWFRSQV9GTEFTSF9ERVZJQ0UJREVWSUNFMCAvKiBleHRyYSBmbGFzaCBhdCBkZXZpY2UgMCAqLwotI2RlZmluZSBDRkdfRVhUUkFfRkxBU0hfV0lEVEgJMgkvKiAxNiBiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRSQV9GTEFTSF9ERVZJQ0UJREVWSUNFMCAvKiBleHRyYSBmbGFzaCBhdCBkZXZpY2UgMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVFJBX0ZMQVNIX1dJRFRICTIJLyogMTYgYml0ICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCkBAIC0zNTcsOSArMzU3LDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIGFsbCBNUEM3NHh4IENQVXMJCSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBhbGwgTVBDNzR4eCBDUFVzCQkgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNjcsNyArMzY3LDcgQEAKICAqIGxvb2sgaW4gaW5jbHVkZS83NHh4Xzd4eC5oIGZvciB0aGUgZGVmaW5lcyB1c2VkIGhlcmUKICAqLwogCi0jZGVmaW5lIENGR19MMgorI2RlZmluZSBDT05GSUdfU1lTX0wyCiAKICNpZmRlZiBDT05GSUdfNzUwQ1gKICNkZWZpbmUgTDJfSU5JVAkJMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2FjYWRpYS5oIGIvaW5jbHVkZS9jb25maWdzL2FjYWRpYS5oCmluZGV4IDI5YThlYjYuLjUyY2NkYjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hY2FkaWEuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYWNhZGlhLmgKQEAgLTQyLDcgKzQyLDcgQEAKICNpbmNsdWRlICJhbWNjLWNvbW1vbi5oIgogCiAvKiBEZXRlY3QgQWNhZGlhIFBMTCBpbnB1dCBjbG9jayBhdXRvbWF0aWNhbGx5IHZpYSBDUExEIGJpdAkJKi8KLSNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUSAgICAoKGluOChDRkdfQ1BMRF9CQVNFICsgMCkgPT0gMHgwYykgPyBcCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEgICAgKChpbjgoQ09ORklHX1NZU19DUExEX0JBU0UgKyAwKSA9PSAweDBjKSA/IFwKIAkJCQk2NjY2NjY2NiA6IDMzMzMzMDAwKQogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgMQkJLyogQ2FsbCBib2FyZF9lYXJseV9pbml0X2YgKi8KQEAgLTY2LDMxICs2NiwzMSBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZlMDAwMDAwCi0jZGVmaW5lIENGR19DUExEX0JBU0UJCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX05BTkRfQUREUgkJMHhkMDAwMDAwMAotI2RlZmluZSBDRkdfVVNCX0hPU1QJCTB4ZWY2MDMwMDAJLyogVVNCIE9IQ0kgMS4xIGNvbnRyb2xsZXIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZlMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1BMRF9CQVNFCQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9BRERSCQkweGQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0hPU1QJCTB4ZWY2MDMwMDAJLyogVVNCIE9IQ0kgMS4xIGNvbnRyb2xsZXIJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00JMQkJLyogT0NNIGFzIGluaXQgcmFtCSovCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JMQkJLyogT0NNIGFzIGluaXQgcmFtCSovCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4ZjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHg0MDAwCQkJLyogMTZLIG9mIG9uY2hpcCBTUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUgkvKiBpbnNpZGUgb2YgU1JBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhmODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHg0MDAwCQkJLyogMTZLIG9mIG9uY2hpcCBTUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSCS8qIGluc2lkZSBvZiBTUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCQkvKiBzaXplIGZvciBpbml0aWFsIGRhdGEJKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkJLyogc2l6ZSBmb3IgaW5pdGlhbCBkYXRhCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkJCS8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECQk2OTEyMDAKKyN1bmRlZglDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJCQkvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJCTY5MTIwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudApAQCAtMTA2LDI2ICsxMDYsMjYgQEAKICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjaWYgIWRlZmluZWQoQ09ORklHX05BTkRfVV9CT09UKSAmJiAhZGVmaW5lZChDT05GSUdfTkFORF9TUEwpCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlcgkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUICAgIHtDRkdfRkxBU0hfQkFTRX0KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgICAge0NPTkZJR19TWVNfRkxBU0hfQkFTRX0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAjZWxzZQotI2RlZmluZQlDRkdfTk9fRkxBU0gJCTEJLyogTm8gTk9SIG9uIEFjYWRpYSB3aGVuIE5BTkQtYm9vdGluZwkqLworI2RlZmluZQlDT05GSUdfU1lTX05PX0ZMQVNICQkxCS8qIE5vIE5PUiBvbiBBY2FkaWEgd2hlbiBOQU5ELWJvb3RpbmcJKi8KICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwIC8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xNTEsNjggKzE1MSw2OCBAQAogICogc2V0IHVwLiBXaGlsZSBzdGlsbCBydW5uaW5nIGZyb20gY2FjaGUsIEkgZXhwZXJpZW5jZWQgcHJvYmxlbXMgYWNjZXNzaW5nCiAgKiB0aGUgTkFORCBjb250cm9sbGVyLglzciAtIDIwMDYtMDgtMjUKICAqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9TUkMJMHhmZmZmZjAwMAkvKiBTUEwgbG9jYXRpb24JCQkqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9TSVpFCSg0IDw8IDEwKQkvKiBTUEwgc2l6ZQkJCSovCi0jZGVmaW5lIENGR19OQU5EX0JPT1RfU1BMX0RTVAkoQ0ZHX09DTV9EQVRBX0FERFIgKyAoMTYgPDwgMTApKSAvKiBDb3B5IFNQTCBoZXJlKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX0RTVAkweDAxMDAwMDAwCS8qIExvYWQgTlVCIHRvIHRoaXMgYWRkcgkqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfU1RBUlQJQ0ZHX05BTkRfVV9CT09UX0RTVCAvKiBTdGFydCBOVUIgZnJvbSB0aGlzIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQk9PVF9TUExfREVMVEEJKENGR19OQU5EX0JPT1RfU1BMX1NSQyAtIENGR19OQU5EX0JPT1RfU1BMX0RTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQwkweGZmZmZmMDAwCS8qIFNQTCBsb2NhdGlvbgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TSVpFCSg0IDw8IDEwKQkvKiBTUEwgc2l6ZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9EU1QJKENPTkZJR19TWVNfT0NNX0RBVEFfQUREUiArICgxNiA8PCAxMCkpIC8qIENvcHkgU1BMIGhlcmUqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX0RTVAkweDAxMDAwMDAwCS8qIExvYWQgTlVCIHRvIHRoaXMgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NUQVJUCUNPTkZJR19TWVNfTkFORF9VX0JPT1RfRFNUIC8qIFN0YXJ0IE5VQiBmcm9tIHRoaXMgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfREVMVEEJKENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkMgLSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfRFNUKQogCiAvKgogICogRGVmaW5lIHRoZSBwYXJ0aXRpb25pbmcgb2YgdGhlIE5BTkQgY2hpcCAob25seSBSQU0gVS1Cb290IGlzIG5lZWRlZCBoZXJlKQogICovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9PRkZTCSgxNiA8PCAxMCkJLyogT2Zmc2V0IHRvIFJBTSBVLUJvb3QgaW1hZ2UJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX1NJWkUJKDM4NCA8PCAxMCkJLyogU2l6ZSBvZiBSQU0gVS1Cb290IGltYWdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfT0ZGUwkoMTYgPDwgMTApCS8qIE9mZnNldCB0byBSQU0gVS1Cb290IGltYWdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfU0laRQkoMzg0IDw8IDEwKQkvKiBTaXplIG9mIFJBTSBVLUJvb3QgaW1hZ2UJKi8KIAogLyoKICAqIE5vdyB0aGUgTkFORCBjaGlwIGhhcyB0byBiZSBkZWZpbmVkIChubyBhdXRvZGV0ZWN0aW9uIHVzZWQhKQogICovCi0jZGVmaW5lIENGR19OQU5EX1BBR0VfU0laRQk1MTIJCS8qIE5BTkQgY2hpcCBwYWdlIHNpemUJCSovCi0jZGVmaW5lIENGR19OQU5EX0JMT0NLX1NJWkUJKDE2IDw8IDEwKQkvKiBOQU5EIGNoaXAgYmxvY2sgc2l6ZQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUEFHRV9DT1VOVAkzMgkJLyogTkFORCBjaGlwIHBhZ2UgY291bnQJCSovCi0jZGVmaW5lIENGR19OQU5EX0JBRF9CTE9DS19QT1MJNQkJLyogTG9jYXRpb24gb2YgYmFkIGJsb2NrIG1hcmtlcgkqLwotI3VuZGVmIENGR19OQU5EXzRfQUREUl9DWUNMRQkJCS8qIE5vIGZvdXJ0aCBhZGRyIHVzZWQgKDw9MzJNQikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1BBR0VfU0laRQk1MTIJCS8qIE5BTkQgY2hpcCBwYWdlIHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFCSgxNiA8PCAxMCkJLyogTkFORCBjaGlwIGJsb2NrIHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9QQUdFX0NPVU5UCTMyCQkvKiBOQU5EIGNoaXAgcGFnZSBjb3VudAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBRF9CTE9DS19QT1MJNQkJLyogTG9jYXRpb24gb2YgYmFkIGJsb2NrIG1hcmtlcgkqLworI3VuZGVmIENPTkZJR19TWVNfTkFORF80X0FERFJfQ1lDTEUJCQkvKiBObyBmb3VydGggYWRkciB1c2VkICg8PTMyTUIpCSovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDU0laRQkyNTYKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDQllURVMJMwotI2RlZmluZSBDRkdfTkFORF9FQ0NTVEVQUwkoQ0ZHX05BTkRfUEFHRV9TSVpFIC8gQ0ZHX05BTkRfRUNDU0laRSkKLSNkZWZpbmUgQ0ZHX05BTkRfT09CU0laRQkxNgotI2RlZmluZSBDRkdfTkFORF9FQ0NUT1RBTAkoQ0ZHX05BTkRfRUNDQllURVMgKiBDRkdfTkFORF9FQ0NTVEVQUykKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDUE9TCQl7MCwgMSwgMiwgMywgNiwgN30KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1NJWkUJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NCWVRFUwkzCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NTVEVQUwkoQ09ORklHX1NZU19OQU5EX1BBR0VfU0laRSAvIENPTkZJR19TWVNfTkFORF9FQ0NTSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfT09CU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDVE9UQUwJKENPTkZJR19TWVNfTkFORF9FQ0NCWVRFUyAqIENPTkZJR19TWVNfTkFORF9FQ0NTVEVQUykKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1BPUwkJezAsIDEsIDIsIDMsIDYsIDd9CiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX05BTkQKIC8qCiAgKiBGb3IgTkFORCBib290aW5nIHRoZSBlbnZpcm9ubWVudCBpcyBlbWJlZGRlZCBpbiB0aGUgVS1Cb290IGltYWdlLiBQbGVhc2UgdGFrZQogICogbG9vayBhdCB0aGUgZmlsZSBib2FyZC9hbWNjL3NlcXVvaWEvdS1ib290LW5hbmQubGRzIGZvciBkZXRhaWxzLgogICovCi0jZGVmaW5lIENPTkZJR19FTlZfU0laRQkJQ0ZHX05BTkRfQkxPQ0tfU0laRQotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENGR19OQU5EX1VfQk9PVF9PRkZTICsgQ09ORklHX0VOVl9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCUNPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ09ORklHX1NZU19OQU5EX1VfQk9PVF9PRkZTICsgQ09ORklHX0VOVl9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUICsgQ09ORklHX0VOVl9TSVpFKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJBTSAoQ1JBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQllURVNfUkFNCQk2NAkJLyogNjRNQgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUJZVEVTX1JBTQkJNjQJCS8qIDY0TUIJCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwogCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCSgweGE4Pj4xKQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJKDB4YTg+PjEpCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKIAogLyogSTJDIFNZU01PTiAoTE03NSwgQUQ3NDE0IGlzIGFsbW9zdCBjb21wYXRpYmxlKQkJCSovCiAjZGVmaW5lIENPTkZJR19EVFRfTE03NQkJMQkJLyogT04gU2VtaSdzIExNNzUJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9BRDc0MTQJMQkJLyogdXNlIEFENzQxNAkJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTCXswfQkJLyogU2Vuc29yIGFkZHJlc3NlcwkqLwotI2RlZmluZSBDRkdfRFRUX01BWF9URU1QCTcwCi0jZGVmaW5lIENGR19EVFRfTE9XX1RFTVAJLTMwCi0jZGVmaW5lIENGR19EVFRfSFlTVEVSRVNJUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX01BWF9URU1QCTcwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0xPV19URU1QCS0zMAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9IWVNURVJFU0lTCTMKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXRoZXJuZXQKQEAgLTI2MSw2NCArMjYxLDY0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOQU5EIEZMQVNICiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJMQotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkoQ0ZHX05BTkRfQUREUiArIENGR19OQU5EX0NTKQotI2RlZmluZSBDRkdfTkFORF9TRUxFQ1RfREVWSUNFICAxCS8qIG5hbmQgZHJpdmVyIHN1cHBvcnRzIG11dGlwbC4gY2hpcHMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCShDT05GSUdfU1lTX05BTkRfQUREUiArIENPTkZJR19TWVNfTkFORF9DUykKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NFTEVDVF9ERVZJQ0UgIDEJLyogbmFuZCBkcml2ZXIgc3VwcG9ydHMgbXV0aXBsLiBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZiAhZGVmaW5lZChDT05GSUdfTkFORF9VX0JPT1QpICYmICFkZWZpbmVkKENPTkZJR19OQU5EX1NQTCkKLSNkZWZpbmUgQ0ZHX05BTkRfQ1MJCTMKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NTCQkzCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCkgaW5pdGlhbGl6YXRpb24JCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDAzMzM3MjAwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4ZmUwYmMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDMzMzcyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCTB4ZmUwYmMwMDAKIAogLyogTWVtb3J5IEJhbmsgMyAoTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDE4MDAzYzAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJKENGR19OQU5EX0FERFIgfCAweDFjMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkJMHgwMTgwMDNjMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJKENPTkZJR19TWVNfTkFORF9BRERSIHwgMHgxYzAwMCkKIAogLyogSnVzdCBpbml0aWFsIGNvbmZpZ3VyYXRpb24gZm9yIENSQU0uIFdpbGwgYmUgY2hhbmdlZCBpbiBtZW1vcnkuYyB0byBzeW5jIG1vZGUqLwogLyogTWVtb3J5IEJhbmsgMSAoQ1JBTSkgaW5pdGlhbGl6YXRpb24JCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDAzMDQwMGMwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4MDAwYmMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4MDMwNDAwYzAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4MDAwYmMwMDAKIAogLyogTWVtb3J5IEJhbmsgMiAoQ1JBTSkgaW5pdGlhbGl6YXRpb24JCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAzMDQwMGMwCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4MDIwYmMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDMwNDAwYzAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4MDIwYmMwMDAKICNlbHNlCi0jZGVmaW5lIENGR19OQU5EX0NTCQkwCQkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeAkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ1MJCTAJCS8qIE5BTkQgY2hpcCBjb25uZWN0ZWQgdG8gQ1N4CSovCiAvKiBNZW1vcnkgQmFuayAwIChOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwMTgwMDNjMAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkoQ0ZHX05BTkRfQUREUiB8IDB4MWMwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDAxODAwM2MwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkoQ09ORklHX1NZU19OQU5EX0FERFIgfCAweDFjMDAwKQogCiAvKgogICogV2hlbiBOQU5ELWJvb3RpbmcgdGhlIENSQU0gRUJDIHNldHVwIG11c3QgYmUgZG9uZSBpbiBzeW5jIG1vZGUsIHNpbmNlIHRoZQogICogTkFORC1TUEwgYWxyZWFkeSBpbml0aWFsaXplZCB0aGUgQ1JBTSBhbmQgRUJDIHRvIHN5bmMgbW9kZS4KICAqLwogLyogTWVtb3J5IEJhbmsgMSAoQ1JBTSkgaW5pdGlhbGl6YXRpb24JCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDlDMDIwMUMwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4MDAwYmMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4OUMwMjAxQzAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4MDAwYmMwMDAKIAogLyogTWVtb3J5IEJhbmsgMiAoQ1JBTSkgaW5pdGlhbGl6YXRpb24JCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDlDMDIwMUMwCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4MDIwYmMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4OUMwMjAxQzAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4MDIwYmMwMDAKICNlbmRpZgogCiAvKiBNZW1vcnkgQmFuayA0IChDUExEKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAJCTB4MDQwMDYwMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjRDUgkJKENGR19DUExEX0JBU0UgfCAweDE4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUAkJMHgwNDAwNjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUgkJKENPTkZJR19TWVNfQ1BMRF9CQVNFIHwgMHgxODAwMCkKIAotI2RlZmluZSBDRkdfRUJDX0NGRwkJMHhmODQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19DRkcJCTB4Zjg0MDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogR1BJTyBTZXR1cAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fQ1JBTV9DTEsJOAotI2RlZmluZSBDRkdfR1BJT19DUkFNX1dBSVQJOQkJLyogR1BJTy1JbgkJKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fQ1JBTV9BRFYJMTAKLSNkZWZpbmUgQ0ZHX0dQSU9fQ1JBTV9DUkUJKDMyICsgMjEpCS8qIEdQSU8tT3V0CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fQ1JBTV9DTEsJOAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fQ1JBTV9XQUlUCTkJCS8qIEdQSU8tSW4JCSovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19DUkFNX0FEVgkxMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fQ1JBTV9DUkUJKDMyICsgMjEpCS8qIEdQSU8tT3V0CQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgR1BJT18wIHNldHVwIChQUEM0MDVFWiBzcGVjaWZpYykKQEAgLTM0MCwxMyArMzQwLDEzIEBACiAgKiBHUElPMFsyOC0zMF0JLSBUcmFjZSBPdXRwdXRzIC8gUFdNIElucHV0cwogICogR1BJTzBbMzFdCS0gUFdNXzggSS9PCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX1RDUgkJMHhDMEEwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfT1NSTAkJMHg1MDAwNDQwMAotI2RlZmluZSBDRkdfR1BJTzBfT1NSSAkJMHgwMjAwMDA1NQotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUwJCTB4MDAwMDEwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFICQkweDAwMDAwMDU1Ci0jZGVmaW5lIENGR19HUElPMF9UU1JMCQkweDAyMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UU1JICQkweDAwMDAwMDU1CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVENSCQkweEMwQTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSTAkJMHg1MDAwNDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkgJCTB4MDIwMDAwNTUKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxTAkJMHgwMDAwMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFICQkweDAwMDAwMDU1CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSTAkJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkgJCTB4MDAwMDAwNTUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIEdQSU9fMSBzZXR1cCAoUFBDNDA1RVogc3BlY2lmaWMpCkBAIC0zNjIsMTIgKzM2MiwxMiBAQAogICogR1BJTzFbMTZdCS0gU1BJX1NTXzFfTiBPdXRwdXQKICAqIEdQSU8xWzE3LTIwXQktIFRyYWNlIE91dHB1dC9FeHRlcm5hbCBJbnRlcnJ1cHRzIElSUTAgLSBJUlEzIGlucHV0cwogICovCi0jZGVmaW5lIENGR19HUElPMV9UQ1IJCTB4RkZGRjg0MTQKLSNkZWZpbmUgQ0ZHX0dQSU8xX09TUkwJCTB4NDAwMDAxMTAKLSNkZWZpbmUgQ0ZHX0dQSU8xX09TUkgJCTB4NTU0NTU1NTUKLSNkZWZpbmUgQ0ZHX0dQSU8xX0lTUjFMCQkweDE1NTU1NDQ1Ci0jZGVmaW5lIENGR19HUElPMV9JU1IxSAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzFfVFNSTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzFfVFNSSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX1RDUgkJMHhGRkZGODQxNAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX09TUkwJCTB4NDAwMDAxMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9PU1JICQkweDU1NDU1NTU1CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfSVNSMUwJCTB4MTU1NTU0NDUKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9JU1IxSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX1RTUkwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9UU1JICQkweDAwMDAwMDAwCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYWN0dXgxLmggYi9pbmNsdWRlL2NvbmZpZ3MvYWN0dXgxLmgKaW5kZXggZWMxZDQ2OS4uYTNiMDRiMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2FjdHV4MS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hY3R1eDEuaApAQCAtMzksNyArMzksNyBAQAogI2RlZmluZSBDT05GSUdfRElTUExBWV9DUFVJTkZPCQkxCiAjZGVmaW5lIENPTkZJR19ESVNQTEFZX0JPQVJESU5GTwkxCiAKLSNkZWZpbmUgQ0ZHX0lYUDQyNV9DT05TT0xFCQlJWFA0MjVfVUFSVDIKKyNkZWZpbmUgQ09ORklHX1NZU19JWFA0MjVfQ09OU09MRQkJSVhQNDI1X1VBUlQyCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJCTExNTIwMAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCQkzCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCkBAIC01Miw5ICs1Miw5IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkJMTI4CisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkJMTI4CiAKIC8qIGFsbG93IHRvIG92ZXJ3cml0ZSBzZXJpYWwgYW5kIGV0aGFkZHIgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKQEAgLTgwLDMwICs4MCwzMCBAQAogI2VuZGlmCiAKIC8qIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCi0jZGVmaW5lIENGR19QUk9NUFQJCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkJIj0+ICIKIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYKIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUJCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCiAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJCTE2CiAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJCUNGR19DQlNJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJCUNPTkZJR19TWVNfQ0JTSVpFCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCTB4MDA0MDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkJMHgwMDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCTB4MDA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJCTB4MDA4MDAwMDAKIAogLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgorI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFoKIC8qIHNwZWMgc2F5cyA2Ni42NjYgTUh6LCBidXQgaXQgYXBwZWFycyB0byBiZSAzMyAqLwotI2RlZmluZSBDRkdfSFoJCQkJMzMzMzMzMworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJCTMzMzMzMzMKIAogLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkweDAwMDEwMDAwCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsCVwKIAkJCQkJICAxMTUyMDAsIDIzMDQwMCB9CiAjZGVmaW5lIENPTkZJR19TRVJJQUxfUlRTX0FDVElWRQkxCiAKQEAgLTExOCw1NSArMTE4LDU1IEBACiAjZW5kaWYKIAogLyogRXhwYW5zaW9uIGJ1cyBzZXR0aW5ncyAqLwotI2RlZmluZSBDRkdfRVhQX0NTMAkJCTB4YmQxMTM4NDIKKyNkZWZpbmUgQ09ORklHX1NZU19FWFBfQ1MwCQkJMHhiZDExMzg0MgogCiAvKiBTRFJBTSBzZXR0aW5ncyAqLwogI2RlZmluZSBDT05GSUdfTlJfRFJBTV9CQU5LUwkJMQogI2RlZmluZSBQSFlTX1NEUkFNXzEJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19EUkFNX0JBU0UJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFCQkJMHgwMDAwMDAwMAogCiAjaWYgQ09ORklHX0FDVFVYMV8zMk1CCi0jIGRlZmluZSBDRkdfU0RSX0NPTkZJRwkJCTB4MTgKKyMgZGVmaW5lIENPTkZJR19TWVNfU0RSX0NPTkZJRwkJCTB4MTgKICMgZGVmaW5lIFBIWVNfU0RSQU1fMV9TSVpFCQkweDAyMDAwMDAwCi0jIGRlZmluZSBDRkdfU0RSQU1fUkVGUkVTSF9DTlQJCTB4ODFhCi0jIGRlZmluZSBDRkdfU0RSX01PREVfQ09ORklHCQkweDEKLSMgZGVmaW5lIENGR19EUkFNX1NJWkUJCQkweDAyMDAwMDAwCisjIGRlZmluZSBDT05GSUdfU1lTX1NEUkFNX1JFRlJFU0hfQ05UCQkweDgxYQorIyBkZWZpbmUgQ09ORklHX1NZU19TRFJfTU9ERV9DT05GSUcJCTB4MQorIyBkZWZpbmUgQ09ORklHX1NZU19EUkFNX1NJWkUJCQkweDAyMDAwMDAwCiAjZWxzZSAvKiAxNk1CIFNEUkFNICovCi0jIGRlZmluZSBDRkdfU0RSX0NPTkZJRwkJCTB4M0EKKyMgZGVmaW5lIENPTkZJR19TWVNfU0RSX0NPTkZJRwkJCTB4M0EKICMgZGVmaW5lIFBIWVNfU0RSQU1fMV9TSVpFCQkweDAxMDAwMDAwCi0jIGRlZmluZSBDRkdfU0RSQU1fUkVGUkVTSF9DTlQJCTB4ODFhCi0jIGRlZmluZSBDRkdfU0RSX01PREVfQ09ORklHCQkweDEKLSMgZGVmaW5lIENGR19EUkFNX1NJWkUJCQkweDAxMDAwMDAwCisjIGRlZmluZSBDT05GSUdfU1lTX1NEUkFNX1JFRlJFU0hfQ05UCQkweDgxYQorIyBkZWZpbmUgQ09ORklHX1NZU19TRFJfTU9ERV9DT05GSUcJCTB4MQorIyBkZWZpbmUgQ09ORklHX1NZU19EUkFNX1NJWkUJCQkweDAxMDAwMDAwCiAjZW5kaWYKIAogLyogRkxBU0ggb3JnYW5pemF0aW9uICovCiAjaWYgQ09ORklHX0FDVFVYMV9GTEFTSDJYMgotIyBkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMgorIyBkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJCTIKIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotIyBkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCQk0MAorIyBkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJNDAKICMgZGVmaW5lIFBIWVNfRkxBU0hfMQkJCTB4NTAwMDAwMDAKICMgZGVmaW5lIFBIWVNfRkxBU0hfMgkJCTB4NTAyMDAwMDAKLSMgZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCQl7IFBIWVNfRkxBU0hfMSwgUEhZU19GTEFTSF8yIH0KKyMgZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAkJeyBQSFlTX0ZMQVNIXzEsIFBIWVNfRkxBU0hfMiB9CiAjZW5kaWYKICNpZiBDT05GSUdfQUNUVVgxX0ZMQVNIMVg4Ci0jIGRlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCQkxCisjIGRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQogLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jIGRlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTE0MAorIyBkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJMTQwCiAjIGRlZmluZSBQSFlTX0ZMQVNIXzEJCQkweDUwMDAwMDAwCi0jIGRlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAkJeyBQSFlTX0ZMQVNIXzEgfQorIyBkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCQl7IFBIWVNfRkxBU0hfMSB9CiAjZW5kaWYKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkJKDI1NiA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJCSgyNTYgPDwgMTApCiAKIC8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCiAvKiBubyBieXRlIHdyaXRlcyBvbiBJWFA0eHggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAkJRkxBU0hfQ0ZJXzE2QklUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICQlGTEFTSF9DRklfMTZCSVQKIC8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAogLyogRXRoZXJuZXQgKi8KIApAQCAtMTgwLDcgKzE4MCw3IEBACiAvKiBNSUkgUEhZIG1hbmFnZW1lbnQgKi8KICNkZWZpbmUgQ09ORklHX01JSQkJCTEKIC8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkJMTYKICNkZWZpbmUgQ09ORklHX1JFU0VUX1BIWV9SCQkxCiAKICNkZWZpbmUgQ09ORklHX0NNRF9ESENQCkBAIC0xOTYsNyArMTk2LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RQX0hPU1ROQU1FCiAKIC8qIENhY2hlIENvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkzMgogCiAvKgogICogZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uOgpAQCAtMjA1LDcgKzIwNSw3IEBACiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJCTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJMHgyMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShQSFlTX0ZMQVNIXzEgKyAweDQwMDApCi0jZGVmaW5lIENGR19VU0VfUFBDRU5WCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkxCiAKICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUyBcCiAJIm10ZD1JWFA0WFgtRmxhc2guMDoyNTZrKHVib290KSw2NGsodWNvZGUpLDExNTJrKGxpbnV4KSwtKHJvb3QpXDAiIFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hY3R1eDIuaCBiL2luY2x1ZGUvY29uZmlncy9hY3R1eDIuaAppbmRleCBhM2Y1YTRhLi43ZTZlOGYyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYWN0dXgyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2FjdHV4Mi5oCkBAIC0zMiw3ICszMiw3IEBACiAjZGVmaW5lIENPTkZJR19ESVNQTEFZX0NQVUlORk8JCTEKICNkZWZpbmUgQ09ORklHX0RJU1BMQVlfQk9BUkRJTkZPCTEKIAotI2RlZmluZSBDRkdfSVhQNDI1X0NPTlNPTEUJCUlYUDQyNV9VQVJUMgorI2RlZmluZSBDT05GSUdfU1lTX0lYUDQyNV9DT05TT0xFCQlJWFA0MjVfVUFSVDIKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkJMTE1MjAwCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJCTUKICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGNoZWNrIGZvciBrZXlwcmVzcyBvbiBib290ZGVsYXk9PTAgKi8KQEAgLTQzLDkgKzQzLDkgQEAKICN1bmRlZiBDT05GSUdfVVNFX0lSUQogCiAvKiBTaXplIG9mIG1hbGxvYygpIHBvb2wgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkJMTI4CisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkJMTI4CiAKIC8qIGFsbG93IHRvIG92ZXJ3cml0ZSBzZXJpYWwgYW5kIGV0aGFkZHIgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKQEAgLTcxLDMwICs3MSwzMCBAQAogI2VuZGlmCiAKIC8qIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCi0jZGVmaW5lIENGR19QUk9NUFQJCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkJIj0+ICIKIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYKIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUJCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCiAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJCTE2CiAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJCUNGR19DQlNJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJCUNPTkZJR19TWVNfQ0JTSVpFCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCTB4MDA0MDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkJMHgwMDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCTB4MDA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJCTB4MDA4MDAwMDAKIAogLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgorI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFoKIC8qIHNwZWMgc2F5cyA2Ni42NjYgTUh6LCBidXQgaXQgYXBwZWFycyB0byBiZSAzMyAqLwotI2RlZmluZSBDRkdfSFoJCQkJMzMzMzMzMworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJCTMzMzMzMzMKIAogLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkweDAwMDEwMDAwCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIFwKIAkJCQkJICAxMTUyMDAsIDIzMDQwMCB9CiAjZGVmaW5lIENPTkZJR19TRVJJQUxfUlRTX0FDVElWRQkxCiAKQEAgLTEwOSwzOSArMTA5LDM5IEBACiAjZW5kaWYKIAogLyogRXhwYW5zaW9uIGJ1cyBzZXR0aW5ncyAqLwotI2RlZmluZSBDRkdfRVhQX0NTMAkJCTB4YmQxMTMwNDIKKyNkZWZpbmUgQ09ORklHX1NZU19FWFBfQ1MwCQkJMHhiZDExMzA0MgogCiAvKiBTRFJBTSBzZXR0aW5ncyAqLwogI2RlZmluZSBDT05GSUdfTlJfRFJBTV9CQU5LUwkJMQogI2RlZmluZSBQSFlTX1NEUkFNXzEJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19EUkFNX0JBU0UJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFCQkJMHgwMDAwMDAwMAogCiAvKiAxNk1CIFNEUkFNICovCi0jZGVmaW5lIENGR19TRFJfQ09ORklHCQkJMHgzQQorI2RlZmluZSBDT05GSUdfU1lTX1NEUl9DT05GSUcJCQkweDNBCiAjZGVmaW5lIFBIWVNfU0RSQU1fMV9TSVpFCQkweDAxMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9SRUZSRVNIX0NOVAkJMHg4MWEKLSNkZWZpbmUgQ0ZHX1NEUl9NT0RFX0NPTkZJRwkJMHgxCi0jZGVmaW5lIENGR19EUkFNX1NJWkUJCQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fUkVGUkVTSF9DTlQJCTB4ODFhCisjZGVmaW5lIENPTkZJR19TWVNfU0RSX01PREVfQ09ORklHCQkweDEKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1NJWkUJCQkweDAxMDAwMDAwCiAKIC8qIEZMQVNIIG9yZ2FuaXphdGlvbiAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCiAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCQkxNDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJMTQwCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJCTB4NTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJCXsgUEhZU19GTEFTSF8xIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCQl7IFBIWVNfRkxBU0hfMSB9CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkJUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJCSgyNTYgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCQkoMjU2IDw8IDEwKQogCiAvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgogLyogbm8gYnl0ZSB3cml0ZXMgb24gSVhQNHh4ICovCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJCUZMQVNIX0NGSV8xNkJJVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAkJRkxBU0hfQ0ZJXzE2QklUCiAKIC8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAogLyogRXRoZXJuZXQgKi8KIApAQCAtMTU1LDcgKzE1NSw3IEBACiAvKiBNSUkgUEhZIG1hbmFnZW1lbnQgKi8KICNkZWZpbmUgQ09ORklHX01JSQkJCTEKIC8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkJMTYKICNkZWZpbmUgQ09ORklHX1JFU0VUX1BIWV9SCQkxCiAvKiBldGhlcm5ldCBzd2l0Y2ggY29ubmVjdGVkIHRvIE1JSSBwb3J0ICovCiAjZGVmaW5lIENPTkZJR19NSUlfRVRIU1dJVENICQkxCkBAIC0xNzMsNyArMTczLDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RQX0hPU1ROQU1FCiAKIC8qIENhY2hlIENvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkzMgogCiAvKgogICogZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uOgpAQCAtMTgyLDcgKzE4Miw3IEBACiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJCTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJMHgyMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShQSFlTX0ZMQVNIXzEgKyAweDQwMDApCi0jZGVmaW5lIENGR19VU0VfUFBDRU5WCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkxCiAKICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJCQkJXAogCSJtdGQ9SVhQNFhYLUZsYXNoLjA6MjU2ayh1Ym9vdCksNjRrKHVjb2RlKSwxMTUyayhsaW51eCksLShyb290KVwwIiBcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYWN0dXgzLmggYi9pbmNsdWRlL2NvbmZpZ3MvYWN0dXgzLmgKaW5kZXggZmMyZDAyZi4uM2Y0MmVkNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2FjdHV4My5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hY3R1eDMuaApAQCAtMzIsNyArMzIsNyBAQAogI2RlZmluZSBDT05GSUdfRElTUExBWV9DUFVJTkZPCQkxCiAjZGVmaW5lIENPTkZJR19ESVNQTEFZX0JPQVJESU5GTwkxCiAKLSNkZWZpbmUgQ0ZHX0lYUDQyNV9DT05TT0xFCQlJWFA0MjVfVUFSVDIKKyNkZWZpbmUgQ09ORklHX1NZU19JWFA0MjVfQ09OU09MRQkJSVhQNDI1X1VBUlQyCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJCTExNTIwMAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCQkzCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCkBAIC00Myw5ICs0Myw5IEBACiAjdW5kZWYgQ09ORklHX1VTRV9JUlEKIAogLyogU2l6ZSBvZiBtYWxsb2MoKSBwb29sICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCiAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJCTEyOAogCiAvKiBhbGxvdyB0byBvdmVyd3JpdGUgc2VyaWFsIGFuZCBldGhhZGRyICovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCkBAIC02OSwzMCArNjksMzAgQEAKICNlbmRpZgogCiAvKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zICovCi0jZGVmaW5lIENGR19MT05HSEVMUAotI2RlZmluZSBDRkdfUFJPTVBUCQkJIj0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJCSI9PiAiCiAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkJMjU2CiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQogLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCQkxNgogLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCQlDRkdfQ0JTSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCQlDT05GSUdfU1lTX0NCU0laRQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQkweDAwNDAwMDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCTB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQkweDAwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQkweDAwODAwMDAwCiAKIC8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoKKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCiAvKiBzcGVjIHNheXMgNjYuNjY2IE1IeiwgYnV0IGl0IGFwcGVhcnMgdG8gYmUgMzMgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJCTMzMzMzMzMKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCQkzMzMzMzMzCiAKIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCQkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkJMHgwMDAxMDAwMAogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQkJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCBcCiAJCQkJCSAgMTE1MjAwLCAyMzA0MDAgfQogI2RlZmluZSBDT05GSUdfU0VSSUFMX1JUU19BQ1RJVkUJMQogCkBAIC0xMDgsMzkgKzEwOCwzOSBAQAogI2VuZGlmCiAKIC8qIEV4cGFuc2lvbiBidXMgc2V0dGluZ3MgKi8KLSNkZWZpbmUgQ0ZHX0VYUF9DUzAJCQkweGJkMTEzNDQyCisjZGVmaW5lIENPTkZJR19TWVNfRVhQX0NTMAkJCTB4YmQxMTM0NDIKIAogLyogU0RSQU0gc2V0dGluZ3MgKi8KICNkZWZpbmUgQ09ORklHX05SX0RSQU1fQkFOS1MJCTEKICNkZWZpbmUgUEhZU19TRFJBTV8xCQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRFJBTV9CQVNFCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQkFTRQkJCTB4MDAwMDAwMDAKIAogLyogMTZNQiBTRFJBTSAqLwotI2RlZmluZSBDRkdfU0RSX0NPTkZJRwkJCTB4M0EKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJfQ09ORklHCQkJMHgzQQogI2RlZmluZSBQSFlTX1NEUkFNXzFfU0laRQkJMHgwMTAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fUkVGUkVTSF9DTlQJCTB4ODFhCi0jZGVmaW5lIENGR19TRFJfTU9ERV9DT05GSUcJCTB4MQotI2RlZmluZSBDRkdfRFJBTV9TSVpFCQkJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1JFRlJFU0hfQ05UCQkweDgxYQorI2RlZmluZSBDT05GSUdfU1lTX1NEUl9NT0RFX0NPTkZJRwkJMHgxCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFCQkJMHgwMTAwMDAwMAogCiAvKiBGTEFTSCBvcmdhbml6YXRpb24gKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQogLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJMTQwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTE0MAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCQkweDUwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCQl7IFBIWVNfRkxBU0hfMSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAkJeyBQSFlTX0ZMQVNIXzEgfQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJCVBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCQkoMjU2IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkJKDI1NiA8PCAxMCkKIAogLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKIC8qIG5vIGJ5dGUgd3JpdGVzIG9uIElYUDR4eCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICQlGTEFTSF9DRklfMTZCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJCUZMQVNIX0NGSV8xNkJJVAogCiAvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAKIC8qIEV0aGVybmV0ICovCiAKQEAgLTE1NSw3ICsxNTUsNyBAQAogLyogTUlJIFBIWSBtYW5hZ2VtZW50ICovCiAjZGVmaW5lIENPTkZJR19NSUkJCQkxCiAvKiBOdW1iZXIgb2YgZXRoZXJuZXQgcnggYnVmZmVycyAmIGRlc2NyaXB0b3JzICovCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJCTE2CiAjZGVmaW5lIENPTkZJR19SRVNFVF9QSFlfUgkJMQogLyogZXRoZXJuZXQgc3dpdGNoIGNvbm5lY3RlZCB0byBNSUkgcG9ydCAqLwogI2RlZmluZSBDT05GSUdfTUlJX0VUSFNXSVRDSAkJMQpAQCAtMTczLDcgKzE3Myw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UUF9IT1NUTkFNRQogCiAvKiBDYWNoZSBDb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJMzIKIAogLyoKICAqIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbjoKQEAgLTE4Miw3ICsxODIsNyBAQAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICQkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJCTB4MjAwMAogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoUEhZU19GTEFTSF8xICsgMHg0MDAwKQotI2RlZmluZSBDRkdfVVNFX1BQQ0VOVgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJMQogCiAjZGVmaW5lIENPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MJCQkJCVwKIAkibXRkPUlYUDRYWC1GbGFzaC4wOjI1NmsodWJvb3QpLDY0ayh1Y29kZSksMTE1MmsobGludXgpLC0ocm9vdClcMCIgXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2FjdHV4NC5oIGIvaW5jbHVkZS9jb25maWdzL2FjdHV4NC5oCmluZGV4IDgzYmQ3ZjUuLjNjZjFiMjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hY3R1eDQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYWN0dXg0LmgKQEAgLTMyLDcgKzMyLDcgQEAKICNkZWZpbmUgQ09ORklHX0RJU1BMQVlfQ1BVSU5GTwkJMQogI2RlZmluZSBDT05GSUdfRElTUExBWV9CT0FSRElORk8JMQogCi0jZGVmaW5lIENGR19JWFA0MjVfQ09OU09MRQkJSVhQNDI1X1VBUlQxCisjZGVmaW5lIENPTkZJR19TWVNfSVhQNDI1X0NPTlNPTEUJCUlYUDQyNV9VQVJUMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCQkxMTUyMDAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkJMwogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwpAQCAtNDMsOSArNDMsOSBAQAogI3VuZGVmIENPTkZJR19VU0VfSVJRCiAKIC8qIFNpemUgb2YgbWFsbG9jKCkgcG9vbCAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQogLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCQkxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCQkxMjgKIAogLyogYWxsb3cgdG8gb3ZlcndyaXRlIHNlcmlhbCBhbmQgZXRoYWRkciAqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQpAQCAtNjgsMzAgKzY4LDMwIEBACiAjZW5kaWYKIAogLyogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucyAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCQkiPT4gIgogLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJCTI1NgogLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkJMTYKIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQkJQ0ZHX0NCU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQkJQ09ORklHX1NZU19DQlNJWkUKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkJMHgwMDQwMDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCQkweDAwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkJMHgwMDgwMDAwMAogCiAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgogLyogc3BlYyBzYXlzIDY2LjY2NiBNSHosIGJ1dCBpdCBhcHBlYXJzIHRvIGJlIDMzICovCi0jZGVmaW5lIENGR19IWgkJCQkzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkJMzMzMzMzMwogCiAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkJMHgwMDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJCTB4MDAwMTAwMDAKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQkJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgXAogCQkJCQkgIDExNTIwMCwgMjMwNDAwIH0KICNkZWZpbmUgQ09ORklHX1NFUklBTF9SVFNfQUNUSVZFCTEKIApAQCAtMTA2LDQ0ICsxMDYsNDQgQEAKICNlbmRpZgogCiAvKiBFeHBhbnNpb24gYnVzIHNldHRpbmdzICovCi0jZGVmaW5lIENGR19FWFBfQ1MwCQkJMHhiZDExMzAwMworI2RlZmluZSBDT05GSUdfU1lTX0VYUF9DUzAJCQkweGJkMTEzMDAzCiAKIC8qIFNEUkFNIHNldHRpbmdzICovCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCQkxCiAjZGVmaW5lIFBIWVNfU0RSQU1fMQkJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RSQU1fQkFTRQkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBU0UJCQkweDAwMDAwMDAwCiAKIC8qIDMyTUIgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX1NEUl9DT05GSUcJCQkweDE4CisjZGVmaW5lIENPTkZJR19TWVNfU0RSX0NPTkZJRwkJCTB4MTgKICNkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJCTB4MDIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1JFRlJFU0hfQ05UCQkweDgxYQotI2RlZmluZSBDRkdfU0RSX01PREVfQ09ORklHCQkweDEKLSNkZWZpbmUgQ0ZHX0RSQU1fU0laRQkJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9SRUZSRVNIX0NOVAkJMHg4MWEKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJfTU9ERV9DT05GSUcJCTB4MQorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fU0laRQkJCTB4MDIwMDAwMDAKIAogLyogRkxBU0ggb3JnYW5pemF0aW9uICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJCTIKIC8qIG1heCAjIG9mIHNlY3RvcnMgcGVyIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCQk3MAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQk3MAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCQkweDUwMDAwMDAwCiAjZGVmaW5lIFBIWVNfRkxBU0hfMgkJCTB4NTEwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJCXsgUEhZU19GTEFTSF8xLCBQSFlTX0ZMQVNIXzIgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJCXsgUEhZU19GTEFTSF8xLCBQSFlTX0ZMQVNIXzIgfQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJCVBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCQkoMjUyIDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkJKDI1MiA8PCAxMCkKIAogLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKIC8qIGJvYXJkIHByb3ZpZGVzIGl0cyBvd24gZmxhc2hfaW5pdCBjb2RlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfTEVHQUNZCQkxCiAvKiBubyBieXRlIHdyaXRlcyBvbiBJWFA0eHggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAkJRkxBU0hfQ0ZJXzE2QklUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICQlGTEFTSF9DRklfMTZCSVQKIC8qIFNTVCAzOVZGMDIwIGV0Yy4gc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfRkxBU0hfTEVHQUNZXzI1Nkt4OAkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTEVHQUNZXzI1Nkt4OAkxCiAKIC8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAogLyogRXRoZXJuZXQgKi8KIApAQCAtMTU4LDcgKzE1OCw3IEBACiAvKiBNSUkgUEhZIG1hbmFnZW1lbnQgKi8KICNkZWZpbmUgQ09ORklHX01JSQkJCTEKIC8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkJMTYKIAogI2RlZmluZSBDT05GSUdfQ01EX0RIQ1AKICNkZWZpbmUgQ09ORklHX0NNRF9ORVQKQEAgLTE3Myw3ICsxNzMsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVFBfSE9TVE5BTUUKIAogLyogQ2FjaGUgQ29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJCTMyCiAKIC8qIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbjogb25lIGNvbXBsZXRlIDRrIGZsYXNoIHNlY3RvciAqLwogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICQkxCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYWRzNTEyMS5oIGIvaW5jbHVkZS9jb25maWdzL2FkczUxMjEuaAppbmRleCBkNmY3ZTAyLi5iYjM1MjVmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYWRzNTEyMS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hZHM1MTIxLmgKQEAgLTU5LDMxICs1OSwzMSBAQAogLyogQ09ORklHX1BDSSBpcyBkZWZpbmVkIGF0IGNvbmZpZyB0aW1lICovCiAKICNpZmRlZiBDT05GSUdfQURTNTEyMV9SRVYyCi0jZGVmaW5lIENGR19NUEM1MTJYX0NMS0lOCTY2MDAwMDAwCS8qIGluIEh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNTEyWF9DTEtJTgk2NjAwMDAwMAkvKiBpbiBIeiAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01QQzUxMlhfQ0xLSU4JMzMzMzMzMzMJLyogaW4gSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1MTJYX0NMS0lOCTMzMzMzMzMzCS8qIGluIEh6ICovCiAjZGVmaW5lIENPTkZJR19QQ0kKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YJCS8qIGNhbGwgYm9hcmRfZWFybHlfaW5pdF9mKCkgKi8KICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCiAKLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RJVV9BRERSCQkoQ0ZHX0lNTVIrMHgyMTAwKQorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ESVVfQUREUgkJKENPTkZJR19TWVNfSU1NUisweDIxMDApCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMCAgICAgIC8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMCAgICAgIC8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKIAogLyoKICAqIEREUiBTZXR1cCAtIG1hbnVhbGx5IHNldCBhbGwgcGFyYW1ldGVycyBhcyB0aGVyZSdzIG5vIFNQRCBldGMuCiAgKi8KICNpZmRlZiBDT05GSUdfQURTNTEyMV9SRVYyCi0jZGVmaW5lIENGR19ERFJfU0laRQkJMjU2CQkvKiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9TSVpFCQkyNTYJCS8qIE1CICovCiAjZWxzZQotI2RlZmluZSBDRkdfRERSX1NJWkUJCTUxMgkJLyogTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0laRQkJNTEyCQkvKiBNQiAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19ERFJfQkFTRQkJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQkFTRQkJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfQkFTRQogCiAvKiBERFIgQ29udHJvbGxlciBDb25maWd1cmF0aW9uCiAgKgpAQCAtMTMwLDEwMiArMTMwLDEwMiBAQAogICoJWzA0OjAwXSBEUkFNIHRSUEEKICAqLwogI2lmZGVmIENPTkZJR19BRFM1MTIxX1JFVjIKLSNkZWZpbmUgQ0ZHX01ERFJDX1NZU19DRkcJMHhGODYwNEEwMAotI2RlZmluZSBDRkdfTUREUkNfU1lTX0NGR19SVU4JMHhFODYwNEEwMAotI2RlZmluZSBDRkdfTUREUkNfVElNRV9DRkcxCTB4NTRFQzExNjgKLSNkZWZpbmUgQ0ZHX01ERFJDX1RJTUVfQ0ZHMgkweDM1MjEwODY0CisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNfU1lTX0NGRwkweEY4NjA0QTAwCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNfU1lTX0NGR19SVU4JMHhFODYwNEEwMAorI2RlZmluZSBDT05GSUdfU1lTX01ERFJDX1RJTUVfQ0ZHMQkweDU0RUMxMTY4CisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNfVElNRV9DRkcyCTB4MzUyMTA4NjQKICNlbHNlCi0jZGVmaW5lIENGR19NRERSQ19TWVNfQ0ZHCSAweEZBODA0QTAwCi0jZGVmaW5lIENGR19NRERSQ19TWVNfQ0ZHX1JVTgkgMHhFQTgwNEEwMAotI2RlZmluZSBDRkdfTUREUkNfVElNRV9DRkcxCSAweDY4RUMxMTY4Ci0jZGVmaW5lIENGR19NRERSQ19USU1FX0NGRzIJIDB4MzQzMTA4NjQKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ19TWVNfQ0ZHCSAweEZBODA0QTAwCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNfU1lTX0NGR19SVU4JIDB4RUE4MDRBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ19USU1FX0NGRzEJIDB4NjhFQzExNjgKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ19USU1FX0NGRzIJIDB4MzQzMTA4NjQKICNlbmRpZgotI2RlZmluZSBDRkdfTUREUkNfU1lTX0NGR19FTgkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19NRERSQ19USU1FX0NGRzAJMHgwMDAwM0QyRQotI2RlZmluZSBDRkdfTUREUkNfVElNRV9DRkcwX1JVTgkweDA2MTgzRDJFCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNfU1lTX0NGR19FTgkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNfVElNRV9DRkcwCTB4MDAwMDNEMkUKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ19USU1FX0NGRzBfUlVOCTB4MDYxODNEMkUKIAotI2RlZmluZSBDRkdfTUlDUk9OX05PUAkJMHgwMTM4MDAwMAotI2RlZmluZSBDRkdfTUlDUk9OX1BDSEdfQUxMCTB4MDExMDA0MDAKLSNkZWZpbmUgQ0ZHX01JQ1JPTl9FTTIJCTB4MDEwMjAwMDAKLSNkZWZpbmUgQ0ZHX01JQ1JPTl9FTTMJCTB4MDEwMzAwMDAKLSNkZWZpbmUgQ0ZHX01JQ1JPTl9FTl9ETEwJMHgwMTAxMDAwMAotI2RlZmluZSBDRkdfTUlDUk9OX1JGU0gJCTB4MDEwODAwMDAKLSNkZWZpbmUgQ0ZHX01JQ1JPTl9JTklUX0RFVl9PUAkweDAxMDAwNDMyCi0jZGVmaW5lIENGR19NSUNST05fT0NEX0RFRkFVTFQJMHgwMTAxMDc4MAorI2RlZmluZSBDT05GSUdfU1lTX01JQ1JPTl9OT1AJCTB4MDEzODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NSUNST05fUENIR19BTEwJMHgwMTEwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01JQ1JPTl9FTTIJCTB4MDEwMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NSUNST05fRU0zCQkweDAxMDMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUlDUk9OX0VOX0RMTAkweDAxMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUlDUk9OX1JGU0gJCTB4MDEwODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NSUNST05fSU5JVF9ERVZfT1AJMHgwMTAwMDQzMgorI2RlZmluZSBDT05GSUdfU1lTX01JQ1JPTl9PQ0RfREVGQVVMVAkweDAxMDEwNzgwCiAKIC8qIEREUiBQcmlvcml0eSBNYW5hZ2VyIENvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX01ERFJDR1JQX1BNX0NGRzEJMHgwMDA3Nzc3NwotI2RlZmluZSBDRkdfTUREUkNHUlBfUE1fQ0ZHMgkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NRERSQ0dSUF9ISVBSSU9fQ0ZHCTB4MDAwMDAwMDEKLSNkZWZpbmUgQ0ZHX01ERFJDR1JQX0xVVDBfTVUJMHhGRkVFRERDQwotI2RlZmluZSBDRkdfTUREUkNHUlBfTFVUMF9NTAkweEJCQUFBQUFBCi0jZGVmaW5lIENGR19NRERSQ0dSUF9MVVQxX01VCTB4NjY2NjY2NjYKLSNkZWZpbmUgQ0ZHX01ERFJDR1JQX0xVVDFfTUwJMHg1NTU1NTU1NQotI2RlZmluZSBDRkdfTUREUkNHUlBfTFVUMl9NVQkweDQ0NDQ0NDQ0Ci0jZGVmaW5lIENGR19NRERSQ0dSUF9MVVQyX01MCTB4NDQ0NDQ0NDQKLSNkZWZpbmUgQ0ZHX01ERFJDR1JQX0xVVDNfTVUJMHg1NTU1NTU1NQotI2RlZmluZSBDRkdfTUREUkNHUlBfTFVUM19NTAkweDU1NTU1NTU4Ci0jZGVmaW5lIENGR19NRERSQ0dSUF9MVVQ0X01VCTB4MTExMTExMTEKLSNkZWZpbmUgQ0ZHX01ERFJDR1JQX0xVVDRfTUwJMHgxMTExMTEyMgotI2RlZmluZSBDRkdfTUREUkNHUlBfTFVUMF9BVQkweGFhYWFhYWFhCi0jZGVmaW5lIENGR19NRERSQ0dSUF9MVVQwX0FMCTB4YWFhYWFhYWEKLSNkZWZpbmUgQ0ZHX01ERFJDR1JQX0xVVDFfQVUJMHg2NjY2NjY2NgotI2RlZmluZSBDRkdfTUREUkNHUlBfTFVUMV9BTAkweDY2NjY2NjY2Ci0jZGVmaW5lIENGR19NRERSQ0dSUF9MVVQyX0FVCTB4MTExMTExMTEKLSNkZWZpbmUgQ0ZHX01ERFJDR1JQX0xVVDJfQUwJMHgxMTExMTExMQotI2RlZmluZSBDRkdfTUREUkNHUlBfTFVUM19BVQkweDExMTExMTExCi0jZGVmaW5lIENGR19NRERSQ0dSUF9MVVQzX0FMCTB4MTExMTExMTEKLSNkZWZpbmUgQ0ZHX01ERFJDR1JQX0xVVDRfQVUJMHgxMTExMTExMQotI2RlZmluZSBDRkdfTUREUkNHUlBfTFVUNF9BTAkweDExMTExMTExCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfUE1fQ0ZHMQkweDAwMDc3Nzc3CisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfUE1fQ0ZHMgkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfSElQUklPX0NGRwkweDAwMDAwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUMF9NVQkweEZGRUVERENDCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUMF9NTAkweEJCQUFBQUFBCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUMV9NVQkweDY2NjY2NjY2CisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUMV9NTAkweDU1NTU1NTU1CisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUMl9NVQkweDQ0NDQ0NDQ0CisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUMl9NTAkweDQ0NDQ0NDQ0CisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUM19NVQkweDU1NTU1NTU1CisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUM19NTAkweDU1NTU1NTU4CisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUNF9NVQkweDExMTExMTExCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUNF9NTAkweDExMTExMTIyCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUMF9BVQkweGFhYWFhYWFhCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUMF9BTAkweGFhYWFhYWFhCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUMV9BVQkweDY2NjY2NjY2CisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUMV9BTAkweDY2NjY2NjY2CisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUMl9BVQkweDExMTExMTExCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUMl9BTAkweDExMTExMTExCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUM19BVQkweDExMTExMTExCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUM19BTAkweDExMTExMTExCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUNF9BVQkweDExMTExMTExCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNHUlBfTFVUNF9BTAkweDExMTExMTExCiAKIC8qCiAgKiBOT1IgRkxBU0ggb24gdGhlIExvY2FsIEJ1cwogICovCiAjdW5kZWYgQ09ORklHX0JLVVBfRkxBU0gKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCQkvKiB1c2UgdGhlIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJLyogdXNlIHRoZSBDRkkgZHJpdmVyICovCiAjaWZkZWYgQ09ORklHX0JLVVBfRkxBU0gKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggICAqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAkvKiBtYXggZmxhc2ggc2l6ZSBpbiBieXRlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAJLyogbWF4IGZsYXNoIHNpemUgaW4gYnl0ZXMgKi8KICNlbHNlCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZDMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IGZsYXNoIHNpemUgaW4gYnl0ZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZDMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCBmbGFzaCBzaXplIGluIGJ5dGVzICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJe0NGR19GTEFTSF9CQVNFfQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CQkvKiBtYXggc2VjdG9ycyBwZXIgZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXtDT05GSUdfU1lTX0ZMQVNIX0JBU0V9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CQkvKiBtYXggc2VjdG9ycyBwZXIgZGV2aWNlICovCiAKLSN1bmRlZiBDRkdfRkxBU0hfQ0hFQ0tTVU0KKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCiAKIC8qCiAgKiBDUExEIHJlZ2lzdGVycyBhcmVhIGlzIHJlYWxseSBvbmx5IDMyIGJ5dGVzIGluIHNpemUsIGJ1dCB0aGUgc21hbGxlc3QgcG9zc2libGUgTFAKICAqIHdpbmRvdyBpcyA2NEtCCiAgKi8KLSNkZWZpbmUgQ0ZHX0NQTERfQkFTRQkJMHg4MjAwMDAwMAotI2RlZmluZSBDRkdfQ1BMRF9TSVpFCQkweDAwMDEwMDAwCS8qIDY0IEtCICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BMRF9CQVNFCQkweDgyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1BMRF9TSVpFCQkweDAwMDEwMDAwCS8qIDY0IEtCICovCiAKLSNkZWZpbmUgQ0ZHX1NSQU1fQkFTRQkJMHgzMDAwMDAwMAotI2RlZmluZSBDRkdfU1JBTV9TSVpFCQkweDAwMDIwMDAwCS8qIDEyOCBLQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fQkFTRQkJMHgzMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fU0laRQkJMHgwMDAyMDAwMAkvKiAxMjggS0IgKi8KIAotI2RlZmluZSBDRkdfQ1MwX0NGRwkJMHgwNTA1OTMxMAkvKiBBTEUgYWN0aXZlIGxvdywgZGF0YSBzaXplIDRieXRlcyAqLwotI2RlZmluZSBDRkdfQ1MyX0NGRwkJMHgwNTA1OTAxMAkvKiBBTEUgYWN0aXZlIGxvdywgZGF0YSBzaXplIDFieXRlICovCi0jZGVmaW5lIENGR19DU19BTEVUSU1JTkcJMHgwMDAwMDAwNQkvKiBVc2UgYWx0ZXJuYXRpdmUgQ1MgdGltaW5nIGZvciBDUzAgYW5kIENTMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMF9DRkcJCTB4MDUwNTkzMTAJLyogQUxFIGFjdGl2ZSBsb3csIGRhdGEgc2l6ZSA0Ynl0ZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfQ0ZHCQkweDA1MDU5MDEwCS8qIEFMRSBhY3RpdmUgbG93LCBkYXRhIHNpemUgMWJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DU19BTEVUSU1JTkcJMHgwMDAwMDAwNQkvKiBVc2UgYWx0ZXJuYXRpdmUgQ1MgdGltaW5nIGZvciBDUzAgYW5kIENTMiAqLwogCiAvKiBVc2UgU1JBTSBmb3IgaW5pdGlhbCBzdGFjayAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfU1JBTV9CQVNFCQkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX1NSQU1fU0laRQkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfU1JBTV9CQVNFCQkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfU1JBTV9TSVpFCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4MTAwCQkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMAkJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJCS8qIFN0YXJ0IG9mIG1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCQkvKiBTdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLwogI2lmZGVmCUNPTkZJR19GU0xfRElVX0ZCCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNiAqIDEwMjQgKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDYgKiAxMDI0ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgKiAxMDI0KQogI2VuZGlmCiAKIC8qCkBAIC0yNDIsNyArMjQyLDcgQEAKICNlcnJvciBDT05GSUdfUFNDX0NPTlNPTEUgbXVzdCBiZSAzCiAjZW5kaWYKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogLi4uIGF0IDExNTIwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwxMTUyMDB9CiAKICNkZWZpbmUgQ09OU09MRV9GSUZPX1RYX1NJWkUJRklGT0NfUFNDM19UWF9TSVpFCkBAIC0yNTIsOSArMjUyLDkgQEAKIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmICBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyoKQEAgLTI2NSwxNSArMjY1LDE1IEBACiAvKgogICogR2VuZXJhbCBQQ0kKICAqLwotI2RlZmluZSBDRkdfUENJX01FTV9CQVNFCTB4QTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fUEhZUwlDRkdfUENJX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0lfTU1JT19CQVNFCShDRkdfUENJX01FTV9CQVNFICsgQ0ZHX1BDSV9NRU1fU0laRSkKLSNkZWZpbmUgQ0ZHX1BDSV9NTUlPX1BIWVMJQ0ZHX1BDSV9NTUlPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9NTUlPX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0lfSU9fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1BIWVMJCTB4ODQwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19TSVpFCQkweDAxMDAwMDAwCS8qIDE2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fQkFTRQkweEEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9QSFlTCUNPTkZJR19TWVNfUENJX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UJKENPTkZJR19TWVNfUENJX01FTV9CQVNFICsgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01NSU9fUEhZUwlDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTU1JT19TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1BIWVMJCTB4ODQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fU0laRQkJMHgwMTAwMDAwMAkvKiAxNk0gKi8KIAogCiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkgKi8KQEAgLTI4NywxOSArMjg3LDE5IEBACiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkJLyogc28gZGlzYWJsZSBiaXQtYmFuZ2VkIEkyQyAqLwogI2RlZmluZSBDT05GSUdfSTJDX01VTFRJX0JVUwogI2RlZmluZSBDT05GSUdfSTJDX0NNRF9UUkVFCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogI2lmIDAKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7ezAsMHg2OX19CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXt7MCwweDY5fX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KICNlbmRpZgogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgkvKiAxNi1iaXQgRUVQUk9NIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiBBdG1lbDogQVQyNEMzMkEtMTBUUS0yLjcgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIDEwbXMgb2YgZGVsYXkgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiAzMi1CeXRlIFBhZ2UgV3JpdGUgTW9kZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIJLyogMTYtYml0IEVFUFJPTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIEF0bWVsOiBBVDI0QzMyQS0xMFRRLTIuNyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIDEwbXMgb2YgZGVsYXkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogMzItQnl0ZSBQYWdlIFdyaXRlIE1vZGUgKi8KIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTMxNSwxNCArMzE1LDE0IEBACiAgKiBDb25maWd1cmUgb24tYm9hcmQgUlRDCiAgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19NNDFUNjIJCQkvKiB1c2UgTTQxVDYyIHJ0YyB2aWEgaTIgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkJMHg2OAkvKiBhdCBhZGRyZXNzIDB4NjgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCQkweDY4CS8qIGF0IGFkZHJlc3MgMHg2OAkJKi8KIAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAvKiBUaGlzIGhhcyB0byBiZSBhIG11bHRpcGxlIG9mIHRoZSBGbGFzaCBzZWN0b3Igc2l6ZSAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjaWZkZWYgQ09ORklHX0JLVVBfRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAkvKiBvbmUgc2VjdG9yICgyNTZLKSBmb3IgZW52ICovCkBAIC0zMzUsNyArMzM1LDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkoQ09ORklHX0VOVl9TSVpFKQogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCiAKICNpbmNsdWRlIDxjb25maWdfY21kX2RlZmF1bHQuaD4KIApAQCAtMzU0LDUwICszNTQsNTAgQEAKICNlbmRpZgogCiAvKgotICogV2F0Y2hkb2cgdGltZW91dCA9IENGR19XQVRDSERPR19WQUxVRSAqIDY1NTM2IC8gSVBTIGNsb2NrLgotICogRm9yIGV4YW1wbGUsIHdoZW4gSVBTIGlzIHNldCB0byA2Nk1IeiBhbmQgQ0ZHX1dBVENIRE9HX1ZBTFVFIGlzIHNldAorICogV2F0Y2hkb2cgdGltZW91dCA9IENPTkZJR19TWVNfV0FUQ0hET0dfVkFMVUUgKiA2NTUzNiAvIElQUyBjbG9jay4KKyAqIEZvciBleGFtcGxlLCB3aGVuIElQUyBpcyBzZXQgdG8gNjZNSHogYW5kIENPTkZJR19TWVNfV0FUQ0hET0dfVkFMVUUgaXMgc2V0CiAgKiB0byAweEZGRkYsIHdhdGNoZG9nIHRpbWVvdXRzIGFmdGVyIGFib3V0IDY0cy4gRm9yIGRldGFpbHMgcmVmZXIKICAqIHRvIGNoYXB0ZXIgMzYgb2YgdGhlIE1QQzUxMjFlIFJlZmVyZW5jZSBNYW51YWwuCiAgKi8KIC8qICNkZWZpbmUgQ09ORklHX1dBVENIRE9HICovCQkvKiBlbmFibGUgd2F0Y2hkb2cgKi8KLSNkZWZpbmUgQ0ZHX1dBVENIRE9HX1ZBTFVFIDB4RkZGRgorI2RlZmluZSBDT05GSUdfU1lTX1dBVENIRE9HX1ZBTFVFIDB4RkZGRgogCiAgLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogI2lmZGVmIENPTkZJR19DTURfS0dEQgotCSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisJI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotCSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCiAKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKIC8qIENhY2hlIENvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0RDQUNIRV9TSVpFCQkzMjc2OAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19EQ0FDSEVfU0laRQkJMzI3NjgKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogI2lmZGVmIENPTkZJR19DTURfS0dEQgotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLypsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLypsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSElEMF9JTklUCTB4MDAwMDAwMDAwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKLSNkZWZpbmUgQ0ZHX0hJRDIJSElEMl9IQkUKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJMHgwMDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCUhJRDJfSEJFCiAKICNkZWZpbmUgQ09ORklHX0hJR0hfQkFUUwkxCS8qIEhpZ2ggQkFUcyBzdXBwb3J0ZWQgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2Fldi5oIGIvaW5jbHVkZS9jb25maWdzL2Fldi5oCmluZGV4IDJkY2FhNTguLjJiNDgyNmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hZXYuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYWV2LmgKQEAgLTM5LDcgKzM5LDcgQEAKICNkZWZpbmUgQ09ORklHX1NUSzUyWFgJCTEJLyogLi4uIG9uIGEgU1RLNTJYWCBiYXNlIGJvYXJkICovCiAjZGVmaW5lIENPTkZJR19TVEs1MlhYX1JFVjEwMAkxCS8qICBkZWZpbmUgZm9yIHJldmlzaW9uIDEwMCBiYXNlYm9hcmRzICovCiAjZGVmaW5lIENPTkZJR19BRVZGSUZPCQkxCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCiAKICNkZWZpbmUgQ09ORklHX0hJR0hfQkFUUwkxCS8qIEhpZ2ggQkFUcyBzdXBwb3J0ZWQgKi8KIApAQCAtNTEsNyArNTEsNyBAQAogICovCiAjZGVmaW5lIENPTkZJR19QU0NfQ09OU09MRQkxCS8qIGNvbnNvbGUgaXMgb24gUFNDMSAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAkvKiAuLi4gYXQgMTE1MjAwIGJwcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qCiAgKiBQQ0kgTWFwcGluZzoKQEAgLTc0LDcgKzc0LDcgQEAKIAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCQkxCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTggIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTggIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KICNkZWZpbmUgQ09ORklHX05TODM4MlgJCTEKICNlbmRpZgkvKiBDT05GSUdfQUVWRklGTyAqLwogCkBAIC04NCw5ICs4NCw5IEBACiAjZGVmaW5lIENPTkZJR19JU09fUEFSVElUSU9OCiAKIC8qIFBPU1Qgc3VwcG9ydCAqLwotI2RlZmluZSBDT05GSUdfUE9TVAkJKENGR19QT1NUX01FTU9SWSAgIHwgXAotCQkJCSBDRkdfUE9TVF9DUFUJICAgfCBcCi0JCQkJIENGR19QT1NUX0kyQykKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfTUVNT1JZICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DUFUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9JMkMpCiAKICNpZmRlZiBDT05GSUdfUE9TVAogLyogcHJlc2VydmUgc3BhY2UgZm9yIHRoZSBwb3N0X3dvcmQgYXQgZW5kIG9mIG9uLWNoaXAgU1JBTSAqLwpAQCAtMTI5LDcgKzEyOSw3IEBACiAjZGVmaW5lCUNPTkZJR19USU1FU1RBTVAJCS8qIGRpc3BsYXkgaW1hZ2UgdGltZXN0YW1wcyAqLwogCiAjaWYgKFRFWFRfQkFTRSA9PSAweEZDMDAwMDAwKQkJLyogQm9vdCBsb3cgKi8KLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UCQkxCiAjZW5kaWYKIAogLyoKQEAgLTE3MiwxNyArMTcyLDE3IEBACiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jZGVmaW5lIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSykKIC8qCiAgKiBQQ0kgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24KICAqCiAgKiBBY3R1YWxseSBhIFBDSSBDbG9jayBvZiA2NiBNSHogaXMgb25seSBzZXQgKGluIGNwdV9pbml0LmMpIGlmCi0gKiBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsgaXMgZGVmaW5lZC4gVGhpcyBpcyBiZWNhdXNlIGEgUENJIENsb2NrCisgKiBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLIGlzIGRlZmluZWQuIFRoaXMgaXMgYmVjYXVzZSBhIFBDSSBDbG9jawogICogb2YgNjYgTUh6IHlldCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgd2l0aCBhIElQQiBCdXMgQ2xvY2sgb2YgNjYgTUh6LgogICovCi0jZGVmaW5lIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KICNlbmRpZgogCiAvKgpAQCAtMTkwLDkgKzE5MCw5IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KICNpZmRlZiBDT05GSUdfVFFNNTIwMF9SRVYxMDAKLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTEJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgZm9yIHJldi4gMTAwIGJvYXJkICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMQkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBmb3IgcmV2LiAxMDAgYm9hcmQgKi8KICNlbHNlCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMyIGZvciBhbGwgb3RoZXIgcmV2cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzIgZm9yIGFsbCBvdGhlciByZXZzICovCiAjZW5kaWYKIAogLyoKQEAgLTIwMSwxMSArMjAxLDExIEBACiAgKiBQbGVhc2Ugbm90aWNlLCB0aGF0IHRoZSByZXN1bHRpbmcgY2xvY2sgZnJlcXVlbmN5IGNvdWxkIGRpZmZlciBmcm9tIHRoZQogICogY29uZmlndXJlZCB2YWx1ZS4gVGhpcyBpcyBiZWNhdXNlIHRoZSBJMkMgY2xvY2sgaXMgZGVyaXZlZCBmcm9tIHN5c3RlbQogICogY2xvY2sgb3ZlciBhIGZyZXF1ZW5jeSBkaXZpZGVyIHdpdGggb25seSBhIGZldyBkaXZpZGVyIHZhbHVlcy4gVS1ib290Ci0gKiBjYWxjdWxhdGVzIHRoZSBiZXN0IGFwcHJveGltYXRpb24gZm9yIENGR19JMkNfU1BFRUQuIEhvd2V2ZXIgdGhlIGNhbGN1bGF0ZWQKKyAqIGNhbGN1bGF0ZXMgdGhlIGJlc3QgYXBwcm94aW1hdGlvbiBmb3IgQ09ORklHX1NZU19JMkNfU1BFRUQuIEhvd2V2ZXIgdGhlIGNhbGN1bGF0ZWQKICAqIGFwcHJveGltYXRpb24gYWxsd2F5cyBsaWVzIGJlbG93IHRoZSBjb25maWd1cmVkIHZhbHVlLCBuZXZlciBhYm92ZS4KICAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24gZm9yIG9uYm9hcmQgRUVQUk9NIE0yNEMzMiAoTTI0QzY0IHNob3VsZCB3b3JrCkBAIC0yMTMsMzQgKzIxMywzNCBAQAogICogRUVQUk9NICgyNEM2NCkgaXMgb24gdGhlIHNhbWUgSTJDIGFkZHJlc3MgKGJ1dCBvbiBvdGhlciBJMkMgYnVzKSwgc28gdGhlCiAgKiBzYW1lIGNvbmZpZ3VyYXRpb24gY291bGQgYmUgdXNlZC4KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4ICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogPTMyIEJ5dGVzIHBlciB3cml0ZSAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qID0zMiBCeXRlcyBwZXIgd3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAogCiAvKgogICogRmxhc2ggY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlURVhUX0JBU0UgLyogMHhGQzAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVRFWFRfQkFTRSAvKiAweEZDMDAwMDAwICovCiAKIC8qIHVzZSBDRkkgZmxhc2ggZHJpdmVyIGlmIG5vIG1vZHVsZSB2YXJpYW50IGlzIHNwZXppZmllZCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0JPT1RDU19TVEFSVCB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDA0MDAwMDAwIC8qIDY0IE1CeXRlICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwotI3VuZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCS8qIG5vdCBzdXBwb3J0ZWQgeWV0IGZvciBBTUQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDA0MDAwMDAwIC8qIDY0IE1CeXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJLyogbm90IHN1cHBvcnRlZCB5ZXQgZm9yIEFNRCAqLwogCi0jaWYgIWRlZmluZWQoQ0ZHX0xPV0JPT1QpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDc2MDAwMCArIDB4MDA4MDAwMDApCi0jZWxzZQkvKiBDRkdfTE9XQk9PVCAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4MDAwNjAwMDApCi0jZW5kaWYJLyogQ0ZHX0xPV0JPT1QgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX0xPV0JPT1QpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDA3NjAwMDAgKyAweDAwODAwMDAwKQorI2Vsc2UJLyogQ09ORklHX1NZU19MT1dCT09UICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDAwNjAwMDApCisjZW5kaWYJLyogQ09ORklHX1NZU19MT1dCT09UICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcwogCQkJCQkgICAoPSBjaGlwIHNlbGVjdHMpICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKQkqLwogCiAKIC8qCkBAIC0yNTUsMzIgKzI1NSwzMiBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKIC8qIFVzZSBPTi1DaGlwIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCiAjaWZkZWYgQ09ORklHX1BPU1QKIC8qIHByZXNlcnZlIHNwYWNlIGZvciB0aGUgcG9zdF93b3JkIGF0IGVuZCBvZiBvbi1jaGlwIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fUE9TVF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKICNlbHNlCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKICNlbmRpZgogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDM4NCA8PCAxMCkJLyogUmVzZXJ2ZSAzODQga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTMxOCw3ICszMTgsNyBAQAogICogICBHUElPIG9uIFBTQzZfMyBpcyB1c2VkIGluIHBvc3RfaG90a2V5c19wcmVzc2VkKCkgdG8gZW5hYmxlIGV4dGVuZGVkIFBPU1QKICAqICAgdGVzdHMuCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDgxNTAwMDE0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4ODE1MDAwMTQKIAogLyoKICAqIFJUQyBjb25maWd1cmF0aW9uCkBAIC0zMjgsMzAgKzMyOCwzMCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAogLyogRW5hYmxlIGFuIGFsdGVybmF0ZSwgbW9yZSBleHRlbnNpdmUgbWVtb3J5IHRlc3QgKi8KLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgpAQCAtMzYzLDIyICszNjMsMjIgQEAKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQotI2RlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKICNlbHNlCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCTAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQk9PVENTX1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19CT09UQ1NfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNpZmRlZiBDRkdfUENJQ0xLX0VRVUFMU19JUEJDTEtfRElWMgotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA4REYzMCAvKiBmb3IgcGNpX2NsayAgPSA2NiBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQorI2lmZGVmIENPTkZJR19TWVNfUENJQ0xLX0VRVUFMU19JUEJDTEtfRElWMgorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwOERGMzAgLyogZm9yIHBjaV9jbGsgID0gNjYgTUh6ICovCiAjZWxzZQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0REYzMCAvKiBmb3IgcGNpX2NsayA9IDMzIE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwNERGMzAgLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KICNlbmRpZgotI2RlZmluZSBDRkdfQ1MwX1NUQVJUCQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQ1MwX1NJWkUJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCiAKICNkZWZpbmUgQ09ORklHX0xBU1RfU1RBR0VfSU5JVAogCkBAIC0zODYsMjMgKzM4NiwyMyBAQAogICogU1JBTSAtIERvIG5vdCBtYXAgYmVsb3cgMiBHQiBpbiBhZGRyZXNzIHNwYWNlLCBiZWNhdXNlIHRoaXMgYXJlYSBpcyB1c2VkCiAgKiBmb3IgU0RSQU0gYXV0b3NpemluZy4KICAqLwotI2RlZmluZSBDRkdfQ1MyX1NUQVJUCQkweEU1MDAwMDAwCi0jZGVmaW5lIENGR19DUzJfU0laRQkJMHg4MDAwMAkJLyogNTEyIGtCeXRlICovCi0jZGVmaW5lIENGR19DUzJfQ0ZHCQkweDAwMDREOTMwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NUQVJUCQkweEU1MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NJWkUJCTB4ODAwMDAJCS8qIDUxMiBrQnl0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMl9DRkcJCTB4MDAwNEQ5MzAKIAogLyoKICAqIEdyYWZpYyBjb250cm9sbGVyIC0gRG8gbm90IG1hcCBiZWxvdyAyIEdCIGluIGFkZHJlc3Mgc3BhY2UsIGJlY2F1c2UgdGhpcwogICogYXJlYSBpcyB1c2VkIGZvciBTRFJBTSBhdXRvc2l6aW5nLgogICovCiAjZGVmaW5lIFNNNTAxX0ZCX0JBU0UgICAgICAgICAgIDB4RTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9TVEFSVCAgICAgICAgICAgKFNNNTAxX0ZCX0JBU0UpCi0jZGVmaW5lIENGR19DUzFfU0laRSAgICAgICAgICAgIDB4NDAwMDAwMCAgICAgICAvKiA2NCBNQnl0ZSAqLwotI2RlZmluZSBDRkdfQ1MxX0NGRyAgICAgICAgICAgICAweDhGNDhGRjcwCi0jZGVmaW5lIFNNNTAxX01NSU9fQkFTRSAgICAgICAgIENGR19DUzFfU1RBUlQgKyAweDAzRTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUICAgICAgICAgICAoU001MDFfRkJfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRSAgICAgICAgICAgIDB4NDAwMDAwMCAgICAgICAvKiA2NCBNQnl0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DRkcgICAgICAgICAgICAgMHg4RjQ4RkY3MAorI2RlZmluZSBTTTUwMV9NTUlPX0JBU0UgICAgICAgICBDT05GSUdfU1lTX0NTMV9TVEFSVCArIDB4MDNFMDAwMDAKIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QgICAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUgICAgICAgIDB4MzMzMzMzMTEgICAgICAvKiAxIGRlYWQgY3ljbGUgZm9yIGZsYXNoIGFuZCBTTTUwMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRSAgICAgICAgMHgzMzMzMzMxMSAgICAgIC8qIDEgZGVhZCBjeWNsZSBmb3IgZmxhc2ggYW5kIFNNNTAxICovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2FscHIuaCBiL2luY2x1ZGUvY29uZmlncy9hbHByLmgKaW5kZXggOGM0ZWI1OS4uMzE1ODQxMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2FscHIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYWxwci5oCkBAIC00MCw2MyArNDAsNjMgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAkvKiBfbXVzdF8gYmUgMAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmZTAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICQkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4ZmZmYzAwMDAJLyogc3RhcnQgb2YgbW9uaXRvcgkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBwY2kgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUENJX01FTVNJWkUJCTB4NDAwMDAwMDAJLyogc2l6ZSBvZiBtYXBwZWQgcGNpIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUEVSSVBIRVJBTF9CQVNFCTB4ZTAwMDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJCSovCi0jZGVmaW5lIENGR19JU1JBTV9CQVNFCQkweGMwMDAwMDAwCS8qIGludGVybmFsIFNSQU0JCSovCi0jZGVmaW5lIENGR19QQ0lfQkFTRQkJMHhkMDAwMDAwMAkvKiBpbnRlcm5hbCBQQ0kgcmVncwkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMQlDRkdfUENJX01FTUJBU0UgICsgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTUJBU0UyCUNGR19QQ0lfTUVNQkFTRTEgKyAweDEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRTMJQ0ZHX1BDSV9NRU1CQVNFMiArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIF9tdXN0XyBiZSAwCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmZTAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweGZmZmMwMDAwCS8qIHN0YXJ0IG9mIG1vbml0b3IJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UJCTB4ODAwMDAwMDAJLyogbWFwcGVkIHBjaSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUENJX01FTVNJWkUJCTB4NDAwMDAwMDAJLyogc2l6ZSBvZiBtYXBwZWQgcGNpIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRQkweGUwMDAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lTUkFNX0JBU0UJCTB4YzAwMDAwMDAJLyogaW50ZXJuYWwgU1JBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFTRQkJMHhkMDAwMDAwMAkvKiBpbnRlcm5hbCBQQ0kgcmVncwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEJQ09ORklHX1NZU19QQ0lfTUVNQkFTRSAgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UyCUNPTkZJR19TWVNfUENJX01FTUJBU0UxICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMwlDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiArIDB4MTAwMDAwMDAKIAogCi0jZGVmaW5lIENGR19GUEdBX0JBU0UJICAgIChDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwODMwMDAwMCkKLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUiAoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFCSAgICAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MzAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MDAwMDAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIFJBTSAmIHN0YWNrIHBvaW50ZXIgKHBsYWNlZCBpbiBpbnRlcm5hbCBTUkFNKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNICAxCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSICAgQ0ZHX0lTUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICBDRkdfSVNSQU1fQkFTRSAgLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgIDB4MjAwMAkgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAxMjgJCSAgICAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhCSovCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00gIDEKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSICAgQ09ORklHX1NZU19JU1JBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAgIENPTkZJR19TWVNfSVNSQU1fQkFTRSAgLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAgICAweDIwMDAJICAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgIDEyOAkJICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19QT1NUX1dPUkRfQUREUgkoQ0ZHX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19QT1NUX1dPUkRfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JICAgICgyNTYgKiAxMDI0KSAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSAgICAoMTI4ICogMTAyNCkgICAgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYyovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JICAgICgyNTYgKiAxMDI0KSAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkgICAgKDEyOCAqIDEwMjQpICAgIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSworI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogI2RlZmluZQlDT05GSUdfVUFSVDFfQ09OU09MRQkJLyogZGVmaW5lIGZvciB1YXJ0MSBhcyBjb25zb2xlCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKICAgICB7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoCSovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSCAgICAgMQkvKiB1c2UgRkxBU0ggZm9yIGVudmlyb25tZW50IHZhcnMJKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHgyMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTA5LDcgKzEwOSw3IEBACiAjdW5kZWYgQ09ORklHX1NQRF9FRVBST00JCS8qIERvbid0IHVzZSBTUEQgRUVQUk9NIGZvciBzZXR1cAkqLwogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzAJMQkvKiBpbml0IG9uYm9hcmQgRERSIFNEUkFNIGJhbmsgMAkqLwogI3VuZGVmIENPTkZJR19TRFJBTV9FQ0MJCQkvKiBlbmFibGUgRUNDIHN1cHBvcnQJCQkqLwotI2RlZmluZSBDRkdfU0RSQU1fVEFCTEUJeyBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fVEFCTEUJeyBcCiAJCXsoMjU2IDw8IDIwKSwgMTMsIDB4MDAwQzQwMDF9LCAvKiAyNTZNQiBtb2RlIDMsIDEzeDEwKDQpKi8gXAogCQl7KDY0IDw8IDIwKSwgIDEyLCAweDAwMDgyMDAxfX0gLyogNjRNQiBtb2RlIDIsIDEyeDkoNCkJKi8KIApAQCAtMTE4LDIxICsxMTgsMjEgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIEVFUFJPTSAoUENGODU5NEMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTQJLyogRUVQUk9NIFBDRjg1OTRDCQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTQJLyogRUVQUk9NIFBDRjg1OTRDCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDMJLyogVGhlIFBoaWxpcHMgUENGODU5NEMgaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDMJLyogVGhlIFBoaWxpcHMgUENGODU5NEMgaGFzCSovCiAJCQkJCS8qIDggYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcgKi8KIAkJCQkJLyogbGFzdCAzIGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTQwICAgLyogYW5kIHRha2VzIHVwIHRvIDQwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk0MCAgIC8qIGFuZCB0YWtlcyB1cCB0byA0MCBtc2VjICovCiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QJImVjaG87IglcCiAJImVjaG8gVHlwZSBcInJ1biBrZXJuZWx4XCIgdG8gYm9vdCB0aGUgc3lzdGVtOyIJCQlcCkBAIC0xOTYsNyArMTk2LDcgQEAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKQEAgLTIxMSw3ICsyMTEsNyBAQAogI2RlZmluZSBDT05GSUdfUEhZX1JFU0VUCTEJLyogcmVzZXQgcGh5IHVwb24gc3RhcnR1cAkqLwogI2RlZmluZSBDT05GSUdfTTg4RTExMTFfUEhZCTEJLyogbmVlZGVkIGZvciBQSFkgc3BlY2lmaWMgc2V0dXAqLwogI2RlZmluZSBDT05GSUdfUEhZX0dJR0UJCTEJLyogSW5jbHVkZSBHYkUgc3BlZWQvZHVwbGV4IGRldGVjdGlvbiAqLwotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkzMgkvKiBOdW1iZXIgb2YgZXRoZXJuZXQgcnggYnVmZmVycyAmIGRlc2NyaXB0b3JzICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkzMgkvKiBOdW1iZXIgb2YgZXRoZXJuZXQgcnggYnVmZmVycyAmIGRlc2NyaXB0b3JzICovCiAKICNkZWZpbmUgQ09ORklHX05FVENPTlNPTEUJCS8qIGluY2x1ZGUgTmV0Q29uc29sZSBzdXBwb3J0CSovCiAKQEAgLTI1MiwyNSArMjUyLDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCQkxCS8qIEVuYWJsZSBtb3JlIGV4dGVuc2l2ZSBtZW10ZXN0Ki8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCQkxCS8qIEVuYWJsZSBtb3JlIGV4dGVuc2l2ZSBtZW10ZXN0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwogI2RlZmluZSBDT05GSUdfTE9PUFcgICAgICAgICAgICAxICAgICAgIC8qIGVuYWJsZSBsb29wdyBjb21tYW5kICAgICAgICAgKi8KQEAgLTI3OCw3ICsyNzgsNyBAQAogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRQkxCS8qIGluY2x1ZGUgdmVyc2lvbiBlbnYgdmFyaWFibGUgKi8KIAotI2RlZmluZSBDRkdfNHh4X1JFU0VUX1RZUEUJMHgyCS8qIHVzZSBjaGlwIHJlc2V0IG9uIHRoaXMgYm9hcmQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU180eHhfUkVTRVRfVFlQRQkweDIJLyogdXNlIGNoaXAgcmVzZXQgb24gdGhpcyBib2FyZAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTI4OCwxNSArMjg4LDE1IEBACiAjZGVmaW5lIENPTkZJR19QQ0kJCQkvKiBpbmNsdWRlIHBjaSBzdXBwb3J0CQkqLwogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJCS8qIGRvIHBjaSBwbHVnLWFuZC1wbGF5CQkqLwogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwCSovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0JBU0UgICAgMHg4MDAwMDAwMAkvKiBQQ0lhZGRyIG1hcHBlZCB0byBDRkdfUENJX01FTUJBU0UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UgICAgMHg4MDAwMDAwMAkvKiBQQ0lhZGRyIG1hcHBlZCB0byBDT05GSUdfU1lTX1BDSV9NRU1CQVNFICovCiAjZGVmaW5lIENPTkZJR19QQ0lfQk9PVERFTEFZCTEgICAgICAgLyogZW5hYmxlIHBjaSBib290ZGVsYXkgdmFyaWFibGUqLwogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAkJLyogbGV0IGJvYXJkIGluaXQgcGNpIHRhcmdldCAgICAqLwotI2RlZmluZSBDRkdfUENJX01BU1RFUl9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCQkvKiBsZXQgYm9hcmQgaW5pdCBwY2kgdGFyZ2V0ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHhjYWZlCS8qIFdoYXRldmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHhjYWZlCS8qIFdoYXRldmVyICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZQR0Egc3R1ZmYKQEAgLTMwNCw4ICszMDQsOCBAQAogI2RlZmluZSBDT05GSUdfRlBHQQogI2RlZmluZSBDT05GSUdfRlBHQV9BTFRFUkEKICNkZWZpbmUgQ09ORklHX0ZQR0FfQ1lDTE9OMgotI2RlZmluZSBDRkdfRlBHQV9DSEVDS19DVFJMQwotI2RlZmluZSBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DSEVDS19DVFJMQworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogI2RlZmluZSBDT05GSUdfRlBHQV9DT1VOVCAgICAgICAxCQkvKiBJY2ggaGFiZSAyIC4uLiBhYmVyIGluCiAJCQkJCVJlaWhlIGdlc2NoYWx0ZXQgLT4gc29sbHRlIGdlaGVuLAogCQkJCQlhdWZwYXNzZW4gbWl0IERhdGFzaXplIGlzdCBqZXR6dApAQCAtMzE0LDU0ICszMTQsNTQgQEAKIAkJCQkJTW9kZSBlcmtsYWVydCAuLi4qLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fQ0xLCQkxOAkvKiBGUEdBIGNsayBwaW4gKGNwdSBvdXRwdXQpCQkqLwotI2RlZmluZSBDRkdfR1BJT19EQVRBCQkxOQkvKiBGUEdBIGRhdGEgcGluIChjcHUgb3V0cHV0KQkJKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fU1RBVFVTCQkyMAkvKiBGUEdBIHN0YXR1cyBwaW4gKGNwdSBpbnB1dCkJCSovCi0jZGVmaW5lIENGR19HUElPX0NPTkZJRwkJMjEJLyogRlBHQSBDT05GSUcgcGluIChjcHUgb3V0cHV0KQkJKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fQ09OX0RPTgkyMgkvKiBGUEdBIENPTkZJR19ET05FIHBpbiAoY3B1IGlucHV0KQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fQ0xLCQkxOAkvKiBGUEdBIGNsayBwaW4gKGNwdSBvdXRwdXQpCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fREFUQQkJMTkJLyogRlBHQSBkYXRhIHBpbiAoY3B1IG91dHB1dCkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19TVEFUVVMJCTIwCS8qIEZQR0Egc3RhdHVzIHBpbiAoY3B1IGlucHV0KQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0NPTkZJRwkJMjEJLyogRlBHQSBDT05GSUcgcGluIChjcHUgb3V0cHV0KQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0NPTl9ET04JMjIJLyogRlBHQSBDT05GSUdfRE9ORSBwaW4gKGNwdSBpbnB1dCkJKi8KIAotI2RlZmluZSBDRkdfR1BJT19TRUxfRFBSCTE0CS8qIGNwdSBvdXRwdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fU0VMX0FWUgkxNQkvKiBjcHUgb3V0cHV0ICovCi0jZGVmaW5lIENGR19HUElPX1BST0dfRU4JMjMJLyogY3B1IG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fU0VMX0RQUgkxNAkvKiBjcHUgb3V0cHV0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19TRUxfQVZSCTE1CS8qIGNwdSBvdXRwdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BST0dfRU4JMjMJLyogY3B1IG91dHB1dCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgR1BJTyBzZXR1cAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19HUElPX1NIVVRET1dOCSgweDgwMDAwMDAwID4+IDYpCi0jZGVmaW5lIENGR19HUElPX1NTRF9FTVBUWQkoMHg4MDAwMDAwMCA+PiA5KQotI2RlZmluZSBDRkdfR1BJT19FUkVBRFkJCSgweDgwMDAwMDAwID4+IDI2KQotI2RlZmluZSBDRkdfR1BJT19SRVYwCQkoMHg4MDAwMDAwMCA+PiAxNCkKLSNkZWZpbmUgQ0ZHX0dQSU9fUkVWMQkJKDB4ODAwMDAwMDAgPj4gMTUpCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19TSFVURE9XTgkoMHg4MDAwMDAwMCA+PiA2KQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fU1NEX0VNUFRZCSgweDgwMDAwMDAwID4+IDkpCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19FUkVBRFkJCSgweDgwMDAwMDAwID4+IDI2KQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUkVWMAkJKDB4ODAwMDAwMDAgPj4gMTQpCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19SRVYxCQkoMHg4MDAwMDAwMCA+PiAxNSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTkFORC1GTEFTSCBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJNAotI2RlZmluZSBOQU5EX01BWF9DSElQUwkJQ0ZHX01BWF9OQU5EX0RFVklDRQotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkweEYwMDAwMDAwCS8qIE5BTkQgRkxBU0ggQmFzZSBBZGRyZXNzCSovCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7IENGR19OQU5EX0JBU0UgKyAwLCBDRkdfTkFORF9CQVNFICsgMiwJXAotCQkJCSAgQ0ZHX05BTkRfQkFTRSArIDQsIENGR19OQU5EX0JBU0UgKyA2IH0KLSNkZWZpbmUgQ0ZHX05BTkRfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIE5BTkQgZmxhc2gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJNAorI2RlZmluZSBOQU5EX01BWF9DSElQUwkJQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCTB4RjAwMDAwMDAJLyogTkFORCBGTEFTSCBCYXNlIEFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0VfTElTVAl7IENPTkZJR19TWVNfTkFORF9CQVNFICsgMCwgQ09ORklHX1NZU19OQU5EX0JBU0UgKyAyLAlcCisJCQkJICBDT05GSUdfU1lTX05BTkRfQkFTRSArIDQsIENPTkZJR19TWVNfTkFORF9CQVNFICsgNiB9CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gTkFORCBmbGFzaAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNICQlDRkdfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNICQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwLCBOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkoQ0ZHX0ZMQVNIIHwgMHgzQTAwMCkgLyogQlM9Mk1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJKENPTkZJR19TWVNfRkxBU0ggfCAweDNBMDAwKSAvKiBCUz0yTUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDAxODQwMzgwCS8qIFRXVD0zCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJKENGR19OQU5EX0JBU0UgfCAweDE4MDAwKSAvKiBCUz0xTUIsQlU9Ui9XLEJXPThiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4MDE4NDAzODAJLyogVFdUPTMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJKENPTkZJR19TWVNfTkFORF9CQVNFIHwgMHgxODAwMCkgLyogQlM9MU1CLEJVPVIvVyxCVz04Yml0ICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hbWNjLWNvbW1vbi5oIGIvaW5jbHVkZS9jb25maWdzL2FtY2MtY29tbW9uLmgKaW5kZXggMWYyN2Q3OC4uZmJhOTZlMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2FtY2MtY29tbW9uLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2FtY2MtY29tbW9uLmgKQEAgLTIzLDI0ICsyMywyNCBAQAogI2lmbmRlZiBfX0FNQ0NfQ09NTU9OX0gKICNkZWZpbmUgX19BTUNDX0NPTU1PTl9ICiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogX211c3RfIGJlIDAJCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIFN0YXJ0IG9mIFUtQm9vdAkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgweEZGRkZGRkZGIC0gQ0ZHX01PTklUT1JfQkFTRSArIDEpCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMSA8PCAyMCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYwkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogX211c3RfIGJlIDAJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBTdGFydCBvZiBVLUJvb3QJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDB4RkZGRkZGRkYgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDEpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEgPDwgMjApCS8qIFJlc2VydmVkIGZvciBtYWxsb2MJKi8KIAogLyoKICAqIFVBUlQKICAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogI2RlZmluZSBDT05GSUdfU0VSSUFMX01VTFRJCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAgICAgezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMH0KIAogLyoKICAqIEkyQwogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogRXRoZXJuZXQvRU1BQy9QSFkKQEAgLTQ5LDkgKzQ5LDkgQEAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQogI2RlZmluZSBDT05GSUdfTkVUQ09OU09MRQkJLyogaW5jbHVkZSBOZXRDb25zb2xlIHN1cHBvcnQJKi8KICNpZiBkZWZpbmVkKENPTkZJR180NDApCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTMyCS8qIG51bWJlciBvZiBldGggcnggYnVmZmVycwkqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMzIJLyogbnVtYmVyIG9mIGV0aCByeCBidWZmZXJzCSovCiAjZWxzZQotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkxNgkvKiBudW1iZXIgb2YgZXRoIHJ4IGJ1ZmZlcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTE2CS8qIG51bWJlciBvZiBldGggcnggYnVmZmVycwkqLwogI2VuZGlmCiAKIC8qCkBAIC03OSwyNCArNzksMjQgQEAKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUJLyogYXV0b2Jvb3QgYWZ0ZXIgNSBzZWNvbmRzCSovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMCAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAgLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwIC8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUJCS8qIGFkZCBhdXRvY29tcGxldGlvbiBzdXBwb3J0CSovCkBAIC0xMDQsMTUgKzEwNCwxNSBAQAogI2RlZmluZSBDT05GSUdfTVhfQ1lDTElDCQkvKiBlbmFibGUgbWRjL213YyBjb21tYW5kcyAgICAgICovCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAjZGVmaW5lIENPTkZJR19WRVJTSU9OX1ZBUklBQkxFIAkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtMTI4LDcgKzEyOCw3IEBACiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKQEAgLTI0NCw5ICsyNDQsOSBAQAogCiAjZGVmaW5lIENPTkZJR19BTUNDX0RFRl9FTlZfTk9SX1VQRAkJCQkJXAogCSJsb2FkPXRmdHAgMjAwMDAwICIgeHN0cihDT05GSUdfSE9TVE5BTUUpICIvdS1ib290LmJpblwwIglcCi0JInVwZGF0ZT1wcm90ZWN0IG9mZiAiIHhzdHIoQ0ZHX01PTklUT1JfQkFTRSkgIiBGRkZGRkZGRjsiCVwKLQkJImVyYSAiIHhzdHIoQ0ZHX01PTklUT1JfQkFTRSkgIiBGRkZGRkZGRjsiCQlcCi0JCSJjcC5iICR7ZmlsZWFkZHJ9ICIgeHN0cihDRkdfTU9OSVRPUl9CQVNFKSAiICR7ZmlsZXNpemV9OyIgXAorCSJ1cGRhdGU9cHJvdGVjdCBvZmYgIiB4c3RyKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSAiIEZGRkZGRkZGOyIJXAorCQkiZXJhICIgeHN0cihDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgIiBGRkZGRkZGRjsiCQlcCisJCSJjcC5iICR7ZmlsZWFkZHJ9ICIgeHN0cihDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgIiAke2ZpbGVzaXplfTsiIFwKIAkJInNldGVudiBmaWxlc2l6ZTtzYXZlZW52XDAiCQkJCVwKIAkidXBkPXJ1biBsb2FkIHVwZGF0ZVwwIgkJCQkJCVwKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2FwMzI1cnhhLmggYi9pbmNsdWRlL2NvbmZpZ3MvYXAzMjVyeGEuaAppbmRleCBhNjMxMmI1Li45MTM0YWQxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYXAzMjVyeGEuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYXAzMjVyeGEuaApAQCAtNjMsMTkgKzYzLDE5IEBACiAjZGVmaW5lIEFQMzI1UlhBX0ZMQVNIX0JBTktfU0laRQkoMTI4ICogMTAyNCAqIDEwMjQpCiAKIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgogLyogQnVmZmVyIHNpemUgZm9yIGlucHV0IGZyb20gdGhlIENvbnNvbGUgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYKIC8qIEJ1ZmZlciBzaXplIGZvciBDb25zb2xlIG91dHB1dCAqLwotI2RlZmluZSBDRkdfUEJTSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCTI1NgogLyogbWF4IGFyZ3MgYWNjZXB0ZWQgZm9yIG1vbml0b3IgY29tbWFuZHMgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYKIC8qIEJ1ZmZlciBzaXplIGZvciBCb290IEFyZ3VtZW50cyBwYXNzZWQgdG8ga2VybmVsICovCi0jZGVmaW5lIENGR19CQVJHU0laRQk1MTIKKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQk1MTIKIC8qIExpc3Qgb2YgbGVnYWwgYmF1ZHJhdGUgc2V0dGluZ3MgZm9yIHRoaXMgYm9hcmQgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgMzg0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMzg0MDAgfQogCiAvKiBTQ0lGICovCiAjZGVmaW5lIENPTkZJR19TQ0lGX0NPTlNPTEUgMQpAQCAtODMsOTQgKzgzLDk0IEBACiAjZGVmaW5lIENPTkZJR19DT05TX1NDSUY1CTEKIAogLyogU3VwcHJlc3MgZGlzcGxheSBvZiBjb25zb2xlIGluZm9ybWF0aW9uIGF0IGJvb3QgKi8KLSN1bmRlZiAgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAotI3VuZGVmICBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQotI3VuZGVmICBDRkdfQ09OU09MRV9FTlZfT1ZFUldSSVRFCisjdW5kZWYgIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCisjdW5kZWYgIENPTkZJR19TWVNfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQorI3VuZGVmICBDT05GSUdfU1lTX0NPTlNPTEVfRU5WX09WRVJXUklURQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCShBUDMyNVJYQV9TRFJBTV9CQVNFKQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCShDRkdfTUVNVEVTVF9TVEFSVCArICg2MCAqIDEwMjQgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCShBUDMyNVJYQV9TRFJBTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICsgKDYwICogMTAyNCAqIDEwMjQpKQogCiAvKiBFbmFibGUgYWx0ZXJuYXRlLCBtb3JlIGV4dGVuc2l2ZSwgbWVtb3J5IHRlc3QgKi8KLSN1bmRlZiAgQ0ZHX0FMVF9NRU1URVNUCisjdW5kZWYgIENPTkZJR19TWVNfQUxUX01FTVRFU1QKIC8qIFNjcmF0Y2ggYWRkcmVzcyB1c2VkIGJ5IHRoZSBhbHRlcm5hdGUgbWVtb3J5IHRlc3QgKi8KLSN1bmRlZiAgQ0ZHX01FTVRFU1RfU0NSQVRDSAorI3VuZGVmICBDT05GSUdfU1lTX01FTVRFU1RfU0NSQVRDSAogCiAvKiBFbmFibGUgdGVtcG9yYXJ5IGJhdWRyYXRlIGNoYW5nZSB3aGlsZSBzZXJpYWwgZG93bmxvYWQgKi8KLSN1bmRlZiAgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCisjdW5kZWYgIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkoQVAzMjVSWEFfU0RSQU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCShBUDMyNVJYQV9TRFJBTV9CQVNFKQogLyogbWF5YmUgbW9yZSwgYnV0IGlmIHNvIHUtYm9vdCBkb2Vzbid0IGtub3cgYWJvdXQgaXQuLi4gKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJKDEyOCAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJKDEyOCAqIDEwMjQgKiAxMDI0KQogLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgZm9yIHNjcmlwdHMgPyE/ICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJKENGR19TRFJBTV9CQVNFICsgMTYgKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDE2ICogMTAyNCAqIDEwMjQpCiAKIC8qIEFkZHJlc3Mgb2YgdS1ib290IGltYWdlIGluIEZsYXNoIChOT1QgcnVuIHRpbWUgYWRkcmVzcyBpbiBTRFJBTSkgPyE/ICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKEFQMzI1UlhBX0ZMQVNIX0JBU0VfMSkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKEFQMzI1UlhBX0ZMQVNIX0JBU0VfMSkKIC8qIE1vbml0b3Igc2l6ZSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JKDEyOCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JKDEyOCAqIDEwMjQpCiAvKiBTaXplIG9mIERSQU0gcmVzZXJ2ZWQgZm9yIG1hbGxvYygpIHVzZSAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkoMjU2ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSgyNTYgKiAxMDI0KQogLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCSgyNTYpCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCSgyNTYpCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4ICogMTAyNCAqIDEwMjQpCiAKIC8qIEZMQVNIICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSIDEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI3VuZGVmICBDRkdfRkxBU0hfUVVJRVRfVEVTVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI3VuZGVmICBDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QKIC8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIC8qIFBoeXNpY2FsIHN0YXJ0IGFkZHJlc3Mgb2YgRmxhc2ggbWVtb3J5ICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCShBUDMyNVJYQV9GTEFTSF9CQVNFXzEpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkoQVAzMjVSWEFfRkxBU0hfQkFTRV8xKQogLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIGVhY2ggRmxhc2ggY2hpcCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCiAKIC8qCiAgKiBJREUgc3VwcG9ydAogICovCiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJMQotI2RlZmluZSBDRkdfUElPX01PREUJCTEKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogSURFIGJ1cyAqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4QjQxODAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUJCTIJLyogMWJpdCBzaGlmdCAqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MjAwCS8qIGRhdGEgcmVnIG9mZnNldCAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgyMDAJLyogcmVnIG9mZnNldCAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgyMTAJLyogYWx0ZXJuYXRlIHJlZ2lzdGVyIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BJT19NT0RFCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBJREUgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweEI0MTgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJMgkvKiAxYml0IHNoaWZ0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MjAwCS8qIGRhdGEgcmVnIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MjAwCS8qIHJlZyBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDIxMAkvKiBhbHRlcm5hdGUgcmVnaXN0ZXIgb2Zmc2V0ICovCiAKIC8qIGlmIHlvdSB1c2UgYWxsIE5PUiBGbGFzaCAsIHlvdSBjaGFuZ2UgZGlwLXN3aXRjaC4gUGxlYXNlIHNlZSBNYW51YWwuICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVCB7IENGR19GTEFTSF9CQVNFICsgKDAgKiBBUDMyNVJYQV9GTEFTSF9CQU5LX1NJWkUpfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCB7IENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgwICogQVAzMjVSWEFfRkxBU0hfQkFOS19TSVpFKX0KIAogLyogVGltZW91dCBmb3IgRmxhc2ggZXJhc2Ugb3BlcmF0aW9ucyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgzICogMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgzICogMTAwMCkKIC8qIFRpbWVvdXQgZm9yIEZsYXNoIHdyaXRlIG9wZXJhdGlvbnMgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMyAqIDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMyAqIDEwMDApCiAvKiBUaW1lb3V0IGZvciBGbGFzaCBzZXQgc2VjdG9yIGxvY2sgYml0IG9wZXJhdGlvbnMgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfTE9DS19UT1VUCSgzICogMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJKDMgKiAxMDAwKQogLyogVGltZW91dCBmb3IgRmxhc2ggY2xlYXIgbG9jayBiaXQgb3BlcmF0aW9ucyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9VTkxPQ0tfVE9VVAkoMyAqIDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVU5MT0NLX1RPVVQJKDMgKiAxMDAwKQogCiAvKgogICogVXNlIGhhcmR3YXJlIGZsYXNoIHNlY3RvcnMgcHJvdGVjdGlvbiBpbnN0ZWFkCiAgKiBvZiBVLUJvb3Qgc29mdHdhcmUgcHJvdGVjdGlvbgogICovCi0jdW5kZWYgIENGR19GTEFTSF9QUk9URUNUSU9OCi0jdW5kZWYgIENGR19ESVJFQ1RfRkxBU0hfVEZUUAorI3VuZGVmICBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KKyN1bmRlZiAgQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAogCiAvKiBFTlYgc2V0dGluZyAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJKDEyOCAqIDEwMjQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKENPTkZJR19FTlZfU0VDVF9TSVpFKQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIENGR19NT05JVE9SX0xFTikKLS8qIE9mZnNldCBvZiBlbnYgRmxhc2ggc2VjdG9yIHJlbGF0aXZlIHRvIENGR19GTEFTSF9CQVNFICovCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ09ORklHX0VOVl9BRERSIC0gQ0ZHX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCisvKiBPZmZzZXQgb2YgZW52IEZsYXNoIHNlY3RvciByZWxhdGl2ZSB0byBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfRU5WX0FERFIgLSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0VDVF9TSVpFKQogCiAvKiBCb2FyZCBDbG9jayAqLwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTMzMzMzMzMzCiAjZGVmaW5lIFRNVV9DTEtfRElWSURFUgkJKDQpCS8qIDQgKGRlZmF1bHQpLCAxNiwgNjQsIDI1NiBvciAxMDI0ICovCi0jZGVmaW5lIENGR19IWgkJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gVE1VX0NMS19ESVZJREVSKQorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBUTVVfQ0xLX0RJVklERVIpCiAKICNlbmRpZgkvKiBfX0FQMzI1UlhBX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hcG9sbG9uLmggYi9pbmNsdWRlL2NvbmZpZ3MvYXBvbGxvbi5oCmluZGV4IGVkZmFlMjcuLmQ3MWVkNDQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hcG9sbG9uLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2Fwb2xsb24uaApAQCAtNDMsMTQgKzQzLDE0IEBACiAKIC8qIEJvb3QgbWV0aG9kICovCiAvKiB1bmNvbW1lbnQgaWYgeW91IHVzZSBOT1IgYm9vdCAqLwotLyogI2RlZmluZSBDRkdfTk9SX0JPT1QJCTEgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19OT1JfQk9PVAkJMSAqLwogCiAvKiB1bmNvbW1lbnQgaWYgeW91IHVzZSBOT1Igb24gQ1MzICovCi0vKiAjZGVmaW5lIENGR19VU0VfTk9SCQkxICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfVVNFX05PUgkJMSAqLwogCi0jaWZkZWYgQ0ZHX05PUl9CT09UCi0jdW5kZWYgQ0ZHX1VTRV9OT1IKLSNkZWZpbmUgQ0ZHX1VTRV9OT1IJCTEKKyNpZmRlZiBDT05GSUdfU1lTX05PUl9CT09UCisjdW5kZWYgQ09ORklHX1NZU19VU0VfTk9SCisjZGVmaW5lIENPTkZJR19TWVNfVVNFX05PUgkJMQogI2VuZGlmCiAKICNpbmNsdWRlIDxhc20vYXJjaC9vbWFwMjQyMC5oPgkvKiBnZXQgY2hpcCBhbmQgYm9hcmQgZGVmcyAqLwpAQCAtNzMsOCArNzMsOCBAQAogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFIFNaXzEyOEsJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JKENPTkZJR19FTlZfU0laRSArIFNaXzEyOEspCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkoQ09ORklHX0VOVl9TSVpFICsgU1pfMTI4SykKKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC05MiwxMSArOTIsMTEgQEAKICAqLwogI2RlZmluZQlWX05TMTY1NTBfQ0xLCSg0ODAwMDAwMCkJLyogNDhNSHogKEFQTEw5Ni8yKSAqLwogCi0jZGVmaW5lCUNGR19OUzE2NTUwCi0jZGVmaW5lCUNGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZQlDRkdfTlMxNjU1MF9SRUdfU0laRQkoLTQpCi0jZGVmaW5lCUNGR19OUzE2NTUwX0NMSwlWX05TMTY1NTBfQ0xLCS8qIDNNSHogKDEuNU1IeioyKSAqLwotI2RlZmluZQlDRkdfTlMxNjU1MF9DT00xCU9NQVAyNDIwX1VBUlQxCisjZGVmaW5lCUNPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZQlDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lCUNPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkoLTQpCisjZGVmaW5lCUNPTkZJR19TWVNfTlMxNjU1MF9DTEsJVl9OUzE2NTUwX0NMSwkvKiAzTUh6ICgxLjVNSHoqMikgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJT01BUDI0MjBfVUFSVDEKIAogLyoKICAqIHNlbGVjdCBzZXJpYWwgY29uc29sZSBjb25maWd1cmF0aW9uCkBAIC0xMDcsNyArMTA3LDcgQEAKICNkZWZpbmUJQ09ORklHX0VOVl9PVkVSV1JJVEUKICNkZWZpbmUJQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZQlDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZQlDRkdfQkFVRFJBVEVfVEFCTEUJezk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMH0KKyNkZWZpbmUJQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7OTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwfQogCiAvKiB0aGlzIG11c3QgYmUgaW5jbHVkZWQgQUZURVIgdGhlIGRlZmluaXRpb24gb2YgQ09ORklHX0NPTU1BTkRTIChpZiBhbnkpICovCiAjaW5jbHVkZQk8Y29uZmlnX2NtZF9kZWZhdWx0Lmg+CkBAIC0xMTgsNyArMTE4LDcgQEAKIAogI3VuZGVmCUNPTkZJR19DTURfQVVUT1NDUklQVAogCi0jaWZuZGVmCUNGR19VU0VfTk9SCisjaWZuZGVmCUNPTkZJR19TWVNfVVNFX05PUgogIyB1bmRlZglDT05GSUdfQ01EX0ZMQVNICiAjIHVuZGVmCUNPTkZJR19DTURfSU1MUwogI2VuZGlmCkBAIC0xNTgsMjAgKzE1OCwyMCBAQAogICovCiAjZGVmaW5lCVZfUFJPTVBUCSJBcG9sbG9uICMgIgogCi0jZGVmaW5lCUNGR19MT05HSEVMUAkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZQlDRkdfUFJPTVBUCVZfUFJPTVBUCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJVl9QUk9NUFQKKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfUEJTSVpFCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUJQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lCUNPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCi0jZGVmaW5lCUNGR19NRU1URVNUX1NUQVJUCShPTUFQMjQyMF9TRFJDX0NTMCkJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZQlDRkdfTUVNVEVTVF9FTkQJCShPTUFQMjQyMF9TRFJDX0NTMCtTWl8zMU0pCisjZGVmaW5lCUNPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkoT01BUDI0MjBfU0RSQ19DUzApCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NRU1URVNUX0VORAkJKE9NQVAyNDIwX1NEUkNfQ1MwK1NaXzMxTSkKIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJKE9NQVAyNDIwX1NEUkNfQ1MwKQkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkoT01BUDI0MjBfU0RSQ19DUzApCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKIC8qIFRoZSAyNDIwIGhhcyAxMiBHUCB0aW1lcnMsIHRoZXkgY2FuIGJlIGRyaXZlbiBieSB0aGUgU3lzQ2xrICgxMi8xMy8xOS4yKQogICogb3IgYnkgMzJLSHogY2xrLCBvciBmcm9tIGV4dGVybmFsIHNpZy4gVGhpcyByYXRlIGlzIGRpdmlkZWQgYnkgYSBsb2NhbApAQCAtMTc5LDkgKzE3OSw5IEBACiAgKi8KICNkZWZpbmUJVl9QVlQJNwkvKiB1c2Ugd2l0aCAxMk1Iei8xMjggKi8KIAotI2RlZmluZQlDRkdfVElNRVJCQVNFCU9NQVAyNDIwX0dQVDIKLSNkZWZpbmUJQ0ZHX1BWVAlWX1BWVAkvKiAyXihwdnQrMSkgKi8KLSNkZWZpbmUJQ0ZHX0haCQkoKENPTkZJR19TWVNfQ0xLX0ZSRVEpLygyIDw8IENGR19QVlQpKQorI2RlZmluZQlDT05GSUdfU1lTX1RJTUVSQkFTRQlPTUFQMjQyMF9HUFQyCisjZGVmaW5lCUNPTkZJR19TWVNfUFZUCVZfUFZUCS8qIDJeKHB2dCsxKSAqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkoKENPTkZJR19TWVNfQ0xLX0ZSRVEpLygyIDw8IENPTkZJR19TWVNfUFZUKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTIwNSwyNiArMjA1LDI2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNpZmRlZglDRkdfVVNFX05PUgorI2lmZGVmCUNPTkZJR19TWVNfVVNFX05PUgogLyogT25lTkFORCBib290LCBOT1IgaGFzIENTMywgQnV0IE5PUiBoYXMgQ1MwIHdoZW4gTk9SIGJvb3QgKi8KLSMgZGVmaW5lCUNGR19GTEFTSF9CQVNFCQkweDE4MDAwMDAwCi0jIGRlZmluZQlDRkdfTUFYX0ZMQVNIX0JBTktTCTEKLSMgZGVmaW5lCUNGR19NQVhfRkxBU0hfU0VDVAkxMDI0CisjIGRlZmluZQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MTgwMDAwMDAKKyMgZGVmaW5lCUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEKKyMgZGVmaW5lCUNPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTAyNAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgKiBDRkkgRkxBU0ggZHJpdmVyIHNldHVwCiAgKi8KLSMgZGVmaW5lCUNGR19GTEFTSF9DRkkJMQkvKiBGbGFzaCBtZW1vcnkgaXMgQ0ZJIGNvbXBsaWFudCAqLworIyBkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9DRkkJMQkvKiBGbGFzaCBtZW1vcnkgaXMgQ0ZJIGNvbXBsaWFudCAqLwogIyBkZWZpbmUJQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgZHJpdmVycy9jZmlfZmxhc2guYyAqLwotLyogI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxICovIC8qIFVzZSBidWZmZXJlZCB3cml0ZXMgKH4xMHggZmFzdGVyKSAqLwotIyBkZWZpbmUJQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBVc2UgaC93IHNlY3RvciBwcm90ZWN0aW9uKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgKi8gLyogVXNlIGJ1ZmZlcmVkIHdyaXRlcyAofjEweCBmYXN0ZXIpICovCisjIGRlZmluZQlDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBVc2UgaC93IHNlY3RvciBwcm90ZWN0aW9uKi8KIAotI2Vsc2UJLyogIUNGR19VU0VfTk9SICovCi0jIGRlZmluZQlDRkdfTk9fRkxBU0gJMQotI2VuZGlmCS8qIENGR19VU0VfTk9SICovCisjZWxzZQkvKiAhQ09ORklHX1NZU19VU0VfTk9SICovCisjIGRlZmluZQlDT05GSUdfU1lTX05PX0ZMQVNICTEKKyNlbmRpZgkvKiBDT05GSUdfU1lTX1VTRV9OT1IgKi8KIAogLyogT25lTkFORCBib290LCBPbmVOQU5EIGhhcyBDUzAsIE5PUiBib290IE9OZU5BTkQgaGFzIENTMiAqLwotI2RlZmluZQlDRkdfT05FTkFORF9CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19PTkVOQU5EX0JBU0UJMHgwMDAwMDAwMAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX09ORU5BTkQJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4MDAwMjAwMDAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2FybWFkaWxsby5oIGIvaW5jbHVkZS9jb25maWdzL2FybWFkaWxsby5oCmluZGV4IDY2OGMyYzEuLjVhNGNlYWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hcm1hZGlsbG8uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYXJtYWRpbGxvLmgKQEAgLTUwLDggKzUwLDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtOTUsMjQgKzk1LDI0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIkFSTUFESUxMTyAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiQVJNQURJTExPICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHhjMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHhjMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4YzA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweGMwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MDAwNDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJZm9yIGFybWFkaWxsbzoga2VybmVsIGltZyBpcyBoZXJlKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAwNDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJZm9yIGFybWFkaWxsbzoga2VybmVsIGltZyBpcyBoZXJlKi8KIAotI2RlZmluZQlDRkdfSFoJCQkyMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAyIGtIeiAqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMjAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMiBrSHogKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTM1LDE3ICsxMzUsMTcgQEAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweDAwMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAwNDAwMDAwIC8qIDQgTUIgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoUEhZU19GTEFTSF8xICsgMHgyMDAwMCkJLyogQWRkciBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hc3NhYmV0LmggYi9pbmNsdWRlL2NvbmZpZ3MvYXNzYWJldC5oCmluZGV4IDI4ODY0ZWEuLjAyNGZhMjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hc3NhYmV0LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2Fzc2FiZXQuaApAQCAtNDUsOCArNDUsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOICAgICAgICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAgMTI4CS8qIHNpemUgcnNydmQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4gICAgICAgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAgMTI4CS8qIHNpemUgcnNydmQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtODUsNyArODUsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTMKICNkZWZpbmUgQ09ORklHX0JPT1RBUkdTCQkiY29uc29sZT10dHlTQTAsMTE1MjAwbjggcm9vdD0vZGV2L25mcyBpcD1ib290cCIKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJib290cDt0ZnRwO2Jvb3RtIgotI2RlZmluZSBDRkdfQVVUT0xPQUQgICAgICAgICAgICAibiIJLyogTm8gYXV0b2xvYWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVVRPTE9BRCAgICAgICAgICAgICJuIgkvKiBObyBhdXRvbG9hZCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCiAjZGVmaW5lIENPTkZJR19LR0RCX0JBVURSQVRFCTExNTIwMAkvKiBzcGVlZCB0byBydW4ga2dkYiBzZXJpYWwgcG9ydCAqLwpAQCAtOTUsMjUgKzk1LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiSW50ZWwgQXNzYWJldCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIkludGVsIEFzc2FiZXQgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4YzA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAgICAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweGMwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweGMwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4YzA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNICAgKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgorI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFoKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweGMwMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweGMwMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMzY4NjQwMAkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCi0jZGVmaW5lIENGR19DUFVTUEVFRAkJMHgwYQkvKiBzZXQgY29yZSBjbG9jayB0byAyMDZNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTM2ODY0MDAJLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVVNQRUVECQkweDBhCS8qIHNldCBjb3JlIGNsb2NrIHRvIDIwNk1IeiAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xMzgsMjcgKzEzOCwyNyBAQAogI2RlZmluZSBQSFlTX0ZMQVNIX0JBTktfU0laRSAgICAweDAxMDAwMDAwCS8qIDE2IE1CIEJhbmtzICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFICAgIDB4MDAwNDAwMDAJLyogMjU2IEtCIHNlY3RvcnMgKHgyKSAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgICAgIFRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4gICAgICAgICAoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgICAgIFRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOICAgICAgICAgKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IEtCIGZvciBNb25pdG9yICovCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX1JBTVNUQVJUCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1TVEFSVAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUgICAgICAgICAgUEhZU19GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19GTEFTSF9DRkkgICAgICAgICAgIDEJLyogZmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUgICAgICAgICAgUEhZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJICAgICAgICAgICAxCS8qIGZsYXNoIGlzIENGSSBjb25mb3JtYW50ICAgICAgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIgICAgMQkvKiB1c2UgY29tbW9uIGNmaSBkcml2ZXIgICAgICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgICAgMQkvKiBtYXggIyBvZiBtZW1vcnkgYmFua3MgICAgICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9JTkNSRU1FTlQgICAgIDAJLyogdGhlcmUgaXMgb25seSBvbmUgYmFuayAgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICAgICAxMjgJLyogbWF4ICMgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI3VuZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUICAgIHsgQ0ZHX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAgICAgMQkvKiBtYXggIyBvZiBtZW1vcnkgYmFua3MgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UICAgICAwCS8qIHRoZXJlIGlzIG9ubHkgb25lIGJhbmsgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICAgIDEyOAkvKiBtYXggIyBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCAgICB7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hdDkxY2FwOWFkay5oIGIvaW5jbHVkZS9jb25maWdzL2F0OTFjYXA5YWRrLmgKaW5kZXggZmQwNjI0NS4uMzBhN2NiNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2F0OTFjYXA5YWRrLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2F0OTFjYXA5YWRrLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNkZWZpbmUgQVQ5MV9DUFVfTkFNRQkJIkFUOTFDQVA5IgogI2RlZmluZSBBVDkxX01BSU5fQ0xPQ0sJCTIwMDAwMDAwMAkvKiBmcm9tIDEyIE1IeiBjcnlzdGFsICovCiAjZGVmaW5lIEFUOTFfTUFTVEVSX0NMT0NLCTEwMDAwMDAwMAkvKiBwZXJpcGhlcmFsID0gbWFpbiAvIDIgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMDAwMAkJLyogMXVzIHJlc29sdXRpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAwMDAJCS8qIDF1cyByZXNvbHV0aW9uICovCiAKICNkZWZpbmUgQVQ5MV9TTE9XX0NMT0NLCQkzMjc2OAkvKiBzbG93IGNsb2NrICovCiAKQEAgLTYzLDEwICs2MywxMCBAQAogI3VuZGVmIExDRF9URVNUX1BBVFRFUk4KICNkZWZpbmUgQ09ORklHX0xDRF9JTkZPCQkJMQogI2RlZmluZSBDT05GSUdfTENEX0lORk9fQkVMT1dfTE9HTwkxCi0jZGVmaW5lIENGR19XSElURV9PTl9CTEFDSwkJMQorI2RlZmluZSBDT05GSUdfU1lTX1dISVRFX09OX0JMQUNLCQkxCiAjZGVmaW5lIENPTkZJR19BVE1FTF9MQ0QJCTEKICNkZWZpbmUgQ09ORklHX0FUTUVMX0xDRF9CR1I1NTUJCTEKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCQkxCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYJCTEKIAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTMKIApAQCAtMTAwLDI2ICsxMDAsMjYgQEAKIAogLyogRGF0YUZsYXNoICovCiAjZGVmaW5lIENPTkZJR19IQVNfREFUQUZMQVNICQkxCi0jZGVmaW5lIENGR19TUElfV1JJVEVfVE9VVAkJKDUqQ0ZHX0haKQotI2RlZmluZSBDRkdfTUFYX0RBVEFGTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwCTB4QzAwMDAwMDAJLyogQ1MwICovCisjZGVmaW5lIENPTkZJR19TWVNfU1BJX1dSSVRFX1RPVVQJCSg1KkNPTkZJR19TWVNfSFopCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMAkweEMwMDAwMDAwCS8qIENTMCAqLwogI2RlZmluZSBBVDkxX1NQSV9DTEsJCQkxNTAwMDAwMAogI2RlZmluZSBEQVRBRkxBU0hfVENTUwkJCSgweDFhIDw8IDE2KQogI2RlZmluZSBEQVRBRkxBU0hfVENIUwkJCSgweDEgPDwgMjQpCiAKIC8qIE5PUiBmbGFzaCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCTEKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCTEKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkJMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTI1NgotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJCTEKIAogLyogTkFORCBmbGFzaCAqLwogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJCTEKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkJMQotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfTkFORF9EQldfOAkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9EQldfOAkJCTEKIAogLyogRXRoZXJuZXQgKi8KICNkZWZpbmUgQ09ORklHX01BQ0IJCQkxCkBAIC0xMzIsMjYgKzEzMiwyNiBAQAogI2RlZmluZSBDT05GSUdfVVNCX09IQ0lfTkVXCQkxCiAjZGVmaW5lIExJVFRMRUVORElBTgkJCTEKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04JCTEKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX0NQVV9JTklUCQkxCi0jZGVmaW5lIENGR19VU0JfT0hDSV9SRUdTX0JBU0UJCTB4MDA3MDAwMDAJLyogQVQ5MV9CQVNFX1VIUCAqLwotI2RlZmluZSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FCQkiYXQ5MWNhcDkiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkyCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9SRUdTX0JBU0UJCTB4MDA3MDAwMDAJLyogQVQ5MV9CQVNFX1VIUCAqLworI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1NMT1RfTkFNRQkJImF0OTFjYXA5IgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTIKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkJMHg3MjAwMDAwMAkvKiBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkweDcyMDAwMDAwCS8qIGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQlQSFlTX1NEUkFNCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCTB4NzNlMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlQSFlTX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQkweDczZTAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1VTRV9EQVRBRkxBU0gJCTEKLSN1bmRlZiBDRkdfVVNFX05PUkZMQVNICisjZGVmaW5lIENPTkZJR19TWVNfVVNFX0RBVEFGTEFTSAkJMQorI3VuZGVmIENPTkZJR19TWVNfVVNFX05PUkZMQVNICiAKLSNpZmRlZiBDRkdfVVNFX0RBVEFGTEFTSAorI2lmZGVmIENPTkZJR19TWVNfVVNFX0RBVEFGTEFTSAogCiAvKiBib290c3RyYXAgKyB1LWJvb3QgKyBlbnYgKyBsaW51eCBpbiBkYXRhZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9EQVRBRkxBU0gJMQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgMHg4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyAweDg0MDApCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDQyMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIENPTkZJR19FTlZfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIENPTkZJR19FTlZfT0ZGU0VUKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDIwMAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJImNwLmIgMHhDMDA0MjAwMCAweDcyMDAwMDAwIDB4MjEwMDAwOyBib290bSIKICNkZWZpbmUgQ09ORklHX0JPT1RBUkdTCQkiY29uc29sZT10dHlTMCwxMTUyMDAgIgkJCVwKQEAgLTE2NCw3ICsxNjQsNyBAQAogCiAvKiBib290c3RyYXAgKyB1LWJvb3QgKyBlbnYgKyBsaW51eCBpbiBub3JmbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoUEhZU19GTEFTSF8xICsgMHg4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoUEhZU19GTEFTSF8xICsgMHg4MDAwKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg0MDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKFBIWVNfRkxBU0hfMSArIENPTkZJR19FTlZfT0ZGU0VUKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMApAQCAtMTc5LDIxICsxNzksMjEgQEAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7MTE1MjAwICwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgOTYwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezExNTIwMCAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDk2MDAgfQogCi0jZGVmaW5lIENGR19QUk9NUFQJCSJVLUJvb3Q+ICIKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2Ci0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQotI2RlZmluZSBDRkdfTE9OR0hFTFAJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJVLUJvb3Q+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCTEKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCiAKICNkZWZpbmUgUk9VTkQoQSwgQikJCSgoKEEpICsgKEIpKSAmIH4oKEIpIC0gMSkpCiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCVJPVU5EKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0LCAweDEwMDApCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiAxMjggYnl0ZXMgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCVJPVU5EKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0LCAweDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogMTI4IGJ5dGVzIGZvciBpbml0aWFsIGRhdGEgKi8KIAogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgzMioxMDI0KQkvKiByZWd1bGFyIHN0YWNrICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hdDkxcm05MjAwZGsuaCBiL2luY2x1ZGUvY29uZmlncy9hdDkxcm05MjAwZGsuaAppbmRleCAwMDBlYjBlLi42MzNhMDUzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYXQ5MXJtOTIwMGRrLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2F0OTFybTkyMDBkay5oCkBAIC00Myw3ICs0Myw3IEBACiAjZGVmaW5lIENPTkZJR19JTklUUkRfVEFHCTEKIAogI2lmbmRlZiBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUCi0jZGVmaW5lIENGR19VU0VfTUFJTl9PU0NJTExBVE9SCQkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNFX01BSU5fT1NDSUxMQVRPUgkJMQogLyogZmxhc2ggKi8KICNkZWZpbmUgTUNfUFVJQV9WQUwJMHgwMDAwMDAwMAogI2RlZmluZSBNQ19QVVBfVkFMCTB4MDAwMDAwMDAKQEAgLTc2LDggKzc2LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUgMTE1MjAwCiAKQEAgLTExOCw3ICsxMTgsNyBAQAogCiAjZGVmaW5lIENPTkZJR19OQU5EX0xFR0FDWQogCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcwkJKi8KICNkZWZpbmUgU0VDVE9SU0laRSA1MTIKIAogI2RlZmluZSBBRERSX0NPTFVNTiAxCkBAIC0xNTIsOCArMTUyLDggQEAKICNkZWZpbmUgUEhZU19TRFJBTSAweDIwMDAwMDAwCiAjZGVmaW5lIFBIWVNfU0RSQU1fU0laRSAweDIwMDAwMDAgIC8qIDMyIG1lZ3MgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkJUEhZU19TRFJBTQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCQlDRkdfTUVNVEVTVF9TVEFSVCArIFBIWVNfU0RSQU1fU0laRSAtIDI2MjE0NAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCVBIWVNfU0RSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJCUNPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArIFBIWVNfU0RSQU1fU0laRSAtIDI2MjE0NAogCiAjZGVmaW5lIENPTkZJR19EUklWRVJfRVRIRVIKICNkZWZpbmUgQ09ORklHX05FVF9SRVRSWV9DT1VOVAkJMjAKQEAgLTE2NSwyNSArMTY1LDI1IEBACiAjZGVmaW5lIERBVEFGTEFTSF9UQ0hTCSgweDEgPDwgMjQpCiAKICNkZWZpbmUgQ09ORklHX0hBU19EQVRBRkxBU0gJCTEKLSNkZWZpbmUgQ0ZHX1NQSV9XUklURV9UT1VUCQkoNSpDRkdfSFopCi0jZGVmaW5lIENGR19NQVhfREFUQUZMQVNIX0JBTktTCQkyCi0jZGVmaW5lIENGR19NQVhfREFUQUZMQVNIX1BBR0VTCQkxNjM4NAotI2RlZmluZSBDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwCTB4QzAwMDAwMDAJLyogTG9naWNhbCBhZHJlc3MgZm9yIENTMCAqLwotI2RlZmluZSBDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MzCTB4RDAwMDAwMDAJLyogTG9naWNhbCBhZHJlc3MgZm9yIENTMyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NQSV9XUklURV9UT1VUCQkoNSpDT05GSUdfU1lTX0haKQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1MJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX1BBR0VTCQkxNjM4NAorI2RlZmluZSBDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMAkweEMwMDAwMDAwCS8qIExvZ2ljYWwgYWRyZXNzIGZvciBDUzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzMJMHhEMDAwMDAwMAkvKiBMb2dpY2FsIGFkcmVzcyBmb3IgQ1MzICovCiAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkJMHgxMDAwMDAwMAogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCQkweDIwMDAwMCAgLyogMiBtZWdzIG1haW4gZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTI1NgotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCQkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjdW5kZWYJQ09ORklHX0VOVl9JU19JTl9EQVRBRkxBU0gKIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fREFUQUZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkJMHgyMDAwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIENPTkZJR19FTlZfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyBDT05GSUdfRU5WX09GRlNFVCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJMHgyMDAwICAvKiAweDgwMDAgKi8KICNlbHNlCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJCTEKQEAgLTE5NywyNyArMTk3LDI3IEBACiAjZW5kaWYJLyogQ09ORklHX0VOVl9JU19JTl9EQVRBRkxBU0ggKi8KIAogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjEwMDAwMDAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDIxMDAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCiAjaWZkZWYgQ09ORklHX1NLSVBfTE9XTEVWRUxfSU5JVAotI2RlZmluZSBDRkdfQk9PVF9TSVpFCQkweDYwMDAgLyogMjQgS0J5dGVzICovCi0jZGVmaW5lIENGR19VX0JPT1RfQkFTRQkJKFBIWVNfRkxBU0hfMSArIDB4MTAwMDApCi0jZGVmaW5lIENGR19VX0JPT1RfU0laRQkJMHgxMDAwMCAvKiA2NCBLQnl0ZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX1NJWkUJCTB4NjAwMCAvKiAyNCBLQnl0ZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VX0JPT1RfQkFTRQkJKFBIWVNfRkxBU0hfMSArIDB4MTAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfVV9CT09UX1NJWkUJCTB4MTAwMDAgLyogNjQgS0J5dGVzICovCiAjZWxzZQotI2RlZmluZSBDRkdfQk9PVF9TSVpFCQkweDAwIC8qIDAgS0J5dGVzICovCi0jZGVmaW5lIENGR19VX0JPT1RfQkFTRQkJUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19VX0JPT1RfU0laRQkJMHg2MDAwMCAvKiAzODQgS0J5dGVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9TSVpFCQkweDAwIC8qIDAgS0J5dGVzICovCisjZGVmaW5lIENPTkZJR19TWVNfVV9CT09UX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX1VfQk9PVF9TSVpFCQkweDYwMDAwIC8qIDM4NCBLQnl0ZXMgKi8KICNlbmRpZgkvKiBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCA5NjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgOTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIlUtQm9vdD4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiVS1Cb290PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwogCi0jZGVmaW5lIENGR19IWiAxMDAwCi0jZGVmaW5lIENGR19IWl9DTE9DSyBBVDkxQ19NQVNURVJfQ0xPQ0svMgkvKiBBVDkxQ19UQzBfQ01SIGlzIGltcGxpY2l0bHkgc2V0IHRvICovCisjZGVmaW5lIENPTkZJR19TWVNfSFogMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haX0NMT0NLIEFUOTFDX01BU1RFUl9DTE9DSy8yCS8qIEFUOTFDX1RDMF9DTVIgaXMgaW1wbGljaXRseSBzZXQgdG8gKi8KIAkJCQkJCS8qIEFUOTFDX1RDX1RJTUVSX0RJVjFfQ0xPQ0sgKi8KIAogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgzMioxMDI0KQkvKiByZWd1bGFyIHN0YWNrICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYXQ5MXNhbTkyNjBlay5oIGIvaW5jbHVkZS9jb25maWdzL2F0OTFzYW05MjYwZWsuaAppbmRleCA0MWQxZGEzLi5iZTlhOGViIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYXQ5MXNhbTkyNjBlay5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hdDkxc2FtOTI2MGVrLmgKQEAgLTMwLDcgKzMwLDcgQEAKIC8qIEFSTSBhc3luY2hyb25vdXMgY2xvY2sgKi8KICNkZWZpbmUgQVQ5MV9NQUlOX0NMT0NLCQkxOTg2NTYwMDAJLyogZnJvbSAxOC40MzIgTUh6IGNyeXN0YWwgKi8KICNkZWZpbmUgQVQ5MV9NQVNURVJfQ0xPQ0sJOTkzMjgwMDAJLyogcGVyaXBoZXJhbCA9IG1haW4gLyAyICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAwMDAJCS8qIDF1cyByZXNvbHV0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwMDAwCQkvKiAxdXMgcmVzb2x1dGlvbiAqLwogCiAjZGVmaW5lIEFUOTFfU0xPV19DTE9DSwkJMzI3NjgJLyogc2xvdyBjbG9jayAqLwogCkBAIC04OCwyMiArODgsMjIgQEAKIAogLyogRGF0YUZsYXNoICovCiAjZGVmaW5lIENPTkZJR19IQVNfREFUQUZMQVNICQkxCi0jZGVmaW5lIENGR19TUElfV1JJVEVfVE9VVAkJKDUqQ0ZHX0haKQotI2RlZmluZSBDRkdfTUFYX0RBVEFGTEFTSF9CQU5LUwkJMgotI2RlZmluZSBDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwCTB4QzAwMDAwMDAJLyogQ1MwICovCi0jZGVmaW5lIENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzEJMHhEMDAwMDAwMAkvKiBDUzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUElfV1JJVEVfVE9VVAkJKDUqQ09ORklHX1NZU19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTCQkyCisjZGVmaW5lIENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwCTB4QzAwMDAwMDAJLyogQ1MwICovCisjZGVmaW5lIENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MxCTB4RDAwMDAwMDAJLyogQ1MxICovCiAjZGVmaW5lIEFUOTFfU1BJX0NMSwkJCTE1MDAwMDAwCiAjZGVmaW5lIERBVEFGTEFTSF9UQ1NTCQkJKDB4MWEgPDwgMTYpCiAjZGVmaW5lIERBVEFGTEFTSF9UQ0hTCQkJKDB4MSA8PCAyNCkKIAogLyogTkFORCBmbGFzaCAqLwogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJCTEKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkJMQotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfTkFORF9EQldfOAkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9EQldfOAkJCTEKIAogLyogTk9SIGZsYXNoIC0gbm8gcmVhbCBmbGFzaCBvbiB0aGlzIGJvYXJkICovCi0jZGVmaW5lIENGR19OT19GTEFTSAkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJCTEKIAogLyogRXRoZXJuZXQgKi8KICNkZWZpbmUgQ09ORklHX01BQ0IJCQkxCkBAIC0xMTYsMjggKzExNiwyOCBAQAogI2RlZmluZSBDT05GSUdfVVNCX09IQ0lfTkVXCQkxCiAjZGVmaW5lIExJVFRMRUVORElBTgkJCTEKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04JCTEKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX0NQVV9JTklUCQkxCi0jZGVmaW5lIENGR19VU0JfT0hDSV9SRUdTX0JBU0UJCTB4MDA1MDAwMDAJLyogQVQ5MVNBTTkyNjBfVUhQX0JBU0UgKi8KLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkJImF0OTFzYW05MjYwIgotI2RlZmluZSBDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCQkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfUkVHU19CQVNFCQkweDAwNTAwMDAwCS8qIEFUOTFTQU05MjYwX1VIUF9CQVNFICovCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCQkiYXQ5MXNhbTkyNjAiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMgogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UJCTEKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkJMHgyMjAwMDAwMAkvKiBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkweDIyMDAwMDAwCS8qIGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQlQSFlTX1NEUkFNCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCTB4MjNlMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlQSFlTX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQkweDIzZTAwMDAwCiAKLSN1bmRlZiBDRkdfVVNFX0RBVEFGTEFTSF9DUzAKLSNkZWZpbmUgQ0ZHX1VTRV9EQVRBRkxBU0hfQ1MxCQkxCi0jdW5kZWYgQ0ZHX1VTRV9OQU5ERkxBU0gKKyN1bmRlZiBDT05GSUdfU1lTX1VTRV9EQVRBRkxBU0hfQ1MwCisjZGVmaW5lIENPTkZJR19TWVNfVVNFX0RBVEFGTEFTSF9DUzEJCTEKKyN1bmRlZiBDT05GSUdfU1lTX1VTRV9OQU5ERkxBU0gKIAotI2lmZGVmIENGR19VU0VfREFUQUZMQVNIX0NTMAorI2lmZGVmIENPTkZJR19TWVNfVVNFX0RBVEFGTEFTSF9DUzAKIAogLyogYm9vdHN0cmFwICsgdS1ib290ICsgZW52ICsgbGludXggaW4gZGF0YWZsYXNoIG9uIENTMCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0RBVEFGTEFTSAkxCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyAweDg0MDApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIDB4ODQwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4NDIwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgQ09ORklHX0VOVl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MjAwCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiY3AuYiAweEMwMDQyMDAwIDB4MjIwMDAwMDAgMHgyMTAwMDA7IGJvb3RtIgogI2RlZmluZSBDT05GSUdfQk9PVEFSR1MJCSJjb25zb2xlPXR0eVMwLDExNTIwMCAiCQkJXApAQCAtMTQ1LDEzICsxNDUsMTMgQEAKIAkJCQkibXRkcGFydHM9YXQ5MV9uYW5kOi0ocm9vdCkgIgkJXAogCQkJCSJydyByb290ZnN0eXBlPWpmZnMyIgogCi0jZWxpZiBDRkdfVVNFX0RBVEFGTEFTSF9DUzEKKyNlbGlmIENPTkZJR19TWVNfVVNFX0RBVEFGTEFTSF9DUzEKIAogLyogYm9vdHN0cmFwICsgdS1ib290ICsgZW52ICsgbGludXggaW4gZGF0YWZsYXNoIG9uIENTMSAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0RBVEFGTEFTSAkxCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzEgKyAweDg0MDApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMSArIDB4ODQwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4NDIwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MxICsgQ09ORklHX0VOVl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MxICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MjAwCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiY3AuYiAweEQwMDQyMDAwIDB4MjIwMDAwMDAgMHgyMTAwMDA7IGJvb3RtIgogI2RlZmluZSBDT05GSUdfQk9PVEFSR1MJCSJjb25zb2xlPXR0eVMwLDExNTIwMCAiCQkJXApAQCAtMTU5LDcgKzE1OSw3IEBACiAJCQkJIm10ZHBhcnRzPWF0OTFfbmFuZDotKHJvb3QpICIJCVwKIAkJCQkicncgcm9vdGZzdHlwZT1qZmZzMiIKIAotI2Vsc2UgLyogQ0ZHX1VTRV9OQU5ERkxBU0ggKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfVVNFX05BTkRGTEFTSCAqLwogCiAvKiBib290c3RyYXAgKyB1LWJvb3QgKyBlbnYgKyBsaW51eCBpbiBuYW5kZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OQU5ECTEKQEAgLTE3NywyMSArMTc3LDIxIEBACiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJezExNTIwMCAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDk2MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsxMTUyMDAgLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCA5NjAwIH0KIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiVS1Cb290PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiVS1Cb290PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkxCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQogCiAjZGVmaW5lIFJPVU5EKEEsIEIpCQkoKChBKSArIChCKSkgJiB+KChCKSAtIDEpKQogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQlST1VORCgzICogQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQsIDB4MTAwMCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIDEyOCBieXRlcyBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJUk9VTkQoMyAqIENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0LCAweDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogMTI4IGJ5dGVzIGZvciBpbml0aWFsIGRhdGEgKi8KIAogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgzMioxMDI0KQkvKiByZWd1bGFyIHN0YWNrICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hdDkxc2FtOTI2MWVrLmggYi9pbmNsdWRlL2NvbmZpZ3MvYXQ5MXNhbTkyNjFlay5oCmluZGV4IDgwYzNiMDMuLmFkZDMxYzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hdDkxc2FtOTI2MWVrLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2F0OTFzYW05MjYxZWsuaApAQCAtMzEsNyArMzEsNyBAQAogI2RlZmluZSBBVDkxX0NQVV9OQU1FCQkiQVQ5MVNBTTkyNjEiCiAjZGVmaW5lIEFUOTFfTUFJTl9DTE9DSwkJMTk4NjU2MDAwCS8qIGZyb20gMTguNDMyIE1IeiBjcnlzdGFsICovCiAjZGVmaW5lIEFUOTFfTUFTVEVSX0NMT0NLCTk5MzI4MDAwCS8qIHBlcmlwaGVyYWwgPSBtYWluIC8gMiAqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwMDAwCQkvKiAxdXMgcmVzb2x1dGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMDAwMAkJLyogMXVzIHJlc29sdXRpb24gKi8KIAogI2RlZmluZSBBVDkxX1NMT1dfQ0xPQ0sJCTMyNzY4CS8qIHNsb3cgY2xvY2sgKi8KIApAQCAtNjMsMTAgKzYzLDEwIEBACiAjdW5kZWYgTENEX1RFU1RfUEFUVEVSTgogI2RlZmluZSBDT05GSUdfTENEX0lORk8JCQkxCiAjZGVmaW5lIENPTkZJR19MQ0RfSU5GT19CRUxPV19MT0dPCTEKLSNkZWZpbmUgQ0ZHX1dISVRFX09OX0JMQUNLCQkxCisjZGVmaW5lIENPTkZJR19TWVNfV0hJVEVfT05fQkxBQ0sJCTEKICNkZWZpbmUgQ09ORklHX0FUTUVMX0xDRAkJMQogI2RlZmluZSBDT05GSUdfQVRNRUxfTENEX0JHUjU1NQkJMQotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgkJMQogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwogCkBAIC0xMDEsMjIgKzEwMSwyMiBAQAogCiAvKiBEYXRhRmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0hBU19EQVRBRkxBU0gJCTEKLSNkZWZpbmUgQ0ZHX1NQSV9XUklURV9UT1VUCQkoNSpDRkdfSFopCi0jZGVmaW5lIENGR19NQVhfREFUQUZMQVNIX0JBTktTCQkyCi0jZGVmaW5lIENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAJMHhDMDAwMDAwMAkvKiBDUzAgKi8KLSNkZWZpbmUgQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMwkweEQwMDAwMDAwCS8qIENTMyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NQSV9XUklURV9UT1VUCQkoNSpDT05GSUdfU1lTX0haKQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1MJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAJMHhDMDAwMDAwMAkvKiBDUzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzMJMHhEMDAwMDAwMAkvKiBDUzMgKi8KICNkZWZpbmUgQVQ5MV9TUElfQ0xLCQkJMTUwMDAwMDAKICNkZWZpbmUgREFUQUZMQVNIX1RDU1MJCQkoMHgxYSA8PCAxNikKICNkZWZpbmUgREFUQUZMQVNIX1RDSFMJCQkoMHgxIDw8IDI0KQogCiAvKiBOQU5EIGZsYXNoICovCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkJMQotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCQkxCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19OQU5EX0RCV184CQkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkJMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0RCV184CQkJMQogCiAvKiBOT1IgZmxhc2ggLSBubyByZWFsIGZsYXNoIG9uIHRoaXMgYm9hcmQgKi8KLSNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkJMQorI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkJMQogCiAvKiBFdGhlcm5ldCAqLwogI2RlZmluZSBDT05GSUdfRFJJVkVSX0RNOTAwMAkJMQpAQCAtMTMxLDI3ICsxMzEsMjcgQEAKICNkZWZpbmUgQ09ORklHX1VTQl9PSENJX05FVwkJMQogI2RlZmluZSBMSVRUTEVFTkRJQU4JCQkxCiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCQkxCi0jZGVmaW5lIENGR19VU0JfT0hDSV9DUFVfSU5JVAkJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfUkVHU19CQVNFCQkweDAwNTAwMDAwCS8qIEFUOTFTQU05MjYxX1VIUF9CQVNFICovCi0jZGVmaW5lIENGR19VU0JfT0hDSV9TTE9UX05BTUUJCSJhdDkxc2FtOTI2MSIKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTIKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1JFR1NfQkFTRQkJMHgwMDUwMDAwMAkvKiBBVDkxU0FNOTI2MV9VSFBfQkFTRSAqLworI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1NMT1RfTkFNRQkJImF0OTFzYW05MjYxIgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTIKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCQkxCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJCTB4MjIwMDAwMDAJLyogbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkJMHgyMjAwMDAwMAkvKiBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkJUEhZU19TRFJBTQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCQkweDIzZTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkJUEhZU19TRFJBTQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkJMHgyM2UwMDAwMAogCi0jZGVmaW5lIENGR19VU0VfREFUQUZMQVNIX0NTMAkJMQotI3VuZGVmIENGR19VU0VfTkFOREZMQVNICisjZGVmaW5lIENPTkZJR19TWVNfVVNFX0RBVEFGTEFTSF9DUzAJCTEKKyN1bmRlZiBDT05GSUdfU1lTX1VTRV9OQU5ERkxBU0gKIAotI2lmZGVmIENGR19VU0VfREFUQUZMQVNIX0NTMAorI2lmZGVmIENPTkZJR19TWVNfVVNFX0RBVEFGTEFTSF9DUzAKIAogLyogYm9vdHN0cmFwICsgdS1ib290ICsgZW52ICsgbGludXggaW4gZGF0YWZsYXNoIG9uIENTMCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0RBVEFGTEFTSAkxCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyAweDg0MDApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIDB4ODQwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4NDIwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgQ09ORklHX0VOVl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MjAwCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiY3AuYiAweEMwMDQyMDAwIDB4MjIwMDAwMDAgMHgyMTAwMDA7IGJvb3RtIgogI2RlZmluZSBDT05GSUdfQk9PVEFSR1MJCSJjb25zb2xlPXR0eVMwLDExNTIwMCAiCQkJXApAQCAtMTU5LDcgKzE1OSw3IEBACiAJCQkJIm10ZHBhcnRzPWF0OTFfbmFuZDotKHJvb3QpICIJCVwKIAkJCQkicncgcm9vdGZzdHlwZT1qZmZzMiIKIAotI2Vsc2UgLyogQ0ZHX1VTRV9OQU5ERkxBU0ggKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfVVNFX05BTkRGTEFTSCAqLwogCiAvKiBib290c3RyYXAgKyB1LWJvb3QgKyBlbnYgKyBsaW51eCBpbiBuYW5kZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OQU5ECTEKQEAgLTE3NywyMSArMTc3LDIxIEBACiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJezExNTIwMCAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDk2MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsxMTUyMDAgLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCA5NjAwIH0KIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiVS1Cb290PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiVS1Cb290PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkxCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQogCiAjZGVmaW5lIFJPVU5EKEEsIEIpCQkoKChBKSArIChCKSkgJiB+KChCKSAtIDEpKQogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQlST1VORCgzICogQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQsIDB4MTAwMCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIDEyOCBieXRlcyBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJUk9VTkQoMyAqIENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0LCAweDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogMTI4IGJ5dGVzIGZvciBpbml0aWFsIGRhdGEgKi8KIAogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgzMioxMDI0KQkvKiByZWd1bGFyIHN0YWNrICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hdDkxc2FtOTI2M2VrLmggYi9pbmNsdWRlL2NvbmZpZ3MvYXQ5MXNhbTkyNjNlay5oCmluZGV4IGI0MzY4ZWYuLjU1NWNiN2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hdDkxc2FtOTI2M2VrLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2F0OTFzYW05MjYzZWsuaApAQCAtMzEsNyArMzEsNyBAQAogI2RlZmluZSBBVDkxX0NQVV9OQU1FCQkiQVQ5MVNBTTkyNjMiCiAjZGVmaW5lIEFUOTFfTUFJTl9DTE9DSwkJMTk5OTE5MDAwCS8qIGZyb20gMTYuMzY3IE1IeiBjcnlzdGFsICovCiAjZGVmaW5lIEFUOTFfTUFTVEVSX0NMT0NLCTk5OTU5NTAwCS8qIHBlcmlwaGVyYWwgPSBtYWluIC8gMiAqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwMDAwCQkvKiAxdXMgcmVzb2x1dGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMDAwMAkJLyogMXVzIHJlc29sdXRpb24gKi8KIAogI2RlZmluZSBBVDkxX1NMT1dfQ0xPQ0sJCTMyNzY4CS8qIHNsb3cgY2xvY2sgKi8KIApAQCAtNjMsMTAgKzYzLDEwIEBACiAjdW5kZWYgTENEX1RFU1RfUEFUVEVSTgogI2RlZmluZSBDT05GSUdfTENEX0lORk8JCQkxCiAjZGVmaW5lIENPTkZJR19MQ0RfSU5GT19CRUxPV19MT0dPCTEKLSNkZWZpbmUgQ0ZHX1dISVRFX09OX0JMQUNLCQkxCisjZGVmaW5lIENPTkZJR19TWVNfV0hJVEVfT05fQkxBQ0sJCTEKICNkZWZpbmUgQ09ORklHX0FUTUVMX0xDRAkJMQogI2RlZmluZSBDT05GSUdfQVRNRUxfTENEX0JHUjU1NQkJMQotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgkJMQogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwogCkBAIC0xMDEsMzAgKzEwMSwzMCBAQAogCiAvKiBEYXRhRmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0hBU19EQVRBRkxBU0gJCTEKLSNkZWZpbmUgQ0ZHX1NQSV9XUklURV9UT1VUCQkoNSpDRkdfSFopCi0jZGVmaW5lIENGR19NQVhfREFUQUZMQVNIX0JBTktTCQkxCi0jZGVmaW5lIENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAJMHhDMDAwMDAwMAkvKiBDUzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUElfV1JJVEVfVE9VVAkJKDUqQ09ORklHX1NZU19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwCTB4QzAwMDAwMDAJLyogQ1MwICovCiAjZGVmaW5lIEFUOTFfU1BJX0NMSwkJCTE1MDAwMDAwCiAjZGVmaW5lIERBVEFGTEFTSF9UQ1NTCQkJKDB4MWEgPDwgMTYpCiAjZGVmaW5lIERBVEFGTEFTSF9UQ0hTCQkJKDB4MSA8PCAyNCkKIAogLyogTk9SIGZsYXNoLCBpZiBwb3B1bGF0ZWQgKi8KICNpZiAxCi0jZGVmaW5lIENGR19OT19GTEFTSAkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJCTEKICNlbHNlCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJMQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJMQogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJMjU2Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQogI2VuZGlmCiAKIC8qIE5BTkQgZmxhc2ggKi8KICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCQkxCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJCTEKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX05BTkRfREJXXzgJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfREJXXzgJCQkxCiAKIC8qIEV0aGVybmV0ICovCiAjZGVmaW5lIENPTkZJR19NQUNCCQkJMQpAQCAtMTM3LDI3ICsxMzcsMjcgQEAKICNkZWZpbmUgQ09ORklHX1VTQl9PSENJX05FVwkJMQogI2RlZmluZSBMSVRUTEVFTkRJQU4JCQkxCiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCQkxCi0jZGVmaW5lIENGR19VU0JfT0hDSV9DUFVfSU5JVAkJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfUkVHU19CQVNFCQkweDAwYTAwMDAwCS8qIEFUOTFTQU05MjYzX1VIUF9CQVNFICovCi0jZGVmaW5lIENGR19VU0JfT0hDSV9TTE9UX05BTUUJCSJhdDkxc2FtOTI2MyIKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTIKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1JFR1NfQkFTRQkJMHgwMGEwMDAwMAkvKiBBVDkxU0FNOTI2M19VSFBfQkFTRSAqLworI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1NMT1RfTkFNRQkJImF0OTFzYW05MjYzIgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTIKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCQkxCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJCTB4MjIwMDAwMDAJLyogbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkJMHgyMjAwMDAwMAkvKiBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkJUEhZU19TRFJBTQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCQkweDIzZTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkJUEhZU19TRFJBTQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkJMHgyM2UwMDAwMAogCi0jZGVmaW5lIENGR19VU0VfREFUQUZMQVNICQkxCi0jdW5kZWYgQ0ZHX1VTRV9OQU5ERkxBU0gKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfREFUQUZMQVNICQkxCisjdW5kZWYgQ09ORklHX1NZU19VU0VfTkFOREZMQVNICiAKLSNpZmRlZiBDRkdfVVNFX0RBVEFGTEFTSAorI2lmZGVmIENPTkZJR19TWVNfVVNFX0RBVEFGTEFTSAogCiAvKiBib290c3RyYXAgKyB1LWJvb3QgKyBlbnYgKyBsaW51eCBpbiBkYXRhZmxhc2ggb24gQ1MwICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fREFUQUZMQVNICTEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIDB4ODQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgMHg4NDAwKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg0MjAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyBDT05GSUdfRU5WX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyBDT05GSUdfRU5WX09GRlNFVCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQyMDAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJjcC5iIDB4QzAwNDIwMDAgMHgyMjAwMDAwMCAweDIxMDAwMDsgYm9vdG0iCiAjZGVmaW5lIENPTkZJR19CT09UQVJHUwkJImNvbnNvbGU9dHR5UzAsMTE1MjAwICIgXApAQCAtMTY1LDcgKzE2NSw3IEBACiAJCQkJIm10ZHBhcnRzPWF0OTFfbmFuZDotKHJvb3QpICJcCiAJCQkJInJ3IHJvb3Rmc3R5cGU9amZmczIiCiAKLSNlbHNlIC8qIENGR19VU0VfTkFOREZMQVNIICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1VTRV9OQU5ERkxBU0ggKi8KIAogLyogYm9vdHN0cmFwICsgdS1ib290ICsgZW52ICsgbGludXggaW4gbmFuZGZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTkFORAkxCkBAIC0xODEsMjEgKzE4MSwyMSBAQAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsxMTUyMDAgLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCA5NjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7MTE1MjAwICwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgOTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIlUtQm9vdD4gIgotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2Ci0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCi0jZGVmaW5lIENGR19MT05HSEVMUAkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIlUtQm9vdD4gIgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJMQogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEKIAogI2RlZmluZSBST1VORChBLCBCKQkJKCgoQSkgKyAoQikpICYgfigoQikgLSAxKSkKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJUk9VTkQoMyAqIENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0LCAweDEwMDApCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiAxMjggYnl0ZXMgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCVJPVU5EKDMgKiBDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCwgMHgxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIDEyOCBieXRlcyBmb3IgaW5pdGlhbCBkYXRhICovCiAKICNkZWZpbmUgQ09ORklHX1NUQUNLU0laRQkoMzIqMTAyNCkJLyogcmVndWxhciBzdGFjayAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYXQ5MXNhbTlybGVrLmggYi9pbmNsdWRlL2NvbmZpZ3MvYXQ5MXNhbTlybGVrLmgKaW5kZXggMzIxNjhkYy4uNjQ4ZDYwZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2F0OTFzYW05cmxlay5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hdDkxc2FtOXJsZWsuaApAQCAtMzEsNyArMzEsNyBAQAogI2RlZmluZSBBVDkxX0NQVV9OQU1FCQkiQVQ5MVNBTTlSTCIKICNkZWZpbmUgQVQ5MV9NQUlOX0NMT0NLCQkyMDAwMDAwMDAJLyogZnJvbSAxMi4wMDAgTUh6IGNyeXN0YWwgKi8KICNkZWZpbmUgQVQ5MV9NQVNURVJfQ0xPQ0sJMTAwMDAwMDAwCS8qIHBlcmlwaGVyYWwgPSBtYWluIC8gMiAqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwMDAwCQkvKiAxdXMgcmVzb2x1dGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMDAwMAkJLyogMXVzIHJlc29sdXRpb24gKi8KIAogI2RlZmluZSBBVDkxX1NMT1dfQ0xPQ0sJCTMyNzY4CS8qIHNsb3cgY2xvY2sgKi8KIApAQCAtNjMsMTAgKzYzLDEwIEBACiAjdW5kZWYgTENEX1RFU1RfUEFUVEVSTgogI2RlZmluZSBDT05GSUdfTENEX0lORk8JCQkxCiAjZGVmaW5lIENPTkZJR19MQ0RfSU5GT19CRUxPV19MT0dPCTEKLSNkZWZpbmUgQ0ZHX1dISVRFX09OX0JMQUNLCQkxCisjZGVmaW5lIENPTkZJR19TWVNfV0hJVEVfT05fQkxBQ0sJCTEKICNkZWZpbmUgQ09ORklHX0FUTUVMX0xDRAkJMQogI2RlZmluZSBDT05GSUdfQVRNRUxfTENEX1JHQjU2NQkJMQotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgkJMQogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwogCkBAIC05Miw0MSArOTIsNDEgQEAKIAogLyogRGF0YUZsYXNoICovCiAjZGVmaW5lIENPTkZJR19IQVNfREFUQUZMQVNICQkxCi0jZGVmaW5lIENGR19TUElfV1JJVEVfVE9VVAkJKDUqQ0ZHX0haKQotI2RlZmluZSBDRkdfTUFYX0RBVEFGTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwCTB4QzAwMDAwMDAJLyogQ1MwICovCisjZGVmaW5lIENPTkZJR19TWVNfU1BJX1dSSVRFX1RPVVQJCSg1KkNPTkZJR19TWVNfSFopCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMAkweEMwMDAwMDAwCS8qIENTMCAqLwogI2RlZmluZSBBVDkxX1NQSV9DTEsJCQkxNTAwMDAwMAogI2RlZmluZSBEQVRBRkxBU0hfVENTUwkJCSgweDFhIDw8IDE2KQogI2RlZmluZSBEQVRBRkxBU0hfVENIUwkJCSgweDEgPDwgMjQpCiAKIC8qIE5PUiBmbGFzaCAtIG5vdCBwcmVzZW50ICovCi0jZGVmaW5lIENGR19OT19GTEFTSAkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJCTEKIAogLyogTkFORCBmbGFzaCAqLwogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJCTEKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkJMQotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfTkFORF9EQldfOAkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9EQldfOAkJCTEKIAogLyogRXRoZXJuZXQgLSBub3QgcHJlc2VudCAqLwogCiAvKiBVU0IgLSBub3Qgc3VwcG9ydGVkICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJCTB4MjIwMDAwMDAJLyogbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkJMHgyMjAwMDAwMAkvKiBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkJUEhZU19TRFJBTQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCQkweDIzZTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkJUEhZU19TRFJBTQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkJMHgyM2UwMDAwMAogCi0jZGVmaW5lIENGR19VU0VfREFUQUZMQVNICQkxCi0jdW5kZWYgQ0ZHX1VTRV9OQU5ERkxBU0gKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfREFUQUZMQVNICQkxCisjdW5kZWYgQ09ORklHX1NZU19VU0VfTkFOREZMQVNICiAKLSNpZmRlZiBDRkdfVVNFX0RBVEFGTEFTSAorI2lmZGVmIENPTkZJR19TWVNfVVNFX0RBVEFGTEFTSAogCiAvKiBib290c3RyYXAgKyB1LWJvb3QgKyBlbnYgKyBsaW51eCBpbiBkYXRhZmxhc2ggb24gQ1MwICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fREFUQUZMQVNICTEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIDB4ODQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgMHg4NDAwKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg0MjAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyBDT05GSUdfRU5WX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyBDT05GSUdfRU5WX09GRlNFVCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQyMDAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJjcC5iIDB4QzAwNDIwMDAgMHgyMjAwMDAwMCAweDIxMDAwMDsgYm9vdG0iCiAjZGVmaW5lIENPTkZJR19CT09UQVJHUwkJImNvbnNvbGU9dHR5UzAsMTE1MjAwICIgXApAQCAtMTM0LDcgKzEzNCw3IEBACiAJCQkJIm10ZHBhcnRzPWF0OTFfbmFuZDotKHJvb3QpICJcCiAJCQkJInJ3IHJvb3Rmc3R5cGU9amZmczIiCiAKLSNlbHNlIC8qIENGR19VU0VfTkFOREZMQVNIICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1VTRV9OQU5ERkxBU0ggKi8KIAogLyogYm9vdHN0cmFwICsgdS1ib290ICsgZW52ICsgbGludXggaW4gbmFuZGZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTkFORAkxCkBAIC0xNTAsMjEgKzE1MCwyMSBAQAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsxMTUyMDAgLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCA5NjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7MTE1MjAwICwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgOTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIlUtQm9vdD4gIgotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2Ci0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCi0jZGVmaW5lIENGR19MT05HSEVMUAkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIlUtQm9vdD4gIgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJMQogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEKIAogI2RlZmluZSBST1VORChBLCBCKQkJKCgoQSkgKyAoQikpICYgfigoQikgLSAxKSkKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJUk9VTkQoMyAqIENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0LCAweDEwMDApCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiAxMjggYnl0ZXMgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCVJPVU5EKDMgKiBDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCwgMHgxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIDEyOCBieXRlcyBmb3IgaW5pdGlhbCBkYXRhICovCiAKICNkZWZpbmUgQ09ORklHX1NUQUNLU0laRQkoMzIqMTAyNCkJLyogcmVndWxhciBzdGFjayAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYXRjLmggYi9pbmNsdWRlL2NvbmZpZ3MvYXRjLmgKaW5kZXggMDJlYzIzOS4uMjQwMTViNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2F0Yy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hdGMuaApAQCAtNzksMTAgKzc5LDEwIEBACiAgKiAtIFJBTSBmb3IgQkQvQnVmZmVycyBpcyBvbiB0aGUgNjB4IEJ1cyAoc2VlIDI4LTEzKQogICogLSBFbmFibGUgRnVsbCBEdXBsZXggaW4gRlNNUgogICovCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0syCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUyCShDTVhGQ1JfUkYyQ1NfQ0xLMTN8Q01YRkNSX1RGMkNTX0NMSzE0KQotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLMgkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTIJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQogCiAjZGVmaW5lIENPTkZJR19FVEhFUl9PTl9GQ0MzCiAKQEAgLTkyLDggKzkyLDggQEAKICAqIC0gUkFNIGZvciBCRC9CdWZmZXJzIGlzIG9uIHRoZSBsb2NhbCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEhhbGYgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLMwkoQ01YRkNSX0ZDM3xDTVhGQ1JfUkYzQ1NfTVNLfENNWEZDUl9URjNDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFMwkoQ01YRkNSX1JGM0NTX0NMSzE1fENNWEZDUl9URjNDU19DTEsxNikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0szCShDTVhGQ1JfRkMzfENNWEZDUl9SRjNDU19NU0t8Q01YRkNSX1RGM0NTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFMwkoQ01YRkNSX1JGM0NTX0NMSzE1fENNWEZDUl9URjNDU19DTEsxNikKIAogLyogc3lzdGVtIGNsb2NrIHJhdGUgKENMS0lOKSAtIGVxdWFsIHRvIHRoZSA2MHggYW5kIGxvY2FsIGJ1cyBzcGVlZCAqLwogI2RlZmluZSBDT05GSUdfODI2MF9DTEtJTgk2NDAwMDAwMAkvKiBpbiBIeiAqLwpAQCAtMTIwLDcgKzEyMCw3IEBACiAgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKIAogLyoKQEAgLTE1MCwzMSArMTUwLDMxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lIENGR19QSU9fTU9ERQkJMAkvKiBJREUgaW50ZXJmYWNlIGluIFBJTyBNb2RlIDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QSU9fTU9ERQkJMAkvKiBJREUgaW50ZXJmYWNlIGluIFBJTyBNb2RlIDAJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCi0jZGVmaW5lCUNGR19SRVNFVF9BRERSRVNTIDB4RkZGMDAxMDAJLyogImJhZCIgYWRkcmVzcwkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19SRVNFVF9BRERSRVNTIDB4RkZGMDAxMDAJLyogImJhZCIgYWRkcmVzcwkJKi8KIAotI2RlZmluZSBDRkdfQUxMT0NfRFBSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19BTExPQ19EUFJBTQogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTE5Myw5MiArMTkzLDkyIEBACiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAwODAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KIAogI2RlZmluZSBDT05GSUdfRkxBU0hfMTZCSVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZCBSZXNldCBDb25maWd1cmF0aW9uIFdvcmRzCiAgKgotICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ0ZHXyoKKyAqIGlmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENPTkZJR19TWVNfKgogICogZGVmaW5lcyBmb3IgdGhlIHZhcmlvdXMgcmVnaXN0ZXJzIGFmZmVjdGVkIGJ5IHRoZSBIUkNXIGUuZy4gY2hhbmdpbmcKLSAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDRkdfU0lVTUNSLgorICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENPTkZJR19TWVNfU0lVTUNSLgogICovCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUyB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUyB8IFwKIAkJCQkgSFJDV19CUFMxMCB8XAogCQkJCSBIUkNXX0FQUEMxMCkKIAogLyogbm8gc2xhdmVzIHNvIGp1c3QgZmlsbCB3aXRoIHplcm9zICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNAkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3CQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqCi0gKiA2MHggU0RSQU0gaXMgbWFwcGVkIGF0IENGR19TRFJBTV9CQVNFLgorICogNjB4IFNEUkFNIGlzIG1hcHBlZCBhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UuCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX01BWF9TSVpFCTB4MDgwMDAwMDAJLyogbWF4LiAxMjggTUIJCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX01BWF9TSVpFCTB4MDgwMDAwMDAJLyogbWF4LiAxMjggTUIJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyBkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAjZGVmaW5lCUNPTkZJR19QQ0kKICNkZWZpbmUJQ09ORklHX1BDSV9QTlAKLSNkZWZpbmUJQ0ZHX1BDSV9NU1RSX0lPX0JVUwkweDAwMDAwMDAwCS8qIFBDSSBiYXNlICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQ0lfTVNUUl9JT19CVVMJMHgwMDAwMDAwMAkvKiBQQ0kgYmFzZSAgICovCiAKICNpZiAxCiAvKiBlbnZpcm9ubWVudCBpcyBpbiBGbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSMgZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFKzB4MzAwMDApCisjIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UrMHgzMDAwMCkKICMgZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwMAogIyBkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAogI2Vsc2UKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00JMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTIwNDgKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAkvKiAxNi1ieXRlIHBhZ2Ugc2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAkvKiAxNi1ieXRlIHBhZ2Ugc2l6ZQkqLwogI2VuZGlmCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKQEAgLTI5Miw5ICsyOTIsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRSAgICAgIDMyICAgICAgLyogRm9yIE1QQzgyNjAgQ1BVICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFICAgICAgMzIgICAgICAvKiBGb3IgTVBDODI2MCBDUFUgICAgICAgICAgICAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMDcsMzAgKzMwNywzMCBAQAogICoKICAqIEhJRDEgaGFzIG9ubHkgcmVhZC1vbmx5IGluZm9ybWF0aW9uIC0gbm90aGluZyB0byBzZXQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVCAgIChISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVCAgIChISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8XAogCQkJIEhJRDBfRENJfEhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwgIChISUQwX0lGRU18SElEMF9BQkUpCi0jZGVmaW5lIENGR19ISUQyICAgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTCAgKEhJRDBfSUZFTXxISUQwX0FCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyICAgICAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNUiAtIFJlc2V0IE1vZGUgUmVnaXN0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS01CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiB0dXJuIG9uIENoZWNrc3RvcCBSZXNldCBFbmFibGUKICAqLwotI2RlZmluZSBDRkdfUk1SICAgICAgICAgUk1SX0NTUkUKKyNkZWZpbmUgQ09ORklHX1NZU19STVIgICAgICAgICBSTVJfQ1NSRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQ1IgLSBCdXMgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQtMjUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogI2RlZmluZSBCQ1JfQVBEMDEJMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfQkNSCQkoQkNSX0FQRDAxfEJDUl9FVE18QkNSX0xFVE0pCS8qIDgyNjAgbW9kZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJKEJDUl9BUEQwMXxCQ1JfRVRNfEJDUl9MRVRNKQkvKiA4MjYwIG1vZGUgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0lVTUNSIC0gU0lVIE1vZHVsZSBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUiAgICAgIChTSVVNQ1JfQkJEfFNJVU1DUl9BUFBDMTB8XAorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUiAgICAgIChTSVVNQ1JfQkJEfFNJVU1DUl9BUFBDMTB8XAogCQkJIFNJVU1DUl9DUzEwUEMwMHxTSVVNQ1JfQkNUTEMxMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzQwLDEwICszNDAsMTAgQEAKICAqIFdhdGNoZG9nICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCA2MHggQnVzIE1vbml0b3IgZW5hYmxlCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQfFNZUENSX1NXRSkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUCkKICNlbmRpZiAvKiBDT05GSUdfV0FUQ0hET0cgKi8KIApAQCAtMzUzLDcgKzM1Myw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQyAgICAgKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgICAgICAgICAgICAgICAgIDQtNDIKQEAgLTM2MSwzMyArMzYxLDMzIEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jZGVmaW5lIENGR19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBDb250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVuc3VyZSBERkJSRyBpcyBEaXZpZGUgYnkgMTYKICAqLwotI2RlZmluZSBDRkdfU0NDUiAgICAgICAgU0NDUl9ERkJSRzAxCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUiAgICAgICAgU0NDUl9ERkJSRzAxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAxMy03CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSICAgICAgICAwCiAKLSNkZWZpbmUgQ0ZHX01JTl9BTV9NQVNLCTB4QzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NSU5fQU1fTUFTSwkweEMwMDAwMDAwCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNUFRQUiAtIE1lbW9yeSBSZWZyZXNoIFRpbWVyIFByZXNjYWxlciBSZWdpc3RlciAgICAgICAgICAgICAgMTAtMTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfTVBUUFIgICAgICAgMHgxRjAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIgICAgICAgMHgxRjAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBTUlQgLSBSZWZyZXNoIFRpbWVyIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC0xNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19QU1JUICAgICAgICAweDBmCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVCAgICAgICAgMHgwZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQU1JUIC0gU0RSQU0gTW9kZSBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAtMTAKQEAgLTM5NiwxMiArMzk2LDEyIEBACiAKIAkvKiBTRFJBTSBpbml0aWFsaXphdGlvbiB2YWx1ZXMgZm9yIDgtY29sdW1uIGNoaXBzCiAJICovCi0jZGVmaW5lIENGR19PUjJfOENPTAkoQ0ZHX01JTl9BTV9NQVNLCQl8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMl84Q09MCShDT05GSUdfU1lTX01JTl9BTV9NQVNLCQl8XAogCQkJIE9SeFNfQlBEXzQJCQl8XAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BNwkJfFwKIAkJCSBPUnhTX05VTVJfMTIpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SXzhDT0wJKFBTRE1SX1BCSQkJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfOENPTAkoUFNETVJfUEJJCQkJfFwKIAkJCSBQU0RNUl9TREFNX0ExNV9JU19BNQkJfFwKIAkJCSBQU0RNUl9CU01BX0ExNV9BMTcJCXxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMV9BNwkJfFwKQEAgLTQxNCwxMiArNDE0LDEyIEBACiAKIAkvKiBTRFJBTSBpbml0aWFsaXphdGlvbiB2YWx1ZXMgZm9yIDktY29sdW1uIGNoaXBzCiAJICovCi0jZGVmaW5lIENGR19PUjJfOUNPTAkoQ0ZHX01JTl9BTV9NQVNLCQl8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMl85Q09MCShDT05GSUdfU1lTX01JTl9BTV9NQVNLCQl8XAogCQkJIE9SeFNfQlBEXzQJCQl8XAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BNgkJfFwKIAkJCSBPUnhTX05VTVJfMTIpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SXzlDT0wJKFBTRE1SX1BCSQkJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfOUNPTAkoUFNETVJfUEJJCQkJfFwKIAkJCSBQU0RNUl9TREFNX0ExNl9JU19BNQkJfFwKIAkJCSBQU0RNUl9CU01BX0ExNV9BMTcJCXxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMV9BNgkJfFwKQEAgLTQ0MSwxNiArNDQxLDE2IEBACiAgKgogICovCiAKLSNkZWZpbmUgQ0ZHX01SU19PRkZTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUlNfT0ZGUwkweDAwMDAwMDAwCiAKIC8qIEJhbmsgMCAtIEZMQVNICiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0gICgoQ0ZHX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNICAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU18xNiAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNICAoUDJTWl9UT19BTShDRkdfRkxBU0hfU0laRSkgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19GTEFTSF9TSVpFKSAgICAgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV8zX0NMSyAgICAgICAgICAgICAgICAgfFwKQEAgLTQ1OSwyMyArNDU5LDIzIEBACiAKIC8qIEJhbmsgMiAtIDYweCBidXMgU0RSQU0KICAqLwotI2lmbmRlZiBDRkdfUkFNQk9PVAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTSAgKChDRkdfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19TRFJBTV9QICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCSBDRkdfT1IyXzhDT0wKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCSBDT05GSUdfU1lTX09SMl84Q09MCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SCSBDRkdfUFNETVJfOENPTAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJIENPTkZJR19TWVNfUFNETVJfOENPTAorI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCi0jZGVmaW5lIENGR19CUjRfUFJFTElNICAoKFJUQ19CQVNFX0FERFIgJiBCUnhfQkFfTVNLKSAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTSAgKChSVENfQkFTRV9BRERSICYgQlJ4X0JBX01TSykgICB8XAogCQkJIEJSeF9QU184ICAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19VUE1BICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjRfUFJFTElNICAoT1J4VV9BTV9NU0sgfCBPUnhVX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0gIChPUnhVX0FNX01TSyB8IE9SeFVfQkkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBzdHVmZgpAQCAtNDg0LDggKzQ4NCw4IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX0k4MjM2NQogCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJMHg4MTAwMDAwMAotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkweDgxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCTB4MTAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC00OTgsMjAgKzQ5OCwyMCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVECSBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweGEwMDAwMDAwCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MTAwCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkweDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MTAwCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgxMDgKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDEwOAogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2F0bmd3MTAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvYXRuZ3cxMDAuaAppbmRleCA1YzI4NjM4Li45ZTk3NjI0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYXRuZ3cxMDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYXRuZ3cxMDAuaApAQCAtMzEsNyArMzEsNyBAQAogI2RlZmluZSBDT05GSUdfQVQzMkFQNzAwMAkJMQogI2RlZmluZSBDT05GSUdfQVROR1cxMDAJCQkxCiAKLSNkZWZpbmUgQ0ZHX0haCQkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCQkxMDAwCiAKIC8qCiAgKiBTZXQgdXAgdGhlIFBMTCB0byBydW4gYXQgMTQwIE1IeiwgdGhlIENQVSB0byBydW4gYXQgdGhlIFBMTApAQCAtMzksMTUgKzM5LDE1IEBACiAgKiBhbmQgdGhlIFBCQSBidXMgdG8gcnVuIGF0IDEvNCB0aGUgUExMIGZyZXF1ZW5jeS4KICAqLwogI2RlZmluZSBDT05GSUdfUExMCQkJMQotI2RlZmluZSBDRkdfUE9XRVJfTUFOQUdFUgkJMQotI2RlZmluZSBDRkdfT1NDMF9IWgkJCTIwMDAwMDAwCi0jZGVmaW5lIENGR19QTEwwX0RJVgkJCTEKLSNkZWZpbmUgQ0ZHX1BMTDBfTVVMCQkJNwotI2RlZmluZSBDRkdfUExMMF9TVVBQUkVTU19DWUNMRVMJMTYKLSNkZWZpbmUgQ0ZHX0NMS0RJVl9DUFUJCQkwCi0jZGVmaW5lIENGR19DTEtESVZfSFNCCQkJMQotI2RlZmluZSBDRkdfQ0xLRElWX1BCQQkJCTIKLSNkZWZpbmUgQ0ZHX0NMS0RJVl9QQkIJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUE9XRVJfTUFOQUdFUgkJMQorI2RlZmluZSBDT05GSUdfU1lTX09TQzBfSFoJCQkyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfRElWCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfTVVMCQkJNworI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfU1VQUFJFU1NfQ1lDTEVTCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX0NQVQkJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfSFNCCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9QQkEJCQkyCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX1BCQgkJCTEKIAogLyoKICAqIFRoZSBQTExPUFQgcmVnaXN0ZXIgY29udHJvbHMgdGhlIFBMTCBsaWtlIHRoaXM6CkBAIC01Niw3ICs1Niw3IEBACiAgKgogICogV2Ugd2FudCBpY3A9MSAoZGVmYXVsdCkgYW5kIGl2Y289MCAoODAtMTYwIE1Ieikgb3IgaXZjbz0yICgxNTAtMjQwTUh6KS4KICAqLwotI2RlZmluZSBDRkdfUExMMF9PUFQJCQkweDA0CisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9PUFQJCQkweDA0CiAKICNkZWZpbmUgQ09ORklHX1VTQVJUMQkJCTEKIApAQCAtMTI1LDggKzEyNSw4IEBACiAjZGVmaW5lIENPTkZJR19BVE1FTF9VU0FSVAkJMQogI2RlZmluZSBDT05GSUdfTUFDQgkJCTEKICNkZWZpbmUgQ09ORklHX1BJTzIJCQkxCi0jZGVmaW5lIENGR19OUl9QSU9TCQkJNQotI2RlZmluZSBDRkdfSFNEUkFNQwkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUl9QSU9TCQkJNQorI2RlZmluZSBDT05GSUdfU1lTX0hTRFJBTUMJCQkxCiAjZGVmaW5lIENPTkZJR19NTUMJCQkxCiAjZGVmaW5lIENPTkZJR19BVE1FTF9NQ0kJCTEKICNkZWZpbmUgQ09ORklHX0FUTUVMX1NQSQkJMQpAQCAtMTM0LDQ4ICsxMzQsNDggQEAKICNkZWZpbmUgQ09ORklHX1NQSV9GTEFTSAkJMQogI2RlZmluZSBDT05GSUdfU1BJX0ZMQVNIX0FUTUVMCQkxCiAKLSNkZWZpbmUgQ0ZHX0RDQUNIRV9MSU5FU1oJCTMyCi0jZGVmaW5lIENGR19JQ0FDSEVfTElORVNaCQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9MSU5FU1oJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFX0xJTkVTWgkJMzIKIAogI2RlZmluZSBDT05GSUdfTlJfRFJBTV9CQU5LUwkJMQogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJMQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJMQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJCTB4ODAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCQkxMzUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCQkweDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkxMzUKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCQlDRkdfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkJQ09ORklHX1NZU19GTEFTSF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX0lOVFJBTV9CQVNFCQkJSU5URVJOQUxfU1JBTV9CQVNFCi0jZGVmaW5lIENGR19JTlRSQU1fU0laRQkJCUlOVEVSTkFMX1NSQU1fU0laRQotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJCUVCSV9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUkFNX0JBU0UJCQlJTlRFUk5BTF9TUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSQU1fU0laRQkJCUlOVEVSTkFMX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCQlFQklfU0RSQU1fQkFTRQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJCTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJNjU1MzYKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfQUREUgkJKENGR19JTlRSQU1fQkFTRSArIENGR19JTlRSQU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX0FERFIJCShDT05GSUdfU1lTX0lOVFJBTV9CQVNFICsgQ09ORklHX1NZU19JTlRSQU1fU0laRSkKIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJCSgyNTYqMTAyNCkKLSNkZWZpbmUgQ0ZHX0RNQV9BTExPQ19MRU4JCSgxNjM4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkJKDI1NioxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0RNQV9BTExPQ19MRU4JCSgxNjM4NCkKIAogLyogQWxsb3cgNE1CIGZvciB0aGUga2VybmVsIHJ1bi10aW1lIGltYWdlICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCQkoRUJJX1NEUkFNX0JBU0UgKyAweDAwNDAwMDAwKQotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JCSgxNiAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkJKEVCSV9TRFJBTV9CQVNFICsgMHgwMDQwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgkJKDE2ICogMTAyNCkKIAogLyogT3RoZXIgY29uZmlndXJhdGlvbiBzZXR0aW5ncyB0aGF0IHNob3VsZG4ndCBoYXZlIHRvIGNoYW5nZSBhbGwgdGhhdCBvZnRlbiAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkJIlUtQm9vdD4gIgotI2RlZmluZSBDRkdfQ0JTSVpFCQkJMjU2Ci0jZGVmaW5lIENGR19NQVhBUkdTCQkJMTYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCQkiVS1Cb290PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQlFQklfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCQkoQ0ZHX01FTVRFU1RfU1RBUlQgKyAweDFmMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkJRUJJX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJCShDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgKyAweDFmMDAwMDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIHsgMTE1MjAwLCAzODQwMCwgMTkyMDAsIDk2MDAsIDI0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFIHsgMTE1MjAwLCAzODQwMCwgMTkyMDAsIDk2MDAsIDI0MDAgfQogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2F0c3RrMTAwMi5oIGIvaW5jbHVkZS9jb25maWdzL2F0c3RrMTAwMi5oCmluZGV4IGZhYTdhMDEuLjI4NzBhZGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hdHN0azEwMDIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYXRzdGsxMDAyLmgKQEAgLTM4LDQwICszOCw0MCBAQAogICogVGltZXIgY2xvY2sgZnJlcXVlbmN5LiBXZSdyZSB1c2luZyB0aGUgQ1BVLWludGVybmFsIENPVU5UIHJlZ2lzdGVyCiAgKiBmb3IgdGhpcywgc28gdGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBDUFUgY29yZSBjbG9jayBmcmVxdWVuY3kKICAqLwotI2RlZmluZSBDRkdfSFoJCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJCTEwMDAKIAogLyoKICAqIFNldCB1cCB0aGUgUExMIHRvIHJ1biBhdCAxNDAgTUh6LCB0aGUgQ1BVIHRvIHJ1biBhdCB0aGUgUExMCiAgKiBmcmVxdWVuY3ksIHRoZSBIU0IgYW5kIFBCQiBhdCAxLzIsIGFuZCB0aGUgUEJBIHRvIHJ1biBhdCAxLzQgdGhlCiAgKiBQTEwgZnJlcXVlbmN5LgotICogKENGR19PU0MwX0haICogQ0ZHX1BMTDBfTVVMKSAvIENGR19QTEwwX0RJViA9IFBMTCBNSHoKKyAqIChDT05GSUdfU1lTX09TQzBfSFogKiBDT05GSUdfU1lTX1BMTDBfTVVMKSAvIENPTkZJR19TWVNfUExMMF9ESVYgPSBQTEwgTUh6CiAgKi8KICNkZWZpbmUgQ09ORklHX1BMTAkJCTEKLSNkZWZpbmUgQ0ZHX1BPV0VSX01BTkFHRVIJCTEKLSNkZWZpbmUgQ0ZHX09TQzBfSFoJCQkyMDAwMDAwMAotI2RlZmluZSBDRkdfUExMMF9ESVYJCQkxCi0jZGVmaW5lIENGR19QTEwwX01VTAkJCTcKLSNkZWZpbmUgQ0ZHX1BMTDBfU1VQUFJFU1NfQ1lDTEVTCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUE9XRVJfTUFOQUdFUgkJMQorI2RlZmluZSBDT05GSUdfU1lTX09TQzBfSFoJCQkyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfRElWCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfTVVMCQkJNworI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfU1VQUFJFU1NfQ1lDTEVTCTE2CiAvKgogICogU2V0IHRoZSBDUFUgcnVubmluZyBhdDoKLSAqIFBMTCAvICgyXkNGR19DTEtESVZfQ1BVKSA9IENQVSBNSHoKKyAqIFBMTCAvICgyXkNPTkZJR19TWVNfQ0xLRElWX0NQVSkgPSBDUFUgTUh6CiAgKi8KLSNkZWZpbmUgQ0ZHX0NMS0RJVl9DUFUJCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX0NQVQkJCTAKIC8qCiAgKiBTZXQgdGhlIEhTQiBydW5uaW5nIGF0OgotICogUExMIC8gKDJeQ0ZHX0NMS0RJVl9IU0IpID0gSFNCIE1IegorICogUExMIC8gKDJeQ09ORklHX1NZU19DTEtESVZfSFNCKSA9IEhTQiBNSHoKICAqLwotI2RlZmluZSBDRkdfQ0xLRElWX0hTQgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfSFNCCQkJMQogLyoKICAqIFNldCB0aGUgUEJBIHJ1bm5pbmcgYXQ6Ci0gKiBQTEwgLyAoMl5DRkdfQ0xLRElWX1BCQSkgPSBQQkEgTUh6CisgKiBQTEwgLyAoMl5DT05GSUdfU1lTX0NMS0RJVl9QQkEpID0gUEJBIE1IegogICovCi0jZGVmaW5lIENGR19DTEtESVZfUEJBCQkJMgorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9QQkEJCQkyCiAvKgogICogU2V0IHRoZSBQQkIgcnVubmluZyBhdDoKLSAqIFBMTCAvICgyXkNGR19DTEtESVZfUEJCKSA9IFBCQiBNSHoKKyAqIFBMTCAvICgyXkNPTkZJR19TWVNfQ0xLRElWX1BCQikgPSBQQkIgTUh6CiAgKi8KLSNkZWZpbmUgQ0ZHX0NMS0RJVl9QQkIJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX1BCQgkJCTEKIAogLyoKICAqIFRoZSBQTExPUFQgcmVnaXN0ZXIgY29udHJvbHMgdGhlIFBMTCBsaWtlIHRoaXM6CkBAIC04MCw3ICs4MCw3IEBACiAgKgogICogV2Ugd2FudCBpY3A9MSAoZGVmYXVsdCkgYW5kIGl2Y289MCAoODAtMTYwIE1Ieikgb3IgaXZjbz0yICgxNTAtMjQwTUh6KS4KICAqLwotI2RlZmluZSBDRkdfUExMMF9PUFQJCQkweDA0CisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9PUFQJCQkweDA0CiAKICN1bmRlZiBDT05GSUdfVVNBUlQwCiAjZGVmaW5lIENPTkZJR19VU0FSVDEJCQkxCkBAIC0xNTAsNTUgKzE1MCw1NSBAQAogI2RlZmluZSBDT05GSUdfQVRNRUxfVVNBUlQJCTEKICNkZWZpbmUgQ09ORklHX01BQ0IJCQkxCiAjZGVmaW5lIENPTkZJR19QSU8yCQkJMQotI2RlZmluZSBDRkdfTlJfUElPUwkJCTUKLSNkZWZpbmUgQ0ZHX0hTRFJBTUMJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlJfUElPUwkJCTUKKyNkZWZpbmUgQ09ORklHX1NZU19IU0RSQU1DCQkJMQogI2RlZmluZSBDT05GSUdfTU1DCQkJMQogI2RlZmluZSBDT05GSUdfQVRNRUxfTUNJCQkxCiAKLSNkZWZpbmUgQ0ZHX0RDQUNIRV9MSU5FU1oJCTMyCi0jZGVmaW5lIENGR19JQ0FDSEVfTElORVNaCQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9MSU5FU1oJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFX0xJTkVTWgkJMzIKIAogI2RlZmluZSBDT05GSUdfTlJfRFJBTV9CQU5LUwkJMQogCiAvKiBFeHRlcm5hbCBmbGFzaCBvbiBTVEsxMDAwICovCiAjaWYgMAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCTEKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJCTB4ODAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCQkxMzUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCQkweDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkxMzUKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCQlDRkdfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkJQ09ORklHX1NZU19GTEFTSF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX0lOVFJBTV9CQVNFCQkJSU5URVJOQUxfU1JBTV9CQVNFCi0jZGVmaW5lIENGR19JTlRSQU1fU0laRQkJCUlOVEVSTkFMX1NSQU1fU0laRQotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJCUVCSV9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUkFNX0JBU0UJCQlJTlRFUk5BTF9TUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSQU1fU0laRQkJCUlOVEVSTkFMX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCQlFQklfU0RSQU1fQkFTRQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJCTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJNjU1MzYKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfQUREUgkJKENGR19JTlRSQU1fQkFTRSArIENGR19JTlRSQU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX0FERFIJCShDT05GSUdfU1lTX0lOVFJBTV9CQVNFICsgQ09ORklHX1NZU19JTlRSQU1fU0laRSkKIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJCSgyNTYqMTAyNCkKLSNkZWZpbmUgQ0ZHX0RNQV9BTExPQ19MRU4JCSgxNjM4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkJKDI1NioxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0RNQV9BTExPQ19MRU4JCSgxNjM4NCkKIAogLyogQWxsb3cgNE1CIGZvciB0aGUga2VybmVsIHJ1bi10aW1lIGltYWdlICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCQkoRUJJX1NEUkFNX0JBU0UgKyAweDAwNDAwMDAwKQotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JCSgxNiAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkJKEVCSV9TRFJBTV9CQVNFICsgMHgwMDQwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgkJKDE2ICogMTAyNCkKIAogLyogT3RoZXIgY29uZmlndXJhdGlvbiBzZXR0aW5ncyB0aGF0IHNob3VsZG4ndCBoYXZlIHRvIGNoYW5nZSBhbGwgdGhhdCBvZnRlbiAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkJIlUtQm9vdD4gIgotI2RlZmluZSBDRkdfQ0JTSVpFCQkJMjU2Ci0jZGVmaW5lIENGR19NQVhBUkdTCQkJMTYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCQkiVS1Cb290PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQlFQklfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCQkoQ0ZHX01FTVRFU1RfU1RBUlQgKyAweDcwMDAwMCkKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIHsgMTE1MjAwLCAzODQwMCwgMTkyMDAsIDk2MDAsIDI0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCUVCSV9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQkoQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICsgMHg3MDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgeyAxMTUyMDAsIDM4NDAwLCAxOTIwMCwgOTYwMCwgMjQwMCB9CiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYXRzdGsxMDAzLmggYi9pbmNsdWRlL2NvbmZpZ3MvYXRzdGsxMDAzLmgKaW5kZXggZTMwODRkNC4uMWU4MGRjOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2F0c3RrMTAwMy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hdHN0azEwMDMuaApAQCAtMzgsNDAgKzM4LDQwIEBACiAgKiBUaW1lciBjbG9jayBmcmVxdWVuY3kuIFdlJ3JlIHVzaW5nIHRoZSBDUFUtaW50ZXJuYWwgQ09VTlQgcmVnaXN0ZXIKICAqIGZvciB0aGlzLCBzbyB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIENQVSBjb3JlIGNsb2NrIGZyZXF1ZW5jeQogICovCi0jZGVmaW5lIENGR19IWgkJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkJMTAwMAogCiAvKgogICogU2V0IHVwIHRoZSBQTEwgdG8gcnVuIGF0IDE0MCBNSHosIHRoZSBDUFUgdG8gcnVuIGF0IHRoZSBQTEwKICAqIGZyZXF1ZW5jeSwgdGhlIEhTQiBhbmQgUEJCIGF0IDEvMiwgYW5kIHRoZSBQQkEgdG8gcnVuIGF0IDEvNCB0aGUKICAqIFBMTCBmcmVxdWVuY3kuCi0gKiAoQ0ZHX09TQzBfSFogKiBDRkdfUExMMF9NVUwpIC8gQ0ZHX1BMTDBfRElWID0gUExMIE1IegorICogKENPTkZJR19TWVNfT1NDMF9IWiAqIENPTkZJR19TWVNfUExMMF9NVUwpIC8gQ09ORklHX1NZU19QTEwwX0RJViA9IFBMTCBNSHoKICAqLwogI2RlZmluZSBDT05GSUdfUExMCQkJMQotI2RlZmluZSBDRkdfUE9XRVJfTUFOQUdFUgkJMQotI2RlZmluZSBDRkdfT1NDMF9IWgkJCTIwMDAwMDAwCi0jZGVmaW5lIENGR19QTEwwX0RJVgkJCTEKLSNkZWZpbmUgQ0ZHX1BMTDBfTVVMCQkJNwotI2RlZmluZSBDRkdfUExMMF9TVVBQUkVTU19DWUNMRVMJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QT1dFUl9NQU5BR0VSCQkxCisjZGVmaW5lIENPTkZJR19TWVNfT1NDMF9IWgkJCTIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9ESVYJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9NVUwJCQk3CisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9TVVBQUkVTU19DWUNMRVMJMTYKIC8qCiAgKiBTZXQgdGhlIENQVSBydW5uaW5nIGF0OgotICogUExMIC8gKDJeQ0ZHX0NMS0RJVl9DUFUpID0gQ1BVIE1IegorICogUExMIC8gKDJeQ09ORklHX1NZU19DTEtESVZfQ1BVKSA9IENQVSBNSHoKICAqLwotI2RlZmluZSBDRkdfQ0xLRElWX0NQVQkJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfQ1BVCQkJMAogLyoKICAqIFNldCB0aGUgSFNCIHJ1bm5pbmcgYXQ6Ci0gKiBQTEwgLyAoMl5DRkdfQ0xLRElWX0hTQikgPSBIU0IgTUh6CisgKiBQTEwgLyAoMl5DT05GSUdfU1lTX0NMS0RJVl9IU0IpID0gSFNCIE1IegogICovCi0jZGVmaW5lIENGR19DTEtESVZfSFNCCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9IU0IJCQkxCiAvKgogICogU2V0IHRoZSBQQkEgcnVubmluZyBhdDoKLSAqIFBMTCAvICgyXkNGR19DTEtESVZfUEJBKSA9IFBCQSBNSHoKKyAqIFBMTCAvICgyXkNPTkZJR19TWVNfQ0xLRElWX1BCQSkgPSBQQkEgTUh6CiAgKi8KLSNkZWZpbmUgQ0ZHX0NMS0RJVl9QQkEJCQkyCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX1BCQQkJCTIKIC8qCiAgKiBTZXQgdGhlIFBCQiBydW5uaW5nIGF0OgotICogUExMIC8gKDJeQ0ZHX0NMS0RJVl9QQkIpID0gUEJCIE1IegorICogUExMIC8gKDJeQ09ORklHX1NZU19DTEtESVZfUEJCKSA9IFBCQiBNSHoKICAqLwotI2RlZmluZSBDRkdfQ0xLRElWX1BCQgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfUEJCCQkJMQogCiAvKgogICogVGhlIFBMTE9QVCByZWdpc3RlciBjb250cm9scyB0aGUgUExMIGxpa2UgdGhpczoKQEAgLTgwLDcgKzgwLDcgQEAKICAqCiAgKiBXZSB3YW50IGljcD0xIChkZWZhdWx0KSBhbmQgaXZjbz0wICg4MC0xNjAgTUh6KSBvciBpdmNvPTIgKDE1MC0yNDBNSHopLgogICovCi0jZGVmaW5lIENGR19QTEwwX09QVAkJCTB4MDQKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX09QVAkJCTB4MDQKIAogI3VuZGVmIENPTkZJR19VU0FSVDAKICNkZWZpbmUgQ09ORklHX1VTQVJUMQkJCTEKQEAgLTEzNCw1MyArMTM0LDUzIEBACiAKICNkZWZpbmUgQ09ORklHX0FUTUVMX1VTQVJUCQkxCiAjZGVmaW5lIENPTkZJR19QSU8yCQkJMQotI2RlZmluZSBDRkdfSFNEUkFNQwkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19IU0RSQU1DCQkJMQogI2RlZmluZSBDT05GSUdfTU1DCQkJMQogI2RlZmluZSBDT05GSUdfQVRNRUxfTUNJCQkxCiAKLSNkZWZpbmUgQ0ZHX0RDQUNIRV9MSU5FU1oJCTMyCi0jZGVmaW5lIENGR19JQ0FDSEVfTElORVNaCQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9MSU5FU1oJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFX0xJTkVTWgkJMzIKIAogI2RlZmluZSBDT05GSUdfTlJfRFJBTV9CQU5LUwkJMQogCiAvKiBFeHRlcm5hbCBmbGFzaCBvbiBTVEsxMDAwICovCiAjaWYgMAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCTEKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJCTB4ODAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCQkxMzUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCQkweDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkxMzUKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCQlDRkdfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkJQ09ORklHX1NZU19GTEFTSF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX0lOVFJBTV9CQVNFCQkJSU5URVJOQUxfU1JBTV9CQVNFCi0jZGVmaW5lIENGR19JTlRSQU1fU0laRQkJCUlOVEVSTkFMX1NSQU1fU0laRQotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJCUVCSV9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUkFNX0JBU0UJCQlJTlRFUk5BTF9TUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSQU1fU0laRQkJCUlOVEVSTkFMX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCQlFQklfU0RSQU1fQkFTRQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJCTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJNjU1MzYKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfQUREUgkJKENGR19JTlRSQU1fQkFTRSArIENGR19JTlRSQU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX0FERFIJCShDT05GSUdfU1lTX0lOVFJBTV9CQVNFICsgQ09ORklHX1NZU19JTlRSQU1fU0laRSkKIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJCSgyNTYqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkJKDI1NioxMDI0KQogCiAvKiBBbGxvdyA0TUIgZm9yIHRoZSBrZXJuZWwgcnVuLXRpbWUgaW1hZ2UgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJCShFQklfU0RSQU1fQkFTRSArIDB4MDA0MDAwMDApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkJKDE2ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkoRUJJX1NEUkFNX0JBU0UgKyAweDAwNDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCQkoMTYgKiAxMDI0KQogCiAvKiBPdGhlciBjb25maWd1cmF0aW9uIHNldHRpbmdzIHRoYXQgc2hvdWxkbid0IGhhdmUgdG8gY2hhbmdlIGFsbCB0aGF0IG9mdGVuICovCi0jZGVmaW5lIENGR19QUk9NUFQJCQkiVS1Cb290PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCQkxNgotI2RlZmluZSBDRkdfUEJTSVpFCQkJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJCSJVLUJvb3Q+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCUVCSV9TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCShDRkdfTUVNVEVTVF9TVEFSVCArIDB4NzAwMDAwKQotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgeyAxMTUyMDAsIDM4NDAwLCAxOTIwMCwgOTYwMCwgMjQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkJRUJJX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJCShDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgKyAweDcwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSB7IDExNTIwMCwgMzg0MDAsIDE5MjAwLCA5NjAwLCAyNDAwIH0KIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hdHN0azEwMDQuaCBiL2luY2x1ZGUvY29uZmlncy9hdHN0azEwMDQuaAppbmRleCBjODdjNWI3Li4wZTRmNDEwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYXRzdGsxMDA0LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2F0c3RrMTAwNC5oCkBAIC0zOCw0MCArMzgsNDAgQEAKICAqIFRpbWVyIGNsb2NrIGZyZXF1ZW5jeS4gV2UncmUgdXNpbmcgdGhlIENQVS1pbnRlcm5hbCBDT1VOVCByZWdpc3RlcgogICogZm9yIHRoaXMsIHNvIHRoaXMgaXMgZXF1aXZhbGVudCB0byB0aGUgQ1BVIGNvcmUgY2xvY2sgZnJlcXVlbmN5CiAgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCQkxMDAwCiAKIC8qCiAgKiBTZXQgdXAgdGhlIFBMTCB0byBydW4gYXQgMTQwIE1IeiwgdGhlIENQVSB0byBydW4gYXQgdGhlIFBMTAogICogZnJlcXVlbmN5LCB0aGUgSFNCIGFuZCBQQkIgYXQgMS8yLCBhbmQgdGhlIFBCQSB0byBydW4gYXQgMS80IHRoZQogICogUExMIGZyZXF1ZW5jeS4KLSAqIChDRkdfT1NDMF9IWiAqIENGR19QTEwwX01VTCkgLyBDRkdfUExMMF9ESVYgPSBQTEwgTUh6CisgKiAoQ09ORklHX1NZU19PU0MwX0haICogQ09ORklHX1NZU19QTEwwX01VTCkgLyBDT05GSUdfU1lTX1BMTDBfRElWID0gUExMIE1IegogICovCiAjZGVmaW5lIENPTkZJR19QTEwJCQkxCi0jZGVmaW5lIENGR19QT1dFUl9NQU5BR0VSCQkxCi0jZGVmaW5lIENGR19PU0MwX0haCQkJMjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMTDBfRElWCQkJMQotI2RlZmluZSBDRkdfUExMMF9NVUwJCQk3Ci0jZGVmaW5lIENGR19QTEwwX1NVUFBSRVNTX0NZQ0xFUwkxNgorI2RlZmluZSBDT05GSUdfU1lTX1BPV0VSX01BTkFHRVIJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19PU0MwX0haCQkJMjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX0RJVgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX01VTAkJCTcKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX1NVUFBSRVNTX0NZQ0xFUwkxNgogLyoKICAqIFNldCB0aGUgQ1BVIHJ1bm5pbmcgYXQ6Ci0gKiBQTEwgLyAoMl5DRkdfQ0xLRElWX0NQVSkgPSBDUFUgTUh6CisgKiBQTEwgLyAoMl5DT05GSUdfU1lTX0NMS0RJVl9DUFUpID0gQ1BVIE1IegogICovCi0jZGVmaW5lIENGR19DTEtESVZfQ1BVCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9DUFUJCQkwCiAvKgogICogU2V0IHRoZSBIU0IgcnVubmluZyBhdDoKLSAqIFBMTCAvICgyXkNGR19DTEtESVZfSFNCKSA9IEhTQiBNSHoKKyAqIFBMTCAvICgyXkNPTkZJR19TWVNfQ0xLRElWX0hTQikgPSBIU0IgTUh6CiAgKi8KLSNkZWZpbmUgQ0ZHX0NMS0RJVl9IU0IJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX0hTQgkJCTEKIC8qCiAgKiBTZXQgdGhlIFBCQSBydW5uaW5nIGF0OgotICogUExMIC8gKDJeQ0ZHX0NMS0RJVl9QQkEpID0gUEJBIE1IegorICogUExMIC8gKDJeQ09ORklHX1NZU19DTEtESVZfUEJBKSA9IFBCQSBNSHoKICAqLwotI2RlZmluZSBDRkdfQ0xLRElWX1BCQQkJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfUEJBCQkJMgogLyoKICAqIFNldCB0aGUgUEJCIHJ1bm5pbmcgYXQ6Ci0gKiBQTEwgLyAoMl5DRkdfQ0xLRElWX1BCQikgPSBQQkIgTUh6CisgKiBQTEwgLyAoMl5DT05GSUdfU1lTX0NMS0RJVl9QQkIpID0gUEJCIE1IegogICovCi0jZGVmaW5lIENGR19DTEtESVZfUEJCCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9QQkIJCQkxCiAKIC8qCiAgKiBUaGUgUExMT1BUIHJlZ2lzdGVyIGNvbnRyb2xzIHRoZSBQTEwgbGlrZSB0aGlzOgpAQCAtODAsNyArODAsNyBAQAogICoKICAqIFdlIHdhbnQgaWNwPTEgKGRlZmF1bHQpIGFuZCBpdmNvPTAgKDgwLTE2MCBNSHopIG9yIGl2Y289MiAoMTUwLTI0ME1IeikuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMTDBfT1BUCQkJMHgwNAorI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfT1BUCQkJMHgwNAogCiAjdW5kZWYgQ09ORklHX1VTQVJUMAogI2RlZmluZSBDT05GSUdfVVNBUlQxCQkJMQpAQCAtMTM0LDUzICsxMzQsNTMgQEAKIAogI2RlZmluZSBDT05GSUdfQVRNRUxfVVNBUlQJCTEKICNkZWZpbmUgQ09ORklHX1BJTzIJCQkxCi0jZGVmaW5lIENGR19IU0RSQU1DCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0hTRFJBTUMJCQkxCiAjZGVmaW5lIENPTkZJR19NTUMJCQkxCiAjZGVmaW5lIENPTkZJR19BVE1FTF9NQ0kJCTEKIAotI2RlZmluZSBDRkdfRENBQ0hFX0xJTkVTWgkJMzIKLSNkZWZpbmUgQ0ZHX0lDQUNIRV9MSU5FU1oJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWgkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfTElORVNaCQkzMgogCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCQkxCiAKIC8qIEV4dGVybmFsIGZsYXNoIG9uIFNUSzEwMDAgKi8KICNpZiAwCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJMQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkJMHg4MDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTEzNQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJCTB4ODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTEzNQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJCUNGR19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAotI2RlZmluZSBDRkdfSU5UUkFNX0JBU0UJCQlJTlRFUk5BTF9TUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkJRUJJX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSQU1fQkFTRQkJCUlOVEVSTkFMX1NSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJCUVCSV9TRFJBTV9CQVNFCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkJMQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQk2NTUzNgotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfRkxBU0hfU0laRSAtIENPTkZJR19FTlZfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfRkxBU0hfU0laRSAtIENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9BRERSCQkoQ0ZHX0lOVFJBTV9CQVNFICsgQ0ZHX0lOVFJBTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfQUREUgkJKENPTkZJR19TWVNfSU5UUkFNX0JBU0UgKyBDT05GSUdfU1lTX0lOVFJBTV9TSVpFKQogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkJKDI1NioxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCQkoMjU2KjEwMjQpCiAKIC8qIEFsbG93IDJNQiBmb3IgdGhlIGtlcm5lbCBydW4tdGltZSBpbWFnZSAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkJKEVCSV9TRFJBTV9CQVNFICsgMHgwMDIwMDAwMCkKLSNkZWZpbmUgQ0ZHX0JPT1RQQVJBTVNfTEVOCQkoMTYgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJCShFQklfU0RSQU1fQkFTRSArIDB4MDAyMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JCSgxNiAqIDEwMjQpCiAKIC8qIE90aGVyIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgdGhhdCBzaG91bGRuJ3QgaGF2ZSB0byBjaGFuZ2UgYWxsIHRoYXQgb2Z0ZW4gKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJCSJVLUJvb3Q+ICIKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJCTI1NgotI2RlZmluZSBDRkdfTUFYQVJHUwkJCTE2Ci0jZGVmaW5lIENGR19QQlNJWkUJCQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkJIlUtQm9vdD4gIgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCTEKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkJRUJJX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkJKENGR19NRU1URVNUX1NUQVJUICsgMHg3MDAwMDApCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSB7IDExNTIwMCwgMzg0MDAsIDE5MjAwLCA5NjAwLCAyNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlFQklfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArIDB4NzAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFIHsgMTE1MjAwLCAzODQwMCwgMTkyMDAsIDk2MDAsIDI0MDAgfQogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2F0c3RrMTAwNi5oIGIvaW5jbHVkZS9jb25maWdzL2F0c3RrMTAwNi5oCmluZGV4IGZlN2E5OWIuLmM1MzQ1OTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hdHN0azEwMDYuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYXRzdGsxMDA2LmgKQEAgLTM4LDQwICszOCw0MCBAQAogICogVGltZXIgY2xvY2sgZnJlcXVlbmN5LiBXZSdyZSB1c2luZyB0aGUgQ1BVLWludGVybmFsIENPVU5UIHJlZ2lzdGVyCiAgKiBmb3IgdGhpcywgc28gdGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBDUFUgY29yZSBjbG9jayBmcmVxdWVuY3kKICAqLwotI2RlZmluZSBDRkdfSFoJCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJCTEwMDAKIAogLyoKICAqIFNldCB1cCB0aGUgUExMIHRvIHJ1biBhdCAxNDAgTUh6LCB0aGUgQ1BVIHRvIHJ1biBhdCB0aGUgUExMCiAgKiBmcmVxdWVuY3ksIHRoZSBIU0IgYW5kIFBCQiBhdCAxLzIsIGFuZCB0aGUgUEJBIHRvIHJ1biBhdCAxLzQgdGhlCiAgKiBQTEwgZnJlcXVlbmN5LgotICogKENGR19PU0MwX0haICogQ0ZHX1BMTDBfTVVMKSAvIENGR19QTEwwX0RJViA9IFBMTCBNSHoKKyAqIChDT05GSUdfU1lTX09TQzBfSFogKiBDT05GSUdfU1lTX1BMTDBfTVVMKSAvIENPTkZJR19TWVNfUExMMF9ESVYgPSBQTEwgTUh6CiAgKi8KICNkZWZpbmUgQ09ORklHX1BMTAkJCTEKLSNkZWZpbmUgQ0ZHX1BPV0VSX01BTkFHRVIJCTEKLSNkZWZpbmUgQ0ZHX09TQzBfSFoJCQkyMDAwMDAwMAotI2RlZmluZSBDRkdfUExMMF9ESVYJCQkxCi0jZGVmaW5lIENGR19QTEwwX01VTAkJCTcKLSNkZWZpbmUgQ0ZHX1BMTDBfU1VQUFJFU1NfQ1lDTEVTCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUE9XRVJfTUFOQUdFUgkJMQorI2RlZmluZSBDT05GSUdfU1lTX09TQzBfSFoJCQkyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfRElWCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfTVVMCQkJNworI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfU1VQUFJFU1NfQ1lDTEVTCTE2CiAvKgogICogU2V0IHRoZSBDUFUgcnVubmluZyBhdDoKLSAqIFBMTCAvICgyXkNGR19DTEtESVZfQ1BVKSA9IENQVSBNSHoKKyAqIFBMTCAvICgyXkNPTkZJR19TWVNfQ0xLRElWX0NQVSkgPSBDUFUgTUh6CiAgKi8KLSNkZWZpbmUgQ0ZHX0NMS0RJVl9DUFUJCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX0NQVQkJCTAKIC8qCiAgKiBTZXQgdGhlIEhTQiBydW5uaW5nIGF0OgotICogUExMIC8gKDJeQ0ZHX0NMS0RJVl9IU0IpID0gSFNCIE1IegorICogUExMIC8gKDJeQ09ORklHX1NZU19DTEtESVZfSFNCKSA9IEhTQiBNSHoKICAqLwotI2RlZmluZSBDRkdfQ0xLRElWX0hTQgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfSFNCCQkJMQogLyoKICAqIFNldCB0aGUgUEJBIHJ1bm5pbmcgYXQ6Ci0gKiBQTEwgLyAoMl5DRkdfQ0xLRElWX1BCQSkgPSBQQkEgTUh6CisgKiBQTEwgLyAoMl5DT05GSUdfU1lTX0NMS0RJVl9QQkEpID0gUEJBIE1IegogICovCi0jZGVmaW5lIENGR19DTEtESVZfUEJBCQkJMgorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9QQkEJCQkyCiAvKgogICogU2V0IHRoZSBQQkIgcnVubmluZyBhdDoKLSAqIFBMTCAvICgyXkNGR19DTEtESVZfUEJCKSA9IFBCQiBNSHoKKyAqIFBMTCAvICgyXkNPTkZJR19TWVNfQ0xLRElWX1BCQikgPSBQQkIgTUh6CiAgKi8KLSNkZWZpbmUgQ0ZHX0NMS0RJVl9QQkIJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX1BCQgkJCTEKIAogLyoKICAqIFRoZSBQTExPUFQgcmVnaXN0ZXIgY29udHJvbHMgdGhlIFBMTCBsaWtlIHRoaXM6CkBAIC04MCw3ICs4MCw3IEBACiAgKgogICogV2Ugd2FudCBpY3A9MSAoZGVmYXVsdCkgYW5kIGl2Y289MCAoODAtMTYwIE1Ieikgb3IgaXZjbz0yICgxNTAtMjQwTUh6KS4KICAqLwotI2RlZmluZSBDRkdfUExMMF9PUFQJCQkweDA0CisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9PUFQJCQkweDA0CiAKICN1bmRlZiBDT05GSUdfVVNBUlQwCiAjZGVmaW5lIENPTkZJR19VU0FSVDEJCQkxCkBAIC0xNTAsNTUgKzE1MCw1NSBAQAogI2RlZmluZSBDT05GSUdfQVRNRUxfVVNBUlQJCTEKICNkZWZpbmUgQ09ORklHX01BQ0IJCQkxCiAjZGVmaW5lIENPTkZJR19QSU8yCQkJMQotI2RlZmluZSBDRkdfTlJfUElPUwkJCTUKLSNkZWZpbmUgQ0ZHX0hTRFJBTUMJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlJfUElPUwkJCTUKKyNkZWZpbmUgQ09ORklHX1NZU19IU0RSQU1DCQkJMQogI2RlZmluZSBDT05GSUdfTU1DCQkJMQogI2RlZmluZSBDT05GSUdfQVRNRUxfTUNJCQkxCiAKLSNkZWZpbmUgQ0ZHX0RDQUNIRV9MSU5FU1oJCTMyCi0jZGVmaW5lIENGR19JQ0FDSEVfTElORVNaCQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9MSU5FU1oJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFX0xJTkVTWgkJMzIKIAogI2RlZmluZSBDT05GSUdfTlJfRFJBTV9CQU5LUwkJMQogCiAvKiBFeHRlcm5hbCBmbGFzaCBvbiBTVEsxMDAwICovCiAjaWYgMAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCTEKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJCTB4ODAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCQkxMzUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCQkweDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkxMzUKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCQlDRkdfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkJQ09ORklHX1NZU19GTEFTSF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX0lOVFJBTV9CQVNFCQkJSU5URVJOQUxfU1JBTV9CQVNFCi0jZGVmaW5lIENGR19JTlRSQU1fU0laRQkJCUlOVEVSTkFMX1NSQU1fU0laRQotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJCUVCSV9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUkFNX0JBU0UJCQlJTlRFUk5BTF9TUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSQU1fU0laRQkJCUlOVEVSTkFMX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCQlFQklfU0RSQU1fQkFTRQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJCTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJNjU1MzYKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfQUREUgkJKENGR19JTlRSQU1fQkFTRSArIENGR19JTlRSQU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX0FERFIJCShDT05GSUdfU1lTX0lOVFJBTV9CQVNFICsgQ09ORklHX1NZU19JTlRSQU1fU0laRSkKIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJCSgyNTYqMTAyNCkKLSNkZWZpbmUgQ0ZHX0RNQV9BTExPQ19MRU4JCSgxNjM4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkJKDI1NioxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0RNQV9BTExPQ19MRU4JCSgxNjM4NCkKIAogLyogQWxsb3cgNE1CIGZvciB0aGUga2VybmVsIHJ1bi10aW1lIGltYWdlICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCQkoRUJJX1NEUkFNX0JBU0UgKyAweDAwNDAwMDAwKQotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JCSgxNiAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkJKEVCSV9TRFJBTV9CQVNFICsgMHgwMDQwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgkJKDE2ICogMTAyNCkKIAogLyogT3RoZXIgY29uZmlndXJhdGlvbiBzZXR0aW5ncyB0aGF0IHNob3VsZG4ndCBoYXZlIHRvIGNoYW5nZSBhbGwgdGhhdCBvZnRlbiAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkJIlUtQm9vdD4gIgotI2RlZmluZSBDRkdfQ0JTSVpFCQkJMjU2Ci0jZGVmaW5lIENGR19NQVhBUkdTCQkJMTYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCQkiVS1Cb290PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQlFQklfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCQkoQ0ZHX01FTVRFU1RfU1RBUlQgKyAweDNmMDAwMDApCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSB7IDExNTIwMCwgMzg0MDAsIDE5MjAwLCA5NjAwLCAyNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlFQklfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArIDB4M2YwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSB7IDExNTIwMCwgMzg0MDAsIDE5MjAwLCA5NjAwLCAyNDAwIH0KIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9iYW1ib28uaCBiL2luY2x1ZGUvY29uZmlncy9iYW1ib28uaAppbmRleCA3NzNiMTVhLi5mM2ZmZTFjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYmFtYm9vLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2JhbWJvby5oCkBAIC01NSwzNyArNTUsMzcgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkgICAgICAgIDB4ZmZmMDAwMDAJICAgIC8qIHN0YXJ0IG9mIEZMQVNICSovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRQkgICAgICAgIDB4YTAwMDAwMDAJICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5Ki8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMSAgICAgICAgQ0ZHX1BDSV9NRU1CQVNFICArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMiAgICAgICAgQ0ZHX1BDSV9NRU1CQVNFMSArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMyAgICAgICAgQ0ZHX1BDSV9NRU1CQVNFMiArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCSAgICAgICAgMHhmZmYwMDAwMAkgICAgLyogc3RhcnQgb2YgRkxBU0gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkgICAgICAgIDB4YTAwMDAwMDAJICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEgICAgICAgIENPTkZJR19TWVNfUENJX01FTUJBU0UgICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiAgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UzICAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiArIDB4MTAwMDAwMDAKIAogLypEb24ndCBjaGFuZ2UgZWl0aGVyIG9mIHRoZXNlKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRSAgICAgMHhlZjYwMDAwMAkgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMqLwotI2RlZmluZSBDRkdfUENJX0JBU0UJICAgICAgICAweGUwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBQQ0kgcmVncyovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICAgICAweGVmNjAwMDAwCSAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscyovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJICAgICAgICAweGUwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBQQ0kgcmVncyovCiAvKkRvbid0IGNoYW5nZSBlaXRoZXIgb2YgdGhlc2UqLwogCi0jZGVmaW5lIENGR19VU0JfREVWSUNFICAgICAgICAgIDB4NTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUiAgICAgMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfQk9PVF9CQVNFX0FERFIgICAgICAweGYwMDAwMDAwCi0jZGVmaW5lIENGR19OQU5EX0FERFIgICAgICAgICAgIDB4OTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX05BTkQyX0FERFIgICAgICAgICAgMHg5NDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9ERVZJQ0UgICAgICAgICAgMHg1MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSICAgICAgMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUREUiAgICAgICAgICAgMHg5MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkQyX0FERFIgICAgICAgICAgMHg5NDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIFJBTSAmIHN0YWNrIHBvaW50ZXIgKHBsYWNlZCBpbiBTRFJBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9EQ0FDSEUJMQkJLyogZC1jYWNoZSBhcyBpbml0IHJhbQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDcwMDAwMDAwCS8qIERDYWNoZSAgICAgICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0RDQUNIRQkxCQkvKiBkLWNhY2hlIGFzIGluaXQgcmFtCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDcwMDAwMDAwCS8qIERDYWNoZSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkoNCA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NgkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIFBvcnQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19FWFRfU0VSSUFMX0NMT0NLCTExMDU5MjAwIC8qIHVzZSBleHRlcm5hbCAxMS4wNTlNSHogY2xrCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkxMTA1OTIwMCAvKiB1c2UgZXh0ZXJuYWwgMTEuMDU5TUh6IGNsawkqLwogLyogZGVmaW5lIHRoaXMgaWYgeW91IHdhbnQgY29uc29sZSBvbiBVQVJUMSAqLwogI3VuZGVmIENPTkZJR19VQVJUMV9DT05TT0xFCiAKQEAgLTk2LDcgKzk2LDcgQEAKICAqIFRoZSBEUzE1NTggY29kZSBhc3N1bWVzIHRoaXMgY29uZGl0aW9uCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJICAgICAgICAoMHgyMDAwIC0gMHgxMCkgLyogTlZSQU0gc2l6ZSg4ayktIFJUQyByZWdzICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJICAgICAgICAoMHgyMDAwIC0gMHgxMCkgLyogTlZSQU0gc2l6ZSg4ayktIFJUQyByZWdzICAgICAqLwogI2RlZmluZSBDT05GSUdfUlRDX0RTMTU1NgkxCQkgICAgICAgICAvKiBEUzE1NTYgUlRDCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTIsMjMgKzExMiwyMyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkzCS8qIG51bWJlciBvZiBiYW5rcwkJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogc2VjdG9ycyBwZXIgZGV2aWNlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMwkvKiBudW1iZXIgb2YgYmFua3MJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBzZWN0b3JzIHBlciBkZXZpY2UJCQkqLwogCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwICAgICAgICAgMHg1NTUKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxICAgICAgICAgMHgyYWEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAgICAgdW5zaWduZWQgY2hhcgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwICAgICAgICAgMHg1NTUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMSAgICAgICAgIDB4MmFhCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICAgICB1bnNpZ25lZCBjaGFyCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIXzJORF8xNkJJVF9ERVYgMQkvKiBiYW1ib28gaGFzIDggYW5kIDE2Yml0IGRldmljZQkqLwotI2RlZmluZSBDRkdfRkxBU0hfMk5EX0FERFIgICAgICAweDg3ODAwMDAwICAvKiBiYW1ib28gaGFzIDggYW5kIDE2Yml0IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIXzJORF8xNkJJVF9ERVYgMQkvKiBiYW1ib28gaGFzIDggYW5kIDE2Yml0IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIXzJORF9BRERSICAgICAgMHg4NzgwMDAwMCAgLyogYmFtYm9vIGhhcyA4IGFuZCAxNmJpdCBkZXZpY2UJKi8KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKCgtQ0ZHX01PTklUT1JfTEVOKS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoKC1DT05GSUdfU1lTX01PTklUT1JfTEVOKS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDIwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xNTQsNjEgKzE1NCw2MSBAQAogICogc2V0IHVwLiBXaGlsZSBzdGlsbCBydW5uaW5nIGZyb20gY2FjaGUsIEkgZXhwZXJpZW5jZWQgcHJvYmxlbXMgYWNjZXNzaW5nCiAgKiB0aGUgTkFORCBjb250cm9sbGVyLglzciAtIDIwMDYtMDgtMjUKICAqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9TUkMJMHhmZmZmZjAwMAkvKiBTUEwgbG9jYXRpb24JCQkqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9TSVpFCSg0IDw8IDEwKQkvKiBTUEwgc2l6ZQkJCSovCi0jZGVmaW5lIENGR19OQU5EX0JPT1RfU1BMX0RTVAkweDAwODAwMDAwCS8qIENvcHkgU1BMIGhlcmUJCSovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9EU1QJMHgwMTAwMDAwMAkvKiBMb2FkIE5VQiB0byB0aGlzIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX1NUQVJUCUNGR19OQU5EX1VfQk9PVF9EU1QgLyogU3RhcnQgTlVCIGZyb20gdGhpcyBhZGRyCSovCi0jZGVmaW5lIENGR19OQU5EX0JPT1RfU1BMX0RFTFRBCShDRkdfTkFORF9CT09UX1NQTF9TUkMgLSBDRkdfTkFORF9CT09UX1NQTF9EU1QpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkMJMHhmZmZmZjAwMAkvKiBTUEwgbG9jYXRpb24JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfU0laRQkoNCA8PCAxMCkJLyogU1BMIHNpemUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfRFNUCTB4MDA4MDAwMDAJLyogQ29weSBTUEwgaGVyZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9EU1QJMHgwMTAwMDAwMAkvKiBMb2FkIE5VQiB0byB0aGlzIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9TVEFSVAlDT05GSUdfU1lTX05BTkRfVV9CT09UX0RTVCAvKiBTdGFydCBOVUIgZnJvbSB0aGlzIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX0RFTFRBCShDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfU1JDIC0gQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX0RTVCkKIAogLyoKICAqIERlZmluZSB0aGUgcGFydGl0aW9uaW5nIG9mIHRoZSBOQU5EIGNoaXAgKG9ubHkgUkFNIFUtQm9vdCBpcyBuZWVkZWQgaGVyZSkKICAqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfT0ZGUwkoMTYgPDwgMTApCS8qIE9mZnNldCB0byBSQU0gVS1Cb290IGltYWdlCSovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9TSVpFCSgzODQgPDwgMTApCS8qIFNpemUgb2YgUkFNIFUtQm9vdCBpbWFnZQkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX09GRlMJKDE2IDw8IDEwKQkvKiBPZmZzZXQgdG8gUkFNIFUtQm9vdCBpbWFnZQkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NJWkUJKDM4NCA8PCAxMCkJLyogU2l6ZSBvZiBSQU0gVS1Cb290IGltYWdlCSovCiAKIC8qCiAgKiBOb3cgdGhlIE5BTkQgY2hpcCBoYXMgdG8gYmUgZGVmaW5lZCAobm8gYXV0b2RldGVjdGlvbiB1c2VkISkKICAqLwotI2RlZmluZSBDRkdfTkFORF9QQUdFX1NJWkUJNTEyCQkvKiBOQU5EIGNoaXAgcGFnZSBzaXplCQkqLwotI2RlZmluZSBDRkdfTkFORF9CTE9DS19TSVpFCSgxNiA8PCAxMCkJLyogTkFORCBjaGlwIGJsb2NrIHNpemUJCSovCi0jZGVmaW5lIENGR19OQU5EX1BBR0VfQ09VTlQJMzIJCS8qIE5BTkQgY2hpcCBwYWdlIGNvdW50CQkqLwotI2RlZmluZSBDRkdfTkFORF9CQURfQkxPQ0tfUE9TCTUJCS8qIExvY2F0aW9uIG9mIGJhZCBibG9jayBtYXJrZXIJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfNF9BRERSX0NZQ0xFCTEJCS8qIEZvdXJ0aCBhZGRyIHVzZWQgKD4zMk1CKQkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFCTUxMgkJLyogTkFORCBjaGlwIHBhZ2Ugc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JMT0NLX1NJWkUJKDE2IDw8IDEwKQkvKiBOQU5EIGNoaXAgYmxvY2sgc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1BBR0VfQ09VTlQJMzIJCS8qIE5BTkQgY2hpcCBwYWdlIGNvdW50CQkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFEX0JMT0NLX1BPUwk1CQkvKiBMb2NhdGlvbiBvZiBiYWQgYmxvY2sgbWFya2VyCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF80X0FERFJfQ1lDTEUJMQkJLyogRm91cnRoIGFkZHIgdXNlZCAoPjMyTUIpCSovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDU0laRQkyNTYKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDQllURVMJMwotI2RlZmluZSBDRkdfTkFORF9FQ0NTVEVQUwkoQ0ZHX05BTkRfUEFHRV9TSVpFIC8gQ0ZHX05BTkRfRUNDU0laRSkKLSNkZWZpbmUgQ0ZHX05BTkRfT09CU0laRQkxNgotI2RlZmluZSBDRkdfTkFORF9FQ0NUT1RBTAkoQ0ZHX05BTkRfRUNDQllURVMgKiBDRkdfTkFORF9FQ0NTVEVQUykKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDUE9TCQl7MCwgMSwgMiwgMywgNiwgN30KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1NJWkUJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NCWVRFUwkzCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NTVEVQUwkoQ09ORklHX1NZU19OQU5EX1BBR0VfU0laRSAvIENPTkZJR19TWVNfTkFORF9FQ0NTSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfT09CU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDVE9UQUwJKENPTkZJR19TWVNfTkFORF9FQ0NCWVRFUyAqIENPTkZJR19TWVNfTkFORF9FQ0NTVEVQUykKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1BPUwkJezAsIDEsIDIsIDMsIDYsIDd9CiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX05BTkQKIC8qCiAgKiBGb3IgTkFORCBib290aW5nIHRoZSBlbnZpcm9ubWVudCBpcyBlbWJlZGRlZCBpbiB0aGUgVS1Cb290IGltYWdlLiBQbGVhc2UgdGFrZQogICogbG9vayBhdCB0aGUgZmlsZSBib2FyZC9hbWNjL3NlcXVvaWEvdS1ib290LW5hbmQubGRzIGZvciBkZXRhaWxzLgogICovCi0jZGVmaW5lIENPTkZJR19FTlZfU0laRQkJQ0ZHX05BTkRfQkxPQ0tfU0laRQotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENGR19OQU5EX1VfQk9PVF9PRkZTICsgQ09ORklHX0VOVl9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCUNPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ09ORklHX1NZU19OQU5EX1VfQk9PVF9PRkZTICsgQ09ORklHX0VOVl9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUICsgQ09ORklHX0VOVl9TSVpFKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5BTkQgRkxBU0gKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMgotI2RlZmluZSBOQU5EX01BWF9DSElQUwkJQ0ZHX01BWF9OQU5EX0RFVklDRQotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkoQ0ZHX05BTkRfQUREUiArIENGR19OQU5EX0NTKQotI2RlZmluZSBDRkdfTkFORF9CQVNFX0xJU1QJeyBDRkdfTkFORF9CQVNFLCBDRkdfTkFORF9BRERSICsgMiB9Ci0jZGVmaW5lIENGR19OQU5EX1NFTEVDVF9ERVZJQ0UgIDEJLyogbmFuZCBkcml2ZXIgc3VwcG9ydHMgbXV0aXBsLiBjaGlwcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkyCisjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQlDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJKENPTkZJR19TWVNfTkFORF9BRERSICsgQ09ORklHX1NZU19OQU5EX0NTKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXsgQ09ORklHX1NZU19OQU5EX0JBU0UsIENPTkZJR19TWVNfTkFORF9BRERSICsgMiB9CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9TRUxFQ1RfREVWSUNFICAxCS8qIG5hbmQgZHJpdmVyIHN1cHBvcnRzIG11dGlwbC4gY2hpcHMJKi8KIAogI2lmICFkZWZpbmVkKENPTkZJR19OQU5EX1VfQk9PVCkgJiYgIWRlZmluZWQoQ09ORklHX05BTkRfU1BMKQotI2RlZmluZSBDRkdfTkFORF9DUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ1MJCTEKICNlbHNlCi0jZGVmaW5lIENGR19OQU5EX0NTCQkwCQkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeAkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ1MJCTAJCS8qIE5BTkQgY2hpcCBjb25uZWN0ZWQgdG8gQ1N4CSovCiAvKiBNZW1vcnkgQmFuayAwIChOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwMTgwMDNjMAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkoQ0ZHX05BTkRfQUREUiB8IDB4MWMwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDAxODAwM2MwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkoQ09ORklHX1NZU19OQU5EX0FERFIgfCAweDFjMDAwKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIxNiwyMSArMjE2LDIxIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAjZGVmaW5lIENPTkZJR19TUERfRUVQUk9NICAgICAgICAgICAgICAgLyogVXNlIFNQRCBFRVBST00gZm9yIHNldHVwICAgICAgICAgICAgICovCiAjdW5kZWYgQ09ORklHX0REUl9FQ0MJCQkvKiBkb24ndCB1c2UgRUNDCQkJKi8KLSNkZWZpbmUgQ0ZHX1NJTVVMQVRFX1NQRF9FRVBST00JMHhmZgkvKiBzaW11bGF0ZSBzcGQgZWVwcm9tIG9uIHRoaXMgYWRkcmVzcwkqLwotI2RlZmluZSBTUERfRUVQUk9NX0FERFJFU1MJe0NGR19TSU1VTEFURV9TUERfRUVQUk9NLCAweDUwLCAweDUxfQotI2RlZmluZSBDRkdfTUJZVEVTX1NEUkFNCSg2NCkJLyogNjRNQiBmaXhlZCBzaXplIGZvciBlYXJseS1zZHJhbS1pbml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0lNVUxBVEVfU1BEX0VFUFJPTQkweGZmCS8qIHNpbXVsYXRlIHNwZCBlZXByb20gb24gdGhpcyBhZGRyZXNzCSovCisjZGVmaW5lIFNQRF9FRVBST01fQUREUkVTUwl7Q09ORklHX1NZU19TSU1VTEFURV9TUERfRUVQUk9NLCAweDUwLCAweDUxfQorI2RlZmluZSBDT05GSUdfU1lTX01CWVRFU19TRFJBTQkoNjQpCS8qIDY0TUIgZml4ZWQgc2l6ZSBmb3IgZWFybHktc2RyYW0taW5pdCAqLwogI2RlZmluZSBDT05GSUdfUFJPR19TRFJBTV9UTEIKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJKDB4YTg+PjEpCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkoMHhhOD4+MSkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9FRVBST00KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMAkgICAgLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzICovCkBAIC0yOTcsMTMgKzI5NywxMyBAQAogI2RlZmluZSBDT05GSUdfUENJCQkJLyogaW5jbHVkZSBwY2kgc3VwcG9ydAkgICAgICAgICovCiAjdW5kZWYgIENPTkZJR19QQ0lfUE5QCQkJLyogZG8gKG5vdCkgcGNpIHBsdWctYW5kLXBsYXkgICAqLwogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVyAgICAgICAgICAgIC8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHQkFTRSAgICAgICAgMHg4MDAwMDAwMCAvKiBQQ0lhZGRyIG1hcHBlZCB0byBDRkdfUENJX01FTUJBU0UqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRSAgICAgICAgMHg4MDAwMDAwMCAvKiBQQ0lhZGRyIG1hcHBlZCB0byBDT05GSUdfU1lTX1BDSV9NRU1CQVNFKi8KIAogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQKLSNkZWZpbmUgQ0ZHX1BDSV9NQVNURVJfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVAogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0lEICAgICAgIDB4Y2FmZQkvKiBXaGF0ZXZlciAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0lEICAgICAgIDB4Y2FmZQkvKiBXaGF0ZXZlciAqLwogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2JhcmNvLmggYi9pbmNsdWRlL2NvbmZpZ3MvYmFyY28uaAppbmRleCA5YWZiMTBlLi5lMDBmODRhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYmFyY28uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYmFyY28uaApAQCAtMTAyLDE0ICsxMDIsMTQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkxCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCTEJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTI4LDU4ICsxMjgsNTggQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUJMHgwMjAwMDAwMAogCiAjZGVmaW5lIENPTkZJR19MT0dCVUZGRVIKICNpZmRlZglDT05GSUdfTE9HQlVGRkVSCi0jZGVmaW5lIENGR19TVERPVVRfQUREUgkJMHgxRkZDMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1RET1VUX0FERFIJCTB4MUZGQzAwMAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NURE9VVF9BRERSCQkweDJCOTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NURE9VVF9BRERSCQkweDJCOTAwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAogCiAjaWYgZGVmaW5lZCAoVVNFX0RJTkszMikKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDAwMDMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgwMDA5MDAwMAotI2RlZmluZSBDRkdfUkFNQk9PVAkJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NiAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweDAwMDkwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAjZWxzZQotI3VuZGVmCUNGR19SQU1CT09UCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI3VuZGVmCUNPTkZJR19TWVNfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDAwMDMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKICNlbmRpZgogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRjAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkoOCAqIDEwMjQgKiAxMDI0KQkvKiBVbml0eSBoYXMgb25ib2FyZCAxTUJ5dGUgZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJKDggKiAxMDI0ICogMTAyNCkJLyogVW5pdHkgaGFzIG9uYm9hcmQgMU1CeXRlIGZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgwMDAwNDdBNAkvKiBPZmZzZXQgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgwMDAwMjAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogLyogI2RlZmluZSBFTlZfQ1JDCQkweDhCRjZGMjRCCVhYWCAtIEZJWE1FOiBnZXRzIGRlZmluZWQgYXV0b21hdGljYWxseSAqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwNDAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA0MDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCiAKLSNkZWZpbmUgQ0ZHX0VVTUJfQUREUgkJMHhGREYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VVTUJfQUREUgkJMHhGREYwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9SQU5HRV9CQVNFCTB4RkZDMDAwMDAJLyogZmxhc2ggbWVtb3J5IGFkZHJlc3MgcmFuZ2UJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JBTkdFX1NJWkUJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JBTkdFX0JBU0UJMHhGRkMwMDAwMAkvKiBmbGFzaCBtZW1vcnkgYWRkcmVzcyByYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JBTkdFX1NJWkUJMHgwMDQwMDAwMAogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHhGRkYwMDAwMAkvKiBzYW5kcG9pbnQgZmxhc2gJCSovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkweEZGMDAwMDAwCS8qIFBNQyBvbmJvYXJkIGZsYXNoCQkqLwogCkBAIC0xOTIsOCArMTkyLDggQEAKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJCS8qIFRvIGVuYWJsZSBJMkMgc3VwcG9ydAkqLwogI3VuZGVmICBDT05GSUdfU09GVF9JMkMJCQkJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKICNpZmRlZiBDT05GSUdfU09GVF9JMkMKICNlcnJvciAiU29mdCBJMkMgaXMgbm90IGNvbmZpZ3VyZWQgcHJvcGVybHkuICBQbGVhc2UgcmV2aWV3ISIKQEAgLTIwOCwxNCArMjA4LDE0IEBACiAjZGVmaW5lIEkyQ19ERUxBWQkJdWRlbGF5KDUpCS8qIDEvNCBJMkMgY2xvY2sgZHVyYXRpb24gKi8KICNlbmRpZiAvKiBDT05GSUdfU09GVF9JMkMgKi8KIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTcJCS8qIEVFUFJPTSBJUzI0QzAyCQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDU3CQkvKiBFRVBST00gSVMyNEMwMgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTEJCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1MJCXsgRkxBU0hfQkFTRTBfUFJFTElNICwgRkxBU0hfQkFTRTFfUFJFTElNIH0KLSNkZWZpbmUgQ0ZHX0RCVVNfU0laRTIJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1MJCXsgRkxBU0hfQkFTRTBfUFJFTElNICwgRkxBU0hfQkFTRTFfUFJFTElNIH0KKyNkZWZpbmUgQ09ORklHX1NZU19EQlVTX1NJWkUyCQkxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCkBAIC0yMzMsMjQgKzIzMywyNCBAQAogCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEgIDMzMzMzMzMzCS8qIGV4dGVybmFsIGZyZXF1ZW5jeSB0byBwbGwgKi8KIAotI2RlZmluZSBDRkdfUk9NTkFMCQkweDBGCS8qcm9tL2ZsYXNoIG5leHQgYWNjZXNzIHRpbWUJCSovCi0jZGVmaW5lIENGR19ST01GQUwJCTB4MUUJLypyb20vZmxhc2ggYWNjZXNzIHRpbWUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTAkJMHgwRgkvKnJvbS9mbGFzaCBuZXh0IGFjY2VzcyB0aW1lCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTUZBTAkJMHgxRQkvKnJvbS9mbGFzaCBhY2Nlc3MgdGltZQkJCSovCiAKLSNkZWZpbmUgQ0ZHX1JFRklOVAkweDhGCS8qIG5vIG9mIGNsb2NrIGN5Y2xlcyBiZXR3ZWVuIENCUiByZWZyZXNoIGN5Y2xlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVAkweDhGCS8qIG5vIG9mIGNsb2NrIGN5Y2xlcyBiZXR3ZWVuIENCUiByZWZyZXNoIGN5Y2xlcyAqLwogCiAvKiB0aGUgZm9sbG93aW5nIGFyZSBmb3IgU0RSQU0gb25seSovCi0jZGVmaW5lIENGR19CU1RPUFJFCTB4MjVDCS8qIEJ1cnN0IFRvIFByZWNoYXJnZSwgc2V0cyBvcGVuIHBhZ2UgaW50ZXJ2YWwgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQwkJOAkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLwotI2RlZmluZSBDRkdfUkRMQVQJCTQJLyogZGF0YSBsYXRlbmN5IGZyb20gcmVhZCBjb21tYW5kCSovCi0jZGVmaW5lIENGR19QUkVUT0FDVAkJMwkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCQk1CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUT1JXCQkyCS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfQ0FTX0xBVAkzCS8qIFNETU9ERSBDQVMgbGF0ZW5jeQkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CU1RPUFJFCTB4MjVDCS8qIEJ1cnN0IFRvIFByZWNoYXJnZSwgc2V0cyBvcGVuIHBhZ2UgaW50ZXJ2YWwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUZSRUMJCTgJLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRExBVAkJNAkvKiBkYXRhIGxhdGVuY3kgZnJvbSByZWFkIGNvbW1hbmQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVUT0FDVAkJMwkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkJNQkvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RPUlcJCTIJLyogQWN0aXZhdGUgdG8gUi9XCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVAkzCS8qIFNETU9ERSBDQVMgbGF0ZW5jeQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX1dSQVAJCTAJLyogU0RNT0RFIHdyYXAgdHlwZQkJCSovCiAKLSNkZWZpbmUgQ0ZHX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAgIDEKLSNkZWZpbmUgQ0ZHX0VYVFJPTSAwCi0jZGVmaW5lIENGR19SRUdESU1NIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgICAxCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUk9NIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRUdESU1NIDAKIAogCiAvKiBtZW1vcnkgYmFuayBzZXR0aW5ncyovCkBAIC0yNjAsOTUgKzI2MCw5NSBAQAogICogYml0cyB3aWxsIGJlIHNldCB0byAweDAwMDAwIGZvciBhIHN0YXJ0IGFkZHJlc3MsIG9yIDB4ZmZmZmYgZm9yIGFuCiAgKiBlbmQgYWRkcmVzcwogICovCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5ECQkweDAxRkZGRkZGCi0jZGVmaW5lIENGR19CQU5LMF9FTkFCTEUJMQotI2RlZmluZSBDRkdfQkFOSzFfU1RBUlQJCTB4MDIwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksxX0VORAkJMHgwMmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzFfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTksyX1NUQVJUCQkweDAzZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkQJCTB4MDNmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksyX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LM19TVEFSVAkJMHgwNDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzNfRU5ECQkweDA0ZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LM19FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzRfU1RBUlQJCTB4MDUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VORAkJMHgwNUZGRkZGRgotI2RlZmluZSBDRkdfQkFOSzRfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks1X1NUQVJUCQkweDA2MDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkQJCTB4MDZGRkZGRkYKLSNkZWZpbmUgQ0ZHX0JBTks1X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNl9TVEFSVAkJMHgwNzAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5ECQkweDA3RkZGRkZGCi0jZGVmaW5lIENGR19CQU5LNl9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzdfU1RBUlQJCTB4MDgwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VORAkJMHgwOEZGRkZGRgotI2RlZmluZSBDRkdfQkFOSzdfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VORAkJMHgwMUZGRkZGRgorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VOQUJMRQkxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfU1RBUlQJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkQJCTB4MDJmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX1NUQVJUCQkweDAzZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5ECQkweDAzZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19TVEFSVAkJMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VORAkJMHgwNGZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfU1RBUlQJCTB4MDUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkQJCTB4MDVGRkZGRkYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X1NUQVJUCQkweDA2MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5ECQkweDA2RkZGRkZGCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9TVEFSVAkJMHgwNzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VORAkJMHgwN0ZGRkZGRgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfU1RBUlQJCTB4MDgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkQJCTB4MDhGRkZGRkYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkFCTEUJMAogLyoKICAqIE1lbW9yeSBiYW5rIGVuYWJsZSBiaXRtYXNrLCBzcGVjaWZ5aW5nIHdoaWNoIG9mIHRoZSBiYW5rcyBkZWZpbmVkIGFib3ZlCiAgYXJlIGFjdHVhbGx5IHByZXNlbnQuIE1TQiBpcyBmb3IgYmFuayAjNywgTFNCIGlzIGZvciBiYW5rICMwLgogICovCi0jZGVmaW5lIENGR19CQU5LX0VOQUJMRQkJMHgwMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTktfRU5BQkxFCQkweDAxCiAKLSNkZWZpbmUgQ0ZHX09EQ1IJCTB4ZmYJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzLAkqLworI2RlZmluZSBDT05GSUdfU1lTX09EQ1IJCTB4ZmYJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzLAkqLwogCQkJCQkvKiBzZWUgODI0MCBib29rIGZvciBiaXQgZGVmaW5pdGlvbnMJKi8KLSNkZWZpbmUgQ0ZHX1BHTUFYCQkweDMyCS8qIGhvdyBsb25nIHRoZSA4MjQwIHJldGFpbnMgdGhlCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KIAkJCQkJLyogY3VycmVudGx5IGFjY2Vzc2VkIHBhZ2UgaW4gbWVtb3J5CSovCiAJCQkJCS8qIHNlZSA4MjQwIGJvb2sgZm9yIGRldGFpbHMJCSovCiAKIC8qIFNEUkFNIDAgLSAyNTZNQiAqLwotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBzdGFjayBpbiBEQ0FDSEUgQCAxR0IgKG5vIGJhY2tpbmcgbWVtKSAqLwogI2lmIGRlZmluZWQoVVNFX0RJTkszMikKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoMHg0MDAwMDAwMCB8IEJBVExfUFBfMDAgKQotI2RlZmluZSBDRkdfSUJBVDFVCSgweDQwMDAwMDAwIHwgQkFUVV9CTF8xMjhLICkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKDB4NDAwMDAwMDAgfCBCQVRMX1BQXzAwICkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKDB4NDAwMDAwMDAgfCBCQVRVX0JMXzEyOEsgKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKICNlbmRpZgogCiAvKiBQQ0kgbWVtb3J5ICovCi0jZGVmaW5lIENGR19JQkFUMkwJKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUJKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCSgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIEZsYXNoLCBjb25maWcgYWRkcnMsIGV0YyAqLwotI2RlZmluZSBDRkdfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyMAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyMAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI0MCBDUFUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjQwIENQVQkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2JmNTMzLWV6a2l0LmggYi9pbmNsdWRlL2NvbmZpZ3MvYmY1MzMtZXpraXQuaAppbmRleCBiMzVlMzYyLi5lODcxNzM3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYmY1MzMtZXpraXQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYmY1MzMtZXpraXQuaApAQCAtMTAsOSArMTAsOSBAQAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTU3NjAwCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1Ci0jZGVmaW5lIENGR19BVVRPTE9BRAkJIm5vIgkvKnJhcnBiLCBib290cCBvciBkaGNwIGNvbW1hbmRzIHdpbGwgcGVyZm9ybSBvbmx5IGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVVRPTE9BRAkJIm5vIgkvKnJhcnBiLCBib290cCBvciBkaGNwIGNvbW1hbmRzIHdpbGwgcGVyZm9ybSBvbmx5IGEgKi8KIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJMQogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEKICNkZWZpbmUgQ09ORklHX0xPQURBRERSCQkweDAxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkidGZ0cCAkKGxvYWRhZGRyKSBsaW51eCIKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2lmIDAKICNkZWZpbmUJQ09ORklHX01JSQotI2RlZmluZSBDRkdfRElTQ09WRVJfUEhZCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfUlRDX0JGSU4JCTEKQEAgLTEwNSw0OCArMTA1LDQ4IEBACiAKICNkZWZpbmUgQ09ORklHX0JPT1RBUkdTICJyb290PS9kZXYvbXRkYmxvY2swIGlwPTE5Mi4xNjguMC4xNToxOTIuMTY4LjAuMjoxOTIuMTY4LjAuMToyNTUuMjU1LjI1NS4wOmV6a2l0OmV0aDA6b2ZmIGNvbnNvbGU9dHR5QkYwLDU3NjAwIgogCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJiZmluPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJiZmluPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoIChDT05GSUdfTUVNX1NJWkUgLSAxKSAqIDEwMjQgKiAxMDI0KQkvKiAxIC4uLiAzMSBNQiBpbiBEUkFNICovCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxMCBtcyB0aWNrcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFCShDT05GSUdfTUVNX1NJWkUgKiAxMDI0ICogMTAyNCkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MjAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoIChDT05GSUdfTUVNX1NJWkUgLSAxKSAqIDEwMjQgKiAxMDI0KQkvKiAxIC4uLiAzMSBNQiBpbiBEUkFNICovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDAxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEwIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUJKENPTkZJR19NRU1fU0laRSAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MjAwMDAwMDAKIAotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19NQVhfUkFNX1NJWkUgLSBDRkdfTU9OSVRPUl9MRU4pCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19CQVNFCQkoQ0ZHX01PTklUT1JfQkFTRSAtIENGR19NQUxMT0NfTEVOKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkweDQwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX0FERFIJKENGR19NQUxMT0NfQkFTRSAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDT05GSUdfU1RBQ0tCQVNFCShDRkdfR0JMX0RBVEFfQUREUiAgLSA0KQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSBDT05GSUdfU1lTX01PTklUT1JfTEVOKQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19CQVNFCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfU1lTX01BTExPQ19MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9BRERSCShDT05GSUdfU1lTX01BTExPQ19CQVNFIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1RBQ0tCQVNFCShDT05GSUdfU1lTX0dCTF9EQVRBX0FERFIgIC0gNCkKIAotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UJCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9CQVNFCQkweDIwMjAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDJfQkFTRQkJMHgyMDI4MDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTMJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTQwCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRQkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFCQkweDIwMjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gyX0JBU0UJCTB4MjAyODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMwkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTQwCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4MjAwMjAwMDAKICNkZWZpbmUJQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogCiAvKiBKRkZTIFBhcnRpdGlvbiBvZmZzZXQgc2V0ICAqLwotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfQkFOSwkwCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksJMAorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwkxCiAvKiA1MTJrIHJlc2VydmVkIGZvciB1LWJvb3QgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX1NFQ1RPUgkxMQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUgkxMQogCiAKIC8qCkBAIC0xNTcsNyArMTU3LDcgQEAKICNkZWZpbmUgUE9MTF9NT0RFCQkxCiAjZGVmaW5lIEZMQVNIX1RPVF9TRUNUCQk0MAogI2RlZmluZSBGTEFTSF9TSVpFCQkweDIyMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgyMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDIyMDAwMAogCiAvKgogICogSW5pdGlhbGl6ZSBQU0Q0MjU2IHJlZ2lzdGVycyBmb3IgdXNpbmcgSTJDCkBAIC0xOTcsMTAgKzE5NywxMCBAQAogCQkJCX0KICNkZWZpbmUgSTJDX0RFTEFZCXVkZWxheSg1KQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNTAwMDAKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHhGRQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUKIAotI2RlZmluZSBDRkdfQk9PVE1fTEVOCQkweDQwMDAwMDAJLyogTGFyZ2UgSW1hZ2UgTGVuZ3RoLCBzZXQgdG8gNjQgTWVnICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1fTEVOCQkweDQwMDAwMDAJLyogTGFyZ2UgSW1hZ2UgTGVuZ3RoLCBzZXQgdG8gNjQgTWVnICovCiAKICNkZWZpbmUgQ09ORklHX0VCSVVfU0RSUkNfVkFMICAweDM5OAogI2RlZmluZSBDT05GSUdfRUJJVV9TREdDVExfVkFMIDB4OTExMThkCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYmY1MzMtc3RhbXAuaCBiL2luY2x1ZGUvY29uZmlncy9iZjUzMy1zdGFtcC5oCmluZGV4IDZlMTM4YjguLjVhZDk5YTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9iZjUzMy1zdGFtcC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9iZjUzMy1zdGFtcC5oCkBAIC05MywxMyArOTMsMTMgQEAKICAqIEZsYXNoIHNldHRpbmdzCiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUgICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlcgkqLwotI2RlZmluZQlDRkdfRkxBU0hfQ0ZJX0FNRF9SRVNFVAorI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX0NGSV9BTURfUkVTRVQKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjaWYgKENPTkZJR19CRklOX0JPT1RfTU9ERSA9PSBCRklOX0JPT1RfU1BJX01BU1RFUikKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00JMQpAQCAtMTA4LDI5ICsxMDgsMjkgQEAKICNlbHNlCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4MjAwMDQwMDAKLSNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfRU5WX0FERFIgLSBDRkdfRkxBU0hfQkFTRSkKKyNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfRU5WX0FERFIgLSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCiAjZW5kaWYKIAogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KICNkZWZpbmUJRU5WX0lTX0VNQkVEREVECiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMzAwMDAJLyogVGltZW91dCBmb3IgQ2hpcCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRUJMT0NLX1RPVVQJNTAwMAkvKiBUaW1lb3V0IGZvciBCbG9jayBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMzAwMDAJLyogVGltZW91dCBmb3IgQ2hpcCBFcmFzZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VCTE9DS19UT1VUCTUwMDAJLyogVGltZW91dCBmb3IgQmxvY2sgRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCiAKIC8qIEpGRlMgUGFydGl0aW9uIG9mZnNldCBzZXQgICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LIDAKLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUyAgMQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksgMAorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUyAgMQogLyogNTEyayByZXNlcnZlZCBmb3IgdS1ib290ICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9TRUNUT1IJMTEKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9TRUNUT1IJMTEKIAogLyoKICAqIGZvbGxvd2luZyB0aW1lb3V0cyBzaGFsbCBiZSB1c2VkIG9uY2UgdGhlCiAgKiBGbGFzaCByZWFsIHByb3RlY3Rpb24gaXMgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfVU5MT0NLX1RPVVQJMTAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCiAKIC8qCiAgKiBTRFJBTSBzZXR0aW5ncyAmIG1lbW9yeSBtYXAKQEAgLTE0MCwyNyArMTQwLDI3IEBACiAjZGVmaW5lIENPTkZJR19NRU1fQUREX1dEVEggICAgIDExCS8qIDgsIDksIDEwLCAxMSAgICAqLwogI2RlZmluZSBDT05GSUdfTUVNX01UNDhMQzY0TTRBMkZCXzdFCTEKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwogCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUJKENPTkZJR19NRU1fU0laRSAqIDEwMjQgKjEwMjQpCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKENGR19NQVhfUkFNX1NJWkUgLSAweDgwMDAwIC0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUJKENPTkZJR19NRU1fU0laRSAqIDEwMjQgKjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCShDT05GSUdfU1lTX01BWF9SQU1fU0laRSAtIDB4ODAwMDAgLSAxKQogI2RlZmluZSBDT05GSUdfTE9BREFERFIJCTB4MDEwMDAwMDAKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQlDT05GSUdfTE9BREFERFIKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkgICAgIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkweDQwMDAJCS8qIFJlc2VydmUgMTZrIGZvciBHbG9iYWwgRGF0YSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCUNPTkZJR19MT0FEQUREUgorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApICAgICAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTB4NDAwMAkJLyogUmVzZXJ2ZSAxNmsgZm9yIEdsb2JhbCBEYXRhICAqLwogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgxMjgqMTAyNCkJLyogcmVndWxhciBzdGFjayAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJCShDRkdfTUFYX1JBTV9TSVpFIC0gMHg0MDAwMCkKLSNkZWZpbmUgQ0ZHX01BTExPQ19CQVNFCQkoQ0ZHX01PTklUT1JfQkFTRSAtIENGR19NQUxMT0NfTEVOKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfQUREUgkoQ0ZHX01BTExPQ19CQVNFIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENPTkZJR19TVEFDS0JBU0UJKENGR19HQkxfREFUQV9BRERSICAtIDQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQkoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSAweDQwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19CQVNFCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfU1lTX01BTExPQ19MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfQUREUgkoQ09ORklHX1NZU19NQUxMT0NfQkFTRSAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NUQUNLQkFTRQkoQ09ORklHX1NZU19HQkxfREFUQV9BRERSICAtIDQpCiAKIC8qIENoZWNrIHRvIG1ha2Ugc3VyZSBldmVyeXRoaW5nIGZpdHMgaW4gU0RSQU0gKi8KLSNpZiAoKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pID4gQ0ZHX01BWF9SQU1fU0laRSkKKyNpZiAoKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikgPiBDT05GSUdfU1lTX01BWF9SQU1fU0laRSkKIAkjZXJyb3IgTWVtb3J5IE1hcCBkb2VzIG5vdCBmaXQgaW50byBjb25maWd1cmF0aW9uCiAjZW5kaWYKIApAQCAtMTgyLDEwICsxODIsMTAgQEAKICAqIENvbW1hbmQgc2V0dGluZ3MKICAqLwogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJMQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkxCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQogCi0jZGVmaW5lIENGR19BVVRPTE9BRAkJIm5vIgkvKnJhcnBiLCBib290cCBvciBkaGNwIGNvbW1hbmRzIHdpbGwgcGVyZm9ybSBvbmx5IGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVVRPTE9BRAkJIm5vIgkvKnJhcnBiLCBib290cCBvciBkaGNwIGNvbW1hbmRzIHdpbGwgcGVyZm9ybSBvbmx5IGEgKi8KIAogLyogY29uZmlndXJhdGlvbiBsb29rdXAgZnJvbSB0aGUgQk9PVFAvREhDUCBzZXJ2ZXIsICovCiAvKiBidXQgbm90IHRyeSB0byBsb2FkIGFueSBpbWFnZSB1c2luZyBURlRQCSAgICAqLwpAQCAtMjU2LDE4ICsyNTYsMTggQEAKICAqLwogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJNTc2MDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKLSNkZWZpbmUJQ0ZHX1BST01QVAkJImJmaW4+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJImJmaW4+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEKIApAQCAtMjk5LDggKzI5OSw4IEBACiAJCQkJfQogI2RlZmluZSBJMkNfREVMQVkJCXVkZWxheSg1KQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNTAwMDAKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHhGRQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUKICNlbmRpZiAvKiBDT05GSUdfU09GVF9JMkMgKi8KIAogLyoKQEAgLTMyMSwyNiArMzIxLDI2IEBACiAjdW5kZWYgIENPTkZJR19JREVfTEVECQkJLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkICovCiAjdW5kZWYgIENPTkZJR19JREVfUkVTRVQJCS8qIG5vIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkICovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXNzZXMgKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzc2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkoQ09ORklHX1NZU19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkweDIwMjAwMDAwCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweDIwMjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDIwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08gKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MDAyMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMDA3CS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweDAwMjAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MDAyMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDAwNwkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgKi8KIAotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJMgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJCTIKICNlbmRpZgogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiAxbXMgdGltZSB0aWNrICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIDFtcyB0aW1lIHRpY2sgKi8KIAotI2RlZmluZSBDRkdfQk9PVE1fTEVOCQkweDQwMDAwMDAvKiBMYXJnZSBJbWFnZSBMZW5ndGgsIHNldCB0byA2NCBNZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTV9MRU4JCTB4NDAwMDAwMC8qIExhcmdlIEltYWdlIExlbmd0aCwgc2V0IHRvIDY0IE1lZyAqLwogCiAjZGVmaW5lIENPTkZJR19TSE9XX0JPT1RfUFJPR1JFU1MgMQkvKiBTaG93IGJvb3QgcHJvZ3Jlc3Mgb24gTEVEcyAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYmY1Mzctc3RhbXAuaCBiL2luY2x1ZGUvY29uZmlncy9iZjUzNy1zdGFtcC5oCmluZGV4IDAxZTE4NWEuLjFiNTRkM2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9iZjUzNy1zdGFtcC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9iZjUzNy1zdGFtcC5oCkBAIC03LDcgKzcsNyBAQAogCiAjaW5jbHVkZSA8YXNtL2JsYWNrZmluLWNvbmZpZy1wcmUuaD4KIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJMQogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk1NzYwMAogLyogU2V0IGRlZmF1bHQgc2VyaWFsIGNvbnNvbGUgZm9yIGJmNTM3ICovCkBAIC04MSw3ICs4MSw3IEBACiAgKiBjb25maWd1cmF0aW9uIGxvb2t1cCBmcm9tIHRoZSBCT09UUC9ESENQIHNlcnZlcgogICogYnV0IG5vdCB0cnkgdG8gbG9hZCBhbnkgaW1hZ2UgdXNpbmcgVEZUUAogICovCi0jZGVmaW5lIENGR19BVVRPTE9BRAkJCSJubyIKKyNkZWZpbmUgQ09ORklHX1NZU19BVVRPTE9BRAkJCSJubyIKIAogLyoKICAqIE5ldHdvcmsgU2V0dGluZ3MKQEAgLTEwMCwxOSArMTAwLDE5IEBACiAvKiAjZGVmaW5lIENPTkZJR19FVEhBRERSCTAyOjgwOmFkOjIwOjMxOmU4ICovCiAvKiBUaGlzIGlzIHRoZSByb3V0aW5lIHRoYXQgY29waWVzIHRoZSBNQUMgaW4gRmxhc2ggdG8gdGhlICdldGhhZGRyJyBzZXR0aW5nICovCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCTEKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CiAjZGVmaW5lIENPTkZJR19CT09UX1JFVFJZX1RJTUUJLTEJLyogRW5hYmxlIHRoaXMgaWYgYm9vdHJldHJ5IHJlcXVpcmVkLCBjdXJyZW50bHkgaXRzIGRpc2FibGVkICovCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIHJhbWJvb3QiCiAKICNpZiBkZWZpbmVkKENPTkZJR19QT1NUX1RFU1QpCiAvKiBQT1NUIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCSggQ0ZHX1BPU1RfTUVNT1JZIHwgXAotCQkJCSAgQ0ZHX1BPU1RfVUFSVAkgIHwgXAotCQkJCSAgQ0ZHX1BPU1RfRkxBU0ggIHwgXAotCQkJCSAgQ0ZHX1BPU1RfRVRIRVIgIHwgXAotCQkJCSAgQ0ZHX1BPU1RfTEVECSAgfCBcCi0JCQkJICBDRkdfUE9TVF9CVVRUT04pCisjZGVmaW5lIENPTkZJR19QT1NUCQkoIENPTkZJR19TWVNfUE9TVF9NRU1PUlkgfCBcCisJCQkJICBDT05GSUdfU1lTX1BPU1RfVUFSVAkgIHwgXAorCQkJCSAgQ09ORklHX1NZU19QT1NUX0ZMQVNIICB8IFwKKwkJCQkgIENPTkZJR19TWVNfUE9TVF9FVEhFUiAgfCBcCisJCQkJICBDT05GSUdfU1lTX1BPU1RfTEVECSAgfCBcCisJCQkJICBDT05GSUdfU1lTX1BPU1RfQlVUVE9OKQogI2Vsc2UKICN1bmRlZiBDT05GSUdfUE9TVAogI2VuZGlmCkBAIC0yMDEsMzggKzIwMSwzOCBAQAogCSJlcmFzZSAweDIwMDAwMDAwIDB4MjAwN0ZGRkY7Y3AuYiAweDEwMDAwMDAgMHgyMDAwMDAwMCAkKGZpbGVzaXplKVwwIglcCiAJIiIKIAotI2RlZmluZQlDRkdfUFJPTVBUCQkiYmZpbj4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiYmZpbj4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFCShDT05GSUdfTUVNX1NJWkUgKiAxMDI0KjEwMjQpCi0jZGVmaW5lCUNGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKCAoQ09ORklHX01FTV9TSVpFIC0gMSkgKiAxMDI0KjEwMjQpCS8qIDEgLi4uIDYzIE1CIGluIERSQU0gKi8KLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJQ09ORklHX0xPQURBRERSCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMTAgbXMgdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUJKENPTkZJR19NRU1fU0laRSAqIDEwMjQqMTAyNCkKKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCSggKENPTkZJR19NRU1fU0laRSAtIDEpICogMTAyNCoxMDI0KQkvKiAxIC4uLiA2MyBNQiBpbiBEUkFNICovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQlDT05GSUdfTE9BREFERFIJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMTAgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkvKiBzb21lIGhhdmUgNjcgc2VjdG9ycyAoTTI5VzMyMERCKSwgYnV0IG5ld2VyIGhhdmUgNzEgKE0yOVczMjBFQikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk3MQkvKiBzb21lIGhhdmUgNjcgc2VjdG9ycyAoTTI5VzMyMERCKSwgYnV0IG5ld2VyIGhhdmUgNzEgKE0yOVczMjBFQikgKi8KIAotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19NQVhfUkFNX1NJWkUgLSBDRkdfTU9OSVRPUl9MRU4pCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19CQVNFCQkoQ0ZHX01PTklUT1JfQkFTRSAtIENGR19NQUxMT0NfTEVOKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkweDQwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX0FERFIJKENGR19NQUxMT0NfQkFTRSAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDT05GSUdfU1RBQ0tCQVNFCShDRkdfR0JMX0RBVEFfQUREUiAgLSA0KQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSBDT05GSUdfU1lTX01PTklUT1JfTEVOKQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19CQVNFCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfU1lTX01BTExPQ19MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9BRERSCShDT05GSUdfU1lTX01BTExPQ19CQVNFIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1RBQ0tCQVNFCShDT05GSUdfU1lTX0dCTF9EQVRBX0FERFIgIC0gNCkKIAogI2lmIChDT05GSUdfQkZJTl9CT09UX01PREUgPT0gQkZJTl9CT09UX1NQSV9NQVNURVIpCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCTEKQEAgLTI0MSwxNyArMjQxLDE3IEBACiAjZWxzZQogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkweDIwMDA0MDAwCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ09ORklHX0VOVl9BRERSIC0gQ0ZHX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ09ORklHX0VOVl9BRERSIC0gQ09ORklHX1NZU19GTEFTSF9CQVNFKQogI2VuZGlmCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZGVmaW5lCUNPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBFTlZfSVNfRU1CRURERUQKIAogLyogSkZGUyBQYXJ0aXRpb24gb2Zmc2V0IHNldCAgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX0JBTksJMAotI2RlZmluZSBDRkdfSkZGUzJfTlVNX0JBTktTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCTAKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJMQogLyogNTEyayByZXNlcnZlZCBmb3IgdS1ib290ICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9TRUNUT1IJMTUKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9TRUNUT1IJMTUKIAogI2RlZmluZSBDT05GSUdfU1BJCiAKQEAgLTI2MywxNSArMjYzLDE1IEBACiAjZGVmaW5lIFBPTExfTU9ERQkJMQogI2RlZmluZSBGTEFTSF9UT1RfU0VDVAkJNzEKICNkZWZpbmUgRkxBU0hfU0laRQkJMHg0MDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4NDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHg0MDAwMDAKIAogLyoKICAqIEJvYXJkIE5BTkQgSW5mb21hdGlvbgogICovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfQUREUgkJMHgyMDIxMjAwMAotI2RlZmluZSBDRkdfTkFORF9CQVNFCQlDRkdfTkFORF9BRERSCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUREUgkJMHgyMDIxMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJQ09ORklHX1NZU19OQU5EX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQogI2RlZmluZSBTRUNUT1JTSVpFCQk1MTIKICNkZWZpbmUgQUREUl9DT0xVTU4JCTEKICNkZWZpbmUgQUREUl9QQUdFCQkyCkBAIC0zMDIsNyArMzAyLDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKIAotI2RlZmluZSBDRkdfQk9PVE1fTEVOCQkweDQwMDAwMDAJLyogTGFyZ2UgSW1hZ2UgTGVuZ3RoLCBzZXQgdG8gNjQgTWVnICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1fTEVOCQkweDQwMDAwMDAJLyogTGFyZ2UgSW1hZ2UgTGVuZ3RoLCBzZXQgdG8gNjQgTWVnICovCiAKIC8qCiAgKiBJMkMgc2V0dGluZ3MKQEAgLTM1Miw4ICszNTIsOCBAQAogI2RlZmluZSBJMkNfREVMQVkJCXVkZWxheSg1KQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk1MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhGRQogCiAvKiAweEZGLCAweDdCQjA3QkIwLCAweDIyNTQ3QkIwICovCiAvKiAjZGVmaW5lIEFNR0NUTFZBTAkJKEFNQkVOX1AwIHwgQU1CRU5fUDEgfCBBTUJFTl9QMiB8IEFNQ0tFTikKQEAgLTM3Nyw4ICszNzcsOCBAQAogI3VuZGVmICBDT05GSUdfSURFX0xFRAkJLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkICovCiAjdW5kZWYgIENPTkZJR19JREVfUkVTRVQJLyogbm8gcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQgKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1c3NlcyAqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMqMSkJLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXNzZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCShDT05GSUdfU1lTX0lERV9NQVhCVVMqMSkJLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLwogCiAjdW5kZWYgIEFNQkNUTDFWQUwKICNkZWZpbmUgQU1CQ1RMMVZBTAkJMHhGRkMzRkZDMwpAQCAtMzkxLDMwICszOTEsMzAgQEAKICAqIE5vdGUgdGhhdCB0aGVzZSBzZXR0aW5ncyBhcmVuJ3QgZm9yIHRoZSBtb3N0IHBhcnQgdXNlZCBpbiBpbmNsdWRlL2F0YS5oCiAgKiB3aGVuIGFsbCBvZiB0aGUgQVRBIHJlZ2lzdGVycyBhcmUgc2V0dXAKICAqLwotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkweDIwMzFDMDAwCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDIwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08gKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MDAyMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMDFDCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJMgkvKiBDRi5BMCAtLT4gQmxhY2tmaW4uQXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4MjAzMUMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAyMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDIwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMDFDCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJCTIJLyogQ0YuQTAgLS0+IEJsYWNrZmluLkF4ICovCiAjZW5kaWYJCQkJLyogQ09ORklHX0JGSU5fVFJVRV9JREUgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0JGSU5fQ0ZfSURFKQkvKiBVU0UgQ29tcGFjdEZsYXNoIFN0b3JhZ2UgQ2FyZCBpbiB0aGUgY29tbW9uIG1lbW9yeSBzcGFjZSAqLwotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkweDIwMjExODAwCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08gKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMDBFCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJMQkvKiBDRi5BMCAtLT4gQmxhY2tmaW4uQXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4MjAyMTE4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMDBFCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJCTEJLyogQ0YuQTAgLS0+IEJsYWNrZmluLkF4ICovCiAjZW5kaWYJCQkJLyogQ09ORklHX0JGSU5fQ0ZfSURFICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19CRklOX0hERF9JREUpCS8qIFVTRSBUUlVFIElERSAqLwotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkweDIwMzE0MDAwCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDIwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08gKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MDAyMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMDFDCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJMgkvKiBDRi5BMCAtLT4gQmxhY2tmaW4uQTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4MjAzMTQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAyMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDIwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMDFDCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJCTIJLyogQ0YuQTAgLS0+IEJsYWNrZmluLkExICovCiAKICN1bmRlZiAgQ09ORklHX1NDTEtfRElWCiAjZGVmaW5lIENPTkZJR19TQ0xLX0RJVgkJOApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2JmNTYxLWV6a2l0LmggYi9pbmNsdWRlL2NvbmZpZ3MvYmY1NjEtZXpraXQuaAppbmRleCA1OWEwZjNmLi4zMjBhOGM2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYmY1NjEtZXpraXQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYmY1NjEtZXpraXQuaApAQCAtNyw3ICs3LDcgQEAKIAogI2luY2x1ZGUgPGFzbS9ibGFja2Zpbi1jb25maWctcHJlLmg+CiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCTEKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJNTc2MDAKIC8qIFNldCBkZWZhdWx0IHNlcmlhbCBjb25zb2xlIGZvciBiZjUzNyAqLwpAQCAtNzYsMjAgKzc2LDIwIEBACiAgKiBGbGFzaCBzZXR0aW5ncwogICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRklfQU1EX1JFU0VUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX0FNRF9SRVNFVAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTM1CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4MjAwMjAwMDAKICNkZWZpbmUJQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogLyogSkZGUyBQYXJ0aXRpb24gb2Zmc2V0IHNldCAgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX0JBTksJMAotI2RlZmluZSBDRkdfSkZGUzJfTlVNX0JBTktTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCTAKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJMQogLyogNTEyayByZXNlcnZlZCBmb3IgdS1ib290ICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9TRUNUT1IJOAorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUgk4CiAKIC8qCiAgKiBTRFJBTSBzZXR0aW5ncyAmIG1lbW9yeSBtYXAKQEAgLTk5LDIzICs5OSwyMyBAQAogI2RlZmluZSBDT05GSUdfTUVNX0FERF9XRFRICQk5CS8qIDgsIDksIDEwLCAxMSAgICAqLwogI2RlZmluZSBDT05GSUdfTUVNX01UNDhMQzE2TTE2QTJUR183NQkxCiAKLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9SQU1fU0laRQkoQ09ORklHX01FTV9TSVpFICogMTAyNCAqIDEwMjQpCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRQkoQ09ORklHX01FTV9TSVpFICogMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoIChDT05GSUdfTUVNX1NJWkUgLSAxKSAqIDEwMjQqMTAyNCkJLyogMSAuLi4gNjMgTUIgaW4gRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKCAoQ09ORklHX01FTV9TSVpFIC0gMSkgKiAxMDI0KjEwMjQpCS8qIDEgLi4uIDYzIE1CIGluIERSQU0gKi8KIAogI2RlZmluZQlDT05GSUdfTE9BREFERFIJCTB4MDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJQ09ORklHX0xPQURBRERSCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfTUFYX1JBTV9TSVpFIC0gQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJQ09ORklHX0xPQURBRERSCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfTUFYX1JBTV9TSVpFIC0gQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0JBU0UJCShDRkdfTU9OSVRPUl9CQVNFIC0gQ0ZHX01BTExPQ19MRU4pCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19CQVNFCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfU1lTX01BTExPQ19MRU4pCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMHg0MDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9BRERSCShDRkdfTUFMTE9DX0JBU0UgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ09ORklHX1NUQUNLQkFTRQkoQ0ZHX0dCTF9EQVRBX0FERFIgIC0gNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTB4NDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX0FERFIJKENPTkZJR19TWVNfTUFMTE9DX0JBU0UgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TVEFDS0JBU0UJKENPTkZJR19TWVNfR0JMX0RBVEFfQUREUiAgLSA0KQogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgxMjgqMTAyNCkJLyogcmVndWxhciBzdGFjayAqLwogCiAjaWYgKCBDT05GSUdfQ0xLSU5fSEFMRiA9PSAwICkKQEAgLTEzNiw3ICsxMzYsNyBAQAogICogQ29tbWFuZCBzZXR0aW5ncwogICovCiAKLSNkZWZpbmUgQ0ZHX0FVVE9MT0FECSJubyIJLyogcmFycGIsIGJvb3RwLCBkaGNwIGNvbW1hbmRzIHdpbGwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVVRPTE9BRAkibm8iCS8qIHJhcnBiLCBib290cCwgZGhjcCBjb21tYW5kcyB3aWxsCSovCiAJCQkJLyogb25seSBwZXJmb3JtIGEgY29uZmlndXJhdGlvbgkJKi8KIAkJCQkvKiBsb29rdXAgZnJvbSB0aGUgQk9PVFAvREhDUCBzZXJ2ZXIJKi8KIAkJCQkvKiBidXQgbm90IHRyeSB0byBsb2FkIGFueSBpbWFnZQkqLwpAQCAtMTk0LDI2ICsxOTQsMjYgQEAKIC8qCiAgKiBDb25zb2xlIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKLSNkZWZpbmUJQ0ZHX1BST01QVAkJImJmaW4+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJImJmaW4+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMTAgbXMgdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNX0xFTgkJMHg0MDAwMDAwCS8qIExhcmdlIEltYWdlIExlbmd0aCwgc2V0IHRvIDY0IE1lZyAqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMTAgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTV9MRU4JCTB4NDAwMDAwMAkvKiBMYXJnZSBJbWFnZSBMZW5ndGgsIHNldCB0byA2NCBNZWcgKi8KIAogLyoKICAqIEZMQVNIIG9yZ2FuaXphdGlvbiBhbmQgZW52aXJvbm1lbnQgZGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9idWJpbmdhLmggYi9pbmNsdWRlL2NvbmZpZ3MvYnViaW5nYS5oCmluZGV4IDQ5YWJjYzYuLmRjZjViNmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9idWJpbmdhLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2J1YmluZ2EuaApAQCAtMTE1LDMxICsxMTUsMzEgQEAKICNkZWZpbmUgQ09ORklHX1NQRF9FRVBST00gICAgICAxICAgICAgIC8qIHVzZSBTUEQgRUVQUk9NIGZvciBzZXR1cCAgICAqLwogCiAvKgotICogSWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0ssIHRoZW4gdGhlIFVBUlQgZGl2aXNvciBpcyAxLgotICogSWYgQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OSwgdGhlbiBVQVJUIGRpdmlzb3IgaXMgMzEuCi0gKiBPdGhlcndpc2UsIFVBUlQgZGl2aXNvciBpcyBkZXRlcm1pbmVkIGJ5IENQVSBDbG9jayBhbmQgQ0ZHX0JBU0VfQkFVRCB2YWx1ZS4KKyAqIElmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSywgdGhlbiB0aGUgVUFSVCBkaXZpc29yIGlzIDEuCisgKiBJZiBDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OSwgdGhlbiBVQVJUIGRpdmlzb3IgaXMgMzEuCisgKiBPdGhlcndpc2UsIFVBUlQgZGl2aXNvciBpcyBkZXRlcm1pbmVkIGJ5IENQVSBDbG9jayBhbmQgQ09ORklHX1NZU19CQVNFX0JBVUQgdmFsdWUuCiAgKiBUaGUgTGludXggQkFTRV9CQVVEIGRlZmluZSBzaG91bGQgbWF0Y2ggdGhpcyBjb25maWd1cmF0aW9uLgogICogICAgYmFzZUJhdWQgPSBjcHVDbG9jay8odWFydERpdmlzb3IqMTYpCi0gKiBJZiBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5IGFuZCAyMDBNSHogQ1BVIGNsb2NrLAorICogSWYgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTkgYW5kIDIwME1IeiBDUFUgY2xvY2ssCiAgKiBzZXQgTGludXggQkFTRV9CQVVEIHRvIDQwMzIwMC4KICAqLwogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI3VuZGVmICBDRkdfRVhUX1NFUklBTF9DTE9DSyAgICAgICAgICAgLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCi0jdW5kZWYgIENGR180MDVfVUFSVF9FUlJBVEFfNTkgICAgICAgICAvKiA0MDVHUC9DUiBSZXYuIEQgc2lsaWNvbiAqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVEICAgICAgIDY5MTIwMAorI3VuZGVmICBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sgICAgICAgICAgIC8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLworI3VuZGVmICBDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OSAgICAgICAgIC8qIDQwNUdQL0NSIFJldi4gRCBzaWxpY29uICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVEICAgICAgIDY5MTIwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7IDB4NjkgfQkvKiBhdm9pZCBpcHJvYmUgaGFuZ3VwICh3aHk/KSAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNgkvKiAyNEMwMiByZXF1aXJlcyA1bXMgZGVsYXkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJeyAweDY5IH0JLyogYXZvaWQgaXByb2JlIGhhbmd1cCAod2h5PykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk2CS8qIDI0QzAyIHJlcXVpcmVzIDVtcyBkZWxheSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0VFUFJPTSkKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEkyQyBib290IEVFUFJPTSAoMjRDMDJXKQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogSTJDIGJvb3QgRUVQUk9NICgyNEMwMlcpCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTU2LDQ3ICsxNTYsNDcgQEAKIAkJCQkJLyogcmVzb3VyY2UgY29uZmlndXJhdGlvbiAgICAgICAqLwogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVyAgICAgICAgICAgIC8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAgKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9DTEFTU0NPREUgICAgICAgMHgwNjAwICAvKiBQQ0kgQ2xhc3MgQ29kZTogYnJpZGdlL2hvc3QgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBICAweDAwMDAwMDAwICAgICAgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUyAgMHg4MDAwMDAwMSAgICAgIC8qIDJHQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBICAweDAwMDAwMDAwICAgICAgLyogZGlzYWJsZWQgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUyAgMHgwMDAwMDAwMCAgICAgIC8qIGRpc2FibGVkICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHhjYWZlCS8qIFdoYXRldmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERSAgICAgICAweDA2MDAgIC8qIFBDSSBDbGFzcyBDb2RlOiBicmlkZ2UvaG9zdCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBICAweDAwMDAwMDAwICAgICAgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMgIDB4ODAwMDAwMDEgICAgICAvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBICAweDAwMDAwMDAwICAgICAgLyogZGlzYWJsZWQgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMgIDB4MDAwMDAwMDAgICAgICAvKiBkaXNhYmxlZCAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXh0ZXJuYWwgcGVyaXBoZXJhbCBiYXNlIGFkZHJlc3MKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZQlDRkdfS0VZX1JFR19CQVNFX0FERFIJMHhGMDEwMDAwMAotI2RlZmluZQlDRkdfSVJfUkVHX0JBU0VfQUREUgkweEYwMjAwMDAwCi0jZGVmaW5lCUNGR19GUEdBX1JFR19CQVNFX0FERFIJMHhGMDMwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0tFWV9SRUdfQkFTRV9BRERSCTB4RjAxMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19JUl9SRUdfQkFTRV9BRERSCTB4RjAyMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19GUEdBX1JFR19CQVNFX0FERFIJMHhGMDMwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQogICovCi0jZGVmaW5lIENGR19TUkFNX0JBU0UJCTB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX0JBU0UJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRjgwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMCAgICAgICAgIDB4NTU1NQotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEgICAgICAgICAweDJhYWEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAgICAgdW5zaWduZWQgY2hhcgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwICAgICAgICAgMHg1NTU1CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEgICAgICAgICAweDJhYWEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgICAgIHVuc2lnbmVkIGNoYXIKIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHg0MDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjA3LDEzICsyMDcsMTMgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5WUkFNIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhmMDAwMDAwMAkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJCTB4MWZmOAkJLyogTlZSQU0gc2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweGYwMDAwMDAwCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCTB4MWZmOAkJLyogTlZSQU0gc2l6ZQkqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9OVlJBTQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MGZmOAkJLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzCSovCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJXAotCShDRkdfTlZSQU1fQkFTRV9BRERSK0NGR19OVlJBTV9TSVpFLUNPTkZJR19FTlZfU0laRSkJLyogRW52CSovCisJKENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSK0NPTkZJR19TWVNfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudgkqLwogI2VuZGlmCiAKIC8qCkBAIC0yMjIsNDggKzIyMiw0OCBAQAogICogQlIwLzEgYW5kIE9SMC8xIChGTEFTSCkKICAqLwogCi0jZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSovCisjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogRkxBU0ggYmFuayAjMAkqLwogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0JMAkJLyogRkxBU0ggYmFuayAjMQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIGRhdGEgY2FjaGUpCiAgKi8KIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTSAgICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNICAgICAgICAxCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICAgICAgQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQgICAgICBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoL1NSQU0pIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUCAgICAgICAgICAgMHgwNDAwNjAwMAotI2RlZmluZSBDRkdfRUJDX1BCMENSICAgICAgICAgICAweEZGRjE4MDAwICAvKiBCQVM9MHhGRkYsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUCAgICAgICAgICAgMHgwNDAwNjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUiAgICAgICAgICAgMHhGRkYxODAwMCAgLyogQkFTPTB4RkZGLEJTPTFNQixCVT1SL1csQlc9OGJpdCAgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoTlZSQU0vUlRDKSBpbml0aWFsaXphdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQICAgICAgICAgICAweDA0MDQxMDAwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IgICAgICAgICAgIDB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQICAgICAgICAgICAweDA0MDQxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSICAgICAgICAgICAweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICAqLwogCiAvKiBNZW1vcnkgQmFuayAyIChub3QgdXNlZCkgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAgICAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUiAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUCAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUiAgICAgICAgICAgMHgwMDAwMDAwMAogCiAvKiBNZW1vcnkgQmFuayAyIChub3QgdXNlZCkgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAgICAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUiAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUCAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUiAgICAgICAgICAgMHgwMDAwMDAwMAogCiAvKiBNZW1vcnkgQmFuayA0IChGUEdBIHJlZ3MpIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAgICAgICAgICAgIDB4MDE4MTUwMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjRDUiAgICAgICAgICAgMHhGMDMxODAwMCAgLyogQkFTPTB4RjAzLEJTPTFNQixCVT1SL1csQlc9OGJpdCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAgICAgICAgICAgIDB4MDE4MTUwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0Q1IgICAgICAgICAgIDB4RjAzMTgwMDAgIC8qIEJBUz0weEYwMyxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBTZXJpYWwgUHJlc2VuY2UgRGV0ZWN0IEVFUFJPTSBhZGRyZXNzCkBAIC0yODMsMTMgKzI4MywxMyBAQAogICogR1BJTzBbMjgtMjldIC0gVUFSVDEgZGF0YSBzaWduYWwgaW5wdXQvb3V0cHV0CiAgKiBHUElPMFszMC0zMV0gLSBFTUFDMCBhbmQgRU1BQzEgcmVqZWN0IHBhY2tldCBpbnB1dHMKICAqLwotI2RlZmluZSBDRkdfR1BJTzBfT1NSSCAgICAgICAgICAweDU1NTU1NTU1Ci0jZGVmaW5lIENGR19HUElPMF9PU1JMICAgICAgICAgIDB4NDAwMDAxMTAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFIICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUwgICAgICAgICAweDE1NTU1NDQ1Ci0jZGVmaW5lIENGR19HUElPMF9UU1JIICAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkwgICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVENSICAgICAgICAgICAweEZGRkY4MDE0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSSCAgICAgICAgICAweDU1NTU1NTU1CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSTCAgICAgICAgICAweDQwMDAwMTEwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUggICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUwgICAgICAgICAweDE1NTU1NDQ1CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSSCAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSTCAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVENSICAgICAgICAgICAweEZGRkY4MDE0CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNvbWUgQlVCSU5HQSBzdHVmZi4uLgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2MybW9uLmggYi9pbmNsdWRlL2NvbmZpZ3MvYzJtb24uaAppbmRleCBkY2E3YjQ3Li40NTA4ZDc1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYzJtb24uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYzJtb24uaApAQCAtNjAsNyArNjAsNyBAQAogCSJib290bSIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTAxLDMxICsxMDEsMzEgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTEzNSw0NyArMTM1LDQ3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAogI2lmIGRlZmluZWQoREVCVUcpCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfT0ZGU0VUCQkweDgwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTE4NCw5ICsxODQsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xOTYsMTAgKzE5NiwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjA4LDkgKzIwOCw5IEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIxOCwyMCArMjE4LDIwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjQyLDEwICsyNDIsMTAgQEAKICAqIElmIHRoaXMgaXMgYSA4MCBNSHogQ1BVLCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB0byA1ICg1KjE2PTgwKSEKICAqLwogI2lmZGVmCUNPTkZJR184ME1IegkvKiBmb3IgODAgTUh6LCB3ZSB1c2UgYSAxNiBNSHogY2xvY2sgKiA1ICovCi0jZGVmaW5lIENGR19QTFBSQ1IJCQkJCQkJXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkJCQkJCQlcCiAJCSggKDUtMSk8PFBMUFJDUl9NRl9TSElGVCB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCApCiAjZWxzZQkJCS8qIHVwIHRvIDUwIE1IeiB3ZSB1c2UgYSAxOjEgY2xvY2sgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogI2VuZGlmCS8qIENPTkZJR184ME1IeiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTYsMTIgKzI1NiwxMiBAQAogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQogI2lmZGVmCUNPTkZJR184ME1IegkvKiBmb3IgODAgTUh6LCB3ZSB1c2UgYSAxNiBNSHogY2xvY2sgKiA1ICovCi0jZGVmaW5lIENGR19TQ0NSCSgvKiBTQ0NSX1RCUyAgfCAqLyBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoLyogU0NDUl9UQlMgIHwgKi8gXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCiAjZWxzZQkJCS8qIHVwIHRvIDUwIE1IeiB3ZSB1c2UgYSAxOjEgY2xvY2sgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTI3MiwxNCArMjcyLDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBQb3dlciBTd2l0Y2gKQEAgLTMxMiwyMSArMzEyLDIxIEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMzQsNyArMzM0LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNDksMjAgKzM0OSwyMCBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDExLCBUUkxYID0gMCwgQ1NOVCA9IDEsIFNDWSA9IDUsIEVIVFIgPSAxCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVYyIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWMiB8IE9SX0JJIHwgXAogCQkJCSBPUl9TQ1lfNV9DTEsgfCBPUl9FSFRSKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyoKICAqIEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCkBAIC0zNzMsMTkgKzM3MywxOSBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUJQ0ZHX09SM19QUkVMSU0JQ0ZHX09SMl9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZQlDT05GSUdfU1lTX09SM19QUkVMSU0JQ09ORklHX1NZU19PUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAjZWxzZQkvKiBDQU4gdXNlcyBDUzMjLCBzbyB3ZSBjYW4gaGF2ZSBvbmx5IG9uZSBTRFJBTSBiYW5rIGFueXdheSAqLwotI2RlZmluZQlDRkdfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCi0jZGVmaW5lIENGR19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLwotI2RlZmluZSBDRkdfT1IzX0NBTgkJKENGR19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCi0jZGVmaW5lIENGR19CUjNfQ0FOCQkoKENGR19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCisjZGVmaW5lCUNPTkZJR19TWVNfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfQ0FOCQkoQ09ORklHX1NZU19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX0NBTgkJKChDT05GSUdfU1lTX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKIAkJCQkJQlJfUFNfOCB8IEJSX01TX1VQTUIgfCBCUl9WICkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCkBAIC0zOTQsMjYgKzM5NCwyNiBAQAogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJOTcJCS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IegkqLwogCiAvKiByZWZyZXNoIHJhdGUgMTUuNiB1cyAoPSA2NCBtcyAvIDRLID0gNjIuNCAvIHF1YWQgYnVyc3RzKSBmb3IgPD0gMTI4IE1CaXQJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvY2FubWIuaCBiL2luY2x1ZGUvY29uZmlncy9jYW5tYi5oCmluZGV4IDU5ZTRjYjMuLmZmN2I2ZTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9jYW5tYi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9jYW5tYi5oCkBAIC0zMyw3ICszMyw3IEBACiAjZGVmaW5lIENPTkZJR19NUEM1MjAwCQkxCS8qIE1vcmUgZXhhY3RseSBhIE1QQzUyMDAgKi8KICNkZWZpbmUgQ09ORklHX0NBTk1CCQkxCS8qIC4uLiBvbiBjYW5tYiBib2FyZCAtIHdlIG5lZWQgdGhpcyBmb3IgRkVDLkMgKi8KIAotI2RlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLwogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CSAgICAgKi8KQEAgLTQ3LDcgKzQ3LDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQzEgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogLi4uIGF0IDExNTIwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAKIC8qCkBAIC03OCw4ICs3OCw4IEBACiAgKiBNVVNUIGJlIGxvdyBib290IC0gSElHSEJPT1QgaXMgbm90IHN1cHBvcnRlZCBhbnltb3JlCiAgKi8KICNpZiAoVEVYVF9CQVNFID09IDB4RkUwMDAwMDApCQkvKiBCb290IGxvdyB3aXRoIDMyIE1CIEZsYXNoICovCi0jICAgZGVmaW5lIENGR19MT1dCT09UCQkxCi0jICAgZGVmaW5lIENGR19MT1dCT09UMTYJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UMTYJMQogI2Vsc2UKICMgICBlcnJvciAiVEVYVF9CQVNFIG11c3QgYmUgMHhGRTAwMDAwMCIKICNlbmRpZgpAQCAtMTE3LDIyICsxMTcsMjIgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSN1bmRlZiBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjdW5kZWYgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KIAogLyoKICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24sIGV4cGVjdCBvbmUgMTYgTWVnYWJ5dGUgQmFuayBhdCBtb3N0CiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDIwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCkBAIC0xNDcsMjcgKzE0NywyNyBAQAogICoKICAqIFdhcm5pbmchISEgd2l0aCB0aGUgY3VycmVudCBCZXN0Q29tbSBUYXNrLCBNQkFSIE1VU1QgQkUgc2V0IHRvIDB4ZjAwMDAwMDAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJCTB4ZjAwMDAwMDAJLyogRE8gTk9UIENIQU5HRSB0aGlzICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCQkweGYwMDAwMDAwCS8qIERPIE5PVCBDSEFOR0UgdGhpcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAogCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KIAogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0xODAsNTEgKzE4MCw1MSBAQAogICogUENJIGRpc2FibGVkCiAgKiBFdGhlcm5ldCAxMDAgd2l0aCBNRAogICovCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHgwMDA1ODQ0NAorI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDAwMDU4NDQ0CiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSMgIGRlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDFmMDAwMDAJLyogMSAuLi4gMzEgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDFmMDAwMDAJLyogMSAuLi4gMzEgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDIwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX1JUQ19NUEM1MjAwCTEJLyogdXNlIGludGVybmFsIE1QQzUyMDAgUlRDICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0N0QwMQotI2RlZmluZSBDRkdfQ1MwX1NUQVJUCQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQ1MwX1NJWkUJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDQ3RDAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCiAKLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMworI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweDdmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweDdmMDAwMDAwCiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvY2FueW9ubGFuZHMuaCBiL2luY2x1ZGUvY29uZmlncy9jYW55b25sYW5kcy5oCmluZGV4IGNkM2U2YTMuLjc3MWVlNjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9jYW55b25sYW5kcy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9jYW55b25sYW5kcy5oCkBAIC01NCw1MSArNTQsNTEgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UJCTB4ODAwMDAwMDAJLyogbWFwcGVkIFBDSSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9CQVNFCQkweGQwMDAwMDAwCS8qIGludGVybmFsIFBDSSByZWdzCSovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0JBU0UJQ0ZHX1BDSV9NRU1CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UJCTB4ODAwMDAwMDAJLyogbWFwcGVkIFBDSSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFTRQkJMHhkMDAwMDAwMAkvKiBpbnRlcm5hbCBQQ0kgcmVncwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRQlDT05GSUdfU1lTX1BDSV9NRU1CQVNFCiAKLSNkZWZpbmUgQ0ZHX1BDSUVfTUVNQkFTRQkweGIwMDAwMDAwCS8qIG1hcHBlZCBQQ0llIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUENJRV9NRU1TSVpFCTB4MDgwMDAwMDAJLyogc21hbGxlc3QgaW5jciBmb3IgUENJZSBwb3J0ICovCi0jZGVmaW5lIENGR19QQ0lFX0JBU0UJCTB4YzQwMDAwMDAJLyogUENJZSBVVEwgcmVncyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfTUVNQkFTRQkweGIwMDAwMDAwCS8qIG1hcHBlZCBQQ0llIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfTUVNU0laRQkweDA4MDAwMDAwCS8qIHNtYWxsZXN0IGluY3IgZm9yIFBDSWUgcG9ydCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfQkFTRQkJMHhjNDAwMDAwMAkvKiBQQ0llIFVUTCByZWdzICovCiAKLSNkZWZpbmUgQ0ZHX1BDSUUwX0NGR0JBU0UJMHhjMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfQ0ZHQkFTRQkweGMxMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMF9YQ0ZHQkFTRQkweGMzMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9YQ0ZHQkFTRQkweGMzMDAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTBfQ0ZHQkFTRQkweGMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfQ0ZHQkFTRQkweGMxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTBfWENGR0JBU0UJMHhjMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX1hDRkdCQVNFCTB4YzMwMDEwMDAKIAotI2RlZmluZQlDRkdfUENJRTBfVVRMQkFTRQkweGMwODAxMDAwMFVMTAkvKiAzNmJpdCBwaHlzaWNhbCBhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUENJRTBfVVRMQkFTRQkweGMwODAxMDAwMFVMTAkvKiAzNmJpdCBwaHlzaWNhbCBhZGRyCSovCiAKIC8qIGJhc2UgYWRkcmVzcyBvZiBpbmJvdW5kIFBDSWUgd2luZG93ICovCi0jZGVmaW5lIENGR19QQ0lFX0lOQk9VTkRfQkFTRQkweDAwMDAwMDAwMFVMTAkvKiAzNmJpdCBwaHlzaWNhbCBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9JTkJPVU5EX0JBU0UJMHgwMDAwMDAwMDBVTEwJLyogMzZiaXQgcGh5c2ljYWwgYWRkcgkqLwogCiAvKiBFQkMgc3R1ZmYgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQUREUgkJMHhFMDAwMDAwMAotI2RlZmluZSBDRkdfQkNTUl9CQVNFCQkweEUxMDAwMDAwCi0jZGVmaW5lIENGR19CT09UX0JBU0VfQUREUgkweEZGMDAwMDAwCS8qIEVCQyBCb290IFNwYWNlOiAweEZGMDAwMDAwCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZDMDAwMDAwCS8qIGxhdGVyIG1hcHBlZCB0byB0aGlzIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0VfUEhZU19ICTB4NAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRV9QSFlTX0wJMHhDQzAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRV9QSFlTCSgoKHU2NClDRkdfRkxBU0hfQkFTRV9QSFlTX0ggPDwgMzIpIHwgXAotCQkJCSAodTY0KUNGR19GTEFTSF9CQVNFX1BIWVNfTCkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCSg2NCA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0FERFIJCTB4RTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSX0JBU0UJCTB4RTEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX0JBU0VfQUREUgkweEZGMDAwMDAwCS8qIEVCQyBCb290IFNwYWNlOiAweEZGMDAwMDAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGQzAwMDAwMAkvKiBsYXRlciBtYXBwZWQgdG8gdGhpcyBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRV9QSFlTX0gJMHg0CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRV9QSFlTX0wJMHhDQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0VfUEhZUwkoKCh1NjQpQ09ORklHX1NZU19GTEFTSF9CQVNFX1BIWVNfSCA8PCAzMikgfCBcCisJCQkJICh1NjQpQ09ORklHX1NZU19GTEFTSF9CQVNFX1BIWVNfTCkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoNjQgPDwgMjApCiAKLSNkZWZpbmUgQ0ZHX09DTV9CQVNFCQkweEUzMDAwMDAwCS8qIE9DTTogMTZrCQkqLwotI2RlZmluZSBDRkdfU1JBTV9CQVNFCQkweEU4MDAwMDAwCS8qIFNSQU06IDI1NmsJCSovCi0jZGVmaW5lIENGR19MT0NBTF9DT05GX1JFR1MJMHhFRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9CQVNFCQkweEUzMDAwMDAwCS8qIE9DTTogMTZrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fQkFTRQkJMHhFODAwMDAwMAkvKiBTUkFNOiAyNTZrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQ0FMX0NPTkZfUkVHUwkweEVGMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRQkweEVGNjAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFCTB4RUY2MDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMgKi8KIAotI2RlZmluZSBDRkdfQUhCX0JBU0UJCTB4RTIwMDAwMDAJLyogaW50ZXJuYWwgQUhCIHBlcmlwaGVyYWxzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUhCX0JBU0UJCTB4RTIwMDAwMDAJLyogaW50ZXJuYWwgQUhCIHBlcmlwaGVyYWxzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlciAocGxhY2VkIGluIE9DTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fQkFTRQkvKiBPQ00JCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fQkFTRQkvKiBPQ00JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkoNCA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NgkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIFBvcnQKQEAgLTExMywxMCArMTEzLDEwIEBACiAgKi8KICNpZiAhZGVmaW5lZChDT05GSUdfTkFORF9VX0JPT1QpICYmICFkZWZpbmVkKENPTkZJR19OQU5EX1NQTCkKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCS8qIHVzZSBGTEFTSCBmb3IgZW52aXJvbm1lbnQgdmFycyAqLwotI2RlZmluZSBDRkdfTkFORF9DUwkJMwkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ1MJCTMJLyogTkFORCBjaGlwIGNvbm5lY3RlZCB0byBDU3ggKi8KICNlbHNlCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fTkFORAkxCS8qIHVzZSBOQU5EIGZvciBlbnZpcm9ubWVudCB2YXJzICAqLwotI2RlZmluZSBDRkdfTkFORF9DUwkJMAkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ1MJCTAJLyogTkFORCBjaGlwIGNvbm5lY3RlZCB0byBDU3ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19FTUJFRERFRAkxCS8qIHVzZSBlbWJlZGRlZCBlbnZpcm9ubWVudCAqLwogI2VuZGlmCiAKQEAgLTE0MSwzNiArMTQxLDM2IEBACiAgKiBUaGlzIGlzIHRoZSBmaXJzdCBvZmZpY2lhbCBpbXBsZW1lbnRhdGlvbiBvZiBib290aW5nIGZyb20gMmsgcGFnZSBzaXplZAogICogTkFORCBkZXZpY2VzIChlLmcuIE1pY3JvbiAyOUYyRzA4QUEgMjU2TWJpdCAqIDgpCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQk9PVF9TUExfU1JDCTB4ZmZmZmYwMDAJLyogU1BMIGxvY2F0aW9uCQkgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9TSVpFCSg0IDw8IDEwKQkvKiBTUEwgc2l6ZQkJICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQk9PVF9TUExfRFNUCShDRkdfT0NNX0JBU0UgKyAoMTIgPDwgMTApKSAvKiBDb3B5IFNQTCBoZXJlICAqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfRFNUCTB4MDEwMDAwMDAJLyogTG9hZCBOVUIgdG8gdGhpcyBhZGRyICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX1NUQVJUCUNGR19OQU5EX1VfQk9PVF9EU1QJLyogU3RhcnQgTlVCIGZyb20gICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkMJMHhmZmZmZjAwMAkvKiBTUEwgbG9jYXRpb24JCSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TSVpFCSg0IDw8IDEwKQkvKiBTUEwgc2l6ZQkJICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX0RTVAkoQ09ORklHX1NZU19PQ01fQkFTRSArICgxMiA8PCAxMCkpIC8qIENvcHkgU1BMIGhlcmUgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfRFNUCTB4MDEwMDAwMDAJLyogTG9hZCBOVUIgdG8gdGhpcyBhZGRyICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9TVEFSVAlDT05GSUdfU1lTX05BTkRfVV9CT09UX0RTVAkvKiBTdGFydCBOVUIgZnJvbSAgICAgKi8KIAkJCQkJCQkvKiAgIHRoaXMgYWRkcgkgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9ERUxUQQkoQ0ZHX05BTkRfQk9PVF9TUExfU1JDIC0gQ0ZHX05BTkRfQk9PVF9TUExfRFNUKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfREVMVEEJKENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkMgLSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfRFNUKQogCiAvKgogICogRGVmaW5lIHRoZSBwYXJ0aXRpb25pbmcgb2YgdGhlIE5BTkQgY2hpcCAob25seSBSQU0gVS1Cb290IGlzIG5lZWRlZCBoZXJlKQogICovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9PRkZTCSgxMjggPDwgMTApCS8qIE9mZnNldCB0byBSQU0gVS1Cb290IGltYWdlICovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9TSVpFCSgxIDw8IDIwKQkvKiBTaXplIG9mIFJBTSBVLUJvb3QgaW1hZ2UgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX09GRlMJKDEyOCA8PCAxMCkJLyogT2Zmc2V0IHRvIFJBTSBVLUJvb3QgaW1hZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9TSVpFCSgxIDw8IDIwKQkvKiBTaXplIG9mIFJBTSBVLUJvb3QgaW1hZ2UgICAqLwogCiAvKgogICogTm93IHRoZSBOQU5EIGNoaXAgaGFzIHRvIGJlIGRlZmluZWQgKG5vIGF1dG9kZXRlY3Rpb24gdXNlZCEpCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUEFHRV9TSVpFCSgyIDw8IDEwKQkvKiBOQU5EIGNoaXAgcGFnZSBzaXplCSAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX0JMT0NLX1NJWkUJKDEyOCA8PCAxMCkJLyogTkFORCBjaGlwIGJsb2NrIHNpemUJICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUEFHRV9DT1VOVAkoQ0ZHX05BTkRfQkxPQ0tfU0laRSAvIENGR19OQU5EX1BBR0VfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1BBR0VfU0laRQkoMiA8PCAxMCkJLyogTkFORCBjaGlwIHBhZ2Ugc2l6ZQkgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkxPQ0tfU0laRQkoMTI4IDw8IDEwKQkvKiBOQU5EIGNoaXAgYmxvY2sgc2l6ZQkgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUEFHRV9DT1VOVAkoQ09ORklHX1NZU19OQU5EX0JMT0NLX1NJWkUgLyBDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFKQogCQkJCQkJLyogTkFORCBjaGlwIHBhZ2UgY291bnQJICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFEX0JMT0NLX1BPUwkwCQkvKiBMb2NhdGlvbiBvZiBiYWQgYmxvY2sgbWFya2VyKi8KLSNkZWZpbmUgQ0ZHX05BTkRfNV9BRERSX0NZQ0xFCQkJLyogRmlmdGggYWRkciB1c2VkICg8PTEyOE1CKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBRF9CTE9DS19QT1MJMAkJLyogTG9jYXRpb24gb2YgYmFkIGJsb2NrIG1hcmtlciovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF81X0FERFJfQ1lDTEUJCQkvKiBGaWZ0aCBhZGRyIHVzZWQgKDw9MTI4TUIpICAqLwogCi0jZGVmaW5lIENGR19OQU5EX0VDQ1NJWkUJMjU2Ci0jZGVmaW5lIENGR19OQU5EX0VDQ0JZVEVTCTMKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDU1RFUFMJKENGR19OQU5EX1BBR0VfU0laRSAvIENGR19OQU5EX0VDQ1NJWkUpCi0jZGVmaW5lIENGR19OQU5EX09PQlNJWkUJNjQKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDVE9UQUwJKENGR19OQU5EX0VDQ0JZVEVTICogQ0ZHX05BTkRfRUNDU1RFUFMpCi0jZGVmaW5lIENGR19OQU5EX0VDQ1BPUwkJezQwLCA0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgXAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDU0laRQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1NURVBTCShDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFIC8gQ09ORklHX1NZU19OQU5EX0VDQ1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9PT0JTSVpFCTY0CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NUT1RBTAkoQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTICogQ09ORklHX1NZU19OQU5EX0VDQ1NURVBTKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDUE9TCQl7NDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCBcCiAJCQkJIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgXAogCQkJCSA1NiwgNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjN9CiAKQEAgLTE3OSwzMSArMTc5LDMxIEBACiAgKiBGb3IgTkFORCBib290aW5nIHRoZSBlbnZpcm9ubWVudCBpcyBlbWJlZGRlZCBpbiB0aGUgVS1Cb290IGltYWdlLiBQbGVhc2UgdGFrZQogICogbG9vayBhdCB0aGUgZmlsZSBib2FyZC9hbWNjL2NhbnlvbmxhbmRzL3UtYm9vdC1uYW5kLmxkcyBmb3IgZGV0YWlscy4KICAqLwotI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCUNGR19OQU5EX0JMT0NLX1NJWkUKLSNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDRkdfTkFORF9VX0JPT1RfT0ZGUyArIENPTkZJR19FTlZfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlDT05GSUdfU1lTX05BTkRfQkxPQ0tfU0laRQorI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENPTkZJR19TWVNfTkFORF9VX0JPT1RfT0ZGUyArIENPTkZJR19FTlZfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECShDT05GSUdfRU5WX09GRlNFVCArIENPTkZJR19FTlZfU0laRSkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCByZWxhdGVkCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9BTURfUkVTRVQJMQkvKiBVc2UgQU1EIChTcGFuc2lvbikgcmVzZXQgY21kICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX0FNRF9SRVNFVAkxCS8qIFVzZSBBTUQgKFNwYW5zaW9uKSByZXNldCBjbWQgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVCAgICB7Q0ZHX0ZMQVNIX0JBU0V9Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUICAgIHtDT05GSUdfU1lTX0ZMQVNIX0JBU0V9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAkJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yMTQsMTAgKzIxNCwxMCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTkFORC1GTEFTSCByZWxhdGVkCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJMQotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkoQ0ZHX05BTkRfQUREUiArIENGR19OQU5EX0NTKQotI2RlZmluZSBDRkdfTkFORF9TRUxFQ1RfREVWSUNFICAxCS8qIG5hbmQgZHJpdmVyIHN1cHBvcnRzIG11dGlwbC4gY2hpcHMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCShDT05GSUdfU1lTX05BTkRfQUREUiArIENPTkZJR19TWVNfTkFORF9DUykKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NFTEVDVF9ERVZJQ0UgIDEJLyogbmFuZCBkcml2ZXIgc3VwcG9ydHMgbXV0aXBsLiBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRERSIFNEUkFNCkBAIC0yMzMsMzAgKzIzMywzMCBAQAogI2RlZmluZSBDT05GSUdfRERSX0VDQwkJMQkvKiB3aXRoIEVDQyBzdXBwb3J0CQkqLwogI2RlZmluZSBDT05GSUdfRERSX1JRRENfRklYRUQJMHg4MDAwMDAzOCAvKiBmaXhlZCB2YWx1ZSBmb3IgUlFEQwkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NQllURVNfU0RSQU0JNTEyCS8qIDUxMk1CCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQllURVNfU0RSQU0JNTEyCS8qIDUxMk1CCQkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQJCQkqLwogCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkoMHhhOD4+MSkKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJKDB4YTg+PjEpCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCiAKIC8qIEkyQyBTWVNNT04gKExNNzUsIEFENzQxNCBpcyBhbG1vc3QgY29tcGF0aWJsZSkJCQkqLwogI2RlZmluZSBDT05GSUdfRFRUX0xNNzUJCTEJCS8qIE9OIFNlbWkncyBMTTc1CSovCiAjZGVmaW5lIENPTkZJR19EVFRfQUQ3NDE0CTEJCS8qIHVzZSBBRDc0MTQJCSovCiAjZGVmaW5lIENPTkZJR19EVFRfU0VOU09SUwl7MH0JCS8qIFNlbnNvciBhZGRyZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0RUVF9NQVhfVEVNUAk3MAotI2RlZmluZSBDRkdfRFRUX0xPV19URU1QCS0zMAotI2RlZmluZSBDRkdfRFRUX0hZU1RFUkVTSVMJMworI2RlZmluZSBDT05GSUdfU1lTX0RUVF9NQVhfVEVNUAk3MAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9MT1dfVEVNUAktMzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUwkzCiAKIC8qIFJUQyBjb25maWd1cmF0aW9uICovCiAjZGVmaW5lIENPTkZJR19SVENfTTQxVDYyCTEKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NjgKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXRoZXJuZXQKQEAgLTI4NSwxMiArMjg1LDEyIEBACiAjaWZkZWYgQ09ORklHXzQ2MEVYCiAjZGVmaW5lIENPTkZJR19VU0JfT0hDSV9ORVcKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCi0jdW5kZWYgQ0ZHX09IQ0lfQkVfQ09OVFJPTExFUgkJLyogNDYwRVggaGFzIGxpdHRsZSBlbmRpYW4gZGVzY3JpcHRvcnMJKi8KLSNkZWZpbmUgQ0ZHX09IQ0lfU1dBUF9SRUdfQUNDRVNTCS8qIDQ2MEVYIGhhcyBsaXR0bGUgZW5kaWFuIHJlZ2lzdGVyCSovCi0jZGVmaW5lIENGR19PSENJX1VTRV9OUFMJCS8qIGZvcmNlIE5vUG93ZXJTd2l0Y2hpbmcgbW9kZQkJKi8KLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1JFR1NfQkFTRQkoQ0ZHX0FIQl9CQVNFIHwgMHhkMDAwMCkKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkicHBjNDQwIgotI2RlZmluZSBDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMgMTUKKyN1bmRlZiBDT05GSUdfU1lTX09IQ0lfQkVfQ09OVFJPTExFUgkJLyogNDYwRVggaGFzIGxpdHRsZSBlbmRpYW4gZGVzY3JpcHRvcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PSENJX1NXQVBfUkVHX0FDQ0VTUwkvKiA0NjBFWCBoYXMgbGl0dGxlIGVuZGlhbiByZWdpc3RlcgkqLworI2RlZmluZSBDT05GSUdfU1lTX09IQ0lfVVNFX05QUwkJLyogZm9yY2UgTm9Qb3dlclN3aXRjaGluZyBtb2RlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1JFR1NfQkFTRQkoQ09ORklHX1NZU19BSEJfQkFTRSB8IDB4ZDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCSJwcGM0NDAiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMgMTUKICNlbmRpZgogCiAvKgpAQCAtMzM4LDExICszMzgsMTEgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9DT05GSUdfSE9TVF9CUklER0UKIAogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQJCS8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQgICAgKi8KLSN1bmRlZglDRkdfUENJX01BU1RFUl9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCQkvKiBsZXQgYm9hcmQgaW5pdCBwY2kgdGFyZ2V0ICAgICovCisjdW5kZWYJQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQKIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwMTQJLyogSUJNCQkJCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkvKiBXaGF0ZXZlcgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwMTQJLyogSUJNCQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIJCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cApAQCAtMzYwLDM0ICszNjAsMzQgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX05BTkRfVV9CT09UKSB8fCBkZWZpbmVkKENPTkZJR19OQU5EX1NQTCkKIC8qIE1lbW9yeSBCYW5rIDMgKE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MTAwNTVlMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJKENGR19CT09UX0JBU0VfQUREUiB8IDB4OWEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDEwMDU1ZTAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkoQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiB8IDB4OWEwMDApCiAKIC8qIE1lbW9yeSBCYW5rIDAgKE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwMTgwMDNjMAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkoQ0ZHX05BTkRfQUREUiB8IDB4MUUwMDApIC8qIEJBUz1OQU5ELEJTPTFNQixCVT1SL1csQlc9MzJiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgwMTgwMDNjMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJKENPTkZJR19TWVNfTkFORF9BRERSIHwgMHgxRTAwMCkgLyogQkFTPU5BTkQsQlM9MU1CLEJVPVIvVyxCVz0zMmJpdCovCiAjZWxzZQogLyogTWVtb3J5IEJhbmsgMCAoTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgxMDA1NWUwMAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkoQ0ZHX0JPT1RfQkFTRV9BRERSIHwgMHg5YTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MTAwNTVlMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSIHwgMHg5YTAwMCkKIAogLyogTWVtb3J5IEJhbmsgMyAoTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDAxODAwM2MwCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCShDRkdfTkFORF9BRERSIHwgMHgxRTAwMCkgLyogQkFTPU5BTkQsQlM9MU1CLEJVPVIvVyxCVz0zMmJpdCovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDAxODAwM2MwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkoQ09ORklHX1NZU19OQU5EX0FERFIgfCAweDFFMDAwKSAvKiBCQVM9TkFORCxCUz0xTUIsQlU9Ui9XLEJXPTMyYml0Ki8KICNlbmRpZgogCiAvKiBNZW1vcnkgQmFuayAyIChDUExEKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDA4MDQyNDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJKENGR19CQ1NSX0JBU0UgfCAweDE4MDAwKSAvKiBCQVM9Q1BMRCxCUz0xTSxCVT1SVyxCVz0zMmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMDgwNDI0MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJKENPTkZJR19TWVNfQkNTUl9CQVNFIHwgMHgxODAwMCkgLyogQkFTPUNQTEQsQlM9MU0sQlU9UlcsQlc9MzJiaXQgKi8KIAotI2RlZmluZSBDRkdfRUJDX0NGRwkJMHhCODQwMDAwMAkJLyogIEVCQzBfQ0ZHICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX0NGRwkJMHhCODQwMDAwMAkJLyogIEVCQzBfQ0ZHICovCiAKIC8qCiAgKiBQUEM0eHggR1BJTyBDb25maWd1cmF0aW9uCiAgKi8KICNpZmRlZiBDT05GSUdfNDYwRVgKIC8qIDQ2MEVYOiBVc2UgVVNCIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHXzR4eF9HUElPX1RBQkxFIHsgLyoJICBPdXQJCSAgR1BJTwlBbHRlcm5hdGUxCUFsdGVybmF0ZTIJQWx0ZXJuYXRlMyAqLyBcCisjZGVmaW5lIENPTkZJR19TWVNfNHh4X0dQSU9fVEFCTEUgeyAvKgkgIE91dAkJICBHUElPCUFsdGVybmF0ZTEJQWx0ZXJuYXRlMglBbHRlcm5hdGUzICovIFwKIHsJCQkJCQkJCQkJCVwKIC8qIEdQSU8gQ29yZSAwICovCQkJCQkJCQkJXAoge0dQSU8wX0JBU0UsIEdQSU9fQkkgLCBHUElPX0FMVDEsIEdQSU9fT1VUXzB9LCAvKiBHUElPMAlHTUMxVHhEKDApCVVTQjJIb3N0RCgwKQkqLwlcCkBAIC00NjEsNyArNDYxLDcgQEAKIH0KICNlbHNlCiAvKiA0NjBHVDogVXNlIEVNQUMyKzMgY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfNHh4X0dQSU9fVEFCTEUgeyAvKgkgIE91dAkJICBHUElPCUFsdGVybmF0ZTEJQWx0ZXJuYXRlMglBbHRlcm5hdGUzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU180eHhfR1BJT19UQUJMRSB7IC8qCSAgT3V0CQkgIEdQSU8JQWx0ZXJuYXRlMQlBbHRlcm5hdGUyCUFsdGVybmF0ZTMgKi8gXAogewkJCQkJCQkJCQkJXAogLyogR1BJTyBDb3JlIDAgKi8JCQkJCQkJCQlcCiB7R1BJTzBfQkFTRSwgR1BJT19PVVQsIEdQSU9fQUxUMSwgR1BJT19PVVRfMH0sIC8qIEdQSU8wCUdNQzFUeEQoMCkJVVNCMkhvc3REKDApCSovCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9jZXJmMjUwLmggYi9pbmNsdWRlL2NvbmZpZ3MvY2VyZjI1MC5oCmluZGV4IDk2MTg0MjUuLjcxZTViNTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9jZXJmMjUwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2NlcmYyNTAuaApAQCAtNDQsOCArNDQsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSAgICAoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSAgICAoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC05NCwzMyArOTQsMzMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2lmZGVmIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUCQkJInVib290JCAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJCSJ1Ym9vdCQgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZWxzZQotI2RlZmluZSBDRkdfUFJPTVBUCQkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYJCQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFCQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJCTI1NgkJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCiAJCQkJCQkJCQkJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCQkxNgkJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJCTE2CQkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweGEwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweGEwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHhhMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4YTA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfQ0xLU19JTl9IWgorI3VuZGVmCUNPTkZJR19TWVNfQ0xLU19JTl9IWgogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4YTIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4YTIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkJMzY4NjQwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLwotI2RlZmluZSBDRkdfQ1BVU1BFRUQJCTB4MTQxCQkvKiBzZXQgY29yZSBjbG9jayB0byA0MDAvMjAwLzEwMCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQJCTB4MTQxCQkvKiBzZXQgY29yZSBjbG9jayB0byA0MDAvMjAwLzEwMCBNSHogKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogCiAvKgpAQCAtMTUzLDU0ICsxNTMsNTQgQEAKICNkZWZpbmUgUEhZU19GTEFTSF9CQU5LX1NJWkUJCTB4MDIwMDAwMDAJLyogMzIgTUIgQmFua3MgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUJCTB4MDAwNDAwMDAJLyogMjU2IEtCIHNlY3RvcnMgKHgyKSAqLwogCi0jZGVmaW5lIENGR19EUkFNX0JBU0UJCQkweGEwMDAwMDAwCi0jZGVmaW5lIENGR19EUkFNX1NJWkUJCQkweDA0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFCQkJMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fU0laRQkJCTB4MDQwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKIAogLyoKICAqIEdQSU8gc2V0dGluZ3MKICAqLwogCiAKLSNkZWZpbmUgQ0ZHX0dQU1IwX1ZBTAkJMHgwMDQwODAzMAotI2RlZmluZSBDRkdfR1BTUjFfVkFMCQkweDAwQkZBODgyCi0jZGVmaW5lIENGR19HUFNSMl9WQUwJCTB4MDAwMUMwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IwX1ZBTAkJMHhDMDAzMTEwMAotI2RlZmluZSBDRkdfR1BDUjFfVkFMCQkweEZDNDAwMzAwCi0jZGVmaW5lIENGR19HUENSMl9WQUwJCTB4MDAwMDNGRkYKLSNkZWZpbmUgQ0ZHX0dQRFIwX1ZBTAkJMHhDMDQzOTMzMAotI2RlZmluZSBDRkdfR1BEUjFfVkFMCQkweEZDRkZBQjgyCi0jZGVmaW5lIENGR19HUERSMl9WQUwJCTB4MDAwMUZGRkYKLSNkZWZpbmUgQ0ZHX0dBRlIwX0xfVkFMCQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19HQUZSMF9VX1ZBTAkJMHhBNTAwMDAxMAotI2RlZmluZSBDRkdfR0FGUjFfTF9WQUwJCTB4NjAwMDgwMTgKLSNkZWZpbmUgQ0ZHX0dBRlIxX1VfVkFMCQkweEFBQTVBQUFBCi0jZGVmaW5lIENGR19HQUZSMl9MX1ZBTAkJMHhBQUEwMDAwQQotI2RlZmluZSBDRkdfR0FGUjJfVV9WQUwJCTB4MDAwMDAwMDIKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMF9WQUwJCTB4MDA0MDgwMzAKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMV9WQUwJCTB4MDBCRkE4ODIKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMl9WQUwJCTB4MDAwMUMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMF9WQUwJCTB4QzAwMzExMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMV9WQUwJCTB4RkM0MDAzMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMl9WQUwJCTB4MDAwMDNGRkYKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMF9WQUwJCTB4QzA0MzkzMzAKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMV9WQUwJCTB4RkNGRkFCODIKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMl9WQUwJCTB4MDAwMUZGRkYKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9MX1ZBTAkJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX1VfVkFMCQkweEE1MDAwMDEwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfTF9WQUwJCTB4NjAwMDgwMTgKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9VX1ZBTAkJMHhBQUE1QUFBQQorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX0xfVkFMCQkweEFBQTAwMDBBCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfVV9WQUwJCTB4MDAwMDAwMDIKIAotI2RlZmluZSBDRkdfUFNTUl9WQUwJCTB4MjAKKyNkZWZpbmUgQ09ORklHX1NZU19QU1NSX1ZBTAkJMHgyMAogCiAvKgogICogTWVtb3J5IHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX01TQzBfVkFMCQkweDEyNDQ3RkYwCi0jZGVmaW5lIENGR19NU0MxX1ZBTAkJMHgxMkJDNTU1NAotI2RlZmluZSBDRkdfTVNDMl9WQUwJCTB4N0ZGOTdGRjEKLSNkZWZpbmUgQ0ZHX01EQ05GR19WQUwJCTB4MDAwMDFBQzkKLSNkZWZpbmUgQ0ZHX01EUkVGUl9WQUwJCTB4MDNDREMwMTcKLSNkZWZpbmUgQ0ZHX01ETVJTX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01TQzBfVkFMCQkweDEyNDQ3RkYwCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMV9WQUwJCTB4MTJCQzU1NTQKKyNkZWZpbmUgQ09ORklHX1NZU19NU0MyX1ZBTAkJMHg3RkY5N0ZGMQorI2RlZmluZSBDT05GSUdfU1lTX01EQ05GR19WQUwJCTB4MDAwMDFBQzkKKyNkZWZpbmUgQ09ORklHX1NZU19NRFJFRlJfVkFMCQkweDAzQ0RDMDE3CisjZGVmaW5lIENPTkZJR19TWVNfTURNUlNfVkFMCQkweDAwMDAwMDAwCiAKIC8qCiAgKiBQQ01DSUEgYW5kIENGIEludGVyZmFjZXMKICAqLwotI2RlZmluZSBDRkdfTUVDUl9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DTUVNMF9WQUwJCTB4MDAwMTA1MDQKLSNkZWZpbmUgQ0ZHX01DTUVNMV9WQUwJCTB4MDAwMTA1MDQKLSNkZWZpbmUgQ0ZHX01DQVRUMF9WQUwJCTB4MDAwMTA1MDQKLSNkZWZpbmUgQ0ZHX01DQVRUMV9WQUwJCTB4MDAwMTA1MDQKLSNkZWZpbmUgQ0ZHX01DSU8wX1ZBTAkJMHgwMDAwNDcxNQotI2RlZmluZSBDRkdfTUNJTzFfVkFMCQkweDAwMDA0NzE1CisjZGVmaW5lIENPTkZJR19TWVNfTUVDUl9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTBfVkFMCQkweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0xX1ZBTAkJMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMF9WQUwJCTB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0FUVDFfVkFMCQkweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzBfVkFMCQkweDAwMDA0NzE1CisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzFfVkFMCQkweDAwMDA0NzE1CiAKICNkZWZpbmUgX0xFRAkJCTB4MDgwMDAwMTAJLypjaGVjayB0aGlzICovCiAjZGVmaW5lIExFRF9CTEFOSwkJMHgwODAwMDA0MApAQCAtMjA5LDE2ICsyMDksMTYgQEAKIC8qCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMjUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHg0MDAwMAkJLyogMjU2IEtpQiAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDQwMDAwCQkvKiAyNTYgS2lCICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShQSFlTX0ZMQVNIXzEgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKFBIWVNfRkxBU0hfMSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9jbTQwMDguaCBiL2luY2x1ZGUvY29uZmlncy9jbTQwMDguaAppbmRleCBjOWMwNTdjLi5jZmU2ZGU3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvY200MDA4LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2NtNDAwOC5oCkBAIC00Miw4ICs0Miw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTU2LDcgKzU2LDcgQEAKICNkZWZpbmUJQ09ORklHX1NFUklBTDEKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogCiAvKgpAQCAtODMsMjEgKzgzLDIxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJImJvb3QgPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJImJvb3QgPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwODAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAxMDAwMDAwCS8qIDE2IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDA4MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAxMDAwMDAwCS8qIDE2IE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDAwODAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDAwODAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCSgxMDAwKQkJLyogMW1zIHJlc29sdXRpb24gdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCSgxMDAwKQkJLyogMW1zIHJlc29sdXRpb24gdGlja3MgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTExOSwxNyArMTE5LDE3IEBACiAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweDAyMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUgICAgMHgwMDAyMDAwMCAvKiAxMjggS0Igc2VjdG9ycyAoeDEpICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMTI4KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDEyOCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMjAqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMjAqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDIwKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMjAqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMDAgICAgIC8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2NtNDF4eC5oIGIvaW5jbHVkZS9jb25maWdzL2NtNDF4eC5oCmluZGV4IDk0MGUzZTEuLjU0NTRjMmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9jbTQxeHguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvY200MXh4LmgKQEAgLTQyLDggKzQyLDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtNTYsNyArNTYsNyBAQAogI2RlZmluZQlDT05GSUdfU0VSSUFMMQogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAKIC8qCkBAIC04MywyMSArODMsMjEgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiYm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiYm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDA4MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDEwMDAwMDAJLyogMTYgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDgwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDEwMDAwMDAJLyogMTYgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMDA4MDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMDA4MDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJKDEwMDApCQkvKiAxbXMgcmVzb2x1dGlvbiB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJKDEwMDApCQkvKiAxbXMgcmVzb2x1dGlvbiB0aWNrcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTE5LDE3ICsxMTksMTcgQEAKIAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCTB4MDIwMDAwMDAgLyogRmxhc2ggQmFuayAjMSAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRSAgICAweDAwMDIwMDAwIC8qIDEyOCBLQiBzZWN0b3JzICh4MSkgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgxMjgpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMTI4KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyMCpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyMCpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMjAqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyMCpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwMCAgICAgLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvY201MjAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvY201MjAwLmgKaW5kZXggNTI1N2RiMy4uNjIwZmZlYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2NtNTIwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9jbTUyMDAuaApAQCAtNTgsNyArNTgsNyBAQAogICovCiAjZGVmaW5lIENPTkZJR19QU0NfQ09OU09MRQkxCS8qIGNvbnNvbGUgaXMgb24gUFNDMSAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTU3NjAwCS8qIC4uLiBhdCA1NzYwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogI2RlZmluZSBDT05GSUdfU0lMRU5UX0NPTlNPTEUJMQkvKiBuZWVkZWQgdG8gc2lsZW5jZSBpMmNfaW5pdCgpICovCiAKIC8qCkBAIC02NywxNyArNjcsMTcgQEAKICNkZWZpbmUgQ09ORklHX01QQzV4eHhfRkVDCTEKICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkweDAwCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEJLyogYWxsb3cgb3ZlcndyaXRpbmcgb2YgZXRoYWRkciAqLwotLyogdXNlIG1pc2NfaW5pdF9yKCkgdG8gcmVhZCBldGhhZGRyIGZyb20gSTJDIEVFUFJPTSAoc2VlIENGR19JMkNfRUVQUk9NKSAqLworLyogdXNlIG1pc2NfaW5pdF9yKCkgdG8gcmVhZCBldGhhZGRyIGZyb20gSTJDIEVFUFJPTSAoc2VlIENPTkZJR19TWVNfSTJDX0VFUFJPTSkgKi8KICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCTEKICNkZWZpbmUgQ09ORklHX01BQ19PRkZTRVQJMHgzNQkvKiBNQUMgYWRkcmVzcyBvZmZzZXQgaW4gSTJDIEVFUFJPTSAqLwogCiAvKgogICogUE9TVCBzdXBwb3J0CiAgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9NRU1PUlkgfCBDRkdfUE9TVF9DUFUgfCBDRkdfUE9TVF9JMkMpCisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX01FTU9SWSB8IENPTkZJR19TWVNfUE9TVF9DUFUgfCBDT05GSUdfU1lTX1BPU1RfSTJDKQogI2RlZmluZSBNUEM1WFhYX1NSQU1fUE9TVF9TSVpFCShNUEM1WFhYX1NSQU1fU0laRSAtIDQpCiAvKiBMaXN0IG9mIEkyQyBhZGRyZXNzZXMgdG8gYmUgdmVyaWZpZWQgYnkgUE9TVCAqLwotI2RlZmluZSBJMkNfQUREUl9MSVNUCQl7IENGR19JMkNfU0xBVkUsIENGR19JMkNfSU8sIENGR19JMkNfRUVQUk9NIH0KKyNkZWZpbmUgSTJDX0FERFJfTElTVAkJeyBDT05GSUdfU1lTX0kyQ19TTEFWRSwgQ09ORklHX1NZU19JMkNfSU8sIENPTkZJR19TWVNfSTJDX0VFUFJPTSB9CiAKIC8qIGRpc3BsYXkgaW1hZ2UgdGltZXN0YW1wcyAqLwogI2RlZmluZSBDT05GSUdfVElNRVNUQU1QCTEKQEAgLTE0MSw1MyArMTQxLDUzIEBACiAvKgogICogQ2xvY2sgY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwCS8qIFNZU19YVEFMX0lOID0gMzNNSHogKi8KLSNkZWZpbmUgQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCTEJLyogSVBCID0gMTMzTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMAkvKiBTWVNfWFRBTF9JTiA9IDMzTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsJMQkvKiBJUEIgPSAxMzNNSHogKi8KIAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UCQkxCiAKIC8qIFVzZSBPTi1DaGlwIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCiAjaWZkZWYgQ09ORklHX1BPU1QKIC8qIHByZXNlcnZlIHNwYWNlIGZvciB0aGUgcG9zdF93b3JkIGF0IGVuZCBvZiBvbi1jaGlwIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fUE9TVF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKICNlbHNlCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKICNlbmRpZgogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAjZGVmaW5lIENPTkZJR19CT0FSRF9UWVBFUwkxCS8qIHdlIHVzZSBib2FyZF90eXBlICovCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDM4NCA8PCAxMCkJLyogMzg0IGtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiAyNTYga0IgZm9yIG1hbGxvYygpICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBpbml0aWFsIG1lbSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiAzODQga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiAyNTYga0IgZm9yIG1hbGxvYygpICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogaW5pdGlhbCBtZW0gbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRmxhc2ggY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmYzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmMwMDAwMDAKIC8qIHdlIG5lZWQgdGhlc2UgZGVzcGl0ZSB1c2luZyBDRkkgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDIwMDAwMDAgLyogMzIgTWlCICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAyMDAwMDAwIC8qIDMyIE1pQiAqLwogCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAkJMQotI3VuZGVmIENGR19MT1dCT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKKyN1bmRlZiBDT05GSUdfU1lTX0xPV0JPT1QKICNlbmRpZgogCiAKQEAgLTE5NSwxOSArMTk1LDE5IEBACiAgKiBDaGlwIHNlbGVjdHMgY29uZmlndXJhdGlvbgogICovCiAvKiBCb290IENoaXBzZWxlY3QgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDg3RDMxCS8qIGZvciBwY2lfY2xrID0gMzMgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDg3RDMxCS8qIGZvciBwY2lfY2xrID0gMzMgTUh6ICovCiAvKiB1c2UgYm9hcmRfZWFybHlfaW5pdF9yIHRvIGVuYWJsZSBmbGFzaCB3cml0ZSBpbiBDU19CT09UICovCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IKIAogLyogRmxhc2ggbWVtb3J5IGFkZHJlc3NpbmcgKi8KLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQlDRkdfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TVEFSVAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQogCiAvKiBObyBidXJzdCwgZGVhZCBjeWNsZSA9IDEgZm9yIENTMCAoRmxhc2gpICovCi0jZGVmaW5lIENGR19DU19CVVJTVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1NfREVBRENZQ0xFCTB4MDAwMDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDAwMDAwMDAxCiAKIC8qCiAgKiBTRFJBTSBjb25maWd1cmF0aW9uCkBAIC0yMzMsMTEgKzIzMywxMSBAQAogICogSTJDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMiAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMAkvKiA0MCBrSHogKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHgwCi0jZGVmaW5lIENGR19JMkNfSU8JCTB4MzgJLyogUENBOTU1NEFEIEkyQyBJL08gcG9ydCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NCQkweDUzCS8qIEkyQyBFRVBST00gZGV2aWNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMAkvKiA0MCBrSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19JTwkJMHgzOAkvKiBQQ0E5NTU0QUQgSTJDIEkvTyBwb3J0IGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NCQkweDUzCS8qIEkyQyBFRVBST00gZGV2aWNlIGFkZHJlc3MgKi8KIAogLyoKICAqIFJUQyBjb25maWd1cmF0aW9uCkBAIC0yNjcsNyArMjY3LDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogLyogQ29uZmlndXJhdGlvbiBvZiByZWR1bmRhbnQgZW52aXJvbm1lbnQgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ09ORklHX0VOVl9BRERSICsgQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKQEAgLTI4Nyw0NCArMjg3LDQ0IEBACiAgKiBQU0MyOiBVQVJUCiAgKiBQU0MxOiBVQVJUCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDEwNTU5QzQ0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4MTA1NTlDNDQKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCTEJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJMQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCQkxCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDNmMDAwMDAJLyogMSAuLiA2MyBNaUIgaW4gU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDNmMDAwMDAJLyogMSAuLiA2MyBNaUIgaW4gU0RSQU0gKi8KIAogI2RlZmluZSBDT05GSUdfTE9PUFcJCTEKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyoKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdCAqLwogCi0jZGVmaW5lIENGR19YTEJfUElQRUxJTklORwkxCS8qIGVuYWJsZSB0cmFuc2FjdGlvbiBwaXBlbGluZyAqLworI2RlZmluZSBDT05GSUdfU1lTX1hMQl9QSVBFTElOSU5HCTEJLyogZW5hYmxlIHRyYW5zYWN0aW9uIHBpcGVsaW5nICovCiAKIC8qCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCiAjaWZkZWYgQ09ORklHX0NNRF9LR0RCCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9jbWNfcHUyLmggYi9pbmNsdWRlL2NvbmZpZ3MvY21jX3B1Mi5oCmluZGV4IDliNzQ0MzguLjUyNzkyMWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9jbWNfcHUyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2NtY19wdTIuaApAQCAtNDIsNyArNDIsNyBAQAogI2RlZmluZSBDT05GSUdfSU5JVFJEX1RBRwkxCiAKICNpZm5kZWYgQ09ORklHX1NLSVBfTE9XTEVWRUxfSU5JVAotI2RlZmluZSBDRkdfVVNFX01BSU5fT1NDSUxMQVRPUgkJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTRV9NQUlOX09TQ0lMTEFUT1IJCTEKIC8qIGZsYXNoICovCiAjZGVmaW5lIE1DX1BVSUFfVkFMCTB4MDAwMDAwMDAKICNkZWZpbmUgTUNfUFVQX1ZBTAkweDAwMDAwMDAwCkBAIC03Niw4ICs3Niw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCiAKQEAgLTk3LDE4ICs5NywxOCBAQAogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMKIAogI2lmZGVmIENPTkZJR19IQVJEX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkwCS8qIG5vdCB1c2VkICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTAJLyogbm90IHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTAJLyogbm90IHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTAJLyogbm90IHVzZWQgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19SUzVDMzcyQQkJLyogUklDT0ggSTJDIFJUQyAqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4MzIKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDMyCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKICNlbHNlCiAjZGVmaW5lIENPTkZJR19USU1FU1RBTVAKICNlbmRpZgogLyogc3RpbGwgYWJvdXQgMjAga0IgZnJlZSB3aXRoIHRoaXMgZGVmaW5lZCAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkgICAgICAxCiAKQEAgLTE0MSw3ICsxNDEsNyBAQAogI2VuZGlmCiAKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAogCiAjZGVmaW5lIEFUOTFfU01BUlRfTUVESUFfQUxFCSgxIDw8IDIyKQkvKiBvdXIgQUxFIGlzIEFEMjIgKi8KICNkZWZpbmUgQVQ5MV9TTUFSVF9NRURJQV9DTEUJKDEgPDwgMjEpCS8qIG91ciBDTEUgaXMgQUQyMSAqLwpAQCAtMTUwLDQ0ICsxNTAsNDQgQEAKICNkZWZpbmUgUEhZU19TRFJBTQkJMHgyMDAwMDAwMAogI2RlZmluZSBQSFlTX1NEUkFNX1NJWkUJCTB4MTAwMDAwMAkvKiAxNiBtZWdzICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJUEhZU19TRFJBTQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCUNGR19NRU1URVNUX1NUQVJUICsgUEhZU19TRFJBTV9TSVpFIC0gMjYyMTQ0CisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAlQSFlTX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCUNPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArIFBIWVNfU0RSQU1fU0laRSAtIDI2MjE0NAogCiAjZGVmaW5lIENPTkZJR19EUklWRVJfRVRIRVIKICNkZWZpbmUgQ09ORklHX05FVF9SRVRSWV9DT1VOVAkJMjAKICNkZWZpbmUgQ09ORklHX0FUOTFDX1VTRV9STUlJCiAKLSNkZWZpbmUgQ0ZHX1NQSV9XUklURV9UT1VUCQkoNSpDRkdfSFopCi0jZGVmaW5lIENGR19NQVhfREFUQUZMQVNIX0JBTktTCQkyCi0jZGVmaW5lIENGR19NQVhfREFUQUZMQVNIX1BBR0VTCQkxNjM4NAotI2RlZmluZSBDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwCTB4QzAwMDAwMDAJLyogTG9naWNhbCBhZHJlc3MgZm9yIENTMCAqLwotI2RlZmluZSBDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MzCTB4RDAwMDAwMDAJLyogTG9naWNhbCBhZHJlc3MgZm9yIENTMyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NQSV9XUklURV9UT1VUCQkoNSpDT05GSUdfU1lTX0haKQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1MJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX1BBR0VTCQkxNjM4NAorI2RlZmluZSBDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMAkweEMwMDAwMDAwCS8qIExvZ2ljYWwgYWRyZXNzIGZvciBDUzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzMJMHhEMDAwMDAwMAkvKiBMb2dpY2FsIGFkcmVzcyBmb3IgQ1MzICovCiAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkJMHgxMDAwMDAwMAogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCQkweDgwMDAwMCAgLyogOCBtZWdzIG1haW4gZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTI1NgotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkJKDExICogQ0ZHX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkJKCAyICogQ0ZHX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCQkoMTEgKiBDT05GSUdfU1lTX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJCSggMiAqIENPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJCTB4MjAwMDAJCS8qIGFmdGVyIHUtYm9vdC5iaW4gKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJCSg2NCA8PCAxMCkJLyogc2VjdG9ycyBhcmUgNjQga0IgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJKDE2IDw8IDEwKQkvKiBVc2Ugb25seSAxNiBrQiAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjEwMDAwMDAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDIxMDAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCwgNTc2MDAsIDM4NDAwLCAxOTIwMCwgOTYwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAsIDU3NjAwLCAzODQwMCwgMTkyMDAsIDk2MDAgfQogCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTMyCQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTMyCQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX0haIDEwMDAKLSNkZWZpbmUgQ0ZHX0haX0NMT0NLIChBVDkxQ19NQVNURVJfQ0xPQ0svMikJLyogQVQ5MUNfVEMwX0NNUiBpcyBpbXBsaWNpdGx5IHNldCB0byAqLworI2RlZmluZSBDT05GSUdfU1lTX0haIDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWl9DTE9DSyAoQVQ5MUNfTUFTVEVSX0NMT0NLLzIpCS8qIEFUOTFDX1RDMF9DTVIgaXMgaW1wbGljaXRseSBzZXQgdG8gKi8KIAkJCQkJCS8qIEFUOTFDX1RDX1RJTUVSX0RJVjFfQ0xPQ0sgKi8KIAogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgzMioxMDI0KQkvKiByZWd1bGFyIHN0YWNrICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvY21pX21wYzV4eC5oIGIvaW5jbHVkZS9jb25maWdzL2NtaV9tcGM1eHguaAppbmRleCAxOWMyODM2Li5mYTcwYTA5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvY21pX21wYzV4eC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9jbWlfbXBjNXh4LmgKQEAgLTkzLDI1ICs5MywyNSBAQAogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCiAKLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDBmYTAwMAkvKiAxIE1CIGluIFNSQU0JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwMGZhMDAwCS8qIDEgTUIgaW4gU1JBTQkJCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCQkvKiBEZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBEZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAxMjUwMDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMTI1MDAwMCB9CiAKIAogLyoKQEAgLTEyMSwzOSArMTIxLDM5IEBACiAvKgogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCAoVGhpcyBpcyBub3QgdGhlIElNTVIgY29udGVudCkKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHgwMTAwMDAwMAkJLyogUGh5c2ljYWwgc3RhcnQgYWRyZXNzIG9mIGludGVybmFsIG1lbW9yeSBtYXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweDAxMDAwMDAwCQkvKiBQaHlzaWNhbCBzdGFydCBhZHJlc3Mgb2YgaW50ZXJuYWwgbWVtb3J5IG1hcCAqLwogCiAvKgogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJKENGR19JTU1SICsgMHgwMDNmOTgwMCkJLyogUGh5c2ljYWwgc3RhcnQgYWRyZXNzIG9mIGludGVybmFsIE1QQzU1NSB3cml0YWJsZSBSQU0gKi8KLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkoQ0ZHX0lNTVIgKyAweDAwM2ZmZmZmKQkvKiBQaHlzaWNhbCBlbmQgYWRyZXNzIG9mIGludGVybmFsIE1QQzU1NSB1c2VkIFJBTSBhcmVhCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0CQkJLyogU2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBnbG9iYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCSgoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19JTklUX1JBTV9BRERSKSAtIENGR19HQkxfREFUQV9TSVpFKSAvKiBPZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHJhbSAqLwotI2RlZmluZQlDRkdfSU5JVF9TUF9BRERSCTB4MDEzZmEwMDAJCS8qIFBoeXNpY2FsIHN0YXJ0IGFkcmVzcyBvZiBpbml0YWwgc3RhY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCShDT05GSUdfU1lTX0lNTVIgKyAweDAwM2Y5ODAwKQkvKiBQaHlzaWNhbCBzdGFydCBhZHJlc3Mgb2YgaW50ZXJuYWwgTVBDNTU1IHdyaXRhYmxlIFJBTSAqLworI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkoQ09ORklHX1NZU19JTU1SICsgMHgwMDNmZmZmZikJLyogUGh5c2ljYWwgZW5kIGFkcmVzcyBvZiBpbnRlcm5hbCBNUEM1NTUgdXNlZCBSQU0gYXJlYQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQJCQkvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGdsb2JhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCSgoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIpIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKSAvKiBPZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHJhbSAqLworI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfQUREUgkweDAxM2ZhMDAwCQkvKiBQaHlzaWNhbCBzdGFydCBhZHJlc3Mgb2YgaW5pdGFsIHN0YWNrICovCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAkvKiBNb25pdG9yIHdvbid0IGNoYW5nZSBtZW1vcnkgbWFwCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MDIwMDAwMDAJLyogRXh0ZXJuYWwgZmxhc2ggKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIE1vbml0b3Igd29uJ3QgY2hhbmdlIG1lbW9yeSBtYXAJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDIwMDAwMDAJLyogRXh0ZXJuYWwgZmxhc2ggKi8KICNkZWZpbmUgUExEX0JBU0UJCTB4MDMwMDAwMDAJLyogUExEICAqLwogI2RlZmluZSBBTllCVVNfQkFTRQkJMHgwMzAxMDAwMAkvKiBBbnlidXMgTW9kdWxlICovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FEUkVTUwkweDAxMDAwMDAwCS8qIEFkcmVzcyB3aGljaCBjYXVzZXMgcmVzZXQgKi8KLSNkZWZpbmUJQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQkvKiBURVhUX0JBU0UgaXMgZGVmaW5lZCBpbiB0aGUgYm9hcmQgY29uZmlnLm1rIGZpbGUuCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQURSRVNTCTB4MDEwMDAwMDAJLyogQWRyZXNzIHdoaWNoIGNhdXNlcyByZXNldCAqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogVEVYVF9CQVNFIGlzIGRlZmluZWQgaW4gdGhlIGJvYXJkIGNvbmZpZy5tayBmaWxlLgkqLwogCQkJCQkJLyogVGhpcyBhZHJlc3MgaXMgZ2l2ZW4gdG8gdGhlIGxpbmtlciB3aXRoIC1UdGV4dCB0bwkqLwogCQkJCQkJLyogbG9jYXRlIHRoZSB0ZXh0IHNlY3Rpb24gYXQgdGhpcyBhZHJlc3MuCQkqLwotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCQkJCSovCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoNjQgPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkJCQkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkJCQkqLworI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSg2NCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCQkJCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CQkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJCSovCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTYyLDE4ICsxNjIsMTggQEAKICAqCiAgKi8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIE1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJCS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxODAwMDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNjAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OICAgIDEJCS8qIFBoeXNpY2FsbHkgc2VjdGlvbiBwcm90ZWN0aW9uIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIE1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CQkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTE4MDAwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNjAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAgICAxCQkvKiBQaHlzaWNhbGx5IHNlY3Rpb24gcHJvdGVjdGlvbiBvbgkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogCiAjaWZkZWYJQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgwMDAyMDAwMAkvKiBFbnZpcm9ubWVudCBzdGFydHMgYXQgdGhpcyBhZHJlc3MJKi8KICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDAwMDEwMDAwCS8qIFNldCB3aG9sZSBzZWN0b3IgYXMgZW52CQkqLwotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE4MywxMCArMTgzLDEwIEBACiAgKiBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXUCkKICNlbmRpZgkvKiBDT05GSUdfV0FUQ0hET0cgKi8KIApAQCAtMTk1LDE0ICsxOTUsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIKQEAgLTIxMSw3ICsyMTEsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMDAKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFNDQ1JfUlRESVYgICAgfCBTQ0NSX1JUU0VMICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFNDQ1JfUlRESVYgICAgfCBTQ0NSX1JUU0VMICAgIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjE5LDcgKzIxOSw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEYXRhIHNob3cgY3ljbGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwKQkJLyogRGlzYWJsZSBkYXRhIHNob3cgY3ljbGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDApCQkvKiBEaXNhYmxlIGRhdGEgc2hvdyBjeWNsZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIKQEAgLTIyNyw4ICsyMjcsOCBAQAogICogU2V0IGFsbCBiaXRzIHRvIDQwIE1oegogICoKICAqLwotI2RlZmluZSBDRkdfT1NDX0NMSwkoKHVpbnQpNDAwMDAwMCkJCS8qIE9zY2lsbGF0b3IgY2xvY2sgaXMgNE1IegkqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfTUZfOSB8IFBMUFJDUl9ESVZGXzApCisjZGVmaW5lIENPTkZJR19TWVNfT1NDX0NMSwkoKHVpbnQpNDAwMDAwMCkJCS8qIE9zY2lsbGF0b3IgY2xvY2sgaXMgNE1IegkqLworI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX01GXzkgfCBQTFBSQ1JfRElWRl8wKQogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIzNiwzNiArMjM2LDM2IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19VTUNSCShVTUNSX0ZTUEVFRCkJCS8qIElNQiBjbG9jayBzYW1lIGFzIFUtYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfVU1DUgkoVU1DUl9GU1BFRUQpCQkvKiBJTUIgY2xvY2sgc2FtZSBhcyBVLWJ1cwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJQ1RSTCAtIEktQnVzIFN1cHBvcnQgQ29udHJvbCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JQ1RSTAkoSUNUUkxfSVNDVF9TRVJfNykJLyogVGFrZSBvdXQgb2Ygc2VyaWFsaXplZCBtb2RlCSovCisjZGVmaW5lIENPTkZJR19TWVNfSUNUUkwJKElDVFJMX0lTQ1RfU0VSXzcpCS8qIFRha2Ugb3V0IG9mIHNlcmlhbGl6ZWQgbW9kZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBVU0lVIC0gTWVtb3J5IENvbnRyb2xsZXIgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoQ0ZHX0ZMQVNIX0JBU0UgfCBCUl9WIHwgQlJfQkkgfCBCUl9QU18xNikKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCShPUl9BRERSX01LX0ZGIHwgT1JfU0NZXzMpCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCQkoQU5ZQlVTX0JBU0UpCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkoT1JfQUREUl9NS19GRkZGIHwgT1JfU0NZXzEgfCBPUl9FVEhSKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJKENGR19TRFJBTV9CQVNFIHwgQlJfViB8IEJSX1BTXzMyKQotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJKE9SX0FERFJfTUtfRkYpCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkoUExEX0JBU0UgfCBCUl9WIHwgQlJfQkkgfCBCUl9MQkRJUiB8IEJSX1BTXzgpCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQkoT1JfQUREUl9NS19GRiB8IE9SX1RSTFggfCBPUl9CU0NZIHwgT1JfU0NZXzggfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJSX1YgfCBCUl9CSSB8IEJSX1BTXzE2KQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCShPUl9BRERSX01LX0ZGIHwgT1JfU0NZXzMpCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJKEFOWUJVU19CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCShPUl9BRERSX01LX0ZGRkYgfCBPUl9TQ1lfMSB8IE9SX0VUSFIpCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJSX1YgfCBCUl9QU18zMikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkoT1JfQUREUl9NS19GRikKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkoUExEX0JBU0UgfCBCUl9WIHwgQlJfQkkgfCBCUl9MQkRJUiB8IEJSX1BTXzgpCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkJKE9SX0FERFJfTUtfRkYgfCBPUl9UUkxYIHwgT1JfQlNDWSB8IE9SX1NDWV84IHwgXAogCQkJCSBPUl9BQ1NfMTAgfCBPUl9FVEhSIHwgT1JfQ1NOVCkKIAotI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UJLyogV2UgZG9uJ3QgcmVhbGlnbiB0aGUgZmxhc2gJKi8KKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBXZSBkb24ndCByZWFsaWduIHRoZSBmbGFzaAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBERVIgLSBUaW1lciBEZWNyZW1lbnRlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbGlzZSB0byB6ZXJvCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJCQkweDAwMDAwMDAwCiAKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9jb2JyYTUyNzIuaCBiL2luY2x1ZGUvY29uZmlncy9jb2JyYTUyNzIuaAppbmRleCBlZTUxMTZlLi5mYjMyZjNmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvY29icmE1MjcyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2NvYnJhNTI3Mi5oCkBAIC01MywxMyArNTMsMTMgQEAKIC8qIC0tLQogICogRGVmaW5lcyBwcm9jZXNzb3IgY2xvY2sgLSBpbXBvcnRhbnQgZm9yIGNvcnJlY3QgdGltaW5ncyBjb25jZXJuaW5nIHNlcmlhbAogICogaW50ZXJmYWNlIGV0Yy4KLSAqIENGR19IWiBnaXZlcyB1bml0OiAxMDAwIC0+IDEgSHogXj0gMTAwMCBtcworICogQ09ORklHX1NZU19IWiBnaXZlcyB1bml0OiAxMDAwIC0+IDEgSHogXj0gMTAwMCBtcwogICogLS0tCiAgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCi0jZGVmaW5lIENGR19DTEsJCQk2NjAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMTYJCS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DTEsJCQk2NjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTE2CQkvKiBTRFJBTSBzaXplIGluIE1CICovCiAKIC8qIC0tLQogICogRW5hYmxlIHVzZSBvZiBFdGhlcm5ldApAQCAtNzMsMTUgKzczLDE1IEBACiAvKiAtLS0KICAqIERlZmluZSBiYXVkcmF0ZSBmb3IgVUFSVDEgKGNvbnNvbGUgb3V0cHV0LCB0ZnRwLCAuLi4pCiAgKiBkZWZhdWx0IHZhbHVlIG9mIENPTkZJR19CQVVEUkFURSBmb3IgU2VudGVjIGJvYXJkOiAxOTIwMCBiYXVkCi0gKiBDRkdfQkFVRFJBVEVfVEFCTEUgZGVmaW5lcyB2YWx1ZXMgdGhhdCBjYW4gYmUgc2VsZWN0ZWQgaW4gdS1ib290IGNvbW1hbmQKKyAqIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgZGVmaW5lcyB2YWx1ZXMgdGhhdCBjYW4gYmUgc2VsZWN0ZWQgaW4gdS1ib290IGNvbW1hbmQKICAqIGludGVyZmFjZQogICogLS0tCiAgKi8KIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTE5MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSB7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKiAtLS0KICAqIHNldCAiI2lmIDAiIHRvICIjaWYgMSIgaWYgKEhhcmR3YXJlKS1XQVRDSERPRyBzaG91bGQgYmUgZW5hYmxlZCAmIGNoYW5nZQpAQCAtMTU5LDIyICsxNTksMjIgQEAKICMJZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCTEKICMJZGVmaW5lIENPTkZJR19NSUkJCTEKICMJZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQotIwlkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQotIwlkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAotIwlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCWRlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQorIwlkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgKKyMJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KIAotIwlkZWZpbmUgQ0ZHX0ZFQzBfUElOTVVYCQkwCi0jCWRlZmluZSBDRkdfRkVDMF9NSUlCQVNFCQlDRkdfRkVDMF9JT0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9QSU5NVVgJCTAKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9NSUlCQVNFCQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCiAjCWRlZmluZSBNQ0ZGRUNfVE9VVF9MT09QCQk1MDAwMAotLyogSWYgQ0ZHX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLwotIwlpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorLyogSWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KKyMJaWZuZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjCQlkZWZpbmUgRkVDRFVQTEVYCUZVTEwKICMJCWRlZmluZSBGRUNTUEVFRAkJXzEwMEJBU0VUCiAjCWVsc2UKLSMJCWlmbmRlZiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KLSMJCQlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQlpZm5kZWYgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAjCQllbmRpZgotIwllbmRpZgkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyMJZW5kaWYJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogI2VuZGlmCiAKIC8qCkBAIC0yMTEsMjMgKzIxMSwyMyBAQAogCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiQ09CUkEgPiAiCS8qIExheW91dCBvZiB1LWJvb3QgcHJvbXB0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJDT0JSQSA+ICIJLyogTGF5b3V0IG9mIHUtYm9vdCBwcm9tcHQqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjAwMDAJCS8qRGVmaW5lcyBkZWZhdWx0IFJBTSBhZGRyZXNzCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDIwMDAwCQkvKkRlZmluZXMgZGVmYXVsdCBSQU0gYWRkcmVzcwogZnJvbSB3aGljaCB1c2VyIHByb2dyYW1zIHdpbGwgYmUgc3RhcnRlZCAqLwogCiAvKi0tLSovCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKIC8qCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNDAsOCArMjQwLDggQEAKICAqIC0tLQogICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg0MDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDM4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHg0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgzODAwMDAKIAogLyogLS0tCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjU1LDM5ICsyNTUsMzkgQEAKICAqIC0tLQogICovCiAKLSNkZWZpbmUgQ0ZHX01CQVIJCTB4MTAwMDAwMDAJLyogUmVnaXN0ZXIgQmFzZSBBZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4MTAwMDAwMDAJLyogUmVnaXN0ZXIgQmFzZSBBZGRycyAqLwogCiAvKiAtLS0KICAqIFN5c3RlbSBDb25mLiBSZWcuICYgU3lzdGVtIFByb3RlY3Rpb24gUmVnLgogICogLS0tCiAgKi8KIAotI2RlZmluZSBDRkdfU0NSCQkJMHgwMDAzCi0jZGVmaW5lIENGR19TUFIJCQkweGZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1IJCQkweDAwMDMKKyNkZWZpbmUgQ09ORklHX1NZU19TUFIJCQkweGZmZmYKIAogLyogLS0tCiAgKiBFdGhlcm5ldCBzZXR0aW5ncwogICogLS0tCiAgKi8KIAotI2RlZmluZSBDRkdfRElTQ09WRVJfUEhZCi0jZGVmaW5lIENGR19FTkVUX0JEX0JBU0UJMHg3ODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKKyNkZWZpbmUgQ09ORklHX1NZU19FTkVUX0JEX0JBU0UJMHg3ODAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBpbnRlcm5hbCBTUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCiAKIC8qCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI5NSw0MiArMjk1LDQyIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIAotLyogI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMTYgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkxNiAqLwogCiAvKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmZlMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmZTAwMDAwCiAKICNpZmRlZglDT05GSUdfTU9OSVRPUl9JU19JTl9SQU0KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4MjAwMDAKICNlbHNlCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFICsgMHg0MDApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMCkKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgyMDAwMAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkKLSNkZWZpbmUgQ0ZHX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JNjQqMTAyNAogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbiA/PwogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTAwMAkvKiBmbGFzaCB0aW1lb3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMDAwCS8qIGZsYXNoIHRpbWVvdXQgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1lbW9yeSBiYW5rIGRlZmluaXRpb25zCkBAIC0zMzgsMjkgKzMzOCwyOSBAQAogICogUGxlYXNlIHJlZmVyIGFsc28gdG8gTW90b3JvbGEgQ29sZGZpcmUgdXNlciBtYW51YWwgLSBDaGFwdGVyIFhYWAogICogPGh0dHA6Ly9lLXd3dy5tb3Rvcm9sYS5jb20vZmlsZXMvZHNwL2RvYy9yZWZfbWFudWFsL01DRjUyNzJVTS5wZGY+CiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCTB4RkZFMDAyMDEKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCTB4RkZFMDAwMTQKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweEZGRTAwMjAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhGRkUwMDAxNAogCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCQkwCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCTAKIAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJMAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkwCiAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCTAKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkwCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkJMAogCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCQkwCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JCTAKIAotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJMAotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCQkwCiAKLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JCTAKLSNkZWZpbmUgQ0ZHX09SNl9QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjZfUFJFTElNCQkwCisjZGVmaW5lIENPTkZJR19TWVNfT1I2X1BSRUxJTQkJMAogCi0jZGVmaW5lIENGR19CUjdfUFJFTElNCQkweDAwMDAwNzAxCi0jZGVmaW5lIENGR19PUjdfUFJFTElNCQkweEZGMDAwMDdDCisjZGVmaW5lIENPTkZJR19TWVNfQlI3X1BSRUxJTQkJMHgwMDAwMDcwMQorI2RlZmluZSBDT05GSUdfU1lTX09SN19QUkVMSU0JCTB4RkYwMDAwN0MKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTEVEIGNvbmZpZwpAQCAtMzc3LDE1ICszNzcsMTUgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBvcnQgY29uZmlndXJhdGlvbiAoR1BJTykKICAqLwotI2RlZmluZSBDRkdfUEFDTlQJCTB4MDAwMDAwMDAJCS8qIFBvcnRBIGNvbnRyb2wgcmVnLjogQWxsIHBpbnMgYXJlIGV4dGVybmFsCisjZGVmaW5lIENPTkZJR19TWVNfUEFDTlQJCTB4MDAwMDAwMDAJCS8qIFBvcnRBIGNvbnRyb2wgcmVnLjogQWxsIHBpbnMgYXJlIGV4dGVybmFsCiBHUElPKi8KLSNkZWZpbmUgQ0ZHX1BBRERSCQkweDAwRkYJCQkvKiBQb3J0QSBkaXJlY3Rpb24gcmVnLjogUEE3IHRvIFBBMCBhcmUgb3V0cHV0cworI2RlZmluZSBDT05GSUdfU1lTX1BBRERSCQkweDAwRkYJCQkvKiBQb3J0QSBkaXJlY3Rpb24gcmVnLjogUEE3IHRvIFBBMCBhcmUgb3V0cHV0cwogKDFePW91dHB1dCwgMF49aW5wdXQpICovCi0jZGVmaW5lIENGR19QQURBVAkJTEVEX1NUQVRfMAkJLyogUG9ydEEgdmFsdWUgcmVnLjogVHVybiBhbGwgTEVEIG9mZiAqLwotI2RlZmluZSBDRkdfUEJDTlQJCTB4NTU1NTQxNTUJCS8qIFBvcnRCIGNvbnRyb2wgcmVnLjogRXRoZXJuZXQvVUFSVAorI2RlZmluZSBDT05GSUdfU1lTX1BBREFUCQlMRURfU1RBVF8wCQkvKiBQb3J0QSB2YWx1ZSByZWcuOiBUdXJuIGFsbCBMRUQgb2ZmICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJDTlQJCTB4NTU1NTQxNTUJCS8qIFBvcnRCIGNvbnRyb2wgcmVnLjogRXRoZXJuZXQvVUFSVAogY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfUEJERFIJCTB4MDAwMAkJCS8qIFBvcnRCIGRpcmVjdGlvbjogQWxsIHBpbnMgY29uZmlndXJlZCBhcyBpbnB1dHMgKi8KLSNkZWZpbmUgQ0ZHX1BCREFUCQkweDAwMDAJCQkvKiBQb3J0QiB2YWx1ZSByZWcuICovCi0jZGVmaW5lIENGR19QRENOVAkJMHgwMDAwMDAwMAkJLyogUG9ydEQgY29udHJvbCByZWcuICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJERFIJCTB4MDAwMAkJCS8qIFBvcnRCIGRpcmVjdGlvbjogQWxsIHBpbnMgY29uZmlndXJlZCBhcyBpbnB1dHMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQkRBVAkJMHgwMDAwCQkJLyogUG9ydEIgdmFsdWUgcmVnLiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BEQ05UCQkweDAwMDAwMDAwCQkvKiBQb3J0RCBjb250cm9sIHJlZy4gKi8KIAogI2VuZGlmCS8qIF9DT05GSUdfQ09CUkE1MjcyX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9jb2dlbnRfbXBjODI2MC5oIGIvaW5jbHVkZS9jb25maWdzL2NvZ2VudF9tcGM4MjYwLmgKaW5kZXggYjM5ZjRjYi4uYzU4MDIzMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2NvZ2VudF9tcGM4MjYwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2NvZ2VudF9tcGM4MjYwLmgKQEAgLTEzNiwyNSArMTM2LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMWMwMDAwMAkvKiA0IC4uLiAyOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMWMwMDAwMAkvKiA0IC4uLiAyOCBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTY0LDE5ICsxNjQsMTkgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTG93IExldmVsIENvZ2VudCBzZXR0aW5ncwotICogaWYgQ0ZHX0NNQV9DT05TX1NFUklBTCBpcyBkZWZpbmVkLCBtYWtlIHN1cmUgdGhlIDgyNjAgQ1BNIHNlcmlhbCBpcyBub3QuCisgKiBpZiBDT05GSUdfU1lTX0NNQV9DT05TX1NFUklBTCBpcyBkZWZpbmVkLCBtYWtlIHN1cmUgdGhlIDgyNjAgQ1BNIHNlcmlhbCBpcyBub3QuCiAgKiBhbHNvLCBtYWtlIHN1cmUgQ09ORklHX0NPTlNfSU5ERVggaXMgc3RpbGwgZGVmaW5lZCAtIHRoZSBpbmRleCB3aWxsIGJlCiAgKiAxIGZvciBzZXJpYWxBLCAyIGZvciBzZXJpYWxCLCAzIGZvciBzZXIyQSwgNCBmb3Igc2VyMkIKICAqIChzZWNvbmQgMiBmb3IgQ01BMTIwIG9ubHkpCiAgKi8KLSNkZWZpbmUgQ0ZHX0NNQV9NQl9CQVNFCQkweDAwMDAwMDAwCS8qIGJhc2Ugb2YgbS9iIGFkZHJlc3Mgc3BhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTUFfTUJfQkFTRQkJMHgwMDAwMDAwMAkvKiBiYXNlIG9mIG0vYiBhZGRyZXNzIHNwYWNlICovCiAKICNpbmNsdWRlIDxjb25maWdzL2NvZ2VudF9jb21tb24uaD4KIAogI2lmZGVmIENPTkZJR19DT05TX05PTkUKLSNkZWZpbmUgQ0ZHX0NNQV9DT05TX1NFUklBTAkvKiB1c2UgQ29nZW50IG1vdGhlcmJvYXJkIHNlcmlhbCBmb3IgY29uc29sZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NNQV9DT05TX1NFUklBTAkvKiB1c2UgQ29nZW50IG1vdGhlcmJvYXJkIHNlcmlhbCBmb3IgY29uc29sZSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19DTUFfTENEX0hFQVJUQkVBVAkvKiBkZWZpbmUgZm9yIHNlYyByb3RhdG9yIGluIGxjZCBjb3JuZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTUFfTENEX0hFQVJUQkVBVAkvKiBkZWZpbmUgZm9yIHNlYyByb3RhdG9yIGluIGxjZCBjb3JuZXIgKi8KICNkZWZpbmUgQ09ORklHX1NIT1dfQUNUSVZJVFkKIAogI2lmIChDTUFfTUJfQ0FQUyAmIENNQV9NQl9DQVBfRkxBU0gpCkBAIC0xOTcsNjggKzE5Nyw2OCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZCBSZXNldCBDb25maWd1cmF0aW9uIFdvcmRzCiAgKgotICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ0ZHXyoKKyAqIGlmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENPTkZJR19TWVNfKgogICogZGVmaW5lcyBmb3IgdGhlIHZhcmlvdXMgcmVnaXN0ZXJzIGFmZmVjdGVkIGJ5IHRoZSBIUkNXIGUuZy4gY2hhbmdpbmcKLSAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDRkdfU0lVTUNSLgorICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENPTkZJR19TWVNfU0lVTUNSLgogICovCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkoSFJDV19FQk18SFJDV19CUFMxMHxIUkNXX0wyQ1BDMTB8SFJDV19EUFBDMTF8XAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCShIUkNXX0VCTXxIUkNXX0JQUzEwfEhSQ1dfTDJDUEMxMHxIUkNXX0RQUEMxMXxcCiAJCQkgSFJDV19JU0IxMDB8SFJDV19NTVIxMXxIUkNXX01PRENLX0gwMTAxKQogLyogbm8gc2xhdmVzIHNvIGp1c3QgZHVwbGljYXRlIHRoZSBtYXN0ZXIgaHJjdyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEJQ0ZHX0hSQ1dfTUFTVEVSCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMglDRkdfSFJDV19NQVNURVIKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzCUNGR19IUkNXX01BU1RFUgotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQJQ0ZHX0hSQ1dfTUFTVEVSCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQlDRkdfSFJDV19NQVNURVIKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2CUNGR19IUkNXX01BU1RFUgotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcJQ0ZHX0hSQ1dfTUFTVEVSCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJQ09ORklHX1NZU19IUkNXX01BU1RFUgorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyCUNPTkZJR19TWVNfSFJDV19NQVNURVIKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMwlDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJQ09ORklHX1NZU19IUkNXX01BU1RFUgorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1CUNPTkZJR19TWVNfSFJDV19NQVNURVIKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNglDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJQ09ORklHX1NZU19IUkNXX01BU1RFUgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEYwMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQkxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJQ01BX01CX1JBTV9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ01BX01CX1JBTV9CQVNFCiAjaWZkZWYgQ09ORklHX0NNQTMwMgotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ01BX01CX1NMT1QyX0JBU0UJLyogY21hMzAyIGluIHNsb3QgMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNNQV9NQl9TTE9UMl9CQVNFCS8qIGNtYTMwMiBpbiBzbG90IDIgKi8KICNlbHNlCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDTUFfTUJfRkxBU0hfQkFTRQkvKiBmbGFzaCBvbiBtL2IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDTUFfTUJfRkxBU0hfQkFTRQkvKiBmbGFzaCBvbiBtL2IgKi8KICNlbmRpZgotI2RlZmluZQlDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW0gbWFwIGZvciBMaW51eCovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW0gbWFwIGZvciBMaW51eCovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcwkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCUNGR19GTEFTSF9CQVNFIC8qIEFkZHIgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJQ09ORklHX1NZU19GTEFTSF9CQVNFIC8qIEFkZHIgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjaWZkZWYgQ09ORklHX0NNQTMwMgogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkoNTEyKjEwMjQpIC8qIHNlZSBSRUFETUUgLSBlbnYgc2VjdCByZWFsIHNpemUgKi8KQEAgLTI2OSw5ICsyNjksOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI4NCwyOSArMjg0LDI5IEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCShISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0l8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfEhJRDBfRENJfFwKIAkJCQlISUQwX0lGRU18SElEMF9BQkUpCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCShISUQwX0lDRXxISUQwX0lGRU18SElEMF9BQkUpCi0jZGVmaW5lIENGR19ISUQyCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCShISUQwX0lDRXxISUQwX0lGRU18SElEMF9BQkUpCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNUiAtIFJlc2V0IE1vZGUgUmVnaXN0ZXIJCQkJCSA1LTUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHR1cm4gb24gQ2hlY2tzdG9wIFJlc2V0IEVuYWJsZQogICovCi0jZGVmaW5lIENGR19STVIJCVJNUl9DU1JFCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQlSTVJfQ1NSRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQ1IgLSBCdXMgQ29uZmlndXJhdGlvbgkJCQkJIDQtMjUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfQkNSCQlCQ1JfRUJNCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQlCQ1JfRUJNCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbgkJCQkgNC0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EUFBDMTF8U0lVTUNSX0wyQ1BDMTB8U0lVTUNSX01NUjExKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RQUEMxMXxTSVVNQ1JfTDJDUEMxMHxTSVVNQ1JfTU1SMTEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNZUENSIC0gU3lzdGVtIFByb3RlY3Rpb24gQ29udHJvbAkJCQkgNC0zNQpAQCAtMzE1LDEwICszMTUsMTAgQEAKICAqIFdhdGNoZG9nICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCA2MHggQnVzIE1vbml0b3IgZW5hYmxlCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQfFNZUENSX1NXRSkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUCkKICNlbmRpZiAvKiBDT05GSUdfV0FUQ0hET0cgKi8KIApAQCAtMzI4LDcgKzMyOCw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkgNC00MgpAQCAtMzM2LDIwICszMzYsMjAgQEAKICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssIGFuZCBlbmFibGUKICAqIFBlcmlvZGljIHRpbWVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIENvbnRyb2wJCQkJCSA5LTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVuc3VyZSBERkJSRyBpcyBEaXZpZGUgYnkgMTYKICAqLwotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9ERkJSRzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfREZCUkcwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uCQkJCTEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUgkwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUgkwCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTUEyODIpCiAKQEAgLTM2NywyNiArMzY3LDI2IEBACiAgKiAodGhlICpfU0laRSB2YXJzIG11c3QgYmUgYSBwb3dlciBvZiAyKQogICovCiAKLSNkZWZpbmUgQ0ZHX0NNQV9DUzBfQkFTRQlURVhUX0JBU0UJLyogRVBST00gKi8KLSNkZWZpbmUgQ0ZHX0NNQV9DUzBfU0laRQkoMSA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19DTUFfQ1MwX0JBU0UJVEVYVF9CQVNFCS8qIEVQUk9NICovCisjZGVmaW5lIENPTkZJR19TWVNfQ01BX0NTMF9TSVpFCSgxIDw8IDIwKQogI2lmIDAKLSNkZWZpbmUgQ0ZHX0NNQV9DUzJfQkFTRQkweDEwMDAwMDAwCS8qIExvY2FsIEJ1cyBTRFJBTSAqLwotI2RlZmluZSBDRkdfQ01BX0NTMl9TSVpFCSgxNiA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19DTUFfQ1MyX0JBU0UJMHgxMDAwMDAwMAkvKiBMb2NhbCBCdXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTUFfQ1MyX1NJWkUJKDE2IDw8IDIwKQogI2VuZGlmCiAKIC8qCiAgKiBDUzAgbWFwcyB0aGUgRVBST00gb24gdGhlIGNwdSBtb2R1bGUKLSAqIFNldCBpdCBmb3IgMTAgd2FpdCBzdGF0ZXMsIGFkZHJlc3MgQ0ZHX01PTklUT1JfQkFTRSBhbmQgc2l6ZSAxTQorICogU2V0IGl0IGZvciAxMCB3YWl0IHN0YXRlcywgYWRkcmVzcyBDT05GSUdfU1lTX01PTklUT1JfQkFTRSBhbmQgc2l6ZSAxTQogICoKICAqIE5vdGU6IFdlIG11c3QgaGF2ZSBhbHJlYWR5IHRyYW5zZmVycmVkIGNvbnRyb2wgdG8gdGhlIGZpbmFsIGxvY2F0aW9uCiAgKiBvZiB0aGUgRVBST00gYmVmb3JlIHRoZXNlIGFyZSB1c2VkLCBiZWNhdXNlIHdoZW4gQlIwL09SMCBhcmUgc2V0LCB0aGUKICAqIG1pcnJvciBvZiB0aGUgZXByb20gYXQgYW55IG90aGVyIGFkZHJlc3NlcyB3aWxsIGRpc2FwcGVhci4KICAqLwogCi0vKiBiYXNlIGFkZHJlc3MgPSBDRkdfQ01BX0NTMF9CQVNFLCAxNi1iaXQsIG5vIHBhcml0eSwgci9vLCBncGNtICg2MHggYnVzKSAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKENGR19DTUFfQ1MwX0JBU0UmQlJ4X0JBX01TSyl8QlJ4X1BTXzE2fEJSeF9XUHxCUnhfVikKLS8qIG1hc2sgc2l6ZSBDRkdfQ01BX0NTMF9TSVpFLCBjc25lZyAxLzQgZWFybHksIGFkci10by1jcyAxLzIsIDEwLXdhaXQgc3RhdGVzICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShQMlNaX1RPX0FNKENGR19DTUFfQ1MwX1NJWkUpfFwKKy8qIGJhc2UgYWRkcmVzcyA9IENPTkZJR19TWVNfQ01BX0NTMF9CQVNFLCAxNi1iaXQsIG5vIHBhcml0eSwgci9vLCBncGNtICg2MHggYnVzKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChDT05GSUdfU1lTX0NNQV9DUzBfQkFTRSZCUnhfQkFfTVNLKXxCUnhfUFNfMTZ8QlJ4X1dQfEJSeF9WKQorLyogbWFzayBzaXplIENPTkZJR19TWVNfQ01BX0NTMF9TSVpFLCBjc25lZyAxLzQgZWFybHksIGFkci10by1jcyAxLzIsIDEwLXdhaXQgc3RhdGVzICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoUDJTWl9UT19BTShDT05GSUdfU1lTX0NNQV9DUzBfU0laRSl8XAogCQkJCU9SeEdfQ1NOVHxPUnhHX0FDU19ESVYyfE9SeEdfU0NZXzEwX0NMSykKIAogLyoKQEAgLTM5OSwxMCArMzk5LDEwIEBACiAgKi8KIAogI2lmIDAKLS8qIGJhc2UgYWRkcmVzcyA9IENGR19DTUFfQ1MyX0JBU0UsIDMyLWJpdCwgbm8gcGFyaXR5LCA/Pz8gKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChDRkdfQ01BX0NTMl9CQVNFJkJSeF9CQV9NU0spfEJSeF9QU18zMnwvKj8/PyovfEJSeF9WKQotLyogbWFzayBzaXplIENGR19DTUFfQ1MyX1NJWkUsIENTIHRpbWUgbm9ybWFsLCA/Pz8gKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKCh+KENGR19DTUFfQ1MyX1NJWkUtMSkmT1J4X0FNX01TSyl8Lyo/Pz8qLykKKy8qIGJhc2UgYWRkcmVzcyA9IENPTkZJR19TWVNfQ01BX0NTMl9CQVNFLCAzMi1iaXQsIG5vIHBhcml0eSwgPz8/ICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKENPTkZJR19TWVNfQ01BX0NTMl9CQVNFJkJSeF9CQV9NU0spfEJSeF9QU18zMnwvKj8/PyovfEJSeF9WKQorLyogbWFzayBzaXplIENPTkZJR19TWVNfQ01BX0NTMl9TSVpFLCBDUyB0aW1lIG5vcm1hbCwgPz8/ICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoKH4oQ09ORklHX1NZU19DTUFfQ1MyX1NJWkUtMSkmT1J4X0FNX01TSyl8Lyo/Pz8qLykKICNlbmRpZgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9jb2dlbnRfbXBjOHh4LmggYi9pbmNsdWRlL2NvbmZpZ3MvY29nZW50X21wYzh4eC5oCmluZGV4IGM3N2Y5YTIuLjE3YmQ5YTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9jb2dlbnRfbXBjOHh4LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2NvZ2VudF9tcGM4eHguaApAQCAtNTUsOCArNTUsOCBAQAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTIzMDQwMAogCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAgIC8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAgIC8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAKIC8qCkBAIC0xMDEsMjcgKzEwMSwyNyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDFjMDAwMDAJLyogNCAuLi4gMjggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDFjMDAwMDAJLyogNCAuLi4gMjggTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCi0jZGVmaW5lIENGR19BTExPQ19EUFJBTQorI2RlZmluZSBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTMxLDE4ICsxMzEsMTggQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTG93IExldmVsIENvZ2VudCBzZXR0aW5ncwotICogaWYgQ0ZHX0NNQV9DT05TX1NFUklBTCBpcyBkZWZpbmVkLCBtYWtlIHN1cmUgdGhlIDh4eCBDUE0gc2VyaWFsIGlzIG5vdC4KKyAqIGlmIENPTkZJR19TWVNfQ01BX0NPTlNfU0VSSUFMIGlzIGRlZmluZWQsIG1ha2Ugc3VyZSB0aGUgOHh4IENQTSBzZXJpYWwgaXMgbm90LgogICogYWxzbywgbWFrZSBzdXJlIENPTkZJR19DT05TX0lOREVYIGlzIHN0aWxsIGRlZmluZWQgLSB0aGUgaW5kZXggd2lsbCBiZQogICogMSBmb3Igc2VyaWFsQSwgMiBmb3Igc2VyaWFsQiwgMyBmb3Igc2VyMkEsIDQgZm9yIHNlcjJCCiAgKiAoc2Vjb25kIDIgZm9yIENNQTEyMCBvbmx5KQogICovCi0jZGVmaW5lIENGR19DTUFfTUJfQkFTRQkJMHgwMDAwMDAwMAkvKiBiYXNlIG9mIG0vYiBhZGRyZXNzIHNwYWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ01BX01CX0JBU0UJCTB4MDAwMDAwMDAJLyogYmFzZSBvZiBtL2IgYWRkcmVzcyBzcGFjZSAqLwogCiAjaW5jbHVkZSA8Y29uZmlncy9jb2dlbnRfY29tbW9uLmg+CiAKLSNkZWZpbmUgQ0ZHX0NNQV9DT05TX1NFUklBTAkvKiB1c2UgQ29nZW50IG1vdGhlcmJvYXJkIHNlcmlhbCBmb3IgY29uc29sZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NNQV9DT05TX1NFUklBTAkvKiB1c2UgQ29nZW50IG1vdGhlcmJvYXJkIHNlcmlhbCBmb3IgY29uc29sZSAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCi0jZGVmaW5lIENGR19DTUFfTENEX0hFQVJUQkVBVAkvKiBkZWZpbmUgZm9yIHNlYyByb3RhdG9yIGluIGxjZCBjb3JuZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTUFfTENEX0hFQVJUQkVBVAkvKiBkZWZpbmUgZm9yIHNlYyByb3RhdG9yIGluIGxjZCBjb3JuZXIgKi8KICNkZWZpbmUgQ09ORklHX1NIT1dfQUNUSVZJVFkKICNpZiAoQ01BX01CX0NBUFMgJiBDTUFfTUJfQ0FQX0ZMQVNIKQogLyoKQEAgLTE2Miw0OSArMTYyLDQ5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCUNNQV9NQl9SQU1fQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNNQV9NQl9SQU1fQkFTRQogI2lmZGVmIENPTkZJR19DTUEzMDIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNNQV9NQl9TTE9UMl9CQVNFCS8qIGNtYTMwMiBpbiBzbG90IDIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDTUFfTUJfU0xPVDJfQkFTRQkvKiBjbWEzMDIgaW4gc2xvdCAyICovCiAjZWxzZQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ01BX01CX0ZMQVNIX0JBU0UJLyogZmxhc2ggb24gbS9iICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ01BX01CX0ZMQVNIX0JBU0UJLyogZmxhc2ggb24gbS9iICovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlDRkdfRkxBU0hfQkFTRSAvKiBBZGRyIG9mIEVudmlyb25tZW50IFNlY3RvciAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSAvKiBBZGRyIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2lmZGVmIENPTkZJR19DTUEzMDIKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDEwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJKDUxMioxMDI0KSAvKiBzZWUgUkVBRE1FIC0gZW52IHNlY3QgcmVhbCBzaXplICovCkBAIC0yMTQsOSArMjE0LDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogCkBAIC0yMjcsMTAgKzIyNywxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYJLyogQ09ORklHX1dBVENIRE9HICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIzOCwyMSArMjM4LDIxIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI2MCw3ICsyNjAsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0IC0gbGVhdmUgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB1bmNoYW5nZWQgIQogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTI2OSw3ICsyNjksNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFNDQ1JfUlRESVYgICAgfCBTQ0NSX1JUU0VMICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFNDQ1JfUlRESVYgICAgfCBTQ0NSX1JUU0VMICAgIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCkBAIC0yNzksMjkgKzI3OSwyOSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotLyojZGVmaW5lCUNGR19ERVIJMHgyMDAyMDAwRiovCi0jZGVmaW5lIENGR19ERVIJMAorLyojZGVmaW5lCUNPTkZJR19TWVNfREVSCTB4MjAwMjAwMEYqLworI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTUEyODZfNjBfT0xEKQogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKICAqCi0gKiBOT1RFOiBhbHRob3VnaCB0aGUgbmFtZXMgKENGR194Um5fUFJFTElNKSBzdWdnZXN0IHByZWxpbWluYXJ5IHNldHRpbmdzLAorICogTk9URTogYWx0aG91Z2ggdGhlIG5hbWVzIChDT05GSUdfU1lTX3hSbl9QUkVMSU0pIHN1Z2dlc3QgcHJlbGltaW5hcnkgc2V0dGluZ3MsCiAgKiB0aGV5IGFyZSBhY3R1YWxseSB0aGUgZmluYWwgc2V0dGluZ3MgZm9yIHRoaXMgY3B1L2JvYXJkLCBiZWNhdXNlIHRoZQogICogZmxhc2ggYW5kIFJBTSBhcmUgb24gdGhlIG1vdGhlcmJvYXJkLCBhY2Nlc3NlZCB2aWEgdGhlIENNQWJ1cywgYW5kIHRoZQogICogbWFwcGluZ3MgYXJlIHByZXR0eSBtdWNoIGZpeGVkLgpAQCAtMzA5LDU4ICszMDksNTggQEAKICAqICh0aGUgKl9TSVpFIHZhcnMgbXVzdCBiZSBhIHBvd2VyIG9mIDIpCiAgKi8KIAotI2RlZmluZSBDRkdfQ01BX0NTMF9CQVNFCVRFWFRfQkFTRQkJLyogRVBST00gKi8KLSNkZWZpbmUgQ0ZHX0NNQV9DUzBfU0laRQkoMSA8PCAyMCkKLSNkZWZpbmUgQ0ZHX0NNQV9DUzFfQkFTRQlDTUFfTUJfUkFNX0JBU0UJCS8qIFJBTSArIEkvTyBTTE9UIDEgKi8KLSNkZWZpbmUgQ0ZHX0NNQV9DUzFfU0laRQkoNjQgPDwgMjApCi0jZGVmaW5lIENGR19DTUFfQ1MyX0JBU0UJQ01BX01CX1NMT1QyX0JBU0UJLyogSS9PIFNMT1RTIDIgKyAzICovCi0jZGVmaW5lIENGR19DTUFfQ1MyX1NJWkUJKDY0IDw8IDIwKQotI2RlZmluZSBDRkdfQ01BX0NTM19CQVNFCUNNQV9NQl9ST01MT1dfQkFTRQkvKiBNL0IgSS9PICovCi0jZGVmaW5lIENGR19DTUFfQ1MzX1NJWkUJKDMyIDw8IDIwKQorI2RlZmluZSBDT05GSUdfU1lTX0NNQV9DUzBfQkFTRQlURVhUX0JBU0UJCS8qIEVQUk9NICovCisjZGVmaW5lIENPTkZJR19TWVNfQ01BX0NTMF9TSVpFCSgxIDw8IDIwKQorI2RlZmluZSBDT05GSUdfU1lTX0NNQV9DUzFfQkFTRQlDTUFfTUJfUkFNX0JBU0UJCS8qIFJBTSArIEkvTyBTTE9UIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTUFfQ1MxX1NJWkUJKDY0IDw8IDIwKQorI2RlZmluZSBDT05GSUdfU1lTX0NNQV9DUzJfQkFTRQlDTUFfTUJfU0xPVDJfQkFTRQkvKiBJL08gU0xPVFMgMiArIDMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTUFfQ1MyX1NJWkUJKDY0IDw8IDIwKQorI2RlZmluZSBDT05GSUdfU1lTX0NNQV9DUzNfQkFTRQlDTUFfTUJfUk9NTE9XX0JBU0UJLyogTS9CIEkvTyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NNQV9DUzNfU0laRQkoMzIgPDwgMjApCiAKIC8qCiAgKiBDUzAgbWFwcyB0aGUgRVBST00gb24gdGhlIGNwdSBtb2R1bGUKLSAqIFNldCBpdCBmb3IgNCB3YWl0IHN0YXRlcywgYWRkcmVzcyBDRkdfTU9OSVRPUl9CQVNFIGFuZCBzaXplIDFNCisgKiBTZXQgaXQgZm9yIDQgd2FpdCBzdGF0ZXMsIGFkZHJlc3MgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgYW5kIHNpemUgMU0KICAqCiAgKiBOb3RlOiBXZSBtdXN0IGhhdmUgYWxyZWFkeSB0cmFuc2ZlcnJlZCBjb250cm9sIHRvIHRoZSBmaW5hbCBsb2NhdGlvbgogICogb2YgdGhlIEVQUk9NIGJlZm9yZSB0aGVzZSBhcmUgdXNlZCwgYmVjYXVzZSB3aGVuIEJSMC9PUjAgYXJlIHNldCwgdGhlCiAgKiBtaXJyb3Igb2YgdGhlIGVwcm9tIGF0IGFueSBvdGhlciBhZGRyZXNzZXMgd2lsbCBkaXNhcHBlYXIuCiAgKi8KIAotLyogYmFzZSBhZGRyZXNzID0gQ0ZHX0NNQV9DUzBfQkFTRSwgMTYtYml0LCBubyBwYXJpdHksIHIvbywgZ3BjbSAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKENGR19DTUFfQ1MwX0JBU0UmQlJfQkFfTVNLKXxCUl9QU18xNnxCUl9XUHxCUl9WKQotLyogbWFzayBzaXplIENGR19DTUFfQ1MwX1NJWkUsIENTIHRpbWUgbm9ybWFsLCBidXJzdCBpbmhpYml0LCA0LXdhaXQgc3RhdGVzICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCSgofihDRkdfQ01BX0NTMF9TSVpFLTEpJk9SX0FNX01TSyl8T1JfQkl8T1JfU0NZXzRfQ0xLKQorLyogYmFzZSBhZGRyZXNzID0gQ09ORklHX1NZU19DTUFfQ1MwX0JBU0UsIDE2LWJpdCwgbm8gcGFyaXR5LCByL28sIGdwY20gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoQ09ORklHX1NZU19DTUFfQ1MwX0JBU0UmQlJfQkFfTVNLKXxCUl9QU18xNnxCUl9XUHxCUl9WKQorLyogbWFzayBzaXplIENPTkZJR19TWVNfQ01BX0NTMF9TSVpFLCBDUyB0aW1lIG5vcm1hbCwgYnVyc3QgaW5oaWJpdCwgNC13YWl0IHN0YXRlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKCh+KENPTkZJR19TWVNfQ01BX0NTMF9TSVpFLTEpJk9SX0FNX01TSyl8T1JfQkl8T1JfU0NZXzRfQ0xLKQogCiAvKgogICogQ1MxIG1hcHMgbW90aGVyYm9hcmQgRFJBTSBhbmQgbW90aGVyYm9hcmQgSS9PIHNsb3QgMQogICogKGVhY2ggMzJNYnl0ZSBpbiBzaXplKQogICovCiAKLS8qIGJhc2UgYWRkcmVzcyA9IENGR19DTUFfQ1MxX0JBU0UsIDMyLWJpdCwgbm8gcGFyaXR5LCByL3csIGdwY20gKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChDRkdfQ01BX0NTMV9CQVNFJkJSX0JBX01TSyl8QlJfVikKLS8qIG1hc2sgc2l6ZSBDRkdfQ01BX0NTMV9TSVpFLCBDUyB0aW1lIG5vcm1hbCwgYnVyc3Qgb2ssIGV4dCB4ZmVyIGFjayAqLwotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkoKH4oQ0ZHX0NNQV9DUzFfU0laRS0xKSZPUl9BTV9NU0spfE9SX1NFVEEpCisvKiBiYXNlIGFkZHJlc3MgPSBDT05GSUdfU1lTX0NNQV9DUzFfQkFTRSwgMzItYml0LCBubyBwYXJpdHksIHIvdywgZ3BjbSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChDT05GSUdfU1lTX0NNQV9DUzFfQkFTRSZCUl9CQV9NU0spfEJSX1YpCisvKiBtYXNrIHNpemUgQ09ORklHX1NZU19DTUFfQ1MxX1NJWkUsIENTIHRpbWUgbm9ybWFsLCBidXJzdCBvaywgZXh0IHhmZXIgYWNrICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoKH4oQ09ORklHX1NZU19DTUFfQ1MxX1NJWkUtMSkmT1JfQU1fTVNLKXxPUl9TRVRBKQogCiAvKgogICogQ1MyIG1hcHMgbW90aGVyYm9hcmQgSS9PIHNsb3RzIDIgYW5kIDMKICAqIChlYWNoIDMyTWJ5dGUgaW4gc2l6ZSkKICAqLwogCi0vKiBiYXNlIGFkZHJlc3MgPSBDRkdfQ01BX0NTMl9CQVNFLCAzMi1iaXQsIG5vIHBhcml0eSwgci93LCBncGNtICovCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoQ0ZHX0NNQV9DUzJfQkFTRSZCUl9CQV9NU0spfEJSX1YpCi0vKiBtYXNrIHNpemUgQ0ZHX0NNQV9DUzJfU0laRSwgQ1MgdGltZSBub3JtYWwsIGJ1cnN0IG9rLCBleHQgeGZlciBhY2sgKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKCh+KENGR19DTUFfQ1MyX1NJWkUtMSkmT1JfQU1fTVNLKXxPUl9TRVRBKQorLyogYmFzZSBhZGRyZXNzID0gQ09ORklHX1NZU19DTUFfQ1MyX0JBU0UsIDMyLWJpdCwgbm8gcGFyaXR5LCByL3csIGdwY20gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoQ09ORklHX1NZU19DTUFfQ1MyX0JBU0UmQlJfQkFfTVNLKXxCUl9WKQorLyogbWFzayBzaXplIENPTkZJR19TWVNfQ01BX0NTMl9TSVpFLCBDUyB0aW1lIG5vcm1hbCwgYnVyc3Qgb2ssIGV4dCB4ZmVyIGFjayAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKCh+KENPTkZJR19TWVNfQ01BX0NTMl9TSVpFLTEpJk9SX0FNX01TSyl8T1JfU0VUQSkKIAogLyoKICAqIENTMyBtYXBzIG1vdGhlcmJvYXJkIEkvTwogICogKDMyTWJ5dGUgaW4gc2l6ZSkKICAqLwogCi0vKiBiYXNlIGFkZHJlc3MgPSBDRkdfQ01BX0NTM19CQVNFLCAzMi1iaXQsIG5vIHBhcml0eSwgci93LCBncGNtICovCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoQ0ZHX0NNQV9DUzNfQkFTRSZCUl9CQV9NU0spfEJSX1YpCi0vKiBtYXNrIHNpemUgQ0ZHX0NNQV9DUzNfU0laRSwgQ1MgdGltZSBub3JtYWwsIGJ1cnN0IGluaGliaXQsIGV4dCB4ZmVyIGFjayAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkoKH4oQ0ZHX0NNQV9DUzNfU0laRS0xKSZPUl9BTV9NU0spfE9SX0JJfE9SX1NFVEEpCisvKiBiYXNlIGFkZHJlc3MgPSBDT05GSUdfU1lTX0NNQV9DUzNfQkFTRSwgMzItYml0LCBubyBwYXJpdHksIHIvdywgZ3BjbSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChDT05GSUdfU1lTX0NNQV9DUzNfQkFTRSZCUl9CQV9NU0spfEJSX1YpCisvKiBtYXNrIHNpemUgQ09ORklHX1NZU19DTUFfQ1MzX1NJWkUsIENTIHRpbWUgbm9ybWFsLCBidXJzdCBpbmhpYml0LCBleHQgeGZlciBhY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCSgofihDT05GSUdfU1lTX0NNQV9DUzNfU0laRS0xKSZPUl9BTV9NU0spfE9SX0JJfE9SX1NFVEEpCiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvY3BjaTUyMDAuaCBiL2luY2x1ZGUvY29uZmlncy9jcGNpNTIwMC5oCmluZGV4IDFmNTNkZGMuLmI5ZGFiYWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9jcGNpNTIwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9jcGNpNTIwMC5oCkBAIC00NSw3ICs0NSw3IEBACiAjZGVmaW5lIENPTkZJR19DUENJNTIwMAkJMQkvKiAuLi4gb24gQ1BDSTUyMDAgIGJvYXJkICovCiAjZGVmaW5lIENPTkZJR19NUEM1MjAwX0REUgkxCS8qIC4uLiB1c2UgRERSIFJBTQkgICovCiAKLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAJLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMAkvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdAkgICAgICovCkBAIC01Nyw3ICs1Nyw3IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1BTQ19DT05TT0xFCTEJLyogY29uc29sZSBpcyBvbiBQU0MxICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJOTYwMAkvKiAuLi4gYXQgMTE1MjAwIGJwcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKICNpZmRlZiBDT05GSUdfTVBDNTIwMAkJLyogTVBDNTEwMCBQQ0kgaXMgbm90IHN1cHBvcnRlZCB5ZXQuICovCiAvKgpAQCAtODYsNyArODYsNyBAQAogI2lmIDAJCQkJLyogdGVzdC1vbmx5ICEhISAqLwogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCQkxCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CS8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMAkqLwogI2RlZmluZSBDT05GSUdfTlM4MzgyWAkJMQogI2VuZGlmCiAKQEAgLTEzMCwxMiArMTMwLDEyIEBACiAjZGVmaW5lIENPTkZJR19DTURfREFURQogCiAjaWYgKFRFWFRfQkFTRSA9PSAweEZGMDAwMDAwKQkvKiBCb290IGxvdyB3aXRoIDE2IE1CIEZsYXNoICovCi0jICAgZGVmaW5lIENGR19MT1dCT09UCQkxCi0jICAgZGVmaW5lIENGR19MT1dCT09UMTYJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UMTYJMQogI2VuZGlmCiAjaWYgKFRFWFRfQkFTRSA9PSAweEZGODAwMDAwKQkvKiBCb290IGxvdyB3aXRoICA4IE1CIEZsYXNoICovCi0jICAgZGVmaW5lIENGR19MT1dCT09UCQkxCi0jICAgZGVmaW5lIENGR19MT1dCT09UMDgJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UMDgJMQogI2VuZGlmCiAKIC8qCkBAIC0xNzIsNDggKzE3Miw0OCBAQAogI2lmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCiAKICNkZWZpbmUgQ09ORklHX1JUQ19NNDhUMzVBCTEJLyogU1QgRWxlY3Ryb25pY3MgTTQ4IHRpbWVrZWVwZXIgKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweGZkMDEwMDAwCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkzMioxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4ZmQwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkzMioxMDI0CiAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSN1bmRlZiBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjdW5kZWYgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KICNlbmRpZgogLyoKICAqIEkyQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTEJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTU9EVUxFCQkxCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJODYwMDAJLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk4NjAwMAkvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTIKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMJCTEKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDIwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVAkweDAxMDAwMDAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAogCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIHByb3RlY3Rpb24JICAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKQkqLwogCiAvKgogICogRW52aXJvbm1lbnQgc2V0dGluZ3MKQEAgLTIzNCwyNiArMjM0LDI2IEBACiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19NQkFSCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKIAogLyogVXNlIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTI2OSw2NiArMjY5LDY2IEBACiAvKgogICogR1BJTyBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDAxMDUyNDQ0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4MDEwNTI0NDQKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfVlhXT1JLU19NQUNfUFRSCTB4MDAwMDAwMDAJLyogUGFzcyBFdGhlcm5ldCBNQUMgdG8gVnhXb3JrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1ZYV09SS1NfTUFDX1BUUgkweDAwMDAwMDAwCS8qIFBhc3MgRXRoZXJuZXQgTUFDIHRvIFZ4V29ya3MgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyoKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQotI2RlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKICNlbHNlCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCTAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQk9PVENTX1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19CT09UQ1NfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNEREMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwNEREMDAKIAotI2RlZmluZSBDRkdfQ1MwX1NUQVJUCQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQ1MwX1NJWkUJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCiAKLSNkZWZpbmUgQ0ZHX0NTMV9TVEFSVAkJMHhmZDAwMDAwMAotI2RlZmluZSBDRkdfQ1MxX1NJWkUJCTB4MDAwMTAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9DRkcJCTB4MTAxMDE0MTAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU1RBUlQJCTB4ZmQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRQkJMHgwMDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DRkcJCTB4MTAxMDE0MTAKIAotI2RlZmluZSBDRkdfQ1MzX1NUQVJUCQkweGZkMDEwMDAwCi0jZGVmaW5lIENGR19DUzNfU0laRQkJMHgwMDAxMDAwMAotI2RlZmluZSBDRkdfQ1MzX0NGRwkJMHgxMDEwOTQxMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19TVEFSVAkJMHhmZDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19TSVpFCQkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX0NGRwkJMHgxMDEwOTQxMAogCi0jZGVmaW5lIENGR19DU19CVVJTVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBVU0Igc3R1ZmYKQEAgLTM1MCw3MSArMzUwLDcxIEBACiAjZGVmaW5lCUNPTkZJR19JREVfUkVTRVQJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KICNkZWZpbmUgQ09ORklHX0lERV9QUkVJTklUCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoQ0ZHX0FUQV9EQVRBX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQpCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJKDB4MDA1QykKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQogCiAvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycwkJCQkJCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUJCTQKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfU1RSSURFCQk0CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENQTEQgc3R1ZmYKICAqLwotI2RlZmluZSBDRkdfRlBHQV9YQzk1WEwJCTEJLyogdXNpbmcgWGlsaW54IFhDOTVYTCBDUExECSAqLwotI2RlZmluZSBDRkdfRlBHQV9NQVhfU0laRQkzMioxMDI0CS8qIDMya0J5dGUgaXMgZW5vdWdoIGZvciBDUExECSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfWEM5NVhMCQkxCS8qIHVzaW5nIFhpbGlueCBYQzk1WEwgQ1BMRAkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFCTMyKjEwMjQJLyogMzJrQnl0ZSBpcyBlbm91Z2ggZm9yIENQTEQJICovCiAKIC8qIENQTEQgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRlBHQV9QUkcJCTB4MjAwMDAwMDAJLyogSlRBRyBUTVMgcGluIChwcGMgb3V0cHV0KQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ0xLCQkweDEwMDAwMDAwCS8qIEpUQUcgVENLIHBpbiAocHBjIG91dHB1dCkJICAgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJCTB4MjAwMDAwMDAJLyogSlRBRyBURE8tPlRESSBkYXRhIHBpbiAocHBjIG91dHB1dCkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORQkJMHgxMDAwMDAwMAkvKiBKVEFHIFRESS0+VERPIHBpbiAocHBjIGlucHV0KSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJHCQkweDIwMDAwMDAwCS8qIEpUQUcgVE1TIHBpbiAocHBjIG91dHB1dCkJICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsJCTB4MTAwMDAwMDAJLyogSlRBRyBUQ0sgcGluIChwcGMgb3V0cHV0KQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RBVEEJCTB4MjAwMDAwMDAJLyogSlRBRyBURE8tPlRESSBkYXRhIHBpbiAocHBjIG91dHB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MTAwMDAwMDAJLyogSlRBRyBUREktPlRETyBwaW4gKHBwYyBpbnB1dCkgICAgICAgKi8KIAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9UTVMJKENGR19NQkFSICsgMHhCMTApCS8qIEpUQUcgVE1TIHBpbiAoR1BTIGRhdGEgb3V0IHZhbHVlIHJlZy4pICAgICAgKi8KLSNkZWZpbmUgSlRBR19HUElPX0FERFJfVENLCShDRkdfTUJBUiArIDB4QzBDKQkvKiBKVEFHIFRDSyBwaW4gKEdQVyBkYXRhIG91dCB2YWx1ZSByZWcuKSAgICAgICovCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX1RESQkoQ0ZHX01CQVIgKyAweEMwQykJLyogSlRBRyBURE8tPlRESSBwaW4gKEdQVyBkYXRhIG91dCB2YWx1ZSByZWcuKSAqLwotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9URE8JKENGR19NQkFSICsgMHhCMTQpCS8qIEpUQUcgVERJLT5URE8gcGluIChHUFMgZGF0YSBpbiB2YWx1ZSByZWcuKSAgKi8KKyNkZWZpbmUgSlRBR19HUElPX0FERFJfVE1TCShDT05GSUdfU1lTX01CQVIgKyAweEIxMCkJLyogSlRBRyBUTVMgcGluIChHUFMgZGF0YSBvdXQgdmFsdWUgcmVnLikgICAgICAqLworI2RlZmluZSBKVEFHX0dQSU9fQUREUl9UQ0sJKENPTkZJR19TWVNfTUJBUiArIDB4QzBDKQkvKiBKVEFHIFRDSyBwaW4gKEdQVyBkYXRhIG91dCB2YWx1ZSByZWcuKSAgICAgICovCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX1RESQkoQ09ORklHX1NZU19NQkFSICsgMHhDMEMpCS8qIEpUQUcgVERPLT5UREkgcGluIChHUFcgZGF0YSBvdXQgdmFsdWUgcmVnLikgKi8KKyNkZWZpbmUgSlRBR19HUElPX0FERFJfVERPCShDT05GSUdfU1lTX01CQVIgKyAweEIxNCkJLyogSlRBRyBUREktPlRETyBwaW4gKEdQUyBkYXRhIGluIHZhbHVlIHJlZy4pICAqLwogCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0NGRwkoQ0ZHX01CQVIgKyAweEIwMCkKKyNkZWZpbmUgSlRBR19HUElPX0FERFJfQ0ZHCShDT05GSUdfU1lTX01CQVIgKyAweEIwMCkKICNkZWZpbmUgSlRBR19HUElPX0NGR19TRVQJMHgwMDAwMDAwMAogI2RlZmluZSBKVEFHX0dQSU9fQ0ZHX1JFU0VUCTB4MDBGMDAwMDAKIAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9FTl9UTVMJKENGR19NQkFSICsgMHhCMDQpCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RNUwkoQ09ORklHX1NZU19NQkFSICsgMHhCMDQpCiAjZGVmaW5lIEpUQUdfR1BJT19UTVNfRU5fU0VUCTB4MjAwMDAwMDAJLyogRW5hYmxlIGZvciBHUElPICovCiAjZGVmaW5lIEpUQUdfR1BJT19UTVNfRU5fUkVTRVQJMHgwMDAwMDAwMAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVE1TCShDRkdfTUJBUiArIDB4QjBDKQorI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVE1TCShDT05GSUdfU1lTX01CQVIgKyAweEIwQykKICNkZWZpbmUgSlRBR19HUElPX1RNU19ERFJfU0VUCTB4MjAwMDAwMDAJLyogU2V0IGFzIG91dHB1dCAgICovCiAjZGVmaW5lIEpUQUdfR1BJT19UTVNfRERSX1JFU0VUIDB4MDAwMDAwMDAKIAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9FTl9UQ0sJKENGR19NQkFSICsgMHhDMDApCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RDSwkoQ09ORklHX1NZU19NQkFSICsgMHhDMDApCiAjZGVmaW5lIEpUQUdfR1BJT19UQ0tfRU5fU0VUCTB4MjAwMDAwMDAJLyogRW5hYmxlIGZvciBHUElPICovCiAjZGVmaW5lIEpUQUdfR1BJT19UQ0tfRU5fUkVTRVQJMHgwMDAwMDAwMAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVENLCShDRkdfTUJBUiArIDB4QzA4KQorI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVENLCShDT05GSUdfU1lTX01CQVIgKyAweEMwOCkKICNkZWZpbmUgSlRBR19HUElPX1RDS19ERFJfU0VUCTB4MjAwMDAwMDAJLyogU2V0IGFzIG91dHB1dCAgICovCiAjZGVmaW5lIEpUQUdfR1BJT19UQ0tfRERSX1JFU0VUIDB4MDAwMDAwMDAKIAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9FTl9UREkJKENGR19NQkFSICsgMHhDMDApCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RESQkoQ09ORklHX1NZU19NQkFSICsgMHhDMDApCiAjZGVmaW5lIEpUQUdfR1BJT19URElfRU5fU0VUCTB4MTAwMDAwMDAJLyogRW5hYmxlIGFzIEdQSU8gICovCiAjZGVmaW5lIEpUQUdfR1BJT19URElfRU5fUkVTRVQJMHgwMDAwMDAwMAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVERJCShDRkdfTUJBUiArIDB4QzA4KQorI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVERJCShDT05GSUdfU1lTX01CQVIgKyAweEMwOCkKICNkZWZpbmUgSlRBR19HUElPX1RESV9ERFJfU0VUCTB4MTAwMDAwMDAJLyogU2V0IGFzIG91dHB1dCAgICovCiAjZGVmaW5lIEpUQUdfR1BJT19URElfRERSX1JFU0VUIDB4MDAwMDAwMDAKIAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9FTl9URE8JKENGR19NQkFSICsgMHhCMDQpCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RETwkoQ09ORklHX1NZU19NQkFSICsgMHhCMDQpCiAjZGVmaW5lIEpUQUdfR1BJT19URE9fRU5fU0VUCTB4MTAwMDAwMDAJLyogRW5hYmxlIGFzIEdQSU8gICovCiAjZGVmaW5lIEpUQUdfR1BJT19URE9fRU5fUkVTRVQJMHgwMDAwMDAwMAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVERPCShDRkdfTUJBUiArIDB4QjBDKQorI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVERPCShDT05GSUdfU1lTX01CQVIgKyAweEIwQykKICNkZWZpbmUgSlRBR19HUElPX1RET19ERFJfU0VUCTB4MDAwMDAwMDAKICNkZWZpbmUgSlRBR19HUElPX1RET19ERFJfUkVTRVQgMHgxMDAwMDAwMAkvKiBTZXQgYXMgaW5wdXQJICAgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2NyYWRsZS5oIGIvaW5jbHVkZS9jb25maWdzL2NyYWRsZS5oCmluZGV4IDM0YTI2NWQuLmU4MDUwNGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9jcmFkbGUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvY3JhZGxlLmgKQEAgLTQwLDggKzQwLDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtODksMjUgKzg5LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQgICAgICAgICAgICAgICI9PiAiICAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLwotI2RlZmluZSBDRkdfQ0JTSVpFICAgICAgICAgICAgICAyNTYgICAgICAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MgICAgICAgICAgICAgMTYgICAgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFICAgICAgICAgICAgQ0ZHX0NCU0laRSAgICAgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUICAgICAgICAgICAgICAiPT4gIiAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUgICAgICAgICAgICAgIDI1NiAgICAgICAgICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MgICAgICAgICAgICAgMTYgICAgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRSAgICAgICAgICAgIENPTkZJR19TWVNfQ0JTSVpFICAgICAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgICAgIDB4YTA0MDAwMDAgICAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICAgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgICAgICAgICAweGEwODAwMDAwICAgICAgLyogNCAuLi4gOCBNQiBpbiBEUkFNICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgICAgIDB4YTA0MDAwMDAgICAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5EICAgICAgICAgMHhhMDgwMDAwMCAgICAgIC8qIDQgLi4uIDggTUIgaW4gRFJBTSAgICovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFogICAgICAgICAgLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFogICAgICAgICAgLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIgICAgICAgICAgIDB4YTIwMDAwMDAgICAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUiAgICAgICAgICAgMHhhMjAwMDAwMCAgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haICAgICAgICAgICAgICAgICAgMzY4NjQwMCAgICAgICAgIC8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVEICAgICAgICAgICAgMHgxNDEgICAgICAgICAgIC8qIHNldCBjb3JlIGNsb2NrIHRvIDIwMC8yMDAvMTAwIE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haICAgICAgICAgICAgICAgICAgMzY4NjQwMCAgICAgICAgIC8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVTUEVFRCAgICAgICAgICAgIDB4MTQxICAgICAgICAgICAvKiBzZXQgY29yZSBjbG9jayB0byAyMDAvMjAwLzEwMCBNSHogKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIFN0YWNrIHNpemVzCkBAIC0xMzcsMjAgKzEzNywyMCBAQAogI2RlZmluZSBQSFlTX0ZMQVNIXzIgICAgICAgICAgICAweDA0MDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFICAgICAgICAgMHgwMjAwMDAwMCAvKiAzMiBNQiAqLwogCi0jZGVmaW5lIENGR19EUkFNX0JBU0UgICAgICAgICAgIDB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RSQU1fU0laRSAgICAgICAgICAgMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQkFTRSAgICAgICAgICAgMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fU0laRSAgICAgICAgICAgMHgwNDAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgICAgIFBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgICAgICAgICAgUEhZU19GTEFTSF8xCiAKIC8qCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgICAgMSAgICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgICAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVCAgICAgIDMyICAgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAgICAgMSAgICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgICAgICAzMiAgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUICAgICgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQgICAgKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQgICAgKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICAgICgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCQkweDAwMDIwMDAwCS8qIGFic29sdXRlIGFkZHJlc3MgZm9yIG5vdyAgICovCkBAIC0yNTQsMzggKzI1NCwzOCBAQAogICovCiAvKiBQaW4gZGlyZWN0aW9uIGNvbnRyb2wgKi8KIC8qIE5PVEUgR1BJTyAwLCA2MSwgNjIgYXJlIHNldCBmb3IgaW5wdXRzIGR1ZSB0byBDUExEIFNQQVJFcyAqLwotI2RlZmluZSBDRkdfR1BEUjBfVkFMICAgICAgIDB4ZmZmM2JmMDIKLSNkZWZpbmUgQ0ZHX0dQRFIxX1ZBTCAgICAgICAweGZiZmZiZjgzCi0jZGVmaW5lIENGR19HUERSMl9WQUwgICAgICAgMHgwMDAxZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIwX1ZBTCAgICAgICAweGZmZjNiZjAyCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjFfVkFMICAgICAgIDB4ZmJmZmJmODMKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMl9WQUwgICAgICAgMHgwMDAxZmZmZgogLyogU2V0IGFuZCBDbGVhciByZWdpc3RlcnMgKi8KLSNkZWZpbmUgQ0ZHX0dQU1IwX1ZBTCAgICAgICAweDAwNDAwODAwCi0jZGVmaW5lIENGR19HUFNSMV9WQUwgICAgICAgMHgwMDAwMDQ4MAotI2RlZmluZSBDRkdfR1BTUjJfVkFMICAgICAgIDB4MDAwMTQwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IwX1ZBTCAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUENSMV9WQUwgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BDUjJfVkFMICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMF9WQUwgICAgICAgMHgwMDQwMDgwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IxX1ZBTCAgICAgICAweDAwMDAwNDgwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjJfVkFMICAgICAgIDB4MDAwMTQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMF9WQUwgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IxX1ZBTCAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjJfVkFMICAgICAgIDB4MDAwMDAwMDAKIC8qIEVkZ2UgZGV0ZWN0IHJlZ2lzdGVycyAodGhlc2UgYXJlIHNldCBieSB0aGUga2VybmVsKSAqLwotI2RlZmluZSBDRkdfR1JFUjBfVkFMICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dSRVIxX1ZBTCAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUkVSMl9WQUwgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR0ZFUjBfVkFMICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dGRVIxX1ZBTCAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HRkVSMl9WQUwgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSRVIwX1ZBTCAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JFUjFfVkFMICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkVSMl9WQUwgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dGRVIwX1ZBTCAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0ZFUjFfVkFMICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HRkVSMl9WQUwgICAgICAgMHgwMDAwMDAwMAogLyogQWx0ZXJuYXRlIGZ1bmN0aW9uIHJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfR0FGUjBfTF9WQUwgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dBRlIwX1VfVkFMICAgICAweDAwMDAwMDEwCi0jZGVmaW5lIENGR19HQUZSMV9MX1ZBTCAgICAgMHg5MDBhOTU1MAotI2RlZmluZSBDRkdfR0FGUjFfVV9WQUwgICAgIDB4MDAwMDAwMDgKLSNkZWZpbmUgQ0ZHX0dBRlIyX0xfVkFMICAgICAweDIwMDAwMDAwCi0jZGVmaW5lIENGR19HQUZSMl9VX1ZBTCAgICAgMHgwMDAwMDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX0xfVkFMICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfVV9WQUwgICAgIDB4MDAwMDAwMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9MX1ZBTCAgICAgMHg5MDBhOTU1MAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX1VfVkFMICAgICAweDAwMDAwMDA4CisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfTF9WQUwgICAgIDB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9VX1ZBTCAgICAgMHgwMDAwMDAwMgogCiAvKgogICogQ2xvY2tzLCBwb3dlciBjb250cm9sIGFuZCBpbnRlcnJ1cHRzCiAgKi8KLSNkZWZpbmUgQ0ZHX1BTU1JfVkFMICAgICAgICAweDAwMDAwMDIwCi0jZGVmaW5lIENGR19DQ0NSX1ZBTCAgICAgICAgMHgwMDAwMDE0MSAgLyogMTAwIE1IeiBtZW1vcnksIDIwMCBNSHogQ1BVICAqLwotI2RlZmluZSBDRkdfQ0tFTl9WQUwgICAgICAgIDB4MDAwMDAwNjAgIC8qIEZGVUFSVCBhbmQgU1RVQVJUIGVuYWJsZWQgICAgKi8KLSNkZWZpbmUgQ0ZHX0lDTVJfVkFMICAgICAgICAweDAwMDAwMDAwICAvKiBObyBpbnRlcnJ1cHRzIGVuYWJsZWQgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFNTUl9WQUwgICAgICAgIDB4MDAwMDAwMjAKKyNkZWZpbmUgQ09ORklHX1NZU19DQ0NSX1ZBTCAgICAgICAgMHgwMDAwMDE0MSAgLyogMTAwIE1IeiBtZW1vcnksIDIwMCBNSHogQ1BVICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NLRU5fVkFMICAgICAgICAweDAwMDAwMDYwICAvKiBGRlVBUlQgYW5kIFNUVUFSVCBlbmFibGVkICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSUNNUl9WQUwgICAgICAgIDB4MDAwMDAwMDAgIC8qIE5vIGludGVycnVwdHMgZW5hYmxlZCAgICAgICAgKi8KIAogLyogRklYTUUKICAqCkBAIC0zMDAsMzAgKzMwMCwzMCBAQAogICogRklYTUUgQ2FuIGV0aGVybmV0IGJlIGJ1cnN0IHJlYWQgYW5kL29yIHdyaXRlPz8gVGhpcyBpcyBzZXQgZm9yIGx1YmJvY2sKICAqICAgICAgIFZlcmlmeSB0aW1pbmdzIG9uIGFsbAogICovCi0jZGVmaW5lIENGR19NU0MwX1ZBTCAgICAgICAgMHgwMDAwMjNGQSAgLyogZmxhc2ggYmFuayAgICAoY3MwKSAgICovCi0vKiNkZWZpbmUgQ0ZHX01TQzFfVkFMICAgICAgICAweDAwMDAzNTQ5ICAvICogU3VwZXJJTyBiYW5rICAoY3MyKSAgICovCi0jZGVmaW5lIENGR19NU0MxX1ZBTCAgICAgICAgMHgwMDAwMzU0YyAgLyogU3VwZXJJTyBiYW5rICAoY3MyKSAgICovCi0jZGVmaW5lIENGR19NU0MyX1ZBTCAgICAgICAgMHgwMDAwMTIyNCAgLyogRXRoZXJuZXQgYmFuayAoY3M0KSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMF9WQUwgICAgICAgIDB4MDAwMDIzRkEgIC8qIGZsYXNoIGJhbmsgICAgKGNzMCkgICAqLworLyojZGVmaW5lIENPTkZJR19TWVNfTVNDMV9WQUwgICAgICAgIDB4MDAwMDM1NDkgIC8gKiBTdXBlcklPIGJhbmsgIChjczIpICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NU0MxX1ZBTCAgICAgICAgMHgwMDAwMzU0YyAgLyogU3VwZXJJTyBiYW5rICAoY3MyKSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMl9WQUwgICAgICAgIDB4MDAwMDEyMjQgIC8qIEV0aGVybmV0IGJhbmsgKGNzNCkgICAqLwogI2lmZGVmIFJFREJPT1RfV0FZCi0jZGVmaW5lIENGR19NRENORkdfVkFMICAgICAgMHgwMDAwMWFhMSAgLyogRklYTUUgY2FuIERUQyBiZSAwMT8gICAgICovCi0jZGVmaW5lIENGR19NRE1SU19WQUwgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTURSRUZSX1ZBTCAgICAgIDB4MDAwMTgwMTgKKyNkZWZpbmUgQ09ORklHX1NZU19NRENORkdfVkFMICAgICAgMHgwMDAwMWFhMSAgLyogRklYTUUgY2FuIERUQyBiZSAwMT8gICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTURNUlNfVkFMICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRFJFRlJfVkFMICAgICAgMHgwMDAxODAxOAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01EQ05GR19WQUwgICAgICAweDAwMDAxYWExICAvKiBGSVhNRSBjYW4gRFRDIGJlIDAxPyAgICAgKi8KLSNkZWZpbmUgQ0ZHX01ETVJTX1ZBTCAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NRFJFRlJfVkFMICAgICAgMHgwMDQwMzAxOCAgLyogSW5pdGlhbCBzZXR0aW5nLCBpbmRpdmlkdWFsIGJpdHMgc2V0IGluIGxvd2xldmVsX2luaXQuUyAqLworI2RlZmluZSBDT05GSUdfU1lTX01EQ05GR19WQUwgICAgICAweDAwMDAxYWExICAvKiBGSVhNRSBjYW4gRFRDIGJlIDAxPyAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRE1SU19WQUwgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01EUkVGUl9WQUwgICAgICAweDAwNDAzMDE4ICAvKiBJbml0aWFsIHNldHRpbmcsIGluZGl2aWR1YWwgYml0cyBzZXQgaW4gbG93bGV2ZWxfaW5pdC5TICovCiAjZW5kaWYKIAogLyoKICAqIFBDTUNJQSBhbmQgQ0YgSW50ZXJmYWNlcyAoTk9UIFVTRUQsIHRoZXNlIHZhbHVlcyBmcm9tIGx1YmJvY2sgaW5pdCkKICAqLwotI2RlZmluZSBDRkdfTUVDUl9WQUwgICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNNRU0wX1ZBTCAgICAgICAgMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNNRU0xX1ZBTCAgICAgICAgMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNBVFQwX1ZBTCAgICAgICAgMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNBVFQxX1ZBTCAgICAgICAgMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNJTzBfVkFMICAgICAgICAgMHgwMDAwNDcxNQotI2RlZmluZSBDRkdfTUNJTzFfVkFMICAgICAgICAgMHgwMDAwNDcxNQorI2RlZmluZSBDT05GSUdfU1lTX01FQ1JfVkFMICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTBfVkFMICAgICAgICAweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0xX1ZBTCAgICAgICAgMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMF9WQUwgICAgICAgIDB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0FUVDFfVkFMICAgICAgICAweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzBfVkFMICAgICAgICAgMHgwMDAwNDcxNQorI2RlZmluZSBDT05GSUdfU1lTX01DSU8xX1ZBTCAgICAgICAgIDB4MDAwMDQ3MTUKIAogLyogQm9hcmQgc3BlY2lmaWMgZGVmaW5lcyAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvY3NiMjI2LmggYi9pbmNsdWRlL2NvbmZpZ3MvY3NiMjI2LmgKaW5kZXggMjY2ZTBlNi4uYTI0ZTM0YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2NzYjIyNi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9jc2IyMjYuaApAQCAtMTExLDM4ICsxMTEsMzggQEAKICAqIHVzZWQgZm9yIHRoZSBSQU0gY29weSBvZiB0aGUgdWJvb3QgY29kZQogICoKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJInVib290PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTI4CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkidWJvb3Q+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTI4CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweGEwNDAwMDAwICAgICAgLyogbWVtdGVzdCB3b3JrcyBvbiAgICAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5EICAgICAgICAgMHhhMDgwMDAwMCAgICAgIC8qIDQgLi4uIDggTUIgaW4gRFJBTSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweGEwNDAwMDAwICAgICAgLyogbWVtdGVzdCB3b3JrcyBvbiAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORCAgICAgICAgIDB4YTA4MDAwMDAgICAgICAvKiA0IC4uLiA4IE1CIGluIERSQU0gICAqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haICAgICAgICAgIC8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haICAgICAgICAgIC8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSICAgICAgICAgICAweGEzMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSICAgICAgICAgICAweGEzMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAJCQkJCQkvKiBSUzogd2hlcmUgaXMgdGhpcyBkb2N1bWVudGVkPyAqLwogCQkJCQkJLyogUlM6IGlzIHRoaXMgd2hlcmUgVS1Cb290IGlzICAqLwogCQkJCQkJLyogUlM6IHJlbG9jYXRlZCB0byBpbiBSQU0/ICAgICAgKi8KIAotI2RlZmluZSBDRkdfSFogICAgICAgICAgICAgICAgICAzNjg2NDAwICAgICAgICAgLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haICAgICAgICAgICAgICAgICAgMzY4NjQwMCAgICAgICAgIC8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KIAkJCQkJCS8qIFJTOiB0aGUgb3NjaWxsYXRvciBpcyBhY3R1YWxseSAzNjgwMTMwPz8gKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVEICAgICAgICAgICAgMHgxNDEgICAgICAgICAgIC8qIHNldCBjb3JlIGNsb2NrIHRvIDIwMC8yMDAvMTAwIE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVVNQRUVEICAgICAgICAgICAgMHgxNDEgICAgICAgICAgIC8qIHNldCBjb3JlIGNsb2NrIHRvIDIwMC8yMDAvMTAwIE1IeiAqLwogCQkJCQkJLyogMDEwMTAwMDAwMSAqLwogCQkJCQkJLyogICAgICBeXl5eXiBNZW1vcnkgU3BlZWQgOTkuNTMgTUh6ICAgICAgICAgKi8KIAkJCQkJCS8qICAgIF5eICAgICAgUnVuIE1vZGUgU3BlZWQgPSAyeCBNZW0gU3BlZWQgICovCiAJCQkJCQkvKiBeXiAgICAgICAgIFR1cmJvIE1vZGUgU3AuID0gMXggUnVuIE0uIFNwLiAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgyMDAwMAkJLyogMTI4IEtpQiAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDIwMDAwCQkvKiAxMjggS2lCICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBOZXR3b3JrIGNoaXAKQEAgLTE3MiwxMCArMTcyLDEwIEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgwMDAwMDAwMAkvKiBGbGFzaCBCYW5rICMxICAgICAgICAgICAgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAyMDAwMDAwCS8qIDMyIE1CICAgICAgICAgICAgICAgICAgICAqLwogCi0jZGVmaW5lIENGR19EUkFNX0JBU0UJCTB4YTAwMDAwMDAJLyogUkFNIHN0YXJ0cyBoZXJlICAgICAgICAgICovCi0jZGVmaW5lIENGR19EUkFNX1NJWkUJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBU0UJCTB4YTAwMDAwMDAJLyogUkFNIHN0YXJ0cyBoZXJlICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFCQkweDAyMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgICAgICAgICAgUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICAgICAgICBQSFlTX0ZMQVNIXzEKIAogIyBpZiAwCiAvKiBGSVhNRTogc3dpdGNoIHRvIF9kb2N1bWVudGVkXyByZWdpc3RlcnMgKi8KQEAgLTE5Niw5ICsxOTYsOSBAQAogICogR1A3OSA9PSBuQ1MzICAgICAgaXMgMQogICogR1A4MCA9PSBuQ1M0ICAgICAgaXMgMQogICovCi0jZGVmaW5lIENGR19HUFNSMF9WQUwgICAgICAgMHgwMzAwODAwMAotI2RlZmluZSBDRkdfR1BTUjFfVkFMICAgICAgIDB4QzAwMjgyODIKLSNkZWZpbmUgQ0ZHX0dQU1IyX1ZBTCAgICAgICAweDAwMDFDMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjBfVkFMICAgICAgIDB4MDMwMDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMV9WQUwgICAgICAgMHhDMDAyODI4MgorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IyX1ZBTCAgICAgICAweDAwMDFDMDAwCiAKIC8qIEdQMDIgPT0gRE9OX1JTVCAgIGlzIDAKICAqIEdQMjMgPT0gU0NMSyAgICAgIGlzIDAKQEAgLTIwNyw5ICsyMDcsOSBAQAogICogR1A2MSA9PSBMRURfQSAgICAgaXMgMAogICogR1A3MyA9PSBTV1VQRF9MRUQgaXMgMAogICovCi0jZGVmaW5lIENGR19HUENSMF9WQUwgICAgICAgMHgwMDgwMDAwNAotI2RlZmluZSBDRkdfR1BDUjFfVkFMICAgICAgIDB4MzAwMDIwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IyX1ZBTCAgICAgICAweDAwMDAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjBfVkFMICAgICAgIDB4MDA4MDAwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMV9WQUwgICAgICAgMHgzMDAwMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IyX1ZBTCAgICAgICAweDAwMDAwMTAwCiAKIC8qIEdQMDAgPT0gRE9OX1JFQURZIGlzIGlucHV0CiAgKiBHUDAxID09IERPTl9PSyAgICBpcyBpbnB1dApAQCAtMjU0LDkgKzI1NCw5IEBACiAgKiBHUDc5ID09IG5DUzMgICAgICBpcyBvdXRwdXQKICAqIEdQODAgPT0gbkNTNCAgICAgIGlzIG91dHB1dAogICovCi0jZGVmaW5lIENGR19HUERSMF9WQUwgICAgICAgMHgwMzgwODAwNAotI2RlZmluZSBDRkdfR1BEUjFfVkFMICAgICAgIDB4RjAwMkEyODIKLSNkZWZpbmUgQ0ZHX0dQRFIyX1ZBTCAgICAgICAweDAwMDFDMjAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjBfVkFMICAgICAgIDB4MDM4MDgwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMV9WQUwgICAgICAgMHhGMDAyQTI4MgorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIyX1ZBTCAgICAgICAweDAwMDFDMjAwCiAKIC8qIEdQMTUgPT0gbkNTMSAgaXMgQUYxMAogICogR1AxOCA9PSBSRFkgICBpcyBBRjAxCkBAIC0yNzYsMTIgKzI3NiwxMiBAQAogICogR1A3OSA9PSBuQ1MzICBpcyBBRjEwCiAgKiBHUDgwID09IG5DUzQgIGlzIEFGMTAKICAqLwotI2RlZmluZSBDRkdfR0FGUjBfTF9WQUwgICAgIDB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dBRlIwX1VfVkFMICAgICAweDAwMUE4MDEwCi0jZGVmaW5lIENGR19HQUZSMV9MX1ZBTCAgICAgMHg2MDA4ODA1OAotI2RlZmluZSBDRkdfR0FGUjFfVV9WQUwgICAgIDB4MDAwMDAwMDgKLSNkZWZpbmUgQ0ZHX0dBRlIyX0xfVkFMICAgICAweEEwMDAwMDAwCi0jZGVmaW5lIENGR19HQUZSMl9VX1ZBTCAgICAgMHgwMDAwMDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX0xfVkFMICAgICAweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfVV9WQUwgICAgIDB4MDAxQTgwMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9MX1ZBTCAgICAgMHg2MDA4ODA1OAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX1VfVkFMICAgICAweDAwMDAwMDA4CisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfTF9WQUwgICAgIDB4QTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9VX1ZBTCAgICAgMHgwMDAwMDAwMgogCiAKIC8qIEZJWE1FOiBzZXQgR1BJT19SRVIvRkVSICovCkBAIC0yOTIsNyArMjkyLDcgQEAKICAqIEJGUyA9IDEKICAqIFNTUyA9IDEKICAqLwotI2RlZmluZSBDRkdfUFNTUl9WQUwJCTB4MzcKKyNkZWZpbmUgQ09ORklHX1NZU19QU1NSX1ZBTAkJMHgzNwogCiAvKgogICogTWVtb3J5IHNldHRpbmdzCkBAIC0zMTMsNyArMzEzLDcgQEAKICAqIFswM10gICAgMSAgICAtIDE2IEJpdCBidXMgd2lkdGgKICAqIFswMjowMF0gMDAwICAtIG5vbmJ1cnN0IFJBTSBvciBGTEFTSAogICovCi0jZGVmaW5lIENGR19NU0MwX1ZBTAkJMHgyNWI4MjViOCAvKiBmbGFzaCBiYW5rcyAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01TQzBfVkFMCQkweDI1YjgyNWI4IC8qIGZsYXNoIGJhbmtzICAgICAgICAgICAgICAgICAgICovCiAKIC8qIFRoaXMgaXMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIG5DUzIvMyAtPiBURE0tU3dpdGNoLCBEU1AKICAqIGNvbmZpZ3VyYXRpb24gZm9yIG5DUzM6IERTUApAQCAtMzMxLDcgKzMzMSw3IEBACiAgKiBbMDNdICAgIDEgICAgLSAxNiBCaXQgYnVzIHdpZHRoCiAgKiBbMDI6MDBdIDEwMCAgLSB2YXJpYWJsZSBsYXRlbmN5IEkvTwogICovCi0jZGVmaW5lIENGR19NU0MxX1ZBTAkJMHgxMjNDNTkzQyAvKiBURE0gc3dpdGNoLCBEU1AgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01TQzFfVkFMCQkweDEyM0M1OTNDIC8qIFRETSBzd2l0Y2gsIERTUCAgICAgICAgICAgICAgICovCiAKIC8qIFRoaXMgaXMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIG5DUzQvNSAtPiBFeHRCdXMsIExBTiBDb250cm9sbGVyCiAgKgpAQCAtMzUwLDcgKzM1MCw3IEBACiAgKiBbMDNdICAgIDEgICAgLSAxNiBCaXQgYnVzIHdpZHRoCiAgKiBbMDI6MDBdIDEwMCAgLSB2YXJpYWJsZSBsYXRlbmN5IEkvTwogICovCi0jZGVmaW5lIENGR19NU0MyX1ZBTAkJMHgxMjNDNkNEQyAvKiBleHRyYSBidXMsIExBTiBjb250cm9sbGVyICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01TQzJfVkFMCQkweDEyM0M2Q0RDIC8qIGV4dHJhIGJ1cywgTEFOIGNvbnRyb2xsZXIgICAgICovCiAKIC8qIE1EQ05GRzogU0RSQU0gQ29uZmlndXJhdGlvbiBSZWdpc3RlcgogICoKQEAgLTM3OCw3ICszNzgsNyBAQAogICogWzAwXSAgICAgIDEgICAtIGVuYWJsZSAgU0RSQU0gcGFydGl0aW9uIDAKICAqLwogLyogdXNlIHRoZSBjb25maWd1cmF0aW9uIGFib3ZlIGJ1dCBkaXNhYmxlIHBhcnRpdGlvbiAwICovCi0jZGVmaW5lIENGR19NRENORkdfVkFMCQkweDAwMDAxOWM4CisjZGVmaW5lIENPTkZJR19TWVNfTURDTkZHX1ZBTAkJMHgwMDAwMTljOAogCiAvKiBNRFJFRlI6IFNEUkFNIFJlZnJlc2ggQ29udHJvbCBSZWdpc3RlcgogICoKQEAgLTM5OSw3ICszOTksNyBAQAogICogWzEyXSAgICAxICAgICAtIEUwUElOOiBkaXNhYmxlIFNEQ0tFMAogICogWzExOjAwXSAwMDAwMDAwMTEwMDAgLSAoNjRtcy84MTkyKSpNZW1DbGtGcmVxLzMyID0gMjQKICAqLwotI2RlZmluZSBDRkdfTURSRUZSX1ZBTAkJMHgwMDgxRDAxOAorI2RlZmluZSBDT05GSUdfU1lTX01EUkVGUl9WQUwJCTB4MDA4MUQwMTgKIAogLyogTURNUlM6IE1vZGUgUmVnaXN0ZXIgU2V0IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIKICAqCkBAIC00MTQsNjQgKzQxNCw2NCBAQAogICogWzAzXSAgICAgIDAgICAgICAgLSBNREFERDA6IFNEUkFNMC8xIGJ1cnN0IFR5cGUuIEZpeGVkIHRvIHNlcXVlbnRpYWwuCiAgKiBbMDI6MDBdICAgMDEwICAgICAtIE1EQkwwOiAgU0RSQU0wLzEgYnVyc3QgTGVuZ3RoLiBGaXhlZCB0byA0LgogICovCi0jZGVmaW5lIENGR19NRE1SU19WQUwJCTB4MDAwMjAwMjIKKyNkZWZpbmUgQ09ORklHX1NZU19NRE1SU19WQUwJCTB4MDAwMjAwMjIKIAogLyoKICAqIFBDTUNJQSBhbmQgQ0YgSW50ZXJmYWNlcwogICovCi0jZGVmaW5lIENGR19NRUNSX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNNRU0wX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNNRU0xX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNBVFQwX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNBVFQxX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNJTzBfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQ0lPMV9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRUNSX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMF9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQwX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMV9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMF9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMV9WQUwJCTB4MDAwMDAwMDAKICNlbmRpZgogCiAvKgogICogR1BJTyBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19HUFNSMF9WQUwJCTB4RkZGRkZGRkYKLSNkZWZpbmUgQ0ZHX0dQU1IxX1ZBTAkJMHhGRkZGRkZGRgotI2RlZmluZSBDRkdfR1BTUjJfVkFMCQkweEZGRkZGRkZGCi0jZGVmaW5lIENGR19HUENSMF9WQUwJCTB4MDgwMjIwODAKLSNkZWZpbmUgQ0ZHX0dQQ1IxX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BDUjJfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUERSMF9WQUwJCTB4Q0Q4MkE4NzgKLSNkZWZpbmUgQ0ZHX0dQRFIxX1ZBTAkJMHhGQ0ZGQUI4MAotI2RlZmluZSBDRkdfR1BEUjJfVkFMCQkweDAwMDFGRkZGCi0jZGVmaW5lIENGR19HQUZSMF9MX1ZBTAkJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfR0FGUjBfVV9WQUwJCTB4QTUyNTQwMTAKLSNkZWZpbmUgQ0ZHX0dBRlIxX0xfVkFMCQkweDU5OUE5NTUwCi0jZGVmaW5lIENGR19HQUZSMV9VX1ZBTAkJMHhBQUE1QUFBQQotI2RlZmluZSBDRkdfR0FGUjJfTF9WQUwJCTB4QUFBQUFBQUEKLSNkZWZpbmUgQ0ZHX0dBRlIyX1VfVkFMCQkweDAwMDAwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjBfVkFMCQkweEZGRkZGRkZGCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjFfVkFMCQkweEZGRkZGRkZGCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjJfVkFMCQkweEZGRkZGRkZGCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjBfVkFMCQkweDA4MDIyMDgwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjJfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjBfVkFMCQkweENEODJBODc4CisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjFfVkFMCQkweEZDRkZBQjgwCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjJfVkFMCQkweDAwMDFGRkZGCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfTF9WQUwJCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9VX1ZBTAkJMHhBNTI1NDAxMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX0xfVkFMCQkweDU5OUE5NTUwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfVV9WQUwJCTB4QUFBNUFBQUEKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9MX1ZBTAkJMHhBQUFBQUFBQQorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX1VfVkFMCQkweDAwMDAwMDAyCiAKIC8qIEZJWE1FOiBzZXQgR1BJT19SRVIvRkVSICovCiAKLSNkZWZpbmUgQ0ZHX1BTU1JfVkFMICAgICAgICAweDIwCisjZGVmaW5lIENPTkZJR19TWVNfUFNTUl9WQUwgICAgICAgIDB4MjAKIAogLyoKICAqIE1lbW9yeSBzZXR0aW5ncwogICovCiAKLSNkZWZpbmUgQ0ZHX01TQzBfVkFMICAgICAgICAgICAgMHgyZWYxNWFmMAotI2RlZmluZSBDRkdfTVNDMV9WQUwgICAgICAgICAgICAweDAwMDAzZmY0Ci0jZGVmaW5lIENGR19NU0MyX1ZBTCAgICAgICAgICAgIDB4N2ZmMDdmZjAKLSNkZWZpbmUgQ0ZHX01EQ05GR19WQUwgICAgICAgICAgMHgwOWE5MDlhOQotI2RlZmluZSBDRkdfTURSRUZSX1ZBTCAgICAgICAgICAweDAzOGZmMDMwCi0jZGVmaW5lIENGR19NRE1SU19WQUwgICAgICAgICAgIDB4MDAyMjAwMjIKKyNkZWZpbmUgQ09ORklHX1NZU19NU0MwX1ZBTCAgICAgICAgICAgIDB4MmVmMTVhZjAKKyNkZWZpbmUgQ09ORklHX1NZU19NU0MxX1ZBTCAgICAgICAgICAgIDB4MDAwMDNmZjQKKyNkZWZpbmUgQ09ORklHX1NZU19NU0MyX1ZBTCAgICAgICAgICAgIDB4N2ZmMDdmZjAKKyNkZWZpbmUgQ09ORklHX1NZU19NRENORkdfVkFMICAgICAgICAgIDB4MDlhOTA5YTkKKyNkZWZpbmUgQ09ORklHX1NZU19NRFJFRlJfVkFMICAgICAgICAgIDB4MDM4ZmYwMzAKKyNkZWZpbmUgQ09ORklHX1NZU19NRE1SU19WQUwgICAgICAgICAgIDB4MDAyMjAwMjIKIAogLyoKICAqIFBDTUNJQSBhbmQgQ0YgSW50ZXJmYWNlcwogICovCi0jZGVmaW5lIENGR19NRUNSX1ZBTCAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNNRU0wX1ZBTCAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DTUVNMV9WQUwgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQ0FUVDBfVkFMICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNBVFQxX1ZBTCAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DSU8wX1ZBTCAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQ0lPMV9WQUwgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FQ1JfVkFMICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0wX1ZBTCAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTFfVkFMICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMF9WQUwgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQxX1ZBTCAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMF9WQUwgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DSU8xX1ZBTCAgICAgICAweDAwMDAwMDAwCiAKICNkZWZpbmUgQ1NCMjI2X1VTRVJfTEVEMAkweDAwMDAwMDA4CiAjZGVmaW5lIENTQjIyNl9VU0VSX0xFRDEJMHgwMDAwMDAxMApAQCAtNDgxLDEyICs0ODEsMTIgQEAKIC8qCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgICAgMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdC4gb24gb25lIGNoaXAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICAgICAxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdC4gb24gb25lIGNoaXAgICovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVCAgICAoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICAgICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUICAgICgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICAgICgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCAgICAoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAgICAgICAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgICAgICAoUEhZU19GTEFTSF8xICsgMHgxQzAwMCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9jc2IyNzIuaCBiL2luY2x1ZGUvY29uZmlncy9jc2IyNzIuaAppbmRleCAxMzg5MmU2Li4zOTNlOTkyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvY3NiMjcyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2NzYjI3Mi5oCkBAIC0xMDUsNyArMTA1LDcgQEAKICAqCiAgKi8KICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogLyoKICAqIEtHREIgQ29uZmlndXJhdGlvbgpAQCAtMTIwLDM2ICsxMjAsMzYgQEAKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqCiAgKi8KLSN1bmRlZglDRkdfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyICovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgkvKiBodXNoIHNoZWxsIHNlY29uZGFyeSBwcm9tcHQgKi8KKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlciAqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgkvKiBodXNoIHNoZWxsIHNlY29uZGFyeSBwcm9tcHQgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwIC8qIDQgLi4uIDEyIE1CIGluIERSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMCAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNICovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCi0jZGVmaW5lIENGR19DTEtTX0lOX0haCQkxCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW5mbyAoYmRfdCkgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0NMS1NfSU5fSFoJCTEJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW5mbyAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogd2F0Y2hkb2cgY29uZmlndXJhdGlvbgpAQCAtMTYxLDExICsxNjEsMTEgQEAKICAqIFVBUlQgY29uZmlndXJhdGlvbgogICoKICAqLwotI2RlZmluZSBDRkdfRVhUX1NFUklBTF9DTE9DSwkzODY4NDAwCS8qIHVzZSBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KLSN1bmRlZiAgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkgKi8KLSN1bmRlZiAgQ0ZHX0JBU0VfQkFVRAorI2RlZmluZSBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJMzg2ODQwMAkvKiB1c2UgZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCisjdW5kZWYgIENPTkZJR19TWVNfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OSAqLworI3VuZGVmICBDT05GSUdfU1lTX0JBU0VfQkFVRAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTM4NDAwCS8qIERlZmF1bHQgYmF1ZCByYXRlICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgICAgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgICAgIFwKICAgICB7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qCkBAIC0xNzMsOCArMTczLDggQEAKICAqCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZAkJCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YJLyogSTJDIHNsYXZlIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YJLyogSTJDIHNsYXZlIGFkZHJlc3MJCSovCiAKIC8qCiAgKiBNSUkgUEhZIGNvbmZpZ3VyYXRpb24KQEAgLTIwOSwxNCArMjA5LDE0IEBACiAjdW5kZWYgIENPTkZJR19QQ0lfU0NBTl9TSE9XICAgICAgICAgICAgLyogcHJpbnQgcGNpIGRldmljZXMgQCBzdGFydHVwICAqLwogI2RlZmluZSBDT05GSUdfUENJX0JPT1RERUxBWSAgICAwICAgICAgIC8qIGVuYWJsZSBwY2kgYm9vdGRlbGF5IHZhcmlhYmxlKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDAwMDAgIC8qIFBDSSBWZW5kb3IgSUQ6IHRvLWRvISEhICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwMDAwICAvKiBQQ0kgRGV2aWNlIElEOiB0by1kbyEhISAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBICAweDAwMDAwMDAwICAgICAgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUyAgMHg4MDAwMDAwMSAgICAgIC8qIDJHQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBICAweDAwMDAwMDAwICAgICAgLyogZGlzYWJsZWQgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUyAgMHgwMDAwMDAwMCAgICAgIC8qIGRpc2FibGVkICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDAwMDAgIC8qIFBDSSBWZW5kb3IgSUQ6IHRvLWRvISEhICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDAwMCAgLyogUENJIERldmljZSBJRDogdG8tZG8hISEgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEgIDB4MDAwMDAwMDAgICAgICAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUyAgMHg4MDAwMDAwMSAgICAgIC8qIDJHQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEgIDB4MDAwMDAwMDAgICAgICAvKiBkaXNhYmxlZCAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUyAgMHgwMDAwMDAwMCAgICAgIC8qIGRpc2FibGVkICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwogCiAvKgogICogSURFIHN0dWZmCkBAIC0yMzksMTcgKzIzOSwxNyBAQAogICoKICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAyMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IEtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgLyogUmVzZXJ2ZSAxMjggS0IgZm9yIG1hbGxvYygpICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgLyogUmVzZXJ2ZSAxMjggS0IgZm9yIG1hbGxvYygpICovCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX1JBTVNUQVJUCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1TVEFSVAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCkBAIC0yNjMsMzcgKzI2MywzNyBAQAogICogRkxBU0ggRGV2aWNlIGNvbmZpZ3VyYXRpb24KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBmbGFzaCBpcyBDRkkgY29uZm9ybWFudAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBmbGFzaCBpcyBDRkkgY29uZm9ybWFudAkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIHVzZSBjb21tb24gY2ZpIGRyaXZlcgkqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggIyBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVAkwCS8qIHRoZXJlIGlzIG9ubHkgb25lIGJhbmsJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggIyBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJLyogaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbgkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggIyBvZiBtZW1vcnkgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQJMAkvKiB0aGVyZSBpcyBvbmx5IG9uZSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCAjIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQogCiAvKgogICogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24vc2l6ZQogICoKICAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCiAKIC8qCiAgKiBHbG9iYWwgaW5mbyBhbmQgaW5pdGlhbCBzdGFjawogICoKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2Ygb24tY2hpcCBTUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4IC8qIGJ5dGUgc2l6ZSByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2Ygb24tY2hpcCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4IC8qIGJ5dGUgc2l6ZSByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKgogICogTWlzY2VsbGFuZW91cyBib2FyZCBzcGVjaWZpYyBkZWZpbml0aW9ucwogICoKICAqLwotI2RlZmluZSBDRkdfSTJDX1BMTF9BRERSCTB4NTgJLyogSTJDIGFkZHJlc3Mgb2YgQU1JUyBGUzYzNzctMDEgUExMICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1BMTF9BRERSCTB4NTgJLyogSTJDIGFkZHJlc3Mgb2YgQU1JUyBGUzYzNzctMDEgUExMICovCiAjZGVmaW5lIENPTkZJR19JMkNGQVNUCQkxCS8qIGVuYWJsZSAiaTJjZmFzdCIgZW52LiBzZXR0aW5nICAgICAqLwogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2NzYjQ3Mi5oIGIvaW5jbHVkZS9jb25maWdzL2NzYjQ3Mi5oCmluZGV4IDA2NDQ5ODIuLmFmMzgyNTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9jc2I0NzIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvY3NiNDcyLmgKQEAgLTEwNCw3ICsxMDQsNyBAQAogICoKICAqLwogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAvKgogICogS0dEQiBDb25maWd1cmF0aW9uCkBAIC0xMTksMzYgKzExOSwzNiBAQAogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICoKICAqLwotI3VuZGVmCUNGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIgKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCS8qIGh1c2ggc2hlbGwgc2Vjb25kYXJ5IHByb21wdCAqLworI3VuZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyICovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCS8qIGh1c2ggc2hlbGwgc2Vjb25kYXJ5IHByb21wdCAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwIC8qIDQgLi4uIDEyIE1CIGluIERSQU0gKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KLSNkZWZpbmUgQ0ZHX0NMS1NfSU5fSFoJCTEJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbmZvIChiZF90KSAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJMQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbmZvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiB3YXRjaGRvZyBjb25maWd1cmF0aW9uCkBAIC0xNjAsMTEgKzE2MCwxMSBAQAogICogVUFSVCBjb25maWd1cmF0aW9uCiAgKgogICovCi0jdW5kZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJCS8qIHVzZSBpbnRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KLSN1bmRlZiAgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkgKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkJNjkxMjAwCisjdW5kZWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCQkvKiB1c2UgaW50ZXJuYWwgc2VyaWFsIGNsb2NrICovCisjdW5kZWYgIENPTkZJR19TWVNfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkJNjkxMjAwCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMzg0MDAJLyogRGVmYXVsdCBiYXVkIHJhdGUgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICAgICAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICAgICAgXAogICAgIHsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyoKQEAgLTE3Miw4ICsxNzIsOCBAQAogICoKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkCQkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgkvKiBJMkMgc2xhdmUgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgkvKiBJMkMgc2xhdmUgYWRkcmVzcwkJKi8KIAogLyoKICAqIE1JSSBQSFkgY29uZmlndXJhdGlvbgpAQCAtMjA4LDE0ICsyMDgsMTQgQEAKICN1bmRlZiAgQ09ORklHX1BDSV9TQ0FOX1NIT1cgICAgICAgICAgICAvKiBwcmludCBwY2kgZGV2aWNlcyBAIHN0YXJ0dXAgICovCiAjZGVmaW5lIENPTkZJR19QQ0lfQk9PVERFTEFZICAgIDAgICAgICAgLyogZW5hYmxlIHBjaSBib290ZGVsYXkgdmFyaWFibGUqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MDAwMCAgLyogUENJIFZlbmRvciBJRDogdG8tZG8hISEgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDAwMDAgIC8qIFBDSSBEZXZpY2UgSUQ6IHRvLWRvISEhICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIDB4MDAwMDAwMDAgICAgICAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TICAweDgwMDAwMDAxICAgICAgLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEgIDB4MDAwMDAwMDAgICAgICAvKiBkaXNhYmxlZCAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweDAwMDAwMDAwICAgICAgLyogZGlzYWJsZWQgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MDAwMCAgLyogUENJIFZlbmRvciBJRDogdG8tZG8hISEgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwMDAwICAvKiBQQ0kgRGV2aWNlIElEOiB0by1kbyEhISAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQSAgMHgwMDAwMDAwMCAgICAgIC8qIHBvaW50IHRvIHNkcmFtICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TICAweDgwMDAwMDAxICAgICAgLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQSAgMHgwMDAwMDAwMCAgICAgIC8qIGRpc2FibGVkICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TICAweDAwMDAwMDAwICAgICAgLyogZGlzYWJsZWQgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCiAKIC8qCiAgKiBJREUgc3R1ZmYKQEAgLTIzOCwxNyArMjM4LDE3IEBACiAgKgogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KSAvKiBSZXNlcnZlIDEyOCBLQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBLQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KSAvKiBSZXNlcnZlIDEyOCBLQiBmb3IgbWFsbG9jKCkgKi8KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfUkFNU1RBUlQKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1JBTVNUQVJUCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKQEAgLTI2MiwzMSArMjYyLDMxIEBACiAgKiBGTEFTSCBEZXZpY2UgY29uZmlndXJhdGlvbgogICoKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIGZsYXNoIGlzIENGSSBjb25mb3JtYW50CSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIGZsYXNoIGlzIENGSSBjb25mb3JtYW50CSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogdXNlIGNvbW1vbiBjZmkgZHJpdmVyCSovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCAjIG9mIG1lbW9yeSBiYW5rcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfSU5DUkVNRU5UCTAJLyogdGhlcmUgaXMgb25seSBvbmUgYmFuawkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4ICMgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCS8qIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24JKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4ICMgb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UCTAJLyogdGhlcmUgaXMgb25seSBvbmUgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCAjIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQogCiAvKgogICogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24vc2l6ZQogICoKICAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCiAKIC8qCiAgKiBHbG9iYWwgaW5mbyBhbmQgaW5pdGlhbCBzdGFjawogICoKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2Ygb24tY2hpcCBTUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4IC8qIGJ5dGUgc2l6ZSByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2Ygb24tY2hpcCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4IC8qIGJ5dGUgc2l6ZSByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKgogICogTWlzY2VsbGFuZW91cyBib2FyZCBzcGVjaWZpYyBkZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2NzYjYzNy5oIGIvaW5jbHVkZS9jb25maWdzL2NzYjYzNy5oCmluZGV4IDA3NjAwODQuLjM4ZmQyNWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9jc2I2MzcuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvY3NiNjM3LmgKQEAgLTQzLDcgKzQzLDcgQEAKICNkZWZpbmUgQ09ORklHX0lOSVRSRF9UQUcJMQogCiAjaWZuZGVmIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQKLSNkZWZpbmUgQ0ZHX1VTRV9NQUlOX09TQ0lMTEFUT1IJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfTUFJTl9PU0NJTExBVE9SCQkxCiAvKiBmbGFzaCAqLwogI2RlZmluZSBNQ19QVUlBX1ZBTAkweDAwMDAwMDAwCiAjZGVmaW5lIE1DX1BVUF9WQUwJMHgwMDAwMDAwMApAQCAtNzYsMTIgKzc2LDEyIEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFIDExNTIwMAogCi0jZGVmaW5lIENGR19BVDkxQ19CUkdSX0RJVklTT1IJNzUJLyogaGFyZGNvZGUgc28gbm8gX19kaXZzaTMgOiBBVDkxQ19NQVNURVJfQ0xPQ0sgLyBiYXVkcmF0ZSAvIDE2ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVQ5MUNfQlJHUl9ESVZJU09SCTc1CS8qIGhhcmRjb2RlIHNvIG5vIF9fZGl2c2kzIDogQVQ5MUNfTUFTVEVSX0NMT0NLIC8gYmF1ZHJhdGUgLyAxNiAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtMTIwLDcgKzEyMCw3IEBACiAKICNpZmRlZglOQU5EX1NVUFBPUlRfSEFTX0JFRU5fRklYRUQJLyogTkFORCBzdXBwb3J0IGlzIGJyb2tlbiAvIHVuaW1wbGVtZW50ZWQgKi8KIAotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMJCSovCiAjZGVmaW5lIFNFQ1RPUlNJWkUgNTEyCiAKICNkZWZpbmUgQUREUl9DT0xVTU4gMQpAQCAtMTU2LDQ2ICsxNTYsNDYgQEAKICNkZWZpbmUgUEhZU19TRFJBTQkJCTB4MjAwMDAwMDAKICNkZWZpbmUgUEhZU19TRFJBTV9TSVpFCQkJMHg0MDAwMDAwICAvKiA2NCBtZWdzICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCVBIWVNfU0RSQU0KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkJQ0ZHX01FTVRFU1RfU1RBUlQgKyBQSFlTX1NEUkFNX1NJWkUgLSA1MTIqMTAyNCAtIDQKLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCQkJMQotI2RlZmluZSBDRkdfTUVNVEVTVF9TQ1JBVENICQlDRkdfTUVNVEVTVF9TVEFSVCArIFBIWVNfU0RSQU1fU0laRSAtIDQKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlQSFlTX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQlDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgKyBQSFlTX1NEUkFNX1NJWkUgLSA1MTIqMTAyNCAtIDQKKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVAkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NDUkFUQ0gJCUNPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArIFBIWVNfU0RSQU1fU0laRSAtIDQKIAogI2RlZmluZSBDT05GSUdfRFJJVkVSX0VUSEVSCiAjZGVmaW5lIENPTkZJR19ORVRfUkVUUllfQ09VTlQJCTIwCiAjdW5kZWYgQ09ORklHX0FUOTFDX1VTRV9STUlJCiAKICN1bmRlZiBDT05GSUdfSEFTX0RBVEFGTEFTSAotI2RlZmluZSBDRkdfU1BJX1dSSVRFX1RPVVQJCSg1KkNGR19IWikKLSNkZWZpbmUgQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1MJCTAKLSNkZWZpbmUgQ0ZHX01BWF9EQVRBRkxBU0hfUEFHRVMJCTE2Mzg0Ci0jZGVmaW5lIENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAJMHhDMDAwMDAwMAkvKiBMb2dpY2FsIGFkcmVzcyBmb3IgQ1MwICovCi0jZGVmaW5lIENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzMJMHhEMDAwMDAwMAkvKiBMb2dpY2FsIGFkcmVzcyBmb3IgQ1MzICovCisjZGVmaW5lIENPTkZJR19TWVNfU1BJX1dSSVRFX1RPVVQJCSg1KkNPTkZJR19TWVNfSFopCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LUwkJMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfUEFHRVMJCTE2Mzg0CisjZGVmaW5lIENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwCTB4QzAwMDAwMDAJLyogTG9naWNhbCBhZHJlc3MgZm9yIENTMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMwkweEQwMDAwMDAwCS8qIExvZ2ljYWwgYWRyZXNzIGZvciBDUzMgKi8KIAogLyoKICAqIEZMQVNIIERldmljZSBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgUEhZU19GTEFTSF8xCQkJMHgxMDAwMDAwMAogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCQkweDgwMDAwMCAgLyogOCBtZWdzIG1haW4gZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBmbGFzaCBpcyBDRkkgY29uZm9ybWFudAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogZmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiB1c2UgY29tbW9uIGNmaSBkcml2ZXIJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4ICMgb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19GTEFTSF9JTkNSRU1FTlQJMAkvKiB0aGVyZSBpcyBvbmx5IG9uZSBiYW5rCSovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJLyogaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbgkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTY0CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCAjIG9mIG1lbW9yeSBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVAkwCS8qIHRoZXJlIGlzIG9ubHkgb25lIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQk2NAogCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LCTAKLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX1NFQ1RPUgkzCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksJMAorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUgkzCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfTlVNX0JBTktTCTEKIAogI3VuZGVmCUNPTkZJR19FTlZfSVNfSU5fREFUQUZMQVNICiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0RBVEFGTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJCTB4MjAwMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyBDT05GSUdfRU5WX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJCTB4MjAwMCAgLyogMHg4MDAwICovCiAjZWxzZQogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICQkxCkBAIC0yMDQsMTcgKzIwNCwxNyBAQAogI2VuZGlmCS8qIENPTkZJR19FTlZfSVNfSU5fREFUQUZMQVNIICovCiAKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIxMDAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgyMTAwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAsIDU3NjAwLCAzODQwMCwgMTkyMDAsIDk2MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwLCA1NzYwMCwgMzg0MDAsIDE5MjAwLCA5NjAwIH0KIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiVS1Cb290PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJVLUJvb3Q+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX0haIDEwMDAKLSNkZWZpbmUgQ0ZHX0haX0NMT0NLIEFUOTFDX01BU1RFUl9DTE9DSy8yCS8qIEFUOTFDX1RDMF9DTVIgaXMgaW1wbGljaXRseSBzZXQgdG8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWiAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFpfQ0xPQ0sgQVQ5MUNfTUFTVEVSX0NMT0NLLzIJLyogQVQ5MUNfVEMwX0NNUiBpcyBpbXBsaWNpdGx5IHNldCB0byAqLwogCQkJCQkJLyogQVQ5MUNfVENfVElNRVJfRElWMV9DTE9DSyAqLwogCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJKDMyKjEwMjQpCS8qIHJlZ3VsYXIgc3RhY2sgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX2R2ZXZtLmggYi9pbmNsdWRlL2NvbmZpZ3MvZGF2aW5jaV9kdmV2bS5oCmluZGV4IGFlMmY2YTUuLjY4ODViMmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX2R2ZXZtLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfZHZldm0uaApAQCAtNTAsMzEgKzUwLDMxIEBACiAvKiBCb2FyZCAqLwogLyo9PT09PT09Ki8KICNkZWZpbmUgRFZfRVZNCi0jZGVmaW5lIENGR19OQU5EX1NNQUxMUEFHRQotI2RlZmluZSBDRkdfVVNFX05PUgorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfU01BTExQQUdFCisjZGVmaW5lIENPTkZJR19TWVNfVVNFX05PUgogLyo9PT09PT09PT09PT09PT09PT09Ki8KIC8qIFNvQyBDb25maWd1cmF0aW9uICovCiAvKj09PT09PT09PT09PT09PT09PT0qLwogI2RlZmluZSBDT05GSUdfQVJNOTI2RUpTCQkJLyogYXJtOTI2ZWpzIENQVSBjb3JlICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMjk3MDAwMDAwCS8qIEFybSBDbG9jayBmcmVxdWVuY3kgKi8KLSNkZWZpbmUgQ0ZHX1RJTUVSQkFTRQkJMHgwMWMyMTQwMAkvKiB1c2UgdGltZXIgMCAqLwotI2RlZmluZSBDRkdfSFpfQ0xPQ0sJCTI3MDAwMDAwCS8qIFRpbWVyIElucHV0IGNsb2NrIGZyZXEgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSQkFTRQkJMHgwMWMyMTQwMAkvKiB1c2UgdGltZXIgMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0haX0NMT0NLCQkyNzAwMDAwMAkvKiBUaW1lciBJbnB1dCBjbG9jayBmcmVxICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyogRUVQUk9NIGRlZmluaXRpb25zIGZvciBBdG1lbCAyNEMyNTZCTiBTRUVQUk9NIGNoaXAgKi8KIC8qIG9uIFNvbmF0YS9EVl9FVk0gYm9hcmQuIE5vIEVFUFJPTSBvbiBzY2htb29naWUuICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTYKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCiAvKj09PT09PT09PT09PT0qLwogLyogTWVtb3J5IEluZm8gKi8KIC8qPT09PT09PT09PT09PSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMHgxMDAwMCArIDEyOCoxMDI0KQkvKiBtYWxsb2MoKSBsZW4gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4ODAwMDAwMDAJLyogbWVtdGVzdCBzdGFydCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHg4MTAwMDAwMAkvKiAxNk1CIFJBTSB0ZXN0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDB4MTAwMDAgKyAxMjgqMTAyNCkJLyogbWFsbG9jKCkgbGVuICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4ODAwMDAwMDAJLyogbWVtdGVzdCBzdGFydCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4ODEwMDAwMDAJLyogMTZNQiBSQU0gdGVzdCAqLwogI2RlZmluZSBDT05GSUdfTlJfRFJBTV9CQU5LUwkxCQkvKiB3ZSBoYXZlIDEgYmFuayBvZiBEUkFNICovCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJKDI1NioxMDI0KQkvKiByZWd1bGFyIHN0YWNrICovCiAjZGVmaW5lIFBIWVNfU0RSQU1fMQkJMHg4MDAwMDAwMAkvKiBERFIgU3RhcnQgKi8KQEAgLTgzLDIxICs4MywyMSBAQAogLyo9PT09PT09PT09PT09PT09PT09PSovCiAvKiBTZXJpYWwgRHJpdmVyIGluZm8gKi8KIC8qPT09PT09PT09PT09PT09PT09PT0qLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJNAkJLyogTlMxNjU1MCByZWdpc3RlciBzaXplICovCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJMHgwMWMyMDAwMAkvKiBCYXNlIGFkZHJlc3Mgb2YgVUFSVDAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkyNzAwMDAwMAkvKiBJbnB1dCBjbG9jayB0byBOUzE2NTUwICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQk0CQkvKiBOUzE2NTUwIHJlZ2lzdGVyIHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJMHgwMWMyMDAwMAkvKiBCYXNlIGFkZHJlc3Mgb2YgVUFSVDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJMjcwMDAwMDAJLyogSW5wdXQgY2xvY2sgdG8gTlMxNjU1MCAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCQkvKiB1c2UgVUFSVDAgZm9yIGNvbnNvbGUgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJCS8qIERlZmF1bHQgYmF1ZCByYXRlICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogLyo9PT09PT09PT09PT09PT09PT09Ki8KIC8qIEkyQyBDb25maWd1cmF0aW9uICovCiAvKj09PT09PT09PT09PT09PT09PT0qLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMKICNkZWZpbmUgQ09ORklHX0RSSVZFUl9EQVZJTkNJX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAkvKiAxMDBLYnBzIHdvbid0IHdvcmssIHNpbGljb24gYnVnICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTEwCS8qIEJvZ3VzLCBtYXN0ZXItb25seSBpbiBVLUJvb3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTgwMDAwCS8qIDEwMEticHMgd29uJ3Qgd29yaywgc2lsaWNvbiBidWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTEwCS8qIEJvZ3VzLCBtYXN0ZXItb25seSBpbiBVLUJvb3QgKi8KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAvKiBOZXR3b3JrICYgRXRoZXJuZXQgQ29uZmlndXJhdGlvbiAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KQEAgLTExMSwxMSArMTExLDExIEBACiAvKj09PT09PT09PT09PT09PT09PT09PSovCiAvKiBGbGFzaCAmIEVudmlyb25tZW50ICovCiAvKj09PT09PT09PT09PT09PT09PT09PSovCi0jaWZkZWYgQ0ZHX1VTRV9OQU5ECisjaWZkZWYgQ09ORklHX1NZU19VU0VfTkFORAogI3VuZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKLSNkZWZpbmUgQ0ZHX05PX0ZMQVNICisjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OQU5ECQkvKiBVLUJvb3QgZW52IGluIE5BTkQgRmxhc2ggICovCi0jaWZkZWYgQ0ZHX05BTkRfU01BTExQQUdFCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX1NNQUxMUEFHRQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQk1MTIJLyogRW52IHNlY3RvciBTaXplICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJU1pfMTZLCiAjZWxzZQpAQCAtMTI0LDEzICsxMjQsMTMgQEAKICNlbmRpZgogI2RlZmluZSBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUCS8qIFUtQm9vdCBpcyBsb2FkZWQgYnkgYSBib290bG9hZGVyICovCiAjZGVmaW5lIENPTkZJR19TS0lQX1JFTE9DQVRFX1VCT09UCS8qIHRvIGEgcHJvcGVyIGFkZHJlc3MsIGluaXQgZG9uZSAqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkweDAyMDAwMDAwCi0jZGVmaW5lIENGR19OQU5EX0hXX0VDQwotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0hXX0VDQworI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDAJLyogQmxvY2sgMC0tbm90IHVzZWQgYnkgYm9vdGNvZGUgKi8KICNkZWZpbmUgREVGX0JPT1RNCQkiIgotI2VsaWYgZGVmaW5lZChDRkdfVVNFX05PUikKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19VU0VfTk9SKQogI2lmZGVmIENPTkZJR19OT1JfVUFSVF9CT09UCiAjZGVmaW5lIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQJLyogVS1Cb290IGlzIGxvYWRlZCBieSBhIGJvb3Rsb2FkZXIgKi8KICNkZWZpbmUgQ09ORklHX1NLSVBfUkVMT0NBVEVfVUJPT1QJLyogdG8gYSBwcm9wZXIgYWRkcmVzcywgaW5pdCBkb25lICovCkBAIC0xMzksMTcgKzEzOSwxNyBAQAogI3VuZGVmIENPTkZJR19TS0lQX1JFTE9DQVRFX1VCT09UCiAjZW5kaWYKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAotI3VuZGVmIENGR19OT19GTEFTSAorI3VuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NFQ1RfU1oJMHgxMDAwMAkJLyogNjRLQiBzZWN0IHNpemUgQU1EIEZsYXNoICovCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ0ZHX0ZMQVNIX1NFQ1RfU1oqMykKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NFQ1RfU1oJMHgxMDAwMAkJLyogNjRLQiBzZWN0IHNpemUgQU1EIEZsYXNoICovCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ09ORklHX1NZU19GTEFTSF9TRUNUX1NaKjMpCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgwMjAwMDAwMAkvKiBDUzIgQmFzZSBhZGRyZXNzCSAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCS8qIEZsYXNoIEJhc2UgZm9yIFUtQm9vdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQkvKiBGbGFzaCBCYXNlIGZvciBVLUJvb3QgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDIwMDAwMDAJLyogRmxhc2ggc2l6ZSAzMk1CCSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKFBIWVNfRkxBU0hfU0laRS9DRkdfRkxBU0hfU0VDVF9TWikKLSNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJQ0ZHX0ZMQVNIX1NFQ1RfU1oJLyogRW52IHNlY3RvciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKFBIWVNfRkxBU0hfU0laRS9DT05GSUdfU1lTX0ZMQVNIX1NFQ1RfU1opCisjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCUNPTkZJR19TWVNfRkxBU0hfU0VDVF9TWgkvKiBFbnYgc2VjdG9yIFNpemUgKi8KICNlbmRpZgogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyogVS1Cb290IGdlbmVyYWwgY29uZmlndXJhdGlvbiAqLwpAQCAtMTU4LDE4ICsxNTgsMTggQEAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCiAjdW5kZWYgQ09ORklHX0JPT1RERUxBWQogI2RlZmluZSBDT05GSUdfQk9PVEZJTEUJCSJ1SW1hZ2UiCS8qIEJvb3QgZmlsZSBuYW1lICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJVLUJvb3QgPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgYnVmZmVyIHN6ICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHg4MDcwMDAwMAkvKiBkZWZhdWx0IExpbnV4IGtlcm5lbCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJVLUJvb3QgPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IGJ1ZmZlciBzeiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDgwNzAwMDAwCS8qIGRlZmF1bHQgTGludXgga2VybmVsIGxvYWQgYWRkcmVzcyAqLwogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRQogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURQkJLyogV29uJ3Qgd29yayB3aXRoIGh1c2ggc28gZmFyLCBtYXkgYmUgbGF0ZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwotI2RlZmluZSBDRkdfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAogI2RlZmluZSBDT05GSUdfQ1JDMzJfVkVSSUZZCiAjZGVmaW5lIENPTkZJR19NWF9DWUNMSUMKIC8qPT09PT09PT09PT09PT09PT09PSovCkBAIC0xOTUsMTQgKzE5NSwxNCBAQAogI3VuZGVmIENPTkZJR19DTURfQkRJCiAjdW5kZWYgQ09ORklHX0NNRF9GUEdBCiAjdW5kZWYgQ09ORklHX0NNRF9TRVRHRVREQ1IKLSNpZmRlZiBDRkdfVVNFX05BTkQKKyNpZmRlZiBDT05GSUdfU1lTX1VTRV9OQU5ECiAjdW5kZWYgQ09ORklHX0NNRF9GTEFTSAogI3VuZGVmIENPTkZJR19DTURfSU1MUwogI2RlZmluZSBDT05GSUdfQ01EX05BTkQKLSNlbGlmIGRlZmluZWQoQ0ZHX1VTRV9OT1IpCisjZWxpZiBkZWZpbmVkKENPTkZJR19TWVNfVVNFX05PUikKICNkZWZpbmUgQ09ORklHX0NNRF9KRkZTMgogI2Vsc2UKLSNlcnJvciAiRWl0aGVyIENGR19VU0VfTkFORCBvciBDRkdfVVNFX05PUiBfTVVTVF8gYmUgZGVmaW5lZCAhISEiCisjZXJyb3IgIkVpdGhlciBDT05GSUdfU1lTX1VTRV9OQU5EIG9yIENPTkZJR19TWVNfVVNFX05PUiBfTVVTVF8gYmUgZGVmaW5lZCAhISEiCiAjZW5kaWYKIC8qPT09PT09PT09PT09PT09PT09PT09PT0qLwogLyogS0dEQiBzdXBwb3J0IChpZiBhbnkpICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZGF2aW5jaV9zY2htb29naWUuaCBiL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NjaG1vb2dpZS5oCmluZGV4IDAxNmE4OTcuLjhkN2JjZjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NjaG1vb2dpZS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NjaG1vb2dpZS5oCkBAIC0yNSwyMyArMjUsMjMgQEAKIC8qIEJvYXJkICovCiAvKj09PT09PT0qLwogI2RlZmluZSBTQ0hNT09HSUUKLSNkZWZpbmUgQ0ZHX05BTkRfTEFSR0VQQUdFCi0jZGVmaW5lIENGR19VU0VfTkFORAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfTEFSR0VQQUdFCisjZGVmaW5lIENPTkZJR19TWVNfVVNFX05BTkQKIC8qPT09PT09PT09PT09PT09PT09PSovCiAvKiBTb0MgQ29uZmlndXJhdGlvbiAqLwogLyo9PT09PT09PT09PT09PT09PT09Ki8KICNkZWZpbmUgQ09ORklHX0FSTTkyNkVKUwkJCS8qIGFybTkyNmVqcyBDUFUgY29yZSAqLwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTI5NzAwMDAwMAkvKiBBcm0gQ2xvY2sgZnJlcXVlbmN5ICovCi0jZGVmaW5lIENGR19USU1FUkJBU0UJCTB4MDFjMjE0MDAJLyogdXNlIHRpbWVyIDAgKi8KLSNkZWZpbmUgQ0ZHX0haX0NMT0NLCQkyNzAwMDAwMAkvKiBUaW1lciBJbnB1dCBjbG9jayBmcmVxICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUkJBU0UJCTB4MDFjMjE0MDAJLyogdXNlIHRpbWVyIDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWl9DTE9DSwkJMjcwMDAwMDAJLyogVGltZXIgSW5wdXQgY2xvY2sgZnJlcSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAogLyo9PT09PT09PT09PT09Ki8KIC8qIE1lbW9yeSBJbmZvICovCiAvKj09PT09PT09PT09PT0qLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDB4MTAwMDAgKyAyNTYqMTAyNCkJLyogbWFsbG9jKCkgbGVuICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDgwMDAwMDAwCS8qIG1lbXRlc3Qgc3RhcnQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4ODEwMDAwMDAJLyogMTZNQiBSQU0gdGVzdCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgweDEwMDAwICsgMjU2KjEwMjQpCS8qIG1hbGxvYygpIGxlbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDgwMDAwMDAwCS8qIG1lbXRlc3Qgc3RhcnQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDgxMDAwMDAwCS8qIDE2TUIgUkFNIHRlc3QgKi8KICNkZWZpbmUgQ09ORklHX05SX0RSQU1fQkFOS1MJMQkJLyogd2UgaGF2ZSAxIGJhbmsgb2YgRFJBTSAqLwogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgyNTYqMTAyNCkJLyogcmVndWxhciBzdGFjayAqLwogI2RlZmluZSBQSFlTX1NEUkFNXzEJCTB4ODAwMDAwMDAJLyogRERSIFN0YXJ0ICovCkBAIC01MCwyMSArNTAsMjEgQEAKIC8qPT09PT09PT09PT09PT09PT09PT0qLwogLyogU2VyaWFsIERyaXZlciBpbmZvICovCiAvKj09PT09PT09PT09PT09PT09PT09Ki8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTQJCS8qIE5TMTY1NTAgcmVnaXN0ZXIgc2l6ZSAqLwotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCTB4MDFjMjAwMDAJLyogQmFzZSBhZGRyZXNzIG9mIFVBUlQwICovCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJMjcwMDAwMDAJLyogSW5wdXQgY2xvY2sgdG8gTlMxNjU1MCAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJNAkJLyogTlMxNjU1MCByZWdpc3RlciBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCTB4MDFjMjAwMDAJLyogQmFzZSBhZGRyZXNzIG9mIFVBUlQwICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCTI3MDAwMDAwCS8qIElucHV0IGNsb2NrIHRvIE5TMTY1NTAgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQkJLyogdXNlIFVBUlQwIGZvciBjb25zb2xlICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCQkvKiBEZWZhdWx0IGJhdWQgcmF0ZSAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIC8qPT09PT09PT09PT09PT09PT09PSovCiAvKiBJMkMgQ29uZmlndXJhdGlvbiAqLwogLyo9PT09PT09PT09PT09PT09PT09Ki8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCiAjZGVmaW5lIENPTkZJR19EUklWRVJfREFWSU5DSV9JMkMKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJODAwMDAJLyogMTAwS2JwcyB3b24ndCB3b3JrLCBzaWxpY29uIGJ1ZyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkxMAkvKiBCb2d1cywgbWFzdGVyLW9ubHkgaW4gVS1Cb290ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk4MDAwMAkvKiAxMDBLYnBzIHdvbid0IHdvcmssIHNpbGljb24gYnVnICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkxMAkvKiBCb2d1cywgbWFzdGVyLW9ubHkgaW4gVS1Cb290ICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyogTmV0d29yayAmIEV0aGVybmV0IENvbmZpZ3VyYXRpb24gKi8KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCkBAIC04MCwyNSArODAsMjUgQEAKIC8qIEZsYXNoICYgRW52aXJvbm1lbnQgKi8KIC8qPT09PT09PT09PT09PT09PT09PT09Ki8KICN1bmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICi0jZGVmaW5lIENGR19OT19GTEFTSAorI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTkFORAkJLyogVS1Cb290IGVudiBpbiBOQU5EIEZsYXNoICAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkyMDQ4CS8qIEVudiBzZWN0b3IgU2l6ZSAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCVNaXzEyOEsKICNkZWZpbmUgQ09ORklHX1NLSVBfTE9XTEVWRUxfSU5JVAkvKiBVLUJvb3QgaXMgbG9hZGVkIGJ5IGEgYm9vdGxvYWRlciAqLwogI2RlZmluZSBDT05GSUdfU0tJUF9SRUxPQ0FURV9VQk9PVAkvKiB0byBhIHByb3BlciBhZGRyZXNzLCBpbml0IGRvbmUgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkJMHgwMjAwMDAwMAotI2RlZmluZSBDRkdfTkFORF9IV19FQ0MKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkweDAyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9IV19FQ0MKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLwogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgwCS8qIEJsb2NrIDAtLW5vdCB1c2VkIGJ5IGJvb3Rjb2RlICovCiAvKj09PT09PT09PT09PT09PT09PT09PSovCiAvKiBCb2FyZCByZWxhdGVkIHN0dWZmICovCiAvKj09PT09PT09PT09PT09PT09PT09PSovCiAjZGVmaW5lIENPTkZJR19SVENfRFMxMzA3CQkvKiBSVEMgY2hpcCBvbiBTQ0hNT09HSUUgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDZmCS8qIFJUQyBjaGlwIEkyQyBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NmYJLyogUlRDIGNoaXAgSTJDIGFkZHJlc3MgKi8KICNkZWZpbmUgQ09ORklHX0hBU19VSUQKICNkZWZpbmUgQ09ORklHX1VJRF9EUzI4Q00wMAkJLyogVW5pcXVlIElEIG9uIFNDSE1PT0dJRSAqLwotI2RlZmluZSBDRkdfVUlEX0FERFIJCTB4NTAJLyogVUlEIGNoaXAgSTJDIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VSURfQUREUgkJMHg1MAkvKiBVSUQgY2hpcCBJMkMgYWRkcmVzcyAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyogVS1Cb290IGdlbmVyYWwgY29uZmlndXJhdGlvbiAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwpAQCAtMTA2LDE4ICsxMDYsMTggQEAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCiAjdW5kZWYgQ09ORklHX0JPT1RERUxBWQogI2RlZmluZSBDT05GSUdfQk9PVEZJTEUJCSJ1SW1hZ2UiCS8qIEJvb3QgZmlsZSBuYW1lICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJVLUJvb3QgPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgYnVmZmVyIHN6ICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHg4MDcwMDAwMAkvKiBkZWZhdWx0IExpbnV4IGtlcm5lbCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJVLUJvb3QgPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IGJ1ZmZlciBzeiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDgwNzAwMDAwCS8qIGRlZmF1bHQgTGludXgga2VybmVsIGxvYWQgYWRkcmVzcyAqLwogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRQogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURQkJLyogV29uJ3Qgd29yayB3aXRoIGh1c2ggc28gZmFyLCBtYXkgYmUgbGF0ZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwotI2RlZmluZSBDRkdfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAogI2RlZmluZSBDT05GSUdfQ1JDMzJfVkVSSUZZCiAjZGVmaW5lIENPTkZJR19NWF9DWUNMSUMKIC8qPT09PT09PT09PT09PT09PT09PSovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZGF2aW5jaV9zZmZzZHIuaCBiL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NmZnNkci5oCmluZGV4IDM5ZmIyYTUuLmU5Y2Q1YTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NmZnNkci5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NmZnNkci5oCkBAIC0yNiw0NSArMjYsNDUgQEAKIAogLyogQm9hcmQgKi8KICNkZWZpbmUgU0ZGU0RSCi0jZGVmaW5lIENGR19OQU5EX0xBUkdFUEFHRQotI2RlZmluZSBDRkdfVVNFX05BTkQKLSNkZWZpbmUgQ0ZHX1VTRV9EU1BMSU5LCQkvKiBUaGlzIGlzIHRvIHByZXZlbnQgVS1Cb290IGZyb20KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0xBUkdFUEFHRQorI2RlZmluZSBDT05GSUdfU1lTX1VTRV9OQU5ECisjZGVmaW5lIENPTkZJR19TWVNfVVNFX0RTUExJTksJCS8qIFRoaXMgaXMgdG8gcHJldmVudCBVLUJvb3QgZnJvbQogCQkJCSAqIHBvd2VyaW5nIE9OIHRoZSBEU1AuICovCiAvKiBTb0MgQ29uZmlndXJhdGlvbiAqLwogI2RlZmluZSBDT05GSUdfQVJNOTI2RUpTCQkJLyogYXJtOTI2ZWpzIENQVSBjb3JlICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMjk3MDAwMDAwCS8qIEFybSBDbG9jayBmcmVxdWVuY3kgKi8KLSNkZWZpbmUgQ0ZHX1RJTUVSQkFTRQkJMHgwMWMyMTQwMAkvKiB1c2UgdGltZXIgMCAqLwotI2RlZmluZSBDRkdfSFpfQ0xPQ0sJCTI3MDAwMDAwCS8qIFRpbWVyIElucHV0IGNsb2NrIGZyZXEgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSQkFTRQkJMHgwMWMyMTQwMAkvKiB1c2UgdGltZXIgMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0haX0NMT0NLCQkyNzAwMDAwMAkvKiBUaW1lciBJbnB1dCBjbG9jayBmcmVxICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAvKiBFRVBST00gZGVmaW5pdGlvbnMgZm9yIEF0bWVsIDI0TEM2NCBFRVBST00gY2hpcCAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTUKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCiAvKiBNZW1vcnkgSW5mbyAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDB4MTAwMDAgKyAyNTYqMTAyNCkJLyogbWFsbG9jKCkgbGVuICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDgwMDAwMDAwCS8qIG1lbXRlc3Qgc3RhcnQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4ODEwMDAwMDAJLyogMTZNQiBSQU0gdGVzdCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgweDEwMDAwICsgMjU2KjEwMjQpCS8qIG1hbGxvYygpIGxlbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDgwMDAwMDAwCS8qIG1lbXRlc3Qgc3RhcnQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDgxMDAwMDAwCS8qIDE2TUIgUkFNIHRlc3QgKi8KICNkZWZpbmUgQ09ORklHX05SX0RSQU1fQkFOS1MJMQkJLyogd2UgaGF2ZSAxIGJhbmsgb2YgRFJBTSAqLwogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgyNTYqMTAyNCkJLyogcmVndWxhciBzdGFjayAqLwogI2RlZmluZSBQSFlTX1NEUkFNXzEJCTB4ODAwMDAwMDAJLyogRERSIFN0YXJ0ICovCiAjZGVmaW5lIFBIWVNfU0RSQU1fMV9TSVpFCTB4MDgwMDAwMDAJLyogRERSIHNpemUgMTI4TUIgKi8KICNkZWZpbmUgRERSXzRCQU5LUwkJCQkvKiA0LWJhbmsgRERSMiAoMTI4TUIpICovCiAvKiBTZXJpYWwgRHJpdmVyIGluZm8gKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTQJCS8qIE5TMTY1NTAgcmVnaXN0ZXIgc2l6ZSAqLwotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCTB4MDFjMjAwMDAJLyogQmFzZSBhZGRyZXNzIG9mIFVBUlQwICovCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJMjcwMDAwMDAJLyogSW5wdXQgY2xvY2sgdG8gTlMxNjU1MCAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJNAkJLyogTlMxNjU1MCByZWdpc3RlciBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCTB4MDFjMjAwMDAJLyogQmFzZSBhZGRyZXNzIG9mIFVBUlQwICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCTI3MDAwMDAwCS8qIElucHV0IGNsb2NrIHRvIE5TMTY1NTAgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQkJLyogdXNlIFVBUlQwIGZvciBjb25zb2xlICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCQkvKiBEZWZhdWx0IGJhdWQgcmF0ZSAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIC8qIEkyQyBDb25maWd1cmF0aW9uICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwogI2RlZmluZSBDT05GSUdfRFJJVkVSX0RBVklOQ0lfSTJDCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTgwMDAwCS8qIDEwMEticHMgd29uJ3Qgd29yaywgc2lsaWNvbiBidWcgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMTAJLyogQm9ndXMsIG1hc3Rlci1vbmx5IGluIFUtQm9vdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAJLyogMTAwS2JwcyB3b24ndCB3b3JrLCBzaWxpY29uIGJ1ZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMTAJLyogQm9ndXMsIG1hc3Rlci1vbmx5IGluIFUtQm9vdCAqLwogLyogTmV0d29yayAmIEV0aGVybmV0IENvbmZpZ3VyYXRpb24gKi8KICNkZWZpbmUgQ09ORklHX0RSSVZFUl9USV9FTUFDCiAjZGVmaW5lIENPTkZJR19NSUkKQEAgLTc2LDQxICs3Niw0MSBAQAogI2RlZmluZSBDT05GSUdfT1ZFUldSSVRFX0VUSEFERFJfT05DRQogLyogRmxhc2ggJiBFbnZpcm9ubWVudCAqLwogI3VuZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKLSNkZWZpbmUgQ0ZHX05PX0ZMQVNICisjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OQU5ECQkvKiBVLUJvb3QgZW52IGluIE5BTkQgRmxhc2ggICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTIwNDgJLyogRW52IHNlY3RvciBTaXplICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJU1pfMTI4SwogI2RlZmluZSBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUCS8qIFUtQm9vdCBpcyBsb2FkZWQgYnkgYSBib290bG9hZGVyICovCiAjZGVmaW5lIENPTkZJR19TS0lQX1JFTE9DQVRFX1VCT09UCS8qIHRvIGEgcHJvcGVyIGFkZHJlc3MsIGluaXQgZG9uZSAqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkweDAyMDAwMDAwCi0jZGVmaW5lIENGR19OQU5EX0hXX0VDQwotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0hXX0VDQworI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDAJLyogQmxvY2sgMC0tbm90IHVzZWQgYnkgYm9vdGNvZGUgKi8KIC8qIEkyQyBzd2l0Y2ggZGVmaW5pdGlvbnMgZm9yIFBDQTk1NDMgY2hpcCAqLwotI2RlZmluZSBDRkdfSTJDX1BDQTk1NDNfQUREUgkJMHg3MAotI2RlZmluZSBDRkdfSTJDX1BDQTk1NDNfQUREUl9MRU4JMAkvKiBTaW5nbGUgcmVnaXN0ZXIuICovCi0jZGVmaW5lIENGR19JMkNfUENBOTU0M19FTkFCTEVfQ0gwCTB4MDEJLyogRW5hYmxlIGNoYW5uZWwgMC4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUENBOTU0M19BRERSCQkweDcwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1BDQTk1NDNfQUREUl9MRU4JMAkvKiBTaW5nbGUgcmVnaXN0ZXIuICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1BDQTk1NDNfRU5BQkxFX0NIMAkweDAxCS8qIEVuYWJsZSBjaGFubmVsIDAuICovCiAvKiBVLUJvb3QgZ2VuZXJhbCBjb25maWd1cmF0aW9uICovCiAjdW5kZWYgQ09ORklHX1VTRV9JUlEJCQkJLyogTm8gSVJRL0ZJUSBpbiBVLUJvb3QgKi8KICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJNQkJLyogQXV0b2Jvb3QgYWZ0ZXIgNSBzZWNvbmRzLiAqLwogI2RlZmluZSBDT05GSUdfQk9PVEZJTEUJCSJ1SW1hZ2UiCS8qIEJvb3QgZmlsZSBuYW1lICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJVLUJvb3QgPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCi0jZGVmaW5lIENGR19QQlNJWkUJCQkJCQkJXAotCQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQkvKiBQcmludCBidWZmZXIgc2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4ODA3MDAwMDAJLyogRGVmYXVsdCBMaW51eCBrZXJuZWwKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJVLUJvb3QgPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJCQkJCQlcCisJCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikJLyogUHJpbnQgYnVmZmVyIHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHg4MDcwMDAwMAkvKiBEZWZhdWx0IExpbnV4IGtlcm5lbAogCQkJCQkJICogbG9hZCBhZGRyZXNzLiAqLwogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRQogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURQkJLyogV29uJ3Qgd29yayB3aXRoIGh1c2ggc28gZmFyLAogCQkJCQkgKiBtYXkgYmUgbGF0ZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwotI2RlZmluZSBDRkdfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAogI2RlZmluZSBDT05GSUdfQ1JDMzJfVkVSSUZZCiAjZGVmaW5lIENPTkZJR19NWF9DWUNMSUMKIC8qIExpbnV4IEluZm9ybWF0aW9uICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZGF2aW5jaV9zb25hdGEuaCBiL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NvbmF0YS5oCmluZGV4IGJiNDJhNTQuLjM4MWVlYjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NvbmF0YS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NvbmF0YS5oCkBAIC01MCwzMSArNTAsMzEgQEAKIC8qIEJvYXJkICovCiAvKj09PT09PT0qLwogI2RlZmluZSBTT05BVEFfQk9BUkQKLSNkZWZpbmUgQ0ZHX05BTkRfU01BTExQQUdFCi0jZGVmaW5lIENGR19VU0VfTk9SCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9TTUFMTFBBR0UKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfTk9SCiAvKj09PT09PT09PT09PT09PT09PT0qLwogLyogU29DIENvbmZpZ3VyYXRpb24gKi8KIC8qPT09PT09PT09PT09PT09PT09PSovCiAjZGVmaW5lIENPTkZJR19BUk05MjZFSlMJCQkvKiBhcm05MjZlanMgQ1BVIGNvcmUgKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkyOTcwMDAwMDAJLyogQXJtIENsb2NrIGZyZXF1ZW5jeSAqLwotI2RlZmluZSBDRkdfVElNRVJCQVNFCQkweDAxYzIxNDAwCS8qIHVzZSB0aW1lciAwICovCi0jZGVmaW5lIENGR19IWl9DTE9DSwkJMjcwMDAwMDAJLyogVGltZXIgSW5wdXQgY2xvY2sgZnJlcSAqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJCQVNFCQkweDAxYzIxNDAwCS8qIHVzZSB0aW1lciAwICovCisjZGVmaW5lIENPTkZJR19TWVNfSFpfQ0xPQ0sJCTI3MDAwMDAwCS8qIFRpbWVyIElucHV0IGNsb2NrIGZyZXEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAvKiBFRVBST00gZGVmaW5pdGlvbnMgZm9yIEF0bWVsIDI0QzI1NkJOIFNFRVBST00gY2hpcCAqLwogLyogb24gU29uYXRhL0RWX0VWTSBib2FyZC4gTm8gRUVQUk9NIG9uIHNjaG1vb2dpZS4gICAgKi8KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNgotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk2CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKIC8qPT09PT09PT09PT09PSovCiAvKiBNZW1vcnkgSW5mbyAqLwogLyo9PT09PT09PT09PT09Ki8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgweDEwMDAwICsgMTI4KjEwMjQpCS8qIG1hbGxvYygpIGxlbiAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg4MDAwMDAwMAkvKiBtZW10ZXN0IHN0YXJ0IGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDgxMDAwMDAwCS8qIDE2TUIgUkFNIHRlc3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMHgxMDAwMCArIDEyOCoxMDI0KQkvKiBtYWxsb2MoKSBsZW4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHg4MDAwMDAwMAkvKiBtZW10ZXN0IHN0YXJ0IGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHg4MTAwMDAwMAkvKiAxNk1CIFJBTSB0ZXN0ICovCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCTEJCS8qIHdlIGhhdmUgMSBiYW5rIG9mIERSQU0gKi8KICNkZWZpbmUgQ09ORklHX1NUQUNLU0laRQkoMjU2KjEwMjQpCS8qIHJlZ3VsYXIgc3RhY2sgKi8KICNkZWZpbmUgUEhZU19TRFJBTV8xCQkweDgwMDAwMDAwCS8qIEREUiBTdGFydCAqLwpAQCAtODMsMjEgKzgzLDIxIEBACiAvKj09PT09PT09PT09PT09PT09PT09Ki8KIC8qIFNlcmlhbCBEcml2ZXIgaW5mbyAqLwogLyo9PT09PT09PT09PT09PT09PT09PSovCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQk0CQkvKiBOUzE2NTUwIHJlZ2lzdGVyIHNpemUgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkweDAxYzIwMDAwCS8qIEJhc2UgYWRkcmVzcyBvZiBVQVJUMCAqLwotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTI3MDAwMDAwCS8qIElucHV0IGNsb2NrIHRvIE5TMTY1NTAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTQJCS8qIE5TMTY1NTAgcmVnaXN0ZXIgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkweDAxYzIwMDAwCS8qIEJhc2UgYWRkcmVzcyBvZiBVQVJUMCAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkyNzAwMDAwMAkvKiBJbnB1dCBjbG9jayB0byBOUzE2NTUwICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEJCS8qIHVzZSBVQVJUMCBmb3IgY29uc29sZSAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAkJLyogRGVmYXVsdCBiYXVkIHJhdGUgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAvKj09PT09PT09PT09PT09PT09PT0qLwogLyogSTJDIENvbmZpZ3VyYXRpb24gKi8KIC8qPT09PT09PT09PT09PT09PT09PSovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwogI2RlZmluZSBDT05GSUdfRFJJVkVSX0RBVklOQ0lfSTJDCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTgwMDAwCS8qIDEwMEticHMgd29uJ3Qgd29yaywgc2lsaWNvbiBidWcgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMTAJLyogQm9ndXMsIG1hc3Rlci1vbmx5IGluIFUtQm9vdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAJLyogMTAwS2JwcyB3b24ndCB3b3JrLCBzaWxpY29uIGJ1ZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMTAJLyogQm9ndXMsIG1hc3Rlci1vbmx5IGluIFUtQm9vdCAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIE5ldHdvcmsgJiBFdGhlcm5ldCBDb25maWd1cmF0aW9uICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwpAQCAtMTExLDIxICsxMTEsMjEgQEAKIC8qPT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIEZsYXNoICYgRW52aXJvbm1lbnQgKi8KIC8qPT09PT09PT09PT09PT09PT09PT09Ki8KLSNpZmRlZiBDRkdfVVNFX05BTkQKKyNpZmRlZiBDT05GSUdfU1lTX1VTRV9OQU5ECiAjdW5kZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAotI2RlZmluZSBDRkdfTk9fRkxBU0gKKyNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05BTkQJCS8qIFUtQm9vdCBlbnYgaW4gTkFORCBGbGFzaCAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJNTEyCS8qIEVudiBzZWN0b3IgU2l6ZSAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCVNaXzE2SwogI2RlZmluZSBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUCS8qIFUtQm9vdCBpcyBsb2FkZWQgYnkgYSBib290bG9hZGVyICovCiAjZGVmaW5lIENPTkZJR19TS0lQX1JFTE9DQVRFX1VCT09UCS8qIHRvIGEgcHJvcGVyIGFkZHJlc3MsIGluaXQgZG9uZSAqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkweDAyMDAwMDAwCi0jZGVmaW5lIENGR19OQU5EX0hXX0VDQwotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0hXX0VDQworI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDAJLyogQmxvY2sgMC0tbm90IHVzZWQgYnkgYm9vdGNvZGUgKi8KICNkZWZpbmUgREVGX0JPT1RNCQkiIgotI2VsaWYgZGVmaW5lZChDRkdfVVNFX05PUikKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19VU0VfTk9SKQogI2lmZGVmIENPTkZJR19OT1JfVUFSVF9CT09UCiAjZGVmaW5lIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQJLyogVS1Cb290IGlzIGxvYWRlZCBieSBhIGJvb3Rsb2FkZXIgKi8KICNkZWZpbmUgQ09ORklHX1NLSVBfUkVMT0NBVEVfVUJPT1QJLyogdG8gYSBwcm9wZXIgYWRkcmVzcywgaW5pdCBkb25lICovCkBAIC0xMzQsMTcgKzEzNCwxNyBAQAogI3VuZGVmIENPTkZJR19TS0lQX1JFTE9DQVRFX1VCT09UCiAjZW5kaWYKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAotI3VuZGVmIENGR19OT19GTEFTSAorI3VuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NFQ1RfU1oJMHgyMDAwMAkJLyogMTI4S0Igc2VjdCBzaXplIEFNRCBGbGFzaCAqLwotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENGR19GTEFTSF9TRUNUX1NaKjIpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TRUNUX1NaCTB4MjAwMDAJCS8qIDEyOEtCIHNlY3Qgc2l6ZSBBTUQgRmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfU1lTX0ZMQVNIX1NFQ1RfU1oqMikKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweDAyMDAwMDAwCS8qIENTMiBCYXNlIGFkZHJlc3MJICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEJLyogRmxhc2ggQmFzZSBmb3IgVS1Cb290ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCS8qIEZsYXNoIEJhc2UgZm9yIFUtQm9vdCAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCTB4MjAwMDAwMAkvKiBGbGFzaCBzaXplIDMyTUIJICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoUEhZU19GTEFTSF9TSVpFL0NGR19GTEFTSF9TRUNUX1NaKQotI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQlDRkdfRkxBU0hfU0VDVF9TWgkvKiBFbnYgc2VjdG9yIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoUEhZU19GTEFTSF9TSVpFL0NPTkZJR19TWVNfRkxBU0hfU0VDVF9TWikKKyNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJQ09ORklHX1NZU19GTEFTSF9TRUNUX1NaCS8qIEVudiBzZWN0b3IgU2l6ZSAqLwogI2VuZGlmCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAvKiBVLUJvb3QgZ2VuZXJhbCBjb25maWd1cmF0aW9uICovCkBAIC0xNTMsMTggKzE1MywxOCBAQAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKICN1bmRlZiBDT05GSUdfQk9PVERFTEFZCiAjZGVmaW5lIENPTkZJR19CT09URklMRQkJInVJbWFnZSIJLyogQm9vdCBmaWxlIG5hbWUgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIlUtQm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBidWZmZXIgc3ogKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDgwNzAwMDAwCS8qIGRlZmF1bHQgTGludXgga2VybmVsIGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIlUtQm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgYnVmZmVyIHN6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4ODA3MDAwMDAJLyogZGVmYXVsdCBMaW51eCBrZXJuZWwgbG9hZCBhZGRyZXNzICovCiAjZGVmaW5lIENPTkZJR19WRVJTSU9OX1ZBUklBQkxFCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCQkvKiBXb24ndCB3b3JrIHdpdGggaHVzaCBzbyBmYXIsIG1heSBiZSBsYXRlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCi0jZGVmaW5lIENGR19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAjZGVmaW5lIENPTkZJR19DUkMzMl9WRVJJRlkKICNkZWZpbmUgQ09ORklHX01YX0NZQ0xJQwogLyo9PT09PT09PT09PT09PT09PT09Ki8KQEAgLTE5MCwxNCArMTkwLDE0IEBACiAjdW5kZWYgQ09ORklHX0NNRF9CREkKICN1bmRlZiBDT05GSUdfQ01EX0ZQR0EKICN1bmRlZiBDT05GSUdfQ01EX1NFVEdFVERDUgotI2lmZGVmIENGR19VU0VfTkFORAorI2lmZGVmIENPTkZJR19TWVNfVVNFX05BTkQKICN1bmRlZiBDT05GSUdfQ01EX0ZMQVNICiAjdW5kZWYgQ09ORklHX0NNRF9JTUxTCiAjZGVmaW5lIENPTkZJR19DTURfTkFORAotI2VsaWYgZGVmaW5lZChDRkdfVVNFX05PUikKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19VU0VfTk9SKQogI2RlZmluZSBDT05GSUdfQ01EX0pGRlMyCiAjZWxzZQotI2Vycm9yICJFaXRoZXIgQ0ZHX1VTRV9OQU5EIG9yIENGR19VU0VfTk9SIF9NVVNUXyBiZSBkZWZpbmVkICEhISIKKyNlcnJvciAiRWl0aGVyIENPTkZJR19TWVNfVVNFX05BTkQgb3IgQ09ORklHX1NZU19VU0VfTk9SIF9NVVNUXyBiZSBkZWZpbmVkICEhISIKICNlbmRpZgogLyo9PT09PT09PT09PT09PT09PT09PT09PSovCiAvKiBLR0RCIHN1cHBvcnQgKGlmIGFueSkgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9kYmF1MXgwMC5oIGIvaW5jbHVkZS9jb25maWdzL2RiYXUxeDAwLmgKaW5kZXggZDdlNDhkMC4uYTU3ODAzOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2RiYXUxeDAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2RiYXUxeDAwLmgKQEAgLTU5LDcgKzU5LDcgQEAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lCUNPTkZJR19USU1FU1RBTVAJCS8qIFByaW50IGltYWdlIGluZm8gd2l0aCB0aW1lc3RhbXAgKi8KICN1bmRlZglDT05GSUdfQk9PVEFSR1MKQEAgLTEzMCw3MyArMTMwLDczIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAqLwogCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJEYkF1MXh4MCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIkRiQXUxeHgwICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICovCiAKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpICAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCTEyOCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJMTI4KjEwMjQKIAotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JMTI4KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgkxMjgqMTAyNAogCi0jZGVmaW5lIENGR19NSFoJCQkzOTYKKyNkZWZpbmUgQ09ORklHX1NZU19NSFoJCQkzOTYKIAotI2lmIChDRkdfTUhaICUgMTIpICE9IDAKKyNpZiAoQ09ORklHX1NZU19NSFogJSAxMikgIT0gMAogI2Vycm9yICJJbnZhbGlkIENQVSBmcmVxdWVuY3kgLSBtdXN0IGJlIG11bHRpcGxlIG9mIDEyISIKICNlbmRpZgogCi0jZGVmaW5lIENGR19NSVBTX1RJTUVSX0ZSRVEJKENGR19NSFogKiAxMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01JUFNfVElNRVJfRlJFUQkoQ09ORklHX1NZU19NSFogKiAxMDAwMDAwKQogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHg4MDAwMDAwMCAgICAgLyogQ2FjaGVkIGFkZHIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDgwMDAwMDAwICAgICAvKiBDYWNoZWQgYWRkciAqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4ODEwMDAwMDAgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDgxMDAwMDAwICAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4ODAxMDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDgwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDgwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4ODA4MDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCiAjaWZkZWYgQ09ORklHX0RCQVUxNTUwCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoNTEyKQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSg1MTIpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHhiODAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfMgkJMHhiYzAwMDAwMCAvKiBGbGFzaCBCYW5rICMyICovCiAKICNlbHNlIC8qIENPTkZJR19EQkFVMTU1MCAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDEyOCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMTI4KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCTB4YmVjMDAwMDAgLyogRmxhc2ggQmFuayAjMSAqLwogI2RlZmluZSBQSFlTX0ZMQVNIXzIJCTB4YmZjMDAwMDAgLyogRmxhc2ggQmFuayAjMiAqLwogCiAjZW5kaWYgLyogQ09ORklHX0RCQVUxNTUwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1Qge1BIWVNfRkxBU0hfMSwgUEhZU19GTEFTSF8yfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1Qge1BIWVNfRkxBU0hfMSwgUEhZU19GTEFTSF8yfQogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkgICAgICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkgICAgICAgICAgIDEKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIgICAgMQogCiAvKiBUaGUgZm9sbG93aW5nICNkZWZpbmVzIGFyZSBuZWVkZWQgdG8gZ2V0IGZsYXNoIGVudmlyb25tZW50IHJpZ2h0ICovCi0jZGVmaW5lCUNGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCTB4NDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJMHg0MDAwMDAKIAogLyogV2UgYm9vdCBmcm9tIHRoaXMgZmxhc2gsIHNlbGVjdGVkIHdpdGggZGlwIHN3aXRjaCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8yCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8yCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMiAqIENGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIgKiBDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMiAqIENPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMiAqIENPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19OT1dIRVJFCTEKIApAQCAtMjIwLDggKzIyMCw4IEBACiAKICNpZm5kZWYgQ09ORklHX0RCQVUxNTUwCiAvKi0tLUFUQSBQQ01DSUEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRSAweDQwMDAwMDAgLyogT2Zmc2V0IHRvIHNsb3QgMSBGSVhNRSEhISAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSIDB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgMHg0MDAwMDAwIC8qIE9mZnNldCB0byBzbG90IDEgRklYTUUhISEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIgMHgyMDAwMDAwMAogI2RlZmluZSBDT05GSUdfUENNQ0lBX1NMT1RfQQogCiAjZGVmaW5lIENPTkZJR19BVEFQSSAxCkBAIC0yMzEsMzEgKzIzMSwzMSBAQAogI2RlZmluZSBDT05GSUdfSURFX1BDTUNJQSAxCiAKIC8qIFdlIG9ubHkgc3VwcG9ydCBvbmUgc2xvdCBmb3Igbm93ICovCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUiAgICAgICBDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUiAgICAgICBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVCAgICAgOAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCAgICAgOAogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUICAgICAgMAogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUICAgICAgMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQgICAgICAweDAxMDAKICNlbmRpZiAvKiBDT05GSUdfREJBVTE1NTAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19EQ0FDSEVfU0laRQkJMTYzODQKLSNkZWZpbmUgQ0ZHX0lDQUNIRV9TSVpFCQkxNjM4NAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19EQ0FDSEVfU0laRQkJMTYzODQKKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfU0laRQkJMTYzODQKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2RlYnJpcy5oIGIvaW5jbHVkZS9jb25maWdzL2RlYnJpcy5oCmluZGV4IDNlYTRmYTYuLjRkNjVmNmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9kZWJyaXMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZGVicmlzLmgKQEAgLTc2LDcgKzc2LDcgQEAKICNkZWZpbmUgQ09ORklHX1NFUlZFUklQCTE5Mi4xNjguMC4xCiAKIC8qIGF1dG9sb2FkICovCi0jdW5kZWYgQ0ZHX0FVVE9MT0FECisjdW5kZWYgQ09ORklHX1NZU19BVVRPTE9BRAogCiAvKiByb290cGF0aCAqLwogI2RlZmluZSBDT05GSUdfUk9PVFBBVEggL3RmdHBib290L3RhcmdldApAQCAtMTU2LDE0ICsxNTYsMTQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkxCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCTEJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTc0LDcgKzE3NCw3IEBACiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkJLyogTXVsdGkgZXRoZXJuZXQgY2FyZHMgc3VwcG9ydCAqLwogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAkvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CS8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwX1NST01fV1JJVEUKIAogI2RlZmluZSBQQ0lfRU5FVDBfSU9BRERSCTB4ODAwMDAwMDAKQEAgLTE4NCw0OSArMTg0LDQ5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFCTB4MjAwMDAwMDAKICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTQogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKIAogI2lmIGRlZmluZWQgKFVTRV9ESU5LMzIpCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgwMDA0MDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4MDAwOTAwMDAKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MDAwNDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgwMDA5MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NiAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogI2Vsc2UKLSN1bmRlZglDRkdfUkFNQk9PVAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MDAwNDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyN1bmRlZglDT05GSUdfU1lTX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgwMDA0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKIAotLyojZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgIDI1NiovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAorLyojZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAyNTYqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAgIDB4MTAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgICAweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4N0MwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCSgxNioxMDI0KjEwMjQpCS8qIGRlYnJpcyBoYXMgdGlueSBlZXByb20JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDdDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJKDE2KjEwMjQqMTAyNCkJLyogZGVicmlzIGhhcyB0aW55IGVlcHJvbQkqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwNDAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA0MDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCiAKLSNkZWZpbmUgQ0ZHX0VVTUJfQUREUgkJMHhGQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VVTUJfQUREUgkJMHhGQzAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9SQU5HRV9CQVNFCTB4RkYwMDAwMDAJLyogZmxhc2ggbWVtb3J5IGFkZHJlc3MgcmFuZ2UJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JBTkdFX1NJWkUJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JBTkdFX0JBU0UJMHhGRjAwMDAwMAkvKiBmbGFzaCBtZW1vcnkgYWRkcmVzcyByYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JBTkdFX1NJWkUJMHgwMTAwMDAwMAogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHg3QzAwMDAwMAkvKiBkZWJyaXMgZmxhc2gJCSovCiAKIC8qCkBAIC0yNTMsMTggKzI1MywxOCBAQAogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0gICAgICAxCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFICAgICAxCi0jZGVmaW5lIENGR19OVlJBTV9BQ0NFU1NfUk9VVElORSAxCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQUNDRVNTX1JPVVRJTkUgMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4RkYwMDAwMDAgLyogcmlnaHQgYXQgdGhlIHN0YXJ0IG9mIE5WUkFNICAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwCS8qIFNpemUgb2YgdGhlIEVudmlyb25tZW50IC0gOEsJICAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTAJLyogc3RhcnRpbmcgcmlnaHQgYXQgdGhlIGJlZ2lubmluZyAqLwogCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweGZmMDAwMDAwCiAKIC8qCi0gKiBDRkdfTlZSQU1fQkFTRV9BRERSICsgQ0ZHX05WUkFNX1ZYV09SS1NfT0ZGUyA9CisgKiBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiArIENPTkZJR19TWVNfTlZSQU1fVlhXT1JLU19PRkZTID0KICAqIE5WX1JBTV9BRERSUyArIE5WX0JPT1RfT0ZGU0VUICsgTlZfRU5FVF9PRkZTRVQKICAqLwotI2RlZmluZSBDRkdfTlZSQU1fVlhXT1JLU19PRkZTCTB4NjkwMAorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1ZYV09SS1NfT0ZGUwkweDY5MDAKIAogLyoKICAqIHNlbGVjdCBpMmMgc3VwcG9ydCBjb25maWd1cmF0aW9uCkBAIC0yNzUsOCArMjc1LDggQEAKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJCS8qIFRvIGVuYWJsZSBJMkMgc3VwcG9ydAkqLwogI3VuZGVmICBDT05GSUdfU09GVF9JMkMJCQkJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKICNpZmRlZiBDT05GSUdfU09GVF9JMkMKICNlcnJvciAiU29mdCBJMkMgaXMgbm90IGNvbmZpZ3VyZWQgcHJvcGVybHkuICBQbGVhc2UgcmV2aWV3ISIKQEAgLTI5MSwxMyArMjkxLDEzIEBACiAjZGVmaW5lIEkyQ19ERUxBWQkJdWRlbGF5KDUpCS8qIDEvNCBJMkMgY2xvY2sgZHVyYXRpb24gKi8KICNlbmRpZiAvKiBDT05GSUdfU09GVF9JMkMgKi8KIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTcJCS8qIEVFUFJPTSBJUzI0QzAyCQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDU3CQkvKiBFRVBST00gSVMyNEMwMgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTEJCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1MJCXsgRkxBU0hfQkFTRTBfUFJFTElNIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1MJCXsgRkxBU0hfQkFTRTBfUFJFTElNIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKQEAgLTMwNiwxNyArMzA2LDE3IEBACiAvKgogICogTlMxNjU1MCBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJNzM3MjgwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQk3MzcyODAwCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkweEZGMDgwMDAwCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19OUzE2NTUwX0NPTTEgKyA4KQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00zCShDRkdfTlMxNjU1MF9DT00xICsgMTYpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTQJKENGR19OUzE2NTUwX0NPTTEgKyAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJMHhGRjA4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19OUzE2NTUwX0NPTTEgKyA4KQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMwkoQ09ORklHX1NZU19OUzE2NTUwX0NPTTEgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTQJKENPTkZJR19TWVNfTlMxNjU1MF9DT00xICsgMjQpCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMzI3LDMyICszMjcsMzIgQEAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUSAgMzMzMzMzMzMJLyogZXh0ZXJuYWwgZnJlcXVlbmN5IHRvIHBsbCAqLwogI2RlZmluZSBDT05GSUdfUExMX1BDSV9UT19NRU1fTVVMVElQTElFUiAzCiAKLSNkZWZpbmUgQ0ZHX0RMTF9FWFRFTkQJCTB4MDAKLSNkZWZpbmUgQ0ZHX1BDSV9IT0xEX0RFTAkweDIwCisjZGVmaW5lIENPTkZJR19TWVNfRExMX0VYVEVORAkJMHgwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9IT0xEX0RFTAkweDIwCiAKLSNkZWZpbmUgQ0ZHX1JPTU5BTAkxNQkvKiByb20vZmxhc2ggbmV4dCBhY2Nlc3MgdGltZSAqLwotI2RlZmluZSBDRkdfUk9NRkFMCTMxCS8qIHJvbS9mbGFzaCBhY2Nlc3MgdGltZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTAkxNQkvKiByb20vZmxhc2ggbmV4dCBhY2Nlc3MgdGltZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTUZBTAkzMQkvKiByb20vZmxhc2ggYWNjZXNzIHRpbWUgKi8KIAotI2RlZmluZSBDRkdfUkVGSU5UCTQzMAkvKiAjIG9mIGNsb2NrcyBiZXR3ZWVuIENCUiByZWZyZXNoIGN5Y2xlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVAk0MzAJLyogIyBvZiBjbG9ja3MgYmV0d2VlbiBDQlIgcmVmcmVzaCBjeWNsZXMgKi8KIAotI2RlZmluZSBDRkdfREJVU19TSVpFMgkxCS8qIHNldCBmb3IgOC1iaXQgUkNTMSwgY2xlYXIgZm9yIDMyLDY0ICovCisjZGVmaW5lIENPTkZJR19TWVNfREJVU19TSVpFMgkxCS8qIHNldCBmb3IgOC1iaXQgUkNTMSwgY2xlYXIgZm9yIDMyLDY0ICovCiAKIC8qIHRoZSBmb2xsb3dpbmcgYXJlIGZvciBTRFJBTSBvbmx5Ki8KLSNkZWZpbmUgQ0ZHX0JTVE9QUkUJMTIxCS8qIEJ1cnN0IFRvIFByZWNoYXJnZSwgc2V0cyBvcGVuIHBhZ2UgaW50ZXJ2YWwgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQwk4CS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCi0jZGVmaW5lIENGR19SRExBVAk0CS8qIGRhdGEgbGF0ZW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLwotI2RlZmluZSBDRkdfUFJFVE9BQ1QJMwkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCTUJLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCi0jZGVmaW5lIENGR19BQ1RPUlcJCTMJLyogQWN0aXZhdGUgdG8gUi9XCQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUCTMJLyogU0RNT0RFIENBUyBsYXRlbmN5CQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9XUkFQCQkwCS8qIFNETU9ERSB3cmFwIHR5cGUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JTVE9QUkUJMTIxCS8qIEJ1cnN0IFRvIFByZWNoYXJnZSwgc2V0cyBvcGVuIHBhZ2UgaW50ZXJ2YWwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUZSRUMJOAkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JETEFUCTQJLyogZGF0YSBsYXRlbmN5IGZyb20gcmVhZCBjb21tYW5kCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJMwkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQk1CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVE9SVwkJMwkvKiBBY3RpdmF0ZSB0byBSL1cJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUCTMJLyogU0RNT0RFIENBUyBsYXRlbmN5CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KICNpZiAwCi0jZGVmaW5lIENGR19TRE1PREVfQlVSU1RMRU4JMgkvKiBPQlNPTEVURSEgIFNETU9ERSBCdXJzdCBsZW5ndGggMj00LCAzPTgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0JVUlNUTEVOCTIJLyogT0JTT0xFVEUhICBTRE1PREUgQnVyc3QgbGVuZ3RoIDI9NCwgMz04CQkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAgIDEKLSNkZWZpbmUgQ0ZHX0VYVFJPTSAxCi0jZGVmaW5lIENGR19SRUdESU1NIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgICAxCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUk9NIDEKKyNkZWZpbmUgQ09ORklHX1NZU19SRUdESU1NIDAKIAogCiAvKiBtZW1vcnkgYmFuayBzZXR0aW5ncyovCkBAIC0zNjIsOTMgKzM2Miw5MyBAQAogICogYml0cyB3aWxsIGJlIHNldCB0byAweDAwMDAwIGZvciBhIHN0YXJ0IGFkZHJlc3MsIG9yIDB4ZmZmZmYgZm9yIGFuCiAgKiBlbmQgYWRkcmVzcwogICovCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5ECQkoMHg0MDAwMDAwIC0gMSkKLSNkZWZpbmUgQ0ZHX0JBTkswX0VOQUJMRQkxCi0jZGVmaW5lIENGR19CQU5LMV9TVEFSVAkJMHgwNDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzFfRU5ECQkoMHg4MDAwMDAwIC0gMSkKLSNkZWZpbmUgQ0ZHX0JBTksxX0VOQUJMRQkxCi0jZGVmaW5lIENGR19CQU5LMl9TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzJfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMl9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzNfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkszX0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzNfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks0X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNV9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzZfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks3X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkQJCSgweDQwMDAwMDAgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VOQUJMRQkxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfU1RBUlQJCTB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkQJCSgweDgwMDAwMDAgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VOQUJMRQkxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VOQUJMRQkwCiAvKgogICogTWVtb3J5IGJhbmsgZW5hYmxlIGJpdG1hc2ssIHNwZWNpZnlpbmcgd2hpY2ggb2YgdGhlIGJhbmtzIGRlZmluZWQgYWJvdmUKICBhcmUgYWN0dWFsbHkgcHJlc2VudC4gTVNCIGlzIGZvciBiYW5rICM3LCBMU0IgaXMgZm9yIGJhbmsgIzAuCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBTktfRU5BQkxFCQkweDAxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOS19FTkFCTEUJCTB4MDEKIAotI2RlZmluZSBDRkdfT0RDUgkJMHg3NQkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkJMHg3NQkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCiAJCQkJCS8qIHNlZSA4MjQwIGJvb2sgZm9yIGJpdCBkZWZpbml0aW9ucwkqLwotI2RlZmluZSBDRkdfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QR01BWAkJMHgzMgkvKiBob3cgbG9uZyB0aGUgODI0MCByZXRhaW5zIHRoZQkqLwogCQkJCQkvKiBjdXJyZW50bHkgYWNjZXNzZWQgcGFnZSBpbiBtZW1vcnkJKi8KIAkJCQkJLyogc2VlIDgyNDAgYm9vayBmb3IgZGV0YWlscwkJKi8KIAogLyogU0RSQU0gMCAtIDI1Nk1CICovCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVCShDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIHN0YWNrIGluIERDQUNIRSBAIDFHQiAobm8gYmFja2luZyBtZW0pICovCiAjaWYgZGVmaW5lZChVU0VfRElOSzMyKQotI2RlZmluZSBDRkdfSUJBVDFMCSgweDQwMDAwMDAwIHwgQkFUTF9QUF8wMCApCi0jZGVmaW5lIENGR19JQkFUMVUJKDB4NDAwMDAwMDAgfCBCQVRVX0JMXzEyOEsgKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoMHg0MDAwMDAwMCB8IEJBVExfUFBfMDAgKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoMHg0MDAwMDAwMCB8IEJBVFVfQkxfMTI4SyApCiAjZWxzZQotI2RlZmluZSBDRkdfSUJBVDFMCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogI2VuZGlmCiAKIC8qIFBDSSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVQkoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogRmxhc2gsIGNvbmZpZyBhZGRycywgZXRjICovCi0jZGVmaW5lIENGR19JQkFUM0wJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDFMCUNGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVQlDRkdfSUJBVDFVCi0jZGVmaW5lIENGR19EQkFUMkwJQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVCUNGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTAlDRkdfSUJBVDNMCi0jZGVmaW5lIENGR19EQkFUM1UJQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAlDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQlDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAlDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjQwIENQVQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNDAgQ1BVCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZGVsdGEuaCBiL2luY2x1ZGUvY29uZmlncy9kZWx0YS5oCmluZGV4IDRiNzVlMTUuLjA4YjI4Y2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9kZWx0YS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9kZWx0YS5oCkBAIC00Myw4ICs0Myw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JICAgIChDT05GSUdfRU5WX1NJWkUgKyAyNTYqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgIChDT05GSUdfRU5WX1NJWkUgKyAyNTYqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTU5LDExICs1OSwxMSBAQAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIHJlcXVpcmVkIGZvciBEQTkwMzAgYWNjZXNzICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMQkvKiBJMkMgY29udHJvbGxlcnMgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMQkvKiBJMkMgY29udHJvbGxlcnMgYWRkcmVzcyAqLwogI2RlZmluZSBEQTkwMzBfSTJDX0FERFIJCTB4NDkJLyogSTJDIGFkZHJlc3Mgb2YgREE5MDMwICovCi0jZGVmaW5lIENGR19EQTkwMzBfRVhUT05fREVMQVkJMTAwMDAwCS8qIHdhaXQgeCB1cyBhZnRlciBEQTkwMzAgcmVzZXQgdmlhIEVYVE9OICovCi0jZGVmaW5lIENGR19JMkNfSU5JVF9CT0FSRAkxCisjZGVmaW5lIENPTkZJR19TWVNfREE5MDMwX0VYVE9OX0RFTEFZCTEwMDAwMAkvKiB3YWl0IHggdXMgYWZ0ZXIgREE5MDMwIHJlc2V0IHZpYSBFWFRPTiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19JTklUX0JPQVJECTEKIC8qICNkZWZpbmUgQ09ORklHX0hXX1dBVENIRE9HCTEJL1wqIFJlcXVpcmVkIGZvciBoaXR0aW5nIHRoZSBEQTkwMzAgV0QgKlwvICovCiAKICNkZWZpbmUgREVMVEFfQ0hFQ0tfS0VZQkQJMQkvKiBjaGVjayBmb3Iga2V5cyBwcmVzc2VkIGR1cmluZyBib290ICovCkBAIC0xMjUsMTEgKzEyNSwxMSBAQAogCiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4gLyogZm9yIE9IQ0lfUkVHU19CQVNFICovCiAKLSN1bmRlZiBDRkdfVVNCX09IQ0lfQk9BUkRfSU5JVAotI2RlZmluZSBDRkdfVVNCX09IQ0lfQ1BVX0lOSVQJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfUkVHU19CQVNFCU9IQ0lfUkVHU19CQVNFCi0jZGVmaW5lIENGR19VU0JfT0hDSV9TTE9UX05BTUUJImRlbHRhIgotI2RlZmluZSBDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMworI3VuZGVmIENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9SRUdTX0JBU0UJT0hDSV9SRUdTX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJImRlbHRhIgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTMKIAogI2RlZmluZSBMSVRUTEVFTkRJQU4gICAgICAgICAgICAxICAgICAgIC8qIHVzZWQgYnkgdXNiX29oY2kuYyAgKi8KIApAQCAtMTUxLDM5ICsxNTEsMzkgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFQJCSIkICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiJCAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZWxzZQotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4ODA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4ODA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHg4MDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkoQ0ZHX0RSQU1fQkFTRSArIDB4ODAwMCkgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJKENPTkZJR19TWVNfRFJBTV9CQVNFICsgMHg4MDAwKSAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTMyNTAwMDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuMjUgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkzMjUwMDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjI1IE1IeiAqLwogCiAvKiBNb25haGFucyBDb3JlIEZyZXF1ZW5jeSAqLwotI2RlZmluZSBDRkdfTU9OQUhBTlNfUlVOX01PREVfT1NDX1JBVElPCQkxNiAvKiB2YWxpZCB2YWx1ZXM6IDgsIDE2LCAyNCwgMzEgKi8KLSNkZWZpbmUgQ0ZHX01PTkFIQU5TX1RVUkJPX1JVTl9NT0RFX1JBVElPCTEgIC8qIHZhbGlkIHZhbHVlczogMSwgMiAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTkFIQU5TX1JVTl9NT0RFX09TQ19SQVRJTwkJMTYgLyogdmFsaWQgdmFsdWVzOiA4LCAxNiwgMjQsIDMxICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OQUhBTlNfVFVSQk9fUlVOX01PREVfUkFUSU8JMSAgLyogdmFsaWQgdmFsdWVzOiAxLCAyICovCiAKIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCi0vKiAjZGVmaW5lIENGR19NTUNfQkFTRQkJMHhGMDAwMDAwMCAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX01NQ19CQVNFCQkweEYwMDAwMDAwICovCiAKIC8qCiAgKiBTdGFjayBzaXplcwpAQCAtMjA5LDI2ICsyMDksMjYgQEAKICNkZWZpbmUgUEhZU19TRFJBTV80CQkweDgzMDAwMDAwIC8qIFNEUkFNIEJhbmsgIzQgKi8KICNkZWZpbmUgUEhZU19TRFJBTV80X1NJWkUJMHgxMDAwMDAwICAvKiA2NCBNQiAqLwogCi0jZGVmaW5lIENGR19EUkFNX0JBU0UJCTB4ODAwMDAwMDAgLyogYXQgQ1MwICovCi0jZGVmaW5lIENGR19EUkFNX1NJWkUJCTB4MDQwMDAwMDAgLyogNjQgTUIgUmFtICovCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFCQkweDgwMDAwMDAwIC8qIGF0IENTMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fU0laRQkJMHgwNDAwMDAwMCAvKiA2NCBNQiBSYW0gKi8KIAotI3VuZGVmIENGR19TS0lQX0RSQU1fU0NSVUIKKyN1bmRlZiBDT05GSUdfU1lTX1NLSVBfRFJBTV9TQ1JVQgogCiAvKgogICogTkFORCBGbGFzaAogICovCiAjdW5kZWYgQ09ORklHX05BTkRfTEVHQUNZCiAKLSNkZWZpbmUgQ0ZHX05BTkQwX0JBU0UJCTB4MCAvKiAweDQzMTAwMDQwICovIC8qIDB4MTAwMDAwMDAgKi8KLSN1bmRlZiBDRkdfTkFORDFfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX05BTkQwX0JBU0UJCTB4MCAvKiAweDQzMTAwMDQwICovIC8qIDB4MTAwMDAwMDAgKi8KKyN1bmRlZiBDT05GSUdfU1lTX05BTkQxX0JBU0UKIAotI2RlZmluZSBDRkdfTkFORF9CQVNFX0xJU1QJeyBDRkdfTkFORDBfQkFTRSB9Ci0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXsgQ09ORklHX1NZU19OQU5EMF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLwogCiAvKiBuYW5kIHRpbWVvdXQgdmFsdWVzICovCi0jZGVmaW5lIENGR19OQU5EX1BST0dfRVJBU0VfVE8JMzAwMAotI2RlZmluZSBDRkdfTkFORF9PVEhFUl9UTwkxMDAKLSNkZWZpbmUgQ0ZHX05BTkRfU0VORENNRF9SRVRSWQkzCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9QUk9HX0VSQVNFX1RPCTMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX09USEVSX1RPCTEwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfU0VORENNRF9SRVRSWQkzCiAjdW5kZWYgTkFORF9BTExPV19FUkFTRV9BTEwJLyogQWxsb3cgZXJhc2luZyBiYWQgYmxvY2tzIC0gZG9uJ3QgdXNlICovCiAKIC8qIE5BTkQgVGltaW5nIFBhcmFtZXRlcnMgKGluIG5zKSAqLwpAQCAtMjQ1LDkgKzI0NSw5IEBACiAjZGVmaW5lIE5BTkRfVElNSU5HX3RBUgkJMTAKIAogLyogTkFORCBkZWJ1Z2dpbmcgKi8KLSNkZWZpbmUgQ0ZHX0RGQ19ERUJVRzEgLyogdXNlZnVsbCAqLwotI3VuZGVmIENGR19ERkNfREVCVUcyICAvKiBub2lzeSAqLwotI3VuZGVmIENGR19ERkNfREVCVUczICAvKiBleHRyZW1seSBub2lzeSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERkNfREVCVUcxIC8qIHVzZWZ1bGwgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0RGQ19ERUJVRzIgIC8qIG5vaXN5ICovCisjdW5kZWYgQ09ORklHX1NZU19ERkNfREVCVUczICAvKiBleHRyZW1seSBub2lzeSAgKi8KIAogI2RlZmluZSBDT05GSUdfTVREX0RFQlVHCiAjZGVmaW5lIENPTkZJR19NVERfREVCVUdfVkVSQk9TRSAxCkBAIC0yNjAsNyArMjYwLDcgQEAKICNkZWZpbmUgTkFORF9NQVhfRkxPT1JTCQkxCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkxCiAKLSNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCisjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEKIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05BTkQJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg0MDAwMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2RucDExMTAuaCBiL2luY2x1ZGUvY29uZmlncy9kbnAxMTEwLmgKaW5kZXggMjI0OWZjOC4uZTMyOWZkMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2RucDExMTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZG5wMTExMC5oCkBAIC00Niw4ICs0Niw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTk5LDI1ICs5OSwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJETlAxMTEwICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJETlAxMTEwICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHhjMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHhjMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4YzA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweGMwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4YzAyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4YzAyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCi0jZGVmaW5lIENGR19DUFVTUEVFRAkJMHgwYgkJLyogc2V0IGNvcmUgY2xvY2sgdG8gMjIwIE1IeiAqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMzY4NjQwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVVNQRUVECQkweDBiCQkvKiBzZXQgY29yZSBjbG9jayB0byAyMjAgTUh6ICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTE0MywxNyArMTQzLDE3IEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfQkFOS19TSVpFICAgIDB4MDEwMDAwMDAgLyogMzIgTUIgQmFua3MgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUgICAgMHgwMDAyMDAwMCAvKiAyNTYgS0Igc2VjdG9ycyAoeDIpICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoUEhZU19GTEFTSF8xICsgMHhGODAwMDApCS8qIEFkZHIgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZVhhbGlvbi5oIGIvaW5jbHVkZS9jb25maWdzL2VYYWxpb24uaAppbmRleCBlY2Y0YzVlLi5mYzMxNzRjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvZVhhbGlvbi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9lWGFsaW9uLmgKQEAgLTg0LDUzICs4NCw1MyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJMQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19NQVhBUkdTCQk4CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCTEJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJOAkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUJMHgxMDAwMDAwMAkvKiAxIEdCeXRlcyAtIGluaXRkcmFtKCkgd2lsbAkgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUJMHgxMDAwMDAwMAkvKiAxIEdCeXRlcyAtIGluaXRkcmFtKCkgd2lsbAkgICAqLwogCQkJCQkgICAgIC8qIHJldHVybiByZWFsIHZhbHVlLgkJKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCiAKLSN1bmRlZglDRkdfUkFNQk9PVAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSAgICAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI3VuZGVmCUNPTkZJR19TWVNfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQogICovCi0jZGVmaW5lIENGR19JTklUX0RBVEFfU0laRQkxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0RBVEFfU0laRQkxMjgKIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCi0jZGVmaW5lIENGR19JTklUX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0lOSVRfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfSU5JVF9EQVRBX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJIDI1NgkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJIDI1NgkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIAogI2lmIGRlZmluZWQgKENPTkZJR19NUEM4MjQwKQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkgICAgMHhGRkUwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkgICAgKDIgKiAxMDI0ICogMTAyNCkJLyogb25ib2FyZCAyTUJ5dGUgZmxhc2gJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkgICAgMHhGRkUwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJICAgICgyICogMTAyNCAqIDEwMjQpCS8qIG9uYm9hcmQgMk1CeXRlIGZsYXNoCSAgICAqLwogI2VsaWYgZGVmaW5lZCAoQ09ORklHX01QQzgyNDUpCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCSAgICAweEZGQzAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCSAgICAoNCAqIDEwMjQgKiAxMDI0KQkvKiBvbmJvYXJkIDRNQnl0ZSBmbGFzaAkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCSAgICAweEZGQzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkgICAgKDQgKiAxMDI0ICogMTAyNCkJLyogb25ib2FyZCA0TUJ5dGUgZmxhc2gJICAgICovCiAjZWxzZQogI2Vycm9yIFNwZWNpZmljIHR5cGUgb2YgTVBDODI0eCBtdXN0IGJlIGRlZmluZWQgKGkuZS4gQ09ORklHX01QQzgyNDApCiAjZW5kaWYKQEAgLTE0MSwyNyArMTQxLDI3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHhGRkZDMDAwMAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMAkvKiBzdGFydGluZyByaWdodCBhdCB0aGUgYmVnaW5uaW5nICAqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19BTFRfTUVNVEVTVAkJMQkvKiB1c2UgcmVhbCBtZW1vcnkgdGVzdAkgICAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSAgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVAkJMQkvKiB1c2UgcmVhbCBtZW1vcnkgdGVzdAkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMjAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCSAgICAqLwogCi0jZGVmaW5lIENGR19FVU1CX0FERFIJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVU1CX0FERFIJCTB4RkMwMDAwMDAKIAotLyogI2RlZmluZSBDRkdfSVNBX01FTQkJICAgMHhGRDAwMDAwMCAqLwotI2RlZmluZSBDRkdfSVNBX0lPCQkweEZFMDAwMDAwCisvKiAjZGVmaW5lIENPTkZJR19TWVNfSVNBX01FTQkJICAgMHhGRDAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JTwkJMHhGRTAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgZmxhc2ggICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NAkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgcGVyIGZsYXNoICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KIAotI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UKKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0JMAogCiAKQEAgLTE2OSwxMyArMTY5LDEzIEBACiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudAkJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfSU5DUkVNRU5UCTAJLyogdGhlcmUgaXMgb25seSBvbmUgYmFuawkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVAkwCS8qIHRoZXJlIGlzIG9ubHkgb25lIGJhbmsJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCS8qIHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIwMCwyMyArMjAwLDIzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAkJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAkxCiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTM4NDAwCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQogCiAjaWYgKENPTkZJR19DT05TX0lOREVYID09IDEpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJMTg0MzIwMCAvKiBDT00xIG9ubHkgIQkqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkxODQzMjAwIC8qIENPTTEgb25seSAhCSovCiAjZWxzZQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsgKHsgZXh0ZXJuIHVsb25nIGdldF9idXNfZnJlcSAodWxvbmcpOyBnZXRfYnVzX2ZyZXEgKDApOyB9KQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLICh7IGV4dGVybiB1bG9uZyBnZXRfYnVzX2ZyZXEgKHVsb25nKTsgZ2V0X2J1c19mcmVxICgwKTsgfSkKICNlbmRpZgogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19JU0FfSU8gKyAweDNGOCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0VVTUJfQUREUiArIDB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMwkoQ0ZHX0VVTUJfQUREUiArIDB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfSVNBX0lPICsgMHgzRjgpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0VVTUJfQUREUiArIDB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTMJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NjAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBzZWxlY3QgaTJjIHN1cHBvcnQgY29uZmlndXJhdGlvbgpAQCAtMjI3LDE1ICsyMjcsMTUgQEAKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogVG8gZW5hYmxlIEkyQyBzdXBwb3J0CSovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCiAgKiAoYWRkcmVzcyBtYXBwaW5ncywgcmVnaXN0ZXIgaW5pdGlhbCB2YWx1ZXMsIGV0Yy4pCiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkzMzMzMzMzMwkvKiBleHRlcm5hbCBmcmVxdWVuY3kgdG8gcGxsCSovCiAjZGVmaW5lIENPTkZJR19QTExfUENJX1RPX01FTV9NVUxUSVBMSUVSICAyCS8qIGZvciBNUEM4MjQwIG9ubHkJCSovCkBAIC0yNDUsNzYgKzI0NSw3NiBAQAogI2lmIGRlZmluZWQgKENPTkZJR19NUEM4MjQ1KQogLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgUE1DUjIuCQkJCQkJCSovCiAjaWYgZGVmaW5lZCAoQ09ORklHXzEzM01IWl9EUkFNKQotI2RlZmluZSBDRkdfRExMX0VYVEVORAkJMHg4MAkvKiB1c2UgRExMIGV4dGVuZGVkIHJhbmdlIC0gMTMzTUh6IG9ubHkgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9IT0xEX0RFTAkweDIwCS8qIGRlbGF5IGFuZCBob2xkIHRpbWluZyAtIDEzM01IeiBvbmx5CSovCisjZGVmaW5lIENPTkZJR19TWVNfRExMX0VYVEVORAkJMHg4MAkvKiB1c2UgRExMIGV4dGVuZGVkIHJhbmdlIC0gMTMzTUh6IG9ubHkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSE9MRF9ERUwJMHgyMAkvKiBkZWxheSBhbmQgaG9sZCB0aW1pbmcgLSAxMzNNSHogb25seQkqLwogI2VuZGlmCiAKIC8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1JT0NSMS4JCQkJCQkJKi8KICNpZiAhZGVmaW5lZCAoQ09ORklHXzEzM01IWl9EUkFNKQotI2RlZmluZSBDRkdfRExMX01BWF9ERUxBWQkweDA0CS8qICBsb25nZXIgRExMIGRlbGF5IGxpbmUgLSA2Nk1IeiBvbmx5CSovCisjZGVmaW5lIENPTkZJR19TWVNfRExMX01BWF9ERUxBWQkweDA0CS8qICBsb25nZXIgRExMIGRlbGF5IGxpbmUgLSA2Nk1IeiBvbmx5CSovCiAjZW5kaWYKIC8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1JT0NSMi4JCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0RTQ0QJCTB4MjAJLyogU0RSQU0gZGF0YSBpbiBzYW1wbGUgY2xvY2sgZGVsYXkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9EU0NECQkweDIwCS8qIFNEUkFNIGRhdGEgaW4gc2FtcGxlIGNsb2NrIGRlbGF5CSovCiAJCQkJCS8qCS0gbm90ZSBib3R0b20gMyBiaXRzIE1VU1QgYmUgMAkqLwogI2VuZGlmCiAKIC8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IxLgkJCQkJCQkqLwotI2RlZmluZSBDRkdfUk9NTkFMCQk3CS8qcm9tL2ZsYXNoIG5leHQgYWNjZXNzIHRpbWUJCSovCi0jZGVmaW5lIENGR19ST01GQUwJICAgICAgIDExCS8qcm9tL2ZsYXNoIGFjY2VzcyB0aW1lCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ST01OQUwJCTcJLypyb20vZmxhc2ggbmV4dCBhY2Nlc3MgdGltZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ST01GQUwJICAgICAgIDExCS8qcm9tL2ZsYXNoIGFjY2VzcyB0aW1lCQkJKi8KIAogLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjIuCQkJCQkJCSovCi0jZGVmaW5lIENGR19UU1dBSVQJCTB4NQkvKiBUcmFuc2FjdGlvbiBTdGFydCBXYWl0IFN0YXRlcyB0aW1lcgkqLworI2RlZmluZSBDT05GSUdfU1lTX1RTV0FJVAkJMHg1CS8qIFRyYW5zYWN0aW9uIFN0YXJ0IFdhaXQgU3RhdGVzIHRpbWVyCSovCiAjaWYgZGVmaW5lZCAoQ09ORklHXzEzM01IWl9EUkFNKQotI2RlZmluZSBDRkdfUkVGSU5UCQkxMzAwCS8qIG5vIG9mIGNsb2NrIGN5Y2xlcyBiZXR3ZWVuIENCUgkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVAkJMTMwMAkvKiBubyBvZiBjbG9jayBjeWNsZXMgYmV0d2VlbiBDQlIJKi8KICNlbHNlICAvKiByZWZyZXNoIGN5Y2xlcyAqLwotI2RlZmluZSBDRkdfUkVGSU5UCQk3NTAKKyNkZWZpbmUgQ09ORklHX1NZU19SRUZJTlQJCTc1MAogI2VuZGlmCiAKIC8qIEJ1cnN0IFRvIFByZWNoYXJnZS4gQml0cyBvZiB0aGlzIHZhbHVlIGdvIHRvIE1DQ1IzIGFuZCBNQ0NSNC4JCSovCiAjaWYgZGVmaW5lZCAoQ09ORklHXzEzM01IWl9EUkFNKQotI2RlZmluZSBDRkdfQlNUT1BSRQkJMTAyMworI2RlZmluZSBDT05GSUdfU1lTX0JTVE9QUkUJCTEwMjMKICNlbHNlCi0jZGVmaW5lIENGR19CU1RPUFJFCQkyNTAKKyNkZWZpbmUgQ09ORklHX1NZU19CU1RPUFJFCQkyNTAKICNlbmRpZgogCiAvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMy4JCQkJCQkJKi8KIC8qIHRoZSBmb2xsb3dpbmcgYXJlIGZvciBTRFJBTSBvbmx5CQkJCQkJKi8KIAogI2lmIGRlZmluZWQgKENPTkZJR18xMzNNSFpfRFJBTSkKLSNkZWZpbmUgQ0ZHX1JFRlJFQwkJOQkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwkJOQkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1JFRlJFQwkJNQkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwkJNQkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLwogI2VuZGlmCiAjaWYgZGVmaW5lZCAoQ09ORklHX01QQzgyNDApCi0jZGVmaW5lIENGR19SRExBVAkJMgkvKiBkYXRhIGxhdGVuY3kgZnJvbSByZWFkIGNvbW1hbmQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRExBVAkJMgkvKiBkYXRhIGxhdGVuY3kgZnJvbSByZWFkIGNvbW1hbmQJKi8KICNlbmRpZgogCiAvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSNC4JKi8KICNpZiBkZWZpbmVkIChDT05GSUdfMTMzTUhaX0RSQU0pCi0jZGVmaW5lIENGR19QUkVUT0FDVAkJMwkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCQk3CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUT1JXCQk1CS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfQ0FTX0xBVAkzCS8qIFNETU9ERSBDQVMgbGF0ZW5jeQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJCTMJLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUVE9QUkUJCTcJLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXCQk1CS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQJMwkvKiBTRE1PREUgQ0FTIGxhdGVuY3kJCQkqLwogI2Vsc2UKICNpZiAwCi0jZGVmaW5lIENGR19QUkVUT0FDVAkJMgkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCQkzCS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUT1JXCQkzCS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfQ0FTX0xBVAkyCS8qIFNETU9ERSBDQVMgbGF0ZW5jeQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJCTIJLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUVE9QUkUJCTMJLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXCQkzCS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQJMgkvKiBTRE1PREUgQ0FTIGxhdGVuY3kJCQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QUkVUT0FDVAkJMgkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCQk1CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUT1JXCQkzCS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfQ0FTX0xBVAkzCS8qIFNETU9ERSBDQVMgbGF0ZW5jeQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJCTIJLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUVE9QUkUJCTUJLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXCQkzCS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQJMwkvKiBTRE1PREUgQ0FTIGxhdGVuY3kJCQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9CVVJTVExFTgkyCS8qIFNETU9ERSBCdXJzdCBsZW5ndGggMj00LCAzPTgJCSovCi0jZGVmaW5lIENGR19SRUdESU1NCQkwCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX1dSQVAJCTAJLyogU0RNT0RFIHdyYXAgdHlwZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0JVUlNUTEVOCTIJLyogU0RNT0RFIEJ1cnN0IGxlbmd0aCAyPTQsIDM9OAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUdESU1NCQkwCiAjaWYgZGVmaW5lZCAoQ09ORklHX01QQzgyNDApCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSICAgMAogI2VsaWYgZGVmaW5lZCAoQ09ORklHX01QQzgyNDUpCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgICAxCi0jZGVmaW5lIENGR19FWFRST00JCSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0VYVFJPTQkJICAgIDAKICNlbHNlCiAjZXJyb3IgU3BlY2lmaWMgdHlwZSBvZiBNUEM4MjR4IG11c3QgYmUgZGVmaW5lZCAoaS5lLiBDT05GSUdfTVBDODI0MCkKICNlbmRpZgpAQCAtMzI3LDUxICszMjcsNTEgQEAKICAqIGJpdHMgd2lsbCBiZSBzZXQgdG8gMHgwMDAwMCBmb3IgYSBzdGFydCBhZGRyZXNzLCBvciAweGZmZmZmIGZvciBhbgogICogZW5kIGFkZHJlc3MKICAqLwotI2RlZmluZSBDRkdfQkFOSzBfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkswX0VORAkJKENGR19NQVhfUkFNX1NJWkUgLSAxKQotI2RlZmluZSBDRkdfQkFOSzBfRU5BQkxFCTEKLSNkZWZpbmUgQ0ZHX0JBTksxX1NUQVJUCQkweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMV9FTkQJCTB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksxX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LMl9TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzJfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMl9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzNfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkszX0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzNfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks0X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNV9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzZfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks3X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkQJCShDT05GSUdfU1lTX01BWF9SQU1fU0laRSAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVAkJMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORAkJMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VOQUJMRQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1lbW9yeSBiYW5rIGVuYWJsZSBiaXRtYXNrLCBzcGVjaWZ5aW5nIHdoaWNoIG9mIHRoZSBiYW5rcyBkZWZpbmVkIGFib3ZlCiAgYXJlIGFjdHVhbGx5IHByZXNlbnQuIE1TQiBpcyBmb3IgYmFuayAjNywgTFNCIGlzIGZvciBiYW5rICMwLgogICovCi0jZGVmaW5lIENGR19CQU5LX0VOQUJMRQkJMHgwMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTktfRU5BQkxFCQkweDAxCiAKICNpZiBkZWZpbmVkIChDT05GSUdfTVBDODI0MCkKLSNkZWZpbmUgQ0ZHX09EQ1IJCTB4REYJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzLAkqLworI2RlZmluZSBDT05GSUdfU1lTX09EQ1IJCTB4REYJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzLAkqLwogCQkJCQkvKiBzZWUgODI0MCBib29rIGZvciBiaXQgZGVmaW5pdGlvbnMJKi8KICNlbGlmIGRlZmluZWQgKENPTkZJR19NUEM4MjQ1KQogI2lmIGRlZmluZWQgKENPTkZJR18xMzNNSFpfRFJBTSkKLSNkZWZpbmUgQ0ZHX09EQ1IJCTB4RkUJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzIC0gMTMzTUh6CSovCisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkJMHhGRQkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMgLSAxMzNNSHoJKi8KICNlbHNlCi0jZGVmaW5lIENGR19PRENSCQkweERFCS8qIGNvbmZpZ3VyZXMgbGluZSBkcml2ZXIgaW1wZWRhbmNlcyAtIDY2TUh6CSovCisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkJMHhERQkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMgLSA2Nk1IegkqLwogI2VuZGlmCiAjZWxzZQogI2Vycm9yIFNwZWNpZmljIHR5cGUgb2YgTVBDODI0eCBtdXN0IGJlIGRlZmluZWQgKGkuZS4gQ09ORklHX01QQzgyNDApCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QR01BWAkJMHgzMgkvKiBob3cgbG9uZyB0aGUgODI0MCByZXRhaW5zIHRoZQkqLwogCQkJCQkvKiBjdXJyZW50bHkgYWNjZXNzZWQgcGFnZSBpbiBtZW1vcnkJKi8KIAkJCQkJLyogc2VlIDgyNDAgYm9vayBmb3IgZGV0YWlscwkJKi8KIApAQCAtMzc5LDM3ICszNzksMzcgQEAKICAqIEJsb2NrIEFkZHJlc3MgVHJhbnNsYXRpb24gKEJBVCkgcmVnaXN0ZXIgc2V0dGluZ3MuCiAgKi8KIC8qIFNEUkFNIDAgLSAyNTZNQiAqLwotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBzdGFjayBpbiBEQ0FDSEUgQCAxR0IgKG5vIGJhY2tpbmcgbWVtKSAqLwotI2RlZmluZSBDRkdfSUJBVDFMCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBQQ0kgbWVtb3J5ICovCi0jZGVmaW5lIENGR19JQkFUMkwJKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUJKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCSgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIEZsYXNoLCBjb25maWcgYWRkcnMsIGV0YyAqLwotI2RlZmluZSBDRkdfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogCkBAIC00MzIsMTUgKzQzMiwxNSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZgogICovCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCSAgICAxCS8qIG1heC4gMiBJREUgYnVzc2VzCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFICAgKENGR19JREVfTUFYQlVTKjEpCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCSAgICAxCS8qIG1heC4gMiBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRSAgIChDT05GSUdfU1lTX0lERV9NQVhCVVMqMSkJLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cyAqLwogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSICAgQ0ZHX0lTQV9JTwkvKiBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVCAweDAxRjAJLyogaWRlMCBvZmZzdGUgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9JREUxX09GRlNFVCAweDAxNzAJLyogaWRlMSBvZmZzZXQgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVCAwCS8qIGRhdGEgcmVnIG9mZnNldCAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUICAwCS8qIHJlZyBvZmZzZXQgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUICAweDIwMAkvKiBhbHRlcm5hdGUgcmVnaXN0ZXIgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUiAgIENPTkZJR19TWVNfSVNBX0lPCS8qIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVCAweDAxRjAJLyogaWRlMCBvZmZzdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQgMHgwMTcwCS8qIGlkZTEgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUIDAJLyogZGF0YSByZWcgb2Zmc2V0ICAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUICAwCS8qIHJlZyBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVCAgMHgyMDAJLyogYWx0ZXJuYXRlIHJlZ2lzdGVyIG9mZnNldCAqLwogCiAjZGVmaW5lIENPTkZJR19BVEFQSQogCkBAIC00NTksNiArNDU5LDYgQEAKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZWJvbnkuaCBiL2luY2x1ZGUvY29uZmlncy9lYm9ueS5oCmluZGV4IDJjOWM5YzEuLjEwZjQyNWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9lYm9ueS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9lYm9ueS5oCkBAIC01OCwzMSArNTgsMzEgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAkgICAgLyogX211c3RfIGJlIDAJCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCSAgICAweGZmODAwMDAwCSAgICAvKiBzdGFydCBvZiBGTEFTSAkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCSAgICAweDgwMDAwMDAwCSAgICAvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUEVSSVBIRVJBTF9CQVNFIDB4ZTAwMDAwMDAJICAgIC8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCi0jZGVmaW5lIENGR19JU1JBTV9CQVNFCSAgICAweGMwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBTUkFNCQkqLwotI2RlZmluZSBDRkdfUENJX0JBU0UJICAgIDB4ZDAwMDAwMDAJICAgIC8qIGludGVybmFsIFBDSSByZWdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAkgICAgLyogX211c3RfIGJlIDAJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkgICAgMHhmZjgwMDAwMAkgICAgLyogc3RhcnQgb2YgRkxBU0gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UJICAgIDB4ODAwMDAwMDAJICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFIDB4ZTAwMDAwMDAJICAgIC8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSVNSQU1fQkFTRQkgICAgMHhjMDAwMDAwMAkgICAgLyogaW50ZXJuYWwgU1JBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFTRQkgICAgMHhkMDAwMDAwMAkgICAgLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSIChDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRQkgICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MzAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRQkgICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwODMwMDAwMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyIChwbGFjZWQgaW4gaW50ZXJuYWwgU1JBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgQ0ZHX0lTUkFNX0JBU0UgIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAweDIwMDAJICAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAxMjgJCSAgICAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAgIENPTkZJR19TWVNfSVNSQU1fQkFTRSAgLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAgICAweDIwMDAJICAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgMTI4CQkgICAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfRVhUX1NFUklBTF9DTE9DSwkoMTg0MzIwMCAqIDYpCS8qIEV4dCBjbGsgQCAxMS4wNTkgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkoMTg0MzIwMCAqIDYpCS8qIEV4dCBjbGsgQCAxMS4wNTkgTUh6ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5WUkFNL1JUQwpAQCAtOTEsMzYgKzkxLDM2IEBACiAgKiBUaGUgRFMxNzQzIGNvZGUgYXNzdW1lcyB0aGlzIGNvbmRpdGlvbiAoaS5lLiAtLSBpdCBhc3N1bWVzIHRoZSBiYXNlCiAgKiBhZGRyZXNzIGZvciB0aGUgUlRDIHJlZ2lzdGVycyBpczoKICAqCi0gKglDRkdfTlZSQU1fQkFTRV9BRERSICsgQ0ZHX05WUkFNX1NJWkUKKyAqCUNPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSICsgQ09ORklHX1NZU19OVlJBTV9TSVpFCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJICAgICgweDIwMDAgLSA4KSAgICAvKiBOVlJBTSBzaXplKDhrKS0gUlRDIHJlZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCSAgICAoMHgyMDAwIC0gOCkgICAgLyogTlZSQU0gc2l6ZSg4ayktIFJUQyByZWdzICovCiAjZGVmaW5lIENPTkZJR19SVENfRFMxNzR4CTEJCSAgICAvKiBEUzE3NDMgUlRDCQkqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9OVlJBTQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkgICAgLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzICovCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJXAotCShDRkdfTlZSQU1fQkFTRV9BRERSK0NGR19OVlJBTV9TSVpFLUNPTkZJR19FTlZfU0laRSkKKwkoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIrQ09ORklHX1NZU19OVlJBTV9TSVpFLUNPTkZJR19FTlZfU0laRSkKICNlbmRpZiAvKiBDT05GSUdfRU5WX0lTX0lOX05WUkFNICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMwkJICAgIC8qIG51bWJlciBvZiBiYW5rcwkgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTMyCQkgICAgLyogc2VjdG9ycyBwZXIgZGV2aWNlICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMwkJICAgIC8qIG51bWJlciBvZiBiYW5rcwkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkzMgkJICAgIC8qIHNlY3RvcnMgcGVyIGRldmljZSAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAgICAgICAgICAweDU1NTUKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxICAgICAgICAgMHgyYWFhCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUgICAgIHVuc2lnbmVkIGNoYXIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMCAgICAgICAgIDB4NTU1NQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxICAgICAgICAgMHgyYWFhCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICAgICB1bnNpZ25lZCBjaGFyCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCQkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xMzgsMTMgKzEzOCwxMyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJKDB4YTg+PjEpCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkoMHhhOD4+MSkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAogCiAvKgogICogRGVmYXVsdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMKQEAgLTE3OSwxMiArMTc5LDEyIEBACiAjZGVmaW5lIENPTkZJR19QQ0kJCQkgICAgICAgICAgICAvKiBpbmNsdWRlIHBjaSBzdXBwb3J0CSAgICAgICAgKi8KICNkZWZpbmUgQ09ORklHX1BDSV9QTlAJCQkgICAgICAgIC8qIGRvIHBjaSBwbHVnLWFuZC1wbGF5ICAgICAgICAgKi8KICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cgICAgICAgICAgICAvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0JBU0UgICAgMHg4MDAwMDAwMCAgLyogUENJYWRkciBtYXBwZWQgdG8gQ0ZHX1BDSV9NRU1CQVNFICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdCQVNFICAgIDB4ODAwMDAwMDAgIC8qIFBDSWFkZHIgbWFwcGVkIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UgKi8KIAogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQJICAgICAgICAgICAgLyogbGV0IGJvYXJkIGluaXQgcGNpIHRhcmdldCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVAkgICAgICAgICAgICAvKiBsZXQgYm9hcmQgaW5pdCBwY2kgdGFyZ2V0ICAgICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHhjYWZlICAvKiBXaGF0ZXZlciAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZSAgLyogV2hhdGV2ZXIgKi8KIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9lcDczMTIuaCBiL2luY2x1ZGUvY29uZmlncy9lcDczMTIuaAppbmRleCA2MGM4N2JkLi4wNTgxODQyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvZXA3MzEyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2VwNzMxMi5oCkBAIC00MSw4ICs0MSw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTk3LDI0ICs5NywyNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJFUDczMTIgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIkVQNzMxMiAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4YzA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4YzA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweGMwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHhjMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweGMwNTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweGMwNTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMjAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMiBrSHogKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTIwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDIga0h6ICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTEzNywxNyArMTM3LDE3IEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgwMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgwMTAwMDAwMCAvKiAxNiBNQiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShQSFlTX0ZMQVNIXzEgKyAweDIwMDAwKQkvKiBBZGRyIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2VwODI0OC5oIGIvaW5jbHVkZS9jb25maWdzL2VwODI0OC5oCmluZGV4IGQ4ZjFhYWYuLmY3YjNmZGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9lcDgyNDguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZXA4MjQ4LmgKQEAgLTQ4LDcgKzQ4LDcgQEAKICN1bmRlZglDT05GSUdfQ09OU19OT05FCQkvKiBJdCdzIG5vdCBvbiBleHRlcm5hbCBVQVJUICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEJLyogU01DMSBpcyB1c2VkIGZvciBjb25zb2xlICAqLwogCi0jZGVmaW5lIENGR19CQ1NSCQkweEZBMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUgkJMHhGQTAwMDAwMAogCiAvKgogICogU2VsZWN0IGV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTc2LDEwICs3NiwxMCBAQAogICogLSBCRHMvYnVmZmVycyBvbiA2MHggYnVzCiAgKiAtIEZ1bGwgZHVwbGV4CiAgKi8KLSNkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMxIHwgQ01YRkNSX1JGMUNTX01TSyB8IENNWEZDUl9URjFDU19NU0spCi0jZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjFDU19DTEsxMCB8IENNWEZDUl9URjFDU19DTEsxMSkKLSNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSNkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQorI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMxIHwgQ01YRkNSX1JGMUNTX01TSyB8IENNWEZDUl9URjFDU19NU0spCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYxQ1NfQ0xLMTAgfCBDTVhGQ1JfVEYxQ1NfQ0xLMTEpCisjZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQogCiAjZWxpZiAoQ09ORklHX0VUSEVSX0lOREVYID09IDIpCiAKQEAgLTg4LDEwICs4OCwxMCBAQAogICogLSBCRHMvYnVmZmVycyBvbiA2MHggYnVzCiAgKiAtIEZ1bGwgZHVwbGV4CiAgKi8KLSNkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCi0jZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxMyB8IENNWEZDUl9URjJDU19DTEsxNCkKLSNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSNkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQorI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTMgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisjZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQogCiAjZW5kaWYgLyogQ09ORklHX0VUSEVSX0lOREVYICovCiAKQEAgLTEwMSwxNSArMTAxLDE1IEBACiAgKiBHUElPIHBpbnMgdXNlZCBmb3IgYml0LWJhbmdlZCBNSUkgY29tbXVuaWNhdGlvbnMKICAqLwogI2RlZmluZSBNRElPX1BPUlQJCTAJLyogTm90IHVzZWQgLSBpbXBsZW1lbnRlZCBpbiBCQ1NSICovCi0jZGVmaW5lIE1ESU9fQUNUSVZFCQkoKih2dV9jaGFyICopKENGR19CQ1NSICsgOCkgJj0gMHhGQikKLSNkZWZpbmUgTURJT19UUklTVEFURQkJKCoodnVfY2hhciAqKShDRkdfQkNTUiArIDgpIHw9IDB4MDQpCi0jZGVmaW5lIE1ESU9fUkVBRAkJKCoodnVfY2hhciAqKShDRkdfQkNTUiArIDgpICYgMSkKKyNkZWZpbmUgTURJT19BQ1RJVkUJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19CQ1NSICsgOCkgJj0gMHhGQikKKyNkZWZpbmUgTURJT19UUklTVEFURQkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX0JDU1IgKyA4KSB8PSAweDA0KQorI2RlZmluZSBNRElPX1JFQUQJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19CQ1NSICsgOCkgJiAxKQogCi0jZGVmaW5lIE1ESU8oYml0KQkJaWYoYml0KSAqKHZ1X2NoYXIgKikoQ0ZHX0JDU1IgKyA4KSB8PSAweDAxOyBcCi0JCQkJZWxzZQkqKHZ1X2NoYXIgKikoQ0ZHX0JDU1IgKyA4KSAmPSAweEZFCisjZGVmaW5lIE1ESU8oYml0KQkJaWYoYml0KSAqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19CQ1NSICsgOCkgfD0gMHgwMTsgXAorCQkJCWVsc2UJKih2dV9jaGFyICopKENPTkZJR19TWVNfQkNTUiArIDgpICY9IDB4RkUKIAotI2RlZmluZSBNREMoYml0KQkJaWYoYml0KSAqKHZ1X2NoYXIgKikoQ0ZHX0JDU1IgKyA4KSB8PSAweDAyOyBcCi0JCQkJZWxzZQkqKHZ1X2NoYXIgKikoQ0ZHX0JDU1IgKyA4KSAmPSAweEZECisjZGVmaW5lIE1EQyhiaXQpCQlpZihiaXQpICoodnVfY2hhciAqKShDT05GSUdfU1lTX0JDU1IgKyA4KSB8PSAweDAyOyBcCisJCQkJZWxzZQkqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19CQ1NSICsgOCkgJj0gMHhGRAogCiAjZGVmaW5lIE1JSURFTEFZCQl1ZGVsYXkoMSkKIApAQCAtMTYyLDEyNSArMTYyLDEyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcwkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZQlDRkdfRElSRUNUX0ZMQVNIX1RGVFAKKyNkZWZpbmUJQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0pGRlMyKQotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfQkFOSwkwCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJQ0ZHX01BWF9GTEFTSF9CQU5LUwotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfU0VDVE9SICAwCi0jZGVmaW5lIENGR19KRkZTMl9MQVNUX1NFQ1RPUiAgIDYyCi0jZGVmaW5lIENGR19KRkZTMl9TT1JUX0ZSQUdNRU5UUwotI2RlZmluZSBDRkdfSkZGU19DVVNUT01fUEFSVAorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksJMAorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwlDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUiAgMAorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0xBU1RfU0VDVE9SICAgNjIKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9TT1JUX0ZSQUdNRU5UUworI2RlZmluZSBDT05GSUdfU1lTX0pGRlNfQ1VTVE9NX1BBUlQKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0kyQykKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIFRvIGVuYWJsZSBJMkMgc3VwcG9ydAkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkCQkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgkvKiBJMkMgc2xhdmUgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgkvKiBJMkMgc2xhdmUgYWRkcmVzcwkJKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTZLQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NktCIGZvciBNb25pdG9yICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKICNlbmRpZiAvKiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIICovCiAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfSU1NUgkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9JTU1SCTB4MDAwMTAwMDAKIAotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MjAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKiBIYXJkIHJlc2V0IGNvbmZpZ3VyYXRpb24gd29yZCAqLwotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJCTB4MEM0MDAyNUEgLyogTm90IHVzZWQgLSBwcm92aWRlZCBieSBGUEdBICovCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJCTB4MEM0MDAyNUEgLyogTm90IHVzZWQgLSBwcm92aWRlZCBieSBGUEdBICovCiAvKiBObyBzbGF2ZXMgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJCTAKIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290ICAgICAgICAgICAgICAgICAgKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDQwOTYgPDwgMTApCS8qIFJlc2VydmUgNCBNQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNDA5NiA8PCAxMCkJLyogUmVzZXJ2ZSA0IE1CIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkoSElEMF9JQ0UgfCBISUQwX0lGRU0gfCBISUQwX0FCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkoSElEMF9JQ0UgfCBISUQwX0lGRU0gfCBISUQwX0FCRSkKIAotI2RlZmluZSBDRkdfSElEMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJCTAKIAotI2RlZmluZSBDRkdfU0lVTUNSCQkweDAxMjQwMjAwCi0jZGVmaW5lIENGR19TWVBDUgkJMHhGRkZGMDY4MwotI2RlZmluZSBDRkdfQkNSCQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0NDUgkJU0NDUl9ERkJSRzAxCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCQkweDAxMjQwMjAwCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJCTB4RkZGRjA2ODMKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkJU0NDUl9ERkJSRzAxCiAKLSNkZWZpbmUgQ0ZHX1JNUgkJCVJNUl9DU1JFCi0jZGVmaW5lIENGR19UTUNOVFNDCQkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCi0jZGVmaW5lIENGR19QSVNDUgkJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCi0jZGVmaW5lIENGR19SQ0NSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQkJUk1SX0NTUkUKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDCQkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IJCTAKIAotI2RlZmluZSBDRkdfTVBUUFIJCTB4MTMwMAotI2RlZmluZSBDRkdfUFNETVIJCTB4ODI2NzI1MjIKLSNkZWZpbmUgQ0ZHX1BTUlQJCTB4NEIKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkJMHgxMzAwCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJCTB4ODI2NzI1MjIKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUCQkweDRCCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JSCQkoQ0ZHX1NEUkFNX0JBU0UgfCAweDAwMDAxODQxKQotI2RlZmluZSBDRkdfU0RSQU1fT1IJCTB4RkYwMDMwQzAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQlIJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCAweDAwMDAxODQxKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX09SCQkweEZGMDAzMEMwCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCShDRkdfRkxBU0hfQkFTRSB8IDB4MDAwMDE4MDEpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweEZGODAwOEMyCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkoQ0ZHX0JDU1IgfCAweDAwMDAwODAxKQotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhGRkYwMDg2NAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCAweDAwMDAxODAxKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4RkY4MDA4QzIKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkoQ09ORklHX1NZU19CQ1NSIHwgMHgwMDAwMDgwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweEZGRjAwODY0CiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhDMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhDMDAwMDAwMAogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2VwODI2MC5oIGIvaW5jbHVkZS9jb25maWdzL2VwODI2MC5oCmluZGV4IDlhNjAyYzMuLmQ0OWQwMmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9lcDgyNjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZXA4MjYwLmgKQEAgLTMzLDcgKzMzLDcgQEAKICAqCS0gMTZNIEZsYXNoICg0IHggQU0yOURMMzIzREI5MFdESSkKICAqCS0gMTI4ayBOVlJBTSB3aXRoIFJUQwogICoKLSAqICJFUDgyNjAgSDIsIFYuMS4zIiAoQ0ZHX0VQODI2MF9IMikKKyAqICJFUDgyNjAgSDIsIFYuMS4zIiAoQ09ORklHX1NZU19FUDgyNjBfSDIpCiAgKgktIDMwME1Iei8xMzNNSHovNjZNSHoKICAqCS0gNjRNIDYweCBCdXMgU0RSQU0KICAqCS0gMzJNIExvY2FsIEJ1cyBTRFJBTQpAQCAtNDUsOCArNDUsOCBAQAogI2RlZmluZSBfX0NPTkZJR19ICiAKIC8qIERlZmluZSB0aGlzIHRvIGVuYWJsZSBzdXBwb3J0IHRoZSBFUDgyNjAgSDIgdmVyc2lvbiAqLwotI2RlZmluZSBDRkdfRVA4MjYwX0gyCTEKLS8qICN1bmRlZiBDRkdfRVA4MjYwX0gyICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VQODI2MF9IMgkxCisvKiAjdW5kZWYgQ09ORklHX1NZU19FUDgyNjBfSDIgICovCiAKICNkZWZpbmUgQ09ORklHX0NQTTIJCTEJLyogSGFzIGEgQ1BNMiAqLwogCkBAIC03NSwxMCArNzUsMTAgQEAKICAqIDB4NgkgICAgIDB4MQkgNjYJMTMzICAgIDI2NgogICogMHg2CSAgICAgMHgyCSA2NgkxMzMgICAgMzAwCiAgKi8KLSNpZmRlZiBDRkdfRVA4MjYwX0gyCi0jZGVmaW5lIENGR19TQkNfTU9EQ0tfSCAgKEhSQ1dfTU9EQ0tfSDAxMTApCisjaWZkZWYgQ09ORklHX1NZU19FUDgyNjBfSDIKKyNkZWZpbmUgQ09ORklHX1NZU19TQkNfTU9EQ0tfSCAgKEhSQ1dfTU9EQ0tfSDAxMTApCiAjZWxzZQotI2RlZmluZSBDRkdfU0JDX01PRENLX0ggIChIUkNXX01PRENLX0gwMTEwKQorI2RlZmluZSBDT05GSUdfU1lTX1NCQ19NT0RDS19IICAoSFJDV19NT0RDS19IMDExMCkKICNlbmRpZgogCiAvKiBEZWZpbmUgdGhpcyBpZiB5b3Ugd2FudCB0byBib290IGZyb20gMHgwMDAwMDEwMC4gSWYgeW91IGRvbid0IGRlZmluZQpAQCAtODcsMjYgKzg3LDI2IEBACiAgKiB3YXkgdG8gZG8gdGhhdCBpcyB0byBwcm9ncmFtIHRoZSBib290bG9hZGVyIGF0IGJvdGggYWRkcmVzc2VzLgogICogSXQgaXMgc3VnZ2VzdGVkIHRoYXQgeW91IGp1c3QgbGV0IFUtQm9vdCBsaXZlIGF0IDB4MDAwMDAwMDAuCiAgKi8KLS8qICNkZWZpbmUgQ0ZHX1NCQ19CT09UX0xPVyAxICovCS8qIG9ubHkgZm9yIEhSQ1cgKi8KLS8qICN1bmRlZiBDRkdfU0JDX0JPT1RfTE9XICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfU0JDX0JPT1RfTE9XIDEgKi8JLyogb25seSBmb3IgSFJDVyAqLworLyogI3VuZGVmIENPTkZJR19TWVNfU0JDX0JPT1RfTE9XICovCiAKIC8qIFRoZSByZXNldCBjb21tYW5kIHdpbGwgbm90IHdvcmsgYXMgZXhwZWN0ZWQgaWYgdGhlIHJlc2V0IGFkZHJlc3MgZG9lcwogICogbm90IHBvaW50IHRvIHRoZSBjb3JyZWN0IGFkZHJlc3MuCiAgKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCiAKIC8qIFdoYXQgc2hvdWxkIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIG1haW4gRkxBU0ggYmUgYW5kIGhvdyBiaWcgaXMKICAqIGl0IChpbiBNQnl0ZXMpPyBUaGlzIG11c3QgY29udGFpbiBURVhUX0JBU0UgZnJvbSBib2FyZC9lcDgyNjAvY29uZmlnLm1rCiAgKiBUaGUgbWFpbiBGTEFTSCBpcyB3aGljaGV2ZXIgaXMgY29ubmVjdGVkIHRvICpDUzAuIFUtQm9vdCBleHBlY3RzCiAgKiB0aGlzIHRvIGJlIHRoZSBTSU1NLgogICovCi0jaWZkZWYgQ0ZHX0VQODI2MF9IMgotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UgMHhGRTAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gwX1NJWkUgMzIKKyNpZmRlZiBDT05GSUdfU1lTX0VQODI2MF9IMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFIDB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfU0laRSAzMgogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9CQVNFIDB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9TSVpFIDE2CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0JBU0UgMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFIDE2CiAjZW5kaWYKIAogLyogV2hhdCBzaG91bGQgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgc2Vjb25kYXJ5IEZMQVNIIGJlIGFuZCBob3cgYmlnCkBAIC0xMTQsNDEgKzExNCw0MSBAQAogICogdG8gKkNTNi4gVS1Cb290IGV4cGVjdHMgdGhpcyB0byBiZSB0aGUgb24gYm9hcmQgRkxBU0guIElmIHlvdSBkb24ndAogICogd2FudCBpdCBlbmFibGVkLCBkb24ndCBkZWZpbmUgdGhlc2UgY29uc3RhbnRzLgogICovCi0jZGVmaW5lIENGR19GTEFTSDFfQkFTRSAwCi0jZGVmaW5lIENGR19GTEFTSDFfU0laRSAwCi0jdW5kZWYgQ0ZHX0ZMQVNIMV9CQVNFCi0jdW5kZWYgQ0ZHX0ZMQVNIMV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX0JBU0UgMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMV9TSVpFIDAKKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSDFfU0laRQogCiAvKiBXaGF0IHNob3VsZCBiZSB0aGUgYmFzZSBhZGRyZXNzIG9mIFNEUkFNIERJTU0gKDYweCBidXMpIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gTWJ5dGVzKT8KICovCi0jZGVmaW5lIENGR19TRFJBTTBfQkFTRSAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfU0laRSA2NAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9CQVNFIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfU0laRSA2NAogCi0vKiBkZWZpbmUgQ0ZHX0xTRFJBTSBpZiB5b3Ugd2FudCB0byBlbmFibGUgdGhlIDMyTSBTRFJBTSBvbiB0aGUKKy8qIGRlZmluZSBDT05GSUdfU1lTX0xTRFJBTSBpZiB5b3Ugd2FudCB0byBlbmFibGUgdGhlIDMyTSBTRFJBTSBvbiB0aGUKICAqIGxvY2FsIGJ1cyAoODI2MCBsb2NhbCBidXMgaXMgTk9UIGNhY2hlYWJsZSEpCiAqLwotLyogI2RlZmluZSBDRkdfTFNEUkFNICovCi0jdW5kZWYgQ0ZHX0xTRFJBTQorLyogI2RlZmluZSBDT05GSUdfU1lTX0xTRFJBTSAqLworI3VuZGVmIENPTkZJR19TWVNfTFNEUkFNCiAKLSNpZmRlZiBDRkdfTFNEUkFNCisjaWZkZWYgQ09ORklHX1NZU19MU0RSQU0KIC8qIFdoYXQgc2hvdWxkIGJlIHRoZSBiYXNlIGFkZHJlc3Mgb2YgU0RSQU0gRElNTSAobG9jYWwgYnVzKSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1ieXRlcyk/CiAqLwotICAjZGVmaW5lIENGR19TRFJBTTFfQkFTRSAweDA0MDAwMDAwCi0gICNkZWZpbmUgQ0ZHX1NEUkFNMV9TSVpFIDMyCisgICNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTFfQkFTRSAweDA0MDAwMDAwCisgICNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTFfU0laRSAzMgogI2Vsc2UKLSAgI2RlZmluZSBDRkdfU0RSQU0xX0JBU0UgMAotICAjZGVmaW5lIENGR19TRFJBTTFfU0laRSAwCi0gICN1bmRlZiBDRkdfU0RSQU0xX0JBU0UKLSAgI3VuZGVmIENGR19TRFJBTTFfU0laRQotI2VuZGlmIC8qIENGR19MU0RSQU0gKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMV9CQVNFIDAKKyAgI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMV9TSVpFIDAKKyAgI3VuZGVmIENPTkZJR19TWVNfU0RSQU0xX0JBU0UKKyAgI3VuZGVmIENPTkZJR19TWVNfU0RSQU0xX1NJWkUKKyNlbmRpZiAvKiBDT05GSUdfU1lTX0xTRFJBTSAqLwogCiAvKiBXaGF0IHNob3VsZCBiZSB0aGUgYmFzZSBhZGRyZXNzIG9mIE5WUkFNIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gQnl0ZXMpCiAgKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUiAgMHhGQTA4MDAwMAotI2RlZmluZSBDRkdfTlZSQU1fU0laRSAgICAgICAoMTI4KjEwMjQpLTE2CisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSICAweEZBMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRSAgICAgICAoMTI4KjEwMjQpLTE2CiAKIC8qIFRoZSBSVEMgaXMgYSBEYWxsYXMgRFMxNTU2CiAgKi8KQEAgLTE1Nyw4ICsxNTcsOCBAQAogLyogV2hhdCBzaG91bGQgYmUgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgTEVEcyBhbmQgc3dpdGNoIFMwPwogICogSWYgeW91IGRvbid0IHdhbnQgdGhlbSBlbmFibGVkLCBkb24ndCBkZWZpbmUgdGhpcy4KICAqLwotI2RlZmluZSBDRkdfTEVEX0JBU0UgMHgwMDAwMDAwMAotI3VuZGVmIENGR19MRURfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0xFRF9CQVNFIDB4MDAwMDAwMDAKKyN1bmRlZiBDT05GSUdfU1lTX0xFRF9CQVNFCiAKIC8qCiAgKiBzZWxlY3Qgc2VyaWFsIGNvbnNvbGUgY29uZmlndXJhdGlvbgpAQCAtMTk4LDIxICsxOTgsMjEgQEAKICAqIC0gUkFNIGZvciBCRC9CdWZmZXJzIGlzIG9uIHRoZSBsb2NhbCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEhhbGYgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMzfENNWEZDUl9SRjNDU19NU0t8Q01YRkNSX1RGM0NTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNXxDTVhGQ1JfVEYzQ1NfQ0xLMTYpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMzfENNWEZDUl9SRjNDU19NU0t8Q01YRkNSX1RGM0NTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYzQ1NfQ0xLMTV8Q01YRkNSX1RGM0NTX0NMSzE2KQogCiAvKgogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIGxvY2FsIEJ1cyAoc2VlIDI4LTEzKQogICovCi0jaWZkZWYgQ0ZHX0xTRFJBTQotICAjZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkzCi0jZWxzZSAvKiBDRkdfTFNEUkFNICovCi0gICNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSNlbmRpZiAvKiBDRkdfTFNEUkFNICovCisjaWZkZWYgQ09ORklHX1NZU19MU0RSQU0KKyAgI2RlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTMKKyNlbHNlIC8qIENPTkZJR19TWVNfTFNEUkFNICovCisgICNkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjZW5kaWYgLyogQ09ORklHX1NZU19MU0RSQU0gKi8KIAogLyogLSBFbmFibGUgSGFsZiBEdXBsZXggaW4gRlNNUiAqLwotLyogIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikgKi8KLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJMAorLyogIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpICovCisjIGRlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkwCiAKICNlbHNlIC8qIENPTkZJR19FVEhFUl9JTkRFWCAqLwogIyBlcnJvciAib24gRVA4MjYwIGV0aGVybmV0IG11c3QgYmUgRkNDMyIKQEAgLTIyNyw4ICsyMjcsOCBAQAogICovCiAjdW5kZWYgIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUgQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIFNvZnR3YXJlIChiaXQtYmFuZykgSTJDIGRyaXZlciBjb25maWd1cmF0aW9uCkBAIC0yNTgsNyArMjU4LDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKIAogLyogV2hhdCBzaG91bGQgdGhlIGNvbnNvbGUncyBiYXVkIHJhdGUgYmU/ICovCi0jaWZkZWYgQ0ZHX0VQODI2MF9IMgorI2lmZGVmIENPTkZJR19TWVNfRVA4MjYwX0gyCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURSAgICAgICAgIDk2MDAKICNlbHNlCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURSAgICAgICAgIDExNTIwMApAQCAtMjc0LDEwICsyNzQsMTAgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWSAgICAgICAgLTEKIAogLyogdW5kZWYgdGhpcyB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAogCiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQgICAgICAgICAgICAgICI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUICAgICAgICAgICAgICAiPT4gIgogCiAvKiBEZWZpbmUgdGhpcyB2YXJpYWJsZSB0byBlbmFibGUgdGhlICJodXNoIiBzaGVsbCAoZnJvbQogICAgQnVzeWJveCkgYXMgY29tbWFuZCBsaW5lIGludGVycHJldGVyLCB0aHVzIGVuYWJsaW5nCkBAIC0yODcsOCArMjg3LDggQEAKICAgIElmIHVuZGVmaW5lZCwgeW91IGdldCB0aGUgb2xkLCBtdWNoIHNpbXBsZXIgYmVoYXZpb3VyCiAgICB3aXRoIGEgc29tZXdoYXQgc21hcHBlciBtZW1vcnkgZm9vdHByaW50LgogKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogCiAvKgpAQCAtMzI3LDExICszMjcsMTEgQEAKICN1bmRlZiBDT05GSUdfQ01EX1hJTUcKIAogLyogV2hlcmUgZG8gdGhlIGludGVybmFsIHJlZ2lzdGVycyBsaXZlPyAqLwotI2RlZmluZSBDRkdfSU1NUiAgICAgICAgICAgICAgIDB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfSU1NUiAgICAgICAweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUiAgICAgICAgICAgICAgIDB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX0lNTVIgICAgICAgMHgwMDAxMDAwMAogCiAvKiBXaGVyZSBkbyB0aGUgb24gYm9hcmQgcmVnaXN0ZXJzIChDUzQpIGxpdmU/ICovCi0jZGVmaW5lIENGR19SRUdTX0JBU0UgICAgICAgICAgMHhGQTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFR1NfQkFTRSAgICAgICAgICAweEZBMDAwMDAwCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTM0OCwzNSArMzQ4LDM1IEBACiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0JTSVpFICAgICAgICAgICAgICAxMDI0ICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NCU0laRSAgICAgICAgICAgICAgMTAyNCAgICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCiAjZWxzZQotIyAgZGVmaW5lIENGR19DQlNJWkUgICAgICAgICAgICAgIDI1NiAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFICAgICAgICAgICAgICAyNTYgICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KICNlbmRpZgogCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFICAgICAgICAoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgICAgICAgIChDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCiAKLSNkZWZpbmUgQ0ZHX01BWEFSR1MgICAgICAgOCAgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTICAgICAgIDggICAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCiAKLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFICAgICAgQ0ZHX0NCU0laRSAgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRSAgICAgIENPTkZJR19TWVNfQ0JTSVpFICAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jaWZkZWYgQ0ZHX0xTRFJBTQotICAjZGVmaW5lIENGR19NRU1URVNUX1NUQVJUIDB4MDQwMDAwMDAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICAqLwotICAjZGVmaW5lIENGR19NRU1URVNUX0VORCAgIDB4MDYwMDAwMDAgICAvKiA2NC05NiBNQiBpbiBTRFJBTSAqLworI2lmZGVmIENPTkZJR19TWVNfTFNEUkFNCisgICNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUIDB4MDQwMDAwMDAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICAqLworICAjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgICAweDA2MDAwMDAwICAgLyogNjQtOTYgTUIgaW4gU0RSQU0gKi8KICNlbHNlCi0gICNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgMHgwMDAwMDAwMCAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICovCi0gICNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5EICAgMHgwMjAwMDAwMCAgIC8qIDAtMzIgTUIgaW4gU0RSQU0gKi8KLSNlbmRpZiAvKiBDRkdfTFNEUkFNICovCisgICNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUIDB4MDAwMDAwMDAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICAqLworICAjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgICAweDAyMDAwMDAwICAgLyogMC0zMiBNQiBpbiBTRFJBTSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTFNEUkFNICovCiAKICNkZWZpbmUJQ09ORklHX0NMT0NLU19JTl9NSFoJMSAgICAgIC8qIGNsb2NrcyBwYXNzc2VkIHRvIExpbnV4IGluIE1IeiAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIgICAgIDB4MDAxMDAwMDAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfVEZUUF9MT0FEQUREUiAweDAwMTAwMDAwICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgZm9yIG5ldHdvcmsgZmlsZSBkb3dubG9hZHMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIgICAgIDB4MDAxMDAwMDAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1RGVFBfTE9BREFERFIgMHgwMDEwMDAwMCAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzIGZvciBuZXR3b3JrIGZpbGUgZG93bmxvYWRzICovCiAKLSNkZWZpbmUgQ0ZHX0haICAgICAgICAgICAgMTAwMCAgICAgICAgIC8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWiAgICAgICAgICAgIDEwMDAgICAgICAgICAvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMzg0LDExOSArMzg0LDExOSBAQAogICogWW91IHNob3VsZCBrbm93IHdoYXQgeW91IGFyZSBkb2luZyBpZiB5b3UgbWFrZSBjaGFuZ2VzIGhlcmUuCiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRSAgICBDRkdfRkxBU0gwX0JBU0UKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UgICAgQ0ZHX1NEUkFNMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRSAgICBDT05GSUdfU1lTX1NEUkFNMF9CQVNFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICovCiAKLSNpZiBkZWZpbmVkKENGR19TQkNfQk9PVF9MT1cpCi0jICBkZWZpbmUgIENGR19TQkNfSFJDV19CT09UX0ZMQUdTICAoSFJDV19DSVAgfCBIUkNXX0JNUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfU0JDX0JPT1RfTE9XKQorIyAgZGVmaW5lICBDT05GSUdfU1lTX1NCQ19IUkNXX0JPT1RfRkxBR1MgIChIUkNXX0NJUCB8IEhSQ1dfQk1TKQogI2Vsc2UKLSMgIGRlZmluZSAgQ0ZHX1NCQ19IUkNXX0JPT1RfRkxBR1MgICgweDAwMDAwMDAwKQotI2VuZGlmIC8qIGRlZmluZWQoQ0ZHX1NCQ19CT09UX0xPVykgKi8KKyMgIGRlZmluZSAgQ09ORklHX1NZU19TQkNfSFJDV19CT09UX0ZMQUdTICAoMHgwMDAwMDAwMCkKKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19TWVNfU0JDX0JPT1RfTE9XKSAqLwogCi0jaWZkZWYgQ0ZHX0VQODI2MF9IMgotLyogZ2V0IHRoZSBIUkNXIElTQiBmaWVsZCBmcm9tIENGR19ERUZBVUxUX0lNTVIgKi8KLSNkZWZpbmUgQ0ZHX1NCQ19IUkNXX0lNTVIgKCAoKENGR19ERUZBVUxUX0lNTVIgJiAweDEwMDAwMDAwKSA+PiAxMCkgfFwKLQkJCSAgICAoKENGR19ERUZBVUxUX0lNTVIgJiAweDAxMDAwMDAwKSA+PiA3KSAgfFwKLQkJCSAgICAoKENGR19ERUZBVUxUX0lNTVIgJiAweDAwMTAwMDAwKSA+PiA0KSApCisjaWZkZWYgQ09ORklHX1NZU19FUDgyNjBfSDIKKy8qIGdldCB0aGUgSFJDVyBJU0IgZmllbGQgZnJvbSBDT05GSUdfU1lTX0RFRkFVTFRfSU1NUiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NCQ19IUkNXX0lNTVIgKCAoKENPTkZJR19TWVNfREVGQVVMVF9JTU1SICYgMHgxMDAwMDAwMCkgPj4gMTApIHxcCisJCQkgICAgKChDT05GSUdfU1lTX0RFRkFVTFRfSU1NUiAmIDB4MDEwMDAwMDApID4+IDcpICB8XAorCQkJICAgICgoQ09ORklHX1NZU19ERUZBVUxUX0lNTVIgJiAweDAwMTAwMDAwKSA+PiA0KSApCiAKLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSIChIUkNXX0VCTSAgICAgICAgICAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSIChIUkNXX0VCTSAgICAgICAgICAgICAgICB8XAogCQkJIEhSQ1dfTDJDUEMwMSAgICAgICAgICAgIHxcCi0JCQkgQ0ZHX1NCQ19IUkNXX0lNTVIgICAgICAgfFwKKwkJCSBDT05GSUdfU1lTX1NCQ19IUkNXX0lNTVIgICAgICAgfFwKIAkJCSBIUkNXX0FQUEMxMCAgICAgICAgICAgICB8XAogCQkJIEhSQ1dfQ1MxMFBDMDEgICAgICAgICAgIHxcCi0JCQkgQ0ZHX1NCQ19NT0RDS19ICSB8XAotCQkJIENGR19TQkNfSFJDV19CT09UX0ZMQUdTKQorCQkJIENPTkZJR19TWVNfU0JDX01PRENLX0gJIHxcCisJCQkgQ09ORklHX1NZU19TQkNfSFJDV19CT09UX0ZMQUdTKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSIDB4MTA0MDAyNDUKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUiAweDEwNDAwMjQ1CiAjZW5kaWYKIAogLyogbm8gc2xhdmVzICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMSAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMiAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMyAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNCAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNSAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNiAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNyAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMyAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1IDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNiAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgICAgIENGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgICAgIDB4NDAwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgICAgLyogYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVCAgICAgIENGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAgIENPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAgICAgICAgMHg0MDAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgICAgLyogYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQgICAgICBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAotICogTm90ZSBhbHNvIHRoYXQgdGhlIGxvZ2ljIHRoYXQgc2V0cyBDRkdfUkFNQk9PVCBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQuCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogTm90ZSBhbHNvIHRoYXQgdGhlIGxvZ2ljIHRoYXQgc2V0cyBDT05GSUdfU1lTX1JBTUJPT1QgaXMgcGxhdGZvcm0gZGVwZW5kZW50LgogICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgICAgICAgVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgICAgICAgIFRFWFRfQkFTRQogCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOICAgICAgKDI1NiA8PCAxMCkgICAgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4gICAgICAgKDEyOCA8PCAxMCkgICAgIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTiAgICAgICgyNTYgPDwgMTApICAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTiAgICAgICAoMTI4IDw8IDEwKSAgICAgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaICAgICAgICAoOCA8PCAyMCkgICAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWiAgICAgICAgKDggPDwgMjApICAgICAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MgICAxICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAgKi8KLSNpZmRlZiBDRkdfRVA4MjYwX0gyCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVCAgICAxMjggICAgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICAgMSAgICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgICovCisjaWZkZWYgQ09ORklHX1NZU19FUDgyNjBfSDIKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICAxMjggICAgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICovCiAjZWxzZQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICAgNzEgICAgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgICAgNzEgICAgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICovCiAjZW5kaWYKIAotI2lmZGVmIENGR19FUDgyNjBfSDIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQgIDI0MDAwMCAgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVCAgNTAwICAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAgICovCisjaWZkZWYgQ09ORklHX1NZU19FUDgyNjBfSDIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICAyNDAwMDAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICA1MDAgICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgICAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUICA4MDAwICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQgIDEgICAgICAgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQgIDgwMDAgICAgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQgIDEgICAgICAgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAqLwogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjICBkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSCAgMQogCiAjICBpZmRlZiBDT05GSUdfRU5WX0lOX09XTl9TRUNUCi0jICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgKENGR19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQorIyAgICBkZWZpbmUgQ09ORklHX0VOVl9BRERSICAgICAgIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDB4NDAwMDApCiAjICAgIGRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRSAgMHg0MDAwMAogIyAgZWxzZQotIyAgICBkZWZpbmUgQ09ORklHX0VOVl9BRERSIChDRkdfRkxBU0hfQkFTRSArIENGR19NT05JVE9SX0xFTiAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQorIyAgICBkZWZpbmUgQ09ORklHX0VOVl9BRERSIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOIC0gQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjICAgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUgICAgICAgMHgxMDAwICAvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogIyAgICBkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUgIDB4MTAwMDAgLyogc2VlIFJFQURNRSAtIGVudiBzZWN0IHJlYWwgc2l6ZSAqLwogIyAgZW5kaWYgLyogQ09ORklHX0VOVl9JTl9PV05fU0VDVCAqLwogI2Vsc2UKICMgIGRlZmluZSBDT05GSUdfRU5WX0lTX0lOX05WUkFNICAxCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSICAgICAgICAgKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSICAgICAgICAgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRSAgICAgICAgIDB4MjAwCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRSAgICAgIDMyICAgICAgLyogRm9yIE1QQzgyNjAgQ1BVICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgICAgICAzMiAgICAgIC8qIEZvciBNUEM4MjYwIENQVSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVCAgICAgNSAgICAgLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVCAgICAgNSAgICAgLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC01MDksMzggKzUwOSwzOCBAQAogICoKICAqIEhJRDEgaGFzIG9ubHkgcmVhZC1vbmx5IGluZm9ybWF0aW9uIC0gbm90aGluZyB0byBzZXQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVCAgIChISUQwX0lDRSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQgICAoSElEMF9JQ0UgIHxcCiAJCQkgSElEMF9EQ0UgIHxcCiAJCQkgSElEMF9JQ0ZJIHxcCiAJCQkgSElEMF9EQ0kgIHxcCiAJCQkgSElEMF9JRkVNIHxcCiAJCQkgSElEMF9BQkUpCi0jaWZkZWYgQ0ZHX0xTRFJBTQorI2lmZGVmIENPTkZJR19TWVNfTFNEUkFNCiAvKiA4MjYwIGxvY2FsIGJ1cyBpcyBOT1QgY2FjaGVhYmxlICovCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMICAoLypISUQwX0lDRSAgfCovXAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwgICgvKkhJRDBfSUNFICB8Ki9cCiAJCQkgSElEMF9JRkVNIHxcCiAJCQkgSElEMF9BQkUgIHxcCiAJCQkgSElEMF9FTUNQKQotI2Vsc2UgLyogIUNGR19MU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwgIChISUQwX0lDRSAgfFwKKyNlbHNlIC8qICFDT05GSUdfU1lTX0xTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwgIChISUQwX0lDRSAgfFwKIAkJCSBISUQwX0lGRU0gfFwKIAkJCSBISUQwX0FCRSAgfFwKIAkJCSBISUQwX0VNQ1ApCi0jZW5kaWYgLyogQ0ZHX0xTRFJBTSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTFNEUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0hJRDIgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyICAgICAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNUiAtIFJlc2V0IE1vZGUgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUk1SICAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JNUiAgICAgICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LTI1CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0JDUiAgICAgICAgIChCQ1JfRUJNICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IgICAgICAgICAoQkNSX0VCTSAgIHxcCiAJCQkgQkNSX1BMRFAgIHxcCiAJCQkgQkNSX0VBViAgIHxcCiAJCQkgQkNSX05QUU0wKQpAQCAtNTQ5LDcgKzU0OSw3IEBACiAgKiBTSVVNQ1IgLSBTSVUgTW9kdWxlIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0lVTUNSICAgICAgKFNJVU1DUl9MMkNQQzAxIHxcCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSICAgICAgKFNJVU1DUl9MMkNQQzAxIHxcCiAJCQkgU0lVTUNSX0FQUEMxMCAgfFwKIAkJCSBTSVVNQ1JfQ1MxMFBDMDEpCiAKQEAgLTU1OSwyNSArNTU5LDI1IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCi0jaWZkZWYgQ0ZHX0VQODI2MF9IMgorI2lmZGVmIENPTkZJR19TWVNfRVA4MjYwX0gyCiAvKiBUQkQ6IEZpbmQgb3V0IHdoeSBzZXR0aW5nIHRoZSBCTVQgdG8gMHhmZiBjYXVzZXMgdGhlIEZDQyB0bwogICogZ2VuZXJhdGUgVFggYnVmZmVyIHVuZGVycnVuIGVycm9ycyBmb3IgbGFyZ2UgcGFja2V0cyB1bmRlcgogICogTGludXgKICAqLwotI2RlZmluZSBDRkdfU1lQQ1JfQk1UCTB4MDAwMDA2MDAKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUl9CTVQJMHgwMDAwMDYwMAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSX0JNVAlTWVBDUl9CTVQKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUl9CTVQJU1lQQ1JfQk1UCiAjZW5kaWYKIAotI2lmZGVmIENGR19MU0RSQU0KLSNkZWZpbmUgQ0ZHX1NZUENSICAgICAgIChTWVBDUl9TV1RDIHxcCi0JCQkgQ0ZHX1NZUENSX0JNVCAgfFwKKyNpZmRlZiBDT05GSUdfU1lTX0xTRFJBTQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSICAgICAgIChTWVBDUl9TV1RDIHxcCisJCQkgQ09ORklHX1NZU19TWVBDUl9CTVQgIHxcCiAJCQkgU1lQQ1JfUEJNRSB8XAogCQkJIFNZUENSX0xCTUUgfFwKIAkJCSBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IgICAgICAgKFNZUENSX1NXVEMgfFwKLQkJCSBDRkdfU1lQQ1JfQk1UICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSICAgICAgIChTWVBDUl9TV1RDIHxcCisJCQkgQ09ORklHX1NZU19TWVBDUl9CTVQgIHxcCiAJCQkgU1lQQ1JfUEJNRSB8XAogCQkJIFNZUENSX1NXUCkKICNlbmRpZgpAQCAtNTg4LDcgKzU4OCw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUMgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUMgfFwKIAkJCSBUTUNOVFNDX0FMUiB8XAogCQkJIFRNQ05UU0NfVENGIHxcCiAJCQkgVE1DTlRTQ19UQ0UpCkBAIC01OTksMzUgKzU5OSwzNSBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2lmZGVmIENGR19FUDgyNjBfSDIKLSNkZWZpbmUgQ0ZHX1BJU0NSICAgICAgIChQSVNDUl9QUyAgfFwKKyNpZmRlZiBDT05GSUdfU1lTX0VQODI2MF9IMgorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSICAgICAgIChQSVNDUl9QUyAgfFwKIAkJCSBQSVNDUl9QVEYgfFwKIAkJCSBQSVNDUl9QVEUpCiAjZWxzZQotI2RlZmluZSBDRkdfUElTQ1IJMAorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCTAKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIENvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDktOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jaWZkZWYgQ0ZHX0VQODI2MF9IMgotI2RlZmluZSBDRkdfU0NDUiAgICAgICAgKFNDQ1JfREZCUkcwMCkKKyNpZmRlZiBDT05GSUdfU1lTX0VQODI2MF9IMgorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IgICAgICAgIChTQ0NSX0RGQlJHMDApCiAjZWxzZQotI2RlZmluZSBDRkdfU0NDUiAgICAgICAgKFNDQ1JfREZCUkcwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSICAgICAgICAoU0NDUl9ERkJSRzAxKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAxMy03CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSICAgICAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1QVFBSIC0gTWVtb3J5IFJlZnJlc2ggVGltZXIgUHJlc2NhbGUgUmVnaXN0ZXIgICAgICAgICAgICAgICAxMC0zMgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19NUFRQUgkoMHgwQTAwICYgTVBUUFJfUFRQX01TSykKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkoMHgwQTAwICYgTVBUUFJfUFRQX01TSykKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC02NTksMTMgKzY1OSwxMyBAQAogLyogQmFuayAwIC0gRkxBU0gKICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0gICgoQ0ZHX0ZMQVNIMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNICAoKENPTkZJR19TWVNfRkxBU0gwX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9ERUNDX05PTkUgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNICAoTUVHX1RPX0FNKENGR19GTEFTSDBfU0laRSkgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTSAgKE1FR19UT19BTShDT05GSUdfU1lTX0ZMQVNIMF9TSVpFKSAgICAgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV84X0NMSyAgICAgICAgICAgICAgICAgfFwKQEAgLTY3NCw3MSArNjc0LDcxIEBACiAvKiBCYW5rIDEgLSBTRFJBTQogICogUFNEUkFNCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0gICgoQ0ZHX1NEUkFNMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU0wX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19TRFJBTV9QICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNICAoTUVHX1RPX0FNKENGR19TRFJBTTBfU0laRSkgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTSAgKE1FR19UT19BTShDT05GSUdfU1lTX1NEUkFNMF9TSVpFKSAgICAgfFwKIAkJCSBPUnhTX0JQRF80ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTFfQTYgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX05VTVJfMTIpCiAKLSNpZmRlZiBDRkdfRVA4MjYwX0gyCi0jZGVmaW5lIENGR19QU0RNUiAgICAgICAweEMzNEUyNDZFCisjaWZkZWYgQ09ORklHX1NZU19FUDgyNjBfSDIKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUiAgICAgICAweEMzNEUyNDZFCiAjZWxzZQotI2RlZmluZSBDRkdfUFNETVIgICAgICAgMHhDMzRFMjQ2MgorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SICAgICAgIDB4QzM0RTI0NjIKICNlbmRpZgogCi0jZGVmaW5lIENGR19QU1JUCTB4NjQKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUCTB4NjQKIAotI2lmZGVmIENGR19MU0RSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0xTRFJBTQogLyogQmFuayAyIC0gU0RSQU0KICAqIExTRFJBTQogICovCiAKLSAgI2RlZmluZSBDRkdfQlIyX1BSRUxJTSAgKChDRkdfU0RSQU0xX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorICAjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTSAgKChDT05GSUdfU1lTX1NEUkFNMV9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSAgIEJSeF9QU18zMiAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJICAgQlJ4X01TX1NEUkFNX0wgICAgICAgICAgICAgICAgIHxcCiAJCQkgICBCUnhfVikKIAotICAjZGVmaW5lIENGR19PUjJfUFJFTElNICAoTUVHX1RPX0FNKENGR19TRFJBTTFfU0laRSkgICAgIHxcCisgICNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNICAoTUVHX1RPX0FNKENPTkZJR19TWVNfU0RSQU0xX1NJWkUpICAgICB8XAogCQkJICAgT1J4U19CUERfNCAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgICBPUnhTX1JPV1NUX1BCSTBfQTkgICAgICAgICAgICAgfFwKIAkJCSAgIE9SeFNfTlVNUl8xMikKIAotICAjZGVmaW5lIENGR19MU0RNUiAgICAgIDB4NDE2QTI1NjIKLSAgI2RlZmluZSBDRkdfTFNSVAkweDY0CisgICNkZWZpbmUgQ09ORklHX1NZU19MU0RNUiAgICAgIDB4NDE2QTI1NjIKKyAgI2RlZmluZSBDT05GSUdfU1lTX0xTUlQJMHg2NAogI2Vsc2UKLSAgI2RlZmluZSBDRkdfTFNSVAkweDAKLSNlbmRpZiAvKiBDRkdfTFNEUkFNICovCisgICNkZWZpbmUgQ09ORklHX1NZU19MU1JUCTB4MAorI2VuZGlmIC8qIENPTkZJR19TWVNfTFNEUkFNICovCiAKIC8qIEJhbmsgNCAtIE9uIGJvYXJkIHJlZ2lzdGVycwogICogTlZSVEMgYW5kIEJDU1IKICAqLwotI2RlZmluZSBDRkdfQlI0X1BSRUxJTSAgICgoQ0ZHX1JFR1NfQkFTRSAmIEJSeF9CQV9NU0spICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0gICAoKENPTkZJR19TWVNfUkVHU19CQVNFICYgQlJ4X0JBX01TSykgIHxcCiAJCQkgICBCUnhfUFNfOCAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgICBCUnhfTVNfR1BDTV9QICAgICAgICAgICAgICAgIHxcCiAJCQkgICBCUnhfVikKIC8qCi0jZGVmaW5lIENGR19PUjRfUFJFTElNICAgIChPUnhHX0FNX01TSyAgICAgICAgICAgICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNICAgIChPUnhHX0FNX01TSyAgICAgICAgICAgICAgICAgfFwKIAkJCSAgIE9SeEdfQ1NOVCAgICAgICAgICAgICAgICAgICB8XAogCQkJICAgT1J4R19BQ1NfRElWMSAgICAgICAgICAgICAgIHxcCiAJCQkgICBPUnhHX1NDWV8xMF9DTEsgICAgICAgICAgICAgIHxcCiAJCQkgICBPUnhHX1RSTFgpCiAqLwotI2RlZmluZSBDRkdfT1I0X1BSRUxJTSAweGZmZjAwODU0CisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTSAweGZmZjAwODU0CiAKICNpZmRlZiBfTk9UX1VTRURfU0lOQ0VfTk9UX1dPUktJTkdfCiAvKiBCYW5rIDggLSBPbiBib2FyZCByZWdpc3RlcnMKICAqIFBDTUNJQSAoY3VycmVudGx5IG5vdCB3b3JraW5nISkKICAqLwotI2RlZmluZSBDRkdfQlI4X1BSRUxJTSAgICgoQ0ZHX1JFR1NfQkFTRSAmIEJSeF9CQV9NU0spICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSOF9QUkVMSU0gICAoKENPTkZJR19TWVNfUkVHU19CQVNFICYgQlJ4X0JBX01TSykgIHxcCiAJCQkgICBCUnhfUFNfMTYgICAgICAgICAgICAgICAgICAgICB8XAogCQkJICAgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICB8XAogCQkJICAgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SOF9QUkVMSU0gICAgKE9SeEdfQU1fTVNLICAgICAgICAgICAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SOF9QUkVMSU0gICAgKE9SeEdfQU1fTVNLICAgICAgICAgICAgICAgICB8XAogCQkJICAgT1J4R19DU05UICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgICBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgfFwKIAkJCSAgIE9SeEdfU0VUQSAgICAgICAgICAgICAgICAgICB8XApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2VwODJ4eG0uaCBiL2luY2x1ZGUvY29uZmlncy9lcDgyeHhtLmgKaW5kZXggNjBkZjEyZi4uMjM5ZmY2NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2VwODJ4eG0uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZXA4Mnh4bS5oCkBAIC00OCw3ICs0OCw3IEBACiAjdW5kZWYJQ09ORklHX0NPTlNfTk9ORQkJLyogSXQncyBub3Qgb24gZXh0ZXJuYWwgVUFSVCAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCS8qIFNNQzEgaXMgdXNlZCBmb3IgY29uc29sZSAgKi8KIAotI2RlZmluZSBDRkdfQkNTUgkJMHhGQTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JDU1IJCTB4RkEwMDAwMDAKIAogLyoKICAqIFNlbGVjdCBldGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC03MCwxMyArNzAsMTMgQEAKICNkZWZpbmUgQ09ORklHX0VUSEVSX09OX0ZDQzIKICNkZWZpbmUgQ09ORklHX0VUSEVSX09OX0ZDQzMKIAotI2RlZmluZSBDRkdfQ01YRkNSX01BU0szCShDTVhGQ1JfRkMzIHwgQ01YRkNSX1JGM0NTX01TSyB8IENNWEZDUl9URjNDU19NU0spCi0jZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUzCShDTVhGQ1JfUkYzQ1NfQ0xLMTUgfCBDTVhGQ1JfVEYzQ1NfQ0xLMTYpCi0jZGVmaW5lIENGR19DTVhGQ1JfTUFTSzIJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRTIJKENNWEZDUl9SRjJDU19DTEsxMyB8IENNWEZDUl9URjJDU19DTEsxNCkKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSzMJKENNWEZDUl9GQzMgfCBDTVhGQ1JfUkYzQ1NfTVNLIHwgQ01YRkNSX1RGM0NTX01TSykKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUzCShDTVhGQ1JfUkYzQ1NfQ0xLMTUgfCBDTVhGQ1JfVEYzQ1NfQ0xLMTYpCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0syCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFMgkoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQogCi0jZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKKyNkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCiAKICNkZWZpbmUgQ09ORklHX01JSQkJCS8qIE1JSSBQSFkgbWFuYWdlbWVudCAgICAgICAgKi8KICNkZWZpbmUgQ09ORklHX0JJVEJBTkdNSUkJCS8qIEJpdC1iYW5nZWQgTURJTyBpbnRlcmZhY2UgKi8KQEAgLTg1LDE1ICs4NSwxNSBAQAogICogR1BJTyBwaW5zIHVzZWQgZm9yIGJpdC1iYW5nZWQgTUlJIGNvbW11bmljYXRpb25zCiAgKi8KICNkZWZpbmUgTURJT19QT1JUCQkwCS8qIE5vdCB1c2VkIC0gaW1wbGVtZW50ZWQgaW4gQkNTUiAqLwotI2RlZmluZSBNRElPX0FDVElWRQkJKCoodnVfY2hhciAqKShDRkdfQkNTUiArIDgpICY9IDB4RkIpCi0jZGVmaW5lIE1ESU9fVFJJU1RBVEUJCSgqKHZ1X2NoYXIgKikoQ0ZHX0JDU1IgKyA4KSB8PSAweDA0KQotI2RlZmluZSBNRElPX1JFQUQJCSgqKHZ1X2NoYXIgKikoQ0ZHX0JDU1IgKyA4KSAmIDEpCisjZGVmaW5lIE1ESU9fQUNUSVZFCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfQkNTUiArIDgpICY9IDB4RkIpCisjZGVmaW5lIE1ESU9fVFJJU1RBVEUJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19CQ1NSICsgOCkgfD0gMHgwNCkKKyNkZWZpbmUgTURJT19SRUFECQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfQkNTUiArIDgpICYgMSkKIAotI2RlZmluZSBNRElPKGJpdCkJCWlmKGJpdCkgKih2dV9jaGFyICopKENGR19CQ1NSICsgOCkgfD0gMHgwMTsgXAotCQkJCWVsc2UJKih2dV9jaGFyICopKENGR19CQ1NSICsgOCkgJj0gMHhGRQorI2RlZmluZSBNRElPKGJpdCkJCWlmKGJpdCkgKih2dV9jaGFyICopKENPTkZJR19TWVNfQkNTUiArIDgpIHw9IDB4MDE7IFwKKwkJCQllbHNlCSoodnVfY2hhciAqKShDT05GSUdfU1lTX0JDU1IgKyA4KSAmPSAweEZFCiAKLSNkZWZpbmUgTURDKGJpdCkJCWlmKGJpdCkgKih2dV9jaGFyICopKENGR19CQ1NSICsgOCkgfD0gMHgwMjsgXAotCQkJCWVsc2UJKih2dV9jaGFyICopKENGR19CQ1NSICsgOCkgJj0gMHhGRAorI2RlZmluZSBNREMoYml0KQkJaWYoYml0KSAqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19CQ1NSICsgOCkgfD0gMHgwMjsgXAorCQkJCWVsc2UJKih2dV9jaGFyICopKENPTkZJR19TWVNfQkNTUiArIDgpICY9IDB4RkQKIAogI2RlZmluZSBNSUlERUxBWQkJdWRlbGF5KDEpCiAKQEAgLTEwNCw3ICsxMDQsNyBAQAogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAKLSNkZWZpbmUgQ0ZHX1ZYV09SS1NfTUFDX1BUUiAweDQzMDAgLyogUGFzcyBFdGhlcm5ldCBNQUMgdG8gVnhXb3JrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1ZYV09SS1NfTUFDX1BUUiAweDQzMDAgLyogUGFzcyBFdGhlcm5ldCBNQUMgdG8gVnhXb3JrcyAqLwogCiAKIC8qCkBAIC0xNjIsMjcgKzE2MiwyNyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiZXA4Mnh4bT0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiZXA4Mnh4bT0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudApAQCAtMjAwLDI3ICsyMDAsMjcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZDMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3IgaW4gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3IgaW4gZmxpbmZvICovCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogI2VuZGlmIC8qIENPTkZJR19FTlZfSVNfSU5fRkxBU0ggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogRUVQUk9NIENvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9TSVpFCTB4MTAwMAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTQKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDU0CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAJICAgIC8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycyAqLwpAQCAtMjI5LDIyICsyMjksMjIgQEAKIAogLyogUlRDIENvbmZpZ3VyYXRpb24gKi8KICNkZWZpbmUgQ09ORklHX1JUQ19NNDFUMTEJMQkvKiB1c2VzIGEgTTQxVDgxICovCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CiAjZGVmaW5lIENPTkZJR19NNDFUMTFfQkFTRV9ZRUFSCTE5MDAKIAogLyogSTJDIFNZU01PTiAoTE03NSkgKi8KICNkZWZpbmUgQ09ORklHX0RUVF9MTTc1CQkxCiAjZGVmaW5lIENPTkZJR19EVFRfU0VOU09SUwl7MH0KLSNkZWZpbmUgQ0ZHX0RUVF9NQVhfVEVNUAk3MAotI2RlZmluZSBDRkdfRFRUX0xPV19URU1QCS0zMAotI2RlZmluZQlDRkdfRFRUX0hZU1RFUkVTSVMJMworI2RlZmluZSBDT05GSUdfU1lTX0RUVF9NQVhfVEVNUAk3MAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9MT1dfVEVNUAktMzAKKyNkZWZpbmUJQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUwkzCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5WUkFNIENvbmZpZ3VyYXRpb24KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4RkEwODAwMDAKLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJCSgxMjgqMTAyNCktMTYKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhGQTA4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCSgxMjgqMTAyNCktMTYKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTgsOSArMjU4LDkgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9CT09UREVMQVkJMAogCiAvKiBQQ0kgTWVtb3J5IG1hcCAoaWYgZGlmZmVyZW50IGZyb20gZGVmYXVsdCBtYXAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TTFZfTUVNX0xPQ0FMCUNGR19TRFJBTV9CQVNFCQkvKiBMb2NhbCBiYXNlICovCi0jZGVmaW5lIENGR19QQ0lfU0xWX01FTV9CVVMJCTB4MDAwMDAwMDAJLyogUENJIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BJQ01SMF9NQVNLX0FUVFJJQgkoUElDTVJfTUFTS181MTJNQiB8IFBJQ01SX0VOQUJMRSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9MT0NBTAlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCS8qIExvY2FsIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9CVVMJCTB4MDAwMDAwMDAJLyogUENJIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QSUNNUjBfTUFTS19BVFRSSUIJKFBJQ01SX01BU0tfNTEyTUIgfCBQSUNNUl9FTkFCTEUgfCBcCiAJCQkJIFBJQ01SX1BSRUZFVENIX0VOKQogCiAvKgpAQCAtMjc2LDExICsyNzYsMTEgQEAKICAqIGluIHRoZSBicmlkZ2UuCiAgKi8KIAotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNX0xPQ0FMCTB4ODAwMDAwMDAgICAgICAgICAgLyogTG9jYWwgYmFzZSAqLwotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNX0JVUwkweDgwMDAwMDAwICAgICAgICAgIC8qIFBDSSBiYXNlICAgKi8KLSNkZWZpbmUJQ0ZHX0NQVV9QQ0lfTUVNX1NUQVJUCVBDSV9NU1RSX01FTV9MT0NBTAotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNX1NJWkUJMHgyMDAwMDAwMCAgICAgICAgICAvKiA1MTJNQiAqLwotI2RlZmluZSBDRkdfUE9DTVIwX01BU0tfQVRUUklCCShQT0NNUl9NQVNLXzUxMk1CIHwgUE9DTVJfRU5BQkxFIHwgUE9DTVJfUFJFRkVUQ0hfRU4pCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfTUVNX0xPQ0FMCTB4ODAwMDAwMDAgICAgICAgICAgLyogTG9jYWwgYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSX01FTV9CVVMJMHg4MDAwMDAwMCAgICAgICAgICAvKiBQQ0kgYmFzZSAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ1BVX1BDSV9NRU1fU1RBUlQJUENJX01TVFJfTUVNX0xPQ0FMCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfTUVNX1NJWkUJMHgyMDAwMDAwMCAgICAgICAgICAvKiA1MTJNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BPQ01SMF9NQVNLX0FUVFJJQgkoUE9DTVJfTUFTS181MTJNQiB8IFBPQ01SX0VOQUJMRSB8IFBPQ01SX1BSRUZFVENIX0VOKQogCiAvKgogICogTWFzdGVyIHdpbmRvdyB0aGF0IGFsbG93cyB0aGUgQ1BVIHRvIGFjY2VzcyBQQ0kgTWVtb3J5IChub24tcHJlZmV0Y2gpLgpAQCAtMjg4LDExICsyODgsMTEgQEAKICAqIGluIHRoZSBicmlkZ2UuCiAgKi8KIAotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNSU9fTE9DQUwgICAgMHhBMDAwMDAwMCAgICAgICAgICAvKiBMb2NhbCBiYXNlICovCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9NRU1JT19CVVMgICAgICAweEEwMDAwMDAwICAgICAgICAgIC8qIFBDSSBiYXNlICAgKi8KLSNkZWZpbmUgQ0ZHX0NQVV9QQ0lfTUVNSU9fU1RBUlQgICAgIFBDSV9NU1RSX01FTUlPX0xPQ0FMCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9NRU1JT19TSVpFICAgICAweDIwMDAwMDAwICAgICAgICAgIC8qIDUxMk1CICovCi0jZGVmaW5lIENGR19QT0NNUjFfTUFTS19BVFRSSUIgICAgICAoUE9DTVJfTUFTS181MTJNQiB8IFBPQ01SX0VOQUJMRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1JT19MT0NBTCAgICAweEEwMDAwMDAwICAgICAgICAgIC8qIExvY2FsIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1JT19CVVMgICAgICAweEEwMDAwMDAwICAgICAgICAgIC8qIFBDSSBiYXNlICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVfUENJX01FTUlPX1NUQVJUICAgICBQQ0lfTVNUUl9NRU1JT19MT0NBTAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX1NJWkUgICAgIDB4MjAwMDAwMDAgICAgICAgICAgLyogNTEyTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QT0NNUjFfTUFTS19BVFRSSUIgICAgICAoUE9DTVJfTUFTS181MTJNQiB8IFBPQ01SX0VOQUJMRSkKIAogLyoKICAqIE1hc3RlciB3aW5kb3cgdGhhdCBhbGxvd3MgdGhlIENQVSB0byBhY2Nlc3MgUENJIElPIHNwYWNlLgpAQCAtMzAwLDEwNSArMzAwLDEwNSBAQAogICogaW4gdGhlIGJyaWRnZS4KICAqLwogCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9JT19MT0NBTCAgICAgICAweEY2MDAwMDAwICAgICAgICAgIC8qIExvY2FsIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSX0lPX0JVUyAgICAgICAgIDB4MDAwMDAwMDAgICAgICAgICAgLyogUENJIGJhc2UgICAqLwotI2RlZmluZSBDRkdfQ1BVX1BDSV9JT19TVEFSVCAgICAgICAgUENJX01TVFJfSU9fTE9DQUwKLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSX0lPX1NJWkUgICAgICAgIDB4MDIwMDAwMDAgICAgICAgICAgLyogNjRNQiAqLwotI2RlZmluZSBDRkdfUE9DTVIyX01BU0tfQVRUUklCICAgICAgKFBPQ01SX01BU0tfMzJNQiB8IFBPQ01SX0VOQUJMRSB8IFBPQ01SX1BDSV9JTykKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9JT19MT0NBTCAgICAgICAweEY2MDAwMDAwICAgICAgICAgIC8qIExvY2FsIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9JT19CVVMgICAgICAgICAweDAwMDAwMDAwICAgICAgICAgIC8qIFBDSSBiYXNlICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVfUENJX0lPX1NUQVJUICAgICAgICBQQ0lfTVNUUl9JT19MT0NBTAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSX0lPX1NJWkUgICAgICAgIDB4MDIwMDAwMDAgICAgICAgICAgLyogNjRNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BPQ01SMl9NQVNLX0FUVFJJQiAgICAgIChQT0NNUl9NQVNLXzMyTUIgfCBQT0NNUl9FTkFCTEUgfCBQT0NNUl9QQ0lfSU8pCiAKIAogLyogUENJQlIwIC0gZm9yIFBDSSBJTyovCi0jZGVmaW5lIENGR19QQ0lfTVNUUjBfTE9DQUwJCUNGR19QQ0lfTVNUUl9JT19MT0NBTAkJLyogTG9jYWwgYmFzZSAqLwotI2RlZmluZSBDRkdfUENJTVNLMF9NQVNLCQl+KENGR19QQ0lfTVNUUl9JT19TSVpFIC0gMVUpCS8qIFNpemUgb2Ygd2luZG93ICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFIwX0xPQ0FMCQlDT05GSUdfU1lTX1BDSV9NU1RSX0lPX0xPQ0FMCQkvKiBMb2NhbCBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJTVNLMF9NQVNLCQl+KENPTkZJR19TWVNfUENJX01TVFJfSU9fU0laRSAtIDFVKQkvKiBTaXplIG9mIHdpbmRvdyAqLwogLyogUENJQlIxIC0gcHJlZmV0Y2ggYW5kIG5vbi1wcmVmZXRjaCByZWdpb25zIGpvaW5lZCB0b2dldGhlciAqLwotI2RlZmluZSBDRkdfUENJX01TVFIxX0xPQ0FMCQlDRkdfUENJX01TVFJfTUVNX0xPQ0FMCi0jZGVmaW5lIENGR19QQ0lNU0sxX01BU0sJCX4oQ0ZHX1BDSV9NU1RSX01FTV9TSVpFICsgQ0ZHX1BDSV9NU1RSX01FTUlPX1NJWkUgLSAxVSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUjFfTE9DQUwJCUNPTkZJR19TWVNfUENJX01TVFJfTUVNX0xPQ0FMCisjZGVmaW5lIENPTkZJR19TWVNfUENJTVNLMV9NQVNLCQl+KENPTkZJR19TWVNfUENJX01TVFJfTUVNX1NJWkUgKyBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX1NJWkUgLSAxVSkKIAogCi0jZGVmaW5lCUNGR19ESVJFQ1RfRkxBU0hfVEZUUAorI2RlZmluZQlDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9URlRQCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfSkZGUzIpCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LCTAKLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUwlDRkdfTUFYX0ZMQVNIX0JBTktTCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9TRUNUT1IgIDAKLSNkZWZpbmUgQ0ZHX0pGRlMyX0xBU1RfU0VDVE9SICAgNjIKLSNkZWZpbmUgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCi0jZGVmaW5lIENGR19KRkZTX0NVU1RPTV9QQVJUCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOSwkwCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfTlVNX0JBTktTCUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfU0VDVE9SICAwCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfTEFTVF9TRUNUT1IgICA2MgorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjZGVmaW5lIENPTkZJR19TWVNfSkZGU19DVVNUT01fUEFSVAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfSTJDKQogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogVG8gZW5hYmxlIEkyQyBzdXBwb3J0CSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQJCQkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCS8qIEkyQyBzbGF2ZSBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCS8qIEkyQyBzbGF2ZSBhZGRyZXNzCQkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDI1NktCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgMjU2S0IgZm9yIE1vbml0b3IgKi8KIAotI2RlZmluZSBDRkdfREVGQVVMVF9JTU1SCTB4MDAwMTAwMDAKLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX0lNTVIJMHgwMDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MjAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAKIC8qIEhhcmQgcmVzZXQgY29uZmlndXJhdGlvbiB3b3JkICovCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJMCAvKjB4MUM4MDA2NDEqLyAgLyogTm90IHVzZWQgLSBwcm92aWRlZCBieSBDUExEICovCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJCTAgLyoweDFDODAwNjQxKi8gIC8qIE5vdCB1c2VkIC0gcHJvdmlkZWQgYnkgQ1BMRCAqLwogLyogTm8gc2xhdmVzICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNAkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3CQkwCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdCAgICAgICAgICAgICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg0MDk2IDw8IDEwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDQwOTYgPDwgMTApCS8qIFJlc2VydmUgNCBNQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogCi0jZGVmaW5lIENGR19ISUQyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkJMAogCi0jZGVmaW5lIENGR19TSVVNQ1IJCTB4MDI2MTAwMDAKLSNkZWZpbmUgQ0ZHX1NZUENSCQkweEZGRkYwNjg5Ci0jZGVmaW5lIENGR19CQ1IJCQkweDgwODBFMDAwCi0jZGVmaW5lIENGR19TQ0NSCQkweDAwMDAwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCQkweDAyNjEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJCTB4RkZGRjA2ODkKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IJCQkweDgwODBFMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkJMHgwMDAwMDAwMQogCi0jZGVmaW5lIENGR19STVIJCQkwCi0jZGVmaW5lIENGR19UTUNOVFNDCQkweDAwMDAwMEMzCi0jZGVmaW5lIENGR19QSVNDUgkJMHgwMDAwMDA4MwotI2RlZmluZSBDRkdfUkNDUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX1JNUgkJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDCQkweDAwMDAwMEMzCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJCTB4MDAwMDAwODMKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSCQkwCiAKLSNkZWZpbmUgQ0ZHX01QVFBSCQkweDBBMDAKLSNkZWZpbmUgQ0ZHX1BTRE1SCQkweEM0MzIyNDZFCi0jZGVmaW5lIENGR19QU1JUCQkweDMyCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJCTB4MEEwMAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCQkweEM0MzIyNDZFCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkJMHgzMgogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CUgkJKENGR19TRFJBTV9CQVNFIHwgMHgwMDAwMDA0MSkKLSNkZWZpbmUgQ0ZHX1NEUkFNX09SCQkweEYwMDAyOTAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgMHgwMDAwMDA0MSkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9PUgkJMHhGMDAwMjkwMAogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoQ0ZHX0ZMQVNIX0JBU0UgfCAweDAwMDAxODAxKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhGQzAwMDg4MgotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkJKENGR19CQ1NSIHwgMHgwMDAwMTAwMSkKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JCTB4RkZGMDAwNTAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgMHgwMDAwMTgwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweEZDMDAwODgyCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkJKENPTkZJR19TWVNfQkNTUiB8IDB4MDAwMDEwMDEpCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkJMHhGRkYwMDA1MAogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9ldmI0NTEwLmggYi9pbmNsdWRlL2NvbmZpZ3MvZXZiNDUxMC5oCmluZGV4IDYzY2EyYTUuLmNiYWFlNjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ldmI0NTEwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2V2YjQ1MTAuaApAQCAtNTEsOCArNTEsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtMTA4LDI5ICsxMDgsMjkgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJldmI0NTEwICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJldmI0NTEwICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX1RBRyAgICAgICAgICAgICAgICAgICAgICAvKiBhbGxvdyBwYXNzaW5nIG9mIGNvbW1hbmQgbGluZSBhcmdzIHRvIGxpbnV4ICovCiAjZGVmaW5lIENPTkZJR19TRVRVUF9NRU1PUllfVEFHUwogI2RlZmluZSBDT05GSUdfSU5JVFJEX1RBRwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDA3ODAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDc4MDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19TWVNfQ0xLX0ZSRVEJNTAwMDAwMDAJLyogQ1BVIGZyZXE6IDUwIE1IeiAqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIEtIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NZU19DTEtfRlJFUQk1MDAwMDAwMAkvKiBDUFUgZnJlcTogNTAgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIEtIeiAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xNTYsMjUgKzE1NiwyNSBAQAogI2RlZmluZSBQSFlTX0ZMQVNIXzIJCTB4MDIwMDAwMDAgLyogRmxhc2ggQmFuayAjMiAqLwogI2RlZmluZSBQSFlTX0ZMQVNIXzJfU0laRQkweDAwMDgwMDAwIC8qIDUxMktCIChvbmUgY2hpcCwgOGJpdCBhY2Nlc3MpICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJUEhZU19GTEFTSF8xX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQlQSFlTX0ZMQVNIXzFfU0laRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkzNQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01BSU5fU0VDVF9TSVpFCTB4MDAwMTAwMDAgIC8qIG1haW4gc2l6ZSBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkzNQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUlOX1NFQ1RfU0laRQkweDAwMDEwMDAwICAvKiBtYWluIHNpemUgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDQqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoNCpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogLyogZW52aXJvbm1lbnQgc2V0dGluZ3MgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI3VuZGVmIENPTkZJR19FTlZfSVNfTk9XSEVSRQogCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgyMDAwMCkgLyogZW52aXJvbm1lbnQgc3RhcnQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDIwMDAwKSAvKiBlbnZpcm9ubWVudCBzdGFydCBhZGRyZXNzICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAJICAgLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAJICAgLyogbWF4IHNpemUgZm9yIGVudmlyb25tZW50ICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9mYXZyLTMyLWV6a2l0LmggYi9pbmNsdWRlL2NvbmZpZ3MvZmF2ci0zMi1lemtpdC5oCmluZGV4IGU0NDVhMTMuLjNjZWY0MTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9mYXZyLTMyLWV6a2l0LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2ZhdnItMzItZXpraXQuaApAQCAtMzUsNDAgKzM1LDQwIEBACiAgKiBUaW1lciBjbG9jayBmcmVxdWVuY3kuIFdlJ3JlIHVzaW5nIHRoZSBDUFUtaW50ZXJuYWwgQ09VTlQgcmVnaXN0ZXIKICAqIGZvciB0aGlzLCBzbyB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIENQVSBjb3JlIGNsb2NrIGZyZXF1ZW5jeQogICovCi0jZGVmaW5lIENGR19IWgkJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkJMTAwMAogCiAvKgogICogU2V0IHVwIHRoZSBQTEwgdG8gcnVuIGF0IDE0MCBNSHosIHRoZSBDUFUgdG8gcnVuIGF0IHRoZSBQTEwKICAqIGZyZXF1ZW5jeSwgdGhlIEhTQiBhbmQgUEJCIGF0IDEvMiwgYW5kIHRoZSBQQkEgdG8gcnVuIGF0IDEvNCB0aGUKICAqIFBMTCBmcmVxdWVuY3kuCi0gKiAoQ0ZHX09TQzBfSFogKiBDRkdfUExMMF9NVUwpIC8gQ0ZHX1BMTDBfRElWID0gUExMIE1IegorICogKENPTkZJR19TWVNfT1NDMF9IWiAqIENPTkZJR19TWVNfUExMMF9NVUwpIC8gQ09ORklHX1NZU19QTEwwX0RJViA9IFBMTCBNSHoKICAqLwogI2RlZmluZSBDT05GSUdfUExMCQkJMQotI2RlZmluZSBDRkdfUE9XRVJfTUFOQUdFUgkJMQotI2RlZmluZSBDRkdfT1NDMF9IWgkJCTIwMDAwMDAwCi0jZGVmaW5lIENGR19QTEwwX0RJVgkJCTEKLSNkZWZpbmUgQ0ZHX1BMTDBfTVVMCQkJNwotI2RlZmluZSBDRkdfUExMMF9TVVBQUkVTU19DWUNMRVMJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QT1dFUl9NQU5BR0VSCQkxCisjZGVmaW5lIENPTkZJR19TWVNfT1NDMF9IWgkJCTIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9ESVYJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9NVUwJCQk3CisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9TVVBQUkVTU19DWUNMRVMJMTYKIC8qCiAgKiBTZXQgdGhlIENQVSBydW5uaW5nIGF0OgotICogUExMIC8gKDJeQ0ZHX0NMS0RJVl9DUFUpID0gQ1BVIE1IegorICogUExMIC8gKDJeQ09ORklHX1NZU19DTEtESVZfQ1BVKSA9IENQVSBNSHoKICAqLwotI2RlZmluZSBDRkdfQ0xLRElWX0NQVQkJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfQ1BVCQkJMAogLyoKICAqIFNldCB0aGUgSFNCIHJ1bm5pbmcgYXQ6Ci0gKiBQTEwgLyAoMl5DRkdfQ0xLRElWX0hTQikgPSBIU0IgTUh6CisgKiBQTEwgLyAoMl5DT05GSUdfU1lTX0NMS0RJVl9IU0IpID0gSFNCIE1IegogICovCi0jZGVmaW5lIENGR19DTEtESVZfSFNCCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9IU0IJCQkxCiAvKgogICogU2V0IHRoZSBQQkEgcnVubmluZyBhdDoKLSAqIFBMTCAvICgyXkNGR19DTEtESVZfUEJBKSA9IFBCQSBNSHoKKyAqIFBMTCAvICgyXkNPTkZJR19TWVNfQ0xLRElWX1BCQSkgPSBQQkEgTUh6CiAgKi8KLSNkZWZpbmUgQ0ZHX0NMS0RJVl9QQkEJCQkyCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX1BCQQkJCTIKIC8qCiAgKiBTZXQgdGhlIFBCQiBydW5uaW5nIGF0OgotICogUExMIC8gKDJeQ0ZHX0NMS0RJVl9QQkIpID0gUEJCIE1IegorICogUExMIC8gKDJeQ09ORklHX1NZU19DTEtESVZfUEJCKSA9IFBCQiBNSHoKICAqLwotI2RlZmluZSBDRkdfQ0xLRElWX1BCQgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfUEJCCQkJMQogCiAvKgogICogVGhlIFBMTE9QVCByZWdpc3RlciBjb250cm9scyB0aGUgUExMIGxpa2UgdGhpczoKQEAgLTc3LDcgKzc3LDcgQEAKICAqCiAgKiBXZSB3YW50IGljcD0xIChkZWZhdWx0KSBhbmQgaXZjbz0wICg4MC0xNjAgTUh6KSBvciBpdmNvPTIgKDE1MC0yNDBNSHopLgogICovCi0jZGVmaW5lIENGR19QTEwwX09QVAkJCTB4MDQKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX09QVAkJCTB4MDQKIAogI3VuZGVmIENPTkZJR19VU0FSVDAKICN1bmRlZiBDT05GSUdfVVNBUlQxCkBAIC0xNDcsNTUgKzE0Nyw1NSBAQAogI2RlZmluZSBDT05GSUdfQVRNRUxfVVNBUlQJCTEKICNkZWZpbmUgQ09ORklHX01BQ0IJCQkxCiAjZGVmaW5lIENPTkZJR19QSU8yCQkJMQotI2RlZmluZSBDRkdfTlJfUElPUwkJCTUKLSNkZWZpbmUgQ0ZHX0hTRFJBTUMJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlJfUElPUwkJCTUKKyNkZWZpbmUgQ09ORklHX1NZU19IU0RSQU1DCQkJMQogI2RlZmluZSBDT05GSUdfTU1DCQkJMQogI2RlZmluZSBDT05GSUdfQVRNRUxfTUNJCQkxCiAKLSNkZWZpbmUgQ0ZHX0RDQUNIRV9MSU5FU1oJCTMyCi0jZGVmaW5lIENGR19JQ0FDSEVfTElORVNaCQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9MSU5FU1oJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFX0xJTkVTWgkJMzIKIAogI2RlZmluZSBDT05GSUdfTlJfRFJBTV9CQU5LUwkJMQogCiAvKiBFeHRlcm5hbCBmbGFzaCBvbiBGYXZyLTMyICovCiAjaWYgMAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCTEKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJCTB4ODAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCQkxMzUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCQkweDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkxMzUKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCQlDRkdfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkJQ09ORklHX1NZU19GTEFTSF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX0lOVFJBTV9CQVNFCQkJSU5URVJOQUxfU1JBTV9CQVNFCi0jZGVmaW5lIENGR19JTlRSQU1fU0laRQkJCUlOVEVSTkFMX1NSQU1fU0laRQotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJCUVCSV9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUkFNX0JBU0UJCQlJTlRFUk5BTF9TUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSQU1fU0laRQkJCUlOVEVSTkFMX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCQlFQklfU0RSQU1fQkFTRQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJCTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJNjU1MzYKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfQUREUgkJKENGR19JTlRSQU1fQkFTRSArIENGR19JTlRSQU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX0FERFIJCShDT05GSUdfU1lTX0lOVFJBTV9CQVNFICsgQ09ORklHX1NZU19JTlRSQU1fU0laRSkKIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJCSgyNTYqMTAyNCkKLSNkZWZpbmUgQ0ZHX0RNQV9BTExPQ19MRU4JCSgxNjM4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkJKDI1NioxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0RNQV9BTExPQ19MRU4JCSgxNjM4NCkKIAogLyogQWxsb3cgNE1CIGZvciB0aGUga2VybmVsIHJ1bi10aW1lIGltYWdlICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCQkoRUJJX1NEUkFNX0JBU0UgKyAweDAwNDAwMDAwKQotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JCSgxNiAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkJKEVCSV9TRFJBTV9CQVNFICsgMHgwMDQwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgkJKDE2ICogMTAyNCkKIAogLyogT3RoZXIgY29uZmlndXJhdGlvbiBzZXR0aW5ncyB0aGF0IHNob3VsZG4ndCBoYXZlIHRvIGNoYW5nZSBhbGwgdGhhdCBvZnRlbiAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkJIlUtQm9vdD4gIgotI2RlZmluZSBDRkdfQ0JTSVpFCQkJMjU2Ci0jZGVmaW5lIENGR19NQVhBUkdTCQkJMTYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCQkiVS1Cb290PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQlFQklfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCQkoQ0ZHX01FTVRFU1RfU1RBUlQgKyAweDcwMDAwMCkKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIHsgMTE1MjAwLCAzODQwMCwgMTkyMDAsIDk2MDAsIDI0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCUVCSV9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQkoQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICsgMHg3MDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgeyAxMTUyMDAsIDM4NDAwLCAxOTIwMCwgOTYwMCwgMjQwMCB9CiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZ2NwbHVzLmggYi9pbmNsdWRlL2NvbmZpZ3MvZ2NwbHVzLmgKaW5kZXggNTg2M2Y4My4uYzBiM2FiOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2djcGx1cy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9nY3BsdXMuaApAQCAtNTcsOCArNTcsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOICAgICAgICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAgMTI4ICAgICAvKiBzaXplIHJzcnZkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOICAgICAgICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgIDEyOCAgICAgLyogc2l6ZSByc3J2ZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIAogLyoKQEAgLTk4LDcgKzk4LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkzCiAjZGVmaW5lIENPTkZJR19CT09UQVJHUwkJImNvbnNvbGU9dHR5U0EwLDM4NDAwbjggbXRkcGFydHM9c2ExMTAwLWZsYXNoOjFtQDAoekltYWdlKSwzbUAxbShyYW1kaXNrLmd6KSwxMm1ANG0odXNlcmZzKSByb290PS9kZXYvbmZzIGlwPWJvb3RwIgogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJImJvb3RwO3RmdHA7Ym9vdG0iCi0jZGVmaW5lIENGR19BVVRPTE9BRCAgICAgICAgICAgICJuIiAgICAgICAgICAgICAvKiBObyBhdXRvbG9hZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FVVE9MT0FEICAgICAgICAgICAgIm4iICAgICAgICAgICAgIC8qIE5vIGF1dG9sb2FkICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKICNkZWZpbmUgQ09ORklHX0tHREJfQkFVRFJBVEUJMzg0MDAJCS8qIHNwZWVkIHRvIHJ1biBrZ2RiIHNlcmlhbCBwb3J0ICovCkBAIC0xMDgsMjUgKzEwOCwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJBRFMgR0NQbHVzICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJBRFMgR0NQbHVzICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHhjMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHhjMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4YzA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweGMwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4YzAwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4YzAwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCi0jZGVmaW5lIENGR19DUFVTUEVFRAkJMHgwYQkJLyogc2V0IGNvcmUgY2xvY2sgdG8gMjA2TUh6ICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQJCTB4MGEJCS8qIHNldCBjb3JlIGNsb2NrIHRvIDIwNk1IeiAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xNTQsMjggKzE1NCwyOCBAQAogI2RlZmluZSBQSFlTX0ZMQVNIX0JBTktfU0laRSAgICAweDAxMDAwMDAwIC8qIDE2IE1CIEJhbmtzICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFICAgIDB4MDAwNDAwMDAgLyogMjU2IEtCIHNlY3RvcnMgKHgyKSAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCiAjaWYJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAjZWxzZQogLyogUkVWSVNJVDogVGhpcyBkb2Vzbid0IHdvcmsgb24gQURTIEdDUGx1cyBqdXN0IHlldDogKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSSAgICAgICAgICAgMSAgICAgICAvKiBmbGFzaCBpcyBDRkkgY29uZm9ybWFudCAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJICAgICAgICAgICAxICAgICAgIC8qIGZsYXNoIGlzIENGSSBjb25mb3JtYW50ICAgICAgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIgICAgMSAgICAgICAvKiB1c2UgY29tbW9uIGNmaSBkcml2ZXIgICAgICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgICAgLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgICAgMSAgICAgICAvKiBtYXggIyBvZiBtZW1vcnkgYmFua3MgICAgICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9JTkNSRU1FTlQgICAgIDAgICAgICAgLyogdGhlcmUgaXMgb25seSBvbmUgYmFuayAgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICAgICAxMjggICAgIC8qIG1heCAjIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLS8qI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTiAgICAxICAgICAgIC8tLSogaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbiAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVCAgICB7IENGR19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgICAgLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgICAgIDEgICAgICAgLyogbWF4ICMgb2YgbWVtb3J5IGJhbmtzICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVCAgICAgMCAgICAgICAvKiB0aGVyZSBpcyBvbmx5IG9uZSBiYW5rICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgICAgICAxMjggICAgIC8qIG1heCAjIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gICAgMSAgICAgICAvLS0qIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUICAgIHsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KICNlbmRpZgogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2dyX2NwY2lfYXgyMDAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvZ3JfY3BjaV9heDIwMDAuaAppbmRleCA1YTdhNTgwLi5iYmU2MzViIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvZ3JfY3BjaV9heDIwMDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZ3JfY3BjaV9heDIwMDAuaApAQCAtNjEsMTMgKzYxLDEzIEBACiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMjAwMDAwMDAJLyogMjBNSHogKi8KIAogLyogTnVtYmVyIG9mIFNQQVJDIHJlZ2lzdGVyIHdpbmRvd3MgKi8KLSNkZWZpbmUgQ0ZHX1NQQVJDX05XSU5ET1dTIDgKKyNkZWZpbmUgQ09ORklHX1NZU19TUEFSQ19OV0lORE9XUyA4CiAKIC8qCiAgKiBTZXJpYWwgY29uc29sZSBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkzODQwMAkvKiAuLi4gYXQgMzg0MDAgYnBzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyogUGFydGl0aW9ucyAqLwogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgpAQCAtMTkyLDI4ICsxOTIsMjggQEAKICAqICAgICAgICAgICAgICAgMHhGRjAwMDAwMCBmb3IgMTYgTUIKICAqICAgICAgICAgICAgICAgMHhGRjgwMDAwMCBmb3IgIDggTUIKICAqLwotLyojZGVmaW5lIENGR19OT19GTEFTSAkJMSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwODAwMDAwCisvKiNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKIAogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDIwMDAwCS8qIDEyOCBLQiBzZWN0b3JzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVAkxMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBDbGVhciBMb2NrIEJpdHMgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCiAKIC8qKiogQ0ZJIENPTkZJRyAqKiovCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzhCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzhCSVQKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogLyogQnlwYXNzIGNhY2hlIHdoZW4gcmVhZGluZyByZWdzIGZyb20gZmxhc2ggbWVtb3J5ICovCi0jZGVmaW5lIENGR19GTEFTSF9DRklfQllQQVNTX1JFQUQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfQllQQVNTX1JFQUQKIC8qIEJ1ZmZlcmVkIHdyaXRlcyAoMzJieXRlL2dvKSBpbnN0ZWFkIG9mIHNpbmdsZSBhY2Nlc3NlcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCkBAIC0yMjMsNyArMjIzLDcgQEAKIC8qIENPTkZJR19FTlZfQUREUiBuZWVkIHRvIGJlIGF0IHNlY3RvciBib3VuZGFyeSAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4ODAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFK0NGR19GTEFTSF9TSVpFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UrQ09ORklHX1NZU19GTEFTSF9TSVpFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQkxCiAKIC8qCkBAIC0yMzUsNTkgKzIzNSw1OSBAQAogICovCiAKICNpZiBDT05GSUdfTEVPTl9SQU1fU0VMRUNUID09IENPTkZJR19MRU9OX1JBTV9TRFJBTV9OT1NSQU0KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCiAjZWxzZQotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHg2MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4NjAwMDAwMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkweDA4MDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9FTkQJCShDRkdfU0RSQU1fQkFTRStDRkdfU0RSQU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkweDA4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRU5ECQkoQ09ORklHX1NZU19TRFJBTV9CQVNFK0NPTkZJR19TWVNfU0RSQU1fU0laRSkKIAogLyogNE1iIFNSQU0gYXZhaWxhYmxlICovCiAjaWYgQ09ORklHX0xFT05fUkFNX1NFTEVDVCAhPSBDT05GSUdfTEVPTl9SQU1fU0RSQU1fTk9TUkFNCi0jZGVmaW5lIENGR19TUkFNX0JBU0UgMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfU1JBTV9TSVpFIDB4NDAwMDAwCi0jZGVmaW5lIENGR19TUkFNX0VORCAgKENGR19TUkFNX0JBU0UrQ0ZHX1NSQU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX0JBU0UgMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fU0laRSAweDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fRU5EICAoQ09ORklHX1NZU19TUkFNX0JBU0UrQ09ORklHX1NZU19TUkFNX1NJWkUpCiAjZW5kaWYKIAogLyogU2VsZWN0IFJBTSB1c2VkIHRvIHJ1biBVLUJPT1QgZnJvbS4uLiAqLwogI2lmIENPTkZJR19MRU9OX1JBTV9TRUxFQ1QgPT0gQ09ORklHX0xFT05fUkFNX1NSQU0KLSNkZWZpbmUgQ0ZHX1JBTV9CQVNFIENGR19TUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX1JBTV9TSVpFIENGR19TUkFNX1NJWkUKLSNkZWZpbmUgQ0ZHX1JBTV9FTkQgQ0ZHX1NSQU1fRU5ECisjZGVmaW5lIENPTkZJR19TWVNfUkFNX0JBU0UgQ09ORklHX1NZU19TUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1fU0laRSBDT05GSUdfU1lTX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1JBTV9FTkQgQ09ORklHX1NZU19TUkFNX0VORAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1JBTV9CQVNFIENGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19SQU1fU0laRSBDRkdfU0RSQU1fU0laRQotI2RlZmluZSBDRkdfUkFNX0VORCBDRkdfU0RSQU1fRU5ECisjZGVmaW5lIENPTkZJR19TWVNfUkFNX0JBU0UgQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUkFNX1NJWkUgQ09ORklHX1NZU19TRFJBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfUkFNX0VORCBDT05GSUdfU1lTX1NEUkFNX0VORAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCi0jZGVmaW5lIENGR19QUk9NX1NJWkUJCSg4MTkyLUNGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfUFJPTV9PRkZTRVQJCShDRkdfR0JMX0RBVEFfT0ZGU0VULUNGR19QUk9NX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTV9TSVpFCQkoODE5Mi1DT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTV9PRkZTRVQJCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVC1DT05GSUdfU1lTX1BST01fU0laRSkKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJKENGR19QUk9NX09GRlNFVC0zMikKLSNkZWZpbmUgQ0ZHX1NUQUNLX1NJWkUJCSgweDEwMDAwLTMyKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCShDT05GSUdfU1lTX1BST01fT0ZGU0VULTMyKQorI2RlZmluZSBDT05GSUdfU1lTX1NUQUNLX1NJWkUJCSgweDEwMDAwLTMyKQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0VORAkJKENGR19JTklUX1NQX09GRlNFVC1DRkdfU1RBQ0tfU0laRSkKLSNkZWZpbmUgQ0ZHX01BTExPQ19CQVNFCQkoQ0ZHX01BTExPQ19FTkQtQ0ZHX01BTExPQ19MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0VORAkJKENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQtQ09ORklHX1NZU19TVEFDS19TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19CQVNFCQkoQ09ORklHX1NZU19NQUxMT0NfRU5ELUNPTkZJR19TWVNfTUFMTE9DX0xFTikKIAogLyogcmVsb2NhdGVkIG1vbml0b3IgYXJlYSAqLwotI2RlZmluZSBDRkdfUkVMT0NfTU9OSVRPUl9NQVhfRU5EICAgQ0ZHX01BTExPQ19CQVNFCi0jZGVmaW5lIENGR19SRUxPQ19NT05JVE9SX0JBU0UgICAgIChDRkdfUkVMT0NfTU9OSVRPUl9NQVhfRU5ELUNGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX01BWF9FTkQgICBDT05GSUdfU1lTX01BTExPQ19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFICAgICAoQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX01BWF9FTkQtQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAogLyogbWFrZSB1biByZWxvY2F0ZWQgYWRkcmVzcyBmcm9tIHJlbG9jYXRlZCBhZGRyZXNzICovCi0jZGVmaW5lIFVOX1JFTE9DKGFkZHJlc3MpIChhZGRyZXNzLShDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSkpCisjZGVmaW5lIFVOX1JFTE9DKGFkZHJlc3MpIChhZGRyZXNzLShDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRS1URVhUX0JBU0UpKQogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbiB1c2VzIG9uIGJvYXJkIFNNQzkxQzExMQpAQCAtMzA1LDIzICszMDUsMjMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0gICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qCiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwpAQCAtMzM3LDM4ICszMzcsMzggQEAKIC8qKioqKiBHYWlzbGVyIEdSTElCIElQLUNvcmVzIENvbmZpZyAqKioqKioqKi8KIAogLyogQU1CQSBQbHVnICYgUGxheSBpbmZvIGRpc3BsYXkgb24gc3RhcnR1cCAqLwotLyojZGVmaW5lIENGR19BTUJBUFBfUFJJTlRfT05fU1RBUlRVUCovCisvKiNkZWZpbmUgQ09ORklHX1NZU19BTUJBUFBfUFJJTlRfT05fU1RBUlRVUCovCiAKLSNkZWZpbmUgQ0ZHX0dSTElCX1NEUkFNICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9TRFJBTSAgICAwCiAKIC8qIFNlZSwgR1JMSUIgRG9jcyAoZ3JpcC5wZGYpIG9uIGhvdyB0byBzZXQgdXAKICAqIFRoZXNlIHRoZSBtZW1vcnkgY29udHJvbGxlciByZWdpc3RlcnMuCiAgKi8KLSNkZWZpbmUgQ0ZHX0dSTElCX01FTUNGRzEgICAoMHgxMGY4MDBmZiB8ICgxPDwxMSkpCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMSAgICgweDEwZjgwMGZmIHwgKDE8PDExKSkKICNpZiBDT05GSUdfTEVPTl9SQU1fU0VMRUNUID09IENPTkZJR19MRU9OX1JBTV9TRFJBTV9OT1NSQU0KLSNkZWZpbmUgQ0ZHX0dSTElCX01FTUNGRzIgICAweDgyMjA2MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMiAgIDB4ODIyMDYwMDAKICNlbHNlCi0jZGVmaW5lIENGR19HUkxJQl9NRU1DRkcyICAgMHg4MjIwNTI2MAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX01FTUNGRzIgICAweDgyMjA1MjYwCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0dSTElCX01FTUNGRzMgICAweDA4MDlhMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMyAgIDB4MDgwOWEwMDAKIAotI2RlZmluZSBDRkdfR1JMSUJfRlRfTUVNQ0ZHMSAgICgweDEwZjgwMGZmIHwgKDE8PDExKSkKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9GVF9NRU1DRkcxICAgKDB4MTBmODAwZmYgfCAoMTw8MTEpKQogI2lmIENPTkZJR19MRU9OX1JBTV9TRUxFQ1QgPT0gQ09ORklHX0xFT05fUkFNX1NEUkFNX05PU1JBTQotI2RlZmluZSBDRkdfR1JMSUJfRlRfTUVNQ0ZHMiAgIDB4ODIyMDYwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9GVF9NRU1DRkcyICAgMHg4MjIwNjAwMAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0dSTElCX0ZUX01FTUNGRzIgICAweDgyMjA1MjYwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfRlRfTUVNQ0ZHMiAgIDB4ODIyMDUyNjAKICNlbmRpZgotI2RlZmluZSBDRkdfR1JMSUJfRlRfTUVNQ0ZHMyAgIDB4MDgwOWEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9GVF9NRU1DRkczICAgMHgwODA5YTAwMAogCiAvKiBubyBERFIgY29udHJvbGxlciAqLwotI2RlZmluZSBDRkdfR1JMSUJfRERSX0NGRyAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9ERFJfQ0ZHICAgMHgwMDAwMDAwMAogCiAvKiBubyBERFIyIENvbnRyb2xsZXIgKi8KLSNkZWZpbmUgQ0ZHX0dSTElCX0REUjJfQ0ZHMSAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUkxJQl9ERFIyX0NGRzMgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0REUjJfQ0ZHMSAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfRERSMl9DRkczIDB4MDAwMDAwMDAKIAogLyogQ2FsY3VsYXRlIHNjYWxlciByZWdpc3RlciB2YWx1ZSBmcm9tIGRlZmF1bHQgYmF1ZHJhdGUgKi8KLSNkZWZpbmUgQ0ZHX0dSTElCX0FQQlVBUlRfU0NBTEVSIFwKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9BUEJVQVJUX1NDQUxFUiBcCiAgKCgoKENPTkZJR19TWVNfQ0xLX0ZSRVEqMTApLyhDT05GSUdfQkFVRFJBVEUqOCkpLTUpLzEwKQogCiAvKiBJZGVudGlmaWNhdGlvbiBzdHJpbmcgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9ncl9lcDJzNjAuaCBiL2luY2x1ZGUvY29uZmlncy9ncl9lcDJzNjAuaAppbmRleCAzMTMzYzBkLi42ZjU4YmFjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvZ3JfZXAyczYwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2dyX2VwMnM2MC5oCkBAIC00NSw3ICs0NSw3IEBACiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJOTYwMDAwMDAJLyogOTZNSHogKi8KIAogLyogTnVtYmVyIG9mIFNQQVJDIHJlZ2lzdGVyIHdpbmRvd3MgKi8KLSNkZWZpbmUgQ0ZHX1NQQVJDX05XSU5ET1dTIDgKKyNkZWZpbmUgQ09ORklHX1NZU19TUEFSQ19OV0lORE9XUyA4CiAKIC8qIERlZmluZSB0aGlzIGlzIHRoZSBHUi0yUzYwLU1FWlogbWV6emFuaW5lIGlzIGF2YWlsYWJsZSBhbmQgeW91CiAgKiB3YW50IHRvIHVzZSB0aGUgVVNCIGFuZCBHUkVUSCBmdW5jdGlvbmFsaXR5IG9mIHRoZSBib2FyZApAQCAtNjEsNyArNjEsNyBAQAogICogU2VyaWFsIGNvbnNvbGUgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMzg0MDAJLyogLi4uIGF0IDM4NDAwIGJwcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qIFBhcnRpdGlvbnMgKi8KICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04KQEAgLTg3LDcgKzg3LDcgQEAKICNkZWZpbmUgQ09ORklHX0NNRF9VU0IKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCiAvKiBFbmFibGUgbmVlZGVkIGhlbHBlciBmdW5jdGlvbnMgKi8KLSNkZWZpbmUgQ0ZHX0RFVklDRV9ERVJFR0lTVEVSCS8qIG5lZWRzIGRldmljZV9kZXJlZ2lzdGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX0RFUkVHSVNURVIJLyogbmVlZHMgZGV2aWNlX2RlcmVnaXN0ZXIgKi8KICNlbmRpZgogCiAvKgpAQCAtMTgwLDI4ICsxODAsMjggQEAKICAqICAgICAgICAgICAgICAgMHhGRjAwMDAwMCBmb3IgMTYgTUIKICAqICAgICAgICAgICAgICAgMHhGRjgwMDAwMCBmb3IgIDggTUIKICAqLwotLyojZGVmaW5lIENGR19OT19GTEFTSAkJMSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwNDAwMDAwCS8qIEZQR0EgQml0IGZpbGUgaXMgaW4gdG9wIG9mIEZMQVNILCB3ZSBvbmx5IHVlcyB0aGUgYm90dG9tIDRNYiAqLworLyojZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAwNDAwMDAwCS8qIEZQR0EgQml0IGZpbGUgaXMgaW4gdG9wIG9mIEZMQVNILCB3ZSBvbmx5IHVlcyB0aGUgYm90dG9tIDRNYiAqLwogCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFCTB4MDAwMTAwMDAJLyogNjQgS0Igc2VjdG9ycyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVAkxMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBDbGVhciBMb2NrIEJpdHMgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCiAKIC8qKiogQ0ZJIENPTkZJRyAqKiovCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzhCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzhCSVQKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogLyogQnlwYXNzIGNhY2hlIHdoZW4gcmVhZGluZyByZWdzIGZyb20gZmxhc2ggbWVtb3J5ICovCi0jZGVmaW5lIENGR19GTEFTSF9DRklfQllQQVNTX1JFQUQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfQllQQVNTX1JFQUQKIC8qIEJ1ZmZlcmVkIHdyaXRlcyAoMzJieXRlL2dvKSBpbnN0ZWFkIG9mIHNpbmdsZSBhY2Nlc3NlcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCkBAIC0yMTEsNTEgKzIxMSw1MSBAQAogLyogQ09ORklHX0VOVl9BRERSIG5lZWQgdG8gYmUgYXQgc2VjdG9yIGJvdW5kYXJ5ICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg4MDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UrQ0ZHX0ZMQVNIX1NJWkUtQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRStDT05GSUdfU1lTX0ZMQVNIX1NJWkUtQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEKIAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMHgwMjAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fRU5ECQkoQ0ZHX1NEUkFNX0JBU0UrQ0ZHX1NEUkFNX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9FTkQJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UrQ09ORklHX1NZU19TRFJBTV9TSVpFKQogCiAvKiBubyBTUkFNIGF2YWlsYWJsZSAqLwotI3VuZGVmIENGR19TUkFNX0JBU0UKLSN1bmRlZiBDRkdfU1JBTV9TSVpFCisjdW5kZWYgQ09ORklHX1NZU19TUkFNX0JBU0UKKyN1bmRlZiBDT05GSUdfU1lTX1NSQU1fU0laRQogCi0jZGVmaW5lIENGR19SQU1fQkFTRSBDRkdfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfUkFNX1NJWkUgQ0ZHX1NEUkFNX1NJWkUKLSNkZWZpbmUgQ0ZHX1JBTV9FTkQgQ0ZHX1NEUkFNX0VORAorI2RlZmluZSBDT05GSUdfU1lTX1JBTV9CQVNFIENPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1JBTV9TSVpFIENPTkZJR19TWVNfU0RSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1JBTV9FTkQgQ09ORklHX1NZU19TRFJBTV9FTkQKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19TRFJBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfU0RSQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCi0jZGVmaW5lIENGR19QUk9NX1NJWkUJCSg4MTkyLUNGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfUFJPTV9PRkZTRVQJCShDRkdfR0JMX0RBVEFfT0ZGU0VULUNGR19QUk9NX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTV9TSVpFCQkoODE5Mi1DT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTV9PRkZTRVQJCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVC1DT05GSUdfU1lTX1BST01fU0laRSkKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJKENGR19QUk9NX09GRlNFVC0zMikKLSNkZWZpbmUgQ0ZHX1NUQUNLX1NJWkUJCSgweDEwMDAwLTMyKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCShDT05GSUdfU1lTX1BST01fT0ZGU0VULTMyKQorI2RlZmluZSBDT05GSUdfU1lTX1NUQUNLX1NJWkUJCSgweDEwMDAwLTMyKQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IgICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvciAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0VORAkJKENGR19JTklUX1NQX09GRlNFVC1DRkdfU1RBQ0tfU0laRSkKLSNkZWZpbmUgQ0ZHX01BTExPQ19CQVNFCQkoQ0ZHX01BTExPQ19FTkQtQ0ZHX01BTExPQ19MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0VORAkJKENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQtQ09ORklHX1NZU19TVEFDS19TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19CQVNFCQkoQ09ORklHX1NZU19NQUxMT0NfRU5ELUNPTkZJR19TWVNfTUFMTE9DX0xFTikKIAogLyogcmVsb2NhdGVkIG1vbml0b3IgYXJlYSAqLwotI2RlZmluZSBDRkdfUkVMT0NfTU9OSVRPUl9NQVhfRU5EICAgQ0ZHX01BTExPQ19CQVNFCi0jZGVmaW5lIENGR19SRUxPQ19NT05JVE9SX0JBU0UgICAgIChDRkdfUkVMT0NfTU9OSVRPUl9NQVhfRU5ELUNGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX01BWF9FTkQgICBDT05GSUdfU1lTX01BTExPQ19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFICAgICAoQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX01BWF9FTkQtQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAogLyogbWFrZSB1biByZWxvY2F0ZWQgYWRkcmVzcyBmcm9tIHJlbG9jYXRlZCBhZGRyZXNzICovCi0jZGVmaW5lIFVOX1JFTE9DKGFkZHJlc3MpIChhZGRyZXNzLShDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSkpCisjZGVmaW5lIFVOX1JFTE9DKGFkZHJlc3MpIChhZGRyZXNzLShDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRS1URVhUX0JBU0UpKQogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbiB1c2VzIG9uIGJvYXJkIFNNQzkxQzExMSwgaG93ZXZlciBpZiBhIG1lenphbmluZQpAQCAtMjk1LDIzICsyOTUsMjMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0gICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFVTQiBzdHVmZgpAQCAtMzIzLDI4ICszMjMsMjggQEAKIC8qKioqKiBHYWlzbGVyIEdSTElCIElQLUNvcmVzIENvbmZpZyAqKioqKioqKi8KIAogLyogQU1CQSBQbHVnICYgUGxheSBpbmZvIGRpc3BsYXkgb24gc3RhcnR1cCAqLwotLyojZGVmaW5lIENGR19BTUJBUFBfUFJJTlRfT05fU1RBUlRVUCovCisvKiNkZWZpbmUgQ09ORklHX1NZU19BTUJBUFBfUFJJTlRfT05fU1RBUlRVUCovCiAKLSNkZWZpbmUgQ0ZHX0dSTElCX1NEUkFNICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9TRFJBTSAgICAwCiAKIC8qIFNlZSwgR1JMSUIgRG9jcyAoZ3JpcC5wZGYpIG9uIGhvdyB0byBzZXQgdXAKICAqIFRoZXNlIHRoZSBtZW1vcnkgY29udHJvbGxlciByZWdpc3RlcnMuCiAgKi8KLSNkZWZpbmUgQ0ZHX0dSTElCX01FTUNGRzEgICgweDEwZjgwMGZmIHwgKDE8PDExKSkKLSNkZWZpbmUgQ0ZHX0dSTElCX01FTUNGRzIgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dSTElCX01FTUNGRzMgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9NRU1DRkcxICAoMHgxMGY4MDBmZiB8ICgxPDwxMSkpCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMiAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX01FTUNGRzMgIDB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfR1JMSUJfRlRfTUVNQ0ZHMSAgKDB4MTBmODAwZmYgfCAoMTw8MTEpKQotI2RlZmluZSBDRkdfR1JMSUJfRlRfTUVNQ0ZHMiAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1JMSUJfRlRfTUVNQ0ZHMyAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0ZUX01FTUNGRzEgICgweDEwZjgwMGZmIHwgKDE8PDExKSkKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9GVF9NRU1DRkcyICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfRlRfTUVNQ0ZHMyAgMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19HUkxJQl9ERFJfQ0ZHICAweGE5MDA4MzBhCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfRERSX0NGRyAgMHhhOTAwODMwYQogCi0jZGVmaW5lIENGR19HUkxJQl9ERFIyX0NGRzEgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1JMSUJfRERSMl9DRkczIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9ERFIyX0NGRzEgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0REUjJfQ0ZHMyAweDAwMDAwMDAwCiAKIC8qIENhbGN1bGF0ZSBzY2FsZXIgcmVnaXN0ZXIgdmFsdWUgZnJvbSBkZWZhdWx0IGJhdWRyYXRlICovCi0jZGVmaW5lIENGR19HUkxJQl9BUEJVQVJUX1NDQUxFUiBcCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfQVBCVUFSVF9TQ0FMRVIgXAogICgoKChDT05GSUdfU1lTX0NMS19GUkVRKjEwKS8oQ09ORklHX0JBVURSQVRFKjgpKS01KS8xMCkKIAogLyogSWRlbnRpZmljYXRpb24gc3RyaW5nICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZ3JfeGMzc18xNTAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvZ3JfeGMzc18xNTAwLmgKaW5kZXggMzE2YjAwMy4uNGRkOWEwZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2dyX3hjM3NfMTUwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ncl94YzNzXzE1MDAuaApAQCAtNDIsMTMgKzQyLDEzIEBACiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJNDAwMDAwMDAJLyogNDBNSHogKi8KIAogLyogTnVtYmVyIG9mIFNQQVJDIHJlZ2lzdGVyIHdpbmRvd3MgKi8KLSNkZWZpbmUgQ0ZHX1NQQVJDX05XSU5ET1dTIDgKKyNkZWZpbmUgQ09ORklHX1NZU19TUEFSQ19OV0lORE9XUyA4CiAKIC8qCiAgKiBTZXJpYWwgY29uc29sZSBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkzODQwMAkvKiAuLi4gYXQgMzg0MDAgYnBzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyogUGFydGl0aW9ucyAqLwogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgpAQCAtMTU2LDI4ICsxNTYsMjggQEAKICAqICAgICAgICAgICAgICAgMHhGRjAwMDAwMCBmb3IgMTYgTUIKICAqICAgICAgICAgICAgICAgMHhGRjgwMDAwMCBmb3IgIDggTUIKICAqLwotLyojZGVmaW5lIENGR19OT19GTEFTSAkJMSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwODAwMDAwCisvKiNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKIAogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDIwMDAwCS8qIDEyOCBLQiBzZWN0b3JzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVAkxMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBDbGVhciBMb2NrIEJpdHMgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCiAKIC8qKiogQ0ZJIENPTkZJRyAqKiovCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzhCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzhCSVQKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogLyogQnlwYXNzIGNhY2hlIHdoZW4gcmVhZGluZyByZWdzIGZyb20gZmxhc2ggbWVtb3J5ICovCi0jZGVmaW5lIENGR19GTEFTSF9DRklfQllQQVNTX1JFQUQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfQllQQVNTX1JFQUQKIC8qIEJ1ZmZlcmVkIHdyaXRlcyAoMzJieXRlL2dvKSBpbnN0ZWFkIG9mIHNpbmdsZSBhY2Nlc3NlcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCkBAIC0xODcsNTIgKzE4Nyw1MiBAQAogLyogQ09ORklHX0VOVl9BRERSIG5lZWQgdG8gYmUgYXQgc2VjdG9yIGJvdW5kYXJ5ICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg4MDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UrQ0ZHX0ZMQVNIX1NJWkUtQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRStDT05GSUdfU1lTX0ZMQVNIX1NJWkUtQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEKIAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMHg0MDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9FTkQJCShDRkdfU0RSQU1fQkFTRStDRkdfU0RSQU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMHg0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRU5ECQkoQ09ORklHX1NZU19TRFJBTV9CQVNFK0NPTkZJR19TWVNfU0RSQU1fU0laRSkKIAogLyogbm8gU1JBTSBhdmFpbGFibGUgKi8KLSN1bmRlZiBDRkdfU1JBTV9CQVNFCi0jdW5kZWYgQ0ZHX1NSQU1fU0laRQorI3VuZGVmIENPTkZJR19TWVNfU1JBTV9CQVNFCisjdW5kZWYgQ09ORklHX1NZU19TUkFNX1NJWkUKIAogLyogQWx3YXlzIFJ1biBVLUJvb3QgZnJvbSBTRFJBTSAqLwotI2RlZmluZSBDRkdfUkFNX0JBU0UgQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX1JBTV9TSVpFIENGR19TRFJBTV9TSVpFCi0jZGVmaW5lIENGR19SQU1fRU5EIENGR19TRFJBTV9FTkQKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1fQkFTRSBDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1fU0laRSBDT05GSUdfU1lTX1NEUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1fRU5EIENPTkZJR19TWVNfU0RSQU1fRU5ECiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCi0jZGVmaW5lIENGR19QUk9NX1NJWkUJCSg4MTkyLUNGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfUFJPTV9PRkZTRVQJCShDRkdfR0JMX0RBVEFfT0ZGU0VULUNGR19QUk9NX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTV9TSVpFCQkoODE5Mi1DT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTV9PRkZTRVQJCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVC1DT05GSUdfU1lTX1BST01fU0laRSkKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJKENGR19QUk9NX09GRlNFVC0zMikKLSNkZWZpbmUgQ0ZHX1NUQUNLX1NJWkUJCSgweDEwMDAwLTMyKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCShDT05GSUdfU1lTX1BST01fT0ZGU0VULTMyKQorI2RlZmluZSBDT05GSUdfU1lTX1NUQUNLX1NJWkUJCSgweDEwMDAwLTMyKQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0VORAkJKENGR19JTklUX1NQX09GRlNFVC1DRkdfU1RBQ0tfU0laRSkKLSNkZWZpbmUgQ0ZHX01BTExPQ19CQVNFCQkoQ0ZHX01BTExPQ19FTkQtQ0ZHX01BTExPQ19MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0VORAkJKENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQtQ09ORklHX1NZU19TVEFDS19TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19CQVNFCQkoQ09ORklHX1NZU19NQUxMT0NfRU5ELUNPTkZJR19TWVNfTUFMTE9DX0xFTikKIAogLyogcmVsb2NhdGVkIG1vbml0b3IgYXJlYSAqLwotI2RlZmluZSBDRkdfUkVMT0NfTU9OSVRPUl9NQVhfRU5EICAgQ0ZHX01BTExPQ19CQVNFCi0jZGVmaW5lIENGR19SRUxPQ19NT05JVE9SX0JBU0UgICAgIChDRkdfUkVMT0NfTU9OSVRPUl9NQVhfRU5ELUNGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX01BWF9FTkQgICBDT05GSUdfU1lTX01BTExPQ19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFICAgICAoQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX01BWF9FTkQtQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAogLyogbWFrZSB1biByZWxvY2F0ZWQgYWRkcmVzcyBmcm9tIHJlbG9jYXRlZCBhZGRyZXNzICovCi0jZGVmaW5lIFVOX1JFTE9DKGFkZHJlc3MpIChhZGRyZXNzLShDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSkpCisjZGVmaW5lIFVOX1JFTE9DKGFkZHJlc3MpIChhZGRyZXNzLShDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRS1URVhUX0JBU0UpKQogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMjU0LDIzICsyNTQsMjMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0gICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qCiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwpAQCAtMjg2LDMwICsyODYsMzAgQEAKIC8qKioqKiBHYWlzbGVyIEdSTElCIElQLUNvcmVzIENvbmZpZyAqKioqKioqKi8KIAogLyogQU1CQSBQbHVnICYgUGxheSBpbmZvIGRpc3BsYXkgb24gc3RhcnR1cCAqLwotLyojZGVmaW5lIENGR19BTUJBUFBfUFJJTlRfT05fU1RBUlRVUCovCisvKiNkZWZpbmUgQ09ORklHX1NZU19BTUJBUFBfUFJJTlRfT05fU1RBUlRVUCovCiAKLSNkZWZpbmUgQ0ZHX0dSTElCX1NEUkFNICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9TRFJBTSAgICAwCiAKIC8qIFNlZSwgR1JMSUIgRG9jcyAoZ3JpcC5wZGYpIG9uIGhvdyB0byBzZXQgdXAKICAqIFRoZXNlIHRoZSBtZW1vcnkgY29udHJvbGxlciByZWdpc3RlcnMuCiAgKi8KLSNkZWZpbmUgQ0ZHX0dSTElCX01FTUNGRzEgICAoMHgwMDAwMDBmZiB8ICgxPDwxMSkpCi0jZGVmaW5lIENGR19HUkxJQl9NRU1DRkcyICAgMHg4MjIwNjAwMAotI2RlZmluZSBDRkdfR1JMSUJfTUVNQ0ZHMyAgIDB4MDAxMzYwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9NRU1DRkcxICAgKDB4MDAwMDAwZmYgfCAoMTw8MTEpKQorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX01FTUNGRzIgICAweDgyMjA2MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMyAgIDB4MDAxMzYwMDAKIAotI2RlZmluZSBDRkdfR1JMSUJfRlRfTUVNQ0ZHMSAgICgweDAwMDAwMGZmIHwgKDE8PDExKSkKLSNkZWZpbmUgQ0ZHX0dSTElCX0ZUX01FTUNGRzIgICAweDgyMjA2MDAwCi0jZGVmaW5lIENGR19HUkxJQl9GVF9NRU1DRkczICAgMHgwMDEzNjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0ZUX01FTUNGRzEgICAoMHgwMDAwMDBmZiB8ICgxPDwxMSkpCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfRlRfTUVNQ0ZHMiAgIDB4ODIyMDYwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9GVF9NRU1DRkczICAgMHgwMDEzNjAwMAogCiAvKiBubyBERFIgY29udHJvbGxlciAqLwotI2RlZmluZSBDRkdfR1JMSUJfRERSX0NGRyAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9ERFJfQ0ZHICAgMHgwMDAwMDAwMAogCiAvKiBubyBERFIyIENvbnRyb2xsZXIgKi8KLSNkZWZpbmUgQ0ZHX0dSTElCX0REUjJfQ0ZHMSAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUkxJQl9ERFIyX0NGRzMgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0REUjJfQ0ZHMSAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfRERSMl9DRkczIDB4MDAwMDAwMDAKIAogLyogQ2FsY3VsYXRlIHNjYWxlciByZWdpc3RlciB2YWx1ZSBmcm9tIGRlZmF1bHQgYmF1ZHJhdGUgKi8KLSNkZWZpbmUgQ0ZHX0dSTElCX0FQQlVBUlRfU0NBTEVSIFwKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9BUEJVQVJUX1NDQUxFUiBcCiAgKCgoKENPTkZJR19TWVNfQ0xLX0ZSRVEqMTApLyhDT05GSUdfQkFVRFJBVEUqOCkpLTUpLzEwKQogCiAvKiBJZGVudGlmaWNhdGlvbiBzdHJpbmcgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9ncnNpbS5oIGIvaW5jbHVkZS9jb25maWdzL2dyc2ltLmgKaW5kZXggYTVlZjZlMS4uYTllYWE0YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2dyc2ltLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2dyc2ltLmgKQEAgLTQ5LDEzICs0OSwxMyBAQAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTQwMDAwMDAwCS8qIDQwTUh6ICovCiAKIC8qIE51bWJlciBvZiBTUEFSQyByZWdpc3RlciB3aW5kb3dzICovCi0jZGVmaW5lIENGR19TUEFSQ19OV0lORE9XUyA4CisjZGVmaW5lIENPTkZJR19TWVNfU1BBUkNfTldJTkRPV1MgOAogCiAvKgogICogU2VyaWFsIGNvbnNvbGUgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMzg0MDAJLyogLi4uIGF0IDM4NDAwIGJwcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qIFBhcnRpdGlvbnMgKi8KICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04KQEAgLTkzLDkgKzkzLDkgQEAKIAkiZWNobyIKIAogI3VuZGVmCUNPTkZJR19CT09UQVJHUwotLyojZGVmaW5lIENGR19IVVNIX1BBUlNFUiAwKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisvKiNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUiAwKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjZGVmaW5lCUNPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MJCQkJCVwKQEAgLTE3OCwzMiArMTc4LDMyIEBACiAgKiAgICAgICAgICAgICAgIDB4RkYwMDAwMDAgZm9yIDE2IE1CCiAgKiAgICAgICAgICAgICAgIDB4RkY4MDAwMDAgZm9yICA4IE1CCiAgKi8KLSNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4ODAwMAogCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFK0NGR19GTEFTSF9TSVpFLUNPTkZJR19FTlZfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFK0NPTkZJR19TWVNfRkxBU0hfU0laRS1DT05GSUdfRU5WX1NJWkUpCiAKICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUJMHgwMDAyMDAwMAkvKiAxMjggS0Igc2VjdG9ycyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0xPQ0tfVE9VVAk1CS8qIFRpbWVvdXQgZm9yIEZsYXNoIFNldCBMb2NrIEJpdCAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9VTkxPQ0tfVE9VVAkxMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBDbGVhciBMb2NrIEJpdHMgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVAkxMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBDbGVhciBMb2NrIEJpdHMgKGluIG1zKSAqLwogCiAjaWZkZWYgRU5BQkxFX0ZMQVNIX1NVUFBPUlQKIC8qIEZvciB1c2Ugd2l0aCBncnNpbSBGTEFTSCBlbXVsYXRpb24gZXh0ZW5zaW9uICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCiAKICN1bmRlZiBDT05GSUdfRkxBU0hfOEJJVAkvKiBGbGFzaCBpcyAzMi1iaXQgKi8KIAogLyoqKiBDRkkgQ09ORklHICoqKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfOEJJVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfOEJJVAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZW5kaWYKIAogLyoKQEAgLTIxOCw0NiArMjE4LDQ2IEBACiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkweDAyMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9FTkQJCShDRkdfU0RSQU1fQkFTRStDRkdfU0RSQU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0VORAkJKENPTkZJR19TWVNfU0RSQU1fQkFTRStDT05GSUdfU1lTX1NEUkFNX1NJWkUpCiAKIC8qIG5vIFNSQU0gYXZhaWxhYmxlICovCi0jdW5kZWYgQ0ZHX1NSQU1fQkFTRQotI3VuZGVmIENGR19TUkFNX1NJWkUKKyN1bmRlZiBDT05GSUdfU1lTX1NSQU1fQkFTRQorI3VuZGVmIENPTkZJR19TWVNfU1JBTV9TSVpFCiAKIC8qIEFsd2F5cyBSdW4gVS1Cb290IGZyb20gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX1JBTV9CQVNFIENGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19SQU1fU0laRSBDRkdfU0RSQU1fU0laRQotI2RlZmluZSBDRkdfUkFNX0VORCBDRkdfU0RSQU1fRU5ECisjZGVmaW5lIENPTkZJR19TWVNfUkFNX0JBU0UgQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUkFNX1NJWkUgQ09ORklHX1NZU19TRFJBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfUkFNX0VORCBDT05GSUdfU1lTX1NEUkFNX0VORAogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAotI2RlZmluZSBDRkdfUFJPTV9TSVpFCQkoODE5Mi1DRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX1BST01fT0ZGU0VUCQkoQ0ZHX0dCTF9EQVRBX09GRlNFVC1DRkdfUFJPTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1BST01fU0laRQkJKDgxOTItQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1BST01fT0ZGU0VUCQkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQtQ09ORklHX1NZU19QUk9NX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCShDRkdfUFJPTV9PRkZTRVQtMzIpCi0jZGVmaW5lIENGR19TVEFDS19TSVpFCQkoMHgxMDAwMC0zMikKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkoQ09ORklHX1NZU19QUk9NX09GRlNFVC0zMikKKyNkZWZpbmUgQ09ORklHX1NZU19TVEFDS19TSVpFCQkoMHgxMDAwMC0zMikKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19FTkQJCShDRkdfSU5JVF9TUF9PRkZTRVQtQ0ZHX1NUQUNLX1NJWkUpCi0jZGVmaW5lIENGR19NQUxMT0NfQkFTRQkJKENGR19NQUxMT0NfRU5ELUNGR19NQUxMT0NfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19FTkQJCShDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VULUNPTkZJR19TWVNfU1RBQ0tfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfQkFTRQkJKENPTkZJR19TWVNfTUFMTE9DX0VORC1DT05GSUdfU1lTX01BTExPQ19MRU4pCiAKIC8qIHJlbG9jYXRlZCBtb25pdG9yIGFyZWEgKi8KLSNkZWZpbmUgQ0ZHX1JFTE9DX01PTklUT1JfTUFYX0VORCAgIENGR19NQUxMT0NfQkFTRQotI2RlZmluZSBDRkdfUkVMT0NfTU9OSVRPUl9CQVNFICAgICAoQ0ZHX1JFTE9DX01PTklUT1JfTUFYX0VORC1DRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9NQVhfRU5EICAgQ09ORklHX1NZU19NQUxMT0NfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRSAgICAgKENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9NQVhfRU5ELUNPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAKIC8qIG1ha2UgdW4gcmVsb2NhdGVkIGFkZHJlc3MgZnJvbSByZWxvY2F0ZWQgYWRkcmVzcyAqLwotI2RlZmluZSBVTl9SRUxPQyhhZGRyZXNzKSAoYWRkcmVzcy0oQ0ZHX1JFTE9DX01PTklUT1JfQkFTRS1URVhUX0JBU0UpKQorI2RlZmluZSBVTl9SRUxPQyhhZGRyZXNzKSAoYWRkcmVzcy0oQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UtVEVYVF9CQVNFKSkKIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTI4NCw1MiArMjg0LDUyIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTSAgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKioqKiogR2Fpc2xlciBHUkxJQiBJUC1Db3JlcyBDb25maWcgKioqKioqKiovCiAKIC8qIEFNQkEgUGx1ZyAmIFBsYXkgaW5mbyBkaXNwbGF5IG9uIHN0YXJ0dXAgKi8KLS8qI2RlZmluZSBDRkdfQU1CQVBQX1BSSU5UX09OX1NUQVJUVVAqLworLyojZGVmaW5lIENPTkZJR19TWVNfQU1CQVBQX1BSSU5UX09OX1NUQVJUVVAqLwogCi0jZGVmaW5lIENGR19HUkxJQl9TRFJBTSAgICAgMAotI2RlZmluZSBDRkdfR1JMSUJfTUVNQ0ZHMSAgICgweDAwMDAwMGZmIHwgKDE8PDExKSkKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9TRFJBTSAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX01FTUNGRzEgICAoMHgwMDAwMDBmZiB8ICgxPDwxMSkpCiAjaWYgQ09ORklHX0dSU0lNCiAvKiBHUlNJTSBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19HUkxJQl9NRU1DRkcyICAgMHg4MjIwNjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX01FTUNGRzIgICAweDgyMjA2MDAwCiAjZWxzZQogLyogVFNJTSBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19HUkxJQl9NRU1DRkcyICAgMHgwMDAwMTgyMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX01FTUNGRzIgICAweDAwMDAxODIwCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0dSTElCX01FTUNGRzMgICAweDAwMTM2MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMyAgIDB4MDAxMzYwMDAKIAotI2RlZmluZSBDRkdfR1JMSUJfRlRfTUVNQ0ZHMSAgICgweDAwMDAwMGZmIHwgKDE8PDExKSkKLSNkZWZpbmUgQ0ZHX0dSTElCX0ZUX01FTUNGRzIgICAweDgyMjA2MDAwCi0jZGVmaW5lIENGR19HUkxJQl9GVF9NRU1DRkczICAgMHgwMDEzNjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0ZUX01FTUNGRzEgICAoMHgwMDAwMDBmZiB8ICgxPDwxMSkpCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfRlRfTUVNQ0ZHMiAgIDB4ODIyMDYwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9GVF9NRU1DRkczICAgMHgwMDEzNjAwMAogCiAvKiBubyBERFIgY29udHJvbGxlciAqLwotI2RlZmluZSBDRkdfR1JMSUJfRERSX0NGRyAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9ERFJfQ0ZHICAgMHgwMDAwMDAwMAogCiAvKiBubyBERFIyIENvbnRyb2xsZXIgKi8KLSNkZWZpbmUgQ0ZHX0dSTElCX0REUjJfQ0ZHMSAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUkxJQl9ERFIyX0NGRzMgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0REUjJfQ0ZHMSAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfRERSMl9DRkczIDB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfR1JMSUJfQVBCVUFSVF9TQ0FMRVIgXAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0FQQlVBUlRfU0NBTEVSIFwKICAoKCgoQ09ORklHX1NZU19DTEtfRlJFUSoxMCkvKENPTkZJR19CQVVEUkFURSo4KSktNSkvMTApCiAKIC8qIGRlZmF1bHQga2VybmVsIGNvbW1hbmQgbGluZSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2dyc2ltX2xlb24yLmggYi9pbmNsdWRlL2NvbmZpZ3MvZ3JzaW1fbGVvbjIuaAppbmRleCBhODhkZGIzLi41OGYyNmZkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvZ3JzaW1fbGVvbjIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZ3JzaW1fbGVvbjIuaApAQCAtNDgsMTMgKzQ4LDEzIEBACiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJNDAwMDAwMDAJLyogNDBNSHogKi8KIAogLyogTnVtYmVyIG9mIFNQQVJDIHJlZ2lzdGVyIHdpbmRvd3MgKi8KLSNkZWZpbmUgQ0ZHX1NQQVJDX05XSU5ET1dTIDgKKyNkZWZpbmUgQ09ORklHX1NZU19TUEFSQ19OV0lORE9XUyA4CiAKIC8qCiAgKiBTZXJpYWwgY29uc29sZSBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkzODQwMAkvKiAuLi4gYXQgMzg0MDAgYnBzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyogUGFydGl0aW9ucyAqLwogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgpAQCAtOTAsOSArOTAsOSBAQAogCSJlY2hvIgogCiAjdW5kZWYJQ09ORklHX0JPT1RBUkdTCi0vKiNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSIDAqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKy8qI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSIDAqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNkZWZpbmUJQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJCQkJXApAQCAtMTc1LDMyICsxNzUsMzIgQEAKICAqICAgICAgICAgICAgICAgMHhGRjAwMDAwMCBmb3IgMTYgTUIKICAqICAgICAgICAgICAgICAgMHhGRjgwMDAwMCBmb3IgIDggTUIKICAqLwotI2RlZmluZSBDRkdfTk9fRkxBU0gJCTEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAwODAwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg4MDAwCiAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UrQ0ZHX0ZMQVNIX1NJWkUtQ09ORklHX0VOVl9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UrQ09ORklHX1NZU19GTEFTSF9TSVpFLUNPTkZJR19FTlZfU0laRSkKIAogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDIwMDAwCS8qIDEyOCBLQiBzZWN0b3JzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCiAKICNpZmRlZiBFTkFCTEVfRkxBU0hfU1VQUE9SVAogLyogRm9yIHVzZSB3aXRoIGdyc2ltIEZMQVNIIGVtdWxhdGlvbiBleHRlbnNpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KIAogI3VuZGVmIENPTkZJR19GTEFTSF84QklUCS8qIEZsYXNoIGlzIDMyLWJpdCAqLwogCiAvKioqIENGSSBDT05GSUcgKioqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV84QklUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV84QklUCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNlbmRpZgogCiAvKgpAQCAtMjE1LDQ3ICsyMTUsNDcgQEAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTB4MDA4MDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0VORAkJKENGR19TRFJBTV9CQVNFK0NGR19TRFJBTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkweDAwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRU5ECQkoQ09ORklHX1NZU19TRFJBTV9CQVNFK0NPTkZJR19TWVNfU0RSQU1fU0laRSkKIAogLyogbm8gU1JBTSBhdmFpbGFibGUgKi8KLSN1bmRlZiBDRkdfU1JBTV9CQVNFCi0jdW5kZWYgQ0ZHX1NSQU1fU0laRQorI3VuZGVmIENPTkZJR19TWVNfU1JBTV9CQVNFCisjdW5kZWYgQ09ORklHX1NZU19TUkFNX1NJWkUKIAogCiAvKiBBbHdheXMgUnVuIFUtQm9vdCBmcm9tIFNEUkFNICovCi0jZGVmaW5lIENGR19SQU1fQkFTRSBDRkdfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfUkFNX1NJWkUgQ0ZHX1NEUkFNX1NJWkUKLSNkZWZpbmUgQ0ZHX1JBTV9FTkQgQ0ZHX1NEUkFNX0VORAorI2RlZmluZSBDT05GSUdfU1lTX1JBTV9CQVNFIENPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1JBTV9TSVpFIENPTkZJR19TWVNfU0RSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1JBTV9FTkQgQ09ORklHX1NZU19TRFJBTV9FTkQKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX1BST01fU0laRQkJKDgxOTItQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19QUk9NX09GRlNFVAkJKENGR19HQkxfREFUQV9PRkZTRVQtQ0ZHX1BST01fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NX1NJWkUJCSg4MTkyLUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NX09GRlNFVAkJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VULUNPTkZJR19TWVNfUFJPTV9TSVpFKQogCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAkoQ0ZHX1BST01fT0ZGU0VULTMyKQotI2RlZmluZSBDRkdfU1RBQ0tfU0laRQkJKDB4MTAwMDAtMzIpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJKENPTkZJR19TWVNfUFJPTV9PRkZTRVQtMzIpCisjZGVmaW5lIENPTkZJR19TWVNfU1RBQ0tfU0laRQkJKDB4MTAwMDAtMzIpCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfRU5ECQkoQ0ZHX0lOSVRfU1BfT0ZGU0VULUNGR19TVEFDS19TSVpFKQotI2RlZmluZSBDRkdfTUFMTE9DX0JBU0UJCShDRkdfTUFMTE9DX0VORC1DRkdfTUFMTE9DX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfRU5ECQkoQ09ORklHX1NZU19JTklUX1NQX09GRlNFVC1DT05GSUdfU1lTX1NUQUNLX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01BTExPQ19FTkQtQ09ORklHX1NZU19NQUxMT0NfTEVOKQogCiAvKiByZWxvY2F0ZWQgbW9uaXRvciBhcmVhICovCi0jZGVmaW5lIENGR19SRUxPQ19NT05JVE9SX01BWF9FTkQgICBDRkdfTUFMTE9DX0JBU0UKLSNkZWZpbmUgQ0ZHX1JFTE9DX01PTklUT1JfQkFTRSAgICAgKENGR19SRUxPQ19NT05JVE9SX01BWF9FTkQtQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfTUFYX0VORCAgIENPTkZJR19TWVNfTUFMTE9DX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UgICAgIChDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfTUFYX0VORC1DT05GSUdfU1lTX01PTklUT1JfTEVOKQogCiAvKiBtYWtlIHVuIHJlbG9jYXRlZCBhZGRyZXNzIGZyb20gcmVsb2NhdGVkIGFkZHJlc3MgKi8KLSNkZWZpbmUgVU5fUkVMT0MoYWRkcmVzcykgKGFkZHJlc3MtKENGR19SRUxPQ19NT05JVE9SX0JBU0UtVEVYVF9CQVNFKSkKKyNkZWZpbmUgVU5fUkVMT0MoYWRkcmVzcykgKGFkZHJlc3MtKENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSkpCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0yODIsMzcgKzI4MiwzNyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0gICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyoqKioqIEdhaXNsZXIgR1JMSUIgSVAtQ29yZXMgQ29uZmlnICoqKioqKioqLwogCi0jZGVmaW5lIENGR19HUkxJQl9TRFJBTSAgICAwCi0jZGVmaW5lIENGR19HUkxJQl9NRU1DRkcxICAoMHgwMDAwMDBmZiB8ICgxPDwxMSkpCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfU0RSQU0gICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX01FTUNGRzEgICgweDAwMDAwMGZmIHwgKDE8PDExKSkKICNpZiBDT05GSUdfR1JTSU0KLSNkZWZpbmUgQ0ZHX0dSTElCX01FTUNGRzIgIDB4ODIyMDYwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9NRU1DRkcyICAweDgyMjA2MDAwCiAjZWxzZQotI2RlZmluZSBDRkdfR1JMSUJfTUVNQ0ZHMiAgMHgwMDAwMTgyMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX01FTUNGRzIgIDB4MDAwMDE4MjAKICNlbmRpZgotI2RlZmluZSBDRkdfR1JMSUJfTUVNQ0ZHMyAgMHgwMDEzNjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX01FTUNGRzMgIDB4MDAxMzYwMDAKIAogLyoqKiBMRU9OMiBVQVJUIDEgKioqLwotI2RlZmluZSBDRkdfTEVPTjJfVUFSVDFfU0NBTEVSIFwKKyNkZWZpbmUgQ09ORklHX1NZU19MRU9OMl9VQVJUMV9TQ0FMRVIgXAogCSgoKChDT05GSUdfU1lTX0NMS19GUkVRKjEwKS8oQ09ORklHX0JBVURSQVRFKjgpKS01KS8xMCkKIAogLyogVUFSVDEgRGVmaW5lIHRvIDEgb3IgMCAqLwpAQCAtMzIzLDcgKzMyMyw3IEBACiAKIC8qKiogTEVPTjIgVUFSVCAyICoqKi8KIAotI2RlZmluZSBDRkdfTEVPTjJfVUFSVDJfU0NBTEVSIFwKKyNkZWZpbmUgQ09ORklHX1NZU19MRU9OMl9VQVJUMl9TQ0FMRVIgXAogCSgoKChDT05GSUdfU1lTX0NMS19GUkVRKjEwKS8oQ09ORklHX0JBVURSQVRFKjgpKS01KS8xMCkKIAogLyogVUFSVDIgRGVmaW5lIHRvIDEgb3IgMCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2d0aDIuaCBiL2luY2x1ZGUvY29uZmlncy9ndGgyLmgKaW5kZXggYWFmMWU0YS4uYWVlZGUwNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2d0aDIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZ3RoMi5oCkBAIC00OSw3ICs0OSw3IEBACiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwIH0KIAogLyogT25seSBpbnRlcnJ1cHQgYm9vdCBpZiBzcGFjZSBpcyBwcmVzc2VkICovCiAvKiBJZiBhIGxvbmcgc2VyaWFsIGNhYmxlIGlzIGNvbm5lY3RlZCBidXQgKi8KQEAgLTEwNyw1MSArMTA3LDUxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJHVEgyICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJHVEgyICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpICAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCTEyOCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJMTI4KjEwMjQKIAotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JMTI4KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgkxMjgqMTAyNAogCi0jZGVmaW5lIENGR19NSFoJCQk1MDAKKyNkZWZpbmUgQ09ORklHX1NZU19NSFoJCQk1MDAKIAotI2RlZmluZSBDRkdfTUlQU19USU1FUl9GUkVRCShDRkdfTUhaICogMTAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NSVBTX1RJTUVSX0ZSRVEJKENPTkZJR19TWVNfTUhaICogMTAwMDAwMCkKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4ODAwMDAwMDAgICAgIC8qIENhY2hlZCBhZGRyICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHg4MDAwMDAwMCAgICAgLyogQ2FjaGVkIGFkZHIgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDgxMDAwMDAwICAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHg4MTAwMDAwMCAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDgwMTAwMDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHg4MzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHg4MDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDgzMDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX0hXX1dBVENIRE9HCTEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDEyOCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMTI4KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZSBQSFlTX0ZMQVNICQkweGJmYzAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KIAogLyogVGhlIGZvbGxvd2luZyAjZGVmaW5lcyBhcmUgbmVlZGVkIHRvIGdldCBmbGFzaCBlbnZpcm9ubWVudCByaWdodCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQogCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAkweDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCTB4NDAwMDAwCiAKIC8qIFdlIGJvb3QgZnJvbSB0aGlzIGZsYXNoLCBzZWxlY3RlZCB3aXRoIGRpcCBzd2l0Y2ggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0gKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNICiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMiAqIENGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIgKiBDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMiAqIENPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMiAqIENPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEKIApAQCAtMTY4LDExICsxNjgsMTEgQEAKICNkZWZpbmUgQ09ORklHX01FTVNJWkVfSU5fQllURVMKIAogLyotLS1BVEEgUENNQ0lBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUgMHg0MDAwMDAwIC8qIE9mZnNldCB0byBzbG90IDEgRklYTUUhISEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgMHg0MDAwMDAwIC8qIE9mZnNldCB0byBzbG90IDEgRklYTUUhISEgKi8KIAotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSICAweDIwMDAwMDAwCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQkFTRSAgIDB4MjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSX0JBU0UgMHgzMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUiAgMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19CQVNFICAgMHgyODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSX0JBU0UgMHgzMDAwMDAwMAogCiAjZGVmaW5lIENPTkZJR19QQ01DSUFfU0xPVF9BCiAKQEAgLTE4MywzMSArMTgzLDMxIEBACiAjZGVmaW5lIENPTkZJR19JREVfUENNQ0lBIDEKIAogLyogV2Ugb25seSBzdXBwb3J0IG9uZSBzbG90IGZvciBub3cgKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRAkgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX0lPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX0lPX0JBU0UKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkwCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMAogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDIwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDIwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0RDQUNIRV9TSVpFCQkxNjM4NAotI2RlZmluZSBDRkdfSUNBQ0hFX1NJWkUJCTE2Mzg0Ci0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9TSVpFCQkxNjM4NAorI2RlZmluZSBDT05GSUdfU1lTX0lDQUNIRV9TSVpFCQkxNjM4NAorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCiAKICNkZWZpbmUgR1BJT19DQUNPTkZJRyAgKDE8PDApCiAjZGVmaW5lIEdQSU9fRFBBQ09ORklHICgxPDw2KQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2d3ODI2MC5oIGIvaW5jbHVkZS9jb25maWdzL2d3ODI2MC5oCmluZGV4IGUxODc3NjQuLjUzYTAwMWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ndzgyNjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZ3c4MjYwLmgKQEAgLTcyLDcgKzcyLDcgQEAKICAqIDB4NiAgICAgICAweDEgICAgIDY2IDEzMyAgICAgMjY2ICAgIENsb3NlIENsb3NlICBPcGVuCiAgKiAweDYgICAgICAgMHgyICAgICA2NiAxMzMgICAgIDMwMCAgICBDbG9zZSBPcGVuICAgQ2xvc2UKICAqLwotI2RlZmluZSBDRkdfU0JDX01PRENLX0ggMHgwNQorI2RlZmluZSBDT05GSUdfU1lTX1NCQ19NT0RDS19IIDB4MDUKIAogLyogRGVmaW5lIHRoaXMgaWYgeW91IHdhbnQgdG8gYm9vdCBmcm9tIDB4MDAwMDAxMDAuIElmIHlvdSBkb24ndCBkZWZpbmUKICAqIHRoaXMsIHlvdSB3aWxsIG5lZWQgdG8gcHJvZ3JhbSB0aGUgYm9vdGxvYWRlciB0byAweGZmZjAwMDAwLCBhbmQKQEAgLTgwLDQ4ICs4MCw0OCBAQAogICogd2F5IHRvIGRvIHRoYXQgaXMgdG8gcHJvZ3JhbSB0aGUgYm9vdGxvYWRlciBhdCBib3RoIGFkZHJlc3Nlcy4KICAqIEl0IGlzIHN1Z2dlc3RlZCB0aGF0IHlvdSBqdXN0IGxldCBVLUJvb3QgbGl2ZSBhdCAweDAwMDAwMDAwLgogICovCi0jZGVmaW5lIENGR19TQkNfQk9PVF9MT1cgMQorI2RlZmluZSBDT05GSUdfU1lTX1NCQ19CT09UX0xPVyAxCiAKIC8qIFdoYXQgc2hvdWxkIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIG1haW4gRkxBU0ggYmUgYW5kIGhvdyBiaWcgaXMKICAqIGl0IChpbiBNQnl0ZXMpPyBUaGlzIG11c3QgY29udGFpbiBURVhUX0JBU0UgZnJvbSBib2FyZC9zYmM4MjYwL2NvbmZpZy5tawogICogVGhlIG1haW4gRkxBU0ggaXMgd2hpY2hldmVyIGlzIGNvbm5lY3RlZCB0byAqQ1MwLiBVLUJvb3QgZXhwZWN0cwogICogdGhpcyB0byBiZSB0aGUgU0lNTS4KICAqLwotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UgMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gwX1NJWkUgOAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFIDB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfU0laRSA4CiAKLS8qIERlZmluZSBDRkdfRkxBU0hfQ0hFQ0tTVU0gdG8gZW5hYmxlIGZsYXNoIGNoZWNrc3VtIGR1cmluZyBib290LgorLyogRGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0gdG8gZW5hYmxlIGZsYXNoIGNoZWNrc3VtIGR1cmluZyBib290LgogICogTm90ZTogdGhlICdmbGFzaGNoZWNrc3VtJyBlbnZpcm9ubWVudCB2YXJpYWJsZSBtdXN0IGFsc28gYmUgc2V0IHRvICd5Jy4KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQogCiAvKiBXaGF0IHNob3VsZCBiZSB0aGUgYmFzZSBhZGRyZXNzIG9mIFNEUkFNIERJTU0gYW5kIGhvdyBiaWcgaXMKICAqIGl0IChpbiBNYnl0ZXMpPwogICovCi0jZGVmaW5lIENGR19TRFJBTTBfQkFTRSAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfU0laRSA2NAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9CQVNFIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfU0laRSA2NAogCiAvKgogICogRFJBTSB0ZXN0cwotICogICBDRkdfRFJBTV9URVNUIC0gZW5hYmxlcyB0aGUgZm9sbG93aW5nIHRlc3RzLgorICogICBDT05GSUdfU1lTX0RSQU1fVEVTVCAtIGVuYWJsZXMgdGhlIGZvbGxvd2luZyB0ZXN0cy4KICAqCi0gKiAgIENGR19EUkFNX1RFU1RfREFUQSAtIEVuYWJsZXMgdGVzdCBmb3Igc2hvcnRlZCBvciBvcGVuIGRhdGEgbGluZXMKKyAqICAgQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQSAtIEVuYWJsZXMgdGVzdCBmb3Igc2hvcnRlZCBvciBvcGVuIGRhdGEgbGluZXMKICAqICAgICAgICAgICAgICAgICAgICAgICAgRW52aXJvbm1lbnQgdmFyaWFibGUgJ3Rlc3RfZHJhbV9kYXRhJyBtdXN0IGJlCiAgKiAgICAgICAgICAgICAgICAgICAgICAgIHNldCB0byAneScuCi0gKiAgIENGR19EUkFNX1RFU1RfREFUQSAtIEVuYWJsZXMgdGVzdCB0byB2ZXJpZnkgdGhhdCBlYWNoIHdvcmQgaXMgdW5pcXVlbHkKKyAqICAgQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQSAtIEVuYWJsZXMgdGVzdCB0byB2ZXJpZnkgdGhhdCBlYWNoIHdvcmQgaXMgdW5pcXVlbHkKICAqICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc2FibGUuIEVudmlyb25tZW50IHZhcmlhYmxlCiAgKiAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0X2RyYW1fYWRkcmVzcycgbXVzdCBiZSBzZXQgdG8gJ3knLgotICogICBDRkdfRFJBTV9URVNUX1dBTEsgLSBFbmFibGVzIHRlc3QgYSA2NC1iaXQgd2Fsa2luZyBvbmVzIHBhdHRlcm4gdGVzdC4KKyAqICAgQ09ORklHX1NZU19EUkFNX1RFU1RfV0FMSyAtIEVuYWJsZXMgdGVzdCBhIDY0LWJpdCB3YWxraW5nIG9uZXMgcGF0dGVybiB0ZXN0LgogICogICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHRlc3QgdGFrZXMgYWJvdXQgNiBtaW51dGVzIHRvIHRlc3QgNjQgTUIuCiAgKiAgICAgICAgICAgICAgICAgICAgICAgIEVudmlyb25tZW50IHZhcmlhYmxlICd0ZXN0X2RyYW1fd2FsaycgbXVzdCBiZQogICogICAgICAgICAgICAgICAgICAgICAgICBzZXQgdG8gJ3knLgogICovCi0jZGVmaW5lIENGR19EUkFNX1RFU1QKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCi0jZGVmaW5lIENGR19EUkFNX1RFU1RfREFUQQotI2RlZmluZSBDRkdfRFJBTV9URVNUX0FERFJFU1MKLSNkZWZpbmUgQ0ZHX0RSQU1fVEVTVF9XQUxLCi0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fVEVTVAorI2lmIGRlZmluZWQoQ09ORklHX1NZU19EUkFNX1RFU1QpCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1RFU1RfQUREUkVTUworI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fVEVTVF9XQUxLCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1QgKi8KIAogLyoKICAqIEdXODI2MCB3aXRoIDE2IE1CIERJTU06CkBAIC0xNDAsMTAgKzE0MCwxMCBAQAogICogICAgIDB4MDBGNSBGRkIwICAgICBCb2FyZCBJbmZvIERhdGEKICAqICAgICAweDAwRjYgMDAwMCAgICAgTWFsbG9jIEFyZW5hCiAgKiAgICAgICAgICAgOiAgICAgICAgICBDT05GSUdfRU5WX1NFQ1RfU0laRSwgMjU2awotICogICAgICAgICAgIDogICAgICAgICAgQ0ZHX01BTExPQ19MRU4sICAgIDEyOGsKKyAqICAgICAgICAgICA6ICAgICAgICAgIENPTkZJR19TWVNfTUFMTE9DX0xFTiwgICAgMTI4awogICogICAgIDB4MDBGQyAwMDAwICAgICBSQU0gQ29weSBvZiBNb25pdG9yIENvZGUKLSAqICAgICAgICAgICA6ICAgICAgICAgICAgICBDRkdfTU9OSVRPUl9MRU4sICAgMjU2awotICogICAgIDB4MDBGRiBGRkZGICAgICBbRW5kIG9mIFJBTV0sIENGR19TRFJBTV9TSVpFIC0gMQorICogICAgICAgICAgIDogICAgICAgICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9MRU4sICAgMjU2aworICogICAgIDB4MDBGRiBGRkZGICAgICBbRW5kIG9mIFJBTV0sIENPTkZJR19TWVNfU0RSQU1fU0laRSAtIDEKICAqLwogCiAvKgpAQCAtMTYzLDEwICsxNjMsMTAgQEAKICAqICAgICAweDAzRjUgRkZCMCAgICAgQm9hcmQgSW5mbyBEYXRhCiAgKiAgICAgMHgwM0Y2IDAwMDAgICAgIE1hbGxvYyBBcmVuYQogICogICAgICAgICAgIDogICAgICAgICAgQ09ORklHX0VOVl9TRUNUX1NJWkUsIDI1NmsKLSAqICAgICAgICAgICA6ICAgICAgICAgIENGR19NQUxMT0NfTEVOLCAgICAxMjhrCisgKiAgICAgICAgICAgOiAgICAgICAgICBDT05GSUdfU1lTX01BTExPQ19MRU4sICAgIDEyOGsKICAqICAgICAweDAzRkMgMDAwMCAgICAgUkFNIENvcHkgb2YgTW9uaXRvciBDb2RlCi0gKiAgICAgICAgICAgOiAgICAgICAgICAgICAgQ0ZHX01PTklUT1JfTEVOLCAgIDI1NmsKLSAqICAgICAweDAzRkYgRkZGRiAgICAgW0VuZCBvZiBSQU1dLCBDRkdfU0RSQU1fU0laRSAtIDEKKyAqICAgICAgICAgICA6ICAgICAgICAgICAgICBDT05GSUdfU1lTX01PTklUT1JfTEVOLCAgIDI1NmsKKyAqICAgICAweDAzRkYgRkZGRiAgICAgW0VuZCBvZiBSQU1dLCBDT05GSUdfU1lTX1NEUkFNX1NJWkUgLSAxCiAgKi8KIAogCkBAIC0yMzMsMTAgKzIzMywxMCBAQAogICogLSBTZWxlY3QgYnVzIGZvciBiZC9idWZmZXJzIChzZWUgMjgtMTMpCiAgKiAtIEVuYWJsZSBGdWxsIER1cGxleCBpbiBGU01SCiAgKi8KLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTN8Q01YRkNSX1RGMkNTX0NMSzE0KQotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzJ8Q01YRkNSX1JGMkNTX01TS3xDTVhGQ1JfVEYyQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCiAKICNlbGlmIGRlZmluZWQoQ09ORklHX0VUSEVSX09OX0ZDQykgJiYgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAzKQogCkBAIC0yNDYsMTAgKzI0NiwxMCBAQAogICogLSBTZWxlY3QgYnVzIGZvciBiZC9idWZmZXJzIChzZWUgMjgtMTMpCiAgKiAtIEVuYWJsZSBGdWxsIER1cGxleCBpbiBGU01SCiAgKi8KLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDM3xDTVhGQ1JfUkYzQ1NfTVNLfENNWEZDUl9URjNDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYzQ1NfQ0xLMTV8Q01YRkNSX1RGM0NTX0NMSzE2KQotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzN8Q01YRkNSX1JGM0NTX01TS3xDTVhGQ1JfVEYzQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNXxDTVhGQ1JfVEYzQ1NfQ0xLMTYpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCiAKICNlbmRpZiAvKiBDT05GSUdfRVRIRVJfT05fRkNDLCBDT05GSUdfRVRIRVJfSU5ERVggKi8KIApAQCAtMjk3LDEwICsyOTcsMTAgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RQX0ROUwogCiAvKiB1bmRlZiB0aGlzIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAKIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVCAgICAgICI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUICAgICAgIj0+ICIKIAogCiAvKgpAQCAtMzE5LDE2ICszMTksMTYgQEAKIAogCiAvKiBXaGVyZSBkbyB0aGUgaW50ZXJuYWwgcmVnaXN0ZXJzIGxpdmU/ICovCi0jZGVmaW5lIENGR19JTU1SICAgICAgICAweGYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUiAgICAgICAgMHhmMDAwMDAwMAogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmICBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyogV2hhdCBpcyB0aGUgYWRkcmVzcyBvZiBJTyBjb250cm9sbGVyICovCi0jZGVmaW5lIENGR19JT19CQVNFIDB4ZTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JT19CQVNFIDB4ZTAwMDAwMDAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgpAQCAtMzQ0LDQ0ICszNDQsNDQgQEAKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQlNJWkUgICAgICAgIDEwMjQgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NCU0laRSAgICAgICAgMTAyNCAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICAqLwogI2Vsc2UKLSMgIGRlZmluZSBDRkdfQ0JTSVpFICAgICAgICAyNTYgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUgICAgICAgIDI1NiAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAgKi8KICNlbmRpZgogCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFICAgIChDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAgICAoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQogCi0jZGVmaW5lIENGR19NQVhBUkdTICAgICA4ICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTICAgICA4ICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KIAotI2RlZmluZSBDRkdfQkFSR1NJWkUgICAgQ0ZHX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUgICAgQ09ORklHX1NZU19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCiAvKiBDb252ZXJ0IGNsb2NrcyB0byBNSFogd2hlbiBwYXNzaW5nIGJvYXJkIGluZm8gdG8ga2VybmVsLgogICogVGhpcyBtdXN0IGJlIGRlZmluZWQgZm9yIGVhcmlsZXIgMi40IGtlcm5lbHMgKH4yLjQuNCkuCiAgKi8KICNkZWZpbmUgQ09ORklHX0NMT0NLU19JTl9NSFoKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSICAgMHgxMDAwMDAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0haICAgICAgICAgIDEwMDAgICAgIC8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIgICAweDEwMDAwMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haICAgICAgICAgIDEwMDAgICAgIC8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogCiAvKiBtZW10ZXN0IHdvcmtzIGZyb20gdGhlIGVuZCBvZiB0aGUgZXhjZXB0aW9uIHZlY3RvciB0YWJsZQogICogdG8gdGhlIGVuZCBvZiB0aGUgRFJBTSBsZXNzIG1vbml0b3IgYW5kIG1hbGxvYyBhcmVhCiAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAweDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgMHgyMDAwCiAKLSNkZWZpbmUgQ0ZHX1NUQUNLX1VTQUdFICAgICAweDEwMDAwIC8qIFJlc2VydmUgNjRrIGZvciB0aGUgc3RhY2sgdXNhZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TVEFDS19VU0FHRSAgICAgMHgxMDAwMCAvKiBSZXNlcnZlIDY0ayBmb3IgdGhlIHN0YWNrIHVzYWdlICovCiAKLSNkZWZpbmUgQ0ZHX01FTV9FTkRfVVNBR0UgICAoIENGR19NT05JVE9SX0xFTiBcCi0JCQkgICAgKyBDRkdfTUFMTE9DX0xFTiBcCisjZGVmaW5lIENPTkZJR19TWVNfTUVNX0VORF9VU0FHRSAgICggQ09ORklHX1NZU19NT05JVE9SX0xFTiBcCisJCQkgICAgKyBDT05GSUdfU1lTX01BTExPQ19MRU4gXAogCQkJICAgICsgQ09ORklHX0VOVl9TRUNUX1NJWkUgXAotCQkJICAgICsgQ0ZHX1NUQUNLX1VTQUdFICkKKwkJCSAgICArIENPTkZJR19TWVNfU1RBQ0tfVVNBR0UgKQogCi0jZGVmaW5lIENGR19NRU1URVNUX0VORCAgICAgKCBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0IFwKLQkJCSAgICAtIENGR19NRU1fRU5EX1VTQUdFICkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORCAgICAgKCBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCBcCisJCQkgICAgLSBDT05GSUdfU1lTX01FTV9FTkRfVVNBR0UgKQogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0zODksOTggKzM4OSw5OCBAQAogICogWW91IHNob3VsZCBrbm93IHdoYXQgeW91IGFyZSBkb2luZyBpZiB5b3UgbWFrZSBjaGFuZ2VzIGhlcmUuCiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRSAgQ0ZHX0ZMQVNIMF9CQVNFCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFICBDRkdfRkxBU0gwX1NJWkUKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UgIENGR19TRFJBTTBfQkFTRQotI2RlZmluZSBDRkdfU0RSQU1fU0laRSAgQ0ZHX1NEUkFNMF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgQ09ORklHX1NZU19GTEFTSDBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUgIENPTkZJR19TWVNfRkxBU0gwX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFICBDT05GSUdfU1lTX1NEUkFNMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRSAgQ09ORklHX1NZU19TRFJBTTBfU0laRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZHMKICAqLwotI2lmIGRlZmluZWQoQ0ZHX1NCQ19CT09UX0xPVykKLSMgIGRlZmluZSAgQ0ZHX1NCQ19IUkNXX0JPT1RfRkxBR1MgIChIUkNXX0NJUCB8IEhSQ1dfQk1TKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19TQkNfQk9PVF9MT1cpCisjICBkZWZpbmUgIENPTkZJR19TWVNfU0JDX0hSQ1dfQk9PVF9GTEFHUyAgKEhSQ1dfQ0lQIHwgSFJDV19CTVMpCiAjZWxzZQotIyAgZGVmaW5lICBDRkdfU0JDX0hSQ1dfQk9PVF9GTEFHUyAgKDApCi0jZW5kaWYgLyogZGVmaW5lZChDRkdfU0JDX0JPT1RfTE9XKSAqLworIyAgZGVmaW5lICBDT05GSUdfU1lTX1NCQ19IUkNXX0JPT1RfRkxBR1MgICgwKQorI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1NZU19TQkNfQk9PVF9MT1cpICovCiAKLS8qIGdldCB0aGUgSFJDVyBJU0IgZmllbGQgZnJvbSBDRkdfSU1NUiAqLwotI2RlZmluZSBDRkdfU0JDX0hSQ1dfSU1NUiAgICggKChDRkdfSU1NUiAmIDB4MTAwMDAwMDApID4+IDEwKSB8IFwKLQkJICAoKENGR19JTU1SICYgMHgwMTAwMDAwMCkgPj4gIDcpIHwgXAotCQkgICgoQ0ZHX0lNTVIgJiAweDAwMTAwMDAwKSA+PiAgNCkgKQorLyogZ2V0IHRoZSBIUkNXIElTQiBmaWVsZCBmcm9tIENPTkZJR19TWVNfSU1NUiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NCQ19IUkNXX0lNTVIgICAoICgoQ09ORklHX1NZU19JTU1SICYgMHgxMDAwMDAwMCkgPj4gMTApIHwgXAorCQkgICgoQ09ORklHX1NZU19JTU1SICYgMHgwMTAwMDAwMCkgPj4gIDcpIHwgXAorCQkgICgoQ09ORklHX1NZU19JTU1SICYgMHgwMDEwMDAwMCkgPj4gIDQpICkKIAotI2RlZmluZSBDRkdfSFJDV19NQVNURVIgICAgICggSFJDV19CUFMxMSAgICAgICAgICAgICAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUiAgICAgKCBIUkNXX0JQUzExICAgICAgICAgICAgICAgIHwgXAogCQkgIEhSQ1dfRFBQQzExICAgICAgICAgICAgICAgfCBcCi0JCSAgQ0ZHX1NCQ19IUkNXX0lNTVIgICAgICAgICB8IFwKKwkJICBDT05GSUdfU1lTX1NCQ19IUkNXX0lNTVIgICAgICAgICB8IFwKIAkJICBIUkNXX01NUjAwICAgICAgICAgICAgICAgIHwgXAogCQkgIEhSQ1dfTEJQQzExICAgICAgICAgICAgICAgfCBcCiAJCSAgSFJDV19BUFBDMTAgICAgICAgICAgICAgICB8IFwKIAkJICBIUkNXX0NTMTBQQzAwICAgICAgICAgICAgIHwgXAotCQkgIChDRkdfU0JDX01PRENLX0ggJiBIUkNXX01PRENLX0gxMTExKSAgfCBcCi0JCSAgQ0ZHX1NCQ19IUkNXX0JPT1RfRkxBR1MgKQorCQkgIChDT05GSUdfU1lTX1NCQ19NT0RDS19IICYgSFJDV19NT0RDS19IMTExMSkgIHwgXAorCQkgIENPTkZJR19TWVNfU0JDX0hSQ1dfQk9PVF9GTEFHUyApCiAKIC8qIG5vIHNsYXZlcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEgICAgIDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUyICAgICAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMyAgICAgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQgICAgIDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU1ICAgICAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNiAgICAgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMSAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNCAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1ICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNyAgICAgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgIENGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgIDB4NDAwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgIDEyOCAvKiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICAgQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAweDQwMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgMTI4IC8qIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUICAgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKLSAqIE5vdGUgYWxzbyB0aGF0IHRoZSBsb2dpYyB0aGF0IHNldHMgQ0ZHX1JBTUJPT1QgaXMgcGxhdGZvcm0gZGVwZW5kZW50LgorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIE5vdGUgYWxzbyB0aGF0IHRoZSBsb2dpYyB0aGF0IHNldHMgQ09ORklHX1NZU19SQU1CT09UIGlzIHBsYXRmb3JtIGRlcGVuZGVudC4KICAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIENGR19GTEFTSDBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOICAgICAoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTiAgICAgICgxMjggKiAxMDI0KSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gICAgICgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTiAgICAgICgxMjggKiAxMDI0KSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1ogICAgICAgKDggKiAxMDI0ICogMTAyNCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWiAgICAgICAoOCAqIDEwMjQgKiAxMDI0KSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgMSAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUICAgIDMyICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICAgMSAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICAzMiAgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUICA4MDAwIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVCAgMSAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICA4MDAwIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQgIDEgICAgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSCAgIDEKIAogI2lmZGVmIENPTkZJR19FTlZfSU5fT1dOX1NFQ1QKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgIChDRkdfTU9OSVRPUl9CQVNFICsgICgyNTYgKiAxMDI0KSkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSArICAoMjU2ICogMTAyNCkpCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUgICAoMjU2ICogMTAyNCkKICNlbHNlCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFICAgICAgICAoMTYgKiAxMDI0KS8qIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICAqLwotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREICAoKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pIC0gQ09ORklHX0VOVl9TSVpFKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREICAoKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikgLSBDT05GSUdfRU5WX1NJWkUpCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUgKDI1NiAqIDEwMjQpLyogc2VlIFJFQURNRSAtIGVudiBzZWN0IHJlYWwgc2l6ZSAgKi8KICNlbmRpZiAvKiBDT05GSUdfRU5WX0lOX09XTl9TRUNUICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUgIDMyICAgICAgLyogRm9yIE1QQzgyNjAgQ1BVICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgIDMyICAgICAgLyogRm9yIE1QQzgyNjAgQ1BVICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQgICAgNSAgIC8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVCAgICA1ICAgLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00OTMsMzYgKzQ5MywzNiBAQAogICoKICAqIEhJRDEgaGFzIG9ubHkgcmVhZC1vbmx5IGluZm9ybWF0aW9uIC0gbm90aGluZyB0byBzZXQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVCAgIChISUQwX0lDRSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQgICAoSElEMF9JQ0UgIHxcCiAJCQkgSElEMF9EQ0UgIHxcCiAJCQkgSElEMF9JQ0ZJIHxcCiAJCQkgSElEMF9EQ0kgIHxcCiAJCQkgSElEMF9JRkVNIHxcCiAJCQkgSElEMF9BQkUpCiAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwgIChISUQwX0lDRSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMICAoSElEMF9JQ0UgIHxcCiAJCQkgSElEMF9JRkVNIHxcCiAJCQkgSElEMF9BQkUgIHxcCiAJCQkgSElEMF9FTUNQKQotI2RlZmluZSBDRkdfSElEMiAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMiAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNUiAtIFJlc2V0IE1vZGUgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUk1SICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUk1SICAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEJDUiAtIEJ1cyBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgNC0yNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19CQ1IgICAgIChCQ1JfRVRNKQorI2RlZmluZSBDT05GSUdfU1lTX0JDUiAgICAgKEJDUl9FVE0pCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgNC0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IgIChTSVVNQ1JfRFBQQzExICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUiAgKFNJVU1DUl9EUFBDMTEgIHxcCiAJCSAgICAgU0lVTUNSX0wyQ1BDMDAgfFwKIAkJICAgICBTSVVNQ1JfQVBQQzEwICB8XAogCQkgICAgIFNJVU1DUl9NTVIwMCkKQEAgLTUzNCw3ICs1MzQsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogV2F0Y2hkb2cgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIDYweCBCdXMgTW9uaXRvciBlbmFibGUKICAqLwotI2RlZmluZSBDRkdfU1lQQ1IgICAoU1lQQ1JfU1dUQyB8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSICAgKFNZUENSX1NXVEMgfFwKIAkJICAgICBTWVBDUl9CTVQgIHxcCiAJCSAgICAgU1lQQ1JfUEJNRSB8XAogCQkgICAgIFNZUENSX0xCTUUgfFwKQEAgLTU0Nyw3ICs1NDcsNyBAQAogICogQ2xlYXIgb25jZSBwZXIgU2Vjb25kIGFuZCBBbGFybSBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLAogICogYW5kIGVuYWJsZSBUaW1lIENvdW50ZXIKICAqLwotI2RlZmluZSBDRkdfVE1DTlRTQyAoVE1DTlRTQ19TRUMgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDIChUTUNOVFNDX1NFQyB8XAogCQkgICAgIFRNQ05UU0NfQUxSIHxcCiAJCSAgICAgVE1DTlRTQ19UQ0YgfFwKIAkJICAgICBUTUNOVFNDX1RDRSkKQEAgLTU1OCw3ICs1NTgsNyBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IgICAoUElTQ1JfUFMgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IgICAoUElTQ1JfUFMgIHxcCiAJCSAgICAgUElTQ1JfUFRGIHxcCiAJCSAgICAgUElTQ1JfUFRFKQogCkBAIC01NjYsMTMgKzU2NiwxMyBAQAogICogU0NDUiAtIFN5c3RlbSBDbG9jayBDb250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgOS04CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IgICAgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSQ0NSIC0gUklTQyBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgIDEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUiAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUiAgICAwCiAKIC8qCiAgKiBJbml0aWFsaXplIE1lbW9yeSBDb250cm9sbGVyOgpAQCAtNjE4LDcgKzYxOCw3IEBACiAgKiAgICAgLSBObyBkYXRhIHBpcGVsaW5pbmcgaXMgZG9uZQogICogICAgIC0gVmFsaWQKICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTSAgKChDRkdfRkxBU0gwX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0gICgoQ09ORklHX1NZU19GTEFTSDBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgIEJSeF9QU18zMiAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgIHxcCiAJCQkgIEJSeF9WKQpAQCAtNjM3LDcgKzYzNyw3IEBACiAgKiAgICAgLSBPbmUgaWRsZSBjbG9jayBpcyBpbnNlcnRlZCBiZXR3ZWVuIGEgcmVhZCBhY2Nlc3MgZnJvbSB0aGUKICAqICAgICAgIGN1cnJlbnQgYmFuayBhbmQgdGhlIG5leHQgYWNjZXNzLgogICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNICAoTUVHX1RPX0FNKENGR19GTEFTSDBfU0laRSkgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNICAoTUVHX1RPX0FNKENPTkZJR19TWVNfRkxBU0gwX1NJWkUpIHxcCiAJCQkgT1J4R19DU05UICAgICAgICAgIHxcCiAJCQkgT1J4R19BQ1NfRElWMSAgICAgIHxcCiAJCQkgT1J4R19TQ1lfNV9DTEsgICAgIHxcCkBAIC02NzMsNyArNjczLDcgQEAKICAqICAgICAtIE5vIGRhdGEgcGlwZWxpbmluZyBpcyBkb25lCiAgKiAgICAgLSBWYWxpZAogICovCi0jZGVmaW5lIENGR19CUjJfUFJFTElNICAoKENGR19TRFJBTTBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTSAgKChDT05GSUdfU1lTX1NEUkFNMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSAgQlJ4X1BTXzY0ICAgICAgICAgIHxcCiAJCQkgIEJSeF9NU19TRFJBTV9QICAgICB8XAogCQkJICBCUnhfVikKQEAgLTY4Nyw4ICs2ODcsOCBAQAogICogICAgIC0gQmFjay10by1iYWNrIHBhZ2UgbW9kZQogICogICAgIC0gSW50ZXJuYWwgYmFuayBpbnRlcmxlYXZpbmcgd2l0aGluIHNhdmUgZGV2aWNlIGVuYWJsZWQKICAqLwotI2lmIChDRkdfU0RSQU0wX1NJWkUgPT0gMTYpCi0jZGVmaW5lIENGR19PUjJfUFJFTElNICAoTUVHX1RPX0FNKENGR19TRFJBTTBfU0laRSkgfFwKKyNpZiAoQ09ORklHX1NZU19TRFJBTTBfU0laRSA9PSAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNICAoTUVHX1RPX0FNKENPTkZJR19TWVNfU0RSQU0wX1NJWkUpIHxcCiAJCQkgT1J4U19CUERfMiAgICAgICAgIHxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E5IHxcCiAJCQkgT1J4U19OVU1SXzExKQpAQCAtNzE2LDcgKzcxNiw3IEBACiAgKiAgICAgUmVmOiBTZWN0aW9uIDEwLjMuMyBvbiBwYWdlIDEwLTIxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1BTRE1SICAgKFBTRE1SX1JGRU4gICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUiAgIChQU0RNUl9SRkVOICAgICAgIHxcCiAJCSAgICAgUFNETVJfU0RBTV9BMTRfSVNfQTUgfFwKIAkJICAgICBQU0RNUl9CU01BX0ExNl9BMTggICB8XAogCQkgICAgIFBTRE1SX1NEQTEwX1BCSTBfQTkgIHxcCkBAIC03MjYsNyArNzI2LDcgQEAKIAkJICAgICBQU0RNUl9MRE9UT1BSRV8xQyAgICB8XAogCQkgICAgIFBTRE1SX1dSQ18xQyAgICAgICAgIHxcCiAJCSAgICAgUFNETVJfQ0xfMikKLSNlbmRpZiAvKiAoQ0ZHX1NEUkFNMF9TSVpFID09IDE2KSAqLworI2VuZGlmIC8qIChDT05GSUdfU1lTX1NEUkFNMF9TSVpFID09IDE2KSAqLwogCiAvKiBXaXRoIGEgNjQgTUIgRElNTSwgdGhlIE9SMiBpcyBjb25maWd1cmVkIGFzIGZvbGxvd3M6CiAgKgpAQCAtNzM3LDggKzczNyw4IEBACiAgKiAgICAgLSBCYWNrLXRvLWJhY2sgcGFnZSBtb2RlCiAgKiAgICAgLSBJbnRlcm5hbCBiYW5rIGludGVybGVhdmluZyB3aXRoaW4gc2F2ZSBkZXZpY2UgZW5hYmxlZAogICovCi0jaWYgKENGR19TRFJBTTBfU0laRSA9PSA2NCkKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0gIChNRUdfVE9fQU0oQ0ZHX1NEUkFNMF9TSVpFKSB8XAorI2lmIChDT05GSUdfU1lTX1NEUkFNMF9TSVpFID09IDY0KQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0gIChNRUdfVE9fQU0oQ09ORklHX1NZU19TRFJBTTBfU0laRSkgfFwKIAkgICAgIE9SeFNfQlBEXzQgICAgICAgICB8XAogCSAgICAgT1J4U19ST1dTVF9QQkkwX0E4ICAgICB8XAogCSAgICAgT1J4U19OVU1SXzEyKQpAQCAtNzY2LDcgKzc2Niw3IEBACiAgKiAgICAgUmVmOiBTZWN0aW9uIDEwLjMuMyBvbiBwYWdlIDEwLTIxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1BTRE1SICAgKFBTRE1SX1JGRU4gICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUiAgIChQU0RNUl9SRkVOICAgICAgIHxcCiAJCSAgICAgUFNETVJfU0RBTV9BMTRfSVNfQTUgfFwKIAkJICAgICBQU0RNUl9CU01BX0ExNF9BMTYgICB8XAogCQkgICAgIFBTRE1SX1NEQTEwX1BCSTBfQTkgIHxcCkBAIC03NzYsMTAgKzc3NiwxMCBAQAogCQkgICAgIFBTRE1SX0xET1RPUFJFXzFDICAgIHxcCiAJCSAgICAgUFNETVJfV1JDXzFDICAgICAgICAgfFwKIAkJICAgICBQU0RNUl9DTF8yKQotI2VuZGlmICAvKiAoQ0ZHX1NEUkFNMF9TSVpFID09IDY0KSAqLworI2VuZGlmICAvKiAoQ09ORklHX1NZU19TRFJBTTBfU0laRSA9PSA2NCkgKi8KIAotI2RlZmluZSBDRkdfUFNSVCAgICAweDBlCi0jZGVmaW5lIENGR19NUFRQUiAgIE1QVFBSX1BUUF9ESVYzMgorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQgICAgMHgwZQorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSICAgTVBUUFJfUFRQX0RJVjMyCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtODA0LDE2ICs4MDQsMTYgQEAKICAqICAgICAtIDExIHdhaXQgc3RhdGVzCiAgKi8KIAotI2lmZGVmIENGR19JT19CQVNFCi0jICBkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0gICgoQ0ZHX0lPX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKKyNpZmRlZiBDT05GSUdfU1lTX0lPX0JBU0UKKyMgIGRlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0gICgoQ09ORklHX1NZU19JT19CQVNFICYgQlJ4X0JBX01TSykgIHxcCiAJCQkgICAgQlJ4X1BTXzggICAgICAgICAgICAgICAgICAgfFwKIAkJCSAgICBCUnhfTVNfR1BDTV9MICAgICAgICAgICAgICB8XAogCQkJICAgIEJSeF9WKQogCi0jICBkZWZpbmUgQ0ZHX09SNF9QUkVMSU0gICAoT1J4R19BTV9NU0sgICAgICAgICAgICAgICAgfFwKKyMgIGRlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0gICAoT1J4R19BTV9NU0sgICAgICAgICAgICAgICAgfFwKIAkJCSAgICBPUnhHX1NDWV8xMV9DTEsgICAgICAgICAgICB8XAogCQkJICAgIE9SeEdfRUhUUikKLSNlbmRpZiAvKiBDRkdfSU9fQkFTRSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfSU9fQkFTRSAqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9oYW1tZXJoZWFkLmggYi9pbmNsdWRlL2NvbmZpZ3MvaGFtbWVyaGVhZC5oCmluZGV4IDU0MjZjN2EuLjMxN2EzZDcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9oYW1tZXJoZWFkLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2hhbW1lcmhlYWQuaApAQCAtMjksNyArMjksNyBAQAogI2RlZmluZSBDT05GSUdfQVQzMkFQNzAwMAkJMQogI2RlZmluZSBDT05GSUdfSEFNTUVSSEVBRAkJMQogCi0jZGVmaW5lIENGR19IWgkJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkJMTAwMAogCiAvKgogICogU2V0IHVwIHRoZSBQTEwgdG8gcnVuIGF0IDEyNSBNSHosIHRoZSBDUFUgdG8gcnVuIGF0IHRoZSBQTEwKQEAgLTM3LDE1ICszNywxNSBAQAogICogYW5kIHRoZSBQQkEgYnVzIHRvIHJ1biBhdCAxLzQgdGhlIFBMTCBmcmVxdWVuY3kuCiAgKi8KICNkZWZpbmUgQ09ORklHX1BMTAkJCTEKLSNkZWZpbmUgQ0ZHX1BPV0VSX01BTkFHRVIJCTEKLSNkZWZpbmUgQ0ZHX09TQzBfSFoJCQkyNTAwMDAwMAotI2RlZmluZSBDRkdfUExMMF9ESVYJCQkxCi0jZGVmaW5lIENGR19QTEwwX01VTAkJCTUKLSNkZWZpbmUgQ0ZHX1BMTDBfU1VQUFJFU1NfQ1lDTEVTCTE2Ci0jZGVmaW5lIENGR19DTEtESVZfQ1BVCQkJMAotI2RlZmluZSBDRkdfQ0xLRElWX0hTQgkJCTEKLSNkZWZpbmUgQ0ZHX0NMS0RJVl9QQkEJCQkyCi0jZGVmaW5lIENGR19DTEtESVZfUEJCCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BPV0VSX01BTkFHRVIJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19PU0MwX0haCQkJMjUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX0RJVgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX01VTAkJCTUKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX1NVUFBSRVNTX0NZQ0xFUwkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9DUFUJCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX0hTQgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfUEJBCQkJMgorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9QQkIJCQkxCiAKIC8qCiAgKiBUaGUgUExMT1BUIHJlZ2lzdGVyIGNvbnRyb2xzIHRoZSBQTEwgbGlrZSB0aGlzOgpAQCAtNTQsNyArNTQsNyBAQAogICoKICAqIFdlIHdhbnQgaWNwPTEgKGRlZmF1bHQpIGFuZCBpdmNvPTAgKDgwLTE2MCBNSHopIG9yIGl2Y289MiAoMTUwLTI0ME1IeikuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMTDBfT1BUCQkJMHgwNAorI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfT1BUCQkJMHgwNAogCiAjZGVmaW5lIENPTkZJR19VU0FSVDEJCQkxCiAKQEAgLTExOCw1NSArMTE4LDU1IEBACiAjZGVmaW5lIENPTkZJR19BVE1FTF9VU0FSVAkJMQogI2RlZmluZSBDT05GSUdfTUFDQgkJCTEKICNkZWZpbmUgQ09ORklHX1BJTzIJCQkxCi0jZGVmaW5lIENGR19OUl9QSU9TCQkJNQotI2RlZmluZSBDRkdfSFNEUkFNQwkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUl9QSU9TCQkJNQorI2RlZmluZSBDT05GSUdfU1lTX0hTRFJBTUMJCQkxCiAjZGVmaW5lIENPTkZJR19NTUMJCQkxCiAjZGVmaW5lIENPTkZJR19BVE1FTF9NQ0kJCTEKIAotI2RlZmluZSBDRkdfRENBQ0hFX0xJTkVTWgkJMzIKLSNkZWZpbmUgQ0ZHX0lDQUNIRV9MSU5FU1oJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWgkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfTElORVNaCQkzMgogCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCQkxCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkxCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkxCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkJMHg4MDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTEzNQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJCTB4ODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTEzNQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJCUNGR19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAotI2RlZmluZSBDRkdfSU5UUkFNX0JBU0UJCQkweDI0MDAwMDAwCi0jZGVmaW5lIENGR19JTlRSQU1fU0laRQkJCTB4ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJBTV9CQVNFCQkJMHgyNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJBTV9TSVpFCQkJMHg4MDAwCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJCTB4MTAwMDAwMDAKIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICQkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJCTY1NTM2Ci0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDRkdfRkxBU0hfQkFTRSArIENGR19GTEFTSF9TSVpFIC0gQ09ORklHX0VOVl9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19GTEFTSF9TSVpFIC0gQ09ORklHX0VOVl9TSVpFKQogCi0jZGVmaW5lIENGR19JTklUX1NQX0FERFIJCShDRkdfSU5UUkFNX0JBU0UgKyBDRkdfSU5UUkFNX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9BRERSCQkoQ09ORklHX1NZU19JTlRSQU1fQkFTRSArIENPTkZJR19TWVNfSU5UUkFNX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCQkoMjU2KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJCSgyNTYqMTAyNCkKIAotI2RlZmluZSBDRkdfRE1BX0FMTE9DX0xFTgkJKDE2Mzg0KQorI2RlZmluZSBDT05GSUdfU1lTX0RNQV9BTExPQ19MRU4JCSgxNjM4NCkKIAogLyogQWxsb3cgNE1CIGZvciB0aGUga2VybmVsIHJ1bi10aW1lIGltYWdlICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCQkoQ0ZHX1NEUkFNX0JBU0UgKyAweDAwNDAwMDAwKQotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JCSgxNiAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MDA0MDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JCSgxNiAqIDEwMjQpCiAKIC8qIE90aGVyIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgdGhhdCBzaG91bGRuJ3QgaGF2ZSB0byBjaGFuZ2UgYWxsIHRoYXQgb2Z0ZW4gKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJCSJIYW1tZXJoZWFkPiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCQkxNgotI2RlZmluZSBDRkdfUEJTSVpFCQkJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJCSJIYW1tZXJoZWFkPiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQlDRkdfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCQkoQ0ZHX01FTVRFU1RfU1RBUlQgKyAweDFmMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQkoQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICsgMHgxZjAwMDAwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSB7IDExNTIwMCwgMzg0MDAsIDE5MjAwLCA5NjAwLCAyNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSB7IDExNTIwMCwgMzg0MDAsIDE5MjAwLCA5NjAwLCAyNDAwIH0KIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9oY3U0LmggYi9pbmNsdWRlL2NvbmZpZ3MvaGN1NC5oCmluZGV4IDBhOTgwMGEuLjliMDNhYzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9oY3U0LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2hjdTQuaApAQCAtNDUsNDYgKzQ1LDQ2IEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JKDMyMCAqIDEwMjQpCS8qIFJlc2VydmUgMzIwIGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JKDMyMCAqIDEwMjQpCS8qIFJlc2VydmUgMzIwIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKSAqLwogCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogX211c3RfIGJlIDAJCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmZjgwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAkvKiBfbXVzdF8gYmUgMAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmZjgwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQogCiAvKiAuLi4gd2l0aCBvbi1jaGlwIG1lbW9yeSBoZXJlICg0S0J5dGVzKSAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUiAweEY0MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFIDB4MDAwMDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSIDB4RjQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIDB4MDAwMDEwMDAKIC8qIERvIG5vdCBzZXQgdXAgbG9ja2VkIGRjYWNoZSBhcyBpbml0IHJhbS4gKi8KLSN1bmRlZiBDRkdfSU5JVF9EQ0FDSEVfQ1MKKyN1bmRlZiBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTCiAKIC8qIFVzZSB0aGUgT24tQ2hpcC1NZW1vcnkgKE9DTSkgYXMgYSB0ZW1wb3Jhcnkgc3RhY2sgZm9yIHRoZSBzdGFydHVwIGNvZGUuICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTSAxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00gMQogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSCS8qIE9DTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX1BPU1RfV09SRF9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJLyogT0NNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NgkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qCi0gKiBJZiBDRkdfRVhUX1NFUklBTF9DTE9DSywgdGhlbiB0aGUgVUFSVCBkaXZpc29yIGlzIDEuCi0gKiBJZiBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5LCB0aGVuIFVBUlQgZGl2aXNvciBpcyAzMS4KLSAqIE90aGVyd2lzZSwgVUFSVCBkaXZpc29yIGlzIGRldGVybWluZWQgYnkgQ1BVIENsb2NrIGFuZCBDRkdfQkFTRV9CQVVEIHZhbHVlLgorICogSWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLLCB0aGVuIHRoZSBVQVJUIGRpdmlzb3IgaXMgMS4KKyAqIElmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5LCB0aGVuIFVBUlQgZGl2aXNvciBpcyAzMS4KKyAqIE90aGVyd2lzZSwgVUFSVCBkaXZpc29yIGlzIGRldGVybWluZWQgYnkgQ1BVIENsb2NrIGFuZCBDT05GSUdfU1lTX0JBU0VfQkFVRCB2YWx1ZS4KICAqIFRoZSBMaW51eCBCQVNFX0JBVUQgZGVmaW5lIHNob3VsZCBtYXRjaCB0aGlzIGNvbmZpZ3VyYXRpb24uCiAgKiAgICBiYXNlQmF1ZCA9IGNwdUNsb2NrLyh1YXJ0RGl2aXNvcioxNikKLSAqIElmIENGR180MDVfVUFSVF9FUlJBVEFfNTkgYW5kIDIwME1IeiBDUFUgY2xvY2ssCisgKiBJZiBDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OSBhbmQgMjAwTUh6IENQVSBjbG9jaywKICAqIHNldCBMaW51eCBCQVNFX0JBVUQgdG8gNDAzMjAwLgogICovCi0jdW5kZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLworI3VuZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCiAjZGVmaW5lIENPTkZJR19TRVJJQUxfTVVMVEkgIDEKIC8qIG5lZWRlZCB0byBiZSBhYmxlIHRvIGRlZmluZSBDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8gKi8KLSN1bmRlZglDRkdfNDA1X1VBUlRfRVJSQVRBXzU5CSAgICAgICAvKiA0MDVHUC9DUiBSZXYuIEQgc2lsaWNvbiAqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECSAgICA2OTEyMDAKKyN1bmRlZglDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OQkgICAgICAgLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogCiAvKiBTaXplIChieXRlcykgb2YgaW50ZXJydXB0IGRyaXZlbiBzZXJpYWwgcG9ydCBidWZmZXIuCiAgKiBTZXQgdG8gMCB0byB1c2UgcG9sbGluZyBpbnN0ZWFkIG9mIGludGVycnVwdHMuCkBAIC05Niw3ICs5Niw3IEBACiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJOTYwMAogCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCQkJCQkJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCQkJCQkJXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMDQsMTggKzEwNCwxOCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKIC8qIGJvYXJkIHByb3ZpZGVzIGl0cyBvd24gZmxhc2hfaW5pdCBjb2RlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfTEVHQUNZCQkxCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJCUZMQVNIX0NGSV84QklUCi0jZGVmaW5lIENGR19GTEFTSF9MRUdBQ1lfNTEyS3g4IDEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJCUZMQVNIX0NGSV84QklUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTEVHQUNZXzUxMkt4OCAxCiAKIC8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudApAQCAtMTM1LDcgKzEzNSw3IEBACiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogLyogUHV0IHRoZSBlbnZpcm9ubWVudCBpbiBGbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSgoLUNGR19NT05JVE9SX0xFTiktQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKCgtQ09ORklHX1NZU19NT05JVE9SX0xFTiktQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJOCoxMDI0CS8qIDggS0IgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTQ3LDIyICsxNDcsMjIgQEAKICAqIEkyQyBzdHVmZiBmb3IgYSBBVE1FTCBBVDI0QzE2ICgya0IgaG9sZGluZyBFTlYsIHdlIGFyZSB1c2luZyB0aGUKICAqIHRoZSBmaXJzdCBpbnRlcm5hbCBJMkMgY29udHJvbGxlciBvZiB0aGUgUFBDNDQwRVB4CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfU1BEX0JVU19OVU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19TUERfQlVTX05VTQkJMAogCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKiBUaGlzIGlzIHRoZSA3Yml0IGFkZHJlc3Mgb2YgdGhlIGRldmljZSwgbm90IGluY2x1ZGluZyBQLiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSIDB4NTAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiAweDUwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCiAKIC8qIFRoZSBFRVBST00gY2FuIGRvIDE2Ynl0ZSAoIDEgPDwgNCApIHBhZ2Ugd3JpdGVzLiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKLSN1bmRlZiBDRkdfSTJDX01VTFRJX0VFUFJPTVMKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCisjdW5kZWYgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUwogCiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QJImVjaG87IgkJCQkJCVwKQEAgLTE3OCw3ICsxNzgsNyBAQAogI2RlZmluZSBDT05GSUdfT1ZFUldSSVRFX0VUSEFERFJfT05DRQogI2RlZmluZSBDT05GSUdfU0VSVkVSSVAJCTE3Mi4yNS4xLjMKIAotI2RlZmluZSBDRkdfVEZUUF9MT0FEQUREUiAweDAxMDAwMDAwIC8qIEAxNiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1RGVFBfTE9BREFERFIgMHgwMTAwMDAwMCAvKiBAMTYgTUIgKi8KIAogI2RlZmluZQlDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCQkJCVwKIAkibmV0ZGV2PWV0aDBcMCIJCQkJCQkJXApAQCAtMjA4LDcgKzIwOCw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJNQkvKiBhdXRvYm9vdCBhZnRlciA1IHNlY29uZHMJKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJMQkvKiBQSFkgYWRkcmVzcwkJCSovCkBAIC0yMTYsNyArMjE2LDcgQEAKICNkZWZpbmUgQ09ORklHX1BIWV9SRVNFVCAgICAgICAgMQkvKiByZXNldCBwaHkgdXBvbiBzdGFydHVwICovCiAKICNkZWZpbmUgQ09ORklHX0hBU19FVEgwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTE2IC8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzQyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYgLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNDICovCiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC0yNTIsNDIgKzI1Miw0MiBAQAogI2RlZmluZSBTUERfRUVQUk9NX0FERFJFU1MgICAgICAweDUwCiAKIC8qIFBPU1Qgc3VwcG9ydCAqLwotI2RlZmluZSBDT05GSUdfUE9TVAkJKENGR19QT1NUX01FTU9SWSAgIHwgXAotCQkJCSBDRkdfUE9TVF9DUFUJICAgfCBcCi0JCQkJIENGR19QT1NUX1VBUlQJICAgfCBcCi0JCQkJIENGR19QT1NUX0kyQwkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfQ0FDSEUJICAgfCBcCi0JCQkJIENGR19QT1NUX0VUSEVSCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9TUFIpCisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX01FTU9SWSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ1BVCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfVUFSVAkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0kyQwkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NBQ0hFCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRVRIRVIJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9TUFIpCiAKLSNkZWZpbmUgQ0ZHX1BPU1RfVUFSVF9UQUJMRQl7VUFSVDBfQkFTRX0KLSNkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfVUFSVF9UQUJMRQl7VUFSVDBfQkFTRX0KKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSAweDQpCiAjdW5kZWYgIENPTkZJR19MT0dCVUZGRVIKLSNkZWZpbmUgQ0ZHX1BPU1RfQ0FDSEVfQUREUgkweDAwODAwMDAwIC8qIGZyZWUgdmlydHVhbCBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOViAvKiBPdGhlcndpc2UgaXQgY2F0Y2hlcyBsb2didWZmZXIgYXMgb3V0cHV0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9DQUNIRV9BRERSCTB4MDA4MDAwMDAgLyogZnJlZSB2aXJ0dWFsIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOViAvKiBPdGhlcndpc2UgaXQgY2F0Y2hlcyBsb2didWZmZXIgYXMgb3V0cHV0ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLQkjZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotCSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisJI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCiAjZGVmaW5lIENPTkZJR19MT09QVyAgICAgICAgICAgIDEgICAgICAgLyogZW5hYmxlIGxvb3B3IGNvbW1hbmQgICAgICAgICAqLwpAQCAtMjk3LDUwICsyOTcsNTAgQEAKICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCiAgKi8KIAotI2RlZmluZSBDRkdfRUJDX0NGRwkweDk4NDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX0NGRwkweDk4NDAwMDAwCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCkgaW5pdGlhbGl6YXRpb24JKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkweDAyMDA1NDAwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJMHhGRkYxODAwMCAgLyogQkFTPTB4RkZGLEJTPTFNQixCVT1SL1csQlc9OGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkweDAyMDA1NDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCTB4RkZGMTgwMDAgIC8qIEJBUz0weEZGRixCUz0xTUIsQlU9Ui9XLEJXPThiaXQgKi8KIAotI2RlZmluZSBDRkdfRUJDX1BCMUFQCTB4MDMwNDEyMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkweDcwMDlBMDAwICAvKiBCQVM9LEJTPU1CLEJVPVIvVyxCVz1iaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJMHgwMzA0MTIwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkweDcwMDlBMDAwICAvKiBCQVM9LEJTPU1CLEJVPVIvVyxCVz1iaXQJKi8KIAotI2RlZmluZSBDRkdfRUJDX1BCMkFQCTB4MDIwNTQ1MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkweDc4MDE4MDAwICAvKiBCQVM9LEJTPU1CLEJVPVIvVyxCVz1iaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJMHgwMjA1NDUwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkweDc4MDE4MDAwICAvKiBCQVM9LEJTPU1CLEJVPVIvVyxCVz1iaXQJKi8KIAotI2RlZmluZSBDRkdfRUJDX1BCM0FQCTB4MDE4NDAzMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkweDdjMGJhMDAwICAvKiBCQVM9LEJTPU1CLEJVPVIvVyxCVz1iaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJMHgwMTg0MDMwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkweDdjMGJhMDAwICAvKiBCQVM9LEJTPU1CLEJVPVIvVyxCVz1iaXQJKi8KIAotI2RlZmluZSBDRkdfRUJDX1BCNEFQCTB4MDE4MDAzMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjRDUgkweDdlMGJhMDAwICAvKiBCQVM9LEJTPU1CLEJVPVIvVyxCVz1iaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJMHgwMTgwMDMwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUgkweDdlMGJhMDAwICAvKiBCQVM9LEJTPU1CLEJVPVIvVyxCVz1iaXQJKi8KIAotI2RlZmluZSBDRkdfR1BJTzBfT1IJMHhGMjdGRkZGRiAgLyogR1BJTyB2YWx1ZSAqLwotI2RlZmluZSBDRkdfR1BJTzBfVENSCTB4N0ZGRTAwMDAgIC8qIEdQSU8gdmFsdWUgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09EUgkweDAwRTg5N0ZDICAvKiBHUElPIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1IJMHhGMjdGRkZGRiAgLyogR1BJTyB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RDUgkweDdGRkUwMDAwICAvKiBHUElPIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT0RSCTB4MDBFODk3RkMgIC8qIEdQSU8gdmFsdWUgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgogICoKICAqIEJSMC8xIGFuZCBPUjAvMSAoRkxBU0gpCiAgKi8KIAotI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UJLyogRkxBU0ggYmFuayAjMAkqLworI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJKi8KICNkZWZpbmUgRkxBU0hfQkFTRTFfUFJFTElNCTAJCS8qIEZMQVNIIGJhbmsgIzEJKi8KIAogCiAvKiBDb25maWd1cmF0aW9uIFBvcnQgbG9jYXRpb24gKi8KICNkZWZpbmUgQ09ORklHX1BPUlRfQUREUgkweEYwMDAwNTAwCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSICAgICAgICAgICAgICAgICAvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyICAgICovCi0jaWZkZWYgIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUiAgICAgICAgICAgICAgICAgLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlciAgICAqLworI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvaGN1NS5oIGIvaW5jbHVkZS9jb25maWdzL2hjdTUuaAppbmRleCA2YjIzODM5Li4xYmE0NmViIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvaGN1NS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9oY3U1LmgKQEAgLTQ4LDQ0ICs0OCw0NCBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkoMzIwICogMTAyNCkJLyogUmVzZXJ2ZSAzMjAga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkoMzIwICogMTAyNCkJLyogUmVzZXJ2ZSAzMjAga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpICovCiAKLSNkZWZpbmUgQ0ZHX1RMQl9GT1JfQk9PVF9GTEFTSCAgMwotI2RlZmluZSBDRkdfQk9PVF9CQVNFX0FERFIJMHhmZmYwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAkvKiBfbXVzdF8gYmUgMAkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmZmODAwMDAJLyogc3RhcnQgb2YgRkxBU0gJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX09DTV9CQVNFCQkweGUwMDEwMDAwICAgICAgLyogb2NtCQkJKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJQ0ZHX09DTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfQkFTRQkJMHhlMDAwMDAwMCAgICAgIC8qIEludGVybmFsIFBDSSByZWdzCSovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UxCUNGR19QQ0lfTUVNQkFTRSAgKyAweDEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRTIJQ0ZHX1BDSV9NRU1CQVNFMSArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMwlDRkdfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RMQl9GT1JfQk9PVF9GTEFTSCAgMworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSCTB4ZmZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIF9tdXN0XyBiZSAwCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmZmODAwMDAJLyogc3RhcnQgb2YgRkxBU0gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0JBU0UJCTB4ZTAwMTAwMDAgICAgICAvKiBvY20JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJQ09ORklHX1NZU19PQ01fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVNFCQkweGUwMDAwMDAwICAgICAgLyogSW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMQlDT05GSUdfU1lTX1BDSV9NRU1CQVNFICArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIJQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UzCUNPTkZJR19TWVNfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAogCiAvKiBEb24ndCBjaGFuZ2UgZWl0aGVyIG9mIHRoZXNlICovCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX0JBU0UJMHhlZjYwMDAwMAkvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRQkweGVmNjAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCiAKLSNkZWZpbmUgQ0ZHX1VTQjJEMF9CQVNFCQkweGUwMDAwMTAwCi0jZGVmaW5lIENGR19VU0JfREVWSUNFCQkweGUwMDAwMDAwCi0jZGVmaW5lIENGR19VU0JfSE9TVAkJMHhlMDAwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQjJEMF9CQVNFCQkweGUwMDAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0RFVklDRQkJMHhlMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9IT1NUCQkweGUwMDAwNDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qIDQ0MEVQeC80NDBHUnggaGF2ZSAxNktCIG9mIGludGVybmFsIFNSQU0sIHNvIG5vIG5lZWQgZm9yIEQtQ2FjaGUJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9CQVNFCS8qIE9DTQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9CQVNFCS8qIE9DTQkJCSovCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkoNCA8PCAxMCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMjU2CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19QT1NUX1dPUkRfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkoNCA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NgkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSN1bmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCisjdW5kZWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCiAjZGVmaW5lIENPTkZJR19TRVJJQUxfTVVMVEkgICAgIDEKIC8qIG5lZWRlZCB0byBiZSBhYmxlIHRvIGRlZmluZQpAQCAtOTksNyArOTksNyBAQAogI3VuZGVmIENPTkZJR19VQVJUMV9DT05TT0xFCiAKICN1bmRlZiBDT05GSUdfQ01EX0hXRkxPVwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJCQkJCQlcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTExNCwxNSArMTE0LDE1IEBACiAjaWZkZWYgIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCiAvKiBQdXQgdGhlIGVudmlyb25tZW50IGFmdGVyIHRoZSBTRFJBTSBhbmQgYm9vdHN0cmFwIGNvbmZpZ3VyYXRpb24gKi8KICNkZWZpbmUgUFJPTV9TSVpFCTIwNDgKLSNkZWZpbmUgQ0ZHX0JPT1NUUkFQX09QVElPTl9PRkZTRVQJIDUxMgotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkgKENGR19CT09TVFJBUF9PUFRJT05fT0ZGU0VUICsgMHgxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09TVFJBUF9PUFRJT05fT0ZGU0VUCSA1MTIKKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJIChDT05GSUdfU1lTX0JPT1NUUkFQX09QVElPTl9PRkZTRVQgKyAweDEwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJKFBST01fU0laRS1DT05GSUdfRU5WX09GRlNFVCkKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogLyogUHV0IHRoZSBlbnZpcm9ubWVudCBpbiBGbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwIC8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSgoLUNGR19NT05JVE9SX0xFTiktQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKCgtQ09ORklHX1NZU19NT05JVE9SX0xFTiktQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJOCoxMDI0CS8qIDggS0IgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTM0LDggKzEzNCw4IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBERFIgU0RSQU0KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQllURVNfU0RSQU0gICAgICAgICgxMjgpCQkvKiAxMjggTUIgb3IgMjU2IE1CCSovCi0jZGVmaW5lIENGR19ERFJfQ0FDSEVEX0FERFIJMHg1MDAwMDAwMAkvKiBzZXR1cCAybmQgVExCIGNhY2hlZCBoZXJlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUJZVEVTX1NEUkFNICAgICAgICAoMTI4KQkJLyogMTI4IE1CIG9yIDI1NiBNQgkqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DQUNIRURfQUREUgkweDUwMDAwMDAwCS8qIHNldHVwIDJuZCBUTEIgY2FjaGVkIGhlcmUgKi8KICN1bmRlZiAgQ09ORklHX0REUl9EQVRBX0VZRQkJLyogRG8gbm90IHVzZSBERFIyIG9wdGltaXphdGlvbgkqLwogI2RlZmluZSBDT05GSUdfRERSX0VDQwkJMQkvKiBlbmFibGUgRUNDCQkJKi8KIApAQCAtMTQ4LDIyICsxNDgsMjIgQEAKICAqIEkyQyBzdHVmZiBmb3IgYSBBVE1FTCBBVDI0QzE2ICgya0IgaG9sZGluZyBFTlYsIHdlIGFyZSB1c2luZyB0aGUKICAqIHRoZSBzZWNvbmQgaW50ZXJuYWwgSTJDIGNvbnRyb2xsZXIgb2YgdGhlIFBQQzQ0MEVQeAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX1NQRF9CVVNfTlVNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19TUERfQlVTX05VTQkxCiAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyogVGhpcyBpcyB0aGUgN2JpdCBhZGRyZXNzIG9mIHRoZSBkZXZpY2UsIG5vdCBpbmNsdWRpbmcgUC4gKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUiAweDUwCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgMHg1MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQogCiAvKiBUaGUgRUVQUk9NIGNhbiBkbyAxNmJ5dGUgKCAxIDw8IDQgKSBwYWdlIHdyaXRlcy4gKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCi0jdW5kZWYgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAorI3VuZGVmIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMKIAogCiAjZGVmaW5lIENPTkZJR19QUkVCT09UCSJlY2hvOyIJCQkJCQlcCkBAIC0xNzksNyArMTc5LDcgQEAKICNkZWZpbmUgQ09ORklHX09WRVJXUklURV9FVEhBRERSX09OQ0UKICNkZWZpbmUgQ09ORklHX1NFUlZFUklQCQkxNzIuMjUuMS4zCiAKLSNkZWZpbmUgQ0ZHX1RGVFBfTE9BREFERFIgMHgwMTAwMDAwMCAvKiBAMTYgTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19URlRQX0xPQURBRERSIDB4MDEwMDAwMDAgLyogQDE2IE1CICovCiAKICNkZWZpbmUJQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJCQkJXAogCSJuZXRkZXY9ZXRoMFwwIgkJCQkJCQlcCkBAIC0yMTgsNyArMjE4LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcwkqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX004OEUxMTExX1BIWQkxCiAjZGVmaW5lCUNPTkZJR19JQk1fRU1BQzRfVjQJMQpAQCAtMjI4LDcgKzIyOCw3IEBACiAjZGVmaW5lIENPTkZJR19QSFlfUkVTRVQgICAgICAgMQkvKiByZXNldCBwaHkgdXBvbiBzdGFydHVwICAgICAgICAgKi8KIAogI2RlZmluZSBDT05GSUdfSEFTX0VUSDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMzIgLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjLiAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMzIgLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjLiAqLwogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI2RlZmluZSBDT05GSUdfSEFTX0VUSDEJMQkvKiBhZGQgc3VwcG9ydCBmb3IgImV0aDFhZGRyIiAqLwpAQCAtMjc4LDQzICsyNzgsNDMgQEAKICNkZWZpbmUgQ09ORklHX0NNRF9VU0IKIAogLyogUE9TVCBzdXBwb3J0ICovCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfTUVNT1JZICAgfCBcCi0JCQkJIENGR19QT1NUX0NQVQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfVUFSVAkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfSTJDCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9DQUNIRQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfRlBVCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9FVEhFUgkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfU1BSKQotI2RlZmluZSBDRkdfUE9TVF9VQVJUX1RBQkxFCXtVQVJUMF9CQVNFfQorI2RlZmluZSBDT05GSUdfUE9TVAkJKENPTkZJR19TWVNfUE9TVF9NRU1PUlkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NQVQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1VBUlQJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9JMkMJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DQUNIRQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0ZQVQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0VUSEVSCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfU1BSKQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfVUFSVF9UQUJMRQl7VUFSVDBfQkFTRX0KIAotI2RlZmluZSBDRkdfUE9TVF9XT1JEX0FERFIJKENGR19HQkxfREFUQV9PRkZTRVQgLSAweDQpCi0jZGVmaW5lIENGR19QT1NUX0NBQ0hFX0FERFIJMHg3ZmZmMDAwMCAvKiBmcmVlIHZpcnR1YWwgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYgLyogT3RoZXJ3aXNlIGl0IGNhdGNoZXMgbG9nYnVmZmVyIGFzIG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0NBQ0hFX0FERFIJMHg3ZmZmMDAwMCAvKiBmcmVlIHZpcnR1YWwgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WIC8qIE90aGVyd2lzZSBpdCBjYXRjaGVzIGxvZ2J1ZmZlciBhcyBvdXRwdXQgKi8KIAogI2RlZmluZSBDT05GSUdfU1VQUE9SVF9WRkFUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSAgICAgICAgIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSAgICAgICAgIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgICAgMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkgICAgICAgIDEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJICAgICAgICAyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgICAyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFICAgICAgICAgICAgICAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCi0jZGVmaW5lIENGR19NQVhBUkdTCSAgICAgICAgMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCSAgICAgICAgQ0ZHX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFICAgICAgICAgICAgICAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCSAgICAgICAgMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkgICAgICAgIENPTkZJR19TWVNfQ0JTSVpFIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAgLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECTB4MEMwMDAwMCAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAgLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCiAjZGVmaW5lIENPTkZJR19MT09QVyAgICAgICAgICAgIDEgICAgICAgLyogZW5hYmxlIGxvb3B3IGNvbW1hbmQgICAgICAgICAqLwpAQCAtMzI4LDgwICszMjgsODAgQEAKICNkZWZpbmUgQ09ORklHX1BDSQkJMQkvKiBpbmNsdWRlIHBjaSBzdXBwb3J0CSAgICAgICAgKi8KICN1bmRlZiBDT05GSUdfUENJX1BOUAkJCS8qIGRvIChub3QpIHBjaSBwbHVnLWFuZC1wbGF5ICAgKi8KICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdCQVNFICAgICAgICAweDgwMDAwMDAwIC8qIFBDSWFkZHIgbWFwIHRvIENGR19QQ0lfTUVNQkFTRSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdCQVNFICAgICAgICAweDgwMDAwMDAwIC8qIFBDSWFkZHIgbWFwIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UqLwogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAotI2RlZmluZSBDRkdfUENJX01BU1RFUl9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MJCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfSUQgICAgICAgMHhjYWZlCS8qIFdoYXRldmVyCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDCQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19JRCAgICAgICAweGNhZmUJLyogV2hhdGV2ZXIJCQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRmxhc2gKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKIC8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCiAvKiBib2FyZCBwcm92aWRlcyBpdHMgb3duIGZsYXNoX2luaXQgY29kZSAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0xFR0FDWQkJMQotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICQlGTEFTSF9DRklfOEJJVAotI2RlZmluZSBDRkdfRkxBU0hfTEVHQUNZXzUxMkt4OCAxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICQlGTEFTSF9DRklfOEJJVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0xFR0FDWV81MTJLeDggMQogCiAvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXh0ZXJuYWwgQnVzIENvbnRyb2xsZXIgKEVCQykgU2V0dXAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTXzEJCTB4QzgwMDAwMDAgLyogQ0FOICovCi0jZGVmaW5lIENGR19DU18yCQkweENDMDAwMDAwIC8qIENQTEQgYW5kIElNQy1CdXMgU3RhbmRhcmQgKi8KLSNkZWZpbmUgQ0ZHX0NQTEQJCUNGR19DU18yCi0jZGVmaW5lIENGR19DU18zCQkweENFMDAwMDAwIC8qIENQTEQgYW5kIElNQy1CdXMgRmFzdCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfMQkJMHhDODAwMDAwMCAvKiBDQU4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DU18yCQkweENDMDAwMDAwIC8qIENQTEQgYW5kIElNQy1CdXMgU3RhbmRhcmQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUExECQlDT05GSUdfU1lTX0NTXzIKKyNkZWZpbmUgQ09ORklHX1NZU19DU18zCQkweENFMDAwMDAwIC8qIENQTEQgYW5kIElNQy1CdXMgRmFzdCAgKi8KIAotI2RlZmluZSBDRkdfQk9PVEZMQVNIX0NTCTAJLyogQm9vdCBGbGFzaCBjaGlwIGNvbm5lY3RlZCB0byBDU3ggKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwMjAwNTQwMAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGRjE4MDAwIC8qIChDRkdfRkxBU0ggfCAweGRhMDAwKSAgKi8KLSNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNGR19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09URkxBU0hfQ1MJMAkvKiBCb290IEZsYXNoIGNoaXAgY29ubmVjdGVkIHRvIENTeCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgwMjAwNTQwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkYxODAwMCAvKiAoQ09ORklHX1NZU19GTEFTSCB8IDB4ZGEwMDApICAqLworI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJKi8KIAogLyogTWVtb3J5IEJhbmsgMSBDQU4tQ2hpcHMgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHgwMjA1NDUwMAotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkweEM4MDE4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQCQkweDAyMDU0NTAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkweEM4MDE4MDAwCiAKIC8qIE1lbW9yeSBCYW5rIDIgQ1BMRC9JTUMtQnVzIHN0YW5kYXJkIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMTg0MDMwMAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweENDMEJBMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAxODQwMzAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweENDMEJBMDAwCiAKIC8qIE1lbW9yeSBCYW5rIDMgSU1DLUJ1cyBmYXN0IG1vZGUgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDAxODAwMzAwCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4Q0UwQkEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDE4MDAzMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCTB4Q0UwQkEwMDAKIAogLyogTWVtb3J5IEJhbmsgNCAobm90IHVzZWQpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jdW5kZWYgQ0ZHX0VCQ19QQjRBUAotI3VuZGVmIENGR19FQkNfUEI0Q1IKKyN1bmRlZiBDT05GSUdfU1lTX0VCQ19QQjRBUAorI3VuZGVmIENPTkZJR19TWVNfRUJDX1BCNENSCiAKIC8qIE1lbW9yeSBCYW5rIDUgKG5vdCB1c2VkKSBpbml0aWFsaXphdGlvbgkJCQkqLwotI3VuZGVmIENGR19FQkNfUEI1QVAKLSN1bmRlZiBDRkdfRUJDX1BCNUNSCisjdW5kZWYgQ09ORklHX1NZU19FQkNfUEI1QVAKKyN1bmRlZiBDT05GSUdfU1lTX0VCQ19QQjVDUgogCi0jZGVmaW5lIEhDVV9DUExEX1ZFUlNJT05fUkVHSVNURVIgKCBDRkdfQ1BMRCArIDB4MEYwMDAwMCApCi0jZGVmaW5lIEhDVV9IV19WRVJTSU9OX1JFR0lTVEVSICAgKCBDRkdfQ1BMRCArIDB4MTQwMDAwMCApCisjZGVmaW5lIEhDVV9DUExEX1ZFUlNJT05fUkVHSVNURVIgKCBDT05GSUdfU1lTX0NQTEQgKyAweDBGMDAwMDAgKQorI2RlZmluZSBIQ1VfSFdfVkVSU0lPTl9SRUdJU1RFUiAgICggQ09ORklHX1NZU19DUExEICsgMHgxNDAwMDAwICkKIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIgICAgICAgICAgICAgICAgIC8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIgICAgKi8KLSNpZmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCi0JI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICAgICAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIgICAgICAgICAgICAgICAgIC8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIgICAgKi8KKyNpZmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorCSNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgICAgICI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvaGVybWVzLmggYi9pbmNsdWRlL2NvbmZpZ3MvaGVybWVzLmgKaW5kZXggZTFhMDg0Ni4uMGRmNDZmYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2hlcm1lcy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9oZXJtZXMuaApAQCAtNjAsNyArNjAsNyBAQAogCSJib290bSIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtODMsMjkgKzgzLDI5IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEYwMDAwMAkvKiAxIC4uLiAxNU1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwRjAwMDAwCS8qIDEgLi4uIDE1TUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfUElPX01PREUJCTAJLyogSURFIGludGVyZmFjZSBpbiBQSU8gTW9kZSAwCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUElPX01PREUJCTAJLyogSURFIGludGVyZmFjZSBpbiBQSU8gTW9kZSAwCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZQlDRkdfQUxMT0NfRFBSQU0JCTEJLyogdXNlIGFsbG9jYXRpb24gcm91dGluZXMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19BTExPQ19EUFJBTQkJMQkvKiB1c2UgYWxsb2NhdGlvbiByb3V0aW5lcwkqLwogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCiAgKiAoYWRkcmVzcyBtYXBwaW5ncywgcmVnaXN0ZXIgaW5pdGlhbCB2YWx1ZXMsIGV0Yy4pCkBAIC0xMTQsNDYgKzExNCw0NiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwCS8qIE5vbi1TdGFuZGFyZCB2YWx1ZSEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwCS8qIE5vbi1TdGFuZGFyZCB2YWx1ZSEJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCiAjaWZkZWYJREVCVUcKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4NDAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTYxLDkgKzE2MSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE3NCwxMCArMTc0LDEwIEBACiAgKiArMHgwMDA0CiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTg1LDcgKzE4NSw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiArMHgwMDAwID0+IDB4MDAwMDAwQzAKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKQEAgLTE5Myw3ICsxOTMsNyBAQAogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqICsweDAyMDAgPT4gMHgwMEMyCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKQEAgLTIwMSw3ICsyMDEsNyBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqICsweDAyNDAgPT4gMHgwMDgyCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjEwLDcgKzIxMCw3IEBACiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdCwgc2V0IFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgIQogICovCiAvKiArMHgwMjg2ID0+IDB4MDBCMEQwQzAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCQkJCQkJCVwKIAkJKAkoMTEgPDwgUExQUkNSX01GX1NISUZUKSB8CQkJXAogCQkJUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUIHwJXAogCQkJLypQTFBSQ1JfQ1NSQ3wqLyBQTFBSQ1JfTFBNX05PUk1BTCB8CQlcCkBAIC0yMjUsNyArMjI1LDcgQEAKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKIC8qICsweDAyODIgPT4gMHgwMzgwMDAwMCAqLwotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMAl8ICAgU0NDUl9UQlMJICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwCXwgICBTQ0NSX1RCUwkgIHwJXAogCQkJIFNDQ1JfUlRESVYJfCAgIFNDQ1JfUlRTRUwJICB8CVwKIAkJCSAvKlNDQ1JfQ1JRRU58Ki8gIC8qU0NDUl9QUlFFTnwqLwlcCiAJCQkgU0NDUl9FQkRGMDAJfCAgIFNDQ1JfREZTWU5DMDAgfAlcCkBAIC0yMzcsNyArMjM3LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogLyogKzB4MDIyMCA9PiAweDAwQzMgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjQ1LDIwICsyNDUsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogLyogKzB4MDlDNCA9PiBUSU1FUD0xICovCi0jZGVmaW5lIENGR19SQ0NSIDB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNRFMgLSBSSVNDIE1pY3JvY29kZSBEZXZlbG9wbWVudCBTdXBwb3J0IENvbnRyb2wgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUk1EUyAwCisjZGVmaW5lIENPTkZJR19TWVNfUk1EUyAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMjczLDE3ICsyNzMsMTcgQEAKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwogLyogYWxsb3cgZm9yIG1heCA0IE1CIG9mIEZsYXNoICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHhGRkMwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZGQzAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweEZGQzAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZGQzAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDExLCBUUkxYID0gMSwgQ1NOVCA9IDEsIFNDWSA9IDUsIEVIVFIgPSAwCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKCBPUl9DU05UX1NBTSB8IC8qT1JfQUNTX0RJVjQgfCovIE9SX0JJIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoIE9SX0NTTlRfU0FNIHwgLypPUl9BQ1NfRElWNCB8Ki8gT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV81X0NMSyB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKIC8qIDggYml0LCBiYW5rIHZhbGlkICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKIAogLyoKICAqIEJSMS9PUjEgLSBTRFJBTQpAQCAtMjk2LDggKzI5Niw4IEBACiAKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIFNEUkFNICovCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JKFNEUkFNX1BSRUxJTV9PUl9BTSB8IFNEUkFNX1RJTUlORyApCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoU0RSQU1fQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JKFNEUkFNX1BSRUxJTV9PUl9BTSB8IFNEUkFNX1RJTUlORyApCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKFNEUkFNX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogLyoKICAqIEJSMi9PUjIgLSBIUFJPMjogUEVCMjI1NiAgIEAgMHhFMDAwMDAwMCwgOCBCaXQgd2lkZQpAQCAtMzA2LDggKzMwNiw4IEBACiAjZGVmaW5lIEhQUk8yX09SX0FNCQkweEZGRkY4MDAwCiAjZGVmaW5lIEhQUk8yX1RJTUlORwkJMHgwMDAwMDkzNAogCi0jZGVmaW5lIENGR19PUjIgKEhQUk8yX09SX0FNIHwgSFBSTzJfVElNSU5HKQotI2RlZmluZSBDRkdfQlIyCSgoSFBSTzJfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyIChIUFJPMl9PUl9BTSB8IEhQUk8yX1RJTUlORykKKyNkZWZpbmUgQ09ORklHX1NZU19CUjIJKChIUFJPMl9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKIAogLyoKICAqIEJSMy9PUjM6IG5vdCB1c2VkCkBAIC0zMjIsMTQgKzMyMiwxNCBAQAogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJOTcJCS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IegkqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvaG1pMTAwMS5oIGIvaW5jbHVkZS9jb25maWdzL2htaTEwMDEuaAppbmRleCBlODE2YjZkLi4xNmIwNmNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvaG1pMTAwMS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9obWkxMDAxLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNkZWZpbmUgQ09ORklHX01QQzUyMDAJCTEJLyogKG1vcmUgcHJlY2lzZWx5IGFuIE1QQzUyMDAgQ1BVKQkqLwogI2RlZmluZSBDT05GSUdfSE1JMTAwMQkJMQkvKiBITUkxMDAxIGJvYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHoJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHoJCSovCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSAkqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdAkJCSovCkBAIC00Nyw3ICs0Nyw3IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1BTQ19DT05TT0xFCTEJLyogY29uc29sZSBpcyBvbiBQU0MxCSovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCS8qIC4uLiBhdCAxMTUyMDAgYnBzCSovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyogUGFydGl0aW9ucyAqLwogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgpAQCAtODEsNyArODEsNyBAQAogI2RlZmluZQlDT05GSUdfVElNRVNUQU1QCTEJLyogUHJpbnQgaW1hZ2UgaW5mbyB3aXRoIHRpbWVzdGFtcCAqLwogCiAjaWYgKFRFWFRfQkFTRSA9PSAweEZGRjAwMDAwKSAvKiBCb290IGxvdyAqLwotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKICNlbmRpZgogCiAvKgpAQCAtMTE2LDQ5ICsxMTYsNDkgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSN1bmRlZiBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjdW5kZWYgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KIAogLyoKICAqIEkyQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIEVFUFJPTSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1OAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1OAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAogCiAvKgogICogUlRDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfUlRDX1BDRjg1NjMKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkJMHg1MQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkJMHg1MQogCiAvKgogICogRmxhc2ggY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwODAwMDAwIC8qIDggTUJ5dGUgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAwODAwMDAwIC8qIDggTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NwkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoVEVYVF9CQVNFKzB4NDAwMDApIC8qIHNlY29uZCBzZWN0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCiAJCQkJCSAgICg9IGNoaXAgc2VsZWN0cykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX0FNRF9SRVNFVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfQU1EX1JFU0VUCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwpAQCAtMTcyLDEyICsxNzIsMTIgQEAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19ESVNQTEFZX0JBU0UJMHg4MDYwMDAwMAotI2RlZmluZSBDRkdfU1RBVFVTMV9CQVNFCTB4ODA2MDAyMDAKLSNkZWZpbmUgQ0ZHX1NUQVRVUzJfQkFTRQkweDgwNjAwMzAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RJU1BMQVlfQkFTRQkweDgwNjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1RBVFVTMV9CQVNFCTB4ODA2MDAyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TVEFUVVMyX0JBU0UJMHg4MDYwMDMwMAogCiAvKiBTZXR0aW5ncyBmb3IgWExCID0gMTMyIE1IeiAqLwogI2RlZmluZSBTRFJBTV9ERFIJIDEKQEAgLTE4OSwyNyArMTg5LDI3IEBACiAjZGVmaW5lIFNEUkFNX1RBUERFTEFZICAweDEwMDAwMDAwCiAKIC8qIFVzZSBPTi1DaGlwIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCiAjaWZkZWYgQ09ORklHX1BPU1QKIC8qIHByZXNlcnZlIHNwYWNlIGZvciB0aGUgcG9zdF93b3JkIGF0IGVuZCBvZiBvbi1jaGlwIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fUE9TVF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKICNlbHNlCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKICNlbmRpZgogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTIyMSwzNiArMjIxLDM2IEBACiAvKgogICogR1BJTyBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDAxMDUxMDA0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4MDEwNTEwMDQKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qIEVuYWJsZSBhbiBhbHRlcm5hdGUsIG1vcmUgZXh0ZW5zaXZlIG1lbW9yeSB0ZXN0ICovCi0jZGVmaW5lIENGR19BTFRfTUVNVEVTVAorI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyoKICAqIEVuYWJsZSBsb29wdyBjb21tYW5kLgpAQCAtMjYxLDM2ICsyNjEsMzYgQEAKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQotI2RlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKICNlbHNlCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCTAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQk9PVENTX1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19CT09UQ1NfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNEZCMDAKLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQlDRkdfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0RkIwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TVEFSVAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQogCiAvKiA4TWJpdCBTUkFNIEAweDgwMTAwMDAwICovCi0jZGVmaW5lIENGR19DUzFfU1RBUlQJCTB4ODAxMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9TSVpFCQkweDAwMTAwMDAwCi0jZGVmaW5lIENGR19DUzFfQ0ZHCQkweDE5QjAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUCQkweDgwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NJWkUJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ0ZHCQkweDE5QjAwCiAKIC8qIEZSQU0gMzJLYnl0ZSBAMHg4MDcwMDAwMCAqLwotI2RlZmluZSBDRkdfQ1MyX1NUQVJUCQkweDgwNzAwMDAwCi0jZGVmaW5lIENGR19DUzJfU0laRQkJMHgwMDAwODAwMAotI2RlZmluZSBDRkdfQ1MyX0NGRwkJMHgxOTgwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9TVEFSVAkJMHg4MDcwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9TSVpFCQkweDAwMDA4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX0NGRwkJMHgxOTgwMAogCiAvKiBEaXNwbGF5IEgxLCBTdGF0dXMgSW5wdXRzLCBFUExEIEAweDgwNjAwMDAwICovCi0jZGVmaW5lIENGR19DUzNfU1RBUlQJCTB4ODA2MDAwMDAKLSNkZWZpbmUgQ0ZHX0NTM19TSVpFCQkweDAwMTAwMDAwCi0jZGVmaW5lIENGR19DUzNfQ0ZHCQkweDAwMDE5ODAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX1NUQVJUCQkweDgwNjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX1NJWkUJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfQ0ZHCQkweDAwMDE5ODAwCiAKLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMworI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiBTdXBwb3J0cyBJREUgaGFyZGRpc2sKQEAgLTMwMiwyNiArMzAyLDI2IEBACiAjdW5kZWYJQ09ORklHX0lERV84eHhfRElSRUNUCQkvKiBEaXJlY3QgSURFICAgIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkyCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMgkvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzCSovCiAKICNkZWZpbmUgQ09ORklHX0lERV9QUkVJTklUCTEKIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfQVRBX0RBVEFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCiAKIC8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUgICAgICAgICAgNAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUgICAgICAgICAgNAogCiAjZGVmaW5lIENPTkZJR19BVEFQSSAgICAgICAgICAgIDEKIApAQCAtMzQ4LDEzICszNDgsMTMgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9JT19QSFlTCUNPTkZJR19QQ0lfSU9fQlVTCiAjZGVmaW5lIENPTkZJR19QQ0lfSU9fU0laRQkweDAxMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lTQV9JTwkJQ09ORklHX1BDSV9JT19CVVMKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU8JCUNPTkZJR19QQ0lfSU9fQlVTCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qIERpc3BsYXkgYWRkcmVzc2VzCQkJCQkJICAgICAgICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNkZWZpbmUgQ0ZHX0RJU1BfQ0hSX1JBTQkoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4MzgpCi0jZGVmaW5lIENGR19ESVNQX0NXT1JECQkoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4MzApCisjZGVmaW5lIENPTkZJR19TWVNfRElTUF9DSFJfUkFNCShDT05GSUdfU1lTX0RJU1BMQVlfQkFTRSArIDB4MzgpCisjZGVmaW5lIENPTkZJR19TWVNfRElTUF9DV09SRAkJKENPTkZJR19TWVNfRElTUExBWV9CQVNFICsgMHgzMCkKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9oeW1vZC5oIGIvaW5jbHVkZS9jb25maWdzL2h5bW9kLmgKaW5kZXggNGM4MzE5My4uMGZkY2RhMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2h5bW9kLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2h5bW9kLmgKQEAgLTg3LDEwICs4NywxMCBAQAogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIDYweCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMxfENNWEZDUl9SRjFDU19NU0t8Q01YRkNSX1RGMUNTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjFDU19DTEsxMHxDTVhGQ1JfVEYxQ1NfQ0xLMTEpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzF8Q01YRkNSX1JGMUNTX01TS3xDTVhGQ1JfVEYxQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjFDU19DTEsxMHxDTVhGQ1JfVEYxQ1NfQ0xLMTEpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQogCiAjIGRlZmluZSBNRElPX1BPUlQJCTAJCS8qIFBvcnQgQSAqLwogIyBkZWZpbmUgTURJT19EQVRBX1BJTk1BU0sJMHgwMDA0MDAwMAkvKiBQaW4gMTMgKi8KQEAgLTEwNCwxMCArMTA0LDEwIEBACiAgKiAtIFJBTSBmb3IgQkQvQnVmZmVycyBpcyBvbiB0aGUgNjB4IEJ1cyAoc2VlIDI4LTEzKQogICogLSBFbmFibGUgRnVsbCBEdXBsZXggaW4gRlNNUgogICovCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzJ8Q01YRkNSX1JGMkNTX01TS3xDTVhGQ1JfVEYyQ1NfTVNLKQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzfENNWEZDUl9URjJDU19DTEsxNCkKLSMgZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzfENNWEZDUl9URjJDU19DTEsxNCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCiAKICMgZGVmaW5lIE1ESU9fUE9SVAkJMAkJLyogUG9ydCBBICovCiAjIGRlZmluZSBNRElPX0RBVEFfUElOTUFTSwkweDAwMDAwMDQwCS8qIFBpbiAyNSAqLwpAQCAtMTIxLDEwICsxMjEsMTAgQEAKICAqIC0gUkFNIGZvciBCRC9CdWZmZXJzIGlzIG9uIHRoZSA2MHggQnVzIChzZWUgMjgtMTMpCiAgKiAtIEVuYWJsZSBGdWxsIER1cGxleCBpbiBGU01SCiAgKi8KLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDM3xDTVhGQ1JfUkYzQ1NfTVNLfENNWEZDUl9URjNDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYzQ1NfQ0xLMTV8Q01YRkNSX1RGM0NTX0NMSzE2KQotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMzfENNWEZDUl9SRjNDU19NU0t8Q01YRkNSX1RGM0NTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYzQ1NfQ0xLMTV8Q01YRkNSX1RGM0NTX0NMSzE2KQorIyBkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjIGRlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKIAogIyBkZWZpbmUgTURJT19QT1JUCQkwCQkvKiBQb3J0IEEgKi8KICMgZGVmaW5lIE1ESU9fREFUQV9QSU5NQVNLCTB4MDAwMDAxMDAJLyogUGluIDIzICovCkBAIC0yNTIsNTMgKzI1Miw1MyBAQAogLyoKICAqIEh5bW9kIHNwZWNpZmljIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSN1bmRlZglDRkdfSFlNT0RfREJMRURTCQkJLyogd2FsayBtZXp6IGJvYXJkIExFRHMgKi8KKyN1bmRlZglDT05GSUdfU1lTX0hZTU9EX0RCTEVEUwkJCS8qIHdhbGsgbWV6eiBib2FyZCBMRURzICovCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAzYzAwMDAwCS8qIDQgLi4uIDYwIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAzYzAwMDAwCS8qIDQgLi4uIDYwIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfQ0xLU19JTl9IWgkJMQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJMQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKLSNkZWZpbmUJQ0ZHX0kyQ19TUEVFRAkJNTAwMDAKLSNkZWZpbmUJQ0ZHX0kyQ19TTEFWRQkJMHg3ZQorI2RlZmluZQlDT05GSUdfU1lTX0kyQ19TUEVFRAkJNTAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N2UKIAogLyogdGhlc2UgYXJlIGZvciB0aGUgU1QgTTI0QzAyIDJrYml0IHNlcmlhbCBpMmMgZWVwcm9tICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkJLyogYmFzZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTEJCS8qIGJ5dGVzIG9mIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkJLyogYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkxCQkvKiBieXRlcyBvZiBhZGRyZXNzICovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIiAgICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwogCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTQJLyogMTYgYnl0ZSB3cml0ZSBwYWdlIHNpemUgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CS8qIDE2IGJ5dGUgd3JpdGUgcGFnZSBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMJMQkJLyogaHltb2QgaGFzIHR3byBlZXByb21zICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMJMQkJLyogaHltb2QgaGFzIHR3byBlZXByb21zICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDUxCS8qIHBoaWxpcHMgUENGODU2MyBSVEMgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDUxCS8qIHBoaWxpcHMgUENGODU2MyBSVEMgYWRkcmVzcyAqLwogCiAvKgogICogc3RhbmRhcmQgZHR0IHNlbnNvciBjb25maWd1cmF0aW9uIC0gYm90dG9tIGJpdCB3aWxsIGRldGVybWluZSBsb2NhbCBvcgogICogcmVtb3RlIHNlbnNvciBvZiB0aGUgQURNMTAyMSwgdGhlIHJlc3QgZGV0ZXJtaW5lcyBpbmRleCBpbnRvCi0gKiBDRkdfRFRUX0FETTEwMjEgYXJyYXkgYmVsb3cuCisgKiBDT05GSUdfU1lTX0RUVF9BRE0xMDIxIGFycmF5IGJlbG93LgogICoKICAqIE9uIEhZTU9EIGJvYXJkLCB0aGUgcmVtb3RlIHNlbnNvciBzaG91bGQgYmUgY29ubmVjdGVkIHRvIHRoZSBNUEM4MjYwCiAgKiB0ZW1wZXJhdHVyZSBkaW9kZSB0aGluZ3ksIGJ1dCBhbiBlcnJhdGEgc2FpZCB0aGlzIGRpZG4ndCB3b3JrIGFuZApAQCAtMzIzLDcgKzMyMyw3IEBACiAgKiAtIGxvY2FsIHRlbXAgc2Vuc29yIGVuYWJsZWQsIG1pbiBzZXQgdG8gMCBkZWcsIG1heCBzZXQgdG8gODUgZGVnCiAgKiAtIHJlbW90ZSB0ZW1wIHNlbnNvciBkaXNhYmxlZCAoc2VlIGNvbW1lbnQgZm9yIENPTkZJR19EVFRfU0VOU09SUyBhYm92ZSkKICAqLwotI2RlZmluZSBDRkdfRFRUX0FETTEwMjEJCXsgeyAweDJhLCAweDAyLCAwLCAxLCAwLCA4NSwgMCwgfSB9CisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0FETTEwMjEJCXsgeyAweDJhLCAweDAyLCAwLCAxLCAwLCA4NSwgMCwgfSB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMzM0LDg2ICszMzQsODYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICoKLSAqIGlmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENGR18qCisgKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDT05GSUdfU1lTXyoKICAqIGRlZmluZXMgZm9yIHRoZSB2YXJpb3VzIHJlZ2lzdGVycyBhZmZlY3RlZCBieSB0aGUgSFJDVyBlLmcuIGNoYW5naW5nCi0gKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ0ZHX1NJVU1DUi4KKyAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDT05GSUdfU1lTX1NJVU1DUi4KICAqLwogI2lmZGVmIERFQlVHCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkoSFJDV19CUFMxMXxIUkNXX0NJUHxIUkNXX0wyQ1BDMDF8SFJDV19EUFBDMTB8XAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCShIUkNXX0JQUzExfEhSQ1dfQ0lQfEhSQ1dfTDJDUEMwMXxIUkNXX0RQUEMxMHxcCiAJCQkgSFJDV19JU0IxMDB8SFJDV19CTVN8SFJDV19NTVIxMXxIUkNXX0FQUEMxMHxcCiAJCQkgSFJDV19NT0RDS19IMDAxMCkKICNlbHNlCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkoSFJDV19CUFMxMXxIUkNXX0NJUHxIUkNXX0wyQ1BDMDF8SFJDV19EUFBDMTB8XAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCShIUkNXX0JQUzExfEhSQ1dfQ0lQfEhSQ1dfTDJDUEMwMXxIUkNXX0RQUEMxMHxcCiAJCQkgSFJDV19JU0IxMDB8SFJDV19CTVN8SFJDV19NTVIxMXxIUkNXX0FQUEMxMHxcCiAJCQkgSFJDV19NT0RDS19IMDEwMSkKICNlbmRpZgogLyogbm8gc2xhdmVzIHNvIGp1c3QgZHVwbGljYXRlIHRoZSBtYXN0ZXIgaHJjdyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEJQ0ZHX0hSQ1dfTUFTVEVSCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMglDRkdfSFJDV19NQVNURVIKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzCUNGR19IUkNXX01BU1RFUgotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQJQ0ZHX0hSQ1dfTUFTVEVSCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQlDRkdfSFJDV19NQVNURVIKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2CUNGR19IUkNXX01BU1RFUgotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcJQ0ZHX0hSQ1dfTUFTVEVSCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJQ09ORklHX1NZU19IUkNXX01BU1RFUgorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyCUNPTkZJR19TWVNfSFJDV19NQVNURVIKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMwlDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJQ09ORklHX1NZU19IUkNXX01BU1RFUgorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1CUNPTkZJR19TWVNfSFJDV19NQVNURVIKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNglDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJQ09ORklHX1NZU19IUkNXX01BU1RFUgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEYwMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQkxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJVEVYVF9CQVNFCi0jZGVmaW5lCUNGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19GUEdBX0JBU0UJCTB4ODAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJVEVYVF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRQkJMHg4MDAwMDAwMAogLyoKLSAqIHVuZm9ydHVuYXRlbHksIENGR19NT05JVE9SX0xFTiBtdXN0IGluY2x1ZGUgdGhlCisgKiB1bmZvcnR1bmF0ZWx5LCBDT05GSUdfU1lTX01PTklUT1JfTEVOIG11c3QgaW5jbHVkZSB0aGUKICAqICh2ZXJ5IGxhcmdlIGkuZS4gMjU2a0IpIGVudmlyb25tZW50IGZsYXNoIHNlY3RvcgogICovCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IqLwotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IqLworI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbSBtYXAgZm9yIExpbnV4Ki8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NwkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NwkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHg0MDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCS8qIHNlZSBSRUFETUUgLSBlbnYgc2VjdCByZWFsIHNpemUgKi8KLSNkZWZpbmUJQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRStDRkdfTU9OSVRPUl9MRU4tQ09ORklHX0VOVl9TRUNUX1NJWkUpCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFK0NPTkZJR19TWVNfTU9OSVRPUl9MRU4tQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFUJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQyNiwxNCArNDI2LDE0IEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCShISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0l8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfEhJRDBfRENJfFwKIAkJCQlISUQwX0lGRU18SElEMF9BQkUpCiAjaWZkZWYgREVCVUcKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJMAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJKEhJRDBfSUNFfEhJRDBfSUZFTXxISUQwX0FCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCShISUQwX0lDRXxISUQwX0lGRU18SElEMF9BQkUpCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0hJRDIJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSTVIgLSBSZXNldCBNb2RlIFJlZ2lzdGVyCQkJCQkgNS01CkBAIC00NDEsMjIgKzQ0MSwyMiBAQAogICogdHVybiBvbiBDaGVja3N0b3AgUmVzZXQgRW5hYmxlCiAgKi8KICNpZmRlZiBERUJVRwotI2RlZmluZSBDRkdfUk1SCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQkwCiAjZWxzZQotI2RlZmluZSBDRkdfUk1SCQlSTVJfQ1NSRQorI2RlZmluZSBDT05GSUdfU1lTX1JNUgkJUk1SX0NTUkUKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQ1IgLSBCdXMgQ29uZmlndXJhdGlvbgkJCQkJIDQtMjUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfQkNSCQkoQkNSX0VUTSkKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IJCShCQ1JfRVRNKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTSVVNQ1IgLSBTSVUgTW9kdWxlIENvbmZpZ3VyYXRpb24JCQkJIDQtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfRFBQQzEwfFNJVU1DUl9MMkNQQzAxfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EUFBDMTB8U0lVTUNSX0wyQ1BDMDF8XAogCQkJIFNJVU1DUl9BUFBDMTB8U0lVTUNSX01NUjExKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00NjYsMTAgKzQ2NiwxMCBAQAogICogV2F0Y2hkb2cgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIDYweCAmIExvY2FsIEJ1cyBNb25pdG9yIGVuYWJsZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUHxTWVBDUl9TV0UpCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1ApCiAjZW5kaWYgLyogQ09ORklHX1dBVENIRE9HICovCiAKQEAgLTQ3OSw3ICs0NzksNyBAQAogICogQ2xlYXIgb25jZSBwZXIgU2Vjb25kIGFuZCBBbGFybSBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLAogICogYW5kIGVuYWJsZSBUaW1lIENvdW50ZXIKICAqLwotI2RlZmluZSBDRkdfVE1DTlRTQwkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQwkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJIDQtNDIKQEAgLTQ4NywyMCArNDg3LDIwIEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBDb250cm9sCQkJCQkgOS04CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnN1cmUgREZCUkcgaXMgRGl2aWRlIGJ5IDE2CiAgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfREZCUkcwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0RGQlJHMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbgkJCQkxMy03CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IJMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTUzMywxMCArNTMzLDEwIEBACiAgKi8KIAogLyogMzIgYml0LCByZWFkLXdyaXRlLCBHUENNIG9uIDYweCBidXMgKi8KLSNkZWZpbmUJQ0ZHX0JSMF9QUkVMSU0JKChDRkdfRkxBU0hfQkFTRSZCUnhfQkFfTVNLKXxcCisjZGVmaW5lCUNPTkZJR19TWVNfQlIwX1BSRUxJTQkoKENPTkZJR19TWVNfRkxBU0hfQkFTRSZCUnhfQkFfTVNLKXxcCiAJCQkJQlJ4X1BTXzMyfEJSeF9NU19HUENNX1B8QlJ4X1YpCiAvKiB1cCB0byAzMiBNYiAqLwotI2RlZmluZQlDRkdfT1IwX1BSRUxJTQkoTUVHX1RPX0FNKDMyKXxPUnhHX0NTTlR8T1J4R19BQ1NfRElWMnxPUnhHX1NDWV8xMF9DTEspCisjZGVmaW5lCUNPTkZJR19TWVNfT1IwX1BSRUxJTQkoTUVHX1RPX0FNKDMyKXxPUnhHX0NTTlR8T1J4R19BQ1NfRElWMnxPUnhHX1NDWV8xMF9DTEspCiAKIC8qCiAgKiBCYW5rIDIgLSBTRFJBTQpAQCAtNTU2LDEzICs1NTYsMTMgQEAKICAqICBhZGRyZXNzIGxpbmVzIHRvIGJlIGNvbmZpZ3VyZWQgdG8gdGhlIHJlcXVpcmVkIG11bHRpcGxleGluZyBzY2hlbWUuIgogICovCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJNjQKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCTY0CiAKIC8qIDY0IGJpdCwgcmVhZC13cml0ZSwgU0RSQU0gb24gNjB4IGJ1cyAqLwotI2RlZmluZQlDRkdfQlIyX1BSRUxJTQkoKENGR19TRFJBTV9CQVNFJkJSeF9CQV9NU0spfFwKKyNkZWZpbmUJQ09ORklHX1NZU19CUjJfUFJFTElNCSgoQ09ORklHX1NZU19TRFJBTV9CQVNFJkJSeF9CQV9NU0spfFwKIAkJCQlCUnhfUFNfNjR8QlJ4X01TX1NEUkFNX1B8QlJ4X1YpCiAvKiA2NCBNYiwgNCBpbnQgYmFua3MgcGVyIGRldiwgcm93IHN0YXJ0IGFkZHIgYml0ID0gQTYsIDEyIHJvdyBhZGRyIGxpbmVzICovCi0jZGVmaW5lCUNGR19PUjJfUFJFTElNCShNRUdfVE9fQU0oQ0ZHX1NEUkFNX1NJWkUpfFwKKyNkZWZpbmUJQ09ORklHX1NZU19PUjJfUFJFTElNCShNRUdfVE9fQU0oQ09ORklHX1NZU19TRFJBTV9TSVpFKXxcCiAJCQkJT1J4U19CUERfNHxPUnhTX1JPV1NUX1BCSTFfQTZ8T1J4U19OVU1SXzEyKQogCiAvKgpAQCAtNTc5LDcgKzU3OSw3IEBACiAgKiB3YXMgd3JpdHRlbiBpcyAxIGNsb2NrLCBDQVMgTGF0ZW5jeSBpcyAyLgogICovCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SCShQU0RNUl9QQkl8UFNETVJfU0RBTV9BMTZfSVNfQTV8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCShQU0RNUl9QQkl8UFNETVJfU0RBTV9BMTZfSVNfQTV8XAogCQkJCVBTRE1SX0JTTUFfQTE0X0ExNnxQU0RNUl9TREExMF9QQkkxX0E3fFwKIAkJCQlQU0RNUl9SRlJDXzZfQ0xLfFBTRE1SX1BSRVRPQUNUXzJXfFwKIAkJCQlQU0RNUl9BQ1RUT1JXXzJXfFBTRE1SX0xET1RPUFJFXzFDfFwKQEAgLTYxMSwxMSArNjExLDExIEBACiAgKi8KIAogI2lmZGVmIERFQlVHCi0jZGVmaW5lIENGR19QU1JUCTM5Ci0jZGVmaW5lIENGR19NUFRQUglNUFRQUl9QVFBfRElWOAorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQJMzkKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUglNUFRQUl9QVFBfRElWOAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1BTUlQJMzEKLSNkZWZpbmUgQ0ZHX01QVFBSCU1QVFBSX1BUUF9ESVYzMgorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQJMzEKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUglNUFRQUl9QVFBfRElWMzIKICNlbmRpZgogCiAvKgpAQCAtNjUxLDcgKzY1MSw3IEBACiAgKi8KIAogLyogYWxsIHRoZSBiYW5rIHNpemVzIG11c3QgYmUgYSBwb3dlciBvZiB0d28sIGdyZWF0ZXIgb3IgZXF1YWwgdG8gMzI3NjggKi8KLSNkZWZpbmUgRlBHQV9NQUlOX0NGR19CQVNFCShDRkdfRlBHQV9CQVNFKQorI2RlZmluZSBGUEdBX01BSU5fQ0ZHX0JBU0UJKENPTkZJR19TWVNfRlBHQV9CQVNFKQogI2RlZmluZSBGUEdBX01BSU5fQ0ZHX1NJWkUJMzI3NjgKICNkZWZpbmUgRlBHQV9NQUlOX1JFR19CQVNFCShGUEdBX01BSU5fQ0ZHX0JBU0UgKyBGUEdBX01BSU5fQ0ZHX1NJWkUpCiAjZGVmaW5lIEZQR0FfTUFJTl9SRUdfU0laRQkzMjc2OApAQCAtNjYxLDM2ICs2NjEsMzYgQEAKICNkZWZpbmUgRlBHQV9NRVpaX0NGR19TSVpFCTMyNzY4CiAKIC8qIDggYml0LCByZWFkLXdyaXRlLCBVUE1DICovCi0jZGVmaW5lCUNGR19CUjNfUFJFTElNCShGUEdBX01BSU5fQ0ZHX0JBU0V8QlJ4X1BTXzh8QlJ4X01TX1VQTUN8QlJ4X1YpCisjZGVmaW5lCUNPTkZJR19TWVNfQlIzX1BSRUxJTQkoRlBHQV9NQUlOX0NGR19CQVNFfEJSeF9QU184fEJSeF9NU19VUE1DfEJSeF9WKQogLyogdXAgdG8gMzJLYnl0ZSwgYnVyc3QgaW5oaWJpdCAqLwotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQkoUDJTWl9UT19BTShGUEdBX01BSU5fQ0ZHX1NJWkUpfE9SeFVfQkkpCisjZGVmaW5lCUNPTkZJR19TWVNfT1IzX1BSRUxJTQkoUDJTWl9UT19BTShGUEdBX01BSU5fQ0ZHX1NJWkUpfE9SeFVfQkkpCiAKIC8qIDMyIGJpdCwgcmVhZC13cml0ZSwgR1BDTSAqLwotI2RlZmluZQlDRkdfQlI0X1BSRUxJTQkoRlBHQV9NQUlOX1JFR19CQVNFfEJSeF9QU18zMnxCUnhfTVNfR1BDTV9MfEJSeF9WKQorI2RlZmluZQlDT05GSUdfU1lTX0JSNF9QUkVMSU0JKEZQR0FfTUFJTl9SRUdfQkFTRXxCUnhfUFNfMzJ8QlJ4X01TX0dQQ01fTHxCUnhfVikKIC8qIHVwIHRvIDMyS2J5dGUgKi8KLSNkZWZpbmUJQ0ZHX09SNF9QUkVMSU0JKFAyU1pfVE9fQU0oRlBHQV9NQUlOX1JFR19TSVpFKSkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjRfUFJFTElNCShQMlNaX1RPX0FNKEZQR0FfTUFJTl9SRUdfU0laRSkpCiAKIC8qIDMyIGJpdCwgcmVhZC13cml0ZSwgVVBNQiAqLwotI2RlZmluZQlDRkdfQlI1X1BSRUxJTQkoRlBHQV9NQUlOX1BPUlRfQkFTRXxCUnhfUFNfMzJ8QlJ4X01TX1VQTUJ8QlJ4X1YpCisjZGVmaW5lCUNPTkZJR19TWVNfQlI1X1BSRUxJTQkoRlBHQV9NQUlOX1BPUlRfQkFTRXxCUnhfUFNfMzJ8QlJ4X01TX1VQTUJ8QlJ4X1YpCiAvKiB1cCB0byAzMktieXRlICovCi0jZGVmaW5lCUNGR19PUjVfUFJFTElNCShQMlNaX1RPX0FNKEZQR0FfTUFJTl9QT1JUX1NJWkUpfE9SeFVfQkkpCisjZGVmaW5lCUNPTkZJR19TWVNfT1I1X1BSRUxJTQkoUDJTWl9UT19BTShGUEdBX01BSU5fUE9SVF9TSVpFKXxPUnhVX0JJKQogCiAvKiA4IGJpdCwgd3JpdGUtb25seSwgVVBNQyAqLwotI2RlZmluZQlDRkdfQlI2X1BSRUxJTQkoRlBHQV9NRVpaX0NGR19CQVNFfEJSeF9QU184fEJSeF9NU19VUE1DfEJSeF9WKQorI2RlZmluZQlDT05GSUdfU1lTX0JSNl9QUkVMSU0JKEZQR0FfTUVaWl9DRkdfQkFTRXxCUnhfUFNfOHxCUnhfTVNfVVBNQ3xCUnhfVikKIC8qIHVwIHRvIDMyS2J5dGUsIGJ1cnN0IGluaGliaXQgKi8KLSNkZWZpbmUJQ0ZHX09SNl9QUkVMSU0JKFAyU1pfVE9fQU0oRlBHQV9NRVpaX0NGR19TSVpFKXxPUnhVX0JJKQorI2RlZmluZQlDT05GSUdfU1lTX09SNl9QUkVMSU0JKFAyU1pfVE9fQU0oRlBHQV9NRVpaX0NGR19TSVpFKXxPUnhVX0JJKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNQk1SIC0gTWFjaGluZSBCIE1vZGUJCQkJCTEwLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX01CTVIJKE14TVJfQlNFTHxNeE1SX09QX05PUk0pCS8qIFhYWCAtIG5lZWRzIG1vcmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQk1SCShNeE1SX0JTRUx8TXhNUl9PUF9OT1JNKQkvKiBYWFggLSBuZWVkcyBtb3JlICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1DTVIgLSBNYWNoaW5lIEMgTW9kZQkJCQkJMTAtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfTUNNUgkoTXhNUl9CU0VMfE14TVJfRFN4XzJfQ1lDTCkJLyogWFhYIC0gbmVlZHMgbW9yZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01DTVIJKE14TVJfQlNFTHxNeE1SX0RTeF8yX0NZQ0wpCS8qIFhYWCAtIG5lZWRzIG1vcmUgKi8KIAogLyoKICAqIEZQR0EgSS9PIFBvcnQvQml0IGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvaWRtci5oIGIvaW5jbHVkZS9jb25maWdzL2lkbXIuaAppbmRleCBhMWYxNTE3Li4xZGQ4OWY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvaWRtci5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9pZG1yLmgKQEAgLTQ1LDkgKzQ1LDkgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gbmV0X25mcyIKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CiAjZGVmaW5lIENPTkZJR19NQ0ZVQVJUCi0jZGVmaW5lIENGR19VQVJUX1BPUlQJCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfUE9SVAkJKDApCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTkyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CiAjZGVmaW5lIENPTkZJR19FVEhBRERSCQkwMDowNjozYjowMTo0MTo1NQogI2RlZmluZSBDT05GSUdfRVRIUFJJTUUKICNkZWZpbmUgQ09ORklHX0lQQUREUgkJMTkyLjE2OC4zMC4xCkBAIC0xMjUsMzAgKzEyNSwzMCBAQAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZW5kaWYgLyogIUNPTkZJR19NT05JVE9SX0lTX0lOX1JBTSAqLwogCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg0MDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDM4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHg0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgzODAwMDAKIAotI2RlZmluZSBDRkdfSFoJCQkoNTAwMDAwMDAgLyA2NCkKLSNkZWZpbmUgQ0ZHX0NMSwkJCTEwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJKDUwMDAwMDAwIC8gNjQpCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLCQkJMTAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01CQVIJCTB4NDAwMDAwMDAJLyogUmVnaXN0ZXIgQmFzZSBBZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4NDAwMDAwMDAJLyogUmVnaXN0ZXIgQmFzZSBBZGRycyAqLwogCiAvKgogICogRXRoZXJuZXQKQEAgLTE1OCw3NCArMTU4LDc0IEBACiAjCWRlZmluZSBDT05GSUdfTkVUX01VTFRJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKLSMJZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkKLSMJZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgKLSMJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwlkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKKyMJZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CisjCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAKLSMJZGVmaW5lIENGR19GRUMwX1BJTk1VWAkJMAotIwlkZWZpbmUgQ0ZHX0ZFQzBfTUlJQkFTRQkJQ0ZHX0ZFQzBfSU9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfUElOTVVYCQkwCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQkJQ09ORklHX1NZU19GRUMwX0lPQkFTRQogIwlkZWZpbmUgTUNGRkVDX1RPVVRfTE9PUAkJNTAwMDAKLS8qIElmIENGR19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KLSMJaWZuZGVmIENGR19ESVNDT1ZFUl9QSFkKKy8qIElmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIGlzIG5vdCBkZWZpbmVkIC0gaGFyZGNvZGVkICovCisjCWlmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogIwkJZGVmaW5lIEZFQ0RVUExFWAlGVUxMCiAjCQlkZWZpbmUgRkVDU1BFRUQJCV8xMDBCQVNFVAogIwllbHNlCi0jCQlpZm5kZWYgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCi0jCQkJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJaWZuZGVmIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJCQlkZWZpbmUgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgogIwkJZW5kaWYKLSMJZW5kaWYJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjCWVuZGlmCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KICNlbmRpZgogCiAvKgogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMTYJCS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMTYJCS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmODAwMDAwCiAKICNpZmRlZiBDT05GSUdfTU9OSVRPUl9JU19JTl9SQU0KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4MjAwMDAKICNlbHNlIC8qICFDT05GSUdfTU9OSVRPUl9JU19JTl9SQU0gKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwKQogI2VuZGlmIC8qIENPTkZJR19NT05JVE9SX0lTX0lOX1JBTSAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgyMDAwMAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkKLSNkZWZpbmUgQ0ZHX0JPT1RQQVJBTVNfTEVOCSg2NCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgkoNjQqMTAyNCkKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gPz8KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoQ0ZHX1NEUkFNX0JBU0UgKyAoQ0ZHX1NEUkFNX1NJWkUgPDwgMjApKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIChDT05GSUdfU1lTX1NEUkFNX1NJWkUgPDwgMjApKQogCiAvKiBGTEFTSCBvcmdhbml6YXRpb24gKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHg4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDgwMDAwMAogLyoKLSAqICNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorICogI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQogICovCiAKIC8qIENhY2hlIENvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYKIAogLyogUG9ydCBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GRUNJMkMJCTB4RjAKKyNkZWZpbmUgQ09ORklHX1NZU19GRUNJMkMJCTB4RjAKIAogCiAvKiBEeW5hbWljIE1URCBwYXJ0aXRpb24gc3VwcG9ydCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2ltcGE3LmggYi9pbmNsdWRlL2NvbmZpZ3MvaW1wYTcuaAppbmRleCA1MmViODg4Li5iYjNjMDJlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvaW1wYTcuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvaW1wYTcuaApAQCAtNDEsOCArNDEsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC05NiwyNCArOTYsMjQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiaW1wQTcgIyAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJpbXBBNyAjICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweGMwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweGMwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHhjMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4YzA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHhjMTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHhjMTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTIwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDIga0h6ICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkyMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAyIGtIeiAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xMzksMTcgKzEzOSwxNyBAQAogI2RlZmluZSBQSFlTX0ZMQVNIXzIJCTB4MTAwMDAwMDAgLyogRmxhc2ggQmFuayAjMiAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAgLyogMTYgTUIgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKFBIWVNfRkxBU0hfMSArIDB4MUMwMDApCS8qIEFkZHIgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvaW14MzFfbGl0ZWtpdC5oIGIvaW5jbHVkZS9jb25maWdzL2lteDMxX2xpdGVraXQuaAppbmRleCA5YTY1NWFhLi42YzE1MGFlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvaW14MzFfbGl0ZWtpdC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9pbXgzMV9saXRla2l0LmgKQEAgLTUzLDE1ICs1MywxNSBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4ICogMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCiAgKi8KIAogI2RlZmluZSBDT05GSUdfTVgzMV9VQVJUCTEKLSNkZWZpbmUgQ0ZHX01YMzFfVUFSVDEJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NWDMxX1VBUlQxCQkxCiAKICNkZWZpbmUgQ09ORklHX0hBUkRfU1BJCQkxCiAjZGVmaW5lIENPTkZJR19NWENfU1BJCQkxCkBAIC03Nyw3ICs3Nyw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXs5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb21tYW5kIGRlZmluaXRpb24KQEAgLTExMSwyMCArMTExLDIwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJInVib290PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NiAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJ1Ym9vdD4gIgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2ICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNiAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkwICAvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MTAwMDAKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQogCkBAIC0xNDUsMTIgKzE0NSwxMiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDUzBfQkFTRQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJICAgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRSAvKiBNb25pdG9yIGF0IGJlZ2lubmluZyBvZiBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNTMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CSAgICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRSAvKiBNb25pdG9yIGF0IGJlZ2lubmluZyBvZiBmbGFzaCAqLwogCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDFmMDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDFmMDAwMCkKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCSg2NCAqIDEwMjQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKDY0ICogMTAyNCkKQEAgLTE1OCwxNCArMTU4LDE0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDRkkgRkxBU0ggZHJpdmVyIHNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBtZW1vcnkgaXMgQ0ZJIGNvbXBsaWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBtZW1vcnkgaXMgQ0ZJIGNvbXBsaWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSBkcml2ZXJzL2NmaV9mbGFzaC5jICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogVXNlIGJ1ZmZlcmVkIHdyaXRlcyAofjEweCBmYXN0ZXIpICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJLyogVXNlIGhhcmR3YXJlIHNlY3RvciBwcm90ZWN0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIFVzZSBidWZmZXJlZCB3cml0ZXMgKH4xMHggZmFzdGVyKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBVc2UgaGFyZHdhcmUgc2VjdG9yIHByb3RlY3Rpb24gKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgxMDAqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMTAwKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgxMDAqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgxMDAqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogLyoKICAqIEpGRlMyIHBhcnRpdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9pbXgzMV9waHljb3JlLmggYi9pbmNsdWRlL2NvbmZpZ3MvaW14MzFfcGh5Y29yZS5oCmluZGV4IDE1NDAyMDMuLmYwZDI4ZWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9pbXgzMV9waHljb3JlLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2lteDMxX3BoeWNvcmUuaApAQCAtNTEsOCArNTEsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4ICogMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC02MCwxOCArNjAsMTggQEAKIAogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEKICNkZWZpbmUgQ09ORklHX0kyQ19NWEMJCTEKLSNkZWZpbmUgQ0ZHX0kyQ19NWDMxX1BPUlQyCTEKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4ZmUKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVgzMV9QT1JUMgkxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4ZmUKIAogI2RlZmluZSBDT05GSUdfTVgzMV9VQVJUCTEKLSNkZWZpbmUgQ0ZHX01YMzFfVUFSVDEJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NWDMxX1VBUlQxCQkxCiAKIC8qIGFsbG93IHRvIG92ZXJ3cml0ZSBzZXJpYWwgYW5kIGV0aGFkZHIgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJezk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7OTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwfQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvbW1hbmQgZGVmaW5pdGlvbgpAQCAtMTEzLDIwICsxMTMsMjAgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkidWJvb3Q+ICIKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2ICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJInVib290PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNiAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2ICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMCAgLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgxMDAwMAogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCiAKQEAgLTE0NywzMCArMTQ3LDMwIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxICAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU5CSAgICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UgLyogTW9uaXRvciBhdCBiZWdpbm5pbmcgb2YgZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU5CSAgICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRSAvKiBNb25pdG9yIGF0IGJlZ2lubmluZyBvZiBmbGFzaCAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRUVQUk9NCQkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkJMHgwMAkvKiBlbnZpcm9ubWVudCBzdGFydHMgaGVyZSAgICAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJNDA5NgotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUyCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogNSBiaXRzID0gMzIgb2N0ZXRzICAgICAgICAgICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBiZXR3ZWVuIHN0b3AgYW5kIHN0YXJ0ICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTIJLyogbGVuZ3RoIG9mIGJ5dGUgYWRkcmVzcyAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qIDUgYml0cyA9IDMyIG9jdGV0cyAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGJldHdlZW4gc3RvcCBhbmQgc3RhcnQgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIJLyogbGVuZ3RoIG9mIGJ5dGUgYWRkcmVzcyAgICAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENGSSBGTEFTSCBkcml2ZXIgc2V0dXAKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIG1lbW9yeSBpcyBDRkkgY29tcGxpYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIG1lbW9yeSBpcyBDRkkgY29tcGxpYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIGRyaXZlcnMvY2ZpX2ZsYXNoLmMgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiBVc2UgYnVmZmVyZWQgd3JpdGVzICh+MTB4IGZhc3RlcikgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBVc2UgaGFyZHdhcmUgc2VjdG9yIHByb3RlY3Rpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogVXNlIGJ1ZmZlcmVkIHdyaXRlcyAofjEweCBmYXN0ZXIpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCS8qIFVzZSBoYXJkd2FyZSBzZWN0b3IgcHJvdGVjdGlvbiAqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDEwMCpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgxMDAqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDEwMCpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDEwMCpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAvKgogICogSkZGUzIgcGFydGl0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2luY2FpcC5oIGIvaW5jbHVkZS9jb25maWdzL2luY2FpcC5oCmluZGV4IDUzNjhhYzguLmExOGJhODAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9pbmNhaXAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvaW5jYWlwLmgKQEAgLTQzLDcgKzQzLDcgQEAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lCUNPTkZJR19USU1FU1RBTVAJCS8qIFByaW50IGltYWdlIGluZm8gd2l0aCB0aW1lc3RhbXAgKi8KIApAQCAtMTA4LDQ3ICsxMDgsNDcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIklOQ0EtSVAgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIklOQ0EtSVAgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJMTI4KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkxMjgqMTAyNAogCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkxMjgqMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTEyOCoxMDI0CiAKLSNkZWZpbmUgQ0ZHX01JUFNfVElNRVJfRlJFUQkoaW5jYWlwX2dldF9jcHVjbGsoKSAvIDIpCisjZGVmaW5lIENPTkZJR19TWVNfTUlQU19USU1FUl9GUkVRCShpbmNhaXBfZ2V0X2NwdWNsaygpIC8gMikKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDgwMDAwMDAwCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHg4MDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHg4MDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4ODAxMDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDgwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDgwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4ODA4MDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDEyOCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMTI4KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCTB4YjAwMDAwMDAgLyogRmxhc2ggQmFuayAjMSAqLwogI2RlZmluZSBQSFlTX0ZMQVNIXzIJCTB4YjA4MDAwMDAgLyogRmxhc2ggQmFuayAjMiAqLwogCiAvKiBUaGUgZm9sbG93aW5nICNkZWZpbmVzIGFyZSBuZWVkZWQgdG8gZ2V0IGZsYXNoIGVudmlyb25tZW50IHJpZ2h0ICovCi0jZGVmaW5lCUNGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCTB4NDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJMHg0MDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMiAqIENGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIgKiBDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMiAqIENPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMiAqIENPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKQEAgLTE4OCw4ICsxODgsOCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19EQ0FDSEVfU0laRQkJNDA5NgotI2RlZmluZSBDRkdfSUNBQ0hFX1NJWkUJCTQwOTYKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NJWkUJCTQwOTYKKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfU0laRQkJNDA5NgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvaW5rYTR4MC5oIGIvaW5jbHVkZS9jb25maWdzL2lua2E0eDAuaAppbmRleCAzMmQ0ODcxLi40MDUyMzRjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvaW5rYTR4MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9pbmthNHgwLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNkZWZpbmUgQ09ORklHX01QQzUyMDAJCTEJLyogKG1vcmUgcHJlY2lzZWx5IGFuIE1QQzUyMDAgQ1BVKQkqLwogI2RlZmluZSBDT05GSUdfSU5LQTRYMAkJMQkvKiBJTktBNHgwIGJvYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHoJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHoJCSovCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSAkqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdAkJCSovCkBAIC00Nyw3ICs0Nyw3IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1BTQ19DT05TT0xFCTEJLyogY29uc29sZSBpcyBvbiBQU0MxCSovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCS8qIC4uLiBhdCAxMTUyMDAgYnBzCSovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyoKICAqIFBDSSBNYXBwaW5nOgpAQCAtNjcsNyArNjcsNyBAQAogI2RlZmluZSBDT05GSUdfUENJX0lPX1BIWVMJQ09ORklHX1BDSV9JT19CVVMKICNkZWZpbmUgQ09ORklHX1BDSV9JT19TSVpFCTB4MDEwMDAwMDAKIAotI2RlZmluZSBDRkdfWExCX1BJUEVMSU5JTkcJMQorI2RlZmluZSBDT05GSUdfU1lTX1hMQl9QSVBFTElOSU5HCTEKIAogLyogUGFydGl0aW9ucyAqLwogI2RlZmluZSBDT05GSUdfTUFDX1BBUlRJVElPTgpAQCAtMTAyLDcgKzEwMiw3IEBACiAjZGVmaW5lCUNPTkZJR19USU1FU1RBTVAJMQkvKiBQcmludCBpbWFnZSBpbmZvIHdpdGggdGltZXN0YW1wICovCiAKICNpZiAoVEVYVF9CQVNFID09IDB4RkZFMDAwMDApCQkvKiBCb290IGxvdyAqLwotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKICNlbmRpZgogCiAvKgpAQCAtMTU0LDM2ICsxNTQsMzYgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogCiAvKgogICogRmxhc2ggY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZmUwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMDIwMDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZmUwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDAyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICovCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQotI2RlZmluZSBDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZSBDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKIC8qCiAgKiBTRFJBTSBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24KQEAgLTE5NSwyNyArMTk1LDI3IEBACiAjZGVmaW5lIENPTkZJR19ERFJfSzRINTExNjM4QwogCiAvKiBVc2UgT04tQ2hpcCBTUkFNIHVudGlsIFJBTSB3aWxsIGJlIGF2YWlsYWJsZSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQogI2lmZGVmIENPTkZJR19QT1NUCiAvKiBwcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHBvc3Rfd29yZCBhdCBlbmQgb2Ygb24tY2hpcCBTUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1BPU1RfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fUE9TVF9TSVpFCiAjZWxzZQotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCiAjZW5kaWYKIAogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0yNDEsNyArMjQxLDcgQEAKICAqIHVzZSBQU0M2XzEgYW5kIFBTQzZfMyBhcyBHUElPOiBCaXRzIDk6MTEgKG1hc2s6IDB4MDcwMDAwMDApOgogICoJMDExIC0+IFBTQzYgY291bGQgbm90IGJlIHVzZWQgYXMgVUFSVCBvciBDT0RFQy4gSXJEQSBzdGlsbCBwb3NzaWJsZS4KICAqLwotI2RlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4MDEwMDEwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHgwMTAwMTAwNAogCiAvKgogICogUlRDIGNvbmZpZ3VyYXRpb24KQEAgLTI1MSwzMSArMjUxLDMxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyogRW5hYmxlIGFuIGFsdGVybmF0ZSwgbW9yZSBleHRlbnNpdmUgbWVtb3J5IHRlc3QgKi8KLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKgogICogRW5hYmxlIGxvb3B3IGNvbW1hbmQuCkBAIC0yODYsMzYgKzI4NiwzNiBAQAogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCTAKICNlbmRpZgogCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA4NzgwMCAvKiBmb3IgcGNpX2NsayAgPSA2NiBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQlDRkdfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA4NzgwMCAvKiBmb3IgcGNpX2NsayAgPSA2NiBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAogLyogMzJNYml0IFNSQU0gQDB4MzAwMDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0NTMV9TVEFSVAkJMHgzMDAwMDAwMAotI2RlZmluZSBDRkdfQ1MxX1NJWkUJCTB4MDA0MDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9DRkcJCTB4MzE4MDAgLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU1RBUlQJCTB4MzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRQkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DRkcJCTB4MzE4MDAgLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KIAogLyogMiBxdWFkIFVBUlQgQDB4ODAwMDAwMDAgKE1CQVIgaXMgcmVsb2NhdGVkIHRvIDB4RjAwMDAwMDApICovCi0jZGVmaW5lIENGR19DUzJfU1RBUlQJCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMl9TSVpFCQkweDAwMDEwMDAKLSNkZWZpbmUgQ0ZHX0NTMl9DRkcJCTB4MjE4MDAgIC8qIGZvciBwY2lfY2xrID0gMzMgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NUQVJUCQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NJWkUJCTB4MDAwMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9DRkcJCTB4MjE4MDAgIC8qIGZvciBwY2lfY2xrID0gMzMgTUh6ICovCiAKIC8qIEdQSU8gaW4gQDB4MzA0MDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0NTM19TVEFSVAkJMHgzMDQwMDAwMAotI2RlZmluZSBDRkdfQ1MzX1NJWkUJCTB4MDAxMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTM19DRkcJCTB4MzE4MDAgLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfU1RBUlQJCTB4MzA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfU0laRQkJMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19DRkcJCTB4MzE4MDAgLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBVU0Igc3R1ZmYKQEAgLTMzOSwxOCArMzM5LDE4IEBACiAjZGVmaW5lCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkCSovCiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkyCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkyCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDYwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVCAoQ0ZHX0FUQV9EQVRBX09GRlNFVCkgLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDA1QwkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUgICAgICAgICAgNAkvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDA2MAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUIChDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkgLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAwNUMJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERSAgICAgICAgICA0CS8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzCSovCiAKICNkZWZpbmUgQ09ORklHX0FUQVBJICAgICAgICAgICAgMQogCi0jZGVmaW5lIENGR19CUklHSFRORVNTICAgICAgICAgIDB4RkYJLyogTENEIERlZmF1bHQgQnJpZ2h0bmVzcyAoMjU1ID0gb2ZmKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSSUdIVE5FU1MgICAgICAgICAgMHhGRgkvKiBMQ0QgRGVmYXVsdCBCcmlnaHRuZXNzICgyNTUgPSBvZmYpICovCiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvaW5ub2tvbS5oIGIvaW5jbHVkZS9jb25maWdzL2lubm9rb20uaAppbmRleCBmOTUzNWM5Li4xYjA1YjgwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvaW5ub2tvbS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9pbm5va29tLmgKQEAgLTEwMiw1NCArMTAyLDU0IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJ1Ym9vdD4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICAgICovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJInVib290PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHhhMDQwMDAwMCAgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORCAgICAgICAgIDB4YTA4MDAwMDAgICAgICAvKiA0IC4uLiA4IE1CIGluIERSQU0gICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHhhMDQwMDAwMCAgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgICAgICAgICAweGEwODAwMDAwICAgICAgLyogNCAuLi4gOCBNQiBpbiBEUkFNICAgKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWiAgICAgICAgICAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWiAgICAgICAgICAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUiAgICAgICAgICAgMHhhMzAwMDAwMCAgICAgIC8qIGxvYWQga2VybmVsIHRvIHRoaXMgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSICAgICAgICAgICAweGEzMDAwMDAwICAgICAgLyogbG9hZCBrZXJuZWwgdG8gdGhpcyBhZGRyZXNzICAgKi8KIAotI2RlZmluZSBDRkdfSFogICAgICAgICAgICAgICAgICAzNjg2NDAwICAgICAgICAgLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haICAgICAgICAgICAgICAgICAgMzY4NjQwMCAgICAgICAgIC8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KIAkJCQkJCS8qIFJTOiB0aGUgb3NjaWxsYXRvciBpcyBhY3R1YWxseSAzNjgwMTMwPz8gKi8KIAotI2RlZmluZSBDRkdfQ1BVU1BFRUQgICAgICAgICAgICAweDE0MSAgICAgICAgICAgLyogc2V0IGNvcmUgY2xvY2sgdG8gMjAwLzIwMC8xMDAgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQgICAgICAgICAgICAweDE0MSAgICAgICAgICAgLyogc2V0IGNvcmUgY2xvY2sgdG8gMjAwLzIwMC8xMDAgTUh6ICovCiAJCQkJCQkvKiAwMTAxMDAwMDAxICovCiAJCQkJCQkvKiAgICAgIF5eXl5eIE1lbW9yeSBTcGVlZCA5OS41MyBNSHogICAgICAgICAqLwogCQkJCQkJLyogICAgXl4gICAgICBSdW4gTW9kZSBTcGVlZCA9IDJ4IE1lbSBTcGVlZCAgKi8KIAkJCQkJCS8qIF5eICAgICAgICAgVHVyYm8gTW9kZSBTcC4gPSAxeCBSdW4gTS4gU3AuICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDIwMDAwCQkvKiAxMjggS2lCICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MjAwMDAJCS8qIDEyOCBLaUIgKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIEkyQyBidXMKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkxCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCQk1MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkJMHhmZQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJCTUwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkJMHhmZQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCQkxCiAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCQkweDAwCS8qIGVudmlyb25tZW50IHN0YXJ0cyBoZXJlICAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQkxMDI0CS8qIDEgS2lCICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIEEwID0gMCAoaGFyZHdpcmVkKSAgICAgICAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qIDUgYml0cyA9IDMyIG9jdGV0cyAgICAgICAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTUJLyogYmV0d2VlbiBzdG9wIGFuZCBzdGFydCAgICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCS8qIGxlbmd0aCBvZiBhZGRyZXNzICAgICAgICAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1NJWkUJCQk0MDk2CS8qIHNpemUgaW4gYnl0ZXMgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfSTJDX0lOSVRfQk9BUkQJCTEJLyogYm9hcmQgaGFzIGl0J3Mgb3duIGluaXQgICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIEEwID0gMCAoaGFyZHdpcmVkKSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiA1IGJpdHMgPSAzMiBvY3RldHMgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxNQkvKiBiZXR3ZWVuIHN0b3AgYW5kIHN0YXJ0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCS8qIGxlbmd0aCBvZiBhZGRyZXNzICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9TSVpFCQkJNDA5NgkvKiBzaXplIGluIGJ5dGVzICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfSU5JVF9CT0FSRAkJMQkvKiBib2FyZCBoYXMgaXQncyBvd24gaW5pdCAgKi8KIAogLyoKICAqIFNNU0M5MUMxMTEgTmV0d29yayBDYXJkCkBAIC0xODMsMTAgKzE4MywxMCBAQAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCTB4MDAwMDAwMDAJLyogRmxhc2ggQmFuayAjMSAgICAgICAgICAgICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgwMTAwMDAwMAkvKiAxNiBNQiAgICAgICAgICAgICAgICAgICAgKi8KIAotI2RlZmluZSBDRkdfRFJBTV9CQVNFCQkweGEwMDAwMDAwCS8qIFJBTSBzdGFydHMgaGVyZSAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRFJBTV9TSVpFCQkweDA0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFCQkweGEwMDAwMDAwCS8qIFJBTSBzdGFydHMgaGVyZSAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fU0laRQkJMHgwNDAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgICAgIFBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgICAgICAgICAgUEhZU19GTEFTSF8xCiAKIC8qCiAgKiBKRkZTMiBwYXJ0aXRpb25zCkBAIC0yNDIsOSArMjQyLDkgQEAKICAqIEdQNzkgPT0gbkNTMyAgICAgIGlzIDEKICAqIEdQODAgPT0gbkNTNCAgICAgIGlzIDEKICAqLwotI2RlZmluZSBDRkdfR1BTUjBfVkFMICAgICAgIDB4MDMwMDgwMDAKLSNkZWZpbmUgQ0ZHX0dQU1IxX1ZBTCAgICAgICAweEMwMDI4MjgyCi0jZGVmaW5lIENGR19HUFNSMl9WQUwgICAgICAgMHgwMDAxQzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IwX1ZBTCAgICAgICAweDAzMDA4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjFfVkFMICAgICAgIDB4QzAwMjgyODIKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMl9WQUwgICAgICAgMHgwMDAxQzAwMAogCiAvKiBHUDAyID09IERPTl9SU1QgICBpcyAwCiAgKiBHUDIzID09IFNDTEsgICAgICBpcyAwCkBAIC0yNTMsOSArMjUzLDkgQEAKICAqIEdQNjEgPT0gTEVEX0EgICAgIGlzIDAKICAqIEdQNzMgPT0gU1dVUERfTEVEIGlzIDAKICAqLwotI2RlZmluZSBDRkdfR1BDUjBfVkFMICAgICAgIDB4MDA4MDAwMDQKLSNkZWZpbmUgQ0ZHX0dQQ1IxX1ZBTCAgICAgICAweDMwMDAyMDAwCi0jZGVmaW5lIENGR19HUENSMl9WQUwgICAgICAgMHgwMDAwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IwX1ZBTCAgICAgICAweDAwODAwMDA0CisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjFfVkFMICAgICAgIDB4MzAwMDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMl9WQUwgICAgICAgMHgwMDAwMDEwMAogCiAvKiBHUDAwID09IERPTl9SRUFEWSBpcyBpbnB1dAogICogR1AwMSA9PSBET05fT0sgICAgaXMgaW5wdXQKQEAgLTMwMCw5ICszMDAsOSBAQAogICogR1A3OSA9PSBuQ1MzICAgICAgaXMgb3V0cHV0CiAgKiBHUDgwID09IG5DUzQgICAgICBpcyBvdXRwdXQKICAqLwotI2RlZmluZSBDRkdfR1BEUjBfVkFMICAgICAgIDB4MDM4MDgwMDQKLSNkZWZpbmUgQ0ZHX0dQRFIxX1ZBTCAgICAgICAweEYwMDJBMjgyCi0jZGVmaW5lIENGR19HUERSMl9WQUwgICAgICAgMHgwMDAxQzIwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIwX1ZBTCAgICAgICAweDAzODA4MDA0CisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjFfVkFMICAgICAgIDB4RjAwMkEyODIKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMl9WQUwgICAgICAgMHgwMDAxQzIwMAogCiAvKiBHUDE1ID09IG5DUzEgIGlzIEFGMTAKICAqIEdQMTggPT0gUkRZICAgaXMgQUYwMQpAQCAtMzIyLDEyICszMjIsMTIgQEAKICAqIEdQNzkgPT0gbkNTMyAgaXMgQUYxMAogICogR1A4MCA9PSBuQ1M0ICBpcyBBRjEwCiAgKi8KLSNkZWZpbmUgQ0ZHX0dBRlIwX0xfVkFMICAgICAweDgwMDAwMDAwCi0jZGVmaW5lIENGR19HQUZSMF9VX1ZBTCAgICAgMHgwMDFBODAxMAotI2RlZmluZSBDRkdfR0FGUjFfTF9WQUwgICAgIDB4NjAwODgwNTgKLSNkZWZpbmUgQ0ZHX0dBRlIxX1VfVkFMICAgICAweDAwMDAwMDA4Ci0jZGVmaW5lIENGR19HQUZSMl9MX1ZBTCAgICAgMHhBMDAwMDAwMAotI2RlZmluZSBDRkdfR0FGUjJfVV9WQUwgICAgIDB4MDAwMDAwMDIKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9MX1ZBTCAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX1VfVkFMICAgICAweDAwMUE4MDEwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfTF9WQUwgICAgIDB4NjAwODgwNTgKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9VX1ZBTCAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX0xfVkFMICAgICAweEEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfVV9WQUwgICAgIDB4MDAwMDAwMDIKIAogCiAvKiBGSVhNRTogc2V0IEdQSU9fUkVSL0ZFUiAqLwpAQCAtMzM4LDcgKzMzOCw3IEBACiAgKiBCRlMgPSAxCiAgKiBTU1MgPSAxCiAgKi8KLSNkZWZpbmUgQ0ZHX1BTU1JfVkFMCQkweDM3CisjZGVmaW5lIENPTkZJR19TWVNfUFNTUl9WQUwJCTB4MzcKIAogLyoKICAqIE1lbW9yeSBzZXR0aW5ncwpAQCAtMzU5LDcgKzM1OSw3IEBACiAgKiBbMDNdICAgIDEgICAgLSAxNiBCaXQgYnVzIHdpZHRoCiAgKiBbMDI6MDBdIDAwMCAgLSBub25idXJzdCBSQU0gb3IgRkxBU0gKICAqLwotI2RlZmluZSBDRkdfTVNDMF9WQUwJCTB4MjViODI1YjggLyogZmxhc2ggYmFua3MgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NU0MwX1ZBTAkJMHgyNWI4MjViOCAvKiBmbGFzaCBiYW5rcyAgICAgICAgICAgICAgICAgICAqLwogCiAvKiBUaGlzIGlzIHRoZSBjb25maWd1cmF0aW9uIGZvciBuQ1MyLzMgLT4gVERNLVN3aXRjaCwgRFNQCiAgKiBjb25maWd1cmF0aW9uIGZvciBuQ1MzOiBEU1AKQEAgLTM3Nyw3ICszNzcsNyBAQAogICogWzAzXSAgICAxICAgIC0gMTYgQml0IGJ1cyB3aWR0aAogICogWzAyOjAwXSAxMDAgIC0gdmFyaWFibGUgbGF0ZW5jeSBJL08KICAqLwotI2RlZmluZSBDRkdfTVNDMV9WQUwJCTB4MTIzQzU5M0MgLyogVERNIHN3aXRjaCwgRFNQICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NU0MxX1ZBTAkJMHgxMjNDNTkzQyAvKiBURE0gc3dpdGNoLCBEU1AgICAgICAgICAgICAgICAqLwogCiAvKiBUaGlzIGlzIHRoZSBjb25maWd1cmF0aW9uIGZvciBuQ1M0LzUgLT4gRXh0QnVzLCBMQU4gQ29udHJvbGxlcgogICoKQEAgLTM5Niw3ICszOTYsNyBAQAogICogWzAzXSAgICAxICAgIC0gMTYgQml0IGJ1cyB3aWR0aAogICogWzAyOjAwXSAxMDAgIC0gdmFyaWFibGUgbGF0ZW5jeSBJL08KICAqLwotI2RlZmluZSBDRkdfTVNDMl9WQUwJCTB4MTIzQzZDREMgLyogZXh0cmEgYnVzLCBMQU4gY29udHJvbGxlciAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NU0MyX1ZBTAkJMHgxMjNDNkNEQyAvKiBleHRyYSBidXMsIExBTiBjb250cm9sbGVyICAgICAqLwogCiAvKiBNRENORkc6IFNEUkFNIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIKICAqCkBAIC00MjQsNyArNDI0LDcgQEAKICAqIFswMF0gICAgICAxICAgLSBlbmFibGUgIFNEUkFNIHBhcnRpdGlvbiAwCiAgKi8KIC8qIHVzZSB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSBidXQgZGlzYWJsZSBwYXJ0aXRpb24gMCAqLwotI2RlZmluZSBDRkdfTURDTkZHX1ZBTAkJMHgwMDAwMTljOAorI2RlZmluZSBDT05GSUdfU1lTX01EQ05GR19WQUwJCTB4MDAwMDE5YzgKIAogLyogTURSRUZSOiBTRFJBTSBSZWZyZXNoIENvbnRyb2wgUmVnaXN0ZXIKICAqCkBAIC00NDUsNyArNDQ1LDcgQEAKICAqIFsxMl0gICAgMSAgICAgLSBFMFBJTjogZGlzYWJsZSBTRENLRTAKICAqIFsxMTowMF0gMDAwMDAwMDExMDAwIC0gKDY0bXMvODE5MikqTWVtQ2xrRnJlcS8zMiA9IDI0CiAgKi8KLSNkZWZpbmUgQ0ZHX01EUkVGUl9WQUwJCTB4MDA4MUQwMTgKKyNkZWZpbmUgQ09ORklHX1NZU19NRFJFRlJfVkFMCQkweDAwODFEMDE4CiAKIC8qIE1ETVJTOiBNb2RlIFJlZ2lzdGVyIFNldCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyCiAgKgpAQCAtNDYwLDE4ICs0NjAsMTggQEAKICAqIFswM10gICAgICAwICAgICAgIC0gTURBREQwOiBTRFJBTTAvMSBidXJzdCBUeXBlLiBGaXhlZCB0byBzZXF1ZW50aWFsLgogICogWzAyOjAwXSAgIDAxMCAgICAgLSBNREJMMDogIFNEUkFNMC8xIGJ1cnN0IExlbmd0aC4gRml4ZWQgdG8gNC4KICAqLwotI2RlZmluZSBDRkdfTURNUlNfVkFMCQkweDAwMDIwMDIyCisjZGVmaW5lIENPTkZJR19TWVNfTURNUlNfVkFMCQkweDAwMDIwMDIyCiAKIC8qCiAgKiBQQ01DSUEgYW5kIENGIEludGVyZmFjZXMKICAqLwotI2RlZmluZSBDRkdfTUVDUl9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DTUVNMF9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DTUVNMV9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DQVRUMF9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DQVRUMV9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DSU8wX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNJTzFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVDUl9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTBfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0xX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMF9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0FUVDFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzBfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzFfVkFMCQkweDAwMDAwMDAwCiAKIC8qCiAjZGVmaW5lIENTQjIyNl9VU0VSX0xFRDAJMHgwMDAwMDAwOApAQCAtNDgyLDExICs0ODIsMTEgQEAKIC8qCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgICAgMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdC4gb24gb25lIGNoaXAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICAgICAxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdC4gb24gb25lIGNoaXAgICovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVCAgICAoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICAgICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUICAgICgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICAgICgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCAgICAoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAgICAgICAqLwogCiAjZW5kaWYgIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9pbnRlZ3JhdG9yYXAuaCBiL2luY2x1ZGUvY29uZmlncy9pbnRlZ3JhdG9yYXAuaAppbmRleCBmOTUxYTAxLi42Y2UzYjRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvaW50ZWdyYXRvcmFwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2ludGVncmF0b3JhcC5oCkBAIC0zNCwxMSArMzQsMTEgQEAKICAqIEhpZ2ggTGV2ZWwgQ29uZmlndXJhdGlvbiBPcHRpb25zCiAgKiAoZWFzeSB0byBjaGFuZ2UpCiAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgxMDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKLSNkZWZpbmUgQ0ZHX0haX0NMT0NLCQkyNDAwMDAwMAkvKiBUaW1lciAxIGlzIGNsb2NrZWQgYXQgMjRNaHogKi8KLSNkZWZpbmUgQ0ZHX1RJTUVSQkFTRQkJMHgxMzAwMDEwMAkvKiBUaW1lcjEJCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haX0NMT0NLCQkyNDAwMDAwMAkvKiBUaW1lciAxIGlzIGNsb2NrZWQgYXQgMjRNaHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUkJBU0UJCTB4MTMwMDAxMDAJLyogVGltZXIxCQkgICAgICAgKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9UQUcJMQkvKiBlbmFibGUgcGFzc2luZyBvZiBBVEFHcyAgKi8KICNkZWZpbmUgQ09ORklHX1NFVFVQX01FTU9SWV9UQUdTCTEKQEAgLTUyLDggKzUyLDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIFBMMDEwIENvbmZpZ3VyYXRpb24KQEAgLTYxLDEwICs2MSwxMCBAQAogI2RlZmluZSBDT05GSUdfUEwwMTBfU0VSSUFMCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkzODQwMAotI2RlZmluZSBDT05GSUdfUEwwMXhfUE9SVFMJeyAodm9pZCAqKSAoQ0ZHX1NFUklBTDApLCAodm9pZCAqKSAoQ0ZHX1NFUklBTDEpIH0KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KLSNkZWZpbmUgQ0ZHX1NFUklBTDAJCTB4MTYwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NFUklBTDEJCTB4MTcwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1BMMDF4X1BPUlRTCXsgKHZvaWQgKikgKENPTkZJR19TWVNfU0VSSUFMMCksICh2b2lkICopIChDT05GSUdfU1lTX1NFUklBTDEpIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfU0VSSUFMMAkJMHgxNjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NFUklBTDEJCTB4MTcwMDAwMDAKIAogLyojZGVmaW5lIENPTkZJR19ORVRfTVVMVEkgKi8KIApAQCAtOTQsMTYgKzk0LDE2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiSW50ZWdyYXRvci1BUCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIkludGVncmF0b3ItQVAgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDdmYzAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHg3ZmMwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xMjMsMjEgKzEyMywyMSBAQAogI2RlZmluZSBQSFlTX1NEUkFNXzEJCTB4MDAwMDAwMDAJLyogU0RSQU0gQmFuayAjMSAqLwogI2RlZmluZSBQSFlTX1NEUkFNXzFfU0laRQkweDAyMDAwMDAwCS8qIDMyIE1CICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MjQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDI0MDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAJLyogMTZNQiAqLwogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ0ZHX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMipDT05GSUdfU1lTX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkzMjc2OAogCi0jZGVmaW5lIFBIWVNfRkxBU0hfMQkJKENGR19GTEFTSF9CQVNFKQorI2RlZmluZSBQSFlTX0ZMQVNIXzEJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBkZWZpbml0aW9ucwpAQCAtMTQ5LDcgKzE0OSw3IEBACiAjZGVmaW5lIERFQlVHCiAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CS8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMAkqLwogCiAKICNkZWZpbmUgSU5URUdSQVRPUl9CT09UX1JPTV9CQVNFCTB4MjAwMDAwMDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9pbnRlZ3JhdG9yY3AuaCBiL2luY2x1ZGUvY29uZmlncy9pbnRlZ3JhdG9yY3AuaAppbmRleCA2ZGJlNGIzLi4xYTcwYWY2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvaW50ZWdyYXRvcmNwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2ludGVncmF0b3JjcC5oCkBAIC0zNSwxMSArMzUsMTEgQEAKICAqIEhpZ2ggTGV2ZWwgQ29uZmlndXJhdGlvbiBPcHRpb25zCiAgKiAoZWFzeSB0byBjaGFuZ2UpCiAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgxMDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKLSNkZWZpbmUgQ0ZHX0haX0NMT0NLCQkxMDAwMDAwCS8qIFRpbWVyIDEgaXMgY2xvY2tlZCBhdCAxTWh6ICovCi0jZGVmaW5lIENGR19USU1FUkJBU0UJCTB4MTMwMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWl9DTE9DSwkJMTAwMDAwMAkvKiBUaW1lciAxIGlzIGNsb2NrZWQgYXQgMU1oeiAqLworI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSQkFTRQkJMHgxMzAwMDEwMAogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX1RBRwkJMQkvKiBlbmFibGUgcGFzc2luZyBvZiBBVEFHcyAgKi8KICNkZWZpbmUgQ09ORklHX1NFVFVQX01FTU9SWV9UQUdTCTEKQEAgLTQ3LDggKzQ3LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtNjMsMTIgKzYzLDEyIEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1BMMDExX1NFUklBTAogI2RlZmluZSBDT05GSUdfUEwwMTFfQ0xPQ0sJMTQ3NDU2MDAKLSNkZWZpbmUgQ09ORklHX1BMMDF4X1BPUlRTCXsgKHZvaWQgKilDRkdfU0VSSUFMMCwgKHZvaWQgKilDRkdfU0VSSUFMMSB9CisjZGVmaW5lIENPTkZJR19QTDAxeF9QT1JUUwl7ICh2b2lkICopQ09ORklHX1NZU19TRVJJQUwwLCAodm9pZCAqKUNPTkZJR19TWVNfU0VSSUFMMSB9CiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkzODQwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQotI2RlZmluZSBDRkdfU0VSSUFMMAkJMHgxNjAwMDAwMAotI2RlZmluZSBDRkdfU0VSSUFMMQkJMHgxNzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19TRVJJQUwwCQkweDE2MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0VSSUFMMQkJMHgxNzAwMDAwMAogCiAKIC8qCkBAIC0xMTMsMTYgKzExMywxNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiSW50ZWdyYXRvci1DUCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiSW50ZWdyYXRvci1DUCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSovCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHg3ZmMwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4N2ZjMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTU1LDM4ICsxNTUsMzggQEAKICAqIEJhc2UgaXMgYWx3YXlzIDB4MjQwMDAwMDAKIAogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDI0MDAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgyNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgwMTAwMDAwMAkvKiAxNk1CICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ0ZHX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyKkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MDAxMDAwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKIC8qCiAgKiBNb3ZlIHVwIHRoZSBVLUJvb3QgJiBtb25pdG9yIGFyZWEgaWYgbW9yZSBmbGFzaCBpcyBmaXR0ZWQuCiAgKiBJZiB0aGlzIFUtQm9vdCBpcyB0byBiZSBydW4gb24gSW50ZWdyYXRvcnMgd2l0aCB2YXJ5aW5nIGZsYXNoIHNpemVzLAogICogZHJpdmVycy9tdGQvY2ZpX2ZsYXNoLmM6OmZsYXNoX2luaXQoKSBjYW4gcmVhZCB0aGUgSW50ZWdyYXRvciBDUF9GTEFTSFBST0cKLSAqIHJlZ2lzdGVyIGFuZCBkeW5hbWljYWxseSBhc3NpZ24gQ09ORklHX0VOVl9BRERSICYgQ0ZHX01PTklUT1JfQkFTRQotICogLSBDRkdfTU9OSVRPUl9CQVNFIGlzIHNldCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBlbnZpcm9ubWVudCBpcyBub3QKKyAqIHJlZ2lzdGVyIGFuZCBkeW5hbWljYWxseSBhc3NpZ24gQ09ORklHX0VOVl9BRERSICYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UKKyAqIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgaXMgc2V0IHRvIGluZGljYXRlIHRoYXQgdGhlIGVudmlyb25tZW50IGlzIG5vdAogICogZW1iZWRkZWQgaW4gdGhlIGJvb3QgbW9uaXRvcihzKSBhcmVhCiAgKi8KICNpZiAoIFBIWVNfRkxBU0hfU0laRSA9PSAweDA0MDAwMDAwICkKIAogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4MjdGMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweDI3RjQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4MjdGNDAwMDAKIAogI2VsaWYgKFBIWVNfRkxBU0hfU0laRSA9PSAweDAyMDAwMDAwICkKIAogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4MjVGMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweDI1RjQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4MjVGNDAwMDAKIAogI2Vsc2UKIAogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4MjRGMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweDI3RjQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4MjdGNDAwMDAKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9peGRwNDI1LmggYi9pbmNsdWRlL2NvbmZpZ3MvaXhkcDQyNS5oCmluZGV4IGI5MzM0NzUuLjM1YjA0NTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9peGRwNDI1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2l4ZHA0MjUuaApAQCAtNDUsOCArNDUsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOICAgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTiAgICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyogYWxsb3cgdG8gb3ZlcndyaXRlIHNlcmlhbCBhbmQgZXRoYWRkciAqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQpAQCAtOTMsMjMgKzkzLDIzIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQgICAgICAgICAgICAgICI9PiAiICAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLwotI2RlZmluZSBDRkdfQ0JTSVpFICAgICAgICAgICAgICAyNTYgICAgICAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MgICAgICAgICAgICAgMTYgICAgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFICAgICAgICAgICAgQ0ZHX0NCU0laRSAgICAgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUICAgICAgICAgICAgICAiPT4gIiAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUgICAgICAgICAgICAgIDI1NiAgICAgICAgICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MgICAgICAgICAgICAgMTYgICAgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRSAgICAgICAgICAgIENPTkZJR19TWVNfQ0JTSVpFICAgICAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgICAgIDB4MDA0MDAwMDAgICAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICAgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgICAgICAgICAweDAwODAwMDAwICAgICAgLyogNCAuLi4gOCBNQiBpbiBEUkFNICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgICAgIDB4MDA0MDAwMDAgICAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5EICAgICAgICAgMHgwMDgwMDAwMCAgICAgIC8qIDQgLi4uIDggTUIgaW4gRFJBTSAgICovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFogICAgICAgICAgLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFogICAgICAgICAgLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIgICAgICAgICAgIDB4MDAwMTAwMDAgICAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUiAgICAgICAgICAgMHgwMDAxMDAwMCAgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haICAgICAgICAgICAgICAgICAgMzMzMzMzMyAgICAgICAgIC8qIHNwZWMgc2F5cyA2Ni42NjYgTUh6LCBidXQgaXQgYXBwZWFycyB0byBiZSAzMyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haICAgICAgICAgICAgICAgICAgMzMzMzMzMyAgICAgICAgIC8qIHNwZWMgc2F5cyA2Ni42NjYgTUh6LCBidXQgaXQgYXBwZWFycyB0byBiZSAzMyAqLwogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIFN0YWNrIHNpemVzCkBAIC0xMzQsNyArMTM0LDcgQEAKIC8qCiAgKiBzZWxlY3Qgc2VyaWFsIGNvbnNvbGUgY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19JWFA0MjVfQ09OU09MRQlJWFA0MjVfVUFSVDEgICAvKiB3ZSB1c2UgVUFSVDEgZm9yIGNvbnNvbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JWFA0MjVfQ09OU09MRQlJWFA0MjVfVUFSVDEgICAvKiB3ZSB1c2UgVUFSVDEgZm9yIGNvbnNvbGUgKi8KIAogLyoKICAqIFBoeXNpY2FsIE1lbW9yeSBNYXAKQEAgLTE0OCwyNCArMTQ4LDI0IEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfQkFOS19TSVpFICAgIDB4MDA4MDAwMDAgLyogOCBNQiBCYW5rcyAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRSAgICAweDAwMDIwMDAwIC8qIDEyOCBLQiBzZWN0b3JzICh4MSkgKi8KIAotI2RlZmluZSBDRkdfRFJBTV9CQVNFICAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19EUkFNX1NJWkUgICAgICAgICAgIDB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBU0UgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1NJWkUgICAgICAgICAgIDB4MDEwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRSAgICAgICAgICBQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICAgICAgICBQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCiAKIC8qCiAgKiBFeHBhbnNpb24gYnVzIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0VYUF9DUzAJCQkJMHhiY2QyM2M0MgorI2RlZmluZSBDT05GSUdfU1lTX0VYUF9DUzAJCQkJMHhiY2QyM2M0MgogCiAvKgogICogU0RSQU0gc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfU0RSX0NPTkZJRwkJMHhkCi0jZGVmaW5lIENGR19TRFJfTU9ERV9DT05GSUcJMHgxCi0jZGVmaW5lIENGR19TRFJBTV9SRUZSRVNIX0NOVAkweDgxYQorI2RlZmluZSBDT05GSUdfU1lTX1NEUl9DT05GSUcJCTB4ZAorI2RlZmluZSBDT05GSUdfU1lTX1NEUl9NT0RFX0NPTkZJRwkweDEKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9SRUZSRVNIX0NOVAkweDgxYQogCiAvKgogICogR1BJTyBzZXR0aW5ncwpAQCAtMTc3LDIxICsxNzcsMjEgQEAKIC8qCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgICAgMSAgICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUICAgICAgMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAgICAgMSAgICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICAgIDEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIJKi8KICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBQSFlTX0ZMQVNIXzEgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBQSFlTX0ZMQVNIXzEgfQogCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCS8qIG5vIGJ5dGUgd3JpdGVzIG9uIElYUDR4eAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQJLyogbm8gYnl0ZSB3cml0ZXMgb24gSVhQNHh4CSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShQSFlTX0ZMQVNIXzEgKyAweDIwMDAwKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2l4ZHBnNDI1LmggYi9pbmNsdWRlL2NvbmZpZ3MvaXhkcGc0MjUuaAppbmRleCAyNDE3MjhkLi41MjhiY2NkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvaXhkcGc0MjUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvaXhkcGc0MjUuaApAQCAtNDgsNyArNDgsNyBAQAogI2RlZmluZSBDT05GSUdfSEFTX0VUSDEKICNkZWZpbmUgQ09ORklHX1BIWTFfQUREUgk0CS8qIE5QRTEgUEhZIGFkZHJlc3MJCSovCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkxNgkvKiBOdW1iZXIgb2YgZXRoZXJuZXQgcnggYnVmZmVycyAmIGRlc2NyaXB0b3JzICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNgkvKiBOdW1iZXIgb2YgZXRoZXJuZXQgcnggYnVmZmVycyAmIGRlc2NyaXB0b3JzICovCiAKIC8qCiAgKiBNaXNjIGNvbmZpZ3VyYXRpb24gb3B0aW9ucwpAQCAtNTcsNyArNTcsNyBAQAogI2RlZmluZSBDT05GSUdfVVNFX0lSUSAgICAgICAgICAxCS8qIHdlIG5lZWQgSVJRIHN0dWZmIGZvciB0aW1lcgkqLwogCiAjZGVmaW5lIENPTkZJR19CT09UQ09VTlRfTElNSVQJCS8qIHN1cHBvcnQgZm9yIGJvb3Rjb3VudCBsaW1pdAkqLwotI2RlZmluZSBDRkdfQk9PVENPVU5UX0FERFIJMHg2MDAwMzAwMCAvKiBpbnNpZGUgcW1yZyBzcmFtCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDT1VOVF9BRERSCTB4NjAwMDMwMDAgLyogaW5zaWRlIHFtcmcgc3JhbQkJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9UQUcJMQkvKiBlbmFibGUgcGFzc2luZyBvZiBBVEFHcwkqLwogI2RlZmluZSBDT05GSUdfU0VUVVBfTUVNT1JZX1RBR1MgMQpAQCAtNjYsMTQgKzY2LDE0IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKiBhbGxvdyB0byBvdmVyd3JpdGUgc2VyaWFsIGFuZCBldGhhZGRyICovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFICAgICAgICAgMTE1MjAwCi0jZGVmaW5lIENGR19JWFA0MjVfQ09OU09MRQlJWFA0MjVfVUFSVDEgICAvKiB3ZSB1c2UgVUFSVDEgZm9yIGNvbnNvbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JWFA0MjVfQ09OU09MRQlJWFA0MjVfVUFSVDEgICAvKiB3ZSB1c2UgVUFSVDEgZm9yIGNvbnNvbGUgKi8KIAogCiAvKgpAQCAtMTAzLDIyICsxMDMsMjIgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVCAgICAgICAgICAgICAgIj0+ICIgICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICAgICovCi0jZGVmaW5lIENGR19DQlNJWkUgICAgICAgICAgICAgIDI1NiAgICAgICAgICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUyAgICAgICAgICAgICAxNiAgICAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUgICAgICAgICAgICBDRkdfQ0JTSVpFICAgICAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQgICAgICAgICAgICAgICI9PiAiICAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRSAgICAgICAgICAgICAgMjU2ICAgICAgICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUyAgICAgICAgICAgICAxNiAgICAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFICAgICAgICAgICAgQ09ORklHX1NZU19DQlNJWkUgICAgICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAgICAgMHgwMDQwMDAwMCAgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORCAgICAgICAgIDB4MDA4MDAwMDAgICAgICAvKiA0IC4uLiA4IE1CIGluIERSQU0gICAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSICAgICAgICAgICAweDAwMDEwMDAwICAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgICAgIDB4MDA0MDAwMDAgICAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5EICAgICAgICAgMHgwMDgwMDAwMCAgICAgIC8qIDQgLi4uIDggTUIgaW4gRFJBTSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSICAgICAgICAgICAweDAwMDEwMDAwICAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWiAgICAgICAgICAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haICAgICAgICAgIC8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIFN0YWNrIHNpemVzCkBAIC0xODQsNDYgKzE4NCw0NiBAQAogI2RlZmluZSBQSFlTX0ZMQVNIX0JBTktfU0laRSAgICAweDAxMDAwMDAwIC8qIDE2IE1CIEJhbmtzICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFICAgIDB4MDAwMjAwMDAgLyogMTI4IEtCIHNlY3RvcnMgKHgxKSAqLwogCi0jZGVmaW5lIENGR19EUkFNX0JBU0UgICAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RSQU1fU0laRSAgICAgICAgICAgMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQkFTRSAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fU0laRSAgICAgICAgICAgMHgwMTAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgICAgIFBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFICAgICAgICAgIFBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KIAogLyoKICAqIEV4cGFuc2lvbiBidXMgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfRVhQX0NTMAkJMHhiY2QyM2M0MgorI2RlZmluZSBDT05GSUdfU1lTX0VYUF9DUzAJCTB4YmNkMjNjNDIKIAogLyoKICAqIFNEUkFNIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUl9DT05GSUcJCTB4MTgKLSNkZWZpbmUgQ0ZHX1NEUl9NT0RFX0NPTkZJRwkweDEKLSNkZWZpbmUgQ0ZHX1NEUkFNX1JFRlJFU0hfQ05UCTB4ODFhCisjZGVmaW5lIENPTkZJR19TWVNfU0RSX0NPTkZJRwkJMHgxOAorI2RlZmluZSBDT05GSUdfU1lTX1NEUl9NT0RFX0NPTkZJRwkweDEKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9SRUZSRVNIX0NOVAkweDgxYQogCiAvKgogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MgICAgIDEgICAgICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgICAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVCAgICAgIDEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgICAgIDEgICAgICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgICAgICAxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyCSovCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgUEhZU19GTEFTSF8xIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgUEhZU19GTEFTSF8xIH0KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAkvKiBubyBieXRlIHdyaXRlcyBvbiBJWFA0eHgJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCS8qIG5vIGJ5dGUgd3JpdGVzIG9uIElYUDR4eAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoUEhZU19GTEFTSF8xICsgMHg0MDAwMCkKQEAgLTIzNiwxNiArMjM2LDE2IEBACiAvKgogICogR1BJTyBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19HUElPX1BDSV9JTlRBX04JNgotI2RlZmluZSBDRkdfR1BJT19QQ0lfSU5UQl9OCTcKLSNkZWZpbmUgQ0ZHX0dQSU9fU1dJVENIX1JFU0VUX04JOAotI2RlZmluZSBDRkdfR1BJT19TTElDX1JFU0VUX04JMTMKLSNkZWZpbmUgQ0ZHX0dQSU9fUENJX0NMSwkxNAotI2RlZmluZSBDRkdfR1BJT19FWFRCVVNfQ0xLCTE1CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19QQ0lfSU5UQV9OCTYKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BDSV9JTlRCX04JNworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fU1dJVENIX1JFU0VUX04JOAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fU0xJQ19SRVNFVF9OCTEzCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19QQ0lfQ0xLCTE0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19FWFRCVVNfQ0xLCTE1CiAKIC8qCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKIAogI2VuZGlmICAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvanVwaXRlci5oIGIvaW5jbHVkZS9jb25maWdzL2p1cGl0ZXIuaAppbmRleCA1ZDhlM2E2Li4yZWJlMzcwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvanVwaXRlci5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9qdXBpdGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNkZWZpbmUgQ09ORklHX01QQzUyMDAJCTEJLyogZXNwZWNpYWxseSBhbiBNUEM1MjAwICovCiAjZGVmaW5lIENPTkZJR19KVVBJVEVSCQkxCS8qIC4uLiBvbiBKdXBpdGVyIGJvYXJkICovCiAKLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KIAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9SCTEKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgkxCkBAIC00OCw3ICs0OCw3IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1BTQ19DT05TT0xFCTEJLyogY29uc29sZSBpcyBvbiBQU0MxICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCS8qIC4uLiBhdCAxMTUyMDAgYnBzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyoKICAqIFBDSSBNYXBwaW5nOgpAQCAtNzEsMTEgKzcxLDExIEBACiAjZGVmaW5lIENPTkZJR19QQ0lfSU9fU0laRQkweDAxMDAwMDAwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfWExCX1BJUEVMSU5JTkcJMQorI2RlZmluZSBDT05GSUdfU1lTX1hMQl9QSVBFTElOSU5HCTEKIAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX01JSQkJMQotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4ICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCiAKIC8qIFBhcnRpdGlvbnMgKi8KICNkZWZpbmUgQ09ORklHX01BQ19QQVJUSVRJT04KQEAgLTE0NCw3ICsxNDQsNyBAQAogLyoKICAqIElQQiBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbi4KICAqLwotI3VuZGVmIENGR19JUEJTUEVFRF8xMzMJCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLworI3VuZGVmIENPTkZJR19TWVNfSVBCU1BFRURfMTMzCQkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KIAogI2lmIDAKIC8qIHBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KQEAgLTE2Miw0MSArMTYyLDQxIEBACiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNzAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNzAKICNlbmRpZgogCiAvKgogICogRmxhc2ggY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKFRFWFRfQkFTRSArIDB4NDAwMDApIC8qIHRoaXJkIHNlY3RvciAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MgKi8KIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzhCSVQKLSNkZWZpbmUgQ0ZHX1VQREFURV9GTEFTSF9TSVpFCTEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzhCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19VUERBVEVfRkxBU0hfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwpAQCAtMjEzLDI3ICsyMTMsMjcgQEAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAogCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KIAogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0yNDgsNTYgKzI0OCw1NiBAQAogLyoKICAqIEdQSU8gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHgxMDAwMDAwNAorI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDEwMDAwMDA0CiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCi0jZGVmaW5lIENGR19BTFRfTUVNVEVTVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCQkxCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyoKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDQ3ODAxCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwNDc4MDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9rYXRtYWkuaCBiL2luY2x1ZGUvY29uZmlncy9rYXRtYWkuaAppbmRleCBiMGRjMTc1Li41ODY5NGNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mva2F0bWFpLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2thdG1haS5oCkBAIC0zOCw3ICszOCw3IEBACiAjZGVmaW5lIENPTkZJR180NDAJCQkxCS8qIC4uLiBQUEM0NDAgZmFtaWx5CSovCiAjZGVmaW5lIENPTkZJR180NDBTUEUJCQkxCS8qIFNwZWNpZmMgU1BlIHN1cHBvcnQJKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkzMzMzMzMzMwkvKiBleHRlcm5hbCBmcmVxIHRvIHBsbAkqLwotI2RlZmluZSBDRkdfNHh4X1JFU0VUX1RZUEUJMHgyCS8qIHVzZSBjaGlwIHJlc2V0IG9uIHRoaXMgYm9hcmQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU180eHhfUkVTRVRfVFlQRQkweDIJLyogdXNlIGNoaXAgcmVzZXQgb24gdGhpcyBib2FyZAkqLwogCiAvKgogICogRW5hYmxlIHRoaXMgYm9hcmQgZm9yIG1vcmUgdGhhbiAyR0Igb2YgU0RSQU0KQEAgLTYwLDUzICs2MCw1MyBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX0JBU0UJMHhhMDAwMDAwMAkvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLwotI2RlZmluZSBDRkdfSVNSQU1fQkFTRQkJMHg5MDAwMDAwMAkvKiBpbnRlcm5hbCBTUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZjAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRQkweGEwMDAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSVNSQU1fQkFTRQkJMHg5MDAwMDAwMAkvKiBpbnRlcm5hbCBTUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBQQ0kgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QQ0lfQkFTRQkJMHhkMDAwMDAwMAkvKiBpbnRlcm5hbCBQQ0kgcmVncwkqLwotI2RlZmluZSBDRkdfUENJX1RBUkdCQVNFCUNGR19QQ0lfTUVNQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBQQ0kgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJCTB4ZDAwMDAwMDAJLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UJQ09ORklHX1NZU19QQ0lfTUVNQkFTRQogCi0jZGVmaW5lIENGR19QQ0lFX01FTUJBU0UJMHhiMDAwMDAwMAkvKiBtYXBwZWQgUENJZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BDSUVfTUVNU0laRQkweDA4MDAwMDAwCS8qIHNtYWxsZXN0IGluY3IgZm9yIFBDSWUgcG9ydCAqLwotI2RlZmluZSBDRkdfUENJRV9CQVNFCQkweGUwMDAwMDAwCS8qIFBDSWUgVVRMIHJlZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX01FTUJBU0UJMHhiMDAwMDAwMAkvKiBtYXBwZWQgUENJZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX01FTVNJWkUJMHgwODAwMDAwMAkvKiBzbWFsbGVzdCBpbmNyIGZvciBQQ0llIHBvcnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX0JBU0UJCTB4ZTAwMDAwMDAJLyogUENJZSBVVEwgcmVncyAqLwogCi0jZGVmaW5lIENGR19QQ0lFMF9DRkdCQVNFCTB4YzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX0NGR0JBU0UJMHhjMTAwMDAwMAotI2RlZmluZSBDRkdfUENJRTJfQ0ZHQkFTRQkweGMyMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMF9YQ0ZHQkFTRQkweGMzMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9YQ0ZHQkFTRQkweGMzMDAxMDAwCi0jZGVmaW5lIENGR19QQ0lFMl9YQ0ZHQkFTRQkweGMzMDAyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTBfQ0ZHQkFTRQkweGMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfQ0ZHQkFTRQkweGMxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfQ0ZHQkFTRQkweGMyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTBfWENGR0JBU0UJMHhjMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX1hDRkdCQVNFCTB4YzMwMDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9YQ0ZHQkFTRQkweGMzMDAyMDAwCiAKIC8qIGJhc2UgYWRkcmVzcyBvZiBpbmJvdW5kIFBDSWUgd2luZG93ICovCi0jZGVmaW5lIENGR19QQ0lFX0lOQk9VTkRfQkFTRQkweDAwMDAwMDAwMDAwMDAwMDBVTEwKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX0lOQk9VTkRfQkFTRQkweDAwMDAwMDAwMDAwMDAwMDBVTEwKIAogLyogU3lzdGVtIFJBTSBtYXBwZWQgdG8gUENJIHNwYWNlICovCi0jZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9CVVMJQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX1BIWVMJQ0ZHX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX0JVUwlDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX1BIWVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCiAjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9TSVpFCSgxMDI0ICogMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgQ0ZHX0FDRV9CQVNFCQkweGZlMDAwMDAwCS8qIFhpbGlueCBBQ0UgY29udHJvbGxlciAtIENvbXBhY3QgRmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ0VfQkFTRQkJMHhmZTAwMDAwMAkvKiBYaWxpbnggQUNFIGNvbnRyb2xsZXIgLSBDb21wYWN0IEZsYXNoICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlciAocGxhY2VkIGluIGludGVybmFsIFNSQU0pCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00JMQotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUglDRkdfSVNSQU1fQkFTRQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSVNSQU1fQkFTRQkvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkxCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUglDT05GSUdfU1lTX0lTUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSVNSQU1fQkFTRQkvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MjAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX1BPU1RfV09SRF9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSAweDQpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICN1bmRlZiBDT05GSUdfVUFSVDFfQ09OU09MRQotI3VuZGVmIENGR19FWFRfU0VSSUFMX0NMT0NLCisjdW5kZWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEREUiBTRFJBTQpAQCAtMTIwLDM0ICsxMjAsMzQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwogCiAjZGVmaW5lIENPTkZJR19JMkNfTVVMVElfQlVTCiAjZGVmaW5lIENPTkZJR19JMkNfQ01EX1RSRUUKLSNkZWZpbmUgQ0ZHX1NQRF9CVVNfTlVNCQkwCS8qIFRoZSBJMkMgYnVzIGZvciBTUEQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU1BEX0JVU19OVU0JCTAJLyogVGhlIEkyQyBidXMgZm9yIFNQRAkJKi8KIAogI2RlZmluZSBJSUMwX0JPT1RQUk9NX0FERFIJMHg1MAogI2RlZmluZSBJSUMwX0FMVF9CT09UUFJPTV9BRERSCTB4NTQKIAotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkoMHg1MCkKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCSgweDUwKQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCiAKIC8qIEkyQyBSVEMgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19NNDFUMTEJMQotI2RlZmluZSBDRkdfUlRDX0JVU19OVU0JCTEJLyogVGhlIEkyQyBidXMgZm9yIFJUQwkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4Ci0jZGVmaW5lIENGR19NNDFUMTFfQkFTRV9ZRUFSCTE5MDAJLyogcGxheSBhbG9uZyB3aXRoIGxpbnV4CSovCisjZGVmaW5lIENPTkZJR19TWVNfUlRDX0JVU19OVU0JCTEJLyogVGhlIEkyQyBidXMgZm9yIFJUQwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAorI2RlZmluZSBDT05GSUdfU1lTX000MVQxMV9CQVNFX1lFQVIJMTkwMAkvKiBwbGF5IGFsb25nIHdpdGggbGludXgJKi8KIAogLyogSTJDIERUVCAqLwogI2RlZmluZSBDT05GSUdfRFRUX0FETTEwMjEJMQkvKiBBRE0xMDIxIHRlbXAgc2Vuc29yIHN1cHBvcnQJKi8KLSNkZWZpbmUgQ0ZHX0RUVF9CVVNfTlVNCQkxCS8qIFRoZSBJMkMgYnVzIGZvciBEVFQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0JVU19OVU0JCTEJLyogVGhlIEkyQyBidXMgZm9yIERUVAkJKi8KIC8qCiAgKiBzdGFuZGFyZCBkdHQgc2Vuc29yIGNvbmZpZ3VyYXRpb24gLSBib3R0b20gYml0IHdpbGwgZGV0ZXJtaW5lIGxvY2FsIG9yCiAgKiByZW1vdGUgc2Vuc29yIG9mIHRoZSBBRE0xMDIxLCB0aGUgcmVzdCBkZXRlcm1pbmVzIGluZGV4IGludG8KLSAqIENGR19EVFRfQURNMTAyMSBhcnJheSBiZWxvdy4KKyAqIENPTkZJR19TWVNfRFRUX0FETTEwMjEgYXJyYXkgYmVsb3cuCiAgKi8KICNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTCXsgMCwgMSB9CiAKQEAgLTE2NCw3ICsxNjQsNyBAQAogICogLSBsb2NhbCB0ZW1wIHNlbnNvciBlbmFibGVkLCBtaW4gc2V0IHRvIDAgZGVnLCBtYXggc2V0IHRvIDg1IGRlZwogICogLSByZW1vdGUgdGVtcCBzZW5zb3IgZW5hYmxlZCwgbWluIHNldCB0byAwIGRlZywgbWF4IHNldCB0byA4NSBkZWcKICAqLwotI2RlZmluZSBDRkdfRFRUX0FETTEwMjEJCXsgeyAweDE4LCAweDAyLCAwLCAxLCAwLCA4NSwgMSwgMCwgNTh9IH0KKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfQURNMTAyMQkJeyB7IDB4MTgsIDB4MDIsIDAsIDEsIDAsIDg1LCAxLCAwLCA1OH0gfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudApAQCAtMjA1LDIxICsyMDUsMjEgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QgICAge0NGR19GTEFTSF9CQVNFfQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgICAxCQkgICAgLyogbnVtYmVyIG9mIGJhbmtzCSAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTAyNAkJICAgIC8qIHNlY3RvcnMgcGVyIGRldmljZSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCAgICB7Q09ORklHX1NZU19GTEFTSF9CQVNFfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAgICAgMQkJICAgIC8qIG51bWJlciBvZiBiYW5rcwkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMDI0CQkgICAgLyogc2VjdG9ycyBwZXIgZGV2aWNlICAgKi8KIAotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAgLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTIzNywxMiArMjM3LDEyIEBACiAjZGVmaW5lIENPTkZJR19QQ0lfQ09ORklHX0hPU1RfQlJJREdFCiAKIC8qIEJvYXJkLXNwZWNpZmljIFBDSSAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdFVF9JTklUCQkvKiBsZXQgYm9hcmQgaW5pdCBwY2kgdGFyZ2V0ICAgICovCi0jdW5kZWYJQ0ZHX1BDSV9NQVNURVJfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVAkJLyogbGV0IGJvYXJkIGluaXQgcGNpIHRhcmdldCAgICAqLworI3VuZGVmCUNPTkZJR19TWVNfUENJX01BU1RFUl9JTklUCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDE0CS8qIElCTQkJCQkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIJCQkqLwotLyogI2RlZmluZSBDRkdfUENJX1NVQlNZU19JRAlDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDE0CS8qIElCTQkJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHhjYWZlCS8qIFdoYXRldmVyCQkJKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0lECUNPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAqLwogCiAvKgogICogIE5FVFdPUksgU3VwcG9ydCAoUENJKToKQEAgLTI1NCw4ICsyNTQsOCBAQAogICogWGlsaW54IFN5c3RlbSBBQ0Ugc3VwcG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNkZWZpbmUgQ09ORklHX1NZU1RFTUFDRQkxCS8qIEVuYWJsZSBTeXN0ZW1BQ0Ugc3VwcG9ydAkqLwotI2RlZmluZSBDRkdfU1lTVEVNQUNFX1dJRFRICTE2CS8qIERhdGEgYnVzIHdpZHRoIGlzIDE2CQkqLwotI2RlZmluZSBDRkdfU1lTVEVNQUNFX0JBU0UJQ0ZHX0FDRV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU1lTVEVNQUNFX1dJRFRICTE2CS8qIERhdGEgYnVzIHdpZHRoIGlzIDE2CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NZU1RFTUFDRV9CQVNFCUNPTkZJR19TWVNfQUNFX0JBU0UKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04JMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjMsNyArMjYzLDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJKEVCQ19CWEFQX0JNRV9ESVNBQkxFRCAgICAgIHwJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCShFQkNfQlhBUF9CTUVfRElTQUJMRUQgICAgICB8CQlcCiAJCQkJIEVCQ19CWEFQX1RXVF9FTkNPREUoNykgICAgIHwJCVwKIAkJCQkgRUJDX0JYQVBfQkNFX0RJU0FCTEUgICAgICAgfAkJXAogCQkJCSBFQkNfQlhBUF9CQ1RfMlRSQU5TICAgICAgICB8CQlcCkBAIC0yNzYsMTMgKzI3NiwxMyBAQAogCQkJCSBFQkNfQlhBUF9TT1JfREVMQVlFRCAgICAgICB8CQlcCiAJCQkJIEVCQ19CWEFQX0JFTV9XUklURU9OTFkgICAgIHwJCVwKIAkJCQkgRUJDX0JYQVBfUEVOX0RJU0FCTEVEKQotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkoRUJDX0JYQ1JfQkFTX0VOQ09ERShDRkdfRkxBU0hfQkFTRSkgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkoRUJDX0JYQ1JfQkFTX0VOQ09ERShDT05GSUdfU1lTX0ZMQVNIX0JBU0UpIHwJXAogCQkJCSBFQkNfQlhDUl9CU18xNk1CICAgICAgICAgICAgICAgICAgICB8CVwKIAkJCQkgRUJDX0JYQ1JfQlVfUlcgICAgICAgICAgICAgICAgICAgICAgfAlcCiAJCQkJIEVCQ19CWENSX0JXXzE2QklUKQogCiAvKiBNZW1vcnkgQmFuayAxIChYaWxpbnggU3lzdGVtIEFDRSBjb250cm9sbGVyKSBpbml0aWFsaXphdGlvbgkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJKEVCQ19CWEFQX0JNRV9ESVNBQkxFRCAgICAgIHwJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCShFQkNfQlhBUF9CTUVfRElTQUJMRUQgICAgICB8CQlcCiAJCQkJIEVCQ19CWEFQX1RXVF9FTkNPREUoNCkgICAgIHwJCVwKIAkJCQkgRUJDX0JYQVBfQkNFX0RJU0FCTEUgICAgICAgfAkJXAogCQkJCSBFQkNfQlhBUF9CQ1RfMlRSQU5TICAgICAgICB8CQlcCkBAIC0yOTUsNyArMjk1LDcgQEAKIAkJCQkgRUJDX0JYQVBfU09SX05PTkRFTEFZRUQgICAgfAkJXAogCQkJCSBFQkNfQlhBUF9CRU1fV1JJVEVPTkxZICAgICB8CQlcCiAJCQkJIEVCQ19CWEFQX1BFTl9ESVNBQkxFRCkKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJKEVCQ19CWENSX0JBU19FTkNPREUoQ0ZHX0FDRV9CQVNFKSAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkoRUJDX0JYQ1JfQkFTX0VOQ09ERShDT05GSUdfU1lTX0FDRV9CQVNFKSAgfAlcCiAJCQkJIEVCQ19CWENSX0JTXzFNQiAgICAgICAgICAgICAgICAgICAgfAlcCiAJCQkJIEVCQ19CWENSX0JVX1JXICAgICAgICAgICAgICAgICAgICAgfAlcCiAJCQkJIEVCQ19CWENSX0JXXzE2QklUKQpAQCAtMzA1LDcgKzMwNSw3IEBACiAgKiBLZWVwIHRoZSBEZWZhdWx0IHZhbHVlLCBidXQgdGhlIGJpdCBQRFQgd2hpY2ggaGFzIHRvIGJlIHNldCB0byAxID9UQkMKICAqIGRlZmF1bHQgdmFsdWUgOiAweDA3QzAwMDAwIC0gMCAwIDAwMCAxIDEgMSAxIDEgMDAwMCAwIDAwMDAwIDAwMDAwMDAwMDAwMAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0VCQ19DRkcJCShFQkNfQ0ZHX0xFX1VOTE9DSyAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfQ0ZHCQkoRUJDX0NGR19MRV9VTkxPQ0sgICAgfAlcCiAJCQkJIEVCQ19DRkdfUFREX0VOQUJMRSAgIHwJXAogCQkJCSBFQkNfQ0ZHX1JUQ18xNlBFUkNMSyB8IFwKIAkJCQkgRUJDX0NGR19BVENfUFJFVklPVVMgfCBcCkBAIC0zMTksMTcgKzMxOSwxNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogR1BJTyBTZXR1cAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fUENJRV9QUkVTRU5UMAkxNwotI2RlZmluZSBDRkdfR1BJT19QQ0lFX1BSRVNFTlQxCTIxCi0jZGVmaW5lIENGR19HUElPX1BDSUVfUFJFU0VOVDIJMjMKLSNkZWZpbmUgQ0ZHX0dQSU9fUlMyMzJfRk9SQ0VPRkYJMzAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BDSUVfUFJFU0VOVDAJMTcKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BDSUVfUFJFU0VOVDEJMjEKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BDSUVfUFJFU0VOVDIJMjMKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1JTMjMyX0ZPUkNFT0ZGCTMwCiAKLSNkZWZpbmUgQ0ZHX1BGQzAJCShHUElPX1ZBTChDRkdfR1BJT19QQ0lFX1BSRVNFTlQwKSB8IFwKLQkJCQkgR1BJT19WQUwoQ0ZHX0dQSU9fUENJRV9QUkVTRU5UMSkgfCBcCi0JCQkJIEdQSU9fVkFMKENGR19HUElPX1BDSUVfUFJFU0VOVDIpIHwgXAotCQkJCSBHUElPX1ZBTChDRkdfR1BJT19SUzIzMl9GT1JDRU9GRikpCi0jZGVmaW5lIENGR19HUElPX09SCQlHUElPX1ZBTChDRkdfR1BJT19SUzIzMl9GT1JDRU9GRikKLSNkZWZpbmUgQ0ZHX0dQSU9fVENSCQlHUElPX1ZBTChDRkdfR1BJT19SUzIzMl9GT1JDRU9GRikKLSNkZWZpbmUgQ0ZHX0dQSU9fT0RSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUEZDMAkJKEdQSU9fVkFMKENPTkZJR19TWVNfR1BJT19QQ0lFX1BSRVNFTlQwKSB8IFwKKwkJCQkgR1BJT19WQUwoQ09ORklHX1NZU19HUElPX1BDSUVfUFJFU0VOVDEpIHwgXAorCQkJCSBHUElPX1ZBTChDT05GSUdfU1lTX0dQSU9fUENJRV9QUkVTRU5UMikgfCBcCisJCQkJIEdQSU9fVkFMKENPTkZJR19TWVNfR1BJT19SUzIzMl9GT1JDRU9GRikpCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19PUgkJR1BJT19WQUwoQ09ORklHX1NZU19HUElPX1JTMjMyX0ZPUkNFT0ZGKQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fVENSCQlHUElPX1ZBTChDT05GSUdfU1lTX0dQSU9fUlMyMzJfRk9SQ0VPRkYpCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19PRFIJCTAKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9rYjkyMDIuaCBiL2luY2x1ZGUvY29uZmlncy9rYjkyMDIuaAppbmRleCAzYzUxNDE3Li41NWNkYTMyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mva2I5MjAyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2tiOTIwMi5oCkBAIC01Miw3ICs1Miw3IEBACiAKICNkZWZpbmUJQ09ORklHX1NLSVBfTE9XTEVWRUxfSU5JVAogCi0jZGVmaW5lCUNGR19MT05HSEVMUAorI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCiAKICNpZm5kZWYgcm91bmR1cAogI2RlZmluZSByb3VuZHVwKHgsIHkpICgoKCh4KSArICgoeSkgLSAxKSkgLyAoeSkpICogKHkpKQpAQCAtNjAsOCArNjAsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCShyb3VuZHVwKENPTkZJR19FTlZfU0laRSw0MDk2KSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkocm91bmR1cChDT05GSUdfRU5WX1NJWkUsNDA5NikgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUgMTE1MjAwCiAKQEAgLTEwOSwxMyArMTA5LDEzIEBACiAjZGVmaW5lIFBIWVNfU0RSQU0gMHgyMDAwMDAwMAogI2RlZmluZSBQSFlTX1NEUkFNX1NJWkUgMHgyMDAwMDAwICAvKiAzMiBtZWdzICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCVBIWVNfU0RSQU0KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkJQ0ZHX01FTVRFU1RfU1RBUlQgKyBQSFlTX1NEUkFNX1NJWkUgLSAoNTEyKjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkJUEhZU19TRFJBTQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkJQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICsgUEhZU19TRFJBTV9TSVpFIC0gKDUxMioxMDI0KQogCiAjZGVmaW5lIENPTkZJR19EUklWRVJfRVRIRVIKICNkZWZpbmUgQ09ORklHX05FVF9SRVRSWV9DT1VOVAkJMjAKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJCTB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkJMHgxMDAwMDAwMAogCiAjaWZkZWYgQ09ORklHX0tCOTIwMgogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCQkweDEwMDAwMDAKQEAgLTEyMyw4ICsxMjMsOCBAQAogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCQkweDIwMDAwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkyNTYKIAogI2RlZmluZQlDT05GSUdfSEFSRF9JMkMKIApAQCAtMTM3LDI0ICsxMzcsMjQgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCQkweDEwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJMHgxMDAwCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1MAotI2RlZmluZQlDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk2Ci0jZGVmaW5lCUNGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCi0jZGVmaW5lCUNGR19JMkNfU1BFRUQJCQk1MDAwMAotI2RlZmluZQlDRkdfSTJDX1NMQVZFCQkJMCAvKiBub3QgdXNlZCAqLwotI2RlZmluZQlDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAKKyNkZWZpbmUJQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTYKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX1NQRUVECQkJNTAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfU0xBVkUJCQkwIC8qIG5vdCB1c2VkICovCisjZGVmaW5lCUNPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIxMDAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgyMTAwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJezExNTIwMCAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDk2MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsxMTUyMDAgLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCA5NjAwIH0KIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiVS1Cb290PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJVLUJvb3Q+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCiAKICNkZWZpbmUJQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUJQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX0NGSQogCiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTc1LDggKzE3NSw4IEBACiB9OwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0haIDEwMDAKLSNkZWZpbmUgQ0ZHX0haX0NMT0NLIEFUOTFDX01BU1RFUl9DTE9DSy8yCS8qIEFUOTFDX1RDMF9DTVIgaXMgaW1wbGljaXRseSBzZXQgdG8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWiAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFpfQ0xPQ0sgQVQ5MUNfTUFTVEVSX0NMT0NLLzIJLyogQVQ5MUNfVEMwX0NNUiBpcyBpbXBsaWNpdGx5IHNldCB0byAqLwogCQkJCQkvKiBBVDkxQ19UQ19USU1FUl9ESVYxX0NMT0NLICovCiAKICNkZWZpbmUgQ09ORklHX1NUQUNLU0laRQkoMzIqMTAyNCkJLyogcmVndWxhciBzdGFjayAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2tpbGF1ZWEuaCBiL2luY2x1ZGUvY29uZmlncy9raWxhdWVhLmgKaW5kZXggNTg5MThkNC4uMjM3YTljNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2tpbGF1ZWEuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mva2lsYXVlYS5oCkBAIC01MywxMCArNTMsMTAgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGQzAwMDAwMAotI2RlZmluZSBDRkdfTkFORF9BRERSCQkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19GUEdBX0JBU0UJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRQkweEVGNjAwMDAwICAgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0FERFIJCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0UJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UJMHhFRjYwMDAwMCAgICAgIC8qIGludGVybmFsIHBlcmlwaGVyYWxzKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBTdGFjayBQb2ludGVyIENvbmZpZ3VyYXRpb24gT3B0aW9ucwpAQCAtNzIsMjUgKzcyLDI1IEBACiAgKiAgIHRoZSBsYXR0ZXIgb2Ygd2hpY2ggaXMgbGVzcyB0aGFuIGRlc2lyZWFibGUgc2luY2UgaXQgcmVxdWlyZXMKICAqICAgc2V0dGluZyB1cCB0aGUgU0RSQU0gYW5kIEVDQyBpbiBhc3NlbWJseSBjb2RlLgogICoKLSAqICAgVG8gdXNlICgyKSwgZGVmaW5lICdDRkdfSU5JVF9EQ0FDSEVfQ1MnIHRvIGJlIGFuIHVudXNlZCBjaGlwCisgKiAgIFRvIHVzZSAoMiksIGRlZmluZSAnQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUycgdG8gYmUgYW4gdW51c2VkIGNoaXAKICAqICAgc2VsZWN0IG9uIHRoZSBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBhbmQgdGhlbiBzZWxlY3QgYQotICogICB2YWx1ZSBmb3IgJ0NGR19JTklUX1JBTV9BRERSJyBvdXRzaWRlIG9mIHRoZSByYW5nZSBvZiB2YWxpZCwKLSAqICAgcGh5c2ljYWwgU0RSQU0uIE90aGVyd2lzZSwgdW5kZWZpbmUgJ0NGR19JTklUX0RDQUNIRV9DUycgYW5kCi0gKiAgIHNlbGVjdCBhIHZhbHVlIGZvciAnQ0ZHX0lOSVRfUkFNX0FERFInIHdpdGhpbiB0aGUgcmFuZ2Ugb2YgdmFsaWQsCisgKiAgIHZhbHVlIGZvciAnQ09ORklHX1NZU19JTklUX1JBTV9BRERSJyBvdXRzaWRlIG9mIHRoZSByYW5nZSBvZiB2YWxpZCwKKyAqICAgcGh5c2ljYWwgU0RSQU0uIE90aGVyd2lzZSwgdW5kZWZpbmUgJ0NPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MnIGFuZAorICogICBzZWxlY3QgYSB2YWx1ZSBmb3IgJ0NPTkZJR19TWVNfSU5JVF9SQU1fQUREUicgd2l0aGluIHRoZSByYW5nZSBvZiB2YWxpZCwKICAqICAgcGh5c2ljYWwgU0RSQU0gdG8gdXNlICgzKS4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jZGVmaW5lIENGR19JTklUX0RDQUNIRV9DUwk0CisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MJNAogCi0jaWYgZGVmaW5lZChDRkdfSU5JVF9EQ0FDSEVfQ1MpCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCShDRkdfU0RSQU1fQkFTRSArICggMSA8PCAzMCkpCS8qICAxIEdpQiAqLworI2lmIGRlZmluZWQoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUykKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoIDEgPDwgMzApKQkvKiAgMSBHaUIgKi8KICNlbHNlCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCShDRkdfU0RSQU1fQkFTRSArICgzMiA8PCAyMCkpCS8qIDMyIE1pQiAqLwotI2VuZGlmIC8qIGRlZmluZWQoQ0ZHX0lOSVRfRENBQ0hFX0NTKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArICgzMiA8PCAyMCkpCS8qIDMyIE1pQiAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUykgKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgICAoNCA8PCAxMCkJCQkvKiAgNCBLaUIgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMjU2CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgICAgICg0IDw8IDEwKQkJCS8qICA0IEtpQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogLyoKICAqIElmIHRoZSBkYXRhIGNhY2hlIGlzIGJlaW5nIHVzZWQgZm9yIHRoZSBwcmltb3JkaWFsIHN0YWNrIGFuZCBnbG9iYWwKQEAgLTEwMCwyMCArMTAwLDIwIEBACiAgKiBmb3IgdGhlIFBPU1Qgd29yZC4KICAqLwogCi0jaWYgZGVmaW5lZChDRkdfSU5JVF9EQ0FDSEVfQ1MpCi0jIGRlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAotIyBkZWZpbmUgQ0ZHX1BPU1RfQUxUX1dPUkRfQUREUgkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIEdQVDBfQ09NUDYpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTKQorIyBkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAorIyBkZWZpbmUgQ09ORklHX1NZU19QT1NUX0FMVF9XT1JEX0FERFIJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgR1BUMF9DT01QNikKICNlbHNlCi0jIGRlZmluZSBDRkdfSU5JVF9FWFRSQV9TSVpFCTE2Ci0jIGRlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJKENGR19HQkxfREFUQV9PRkZTRVQgLSBDRkdfSU5JVF9FWFRSQV9TSVpFKQotIyBkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gNCkKLSMgZGVmaW5lIENGR19PQ01fREFUQV9BRERSCUNGR19JTklUX1JBTV9BRERSCi0jZW5kaWYgLyogZGVmaW5lZChDRkdfSU5JVF9EQ0FDSEVfQ1MpICovCisjIGRlZmluZSBDT05GSUdfU1lTX0lOSVRfRVhUUkFfU0laRQkxNgorIyBkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSBDT05GSUdfU1lTX0lOSVRfRVhUUkFfU0laRSkKKyMgZGVmaW5lIENPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gNCkKKyMgZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUglDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIKKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MpICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRVhUX1NFUklBTF9DTE9DSwkxMTA1OTIwMAkvKiBleHQuIDExLjA1OU1IeiBjbGsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCTExMDU5MjAwCS8qIGV4dC4gMTEuMDU5TUh6IGNsawkqLwogLyogZGVmaW5lIHRoaXMgaWYgeW91IHdhbnQgY29uc29sZSBvbiBVQVJUMSAqLwogI3VuZGVmIENPTkZJR19VQVJUMV9DT05TT0xFCiAKQEAgLTEzMCwyMiArMTMwLDIyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCByZWxhdGVkCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVCAgICB7Q0ZHX0ZMQVNIX0JBU0V9Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUICAgIHtDT05GSUdfU1lTX0ZMQVNIX0JBU0V9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHg0MDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTcxLDU3ICsxNzEsNTcgQEAKICAqIHNldCB1cC4gV2hpbGUgc3RpbGwgcnVubmluZyBmcm9tIGxvY2F0aW9uIDB4ZmZmZmYwMDAuLi4weGZmZmZmZmZmIHRoZQogICogTkFORCBjb250cm9sbGVyIGNhbm5vdCBiZSBhY2Nlc3NlZCBzaW5jZSBpdCBpcyBhdHRhY2hlZCB0byBDUzAgdG9vLgogICovCi0jZGVmaW5lIENGR19OQU5EX0JPT1RfU1BMX1NSQwkweGZmZmZmMDAwCS8qIFNQTCBsb2NhdGlvbgkJCSovCi0jZGVmaW5lIENGR19OQU5EX0JPT1RfU1BMX1NJWkUJKDQgPDwgMTApCS8qIFNQTCBzaXplCQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQk9PVF9TUExfRFNUCTB4MDA4MDAwMDAJLyogQ29weSBTUEwgaGVyZQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX0RTVAkweDAxMDAwMDAwCS8qIExvYWQgTlVCIHRvIHRoaXMgYWRkcgkqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfU1RBUlQJQ0ZHX05BTkRfVV9CT09UX0RTVCAvKiBTdGFydCBOVUIgZnJvbSB0aGlzIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQk9PVF9TUExfREVMVEEJKENGR19OQU5EX0JPT1RfU1BMX1NSQyAtIENGR19OQU5EX0JPT1RfU1BMX0RTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQwkweGZmZmZmMDAwCS8qIFNQTCBsb2NhdGlvbgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TSVpFCSg0IDw8IDEwKQkvKiBTUEwgc2l6ZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9EU1QJMHgwMDgwMDAwMAkvKiBDb3B5IFNQTCBoZXJlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX0RTVAkweDAxMDAwMDAwCS8qIExvYWQgTlVCIHRvIHRoaXMgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NUQVJUCUNPTkZJR19TWVNfTkFORF9VX0JPT1RfRFNUIC8qIFN0YXJ0IE5VQiBmcm9tIHRoaXMgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfREVMVEEJKENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkMgLSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfRFNUKQogCiAvKgogICogRGVmaW5lIHRoZSBwYXJ0aXRpb25pbmcgb2YgdGhlIE5BTkQgY2hpcCAob25seSBSQU0gVS1Cb290IGlzIG5lZWRlZCBoZXJlKQogICovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9PRkZTCSgxNiA8PCAxMCkJLyogT2Zmc2V0IHRvIFJBTSBVLUJvb3QgaW1hZ2UJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX1NJWkUJKDM4NCA8PCAxMCkJLyogU2l6ZSBvZiBSQU0gVS1Cb290IGltYWdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfT0ZGUwkoMTYgPDwgMTApCS8qIE9mZnNldCB0byBSQU0gVS1Cb290IGltYWdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfU0laRQkoMzg0IDw8IDEwKQkvKiBTaXplIG9mIFJBTSBVLUJvb3QgaW1hZ2UJKi8KIAogLyoKICAqIE5vdyB0aGUgTkFORCBjaGlwIGhhcyB0byBiZSBkZWZpbmVkIChubyBhdXRvZGV0ZWN0aW9uIHVzZWQhKQogICovCi0jZGVmaW5lIENGR19OQU5EX1BBR0VfU0laRQk1MTIJCS8qIE5BTkQgY2hpcCBwYWdlIHNpemUJCSovCi0jZGVmaW5lIENGR19OQU5EX0JMT0NLX1NJWkUJKDE2IDw8IDEwKQkvKiBOQU5EIGNoaXAgYmxvY2sgc2l6ZQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUEFHRV9DT1VOVAkzMgkJLyogTkFORCBjaGlwIHBhZ2UgY291bnQJCSovCi0jZGVmaW5lIENGR19OQU5EX0JBRF9CTE9DS19QT1MJNQkJLyogTG9jYXRpb24gb2YgYmFkIGJsb2NrIG1hcmtlcgkqLwotI2RlZmluZSBDRkdfTkFORF80X0FERFJfQ1lDTEUJMQkJLyogRm91cnRoIGFkZHIgdXNlZCAoPjMyTUIpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9QQUdFX1NJWkUJNTEyCQkvKiBOQU5EIGNoaXAgcGFnZSBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkxPQ0tfU0laRQkoMTYgPDwgMTApCS8qIE5BTkQgY2hpcCBibG9jayBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUEFHRV9DT1VOVAkzMgkJLyogTkFORCBjaGlwIHBhZ2UgY291bnQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQURfQkxPQ0tfUE9TCTUJCS8qIExvY2F0aW9uIG9mIGJhZCBibG9jayBtYXJrZXIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EXzRfQUREUl9DWUNMRQkxCQkvKiBGb3VydGggYWRkciB1c2VkICg+MzJNQikJKi8KIAotI2RlZmluZSBDRkdfTkFORF9FQ0NTSVpFCTI1NgotI2RlZmluZSBDRkdfTkFORF9FQ0NCWVRFUwkzCi0jZGVmaW5lIENGR19OQU5EX0VDQ1NURVBTCShDRkdfTkFORF9QQUdFX1NJWkUgLyBDRkdfTkFORF9FQ0NTSVpFKQotI2RlZmluZSBDRkdfTkFORF9PT0JTSVpFCTE2Ci0jZGVmaW5lIENGR19OQU5EX0VDQ1RPVEFMCShDRkdfTkFORF9FQ0NCWVRFUyAqIENGR19OQU5EX0VDQ1NURVBTKQotI2RlZmluZSBDRkdfTkFORF9FQ0NQT1MJCXswLCAxLCAyLCAzLCA2LCA3fQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDU0laRQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1NURVBTCShDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFIC8gQ09ORklHX1NZU19OQU5EX0VDQ1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9PT0JTSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NUT1RBTAkoQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTICogQ09ORklHX1NZU19OQU5EX0VDQ1NURVBTKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDUE9TCQl7MCwgMSwgMiwgMywgNiwgN30KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fTkFORAogLyoKICAqIEZvciBOQU5EIGJvb3RpbmcgdGhlIGVudmlyb25tZW50IGlzIGVtYmVkZGVkIGluIHRoZSBVLUJvb3QgaW1hZ2UuIFBsZWFzZSB0YWtlCiAgKiBsb29rIGF0IHRoZSBmaWxlIGJvYXJkL2FtY2Mvc2VxdW9pYS91LWJvb3QtbmFuZC5sZHMgZm9yIGRldGFpbHMuCiAgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlDRkdfTkFORF9CTE9DS19TSVpFCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ0ZHX05BTkRfVV9CT09UX09GRlMgKyBDT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJQ09ORklHX1NZU19OQU5EX0JMT0NLX1NJWkUKKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfU1lTX05BTkRfVV9CT09UX09GRlMgKyBDT05GSUdfRU5WX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQgKyBDT05GSUdfRU5WX1NJWkUpCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTkFORCBGTEFTSAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEKICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCTEKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkJKENGR19OQU5EX0FERFIgKyBDRkdfTkFORF9DUykKLSNkZWZpbmUgQ0ZHX05BTkRfU0VMRUNUX0RFVklDRSAgMQkvKiBuYW5kIGRyaXZlciBzdXBwb3J0cyBtdXRpcGwuIGNoaXBzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkoQ09ORklHX1NZU19OQU5EX0FERFIgKyBDT05GSUdfU1lTX05BTkRfQ1MpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9TRUxFQ1RfREVWSUNFICAxCS8qIG5hbmQgZHJpdmVyIHN1cHBvcnRzIG11dGlwbC4gY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRERSIFNEUkFNCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUJZVEVTX1NEUkFNICAgICAgICAoMjU2KQkJLyogMjU2TUIJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01CWVRFU19TRFJBTSAgICAgICAgKDI1NikJCS8qIDI1Nk1CCQkJKi8KIAogLyoKICAqIENPTkZJR19QUEM0eHhfRERSX0FVVE9DQUxJQlJBVElPTgpAQCAtMjM5LDU1ICsyMzksNTUgQEAKICNkZWZpbmUJREVCVUdfUFBDNHh4X0REUl9BVVRPQ0FMSUJSQVRJT04JLyogZHluYW1pYyBERFIgYXV0b2NhbCBkZWJ1ZyAqLwogI3VuZGVmCUNPTkZJR19QUEM0eHhfRERSX01FVEhPRF9BCiAKLSNkZWZpbmUJQ0ZHX1NEUkFNMF9NQjBDRl9CQVNFCSgoICAwIDw8IDIwKSArIENGR19TRFJBTV9CQVNFKQorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNMF9NQjBDRl9CQVNFCSgoICAwIDw8IDIwKSArIENPTkZJR19TWVNfU0RSQU1fQkFTRSkKIAogLyogRERSMS8yIFNEUkFNIERldmljZSBDb250cm9sIFJlZ2lzdGVyIERhdGEgVmFsdWVzICovCi0jZGVmaW5lIENGR19TRFJBTTBfTUIwQ0YJKChDRkdfU0RSQU0wX01CMENGX0JBU0UgPj4gMykJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX01CMENGCSgoQ09ORklHX1NZU19TRFJBTTBfTUIwQ0ZfQkFTRSA+PiAzKQl8IFwKIAkJCQkgU0RSQU1fUlhCQVNfU0RTWl8yNTZNQgkJfCBcCiAJCQkJIFNEUkFNX1JYQkFTX1NEQU1fTU9ERTcJCXwgXAogCQkJCSBTRFJBTV9SWEJBU19TREJFX0VOQUJMRSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9NQjFDRglTRFJBTV9SWEJBU19TREJFX0RJU0FCTEUKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9NQjJDRglTRFJBTV9SWEJBU19TREJFX0RJU0FCTEUKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9NQjNDRglTRFJBTV9SWEJBU19TREJFX0RJU0FCTEUKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9NQ09QVDEJKFNEUkFNX01DT1BUMV9QTVVfT1BFTgkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX01CMUNGCVNEUkFNX1JYQkFTX1NEQkVfRElTQUJMRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9NQjJDRglTRFJBTV9SWEJBU19TREJFX0RJU0FCTEUKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfTUIzQ0YJU0RSQU1fUlhCQVNfU0RCRV9ESVNBQkxFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX01DT1BUMQkoU0RSQU1fTUNPUFQxX1BNVV9PUEVOCQl8IFwKIAkJCQkgU0RSQU1fTUNPUFQxXzhfQkFOS1MJCXwgXAogCQkJCSBTRFJBTV9NQ09QVDFfRERSMl9UWVBFCQl8IFwKIAkJCQkgU0RSQU1fTUNPUFQxX1FERVAJCXwgXAogCQkJCSBTRFJBTV9NQ09QVDFfRENPT19ESVNBQkxFRCkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9NQ09QVDIJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0wX01PRFQwCShTRFJBTV9NT0RUX0VCMFdfRU5BQkxFIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9NQ09QVDIJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9NT0RUMAkoU0RSQU1fTU9EVF9FQjBXX0VOQUJMRSB8IFwKIAkJCQkgU0RSQU1fTU9EVF9FQjBSX0VOQUJMRSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9NT0RUMQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfQ09EVAkJKFNEUkFNX0NPRFRfUkswUl9PTgkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX01PRFQxCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfQ09EVAkJKFNEUkFNX0NPRFRfUkswUl9PTgkJfCBcCiAJCQkJIFNEUkFNX0NPRFRfQ0tMWl8zNk9ITQkJfCBcCiAJCQkJIFNEUkFNX0NPRFRfRFFTXzFfOF9WX0REUjIJfCBcCiAJCQkJIFNEUkFNX0NPRFRfSU9fTk1PREUpCi0jZGVmaW5lIENGR19TRFJBTTBfUlRSCQlTRFJBTV9SVFJfUklOVF9FTkNPREUoMTU2MCkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSMAkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfUlRSCQlTRFJBTV9SVFJfUklOVF9FTkNPREUoMTU2MCkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjAJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSU1XVF9FTkNPREUoODApCQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lDTURfRU5DT0RFKEpFREVDX0NNRF9OT1ApKQotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIxCShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMQkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JTVdUX0VOQ09ERSgzKQkJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQ01EX0VOQ09ERShKRURFQ19DTURfUFJFQ0hBUkdFKQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSUJBX0VOQ09ERShKRURFQ19CQV9NUikJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JTUFfRU5DT0RFKEpFREVDX01BX1BSRUNIQVJHRV9BTEwpKQotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIyCShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMgkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JTVdUX0VOQ09ERSgyKQkJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQ01EX0VOQ09ERShKRURFQ19DTURfRU1SKQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSUJBX0VOQ09ERShKRURFQ19CQV9FTVIyKQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNQV9FTkNPREUoSkVERUNfTUFfRU1SMl9URU1QX0NPTU1FUkNJQUwpKQotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIzCShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMwkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JTVdUX0VOQ09ERSgyKQkJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQ01EX0VOQ09ERShKRURFQ19DTURfRU1SKQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSUJBX0VOQ09ERShKRURFQ19CQV9FTVIzKQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNQV9FTkNPREUoMCkpCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjQJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFI0CShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNV1RfRU5DT0RFKDIpCQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lDTURfRU5DT0RFKEpFREVDX0NNRF9FTVIpCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQkFfRU5DT0RFKEpFREVDX0JBX0VNUikJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JTUFfRU5DT0RFKEpFREVDX01BX0VNUl9EUVNfRElTQUJMRSB8IFwKIAkJCQkJIEpFREVDX01BX0VNUl9SVFRfNzVPSE0pKQotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFI1CShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSNQkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JTVdUX0VOQ09ERSgyKQkJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQ01EX0VOQ09ERShKRURFQ19DTURfRU1SKQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSUJBX0VOQ09ERShKRURFQ19CQV9NUikJCQl8IFwKQEAgLTI5NSwzMSArMjk1LDMxIEBACiAJCQkJCSBKRURFQ19NQV9NUl9DTF9ERFIyXzRfMF9DTEsgfCBcCiAJCQkJCSBKRURFQ19NQV9NUl9CTEVOXzQgfCBcCiAJCQkJCSBKRURFQ19NQV9NUl9ETExfUkVTRVQpKQotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFI2CShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSNgkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JTVdUX0VOQ09ERSgzKQkJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQ01EX0VOQ09ERShKRURFQ19DTURfUFJFQ0hBUkdFKQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSUJBX0VOQ09ERSgweDApCQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNQV9FTkNPREUoSkVERUNfTUFfUFJFQ0hBUkdFX0FMTCkpCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjcJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFI3CShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNV1RfRU5DT0RFKDI2KQkJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQ01EX0VOQ09ERShKRURFQ19DTURfUkVGUkVTSCkpCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjgJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFI4CShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNV1RfRU5DT0RFKDI2KQkJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQ01EX0VOQ09ERShKRURFQ19DTURfUkVGUkVTSCkpCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjkJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFI5CShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNV1RfRU5DT0RFKDI2KQkJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQ01EX0VOQ09ERShKRURFQ19DTURfUkVGUkVTSCkpCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjEwCShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMTAJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSU1XVF9FTkNPREUoMjYpCQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lDTURfRU5DT0RFKEpFREVDX0NNRF9SRUZSRVNIKSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSMTEJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFIxMQkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JTVdUX0VOQ09ERSgyKQkJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQ01EX0VOQ09ERShKRURFQ19DTURfRU1SKQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSUJBX0VOQ09ERShKRURFQ19CQV9NUikJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JTUFfRU5DT0RFKEpFREVDX01BX01SX1dSX0REUjJfM19DWUMgfCBcCiAJCQkJCSBKRURFQ19NQV9NUl9DTF9ERFIyXzRfMF9DTEsgfCBcCiAJCQkJCSBKRURFQ19NQV9NUl9CTEVOXzQpKQotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIxMgkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjEyCShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNV1RfRU5DT0RFKDIpCQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lDTURfRU5DT0RFKEpFREVDX0NNRF9FTVIpCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQkFfRU5DT0RFKEpFREVDX0JBX0VNUikJCQl8IFwKQEAgLTMyOCw3ICszMjgsNyBAQAogCQkJCQkgSkVERUNfTUFfRU1SX0RRU19ESVNBQkxFIHwgXAogCQkJCQkgSkVERUNfTUFfRU1SX1JUVF9ESVNBQkxFRCB8IFwKIAkJCQkJIEpFREVDX01BX0VNUl9PRFNfTk9STUFMKSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSMTMJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFIxMwkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JTVdUX0VOQ09ERSgyKQkJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQ01EX0VOQ09ERShKRURFQ19DTURfRU1SKQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSUJBX0VOQ09ERShKRURFQ19CQV9FTVIpCQkJfCBcCkBAIC0zMzcsNTQgKzMzNyw1NCBAQAogCQkJCQkgSkVERUNfTUFfRU1SX0RRU19ESVNBQkxFIHwgXAogCQkJCQkgSkVERUNfTUFfRU1SX1JUVF9ESVNBQkxFRCB8IFwKIAkJCQkJIEpFREVDX01BX0VNUl9PRFNfTk9STUFMKSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSMTQJKFNEUkFNX0lOSVRQTFJfRElTQUJMRSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSMTUJKFNEUkFNX0lOSVRQTFJfRElTQUJMRSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9SUURDCQkoU0RSQU1fUlFEQ19SUURFX0VOQUJMRSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjE0CShTRFJBTV9JTklUUExSX0RJU0FCTEUpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFIxNQkoU0RSQU1fSU5JVFBMUl9ESVNBQkxFKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9SUURDCQkoU0RSQU1fUlFEQ19SUURFX0VOQUJMRSB8IFwKIAkJCQkgU0RSQU1fUlFEQ19SUUZEX0VOQ09ERSg1NikpCi0jZGVmaW5lIENGR19TRFJBTTBfUkZEQwkJU0RSQU1fUkZEQ19SRkZEX0VOQ09ERSg1MjEpCi0jZGVmaW5lIENGR19TRFJBTTBfUkRDQwkJKFNEUkFNX1JEQ0NfUkRTU19UMikKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9ETENSCQkoU0RSQU1fRExDUl9EQ0xNX0FVVE8JCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9SRkRDCQlTRFJBTV9SRkRDX1JGRkRfRU5DT0RFKDUyMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfUkRDQwkJKFNEUkFNX1JEQ0NfUkRTU19UMikKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfRExDUgkJKFNEUkFNX0RMQ1JfRENMTV9BVVRPCQl8IFwKIAkJCQkgU0RSQU1fRExDUl9ETENTX0NPTlRfRE9ORQl8IFwKIAkJCQkgU0RSQU1fRExDUl9ETENWX0VOQ09ERSgxNjUpKQotI2RlZmluZSBDRkdfU0RSQU0wX0NMS1RSCShTRFJBTV9DTEtUUl9DTEtQXzE4MF9ERUdfQURWKQotI2RlZmluZSBDRkdfU0RSQU0wX1dSRFRSCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9TRFRSMQkoU0RSQU1fU0RUUjFfTERPRl8yX0NMSwl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfQ0xLVFIJKFNEUkFNX0NMS1RSX0NMS1BfMTgwX0RFR19BRFYpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX1dSRFRSCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfU0RUUjEJKFNEUkFNX1NEVFIxX0xET0ZfMl9DTEsJfCBcCiAJCQkJIFNEUkFNX1NEVFIxX1JUV18yX0NMSwl8IFwKIAkJCQkgU0RSQU1fU0RUUjFfUlRST18xX0NMSykKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9TRFRSMgkoU0RSQU1fU0RUUjJfUkNEXzNfQ0xLCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfU0RUUjIJKFNEUkFNX1NEVFIyX1JDRF8zX0NMSwkJfCBcCiAJCQkJIFNEUkFNX1NEVFIyX1dUUl8yX0NMSwkJfCBcCiAJCQkJIFNEUkFNX1NEVFIyX1hTTlJfMzJfQ0xLCXwgXAogCQkJCSBTRFJBTV9TRFRSMl9XUENfNF9DTEsJCXwgXAogCQkJCSBTRFJBTV9TRFRSMl9SUENfMl9DTEsJCXwgXAogCQkJCSBTRFJBTV9TRFRSMl9SUF8zX0NMSwkJfCBcCiAJCQkJIFNEUkFNX1NEVFIyX1JSRF8yX0NMSykKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9TRFRSMwkoU0RSQU1fU0RUUjNfUkFTX0VOQ09ERSg4KQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfU0RUUjMJKFNEUkFNX1NEVFIzX1JBU19FTkNPREUoOCkJfCBcCiAJCQkJIFNEUkFNX1NEVFIzX1JDX0VOQ09ERSgxMSkJfCBcCiAJCQkJIFNEUkFNX1NEVFIzX1hDUwkJfCBcCiAJCQkJIFNEUkFNX1NEVFIzX1JGQ19FTkNPREUoMjYpKQotI2RlZmluZSBDRkdfU0RSQU0wX01NT0RFCShTRFJBTV9NTU9ERV9XUl9ERFIyXzNfQ1lDIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9NTU9ERQkoU0RSQU1fTU1PREVfV1JfRERSMl8zX0NZQyB8IFwKIAkJCQkgU0RSQU1fTU1PREVfRENMX0REUjJfNF8wX0NMSyB8IFwKIAkJCQkgU0RSQU1fTU1PREVfQkxFTl80KQotI2RlZmluZSBDRkdfU0RSQU0wX01FTU9ERQkoU0RSQU1fTUVNT0RFX0RRU19ESVNBQkxFIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9NRU1PREUJKFNEUkFNX01FTU9ERV9EUVNfRElTQUJMRSB8IFwKIAkJCQkgU0RSQU1fTUVNT0RFX1JUVF83NU9ITSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTYJLyogMjRDMDIgcmVxdWlyZXMgNW1zIGRlbGF5ICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MgkvKiBJMkMgYm9vdCBFRVBST00gKDI0QzAyQk4pCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk2CS8qIDI0QzAyIHJlcXVpcmVzIDVtcyBkZWxheSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUyCS8qIEkyQyBib290IEVFUFJPTSAoMjRDMDJCTikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIAogLyogU3RhbmRhcmQgRFRUIHNlbnNvciBjb25maWd1cmF0aW9uICovCiAjZGVmaW5lIENPTkZJR19EVFRfRFMxNzc1CTEKICNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTCXsgMCB9Ci0jZGVmaW5lIENGR19JMkNfRFRUX0FERFIJMHg0OAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19EVFRfQUREUgkweDQ4CiAKIC8qIFJUQyBjb25maWd1cmF0aW9uICovCiAjZGVmaW5lIENPTkZJR19SVENfRFMxMzM4CTEKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NjgKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXRoZXJuZXQKQEAgLTQzMiwyMCArNDMyLDIwIEBACiAjZGVmaW5lIENPTkZJR19DTURfU05UUAogCiAvKiBQT1NUIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9DQUNIRQkJfCBcCi0JCQkJIENGR19QT1NUX0NQVQkJfCBcCi0JCQkJIENGR19QT1NUX0VUSEVSCQl8IFwKLQkJCQkgQ0ZHX1BPU1RfSTJDCQl8IFwKLQkJCQkgQ0ZHX1BPU1RfTUVNT1JZCXwgXAotCQkJCSBDRkdfUE9TVF9VQVJUKQorI2RlZmluZSBDT05GSUdfUE9TVAkJKENPTkZJR19TWVNfUE9TVF9DQUNIRQkJfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DUFUJCXwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRVRIRVIJCXwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfSTJDCQl8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX01FTU9SWQl8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1VBUlQpCiAKIC8qIERlZmluZSBoZXJlIHRoZSBiYXNlLWFkZHJlc3NlcyBvZiB0aGUgVUFSVHMgdG8gdGVzdCBpbiBQT1NUICovCi0jZGVmaW5lIENGR19QT1NUX1VBUlRfVEFCTEUJe1VBUlQwX0JBU0UsIFVBUlQxX0JBU0V9CisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9VQVJUX1RBQkxFCXtVQVJUMF9CQVNFLCBVQVJUMV9CQVNFfQogCiAjZGVmaW5lIENPTkZJR19MT0dCVUZGRVIKLSNkZWZpbmUgQ0ZHX1BPU1RfQ0FDSEVfQUREUgkweDAwODAwMDAwIC8qIGZyZWUgdmlydHVhbCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9DQUNIRV9BRERSCTB4MDA4MDAwMDAgLyogZnJlZSB2aXJ0dWFsIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYgLyogT3RoZXJ3aXNlIGl0IGNhdGNoZXMgbG9nYnVmZmVyIGFzIG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WIC8qIE90aGVyd2lzZSBpdCBjYXRjaGVzIGxvZ2J1ZmZlciBhcyBvdXRwdXQgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJIHN0dWZmCkBAIC00NTgsNTkgKzQ1OCw1OSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJZSBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX1BDSUVfTUVNQkFTRQkweDkwMDAwMDAwCS8qIG1hcHBlZCBQQ0llIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUENJRV9NRU1TSVpFCTB4MDgwMDAwMDAgICAgICAvKiAxMjggTWVnLCBzbWFsbGVzdCBpbmNyIHBlciBwb3J0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9NRU1CQVNFCTB4OTAwMDAwMDAJLyogbWFwcGVkIFBDSWUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9NRU1TSVpFCTB4MDgwMDAwMDAgICAgICAvKiAxMjggTWVnLCBzbWFsbGVzdCBpbmNyIHBlciBwb3J0ICovCiAKLSNkZWZpbmUJQ0ZHX1BDSUUwX0NGR0JBU0UJMHhhMDAwMDAwMCAgICAgIC8qIHJlbW90ZSBhY2Nlc3MgKi8KLSNkZWZpbmUJQ0ZHX1BDSUUwX1hDRkdCQVNFCTB4YjAwMDAwMDAgICAgICAvKiBsb2NhbCBhY2Nlc3MgKi8KLSNkZWZpbmUJQ0ZHX1BDSUUwX0NGR01BU0sJMHhlMDAwMDAwMSAgICAgIC8qIDUxMiBNZWcgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQ0lFMF9DRkdCQVNFCTB4YTAwMDAwMDAgICAgICAvKiByZW1vdGUgYWNjZXNzICovCisjZGVmaW5lCUNPTkZJR19TWVNfUENJRTBfWENGR0JBU0UJMHhiMDAwMDAwMCAgICAgIC8qIGxvY2FsIGFjY2VzcyAqLworI2RlZmluZQlDT05GSUdfU1lTX1BDSUUwX0NGR01BU0sJMHhlMDAwMDAwMSAgICAgIC8qIDUxMiBNZWcgKi8KIAotI2RlZmluZQlDRkdfUENJRTFfQ0ZHQkFTRQkweGMwMDAwMDAwICAgICAgLyogcmVtb3RlIGFjY2VzcyAqLwotI2RlZmluZQlDRkdfUENJRTFfWENGR0JBU0UJMHhkMDAwMDAwMCAgICAgIC8qIGxvY2FsIGFjY2VzcyAqLwotI2RlZmluZQlDRkdfUENJRTFfQ0ZHTUFTSwkweGUwMDAwMDAxICAgICAgLyogNTEyIE1lZyAqLworI2RlZmluZQlDT05GSUdfU1lTX1BDSUUxX0NGR0JBU0UJMHhjMDAwMDAwMCAgICAgIC8qIHJlbW90ZSBhY2Nlc3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQ0lFMV9YQ0ZHQkFTRQkweGQwMDAwMDAwICAgICAgLyogbG9jYWwgYWNjZXNzICovCisjZGVmaW5lCUNPTkZJR19TWVNfUENJRTFfQ0ZHTUFTSwkweGUwMDAwMDAxICAgICAgLyogNTEyIE1lZyAqLwogCi0jZGVmaW5lCUNGR19QQ0lFMF9VVExCQVNFCTB4ZWY1MDIwMDAKLSNkZWZpbmUJQ0ZHX1BDSUUxX1VUTEJBU0UJMHhlZjUwMzAwMAorI2RlZmluZQlDT05GSUdfU1lTX1BDSUUwX1VUTEJBU0UJMHhlZjUwMjAwMAorI2RlZmluZQlDT05GSUdfU1lTX1BDSUUxX1VUTEJBU0UJMHhlZjUwMzAwMAogCiAvKiBiYXNlIGFkZHJlc3Mgb2YgaW5ib3VuZCBQQ0llIHdpbmRvdyAqLwotI2RlZmluZSBDRkdfUENJRV9JTkJPVU5EX0JBU0UJMHgwMDAwMDAwMDAwMDAwMDAwVUxMCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9JTkJPVU5EX0JBU0UJMHgwMDAwMDAwMDAwMDAwMDAwVUxMCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmIGRlZmluZWQoQ09ORklHX05BTkRfVV9CT09UKSB8fCBkZWZpbmVkKENPTkZJR19OQU5EX1NQTCkKIC8qIGJvb3RpbmcgZnJvbSBOQU5ELCBzbyBOQU5EIGNoaXBzIHNlbGVjdCBoYXMgdG8gYmUgb24gQ1MgMCAqLwotI2RlZmluZSBDRkdfTkFORF9DUwkJMAkJLyogTkFORCBjaGlwIGNvbm5lY3RlZCB0byBDU3gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NTCQkwCQkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeAkqLwogCiAvKiBNZW1vcnkgQmFuayAxIChOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDA1ODA2NTAwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IgICAgICAgICAgIDB4RkMwREEwMDAgIC8qIEJBUz0weEZDMCxCUz02NE1CLEJVPVIvVyxCVz0xNmJpdCovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQCQkweDA1ODA2NTAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSICAgICAgICAgICAweEZDMERBMDAwICAvKiBCQVM9MHhGQzAsQlM9NjRNQixCVT1SL1csQlc9MTZiaXQqLwogCiAvKiBNZW1vcnkgQmFuayAwIChOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwMTgwMDNjMAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkoQ0ZHX05BTkRfQUREUiB8IDB4MWUwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDAxODAwM2MwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkoQ09ORklHX1NZU19OQU5EX0FERFIgfCAweDFlMDAwKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX05BTkRfQ1MJCTEJCS8qIE5BTkQgY2hpcCBjb25uZWN0ZWQgdG8gQ1N4CSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DUwkJMQkJLyogTkFORCBjaGlwIGNvbm5lY3RlZCB0byBDU3gJKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwNTgwNjUwMAotI2RlZmluZSBDRkdfRUJDX1BCMENSICAgICAgICAgICAweEZDMERBMDAwICAvKiBCQVM9MHhGQzAsQlM9NjRNQixCVT1SL1csQlc9MTZiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgwNTgwNjUwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUiAgICAgICAgICAgMHhGQzBEQTAwMCAgLyogQkFTPTB4RkMwLEJTPTY0TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KIAogLyogTWVtb3J5IEJhbmsgMSAoTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDE4MDAzYzAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJKENGR19OQU5EX0FERFIgfCAweDFlMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHgwMTgwMDNjMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJKENPTkZJR19TWVNfTkFORF9BRERSIHwgMHgxZTAwMCkKICNlbmRpZgogCiAvKiBNZW1vcnkgQmFuayAyIChGUEdBKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAgICAgICAgICAgIDB4OTQwMEM4MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJKENGR19GUEdBX0JBU0UgfCAweDE4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUCAgICAgICAgICAgMHg5NDAwQzgwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJKENPTkZJR19TWVNfRlBHQV9CQVNFIHwgMHgxODAwMCkKIAotI2RlZmluZSBDRkdfRUJDX0NGRwkJMHg3RkMwMDAwMCAvKiAgRUJDMF9DRkcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfQ0ZHCQkweDdGQzAwMDAwIC8qICBFQkMwX0NGRyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBHUElPIFNldHVwCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfNHh4X0dQSU9fVEFCTEUgeyAvKgkgIE91dAkJICBHUElPCUFsdGVybmF0ZTEJQWx0ZXJuYXRlMglBbHRlcm5hdGUzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU180eHhfR1BJT19UQUJMRSB7IC8qCSAgT3V0CQkgIEdQSU8JQWx0ZXJuYXRlMQlBbHRlcm5hdGUyCUFsdGVybmF0ZTMgKi8gXAogewkJCQkJCQkJCQkJXAogLyogR1BJTyBDb3JlIDAgKi8JCQkJCQkJCQlcCiB7R1BJTzBfQkFTRSwgR1BJT19JTiwgIEdQSU9fU0VMLCAgR1BJT19PVVRfMH0sIC8qIEdQSU8wCUVCQ19EQVRBX1BBUigwKQkJCSovCVwKQEAgLTU1MSwzNiArNTUxLDM2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTb21lIEtpbGF1ZWEgc3R1ZmYuLi4sIG1haW5seSBmcGdhIHJlZ2lzdGVycwogICovCi0jZGVmaW5lIENGR19GUEdBX1JFR19CQVNFCQlDRkdfRlBHQV9CQVNFCi0jZGVmaW5lIENGR19GUEdBX0ZJRk9fQkFTRQkJKGluMzIoQ0ZHX0ZQR0FfQkFTRSkgfCAoMSA8PCAxMCkpCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9SRUdfQkFTRQkJQ09ORklHX1NZU19GUEdBX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0ZJRk9fQkFTRQkJKGluMzIoQ09ORklHX1NZU19GUEdBX0JBU0UpIHwgKDEgPDwgMTApKQogCiAvKiBpbnRlcnJ1cHQgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfU0xJQzBfUl9EUFJBTV9JTlQJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfRlBHQV9TTElDMF9XX0RQUkFNX0lOVAkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19GUEdBX1NMSUMxX1JfRFBSQU1fSU5UCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU0xJQzFfV19EUFJBTV9JTlQJMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfRlBHQV9QSFkwX0lOVAkJMHgwODAwMDAwMAotI2RlZmluZSBDRkdfRlBHQV9QSFkxX0lOVAkJMHgwNDAwMDAwMAotI2RlZmluZSBDRkdfRlBHQV9TTElDMF9JTlQJCTB4MDIwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU0xJQzFfSU5UCQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TTElDMF9SX0RQUkFNX0lOVAkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TTElDMF9XX0RQUkFNX0lOVAkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TTElDMV9SX0RQUkFNX0lOVAkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TTElDMV9XX0RQUkFNX0lOVAkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QSFkwX0lOVAkJMHgwODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUEhZMV9JTlQJCTB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NMSUMwX0lOVAkJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU0xJQzFfSU5UCQkweDAxMDAwMDAwCiAKIC8qIERQUkFNIHNldHRpbmcgKi8KIC8qIDAwOiAzMkI7IDAxOiA2NEI7IDEwOiAxMjhCOyAxMTogMjU2QiAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRFBSQU1fUl9JTlRfTElORQkweDAwNDAwMDAwCS8qIDY0IEIgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRFBSQU1fV19JTlRfTElORQkweDAwMTAwMDAwCS8qIDY0IEIgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRFBSQU1fUldfVFlQRQkJMHgwMDA4MDAwMAotI2RlZmluZSBDRkdfRlBHQV9EUFJBTV9SU1QJCTB4MDAwNDAwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfVUFSVDBfRk8JCTB4MDAwMjAwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfVUFSVDFfRk8JCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RQUkFNX1JfSU5UX0xJTkUJMHgwMDQwMDAwMAkvKiA2NCBCICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EUFJBTV9XX0lOVF9MSU5FCTB4MDAxMDAwMDAJLyogNjQgQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRFBSQU1fUldfVFlQRQkJMHgwMDA4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRFBSQU1fUlNUCQkweDAwMDQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9VQVJUMF9GTwkJMHgwMDAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVUFSVDFfRk8JCTB4MDAwMTAwMDAKIAogLyogbG9vcGJhY2sgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ0hJUFNJREVfTE9PUEJBQ0sJMHgwMDAwNDAwMAotI2RlZmluZSBDRkdfRlBHQV9MSU5FU0lERV9MT09QQkFDSwkweDAwMDA4MDAwCi0jZGVmaW5lIENGR19GUEdBX1NMSUMwX0VOQUJMRQkJMHgwMDAwMjAwMAotI2RlZmluZSBDRkdfRlBHQV9TTElDMV9FTkFCTEUJCTB4MDAwMDEwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU0xJQzBfQ1MJCTB4MDAwMDA4MDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU0xJQzFfQ1MJCTB4MDAwMDA0MDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfVVNFUl9MRUQwCQkweDAwMDAwMjAwCi0jZGVmaW5lIENGR19GUEdBX1VTRVJfTEVEMQkJMHgwMDAwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ0hJUFNJREVfTE9PUEJBQ0sJMHgwMDAwNDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTElORVNJREVfTE9PUEJBQ0sJMHgwMDAwODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU0xJQzBfRU5BQkxFCQkweDAwMDAyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TTElDMV9FTkFCTEUJCTB4MDAwMDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NMSUMwX0NTCQkweDAwMDAwODAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TTElDMV9DUwkJMHgwMDAwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVVNFUl9MRUQwCQkweDAwMDAwMjAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9VU0VSX0xFRDEJCTB4MDAwMDAxMDAKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9rb3JhdC5oIGIvaW5jbHVkZS9jb25maWdzL2tvcmF0LmgKaW5kZXggMjE0Y2I0Mi4uY2EzZThhOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2tvcmF0LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2tvcmF0LmgKQEAgLTU0LDUxICs1NCw1MSBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUgYWN0dWFsCiAgKiByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykuCiAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMzg0ICogMTAyNCkgLyogUmVzZXJ2ZSAzODQga2lCIGZvciBNb25pdG9yICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtpQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDM4NCAqIDEwMjQpIC8qIFJlc2VydmUgMzg0IGtpQiBmb3IgTW9uaXRvciAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga2lCIGZvciBtYWxsb2MoKSAqLwogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIF9tdXN0XyBiZSAwCQkqLwotI2RlZmluZSBDRkdfRkxBU0gwX1NJWkUJCTB4MDEwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9BRERSCQkoLUNGR19GTEFTSDBfU0laRSkKLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9UT1AJCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9NQVhfU0laRQkweDA4MDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDFfQUREUgkJKENGR19GTEFTSDFfVE9QIC0gQ0ZHX0ZMQVNIMV9NQVhfU0laRSkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19GTEFTSDFfQUREUgkvKiBzdGFydCBvZiBGTEFTSAkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfT0NNX0JBU0UJCTB4ZTAwMTAwMDAJLyogb2NtCQkJKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJQ0ZHX09DTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfQkFTRQkJMHhlMDAwMDAwMAkvKiBJbnRlcm5hbCBQQ0kgcmVncwkqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UJCTB4ODAwMDAwMDAJLyogbWFwcGVkIHBjaSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIF9tdXN0XyBiZSAwCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFCQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0FERFIJCSgtQ09ORklHX1NZU19GTEFTSDBfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfVE9QCQkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX01BWF9TSVpFCTB4MDgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfQUREUgkJKENPTkZJR19TWVNfRkxBU0gxX1RPUCAtIENPTkZJR19TWVNfRkxBU0gxX01BWF9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfRkxBU0gxX0FERFIJLyogc3RhcnQgb2YgRkxBU0gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0JBU0UJCTB4ZTAwMTAwMDAJLyogb2NtCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCUNPTkZJR19TWVNfT0NNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFTRQkJMHhlMDAwMDAwMAkvKiBJbnRlcm5hbCBQQ0kgcmVncwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCiAKIC8qIERvbid0IGNoYW5nZSBlaXRoZXIgb2YgdGhlc2UgKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRQkweGVmNjAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFCTB4ZWY2MDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KIAotI2RlZmluZSBDRkdfVVNCMkQwX0JBU0UJCTB4ZTAwMDAxMDAKLSNkZWZpbmUgQ0ZHX1VTQl9ERVZJQ0UJCTB4ZTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1VTQl9IT1NUCQkweGUwMDAwNDAwCi0jZGVmaW5lIENGR19DUExEX0JBU0UJCTB4YzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0IyRDBfQkFTRQkJMHhlMDAwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9ERVZJQ0UJCTB4ZTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfSE9TVAkJMHhlMDAwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0NQTERfQkFTRQkJMHhjMDAwMDAwMAogCiAvKgogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyCiAgKi8KIC8qIDQ0MEVQeCBoYXMgMTZLQiBvZiBpbnRlcm5hbCBTUkFNLCBzbyBubyBuZWVkIGZvciBELUNhY2hlCQkqLwotI3VuZGVmIENGR19JTklUX1JBTV9EQ0FDSEUKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9CQVNFCS8qIE9DTQkJCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJKDQgPDwgMTApCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NgkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19QT1NUX1dPUkRfQUREUgorI3VuZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fRENBQ0hFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9CQVNFCS8qIE9DTQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2CS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIKIAogLyoKICAqIFNlcmlhbCBQb3J0CiAgKi8KLSNkZWZpbmUgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJMTEwNTkyMDAJLyogZXh0LiAxMS4wNTlNSHogY2xrCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkxMTA1OTIwMAkvKiBleHQuIDExLjA1OU1IeiBjbGsJKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKICNkZWZpbmUgQ09ORklHX1NFUklBTF9NVUxUSQkxCiAvKiBkZWZpbmUgdGhpcyBpZiB5b3Ugd2FudCBjb25zb2xlIG9uIFVBUlQxICovCiAjdW5kZWYgQ09ORklHX1VBUlQxX0NPTlNPTEUKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJCQkJCQlcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CiAKIC8qCkBAIC0xMDksMjYgKzEwOSwyNiBAQAogLyoKICAqIEZMQVNIIHJlbGF0ZWQKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSAgICAgICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIJICAgICAgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9MRUdBQ1kJCS8qIEFsbG93IGhhcmQtY29kZWQgY29uZmlnIGZvciBGTEFTSDAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSDFfQUREUiwgQ0ZHX0ZMQVNIMF9BRERSIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSDFfQUREUiwgQ09ORklHX1NZU19GTEFTSDBfQUREUiB9CiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMDI0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEwMjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgICAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbiAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24gICAgICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCSAgICAgIC8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCSAgICAgIC8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBmbGFzaCAgICAgICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJICAgICAgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIMV9UT1AgLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSDFfVE9QIC0gQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICAgKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yICovCkBAIC0xMzgsMTQgKzEzOCwxNCBAQAogLyoKICAqIEREUiBTRFJBTQogICovCi0jZGVmaW5lIENGR19NQllURVNfU0RSQU0gICAgICAgICg1MTIpCS8qIDUxMiBNaUIJVE9ETzogcmVtb3ZlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUJZVEVTX1NEUkFNICAgICAgICAoNTEyKQkvKiA1MTIgTWlCCVRPRE86IHJlbW92ZQkqLwogI2RlZmluZSBDT05GSUdfRERSX0RBVEFfRVlFCQkvKiB1c2UgRERSMiBvcHRpbWl6YXRpb24JKi8KICNkZWZpbmUgQ09ORklHX1NQRF9FRVBST00JCS8qIFVzZSBTUEQgRUVQUk9NIGZvciBzZXR1cAkqLwogI2RlZmluZSBDT05GSUdfWkVST19TRFJBTQkJLyogWmVybyBTRFJBTSBhZnRlciBzZXR1cAkqLwogI2RlZmluZSBDT05GSUdfRERSX0VDQwkJCS8qIFVzZSBFQ0Mgd2hlbiBhdmFpbGFibGUJKi8KICNkZWZpbmUgU1BEX0VFUFJPTV9BRERSRVNTCXsweDUwfQogI2RlZmluZSBDT05GSUdfUFJPR19TRFJBTV9UTEIKLSNkZWZpbmUgQ0ZHX01FTV9UT1BfSElERQkoNCA8PCAxMCkgLyogZG9uJ3QgdXNlIGxhc3QgNGtieXRlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTV9UT1BfSElERQkoNCA8PCAxMCkgLyogZG9uJ3QgdXNlIGxhc3QgNGtieXRlcwkqLwogCQkJCQkvKiA0NDBFUHggZXJyYXRhIENISVAgMTEJKi8KIAogLyoKQEAgLTE1MywyNCArMTUzLDI0IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJKDB4YTg+PjEpCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkoMHhhOD4+MSkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAogCiAvKiBJMkMgUlRDICovCiAjZGVmaW5lIENPTkZJR19SVENfTTQxVDYwCTEKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NjgKIAogLyogSTJDIFNZU01PTiAoTE03MykJCQkJCQkJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9MTTczCQkxCS8qIE5hdGlvbmFsIFNlbWkncyBMTTczCQkqLwogI2RlZmluZSBDT05GSUdfRFRUX1NFTlNPUlMJezJ9CS8qIFNlbnNvciBhZGRyZXNzZXMJCSovCi0jZGVmaW5lIENGR19EVFRfTUFYX1RFTVAJNzAKLSNkZWZpbmUgQ0ZHX0RUVF9NSU5fVEVNUAktMzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTUFYX1RFTVAJNzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTUlOX1RFTVAJLTMwCiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QJImVjaG87IgkJCQkJCVwKIAkiZWNobyBUeXBlIFxcXCJydW4gZmxhc2hfbmZzXFxcIiB0byBtb3VudCByb290IGZpbGVzeXN0ZW0gb3ZlciBORlM7IiBcCkBAIC0xODAsMTMgKzE4MCwxMyBAQAogCiAvKiBTZXR1cCBzb21lIGJvYXJkIHNwZWNpZmljIHZhbHVlcyBmb3IgdGhlIGRlZmF1bHQgZW52aXJvbm1lbnQgdmFyaWFibGVzICovCiAjZGVmaW5lIENPTkZJR19IT1NUTkFNRQkJa29yYXQKLSNkZWZpbmUgQ0ZHX0JPT1RGSUxFCQkiYm9vdGZpbGU9L3RmdHBib290L2tvcmF0L3VJbWFnZVwwIgotI2RlZmluZSBDRkdfUk9PVFBBVEgJCSJyb290cGF0aD0vb3B0L2VsZGsvcHBjXzR4eEZQXDAiCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVEZJTEUJCSJib290ZmlsZT0vdGZ0cGJvb3Qva29yYXQvdUltYWdlXDAiCisjZGVmaW5lIENPTkZJR19TWVNfUk9PVFBBVEgJCSJyb290cGF0aD0vb3B0L2VsZGsvcHBjXzR4eEZQXDAiCiAKIC8qIE5vdGU6IGtlcm5lbF9hZGRyIGFuZCByYW1kaXNrX2FkZHIgYXNzdW1lIHRoYXQgRkxBU0gxIGlzIDY0IE1pQi4gKi8KICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJCQkJXAotCUNGR19CT09URklMRQkJCQkJCQlcCi0JQ0ZHX1JPT1RQQVRICQkJCQkJCVwKKwlDT05GSUdfU1lTX0JPT1RGSUxFCQkJCQkJCVwKKwlDT05GSUdfU1lTX1JPT1RQQVRICQkJCQkJCVwKIAkibmV0ZGV2PWV0aDBcMCIJCQkJCQkJXAogCSJuZnNhcmdzPXNldGVudiBib290YXJncyByb290PS9kZXYvbmZzIHJ3ICIJCQlcCiAJCSJuZnNyb290PSR7c2VydmVyaXB9OiR7cm9vdHBhdGh9XDAiCQkJXApAQCAtMjEzLDcgKzIxMyw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJNQkvKiBhdXRvYm9vdCBhZnRlciA1IHNlY29uZHMJKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19JQk1fRU1BQzRfVjQJMQogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KQEAgLTIyNCw3ICsyMjQsNyBAQAogI2RlZmluZSBDT05GSUdfUEhZX0dJR0UJCTEJLyogSW5jbHVkZSBHYkUgc3BlZWQvZHVwbGV4IGRldGVjdGlvbiAqLwogCiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkzMgkvKiBOdW1iZXIgb2YgZXRoZXJuZXQgcngJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTMyCS8qIE51bWJlciBvZiBldGhlcm5ldCByeAkqLwogCQkJCQkvKiAgIGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycwkqLwogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX0hBU19FVEgxCQkxCS8qIGFkZCBzdXBwb3J0IGZvciAiZXRoMWFkZHIiCSovCkBAIC0yNzcsNDcgKzI3Nyw0NyBAQAogI2RlZmluZSBDT05GSUdfQ01EX1VTQgogCiAvKiBQT1NUIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9DQUNIRQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfQ1BVCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9FQ0MJICAgfCBcCi0JCQkJIENGR19QT1NUX0VUSEVSCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9GUFUJICAgfCBcCi0JCQkJIENGR19QT1NUX0kyQwkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfTUVNT1JZICAgfCBcCi0JCQkJIENGR19QT1NUX1JUQwkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfU1BSCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9VQVJUKQorI2RlZmluZSBDT05GSUdfUE9TVAkJKENPTkZJR19TWVNfUE9TVF9DQUNIRQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NQVQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0VDQwkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0VUSEVSCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRlBVCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfSTJDCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfTUVNT1JZICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9SVEMJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9TUFIJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9VQVJUKQogCi0jZGVmaW5lIENGR19QT1NUX1dPUkRfQUREUgkoQ0ZHX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSAweDQpCiAjZGVmaW5lIENPTkZJR19MT0dCVUZGRVIKLSNkZWZpbmUgQ0ZHX1BPU1RfQ0FDSEVfQUREUgkweEM4MDAwMDAwCS8qIGZyZWUgdmlydHVhbCBhZGRyZXNzICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfQ0FDSEVfQUREUgkweEM4MDAwMDAwCS8qIGZyZWUgdmlydHVhbCBhZGRyZXNzICAgICAqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgkvKiBPdGhlcndpc2UgaXQgY2F0Y2hlcyBsb2didWZmZXIgYXMgb3V0cHV0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYJLyogT3RoZXJ3aXNlIGl0IGNhdGNoZXMgbG9nYnVmZmVyIGFzIG91dHB1dCAqLwogCiAjZGVmaW5lIENPTkZJR19TVVBQT1JUX1ZGQVQKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkgICAgICAgICI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkgICAgICAgICI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkgICAgICAgIDEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgICAxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgICAgMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCSAgICAgICAgMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAgICAgICAgICAgICAgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAgICAgICAgICAgICAgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCiAJCQkJCS8qIFByaW50IEJ1ZmZlciBTaXplCQkqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkgICAgICAgIENGR19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJICAgICAgICAxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCSAgICAgICAgQ09ORklHX1NZU19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMCAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAgLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwIC8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJMSAgLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEgIC8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KQkqLwogCi0jZGVmaW5lIENGR19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCiAjZGVmaW5lIENPTkZJR19MT09QVwkJMQkvKiBlbmFibGUgbG9vcHcgY29tbWFuZAkJKi8KQEAgLTMyOCw3ICszMjgsNyBAQAogLyoKICAqIEtvcmF0LXNwZWNpZmljIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfS09SQVRfTUFOX1JFU0VUX01TCTEwMDAwCS8qIHRpbWVvdXQgZm9yIG1hbnVmYWN0dXJlciByZXNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0tPUkFUX01BTl9SRVNFVF9NUwkxMDAwMAkvKiB0aW1lb3V0IGZvciBtYW51ZmFjdHVyZXIgcmVzZXQgKi8KIAogLyoKICAqIFBDSSBzdHVmZgpAQCAtMzM2LDUwICszMzYsNTAgQEAKIC8qIEdlbmVyYWwgUENJICovCiAjZGVmaW5lIENPTkZJR19QQ0kJCQkvKiBpbmNsdWRlIHBjaSBzdXBwb3J0CQkqLwogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJCS8qIGRvIHBjaSBwbHVnLWFuZC1wbGF5CQkqLwotI2RlZmluZSBDRkdfUENJX0NBQ0hFX0xJTkVfU0laRQkwCS8qIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggUE5QCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NBQ0hFX0xJTkVfU0laRQkwCS8qIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggUE5QCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHQkFTRQkweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvCSovCi0JCQkJCQkvKiAgIENGR19QQ0lfTUVNQkFTRQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRQkweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvCSovCisJCQkJCQkvKiAgIENPTkZJR19TWVNfUENJX01FTUJBU0UJKi8KIC8qIEJvYXJkLXNwZWNpZmljIFBDSSAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdFVF9JTklUCi0jZGVmaW5lIENGR19QQ0lfTUFTVEVSX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQKIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQwkJCQkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19JRCAgICAgICAweGNhZmUJLyogV2hhdGV2ZXIJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MJCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0lEICAgICAgIDB4Y2FmZQkvKiBXaGF0ZXZlcgkJCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhIGhhdmUgdG8gYmUgaW4gdGhlCiAgKiBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcyB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbAogICogZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXh0ZXJuYWwgQnVzIENvbnRyb2xsZXIgKEVCQykgU2V0dXAKICAqLwogCiAvKiBNZW1vcnkgQmFuayAwIChOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jaWYgQ0ZHX0ZMQVNIMF9TSVpFID09IDB4MDEwMDAwMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwNDAxNzMwMAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkoQ0ZHX0ZMQVNIMF9BRERSIHwgMHgwMDA5QTAwMCkKLSNlbGlmIENGR19GTEFTSDBfU0laRSA9PSAweDA0MDAwMDAwCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4MDQwMTczMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJKENGR19GTEFTSDBfQUREUiB8IDB4MDAwREEwMDApCisjaWYgQ09ORklHX1NZU19GTEFTSDBfU0laRSA9PSAweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDA0MDE3MzAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkoQ09ORklHX1NZU19GTEFTSDBfQUREUiB8IDB4MDAwOUEwMDApCisjZWxpZiBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFID09IDB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDQwMTczMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShDT05GSUdfU1lTX0ZMQVNIMF9BRERSIHwgMHgwMDBEQTAwMCkKICNlbHNlCi0jZXJyb3IgVW5hYmxlIHRvIGNvbmZpZ3VyZSBjaGlwIHNlbGVjdCBmb3IgY3VycmVudCBDRkdfRkxBU0gwX1NJWkUKKyNlcnJvciBVbmFibGUgdG8gY29uZmlndXJlIGNoaXAgc2VsZWN0IGZvciBjdXJyZW50IENPTkZJR19TWVNfRkxBU0gwX1NJWkUKICNlbmRpZgogCiAvKiBNZW1vcnkgQmFuayAxIChOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jaWYgQ0ZHX0ZMQVNIMV9NQVhfU0laRSA9PSAweDA4MDAwMDAwCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDQwMTczMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJKENGR19GTEFTSDFfQUREUiB8IDB4MDAwRkEwMDApCisjaWYgQ09ORklHX1NZU19GTEFTSDFfTUFYX1NJWkUgPT0gMHgwODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHgwNDAxNzMwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJKENPTkZJR19TWVNfRkxBU0gxX0FERFIgfCAweDAwMEZBMDAwKQogI2Vsc2UKLSNlcnJvciBVbmFibGUgdG8gY29uZmlndXJlIGNoaXAgc2VsZWN0IGZvciBjdXJyZW50IENGR19GTEFTSDFfTUFYX1NJWkUKKyNlcnJvciBVbmFibGUgdG8gY29uZmlndXJlIGNoaXAgc2VsZWN0IGZvciBjdXJyZW50IENPTkZJR19TWVNfRkxBU0gxX01BWF9TSVpFCiAjZW5kaWYKIAogLyogTWVtb3J5IEJhbmsgMiAoQ1BMRCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDQwMTczMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJKENGR19DUExEX0JBU0UgfCAweDAwMDM4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwNDAxNzMwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJKENPTkZJR19TWVNfQ1BMRF9CQVNFIHwgMHgwMDAzODAwMCkKIAogLyoKICAqIEdQSU8gU2V0dXAKQEAgLTQ0NiwyMiArNDQ2LDIyIEBACiAgKiBHUElPNjMgIHh4eHggICB4ICAgIHggICAocmVzZXJ2ZWQgZm9yIHRyYWNlIHBvcnQpCiAgKi8KIAotI2RlZmluZSBDRkdfR1BJT19BVE1FR0FfUkVTRVRfCTEyCi0jZGVmaW5lIENGR19HUElPX0FUTUVHQV9TU18JMTMKLSNkZWZpbmUgQ0ZHX0dQSU9fUEhZMF9GSUJFUl9TRUwJMjcKLSNkZWZpbmUgQ0ZHX0dQSU9fUEhZMV9GSUJFUl9TRUwJMjgKLSNkZWZpbmUgQ0ZHX0dQSU9fU0ZQMF9QUkVTRU5UXwkzMAotI2RlZmluZSBDRkdfR1BJT19TRlAxX1BSRVNFTlRfCTMxCi0jZGVmaW5lIENGR19HUElPX1NGUDBfVFhfRU5fCTMyCi0jZGVmaW5lIENGR19HUElPX1NGUDFfVFhfRU5fCTMzCi0jZGVmaW5lIENGR19HUElPX1BIWTBfRU4JNDUKLSNkZWZpbmUgQ0ZHX0dQSU9fUEhZMV9FTgk0NgotI2RlZmluZSBDRkdfR1BJT19SRVNFVF9QUkVTU0VEXwk0NworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fQVRNRUdBX1JFU0VUXwkxMgorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fQVRNRUdBX1NTXwkxMworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUEhZMF9GSUJFUl9TRUwJMjcKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BIWTFfRklCRVJfU0VMCTI4CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19TRlAwX1BSRVNFTlRfCTMwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19TRlAxX1BSRVNFTlRfCTMxCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19TRlAwX1RYX0VOXwkzMgorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fU0ZQMV9UWF9FTl8JMzMKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BIWTBfRU4JNDUKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BIWTFfRU4JNDYKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1JFU0VUX1BSRVNTRURfCTQ3CiAKIC8qCiAgKiBQUEM0NDAgR1BJTyBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHXzR4eF9HUElPX1RBQkxFIHsgLyoJICBPdXQJCSAgR1BJTwlBbHRlcm5hdGUxCUFsdGVybmF0ZTIJQWx0ZXJuYXRlMyAqLyBcCisjZGVmaW5lIENPTkZJR19TWVNfNHh4X0dQSU9fVEFCTEUgeyAvKgkgIE91dAkJICBHUElPCUFsdGVybmF0ZTEJQWx0ZXJuYXRlMglBbHRlcm5hdGUzICovIFwKIHsJCQkJCQkJCQkJCVwKIC8qIEdQSU8gQ29yZSAwICovCQkJCQkJCQkJXAoge0dQSU8wX0JBU0UsIEdQSU9fQkkgLCBHUElPX0FMVDEsIEdQSU9fT1VUXzB9LCAvKiBHUElPMAlFQkNfQUREUig3KQlETUFfUkVRKDIpCSovCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9rdm1lMDgwLmggYi9pbmNsdWRlL2NvbmZpZ3Mva3ZtZTA4MC5oCmluZGV4IDA5OGI5MmIuLjBkOTUyNjMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9rdm1lMDgwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2t2bWUwODAuaApAQCAtNTYsNyArNTYsNyBAQAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCiAKQEAgLTk5LDc1ICs5OSw3NSBAQAogCiAjZGVmaW5lIENPTkZJR19ORVRDT05TT0xFCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwN0MwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA3QzAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4N0MwMDAwMDAKLSNkZWZpbmUgQ0ZHX0VVTUJfQUREUgkJMHhGQzAwMDAwMAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkweEZGMDgwMDAwCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJMHhGRjA4MDAxMAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00zCTB4RkYwODAwMjAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NNAkweEZGMDgwMDMwCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg3QzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VVTUJfQUREUgkJMHhGQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCTB4RkYwODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJMHhGRjA4MDAxMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMwkweEZGMDgwMDIwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT000CTB4RkYwODAwMzAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKIAotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCSgxNiAqIDEwMjQgKiAxMDI0KQotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMHg3RkZGOAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRQkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJKDE2ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMHg3RkZGOAogCiAjZGVmaW5lIENPTkZJR19WRVJZX0JJR19SQU0KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MDAwNDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MDAwNDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkKIAotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RfQ0xFQVIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUX0NMRUFSCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCiAKLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX0JBTksJMAotI2RlZmluZSBDRkdfSkZGUzJfTlVNX0JBTktTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCTAKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJMQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0JMQogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQkxCi0jZGVmaW5lIENGR19OVlJBTV9BQ0NFU1NfUk9VVElORQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCUNGR19OVlJBTV9CQVNFX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9BQ0NFU1NfUk9VVElORQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCUNPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MDAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTAKIAotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTE0NzQ1NjAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCTE0NzQ1NjAwCiAKICNkZWZpbmUgQ09ORklHX1BDSQogI2RlZmluZSBDT05GSUdfUENJX1BOUApAQCAtMTc2LDk3ICsxNzYsOTcgQEAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMF9TUk9NX1dSSVRFCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAorI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOAogCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1NwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1NworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAogCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMzMzMzMzMzMKIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQorIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUKICNlbmRpZgogCi0jZGVmaW5lIENGR19ETExfRVhURU5ECQkweDAwCi0jZGVmaW5lIENGR19QQ0lfSE9MRF9ERUwJMHgyMAorI2RlZmluZSBDT05GSUdfU1lTX0RMTF9FWFRFTkQJCTB4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSE9MRF9ERUwJMHgyMAogCi0jZGVmaW5lIENGR19ST01OQUwJCTE1Ci0jZGVmaW5lIENGR19ST01GQUwJCTMxCisjZGVmaW5lIENPTkZJR19TWVNfUk9NTkFMCQkxNQorI2RlZmluZSBDT05GSUdfU1lTX1JPTUZBTAkJMzEKIAotI2RlZmluZSBDRkdfUkVGSU5UCQk0MzAKKyNkZWZpbmUgQ09ORklHX1NZU19SRUZJTlQJCTQzMAogCi0jZGVmaW5lIENGR19EQlVTX1NJWkUyCQkxCisjZGVmaW5lIENPTkZJR19TWVNfREJVU19TSVpFMgkJMQogCi0jZGVmaW5lIENGR19CU1RPUFJFCQkxMjEKLSNkZWZpbmUgQ0ZHX1JFRlJFQwkJOAotI2RlZmluZSBDRkdfUkRMQVQJCTQKLSNkZWZpbmUgQ0ZHX1BSRVRPQUNUCQkzCi0jZGVmaW5lIENGR19BQ1RUT1BSRQkJNQotI2RlZmluZSBDRkdfQUNUT1JXCQkzCi0jZGVmaW5lIENGR19TRE1PREVfQ0FTX0xBVAkzCi0jZGVmaW5lIENGR19TRE1PREVfV1JBUAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0JTVE9QUkUJCTEyMQorI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwkJOAorI2RlZmluZSBDT05GSUdfU1lTX1JETEFUCQk0CisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJCTMKKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkJNQorI2RlZmluZSBDT05GSUdfU1lTX0FDVE9SVwkJMworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUCTMKKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkJMAogCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIJMQotI2RlZmluZSBDRkdfRVhUUk9NCQkJMQotI2RlZmluZSBDRkdfUkVHRElNTQkJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIJMQorI2RlZmluZSBDT05GSUdfU1lTX0VYVFJPTQkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19SRUdESU1NCQkJMAogCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5ECQkoMHg0MDAwMDAwIC0gMSkKLSNkZWZpbmUgQ0ZHX0JBTkswX0VOQUJMRQkxCi0jZGVmaW5lIENGR19CQU5LMV9TVEFSVAkJMHgwNDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzFfRU5ECQkoMHg4MDAwMDAwIC0gMSkKLSNkZWZpbmUgQ0ZHX0JBTksxX0VOQUJMRQkxCi0jZGVmaW5lIENGR19CQU5LMl9TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzJfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMl9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzNfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkszX0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzNfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks0X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNV9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzZfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks3X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkQJCSgweDQwMDAwMDAgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VOQUJMRQkxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfU1RBUlQJCTB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkQJCSgweDgwMDAwMDAgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VOQUJMRQkxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VOQUJMRQkwCiAKLSNkZWZpbmUgQ0ZHX0JBTktfRU5BQkxFCQkweDAzCisjZGVmaW5lIENPTkZJR19TWVNfQkFOS19FTkFCTEUJCTB4MDMKIAotI2RlZmluZSBDRkdfT0RDUgkJMHg3NQotI2RlZmluZSBDRkdfUEdNQVgJCTB4MzIKKyNkZWZpbmUgQ09ORklHX1NZU19PRENSCQkweDc1CisjZGVmaW5lIENPTkZJR19TWVNfUEdNQVgJCTB4MzIKIAotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUMUwJKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVQkoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKIAogI2RlZmluZSBCT09URkxBR19DT0xECTB4MDEKICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkweDAyCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbGFydC5oIGIvaW5jbHVkZS9jb25maWdzL2xhcnQuaAppbmRleCBkN2I4Y2ZjLi4zOGI4ZTc1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbGFydC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9sYXJ0LmgKQEAgLTM5LDggKzM5LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtOTIsMjUgKzkyLDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIkxBUlQgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIkxBUlQgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweGMwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweGMwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHhjMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4YzA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHhjODAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHhjODAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVECQkweDBiCQkvKiBzZXQgY29yZSBjbG9jayB0byAyMjAgTUh6ICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQJCTB4MGIJCS8qIHNldCBjb3JlIGNsb2NrIHRvIDIyMCBNSHogKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTQwLDE3ICsxNDAsMTcgQEAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweDAwMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAwNDAwMDAwIC8qIDQgTUIgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMzErOCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDMxKzgpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoUEhZU19GTEFTSF8xICsgMHgxQzAwMCkJLyogQWRkciBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9saW5rc3RhdGlvbi5oIGIvaW5jbHVkZS9jb25maWdzL2xpbmtzdGF0aW9uLmgKaW5kZXggYmUyZjcxYy4uMmZlYjNhZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2xpbmtzdGF0aW9uLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2xpbmtzdGF0aW9uLmgKQEAgLTEwNiwyMCArMTA2LDIwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIE1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDA4MDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3M6IDggTUIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogTWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDgwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzczogOCBNQgkqLwogCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGJvb3RjbWQxIgogI2RlZmluZSBDT05GSUdfQk9PVEFSR1MJCSJyb290PS9kZXYvc2RhMSBjb25zb2xlPXR0eVMxLDU3NjAwIG5ldGNvbnNvbGU9QDE5Mi4xNjguMS43L2V0aDAsQDE5Mi4xNjguMS4xLzAwOjUwOkJGOkE0OjU5OjcxIHJ0Yy1yczVjMzcyLnByb2JlPTAsMHgzMiBkZWJ1ZyIKICNkZWZpbmUgQ09ORklHX05GU0JPT1RDT01NQU5ECSJib290cDtydW4gbmZzYXJncztib290bSIKIAotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgogCiAjZGVmaW5lIFhNS19TVFIoeCkJCSN4CiAjZGVmaW5lIE1LX1NUUih4KQkJWE1LX1NUUih4KQpAQCAtMjEzLDMwICsyMTMsMzAgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGQzAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwNDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkMwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAotI2RlZmluZSBDRkdfRVVNQl9BRERSCQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNX0FERFIJMHhCMDAwMDAwMAotI2RlZmluZSBDRkdfTUlTQ19SRUdJT05fQUREUgkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfRVVNQl9BRERSCQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9BRERSCTB4QjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NSVNDX1JFR0lPTl9BRERSCTB4RkUwMDAwMDAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MDAwNDAwMDAJLyogMjU2IGtCCQkJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgc29tZSBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgwMDA0MDAwMAkvKiAyNTYga0IJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgc29tZSBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDgwMDAwMAkvKiAxTSAuLi4gOE0gaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDgwMDAwMAkvKiAxTSAuLi4gOE0gaW4gRFJBTQkJKi8KIAogLyogTWF4aW11bSBhbW91bnQgb2YgUkFNICovCiAjaWYgZGVmaW5lZChDT05GSUdfSExBTikgfHwgZGVmaW5lZChDT05GSUdfTEFOKQotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFCTB4MDQwMDAwMDAJLyogNjRNQiBvZiBTRFJBTSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUJMHgwNDAwMDAwMAkvKiA2NE1CIG9mIFNEUkFNICAqLwogI2VsaWYgZGVmaW5lZChDT05GSUdfSEdMQU4pIHx8IGRlZmluZWQoQ09ORklHX0hUR0wpCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUJMHgwODAwMDAwMAkvKiAxMjhNQiBvZiBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRQkweDA4MDAwMDAwCS8qIDEyOE1CIG9mIFNEUkFNICovCiAjZWxzZQogI2Vycm9yIFVua25vd24gTGlua1N0YXRpb24gdHlwZQogI2VuZGlmCkBAIC0yNDksMzggKzI0OSwzOCBAQAogICoKICAqIEFsd2F5cyBkbyAibWFrZSBjbGVhbiIgYWZ0ZXIgY2hhbmdpbmcgdGhlIGJ1aWxkIHR5cGUKICAqLwotI2lmIENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQogICovCiAjaWYgMSAvKiBSQU0gaXMgYXZhaWxhYmxlIHdoZW4gdGhlIGZpcnN0IEMgZnVuY3Rpb24gaXMgY2FsbGVkICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCShDRkdfU0RSQU1fQkFTRSArIENGR19NQVhfUkFNX1NJWkUgLSAweDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSAweDEwMDApCiAjZWxzZQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4Ci0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTU3NjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAogCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfRVVNQl9BRERSICsgMHg0NjAwKQkvKiBDb25zb2xlIHBvcnQJKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0VVTUJfQUREUiArIDB4NDUwMCkJLyogQVZSIHBvcnQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NjAwKQkvKiBDb25zb2xlIHBvcnQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NTAwKQkvKiBBVlIgcG9ydAkqLwogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTMwMCw1NCArMzAwLDU0IEBACiAvKiBGSVhNRTogMzIuNzY4IE1IeiBpcyB0aGUgY3J5c3RhbCBmcmVxdWVuY3kgYnV0ICovCiAvKiB0aGUgcmVhbCBmcmVxdWVuY3kgaXMgbG93ZXIgYnkgYWJvdXQgMC43NSUgICAgICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMzI3NjgwMDAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAogCiAvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMS4gICovCi0jZGVmaW5lIENGR19ST01OQUwgICAgICAwCi0jZGVmaW5lIENGR19ST01GQUwgICAgICAxMQorI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTCAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ST01GQUwgICAgICAxMQogCi0jZGVmaW5lIENGR19CQU5LMF9ST1cJMiAgICAgICAvKiBPbmx5IGJhbmsgMCB1c2VkOiAxMyB4IG4geCA0ICovCi0jZGVmaW5lIENGR19CQU5LMV9ST1cJMAotI2RlZmluZSBDRkdfQkFOSzJfUk9XCTAKLSNkZWZpbmUgQ0ZHX0JBTkszX1JPVwkwCi0jZGVmaW5lIENGR19CQU5LNF9ST1cJMAotI2RlZmluZSBDRkdfQkFOSzVfUk9XCTAKLSNkZWZpbmUgQ0ZHX0JBTks2X1JPVwkwCi0jZGVmaW5lIENGR19CQU5LN19ST1cJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX1JPVwkyICAgICAgIC8qIE9ubHkgYmFuayAwIHVzZWQ6IDEzIHggbiB4IDQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9ST1cJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX1JPVwkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfUk9XCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9ST1cJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X1JPVwkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfUk9XCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19ST1cJMAogCiAvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMi4gICovCi0jZGVmaW5lIENGR19UU1dBSVQgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfVFNXQUlUICAgICAgMAogI2lmIGRlZmluZWQoQ09ORklHX0xBTikgfHwgZGVmaW5lZChDT05GSUdfSExBTikKLSNkZWZpbmUgQ0ZHX1JFRklOVCAgICAgIDB4MTVlMAorI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVCAgICAgIDB4MTVlMAogI2VsaWYgZGVmaW5lZChDT05GSUdfSEdMQU4pIHx8IGRlZmluZWQoQ09ORklHX0hUR0wpCi0jZGVmaW5lIENGR19SRUZJTlQgICAgICAweDE1ODAKKyNkZWZpbmUgQ09ORklHX1NZU19SRUZJTlQgICAgICAweDE1ODAKICNlbmRpZgogCiAvKiBCdXJzdCBUbyBQcmVjaGFyZ2UuIEJpdHMgb2YgdGhpcyB2YWx1ZSBnbyB0byBNQ0NSMyBhbmQgTUNDUjQuICovCi0jZGVmaW5lIENGR19CU1RPUFJFCTB4OTFjCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRQkweDkxYwogCiAvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMy4gICovCi0jZGVmaW5lIENGR19SRUZSRUMgICAgICA3CisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDICAgICAgNwogCiAvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSNC4gICovCi0jZGVmaW5lIENGR19QUkVUT0FDVAkJMgotI2RlZmluZSBDRkdfQUNUVE9QUkUJCTIJLyogT3JpZ2luYWwgdmFsdWUgd2FzIDIJKi8KLSNkZWZpbmUgQ0ZHX0FDVE9SVwkJMgorI2RlZmluZSBDT05GSUdfU1lTX1BSRVRPQUNUCQkyCisjZGVmaW5lIENPTkZJR19TWVNfQUNUVE9QUkUJCTIJLyogT3JpZ2luYWwgdmFsdWUgd2FzIDIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RPUlcJCTIKICNpZiBkZWZpbmVkKENPTkZJR19MQU4pIHx8IGRlZmluZWQoQ09ORklHX0hMQU4pCi0jZGVmaW5lIENGR19TRE1PREVfQ0FTX0xBVAkyCS8qIEZvciAxMDBNSHogYnVzCSovCi0vKiNkZWZpbmUgQ0ZHX1NETU9ERV9CVVJTVExFTgkzKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVAkyCS8qIEZvciAxMDBNSHogYnVzCSovCisvKiNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4JMyovCiAjZWxpZiBkZWZpbmVkKENPTkZJR19IR0xBTikgfHwgZGVmaW5lZChDT05GSUdfSFRHTCkKLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUCTMJLyogRm9yIDEzM01IeiBidXMJKi8KLS8qI2RlZmluZSBDRkdfU0RNT0RFX0JVUlNUTEVOCTIqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUCTMJLyogRm9yIDEzM01IeiBidXMJKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9CVVJTVExFTgkyKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDEKLSNkZWZpbmUgQ0ZHX0VYVFJPTQkJMQkvKiBPcmlnaW5hbCBzZXR0aW5nIGJ1dCB0aGVyZSBpcyBubyBFWFRST00gKi8KLSNkZWZpbmUgQ0ZHX1JFR0RJTU0JCTAKLSNkZWZpbmUgQ0ZHX0RCVVNfU0laRTIJCTEKLSNkZWZpbmUgQ0ZHX1NETU9ERV9XUkFQCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FWFRST00JCTEJLyogT3JpZ2luYWwgc2V0dGluZyBidXQgdGhlcmUgaXMgbm8gRVhUUk9NICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVHRElNTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RCVVNfU0laRTIJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkJMAogCi0jZGVmaW5lIENGR19QR01BWAkJMHgzMgkvKiBBbGwgYm9hcmRzIHVzZSB0aGlzIHNldHRpbmcuIE9yaWdpbmFsIDB4OTIgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0RTQ0QJCTB4MzAKKyNkZWZpbmUgQ09ORklHX1NZU19QR01BWAkJMHgzMgkvKiBBbGwgYm9hcmRzIHVzZSB0aGlzIHNldHRpbmcuIE9yaWdpbmFsIDB4OTIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9EU0NECQkweDMwCiAKIC8qIE1lbW9yeSBiYW5rIHNldHRpbmdzLgogICogT25seSBiaXRzIDIwLTI5IGFyZSBhY3R1YWxseSB1c2VkIGZyb20gdGhlc2UgdmFsZXMgdG8gc2V0IHRoZQpAQCAtMzU2LDMyICszNTYsMzIgQEAKICAqIGFkZHJlc3MuIFJlZmVyIHRvIHRoZSBNUEM4MjQwIGJvb2suCiAgKi8KIAotI2RlZmluZSBDRkdfQkFOSzBfU1RBUlQJICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkswX0VORAkgICAgKENGR19NQVhfUkFNX1NJWkUgLSAxKQotI2RlZmluZSBDRkdfQkFOSzBfRU5BQkxFICAgIDEKLSNkZWZpbmUgQ0ZHX0JBTksxX1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMV9FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzFfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTksyX1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzJfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTkszX1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LM19FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzNfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks0X1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzRfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks1X1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzVfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks2X1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzZfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks3X1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzdfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9TVEFSVAkgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VORAkgICAgKENPTkZJR19TWVNfTUFYX1JBTV9TSVpFIC0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkFCTEUgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX1NUQVJUICAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5EICAgICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX1NUQVJUICAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5EICAgICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX1NUQVJUICAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5EICAgICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X1NUQVJUICAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5EICAgICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X1NUQVJUICAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5EICAgICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X1NUQVJUICAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5EICAgICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X1NUQVJUICAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5EICAgICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkFCTEUgICAgMAogCi0jZGVmaW5lIENGR19PRENSCSAgICAweDE1CisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkgICAgMHgxNQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgQkFUIG1hcHBpbmdzCkBAIC0zOTMsMzIgKzM5MywzMiBAQAogICovCiAKIC8qIFNEUkFNICovCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVCShDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMTI4TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8xMjhNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQogCiAvKiBFVU1COiAxTUIgb2YgYWRkcmVzcyBzcGFjZSAqLwotI2RlZmluZSBDRkdfSUJBVDFMCShDRkdfRVVNQl9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDFVCShDRkdfRVVNQl9BRERSIHwgQkFUVV9CTF8xTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19FVU1CX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCShDT05GSUdfU1lTX0VVTUJfQUREUiB8IEJBVFVfQkxfMU0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfREJBVDFMCShDRkdfSUJBVDFMIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQxVQlDRkdfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMCShDT05GSUdfU1lTX0lCQVQxTCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVCUNPTkZJR19TWVNfSUJBVDFVCiAKIC8qIFBDSSBNZW06IDI1Nk1CIG9mIGFkZHJlc3Mgc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyTAkoQ0ZHX1BDSV9NRU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVQkoQ0ZHX1BDSV9NRU1fQUREUiB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkoQ09ORklHX1NZU19QQ0lfTUVNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCShDT05GSUdfU1lTX1BDSV9NRU1fQUREUiB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUMkwJKENGR19JQkFUMkwgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDJVCUNGR19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJKENPTkZJR19TWVNfSUJBVDJMIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKIAogLyogUENJIGFuZCBsb2NhbCBST00vRmxhc2g6IGxhc3QgMzJNQiBvZiBhZGRyZXNzIHNwYWNlICovCi0jZGVmaW5lIENGR19JQkFUM0wJKENGR19NSVNDX1JFR0lPTl9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVCShDRkdfTUlTQ19SRUdJT05fQUREUiB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCShDT05GSUdfU1lTX01JU0NfUkVHSU9OX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCShDT05GSUdfU1lTX01JU0NfUkVHSU9OX0FERFIgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUM0wJKENGR19JQkFUM0wgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJKENPTkZJR19TWVNfSUJBVDNMIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKQEAgLTQyOCwyNiArNDI4LDI2IEBACiAgKiBGSVhNRTogVGhpcyBkb2Vzbid0IGFwcGVhciB0byBiZSB0cnVlIGZvciB0aGUgbmV3ZXIga2VybmVscwogICogd2hpY2ggbWFwIG1vcmUgdGhhdCA4IE1CCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIJKi8KIAotI3VuZGVmICBDRkdfRkxBU0hfUFJPVEVDVElPTgotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MgkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgcGVyIGZsYXNoCSovCisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzIJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIHBlciBmbGFzaAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBmbGFzaAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBmbGFzaAkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKIC8qCkBAIC00NjMsOSArNDYzLDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogI2lmZGVmIENPTkZJR19DTURfS0dEQgotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ3NywyMCArNDc3LDIwIEBACiAjZGVmaW5lIENPTkZJR19MQkE0OAkJCQkvKiA0OCBiaXQgTEJBIHN1cHBvcnRlZAkJKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0xBTikgfHwgZGVmaW5lZChDT05GSUdfSExBTikgfHwgZGVmaW5lZChDT05GSUdfSEdMQU4pCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCQkvKiBTY2FuIG9ubHkgMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCQkvKiBPbmx5IDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCQkvKiBTY2FuIG9ubHkgMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkJLyogT25seSAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAjZWxpZiBkZWZpbmVkKENPTkZJR19IR1RMKQotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMgkJLyogTWF4LiAyIElERSBidXNzZXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTIJCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkyCQkvKiBNYXguIDIgSURFIGJ1c3NlcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTIJCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KICNlbHNlCiAjZXJyb3IgQ29uZmlnIElERTogVW5rbm93biBMaW5rU3RhdGlvbiB0eXBlCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkwCQkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMAkJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkwCQkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMAkJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkwCQkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkwCQkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUGFydGl0aW9ucyBhbmQgZmlsZSBzeXN0ZW0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9sb2dvZGwuaCBiL2luY2x1ZGUvY29uZmlncy9sb2dvZGwuaAppbmRleCBkY2JhZTk3Li5iYjZmOTQzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbG9nb2RsLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2xvZ29kbC5oCkBAIC05NiwzNSArOTYsMzUgQEAKICAqIHVzZWQgZm9yIHRoZSBSQU0gY29weSBvZiB0aGUgdWJvb3QgY29kZQogICoKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NioxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYqMTAyNCkKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkidWJvb3Q+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJ1Ym9vdD4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDgwMDAwMDAgICAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORCAgICAgICAgIDB4MDgwMGZmZmYJLyogNjQgS2lCICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwODAwMDAwMCAgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORCAgICAgICAgIDB4MDgwMGZmZmYJLyogNjQgS2lCICAgICAgICAgICAgICAgICAgICAgICAqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haICAgICAgICAgIC8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haICAgICAgICAgIC8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSICAgICAgICAgICAweDA4MDAwMDAwICAgICAgLyogbG9hZCBrZXJuZWwgdG8gdGhpcyBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIgICAgICAgICAgIDB4MDgwMDAwMDAgICAgICAvKiBsb2FkIGtlcm5lbCB0byB0aGlzIGFkZHJlc3MgICAqLwogCi0jZGVmaW5lIENGR19IWiAgICAgICAgICAgICAgICAgIDM2ODY0MDAgICAgICAgICAvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFogICAgICAgICAgICAgICAgICAzNjg2NDAwICAgICAgICAgLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLwogCQkJCQkJLyogUlM6IHRoZSBvc2NpbGxhdG9yIGlzIGFjdHVhbGx5IDM2ODAxMzA/PyAqLwogCi0jZGVmaW5lIENGR19DUFVTUEVFRCAgICAgICAgICAgIDB4MTQxICAgICAgICAgICAvKiBzZXQgY29yZSBjbG9jayB0byAyMDAvMjAwLzEwMCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVTUEVFRCAgICAgICAgICAgIDB4MTQxICAgICAgICAgICAvKiBzZXQgY29yZSBjbG9jayB0byAyMDAvMjAwLzEwMCBNSHogKi8KIAkJCQkJCS8qIDAxMDEwMDAwMDEgKi8KIAkJCQkJCS8qICAgICAgXl5eXl4gTWVtb3J5IFNwZWVkIDk5LjUzIE1IeiAgICAgICAgICovCiAJCQkJCQkvKiAgICBeXiAgICAgIFJ1biBNb2RlIFNwZWVkID0gMnggTWVtIFNwZWVkICAqLwogCQkJCQkJLyogXl4gICAgICAgICBUdXJibyBNb2RlIFNwLiA9IDF4IFJ1biBNLiBTcC4gKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MjAwMDAJCS8qIDEyOCBLaUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgyMDAwMAkJLyogMTI4IEtpQiAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogU01TQzkxQzExMSBOZXR3b3JrIENhcmQKQEAgLTE2MCwxMCArMTYwLDEwIEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfMgkJMHgwMTAwMDAwMAkvKiBGbGFzaCBCYW5rICMyICAgICAgICAgICAgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkoMzIqMTAyNCoxMDI0KQkvKiAzMiBNQiAgICAgICAgICAgICAgICAgICAgKi8KIAotI2RlZmluZSBDRkdfRFJBTV9CQVNFCQlQSFlTX1NEUkFNXzEJLyogUkFNIHN0YXJ0cyBoZXJlICAgICAgICAgICovCi0jZGVmaW5lIENGR19EUkFNX1NJWkUJCVBIWVNfU0RSQU1fMV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFCQlQSFlTX1NEUkFNXzEJLyogUkFNIHN0YXJ0cyBoZXJlICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFCQlQSFlTX1NEUkFNXzFfU0laRQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgICAgIFBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgICAgICAgICAgUEhZU19GTEFTSF8xCiAKIAogLyoKQEAgLTIxMyw1MyArMjEzLDUzIEBACiAjZGVmaW5lIF9CSVQzMSAgICAgIDB4ODAwMDAwMDAKIAogCi0jZGVmaW5lIENGR19MRURfQV9CSVQgICAgICAgICAgIChfQklUMTgpCi0jZGVmaW5lIENGR19MRURfQV9TUiAgICAgICAgICAgIEdQU1IwCi0jZGVmaW5lIENGR19MRURfQV9DUiAgICAgICAgICAgIEdQQ1IwCisjZGVmaW5lIENPTkZJR19TWVNfTEVEX0FfQklUICAgICAgICAgICAoX0JJVDE4KQorI2RlZmluZSBDT05GSUdfU1lTX0xFRF9BX1NSICAgICAgICAgICAgR1BTUjAKKyNkZWZpbmUgQ09ORklHX1NZU19MRURfQV9DUiAgICAgICAgICAgIEdQQ1IwCiAKLSNkZWZpbmUgQ0ZHX0xFRF9CX0JJVCAgICAgICAgICAgKF9CSVQxNikKLSNkZWZpbmUgQ0ZHX0xFRF9CX1NSICAgICAgICAgICAgR1BTUjEKLSNkZWZpbmUgQ0ZHX0xFRF9CX0NSICAgICAgICAgICAgR1BDUjEKKyNkZWZpbmUgQ09ORklHX1NZU19MRURfQl9CSVQgICAgICAgICAgIChfQklUMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTEVEX0JfU1IgICAgICAgICAgICBHUFNSMQorI2RlZmluZSBDT05GSUdfU1lTX0xFRF9CX0NSICAgICAgICAgICAgR1BDUjEKIAogCiAvKiBMRUQgQTogb2ZmLCBMRUQgQjogb2ZmICovCi0jZGVmaW5lIENGR19HUFNSMF9WQUwgICAgICAgKF9CSVQxK19CSVQ2K19CSVQ4K19CSVQ5K19CSVQxMStfQklUMTUrX0JJVDE2K19CSVQxOCkKLSNkZWZpbmUgQ0ZHX0dQU1IxX1ZBTCAgICAgICAoX0JJVDArX0JJVDErX0JJVDE2K19CSVQyNCtfQklUMjUgICtfQklUNytfQklUOCtfQklUOStfQklUMTErX0JJVDEzKQotI2RlZmluZSBDRkdfR1BTUjJfVkFMICAgICAgIChfQklUMTQrX0JJVDE1K19CSVQxNikKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMF9WQUwgICAgICAgKF9CSVQxK19CSVQ2K19CSVQ4K19CSVQ5K19CSVQxMStfQklUMTUrX0JJVDE2K19CSVQxOCkKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMV9WQUwgICAgICAgKF9CSVQwK19CSVQxK19CSVQxNitfQklUMjQrX0JJVDI1ICArX0JJVDcrX0JJVDgrX0JJVDkrX0JJVDExK19CSVQxMykKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMl9WQUwgICAgICAgKF9CSVQxNCtfQklUMTUrX0JJVDE2KQogCi0jZGVmaW5lIENGR19HUENSMF9WQUwgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BDUjFfVkFMICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IyX1ZBTCAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjBfVkFMICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMV9WQUwgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IyX1ZBTCAgICAgICAweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0dQRFIwX1ZBTCAgICAgICAoX0JJVDErX0JJVDYrX0JJVDgrX0JJVDkrX0JJVDExK19CSVQxNStfQklUMTYrX0JJVDE3K19CSVQxOCkKLSNkZWZpbmUgQ0ZHX0dQRFIxX1ZBTCAgICAgICAoX0JJVDArX0JJVDErX0JJVDE2K19CSVQyNCtfQklUMjUgICtfQklUNytfQklUOCtfQklUOStfQklUMTErX0JJVDEzKQotI2RlZmluZSBDRkdfR1BEUjJfVkFMICAgICAgIChfQklUMTQrX0JJVDE1K19CSVQxNikKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMF9WQUwgICAgICAgKF9CSVQxK19CSVQ2K19CSVQ4K19CSVQ5K19CSVQxMStfQklUMTUrX0JJVDE2K19CSVQxNytfQklUMTgpCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjFfVkFMICAgICAgIChfQklUMCtfQklUMStfQklUMTYrX0JJVDI0K19CSVQyNSAgK19CSVQ3K19CSVQ4K19CSVQ5K19CSVQxMStfQklUMTMpCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjJfVkFMICAgICAgIChfQklUMTQrX0JJVDE1K19CSVQxNikKIAotI2RlZmluZSBDRkdfR0FGUjBfTF9WQUwgICAgIChfQklUMjIrX0JJVDI0K19CSVQzMSkKLSNkZWZpbmUgQ0ZHX0dBRlIwX1VfVkFMICAgICAoX0JJVDE1K19CSVQxNytfQklUMTkrXAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX0xfVkFMICAgICAoX0JJVDIyK19CSVQyNCtfQklUMzEpCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfVV9WQUwgICAgIChfQklUMTUrX0JJVDE3K19CSVQxOStcCiAJCQkgICAgIF9CSVQyMCtfQklUMjIrX0JJVDI0K19CSVQyNitfQklUMjkrX0JJVDMxKQotI2RlZmluZSBDRkdfR0FGUjFfTF9WQUwgICAgIChfQklUMytfQklUNCtfQklUNitfQklUOCtfQklUMTArX0JJVDEyK19CSVQxNStfQklUMTcrX0JJVDE5K1wKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9MX1ZBTCAgICAgKF9CSVQzK19CSVQ0K19CSVQ2K19CSVQ4K19CSVQxMCtfQklUMTIrX0JJVDE1K19CSVQxNytfQklUMTkrXAogCQkJICAgICBfQklUMjArX0JJVDIzK19CSVQyNCtfQklUMjcrX0JJVDI4K19CSVQzMSkKLSNkZWZpbmUgQ0ZHX0dBRlIxX1VfVkFMICAgICAoX0JJVDIxK19CSVQyMytfQklUMjUrX0JJVDI3K19CSVQyOStfQklUMzEpCi0jZGVmaW5lIENGR19HQUZSMl9MX1ZBTCAgICAgKF9CSVQxK19CSVQzK19CSVQ1K19CSVQ3K19CSVQ5K19CSVQxMStfQklUMTMrX0JJVDE1K19CSVQxNytcCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfVV9WQUwgICAgIChfQklUMjErX0JJVDIzK19CSVQyNStfQklUMjcrX0JJVDI5K19CSVQzMSkKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9MX1ZBTCAgICAgKF9CSVQxK19CSVQzK19CSVQ1K19CSVQ3K19CSVQ5K19CSVQxMStfQklUMTMrX0JJVDE1K19CSVQxNytcCiAJCQkgICAgIF9CSVQxOStfQklUMjErX0JJVDIzK19CSVQyNStfQklUMjcrX0JJVDI5K19CSVQzMSkKLSNkZWZpbmUgQ0ZHX0dBRlIyX1VfVkFMICAgICAoX0JJVDEpCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfVV9WQUwgICAgIChfQklUMSkKIAotI2RlZmluZSBDRkdfUFNTUl9WQUwgICAgICAgICgweDIwKQorI2RlZmluZSBDT05GSUdfU1lTX1BTU1JfVkFMICAgICAgICAoMHgyMCkKIAogLyoKICAqIE1lbW9yeSBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19NU0MwX1ZBTAkweDEyM2MyOTgwCi0jZGVmaW5lIENGR19NU0MxX1ZBTAkweDEyM2MyNjYxCi0jZGVmaW5lIENGR19NU0MyX1ZBTAkweDdmZjg3ZmY4CisjZGVmaW5lIENPTkZJR19TWVNfTVNDMF9WQUwJMHgxMjNjMjk4MAorI2RlZmluZSBDT05GSUdfU1lTX01TQzFfVkFMCTB4MTIzYzI2NjEKKyNkZWZpbmUgQ09ORklHX1NZU19NU0MyX1ZBTAkweDdmZjg3ZmY4CiAKIAogLyogbm8gc2RyYW0vcGNtY2lhIGhlcmUgKi8KLSNkZWZpbmUgQ0ZHX01EQ05GR19WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01EUkVGUl9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01EUkVGUl9WQUxfMTAwCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01ETVJTX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01EQ05GR19WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRFJFRlJfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTURSRUZSX1ZBTF8xMDAJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01ETVJTX1ZBTAkJMHgwMDAwMDAwMAogCiAvKiBvbmx5IFNSQU0gKi8KICNkZWZpbmUgU1hDTkZHX1NFVFRJTkdTCTB4MDAwMDAwMDAKQEAgLTI2OCwyNCArMjY4LDI0IEBACiAgKiBQQ01DSUEgYW5kIENGIEludGVyZmFjZXMKICAqLwogCi0jZGVmaW5lIENGR19NRUNSX1ZBTCAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNNRU0wX1ZBTCAgICAgIDB4MDAwMTA1MDQKLSNkZWZpbmUgQ0ZHX01DTUVNMV9WQUwgICAgICAweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0FUVDBfVkFMICAgICAgMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNBVFQxX1ZBTCAgICAgIDB4MDAwMTA1MDQKLSNkZWZpbmUgQ0ZHX01DSU8wX1ZBTCAgICAgICAweDAwMDA0NzE1Ci0jZGVmaW5lIENGR19NQ0lPMV9WQUwgICAgICAgMHgwMDAwNDcxNQorI2RlZmluZSBDT05GSUdfU1lTX01FQ1JfVkFMICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0wX1ZBTCAgICAgIDB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTFfVkFMICAgICAgMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMF9WQUwgICAgICAweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQxX1ZBTCAgICAgIDB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMF9WQUwgICAgICAgMHgwMDAwNDcxNQorI2RlZmluZSBDT05GSUdfU1lTX01DSU8xX1ZBTCAgICAgICAweDAwMDA0NzE1CiAKIAogLyoKICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgICAyICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICAgICAxMjggIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAgICAgMiAgICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICAgIDEyOCAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVCAgICAoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUICAgICgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICAgICgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCAgICAoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAvKiBGSVhNRSAqLwogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9scGMyMjkyc29kaW1tLmggYi9pbmNsdWRlL2NvbmZpZ3MvbHBjMjI5MnNvZGltbS5oCmluZGV4IDNkMTczZDcuLjU2M2QzNWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9scGMyMjkyc29kaW1tLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2xwYzIyOTJzb2RpbW0uaApAQCAtNDksOCArNDksOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC05NiwyNiArOTYsMjYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiTFBDMjI5MlNPRElNTSAjICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiTFBDMjI5MlNPRElNTSAjICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4NDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4NDAwMDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDQwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHg0MDAwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgwMDA0MDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwlmb3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAwNDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJZm9yCSovCiAJCQkJCQkvKiBhcm1hZGlsbG86IGtlcm5lbCBpbWcgaXMgaGVyZSovCiAKLSNkZWZpbmUgQ0ZHX1NZU19DTEtfRlJFUQk1ODk4MjQwMAkvKiBIeiAqLwotI2RlZmluZQlDRkdfSFoJCQkyMDQ4CQkvKiBkZWNyZW1lbnRlciBmcmVxIGluIEh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfU1lTX0NMS19GUkVRCTU4OTgyNDAwCS8qIEh6ICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkyMDQ4CQkvKiBkZWNyZW1lbnRlciBmcmVxIGluIEh6ICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTEzOCwxNyArMTM4LDE3IEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHg4MDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgwMDIwMDAwMCAvKiAyIE1CICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTAyNAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMDI0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoMHgwICsgMHgzQzAwMCkJLyogQWRkciBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9scGQ3YTQwMC0xMC5oIGIvaW5jbHVkZS9jb25maWdzL2xwZDdhNDAwLTEwLmgKaW5kZXggMzcyMmZkMi4uNjE0NWMzNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2xwZDdhNDAwLTEwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2xwZDdhNDAwLTEwLmgKQEAgLTM0LDcgKzM0LDcgQEAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkJMTQ3NDU2MDAgICAvKiBTeXN0ZW0gQ2xvY2sgUExMIElucHV0IChIeikgKi8KIAogLyogdGlja3MgcGVyIHNlY29uZCAqLwotI2RlZmluZSBDRkdfSFoJKDUwODQ2OSkKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkoNTA4NDY5KQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtNTQsMTcgKzU0LDE3IEBACiAjZGVmaW5lIFBIWVNfU0RSQU1fMQkJMHhjMDAwMDAwMCAvKiBTRFJBTSBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfU0RSQU1fMV9TSVpFCTB4MDIwMDAwMDAgLyogMzIgTUIgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSg2NCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoNjQpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBVc2luZyBTTUM5MUMxMTEgTEFOIGNoaXAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9scGQ3YTQwMC5oIGIvaW5jbHVkZS9jb25maWdzL2xwZDdhNDAwLmgKaW5kZXggOWU2ZWExYS4uNTc1ZjJhMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2xwZDdhNDAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2xwZDdhNDAwLmgKQEAgLTM3LDggKzM3LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogc2VsZWN0IHNlcmlhbCBjb25zb2xlIGNvbmZpZ3VyYXRpb24KQEAgLTg5LDMxICs4OSwzMSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJMUEQ3QTQwMD4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJMUEQ3QTQwMD4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHhjMDMwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHhjMDUwMDAwMAkvKiAyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4YzAzMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweGMwNTAwMDAwCS8qIDIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4YzBmMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4YzBmMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKiBzaXplIGFuZCBsb2NhdGlvbiBvZiB1LWJvb3QgaW4gZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTY8PDEwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1Njw8MTApCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUHJpbWFyeSBFbnZpcm9ubWVudCBTZWN0b3IJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweEZDMDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHhGQzAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MDAwMAogCiAjZW5kaWYgIC8qIF9fTFBEN0E0MDBfSF8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9scGQ3YTQwNC0xMC5oIGIvaW5jbHVkZS9jb25maWdzL2xwZDdhNDA0LTEwLmgKaW5kZXggYThhZjk1MC4uY2UyM2YzZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2xwZDdhNDA0LTEwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2xwZDdhNDA0LTEwLmgKQEAgLTM0LDcgKzM0LDcgQEAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkJMTQ3NDU2MDAgICAvKiBTeXN0ZW0gQ2xvY2sgUExMIElucHV0IChIeikgKi8KIAogLyogdGlja3MgcGVyIHNlY29uZCAqLwotI2RlZmluZSBDRkdfSFoJKDUwODQ2OSkKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkoNTA4NDY5KQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtNTQsMTcgKzU0LDE3IEBACiAjZGVmaW5lIFBIWVNfU0RSQU1fMQkJMHhjMDAwMDAwMCAvKiBTRFJBTSBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfU0RSQU1fMV9TSVpFCTB4MDIwMDAwMDAgLyogMzIgTUIgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSg2NCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoNjQpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBVc2luZyBTTUM5MUMxMTEgTEFOIGNoaXAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9scGQ3YTQwNC5oIGIvaW5jbHVkZS9jb25maWdzL2xwZDdhNDA0LmgKaW5kZXggOWM5NTkxMy4uM2U3MjZhMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2xwZDdhNDA0LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2xwZDdhNDA0LmgKQEAgLTM3LDggKzM3LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogc2VsZWN0IHNlcmlhbCBjb25zb2xlIGNvbmZpZ3VyYXRpb24KQEAgLTg5LDMxICs4OSwzMSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJMUEQ3QTQwND4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJMUEQ3QTQwND4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHhjMDMwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHhjMDUwMDAwMAkvKiAyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4YzAzMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweGMwNTAwMDAwCS8qIDIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4YzBmMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4YzBmMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKiBzaXplIGFuZCBsb2NhdGlvbiBvZiB1LWJvb3QgaW4gZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTY8PDEwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1Njw8MTApCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUHJpbWFyeSBFbnZpcm9ubWVudCBTZWN0b3IJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweEZDMDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHhGQzAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MDAwMAogCiAjZW5kaWYgIC8qIF9fTFBEN0E0MDRfSF8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9sdWFuLmggYi9pbmNsdWRlL2NvbmZpZ3MvbHVhbi5oCmluZGV4IDIxYTZjMjkuLmIxNThiNzQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9sdWFuLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2x1YW4uaApAQCAtNTAsNDQgKzUwLDQ0IEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0xBUkdFX0ZMQVNICQkweGZmYzAwMDAwCS8qIDRNQiBmbGFzaCBhZGRyZXNzIENTMCAqLwotI2RlZmluZSBDRkdfU01BTExfRkxBU0gJCTB4ZmY5MDAwMDAJLyogMU1CIGZsYXNoIGFkZHJlc3MgQ1MyICovCi0jZGVmaW5lIENGR19TUkFNX0JBU0UJCTB4ZmY4MDAwMDAJLyogMU1CIFNSQU0gIGFkZHJlc3MgQ1MyICovCi0jZGVmaW5lIENGR19FUExEX0JBU0UJCTB4ZmYwMDAwMDAJLyogRVBMRCBhbmQgRlJBTSAgICAgQ1MxICovCisjZGVmaW5lIENPTkZJR19TWVNfTEFSR0VfRkxBU0gJCTB4ZmZjMDAwMDAJLyogNE1CIGZsYXNoIGFkZHJlc3MgQ1MwICovCisjZGVmaW5lIENPTkZJR19TWVNfU01BTExfRkxBU0gJCTB4ZmY5MDAwMDAJLyogMU1CIGZsYXNoIGFkZHJlc3MgQ1MyICovCisjZGVmaW5lIENPTkZJR19TWVNfU1JBTV9CQVNFCQkweGZmODAwMDAwCS8qIDFNQiBTUkFNICBhZGRyZXNzIENTMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0VQTERfQkFTRQkJMHhmZjAwMDAwMAkvKiBFUExEIGFuZCBGUkFNICAgICBDUzEgKi8KIAotI2RlZmluZSBDRkdfSVNSQU1fQkFTRQkgICAgICAgIDB4ZjgwMDAwMDAJLyogaW50ZXJuYWwgOGsgU1JBTSAoTDIgY2FjaGUpICovCisjZGVmaW5lIENPTkZJR19TWVNfSVNSQU1fQkFTRQkgICAgICAgIDB4ZjgwMDAwMDAJLyogaW50ZXJuYWwgOGsgU1JBTSAoTDIgY2FjaGUpICovCiAKLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRSAgICAgMHhmMDAwMDAwMAkvKiBpbnRlcm5hbCBwZXJpcGhlcmFscyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSAgICAgMHhmMDAwMDAwMAkvKiBpbnRlcm5hbCBwZXJpcGhlcmFscyAqLwogCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgcGNpIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfUENJX0JBU0UJCTB4ZDAwMDAwMDAJLyogaW50ZXJuYWwgUENJIHJlZ3MgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHQkFTRQkweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvIENGR19QQ0lfTUVNQkFTRSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBwY2kgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJCTB4ZDAwMDAwMDAJLyogaW50ZXJuYWwgUENJIHJlZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UJMHg4MDAwMDAwMAkvKiBQQ0lhZGRyIG1hcHBlZCB0byBDT05GSUdfU1lTX1BDSV9NRU1CQVNFICovCiAKLSNpZiBDRkdfTEFSR0VfRkxBU0ggPT0gMHhmZmMwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0xBUkdFX0ZMQVNICisjaWYgQ09ORklHX1NZU19MQVJHRV9GTEFTSCA9PSAweGZmYzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19MQVJHRV9GTEFTSAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19TTUFMTF9GTEFTSAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfU01BTExfRkxBU0gKICNlbmRpZgogCi0jaWYgQ0ZHX1NSQU1fQkFTRQotI2RlZmluZSBDRkdfS0JZVEVTX1NEUkFNCTEwMjQqMgorI2lmIENPTkZJR19TWVNfU1JBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfS0JZVEVTX1NEUkFNCTEwMjQqMgogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0tCWVRFU19TRFJBTQkxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfS0JZVEVTX1NEUkFNCTEwMjQKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIFJBTSAmIHN0YWNrIHBvaW50ZXIgKHBsYWNlZCBpbiBTRFJBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JU1JBTV9CQVNFCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJKDggPDwgMTApCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NgkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lTUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJKDggPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkyNTYJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRVhUX1NFUklBTF9DTE9DSwkxMTA1OTIwMCAvKiBleHRlcm5hbCAxMS4wNTlNSHogY2xrICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkxMTA1OTIwMCAvKiBleHRlcm5hbCAxMS4wNTlNSHogY2xrICovCiAjdW5kZWYgIENPTkZJR19VQVJUMV9DT05TT0xFCQkvKiBkZWZpbmUgaWYgeW91IHdhbnQgY29uc29sZSBvbiBVQVJUMSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMDIsMjEgKzEwMiwyMSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkzCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTMJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAgICAgICAgICAweDU1NQotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEgICAgICAgICAweDJhYQotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFICAgICB1bnNpZ25lZCBjaGFyCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAgICAgICAgICAweDU1NQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxICAgICAgICAgMHgyYWEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgICAgIHVuc2lnbmVkIGNoYXIKIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMCAvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTM0LDEzICsxMzQsMTMgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwogCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCSgweGE4Pj4xKQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJKDB4YTg+PjEpCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKIAogLyoKICAqIERlZmF1bHQgZW52aXJvbm1lbnQgdmFyaWFibGVzCkBAIC0xODIsMTEgKzE4MiwxMSBAQAogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVyAgICAgICAgICAgIC8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAgKi8KIAogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQKLSN1bmRlZiAgQ0ZHX1BDSV9NQVNURVJfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVAorI3VuZGVmICBDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVAogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4NDQwMwkvKiB3aGF0ZXZlciAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4NDQwMwkvKiB3aGF0ZXZlciAqLwogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2x1YmJvY2suaCBiL2luY2x1ZGUvY29uZmlncy9sdWJib2NrLmgKaW5kZXggM2M5MjFjMC4uMjA4OTEwZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2x1YmJvY2suaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbHViYm9jay5oCkBAIC00OSw4ICs0OSw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTEwNSwzNSArMTA1LDM1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2lmZGVmIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUCQkiJCAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIiQgIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJMQorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweGEwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweGEwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHhhMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4YTA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmCUNPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJKENGR19EUkFNX0JBU0UgKyAweDgwMDApIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCShDT05GSUdfU1lTX0RSQU1fQkFTRSArIDB4ODAwMCkgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCi0jZGVmaW5lIENGR19DUFVTUEVFRAkJMHgxNjEJCS8qIHNldCBjb3JlIGNsb2NrIHRvIDQwMC8yMDAvMTAwIE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMzY4NjQwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVVNQRUVECQkweDE2MQkJLyogc2V0IGNvcmUgY2xvY2sgdG8gNDAwLzIwMC8xMDAgTUh6ICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZSBDRkdfTU1DX0JBU0UJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NTUNfQkFTRQkJMHhGMDAwMDAwMAogCiAvKgogICogU3RhY2sgc2l6ZXMKQEAgLTE2NSw1NCArMTY1LDU0IEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfQkFOS19TSVpFCTB4MDIwMDAwMDAgLyogMzIgTUIgQmFua3MgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUJMHgwMDA0MDAwMCAvKiAyNTYgS0Igc2VjdG9ycyAoeDIpICovCiAKLSNkZWZpbmUgQ0ZHX0RSQU1fQkFTRQkJMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfRFJBTV9TSVpFCQkweDA0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFCQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFCQkweDA0MDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAjZGVmaW5lIEZQR0FfUkVHU19CQVNFX1BIWVNJQ0FMIDB4MDgwMDAwMDAKIAogLyoKICAqIEdQSU8gc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfR1BTUjBfVkFMCQkweDAwMDA4MDAwCi0jZGVmaW5lIENGR19HUFNSMV9WQUwJCTB4MDBGQzAzODIKLSNkZWZpbmUgQ0ZHX0dQU1IyX1ZBTAkJMHgwMDAxRkZGRgotI2RlZmluZSBDRkdfR1BDUjBfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUENSMV9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IyX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BEUjBfVkFMCQkweDAwNjBBODAwCi0jZGVmaW5lIENGR19HUERSMV9WQUwJCTB4MDBGRjAzODIKLSNkZWZpbmUgQ0ZHX0dQRFIyX1ZBTAkJMHgwMDAxQzAwMAotI2RlZmluZSBDRkdfR0FGUjBfTF9WQUwJCTB4OTg0MDAwMDAKLSNkZWZpbmUgQ0ZHX0dBRlIwX1VfVkFMCQkweDAwMDAyOTUwCi0jZGVmaW5lIENGR19HQUZSMV9MX1ZBTAkJMHgwMDBBOTU1OAotI2RlZmluZSBDRkdfR0FGUjFfVV9WQUwJCTB4MDAwNUFBQUEKLSNkZWZpbmUgQ0ZHX0dBRlIyX0xfVkFMCQkweEEwMDAwMDAwCi0jZGVmaW5lIENGR19HQUZSMl9VX1ZBTAkJMHgwMDAwMDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IwX1ZBTAkJMHgwMDAwODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IxX1ZBTAkJMHgwMEZDMDM4MgorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IyX1ZBTAkJMHgwMDAxRkZGRgorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IwX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IxX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IyX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIwX1ZBTAkJMHgwMDYwQTgwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIxX1ZBTAkJMHgwMEZGMDM4MgorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIyX1ZBTAkJMHgwMDAxQzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX0xfVkFMCQkweDk4NDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfVV9WQUwJCTB4MDAwMDI5NTAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9MX1ZBTAkJMHgwMDBBOTU1OAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX1VfVkFMCQkweDAwMDVBQUFBCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfTF9WQUwJCTB4QTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9VX1ZBTAkJMHgwMDAwMDAwMgogCi0jZGVmaW5lIENGR19QU1NSX1ZBTAkJMHgyMAorI2RlZmluZSBDT05GSUdfU1lTX1BTU1JfVkFMCQkweDIwCiAKIC8qCiAgKiBNZW1vcnkgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfTVNDMF9WQUwJCTB4MjNGMjIzRjIKLSNkZWZpbmUgQ0ZHX01TQzFfVkFMCQkweDNGRjFBNDQxCi0jZGVmaW5lIENGR19NU0MyX1ZBTAkJMHg3RkY5N0ZGMQotI2RlZmluZSBDRkdfTURDTkZHX1ZBTAkJMHgwMDAwMUFDOQotI2RlZmluZSBDRkdfTURSRUZSX1ZBTAkJMHgwMDAxODAxOAotI2RlZmluZSBDRkdfTURNUlNfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMF9WQUwJCTB4MjNGMjIzRjIKKyNkZWZpbmUgQ09ORklHX1NZU19NU0MxX1ZBTAkJMHgzRkYxQTQ0MQorI2RlZmluZSBDT05GSUdfU1lTX01TQzJfVkFMCQkweDdGRjk3RkYxCisjZGVmaW5lIENPTkZJR19TWVNfTURDTkZHX1ZBTAkJMHgwMDAwMUFDOQorI2RlZmluZSBDT05GSUdfU1lTX01EUkVGUl9WQUwJCTB4MDAwMTgwMTgKKyNkZWZpbmUgQ09ORklHX1NZU19NRE1SU19WQUwJCTB4MDAwMDAwMDAKIAogLyoKICAqIFBDTUNJQSBhbmQgQ0YgSW50ZXJmYWNlcwogICovCi0jZGVmaW5lIENGR19NRUNSX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNNRU0wX1ZBTAkJMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNNRU0xX1ZBTAkJMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNBVFQwX1ZBTAkJMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNBVFQxX1ZBTAkJMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNJTzBfVkFMCQkweDAwMDA0NzE1Ci0jZGVmaW5lIENGR19NQ0lPMV9WQUwJCTB4MDAwMDQ3MTUKKyNkZWZpbmUgQ09ORklHX1NZU19NRUNSX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMF9WQUwJCTB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTFfVkFMCQkweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQwX1ZBTAkJMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMV9WQUwJCTB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMF9WQUwJCTB4MDAwMDQ3MTUKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMV9WQUwJCTB4MDAwMDQ3MTUKIAogI2RlZmluZSBfTEVECQkJMHgwODAwMDAxMAogI2RlZmluZSBMRURfQkxBTksJCTB4MDgwMDAwNDAKQEAgLTIyMCwxNyArMjIwLDE3IEBACiAvKgogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOCAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4ICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMjUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAvKiBOT1RFOiBtYW55IGRlZmF1bHQgcGFydGl0aW9uaW5nIHNjaGVtZXMgYXNzdW1lIHRoZSBrZXJuZWwgc3RhcnRzIGF0IHRoZQogICogc2Vjb25kIHNlY3Rvciwgbm90IGFuIGVudmlyb25tZW50LiAgWW91IGhhdmUgYmVlbiB3YXJuZWQhCiAgKi8KLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQlQSFlTX0ZMQVNIX1NFQ1RfU0laRQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQlQSFlTX0ZMQVNIX1NFQ1RfU0laRQogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoUEhZU19GTEFTSF8xICsgUEhZU19GTEFTSF9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCVBIWVNfRkxBU0hfU0VDVF9TSVpFCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbHdtb24uaCBiL2luY2x1ZGUvY29uZmlncy9sd21vbi5oCmluZGV4IGU0ZWUwOTkuLmQ1MmE1ZTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9sd21vbi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9sd21vbi5oCkBAIC03MywxOCArNzMsMTggQEAKICN1bmRlZglDT05GSUdfQk9PVEFSR1MKIAogLyogUE9TVCBzdXBwb3J0ICovCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfQ0FDSEUJICAgfCBcCi0JCQkJIENGR19QT1NUX1dBVENIRE9HIHwgXAotCQkJCSBDRkdfUE9TVF9SVEMJICAgfCBcCi0JCQkJIENGR19QT1NUX01FTU9SWSAgIHwgXAotCQkJCSBDRkdfUE9TVF9DUFUJICAgfCBcCi0JCQkJIENGR19QT1NUX1VBUlQJICAgfCBcCi0JCQkJIENGR19QT1NUX0VUSEVSICAgIHwgXAotCQkJCSBDRkdfUE9TVF9JMkMJICAgfCBcCi0JCQkJIENGR19QT1NUX1NQSQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfVVNCCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9TUFIJICAgfCBcCi0JCQkJIENGR19QT1NUX1NZU01PTikKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfQ0FDSEUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9XQVRDSERPRyB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1JUQwkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX01FTU9SWSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ1BVCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfVUFSVAkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0VUSEVSICAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfSTJDCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfU1BJCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfVVNCCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfU1BSCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfU1lTTU9OKQogCiAvKgogICogS2V5Ym9hcmQgY29tbWFuZHM6CkBAIC0xMzUsMTAgKzEzNSwxMCBAQAogCSJ2ZXJpZnk9bm8iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lCUNPTkZJR19XQVRDSERPRwkJMQkvKiB3YXRjaGRvZyBlbmFibGVkCQkqLwotI2RlZmluZQlDRkdfV0FUQ0hET0dfRlJFUSAgICAgICAoQ0ZHX0haIC8gMjApCisjZGVmaW5lCUNPTkZJR19TWVNfV0FUQ0hET0dfRlJFUSAgICAgICAoQ09ORklHX1NZU19IWiAvIDIwKQogCiAjdW5kZWYJQ09ORklHX1NUQVRVU19MRUQJCS8qIFN0YXR1cyBMRUQgZGlzYWJsZWQJCSovCiAKQEAgLTE0Niw4ICsxNDYsOCBAQAogI3VuZGVmCUNPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUJQ09ORklHX1NPRlRfSTJDICAgICAgICAgMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk5MzAwMAkvKiA5MyBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk5MzAwMAkvKiA5MyBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhGRQogCiAjaWZkZWYgQ09ORklHX1NPRlRfSTJDCiAvKgpAQCAtMjA5LDM5ICsyMDksMzkgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jZGVmaW5lCUNGR19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZQlDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBGMDAwMDAJLyogMSAuLi4gMTVNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEYwMDAwMAkvKiAxIC4uLiAxNU1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX1BJT19NT0RFCQkwCS8qIElERSBpbnRlcmZhY2UgaW4gUElPIE1vZGUgMAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BJT19NT0RFCQkwCS8qIElERSBpbnRlcmZhY2UgaW4gUElPIE1vZGUgMAkqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qCiAgKiBXaGVuIHRoZSB3YXRjaGRvZyBpcyBlbmFibGVkLCBvdXRwdXQgbXVzdCBiZSBmYXN0IGVub3VnaCBpbiBMaW51eC4KICAqLwogI2lmZGVmIENPTkZJR19XQVRDSERPRwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJewkJMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsJCTM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KICNlbHNlCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7ICA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KQEAgLTI2Niw1MyArMjY2LDUzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2OCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAogI2lmIGRlZmluZWQoREVCVUcpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9JREUpCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxODAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk2MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQotI2RlZmluZSBDRkdfRkxBU0hfQlVGRkVSX1dSSVRFX1RPVVQJMjA0OAkvKiBUaW1lb3V0IGZvciBGbGFzaCBCdWZmZXIgV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTgwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTYwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JVRkZFUl9XUklURV9UT1VUCTIwNDgJLyogVGltZW91dCBmb3IgRmxhc2ggQnVmZmVyIFdyaXRlIChpbiBtcykJKi8KIC8qIEJ1ZmZlciBzaXplLgogICAgV2UgaGF2ZSB0d28gZmxhc2ggZGV2aWNlcyBjb25uZWN0ZWQgaW4gcGFyYWxsZWwuCiAgICBFYWNoIGRldmljZSBpbmNvcnBvcmF0ZXMgYSBXcml0ZSBCdWZmZXIgb2YgMzIgYnl0ZXMuCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JVRkZFUl9TSVpFCSgyKjMyKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JVRkZFUl9TSVpFCSgyKjMyKQogCiAvKiBQdXQgZW52aXJvbm1lbnQgaW4gZmxhc2ggd2hpY2ggaXMgbXVjaCBmYXN0ZXIgdG8gYm9vdCB0aGFuIHVzaW5nIHRoZSBFRVBST00JKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCkBAIC0zMjQsNjIgKzMyNCw2MiBAQAogICogSTJDL0VFUFJPTSBDb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfSTJDX0FVRElPX0FERFIJMHgyOAkvKiBBdWRpbyB2b2x1bWUgY29udHJvbAkJCSovCi0jZGVmaW5lIENGR19JMkNfU1lTTU9OX0FERFIJMHgyRQkvKiBMTTg3IFN5c3RlbSBNb25pdG9yCQkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDUxCS8qIFBDRjg1NjMgUlRDCQkJCSovCi0jZGVmaW5lIENGR19JMkNfUE9XRVJfQV9BRERSCTB4NTIJLyogUENNQ0lBL1VTQiBwb3dlciBzd2l0Y2gsIGNoYW5uZWwgQQkqLwotI2RlZmluZSBDRkdfSTJDX1BPV0VSX0JfQUREUgkweDUzCS8qIFBDTUNJQS9VU0IgcG93ZXIgc3dpdGNoLCBjaGFubmVsIEIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19LRVlCRF9BRERSCTB4NTYJLyogUElDIExXRSBrZXlib2FyZAkJCSovCi0jZGVmaW5lIENGR19JMkNfUElDSU9fQUREUgkweDU3CS8qIFBJQyBJTyBFeHBhbmRlcgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0FVRElPX0FERFIJMHgyOAkvKiBBdWRpbyB2b2x1bWUgY29udHJvbAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NZU01PTl9BRERSCTB4MkUJLyogTE04NyBTeXN0ZW0gTW9uaXRvcgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NTEJLyogUENGODU2MyBSVEMJCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUE9XRVJfQV9BRERSCTB4NTIJLyogUENNQ0lBL1VTQiBwb3dlciBzd2l0Y2gsIGNoYW5uZWwgQQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19QT1dFUl9CX0FERFIJMHg1MwkvKiBQQ01DSUEvVVNCIHBvd2VyIHN3aXRjaCwgY2hhbm5lbCBCCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0tFWUJEX0FERFIJMHg1NgkvKiBQSUMgTFdFIGtleWJvYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUElDSU9fQUREUgkweDU3CS8qIFBJQyBJTyBFeHBhbmRlcgkJCSovCiAKICN1bmRlZglDT05GSUdfVVNFX0ZSQU0JCQkvKiBVc2UgRlJBTSBpbnN0ZWFkIG9mIEVFUFJPTQkqLwogCiAjaWZkZWYgQ09ORklHX1VTRV9GUkFNCS8qIHVzZSBGUkFNICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1NQkvKiBGUkFNIEZNMjRDTDY0CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkyCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTUJLyogRlJBTSBGTTI0Q0w2NAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTIKICNlbHNlCQkJLyogdXNlIEVFUFJPTSAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTgJLyogRUVQUk9NIEFUMjRDMTY0CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiB0YWtlcyB1cCB0byAxMCBtc2VjCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTgJLyogRUVQUk9NIEFUMjRDMTY0CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIHRha2VzIHVwIHRvIDEwIG1zZWMJKi8KICNlbmRpZgkvKiBDT05GSUdfVVNFX0ZSQU0gKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAogCiAvKiBMaXN0IG9mIEkyQyBhZGRyZXNzZXMgdG8gYmUgdmVyaWZpZWQgYnkgUE9TVCAqLwogI2lmZGVmIENPTkZJR19VU0VfRlJBTQotI2RlZmluZSBJMkNfQUREUl9MSVNUCXsgIC8qCUNGR19JMkNfQVVESU9fQUREUiwgKi8JXAotCQkJCUNGR19JMkNfU1lTTU9OX0FERFIsCVwKLQkJCQlDRkdfSTJDX1JUQ19BRERSLAlcCi0JCQkJQ0ZHX0kyQ19QT1dFUl9BX0FERFIsCVwKLQkJCQlDRkdfSTJDX1BPV0VSX0JfQUREUiwJXAotCQkJCUNGR19JMkNfS0VZQkRfQUREUiwJXAotCQkJCUNGR19JMkNfUElDSU9fQUREUiwJXAotCQkJCUNGR19JMkNfRUVQUk9NX0FERFIsCVwKKyNkZWZpbmUgSTJDX0FERFJfTElTVAl7ICAvKglDT05GSUdfU1lTX0kyQ19BVURJT19BRERSLCAqLwlcCisJCQkJQ09ORklHX1NZU19JMkNfU1lTTU9OX0FERFIsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19SVENfQUREUiwJXAorCQkJCUNPTkZJR19TWVNfSTJDX1BPV0VSX0FfQUREUiwJXAorCQkJCUNPTkZJR19TWVNfSTJDX1BPV0VSX0JfQUREUiwJXAorCQkJCUNPTkZJR19TWVNfSTJDX0tFWUJEX0FERFIsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19QSUNJT19BRERSLAlcCisJCQkJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsCVwKIAkJCX0KICNlbHNlCS8qIFVzZSBFRVBST00gLSB3aGljaCBzaG93IHVwIG9uIDggY29uc2VxdXRpdmUgYWRkcmVzc2VzICovCi0jZGVmaW5lIEkyQ19BRERSX0xJU1QJeyAgLyoJQ0ZHX0kyQ19BVURJT19BRERSLCAqLwlcCi0JCQkJQ0ZHX0kyQ19TWVNNT05fQUREUiwJXAotCQkJCUNGR19JMkNfUlRDX0FERFIsCVwKLQkJCQlDRkdfSTJDX1BPV0VSX0FfQUREUiwJXAotCQkJCUNGR19JMkNfUE9XRVJfQl9BRERSLAlcCi0JCQkJQ0ZHX0kyQ19LRVlCRF9BRERSLAlcCi0JCQkJQ0ZHX0kyQ19QSUNJT19BRERSLAlcCi0JCQkJQ0ZHX0kyQ19FRVBST01fQUREUiswLAlcCi0JCQkJQ0ZHX0kyQ19FRVBST01fQUREUisxLAlcCi0JCQkJQ0ZHX0kyQ19FRVBST01fQUREUisyLAlcCi0JCQkJQ0ZHX0kyQ19FRVBST01fQUREUiszLAlcCi0JCQkJQ0ZHX0kyQ19FRVBST01fQUREUis0LAlcCi0JCQkJQ0ZHX0kyQ19FRVBST01fQUREUis1LAlcCi0JCQkJQ0ZHX0kyQ19FRVBST01fQUREUis2LAlcCi0JCQkJQ0ZHX0kyQ19FRVBST01fQUREUis3LAlcCisjZGVmaW5lIEkyQ19BRERSX0xJU1QJeyAgLyoJQ09ORklHX1NZU19JMkNfQVVESU9fQUREUiwgKi8JXAorCQkJCUNPTkZJR19TWVNfSTJDX1NZU01PTl9BRERSLAlcCisJCQkJQ09ORklHX1NZU19JMkNfUlRDX0FERFIsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19QT1dFUl9BX0FERFIsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19QT1dFUl9CX0FERFIsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19LRVlCRF9BRERSLAlcCisJCQkJQ09ORklHX1NZU19JMkNfUElDSU9fQUREUiwJXAorCQkJCUNPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSKzAsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUisxLAlcCisJCQkJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIrMiwJXAorCQkJCUNPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSKzMsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUis0LAlcCisJCQkJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIrNSwJXAorCQkJCUNPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSKzYsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUis3LAlcCiAJCQl9CiAjZW5kaWYJLyogQ09ORklHX1VTRV9GUkFNICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzg5LDEwICszODksMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgMCAmJiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykJLyogTFdNT04gdXNlcyBleHRlcm5hbCBNQVg3MDZURVNBIFdEICovCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQwMiwyMiArNDAyLDIyIEBACiAgKi8KIC8qIEVBUkIsIERCR0MgYW5kIERCUEMgYXJlIGluaXRpYWxpc2VkIGJ5IHRoZSBIQ1cgKi8KIC8qID0+IDB4MDAwMDAwQzAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0dCNUUpCi0vKiNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0dCNUUpCisvKiNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTQyNiwxNSArNDI2LDE1IEBACiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdCwgc2V0IFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgIQogICovCiAvKiAweDAwNDA1MDAwICovCi0jZGVmaW5lIENGR19QTFBSQ1JfTUYJNAkvKiAoNCsxKSAqIDEzLjIgPSA2NiBNSHogQ2xvY2sgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkJCQkJCQlcCi0JCSgJKENGR19QTFBSQ1JfTUYgPDwgUExQUkNSX01GX1NISUZUKSB8CQlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSX01GCTQJLyogKDQrMSkgKiAxMy4yID0gNjYgTUh6IENsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCQkJCQkJCVwKKwkJKAkoQ09ORklHX1NZU19QTFBSQ1JfTUYgPDwgUExQUkNSX01GX1NISUZUKSB8CQlcCiAJCQlQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QgfAlcCiAJCQkvKlBMUFJDUl9DU1JDfCovIFBMUFJDUl9MUE1fTk9STUFMIHwJCVwKIAkJCVBMUFJDUl9DU1IgICAgLyp8IFBMUFJDUl9MT0xSRXxQTFBSQ1JfRklPUEQqLwlcCiAJCSkKIAotI2RlZmluZSBDT05GSUdfOHh4X0dDTEtfRlJFUQkoKENGR19QTFBSQ1JfTUYrMSkqMTMyMDAwMDApCisjZGVmaW5lIENPTkZJR184eHhfR0NMS19GUkVRCSgoQ09ORklHX1NZU19QTFBSQ1JfTUYrMSkqMTMyMDAwMDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC00NDQsNyArNDQ0LDcgQEAKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKIC8qIDB4MDE4MDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAJfCAvKlNDQ1JfVEJTfCovCQlcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMAl8IC8qU0NDUl9UQlN8Ki8JCVwKIAkJCSBTQ0NSX1JURElWCXwgICBTQ0NSX1JUU0VMCSAgfAlcCiAJCQkgLypTQ0NSX0NSUUVOfCovICAvKlNDQ1JfUFJRRU58Ki8JXAogCQkJIFNDQ1JfRUJERjAwIHwJIFNDQ1JfREZTWU5DMDAgfAlcCkBAIC00NTcsNDEgKzQ1Nyw0MSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAvKiAweDAwQzMgPT4gMHgwMDAzICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiBSZWdpc3RlcgkJMTktNAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SQ0NSIDB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgMHgwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNRFMgLSBSSVNDIE1pY3JvY29kZSBEZXZlbG9wbWVudCBTdXBwb3J0IENvbnRyb2wgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUk1EUyAwCisjZGVmaW5lIENPTkZJR19TWVNfUk1EUyAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKiBJbnRlcnJ1cHQgTGV2ZWxzCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0NQTV9JTlRFUlJVUFQJMTMJLyogU0lVX0xFVkVMNgkqLworI2RlZmluZSBDT05GSUdfU1lTX0NQTV9JTlRFUlJVUFQJMTMJLyogU0lVX0xFVkVMNgkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHg1MDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHg1NDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweDU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHg1QzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHg1MDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweDU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHg1ODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHg1QzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtNTA0LDIxICs1MDQsMjEgQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRAkgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKICNkZWZpbmUgQ09ORklHX1NVUFBPUlRfVkZBVAkJLyogZW5hYmxlIFZGQVQgc3VwcG9ydCAqLwogCkBAIC01MjcsNyArNTI3LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUiAwCisjZGVmaW5lIENPTkZJR19TWVNfREVSIDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC01NDIsMjIgKzU0MiwyMiBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHhGRjAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZGMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweEZGMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZGMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDAwLCBUUkxYID0gMCwgQ1NOVCA9IDEsIFNDWSA9IDgsIEVIVFIgPSAwCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX1NDWV84X0NMSykKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX1NDWV84X0NMSykKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCSggQ0ZHX1JFTUFQX09SX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWMSB8IE9SX0JJIHwgXAotCQkJCUNGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgT1JfQUNTX0RJVjEgfCBPUl9CSSB8IFwKLQkJCQlDRkdfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoIENPTkZJR19TWVNfUkVNQVBfT1JfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCisJCQkJQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBPUl9BQ1NfRElWMSB8IE9SX0JJIHwgXAorCQkJCUNPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQogLyogMTYgYml0LCBiYW5rIHZhbGlkICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzMyIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX1YgKQogCiAvKgogICogQlIzL09SMzogU0RSQU0KQEAgLTU3MCw4ICs1NzAsOCBAQAogCiAjZGVmaW5lIFNEUkFNX01BWF9TSVpFCQkweDA4MDAwMDAwCS8qIG1heCAxMjggTUIgU0RSQU0gKi8KIAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkoU0RSQU1fUFJFTElNX09SX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9HNUxTIHwgU0RSQU1fVElNSU5HICkKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JKFNEUkFNX1BSRUxJTV9PUl9BTSB8IE9SX0NTTlRfU0FNIHwgT1JfRzVMUyB8IFNEUkFNX1RJTUlORyApCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qCiAgKiBCUjUvT1I1OiBUb3VjaCBQYW5lbApAQCAtNTgyLDMyICs1ODIsMzIgQEAKICNkZWZpbmUgVE9VQ0hQTkxfT1JfQU0JCTB4RkZGRjgwMDAKICNkZWZpbmUgVE9VQ0hQTkxfVElNSU5HCQlPUl9TQ1lfMF9DTEsKIAotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkoVE9VQ0hQTkxfT1JfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkoVE9VQ0hQTkxfT1JfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCiAJCQkgVE9VQ0hQTkxfVElNSU5HICkKLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JKChUT1VDSFBOTF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzMyIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkoKFRPVUNIUE5MX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMzIgfCBCUl9WICkKIAotI2RlZmluZQlDRkdfTUVNT1JZXzc1Ci0jdW5kZWYJQ0ZHX01FTU9SWV83RQotI3VuZGVmCUNGR19NRU1PUllfOEUKKyNkZWZpbmUJQ09ORklHX1NZU19NRU1PUllfNzUKKyN1bmRlZglDT05GSUdfU1lTX01FTU9SWV83RQorI3VuZGVmCUNPTkZJR19TWVNfTUVNT1JZXzhFCiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyCiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01QVFBSCTB4MjAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJMHgyMDAKIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAotI2RlZmluZSBDRkdfTUFNUl84Q09MCTB4ODA4MDIxMTQKLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkweDgwOTA0MTE0CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCTB4ODA4MDIxMTQKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJMHg4MDkwNDExNAogCiAvKgogICogTUFSIHNldHRpbmcgZm9yIFNEUkFNCiAgKi8KLSNkZWZpbmUgQ0ZHX01BUgkJMHgwMDAwMDA4OAorI2RlZmluZSBDT05GSUdfU1lTX01BUgkJMHgwMDAwMDA4OAogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9sd21vbjUuaCBiL2luY2x1ZGUvY29uZmlncy9sd21vbjUuaAppbmRleCA3NTQwYzhlLi5lMGRiZDYxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbHdtb241LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2x3bW9uNS5oCkBAIC00MiwzMiArNDIsMzIgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDUxMiAqIDEwMjQpCS8qIFJlc2VydmUgNTEyIGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIG1hbGxvYygpCSovCiAKLSNkZWZpbmUgQ0ZHX0JPT1RfQkFTRV9BRERSCTB4ZjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogX211c3RfIGJlIDAJCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGY4MDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19MSU1FX0JBU0VfMCAgICAgICAgIDB4YzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xJTUVfQkFTRV8xICAgICAgICAgMHhjMTAwMDAwMAotI2RlZmluZSBDRkdfTElNRV9CQVNFXzIgICAgICAgICAweGMyMDAwMDAwCi0jZGVmaW5lIENGR19MSU1FX0JBU0VfMyAgICAgICAgIDB4YzMwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRV8wICAgICAgICAgMHhjNDAwMDAwMAotI2RlZmluZSBDRkdfRlBHQV9CQVNFXzEgICAgICAgICAweGM0MjAwMDAwCi0jZGVmaW5lIENGR19PQ01fQkFTRQkJMHhlMDAxMDAwMCAgICAgIC8qIG9jbQkJCSovCi0jZGVmaW5lIENGR19QQ0lfQkFTRQkJMHhlMDAwMDAwMCAgICAgIC8qIEludGVybmFsIFBDSSByZWdzCSovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UxCUNGR19QQ0lfTUVNQkFTRSAgKyAweDEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRTIJQ0ZHX1BDSV9NRU1CQVNFMSArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMwlDRkdfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSCTB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIF9tdXN0XyBiZSAwCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZjgwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTElNRV9CQVNFXzAgICAgICAgICAweGMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTElNRV9CQVNFXzEgICAgICAgICAweGMxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTElNRV9CQVNFXzIgICAgICAgICAweGMyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTElNRV9CQVNFXzMgICAgICAgICAweGMzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFXzAgICAgICAgICAweGM0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFXzEgICAgICAgICAweGM0MjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0JBU0UJCTB4ZTAwMTAwMDAgICAgICAvKiBvY20JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVNFCQkweGUwMDAwMDAwICAgICAgLyogSW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMQlDT05GSUdfU1lTX1BDSV9NRU1CQVNFICArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIJQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UzCUNPTkZJR19TWVNfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAogCiAvKiBEb24ndCBjaGFuZ2UgZWl0aGVyIG9mIHRoZXNlICovCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX0JBU0UJMHhlZjYwMDAwMAkvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRQkweGVmNjAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCiAKLSNkZWZpbmUgQ0ZHX1VTQjJEMF9CQVNFCQkweGUwMDAwMTAwCi0jZGVmaW5lIENGR19VU0JfREVWSUNFCQkweGUwMDAwMDAwCi0jZGVmaW5lIENGR19VU0JfSE9TVAkJMHhlMDAwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQjJEMF9CQVNFCQkweGUwMDAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0RFVklDRQkJMHhlMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9IT1NUCQkweGUwMDAwNDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlcgpAQCAtNzgsNDEgKzc4LDQxIEBACiAgKiBjb250ZW50IGR1cmluZyByZXNldCAoR1BUMF9DT01QNikuIFRoaXMgd2F5IHdlIHJlc2VydmUgdGhlIE9DTSAoMTZrKQogICogZm9yIGxvZ2J1ZmZlciBvbmx5LiAoR1BUMF9DT01QMS1DT01QNSBhcmUgcmVzZXJ2ZWQgZm9yIGxvZ2J1ZmZlciBoZWFkZXIuKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9EQ0FDSEUJMQkJLyogZC1jYWNoZSBhcyBpbml0IHJhbQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDcwMDAwMDAwCQkvKiBEQ2FjaGUgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkoNCA8PCAxMCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMjU2CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAotI2RlZmluZSBDRkdfUE9TVF9BTFRfV09SRF9BRERSCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgR1BUMF9DT01QNikKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9EQ0FDSEUJMQkJLyogZC1jYWNoZSBhcyBpbml0IHJhbQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg3MDAwMDAwMAkJLyogRENhY2hlICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9BTFRfV09SRF9BRERSCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIEdQVDBfQ09NUDYpCiAJCQkJCQkvKiB1bnVzZWQgR1BUMCBDT01QIHJlZwkqLwotI2RlZmluZSBDRkdfTUVNX1RPUF9ISURFCSg0IDw8IDEwKSAvKiBkb24ndCB1c2UgbGFzdCA0a2J5dGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNX1RPUF9ISURFCSg0IDw8IDEwKSAvKiBkb24ndCB1c2UgbGFzdCA0a2J5dGVzCSovCiAJCQkJCS8qIDQ0MEVQeCBlcnJhdGEgQ0hJUCAxMQkqLwotI2RlZmluZSBDRkdfT0NNX1NJWkUJCSgxNiA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fU0laRQkJKDE2IDw8IDEwKQogCiAvKiBBZGRpdGlvbmFsIHJlZ2lzdGVycyBmb3Igd2F0Y2hkb2cgdGltZXIgcG9zdCB0ZXN0ICovCiAKLSNkZWZpbmUgQ0ZHX1dBVENIRE9HX1RJTUVfQUREUgkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIEdQVDBfTUFTSzIpCi0jZGVmaW5lIENGR19XQVRDSERPR19GTEFHU19BRERSCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgR1BUMF9NQVNLMSkKLSNkZWZpbmUgQ0ZHX0RTUElDX1RFU1RfQUREUglDRkdfV0FUQ0hET0dfRkxBR1NfQUREUgotI2RlZmluZSBDRkdfT0NNX1NUQVRVU19BRERSCUNGR19XQVRDSERPR19GTEFHU19BRERSCi0jZGVmaW5lIENGR19XQVRDSERPR19NQUdJQwkweDEyNDgwMDAwCi0jZGVmaW5lIENGR19XQVRDSERPR19NQUdJQ19NQVNLCTB4RkZGRjAwMDAKLSNkZWZpbmUgQ0ZHX0RTUElDX1RFU1RfTUFTSwkweDAwMDAwMDAxCi0jZGVmaW5lIENGR19PQ01fU1RBVFVTX09LCTB4MDAwMDlBMDAKLSNkZWZpbmUgQ0ZHX09DTV9TVEFUVVNfRkFJTAkweDAwMDBBMzAwCi0jZGVmaW5lIENGR19PQ01fU1RBVFVTX01BU0sJMHgwMDAwRkYwMAorI2RlZmluZSBDT05GSUdfU1lTX1dBVENIRE9HX1RJTUVfQUREUgkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyBHUFQwX01BU0syKQorI2RlZmluZSBDT05GSUdfU1lTX1dBVENIRE9HX0ZMQUdTX0FERFIJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgR1BUMF9NQVNLMSkKKyNkZWZpbmUgQ09ORklHX1NZU19EU1BJQ19URVNUX0FERFIJQ09ORklHX1NZU19XQVRDSERPR19GTEFHU19BRERSCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX1NUQVRVU19BRERSCUNPTkZJR19TWVNfV0FUQ0hET0dfRkxBR1NfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX1dBVENIRE9HX01BR0lDCTB4MTI0ODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19XQVRDSERPR19NQUdJQ19NQVNLCTB4RkZGRjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EU1BJQ19URVNUX01BU0sJMHgwMDAwMDAwMQorI2RlZmluZSBDT05GSUdfU1lTX09DTV9TVEFUVVNfT0sJMHgwMDAwOUEwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9TVEFUVVNfRkFJTAkweDAwMDBBMzAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX1NUQVRVU19NQVNLCTB4MDAwMEZGMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIFBvcnQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jdW5kZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJCS8qIG5vIGV4dGVybmFsIGNsb2NrIHByb3ZpZGVkCSovCisjdW5kZWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCQkvKiBubyBleHRlcm5hbCBjbG9jayBwcm92aWRlZAkqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogI2RlZmluZSBDT05GSUdfU0VSSUFMX01VTFRJICAgICAxCiAvKiBkZWZpbmUgdGhpcyBpZiB5b3Ugd2FudCBjb25zb2xlIG9uIFVBUlQxICovCiAjZGVmaW5lIENPTkZJR19VQVJUMV9DT05TT0xFCTEJLyogdXNlIFVBUlQxIGFzIGNvbnNvbGUJCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCQkJCQkJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCQkJCQkJXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMjMsMjcgKzEyMywyNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMAkJMHhGQzAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gxCQkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIMSwgQ0ZHX0ZMQVNIMCB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwCQkweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxCQkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0gxLCBDT05GSUdfU1lTX0ZMQVNIMCB9CiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCS8qIHVzZSBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCS8qIHVzZSBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoCSovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKCgtQ0ZHX01PTklUT1JfTEVOKS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoKC1DT05GSUdfU1lTX01PTklUT1JfTEVOKS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDIwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xNTMsMzIgKzE1MywzMiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRERSIFNEUkFNCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUJZVEVTX1NEUkFNCSgyNTYpCQkvKiAyNTZNQgkJCSovCi0jZGVmaW5lIENGR19ERFJfQ0FDSEVEX0FERFIJMHg0MDAwMDAwMAkvKiBzZXR1cCAybmQgVExCIGNhY2hlZCBoZXJlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUJZVEVTX1NEUkFNCSgyNTYpCQkvKiAyNTZNQgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NBQ0hFRF9BRERSCTB4NDAwMDAwMDAJLyogc2V0dXAgMm5kIFRMQiBjYWNoZWQgaGVyZQkqLwogI2RlZmluZSBDT05GSUdfRERSX0RBVEFfRVlFCTEJCS8qIHVzZSBERFIyIG9wdGltaXphdGlvbgkqLwogI2RlZmluZSBDT05GSUdfRERSX0VDQwkJMQkJLyogZW5hYmxlIEVDQwkJCSovCi0jZGVmaW5lIENGR19QT1NUX0VDQ19PTgkJQ0ZHX1BPU1RfRUNDCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9FQ0NfT04JCUNPTkZJR19TWVNfUE9TVF9FQ0MKIAogLyogUE9TVCBzdXBwb3J0ICovCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfQ0FDSEUgICAgfCBcCi0JCQkJIENGR19QT1NUX0NQVQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfRUNDX09OICAgfCBcCi0JCQkJIENGR19QT1NUX0VUSEVSCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9GUFUJICAgfCBcCi0JCQkJIENGR19QT1NUX0kyQwkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfTUVNT1JZICAgfCBcCi0JCQkJIENGR19QT1NUX09DTSAgICAgIHwgXAotCQkJCSBDRkdfUE9TVF9SVEMgICAgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfU1BSICAgICAgfCBcCi0JCQkJIENGR19QT1NUX1VBUlQgICAgIHwgXAotCQkJCSBDRkdfUE9TVF9TWVNNT04gICB8IFwKLQkJCQkgQ0ZHX1BPU1RfV0FUQ0hET0cgfCBcCi0JCQkJIENGR19QT1NUX0RTUCAgICAgIHwgXAotCQkJCSBDRkdfUE9TVF9CU1BFQzEgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfQlNQRUMyICAgfCBcCi0JCQkJIENGR19QT1NUX0JTUEVDMyAgIHwgXAotCQkJCSBDRkdfUE9TVF9CU1BFQzQgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfQlNQRUM1KQorI2RlZmluZSBDT05GSUdfUE9TVAkJKENPTkZJR19TWVNfUE9TVF9DQUNIRSAgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NQVQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0VDQ19PTiAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRVRIRVIJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9GUFUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9JMkMJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9NRU1PUlkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX09DTSAgICAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfUlRDICAgICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9TUFIgICAgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1VBUlQgICAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfU1lTTU9OICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9XQVRDSERPRyB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0RTUCAgICAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQlNQRUMxICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9CU1BFQzIgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0JTUEVDMyAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQlNQRUM0ICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9CU1BFQzUpCiAKICNkZWZpbmUgQ09ORklHX1BPU1RfV0FUQ0hET0cgIHtcCiAJIldhdGNoZG9nIHRpbWVyIHRlc3QiLAkJCQlcCkBAIC0xODgsNyArMTg4LDcgQEAKIAkmbHdtb241X3dhdGNoZG9nX3Bvc3RfdGVzdCwJCQlcCiAJTlVMTCwJCQkJCQlcCiAJTlVMTCwJCQkJCQlcCi0JQ0ZHX1BPU1RfV0FUQ0hET0cJCQkJXAorCUNPTkZJR19TWVNfUE9TVF9XQVRDSERPRwkJCQlcCiAJfQogCiAjZGVmaW5lIENPTkZJR19QT1NUX0JTUEVDMSAgICB7XApAQCAtMTk5LDcgKzE5OSw3IEBACiAJJmRzcGljX2luaXRfcG9zdF90ZXN0LAkJCQlcCiAJTlVMTCwJCQkJCQlcCiAJTlVMTCwJCQkJCQlcCi0JQ0ZHX1BPU1RfQlNQRUMxCQkJCQlcCisJQ09ORklHX1NZU19QT1NUX0JTUEVDMQkJCQkJXAogCX0KIAogI2RlZmluZSBDT05GSUdfUE9TVF9CU1BFQzIgICAge1wKQEAgLTIxMCw3ICsyMTAsNyBAQAogCSZkc3BpY19wb3N0X3Rlc3QsCQkJCVwKIAlOVUxMLAkJCQkJCVwKIAlOVUxMLAkJCQkJCVwKLQlDRkdfUE9TVF9CU1BFQzIJCQkJCVwKKwlDT05GSUdfU1lTX1BPU1RfQlNQRUMyCQkJCQlcCiAJfQogCiAjZGVmaW5lIENPTkZJR19QT1NUX0JTUEVDMyAgICB7XApAQCAtMjIxLDcgKzIyMSw3IEBACiAJJmZwZ2FfcG9zdF90ZXN0LAkJCQlcCiAJTlVMTCwJCQkJCQlcCiAJTlVMTCwJCQkJCQlcCi0JQ0ZHX1BPU1RfQlNQRUMzCQkJCQlcCisJQ09ORklHX1NZU19QT1NUX0JTUEVDMwkJCQkJXAogCX0KIAogI2RlZmluZSBDT05GSUdfUE9TVF9CU1BFQzQgICAge1wKQEAgLTIzMiw3ICsyMzIsNyBAQAogCSZnZGNfcG9zdF90ZXN0LAkJCQkJXAogCU5VTEwsCQkJCQkJXAogCU5VTEwsCQkJCQkJXAotCUNGR19QT1NUX0JTUEVDNAkJCQkJXAorCUNPTkZJR19TWVNfUE9TVF9CU1BFQzQJCQkJCVwKIAl9CiAKICNkZWZpbmUgQ09ORklHX1BPU1RfQlNQRUM1ICAgIHtcCkBAIC0yNDMsMzUgKzI0MywzNSBAQAogCSZzeXNtb24xX3Bvc3RfdGVzdCwJCQkJXAogCU5VTEwsCQkJCQkJXAogCU5VTEwsCQkJCQkJXAotCUNGR19QT1NUX0JTUEVDNQkJCQkJXAorCUNPTkZJR19TWVNfUE9TVF9CU1BFQzUJCQkJCVwKIAl9CiAKLSNkZWZpbmUgQ0ZHX1BPU1RfQ0FDSEVfQUREUgkweDdmZmYwMDAwIC8qIGZyZWUgdmlydHVhbCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9DQUNIRV9BRERSCTB4N2ZmZjAwMDAgLyogZnJlZSB2aXJ0dWFsIGFkZHJlc3MJKi8KICNkZWZpbmUgQ09ORklHX0xPR0JVRkZFUgogLyogUmVzZXJ2ZSBHUFQwX0NPTVAxLUNPTVA1IGZvciBsb2didWZmZXIgaGVhZGVyICovCi0jZGVmaW5lIENPTkZJR19BTFRfTEhfQUREUgkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIEdQVDBfQ09NUDEpCi0jZGVmaW5lIENPTkZJR19BTFRfTEJfQUREUgkoQ0ZHX09DTV9CQVNFKQotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYgLyogT3RoZXJ3aXNlIGl0IGNhdGNoZXMgbG9nYnVmZmVyIGFzIG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfQUxUX0xIX0FERFIJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgR1BUMF9DT01QMSkKKyNkZWZpbmUgQ09ORklHX0FMVF9MQl9BRERSCShDT05GSUdfU1lTX09DTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WIC8qIE90aGVyd2lzZSBpdCBjYXRjaGVzIGxvZ2J1ZmZlciBhcyBvdXRwdXQgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUzCS8qIEVFUFJPTSBBVDI0QzEyOAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA2CS8qIFRoZSBBdG1lbCBBVDI0QzEyOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MwkvKiBFRVBST00gQVQyNEMxMjgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAyCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA2CS8qIFRoZSBBdG1lbCBBVDI0QzEyOCBoYXMJKi8KIAkJCQkJLyogNjQgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDYgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogI2RlZmluZSBDT05GSUdfUlRDX1BDRjg1NjMJMQkJLyogZW5hYmxlIFBoaWxpcHMgUENGODU2MyBSVEMJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDUxCQkvKiBQaGlsaXBzIFBDRjg1NjMgUlRDIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19LRVlCRF9BRERSCTB4NTYJCS8qIFBJQyBMV0Uga2V5Ym9hcmQJCSovCi0jZGVmaW5lIENGR19JMkNfRFNQSUNfSU9fQUREUgkweDU3CQkvKiBQSUMgSS9PIGFkZHIgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDUxCQkvKiBQaGlsaXBzIFBDRjg1NjMgUlRDIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfS0VZQkRfQUREUgkweDU2CQkvKiBQSUMgTFdFIGtleWJvYXJkCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19EU1BJQ19JT19BRERSCTB4NTcJCS8qIFBJQyBJL08gYWRkciAgICAgICAgICAgICAgICovCiAKICNkZWZpbmUJQ09ORklHX1BPU1RfS0VZX01BR0lDCSIzQyszRSIJLyogcHJlc3MgRjMgKyBGNSBrZXlzIHRvIGZvcmNlIFBPU1QgKi8KICNpZiAwCkBAIC0zMjQsNyArMzI0LDcgQEAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUJQ09ORklHX0lCTV9FTUFDNF9WNAkxCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwpAQCAtMzM0LDcgKzMzNCw3IEBACiAjZGVmaW5lIENPTkZJR19QSFlfUkVTRVRfREVMQVkJMzAwCiAKICNkZWZpbmUgQ09ORklHX0hBU19FVEgwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTMyCS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTMyCS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KIAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX0hBU19FVEgxCQkxCS8qIGFkZCBzdXBwb3J0IGZvciAiZXRoMWFkZHIiCSovCkBAIC00MTEsMzAgKzQxMSwzMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNkZWZpbmUgQ09ORklHX1NVUFBPUlRfVkZBVAogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSAgICAgICAgIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSAgICAgICAgIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkgICAgICAgIDEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgICAxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgICAgMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCSAgICAgICAgMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAgICAgICAgICAgICAgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkgICAgICAgIENGR19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAgICAgICAgICAgICAgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJICAgICAgICBDT05GSUdfU1lTX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwIC8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCiAjZGVmaW5lIENPTkZJR19MT09QVyAgICAgICAgICAgIDEgICAgICAgLyogZW5hYmxlIGxvb3B3IGNvbW1hbmQgICAgICAgICAqLwpAQCAtNDQ4LDE0ICs0NDgsMTQgQEAKICNkZWZpbmUgQ09ORklHX1BDSQkJCS8qIGluY2x1ZGUgcGNpIHN1cHBvcnQJICAgICAgICAqLwogI3VuZGVmIENPTkZJR19QQ0lfUE5QCQkJLyogZG8gKG5vdCkgcGNpIHBsdWctYW5kLXBsYXkgICAqLwogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdCQVNFICAgICAgICAweDgwMDAwMDAwIC8qIFBDSWFkZHIgbWFwcGVkIHRvIENGR19QQ0lfTUVNQkFTRSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdCQVNFICAgICAgICAweDgwMDAwMDAwIC8qIFBDSWFkZHIgbWFwcGVkIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UqLwogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAotI2RlZmluZSBDRkdfUENJX01BU1RFUl9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MJCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfSUQgICAgICAgMHhjYWZlCS8qIFdoYXRldmVyCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDCQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19JRCAgICAgICAweGNhZmUJLyogV2hhdGV2ZXIJCQkqLwogCiAjZGVmaW5lIENPTkZJR19IV19XQVRDSERPRwkxCS8qIFVzZSBleHRlcm5hbCBIVy1XYXRjaGRvZwkqLwogI2RlZmluZSBDT05GSUdfV0RfUEVSSU9ECTQwMDAwCS8qIGluIHVzZWMgKi8KQEAgLTQ2Niw3NCArNDY2LDc0IEBACiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNICQlDRkdfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNICQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAogLyogTWVtb3J5IEJhbmsgMCAoTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwMzA1MDIwMAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkoQ0ZHX0ZMQVNIIHwgMHhmYzAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDMwNTAyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShDT05GSUdfU1lTX0ZMQVNIIHwgMHhmYzAwMCkKIAogLyogTWVtb3J5IEJhbmsgMSAoTGltZSkgaW5pdGlhbGl6YXRpb24JCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDAxMDA0MzgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCShDRkdfTElNRV9CQVNFXzAgfCAweGRjMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHgwMTAwNDM4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJKENPTkZJR19TWVNfTElNRV9CQVNFXzAgfCAweGRjMDAwKQogCiAvKiBNZW1vcnkgQmFuayAyIChGUEdBKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDEwMDQ0MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJKENGR19GUEdBX0JBU0VfMCB8IDB4MWMwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAxMDA0NDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkoQ09ORklHX1NZU19GUEdBX0JBU0VfMCB8IDB4MWMwMDApCiAKIC8qIE1lbW9yeSBCYW5rIDMgKEZQR0EyKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDEwMDQ0MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJKENGR19GUEdBX0JBU0VfMSB8IDB4MWMwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDAxMDA0NDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkoQ09ORklHX1NZU19GUEdBX0JBU0VfMSB8IDB4MWMwMDApCiAKLSNkZWZpbmUgQ0ZHX0VCQ19DRkcJCTB4Yjg0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfQ0ZHCQkweGI4NDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEdyYXBoaWNzIChGdWppdHN1IExpbWUpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogU0RSQU0gQ2xvY2sgZnJlcXVlbmN5IGFkanVzdG1lbnQgcmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX0xJTUVfU0RSQU1fQ0xPQ0sJMHhDMUZDMDAzOAorI2RlZmluZSBDT05GSUdfU1lTX0xJTUVfU0RSQU1fQ0xPQ0sJMHhDMUZDMDAzOAogLyogTGltZSBDbG9jayBmcmVxdWVuY3kgaXMgdG8gc2V0IDEwME1IeiAqLwotI2RlZmluZSBDRkdfTElNRV9DTE9DS18xMDBNSFoJMHgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xJTUVfQ0xPQ0tfMTAwTUhaCTB4MDAwMDAKICNpZiAwCiAvKiBMaW1lIENsb2NrIGZyZXF1ZW5jeSBmb3IgMTMzTUh6ICovCi0jZGVmaW5lIENGR19MSU1FX0NMT0NLXzEzM01IWgkweDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTElNRV9DTE9DS18xMzNNSFoJMHgxMDAwMAogI2VuZGlmCiAKIC8qIFNEUkFNIFBhcmFtZXRlciByZWdpc3RlciAqLwotI2RlZmluZSBDRkdfTElNRV9NTVIJCTB4QzFGQ0ZGRkMKKyNkZWZpbmUgQ09ORklHX1NZU19MSU1FX01NUgkJMHhDMUZDRkZGQwogLyogU0RSQU0gcGFyYW1ldGVyIHZhbHVlOyB3YXMgMHg0MTRGQjdGMiwgY2F1c2VkIHNldmVyYWwgdmVydGljYWwgYmFycwogICAgYW5kIHBpeGVsIGZsYXJlIG9uIGRpc3BsYXkgd2hlbiAxMzNNSHogd2FzIGNvbmZpZ3VyZWQuIEFjY29yZGluZyB0bwogICAgU0RSQU0gY2hpcCBkYXRhc2hlZXQgQ0FTIExhdGVuY3kgaXMgMyBmb3IgMTMzTUh6IGFuZCAtNzUgU3BlZWQgR3JhZGUgKi8KLSNpZmRlZiBDRkdfTElNRV9DTE9DS18xMzNNSFoKLSNkZWZpbmUgQ0ZHX0xJTUVfTU1SX1ZBTFVFCTB4NDE0RkI3RjMKKyNpZmRlZiBDT05GSUdfU1lTX0xJTUVfQ0xPQ0tfMTMzTUhaCisjZGVmaW5lIENPTkZJR19TWVNfTElNRV9NTVJfVkFMVUUJMHg0MTRGQjdGMwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0xJTUVfTU1SX1ZBTFVFCTB4NDE0RkI3RjIKKyNkZWZpbmUgQ09ORklHX1NZU19MSU1FX01NUl9WQUxVRQkweDQxNEZCN0YyCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogR1BJTyBTZXR1cAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fUEhZMV9SU1QJMTIKLSNkZWZpbmUgQ0ZHX0dQSU9fRkxBU0hfV1AJMTQKLSNkZWZpbmUgQ0ZHX0dQSU9fUEhZMF9SU1QJMjIKLSNkZWZpbmUgQ0ZHX0dQSU9fRFNQSUNfUkVBRFkJNTEKLSNkZWZpbmUgQ0ZHX0dQSU9fRUVQUk9NX0VYVF9XUAk1NQotI2RlZmluZSBDRkdfR1BJT19ISUdIU0lERQk1NgotI2RlZmluZSBDRkdfR1BJT19FRVBST01fSU5UX1dQCTU3Ci0jZGVmaW5lIENGR19HUElPX0JPQVJEX1JFU0VUCTU4Ci0jZGVmaW5lIENGR19HUElPX0xJTUVfUwkJNTkKLSNkZWZpbmUgQ0ZHX0dQSU9fTElNRV9SU1QJNjAKLSNkZWZpbmUgQ0ZHX0dQSU9fU1lTTU9OX1NUQVRVUwk2MgotI2RlZmluZSBDRkdfR1BJT19XQVRDSERPRwk2MworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUEhZMV9SU1QJMTIKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0ZMQVNIX1dQCTE0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19QSFkwX1JTVAkyMgorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fRFNQSUNfUkVBRFkJNTEKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0VFUFJPTV9FWFRfV1AJNTUKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0hJR0hTSURFCTU2CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19FRVBST01fSU5UX1dQCTU3CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19CT0FSRF9SRVNFVAk1OAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fTElNRV9TCQk1OQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fTElNRV9SU1QJNjAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1NZU01PTl9TVEFUVVMJNjIKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1dBVENIRE9HCTYzCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBQQzQ0MCBHUElPIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfNHh4X0dQSU9fVEFCTEUgeyAvKgkgIE91dAkJICBHUElPCUFsdGVybmF0ZTEJQWx0ZXJuYXRlMglBbHRlcm5hdGUzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU180eHhfR1BJT19UQUJMRSB7IC8qCSAgT3V0CQkgIEdQSU8JQWx0ZXJuYXRlMQlBbHRlcm5hdGUyCUFsdGVybmF0ZTMgKi8gXAogewkJCQkJCQkJCQkJXAogLyogR1BJTyBDb3JlIDAgKi8JCQkJCQkJCQlcCiB7R1BJTzBfQkFTRSwgR1BJT19PVVQsIEdQSU9fQUxUMSwgR1BJT19PVVRfMH0sIC8qIEdQSU8wCUVCQ19BRERSKDcpCURNQV9SRVEoMikJKi8JXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL201MDFzay5oIGIvaW5jbHVkZS9jb25maWdzL201MDFzay5oCmluZGV4IDMyNDAzZjcuLmYwOTIxNGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9tNTAxc2suaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbTUwMXNrLmgKQEAgLTQ1LDMxICs0NSwzMSBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBCeXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIEJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCQkxMTUyMDAKIAogLyogSGFyZGNvZGUgc28gbm8gX19kaXZzaTMgOiBBVDkxQ19NQVNURVJfQ0xPQ0sgLyBiYXVkcmF0ZSAvIDE2ICovCi0jZGVmaW5lIENGR19BVDkxQ19CUkdSX0RJVklTT1IJMzMKKyNkZWZpbmUgQ09ORklHX1NZU19BVDkxQ19CUkdSX0RJVklTT1IJMzMKIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkvKmZvciBJbnRlbCBQMzAgRmxhc2gqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCS8qZm9yIEludGVsIFAzMCBGbGFzaCovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQKICN1bmRlZiBDT05GSUdfRU5WX0lTX0lOX0VFUFJPTQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMQotI2RlZmluZSBDRkdfRUVQUk9NX0FUMjRDMTYKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkJMHgzMgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX0FUMjRDMTYKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJCTB4MzIKICN1bmRlZiBDT05GSUdfUlRDX0RTMTMzOAogI2RlZmluZSBDT05GSUdfUlRDX1JTNUMzNzJBCiAjdW5kZWYgQ09ORklHX1BPU1QKQEAgLTEyMywxMSArMTIzLDExIEBACiAjZGVmaW5lIENPTkZJR19DTURfRkxBU0gKICNkZWZpbmUgQ09ORklHX0NNRF9FTlYKIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURQotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSAgICAiPj4iCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSAgICAiPj4iCiAKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkwIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTAgLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KICNkZWZpbmUgU0VDVE9SU0laRQkJCSAgICAgNTEyCiAKICNkZWZpbmUgQUREUl9DT0xVTU4JCTEKQEAgLTEzOCw5ICsxMzgsOSBAQAogI2RlZmluZSBQSFlTX1NEUkFNCQkweDIwMDAwMDAwCiAjZGVmaW5lIFBIWVNfU0RSQU1fU0laRQkweDIwMDAwMDAgLyogMzIgbWVncyAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MjEwMDAwMDAgLyogUEhZU19TRFJBTSAqLwotLyogQ0ZHX01FTVRFU1RfU1RBUlQgKyBQSFlTX1NEUkFNX1NJWkUgLSAyNjIxNDQgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MjEwMDAwMDAgLyogUEhZU19TRFJBTSAqLworLyogQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICsgUEhZU19TRFJBTV9TSVpFIC0gMjYyMTQ0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJMHgwMDEwMDAwMAogCiAjZGVmaW5lIENPTkZJR19EUklWRVJfRVRIRVIKICNkZWZpbmUgQ09ORklHX05FVF9SRVRSWV9DT1VOVAkyMApAQCAtMTQ4LDE1ICsxNDgsMTUgQEAKIAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCTB4MTAwMDAwMDAKICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCTB4ODAwMDAwIC8qIDggbWVncyBtYWluIGZsYXNoICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9EQVRBRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MjAwMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIENPTkZJR19FTlZfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIENPTkZJR19FTlZfT0ZGU0VUKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2Vsc2UKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSApAQCAtMTY5LDIzICsxNjksMjMgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkxMDI0CiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIxMDAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDIxMDAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKIC8qIHVzZSBmb3IgcHJvdGVjdCBmbGFzaCBzZWN0b3JzICovCi0jZGVmaW5lIENGR19CT09UX1NJWkUJCTB4NjAwMCAvKiAyNCBLQnl0ZXMgKi8KLSNkZWZpbmUgQ0ZHX1VfQk9PVF9CQVNFCShQSFlTX0ZMQVNIXzEgKyAweDEwMDAwKQotI2RlZmluZSBDRkdfVV9CT09UX1NJWkUJMHgxMDAwMCAvKiA2NCBLQnl0ZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX1NJWkUJCTB4NjAwMCAvKiAyNCBLQnl0ZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VX0JPT1RfQkFTRQkoUEhZU19GTEFTSF8xICsgMHgxMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VX0JPT1RfU0laRQkweDEwMDAwIC8qIDY0IEtCeXRlcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDk2MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwICwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgOTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIlUtQm9vdD4gIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lIENGR19DQlNJWkUJCTUxMiAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJVLUJvb3Q+ICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJNTEyIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQogCi0jZGVmaW5lIENGR19IWiAxMDAwCi0jZGVmaW5lIENGR19IWl9DTE9DSwkJQVQ5MUNfTUFTVEVSX0NMT0NLLzIKKyNkZWZpbmUgQ09ORklHX1NZU19IWiAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFpfQ0xPQ0sJCUFUOTFDX01BU1RFUl9DTE9DSy8yCiAKICNkZWZpbmUgQ09ORklHX1NUQUNLU0laRQkoMzIqMTAyNCkgLyogcmVndWxhciBzdGFjayAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbWFrYWx1LmggYi9pbmNsdWRlL2NvbmZpZ3MvbWFrYWx1LmgKaW5kZXggYjdkZGRiNy4uNTIzMzlmOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL21ha2FsdS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9tYWthbHUuaApAQCAtNTMsOSArNTMsOSBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZDMDAwMDAwCi0jZGVmaW5lIENGR19GUEdBX0JBU0UJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRQkweEVGNjAwMDAwICAgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0UJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UJMHhFRjYwMDAwMCAgICAgIC8qIGludGVybmFsIHBlcmlwaGVyYWxzKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBTdGFjayBQb2ludGVyIENvbmZpZ3VyYXRpb24gT3B0aW9ucwpAQCAtNzEsMjUgKzcxLDI1IEBACiAgKiAgIHRoZSBsYXR0ZXIgb2Ygd2hpY2ggaXMgbGVzcyB0aGFuIGRlc2lyZWFibGUgc2luY2UgaXQgcmVxdWlyZXMKICAqICAgc2V0dGluZyB1cCB0aGUgU0RSQU0gYW5kIEVDQyBpbiBhc3NlbWJseSBjb2RlLgogICoKLSAqICAgVG8gdXNlICgyKSwgZGVmaW5lICdDRkdfSU5JVF9EQ0FDSEVfQ1MnIHRvIGJlIGFuIHVudXNlZCBjaGlwCisgKiAgIFRvIHVzZSAoMiksIGRlZmluZSAnQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUycgdG8gYmUgYW4gdW51c2VkIGNoaXAKICAqICAgc2VsZWN0IG9uIHRoZSBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBhbmQgdGhlbiBzZWxlY3QgYQotICogICB2YWx1ZSBmb3IgJ0NGR19JTklUX1JBTV9BRERSJyBvdXRzaWRlIG9mIHRoZSByYW5nZSBvZiB2YWxpZCwKLSAqICAgcGh5c2ljYWwgU0RSQU0uIE90aGVyd2lzZSwgdW5kZWZpbmUgJ0NGR19JTklUX0RDQUNIRV9DUycgYW5kCi0gKiAgIHNlbGVjdCBhIHZhbHVlIGZvciAnQ0ZHX0lOSVRfUkFNX0FERFInIHdpdGhpbiB0aGUgcmFuZ2Ugb2YgdmFsaWQsCisgKiAgIHZhbHVlIGZvciAnQ09ORklHX1NZU19JTklUX1JBTV9BRERSJyBvdXRzaWRlIG9mIHRoZSByYW5nZSBvZiB2YWxpZCwKKyAqICAgcGh5c2ljYWwgU0RSQU0uIE90aGVyd2lzZSwgdW5kZWZpbmUgJ0NPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MnIGFuZAorICogICBzZWxlY3QgYSB2YWx1ZSBmb3IgJ0NPTkZJR19TWVNfSU5JVF9SQU1fQUREUicgd2l0aGluIHRoZSByYW5nZSBvZiB2YWxpZCwKICAqICAgcGh5c2ljYWwgU0RSQU0gdG8gdXNlICgzKS4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jZGVmaW5lIENGR19JTklUX0RDQUNIRV9DUwk0CisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MJNAogCi0jaWYgZGVmaW5lZChDRkdfSU5JVF9EQ0FDSEVfQ1MpCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCShDRkdfU0RSQU1fQkFTRSArICggMSA8PCAzMCkpCS8qICAxIEdpQiAqLworI2lmIGRlZmluZWQoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUykKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoIDEgPDwgMzApKQkvKiAgMSBHaUIgKi8KICNlbHNlCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCShDRkdfU0RSQU1fQkFTRSArICgzMiA8PCAyMCkpCS8qIDMyIE1pQiAqLwotI2VuZGlmIC8qIGRlZmluZWQoQ0ZHX0lOSVRfRENBQ0hFX0NTKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArICgzMiA8PCAyMCkpCS8qIDMyIE1pQiAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUykgKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgICAoNCA8PCAxMCkJCQkvKiAgNCBLaUIgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMjU2CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgICAgICg0IDw8IDEwKQkJCS8qICA0IEtpQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogLyoKICAqIElmIHRoZSBkYXRhIGNhY2hlIGlzIGJlaW5nIHVzZWQgZm9yIHRoZSBwcmltb3JkaWFsIHN0YWNrIGFuZCBnbG9iYWwKQEAgLTk5LDIwICs5OSwyMCBAQAogICogZm9yIHRoZSBQT1NUIHdvcmQuCiAgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0lOSVRfRENBQ0hFX0NTKQotIyBkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKLSMgZGVmaW5lIENGR19QT1NUX0FMVF9XT1JEX0FERFIJKENGR19QRVJJUEhFUkFMX0JBU0UgKyBHUFQwX0NPTVA2KQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUykKKyMgZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKKyMgZGVmaW5lIENPTkZJR19TWVNfUE9TVF9BTFRfV09SRF9BRERSCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIEdQVDBfQ09NUDYpCiAjZWxzZQotIyBkZWZpbmUgQ0ZHX0lOSVRfRVhUUkFfU0laRQkxNgotIyBkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gQ0ZHX0lOSVRfRVhUUkFfU0laRSkKLSMgZGVmaW5lIENGR19QT1NUX1dPUkRfQUREUgkoQ0ZHX0dCTF9EQVRBX09GRlNFVCAtIDQpCi0jIGRlZmluZSBDRkdfT0NNX0RBVEFfQUREUglDRkdfSU5JVF9SQU1fQUREUgotI2VuZGlmIC8qIGRlZmluZWQoQ0ZHX0lOSVRfRENBQ0hFX0NTKSAqLworIyBkZWZpbmUgQ09ORklHX1NZU19JTklUX0VYVFJBX1NJWkUJMTYKKyMgZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gQ09ORklHX1NZU19JTklUX0VYVFJBX1NJWkUpCisjIGRlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDQpCisjIGRlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJQ09ORklHX1NZU19JTklUX1JBTV9BRERSCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTKSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSN1bmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSwkJCS8qIG5vIGV4dC4gY2xrCQkqLworI3VuZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkJCS8qIG5vIGV4dC4gY2xrCQkqLwogLyogZGVmaW5lIHRoaXMgaWYgeW91IHdhbnQgY29uc29sZSBvbiBVQVJUMSAqLwogI3VuZGVmIENPTkZJR19VQVJUMV9DT05TT0xFCiAKQEAgLTEyNCwyMiArMTI0LDIyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCByZWxhdGVkCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVCAgICB7Q0ZHX0ZMQVNIX0JBU0V9Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUICAgIHtDT05GSUdfU1lTX0ZMQVNIX0JBU0V9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHg0MDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTUwLDczICsxNTAsNzMgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEREUiBTRFJBTQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01CWVRFU19TRFJBTSAgICAgICAgKDI1NikJCS8qIDI1Nk1CCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQllURVNfU0RSQU0gICAgICAgICgyNTYpCQkvKiAyNTZNQgkJCSovCiAKLSNkZWZpbmUJQ0ZHX1NEUkFNMF9NQjBDRl9CQVNFCSgoICAwIDw8IDIwKSArIENGR19TRFJBTV9CQVNFKQotI2RlZmluZQlDRkdfU0RSQU0wX01CMUNGX0JBU0UJKCgxMjggPDwgMjApICsgQ0ZHX1NEUkFNX0JBU0UpCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU0wX01CMENGX0JBU0UJKCggIDAgPDwgMjApICsgQ09ORklHX1NZU19TRFJBTV9CQVNFKQorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNMF9NQjFDRl9CQVNFCSgoMTI4IDw8IDIwKSArIENPTkZJR19TWVNfU0RSQU1fQkFTRSkKIAogLyogRERSMS8yIFNEUkFNIERldmljZSBDb250cm9sIFJlZ2lzdGVyIERhdGEgVmFsdWVzICovCi0jZGVmaW5lIENGR19TRFJBTTBfTUIwQ0YJKChDRkdfU0RSQU0wX01CMENGX0JBU0UgPj4gMykJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX01CMENGCSgoQ09ORklHX1NZU19TRFJBTTBfTUIwQ0ZfQkFTRSA+PiAzKQl8IFwKIAkJCQkgU0RSQU1fUlhCQVNfU0RTWl8xMjhNQiAJfCBcCiAJCQkJIFNEUkFNX1JYQkFTX1NEQU1fTU9ERTIgCXwgXAogCQkJCSBTRFJBTV9SWEJBU19TREJFX0VOQUJMRSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9NQjFDRgkoKENGR19TRFJBTTBfTUIxQ0ZfQkFTRSA+PiAzKQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfTUIxQ0YJKChDT05GSUdfU1lTX1NEUkFNMF9NQjFDRl9CQVNFID4+IDMpCXwgXAogCQkJCSBTRFJBTV9SWEJBU19TRFNaXzEyOE1CIAl8IFwKIAkJCQkgU0RSQU1fUlhCQVNfU0RBTV9NT0RFMiAJfCBcCiAJCQkJIFNEUkFNX1JYQkFTX1NEQkVfRU5BQkxFKQotI2RlZmluZSBDRkdfU0RSQU0wX01CMkNGCVNEUkFNX1JYQkFTX1NEQkVfRElTQUJMRQotI2RlZmluZSBDRkdfU0RSQU0wX01CM0NGCVNEUkFNX1JYQkFTX1NEQkVfRElTQUJMRQotI2RlZmluZSBDRkdfU0RSQU0wX01DT1BUMQkweDA0MzIyMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfTUNPUFQyCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9NT0RUMAkweDAxODAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfTU9EVDEJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0wX0NPRFQJCTB4MDA4MGY4MzcKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9SVFIJCTB4MDYxODAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSMAkweGE4MzgwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjEJMHg4MTkwMDQwMAotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIyCTB4ODEwMjAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSMwkweDgxMDMwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjQJMHg4MTAxMDQwNAotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFI1CTB4ODEwMDA1NDIKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSNgkweDgxOTAwNDAwCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjcJMHg4RDA4MDAwMAotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFI4CTB4OEQwODAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSOQkweDhEMDgwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjEwCTB4OEQwODAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSMTEJMHg4MTAwMDQ0MgotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIxMgkweDgxMDEwNzgwCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjEzCTB4ODEwMTA0MDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSMTQJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIxNQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfUlFEQwkJMHg4MDAwMDAzOAotI2RlZmluZSBDRkdfU0RSQU0wX1JGREMJCTB4MDAwMDAyMDkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9SRENDCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfRExDUgkJMHgwMzAwMDBhNQotI2RlZmluZSBDRkdfU0RSQU0wX0NMS1RSCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9XUkRUUgkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfU0RUUjEJMHg4MDIwMTAwMAotI2RlZmluZSBDRkdfU0RSQU0wX1NEVFIyCTB4MzIyMDQyMzIKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9TRFRSMwkweDA4MGIwZDFhCi0jZGVmaW5lIENGR19TRFJBTTBfTU1PREUJMHgwMDAwMDQ0MgotI2RlZmluZSBDRkdfU0RSQU0wX01FTU9ERQkweDAwMDAwNDA0CisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX01CMkNGCVNEUkFNX1JYQkFTX1NEQkVfRElTQUJMRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9NQjNDRglTRFJBTV9SWEJBU19TREJFX0RJU0FCTEUKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfTUNPUFQxCTB4MDQzMjIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfTUNPUFQyCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfTU9EVDAJMHgwMTgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9NT0RUMQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0NPRFQJCTB4MDA4MGY4MzcKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfUlRSCQkweDA2MTgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFIwCTB4YTgzODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjEJMHg4MTkwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMgkweDgxMDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFIzCTB4ODEwMzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjQJMHg4MTAxMDQwNAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSNQkweDgxMDAwNTQyCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFI2CTB4ODE5MDA0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjcJMHg4RDA4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSOAkweDhEMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFI5CTB4OEQwODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjEwCTB4OEQwODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjExCTB4ODEwMDA0NDIKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjEyCTB4ODEwMTA3ODAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjEzCTB4ODEwMTA0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjE0CTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjE1CTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfUlFEQwkJMHg4MDAwMDAzOAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9SRkRDCQkweDAwMDAwMjA5CisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX1JEQ0MJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfRExDUgkJMHgwMzAwMDBhNQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9DTEtUUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX1dSRFRSCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfU0RUUjEJMHg4MDIwMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9TRFRSMgkweDMyMjA0MjMyCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX1NEVFIzCTB4MDgwYjBkMWEKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfTU1PREUJMHgwMDAwMDQ0MgorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9NRU1PREUJMHgwMDAwMDQwNAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNgkvKiAyNEMwMiByZXF1aXJlcyA1bXMgZGVsYXkgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUyCS8qIEkyQyBib290IEVFUFJPTSAoMjRDMDJCTikJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTYJLyogMjRDMDIgcmVxdWlyZXMgNW1zIGRlbGF5ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTIJLyogSTJDIGJvb3QgRUVQUk9NICgyNEMwMkJOKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogCiAvKiBTdGFuZGFyZCBEVFQgc2Vuc29yIGNvbmZpZ3VyYXRpb24gKi8KICNkZWZpbmUgQ09ORklHX0RUVF9EUzE3NzUJMQogI2RlZmluZSBDT05GSUdfRFRUX1NFTlNPUlMJeyAwIH0KLSNkZWZpbmUgQ0ZHX0kyQ19EVFRfQUREUgkweDQ4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0RUVF9BRERSCTB4NDgKIAogLyogUlRDIGNvbmZpZ3VyYXRpb24gKi8KICNkZWZpbmUgQ09ORklHX1JUQ19YMTIwNQkxCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2ZgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDZmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV0aGVybmV0CkBAIC0yNTksMjAgKzI1OSwyMCBAQAogI2RlZmluZSBDT05GSUdfQ01EX1NOVFAKIAogLyogUE9TVCBzdXBwb3J0ICovCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfQ0FDSEUJCXwgXAotCQkJCSBDRkdfUE9TVF9DUFUJCXwgXAotCQkJCSBDRkdfUE9TVF9FVEhFUgkJfCBcCi0JCQkJIENGR19QT1NUX0kyQwkJfCBcCi0JCQkJIENGR19QT1NUX01FTU9SWQl8IFwKLQkJCQkgQ0ZHX1BPU1RfVUFSVCkKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfQ0FDSEUJCXwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ1BVCQl8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0VUSEVSCQl8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0kyQwkJfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9NRU1PUlkJfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9VQVJUKQogCiAvKiBEZWZpbmUgaGVyZSB0aGUgYmFzZS1hZGRyZXNzZXMgb2YgdGhlIFVBUlRzIHRvIHRlc3QgaW4gUE9TVCAqLwotI2RlZmluZSBDRkdfUE9TVF9VQVJUX1RBQkxFCXtVQVJUMF9CQVNFLCBVQVJUMV9CQVNFfQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfVUFSVF9UQUJMRQl7VUFSVDBfQkFTRSwgVUFSVDFfQkFTRX0KIAogI2RlZmluZSBDT05GSUdfTE9HQlVGRkVSCi0jZGVmaW5lIENGR19QT1NUX0NBQ0hFX0FERFIJMHgwMDgwMDAwMCAvKiBmcmVlIHZpcnR1YWwgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfQ0FDSEVfQUREUgkweDAwODAwMDAwIC8qIGZyZWUgdmlydHVhbCBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WIC8qIE90aGVyd2lzZSBpdCBjYXRjaGVzIGxvZ2J1ZmZlciBhcyBvdXRwdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOViAvKiBPdGhlcndpc2UgaXQgY2F0Y2hlcyBsb2didWZmZXIgYXMgb3V0cHV0ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMjg1LDQwICsyODUsNDAgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSWUgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19QQ0lFX01FTUJBU0UJMHg5MDAwMDAwMAkvKiBtYXBwZWQgUENJZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BDSUVfTUVNU0laRQkweDA4MDAwMDAwICAgICAgLyogMTI4IE1lZywgc21hbGxlc3QgaW5jciBwZXIgcG9ydCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfTUVNQkFTRQkweDkwMDAwMDAwCS8qIG1hcHBlZCBQQ0llIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfTUVNU0laRQkweDA4MDAwMDAwICAgICAgLyogMTI4IE1lZywgc21hbGxlc3QgaW5jciBwZXIgcG9ydCAqLwogCi0jZGVmaW5lCUNGR19QQ0lFMF9DRkdCQVNFCTB4YTAwMDAwMDAgICAgICAvKiByZW1vdGUgYWNjZXNzICovCi0jZGVmaW5lCUNGR19QQ0lFMF9YQ0ZHQkFTRQkweGIwMDAwMDAwICAgICAgLyogbG9jYWwgYWNjZXNzICovCi0jZGVmaW5lCUNGR19QQ0lFMF9DRkdNQVNLCTB4ZTAwMDAwMDEgICAgICAvKiA1MTIgTWVnICovCisjZGVmaW5lCUNPTkZJR19TWVNfUENJRTBfQ0ZHQkFTRQkweGEwMDAwMDAwICAgICAgLyogcmVtb3RlIGFjY2VzcyAqLworI2RlZmluZQlDT05GSUdfU1lTX1BDSUUwX1hDRkdCQVNFCTB4YjAwMDAwMDAgICAgICAvKiBsb2NhbCBhY2Nlc3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQ0lFMF9DRkdNQVNLCTB4ZTAwMDAwMDEgICAgICAvKiA1MTIgTWVnICovCiAKLSNkZWZpbmUJQ0ZHX1BDSUUxX0NGR0JBU0UJMHhjMDAwMDAwMCAgICAgIC8qIHJlbW90ZSBhY2Nlc3MgKi8KLSNkZWZpbmUJQ0ZHX1BDSUUxX1hDRkdCQVNFCTB4ZDAwMDAwMDAgICAgICAvKiBsb2NhbCBhY2Nlc3MgKi8KLSNkZWZpbmUJQ0ZHX1BDSUUxX0NGR01BU0sJMHhlMDAwMDAwMSAgICAgIC8qIDUxMiBNZWcgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQ0lFMV9DRkdCQVNFCTB4YzAwMDAwMDAgICAgICAvKiByZW1vdGUgYWNjZXNzICovCisjZGVmaW5lCUNPTkZJR19TWVNfUENJRTFfWENGR0JBU0UJMHhkMDAwMDAwMCAgICAgIC8qIGxvY2FsIGFjY2VzcyAqLworI2RlZmluZQlDT05GSUdfU1lTX1BDSUUxX0NGR01BU0sJMHhlMDAwMDAwMSAgICAgIC8qIDUxMiBNZWcgKi8KIAotI2RlZmluZQlDRkdfUENJRTBfVVRMQkFTRQkweGVmNTAyMDAwCi0jZGVmaW5lCUNGR19QQ0lFMV9VVExCQVNFCTB4ZWY1MDMwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19QQ0lFMF9VVExCQVNFCTB4ZWY1MDIwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19QQ0lFMV9VVExCQVNFCTB4ZWY1MDMwMDAKIAogLyogYmFzZSBhZGRyZXNzIG9mIGluYm91bmQgUENJZSB3aW5kb3cgKi8KLSNkZWZpbmUgQ0ZHX1BDSUVfSU5CT1VORF9CQVNFCTB4MDAwMDAwMDAwMDAwMDAwMFVMTAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfSU5CT1VORF9CQVNFCTB4MDAwMDAwMDAwMDAwMDAwMFVMTAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qIE1lbW9yeSBCYW5rIDAgKE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4MDgwMzM3MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJKENGR19GTEFTSF9CQVNFIHwgMHhkYTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDgwMzM3MDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCAweGRhMDAwKQogCiAvKiBNZW1vcnkgQmFuayAyIChDUExEKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAgICAgICAgICAgIDB4OTQwMEM4MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUiAgICAgICAgICAgMHhGMDAxODAwMCAvKiAgQkFTPTB4ODAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUCAgICAgICAgICAgMHg5NDAwQzgwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUiAgICAgICAgICAgMHhGMDAxODAwMCAvKiAgQkFTPTB4ODAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCi0jZGVmaW5lIENGR19FQkNfQ0ZHCQkweDdGQzAwMDAwIC8qICBFQkMwX0NGRyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19DRkcJCTB4N0ZDMDAwMDAgLyogIEVCQzBfQ0ZHICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEdQSU8gU2V0dXAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR180eHhfR1BJT19UQUJMRSB7IC8qCSAgT3V0CQkgIEdQSU8JQWx0ZXJuYXRlMQlBbHRlcm5hdGUyCUFsdGVybmF0ZTMgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTXzR4eF9HUElPX1RBQkxFIHsgLyoJICBPdXQJCSAgR1BJTwlBbHRlcm5hdGUxCUFsdGVybmF0ZTIJQWx0ZXJuYXRlMyAqLyBcCiB7CQkJCQkJCQkJCQlcCiAvKiBHUElPIENvcmUgMCAqLwkJCQkJCQkJCVwKIHtHUElPMF9CQVNFLCBHUElPX0lOLCAgR1BJT19TRUwsICBHUElPX09VVF8wfSwgLyogR1BJTzAJRUJDX0RBVEFfUEFSKDApCQkJKi8JXApAQCAtMzU2LDggKzM1Niw4IEBACiB9CQkJCQkJCQkJCQkJXAogfQogCi0jZGVmaW5lIENGR19HUElPX1BDSUVfUlNUCTIzCi0jZGVmaW5lIENGR19HUElPX1BDSUVfQ0xLUkVRCTI3Ci0jZGVmaW5lIENGR19HUElPX1BDSUVfV0FLRQkyOAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUENJRV9SU1QJMjMKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BDSUVfQ0xLUkVRCTI3CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19QQ0lFX1dBS0UJMjgKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9tY2MyMDAuaCBiL2luY2x1ZGUvY29uZmlncy9tY2MyMDAuaAppbmRleCBjM2E2MDBlLi5lNjRjYzM3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbWNjMjAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL21jYzIwMC5oCkBAIC0zMyw3ICszMyw3IEBACiAjZGVmaW5lIENPTkZJR19NUEM1eHh4CQkxCS8qIFRoaXMgaXMgYW4gTVBDNXh4eCBDUFUJCSovCiAjZGVmaW5lIENPTkZJR19NQ0MyMDAJCTEJLyogLi4uIG9uIE1DQzIwMCBib2FyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzNNSHoJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzM01IegkJKi8KIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKIApAQCAtODEsNyArODEsNyBAQAogI2Vycm9yICJTZWxlY3Qgb25seSBvbmUgY29uc29sZSBkZXZpY2UhIgogI2VuZGlmCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCiAKQEAgLTEzMSwxMSArMTMxLDExIEBACiAjZGVmaW5lIE1LX1NUUih4KQkJWE1LX1NUUih4KQogCiAjaWZkZWYgQ09ORklHX1BSUzIwMAotIyBkZWZpbmUgQ0ZHX19CT0FSRE5BTUUJCSJwcnMyMDAiCi0jIGRlZmluZSBDRkdfX0xJTlVYX0NPTlNPTEUJInR0eVMwIgorIyBkZWZpbmUgQ09ORklHX1NZU19fQk9BUkROQU1FCQkicHJzMjAwIgorIyBkZWZpbmUgQ09ORklHX1NZU19fTElOVVhfQ09OU09MRQkidHR5UzAiCiAjZWxzZQotIyBkZWZpbmUgQ0ZHX19CT0FSRE5BTUUJCSJtY2MyMDAiCi0jIGRlZmluZSBDRkdfX0xJTlVYX0NPTlNPTEUJInR0eUVVNSIKKyMgZGVmaW5lIENPTkZJR19TWVNfX0JPQVJETkFNRQkJIm1jYzIwMCIKKyMgZGVmaW5lIENPTkZJR19TWVNfX0xJTlVYX0NPTlNPTEUJInR0eUVVNSIKICNlbmRpZgogCiAvKiBOZXR3b3JrICovCkBAIC0xNDgsNyArMTQ4LDcgQEAKICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJCQkJXAogCSJ1Ym9vdHZlcj0iIFVfQk9PVF9WRVJTSU9OICJcMCIJCQkJCVwKIAkibmV0ZGV2PWV0aDBcMCIJCQkJCQkJXAotCSJob3N0bmFtZT0iIENGR19fQk9BUkROQU1FICJcMCIJCQkJCVwKKwkiaG9zdG5hbWU9IiBDT05GSUdfU1lTX19CT0FSRE5BTUUgIlwwIgkJCQkJXAogCSJuZnNhcmdzPXNldGVudiBib290YXJncyByb290PS9kZXYvbmZzIHJ3ICIJCQlcCiAJCSJuZnNyb290PSR7c2VydmVyaXB9OiR7cm9vdHBhdGh9XDAiCQkJXAogCSJyYW1hcmdzPXNldGVudiBib290YXJncyByb290PS9kZXYvbXRkYmxvY2syICIJCQlcCkBAIC0xNjUsMTAgKzE2NSwxMCBAQAogCQkiYm9vdG0gJHtrZXJuZWxfYWRkcn0gJHtyYW1kaXNrX2FkZHJ9XDAiCQlcCiAJIm5ldF9uZnM9dGZ0cCAyMDAwMDAgJHtib290ZmlsZX07IgkJCQlcCiAJCSJydW4gbmZzYXJncyBhZGRpcCBhZGRjb25zO2Jvb3RtXDAiCQkJXAotCSJjb25zb2xlPSIgQ0ZHX19MSU5VWF9DT05TT0xFICJcMCIJCQkJXAorCSJjb25zb2xlPSIgQ09ORklHX1NZU19fTElOVVhfQ09OU09MRSAiXDAiCQkJCVwKIAkicm9vdHBhdGg9L29wdC9lbGRrL3BwY182eHhcMCIJCQkJCVwKLQkiYm9vdGZpbGU9L3RmdHBib290LyIgQ0ZHX19CT0FSRE5BTUUgIi91SW1hZ2VcMCIJCVwKLQkibG9hZD10ZnRwIDIwMDAwMCAvdGZ0cGJvb3QvIiBDRkdfX0JPQVJETkFNRSAiL3UtYm9vdC5iaW5cMCIJXAorCSJib290ZmlsZT0vdGZ0cGJvb3QvIiBDT05GSUdfU1lTX19CT0FSRE5BTUUgIi91SW1hZ2VcMCIJCVwKKwkibG9hZD10ZnRwIDIwMDAwMCAvdGZ0cGJvb3QvIiBDT05GSUdfU1lTX19CT0FSRE5BTUUgIi91LWJvb3QuYmluXDAiCVwKIAkidGV4dF9iYXNlPSIgTUtfU1RSKFRFWFRfQkFTRSkgIlwwIgkJCQlcCiAJImtlcm5lbF9hZGRyPTB4RkMwQzAwMDBcMCIJCQkJCVwKIAkidXBkYXRlPXByb3RlY3Qgb2ZmICR7dGV4dF9iYXNlfSArJHtmaWxlc2l6ZX07IgkJCVwKQEAgLTE4MSwyMiArMTgxLDIyIEBACiAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gZmxhc2hfc2VsZiIKIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogLyoKICAqIElQQiBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbi4KICAqLwotI2RlZmluZSBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjZGVmaW5lIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCiAKIC8qCiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uICg4LDE2IG9yIDMyIE1CKQpAQCAtMjA3LDMwICsyMDcsMzAgQEAKICAqCQkgMHhGRjAwMDAwMCBmb3IgMTYgTUIKICAqCQkgMHhGRjgwMDAwMCBmb3IgIDggTUIKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmYzAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDA0MDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJLyogaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbgkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoCSovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCS8qIHVzZSBGTEFTSCBmb3IgZW52aXJvbm1lbnQgdmFycwkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDIwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yMzksMzQgKzIzOSwzNCBAQAogCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEJLyogYWxsb3cgbW9kaWZpY2F0aW9uIG9mIHZlbmRvciBwYXJhbXMgKi8KIAotI2lmIFRFWFRfQkFTRSA9PSBDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTE9XQk9PVAkxCisjaWYgVEVYVF9CQVNFID09IENPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJMQogI2VuZGlmCiAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4ZjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAogCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KIAogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0yODgsNyArMjg4LDcgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0xDRCkKICNkZWZpbmUgQ09ORklHX1NQTEFTSF9TQ1JFRU4JMQotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYJMQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCTEKICNkZWZpbmUgTENEX0JQUAkJCUxDRF9NT05PQ0hST01FCiAjZW5kaWYKIApAQCAtMjk5LDY0ICsyOTksNjQgQEAKIC8qIDB4OTAwMDAwMDQgPSA2NE1CIFNEUkFNICovCiAjaWYgZGVmaW5lZChDT05GSUdfTENEKQogLyogc2V0IFBTQzIgaW4gVUFSVCBtb2RlICovCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHgwMDAwMDA0NAorI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDAwMDAwMDQ0CiAjZWxzZQotI2RlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4MDAwMDAwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHgwMDAwMDAwNAogI2VuZGlmCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qCiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0ZmIwMAotI2RlZmluZSBDRkdfQ1MwX1NUQVJUCQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQ1MwX1NJWkUJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDRmYjAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCiAKIC8qIFF1YWQgVUFSVCBAMHg4MDAwMDAwMCAoTUJBUiBpcyByZWxvY2F0ZWQgdG8gMHhGMDAwMDAwMCkgKi8KLSNkZWZpbmUgQ0ZHX0NTMl9TVEFSVAkJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfQ1MyX1NJWkUJCTB4MDAwMDEwMDAKLSNkZWZpbmUgQ0ZHX0NTMl9DRkcJCTB4MWQzMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfU1RBUlQJCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfU0laRQkJMHgwMDAwMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9DRkcJCTB4MWQzMDAKIAogLyogU2Vjb25kIFF1YWQgVUFSVCBAMHg4MDAxMDAwMCAqLwotI2RlZmluZSBDRkdfQ1MxX1NUQVJUCQkweDgwMDEwMDAwCi0jZGVmaW5lIENGR19DUzFfU0laRQkJMHgwMDAwMTAwMAotI2RlZmluZSBDRkdfQ1MxX0NGRwkJMHgxZDMwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TVEFSVAkJMHg4MDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TSVpFCQkweDAwMDAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NGRwkJMHgxZDMwMAogCiAvKiBMZWljYSAtIGJ1aWxkIHJldmlzaW9uIHJlc2lzdG9ycyAqLwogLyoKLSNkZWZpbmUgQ0ZHX0NTM19TVEFSVAkJMHg4MDAyMDAwMAotI2RlZmluZSBDRkdfQ1MzX1NJWkUJCTB4MDAwMDAwMDQKLSNkZWZpbmUgQ0ZHX0NTM19DRkcJCTB4MWQzMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfU1RBUlQJCTB4ODAwMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfU0laRQkJMHgwMDAwMDAwNAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19DRkcJCTB4MWQzMDAKICovCiAKIC8qCkBAIC0zNjQsMTAgKzM2NCwxMCBAQAogICogY29uc29sZS4gSWYgdW5kZWZpbmVkIC0gUFNDIGNvbnNvbGUKICAqIHdpbCBiZSBkZWZhdWx0CiAgKi8KLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMworI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCiAKIC8qCiAgKiBRVUFSVCBFeHBhbmRlcnMgc3VwcG9ydApAQCAtMzc2LDggKzM3Niw4IEBACiAvKgogICogV2UnbGwgdXNlIE5TMTY1NTAgY2hpcCByb3V0aW5lcywKICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAkJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAkxCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKIC8qCiAgKiAgVG8gYWNoaWV2ZSBuZWNlc3Nhcnkgb2Zmc2V0IG9uIFNDMTZDNTU0CkBAIC0zODYsNyArMzg2LDcgQEAKICAqIHNob3VsZCBiZSA0LCBiZWNhdXNlIEEwLUEyIHBpbnMgYXJlIGNvbm5lY3RlZAogICogdG8gREEyLURBNCBhZGRyZXNzIGJ1cyBsaW5lcy4KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQk0CisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQk0CiAvKgogICogTG9jYWxQbHVzIEJ1cyBhbHJlYWR5IGluaXRlZCBpbiBjcHVfaW5pdF9mKCksCiAgKiBzbyBjYW4gd29yayB3aXRoIFFVQVJUJ3MgY2hpcCBzZWxlY3RzLgpAQCAtMzk0LDkgKzM5NCw5IEBACiAgKiBBMy1BNCAoREE1LURBNikgbGluZXMuCiAgKi8KICNpZiAoQ09ORklHX1FVQVJUX0NPTlNPTEUgPiAwKSAmJiAoQ09ORklHX1FVQVJUX0NPTlNPTEUgPCA1KSAmJiAhZGVmaW5lZChDT05GSUdfUFJTMjAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfQ1MyX1NUQVJUIHwgKENPTkZJR19RVUFSVF9DT05TT0xFIC0gMSk8PDUpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0NTMl9TVEFSVCB8IChDT05GSUdfUVVBUlRfQ09OU09MRSAtIDEpPDw1KQogI2VsaWYgKENPTkZJR19RVUFSVF9DT05TT0xFID4gNCkgJiYgKENPTkZJR19RVUFSVF9DT05TT0xFIDwgOSkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0NTMV9TVEFSVCB8IChDT05GSUdfUVVBUlRfQ09OU09MRSAtIDUpPDw1KQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19DUzFfU1RBUlQgfCAoQ09ORklHX1FVQVJUX0NPTlNPTEUgLSA1KTw8NSkKICNlbGlmCiAjZXJyb3IgIldyb25nIFFVQVJUIGV4cGFuZGVyIG51bWJlci4iCiAjZW5kaWYKQEAgLTQwNSw3ICs0MDUsNyBAQAogICogU0MxNkM1NTQgY2hpcCdzIGV4dGVybmFsIGNyeXN0YWwgb3NjaWxsYXRvciBmcmVxdWVuY3kKICAqIGlzIDcuMzcyOCBNSHoKICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTczNzI4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJNzM3MjgwMAogI2VuZGlmIC8qIENPTkZJR19RVUFSVF9DT05TT0xFICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBVU0Igc3R1ZmYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9tY3UyNS5oIGIvaW5jbHVkZS9jb25maWdzL21jdTI1LmgKaW5kZXggODAwMTFlYi4uZTQ0ODk2OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL21jdTI1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL21jdTI1LmgKQEAgLTQ1LDQ2ICs0NSw0NiBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMzIwICogMTAyNCkgLyogUmVzZXJ2ZSAzMjAga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDMyMCAqIDEwMjQpIC8qIFJlc2VydmUgMzIwIGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKSAqLwogCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogX211c3RfIGJlIDAJCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmZjgwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAkvKiBfbXVzdF8gYmUgMAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmZjgwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQogCiAvKiAuLi4gd2l0aCBvbi1jaGlwIG1lbW9yeSBoZXJlICg0S0J5dGVzKSAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY0MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MDAwMDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MDAwMDEwMDAKIC8qIERvIG5vdCBzZXQgdXAgbG9ja2VkIGRjYWNoZSBhcyBpbml0IHJhbS4gKi8KLSN1bmRlZiBDRkdfSU5JVF9EQ0FDSEVfQ1MKKyN1bmRlZiBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTCiAKIC8qIFVzZSB0aGUgT24tQ2hpcC1NZW1vcnkgKE9DTSkgYXMgYSB0ZW1wb3Jhcnkgc3RhY2sgZm9yIHRoZSBzdGFydHVwIGNvZGUuICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JMQogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSCS8qIE9DTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX1BPU1RfV09SRF9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJLyogT0NNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NgkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qCi0gKiBJZiBDRkdfRVhUX1NFUklBTF9DTE9DSywgdGhlbiB0aGUgVUFSVCBkaXZpc29yIGlzIDEuCi0gKiBJZiBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5LCB0aGVuIFVBUlQgZGl2aXNvciBpcyAzMS4KLSAqIE90aGVyd2lzZSwgVUFSVCBkaXZpc29yIGlzIGRldGVybWluZWQgYnkgQ1BVIENsb2NrIGFuZCBDRkdfQkFTRV9CQVVEIHZhbHVlLgorICogSWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLLCB0aGVuIHRoZSBVQVJUIGRpdmlzb3IgaXMgMS4KKyAqIElmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5LCB0aGVuIFVBUlQgZGl2aXNvciBpcyAzMS4KKyAqIE90aGVyd2lzZSwgVUFSVCBkaXZpc29yIGlzIGRldGVybWluZWQgYnkgQ1BVIENsb2NrIGFuZCBDT05GSUdfU1lTX0JBU0VfQkFVRCB2YWx1ZS4KICAqIFRoZSBMaW51eCBCQVNFX0JBVUQgZGVmaW5lIHNob3VsZCBtYXRjaCB0aGlzIGNvbmZpZ3VyYXRpb24uCiAgKiAgICBiYXNlQmF1ZCA9IGNwdUNsb2NrLyh1YXJ0RGl2aXNvcioxNikKLSAqIElmIENGR180MDVfVUFSVF9FUlJBVEFfNTkgYW5kIDIwME1IeiBDUFUgY2xvY2ssCisgKiBJZiBDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OSBhbmQgMjAwTUh6IENQVSBjbG9jaywKICAqIHNldCBMaW51eCBCQVNFX0JBVUQgdG8gNDAzMjAwLgogICovCi0jdW5kZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLworI3VuZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCiAjZGVmaW5lIENPTkZJR19TRVJJQUxfTVVMVEkgIDEKIC8qIG5lZWRlZCB0byBiZSBhYmxlIHRvIGRlZmluZSBDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8gKi8KLSN1bmRlZglDRkdfNDA1X1VBUlRfRVJSQVRBXzU5CSAgICAgICAvKiA0MDVHUC9DUiBSZXYuIEQgc2lsaWNvbiAqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECSAgICA2OTEyMDAKKyN1bmRlZglDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OQkgICAgICAgLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogCiAvKiBTaXplIChieXRlcykgb2YgaW50ZXJydXB0IGRyaXZlbiBzZXJpYWwgcG9ydCBidWZmZXIuCiAgKiBTZXQgdG8gMCB0byB1c2UgcG9sbGluZyBpbnN0ZWFkIG9mIGludGVycnVwdHMuCkBAIC05Niw3ICs5Niw3IEBACiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJOTYwMAogCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCQkJCQkJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCQkJCQkJXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMDQsMTggKzEwNCwxOCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKIC8qIGJvYXJkIHByb3ZpZGVzIGl0cyBvd24gZmxhc2hfaW5pdCBjb2RlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfTEVHQUNZCQkxCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJCUZMQVNIX0NGSV84QklUCi0jZGVmaW5lIENGR19GTEFTSF9MRUdBQ1lfNTEyS3g4IDEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJCUZMQVNIX0NGSV84QklUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTEVHQUNZXzUxMkt4OCAxCiAKIC8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudApAQCAtMTM1LDcgKzEzNSw3IEBACiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogLyogUHV0IHRoZSBlbnZpcm9ubWVudCBpbiBGbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwIC8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvciAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSgoLUNGR19NT05JVE9SX0xFTiktQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKCgtQ09ORklHX1NZU19NT05JVE9SX0xFTiktQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJOCoxMDI0CS8qIDggS0IgRW52aXJvbm1lbnQgU2VjdG9yICovCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTQ3LDIyICsxNDcsMjIgQEAKICAqIEkyQyBzdHVmZiBmb3IgYSBBVE1FTCBBVDI0QzE2ICgya0IgaG9sZGluZyBFTlYsIHdlIGFyZSB1c2luZyB0aGUKICAqIHRoZSBmaXJzdCBpbnRlcm5hbCBJMkMgY29udHJvbGxlciBvZiB0aGUgUFBDNDQwRVB4CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfU1BEX0JVU19OVU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19TUERfQlVTX05VTQkJMAogCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKiBUaGlzIGlzIHRoZSA3Yml0IGFkZHJlc3Mgb2YgdGhlIGRldmljZSwgbm90IGluY2x1ZGluZyBQLiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSIDB4NTAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiAweDUwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCiAKIC8qIFRoZSBFRVBST00gY2FuIGRvIDE2Ynl0ZSAoIDEgPDwgNCApIHBhZ2Ugd3JpdGVzLiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKLSN1bmRlZiBDRkdfSTJDX01VTFRJX0VFUFJPTVMKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCisjdW5kZWYgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUwogCiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QJImVjaG87IgkJCQkJCVwKQEAgLTE3OCw3ICsxNzgsNyBAQAogI2RlZmluZSBDT05GSUdfT1ZFUldSSVRFX0VUSEFERFJfT05DRQogI2RlZmluZSBDT05GSUdfU0VSVkVSSVAJCTE3Mi4yNS4xLjMKIAotI2RlZmluZSBDRkdfVEZUUF9MT0FEQUREUiAweDAxMDAwMDAwIC8qIEAxNiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1RGVFBfTE9BREFERFIgMHgwMTAwMDAwMCAvKiBAMTYgTUIgKi8KIAogI2RlZmluZQlDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCQkJCVwKIAkibmV0ZGV2PWV0aDBcMCIJCQkJCQkJXApAQCAtMjA4LDcgKzIwOCw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJNQkvKiBhdXRvYm9vdCBhZnRlciA1IHNlY29uZHMJKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJMQkvKiBQSFkgYWRkcmVzcwkJCSovCkBAIC0yMTYsNyArMjE2LDcgQEAKICNkZWZpbmUgQ09ORklHX1BIWV9SRVNFVCAgICAgICAgMQkvKiByZXNldCBwaHkgdXBvbiBzdGFydHVwICovCiAKICNkZWZpbmUgQ09ORklHX0hBU19FVEgwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTE2IC8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTE2IC8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3IgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTI1Miw0MiArMjUyLDQyIEBACiAjZGVmaW5lIFNQRF9FRVBST01fQUREUkVTUyAgICAgIDB4NTAKIAogLyogUE9TVCBzdXBwb3J0ICovCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfTUVNT1JZICAgfCBcCi0JCQkJIENGR19QT1NUX0NQVQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfVUFSVAkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfSTJDCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9DQUNIRQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfRVRIRVIJICAgfCBcCi0JCQkJIENGR19QT1NUX1NQUikKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfTUVNT1JZICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DUFUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9VQVJUCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfSTJDCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ0FDSEUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9FVEhFUgkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1NQUikKIAotI2RlZmluZSBDRkdfUE9TVF9VQVJUX1RBQkxFCXtVQVJUMF9CQVNFfQotI2RlZmluZSBDRkdfUE9TVF9XT1JEX0FERFIJKENGR19HQkxfREFUQV9PRkZTRVQgLSAweDQpCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9VQVJUX1RBQkxFCXtVQVJUMF9CQVNFfQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKICN1bmRlZiAgQ09ORklHX0xPR0JVRkZFUgotI2RlZmluZSBDRkdfUE9TVF9DQUNIRV9BRERSCTB4MDA4MDAwMDAgLyogZnJlZSB2aXJ0dWFsIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WIC8qIE90aGVyd2lzZSBpdCBjYXRjaGVzIGxvZ2J1ZmZlciBhcyBvdXRwdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0NBQ0hFX0FERFIJMHgwMDgwMDAwMCAvKiBmcmVlIHZpcnR1YWwgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WIC8qIE90aGVyd2lzZSBpdCBjYXRjaGVzIGxvZ2J1ZmZlciBhcyBvdXRwdXQgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotCSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KICNkZWZpbmUgQ09ORklHX0xPT1BXICAgICAgICAgICAgMSAgICAgICAvKiBlbmFibGUgbG9vcHcgY29tbWFuZCAgICAgICAgICovCkBAIC0yOTcsNTUgKzI5Nyw1NSBAQAogICogRXh0ZXJuYWwgQnVzIENvbnRyb2xsZXIgKEVCQykgU2V0dXAKICAqLwogCi0jZGVmaW5lIENGR19FQkNfQ0ZHICAgICAgICAgICAgMHg5ODQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19DRkcgICAgICAgICAgICAweDk4NDAwMDAwCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCkgaW5pdGlhbGl6YXRpb24JKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwMjAwNTQwMAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGRjE4MDAwICAvKiBCQVM9MHhGRkYsQlM9MU1CLEJVPVIvVyxCVz04Yml0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDIwMDU0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCTB4RkZGMTgwMDAgIC8qIEJBUz0weEZGRixCUz0xTUIsQlU9Ui9XLEJXPThiaXQqLwogCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDMwNDEyMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHg3MDA5QTAwMCAgLyogQkFTPSxCUz1NQixCVT1SL1csQlc9Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQCQkweDAzMDQxMjAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkweDcwMDlBMDAwICAvKiBCQVM9LEJTPU1CLEJVPVIvVyxCVz1iaXQJKi8KIAotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAxODQ1MjAwdSAgLyogQkFTPSxCUz1NQixCVT1SL1csQlc9Yml0ICovCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4N0EwOUEwMDB1CisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAxODQ1MjAwdSAgLyogQkFTPSxCUz1NQixCVT1SL1csQlc9Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweDdBMDlBMDAwdQogCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDE4NDUyMDB1ICAvKiBCQVM9LEJTPU1CLEJVPVIvVyxCVz1iaXQgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJMHg3QjA5QTAwMHUKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDE4NDUyMDB1ICAvKiBCQVM9LEJTPU1CLEJVPVIvVyxCVz1iaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCTB4N0IwOUEwMDB1CiAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjRBUAkJMHgwMTg0NTIwMHUgIC8qIEJBUz0sQlM9TUIsQlU9Ui9XLEJXPWJpdCAqLwotI2RlZmluZSBDRkdfRUJDX1BCNENSCQkweDdDMDlBMDAwdQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUAkJMHgwMTg0NTIwMHUgIC8qIEJBUz0sQlM9TUIsQlU9Ui9XLEJXPWJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUgkJMHg3QzA5QTAwMHUKIAotI2RlZmluZSBDRkdfRUJDX1BCNUFQCQkweDAwODAwMjAwdQotI2RlZmluZSBDRkdfRUJDX1BCNUNSCQkweDdEODFBMDAwdQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVBUAkJMHgwMDgwMDIwMHUKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1Q1IJCTB4N0Q4MUEwMDB1CiAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjZBUAkJMHgwMTA0MDIwMHUKLSNkZWZpbmUgQ0ZHX0VCQ19QQjZDUgkJMHg3RDkxQTAwMHUKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI2QVAJCTB4MDEwNDAyMDB1CisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNkNSCQkweDdEOTFBMDAwdQogCi0jZGVmaW5lIENGR19HUElPMF9PUgkJMHgwODdGRkZGRiAgLyogR1BJTyB2YWx1ZSAqLwotI2RlZmluZSBDRkdfR1BJTzBfVENSCQkweDdGRkY4MDAwICAvKiBHUElPIHZhbHVlICovCi0jZGVmaW5lIENGR19HUElPMF9PRFIJCTB4RkZGRjAwMDAgIC8qIEdQSU8gdmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PUgkJMHgwODdGRkZGRiAgLyogR1BJTyB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RDUgkJMHg3RkZGODAwMCAgLyogR1BJTyB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09EUgkJMHhGRkZGMDAwMCAgLyogR1BJTyB2YWx1ZSAqLwogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CiAgKgogICogQlIwLzEgYW5kIE9SMC8xIChGTEFTSCkKICAqLwogCi0jZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSovCisjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogRkxBU0ggYmFuayAjMAkqLwogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0JMAkJLyogRkxBU0ggYmFuayAjMQkqLwogCiAKIC8qIENvbmZpZ3VyYXRpb24gUG9ydCBsb2NhdGlvbiAqLwogI2RlZmluZSBDT05GSUdfUE9SVF9BRERSCTB4RjAwMDA1MDAKIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIgICAgICAgICAgICAgICAgIC8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIgICAgKi8KLSNpZmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSICAgICAgICAgICAgICAgICAvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyICAgICovCisjaWZkZWYgIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9tZWNwNTIwMC5oIGIvaW5jbHVkZS9jb25maWdzL21lY3A1MjAwLmgKaW5kZXggOGIxM2ZjMC4uN2VmNWJkZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL21lY3A1MjAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL21lY3A1MjAwLmgKQEAgLTQ1LDcgKzQ1LDcgQEAKICNkZWZpbmUgQ09ORklHX01FQ1A1MjAwCQkxCS8qIC4uLiBvbiBNRUNQNTIwMCAgYm9hcmQgKi8KICNkZWZpbmUgQ09ORklHX01QQzUyMDBfRERSICAgICAgMSAgICAgICAvKiAuLi4gdXNlIEREUiBSQU0gICAgICAqLwogCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAgKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QJICAgICAqLwpAQCAtNjEsNyArNjEsNyBAQAogI2Vsc2UKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCS8qIC4uLiBhdCAxMTUyMDAgYnBzICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAKICNpZmRlZiBDT05GSUdfTVBDNTIwMAkvKiBNUEM1MTAwIFBDSSBpcyBub3Qgc3VwcG9ydGVkIHlldC4gKi8KQEAgLTcwLDcgKzcwLDcgQEAKICNpZiAwIC8qIHRlc3Qtb25seSAhISEgKi8KICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMAkJMQotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4ICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCiAjZGVmaW5lIENPTkZJR19OUzgzODJYCQkxCiAjZW5kaWYKIApAQCAtMTEzLDEyICsxMTMsMTIgQEAKIAogCiAjaWYgKFRFWFRfQkFTRSA9PSAweEZGMDAwMDAwKQkJLyogQm9vdCBsb3cgd2l0aCAxNiBNQiBGbGFzaCAqLwotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQotIyAgIGRlZmluZSBDRkdfTE9XQk9PVDE2CTEKKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UCQkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVDE2CTEKICNlbmRpZgogI2lmIChURVhUX0JBU0UgPT0gMHhGRjgwMDAwMCkJCS8qIEJvb3QgbG93IHdpdGggIDggTUIgRmxhc2ggKi8KLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QwOAkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QwOAkxCiAjZW5kaWYKIAogLyoKQEAgLTE1NiwzNiArMTU2LDM2IEBACiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jdW5kZWYgQ0ZHX0lQQlNQRUVEXzEzMwkJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjdW5kZWYgQ09ORklHX1NZU19JUEJTUEVFRF8xMzMJCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogI2VuZGlmCiAvKgogICogSTJDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4NjAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTg2MDAwIC8qIDEwMCBrSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIEVFUFJPTSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUwkJMQogLyoKICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkMwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMDQwMDAwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4MDAzRTAwMDApCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGQzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAwM0UwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIKIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwpAQCAtMjA0LDQwICsyMDQsNDAgQEAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJICAgLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJCSovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJICAgLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJCSovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJICAgLyogdXNlIGhhcmR3YXJlIHByb3RlY3Rpb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCSAgIC8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkgICAvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkJKi8KICNpZiAwCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgICAgICAgLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxICAgICAgIC8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19GTEFTSF9JTkNSRU1FTlQJMHgwMDQwMDAwMCAvKiBzaXplIG9mICBmbGFzaCBiYW5rCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVCAgeyBDRkdfRkxBU0hfQkFTRSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCTEJICAgLyogc2hvdyBpZiBiYW5rIGlzIGVtcHR5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVAkweDAwNDAwMDAwIC8qIHNpemUgb2YgIGZsYXNoIGJhbmsJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCAgeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JMQkgICAvKiBzaG93IGlmIGJhbmsgaXMgZW1wdHkJCSovCiAKIAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKIC8qIFVzZSBTUkFNIHVudGlsIFJBTSB3aWxsIGJlIGF2YWlsYWJsZSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLwogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTI1NCw2MiArMjU0LDYyIEBACiAvKgogICogR1BJTyBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDAxMDUyNDQ0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4MDEwNTI0NDQKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfVlhXT1JLU19NQUNfUFRSCTB4MDAwMDAwMDAJLyogUGFzcyBFdGhlcm5ldCBNQUMgdG8gVnhXb3JrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1ZYV09SS1NfTUFDX1BUUgkweDAwMDAwMDAwCS8qIFBhc3MgRXRoZXJuZXQgTUFDIHRvIFZ4V29ya3MgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyoKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQotI2RlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKICNlbHNlCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCTAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQk9PVENTX1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19CT09UQ1NfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwODVkMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwODVkMDAKIAotI2RlZmluZSBDRkdfQ1MwX1NUQVJUCQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQ1MwX1NJWkUJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCiAKLSNkZWZpbmUgQ0ZHX0NTMV9TVEFSVAkJMHhmZDAwMDAwMAotI2RlZmluZSBDRkdfQ1MxX1NJWkUJCTB4MDAwMTAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9DRkcJCTB4MTAxMDE0MTAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU1RBUlQJCTB4ZmQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRQkJMHgwMDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DRkcJCTB4MTAxMDE0MTAKIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVVNCIHN0dWZmCkBAIC0zMzEsMjMgKzMzMSwyMyBAQAogI2RlZmluZQlDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1BSRUlOSVQKIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfQVRBX0RBVEFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCiAKIC8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzCQkqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJNAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJCTQKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9tZ2NvZ2UuaCBiL2luY2x1ZGUvY29uZmlncy9tZ2NvZ2UuaAppbmRleCBlY2Y5M2U5Li5hMGRlOGE0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbWdjb2dlLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL21nY29nZS5oCkBAIC02Niw5ICs2Niw5IEBACiAjdW5kZWYJQ09ORklHX0VUSEVSX05PTkUJCS8qIE5vIGV4dGVybmFsIEV0aGVybmV0ICAgKi8KIAogI2RlZmluZSBDT05GSUdfRVRIRVJfSU5ERVgJNAotI2RlZmluZSBDRkdfU0NDX1RPVVRfTE9PUAkxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ19UT1VUX0xPT1AJMTAwMDAwMDAKIAotIyBkZWZpbmUgQ0ZHX0NNWFNDUl9WQUxVRQkoQ01YU0NSX1JTNENTX0NMSzcgfCBDTVhTQ1JfVFM0Q1NfQ0xLOCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YU0NSX1ZBTFVFCShDTVhTQ1JfUlM0Q1NfQ0xLNyB8IENNWFNDUl9UUzRDU19DTEs4KQogCiAjaWZuZGVmIENPTkZJR184MjYwX0NMS0lOCiAjZGVmaW5lIENPTkZJR184MjYwX0NMS0lOCTY2MDAwMDAwCS8qIGluIEh6ICovCkBAIC0xMzIsNjEgKzEzMiw2MSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2RlZmluZSBDT05GSUdfSFVTSF9JTklUX1ZBUgkxCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkzMgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcwkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRV8xCTB4NTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkVfMQk2NAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0VfMQkweDUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRV8xCTY0CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QgeyBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0VfMSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCB7IENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFXzEgfQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTZLQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NktCIGZvciBNb25pdG9yICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKICNlbmRpZiAvKiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIICovCiAKIC8qIGVuYWJsZSBJMkMgYW5kIHNlbGVjdCB0aGUgaGFyZHdhcmUvc29mdHdhcmUgZHJpdmVyICovCiAjdW5kZWYJQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZQlDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTUwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIFNvZnR3YXJlIChiaXQtYmFuZykgSTJDIGRyaXZlciBjb25maWd1cmF0aW9uCkBAIC0yMDQsNzcgKzIwNCw3NyBAQAogCiAjZGVmaW5lIENPTkZJR19JMkNfTVVMVElfQlVTCTEKICNkZWZpbmUgQ09ORklHX0kyQ19DTURfVFJFRQkxCi0jZGVmaW5lIENGR19NQVhfSTJDX0JVUwkJMgotI2RlZmluZSBDRkdfSTJDX0lOSVRfQk9BUkQJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9JMkNfQlVTCQkyCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0lOSVRfQk9BUkQJMQogI2RlZmluZSBDT05GSUdfSTJDX01VWAkJMQogCiAvKiBFRXByb20gc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwkxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9FTkFCTEUKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUwkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfRU5BQkxFCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKIAogLyogU3VwcG9ydCB0aGUgSVZNIEVFcHJvbSAqLwotI2RlZmluZQlDRkdfSVZNX0VFUFJPTV9BRFIJMHg1MAotI2RlZmluZSBDRkdfSVZNX0VFUFJPTV9NQVhfTEVOCTB4NDAwCi0jZGVmaW5lIENGR19JVk1fRUVQUk9NX1BBR0VfTEVOCTB4MTAwCisjZGVmaW5lCUNPTkZJR19TWVNfSVZNX0VFUFJPTV9BRFIJMHg1MAorI2RlZmluZSBDT05GSUdfU1lTX0lWTV9FRVBST01fTUFYX0xFTgkweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0lWTV9FRVBST01fUEFHRV9MRU4JMHgxMDAKIAogLyogSTJDIFNZU01PTiAoTE03NSwgQUQ3NDE0IGlzIGFsbW9zdCBjb21wYXRpYmxlKQkJCSovCiAjZGVmaW5lIENPTkZJR19EVFRfTE03NQkJMQkvKiBPTiBTZW1pJ3MgTE03NQkJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTCXswfQkvKiBTZW5zb3IgYWRkcmVzc2VzCQkqLwotI2RlZmluZSBDRkdfRFRUX01BWF9URU1QCTcwCi0jZGVmaW5lIENGR19EVFRfTE9XX1RFTVAJLTMwCi0jZGVmaW5lIENGR19EVFRfSFlTVEVSRVNJUwkzCi0jZGVmaW5lIENGR19EVFRfQlVTX05VTQkJKENGR19NQVhfSTJDX0JVUykKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTUFYX1RFTVAJNzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTE9XX1RFTVAJLTMwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0hZU1RFUkVTSVMJMworI2RlZmluZSBDT05GSUdfU1lTX0RUVF9CVVNfTlVNCQkoQ09ORklHX1NZU19NQVhfSTJDX0JVUykKIAotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MjAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKiBIYXJkIHJlc2V0IGNvbmZpZ3VyYXRpb24gd29yZCAqLwotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJCTB4MDYwNGIyMTEKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJMHgwNjA0YjIxMQogCiAvKiBObyBzbGF2ZXMgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJCTAKIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290ICAgICAgICAgICAgICAgICAgKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDQwOTYgPDwgMTApCS8qIFJlc2VydmUgNCBNQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNDA5NiA8PCAxMCkJLyogUmVzZXJ2ZSA0IE1CIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkoSElEMF9JQ0UgfCBISUQwX0lGRU0gfCBISUQwX0FCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkoSElEMF9JQ0UgfCBISUQwX0lGRU0gfCBISUQwX0FCRSkKIAotI2RlZmluZSBDRkdfSElEMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJCTAKIAotI2RlZmluZSBDRkdfU0lVTUNSCQkweDQwMjBjMjAwCi0jZGVmaW5lIENGR19TWVBDUgkJMHhGRkZGRkZDMwotI2RlZmluZSBDRkdfQkNSCQkJMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfU0NDUgkJKFNDQ1JfUENJX01PREUgfCBTQ0NSX1BDSV9NT0RDSykKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJCTB4NDAyMGMyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkJMHhGRkZGRkZDMworI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJCTB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCQkoU0NDUl9QQ0lfTU9ERSB8IFNDQ1JfUENJX01PRENLKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSTVIgLSBSZXNldCBNb2RlIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUtNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogdHVybiBvbiBDaGVja3N0b3AgUmVzZXQgRW5hYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX1JNUiAgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19STVIgICAgICAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRNQ05UU0MgLSBUaW1lIENvdW50ZXIgU3RhdHVzIGFuZCBDb250cm9sICAgICAgICAgICAgICAgICAgICAgNC00MApAQCAtMjgyLDcgKzI4Miw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQyAgICAgKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgICAgICAgICAgICAgICAgIDQtNDIKQEAgLTI5MCwxMyArMjkwLDEzIEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jZGVmaW5lIENGR19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgIDEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgICAgICAgIDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zMTEsMTIgKzMxMSwxMiBAQAogICovCiAvKiBCYW5rIDAgLSBGTEFTSAogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNICAoKENGR19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNICAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQkgQlJ4X1BTXzgJCQl8XAogCQkJIEJSeF9NU19HUENNX1AJCQl8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNICAoTUVHX1RPX0FNKENGR19GTEFTSF9TSVpFKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0gIChNRUdfVE9fQU0oQ09ORklHX1NZU19GTEFTSF9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMgkJCXxcCiAJCQkgT1J4R19TQ1lfNV9DTEsJCQl8XApAQCAtMzI2LDMzICszMjYsMzMgQEAKIC8qIEJhbmsgMSAtIDYweCBidXMgU0RSQU0KICAqLwogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkweDA4MDAwMDAwCS8qIG1heC4gMTI4IE1CCQkqLwotI2RlZmluZSBDRkdfR0xPQkFMX1NEUkFNX0xJTUlUCSgyNTYgPDwgMjApCS8qIGxlc3MgdGhhbiAyNTYgTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HTE9CQUxfU0RSQU1fTElNSVQJKDI1NiA8PCAyMCkJLyogbGVzcyB0aGFuIDI1NiBNQiAqLwogCi0jZGVmaW5lIENGR19NUFRQUiAgICAgICAweDE4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUiAgICAgICAweDE4MDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQWRkcmVzcyBmb3IgTW9kZSBSZWdpc3RlciBTZXQgKE1SUykgY29tbWFuZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19NUlNfT0ZGUwkweDAwMDAwMTEwCi0jZGVmaW5lIENGR19QU1JUICAgICAgICAweDBlCisjZGVmaW5lIENPTkZJR19TWVNfTVJTX09GRlMJMHgwMDAwMDExMAorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQgICAgICAgIDB4MGUKIAotI2RlZmluZSBDRkdfQlIxX1BSRUxJTSAgKChDRkdfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0gICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykgIHxcCiAJCQkgQlJ4X1BTXzY0ICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX1NEUkFNX1AgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjEKIAogLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzCiAqLwogCi0jZGVmaW5lIENGR19PUjEgICAgKCh+KENGR19HTE9CQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMSAgICAoKH4oQ09ORklHX1NZU19HTE9CQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAogCQkJIE9SeFNfQlBEXzggICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMF9BNwkJfFwKIAkJCSBPUnhTX05VTVJfMTMpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SICAoUFNETVJfU0RBTV9BMTRfSVNfQTUgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUiAgKFBTRE1SX1NEQU1fQTE0X0lTX0E1IHxcCiAJCQkgUFNETVJfQlNNQV9BMTRfQTE2ICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTBfQTkJCXxcCiAJCQkgUFNETVJfUkZSQ181X0NMSyAgICAgICAgICAgICAgIHxcCkBAIC0zNjQsMjYgKzM2NCwyNiBAQAogCiAvKiBHUElPL1BJR0dZIG9uIENTMyBpbml0aWFsaXphdGlvbiB2YWx1ZXMKICovCi0jZGVmaW5lIENGR19QSUdHWV9CQVNFCTB4MzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BJR0dZX1NJWkUJMTI4CisjZGVmaW5lIENPTkZJR19TWVNfUElHR1lfQkFTRQkweDMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUElHR1lfU0laRQkxMjgKIAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKENGR19QSUdHWV9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoQ09ORklHX1NZU19QSUdHWV9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfOCB8IEJSeF9NU19HUENNX1AgfCBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkoTUVHX1RPX0FNKENGR19QSUdHWV9TSVpFKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JKE1FR19UT19BTShDT05GSUdfU1lTX1BJR0dZX1NJWkUpIHxcCiAJCQkgT1J4R19DU05UIHwgT1J4R19BQ1NfRElWMiB8XAogCQkJIE9SeEdfU0NZXzNfQ0xLIHwgT1J4R19UUkxYICkKIAogLyogQ0ZHLUZsYXNoIG9uIENTNSBpbml0aWFsaXphdGlvbiB2YWx1ZXMKICovCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCSgoQ0ZHX0ZMQVNIX0JBU0VfMSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkoKENPTkZJR19TWVNfRkxBU0hfQkFTRV8xICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfMTYgfCBCUnhfTVNfR1BDTV9QIHwgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JKE1FR19UT19BTShDRkdfRkxBU0hfU0laRV8xKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JKE1FR19UT19BTShDT05GSUdfU1lTX0ZMQVNIX1NJWkVfMSkgfFwKIAkJCSBPUnhHX0NTTlQgfCBPUnhHX0FDU19ESVYyIHxcCiAJCQkgT1J4R19TQ1lfNV9DTEsgfCBPUnhHX1RSTFggKQogCi0jZGVmaW5lCUNGR19SRVNFVF9BRERSRVNTIDB4RkRGRkZGRkMJLyogImJhZCIgYWRkcmVzcwkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19SRVNFVF9BRERSRVNTIDB4RkRGRkZGRkMJLyogImJhZCIgYWRkcmVzcwkJKi8KIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwogI2RlZmluZSBDT05GSUdfT0ZfTElCRkRUCTEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9tZ3N1dmQuaCBiL2luY2x1ZGUvY29uZmlncy9tZ3N1dmQuaAppbmRleCA0ZWNhZWFjLi43YTgwZGFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbWdzdXZkLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL21nc3V2ZC5oCkBAIC00MSwxNCArNDEsMTQgQEAKIAogI2RlZmluZSBDT05GSUdfOHh4X0dDTEtfRlJFUQkJNjYwMDAwMDAKIAotI2RlZmluZSBDRkdfU01DX1VDT0RFX1BBVENICTEJLyogUmVsb2NhdGUgU01DMSAqLwotI2RlZmluZSBDRkdfU01DX0RQTUVNX09GRlNFVAkweDFmYzAKKyNkZWZpbmUgQ09ORklHX1NZU19TTUNfVUNPREVfUEFUQ0gJMQkvKiBSZWxvY2F0ZSBTTUMxICovCisjZGVmaW5lIENPTkZJR19TWVNfU01DX0RQTUVNX09GRlNFVAkweDFmYzAKICNkZWZpbmUgQ09ORklHXzh4eF9DT05TX1NNQzEJMQkvKiBDb25zb2xlIGlzIG9uIFNNQzEJCSovCiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogY29uc29sZSBiYXVkcmF0ZSA9IDExNWticHMJKi8KIAogI2RlZmluZSBDT05GSUdfQk9PVENPVU5UX0xJTUlUCi0jZGVmaW5lIENGR19DUE1fQk9PVENPVU5UX0FERFIJMHgxZWIwCS8qIEluIGNhc2Ugb2YgU01DIHJlbG9jYXRpb24sIHRoZQorI2RlZmluZSBDT05GSUdfU1lTX0NQTV9CT09UQ09VTlRfQUREUgkweDFlYjAJLyogSW4gY2FzZSBvZiBTTUMgcmVsb2NhdGlvbiwgdGhlCiAJCQkJCSAqIGRlZmF1bHQgdmFsdWUgaXMgbm90IHdvcmtpbmcgKi8KIAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUJLyogYXV0b2Jvb3QgYWZ0ZXIgNSBzZWNvbmRzCSovCkBAIC05MSw3ICs5MSw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZsYXNoX3NlbGYiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTEyNCwzMyArMTI0LDMzIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2RlZmluZSBDT05GSUdfSFVTSF9JTklUX1ZBUgkxCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTYwLDQ3ICsxNjAsNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmMDAwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMzIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDQwMDAwIC8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yMTEsMTQgKzIxMSwxNCBAQAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUK0NPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjI3LDI3ICsyMjcsMjcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCi0jZGVmaW5lIENGR19TWVBDUgkweGZmZmZmZjg5CisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJMHhmZmZmZmY4OQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTSVVNQ1IgLSBTSVUgTW9kdWxlIENvbmZpZ3VyYXRpb24JCQkJMTEtNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJMHgwMDYxMDQ4MAorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkweDAwNjEwNDgwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMjU2LDkgKzI1Niw5IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwkweDAxODAwMDAwCi0jZGVmaW5lIENGR19TQ0NSCTB4MDE4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCTB4MDE4MDAwMDAKIAotI2RlZmluZSBDRkdfREVSIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIgMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTI3MiwxNCArMjcyLDE0IEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6IERlZmF1bHQgdmFsdWUgb2YgT1IwIGFmdGVyIHJlc2V0CiAgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JMHhmZTAwMDk1NAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkweGYwMDAwNDAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkweGZlMDAwOTU0CisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkweGYwMDAwNDAxCiAKIC8qCiAgKiBCUjEgYW5kIE9SMSAoU0RSQU0pCkBAIC0yODksMTYgKzI4OSwxNiBAQAogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJKDY0IDw8IDIwKQkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkweGZjMDAwODAwCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgweDAwMDAwMEMwIHwgMHgwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCTB4ZmMwMDA4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgweDAwMDAwMEMwIHwgMHgwMSkKIAotI2RlZmluZSBDRkdfTVBUUFIJMHgwMjAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJMHgwMjAwCiAvKiBQVEI9MTYsIEFNQj0wMDEsIEZJWE1FIDEgUkFTIHByZWNoYXJnZSBjeWNsZXMsIDEgUkVBRCBsb29wIGN5Y2xlIChub3QgdXNlZCksCiAgICAxIFdyaXRlIGxvb3AgQ3ljbGUgKG5vdCB1c2VkKSwgMSBUaW1lciBMb29wIEN5Y2xlICovCi0jZGVmaW5lIENGR19NQk1SCTB4MTA5NjQxMTEKLSNkZWZpbmUgQ0ZHX01BUgkJMHgwMDAwMDA4OAorI2RlZmluZSBDT05GSUdfU1lTX01CTVIJMHgxMDk2NDExMQorI2RlZmluZSBDT05GSUdfU1lTX01BUgkJMHgwMDAwMDA4OAogCiAvKgogICogNDA5NglSb3dzIGZyb20gU0RSQU0gZXhhbXBsZSBjb25maWd1cmF0aW9uCkBAIC0zMDcsMTMgKzMwNywxMyBAQAogICogNAlOdW1iZXIgb2YgcmVmcmVzaCBjeWNsZXMgcGVyIHBlcmlvZAogICogNjQJUmVmcmVzaCBjeWNsZSBpbiBtcyBwZXIgbnVtYmVyIG9mIHJvd3MKICAqLwotI2RlZmluZSBDRkdfUFRBX1BFUl9DTEsJKCg0MDk2ICogNjQgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDY0ICogMTAwMCkgLyAoNCAqIDY0KSkKIAogLyogR1BJTy9QSUdHWSBvbiBDUzMgaW5pdGlhbGl6YXRpb24gdmFsdWVzCiAqLwotI2RlZmluZSBDRkdfUElHR1lfQkFTRQkoMHgzMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JKDB4ZmUwMDBkMjQpCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgweDMwMDAwNDAxKQorI2RlZmluZSBDT05GSUdfU1lTX1BJR0dZX0JBU0UJKDB4MzAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkoMHhmZTAwMGQyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgweDMwMDAwNDAxKQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKQEAgLTMzOSwxNSArMzM5LDE1IEBACiAvKiBlbmFibGUgSTJDIGFuZCBzZWxlY3QgdGhlIGhhcmR3YXJlL3NvZnR3YXJlIGRyaXZlciAqLwogI3VuZGVmCUNPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUJQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk1MDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNTAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAjZGVmaW5lIEkyQ19TT0ZUX0RFQ0xBUkFUSU9OUwogCiAvKgogICogU29mdHdhcmUgKGJpdC1iYW5nKSBJMkMgZHJpdmVyIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBJMkNfQkFTRV9ESVIJKENGR19QSUdHWV9CQVNFICsgMHgwNCkKLSNkZWZpbmUgSTJDX0JBU0VfUE9SVAkoQ0ZHX1BJR0dZX0JBU0UgKyAweDA5KQorI2RlZmluZSBJMkNfQkFTRV9ESVIJKENPTkZJR19TWVNfUElHR1lfQkFTRSArIDB4MDQpCisjZGVmaW5lIEkyQ19CQVNFX1BPUlQJKENPTkZJR19TWVNfUElHR1lfQkFTRSArIDB4MDkpCiAKICNkZWZpbmUgU0RBX0JJVAkJMHg0MAogI2RlZmluZSBTQ0xfQklUCQkweDgwCkBAIC0zNzUsMjggKzM3NSwyOCBAQAogCiAjZGVmaW5lIENPTkZJR19JMkNfTVVMVElfQlVTCTEKICNkZWZpbmUgQ09ORklHX0kyQ19DTURfVFJFRQkxCi0jZGVmaW5lIENGR19NQVhfSTJDX0JVUwkJMgotI2RlZmluZSBDRkdfSTJDX0lOSVRfQk9BUkQJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9JMkNfQlVTCQkyCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0lOSVRfQk9BUkQJMQogI2RlZmluZSBDT05GSUdfSTJDX01VWAkJMQogCiAvKiBFRXByb20gc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwkxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9FTkFCTEUKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUwkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfRU5BQkxFCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKIAogLyogU3VwcG9ydCB0aGUgSVZNIEVFcHJvbSAqLwotI2RlZmluZQlDRkdfSVZNX0VFUFJPTV9BRFIJMHg1MAotI2RlZmluZSBDRkdfSVZNX0VFUFJPTV9NQVhfTEVOCTB4NDAwCi0jZGVmaW5lIENGR19JVk1fRUVQUk9NX1BBR0VfTEVOCTB4MTAwCisjZGVmaW5lCUNPTkZJR19TWVNfSVZNX0VFUFJPTV9BRFIJMHg1MAorI2RlZmluZSBDT05GSUdfU1lTX0lWTV9FRVBST01fTUFYX0xFTgkweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0lWTV9FRVBST01fUEFHRV9MRU4JMHgxMDAKIAogLyogSTJDIFNZU01PTiAoTE03NSwgQUQ3NDE0IGlzIGFsbW9zdCBjb21wYXRpYmxlKQkJCSovCiAjZGVmaW5lIENPTkZJR19EVFRfTE03NQkJMQkvKiBPTiBTZW1pJ3MgTE03NQkJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTCXswLCAyLCA0LCA2fQkvKiBTZW5zb3IgYWRkcmVzc2VzCQkqLwotI2RlZmluZSBDRkdfRFRUX01BWF9URU1QCTcwCi0jZGVmaW5lIENGR19EVFRfTE9XX1RFTVAJLTMwCi0jZGVmaW5lIENGR19EVFRfSFlTVEVSRVNJUwkzCi0jZGVmaW5lIENGR19EVFRfQlVTX05VTQkJKENGR19NQVhfSTJDX0JVUykKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTUFYX1RFTVAJNzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTE9XX1RFTVAJLTMwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0hZU1RFUkVTSVMJMworI2RlZmluZSBDT05GSUdfU1lTX0RUVF9CVVNfTlVNCQkoQ09ORklHX1NZU19NQVhfSTJDX0JVUykKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9taW1jMjAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvbWltYzIwMC5oCmluZGV4IGRhMzA3YWMuLjMxMmZkYzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9taW1jMjAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL21pbWMyMDAuaApAQCAtMzMsNyArMzMsNyBAQAogCiAjZGVmaW5lIENPTkZJR19NSU1DMjAwX0VYVF9GTEFTSAkxCiAKLSNkZWZpbmUgQ0ZHX0haCQkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCQkxMDAwCiAKIC8qCiAgKiBTZXQgdXAgdGhlIFBMTCB0byBydW4gYXQgMTQwIE1IeiwgdGhlIENQVSB0byBydW4gYXQgdGhlIFBMTApAQCAtNDEsMTUgKzQxLDE1IEBACiAgKiBhbmQgdGhlIFBCQSBidXMgdG8gcnVuIGF0IDEvNCB0aGUgUExMIGZyZXF1ZW5jeS4KICAqLwogI2RlZmluZSBDT05GSUdfUExMCQkJMQotI2RlZmluZSBDRkdfUE9XRVJfTUFOQUdFUgkJMQotI2RlZmluZSBDRkdfT1NDMF9IWgkJCTEwMDAwMDAwCi0jZGVmaW5lIENGR19QTEwwX0RJVgkJCTEKLSNkZWZpbmUgQ0ZHX1BMTDBfTVVMCQkJMTUKLSNkZWZpbmUgQ0ZHX1BMTDBfU1VQUFJFU1NfQ1lDTEVTCTE2Ci0jZGVmaW5lIENGR19DTEtESVZfQ1BVCQkJMAotI2RlZmluZSBDRkdfQ0xLRElWX0hTQgkJCTEKLSNkZWZpbmUgQ0ZHX0NMS0RJVl9QQkEJCQkyCi0jZGVmaW5lIENGR19DTEtESVZfUEJCCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BPV0VSX01BTkFHRVIJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19PU0MwX0haCQkJMTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX0RJVgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX01VTAkJCTE1CisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9TVVBQUkVTU19DWUNMRVMJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfQ1BVCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9IU0IJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX1BCQQkJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfUEJCCQkJMQogCiAvKgogICogVGhlIFBMTE9QVCByZWdpc3RlciBjb250cm9scyB0aGUgUExMIGxpa2UgdGhpczoKQEAgLTU4LDcgKzU4LDcgQEAKICAqCiAgKiBXZSB3YW50IGljcD0xIChkZWZhdWx0KSBhbmQgaXZjbz0wICg4MC0xNjAgTUh6KSBvciBpdmNvPTIgKDE1MC0yNDBNSHopLgogICovCi0jZGVmaW5lIENGR19QTEwwX09QVAkJCTB4MDQKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX09QVAkJCTB4MDQKIAogI2RlZmluZSBDT05GSUdfVVNBUlQxCQkJMQogI2RlZmluZSBDT05GSUdfTUlNQzIwMF9EQkdMSU5LCQkxCkBAIC04MCw3ICs4MCw3IEBACiAKICNkZWZpbmUgQ09ORklHX1NJTEVOVF9DT05TT0xFCQkxCS8qIGVuYWJsZSBzaWxlbnQgc3RhcnR1cCAqLwogI2RlZmluZSBDT05GSUdfU0lMRU5UX0NPTlNPTEVfSU5QVVQJMQkvKiBkaXNhYmxlIGNvbnNvbGUgaW5wdXRzICovCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZSAqLwogCiAvKgogICogT25seSBpbnRlcnJ1cHQgYXV0b2Jvb3QgaWYgPHNwYWNlPiBpcyBwcmVzc2VkLiBPdGhlcndpc2UsIGdhcmJhZ2UKQEAgLTEyMiw1NiArMTIyLDU2IEBACiAjZGVmaW5lIENPTkZJR19BVE1FTF9VU0FSVAkJMQogI2RlZmluZSBDT05GSUdfTUFDQgkJCTEKICNkZWZpbmUgQ09ORklHX1BJTzIJCQkxCi0jZGVmaW5lIENGR19OUl9QSU9TCQkJNQotI2RlZmluZSBDRkdfSFNEUkFNQwkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUl9QSU9TCQkJNQorI2RlZmluZSBDT05GSUdfU1lTX0hTRFJBTUMJCQkxCiAjZGVmaW5lIENPTkZJR19NTUMJCQkxCiAjZGVmaW5lIENPTkZJR19BVE1FTF9NQ0kJCTEKIAotI2RlZmluZSBDRkdfRENBQ0hFX0xJTkVTWgkJMzIKLSNkZWZpbmUgQ0ZHX0lDQUNIRV9MSU5FU1oJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWgkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfTElORVNaCQkzMgogCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCQkxCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkxCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkxCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkJMHg4MDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTEzNQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJCTB4ODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTEzNQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJCUNGR19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAotI2RlZmluZSBDRkdfSU5UUkFNX0JBU0UJCQlJTlRFUk5BTF9TUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkJRUJJX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSQU1fQkFTRQkJCUlOVEVSTkFMX1NSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJCUVCSV9TRFJBTV9CQVNFCiAKLSNkZWZpbmUgQ0ZHX0ZSQU1fQkFTRQkJCTB4MDgwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZSQU1fU0laRQkJCTB4MjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUkFNX0JBU0UJCQkweDA4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlJBTV9TSVpFCQkJMHgyMDAwMAogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJCTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJNjU1MzYKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfQUREUgkJKENGR19JTlRSQU1fQkFTRSArIENGR19JTlRSQU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX0FERFIJCShDT05GSUdfU1lTX0lOVFJBTV9CQVNFICsgQ09ORklHX1NZU19JTlRSQU1fU0laRSkKIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJCSgxMDI0KjEwMjQpCi0jZGVmaW5lIENGR19ETUFfQUxMT0NfTEVOCQkoMTYzODQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJCSgxMDI0KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfRE1BX0FMTE9DX0xFTgkJKDE2Mzg0KQogCiAvKiBBbGxvdyA0TUIgZm9yIHRoZSBrZXJuZWwgcnVuLXRpbWUgaW1hZ2UgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJCShFQklfU0RSQU1fQkFTRSArIDB4MDA0MDAwMDApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkJKDE2ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkoRUJJX1NEUkFNX0JBU0UgKyAweDAwNDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCQkoMTYgKiAxMDI0KQogCiAvKiBPdGhlciBjb25maWd1cmF0aW9uIHNldHRpbmdzIHRoYXQgc2hvdWxkbid0IGhhdmUgdG8gY2hhbmdlIGFsbCB0aGF0IG9mdGVuICovCi0jZGVmaW5lIENGR19QUk9NUFQJCQkiVS1Cb290PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCQkxNgotI2RlZmluZSBDRkdfUEJTSVpFCQkJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJCSJVLUJvb3Q+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCUVCSV9TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCShDRkdfTUVNVEVTVF9TVEFSVCArIDB4MWYwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlFQklfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArIDB4MWYwMDAwMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgeyAxMTUyMDAsIDM4NDAwLCAxOTIwMCwgOTYwMCwgMjQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgeyAxMTUyMDAsIDM4NDAwLCAxOTIwMCwgOTYwMCwgMjQwMCB9CiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbWwzMDAuaCBiL2luY2x1ZGUvY29uZmlncy9tbDMwMC5oCmluZGV4IDhkNDgyMjEuLjY4ZDBjODUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9tbDMwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9tbDMwMC5oCkBAIC01OSwxNSArNTksMTUgQEAKIAogI2RlZmluZSBDT05GSUdfU1lTVEVNQUNFCTEKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04JMQotI2RlZmluZSBDRkdfU1lTVEVNQUNFX0JBU0UJWFBBUl9PUEJfU1lTQUNFXzBfQkFTRUFERFIKLSNkZWZpbmUgQ0ZHX1NZU1RFTUFDRV9XSURUSAlYUEFSX1hTWVNBQ0VfTUVNX1dJRFRICisjZGVmaW5lIENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UJWFBBUl9PUEJfU1lTQUNFXzBfQkFTRUFERFIKKyNkZWZpbmUgQ09ORklHX1NZU19TWVNURU1BQ0VfV0lEVEgJWFBBUl9YU1lTQUNFX01FTV9XSURUSAogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCTEJLyogZW52aXJvbm1lbnQgaXMgaW4gRUVQUk9NICovCiAKIC8qIGZvbGxvd2luZyBhcmUgdXNlZCBvbmx5IGlmIGVudiBpcyBpbiBFRVBST00gKi8KICNpZmRlZglDT05GSUdfRU5WX0lTX0lOX0VFUFJPTQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCVhQQVJfUEVSU0lTVEVOVF8wX0lJQ18wX0VFUFJPTUFERFIKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUglYUEFSX1BFUlNJU1RFTlRfMF9JSUNfMF9FRVBST01BRERSCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQlYUEFSX1BFUlNJU1RFTlRfMF9JSUNfMF9CQVNFQUREUgogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJMQkvKiB1c2VkIHRvIGNhbGwgb3V0IGNvbnZlcnRfZW52KCkgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQkvKiBhbGxvdyB1c2VycyB0byB1cGRhdGUgZXRoYWRkciBhbmQgc2VyaWFsIyAqLwpAQCAtNzUsNyArNzUsNyBAQAogCiAjaW5jbHVkZSAiLi4vYm9hcmQveGlsaW54L21sMzAwL3hwYXJhbWV0ZXJzLmgiCiAKLSNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCS8qIG5vIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEJLyogbm8gZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlYUEFSX1BFUlNJU1RFTlRfMF9JSUNfMF9ISUdIQUREUiAtIFhQQVJfUEVSU0lTVEVOVF8wX0lJQ18wX0JBU0VBRERSICsgMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkzCS8qIGF1dG9ib290IGFmdGVyIDMgc2Vjb25kcwkqLwpAQCAtODYsNyArODYsNyBAQAogCQkJCSJyb290PS9kZXYveHN5c2FjZS9kaXNjMC9wYXJ0MyBydyIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAKIC8qCkBAIC0xMTcsNTggKzExNyw1OCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0RVQVJUX0NIQU4JCTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUgLTQKLSNkZWZpbmUgQ0ZHX05TMTY1NTAgMQotI2RlZmluZSBDRkdfSU5JVF9DSEFOMQkgMQorI2RlZmluZSBDT05GSUdfU1lTX0RVQVJUX0NIQU4JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFIC00CisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MCAxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9DSEFOMQkgMQogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAgICAgezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDQwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHg0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgwNDAwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KQkvKiBSZXNlcnZlIDE5NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkJLyogUmVzZXJ2ZSAxOTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg4MDAwMDAgIC8qIGluc2lkZSBvZiBTRFJBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDgwMDAwMCAgLyogaW5zaWRlIG9mIFNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MjAwMAkgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL21sNDAxLmggYi9pbmNsdWRlL2NvbmZpZ3MvbWw0MDEuaAppbmRleCAyYTZjNjhjLi42M2QwN2ZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbWw0MDEuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbWw0MDEuaApAQCAtMzYsNTYgKzM2LDU2IEBACiAjZGVmaW5lCUNPTkZJR19YSUxJTlhfVUFSVExJVEUKICNkZWZpbmUJQ09ORklHX1NFUklBTF9CQVNFCVhJTElOWF9VQVJUTElURV9CQVNFQUREUgogI2RlZmluZQlDT05GSUdfQkFVRFJBVEUJCVhJTElOWF9VQVJUTElURV9CQVVEUkFURQotI2RlZmluZQlDRkdfQkFVRFJBVEVfVEFCTEUJeyBDT05GSUdfQkFVRFJBVEUgfQorI2RlZmluZQlDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgQ09ORklHX0JBVURSQVRFIH0KICNlbHNlCiAjaWZkZWYgWElMSU5YX1VBUlQxNjU1MF9CQVNFQUREUgotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJNAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJNAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJWElMSU5YX1VBUlQxNjU1MF9CQVNFQUREUgotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCVhJTElOWF9VQVJUMTY1NTBfQ0xPQ0tfSFoKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJWElMSU5YX1VBUlQxNjU1MF9CQVNFQUREUgorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlYSUxJTlhfVUFSVDE2NTUwX0NMT0NLX0haCiAjZGVmaW5lCUNPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lCUNGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDExNTIwMCB9CisjZGVmaW5lCUNPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxMTUyMDAgfQogI2VuZGlmCiAjZW5kaWYKIAogLyogc2V0dGluZyByZXNldCBhZGRyZXNzICovCi0vKiNkZWZpbmUJQ0ZHX1JFU0VUX0FERFJFU1MJVEVYVF9CQVNFKi8KKy8qI2RlZmluZQlDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJVEVYVF9CQVNFKi8KIAogLyogZXRoZXJuZXQgKi8KICNpZmRlZiBYSUxJTlhfRU1BQ19CQVNFQUREUgogI2RlZmluZSBDT05GSUdfWElMSU5YX0VNQUMJMQotI2RlZmluZSBDRkdfRU5FVAorI2RlZmluZSBDT05GSUdfU1lTX0VORVQKICNlbHNlCiAjaWZkZWYgWElMSU5YX0VNQUNMSVRFX0JBU0VBRERSCiAjZGVmaW5lIENPTkZJR19YSUxJTlhfRU1BQ0xJVEUJMQotI2RlZmluZSBDRkdfRU5FVAorI2RlZmluZSBDT05GSUdfU1lTX0VORVQKICNlbmRpZgogI2VuZGlmCiAjdW5kZWYgRVRfREVCVUcKIAogLyogZ3BpbyAqLwogI2lmZGVmIFhJTElOWF9HUElPX0JBU0VBRERSCi0jZGVmaW5lCUNGR19HUElPXzAJCTEKLSNkZWZpbmUJQ0ZHX0dQSU9fMF9BRERSCQlYSUxJTlhfR1BJT19CQVNFQUREUgorI2RlZmluZQlDT05GSUdfU1lTX0dQSU9fMAkJMQorI2RlZmluZQlDT05GSUdfU1lTX0dQSU9fMF9BRERSCQlYSUxJTlhfR1BJT19CQVNFQUREUgogI2VuZGlmCiAKIC8qIGludGVycnVwdCBjb250cm9sbGVyICovCiAjaWZkZWYgWElMSU5YX0lOVENfQkFTRUFERFIKLSNkZWZpbmUJQ0ZHX0lOVENfMAkJMQotI2RlZmluZQlDRkdfSU5UQ18wX0FERFIJCVhJTElOWF9JTlRDX0JBU0VBRERSCi0jZGVmaW5lCUNGR19JTlRDXzBfTlVNCQlYSUxJTlhfSU5UQ19OVU1fSU5UUl9JTlBVVFMKKyNkZWZpbmUJQ09ORklHX1NZU19JTlRDXzAJCTEKKyNkZWZpbmUJQ09ORklHX1NZU19JTlRDXzBfQUREUgkJWElMSU5YX0lOVENfQkFTRUFERFIKKyNkZWZpbmUJQ09ORklHX1NZU19JTlRDXzBfTlVNCQlYSUxJTlhfSU5UQ19OVU1fSU5UUl9JTlBVVFMKICNlbmRpZgogCiAvKiB0aW1lciAqLwogI2lmZGVmIFhJTElOWF9USU1FUl9CQVNFQUREUgogI2lmIChYSUxJTlhfVElNRVJfSVJRICE9IC0xKQotI2RlZmluZQlDRkdfVElNRVJfMAkJMQotI2RlZmluZQlDRkdfVElNRVJfMF9BRERSCVhJTElOWF9USU1FUl9CQVNFQUREUgotI2RlZmluZQlDRkdfVElNRVJfMF9JUlEJCVhJTElOWF9USU1FUl9JUlEKKyNkZWZpbmUJQ09ORklHX1NZU19USU1FUl8wCQkxCisjZGVmaW5lCUNPTkZJR19TWVNfVElNRVJfMF9BRERSCVhJTElOWF9USU1FUl9CQVNFQUREUgorI2RlZmluZQlDT05GSUdfU1lTX1RJTUVSXzBfSVJRCQlYSUxJTlhfVElNRVJfSVJRCiAjZGVmaW5lCUZSRVFVRU5DRQkJWElMSU5YX0NMT0NLX0ZSRVEKLSNkZWZpbmUJQ0ZHX1RJTUVSXzBfUFJFTE9BRAkoIEZSRVFVRU5DRS8xMDAwICkKKyNkZWZpbmUJQ09ORklHX1NZU19USU1FUl8wX1BSRUxPQUQJKCBGUkVRVUVOQ0UvMTAwMCApCiAjZW5kaWYKICNlbHNlCiAjaWZkZWYgWElMSU5YX0NMT0NLX0ZSRVEKQEAgLTk1LDIwICs5NSwyMCBAQAogI2VuZGlmCiAjZW5kaWYKIC8qIEZTTCAqLwotLyogI2RlZmluZQlDRkdfRlNMXzIgKi8KKy8qICNkZWZpbmUJQ09ORklHX1NZU19GU0xfMiAqLwogLyogI2RlZmluZQlGU0xfSU5UUl8yCTEgKi8KIAogLyoKICAqIG1lbW9yeSBsYXlvdXQgLSBFeGFtcGxlCiAgKiBURVhUX0JBU0UgPSAweDEyMDBfMDAwMDsKLSAqIENGR19TUkFNX0JBU0UgPSAweDEwMDBfMDAwMDsKLSAqIENGR19TUkFNX1NJWkUgPSAweDA0MDBfMDAwMDsKKyAqIENPTkZJR19TWVNfU1JBTV9CQVNFID0gMHgxMDAwXzAwMDA7CisgKiBDT05GSUdfU1lTX1NSQU1fU0laRSA9IDB4MDQwMF8wMDAwOwogICoKLSAqIENGR19HQkxfREFUQV9PRkZTRVQgPSAweDEwMDBfMDAwMCArIDB4MDQwMF8wMDAwIC0gMHgxMDAwID0gMHgxM0ZGX0YwMDAKLSAqIENGR19NT05JVE9SX0JBU0UgPSAweDEzRkZfRjAwMCAtIDB4NDAwMDAgPSAweDEzRkJfRjAwMAotICogQ0ZHX01BTExPQ19CQVNFID0gMHgxM0ZCX0YwMDAgLSAweDQwMDAwID0gMHgxM0Y3X0YwMDAKKyAqIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUID0gMHgxMDAwXzAwMDAgKyAweDA0MDBfMDAwMCAtIDB4MTAwMCA9IDB4MTNGRl9GMDAwCisgKiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA9IDB4MTNGRl9GMDAwIC0gMHg0MDAwMCA9IDB4MTNGQl9GMDAwCisgKiBDT05GSUdfU1lTX01BTExPQ19CQVNFID0gMHgxM0ZCX0YwMDAgLSAweDQwMDAwID0gMHgxM0Y3X0YwMDAKICAqCi0gKiAweDEwMDBfMDAwMAlDRkdfU0RSQU1fQkFTRQorICogMHgxMDAwXzAwMDAJQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKgkJCQkJRlJFRQogICogMHgxMjAwXzAwMDAJVEVYVF9CQVNFCiAgKgkJVS1CT09UIGNvZGUKQEAgLTExNiw2OCArMTE2LDY4IEBACiAgKgkJCQkJRlJFRQogICoKICAqCQkJCQlTVEFDSwotICogMHgxM0Y3X0YwMDAJQ0ZHX01BTExPQ19CQVNFCisgKiAweDEzRjdfRjAwMAlDT05GSUdfU1lTX01BTExPQ19CQVNFCiAgKgkJCQkJTUFMTE9DX0FSRUEJMjU2a0IJQWxsb2MKLSAqIDB4MTFGQl9GMDAwCUNGR19NT05JVE9SX0JBU0UKKyAqIDB4MTFGQl9GMDAwCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFCiAgKgkJCQkJTU9OSVRPUl9DT0RFCTI1NmtCCUVudgotICogMHgxM0ZGX0YwMDAJQ0ZHX0dCTF9EQVRBX09GRlNFVAorICogMHgxM0ZGX0YwMDAJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKICAqCQkJCQlHTE9CQUxfREFUQQk0a0IJYmQsIGdkCi0gKiAweDE0MDBfMDAwMAlDRkdfU0RSQU1fQkFTRSArIENGR19TRFJBTV9TSVpFCisgKiAweDE0MDBfMDAwMAlDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBDT05GSUdfU1lTX1NEUkFNX1NJWkUKICAqLwogCiAvKiBkZHIgc2RyYW0gLSBtYWluIG1lbW9yeSAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJWElMSU5YX1JBTV9TVEFSVAotI2RlZmluZQlDRkdfU0RSQU1fU0laRQkJWElMSU5YX1JBTV9TSVpFCi0jZGVmaW5lCUNGR19NRU1URVNUX1NUQVJUCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lCUNGR19NRU1URVNUX0VORAkJKENGR19TRFJBTV9CQVNFICsgMHgxMDAwKQorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCVhJTElOWF9SQU1fU1RBUlQKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9TSVpFCQlYSUxJTlhfUkFNX1NJWkUKKyNkZWZpbmUJQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwKQogCiAvKiBnbG9iYWwgcG9pbnRlciAqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQkweDEwMDAJLyogc2l6ZSBvZiBnbG9iYWwgZGF0YSAqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMHgxMDAwCS8qIHNpemUgb2YgZ2xvYmFsIGRhdGEgKi8KIC8qIHN0YXJ0IG9mIGdsb2JhbCBkYXRhICovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9PRkZTRVQJKENGR19TRFJBTV9CQVNFICsgQ0ZHX1NEUkFNX1NJWkUgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIENPTkZJR19TWVNfU0RSQU1fU0laRSAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogLyogbW9uaXRvciBjb2RlICovCiAjZGVmaW5lCVNJWkUJCQkweDQwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJU0laRQotI2RlZmluZQlDRkdfTU9OSVRPUl9CQVNFCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gQ0ZHX01PTklUT1JfTEVOKQotI2RlZmluZQlDRkdfTU9OSVRPUl9FTkQJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJU0laRQotI2RlZmluZQlDRkdfTUFMTE9DX0JBU0UJCShDRkdfTU9OSVRPUl9CQVNFIC0gQ0ZHX01BTExPQ19MRU4pCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCVNJWkUKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gQ09ORklHX1NZU19NT05JVE9SX0xFTikKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0VORAkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQlTSVpFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTikKIAogLyogc3RhY2sgKi8KLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19NT05JVE9SX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX01PTklUT1JfQkFTRQogCiAvKiNkZWZpbmUJUkFNRU5WICovCiAjZGVmaW5lCUZMQVNICiAKICNpZmRlZiBGTEFTSAotCSNkZWZpbmUJQ0ZHX0ZMQVNIX0JBU0UJCVhJTElOWF9GTEFTSF9TVEFSVAotCSNkZWZpbmUJQ0ZHX0ZMQVNIX1NJWkUJCVhJTElOWF9GTEFTSF9TSVpFCi0JI2RlZmluZQlDRkdfRkxBU0hfQ0ZJCQkxCisJI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVhJTElOWF9GTEFTSF9TVEFSVAorCSNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9TSVpFCQlYSUxJTlhfRkxBU0hfU0laRQorCSNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9DRkkJCTEKIAkjZGVmaW5lCUNPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLQkjZGVmaW5lCUNGR19GTEFTSF9FTVBUWV9JTkZPCTEJLyogP2VtcHR5IHNlY3RvciAqLwotCSNkZWZpbmUJQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0JI2RlZmluZQlDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotCSNkZWZpbmUJQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JCS8qIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24gKi8KKwkjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkxCS8qID9lbXB0eSBzZWN0b3IgKi8KKwkjZGVmaW5lCUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKwkjZGVmaW5lCUNPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworCSNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCQkvKiBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uICovCiAKIAkjaWZkZWYJUkFNRU5WCiAJCSNkZWZpbmUJQ09ORklHX0VOVl9JU19OT1dIRVJFCTEKIAkJI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAotCQkjZGVmaW5lCUNPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NJWkUpCisJCSNkZWZpbmUJQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NJWkUpCiAKIAkjZWxzZQkvKiAhUkFNRU5WICovCiAJCSNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAJCSNkZWZpbmUJQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiAyNTZLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KLQkJI2RlZmluZQlDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArICgyICogQ09ORklHX0VOVl9TRUNUX1NJWkUpKQorCQkjZGVmaW5lCUNPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgyICogQ09ORklHX0VOVl9TRUNUX1NJWkUpKQogCQkjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHg0MDAwMAogCSNlbmRpZiAvKiAhUkFNQk9PVCAqLwogI2Vsc2UgLyogIUZMQVNIICovCiAJLyogRU5WIGluIFJBTSAqLwotCSNkZWZpbmUJQ0ZHX05PX0ZMQVNICQkxCisJI2RlZmluZQlDT05GSUdfU1lTX05PX0ZMQVNICQkxCiAJI2RlZmluZQlDT05GSUdfRU5WX0lTX05PV0hFUkUJMQogCSNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDEwMDAKLQkjZGVmaW5lCUNPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NJWkUpCi0JI2RlZmluZQlDRkdfRkxBU0hfUFJPVEVDVElPTgkJLyogaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbiAqLworCSNkZWZpbmUJQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NJWkUpCisJI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JCS8qIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24gKi8KICNlbmRpZiAvKiAhRkxBU0ggKi8KIAogLyogc3lzdGVtIGFjZSAqLwpAQCAtMTg1LDggKzE4NSw4IEBACiAJI2RlZmluZQlDT05GSUdfU1lTVEVNQUNFCiAJLyogI2RlZmluZSBERUJVR19TWVNURU1BQ0UgKi8KIAkjZGVmaW5lCVNZU1RFTUFDRV9DT05GSUdfRlBHQQotCSNkZWZpbmUJQ0ZHX1NZU1RFTUFDRV9CQVNFCVhJTElOWF9TWVNBQ0VfQkFTRUFERFIKLQkjZGVmaW5lCUNGR19TWVNURU1BQ0VfV0lEVEgJWElMSU5YX1NZU0FDRV9NRU1fV0lEVEgKKwkjZGVmaW5lCUNPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UJWElMSU5YX1NZU0FDRV9CQVNFQUREUgorCSNkZWZpbmUJQ09ORklHX1NZU19TWVNURU1BQ0VfV0lEVEgJWElMSU5YX1NZU0FDRV9NRU1fV0lEVEgKIAkjZGVmaW5lCUNPTkZJR19ET1NfUEFSVElUSU9OCiAjZW5kaWYKIApAQCAtMjA4LDcgKzIwOCw3IEBACiAjZGVmaW5lIENPTkZJR19DTURfSVJRCiAjZGVmaW5lIENPTkZJR19DTURfTUZTTAogCi0jaWZuZGVmIENGR19FTkVUCisjaWZuZGVmIENPTkZJR19TWVNfRU5FVAogCSN1bmRlZiBDT05GSUdfQ01EX05FVAogI2Vsc2UKIAkjZGVmaW5lIENPTkZJR19DTURfUElORwpAQCAtMjQ1LDEyICsyNDUsMTIgQEAKICNlbmRpZgogCiAvKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zICovCi0jZGVmaW5lCUNGR19QUk9NUFQJIlUtQm9vdC1tT05TdFI+ICIKLSNkZWZpbmUJQ0ZHX0NCU0laRQk1MTIJLyogc2l6ZSBvZiBjb25zb2xlIGJ1ZmZlciAqLwotI2RlZmluZQlDRkdfUEJTSVpFCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpIC8qIHByaW50IGJ1ZmZlciBzaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE1CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAotI2RlZmluZQlDRkdfTE9BRF9BRERSCTB4MTIwMDAwMDAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIlUtQm9vdC1tT05TdFI+ICIKKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJNTEyCS8qIHNpemUgb2YgY29uc29sZSBidWZmZXIgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KSAvKiBwcmludCBidWZmZXIgc2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTUJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAorI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkweDEyMDAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKICNkZWZpbmUJQ09ORklHX0JPT1RERUxBWQkzMAogI2RlZmluZQlDT05GSUdfQk9PVEFSR1MJCSJyb290PXJvbWZzIgpAQCAtMjYyLDggKzI2Miw4IEBACiAjZGVmaW5lCUNPTkZJR19FVEhBRERSCQkwMDpFMDowQzowMDowMDpGRAogCiAvKiBhcmNoaXRlY3R1cmUgZGVwZW5kZW50IGNvZGUgKi8KLSNkZWZpbmUJQ0ZHX1VTUl9FWENFUAkvKiB1c2VyIGV4Y2VwdGlvbiAqLwotI2RlZmluZSBDRkdfSFoJMTAwMAorI2RlZmluZQlDT05GSUdfU1lTX1VTUl9FWENFUAkvKiB1c2VyIGV4Y2VwdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCTEwMDAKIAogI2RlZmluZQlDT05GSUdfUFJFQk9PVAkJImVjaG8gVS1CT09UIGZvciBNTDQwMTtzZXRlbnYgcHJlYm9vdDtlY2hvIgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbWw1MDcuaCBiL2luY2x1ZGUvY29uZmlncy9tbDUwNy5oCmluZGV4IDIyYTk3MmYuLmM2Mzc5MDQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9tbDUwNy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9tbDUwNy5oCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiLi4vYm9hcmQveGlsaW54L21sNTA3L3hwYXJhbWV0ZXJzLmgiCiAKIC8qTWVtIE1hcCovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFX01CCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkVfTUIJMjU2CiAKIC8qRW52Ki8KICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCkBAIC0zNCwxMiArMzQsMTIgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoWFBBUl9GTEFTSF9NRU0wX0JBU0VBRERSK0NPTkZJR19FTlZfT0ZGU0VUKQogCiAvKk1pc2MqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkibWw1MDc6LyMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkibWw1MDc6LyMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICovCiAjZGVmaW5lIENPTkZJR19QUkVCT09UCQkiZWNobyBVLUJvb3QgaXMgdXAgYW5kIHJ1bm5pbmluZzsiCiAKIC8qRmxhc2gqLwotI2RlZmluZQlDRkdfRkxBU0hfU0laRQkJKDMyKjEwMjQqMTAyNCkKLSNkZWZpbmUJQ0ZHX01BWF9GTEFTSF9TRUNUCTI1OQorI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCSgzMioxMDI0KjEwMjQpCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU5CiAjZGVmaW5lIE1URElEU19ERUZBVUxUCQkibm9yMD1tbDUwNy1mbGFzaCIKICNkZWZpbmUgTVREUEFSVFNfREVGQVVMVAkibXRkcGFydHM9bWw1MDctZmxhc2g6LSh1c2VyKSIKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL21vZG5ldDUwLmggYi9pbmNsdWRlL2NvbmZpZ3MvbW9kbmV0NTAuaAppbmRleCA4ZjQwMTFhLi5jNGY1Mjg2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbW9kbmV0NTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbW9kbmV0NTAuaApAQCAtNDUsOCArNDUsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtODQsNyArODQsNyBAQAogI2RlZmluZSBDT05GSUdfTkVUTUFTSyAgICAgICAgICAyNTUuMjU1LjI1NS4wCiAjZGVmaW5lIENPTkZJR19JUEFERFIJCTE5Mi4xNjguMzAuMgogI2RlZmluZSBDT05GSUdfU0VSVkVSSVAgICAgICAgICAxOTIuMTY4LjMwLjEyMgotI2RlZmluZSBDRkdfRVRIX1BIWV9BRERSICAgICAgICAweDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9QSFlfQUREUiAgICAgICAgMHgxMDAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfVEFHICAgICAgLyogc3VibWl0IGJvb3RhcmdzIHRvIGtlcm5lbCAqLwogCiAvKiNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkxMCovCkBAIC0xMDEsMjQgKzEwMSwyNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIm1vZG5ldDUwICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAgICAgICAgICAgICAgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJtb2RuZXQ1MCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAgICAgICAgICAgICAgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgwMDUwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDUwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTkwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMiBrSHogKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTkwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMiBrSHogKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTU1LDE5ICsxNTUsMTkgQEAKICNkZWZpbmUgUEhZU19FWFRfMQkJMHgzMDAwMDAwMCAvKiBFeHRlbnNpb25zIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19FWFRfU0laRQkJMHgwMTAwMDAwMCAvKiAzMiBNQiBtZW1vcnkgbWFwcGVkIEkvTyAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCVBIWVNfRkxBU0hfMV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJUEhZU19GTEFTSF8xX1NJWkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19NQUlOX1NFQ1RfU0laRSAgICAgIDB4MDAwMTAwMDAgIC8qIG1haW4gc2l6ZSBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkzNQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUlOX1NFQ1RfU0laRSAgICAgIDB4MDAwMTAwMDAgIC8qIG1haW4gc2l6ZSBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAvKiBlbnZpcm9ubWVudCBzZXR0aW5ncyAqLwogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbW90aW9ucHJvLmggYi9pbmNsdWRlL2NvbmZpZ3MvbW90aW9ucHJvLmgKaW5kZXggY2FlNDlkZS4uYjNmMTZkNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL21vdGlvbnByby5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9tb3Rpb25wcm8uaApAQCAtNzUsNyArNzUsNyBAQAogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQzEgKi8KICNkZWZpbmUgQ09ORklHX05FVENPTlNPTEUJMQkvKiBuZXR3b3JrIGNvbnNvbGUgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAKIC8qCkBAIC0xNjYsMTMgKzE2NiwxMyBAQAogLyoKICAqIENsb2NrIGNvbmZpZ3VyYXRpb246IFNZU19YVEFMSU4gPSAzM01IegogICovCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMAogCiAKIC8qCiAgKiBTZXQgSVBCIHNwZWVkIHRvIDEwME1IegogICovCi0jZGVmaW5lIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSworI2RlZmluZSBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCiAKIAogLyoKQEAgLTE4Myw4ICsxODMsOCBAQAogICogU2V0dGluZyBNQkFSIHRvIG90aGVyd2lzZSB3aWxsIGNhdXNlIHN5c3RlbSBoYW5nIHdoZW4gdXNpbmcgU21hcnRETUEgc3VjaAogICogYXMgbmV0d29yayBjb21tYW5kcy4KICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhmMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCiAKIC8qCiAgKiBJZiBidWlsZGluZyBmb3IgcnVubmluZyBvdXQgb2YgU0RSQU0sIHRoZW4gTUJBUiBoYXMgYmVlbiBzZXQgdXAgYmVmb3JlaGFuZApAQCAtMTkyLDYxICsxOTIsNjEgQEAKICAqIE1CQVIsIGFzIGdpdmVuIGluIHRoZSBkb2NjdW1lbnRhdGlvbi4KICAqLwogI2lmIFRFWFRfQkFTRSA9PSAweDAwMTAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweGYwMDAwMDAwCiAjZWxzZSAvKiBURVhUX0JBU0UgIT0gMHgwMDEwMDAwMCAqLwotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKICNlbmRpZiAvKiBURVhUX0JBU0UgPT0gMHgwMDEwMDAwMCAqLwogCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEwMjQgPDwgMTApCS8qIDEgTWlCIGZvciBtYWxsb2MoKSAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogaW5pdGlhbCBtZW0gbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTAyNCA8PCAxMCkJLyogMSBNaUIgZm9yIG1hbGxvYygpICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogaW5pdGlhbCBtZW0gbWFwIGZvciBMaW51eCAqLwogCiAKIC8qCiAgKiBDaGlwIHNlbGVjdHMgY29uZmlndXJhdGlvbgogICovCiAvKiBCb290IENoaXBzZWxlY3QgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDQ1RDAwCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDQ1RDAwCiAKIC8qIEZsYXNoIG1lbW9yeSBhZGRyZXNzaW5nICovCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0NTMF9DRkcJCUNGR19CT09UQ1NfQ0ZHCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NGRwkJQ09ORklHX1NZU19CT09UQ1NfQ0ZHCiAKIC8qIER1YWwgUG9ydCBTUkFNIC0tIEtvbGxtb3JnZW4gRHJpdmUgbWVtb3J5IGFkZHJlc3NpbmcgKi8KLSNkZWZpbmUgQ0ZHX0NTMV9TVEFSVAkJMHg1MDAwMDAwMAotI2RlZmluZSBDRkdfQ1MxX1NJWkUJCTB4MTAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9DRkcJCTB4MDUwNTU4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU1RBUlQJCTB4NTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRQkJMHgxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DRkcJCTB4MDUwNTU4MDAKIAogLyogTG9jYWwgcmVnaXN0ZXIgYWNjZXNzICovCi0jZGVmaW5lIENGR19DUzJfU1RBUlQJCTB4NTAwMTAwMDAKLSNkZWZpbmUgQ0ZHX0NTMl9TSVpFCQkweDEwMDAwCi0jZGVmaW5lIENGR19DUzJfQ0ZHCQkweDA1MDU1ODAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NUQVJUCQkweDUwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NJWkUJCTB4MTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfQ0ZHCQkweDA1MDU1ODAwCiAKIC8qIEFueWJ1cyBDb21wYWN0Q29tIE1vZHVsZSBtZW1vcnkgYWRkcmVzc2luZyAqLwotI2RlZmluZSBDRkdfQ1MzX1NUQVJUCQkweDUwMDIwMDAwCi0jZGVmaW5lIENGR19DUzNfU0laRQkJMHgxMDAwMAotI2RlZmluZSBDRkdfQ1MzX0NGRwkJMHgwNTA1NTgwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19TVEFSVAkJMHg1MDAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19TSVpFCQkweDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX0NGRwkJMHgwNTA1NTgwMAogCiAvKiBObyBidXJzdCBhbmQgZGVhZCBjeWNsZSA9IDIgZm9yIGFsbCBDU3MgKi8KLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgyMjIyMjIyMgorI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MjIyMjIyMjIKIAogCiAvKgpAQCAtMjYyLDEzICsyNjIsMTMgQEAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAxMDAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF8xNkJJVAkJLyogRmxhc2ggaXMgMTYtYml0ICovCiAKIC8qCkBAIC0yODQsMTQgKzI4NCwxNCBAQAogLyoKICAqIElERS9BVEEgY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQogI2RlZmluZSBDT05GSUdfSURFX1BSRUlOSVQKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MDA2MAotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJQ0ZHX0FUQV9EQVRBX09GRlNFVAotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJNAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweDAwNjAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAlDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJCTQKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04KIAogCkBAIC0yOTksMjUgKzI5OSwyNSBAQAogICogSTJDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMgkvKiBzZWxlY3QgSTJDIG1vZHVsZSAjMiAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBzZWxlY3QgSTJDIG1vZHVsZSAjMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIDEwMCBrSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkxCS8qIDIgYnl0ZXMgcGVyIHdyaXRlIGN5Y2xlICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk1CS8qIDJtcy9jeWNsZSArIDNtcyBleHRyYSAqLwotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMJCTEJLyogMiBFRVBST01zIChhZGRyOjUwLDUyKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTEJLyogMiBieXRlcyBwZXIgd3JpdGUgY3ljbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk1CS8qIDJtcy9jeWNsZSArIDNtcyBleHRyYSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCQkxCS8qIDIgRUVQUk9NcyAoYWRkcjo1MCw1MikgKi8KIAogCiAvKgogICogUlRDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfUlRDX0RTMTMzNwkxCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CiAKIAogLyoKQEAgLTM1NCw3ICszNTQsNyBAQAogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogLyogVGhpcyBoYXMgdG8gYmUgYSBtdWx0aXBsZSBvZiB0aGUgRmxhc2ggc2VjdG9yIHNpemUgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCiAKQEAgLTM3NCw0OCArMzc0LDQ4IEBACiAgKiBUaW1lcjogQ0FOMi9HUElPCiAgKiBQU0M2L0lSREE6IEdQSU8gKGRlZmF1bHQpCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDExMDVhMDA0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4MTEwNWEwMDQKIAogCiAvKgogICogTW90aW9uLVBSTydzIENQTEQgcmV2aXNpb24gY29udHJvbCByZWdpc3RlcgogICovCi0jZGVmaW5lIENQTERfUkVWX1JFR0lTVEVSCShDRkdfQ1MyX1NUQVJUICsgMHgwNikKKyNkZWZpbmUgQ1BMRF9SRVZfUkVHSVNURVIJKENPTkZJR19TWVNfQ1MyX1NUQVJUICsgMHgwNikKIAogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwM2UwMDAwMAkvKiAxIC4uLiA2MiBNaUIgaW4gRFJBTSAqLwotI2RlZmluZSBDRkdfQUxUX01FTVRFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAzZTAwMDAwCS8qIDEgLi4uIDYyIE1pQiBpbiBEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIwMDAwMAkvKiBkZWZhdWx0IGtlcm5lbCBsb2FkIGFkZHIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwCS8qIGRlZmF1bHQga2VybmVsIGxvYWQgYWRkciAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIAogLyoKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAgKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KIAogCiAvKiBOb3QgbmVlZGVkIGZvciBNUEMgNXh4eCBVLUJvb3QsIGJ1dCB1c2VkIGJ5IHRvb2xzL3VwZGF0ZXIgKi8KLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhmZmYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhmZmYwMDEwMAogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCiAjZGVmaW5lIENPTkZJR19PRl9MSUJGRFQJMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL21wMnVzYi5oIGIvaW5jbHVkZS9jb25maWdzL21wMnVzYi5oCmluZGV4IGJhMWVkMGQuLjJmZmVhZTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9tcDJ1c2IuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbXAydXNiLmgKQEAgLTQ1LDkgKzQ1LDkgQEAKICNkZWZpbmUgQ09ORklHX1NFVFVQX01FTU9SWV9UQUdTIDEKICNkZWZpbmUgQ09ORklHX0lOSVRSRF9UQUcJMQogCi0jZGVmaW5lIENGR19BVE1FTF9QTExfSU5JVF9CVUcJMQorI2RlZmluZSBDT05GSUdfU1lTX0FUTUVMX1BMTF9JTklUX0JVRwkxCiAjaWZuZGVmIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQKLSNkZWZpbmUgQ0ZHX1VTRV9NQUlOX09TQ0lMTEFUT1IJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTRV9NQUlOX09TQ0lMTEFUT1IJMQogLyogZmxhc2ggKi8KICNkZWZpbmUgTUNfUFVJQV9WQUwJMHgwMDAwMDAwMAogI2RlZmluZSBNQ19QVVBfVkFMCTB4MDAwMDAwMDAKQEAgLTgxLDEyICs4MSwxMiBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAKLSNkZWZpbmUgQ0ZHX0FUOTFDX0JSR1JfRElWSVNPUgkzMwkvKiBoYXJkY29kZSBzbyBubyBfX2RpdnNpMyA6IEFUOTFDX01BU1RFUl9DTE9DSyAvKGJhdWRyYXRlICogMTYpICovCisjZGVmaW5lIENPTkZJR19TWVNfQVQ5MUNfQlJHUl9ESVZJU09SCTMzCS8qIGhhcmRjb2RlIHNvIG5vIF9fZGl2c2kzIDogQVQ5MUNfTUFTVEVSX0NMT0NLIC8oYmF1ZHJhdGUgKiAxNikgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTEwNywyNSArMTA3LDI1IEBACiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCTEKICNkZWZpbmUgQ09ORklHX0FUOTFDX1BRRlBfVUhQQlVHIDEKIAotI3VuZGVmIENGR19VU0JfT0hDSV9CT0FSRF9JTklUCi0jZGVmaW5lIENGR19VU0JfT0hDSV9DUFVfSU5JVAkJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfUkVHU19CQVNFCQlBVDkxX1VTQl9IT1NUX0JBU0UKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkJImF0OTFybTkyMDAiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQorI3VuZGVmIENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCQkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfUkVHU19CQVNFCQlBVDkxX1VTQl9IT1NUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJCSJhdDkxcm05MjAwIgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1CiAKICN1bmRlZiBDT05GSUdfSEFSRF9JMkMKIAogI2lmZGVmIENPTkZJR19IQVJEX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkwCS8qIG5vdCB1c2VkICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTAJLyogbm90IHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTAJLyogbm90IHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTAJLyogbm90IHVzZWQgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19SUzVDMzcyQQkJLyogUklDT0ggSTJDIFJUQyAqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4MzIKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDMyCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKICNlbmRpZgogLyogc3RpbGwgYWJvdXQgMjAga0IgZnJlZSB3aXRoIHRoaXMgZGVmaW5lZCAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkgICAgICAzCiAKQEAgLTE3NCwxNCArMTc0LDE0IEBACiAjZW5kaWYKIAogCi0jZGVmaW5lIENGR19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAKICNkZWZpbmUgQ09ORklHX05SX0RSQU1fQkFOS1MJMQogI2RlZmluZSBQSFlTX1NEUkFNCQkweDIwMDAwMDAwCiAjZGVmaW5lIFBIWVNfU0RSQU1fU0laRQkJMHgwODAwMDAwMAkvKiAxMjggbWVncyAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCVBIWVNfU0RSQU0KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQlDRkdfTUVNVEVTVF9TVEFSVCArIFBIWVNfU0RSQU1fU0laRSAtIDI2MjE0NAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJUEhZU19TRFJBTQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQlDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgKyBQSFlTX1NEUkFNX1NJWkUgLSAyNjIxNDQKIAogI2RlZmluZSBDT05GSUdfRFJJVkVSX0VUSEVSCiAjZGVmaW5lIENPTkZJR19ORVRfUkVUUllfQ09VTlQJCTIwCkBAIC0xODksMzUgKzE4OSwzNSBAQAogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJCTB4MTAwMDAwMDAKICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkJMHgxMDAwMDAwICAvKiAxNiBtZWdzIG1haW4gZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTI1NgotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkJKDIgKiBDRkdfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCQkoMiAqIENGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0xPQ0tfVE9VVAkJKDEwKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0ICovCi0jZGVmaW5lIENGR19GTEFTSF9VTkxPQ0tfVE9VVAkJKDEwKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCQkJCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCQkoMiAqIENPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkJKDIgKiBDT05GSUdfU1lTX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0xPQ0tfVE9VVAkJKDEwKkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFNldCBMb2NrIEJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCQkoMTAqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkJCQkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICQkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkJMHgyMDAwMAkJLyogYWZ0ZXIgdS1ib290LmJpbiAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ0ZHX0ZMQVNIX0JBU0UrQ09ORklHX0VOVl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UrQ09ORklHX0VOVl9PRkZTRVQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJCTB4MjAwMDAKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIxMDAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgyMTAwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAsIDU3NjAwLCAzODQwMCwgMTkyMDAsIDk2MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwLCA1NzYwMCwgMzg0MDAsIDE5MjAwLCA5NjAwIH0KIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkzMgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkzMgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfREVSRUdJU1RFUiAgICAgICAgICAgLyogbmVlZHMgZGV2aWNlX2RlcmVnaXN0ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfREVSRUdJU1RFUiAgICAgICAgICAgLyogbmVlZHMgZGV2aWNlX2RlcmVnaXN0ZXIgKi8KICNkZWZpbmUgTElUVExFRU5ESUFOICAgICAgICAgICAgMSAgICAgICAvKiB1c2VkIGJ5IHVzYl9vaGNpLmMgICovCiAKLSNkZWZpbmUgQ0ZHX0haIDEwMDAKLSNkZWZpbmUgQ0ZHX0haX0NMT0NLIChBVDkxQ19NQVNURVJfQ0xPQ0svMikJLyogQVQ5MUNfVEMwX0NNUiBpcyBpbXBsaWNpdGx5IHNldCB0byAqLworI2RlZmluZSBDT05GSUdfU1lTX0haIDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWl9DTE9DSyAoQVQ5MUNfTUFTVEVSX0NMT0NLLzIpCS8qIEFUOTFDX1RDMF9DTVIgaXMgaW1wbGljaXRseSBzZXQgdG8gKi8KIAkJCQkJCS8qIEFUOTFDX1RDX1RJTUVSX0RJVjFfQ0xPQ0sgKi8KIAogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgzMioxMDI0KQkvKiByZWd1bGFyIHN0YWNrICovCkBAIC0yMjYsNyArMjI2LDcgQEAKICNlcnJvciBDT05GSUdfVVNFX0lSUSBub3Qgc3VwcG9ydGVkCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJIDEJLyogZW5ibGUgbnVsbCBkZXZpY2UJCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJIDEJLyogZW5ibGUgbnVsbCBkZXZpY2UJCSovCiAjdW5kZWYgQ09ORklHX1NJTEVOVF9DT05TT0xFCQkvKiBlbmFibGUgc2lsZW50IHN0YXJ0dXAJKi8KIAogI2RlZmluZSBDT05GSUdfQVVUT0JPT1RfS0VZRUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9tcGM3NDQ4aHBjMi5oIGIvaW5jbHVkZS9jb25maWdzL21wYzc0NDhocGMyLmgKaW5kZXggMzA4YTdiOS4uNDgzYmM1MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL21wYzc0NDhocGMyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL21wYzc0NDhocGMyLmgKQEAgLTQyLDE4ICs0MiwxOCBAQAogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCS8qIEhpZ2ggQkFUcyBzdXBwb3J0ZWQgKi8KICNkZWZpbmUgQ09ORklHX0FMVElWRUMJCS8qIHVuZGVmIHRvIGRpc2FibGUgKi8KIAotI2RlZmluZSBDRkdfQk9BUkRfTkFNRQkJIk1QQzc0NDggSFBDIElJIgorI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX05BTUUJCSJNUEM3NDQ4IEhQQyBJSSIKICNkZWZpbmUgQ09ORklHX0lERU5UX1NUUklORwkiIEZyZWVzY2FsZSBNUEM3NDQ4IEhQQyBJSSIKIAotI2RlZmluZSBDRkdfT0NOX0NMSwkJMTMzMDAwMDAwCS8qIDEzMyBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NPTkZJR19CVVNfQ0xLCTEzMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTl9DTEsJCTEzMzAwMDAwMAkvKiAxMzMgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ09ORklHX0JVU19DTEsJMTMzMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0NMS19TUFJFQUQJCS8qIEVuYWJsZSBTcHJlYWQtU3BlY3RydW0gQ2xvY2sgZ2VuZXJhdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NMS19TUFJFQUQJCS8qIEVuYWJsZSBTcHJlYWQtU3BlY3RydW0gQ2xvY2sgZ2VuZXJhdGlvbiAqLwogCiAjdW5kZWYgIENPTkZJR19FQ0MJCS8qIGRpc2FibGUgRUNDIHN1cHBvcnQgKi8KIAogLyogQm9hcmQtc3BlY2lmaWMgSW5pdGlhbGl6YXRpb24gRnVuY3Rpb25zIHRvIGJlIGNhbGxlZCAqLwotI2RlZmluZSBDRkdfQk9BUkRfQVNNX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9BU01fSU5JVAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCkBAIC03MCwxMCArNzAsMTAgQEAKIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAkvKiBjb25zb2xlIGJhdWRyYXRlID0gMTE1MDAwICovCiAKLS8qI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIgKi8KLSN1bmRlZiBDRkdfSFVTSF9QQVJTRVIKKy8qI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSICovCisjdW5kZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKIC8qIFBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KICNkZWZpbmUgQ09ORklHX09GX0xJQkZEVAkxCkBAIC05MCwxOSArOTAsMTkgQEAKICAqCiAgKiB3aGF0IHRvIGRvOgogICogSWYgeW91IGhhdmUgaGFja2VkIGEgc2VyaWFsIGNhYmxlIG9udG8gdGhlIHNlY29uZCBEVUFSVCBjaGFubmVsLAotICogY2hhbmdlIHRoZSBDRkdfRFVBUlQgcG9ydCBmcm9tIDEgdG8gMCBiZWxvdy4KKyAqIGNoYW5nZSB0aGUgQ09ORklHX1NZU19EVUFSVCBwb3J0IGZyb20gMSB0byAwIGJlbG93LgogICoKICAqLwogCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlDRkdfT0NOX0NMSyAqIDgKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJQ09ORklHX1NZU19PQ05fQ0xLICogOAogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19UU0kxMDhfQ1NSX1JTVF9CQVNFKzB4NzgwOCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX1RTSTEwOF9DU1JfUlNUX0JBU0UrMHg3QzA4KQotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19UU0kxMDhfQ1NSX1JTVF9CQVNFKzB4NzgwOCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfVFNJMTA4X0NTUl9SU1RfQkFTRSsweDdDMDgpCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwkvKiBhdXRvYm9vdCBhZnRlciAzIHNlY29uZHMgKi8KICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCkBAIC0xMzcsNyArMTM3LDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkwCS8qIGVjaG8gb2ZmIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2VzICovCiAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cJCS8qIHdhdGNoZG9nIGRpc2FibGVkICovCiAKQEAgLTE3MiwzNyArMTcyLDM3IEBACiAKIC8qc2V0IGRhdGUgaW4gdS1ib290Ki8KICNkZWZpbmUgQ09ORklHX1JUQ19NNDhUMzVBCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhmYzAwMDAwMAotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMHg4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4ZmMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkweDgwMDAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUJCTEKICNkZWZpbmUgQ09ORklHX1RTSTEwOF9JMkMKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIEkyQyBFRVBST00gcGFnZSAxICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCS8qIEJ5dGVzIG9mIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogSTJDIEVFUFJPTSBwYWdlIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCS8qIEJ5dGVzIG9mIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2RlZmluZSBDT05GSUdfS0dEQl9CQVVEUkFURQkxMTUyMDAJLyogc3BlZWQgdG8gcnVuIGtnZGIgc2VyaWFsIHBvcnQgYXQgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwN2MwMDAwMAkvKiA0IC4uLiAxMjQgTUIgaW4gRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDdjMDAwMDAJLyogNCAuLi4gMTI0IE1CIGluIERSQU0gKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MDA0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgwMDQwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjciBmcmVxOiAxbXMgdGlja3MgKi8KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0yMTUsNDYgKzIxNSw0NiBAQAogICovCiAKIC8qCi0gKiBXaGVuIGxvY2tpbmcgZGF0YSBpbiBjYWNoZSB5b3Ugc2hvdWxkIHBvaW50IHRoZSBDRkdfSU5JVF9SQU1fQUREUkVTUworICogV2hlbiBsb2NraW5nIGRhdGEgaW4gY2FjaGUgeW91IHNob3VsZCBwb2ludCB0aGUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSRVNTCiAgKiBUbyBhbiB1bnVzZWQgbWVtb3J5IHJlZ2lvbi4gVGhlIHN0YWNrIHdpbGwgcmVtYWluIGluIGNhY2hlIHVudGlsIFJBTQogICogaXMgaW5pdGlhbGl6ZWQKICAqLwotI3VuZGVmICBDRkdfSU5JVF9SQU1fTE9DSwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDA3ZDAwMDAwCS8qIHVudXNlZCBtZW1vcnkgcmVnaW9uICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwLyogbGFyZ2VyIHNwYWNlIC0gd2UgaGF2ZSBTRFJBTSBpbml0aWFsaXplZCAqLworI3VuZGVmICBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4MDdkMDAwMDAJLyogdW51c2VkIG1lbW9yeSByZWdpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwLyogbGFyZ2VyIHNwYWNlIC0gd2UgaGF2ZSBTRFJBTSBpbml0aWFsaXplZCAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXQgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIGZpcnN0IDI1NiBNQiBvZiBTRFJBTSAqLwotI2RlZmluZSBDRkdfU0RSQU0xX0JBU0UJCTB4MTAwMDAwMDAJLyogbmV4dCAyNTZNQiBvZiBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogZmlyc3QgMjU2IE1CIG9mIFNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0xX0JBU0UJCTB4MTAwMDAwMDAJLyogbmV4dCAyNTZNQiBvZiBTRFJBTSAqLwogCi0jZGVmaW5lIENGR19TRFJBTTJfQkFTRQkweDQwMDAwMDAwCS8qIGJlZ2lubmluZyBvZiBub24tY2FjaGVhYmxlIGFsaWFzIGZvciBTRFJBTSAtIGZpcnN0IDI1Nk1CICovCi0jZGVmaW5lIENGR19TRFJBTTNfQkFTRQkweDUwMDAwMDAwCS8qIG5leHQgTm9uLUNhY2hlYWJsZSAyNTZNQiBvZiBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMl9CQVNFCTB4NDAwMDAwMDAJLyogYmVnaW5uaW5nIG9mIG5vbi1jYWNoZWFibGUgYWxpYXMgZm9yIFNEUkFNIC0gZmlyc3QgMjU2TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTNfQkFTRQkweDUwMDAwMDAwCS8qIG5leHQgTm9uLUNhY2hlYWJsZSAyNTZNQiBvZiBTRFJBTSAqLwogCi0jZGVmaW5lIENGR19QQ0lfUEZNX0JBU0UJMHg4MDAwMDAwMAkvKiBQcmVmZXRjaGFibGUgKGNhY2hlYWJsZSkgUENJL1ggUEZNIGFuZCBTRFJBTSBPQ04gKDEyOE1CKzEyOE1CKSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QRk1fQkFTRQkweDgwMDAwMDAwCS8qIFByZWZldGNoYWJsZSAoY2FjaGVhYmxlKSBQQ0kvWCBQRk0gYW5kIFNEUkFNIE9DTiAoMTI4TUIrMTI4TUIpICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU0zMl9CQVNFCTB4RTAwMDAwMDAJLyogTm9uLUNhY2hlYWJsZSBQQ0kvWCBNRU0gYW5kIFNEUkFNIE9DTiAoMTI4TUIrMTI4TUIpICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTTMyX0JBU0UJMHhFMDAwMDAwMAkvKiBOb24tQ2FjaGVhYmxlIFBDSS9YIE1FTSBhbmQgU0RSQU0gT0NOICgxMjhNQisxMjhNQikgKi8KIAotI2RlZmluZSBDRkdfTUlTQ19SRUdJT05fQkFTRQkweGYwMDAwMDAwCS8qIEJhc2UgQWRkcmVzcyBmb3IgKFBDSS9YICsgRmxhc2gpIHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAkvKiBCYXNlIEFkZHJlc3MgZm9yIChQQ0kvWCArIEZsYXNoKSByZWdpb24gKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkweGZmMDAwMDAwCS8qIEJhc2UgQWRkcmVzcyBvZiBGbGFzaCBkZXZpY2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UyCTB4ZmUwMDAwMDAJLyogQWx0ZXJuYXRlIEZsYXNoIEJhc2UgQWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJMHhmZjAwMDAwMAkvKiBCYXNlIEFkZHJlc3Mgb2YgRmxhc2ggZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRTIJMHhmZTAwMDAwMAkvKiBBbHRlcm5hdGUgRmxhc2ggQmFzZSBBZGRyZXNzICovCiAKICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTQkvKiB3ZSB3aWxsIHVzZSB1cCB0byAyNTZNIG1lbW9yeSBmb3IgY2F1c2Ugd2UgYXJlIHNob3J0IG9mIEJBVFMgKi8KIAogI2RlZmluZSBQQ0kwX0lPX0JBU0VfQk9PVE0JMHhmZDAwMDAwMAogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4M2ZmZmZmMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiB1LWJvb3QgY29kZSBiYXNlICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweDNmZmZmZjAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiB1LWJvb3QgY29kZSBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYyAqLwogCiAvKiBQZXJpcGhlcmFsIERldmljZSBzZWN0aW9uICovCiAKQEAgLTI2Miw4ICsyNjIsOCBAQAogICogUmVzb3VyY2VzIG9uIHRoZSBUc2kxMDgKICAqLwogCi0jZGVmaW5lIENGR19UU0kxMDhfQ1NSX1JTVF9CQVNFCTB4QzAwMDAwMDAJLyogVHNpMTA4IENTUiBiYXNlIGFmdGVyIHJlc2V0ICovCi0jZGVmaW5lIENGR19UU0kxMDhfQ1NSX0JBU0UJQ0ZHX1RTSTEwOF9DU1JfUlNUX0JBU0UJLyogUnVudGltZSBUc2kxMDggQ1NSIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19UU0kxMDhfQ1NSX1JTVF9CQVNFCTB4QzAwMDAwMDAJLyogVHNpMTA4IENTUiBiYXNlIGFmdGVyIHJlc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFCUNPTkZJR19TWVNfVFNJMTA4X0NTUl9SU1RfQkFTRQkvKiBSdW50aW1lIFRzaTEwOCBDU1IgYmFzZSAqLwogCiAjZGVmaW5lIEVOQUJMRV9QQ0lfQ1NSX0JBUgkvKiBlbmFibGVzIGFjY2VzcyB0byBUc2kxMDggQ1NScyBmcm9tIHRoZSBQQ0kvWCBidXMgKi8KIApAQCAtMjg3LDc0ICsyODcsNzQgQEAKIC8qIFBDSSBNRU1PUlkgTUFQIHNlY3Rpb24gKi8KIAogLyogUENJIHZpZXcgb2YgU3lzdGVtIE1lbW9yeSAqLwotI2RlZmluZSBDRkdfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9QSFlTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfU0laRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFCTB4ODAwMDAwMDAKIAogLyogUENJIE1lbW9yeSBTcGFjZSAqLwotI2RlZmluZSBDRkdfUENJX01FTV9CVVMJCShDRkdfUENJX01FTV9QSFlTKQotI2RlZmluZSBDRkdfUENJX01FTV9QSFlTCShDRkdfUENJX01FTTMyX0JBU0UpCS8qIDB4RTAwMDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1NiBNQiBzcGFjZSBmb3IgUENJL1ggTWVtICsgU0RSQU0gT0NOICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CVVMJCShDT05GSUdfU1lTX1BDSV9NRU1fUEhZUykKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMJKENPTkZJR19TWVNfUENJX01FTTMyX0JBU0UpCS8qIDB4RTAwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTYgTUIgc3BhY2UgZm9yIFBDSS9YIE1lbSArIFNEUkFNIE9DTiAqLwogCiAvKiBQQ0kgSS9PIFNwYWNlICovCi0jZGVmaW5lIENGR19QQ0lfSU9fQlVTCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fUEhZUwkJMHhmYTAwMDAwMAkvKiBDaGFuZ2VkIGZyb20gZmQwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fQlVTCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1BIWVMJCTB4ZmEwMDAwMDAJLyogQ2hhbmdlZCBmcm9tIGZkMDAwMDAwICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19TSVpFCQkweDAxMDAwMDAwCS8qIDE2TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fU0laRQkJMHgwMTAwMDAwMAkvKiAxNk1CICovCiAKICNkZWZpbmUgX0lPX0JBU0UJCTB4MDAwMDAwMDAJLyogcG9pbnRzIHRvIFBDSSBJL08gc3BhY2UgICAgICAqLwogCiAvKiBQQ0kgQ29uZmlnIFNwYWNlIG1hcHBpbmcgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9DRkdfQkFTRQkweGZiMDAwMDAwCS8qIENoYW5nZWQgZnJvbSBGRTAwMDAwMCAqLwotI2RlZmluZSBDRkdfUENJX0NGR19TSVpFCTB4MDEwMDAwMDAJLyogMTZNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DRkdfQkFTRQkweGZiMDAwMDAwCS8qIENoYW5nZWQgZnJvbSBGRTAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DRkdfU0laRQkweDAxMDAwMDAwCS8qIDE2TUIgKi8KIAotI2RlZmluZSBDRkdfSUJBVDBVCTB4RkUwMDAzRkYKLSNkZWZpbmUgQ0ZHX0lCQVQwTAkweEZFMDAwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCTB4RkUwMDAzRkYKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJMHhGRTAwMDAwMgogCi0jZGVmaW5lIENGR19JQkFUMVUJMHgwMDAwN0ZGRgotI2RlZmluZSBDRkdfSUJBVDFMCTB4MDAwMDAwMTIKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJMHgwMDAwN0ZGRgorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkweDAwMDAwMDEyCiAKLSNkZWZpbmUgQ0ZHX0lCQVQyVQkweDgwMDA3RkZGCi0jZGVmaW5lIENGR19JQkFUMkwJMHg4MDAwMDAyMgorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkweDgwMDA3RkZGCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCTB4ODAwMDAwMjIKIAotI2RlZmluZSBDRkdfSUJBVDNVCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lCQVQzTAkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19JQkFUNFUJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfSUJBVDRMCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19JQkFUNUwJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCTB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfSUJBVDZVCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19JQkFUN1UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfSUJBVDdMCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3TAkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwVQkweEUwMDAzRkZGCi0jZGVmaW5lIENGR19EQkFUMEwJMHhFMDAwMDAyQQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQkweEUwMDAzRkZGCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCTB4RTAwMDAwMkEKIAotI2RlZmluZSBDRkdfREJBVDFVCTB4MDAwMDdGRkYKLSNkZWZpbmUgQ0ZHX0RCQVQxTAkweDAwMDAwMDEyCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVCTB4MDAwMDdGRkYKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJMHgwMDAwMDAxMgogCi0jZGVmaW5lIENGR19EQkFUMlUJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREJBVDJMCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0RCQVQzVQkweEMwMDAwMDAzCi0jZGVmaW5lIENGR19EQkFUM0wJMHhDMDAwMDAyQQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQkweEMwMDAwMDAzCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMCTB4QzAwMDAwMkEKIAotI2RlZmluZSBDRkdfREJBVDRVCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RCQVQ0TAkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRVCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNEwJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19EQkFUNVUJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREJBVDVMCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNVUJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19EQkFUNkwJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMCTB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfREJBVDdVCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdVCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJMHgwMDAwMDAwMAogCiAvKiBJMkMgYWRkcmVzc2VzIGZvciB0aGUgdHdvIERJTU0gU1BEIGNoaXBzICovCiAjZGVmaW5lIERJTU0wX0kyQ19BRERSCTB4NTEKQEAgLTM2NSwyMSArMzY1LDIxIEBACiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDg8PDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4PDwyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIEZsYXNoIGNhbiBiZSBhdCBvbmUgb2YgdHdvIGFkZHJlc3NlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBGbGFzaCBjYW4gYmUgYXQgb25lIG9mIHR3byBhZGRyZXNzZXMgKi8KICNkZWZpbmUgRkxBU0hfQkFOS19TSVpFCQkweDAxMDAwMDAwCS8qIDE2IE1CIFRvdGFsICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UsIC8qIENGR19GTEFTSF9CQVNFMiAqLyB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSwgLyogQ09ORklHX1NZU19GTEFTSF9CQVNFMiAqLyB9CiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfV1JJVEVfU1dBUFBFRF9EQVRBCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfV1JJVEVfU1dBUFBFRF9EQVRBCiAKICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAxMDAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMTI4KQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgxMjgpCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4RkMwMDAwMDAKQEAgLTM5MCwxNiArMzkwLDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBhbGwgTVBDNzR4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIGFsbCBNUEM3NHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBMMkNSIHNldHVwIC0tIG1ha2Ugc3VyZSB0aGlzIGlzIHJpZ2h0IGZvciB5b3VyIGJvYXJkIQogICogbG9vayBpbiBpbmNsdWRlL21wYzc0eHguaCBmb3IgdGhlIGRlZmluZXMgdXNlZCBoZXJlCiAgKi8KLSN1bmRlZiBDRkdfTDIKKyN1bmRlZiBDT05GSUdfU1lTX0wyCiAKICNkZWZpbmUgTDJfSU5JVAkJMAogI2RlZmluZSBMMl9FTkFCTEUJKEwyX0lOSVQgfCBMMkNSX0wyRSkKQEAgLTQxMSw1ICs0MTEsNSBAQAogICovCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCTB4MDIJLyogU29mdHdhcmUgcmVib290ICovCi0jZGVmaW5lIENGR19TRVJJQUxfSEFOR19JTl9FWENFUFRJT04KKyNkZWZpbmUgQ09ORklHX1NZU19TRVJJQUxfSEFOR19JTl9FWENFUFRJT04KICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbXByMi5oIGIvaW5jbHVkZS9jb25maWdzL21wcjIuaAppbmRleCA2YjM3OGFjLi42ZWJiMWUxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbXByMi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9tcHIyLmgKQEAgLTQ2LDQ0ICs0Niw0NCBAQAogI2RlZmluZSBDT05GSUdfTVBSMgkJMQogCiAvKiBVLUJvb3QgaW50ZXJuYWxzICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIEJ1ZmZlciBzaXplIGZvciBpbnB1dCBmcm9tIHRoZSBDb25zb2xlICovCi0jZGVmaW5lIENGR19QQlNJWkUJCTI1NgkvKiBCdWZmZXIgc2l6ZSBmb3IgQ29uc29sZSBvdXRwdXQgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBhcmdzIGFjY2VwdGVkIGZvciBtb25pdG9yIGNvbW1hbmRzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJNTEyCS8qIEJ1ZmZlciBzaXplIGZvciBCb290IEFyZ3VtZW50cyBwYXNzZWQgdG8ga2VybmVsICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCB9CS8qIExpc3Qgb2YgbGVnYWwgYmF1ZHJhdGUgc2V0dGluZ3MgZm9yIHRoaXMgYm9hcmQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJKENGR19TRFJBTV9CQVNFICsgMzIgKiAxMDI0ICogMTAyNCkKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBCdWZmZXIgc2l6ZSBmb3IgaW5wdXQgZnJvbSB0aGUgQ29uc29sZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJMjU2CS8qIEJ1ZmZlciBzaXplIGZvciBDb25zb2xlIG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBhcmdzIGFjY2VwdGVkIGZvciBtb25pdG9yIGNvbW1hbmRzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCTUxMgkvKiBCdWZmZXIgc2l6ZSBmb3IgQm9vdCBBcmd1bWVudHMgcGFzc2VkIHRvIGtlcm5lbCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwIH0JLyogTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZSBzZXR0aW5ncyBmb3IgdGhpcyBib2FyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDMyICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTI4ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NgogCiAvKiBNZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4OEMwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCSg2NCAqIDEwMjQgKiAxMDI0KQotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAlDRkdfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCShDRkdfTUVNVEVTVF9TVEFSVCArICg2MCAqIDEwMjQgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDhDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJKDY0ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAlDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArICg2MCAqIDEwMjQgKiAxMDI0KSkKIAogLyogRmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhBMDAwMDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhBMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJKDEyOCAqIDEwMjQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJQ09ORklHX0VOVl9TRUNUX1NJWkUKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAogCiAvKiBDbG9ja3MgKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkyNDAwMDAwMAogI2RlZmluZSBUTVVfQ0xLX0RJVklERVIJCTQJLyogNCAoZGVmYXVsdCksIDE2LCA2NCwgMjU2IG9yIDEwMjQgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBUTVVfQ0xLX0RJVklERVIpCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKIAogLyogVUFSVCAqLwogI2RlZmluZSBDT05GSUdfU0NJRl9DT05TT0xFCTEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9tczc3MjBzZS5oIGIvaW5jbHVkZS9jb25maWdzL21zNzcyMHNlLmgKaW5kZXggZjMwODQ2MC4uNTIwYmFjMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL21zNzcyMHNlLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL21zNzcyMHNlLmgKQEAgLTUyLDc1ICs1Miw3NSBAQAogI2RlZmluZSBNUzc3MjBTRV9GTEFTSF9CQVNFXzEJCTB4QTAwMDAwMDAKICNkZWZpbmUgTVM3NzIwU0VfRkxBU0hfQkFOS19TSVpFCSg4ICogMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJLyogQnVmZmVyIHNpemUgZm9yIGlucHV0IGZyb20gdGhlIENvbnNvbGUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkyNTYJLyogQnVmZmVyIHNpemUgZm9yIENvbnNvbGUgb3V0cHV0ICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CS8qIG1heCBhcmdzIGFjY2VwdGVkIGZvciBtb25pdG9yIGNvbW1hbmRzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CS8qIEJ1ZmZlciBzaXplIGZvciBpbnB1dCBmcm9tIHRoZSBDb25zb2xlICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCTI1NgkvKiBCdWZmZXIgc2l6ZSBmb3IgQ29uc29sZSBvdXRwdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CS8qIG1heCBhcmdzIGFjY2VwdGVkIGZvciBtb25pdG9yIGNvbW1hbmRzICovCiAvKiBCdWZmZXIgc2l6ZSBmb3IgQm9vdCBBcmd1bWVudHMgcGFzc2VkIHRvIGtlcm5lbCAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJNTEyCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJNTEyCiAvKiBMaXN0IG9mIGxlZ2FsIGJhdWRyYXRlIHNldHRpbmdzIGZvciB0aGlzIGJvYXJkICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAgfQogCiAvKiBTQ0lGICovCiAjZGVmaW5lIENPTkZJR19TQ0lGX0NPTlNPTEUJMQogI2RlZmluZSBDT05GSUdfQ09OU19TQ0lGMAkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJTVM3NzIwU0VfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCShDRkdfTUVNVEVTVF9TVEFSVCArICg2MCAqIDEwMjQgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCU1TNzcyMFNFX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArICg2MCAqIDEwMjQgKiAxMDI0KSkKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJTVM3NzIwU0VfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJKDY0ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJTVM3NzIwU0VfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCSg2NCAqIDEwMjQgKiAxMDI0KQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCShDRkdfU0RSQU1fQkFTRSArIDMyICogMTAyNCAqIDEwMjQpCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJTVM3NzIwU0VfRkxBU0hfQkFTRV8xCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDEyOCAqIDEwMjQpCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMjU2Ci0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMzIgKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJTVM3NzIwU0VfRkxBU0hfQkFTRV8xCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCAqIDEwMjQgKiAxMDI0KQogCiAKIC8qIEZMQVNIICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSN1bmRlZiAgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCU1TNzcyMFNFX0ZMQVNIX0JBU0VfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCU1TNzcyMFNFX0ZMQVNIX0JBU0VfMQogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxNTAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTE1MAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkoNjQgKiAxMDI0KQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCUNPTkZJR19FTlZfU0VDVF9TSVpFCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAKIAogLyogQm9hcmQgQ2xvY2sgKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkzMzMzMzMzMwogI2RlZmluZSBUTVVfQ0xLX0RJVklERVIJCTQJLyogNCAoZGVmYXVsdCksIDE2LCA2NCwgMjU2IG9yIDEwMjQgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBUTVVfQ0xLX0RJVklERVIpCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKIAogLyogUENNQ0lBICovCiAjZGVmaW5lIENPTkZJR19JREVfUENNQ0lBCTEKICNkZWZpbmUgQ09ORklHX01BUlVCVU5fUENDQVJECTEKICNkZWZpbmUgQ09ORklHX1BDTUNJQV9TTE9UX0EJMQotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCi0jZGVmaW5lIENGR19NQVJVQlVOX01SU0hQQwkweGI4M2ZmZmUwCi0jZGVmaW5lIENGR19NQVJVQlVOX01XMQkJMHhiODQwMDAwMAotI2RlZmluZSBDRkdfTUFSVUJVTl9NVzIJCTB4Yjg1MDAwMDAKLSNkZWZpbmUgQ0ZHX01BUlVCVU5fSU8JCTB4Yjg2MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVJVQlVOX01SU0hQQwkweGI4M2ZmZmUwCisjZGVmaW5lIENPTkZJR19TWVNfTUFSVUJVTl9NVzEJCTB4Yjg0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVJVQlVOX01XMgkJMHhiODUwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BUlVCVU5fSU8JCTB4Yjg2MDAwMDAKIAotI2RlZmluZSBDRkdfUElPX01PREUJCTEKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QSU9fTU9ERQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04JMQotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfTUFSVUJVTl9JTwkvKiBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAxRjAJCS8qIGlkZTAgb2Zmc3RlICovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMAkJLyogZGF0YSByZWcgb2Zmc2V0ICovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkwCQkvKiByZWcgb2Zmc2V0ICovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDIwMAkJLyogYWx0ZXJuYXRlIHJlZ2lzdGVyIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19NQVJVQlVOX0lPCS8qIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAxRjAJCS8qIGlkZTAgb2Zmc3RlICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTAJCS8qIGRhdGEgcmVnIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTAJCS8qIHJlZyBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDIwMAkJLyogYWx0ZXJuYXRlIHJlZ2lzdGVyIG9mZnNldCAqLwogCiAjZW5kaWYJLyogX19NUzc3MjBTRV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbXM3NzIyc2UuaCBiL2luY2x1ZGUvY29uZmlncy9tczc3MjJzZS5oCmluZGV4IDVmNTk3MGIuLjk5OTdjOWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9tczc3MjJzZS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9tczc3MjJzZS5oCkBAIC01Myw3OSArNTMsNzkgQEAKICNkZWZpbmUgTVM3NzIyU0VfRkxBU0hfQkFTRV8xCSgweEEwMDAwMDAwKQogI2RlZmluZSBNUzc3MjJTRV9GTEFTSF9CQU5LX1NJWkUJKDgqMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQnVmZmVyIHNpemUgZm9yIGlucHV0IGZyb20gdGhlIENvbnNvbGUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJMjU2CQkvKiBCdWZmZXIgc2l6ZSBmb3IgQ29uc29sZSBvdXRwdXQgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggYXJncyBhY2NlcHRlZCBmb3IgbW9uaXRvciBjb21tYW5kcyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCTUxMgkJLyogQnVmZmVyIHNpemUgZm9yIEJvb3QgQXJndW1lbnRzIHBhc3NlZCB0byBrZXJuZWwgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwIH0JLyogTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZSBzZXR0aW5ncyBmb3IgdGhpcyBib2FyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBCdWZmZXIgc2l6ZSBmb3IgaW5wdXQgZnJvbSB0aGUgQ29uc29sZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJMjU2CQkvKiBCdWZmZXIgc2l6ZSBmb3IgQ29uc29sZSBvdXRwdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IGFyZ3MgYWNjZXB0ZWQgZm9yIG1vbml0b3IgY29tbWFuZHMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJNTEyCQkvKiBCdWZmZXIgc2l6ZSBmb3IgQm9vdCBBcmd1bWVudHMgcGFzc2VkIHRvIGtlcm5lbCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwIH0JLyogTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZSBzZXR0aW5ncyBmb3IgdGhpcyBib2FyZCAqLwogCiAvKiBTQ0lGICovCiAjZGVmaW5lIENPTkZJR19TQ0lGX0NPTlNPTEUJMQogI2RlZmluZSBDT05GSUdfQ09OU19TQ0lGMAkxCi0jdW5kZWYgIENGR19DT05TT0xFX0lORk9fUVVJRVQJCQkvKiBTdXBwcmVzcyBkaXNwbGF5IG9mIGNvbnNvbGUgaW5mb3JtYXRpb24gYXQgYm9vdCAqLwotI3VuZGVmICBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQotI3VuZGVmICBDRkdfQ09OU09MRV9FTlZfT1ZFUldSSVRFCisjdW5kZWYgIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCQkJLyogU3VwcHJlc3MgZGlzcGxheSBvZiBjb25zb2xlIGluZm9ybWF0aW9uIGF0IGJvb3QgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCisjdW5kZWYgIENPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJKE1TNzcyMlNFX1NEUkFNX0JBU0UpCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKENGR19NRU1URVNUX1NUQVJUICsgKDYwICogMTAyNCAqIDEwMjQpKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJKE1TNzcyMlNFX1NEUkFNX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCShDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgKyAoNjAgKiAxMDI0ICogMTAyNCkpCiAKLSN1bmRlZiAgQ0ZHX0FMVF9NRU1URVNUCQkvKiBFbmFibGUgYWx0ZXJuYXRlLCBtb3JlIGV4dGVuc2l2ZSwgbWVtb3J5IHRlc3QgKi8KLSN1bmRlZiAgQ0ZHX01FTVRFU1RfU0NSQVRDSAkvKiBTY3JhdGNoIGFkZHJlc3MgdXNlZCBieSB0aGUgYWx0ZXJuYXRlIG1lbW9yeSB0ZXN0ICovCisjdW5kZWYgIENPTkZJR19TWVNfQUxUX01FTVRFU1QJCS8qIEVuYWJsZSBhbHRlcm5hdGUsIG1vcmUgZXh0ZW5zaXZlLCBtZW1vcnkgdGVzdCAqLworI3VuZGVmICBDT05GSUdfU1lTX01FTVRFU1RfU0NSQVRDSAkvKiBTY3JhdGNoIGFkZHJlc3MgdXNlZCBieSB0aGUgYWx0ZXJuYXRlIG1lbW9yeSB0ZXN0ICovCiAKLSN1bmRlZiAgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCS8qIEVuYWJsZSB0ZW1wb3JhcnkgYmF1ZHJhdGUgY2hhbmdlIHdoaWxlIHNlcmlhbCBkb3dubG9hZCAqLworI3VuZGVmICBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCS8qIEVuYWJsZSB0ZW1wb3JhcnkgYmF1ZHJhdGUgY2hhbmdlIHdoaWxlIHNlcmlhbCBkb3dubG9hZCAqLwogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCShNUzc3MjJTRV9TRFJBTV9CQVNFKQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkoNjQgKiAxMDI0ICogMTAyNCkJLyogbWF5YmUgbW9yZSwgYnV0IGlmIHNvIHUtYm9vdCBkb2Vzbid0IGtub3cgYWJvdXQgaXQuLi4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCShNUzc3MjJTRV9TRFJBTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJKDY0ICogMTAyNCAqIDEwMjQpCS8qIG1heWJlIG1vcmUsIGJ1dCBpZiBzbyB1LWJvb3QgZG9lc24ndCBrbm93IGFib3V0IGl0Li4uICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkoQ0ZHX1NEUkFNX0JBU0UgKyA0ICogMTAyNCAqIDEwMjQpCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzIGZvciBzY3JpcHRzID8hPyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgNCAqIDEwMjQgKiAxMDI0KQkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyBmb3Igc2NyaXB0cyA/IT8gKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShNUzc3MjJTRV9GTEFTSF9CQVNFXzEpCS8qIEFkZHJlc3Mgb2YgdS1ib290IGltYWdlCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShNUzc3MjJTRV9GTEFTSF9CQVNFXzEpCS8qIEFkZHJlc3Mgb2YgdS1ib290IGltYWdlCiAJCQkJCQkJaW4gRmxhc2ggKE5PVCBydW4gdGltZSBhZGRyZXNzIGluIFNEUkFNKSA/IT8gKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSgxMjggKiAxMDI0KQkJLyogKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JKDI1NiAqIDEwMjQpCQkvKiBTaXplIG9mIERSQU0gcmVzZXJ2ZWQgZm9yIG1hbGxvYygpIHVzZSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkoMjU2KQkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkoMTI4ICogMTAyNCkJCS8qICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkoMjU2ICogMTAyNCkJCS8qIFNpemUgb2YgRFJBTSByZXNlcnZlZCBmb3IgbWFsbG9jKCkgdXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkoMjU2KQkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4ICogMTAyNCAqIDEwMjQpCiAKIC8qIEZMQVNIICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSN1bmRlZiAgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyN1bmRlZiAgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkoTVM3NzIyU0VfRkxBU0hfQkFTRV8xKQkvKiBQaHlzaWNhbCBzdGFydCBhZGRyZXNzIG9mIEZsYXNoIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCShNUzc3MjJTRV9GTEFTSF9CQVNFXzEpCS8qIFBoeXNpY2FsIHN0YXJ0IGFkZHJlc3Mgb2YgRmxhc2ggbWVtb3J5ICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTE1MAkJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIGVhY2gKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxNTAJCS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBlYWNoCiAJCQkJCQkJRmxhc2ggY2hpcCAqLwogCiAvKiBpZiB5b3UgdXNlIGFsbCBOT1IgRmxhc2ggLCB5b3UgY2hhbmdlIGRpcC1zd2l0Y2guIFBsZWFzZSBzZWUgTVM3NzIyU0UwMSBNYW51YWwuICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFICsgKDAgKiBNUzc3MjJTRV9GTEFTSF9CQU5LX1NJWkUpLCBcCi0JCQkJICBDRkdfRkxBU0hfQkFTRSArICgxICogTVM3NzIyU0VfRkxBU0hfQkFOS19TSVpFKSwgXAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgwICogTVM3NzIyU0VfRkxBU0hfQkFOS19TSVpFKSwgXAorCQkJCSAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDEgKiBNUzc3MjJTRV9GTEFTSF9CQU5LX1NJWkUpLCBcCiAJCQkJfQogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgzICogMTAwMCkJLyogVGltZW91dCBmb3IgRmxhc2ggZXJhc2Ugb3BlcmF0aW9ucyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgzICogMTAwMCkJLyogVGltZW91dCBmb3IgRmxhc2ggd3JpdGUgb3BlcmF0aW9ucyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJKDMgKiAxMDAwKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBzZXQgc2VjdG9yIGxvY2sgYml0IG9wZXJhdGlvbnMgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfVU5MT0NLX1RPVVQJKDMgKiAxMDAwKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBjbGVhciBsb2NrIGJpdCBvcGVyYXRpb25zIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgzICogMTAwMCkJLyogVGltZW91dCBmb3IgRmxhc2ggZXJhc2Ugb3BlcmF0aW9ucyAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMyAqIDEwMDApCS8qIFRpbWVvdXQgZm9yIEZsYXNoIHdyaXRlIG9wZXJhdGlvbnMgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0xPQ0tfVE9VVAkoMyAqIDEwMDApCS8qIFRpbWVvdXQgZm9yIEZsYXNoIHNldCBzZWN0b3IgbG9jayBiaXQgb3BlcmF0aW9ucyAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVU5MT0NLX1RPVVQJKDMgKiAxMDAwKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBjbGVhciBsb2NrIGJpdCBvcGVyYXRpb25zIChpbiBtcykgKi8KIAotI3VuZGVmICBDRkdfRkxBU0hfUFJPVEVDVElPTgkJCS8qIFVzZSBoYXJkd2FyZSBmbGFzaCBzZWN0b3JzIHByb3RlY3Rpb24gaW5zdGVhZCBvZiBVLUJvb3Qgc29mdHdhcmUgcHJvdGVjdGlvbiAqLworI3VuZGVmICBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JCQkvKiBVc2UgaGFyZHdhcmUgZmxhc2ggc2VjdG9ycyBwcm90ZWN0aW9uIGluc3RlYWQgb2YgVS1Cb290IHNvZnR3YXJlIHByb3RlY3Rpb24gKi8KIAotI3VuZGVmICBDRkdfRElSRUNUX0ZMQVNIX1RGVFAKKyN1bmRlZiAgQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkoOCAqIDEwMjQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKENPTkZJR19FTlZfU0VDVF9TSVpFKQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArICgxICogQ09ORklHX0VOVl9TRUNUX1NJWkUpKQotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENPTkZJR19FTlZfQUREUiAtIENGR19GTEFTSF9CQVNFKQkvKiBPZmZzZXQgb2YgZW52IEZsYXNoIHNlY3RvciByZWxhdGl2ZSB0byBDRkdfRkxBU0hfQkFTRSAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMSAqIENPTkZJR19FTlZfU0VDVF9TSVpFKSkKKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfRU5WX0FERFIgLSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCS8qIE9mZnNldCBvZiBlbnYgRmxhc2ggc2VjdG9yIHJlbGF0aXZlIHRvIENPTkZJR19TWVNfRkxBU0hfQkFTRSAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NFQ1RfU0laRSkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ0ZHX0ZMQVNIX0JBU0UgKyAoMiAqIENPTkZJR19FTlZfU0VDVF9TSVpFKSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDIgKiBDT05GSUdfRU5WX1NFQ1RfU0laRSkpCiAKIC8qIEJvYXJkIENsb2NrICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMzMzMzMzMzMKICNkZWZpbmUgVE1VX0NMS19ESVZJREVSCQkoNCkJLyogNCAoZGVmYXVsdCksIDE2LCA2NCwgMjU2IG9yIDEwMjQgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBUTVVfQ0xLX0RJVklERVIpCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKIAogI2VuZGlmCS8qIF9fTVM3NzIyU0VfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL21zNzc1MHNlLmggYi9pbmNsdWRlL2NvbmZpZ3MvbXM3NzUwc2UuaAppbmRleCBhY2I0ZDZkLi5hZjk5MzNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbXM3NzUwc2UuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbXM3NzUwc2UuaApAQCAtNTIsNTYgKzUyLDU2IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEKIAogLyogU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCSgweDhDMDAwMDAwKQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJKDY0ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJKDB4OEMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJKDY0ICogMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgotI2RlZmluZSBDRkdfUEJTSVpFCQkyNTYKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2Ci0jZGVmaW5lIENGR19CQVJHU0laRQkJNTEyCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCTUxMgogLyogTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZSBzZXR0aW5ncyBmb3IgdGhpcyBib2FyZCAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAsIDU3NjAwLCAzODQwMCwgMTkyMDAsIDk2MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwLCA1NzYwMCwgMzg0MDAsIDE5MjAwLCA5NjAwIH0KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkoQ0ZHX1NEUkFNX0JBU0UpCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKFRFWFRfQkFTRSAtIDB4MTAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJKENPTkZJR19TWVNfU0RSQU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKFRFWFRfQkFTRSAtIDB4MTAwMDAwKQogCiAvKiBOT1IgRmxhc2ggKi8KLS8qICNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCSgweEExMDAwMDAwKSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkoMHhBMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkoMSkJLyogTWF4IG51bWJlciBvZgorLyogI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCSgweEExMDAwMDAwKSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJKDB4QTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCSgxKQkvKiBNYXggbnVtYmVyIG9mCiAJCQkJCSAqIEZsYXNoIG1lbW9yeSBiYW5rcwogCQkJCQkgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTE0MgotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxNDIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkoQ0ZHX1NEUkFNX0JBU0UgKyA0ICogMTAyNCAqIDEwMjQpCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFKQkvKiBBZGRyZXNzIG9mIHUtYm9vdCBpbWFnZSBpbiBGbGFzaCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCQkvKiBTaXplIG9mIERSQU0gcmVzZXJ2ZWQgZm9yIG1hbGxvYygpIHVzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDQgKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSkJLyogQWRkcmVzcyBvZiB1LWJvb3QgaW1hZ2UgaW4gRmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDEyOCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCQkvKiBTaXplIG9mIERSQU0gcmVzZXJ2ZWQgZm9yIG1hbGxvYygpIHVzZSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCSgyNTYpCQkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4ICogMTAyNCAqIDEwMjQpCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCSg4KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJKDI1NikJCQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkoOCkKIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jdW5kZWYgQ0ZHX0ZMQVNIX0NGSV9CUk9LRU5fVEFCTEUKLSN1bmRlZiAgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCQkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSF9DRklfQlJPS0VOX1RBQkxFCisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCQkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoQ09ORklHX0VOVl9TRUNUX1NJWkUpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAKIAogLyogQm9hcmQgQ2xvY2sgKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkzMzMzMzMzMwogI2RlZmluZSBUTVVfQ0xLX0RJVklERVIJCTQKLSNkZWZpbmUgQ0ZHX0haCQkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBUTVVfQ0xLX0RJVklERVIpCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKIAogI2VuZGlmIC8qIF9fTVM3NzUwU0VfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL211YXMzMDAxLmggYi9pbmNsdWRlL2NvbmZpZ3MvbXVhczMwMDEuaAppbmRleCAxZTkxYjYyLi5mMDMxYTE3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbXVhczMwMDEuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbXVhczMwMDEuaApAQCAtODAsMzkgKzgwLDM5IEBACiAgKiAtIFJ4LUNMSyBpcyBDTEsxMQogICogLSBUeC1DTEsgaXMgQ0xLMTIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzExIHwgQ01YRkNSX1RGMUNTX0NMSzEyKQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMxIHwgQ01YRkNSX1JGMUNTX01TSyB8IENNWEZDUl9URjFDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzExIHwgQ01YRkNSX1RGMUNTX0NMSzEyKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMSB8IENNWEZDUl9SRjFDU19NU0sgfCBDTVhGQ1JfVEYxQ1NfTVNLKQogLyoKICAqIC0gUkFNIGZvciBCRC9CdWZmZXJzIGlzIG9uIHRoZSA2MHggQnVzIChzZWUgMjgtMTMpCiAgKi8KLSMgZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkoMCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJKDApCiAvKiBrbm93IG9uIGxvY2FsIEJ1cyAqLwotLyogZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkoQ1BNRkNSX0RUQiB8IENQTUZDUl9CREIpICovCisvKiBkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkoQ1BNRkNSX0RUQiB8IENQTUZDUl9CREIpICovCiAvKgogICogLSBFbmFibGUgRnVsbCBEdXBsZXggaW4gRlNNUgogICovCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCiAKICNkZWZpbmUgQ09ORklHX01JSQkJCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX0JJVEJBTkdNSUkJCS8qIGJpdC1iYW5nIE1JSSBQSFkgbWFuYWdlbWVudAkqLwotIyBkZWZpbmUgQ0ZHX1BIWV9BRERSCQkxCisjIGRlZmluZSBDT05GSUdfU1lTX1BIWV9BRERSCQkxCiAvKgogICogR1BJTyBwaW5zIHVzZWQgZm9yIGJpdC1iYW5nZWQgTUlJIGNvbW11bmljYXRpb25zCiAgKi8KICNkZWZpbmUgTURJT19QT1JUCTAJCS8qIFBvcnQgQSAqLwogCi0jZGVmaW5lIENGR19NRElPX1BJTgkweDAwMjAwMDAwCS8qIFBBMTAgKi8KLSNkZWZpbmUgQ0ZHX01EQ19QSU4JMHgwMDQwMDAwMAkvKiBQQTkgICovCisjZGVmaW5lIENPTkZJR19TWVNfTURJT19QSU4JMHgwMDIwMDAwMAkvKiBQQTEwICovCisjZGVmaW5lIENPTkZJR19TWVNfTURDX1BJTgkweDAwNDAwMDAwCS8qIFBBOSAgKi8KIAotI2RlZmluZSBNRElPX0FDVElWRQkoaW9wLT5wZGlyIHw9ICBDRkdfTURJT19QSU4pCi0jZGVmaW5lIE1ESU9fVFJJU1RBVEUJKGlvcC0+cGRpciAmPSB+Q0ZHX01ESU9fUElOKQotI2RlZmluZSBNRElPX1JFQUQJKChpb3AtPnBkYXQgJiAgQ0ZHX01ESU9fUElOKSAhPSAwKQorI2RlZmluZSBNRElPX0FDVElWRQkoaW9wLT5wZGlyIHw9ICBDT05GSUdfU1lTX01ESU9fUElOKQorI2RlZmluZSBNRElPX1RSSVNUQVRFCShpb3AtPnBkaXIgJj0gfkNPTkZJR19TWVNfTURJT19QSU4pCisjZGVmaW5lIE1ESU9fUkVBRAkoKGlvcC0+cGRhdCAmICBDT05GSUdfU1lTX01ESU9fUElOKSAhPSAwKQogCi0jZGVmaW5lIE1ESU8oYml0KQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ0ZHX01ESU9fUElOOyBcCi0JCQllbHNlCWlvcC0+cGRhdCAmPSB+Q0ZHX01ESU9fUElOCisjZGVmaW5lIE1ESU8oYml0KQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ09ORklHX1NZU19NRElPX1BJTjsgXAorCQkJZWxzZQlpb3AtPnBkYXQgJj0gfkNPTkZJR19TWVNfTURJT19QSU4KIAotI2RlZmluZSBNREMoYml0KQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ0ZHX01EQ19QSU47IFwKLQkJCWVsc2UJaW9wLT5wZGF0ICY9IH5DRkdfTURDX1BJTgorI2RlZmluZSBNREMoYml0KQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ09ORklHX1NZU19NRENfUElOOyBcCisJCQllbHNlCWlvcC0+cGRhdCAmPSB+Q09ORklHX1NZU19NRENfUElOCiAKICNkZWZpbmUgTUlJREVMQVkJdWRlbGF5KDEpCiAKQEAgLTE4OCwxMDcgKzE4OCwxMDcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTMyCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUIHsgQ0ZHX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTZLQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NktCIGZvciBNb25pdG9yICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKICNlbmRpZiAvKiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIICovCiAKIC8qCiAgKiBJMkMgQnVzCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIFRvIGVuYWJsZSBJMkMgc3VwcG9ydAkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZQlDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCisjZGVmaW5lCUNPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCiAvKiBJMkMgU1lTTU9OIChMTTc1LCBBRDc0MTQgaXMgYWxtb3N0IGNvbXBhdGlibGUpICAgICAgICAgICAgICAgICAgICAgICAqLwogI2RlZmluZQlDT05GSUdfRFRUX0xNNzUJCTEJLyogT04gU2VtaSdzIExNNzUgICAgICAgICAgICAgICAqLwogI2RlZmluZQlDT05GSUdfRFRUX1NFTlNPUlMJezB9CS8qIFNlbnNvciBhZGRyZXNzZXMgICAgICAgICAgICAgKi8KLSNkZWZpbmUJQ0ZHX0RUVF9NQVhfVEVNUAk3MAotI2RlZmluZQlDRkdfRFRUX0xPV19URU1QCS0zMAotI2RlZmluZQlDRkdfRFRUX0hZU1RFUkVTSVMJMworI2RlZmluZQlDT05GSUdfU1lTX0RUVF9NQVhfVEVNUAk3MAorI2RlZmluZQlDT05GSUdfU1lTX0RUVF9MT1dfVEVNUAktMzAKKyNkZWZpbmUJQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUwkzCiAKLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfSU1NUgkweDBGMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfSU1NUgkweDBGMDEwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyogSGFyZCByZXNldCBjb25maWd1cmF0aW9uIHdvcmQgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCQkweDBFMDI4MjAwCS8qIEJQUz0xMSBDSVA9MSBJU0I9MDEwIEJNUz0xICovCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJCTB4MEUwMjgyMDAJLyogQlBTPTExIENJUD0xIElTQj0wMTAgQk1TPTEgKi8KIAogLyogTm8gc2xhdmVzICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMSAJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIgCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzIAkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNCAJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUgCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2IAkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNyAJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxIAkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIgCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMyAJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0IAkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUgCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNiAJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3IAkwCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdCAgICAgICAgICAgICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg0MDk2IDw8IDEwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDQwOTYgPDwgMTApCS8qIFJlc2VydmUgNCBNQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJKEhJRDBfSUNFIHwgSElEMF9JRkVNIHwgSElEMF9BQkUpCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJKEhJRDBfSUNFIHwgSElEMF9JRkVNIHwgSElEMF9BQkUpCiAKLSNkZWZpbmUgQ0ZHX0hJRDIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCQkwCiAKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkJMHgwMDIwMDAwMAotI2RlZmluZSBDRkdfQkNSCQkJMHgwMDRjMDAwMAotI2RlZmluZSBDRkdfU0NDUgkJMHgwCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCQkweDAwMjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkJMHgwMDRjMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJCTB4MAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTWVBDUiAtIFN5c3RlbSBQcm90ZWN0aW9uIENvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQtMzUKQEAgLTI5NywxMCArMjk3LDEwIEBACiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUHxTWVBDUl9TV0UpCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1ApCiAjZW5kaWYgLyogQ09ORklHX1dBVENIRE9HICovCiAKQEAgLTMwOSw3ICszMDksNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogdHVybiBvbiBDaGVja3N0b3AgUmVzZXQgRW5hYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX1JNUiAgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19STVIgICAgICAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRNQ05UU0MgLSBUaW1lIENvdW50ZXIgU3RhdHVzIGFuZCBDb250cm9sICAgICAgICAgICAgICAgICAgICAgNC00MApAQCAtMzE3LDcgKzMxNyw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQyAgICAgKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgICAgICAgICAgICAgICAgIDQtNDIKQEAgLTMyNSwxMyArMzI1LDEzIEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jZGVmaW5lIENGR19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgIDEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgICAgICAgIDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNDUsNjAgKzM0NSw2MCBAQAogICovCiAvKiBCYW5rIDAgLSBGTEFTSAogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNICAoKENGR19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNICAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQkgQlJ4X1BTXzMyCQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTSAoMHhmZjAwMDAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNICgweGZmMDAwMDIwKQogCiAvKiBCYW5rIDEgLSA2MHggYnVzIFNEUkFNCiAgKi8KLSNkZWZpbmUgQ0ZHX0dMT0JBTF9TRFJBTV9MSU1JVAkoMjU2IDw8IDIwKQkvKiBsZXNzIHRoYW4gMjU2IE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfR0xPQkFMX1NEUkFNX0xJTUlUCSgyNTYgPDwgMjApCS8qIGxlc3MgdGhhbiAyNTYgTUIgKi8KIAotI2RlZmluZSBDRkdfTVBUUFIgICAgICAgMHgyODAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIgICAgICAgMHgyODAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEFkZHJlc3MgZm9yIE1vZGUgUmVnaXN0ZXIgU2V0IChNUlMpIGNvbW1hbmQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfTVJTX09GRlMJMHgwMDAwMDExMAotI2RlZmluZSBDRkdfUFNSVCAgICAgICAgMHgxMworI2RlZmluZSBDT05GSUdfU1lTX01SU19PRkZTCTB4MDAwMDAxMTAKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUICAgICAgICAweDEzCiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0gICgoQ0ZHX1NEUkFNX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19TRFJBTV9QICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjFfTElUVExFCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMV9MSVRUTEUKIAogLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzCiAqLwotI2RlZmluZSBDRkdfT1IxX0xJVFRMRQkoKH4oQ0ZHX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX0xJVFRMRQkoKH4oQ09ORklHX1NZU19HTE9CQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAogCQkJIE9SeFNfQlBEXzQgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BNwkJfFwKIAkJCSBPUnhTX05VTVJfMTIpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SX0xJVFRMRQkweDAwNGIzNmEzCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfTElUVExFCTB4MDA0YjM2YTMKIAotI2RlZmluZSBDRkdfT1IxX0JJRwkoKH4oQ0ZHX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX0JJRwkoKH4oQ09ORklHX1NZU19HTE9CQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAogCQkJIE9SeFNfQlBEXzQgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BNAkJfFwKIAkJCSBPUnhTX05VTVJfMTIpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SX0JJRwkJMHgwMTRmMzZhMworI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SX0JJRwkJMHgwMTRmMzZhMwogCiAvKiBJTyBvbiBDUzQgaW5pdGlhbGl6YXRpb24gdmFsdWVzCiAqLwotI2RlZmluZSBDRkdfSU9fQkFTRQkweGMwMDAwMDAwCi0jZGVmaW5lIENGR19JT19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JT19CQVNFCTB4YzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JT19TSVpFCTEKIAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkoKENGR19JT19CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCSgoQ09ORklHX1NZU19JT19CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfMTYgfCBCUnhfTVNfR1BDTV9MIHwgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JKDB4ZmZmODAwMjApCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkoMHhmZmY4MDAyMCkKIAotI2RlZmluZQlDRkdfUkVTRVRfQUREUkVTUyAweEZERkZGRkZDCS8qICJiYWQiIGFkZHJlc3MJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAweEZERkZGRkZDCS8qICJiYWQiIGFkZHJlc3MJCSovCiAKIC8qIHBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KICNkZWZpbmUgQ09ORklHX09GX0xJQkZEVAkxCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbXVjbWM1Mi5oIGIvaW5jbHVkZS9jb25maWdzL211Y21jNTIuaAppbmRleCA1MTdiM2I3Li4yZjQ4YTBmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbXVjbWM1Mi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9tdWNtYzUyLmgKQEAgLTM2LDE0ICszNiwxNCBAQAogI2RlZmluZQlDT05GSUdfTVBDNTIwMAkJMQkvKiAobW9yZSBwcmVjaXNlbHkgYW4gTVBDNTIwMCBDUFUpCSovCiAjZGVmaW5lCUNPTkZJR19NVUNNQzUyCQkxCS8qIE1VQ01DNTIgYm9hcmQJCQkqLwogCi0jZGVmaW5lCUNGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkJKi8KIAogI2RlZmluZQlCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNICSovCiAjZGVmaW5lCUJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CQkJKi8KIAotI2RlZmluZQlDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcwkJCSovCi0jaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfS0dEQikKLSMgIGRlZmluZQlDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzCQkJKi8KKyNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ09ORklHX1NZU19DTURfS0dEQikKKyMgIGRlZmluZQlDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogI2RlZmluZQlDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9SCkBAIC01Niw3ICs1Niw3IEBACiAgKi8KICNkZWZpbmUJQ09ORklHX1BTQ19DT05TT0xFCTEJLyogY29uc29sZSBpcyBvbiBQU0MxCSovCiAjZGVmaW5lCUNPTkZJR19CQVVEUkFURQkJMzg0MDAJLyogLi4uIGF0IDM4NDAwIGJwcwkqLwotI2RlZmluZQlDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lCUNPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qIFBhcnRpdGlvbnMgKi8KICNkZWZpbmUJQ09ORklHX0RPU19QQVJUSVRJT04KQEAgLTgzLDcgKzgzLDcgQEAKICNkZWZpbmUJQ09ORklHX1RJTUVTVEFNUAkxCS8qIFByaW50IGltYWdlIGluZm8gd2l0aCB0aW1lc3RhbXAgKi8KIAogI2lmIChURVhUX0JBU0UgPT0gMHhGRkYwMDAwMCkgLyogQm9vdCBsb3cgKi8KLSMgICBkZWZpbmUJQ0ZHX0xPV0JPT1QJCTEKKyMgICBkZWZpbmUJQ09ORklHX1NZU19MT1dCT09UCQkxCiAjZW5kaWYKIAogLyoKQEAgLTExOCw1NiArMTE4LDU2IEBACiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jdW5kZWYJQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLworI3VuZGVmCUNPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCiAKIC8qCiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lCUNPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lCUNGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLwogCi0jZGVmaW5lCUNGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lCUNGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lCUNGR19JMkNfRUVQUk9NX0FERFIJCTB4NTgKLSNkZWZpbmUJQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTEKLSNkZWZpbmUJQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAotI2RlZmluZQlDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTgKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lCUNPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lCUNPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKIAogLyoKICAqIFJUQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUJQ09ORklHX1JUQ19QQ0Y4NTYzCi0jZGVmaW5lCUNGR19JMkNfUlRDX0FERFIJCTB4NTEKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfUlRDX0FERFIJCTB4NTEKIAogLyogSTJDIFNZU01PTiAoTE03NSkgKi8KICNkZWZpbmUJQ09ORklHX0RUVF9MTTgxCQkJMQkvKiBPTiBTZW1pJ3MgTE03NQkJKi8KICNkZWZpbmUJQ09ORklHX0RUVF9TRU5TT1JTCQl7MH0JLyogU2Vuc29yIGFkZHJlc3NlcwkJKi8KLSNkZWZpbmUJQ0ZHX0RUVF9NQVhfVEVNUAkJNzAKLSNkZWZpbmUJQ0ZHX0RUVF9MT1dfVEVNUAkJLTMwCi0jZGVmaW5lCUNGR19EVFRfSFlTVEVSRVNJUwkJMworI2RlZmluZQlDT05GSUdfU1lTX0RUVF9NQVhfVEVNUAkJNzAKKyNkZWZpbmUJQ09ORklHX1NZU19EVFRfTE9XX1RFTVAJCS0zMAorI2RlZmluZQlDT05GSUdfU1lTX0RUVF9IWVNURVJFU0lTCQkzCiAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUJQ0ZHX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGODAwMDAwCiAKLSNkZWZpbmUJQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAgLyogOCBNQnl0ZSAqLwotI2RlZmluZQlDRkdfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAgLyogOCBNQnl0ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0FERFIJCShURVhUX0JBU0UrMHg0MDAwMCkgLyogc2Vjb25kIHNlY3RvciAqLwotI2RlZmluZQlDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcworI2RlZmluZQlDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MKIAkJCQkJICAgKD0gY2hpcCBzZWxlY3RzKSAqLwotI2RlZmluZQlDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCi0jZGVmaW5lCUNGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZQlDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lCUNGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lCUNGR19GTEFTSF9DRklfQU1EX1JFU0VUCisjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX0NGSV9BTURfUkVTRVQKIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCkBAIC0xODEsMTQgKzE4MSwxNCBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZQlDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZQlDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKLSNkZWZpbmUJQ0ZHX0RJU1BMQVlfQkFTRQkweDgwNjAwMDAwCi0jZGVmaW5lCUNGR19TVEFUVVMxX0JBU0UJMHg4MDYwMDIwMAotI2RlZmluZQlDRkdfU1RBVFVTMl9CQVNFCTB4ODA2MDAzMDAKLSNkZWZpbmUJQ0ZHX1BNSV9VTklfQkFTRQkweDgwODAwMDAwCi0jZGVmaW5lCUNGR19QTUlfQlJPQURfQkFTRQkweDgwODEwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0RJU1BMQVlfQkFTRQkweDgwNjAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU1RBVFVTMV9CQVNFCTB4ODA2MDAyMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TVEFUVVMyX0JBU0UJMHg4MDYwMDMwMAorI2RlZmluZQlDT05GSUdfU1lTX1BNSV9VTklfQkFTRQkweDgwODAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfUE1JX0JST0FEX0JBU0UJMHg4MDgxMDAwMAogCiAvKiBTZXR0aW5ncyBmb3IgWExCID0gMTMyIE1IeiAqLwogI2RlZmluZQlTRFJBTV9ERFIJIDEKQEAgLTIwMCwyNiArMjAwLDI2IEBACiAjZGVmaW5lCVNEUkFNX1RBUERFTEFZICAweDEwMDAwMDAwCiAKIC8qIFVzZSBPTi1DaGlwIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lCUNGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCiAjaWZkZWYgQ09ORklHX1BPU1QKIC8qIHByZXNlcnZlIHNwYWNlIGZvciB0aGUgcG9zdF93b3JkIGF0IGVuZCBvZiBvbi1jaGlwIFNSQU0gKi8KLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fUE9TVF9TSVpFCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKICNlbHNlCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKICNlbmRpZgogCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZQlDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lCUNGR19SQU1CT09UCTEKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZQlDT05GSUdfU1lTX1JBTUJPT1QJMQogI2VuZGlmCiAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMjMxLDcgKzIzMSw3IEBACiAvKgogICogR1BJTyBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUJQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDhENTUwNjQ0CisjZGVmaW5lCUNPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4OEQ1NTA2NDQKIAogLyp1c2UgIEhhcmR3YXJlIFdEVCAqLwogI2RlZmluZSBDT05GSUdfSFdfV0FUQ0hET0cKQEAgLTIzOSwyOSArMjM5LDI5IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KLSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ09ORklHX1NZU19DTURfS0dEQikKKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZQlDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZQlDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKIC8qIEVuYWJsZSBhbiBhbHRlcm5hdGUsIG1vcmUgZXh0ZW5zaXZlIG1lbW9yeSB0ZXN0ICovCi0jZGVmaW5lCUNGR19BTFRfTUVNVEVTVAorI2RlZmluZQlDT05GSUdfU1lTX0FMVF9NRU1URVNUCiAKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lCUNGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyoKLSAqIEVuYWJsZSBsb29wdyBjb21tYW5kby4gVGhpcyBoYXMgb25seSBhZmZlY3QsIGlmIENGR19DTURfTUVNIGlzIGRlZmluZWQsCisgKiBFbmFibGUgbG9vcHcgY29tbWFuZG8uIFRoaXMgaGFzIG9ubHkgYWZmZWN0LCBpZiBDT05GSUdfU1lTX0NNRF9NRU0gaXMgZGVmaW5lZCwKICAqIHdoaWNoIGlzIG5vcm1hbGx5IHBhcnQgb2YgdGhlIGRlZmF1bHQgY29tbWFuZHMgKENGVl9DTURfREZMKQogICovCiAjZGVmaW5lCUNPTkZJR19MT09QVwpAQCAtMjcwLDQ2ICsyNzAsNDYgQEAKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQotI2RlZmluZQlDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZQlDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUJQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lCUNPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKICNlbHNlCi0jZGVmaW5lCUNGR19ISUQwX0lOSVQJCTAKLSNkZWZpbmUJQ0ZHX0hJRDBfRklOQUwJCTAKKyNkZWZpbmUJQ09ORklHX1NZU19ISUQwX0lOSVQJCTAKKyNkZWZpbmUJQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkwCiAjZW5kaWYKIAotI2RlZmluZQlDRkdfQk9PVENTX1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19CT09UQ1NfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUJQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNEZCMDAKLSNkZWZpbmUJQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX0NTMF9TSVpFCQlDRkdfRkxBU0hfU0laRQorI2RlZmluZQlDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0RkIwMAorI2RlZmluZQlDT05GSUdfU1lTX0NTMF9TVEFSVAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfQ1MwX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQogCiAvKiA4TWJpdCBTUkFNIEAweDgwMTAwMDAwICovCi0jZGVmaW5lCUNGR19DUzFfU1RBUlQJCTB4ODAxMDAwMDAKLSNkZWZpbmUJQ0ZHX0NTMV9TSVpFCQkweDAwMTAwMDAwCi0jZGVmaW5lCUNGR19DUzFfQ0ZHCQkweDAwMDE5QjAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1MxX1NUQVJUCQkweDgwMTAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1MxX1NJWkUJCTB4MDAxMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19DUzFfQ0ZHCQkweDAwMDE5QjAwCiAKIC8qIEZSQU0gMzJLYnl0ZSBAMHg4MDcwMDAwMCAqLwotI2RlZmluZQlDRkdfQ1MyX1NUQVJUCQkweDgwNzAwMDAwCi0jZGVmaW5lCUNGR19DUzJfU0laRQkJMHgwMDAwODAwMAotI2RlZmluZQlDRkdfQ1MyX0NGRwkJMHgwMDAxOTgwMAorI2RlZmluZQlDT05GSUdfU1lTX0NTMl9TVEFSVAkJMHg4MDcwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0NTMl9TSVpFCQkweDAwMDA4MDAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1MyX0NGRwkJMHgwMDAxOTgwMAogCiAvKiBEaXNwbGF5IEgxLCBTdGF0dXMgSW5wdXRzLCBFUExEIEAweDgwNjAwMDAwICovCi0jZGVmaW5lCUNGR19DUzNfU1RBUlQJCTB4ODA2MDAwMDAKLSNkZWZpbmUJQ0ZHX0NTM19TSVpFCQkweDAwMTAwMDAwCi0jZGVmaW5lCUNGR19DUzNfQ0ZHCQkweDAwMDE5ODAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1MzX1NUQVJUCQkweDgwNjAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1MzX1NJWkUJCTB4MDAxMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19DUzNfQ0ZHCQkweDAwMDE5ODAwCiAKIC8qIFBNSSBVbmljYXN0IDMyS2J5dGUgQDB4ODA4MDAwMDAgKi8KLSNkZWZpbmUJQ0ZHX0NTNl9TVEFSVAkJQ0ZHX1BNSV9VTklfQkFTRQotI2RlZmluZQlDRkdfQ1M2X1NJWkUJCTB4MDAwMDgwMDAKLSNkZWZpbmUJQ0ZHX0NTNl9DRkcJCTB4RkZGRkY5MzAKKyNkZWZpbmUJQ09ORklHX1NZU19DUzZfU1RBUlQJCUNPTkZJR19TWVNfUE1JX1VOSV9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfQ1M2X1NJWkUJCTB4MDAwMDgwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19DUzZfQ0ZHCQkweEZGRkZGOTMwCiAKIC8qIFBNSSBCcm9hZGNhc3QgMzJLYnl0ZSBAMHg4MDgxMDAwMCAqLwotI2RlZmluZQlDRkdfQ1M3X1NUQVJUCQlDRkdfUE1JX0JST0FEX0JBU0UKLSNkZWZpbmUJQ0ZHX0NTN19TSVpFCQkweDAwMDA4MDAwCi0jZGVmaW5lCUNGR19DUzdfQ0ZHCQkweEZGMDBGOTMwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1M3X1NUQVJUCQlDT05GSUdfU1lTX1BNSV9CUk9BRF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfQ1M3X1NJWkUJCTB4MDAwMDgwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19DUzdfQ0ZHCQkweEZGMDBGOTMwCiAKLSNkZWZpbmUJQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lCUNGR19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMworI2RlZmluZQlDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiBTdXBwb3J0cyBJREUgaGFyZGRpc2sKQEAgLTMyMSwyNiArMzIxLDI2IEBACiAjdW5kZWYJQ09ORklHX0lERV84eHhfRElSRUNUCQkvKiBEaXJlY3QgSURFICAgIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lCUNGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZQlDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZQlDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzCSovCiAKICNkZWZpbmUJQ09ORklHX0lERV9QUkVJTklUCTEKIAotI2RlZmluZQlDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZQlDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZQlDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lCUNGR19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKKyNkZWZpbmUJQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUJQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfQVRBX0RBVEFfT0ZGU0VUKQorI2RlZmluZQlDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lCUNGR19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQorI2RlZmluZQlDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCiAKIC8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzICAgICAgICAgICAqLwotI2RlZmluZQlDRkdfQVRBX1NUUklERSAgICAgICAgICA0CisjZGVmaW5lCUNPTkZJR19TWVNfQVRBX1NUUklERSAgICAgICAgICA0CiAKICNkZWZpbmUJQ09ORklHX0FUQVBJICAgICAgICAgICAgMQogCkBAIC0zNjIsMTMgKzM2MiwxMyBAQAogI2RlZmluZQlDT05GSUdfUENJX0lPX1BIWVMJQ09ORklHX1BDSV9JT19CVVMKICNkZWZpbmUJQ09ORklHX1BDSV9JT19TSVpFCTB4MDEwMDAwMDAKIAotI2RlZmluZQlDRkdfSVNBX0lPCQlDT05GSUdfUENJX0lPX0JVUworI2RlZmluZQlDT05GSUdfU1lTX0lTQV9JTwkJQ09ORklHX1BDSV9JT19CVVMKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogRGlzcGxheSBhZGRyZXNzZXMJCQkJCQkgICAgICAgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2RlZmluZQlDRkdfRElTUF9DSFJfUkFNCShDRkdfRElTUExBWV9CQVNFICsgMHgzOCkKLSNkZWZpbmUJQ0ZHX0RJU1BfQ1dPUkQJCShDRkdfRElTUExBWV9CQVNFICsgMHgzMCkKKyNkZWZpbmUJQ09ORklHX1NZU19ESVNQX0NIUl9SQU0JKENPTkZJR19TWVNfRElTUExBWV9CQVNFICsgMHgzOCkKKyNkZWZpbmUJQ09ORklHX1NZU19ESVNQX0NXT1JECQkoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDMwKQogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL211bmljZXMuaCBiL2luY2x1ZGUvY29uZmlncy9tdW5pY2VzLmgKaW5kZXggOGYzMDcxYS4uNzY4MmZhYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL211bmljZXMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbXVuaWNlcy5oCkBAIC0zMSwxMCArMzEsMTAgQEAKICNkZWZpbmUgQ09ORklHX01QQzUyMDAJCTEJLyogKG1vcmUgcHJlY2lzZWx5IGFuIE1QQzUyMDAgQ1BVKSAqLwogI2RlZmluZSBDT05GSUdfTVBDNTIwMF9ERFIJMQkvKiAod2l0aCBERFItU0RSQU0pICovCiAjZGVmaW5lIENPTkZJR19NVU5JQ0VTCQkxCS8qIC4uLiBvbiBNVU5JQ2VzIGJvYXJkICovCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMzMzMzMzIC8qIC4uLiBydW5uaW5nIGF0IDMzLjMzMzMzM01IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4JMzMzMzMzMzMgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMzMzMzMzTUh6ICovCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCiAjZGVmaW5lIENPTkZJR19ISUdIX0JBVFMJMQkvKiBIaWdoIEJBVHMgc3VwcG9ydGVkICovCiAKIC8qCkBAIC01MCw3ICs1MCw3IEBACiAjZGVmaW5lIENPTkZJR19DTURfUkVHSU5GTwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCkBAIC01OCw3ICs1OCw3IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1BTQ19DT05TT0xFCTEJLyogY29uc29sZSBpcyBvbiBQU0MxICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCS8qIC4uLiBhdCAxMTUyMDAgYnBzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogI2RlZmluZQlDT05GSUdfVElNRVNUQU1QCTEJLyogUHJpbnQgaW1hZ2UgaW5mbyB3aXRoIHRpbWVzdGFtcCAqLwogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUgICAvKiBhdXRvYm9vdCBhZnRlciA1IHNlY29uZHMgKi8KQEAgLTkxLDYzICs5MSw2MyBAQAogLyoKICAqIElQQiBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbi4KICAqLwotI2RlZmluZSAgQ0ZHX0lQQlNQRUVEXzEzMwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KLSNpZiBkZWZpbmVkKENGR19JUEJTUEVFRF8xMzMpCisjZGVmaW5lICBDT05GSUdfU1lTX0lQQlNQRUVEXzEzMwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSVBCU1BFRURfMTMzKQogLyoKICAqIFBDSSBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbgogICoKICAqIEFjdHVhbGx5IGEgUENJIENsb2NrIG9mIDY2IE1IeiBpcyBvbmx5IHNldCAoaW4gY3B1X2luaXQuYykgaWYKLSAqIENGR19JUEJTUEVFRF8xMzMgaXMgZGVmaW5lZC4gVGhpcyBpcyBiZWNhdXNlIGEgUENJIENsb2NrIG9mIDY2IE1IeiB5ZXQgaGFzbid0CisgKiBDT05GSUdfU1lTX0lQQlNQRUVEXzEzMyBpcyBkZWZpbmVkLiBUaGlzIGlzIGJlY2F1c2UgYSBQQ0kgQ2xvY2sgb2YgNjYgTUh6IHlldCBoYXNuJ3QKICAqIGJlZW4gdGVzdGVkIHdpdGggYSBJUEIgQnVzIENsb2NrIG9mIDY2IE1Iei4KICAqLwotI2RlZmluZSBDRkdfUENJU1BFRURfNjYJCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lTUEVFRF82NgkJLyogZGVmaW5lIGZvciA2Nk1IeiBzcGVlZCAqLwogI2Vsc2UKLSN1bmRlZiBDRkdfUENJU1BFRURfNjYJCQkvKiBmb3IgMzNNSHogc3BlZWQgKi8KKyN1bmRlZiBDT05GSUdfU1lTX1BDSVNQRUVEXzY2CQkJLyogZm9yIDMzTUh6IHNwZWVkICovCiAjZW5kaWYKIAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMCAvKiBNQkFSIGhhc3QgdG8gYmUgc3dpdGNoZWQgYnkgb3RoZXIgYm9vdGxvYWRlciBvciBkZWJ1Z2dlciBjb25maWcgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMCAvKiBNQkFSIGhhc3QgdG8gYmUgc3dpdGNoZWQgYnkgb3RoZXIgYm9vdGxvYWRlciBvciBkZWJ1Z2dlciBjb25maWcgICovCiAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAgLyogMTYgTUJ5dGUgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkgLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAoPSBjaGlwIHNlbGVjdHMpICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCS8qIG5vdCBzdXBwb3J0ZWQgeWV0IGZvciBBTUQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMTAwMDAwMCAvKiAxNiBNQnl0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJIC8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MgKD0gY2hpcCBzZWxlY3RzKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJLyogbm90IHN1cHBvcnRlZCB5ZXQgZm9yIEFNRCAqLwogCiAvKgogICogQ2hpcCBzZWxlY3RzIGNvbmZpZ3VyYXRpb24KICAqLwogLyogQm9vdCBDaGlwc2VsZWN0ICovCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0NzgwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0NzgwMAogCiAvKgogICogRW52aXJvbm1lbnQgc2V0dGluZ3MKQEAgLTE3MiwyNCArMTcyLDI0IEBACiAvKgogICogR1BJTyBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDAwMDU4MDQ0IC8qIFBTQzE9VUFSVCwgUFNDMj1VQVJUIDsgRXRoZXI9MTAwTUJpdCB3aXRoIE1ECisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4MDAwNTgwNDQgLyogUFNDMT1VQVJULCBQU0MyPVVBUlQgOyBFdGhlcj0xMDBNQml0IHdpdGggTUQKIAkJCQkJCW5vIFBDSSAqLwogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19ESVNQTEFZX0JPQVJESU5GTyAxCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcgIDEKQEAgLTE5NywxMiArMTk3LDEyIEBACiAvKgogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCiAKIC8qIHBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KICNkZWZpbmUgQ09ORklHX09GX0xJQkZEVAkxCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbXgxYWRzLmggYi9pbmNsdWRlL2NvbmZpZ3MvbXgxYWRzLmgKaW5kZXggMmViNDNiZi4uZjEzNmIwYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL214MWFkcy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9teDFhZHMuaApAQCAtNDgsMTkgKzQ4LDE5IEBACiAjZGVmaW5lIFVTRV85MjBUX01NVQkJMQogCiAjaWYgMAotI2RlZmluZSBDRkdfTVgxX0dQQ1IJCTB4MDAwMDAzQUIJLyogZm9yIE1YMUFEUyAwTDQ0TgkJKi8KLSNkZWZpbmUgQ0ZHX01YMV9HUENSCQkweDAwMDAwM0FCCS8qIGZvciBNWDFBRFMgMEw0NE4JCSovCi0jZGVmaW5lIENGR19NWDFfR1BDUgkJMHgwMDAwMDNBQgkvKiBmb3IgTVgxQURTIDBMNDROCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01YMV9HUENSCQkweDAwMDAwM0FCCS8qIGZvciBNWDFBRFMgMEw0NE4JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVgxX0dQQ1IJCTB4MDAwMDAzQUIJLyogZm9yIE1YMUFEUyAwTDQ0TgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NWDFfR1BDUgkJMHgwMDAwMDNBQgkvKiBmb3IgTVgxQURTIDBMNDROCQkqLwogI2VuZGlmCiAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogIENTODkwMCBFdGhlcm5ldCBkcml2ZXJzCkBAIC0xMTMsMzQgKzExMywzNCBAQAogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCiAKLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIk1YMUFEUyQgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIk1YMUFEUyQgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZWxzZQotI2RlZmluZSBDRkdfUFJPTVBUCQkiTVgxQURTPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiTVgxQURTPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQogCQkJCQkJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwOTAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQUYwMDAwMAkvKiA2MyBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA5MDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQUYwMDAwMAkvKiA2MyBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfQ0xLU19JTl9IWgkJCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDg4MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLS8qI2RlZmluZQlDRkdfSFoJCQkxMDAwICovCi0jZGVmaW5lIENGR19IWgkJCTM2ODY0MDAKLSNkZWZpbmUgQ0ZHX0NQVVNQRUVECQkweDE0MQorI3VuZGVmCUNPTkZJR19TWVNfQ0xLU19JTl9IWgkJCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDA4ODAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisvKiNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTM2ODY0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUFVTUEVFRAkJMHgxNDEKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTYxLDggKzE2MSw4IEBACiAjZGVmaW5lIFBIWVNfU0RSQU1fMQkJMHgwODAwMDAwMAkvKiBTRFJBTSAgb24gQ1NEMAkJKi8KICNkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJMHgwNDAwMDAwMAkvKiA2NCBNQgkJCSovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiAxIGJhbmsgb2YgU3luY0ZsYXNoCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgwQzAwMDAwMAkvKiBTeW5jRmxhc2ggb24gQ1NEMQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogMSBiYW5rIG9mIFN5bmNGbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDBDMDAwMDAwCS8qIFN5bmNGbGFzaCBvbiBDU0QxCQkqLwogI2RlZmluZSBGTEFTSF9CQU5LX1NJWkUJCTB4MDEwMDAwMDAJLyogMTYgTUIgVG90YWwJCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNzEsOCArMTcxLDggQEAKIAogI2RlZmluZSBDT05GSUdfU1lOQ0ZMQVNICTEKICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAxMDAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMTYpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFKzB4MDBmZjgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDE2KQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UrMHgwMGZmODAwMCkKIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDA0MDAwIC8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbXgxZnMyLmggYi9pbmNsdWRlL2NvbmZpZ3MvbXgxZnMyLmgKaW5kZXggMzk5NTBkYy4uYWFhNGU5OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL214MWZzMi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9teDFmczIuaApAQCAtNzAsMjIgKzcwLDIyIEBACiAvKgogICogR2VuZXJhbCBvcHRpb25zIGZvciB1LWJvb3QuIE1vZGlmeSB0byBzYXZlIG1lbW9yeSBmb290IHByaW50CiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCSAgICAgIC8qIHVuZGVmIHNhdmVzIG1lbW9yeSAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIm14MWZzMj4gIgkgICAgICAvKiBwcm9tcHQgc3RyaW5nCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkgICAgICAvKiBjb25zb2xlIEkvTyBidWZmZXIgICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBwcmludCBidWZmZXIgc2l6ZSAgICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJICAgICAgLyogbWF4IGNvbW1hbmQgYXJncyAgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJICAgICAgLyogYm9vdCBhcmdzIGJ1ZiBzaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCSAgICAgIC8qIHVuZGVmIHNhdmVzIG1lbW9yeSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJteDFmczI+ICIJICAgICAgLyogcHJvbXB0IHN0cmluZwkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCSAgICAgIC8qIGNvbnNvbGUgSS9PIGJ1ZmZlciAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIHByaW50IGJ1ZmZlciBzaXplICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJICAgICAgLyogbWF4IGNvbW1hbmQgYXJncyAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkgICAgICAvKiBib290IGFyZ3MgYnVmIHNpemUgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwODEwMDAwMAkgICAgICAvKiBtZW10ZXN0IHRlc3QgYXJlYSAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwOEYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwODEwMDAwMAkgICAgICAvKiBtZW10ZXN0IHRlc3QgYXJlYSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDhGMDAwMDAKIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkJICAgICAvKiB1c2UgSFogZm9yIGZyZXEuIGRpc3BsYXkgICAgICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkJICAgICAvKiB1c2UgSFogZm9yIGZyZXEuIGRpc3BsYXkgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMzY4NjQwMAkgICAgIC8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVECQkweDE0MQkgICAgIC8qIGNvcmUgY2xvY2sgLSByZWdpc3RlciB2YWx1ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTM2ODY0MDAJICAgICAvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQJCTB4MTQxCSAgICAgLyogY29yZSBjbG9jayAtIHJlZ2lzdGVyIHZhbHVlICAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUgMTE1MjAwCiAvKgogICogRGVmaW5pdGlvbnMgcmVsYXRlZCB0byBwYXNzaW5nIGFyZ3VtZW50cyB0byBrZXJuZWwuCkBAIC05OCwxMCArOTgsMTAgQEAKIC8qCiAgKiBNYWxsb2MgcG9vbCBuZWVkIHRvIGhvc3QgZW52ICsgMTI4IEtiIHJlc2VydmUgZm9yIG90aGVyIGFsbG9jYXRpb25zLgogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSAgKENPTkZJR19FTlZfU0laRSArICgxMjg8PDEwKSApCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkgIChDT05GSUdfRU5WX1NJWkUgKyAoMTI4PDwxMCkgKQogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJKDEyMDw8MTApICAgICAgLyogc3RhY2sgc2l6ZSAqLwogCkBAIC0xMzUsOCArMTM1LDggQEAKICAqIEZsYXNoIENvbnRyb2xsZXIgc2V0dGluZ3MKICAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBGTEFTSCBiYW5rcyBjb3VudCAobm90IGNoaXAgY291bnQpKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBudW1iZXIgb2Ygc2VjdG9yIGluIEZMQVNIIGJhbmsgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBGTEFTSCBiYW5rcyBjb3VudCAobm90IGNoaXAgY291bnQpKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbnVtYmVyIG9mIHNlY3RvciBpbiBGTEFTSCBiYW5rICAgICovCiAKICNpZmRlZiBCVVMzMkJJVF9WRVJTSU9OCiAjZGVmaW5lIE1YMUZTMl9GTEFTSF9CVVNfV0lEVEgJNAkvKiB3ZSB1c2UgMzIgYml0IEZMQVNIIG1lbW9yeS4uLiAgICAgKi8KQEAgLTE1NiwxMiArMTU2LDEyIEBACiAgICBpcyBub3Qgc28gY2xlYXIgdG8gbWUuIEluIG90aGVyIHdvcmRzIHdlIGNhbiBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb25zCiAgICB0byB1c2VyLCBidXQgdGhpcyBleHBlY3RzIG1vcmUgY29tcGxleCBmbGFzaCBoYW5kbGluZyB3ZSBkbyBub3QgcHJvdmlkZQogICAgbm93LiovCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NGSQorI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0ZJCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ0ZHX0haKSAgICAvKiB0aW1lb3V0IGZvciBFcmFzZSBvcGVyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ0ZHX0haKSAgICAvKiB0aW1lb3V0IGZvciBXcml0ZSBvcGVyYXRpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyKkNPTkZJR19TWVNfSFopICAgIC8qIHRpbWVvdXQgZm9yIEVyYXNlIG9wZXJhdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgICAgLyogdGltZW91dCBmb3IgV3JpdGUgb3BlcmF0aW9uICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCU1YMUZTMl9GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJTVgxRlMyX0ZMQVNIX0JBU0UKIAogLyoKICAqIFRoaXMgaXMgc2V0dGluZyBmb3IgSkZGUzIgc3VwcG9ydCBpbiB1LWJvb3QuCkBAIC0yMDUsOCArMjA1LDggQEAKICAqIGVudi4gaGFzIG5vIHNlbnNlIHRvIHVzLgogICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgyMDAwMAkJLyogMTI4YiAoIDEgZmxhc2ggc2VjdG9yICkgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MjAwMDAJCS8qIDEyOGIgKCAxIGZsYXNoIHNlY3RvciApICAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHgxMDAyMDAwMAkvKiBhYnNvbHV0ZSBhZGRyZXNzIGZvciBub3cgICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwMApAQCAtMjE0LDcgKzIxNCw3IEBACiAjZGVmaW5lCSBDT05GSUdfRU5WX09WRVJXUklURQkxCQkvKiBlbnYgaXMgbm90IHdyaXRhYmxlIG5vdyAgICovCiAKIC8qIFNldHVwIENTNCBhbmQgQ1M1ICovCi0jZGVmaW5lIENGR19HSVVTX0FfVkFMCQkweDAwMDNmZmZlCisjZGVmaW5lIENPTkZJR19TWVNfR0lVU19BX1ZBTAkJMHgwMDAzZmZmZQogCiAvKgogICogQ1N4VV9WQUw6CkBAIC0yMjYsMTQgKzIyNiwxNCBAQAogICogICB8CSBPRUEgICB8ICAgT0VOCSB8ICAgV0VBICAgfCAgIFdFTiAgIHwJIENTQSAgIHxFQkN8IERTWiAgfCAwfFNQfDB8V1B8IDAgMHxQQXxDU0VOfAogICovCiAKLSNkZWZpbmUgQ0ZHX0NTMFVfVkFMIDB4MDAwMDhDMDAKLSNkZWZpbmUgQ0ZHX0NTMExfVkFMIDB4MjIyMjI2MDEKLSNkZWZpbmUgQ0ZHX0NTMVVfVkFMIDB4MDAwMDhDMDAKLSNkZWZpbmUgQ0ZHX0NTMUxfVkFMIDB4MjIyMjIzMDEKLSNkZWZpbmUgQ0ZHX0NTNFVfVkFMIDB4MDAwMDhDMDAKLSNkZWZpbmUgQ0ZHX0NTNExfVkFMIDB4MjIyMjIzMDEKLSNkZWZpbmUgQ0ZHX0NTNVVfVkFMIDB4MDAwMDhDMDAKLSNkZWZpbmUgQ0ZHX0NTNUxfVkFMIDB4MjIyMjIzMDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBVX1ZBTCAweDAwMDA4QzAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwTF9WQUwgMHgyMjIyMjYwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTMVVfVkFMIDB4MDAwMDhDMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFMX1ZBTCAweDIyMjIyMzAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1M0VV9WQUwgMHgwMDAwOEMwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTNExfVkFMIDB4MjIyMjIzMDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzVVX1ZBTCAweDAwMDA4QzAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1M1TF9WQUwgMHgyMjIyMjMwMQogCiAvKiBmX3tkcGxsfT0yKmZ7cmVmfSooTUZJK01GTi8oTUZEKzEpKS8oUEQrMSkKICAgIGZfcmVmPTE2LDc3N01IegpAQCAtMjUyLDI1ICsyNTIsMjUgQEAKICAgIDMxIHx4IHggeCB4fHggeCB4IHh8eCB4IHggeHx4IHggeCB4fHggeCB4IHh8eCB4IHggeHx4IHggeCB4fHggeCB4IHh8IDAKICAgICAgIHxYWFh8LS1QRC0tLXwtLS0tLS0tTUZELS0tLS0tLS0tfFhYWHwtLU1GSS0tfC0tLS0tTUZOLS0tLS0tLS0tLS18CSAgICAqLwogCi0jZGVmaW5lIENGR19NUENUTDBfVkFMCQkweDA3RTcyM0FECi0jZGVmaW5lIENGR19NUENUTDFfVkFMCQkweDAwMDAwMDQwCi0jZGVmaW5lIENGR19QQ0RSX1ZBTAkJMHgwMDAxMDAwNQotI2RlZmluZSBDRkdfR1BDUl9WQUwJCTB4MDAwMDBGRkIKKyNkZWZpbmUgQ09ORklHX1NZU19NUENUTDBfVkFMCQkweDA3RTcyM0FECisjZGVmaW5lIENPTkZJR19TWVNfTVBDVEwxX1ZBTAkJMHgwMDAwMDA0MAorI2RlZmluZSBDT05GSUdfU1lTX1BDRFJfVkFMCQkweDAwMDEwMDA1CisjZGVmaW5lIENPTkZJR19TWVNfR1BDUl9WQUwJCTB4MDAwMDBGRkIKIAogI2RlZmluZSBVU0VfMTZNX09TWkkgLyogSWYgeW91IGhhdmUgb25lLCB5b3Ugd2FudCB0byB1c2UgaXQKIAkJCVRoZSBpbnRlcm5hbCAzMmtIeiBvc3ppbGxhdG9yIGppdHRlcnMgKi8KICNpZmRlZiBVU0VfMTZNX09TWkkKIAotI2RlZmluZSBDRkdfU1BDVEwwX1ZBTAkJMHgwNDAwMTQwMQotI2RlZmluZSBDRkdfU1BDVEwxX1ZBTAkJMHgwQzAwMDA0MAotI2RlZmluZSBDRkdfQ1NDUl9WQUwJCTB4MDcwMzAwMDMKKyNkZWZpbmUgQ09ORklHX1NZU19TUENUTDBfVkFMCQkweDA0MDAxNDAxCisjZGVmaW5lIENPTkZJR19TWVNfU1BDVEwxX1ZBTAkJMHgwQzAwMDA0MAorI2RlZmluZSBDT05GSUdfU1lTX0NTQ1JfVkFMCQkweDA3MDMwMDAzCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMTY3ODAwMDAKICNkZWZpbmUgQ09ORklHX1NZU1BMTF9DTEtfRlJFUQkxNjAwMDAwMAogCiAjZWxzZQogCi0jZGVmaW5lIENGR19TUENUTDBfVkFMCQkweDA3RTcxNkQxCi0jZGVmaW5lIENGR19DU0NSX1ZBTAkJMHgwNjAwMDAwMworI2RlZmluZSBDT05GSUdfU1lTX1NQQ1RMMF9WQUwJCTB4MDdFNzE2RDEKKyNkZWZpbmUgQ09ORklHX1NZU19DU0NSX1ZBTAkJMHgwNjAwMDAwMwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTE2NzgwMDAwCiAjZGVmaW5lIENPTkZJR19TWVNQTExfQ0xLX0ZSRVEJMTY3ODAwMDAKIApAQCAtMjgxLDkgKzI4MSw5IEBACiAgKiBvbmUgbWF5IGV4cGVjdC4gRm9yIGluc3RhbmNlIGxvYWRiIGNvbW1hbmQgZG8gbm90IGNhcmVzIDotKQogICogU28gYWR2aWNlIGlzIC0gZG8gbm90IHJlbGF5IG9uIHRoaXMuLi4KICAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDA4NDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDA4NDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZNQ1JfVkFMCQkweDAwMDAwMDAzIC8qIFJlc2V0IERlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTUNSX1ZBTAkJMHgwMDAwMDAwMyAvKiBSZXNldCBEZWZhdWx0ICovCiAKIC8qIEJpdFswOjNdIGNvbnRhaW4gUEVSQ0xLMURJViBmb3IgVUFSVCAxCiAgICAweDAwMGIwMGIgLT5iPC0gLT4gMTkyTUh6LzEyPTE2TUh6CkBAIC0yOTYsMTUgKzI5NiwxNSBAQAogI2RlZmluZSBDT05GSUdfSU1YX1NFUklBTDIKICNlbGlmIGRlZmluZWQgX0NPTkZJR19VQVJUMyB8IGRlZmluZWQgX0NPTkZJR19VQVJUNAogI2RlZmluZSBDT05GSUdfSU1YX1NFUklBTF9OT05FCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTM2ODY0MDAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkzNjg2NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNpZmRlZiBfQ09ORklHX1VBUlQzCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJMHgxNTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkweDE1MDAwMDAwCiAjZWxpZiBkZWZpbmVkIF9DT05GSUdfVUFSVDQKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkweDE2MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCTB4MTYwMDAwMDAKICNlbmRpZgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9teDMxYWRzLmggYi9pbmNsdWRlL2NvbmZpZ3MvbXgzMWFkcy5oCmluZGV4IDA0NzkwZmQuLjE2NDlmMWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9teDMxYWRzLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL214MzFhZHMuaApAQCAtNTAsMTUgKzUwLDE1IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjggKiAxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCiAgKi8KIAogI2RlZmluZSBDT05GSUdfTVgzMV9VQVJUCTEKLSNkZWZpbmUgQ0ZHX01YMzFfVUFSVDEJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NWDMxX1VBUlQxCQkxCiAKICNkZWZpbmUgQ09ORklHX0hBUkRfU1BJCQkxCiAjZGVmaW5lIENPTkZJR19NWENfU1BJCQkxCkBAIC03NCw3ICs3NCw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXs5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb21tYW5kIGRlZmluaXRpb24KQEAgLTEyOCwyMCArMTI4LDIwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTAJCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkwCQkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MTAwMDAKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQlDT05GSUdfTE9BREFERFIKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCUNPTkZJR19MT0FEQUREUgogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEKIApAQCAtMTYyLDExICsxNjIsMTEgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ1MwX0JBU0UKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjYyCQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQkvKiBNb25pdG9yIGF0IGJlZ2lubmluZyBvZiBmbGFzaCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NktpQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNTMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjYyCQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIE1vbml0b3IgYXQgYmVnaW5uaW5nIG9mIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NktpQiAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkoMzIgKiAxMDI0KQpAQCAtMTgwLDE2ICsxODAsMTYgQEAKICAqIFRoZSByZXN0IG9mIDMyTWlCIGlzIGluIDEyOEtpQiBiaWcgc2VjdG9ycy4gVS1Cb290IG9jY3VwaWVzIHRoZSBsb3cgNCBzZWN0b3JzLAogICogaWYgd2UgcHV0IGVudmlyb25tZW50IG5leHQgdG8gaXQsIHdlIHdpbGwgaGF2ZSB0byBvY2N1cHkgMTI4S2lCIGZvciBpdC4KICAqIFB1dHRpbmcgaXQgYXQgdGhlIHRvcCBvZiBmbGFzaCB3ZSB1c2Ugb25seSAzMktpQi4gKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19FTlZfU0VDVF9TSVpFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDRkkgRkxBU0ggZHJpdmVyIHNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCTEgLyogRmxhc2ggbWVtb3J5IGlzIENGSSBjb21wbGlhbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkxIC8qIEZsYXNoIG1lbW9yeSBpcyBDRkkgY29tcGxpYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkxIC8qIFVzZSBkcml2ZXJzL2NmaV9mbGFzaC5jICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9TUEFOU0lPTl9TMjlXU19OCTEgLyogQSBub24tc3RhbmRhcmQgYnVmZmVyZWQgd3JpdGUgYWxnb3JpdGhtICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEgLyogVXNlIGJ1ZmZlcmVkIHdyaXRlcyAofjEweCBmYXN0ZXIpICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCQkxIC8qIFVzZSBoYXJkd2FyZSBzZWN0b3IgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMSAvKiBVc2UgYnVmZmVyZWQgd3JpdGVzICh+MTB4IGZhc3RlcikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCQkxIC8qIFVzZSBoYXJkd2FyZSBzZWN0b3IgcHJvdGVjdGlvbiAqLwogCiAvKgogICogSkZGUzIgcGFydGl0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL25ldHN0YXIuaCBiL2luY2x1ZGUvY29uZmlncy9uZXRzdGFyLmgKaW5kZXggMjNmZDE4Yi4uZGRhNjU5NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL25ldHN0YXIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbmV0c3Rhci5oCkBAIC00OSw3ICs0OSw3IEBACiAjZGVmaW5lIENPTkZJR19JTklUUkRfVEFHCQkxCiAKICNkZWZpbmUgQ09ORklHX1NJTEVOVF9DT05TT0xFCQkxCS8qIGVuYWJsZSBzaWxlbnQgc3RhcnR1cCAqLwotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCiAKIC8qCiAgKiBQaHlzaWNhbCBNZW1vcnkgTWFwCkBAIC02MiwxNSArNjIsMTUgQEAKIC8qCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCiAjZGVmaW5lIFBIWVNfRkxBU0hfMV9TSVpFCSgxICogMTAyNCAqIDEwMjQpCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxOQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoNSpDRkdfSFopIC8qIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSg1KkNGR19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxOQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDUqQ09ORklHX1NZU19IWikgLyogaW4gdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSg1KkNPTkZJR19TWVNfSFopCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQogCiAvKgogICogRW52aXJvbm1lbnQgc2V0dGluZ3MKQEAgLTg2LDggKzg2LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNCAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg0ICogMTAyNCAqIDEwMjQpCiAKIC8qCiAgKiBUaGUgc3RhY2sgc2l6ZSBpcyBzZXQgdXAgaW4gc3RhcnQuUyB1c2luZyB0aGUgc2V0dGluZ3MgYmVsb3cKQEAgLTEwMywxNSArMTAzLDE1IEBACiAvKgogICogTlMxNjU1MCBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCSgtNCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkoQ09ORklHX1hUQUxfRlJFUSkJLyogY2FuIGJlIDEyTS8zMktoeiBvciA0OE1oeiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQlPTUFQMTUxMF9VQVJUMV9CQVNFCS8qIHVhcnQxICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkoLTQpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCShDT05GSUdfWFRBTF9GUkVRKQkvKiBjYW4gYmUgMTJNLzMyS2h6IG9yIDQ4TWh6ICAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQlPTUFQMTUxMF9VQVJUMV9CQVNFCS8qIHVhcnQxICovCiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyojZGVmaW5lIENPTkZJR19TS0lQX1JFTE9DQVRFX1VCT09UKi8KIC8qI2RlZmluZSBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUICovCkBAIC0xMTksOSArMTE5LDkgQEAKIC8qCiAgKiBOQU5EIGZsYXNoCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEKICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCTEKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkweDA0MDAwMDAwICsgKDIgPDwgMjMpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCTB4MDQwMDAwMDAgKyAoMiA8PCAyMykKICNkZWZpbmUgTkFORF9BTExPV19FUkFTRV9BTEwJMQogCiAvKgpAQCAtMTY4LDcgKzE2OCw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogYWxsb3cgdG8gYnJlYWsgaW4gYWx3YXlzICovCiAjdW5kZWYgIENPTkZJR19CT09UQVJHUwkJLyogdGhlIGJvb3QgY29tbWFuZCB3aWxsIHNldCBib290YXJncyovCi0jZGVmaW5lIENGR19BVVRPTE9BRAkJIm4iCQkvKiBObyBhdXRvbG9hZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FVVE9MT0FECQkibiIJCS8qIE5vIGF1dG9sb2FkICovCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZib290IgogI2RlZmluZSBDT05GSUdfUFJFQk9PVAkJInJ1biBzZXR1cCIKICNkZWZpbmUJQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJCQkJCVwKQEAgLTIwMywzMSArMjAzLDMxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIiMgIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiIyAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAlQSFlTX1NEUkFNXzEKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQlQSFlTX1NEUkFNXzEgKyBQSFlTX1NEUkFNXzFfU0laRSAtIFwKLQkJCQkoQ0ZHX01PTklUT1JfTEVOICsgQ0ZHX01BTExPQ19MRU4gKyBDT05GSUdfU1RBQ0tTSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJUEhZU19TRFJBTV8xCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCVBIWVNfU0RSQU1fMSArIFBIWVNfU0RSQU1fMV9TSVpFIC0gXAorCQkJCShDT05GSUdfU1lTX01PTklUT1JfTEVOICsgQ09ORklHX1NZU19NQUxMT0NfTEVOICsgQ09ORklHX1NUQUNLU0laRSkKIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJUEhZU19TRFJBTV8xICsgMHg0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCVBIWVNfU0RSQU1fMSArIDB4NDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKIC8qIFRoZSAxNTEwIGhhcyAzIHRpbWVycywgdGhleSBjYW4gYmUgZHJpdmVuIGJ5IHRoZSBSZWZDbGsgKDEyTWh6KSBvciBieSBEUExMMS4KICAqIFRoaXMgdGltZSBpcyBmdXJ0aGVyIHN1YmRpdmlkZWQgYnkgYSBsb2NhbCBkaXZpc29yLgogICovCi0jZGVmaW5lIENGR19USU1FUkJBU0UJCU9NQVAxNTEwX1RJTUVSMV9CQVNFCi0jZGVmaW5lIENGR19QVlQJCQk3CQkvKiAyXihwdnQrMSksIGRpdmlkZSBieSAyNTYgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJKChDT05GSUdfU1lTX0NMS19GUkVRKS8oMiA8PCBDRkdfUFZUKSkKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUkJBU0UJCU9NQVAxNTEwX1RJTUVSMV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUFZUCQkJNwkJLyogMl4ocHZ0KzEpLCBkaXZpZGUgYnkgMjU2ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoKENPTkZJR19TWVNfQ0xLX0ZSRVEpLygyIDw8IENPTkZJR19TWVNfUFZUKSkKIAogI2RlZmluZSBPTUFQNTkxMF9EUExMX0RJVgkxCiAjZGVmaW5lIE9NQVA1OTEwX0RQTExfTVVMCSgoQ09ORklHX1NZU19DTEtfRlJFUSAqIFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9uczk3NTBkZXYuaCBiL2luY2x1ZGUvY29uZmlncy9uczk3NTBkZXYuaAppbmRleCA1YjVjNmViLi5iMjJjMzNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbnM5NzUwZGV2LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL25zOTc1MGRldi5oCkBAIC00OSw4ICs0OSw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAgMTI4ICAgICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAgMTI4ICAgICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsCiAJCQkJCSAqIGRhdGEgKi8KIAogLyoKQEAgLTExMiwyNCArMTEyLDI0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIk5TOTc1MERFViAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiTlM5NzUwREVWICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDc4MDAwMAkvKiA3LDUgTUIgaW4gRFJBTQkqLyAvKiBAVE9ETyAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA3ODAwMDAJLyogNyw1IE1CIGluIERSQU0JKi8gLyogQFRPRE8gKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDAwNjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovIC8qIEBUT0RPICovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwNjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovIC8qIEBUT0RPICovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJKENQVV9DTEtfRlJFUS82NCkKKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCShDUFVfQ0xLX0ZSRVEvNjQpCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBOUzk3NTBfRVRIX1BIWV9BRERSRVNTCSgweDAwMDApCiAKQEAgLTE1Niw3ICsxNTYsNyBAQAogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHg1MDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCkBAIC0xNjgsMjEgKzE2OCwyMSBAQAogI2RlZmluZSBDT05GSUdfQU1EX0xWODAwCTEJLyogdW5jb21tZW50IHRoaXMgaWYgeW91IGhhdmUgYSBMVjgwMCBmbGFzaCAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KICNpZmRlZiBDT05GSUdfQU1EX0xWODAwCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgwMDEwMDAwMCAvKiAxTUIgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgxOSkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwRjAwMDApIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMTkpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDBGMDAwMCkgLyogYWRkciBvZiBlbnZpcm9ubWVudCAqLwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0FNRF9MVjQwMAogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCTB4MDAwODAwMDAgLyogNTEyS0IgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgxMSkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwNzAwMDApIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMTEpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDA3MDAwMCkgLyogYWRkciBvZiBlbnZpcm9ubWVudCAqLwogI2VuZGlmCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSg1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSg1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAvKiBAVE9ETyAqLwogLyojZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMSovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbzJkbnQuaCBiL2luY2x1ZGUvY29uZmlncy9vMmRudC5oCmluZGV4IGI1MTUzODguLmJmYWU3YjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9vMmRudC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9vMmRudC5oCkBAIC0zMiw3ICszMiw3IEBACiAjZGVmaW5lIENPTkZJR19NUEM1MjAwCiAjZGVmaW5lIENPTkZJR19PMkROVAkJMQkvKiAuLi4gb24gTzJETlQgYm9hcmQgKi8KIAotI2RlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLwogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CSAgICAgKi8KQEAgLTQ0LDcgKzQ0LDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJNQkvKiBjb25zb2xlIGlzIG9uIFBTQzUgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogLi4uIGF0IDExNTIwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKgogICogUENJIE1hcHBpbmc6CkBAIC02NCwxMSArNjQsMTEgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9JT19QSFlTCUNPTkZJR19QQ0lfSU9fQlVTCiAjZGVmaW5lIENPTkZJR19QQ0lfSU9fU0laRQkweDAxMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1hMQl9QSVBFTElOSU5HCTEKKyNkZWZpbmUgQ09ORklHX1NZU19YTEJfUElQRUxJTklORwkxCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4ICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCiAjZGVmaW5lIENPTkZJR19OUzgzODJYCQkxCiAKIC8qIFBhcnRpdGlvbnMgKi8KQEAgLTEwMyw3ICsxMDMsNyBAQAogCiAKICNpZiAoVEVYVF9CQVNFID09IDB4RkYwMDAwMDApCQkvKiBCb290IGxvdyB3aXRoIDE2IE1CIEZsYXNoICovCi0jICAgZGVmaW5lIENGR19MT1dCT09UCQkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAkJMQogI2Vsc2UKICMgICBlcnJvciAiVEVYVF9CQVNFIG11c3QgYmUgMHhGRjAwMDAwMCIKICNlbmRpZgpAQCAtMTQyLDE3ICsxNDIsMTcgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogCi0jaWYgZGVmaW5lZChDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEspCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLKQogLyoKICAqIFBDSSBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbgogICoKICAqIEFjdHVhbGx5IGEgUENJIENsb2NrIG9mIDY2IE1IeiBpcyBvbmx5IHNldCAoaW4gY3B1X2luaXQuYykgaWYKLSAqIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSyBpcyBkZWZpbmVkLiBUaGlzIGlzIGJlY2F1c2UgYSBQQ0kgQ2xvY2sKKyAqIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsgaXMgZGVmaW5lZC4gVGhpcyBpcyBiZWNhdXNlIGEgUENJIENsb2NrCiAgKiAgb2YgNjYgTUh6IHlldCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgd2l0aCBhIElQQiBCdXMgQ2xvY2sgb2YgNjYgTUh6LgogICovCi0jZGVmaW5lIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KICNlbmRpZgogI2VuZGlmCiAKQEAgLTE2MCwxMCArMTYwLDEwIEBACiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkxCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMQkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbjoKQEAgLTE3NCwzMSArMTc0LDMxIEBACiAgKiAweDUwIC4uLiAweDU3IGVhY2ggMjU2IGJ5dGVzIGluIHNpemUKICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19GUkFNCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19GUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMwogLyoKICAqIFRoZXJlIGlzIG5vIHdyaXRlIGRlbGF5IHdpdGggRlJBTSwgd3JpdGUgb3BlcmF0aW9ucyBhcmUgcGVyZm9ybWVkIGF0IGJ1cwogICogc3BlZWQuIFRodXMsIG5vIHN0YXR1cyBwb2xsaW5nIG9yIHdyaXRlIGRlbGF5IGlzIG5lZWRlZC4KICAqLwotLyojZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MCovCisvKiNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MCovCiAKIAogLyoKICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMTAwMDAwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4MDAwNDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDA0MDAwMCkKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfVU5MT0NLX1RPVVQJMTAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVU5MT0NLX1RPVVQJMTAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCQkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCkBAIC0yMTEsMjMgKzIxMSwyMyBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKIC8qIFVzZSBTUkFNIHVudGlsIFJBTSB3aWxsIGJlIGF2YWlsYWJsZSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLwogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0yNDIsNjUgKzI0Miw2NSBAQAogLyoKICAqIEdQSU8gY29uZmlndXJhdGlvbgogICovCi0vKiNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDEwMDAyMDA0ICovCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHgwMDAwMjAwNgkvKiBubyBDQU4gKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDEwMDAyMDA0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4MDAwMDIwMDYJLyogbm8gQ0FOICovCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAjZWxzZQotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAotI2lmZGVmIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCisjaWZkZWYgQ09ORklHX1NZU19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCiAvKgogICogRm9yIDY2IE1IeiBQQ0kgY2xvY2sgYWRkaXRpb25hbCBXYWl0IFN0YXRlIGlzIG5lZWRlZCBmb3IgQ1MwIChmbGFzaCkuCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNTc4MDEgLyogZm9yIHBjaV9jbGsgPSA2NiBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDU3ODAxIC8qIGZvciBwY2lfY2xrID0gNjYgTUh6ICovCiAjZWxzZQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0NzgwMSAvKiBmb3IgcGNpX2NsayA9IDMzIE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwNDc4MDEgLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9vY290ZWEuaCBiL2luY2x1ZGUvY29uZmlncy9vY290ZWEuaAppbmRleCBkOWIyNzdjLi4yZTgwOWIwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvb2NvdGVhLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL29jb3RlYS5oCkBAIC01NiwzMyArNTYsMzMgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkgICAgMHhmZjgwMDAwMAkgICAgLyogc3RhcnQgb2YgRkxBU0gJCSovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRQkgICAgMHg4MDAwMDAwMAkgICAgLyogbWFwcGVkIHBjaSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRSAweGUwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLwotI2RlZmluZSBDRkdfSVNSQU1fQkFTRQkgICAgMHhjMDAwMDAwMAkgICAgLyogaW50ZXJuYWwgU1JBTQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9CQVNFCSAgICAweGQwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBQQ0kgcmVncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgIDB4ZmY4MDAwMDAJICAgIC8qIHN0YXJ0IG9mIEZMQVNICQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCSAgICAweDgwMDAwMDAwCSAgICAvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSAweGUwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lTUkFNX0JBU0UJICAgIDB4YzAwMDAwMDAJICAgIC8qIGludGVybmFsIFNSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJICAgIDB4ZDAwMDAwMDAJICAgIC8qIGludGVybmFsIFBDSSByZWdzCSovCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRQkgICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MzAwMDAwKQotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSIChDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0UJICAgIChDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDgzMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSIChDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDgwMDAwMDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlciAocGxhY2VkIGluIGludGVybmFsIFNSQU0pCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00gIDEKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIgICBDRkdfSVNSQU1fQkFTRQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgIENGR19JU1JBTV9CQVNFICAvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgMHgyMDAwCSAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgIDEyOAkJICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTSAgMQorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgICBDT05GSUdfU1lTX0lTUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgQ09ORklHX1NZU19JU1JBTV9CQVNFICAvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgIDB4MjAwMAkgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgMTI4CQkgICAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX1BPU1RfV09SRF9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSAweDQpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJKDE4NDMyMDAgKiA2KQkvKiBFeHQgY2xrIEAgMTEuMDU5IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJKDE4NDMyMDAgKiA2KQkvKiBFeHQgY2xrIEAgMTEuMDU5IE1IeiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudApAQCAtMTA2LDM1ICsxMDYsMzUgQEAKICAqIFRoZSBEUzE3NDMgY29kZSBhc3N1bWVzIHRoaXMgY29uZGl0aW9uIChpLmUuIC0tIGl0IGFzc3VtZXMgdGhlIGJhc2UKICAqIGFkZHJlc3MgZm9yIHRoZSBSVEMgcmVnaXN0ZXJzIGlzOgogICoKLSAqCUNGR19OVlJBTV9CQVNFX0FERFIgKyBDRkdfTlZSQU1fU0laRQorICoJQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX05WUkFNX1NJWkUKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkgICAgKDB4MjAwMCAtIDgpICAgIC8qIE5WUkFNIHNpemUoOGspLSBSVEMgcmVncyAqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJICAgICgweDIwMDAgLSA4KSAgICAvKiBOVlJBTSBzaXplKDhrKS0gUlRDIHJlZ3MgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzE3NHgJMQkJICAgIC8qIERTMTc0MyBSVEMJCSovCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX05WUkFNCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwCSAgICAvKiBTaXplIG9mIEVudmlyb25tZW50IHZhcnMgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlcCi0JKENGR19OVlJBTV9CQVNFX0FERFIrQ0ZHX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQorCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQogI2VuZGlmIC8qIENPTkZJR19FTlZfSVNfSU5fTlZSQU0gKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkzCQkgICAgLyogbnVtYmVyIG9mIGJhbmtzCSAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJCSAgICAvKiBzZWN0b3JzIHBlciBkZXZpY2UgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkzCQkgICAgLyogbnVtYmVyIG9mIGJhbmtzCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CQkgICAgLyogc2VjdG9ycyBwZXIgZGV2aWNlICAgKi8KIAotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMCAgICAgICAgIDB4NTU1NQotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEgICAgICAgICAweDJhYWEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAgICAgdW5zaWduZWQgY2hhcgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwICAgICAgICAgMHg1NTU1CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEgICAgICAgICAweDJhYWEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgICAgIHVuc2lnbmVkIGNoYXIKIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAkJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTE1MiwxMyArMTUyLDEzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkoMHhhOD4+MSkKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCSgweGE4Pj4xKQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCiAKIC8qCiAgKiBEZWZhdWx0IGVudmlyb25tZW50IHZhcmlhYmxlcwpAQCAtMjAwLDEyICsyMDAsMTIgQEAKICNkZWZpbmUgQ09ORklHX1BDSQkJCS8qIGluY2x1ZGUgcGNpIHN1cHBvcnQJCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkJCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHQkFTRSAgICAweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvIENGR19QQ0lfTUVNQkFTRSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRSAgICAweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UgKi8KIAogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQJCS8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQJCS8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQgICAgKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIgKi8KIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9vbWFwMTUxMGlubi5oIGIvaW5jbHVkZS9jb25maWdzL29tYXAxNTEwaW5uLmgKaW5kZXggZDM5MGQ4NS4uYzdkMWI2YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL29tYXAxNTEwaW5uLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL29tYXAxNTEwaW5uLmgKQEAgLTQ5LDggKzQ5LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtNjcsMTEgKzY3LDExIEBACiAvKgogICogTlMxNjU1MCBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCSgtNCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkoQ09ORklHX1NZU19DTEtfRlJFUSkJLyogY2FuIGJlIDEyTS8zMktoeiBvciA0OE1oeiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkweGZmZmIwMDAwCQkvKiB1YXJ0MSwgYmx1ZXRvb3RoIHVhcnQgb24gaGVsZW4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCSgtNCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJKENPTkZJR19TWVNfQ0xLX0ZSRVEpCS8qIGNhbiBiZSAxMk0vMzJLaHogb3IgNDhNaHogICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCTB4ZmZmYjAwMDAJCS8qIHVhcnQxLCBibHVldG9vdGggdWFydCBvbiBoZWxlbiAqLwogCiAvKgogICogc2VsZWN0IHNlcmlhbCBjb25zb2xlIGNvbmZpZ3VyYXRpb24KQEAgLTg0LDcgKzg0LDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogCiAvKgpAQCAtMTA5LDcgKzEwOSw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwogI2RlZmluZSBDT05GSUdfQk9PVEFSR1MJCSJjb25zb2xlPXR0eVMwLDExNTIwMG44IG5vaW5pdHJkIHJvb3Q9L2Rldi9uZnMgaXA9Ym9vdHAiCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiYm9vdHA7dGZ0cDtib290bSIKLSNkZWZpbmUgQ0ZHX0FVVE9MT0FECQkibiIJCS8qIE5vIGF1dG9sb2FkICovCisjZGVmaW5lIENPTkZJR19TWVNfQVVUT0xPQUQJCSJuIgkJLyogTm8gYXV0b2xvYWQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQogI2RlZmluZSBDT05GSUdfS0dEQl9CQVVEUkFURQkxMTUyMDAJCS8qIHNwZWVkIHRvIHJ1biBrZ2RiIHNlcmlhbCBwb3J0ICovCkBAIC0xMjAsMjYgKzEyMCwyNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJPTUFQMTUxMCBJbm5vdmF0b3IgIyAiIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIk9NQVAxNTEwIElubm92YXRvciAjICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MTAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MTIwMDAwMDAJLyogMzIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgxMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MTIwMDAwMDAJLyogMzIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKIC8qIFRoZSAxNTEwIGhhcyAzIHRpbWVycywgdGhleSBjYW4gYmUgZHJpdmVuIGJ5IHRoZSBSZWZDbGsgKDEyTWh6KSBvciBieSBEUExMMS4KICAqIFRoaXMgdGltZSBpcyBmdXJ0aGVyIHN1YmRpdmlkZWQgYnkgYSBsb2NhbCBkaXZpc29yLgogICovCi0jZGVmaW5lIENGR19USU1FUkJBU0UJMHhGRkZFQzUwMAkgICAgLyogdXNlIHRpbWVyIDEgKi8KLSNkZWZpbmUgQ0ZHX1BWVAkJNwkJICAgIC8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLwotI2RlZmluZSBDRkdfSFoJCQkoKENPTkZJR19TWVNfQ0xLX0ZSRVEpLygyIDw8IENGR19QVlQpKQorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSQkFTRQkweEZGRkVDNTAwCSAgICAvKiB1c2UgdGltZXIgMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BWVAkJNwkJICAgIC8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJKChDT05GSUdfU1lTX0NMS19GUkVRKS8oMiA8PCBDT05GSUdfU1lTX1BWVCkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xNjEsMzUgKzE2MSwzNSBAQAogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgwMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAxMDAwMDAwIC8qIDE2TUIgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUJKDEyOCoxMDI0KQkvKiBTaXplIG9mIGEgc2VjdG9yICgxMjhrQikgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgxMjgpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIFBIWVNfRkxBU0hfU0VDVF9TSVpFKQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCS8qIE1vbml0b3IgYXQgYmVnaW5uaW5nIG9mIGZsYXNoICovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJUEhZU19GTEFTSF9TRUNUX1NJWkUJLyogUmVzZXJ2ZSAxIHNlY3RvciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSArIFBIWVNfRkxBU0hfU0laRSB9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDEyOCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIFBIWVNfRkxBU0hfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogTW9uaXRvciBhdCBiZWdpbm5pbmcgb2YgZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJUEhZU19GTEFTSF9TRUNUX1NJWkUJLyogUmVzZXJ2ZSAxIHNlY3RvciAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIFBIWVNfRkxBU0hfU0laRSB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGRyaXZlciBzZXR1cAogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggbWVtb3J5IGlzIENGSSBjb21wbGlhbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggbWVtb3J5IGlzIENGSSBjb21wbGlhbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgZHJpdmVycy9tdGQvY2ZpX2ZsYXNoLmMgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQkvKiBVc2UgYnVmZmVyZWQgd3JpdGVzICh+MTB4IGZhc3RlcikgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBVc2UgaGFyZHdhcmUgc2VjdG9yIHByb3RlY3Rpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEJLyogVXNlIGJ1ZmZlcmVkIHdyaXRlcyAofjEweCBmYXN0ZXIpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCS8qIFVzZSBoYXJkd2FyZSBzZWN0b3IgcHJvdGVjdGlvbiAqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIwKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIwKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyMCpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIwKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCVBIWVNfRkxBU0hfU0VDVF9TSVpFCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJQ09ORklHX0VOVl9TRUNUX1NJWkUKLSNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCSggQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTiApCS8qIEVudmlyb25tZW50IGFmdGVyIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCSggQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOICkJLyogRW52aXJvbm1lbnQgYWZ0ZXIgTW9uaXRvciAqLwogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL29tYXAxNjEwaDIuaCBiL2luY2x1ZGUvY29uZmlncy9vbWFwMTYxMGgyLmgKaW5kZXggYWViMmZlYy4uZTJhNjM2MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL29tYXAxNjEwaDIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvb21hcDE2MTBoMi5oCkBAIC01MSw4ICs1MSw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC02NCwxMSArNjQsMTEgQEAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJKC00KQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJKDQ4MDAwMDAwKQkJLyogY2FuIGJlIDEyTS8zMktoeiBvciA0OE1oeiAqLwotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCTB4ZmZmYjAwMDAJLyogdWFydDEsIGJsdWV0b290aCB1YXJ0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkoLTQpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJKDQ4MDAwMDAwKQkJLyogY2FuIGJlIDEyTS8zMktoeiBvciA0OE1oeiAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkweGZmZmIwMDAwCS8qIHVhcnQxLCBibHVldG9vdGggdWFydCAqLwogCiAvKgogICogc2VsZWN0IHNlcmlhbCBjb25zb2xlIGNvbmZpZ3VyYXRpb24KQEAgLTc5LDcgKzc5LDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAKIC8qCkBAIC0xMDQsNyArMTA0LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkzCiAjZGVmaW5lIENPTkZJR19CT09UQVJHUwkiY29uc29sZT10dHlTMCwxMTUyMDBuOCBub2luaXRyZCByb290PS9kZXYvbmZzIGlwPWRoY3AiCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORCAgICAgICJib290cDt0ZnRwO2Jvb3RtIgotI2RlZmluZSBDRkdfQVVUT0xPQUQgICAgICAgICAgICAibiIgICAgICAgICAgICAgLyogTm8gYXV0b2xvYWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVVRPTE9BRCAgICAgICAgICAgICJuIiAgICAgICAgICAgICAvKiBObyBhdXRvbG9hZCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCiAjZGVmaW5lIENPTkZJR19LR0RCX0JBVURSQVRFCTExNTIwMAkvKiBzcGVlZCB0byBydW4ga2dkYiBzZXJpYWwgcG9ydCAqLwpAQCAtMTE0LDI3ICsxMTQsMjcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19QUk9NUFQJIk9NQVAxNjEwIEgyICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSJPTUFQMTYxMCBIMiAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgxMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkweDEyMDAwMDAwCS8qIDMyIE1CIGluIERSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MTAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECTB4MTIwMDAwMDAJLyogMzIgTUIgaW4gRFJBTSAqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCiAvKiBUaGUgMTYxMCBoYXMgNiB0aW1lcnMsIHRoZXkgY2FuIGJlIGRyaXZlbiBieSB0aGUgUmVmQ2xrICgxMk1oeikgb3IgYnkKICAqIERQTEwxLiBUaGlzIHRpbWUgaXMgZnVydGhlciBzdWJkaXZpZGVkIGJ5IGEgbG9jYWwgZGl2aXNvci4KICAqLwotI2RlZmluZSBDRkdfVElNRVJCQVNFCTB4RkZGRUM1MDAJLyogdXNlIHRpbWVyIDEgKi8KLSNkZWZpbmUgQ0ZHX1BWVAk3CS8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLwotI2RlZmluZSBDRkdfSFoJKChDT05GSUdfU1lTX0NMS19GUkVRKS8oMiA8PCBDRkdfUFZUKSkKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUkJBU0UJMHhGRkZFQzUwMAkvKiB1c2UgdGltZXIgMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BWVAk3CS8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCSgoQ09ORklHX1NZU19DTEtfRlJFUSkvKDIgPDwgQ09ORklHX1NZU19QVlQpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTYyLDMwICsxNjIsMzAgQEAKICNpZm5kZWYgX19BU1NFTUJMWV9fCiBleHRlcm4gdW5zaWduZWQgbG9uZyBvbWFwX2ZsYXNoX2Jhc2U7CQkvKiBzZXQgaW4gZmxhc2hfX2luaXQgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJb21hcF9mbGFzaF9iYXNlCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJb21hcF9mbGFzaF9iYXNlCiAKICNlbGlmIGRlZmluZWQoQ09ORklHX0NTMF9CT09UKQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzFfQk0wCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xX0JNMAogCiAjZWxzZQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzFfQk0xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xX0JNMQogCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkweDAyMDAwMDAwCS8qIDMyTUIgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgyNTkpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgyNTkpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogLyogYWRkciBvZiBlbnZpcm9ubWVudCAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgMHgwMjAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMjAwMDApCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMjAqQ0ZHX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMjAqQ0ZHX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDIwKkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMjAqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCTB4MjAwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9vbWFwMTYxMGlubi5oIGIvaW5jbHVkZS9jb25maWdzL29tYXAxNjEwaW5uLmgKaW5kZXggNjhjZjkxYy4uNWRjZmNlMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL29tYXAxNjEwaW5uLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL29tYXAxNjEwaW5uLmgKQEAgLTUwLDggKzUwLDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTY1LDExICs2NSwxMSBAQAogLyoKICAqIE5TMTY1NTAgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkoLTQpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJKDQ4MDAwMDAwKQkvKiBjYW4gYmUgMTJNLzMyS2h6IG9yIDQ4TWh6ICovCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJMHhmZmZiMDAwMAkvKiB1YXJ0MSwgYmx1ZXRvb3RoIHVhcnQgb24gaGVsZW4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCSgtNCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJKDQ4MDAwMDAwKQkvKiBjYW4gYmUgMTJNLzMyS2h6IG9yIDQ4TWh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCTB4ZmZmYjAwMDAJLyogdWFydDEsIGJsdWV0b290aCB1YXJ0IG9uIGhlbGVuICovCiAKIC8qCiAgKiBzZWxlY3Qgc2VyaWFsIGNvbnNvbGUgY29uZmlndXJhdGlvbgpAQCAtODAsNyArODAsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIAogLyoKQEAgLTExOSwyNyArMTE5LDI3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiT01BUDE2MTAgSW5ub3ZhdG9yICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiT01BUDE2MTAgSW5ub3ZhdG9yICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgxMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkweDEyMDAwMDAwCS8qIDMyIE1CIGluIERSQU0gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MTAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECTB4MTIwMDAwMDAJLyogMzIgTUIgaW4gRFJBTSAgICAqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCiAvKiBUaGUgMTYxMCBoYXMgNiB0aW1lcnMsIHRoZXkgY2FuIGJlIGRyaXZlbiBieSB0aGUgUmVmQ2xrICgxMk1oeikgb3IgYnkKICAqIERQTEwxLiBUaGlzIHRpbWUgaXMgZnVydGhlciBzdWJkaXZpZGVkIGJ5IGEgbG9jYWwgZGl2aXNvci4KICAqLwotI2RlZmluZSBDRkdfVElNRVJCQVNFCTB4RkZGRUM1MDAJLyogdXNlIHRpbWVyIDEgKi8KLSNkZWZpbmUgQ0ZHX1BWVAk3CS8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLwotI2RlZmluZSBDRkdfSFoJKChDT05GSUdfU1lTX0NMS19GUkVRKS8oMiA8PCBDRkdfUFZUKSkKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUkJBU0UJMHhGRkZFQzUwMAkvKiB1c2UgdGltZXIgMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BWVAk3CS8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCSgoQ09ORklHX1NZU19DTEtfRlJFUSkvKDIgPDwgQ09ORklHX1NZU19QVlQpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTY3LDMwICsxNjcsMzAgQEAKICNpZm5kZWYgX19BU1NFTUJMWV9fCiBleHRlcm4gdW5zaWduZWQgbG9uZyBvbWFwX2ZsYXNoX2Jhc2U7CQkvKiBzZXQgaW4gZmxhc2hfX2luaXQgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJb21hcF9mbGFzaF9iYXNlCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJb21hcF9mbGFzaF9iYXNlCiAKICNlbGlmIGRlZmluZWQoQ09ORklHX0NTMF9CT09UKQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzFfQk0wCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xX0JNMAogCiAjZWxzZQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzFfQk0xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xX0JNMQogCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkweDAyMDAwMDAwCS8qIDMyTUIgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgyNTkpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgyNTkpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogLyogYWRkciBvZiBlbnZpcm9ubWVudCAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgMHgwMjAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMjAwMDApCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMjAqQ0ZHX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMjAqQ0ZHX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDIwKkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMjAqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCTB4MjAwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9vbWFwMjQyMGg0LmggYi9pbmNsdWRlL2NvbmZpZ3Mvb21hcDI0MjBoNC5oCmluZGV4IDkwMTg0NDAuLmQxMTg2OGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9vbWFwMjQyMGg0LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL29tYXAyNDIwaDQuaApAQCAtNDcsNyArNDcsNyBAQAogLyogT24gSDQsIE5PUiBhbmQgTkFORCBmbGFzaCBhcmUgbXV0dWFsIGV4Y2x1c2l2ZS4KICAgIERlZmluZSB0aGlzIGlmIHlvdSB3YW50IHRvIHVzZSBOQU5ECiAgKi8KLS8qI2RlZmluZSBDRkdfTkFORF9CT09UICovCisvKiNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1QgKi8KIAogI2lmZGVmIENPTkZJR19BUFRJWAogI2RlZmluZSBWX1NDTEsgICAgICAgICAgICAgICAgICAgMTUwMDAwMApAQCAtNzEsOCArNzEsOCBAQAogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFICAgICAgICAgICAgIFNaXzEyOEsgICAgIC8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOICAgICAgICAgICAoQ09ORklHX0VOVl9TSVpFICsgU1pfMTI4SykKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTiAgICAgICAgICAgKENPTkZJR19FTlZfU0laRSArIFNaXzEyOEspCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTk0LDExICs5NCwxMSBAQAogI2RlZmluZSBWX05TMTY1NTBfQ0xLICAgICAgICAgICAgKDQ4MDAwMDAwKSAgLyogNDhNSHogKEFQTEw5Ni8yKSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFICAgICAoLTQpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSyAgICAgICAgICBWX05TMTY1NTBfQ0xLICAgLyogM01IeiAoMS41TUh6KjIpICovCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEgICAgICAgICBPTUFQMjQyMF9VQVJUMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUgICAgICgtNCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSyAgICAgICAgICBWX05TMTY1NTBfQ0xLICAgLyogM01IeiAoMS41TUh6KjIpICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xICAgICAgICAgT01BUDI0MjBfVUFSVDEKIAogLyoKICAqIHNlbGVjdCBzZXJpYWwgY29uc29sZSBjb25maWd1cmF0aW9uCkBAIC0xMDksMTUgKzEwOSwxNSBAQAogICAgKiBJMkMgY29uZmlndXJhdGlvbgogICAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCi0jZGVmaW5lIENGR19JMkNfU1BFRUQgICAgICAgICAgMTAwMDAwCi0jZGVmaW5lIENGR19JMkNfU0xBVkUgICAgICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRCAgICAgICAgICAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUgICAgICAgICAgMQogI2RlZmluZSBDT05GSUdfRFJJVkVSX09NQVAyNFhYX0kyQwogCiAvKiBhbGxvdyB0byBvdmVyd3JpdGUgc2VyaWFsIGFuZCBldGhhZGRyICovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYICAgICAgICAxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURSAgICAgICAgICAxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICAgICAgIHs5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgICAgICAgezk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMH0KIAogCiAvKgpAQCAtMTI1LDcgKzEyNSw3IEBACiAgKi8KICNpbmNsdWRlIDxjb25maWdfY21kX2RlZmF1bHQuaD4KIAotI2lmZGVmIENGR19OQU5EX0JPT1QKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfQk9PVAogICAgICNkZWZpbmUgQ09ORklHX0NNRF9ESENQCiAgICAgI2RlZmluZSBDT05GSUdfQ01EX0kyQwogICAgICNkZWZpbmUgQ09ORklHX0NNRF9OQU5ECkBAIC0xNTIsOSArMTUyLDkgQEAKICAqICBCb2FyZCBOQU5EIEluZm8uCiAgKi8KICNkZWZpbmUgQ09ORklHX05BTkRfTEVHQUNZCi0jZGVmaW5lIENGR19OQU5EX0FERFIgMHgwNDAwMDAwMCAgLyogcGh5c2ljYWwgYWRkcmVzcyB0byBhY2Nlc3MgbmFuZCBhdCBDUzAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUREUiAweDA0MDAwMDAwICAvKiBwaHlzaWNhbCBhZGRyZXNzIHRvIGFjY2VzcyBuYW5kIGF0IENTMCovCiAKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRSAxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFIDEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KICNkZWZpbmUgU0VDVE9SU0laRSAgICAgICAgICA1MTIKIAogI2RlZmluZSBBRERSX0NPTFVNTiAgICAgICAgIDEKQEAgLTE3Myw3ICsxNzMsNyBAQAogCiAjZGVmaW5lIE5BTkRfTk9fUkIgICAgICAgICAgMQogCi0jZGVmaW5lIENGR19OQU5EX1dQCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9XUAogI2RlZmluZSBOQU5EX1dQX09GRigpICBkbyB7Kih2b2xhdGlsZSB1MzIgKikoMHg2ODAwQTA1MCkgfD0gMHgwMDAwMDAxMDt9IHdoaWxlKDApCiAjZGVmaW5lIE5BTkRfV1BfT04oKSAgZG8geyoodm9sYXRpbGUgdTMyICopKDB4NjgwMEEwNTApICY9IH4weDAwMDAwMDEwO30gd2hpbGUoMCkKIApAQCAtMjA2LDIwICsyMDYsMjAgQEAKICNkZWZpbmUgVl9QUk9NUFQgICAgICAgICAgICAgICAgICJPTUFQMjQyeCBINCAjICIKICNlbmRpZgogCi0jZGVmaW5lIENGR19MT05HSEVMUCAgICAgICAgICAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfUFJPTVBUICAgICAgICAgICAgICAgVl9QUk9NUFQKLSNkZWZpbmUgQ0ZHX0NCU0laRSAgICAgICAgICAgICAgIDI1NiAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUCAgICAgICAgICAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVCAgICAgICAgICAgICAgIFZfUFJPTVBUCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFICAgICAgICAgICAgICAgMjU2ICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAgICAgICAgICAgICAgIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MgICAgICAgICAgICAgIDE2ICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRSAgICAgICAgICAgICBDRkdfQ0JTSVpFICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFICAgICAgICAgICAgICAgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUyAgICAgICAgICAgICAgMTYgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRSAgICAgICAgICAgICBDT05GSUdfU1lTX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgICAgICAoT01BUDI0MjBfU0RSQ19DUzApICAvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORCAgICAgICAgICAoT01BUDI0MjBfU0RSQ19DUzArU1pfMzFNKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAgICAgIChPTUFQMjQyMF9TRFJDX0NTMCkgIC8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORCAgICAgICAgICAoT01BUDI0MjBfU0RSQ19DUzArU1pfMzFNKQogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFogICAgICAgICAgIC8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFogICAgICAgICAgIC8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSICAgICAgICAgICAgKE9NQVAyNDIwX1NEUkNfQ1MwKSAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUiAgICAgICAgICAgIChPTUFQMjQyMF9TRFJDX0NTMCkgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAogLyogVGhlIDI0MjAgaGFzIDEyIEdQIHRpbWVycywgdGhleSBjYW4gYmUgZHJpdmVuIGJ5IHRoZSBTeXNDbGsgKDEyLzEzLzE5LjIpIG9yIGJ5CiAgKiAzMktIeiBjbGssIG9yIGZyb20gZXh0ZXJuYWwgc2lnLiBUaGlzIHJhdGUgaXMgZGl2aWRlZCBieSBhIGxvY2FsIGRpdmlzb3IuCkBAIC0yMzAsOSArMjMwLDkgQEAKICNkZWZpbmUgVl9QVlQgICAgICAgICAgICAgICAgICAgIDcgIC8qIHVzZSB3aXRoIDEyTUh6LzEyOCAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1RJTUVSQkFTRSAgICAgICAgICAgIE9NQVAyNDIwX0dQVDIKLSNkZWZpbmUgQ0ZHX1BWVCAgICAgICAgICAgICAgICAgIFZfUFZUICAvKiAyXihwdnQrMSkgKi8KLSNkZWZpbmUgQ0ZHX0haCSAgICAgICAgICAgICAgICAgKChDT05GSUdfU1lTX0NMS19GUkVRKS8oMiA8PCBDRkdfUFZUKSkKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUkJBU0UgICAgICAgICAgICBPTUFQMjQyMF9HUFQyCisjZGVmaW5lIENPTkZJR19TWVNfUFZUICAgICAgICAgICAgICAgICAgVl9QVlQgIC8qIDJeKHB2dCsxKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCSAgICAgICAgICAgICAgICAgKChDT05GSUdfU1lTX0NMS19GUkVRKS8oMiA8PCBDT05GSUdfU1lTX1BWVCkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0yNjIsMzYgKzI2MiwzNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgICAgICBQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgICAgIDIgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVCAgICAgICAoMjU5KQkgICAgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFIC8qIE1vbml0b3IgYXQgYmVnaW5uaW5nIG9mIGZsYXNoICovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJU1pfMTI4SyAgICAgIC8qIFJlc2VydmUgMSBzZWN0b3IgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UgKyBQSFlTX0ZMQVNIX1NJWkVfMSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICAgICAgICAgUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICAgICAgMiAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICAgICAoMjU5KQkgICAgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgLyogTW9uaXRvciBhdCBiZWdpbm5pbmcgb2YgZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJU1pfMTI4SyAgICAgIC8qIFJlc2VydmUgMSBzZWN0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBQSFlTX0ZMQVNIX1NJWkVfMSB9CiAKLSNpZmRlZiBDRkdfTkFORF9CT09UCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0JPT1QKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OQU5ECTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJMHg4MDAwMAkvKiBlbnZpcm9ubWVudCBzdGFydHMgaGVyZSAgKi8KICNlbHNlCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAgICAgICAgICAoQ0ZHX0ZMQVNIX0JBU0UgKyBTWl8xMjhLKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgICAgICAgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIFNaXzEyOEspCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0ggICAgICAxCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCVBIWVNfRkxBU0hfU0VDVF9TSVpFCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCSggQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTiApIC8qIEVudmlyb25tZW50IGFmdGVyIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJKCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gKSAvKiBFbnZpcm9ubWVudCBhZnRlciBNb25pdG9yICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ0ZJIEZMQVNIIGRyaXZlciBzZXR1cAogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggbWVtb3J5IGlzIENGSSBjb21wbGlhbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggbWVtb3J5IGlzIENGSSBjb21wbGlhbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgZHJpdmVycy9tdGQvY2ZpX2ZsYXNoLmMgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiBVc2UgYnVmZmVyZWQgd3JpdGVzICh+MTB4IGZhc3RlcikgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBVc2UgaGFyZHdhcmUgc2VjdG9yIHByb3RlY3Rpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogVXNlIGJ1ZmZlcmVkIHdyaXRlcyAofjEweCBmYXN0ZXIpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCS8qIFVzZSBoYXJkd2FyZSBzZWN0b3IgcHJvdGVjdGlvbiAqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQgICAgICgxMDAqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVCAgICAgKDEwMCpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCAgICAgKDEwMCpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQgICAgICgxMDAqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAotI2RlZmluZSBDRkdfSkZGUzJfTUVNX05BTkQKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9NRU1fTkFORAogCiAvKgogICogSkZGUzIgcGFydGl0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL29tYXA1OTEyb3NrLmggYi9pbmNsdWRlL2NvbmZpZ3Mvb21hcDU5MTJvc2suaAppbmRleCBkZDNmN2RlLi42M2NkOWM2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvb21hcDU5MTJvc2suaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvb21hcDU5MTJvc2suaApAQCAtNTMsOCArNTMsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtNjgsMTEgKzY4LDExIEBACiAvKgogICogTlMxNjU1MCBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCSgtNCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCSg0ODAwMDAwMCkJLyogY2FuIGJlIDEyTS8zMktoeiBvciA0OE1oeiAqLwotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCTB4ZmZmYjAwMDAJLyogdWFydDEsIGJsdWV0b290aCB1YXJ0CisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkoLTQpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJKDQ4MDAwMDAwKQkvKiBjYW4gYmUgMTJNLzMyS2h6IG9yIDQ4TWh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCTB4ZmZmYjAwMDAJLyogdWFydDEsIGJsdWV0b290aCB1YXJ0CiAJCQkJCQlvbiBoZWxlbiAqLwogCiAvKgpAQCAtODQsNyArODQsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIAogLyoKQEAgLTEyMywyNyArMTIzLDI3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiT01BUDU5MTIgT1NLICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiT01BUDU5MTIgT1NLICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgxMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkweDEyMDAwMDAwCS8qIDMyIE1CIGluIERSQU0gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MTAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECTB4MTIwMDAwMDAJLyogMzIgTUIgaW4gRFJBTSAgICAqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCiAvKiBUaGUgMTYxMCBoYXMgNiB0aW1lcnMsIHRoZXkgY2FuIGJlIGRyaXZlbiBieSB0aGUgUmVmQ2xrICgxMk1oeikgb3IgYnkKICAqIERQTEwxLiBUaGlzIHRpbWUgaXMgZnVydGhlciBzdWJkaXZpZGVkIGJ5IGEgbG9jYWwgZGl2aXNvci4KICAqLwotI2RlZmluZSBDRkdfVElNRVJCQVNFCTB4RkZGRUM1MDAJLyogdXNlIHRpbWVyIDEgKi8KLSNkZWZpbmUgQ0ZHX1BWVAk3CS8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLwotI2RlZmluZSBDRkdfSFoJKChDT05GSUdfU1lTX0NMS19GUkVRKS8oMiA8PCBDRkdfUFZUKSkKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUkJBU0UJMHhGRkZFQzUwMAkvKiB1c2UgdGltZXIgMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BWVAk3CS8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCSgoQ09ORklHX1NZU19DTEtfRlJFUSkvKDIgPDwgQ09ORklHX1NZU19QVlQpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTY2LDM3ICsxNjYsMzcgQEAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweDAwMDAwMDAwCS8qIEZsYXNoIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19GTEFTSF8yCQkweDAxMDAwMDAwCS8qIEZsYXNoIEJhbmsgIzIgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICAgICBDRkdfRkxBU0hfQkFTRSAgLyogTW9uaXRvciBhdCBiZWdpbm5pbmcgb2YgZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICAvKiBNb25pdG9yIGF0IGJlZ2lubmluZyBvZiBmbGFzaCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBkcml2ZXIgc2V0dXAKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJICAgICAgICAgIDEgICAgICAgLyogRmxhc2ggbWVtb3J5IGlzIENGSSBjb21wbGlhbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkgICAgICAgICAgMSAgICAgICAvKiBGbGFzaCBtZW1vcnkgaXMgQ0ZJIGNvbXBsaWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUiAgIDEgICAgICAgLyogVXNlIGRyaXZlcnMvbXRkL2NmaV9mbGFzaC5jICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QgeyBQSFlTX0ZMQVNIXzEsIFBIWVNfRkxBU0hfMiB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCB7IFBIWVNfRkxBU0hfMSwgUEhZU19GTEFTSF8yIH0KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJMHgwMjAwMDAwMAkvKiAzMk1CICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMjU5KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMjU5KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAgICAgMSAgICAgICAvKiBVc2UgYnVmZmVyZWQgd3JpdGVzICh+MTB4IGZhc3RlcikgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gICAxICAgICAgIC8qIFVzZSBoYXJkd2FyZSBzZWN0b3IgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgICAgIDEgICAgICAgLyogVXNlIGJ1ZmZlcmVkIHdyaXRlcyAofjEweCBmYXN0ZXIpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAgIDEgICAgICAgLyogVXNlIGhhcmR3YXJlIHNlY3RvciBwcm90ZWN0aW9uICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIwKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIwKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyMCpDT05GSUdfU1lTX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIwKkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIDB4MDIwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDIwMDAwKQogCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkweDIwMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCTB4MjAwMDAJLyogZW52aXJvbm1lbnQgc3RhcnRzIGhlcmUgICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvb21hcDczMHAyLmggYi9pbmNsdWRlL2NvbmZpZ3Mvb21hcDczMHAyLmgKaW5kZXggYjFjNGEzMC4uMTY2ZDU5MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL29tYXA3MzBwMi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9vbWFwNzMwcDIuaApAQCAtNTgsOCArNTgsOCBAQAogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkgICAxMjgJICAgICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkgICAoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkgICAxMjgJICAgICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTczLDExICs3MywxMSBAQAogICogTlMxNjU1MCBDb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJICAgKDEpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJICAgKDQ4MDAwMDAwKQkgIC8qIGNhbiBiZSAxMk0vMzJLaHogb3IgNDhNaHogKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkgICAweGZmZmIwMDAwCSAgLyogdWFydDEsIGJsdWV0b290aCB1YXJ0CisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkgICAoMSkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJICAgKDQ4MDAwMDAwKQkgIC8qIGNhbiBiZSAxMk0vMzJLaHogb3IgNDhNaHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJICAgMHhmZmZiMDAwMAkgIC8qIHVhcnQxLCBibHVldG9vdGggdWFydAogCQkJCQkJICAgKiBvbiBwZXJzZXVzICovCiAKIC8qCkBAIC04OCw3ICs4OCw3IEBACiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJICAgMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCSAgIDExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCSAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogCiAvKgpAQCAtMTMxLDI5ICsxMzEsMjkgQEAKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkgICAgICAgLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJICAgIk9NQVA3MzAgUDIgIyAiICAgICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJICAgMjU2CQkgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkgICAiT01BUDczMCBQMiAjICIgICAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJICAgMjU2CQkgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCQkgICAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCi0jZGVmaW5lIENGR19NQVhBUkdTCQkgICAxNgkJICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQkgICBDRkdfQ0JTSVpFCSAgICAgICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkgICAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkgICAxNgkJICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJICAgQ09ORklHX1NZU19DQlNJWkUJICAgICAgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkgICAweDEwMDAwMDAwCSAgICAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJICAgMHgxMjAwMDAwMAkgICAgICAgLyogMzIgTUIgaW4gRFJBTQkgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJICAgMHgxMDAwMDAwMAkgICAgICAgLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkgICAweDEyMDAwMDAwCSAgICAgICAvKiAzMiBNQiBpbiBEUkFNCSAgICovCiAKLSN1bmRlZiBDRkdfQ0xLU19JTl9IWgkJICAgICAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgQ09ORklHX1NZU19DTEtTX0lOX0haCQkgICAgIC8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkgICAweDEwMDAwMDAwCSAgICAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJICAgMHgxMDAwMDAwMAkgICAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAogLyogVGhlIE9NQVA3MzAgaGFzIDMgZ2VuZXJhbCBwdXJwb3NlIE1QVSB0aW1lcnMsIHRoZXkgY2FuIGJlIGRyaXZlbiBieQogICogdGhlIFJlZkNsayAoMTJNaHopIG9yIGJ5IERQTEwxLiBUaGlzIHRpbWUgaXMgZnVydGhlciBzdWJkaXZpZGVkIGJ5IGEKICAqIGxvY2FsIGRpdmlzb3IuCiAgKi8KIAotI2RlZmluZSBDRkdfVElNRVJCQVNFCQkgICAweEZGRkVDNTAwCSAgICAgICAvKiB1c2UgdGltZXIgMSAqLwotI2RlZmluZSBDRkdfUFZUCQkJICAgNwkJICAgICAgIC8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLwotI2RlZmluZSBDRkdfSFoJCQkgICAoKENPTkZJR19TWVNfQ0xLX0ZSRVEpLygyIDw8IENGR19QVlQpKQorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSQkFTRQkJICAgMHhGRkZFQzUwMAkgICAgICAgLyogdXNlIHRpbWVyIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QVlQJCQkgICA3CQkgICAgICAgLyogMl4ocHZ0KzEpLCBkaXZpZGUgYnkgMjU2ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkgICAoKENPTkZJR19TWVNfQ0xLX0ZSRVEpLygyIDw8IENPTkZJR19TWVNfUFZUKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTE4MywyMSArMTgzLDIxIEBACiAjZXJyb3IgVW5rbm93biBCb290IENoaXAtU2VsZWN0IG51bWJlcgogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCSAgIFBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCSAgIFBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCSAgIDEJCSAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJICAgMQkJICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCSAgIDB4MDIwMDAwMDAJICAvKiAzMk1CICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkgICAoMjU5KQkgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSAgICgyNTkpCSAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAvKiBhZGRyIG9mIGVudmlyb25tZW50ICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJICAgKENGR19GTEFTSF9CQVNFICsgMHgwMjAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJICAgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDIwMDAwKQogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJICAgICgyMCpDRkdfSFopCSAgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJICAgICgyMCpDRkdfSFopCSAgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSAgICAoMjAqQ09ORklHX1NZU19IWikJICAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJICAgICgyMCpDT05GSUdfU1lTX0haKQkgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkgICAxCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJICAgMHgyMDAwMAkgIC8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcDNteC5oIGIvaW5jbHVkZS9jb25maWdzL3AzbXguaAppbmRleCAyZGYxZDlkLi41ZTRkMzBiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcDNteC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9wM214LmgKQEAgLTQzLDIxICs0MywyMSBAQAogI2lmIGRlZmluZWQgKENPTkZJR19QM003NTApCiAjZGVmaW5lIENPTkZJR183NTBGWAkJCS8qIDc1MEdML0dYL0ZYCQkJKi8KICNkZWZpbmUgQ09ORklHX0hJR0hfQkFUUwkJLyogSGlnaCBCQVRzIHN1cHBvcnRlZAkJKi8KLSNkZWZpbmUgQ0ZHX0JPQVJEX05BTUUJCSJQM003NTAiCi0jZGVmaW5lIENGR19CVVNfSFoJCTEwMDAwMDAwMAotI2RlZmluZSBDRkdfQlVTX0NMSwkJQ0ZHX0JVU19IWgotI2RlZmluZSBDRkdfVENMSwkJMTAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQk9BUkRfTkFNRQkJIlAzTTc1MCIKKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfSFoJCTEwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JVU19DTEsJCUNPTkZJR19TWVNfQlVTX0haCisjZGVmaW5lIENPTkZJR19TWVNfVENMSwkJMTAwMDAwMDAwCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfUDNNNzQ0OCkKICNkZWZpbmUgQ09ORklHXzc0eHgKLSNkZWZpbmUgQ0ZHX0JPQVJEX05BTUUJCSJQM003NDQ4IgotI2RlZmluZSBDRkdfQlVTX0haCQkxMzMzMzMzMzMKLSNkZWZpbmUgQ0ZHX0JVU19DTEsJCUNGR19CVVNfSFoKLSNkZWZpbmUgQ0ZHX1RDTEsJCTEzMzMzMzMzMworI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX05BTUUJCSJQM003NDQ4IgorI2RlZmluZSBDT05GSUdfU1lTX0JVU19IWgkJMTMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0NMSwkJQ09ORklHX1NZU19CVVNfSFoKKyNkZWZpbmUgQ09ORklHX1NZU19UQ0xLCQkxMzMzMzMzMzMKICNlbmRpZgotI2RlZmluZSBDRkdfR1RfRFVBTF9DUFUJCQkvKiBhbHNvIGZvciBKVEFHIGV2ZW4gd2l0aCBvbmUgY3B1ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1RfRFVBTF9DUFUJCQkvKiBhbHNvIGZvciBKVEFHIGV2ZW4gd2l0aCBvbmUgY3B1ICovCiAKIC8qIHdoaWNoIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9ucyB0byBjYWxsIGZvciB0aGlzIGJvYXJkICovCi0jZGVmaW5lIENGR19CT0FSRF9BU01fSU5JVAkxCisjZGVmaW5lIENPTkZJR19TWVNfQk9BUkRfQVNNX0lOSVQJMQogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIDEgICAgIC8qIENhbGwgYm9hcmRfZWFybHlfaW5pdF9mCSovCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IgMSAgICAgLyogQ2FsbCBib2FyZF9lYXJseV9pbml0X2YJKi8KICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SICAgICAgMQkvKiBDYWxsIG1pc2NfaW5pdF9yKCkJCSovCkBAIC02Niw0MiArNjYsNDIgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKICNpZmRlZiBDT05GSUdfUDNNNzUwCi0jZGVmaW5lIENGR19TRFJBTTFfQkFTRQkJMHgxMDAwMDAwMAkvKiBlYWNoIDI1NiBNQnl0ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMV9CQVNFCQkweDEwMDAwMDAwCS8qIGVhY2ggMjU2IE1CeXRlCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCiAjaWYgZGVmaW5lZCAoQ09ORklHX1AzTTc1MCkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmY4MDAwMDAJLyogc3RhcnQgb2YgZmxhc2ggYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RfU0laRQkJXzhNCQkvKiBib290IGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmY4MDAwMDAJLyogc3RhcnQgb2YgZmxhc2ggYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX1NJWkUJCV84TQkJLyogYm9vdCBmbGFzaAkJKi8KICNlbGlmIGRlZmluZWQgKENPTkZJR19QM003NDQ4KQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZjAwMDAwMAkvKiBzdGFydCBvZiBmbGFzaCBiYW5rcwkqLwotI2RlZmluZSBDRkdfQk9PVF9TSVpFCQlfMTZNCQkvKiBib290IGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmYwMDAwMDAJLyogc3RhcnQgb2YgZmxhc2ggYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX1NJWkUJCV8xNk0JCS8qIGJvb3QgZmxhc2gJCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0JPT1RfU1BBQ0UJCUNGR19GTEFTSF9CQVNFCS8qIEJPT1RfQ1MwIGZsYXNoIDAgICAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweGZmZjAwMDAwCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmZmMDAxMDAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MgKi8KLSNkZWZpbmUgQ0ZHX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfU1BBQ0UJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBCT09UX0NTMCBmbGFzaCAwICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4ZmZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmZmMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRQkweGYwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0RGTF9HVF9SRUdTCQkweGYxMDAwMDAwCS8qIGJvb3QgdGltZSBHVF9SRUdTICovCi0jZGVmaW5lIENGR19HVF9SRUdTCQkweGYxMDAwMDAwCS8qIEdUIFJlZ2lzdGVycyBhcmUgbWFwcGVkIGhlcmUgKi8KLSNkZWZpbmUgQ0ZHX0lOVF9TUkFNX0JBU0UJMHg0MjAwMDAwMAkvKiBHVCBvZmZlcnMgMjU2ayBpbnRlcm5hbCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfREZMX0dUX1JFR1MJCTB4ZjEwMDAwMDAJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HVF9SRUdTCQkweGYxMDAwMDAwCS8qIEdUIFJlZ2lzdGVycyBhcmUgbWFwcGVkIGhlcmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTlRfU1JBTV9CQVNFCTB4NDIwMDAwMDAJLyogR1Qgb2ZmZXJzIDI1NmsgaW50ZXJuYWwgU1JBTSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIFJBTSAmIHN0YWNrIHBvaW50ZXIgKHBsYWNlZCBpbiBpbnRlcm5hbCBTUkFNKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICAvKgotICogV2hlbiBsb2NraW5nIGRhdGEgaW4gY2FjaGUgeW91IHNob3VsZCBwb2ludCB0aGUgQ0ZHX0lOSVRfUkFNX0FERFJFU1MKKyAqIFdoZW4gbG9ja2luZyBkYXRhIGluIGNhY2hlIHlvdSBzaG91bGQgcG9pbnQgdGhlIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkVTUwogICogVG8gYW4gdW51c2VkIG1lbW9yeSByZWdpb24uIFRoZSBzdGFjayB3aWxsIHJlbWFpbiBpbiBjYWNoZSB1bnRpbCBSQU0KICAqIGlzIGluaXRpYWxpemVkCiAqLwotI3VuZGVmCUNGR19JTklUX1JBTV9MT0NLCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDIwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI3VuZGVmCUNPTkZJR19TWVNfSU5JVF9SQU1fTE9DSworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTAsMTUgKzExMCwxNSBAQAogI2RlZmluZSBDT05GSUdfTVBTQwkJCS8qIE1WNjQ0NjAgU2VyaWFsCQkqLwogI2RlZmluZSBDT05GSUdfTVBTQ19QT1JUCTAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogY29uc29sZSBiYXVkcmF0ZQkJKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFdGhlcm5ldAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qIENoYW5nZSB0aGUgZGVmYXVsdCBldGhlcm5ldCBwb3J0LCB1c2UgdGhpcyBkZWZpbmUgKG9wdGlvbnM6IDAsIDEsIDIpICovCi0jZGVmaW5lIENGR19FVEhfUE9SVAkJRVRIXzAKKyNkZWZpbmUgQ09ORklHX1NZU19FVEhfUE9SVAkJRVRIXzAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQogI2RlZmluZSBNVl9FVEhfREVWUwkJMgogI2RlZmluZSBDT05GSUdfUEhZX1JFU0VUICAgICAgICAxCS8qIHJlc2V0IHBoeSB1cG9uIHN0YXJ0dXAgICAgICAgICAqLwpAQCAtMTI3LDE1ICsxMjcsMTUgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCQkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbgkqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCS8qIHVzZSBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSCAgICAgMQkvKiB1c2UgRkxBU0ggZm9yIGVudmlyb25tZW50IHZhcnMJKi8KICNpZiBkZWZpbmVkIChDT05GSUdfUDNNNzUwKQpAQCAtMTQ0LDcgKzE0NCw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogdHdvIHNlY3RvcnMgKDIgZGV2aWNlcyBwYXJhbGxlbAkqLwogI2VuZGlmCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHgyMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRERSIFNEUkFNCkBAIC0xNTQsMTIgKzE1NCwxMiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJCS8qIEkyQyBzcGVlZCBkZWZhdWx0CSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJCS8qIEkyQyBzcGVlZCBkZWZhdWx0CSovCiAKIC8qIEkyQyBSVEMgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19NNDFUMTEJMQotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgKLSNkZWZpbmUgQ0ZHX000MVQxMV9CQVNFX1lFQVIJMTkwMAkvKiBwbGF5IGFsb25nIHdpdGggbGludXgJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAorI2RlZmluZSBDT05GSUdfU1lTX000MVQxMV9CQVNFX1lFQVIJMTkwMAkvKiBwbGF5IGFsb25nIHdpdGggbGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJIHN0dWZmCkBAIC0xNzYsMjcgKzE3NiwyNyBAQAogI2VuZGlmIC8qIENPTkZJR19QQ0kgKi8KIAogLyogUENJIE1FTU9SWSBNQVAgc2VjdGlvbiAqLwotI2RlZmluZSBDRkdfUENJMF9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX01FTV9TSVpFCV8xMjhNCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODgwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJXzEyOE0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9TSVpFCV8xMjhNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDg4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQlfMTI4TQogCi0jZGVmaW5lIENGR19QQ0kwXzBfTUVNX1NQQUNFCShDRkdfUENJMF9NRU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UJKENGR19QQ0kxX01FTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UpCiAKIC8qIFBDSSBJL08gTUFQIHNlY3Rpb24gKi8KLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fQkFTRQkweGZhMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX0lPX1NJWkUJXzE2TQotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4ZmIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQlfMTZNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19CQVNFCTB4ZmEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUJXzE2TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweGZiMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCV8xNk0KIAotI2RlZmluZSBDRkdfUENJMF9JT19TUEFDRQkoQ0ZHX1BDSTBfSU9fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fU1BBQ0VfUENJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU1BBQ0UJKENGR19QQ0kxX0lPX0JBU0UpCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NQQUNFX1BDSQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19TUEFDRQkoQ09ORklHX1NZU19QQ0kwX0lPX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19TUEFDRV9QQ0kJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0UJKENPTkZJR19TWVNfUENJMV9JT19CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0VfUENJCTB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyAoQ0ZHX1BDSTBfSU9fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSV9JRFNFTCAweDMwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyAoQ09ORklHX1NZU19QQ0kwX0lPX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lEU0VMIDB4MzAKIAogI3VuZGVmCUNPTkZJR19CT09UQVJHUwogI2RlZmluZQlDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTX0NPTU1PTgkJCQlcCkBAIC0yODUsMjYgKzI4NSwyNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkgICAgICAgICI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkgICAgICAgICI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkgICAgICAgIDEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgICAxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgICAgMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCSAgICAgICAgMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAgICAgICAgICAgICAgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkgICAgICAgIENGR19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAgICAgICAgICAgICAgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJICAgICAgICBDT05GSUdfU1lTX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24JICAgICAgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMCAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAgLyogbWVtdGVzdCB3b3JrcyBvbgkgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMCAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwODAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwODAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCiAjZGVmaW5lIENPTkZJR19MT09QVyAgICAgICAgICAgIDEgICAgICAgLyogZW5hYmxlIGxvb3B3IGNvbW1hbmQgICAgICAgICAqLwpAQCAtMzE3LDkgKzMxNyw5IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogUmVzZXQgdmFsdWVzIGZvciBQb3J0IGJlaGF2aW9yICg4Yml0LyAzMmJpdCwgZXRjLikgb25seSBjb3JyZWN0ZWQgZGV2aWNlIHdpZHRoICovCiAjaWYgZGVmaW5lZCAoQ09ORklHX1AzTTc1MCkKLSNkZWZpbmUgQ0ZHX0JPT1RfUEFSCQkweDhGREZGODdGCS8qIDE2IGJpdCBmbGFzaCwgZGlzYWJsZSBidXJzdCovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9QQVIJCTB4OEZERkY4N0YJLyogMTYgYml0IGZsYXNoLCBkaXNhYmxlIGJ1cnN0Ki8KICNlbGlmIGRlZmluZWQgKENPTkZJR19QM003NDQ4KQotI2RlZmluZSBDRkdfQk9PVF9QQVIJCTB4OEZFRkZGRkYJLyogMzIgYml0IGZsYXNoLCBidXJzdCBlbmFibGVkICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9QQVIJCTB4OEZFRkZGRkYJLyogMzIgYml0IGZsYXNoLCBidXJzdCBlbmFibGVkICovCiAjZW5kaWYKIAogLyoKQEAgLTM1NiwxMSArMzU2LDExIEBACiAgKiBNUFBbMzBdCU1vZHVsZSByZXNldAkJR1BJTwlPVVQJQm9hcmQgcmVzZXQKICAqIE1QUFszMV0JUENJIEVSZWFkeQkJR1BJTwlJTglDb25uZWN0ZWQgdG8gUDEyCiAgKi8KLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzAJMHgwMDMwMzAyMgotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8yCTB4MDAwMDQwMDAKLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzMJMHgwMDAwMDAwNAotI2RlZmluZSBDRkdfR1BQX0xFVkVMX0NPTlRST0wJMHgyODA3MzBEMAorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzAJMHgwMDMwMzAyMgorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzEJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzIJMHgwMDAwNDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzMJMHgwMDAwMDAwNAorI2RlZmluZSBDT05GSUdfU1lTX0dQUF9MRVZFTF9DT05UUk9MCTB4MjgwNzMwRDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIEJBVCBtYXBwaW5ncwpAQCAtMzcxLDc1ICszNzEsNzUgQEAKICAqIDIpIENBQ0hFSU5ISUJJVCBhbmQgV1JJVEVUSFJPVUdIIG5vdCBhbGxvd2VkIHRvZ2V0aGVyIGluIHNhbWUgQkFUCiAgKi8KIC8qIFNEUkFNICovCi0jZGVmaW5lIENGR19JQkFUMEwgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDBVIChDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDBMIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19EQkFUMFUgQ0ZHX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVSAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSBDT05GSUdfU1lTX0lCQVQwVQogCiAvKiBpbml0IHJhbSAqLwotI2RlZmluZSBDRkdfSUJBVDFMICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMjU2SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDFMICBDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUgIENGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8yNTZLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMICBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVSAgQ09ORklHX1NZU19JQkFUMVUKIAogLyogUENJMCwgUENJMSBpbiBvbmUgQkFUICovCi0jZGVmaW5lIENGR19JQkFUMkwgQkFUTF9OT19BQ0NFU1MKLSNkZWZpbmUgQ0ZHX0lCQVQyVSBDRkdfREJBVDJVCi0jZGVmaW5lIENGR19EQkFUMkwgKENGR19QQ0kwX01FTV9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQyVSAoQ0ZHX1BDSTBfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwgQkFUTF9OT19BQ0NFU1MKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgQ09ORklHX1NZU19EQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwgKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVIChDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogR1QgcmVncywgYm9vdHJvbSwgYWxsIHRoZSBkZXZpY2VzLCBQQ0kgSS9PICovCi0jZGVmaW5lIENGR19JQkFUM0wgKENGR19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXKQotI2RlZmluZSBDRkdfSUJBVDNVIChDRkdfTUlTQ19SRUdJT05fQkFTRSB8IEJBVFVfVlMgfCBCQVRVX1ZQIHwgQkFUVV9CTF8yNTZNKQotI2RlZmluZSBDRkdfREJBVDNMIChDRkdfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUM1UgQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTCAoQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVSAoQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUVV9WUyB8IEJBVFVfVlAgfCBCQVRVX0JMXzI1Nk0pCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMIChDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSBDT05GSUdfU1lTX0lCQVQzVQogCi0jZGVmaW5lIENGR19JQkFUNEwgKENGR19TRFJBTTFfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQ0VSAoQ0ZHX1NEUkFNMV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNEwgKENGR19TRFJBTTFfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUNFUgQ0ZHX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TCAoQ09ORklHX1NZU19TRFJBTTFfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUgKENPTkZJR19TWVNfU0RSQU0xX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNEwgKENPTkZJR19TWVNfU0RSQU0xX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0VSBDT05GSUdfU1lTX0lCQVQ0VQogCiAvKiBzZXQgcmVzdCBvdXQgb2YgcmFuZ2UgZm9yIExpbnV4ICEhISEhISEhISEhICovCiAKIC8qIElCQVQ1IGFuZCBEQkFUNSAqLwotI2RlZmluZSBDRkdfSUJBVDVMICgweDIwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDVVICgweDIwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNUwgKDB4MjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDVVIENGR19JQkFUNVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNUwgKDB4MjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVVICgweDIwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVMICgweDIwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNVUgQ09ORklHX1NZU19JQkFUNVUKIAogLyogSUJBVDYgYW5kIERCQVQ2ICovCi0jZGVmaW5lIENGR19JQkFUNkwgKDB4MjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUNlUgKDB4MjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ2TCAoMHgyMDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUNlUgQ0ZHX0lCQVQ2VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TCAoMHgyMDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNlUgKDB4MjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNkwgKDB4MjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VSBDT05GSUdfU1lTX0lCQVQ2VQogCiAvKiBJQkFUNyBhbmQgREJBVDcgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ3TCAoMHgyMDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQ3VSAoMHgyMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDdMICgweDIwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQ3VSBDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMICgweDIwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VSAoMHgyMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TCAoMHgyMDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdVIENPTkZJR19TWVNfSUJBVDdVCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4PDwyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwotI2RlZmluZSBDRkdfVlhXT1JLU19NQUNfUFRSCTB4NDIwMTAwMDAgLyogdXNlIHNvbWUgbWVtb3J5IGluIFNSQU0gdGhhdCdzIG5vdCB1c2VkISEhICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoODw8MjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19WWFdPUktTX01BQ19QVFIJMHg0MjAxMDAwMCAvKiB1c2Ugc29tZSBtZW1vcnkgaW4gU1JBTSB0aGF0J3Mgbm90IHVzZWQhISEgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgYWxsIE1QQzc0eHggQ1BVcwkJICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIGFsbCBNUEM3NHh4IENQVXMJCSAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEwyQ1Igc2V0dXAgLS0gbWFrZSBzdXJlIHRoaXMgaXMgcmlnaHQgZm9yIHlvdXIgYm9hcmQhCiAgKiBsb29rIGluIGluY2x1ZGUvbXBjNzR4eC5oIGZvciB0aGUgZGVmaW5lcyB1c2VkIGhlcmUKICAqLwotI2RlZmluZSBDRkdfTDIKKyNkZWZpbmUgQ09ORklHX1NZU19MMgogCiAjaWYgZGVmaW5lZCAoQ09ORklHXzc1MENYKSB8fCBkZWZpbmVkIChDT05GSUdfNzUwRlgpCiAjZGVmaW5lIEwyX0lOSVQgMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3AzcDQ0MC5oIGIvaW5jbHVkZS9jb25maWdzL3AzcDQ0MC5oCmluZGV4IGRhM2NlNTQuLjFkYzg2NTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9wM3A0NDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvcDNwNDQwLmgKQEAgLTQ1LDQ1ICs0NSw0NSBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCSAgICAvKiBfbXVzdF8gYmUgMAkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJICAgIDB4ZmY4MDAwMDAJICAgIC8qIHN0YXJ0IG9mIEZMQVNICQkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIDB4ZmZmYzAwMDAJICAgIC8qIHN0YXJ0IG9mIG1vbml0b3IJCSovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRQkgICAgMHg4MDAwMDAwMAkgICAgLyogbWFwcGVkIHBjaSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRSAweGUwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLwotI2RlZmluZSBDRkdfSVNSQU1fQkFTRQkgICAgMHhjMDAwMDAwMAkgICAgLyogaW50ZXJuYWwgU1JBTQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9CQVNFCSAgICAweGQwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBQQ0kgcmVncwkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJICAgIDB4MDAwMDAwMDAJICAgIC8qIF9tdXN0XyBiZSAwCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgIDB4ZmY4MDAwMDAJICAgIC8qIHN0YXJ0IG9mIEZMQVNICQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICAweGZmZmMwMDAwCSAgICAvKiBzdGFydCBvZiBtb25pdG9yCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCSAgICAweDgwMDAwMDAwCSAgICAvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSAweGUwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lTUkFNX0JBU0UJICAgIDB4YzAwMDAwMDAJICAgIC8qIGludGVybmFsIFNSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJICAgIDB4ZDAwMDAwMDAJICAgIC8qIGludGVybmFsIFBDSSByZWdzCSovCiAKLSNkZWZpbmUgQ0ZHX1VTQl9CQVNFCSAgICAoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0JBU0UJICAgIChDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDAwMDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlciAocGxhY2VkIGluIGludGVybmFsIFNSQU0pCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSVNSQU1fQkFTRSAgLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CSAgICAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lTUkFNX0JBU0UgIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCSAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CSAgICAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhCSovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24qLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRERSIFNEUkFNCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzAJMQkvKiBpbml0IG9uYm9hcmQgRERSIFNEUkFNIGJhbmsgMCovCiAjZGVmaW5lIENPTkZJR19TRFJBTV9FQ0MJCS8qIGVuYWJsZSBFQ0Mgc3VwcG9ydAkJKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1RBQkxFCXsgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1RBQkxFCXsgXAogCQl7KDI1NiA8PCAyMCksIDEzLCAweDAwMEM0MDAxfSwgLyogMjU2TUIgbW9kZSAzLCAxM3gxMCg0KSovIFwKIAkJeyg2NCA8PCAyMCksICAxMiwgMHgwMDA4MjAwMX19IC8qIDY0TUIgbW9kZSAyLCAxMng5KDQpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI3VuZGVmIENGR19FWFRfU0VSSUFMX0NMT0NLCisjdW5kZWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCQkJCQkJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCQkJCQkJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwJCVwKIAkJCTU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCkBAIC05Miw5ICs5Miw5IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQyBSVEMKQEAgLTEwNCwxNCArMTA0LDE0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NIChQQ0Y4NTk0QykgZm9yIGVudmlyb25tZW50CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTQJLyogRUVQUk9NIFBDRjg1OTRDCQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTQJLyogRUVQUk9NIFBDRjg1OTRDCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDMJLyogVGhlIFBoaWxpcHMgUENGODU5NEMgaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDMJLyogVGhlIFBoaWxpcHMgUENGODU5NEMgaGFzCSovCiAJCQkJCS8qIDggYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcgKi8KIAkJCQkJLyogbGFzdCAzIGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTQwICAgLyogYW5kIHRha2VzIHVwIHRvIDQwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk0MCAgIC8qIGFuZCB0YWtlcyB1cCB0byA0MCBtc2VjICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmF1bHQgY29uZmlndXJhdGlvbiAoZW52aXJvbm1lbnQgdmFyaWJsZXMuLi4pCkBAIC0xNTYsMTQgKzE1NiwxNCBAQAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMHgxYwkvKiBQSFkgYWRkcmVzcwkJCSovCiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQogI2RlZmluZSBDT05GSUdfUEhZMV9BRERSCTB4MWQJLyogRU1BQzEgUEhZIGFkZHJlc3MJCSovCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkzMgkvKiBOdW1iZXIgb2YgZXRoZXJuZXQgcnggYnVmZmVycyAmIGRlc2NyaXB0b3JzICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkzMgkvKiBOdW1iZXIgb2YgZXRoZXJuZXQgcnggYnVmZmVycyAmIGRlc2NyaXB0b3JzICovCiAKICNkZWZpbmUgQ09ORklHX05FVENPTlNPTEUJCS8qIGluY2x1ZGUgTmV0Q29uc29sZSBzdXBwb3J0CSovCiAKQEAgLTIwNCwyNCArMjA0LDI0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUJMSAgICAgICAvKiBhZGQgYXV0b2NvbXBsZXRpb24gc3VwcG9ydCAgICovCiAjZGVmaW5lIENPTkZJR19MT09QVyAgICAgICAgICAgIDEgICAgICAgLyogZW5hYmxlIGxvb3B3IGNvbW1hbmQgICAgICAgICAqLwpAQCAtMjM1LDY5ICsyMzUsNjkgQEAKICNkZWZpbmUgQ09ORklHX1BDSQkJCSAgICAgICAgICAgIC8qIGluY2x1ZGUgcGNpIHN1cHBvcnQJICAgICAgICAqLwogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJCSAgICAgICAgLyogZG8gcGNpIHBsdWctYW5kLXBsYXkgICAgICAgICAqLwogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVyAgICAgICAgICAgIC8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHQkFTRSAgICAweDgwMDAwMDAwICAvKiBQQ0lhZGRyIG1hcHBlZCB0byBDRkdfUENJX01FTUJBU0UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UgICAgMHg4MDAwMDAwMCAgLyogUENJYWRkciBtYXBwZWQgdG8gQ09ORklHX1NZU19QQ0lfTUVNQkFTRSAqLwogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAkgICAgICAgICAgICAvKiBsZXQgYm9hcmQgaW5pdCBwY2kgdGFyZ2V0ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCSAgICAgICAgICAgIC8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQgICAgKi8KIAogI2RlZmluZSBDT05GSUdfRElTQUJMRV9QSVNFX1RFU1QJLyogZGlzYWJsZSBQSVNFIHRlc3QgKFBDSVggb25seSkqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZSAgLyogV2hhdGV2ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUgIC8qIFdoYXRldmVyICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0gwCQkweEZGODAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDEJCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMgkJMHhGRTgwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gzCQkweEZFMDAwMDAwCi0jZGVmaW5lIENGR19VU0IJCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwCQkweEZGODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gyCQkweEZFODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gzCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCCQkJMHhGMDAwMDAwMAogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDAsIE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDAzMDUwMjAwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShDRkdfRkxBU0gwIHwgMHg3QTAwMCkgLyogQkFTPTB4RkY4LEJTPThNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDMwNTAyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShDT05GSUdfU1lTX0ZMQVNIMCB8IDB4N0EwMDApIC8qIEJBUz0weEZGOCxCUz04TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKEZsYXNoIEJhbmsgMSwgTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDMwNTAyMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJKENGR19GTEFTSDEgfCAweDdBMDAwKSAvKiBCQVM9MHhGRjgsQlM9OE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHgwMzA1MDIwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJKENPTkZJR19TWVNfRkxBU0gxIHwgMHg3QTAwMCkgLyogQkFTPTB4RkY4LEJTPThNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoRmxhc2ggQmFuayAyLCBOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMzA1MDIwMAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkoQ0ZHX0ZMQVNIMiB8IDB4N0EwMDApIC8qIEJBUz0weEZGOCxCUz04TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAzMDUwMjAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkoQ09ORklHX1NZU19GTEFTSDIgfCAweDdBMDAwKSAvKiBCQVM9MHhGRjgsQlM9OE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAzIChGbGFzaCBCYW5rIDMsIE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDAzMDUwMjAwCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCShDRkdfRkxBU0gzIHwgMHg3QTAwMCkgLyogQkFTPTB4RkY4LEJTPThNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDMwNTAyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCShDT05GSUdfU1lTX0ZMQVNIMyB8IDB4N0EwMDApIC8qIEJBUz0weEZGOCxCUz04TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDcgKFVTQiBjb250cm9sbGVyKSBpbml0aWFsaXphdGlvbgkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCN0FQCQkweDAyMDE1MDAwCi0jZGVmaW5lIENGR19FQkNfUEI3Q1IJCShDRkdfVVNCIHwgMHhGRTAwMCkgLyogQkFTPTB4RjAwLEJTPTEyOE1CLEJVPVIvVyxCVz0xNmJpdCovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCN0FQCQkweDAyMDE1MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCN0NSCQkoQ09ORklHX1NZU19VU0IgfCAweEZFMDAwKSAvKiBCQVM9MHhGMDAsQlM9MTI4TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QgeyBDRkdfRkxBU0gzLCBDRkdfRkxBU0gyLCBDRkdfRkxBU0gxLCBDRkdfRkxBU0gwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUIHsgQ09ORklHX1NZU19GTEFTSDMsIENPTkZJR19TWVNfRkxBU0gyLCBDT05GSUdfU1lTX0ZMQVNIMSwgQ09ORklHX1NZU19GTEFTSDAgfQogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJNAkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJNAkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbgkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBmbGFzaAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBmbGFzaAkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0ggICAgIDEJLyogdXNlIEZMQVNIIGZvciBlbnZpcm9ubWVudCB2YXJzCSovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTMwOSw3ICszMDksNyBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcGIxeDAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvcGIxeDAwLmgKaW5kZXggNDgwYTU5Zi4uN2M3YmViYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3BiMXgwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9wYjF4MDAuaApAQCAtNTMsNyArNTMsNyBAQAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUJQ09ORklHX1RJTUVTVEFNUAkJLyogUHJpbnQgaW1hZ2UgaW5mbyB3aXRoIHRpbWVzdGFtcCAqLwogI3VuZGVmCUNPTkZJR19CT09UQVJHUwpAQCAtNzEsNTAgKzcxLDUwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJQYjF4MDAgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIlBiMXgwMCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkxMjgqMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCTEyOCoxMDI0CiAKLSNkZWZpbmUgQ0ZHX0JPT1RQQVJBTVNfTEVOCTEyOCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JMTI4KjEwMjQKIAotI2RlZmluZSBDRkdfTUlQU19USU1FUl9GUkVRCTM5NjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JUFNfVElNRVJfRlJFUQkzOTYwMDAwMDAKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4ODAwMDAwMDAgICAgIC8qIENhY2hlZCBhZGRyICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHg4MDAwMDAwMCAgICAgLyogQ2FjaGVkIGFkZHIgKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDgxMDAwMDAwICAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHg4MTAwMDAwMCAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDgwMTAwMDAwCi0jdW5kZWYgQ0ZHX01FTVRFU1RfU1RBUlQKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAgICAgMHg4MDIwMDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4ODM4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4ODAxMDAwMDAKKyN1bmRlZiBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgICAgIDB4ODAyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHg4MzgwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMTI4KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgxMjgpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHhiZWMwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfMgkJMHhiZmMwMDAwMCAvKiBGbGFzaCBCYW5rICMyICovCiAKIC8qIFRoZSBmb2xsb3dpbmcgI2RlZmluZXMgYXJlIG5lZWRlZCB0byBnZXQgZmxhc2ggZW52aXJvbm1lbnQgcmlnaHQgKi8KLSNkZWZpbmUJQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJMHg0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJMHg0MDAwMDAwCiAKIC8qIFdlIGJvb3QgZnJvbSB0aGlzIGZsYXNoLCBzZWxlY3RlZCB3aXRoIGRpcCBzd2l0Y2ggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMgogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIgKiBDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyICogQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDIgKiBDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIgKiBDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfTk9XSEVSRQkxCiAKQEAgLTE0MCw4ICsxNDAsOCBAQAogCiAvKi0tLUFUQSBQQ01DSUEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZiAwCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUgMHg0MDAwMDAwIC8qIE9mZnNldCB0byBzbG90IDEgRklYTUUhISEgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUiAweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFIDB4NDAwMDAwMCAvKiBPZmZzZXQgdG8gc2xvdCAxIEZJWE1FISEhICovCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSIDB4MjAwMDAwMDAKICNkZWZpbmUgQ09ORklHX1BDTUNJQV9TTE9UX0EKIAogI2RlZmluZSBDT05GSUdfQVRBUEkgMQpAQCAtMTUxLDMyICsxNTEsMzIgQEAKICNkZWZpbmUgQ09ORklHX0lERV9QQ01DSUEgMQogCiAvKiBXZSBvbmx5IHN1cHBvcnQgb25lIHNsb3QgZm9yIG5vdyAqLwotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIgICAgICAgQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIgICAgICAgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQgICAgIDgKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQgICAgIDgKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMgICovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVCAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVCAgICAgIDAKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICAgICAgICovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVCAgICAgIDB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUICAgICAgMHgwMTAwCiAKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19EQ0FDSEVfU0laRQkJMTYzODQKLSNkZWZpbmUgQ0ZHX0lDQUNIRV9TSVpFCQkxNjM4NAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19EQ0FDSEVfU0laRQkJMTYzODQKKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfU0laRQkJMTYzODQKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcGNzNDQwZXAuaCBiL2luY2x1ZGUvY29uZmlncy9wY3M0NDBlcC5oCmluZGV4IDY2MDc1ZDIuLjZlMmQ5MDYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9wY3M0NDBlcC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9wY3M0NDBlcC5oCkBAIC00OSw0NCArNDksNDQgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgzODQgKiAxMDI0KQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCSgtQ0ZHX01PTklUT1JfTEVOKQotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkgICAgICAgIDB4MDAwMDAwMDAJICAgIC8qIF9tdXN0XyBiZSAwCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCSAgICAgICAgMHhmZmYwMDAwMAkgICAgLyogc3RhcnQgb2YgRkxBU0gJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCSAgICAgICAgMHhhMDAwMDAwMAkgICAgLyogbWFwcGVkIHBjaSBtZW1vcnkqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UxICAgICAgICBDRkdfUENJX01FTUJBU0UgICsgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTUJBU0UyICAgICAgICBDRkdfUENJX01FTUJBU0UxICsgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTUJBU0UzICAgICAgICBDRkdfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMzg0ICogMTAyNCkJLyogUmVzZXJ2ZSAzODQga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCSgtQ09ORklHX1NZU19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCSAgICAgICAgMHgwMDAwMDAwMAkgICAgLyogX211c3RfIGJlIDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCSAgICAgICAgMHhmZmYwMDAwMAkgICAgLyogc3RhcnQgb2YgRkxBU0gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkgICAgICAgIDB4YTAwMDAwMDAJICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEgICAgICAgIENPTkZJR19TWVNfUENJX01FTUJBU0UgICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiAgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UzICAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiArIDB4MTAwMDAwMDAKIAogLypEb24ndCBjaGFuZ2UgZWl0aGVyIG9mIHRoZXNlKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRSAgICAgMHhlZjYwMDAwMAkgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMqLwotI2RlZmluZSBDRkdfUENJX0JBU0UJICAgICAgICAweGUwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBQQ0kgcmVncyovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICAgICAweGVmNjAwMDAwCSAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscyovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJICAgICAgICAweGUwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBQQ0kgcmVncyovCiAvKkRvbid0IGNoYW5nZSBlaXRoZXIgb2YgdGhlc2UqLwogCi0jZGVmaW5lIENGR19VU0JfREVWSUNFICAgICAgICAgIDB4NTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JPT1RfQkFTRV9BRERSICAgICAgMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9ERVZJQ0UgICAgICAgICAgMHg1MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSICAgICAgMHhmMDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIFJBTSAmIHN0YWNrIHBvaW50ZXIgKHBsYWNlZCBpbiBTRFJBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9EQ0FDSEUJMQkJLyogZC1jYWNoZSBhcyBpbml0IHJhbQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDcwMDAwMDAwCQkvKiBEQ2FjaGUgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkoNCA8PCAxMCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMjU2CQkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9EQ0FDSEUJMQkJLyogZC1jYWNoZSBhcyBpbml0IHJhbQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg3MDAwMDAwMAkJLyogRENhY2hlICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2CQkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSN1bmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSwkJLyogbm8gZXh0ZXJuYWwgY2xrIHVzZWQJCSovCisjdW5kZWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCQkvKiBubyBleHRlcm5hbCBjbGsgdXNlZAkJKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKICNkZWZpbmUgQ09ORklHX1NFUklBTF9NVUxUSSAgICAgMQogLypkZWZpbmUgdGhpcyBpZiB5b3Ugd2FudCBjb25zb2xlIG9uIFVBUlQxKi8KICN1bmRlZiBDT05GSUdfVUFSVDFfQ09OU09MRQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAgICAgezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTk3LDIxICs5NywyMSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIGNoYXIJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEKQEAgLTEzOCwxMyArMTM4LDEzIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJICAgIC8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkgICAgLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJKDB4YTQ+PjEpCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJKDB4YTQ+PjEpCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKIAogI2RlZmluZSBDT05GSUdfUFJFQk9PVAkiZWNobzsiCVwKIAkiZWNobyBUeXBlIFxcXCJydW4gZmxhc2hfbmZzXFxcIiB0byBtb3VudCByb290IGZpbGVzeXN0ZW0gb3ZlciBORlM7IiBcCkBAIC0xODksOCArMTg5LDggQEAKIAogLyogY2hlY2sgVS1Cb290IGltYWdlIHdpdGggU0hBMSBzdW0gKi8KICNkZWZpbmUgQ09ORklHX1NIQTFfQ0hFQ0tfVUJfSU1HCTEKLSNkZWZpbmUgQ09ORklHX1NIQTFfU1RBUlQJCUNGR19NT05JVE9SX0JBU0UKLSNkZWZpbmUgQ09ORklHX1NIQTFfTEVOCQkJQ0ZHX01PTklUT1JfTEVOCisjZGVmaW5lIENPTkZJR19TSEExX1NUQVJUCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRQorI2RlZmluZSBDT05GSUdfU0hBMV9MRU4JCQlDT05GSUdfU1lTX01PTklUT1JfTEVOCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBzdGF0dXMgTEVECkBAIC0xOTksMTYgKzE5OSwxNiBAQAogI2RlZmluZSBDT05GSUdfQk9BUkRfU1BFQ0lGSUNfTEVECTEKIAogI2RlZmluZSBTVEFUVVNfTEVEX0JJVAkJMHgwOAkJCS8qIERJQUcxIGlzIG9uIEdQSU9fUFBDXzEgKi8KLSNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKChDRkdfSFogLyAyKSAvIDUpCS8qIGJsaW5rIGF0IDUgSHogKi8KKyNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKChDT05GSUdfU1lTX0haIC8gMikgLyA1KQkvKiBibGluayBhdCA1IEh6ICovCiAjZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJU1RBVFVTX0xFRF9PRkYKICNkZWZpbmUgU1RBVFVTX0xFRF9CSVQxCQkweDA0CQkJLyogRElBRzIgaXMgb24gR1BJT19QUENfMiAqLwotI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRDEJKChDRkdfSFogLyAyKSAvIDUpCS8qIGJsaW5rIGF0IDUgSHogKi8KKyNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QxCSgoQ09ORklHX1NZU19IWiAvIDIpIC8gNSkJLyogYmxpbmsgYXQgNSBIeiAqLwogI2RlZmluZSBTVEFUVVNfTEVEX1NUQVRFMQlTVEFUVVNfTEVEX09OCiAjZGVmaW5lIFNUQVRVU19MRURfQklUMgkJMHgwMgkJCS8qIERJQUczIGlzIG9uIEdQSU9fUFBDXzMgKi8KLSNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QyCSgoQ0ZHX0haIC8gMikgLyA1KQkvKiBibGluayBhdCA1IEh6ICovCisjZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMgkoKENPTkZJR19TWVNfSFogLyAyKSAvIDUpCS8qIGJsaW5rIGF0IDUgSHogKi8KICNkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTIJU1RBVFVTX0xFRF9PRkYKICNkZWZpbmUgU1RBVFVTX0xFRF9CSVQzCQkweDAxCQkJLyogRElBRzQgaXMgb24gR1BJT19QUENfNCAqLwotI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRDMJKChDRkdfSFogLyAyKSAvIDUpCS8qIGJsaW5rIGF0IDUgSHogKi8KKyNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QzCSgoQ09ORklHX1NZU19IWiAvIDIpIC8gNSkJLyogYmxpbmsgYXQgNSBIeiAqLwogI2RlZmluZSBTVEFUVVNfTEVEX1NUQVRFMwlTVEFUVVNfTEVEX09GRgogCiAjZGVmaW5lIENPTkZJR19TSE9XX0JPT1RfUFJPR1JFU1MJMQpAQCAtMjE2LDcgKzIxNiw3IEBACiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSSAgICAgICAgMQkvKiByZXF1aXJlZCBmb3IgbmV0Y29uc29sZSAgICAgICovCkBAIC0yMjQsNyArMjI0LDcgQEAKICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkxCS8qIFBIWSBhZGRyZXNzLCBTZWUgc2NoZW1hdGljcwkqLwogI2RlZmluZSBDT05GSUdfUEhZMV9BRERSICAgICAgICAyCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMzIJLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMzIJLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLwogCiAjZGVmaW5lIENPTkZJR19ORVRDT05TT0xFCQkvKiBpbmNsdWRlIE5ldENvbnNvbGUgc3VwcG9ydAkqLwogCkBAIC0yODcsMjUgKzI4NywyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkgICAgICAgICI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkgICAgICAgICI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkgICAgICAgIDEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgICAxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgICAgMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCSAgICAgICAgMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAgICAgICAgICAgICAgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkgICAgICAgIENGR19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAgICAgICAgICAgICAgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJICAgICAgICBDT05GSUdfU1lTX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24JICAgICAgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMCAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAgLyogbWVtdGVzdCB3b3JrcyBvbgkgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMCAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogI2RlZmluZSBDT05GSUdfTFlOWEtESSAgICAgICAgICAxICAgICAgIC8qIHN1cHBvcnQga2RpIGZpbGVzICAgICAgICAgICAgKi8KIAotI2RlZmluZSBDRkdfSFoJCSAgICAgICAgMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCSAgICAgICAgMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMzE1LDIxICszMTUsMjEgQEAKICNkZWZpbmUgQ09ORklHX1BDSQkJCS8qIGluY2x1ZGUgcGNpIHN1cHBvcnQJICAgICAgICAqLwogI3VuZGVmICBDT05GSUdfUENJX1BOUAkJCS8qIGRvIChub3QpIHBjaSBwbHVnLWFuZC1wbGF5ICAgKi8KICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cgICAgICAgICAgICAvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0JBU0UgICAgICAgIDB4ODAwMDAwMDAgLyogUENJYWRkciBtYXBwZWQgdG8gQ0ZHX1BDSV9NRU1CQVNFKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UgICAgICAgIDB4ODAwMDAwMDAgLyogUENJYWRkciBtYXBwZWQgdG8gQ09ORklHX1NZU19QQ0lfTUVNQkFTRSovCiAKIC8qIEJvYXJkLXNwZWNpZmljIFBDSSAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdFVF9JTklUCi0jZGVmaW5lIENGR19QQ0lfTUFTVEVSX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQKIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19JRCAgICAgICAweGNhZmUJLyogV2hhdGV2ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19JRCAgICAgICAweGNhZmUJLyogV2hhdGV2ZXIgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCkBAIC0zMzcsMzYgKzMzNywzNiBAQAogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHhGRkYwMDAwMAkvKiBGTEFTSCBiYW5rICMwCSovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkweEZGRjgwMDAwCS8qIEZMQVNIIGJhbmsgIzEJKi8KIAotI2RlZmluZSBDRkdfRkxBU0gJCUZMQVNIX0JBU0UwX1BSRUxJTQotI2RlZmluZSBDRkdfU1JBTQkJMHhGMTAwMDAwMAotI2RlZmluZSBDRkdfRlBHQQkJMHhGMjAwMDAwMAotI2RlZmluZSBDRkdfQ0YxCQkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfQ0YyCQkJMHhGMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNICQlGTEFTSF9CQVNFMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNCQkweEYxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQQkJMHhGMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NGMQkJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DRjIJCQkweEYwMTAwMDAwCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCwgTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4MDIwMTAwMDAJLyogVFdUPTQsT0VOPTEJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkoQ0ZHX0ZMQVNIIHwgMHgxODAwMCkgLyogQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDAyMDEwMDAwCS8qIFRXVD00LE9FTj0xCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShDT05GSUdfU1lTX0ZMQVNIIHwgMHgxODAwMCkgLyogQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKFNSQU0pIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHgwMTgxMDA0MAkvKiBUV1Q9MyxPRU49MSxCRU09MQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJKENGR19TUkFNIHwgMHg1QTAwMCkgLyogQlM9NE1CLEJVPVIvVyxCVz0xNmJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHgwMTgxMDA0MAkvKiBUV1Q9MyxPRU49MSxCRU09MQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCShDT05GSUdfU1lTX1NSQU0gfCAweDVBMDAwKSAvKiBCUz00TUIsQlU9Ui9XLEJXPTE2Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDIgKEZQR0EpIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMTAxMDQ0MAkvKiBUV1Q9MixPRU49MSxUSD0yLEJFTT0xCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCShDRkdfRlBHQSB8IDB4NUEwMDApIC8qIEJTPTRNQixCVT1SL1csQlc9MTZiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDEwMTA0NDAJLyogVFdUPTIsT0VOPTEsVEg9MixCRU09MQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJKENPTkZJR19TWVNfRlBHQSB8IDB4NUEwMDApIC8qIEJTPTRNQixCVT1SL1csQlc9MTZiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMyAoQ29tcGFjdEZsYXNoKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwODBCRDQwMAotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkoQ0ZHX0NGMSB8IDB4MUEwMDApIC8qIEJTPTFNQixCVT1SL1csQlc9MTZiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDgwQkQ0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCShDT05GSUdfU1lTX0NGMSB8IDB4MUEwMDApIC8qIEJTPTFNQixCVT1SL1csQlc9MTZiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgNCAoQ29tcGFjdEZsYXNoKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRBUAkJMHgwODBCRDQwMAotI2RlZmluZSBDRkdfRUJDX1BCNENSCQkoQ0ZHX0NGMiB8IDB4MUEwMDApIC8qIEJTPTFNQixCVT1SL1csQlc9MTZiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJCTB4MDgwQkQ0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0Q1IJCShDT05GSUdfU1lTX0NGMiB8IDB4MUEwMDApIC8qIEJTPTFNQixCVT1SL1csQlc9MTZiaXQJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUFBDNDQwIEdQSU8gQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR180eHhfR1BJT19UQUJMRSB7IC8qCSAgT3V0CQkgICAgICAgR1BJTwlBbHRlcm5hdGUxCUFsdGVybmF0ZTIgICBBbHRlcm5hdGUzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU180eHhfR1BJT19UQUJMRSB7IC8qCSAgT3V0CQkgICAgICAgR1BJTwlBbHRlcm5hdGUxCUFsdGVybmF0ZTIgICBBbHRlcm5hdGUzICovIFwKIHsJCQkJCQkJCQkJCVwKIC8qIEdQSU8gQ29yZSAwICovCQkJCQkJCQkJXAoge0dQSU8wX0JBU0UsIEdQSU9fT1VULCBHUElPX1NFTCwgR1BJT19PVVRfTk9fQ0hHfSwgIC8qIEdQSU8wCUVCQ19BRERSKDcpCURNQV9SRVEoMikJKi8gXApAQCAtNDYyLDIzICs0NjIsMjMgQEAKICN1bmRlZiAgQ09ORklHX0lERV84eHhfRElSRUNUCQkvKiBEaXJlY3QgSURFICAgIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZiAgQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cwkqLwogCiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAkxCiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJMQogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19DRjEKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfQ0YxCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMAogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKENGR19BVEFfREFUQV9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCSgweDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJKDB4MDAwMCkKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9wY3VfZS5oIGIvaW5jbHVkZS9jb25maWdzL3BjdV9lLmgKaW5kZXggNjY0YTg4NS4uOTIxNDUxOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3BjdV9lLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3BjdV9lLmgKQEAgLTYxLDcgKzYxLDcgQEAKIAkiYm9vdG0iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTc1LDggKzc1LDggQEAKICNkZWZpbmUJQ09ORklHX1NQSV9YCQkJLyogMTYgYml0IEVFUFJPTSBhZGRyZXNzaW5nCSovCiAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtODcsNyArODcsNyBAQAogICogZmFyIGVub3VnaCBmcm9tIHRoZSBzdGFydCBvZiB0aGUgZGF0YSBhcmVhIChhcyB3ZWxsIGFzIGZyb20gdGhlCiAgKiBzdGFjayBwb2ludGVyKS4KICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSNkZWZpbmUgQ0ZHX1NQSV9JTklUX09GRlNFVAkJMHhCMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TUElfSU5JVF9PRkZTRVQJCTB4QjAwCiAKIAogLyoKQEAgLTExNCw2MCArMTE0LDYwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEYwMDAwMAkvKiAxIC4uLiAxNU1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwRjAwMDAwCS8qIDEgLi4uIDE1TUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfUElPX01PREUJCTAJLyogSURFIGludGVyZmFjZSBpbiBQSU8gTW9kZSAwCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUElPX01PREUJCTAJLyogSURFIGludGVyZmFjZSBpbiBQSU8gTW9kZSAwCSovCiAKIC8qIEV0aGVybmV0IGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gZG9uZSB1c2luZyBwb3J0IHBpbnMgKi8KLSNkZWZpbmUgQ0ZHX1BCX0VUSF9SRVNFVAkweDAwMDAwMDIwCQkvKiBQQiAyNgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCX0VUSF9SRVNFVAkweDAwMDAwMDIwCQkvKiBQQiAyNgkqLwogI2lmIFBDVV9FX1dJVEhfU1dBUFBFRF9DUyAvKiBYWFggKi8KLSNkZWZpbmUgQ0ZHX1BBX0VUSF9NRERJUwkweDQwMDAJCQkvKiBQQSAgMQkqLwotI2RlZmluZSBDRkdfUEJfRVRIX1BPV0VSRE9XTgkweDAwMDAwODAwCQkvKiBQQiAyMAkqLwotI2RlZmluZSBDRkdfUEJfRVRIX0NGRzEJCTB4MDAwMDA0MDAJCS8qIFBCIDIxCSovCi0jZGVmaW5lIENGR19QQl9FVEhfQ0ZHMgkJMHgwMDAwMDIwMAkJLyogUEIgMjIJKi8KLSNkZWZpbmUgQ0ZHX1BCX0VUSF9DRkczCQkweDAwMDAwMTAwCQkvKiBQQiAyMwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BBX0VUSF9NRERJUwkweDQwMDAJCQkvKiBQQSAgMQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCX0VUSF9QT1dFUkRPV04JMHgwMDAwMDgwMAkJLyogUEIgMjAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9FVEhfQ0ZHMQkJMHgwMDAwMDQwMAkJLyogUEIgMjEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9FVEhfQ0ZHMgkJMHgwMDAwMDIwMAkJLyogUEIgMjIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9FVEhfQ0ZHMwkJMHgwMDAwMDEwMAkJLyogUEIgMjMJKi8KICNlbHNlIC8qIFhYWCAqLwotI2RlZmluZSBDRkdfUEJfRVRIX01ERElTCTB4MDAwMDAwMTAJCS8qIFBCIDI3CSovCi0jZGVmaW5lIENGR19QQl9FVEhfUE9XRVJET1dOCTB4MDAwMDAxMDAJCS8qIFBCIDIzCSovCi0jZGVmaW5lIENGR19QQl9FVEhfQ0ZHMQkJMHgwMDAwMDIwMAkJLyogUEIgMjIJKi8KLSNkZWZpbmUgQ0ZHX1BCX0VUSF9DRkcyCQkweDAwMDAwNDAwCQkvKiBQQiAyMQkqLwotI2RlZmluZSBDRkdfUEJfRVRIX0NGRzMJCTB4MDAwMDA4MDAJCS8qIFBCIDIwCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJfRVRIX01ERElTCTB4MDAwMDAwMTAJCS8qIFBCIDI3CSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJfRVRIX1BPV0VSRE9XTgkweDAwMDAwMTAwCQkvKiBQQiAyMwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCX0VUSF9DRkcxCQkweDAwMDAwMjAwCQkvKiBQQiAyMgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCX0VUSF9DRkcyCQkweDAwMDAwNDAwCQkvKiBQQiAyMQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCX0VUSF9DRkczCQkweDAwMDAwODAwCQkvKiBQQiAyMAkqLwogI2VuZGlmIC8qIFhYWCAqLwogCiAvKiBFdGhlcm5ldCBzZXR0aW5nczoKICAqIE1ESU8gZW5hYmxlZCwgYXV0b25lZ290aWF0aW9uLCAxMC8xMDBNYnBzLCBoYWxmL2Z1bGwgZHVwbGV4CiAgKi8KLSNkZWZpbmUgQ0ZHX0VUSF9NRERJU19WQUxVRQkwCi0jZGVmaW5lIENGR19FVEhfQ0ZHMV9WQUxVRQkxCi0jZGVmaW5lIENGR19FVEhfQ0ZHMl9WQUxVRQkxCi0jZGVmaW5lIENGR19FVEhfQ0ZHM19WQUxVRQkxCisjZGVmaW5lIENPTkZJR19TWVNfRVRIX01ERElTX1ZBTFVFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19FVEhfQ0ZHMV9WQUxVRQkxCisjZGVmaW5lIENPTkZJR19TWVNfRVRIX0NGRzJfVkFMVUUJMQorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9DRkczX1ZBTFVFCTEKIAogLyogUFVNQSBjb25maWd1cmF0aW9uICovCiAjaWYgUENVX0VfV0lUSF9TV0FQUEVEX0NTIC8qIFhYWCAqLwotI2RlZmluZSBDRkdfUEJfUFVNQV9QUk9HCTB4MDAwMDAwMTAJCS8qIFBCIDI3CSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJfUFVNQV9QUk9HCTB4MDAwMDAwMTAJCS8qIFBCIDI3CSovCiAjZWxzZSAvKiBYWFggKi8KLSNkZWZpbmUgQ0ZHX1BBX1BVTUFfUFJPRwkweDQwMDAJCQkvKiBQQSAgMQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BBX1BVTUFfUFJPRwkweDQwMDAJCQkvKiBQQSAgMQkqLwogI2VuZGlmIC8qIFhYWCAqLwotI2RlZmluZSBDRkdfUENfUFVNQV9ET05FCTB4MDAwOAkJCS8qIFBDIDEyCSovCi0jZGVmaW5lIENGR19QQ19QVU1BX0lOSVQJMHgwMDA0CQkJLyogUEMgMTMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ19QVU1BX0RPTkUJMHgwMDA4CQkJLyogUEMgMTIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ19QVU1BX0lOSVQJMHgwMDA0CQkJLyogUEMgMTMJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE3Nyw1MyArMTc3LDUzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZFMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQWRkcmVzcyBhY2Nlc3NlZCB0byByZXNldCB0aGUgYm9hcmQgLSBtdXN0IG5vdCBiZSBtYXBwZWQvYXNzaWduZWQKICAqLwotI2RlZmluZQlDRkdfUkVTRVRfQUREUkVTUwkweEZFRkZGRkZGCisjZGVmaW5lCUNPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweEZFRkZGRkZGCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAogLyogdGhpcyBpcyBhbiB1Z2x5IGhhY2sgbmVlZGVkIGJlY2F1c2Ugb2YgdGhlIHNpbGx5IG5vbi1jb25zdGFudCBhZGRyZXNzIG1hcCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJKDAtZmxhc2hfaW5mb1swXS5zaXplLWZsYXNoX2luZm9bMV0uc2l6ZSkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkoMC1mbGFzaF9pbmZvWzBdLnNpemUtZmxhc2hfaW5mb1sxXS5zaXplKQogCiAjaWYgZGVmaW5lZChERUJVRykKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTYwCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTE2MAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxODAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTE4MDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2lmIDAKIC8qIFN0YXJ0IHBvcnQgd2l0aCBlbnZpcm9ubWVudCBpbiBmbGFzaDsgc3dpdGNoIHRvIFNQSSBFRVBST00gbGF0ZXIgKi8KQEAgLTIzNSw4ICsyMzUsOCBAQAogI2Vsc2UKIC8qIEZpbmFsIHZlcnNpb246IGVudmlyb25tZW50IGluIEVFUFJPTSAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0VFUFJPTQkxCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkyCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTIKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTEwMjQKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkxMDI0CiAjZW5kaWYKQEAgLTI0NCw4ICsyNDQsOCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU1lQQ1IgLSBTeXN0ZW0gUHJvdGVjdGlvbiBDb250cm9sCQkJCTExLTkKQEAgLTI1NCwxMCArMjU0LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjgsMjEgKzI2OCwyMSBAQAogICogQXN5bmNocm9ub3VzIGV4dGVybmFsIG1hc3RlciBlbmFibGUuCiAgKi8KIC8qID0+IDB4NzA2MDAyMDAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0VBUlA3IHwgU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9BRU1FKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0VBUlA3IHwgU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9BRU1FKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjkxLDE1ICsyOTEsMTUgQEAKICAqIGludGVycnVwdCBzdGF0dXMgYml0LCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciAhCiAgKi8KIC8qIDB4MDAwMDQwODAgKi8KLSNkZWZpbmUJQ0ZHX1BMUFJDUl9NRgkwCS8qICgwKzEpICogNTAgPSA1MCBNSHogQ2xvY2sgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkJCQkJCQlcCi0JCSgJKENGR19QTFBSQ1JfTUYgPDwgUExQUkNSX01GX1NISUZUKSB8CQlcCisjZGVmaW5lCUNPTkZJR19TWVNfUExQUkNSX01GCTAJLyogKDArMSkgKiA1MCA9IDUwIE1IeiBDbG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkJCQkJCQlcCisJCSgJKENPTkZJR19TWVNfUExQUkNSX01GIDw8IFBMUFJDUl9NRl9TSElGVCkgfAkJXAogCQkJUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUIHwJXAogCQkJLypQTFBSQ1JfQ1NSQ3wqLyBQTFBSQ1JfTFBNX05PUk1BTCB8CQlcCiAJCQlQTFBSQ1JfQ1NSICAgIC8qfCBQTFBSQ1JfTE9MUkV8UExQUkNSX0ZJT1BEKi8JXAogCQkpCiAKLSNkZWZpbmUJQ09ORklHXzh4eF9HQ0xLX0ZSRVEJKChDRkdfUExQUkNSX01GKzEpKjUwMDAwMDAwKQorI2RlZmluZQlDT05GSUdfOHh4X0dDTEtfRlJFUQkoKENPTkZJR19TWVNfUExQUkNSX01GKzEpKjUwMDAwMDAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzExLDcgKzMxMSw3IEBACiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCiAvKiAweDAxODAwMDAwICovCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTAwCXwgLypTQ0NSX1RCU3wqLwkJXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMDAJfCAvKlNDQ1JfVEJTfCovCQlcCiAJCQkgU0NDUl9SVERJVgl8ICAgU0NDUl9SVFNFTAkgIHwJXAogCQkJIC8qU0NDUl9DUlFFTnwqLyAgLypTQ0NSX1BSUUVOfCovCVwKIAkJCSBTQ0NSX0VCREYwMCB8ICAgU0NDUl9ERlNZTkMwMCB8CVwKQEAgLTMyOCwzNCArMzI4LDM0IEBACiAgKiBEb24ndCBleHBlY3QgdGhlICJkYXRlIiBjb21tYW5kIHRvIHdvcmsgd2l0aG91dCBhIDMya0h6IGNsb2NrIGlucHV0IQogICovCiAvKiAweDAwQzMgPT4gMHgwMDAzICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiBSZWdpc3RlcgkJMTktNAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SQ0NSIDB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgMHgwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNRFMgLSBSSVNDIE1pY3JvY29kZSBEZXZlbG9wbWVudCBTdXBwb3J0IENvbnRyb2wgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUk1EUyAwCisjZGVmaW5lIENPTkZJR19TWVNfUk1EUyAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKiBJbnRlcnJ1cHQgTGV2ZWxzCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0NQTV9JTlRFUlJVUFQJMTMJLyogU0lVX0xFVkVMNgkqLworI2RlZmluZSBDT05GSUdfU1lTX0NQTV9JTlRFUlJVUFQJMTMJLyogU0lVX0xFVkVMNgkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM3NCwyNyArMzc0LDI3IEBACiAgKiB1c2VkIHRvIHJlLW1hcCBGTEFTSDogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCBidXQgbm90IHRvbyBtdWNoIHRvCiAgKiBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHhGRjgwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IENTTlQgPSAwLCBBQ1MgPSAwMCwgU0NZID0gOCwgRUhUUiA9IDEJCQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9TQ1lfOF9DTEsgfCBPUl9FSFRSKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfU0NZXzhfQ0xLIHwgT1JfRUhUUikKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCSggQ0ZHX1JFTUFQX09SX0FNIHwgT1JfQUNTX0RJVjEgfCBPUl9CSSB8IFwKLQkJCQlDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCi0JCQkJQ0ZHX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKCBDT05GSUdfU1lTX1JFTUFQX09SX0FNIHwgT1JfQUNTX0RJVjEgfCBPUl9CSSB8IFwKKwkJCQlDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCisJCQkJQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCiAvKiAxNiBiaXQsIGJhbmsgdmFsaWQgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCiAKICNpZiBQQ1VfRV9XSVRIX1NXQVBQRURfQ1MgLyogWFhYICovCi0jZGVmaW5lIENGR19PUjZfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1I2X1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlI2X1BSRUxJTQkoKEZMQVNIX0JBU0U2X1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SNl9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SNl9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTQkoKEZMQVNIX0JBU0U2X1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQogI2Vsc2UgLyogWFhYICovCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQogI2VuZGlmIC8qIFhYWCAqLwogCiAvKgpAQCAtNDEzLDExICs0MTMsMTEgQEAKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIFNEUkFNICovCiAKICNpZiBQQ1VfRV9XSVRIX1NXQVBQRURfQ1MgLyogWFhYICovCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCShTRFJBTV9QUkVMSU1fT1JfQU0gfCBTRFJBTV9USU1JTkcgKQotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkoKFNEUkFNX0JBU0U1X1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkoU0RSQU1fUFJFTElNX09SX0FNIHwgU0RSQU1fVElNSU5HICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCSgoU0RSQU1fQkFTRTVfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlIC8qIFhYWCAqLwotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoU0RSQU1fUFJFTElNX09SX0FNIHwgU0RSQU1fVElNSU5HICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKFNEUkFNX1BSRUxJTV9PUl9BTSB8IFNEUkFNX1RJTUlORyApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAjZW5kaWYgLyogWFhYICovCiAKIC8qCkBAIC00MjksMTEgKzQyOSwxMSBAQAogI2RlZmluZSBDQU5fQ1RSTFJfVElNSU5HCShPUl9CSSB8IE9SX1NDWV84X0NMSyB8IE9SX1NFVEEgfCBPUl9FSFRSKQogCiAjaWYgUENVX0VfV0lUSF9TV0FQUEVEX0NTIC8qIFhYWCAqLwotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkJKChDQU5fQ1RSTFJfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JCShDQU5fQ1RSTFJfT1JfQU0gfCBDQU5fQ1RSTFJfVElNSU5HKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0JCSgoQ0FOX0NUUkxSX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkJKENBTl9DVFJMUl9PUl9BTSB8IENBTl9DVFJMUl9USU1JTkcpCiAjZWxzZSAvKiBYWFggKi8KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCSgoQ0FOX0NUUkxSX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YpCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQkoQ0FOX0NUUkxSX09SX0FNIHwgQ0FOX0NUUkxSX1RJTUlORykKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkoKENBTl9DVFJMUl9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCShDQU5fQ1RSTFJfT1JfQU0gfCBDQU5fQ1RSTFJfVElNSU5HKQogI2VuZGlmIC8qIFhYWCAqLwogCiAvKgpAQCAtNDYxLDExICs0NjEsMTEgQEAKICNkZWZpbmUgUFVNQV9DT05GX09SX1JFQUQJKFBVTUFfQ09ORl9PUl9BTSB8IFBVTUFfQ09ORl9SRUFEX1RJTUlORykKIAogI2lmIFBDVV9FX1dJVEhfU1dBUFBFRF9DUyAvKiBYWFggKi8KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCVBVTUFfQ09ORl9CUl9SRUFECi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQlQVU1BX0NPTkZfT1JfUkVBRAorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCVBVTUFfQ09ORl9CUl9SRUFECisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkJUFVNQV9DT05GX09SX1JFQUQKICNlbHNlIC8qIFhYWCAqLwotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkJUFVNQV9DT05GX0JSX1JFQUQKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JCVBVTUFfQ09ORl9PUl9SRUFECisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkJUFVNQV9DT05GX0JSX1JFQUQKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCQlQVU1BX0NPTkZfT1JfUkVBRAogI2VuZGlmIC8qIFhYWCAqLwogCiAvKgpAQCAtNDc3LDExICs0NzcsMTEgQEAKICNkZWZpbmUgUFVNQV9TTUE4X1RJTUlORwkoT1JfQkkgfCBPUl9TQ1lfMF9DTEsgfCBPUl9FSFRSKQogCiAjaWYgUENVX0VfV0lUSF9TV0FQUEVEX0NTIC8qIFhYWCAqLwotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJKChQVU1BX1NNQThfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCShQVU1BX1NNQThfT1JfQU0gfCBQVU1BX1NNQThfVElNSU5HIHwgT1JfU0VUQSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkoKFBVTUFfU01BOF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCShQVU1BX1NNQThfT1JfQU0gfCBQVU1BX1NNQThfVElNSU5HIHwgT1JfU0VUQSkKICNlbHNlIC8qIFhYWCAqLwotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJKChQVU1BX1NNQThfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JCShQVU1BX1NNQThfT1JfQU0gfCBQVU1BX1NNQThfVElNSU5HIHwgT1JfU0VUQSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCQkoKFBVTUFfU01BOF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JCShQVU1BX1NNQThfT1JfQU0gfCBQVU1BX1NNQThfVElNSU5HIHwgT1JfU0VUQSkKICNlbmRpZiAvKiBYWFggKi8KIAogLyoKQEAgLTQ5MywxMSArNDkzLDExIEBACiAjZGVmaW5lIFBVTUFfU01BMTZfVElNSU5HCShPUl9CSSB8IE9SX1NDWV8wX0NMSyB8IE9SX0VIVFIpCiAKICNpZiBQQ1VfRV9XSVRIX1NXQVBQRURfQ1MgLyogWFhYICovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCQkoKFBVTUFfU01BMTZfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YpCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkoUFVNQV9TTUExNl9PUl9BTSB8IFBVTUFfU01BMTZfVElNSU5HIHwgT1JfU0VUQSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkoKFBVTUFfU01BMTZfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJKFBVTUFfU01BMTZfT1JfQU0gfCBQVU1BX1NNQTE2X1RJTUlORyB8IE9SX1NFVEEpCiAjZWxzZSAvKiBYWFggKi8KLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JCSgoUFVNQV9TTUExNl9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfVikKLSNkZWZpbmUgQ0ZHX09SNl9QUkVMSU0JCShQVU1BX1NNQTE2X09SX0FNIHwgUFVNQV9TTUExNl9USU1JTkcgfCBPUl9TRVRBKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNl9QUkVMSU0JCSgoUFVNQV9TTUExNl9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjZfUFJFTElNCQkoUFVNQV9TTUExNl9PUl9BTSB8IFBVTUFfU01BMTZfVElNSU5HIHwgT1JfU0VUQSkKICNlbmRpZiAvKiBYWFggKi8KIAogLyoKQEAgLTUwOCwxNSArNTA4LDE1IEBACiAjZGVmaW5lIFBVTUFfRkxBU0hfT1JfQU0JMHhGRTAwMDAwMAkvKiAzMiBNQiAqLwogI2RlZmluZSBQVU1BX0ZMQVNIX1RJTUlORwkoT1JfQkkgfCBPUl9TQ1lfMF9DTEsgfCBPUl9FSFRSKQogCi0jZGVmaW5lIENGR19CUjdfUFJFTElNCQkoKFBVTUFfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YpCi0jZGVmaW5lIENGR19PUjdfUFJFTElNCQkoUFVNQV9GTEFTSF9PUl9BTSB8IFBVTUFfRkxBU0hfVElNSU5HIHwgT1JfU0VUQSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjdfUFJFTElNCQkoKFBVTUFfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1I3X1BSRUxJTQkJKFBVTUFfRkxBU0hfT1JfQU0gfCBQVU1BX0ZMQVNIX1RJTUlORyB8IE9SX1NFVEEpCiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyCiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01QVFBSCTB4MDIwMAorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCTB4MDIwMAogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KQEAgLTUyNSw5ICs1MjUsOSBAQAogICogMHgzMDkwNDExNCA9IC0gIiAtIHwgUGVyaW9kaWMgVGltZXIgQSBFbmFibGUsIE1BTVJfVExGQl80WAogICovCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTUFNUl9QVEEJMHgzMAkvKiA9IDQ4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJMHgzMAkvKiA9IDQ4ICovCiAKLSNkZWZpbmUgQ0ZHX01BTVIJKCAoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SCSggKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpIHwgXAogCQkJICBNQU1SX0FNQV9UWVBFXzEJfCBcCiAJCQkgIE1BTVJfRzBDTEFfQTEwCXwgXAogCQkJICBNQU1SX1JMRkFfMVgJCXwgXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3BkbmIzLmggYi9pbmNsdWRlL2NvbmZpZ3MvcGRuYjMuaAppbmRleCA4NTY5MTdlLi44Yjc4OTBlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcGRuYjMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvcGRuYjMuaApAQCAtNDUsNyArNDUsNyBAQAogI2RlZmluZSBDT05GSUdfSEFTX0VUSDEKICNkZWZpbmUgQ09ORklHX1BIWTFfQUREUgkxOAkvKiBOUEUxIFBIWSBhZGRyZXNzCQkqLwogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLwogCiAvKgogICogTWlzYyBjb25maWd1cmF0aW9uIG9wdGlvbnMKQEAgLTUzLDcgKzUzLDcgQEAKICNkZWZpbmUgQ09ORklHX1VTRV9JUlEgICAgICAgICAgMQkvKiB3ZSBuZWVkIElSUSBzdHVmZiBmb3IgdGltZXIJKi8KIAogI2RlZmluZSBDT05GSUdfQk9PVENPVU5UX0xJTUlUCQkvKiBzdXBwb3J0IGZvciBib290Y291bnQgbGltaXQJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RDT1VOVF9BRERSCTB4NjAwMDMwMDAgLyogaW5zaWRlIHFtcmcgc3JhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ09VTlRfQUREUgkweDYwMDAzMDAwIC8qIGluc2lkZSBxbXJnIHNyYW0JCSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfVEFHCTEJLyogZW5hYmxlIHBhc3Npbmcgb2YgQVRBR3MJKi8KICNkZWZpbmUgQ09ORklHX1NFVFVQX01FTU9SWV9UQUdTIDEKQEAgLTYyLDE0ICs2MiwxNCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMSA8PCAyMCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxIDw8IDIwKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKiBhbGxvdyB0byBvdmVyd3JpdGUgc2VyaWFsIGFuZCBldGhhZGRyICovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFICAgICAgICAgMTE1MjAwCi0jZGVmaW5lIENGR19JWFA0MjVfQ09OU09MRQlJWFA0MjVfVUFSVDEgICAvKiB3ZSB1c2UgVUFSVDEgZm9yIGNvbnNvbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JWFA0MjVfQ09OU09MRQlJWFA0MjVfVUFSVDEgICAvKiB3ZSB1c2UgVUFSVDEgZm9yIGNvbnNvbGUgKi8KIAogCiAvKgpAQCAtMTA1LDIxICsxMDUsMjEgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVCAgICAgICAgICAgICAgIj0+ICIgICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICAgICovCi0jZGVmaW5lIENGR19DQlNJWkUgICAgICAgICAgICAgIDI1NiAgICAgICAgICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUyAgICAgICAgICAgICAxNiAgICAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUgICAgICAgICAgICBDRkdfQ0JTSVpFICAgICAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQgICAgICAgICAgICAgICI9PiAiICAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRSAgICAgICAgICAgICAgMjU2ICAgICAgICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUyAgICAgICAgICAgICAxNiAgICAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFICAgICAgICAgICAgQ09ORklHX1NZU19DQlNJWkUgICAgICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAgICAgMHgwMDQwMDAwMCAgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORCAgICAgICAgIDB4MDA4MDAwMDAgICAgICAvKiA0IC4uLiA4IE1CIGluIERSQU0gICAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSICAgICAgICAgICAweDAwMDEwMDAwICAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgICAgIDB4MDA0MDAwMDAgICAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5EICAgICAgICAgMHgwMDgwMDAwMCAgICAgIC8qIDQgLi4uIDggTUIgaW4gRFJBTSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSICAgICAgICAgICAweDAwMDEwMDAwICAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWiAgICAgICAgICAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haICAgICAgICAgIC8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBTdGFjayBzaXplcwpAQCAtMTg4LDY0ICsxODgsNjQgQEAKICNkZWZpbmUgUEhZU19TRFJBTV8xICAgICAgICAgICAgMHgwMDAwMDAwMCAvKiBTRFJBTSBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfU0RSQU1fMV9TSVpFICAgICAgIDB4MDIwMDAwMDAgLyogMzIgTUIgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRSAgICAgICAgICAweDUwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFICAgICAgICAgIDB4NTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCiAjaWYgZGVmaW5lZChDT05GSUdfU0NQVSkKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoNTA0IDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoNTA0IDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCiAKIC8qCiAgKiBFeHBhbnNpb24gYnVzIHNldHRpbmdzCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19TQ1BVKQotI2RlZmluZSBDRkdfRVhQX0NTMAkJMHg5NGQyM0M0MgkvKiA4Yml0LCBtYXggc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFBfQ1MwCQkweDk0ZDIzQzQyCS8qIDhiaXQsIG1heCBzaXplCQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0VYUF9DUzAJCTB4OTQ5MTNDNDMJLyogOGJpdCwgbWF4IHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhQX0NTMAkJMHg5NDkxM0M0MwkvKiA4Yml0LCBtYXggc2l6ZQkJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfRVhQX0NTMQkJMHg4NTAwMDA0MwkvKiA4Yml0LCA1MTJieXRlcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFBfQ1MxCQkweDg1MDAwMDQzCS8qIDhiaXQsIDUxMmJ5dGVzCQkqLwogCiAvKgogICogU0RSQU0gc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfU0RSX0NPTkZJRwkJMHgxOAotI2RlZmluZSBDRkdfU0RSX01PREVfQ09ORklHCTB4MQotI2RlZmluZSBDRkdfU0RSQU1fUkVGUkVTSF9DTlQJMHg4MWEKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJfQ09ORklHCQkweDE4CisjZGVmaW5lIENPTkZJR19TWVNfU0RSX01PREVfQ09ORklHCTB4MQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1JFRlJFU0hfQ05UCTB4ODFhCiAKIC8qCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19TQ1BVKQotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQJLyogbm8gYnl0ZSB3cml0ZXMgb24gSVhQNHh4CSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAkvKiBubyBieXRlIHdyaXRlcyBvbiBJWFA0eHgJKi8KICNlbmRpZgogCi0jZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRQkJLyogRkxBU0ggYmFuayAjMAkqLworI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCQkvKiBGTEFTSCBiYW5rICMwCSovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIGNoYXIJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKIAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKICNpZiBkZWZpbmVkKENPTkZJR19TQ1BVKQogLyogbm8gcmVkdW5kYW50IGVudmlyb25tZW50IG9uIFNDUFUgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMCAvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJCSovCkBAIC0yNjMsOSArMjYzLDkgQEAKIC8qCiAgKiBOQU5ELUZMQVNIIHN0dWZmCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEKICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCTEKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkJMHg1MTAwMDAwMAkvKiBOQU5EIEZMQVNIIEJhc2UgQWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJMHg1MTAwMDAwMAkvKiBOQU5EIEZMQVNIIEJhc2UgQWRkcmVzcwkqLwogI2VuZGlmCiAKIC8qCkBAIC0yNzMsMjIgKzI3MywyMiBAQAogICovCiAKIC8qIEZQR0EgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfR1BJT19QUkcJCTEyCQkvKiBGUEdBIHByb2dyYW0gcGluIChjcHUgb3V0cHV0KSovCi0jZGVmaW5lIENGR19HUElPX0NMSwkJMTAJCS8qIEZQR0EgY2xrIHBpbiAoY3B1IG91dHB1dCkgICAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fREFUQQkJMTQJCS8qIEZQR0EgZGF0YSBwaW4gKGNwdSBvdXRwdXQpICAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fSU5JVAkJMTMJCS8qIEZQR0EgaW5pdCBwaW4gKGNwdSBpbnB1dCkgICAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fRE9ORQkJMTEJCS8qIEZQR0EgZG9uZSBwaW4gKGNwdSBpbnB1dCkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BSRwkJMTIJCS8qIEZQR0EgcHJvZ3JhbSBwaW4gKGNwdSBvdXRwdXQpKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0NMSwkJMTAJCS8qIEZQR0EgY2xrIHBpbiAoY3B1IG91dHB1dCkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0RBVEEJCTE0CQkvKiBGUEdBIGRhdGEgcGluIChjcHUgb3V0cHV0KSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19JTklUCQkxMwkJLyogRlBHQSBpbml0IHBpbiAoY3B1IGlucHV0KSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fRE9ORQkJMTEJCS8qIEZQR0EgZG9uZSBwaW4gKGNwdSBpbnB1dCkgICAgKi8KIAogLyogb3RoZXIgR1BJTydzICovCi0jZGVmaW5lIENGR19HUElPX1JFU1RPUkVfSU5UCTAKLSNkZWZpbmUgQ0ZHX0dQSU9fUkVTVEFSVF9JTlQJMQotI2RlZmluZSBDRkdfR1BJT19TWVNfUlVOTklORwkyCi0jZGVmaW5lIENGR19HUElPX1BDSV9JTlRBCTMKLSNkZWZpbmUgQ0ZHX0dQSU9fUENJX0lOVEIJNAotI2RlZmluZSBDRkdfR1BJT19JMkNfU0NMCTYKLSNkZWZpbmUgQ0ZHX0dQSU9fSTJDX1NEQQk3Ci0jZGVmaW5lIENGR19HUElPX0ZQR0FfUkVTRVQJOQotI2RlZmluZSBDRkdfR1BJT19DTEtfMzNNCTE1CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19SRVNUT1JFX0lOVAkwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19SRVNUQVJUX0lOVAkxCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19TWVNfUlVOTklORwkyCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19QQ0lfSU5UQQkzCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19QQ0lfSU5UQgk0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19JMkNfU0NMCTYKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0kyQ19TREEJNworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fRlBHQV9SRVNFVAk5CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19DTEtfMzNNCTE1CiAKIC8qCiAgKiBJMkMgc3R1ZmYKQEAgLTI5OCwyMyArMjk4LDIzIEBACiAjdW5kZWYJQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZQlDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJODMwMDAJLyogODMga0h6IGlzIHN1cHBvc2VkIHRvIHdvcmsJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHhGRQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODMwMDAJLyogODMga0h6IGlzIHN1cHBvc2VkIHRvIHdvcmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUKIAogLyoKICAqIFNvZnR3YXJlIChiaXQtYmFuZykgSTJDIGRyaXZlciBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgUEJfU0NMCQkoMSA8PCBDRkdfR1BJT19JMkNfU0NMKQotI2RlZmluZSBQQl9TREEJCSgxIDw8IENGR19HUElPX0kyQ19TREEpCisjZGVmaW5lIFBCX1NDTAkJKDEgPDwgQ09ORklHX1NZU19HUElPX0kyQ19TQ0wpCisjZGVmaW5lIFBCX1NEQQkJKDEgPDwgQ09ORklHX1NZU19HUElPX0kyQ19TREEpCiAKLSNkZWZpbmUgSTJDX0lOSVQJR1BJT19PVVRQVVRfRU5BQkxFKENGR19HUElPX0kyQ19TQ0wpCi0jZGVmaW5lIEkyQ19BQ1RJVkUJR1BJT19PVVRQVVRfRU5BQkxFKENGR19HUElPX0kyQ19TREEpCi0jZGVmaW5lIEkyQ19UUklTVEFURQlHUElPX09VVFBVVF9ESVNBQkxFKENGR19HUElPX0kyQ19TREEpCisjZGVmaW5lIEkyQ19JTklUCUdQSU9fT1VUUFVUX0VOQUJMRShDT05GSUdfU1lTX0dQSU9fSTJDX1NDTCkKKyNkZWZpbmUgSTJDX0FDVElWRQlHUElPX09VVFBVVF9FTkFCTEUoQ09ORklHX1NZU19HUElPX0kyQ19TREEpCisjZGVmaW5lIEkyQ19UUklTVEFURQlHUElPX09VVFBVVF9ESVNBQkxFKENPTkZJR19TWVNfR1BJT19JMkNfU0RBKQogI2RlZmluZSBJMkNfUkVBRAkoKCpJWFA0MjVfR1BJT19HUElOUiAmIFBCX1NEQSkgIT0gMCkKLSNkZWZpbmUgSTJDX1NEQShiaXQpCWlmIChiaXQpIEdQSU9fT1VUUFVUX1NFVChDRkdfR1BJT19JMkNfU0RBKTsJXAotCSAgICAgICAgICAgICAgICBlbHNlICAgICBHUElPX09VVFBVVF9DTEVBUihDRkdfR1BJT19JMkNfU0RBKQotI2RlZmluZSBJMkNfU0NMKGJpdCkJaWYgKGJpdCkgR1BJT19PVVRQVVRfU0VUKENGR19HUElPX0kyQ19TQ0wpOwlcCi0JCQllbHNlICAgICBHUElPX09VVFBVVF9DTEVBUihDRkdfR1BJT19JMkNfU0NMKQorI2RlZmluZSBJMkNfU0RBKGJpdCkJaWYgKGJpdCkgR1BJT19PVVRQVVRfU0VUKENPTkZJR19TWVNfR1BJT19JMkNfU0RBKTsJXAorCSAgICAgICAgICAgICAgICBlbHNlICAgICBHUElPX09VVFBVVF9DTEVBUihDT05GSUdfU1lTX0dQSU9fSTJDX1NEQSkKKyNkZWZpbmUgSTJDX1NDTChiaXQpCWlmIChiaXQpIEdQSU9fT1VUUFVUX1NFVChDT05GSUdfU1lTX0dQSU9fSTJDX1NDTCk7CVwKKwkJCWVsc2UgICAgIEdQSU9fT1VUUFVUX0NMRUFSKENPTkZJR19TWVNfR1BJT19JMkNfU0NMKQogI2RlZmluZSBJMkNfREVMQVkJdWRlbGF5KDMpCS8qIDEvNCBJMkMgY2xvY2sgZHVyYXRpb24gKi8KIAogLyoKQEAgLTMyMiwyOCArMzIyLDI4IEBACiAgKi8KICNpZiAwIC8qIHRlc3Qtb25seSAqLwogI2RlZmluZSBDT05GSUdfUlRDX0RTMTM0MAkxCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CiAjZWxzZQogLyogTTQxVDExIFNlcmlhbCBBY2Nlc3MgVGltZWtlZXBlcihSKSBTUkFNICovCiAjZGVmaW5lIENPTkZJR19SVENfTTQxVDExCTEKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4Ci0jZGVmaW5lIENGR19NNDFUMTFfQkFTRV9ZRUFSCTE5MDAJLyogcGxheSBhbG9uZyB3aXRoIHRoZSBsaW51eCBkcml2ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAorI2RlZmluZSBDT05GSUdfU1lTX000MVQxMV9CQVNFX1lFQVIJMTkwMAkvKiBwbGF5IGFsb25nIHdpdGggdGhlIGxpbnV4IGRyaXZlciAqLwogI2VuZGlmCiAKIC8qCiAgKiBTcGFydGFuMyBGUEdBIGNvbmZpZ3VyYXRpb24gc3VwcG9ydAogICovCi0jZGVmaW5lIENGR19GUEdBX01BWF9TSVpFCTcwMCoxMDI0CS8qIDcwMGtCeXRlIGZvciBYQzNTNTAwRQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUJNzAwKjEwMjQJLyogNzAwa0J5dGUgZm9yIFhDM1M1MDBFCSovCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHCSgxIDw8IENGR19HUElPX1BSRykJLyogRlBHQSBwcm9ncmFtIHBpbiAoY3B1IG91dHB1dCkqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJKDEgPDwgQ0ZHX0dQSU9fQ0xLKQkvKiBGUEdBIGNsayBwaW4gKGNwdSBvdXRwdXQpICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJKDEgPDwgQ0ZHX0dQSU9fREFUQSkJLyogRlBHQSBkYXRhIHBpbiAoY3B1IG91dHB1dCkgICAqLwotI2RlZmluZSBDRkdfRlBHQV9JTklUCSgxIDw8IENGR19HUElPX0lOSVQpCS8qIEZQR0EgaW5pdCBwaW4gKGNwdSBpbnB1dCkgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORQkoMSA8PCBDRkdfR1BJT19ET05FKQkvKiBGUEdBIGRvbmUgcGluIChjcHUgaW5wdXQpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJKDEgPDwgQ09ORklHX1NZU19HUElPX1BSRykJLyogRlBHQSBwcm9ncmFtIHBpbiAoY3B1IG91dHB1dCkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ0xLCSgxIDw8IENPTkZJR19TWVNfR1BJT19DTEspCS8qIEZQR0EgY2xrIHBpbiAoY3B1IG91dHB1dCkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RBVEEJKDEgPDwgQ09ORklHX1NZU19HUElPX0RBVEEpCS8qIEZQR0EgZGF0YSBwaW4gKGNwdSBvdXRwdXQpICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lOSVQJKDEgPDwgQ09ORklHX1NZU19HUElPX0lOSVQpCS8qIEZQR0EgaW5pdCBwaW4gKGNwdSBpbnB1dCkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJKDEgPDwgQ09ORklHX1NZU19HUElPX0RPTkUpCS8qIEZQR0EgZG9uZSBwaW4gKGNwdSBpbnB1dCkgICAgKi8KIAogLyoKICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogCiAjZW5kaWYgIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9wZjUyMDAuaCBiL2luY2x1ZGUvY29uZmlncy9wZjUyMDAuaAppbmRleCA2NmFkMDFmLi5iMmUyYTFjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcGY1MjAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3BmNTIwMC5oCkBAIC00NCw3ICs0NCw3IEBACiAjZGVmaW5lIENPTkZJR19QRjUyMDAJCTEJLyogLi4uIG9uIFBGNTIwMCAgYm9hcmQgKi8KICNkZWZpbmUgQ09ORklHX01QQzUyMDBfRERSCTEJLyogLi4uIHVzZSBERFIgUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAJLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMAkvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdAkgICAgICovCkBAIC01OSw3ICs1OSw3IEBACiAjZWxzZQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAJLyogLi4uIGF0IDExNTIwMCBicHMgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKICNpZmRlZiBDT05GSUdfTVBDNTIwMAkJLyogTVBDNTEwMCBQQ0kgaXMgbm90IHN1cHBvcnRlZCB5ZXQuICovCiAvKgpAQCAtODQsNyArODQsNyBAQAogI2lmIDAJCQkJLyogdGVzdC1vbmx5ICEhISAqLwogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCQkxCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CS8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMAkqLwogI2RlZmluZSBDT05GSUdfTlM4MzgyWAkJMQogI2VuZGlmCiAjZW5kaWYKQEAgLTEyNywxMiArMTI3LDEyIEBACiAKIAogI2lmIChURVhUX0JBU0UgPT0gMHhGRjAwMDAwMCkJLyogQm9vdCBsb3cgd2l0aCAxNiBNQiBGbGFzaCAqLwotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQotIyAgIGRlZmluZSBDRkdfTE9XQk9PVDE2CTEKKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UCQkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVDE2CTEKICNlbmRpZgogI2lmIChURVhUX0JBU0UgPT0gMHhGRjgwMDAwMCkJLyogQm9vdCBsb3cgd2l0aCAgOCBNQiBGbGFzaCAqLwotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQotIyAgIGRlZmluZSBDRkdfTE9XQk9PVDA4CTEKKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UCQkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVDA4CTEKICNlbmRpZgogCiAvKgpAQCAtMTcwLDM2ICsxNzAsMzYgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSN1bmRlZiBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjdW5kZWYgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KICNlbmRpZgogLyoKICAqIEkyQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJODYwMDAJLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk4NjAwMAkvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTIKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMJCTEKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDIwMDAwMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwMDAwMDAwKQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAyMDAwMDAwCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIKIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCkBAIC0yMjAsMjYgKzIyMCwyNiBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKIC8qIFVzZSBTUkFNIHVudGlsIFJBTSB3aWxsIGJlIGF2YWlsYWJsZSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0yNTUsNjIgKzI1NSw2MiBAQAogLyoKICAqIEdQSU8gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHgwMTA1MjQ0NAorI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDAxMDUyNDQ0CiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX1ZYV09SS1NfTUFDX1BUUgkweDAwMDAwMDAwCS8qIFBhc3MgRXRoZXJuZXQgTUFDIHRvIFZ4V29ya3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19WWFdPUktTX01BQ19QVFIJMHgwMDAwMDAwMAkvKiBQYXNzIEV0aGVybmV0IE1BQyB0byBWeFdvcmtzICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAjZWxzZQotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDRERDAwCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDRERDAwCiAKLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQlDRkdfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TVEFSVAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQogCi0jZGVmaW5lIENGR19DUzFfU1RBUlQJCTB4ZmQwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9TSVpFCQkweDAwMDEwMDAwCi0jZGVmaW5lIENGR19DUzFfQ0ZHCQkweDEwMTAxNDEwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUCQkweGZkMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NJWkUJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ0ZHCQkweDEwMTAxNDEwCiAKLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMworI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFVTQiBzdHVmZgpAQCAtMzMyLDcxICszMzIsNzEgQEAKICNkZWZpbmUJQ09ORklHX0lERV9SRVNFVAkvKiByZXNldCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1BSRUlOSVQKIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfQVRBX0RBVEFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCiAKIC8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzCQkJCQkJICAgICAqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJNAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJCTQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ1BMRCBzdHVmZgogICovCi0jZGVmaW5lIENGR19GUEdBX1hDOTVYTAkJMQkvKiB1c2luZyBYaWxpbnggWEM5NVhMIENQTEQJICovCi0jZGVmaW5lIENGR19GUEdBX01BWF9TSVpFCTMyKjEwMjQJLyogMzJrQnl0ZSBpcyBlbm91Z2ggZm9yIENQTEQJICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9YQzk1WEwJCTEJLyogdXNpbmcgWGlsaW54IFhDOTVYTCBDUExECSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUJMzIqMTAyNAkvKiAzMmtCeXRlIGlzIGVub3VnaCBmb3IgQ1BMRAkgKi8KIAogLyogQ1BMRCBwcm9ncmFtIHBpbiBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GUEdBX1BSRwkJMHgyMDAwMDAwMAkvKiBKVEFHIFRNUyBwaW4gKHBwYyBvdXRwdXQpCSAgICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MTAwMDAwMDAJLyogSlRBRyBUQ0sgcGluIChwcGMgb3V0cHV0KQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfREFUQQkJMHgyMDAwMDAwMAkvKiBKVEFHIFRETy0+VERJIGRhdGEgcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9ET05FCQkweDEwMDAwMDAwCS8qIEpUQUcgVERJLT5URE8gcGluIChwcGMgaW5wdXQpICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJCTB4MjAwMDAwMDAJLyogSlRBRyBUTVMgcGluIChwcGMgb3V0cHV0KQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSwkJMHgxMDAwMDAwMAkvKiBKVEFHIFRDSyBwaW4gKHBwYyBvdXRwdXQpCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfREFUQQkJMHgyMDAwMDAwMAkvKiBKVEFHIFRETy0+VERJIGRhdGEgcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORQkJMHgxMDAwMDAwMAkvKiBKVEFHIFRESS0+VERPIHBpbiAocHBjIGlucHV0KSAgICAgICAqLwogCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX1RNUwkoQ0ZHX01CQVIgKyAweEIxMCkJLyogSlRBRyBUTVMgcGluIChHUFMgZGF0YSBvdXQgdmFsdWUgcmVnLikgICAgICAqLwotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9UQ0sJKENGR19NQkFSICsgMHhDMEMpCS8qIEpUQUcgVENLIHBpbiAoR1BXIGRhdGEgb3V0IHZhbHVlIHJlZy4pICAgICAgKi8KLSNkZWZpbmUgSlRBR19HUElPX0FERFJfVERJCShDRkdfTUJBUiArIDB4QzBDKQkvKiBKVEFHIFRETy0+VERJIHBpbiAoR1BXIGRhdGEgb3V0IHZhbHVlIHJlZy4pICovCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX1RETwkoQ0ZHX01CQVIgKyAweEIxNCkJLyogSlRBRyBUREktPlRETyBwaW4gKEdQUyBkYXRhIGluIHZhbHVlIHJlZy4pICAqLworI2RlZmluZSBKVEFHX0dQSU9fQUREUl9UTVMJKENPTkZJR19TWVNfTUJBUiArIDB4QjEwKQkvKiBKVEFHIFRNUyBwaW4gKEdQUyBkYXRhIG91dCB2YWx1ZSByZWcuKSAgICAgICovCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX1RDSwkoQ09ORklHX1NZU19NQkFSICsgMHhDMEMpCS8qIEpUQUcgVENLIHBpbiAoR1BXIGRhdGEgb3V0IHZhbHVlIHJlZy4pICAgICAgKi8KKyNkZWZpbmUgSlRBR19HUElPX0FERFJfVERJCShDT05GSUdfU1lTX01CQVIgKyAweEMwQykJLyogSlRBRyBURE8tPlRESSBwaW4gKEdQVyBkYXRhIG91dCB2YWx1ZSByZWcuKSAqLworI2RlZmluZSBKVEFHX0dQSU9fQUREUl9URE8JKENPTkZJR19TWVNfTUJBUiArIDB4QjE0KQkvKiBKVEFHIFRESS0+VERPIHBpbiAoR1BTIGRhdGEgaW4gdmFsdWUgcmVnLikgICovCiAKLSNkZWZpbmUgSlRBR19HUElPX0FERFJfQ0ZHCShDRkdfTUJBUiArIDB4QjAwKQorI2RlZmluZSBKVEFHX0dQSU9fQUREUl9DRkcJKENPTkZJR19TWVNfTUJBUiArIDB4QjAwKQogI2RlZmluZSBKVEFHX0dQSU9fQ0ZHX1NFVAkweDAwMDAwMDAwCiAjZGVmaW5lIEpUQUdfR1BJT19DRkdfUkVTRVQJMHgwMEYwMDAwMAogCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RNUwkoQ0ZHX01CQVIgKyAweEIwNCkKKyNkZWZpbmUgSlRBR19HUElPX0FERFJfRU5fVE1TCShDT05GSUdfU1lTX01CQVIgKyAweEIwNCkKICNkZWZpbmUgSlRBR19HUElPX1RNU19FTl9TRVQJMHgyMDAwMDAwMAkvKiBFbmFibGUgZm9yIEdQSU8gKi8KICNkZWZpbmUgSlRBR19HUElPX1RNU19FTl9SRVNFVAkweDAwMDAwMDAwCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9UTVMJKENGR19NQkFSICsgMHhCMEMpCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9UTVMJKENPTkZJR19TWVNfTUJBUiArIDB4QjBDKQogI2RlZmluZSBKVEFHX0dQSU9fVE1TX0REUl9TRVQJMHgyMDAwMDAwMAkvKiBTZXQgYXMgb3V0cHV0ICAgKi8KICNkZWZpbmUgSlRBR19HUElPX1RNU19ERFJfUkVTRVQgMHgwMDAwMDAwMAogCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RDSwkoQ0ZHX01CQVIgKyAweEMwMCkKKyNkZWZpbmUgSlRBR19HUElPX0FERFJfRU5fVENLCShDT05GSUdfU1lTX01CQVIgKyAweEMwMCkKICNkZWZpbmUgSlRBR19HUElPX1RDS19FTl9TRVQJMHgyMDAwMDAwMAkvKiBFbmFibGUgZm9yIEdQSU8gKi8KICNkZWZpbmUgSlRBR19HUElPX1RDS19FTl9SRVNFVAkweDAwMDAwMDAwCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9UQ0sJKENGR19NQkFSICsgMHhDMDgpCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9UQ0sJKENPTkZJR19TWVNfTUJBUiArIDB4QzA4KQogI2RlZmluZSBKVEFHX0dQSU9fVENLX0REUl9TRVQJMHgyMDAwMDAwMAkvKiBTZXQgYXMgb3V0cHV0ICAgKi8KICNkZWZpbmUgSlRBR19HUElPX1RDS19ERFJfUkVTRVQgMHgwMDAwMDAwMAogCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RESQkoQ0ZHX01CQVIgKyAweEMwMCkKKyNkZWZpbmUgSlRBR19HUElPX0FERFJfRU5fVERJCShDT05GSUdfU1lTX01CQVIgKyAweEMwMCkKICNkZWZpbmUgSlRBR19HUElPX1RESV9FTl9TRVQJMHgxMDAwMDAwMAkvKiBFbmFibGUgYXMgR1BJTyAgKi8KICNkZWZpbmUgSlRBR19HUElPX1RESV9FTl9SRVNFVAkweDAwMDAwMDAwCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9UREkJKENGR19NQkFSICsgMHhDMDgpCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9UREkJKENPTkZJR19TWVNfTUJBUiArIDB4QzA4KQogI2RlZmluZSBKVEFHX0dQSU9fVERJX0REUl9TRVQJMHgxMDAwMDAwMAkvKiBTZXQgYXMgb3V0cHV0ICAgKi8KICNkZWZpbmUgSlRBR19HUElPX1RESV9ERFJfUkVTRVQgMHgwMDAwMDAwMAogCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RETwkoQ0ZHX01CQVIgKyAweEIwNCkKKyNkZWZpbmUgSlRBR19HUElPX0FERFJfRU5fVERPCShDT05GSUdfU1lTX01CQVIgKyAweEIwNCkKICNkZWZpbmUgSlRBR19HUElPX1RET19FTl9TRVQJMHgxMDAwMDAwMAkvKiBFbmFibGUgYXMgR1BJTyAgKi8KICNkZWZpbmUgSlRBR19HUElPX1RET19FTl9SRVNFVAkweDAwMDAwMDAwCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9URE8JKENGR19NQkFSICsgMHhCMEMpCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9URE8JKENPTkZJR19TWVNfTUJBUiArIDB4QjBDKQogI2RlZmluZSBKVEFHX0dQSU9fVERPX0REUl9TRVQJMHgwMDAwMDAwMAogI2RlZmluZSBKVEFHX0dQSU9fVERPX0REUl9SRVNFVCAweDEwMDAwMDAwCS8qIFNldCBhcyBpbnB1dAkgICAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcGxlYjIuaCBiL2luY2x1ZGUvY29uZmlncy9wbGViMi5oCmluZGV4IDY2ZTc2ZTguLjE0Zjg5MTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9wbGViMi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9wbGViMi5oCkBAIC00NSw4ICs0NSw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTEwNCwzMyArMTA0LDMzIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2lmZGVmIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUCQkiJCAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIiQgIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJMQorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweGEwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweGEwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHhhMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4YTA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmCUNPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4YTIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4YTIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCi0jZGVmaW5lIENGR19DUFVTUEVFRAkJMHgxNDEJCS8qIHNldCBjb3JlIGNsb2NrIHRvIDIwMC8yMDAvMTAwIE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMzY4NjQwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVVNQRUVECQkweDE0MQkJLyogc2V0IGNvcmUgY2xvY2sgdG8gMjAwLzIwMC8xMDAgTUh6ICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIFN0YWNrIHNpemVzCkBAIC0xNjQsODYgKzE2NCw4NiBAQAogI2RlZmluZSBQSFlTX0ZMQVNIX0JBTktfU0laRQkweDAyMDAwMDAwIC8qIDMyIE1CIEJhbmtzICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFCTB4MDAwMTAwMDAgLyogNjQgS0Igc2VjdG9ycyAoeDIpICovCiAKLSNkZWZpbmUgQ0ZHX0RSQU1fQkFTRQkJUEhZU19TRFJBTV8xCi0jZGVmaW5lIENGR19EUkFNX1NJWkUJCVBIWVNfU0RSQU1fMV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFCQlQSFlTX1NEUkFNXzEKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1NJWkUJCVBIWVNfU0RSQU1fMV9TSVpFCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQogCiAvKgogICogR1BJTyBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19HUFNSMF9WQUwJCTB4MDAwMDAwMDAgIC8qIERvbid0IHNldCBhbnl0aGluZyAqLwotI2RlZmluZSBDRkdfR1BTUjFfVkFMCQkweDAwMDAwMDgwCi0jZGVmaW5lIENGR19HUFNSMl9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMF9WQUwJCTB4MDAwMDAwMDAgIC8qIERvbid0IHNldCBhbnl0aGluZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQU1IxX1ZBTAkJMHgwMDAwMDA4MAorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IyX1ZBTAkJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19HUENSMF9WQUwJCTB4MDAwMDAwMDAgIC8qIERvbid0IGNsZWFyIGFueXRoaW5nICovCi0jZGVmaW5lIENGR19HUENSMV9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IyX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IwX1ZBTAkJMHgwMDAwMDAwMCAgLyogRG9uJ3QgY2xlYXIgYW55dGhpbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMV9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMl9WQUwJCTB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfR1BEUjBfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUERSMV9WQUwJCTB4MDAwMDA3QzMKLSNkZWZpbmUgQ0ZHX0dQRFIyX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIwX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIxX1ZBTAkJMHgwMDAwMDdDMworI2RlZmluZSBDT05GSUdfU1lTX0dQRFIyX1ZBTAkJMHgwMDAwMDAwMAogCiAvKiBFZGdlIGRldGVjdCByZWdpc3RlcnMgKHRoZXNlIGFyZSBzZXQgYnkgdGhlIGtlcm5lbCkgKi8KLSNkZWZpbmUgQ0ZHX0dSRVIwX1ZBTAkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1JFUjFfVkFMCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUkVSMl9WQUwJICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dGRVIwX1ZBTAkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR0ZFUjFfVkFMCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HRkVSMl9WQUwJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkVSMF9WQUwJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkVSMV9WQUwJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkVSMl9WQUwJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HRkVSMF9WQUwJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HRkVSMV9WQUwJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HRkVSMl9WQUwJICAgIDB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfR0FGUjBfTF9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dBRlIwX1VfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HQUZSMV9MX1ZBTAkJMHgwMDAwODAxMCAgLyogVXNlIEZGIFVBUlQgU2VuZCBhbmQgUmVjZWl2ZSAqLwotI2RlZmluZSBDRkdfR0FGUjFfVV9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dBRlIyX0xfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HQUZSMl9VX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX0xfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfVV9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9MX1ZBTAkJMHgwMDAwODAxMCAgLyogVXNlIEZGIFVBUlQgU2VuZCBhbmQgUmVjZWl2ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX1VfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfTF9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9VX1ZBTAkJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19QU1NSX1ZBTAkJMHgyMAotI2RlZmluZSBDRkdfQ0NDUl9WQUwJICAgIDB4MDAwMDAxNDEJLyogMTAwIE1IeiBtZW1vcnksIDIwMCBNSHogQ1BVCSovCi0jZGVmaW5lIENGR19DS0VOX1ZBTAkgICAgMHgwMDAwMDA2MAkvKiBGRlVBUlQgYW5kIFNUVUFSVCBlbmFibGVkCSovCi0jZGVmaW5lIENGR19JQ01SX1ZBTAkgICAgMHgwMDAwMDAwMAkvKiBObyBpbnRlcnJ1cHRzIGVuYWJsZWQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QU1NSX1ZBTAkJMHgyMAorI2RlZmluZSBDT05GSUdfU1lTX0NDQ1JfVkFMCSAgICAweDAwMDAwMTQxCS8qIDEwMCBNSHogbWVtb3J5LCAyMDAgTUh6IENQVQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NLRU5fVkFMCSAgICAweDAwMDAwMDYwCS8qIEZGVUFSVCBhbmQgU1RVQVJUIGVuYWJsZWQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JQ01SX1ZBTAkgICAgMHgwMDAwMDAwMAkvKiBObyBpbnRlcnJ1cHRzIGVuYWJsZWQJKi8KIAogLyoKICAqIE1lbW9yeSBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19NU0MwX1ZBTAkJMHgwMDAwN0ZGMCAvKiBOb3QgcHJvcGVybHkgY2FsY3VsYXRlZCAtIEZJWE1FIChEUykgKi8KLSNkZWZpbmUgQ0ZHX01TQzFfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NU0MyX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01TQzBfVkFMCQkweDAwMDA3RkYwIC8qIE5vdCBwcm9wZXJseSBjYWxjdWxhdGVkIC0gRklYTUUgKERTKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01TQzFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMl9WQUwJCTB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfTURDTkZHX1ZBTAkJMHgwMDAwMGFDOSAvKiBNZW1vcnkgdGltaW5ncyBmb3IgdGhlIFNEUkFNLgorI2RlZmluZSBDT05GSUdfU1lTX01EQ05GR19WQUwJCTB4MDAwMDBhQzkgLyogTWVtb3J5IHRpbWluZ3MgZm9yIHRoZSBTRFJBTS4KIAkJCQkJICAgICAgdFJQPTIsIENMPTIsIHRSQ0Q9MiwgdFJBUz01LCB0UkM9OCAqLwogCi0jZGVmaW5lIENGR19NRFJFRlJfVkFMCQkweDAwNDAzMDE4IC8qIEluaXRpYWwgc2V0dGluZywgaW5kaXZpZHVhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX01EUkVGUl9WQUwJCTB4MDA0MDMwMTggLyogSW5pdGlhbCBzZXR0aW5nLCBpbmRpdmlkdWFsCSovCiAJCQkJCSAgIC8qIGJpdHMgc2V0IGluIGxvd2xldmVsX2luaXQuUwkqLwotI2RlZmluZSBDRkdfTURNUlNfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTURNUlNfVkFMCQkweDAwMDAwMDAwCiAKIC8qCiAgKiBQQ01DSUEgYW5kIENGIEludGVyZmFjZXMKICAqLwotI2RlZmluZSBDRkdfTUVDUl9WQUwJCTB4MDAwMDAwMDAgIC8qIEhhbmdvdmVyIGZyb20gTHViYm9jay4KKyNkZWZpbmUgQ09ORklHX1NZU19NRUNSX1ZBTAkJMHgwMDAwMDAwMCAgLyogSGFuZ292ZXIgZnJvbSBMdWJib2NrLgogCQkJCQkgICAgICAgTmVlZHMgY2FsY3VsYXRpbmcuIChEUy9DSEMpICovCi0jZGVmaW5lIENGR19NQ01FTTBfVkFMCQkweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ01FTTFfVkFMCQkweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0FUVDBfVkFMCQkweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0FUVDFfVkFMCQkweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0lPMF9WQUwJCTB4MDAwMDQ3MTUKLSNkZWZpbmUgQ0ZHX01DSU8xX1ZBTAkJMHgwMDAwNDcxNQorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMF9WQUwJCTB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTFfVkFMCQkweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQwX1ZBTAkJMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMV9WQUwJCTB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMF9WQUwJCTB4MDAwMDQ3MTUKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMV9WQUwJCTB4MDAwMDQ3MTUKIAogLyoKICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCiAvKiBGSVhNRSAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMjUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMjUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDI1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMjUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogLyogRmxhc2ggcHJvdGVjdGlvbiAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCiAKIC8qIEZJWE1FICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQpAQCAtMjUyLDYgKzI1Miw2IEBACiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAKIAogLyogT3B0aW9uIGFkZGVkIHRvIGdldCBhcm91bmQgYnl0ZSBvcmRlcmluZyBpc3N1ZXMgaW4gdGhlIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfTElUVExFX0VORElBTgkxCisjZGVmaW5lIENPTkZJR19TWVNfTElUVExFX0VORElBTgkxCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcHBtYzd4eC5oIGIvaW5jbHVkZS9jb25maWdzL3BwbWM3eHguaAppbmRleCBmZDA1YzdlLi41NzdhYjhlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcHBtYzd4eC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9wcG1jN3h4LmgKQEAgLTIwNiw2OSArMjA2LDY5IEBACiAvKgogICogU0RSQU0gY29uZmlnIC0gc2VlIG1lbW9yeSBtYXAgZGV0YWlscyBhYm92ZS4KICAqCi0gKiBDRkdfU0RSQU1fQkFTRQkJLSBTdGFydCBhZGRyZXNzIG9mIFNEUkFNLCB0aGlzIF9tdXN0XyBiZSB6ZXJvIQotICogQ0ZHX1NEUkFNX1NJWkUJCS0gVG90YWwgc2l6ZSBvZiBjb250aWd1b3VzIFNEUkFNIGJhbmsocykKKyAqIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJLSBTdGFydCBhZGRyZXNzIG9mIFNEUkFNLCB0aGlzIF9tdXN0XyBiZSB6ZXJvIQorICogQ09ORklHX1NZU19TRFJBTV9TSVpFCQktIFRvdGFsIHNpemUgb2YgY29udGlndW91cyBTRFJBTSBiYW5rKHMpCiAgKi8KIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkweDA0MDAwMDAwCiAKIAogLyoKICAqIEZsYXNoIGNvbmZpZyAtIHNlZSBtZW1vcnkgbWFwIGRldGFpbHMgYWJvdmUuCiAgKgotICogQ0ZHX0ZMQVNIX0JBU0UJCS0gU3RhcnQgYWRkcmVzcyBvZiBmbGFzaCBtZW1vcnkKLSAqIENGR19GTEFTSF9TSVpFCQktIFRvdGFsIHNpemUgb2YgY29udGlndW91cyBmbGFzaCBtZW0KLSAqIENGR19GTEFTSF9FUkFTRV9UT1VUCQktIEVyYXNlIHRpbWVvdXQgaW4gbXMKLSAqIENGR19GTEFTSF9XUklURV9UT1VUCQktIFdyaXRlIHRpbWVvdXQgaW4gbXMKLSAqIENGR19NQVhfRkxBU0hfQkFOS1MJCS0gTnVtYmVyIG9mIGJhbmtzIG9mIGZsYXNoIG9uIGJvYXJkCi0gKiBDRkdfTUFYX0ZMQVNIX1NFQ1QJCS0gTnVtYmVyIG9mIHNlY3RvcnMgaW4gYSBiYW5rCisgKiBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCS0gU3RhcnQgYWRkcmVzcyBvZiBmbGFzaCBtZW1vcnkKKyAqIENPTkZJR19TWVNfRkxBU0hfU0laRQkJLSBUb3RhbCBzaXplIG9mIGNvbnRpZ3VvdXMgZmxhc2ggbWVtCisgKiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJCS0gRXJhc2UgdGltZW91dCBpbiBtcworICogQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCQktIFdyaXRlIHRpbWVvdXQgaW4gbXMKKyAqIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQktIE51bWJlciBvZiBiYW5rcyBvZiBmbGFzaCBvbiBib2FyZAorICogQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJLSBOdW1iZXIgb2Ygc2VjdG9ycyBpbiBhIGJhbmsKICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGQzAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwNDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI1MDAwMAotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGQzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjUwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxOQogCiAKIC8qCiAgKiBNb25pdG9yIGNvbmZpZyAtIHNlZSBtZW1vcnkgbWFwIGRldGFpbHMgYWJvdmUKICAqCi0gKiBDRkdfTU9OSVRPUl9CQVNFCQktIEJhc2UgYWRkcmVzcyBvZiBtb25pdG9yIGNvZGUKLSAqIENGR19NQUxMT0NfTEVOCQktIFNpemUgb2YgbWFsbG9jIHBvb2wgKDEyOEtCKQorICogQ09ORklHX1NZU19NT05JVE9SX0JBU0UJCS0gQmFzZSBhZGRyZXNzIG9mIG1vbml0b3IgY29kZQorICogQ09ORklHX1NZU19NQUxMT0NfTEVOCQktIFNpemUgb2YgbWFsbG9jIHBvb2wgKDEyOEtCKQogICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCTB4MjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJMHgyMDAwMAogCiAKIC8qCiAgKiBDb21tYW5kIHNoZWxsIHNldHRpbmdzCiAgKgotICogQ0ZHX0JBUkdTSVpFCQkJLSBCb290IEFyZ3VtZW50IGJ1ZmZlciBzaXplCi0gKiBDRkdfQk9PVE1BUFNaCQktIFNpemUgb2YgYXBwJ3MgbWFwcGVkIFJBTSBhdCBib290IChMaW51eD04TUIpCi0gKiBDRkdfQ0JTSVpFCQkJLSBDb25zb2xlIEJ1ZmZlciAoaW5wdXQpIHNpemUKLSAqIENGR19MT0FEX0FERFIJCS0gRGVmYXVsdCBsb2FkIGFkZHJlc3MKLSAqIENGR19MT05HSEVMUAkJCS0gUHJvdmlkZSBtb3JlIGRldGFpbGVkIGhlbHAKLSAqIENGR19NQVhBUkdTCQkJLSBOdW1iZXIgb2YgYXJncyBhY2NlcHRlZCBieSBtb25pdG9yIGNvbW1hbmRzCi0gKiBDRkdfTUVNVEVTVF9TVEFSVAkJLSBTdGFydCBhZGRyZXNzIG9mIHRlc3QgdG8gcnVuIG9uIFJBTQotICogQ0ZHX01FTVRFU1RfRU5ECQktIEVuZCBhZGRyZXNzIG9mIFJBTSB0ZXN0Ci0gKiBDRkdfUEJTSVpFCQkJLSBQcmludCBCdWZmZXIgKG91dHB1dCkgc2l6ZQotICogQ0ZHX1BST01QVAkJCS0gUHJvbXB0IHN0cmluZworICogQ09ORklHX1NZU19CQVJHU0laRQkJCS0gQm9vdCBBcmd1bWVudCBidWZmZXIgc2l6ZQorICogQ09ORklHX1NZU19CT09UTUFQU1oJCS0gU2l6ZSBvZiBhcHAncyBtYXBwZWQgUkFNIGF0IGJvb3QgKExpbnV4PThNQikKKyAqIENPTkZJR19TWVNfQ0JTSVpFCQkJLSBDb25zb2xlIEJ1ZmZlciAoaW5wdXQpIHNpemUKKyAqIENPTkZJR19TWVNfTE9BRF9BRERSCQktIERlZmF1bHQgbG9hZCBhZGRyZXNzCisgKiBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLSBQcm92aWRlIG1vcmUgZGV0YWlsZWQgaGVscAorICogQ09ORklHX1NZU19NQVhBUkdTCQkJLSBOdW1iZXIgb2YgYXJncyBhY2NlcHRlZCBieSBtb25pdG9yIGNvbW1hbmRzCisgKiBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCS0gU3RhcnQgYWRkcmVzcyBvZiB0ZXN0IHRvIHJ1biBvbiBSQU0KKyAqIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCS0gRW5kIGFkZHJlc3Mgb2YgUkFNIHRlc3QKKyAqIENPTkZJR19TWVNfUEJTSVpFCQkJLSBQcmludCBCdWZmZXIgKG91dHB1dCkgc2l6ZQorICogQ09ORklHX1NZU19QUk9NUFQJCQktIFByb21wdCBzdHJpbmcKICAqLwogCi0jZGVmaW5lIENGR19CQVJHU0laRQkJMTAyNAotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkweDgwMDAwMAotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0Ci0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCi0jZGVmaW5lIENGR19MT05HSEVMUAotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDA0MDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDAwNDAxMDAKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJMTAyNAotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQkxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkweDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDAwNDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCTEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCiAKIAogLyoKQEAgLTI5NSwxNiArMjk1LDE2IEBACiAgKiBpbiB0aGUgbWFpbiBzeXN0ZW0gUkFNIGp1c3QgYWJvdmUgdGhlIGV4Y2VwdGlvbiB2ZWN0b3JzLiBUaGUgY29udGVudHMgYXJlCiAgKiBjb3BpZWQgdG8gdG9wIG9mIFJBTSBieSB0aGUgaW5pdCBjb2RlLgogICoKLSAqIENGR19JTklUX1JBTV9BRERSCQktIEFkZHJlc3Mgb2YgSW5pdCBSQU0sIGFib3ZlIGV4Y2VwdGlvbiB2ZWN0Ci0gKiBDRkdfSU5JVF9SQU1fRU5ECQktIFNpemUgb2YgSW5pdCBSQU0KLSAqIENGR19HQkxfREFUQV9TSVpFCQktIEFtbW91bnQgb2YgUkFNIHRvIHJlc2VydmUgZm9yIGdsb2JhbCBkYXRhCi0gKiBDRkdfR0JMX0RBVEFfT0ZGU0VUCQktIFN0YXJ0IG9mIGdsb2JhbCBkYXRhLCB0b3Agb2Ygc3RhY2sKKyAqIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkJLSBBZGRyZXNzIG9mIEluaXQgUkFNLCBhYm92ZSBleGNlcHRpb24gdmVjdAorICogQ09ORklHX1NZU19JTklUX1JBTV9FTkQJCS0gU2l6ZSBvZiBJbml0IFJBTQorICogQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCQktIEFtbW91bnQgb2YgUkFNIHRvIHJlc2VydmUgZm9yIGdsb2JhbCBkYXRhCisgKiBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkJLSBTdGFydCBvZiBnbG9iYWwgZGF0YSwgdG9wIG9mIHN0YWNrCiAgKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkoQ0ZHX1NEUkFNX0JBU0UgKyAweDQwMDApCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg0MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIAogLyoKQEAgLTMxNiwzOCArMzE2LDM4IEBACiAgKiBCQVQzIC0gUENJIEkvTyBpbmNsdWRpbmcgRmxhc2ggTWVtb3J5CiAgKi8KIAotI2RlZmluZSBDRkdfSUJBVDBMIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVSAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDBMIENGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVSBDRkdfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCBDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSBDT05GSUdfU1lTX0lCQVQwVQogCi0jZGVmaW5lIENGR19JQkFUMUwgKDB4NzAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMVUgKDB4NzAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQxTCAoMHg3MDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMVUgKDB4NzAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwgKDB4NzAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICgweDcwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMICgweDcwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUgKDB4NzAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDJMICgweDgwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDJVICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMkwgKDB4ODAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDJVICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMICgweDgwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVSAoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAoMHg4MDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQzTCAoMHhGMDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQzVSAoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDNMICgweEYwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQzVSAoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTCAoMHhGMDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wgKDB4RjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSAoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAKIC8qCiAgKiBDYWNoZSBjb25maWcKICAqCi0gKiBDRkdfQ0FDSEVMSU5FX1NJWkUJCS0gU2l6ZSBvZiBhIGNhY2hlIGxpbmUgKENQVSBzcGVjaWZpYykKLSAqIENGR19MMgkJCS0gTDIgY2FjaGUgZW5hYmxlZCBpZiBkZWZpbmVkCisgKiBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQktIFNpemUgb2YgYSBjYWNoZSBsaW5lIChDUFUgc3BlY2lmaWMpCisgKiBDT05GSUdfU1lTX0wyCQkJLSBMMiBjYWNoZSBlbmFibGVkIGlmIGRlZmluZWQKICAqIEwyX0lOSVQJCQktIEwyIGNhY2hlIGluaXQgZmxhZ3MKICAqIEwyX0VOQUJMRQkJCS0gTDIgY2FjaGUgZW5hYmxlIGZsYWdzCiAgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKLSN1bmRlZglDRkdfTDIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgorI3VuZGVmCUNPTkZJR19TWVNfTDIKICNkZWZpbmUgTDJfSU5JVAkJCTAKICNkZWZpbmUgTDJfRU5BQkxFCQkwCiAKQEAgLTM1NSw2NiArMzU1LDY2IEBACiAvKgogICogQ2xvY2tzIGNvbmZpZwogICoKLSAqIENGR19CVVNfSFoJCQktIEJ1cyBjbG9jayBmcmVxdWVuY3kgaW4gSHoKLSAqIENGR19CVVNfQ0xLCQkJLSBBcyBhYm92ZSAoPykKLSAqIENGR19IWgkJCS0gRGVjcmVtZW50ZXIgZnJlcSBpbiBIegorICogQ09ORklHX1NZU19CVVNfSFoJCQktIEJ1cyBjbG9jayBmcmVxdWVuY3kgaW4gSHoKKyAqIENPTkZJR19TWVNfQlVTX0NMSwkJCS0gQXMgYWJvdmUgKD8pCisgKiBDT05GSUdfU1lTX0haCQkJLSBEZWNyZW1lbnRlciBmcmVxIGluIEh6CiAgKi8KIAotI2RlZmluZSBDRkdfQlVTX0haCQlDT05GSUdfQlVTX0NMSwotI2RlZmluZSBDRkdfQlVTX0NMSwkJQ09ORklHX0JVU19DTEsKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JVU19IWgkJQ09ORklHX0JVU19DTEsKKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfQ0xLCQlDT05GSUdfQlVTX0NMSworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAogCiAKIC8qCiAgKiBTZXJpYWwgcG9ydCBjb25maWcKICAqCi0gKiBDRkdfQkFVRFJBVEVfVEFCTEUJCS0gTGlzdCBvZiB2YWxpZCBiYXVkIHJhdGVzCi0gKiBDRkdfTlMxNjU1MAkJCS0gSW5jbHVkZSB0aGUgTlMxNjU1MCBkcml2ZXIKLSAqIENGR19OUzE2NTUwX1NFUklBTAkJLSBJbmNsdWRlIHRoZSBzZXJpYWwgKHdyYXBwZXIpIGRyaXZlcgotICogQ0ZHX05TMTY1NTBfQ0xLCQktIEZyZXF1ZW5jeSBvZiByZWZlcmVuY2UgY2xvY2sKLSAqIENGR19OUzE2NTUwX1JFR19TSVpFCQktIDY0LWJpdCBhY2Nlc3NlcyB0byA4LWJpdCBwb3J0Ci0gKiBDRkdfTlMxNjU1MF9DT00xCQktIEJhc2UgYWRkcmVzcyBvZiAxc3Qgc2VyaWFsIHBvcnQKKyAqIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJCS0gTGlzdCBvZiB2YWxpZCBiYXVkIHJhdGVzCisgKiBDT05GSUdfU1lTX05TMTY1NTAJCQktIEluY2x1ZGUgdGhlIE5TMTY1NTAgZHJpdmVyCisgKiBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCQktIEluY2x1ZGUgdGhlIHNlcmlhbCAod3JhcHBlcikgZHJpdmVyCisgKiBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQktIEZyZXF1ZW5jeSBvZiByZWZlcmVuY2UgY2xvY2sKKyAqIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkJLSA2NC1iaXQgYWNjZXNzZXMgdG8gOC1iaXQgcG9ydAorICogQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJCS0gQmFzZSBhZGRyZXNzIG9mIDFzdCBzZXJpYWwgcG9ydAogICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJMzY4NjQwMAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQktOAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCTB4N0MwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCTM2ODY0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCS04CisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCTB4N0MwMDAwMDAKIAogCiAvKgogICogUENJIENvbmZpZyAtIEFkZHJlc3MgTWFwIEIgKENIUlApCiAgKi8KIAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9QSFlTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfU0laRQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNX0JVUwkJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9QSFlTCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRQkweDdEMDAwMDAwCi0jZGVmaW5lIENGR19JU0FfTUVNX0JVUwkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfSVNBX01FTV9QSFlTCTB4RkQwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lTQV9NRU1fU0laRQkweDAxMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fQlVTCQkweDAwODAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fUEhZUwkJMHhGRTgwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1NJWkUJCTB4MDA0MDAwMDAKLSNkZWZpbmUgQ0ZHX0lTQV9JT19CVVMJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lTQV9JT19QSFlTCQkweEZFMDAwMDAwCi0jZGVmaW5lIENGR19JU0FfSU9fU0laRQkJMHgwMDgwMDAwMAotI2RlZmluZSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyBDRkdfSVNBX0lPX1BIWVMKLSNkZWZpbmUgQ0ZHX0lTQV9JTwkJQ0ZHX0lTQV9JT19QSFlTCi0jZGVmaW5lIENGR182MFhfUENJX0lPX09GRlNFVAlDRkdfSVNBX0lPX1BIWVMKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fQlVTCQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9QSFlTCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJMHg3RDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9NRU1fQlVTCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX01FTV9QSFlTCTB4RkQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNX1NJWkUJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19CVVMJCTB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fUEhZUwkJMHhGRTgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19TSVpFCQkweDAwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX0JVUwkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19QSFlTCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX1NJWkUJCTB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTIENPTkZJR19TWVNfSVNBX0lPX1BIWVMKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU8JCUNPTkZJR19TWVNfSVNBX0lPX1BIWVMKKyNkZWZpbmUgQ09ORklHX1NZU182MFhfUENJX0lPX09GRlNFVAlDT05GSUdfU1lTX0lTQV9JT19QSFlTCiAKIAogLyoKICAqIEV4dHJhIGluaXQgZnVuY3Rpb25zCiAgKgotICogQ0ZHX0JPQVJEX0FTTV9JTklUCQktIENhbGwgYXNzZW1ibHkgaW5pdCBjb2RlCisgKiBDT05GSUdfU1lTX0JPQVJEX0FTTV9JTklUCQktIENhbGwgYXNzZW1ibHkgaW5pdCBjb2RlCiAgKi8KIAotI2RlZmluZSBDRkdfQk9BUkRfQVNNX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9BU01fSU5JVAogCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcHBtYzgyNjAuaCBiL2luY2x1ZGUvY29uZmlncy9wcG1jODI2MC5oCmluZGV4IGRkNzE4NjIuLmZmN2Q2MTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9wcG1jODI2MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9wcG1jODI2MC5oCkBAIC02NSw3ICs2NSw3IEBACiAgKiAweDYJICAgICAweDEJIDY2CTEzMyAgICAyNjYgICBDbG9zZSAgQ2xvc2UgIE9wZW4KICAqIDB4NgkgICAgIDB4MgkgNjYJMTMzICAgIDMwMCAgIENsb3NlICBPcGVuICAgQ2xvc2UKICAqLwotI2RlZmluZSBDRkdfUFBNQ19NT0RDS19IIDB4MDUKKyNkZWZpbmUgQ09ORklHX1NZU19QUE1DX01PRENLX0ggMHgwNQogCiAvKiBEZWZpbmUgdGhpcyBpZiB5b3Ugd2FudCB0byBib290IGZyb20gMHgwMDAwMDEwMC4gSWYgeW91IGRvbid0IGRlZmluZQogICogdGhpcywgeW91IHdpbGwgbmVlZCB0byBwcm9ncmFtIHRoZSBib290bG9hZGVyIHRvIDB4ZmZmMDAwMDAsIGFuZApAQCAtNzMsNTMgKzczLDUzIEBACiAgKiB3YXkgdG8gZG8gdGhhdCBpcyB0byBwcm9ncmFtIHRoZSBib290bG9hZGVyIGF0IGJvdGggYWRkcmVzc2VzLgogICogSXQgaXMgc3VnZ2VzdGVkIHRoYXQgeW91IGp1c3QgbGV0IFUtQm9vdCBsaXZlIGF0IDB4MDAwMDAwMDAuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BQTUNfQk9PVF9MT1cgMQorI2RlZmluZSBDT05GSUdfU1lTX1BQTUNfQk9PVF9MT1cgMQogCiAvKiBXaGF0IHNob3VsZCB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBtYWluIEZMQVNIIGJlIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gTUJ5dGVzKT8gVGhpcyBtdXN0IGNvbnRhaW4gVEVYVF9CQVNFIGZyb20gYm9hcmQvcHBtYzgyNjAvY29uZmlnLm1rCiAgKiBUaGUgbWFpbiBGTEFTSCBpcyB3aGljaGV2ZXIgaXMgY29ubmVjdGVkIHRvICpDUzAuIFUtQm9vdCBleHBlY3RzCiAgKiB0aGlzIHRvIGJlIHRoZSBTSU1NLgogICovCi0jZGVmaW5lIENGR19GTEFTSDBfQkFTRSAweEZFMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDBfU0laRSAxNgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFIDB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfU0laRSAxNgogCiAvKiBXaGF0IHNob3VsZCBiZSB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBmaXJzdCBTRFJBTSBESU1NIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gTWJ5dGVzKT8KICovCi0jZGVmaW5lIENGR19TRFJBTTBfQkFTRSAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfU0laRSAxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfQkFTRSAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX1NJWkUgMTI4CiAKIC8qIFdoYXQgc2hvdWxkIGJlIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIHNlY29uZCBTRFJBTSBESU1NIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gTWJ5dGVzKT8KICovCi0jZGVmaW5lIENGR19TRFJBTTFfQkFTRSAweDA4MDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTFfU0laRSAxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTFfQkFTRSAweDA4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0xX1NJWkUgMTI4CiAKIC8qIFdoYXQgc2hvdWxkIGJlIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIG9uIGJvYXJkIFNEUkFNIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gTWJ5dGVzKT8KICovCi0jZGVmaW5lIENGR19TRFJBTTJfQkFTRSAweDM4MDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTJfU0laRSAxNgorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMl9CQVNFIDB4MzgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTJfU0laRSAxNgogCiAvKiBXaGF0IHNob3VsZCBiZSB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBNQUlMQk9YICBhbmQgaG93IGJpZyBpcyBpdAogICogKGluIEJ5dGVzKQotICogVGhlIGVlcHJvbSBsaXZlcyBhdCBDRkdfTUFJTEJPWF9CQVNFICsgMHg4MDAwMDAwMAorICogVGhlIGVlcHJvbSBsaXZlcyBhdCBDT05GSUdfU1lTX01BSUxCT1hfQkFTRSArIDB4ODAwMDAwMDAKICAqLwotI2RlZmluZSBDRkdfTUFJTEJPWF9CQVNFIDB4MzIwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BSUxCT1hfU0laRSA4MTkyCisjZGVmaW5lIENPTkZJR19TWVNfTUFJTEJPWF9CQVNFIDB4MzIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQUlMQk9YX1NJWkUgODE5MgogCiAvKiBXaGF0IGlzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIEkvTyBzZWxlY3QgbGluZXMgYW5kIGhvdyBiaWcgaXMgaXQKICAqIChJbiBNYnl0ZXMpPwogICovCiAKLSNkZWZpbmUgQ0ZHX0lPU0VMRUNUX0JBU0UgMHhFMDAwMDAwMAotI2RlZmluZSBDRkdfSU9TRUxFQ1RfU0laRSAzMgorI2RlZmluZSBDT05GSUdfU1lTX0lPU0VMRUNUX0JBU0UgMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lPU0VMRUNUX1NJWkUgMzIKIAogCiAvKiBXaGF0IHNob3VsZCBiZSB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBMRURzIGFuZCBzd2l0Y2ggUzA/CiAgKiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGVtIGVuYWJsZWQsIGRvbid0IGRlZmluZSB0aGlzLgogICovCi0jZGVmaW5lIENGR19MRURfQkFTRSAweEYxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEVEX0JBU0UgMHhGMTAwMDAwMAogCiAvKgogICogUFBNQzgyNjAgd2l0aCAyNTYgMTYgTUIgRElNTToKQEAgLTEzOCwxMCArMTM4LDEwIEBACiAgKiAgICAgMHgwRkY1IEZGQjAgICAgIEJvYXJkIEluZm8gRGF0YQogICogICAgIDB4MEZGNiAwMDAwICAgICBNYWxsb2MgQXJlbmEKICAqCSAgICAgOgkJICAgIENPTkZJR19FTlZfU0VDVF9TSVpFLCAyNTZrCi0gKgkgICAgIDoJCSAgICBDRkdfTUFMTE9DX0xFTiwgICAgMTI4aworICoJICAgICA6CQkgICAgQ09ORklHX1NZU19NQUxMT0NfTEVOLCAgICAxMjhrCiAgKiAgICAgMHgwRkZDIDAwMDAgICAgIFJBTSBDb3B5IG9mIE1vbml0b3IgQ29kZQotICoJICAgICA6CQkgICAgQ0ZHX01PTklUT1JfTEVOLCAgIDI1NmsKLSAqICAgICAweDBGRkYgRkZGRiAgICAgW0VuZCBvZiBSQU1dLCBDRkdfU0RSQU1fU0laRSAtIDEKKyAqCSAgICAgOgkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9MRU4sICAgMjU2aworICogICAgIDB4MEZGRiBGRkZGICAgICBbRW5kIG9mIFJBTV0sIENPTkZJR19TWVNfU0RSQU1fU0laRSAtIDEKICAqLwogCiAKQEAgLTI3NCwxMCArMjc0LDEwIEBACiAKIAogLyogdW5kZWYgdGhpcyB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAogCiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgogCiAKIC8qCkBAIC0yOTYsNyArMjk2LDcgQEAKIAogCiAvKiBXaGVyZSBkbyB0aGUgaW50ZXJuYWwgcmVnaXN0ZXJzIGxpdmU/ICovCi0jZGVmaW5lIENGR19JTU1SCQkweGYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhmMDAwMDAwMAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCkBAIC0zMTIsMzYgKzMxMiwzNiBAQAogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkgICAgICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJICAgICAqLwogI2Vsc2UKLSMgIGRlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJICAgICAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJICAgICAqLwogI2VuZGlmCiAKIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUJICAoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJICAoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQogCi0jZGVmaW5lIENGR19NQVhBUkdTCQkzMgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTMyCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkgICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTQwMDAwICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDE0MDAwMCAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDIwMDAJLyogbWVtdGVzdCB3b3JrcyBmcm9tIHRoZSBlbmQgb2YgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MjAwMAkvKiBtZW10ZXN0IHdvcmtzIGZyb20gdGhlIGVuZCBvZiAqLwogCQkJCQkvKiB0aGUgZXhjZXB0aW9uIHZlY3RvciB0YWJsZSAqLwogCQkJCQkvKiB0byB0aGUgZW5kIG9mIHRoZSBEUkFNICAqLwogCQkJCQkvKiBsZXNzIG1vbml0b3IgYW5kIG1hbGxvYyBhcmVhICovCi0jZGVmaW5lIENGR19TVEFDS19VU0FHRQkJMHgxMDAwMCAvKiBSZXNlcnZlIDY0ayBmb3IgdGhlIHN0YWNrIHVzYWdlICovCi0jZGVmaW5lIENGR19NRU1fRU5EX1VTQUdFCSggQ0ZHX01PTklUT1JfTEVOIFwKLQkJCQkrIENGR19NQUxMT0NfTEVOIFwKKyNkZWZpbmUgQ09ORklHX1NZU19TVEFDS19VU0FHRQkJMHgxMDAwMCAvKiBSZXNlcnZlIDY0ayBmb3IgdGhlIHN0YWNrIHVzYWdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNX0VORF9VU0FHRQkoIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gXAorCQkJCSsgQ09ORklHX1NZU19NQUxMT0NfTEVOIFwKIAkJCQkrIENPTkZJR19FTlZfU0VDVF9TSVpFIFwKLQkJCQkrIENGR19TVEFDS19VU0FHRSApCisJCQkJKyBDT05GSUdfU1lTX1NUQUNLX1VTQUdFICkKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCSggQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCBcCi0JCQkJLSBDRkdfTUVNX0VORF9VU0FHRSApCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCSggQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQgXAorCQkJCS0gQ09ORklHX1NZU19NRU1fRU5EX1VTQUdFICkKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTM1NSw3ICszNTUsNyBAQAogICogIC0gUlggY2xrIGlzIENMSzExCiAgKiAgLSBUWCBjbGsgaXMgQ0xLMTIKICAqLwotI2RlZmluZSBDRkdfQ01YU0NSX1ZBTFVFICAgICAgIChDTVhTQ1JfUlMxQ1NfQ0xLMTEgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQ01YU0NSX1ZBTFVFICAgICAgIChDTVhTQ1JfUlMxQ1NfQ0xLMTEgIHxcCiAJCQkJQ01YU0NSX1RTMUNTX0NMSzEyKQogCiAjZWxpZiBkZWZpbmVkKENPTkZJR19FVEhFUl9PTl9GQ0MpICYmIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMikKQEAgLTM2NiwxMjYgKzM2NiwxMjYgQEAKICAqIC0gU2VsZWN0IGJ1cyBmb3IgYmQvYnVmZmVycyAoc2VlIDI4LTEzKQogICogLSBFbmFibGUgRnVsbCBEdXBsZXggaW4gRlNNUgogICovCi0jZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkJKENNWEZDUl9GQzJ8Q01YRkNSX1JGMkNTX01TS3xDTVhGQ1JfVEYyQ1NfTVNLKQotI2RlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTN8Q01YRkNSX1RGMkNTX0NMSzE0KQotI2RlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotI2RlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisjZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQogI2VuZGlmCS8qIENPTkZJR19FVEhFUl9JTkRFWCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCUNGR19GTEFTSDBfQkFTRQotI2RlZmluZSBDRkdfRkxBU0hfU0laRQlDRkdfRkxBU0gwX1NJWkUKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJQ0ZHX1NEUkFNMF9CQVNFCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCShDRkdfU0RSQU0wX1NJWkUgKyBDRkdfU0RSQU0xX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQlDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQlDT05GSUdfU1lTX0ZMQVNIMF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQlDT05GSUdfU1lTX1NEUkFNMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkoQ09ORklHX1NZU19TRFJBTTBfU0laRSArIENPTkZJR19TWVNfU0RSQU0xX1NJWkUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICovCi0jaWYgZGVmaW5lZChDRkdfUFBNQ19CT09UX0xPVykKLSMgIGRlZmluZSAgQ0ZHX1BQTUNfSFJDV19CT09UX0ZMQUdTICAoSFJDV19DSVAgfCBIUkNXX0JNUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUFBNQ19CT09UX0xPVykKKyMgIGRlZmluZSAgQ09ORklHX1NZU19QUE1DX0hSQ1dfQk9PVF9GTEFHUyAgKEhSQ1dfQ0lQIHwgSFJDV19CTVMpCiAjZWxzZQotIyAgZGVmaW5lICBDRkdfUFBNQ19IUkNXX0JPT1RfRkxBR1MgICgwKQotI2VuZGlmIC8qIGRlZmluZWQoQ0ZHX1BQTUNfQk9PVF9MT1cpICovCisjICBkZWZpbmUgIENPTkZJR19TWVNfUFBNQ19IUkNXX0JPT1RfRkxBR1MgICgwKQorI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1NZU19QUE1DX0JPT1RfTE9XKSAqLwogCi0vKiBnZXQgdGhlIEhSQ1cgSVNCIGZpZWxkIGZyb20gQ0ZHX0lNTVIgKi8KLSNkZWZpbmUgQ0ZHX1BQTUNfSFJDV19JTU1SCSggKChDRkdfSU1NUiAmIDB4MTAwMDAwMDApID4+IDEwKSB8IFwKLQkJCQkgICgoQ0ZHX0lNTVIgJiAweDAxMDAwMDAwKSA+PiAgNykgfCBcCi0JCQkJICAoKENGR19JTU1SICYgMHgwMDEwMDAwMCkgPj4gIDQpICkKKy8qIGdldCB0aGUgSFJDVyBJU0IgZmllbGQgZnJvbSBDT05GSUdfU1lTX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUE1DX0hSQ1dfSU1NUgkoICgoQ09ORklHX1NZU19JTU1SICYgMHgxMDAwMDAwMCkgPj4gMTApIHwgXAorCQkJCSAgKChDT05GSUdfU1lTX0lNTVIgJiAweDAxMDAwMDAwKSA+PiAgNykgfCBcCisJCQkJICAoKENPTkZJR19TWVNfSU1NUiAmIDB4MDAxMDAwMDApID4+ICA0KSApCiAKLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCQkoIEhSQ1dfRUJNCQkJCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCQkoIEhSQ1dfRUJNCQkJCXwgXAogCQkJCSAgSFJDV19CUFMxMQkJCQl8IFwKIAkJCQkgIEhSQ1dfTDJDUEMxMAkJCQl8IFwKIAkJCQkgIEhSQ1dfRFBQQzAwCQkJCXwgXAotCQkJCSAgQ0ZHX1BQTUNfSFJDV19JTU1SCQkJfCBcCisJCQkJICBDT05GSUdfU1lTX1BQTUNfSFJDV19JTU1SCQkJfCBcCiAJCQkJICBIUkNXX01NUjAwCQkJCXwgXAogCQkJCSAgSFJDV19MQlBDMDAJCQkJfCBcCiAJCQkJICBIUkNXX0FQUEMxMAkJCQl8IFwKIAkJCQkgIEhSQ1dfQ1MxMFBDMDAJCQkJfCBcCi0JCQkJICAoQ0ZHX1BQTUNfTU9EQ0tfSCAmIEhSQ1dfTU9EQ0tfSDExMTEpIHwgXAotCQkJCSAgQ0ZHX1BQTUNfSFJDV19CT09UX0ZMQUdTICkKKwkJCQkgIChDT05GSUdfU1lTX1BQTUNfTU9EQ0tfSCAmIEhSQ1dfTU9EQ0tfSDExMTEpIHwgXAorCQkJCSAgQ09ORklHX1NZU19QUE1DX0hSQ1dfQk9PVF9GTEFHUyApCiAKIC8qIG5vIHNsYXZlcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUyCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMwkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU1CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNwkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKLSAqIE5vdGUgYWxzbyB0aGF0IHRoZSBsb2dpYyB0aGF0IHNldHMgQ0ZHX1JBTUJPT1QgaXMgcGxhdGZvcm0gZGVwZW5kZW50LgorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIE5vdGUgYWxzbyB0aGF0IHRoZSBsb2dpYyB0aGF0IHNldHMgQ09ORklHX1NZU19SQU1CT09UIGlzIHBsYXRmb3JtIGRlcGVuZGVudC4KICAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSDBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCiAKLSNpZm5kZWYgQ0ZHX01PTklUT1JfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4MGZmODAwMDAKKyNpZm5kZWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgwZmY4MDAwMAogI2VuZGlmCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDM3NCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMzc0IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudAkJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVAkwCS8qIHRoZXJlIGlzIG9ubHkgb25lIGJhbmsJCSovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIHByb3RlY3Rpb24JCSovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgICAgLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVAkwCS8qIHRoZXJlIGlzIG9ubHkgb25lIGJhbmsJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCS8qIHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMSAgICAvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAgICAgKi8KIAogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCiAjICBkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjICBpZmRlZiBDT05GSUdfRU5WX0lOX09XTl9TRUNUCi0jICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQorIyAgICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDB4NDAwMDApCiAjICAgIGRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCiAjICBlbHNlCi0jICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgKENGR19GTEFTSF9CQVNFICsgQ0ZHX01PTklUT1JfTEVOIC0gQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKICMgICAgZGVmaW5lIENPTkZJR19FTlZfU0laRQkweDEwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KICMgICAgZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAgLyogc2VlIFJFQURNRSAtIGVudiBzZWN0IHJlYWwgc2l6ZQkqLwogIyAgZW5kaWYgLyogQ09ORklHX0VOVl9JTl9PV05fU0VDVCAqLwogCiAjZWxzZQogIyAgZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg0MDAwMCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAogIyAgZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00OTgsMzAgKzQ5OCwzMCBAQAogICoKICAqIEhJRDEgaGFzIG9ubHkgcmVhZC1vbmx5IGluZm9ybWF0aW9uIC0gbm90aGluZyB0byBzZXQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkoSElEMF9JQ0UgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCShISUQwX0lDRSAgfFwKIAkJCSBISUQwX0RDRSAgfFwKIAkJCSBISUQwX0lDRkkgfFwKIAkJCSBISUQwX0RDSSAgfFwKIAkJCSBISUQwX0lGRU0gfFwKIAkJCSBISUQwX0FCRSkKIAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkoSElEMF9JQ0UgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkoSElEMF9JQ0UgIHxcCiAJCQkgSElEMF9JRkVNIHxcCiAJCQkgSElEMF9BQkUgIHxcCiAJCQkgSElEMF9FTUNQKQotI2RlZmluZSBDRkdfSElEMgkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNUiAtIFJlc2V0IE1vZGUgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUk1SCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEJDUiAtIEJ1cyBDb25maWd1cmF0aW9uCQkJCQkgNC0yNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19CQ1IJCShCQ1JfRUJNICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IJCShCQ1JfRUJNICAgICAgfFwKIAkJCSAweDMwMDAwMDAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC01MzAsNyArNTMwLDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9FU0UJIHxcCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfRVNFCSB8XAogCQkJIFNJVU1DUl9EUFBDMDAJIHxcCiAJCQkgU0lVTUNSX0wyQ1BDMTAJIHxcCiAJCQkgU0lVTUNSX0xCUEMwMAkgfFwKQEAgLTU0Niw3ICs1NDYsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogV2F0Y2hkb2cgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIDYweCBCdXMgTW9uaXRvciBlbmFibGUKICAqLwotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8XAogCQkJIFNZUENSX0JNVCAgfFwKIAkJCSBTWVBDUl9QQk1FIHxcCiAJCQkgU1lQQ1JfTEJNRSB8XApAQCAtNTU5LDcgKzU1OSw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDCShUTUNOVFNDX1NFQyB8XAorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MJKFRNQ05UU0NfU0VDIHxcCiAJCQkgVE1DTlRTQ19BTFIgfFwKIAkJCSBUTUNOVFNDX1RDRiB8XAogCQkJIFRNQ05UU0NfVENFKQpAQCAtNTcwLDcgKzU3MCw3IEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTICB8XAogCQkJIFBJU0NSX1BURiB8XAogCQkJIFBJU0NSX1BURSkKIApAQCAtNTc4LDEzICs1NzgsMTMgQEAKICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgQ29udHJvbAkJCQkJIDktOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TQ0NSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uCQkJCTEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUgkwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUgkwCiAKIC8qCiAgKiBJbml0aWFsaXplIE1lbW9yeSBDb250cm9sbGVyOgpAQCAtNjM1LDcgKzYzNSw3IEBACiAgKiAgICAgLSBObyBkYXRhIHBpcGVsaW5pbmcgaXMgZG9uZQogICogICAgIC0gVmFsaWQKICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKENGR19GTEFTSDBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKENPTkZJR19TWVNfRkxBU0gwX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU18zMgkJCXxcCiAJCQkgQlJ4X01TX0dQQ01fUAkJCXxcCiAJCQkgQlJ4X1YpCkBAIC02NTQsNyArNjU0LDcgQEAKICAqICAgICAtIE9uZSBpZGxlIGNsb2NrIGlzIGluc2VydGVkIGJldHdlZW4gYSByZWFkIGFjY2VzcyBmcm9tIHRoZQogICoJIGN1cnJlbnQgYmFuayBhbmQgdGhlIG5leHQgYWNjZXNzLgogICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShNRUdfVE9fQU0oQ0ZHX0ZMQVNIMF9TSVpFKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKE1FR19UT19BTShDT05GSUdfU1lTX0ZMQVNIMF9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfNV9DTEsJCQl8XApAQCAtNjg1LDEyICs2ODUsMTIgQEAKICAqICAgICAtIE5vIGRhdGEgcGlwZWxpbmluZyBpcyBkb25lCiAgKiAgICAgLSBWYWxpZAogICovCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoQ0ZHX1NEUkFNMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoQ09ORklHX1NZU19TRFJBTTBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfU0RSQU1fUAkJCXxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChDRkdfU0RSQU0xX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChDT05GSUdfU1lTX1NEUkFNMV9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfNjQJCQl8XAogCQkJIEJSeF9NU19TRFJBTV9QCQkJfFwKIAkJCSBCUnhfVikKQEAgLTcwNSwxMiArNzA1LDEyIEBACiAgKiAgICAgLSBJbnRlcm5hbCBiYW5rIGludGVybGVhdmluZyB3aXRoaW4gc2F2ZSBkZXZpY2UgZW5hYmxlZAogICovCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKE1FR19UT19BTShDRkdfU0RSQU0wX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoTUVHX1RPX0FNKENPTkZJR19TWVNfU0RSQU0wX1NJWkUpCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E3CQl8XAogCQkJIE9SeFNfTlVNUl8xMykKIAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkoTUVHX1RPX0FNKENGR19TRFJBTTFfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCShNRUdfVE9fQU0oQ09ORklHX1NZU19TRFJBTTFfU0laRSkJfFwKIAkJCSBPUnhTX0JQRF80CQkJfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTBfQTcJCXxcCiAJCQkgT1J4U19OVU1SXzEzKQpAQCAtNzQxLDcgKzc0MSw3IEBACiAgKiAgICAgLSBFeHRlcm5hbCBBZGRyZXNzIE11bHRpcGxleGluZyBlbmFibGVkCiAgKiAgICAgLSBDQVMgTGF0ZW5jeSBpcyAyLgogICovCi0jZGVmaW5lIENGR19QU0RNUgkoUFNETVJfUkZFTgkgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCShQU0RNUl9SRkVOCSAgICAgIHxcCiAJCQkgUFNETVJfU0RBTV9BMTRfSVNfQTUgfFwKIAkJCSBQU0RNUl9CU01BX0ExM19BMTUgICB8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTBfQTkgIHxcCkBAIC03NTQsOCArNzU0LDggQEAKIAkJCSBQU0RNUl9DTF8yKQogCiAKLSNkZWZpbmUgQ0ZHX1BTUlQJMHgwZQotI2RlZmluZSBDRkdfTVBUUFIJTVBUUFJfUFRQX0RJVjMyCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkweDBlCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJTVBUUFJfUFRQX0RJVjMyCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNzgzLDcgKzc4Myw3IEBACiAgKgogICovCiAKLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JKChDRkdfU0RSQU0yX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0JKChDT05GSUdfU1lTX1NEUkFNMl9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfMzIJCQl8XAogCQkJIEJSeF9ERUNDX05PTkUJCQl8XAogCQkJIEJSeF9NU19TRFJBTV9MCQkJfFwKQEAgLTc5OCw3ICs3OTgsNyBAQAogICogICAgIC0gSW50ZXJuYWwgYmFuayBpbnRlcmxlYXZpbmcgd2l0aGluIHNhdmUgZGV2aWNlIGVuYWJsZWQKICAqLwogCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCShNRUdfVE9fQU0oQ0ZHX1NEUkFNMl9TSVpFKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JKE1FR19UT19BTShDT05GSUdfU1lTX1NEUkFNMl9TSVpFKQl8XAogCQkJIE9SeFNfQlBEXzQJCQl8XAogCQkJIE9SeFNfUk9XU1RfUEJJMF9BMTAJCXxcCiAJCQkgT1J4U19OVU1SXzEyKQpAQCAtODMwLDcgKzgzMCw3IEBACiAgKiAgICAgLSBFeHRlcm5hbCBBZGRyZXNzIE11bHRpcGxleGluZyBkaXNhYmxlZAogICogICAgIC0gQ0FTIExhdGVuY3kgaXMgMi4KICAqLwotI2RlZmluZSBDRkdfTFNETVIJKFBTRE1SX1JGRU4JICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19MU0RNUgkoUFNETVJfUkZFTgkgICAgICB8XAogCQkJIFBTRE1SX1NEQU1fQTEzX0lTX0E1IHxcCiAJCQkgUFNETVJfQlNNQV9BMTVfQTE3ICAgfFwKIAkJCSBQU0RNUl9TREExMF9QQkkwX0ExMSB8XApAQCAtODQyLDcgKzg0Miw3IEBACiAJCQkgUFNETVJfV1JDXzFDCSAgICAgIHxcCiAJCQkgUFNETVJfQ0xfMikKIAotI2RlZmluZSBDRkdfTFNSVAkweDBlCisjZGVmaW5lIENPTkZJR19TWVNfTFNSVAkweDBlCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEJSNSAtIEJhc2UgUmVnaXN0ZXIKQEAgLTg3Myw3ICs4NzMsNyBAQAogICogICAgIC0gVmFsaWQKICAqLwogCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCSgoQ0ZHX01BSUxCT1hfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkoKENPTkZJR19TWVNfTUFJTEJPWF9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfOAkJCSB8XAogCQkJIEJSeF9ERUNDX05PTkUJCQkgfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJIHxcCkBAIC04OTEsNyArODkxLDcgQEAKICAqCSBjdXJyZW50IGJhbmsgYW5kIHRoZSBuZXh0IGFjY2Vzcy4KICAqLwogCi0jZGVmaW5lIENGR19PUjVfUFJFTElNICgoUDJTWl9UT19BTShDRkdfTUFJTEJPWF9TSVpFKSAmIH4weDgwMDAwMDAwKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0gKChQMlNaX1RPX0FNKENPTkZJR19TWVNfTUFJTEJPWF9TSVpFKSAmIH4weDgwMDAwMDAwKSB8XAogCQkJIE9SeEdfQUNTX0RJVjIJCQkJICAgICB8XAogCQkJIE9SeEdfU0NZXzE1X0NMSwkJCSAgICAgfFwKIAkJCSBPUnhHX1RSTFgJCQkJICAgICB8XApAQCAtOTIxLDcgKzkyMSw3IEBACiAgKiAgICAgLSBObyBkYXRhIHBpcGVsaW5pbmcgaXMgZG9uZQogICogICAgIC0gVmFsaWQKICAqLwotI2RlZmluZSBDRkdfQlI2X1BSRUxJTQkoKENGR19JT1NFTEVDVF9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjZfUFJFTElNCSgoQ09ORklHX1NZU19JT1NFTEVDVF9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSAgIEJSeF9QU18xNgkJCSAgfFwKIAkJCSAgIEJSeF9NU19HUENNX1AJCSAgfFwKIAkJCSAgIEJSeF9WKQpAQCAtOTM5LDcgKzkzOSw3IEBACiAgKgkgY3VycmVudCBiYW5rIGFuZCB0aGUgbmV4dCBhY2Nlc3MuCiAgKi8KIAotI2RlZmluZSBDRkdfT1I2X1BSRUxJTSAoTUVHX1RPX0FNKENGR19JT1NFTEVDVF9TSVpFKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SNl9QUkVMSU0gKE1FR19UT19BTShDT05GSUdfU1lTX0lPU0VMRUNUX1NJWkUpIHxcCiAJCQkgT1J4R19BQ1NfRElWMgkJICAgICB8XAogCQkJIE9SeEdfU0NZXzE1X0NMSwkgICAgIHxcCiAJCQkgT1J4R19UUkxYCQkgICAgIHxcCkBAIC05NTksNyArOTU5LDcgQEAKICAqICBMRURzICAgICBhcmUgYXQgMHgwMDAwMSAod3JpdGUgb25seSkKICAqICBzd2l0Y2hlcyBhcmUgYXQgMHgwMDAwMSAocmVhZCBvbmx5KQogICovCi0jaWZkZWYgQ0ZHX0xFRF9CQVNFCisjaWZkZWYgQ09ORklHX1NZU19MRURfQkFTRQogCiAvKiBCUjcgaXMgY29uZmlndXJlZCBhcyBmb2xsb3dzOgogICoKQEAgLTk3Myw3ICs5NzMsNyBAQAogICogICAgIC0gTm8gZGF0YSBwaXBlbGluaW5nIGlzIGRvbmUKICAqICAgICAtIFZhbGlkCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSN19QUkVMSU0JKChDRkdfTEVEX0JBU0UgJiBCUnhfQkFfTVNLKQkgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjdfUFJFTElNCSgoQ09ORklHX1NZU19MRURfQkFTRSAmIEJSeF9CQV9NU0spCSB8XAogCQkJICAgQlJ4X1BTXzgJCQkgfFwKIAkJCSAgIEJSeF9ERUNDX05PTkUJCSB8XAogCQkJICAgQlJ4X01TX0dQQ01fUAkJIHxcCkBAIC05OTMsMTMgKzk5MywxMyBAQAogICogICAgIC0gT25lIGlkbGUgY2xvY2sgaXMgaW5zZXJ0ZWQgYmV0d2VlbiBhIHJlYWQgYWNjZXNzIGZyb20gdGhlCiAgKgkgY3VycmVudCBiYW5rIGFuZCB0aGUgbmV4dCBhY2Nlc3MuCiAgKi8KLSNkZWZpbmUgQ0ZHX09SN19QUkVMSU0JKE9SeEdfQU1fTVNLCQkgICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjdfUFJFTElNCShPUnhHX0FNX01TSwkJICAgICAgIHxcCiAJCQkgT1J4R19DU05UCQkgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxCQkgICAgICAgfFwKIAkJCSBPUnhHX1NDWV8xNV9DTEsJICAgICAgIHxcCiAJCQkgT1J4R19UUkxYCQkgICAgICAgfFwKIAkJCSBPUnhHX0VIVFIpCi0jZW5kaWYgLyogQ0ZHX0xFRF9CQVNFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19MRURfQkFTRSAqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9wdXJwbGUuaCBiL2luY2x1ZGUvY29uZmlncy9wdXJwbGUuaAppbmRleCA1Y2M0ZmM3Li4yNTczYWExIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcHVycGxlLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3B1cnBsZS5oCkBAIC00Myw3ICs0Myw3IEBACiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTkyMDAKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lCUNPTkZJR19USU1FU1RBTVAJCS8qIFByaW50IGltYWdlIGluZm8gd2l0aCB0aW1lc3RhbXAgKi8KIApAQCAtOTksNDkgKzk5LDQ5IEBACiAjZGVmaW5lIENPTkZJR19DTURfRUxGCiAKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4ODAwMDAwMDAKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQgICAgICAweDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUICAgICAgMHg0MDAwMDAKIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJMTI4KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkxMjgqMTAyNAogCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkxMjgqMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTEyOCoxMDI0CiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIlBVUlBMRSAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpICAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUlQU19USU1FUl9GUkVRCShDUFVfQ0xPQ0tfUkFURS8yKQotI2RlZmluZSBDRkdfSFoJCQkxMDAwCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJQVVJQTEUgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUlQU19USU1FUl9GUkVRCShDUFVfQ0xPQ0tfUkFURS8yKQorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAorI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHg4MDUwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHg4MDUwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4ODAyMDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDgwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDgwMjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4ODA4MDAwMDAKIAogI2RlZmluZQlDT05GSUdfTUlTQ19JTklUX1IKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDM1KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgzNSkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweGIwMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KIAogLyogVGhlIGZvbGxvd2luZyAjZGVmaW5lcyBhcmUgbmVlZGVkIHRvIGdldCBmbGFzaCBlbnZpcm9ubWVudCByaWdodCAqLwotI2RlZmluZQlDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSg2ICogQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoNiAqIENGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSg2ICogQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSg2ICogQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKIApAQCAtMTU4LDE2ICsxNTgsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRENBQ0hFX1NJWkUJCTE2Mzg0Ci0jZGVmaW5lIENGR19JQ0FDSEVfU0laRQkJMTYzODQKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NJWkUJCTE2Mzg0CisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFX1NJWkUJCTE2Mzg0CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKIAogLyoKICAqIFRlbXBvcmFyeSBidWZmZXIgZm9yIHNlcmlhbCBkYXRhIHVudGlsIHRoZSByZWFsIHNlcmlhbCBkcml2ZXIKICAqIGlzIGluaXRpYWxpc2VkIChtZW10ZXN0IHdpbGwgZGVzdHJveSB0aGlzIGJ1ZmZlcikKICAqLwotI2RlZmluZSBDRkdfU0NPTlNPTEVfQUREUiAgICAgKENGR19TRFJBTV9CQVNFICsgQ0ZHX0lOSVRfU1BfT0ZGU0VUIC0gXAotCQkJICAgICAgIENGR19EQ0FDSEVfU0laRSAvIDIpCi0jZGVmaW5lIENGR19TQ09OU09MRV9TSVpFICAgICAoQ0ZHX0RDQUNIRV9TSVpFIC8gNCkKKyNkZWZpbmUgQ09ORklHX1NZU19TQ09OU09MRV9BRERSICAgICAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAtIFwKKwkJCSAgICAgICBDT05GSUdfU1lTX0RDQUNIRV9TSVpFIC8gMikKKyNkZWZpbmUgQ09ORklHX1NZU19TQ09OU09MRV9TSVpFICAgICAoQ09ORklHX1NZU19EQ0FDSEVfU0laRSAvIDQpCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcHhhMjU1X2lkcC5oIGIvaW5jbHVkZS9jb25maWdzL3B4YTI1NV9pZHAuaAppbmRleCAxYWZmZjVlLi5mODExMDNiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcHhhMjU1X2lkcC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9weGEyNTVfaWRwLmgKQEAgLTcxLDggKzcxLDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogUFhBMjUwIElEUCBtZW1vcnkgbWFwIGluZm9ybWF0aW9uCkBAIC0yMTksMzcgKzIxOSwzNyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIiQgIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2lmZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSIkICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNlbHNlCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHhhMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHhhMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4YTA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweGEwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweGEwODAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweGEwODAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMzY4NjQwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLwotI2RlZmluZSBDRkdfQ1BVU1BFRUQJCTB4MTYxCQkvKiBzZXQgY29yZSBjbG9jayB0byA0MDAvMjAwLzEwMCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVTUEVFRAkJMHgxNjEJCS8qIHNldCBjb3JlIGNsb2NrIHRvIDQwMC8yMDAvMTAwIE1IeiAqLwogCiAjZGVmaW5lIFJUQwkxCQkJCS8qIGVuYWJsZSAzMktIeiBvc2MgKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCi0jZGVmaW5lIENGR19NTUNfQkFTRQkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01NQ19CQVNFCQkweEYwMDAwMDAwCiAKIC8qCiAgKiBTdGFjayBzaXplcwpAQCAtMjgxLDcxICsyODEsNzEgQEAKICNkZWZpbmUgUEhZU19GTEFTSF9CQU5LX1NJWkUJMHgwMjAwMDAwMCAvKiAzMiBNQiBCYW5rcyAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDQwMDAwIC8qIDI1NiBLQiBzZWN0b3JzICh4MikgKi8KIAotI2RlZmluZSBDRkdfRFJBTV9CQVNFCQkweGEwMDAwMDAwCi0jZGVmaW5lIENGR19EUkFNX1NJWkUJCTB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBU0UJCTB4YTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1NJWkUJCTB4MDQwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKIC8qCiAgKiBHUElPIHNldHRpbmdzCiAgKi8KIAotI2RlZmluZSBDRkdfR0FGUjBfTF9WQUwJMHg4MDAwMTAwNQotI2RlZmluZSBDRkdfR0FGUjBfVV9WQUwJMHhhNTEyODAxMgotI2RlZmluZSBDRkdfR0FGUjFfTF9WQUwJMHg2OTlhOTU1OAotI2RlZmluZSBDRkdfR0FGUjFfVV9WQUwJMHhhYWE1YWE2YQotI2RlZmluZSBDRkdfR0FGUjJfTF9WQUwJMHhhYWFhYWFhYQotI2RlZmluZSBDRkdfR0FGUjJfVV9WQUwJMHgyCi0jZGVmaW5lIENGR19HUENSMF9WQUwJMHgxODAwNDAwCi0jZGVmaW5lIENGR19HUENSMV9WQUwJMHgwCi0jZGVmaW5lIENGR19HUENSMl9WQUwJMHgwCi0jZGVmaW5lIENGR19HUERSMF9WQUwJMHhjMTgxODQ0MAotI2RlZmluZSBDRkdfR1BEUjFfVkFMCTB4ZmNmZmFiODIKLSNkZWZpbmUgQ0ZHX0dQRFIyX1ZBTAkweDFmZmZmCi0jZGVmaW5lIENGR19HUFNSMF9WQUwJMHg4MDAwCi0jZGVmaW5lIENGR19HUFNSMV9WQUwJMHgzZjAwMDIKLSNkZWZpbmUgQ0ZHX0dQU1IyX1ZBTAkweDFjMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfTF9WQUwJMHg4MDAwMTAwNQorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX1VfVkFMCTB4YTUxMjgwMTIKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9MX1ZBTAkweDY5OWE5NTU4CisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfVV9WQUwJMHhhYWE1YWE2YQorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX0xfVkFMCTB4YWFhYWFhYWEKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9VX1ZBTAkweDIKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMF9WQUwJMHgxODAwNDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjFfVkFMCTB4MAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IyX1ZBTAkweDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMF9WQUwJMHhjMTgxODQ0MAorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIxX1ZBTAkweGZjZmZhYjgyCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjJfVkFMCTB4MWZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMF9WQUwJMHg4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjFfVkFMCTB4M2YwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjJfVkFMCTB4MWMwMDAKIAotI2RlZmluZSBDRkdfUFNTUl9WQUwJCTB4MjAKKyNkZWZpbmUgQ09ORklHX1NZU19QU1NSX1ZBTAkJMHgyMAogCiAvKgogICogTWVtb3J5IHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX01TQzBfVkFMCQkweDI5RENBNEQyCi0jZGVmaW5lIENGR19NU0MxX1ZBTAkJMHg0M0FDNDk0QwotI2RlZmluZSBDRkdfTVNDMl9WQUwJCTB4MzlENDQ5RDQKLSNkZWZpbmUgQ0ZHX01EQ05GR19WQUwJCTB4MDkwMDA5QzkKLSNkZWZpbmUgQ0ZHX01EUkVGUl9WQUwJCTB4MDA4NUMwMTcKLSNkZWZpbmUgQ0ZHX01ETVJTX1ZBTAkJMHgwMDIyMDAyMgorI2RlZmluZSBDT05GSUdfU1lTX01TQzBfVkFMCQkweDI5RENBNEQyCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMV9WQUwJCTB4NDNBQzQ5NEMKKyNkZWZpbmUgQ09ORklHX1NZU19NU0MyX1ZBTAkJMHgzOUQ0NDlENAorI2RlZmluZSBDT05GSUdfU1lTX01EQ05GR19WQUwJCTB4MDkwMDA5QzkKKyNkZWZpbmUgQ09ORklHX1NZU19NRFJFRlJfVkFMCQkweDAwODVDMDE3CisjZGVmaW5lIENPTkZJR19TWVNfTURNUlNfVkFMCQkweDAwMjIwMDIyCiAKIC8qCiAgKiBQQ01DSUEgYW5kIENGIEludGVyZmFjZXMKICAqLwotI2RlZmluZSBDRkdfTUVDUl9WQUwJCTB4MDAwMDAwMDMKLSNkZWZpbmUgQ0ZHX01DTUVNMF9WQUwJCTB4MDAwMTQ0MDUKLSNkZWZpbmUgQ0ZHX01DTUVNMV9WQUwJCTB4MDAwMTQ0MDUKLSNkZWZpbmUgQ0ZHX01DQVRUMF9WQUwJCTB4MDAwMTQ0MDUKLSNkZWZpbmUgQ0ZHX01DQVRUMV9WQUwJCTB4MDAwMTQ0MDUKLSNkZWZpbmUgQ0ZHX01DSU8wX1ZBTAkJMHgwMDAxNDQwNQotI2RlZmluZSBDRkdfTUNJTzFfVkFMCQkweDAwMDE0NDA1CisjZGVmaW5lIENPTkZJR19TWVNfTUVDUl9WQUwJCTB4MDAwMDAwMDMKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTBfVkFMCQkweDAwMDE0NDA1CisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0xX1ZBTAkJMHgwMDAxNDQwNQorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMF9WQUwJCTB4MDAwMTQ0MDUKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0FUVDFfVkFMCQkweDAwMDE0NDA1CisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzBfVkFMCQkweDAwMDE0NDA1CisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzFfVkFMCQkweDAwMDE0NDA1CiAKIC8qCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJUEhZU19GTEFTSF9TRUNUX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQlQSFlTX0ZMQVNIX1NFQ1RfU0laRQogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOCAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4ICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMjUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMjUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDI1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMjUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogLyogcHV0IGNmZyBhdCBlbmQgb2YgZmxhc2ggZm9yIG5vdyAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9xZW11LW1pcHMuaCBiL2luY2x1ZGUvY29uZmlncy9xZW11LW1pcHMuaAppbmRleCBmYWFhODg5Li5mMDI4ZDFhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcWVtdS1taXBzLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3FlbXUtbWlwcy5oCkBAIC00MSw3ICs0MSw3IEBACiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBDT05GSUdfVElNRVNUQU1QCQkvKiBQcmludCBpbWFnZSBpbmZvIHdpdGggdGltZXN0YW1wICovCiAjdW5kZWYgQ09ORklHX0JPT1RBUkdTCkBAIC03OSw3OCArNzksNzggQEAKICNkZWZpbmUgQ09ORklHX0RSSVZFUl9ORTIwMDAKICNkZWZpbmUgQ09ORklHX0RSSVZFUl9ORTIwMDBfQkFTRQkoMHhiNDAwMDMwMCkKIAotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTExNTIwMAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCSgweGI0MDAwM2Y4KQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkxMTUyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKDB4YjQwMDAzZjgpCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKIAogI2RlZmluZSBDT05GSUdfQ01EX0lERQogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkyCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJKDB4MWYwKQotI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUCSgweDE3MCkKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoMCkKLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgwKQotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkoMHhiNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkyCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCSgweDFmMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQJKDB4MTcwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCSgweGI0MDAwMDAwKQogCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCSg0KQorI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKDQpCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KIAotI2RlZmluZSBDRkdfUFJPTVBUCQkicWVtdS1taXBzICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkicWVtdS1taXBzICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpICAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJMTI4KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkxMjgqMTAyNAogCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkxMjgqMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTEyOCoxMDI0CiAKLSNkZWZpbmUgQ0ZHX01IWgkJCTEzMgorI2RlZmluZSBDT05GSUdfU1lTX01IWgkJCTEzMgogCi0jZGVmaW5lIENGR19NSVBTX1RJTUVSX0ZSRVEJKENGR19NSFogKiAxMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01JUFNfVElNRVJfRlJFUQkoQ09ORklHX1NZU19NSFogKiAxMDAwMDAwKQogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHg4MDAwMDAwMAkvKiBDYWNoZWQgYWRkciAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4ODAwMDAwMDAJLyogQ2FjaGVkIGFkZHIgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDgxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDgxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg4MDEwMDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4ODA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4ODAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHg4MDgwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KIAogLyogVGhlIGZvbGxvd2luZyAjZGVmaW5lcyBhcmUgbmVlZGVkIHRvIGdldCBmbGFzaCBlbnZpcm9ubWVudCByaWdodCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQogCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAkweDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCTB4NDAwMDAwCiAKIC8qIFdlIGJvb3QgZnJvbSB0aGlzIGZsYXNoLCBzZWxlY3RlZCB3aXRoIGRpcCBzd2l0Y2ggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4YmZjMDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBtZW1vcnkgaXMgQ0ZJIGNvbXBsaWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4YmZjMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBtZW1vcnkgaXMgQ0ZJIGNvbXBsaWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMDAwKQogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFByaW1hcnkgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg4MDAwCkBAIC0xNjYsOCArMTY2LDggQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRENBQ0hFX1NJWkUJCTE2Mzg0Ci0jZGVmaW5lIENGR19JQ0FDSEVfU0laRQkJMTYzODQKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NJWkUJCTE2Mzg0CisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFX1NJWkUJCTE2Mzg0CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9xdWFkMTAwaGQuaCBiL2luY2x1ZGUvY29uZmlncy9xdWFkMTAwaGQuaAppbmRleCAyZTczZmY3Li4xYTc2MzAxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcXVhZDEwMGhkLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3F1YWQxMDBoZC5oCkBAIC00OSw3ICs0OSw3IEBACiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQkJMQogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkweDAxCS8qIFBIWSBhZGRyZXNzCQkJKi8KLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLwogI2RlZmluZSBDT05GSUdfUEhZX1JFU0VUCTEKICNkZWZpbmUgQ09ORklHX1BIWV9SRVNFVF9ERUxBWQkzMDAJLyogUEhZIFJFU0VUIHJlY292ZXJ5IGRlbGF5CSovCiAKQEAgLTg0LDU5ICs4NCw1OSBAQAogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzAgIDEKIAogLyogRklYISBTRFJBTSB0aW1pbmdzIHVzZWQgaW4gZGF0YXNoZWV0ICovCi0jZGVmaW5lIENGR19TRFJBTV9DTCAgICAgICAgICAgIDMgICAgICAgLyogQ0FTIGxhdGVuY3kgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX3RSUCAgICAgICAgICAgMjAgICAgICAvKiBQUkVDSEFSR0UgY29tbWFuZCBwZXJpb2QgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX3RSQyAgICAgICAgICAgNjYgICAgICAvKiBBQ1RJVkUtdG8tQUNUSVZFIGNvbW1hbmQgcGVyaW9kICovCi0jZGVmaW5lIENGR19TRFJBTV90UkNEICAgICAgICAgIDIwICAgICAgLyogQUNUSVZFLXRvLVJFQUQgZGVsYXkgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX3RSRkMgICAgICAgICAgNjYgICAgICAvKiBBdXRvIHJlZnJlc2ggcGVyaW9kICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ0wgICAgICAgICAgICAzICAgICAgIC8qIENBUyBsYXRlbmN5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fdFJQICAgICAgICAgICAyMCAgICAgIC8qIFBSRUNIQVJHRSBjb21tYW5kIHBlcmlvZCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX3RSQyAgICAgICAgICAgNjYgICAgICAvKiBBQ1RJVkUtdG8tQUNUSVZFIGNvbW1hbmQgcGVyaW9kICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fdFJDRCAgICAgICAgICAyMCAgICAgIC8qIEFDVElWRS10by1SRUFEIGRlbGF5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fdFJGQyAgICAgICAgICA2NiAgICAgIC8qIEF1dG8gcmVmcmVzaCBwZXJpb2QgKi8KIAogLyoKICAqIEpGRlMyCiAgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX0JBTksgICAgMAotI2lmZGVmICBDRkdfS0VSTkVMX0lOX0pGRlMyCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9TRUNUT1IgIDAgICAvKiBKRkZTIHN0YXJ0cyBhdCBibG9jayAwICovCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOSyAgICAwCisjaWZkZWYgIENPTkZJR19TWVNfS0VSTkVMX0lOX0pGRlMyCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfU0VDVE9SICAwICAgLyogSkZGUyBzdGFydHMgYXQgYmxvY2sgMCAqLwogI2Vsc2UgLyoga2VybmVsIG5vdCBpbiBKRkZTICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9TRUNUT1IgIDggICAvKiBibG9jayAwLTcgaXMga2VybmVsICgxTUIgPSA4IHNlY3RvcnMpICovCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfU0VDVE9SICA4ICAgLyogYmxvY2sgMC03IGlzIGtlcm5lbCAoMU1CID0gOCBzZWN0b3JzKSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MgICAgIDEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIFBvcnQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJCQkvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkJNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCQkJLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECQk2OTEyMDAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKICNkZWZpbmUgQ09ORklHX1NFUklBTF9NVUxUSQogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSAgICAgICAgIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSAgICAgICAgIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgICAgMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkgICAgICAgIDEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJICAgICAgICAyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgICAyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFICAgICAgICAgICAgICAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCSAgICAgICAgMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCSAgICAgICAgQ0ZHX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFICAgICAgICAgICAgICAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCSAgICAgICAgMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkgICAgICAgIENPTkZJR19TWVNfQ0JTSVpFIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAgLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMCAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2luZm8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2luZm8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwogI2RlZmluZSBDT05GSUdfTE9PUFcgICAgICAgICAgICAxICAgICAgIC8qIGVuYWJsZSBsb29wdyBjb21tYW5kICAgICAgICAgKi8KQEAgLTE0OSw1MyArMTQ5LDUzIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMgkJLyogYnl0ZXMgb2YgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTIJCS8qIGJ5dGVzIG9mIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qIDggYnl0ZSB3cml0ZSBwYWdlIHNpemUgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCi0jZGVmaW5lIENGR19FRVBST01fU0laRQkJCTB4MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiA4IGJ5dGUgd3JpdGUgcGFnZSBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fU0laRQkJCTB4MjAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkMwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShURVhUX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZDMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoVEVYVF9CQVNFKQogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLwogI2RlZmluZQlDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICovCi0jZGVmaW5lIENGR19GTEFTSF9JTkNSRU1FTlQgICAgICAwICAgICAgIC8qIHRoZXJlIGlzIG9ubHkgb25lIGJhbmsgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVCAgICAgIDAgICAgICAgLyogdGhlcmUgaXMgb25seSBvbmUgYmFuayAgICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoICovCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCSovCkBAIC0yMTAsMjEgKzIxMCwyMSBAQAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MDAJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycyAqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRU5BQkxFX0NSQ18xNgkxICAgICAgIC8qIEludHJpbnN5YyBmb3JtYXR0aW5nIHVzZWQgY3JjMTYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FTkFCTEVfQ1JDXzE2CTEgICAgICAgLyogSW50cmluc3ljIGZvcm1hdHRpbmcgdXNlZCBjcmMxNiAqLwogI2VuZGlmCiAKIC8qIHBhcnRseSBmcm9tIFBQQ0Jvb3QgKi8KIC8qIE5BTkQgKi8KICNkZWZpbmUgQ09ORklHX05BTkQKICNpZmRlZiBDT05GSUdfTkFORAotI2RlZmluZSBDRkdfTkFORF9CQVNFICAgMHg2MDAwMDAwMAotI2RlZmluZSBDRkdfTkFORF9DUwkxMCAgIC8qIG91ciBDUyBpcyBHUElPMTAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUkRZCTIzICAgLyogb3VyIFJEWSBpcyBHUElPMjMgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQ0UJMjQgICAvKiBvdXIgQ0UgaXMgR1BJTzI0ICAqLwotI2RlZmluZSBDRkdfTkFORF9DTEUJMzEgICAvKiBvdXIgQ0xFIGlzIEdQSU8zMSAqLwotI2RlZmluZSBDRkdfTkFORF9BTEUJMzAgICAvKiBvdXIgQUxFIGlzIEdQSU8zMCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRSAgIDB4NjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NTCTEwICAgLyogb3VyIENTIGlzIEdQSU8xMCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUkRZCTIzICAgLyogb3VyIFJEWSBpcyBHUElPMjMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NFCTI0ICAgLyogb3VyIENFIGlzIEdQSU8yNCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NMRQkzMSAgIC8qIG91ciBDTEUgaXMgR1BJTzMxICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9BTEUJMzAgICAvKiBvdXIgQUxFIGlzIEdQSU8zMCAqLwogI2RlZmluZSBOQU5EX01BWF9DSElQUwkxCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjMyLDE3ICsyMzIsMTcgQEAKICAqLwogLyogdXNlIG9uIGNoaXAgbWVtb3J5IChPQ00pIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCiAvKiBzZWUgLi9jcHUvcHBjNHh4L3N0YXJ0LlMgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkxCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBPQ00JCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBPQ00JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICAgICAgQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUICAgICAgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXh0ZXJuYWwgQnVzIENvbnRyb2xsZXIgKEVCQykgU2V0dXAKQEAgLTI1MCwxNyArMjUwLDE3IEBACiAgKi8KIAogLyogc2VlIC4vY3B1L3BwYzR4eC9jcHVfaW5pdC5jIC4vY3B1L3BwYzR4eC9uZGZjLmMgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwNDAwMjQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgwNDAwMjQ4MAogLyogQU1EIE5PUiBmbGFzaCAtIHRoaXMgY29ycmVzcG9uZHMgdG8gRkxBU0hfQkFTRSBzbyBtYXkgYmUgY29ycmVjdCAqLwotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwCi0jZGVmaW5lIENGR19FQkNfUEIxQVAgICAgICAgICAgIDB4MDQwMDU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUiAgICAgICAgICAgMHg2MDAxODAwMAotI2RlZmluZSBDRkdfRUJDX1BCMkFQICAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IgICAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUCAgICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRUJDX1BCM0NSICAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19FQkNfUEI0QVAgICAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjRDUiAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUCAgICAgICAgICAgMHgwNDAwNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUiAgICAgICAgICAgMHg2MDAxODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUCAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUiAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUCAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUiAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUCAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUiAgICAgICAgICAgMHgwMDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgR1BJTyBzZXR1cCAoUFBDNDA1RVAgc3BlY2lmaWMpCkBAIC0yNjgsMTQgKzI2OCwxNCBAQAogICogVGFrZW4gaW4gcGFydCBmcm9tIFBQQ0Jvb3QgYm9hcmQvaWNlY3ViZS9pY2VjdWJlLmgKICAqLwogLyogc2VlIC4vY3B1L3BwYzR4eC9jcHVfaW5pdC5jIC4vY3B1L3BwYzR4eC9zdGFydC5TICovCi0jZGVmaW5lIENGR19HUElPMF9PU1JICQkweDU1NTU1NTUwCi0jZGVmaW5lIENGR19HUElPMF9PU1JMCQkweDAwMDAwMTEwCi0jZGVmaW5lIENGR19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUwJCTB4MTU1NTU0NDUKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkgJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RDUgkJMHhGRkZGODA5NwotI2RlZmluZSBDRkdfR1BJTzBfT0RSCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSSAkJMHg1NTU1NTU1MAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFMCQkweDE1NTU1NDQ1CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UQ1IJCTB4RkZGRjgwOTcKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PRFIJCTB4MDAwMDAwMDAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQogI2RlZmluZSBDT05GSUdfS0dEQl9CQVVEUkFURQkyMzA0MDAJCS8qIHNwZWVkIHRvIHJ1biBrZ2RiIHNlcmlhbCBwb3J0ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcXVhbnR1bS5oIGIvaW5jbHVkZS9jb25maWdzL3F1YW50dW0uaAppbmRleCBmMjY0NjE1Li5lNDQwZTkzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcXVhbnR1bS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9xdWFudHVtLmgKQEAgLTcyLDEwICs3MiwxMCBAQAogLyoKICAqIFNlbGVjdCB0aGUgbW9yZSBmdWxsLWZlYXR1cmVkIG1lbW9yeSB0ZXN0IChCYXJyIGVtYmVkZGVkIHN5c3RlbXMpCiAgKi8KLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKIAogLyogTTQ4VDAyIFBhcmFsbGVkIGFjY2VzcyB0aW1la2VlcGVyIHdpdGggc2FtZSBpbnRlcmZhY2UgYXMgdGhlIE00OFQzNUEqLwpAQCAtODgsOCArODgsOCBAQAogI2VuZGlmCiAKIC8qICBOVlJBTSBhbmQgUlRDICovCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIgMHhGQTAwMDAwMAotI2RlZmluZSBDRkdfTlZSQU1fU0laRSAyMDQ4CisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSIDB4RkEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFIDIwNDgKIAogCiAvKgpAQCAtMTIyLDI1ICsxMjIsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDQwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAxZjAwMDAwCS8qIDI1NksgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwNDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAxZjAwMDAwCS8qIDI1NksgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE1MCwyNCArMTUwLDI0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkEyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZBMjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCTB4RkYwMDAwMDAKIAogI2lmIDEKICAgICAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCkBAIC0xNzcsNDIgKzE3Nyw0MiBAQAogCiAKICNpZmRlZiBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotICAgICNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSSAxCi0gICAgI3VuZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCi0gICAgI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVCB7Q0ZHX0ZMQVNIX0JBU0V9CisgICAgI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSSAxCisgICAgI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorICAgICNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUIHtDT05GSUdfU1lTX0ZMQVNIX0JBU0V9CiAjZW5kaWYKIAotLyolJSUgI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkYwMDAwMCAqLworLyolJSUgI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGMDAwMDAgKi8KICNpZiBkZWZpbmVkKERFQlVHKSB8fCBkZWZpbmVkKENPTkZJR19DTURfSURFKQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCiAjZWxzZQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBNb25pdG9yCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweEZGRjAwMDAwCi0vKiUlJSAjZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweEZGRjAwMDAwCisvKiUlJSAjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCSAgICAweDAwRjQwMDAwCS8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCWFic29sdXRlIGFkZHJlc3MgMHhmZmY0MDAwMCovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlDT05GSUdfRU5WX1NFQ1RfU0laRQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQrQ09ORklHX0VOVl9TSVpFKQpAQCAtMjIwLDIxICsyMjAsMjEgQEAKIAogLyogRlBHQSAqLwogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1BBUlRBTjIKLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSZXNldCBhZGRyZXNzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJKCh1bG9uZykoKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY2xrcnN0LnJlcykpKQorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJKCh1bG9uZykoKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2Nsa3JzdC5yZXMpKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNDQsMTAgKzI0NCwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCAweDAwMDAwNjAwIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgMHgwMDAwMDYwMCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTUsMjggKzI1NSwyOCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfTUxSQzEwKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX01MUkMxMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYgfCBUQlNDUl9UQkUpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGIHwgVEJTQ1JfVEJFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLS8qJSUlI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKSAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX1JURSkKKy8qJSUlI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUiAoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSIChQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI4Nyw3ICsyODcsNyBAQAogICogSWYgdGhpcyBpcyBhIDgwIE1IeiBDUFUsIHNldCBQTEwgbXVsdGlwbGljYXRpb24gZmFjdG9yIHRvIDUgKDUqMTY9ODApIQogICovCiAvKiB1cCB0byA1MCBNSHogd2UgdXNlIGEgMToxIGNsb2NrICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKCAoNSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwgUExQUkNSX1RFWFBTICkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCAoNSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwgUExQUkNSX1RFWFBTICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTI5NywyMSArMjk3LDIxIEBACiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjAwCiAvKiB1cCB0byA1MCBNSHogd2UgdXNlIGEgMToxIGNsb2NrICovCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTAwIHwgU0NDUl9UQlMpCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCB8IFNDQ1JfVEJTKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzI0LDI5ICszMjQsMjkgQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRAkgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0vKiNkZWZpbmUJQ0ZHX0RFUiAweDIwMDIwMDBGKi8KLSNkZWZpbmUgQ0ZHX0RFUiAwCisvKiNkZWZpbmUJQ09ORklHX1NZU19ERVIgMHgyMDAyMDAwRiovCisjZGVmaW5lIENPTkZJR19TWVNfREVSIDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNTUsMTMgKzM1NSwxMyBAQAogICovCiAKICNkZWZpbmUgRkxBU0hfQkFTRV9QUkVMSU0JMHhGRTAwMDAwMAkvKiBGTEFTSCBiYXNlICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRTAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRTAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAwLCBUUkxYID0gMCwgQ1NOVCA9IDAsIFNDWSA9IDQsIEVUSFIgPSAwLCBCSUggPSAxICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0ggKE9SX1NDWV80X0NMSyB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCAoT1JfU0NZXzRfQ0xLIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfVikKIAogLyoKICAqIEJSMSBhbmQgT1IxIChTRFJBTSkKQEAgLTM3MSwzNiArMzcxLDM2IEBACiAjZGVmaW5lIFNEUkFNX01BWF9TSVpFCQkweDA4MDAwMDAwCS8qIG1heCAxMjggTUIgKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwRTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBFMDAKIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkoMHhGMDAwMDAwMCB8IENGR19PUl9USU1JTkdfU0RSQU0gKSAvKiBtYXAgMjU2IE1CICovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoU0RSQU1fQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JKDB4RjAwMDAwMDAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApIC8qIG1hcCAyNTYgTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoU0RSQU1fQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAvKiBSUFhMSVRFIG1lbSBzZXR0aW5nICovCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCTB4RkE0MDAwMDEJCS8qIEZQR0EgKi8KLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JMHhGRkZGODkxMAorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JMHhGQTQwMDAwMQkJLyogRlBHQSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JMHhGRkZGODkxMAogCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCTB4RkEwMDA0MDEJCS8qIE5WUkFNJlNSQU0gKi8KLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JMHhGRkZFMDk3MAorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0JMHhGQTAwMDQwMQkJLyogTlZSQU0mU1JBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JMHhGRkZFMDk3MAogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkyMAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTIwCiAKIC8qCiAgKiBSZWZyZXNoIGNsb2NrIFByZXNjYWxhcgogICovCi0jZGVmaW5lIENGR19NUFRQUglNUFRQUl9QVFBfRElWMgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCU1QVFBSX1BUUF9ESVYyCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMTZYIHwgTUFNUl9XTEZBXzE2WCB8IE1BTVJfVExGQV8xNlgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9yMmRwbHVzLmggYi9pbmNsdWRlL2NvbmZpZ3MvcjJkcGx1cy5oCmluZGV4IDQxYTJhMTUuLjY5MjE3NTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9yMmRwbHVzLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3IyZHBsdXMuaApAQCAtMzYsNjYgKzM2LDY2IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEKIAogLyogU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCSgweDhDMDAwMDAwKQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJKDB4MDQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJKDB4OEMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJKDB4MDQwMDAwMDApCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgotI2RlZmluZSBDRkdfUEJTSVpFCQkyNTYKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2Ci0jZGVmaW5lIENGR19CQVJHU0laRQkJNTEyCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCTUxMgogLyogTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZSBzZXR0aW5ncyBmb3IgdGhpcyBib2FyZCAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAsIDU3NjAwLCAzODQwMCwgMTkyMDAsIDk2MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwLCA1NzYwMCwgMzg0MDAsIDE5MjAwLCA5NjAwIH0KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkoQ0ZHX1NEUkFNX0JBU0UpCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKFRFWFRfQkFTRSAtIDB4MTAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJKENPTkZJR19TWVNfU0RSQU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKFRFWFRfQkFTRSAtIDB4MTAwMDAwKQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCShDRkdfU0RSQU1fQkFTRSArIDMyICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMzIgKiAxMDI0ICogMTAyNCkKIC8qIEFkZHJlc3Mgb2YgdS1ib290IGltYWdlIGluIEZsYXNoICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkKIC8qIFNpemUgb2YgRFJBTSByZXNlcnZlZCBmb3IgbWFsbG9jKCkgdXNlICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEwMjQgKiAxMDI0KQogLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCSgyNTYpCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkoMjU2KQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggKiAxMDI0ICogMTAyNCkKIAogLyoKICAqIE5PUiBGbGFzaCAoIFNwYW50aW9uIFMyOUdMMjU2UCApCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJKDB4QTAwMDAwMDApCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MgKDEpCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVCAgMjU2Ci0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCSgweEEwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAoMSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgMjU2CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRSAgICAgICAgKENPTkZJR19FTlZfU0VDVF9TSVpFKQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgIChDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAKIC8qCiAgKiBTdXBlckggQ2xvY2sgc2V0dGluZwogICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJNjAwMDAwMDAKICNkZWZpbmUgVE1VX0NMS19ESVZJREVSCQk0Ci0jZGVmaW5lIENGR19IWgkJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gVE1VX0NMS19ESVZJREVSKQotI2RlZmluZQlDRkdfUExMX1NFVFRMSU5HX1RJTUUJMTAwLyogaW4gdXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gVE1VX0NMS19ESVZJREVSKQorI2RlZmluZQlDT05GSUdfU1lTX1BMTF9TRVRUTElOR19USU1FCTEwMC8qIGluIHVzICovCiAKIC8qCiAgKiBJREUgc3VwcG9ydAogICovCiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJMQotI2RlZmluZSBDRkdfUElPX01PREUJCTEKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEgLyogSURFIGJ1cyAqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4YjQwMDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUJCTIgLyogMWJpdCBzaGlmdCAqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MTAwMAkvKiBkYXRhIHJlZyBvZmZzZXQgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MTAwMAkvKiByZWcgb2Zmc2V0ICovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDgwMAkvKiBhbHRlcm5hdGUgcmVnaXN0ZXIgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUElPX01PREUJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxIC8qIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4YjQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfU1RSSURFCQkyIC8qIDFiaXQgc2hpZnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgxMDAwCS8qIGRhdGEgcmVnIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MTAwMAkvKiByZWcgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHg4MDAJLyogYWx0ZXJuYXRlIHJlZ2lzdGVyIG9mZnNldCAqLwogCiAvKgogICogU3VwZXJIIFBDSSBCcmlkZ2UgQ29uZmlncmF0aW9uCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvcjc3ODBtcC5oIGIvaW5jbHVkZS9jb25maWdzL3I3NzgwbXAuaAppbmRleCA0ZjNmOGU1Li5mODVkNWQ2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvcjc3ODBtcC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9yNzc4MG1wLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNkZWZpbmUgQ09ORklHX1NINEEJCTEKICNkZWZpbmUgQ09ORklHX0NQVV9TSDc3ODAJMQogI2RlZmluZSBDT05GSUdfUjc3ODBNUAkJMQotI2RlZmluZSBDRkdfUjc3ODBNUF9PTERfRkxBU0gJMQorI2RlZmluZSBDT05GSUdfU1lTX1I3NzgwTVBfT0xEX0ZMQVNICTEKICNkZWZpbmUgX19MSVRUTEVfRU5ESUFOX18gMQogCiAvKgpAQCAtNjAsNjkgKzYwLDY5IEBACiAvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAvKiNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLKi8KIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJKDB4MDgwMDAwMDApCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkoMTI4ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJKDB4MDgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJKDEyOCAqIDEwMjQgKiAxMDI0KQogCi0jZGVmaW5lIENGR19MT05HSEVMUAotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJMjU2Ci0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgotI2RlZmluZSBDRkdfQkFSR1NJWkUJNTEyCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJNTEyCiAvKiBMaXN0IG9mIGxlZ2FsIGJhdWRyYXRlIHNldHRpbmdzIGZvciB0aGlzIGJvYXJkICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCwgNTc2MDAsIDM4NDAwLCAxOTIwMCwgOTYwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAsIDU3NjAwLCAzODQwMCwgMTkyMDAsIDk2MDAgfQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCShDRkdfU0RSQU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoVEVYVF9CQVNFIC0gMHgxMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkoQ09ORklHX1NZU19TRFJBTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoVEVYVF9CQVNFIC0gMHgxMDAwMDApCiAKIC8qIEZsYXNoIGJvYXJkIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCSgweEEwMDAwMDAwKQotI2lmZGVmIENGR19SNzc4ME1QX09MRF9GTEFTSAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCSgweEEwMDAwMDAwKQorI2lmZGVmIENPTkZJR19TWVNfUjc3ODBNUF9PTERfRkxBU0gKIC8qIE5PUiBGbGFzaCAoUzI5UEwxMjdKNjBURkkxMzApICovCi0jIGRlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8zMkJJVAotIyBkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkoMikKLSMgZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNzAKLSMgZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UsXAotCQkJCUNGR19GTEFTSF9CQVNFICsgMHgxMDAwMDAsXAotCQkJCUNGR19GTEFTSF9CQVNFICsgMHg0MDAwMDAsXAotCQkJCUNGR19GTEFTSF9CQVNFICsgMHg3MDAwMDAsIH0KLSNlbHNlIC8qIENGR19SNzc4ME1QX09MRF9GTEFTSCAqLworIyBkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzMyQklUCisjIGRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkoMikKKyMgZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjcwCisjIGRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsXAorCQkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MTAwMDAwLFwKKwkJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMDAwMCxcCisJCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg3MDAwMDAsIH0KKyNlbHNlIC8qIENPTkZJR19TWVNfUjc3ODBNUF9PTERfRkxBU0ggKi8KIC8qIE5PUiBGbGFzaCAoU3BhbnRpb24gUzI5R0wyNTZQKSAqLwotIyBkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkoMSkKLSMgZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJMjU2Ci0jIGRlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KLSNlbmRpZiAvKiBDRkdfUjc3ODBNUF9PTERfRkxBU0ggKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCSgxKQorIyBkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJMjU2CisjIGRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQorI2VuZGlmIC8qIENPTkZJR19TWVNfUjc3ODBNUF9PTERfRkxBU0ggKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkoQ0ZHX1NEUkFNX0JBU0UgKyA0ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgNCAqIDEwMjQgKiAxMDI0KQogLyogQWRkcmVzcyBvZiB1LWJvb3QgaW1hZ2UgaW4gRmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQogLyogU2l6ZSBvZiBEUkFNIHJlc2VydmVkIGZvciBtYWxsb2MoKSB1c2UgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjA0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTIwNCAqIDEwMjQpCiAKIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkoMjU2KQotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCAqIDEwMjQgKiAxMDI0KQotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkoOCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCSgyNTYpCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJKDgpCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI3VuZGVmIENGR19GTEFTSF9DRklfQlJPS0VOX1RBQkxFCi0jdW5kZWYgIENGR19GTEFTSF9RVUlFVF9URVNUCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSF9DRklfQlJPS0VOX1RBQkxFCisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAogLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJKDI1NiAqIDEwMjQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKENPTkZJR19FTlZfU0VDVF9TSVpFKQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCiAKIC8qIEJvYXJkIENsb2NrICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMzMzMzMzMzMKICNkZWZpbmUgVE1VX0NMS19ESVZJREVSCQk0Ci0jZGVmaW5lIENGR19IWgkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKIAogLyogUENJIENvbnRyb2xsZXIgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfUENJKQpAQCAtMTU3LDE0ICsxNTcsMTQgQEAKIC8qIENvbXBhY3QgZmxhc2ggU3VwcG9ydCAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9JREUpCiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQgICAgICAgIDEKLSNkZWZpbmUgQ0ZHX1BJT19NT0RFICAgICAgICAgICAgMQotI2RlZmluZSBDRkdfSURFX01BWEJVUyAgICAgICAgICAxICAgLyogSURFIGJ1cyAqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRSAgICAgICAxCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSICAgICAgIDB4YjQwMDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUgICAgICAgICAgMiAgICAgICAgICAgICAgIC8qIDFiaXQgc2hpZnQgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVCAgICAgMHgxMDAwICAgICAgICAgIC8qIGRhdGEgcmVnIG9mZnNldCAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQgICAgICAweDEwMDAgICAgICAgICAgLyogcmVnIG9mZnNldCAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQgICAgICAweDgwMCAgICAgICAgICAgLyogYWx0ZXJuYXRlIHJlZ2lzdGVyIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BJT19NT0RFICAgICAgICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMgICAgICAgICAgMSAgIC8qIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSICAgICAgIDB4YjQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfU1RSSURFICAgICAgICAgIDIgICAgICAgICAgICAgICAvKiAxYml0IHNoaWZ0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUICAgICAweDEwMDAgICAgICAgICAgLyogZGF0YSByZWcgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQgICAgICAweDEwMDAgICAgICAgICAgLyogcmVnIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUICAgICAgMHg4MDAgICAgICAgICAgIC8qIGFsdGVybmF0ZSByZWdpc3RlciBvZmZzZXQgKi8KICNlbmRpZiAvKiBDT05GSUdfQ01EX0lERSAqLwogCiAjZW5kaWYgLyogX19SNzc4MFJQX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9yZWR3b29kLmggYi9pbmNsdWRlL2NvbmZpZ3MvcmVkd29vZC5oCmluZGV4IGRhYzMyM2IuLjRiNzQ0YTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9yZWR3b29kLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3JlZHdvb2QuaApAQCAtNDYsNDkgKzQ2LDQ5IEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmZmMDAwMDAJLyogc3RhcnQgb2YgRkxBU0gJKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRQkweGEwMDAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCi0jZGVmaW5lIENGR19JU1JBTV9CQVNFCQkweDkwMDAwMDAwCS8qIGludGVybmFsIFNSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmZjAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFCTB4YTAwMDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JU1JBTV9CQVNFCQkweDkwMDAwMDAwCS8qIGludGVybmFsIFNSQU0JKi8KIAotI2RlZmluZSBDRkdfUENJX0JBU0UJCTB4ZDAwMDAwMDAJLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFTRQkJMHhkMDAwMDAwMAkvKiBpbnRlcm5hbCBQQ0kgcmVncwkqLwogCi0jZGVmaW5lIENGR19QQ0lFX01FTUJBU0UJMHg5MDAwMDAwMAkvKiBtYXBwZWQgUENJZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BDSUUwX01FTUJBU0UJMHg5MDAwMDAwMAkvKiBtYXBwZWQgUENJZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTUJBU0UJMHhhMDAwMDAwMAkvKiBtYXBwZWQgUENJZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BDSUVfTUVNU0laRQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9NRU1CQVNFCTB4OTAwMDAwMDAJLyogbWFwcGVkIFBDSWUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTBfTUVNQkFTRQkweDkwMDAwMDAwCS8qIG1hcHBlZCBQQ0llIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTUJBU0UJMHhhMDAwMDAwMAkvKiBtYXBwZWQgUENJZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX01FTVNJWkUJMHgwMTAwMDAwMAogCi0jZGVmaW5lIENGR19QQ0lFMF9YQ0ZHQkFTRQkweGIwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9YQ0ZHQkFTRQkweGIyMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMl9YQ0ZHQkFTRQkweGI0MDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMF9DRkdCQVNFCTB4YjYwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX0NGR0JBU0UJMHhiODAwMDAwMAotI2RlZmluZSBDRkdfUENJRTJfQ0ZHQkFTRQkweGJhMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTBfWENGR0JBU0UJMHhiMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX1hDRkdCQVNFCTB4YjIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9YQ0ZHQkFTRQkweGI0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTBfQ0ZHQkFTRQkweGI2MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfQ0ZHQkFTRQkweGI4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfQ0ZHQkFTRQkweGJhMDAwMDAwCiAKIC8qIFBDSWUgbWFwcGVkIFVUTCByZWdpc3RlcnMgKi8KLSNkZWZpbmUgQ0ZHX1BDSUUwX1JFR0JBU0UgICAweGQwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9SRUdCQVNFICAgMHhkMDAxMDAwMAotI2RlZmluZSBDRkdfUENJRTJfUkVHQkFTRSAgIDB4ZDAwMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMF9SRUdCQVNFICAgMHhkMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX1JFR0JBU0UgICAweGQwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfUkVHQkFTRSAgIDB4ZDAwMjAwMDAKIAogLyogU3lzdGVtIFJBTSBtYXBwZWQgdG8gUENJIHNwYWNlICovCi0jZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9CVVMJQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX1BIWVMJQ0ZHX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX0JVUwlDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX1BIWVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCiAjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9TSVpFCSgxMDI0ICogMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRQkJMHhlMjAwMDAwMAkvKiBlcGxkCQkJKi8KLSNkZWZpbmUgQ0ZHX09QRVJfRkxBU0gJCTB4ZTcwMDAwMDAJLyogU1JBTSAtIE9QRVIgRmxhc2gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0UJCTB4ZTIwMDAwMDAJLyogZXBsZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1BFUl9GTEFTSAkJMHhlNzAwMDAwMAkvKiBTUkFNIC0gT1BFUiBGbGFzaAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIFJBTSAmIHN0YWNrIHBvaW50ZXIgKHBsYWNlZCBpbiBpbnRlcm5hbCBTUkFNKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCTEKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJQ0ZHX0lTUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lTUkFNX0JBU0UJLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JMQorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJQ09ORklHX1NZU19JU1JBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lTUkFNX0JBU0UJLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDIwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19QT1NUX1dPUkRfQUREUgkoQ0ZHX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19QT1NUX1dPUkRfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRERSIFNEUkFNCkBAIC05Niw3ICs5Niw3IEBACiAjZGVmaW5lIENPTkZJR19TUERfRUVQUk9NCTEJLyogVXNlIFNQRCBFRVBST00gZm9yIHNldHVwCSovCiAjZGVmaW5lIENPTkZJR19ERFJfRUNDCQkxCS8qIHdpdGggRUNDIHN1cHBvcnQJCSovCiAKLSNkZWZpbmUgQ0ZHX1NQRF9NQVhfRElNTVMJMgorI2RlZmluZSBDT05GSUdfU1lTX1NQRF9NQVhfRElNTVMJMgogCiAvKiBTUEQgaTJjIHNwZCBhZGRyZXNzZXMgKi8KICNkZWZpbmUgU1BEX0VFUFJPTV9BRERSRVNTICAgICB7SUlDMF9ESU1NMF9BRERSLCBJSUMwX0RJTU0xX0FERFJ9CkBAIC0xMDYsMTUgKzEwNiwxNSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQJCQkqLwogCiAjZGVmaW5lIElJQzBfQk9PVFBST01fQUREUgkweDUwCiAjZGVmaW5lIElJQzBfQUxUX0JPT1RQUk9NX0FERFIJMHg1NAogCiAvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXsweDUwLCAweDUyLCAweDUzLCAweDU0fQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7MHg1MCwgMHg1MiwgMHg1MywgMHg1NH0KIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkyCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkyCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVudmlyb25tZW50CkBAIC0xNjQsMTYgKzE2NCwxNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyCSovCi0jZGVmaW5lIENGR19GTEFTSF9DRklfQU1EX1JFU0VUIDEJLyogVXNlIEFNRCAoU3BhbnNpb24pIHJlc2V0IGNtZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9BTURfUkVTRVQgMQkvKiBVc2UgQU1EIChTcGFuc2lvbikgcmVzZXQgY21kICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkzCS8qIG51bWJlciBvZiBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBzZWN0b3JzIHBlciBkZXZpY2UJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTMJLyogbnVtYmVyIG9mIGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBzZWN0b3JzIHBlciBkZXZpY2UJCSovCiAKLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9ybXUuaCBiL2luY2x1ZGUvY29uZmlncy9ybXUuaAppbmRleCAwYzBiMjA2Li5kODhhZTgxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvcm11LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3JtdS5oCkBAIC01NywxNCArNTcsMTQgQEAKIAkiYm9vdG0iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAvKiBlbmFibGUgSTJDIGFuZCBzZWxlY3QgdGhlIGhhcmR3YXJlL3NvZnR3YXJlIGRyaXZlciAqLwogI3VuZGVmCUNPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUgQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwCS8qIDQwIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwCS8qIDQwIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCiAKIC8qIFNvZnR3YXJlIChiaXQtYmFuZykgSTJDIGRyaXZlciBjb25maWd1cmF0aW9uICovCiAjZGVmaW5lIFBCX1NDTAkJMHgwMDAwMDAyMAkvKiBQQiAyNiAqLwpAQCAtODIsOCArODIsOCBAQAogCiAvKiBNNDFUMTEgU2VyaWFsIEFjY2VzcyBUaW1la2VlcGVyKFIpIFNSQU0gKi8KICNkZWZpbmUgQ09ORklHX1JUQ19NNDFUMTEgMQotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSIDB4NjgKLSNkZWZpbmUgQ0ZHX000MVQxMV9CQVNFX1lFQVIgMTkwMAkvKiBwbGF5IGFsb25nIHdpdGggdGhlIGxpbnV4IGRyaXZlciAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUiAweDY4CisjZGVmaW5lIENPTkZJR19TWVNfTTQxVDExX0JBU0VfWUVBUiAxOTAwCS8qIHBsYXkgYWxvbmcgd2l0aCB0aGUgbGludXggZHJpdmVyICovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTE4LDI1ICsxMTgsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwQzAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTQ2LDQ3ICsxNDYsNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGQTIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkEyMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJKDAtZmxhc2hfaW5mb1swXS5zaXplKQkvKiBQdXQgZmxhc2ggYXQgZW5kCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCSgwLWZsYXNoX2luZm9bMF0uc2l6ZSkJLyogUHV0IGZsYXNoIGF0IGVuZAkqLwogI2lmIGRlZmluZWQoREVCVUcpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9JREUpCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSgoVEVYVF9CQVNFKSArIDB4NDAwMDApCkBAIC0xOTksMTQgKzE5OSwxNCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUmVzZXQgYWRkcmVzcwogICovCi0jZGVmaW5lCUNGR19SRVNFVF9BRERSRVNTCSgodWxvbmcpKCgoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2Nsa3JzdC5yZXMpKSkKKyNkZWZpbmUJQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCSgodWxvbmcpKCgoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jbGtyc3QucmVzKSkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjE2LDEwICsyMTYsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgMHgwMDAwMDYwMCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IDB4MDAwMDA2MDAgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjI3LDI4ICsyMjcsMjggQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX01MUkMxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9NTFJDMTApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0vKiUlJSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19SVEUpCisvKiUlJSNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpICovCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IgKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yNTksNyArMjU5LDcgQEAKICAqIElmIHRoaXMgaXMgYSA4MCBNSHogQ1BVLCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB0byA1ICg1KjE2PTgwKSEKICAqLwogLyogdXAgdG8gNTAgTUh6IHdlIHVzZSBhIDE6MSBjbG9jayAqLwotI2RlZmluZSBDRkdfUExQUkNSCSggKDUgPDwgUExQUkNSX01GX1NISUZUKSB8IFBMUFJDUl9URVhQUyApCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSggKDUgPDwgUExQUkNSX01GX1NISUZUKSB8IFBMUFJDUl9URVhQUyApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0yNjksMjEgKzI2OSwyMSBAQAogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYwMAogLyogdXAgdG8gNTAgTUh6IHdlIHVzZSBhIDE6MSBjbG9jayAqLwotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCB8IFNDQ1JfVEJTKQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMDAgfCBTQ0NSX1RCUykKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTI5NiwyOSArMjk2LDI5IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLS8qI2RlZmluZQlDRkdfREVSCTB4MjAwMjAwMEYqLwotI2RlZmluZSBDRkdfREVSCTAKKy8qI2RlZmluZQlDT05GSUdfU1lTX0RFUgkweDIwMDIwMDBGKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTMyNywxMyArMzI3LDEzIEBACiAgKi8KIAogI2RlZmluZSBGTEFTSF9CQVNFX1BSRUxJTQkweEZDMDAwMDAwCS8qIEZMQVNIIGJhc2UgLSB1cCB0byA2NCBNQiBvZiBmbGFzaCAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RkMwMDAwMDAJLyogT1IgYWRkciBtYXNrIC0gbWFwIDY0IE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RkMwMDAwMDAJLyogT1IgYWRkciBtYXNrIC0gbWFwIDY0IE1CICovCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMCwgVFJMWCA9IDAsIENTTlQgPSAwLCBTQ1kgPSA0LCBFVEhSID0gMCwgQklIID0gMSAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNIIChPUl9TQ1lfNF9DTEsgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggKE9SX1NDWV80X0NMSyB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YpCiAKIC8qCiAgKiBCUjEgYW5kIE9SMSAoU0RSQU0pCkBAIC0zNDMsMzkgKzM0MywzOSBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwODAwMDAwMAkvKiBtYXggMTI4IE1CICovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEUwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwRTAwCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JKDB4RjAwMDAwMDAgfCBDRkdfT1JfVElNSU5HX1NEUkFNICkgLyogbWFwIDI1NiBNQiAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKFNEUkFNX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCSgweEYwMDAwMDAwIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKSAvKiBtYXAgMjU2IE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKFNEUkFNX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogLyogUlBYTElURSBtZW0gc2V0dGluZyAqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRQkweEZBMDAwMDAwCQkvKiBOVlJBTSAmIFNSQU0gYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0UJMHhGQTAwMDAwMAkJLyogTlZSQU0gJiBTUkFNIGJhc2UgKi8KIC8qICAgICAgSU1NUjoJCTB4RkEyMDAwMDAJCSAgIElNTVIgYmFzZSBhZGRyZXNzIC0gc2VlIGFib3ZlICovCi0jZGVmaW5lCUNGR19CQ1NSX0JBU0UJMHhGQTQwMDAwMAkJLyogQkNTUiBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CQ1NSX0JBU0UJMHhGQTQwMDAwMAkJLyogQkNTUiBiYXNlIGFkZHJlc3MgKi8KIAotI2RlZmluZQlDRkdfQlIzX1BSRUxJTQkoQ0ZHX0JDU1JfQkFTRSB8IEJSX1YpCQkJLyogQkNTUiAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkweEZGRkY4OTEwCi0jZGVmaW5lIENGR19CUjRfUFJFTElNICAoQ0ZHX05WUkFNX0JBU0UgfCBCUl9QU184IHwgQlJfVikJLyogTlZSQU0gJiBTUkFNICovCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCTB4RkZGRTA5NzAKKyNkZWZpbmUJQ09ORklHX1NZU19CUjNfUFJFTElNCShDT05GSUdfU1lTX0JDU1JfQkFTRSB8IEJSX1YpCQkJLyogQkNTUiAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JMHhGRkZGODkxMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0gIChDT05GSUdfU1lTX05WUkFNX0JBU0UgfCBCUl9QU184IHwgQlJfVikJLyogTlZSQU0gJiBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkweEZGRkUwOTcwCiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyCiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTIwCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJMjAKIAogLyoKICAqIFJlZnJlc2ggY2xvY2sgUHJlc2NhbGFyCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSCU1QVFBSX1BUUF9ESVYyCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJTVBUUFJfUFRQX0RJVjIKIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xNlggfCBNQU1SX1dMRkFfMTZYIHwgTUFNUl9UTEZBXzE2WCkKIApAQCAtMzk0LDEwICszOTQsMTAgQEAKICAqCiAgKi8KIAotI2RlZmluZSBCQ1NSMAkoQ0ZHX0JDU1JfQkFTRSArIDApCi0jZGVmaW5lIEJDU1IxCShDRkdfQkNTUl9CQVNFICsgMSkKLSNkZWZpbmUgQkNTUjIJKENGR19CQ1NSX0JBU0UgKyAyKQotI2RlZmluZSBCQ1NSMwkoQ0ZHX0JDU1JfQkFTRSArIDMpCisjZGVmaW5lIEJDU1IwCShDT05GSUdfU1lTX0JDU1JfQkFTRSArIDApCisjZGVmaW5lIEJDU1IxCShDT05GSUdfU1lTX0JDU1JfQkFTRSArIDEpCisjZGVmaW5lIEJDU1IyCShDT05GSUdfU1lTX0JDU1JfQkFTRSArIDIpCisjZGVmaW5lIEJDU1IzCShDT05GSUdfU1lTX0JDU1JfQkFTRSArIDMpCiAKICNkZWZpbmUgQkNTUjBfRU5NT05YQ1ZSCTB4MDEJLyogTW9uaXRvciBYVkNSIENvbnRyb2wgKi8KICNkZWZpbmUgQkNTUjBfRU5OVlJBTQkweDAyCS8qIENTNCMgQ29udHJvbCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3JzZHByb3RvLmggYi9pbmNsdWRlL2NvbmZpZ3MvcnNkcHJvdG8uaAppbmRleCAwOTkxM2E5Li44MjA3ODQ0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcnNkcHJvdG8uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvcnNkcHJvdG8uaApAQCAtNzksMTAgKzc5LDEwIEBACiAgKiAtIFNlbGVjdCBidXMgZm9yIGJkL2J1ZmZlcnMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTMgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJKDApCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQorIyBkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkoMCkKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCiAKICNlbmRpZiAvKiBDT05GSUdfRVRIRVJfSU5ERVggKi8KIApAQCAtOTIsOCArOTIsOCBAQAogCiAvKiBlbmFibGUgSTJDICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTUwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDMwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4MzAKIAogCiAvKiBzeXN0ZW0gY2xvY2sgcmF0ZSAoQ0xLSU4pIC0gZXF1YWwgdG8gdGhlIDYweCBhbmQgbG9jYWwgYnVzIHNwZWVkICovCkBAIC0xMjUsNyArMTI1LDcgQEAKICAqIHdheSB0byBkbyB0aGF0IGlzIHRvIHByb2dyYW0gdGhlIGJvb3Rsb2FkZXIgYXQgYm90aCBhZGRyZXNzZXMuCiAgKiBJdCBpcyBzdWdnZXN0ZWQgdGhhdCB5b3UganVzdCBsZXQgVS1Cb290IGxpdmUgYXQgMHgwMDAwMDAwMC4KICAqLwotI2RlZmluZSBDRkdfUlNEX0JPT1RfTE9XIDEKKyNkZWZpbmUgQ09ORklHX1NZU19SU0RfQk9PVF9MT1cgMQogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJNQogI2RlZmluZSBDT05GSUdfQk9PVEFSR1MJCSJkZXZmcz1tb3VudCByb290PXJhbWZzIgpAQCAtMTQwLDI2ICsxNDAsMjYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAxYzAwMDAwCS8qIDQgLi4uIDI4IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAxYzAwMDAwCS8qIDQgLi4uIDI4IE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xOTksOTQgKzE5OSw5NCBAQAogI2RlZmluZSBQSFlTX0ZMQVNICQkweEZGMDAwMDAwIC8qIEZsYXNoICg2MHggQnVzKSAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAgLyogMTYgTUIgKi8KIAotI2RlZmluZSBDRkdfSU1NUgkJUEhZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJUEhZU19JTU1SCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJlc2V0IEFkZHJlc3MKICAqCiAgKiBJbiBvcmRlciB0byByZXNldCB0aGUgQ1BVLCBVLUJvb3QganVtcHMgdG8gYSBzcGVjaWFsIGFkZHJlc3Mgd2hpY2gKICAqIGNhdXNlcyBhIG1hY2hpbmUgY2hlY2sgZXhjZXB0aW9uLiBUaGUgZGVmYXVsdCBhZGRyZXNzIGZvciB0aGlzIGlzCi0gKiBDRkdfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZyksIHdoaWNoIG1pZ2h0IG5vdCBhbHdheXMgd29yaywgZWcuIHdoZW4KKyAqIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZyksIHdoaWNoIG1pZ2h0IG5vdCBhbHdheXMgd29yaywgZWcuIHdoZW4KICAqIHRlc3RpbmcgdGhlIG1vbml0b3IgaW4gUkFNIHVzaW5nIGEgSlRBRyBkZWJ1Z2dlci4KICAqCi0gKiBKdXN0IHNldCBDRkdfUkVTRVRfQUREUkVTUyB0byBhbiBhZGRyZXNzIHRoYXQgeW91IGtub3cgaXMgc3VyZSB0bworICogSnVzdCBzZXQgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTIHRvIGFuIGFkZHJlc3MgdGhhdCB5b3Uga25vdyBpcyBzdXJlIHRvCiAgKiBjYXVzZSBhIGJ1cyBlcnJvciBvbiB5b3VyIGhhcmR3YXJlLgogICovCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4MjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZCBSZXNldCBDb25maWd1cmF0aW9uIFdvcmRzCiAgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX1JTRF9CT09UX0xPVykKLSMgIGRlZmluZSAgQ0ZHX1JTRF9IUkNXX0JPT1RfRkxBR1MgIChIUkNXX0NJUCB8IEhSQ1dfQk1TKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SU0RfQk9PVF9MT1cpCisjICBkZWZpbmUgIENPTkZJR19TWVNfUlNEX0hSQ1dfQk9PVF9GTEFHUyAgKEhSQ1dfQ0lQIHwgSFJDV19CTVMpCiAjZWxzZQotIyAgZGVmaW5lICBDRkdfUlNEX0hSQ1dfQk9PVF9GTEFHUyAgKDApCi0jZW5kaWYgLyogZGVmaW5lZChDRkdfUlNEX0JPT1RfTE9XKSAqLworIyAgZGVmaW5lICBDT05GSUdfU1lTX1JTRF9IUkNXX0JPT1RfRkxBR1MgICgwKQorI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1NZU19SU0RfQk9PVF9MT1cpICovCiAKLS8qIGdldCB0aGUgSFJDVyBJU0IgZmllbGQgZnJvbSBDRkdfSU1NUiAqLwotI2RlZmluZSBDRkdfUlNEX0hSQ1dfSU1NUiAoICgoQ0ZHX0lNTVIgJiAweDEwMDAwMDAwKSA+PiAxMCkgfFwKLQkJCSAgICAoKENGR19JTU1SICYgMHgwMTAwMDAwMCkgPj4gNykgIHxcCi0JCQkgICAgKChDRkdfSU1NUiAmIDB4MDAxMDAwMDApID4+IDQpICkKKy8qIGdldCB0aGUgSFJDVyBJU0IgZmllbGQgZnJvbSBDT05GSUdfU1lTX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SU0RfSFJDV19JTU1SICggKChDT05GSUdfU1lTX0lNTVIgJiAweDEwMDAwMDAwKSA+PiAxMCkgfFwKKwkJCSAgICAoKENPTkZJR19TWVNfSU1NUiAmIDB4MDEwMDAwMDApID4+IDcpICB8XAorCQkJICAgICgoQ09ORklHX1NZU19JTU1SICYgMHgwMDEwMDAwMCkgPj4gNCkgKQogCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkoSFJDV19MMkNQQzEwIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCShIUkNXX0wyQ1BDMTAgfCBcCiAJCQkgSFJDV19EUFBDMTEgfCBcCi0JCQkgQ0ZHX1JTRF9IUkNXX0lNTVIgfFwKKwkJCSBDT05GSUdfU1lTX1JTRF9IUkNXX0lNTVIgfFwKIAkJCSBIUkNXX01NUjAwIHwgXAogCQkJIEhSQ1dfQVBQQzEwIHwgXAogCQkJIEhSQ1dfQ1MxMFBDMDAgfCBcCiAJCQkgSFJDV19NT0RDS19IMDAwMCB8XAotCQkJIENGR19SU0RfSFJDV19CT09UX0ZMQUdTKQorCQkJIENPTkZJR19TWVNfUlNEX0hSQ1dfQk9PVF9GTEFHUykKIAogLyogbm8gc2xhdmVzICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMwkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNAkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNgkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNwkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMwkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1CTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNgkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHg0MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKLSAqIE5vdGUgYWxzbyB0aGF0IHRoZSBsb2dpYyB0aGF0IHNldHMgQ0ZHX1JBTUJPT1QgaXMgcGxhdGZvcm0gZGVwZW5kZW5kLgorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIE5vdGUgYWxzbyB0aGF0IHRoZSBsb2dpYyB0aGF0IHNldHMgQ09ORklHX1NZU19SQU1CT09UIGlzIHBsYXRmb3JtIGRlcGVuZGVuZC4KICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJUEhZU19TRFJBTV82MFgKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0gKLS8qI2RlZmluZQlDRkdfTU9OSVRPUl9CQVNFCTB4MjAwMDAwICovCi0jZGVmaW5lCUNGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNpZiBDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQlQSFlTX1NEUkFNXzYwWAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0gKKy8qI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweDIwMDAwMCAqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgxNjAgPDwgMTApCS8qIFJlc2VydmUgMTYwIGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE2MCA8PCAxMCkJLyogUmVzZXJ2ZSAxNjAga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2MwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2MwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTMwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMzAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qIHR1cm4gb2ZmIE5WUkFNIGVudiBmZWF0dXJlICovCiAjdW5kZWYgQ09ORklHX05WUkFNX0VOVgpAQCAtMjk4LDkgKzI5OCw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMTMsMjggKzMxMywyOCBAQAogICoKICAqIEhJRDEgaGFzIG9ubHkgcmVhZC1vbmx5IGluZm9ybWF0aW9uIC0gbm90aGluZyB0byBzZXQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfEhJRDBfRENJfEhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJKEhJRDBfSUNFfEhJRDBfSUZFTXxISUQwX0FCRXxISUQwX0VNQ1ApCi0jZGVmaW5lIENGR19ISUQyCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxISUQwX0RDSXxISUQwX0lGRU18SElEMF9BQkUpCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkoSElEMF9JQ0V8SElEMF9JRkVNfEhJRDBfQUJFfEhJRDBfRU1DUCkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19STVIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19STVIJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24JCQkJCSA0LTI1CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0JDUgkJMHgxMDBjMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJMHgxMDBjMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTSVVNQ1IgLSBTSVUgTW9kdWxlIENvbmZpZ3VyYXRpb24JCQkJIDQtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EUFBDMTEgfCBTSVVNQ1JfTDJDUEMxMCB8IFNJVU1DUl9BUFBDMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfRFBQQzExIHwgU0lVTUNSX0wyQ1BDMTAgfCBTSVVNQ1JfQVBQQzEwIHwgXAogCQkJCQkgU0lVTUNSX0NTMTBQQzAxIHwgU0lVTUNSX0JDVExDMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM0Myw3ICszNDMsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogV2F0Y2hkb2cgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIDYweCBCdXMgTW9uaXRvciBlbmFibGUKICAqLwotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9QQk1FIHwgU1lQQ1JfTEJNRSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX1BCTUUgfCBTWVBDUl9MQk1FIHwgXAogCQkJIFNZUENSX1NXUkkgfCBTWVBDUl9TV1ApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM1Miw3ICszNTIsNyBAQAogICogQ2xlYXIgb25jZSBwZXIgU2Vjb25kIGFuZCBBbGFybSBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLAogICogYW5kIGVuYWJsZSBUaW1lIENvdW50ZXIKICAqLwotI2RlZmluZSBDRkdfVE1DTlRTQwkoVE1DTlRTQ19TRUMgfCBUTUNOVFNDX0FMUiB8IFRNQ05UU0NfVENGIHwgVE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQwkoVE1DTlRTQ19TRUMgfCBUTUNOVFNDX0FMUiB8IFRNQ05UU0NfVENGIHwgVE1DTlRTQ19UQ0UpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJIDQtNDIKQEAgLTM2MCw2MyArMzYwLDYzIEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBDb250cm9sCQkJCQkgOS04CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJMHgwMDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSQ0NSIC0gUklTQyBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24JCQkJMTMtNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SQ0NSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CiAgKi8KIAotI2RlZmluZSBDRkdfUFNETVIJMHg0OTREMjQ1MgotI2RlZmluZSBDRkdfTFNETVIJMHg0OTQ5MjU1MgorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCTB4NDk0RDI0NTIKKyNkZWZpbmUgQ09ORklHX1NZU19MU0RNUgkweDQ5NDkyNTUyCiAKIC8qIEZsYXNoICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCShQSFlTX0ZMQVNIIHwgQlJ4X1YpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShQMlNaX1RPX0FNKFBIWVNfRkxBU0hfU0laRSkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoUEhZU19GTEFTSCB8IEJSeF9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKFAyU1pfVE9fQU0oUEhZU19GTEFTSF9TSVpFKSB8IFwKIAkJCSBPUnhHX0JDVExEIHwgXAogCQkJIE9SeEdfU0NZXzVfQ0xLKQogCiAvKiBEUFJBTSB0byB0aGUgUENJIEJVUyBvbiB0aGUgcHJvdG9jb2wgYm9hcmQgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKFBIWVNfRFBSQU1fUENJIHwgQlJ4X1YpCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCShQMlNaX1RPX0FNKFBIWVNfRFBSQU1fUENJX1NJWkUpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKFBIWVNfRFBSQU1fUENJIHwgQlJ4X1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoUDJTWl9UT19BTShQSFlTX0RQUkFNX1BDSV9TSVpFKSB8IFwKIAkJCSBPUnhHX0FDU19ESVY0KQogCiAvKiA2MHggQnVzIFNEUkFNICovCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCShQSFlTX1NEUkFNXzYwWCB8IEJSeF9NU19TRFJBTV9QIHwgQlJ4X1YpCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShPUnhTX1NJWkVfVE9fQU0oUEhZU19TRFJBTV82MFhfU0laRSkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoUEhZU19TRFJBTV82MFggfCBCUnhfTVNfU0RSQU1fUCB8IEJSeF9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKE9SeFNfU0laRV9UT19BTShQSFlTX1NEUkFNXzYwWF9TSVpFKSB8IFwKIAkJCSBPUnhTX0JQRF80IHwgXAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BMiB8IFwKIAkJCSBPUnhTX05VTVJfMTMgfCBcCiAJCQkgT1J4U19JQklEKQogCiAvKiBWaXJ0ZXgtRlBHQSAtIFJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19CUjNfUFJFTElNICAoUEhZU19WSVJURVhfUkVHSVNURVIgfCBCUnhfVikKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0gIChPUnhTX1NJWkVfVE9fQU0oUEhZU19WSVJURVhfUkVHSVNURVJfU0laRSkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTSAgKFBIWVNfVklSVEVYX1JFR0lTVEVSIHwgQlJ4X1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTSAgKE9SeFNfU0laRV9UT19BTShQSFlTX1ZJUlRFWF9SRUdJU1RFUl9TSVpFKSB8IFwKIAkJCSBPUnhHX1NDWV8xX0NMSyB8IFwKIAkJCSBPUnhHX0FDU19ESVYyIHwgXAogCQkJIE9SeEdfQ1NOVCApCiAKIC8qIGxvY2FsIGJ1cyBTRFJBTSAqLwotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkoUEhZU19TRFJBTV9MT0NBTCB8IEJSeF9QU18zMiB8IEJSeF9NU19TRFJBTV9MIHwgQlJ4X1YpCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCShPUnhTX1NJWkVfVE9fQU0oUEhZU19TRFJBTV9MT0NBTF9TSVpFKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCShQSFlTX1NEUkFNX0xPQ0FMIHwgQlJ4X1BTXzMyIHwgQlJ4X01TX1NEUkFNX0wgfCBCUnhfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCShPUnhTX1NJWkVfVE9fQU0oUEhZU19TRFJBTV9MT0NBTF9TSVpFKSB8IFwKIAkJCSBPUnhTX0JQRF80IHwgXAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BNCB8IFwKIAkJCSBPUnhTX05VTVJfMTMpCiAKIC8qIERQUkFNIHRvIHRoZSBTaGFyYy1CdXMgb24gdGhlIHByb3RvY29sIGJvYXJkICovCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCShQSFlTX0RQUkFNX1NIQVJDIHwgQlJ4X1YpCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCShQMlNaX1RPX0FNKFBIWVNfRFBSQU1fU0hBUkNfU0laRSkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkoUEhZU19EUFJBTV9TSEFSQyB8IEJSeF9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JKFAyU1pfVE9fQU0oUEhZU19EUFJBTV9TSEFSQ19TSVpFKSB8IFwKIAkJCSBPUnhHX0FDU19ESVY0KQogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3JzazcyMDMuaCBiL2luY2x1ZGUvY29uZmlncy9yc2s3MjAzLmgKaW5kZXggMWYyMGU1Ny4uZjg4YTc3MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3JzazcyMDMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvcnNrNzIwMy5oCkBAIC01NCw1NSArNTQsNTUgQEAKICNkZWZpbmUgUlNLNzIwM19GTEFTSF9CQVNFXzEJMHgyMDAwMDAwMAkvKiBOb24gY2FjaGUgKi8KICNkZWZpbmUgUlNLNzIwM19GTEFTSF9CQU5LX1NJWkUJKDQgKiAxMDI0ICogMTAyNCkKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkvKiBCdWZmZXIgc2l6ZSBmb3IgaW5wdXQgZnJvbSB0aGUgQ29uc29sZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCTI1NgkvKiBCdWZmZXIgc2l6ZSBmb3IgQ29uc29sZSBvdXRwdXQgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJLyogbWF4IGFyZ3MgYWNjZXB0ZWQgZm9yIG1vbml0b3IgY29tbWFuZHMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJLyogQnVmZmVyIHNpemUgZm9yIGlucHV0IGZyb20gdGhlIENvbnNvbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJMjU2CS8qIEJ1ZmZlciBzaXplIGZvciBDb25zb2xlIG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJLyogbWF4IGFyZ3MgYWNjZXB0ZWQgZm9yIG1vbml0b3IgY29tbWFuZHMgKi8KIC8qIEJ1ZmZlciBzaXplIGZvciBCb290IEFyZ3VtZW50cyBwYXNzZWQgdG8ga2VybmVsICovCi0jZGVmaW5lIENGR19CQVJHU0laRQk1MTIKKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQk1MTIKIC8qIExpc3Qgb2YgbGVnYWwgYmF1ZHJhdGUgc2V0dGluZ3MgZm9yIHRoaXMgYm9hcmQgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCB9CiAKIC8qIFNDSUYgKi8KICNkZWZpbmUgQ09ORklHX1NDSUZfQ09OU09MRQkxCiAjZGVmaW5lIENPTkZJR19DT05TX1NDSUYwCTEKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAlSU0s3MjAzX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoQ0ZHX01FTVRFU1RfU1RBUlQgKyAoMyAqIDEwMjQgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCVJTSzcyMDNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICsgKDMgKiAxMDI0ICogMTAyNCkpCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCVJTSzcyMDNfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJKDMyICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJUlNLNzIwM19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJKDMyICogMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJKENGR19TRFJBTV9CQVNFICsgMTAyNCAqIDEwMjQpCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJUlNLNzIwM19GTEFTSF9CQVNFXzEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTI4ICogMTAyNCkKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYKLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJUlNLNzIwM19GTEFTSF9CQVNFXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDEyOCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4ICogMTAyNCAqIDEwMjQpCiAKIC8qIEZMQVNIICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSCBGTEFTSF9DRklfMTZCSVQKLSN1bmRlZglDRkdfRkxBU0hfUVVJRVRfVEVTVAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVJTSzcyMDNfRkxBU0hfQkFTRV8xCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRIIEZMQVNIX0NGSV8xNkJJVAorI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUlNLNzIwM19GTEFTSF9CQVNFXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkoNjQgKiAxMDI0KQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCUNPTkZJR19FTlZfU0VDVF9TSVpFCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCiAKIC8qIEJvYXJkIENsb2NrICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMzMzMzMzMzMKICNkZWZpbmUgQ01UX0NMS19ESVZJREVSCTMyCS8qIDggKGRlZmF1bHQpLCAzMiwgMTI4IG9yIDUxMiAqLwotI2RlZmluZSBDRkdfSFoJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIENNVF9DTEtfRElWSURFUikKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gQ01UX0NMS19ESVZJREVSKQogCiAvKiBOZXR3b3JrIGludGVyZmFjZSAqLwogI2RlZmluZSBDT05GSUdfRFJJVkVSX1NNQzkxMVgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zYWNzbmcuaCBiL2luY2x1ZGUvY29uZmlncy9zYWNzbmcuaAppbmRleCA1NjBiZjA1Li5mNGUwOGM2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2Fjc25nLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NhY3NuZy5oCkBAIC03NCw3ICs3NCw3IEBACiAgKiAweDYJICAgICAweDEJIDY2CTEzMyAgICAyNjYgICBDbG9zZSAgQ2xvc2UgIE9wZW4KICAqIDB4NgkgICAgIDB4MgkgNjYJMTMzICAgIDMwMCAgIENsb3NlICBPcGVuICAgQ2xvc2UKICAqLwotI2RlZmluZSBDRkdfU0JDX01PRENLX0ggMHgwNQorI2RlZmluZSBDT05GSUdfU1lTX1NCQ19NT0RDS19IIDB4MDUKIAogLyogRGVmaW5lIHRoaXMgaWYgeW91IHdhbnQgdG8gYm9vdCBmcm9tIDB4MDAwMDAxMDAuIElmIHlvdSBkb24ndCBkZWZpbmUKICAqIHRoaXMsIHlvdSB3aWxsIG5lZWQgdG8gcHJvZ3JhbSB0aGUgYm9vdGxvYWRlciB0byAweGZmZjAwMDAwLCBhbmQKQEAgLTgyLDIxICs4MiwyMSBAQAogICogd2F5IHRvIGRvIHRoYXQgaXMgdG8gcHJvZ3JhbSB0aGUgYm9vdGxvYWRlciBhdCBib3RoIGFkZHJlc3Nlcy4KICAqIEl0IGlzIHN1Z2dlc3RlZCB0aGF0IHlvdSBqdXN0IGxldCBVLUJvb3QgbGl2ZSBhdCAweDAwMDAwMDAwLgogICovCi0jZGVmaW5lIENGR19TQkNfQk9PVF9MT1cgMQorI2RlZmluZSBDT05GSUdfU1lTX1NCQ19CT09UX0xPVyAxCiAKIC8qIFdoYXQgc2hvdWxkIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIG1haW4gRkxBU0ggYmUgYW5kIGhvdyBiaWcgaXMKICAqIGl0IChpbiBNQnl0ZXMpPyAgVGhpcyBtdXN0IGNvbnRhaW4gVEVYVF9CQVNFIGZyb20gYm9hcmQvc2Fjc25nL2NvbmZpZy5tawogICogVGhlIG1haW4gRkxBU0ggaXMgd2hpY2hldmVyIGlzIGNvbm5lY3RlZCB0byAqQ1MwLgogICovCi0jZGVmaW5lIENGR19GTEFTSDBfQkFTRSAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDBfU0laRSAyCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0JBU0UgMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFIDIKIAogLyogV2hhdCBzaG91bGQgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgc2Vjb25kYXJ5IEZMQVNIIGJlIGFuZCBob3cgYmlnCiAgKiBpcyBpdCAoaW4gTWJ5dGVzKT8gIFRoZSBzZWNvbmRhcnkgRkxBU0ggaXMgd2hpY2hldmVyIGlzIGNvbm5lY3RlZAogICogdG8gKkNTNi4KICAqLwotI2RlZmluZSBDRkdfRkxBU0gxX0JBU0UgMHg2MDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gxX1NJWkUgMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFIDB4NjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfU0laRSAyCiAKIC8qIERlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNIHRvIGFsbG93IHVzZSBvZiBTRFJBTXMgbGFyZ2VyIHRoYW4gMjU2TUJ5dGVzCiAgKi8KQEAgLTEwNSw4ICsxMDUsOCBAQAogLyogV2hhdCBzaG91bGQgYmUgdGhlIGJhc2UgYWRkcmVzcyBvZiBTRFJBTSBESU1NIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gTWJ5dGVzKT8gIFRoaXMgd2lsbCBub3JtYWxseSBhdXRvLWNvbmZpZ3VyZSB2aWEgdGhlIFNQRC4KICovCi0jZGVmaW5lIENGR19TRFJBTTBfQkFTRSAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfU0laRSA2NAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9CQVNFIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfU0laRSA2NAogCiAvKgogICogTWVtb3J5IG1hcCBleGFtcGxlIHdpdGggNjQgTUIgRElNTToKQEAgLTEyNSwxNCArMTI1LDE0IEBACiAgKiAgICAgMHgwM0Y1IEZGQjAgICAgIEJvYXJkIEluZm8gRGF0YQogICogICAgIDB4MDNGNiAwMDAwICAgICBNYWxsb2MgQXJlbmEKICAqCSAgICAgOgkJICAgIENPTkZJR19FTlZfU0VDVF9TSVpFLCAxNmsKLSAqCSAgICAgOgkJICAgIENGR19NQUxMT0NfTEVOLCAgICAxMjhrCisgKgkgICAgIDoJCSAgICBDT05GSUdfU1lTX01BTExPQ19MRU4sICAgIDEyOGsKICAqICAgICAweDAzRkMgMDAwMCAgICAgUkFNIENvcHkgb2YgTW9uaXRvciBDb2RlCi0gKgkgICAgIDoJCSAgICBDRkdfTU9OSVRPUl9MRU4sICAgMjU2awotICogICAgIDB4MDNGRiBGRkZGICAgICBbRW5kIG9mIFJBTV0sIENGR19TRFJBTV9TSVpFIC0gMQorICoJICAgICA6CQkgICAgQ09ORklHX1NZU19NT05JVE9SX0xFTiwgICAyNTZrCisgKiAgICAgMHgwM0ZGIEZGRkYgICAgIFtFbmQgb2YgUkFNXSwgQ09ORklHX1NZU19TRFJBTV9TSVpFIC0gMQogICovCiAKLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9NRU1PUlkgfCBcCi0JCQkJIENGR19QT1NUX0NQVSkKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfTUVNT1JZIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ1BVKQogCiAKIC8qCkBAIC0xOTgsNyArMTk4LDcgQEAKICAqICAtIFJYIGNsayBpcyBDTEsxMQogICogIC0gVFggY2xrIGlzIENMSzEyCiAgKi8KLSMgZGVmaW5lIENGR19DTVhTQ1JfVkFMVUUJKENNWFNDUl9SUzFDU19DTEsxMSAgfCBDTVhTQ1JfVFMxQ1NfQ0xLMTIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWFNDUl9WQUxVRQkoQ01YU0NSX1JTMUNTX0NMSzExICB8IENNWFNDUl9UUzFDU19DTEsxMikKIAogI2VsaWYgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkNDKSAmJiAoQ09ORklHX0VUSEVSX0lOREVYID09IDIpCiAKQEAgLTIwOCwxMCArMjA4LDEwIEBACiAgKiAtIFNlbGVjdCBidXMgZm9yIGJkL2J1ZmZlcnMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzfENNWEZDUl9URjJDU19DTEsxNCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKIAogI2VuZGlmIC8qIENPTkZJR19FVEhFUl9PTl9GQ0MsIENPTkZJR19FVEhFUl9JTkRFWCAqLwogCkBAIC0yMjAsNyArMjIwLDcgQEAKIC8qCiAgKiBDb25maWd1cmUgZm9yIFJBTSB0ZXN0cy4KICAqLwotI3VuZGVmICBDRkdfRFJBTV9URVNUCQkJLyogY2FsbHMgb3RoZXIgdGVzdHMgaW4gYm9hcmQuYwkqLworI3VuZGVmICBDT05GSUdfU1lTX0RSQU1fVEVTVAkJCS8qIGNhbGxzIG90aGVyIHRlc3RzIGluIGJvYXJkLmMJKi8KIAogCiAvKgpAQCAtMjM0LDEzICsyMzQsMTMgQEAKICNkZWZpbmUgU1RBVFVTX0xFRF9EQVQJCWltX2lvcG9ydC5pb3BfcGRhdGEKIAogI2RlZmluZSBTVEFUVVNfTEVEX0JJVAkJMHgwMDAwMDgwMAkvKiBMRUQgMCBpcyBvbiBQQS4yMAkqLwotI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ0ZHX0haKQorI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ09ORklHX1NZU19IWikKICNkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQlTVEFUVVNfTEVEX09GRgogI2RlZmluZSBTVEFUVVNfTEVEX0JJVDEJCTB4MDAwMDEwMDAJLyogTEVEIDEgaXMgb24gUEEuMTkJKi8KLSNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QxCShDRkdfSFopCisjZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMQkoQ09ORklHX1NZU19IWikKICNkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTEJU1RBVFVTX0xFRF9PRkYKICNkZWZpbmUgU1RBVFVTX0xFRF9CSVQyCQkweDAwMDAyMDAwCS8qIExFRCAyIGlzIG9uIFBBLjE4CSovCi0jZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMgkoQ0ZHX0haLzIpCisjZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMgkoQ09ORklHX1NZU19IWi8yKQogI2RlZmluZSBTVEFUVVNfTEVEX1NUQVRFMglTVEFUVVNfTEVEX09OCiAKICNkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMAkJLyogTEVEIG9uIGZvciBiaXQgPT0gMAkqLwpAQCAtMjkzLDggKzI5Myw4IEBACiAgKi8KICN1bmRlZiAgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogU29mdHdhcmUgKGJpdC1iYW5nKSBJMkMgZHJpdmVyIGNvbmZpZ3VyYXRpb24KQEAgLTQ4NiwxNCArNDg2LDE0IEBACiAKIAogLyogdW5kZWYgdGhpcyB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAogCiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgogCi0jdW5kZWYgIENGR19IVVNIX1BBUlNFUgotI2lmZGVmICBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAgICAgIj4gIgorI3VuZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYgIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgICAgICI+ICIKICNlbmRpZgogCiAvKiBXaGVuIENPTkZJR19USU1FU1RBTVAgaXMgc2VsZWN0ZWQsIHRoZSB0aW1lc3RhbXAgKGRhdGUgYW5kIHRpbWUpCkBAIC01MzAsNyArNTMwLDcgQEAKIAogCiAvKiBXaGVyZSBkbyB0aGUgaW50ZXJuYWwgcmVnaXN0ZXJzIGxpdmU/ICovCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogZGlzYWJsZSB0aGUgd2F0Y2hkb2cgKi8KIApAQCAtNTQ4LDc2ICs1NDgsNzYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNX0hFQURFUl9RVUlFVCAxICAgICAgICAvKiBTdXBwcmVzcyB0aGUgaW1hZ2UgaGVhZGVyIGR1bXAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTV9IRUFERVJfUVVJRVQgMSAgICAgICAgLyogU3VwcHJlc3MgdGhlIGltYWdlIGhlYWRlciBkdW1wICAgICovCiAJCQkJCS8qIGluIHRoZSBib290bSBjb21tYW5kLiAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfQk9PVE1fUFJPR0VTU19RVUlFVCAxICAgICAgIC8qIFN1cHByZXNzIHRoZSBwcm9ncmVzcyBkaXNwbGF5cywgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNX1BST0dFU1NfUVVJRVQgMSAgICAgICAvKiBTdXBwcmVzcyB0aGUgcHJvZ3Jlc3MgZGlzcGxheXMsICAgKi8KIAkJCQkJLyogIiMjIDxtZXNzYWdlPiIgZnJvbSB0aGUgYm9vdG0gY21kICovCi0jZGVmaW5lIENGR19CT09UUF9DSEVDS19IT1NUTkFNRSAxICAgICAgLyogSWYgY2hlY2tob3N0bmFtZSBlbnZpcm9ubWVudCBpcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBfQ0hFQ0tfSE9TVE5BTUUgMSAgICAgIC8qIElmIGNoZWNraG9zdG5hbWUgZW52aXJvbm1lbnQgaXMgICAqLwogCQkJCQkvKiBkZWZpbmVkLCB0aGVuIHRoZSBob3N0bmFtZSBwYXJhbSAgKi8KIAkJCQkJLyogdmFsaWRhdGVkIGFnYWluc3QgY2hlY2tob3N0bmFtZS4gICovCi0jZGVmaW5lIENGR19CT09UUF9SRVRSWV9DT1VOVCAweDQwMDAwMDAwIC8qICMgb2YgdGltZW91dHMgYmVmb3JlIGdpdmluZyB1cCAgICovCi0jZGVmaW5lIENGR19CT09UUF9TSE9SVF9SQU5ET01fREVMQVkgMSAgLyogVXNlIGEgc2hvcnQgcmFuZG9tIGRlbGF5IHZhbHVlICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBfUkVUUllfQ09VTlQgMHg0MDAwMDAwMCAvKiAjIG9mIHRpbWVvdXRzIGJlZm9yZSBnaXZpbmcgdXAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQX1NIT1JUX1JBTkRPTV9ERUxBWSAxICAvKiBVc2UgYSBzaG9ydCByYW5kb20gZGVsYXkgdmFsdWUgICAgKi8KIAkJCQkJLyogKGxpbWl0ZWQgdG8gbWF4aW11bSBvZiAxMDI0IG1zZWMpICovCi0jZGVmaW5lIENGR19DSEtfRk9SX0FCT1JUX0FUX0xFQVNUX09OQ0UgMQorI2RlZmluZSBDT05GSUdfU1lTX0NIS19GT1JfQUJPUlRfQVRfTEVBU1RfT05DRSAxCiAJCQkJCS8qIENoZWNrIGZvciBhYm9ydCBrZXkgcHJlc3NlcyAgICAgICAqLwogCQkJCQkvKiBhdCBsZWFzdCBvbmNlIGluIGRlcGVuZGVudCBvZiB0aGUgKi8KIAkJCQkJLyogQ09ORklHX0JPT1RERUxBWSB2YWx1ZS4gICAgICAgICAgICovCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQgMSAgICAgICAgLyogRG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAgICAgICovCi0jZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTiAxICAgICAgLyogRWNobyB0aGUgaW52ZXJ0ZWQgRXRoZXJuZXQgbGluayAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUIDEgICAgICAgIC8qIERvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOIDEgICAgICAvKiBFY2hvIHRoZSBpbnZlcnRlZCBFdGhlcm5ldCBsaW5rICAgKi8KIAkJCQkJLyogc3RhdGUgdG8gdGhlIGZhdWx0IExFRC4gICAgICAgICAgICovCi0jZGVmaW5lIENGR19GQVVMVF9NSUlfQUREUiAweDAyICAgICAgICAgLyogTUlJIGFkZHIgb2YgdGhlIFBIWSB0byBjaGVjayBmb3IgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfTUlJX0FERFIgMHgwMiAgICAgICAgIC8qIE1JSSBhZGRyIG9mIHRoZSBQSFkgdG8gY2hlY2sgZm9yICAqLwogCQkJCQkvKiB0aGUgRXRoZXJuZXQgbGluayBzdGF0ZS4gICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1NUQVRVU19GTEFTSF9VTlRJTF9URlRQX09LIDEgLyogS2VlcGluZyB0aGUgc3RhdHVzIExFRCBmbGFzaGluZyAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TVEFUVVNfRkxBU0hfVU5USUxfVEZUUF9PSyAxIC8qIEtlZXBpbmcgdGhlIHN0YXR1cyBMRUQgZmxhc2hpbmcgICovCiAJCQkJCS8qIHVudGlsIHRoZSBURlRQIGlzIHN1Y2Nlc3NmdWwuICAgICAqLwotI2RlZmluZSBDRkdfU1RBVFVTX09GRl9BRlRFUl9ORVRCT09UIDEgIC8qIEFmdGVyIGEgc3VjY2Vzc2Z1bCBuZXRib290LCAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1NUQVRVU19PRkZfQUZURVJfTkVUQk9PVCAxICAvKiBBZnRlciBhIHN1Y2Nlc3NmdWwgbmV0Ym9vdCwgICAgICAgKi8KIAkJCQkJLyogdHVybiBvZmYgdGhlIFNUQVRVUyBMRURzLiAgICAgICAgICovCi0jZGVmaW5lIENGR19URlRQX0JMSU5LX1NUQVRVU19PTl9EQVRBX0lOIDEgLyogQmxpbmsgc3RhdHVzIExFRCBiYXNlZCBvbiAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfVEZUUF9CTElOS19TVEFUVVNfT05fREFUQV9JTiAxIC8qIEJsaW5rIHN0YXR1cyBMRUQgYmFzZWQgb24gICAgICAqLwogCQkJCQkvKiBpbmNvbWluZyBkYXRhLiAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1RGVFBfQkxPQ0tTX1BFUl9IQVNIIDEwMCAgICAvKiBGb3IgZXZlcnkgWFggYmxvY2tzLCBvdXRwdXQgYSAnIycgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19URlRQX0JMT0NLU19QRVJfSEFTSCAxMDAgICAgLyogRm9yIGV2ZXJ5IFhYIGJsb2Nrcywgb3V0cHV0IGEgJyMnICovCiAJCQkJCS8qIHRvIHNpZ25pZnkgdGhhdCB0ZnRwIGlzIG1vdmluZy4gICAqLwotI2RlZmluZSBDRkdfVEZUUF9IQVNIRVNfUEVSX0ZMQVNIIDIwMCAgIC8qIEZvciBldmVyeSAnIycgaGFzaGVzLCAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1RGVFBfSEFTSEVTX1BFUl9GTEFTSCAyMDAgICAvKiBGb3IgZXZlcnkgJyMnIGhhc2hlcywgICAgICAgICAgICAgKi8KIAkJCQkJLyogZmxhc2ggdGhlIHN0YXR1cyBMRUQuICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19URlRQX0hBU0hFU19QRVJfTElORSA2NSAgICAgLyogT25seSBvdXRwdXQgWFggJyMncyBwZXIgbGluZSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfVEZUUF9IQVNIRVNfUEVSX0xJTkUgNjUgICAgIC8qIE9ubHkgb3V0cHV0IFhYICcjJ3MgcGVyIGxpbmUgICAgICAqLwogCQkJCQkvKiBkdXJpbmcgdGhlIHRmdHAgZmlsZSB0cmFuc2Zlci4gICAgKi8KLSNkZWZpbmUgQ0ZHX1RGVFBfUFJPR0VTU19RVUlFVCAxICAgICAgICAvKiBTdXBwcmVzcyB0aGUgcHJvZ3Jlc3MgZGlzcGxheXMgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19URlRQX1BST0dFU1NfUVVJRVQgMSAgICAgICAgLyogU3VwcHJlc3MgdGhlIHByb2dyZXNzIGRpc3BsYXlzICAgICovCiAJCQkJCS8qICcjJ3MgZnJvbSB0aGUgdGZ0cCBjb21tYW5kLiAgICAgICAqLwotI2RlZmluZSBDRkdfVEZUUF9TVEFUVVNfUVVJRVQgMSAgICAgICAgIC8qIFN1cHByZXNzIHRoZSBzdGF0dXMgZGlzcGxheXMgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1RGVFBfU1RBVFVTX1FVSUVUIDEgICAgICAgICAvKiBTdXBwcmVzcyB0aGUgc3RhdHVzIGRpc3BsYXlzICAgICAgKi8KIAkJCQkJLyogaXNzdWVkIGR1cmluZyB0aGUgdGZ0cCBjb21tYW5kLiAgICovCi0jZGVmaW5lIENGR19URlRQX1RJTUVPVVRfQ09VTlQgNSAgICAgICAgLyogSG93IG1hbnkgdGltZW91dHMgVEZUUCB3aWxsIGFsbG93ICovCisjZGVmaW5lIENPTkZJR19TWVNfVEZUUF9USU1FT1VUX0NPVU5UIDUgICAgICAgIC8qIEhvdyBtYW55IHRpbWVvdXRzIFRGVFAgd2lsbCBhbGxvdyAqLwogCQkJCQkvKiBiZWZvcmUgaXQgZ2l2ZXMgdXAuICAgICAgICAgICAgICAgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJICAgICAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSAgICAgKi8KICNlbHNlCi0jICBkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSAgICAgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSAgICAgKi8KICNlbmRpZgogCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCSAgKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCSAgKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKIAotI2RlZmluZSBDRkdfTUFYQVJHUwkJMzIJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkzMgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwogCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJICAgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDQwMDAwMCAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHg0MDAwMDAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUICAgICAgICAgICAgICAgICAvKiBTZWxlY3QgZnVsbC1mZWF0dXJlZCBtZW1vcnkgdGVzdCAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDIwMDAJLyogbWVtdGVzdCB3b3JrcyBmcm9tIHRoZSBlbmQgb2YgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVCAgICAgICAgICAgICAgICAgLyogU2VsZWN0IGZ1bGwtZmVhdHVyZWQgbWVtb3J5IHRlc3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MjAwMAkvKiBtZW10ZXN0IHdvcmtzIGZyb20gdGhlIGVuZCBvZiAqLwogCQkJCQkvKiB0aGUgZXhjZXB0aW9uIHZlY3RvciB0YWJsZSAqLwogCQkJCQkvKiB0byB0aGUgZW5kIG9mIHRoZSBEUkFNICAqLwogCQkJCQkvKiBsZXNzIG1vbml0b3IgYW5kIG1hbGxvYyBhcmVhICovCi0jZGVmaW5lIENGR19TVEFDS19VU0FHRQkJMHgxMDAwMCAvKiBSZXNlcnZlIDY0ayBmb3IgdGhlIHN0YWNrIHVzYWdlICovCi0jZGVmaW5lIENGR19NRU1fRU5EX1VTQUdFCSggQ0ZHX01PTklUT1JfTEVOIFwKLQkJCQkrIENGR19NQUxMT0NfTEVOIFwKKyNkZWZpbmUgQ09ORklHX1NZU19TVEFDS19VU0FHRQkJMHgxMDAwMCAvKiBSZXNlcnZlIDY0ayBmb3IgdGhlIHN0YWNrIHVzYWdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNX0VORF9VU0FHRQkoIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gXAorCQkJCSsgQ09ORklHX1NZU19NQUxMT0NfTEVOIFwKIAkJCQkrIENPTkZJR19FTlZfU0VDVF9TSVpFIFwKLQkJCQkrIENGR19TVEFDS19VU0FHRSApCisJCQkJKyBDT05GSUdfU1lTX1NUQUNLX1VTQUdFICkKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCSggQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCBcCi0JCQkJLSBDRkdfTUVNX0VORF9VU0FHRSApCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCSggQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQgXAorCQkJCS0gQ09ORklHX1NZU19NRU1fRU5EX1VTQUdFICkKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTYyNSwxMTIgKzYyNSwxMTIgQEAKICAqIFlvdSBzaG91bGQga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgaWYgeW91IG1ha2UgY2hhbmdlcyBoZXJlLgogICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJQ0ZHX0ZMQVNIMF9CQVNFCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCUNGR19GTEFTSDBfU0laRQotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQlDRkdfU0RSQU0wX0JBU0UKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJQ0ZHX1NEUkFNMF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQlDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQlDT05GSUdfU1lTX0ZMQVNIMF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQlDT05GSUdfU1lTX1NEUkFNMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQlDT05GSUdfU1lTX1NEUkFNMF9TSVpFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICovCi0jaWYgZGVmaW5lZChDRkdfU0JDX0JPT1RfTE9XKQotIyAgZGVmaW5lICBDRkdfU0JDX0hSQ1dfQk9PVF9GTEFHUyAgKEhSQ1dfQ0lQIHwgSFJDV19CTVMpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1NCQ19CT09UX0xPVykKKyMgIGRlZmluZSAgQ09ORklHX1NZU19TQkNfSFJDV19CT09UX0ZMQUdTICAoSFJDV19DSVAgfCBIUkNXX0JNUykKICNlbHNlCi0jICBkZWZpbmUgIENGR19TQkNfSFJDV19CT09UX0ZMQUdTICAoMCkKLSNlbmRpZiAvKiBkZWZpbmVkKENGR19TQkNfQk9PVF9MT1cpICovCisjICBkZWZpbmUgIENPTkZJR19TWVNfU0JDX0hSQ1dfQk9PVF9GTEFHUyAgKDApCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfU1lTX1NCQ19CT09UX0xPVykgKi8KIAotLyogZ2V0IHRoZSBIUkNXIElTQiBmaWVsZCBmcm9tIENGR19JTU1SICovCi0jZGVmaW5lIENGR19TQkNfSFJDV19JTU1SCSggKChDRkdfSU1NUiAmIDB4MTAwMDAwMDApID4+IDEwKSB8IFwKLQkJCQkgICgoQ0ZHX0lNTVIgJiAweDAxMDAwMDAwKSA+PiAgNykgfCBcCi0JCQkJICAoKENGR19JTU1SICYgMHgwMDEwMDAwMCkgPj4gIDQpICkKKy8qIGdldCB0aGUgSFJDVyBJU0IgZmllbGQgZnJvbSBDT05GSUdfU1lTX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQkNfSFJDV19JTU1SCSggKChDT05GSUdfU1lTX0lNTVIgJiAweDEwMDAwMDAwKSA+PiAxMCkgfCBcCisJCQkJICAoKENPTkZJR19TWVNfSU1NUiAmIDB4MDEwMDAwMDApID4+ICA3KSB8IFwKKwkJCQkgICgoQ09ORklHX1NZU19JTU1SICYgMHgwMDEwMDAwMCkgPj4gIDQpICkKIAotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJCSggSFJDV19CUFMxMAkJCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJKCBIUkNXX0JQUzEwCQkJCXwgXAogCQkJCSAgSFJDV19EUFBDMTEJCQkJfCBcCi0JCQkJICBDRkdfU0JDX0hSQ1dfSU1NUgkJCXwgXAorCQkJCSAgQ09ORklHX1NZU19TQkNfSFJDV19JTU1SCQkJfCBcCiAJCQkJICBIUkNXX01NUjAwCQkJCXwgXAogCQkJCSAgSFJDV19MQlBDMTEJCQkJfCBcCiAJCQkJICBIUkNXX0FQUEMxMAkJCQl8IFwKIAkJCQkgIEhSQ1dfQ1MxMFBDMDAJCQkJfCBcCi0JCQkJICAoQ0ZHX1NCQ19NT0RDS19IICYgSFJDV19NT0RDS19IMTExMSkJfCBcCi0JCQkJICBDRkdfU0JDX0hSQ1dfQk9PVF9GTEFHUyApCisJCQkJICAoQ09ORklHX1NZU19TQkNfTU9EQ0tfSCAmIEhSQ1dfTU9EQ0tfSDExMTEpCXwgXAorCQkJCSAgQ09ORklHX1NZU19TQkNfSFJDV19CT09UX0ZMQUdTICkKIAogLyogbm8gc2xhdmVzICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNAkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3CQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAotICogTm90ZSBhbHNvIHRoYXQgdGhlIGxvZ2ljIHRoYXQgc2V0cyBDRkdfUkFNQk9PVCBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQuCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogTm90ZSBhbHNvIHRoYXQgdGhlIGxvZ2ljIHRoYXQgc2V0cyBDT05GSUdfU1lTX1JBTUJPT1QgaXMgcGxhdGZvcm0gZGVwZW5kZW50LgogICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0gwX0JBU0UKIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICBkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJCSovCi0jdW5kZWYgIENGR19GTEFTSF9QUk9URUNUSU9OCQkvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDY0KzQpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudAkJKi8KKyN1bmRlZiAgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCQkvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoNjQrNCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkxCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICMgIGRlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKIAogIyAgaWZkZWYgQ09ORklHX0VOVl9JTl9PV05fU0VDVAotIyAgICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorIyAgICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAjICAgIGRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAjICBlbHNlCi0jICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgKENGR19GTEFTSF9CQVNFICsgQ0ZHX01PTklUT1JfTEVOIC0gQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKICMgICAgZGVmaW5lIENPTkZJR19FTlZfU0laRQkweDEwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KICMgICAgZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAgLyogc2VlIFJFQURNRSAtIGVudiBzZWN0IHJlYWwgc2l6ZQkqLwogIyAgZW5kaWYgLyogQ09ORklHX0VOVl9JTl9PV05fU0VDVCAqLwogCiAjZWxzZQogIyAgZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0JMQotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTc0MywzNyArNzQzLDM3IEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCShISUQwX0lDRSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJKEhJRDBfSUNFICB8XAogCQkJIEhJRDBfRENFICB8XAogCQkJIEhJRDBfSUNGSSB8XAogCQkJIEhJRDBfRENJICB8XAogCQkJIEhJRDBfSUZFTSB8XAogCQkJIEhJRDBfQUJFKQogCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCShISUQwX0lDRSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCShISUQwX0lDRSAgfFwKIAkJCSBISUQwX0lGRU0gfFwKIAkJCSBISUQwX0FCRSAgfFwKIAkJCSBISUQwX0VNQ1ApCi0jZGVmaW5lIENGR19ISUQyCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19STVIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19STVIJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24JCQkJCSA0LTI1CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0JDUgkJKEJDUl9FVE0pCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkoQkNSX0VUTSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0lVTUNSIC0gU0lVIE1vZHVsZSBDb25maWd1cmF0aW9uCQkJCSA0LTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIAotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfRFBQQzExCXxcCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfRFBQQzExCXxcCiAJCQkgU0lVTUNSX0wyQ1BDMDAgfFwKIAkJCSBTSVVNQ1JfQVBQQzEwCXxcCiAJCQkgU0lVTUNSX01NUjAwKQpAQCAtNzg2LDcgKzc4Niw3IEBACiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHxcCiAJCQkgU1lQQ1JfQk1UICB8XAogCQkJIFNZUENSX1BCTUUgfFwKIAkJCSBTWVBDUl9MQk1FIHxcCkBAIC03OTQsNyArNzk0LDcgQEAKIAkJCSBTWVBDUl9TV1AgIHxcCiAJCQkgU1lQQ1JfU1dFKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfFwKIAkJCSBTWVBDUl9CTVQgIHxcCiAJCQkgU1lQQ1JfUEJNRSB8XAogCQkJIFNZUENSX0xCTUUgfFwKQEAgLTgwOCw3ICs4MDgsNyBAQAogICogQ2xlYXIgb25jZSBwZXIgU2Vjb25kIGFuZCBBbGFybSBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLAogICogYW5kIGVuYWJsZSBUaW1lIENvdW50ZXIKICAqLwotI2RlZmluZSBDRkdfVE1DTlRTQwkoVE1DTlRTQ19TRUMgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDCShUTUNOVFNDX1NFQyB8XAogCQkJIFRNQ05UU0NfQUxSIHxcCiAJCQkgVE1DTlRTQ19UQ0YgfFwKIAkJCSBUTUNOVFNDX1RDRSkKQEAgLTgxOSw3ICs4MTksNyBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyAgfFwKIAkJCSBQSVNDUl9QVEYgfFwKIAkJCSBQSVNDUl9QVEUpCiAKQEAgLTgyNywxMyArODI3LDEzIEBACiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIENvbnRyb2wJCQkJCSA5LTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0NDUgkwCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbgkJCQkxMy03CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IJMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IJMAogCiAvKgogICogSW5pdGlhbGl6ZSBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTg3Miw3ICs4NzIsNyBAQAogICogICAgIC0gTm8gZGF0YSBwaXBlbGluaW5nIGlzIGRvbmUKICAqICAgICAtIFZhbGlkCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChDRkdfRkxBU0gwX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChDT05GSUdfU1lTX0ZMQVNIMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfMTYJCQl8XAogCQkJIEJSeF9NU19HUENNX1AJCQl8XAogCQkJIEJSeF9WKQpAQCAtODkxLDcgKzg5MSw3IEBACiAgKiAgICAgLSBPbmUgaWRsZSBjbG9jayBpcyBpbnNlcnRlZCBiZXR3ZWVuIGEgcmVhZCBhY2Nlc3MgZnJvbSB0aGUKICAqCSBjdXJyZW50IGJhbmsgYW5kIHRoZSBuZXh0IGFjY2Vzcy4KICAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoTUVHX1RPX0FNKENGR19GTEFTSDBfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShNRUdfVE9fQU0oQ09ORklHX1NZU19GTEFTSDBfU0laRSkJfFwKIAkJCSBPUnhHX0NTTlQJCQl8XAogCQkJIE9SeEdfQUNTX0RJVjEJCQl8XAogCQkJIE9SeEdfU0NZXzVfQ0xLCQkJfFwKQEAgLTkyMSwxMiArOTIxLDEyIEBACiAgKiAgICAgLSBObyBkYXRhIHBpcGVsaW5pbmcgaXMgZG9uZQogICogICAgIC0gVmFsaWQKICAqLwotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKENGR19TRFJBTTBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKENPTkZJR19TWVNfU0RSQU0wX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU182NAkJCXxcCiAJCQkgQlJ4X01TX1NEUkFNX1AJCQl8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoQ0ZHX1NEUkFNMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoQ09ORklHX1NZU19TRFJBTTBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfU0RSQU1fUAkJCXxcCiAJCQkgQlJ4X1YpCkBAIC05NDAsOCArOTQwLDggQEAKICAqICAgICAtIEJhY2stdG8tYmFjayBwYWdlIG1vZGUKICAqICAgICAtIEludGVybmFsIGJhbmsgaW50ZXJsZWF2aW5nIHdpdGhpbiBzYXZlIGRldmljZSBlbmFibGVkCiAgKi8KLSNpZiAoQ0ZHX1NEUkFNMF9TSVpFID09IDY0KQotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoTUVHX1RPX0FNKENGR19TRFJBTTBfU0laRSkJfFwKKyNpZiAoQ09ORklHX1NZU19TRFJBTTBfU0laRSA9PSA2NCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShNRUdfVE9fQU0oQ09ORklHX1NZU19TRFJBTTBfU0laRSkJfFwKIAkJCSBPUnhTX0JQRF80CQkJfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTBfQTgJCXxcCiAJCQkgT1J4U19OVU1SXzEyKQpAQCAtOTU5LDcgKzk1OSw3IEBACiAgKi8KICNkZWZpbmUgU0RSQU1fU1BEX0FERFIgMHg1MAogCi0jaWYgKENGR19TRFJBTTBfU0laRSA9PSA2NCkKKyNpZiAoQ09ORklHX1NZU19TRFJBTTBfU0laRSA9PSA2NCkKIC8qIFdpdGggYSA2NCBNQiBESU1NLCB0aGUgUFNETVIgaXMgY29uZmlndXJlZCBhcyBmb2xsb3dzOgogICoKICAqICAgICAtIEJhbmsgQmFzZWQgSW50ZXJsZWF2aW5nLApAQCAtOTc3LDcgKzk3Nyw3IEBACiAgKiAgICAgLSBlYXJsaWVzdCB0aW1pbmcgZm9yIFBSRUNIQVJHRSBhZnRlciBsYXN0IGRhdGEgd2FzIHdyaXR0ZW4gaXMgMSBjbG9jaywKICAqICAgICAtIENBUyBMYXRlbmN5IGlzIDIuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BTRE1SCShQU0RNUl9SRkVOCSAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJKFBTRE1SX1JGRU4JICAgICAgfFwKIAkJCSBQU0RNUl9TREFNX0ExNF9JU19BNSB8XAogCQkJIFBTRE1SX0JTTUFfQTE0X0ExNiAgIHxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMF9BOSAgfFwKQEAgLTk5NSwxNCArOTk1LDE0IEBACiAgKiBTaG9vdCBmb3IgYXBwcm94aW1hdGVseSAxTUh6IG9uIHRoZSBwcmVzY2FsZXIuCiAgKi8KICNpZiAoQ09ORklHXzgyNjBfQ0xLSU4gPj0gKDYwICogMTAwMCAqIDEwMDApKQotI2RlZmluZSBDRkdfTVBUUFIJTVBUUFJfUFRQX0RJVjY0CisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJTVBUUFJfUFRQX0RJVjY0CiAjZWxpZiAoQ09ORklHXzgyNjBfQ0xLSU4gPj0gKDMwICogMTAwMCAqIDEwMDApKQotI2RlZmluZSBDRkdfTVBUUFIJTVBUUFJfUFRQX0RJVjMyCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJTVBUUFJfUFRQX0RJVjMyCiAjZWxzZQotI3dhcm5pbmcgIlVuY29uZmlndXJlZCBidXMgY2xvY2sgZnJlcTogY2hlY2sgQ0ZHX01QVFBSIGFuZCBDRkdfUFNSVCBhcmUgT0siCi0jZGVmaW5lIENGR19NUFRQUglNUFRQUl9QVFBfRElWMzIKKyN3YXJuaW5nICJVbmNvbmZpZ3VyZWQgYnVzIGNsb2NrIGZyZXE6IGNoZWNrIENPTkZJR19TWVNfTVBUUFIgYW5kIENPTkZJR19TWVNfUFNSVCBhcmUgT0siCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJTVBUUFJfUFRQX0RJVjMyCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BTUlQJMTQKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUCTE0CiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTAxNyw3ICsxMDE3LDcgQEAKICAqCiAgKiBUaGUgc2Vjb25kYXJ5IEZMQVNIIGlzIGNvbm5lY3RlZCB0byAqQ1M2CiAgKi8KLSNpZiAoZGVmaW5lZChDRkdfRkxBU0gxX0JBU0UpICYmIGRlZmluZWQoQ0ZHX0ZMQVNIMV9TSVpFKSkKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIMV9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0gxX1NJWkUpKQogCiAvKiBCUjYgaXMgY29uZmlndXJlZCBhcyBmb2xsb3dzOgogICoKQEAgLTEwMzEsNyArMTAzMSw3IEBACiAgKiAgICAgLSBObyBkYXRhIHBpcGVsaW5pbmcgaXMgZG9uZQogICogICAgIC0gVmFsaWQKICAqLwotIyAgZGVmaW5lIENGR19CUjZfUFJFTElNICAoKENGR19GTEFTSDFfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjICBkZWZpbmUgQ09ORklHX1NZU19CUjZfUFJFTElNICAoKENPTkZJR19TWVNfRkxBU0gxX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJICAgQlJ4X1BTXzE2CQkJICB8XAogCQkJICAgQlJ4X01TX0dQQ01fUAkJICB8XAogCQkJICAgQlJ4X1YpCkBAIC0xMDUwLDEzICsxMDUwLDEzIEBACiAgKiAgICAgLSBPbmUgaWRsZSBjbG9jayBpcyBpbnNlcnRlZCBiZXR3ZWVuIGEgcmVhZCBhY2Nlc3MgZnJvbSB0aGUKICAqCSBjdXJyZW50IGJhbmsgYW5kIHRoZSBuZXh0IGFjY2Vzcy4KICAqLwotIyAgZGVmaW5lIENGR19PUjZfUFJFTElNICAoTUVHX1RPX0FNKENGR19GTEFTSDFfU0laRSkgIHxcCisjICBkZWZpbmUgQ09ORklHX1NZU19PUjZfUFJFTElNICAoTUVHX1RPX0FNKENPTkZJR19TWVNfRkxBU0gxX1NJWkUpICB8XAogCQkJICAgT1J4R19DU05UCQkgICAgICAgfFwKIAkJCSAgIE9SeEdfQUNTX0RJVjEJICAgICAgIHxcCiAJCQkgICBPUnhHX1NDWV81X0NMSwkgICAgICAgfFwKIAkJCSAgIE9SeEdfVFJMWAkJICAgICAgIHxcCiAJCQkgICBPUnhHX0VIVFIpCi0jZW5kaWYgLyogKGRlZmluZWQoQ0ZHX0ZMQVNIMV9CQVNFKSAmJiBkZWZpbmVkKENGR19GTEFTSDFfU0laRSkpICovCisjZW5kaWYgLyogKGRlZmluZWQoQ09ORklHX1NZU19GTEFTSDFfQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIMV9TSVpFKSkgKi8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjMjQxMHguaCBiL2luY2x1ZGUvY29uZmlncy9zYmMyNDEweC5oCmluZGV4IDExMGFiMzkuLmQ3YTZhZTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zYmMyNDEweC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zYmMyNDEweC5oCkBAIC01Nyw4ICs1Nyw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTEyNSwyNiArMTI1LDI2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIlsgfmxqaEBHRExDIF0jICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiWyB+bGpoQEdETEMgXSMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgzMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgzM0YwMDAwMAkvKiA2MyBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDMwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgzM0YwMDAwMAkvKiA2MyBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgzMzAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgzMzAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCiAvKiB0aGUgUFdNIFRJbWVyIDQgdXNlcyBhIGNvdW50ZXIgb2YgMTU2MjUgZm9yIDEwIG1zLCBzbyB3ZSBuZWVkICovCiAvKiBpdCB0byB3cmFwIDEwMCB0aW1lcyAodG90YWwgMTU2MjUwMCkgdG8gZ2V0IDEgc2VjLiAqLwotI2RlZmluZQlDRkdfSFoJCQkxNTYyNTAwCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxNTYyNTAwCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTE2Niw3ICsxNjYsNyBAQAogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgwMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCkBAIC0xNzUsMjMgKzE3NSwyMyBAQAogCiAjZGVmaW5lIENPTkZJR19BTURfTFY4MDAJMQkvKiB1bmNvbW1lbnQgdGhpcyBpZiB5b3UgaGF2ZSBhIExWODAwIGZsYXNoICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KIAogI2lmZGVmIENPTkZJR19BTURfTFY4MDAKICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAwMTAwMDAwIC8qIDFNQiAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDE5KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDBGMDAwMCkgLyogYWRkciBvZiBlbnZpcm9ubWVudCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgxOSkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MEYwMDAwKSAvKiBhZGRyIG9mIGVudmlyb25tZW50ICovCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19BTURfTFY0MDAKICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAwMDgwMDAwIC8qIDUxMktCICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMTEpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4MDcwMDAwKSAvKiBhZGRyIG9mIGVudmlyb25tZW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDExKQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwNzAwMDApIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KICNlbmRpZgogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCkBAIC0yMDAsNyArMjAwLDcgQEAKICAqIE5BTkQgZmxhc2ggc2V0dGluZ3MKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9OQU5EKQotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMJCSovCiAjZGVmaW5lIFNFQ1RPUlNJWkUgNTEyCiAKICNkZWZpbmUgQUREUl9DT0xVTU4gMQpAQCAtMjMxLDggKzIzMSw4IEBACiAjZGVmaW5lIENPTkZJR19JTklUUkRfVEFHCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX1RBRwogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICAgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICAgIj4gIgogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NiYzQwNS5oIGIvaW5jbHVkZS9jb25maWdzL3NiYzQwNS5oCmluZGV4IDc1OWU0ZTIuLmQ5M2NhMmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zYmM0MDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc2JjNDA1LmgKQEAgLTEyNSw0OCArMTI1LDQ4IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI3VuZGVmIENGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSwkJLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkJNjkxMjAwCisjdW5kZWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCQkvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJCTY5MTIwMAogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQkJCQkJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCQkJCQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLAlcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW5mbyAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2luZm8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRQkxCS8qIGluY2x1ZGUgdmVyc2lvbiBlbnYgdmFyaWFibGUgKi8KIAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCiAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICN1bmRlZiAgQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE4Myw1MSArMTgzLDUxIEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHByaW50IHBjaSBkZXZpY2VzIEAgc3RhcnR1cAkqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklECTB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRAkweDA0MDgJLyogUENJIERldmljZSBJRDogUE1DLTQwNQkqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJCTB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEJMHhmZmMwMDAwMAkvKiBwb2ludCB0byBmbGFzaAkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSQkweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRAkweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlECTB4MDQwOAkvKiBQQ0kgRGV2aWNlIElEOiBQTUMtNDA1CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJCTB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4ZmZjMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSQkweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CQkqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJCSovCi0jZGVmaW5lIENGR19GTEFTSF9JTkNSRU1FTlQJMHgwMTAwMDAwMAotI3VuZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCQkvKiBkb24ndCB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQJMHgwMTAwMDAwMAorI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkJLyogZG9uJ3QgdXNlIGhhcmR3YXJlIHByb3RlY3Rpb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudCBWYXJpYWJsZSBzZXR1cAogICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUglDRkdfRkxBU0hfQkFTRQkvKiBzdGFydGluZyByaWdodCBhdCB0aGUgYmVnaW5uaW5nCSovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUglDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogc3RhcnRpbmcgcmlnaHQgYXQgdGhlIGJlZ2lubmluZwkqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTAJLyogc3RhcnRpbmcgcmlnaHQgYXQgdGhlIGJlZ2lubmluZwkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCS8qIHNlZSBSRUFETUUgLSBlbnYgc2VjdG9yIHRvdGFsIHNpemUJKi8KQEAgLTIzNiwyOCArMjM2LDI4IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICovCi0jZGVmaW5lIEZMQVNIMF9CQQlDRkdfRkxBU0hfQkFTRQkJLyogRkxBU0ggMCBCYXNlIEFkZHJlc3MJCSovCisjZGVmaW5lIEZMQVNIMF9CQQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCS8qIEZMQVNIIDAgQmFzZSBBZGRyZXNzCQkqLwogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDApIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUglGTEFTSDBfQkEgfCAweDlDMDAwIC8qIEJBUz0weEZGMCxCUz0xNk1CLEJVPVIvVyxCVz0zMmJpdCovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJRkxBU0gwX0JBIHwgMHg5QzAwMCAvKiBCQVM9MHhGRjAsQlM9MTZNQixCVT1SL1csQlc9MzJiaXQqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIGRhdGEgY2FjaGUpCiAgKi8KIAogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkxCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIFNlcmlhbCBQcmVzZW5jZSBEZXRlY3QgRUVQUk9NIGFkZHJlc3MKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zYmM4MjQwLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc2JjODI0MC5oCmluZGV4IDEwZmY3YWIuLmQxOWE3ODcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zYmM4MjQwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NiYzgyNDAuaApAQCAtNDUsNyArNDUsNyBAQAogCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lIENPTkZJR19QUkVCT09UICAiZWNobztlY2hvIFdlbGNvbWUgdG8gVS1Cb290IGZvciB0aGUgc2JjODI0MDtlY2hvO2VjaG8gVHlwZSBcIj8gb3IgaGVscFwiIHRvIGdldCBvbi1saW5lIGhlbHA7ZWNobyIKIApAQCAtMTA2LDE1ICsxMDYsMTUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogCiAjaWYgMQotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KICNlbmRpZgotI2lmZGVmIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19FVEhBRERSICAgICAgICAgIERFOkFEOkJFOkVGOjAxOjAxICAgIC8qIEV0aGVybmV0IGFkZHJlc3MgKi8KQEAgLTEyNiw3ICsxMjYsNyBAQAogI2RlZmluZSBDT05GSUdfQk9BUkRfU1BFQ0lGSUNfTEVEICAgICAgIC8qIHZlcnNpb24gaGFzIGJvYXJkIHNwZWNpZmljIGxlZHMgKi8KIAogI2RlZmluZSBTVEFUVVNfTEVEX0JJVCAgICAgICAgICAweDAwMDAwMDAxCi0jZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EICAgICAgIChDRkdfSFogLyAyKQorI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRCAgICAgICAoQ09ORklHX1NZU19IWiAvIDIpCiAjZGVmaW5lIFNUQVRVU19MRURfU1RBVEUgICAgICAgIFNUQVRVU19MRURfQkxJTktJTkcKICNkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUgICAgICAgMCAgICAgICAvKiBMRUQgb24gZm9yIGJpdCA9PSAwICAqLwogI2RlZmluZSBTVEFUVVNfTEVEX0JPT1QgICAgICAgICAwICAgICAgIC8qIExFRCAwIHVzZWQgZm9yIGJvb3Qgc3RhdHVzICovCkBAIC0xMzcsMTUgKzEzNywxNSBAQAogCiAjZGVmaW5lIF9fbGVkX3RvZ2dsZShfbXNrKSBcCiAJZG8geyBcCi0JCSooKHZvbGF0aWxlIGNoYXIgKikgKENGR19MRURfQkFTRSkpIF49IChfbXNrKTsgXAorCQkqKCh2b2xhdGlsZSBjaGFyICopIChDT05GSUdfU1lTX0xFRF9CQVNFKSkgXj0gKF9tc2spOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIF9fbGVkX3NldChfbXNrLCBfc3QpIFwKIAlkbyB7IFwKIAkJaWYgKChfc3QpKSBcCi0JCQkqKCh2b2xhdGlsZSBjaGFyICopIChDRkdfTEVEX0JBU0UpKSB8PSAoX21zayk7IFwKKwkJCSooKHZvbGF0aWxlIGNoYXIgKikgKENPTkZJR19TWVNfTEVEX0JBU0UpKSB8PSAoX21zayk7IFwKIAkJZWxzZSBcCi0JCQkqKCh2b2xhdGlsZSBjaGFyICopIChDRkdfTEVEX0JBU0UpKSAmPSB+KF9tc2spOyBcCisJCQkqKCh2b2xhdGlsZSBjaGFyICopIChDT05GSUdfU1lTX0xFRF9CQVNFKSkgJj0gfihfbXNrKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBfX2xlZF9pbml0KG1zaywgc3QpIF9fbGVkX3NldChtc2ssIHN0KQpAQCAtMTUzLDQ0ICsxNTMsNDQgQEAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgotI2RlZmluZSBDRkdfTEVEX0JBU0UJMHhGRkU4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xFRF9CQVNFCTB4RkZFODAwMDAKIAogLyogUHJpbnQgQnVmZmVyIFNpemUKICAqLwotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKIAotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MDAxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MDAxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCSAgICAweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgIDB4RkZGMDAwMDAKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAogCi0jZGVmaW5lIENGR19FVU1CX0FERFIJICAgIDB4RkNFMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVU1CX0FERFIJICAgIDB4RkNFMDAwMDAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JICAgICgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSAgICAoMTI4IDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkgICAgKDI1NiA8PCAxMCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSAgICAoMTI4IDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgIDB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECSAgICAweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCAgIDB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkgICAgMHgwMjAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLwogCiAJLyogTWF4aW11bSBhbW91bnQgb2YgUkFNLgogCSAqLwotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFICAgIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgICAgMHgxMDAwMDAwMAogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQotI3VuZGVmIENGR19SQU1CT09UCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCisjdW5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xOTksMjMgKzE5OSwyMyBAQAogCiAJLyogU2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhCiAJICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgIDEyOAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgMTI4CiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAgIDB4MTAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgICAweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogLyoKICAqIE5TMTY1NTAgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAogCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTM2ODY0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJMzY4NjQwMAogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJMHhGRkY4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkweEZGRjgwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjI1LDM2ICsyMjUsMzYgQEAKICAqLwogCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEgIDMzMDAwMDAwCi0jZGVmaW5lIENGR19IWgkJICAgICAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCSAgICAgMTAwMAogI2RlZmluZSBDT05GSUdfUExMX1BDSV9UT19NRU1fTVVMVElQTElFUiAzCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMS4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1JPTU5BTAkgICAgMAotI2RlZmluZSBDRkdfUk9NRkFMCSAgICA3CisjZGVmaW5lIENPTkZJR19TWVNfUk9NTkFMCSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUk9NRkFMCSAgICA3CiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMi4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1JFRklOVAkgICAgNDMwCSAgICAvKiBSZWZyZXNoIGludGVydmFsCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUZJTlQJICAgIDQzMAkgICAgLyogUmVmcmVzaCBpbnRlcnZhbAkJCSovCiAKIAkvKiBCdXJzdCBUbyBQcmVjaGFyZ2UuIEJpdHMgb2YgdGhpcyB2YWx1ZSBnbyB0byBNQ0NSMyBhbmQgTUNDUjQuCiAJICovCi0jZGVmaW5lIENGR19CU1RPUFJFCSAgICAxOTIKKyNkZWZpbmUgQ09ORklHX1NZU19CU1RPUFJFCSAgICAxOTIKIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IzLgogCSAqLwotI2RlZmluZSBDRkdfUkVGUkVDCSAgICAyCSAgICAvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCSovCi0jZGVmaW5lIENGR19SRExBVAkgICAgMwkgICAgLyogRGF0YSBsYXRhbmN5IGZyb20gcmVhZCBjb21tYW5kCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDCSAgICAyCSAgICAvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkRMQVQJICAgIDMJICAgIC8qIERhdGEgbGF0YW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLwogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjQuCiAJICovCi0jZGVmaW5lIENGR19QUkVUT0FDVAkgICAgMgkgICAgLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsCSovCi0jZGVmaW5lIENGR19BQ1RUT1BSRQkgICAgNQkgICAgLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCi0jZGVmaW5lIENGR19TRE1PREVfQ0FTX0xBVCAgMgkgICAgLyogU0RNT0RFIENBUyBsYXRhbmN5CQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAJICAgIDAJICAgIC8qIFNETU9ERSB3cmFwIHR5cGUJCQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX0JVUlNUTEVOIDIJICAgIC8qIFNETU9ERSBCdXJzdCBsZW5ndGgJCSovCi0jZGVmaW5lIENGR19BQ1RPUlcJICAgIDIKLSNkZWZpbmUgQ0ZHX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAxCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJICAgIDIJICAgIC8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVFRPUFJFCSAgICA1CSAgICAvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVCAgMgkgICAgLyogU0RNT0RFIENBUyBsYXRhbmN5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9XUkFQCSAgICAwCSAgICAvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4gMgkgICAgLyogU0RNT0RFIEJ1cnN0IGxlbmd0aAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RPUlcJICAgIDIKKyNkZWZpbmUgQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQogCiAvKiBNZW1vcnkgYmFuayBzZXR0aW5ncy4KICAqIE9ubHkgYml0cyAyMC0yOSBhcmUgYWN0dWFsbHkgdXNlZCBmcm9tIHRoZXNlIHZhbGVzIHRvIHNldCB0aGUKQEAgLTI2Myw2OSArMjYzLDY5IEBACiAgKiBhZGRyZXNzLiBSZWZlciB0byB0aGUgTVBDODI0MCBib29rLgogICovCiAKLSNkZWZpbmUgQ0ZHX0JBTkswX1NUQVJUCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMF9FTkQJICAgIChDRkdfTUFYX1JBTV9TSVpFIC0gMSkKLSNkZWZpbmUgQ0ZHX0JBTkswX0VOQUJMRSAgICAxCi0jZGVmaW5lIENGR19CQU5LMV9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzFfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMV9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzJfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksyX0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzJfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTkszX1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LM19FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTkszX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNF9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNF9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzVfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzVfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks2X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks2X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LN19TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LN19FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX1NUQVJUCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5ECSAgICAoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VOQUJMRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkFCTEUgICAgMAogCi0jZGVmaW5lIENGR19PRENSCSAgICAweGZmCisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkgICAgMHhmZgogCi0jZGVmaW5lIENGR19JQkFUMEwgIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVSAgKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVSAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUMUwgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVSAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVSAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUMkwgICgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDJVICAoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTCAgKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVICAoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUM0wgICgweEZDMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVICAoMHhGQzAwMDAwMCB8IEJBVFVfQkxfNjRNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMICAoMHhGQzAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgICgweEZDMDAwMDAwIHwgQkFUVV9CTF82NE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfREJBVDBMICBDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUgIENGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTCAgQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVICBDRkdfSUJBVDFVCi0jZGVmaW5lIENGR19EQkFUMkwgIENGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVSAgQ0ZHX0lCQVQyVQotI2RlZmluZSBDRkdfREJBVDNMICBDRkdfSUJBVDNMCi0jZGVmaW5lIENGR19EQkFUM1UgIENGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwgIENPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVICBDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTCAgQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUgIENPTkZJR19TWVNfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMICBDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVSAgQ09ORklHX1NZU19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wgIENPTkZJR19TWVNfSUJBVDNMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVICBDT05GSUdfU1lTX0lCQVQzVQogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSAgICAoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTMzMyw3ICszMzMsNyBAQAogICogQlIwLzEgYW5kIE9SMC8xIChGTEFTSCkKICAqLwogCi0jZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTSAgICAgIENGR19GTEFTSF9CQVNFICAvKiBGTEFTSCBiYW5rICMwICAgICAgICAqLworI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0gICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgIC8qIEZMQVNIIGJhbmsgIzAgICAgICAgICovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTSAgICAgIDAgICAgICAgICAgICAgICAvKiBGTEFTSCBiYW5rICMxICAgICAgICAqLwogCiAJLyogV2FyaW5pbmc6IGVudmlyb25tZW50IGlzIG5vdCBFTUJFRERFRCBpbiB0aGUgVS1Cb290IGNvZGUuCkBAIC0zNDgsOSArMzQ4LDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKgpAQCAtMzcwLDUgKzM3MCw1IEBACiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCS8qIE11bHRpIGV0aGVybmV0IGNhcmRzIHN1cHBvcnQgKi8KICNkZWZpbmUgQ09ORklHX1RVTElQCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4ICAgICAgIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTggICAgICAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zYmM4MjYwLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc2JjODI2MC5oCmluZGV4IGU5NmFkYjkuLjI2ZWQ1NTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zYmM4MjYwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NiYzgyNjAuaApAQCAtNzMsNyArNzMsNyBAQAogICogMHg2CSAgICAgMHgxCSA2NgkxMzMgICAgMjY2ICAgQ2xvc2UgIENsb3NlICBPcGVuCiAgKiAweDYJICAgICAweDIJIDY2CTEzMyAgICAzMDAgICBDbG9zZSAgT3BlbiAgIENsb3NlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NCQ19NT0RDS19IIDB4MDUKKyNkZWZpbmUgQ09ORklHX1NZU19TQkNfTU9EQ0tfSCAweDA1CiAKIC8qIERlZmluZSB0aGlzIGlmIHlvdSB3YW50IHRvIGJvb3QgZnJvbSAweDAwMDAwMTAwLiBJZiB5b3UgZG9uJ3QgZGVmaW5lCiAgKiB0aGlzLCB5b3Ugd2lsbCBuZWVkIHRvIHByb2dyYW0gdGhlIGJvb3Rsb2FkZXIgdG8gMHhmZmYwMDAwMCwgYW5kCkBAIC04MSwzNCArODEsMzQgQEAKICAqIHdheSB0byBkbyB0aGF0IGlzIHRvIHByb2dyYW0gdGhlIGJvb3Rsb2FkZXIgYXQgYm90aCBhZGRyZXNzZXMuCiAgKiBJdCBpcyBzdWdnZXN0ZWQgdGhhdCB5b3UganVzdCBsZXQgVS1Cb290IGxpdmUgYXQgMHgwMDAwMDAwMC4KICAqLwotI2RlZmluZSBDRkdfU0JDX0JPT1RfTE9XIDEKKyNkZWZpbmUgQ09ORklHX1NZU19TQkNfQk9PVF9MT1cgMQogCiAvKiBXaGF0IHNob3VsZCB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBtYWluIEZMQVNIIGJlIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gTUJ5dGVzKT8gVGhpcyBtdXN0IGNvbnRhaW4gVEVYVF9CQVNFIGZyb20gYm9hcmQvc2JjODI2MC9jb25maWcubWsKICAqIFRoZSBtYWluIEZMQVNIIGlzIHdoaWNoZXZlciBpcyBjb25uZWN0ZWQgdG8gKkNTMC4gVS1Cb290IGV4cGVjdHMKICAqIHRoaXMgdG8gYmUgdGhlIFNJTU0uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9CQVNFIDB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9TSVpFIDQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRSAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX1NJWkUgNAogCiAvKiBXaGF0IHNob3VsZCB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBzZWNvbmRhcnkgRkxBU0ggYmUgYW5kIGhvdyBiaWcKICAqIGlzIGl0IChpbiBNYnl0ZXMpPyBUaGUgc2Vjb25kYXJ5IEZMQVNIIGlzIHdoaWNoZXZlciBpcyBjb25uZWN0ZWQKICAqIHRvICpDUzYuIFUtQm9vdCBleHBlY3RzIHRoaXMgdG8gYmUgdGhlIG9uIGJvYXJkIEZMQVNILiBJZiB5b3UgZG9uJ3QKICAqIHdhbnQgaXQgZW5hYmxlZCwgZG9uJ3QgZGVmaW5lIHRoZXNlIGNvbnN0YW50cy4KICAqLwotI2RlZmluZSBDRkdfRkxBU0gxX0JBU0UgMHg2MDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gxX1NJWkUgMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFIDB4NjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfU0laRSAyCiAKIC8qIFdoYXQgc2hvdWxkIGJlIHRoZSBiYXNlIGFkZHJlc3Mgb2YgU0RSQU0gRElNTSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1ieXRlcyk/CiAqLwotI2RlZmluZSBDRkdfU0RSQU0wX0JBU0UgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0wX1NJWkUgNjQKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfQkFTRSAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX1NJWkUgNjQKIAogLyogV2hhdCBzaG91bGQgYmUgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgTEVEcyBhbmQgc3dpdGNoIFMwPwogICogSWYgeW91IGRvbid0IHdhbnQgdGhlbSBlbmFibGVkLCBkb24ndCBkZWZpbmUgdGhpcy4KICAqLwotI2RlZmluZSBDRkdfTEVEX0JBU0UgMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xFRF9CQVNFIDB4YTAwMDAwMDAKIAogCiAvKgpAQCAtMTI4LDEwICsxMjgsMTAgQEAKICAqICAgICAweDAwRjUgRkZCMCAgICAgQm9hcmQgSW5mbyBEYXRhCiAgKiAgICAgMHgwMEY2IDAwMDAgICAgIE1hbGxvYyBBcmVuYQogICoJICAgICA6CQkgICAgQ09ORklHX0VOVl9TRUNUX1NJWkUsIDI1NmsKLSAqCSAgICAgOgkJICAgIENGR19NQUxMT0NfTEVOLCAgICAxMjhrCisgKgkgICAgIDoJCSAgICBDT05GSUdfU1lTX01BTExPQ19MRU4sICAgIDEyOGsKICAqICAgICAweDAwRkMgMDAwMCAgICAgUkFNIENvcHkgb2YgTW9uaXRvciBDb2RlCi0gKgkgICAgIDoJCSAgICBDRkdfTU9OSVRPUl9MRU4sICAgMjU2awotICogICAgIDB4MDBGRiBGRkZGICAgICBbRW5kIG9mIFJBTV0sIENGR19TRFJBTV9TSVpFIC0gMQorICoJICAgICA6CQkgICAgQ09ORklHX1NZU19NT05JVE9SX0xFTiwgICAyNTZrCisgKiAgICAgMHgwMEZGIEZGRkYgICAgIFtFbmQgb2YgUkFNXSwgQ09ORklHX1NZU19TRFJBTV9TSVpFIC0gMQogICovCiAKIC8qCkBAIC0xNTEsMTAgKzE1MSwxMCBAQAogICogICAgIDB4MDNGNSBGRkIwICAgICBCb2FyZCBJbmZvIERhdGEKICAqICAgICAweDAzRjYgMDAwMCAgICAgTWFsbG9jIEFyZW5hCiAgKgkgICAgIDoJCSAgICBDT05GSUdfRU5WX1NFQ1RfU0laRSwgMjU2awotICoJICAgICA6CQkgICAgQ0ZHX01BTExPQ19MRU4sICAgIDEyOGsKKyAqCSAgICAgOgkJICAgIENPTkZJR19TWVNfTUFMTE9DX0xFTiwgICAgMTI4awogICogICAgIDB4MDNGQyAwMDAwICAgICBSQU0gQ29weSBvZiBNb25pdG9yIENvZGUKLSAqCSAgICAgOgkJICAgIENGR19NT05JVE9SX0xFTiwgICAyNTZrCi0gKiAgICAgMHgwM0ZGIEZGRkYgICAgIFtFbmQgb2YgUkFNXSwgQ0ZHX1NEUkFNX1NJWkUgLSAxCisgKgkgICAgIDoJCSAgICBDT05GSUdfU1lTX01PTklUT1JfTEVOLCAgIDI1NmsKKyAqICAgICAweDAzRkYgRkZGRiAgICAgW0VuZCBvZiBSQU1dLCBDT05GSUdfU1lTX1NEUkFNX1NJWkUgLSAxCiAgKi8KIAogCkBAIC0yMjAsNyArMjIwLDcgQEAKICAqICAtIFJYIGNsayBpcyBDTEsxMQogICogIC0gVFggY2xrIGlzIENMSzEyCiAgKi8KLSMgZGVmaW5lIENGR19DTVhTQ1JfVkFMVUUJKENNWFNDUl9SUzFDU19DTEsxMSAgfCBDTVhTQ1JfVFMxQ1NfQ0xLMTIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWFNDUl9WQUxVRQkoQ01YU0NSX1JTMUNTX0NMSzExICB8IENNWFNDUl9UUzFDU19DTEsxMikKIAogI2VsaWYgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkNDKSAmJiAoQ09ORklHX0VUSEVSX0lOREVYID09IDIpCiAKQEAgLTIzMCwxMCArMjMwLDEwIEBACiAgKiAtIFNlbGVjdCBidXMgZm9yIGJkL2J1ZmZlcnMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzfENNWEZDUl9URjJDU19DTEsxNCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKIAogI2VuZGlmIC8qIENPTkZJR19FVEhFUl9PTl9GQ0MsIENPTkZJR19FVEhFUl9JTkRFWCAqLwogCkBAIC0yNTEsOCArMjUxLDggQEAKICAqLwogI3VuZGVmICBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19TT0ZUX0kyQwkJMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBTb2Z0d2FyZSAoYml0LWJhbmcpIEkyQyBkcml2ZXIgY29uZmlndXJhdGlvbgpAQCAtNDI1LDE0ICs0MjUsMTQgQEAKIAogCiAvKiB1bmRlZiB0aGlzIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAKIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCiAKLSN1bmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAvKiBXaGVuIENPTkZJR19USU1FU1RBTVAgaXMgc2VsZWN0ZWQsIHRoZSB0aW1lc3RhbXAgKGRhdGUgYW5kIHRpbWUpCkBAIC00NjksNyArNDY5LDcgQEAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cJCQkJLyogZGlzYWJsZSB0aGUgd2F0Y2hkb2cgKi8KIAogLyogV2hlcmUgZG8gdGhlIGludGVybmFsIHJlZ2lzdGVycyBsaXZlPyAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgpAQCAtNDg2LDM3ICs0ODYsMzcgQEAKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJICAgICAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSAgICAgKi8KICNlbHNlCi0jICBkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSAgICAgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSAgICAgKi8KICNlbmRpZgogCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCSAgKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCSAgKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKIAotI2RlZmluZSBDRkdfTUFYQVJHUwkJMzIJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkzMgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwogCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJICAgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDQwMDAwMCAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHg0MDAwMDAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCQkJLyogU2VsZWN0IGZ1bGwtZmVhdHVyZWQgbWVtb3J5IHRlc3QgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgyMDAwCS8qIG1lbXRlc3Qgd29ya3MgZnJvbSB0aGUgZW5kIG9mICovCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QJCQkvKiBTZWxlY3QgZnVsbC1mZWF0dXJlZCBtZW1vcnkgdGVzdCAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgyMDAwCS8qIG1lbXRlc3Qgd29ya3MgZnJvbSB0aGUgZW5kIG9mICovCiAJCQkJCS8qIHRoZSBleGNlcHRpb24gdmVjdG9yIHRhYmxlICovCiAJCQkJCS8qIHRvIHRoZSBlbmQgb2YgdGhlIERSQU0gICovCiAJCQkJCS8qIGxlc3MgbW9uaXRvciBhbmQgbWFsbG9jIGFyZWEgKi8KLSNkZWZpbmUgQ0ZHX1NUQUNLX1VTQUdFCQkweDEwMDAwIC8qIFJlc2VydmUgNjRrIGZvciB0aGUgc3RhY2sgdXNhZ2UgKi8KLSNkZWZpbmUgQ0ZHX01FTV9FTkRfVVNBR0UJKCBDRkdfTU9OSVRPUl9MRU4gXAotCQkJCSsgQ0ZHX01BTExPQ19MRU4gXAorI2RlZmluZSBDT05GSUdfU1lTX1NUQUNLX1VTQUdFCQkweDEwMDAwIC8qIFJlc2VydmUgNjRrIGZvciB0aGUgc3RhY2sgdXNhZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1fRU5EX1VTQUdFCSggQ09ORklHX1NZU19NT05JVE9SX0xFTiBcCisJCQkJKyBDT05GSUdfU1lTX01BTExPQ19MRU4gXAogCQkJCSsgQ09ORklHX0VOVl9TRUNUX1NJWkUgXAotCQkJCSsgQ0ZHX1NUQUNLX1VTQUdFICkKKwkJCQkrIENPTkZJR19TWVNfU1RBQ0tfVVNBR0UgKQogCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKCBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0IFwKLQkJCQktIENGR19NRU1fRU5EX1VTQUdFICkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKCBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCBcCisJCQkJLSBDT05GSUdfU1lTX01FTV9FTkRfVVNBR0UgKQogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtNTI0LDEwOSArNTI0LDEwOSBAQAogICogWW91IHNob3VsZCBrbm93IHdoYXQgeW91IGFyZSBkb2luZyBpZiB5b3UgbWFrZSBjaGFuZ2VzIGhlcmUuCiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQlDRkdfRkxBU0gwX0JBU0UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJQ0ZHX0ZMQVNIMF9TSVpFCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCUNGR19TRFJBTTBfQkFTRQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQlDRkdfU0RSQU0wX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCUNPTkZJR19TWVNfRkxBU0gwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCUNPTkZJR19TWVNfRkxBU0gwX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCUNPTkZJR19TWVNfU0RSQU0wX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCUNPTkZJR19TWVNfU0RSQU0wX1NJWkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZCBSZXNldCBDb25maWd1cmF0aW9uIFdvcmRzCiAgKi8KLSNpZiBkZWZpbmVkKENGR19TQkNfQk9PVF9MT1cpCi0jICBkZWZpbmUgIENGR19TQkNfSFJDV19CT09UX0ZMQUdTICAoSFJDV19DSVAgfCBIUkNXX0JNUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfU0JDX0JPT1RfTE9XKQorIyAgZGVmaW5lICBDT05GSUdfU1lTX1NCQ19IUkNXX0JPT1RfRkxBR1MgIChIUkNXX0NJUCB8IEhSQ1dfQk1TKQogI2Vsc2UKLSMgIGRlZmluZSAgQ0ZHX1NCQ19IUkNXX0JPT1RfRkxBR1MgICgwKQotI2VuZGlmIC8qIGRlZmluZWQoQ0ZHX1NCQ19CT09UX0xPVykgKi8KKyMgIGRlZmluZSAgQ09ORklHX1NZU19TQkNfSFJDV19CT09UX0ZMQUdTICAoMCkKKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19TWVNfU0JDX0JPT1RfTE9XKSAqLwogCi0vKiBnZXQgdGhlIEhSQ1cgSVNCIGZpZWxkIGZyb20gQ0ZHX0lNTVIgKi8KLSNkZWZpbmUgQ0ZHX1NCQ19IUkNXX0lNTVIJKCAoKENGR19JTU1SICYgMHgxMDAwMDAwMCkgPj4gMTApIHwgXAotCQkJCSAgKChDRkdfSU1NUiAmIDB4MDEwMDAwMDApID4+ICA3KSB8IFwKLQkJCQkgICgoQ0ZHX0lNTVIgJiAweDAwMTAwMDAwKSA+PiAgNCkgKQorLyogZ2V0IHRoZSBIUkNXIElTQiBmaWVsZCBmcm9tIENPTkZJR19TWVNfSU1NUiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NCQ19IUkNXX0lNTVIJKCAoKENPTkZJR19TWVNfSU1NUiAmIDB4MTAwMDAwMDApID4+IDEwKSB8IFwKKwkJCQkgICgoQ09ORklHX1NZU19JTU1SICYgMHgwMTAwMDAwMCkgPj4gIDcpIHwgXAorCQkJCSAgKChDT05GSUdfU1lTX0lNTVIgJiAweDAwMTAwMDAwKSA+PiAgNCkgKQogCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJKCBIUkNXX0JQUzExCQkJCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCQkoIEhSQ1dfQlBTMTEJCQkJfCBcCiAJCQkJICBIUkNXX0RQUEMxMQkJCQl8IFwKLQkJCQkgIENGR19TQkNfSFJDV19JTU1SCQkJfCBcCisJCQkJICBDT05GSUdfU1lTX1NCQ19IUkNXX0lNTVIJCQl8IFwKIAkJCQkgIEhSQ1dfTU1SMDAJCQkJfCBcCiAJCQkJICBIUkNXX0xCUEMxMQkJCQl8IFwKIAkJCQkgIEhSQ1dfQVBQQzEwCQkJCXwgXAogCQkJCSAgSFJDV19DUzEwUEMwMAkJCQl8IFwKLQkJCQkgIChDRkdfU0JDX01PRENLX0ggJiBIUkNXX01PRENLX0gxMTExKQl8IFwKLQkJCQkgIENGR19TQkNfSFJDV19CT09UX0ZMQUdTICkKKwkJCQkgIChDT05GSUdfU1lTX1NCQ19NT0RDS19IICYgSFJDV19NT0RDS19IMTExMSkJfCBcCisJCQkJICBDT05GSUdfU1lTX1NCQ19IUkNXX0JPT1RfRkxBR1MgKQogCiAvKiBubyBzbGF2ZXMgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCi0gKiBOb3RlIGFsc28gdGhhdCB0aGUgbG9naWMgdGhhdCBzZXRzIENGR19SQU1CT09UIGlzIHBsYXRmb3JtIGRlcGVuZGVudC4KKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBOb3RlIGFsc28gdGhhdCB0aGUgbG9naWMgdGhhdCBzZXRzIENPTkZJR19TWVNfUkFNQk9PVCBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQuCiAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0gwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSDBfQkFTRQogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgIGRlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTE2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTE2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTgwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTgwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjICBkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKICMgIGlmZGVmIENPTkZJR19FTlZfSU5fT1dOX1NFQ1QKLSMgICAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX01PTklUT1JfQkFTRSArIDB4NDAwMDApCisjICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKICMgICAgZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAKICMgIGVsc2UKLSMgICAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4gLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKKyMgICAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTiAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQogIyAgICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCTB4MTAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogIyAgICBkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMCAvKiBzZWUgUkVBRE1FIC0gZW52IHNlY3QgcmVhbCBzaXplCSovCiAjICBlbmRpZiAvKiBDT05GSUdfRU5WX0lOX09XTl9TRUNUICovCiAKICNlbHNlCiAjICBkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTQkxCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFUgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNjM5LDM3ICs2MzksMzcgQEAKICAqCiAgKiBISUQxIGhhcyBvbmx5IHJlYWQtb25seSBpbmZvcm1hdGlvbiAtIG5vdGhpbmcgdG8gc2V0LgogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJKEhJRDBfSUNFICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkoSElEMF9JQ0UgIHxcCiAJCQkgSElEMF9EQ0UgIHxcCiAJCQkgSElEMF9JQ0ZJIHxcCiAJCQkgSElEMF9EQ0kgIHxcCiAJCQkgSElEMF9JRkVNIHxcCiAJCQkgSElEMF9BQkUpCiAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJKEhJRDBfSUNFICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJKEhJRDBfSUNFICB8XAogCQkJIEhJRDBfSUZFTSB8XAogCQkJIEhJRDBfQUJFICB8XAogCQkJIEhJRDBfRU1DUCkKLSNkZWZpbmUgQ0ZHX0hJRDIJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSTVIgLSBSZXNldCBNb2RlIFJlZ2lzdGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JNUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX1JNUgkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQ1IgLSBCdXMgQ29uZmlndXJhdGlvbgkJCQkJIDQtMjUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfQkNSCQkoQkNSX0VUTSkKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IJCShCQ1JfRVRNKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTSVVNQ1IgLSBTSVUgTW9kdWxlIENvbmZpZ3VyYXRpb24JCQkJIDQtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EUFBDMTEJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EUFBDMTEJfFwKIAkJCSBTSVVNQ1JfTDJDUEMwMCB8XAogCQkJIFNJVU1DUl9BUFBDMTAJfFwKIAkJCSBTSVVNQ1JfTU1SMDApCkBAIC02ODIsNyArNjgyLDcgQEAKICAqIFdhdGNoZG9nICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCA2MHggQnVzIE1vbml0b3IgZW5hYmxlCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfFwKIAkJCSBTWVBDUl9CTVQgIHxcCiAJCQkgU1lQQ1JfUEJNRSB8XAogCQkJIFNZUENSX0xCTUUgfFwKQEAgLTY5MCw3ICs2OTAsNyBAQAogCQkJIFNZUENSX1NXUCAgfFwKIAkJCSBTWVBDUl9TV0UpCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8XAogCQkJIFNZUENSX0JNVCAgfFwKIAkJCSBTWVBDUl9QQk1FIHxcCiAJCQkgU1lQQ1JfTEJNRSB8XApAQCAtNzA0LDcgKzcwNCw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDCShUTUNOVFNDX1NFQyB8XAorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MJKFRNQ05UU0NfU0VDIHxcCiAJCQkgVE1DTlRTQ19BTFIgfFwKIAkJCSBUTUNOVFNDX1RDRiB8XAogCQkJIFRNQ05UU0NfVENFKQpAQCAtNzE1LDcgKzcxNSw3IEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTICB8XAogCQkJIFBJU0NSX1BURiB8XAogCQkJIFBJU0NSX1BURSkKIApAQCAtNzIzLDEzICs3MjMsMTMgQEAKICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgQ29udHJvbAkJCQkJIDktOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TQ0NSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uCQkJCTEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUgkwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUgkwCiAKIC8qCiAgKiBJbml0aWFsaXplIE1lbW9yeSBDb250cm9sbGVyOgpAQCAtNzgwLDcgKzc4MCw3IEBACiAgKiAgICAgLSBObyBkYXRhIHBpcGVsaW5pbmcgaXMgZG9uZQogICogICAgIC0gVmFsaWQKICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKENGR19GTEFTSDBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKENPTkZJR19TWVNfRkxBU0gwX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU18zMgkJCXxcCiAJCQkgQlJ4X01TX0dQQ01fUAkJCXxcCiAJCQkgQlJ4X1YpCkBAIC03OTksNyArNzk5LDcgQEAKICAqICAgICAtIE9uZSBpZGxlIGNsb2NrIGlzIGluc2VydGVkIGJldHdlZW4gYSByZWFkIGFjY2VzcyBmcm9tIHRoZQogICoJIGN1cnJlbnQgYmFuayBhbmQgdGhlIG5leHQgYWNjZXNzLgogICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShNRUdfVE9fQU0oQ0ZHX0ZMQVNIMF9TSVpFKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKE1FR19UT19BTShDT05GSUdfU1lTX0ZMQVNIMF9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfNV9DTEsJCQl8XApAQCAtODM0LDEyICs4MzQsMTIgQEAKICAqICAgICAtIE5vIGRhdGEgcGlwZWxpbmluZyBpcyBkb25lCiAgKiAgICAgLSBWYWxpZAogICovCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoQ0ZHX1NEUkFNMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoQ09ORklHX1NZU19TRFJBTTBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfU0RSQU1fUAkJCXxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChDRkdfU0RSQU0wX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChDT05GSUdfU1lTX1NEUkFNMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfNjQJCQl8XAogCQkJIEJSeF9NU19TRFJBTV9QCQkJfFwKIAkJCSBCUnhfVikKQEAgLTg1Myw4ICs4NTMsOCBAQAogICogICAgIC0gQmFjay10by1iYWNrIHBhZ2UgbW9kZQogICogICAgIC0gSW50ZXJuYWwgYmFuayBpbnRlcmxlYXZpbmcgd2l0aGluIHNhdmUgZGV2aWNlIGVuYWJsZWQKICAqLwotI2lmIChDRkdfU0RSQU0wX1NJWkUgPT0gMTYpCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShNRUdfVE9fQU0oQ0ZHX1NEUkFNMF9TSVpFKQl8XAorI2lmIChDT05GSUdfU1lTX1NEUkFNMF9TSVpFID09IDE2KQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKE1FR19UT19BTShDT05GSUdfU1lTX1NEUkFNMF9TSVpFKQl8XAogCQkJIE9SeFNfQlBEXzIJCQl8XAogCQkJIE9SeFNfUk9XU1RfUEJJMF9BOQkJfFwKIAkJCSBPUnhTX05VTVJfMTEpCkBAIC04NjksOCArODY5LDggQEAKICAqICAgICAtIEJhY2stdG8tYmFjayBwYWdlIG1vZGUKICAqICAgICAtIEludGVybmFsIGJhbmsgaW50ZXJsZWF2aW5nIHdpdGhpbiBzYXZlIGRldmljZSBlbmFibGVkCiAgKi8KLSNpZiAoQ0ZHX1NEUkFNMF9TSVpFID09IDY0KQotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoTUVHX1RPX0FNKENGR19TRFJBTTBfU0laRSkJfFwKKyNpZiAoQ09ORklHX1NZU19TRFJBTTBfU0laRSA9PSA2NCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShNRUdfVE9fQU0oQ09ORklHX1NZU19TRFJBTTBfU0laRSkJfFwKIAkJCSBPUnhTX0JQRF80CQkJfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTBfQTgJCXxcCiAJCQkgT1J4U19OVU1SXzEyKQpAQCAtODg2LDcgKzg4Niw3IEBACiAgKi8KICNkZWZpbmUgU0RSQU1fU1BEX0FERFIgMHg1NAogCi0jaWYgKENGR19TRFJBTTBfU0laRSA9PSAxNikKKyNpZiAoQ09ORklHX1NZU19TRFJBTTBfU0laRSA9PSAxNikKIC8qIFdpdGggYSAxNiBNQiBESU1NLCB0aGUgUFNETVIgaXMgY29uZmlndXJlZCBhcyBmb2xsb3dzOgogICoKICAqICAgICAtIEJhbmsgQmFzZWQgSW50ZXJsZWF2aW5nLApAQCAtOTA0LDcgKzkwNCw3IEBACiAgKiAgICAgLSBlYXJsaWVzdCB0aW1pbmcgZm9yIFBSRUNIQVJHRSBhZnRlciBsYXN0IGRhdGEgd2FzIHdyaXR0ZW4gaXMgMSBjbG9jaywKICAqICAgICAtIENBUyBMYXRlbmN5IGlzIDIuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BTRE1SCShQU0RNUl9SRkVOCSAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJKFBTRE1SX1JGRU4JICAgICAgfFwKIAkJCSBQU0RNUl9TREFNX0ExNF9JU19BNSB8XAogCQkJIFBTRE1SX0JTTUFfQTE2X0ExOCAgIHxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMF9BOSAgfFwKQEAgLTkxNiw3ICs5MTYsNyBAQAogCQkJIFBTRE1SX0NMXzIpCiAjZW5kaWYKIAotI2lmIChDRkdfU0RSQU0wX1NJWkUgPT0gNjQpCisjaWYgKENPTkZJR19TWVNfU0RSQU0wX1NJWkUgPT0gNjQpCiAvKiBXaXRoIGEgNjQgTUIgRElNTSwgdGhlIFBTRE1SIGlzIGNvbmZpZ3VyZWQgYXMgZm9sbG93czoKICAqCiAgKiAgICAgLSBCYW5rIEJhc2VkIEludGVybGVhdmluZywKQEAgLTkzNCw3ICs5MzQsNyBAQAogICogICAgIC0gZWFybGllc3QgdGltaW5nIGZvciBQUkVDSEFSR0UgYWZ0ZXIgbGFzdCBkYXRhIHdhcyB3cml0dGVuIGlzIDEgY2xvY2ssCiAgKiAgICAgLSBDQVMgTGF0ZW5jeSBpcyAyLgogICovCi0jZGVmaW5lIENGR19QU0RNUgkoUFNETVJfUkZFTgkgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCShQU0RNUl9SRkVOCSAgICAgIHxcCiAJCQkgUFNETVJfU0RBTV9BMTRfSVNfQTUgfFwKIAkJCSBQU0RNUl9CU01BX0ExNF9BMTYgICB8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTBfQTkgIHxcCkBAIC05NTAsMTQgKzk1MCwxNCBAQAogICogU2hvb3QgZm9yIGFwcHJveGltYXRlbHkgMU1IeiBvbiB0aGUgcHJlc2NhbGVyLgogICovCiAjaWYgKENPTkZJR184MjYwX0NMS0lOID09ICg2NiAqIDEwMDAgKiAxMDAwKSkKLSNkZWZpbmUgQ0ZHX01QVFBSCU1QVFBSX1BUUF9ESVY2NAorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCU1QVFBSX1BUUF9ESVY2NAogI2VsaWYgKENPTkZJR184MjYwX0NMS0lOID09ICgzMyAqIDEwMDAgKiAxMDAwKSkKLSNkZWZpbmUgQ0ZHX01QVFBSCU1QVFBSX1BUUF9ESVYzMgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCU1QVFBSX1BUUF9ESVYzMgogI2Vsc2UKLSN3YXJuaW5nICJVbmNvbmZpZ3VyZWQgYnVzIGNsb2NrIGZyZXE6IGNoZWNrIENGR19NUFRQUiBhbmQgQ0ZHX1BTUlQgYXJlIE9LIgotI2RlZmluZSBDRkdfTVBUUFIJTVBUUFJfUFRQX0RJVjMyCisjd2FybmluZyAiVW5jb25maWd1cmVkIGJ1cyBjbG9jayBmcmVxOiBjaGVjayBDT05GSUdfU1lTX01QVFBSIGFuZCBDT05GSUdfU1lTX1BTUlQgYXJlIE9LIgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCU1QVFBSX1BUUF9ESVYzMgogI2VuZGlmCi0jZGVmaW5lIENGR19QU1JUCTE0CisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkxNAogCiAKIC8qIEJhbmsgNCAtIE9uIGJvYXJkIFNEUkFNCkBAIC05NzgsNyArOTc4LDcgQEAKICAqIFRoaXMgZXhwZWN0cyB0aGUgb24gYm9hcmQgRkxBU0ggU0lNTSB0byBiZSBjb25uZWN0ZWQgdG8gKkNTNgogICogSXQgY29uc2lzdHMgb2YgMSBBTTI5RjAxNkEgcGFydC4KICAqLwotI2lmIChkZWZpbmVkKENGR19GTEFTSDFfQkFTRSkgJiYgZGVmaW5lZChDRkdfRkxBU0gxX1NJWkUpKQorI2lmIChkZWZpbmVkKENPTkZJR19TWVNfRkxBU0gxX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSDFfU0laRSkpCiAKIC8qIEJSNiBpcyBjb25maWd1cmVkIGFzIGZvbGxvd3M6CiAgKgpAQCAtOTkyLDcgKzk5Miw3IEBACiAgKiAgICAgLSBObyBkYXRhIHBpcGVsaW5pbmcgaXMgZG9uZQogICogICAgIC0gVmFsaWQKICAqLwotIyAgZGVmaW5lIENGR19CUjZfUFJFTElNICAoKENGR19GTEFTSDFfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjICBkZWZpbmUgQ09ORklHX1NZU19CUjZfUFJFTElNICAoKENPTkZJR19TWVNfRkxBU0gxX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJICAgQlJ4X1BTXzgJCQkgIHxcCiAJCQkgICBCUnhfTVNfR1BDTV9QCQkgIHxcCiAJCQkgICBCUnhfVikKQEAgLTEwMTEsMTMgKzEwMTEsMTMgQEAKICAqICAgICAtIE9uZSBpZGxlIGNsb2NrIGlzIGluc2VydGVkIGJldHdlZW4gYSByZWFkIGFjY2VzcyBmcm9tIHRoZQogICoJIGN1cnJlbnQgYmFuayBhbmQgdGhlIG5leHQgYWNjZXNzLgogICovCi0jICBkZWZpbmUgQ0ZHX09SNl9QUkVMSU0gIChNRUdfVE9fQU0oQ0ZHX0ZMQVNIMV9TSVpFKSAgfFwKKyMgIGRlZmluZSBDT05GSUdfU1lTX09SNl9QUkVMSU0gIChNRUdfVE9fQU0oQ09ORklHX1NZU19GTEFTSDFfU0laRSkgIHxcCiAJCQkgICBPUnhHX0NTTlQJCSAgICAgICB8XAogCQkJICAgT1J4R19BQ1NfRElWMQkgICAgICAgfFwKIAkJCSAgIE9SeEdfU0NZXzVfQ0xLCSAgICAgICB8XAogCQkJICAgT1J4R19UUkxYCQkgICAgICAgfFwKIAkJCSAgIE9SeEdfRUhUUikKLSNlbmRpZiAvKiAoZGVmaW5lZChDRkdfRkxBU0gxX0JBU0UpICYmIGRlZmluZWQoQ0ZHX0ZMQVNIMV9TSVpFKSkgKi8KKyNlbmRpZiAvKiAoZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIMV9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0gxX1NJWkUpKSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCUjcgLSBCYXNlIFJlZ2lzdGVyCkBAIC0xMDMyLDcgKzEwMzIsNyBAQAogICogIExFRHMgICAgIGFyZSBhdCAweDAwMDAxICh3cml0ZSBvbmx5KQogICogIHN3aXRjaGVzIGFyZSBhdCAweDAwMDAxIChyZWFkIG9ubHkpCiAgKi8KLSNpZmRlZiBDRkdfTEVEX0JBU0UKKyNpZmRlZiBDT05GSUdfU1lTX0xFRF9CQVNFCiAKIC8qIEJSNyBpcyBjb25maWd1cmVkIGFzIGZvbGxvd3M6CiAgKgpAQCAtMTA0Niw3ICsxMDQ2LDcgQEAKICAqICAgICAtIE5vIGRhdGEgcGlwZWxpbmluZyBpcyBkb25lCiAgKiAgICAgLSBWYWxpZAogICovCi0jICBkZWZpbmUgQ0ZHX0JSN19QUkVMSU0gICgoQ0ZHX0xFRF9CQVNFICYgQlJ4X0JBX01TSykJIHxcCisjICBkZWZpbmUgQ09ORklHX1NZU19CUjdfUFJFTElNICAoKENPTkZJR19TWVNfTEVEX0JBU0UgJiBCUnhfQkFfTVNLKQkgfFwKIAkJCSAgIEJSeF9QU184CQkJIHxcCiAJCQkgICBCUnhfTVNfR1BDTV9QCQkgfFwKIAkJCSAgIEJSeF9WKQpAQCAtMTA2NSwxMyArMTA2NSwxMyBAQAogICogICAgIC0gT25lIGlkbGUgY2xvY2sgaXMgaW5zZXJ0ZWQgYmV0d2VlbiBhIHJlYWQgYWNjZXNzIGZyb20gdGhlCiAgKgkgY3VycmVudCBiYW5rIGFuZCB0aGUgbmV4dCBhY2Nlc3MuCiAgKi8KLSMgIGRlZmluZSBDRkdfT1I3X1BSRUxJTSAgKE9SeEdfQU1fTVNLCQkgICAgICAgfFwKKyMgIGRlZmluZSBDT05GSUdfU1lTX09SN19QUkVMSU0gIChPUnhHX0FNX01TSwkJICAgICAgIHxcCiAJCQkgICBPUnhHX0NTTlQJCSAgICAgICB8XAogCQkJICAgT1J4R19BQ1NfRElWMQkgICAgICAgfFwKIAkJCSAgIE9SeEdfU0NZXzE1X0NMSwkgICAgICAgfFwKIAkJCSAgIE9SeEdfVFJMWAkJICAgICAgIHxcCiAJCQkgICBPUnhHX0VIVFIpCi0jZW5kaWYgLyogQ0ZHX0xFRF9CQVNFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19MRURfQkFTRSAqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zYmM4MzQ5LmggYi9pbmNsdWRlL2NvbmZpZ3Mvc2JjODM0OS5oCmluZGV4IGRjNWExMDEuLjE3NDE0OWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zYmM4MzQ5LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NiYzgzNDkuaApAQCAtNjMsMTEgKzYzLDExIEBACiAKICN1bmRlZiBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCQkvKiBjYWxsIGJvYXJkX3ByZV9pbml0ICovCiAKLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEUwMDAwMDAwCiAKLSN1bmRlZiBDRkdfRFJBTV9URVNUCQkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwMTAwMDAwCisjdW5kZWYgQ09ORklHX1NZU19EUkFNX1RFU1QJCQkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCByZWdpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDEwMDAwMAogCiAvKgogICogRERSIFNldHVwCkBAIC03NSw3ICs3NSw3IEBACiAjdW5kZWYgQ09ORklHX0REUl9FQ0MJCQkvKiBvbmx5IGZvciBFQ0MgRERSIG1vZHVsZSAqLwogI3VuZGVmIENPTkZJR19ERFJfRUNDX0NNRAkJLyogdXNlIEREUiBFQ0MgdXNlciBjb21tYW5kcyAqLwogI2RlZmluZSBDT05GSUdfU1BEX0VFUFJPTQkJLyogdXNlIFNQRCBFRVBST00gZm9yIEREUiBzZXR1cCovCi0jZGVmaW5lIENGR184M1hYX0REUl9VU0VTX0NTMAkJLyogV1JTOyBGc2wgYm9hcmQgdXNlcyBDUzIvQ1MzICovCisjZGVmaW5lIENPTkZJR19TWVNfODNYWF9ERFJfVVNFU19DUzAJCS8qIFdSUzsgRnNsIGJvYXJkIHVzZXMgQ1MyL0NTMyAqLwogCiAvKgogICogMzItYml0IGRhdGEgcGF0aCBtb2RlLgpAQCAtODksMTAgKzg5LDEwIEBACiAgKi8KICN1bmRlZiBDT05GSUdfRERSXzMyQklUCiAKLSNkZWZpbmUgQ0ZHX0REUl9CQVNFCQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfQkFTRQotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJQ0ZHX0REUl9CQVNFCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0xLX0NOVEwJKEREUl9TRFJBTV9DTEtfQ05UTF9TU19FTiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQkFTRQkJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCUNPTkZJR19TWVNfRERSX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0xLX0NOVEwJKEREUl9TRFJBTV9DTEtfQ05UTF9TU19FTiB8IFwKIAkJCQlERFJfU0RSQU1fQ0xLX0NOVExfQ0xLX0FESlVTVF8wNzUpCiAjZGVmaW5lIENPTkZJR19ERFJfMlRfVElNSU5HCiAKQEAgLTEwNyw3MiArMTA3LDcyIEBACiAgKiBNYW51YWxseSBzZXQgdXAgRERSIHBhcmFtZXRlcnMKICAqIE5COiBtYW51YWwgRERSIHNldHVwIHVudGVzdGVkIG9uIHNiYzgzNHgKICAqLwotI2RlZmluZSBDRkdfRERSX1NJWkUJCTI1NgkJLyogTUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DT05GSUcJCShDU0NPTkZJR19FTiB8IENTQ09ORklHX1JPV19CSVRfMTMgfCBDU0NPTkZJR19DT0xfQklUXzEwKQotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCTB4MzYzMzIzMjEKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkweDAwMDAwODAwCS8qIFA5LTQ1LG1heSBuZWVkIHR1bmluZyAqLwotI2RlZmluZSBDRkdfRERSX0NPTlRST0wJCTB4YzIwMDAwMDAJLyogdW5idWZmZXJlZCxubyBEWU5fUFdSICovCi0jZGVmaW5lIENGR19ERFJfSU5URVJWQUwJMHgwNDA2MDEwMAkvKiBhdXRvY2hhcmdlLG5vIG9wZW4gcGFnZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9TSVpFCQkyNTYJCS8qIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTkZJRwkJKENTQ09ORklHX0VOIHwgQ1NDT05GSUdfUk9XX0JJVF8xMyB8IENTQ09ORklHX0NPTF9CSVRfMTApCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4MzYzMzIzMjEKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgwMDAwMDgwMAkvKiBQOS00NSxtYXkgbmVlZCB0dW5pbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ09OVFJPTAkJMHhjMjAwMDAwMAkvKiB1bmJ1ZmZlcmVkLG5vIERZTl9QV1IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfSU5URVJWQUwJMHgwNDA2MDEwMAkvKiBhdXRvY2hhcmdlLG5vIG9wZW4gcGFnZSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfRERSXzMyQklUKQogLyogc2V0IGJ1cnN0IGxlbmd0aCB0byA4IGZvciAzMi1iaXQgZGF0YSBwYXRoICovCi0jZGVmaW5lIENGR19ERFJfTU9ERQkJMHgwMDAwMDAyMwkvKiBETEwsbm9ybWFsLHNlcSw0LzIuNSwgOCBidXJzdCBsZW4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJMHgwMDAwMDAyMwkvKiBETEwsbm9ybWFsLHNlcSw0LzIuNSwgOCBidXJzdCBsZW4gKi8KICNlbHNlCiAvKiB0aGUgZGVmYXVsdCBidXJzdCBsZW5ndGggaXMgNCAtIGZvciA2NC1iaXQgZGF0YSBwYXRoICovCi0jZGVmaW5lIENGR19ERFJfTU9ERQkJMHgwMDAwMDAyMgkvKiBETEwsbm9ybWFsLHNlcSw0LzIuNSwgNCBidXJzdCBsZW4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJMHgwMDAwMDAyMgkvKiBETEwsbm9ybWFsLHNlcSw0LzIuNSwgNCBidXJzdCBsZW4gKi8KICNlbmRpZgogI2VuZGlmCiAKIC8qCiAgKiBTRFJBTSBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4MTAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9TSVpFCTEyOAkJLyogTEJDIFNEUkFNIGlzIDEyOE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UJMHgxMDAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFCTEyOAkJLyogTEJDIFNEUkFNIGlzIDEyOE1CICovCiAKIC8qCiAgKiBGTEFTSCBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCQkvKiB1c2UgdGhlIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJLyogdXNlIHRoZSBDRkkgZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGODAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTgJCS8qIGZsYXNoIHNpemUgaW4gTUIgKi8KLS8qICNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGODAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQk4CQkvKiBmbGFzaCBzaXplIGluIE1CICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLwogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoQ0ZHX0ZMQVNIX0JBU0UgfAkvKiBmbGFzaCBCYXNlIGFkZHJlc3MgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfAkvKiBmbGFzaCBCYXNlIGFkZHJlc3MgKi8gXAogCQkJCSgyIDw8IEJSX1BTX1NISUZUKSB8CS8qIDMyIGJpdCBwb3J0IHNpemUgKi8JIFwKIAkJCQlCUl9WKQkJCS8qIHZhbGlkICovCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCTB4RkY4MDZGRjcJLyogOCBNQiBmbGFzaCBzaXplICovCi0jZGVmaW5lIENGR19MQkxBV0JBUjBfUFJFTElNCUNGR19GTEFTSF9CQVNFCS8qIHdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0xCTEFXQVIwX1BSRUxJTQkweDgwMDAwMDE2CS8qIDggTUIgd2luZG93IHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweEZGODA2RkY3CS8qIDggTUIgZmxhc2ggc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIHdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxNgkvKiA4IE1CIHdpbmRvdyBzaXplICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLwogCi0jdW5kZWYgQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCiAKLSNkZWZpbmUgQ0ZHX01JRF9GTEFTSF9KVU1QCTB4N0YwMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01JRF9GTEFTSF9KVU1QCTB4N0YwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jdW5kZWYgIENGR19SQU1CT09UCisjdW5kZWYgIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhGRDAwMDAwMAkJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAkJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RkQwMDAwMDAJCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCQkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0qLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4MTAwCQkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMAkJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyoKICAqIExvY2FsIEJ1cyBMQ1JSIGFuZCBMQkNSIHJlZ3MKQEAgLTE4MCwxNiArMTgwLDE2IEBACiAgKiBFeHRlcm5hbCBMb2NhbCBCdXMgcmF0ZSBpcwogICogICAgQ0xLSU4gKiBIUkNXTF9DU0JfVE9fQ0xLSU4gLyBIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEsgLyBMQ1JSX0NMS0RJVgogICovCi0jZGVmaW5lIENGR19MQ1JSCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl80KQotI2RlZmluZSBDRkdfTEJDX0xCQ1IJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xDUlIJKExDUlJfREJZUCB8IExDUlJfQ0xLRElWXzQpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJMHgwMDAwMDAwMAogCi0jdW5kZWYgQ0ZHX0xCX1NEUkFNCS8qIGlmIGJvYXJkIGhhcyBTRFJBTSBvbiBsb2NhbCBidXMgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0xCX1NEUkFNCS8qIGlmIGJvYXJkIGhhcyBTRFJBTSBvbiBsb2NhbCBidXMgKi8KIAotI2lmZGVmIENGR19MQl9TRFJBTQorI2lmZGVmIENPTkZJR19TWVNfTEJfU0RSQU0KIC8qIExvY2FsIGJ1cyBCUjIsIE9SMiBkZWZpbml0aW9uIGZvciBTRFJBTSBpZiBzb2xkZXJlZCBvbiB0aGUgYm9hcmQqLwogLyoKICAqIEJhc2UgUmVnaXN0ZXIgMiBhbmQgT3B0aW9uIFJlZ2lzdGVyIDIgY29uZmlndXJlIFNEUkFNLgotICogVGhlIFNEUkFNIGJhc2UgYWRkcmVzcywgQ0ZHX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgorICogVGhlIFNEUkFNIGJhc2UgYWRkcmVzcywgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgaXMgMHhmMDAwMDAwMC4KICAqCiAgKiBGb3IgQlIyLCBuZWVkOgogICogICAgQmFzZSBhZGRyZXNzIG9mIDB4ZjAwMDAwMDAgPSBCUlswOjE2XSA9IDExMTEgMDAwMCAwMDAwIDAwMDAgMApAQCAtMjAxLDE2ICsyMDEsMTYgQEAKICAqIDAgICAgNCAgICA4ICAgIDEyICAgMTYgICAyMCAgIDI0ICAgMjgKICAqIDExMTEgMDAwMCAwMDAwIDAwMDAgMDAwMSAxMDAwIDAxMTAgMDAwMSA9IEYwMDAxODYxCiAgKgotICogRklYTUU6IENGR19MQkNfU0RSQU1fQkFTRSBzaG91bGQgYmUgbWFza2VkIGFuZCBPUidlZCBpbnRvCisgKiBGSVhNRTogQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSBzaG91bGQgYmUgbWFza2VkIGFuZCBPUidlZCBpbnRvCiAgKiBGSVhNRTogdGhlIHRvcCAxNyBiaXRzIG9mIEJSMi4KICAqLwogCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkweEYwMDAxODYxIC8qIFBvcnQtc2l6ZT0zMmJpdCwgTVNFTD1TRFJBTSAqLwotI2RlZmluZSBDRkdfTEJMQVdCQVIyX1BSRUxJTQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19MQkxBV0FSMl9QUkVMSU0JMHg4MDAwMDAxOSAvKiA2NE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkweEYwMDAxODYxIC8qIFBvcnQtc2l6ZT0zMmJpdCwgTVNFTD1TRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMl9QUkVMSU0JMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIyX1BSRUxJTQkweDgwMDAwMDE5IC8qIDY0TSAqLwogCiAvKgotICogVGhlIFNEUkFNIHNpemUgaW4gTUIsIENGR19MQkNfU0RSQU1fU0laRSwgaXMgNjQuCisgKiBUaGUgU0RSQU0gc2l6ZSBpbiBNQiwgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRSwgaXMgNjQuCiAgKgogICogRm9yIE9SMiwgbmVlZDoKICAqICAgIDY0TUIgbWFzayBmb3IgQU0sIE9SMlswOjddID0gMTExMSAxMTAwCkBAIC0yMjMsNjUgKzIyMyw2NSBAQAogICogMTExMSAxMTAwIDAwMDAgMDAwMCAwMTEwIDEwMDEgMDAwMCAwMDAxID0gRkMwMDY5MDEKICAqLwogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCTB4RkMwMDY5MDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCTB4RkMwMDY5MDEKIAotI2RlZmluZSBDRkdfTEJDX0xTUlQJMHgzMjAwMDAwMCAgICAvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyLCBhYm91dCA2dXMgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19NUlRQUgkweDIwMDAwMDAwICAgIC8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCwgMjY2TUh6LzMyICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJMHgzMjAwMDAwMCAgICAvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyLCBhYm91dCA2dXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJMHgyMDAwMDAwMCAgICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwsIDI2Nk1Iei8zMiAqLwogCiAvKgogICogTFNETVIgbWFza3MKICAqLwotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGRU4JKDEgPDwgKDMxIC0gIDEpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JTTUExNTE2CSgzIDw8ICgzMSAtIDEwKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CU01BMTYxNwkoNCA8PCAoMzEgLSAxMCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUkZDUjUJKDMgPDwgKDMxIC0gMTYpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGQ1I4CSg1IDw8ICgzMSAtIDE2KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkNSMTYJKDcgPDwgKDMxIC0gMTYpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1BSRVRPQUNUMwkoMyA8PCAoMzEgLSAxOSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUFJFVE9BQ1Q2CSg1IDw8ICgzMSAtIDE5KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDcJKDcgPDwgKDMxIC0gMTkpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlczCSgzIDw8ICgzMSAtIDIyKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNwkoNyA8PCAoMzEgLSAyMikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQUNUVE9SVzYJKDYgPDwgKDMxIC0gMjIpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JMOAkoMSA8PCAoMzEgLSAyMykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfV1JDMgkoMiA8PCAoMzEgLSAyNykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfV1JDMwkoMyA8PCAoMzEgLSAyNykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfV1JDNAkoMCA8PCAoMzEgLSAyNykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQlVGQ01ECSgxIDw8ICgzMSAtIDI5KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DTDMJKDMgPDwgKDMxIC0gMzEpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkVOCSgxIDw8ICgzMSAtICAxKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE1MTYJKDMgPDwgKDMxIC0gMTApKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTYxNwkoNCA8PCAoMzEgLSAxMCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1I1CSgzIDw8ICgzMSAtIDE2KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUkZDUjgJKDUgPDwgKDMxIC0gMTYpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSMTYJKDcgPDwgKDMxIC0gMTYpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9QUkVUT0FDVDMJKDMgPDwgKDMxIC0gMTkpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9QUkVUT0FDVDYJKDUgPDwgKDMxIC0gMTkpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9QUkVUT0FDVDcJKDcgPDwgKDMxIC0gMTkpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXMwkoMyA8PCAoMzEgLSAyMikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlc3CSg3IDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzYJKDYgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CTDgJKDEgPDwgKDMxIC0gMjMpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkMyCSgyIDw8ICgzMSAtIDI3KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDMwkoMyA8PCAoMzEgLSAyNykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1dSQzQJKDAgPDwgKDMxIC0gMjcpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CVUZDTUQJKDEgPDwgKDMxIC0gMjkpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DTDMJKDMgPDwgKDMxIC0gMzEpKQogCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTk9STUFMCSgwIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTVJXCSgzIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BQ1RCTksJKDYgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNICSgxIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKIAotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0NPTU1PTiAgICAoIENGR19MQkNfTFNETVJfUkZFTiAgICAgICAgICAgIFwKLQkJCQl8IENGR19MQkNfTFNETVJfQlNNQTE1MTYJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9SRkNSOAkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDYJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXMwlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0JMOAkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9XUkMzCQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0NMMwkJXAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gICAgKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkVOICAgICAgICAgICAgXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE1MTYJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfUkZDUjgJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUNglcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXMwlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9CTDgJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1dSQzMJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0NMMwkJXAogCQkJCSkKIAogLyoKICAqIFNEUkFNIENvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBzZXF1ZW5jZS4KICAqLwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzEJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEwpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMgkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSCkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8zCQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfQVJGUlNIKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzQJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9NUlcpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNQkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX05PUk1BTCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMQkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUENIQUxMKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8yCQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0gpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzMJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfNAkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTVJXKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl81CQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9OT1JNQUwpCiAjZW5kaWYKIAogLyoKQEAgLTI4OSwyMiArMjg5LDIyIEBACiAgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVggICAgIDEKICN1bmRlZiBDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFICAgIDEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwxMTUyMDB9CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMSAgICAgICAgKENGR19JTU1SKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMiAgICAgICAgKENGR19JTU1SKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEgICAgICAgIChDT05GSUdfU1lTX0lNTVIrMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMiAgICAgICAgKENPTkZJR19TWVNfSU1NUisweDQ2MDApCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYgIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qIHBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KQEAgLTMxNyw0MyArMzE3LDQzIEBACiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMKICNkZWZpbmUgQ09ORklHX0kyQ19DTURfVFJFRQotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQzFfT0ZGU0VUCQkweDMwMDAKLSNkZWZpbmUgQ0ZHX0kyQzJfT0ZGU0VUCQkweDMxMDAKLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCUNGR19JMkMyX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkMxX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDMl9PRkZTRVQJCTB4MzEwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCUNPTkZJR19TWVNfSTJDMl9PRkZTRVQKIC8qIGNvdWxkIGFsc28gdXNlIENPTkZJR19JMkNfTVVMVElfQlVTIGFuZCBDT05GSUdfU1BEX0JVU19OVU0uLi4gKi8KIAogLyogVFNFQyAqLwotI2RlZmluZSBDRkdfVFNFQzFfT0ZGU0VUIDB4MjQwMDAKLSNkZWZpbmUgQ0ZHX1RTRUMxIChDRkdfSU1NUitDRkdfVFNFQzFfT0ZGU0VUKQotI2RlZmluZSBDRkdfVFNFQzJfT0ZGU0VUIDB4MjUwMDAKLSNkZWZpbmUgQ0ZHX1RTRUMyIChDRkdfSU1NUitDRkdfVFNFQzJfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMxX09GRlNFVCAweDI0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzEgKENPTkZJR19TWVNfSU1NUitDT05GSUdfU1lTX1RTRUMxX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMl9PRkZTRVQgMHgyNTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMyIChDT05GSUdfU1lTX0lNTVIrQ09ORklHX1NZU19UU0VDMl9PRkZTRVQpCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kxX01NSU9fQkFTRQkweDkwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01NSU9fUEhZUwlDRkdfUENJMV9NTUlPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTU1JT19TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwkweEUyMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRQkweDkwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NTUlPX1BIWVMJQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTU1JT19TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCTB4RTIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLwogCi0jZGVmaW5lIENGR19QQ0kyX01FTV9CQVNFCTB4QTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1BIWVMJQ0ZHX1BDSTJfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kyX01NSU9fQkFTRQkweEIwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kyX01NSU9fUEhZUwlDRkdfUENJMl9NTUlPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTJfTU1JT19TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJMl9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fUEhZUwkweEUyMTAwMDAwCi0jZGVmaW5lIENGR19QQ0kyX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UJMHhBMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01NSU9fQkFTRQkweEIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NTUlPX1BIWVMJQ09ORklHX1NZU19QQ0kyX01NSU9fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTU1JT19TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19QSFlTCTB4RTIxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQogCkBAIC0zNzgsNyArMzc4LDcgQEAKICNlbmRpZgogCiAjdW5kZWYgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcgIC8qIE1vdG9yb2xhICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcgIC8qIE1vdG9yb2xhICovCiAKICNlbmRpZgkvKiBDT05GSUdfUENJICovCiAKQEAgLTQxMiw5ICs0MTIsOSBAQAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLQkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQogCSNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAkvKiAxMjhLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KIAkjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAKQEAgLTQyMywxNCArNDIzLDE0IEBACiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKIAogI2Vsc2UKLQkjZGVmaW5lIENGR19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLworCSNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLwogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogCiAvKgpAQCAtNDU1LDcgKzQ1NSw3IEBACiAgICAgI2RlZmluZSBDT05GSUdfQ01EX1BDSQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogICAgICN1bmRlZiBDT05GSUdfQ01EX0VOVgogICAgICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTQ2Niw2MCArNDY2LDYwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisJI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLQkjZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KIAotI2RlZmluZSBDRkdfUkNXSF9QQ0lIT1NUIDB4ODAwMDAwMDAgLyogUENJSE9TVCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SQ1dIX1BDSUhPU1QgMHg4MDAwMDAwMCAvKiBQQ0lIT1NUICAqLwogCiAjaWYgMSAvKjUyOC8yNjQqLwotI2RlZmluZSBDRkdfSFJDV19MT1cgKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0xPVyAoXAogCUhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9ERFJfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9DU0JfVE9fQ0xLSU4gfFwKIAlIUkNXTF9WQ09fMVgyIHxcCiAJSFJDV0xfQ09SRV9UT19DU0JfMlgxKQogI2VsaWYgMCAvKjM5Ni8xMzIqLwotI2RlZmluZSBDRkdfSFJDV19MT1cgKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0xPVyAoXAogCUhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9ERFJfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9DU0JfVE9fQ0xLSU4gfFwKIAlIUkNXTF9WQ09fMVg0IHxcCiAJSFJDV0xfQ09SRV9UT19DU0JfM1gxKQogI2VsaWYgMCAvKjI2NC8xMzIqLwotI2RlZmluZSBDRkdfSFJDV19MT1cgKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0xPVyAoXAogCUhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9ERFJfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9DU0JfVE9fQ0xLSU4gfFwKIAlIUkNXTF9WQ09fMVg0IHxcCiAJSFJDV0xfQ09SRV9UT19DU0JfMlgxKQogI2VsaWYgMCAvKjEzMi8xMzIqLwotI2RlZmluZSBDRkdfSFJDV19MT1cgKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0xPVyAoXAogCUhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9ERFJfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9DU0JfVE9fQ0xLSU4gfFwKIAlIUkNXTF9WQ09fMVg0IHxcCiAJSFJDV0xfQ09SRV9UT19DU0JfMVgxKQogI2VsaWYgMCAvKjI2NC8yNjQgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOIHxcCkBAIC01MjgsNyArNTI4LDcgQEAKICNlbmRpZgogCiAjaWYgZGVmaW5lZChQQ0lfNjRCSVQpCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfSE9TVCB8XAogCUhSQ1dIXzY0X0JJVF9QQ0kgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRU5BQkxFIHxcCkBAIC01NDEsNyArNTQxLDcgQEAKIAlIUkNXSF9UU0VDMU1fSU5fR01JSSB8XAogCUhSQ1dIX1RTRUMyTV9JTl9HTUlJICkKICNlbHNlCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfSE9TVCB8XAogCUhSQ1dIXzMyX0JJVF9QQ0kgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRU5BQkxFIHxcCkBAIC01NTYsNzggKzU1Niw3OCBAQAogI2VuZGlmCiAKIC8qIFN5c3RlbSBJTyBDb25maWcgKi8KLSNkZWZpbmUgQ0ZHX1NJQ1JIIFNJQ1JIX1RTT0JJMQotI2RlZmluZSBDRkdfU0lDUkwgU0lDUkxfTERQX0EKKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSSCBTSUNSSF9UU09CSTEKKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSTCBTSUNSTF9MRFBfQQogCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJMHgwMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJSElEMF9FTkFCTEVfTUFDSElORV9DSEVDSworI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkweDAwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJSElEMF9FTkFCTEVfTUFDSElORV9DSEVDSwogCi0vKiAjZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkoXAorLyogI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCShcCiAJSElEMF9FTkFCTEVfSU5TVFJVQ1RJT05fQ0FDSEUgfFwKIAlISUQwX0VOQUJMRV9NX0JJVCB8XAogCUhJRDBfRU5BQkxFX0FERFJFU1NfQlJPQURDQVNUICkgKi8KIAogCi0jZGVmaW5lIENGR19ISUQyIEhJRDJfSEJFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMiBISUQyX0hCRQogCiAjZGVmaW5lIENPTkZJR19ISUdIX0JBVFMJMQkvKiBIaWdoIEJBVHMgc3VwcG9ydGVkICovCiAKIC8qIEREUiBAIDB4MDAwMDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTAkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUJKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogUENJIEAgMHg4MDAwMDAwMCAqLwogI2lmZGVmIENPTkZJR19QQ0kKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX1BDSTFfTUVNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMkwJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUMlUJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKICNlbHNlCi0jZGVmaW5lIENGR19JQkFUMUwJKDApCi0jZGVmaW5lIENGR19JQkFUMVUJKDApCi0jZGVmaW5lIENGR19JQkFUMkwJKDApCi0jZGVmaW5lIENGR19JQkFUMlUJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCSgwKQogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTVBDODNYWF9QQ0kyCi0jZGVmaW5lIENGR19JQkFUM0wJKENGR19QQ0kyX01FTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDNVCShDRkdfUENJMl9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDRMCShDRkdfUENJMl9NTUlPX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDRVCShDRkdfUENJMl9NTUlPX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJKENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkoQ09ORklHX1NZU19QQ0kyX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRVCShDT05GSUdfU1lTX1BDSTJfTU1JT19CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAjZWxzZQotI2RlZmluZSBDRkdfSUJBVDNMCSgwKQotI2RlZmluZSBDRkdfSUJBVDNVCSgwKQotI2RlZmluZSBDRkdfSUJBVDRMCSgwKQotI2RlZmluZSBDRkdfSUJBVDRVCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0VQkoMCkKICNlbmRpZgogCiAvKiBJTU1SQkFSIEAgMHhFMDAwMDAwMCwgUENJIElPIEAgMHhFMjAwMDAwMCAqLwotI2RlZmluZSBDRkdfSUJBVDVMCShDRkdfSU1NUiB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUNVUJKENGR19JTU1SIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCShDT05GSUdfU1lTX0lNTVIgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VQkoQ09ORklHX1NZU19JTU1SIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIFNEUkFNIEAgMHhGMDAwMDAwMCwgc3RhY2sgaW4gRENBQ0hFIDB4RkRGMDAwMDAgJiBGTEFTSCBAIDB4RkUwMDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNlUJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDdMCSgwKQotI2RlZmluZSBDRkdfSUJBVDdVCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3TAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UJKDApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDFMCUNGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVQlDRkdfSUJBVDFVCi0jZGVmaW5lIENGR19EQkFUMkwJQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVCUNGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTAlDRkdfSUJBVDNMCi0jZGVmaW5lIENGR19EQkFUM1UJQ0ZHX0lCQVQzVQotI2RlZmluZSBDRkdfREJBVDRMCUNGR19JQkFUNEwKLSNkZWZpbmUgQ0ZHX0RCQVQ0VQlDRkdfSUJBVDRVCi0jZGVmaW5lIENGR19EQkFUNUwJQ0ZHX0lCQVQ1TAotI2RlZmluZSBDRkdfREJBVDVVCUNGR19JQkFUNVUKLSNkZWZpbmUgQ0ZHX0RCQVQ2TAlDRkdfSUJBVDZMCi0jZGVmaW5lIENGR19EQkFUNlUJQ0ZHX0lCQVQ2VQotI2RlZmluZSBDRkdfREJBVDdMCUNGR19JQkFUN0wKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQlDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCUNPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCUNPTkZJR19TWVNfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMCUNPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVCUNPTkZJR19TWVNfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCUNPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCUNPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMCUNPTkZJR19TWVNfSUJBVDNMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVCUNPTkZJR19TWVNfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMCUNPTkZJR19TWVNfSUJBVDRMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRVCUNPTkZJR19TWVNfSUJBVDRVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVMCUNPTkZJR19TWVNfSUJBVDVMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVVCUNPTkZJR19TWVNfSUJBVDVVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMCUNPTkZJR19TWVNfSUJBVDZMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVCUNPTkZJR19TWVNfSUJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdMCUNPTkZJR19TWVNfSUJBVDdMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdVCUNPTkZJR19TWVNfSUJBVDdVCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NiYzg1NDguaCBiL2luY2x1ZGUvY29uZmlncy9zYmM4NTQ4LmgKaW5kZXggOWQ0MzZjNi4uNTRmM2U2NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3NiYzg1NDguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc2JjODU0OC5oCkBAIC02OSwyMiArNjksMjIgQEAKIAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCTEJLyogQ2FsbCBib2FyZF9wcmVfaW5pdCAqLwogCi0jdW5kZWYJQ0ZHX0RSQU1fVEVTVAkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKKyN1bmRlZglDT05GSUdfU1lTX0RSQU1fVEVTVAkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAogCiAvKgogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCi0jZGVmaW5lIENGR19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUiAqLwogCi0jZGVmaW5lIENGR19QQ0kxX0FERFIJKENGR19DQ1NSQkFSKzB4ODAwMCkKLSNkZWZpbmUgQ0ZHX1BDSTJfQUREUgkoQ0ZHX0NDU1JCQVIrMHg5MDAwKQotI2RlZmluZSBDRkdfUENJRTFfQUREUgkoQ0ZHX0NDU1JCQVIrMHhhMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfQUREUgkoQ09ORklHX1NZU19DQ1NSQkFSKzB4ODAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0FERFIJKENPTkZJR19TWVNfQ0NTUkJBUisweDkwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfQUREUgkoQ09ORklHX1NZU19DQ1NSQkFSKzB4YTAwMCkKIAogLyogRERSIFNldHVwICovCiAjZGVmaW5lIENPTkZJR19GU0xfRERSMgpAQCAtOTYsOCArOTYsOCBAQAogI2RlZmluZSBDT05GSUdfRUNDX0lOSVRfVklBX0REUkNPTlRST0xMRVIJLyogRERSIGNvbnRyb2xsZXIgb3IgRE1BPyAqLwogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNCiAKICNkZWZpbmUgQ09ORklHX05VTV9ERFJfQ09OVFJPTExFUlMJMQpAQCAtMTExLDcgKzExMSw3IEBACiAgKiBNYWtlIHN1cmUgcmVxdWlyZWQgb3B0aW9ucyBhcmUgc2V0CiAgKi8KICNpZm5kZWYgQ09ORklHX1NQRF9FRVBST00KLQkjZGVmaW5lIENGR19TRFJBTV9TSVpFCTI1NgkJLyogRERSIGlzIDI1Nk1CICovCisJI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJMjU2CQkvKiBERFIgaXMgMjU2TUIgKi8KICNlbmRpZgogCiAjdW5kZWYgQ09ORklHX0NMT0NLU19JTl9NSFoKQEAgLTE2NSw0NyArMTY1LDQ3IEBACiAgKiAxMTExIDEwMDAgMDAwMCAwMDAwIDAxMTAgMTExMCAwMTEwIDAxMDEgPSBmODAwNmU2NSAgICBPUjYKICAqLwogCi0jZGVmaW5lIENGR19CT09UX0JMT0NLCQkweGZmODAwMDAwCS8qIHN0YXJ0IG9mIDhNQiBGbGFzaCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0JPT1RfQkxPQ0sJLyogc3RhcnQgb2YgRkxBU0ggMTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9CTE9DSwkJMHhmZjgwMDAwMAkvKiBzdGFydCBvZiA4TUIgRmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0JPT1RfQkxPQ0sJLyogc3RhcnQgb2YgRkxBU0ggMTZNICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCTB4ZmY4MDA4MDEKLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JCTB4ZmI4MDE4MDEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweGZmODAwODAxCisjZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTQkJMHhmYjgwMTgwMQogCi0jZGVmaW5lCUNGR19PUjBfUFJFTElNCQkweGZmODA2ZTY1Ci0jZGVmaW5lCUNGR19PUjZfUFJFTElNCQkweGY4MDA2ZTY1CisjZGVmaW5lCUNPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhmZjgwNmU2NQorI2RlZmluZQlDT05GSUdfU1lTX09SNl9QUkVMSU0JCTB4ZjgwMDZlNjUKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7Q0ZHX0ZMQVNIX0JBU0V9Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLwotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJe0NPTkZJR19TWVNfRkxBU0hfQkFTRX0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAogLyogQ1M1ID0gTG9jYWwgYnVzIHBlcmlwaGVyYWxzIGNvbnRyb2xsZWQgYnkgdGhlIEVQTEQgKi8KIAotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJMHhmODAwMDgwMQotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkJMHhmZjAwNmU2NQotI2RlZmluZSBDRkdfRVBMRF9CQVNFCQkweGY4MDAwMDAwCi0jZGVmaW5lIENGR19MRURfRElTUF9CQVNFCTB4ZjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX1VTRVJfU1dJVENIRVNfQkFTRQkweGY4MTAwMDAwCi0jZGVmaW5lIENGR19CRF9SRVYJCTB4ZjgzMDAwMDAKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9CQVNFCQkweGY4YjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkJMHhmODAwMDgwMQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JCTB4ZmYwMDZlNjUKKyNkZWZpbmUgQ09ORklHX1NZU19FUExEX0JBU0UJCTB4ZjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MRURfRElTUF9CQVNFCTB4ZjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VSX1NXSVRDSEVTX0JBU0UJMHhmODEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JEX1JFVgkJMHhmODMwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9CQVNFCQkweGY4YjAwMDAwCiAKIC8qCiAgKiBTRFJBTSBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KIAogLyoKICAqIEJhc2UgUmVnaXN0ZXIgMyBhbmQgT3B0aW9uIFJlZ2lzdGVyIDMgY29uZmlndXJlIFNEUkFNLgotICogVGhlIFNEUkFNIGJhc2UgYWRkcmVzcywgQ0ZHX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgorICogVGhlIFNEUkFNIGJhc2UgYWRkcmVzcywgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgaXMgMHhmMDAwMDAwMC4KICAqCiAgKiBGb3IgQlIzLCBuZWVkOgogICogICAgQmFzZSBhZGRyZXNzIG9mIDB4ZjAwMDAwMDAgPSBCUlswOjE2XSA9IDExMTEgMDAwMCAwMDAwIDAwMDAgMApAQCAtMjE5LDEwICsyMTksMTAgQEAKICAqCiAgKi8KIAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkJMHhmMDAwMTg2MQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCTB4ZjAwMDE4NjEKIAogLyoKLSAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDRkdfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgorICogVGhlIFNEUkFNIHNpemUgaW4gTUIsIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgogICoKICAqIEZvciBPUjMsIG5lZWQ6CiAgKiAgICA2NE1CIG1hc2sgZm9yIEFNLCBPUjNbMDo3XSA9IDExMTEgMTEwMApAQCAtMjM1LDM1ICsyMzUsMzUgQEAKICAqIDExMTEgMTEwMCAwMDAwIDAwMDAgMDExMCAxMTAwIDExMDAgMDAwMCA9IGZjMDA2Y2MwCiAgKi8KIAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJMHhmYzAwNmNjMAorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCTB4ZmMwMDZjYzAKIAotI2RlZmluZSBDRkdfTEJDX0xDUlIJCTB4MDAwMDAwMDIgICAgLyogTEIgY2xvY2sgcmF0aW8gcmVnICovCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMCAgICAvKiBMQiBjb25maWcgcmVnICovCi0jZGVmaW5lIENGR19MQkNfTFNSVAkJMHgyMDAwMDAwMCAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLwotI2RlZmluZSBDRkdfTEJDX01SVFBSCQkweDAwMDAwMDAwICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQ1JSCQkweDAwMDAwMDAyICAgIC8qIExCIGNsb2NrIHJhdGlvIHJlZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQkNSCQkweDAwMDAwMDAwICAgIC8qIExCIGNvbmZpZyByZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkJMHgyMDAwMDAwMCAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkJMHgwMDAwMDAwMCAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsKi8KIAogLyoKICAqIExTRE1SIG1hc2tzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkVOCSgxIDw8ICgzMSAtICAxKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CU01BMTUxNgkoMyA8PCAoMzEgLSAxMCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQlNNQTE2MTcJKDQgPDwgKDMxIC0gMTApKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUFJFVE9BQ1Q3CSg3IDw8ICgzMSAtIDE5KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNwkoNyA8PCAoMzEgLSAyMikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQUNUVE9SVzYJKDYgPDwgKDMxIC0gMjIpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JMOAkoMSA8PCAoMzEgLSAyMykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfV1JDNAkoMCA8PCAoMzEgLSAyNykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQ0wzCSgzIDw8ICgzMSAtIDMxKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUkZFTgkoMSA8PCAoMzEgLSAgMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNTE2CSgzIDw8ICgzMSAtIDEwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE2MTcJKDQgPDwgKDMxIC0gMTApKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSMTYJKDcgPDwgKDMxIC0gMTYpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9QUkVUT0FDVDcJKDcgPDwgKDMxIC0gMTkpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNwkoNyA8PCAoMzEgLSAyMikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlc2CSg2IDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQkw4CSgxIDw8ICgzMSAtIDIzKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDNAkoMCA8PCAoMzEgLSAyNykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0NMMwkoMyA8PCAoMzEgLSAzMSkpCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUwJKDAgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQVJGUlNICSgxIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1NSRlJTSAkoMiA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUENIQUxMCSg1IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FDVEJOSwkoNiA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMCSgwIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0gJKDEgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1NSRlJTSAkoMiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTVJXCSgzIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUENIQUxMCSg1IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BQ1RCTksJKDYgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQogCiAvKgogICogQ29tbW9uIHNldHRpbmdzIGZvciBhbGwgTG9jYWwgQnVzIFNEUkFNIGNvbW1hbmRzLgpAQCAtMjcxLDQ3ICsyNzEsNDcgQEAKICAqICAgICAgICAgICAgICAgICAgb3IgQlNNQTE2MTcgKGZvciBDUFUgMS4wKSAob2xkKQogICogaXMgT1InZWQgaW4gdG9vLgogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQ09NTU9OCSggQ0ZHX0xCQ19MU0RNUl9SRkNSMTYJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfUFJFVE9BQ1Q3CVwKLQkJCQl8IENGR19MQkNfTFNETVJfQUNUVE9SVzcJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9CTDgJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfV1JDNAkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9DTDMJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfUkZFTgkJXAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04JKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSMTYJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUNwlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNwlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9CTDgJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1dSQzQJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0NMMwkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfUkZFTgkJXAogCQkJCSkKIAogI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19JTklUX0wyX0FERFIJMHhmOGY4MDAwMAkvKiByZWxvY2F0ZSBib290IEwyU1JBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfTDJfQUREUgkweGY4ZjgwMDAwCS8qIHJlbG9jYXRlIGJvb3QgTDJTUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQk0MDAwMDAwMDAgLyogZ2V0X2J1c19mcmVxKDApICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCTQwMDAwMDAwMCAvKiBnZXRfYnVzX2ZyZXEoMCkgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwxMTUyMDB9CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0NDU1JCQVIrMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfQ0NTUkJBUisweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0NDU1JCQVIrMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDYwMCkKIAogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCkBAIC0zMjUsNDggKzMyNSw0OCBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJLyogSTJDIGJpdC1iYW5nZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMwMDAKIAogLyoKICAqIEdlbmVyYWwgUENJCiAgKiBNZW1vcnkgc3BhY2UgaXMgbWFwcGVkIDEtMSwgYnV0IEkvTyBzcGFjZSBtdXN0IHN0YXJ0IGZyb20gMC4KICAqLwotI2RlZmluZSBDRkdfUENJX1BIWVMJCTB4ODAwMDAwMDAJLyogMUcgUENJIFRMQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QSFlTCQkweDgwMDAwMDAwCS8qIDFHIFBDSSBUTEIgKi8KIAotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KIAogI2lmZGVmIENPTkZJR19QQ0kyCi0jZGVmaW5lIENGR19QQ0kyX01FTV9CQVNFCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1BIWVMJQ0ZHX1BDSTJfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kyX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9JT19QSFlTCTB4ZTI4MDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fQkFTRQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19QSFlTCTB4ZTI4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfUENJRTEKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9CQVNFCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9QSFlTCUNGR19QQ0lFMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJRTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0lFMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX1BIWVMJMHhlMzAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfSU9fU0laRQkweDAwMTAwMDAwCS8qICAgMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMJMHhlMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAgIDFNICovCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19SSU8KIC8qCiAgKiBSYXBpZElPIE1NVQogICovCi0jZGVmaW5lIENGR19SSU9fTUVNX0JBU0UJMHhDMDAwMDAwMAotI2RlZmluZSBDRkdfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fQkFTRQkweEMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTEVHQUNZCkBAIC0zODgsOSArMzg4LDkgQEAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCiAKIC8qIFBDSSB2aWV3IG9mIFN5c3RlbSBNZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1NJWkUJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRQkweDgwMDAwMDAwCiAKICNlbmRpZgkvKiBDT05GSUdfUENJICovCiAKQEAgLTQzNSwxMiArNDM1LDEyIEBACiAgKiBFbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCS8qIDI1Nksob25lIHNlY3RvcikgZm9yIGVudiAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC00NzEsMjUgKzQ3MSwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zYmM4NTYwLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc2JjODU2MC5oCmluZGV4IDM4YWUxYjEuLjQzMDEyNzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zYmM4NTYwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NiYzg1NjAuaApAQCAtNzMsOSArNzMsOSBAQAogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgMQkgICAgLyogQ2FsbCBib2FyZF9lYXJseV9pbml0X2YJKi8KIAotI3VuZGVmCUNGR19EUkFNX1RFU1QJCQkgICAgLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMCAgLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCisjdW5kZWYJQ09ORklHX1NZU19EUkFNX1RFU1QJCQkgICAgLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAgIC8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKIAogI2lmIChkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1RTRUNfRU5FVCkgfHwgXAogICAgICBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX0VUSEVSX09OX0ZDQykgfHwgXApAQCAtODcsMTcgKzg3LDE3IEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQJKi8KIAogI2lmIFhYWAotICAjZGVmaW5lIENGR19DQ1NSQkFSCQkweGZkZjAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSCSovCisgICNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGZkZjAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSCSovCiAjZWxzZQotICAjZGVmaW5lIENGR19DQ1NSQkFSCQkweGZmNzAwMDAwCS8qIGRlZmF1bHQgQ0NTUkJBUgkqLworICAjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUgkJMHhmZjcwMDAwMAkvKiBkZWZhdWx0IENDU1JCQVIJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfQ0NTUkJBUl9QSFlTCUNGR19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfSU1NUgkJQ0ZHX0NDU1JCQVIJLyogUFFJSSB1c2VzIENGR19JTU1SCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUgkqLwogCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQk1MTIJCS8qIEREUiBpcyA1MTJNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTUxMgkJLyogRERSIGlzIDUxMk1CICovCiAKIC8qIEREUiBTZXR1cCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0REUjEKQEAgLTExNCw4ICsxMTQsOCBAQAogI3VuZGVmIENPTkZJR19FQ0NfSU5JVF9WSUFfRERSQ09OVFJPTExFUgkvKiBERFIgY29udHJvbGxlciBvciBETUE/ICovCiAjZGVmaW5lIENPTkZJR19NRU1fSU5JVF9WQUxVRQkweERlYWRCZWVmCiAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCiAjZGVmaW5lIENPTkZJR19WRVJZX0JJR19SQU0KIAogI2RlZmluZSBDT05GSUdfTlVNX0REUl9DT05UUk9MTEVSUwkxCkBAIC0xMjgsNjkgKzEyOCw2OSBAQAogI3VuZGVmIENPTkZJR19DTE9DS1NfSU5fTUhaCiAKICNpZiBkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpCi0gICNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4ZmMwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KLSAgI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkweGY4MDAwMDAwICAgICAgLyogc3RhcnQgb2YgRkxBU0ggOE0gICovCi0gICNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JMHhmODAwMDgwMSAgICAgIC8qIHBvcnQgc2l6ZSA4Yml0ICovCi0gICNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JMHhmODAwMGZmNwkvKiA4TUIgRmxhc2gJCSovCisgICNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRQkweGZjMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCisgICNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCTB4ZjgwMDAwMDAgICAgICAvKiBzdGFydCBvZiBGTEFTSCA4TSAgKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JMHhmODAwMDgwMSAgICAgIC8qIHBvcnQgc2l6ZSA4Yml0ICovCisgICNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCTB4ZjgwMDBmZjcJLyogOE1CIEZsYXNoCQkqLwogI2Vsc2UgLyogQm9vdCBmcm9tIHJlYWwgRmxhc2ggKi8KLSAgI2RlZmluZSBDRkdfTEJDX1NEUkFNX0JBU0UJMHhmODAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLwotICAjZGVmaW5lIENGR19GTEFTSF9CQVNFCTB4ZmY4MDAwMDAgICAgICAvKiBzdGFydCBvZiBGTEFTSCA4TSAgICAqLwotICAjZGVmaW5lIENGR19CUjBfUFJFTElNCTB4ZmY4MDA4MDEgICAgICAvKiBwb3J0IHNpemUgOGJpdCAgICAgICovCi0gICNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JMHhmZjgwMGZmNwkvKiA4TUIgRmxhc2gJCSovCisgICNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRQkweGY4MDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCisgICNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCTB4ZmY4MDAwMDAgICAgICAvKiBzdGFydCBvZiBGTEFTSCA4TSAgICAqLworICAjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkweGZmODAwODAxICAgICAgLyogcG9ydCBzaXplIDhiaXQgICAgICAqLworICAjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkweGZmODAwZmY3CS8qIDhNQiBGbGFzaAkJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CCSovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CCSovCiAKIC8qIGxvY2FsIGJ1cyBkZWZpbml0aW9ucyAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhlNDAwMTgwMQkvKiA2NE0sIDMyLWJpdCBmbGFzaCAqLwotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJMHhmYzAwMGZmNworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCTB4ZTQwMDE4MDEJLyogNjRNLCAzMi1iaXQgZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweGZjMDAwZmY3CiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4MDAwMDAwMDAJLyogQ1MyIG5vdCB1c2VkICovCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJMHgwMDAwMDAwMAkvKiBDUzIgbm90IHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCTB4ZjAwMDE4NjEJLyogNjRNQiBsb2NhbGJ1cyBTRFJBTQkqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJMHhmYzAwMGNjMQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCTB4ZjAwMDE4NjEJLyogNjRNQiBsb2NhbGJ1cyBTRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCTB4ZmMwMDBjYzEKIAogI2lmIGRlZmluZWQoQ09ORklHX1JBTV9BU19GTEFTSCkKLSAgI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkweGY0MDAxODYxCS8qIDY0TSBsb2NhbGJ1cyBTRFJBTSAqLworICAjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkweGY0MDAxODYxCS8qIDY0TSBsb2NhbGJ1cyBTRFJBTSAqLwogI2Vsc2UKLSAgI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkweGY4MDAxODYxCS8qIDY0TSBsb2NhbGJ1cyBTRFJBTSAqLworICAjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkweGY4MDAxODYxCS8qIDY0TSBsb2NhbGJ1cyBTRFJBTSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCQkweGZjMDAwY2MxCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkJMHhmYzAwMGNjMQogCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCQkweGZjMDAwODAxCS8qIDE2TSBDUzUgbWlzYyBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkJMHhmYzAwMDgwMQkvKiAxNk0gQ1M1IG1pc2MgZGV2aWNlcyAqLwogI2lmIDEKLSAgI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkweGZmMDAwZmY3CisgICNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCTB4ZmYwMDBmZjcKICNlbHNlCi0gICNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JMHhmZjAwMDBmMAorICAjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkweGZmMDAwMGYwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQlI2X1BSRUxJTQkJMHhlMDAwMTgwMQkvKiA2NE0sIDMyLWJpdCBmbGFzaCAqLwotI2RlZmluZSBDRkdfT1I2X1BSRUxJTQkJMHhmYzAwMGZmNwotI2RlZmluZSBDRkdfTEJDX0xDUlIJCTB4MDAwMzAwMDIJLyogbG9jYWwgYnVzIGZyZXEJKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MQkNSCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19MQkNfTFNSVAkJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfTEJDX01SVFBSCQkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMQkJMHgyODYxYjcyMwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzIJCTB4MDg2MWI3MjMKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8zCQkweDA4NjFiNzIzCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNAkJMHgxODYxYjcyMwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzUJCTB4NDA2MWI3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19CUjZfUFJFTElNCQkweGUwMDAxODAxCS8qIDY0TSwgMzItYml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfT1I2X1BSRUxJTQkJMHhmYzAwMGZmNworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQ1JSCQkweDAwMDMwMDAyCS8qIGxvY2FsIGJ1cyBmcmVxCSovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xCQkweDI4NjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzIJCTB4MDg2MWI3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMwkJMHgwODYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl80CQkweDE4NjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzUJCTB4NDA2MWI3MjMKIAogLyoganVzdCBoaWphY2sgdGhlIE1PVCBCQ1NSIGRlZiBmb3IgU0JDODU2MCBtaXNjIGRldmljZXMgKi8KLSNkZWZpbmUgQ0ZHX0JDU1IJCSgoQ0ZHX0JSNV9QUkVMSU0gJiAweGZmMDAwMDAwKXwweDAwNDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JDU1IJCSgoQ09ORklHX1NZU19CUjVfUFJFTElNICYgMHhmZjAwMDAwMCl8MHgwMDQwMDAwMCkKIC8qIHRoZSBzaXplIG9mIENTNSBuZWVkcyB0byBiZSA+PSAxNk0gZm9yIFRMQiBhbmQgTEFXIHNldHVwcyAqLwogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NzAwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NzAwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjdW5kZWYgIENPTkZJR19DT05TX09OX1NDQwkvKiBkZWZpbmUgaWYgY29uc29sZSBvbiBTQ0MgKi8KQEAgLTE5OCwyMiArMTk4LDIyIEBACiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTE4NDMyMDAgLyogZ2V0X2J1c19mcmVxKDApICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCTE4NDMyMDAgLyogZ2V0X2J1c19mcmVxKDApICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJOTYwMAogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKChDRkdfQlI1X1BSRUxJTSAmIDB4ZmYwMDAwMDApKzB4MDA3MDAwMDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKChDRkdfQlI1X1BSRUxJTSAmIDB4ZmYwMDAwMDApKzB4MDA4MDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCSgoQ09ORklHX1NZU19CUjVfUFJFTElNICYgMHhmZjAwMDAwMCkrMHgwMDcwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKChDT05GSUdfU1lTX0JSNV9QUkVMSU0gJiAweGZmMDAwMDAwKSsweDAwODAwMDAwKQogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qIHBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KQEAgLTIyNywxNCArMjI3LDE0IEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCQkvKiBVc2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fQkFTRQkweEMwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNX1BIWVMJMHhDMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9TSVpFCTB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UJMHhDMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUwkweEMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9TSVpFCTB4MTAwMDAwMDAKIAogI2lmZGVmIENPTkZJR19UU0VDX0VORVQKIApAQCAtMjcyLDEwICsyNzIsMTAgQEAKICAgICAgKiAtIFNlbGVjdCBidXMgZm9yIGJkL2J1ZmZlcnMKICAgICAgKiAtIEZ1bGwgZHVwbGV4CiAgICAgICovCi0gICAgI2RlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKLSAgICAjZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxMyB8IENNWEZDUl9URjJDU19DTEsxNCkKLSAgICAjZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0gICAgI2RlZmluZSBDRkdfRkNDX1BTTVIJKEZDQ19QU01SX0ZERSkKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTMgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJKEZDQ19QU01SX0ZERSkKIAogICAjZWxpZiAoQ09ORklHX0VUSEVSX0lOREVYID09IDMpCiAgICAgLyogbmVlZCBtb3JlIGRlZmluaXRpb25zIGhlcmUgZm9yIEZFMyAqLwpAQCAtMzA1LDQ2ICszMDUsNDYgQEAKICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIJKi8KICNpZiAwCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgICAgLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkJLyogdXNlIGhhcmR3YXJlIHByb3RlY3Rpb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgICAgLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JCS8qIHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkqLwogCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTIwMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyMDAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFIC8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFIC8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KIAogI2lmIDAKIC8qIFhYWCBUaGlzIGRvZXNuJ3Qgd29yayBhbmQgSSBkb24ndCB3YW50IHRvIGZpeCBpdCAqLwotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0gICNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisgICNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotICAjdW5kZWYgIENGR19SQU1CT09UCisgICN1bmRlZiAgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKICNlbmRpZgogCiAvKiBFbnZpcm9ubWVudCAqLwotI2lmICFkZWZpbmVkKENGR19SQU1CT09UKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICAgI2lmIGRlZmluZWQoQ09ORklHX1JBTV9BU19GTEFTSCkKICAgICAjZGVmaW5lIENPTkZJR19FTlZfSVNfTk9XSEVSRQotICAgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIDB4MTAwMDAwKQorICAgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDEwMDAwMCkKICAgICAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkweDIwMDAKICAgI2Vsc2UKICAgICAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogICAgICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMCAvKiAxMjhLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KLSAgICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX01PTklUT1JfQkFTRSAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQorICAgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQogICAgICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCTB4MjAwMCAvKiBDT05GSUdfRU5WX1NFQ1RfU0laRSAqLwogICAjZW5kaWYKICNlbHNlCi0gICNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93CSovCisgICNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdwkqLwogICAjZGVmaW5lIENPTkZJR19FTlZfSVNfTk9XSEVSRQkxCS8qIFN0b3JlIEVOViBpbiBtZW1vcnkgb25seQkqLwotICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAgICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNlbmRpZgogCkBAIC0zNTMsNyArMzUzLDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CS8qIC0xIGRpc2FibGUgYXV0b2Jvb3QgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAKIC8qCkBAIC0zODEsNyArMzgxLDcgQEAKICAgICAjZGVmaW5lIENPTkZJR19DTURfTUlJCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpIHx8IGRlZmluZWQoQ09ORklHX1JBTV9BU19GTEFTSCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkgfHwgZGVmaW5lZChDT05GSUdfUkFNX0FTX0ZMQVNIKQogICAgICN1bmRlZiBDT05GSUdfQ01EX0VOVgogICAgICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTM5MiwyNSArMzkyLDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSJTQkM4NTYwPT4gIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIlNCQzg1NjA9PiAiIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSAgI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisgICNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0gICNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisgICNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zYmM4NjQxZC5oIGIvaW5jbHVkZS9jb25maWdzL3NiYzg2NDFkLmgKaW5kZXggMDEwMDNhMy4uMTRkMWM4OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3NiYzg2NDFkLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NiYzg2NDFkLmgKQEAgLTQ0LDEwICs0NCwxMCBAQAogI2RlZmluZSBDT05GSUdfTElOVVhfUkVTRVRfVkVDICAweDEwMCAgIC8qIFJlc2V0IHZlY3RvciB1c2VkIGJ5IExpbnV4ICovCiAKICNpZmRlZiBSVU5fRElBRwotI2RlZmluZSBDRkdfRElBR19BRERSICAgICAgICAweGZmODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRElBR19BRERSICAgICAgICAweGZmODAwMDAwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUyAgICAweGZmZjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAgICAweGZmZjAwMTAwCiAKICNkZWZpbmUgQ09ORklHX1BDSQkJMQkvKiBFbmFibGUgUENJRSAqLwogI2RlZmluZSBDT05GSUdfUENJMQkJMQkvKiBQQ0lFIGNvbnRyb2xlciAxIChzbG90IDEpICovCkBAIC03Niw3ICs3Niw3IEBACiAvKgogICogTDJDUiBzZXR1cCAtLSBtYWtlIHN1cmUgdGhpcyBpcyByaWdodCBmb3IgeW91ciBib2FyZCEKICAqLwotI2RlZmluZSBDRkdfTDIKKyNkZWZpbmUgQ09ORklHX1NZU19MMgogI2RlZmluZSBMMl9JTklUCQkwCiAjZGVmaW5lIEwyX0VOQUJMRQkoTDJDUl9MMkUpCiAKQEAgLTg2LDI4ICs4NiwyOCBAQAogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YJMQkvKiBDYWxsIGJvYXJkX3ByZV9pbml0ICovCiAKLSN1bmRlZglDRkdfRFJBTV9URVNUCQkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCisjdW5kZWYJQ09ORklHX1NZU19EUkFNX1RFU1QJCQkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCByZWdpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAogCiAvKgogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCi0jZGVmaW5lIENGR19DQ1NSQkFSCQkweGY4MDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGY4MDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDT05GSUdfU1lTX0lNTVIgKi8KIAotI2RlZmluZSBDRkdfUENJMV9BRERSCQkoQ0ZHX0NDU1JCQVIrMHg4MDAwKQotI2RlZmluZSBDRkdfUENJMl9BRERSCQkoQ0ZHX0NDU1JCQVIrMHg5MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUisweDgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9BRERSCQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4OTAwMCkKIAogLyoKICAqIEREUiBTZXR1cAogICovCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5ICovCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRTIJMHgxMDAwMDAwMAkvKiBERFIgYmFuayAyICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UyCQlDRkdfRERSX1NEUkFNX0JBU0UyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFMgkweDEwMDAwMDAwCS8qIEREUiBiYW5rIDIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRTIJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UyCiAjZGVmaW5lIENPTkZJR19WRVJZX0JJR19SQU0KIAogI2RlZmluZSBNUEM4Nnh4X0REUl9TRFJBTV9DTEtfQ05UTApAQCAtMTMwLDUxICsxMzAsNTEgQEAKICAgICAgKiBNYW51YWxseSBzZXQgdXAgRERSMSAmIEREUjIgcGFyYW1ldGVycwogICAgICAqLwogCi0gICAgI2RlZmluZSBDRkdfU0RSQU1fU0laRQk1MTIJCS8qIEREUiBpcyA1MTJNQiAqLworICAgICNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCTUxMgkJLyogRERSIGlzIDUxMk1CICovCiAKLSAgICAjZGVmaW5lIENGR19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwRgotICAgICNkZWZpbmUgQ0ZHX0REUl9DUzFfQk5EUwkweDAwMDAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSX0NTMl9CTkRTCTB4MDAwMDAwMDAKLSAgICAjZGVmaW5lIENGR19ERFJfQ1MzX0JORFMJMHgwMDAwMDAwMAotICAgICNkZWZpbmUgQ0ZHX0REUl9DUzBfQ09ORklHCTB4ODAwMTAxMDIKLSAgICAjZGVmaW5lIENGR19ERFJfQ1MxX0NPTkZJRwkweDAwMDAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSX0NTMl9DT05GSUcJMHgwMDAwMDAwMAotICAgICNkZWZpbmUgQ0ZHX0REUl9DUzNfQ09ORklHCTB4MDAwMDAwMDAKLSAgICAjZGVmaW5lIENGR19ERFJfVElNSU5HXzMgMHgwMDAwMDAwMAotICAgICNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMAkweDAwMjIwODAyCi0gICAgI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCTB4MzgzNzczMjIKLSAgICAjZGVmaW5lIENGR19ERFJfVElNSU5HXzIJMHgwMDIwNDBjNwotICAgICNkZWZpbmUgQ0ZHX0REUl9DRkdfMUEJMHg0MzAwODAwOAotICAgICNkZWZpbmUgQ0ZHX0REUl9DRkdfMgkweDI0NDAxMDAwCi0gICAgI2RlZmluZSBDRkdfRERSX01PREVfMQkweDIzYzAwNTQyCi0gICAgI2RlZmluZSBDRkdfRERSX01PREVfMgkweDAwMDAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSX01PREVfQ1RMCTB4MDAwMDAwMDAKLSAgICAjZGVmaW5lIENGR19ERFJfSU5URVJWQUwJMHgwNTA4MDEwMAotICAgICNkZWZpbmUgQ0ZHX0REUl9EQVRBX0lOSVQJMHgwMDAwMDAwMAotICAgICNkZWZpbmUgQ0ZHX0REUl9DTEtfQ1RSTAkweDAzODAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSX0NGR18xQgkweEMzMDA4MDA4CisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUwkweDAwMDAwMDBGCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzFfQk5EUwkweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzJfQk5EUwkweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzNfQk5EUwkweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHCTB4ODAwMTAxMDIKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMV9DT05GSUcJMHgwMDAwMDAwMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MyX0NPTkZJRwkweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzNfQ09ORklHCTB4MDAwMDAwMDAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18zIDB4MDAwMDAwMDAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18wCTB4MDAyMjA4MDIKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4MzgzNzczMjIKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCTB4MDAyMDQwYzcKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX0NGR18xQQkweDQzMDA4MDA4CisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9DRkdfMgkweDI0NDAxMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFXzEJMHgyM2MwMDU0MgorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERV8yCTB4MDAwMDAwMDAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREVfQ1RMCTB4MDAwMDAwMDAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX0lOVEVSVkFMCTB4MDUwODAxMDAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX0RBVEFfSU5JVAkweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9DTEtfQ1RSTAkweDAzODAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9DRkdfMUIJMHhDMzAwODAwOAogCi0gICAgI2RlZmluZSBDRkdfRERSMl9DUzBfQk5EUwkweDAwMTAwMDFGCi0gICAgI2RlZmluZSBDRkdfRERSMl9DUzFfQk5EUwkweDAwMDAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSMl9DUzJfQk5EUwkweDAwMDAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSMl9DUzNfQk5EUwkweDAwMDAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSMl9DUzBfQ09ORklHCTB4ODAwMTAxMDIKLSAgICAjZGVmaW5lIENGR19ERFIyX0NTMV9DT05GSUcJMHgwMDAwMDAwMAotICAgICNkZWZpbmUgQ0ZHX0REUjJfQ1MyX0NPTkZJRwkweDAwMDAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSMl9DUzNfQ09ORklHCTB4MDAwMDAwMDAKLSAgICAjZGVmaW5lIENGR19ERFIyX0VYVF9SRUZSRVNIIDB4MDAwMDAwMDAKLSAgICAjZGVmaW5lIENGR19ERFIyX1RJTUlOR18wCTB4MDAyMjA4MDIKLSAgICAjZGVmaW5lIENGR19ERFIyX1RJTUlOR18xCTB4MzgzNzczMjIKLSAgICAjZGVmaW5lIENGR19ERFIyX1RJTUlOR18yCTB4MDAyMDQwYzcKLSAgICAjZGVmaW5lIENGR19ERFIyX0NGR18xQQkweDQzMDA4MDA4Ci0gICAgI2RlZmluZSBDRkdfRERSMl9DRkdfMgkweDI0NDAxMDAwCi0gICAgI2RlZmluZSBDRkdfRERSMl9NT0RFXzEJMHgyM2MwMDU0MgotICAgICNkZWZpbmUgQ0ZHX0REUjJfTU9ERV8yCTB4MDAwMDAwMDAKLSAgICAjZGVmaW5lIENGR19ERFIyX01PREVfQ1RMCTB4MDAwMDAwMDAKLSAgICAjZGVmaW5lIENGR19ERFIyX0lOVEVSVkFMCTB4MDUwODAxMDAKLSAgICAjZGVmaW5lIENGR19ERFIyX0RBVEFfSU5JVAkweDAwMDAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSMl9DTEtfQ1RSTAkweDAzODAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSMl9DRkdfMUIJMHhDMzAwODAwOAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFIyX0NTMF9CTkRTCTB4MDAxMDAwMUYKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSMl9DUzFfQk5EUwkweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfQ1MyX0JORFMJMHgwMDAwMDAwMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFIyX0NTM19CTkRTCTB4MDAwMDAwMDAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSMl9DUzBfQ09ORklHCTB4ODAwMTAxMDIKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSMl9DUzFfQ09ORklHCTB4MDAwMDAwMDAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSMl9DUzJfQ09ORklHCTB4MDAwMDAwMDAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSMl9DUzNfQ09ORklHCTB4MDAwMDAwMDAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSMl9FWFRfUkVGUkVTSCAweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfVElNSU5HXzAJMHgwMDIyMDgwMgorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFIyX1RJTUlOR18xCTB4MzgzNzczMjIKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSMl9USU1JTkdfMgkweDAwMjA0MGM3CisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfQ0ZHXzFBCTB4NDMwMDgwMDgKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSMl9DRkdfMgkweDI0NDAxMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfTU9ERV8xCTB4MjNjMDA1NDIKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSMl9NT0RFXzIJMHgwMDAwMDAwMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFIyX01PREVfQ1RMCTB4MDAwMDAwMDAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSMl9JTlRFUlZBTAkweDA1MDgwMTAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfREFUQV9JTklUCTB4MDAwMDAwMDAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSMl9DTEtfQ1RSTAkweDAzODAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfQ0ZHXzFCCTB4QzMwMDgwMDgKIAogCiAjZW5kaWYKQEAgLTE4NSw4OCArMTg1LDg4IEBACiAvKgogICogVGhlIFNCQzg2NDFEIGNvbnRhaW5zIDE2TUIgZmxhc2ggc3BhY2UgYXQgZmYwMDAwMDAuCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgICAgICAweGZmMDAwMDAwICAvKiBzdGFydCBvZiBGTEFTSCAxNk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFICAgICAgMHhmZjAwMDAwMCAgLyogc3RhcnQgb2YgRkxBU0ggMTZNICovCiAKIC8qIEZsYXNoICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkweGZmMDAxMDAxCS8qIHBvcnQgc2l6ZSAxNmJpdCAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhmZjAwNmU2NQkvKiAxNk1CIEJvb3QgRmxhc2ggYXJlYSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4ZmYwMDEwMDEJLyogcG9ydCBzaXplIDE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhmZjAwNmU2NQkvKiAxNk1CIEJvb3QgRmxhc2ggYXJlYSAqLwogCiAvKiA2NEtCIEVFUFJPTSAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhmMDAwMDgwMQkvKiBwb3J0IHNpemUgMTZiaXQgKi8KLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4ZmZmZjZlNjUJLyogNjRLIEVFUFJPTSBhcmVhICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJMHhmMDAwMDgwMQkvKiBwb3J0IHNpemUgMTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweGZmZmY2ZTY1CS8qIDY0SyBFRVBST00gYXJlYSAqLwogCiAvKiBFUExEIC0gVXNlciBzd2l0Y2hlcywgYm9hcmQgaWQsIExFRHMgKi8KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4ZjEwMDA4MDEJLyogcG9ydCBzaXplIDE2Yml0ICovCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkweGZmZjA2ZTY1CS8qIEVQTEQgKHN3aXRjaGVzLCBib2FyZCBJRCwgTEVEcykgYXJlYSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4ZjEwMDA4MDEJLyogcG9ydCBzaXplIDE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJMHhmZmYwNmU2NQkvKiBFUExEIChzd2l0Y2hlcywgYm9hcmQgSUQsIExFRHMpIGFyZWEgKi8KIAogLyogTG9jYWwgYnVzIFNEUkFNIDEyOE1CICovCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkweGUwMDAxODYxCS8qIHBvcnQgc2l6ZSA/Yml0ICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQkweGZjMDA2Y2MwCS8qIDEyOE1CIGxvY2FsIGJ1cyBTRFJBTSBhcmVhICgxc3QgaGFsZikgKi8KLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JCTB4ZTQwMDE4NjEJLyogcG9ydCBzaXplID9iaXQgKi8KLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JCTB4ZmMwMDZjYzAJLyogMTI4TUIgbG9jYWwgYnVzIFNEUkFNIGFyZWEgKDJuZCBoYWxmKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCTB4ZTAwMDE4NjEJLyogcG9ydCBzaXplID9iaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkweGZjMDA2Y2MwCS8qIDEyOE1CIGxvY2FsIGJ1cyBTRFJBTSBhcmVhICgxc3QgaGFsZikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCQkweGU0MDAxODYxCS8qIHBvcnQgc2l6ZSA/Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkJMHhmYzAwNmNjMAkvKiAxMjhNQiBsb2NhbCBidXMgU0RSQU0gYXJlYSAoMm5kIGhhbGYpICovCiAKIC8qIERpc2sgb24gQ2hpcCAoRE9DKSAxMjhNQiAqLwotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJMHhlODAwMTAwMQkvKiBwb3J0IHNpemUgP2JpdCAqLwotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkJMHhmODAwNmU2NQkvKiAxMjhNQiBsb2NhbCBidXMgU0RSQU0gYXJlYSAoMm5kIGhhbGYpICovCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkJMHhlODAwMTAwMQkvKiBwb3J0IHNpemUgP2JpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JCTB4ZjgwMDZlNjUJLyogMTI4TUIgbG9jYWwgYnVzIFNEUkFNIGFyZWEgKDJuZCBoYWxmKSAqLwogCiAvKiBMQ0QgKi8KLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JCTB4ZjQwMDA4MDEJLyogcG9ydCBzaXplID9iaXQgKi8KLSNkZWZpbmUgQ0ZHX09SNl9QUkVMSU0JCTB4ZmZmMDZlNjUJLyogMTI4TUIgbG9jYWwgYnVzIFNEUkFNIGFyZWEgKDJuZCBoYWxmKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSNl9QUkVMSU0JCTB4ZjQwMDA4MDEJLyogcG9ydCBzaXplID9iaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjZfUFJFTElNCQkweGZmZjA2ZTY1CS8qIDEyOE1CIGxvY2FsIGJ1cyBTRFJBTSBhcmVhICgybmQgaGFsZikgKi8KIAogLyogQ29udHJvbCBsb2dpYyAmIG1pc2MgcGVyaXBoZXJhbHMgKi8KLSNkZWZpbmUgQ0ZHX0JSN19QUkVMSU0JCTB4ZjIwMDA4MDEJLyogcG9ydCBzaXplID9iaXQgKi8KLSNkZWZpbmUgQ0ZHX09SN19QUkVMSU0JCTB4ZmZmMDZlNjUJLyogMTI4TUIgbG9jYWwgYnVzIFNEUkFNIGFyZWEgKDJuZCBoYWxmKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSN19QUkVMSU0JCTB4ZjIwMDA4MDEJLyogcG9ydCBzaXplID9iaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjdfUFJFTElNCQkweGZmZjA2ZTY1CS8qIDEyOE1CIGxvY2FsIGJ1cyBTRFJBTSBhcmVhICgybmQgaGFsZikgKi8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTMxCQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTMxCQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KIAotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfV1JJVEVfU1dBUFBFRF9EQVRBCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfV1JJVEVfU1dBUFBFRF9EQVRBCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIAogI3VuZGVmIENPTkZJR19DTE9DS1NfSU5fTUhaCiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNpZm5kZWYgQ0ZHX0lOSVRfUkFNX0xPQ0sKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgwZmQwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjaWZuZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHgwZmQwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCiAjZWxzZQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweGY4NDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4Zjg0MDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgICAgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KSAgICAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYICAgICAxCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRSAgICAxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEgICAgICAgIChDRkdfQ0NTUkJBUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIgICAgICAgIChDRkdfQ0NTUkJBUisweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xICAgICAgICAoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIgICAgICAgIChDT05GSUdfU1lTX0NDU1JCQVIrMHg0NjAwKQogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmICBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyoKQEAgLTI3Niw4ICsyNzYsOCBAQAogI2RlZmluZSBDT05GSUdfT0ZfQk9BUkRfU0VUVVAJCTEKICNkZWZpbmUgQ09ORklHX09GX1NURE9VVF9WSUFfQUxJQVMJMQogCi0jZGVmaW5lIENGR182NEJJVF9WU1BSSU5URgkxCi0jZGVmaW5lIENGR182NEJJVF9TVFJUT1VMCTEKKyNkZWZpbmUgQ09ORklHX1NZU182NEJJVF9WU1BSSU5URgkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfU1RSVE9VTAkxCiAKIC8qCiAgKiBJMkMKQEAgLTI4NSw0NiArMjg1LDQ2IEBACiAjZGVmaW5lCUNPTkZJR19GU0xfSTJDCQkvKiBVc2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyICovCiAjZGVmaW5lCUNPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMgICAgICAgIHsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMTAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTICAgICAgICB7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMxMDAKIAogLyoKICAqIFJhcGlkSU8gTU1VCiAgKi8KLSNkZWZpbmUgQ0ZHX1JJT19NRU1fQkFTRQkweGMwMDAwMDAwCS8qIGJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUklPX01FTV9QSFlTCUNGR19SSU9fTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1JJT19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDEyOE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UJMHhjMDAwMDAwMAkvKiBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX1BIWVMJQ09ORklHX1NZU19SSU9fTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiAxMjhNICovCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHhlMjAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCUNGR19QQ0kxX0lPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDEwMDAwMDAJLyogMTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweGUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCUNPTkZJR19TWVNfUENJMV9JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MTAwMDAwMAkvKiAxNk0gKi8KIAogLyogUENJIHZpZXcgb2YgU3lzdGVtIE1lbW9yeSAqLwotI2RlZmluZSBDRkdfUENJX01FTU9SWV9CVVMgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1BIWVMgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfU0laRSAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUyAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSAgICAgMHg4MDAwMDAwMAogCi0jZGVmaW5lIENGR19QQ0kyX01FTV9CQVNFCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1BIWVMJQ0ZHX1BDSTJfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kyX0lPX0JBU0UJMHhlMzAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9JT19QSFlTCUNGR19QQ0kyX0lPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fU0laRQkweDEwMDAwMDAJLyogMTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fQkFTRQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fQkFTRQkweGUzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19QSFlTCUNPTkZJR19TWVNfUENJMl9JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19TSVpFCTB4MTAwMDAwMAkvKiAxNk0gKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKIAogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVyAgICAgICAgICAgIC8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAqLwogCi0jdW5kZWYgQ0ZHX1NDU0lfU0NBTl9CVVNfUkVWRVJTRQorI3VuZGVmIENPTkZJR19TWVNfU0NTSV9TQ0FOX0JVU19SRVZFUlNFCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJCS8qIGRvIHBjaSBwbHVnLWFuZC1wbGF5ICovCkBAIC0zNDUsMTAgKzM0NSwxMCBAQAogCiAjaWZkZWYgQ09ORklHX1NDU0lfQUhDSQogI2RlZmluZSBDT05GSUdfU0FUQV9VTEk1Mjg4Ci0jZGVmaW5lIENGR19TQ1NJX01BWF9TQ1NJX0lECTQKLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX0xVTgkxCi0jZGVmaW5lIENGR19TQ1NJX01BWF9ERVZJQ0UJKENGR19TQ1NJX01BWF9TQ1NJX0lEICogQ0ZHX1NDU0lfTUFYX0xVTikKLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYREVWSUNFCUNGR19TQ1NJX01BWF9ERVZJQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWF9TQ1NJX0lECTQKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWF9MVU4JMQorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRQkoQ09ORklHX1NZU19TQ1NJX01BWF9TQ1NJX0lEICogQ09ORklHX1NZU19TQ1NJX01BWF9MVU4pCisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhERVZJQ0UJQ09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0UKICNlbmRpZgogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwpAQCAtMzgzLDcgKzM4Myw3IEBACiAjZGVmaW5lIFRTRUMzX0ZMQUdTCQlUU0VDX0dJR0FCSVQKICNkZWZpbmUgVFNFQzRfRkxBR1MJCVRTRUNfR0lHQUJJVAogCi0jZGVmaW5lIENGR19UQklQQV9WQUxVRQkweDFlCS8qIFNldCBUQkkgYWRkcmVzcyBub3QgdG8gY29uZmxpY3Qgd2l0aCBUU0VDMV9QSFlfQUREUiAqLworI2RlZmluZSBDT05GSUdfU1lTX1RCSVBBX1ZBTFVFCTB4MWUJLyogU2V0IFRCSSBhZGRyZXNzIG5vdCB0byBjb25mbGljdCB3aXRoIFRTRUMxX1BIWV9BRERSICovCiAKICNkZWZpbmUgQ09ORklHX0VUSFBSSU1FCQkiZVRTRUMxIgogCkBAIC0zOTMsMTAgKzM5MywxMCBAQAogICogQkFUMCAgICAgICAgIDJHICAgICBDYWNoZWFibGUsIG5vbi1ndWFyZGVkCiAgKiAweDAwMDBfMDAwMCAgMkcgICAgIEREUgogICovCi0jZGVmaW5lIENGR19EQkFUMEwJKEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0RCQVQwVQkoQkFUVV9CTF8yRyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDBMCShCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UgKQotI2RlZmluZSBDRkdfSUJBVDBVCUNGR19EQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJKEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJKEJBVFVfQkxfMkcgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCUNPTkZJR19TWVNfREJBVDBVCiAKIC8qCiAgKiBCQVQxICAgICAgICAgMUcgICAgIENhY2hlLWluaGliaXRlZCwgZ3VhcmRlZApAQCAtNDA0LDMxICs0MDQsMzEgQEAKICAqIDB4YTAwMF8wMDAwICA1MTJNICAgUENJLUV4cHJlc3MgMiBNZW1vcnkKICAqCUNoYW5nZWQgaXQgZm9yIG9wZXJhdGluZyBmcm9tIDB4ZDAwMDAwMDAKICAqLwotI2RlZmluZSBDRkdfREJBVDFMCSggQ0ZHX1BDSTFfTUVNX0JBU0UgfCBCQVRMX1BQX1JXIFwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJKCBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UgfCBCQVRMX1BQX1JXIFwKIAkJCXwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDFVCShDRkdfUENJMV9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDFMCShDRkdfUENJMV9NRU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQlDRkdfREJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVCShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJQ09ORklHX1NZU19EQkFUMVUKIAogLyoKICAqIEJBVDIgICAgICAgICA1MTJNICAgQ2FjaGUtaW5oaWJpdGVkLCBndWFyZGVkCiAgKiAweGMwMDBfMDAwMCAgNTEyTSAgIFJhcGlkSU8gTWVtb3J5CiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQyTAkoQ0ZHX1JJT19NRU1fQkFTRSB8IEJBVExfUFBfUlcgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAkoQ09ORklHX1NZU19SSU9fTUVNX0JBU0UgfCBCQVRMX1BQX1JXIFwKIAkJCXwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDJVCShDRkdfUklPX01FTV9CQVNFIHwgQkFUVV9CTF81MTJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMkwJKENGR19SSU9fTUVNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUJQ0ZHX0RCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQkoQ09ORklHX1NZU19SSU9fTUVNX0JBU0UgfCBCQVRVX0JMXzUxMk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKENPTkZJR19TWVNfUklPX01FTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQlDT05GSUdfU1lTX0RCQVQyVQogCiAvKgogICogQkFUMyAgICAgICAgIDRNICAgICBDYWNoZS1pbmhpYml0ZWQsIGd1YXJkZWQKICAqIDB4ZjgwMF8wMDAwICA0TSAgICAgQ0NTUgogICovCi0jZGVmaW5lIENGR19EQkFUM0wJKCBDRkdfQ0NTUkJBUiB8IEJBVExfUFBfUlcgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAkoIENPTkZJR19TWVNfQ0NTUkJBUiB8IEJBVExfUFBfUlcgXAogCQkJfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUM1UJKENGR19DQ1NSQkFSIHwgQkFUVV9CTF80TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDNMCShDRkdfQ0NTUkJBUiB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQlDRkdfREJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVCShDT05GSUdfU1lTX0NDU1JCQVIgfCBCQVRVX0JMXzRNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCShDT05GSUdfU1lTX0NDU1JCQVIgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCUNPTkZJR19TWVNfREJBVDNVCiAKIC8qCiAgKiBCQVQ0ICAgICAgICAgMzJNICAgIENhY2hlLWluaGliaXRlZCwgZ3VhcmRlZApAQCAtNDM2LDQ2ICs0MzYsNDYgQEAKICAqIDB4ZTMwMF8wMDAwICAxNk0gICAgUENJLUV4cHJlc3MgMiBJLzAKICAqICAgIE5vdGUgdGhhdCB0aGlzIGlzIGF0IDB4ZTAwMDAwMDAKICAqLwotI2RlZmluZSBDRkdfREJBVDRMCSggQ0ZHX1BDSTFfSU9fQkFTRSB8IEJBVExfUFBfUlcgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0TAkoIENPTkZJR19TWVNfUENJMV9JT19CQVNFIHwgQkFUTF9QUF9SVyBcCiAJCQl8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQ0VQkoQ0ZHX1BDSTFfSU9fQkFTRSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUNEwJKENGR19QQ0kxX0lPX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUNFUJQ0ZHX0RCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0VQkoQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkoQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRVCUNPTkZJR19TWVNfREJBVDRVCiAKIC8qCiAgKiBCQVQ1ICAgICAgICAgMTI4SyAgIENhY2hlYWJsZSwgbm9uLWd1YXJkZWQKICAqIDB4ZTQwMV8wMDAwICAxMjhLICAgSW5pdCBSQU0gZm9yIHN0YWNrIGluIHRoZSBDUFUgRENhY2hlIChubyBiYWNraW5nIG1lbW9yeSkKICAqLwotI2RlZmluZSBDRkdfREJBVDVMCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQ1TAlDRkdfREJBVDVMCi0jZGVmaW5lIENGR19JQkFUNVUJQ0ZHX0RCQVQ1VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCUNPTkZJR19TWVNfREJBVDVMCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVVCUNPTkZJR19TWVNfREJBVDVVCiAKIC8qCiAgKiBCQVQ2ICAgICAgICAgMzJNICAgIENhY2hlLWluaGliaXRlZCwgZ3VhcmRlZAogICogMHhmZTAwXzAwMDAgIDMyTSAgICBGTEFTSAogICovCi0jZGVmaW5lIENGR19EQkFUNkwJKChDRkdfRkxBU0hfQkFTRSAmIDB4ZmUwMDAwMDApIHwgQkFUTF9QUF9SVyBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMCSgoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgMHhmZTAwMDAwMCkgfCBCQVRMX1BQX1JXIFwKIAkJCXwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDZVCSgoQ0ZHX0ZMQVNIX0JBU0UgJiAweGZlMDAwMDAwKSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUNkwJKChDRkdfRkxBU0hfQkFTRSAmIDB4ZmUwMDAwMDApIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDZVCUNGR19EQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUJKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiAweGZlMDAwMDAwKSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMCSgoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgMHhmZTAwMDAwMCkgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCUNPTkZJR19TWVNfREJBVDZVCiAKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19EQkFUN1UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfSUJBVDdMCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lCQVQ3VQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdMCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3TAkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVCTB4MDAwMDAwMDAKIAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDB4NDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogMjU2SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogI2luY2x1ZGUgPGNvbmZpZ19jbWRfZGVmYXVsdC5oPgogICAgICNkZWZpbmUgQ09ORklHX0NNRF9QSU5HCkBAIC00OTEsMzMgKzQ5MSwzMyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotICAgICNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworICAgICNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0gICAgI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKIC8qIENhY2hlIENvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0RDQUNIRV9TSVpFCQkzMjc2OAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19EQ0FDSEVfU0laRQkJMzI3NjgKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLypsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLypsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSovCiAjZW5kaWYKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zYzMuaCBiL2luY2x1ZGUvY29uZmlncy9zYzMuaAppbmRleCA4OGEyNGI4Li40NDEzNWRmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2MzLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NjMy5oCkBAIC0xMjgsNyArMTI4LDcgQEAKICN1bmRlZiBDT05GSUdfQk9PVENPTU1BTkQKIAogI2RlZmluZSBDT05GSUdfU0lMRU5UX0NPTlNPTEUJMQkvKiBlbmFibGUgc2lsZW50IHN0YXJ0dXAgKi8KLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCiAjaWYgMQkvKiBmZWVsIGZyZWUgdG8gZGlzYWJsZSBmb3IgZGV2ZWxvcG1lbnQgKi8KICNkZWZpbmUgQ09ORklHX0FVVE9CT09UX0tFWUVECQkvKiBFbmFibGUgcGFzc3dvcmQgcHJvdGVjdGlvbgkqLwpAQCAtMTYwLDcgKzE2MCw3IEBACiAjdW5kZWYgQ09ORklHX0lTUDExNjFfUFJFU0VOVAogCiAjdW5kZWYgQ09ORklHX0xPQURTX0VDSE8gICAvKiBubyBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCiAvKiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMF9TUk9NX1dSSVRFICovCkBAIC0yMDUsNDIgKzIwNSw0MiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJMQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIlNDMz4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCTEJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiU0MzPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KIAotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKIC8qCi0gKiBJZiBDRkdfRVhUX1NFUklBTF9DTE9DSywgdGhlbiB0aGUgVUFSVCBkaXZpc29yIGlzIDEuCi0gKiBJZiBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5LCB0aGVuIFVBUlQgZGl2aXNvciBpcyAzMS4KLSAqIE90aGVyd2lzZSwgVUFSVCBkaXZpc29yIGlzIGRldGVybWluZWQgYnkgQ1BVIENsb2NrIGFuZCBDRkdfQkFTRV9CQVVEIHZhbHVlLgorICogSWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLLCB0aGVuIHRoZSBVQVJUIGRpdmlzb3IgaXMgMS4KKyAqIElmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5LCB0aGVuIFVBUlQgZGl2aXNvciBpcyAzMS4KKyAqIE90aGVyd2lzZSwgVUFSVCBkaXZpc29yIGlzIGRldGVybWluZWQgYnkgQ1BVIENsb2NrIGFuZCBDT05GSUdfU1lTX0JBU0VfQkFVRCB2YWx1ZS4KICAqIFRoZSBMaW51eCBCQVNFX0JBVUQgZGVmaW5lIHNob3VsZCBtYXRjaCB0aGlzIGNvbmZpZ3VyYXRpb24uCiAgKiAgICBiYXNlQmF1ZCA9IGNwdUNsb2NrLyh1YXJ0RGl2aXNvcioxNikKLSAqIElmIENGR180MDVfVUFSVF9FUlJBVEFfNTkgYW5kIDIwME1IeiBDUFUgY2xvY2ssCisgKiBJZiBDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OSBhbmQgMjAwTUh6IENQVSBjbG9jaywKICAqIHNldCBMaW51eCBCQVNFX0JBVUQgdG8gNDAzMjAwLgogICoKICAqIENvbnNpZGVyIHRoZSBPUEIgY2xvY2shIElmIGl0IGdldCBsb3dlciB0aGUgQkFTRV9CQVVEIG11c3QgYmUgbG93ZXIgdG8KICAqIChzZWUgNDA1R1AgZGF0YXNoZWV0IGZvciBkZXNjcml0cGlvbikKICAqLwotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCQkvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KLSN1bmRlZglDRkdfNDA1X1VBUlRfRVJSQVRBXzU5CQkvKiA0MDVHUC9DUiBSZXYuIEQgc2lsaWNvbiAqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECQk5MjE2MDAJLyogaW50ZXJuYWwgY2xvY2sgKi8KKyN1bmRlZglDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJCS8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLworI3VuZGVmCUNPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5CQkvKiA0MDVHUC9DUiBSZXYuIEQgc2lsaWNvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkJOTIxNjAwCS8qIGludGVybmFsIGNsb2NrICovCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKICAgICB7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElJQyBzdHVmZgpAQCAtMjUzLDExICsyNTMsMTEgQEAKICNkZWZpbmUgSTJDX0FDVElWRSAwCiAjZGVmaW5lIEkyQ19UUklTVEFURSAwCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIHVzZSB0aGUgc3RhbmRhcmQgMTAwa0h6IHNwZWVkICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YJCS8qIG1hc2sgdmFsaWQgYml0cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIHVzZSB0aGUgc3RhbmRhcmQgMTAwa0h6IHNwZWVkICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCQkvKiBtYXNrIHZhbGlkIGJpdHMgKi8KIAogI2RlZmluZSBDT05GSUdfUlRDX0RTMTMzNwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSIDB4NjgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIgMHg2OAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTI3NSwxNCArMjc1LDE0IEBACiAvKiBJZiB5b3Ugd2FudCB0byBzZWUsIHdoYXRzIGNvbm5lY3RlZCB0byB5b3VyIFBDSSBidXMgKi8KIC8qICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cgKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDAwMDAJLyogUENJIFZlbmRvciBJRDogdG8tZG8hISEJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwMDAwCS8qIFBDSSBEZXZpY2UgSUQ6IHRvLWRvISEhCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ODAwMDAwMDEJLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MDAwMAkvKiBQQ0kgVmVuZG9yIElEOiB0by1kbyEhIQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwMDAwCS8qIFBDSSBEZXZpY2UgSUQ6IHRvLWRvISEhCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMJMHg4MDAwMDAwMQkvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXh0ZXJuYWwgcGVyaXBoZXJhbCBiYXNlIGFkZHJlc3MKQEAgLTMwNiwxMDMgKzMwNiwxMDMgQEAKIAogI2RlZmluZQlDT05GSUdfQVRBUEkKICNkZWZpbmUJQ09ORklHX0RPU19QQVJUSVRJT04KLSNkZWZpbmUJQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19JREVfTUFYREVWSUNFCShDT05GSUdfU1lTX0lERV9NQVhCVVMqMSkgLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLwogCiAjaWZuZGVmIElERV9VU0VTX0lTQV9FTVVMQVRJT04KIAogLyogTmV3IGFuZCBmYXN0ZXIgYWNjZXNzICovCi0jZGVmaW5lCUNGR19BVEFfQkFTRV9BRERSCQkweDdBMDAwMDAwCS8qIHN0YXJ0IG9mIElTQSBJTyBlbXVsYXRpb24gKi8KKyNkZWZpbmUJQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCQkweDdBMDAwMDAwCS8qIHN0YXJ0IG9mIElTQSBJTyBlbXVsYXRpb24gKi8KIAogLyogSG93IG1hbnkgSURFIGJ1c3NlcyBhcmUgYXZhaWxhYmxlICovCi0jZGVmaW5lCUNGR19JREVfTUFYQlVTCQkxCisjZGVmaW5lCUNPTkZJR19TWVNfSURFX01BWEJVUwkJMQogCiAvKiBXaGF0IElERSBwb3J0cyBhcmUgYXZhaWxhYmxlICovCi0jZGVmaW5lCUNGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAJCS8qIGZpcnN0IGlzIGF2YWlsYWJsZSAqLwotI3VuZGVmCUNGR19BVEFfSURFMV9PRkZTRVQJCQkvKiBzZWNvbmQgbm90IGF2YWlsYWJsZSAqLworI2RlZmluZQlDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMAkJLyogZmlyc3QgaXMgYXZhaWxhYmxlICovCisjdW5kZWYJQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQJCQkvKiBzZWNvbmQgbm90IGF2YWlsYWJsZSAqLwogCiAvKiBhY2Nlc3MgdG8gdGhlIGRhdGEgcG9ydCBpcyBjYWxjdWxhdGVkOgotICAgQ0ZHX0FUQV9CQVNFX0FERFIgKyBDRkdfQVRBX0lERTBfT0ZGU0VUICsgQ0ZHX0FUQV9EQVRBX09GRlNFVCArIDAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLworICAgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSICsgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQgKyBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCArIDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08gKi8KIAogLyogYWNjZXNzIHRvIHRoZSByZWdpc3RlcnMgaXMgY2FsY3VsYXRlZDoKLSAgIENGR19BVEFfQkFTRV9BRERSICsgQ0ZHX0FUQV9JREUwX09GRlNFVCArIENGR19BVEFfUkVHX09GRlNFVCArIFsxLi43XSAqLwotI2RlZmluZQlDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCisgICBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVCArIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQgKyBbMS4uN10gKi8KKyNkZWZpbmUJQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KIAogLyogYWNjZXNzIHRvIHRoZSBhbHRlcm5hdGUgcmVnaXN0ZXIgaXMgY2FsY3VsYXRlZDoKLSAgIENGR19BVEFfQkFTRV9BRERSICsgQ0ZHX0FUQV9JREUwX09GRlNFVCArIENGR19BVEFfQUxUX09GRlNFVCArIDYgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDA4CQkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KKyAgIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUiArIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUICsgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVCArIDYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAwOAkJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCiAKICNlbHNlIC8qIElERV9VU0VTX0lTQV9FTVVMQVRJT04gKi8KIAotI2RlZmluZQlDRkdfQVRBX0JBU0VfQUREUgkJMHg3OTAwMDAwMAkvKiBzdGFydCBvZiBJU0EgSU8gZW11bGF0aW9uICovCisjZGVmaW5lCUNPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkJMHg3OTAwMDAwMAkvKiBzdGFydCBvZiBJU0EgSU8gZW11bGF0aW9uICovCiAKIC8qIEhvdyBtYW55IElERSBidXNzZXMgYXJlIGF2YWlsYWJsZSAqLwotI2RlZmluZQlDRkdfSURFX01BWEJVUwkJMQorI2RlZmluZQlDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEKIAogLyogV2hhdCBJREUgcG9ydHMgYXJlIGF2YWlsYWJsZSAqLwotI2RlZmluZQlDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDFGMAkvKiBmaXJzdCBpcyBhdmFpbGFibGUgKi8KLSN1bmRlZglDRkdfQVRBX0lERTFfT0ZGU0VUCQkJCS8qIHNlY29uZCBub3QgYXZhaWxhYmxlICovCisjZGVmaW5lCUNPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDFGMAkvKiBmaXJzdCBpcyBhdmFpbGFibGUgKi8KKyN1bmRlZglDT05GSUdfU1lTX0FUQV9JREUxX09GRlNFVAkJCQkvKiBzZWNvbmQgbm90IGF2YWlsYWJsZSAqLwogCiAvKiBhY2Nlc3MgdG8gdGhlIGRhdGEgcG9ydCBpcyBjYWxjdWxhdGVkOgotICAgQ0ZHX0FUQV9CQVNFX0FERFIgKyBDRkdfQVRBX0lERTBfT0ZGU0VUICsgQ0ZHX0FUQV9EQVRBX09GRlNFVCArIDAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLworICAgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSICsgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQgKyBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCArIDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08gKi8KIAogLyogYWNjZXNzIHRvIHRoZSByZWdpc3RlcnMgaXMgY2FsY3VsYXRlZDoKLSAgIENGR19BVEFfQkFTRV9BRERSICsgQ0ZHX0FUQV9JREUwX09GRlNFVCArIENGR19BVEFfUkVHX09GRlNFVCArIFsxLi43XSAqLwotI2RlZmluZQlDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCisgICBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVCArIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQgKyBbMS4uN10gKi8KKyNkZWZpbmUJQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KIAogLyogYWNjZXNzIHRvIHRoZSBhbHRlcm5hdGUgcmVnaXN0ZXIgaXMgY2FsY3VsYXRlZDoKLSAgIENGR19BVEFfQkFTRV9BRERSICsgQ0ZHX0FUQV9JREUwX09GRlNFVCArIENGR19BVEFfQUxUX09GRlNFVCArIDYgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDNGMAkJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCisgICBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVCArIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQgKyA2ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwM0YwCQkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KIAogI2VuZGlmIC8qIElERV9VU0VTX0lTQV9FTVVMQVRJT04gKi8KIAogI2VuZGlmCiAKIC8qCi0jZGVmaW5lCUNGR19LRVlfUkVHX0JBU0VfQUREUgkweEYwMTAwMDAwCi0jZGVmaW5lCUNGR19JUl9SRUdfQkFTRV9BRERSCTB4RjAyMDAwMDAKLSNkZWZpbmUJQ0ZHX0ZQR0FfUkVHX0JBU0VfQUREUgkweEYwMzAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfS0VZX1JFR19CQVNFX0FERFIJMHhGMDEwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0lSX1JFR19CQVNFX0FERFIJMHhGMDIwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0ZQR0FfUkVHX0JBU0VfQUREUgkweEYwMzAwMDAwCiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqCi0gKiBDRkdfRkxBU0hfQkFTRSAgIC0+IHN0YXJ0IGFkZHJlc3Mgb2YgaW50ZXJuYWwgZmxhc2gKLSAqIENGR19NT05JVE9SX0JBU0UgLT4gc3RhcnQgb2YgdS1ib290CisgKiBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgICAtPiBzdGFydCBhZGRyZXNzIG9mIGludGVybmFsIGZsYXNoCisgKiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtPiBzdGFydCBvZiB1LWJvb3QKICAqLwogI2lmbmRlZiBfX0FTU0VNQkxFUl9fCiBleHRlcm4gdW5zaWduZWQgbG9uZyBvZmZzZXRPZkJpZ0ZsYXNoOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb2Zmc2V0T2ZFbnZpcm9ubWVudDsKICNlbmRpZgogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRTAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHhGRkZDMDAwMCAgICAgLyogcGxhY2VkIGxhc3QgMjU2ayAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyMjQgKiAxMDI0KQkvKiBSZXNlcnZlIDIyNCBLaUIgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBLaUIgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZFMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHhGRkZDMDAwMCAgICAgLyogcGxhY2VkIGxhc3QgMjU2ayAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjI0ICogMTAyNCkJLyogUmVzZXJ2ZSAyMjQgS2lCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IEtpQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTWlCIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uICMjIEZJWE1FOiBsb29rdXAgaW4gZGF0YXNoZWV0CiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJLyogZmxhc2ggaXMgQ0ZJIGNvbXBhdC4JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkvKiBmbGFzaCBpcyBDRkkgY29tcGF0LgkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yCSovCi0jZGVmaW5lIENGR19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2gqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfV1JJVEVfU1dBUFBFRF9EQVRBCQkvKiBzd2FwIERhdGFieXRlcyBiZXR3ZWVuIHJlYWRpbmcvd3JpdGluZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1dSSVRFX1NXQVBQRURfREFUQQkJLyogc3dhcCBEYXRhYnl0ZXMgYmV0d2VlbiByZWFkaW5nL3dyaXRpbmcgKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC00MjEsOSArNDIxLDkgQEAKIC8qCiAgKiBOQU5ELUZMQVNIIHN0dWZmCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEKICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCTEKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkJMHg3N0QwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJMHg3N0QwMDAwMAogCiAKICNkZWZpbmUgQ09ORklHX0pGRlMyX05BTkQgMQkJCS8qIGpmZnMyIG9uIG5hbmQgc3VwcG9ydCAqLwpAQCAtNDM5LDU1ICs0MzksNTUgQEAKICAqCiAgKi8KIAotI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UKKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0JMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTb21lIGluZm9ybWF0aW9ucyBhYm91dCB0aGUgaW50ZXJuYWwgU1JBTSAoT0NNPU9uIENoaXAgTWVtb3J5KQogICoKLSAqIENGR19PQ01fREFUQV9BRERSIC0+IGxvY2F0aW9uCi0gKiBDRkdfT0NNX0RBVEFfU0laRSAtPiBzaXplCisgKiBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgLT4gbG9jYXRpb24KKyAqIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAtPiBzaXplCiAqLwogCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkxCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JMQorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pOgogICogLSB3ZSBhcmUgdXNpbmcgdGhlIGludGVybmFsIDRrIFNSQU0sIHNvIHdlIGRvbid0IG5lZWQgZGF0YSBjYWNoZSBtYXBwaW5nCi0gKiAtIGludGVybmFsIFNSQU0gKE9DTT1PbiBDaGlwIE1lbW9yeSkgaXMgcGxhY2VkIHRvIENGR19PQ01fREFUQV9BRERSCisgKiAtIGludGVybmFsIFNSQU0gKE9DTT1PbiBDaGlwIE1lbW9yeSkgaXMgcGxhY2VkIHRvIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgogICogLSBTdGFja3BvaW50ZXIgd2lsbCBiZSBsb2NhdGVkIHRvCi0gKiAgIChDRkdfSU5JVF9SQU1fQUREUiYweEZGRkYwMDAwKSB8IChDRkdfSU5JVF9TUF9PRkZTRVQmMHgwMDAwRkZGRikKKyAqICAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiYweEZGRkYwMDAwKSB8IChDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUJjB4MDAwMEZGRkYpCiAgKiAgIGluIGNwdS9wcGM0eHgvc3RhcnQuUwogICovCiAKLSN1bmRlZiBDRkdfSU5JVF9EQ0FDSEVfQ1MKKyN1bmRlZiBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTCiAvKiBXaGVyZSB0aGUgaW50ZXJuYWwgU1JBTSBzdGFydHMgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUgogLyogV2hlcmUgdGhlIGludGVybmFsIFNSQU0gZW5kcyAob25seSBvZmZzZXQpICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgwRjAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MEYwMAogCiAvKgogCi0gQ0ZHX0lOSVRfUkFNX0FERFIgLS0tLS0tPiAtLS0tLS0tLS0tLS0gbG93ZXIgYWRkcmVzcworIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAtLS0tLS0+IC0tLS0tLS0tLS0tLSBsb3dlciBhZGRyZXNzCiAJCQkgICB8CSAgICAgIHwKIAkJCSAgIHwgIF4gICAgICAgfAogCQkJICAgfCAgfCAgICAgICB8CiAJCQkgICB8ICB8IFN0YWNrIHwKLSBDRkdfR0JMX0RBVEFfT0ZGU0VUIC0tLS0+IC0tLS0tLS0tLS0tLQorIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0tLS0+IC0tLS0tLS0tLS0tLQogCQkJICAgfAkgICAgICB8CiAJCQkgICB8IDY0IEJ5dGVzIHwKIAkJCSAgIHwJICAgICAgfAotIENGR19JTklUX1JBTV9FTkQgIC0tLS0tLT4gLS0tLS0tLS0tLS0tIGhpZ2hlciBhZGRyZXNzCisgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgIC0tLS0tLT4gLS0tLS0tLS0tLS0tIGhpZ2hlciBhZGRyZXNzCiAgIChvZmZzZXQgb25seSkKIAogKi8KIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgNjQKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgNjQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAvKiBJbml0aWFsIHZhbHVlIG9mIHRoZSBzdGFjayBwb2ludGVybiBpbiBpbnRlcm5hbCBTUkFNICovCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVCAgICBDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQgICAgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCkBAIC01MDQsMzEgKzUwNCwzMSBAQAogLyogVGhpcyBjaGlwIHNlbGVjdCBhY2Nlc3NlcyB0aGUgYm9vdCBkZXZpY2UgKi8KIC8qIEl0IGRlcGVuZHMgb24gYm9vdCBzZWxlY3Qgc3dpdGNoIGlmIHRoaXMgZGV2aWNlIGlzIDE2IG9yIDggYml0ICovCiAKLSN1bmRlZiBDRkdfRUJDX1BCMEFQCi0jdW5kZWYgQ0ZHX0VCQ19QQjBDUgorI3VuZGVmIENPTkZJR19TWVNfRUJDX1BCMEFQCisjdW5kZWYgQ09ORklHX1NZU19FQkNfUEIwQ1IKIAotI3VuZGVmIENGR19FQkNfUEIxQVAKLSN1bmRlZiBDRkdfRUJDX1BCMUNSCisjdW5kZWYgQ09ORklHX1NZU19FQkNfUEIxQVAKKyN1bmRlZiBDT05GSUdfU1lTX0VCQ19QQjFDUgogCi0jdW5kZWYgQ0ZHX0VCQ19QQjJBUAotI3VuZGVmIENGR19FQkNfUEIyQ1IKKyN1bmRlZiBDT05GSUdfU1lTX0VCQ19QQjJBUAorI3VuZGVmIENPTkZJR19TWVNfRUJDX1BCMkNSCiAKLSN1bmRlZiBDRkdfRUJDX1BCM0FQCi0jdW5kZWYgQ0ZHX0VCQ19QQjNDUgorI3VuZGVmIENPTkZJR19TWVNfRUJDX1BCM0FQCisjdW5kZWYgQ09ORklHX1NZU19FQkNfUEIzQ1IKIAotI3VuZGVmIENGR19FQkNfUEI0QVAKLSN1bmRlZiBDRkdfRUJDX1BCNENSCisjdW5kZWYgQ09ORklHX1NZU19FQkNfUEI0QVAKKyN1bmRlZiBDT05GSUdfU1lTX0VCQ19QQjRDUgogCi0jdW5kZWYgQ0ZHX0VCQ19QQjVBUAotI3VuZGVmIENGR19FQkNfUEI1Q1IKKyN1bmRlZiBDT05GSUdfU1lTX0VCQ19QQjVBUAorI3VuZGVmIENPTkZJR19TWVNfRUJDX1BCNUNSCiAKLSN1bmRlZiBDRkdfRUJDX1BCNkFQCi0jdW5kZWYgQ0ZHX0VCQ19QQjZDUgorI3VuZGVmIENPTkZJR19TWVNfRUJDX1BCNkFQCisjdW5kZWYgQ09ORklHX1NZU19FQkNfUEI2Q1IKIAotI3VuZGVmIENGR19FQkNfUEI3QVAKLSN1bmRlZiBDRkdfRUJDX1BCN0NSCisjdW5kZWYgQ09ORklHX1NZU19FQkNfUEI3QVAKKyN1bmRlZiBDT05GSUdfU1lTX0VCQ19QQjdDUgogCi0jZGVmaW5lIENGR19FQkNfQ0ZHICAgIDB4Yjg0ZWYwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfQ0ZHICAgIDB4Yjg0ZWYwMDAKIAogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzAJLyogdXNlIHRoZSBzdGFuZGFyZCBTRFJBTSBpbml0aWFsaXphdGlvbiAqLwogI3VuZGVmIENPTkZJR19TUERfRUVQUk9NCkBAIC01NDMsMTUgKzU0MywxNSBAQAogICogRXh0ZXJuYWwgcGVyaXBoZXJhbCBiYXNlIGFkZHJlc3MKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2RlZmluZSBDRkdfSVNBX01FTV9CQVNFX0FERFJFU1MgMHg3ODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9NRU1fQkFTRV9BRERSRVNTIDB4NzgwMDAwMDAKIC8qCiAgRGllIEdyYWZpay1UcmVpYmVyIGdyZWlmZW4g/GJlciBkaWUgQWRyZXNzZSBpbiBkaWVzZW0gTWFjcm8gYXVmIGRlbiBDaGlwIHp1LgogIERhcyBmdW5rdGlvbmllcnQgYmVpIGRlcmVuIEthcnRlbiwgd2VpbCBzaWUgZWluZSBQQ0ktQnJpZGdlIGJlbnV0emVuLCBkaWUKICBkYXMgZ2xlaWNoZSBNYXBwaW5nIGR1cmNoZvxocmVuIGthbm4sIHdpZSBkZXIgU0M1MjAgKGFsc28gQXVmdGVpbGVuIHZvbiBJTy1adWdyaWZmZW4KICBhdWYgSVNBLSB1bmQgUENJLVp5a2xlbikKICAqLwotI2RlZmluZSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyAgMHhFODAwMDAwMAotLyojZGVmaW5lIENGR19JU0FfSU9fQkFTRV9BRERSRVNTICAweDc5MDAwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyAgMHhFODAwMDAwMAorLyojZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyAgMHg3OTAwMDAwMCAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBWaWRlbyBzdXBwb3J0CmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2M1MjBfY2RwLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc2M1MjBfY2RwLmgKaW5kZXggMDA0MmUzMC4uYmY4NjkzZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3NjNTIwX2NkcC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zYzUyMF9jZHAuaApAQCAtMzgsMjQgKzM4LDI0IEBACiAjZGVmaW5lIENPTkZJR19TQzUyMAkJMQkvKiBJbmNsdWRlIHN1cHBvcnQgZm9yIEFNRCBTQzUyMCAqLwogI2RlZmluZSBDT05GSUdfQUxJMTUyWAkJMQkvKiBJbmNsdWRlIHN1cHBvcnQgZm9yIEFsaSAxNTJ4IFNJTyAqLwogCi0jZGVmaW5lIENGR19TRFJBTV9QUkVDSEFSR0VfREVMQVkgNiAgICAgLyogNlQgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1JFRlJFU0hfUkFURSAgICA3OCAgICAvKiA3Ljh1UyAoY2hvaWNlcyBhcmUgNy44LCAxNS42LCAzMS4yIG9yIDYyLjV1UykgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1JBU19DQVNfREVMQVkgICAzICAgICAvKiAzVCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1BSRUNIQVJHRV9ERUxBWSA2ICAgICAvKiA2VCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1JFRlJFU0hfUkFURSAgICA3OCAgICAvKiA3Ljh1UyAoY2hvaWNlcyBhcmUgNy44LCAxNS42LCAzMS4yIG9yIDYyLjV1UykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9SQVNfQ0FTX0RFTEFZICAgMyAgICAgLyogM1QgKi8KIAogLyogZGVmaW5lIGF0IG1vc3Qgb25lIG9mIHRoZXNlICovCi0jdW5kZWYgQ0ZHX1NEUkFNX0NBU19MQVRFTkNZXzJUCi0jZGVmaW5lIENGR19TRFJBTV9DQVNfTEFURU5DWV8zVAorI3VuZGVmIENPTkZJR19TWVNfU0RSQU1fQ0FTX0xBVEVOQ1lfMlQKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DQVNfTEFURU5DWV8zVAogCi0jZGVmaW5lIENGR19TQzUyMF9ISUdIX1NQRUVEICAgIDAgICAgICAgLyogMTAwIG9yIDEzM01IeiAqLwotI2RlZmluZSBDRkdfUkVTRVRfR0VORVJJQyAgICAgICAxICAgICAgIC8qIHVzZSB0cmlwcGxlLWZhdWx0IHRvIHJlc2V0IGNwdSAqLwotI3VuZGVmICBDRkdfUkVTRVRfU0M1MjAgICAgICAgICAgICAgICAgIC8qIHVzZSBTQzUyMCBNTUNSJ3MgdG8gcmVzZXQgY3B1ICovCi0jdW5kZWYgIENGR19USU1FUl9TQzUyMCAgICAgICAgICAgICAgICAgLyogdXNlIFNDNTIwIHN3dGltZXJzICovCi0jZGVmaW5lIENGR19USU1FUl9HRU5FUklDICAgICAgIDEgICAgICAgLyogdXNlIHRoZSBpODI1NCBQSVQgdGltZXJzICovCi0jdW5kZWYgIENGR19USU1FUl9UU0MgICAgICAgICAgICAgICAgICAgLyogdXNlIHRoZSBQZW50aXVtIFRTQyB0aW1lcnMgKi8KLSNkZWZpbmUgIENGR19VU0VfU0lPX1VBUlQgICAgICAgMCAgICAgICAvKiBwcmVmZXIgdGhlIHVhcnRzIG9uIHRoZSBTSU8gdG8gdGhvc2UKKyNkZWZpbmUgQ09ORklHX1NZU19TQzUyMF9ISUdIX1NQRUVEICAgIDAgICAgICAgLyogMTAwIG9yIDEzM01IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0dFTkVSSUMgICAgICAgMSAgICAgICAvKiB1c2UgdHJpcHBsZS1mYXVsdCB0byByZXNldCBjcHUgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19SRVNFVF9TQzUyMCAgICAgICAgICAgICAgICAgLyogdXNlIFNDNTIwIE1NQ1IncyB0byByZXNldCBjcHUgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19USU1FUl9TQzUyMCAgICAgICAgICAgICAgICAgLyogdXNlIFNDNTIwIHN3dGltZXJzICovCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJfR0VORVJJQyAgICAgICAxICAgICAgIC8qIHVzZSB0aGUgaTgyNTQgUElUIHRpbWVycyAqLworI3VuZGVmICBDT05GSUdfU1lTX1RJTUVSX1RTQyAgICAgICAgICAgICAgICAgICAvKiB1c2UgdGhlIFBlbnRpdW0gVFNDIHRpbWVycyAqLworI2RlZmluZSAgQ09ORklHX1NZU19VU0VfU0lPX1VBUlQgICAgICAgMCAgICAgICAvKiBwcmVmZXIgdGhlIHVhcnRzIG9uIHRoZSBTSU8gdG8gdGhvc2UKIAkJCQkJICogaW4gdGhlIFNDNTIwIG9uIHRoZSBDRFAgKi8KIAotI2RlZmluZSBDRkdfU1RBQ0tfU0laRSAgICAgICAgICAweDgwMDAgIC8qIFNpemUgb2YgYm9vdGxvYWRlciBzdGFjayAqLworI2RlZmluZSBDT05GSUdfU1lTX1NUQUNLX1NJWkUgICAgICAgICAgMHg4MDAwICAvKiBTaXplIG9mIGJvb3Rsb2FkZXIgc3RhY2sgKi8KIAogI2RlZmluZSBDT05GSUdfU0hPV19CT09UX1BST0dSRVNTIDEKICNkZWZpbmUgQ09ORklHX0xBU1RfU1RBR0VfSU5JVCAgICAxCkBAIC0xMDMsMjQgKzEwMywyNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJib290ID4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJib290ID4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMTAwMDAwMAkvKiAxIC4uLiAxNiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMTAwMDAwMAkvKiAxIC4uLiAxNiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAyNAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMWtIeiAqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAyNAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMWtIeiAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBoeXNpY2FsIE1lbW9yeSBNYXAKQEAgLTEzMCwxMiArMTMwLDEyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkzCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTMJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjZGVmaW5lIENPTkZJR19TUElfRUVQUk9NICAgICAgLyogU3VwcG9ydCBmb3IgU1BJIEVFUFJPTXMgKEFUMjUxMjgpICovCiAjZGVmaW5lIENPTkZJR19NV19FRVBST00gICAgICAgLyogU3VwcG9ydCBmb3IgTWljcm9XaXJlIEVFUFJPTXMgKEFUOTNMQzQ2KSAqLwpAQCAtMTgxLDE0ICsxODEsMTQgQEAKICpTQVRBL05hdGl2ZSBTdHVmZgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogI2lmbmRlZiBHUlVTU19URVNUSU5HCi0jZGVmaW5lIENGR19TQVRBX01BWEJVUyAgICAgICAgIDIgICAgICAgLypNYXggU2F0YSBidXNlcyBzdXBwb3J0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1NBVEFfREVWU19QRVJfQlVTICAgMiAgICAgIC8qTWF4IG5vLiBvZiBkZXZpY2VzIHBlciBidXMvcG9ydCAqLwotI2RlZmluZSBDRkdfU0FUQV9NQVhfREVWSUNFICAgICAoQ0ZHX1NBVEFfTUFYQlVTKiBDRkdfU0FUQV9ERVZTX1BFUl9CVVMpCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQV9NQVhCVVMgICAgICAgICAyICAgICAgIC8qTWF4IFNhdGEgYnVzZXMgc3VwcG9ydGVkICovCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQV9ERVZTX1BFUl9CVVMgICAyICAgICAgLypNYXggbm8uIG9mIGRldmljZXMgcGVyIGJ1cy9wb3J0ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQV9NQVhfREVWSUNFICAgICAoQ09ORklHX1NZU19TQVRBX01BWEJVUyogQ09ORklHX1NZU19TQVRBX0RFVlNfUEVSX0JVUykKICNkZWZpbmUgQ09ORklHX0FUQV9QSUlYCQkxICAgICAgIC8qU3VwcG9ydHMgYXRhX3BpaXggZHJpdmVyICovCiAjZWxzZQotI3VuZGVmIENGR19TQVRBX01BWEJVUwotI3VuZGVmIENGR19TQVRBX0RFVlNfUEVSX0JVUwotI3VuZGVmIENGR19TQVRBX01BWF9ERVZJQ0UKKyN1bmRlZiBDT05GSUdfU1lTX1NBVEFfTUFYQlVTCisjdW5kZWYgQ09ORklHX1NZU19TQVRBX0RFVlNfUEVSX0JVUworI3VuZGVmIENPTkZJR19TWVNfU0FUQV9NQVhfREVWSUNFCiAjdW5kZWYgQ09ORklHX0FUQV9QSUlYCiAjZW5kaWYKIApAQCAtMjA5LDcgKzIwOSw3IEBACiAjdW5kZWYgQ09ORklHX1ZJREVPCiAjZW5kaWYKICNkZWZpbmUgQ09ORklHX0k4MDQyX0tCRAotI2RlZmluZSBDRkdfSVNBX0lPIDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU8gMAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBSVEMKQEAgLTIyNSwxMCArMjI1LDEwIEBACiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBjaSBwbHVnLWFuZC1wbGF5ICovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCiAKLSNkZWZpbmUJQ0ZHX0ZJUlNUX1BDSV9JUlEgICAxMAotI2RlZmluZQlDRkdfU0VDT05EX1BDSV9JUlEgIDkKLSNkZWZpbmUgQ0ZHX1RISVJEX1BDSV9JUlEgICAxMQotI2RlZmluZQlDRkdfRk9SVEhfUENJX0lSUSAgIDE1CisjZGVmaW5lCUNPTkZJR19TWVNfRklSU1RfUENJX0lSUSAgIDEwCisjZGVmaW5lCUNPTkZJR19TWVNfU0VDT05EX1BDSV9JUlEgIDkKKyNkZWZpbmUgQ09ORklHX1NZU19USElSRF9QQ0lfSVJRICAgMTEKKyNkZWZpbmUJQ09ORklHX1NZU19GT1JUSF9QQ0lfSVJRICAgMTUKICNlbHNlCiAjdW5kZWYgQ09ORklHX1BDSQogI3VuZGVmIENPTkZJR19QQ0lfUE5QCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2M1MjBfc3B1bmsuaCBiL2luY2x1ZGUvY29uZmlncy9zYzUyMF9zcHVuay5oCmluZGV4IDRlNTc5OGMuLmZiZGJlZGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zYzUyMF9zcHVuay5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zYzUyMF9zcHVuay5oCkBAIC0zNiwyMiArMzYsMjIgQEAKICNkZWZpbmUgQ09ORklHX1g4NgkJMQkvKiBUaGlzIGlzIGEgWDg2IENQVQkJKi8KICNkZWZpbmUgQ09ORklHX1NDNTIwCQkxCS8qIEluY2x1ZGUgc3VwcG9ydCBmb3IgQU1EIFNDNTIwICovCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1BSRUNIQVJHRV9ERUxBWSA2ICAgICAvKiA2VCAqLwotI2RlZmluZSBDRkdfU0RSQU1fUkVGUkVTSF9SQVRFICAgIDc4ICAgIC8qIDcuOHVTIChjaG9pY2VzIGFyZSA3LjgsIDE1LjYsIDMxLjIgb3IgNjIuNXVTKSAqLwotI2RlZmluZSBDRkdfU0RSQU1fUkFTX0NBU19ERUxBWSAgIDMgICAgIC8qIDNUICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fUFJFQ0hBUkdFX0RFTEFZIDYgICAgIC8qIDZUICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fUkVGUkVTSF9SQVRFICAgIDc4ICAgIC8qIDcuOHVTIChjaG9pY2VzIGFyZSA3LjgsIDE1LjYsIDMxLjIgb3IgNjIuNXVTKSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1JBU19DQVNfREVMQVkgICAzICAgICAvKiAzVCAqLwogCiAvKiBkZWZpbmUgYXQgbW9zdCBvbmUgb2YgdGhlc2UgKi8KLSN1bmRlZiBDRkdfU0RSQU1fQ0FTX0xBVEVOQ1lfMlQKLSNkZWZpbmUgQ0ZHX1NEUkFNX0NBU19MQVRFTkNZXzNUCisjdW5kZWYgQ09ORklHX1NZU19TRFJBTV9DQVNfTEFURU5DWV8yVAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NBU19MQVRFTkNZXzNUCiAKLSNkZWZpbmUgQ0ZHX1NDNTIwX0hJR0hfU1BFRUQgICAgMCAgICAgICAvKiAxMDAgb3IgMTMzTUh6ICovCi0jZGVmaW5lIENGR19SRVNFVF9HRU5FUklDICAgICAgIDEgICAgICAgLyogdXNlIHRyaXBwbGUtZmF1bHQgdG8gcmVzZXQgY3B1ICovCi0jdW5kZWYgIENGR19SRVNFVF9TQzUyMCAgICAgICAgICAgICAgICAgLyogdXNlIFNDNTIwIE1NQ1IncyB0byByZXNldCBjcHUgKi8KLSN1bmRlZiAgQ0ZHX1RJTUVSX1NDNTIwICAgICAgICAgICAgICAgICAvKiB1c2UgU0M1MjAgc3d0aW1lcnMgKi8KLSNkZWZpbmUgQ0ZHX1RJTUVSX0dFTkVSSUMgICAgICAgMSAgICAgICAvKiB1c2UgdGhlIGk4MjU0IFBJVCB0aW1lcnMgKi8KLSN1bmRlZiAgQ0ZHX1RJTUVSX1RTQyAgICAgICAgICAgICAgICAgICAvKiB1c2UgdGhlIFBlbnRpdW0gVFNDIHRpbWVycyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NDNTIwX0hJR0hfU1BFRUQgICAgMCAgICAgICAvKiAxMDAgb3IgMTMzTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfR0VORVJJQyAgICAgICAxICAgICAgIC8qIHVzZSB0cmlwcGxlLWZhdWx0IHRvIHJlc2V0IGNwdSAqLworI3VuZGVmICBDT05GSUdfU1lTX1JFU0VUX1NDNTIwICAgICAgICAgICAgICAgICAvKiB1c2UgU0M1MjAgTU1DUidzIHRvIHJlc2V0IGNwdSAqLworI3VuZGVmICBDT05GSUdfU1lTX1RJTUVSX1NDNTIwICAgICAgICAgICAgICAgICAvKiB1c2UgU0M1MjAgc3d0aW1lcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUl9HRU5FUklDICAgICAgIDEgICAgICAgLyogdXNlIHRoZSBpODI1NCBQSVQgdGltZXJzICovCisjdW5kZWYgIENPTkZJR19TWVNfVElNRVJfVFNDICAgICAgICAgICAgICAgICAgIC8qIHVzZSB0aGUgUGVudGl1bSBUU0MgdGltZXJzICovCiAKLSNkZWZpbmUgQ0ZHX1NUQUNLX1NJWkUgICAgICAgICAgMHg4MDAwICAvKiBTaXplIG9mIGJvb3Rsb2FkZXIgc3RhY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TVEFDS19TSVpFICAgICAgICAgIDB4ODAwMCAgLyogU2l6ZSBvZiBib290bG9hZGVyIHN0YWNrICovCiAKICNkZWZpbmUgQ09ORklHX1NIT1dfQk9PVF9QUk9HUkVTUyAxCiAjZGVmaW5lIENPTkZJR19MQVNUX1NUQUdFX0lOSVQgICAgMQpAQCAtMTA0LDI0ICsxMDQsMjQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiYm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiYm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDEwMDAwMDAJLyogMSAuLi4gMTYgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDEwMDAwMDAJLyogMSAuLi4gMTYgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMjQJCS8qIGluY3JlbWVudGVyIGZyZXE6IDFrSHogKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMjQJCS8qIGluY3JlbWVudGVyIGZyZXE6IDFrSHogKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTEzNCwxMiArMTM0LDEyIEBACiAgKi8KIAogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAKICNkZWZpbmUgQ09ORklHX1NQSV9FRVBST00gICAgICAgLyogU1BJIEVFUFJPTXMgc3VjaCBhcyBBVDI1MDEwIG9yIEFUMjU2NDAgKi8KQEAgLTE5MiwzMSArMTkyLDMxIEBACiAgKi8KICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSSAgICAgICAgLyogTXVsdGkgZXRoZXJuZXQgY2FyZHMgc3VwcG9ydCAqLwogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOCAgICAgICAgICAgICAgIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIElERS9BVEEgc3R1ZmYKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkyICAgLyogbWF4LiAyIElERSBidXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjIpIC8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIgICAgICAgMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDFmMAkvKiBpZGUwIG9mZnNldCAqLwotI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUCTB4ZTAwMAkvKiBpZGUxIG9mZnNldCAqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTAJLyogZGF0YSByZWcgb2Zmc2V0CSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkwCS8qIHJlZyBvZmZzZXQgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MjAwCS8qIGFsdGVybmF0ZSByZWdpc3RlciBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkyICAgLyogbWF4LiAyIElERSBidXNzZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCShDT05GSUdfU1lTX0lERV9NQVhCVVMqMikgLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAxZjAJLyogaWRlMCBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQJMHhlMDAwCS8qIGlkZTEgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTAJLyogZGF0YSByZWcgb2Zmc2V0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMAkvKiByZWcgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgyMDAJLyogYWx0ZXJuYXRlIHJlZ2lzdGVyIG9mZnNldCAqLwogCi0jZGVmaW5lIENGR19GSVJTVF9QQ01DSUFfQlVTICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19GSVJTVF9QQ01DSUFfQlVTICAgIDEKIAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkCSovCiAjdW5kZWYgIENPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgdW5zdXBwb3J0ZWQuLi4JKi8KICN1bmRlZiAgQ09ORklHX0lERV9SRVNFVF9ST1VUSU5FCS8qIG5vIHNwZWNpYWwgcmVzZXQgZnVuY3Rpb24gKi8KIAogI2RlZmluZSBDT05GSUdfSURFX1RJX0NBUkRCVVMKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9DSVNfV0lOICAgICAgICAgIDB4MjdmMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9DSVNfV0lOX1NJWkUgICAgIDB4MDAxMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19XSU4gICAgICAgICAgIDB4ZTAwMAotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1dJTl9TSVpFICAgICAgMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQ0lTX1dJTiAgICAgICAgICAweDI3ZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0NJU19XSU5fU0laRSAgICAgMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19XSU4gICAgICAgICAgIDB4ZTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19XSU5fU0laRSAgICAgIDE2CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIERJU0sgUGFydGl0aW9uIHN1cHBvcnQKQEAgLTIzOSw5ICsyMzksOSBAQAogI2RlZmluZSBDT05GSUdfUENJX1BOUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwY2kgcGx1Zy1hbmQtcGxheSAqLwogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwogCi0jZGVmaW5lCUNGR19GSVJTVF9QQ0lfSVJRICAgOQotI2RlZmluZQlDRkdfU0VDT05EX1BDSV9JUlEgIDEwCi0jZGVmaW5lCUNGR19USElSRF9QQ0lfSVJRICAgMTEKLSNkZWZpbmUJQ0ZHX0ZPUlRIX1BDSV9JUlEgICAxMgorI2RlZmluZQlDT05GSUdfU1lTX0ZJUlNUX1BDSV9JUlEgICA5CisjZGVmaW5lCUNPTkZJR19TWVNfU0VDT05EX1BDSV9JUlEgIDEwCisjZGVmaW5lCUNPTkZJR19TWVNfVEhJUkRfUENJX0lSUSAgIDExCisjZGVmaW5lCUNPTkZJR19TWVNfRk9SVEhfUENJX0lSUSAgIDEyCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2NiOTMyOC5oIGIvaW5jbHVkZS9jb25maWdzL3NjYjkzMjguaAppbmRleCAxMjc5OTU1Li41OTcxZGY3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2NiOTMyOC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zY2I5MzI4LmgKQEAgLTc2LDIyICs3NiwyMiBAQAogLyoKICAqIEdlbmVyYWwgb3B0aW9ucyBmb3IgdS1ib290LiBNb2RpZnkgdG8gc2F2ZSBtZW1vcnkgZm9vdCBwcmludAogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkgICAgICAvKiB1bmRlZiBzYXZlcyBtZW1vcnkgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJzY2I5MzI4PiAiCSAgICAgIC8qIHByb21wdCBzdHJpbmcJICAgICAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCSAgICAgIC8qIGNvbnNvbGUgSS9PIGJ1ZmZlciAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIHByaW50IGJ1ZmZlciBzaXplICAgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkgICAgICAvKiBtYXggY29tbWFuZCBhcmdzICAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkgICAgICAvKiBib290IGFyZ3MgYnVmIHNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJICAgICAgLyogdW5kZWYgc2F2ZXMgbWVtb3J5ICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJInNjYjkzMjg+ICIJICAgICAgLyogcHJvbXB0IHN0cmluZwkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCSAgICAgIC8qIGNvbnNvbGUgSS9PIGJ1ZmZlciAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIHByaW50IGJ1ZmZlciBzaXplICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJICAgICAgLyogbWF4IGNvbW1hbmQgYXJncyAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkgICAgICAvKiBib290IGFyZ3MgYnVmIHNpemUgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwODEwMDAwMAkgICAgICAvKiBtZW10ZXN0IHRlc3QgYXJlYSAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwOEYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwODEwMDAwMAkgICAgICAvKiBtZW10ZXN0IHRlc3QgYXJlYSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDhGMDAwMDAKIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkJICAgICAvKiB1c2UgSFogZm9yIGZyZXEuIGRpc3BsYXkgICAgICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkJICAgICAvKiB1c2UgSFogZm9yIGZyZXEuIGRpc3BsYXkgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMzY4NjQwMAkgICAgIC8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVECQkweDE0MQkgICAgIC8qIGNvcmUgY2xvY2sgLSByZWdpc3RlciB2YWx1ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTM2ODY0MDAJICAgICAvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQJCTB4MTQxCSAgICAgLyogY29yZSBjbG9jayAtIHJlZ2lzdGVyIHZhbHVlICAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUgMTE1MjAwCiAvKgogICogRGVmaW5pdGlvbnMgcmVsYXRlZCB0byBwYXNzaW5nIGFyZ3VtZW50cyB0byBrZXJuZWwuCkBAIC0xMDUsMTAgKzEwNSwxMCBAQAogLyoKICAqIE1hbGxvYyBwb29sIG5lZWQgdG8gaG9zdCBlbnYgKyAxMjggS2IgcmVzZXJ2ZSBmb3Igb3RoZXIgYWxsb2NhdGlvbnMuCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAoMTI4PDwxMCkgKQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAoMTI4PDwxMCkgKQogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJKDEyMDw8MTApICAgICAgLyogc3RhY2sgc2l6ZQkJICAgICAqLwogCkBAIC0xNTIsOCArMTUyLDggQEAKIAogLyogMzJNQiAqLwogI2lmZGVmIFNDQjkzMjhfRkxBU0hfMzJNCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEJLyogRkxBU0ggYmFua3MgY291bnQgKG5vdCBjaGlwIGNvdW50KSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJMjU2CS8qIG51bWJlciBvZiBzZWN0b3IgaW4gRkxBU0ggYmFuayAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQkvKiBGTEFTSCBiYW5rcyBjb3VudCAobm90IGNoaXAgY291bnQpKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJMjU2CS8qIG51bWJlciBvZiBzZWN0b3IgaW4gRkxBU0ggYmFuayAgICAqLwogI2RlZmluZSBTQ0I5MzI4X0ZMQVNIX0JVU19XSURUSAkJMgkvKiB3ZSB1c2UgMTYgYml0IEZMQVNIIG1lbW9yeS4uLiAgICAgKi8KICNkZWZpbmUgU0NCOTMyOF9GTEFTSF9JTlRFUkxFQVZFCTEJLyogLi4uIG1hZGUgb2YgMSBjaGlwCQkgICAgICovCiAjZGVmaW5lIFNDQjkzMjhfRkxBU0hfQkFOS19TSVpFCSAweDAyMDAwMDAwCS8qIHNpemUgb2Ygb25lIGZsYXNoIGJhbmsJICAgICAqLwpAQCAtMTYzLDggKzE2Myw4IEBACiAjZWxzZQogCiAvKiAxNk1CICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEJLyogRkxBU0ggYmFua3MgY291bnQgKG5vdCBjaGlwIGNvdW50KSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJMTI4CS8qIG51bWJlciBvZiBzZWN0b3IgaW4gRkxBU0ggYmFuayAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQkvKiBGTEFTSCBiYW5rcyBjb3VudCAobm90IGNoaXAgY291bnQpKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJMTI4CS8qIG51bWJlciBvZiBzZWN0b3IgaW4gRkxBU0ggYmFuayAgICAqLwogI2RlZmluZSBTQ0I5MzI4X0ZMQVNIX0JVU19XSURUSAkJMgkvKiB3ZSB1c2UgMTYgYml0IEZMQVNIIG1lbW9yeS4uLiAgICAgKi8KICNkZWZpbmUgU0NCOTMyOF9GTEFTSF9JTlRFUkxFQVZFCTEJLyogLi4uIG1hZGUgb2YgMSBjaGlwCQkgICAgICovCiAjZGVmaW5lIFNDQjkzMjhfRkxBU0hfQkFOS19TSVpFCSAweDAxMDAwMDAwCS8qIHNpemUgb2Ygb25lIGZsYXNoIGJhbmsJICAgICAqLwpAQCAtMTc3LDEyICsxNzcsMTIgQEAKICAgIGlzIG5vdCBzbyBjbGVhciB0byBtZS4gSW4gb3RoZXIgd29yZHMgd2UgY2FuIHByb3ZpZGUgbW9yZSBpbmZvcm1hdGlvbnMKICAgIHRvIHVzZXIsIGJ1dCB0aGlzIGV4cGVjdHMgbW9yZSBjb21wbGV4IGZsYXNoIGhhbmRsaW5nIHdlIGRvIG5vdCBwcm92aWRlCiAgICBub3cuKi8KLSN1bmRlZglDRkdfRkxBU0hfQ0ZJCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DRkkKIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMipDRkdfSFopICAgIC8qIHRpbWVvdXQgZm9yIEVyYXNlIG9wZXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMipDRkdfSFopICAgIC8qIHRpbWVvdXQgZm9yIFdyaXRlIG9wZXJhdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgICAgLyogdGltZW91dCBmb3IgRXJhc2Ugb3BlcmF0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMipDT05GSUdfU1lTX0haKSAgICAvKiB0aW1lb3V0IGZvciBXcml0ZSBvcGVyYXRpb24gKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJU0NCOTMyOF9GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJU0NCOTMyOF9GTEFTSF9CQVNFCiAKIC8qCiAgKiBUaGlzIGlzIHNldHRpbmcgZm9yIEpGRlMyIHN1cHBvcnQgaW4gdS1ib290LgpAQCAtMTkxLDkgKzE5MSw5IEBACiAgKiBmb290cHJpbnQuCiAgKiBOT1RFOiBFbmFibGUgQ09ORklHX0NNRF9KRkZTMiBmb3IgSkZGUzIgc3VwcG9ydC4KICAqLwotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfQkFOSwkJMAotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfU0VDVE9SCQk1Ci0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfU0VDVE9SCQk1CisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfTlVNX0JBTktTCQkxCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR1cC4gRGVmaW5pdGlvbnMgb2YgbW9uaXRvciBsb2NhdGlvbiBhbmQgc2l6ZSB3aXRoCkBAIC0yMTAsMTEgKzIxMCwxMSBAQAogLyogU2V0dXAgZm9yIFBBMjMgd2hpY2ggaXMgUmVzZXQgRGVmYXVsdCBQQTIzIGJ1dCBoYXMgdG8gYmVjb21lCiAgICBDUzUgKi8KIAotI2RlZmluZSBDRkdfR1BSX0FfVkFMCQkweDAwODAwMDAwCi0jZGVmaW5lIENGR19HSVVTX0FfVkFMCQkweDAwNDNmZmZlCisjZGVmaW5lIENPTkZJR19TWVNfR1BSX0FfVkFMCQkweDAwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0lVU19BX1ZBTAkJMHgwMDQzZmZmZQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MjAwMDAJCS8qIDEyOGIgKCAxIGZsYXNoIHNlY3RvciApICAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MjAwMDAJCS8qIDEyOGIgKCAxIGZsYXNoIHNlY3RvciApICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkweDEwMDIwMDAwCS8qIGFic29sdXRlIGFkZHJlc3MgZm9yIG5vdyAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAwCkBAIC0yMzEsMzAgKzIzMSwzMCBAQAogICogICB8CSBPRUEgICB8ICAgT0VOCSB8ICAgV0VBICAgfCAgIFdFTiAgIHwJIENTQSAgIHxFQkN8IERTWiAgfCAwfFNQfDB8V1B8IDAgMHxQQXxDU0VOfAogICovCiAKLSNkZWZpbmUgQ0ZHX0NTMFVfVkFMIDB4MDAwRjIwMDAKLSNkZWZpbmUgQ0ZHX0NTMExfVkFMIDB4MTExMTBkMDEKLSNkZWZpbmUgQ0ZHX0NTMVVfVkFMIDB4MDAwRjBhMDAKLSNkZWZpbmUgQ0ZHX0NTMUxfVkFMIDB4MTExMTA2MDEKLSNkZWZpbmUgQ0ZHX0NTMlVfVkFMIDB4MAotI2RlZmluZSBDRkdfQ1MyTF9WQUwgMHgwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwVV9WQUwgMHgwMDBGMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMExfVkFMIDB4MTExMTBkMDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFVX1ZBTCAweDAwMEYwYTAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxTF9WQUwgMHgxMTExMDYwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTMlVfVkFMIDB4MAorI2RlZmluZSBDT05GSUdfU1lTX0NTMkxfVkFMIDB4MAogCi0jZGVmaW5lIENGR19DUzNVX1ZBTCAweDAwMEZGRkZGCi0jZGVmaW5lIENGR19DUzNMX1ZBTCAweDAwMDAwMzAzCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzVV9WQUwgMHgwMDBGRkZGRgorI2RlZmluZSBDT05GSUdfU1lTX0NTM0xfVkFMIDB4MDAwMDAzMDMKIAotI2RlZmluZSBDRkdfQ1M0VV9WQUwgMHgwMDBGMGEwMAotI2RlZmluZSBDRkdfQ1M0TF9WQUwgMHgxMTExMDMwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTNFVfVkFMIDB4MDAwRjBhMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzRMX1ZBTCAweDExMTEwMzAxCiAKIC8qIENOQyA9PSAzIHRvbyBsb25nCi0gICAjZGVmaW5lIENGR19DUzVVX1ZBTCAweDAwMDBDMjEwICovCisgICAjZGVmaW5lIENPTkZJR19TWVNfQ1M1VV9WQUwgMHgwMDAwQzIxMCAqLwogCi0vKiAjZGVmaW5lIENGR19DUzVVX1ZBTCAweDAwMDA4NDAwCisvKiAjZGVmaW5lIENPTkZJR19TWVNfQ1M1VV9WQUwgMHgwMDAwODQwMAogICAgbWFsIGxhZW5nZXIgbWFoY2VuLCBvYiBkZXIgYmVpIDE1ME1IeiBsYWVuZ2VyIGhhZWx0IGRhbm4gdW5kCiAgICBrYXVtIGxhbmdzYW1lciBpc3QgKi8KLS8qICNkZWZpbmUgQ0ZHX0NTNVVfVkFMIDB4MDAwMDk0MDAKLSAgICNkZWZpbmUgQ0ZHX0NTNUxfVkFMIDB4MTEwMTBEMDMgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19DUzVVX1ZBTCAweDAwMDA5NDAwCisgICAjZGVmaW5lIENPTkZJR19TWVNfQ1M1TF9WQUwgMHgxMTAxMEQwMyAqLwogCi0jZGVmaW5lIENGR19DUzVVX1ZBTCAweDAwMDA4NDAwCi0jZGVmaW5lIENGR19DUzVMX1ZBTCAweDAwMDAwRDAzCisjZGVmaW5lIENPTkZJR19TWVNfQ1M1VV9WQUwgMHgwMDAwODQwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTNUxfVkFMIDB4MDAwMDBEMDMKIAogI2RlZmluZSBDT05GSUdfRFJJVkVSX0RNOTAwMAkJMQogI2RlZmluZSBDT05GSUdfRE05MDAwX0JBU0UJCTB4MTYwMDAwMDAKQEAgLTI4MSwyNCArMjgxLDI0IEBACiAjZGVmaW5lIENQVTIwMAogCiAjaWZkZWYgQ1BVMjAwCi0jZGVmaW5lIENGR19NUENUTDBfVkFMIDB4MDAzMjE0MzEKKyNkZWZpbmUgQ09ORklHX1NZU19NUENUTDBfVkFMIDB4MDAzMjE0MzEKICNlbHNlCi0jZGVmaW5lIENGR19NUENUTDBfVkFMIDB4MDQwZTIwMGUKKyNkZWZpbmUgQ09ORklHX1NZU19NUENUTDBfVkFMIDB4MDQwZTIwMGUKICNlbmRpZgogCiAvKiAjZGVmaW5lIEJVUzY0ICovCiAjZGVmaW5lIEJVUzcyCiAKICNpZmRlZiBCVVM3MgotI2RlZmluZSBDRkdfU1BDVEwwX1ZBTCAweDA0MDAyNDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1BDVEwwX1ZBTCAweDA0MDAyNDAwCiAjZW5kaWYKIAogI2lmZGVmIEJVUzk2Ci0jZGVmaW5lIENGR19TUENUTDBfVkFMIDB4MDQwMDE4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19TUENUTDBfVkFMIDB4MDQwMDE4MDAKICNlbmRpZgogCiAjaWZkZWYgQlVTNjQKLSNkZWZpbmUgQ0ZHX1NQQ1RMMF9WQUwgMHgwODAwMTgwMAorI2RlZmluZSBDT05GSUdfU1lTX1NQQ1RMMF9WQUwgMHgwODAwMTgwMAogI2VuZGlmCiAKIC8qIERhcyBpc3QgZGVyIEJDTEsgRGl2aWRlciwgZGVyIGF1cyBkZXIgU3lzdGVtIFBMTApAQCAtMzEyLDExICszMTIsMTEgQEAKICAgIEJpdCAyMTogTVBMTCBSZXN0YXJ0ICovCiAKICNpZmRlZiBCVVM2NAotI2RlZmluZSBDRkdfQ1NDUl9WQUwgMHgyZjAzMDAwMworI2RlZmluZSBDT05GSUdfU1lTX0NTQ1JfVkFMIDB4MmYwMzAwMDMKICNlbmRpZgogCiAjaWZkZWYgQlVTNzIKLSNkZWZpbmUgQ0ZHX0NTQ1JfVkFMIDB4MmYwMzA0MDMKKyNkZWZpbmUgQ09ORklHX1NZU19DU0NSX1ZBTCAweDJmMDMwNDAzCiAjZW5kaWYKIAogLyoKQEAgLTMyNCw3ICszMjQsNyBAQAogICogb25lIG1heSBleHBlY3QuIEZvciBpbnN0YW5jZSBsb2FkYiBjb21tYW5kIGRvIG5vdCBjYXJlcyA6LSkKICAqIFNvIGFkdmljZSBpcyAtIGRvIG5vdCByZWxheSBvbiB0aGlzLi4uCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUiAweDA4NDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSIDB4MDg0MDAwMDAKIAogI2RlZmluZSBNSFoxNlFVQVJaSU5VU0UKIApAQCAtMzM3LDcgKzMzNyw3IEBACiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEgMTY3ODAwMDAKIAogLyogRk1DUiBCaXQgMCBiZWNvbWVzIDAgdG8gbWFrZSBDUzMgQ1MzIDpQICovCi0jZGVmaW5lIENGR19GTUNSX1ZBTCAweDAwMDAwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfRk1DUl9WQUwgMHgwMDAwMDAwMQogCiAvKiBCaXRbMDozXSBjb250YWluIFBFUkNMSzFESVYgZm9yIFVBUlQgMQogICAgMHgwMDBiMDBiIC0+YjwtIC0+IDE5Mk1Iei8xMj0xNk1IegpAQCAtMzQ1LDE1ICszNDUsMTUgQEAKICAgIDB4MDAwYjAwYiAtPjM8LSAtPiA2NE1Iei80PTE2TUh6ICovCiAKICNpZmRlZiBCVVM5NgotI2RlZmluZSBDRkdfUENEUl9WQUwgMHgwMDBiMDBiNQorI2RlZmluZSBDT05GSUdfU1lTX1BDRFJfVkFMIDB4MDAwYjAwYjUKICNlbmRpZgogCiAjaWZkZWYgQlVTNjQKLSNkZWZpbmUgQ0ZHX1BDRFJfVkFMIDB4MDAwYjAwYjMKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0RSX1ZBTCAweDAwMGIwMGIzCiAjZW5kaWYKIAogI2lmZGVmIEJVUzcyCi0jZGVmaW5lIENGR19QQ0RSX1ZBTCAweDAwMGIwMGI4CisjZGVmaW5lIENPTkZJR19TWVNfUENEUl9WQUwgMHgwMDBiMDBiOAogI2VuZGlmCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2VxdW9pYS5oIGIvaW5jbHVkZS9jb25maWdzL3NlcXVvaWEuaAppbmRleCAzNTMzMWU4Li45MzIxYmRjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2VxdW9pYS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zZXF1b2lhLmgKQEAgLTQ4LDcgKzQ4LDcgQEAKICNpbmNsdWRlICJhbWNjLWNvbW1vbi5oIgogCiAvKiBEZXRlY3QgU2VxdW9pYSBQTEwgaW5wdXQgY2xvY2sgYXV0b21hdGljYWxseSB2aWEgQ1BMRCBiaXQJCSovCi0jZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEgICAgKChpbjgoQ0ZHX0JDU1JfQkFTRSArIDMpICYgMHg4MCkgPyBcCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEgICAgKChpbjgoQ09ORklHX1NZU19CQ1NSX0JBU0UgKyAzKSAmIDB4ODApID8gXAogCQkJCTMzMzMzMzMzIDogMzMwMDAwMDApCiAKIC8qCkBAIC03Miw0MCArNzIsNDAgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlIGFjdHVhbAogICogcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpLgogICovCi0jZGVmaW5lIENGR19UTEJfRk9SX0JPT1RfRkxBU0gJMHgwMDAzCi0jZGVmaW5lIENGR19CT09UX0JBU0VfQUREUgkweGYwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZjMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCi0jZGVmaW5lIENGR19OQU5EX0FERFIJCTB4ZDAwMDAwMDAJLyogTkFORCBGbGFzaAkJKi8KLSNkZWZpbmUgQ0ZHX09DTV9CQVNFCQkweGUwMDEwMDAwCS8qIG9jbQkJCSovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCUNGR19PQ01fQkFTRQotI2RlZmluZSBDRkdfUENJX0JBU0UJCTB4ZTAwMDAwMDAJLyogSW50ZXJuYWwgUENJIHJlZ3MJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRTEJQ0ZHX1BDSV9NRU1CQVNFICArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMglDRkdfUENJX01FTUJBU0UxICsgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTUJBU0UzCUNGR19QQ0lfTUVNQkFTRTIgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVExCX0ZPUl9CT09UX0ZMQVNICTB4MDAwMworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSCTB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZjMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9BRERSCQkweGQwMDAwMDAwCS8qIE5BTkQgRmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0JBU0UJCTB4ZTAwMTAwMDAJLyogb2NtCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCUNPTkZJR19TWVNfT0NNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFTRQkJMHhlMDAwMDAwMAkvKiBJbnRlcm5hbCBQQ0kgcmVncwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UxCUNPTkZJR19TWVNfUENJX01FTUJBU0UgICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMglDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTMJQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIgKyAweDEwMDAwMDAwCiAKIC8qIERvbid0IGNoYW5nZSBlaXRoZXIgb2YgdGhlc2UgKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRQkweGVmNjAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFCTB4ZWY2MDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KIAotI2RlZmluZSBDRkdfVVNCMkQwX0JBU0UJCTB4ZTAwMDAxMDAKLSNkZWZpbmUgQ0ZHX1VTQl9ERVZJQ0UJCTB4ZTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1VTQl9IT1NUCQkweGUwMDAwNDAwCi0jZGVmaW5lIENGR19CQ1NSX0JBU0UJCTB4YzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0IyRDBfQkFTRQkJMHhlMDAwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9ERVZJQ0UJCTB4ZTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfSE9TVAkJMHhlMDAwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0JDU1JfQkFTRQkJMHhjMDAwMDAwMAogCiAvKgogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyCiAgKi8KIC8qIDQ0MEVQeC80NDBHUnggaGF2ZSAxNktCIG9mIGludGVybmFsIFNSQU0sIHNvIG5vIG5lZWQgZm9yIEQtQ2FjaGUJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9CQVNFCS8qIE9DTQkJCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJKDQgPDwgMTApCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NgkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19QT1NUX1dPUkRfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fQkFTRQkvKiBPQ00JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkoNCA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NgkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCiAKIC8qCiAgKiBTZXJpYWwgUG9ydAogICovCi0jZGVmaW5lIENGR19FWFRfU0VSSUFMX0NMT0NLCTExMDU5MjAwCS8qIGV4dC4gMTEuMDU5TUh6IGNsawkqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJMTEwNTkyMDAJLyogZXh0LiAxMS4wNTlNSHogY2xrCSovCiAvKiBkZWZpbmUgdGhpcyBpZiB5b3Ugd2FudCBjb25zb2xlIG9uIFVBUlQxICovCiAjdW5kZWYgQ09ORklHX1VBUlQxX0NPTlNPTEUKIApAQCAtMTIyLDI2ICsxMjIsMjYgQEAKIC8qCiAgKiBGTEFTSCByZWxhdGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAgICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24gICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCS8qIHVzZSBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uICAgICAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkgICAgICAvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBmbGFzaCAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkgICAgICAvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2ggICAgICAqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkgICAgICAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSgoLUNGR19NT05JVE9SX0xFTiktQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKCgtQ09ORklHX1NZU19NT05JVE9SX0xFTiktQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHgyMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICAgKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xNjcsNzQgKzE2Nyw3NCBAQAogICogc2V0IHVwLiBXaGlsZSBzdGlsbCBydW5uaW5nIGZyb20gY2FjaGUsIEkgZXhwZXJpZW5jZWQgcHJvYmxlbXMgYWNjZXNzaW5nCiAgKiB0aGUgTkFORCBjb250cm9sbGVyLglzciAtIDIwMDYtMDgtMjUKICAqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9TUkMJMHhmZmZmZjAwMAkvKiBTUEwgbG9jYXRpb24JCSAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX0JPT1RfU1BMX1NJWkUJKDQgPDwgMTApCS8qIFNQTCBzaXplCQkgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9EU1QJKENGR19PQ01fQkFTRSArICgxMiA8PCAxMCkpIC8qIENvcHkgU1BMIGhlcmUgICovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9EU1QJMHgwMTAwMDAwMAkvKiBMb2FkIE5VQiB0byB0aGlzIGFkZHIgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfU1RBUlQJQ0ZHX05BTkRfVV9CT09UX0RTVAkvKiBTdGFydCBOVUIgZnJvbSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQwkweGZmZmZmMDAwCS8qIFNQTCBsb2NhdGlvbgkJICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NJWkUJKDQgPDwgMTApCS8qIFNQTCBzaXplCQkgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfRFNUCShDT05GSUdfU1lTX09DTV9CQVNFICsgKDEyIDw8IDEwKSkgLyogQ29weSBTUEwgaGVyZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9EU1QJMHgwMTAwMDAwMAkvKiBMb2FkIE5VQiB0byB0aGlzIGFkZHIgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NUQVJUCUNPTkZJR19TWVNfTkFORF9VX0JPT1RfRFNUCS8qIFN0YXJ0IE5VQiBmcm9tICAgICAqLwogCQkJCQkJCS8qICAgdGhpcyBhZGRyCSAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX0JPT1RfU1BMX0RFTFRBCShDRkdfTkFORF9CT09UX1NQTF9TUkMgLSBDRkdfTkFORF9CT09UX1NQTF9EU1QpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9ERUxUQQkoQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQyAtIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9EU1QpCiAKIC8qCiAgKiBEZWZpbmUgdGhlIHBhcnRpdGlvbmluZyBvZiB0aGUgTkFORCBjaGlwIChvbmx5IFJBTSBVLUJvb3QgaXMgbmVlZGVkIGhlcmUpCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX09GRlMJKDE2IDw8IDEwKQkvKiBPZmZzZXQgdG8gUkFNIFUtQm9vdCBpbWFnZSAqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfU0laRQkoNTEyIDw8IDEwKQkvKiBTaXplIG9mIFJBTSBVLUJvb3QgaW1hZ2UgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX09GRlMJKDE2IDw8IDEwKQkvKiBPZmZzZXQgdG8gUkFNIFUtQm9vdCBpbWFnZSAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NJWkUJKDUxMiA8PCAxMCkJLyogU2l6ZSBvZiBSQU0gVS1Cb290IGltYWdlICAgKi8KIAogLyoKICAqIE5vdyB0aGUgTkFORCBjaGlwIGhhcyB0byBiZSBkZWZpbmVkIChubyBhdXRvZGV0ZWN0aW9uIHVzZWQhKQogICovCi0jZGVmaW5lIENGR19OQU5EX1BBR0VfU0laRQk1MTIJCS8qIE5BTkQgY2hpcCBwYWdlIHNpemUJICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkxPQ0tfU0laRQkoMTYgPDwgMTApCS8qIE5BTkQgY2hpcCBibG9jayBzaXplCSAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX1BBR0VfQ09VTlQJMzIJCS8qIE5BTkQgY2hpcCBwYWdlIGNvdW50CSAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX0JBRF9CTE9DS19QT1MJNQkgICAgICAvKiBMb2NhdGlvbiBvZiBiYWQgYmxvY2sgbWFya2VyICovCi0jdW5kZWYgQ0ZHX05BTkRfNF9BRERSX0NZQ0xFCQkgICAgICAvKiBObyBmb3VydGggYWRkciB1c2VkICg8PTMyTUIpICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9QQUdFX1NJWkUJNTEyCQkvKiBOQU5EIGNoaXAgcGFnZSBzaXplCSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFCSgxNiA8PCAxMCkJLyogTkFORCBjaGlwIGJsb2NrIHNpemUJICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1BBR0VfQ09VTlQJMzIJCS8qIE5BTkQgY2hpcCBwYWdlIGNvdW50CSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQURfQkxPQ0tfUE9TCTUJICAgICAgLyogTG9jYXRpb24gb2YgYmFkIGJsb2NrIG1hcmtlciAqLworI3VuZGVmIENPTkZJR19TWVNfTkFORF80X0FERFJfQ1lDTEUJCSAgICAgIC8qIE5vIGZvdXJ0aCBhZGRyIHVzZWQgKDw9MzJNQikgKi8KIAotI2RlZmluZSBDRkdfTkFORF9FQ0NTSVpFCTI1NgotI2RlZmluZSBDRkdfTkFORF9FQ0NCWVRFUwkzCi0jZGVmaW5lIENGR19OQU5EX0VDQ1NURVBTCShDRkdfTkFORF9QQUdFX1NJWkUgLyBDRkdfTkFORF9FQ0NTSVpFKQotI2RlZmluZSBDRkdfTkFORF9PT0JTSVpFCTE2Ci0jZGVmaW5lIENGR19OQU5EX0VDQ1RPVEFMCShDRkdfTkFORF9FQ0NCWVRFUyAqIENGR19OQU5EX0VDQ1NURVBTKQotI2RlZmluZSBDRkdfTkFORF9FQ0NQT1MJCXswLCAxLCAyLCAzLCA2LCA3fQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDU0laRQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1NURVBTCShDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFIC8gQ09ORklHX1NZU19OQU5EX0VDQ1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9PT0JTSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NUT1RBTAkoQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTICogQ09ORklHX1NZU19OQU5EX0VDQ1NURVBTKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDUE9TCQl7MCwgMSwgMiwgMywgNiwgN30KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fTkFORAogLyoKICAqIEZvciBOQU5EIGJvb3RpbmcgdGhlIGVudmlyb25tZW50IGlzIGVtYmVkZGVkIGluIHRoZSBVLUJvb3QgaW1hZ2UuIFBsZWFzZSB0YWtlCiAgKiBsb29rIGF0IHRoZSBmaWxlIGJvYXJkL2FtY2Mvc2VxdW9pYS91LWJvb3QtbmFuZC5sZHMgZm9yIGRldGFpbHMuCiAgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlDRkdfTkFORF9CTE9DS19TSVpFCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ0ZHX05BTkRfVV9CT09UX09GRlMgKyBDT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJQ09ORklHX1NZU19OQU5EX0JMT0NLX1NJWkUKKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfU1lTX05BTkRfVV9CT09UX09GRlMgKyBDT05GSUdfRU5WX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQgKyBDT05GSUdfRU5WX1NJWkUpCiAjZW5kaWYKIAogLyoKICAqIEREUiBTRFJBTQogICovCi0jZGVmaW5lIENGR19NQllURVNfU0RSQU0gICAgICAgICgyNTYpCS8qIDI1Nk1CCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQllURVNfU0RSQU0gICAgICAgICgyNTYpCS8qIDI1Nk1CCQkJKi8KICNpZiAhZGVmaW5lZChDT05GSUdfTkFORF9VX0JPT1QpICYmICFkZWZpbmVkKENPTkZJR19OQU5EX1NQTCkKICNkZWZpbmUgQ09ORklHX0REUl9EQVRBX0VZRQkJLyogdXNlIEREUjIgb3B0aW1pemF0aW9uCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01FTV9UT1BfSElERQkoNCA8PCAxMCkgLyogZG9uJ3QgdXNlIGxhc3QgNGtieXRlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTV9UT1BfSElERQkoNCA8PCAxMCkgLyogZG9uJ3QgdXNlIGxhc3QgNGtieXRlcwkqLwogCQkJCQkvKiA0NDBFUHggZXJyYXRhIENISVAgMTEJKi8KIAogLyoKICAqIEkyQwogICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkoMHhhOD4+MSkKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCSgweGE4Pj4xKQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCiAKIC8qIEkyQyBTWVNNT04gKExNNzUsIEFENzQxNCBpcyBhbG1vc3QgY29tcGF0aWJsZSkJCQkqLwogI2RlZmluZSBDT05GSUdfRFRUX0xNNzUJCTEJLyogT04gU2VtaSdzIExNNzUJCSovCiAjZGVmaW5lIENPTkZJR19EVFRfQUQ3NDE0CTEJLyogdXNlIEFENzQxNAkJCSovCiAjZGVmaW5lIENPTkZJR19EVFRfU0VOU09SUwl7MH0JLyogU2Vuc29yIGFkZHJlc3NlcwkJKi8KLSNkZWZpbmUgQ0ZHX0RUVF9NQVhfVEVNUAk3MAotI2RlZmluZSBDRkdfRFRUX0xPV19URU1QCS0zMAotI2RlZmluZSBDRkdfRFRUX0hZU1RFUkVTSVMJMworI2RlZmluZSBDT05GSUdfU1lTX0RUVF9NQVhfVEVNUAk3MAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9MT1dfVEVNUAktMzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUwkzCiAKIC8qCiAgKiBEZWZhdWx0IGVudmlyb25tZW50IHZhcmlhYmxlcwpAQCAtMjY0LDEzICsyNjQsMTMgQEAKICNpZmRlZiBDT05GSUdfNDQwRVBYCiAjZGVmaW5lIENPTkZJR19VU0JfT0hDSV9ORVcKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCi0jZGVmaW5lIENGR19PSENJX0JFX0NPTlRST0xMRVIKKyNkZWZpbmUgQ09ORklHX1NZU19PSENJX0JFX0NPTlRST0xMRVIKIAotI3VuZGVmIENGR19VU0JfT0hDSV9CT0FSRF9JTklUCi0jZGVmaW5lIENGR19VU0JfT0hDSV9DUFVfSU5JVAkxCi0jZGVmaW5lIENGR19VU0JfT0hDSV9SRUdTX0JBU0UJQ0ZHX1VTQl9IT1NUCi0jZGVmaW5lIENGR19VU0JfT0hDSV9TTE9UX05BTUUJInBwYzQ0MCIKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTIDE1CisjdW5kZWYgQ09ORklHX1NZU19VU0JfT0hDSV9CT0FSRF9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1JFR1NfQkFTRQlDT05GSUdfU1lTX1VTQl9IT1NUCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCSJwcGM0NDAiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMgMTUKIAogLyogQ29tbWVudCB0aGlzIG91dCB0byBlbmFibGUgVVNCIDEuMSBkZXZpY2UgKi8KICNkZWZpbmUgVVNCXzJfMF9ERVZJQ0UKQEAgLTI5NiwyNiArMjk2LDI2IEBACiAjZW5kaWYKIAogI2lmbmRlZiBDT05GSUdfUkFJTklFUgotI2RlZmluZSBDRkdfUE9TVF9GUFVfT04JCUNGR19QT1NUX0ZQVQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfRlBVX09OCQlDT05GSUdfU1lTX1BPU1RfRlBVCiAjZWxzZQotI2RlZmluZSBDRkdfUE9TVF9GUFVfT04JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0ZQVV9PTgkJMAogI2VuZGlmCiAKIC8qIFBPU1Qgc3VwcG9ydCAqLwotI2RlZmluZSBDT05GSUdfUE9TVAkJKENGR19QT1NUX0NBQ0hFCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9DUFUJICAgfCBcCi0JCQkJIENGR19QT1NUX0VUSEVSCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9GUFVfT04gICB8IFwKLQkJCQkgQ0ZHX1BPU1RfSTJDCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9NRU1PUlkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfU1BSCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9VQVJUKQorI2RlZmluZSBDT05GSUdfUE9TVAkJKENPTkZJR19TWVNfUE9TVF9DQUNIRQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NQVQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0VUSEVSCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRlBVX09OICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9JMkMJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9NRU1PUlkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1NQUgkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1VBUlQpCiAKLSNkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKICNkZWZpbmUgQ09ORklHX0xPR0JVRkZFUgotI2RlZmluZSBDRkdfUE9TVF9DQUNIRV9BRERSCTB4N2ZmZjAwMDAJLyogZnJlZSB2aXJ0dWFsIGFkZHJlc3MgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9DQUNIRV9BRERSCTB4N2ZmZjAwMDAJLyogZnJlZSB2aXJ0dWFsIGFkZHJlc3MgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCS8qIE90aGVyd2lzZSBpdCBjYXRjaGVzIGxvZ2J1ZmZlciBhcyBvdXRwdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgkvKiBPdGhlcndpc2UgaXQgY2F0Y2hlcyBsb2didWZmZXIgYXMgb3V0cHV0ICovCiAKICNkZWZpbmUgQ09ORklHX1NVUFBPUlRfVkZBVAogCkBAIC0zMjUsMTYgKzMyNSwxNiBAQAogLyogR2VuZXJhbCBQQ0kgKi8KICNkZWZpbmUgQ09ORklHX1BDSQkJCS8qIGluY2x1ZGUgcGNpIHN1cHBvcnQJCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkJCSovCi0jZGVmaW5lIENGR19QQ0lfQ0FDSEVfTElORV9TSVpFCTAJLyogdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBQTlAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0FDSEVfTElORV9TSVpFCTAJLyogdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBQTlAJKi8KICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cAkqLwotI2RlZmluZSBDRkdfUENJX1RBUkdCQVNFCTB4ODAwMDAwMDAJLyogUENJYWRkciBtYXBwZWQgdG8JKi8KLQkJCQkJCS8qICAgQ0ZHX1BDSV9NRU1CQVNFCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdCQVNFCTB4ODAwMDAwMDAJLyogUENJYWRkciBtYXBwZWQgdG8JKi8KKwkJCQkJCS8qICAgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkqLwogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQKLSNkZWZpbmUgQ0ZHX1BDSV9NQVNURVJfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVAogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDCQkJCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0lEICAgICAgIDB4Y2FmZQkvKiBXaGF0ZXZlcgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQwkJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSUQgICAgICAgMHhjYWZlCS8qIFdoYXRldmVyCQkJKi8KIAogLyoKICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCkBAIC0zNDQsNDQgKzM0NCw0NCBAQAogICogT24gU2VxdW9pYSBDUzAgYW5kIENTMyBhcmUgc3dpdGNoZWQgd2hlbiBjb25maWd1cmluZyBmb3IgTkFORCBib290aW5nCiAgKi8KICNpZiAhZGVmaW5lZChDT05GSUdfTkFORF9VX0JPT1QpICYmICFkZWZpbmVkKENPTkZJR19OQU5EX1NQTCkKLSNkZWZpbmUgQ0ZHX05BTkRfQ1MJCTMJLyogTkFORCBjaGlwIGNvbm5lY3RlZCB0byBDU3gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NTCQkzCS8qIE5BTkQgY2hpcCBjb25uZWN0ZWQgdG8gQ1N4CSovCiAvKiBNZW1vcnkgQmFuayAwIChOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4MDMwMTcyMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJKENGR19GTEFTSF9CQVNFIHwgMHhkYTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDMwMTcyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCAweGRhMDAwKQogCiAvKiBNZW1vcnkgQmFuayAzIChOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDAxODAwM2MwCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCShDRkdfTkFORF9BRERSIHwgMHgxYzAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDE4MDAzYzAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCShDT05GSUdfU1lTX05BTkRfQUREUiB8IDB4MWMwMDApCiAjZWxzZQotI2RlZmluZSBDRkdfTkFORF9DUwkJMAkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeAkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ1MJCTAJLyogTkFORCBjaGlwIGNvbm5lY3RlZCB0byBDU3gJKi8KIC8qIE1lbW9yeSBCYW5rIDMgKE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMzAxNzIwMAotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkoQ0ZHX0ZMQVNIX0JBU0UgfCAweGRhMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkJMHgwMzAxNzIwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IDB4ZGEwMDApCiAKIC8qIE1lbW9yeSBCYW5rIDAgKE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4MDE4MDAzYzAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJKENGR19OQU5EX0FERFIgfCAweDFjMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgwMTgwMDNjMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJKENPTkZJR19TWVNfTkFORF9BRERSIHwgMHgxYzAwMCkKICNlbmRpZgogCiAvKiBNZW1vcnkgQmFuayAyIChDUExEKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgyNDgxNDU4MAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkoQ0ZHX0JDU1JfQkFTRSB8IDB4MzgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDI0ODE0NTgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkoQ09ORklHX1NZU19CQ1NSX0JBU0UgfCAweDM4MDAwKQogCi0jZGVmaW5lIENGR19CQ1NSNV9QQ0k2NkVOCTB4ODAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSNV9QQ0k2NkVOCTB4ODAKIAogLyoKICAqIE5BTkQgRkxBU0gKICAqLwotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJMQotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkoQ0ZHX05BTkRfQUREUiArIENGR19OQU5EX0NTKQotI2RlZmluZSBDRkdfTkFORF9TRUxFQ1RfREVWSUNFICAxCS8qIG5hbmQgZHJpdmVyIHN1cHBvcnRzIG11dGlwbC4gY2hpcHMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCShDT05GSUdfU1lTX05BTkRfQUREUiArIENPTkZJR19TWVNfTkFORF9DUykKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NFTEVDVF9ERVZJQ0UgIDEJLyogbmFuZCBkcml2ZXIgc3VwcG9ydHMgbXV0aXBsLiBjaGlwcyAqLwogCiAvKgogICogUFBDNDQwIEdQSU8gQ29uZmlndXJhdGlvbgogICovCiAvKiB0ZXN0LW9ubHk6IHRha2UgR1BJTyBpbml0IGZyb20gcGNzNDQwZXAgPz8/PyBpbiBjb25maWcgZmlsZSAqLwotI2RlZmluZSBDRkdfNHh4X0dQSU9fVEFCTEUgeyAvKgkgIE91dAkJICBHUElPCUFsdGVybmF0ZTEJQWx0ZXJuYXRlMglBbHRlcm5hdGUzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU180eHhfR1BJT19UQUJMRSB7IC8qCSAgT3V0CQkgIEdQSU8JQWx0ZXJuYXRlMQlBbHRlcm5hdGUyCUFsdGVybmF0ZTMgKi8gXAogewkJCQkJCQkJCQkJXAogLyogR1BJTyBDb3JlIDAgKi8JCQkJCQkJCQlcCiB7R1BJTzBfQkFTRSwgR1BJT19CSSAsIEdQSU9fQUxUMSwgR1BJT19PVVRfMH0sIC8qIEdQSU8wCUVCQ19BRERSKDcpCURNQV9SRVEoMikJKi8JXApAQCAtNDU4LDcgKzQ1OCw3IEBACiAjZGVmaW5lIENPTkZJR19CSU9TRU1VCQkJLyogeDg2IGJpb3MgZW11bGF0b3IgZm9yIHZnYSBiaW9zICovCiAjZGVmaW5lIENPTkZJR19BVElfUkFERU9OX0ZCCQkvKiB1c2UgcmFkZW9uIGZyYW1lYnVmZmVyIGRyaXZlciAqLwogI2RlZmluZSBWSURFT19JT19PRkZTRVQJCQkweGU4MDAwMDAwCi0jZGVmaW5lIENGR19JU0FfSU9fQkFTRV9BRERSRVNTCQlWSURFT19JT19PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTCQlWSURFT19JT19PRkZTRVQKICNkZWZpbmUgQ09ORklHX1ZJREVPX1NXX0NVUlNPUgogI2RlZmluZSBDT05GSUdfVklERU9fTE9HTwogI2RlZmluZSBDT05GSUdfQ0ZCX0NPTlNPTEUKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zaDc3NjNyZHAuaCBiL2luY2x1ZGUvY29uZmlncy9zaDc3NjNyZHAuaAppbmRleCAyZGFhZWIwLi44YTc2ZGFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2g3NzYzcmRwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NoNzc2M3JkcC5oCkBAIC01Niw2NiArNTYsNjYgQEAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFICAgICAgICAgMTE1MjAwCiAjZGVmaW5lIENPTkZJR19DT05TX1NDSUYyCQkxCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBCdWZmZXIgc2l6ZSBmb3IgaW5wdXQgZnJvbSB0aGUgQ29uc29sZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCQkyNTYJLyogQnVmZmVyIHNpemUgZm9yIENvbnNvbGUgb3V0cHV0ICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggYXJncyBhY2NlcHRlZCBmb3IgbW9uaXRvciBjb21tYW5kcyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJNTEyCS8qIEJ1ZmZlciBzaXplIGZvciBCb290IEFyZ3VtZW50cworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIEJ1ZmZlciBzaXplIGZvciBpbnB1dCBmcm9tIHRoZSBDb25zb2xlICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkyNTYJLyogQnVmZmVyIHNpemUgZm9yIENvbnNvbGUgb3V0cHV0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IGFyZ3MgYWNjZXB0ZWQgZm9yIG1vbml0b3IgY29tbWFuZHMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQk1MTIJLyogQnVmZmVyIHNpemUgZm9yIEJvb3QgQXJndW1lbnRzCiAJCQkJCQkJCXBhc3NlZCB0byBrZXJuZWwgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwIH0JLyogTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwIH0JLyogTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZQogCQkJCQkJCQkJCQkJc2V0dGluZ3MgZm9yIHRoaXMgYm9hcmQgKi8KIAogLyogU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCSgweDhDMDAwMDAwKQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJKDY0ICogMTAyNCAqIDEwMjQpCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCShDRkdfU0RSQU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoQ0ZHX01FTVRFU1RfU1RBUlQgKyAoNjAgKiAxMDI0ICogMTAyNCkpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJKDB4OEMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJKDY0ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkoQ09ORklHX1NZU19TRFJBTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICsgKDYwICogMTAyNCAqIDEwMjQpKQogCiAvKiBGbGFzaChOT1IpICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkoMHhBMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSCAoRkxBU0hfQ0ZJXzE2QklUKQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICgxKQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICg1MjApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJKDB4QTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRIIChGTEFTSF9DRklfMTZCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICgxKQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUICAoNTIwKQogCiAvKiBVLWJvb3Qgc2V0dGluZyAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkoQ0ZHX1NEUkFNX0JBU0UgKyA0ICogMTAyNCAqIDEwMjQpCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDQgKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDEyOCAqIDEwMjQpCiAvKiBTaXplIG9mIERSQU0gcmVzZXJ2ZWQgZm9yIG1hbGxvYygpIHVzZSAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkKIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkoMjU2KQotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJKDI1NikKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4ICogMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI3VuZGVmICBDRkdfRkxBU0hfUVVJRVRfVEVTVAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyN1bmRlZiAgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIC8qIFRpbWVvdXQgZm9yIEZsYXNoIGVyYXNlIG9wZXJhdGlvbnMgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMyAqIDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMyAqIDEwMDApCiAvKiBUaW1lb3V0IGZvciBGbGFzaCB3cml0ZSBvcGVyYXRpb25zIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDMgKiAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDMgKiAxMDAwKQogLyogVGltZW91dCBmb3IgRmxhc2ggc2V0IHNlY3RvciBsb2NrIGJpdCBvcGVyYXRpb25zIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0xPQ0tfVE9VVAkJKDMgKiAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0xPQ0tfVE9VVAkJKDMgKiAxMDAwKQogLyogVGltZW91dCBmb3IgRmxhc2ggY2xlYXIgbG9jayBiaXQgb3BlcmF0aW9ucyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9VTkxPQ0tfVE9VVAkoMyAqIDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVU5MT0NLX1RPVVQJKDMgKiAxMDAwKQogLyogVXNlIGhhcmR3YXJlIGZsYXNoIHNlY3RvcnMgcHJvdGVjdGlvbiBpbnN0ZWFkIG9mIFUtQm9vdCBzb2Z0d2FyZSBwcm90ZWN0aW9uICovCi0jdW5kZWYgIENGR19GTEFTSF9QUk9URUNUSU9OCi0jdW5kZWYgIENGR19ESVJFQ1RfRkxBU0hfVEZUUAorI3VuZGVmICBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KKyN1bmRlZiAgQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCSgxMjggKiAxMDI0KQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCShDT05GSUdfRU5WX1NFQ1RfU0laRSkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAoMSAqIENPTkZJR19FTlZfU0VDVF9TSVpFKSkKLS8qIE9mZnNldCBvZiBlbnYgRmxhc2ggc2VjdG9yIHJlbGF0aXZlIHRvIENGR19GTEFTSF9CQVNFICovCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ09ORklHX0VOVl9BRERSIC0gQ0ZHX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgxICogQ09ORklHX0VOVl9TRUNUX1NJWkUpKQorLyogT2Zmc2V0IG9mIGVudiBGbGFzaCBzZWN0b3IgcmVsYXRpdmUgdG8gQ09ORklHX1NZU19GTEFTSF9CQVNFICovCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ09ORklHX0VOVl9BRERSIC0gQ09ORklHX1NZU19GTEFTSF9CQVNFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NFQ1RfU0laRSkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ0ZHX0ZMQVNIX0JBU0UgKyAoMiAqIENPTkZJR19FTlZfU0VDVF9TSVpFKSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDIgKiBDT05GSUdfRU5WX1NFQ1RfU0laRSkpCiAKIC8qIENsb2NrICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJNjY2NjY2NjYKICNkZWZpbmUgVE1VX0NMS19ESVZJREVSCQkoNCkJLyogNCAoZGVmYXVsdCksIDE2LCA2NCwgMjU2IG9yIDEwMjQgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gVE1VX0NMS19ESVZJREVSKQorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gVE1VX0NMS19ESVZJREVSKQogCiAvKiBFdGhlciAqLwogI2RlZmluZSBDT05GSUdfU0hfRVRIRVIgMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NoNzc4NWxjci5oIGIvaW5jbHVkZS9jb25maWdzL3NoNzc4NWxjci5oCmluZGV4IGJmMDZmNjIuLjFiNTkwNTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zaDc3ODVsY3IuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc2g3Nzg1bGNyLmgKQEAgLTY3LDYwICs2Nyw2MCBAQAogI2RlZmluZSBTSDc3ODVMQ1JfRkxBU0hfQkFOS19TSVpFCSg2NCAqIDEwMjQgKiAxMDI0KQogI2RlZmluZSBTSDc3ODVMQ1JfVVNCX0JBU0UJCSgweGI0MDAwMDAwKQogCi0jZGVmaW5lIENGR19MT05HSEVMUAotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJMjU2Ci0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgotI2RlZmluZSBDRkdfQkFSR1NJWkUJCTUxMgotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQk1MTIKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCB9CiAKIC8qIFNDSUYgKi8KICNkZWZpbmUgQ09ORklHX1NDSUZfQ09OU09MRQkxCiAjZGVmaW5lIENPTkZJR19DT05TX1NDSUYxCTEKICNkZWZpbmUgQ09ORklHX1NDSUZfRVhUX0NMT0NLCTEKLSN1bmRlZglDRkdfQ09OU09MRV9JTkZPX1FVSUVUCi0jdW5kZWYJQ0ZHX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUKLSN1bmRlZglDRkdfQ09OU09MRV9FTlZfT1ZFUldSSVRFCisjdW5kZWYJQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQKKyN1bmRlZglDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUKKyN1bmRlZglDT05GSUdfU1lTX0NPTlNPTEVfRU5WX09WRVJXUklURQogCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJKFNINzc4NUxDUl9TRFJBTV9CQVNFKQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCShDRkdfTUVNVEVTVF9TVEFSVCArIFwKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCShTSDc3ODVMQ1JfU0RSQU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArIFwKIAkJCQkJKFNINzc4NUxDUl9TRFJBTV9TSVpFKSAtIFwKIAkJCQkJIDQgKiAxMDI0ICogMTAyNCkKLSN1bmRlZglDRkdfQUxUX01FTVRFU1QKLSN1bmRlZglDRkdfTUVNVEVTVF9TQ1JBVENICi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCisjdW5kZWYJQ09ORklHX1NZU19BTFRfTUVNVEVTVAorI3VuZGVmCUNPTkZJR19TWVNfTUVNVEVTVF9TQ1JBVENICisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCShTSDc3ODVMQ1JfU0RSQU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJKFNINzc4NUxDUl9TRFJBTV9TSVpFKQotI2RlZmluZSBDRkdfTE9BRF9BRERSCShDRkdfU0RSQU1fQkFTRSArIDE2ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkoU0g3Nzg1TENSX1NEUkFNX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkoU0g3Nzg1TENSX1NEUkFNX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAxNiAqIDEwMjQgKiAxMDI0KQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKFNINzc4NUxDUl9GTEFTSF9CQVNFXzEpCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDUxMiAqIDEwMjQpCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJKDI1NikKLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKFNINzc4NUxDUl9GTEFTSF9CQVNFXzEpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJKDI1NikKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4ICogMTAyNCAqIDEwMjQpCiAKIC8qIEZMQVNIICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSN1bmRlZglDRkdfRkxBU0hfUVVJRVRfVEVTVAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJKFNINzc4NUxDUl9GTEFTSF9CQVNFXzEpCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJKFNINzc4NUxDUl9GTEFTSF9CQVNFXzEpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgKyBcCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgXAogCQkJCSAoMCAqIFNINzc4NUxDUl9GTEFTSF9CQU5LX1NJWkUpIH0KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMyAqIDEwMDApCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgzICogMTAwMCkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0xPQ0tfVE9VVAkoMyAqIDEwMDApCi0jZGVmaW5lIENGR19GTEFTSF9VTkxPQ0tfVE9VVAkoMyAqIDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMyAqIDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMyAqIDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTE9DS19UT1VUCSgzICogMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVAkoMyAqIDEwMDApCiAKLSN1bmRlZglDRkdfRkxBU0hfUFJPVEVDVElPTgotI3VuZGVmCUNGR19ESVJFQ1RfRkxBU0hfVEZUUAorI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgorI3VuZGVmCUNPTkZJR19TWVNfRElSRUNUX0ZMQVNIX1RGVFAKIAogLyogUjhBNjY1OTcgKi8KICNkZWZpbmUgTElUVExFRU5ESUFOCQkJLyogZm9yIGluY2x1ZGUvdXNiLmggKi8KQEAgLTE1NCwxNCArMTU0LDE0IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJKDI1NiAqIDEwMjQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKENPTkZJR19FTlZfU0VDVF9TSVpFKQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIENGR19NT05JVE9SX0xFTikKLSNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfRU5WX0FERFIgLSBDRkdfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfRU5WX0FERFIgLSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0VDVF9TSVpFKQogCiAvKiBCb2FyZCBDbG9jayAqLwogLyogVGhlIFNDSUYgdXNlZCBleHRlcm5hbCBjbG9jay4gc3lzdGVtIGNsb2NrIG9ubHkgdXNlZCB0aW1lci4gKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQk1MDAwMDAwMAogI2RlZmluZSBUTVVfQ0xLX0RJVklERVIJCTQKLSNkZWZpbmUgQ0ZHX0haCQkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBUTVVfQ0xLX0RJVklERVIpCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKIAogI2VuZGlmCS8qIF9fU0g3Nzg1TENSX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zaGFubm9uLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc2hhbm5vbi5oCmluZGV4IGVkYzlhMmUuLjc1YmEzNGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zaGFubm9uLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NoYW5ub24uaApAQCAtNDgsOCArNDgsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC05NSwyNSArOTUsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiVHV4U2NyZWVuICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJUdXhTY3JlZW4gIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweGMwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweGMwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHhjMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4YzA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHhkMDAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHhkMDAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVECQkweDA5CQkvKiAxOTAgTUh6IGZvciBTaGFubm9uICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQJCTB4MDkJCS8qIDE5MCBNSHogZm9yIFNoYW5ub24gKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCTEJCS8qIERPUyBwYXJ0aXRpaW9uIHN1cHBvcnQgKi8KIApAQCAtMTQ2LDE3ICsxNDYsMTcgQEAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweDAwMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAwNDAwMDAwIC8qIDQgTUIgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMzErNCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDMxKzQpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNpZmRlZiBDT05GSUdfSU5GRVJOTwpAQCAtMTc4LDE0ICsxNzgsMTQgQEAKIAogI2RlZmluZSBDT05GSUdfUENNQ0lBX1NMT1RfQQogCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHgyMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweDI0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4MkMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHgyODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHgyMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4MjQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweDJDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHgyODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qIGluIGZhY3QsIE1FTSBhbmQgQVRUUkIgYXJlIHN3YXBwZWQgLSBoYXMgdG8gYmUgY29ycmVjdGVkIHNvb24gaW4gY21kX3BjbWNpYSBvciBzbyAqLwogCkBAIC0yMDAsMjIgKzIwMCwyMiBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKIC8qIGl0J3Mgc2ltcGxlLCBhbGwgcmVncyBhcmUgaW4gSS9PIHNwYWNlICovCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfQVRUUkJfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTAKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkwCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc21kazI0MDAuaCBiL2luY2x1ZGUvY29uZmlncy9zbWRrMjQwMC5oCmluZGV4IDE1YWUzZGEuLjYzODhiZTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zbWRrMjQwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zbWRrMjQwMC5oCkBAIC01MCw4ICs1MCw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTEyNywyNiArMTI3LDI2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIlNNREsyNDAwICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJTTURLMjQwMCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MGMwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MGUwMDAwMDAJLyogMzIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwYzAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MGUwMDAwMDAJLyogMzIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MGNmMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MGNmMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAogLyogdGhlIFBXTSBUSW1lciA0IHVzZXMgYSBjb3VudGVyIG9mIDE1NjI1IGZvciAxMCBtcywgc28gd2UgbmVlZCAqLwogLyogaXQgdG8gd3JhcCAxMDAgdGltZXMgKHRvdGFsIDE1NjI1MDApIHRvIGdldCAxIHNlYy4gKi8KLSNkZWZpbmUJQ0ZHX0haCQkJMTU2MjUwMAorI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTU2MjUwMAogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xNjYsMjIgKzE2NiwyMiBAQAogI2RlZmluZSBQSFlTX1NEUkFNXzEJCTB4MGMwMDAwMDAgLyogU0RSQU0gQmFuayAjMSAqLwogI2RlZmluZSBQSFlTX1NEUkFNXzFfU0laRQkweDAyMDAwMDAwIC8qIDMyIE1CICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAgLyogRmxhc2ggQmFuayAjMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAgLyogRmxhc2ggQmFuayAjMSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoNjQpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDY0KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSg1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSg1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUHJpbWFyeSBFbnZpcm9ubWVudCBTZWN0b3IJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMDAKIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc21kazI0MTAuaCBiL2luY2x1ZGUvY29uZmlncy9zbWRrMjQxMC5oCmluZGV4IGNkMDA5M2UuLmVjZDk1OGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zbWRrMjQxMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zbWRrMjQxMC5oCkBAIC00Nyw4ICs0Nyw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTExMCwyNiArMTEwLDI2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIlNNREsyNDEwICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJTTURLMjQxMCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MzAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MzNGMDAwMDAJLyogNjMgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgzMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MzNGMDAwMDAJLyogNjMgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MzMwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MzMwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAogLyogdGhlIFBXTSBUSW1lciA0IHVzZXMgYSBjb3VudGVyIG9mIDE1NjI1IGZvciAxMCBtcywgc28gd2UgbmVlZCAqLwogLyogaXQgdG8gd3JhcCAxMDAgdGltZXMgKHRvdGFsIDE1NjI1MDApIHRvIGdldCAxIHNlYy4gKi8KLSNkZWZpbmUJQ0ZHX0haCQkJMTU2MjUwMAorI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTU2MjUwMAogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xNTEsNyArMTUxLDcgQEAKIAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCTB4MDAwMDAwMDAgLyogRmxhc2ggQmFuayAjMSAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgpAQCAtMTYyLDIxICsxNjIsMjEgQEAKICNkZWZpbmUgQ09ORklHX0FNRF9MVjgwMAkxCS8qIHVuY29tbWVudCB0aGlzIGlmIHlvdSBoYXZlIGEgTFY4MDAgZmxhc2ggKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCiAjaWZkZWYgQ09ORklHX0FNRF9MVjgwMAogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCTB4MDAxMDAwMDAgLyogMU1CICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMTkpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4MEYwMDAwKSAvKiBhZGRyIG9mIGVudmlyb25tZW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDE5KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwRjAwMDApIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KICNlbmRpZgogI2lmZGVmIENPTkZJR19BTURfTFY0MDAKICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAwMDgwMDAwIC8qIDUxMktCICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMTEpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4MDcwMDAwKSAvKiBhZGRyIG9mIGVudmlyb25tZW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDExKQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwNzAwMDApIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KICNlbmRpZgogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc21kazY0MDAuaCBiL2luY2x1ZGUvY29uZmlncy9zbWRrNjQwMC5oCmluZGV4IGVhNjVjMGUuLjE3ODRjYzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zbWRrNjQwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zbWRrNjQwMC5oCkBAIC00MCw3ICs0MCw3IEBACiAjZGVmaW5lIENPTkZJR19TM0M2NFhYCQkxCS8qIGluIGEgU0FNU1VORyBTM0M2NFhYIEZhbWlseSAgKi8KICNkZWZpbmUgQ09ORklHX1NNREs2NDAwCQkxCS8qIG9uIGEgU0FNU1VORyBTTURLNjQwMCBCb2FyZCAgKi8KIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkweDUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkweDUwMDAwMDAwCiAKIC8qIGlucHV0IGNsb2NrIG9mIFBMTDogU01ESzY0MDAgaGFzIDEyTUh6IGlucHV0IGNsb2NrICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMTIwMDAwMDAKQEAgLTY4LDggKzY4LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEwMjQgKiAxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtODMsOSArODMsOSBAQAogICovCiAjZGVmaW5lIENPTkZJR19TRVJJQUwxICAgICAgICAgIDEJLyogd2UgdXNlIFNFUklBTCAxIG9uIFNNREs2NDAwCSovCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcKQEAgLTEyNiwyMiArMTI2LDIyIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiU01ESzY0MDAgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgICovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJMzg0CQkvKiBQcmludCBCdWZmZXIgU2l6ZSAgICAgICAgICAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiU01ESzY0MDAgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkzODQJCS8qIFByaW50IEJ1ZmZlciBTaXplICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UJLyogbWVtdGVzdCB3b3JrcyBvbgkgICAgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCShDRkdfU0RSQU1fQkFTRSArIDB4N2UwMDAwMCkgLyogMTI2TUIgaW4gRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJQ09ORklHX1NZU19TRFJBTV9CQVNFCS8qIG1lbXRlc3Qgd29ya3Mgb24JICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4N2UwMDAwMCkgLyogMTI2TUIgaW4gRFJBTSAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCUNGR19TRFJBTV9CQVNFCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTE3MSwzMCArMTcxLDMwIEBACiAKIC8qIFNNREs2NDAwIGhhcyAyIGJhbmtzIG9mIERSQU0sIGJ1dCB3ZSB1c2Ugb25seSBvbmUgaW4gVS1Cb290ICovCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCTEKLSNkZWZpbmUgUEhZU19TRFJBTV8xCQlDRkdfU0RSQU1fQkFTRQkvKiBTRFJBTSBCYW5rICMxCSovCisjZGVmaW5lIFBIWVNfU0RSQU1fMQkJQ09ORklHX1NZU19TRFJBTV9CQVNFCS8qIFNEUkFNIEJhbmsgIzEJKi8KICNkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJMHgwODAwMDAwMAkvKiAxMjggTUIgaW4gQmFuayAjMQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgwMDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KIC8qIEFNMjlMVjE2MEIgaGFzIDM1IHNlY3RvcnMsIEFNMjlMVjgwMEIgLSAxOSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk0MAogCiAjZGVmaW5lIENPTkZJR19BTURfTFY4MDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBVc2UgQ0ZJIHBhcmFtZXRlcnMgKG5lZWRlZD8pICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIFVzZSBDRkkgcGFyYW1ldGVycyAobmVlZGVkPykgKi8KIC8qIFVzZSBkcml2ZXJzL2NmaV9mbGFzaC5jLCBldmVuIHRob3VnaCB0aGUgZmxhc2ggaXMgbm90IENGSS1jb21wbGlhbnQJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9MRUdBQ1kKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0xFR0FDWV81MTJLeDE2CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTEVHQUNZXzUxMkt4MTYKIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSg1ICogQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoNSAqIENGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSg1ICogQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSg1ICogQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUJKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogCkBAIC0yMDUsNjUgKzIwNSw2NSBAQAogI2RlZmluZSBDT05GSUdfSURFTlRfU1RSSU5HCSIgZm9yIFNNREs2NDAwIgogCiAvKiBiYXNlIGFkZHJlc3MgZm9yIHVib290ICovCi0jZGVmaW5lIENGR19QSFlfVUJPT1RfQkFTRQkoQ0ZHX1NEUkFNX0JBU0UgKyAweDA3ZTAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BIWV9VQk9PVF9CQVNFCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDA3ZTAwMDAwKQogLyogdG90YWwgbWVtb3J5IGF2YWlsYWJsZSB0byB1Ym9vdCAqLwotI2RlZmluZSBDRkdfVUJPT1RfU0laRQkJKDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX1VCT09UX1NJWkUJCSgxMDI0ICogMTAyNCkKIAogI2lmZGVmIENPTkZJR19FTkFCTEVfTU1VCi0jZGVmaW5lIENGR19NQVBQRURfUkFNX0JBU0UJMHhjMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BUFBFRF9SQU1fQkFTRQkweGMwMDAwMDAwCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkibmFuZCByZWFkIDB4YzAwMTgwMDAgMHg2MDAwMCAweDFjMDAwMDsiIFwKIAkJCQkiYm9vdG0gMHhjMDAxODAwMCIKICNlbHNlCi0jZGVmaW5lIENGR19NQVBQRURfUkFNX0JBU0UJQ0ZHX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQVBQRURfUkFNX0JBU0UJQ09ORklHX1NZU19TRFJBTV9CQVNFCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkibmFuZCByZWFkIDB4NTAwMTgwMDAgMHg2MDAwMCAweDFjMDAwMDsiIFwKIAkJCQkiYm9vdG0gMHg1MDAxODAwMCIKICNlbmRpZgogCiAvKiBOQU5EIFUtQm9vdCBsb2FkIGFuZCBzdGFydCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19VQk9PVF9CQVNFCQkoQ0ZHX01BUFBFRF9SQU1fQkFTRSArIDB4MDdlMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfVUJPT1RfQkFTRQkJKENPTkZJR19TWVNfTUFQUEVEX1JBTV9CQVNFICsgMHgwN2UwMDAwMCkKIAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgwMDQwMDAwCiAKIC8qIE5BTkQgY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkJMHg3MDIwMDAxMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkweDcwMjAwMDEwCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkxCi0jZGVmaW5lIENGR19TM0NfTkFORF9IV0VDQworI2RlZmluZSBDT05GSUdfU1lTX1MzQ19OQU5EX0hXRUNDCiAKLSNkZWZpbmUgQ0ZHX05BTkRfU0tJUF9CQURfRE9UX0kJMSAgLyogIi5pIiByZWFkIHNraXBzIGJhZCBibG9ja3MJICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfV1AJCTEKLSNkZWZpbmUgQ0ZHX05BTkRfWUFGRlNfV1JJVEUJMSAgLyogc3VwcG9ydCB5YWZmcyB3cml0ZQkJICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkJUXzJORFBBR0UJMSAgLyogYmFkLWJsb2NrIG1hcmtlcnMgaW4gMXN0IGFuZCAybmQgcGFnZXMgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9TS0lQX0JBRF9ET1RfSQkxICAvKiAiLmkiIHJlYWQgc2tpcHMgYmFkIGJsb2NrcwkgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfV1AJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1lBRkZTX1dSSVRFCTEgIC8qIHN1cHBvcnQgeWFmZnMgd3JpdGUJCSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQlRfMk5EUEFHRQkxICAvKiBiYWQtYmxvY2sgbWFya2VycyBpbiAxc3QgYW5kIDJuZCBwYWdlcyAgKi8KIAotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfRFNUCUNGR19QSFlfVUJPT1RfQkFTRQkvKiBOVUIgbG9hZC1hZGRyICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX1NUQVJUCUNGR19OQU5EX1VfQk9PVF9EU1QJLyogTlVCIHN0YXJ0LWFkZHIgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfRFNUCUNPTkZJR19TWVNfUEhZX1VCT09UX0JBU0UJLyogTlVCIGxvYWQtYWRkciAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfU1RBUlQJQ09ORklHX1NZU19OQU5EX1VfQk9PVF9EU1QJLyogTlVCIHN0YXJ0LWFkZHIgICAgICovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX09GRlMJKDQgKiAxMDI0KQkvKiBPZmZzZXQgdG8gUkFNIFUtQm9vdCBpbWFnZSAqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfU0laRQkoMjUyICogMTAyNCkJLyogU2l6ZSBvZiBSQU0gVS1Cb290IGltYWdlICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9PRkZTCSg0ICogMTAyNCkJLyogT2Zmc2V0IHRvIFJBTSBVLUJvb3QgaW1hZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9TSVpFCSgyNTIgKiAxMDI0KQkvKiBTaXplIG9mIFJBTSBVLUJvb3QgaW1hZ2UgICAqLwogCiAvKiBOQU5EIGNoaXAgcGFnZSBzaXplCQkqLwotI2RlZmluZSBDRkdfTkFORF9QQUdFX1NJWkUJMjA0OAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFCTIwNDgKIC8qIE5BTkQgY2hpcCBibG9jayBzaXplCQkqLwotI2RlZmluZSBDRkdfTkFORF9CTE9DS19TSVpFCSgxMjggKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkxPQ0tfU0laRQkoMTI4ICogMTAyNCkKIC8qIE5BTkQgY2hpcCBwYWdlIHBlciBibG9jayBjb3VudCAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUEFHRV9DT1VOVAk2NAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUEFHRV9DT1VOVAk2NAogLyogTG9jYXRpb24gb2YgdGhlIGJhZC1ibG9jayBsYWJlbCAqLwotI2RlZmluZSBDRkdfTkFORF9CQURfQkxPQ0tfUE9TCTAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBRF9CTE9DS19QT1MJMAogLyogRXh0cmEgYWRkcmVzcyBjeWNsZSBmb3IgPiAxMjhNaUIgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfNV9BRERSX0NZQ0xFCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF81X0FERFJfQ1lDTEUKIAogLyogU2l6ZSBvZiB0aGUgYmxvY2sgcHJvdGVjdGVkIGJ5IG9uZSBPT0IgKFNwYXJlIEFyZWEgaW4gU2Ftc3VuZyB0ZXJtaW5vbG9neSkgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfRUNDU0laRQlDRkdfTkFORF9QQUdFX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1NJWkUJQ09ORklHX1NZU19OQU5EX1BBR0VfU0laRQogLyogTnVtYmVyIG9mIEVDQyBieXRlcyBwZXIgT09CIC0gUzNDNjQwMCBjYWxjdWxhdGVzIDQgYnl0ZXMgRUNDIGluIDEtYml0IG1vZGUgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfRUNDQllURVMJNAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDQllURVMJNAogLyogTnVtYmVyIG9mIEVDQy1ibG9ja3MgcGVyIE5BTkQgcGFnZSAqLwotI2RlZmluZSBDRkdfTkFORF9FQ0NTVEVQUwkoQ0ZHX05BTkRfUEFHRV9TSVpFIC8gQ0ZHX05BTkRfRUNDU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1NURVBTCShDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFIC8gQ09ORklHX1NZU19OQU5EX0VDQ1NJWkUpCiAvKiBTaXplIG9mIGEgc2luZ2xlIE9PQiByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX05BTkRfT09CU0laRQk2NAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfT09CU0laRQk2NAogLyogTnVtYmVyIG9mIEVDQyBieXRlcyBwZXIgcGFnZSAqLwotI2RlZmluZSBDRkdfTkFORF9FQ0NUT1RBTAkoQ0ZHX05BTkRfRUNDQllURVMgKiBDRkdfTkFORF9FQ0NTVEVQUykKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1RPVEFMCShDT05GSUdfU1lTX05BTkRfRUNDQllURVMgKiBDT05GSUdfU1lTX05BTkRfRUNDU1RFUFMpCiAvKiBFQ0MgYnl0ZSBwb3NpdGlvbnMgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfRUNDUE9TCQl7NDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCBcCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NQT1MJCXs0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIFwKIAkJCQkgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCBcCiAJCQkJIDU2LCA1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2M30KIApAQCAtMjkwLDEwICsyOTAsMTAgQEAKICNpZiAhZGVmaW5lZChDT05GSUdfRU5BQkxFX01NVSkKICNkZWZpbmUgQ09ORklHX0NNRF9VU0IJCQkxCiAjZGVmaW5lIENPTkZJR19VU0JfT0hDSV9ORVcJCTEKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1JFR1NfQkFTRQkJMHg3NDMwMDAwMAotI2RlZmluZSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FCQkiczNjNjQwMCIKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTMKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX0NQVV9JTklUCQkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfUkVHU19CQVNFCQkweDc0MzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCQkiczNjNjQwMCIKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkzCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQJCTEKICNkZWZpbmUgTElUVExFRU5ESUFOCQkJMQkvKiB1c2VkIGJ5IHVzYl9vaGNpLmMJKi8KIAogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UJMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NtbWFjbzQuaCBiL2luY2x1ZGUvY29uZmlncy9zbW1hY280LmgKaW5kZXggZmQxM2RjZC4uYTNmMjY3NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3NtbWFjbzQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc21tYWNvNC5oCkBAIC0zNyw3ICszNyw3IEBACiAjZGVmaW5lIENPTkZJR19UUU01MjAwCQkxCS8qIC4uLiBvbiBUUU01MjAwIG1vZHVsZSAqLwogI3VuZGVmIENPTkZJR19UUU01MjAwX1JFVjEwMAkJLyogIGRlZmluZSBmb3IgcmV2aXNpb24gMTAwIG1vZHVsZXMgKi8KIAotI2RlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLwogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CSAgICAgKi8KQEAgLTQ5LDcgKzQ5LDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQzEgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogLi4uIGF0IDExNTIwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKiBQYXJ0aXRpb25zICovCiAjZGVmaW5lIENPTkZJR19NQUNfUEFSVElUSU9OCkBAIC01Nyw5ICs1Nyw5IEBACiAjZGVmaW5lIENPTkZJR19JU09fUEFSVElUSU9OCiAKIC8qIFBPU1Qgc3VwcG9ydCAqLwotI2RlZmluZSBDT05GSUdfUE9TVAkJKENGR19QT1NUX01FTU9SWSAgIHwgXAotCQkJCSBDRkdfUE9TVF9DUFUJICAgfCBcCi0JCQkJIENGR19QT1NUX0kyQykKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfTUVNT1JZICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DUFUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9JMkMpCiAKICNpZmRlZiBDT05GSUdfUE9TVAogLyogcHJlc2VydmUgc3BhY2UgZm9yIHRoZSBwb3N0X3dvcmQgYXQgZW5kIG9mIG9uLWNoaXAgU1JBTSAqLwpAQCAtMTAxLDcgKzEwMSw3IEBACiAjZGVmaW5lCUNPTkZJR19USU1FU1RBTVAJCS8qIGRpc3BsYXkgaW1hZ2UgdGltZXN0YW1wcyAqLwogCiAjaWYgKFRFWFRfQkFTRSA9PSAweEZDMDAwMDAwKQkJLyogQm9vdCBsb3cgKi8KLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UCQkxCiAjZW5kaWYKIAogLyoKQEAgLTE0MywxNyArMTQzLDE3IEBACiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jZGVmaW5lIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSykKIC8qCiAgKiBQQ0kgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24KICAqCiAgKiBBY3R1YWxseSBhIFBDSSBDbG9jayBvZiA2NiBNSHogaXMgb25seSBzZXQgKGluIGNwdV9pbml0LmMpIGlmCi0gKiBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsgaXMgZGVmaW5lZC4gVGhpcyBpcyBiZWNhdXNlIGEgUENJIENsb2NrCisgKiBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLIGlzIGRlZmluZWQuIFRoaXMgaXMgYmVjYXVzZSBhIFBDSSBDbG9jawogICogb2YgNjYgTUh6IHlldCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgd2l0aCBhIElQQiBCdXMgQ2xvY2sgb2YgNjYgTUh6LgogICovCi0jZGVmaW5lIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KICNlbmRpZgogCiAvKgpAQCAtMTYxLDkgKzE2MSw5IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KICNpZmRlZiBDT05GSUdfVFFNNTIwMF9SRVYxMDAKLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTEJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgZm9yIHJldi4gMTAwIGJvYXJkICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMQkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBmb3IgcmV2LiAxMDAgYm9hcmQgKi8KICNlbHNlCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMyIGZvciBhbGwgb3RoZXIgcmV2cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzIgZm9yIGFsbCBvdGhlciByZXZzICovCiAjZW5kaWYKIAogLyoKQEAgLTE3MiwxMSArMTcyLDExIEBACiAgKiBQbGVhc2Ugbm90aWNlLCB0aGF0IHRoZSByZXN1bHRpbmcgY2xvY2sgZnJlcXVlbmN5IGNvdWxkIGRpZmZlciBmcm9tIHRoZQogICogY29uZmlndXJlZCB2YWx1ZS4gVGhpcyBpcyBiZWNhdXNlIHRoZSBJMkMgY2xvY2sgaXMgZGVyaXZlZCBmcm9tIHN5c3RlbQogICogY2xvY2sgb3ZlciBhIGZyZXF1ZW5jeSBkaXZpZGVyIHdpdGggb25seSBhIGZldyBkaXZpZGVyIHZhbHVlcy4gVS1ib290Ci0gKiBjYWxjdWxhdGVzIHRoZSBiZXN0IGFwcHJveGltYXRpb24gZm9yIENGR19JMkNfU1BFRUQuIEhvd2V2ZXIgdGhlIGNhbGN1bGF0ZWQKKyAqIGNhbGN1bGF0ZXMgdGhlIGJlc3QgYXBwcm94aW1hdGlvbiBmb3IgQ09ORklHX1NZU19JMkNfU1BFRUQuIEhvd2V2ZXIgdGhlIGNhbGN1bGF0ZWQKICAqIGFwcHJveGltYXRpb24gYWxsd2F5cyBsaWVzIGJlbG93IHRoZSBjb25maWd1cmVkIHZhbHVlLCBuZXZlciBhYm92ZS4KICAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24gZm9yIG9uYm9hcmQgRUVQUk9NIE0yNEMzMiAoTTI0QzY0IHNob3VsZCB3b3JrCkBAIC0xODQsMzQgKzE4NCwzNCBAQAogICogRUVQUk9NICgyNEM2NCkgaXMgb24gdGhlIHNhbWUgSTJDIGFkZHJlc3MgKGJ1dCBvbiBvdGhlciBJMkMgYnVzKSwgc28gdGhlCiAgKiBzYW1lIGNvbmZpZ3VyYXRpb24gY291bGQgYmUgdXNlZC4KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4ICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogPTMyIEJ5dGVzIHBlciB3cml0ZSAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qID0zMiBCeXRlcyBwZXIgd3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAogCiAvKgogICogRmxhc2ggY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlURVhUX0JBU0UgLyogMHhGQzAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVRFWFRfQkFTRSAvKiAweEZDMDAwMDAwICovCiAKIC8qIHVzZSBDRkkgZmxhc2ggZHJpdmVyIGlmIG5vIG1vZHVsZSB2YXJpYW50IGlzIHNwZXppZmllZCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0JPT1RDU19TVEFSVCB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDA0MDAwMDAwIC8qIDY0IE1CeXRlICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwotI3VuZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCS8qIG5vdCBzdXBwb3J0ZWQgeWV0IGZvciBBTUQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDA0MDAwMDAwIC8qIDY0IE1CeXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJLyogbm90IHN1cHBvcnRlZCB5ZXQgZm9yIEFNRCAqLwogCi0jaWYgIWRlZmluZWQoQ0ZHX0xPV0JPT1QpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDc2MDAwMCArIDB4MDA4MDAwMDApCi0jZWxzZQkvKiBDRkdfTE9XQk9PVCAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4MDAwNjAwMDApCi0jZW5kaWYJLyogQ0ZHX0xPV0JPT1QgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX0xPV0JPT1QpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDA3NjAwMDAgKyAweDAwODAwMDAwKQorI2Vsc2UJLyogQ09ORklHX1NZU19MT1dCT09UICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDAwNjAwMDApCisjZW5kaWYJLyogQ09ORklHX1NZU19MT1dCT09UICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcwogCQkJCQkgICAoPSBjaGlwIHNlbGVjdHMpICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKQkqLwogCiAvKiBEeW5hbWljIE1URCBwYXJ0aXRpb24gc3VwcG9ydCAqLwogI2RlZmluZSBDT05GSUdfSkZGUzJfQ01ETElORQpAQCAtMjM1LDMyICsyMzUsMzIgQEAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAogCiAvKiBVc2UgT04tQ2hpcCBTUkFNIHVudGlsIFJBTSB3aWxsIGJlIGF2YWlsYWJsZSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQogI2lmZGVmIENPTkZJR19QT1NUCiAvKiBwcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHBvc3Rfd29yZCBhdCBlbmQgb2Ygb24tY2hpcCBTUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1BPU1RfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fUE9TVF9TSVpFCiAjZWxzZQotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCiAjZW5kaWYKIAogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgzODQgPDwgMTApCS8qIFJlc2VydmUgMzg0IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDM4NCA8PCAxMCkJLyogUmVzZXJ2ZSAzODQga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0yOTksMTkgKzI5OSwxOSBAQAogICogICB0ZXN0cy4KICAqLwogI2lmIGRlZmluZWQgKENPTkZJR19NSU5JRkFQKQotIyBkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDkxMDAwMDA0CisjIGRlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDkxMDAwMDA0CiAjZWxpZiBkZWZpbmVkIChDT05GSUdfU1RLNTJYWCkKICMgaWYgZGVmaW5lZCAoQ09ORklHX1NUSzUyWFhfUkVWMTAwKQotIyAgZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHg4MTUwMDAxNAorIyAgZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4ODE1MDAwMTQKICMgZWxzZSAvKiBTVEs1Mnh4IFJFVjIwMCBhbmQgYWJvdmUgKi8KICMgIGlmIGRlZmluZWQgKENPTkZJR19UUU01MjAwX1JFVjEwMCkKICMgICBlcnJvciBUUU01MjAwIFJFVjEwMCBub3Qgc3VwcG9ydGVkIG9uIFNUSzUyWFggUkVWMjAwIG9yIGFib3ZlCiAjICBlbHNlLyogVFFNNTIwMCBSRVYyMDAgYW5kIGFib3ZlICovCi0jICAgZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHg5MTUwMDAwNAorIyAgIGRlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDkxNTAwMDA0CiAjICBlbmRpZgogIyBlbmRpZgogI2Vsc2UgIC8qIFRNUTUyMDAgSW5iZXRyaWVibmFobWUtQm9hcmQgKi8KLSMgZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHg4MTAwMDAwNAorIyBkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHg4MTAwMDAwNAogI2VuZGlmCiAKIC8qCkBAIC0zMjIsMzAgKzMyMiwzMCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAogLyogRW5hYmxlIGFuIGFsdGVybmF0ZSwgbW9yZSBleHRlbnNpdmUgbWVtb3J5IHRlc3QgKi8KLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgpAQCAtMzU3LDI2ICszNTcsMjYgQEAKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQotI2RlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKICNlbHNlCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCTAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQk9PVENTX1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19CT09UQ1NfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNpZmRlZiBDRkdfUENJQ0xLX0VRVUFMU19JUEJDTEtfRElWMgotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA4REYzMCAvKiBmb3IgcGNpX2NsayAgPSA2NiBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQorI2lmZGVmIENPTkZJR19TWVNfUENJQ0xLX0VRVUFMU19JUEJDTEtfRElWMgorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwOERGMzAgLyogZm9yIHBjaV9jbGsgID0gNjYgTUh6ICovCiAjZWxzZQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0REYzMCAvKiBmb3IgcGNpX2NsayA9IDMzIE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwNERGMzAgLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KICNlbmRpZgotI2RlZmluZSBDRkdfQ1MwX1NUQVJUCQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQ1MwX1NJWkUJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCiAKLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgzMzMzMzMxMQkvKiAxIGRlYWQgY3ljbGUgZm9yIGZsYXNoIGFuZCBTTTUwMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMTEJLyogMSBkZWFkIGN5Y2xlIGZvciBmbGFzaCBhbmQgU001MDEgKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc29jcmF0ZXMuaCBiL2luY2x1ZGUvY29uZmlncy9zb2NyYXRlcy5oCmluZGV4IGM0MjU1ZjEuLmM2N2RiOGYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zb2NyYXRlcy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zb2NyYXRlcy5oCkBAIC04NCwyMCArODQsMjAgQEAKICNkZWZpbmUgQ09ORklHX0JUQgkJCS8qIHRvZ2dsZSBicmFuY2ggcHJlZGl0aW9uCSovCiAjZGVmaW5lIENPTkZJR19BRERSX1NUUkVBTUlORwkJLyogdG9nZ2xlIGFkZHIgc3RyZWFtaW5nCSovCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfREJDUiBEQkNSX0lETQkJLyogRW5hYmxlIERlYnVnIEV4Y2VwdGlvbnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0RCQ1IgREJDUl9JRE0JCS8qIEVuYWJsZSBEZWJ1ZyBFeGNlcHRpb25zCSovCiAKLSN1bmRlZglDRkdfRFJBTV9URVNUCQkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMDAKKyN1bmRlZglDT05GSUdfU1lTX0RSQU1fVEVTVAkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMDAKIAogLyoKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfREVGQVVMVAkweEZGNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdAkqLwotI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhFMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUgkqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9QSFlTCUNGR19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfSU1NUgkJQ0ZHX0NDU1JCQVIJLyogUFFJSSB1c2VzIENGR19JTU1SCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4RkY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUgkJMHhFMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUgkqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUwlDT05GSUdfU1lTX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDT05GSUdfU1lTX0lNTVIJKi8KIAogLyogRERSIFNldHVwICovCiAjZGVmaW5lIENPTkZJR19GU0xfRERSMgpAQCAtMTA4LDggKzEwOCw4IEBACiAjdW5kZWYgQ09ORklHX0VDQ19JTklUX1ZJQV9ERFJDT05UUk9MTEVSCS8qIEREUiBjb250cm9sbGVyIG9yIERNQT8gKi8KICNkZWZpbmUgQ09ORklHX01FTV9JTklUX1ZBTFVFCTB4RGVhZEJlZWYKIAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKQEAgLTEyMiw4MCArMTIyLDgwIEBACiAjZGVmaW5lIENPTkZJR19ERFJfREVGQVVMVF9DTAkzMAkJLyogQ0FTIGxhdGVuY3kgMwkqLwogCiAvKiBIYXJkY29kZWQgdmFsdWVzLCB0byB1c2UgaW5zdGVhZCBvZiBTUEQgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkJMHgwMDAwMDAwZgotI2RlZmluZSBDRkdfRERSX0NTMF9DT05GSUcJCTB4ODAwMTAxMDIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMAkJMHgwMDI2MDgwMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCQkweDM5MzVEMzIyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzIJCTB4MTQ5MDRDQzgKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCQkJMHgwMDQ4MDQzMgotI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCQkweDAzMEMwMTAwCi0jZGVmaW5lIENGR19ERFJfQ09ORklHXzIJCTB4MDQ0MDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9DT05GSUcJCQkweEMzMDA4MDAwCi0jZGVmaW5lIENGR19ERFJfQ0xLX0NPTlRST0wJCTB4MDM4MDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCQkyNTYgLyogaW4gTWVncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUwkJMHgwMDAwMDAwZgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHCQkweDgwMDEwMTAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18wCQkweDAwMjYwODAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCQkweDM5MzVEMzIyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCQkweDE0OTA0Q0M4CisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCQkweDAwNDgwNDMyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0lOVEVSVkFMCQkweDAzMEMwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTkZJR18yCQkweDA0NDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTkZJRwkJCTB4QzMwMDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ0xLX0NPTlRST0wJCTB4MDM4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkJMjU2IC8qIGluIE1lZ3MgKi8KIAogLyoKICAqIEZsYXNoIG9uIHRoZSBMb2NhbEJ1cwogICovCi0jZGVmaW5lIENGR19MQkNfQ0FDSEVfQkFTRQkweGYwMDAwMDAwCS8qIExvY2FsYnVzIGNhY2hlYWJsZQkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfQ0FDSEVfQkFTRQkweGYwMDAwMDAwCS8qIExvY2FsYnVzIGNhY2hlYWJsZQkgKi8KIAotI2RlZmluZSBDRkdfRkxBU0gwCQkweEZFMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDEJCTB4RkMwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0gxLCBDRkdfRkxBU0gwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDAJCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDEJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSDEsIENPTkZJR19TWVNfRkxBU0gwIH0KIAotI2RlZmluZSBDRkdfTEJDX0ZMQVNIX0JBU0UJQ0ZHX0ZMQVNIMQkvKiBMb2NhbGJ1cyBmbGFzaCBzdGFydAkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0xCQ19GTEFTSF9CQVNFIC8qIHN0YXJ0IG9mIEZMQVNICSovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0ZMQVNIX0JBU0UJQ09ORklHX1NZU19GTEFTSDEJLyogTG9jYWxidXMgZmxhc2ggc3RhcnQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0xCQ19GTEFTSF9CQVNFIC8qIHN0YXJ0IG9mIEZMQVNICSovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCTB4ZmUwMDEwMDEJLyogcG9ydCBzaXplIDE2Yml0CSovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweGZlMDAwMDMwCS8qIDMyTUIgRmxhc2gJCSovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCQkweGZjMDAxMDAxCS8qIHBvcnQgc2l6ZSAxNmJpdAkqLwotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJMHhmZTAwMDAzMAkvKiAzMk1CIEZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4ZmUwMDEwMDEJLyogcG9ydCBzaXplIDE2Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhmZTAwMDAzMAkvKiAzMk1CIEZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCTB4ZmMwMDEwMDEJLyogcG9ydCBzaXplIDE2Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhmZTAwMDAzMAkvKiAzMk1CIEZsYXNoCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogZmxhc2ggaXMgQ0ZJIGNvbXBhdC4JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogZmxhc2ggaXMgQ0ZJIGNvbXBhdC4JKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkJLyogbnVtYmVyIG9mIGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJCS8qIHNlY3RvcnMgcGVyIGRldmljZQkqLwotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJCS8qIHNlY3RvcnMgcGVyIGRldmljZQkqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKQkqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KIAotI2RlZmluZSBDRkdfTEJDX0xDUlIJCTB4MDAwMzAwMDQgICAgLyogTEIgY2xvY2sgcmF0aW8gcmVnCSovCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMCAgICAvKiBMQiBjb25maWcgcmVnCQkqLwotI2RlZmluZSBDRkdfTEJDX0xTUlQJCTB4MjAwMDAwMDAgICAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lcgkqLwotI2RlZmluZSBDRkdfTEJDX01SVFBSCQkweDIwMDAwMDAwICAgIC8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2MuKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTENSUgkJMHgwMDAzMDAwNCAgICAvKiBMQiBjbG9jayByYXRpbyByZWcJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMCAgICAvKiBMQiBjb25maWcgcmVnCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU1JUCQkweDIwMDAwMDAwICAgIC8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJCTB4MjAwMDAwMDAgICAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzYy4qLwogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCB1c2VkIGFyZWEgaW4gUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTZrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNCA8PCAyMCkJLyogUmVzZXJ2ZSA0IE1CIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2a0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg0IDw8IDIwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYyAqLwogCiAvKiBGUEdBIGFuZCBOQU5EICovCi0jZGVmaW5lIENGR19GUEdBX0JBU0UJCTB4YzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU0laRQkJMHgwMDEwMDAwMAkvKiAxIE1CCQkqLwotI2RlZmluZSBDRkdfSE1JX0JBU0UJCTB4YzAwMTAwMDAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCTB4YzAwMDE4ODEJLyogVVBNQSwgMzItYml0ICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQkweGZmZjAwMDAwCS8qIDEgTUIgCSovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFCQkweGMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TSVpFCQkweDAwMTAwMDAwCS8qIDEgTUIJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSE1JX0JBU0UJCTB4YzAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkweGMwMDAxODgxCS8qIFVQTUEsIDMyLWJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCTB4ZmZmMDAwMDAJLyogMSBNQiAJKi8KIAotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkoQ0ZHX0ZQR0FfQkFTRSArIDB4NzApCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJKENPTkZJR19TWVNfRlBHQV9CQVNFICsgMHg3MCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJMQogI2RlZmluZSBDT05GSUdfQ01EX05BTkQKIAogLyogTElNRSBHREMgKi8KLSNkZWZpbmUgQ0ZHX0xJTUVfQkFTRQkJMHhjODAwMDAwMAotI2RlZmluZSBDRkdfTElNRV9TSVpFCQkweDA0MDAwMDAwCS8qIDY0IE1CCSovCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkweGM4MDAxOGExCS8qIFVQTUIsIDMyLWJpdAkqLwotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhmYzAwMDAwMAkvKiA2NCBNQgkqLworI2RlZmluZSBDT05GSUdfU1lTX0xJTUVfQkFTRQkJMHhjODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xJTUVfU0laRQkJMHgwNDAwMDAwMAkvKiA2NCBNQgkqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4YzgwMDE4YTEJLyogVVBNQiwgMzItYml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJMHhmYzAwMDAwMAkvKiA2NCBNQgkqLwogCiAjZGVmaW5lIENPTkZJR19WSURFTwogI2RlZmluZSBDT05GSUdfVklERU9fTUI4NjJ4eApAQCAtMjA1LDMzICsyMDUsMzMgQEAKICNkZWZpbmUgQ09ORklHX0NPTlNPTEVfRVhUUkFfSU5GTwogI2RlZmluZSBWSURFT19GQl8xNkJQUF9QSVhFTF9TV0FQCiAjZGVmaW5lIENPTkZJR19WR0FfQVNfU0lOR0xFX0RFVklDRQotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgogI2RlZmluZSBDT05GSUdfVklERU9fU1dfQ1VSU09SCiAjZGVmaW5lIENPTkZJR19TUExBU0hfU0NSRUVOCiAjZGVmaW5lIENPTkZJR19WSURFT19CTVBfR1pJUAotI2RlZmluZSBDRkdfVklERU9fTE9HT19NQVhfU0laRQkoMiA8PCAyMCkJLyogZGVjb21wcmVzc2VkIGltZyAqLworI2RlZmluZSBDT05GSUdfU1lTX1ZJREVPX0xPR09fTUFYX1NJWkUJKDIgPDwgMjApCS8qIGRlY29tcHJlc3NlZCBpbWcgKi8KIAogLyogU2VyaWFsIFBvcnQgKi8KIAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWCAgICAgMQogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfQ0NTUkJBUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19DQ1NSQkFSKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0NDU1JCQVIrMHg0NjAwKQogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURSAgICAgICAgIDExNTIwMAogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogCkBAIC0yNDEsNDQgKzI0MSw0NCBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMjEyNAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDIxMjQJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCiAKICNkZWZpbmUgQ09ORklHX0kyQ19NVUxUSV9CVVMKICNkZWZpbmUgQ09ORklHX0kyQ19DTURfVFJFRQotI2RlZmluZSBDRkdfSTJDMl9PRkZTRVQJCTB4MzEwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCQkweDMxMDAKIAogLyogSTJDIFJUQyAqLwogI2RlZmluZSBDT05GSUdfUlRDX1JYODAyNQkJLyogVXNlIEVwc29uIHJ4ODAyNSBydGMgdmlhIGkyYwkqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4MzIJLyogYXQgYWRkcmVzcyAweDMyCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDMyCS8qIGF0IGFkZHJlc3MgMHgzMgkJKi8KIAogLyogSTJDIFc4Mzc4MkcgSFctTW9uaXRvcmluZyBJQyAqLwotI2RlZmluZSBDRkdfSTJDX1c4Mzc4MkdfQUREUgkweDI4CS8qIFc4Mzc4MkcgYWRkcmVzcyAJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1c4Mzc4MkdfQUREUgkweDI4CS8qIFc4Mzc4MkcgYWRkcmVzcyAJCSovCiAKIC8qIEkyQyB0ZW1wIHNlbnNvciAqLwogLyogU29jcmF0ZXMgdXNlcyBNYXhpbSdzCURTNzUsIHdoaWNoIGlzIGNvbXBhdGlibGUgd2l0aCBMTTc1ICovCiAjZGVmaW5lIENPTkZJR19EVFRfTE03NQkJMQogI2RlZmluZSBDT05GSUdfRFRUX1NFTlNPUlMJezR9CQkvKiBTZW5zb3IgYWRkcmVzc2VzCSovCi0jZGVmaW5lIENGR19EVFRfTUFYX1RFTVAJMTI1Ci0jZGVmaW5lIENGR19EVFRfTE9XX1RFTVAJLTU1Ci0jZGVmaW5lIENGR19EVFRfSFlTVEVSRVNJUwkzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTUFYX1RFTVAJMTI1CisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0xPV19URU1QCS01NQorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9IWVNURVJFU0lTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKIAogLyoKICAqIEdlbmVyYWwgUENJCiAgKiBNZW1vcnkgc3BhY2UgaXMgbWFwcGVkIDEtMS4KICAqLwotI2RlZmluZSBDRkdfUENJX1BIWVMJCTB4ODAwMDAwMDAJLyogMUcgUENJIFRMQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QSFlTCQkweDgwMDAwMDAwCS8qIDFHIFBDSSBUTEIgKi8KIAogLyogUENJIGlzIGNsb2NrZWQgYnkgdGhlIGV4dGVybmFsIHNvdXJjZSBhdCAzMyBNSHogKi8KICNkZWZpbmUgQ09ORklHX1BDSV9DTEtfRlJFUQkzMzAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTQkJCSovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHhFMjAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCUNGR19QQ0kxX0lPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDAxMDAwMDAwCS8qIDE2TQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19CQVNFCTB4RTIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMJQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgwMTAwMDAwMAkvKiAxNk0JCQkqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJCS8qIGRvIHBjaSBwbHVnLWFuZC1wbGF5CQkqLwpAQCAtMzE0LDEzICszMTQsMTMgQEAKICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMCAvKiAxMjhLKG9uZSBzZWN0b3IpIGZvciBlbnYJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAogI2RlZmluZSBDT05GSUdfRU5WX0FERFJfUkVEVU5ECShDT05GSUdfRU5WX0FERFItQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lCUNPTkZJR19USU1FU1RBTVAJCS8qIFByaW50IGltYWdlIGluZm8gd2l0aCB0cwkqLwogCkBAIC0zNjIsMjcgKzM2MiwyNyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSAgICAjZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotICAgICNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZiBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcwkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtNDczLDkgKzQ3Myw5IEBACiAjZGVmaW5lIENPTkZJR19QQ0lfT0hDSQkJCTEKICNkZWZpbmUgQ09ORklHX1BDSV9PSENJX0RFVk5PCQkzIC8qIE51bWJlciBpbiBQQ0kgbGlzdCAqLwogI2RlZmluZSBDT05GSUdfUENJX0VIQ0lfREVWTk8JCShDT05GSUdfUENJX09IQ0lfREVWTk8gLyAyKQotI2RlZmluZSBDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMTUKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkJIm9oY2lfcGNpIgotI2RlZmluZSBDRkdfT0hDSV9TV0FQX1JFR19BQ0NFU1MJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1CisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCQkib2hjaV9wY2kiCisjZGVmaW5lIENPTkZJR19TWVNfT0hDSV9TV0FQX1JFR19BQ0NFU1MJMQogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgkJMQogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UJCTEKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NvcmNlcnkuaCBiL2luY2x1ZGUvY29uZmlncy9zb3JjZXJ5LmgKaW5kZXggNGJjNGFmYi4uNWRiMTM3OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3NvcmNlcnkuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc29yY2VyeS5oCkBAIC0zNSw4ICszNSw4IEBACiAKIC8qIElucHV0IGNsb2NrIHJ1bm5pbmcgYXQgNjBNaHosIHJlYWQgSGlkMSBmb3IgdGhlIENQVSBtdWx0aXBsaWVyIHRvCiAgICBkZXRlcm1pbmUgdGhlIENQVSBzcGVlZC4gKi8KLSNkZWZpbmUgQ0ZHX01QQzgyMjBfQ0xLSU4JNjAwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgNjBNSHogKi8KLSNkZWZpbmUgQ0ZHX01QQzgyMjBfU1lTUExMX1ZDT19NVUxUSVBMSUVSIDggLyogVkNPIG11bHRpcGxpZXIgY2FuJ3QgYmUgcmVhZCBmcm9tIGFueSByZWdpc3RlciAqLworI2RlZmluZSBDT05GSUdfU1lTX01QQzgyMjBfQ0xLSU4JNjAwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgNjBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4MjIwX1NZU1BMTF9WQ09fTVVMVElQTElFUiA4IC8qIFZDTyBtdWx0aXBsaWVyIGNhbid0IGJlIHJlYWQgZnJvbSBhbnkgcmVnaXN0ZXIgKi8KIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CSovCkBAIC00Nyw3ICs0Nyw3IEBACiAjZGVmaW5lIENPTkZJR19QU0NfQ09OU09MRQkxCS8qIGNvbnNvbGUgaXMgb24gUFNDICovCiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJICAgIC8qIC4uLiBhdCAxMTUyMDAgYnBzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyogUENJICovCiAjZGVmaW5lIENPTkZJR19QQ0kgICAgICAgICAgICAgIDEKQEAgLTEzNiwxNCArMTM2LDE0IEBACiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMQotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKgpAQCAtMTU0LDUxICsxNTQsNTEgQEAKICAqLwogCiAvKiBGbGFzaCAqLwotI2RlZmluZSBDRkdfQ1MwX0JBU0UJCTB4ZjgwMAotI2RlZmluZSBDRkdfQ1MwX01BU0sJCTB4MDgwMDAwMDAgLyogMTI4IE1CICh0d28gY2hpcHMpICovCi0jZGVmaW5lIENGR19DUzBfQ1RSTAkJMHgwMDEwMTljMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9CQVNFCQkweGY4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfTUFTSwkJMHgwODAwMDAwMCAvKiAxMjggTUIgKHR3byBjaGlwcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQ1RSTAkJMHgwMDEwMTljMAogCiAvKiBOVk0gKi8KLSNkZWZpbmUgQ0ZHX0NTMV9CQVNFCQkweGY3ZTgKLSNkZWZpbmUgQ0ZHX0NTMV9NQVNLCQkweDAwMDQwMDAwIC8qIDI1NksgKi8KLSNkZWZpbmUgQ0ZHX0NTMV9DVFJMCQkweDAwMTAxOTQwIC8qIDhiaXQgcG9ydCBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0JBU0UJCTB4ZjdlOAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9NQVNLCQkweDAwMDQwMDAwIC8qIDI1NksgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ1RSTAkJMHgwMDEwMTk0MCAvKiA4Yml0IHBvcnQgc2l6ZSAqLwogCiAvKiBBdGxhczIgKyBHZW1pbmkgKi8KLSNkZWZpbmUgQ0ZHX0NTMl9CQVNFCQkweGY3ZTcKLSNkZWZpbmUgQ0ZHX0NTMl9NQVNLCQkweDAwMDEwMDAwIC8qIDY0SyovCi0jZGVmaW5lIENGR19DUzJfQ1RSTAkJMHgwMDEwMTFjMCAvKiAxNmJpdCBwb3J0IHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfQkFTRQkJMHhmN2U3CisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX01BU0sJCTB4MDAwMTAwMDAgLyogNjRLKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfQ1RSTAkJMHgwMDEwMTFjMCAvKiAxNmJpdCBwb3J0IHNpemUgKi8KIAogLyogQ0FOIENvbnRyb2xsZXIgKi8KLSNkZWZpbmUgQ0ZHX0NTM19CQVNFCQkweGY3ZTYKLSNkZWZpbmUgQ0ZHX0NTM19NQVNLCQkweDAwMDEwMDAwIC8qIDY0SyAqLwotI2RlZmluZSBDRkdfQ1MzX0NUUkwJCTB4MDAxMDIxNDAgLyogOEJpdCBwb3J0IHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfQkFTRQkJMHhmN2U2CisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX01BU0sJCTB4MDAwMTAwMDAgLyogNjRLICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX0NUUkwJCTB4MDAxMDIxNDAgLyogOEJpdCBwb3J0IHNpemUgKi8KIAogLyogRm9yZWlnbiBpbnRlcmZhY2UgKi8KLSNkZWZpbmUgQ0ZHX0NTNF9CQVNFCQkweGY3ZTUKLSNkZWZpbmUgQ0ZHX0NTNF9NQVNLCQkweDAwMDEwMDAwIC8qIDY0SyAqLwotI2RlZmluZSBDRkdfQ1M0X0NUUkwJCTB4MDAxMDFkYzAgLyogMTZiaXQgcG9ydCBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1M0X0JBU0UJCTB4ZjdlNQorI2RlZmluZSBDT05GSUdfU1lTX0NTNF9NQVNLCQkweDAwMDEwMDAwIC8qIDY0SyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTNF9DVFJMCQkweDAwMTAxZGMwIC8qIDE2Yml0IHBvcnQgc2l6ZSAqLwogCiAvKiBDUExEICovCi0jZGVmaW5lIENGR19DUzVfQkFTRQkJMHhmN2U0Ci0jZGVmaW5lIENGR19DUzVfTUFTSwkJMHgwMDAxMDAwMCAvKiA2NEsgKi8KLSNkZWZpbmUgQ0ZHX0NTNV9DVFJMCQkweDAwMTAwMGMwIC8qIDE2Yml0IHBvcnQgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTNV9CQVNFCQkweGY3ZTQKKyNkZWZpbmUgQ09ORklHX1NZU19DUzVfTUFTSwkJMHgwMDAxMDAwMCAvKiA2NEsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzVfQ1RSTAkJMHgwMDEwMDBjMCAvKiAxNmJpdCBwb3J0IHNpemUgKi8KIAotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UJCShDRkdfQ1MwX0JBU0UgPDwgMTYpCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkoQ0ZHX0ZMQVNIMF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCQkoQ09ORklHX1NZU19DUzBfQkFTRSA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkoQ09ORklHX1NZU19GTEFTSDBfQkFTRSkKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UsICBcCi0JCQkJQ0ZHX0ZMQVNIX0JBU0UrMHgwNDAwMDAwMCB9IC8qIHR3byBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICBcCisJCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFKzB4MDQwMDAwMDAgfSAvKiB0d28gYmFua3MgKi8KIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg4MDAwMDAwIC0gMHg0MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg4MDAwMDAwIC0gMHg0MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQwMDAgICAgICAgICAgICAgICAgICAgICAgIC8qIDE2SyAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENPTkZJR19FTlZfQUREUiArIDB4MjAwMDApCkBAIC0yMjAsMzcgKzIyMCwzNyBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NSQU1fQkFTRQkJKENGR19NQkFSICsgMHgyMDAwMCkKLSNkZWZpbmUgQ0ZHX1NSQU1fU0laRQkJMHg4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fQkFTRQkJKENPTkZJR19TWVNfTUJBUiArIDB4MjAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfU1JBTV9TSVpFCQkweDgwMDAKIAogLyogVXNlIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCShDRkdfTUJBUiArIDB4MjAwMDApCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg4MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCShDT05GSUdfU1lTX01CQVIgKyAweDIwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDgwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKiBTRFJBTSBjb25maWd1cmF0aW9uIChmb3IgU1BEKSAqLwotI2RlZmluZSBDRkdfU0RSQU1fVE9UQUxfQkFOS1MJCTEKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NQRF9JMkNfQUREUgkJMHg1MAkJLyogN2JpdCAqLwotI2RlZmluZSBDRkdfU0RSQU1fU1BEX1NJWkUJCTB4MTAwCi0jZGVmaW5lIENGR19TRFJBTV9DQVNfTEFURU5DWQkJNQkJLyogKENMPTIuNSl4MiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1RPVEFMX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU1BEX0kyQ19BRERSCQkweDUwCQkvKiA3Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU1BEX1NJWkUJCTB4MTAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ0FTX0xBVEVOQ1kJCTUJCS8qIChDTD0yLjUpeDIgKi8KIAogLyogU0RSQU0gZHJpdmUgc3RyZW5ndGggcmVnaXN0ZXIgKGZvciBTU1RMXzIgY2xhc3MgSUkpKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0RSSVZFX1NUUkVOR1RICSgoRFJJVkVfU1RSRU5HVEhfSElHSCA8PCBTRFJBTURTX1NCRV9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRFJJVkVfU1RSRU5HVEgJKChEUklWRV9TVFJFTkdUSF9ISUdIIDw8IFNEUkFNRFNfU0JFX1NISUZUKSB8IFwKIAkJCQkJIChEUklWRV9TVFJFTkdUSF9ISUdIIDw8IFNEUkFNRFNfU0JDX1NISUZUKSB8IFwKIAkJCQkJIChEUklWRV9TVFJFTkdUSF9ISUdIIDw8IFNEUkFNRFNfU0JBX1NISUZUKSB8IFwKIAkJCQkJIChEUklWRV9TVFJFTkdUSF9ISUdIIDw8IFNEUkFNRFNfU0JTX1NISUZUKSB8IFwKQEAgLTI2NywzOCArMjY3LDM4IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkgICAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkgICAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CSAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CSAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwICAvKiAxIC4uLiAxNSBNQiBpbiBEUkFNICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMCAgLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwICAvKiAxIC4uLiAxNSBNQiBpbiBEUkFNICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMCAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJICAgIC8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJICAgIC8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyMjAgQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjIwIENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyoKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCTAKIAogLyoKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVCAgICAgICAgICAgSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwgICAgICAgICAgSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQgICAgICAgICAgIEhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTCAgICAgICAgICBISUQwX0lDRQogKi8KIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zcGMxOTIwLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc3BjMTkyMC5oCmluZGV4IDY1OTQ4NDkuLjFmZTJhMDQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zcGMxOTIwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NwYzE5MjAuaApAQCAtNDAsMTQgKzQwLDE0IEBACiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTkyMDAKIAogLyogdXNlIFBMRCBDTEs0IGluc3RlYWQgb2YgYnJnICovCi0jZGVmaW5lIENGR19TUEMxOTIwX1NNQzFfQ0xLNAorI2RlZmluZSBDT05GSUdfU1lTX1NQQzE5MjBfU01DMV9DTEs0CiAKICNkZWZpbmUgQ09ORklHXzh4eF9PU0NMSwkJMTAwMDAwMDAgLyogMTAgTUh6IG9zY2lsbGF0b3Igb24gRVhUQ0xLICAqLwogI2RlZmluZSBDT05GSUdfOHh4X0NQVUNMS19ERUZBVUxUCTUwMDAwMDAwCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01JTgkJNDAwMDAwMDAKLSNkZWZpbmUgQ0ZHXzh4eF9DUFVDTEtfTUFYCQkxMzMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU184eHhfQ1BVQ0xLX01JTgkJNDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU184eHhfQ1BVQ0xLX01BWAkJMTMzMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJCTB4QzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCQkweEMwMDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgogI2RlZmluZSBDT05GSUdfTEFTVF9TVEFHRV9JTklUCkBAIC0xMDUsMjYgKzEwNSwyNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+IgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgogCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikgLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCiAKLSNkZWZpbmUJQ0ZHX0haCQkgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xMzUsNDIgKzEzNSw0MiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIG1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IEtCIGZvciBtb25pdG9yCSovCiAKICNpZmRlZiBDT05GSUdfQlpJUDIKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgyNTAwIDw8IDEwKQkvKiBSZXNlcnZlIH4yLjUgTUIgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1MDAgPDwgMTApCS8qIFJlc2VydmUgfjIuNSBNQiBmb3IgbWFsbG9jKCkJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgbWFsbG9jKCkJKi8KICNlbmRpZiAvKiBDT05GSUdfQlpJUDIgKi8KIAotI2RlZmluZQlDRkdfQUxMT0NfRFBSQU0JCTEJLyogdXNlIGFsbG9jYXRpb24gcm91dGluZXMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19BTExPQ19EUFJBTQkJMQkvKiB1c2UgYWxsb2NhdGlvbiByb3V0aW5lcwkqLwogCiAvKgogICogRmxhc2gKQEAgLTE3OCwyOCArMTc4LDI4IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGbGFzaCBvcmdhbmlzYXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRSAgICAgICAgICAweEZFMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9DRkkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICAgICAgICAweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUiAgICAgICAgICAgICAgICAgICAgLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyICAgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgICAxICAgICAgICAgICAgICAgLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcyAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICAgICAxMjggICAgICAgICAgICAgLyogTWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAgICAgMSAgICAgICAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICAgIDEyOCAgICAgICAgICAgICAvKiBNYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKIC8qIEVudmlyb25tZW50IGlzIGluIGZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUgICAgICAgMHg0MDAwMCAgICAgICAgIC8qIFdlIHVzZSBvbmUgY29tcGxldGUgc2VjdG9yICAgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAKICNpZmRlZiBDT05GSUdfQ01EX0RBVEUKICMgZGVmaW5lIENPTkZJR19SVENfRFMzMjMxCi0jIGRlZmluZSBDRkdfSTJDX1JUQ19BRERSICAgICAgMHg2OAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIgICAgICAweDY4CiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjEwLDggKzIxMCw4IEBACiAjdW5kZWYgQ09ORklHX0hBUkRfSTJDICAgICAgICAgICAgICAgICAvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICAgICovCiAjZGVmaW5lIENPTkZJR19TT0ZUX0kyQyAgICAgICAgICAgICAgICAxICAgICAgIC8qIEkyQyBiaXQtYmFuZ2VkICAgICAgICAgICAgICAgKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVEICAgICAgICAgIDkzMDAwICAgLyogOTMga0h6IGlzIHN1cHBvc2VkIHRvIHdvcmsgICAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFICAgICAgICAgIDB4RkUKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQgICAgICAgICAgOTMwMDAgICAvKiA5MyBrSHogaXMgc3VwcG9zZWQgdG8gd29yayAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFICAgICAgICAgIDB4RkUKIAogI2lmZGVmIENPTkZJR19TT0ZUX0kyQwogLyoKQEAgLTIzOSwxMCArMjM5LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTAsMjEgKzI1MCwyMSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSICAgICAgKFNJVU1DUl9GUkMpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSICAgICAgKFNJVU1DUl9GUkMpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMjczLDggKzI3Myw4IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotLyogI2RlZmluZSBDRkdfU0NDUglTQ0NSX1RCUyAqLwotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCisvKiAjZGVmaW5lIENPTkZJR19TWVNfU0NDUglTQ0NSX1RCUyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCiAKQEAgLTI4Myw3ICsyODMsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2V0IHRvIHplcm8gdG8gcHJldmVudCB0aGUgcHJvY2Vzc29yIGZyb20gZW50ZXJpbmcgZGVidWcgbW9kZQogICovCi0jZGVmaW5lIENGR19ERVIJCSAwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCQkgMAogCiAKIC8qIEJlY2F1c2Ugb2YgdGhlIHdheSB0aGUgODYwIHN0YXJ0cyB1cCBhbmQgYXNzaWducyBDUzAgdGhlIGVudGlyZQpAQCAtMjk5LDUxICsyOTksNTEgQEAKICAqLwogCiAvKiBCUjAgYW5kIE9SMCAoRkxBU0gpICovCi0jZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwICovCisjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogRkxBU0ggYmFuayAjMCAqLwogCiAKIC8qIHVzZWQgdG8gcmUtbWFwIEZMQVNIIGJvdGggd2hlbiBzdGFydGluZyBmcm9tIFNSQU0gb3IgRkxBU0g6CiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAogCQkJCSBPUl9TQ1lfNl9DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogCiAvKgogICogU0RSQU0gQ1MxIFVQTUIKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFX1BSRUxJTSBDRkdfU0RSQU1fQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0VfUFJFTElNIENPTkZJR19TWVNfU0RSQU1fQkFTRQogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkweDQwMDAwMDAgLyogbWF4IDY0IE1CICovCiAKLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUjFfQU0JMHhGMDAwMDAwMAotLyogI2RlZmluZSBDRkdfT1IxX1RJTUlORyAgT1JfQ1NOVF9TQU0vXCogIHwgT1JfRzVMUyAvXFwqICpcXC8gKlwvICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SMV9BTQkweEYwMDAwMDAwCisvKiAjZGVmaW5lIENPTkZJR19TWVNfT1IxX1RJTUlORyAgT1JfQ1NOVF9TQU0vXCogIHwgT1JfRzVMUyAvXFwqICpcXC8gKlwvICovCiAjZGVmaW5lIFNEUkFNX1RJTUlORwlPUl9TQ1lfMF9DTEsJLyogU0RSQU0tVGltaW5nICovCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JKENGR19QUkVMSU1fT1IxX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9HNUxTIHwgU0RSQU1fVElNSU5HKQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTSAgKChDRkdfU0RSQU1fQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1IxX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9HNUxTIHwgU0RSQU1fVElNSU5HKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0gICgoQ09ORklHX1NZU19TRFJBTV9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1CIHwgQlJfVikKIAotLyogI2RlZmluZSBDRkdfT1IxX0ZJTkFMICAgKChDRkdfT1IxX0FNICYgT1JfQU1fTVNLKSB8IENGR19PUjFfVElNSU5HKSAqLwotLyogI2RlZmluZSBDRkdfQlIxX0ZJTkFMICAgKChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1CIHwgQlJfVikgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19PUjFfRklOQUwgICAoKENPTkZJR19TWVNfT1IxX0FNICYgT1JfQU1fTVNLKSB8IENPTkZJR19TWVNfT1IxX1RJTUlORykgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19CUjFfRklOQUwgICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1CIHwgQlJfVikgKi8KIAotI2RlZmluZSBDRkdfUFRCX1BFUl9DTEsJKCg0MDk2ICogMTYgKiAxMDAwKSAvICg0ICogNjQpKQotI2RlZmluZSBDRkdfUFRBX1BFUl9DTEsgMTk1Ci0jZGVmaW5lIENGR19NQk1SX1BUQgkxOTUKLSNkZWZpbmUgQ0ZHX01QVFBSCU1QVFBSX1BUUF9ESVYxNgotI2RlZmluZSBDRkdfTUFSCQkweDg4CisjZGVmaW5lIENPTkZJR19TWVNfUFRCX1BFUl9DTEsJKCg0MDk2ICogMTYgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX1BUQV9QRVJfQ0xLIDE5NQorI2RlZmluZSBDT05GSUdfU1lTX01CTVJfUFRCCTE5NQorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCU1QVFBSX1BUUF9ESVYxNgorI2RlZmluZSBDT05GSUdfU1lTX01BUgkJMHg4OAogCi0jZGVmaW5lIENGR19NQk1SXzhDT0wgICgoQ0ZHX01CTVJfUFRCIDw8IE1CTVJfUFRCX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19NQk1SXzhDT0wgICgoQ09ORklHX1NZU19NQk1SX1BUQiA8PCBNQk1SX1BUQl9TSElGVCkgfCBcCiAJCQlNQk1SX0FNQl9UWVBFXzAgfCBcCiAJCQlNQk1SX0cwQ0xCX0ExMCB8IFwKIAkJCU1CTVJfRFNCXzFfQ1lDTCB8IFwKQEAgLTM1MSw3ICszNTEsNyBAQAogCQkJTUJNUl9XTEZCXzFYIHwgXAogCQkJTUJNUl9UTEZCXzRYKSAvKiAweDA0ODA0MTE0ICovIC8qIDB4MTA4MDIxMTQgKi8KIAotI2RlZmluZSBDRkdfTUJNUl85Q09MICAoKENGR19NQk1SX1BUQiA8PCBNQk1SX1BUQl9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfTUJNUl85Q09MICAoKENPTkZJR19TWVNfTUJNUl9QVEIgPDwgTUJNUl9QVEJfU0hJRlQpIHwgXAogCQkJTUJNUl9BTUJfVFlQRV8xIHwgXAogCQkJTUJNUl9HMENMQl9BMTAgfCBcCiAJCQlNQk1SX0RTQl8xX0NZQ0wgfCBcCkBAIC0zNjMsMjcgKzM2MywyNyBAQAogLyoKICAqIERTUCBIb3N0IFBvcnQgSW50ZXJmYWNlIENTMwogICovCi0jZGVmaW5lIENGR19TUEMxOTIwX0hQSV9CQVNFICAgMHg5MDAwMDAwMAotI2RlZmluZSBDRkdfUFJFTElNX09SM19BTSAgICAgIDB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TUEMxOTIwX0hQSV9CQVNFICAgMHg5MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUjNfQU0gICAgICAweEY4MDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX09SMyAgICAgICAgIChDRkdfUFJFTElNX09SM19BTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjMgICAgICAgICAoQ09ORklHX1NZU19QUkVMSU1fT1IzX0FNIHwgXAogCQkJCSAgICAgICBPUl9HNUxTIHwgXAogCQkJCSAgICAgICBPUl9TQ1lfMF9DTEsgfCBcCiAJCQkJICAgICAgIE9SX0JJKQogCi0jZGVmaW5lIENGR19CUjMgKChDRkdfU1BDMTkyMF9IUElfQkFTRSAmIEJSX0JBX01TSykgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIzICgoQ09ORklHX1NZU19TUEMxOTIwX0hQSV9CQVNFICYgQlJfQkFfTVNLKSB8IFwKIAkJCQkJICAgICAgIEJSX01TX1VQTUEgfCBcCiAJCQkJCSAgICAgICBCUl9QU18xNiB8IFwKIAkJCQkJICAgICAgIEJSX1YpCiAKLSNkZWZpbmUgQ0ZHX01BTVIgKE1BTVJfR1BMX0E0RElTIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVIgKE1BTVJfR1BMX0E0RElTIHwgXAogCQlNQU1SX1JMRkFfNVggfCBcCiAJCU1BTVJfV0xGQV81WCkKIAogI2RlZmluZSBDT05GSUdfU1BDMTkyMF9IUElfVEVTVAogCiAjaWZkZWYgQ09ORklHX1NQQzE5MjBfSFBJX1RFU1QKLSNkZWZpbmUgSFBJX1JFRyh4KSAgICAgICAgICAgICAoKigodm9sYXRpbGUgdTE2ICopIChDRkdfU1BDMTkyMF9IUElfQkFTRSArIHgpKSkKKyNkZWZpbmUgSFBJX1JFRyh4KSAgICAgICAgICAgICAoKigodm9sYXRpbGUgdTE2ICopIChDT05GSUdfU1lTX1NQQzE5MjBfSFBJX0JBU0UgKyB4KSkpCiAjZGVmaW5lIEhQSV9IUElDXzEgICAgICAgICAgICAgSFBJX1JFRygwKQogI2RlZmluZSBIUElfSFBJQ18yICAgICAgICAgICAgIEhQSV9SRUcoMikKICNkZWZpbmUgSFBJX0hQSUFfMSAgICAgICAgICAgICBIUElfUkVHKDB4MjAwMDAwOCkKQEAgLTM5NywzMCArMzk3LDMwIEBACiAvKgogICogUmFtdHJvbiBGTTE4TDA4IEZSQU0gMzJLQiBvbiBDUzQKICAqLwotI2RlZmluZSBDRkdfU1BDMTkyMF9GUkFNX0JBU0UJMHg4MDEwMDAwMAotI2RlZmluZSBDRkdfUFJFTElNX09SNF9BTQkweGZmZmY4MDAwCi0jZGVmaW5lIENGR19PUjQJCShDRkdfUFJFTElNX09SNF9BTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TUEMxOTIwX0ZSQU1fQkFTRQkweDgwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SNF9BTQkweGZmZmY4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1I0CQkoQ09ORklHX1NZU19QUkVMSU1fT1I0X0FNIHwgXAogCQkJCQlPUl9BQ1NfRElWMiB8IFwKIAkJCQkJT1JfQkkgfCBcCiAJCQkJCU9SX1NDWV80X0NMSyB8IFwKIAkJCQkJT1JfVFJMWCkKIAotI2RlZmluZSBDRkdfQlI0ICgoQ0ZHX1NQQzE5MjBfRlJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNCAoKENPTkZJR19TWVNfU1BDMTkyMF9GUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YpCiAKIC8qCiAgKiBQTEQgQ1M1CiAgKi8KLSNkZWZpbmUgQ0ZHX1NQQzE5MjBfUExEX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUFJFTElNX09SNV9BTQkweGZmZmY4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1BDMTkyMF9QTERfQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SNV9BTQkweGZmZmY4MDAwCiAKLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JCShDRkdfUFJFTElNX09SNV9BTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCQkoQ09ORklHX1NZU19QUkVMSU1fT1I1X0FNIHwgXAogCQkJCQlPUl9DU05UX1NBTSB8IFwKIAkJCQkJT1JfQUNTX0RJVjEgfCBcCiAJCQkJCU9SX0JJIHwgXAogCQkJCQlPUl9TQ1lfMF9DTEsgfCBcCiAJCQkJCU9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0gKChDRkdfU1BDMTkyMF9QTERfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNICgoQ09ORklHX1NZU19TUEMxOTIwX1BMRF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WKQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zcGlldmFsLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc3BpZXZhbC5oCmluZGV4IGFiMWM2ZjQuLjI3ZGRhMjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zcGlldmFsLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NwaWV2YWwuaApAQCAtMzksNyArMzksNyBAQAogI2RlZmluZSBDT05GSUdfU1RLNTJYWAkJMQkvKiAuLi4gb24gYSBTVEs1MlhYIGJhc2UgYm9hcmQgKi8KICNkZWZpbmUgQ09ORklHX1NUSzUyWFhfUkVWMTAwCTEJLyogIGRlZmluZSBmb3IgcmV2aXNpb24gMTAwIGJhc2Vib2FyZHMgKi8KIAotI2RlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLwogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CSAgICAgKi8KQEAgLTUxLDEzICs1MSwxMyBAQAogICovCiAjZGVmaW5lIENPTkZJR19QU0NfQ09OU09MRQk2CS8qIGNvbnNvbGUgaXMgb24gUFNDNiAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAkvKiAuLi4gYXQgMTE1MjAwIGJwcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKICNpZmRlZiBDT05GSUdfU1RLNTJYWAogI3VuZGVmIENPTkZJR19QUzJLQkQJCQkvKiBBVC1QUy8yIEtleWJvYXJkCQkqLwogI2RlZmluZSBDT05GSUdfUFMyTVVMVAkJCS8qIC4uIG9uIFBTLzIgTXVsdGlwbGV4ZXIJKi8KICNkZWZpbmUgQ09ORklHX1BTMlNFUklBTAk2CS8qIC4uIG9uIFBTQzYJCQkqLwotI2RlZmluZSBDT05GSUdfUFMyTVVMVF9ERUxBWQkoQ0ZHX0haLzIpCS8qIEluaXRpYWwgZGVsYXkJKi8KKyNkZWZpbmUgQ09ORklHX1BTMk1VTFRfREVMQVkJKENPTkZJR19TWVNfSFovMikJLyogSW5pdGlhbCBkZWxheQkqLwogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9SCiAjZW5kaWYgLyogQ09ORklHX1NUSzUyWFggKi8KIApAQCAtODEsNyArODEsNyBAQAogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAJCTEKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOCAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOCAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogI2RlZmluZSBDT05GSUdfTlM4MzgyWAkJMQogI2VuZGlmCS8qIENPTkZJR19TVEs1MlhYICovCiAKQEAgLTk4LDcgKzk4LDcgQEAKICNkZWZpbmUgQ09ORklHX0NPTlNPTEVfRVhUUkFfSU5GTwogI2RlZmluZSBDT05GSUdfVklERU9fU1dfQ1VSU09SCiAjZGVmaW5lIENPTkZJR19TUExBU0hfU0NSRUVOCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCiAjZW5kaWYKIAogLyogUGFydGl0aW9ucyAqLwpAQCAtMTEzLDkgKzExMyw5IEBACiAjZW5kaWYKIAogLyogUE9TVCBzdXBwb3J0ICovCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfTUVNT1JZICAgfCBcCi0JCQkJIENGR19QT1NUX0NQVQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfSTJDKQorI2RlZmluZSBDT05GSUdfUE9TVAkJKENPTkZJR19TWVNfUE9TVF9NRU1PUlkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NQVQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0kyQykKIAogI2lmZGVmIENPTkZJR19QT1NUCiAvKiBwcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHBvc3Rfd29yZCBhdCBlbmQgb2Ygb24tY2hpcCBTUkFNICovCkBAIC0xNzcsNyArMTc3LDcgQEAKICNkZWZpbmUJQ09ORklHX1RJTUVTVEFNUAkJLyogZGlzcGxheSBpbWFnZSB0aW1lc3RhbXBzICovCiAKICNpZiAoVEVYVF9CQVNFID09IDB4RkMwMDAwMDApCQkvKiBCb290IGxvdyAqLwotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKICNlbmRpZgogCiAvKgpAQCAtMjE5LDE3ICsyMTksMTcgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogCi0jaWYgZGVmaW5lZChDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEspCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLKQogLyoKICAqIFBDSSBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbgogICoKICAqIEFjdHVhbGx5IGEgUENJIENsb2NrIG9mIDY2IE1IeiBpcyBvbmx5IHNldCAoaW4gY3B1X2luaXQuYykgaWYKLSAqIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSyBpcyBkZWZpbmVkLiBUaGlzIGlzIGJlY2F1c2UgYSBQQ0kgQ2xvY2sKKyAqIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsgaXMgZGVmaW5lZC4gVGhpcyBpcyBiZWNhdXNlIGEgUENJIENsb2NrCiAgKiBvZiA2NiBNSHogeWV0IGhhc24ndCBiZWVuIHRlc3RlZCB3aXRoIGEgSVBCIEJ1cyBDbG9jayBvZiA2NiBNSHouCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIJLyogZGVmaW5lIGZvciA2Nk1IeiBzcGVlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIJLyogZGVmaW5lIGZvciA2Nk1IeiBzcGVlZCAqLwogI2VuZGlmCiAKIC8qCkBAIC0yMzcsOSArMjM3LDkgQEAKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwogI2lmZGVmIENPTkZJR19UUU01MjAwX1JFVjEwMAotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMQkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBmb3IgcmV2LiAxMDAgYm9hcmQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTU9EVUxFCQkxCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIGZvciByZXYuIDEwMCBib2FyZCAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzIgZm9yIGFsbCBvdGhlciByZXZzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMiBmb3IgYWxsIG90aGVyIHJldnMgKi8KICNlbmRpZgogCiAvKgpAQCAtMjQ4LDExICsyNDgsMTEgQEAKICAqIFBsZWFzZSBub3RpY2UsIHRoYXQgdGhlIHJlc3VsdGluZyBjbG9jayBmcmVxdWVuY3kgY291bGQgZGlmZmVyIGZyb20gdGhlCiAgKiBjb25maWd1cmVkIHZhbHVlLiBUaGlzIGlzIGJlY2F1c2UgdGhlIEkyQyBjbG9jayBpcyBkZXJpdmVkIGZyb20gc3lzdGVtCiAgKiBjbG9jayBvdmVyIGEgZnJlcXVlbmN5IGRpdmlkZXIgd2l0aCBvbmx5IGEgZmV3IGRpdmlkZXIgdmFsdWVzLiBVLWJvb3QKLSAqIGNhbGN1bGF0ZXMgdGhlIGJlc3QgYXBwcm94aW1hdGlvbiBmb3IgQ0ZHX0kyQ19TUEVFRC4gSG93ZXZlciB0aGUgY2FsY3VsYXRlZAorICogY2FsY3VsYXRlcyB0aGUgYmVzdCBhcHByb3hpbWF0aW9uIGZvciBDT05GSUdfU1lTX0kyQ19TUEVFRC4gSG93ZXZlciB0aGUgY2FsY3VsYXRlZAogICogYXBwcm94aW1hdGlvbiBhbGx3YXlzIGxpZXMgYmVsb3cgdGhlIGNvbmZpZ3VyZWQgdmFsdWUsIG5ldmVyIGFib3ZlLgogICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbiBmb3Igb25ib2FyZCBFRVBST00gTTI0QzMyIChNMjRDNjQgc2hvdWxkIHdvcmsKQEAgLTI2MCw0OSArMjYwLDQ5IEBACiAgKiBFRVBST00gKDI0QzY0KSBpcyBvbiB0aGUgc2FtZSBJMkMgYWRkcmVzcyAoYnV0IG9uIG90aGVyIEkyQyBidXMpLCBzbyB0aGUKICAqIHNhbWUgY29uZmlndXJhdGlvbiBjb3VsZCBiZSB1c2VkLgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTIKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiA9MzIgQnl0ZXMgcGVyIHdyaXRlICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogPTMyIEJ5dGVzIHBlciB3cml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCiAKIC8qCiAgKiBIVy1Nb25pdG9yIGNvbmZpZ3VyYXRpb24gb24gTWluaS1GQVAKICAqLwogI2lmIGRlZmluZWQgKENPTkZJR19NSU5JRkFQKQotI2RlZmluZSBDRkdfSTJDX0hXTU9OX0FERFIJCTB4MkMKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfSFdNT05fQUREUgkJMHgyQwogI2VuZGlmCiAKIC8qIExpc3Qgb2YgSTJDIGFkZHJlc3NlcyB0byBiZSB2ZXJpZmllZCBieSBQT1NUICovCiAjaWYgZGVmaW5lZCAoQ09ORklHX01JTklGQVApCiAjdW5kZWYgSTJDX0FERFJfTElTVAotI2RlZmluZSBJMkNfQUREUl9MSVNUCXsJQ0ZHX0kyQ19FRVBST01fQUREUiwJXAotCQkJCUNGR19JMkNfSFdNT05fQUREUiwJXAotCQkJCUNGR19JMkNfU0xBVkUgfQorI2RlZmluZSBJMkNfQUREUl9MSVNUCXsJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19IV01PTl9BRERSLAlcCisJCQkJQ09ORklHX1NZU19JMkNfU0xBVkUgfQogI2VuZGlmCiAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVRFWFRfQkFTRSAvKiAweEZDMDAwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJVEVYVF9CQVNFIC8qIDB4RkMwMDAwMDAgKi8KIAogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgaWYgbm8gbW9kdWxlIHZhcmlhbnQgaXMgc3BlemlmaWVkICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfQk9PVENTX1NUQVJUIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAgLyogNjQgTUJ5dGUgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jdW5kZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJLyogbm90IHN1cHBvcnRlZCB5ZXQgZm9yIEFNRCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAgLyogNjQgTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkvKiBub3Qgc3VwcG9ydGVkIHlldCBmb3IgQU1EICovCiAKLSNpZiAhZGVmaW5lZChDRkdfTE9XQk9PVCkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwNzYwMDAwICsgMHgwMDgwMDAwMCkKLSNlbHNlCS8qIENGR19MT1dCT09UICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDA2MDAwMCkKLSNlbmRpZgkvKiBDRkdfTE9XQk9PVCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcworI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDc2MDAwMCArIDB4MDA4MDAwMDApCisjZWxzZQkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDA2MDAwMCkKKyNlbmRpZgkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCiAJCQkJCSAgICg9IGNoaXAgc2VsZWN0cykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCiAKIAogLyoKQEAgLTMxNywzMiArMzE3LDMyIEBACiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19NQkFSCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKIAogLyogVXNlIE9OLUNoaXAgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KICNpZmRlZiBDT05GSUdfUE9TVAogLyogcHJlc2VydmUgc3BhY2UgZm9yIHRoZSBwb3N0X3dvcmQgYXQgZW5kIG9mIG9uLWNoaXAgU1JBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1BPU1RfU0laRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQogI2VuZGlmCiAKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgzODQgPDwgMTApCS8qIFJlc2VydmUgMzg0IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMzgxLDE5ICszODEsMTkgQEAKICAqICAgdGVzdHMuCiAgKi8KICNpZiBkZWZpbmVkIChDT05GSUdfTUlOSUZBUCkKLSMgZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHg5MTAwMDAwNAorIyBkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHg5MTAwMDAwNAogI2VsaWYgZGVmaW5lZCAoQ09ORklHX1NUSzUyWFgpCiAjIGlmIGRlZmluZWQgKENPTkZJR19TVEs1MlhYX1JFVjEwMCkKLSMgIGRlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4ODE1MDAwMTQKKyMgIGRlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDgxNTAwMDE0CiAjIGVsc2UgLyogU1RLNTJ4eCBSRVYyMDAgYW5kIGFib3ZlICovCiAjICBpZiBkZWZpbmVkIChDT05GSUdfVFFNNTIwMF9SRVYxMDApCiAjICAgZXJyb3IgVFFNNTIwMCBSRVYxMDAgbm90IHN1cHBvcnRlZCBvbiBTVEs1MlhYIFJFVjIwMCBvciBhYm92ZQogIyAgZWxzZS8qIFRRTTUyMDAgUkVWMjAwIGFuZCBhYm92ZSAqLwotIyAgIGRlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4OTE1MDAwMDQKKyMgICBkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHg5MTUwMDAwNAogIyAgZW5kaWYKICMgZW5kaWYKICNlbHNlICAvKiBUTVE1MjAwIEluYmV0cmllYm5haG1lLUJvYXJkICovCi0jIGRlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4ODEwMDAwMDQKKyMgZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4ODEwMDAwMDQKICNlbmRpZgogCiAvKgpAQCAtNDA0LDMwICs0MDQsMzAgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKIC8qIEVuYWJsZSBhbiBhbHRlcm5hdGUsIG1vcmUgZXh0ZW5zaXZlIG1lbW9yeSB0ZXN0ICovCi0jZGVmaW5lIENGR19BTFRfTUVNVEVTVAorI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyoKQEAgLTQzOSwyMiArNDM5LDIyIEBACiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAjZWxzZQotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jaWZkZWYgQ0ZHX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwOERGMzAgLyogZm9yIHBjaV9jbGsgID0gNjYgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNpZmRlZiBDT05GSUdfU1lTX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDhERjMwIC8qIGZvciBwY2lfY2xrICA9IDY2IE1IeiAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNERGMzAgLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDRERjMwIC8qIGZvciBwY2lfY2xrID0gMzMgTUh6ICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQlDRkdfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TVEFSVAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQogCiAjZGVmaW5lIENPTkZJR19MQVNUX1NUQUdFX0lOSVQKIApAQCAtNDYyLDI0ICs0NjIsMjQgQEAKICAqIFNSQU0gLSBEbyBub3QgbWFwIGJlbG93IDIgR0IgaW4gYWRkcmVzcyBzcGFjZSwgYmVjYXVzZSB0aGlzIGFyZWEgaXMgdXNlZAogICogZm9yIFNEUkFNIGF1dG9zaXppbmcuCiAgKi8KLSNkZWZpbmUgQ0ZHX0NTMl9TVEFSVAkJMHhFNTAwMDAwMAotI2RlZmluZSBDRkdfQ1MyX1NJWkUJCTB4MTAwMDAwCS8qIDEgTUJ5dGUgKi8KLSNkZWZpbmUgQ0ZHX0NTMl9DRkcJCTB4MDAwNEQ5MzAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfU1RBUlQJCTB4RTUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfU0laRQkJMHgxMDAwMDAJLyogMSBNQnl0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMl9DRkcJCTB4MDAwNEQ5MzAKIAogLyoKICAqIEdyYWZpYyBjb250cm9sbGVyIC0gRG8gbm90IG1hcCBiZWxvdyAyIEdCIGluIGFkZHJlc3Mgc3BhY2UsIGJlY2F1c2UgdGhpcwogICogYXJlYSBpcyB1c2VkIGZvciBTRFJBTSBhdXRvc2l6aW5nLgogICovCiAjZGVmaW5lIFNNNTAxX0ZCX0JBU0UJCTB4RTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9TVEFSVAkJKFNNNTAxX0ZCX0JBU0UpCi0jZGVmaW5lIENGR19DUzFfU0laRQkJMHg0MDAwMDAwCS8qIDY0IE1CeXRlICovCi0jZGVmaW5lIENGR19DUzFfQ0ZHCQkweDhGNDhGRjcwCi0jZGVmaW5lIFNNNTAxX01NSU9fQkFTRQkJQ0ZHX0NTMV9TVEFSVCArIDB4MDNFMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU1RBUlQJCShTTTUwMV9GQl9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TSVpFCQkweDQwMDAwMDAJLyogNjQgTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ0ZHCQkweDhGNDhGRjcwCisjZGVmaW5lIFNNNTAxX01NSU9fQkFTRQkJQ09ORklHX1NZU19DUzFfU1RBUlQgKyAweDAzRTAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgzMzMzMzMxMQkvKiAxIGRlYWQgY3ljbGUgZm9yIGZsYXNoIGFuZCBTTTUwMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMTEJLyogMSBkZWFkIGN5Y2xlIGZvciBmbGFzaCBhbmQgU001MDEgKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFVTQiBzdHVmZgpAQCAtNTAxLDIzICs1MDEsMjMgQEAKICNkZWZpbmUgQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KICNkZWZpbmUgQ09ORklHX0lERV9QUkVJTklUCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTIJLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkyCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfQVRBX0RBVEFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCiAKIC8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzCQkJCQkJICAgICAqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJNAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJCTQKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zdHhncDMuaCBiL2luY2x1ZGUvY29uZmlncy9zdHhncDMuaAppbmRleCBlMDYyNTZkLi4yMTg4ZTU0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc3R4Z3AzLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3N0eGdwMy5oCkBAIC02OCw1MSArNjgsNTEgQEAKIAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GICAgMSAgICAgICAgLyogQ2FsbCBib2FyZF9wcmVfaW5pdCAgICAgICovCiAKLSN1bmRlZiAgQ0ZHX0RSQU1fVEVTVCAgICAgICAgICAgICAgICAgICAgICAgLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgICAgIDB4MDAyMDAwMDAgIC8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORCAgICAgICAgIDB4MDA0MDAwMDAKKyN1bmRlZiAgQ09ORklHX1NZU19EUkFNX1RFU1QgICAgICAgICAgICAgICAgICAgICAgIC8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAgICAgMHgwMDIwMDAwMCAgLyogbWVtdGVzdCByZWdpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORCAgICAgICAgIDB4MDA0MDAwMDAKIAogCiAvKiBMb2NhbGJ1cyBTRFJBTSBpcyBhbiBvcHRpb24sIG5vdCBhbGwgYm9hcmRzIGhhdmUgaXQuCiAgKiBUaGlzIGFkZHJlc3MsIGhvd2V2ZXIsIGlzIHVzZWQgdG8gY29uZmlndXJlIGEgMjU2TSBsb2NhbCBidXMKICAqIHdpbmRvdyB0aGF0IGluY2x1ZGVzIHRoZSBDb25maWcgbGF0Y2ggYmVsb3cuCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFICAgICAgMHhmMDAwMDAwMCAgICAgIC8qIExvY2FsYnVzIFNEUkFNICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fU0laRQkyNTYJCS8qIExCQyBTRFJBTSBpcyA2NE1CCSovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UgICAgICAweGYwMDAwMDAwICAgICAgLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRQkyNTYJCS8qIExCQyBTRFJBTSBpcyA2NE1CCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgICAgICAgIDB4ZmYwMDAwMDAgICAgICAvKiBzdGFydCBvZiBGTEFTSCAxNk0gICAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0gICAgICAgIDB4ZmYwMDE4MDEgICAgICAvKiBwb3J0IHNpemUgMzJiaXQgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgICAgICAgIDB4ZmYwMDAwMDAgICAgICAvKiBzdGFydCBvZiBGTEFTSCAxNk0gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNICAgICAgICAweGZmMDAxODAxICAgICAgLyogcG9ydCBzaXplIDMyYml0ICAgICAgKi8KIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTSAgICAgICAgICAweGZmMDAwZmY3ICAgICAgLyogMTYgTUIgRmxhc2ggICAgICAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMzYJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAgICovCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNICAgICAgICAgIDB4ZmYwMDBmZjcgICAgICAvKiAxNiBNQiBGbGFzaCAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTM2CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgICAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qIFRoZSBjb25maWd1cmF0aW9uIGxhdGNoIGlzIENoaXAgU2VsZWN0IDEuCiAgKiBJdCdzIGFuIDgtYml0IGxhdGNoIGluIHRoZSBsb3dlciA4IGJpdHMgb2YgdGhlIHdvcmQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCTB4ZmMwMDE4MDEJLyogMzItYml0IHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4ZmZmZjBmZjcgICAgICAvKiA2NEsgaXMgZW5vdWdoICovCi0jZGVmaW5lIENGR19MQkNfTENMREVWU19CQVNFCTB4ZmMwMDAwMDAJLyogQmFzZSBvZiBsb2NhbGJ1cyBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJMHhmYzAwMTgwMQkvKiAzMi1iaXQgcG9ydCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCTB4ZmZmZjBmZjcgICAgICAvKiA2NEsgaXMgZW5vdWdoICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xDTERFVlNfQkFTRQkweGZjMDAwMDAwCS8qIEJhc2Ugb2YgbG9jYWxidXMgZGV2aWNlcyAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jdW5kZWYgIENGR19SQU1CT09UCisjdW5kZWYgIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLSNpZmRlZiBDRkdfUkFNQk9PVAotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4NDAwMDAwMDAJLyogQ0NTUkJBUiBieSBCREkgY2ZnCSovCisjaWZkZWYgQ09ORklHX1NZU19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4NDAwMDAwMDAJLyogQ0NTUkJBUiBieSBCREkgY2ZnCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0CSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NDU1JCQVIgICAgICAgICAgICAgMHhmZGYwMDAwMCAgICAgIC8qIHJlbG9jYXRlZCBDQ1NSQkFSICAgICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSICAgICAgICAgICAgIDB4ZmRmMDAwMDAgICAgICAvKiByZWxvY2F0ZWQgQ0NTUkJBUiAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUwlDT05GSUdfU1lTX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDT05GSUdfU1lTX0lNTVIJKi8KIAogLyogRERSIFNldHVwICovCiAjZGVmaW5lIENPTkZJR19GU0xfRERSMQpAQCAtMTI2LDggKzEyNiw4IEBACiAKICNkZWZpbmUgQ09ORklHX01FTV9JTklUX1ZBTFVFCQkweERlYWRCZWVmCiAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKICNkZWZpbmUgQ09ORklHX0RJTU1fU0xPVFNfUEVSX0NUTFIJMQpAQCAtMTM5LDI5ICsxMzksMjkgQEAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgogCiAvKiBsb2NhbCBidXMgZGVmaW5pdGlvbnMgKi8KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4ZjgwMDE4NjEJLyogNjRNQiBsb2NhbGJ1cyBTRFJBTSAgKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKLSNkZWZpbmUgQ0ZHX0xCQ19MQ1JSCQkweDAwMDMwMDA0CS8qIGxvY2FsIGJ1cyBmcmVxCSovCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTEJDX0xTUlQJCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCQ19NUlRQUgkJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzEJCTB4Mjg2MWI3MjMKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8yCQkweDA4NjFiNzIzCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMwkJMHgwODYxYjcyMwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzQJCTB4MTg2MWI3MjMKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl81CQkweDQwNjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJMHhmODAwMTg2MQkvKiA2NE1CIGxvY2FsYnVzIFNEUkFNICAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTENSUgkJMHgwMDAzMDAwNAkvKiBsb2NhbCBidXMgZnJlcQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQkNSCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMQkJMHgyODYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8yCQkweDA4NjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzMJCTB4MDg2MWI3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfNAkJMHgxODYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl81CQkweDQwNjFiNzIzCiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICAgICAgMHg2MDAwMDAwMCAgICAgIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgICAgMHg2MDAwMDAwMCAgICAgIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpICAgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KSAgICAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpICAgIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyogU2VyaWFsIFBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfT05fU0NDCQkvKiBkZWZpbmUgaWYgY29uc29sZSBvbiBTQ0MgKi8KQEAgLTE3MCwxMyArMTcwLDEzIEBACiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkzODQwMAogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDExNTIwMH0KIAogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYgIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qCkBAIC0xODUsMzAgKzE4NSwzMCBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogI2lmIDAKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUyAgICAgICAgezB4MDB9ICAvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUyAgICAgICAgezB4MDB9ICAvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwogI2Vsc2UKIC8qIEkgZGlkIHRoZSAnaWYgMCcgc28gd2UgY291bGQga2VlcCB0aGUgc3ludGF4IGFib3ZlIGlmIGV2ZXIgbmVlZGVkLiAqLwotI3VuZGVmIENGR19JMkNfTk9QUk9CRVMKKyN1bmRlZiBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwogI2VuZGlmCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMwMDAKIAogLyogUmFwZElPIE1hcCBjb25maWd1cmF0aW9uLCBtYXBwZWQgMToxLgogKi8KLSNkZWZpbmUgQ0ZHX1JJT19NRU1fQkFTRQkweGMwMDAwMDAwCi0jZGVmaW5lIENGR19SSU9fTUVNX1BIWVMJQ0ZHX1JJT19NRU1fQkFTRQotI2RlZmluZSBDRkdfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAwCS8qIDUxMiBNICovCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9CQVNFCTB4YzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX1BIWVMJQ09ORklHX1NZU19SSU9fTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX1NJWkUJMHgyMDAwMDAwMDAJLyogNTEyIE0gKi8KIAogLyogU3RhbmRhcmQgODU2MCBQQ0kgYWRkcmVzc2luZywgbWFwcGVkIDE6MS4KICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHhlMjAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCUNGR19QQ0kxX0lPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDAxMDAwMDAwCS8qIDE2IE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19CQVNFCTB4ZTIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMJQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgwMTAwMDAwMAkvKiAxNiBNICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCQkJLyogUENJIEV0aGVybmV0IGNhcmQgKi8KIApAQCAtMjI1LDcgKzIyNSw3IEBACiAjZW5kaWYKIAogI3VuZGVmIENPTkZJR19QQ0lfU0NBTl9TSE9XCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KIAogI2VuZGlmIC8qIENPTkZJR19QQ0kgKi8KIApAQCAtMjYzLDEzICsyNjMsMTMgQEAKICAgICogLSBTZWxlY3QgYnVzIGZvciBiZC9idWZmZXJzCiAgICAqIC0gRnVsbCBkdXBsZXgKICAgICovCi0gICNkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLICAgICAgIChDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCi0gICNkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRSAgICAgIChDTVhGQ1JfUkYyQ1NfQ0xLMTMgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0gICNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFICAgIDAKKyAgI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLICAgICAgIChDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCisgICNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUgICAgICAoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQorICAjZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUgICAgMAogI2lmIDAKLSAgI2RlZmluZSBDRkdfRkNDX1BTTVIgICAgICAgICAgKEZDQ19QU01SX0ZERSkKKyAgI2RlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SICAgICAgICAgIChGQ0NfUFNNUl9GREUpCiAjZWxzZQotICAjZGVmaW5lIENGR19GQ0NfUFNNUiAgICAgICAgICAwCisgICNkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUiAgICAgICAgICAwCiAjZW5kaWYKICAgI2RlZmluZSBGRVRIMl9SU1QJCTB4MDEKICNlbGlmIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMykKQEAgLTI4NywxNSArMjg3LDE1IEBACiAvKiBFbnZpcm9ubWVudCAqLwogLyogV2UgdXNlIHRoZSB0b3AgYm9vdCBzZWN0b3IgZmxhc2gsIHNvIHdlIGhhdmUgc29tZSAxNksgc2VjdG9ycyBmb3IgZW52CiAgKi8KLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAgICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0gICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIDB4NjAwMDApCisgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyAweDYwMDAwKQogICAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMAkvKiAxNksgKG9uZSB0b3Agc2VjdG9yKSBmb3IgZW52ICovCiAgICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNlbHNlCi0gICNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93CSovCisgICNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdwkqLwogICAjZGVmaW5lIENPTkZJR19FTlZfSVNfTk9XSEVSRQkxCS8qIFN0b3JlIEVOViBpbiBtZW1vcnkgb25seQkqLwotICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAgICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNlbmRpZgogCkBAIC0zMDQsNyArMzA0LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkzCS8qIC0xIGRpc2FibGUgYXV0b2Jvb3QgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtMzIzLDcgKzMyMyw3IEBACiAjZGVmaW5lIENPTkZJR19DTURfUElORwogI2RlZmluZSBDT05GSUdfQ01EX0kyQwogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICAgICAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICAgICAjdW5kZWYgQ09ORklHX0NNRF9MT0FEUwogI2Vsc2UKQEAgLTM0NCwyNSArMzQ0LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSJHUFBQPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIkdQUFA9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc3R4c3NhLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc3R4c3NhLmgKaW5kZXggYzQ5NTM4ZS4uYjBiZDA1MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3N0eHNzYS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zdHhzc2EuaApAQCAtNjgsOSArNjgsOSBAQAogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgICAxCQkvKiBDYWxsIGJvYXJkX3ByZV9pbml0CSAqLwogCi0jdW5kZWYJQ0ZHX0RSQU1fVEVTVAkJCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAorI3VuZGVmCUNPTkZJR19TWVNfRFJBTV9URVNUCQkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKIAogCiAvKiBMb2NhbGJ1cyBjb25uZWN0b3IuCVRoZXJlIGFyZSBtYW55IG9wdGlvbnMgdGhhdCBjYW4gYmUKQEAgLTc4LDU0ICs3OCw1NCBAQAogICogVGhpcyBhZGRyZXNzLCBob3dldmVyLCBpcyB1c2VkIHRvIGNvbmZpZ3VyZSBhIDI1Nk0gbG9jYWwgYnVzCiAgKiB3aW5kb3cgdGhhdCBpbmNsdWRlcyB0aGUgQ29uZmlnIGxhdGNoIGJlbG93LgogICovCi0jZGVmaW5lIENGR19MQkNfT1BUSU9OX0JBU0UJMHhGMDAwMDAwMAkvKiBMb2NhbGJ1cyBFeHRlbnNpb24gKi8KLSNkZWZpbmUgQ0ZHX0xCQ19PUFRJT05fU0laRQkyNTYJCS8qIDI1Nk1CICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX09QVElPTl9CQVNFCTB4RjAwMDAwMDAJLyogTG9jYWxidXMgRXh0ZW5zaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX09QVElPTl9TSVpFCTI1NgkJLyogMjU2TUIgKi8KIAogLyogVGhlcmUgYXJlIHZhcmlvdXMgZmxhc2ggb3B0aW9ucyB1c2VkLCB3ZSBjb25maWd1cmUgZm9yIHRoZSBsYXJnZXN0LAogICogd2hpY2ggaXMgNjRNYnl0ZXMuICBUaGUgQ0ZJIHdvcmtzIGZpbmUgYW5kIHdpbGwgZGlzY292ZXIgdGhlIHByb3BlcgogICogc2l6ZXMuCiAgKi8KICNpZmRlZiBDT05GSUdfU1RYU1NBXzRNCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGQzAwMDAwCS8qIHN0YXJ0IG9mICA0IE1pQiBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZDMDAwMDAJLyogc3RhcnQgb2YgIDQgTWlCIGZsYXNoICovCiAjZWxzZQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGQzAwMDAwMAkvKiBzdGFydCBvZiA2NCBNaUIgZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZDMDAwMDAwCS8qIHN0YXJ0IG9mIDY0IE1pQiBmbGFzaCAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCShDRkdfRkxBU0hfQkFTRSB8IDB4MTgwMSkgLyogcG9ydCBzaXplIDMyYml0CSAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX0ZMQVNIX0JBU0UgfCAweDBGRjcpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgMHgxODAxKSAvKiBwb3J0IHNpemUgMzJiaXQJICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgMHgwRkY3KQogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQotI3VuZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkqLworI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUIHsgQ0ZHX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQogCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogCiAvKiBUaGUgY29uZmlndXJhdGlvbiBsYXRjaCBpcyBDaGlwIFNlbGVjdCAxLgogICogSXQncyBhbiA4LWJpdCBsYXRjaCBpbiB0aGUgbG93ZXIgOCBiaXRzIG9mIHRoZSB3b3JkLgogICovCi0jZGVmaW5lIENGR19MQkNfQ0ZHTEFUQ0hfQkFTRQkweEZCMDAwMDAwCS8qIEJhc2Ugb2YgY29uZmlnIGxhdGNoICovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCQkweEZCMDAxODAxCS8qIDMyLWJpdCBwb3J0ICovCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkweEZGRkYwRkY3CS8qIDY0SyBpcyBlbm91Z2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfQ0ZHTEFUQ0hfQkFTRQkweEZCMDAwMDAwCS8qIEJhc2Ugb2YgY29uZmlnIGxhdGNoICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJMHhGQjAwMTgwMQkvKiAzMi1iaXQgcG9ydCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCTB4RkZGRjBGRjcJLyogNjRLIGlzIGVub3VnaCAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jdW5kZWYJQ0ZHX1JBTUJPT1QKKyN1bmRlZglDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1JBTUJPT1QKLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfREVGQVVMVAkweDQwMDAwMDAwCS8qIENDU1JCQVIgYnkgQkRJIGNmZwkqLworI2lmZGVmIENPTkZJR19TWVNfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweDQwMDAwMDAwCS8qIENDU1JCQVIgYnkgQkRJIGNmZwkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdAkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSCSovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUgkqLwogCiAvKiBERFIgU2V0dXAgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9ERFIxCkBAIC0xMzksOCArMTM5LDggQEAKIAogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJCTB4RGVhZEJlZWYKIAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCiAKICNkZWZpbmUgQ09ORklHX05VTV9ERFJfQ09OVFJPTExFUlMJMQogI2RlZmluZSBDT05GSUdfRElNTV9TTE9UU19QRVJfQ1RMUgkxCkBAIC0xNTIsNDggKzE1Miw0OCBAQAogI3VuZGVmIENPTkZJR19DTE9DS1NfSU5fTUhaCiAKIC8qIGxvY2FsIGJ1cyBkZWZpbml0aW9ucyAqLwotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJMHhmODAwMTg2MQkvKiA2NE1CIGxvY2FsYnVzIFNEUkFNCSovCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkweGZjMDA2OTAxCi0jZGVmaW5lIENGR19MQkNfTENSUgkJMHgwMDAzMDAwNAkvKiBsb2NhbCBidXMgZnJlcQkqLwotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCQ19MU1JUCQkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8xCQkweDI4NjFiNzIzCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMgkJMHgwODYxYjcyMwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzMJCTB4MDg2MWI3MjMKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl80CQkweDE4NjFiNzIzCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNQkJMHg0MDYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4ZjgwMDE4NjEJLyogNjRNQiBsb2NhbGJ1cyBTRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTENSUgkJMHgwMDAzMDAwNAkvKiBsb2NhbCBidXMgZnJlcQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQkNSCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMQkJMHgyODYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8yCQkweDA4NjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzMJCTB4MDg2MWI3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfNAkJMHgxODYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl81CQkweDQwNjFiNzIzCiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg2MDAwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg2MDAwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDUxMiAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyogU2VyaWFsIFBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVggICAgIDIKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19DQ1NSQkFSKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ2MDApCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKgpAQCAtMjAyLDM5ICsyMDIsMzkgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMJCQkvKiBVc2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyICovCiAjZGVmaW5lICBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI3VuZGVmIENGR19JMkNfTk9QUk9CRVMKLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI3VuZGVmIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCiAKIC8qIEkyQyBSVEMgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMzcJCS8qIFRoaXMgaXMgcmVhbGx5IGEgRFMxMzM5IFJUQwkqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgJLyogYXQgYWRkcmVzcyAweDY4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CS8qIGF0IGFkZHJlc3MgMHg2OAkJKi8KIAogLyogSTJDIEVFUFJPTS4JQVQyNEMzMiwgd2Uga2VlcCBvdXIgZW52aXJvbm1lbnQgaW4gaGVyZS4KICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTEJLyogMTAxMDAwMXgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogPTMyIEJ5dGVzIHBlciB3cml0ZQkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTEJLyogMTAxMDAwMXgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiA9MzIgQnl0ZXMgcGVyIHdyaXRlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKIAogLyoKICAqIFN0YW5kYXJkIDg1NTUgUENJIG1hcHBpbmcuCiAgKiBBZGRyZXNzZXMgYXJlIG1hcHBlZCAxLTEuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fUEhZUwlDRkdfUENJMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1BIWVMJMHhlMjAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19TSVpFCTB4MDEwMDAwMDAJLyogMTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCTB4ZTIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgwMTAwMDAwMAkvKiAxNk0gKi8KIAotI2RlZmluZSBDRkdfUENJMl9NRU1fQkFTRQkweGEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kyX01FTV9QSFlTCUNGR19QQ0kyX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kyX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMl9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fUEhZUwkweGUzMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kyX0lPX1NJWkUJMHgwMTAwMDAwMAkvKiAxNk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFCTB4YTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMl9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMJMHhlMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fU0laRQkweDAxMDAwMDAwCS8qIDE2TSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQkJCS8qIFBDSSBFdGhlcm5ldCBjYXJkICovCiAjZGVmaW5lIENPTkZJR19NUEM4NVhYX1BDSTIJMQpAQCAtMjUxLDcgKzI1MSw3IEBACiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcJLyogTW90b3JvbGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NwkvKiBNb3Rvcm9sYSAqLwogCiAjZW5kaWYgLyogQ09ORklHX1BDSSAqLwogCkBAIC0yODksMTMgKzI4OSwxMyBAQAogICAgKiAtIFNlbGVjdCBidXMgZm9yIGJkL2J1ZmZlcnMKICAgICogLSBGdWxsIGR1cGxleAogICAgKi8KLSAgI2RlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKLSAgI2RlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTMgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0gICNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKKyAgI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCisgICNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxMyB8IENNWEZDUl9URjJDU19DTEsxNCkKKyAgI2RlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKICNpZiAwCi0gICNkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFKQorICAjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUpCiAjZWxzZQotICAjZGVmaW5lIENGR19GQ0NfUFNNUgkJMAorICAjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCTAKICNlbmRpZgogICAjZGVmaW5lIEZFVEgyX1JTVAkJMHgwMQogI2VsaWYgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAzKQpAQCAtMzIyLDE0ICszMjIsMTQgQEAKICMgZWxzZQkvKiBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gLSA2NCBNaUIgZmxhc2ggKi8KICMgIGRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCiAjIGVuZGlmCi0jIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQogIyBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQwMDAKICMgZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENPTkZJR19FTlZfQUREUiAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQogIyBkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkoQ09ORklHX0VOVl9TSVpFKQogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZQlDT05GSUdfVElNRVNUQU1QCQkvKiBQcmludCBpbWFnZSBpbmZvIHdpdGggdHMJKi8KIApAQCAtMzY0LDcgKzM2NCw3IEBACiAgICAgI2RlZmluZSBDT05GSUdfQ01EX01JSQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogICAgICN1bmRlZiBDT05GSUdfQ01EX0VOVgogICAgICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZWxzZQpAQCAtMzc3LDI1ICszNzcsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIlNTQT0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSJTU0E9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc3R4eHRjLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc3R4eHRjLmgKaW5kZXggN2JhOGI3Ny4uYmMwNzhjZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3N0eHh0Yy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zdHh4dGMuaApAQCAtNzAsNyArNzAsNyBAQAogCiAjZGVmaW5lIENPTkZJR19BVVRPU0NSSVBUCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTAJLyogZWNobyBvZmYgZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtOTUsNyArOTUsNyBAQAogCiAjZGVmaW5lCUNPTkZJR19ORVRfTVVMVEkJMQkvKiB0aGUgb25seSB3YXkgdG8gZ2V0IHRoZSBGRUMgaW4gKi8KICNkZWZpbmUJRkVDX0VORVQJCTEJLyogZXRoLmMgbmVlZHMgaXQgdGhhdCB3YXkuLi4gKi8KLSN1bmRlZiBDRkdfRElTQ09WRVJfUEhZCisjdW5kZWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKICNkZWZpbmUgQ09ORklHX01JSQkJMQogI2RlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKICN1bmRlZiBDT05GSUdfUk1JSQpAQCAtMTI5LDI5ICsxMjksMjkgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJInh0Yz4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSJ4dGM+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJMQotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAzMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDcwMDAwMAkvKiAzIC4uLiA3IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDMwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDcwMDAwMAkvKiAzIC4uLiA3IE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE2MSw0MiArMTYxLDQyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAogI2lmIGRlZmluZWQoREVCVUcpCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgogCiAvKiB5ZXMgdGhpcyBpcyB3ZWlyZCwgSSBrbm93IDopICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFIHwgMHgwMEYwMDAwMCkKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgMHgwMEYwMDAwMCkKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweDgwMDAwMDAwCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KQEAgLTIwNCwzMCArMjA0LDMwIEBACiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAKLSNkZWZpbmUJQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwMDAwMDAwKQorI2RlZmluZQlDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAwMDAwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMAogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAogCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENGR19GTEFTSF9CQVNFICsgMHgwMDAxMDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDAxMDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECTAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAlDT05GSUdfRU5WX1NJWkUKIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLSN1bmRlZiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVCB7IENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSArIDB4MjAwMDAwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCB7IENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgyMDAwMDAwIH0KIAotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIzNywxMCArMjM3LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNDgsMjcgKzI0OCwyNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfRlJDIHwgU0lVTUNSX0dCNUUpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfRlJDIHwgU0lVTUNSX0dCNUUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI4MSwxMSArMjgxLDExIEBACiAjaWYgQ09ORklHX1hJTiA9PSAxMDAwMDAwMAogCiAjaWYgTVBDOFhYX0haID09IDUwMDAwMDAwCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgxIDw8IFBMUFJDUl9TX1NISUZUKSB8ICgxMCA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbGlmIE1QQzhYWF9IWiA9PSA2NjY2NjY2NgotI2RlZmluZSBDRkdfUExQUkNSCSgoMSA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgyIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDEgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMiA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMSA8PCBQTFBSQ1JfU19TSElGVCkgfCAoMTMgPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxzZQpAQCAtMzA4LDEyICszMDgsMTIgQEAKIAogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKICNpZiBNUEM4WFhfSFogPiA2NjY2NjY2NgotI2RlZmluZSBDRkdfU0NDUgkoLyogU0NDUl9UQlMgICAgIHwgKi8gU0NDUl9DUlFFTiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCSgvKiBTQ0NSX1RCUyAgICAgfCAqLyBTQ0NSX0NSUUVOIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDAgfCBTQ0NSX0VCREYwMSkKICNlbHNlCi0jZGVmaW5lIENGR19TQ0NSCSgvKiBTQ0NSX1RCUyAgICAgfCAqLyBTQ0NSX0NSUUVOIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKC8qIFNDQ1JfVEJTICAgICB8ICovIFNDQ1JfQ1JRRU4gfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTMyNCw4ICszMjQsOCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotLyojZGVmaW5lCUNGR19ERVIJMHgyMDAyMDAwRiovCi0jZGVmaW5lIENGR19ERVIJMAorLyojZGVmaW5lCUNPTkZJR19TWVNfREVSCTB4MjAwMjAwMEYqLworI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzQzLDE4ICszNDMsMTggQEAKIAogI2RlZmluZSBGTEFTSF9CQU5LX01BWF9TSVpFCTB4MDEwMDAwMDAJLyogbWF4IHNpemUgcGVyIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkoMHhGRkZGRkZGRkxVICYgfihGTEFTSF9CQU5LX01BWF9TSVpFIC0gMSkpCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JKDB4RkZGRkZGRkZMVSAmIH4oRkxBU0hfQkFOS19NQVhfU0laRSAtIDEpKQogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDExLCBUUkxYID0gMCwgQ1NOVCA9IDEsIFNDWSA9IDUsIEVIVFIgPSAxCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0JJIHwgT1JfU0NZXzVfQ0xLIHwgT1JfVFJMWCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0JJIHwgT1JfU0NZXzVfQ0xLIHwgT1JfVFJMWCkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkoKDB4RkZGRkZGRkZMVSAmIH4oRkxBU0hfQkFOS19NQVhfU0laRSAtIDEpKSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoKDB4RkZGRkZGRkZMVSAmIH4oRkxBU0hfQkFOS19NQVhfU0laRSAtIDEpKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKIAogLyoKICAqIEJSNCBhbmQgT1I0IChTRFJBTSkKQEAgLTM2NCwxMCArMzY0LDEwIEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkoMjU2IDw8IDIwKQkvKiBtYXggMjU2TUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkoT1JfQ1NOVF9TQU0gfCBPUl9HNUxTKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkoT1JfQ1NOVF9TQU0gfCBPUl9HNUxTKQogCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCSgoMHhGRkZGRkZGRkxVICYgfihTRFJBTV9NQVhfU0laRSAtIDEpKSB8IENGR19PUl9USU1JTkdfU0RSQU0pCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCSgoU0RSQU1fQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9QU18zMiB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkoKDB4RkZGRkZGRkZMVSAmIH4oU0RSQU1fTUFYX1NJWkUgLSAxKSkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCSgoU0RSQU1fQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9QU18zMiB8IEJSX1YpCiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyCkBAIC00MDAsMzQgKzQwMCwzNCBAQAogICogODAgTWh6ID0+IDgwLjAwMC4wMDAgLyBEaXZpZGVyID0gMTU2CiAgKi8KIAotI2RlZmluZSBDRkdfTUFNUl9QVEEJCSAyMzQKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJIDIzNAogCiAvKgogICogRm9yIDE2IE1CaXQsIHJlZnJlc2ggcmF0ZXMgY291bGQgYmUgMzEuMyB1cwogICogKD0gNjQgbXMgLyAySyA9IDEyNSAvIHF1YWQgYnVyc3RzKS4KICAqIEZvciBhIHNpbXBsZXIgaW5pdGlhbGl6YXRpb24sIDE1LjYgdXMgaXMgdXNlZCBpbnN0ZWFkLgogICoKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCi0gKiAjZGVmaW5lIENGR19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIAogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKQEAgLTQ1MCwxMiArNDUwLDEyIEBACiAKIC8qIE5BTkQgKi8KICNkZWZpbmUgQ09ORklHX05BTkRfTEVHQUNZCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCU5BTkRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJTkFORF9CQVNFCiAjZGVmaW5lIENPTkZJR19NVERfTkFORF9FQ0NfSkZGUzIKICNkZWZpbmUgQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURQogI2RlZmluZSBDT05GSUdfTVREX05BTkRfVU5TQUZFCiAKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEKICN1bmRlZiBOQU5EX05PX1JCCiAKICNkZWZpbmUgU0VDVE9SU0laRQkJNTEyCkBAIC00NjksMzkgKzQ2OSwzOSBAQAogLyogQUxFID0gUEMxNSwgQ0xFID0gUEIyMywgQ0UgPSBQQTcsIEZfUllfQlkgPSBQQTYgKi8KICNkZWZpbmUgTkFORF9ESVNBQkxFX0NFKG5hbmQpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYWRhdCkgfD0gICgxIDw8ICgxNSAtIDcpKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYWRhdCkgfD0gICgxIDw8ICgxNSAtIDcpKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0VOQUJMRV9DRShuYW5kKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkYXQpICY9IH4oMSA8PCAoMTUgLSA3KSk7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkYXQpICY9IH4oMSA8PCAoMTUgLSA3KSk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9DVExfQ0xSQUxFKG5hbmRwdHIpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCkgJj0gfigxIDw8ICgxNSAtIDE1KSk7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQpICY9IH4oMSA8PCAoMTUgLSAxNSkpOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIE5BTkRfQ1RMX1NFVEFMRShuYW5kcHRyKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQpIHw9ICAoMSA8PCAoMTUgLSAxNSkpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0KSB8PSAgKDEgPDwgKDE1IC0gMTUpKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0NUTF9DTFJDTEUobmFuZHB0cikgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQpICY9IH4oMSA8PCAoMzEgLSAyMykpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQpICY9IH4oMSA8PCAoMzEgLSAyMykpOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIE5BTkRfQ1RMX1NFVENMRShuYW5kcHRyKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkgfD0gICgxIDw8ICgzMSAtIDIzKSk7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkgfD0gICgxIDw8ICgzMSAtIDIzKSk7IFwKIAl9IHdoaWxlKDApCiAKICNpZm5kZWYgTkFORF9OT19SQgogI2RlZmluZSBOQU5EX1dBSVRfUkVBRFkobmFuZCkgXAogCWRvIHsgXAogCQlpbnQgX3RyaWVzID0gMDsgXAotCQl3aGlsZSAoKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYWRhdCAmICgxIDw8ICgxNSAtIDYpKSkgPT0gMCkgXAorCQl3aGlsZSAoKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkYXQgJiAoMSA8PCAoMTUgLSA2KSkpID09IDApIFwKIAkJCWlmICgrK190cmllcyA+IDEwMDAwMCkgXAogCQkJCWJyZWFrOyBcCiAJfSB3aGlsZSAoMCkKQEAgLTUyOSw4ICs1MjksOCBAQAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLSNkZWZpbmUgQ0ZHX0RJUkVDVF9GTEFTSF9URlRQCi0jZGVmaW5lIENGR19ESVJFQ1RfTkFORF9URlRQCisjZGVmaW5lIENPTkZJR19TWVNfRElSRUNUX0ZMQVNIX1RGVFAKKyNkZWZpbmUgQ09ORklHX1NZU19ESVJFQ1RfTkFORF9URlRQCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtNTM5LDcgKzUzOSw3IEBACiAgKi8KICNkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4MDAwMDAwODAJCS8qIGJpdCAyNCAqLwogCi0jZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDRkdfSFogLyAyKQorI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ09ORklHX1NZU19IWiAvIDIpCiAjZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJU1RBVFVTX0xFRF9CTElOS0lORwogCiAjZGVmaW5lIFNUQVRVU19MRURfQUNUSVZFCTAJCS8qIExFRCBvbiBmb3IgYml0ID09IDAJKi8KQEAgLTU1NCwxNSArNTU0LDE1IEBACiAKICNkZWZpbmUgX19sZWRfdG9nZ2xlKF9tc2spIFwKIAlkbyB7IFwKLQkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEucGNtY19wZ2NyYiBePSAoX21zayk7IFwKKwkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhLnBjbWNfcGdjcmIgXj0gKF9tc2spOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIF9fbGVkX3NldChfbXNrLCBfc3QpIFwKIAlkbyB7IFwKIAkJaWYgKChfc3QpKSBcCi0JCQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYS5wY21jX3BnY3JiIHw9IChfbXNrKTsgXAorCQkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhLnBjbWNfcGdjcmIgfD0gKF9tc2spOyBcCiAJCWVsc2UgXAotCQkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEucGNtY19wZ2NyYiAmPSB+KF9tc2spOyBcCisJCQkoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEucGNtY19wZ2NyYiAmPSB+KF9tc2spOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIF9fbGVkX2luaXQobXNrLCBzdCkgX19sZWRfc2V0KG1zaywgc3QpCkBAIC01NzEsOSArNTcxLDkgQEAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYJCTEKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUJMQotI2RlZmluZSBDRkdfQ09OU09MRV9FTlZfT1ZFUldSSVRFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUJMQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfRU5WX09WRVJXUklURQkxCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zdXpha3UuaCBiL2luY2x1ZGUvY29uZmlncy9zdXpha3UuaAppbmRleCBjYzlmNmJkLi5iNzAyZGUwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc3V6YWt1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3N1emFrdS5oCkBAIC0zNiwyMSArMzYsMjEgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkweDAxMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmZjAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwNDAwMDAwCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmZmMDAxMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfU0RSQU1fQkFTRSArIENGR19TRFJBTV9TSVpFIC0gKDEwMjQgKiAxMDI0KSkKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19CQVNFCQkoQ0ZHX01PTklUT1JfQkFTRSAtICgxMDI0ICogMTAyNCkpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhmZmYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgQ09ORklHX1NZU19TRFJBTV9TSVpFIC0gKDEwMjQgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtICgxMDI0ICogMTAyNCkpCiAKICNkZWZpbmUgQ09ORklHX1hJTElOWF9VQVJUTElURQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwIH0KIAogLyogU3lzdGVtIFJlZ2lzdGVyIChHUElPKSAqLwogI2RlZmluZSBNSUNST0JMQVpFX1NZU1JFR19CQVNFX0FERFIgMHhGRkZGQTAwMApAQCAtNjcsMjUgKzY3LDI1IEBACiAjdW5kZWYgQ09ORklHX0NNRF9ORVQKICN1bmRlZiBDT05GSUdfQ01EX01JU0MKIAotI2RlZmluZSBDRkdfVUFSVDFfQkFTRQkJKDB4RkZGRjIwMDApCi0jZGVmaW5lIENPTkZJR19TRVJJQUxfQkFTRQlDRkdfVUFSVDFfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlQxX0JBU0UJCSgweEZGRkYyMDAwKQorI2RlZmluZSBDT05GSUdfU0VSSUFMX0JBU0UJQ09ORklHX1NZU19VQVJUMV9CQVNFCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiU1VaQUtVPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2Ci0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiU1VaQUtVPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQlDRkdfU0RSQU1fQkFTRQkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOVlJBTSBvcmdhbml6YXRpb24KQEAgLTk4LDExICs5OCwxMSBAQAogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ODAwMDAwMDAJLyogaW5zaWRlIG9mIFNEUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDgwMDAwMDAwCS8qIGluc2lkZSBvZiBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDIwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogI2RlZmluZSBYSUxJTlhfQ0xPQ0tfRlJFUQk1MDAwMDAwMAogI2RlZmluZSBDT05GSUdfWElMSU5YX0NMT0NLX0ZSRVEJWElMSU5YX0NMT0NLX0ZSRVEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zdm1fc2M4eHguaCBiL2luY2x1ZGUvY29uZmlncy9zdm1fc2M4eHguaAppbmRleCA5NTA3ODQ2Li4zOTE3YTFiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc3ZtX3NjOHh4LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3N2bV9zYzh4eC5oCkBAIC01NCw3ICs1NCw3IEBACiAvKiAjZGVmaW5lIENPTkZJR19TRFJBTV8xNk0gKi8KICNkZWZpbmUgQ09ORklHX1NEUkFNXzMyTQogLyogI2RlZmluZSBDT05GSUdfU0RSQU1fNjRNICovCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTIDB4ZmZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTIDB4ZmZmZmZmZmYKIC8qCiAgKiBIaWdoIExldmVsIENvbmZpZ3VyYXRpb24gT3B0aW9ucwogICogKGVhc3kgdG8gY2hhbmdlKQpAQCAtMTE0LDcgKzExNCw3IEBACiAJInRmdHBib290IDB4MjEwMDAwIHBJbWFnZS1zYzg1NXQ7Ym9vdG0gMHgyMTAwMDAiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAKICNpZmRlZiBDT05GSUdfTENECkBAIC0xNTYsMzAgKzE1NiwzMCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSNpZmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgICAgICI+ICIKKyNpZmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAgICAgIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE4OSw0MyArMTg5LDQzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKIApAQCAtMjQ4LDE2ICsyNDgsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDQ2NDU0QzM4CS8qICdTVk04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NDY0NTRDMzgJLyogJ1NWTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjY3LDEzICsyNjcsMTMgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0vKiNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorLyojZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICovCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSIDB4ZmZmZmZmODgKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAweGZmZmZmZjg4CiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjgyLDEwICsyODIsMTAgQEAKICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLS8qI2RlZmluZSBDRkdfU0lVTUNSIDB4MDA2MTBjMDAJKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUiAweDAwMDAwMDAwCisvKiNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IgMHgwMDYxMGMwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUiAweDAwMDAwMDAwCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yOTMsMjAgKzI5MywyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJMHgwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJMHgwMDAxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJMHgwMGMzCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJMHgwMGMzCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCTB4MDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0zMTUsMTkgKzMxNSwxOSBAQAogICogaW50ZXJydXB0IHN0YXR1cyBiaXQKICAqLwogI2lmIGRlZmluZWQgKENPTkZJR18xMDBNSHopCi0jZGVmaW5lIENGR19QTFBSQ1IgMHgwNjMwMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUiAweDA2MzAxMDAwCiAjZGVmaW5lIENPTkZJR184eHhfR0NMS19GUkVRIDEwMDAwMDAwMAogI2VsaWYgZGVmaW5lZCAoQ09ORklHXzgwTUh6KQotI2RlZmluZSBDRkdfUExQUkNSIDB4MDRmMDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IgMHgwNGYwMTAwMAogI2RlZmluZSBDT05GSUdfOHh4X0dDTEtfRlJFUSA4MDAwMDAwMAogI2VsaWYgZGVmaW5lZChDT05GSUdfNzVNSHopCi0jZGVmaW5lIENGR19QTFBSQ1IgMHgwNGEwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUiAweDA0YTAwMTAwCiAjZGVmaW5lIENPTkZJR184eHhfR0NMS19GUkVRIDc1MDAwMDAwCiAjZWxpZiBkZWZpbmVkKENPTkZJR182Nk1IeikKLSNkZWZpbmUgQ0ZHX1BMUFJDUiAweDA0MTAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSIDB4MDQxMDEwMDAKICNkZWZpbmUgQ09ORklHXzh4eF9HQ0xLX0ZSRVEgNjYwMDAwMDAKICNlbGlmIGRlZmluZWQoQ09ORklHXzUwTUh6KQotI2RlZmluZSBDRkdfUExQUkNSIDB4MDMxMDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IgMHgwMzEwMTAwMAogI2RlZmluZSBDT05GSUdfOHh4X0dDTEtfRlJFUSA1MDAwMDAwMAogI2VuZGlmCiAKQEAgLTMzOSw5ICszMzksOSBAQAogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQogI2lmZGVmCUNPTkZJR19CVVNfRElWMgotI2RlZmluZSBDRkdfU0NDUgkweDAyMDIwMDAwIHwgU0NDUl9SVFNFTAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJMHgwMjAyMDAwMCB8IFNDQ1JfUlRTRUwKICNlbHNlCQkJLyogdXAgdG8gNTAgTUh6IHdlIHVzZSBhIDE6MSBjbG9jayAqLwotI2RlZmluZSBDRkdfU0NDUiAgICAweDAyMDAwMDAwIHwgU0NDUl9SVFNFTAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IgICAgMHgwMjAwMDAwMCB8IFNDQ1JfUlRTRUwKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNDksMTQgKzM0OSwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0zNjksMjggKzM2OSwyOCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIgICAgICAgMHhGRTEwMDAxMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUICAgICAweDAwMDAKLS8qI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUICAgICAweDBDMDAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVCAgICAgMHgwMDAwICAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUiAgICAgICAweEZFMTAwMDEwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUICAgICAweDAwMDAKKy8qI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUxX09GRlNFVCAgICAgMHgwQzAwICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUICAgICAweDAwMDAgIC8qIE9mZnNldCBmb3IgZGF0YSBJL08KIAkJCQkJICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUICAgICAgMHgwMjAwICAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUICAgICAgMHgwMjAwICAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwogCQkJCQkgICAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQgICAgICAweDAyMTAgIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUICAgICAgMHgwMjEwICAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMKIAkJCQkJICAgKi8KICNkZWZpbmUgQ09ORklHX0FUQVBJCi0jZGVmaW5lIENGR19QSU9fTU9ERSAwCisjZGVmaW5lIENPTkZJR19TWVNfUElPX01PREUgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotLyojZGVmaW5lCUNGR19ERVIJMHgyMDAyMDAwRiovCi0jZGVmaW5lIENGR19ERVIJMHgwCisvKiNkZWZpbmUJQ09ORklHX1NZU19ERVIJMHgyMDAyMDAwRiovCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTB4MAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTQwNSw1NSArNDA1LDU1IEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR18xMDBNSHopCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0ggMHgwMDAwMDJmNAotI2RlZmluZSBDRkdfT1JfVElNSU5HX0RPQyAgIDB4MDAwMDAyZjQKLSNkZWZpbmUgQ0ZHX014TVJfUFR4IDB4NjEwMDAwMDAKLSNkZWZpbmUgQ0ZHX01QVFBSIDB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIDB4MDAwMDAyZjQKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRE9DICAgMHgwMDAwMDJmNAorI2RlZmluZSBDT05GSUdfU1lTX014TVJfUFR4IDB4NjEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUiAweDQwMAogCiAjZWxpZiAgZGVmaW5lZChDT05GSUdfODBNSHopCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0ggMHgwMDAwMGZmNAotI2RlZmluZSBDRkdfT1JfVElNSU5HX0RPQyAgIDB4MDAwMDAxZjQKLSNkZWZpbmUgQ0ZHX014TVJfUFR4IDB4NGUwMDAwMDAKLSNkZWZpbmUgQ0ZHX01QVFBSIDB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIDB4MDAwMDBmZjQKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRE9DICAgMHgwMDAwMDFmNAorI2RlZmluZSBDT05GSUdfU1lTX014TVJfUFR4IDB4NGUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUiAweDQwMAogCiAjZWxpZiBkZWZpbmVkKENPTkZJR183NU1IeikKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSCAweDAwMDAwOGY0Ci0jZGVmaW5lIENGR19PUl9USU1JTkdfRE9DICAgMHgwMDAwMDJmNAotI2RlZmluZSBDRkdfTXhNUl9QVHggMHg0OTAwMDAwMAotI2RlZmluZSBDRkdfTVBUUFIgMHg0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggMHgwMDAwMDhmNAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19ET0MgICAweDAwMDAwMmY0CisjZGVmaW5lIENPTkZJR19TWVNfTXhNUl9QVHggMHg0OTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSIDB4NDAwCiAKICNlbGlmIGRlZmluZWQoQ09ORklHXzY2TUh6KQotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNIICAgICAoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCAgICAgKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAlPUl9TQ1lfM19DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCi0vKiNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSCAweDAwMDAwMWY0ICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRE9DICAgMHgwMDAwMDNmNAotI2RlZmluZSBDRkdfTXhNUl9QVHggIDB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01QVFBSIDB4NDAwCisvKiNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggMHgwMDAwMDFmNCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19ET0MgICAweDAwMDAwM2Y0CisjZGVmaW5lIENPTkZJR19TWVNfTXhNUl9QVHggIDB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUiAweDQwMAogCiAjZWxzZQkJLyogICA1MCBNSHogKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSCAweDAwMDAwZmY0Ci0jZGVmaW5lIENGR19PUl9USU1JTkdfRE9DICAgMHgwMDAwMDFmNAotI2RlZmluZSBDRkdfTXhNUl9QVHggIDB4MzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01QVFBSIDB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIDB4MDAwMDBmZjQKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRE9DICAgMHgwMDAwMDFmNAorI2RlZmluZSBDT05GSUdfU1lTX014TVJfUFR4ICAweDMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIgMHg0MDAKICNlbmRpZgkvKkNPTkZJR18/P01IeiAqLwogCiAKICNpZiAgZGVmaW5lZCAoQ09ORklHX0JPT1RfOEIpICAgLyogNTEySyBYIDggLDI5RjA0MCAsIDJNQiBzcGFjZSAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoMHhmZmUwMDAwMCB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgfCBCUl9QU184KQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKDB4ZmZlMDAwMDAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgfCBCUl9QU184KQogI2VsaWYgIGRlZmluZWQgKENPTkZJR19CT09UXzE2QikgICAvKiAyOWx2MTYwIFggMTYgLCA0TUIgc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKDB4ZmZjMDAwMDAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WIHwgQlJfUFNfMTYpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoMHhmZmMwMDAwMCB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViB8IEJSX1BTXzE2KQogI2VsaWYgZGVmaW5lZCggQ09ORklHX0JPT1RfMzJCICkgIC8qIDI5bHYxNjAgWCAyIFggMzIsIDQvOC8xNk1CICwgNjRNQiBzcGFjZSAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoMHhmYzAwMDAwMCB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKDB4ZmMwMDAwMDAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogI2Vsc2UKICNlcnJvciBCb290IGRldmljZSBwb3J0IHNpemUgbWlzc2luZy4KICNlbmRpZgpAQCAtNDYyLDEyICs0NjIsMTIgQEAKICAqIERpc2stT24tQ2hpcCBjb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfRE9DX1NIT1JUX1RJTUVPVVQKLSNkZWZpbmUgQ0ZHX01BWF9ET0NfREVWSUNFICAgICAgMSAgICAgICAvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NIT1JUX1RJTUVPVVQKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRSAgICAgIDEgICAgICAgLyogTWF4IG51bWJlciBvZiBET0MgZGV2aWNlcyAgICAqLwogCi0jZGVmaW5lIENGR19ET0NfU1VQUE9SVF8yMDAwCi0jZGVmaW5lIENGR19ET0NfU1VQUE9SVF9NSUxMRU5OSVVNCi0jZGVmaW5lIENGR19ET0NfQkFTRSAweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfQkFTRSAweDgwMDAwMDAwCiAKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy90YWlodS5oIGIvaW5jbHVkZS9jb25maWdzL3RhaWh1LmgKaW5kZXggYmNiODczMi4uOGM0OGM2NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3RhaWh1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3RhaWh1LmgKQEAgLTEwMiw4ICsxMDIsOCBAQAogI2RlZmluZSBDT05GSUdfQ01EX1NQSQogCiAjdW5kZWYgQ09ORklHX1NQRF9FRVBST00JCS8qIHVzZSBTUEQgRUVQUk9NIGZvciBzZXR1cCAqLwotI2RlZmluZSBDRkdfU0RSQU1fU0laRV9QRVJfQkFOSyAweDA0MDAwMDAwIC8qIDY0TUIgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBTktTCSAgICAgICAgMgorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkVfUEVSX0JBTksgMHgwNDAwMDAwMCAvKiA2NE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFOS1MJICAgICAgICAyCiAKIC8qCiAgKiBTRFJBTSBjb25maWd1cmF0aW9uIChwbGVhc2Ugc2VlIGNwdS9wcGMvc2RyYW0uW2NoXSkKQEAgLTExMiwzOCArMTEyLDM4IEBACiAjZGVmaW5lIENPTkZJR19TRFJBTV9CQU5LMQkxCS8qIGluaXQgb25ib2FyZCBTRFJBTSBiYW5rIDEgKi8KIAogLyogU0RSQU0gdGltaW5ncyB1c2VkIGluIGRhdGFzaGVldCAqLwotI2RlZmluZSBDRkdfU0RSQU1fQ0wgICAgICAgICAgICAzCS8qIENBUyBsYXRlbmN5ICovCi0jZGVmaW5lIENGR19TRFJBTV90UlAgICAgICAgICAgIDIwCS8qIFBSRUNIQVJHRSBjb21tYW5kIHBlcmlvZCAqLwotI2RlZmluZSBDRkdfU0RSQU1fdFJDICAgICAgICAgICA2NgkvKiBBQ1RJVkUtdG8tQUNUSVZFIGNvbW1hbmQgcGVyaW9kICovCi0jZGVmaW5lIENGR19TRFJBTV90UkNEICAgICAgICAgIDIwCS8qIEFDVElWRS10by1SRUFEIGRlbGF5ICovCi0jZGVmaW5lIENGR19TRFJBTV90UkZDCQk2NgkvKiBBdXRvIHJlZnJlc2ggcGVyaW9kICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ0wgICAgICAgICAgICAzCS8qIENBUyBsYXRlbmN5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fdFJQICAgICAgICAgICAyMAkvKiBQUkVDSEFSR0UgY29tbWFuZCBwZXJpb2QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV90UkMgICAgICAgICAgIDY2CS8qIEFDVElWRS10by1BQ1RJVkUgY29tbWFuZCBwZXJpb2QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV90UkNEICAgICAgICAgIDIwCS8qIEFDVElWRS10by1SRUFEIGRlbGF5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fdFJGQwkJNjYJLyogQXV0byByZWZyZXNoIHBlcmlvZCAqLwogCiAvKgotICogSWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0ssIHRoZW4gdGhlIFVBUlQgZGl2aXNvciBpcyAxLgotICogSWYgQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OSwgdGhlbiBVQVJUIGRpdmlzb3IgaXMgMzEuCi0gKiBPdGhlcndpc2UsIFVBUlQgZGl2aXNvciBpcyBkZXRlcm1pbmVkIGJ5IENQVSBDbG9jayBhbmQgQ0ZHX0JBU0VfQkFVRCB2YWx1ZS4KKyAqIElmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSywgdGhlbiB0aGUgVUFSVCBkaXZpc29yIGlzIDEuCisgKiBJZiBDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OSwgdGhlbiBVQVJUIGRpdmlzb3IgaXMgMzEuCisgKiBPdGhlcndpc2UsIFVBUlQgZGl2aXNvciBpcyBkZXRlcm1pbmVkIGJ5IENQVSBDbG9jayBhbmQgQ09ORklHX1NZU19CQVNFX0JBVUQgdmFsdWUuCiAgKiBUaGUgTGludXggQkFTRV9CQVVEIGRlZmluZSBzaG91bGQgbWF0Y2ggdGhpcyBjb25maWd1cmF0aW9uLgogICogICAgYmFzZUJhdWQgPSBjcHVDbG9jay8odWFydERpdmlzb3IqMTYpCi0gKiBJZiBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5IGFuZCAyMDBNSHogQ1BVIGNsb2NrLAorICogSWYgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTkgYW5kIDIwME1IeiBDUFUgY2xvY2ssCiAgKiBzZXQgTGludXggQkFTRV9CQVVEIHRvIDQwMzIwMC4KICAqLwogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI3VuZGVmICBDRkdfRVhUX1NFUklBTF9DTE9DSyAgICAgICAgICAgLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCi0jdW5kZWYgIENGR180MDVfVUFSVF9FUlJBVEFfNTkgICAgICAgICAvKiA0MDVHUC9DUiBSZXYuIEQgc2lsaWNvbiAqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECQk2OTEyMDAKKyN1bmRlZiAgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLICAgICAgICAgICAvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KKyN1bmRlZiAgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTkgICAgICAgICAvKiA0MDVHUC9DUiBSZXYuIEQgc2lsaWNvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkJNjkxMjAwCiAjZGVmaW5lIENPTkZJR19VQVJUMV9DT05TT0xFCTEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwogCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJeyAweDY5IH0gLyogYXZvaWQgaXByb2JlIGhhbmd1cCAod2h5PykgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTYgLyogMjRDMDIgcmVxdWlyZXMgNW1zIGRlbGF5ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsgMHg2OSB9IC8qIGF2b2lkIGlwcm9iZSBoYW5ndXAgKHdoeT8pICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNiAvKiAyNEMwMiByZXF1aXJlcyA1bXMgZGVsYXkgKi8KIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogSTJDIGJvb3QgRUVQUk9NICgyNEMwMlcpCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBJMkMgYm9vdCBFRVBST00gKDI0QzAyVykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIAogI2RlZmluZSBDT05GSUdfU09GVF9TUEkKICNkZWZpbmUgU1BJX1NDTCAgc3BpX3NjbApAQCAtMTU5LDcgKzE1OSw3IEBACiAvKiBzdGFuZGFyZCBkdHQgc2Vuc29yIGNvbmZpZ3VyYXRpb24gKi8KICNkZWZpbmUgQ09ORklHX0RUVF9EUzE3NzUJMQogI2RlZmluZSBDT05GSUdfRFRUX1NFTlNPUlMJeyAwIH0KLSNkZWZpbmUgQ0ZHX0kyQ19EVFRfQUREUgkweDQ5CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0RUVF9BRERSCTB4NDkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJIHN0dWZmCkBAIC0xNzUsMzkgKzE3NSwzOSBAQAogCQkJCQkvKiByZXNvdXJjZSBjb25maWd1cmF0aW9uICAgICAgKi8KICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cgICAgICAgICAgICAvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9DTEFTU0NPREUgICAgICAgMHgwNjAwICAvKiBQQ0kgQ2xhc3MgQ29kZTogYnJpZGdlL2hvc3QgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEJICAgIDB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TICAgICAgMHg4MDAwMDAwMQkvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJICAgICAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQSAgICAgIDB4MDAwMDAwMDAJLyogZGlzYWJsZWQgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCSAgICAweDAwMDAwMDAwCS8qIGRpc2FibGVkICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgICAgIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHhjYWZlCS8qIFdoYXRldmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERSAgICAgICAweDA2MDAgIC8qIFBDSSBDbGFzcyBDb2RlOiBicmlkZ2UvaG9zdCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJICAgIDB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUyAgICAgIDB4ODAwMDAwMDEJLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgICAgIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQSAgICAgIDB4MDAwMDAwMDAJLyogZGlzYWJsZWQgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkgICAgMHgwMDAwMDAwMAkvKiBkaXNhYmxlZCAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAgICAgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgKi8KICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCQkxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZFMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRTAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMCAgICAgICAgIDB4NTU1Ci0jZGVmaW5lIENGR19GTEFTSF9BRERSMSAgICAgICAgIDB4MmFhCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUgICAgIHVuc2lnbmVkIHNob3J0CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAgICAgICAgICAweDU1NQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxICAgICAgICAgMHgyYWEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgICAgIHVuc2lnbmVkIHNob3J0CiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTIxOCwxOSArMjE4LDE5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOVlJBTSBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4ZjAwMDAwMDAJLyogTlZSQU0gYmFzZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkweDFmZjgJCS8qIE5WUkFNIHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhmMDAwMDAwMAkvKiBOVlJBTSBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkweDFmZjgJCS8qIE5WUkFNIHNpemUgKi8KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fTlZSQU0KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDBmZjgJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycyAqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCVwKLQkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudiovCisJKENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSK0NPTkZJR19TWVNfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudiovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUFBDNDA1IEdQSU8gQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR180eHhfR1BJT19UQUJMRSB7IC8qCQkJCUdQSU8JQWx0ZXJuYXRlMQkJKi8JXAorI2RlZmluZSBDT05GSUdfU1lTXzR4eF9HUElPX1RBQkxFIHsgLyoJCQkJR1BJTwlBbHRlcm5hdGUxCQkqLwlcCiB7CQkJCQkJCQkJCQkJXAogLyogR1BJTyBDb3JlIDAgKi8JCQkJCQkJCQkJXAogeyBHUElPX0JBU0UsIEdQSU9fT1VULCBHUElPX1NFTCwgIEdQSU9fT1VUX05PX0NIRyB9LCAvKiBHUElPMAlQZXJCTGFzdCAgICBTUEkgQ1MJKi8JXApAQCAtMjc0LDQ4ICsyNzQsNDggQEAKICAqIEJSMC8xIGFuZCBPUjAvMSAoRkxBU0gpCiAgKi8KIAotI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0gQ0ZHX0ZMQVNIX0JBU0UgLyogRkxBU0ggYmFuayAjMCAqLworI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0gQ09ORklHX1NZU19GTEFTSF9CQVNFIC8qIEZMQVNIIGJhbmsgIzAgKi8KICNkZWZpbmUgRkxBU0hfQkFTRTFfUFJFTElNICAweEZDMDAwMDAwCS8qIEZMQVNIIGJhbmsgIzEgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCiAvKiB1c2Ugb24gY2hpcCBtZW1vcnkgKE9DTSkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNICAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00gICAgICAgIDEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQgICAgICBDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCiAgKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2gvU1JBTSkgaW5pdGlhbGl6YXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUCAgICAgICAgICAgMHgwMzgxNTYwMAotI2RlZmluZSBDRkdfRUJDX1BCMENSICAgICAgICAgICAweEZGRTNBMDAwICAvKiBCQVM9MHhGRkUsQlM9Mk1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUCAgICAgICAgICAgMHgwMzgxNTYwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUiAgICAgICAgICAgMHhGRkUzQTAwMCAgLyogQkFTPTB4RkZFLEJTPTJNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoTlZSQU0vUlRDKSBpbml0aWFsaXphdGlvbiAqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQICAgICAgICAgICAweDA1ODE1NjAwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IgICAgICAgICAgIDB4RkMwQkEwMDAgIC8qIEJBUz0weEZjMCxCUz0zMk1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUCAgICAgICAgICAgMHgwNTgxNTYwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUiAgICAgICAgICAgMHhGQzBCQTAwMCAgLyogQkFTPTB4RmMwLEJTPTMyTUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDIgKFVTQiBkZXZpY2UpIGluaXRpYWxpemF0aW9uICovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAgICAgICAgICAgIDB4MDMwMTY2MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUiAgICAgICAgICAgMHg1MDAxODAwMCAvKiBCQVM9MHg1MDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQICAgICAgICAgICAweDAzMDE2NjAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSICAgICAgICAgICAweDUwMDE4MDAwIC8qIEJBUz0weDUwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMyAoTENNIGFuZCBELWZsaXAtZmxvcCkgaW5pdGlhbGl6YXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUCAgICAgICAgICAgMHgxNThGRjYwMAotI2RlZmluZSBDRkdfRUJDX1BCM0NSICAgICAgICAgICAweDUwMTE4MDAwIC8qIEJBUz0weDUwMSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAgICAgICAgICAgIDB4MTU4RkY2MDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IgICAgICAgICAgIDB4NTAxMTgwMDAgLyogQkFTPTB4NTAxLEJTPTFNQixCVT1SL1csQlc9OGJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayA0IChub3QgaW5zdGFsbCkgaW5pdGlhbGl6YXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRBUCAgICAgICAgICAgMHgxNThGRjYwMAotI2RlZmluZSBDRkdfRUJDX1BCNENSICAgICAgICAgICAweDUwMjFBMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQICAgICAgICAgICAweDE1OEZGNjAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNENSICAgICAgICAgICAweDUwMjFBMDAwCiAKICNkZWZpbmUgQ1BMRF9SRUcwX0FERFIJMHg1MDEwMDAwMAogI2RlZmluZSBDUExEX1JFRzFfQUREUgkweDUwMTAwMDAxCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvdGFpc2hhbi5oIGIvaW5jbHVkZS9jb25maWdzL3RhaXNoYW4uaAppbmRleCAyNDIyYWU3Li42NDIzZmQ3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvdGFpc2hhbi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy90YWlzaGFuLmgKQEAgLTQ4LDM3ICs0OCwzNyBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZjMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUEVSSVBIRVJBTF9CQVNFCTB4ZTAwMDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KLSNkZWZpbmUgQ0ZHX0lTUkFNX0JBU0UJCTB4YzAwMDAwMDAJLyogaW50ZXJuYWwgU1JBTQkqLwotI2RlZmluZSBDRkdfUENJX0JBU0UJCTB4ZDAwMDAwMDAJLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZjMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UJCTB4ODAwMDAwMDAJLyogbWFwcGVkIHBjaSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UJMHhlMDAwMDAwMAkvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lTUkFNX0JBU0UJCTB4YzAwMDAwMDAJLyogaW50ZXJuYWwgU1JBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVNFCQkweGQwMDAwMDAwCS8qIGludGVybmFsIFBDSSByZWdzCSovCiAKLSNkZWZpbmUgQ0ZHX0VCQzBfRkxBU0hfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfRUJDMV9GUEdBX0JBU0UJKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAxMDAwMDAwKQotI2RlZmluZSBDRkdfRUJDMl9MQ01fQkFTRQkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDIwMDAwMDApCi0jZGVmaW5lIENGR19FQkMzX0NPTk5fQkFTRQkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDMF9GTEFTSF9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0VCQzFfRlBHQV9CQVNFCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDEwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDMl9MQ01fQkFTRQkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAyMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQzNfQ09OTl9CQVNFCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDgwMDAwMDApCiAKLSNkZWZpbmUgQ0ZHX0dQSU9fQkFTRQkJKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNzAwKQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fQkFTRQkJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDcwMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyIChwbGFjZWQgaW4gaW50ZXJuYWwgU1JBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkxCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCUNGR19JU1JBTV9CQVNFCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JU1JBTV9CQVNFICAvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSovCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JMQorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJQ09ORklHX1NZU19JU1JBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lTUkFNX0JBU0UgIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX1BPU1RfV09SRF9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSAweDQpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNkZWZpbmUgQ09ORklHX1VBUlQxX0NPTlNPTEUJMQkvKiB1c2Ugb2YgVUFSVDEgYXMgY29uc29sZQkqLwotI2RlZmluZSBDRkdfRVhUX1NFUklBTF9DTE9DSwkoMTg0MzIwMCAqIDYpCS8qIEV4dCBjbGsgQCAxMS4wNTkgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkoMTg0MzIwMCAqIDYpCS8qIEV4dCBjbGsgQCAxMS4wNTkgTUh6ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVudmlyb25tZW50CkBAIC04OCwyMSArODgsMjEgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QgICAge0NGR19GTEFTSF9CQVNFfQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgICAxCQkgICAgLyogbnVtYmVyIG9mIGJhbmtzCSAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTAyNAkJICAgIC8qIHNlY3RvcnMgcGVyIGRldmljZSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCAgICB7Q09ORklHX1NZU19GTEFTSF9CQVNFfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAgICAgMQkJICAgIC8qIG51bWJlciBvZiBiYW5rcwkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMDI0CQkgICAgLyogc2VjdG9ycyBwZXIgZGV2aWNlICAgKi8KIAotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAgLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTEyOCwyOCArMTI4LDI4IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI3VuZGVmIENPTkZJR19TUERfRUVQUk9NCQkvKiBEb24ndCB1c2UgU1BEIEVFUFJPTSBmb3Igc2V0dXAJKi8KICNkZWZpbmUgQ09ORklHX1NEUkFNX0JBTkswCTEJLyogaW5pdCBvbmJvYXJkIEREUiBTRFJBTSBiYW5rIDAJKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNMF9UUjAJCTB4QzEwQTQwMUEKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTTBfVFIwCQkweEMxMEE0MDFBCiAjdW5kZWYgQ09ORklHX1NEUkFNX0VDQwkJCS8qIGVuYWJsZSBFQ0Mgc3VwcG9ydAkJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwogCi0jdW5kZWYgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCisjdW5kZWYgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKIAotI2RlZmluZSBDRkdfQk9PVFNUUkFQX0lJQ19BRERSCTB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UU1RSQVBfSUlDX0FERFIJMHg1MAogCiAvKiBJMkMgU1lTTU9OIChMTTc1LCBBRDc0MTQgaXMgYWxtb3N0IGNvbXBhdGlibGUpCQkJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9MTTc1CQkxCQkvKiBPTiBTZW1pJ3MgTE03NQkqLwogI2RlZmluZSBDT05GSUdfRFRUX1NFTlNPUlMJezB9CQkvKiBTZW5zb3IgYWRkcmVzc2VzCSovCi0jZGVmaW5lIENGR19EVFRfTUFYX1RFTVAJNzAKLSNkZWZpbmUgQ0ZHX0RUVF9MT1dfVEVNUAktMzAKLSNkZWZpbmUgQ0ZHX0RUVF9IWVNURVJFU0lTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTUFYX1RFTVAJNzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTE9XX1RFTVAJLTMwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0hZU1RFUkVTSVMJMwogCiAvKgogICogRGVmYXVsdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMKQEAgLTE5NiwxMiArMTk2LDEyIEBACiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkJCSovCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMCAgICAgICAxCQkvKiBpbmNsdWRlIFBDSSBFRVBSTzEwMAkJKi8KICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cAkqLwotI2RlZmluZSBDRkdfUENJX1RBUkdCQVNFICAgIDB4ODAwMDAwMDAJLyogUENJYWRkciBtYXBwZWQgdG8gQ0ZHX1BDSV9NRU1CQVNFICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdCQVNFICAgIDB4ODAwMDAwMDAJLyogUENJYWRkciBtYXBwZWQgdG8gQ09ORklHX1NZU19QQ0lfTUVNQkFTRSAqLwogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAkJLyogbGV0IGJvYXJkIGluaXQgcGNpIHRhcmdldCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVAkJLyogbGV0IGJvYXJkIGluaXQgcGNpIHRhcmdldCAgICAqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkvKiBXaGF0ZXZlciAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkvKiBXaGF0ZXZlciAqLwogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3RiMDIyOS5oIGIvaW5jbHVkZS9jb25maWdzL3RiMDIyOS5oCmluZGV4IGJmYjMyZmIuLjkyODVjOWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy90YjAyMjkuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvdGIwMjI5LmgKQEAgLTM4LDcgKzM4LDcgQEAKIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lIENPTkZJR19USU1FU1RBTVAJCS8qIFByaW50IGltYWdlIGluZm8gd2l0aCB0aW1lc3RhbXAgKi8KIApAQCAtMTEyLDQ2ICsxMTIsNDYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIiMgIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpICAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiIyAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpICAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCTEyOCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJMTI4KjEwMjQKIAotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JMTI4KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgkxMjgqMTAyNAogCi0jZGVmaW5lIENGR19NSVBTX1RJTUVSX0ZSRVEJKENQVV9UQ0xPQ0tfUkFURS80KQorI2RlZmluZSBDT05GSUdfU1lTX01JUFNfVElNRVJfRlJFUQkoQ1BVX1RDTE9DS19SQVRFLzQpCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHg4MDAwMDAwMAogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4ODA0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4ODA0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHg4MDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDgwODAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgxMjgpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDEyOCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweGJmYzAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KIAogLyogVGhlIGZvbGxvd2luZyAjZGVmaW5lcyBhcmUgbmVlZGVkIHRvIGdldCBmbGFzaCBlbnZpcm9ubWVudCByaWdodCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQogCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAkweDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCTB4NDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIwICogQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMiAqIENGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyMCAqIENPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMiAqIENPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKQEAgLTE1OSwyNSArMTU5LDI1IEBACiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHhCRkM0MDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMDAKIAotI2RlZmluZSBDRkdfRElSRUNUX0ZMQVNIX1RGVFAKKyNkZWZpbmUgQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAogCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCTEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19EQ0FDSEVfU0laRQkJMTYzODQKLSNkZWZpbmUgQ0ZHX0lDQUNIRV9TSVpFCQkxNjM4NAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19EQ0FDSEVfU0laRQkJMTYzODQKKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfU0laRQkJMTYzODQKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkgMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCSAxODQzMjAwMAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCSAweGFmMDAwODAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkgMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkgMTg0MzIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJIDB4YWYwMDA4MDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJIHN0dWZmCkBAIC0xODYsNyArMTg2LDcgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9QTlAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAkJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CQkvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAJKi8KIAogI2RlZmluZSBDT05GSUdfUlRMODEzOQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvdHJhYi5oIGIvaW5jbHVkZS9jb25maWdzL3RyYWIuaAppbmRleCBkNmQ0NjNhLi41NjJjZDYwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvdHJhYi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy90cmFiLmgKQEAgLTU4LDcgKzU4LDcgQEAKICNkZWZpbmUgQ09ORklHX1NFVFVQX01FTU9SWV9UQUdTIDEKICNkZWZpbmUgQ09ORklHX0lOSVRSRF9UQUcJIDEKIAotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJIDEJLyogZW5ibGUgbnVsbCBkZXZpY2UJCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJIDEJLyogZW5ibGUgbnVsbCBkZXZpY2UJCSovCiAjZGVmaW5lIENPTkZJR19TSUxFTlRfQ09OU09MRQkgMQkvKiBlbmFibGUgc2lsZW50IHN0YXJ0dXAJKi8KIAogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRQkxICAgICAgIC8qIGluY2x1ZGUgdmVyc2lvbiBlbnYgdmFyaWFibGUgKi8KQEAgLTY5LDMzICs2OSwzMyBAQAogICogYWRkcmVzcyAweDU0IHdpdGggOGJpdCBhZGRyZXNzaW5nCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCS8qIEkyQyBzbGF2ZSBhZGRyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCS8qIEkyQyBzbGF2ZSBhZGRyICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDU0CS8qIEVFUFJPTSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTEJLyogMSBhZGRyZXNzIGJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1NAkvKiBFRVBST00gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQkvKiAxIGFkZHJlc3MgYnl0ZSAqLwogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cgMHgwMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCS8qIDggYnl0ZXMgcGFnZSB3cml0ZSBtb2RlIG9uIDI0QzA0ICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVyAweDAxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCS8qIDggYnl0ZXMgcGFnZSB3cml0ZSBtb2RlIG9uIDI0QzA0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKIAogLyogVVNCIHN0dWZmICovCiAjZGVmaW5lIENPTkZJR19VU0JfT0hDSV9ORVcJMQogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UJMQogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgkxCiAKLSN1bmRlZiBDRkdfVVNCX09IQ0lfQk9BUkRfSU5JVAotI2RlZmluZSBDRkdfVVNCX09IQ0lfQ1BVX0lOSVQJMQorI3VuZGVmIENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCTEKIAotI2RlZmluZSBDRkdfVVNCX09IQ0lfUkVHU19CQVNFCTB4MTQyMDAwMDAKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkiczNjMjQwMCIKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1CisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfUkVHU19CQVNFCTB4MTQyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJInMzYzI0MDAiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMTUKIAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC0xNzksNyArMTc5LDcgQEAKIAogCiAvKiBtb3ZlZCB1cCAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KIAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUKICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGFsbG93IHRvIGJyZWFrIGluIGFsd2F5cyAqLwpAQCAtMTkyLDcgKzE5Miw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiYnVybl9pbiIKIAogI2lmbmRlZiBDT05GSUdfRkxBU0hfOE1CCS8qIGN1cnJlbnQgY29uZmlnOiAxNiBNQiBmbGFzaCAqLwotI2lmZGVmIENGR19IVVNIX1BBUlNFUgorI2lmZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKICNkZWZpbmUJQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwlcCiAJIm5mc19hcmdzPXNldGVudiBib290YXJncyByb290PS9kZXYvbmZzIHJ3ICIgXAogCQkibmZzcm9vdD0kc2VydmVyaXA6JHJvb3RwYXRoXDAiIFwKQEAgLTIxNCw3ICsyMTQsNyBAQAogCSJtZG1faW5pdDE9QVRaXDAiIFwKIAkibWRtX2luaXQyPUFUUzA9MVwwIiBcCiAJIm1kbV9mbG93X2NvbnRyb2w9cnRzL2N0c1wwIgotI2Vsc2UgLyogIUNGR19IVVNIX1BBUlNFUiAqLworI2Vsc2UgLyogIUNPTkZJR19TWVNfSFVTSF9QQVJTRVIgKi8KICNkZWZpbmUJQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwlcCiAJIm5mc19hcmdzPXNldGVudiBib290YXJncyByb290PS9kZXYvbmZzIHJ3ICIgXAogCQkibmZzcm9vdD0ke3NlcnZlcmlwfToke3Jvb3RwYXRofVwwIiBcCkBAIC0yMzYsOSArMjM2LDkgQEAKIAkibWRtX2luaXQxPUFUWlwwIiBcCiAJIm1kbV9pbml0Mj1BVFMwPTFcMCIgXAogCSJtZG1fZmxvd19jb250cm9sPXJ0cy9jdHNcMCIKLSNlbmRpZgkvKiBDRkdfSFVTSF9QQVJTRVIgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSICovCiAjZWxzZQkvKiBDT05GSUdfRkxBU0hfOE1CCSA9PiA4IE1CIGZsYXNoICovCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogI2RlZmluZQlDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCVwKIAkibmZzX2FyZ3M9c2V0ZW52IGJvb3RhcmdzIHJvb3Q9L2Rldi9uZnMgcncgIiBcCiAJCSJuZnNyb290PSRzZXJ2ZXJpcDokcm9vdHBhdGhcMCIgXApAQCAtMjYxLDcgKzI2MSw3IEBACiAJIm1kbV9pbml0MT1BVFpcMCIgXAogCSJtZG1faW5pdDI9QVRTMD0xXDAiIFwKIAkibWRtX2Zsb3dfY29udHJvbD1ydHMvY3RzXDAiCi0jZWxzZSAvKiAhQ0ZHX0hVU0hfUEFSU0VSICovCisjZWxzZSAvKiAhQ09ORklHX1NZU19IVVNIX1BBUlNFUiAqLwogI2RlZmluZQlDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCVwKIAkibmZzX2FyZ3M9c2V0ZW52IGJvb3RhcmdzIHJvb3Q9L2Rldi9uZnMgcncgIiBcCiAJCSJuZnNyb290PSR7c2VydmVyaXB9OiR7cm9vdHBhdGh9XDAiIFwKQEAgLTI4NCw3ICsyODQsNyBAQAogCSJtZG1faW5pdDE9QVRaXDAiIFwKIAkibWRtX2luaXQyPUFUUzA9MVwwIiBcCiAJIm1kbV9mbG93X2NvbnRyb2w9cnRzL2N0c1wwIgotI2VuZGlmIC8qIENGR19IVVNIX1BBUlNFUiAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfSFVTSF9QQVJTRVIgKi8KICNlbmRpZgkvKiBDT05GSUdfRkxBU0hfOE1CICovCiAKICNpZiAxCS8qIGZlZWwgZnJlZSB0byBkaXNhYmxlIGZvciBkZXZlbG9wbWVudCAqLwpAQCAtMzAzLDM4ICszMDMsMzggQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiVFJBQiAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJUUkFCICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwQzAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwRDAwMDAwMAkvKiAxNiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDBDMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwRDAwMDAwMAkvKiAxNiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZiBDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MENGMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MENGMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAogI2lmZGVmIENPTkZJR19UUkFCXzUwTUhaCiAvKiB0aGUgUFdNIFRJbWVyIDQgdXNlcyBhIGNvdW50ZXIgb2YgMTU2MjUgZm9yIDEwIG1zLCBzbyB3ZSBuZWVkICovCiAvKiBpdCB0byB3cmFwIDEwMCB0aW1lcyAodG90YWwgMTU2MjUwMCkgdG8gZ2V0IDEgc2VjLiAqLwogLyogdGhpcyBzaG91bGQgX3JlYWxseV8gYmUgY2FsY3VsYXRlZCAhISAqLwotI2RlZmluZQlDRkdfSFoJCQkxNTYyNTAwCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxNTYyNTAwCiAjZWxzZQogLyogdGhlIFBXTSBUSW1lciA0IHVzZXMgYSBjb3VudGVyIG9mIDEwMzkwIGZvciAxMCBtcywgc28gd2UgbmVlZCAqLwogLyogaXQgdG8gd3JhcCAxMDAgdGltZXMgKHRvdGFsIDEwMzkwMDApIHRvIGdldCAxIHNlYy4gKi8KIC8qIHRoaXMgc2hvdWxkIF9yZWFsbHlfIGJlIGNhbGN1bGF0ZWQgISEgKi8KLSNkZWZpbmUJQ0ZHX0haCQkJMTAzOTAwMAorI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAzOTAwMAogI2VuZGlmCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJCS8qIGhhdmUgbWlzY19pbml0X3IoKSBmdW5jdGlvbgkqLwogCkBAIC0zNjksMTEgKzM2OSwxMSBAQAogI2RlZmluZSBQSFlTX1NEUkFNXzFfU0laRQkweDAxMDAwMDAwCS8qIDE2IE1CICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMAkvKiBGbGFzaCBCYW5rICMxICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMAkvKiBGbGFzaCBCYW5rICMxICovCiAKIC8qIFRoZSBmb2xsb3dpbmcgI2RlZmluZXMgYXJlIG5lZWRlZCB0byBnZXQgZmxhc2ggZW52aXJvbm1lbnQgcmlnaHQgKi8KLSNkZWZpbmUJQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQogCiAvKiBEeW5hbWljIE1URCBwYXJ0aXRpb24gc3VwcG9ydCAqLwogI2RlZmluZSBDT05GSUdfSkZGUzJfQ01ETElORQpAQCAtMzkyLDI2ICszOTIsMjYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwogI2lmbmRlZiBDT05GSUdfRkxBU0hfOE1CCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogI2VuZGlmCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMTUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMTUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUHJpbWFyeSBFbnZpcm9ubWVudCBTZWN0b3IJKi8KICNpZm5kZWYgQ09ORklHX0ZMQVNIXzhNQgotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4NjAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NjAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAKICNlbHNlCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg0MDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMAogI2VuZGlmCkBAIC00MjAsOSArNDIwLDkgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECShDT05GSUdfRU5WX0FERFIrQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAogLyogSW5pdGlhbCB2YWx1ZSBvZiB0aGUgb24tYm9hcmQgdG91Y2ggc2NyZWVuIGJyaWdodG5lc3MgKi8KLSNkZWZpbmUgQ0ZHX0JSSUdIVE5FU1MgMHgyMAorI2RlZmluZSBDT05GSUdfU1lTX0JSSUdIVE5FU1MgMHgyMAogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3RyaXplcHNpdi5oIGIvaW5jbHVkZS9jb25maWdzL3RyaXplcHNpdi5oCmluZGV4IGIyNDk3OWIuLmIyMDY1ZWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy90cml6ZXBzaXYuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvdHJpemVwc2l2LmgKQEAgLTU0LDggKzU0LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtMTQ4LDM1ICsxNDgsMzUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFQJCSIkICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiJCAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZWxzZQotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4YTA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4YTA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweGEwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHhhMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHhhMTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHhhMTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVECQkweDIwNwkJLyogbmVlZCB0byBsb29rIG1vcmUgY2xvc2VseSwgSSB0aGluayB0aGlzIGlzIFR1cmJvID0gMngsIEw9OTFNaHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVTUEVFRAkJMHgyMDcJCS8qIG5lZWQgdG8gbG9vayBtb3JlIGNsb3NlbHksIEkgdGhpbmsgdGhpcyBpcyBUdXJibyA9IDJ4LCBMPTkxTWh6ICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZSBDRkdfTU1DX0JBU0UJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NTUNfQkFTRQkJMHhGMDAwMDAwMAogCiAvKgogICogU3RhY2sgc2l6ZXMKQEAgLTIwNCw3NiArMjA0LDc2IEBACiAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweDAwMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KIAotI2RlZmluZSBDRkdfRFJBTV9CQVNFCQkweGEwMDAwMDAwCi0jZGVmaW5lIENGR19EUkFNX1NJWkUJCTB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBU0UJCTB4YTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1NJWkUJCTB4MDQwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKIC8qCiAgKiBHUElPIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU1IwX1ZBTAkJMHgwMDAxODAwMAotI2RlZmluZSBDRkdfR1BTUjFfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUFNSMl9WQUwJCTB4NDAwZGMwMDAKLSNkZWZpbmUgQ0ZHX0dQU1IzX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BDUjBfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUENSMV9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IyX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BDUjNfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUERSMF9WQUwJCTB4MDAwMTgwMDAKLSNkZWZpbmUgQ0ZHX0dQRFIxX1ZBTAkJMHgwMDAyODgwMQotI2RlZmluZSBDRkdfR1BEUjJfVkFMCQkweDUyMGRjMDAwCi0jZGVmaW5lIENGR19HUERSM19WQUwJCTB4MDAwMUUwMDAKLSNkZWZpbmUgQ0ZHX0dBRlIwX0xfVkFMCQkweDgwMWMwMDAwCi0jZGVmaW5lIENGR19HQUZSMF9VX1ZBTAkJMHgwMDAwMDAxMwotI2RlZmluZSBDRkdfR0FGUjFfTF9WQUwJCTB4Njk5MDEwMEEKLSNkZWZpbmUgQ0ZHX0dBRlIxX1VfVkFMCQkweDAwMDAwMDA4Ci0jZGVmaW5lIENGR19HQUZSMl9MX1ZBTAkJMHhBMDAwMDAwMAotI2RlZmluZSBDRkdfR0FGUjJfVV9WQUwJCTB4MDEwOTAwRjIKLSNkZWZpbmUgQ0ZHX0dBRlIzX0xfVkFMCQkweDU0MDAwMDAzCi0jZGVmaW5lIENGR19HQUZSM19VX1ZBTAkJMHgwMDAwMjQwMQotI2RlZmluZSBDRkdfR1JFUjBfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUkVSMV9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dSRVIyX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1JFUjNfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HRkVSMF9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dGRVIxX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR0ZFUjJfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HRkVSM19WQUwJCTB4MDAwMDAwMjAKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMF9WQUwJCTB4MDAwMTgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMV9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMl9WQUwJCTB4NDAwZGMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSM19WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMF9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMV9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMl9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSM19WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMF9WQUwJCTB4MDAwMTgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMV9WQUwJCTB4MDAwMjg4MDEKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMl9WQUwJCTB4NTIwZGMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSM19WQUwJCTB4MDAwMUUwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9MX1ZBTAkJMHg4MDFjMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX1VfVkFMCQkweDAwMDAwMDEzCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfTF9WQUwJCTB4Njk5MDEwMEEKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9VX1ZBTAkJMHgwMDAwMDAwOAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX0xfVkFMCQkweEEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfVV9WQUwJCTB4MDEwOTAwRjIKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSM19MX1ZBTAkJMHg1NDAwMDAwMworI2RlZmluZSBDT05GSUdfU1lTX0dBRlIzX1VfVkFMCQkweDAwMDAyNDAxCisjZGVmaW5lIENPTkZJR19TWVNfR1JFUjBfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JFUjFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JFUjJfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JFUjNfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0ZFUjBfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0ZFUjFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0ZFUjJfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0ZFUjNfVkFMCQkweDAwMDAwMDIwCiAKIAotI2RlZmluZSBDRkdfUFNTUl9WQUwJCTB4MjAJLyogQ0hFQ0sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QU1NSX1ZBTAkJMHgyMAkvKiBDSEVDSyAqLwogCiAvKgogICogQ2xvY2sgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfQ0tFTgkJMHgwMUZGRkZGRgkvKiBDSEVDSyAqLwotI2RlZmluZSBDRkdfQ0NDUgkJMHgwMjAwMDI5MCAvKiAgIDUyME1oeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NLRU4JCTB4MDFGRkZGRkYJLyogQ0hFQ0sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ0NSCQkweDAyMDAwMjkwIC8qICAgNTIwTWh6ICovCiAKIC8qCiAgKiBNZW1vcnkgc2V0dGluZ3MKICAqLwogCi0jZGVmaW5lIENGR19NU0MwX1ZBTAkJMHg0ZGY4NGRmMAotI2RlZmluZSBDRkdfTVNDMV9WQUwJCTB4N2ZmODdmZjQKLSNkZWZpbmUgQ0ZHX01TQzJfVkFMCQkweGEyNjkzNmQ0Ci0jZGVmaW5lIENGR19NRENORkdfVkFMCQkweDg4MDAwOUM5Ci0jZGVmaW5lIENGR19NRFJFRlJfVkFMCQkweDIwY2EyMDFlCi0jZGVmaW5lIENGR19NRE1SU19WQUwJCTB4MDAyMjAwMjIKKyNkZWZpbmUgQ09ORklHX1NZU19NU0MwX1ZBTAkJMHg0ZGY4NGRmMAorI2RlZmluZSBDT05GSUdfU1lTX01TQzFfVkFMCQkweDdmZjg3ZmY0CisjZGVmaW5lIENPTkZJR19TWVNfTVNDMl9WQUwJCTB4YTI2OTM2ZDQKKyNkZWZpbmUgQ09ORklHX1NZU19NRENORkdfVkFMCQkweDg4MDAwOUM5CisjZGVmaW5lIENPTkZJR19TWVNfTURSRUZSX1ZBTAkJMHgyMGNhMjAxZQorI2RlZmluZSBDT05GSUdfU1lTX01ETVJTX1ZBTAkJMHgwMDIyMDAyMgogCi0jZGVmaW5lIENGR19GTFlDTkZHX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU1hDTkZHX1ZBTAkJMHg0MDA0NDAwNAorI2RlZmluZSBDT05GSUdfU1lTX0ZMWUNORkdfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1hDTkZHX1ZBTAkJMHg0MDA0NDAwNAogCiAvKgogICogUENNQ0lBIGFuZCBDRiBJbnRlcmZhY2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX01FQ1JfVkFMCQkweDAwMDAwMDAxCi0jZGVmaW5lIENGR19NQ01FTTBfVkFMCQkweDAwMDA0MjA0Ci0jZGVmaW5lIENGR19NQ01FTTFfVkFMCQkweDAwMDEwMjA0Ci0jZGVmaW5lIENGR19NQ0FUVDBfVkFMCQkweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0FUVDFfVkFMCQkweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0lPMF9WQUwJCTB4MDAwMDg0MDcKLSNkZWZpbmUgQ0ZHX01DSU8xX1ZBTAkJMHgwMDAwYzEwOAorI2RlZmluZSBDT05GSUdfU1lTX01FQ1JfVkFMCQkweDAwMDAwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0wX1ZBTAkJMHgwMDAwNDIwNAorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMV9WQUwJCTB4MDAwMTAyMDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0FUVDBfVkFMCQkweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQxX1ZBTAkJMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DSU8wX1ZBTAkJMHgwMDAwODQwNworI2RlZmluZSBDT05GSUdfU1lTX01DSU8xX1ZBTAkJMHgwMDAwYzEwOAogCiAjZGVmaW5lIENPTkZJR19EUklWRVJfRE05MDAwCQkxCiAjZGVmaW5lIENPTkZJR19ETTkwMDBfQkFTRQkweDA4MDAwMDAwCkBAIC0yODEsMzYgKzI4MSwzNiBAQAogI2RlZmluZSBETTkwMDBfREFUQQkJCShDT05GSUdfRE05MDAwX0JBU0UrMHg4MDA0KQogCiAjZGVmaW5lIENPTkZJR19VU0JfT0hDSV9ORVcJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfQk9BUkRfSU5JVAkxCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkzCi0jZGVmaW5lIENGR19VU0JfT0hDSV9SRUdTX0JBU0UJMHg0QzAwMDAwMAotI2RlZmluZSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FCSJ0cml6ZXBzaXYiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVAkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMworI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1JFR1NfQkFTRQkweDRDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCSJ0cml6ZXBzaXYiCiAjZGVmaW5lIENPTkZJR19VU0JfU1RPUkFHRQkxCi0jZGVmaW5lIENGR19VU0JfT0hDSV9DUFVfSU5JVAkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQJMQogCiAvKgogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHg0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4NDAwMDAKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk0ICsgMjU1ICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTQgKyAyNTUgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMjUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMjUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDI1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMjUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogLyogd3JpdGUgZmxhc2ggbGVzcyBzbG93bHkgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQogCiAvKiBGbGFzaCBlbnZpcm9ubWVudCBsb2NhdGlvbnMgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKFBIWVNfRkxBU0hfMSArIENGR19NT05JVE9SX0xFTikgLyogQWRkciBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoUEhZU19GTEFTSF8xICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikgLyogQWRkciBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQwMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3VjMTAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvdWMxMDAuaAppbmRleCAyMmViZjA3Li4yM2Y0YzgyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvdWMxMDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvdWMxMDAuaApAQCAtOTIsNyArOTIsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMTIsMTcgKzExMiwxNyBAQAogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgogCiAjdW5kZWYgQ09ORklHX1JUQ19NUEM4eHgKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDUxCS8qIFBDRjg1NjMgUlRDCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg1MQkvKiBQQ0Y4NTYzIFJUQwkJCSovCiAjZGVmaW5lIENPTkZJR19SVENfUENGODU2MwkJLyogdXNlIFBoaWxpcHMgUENGODU2MyBSVEMJKi8KIAogLyoKICAqIFBvd2VyIE9uIFNlbGYgVGVzdCBzdXBwb3J0CiAgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJICAgICAgKCBDRkdfUE9TVF9DQUNIRQkJfCBcCi0JCQkJQ0ZHX1BPU1RfTUVNT1JZCQl8IFwKLQkJCQlDRkdfUE9TVF9DUFUJCXwgXAotCQkJCUNGR19QT1NUX1VBUlQJCXwgXAotCQkJCUNGR19QT1NUX1NQUiApCisjZGVmaW5lIENPTkZJR19QT1NUCSAgICAgICggQ09ORklHX1NZU19QT1NUX0NBQ0hFCQl8IFwKKwkJCQlDT05GSUdfU1lTX1BPU1RfTUVNT1JZCQl8IFwKKwkJCQlDT05GSUdfU1lTX1BPU1RfQ1BVCQl8IFwKKwkJCQlDT05GSUdfU1lTX1BPU1RfVUFSVAkJfCBcCisJCQkJQ09ORklHX1NZU19QT1NUX1NQUiApCiAjdW5kZWYgIENPTkZJR19QT1NUCiAKIApAQCAtMTU0LDMzICsxNTQsMzMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjaWYgMAotI2RlZmluZQlDRkdfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2RlZmluZQlDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KICNlbmRpZgotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURQkxICAgICAgIC8qIGFkZCBhdXRvY29tcGxldGlvbiBzdXBwb3J0ICAgKi8KIApAQCAtMTkyLDU3ICsxOTIsNTcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFKzB4MDA3MDAwMDApIC8qIHJlc2V0dmVjIGZmZjAwMTAwKi8KLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UrMHgwMDcwMDAwMCkgLyogcmVzZXR2ZWMgZmZmMDAxMDAqLworI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBBZGRyZXNzIGFjY2Vzc2VkIHRvIHJlc2V0IHRoZSBib2FyZCAtIG11c3Qgbm90IGJlIG1hcHBlZC9hc3NpZ25lZAogICovCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTICAgICAgIDB4OTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTICAgICAgIDB4OTAwMDAwMDAKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUgICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyICAgICAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX0FNRF9SRVNFVAkxCQkvKiBBTUQgUkVTRVQgZm9yIFNUTSAyOVczMjBEQiEgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX0FNRF9SRVNFVAkxCQkvKiBBTUQgUkVTRVQgZm9yIFNUTSAyOVczMjBEQiEgICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFK0NGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UrQ09ORklHX1NZU19NT05JVE9SX0xFTikKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJCSovCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHg0MDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAKQEAgLTI1Myw5ICsyNTMsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjUsMTAgKzI2NSwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjc2LDI3ICsyNzYsMjcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0ZSQyB8IFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9GUkMgfCBTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTMwNCw3ICszMDQsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0CiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKChNUEM4WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKChNUEM4WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAogCQkJCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzE0LDIxICszMTQsMjEgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NDQ1IgICAgICAgIChTQ0NSX0VCREYxMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSICAgICAgICAoU0NDUl9FQkRGMTEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0zNDEsMjggKzM0MSwyOCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzc3LDI4ICszNzcsMjggQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRjgwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRjgwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzoKICAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICSgweDAwMDAwZDI0KQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoMHgwMDAwMGQyNCkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19CUjFfUFJFTElNICAweDAwMDAwMDgxICAvKiBDaGlwIHNlbGVjdCBmb3IgU0RSQU0gKDMyIEJpdCwgVVBNQSkgKi8KLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0gIDB4ZmMwMDBhMDAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0gIDB4ODAwMDAwMDEgIC8qIENoaXAgc2VsZWN0IGZvciBTUkFNICgzMiBCaXQsIEdQQ00pICovCi0jZGVmaW5lIENGR19PUjJfUFJFTElNICAweGZmZjAwZDI0Ci0jZGVmaW5lIENGR19CUjNfUFJFTElNICAweDgwNjAwNDAxICAvKiBDaGlwIHNlbGVjdCBmb3IgRGlzcGxheSAoOCBCaXQsIEdQQ00pICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNICAweGZmZmY4ZjQ0Ci0jZGVmaW5lIENGR19CUjRfUFJFTElNICAweGMwNTEwOGMxICAvKiBDaGlwIHNlbGVjdCBmb3IgSW50ZXJidXMgTVBNICgxNiBCaXQsIFVQTUIpICovCi0jZGVmaW5lIENGR19PUjRfUFJFTElNICAweGZmZmYwMzAwCi0jZGVmaW5lIENGR19CUjVfUFJFTElNICAweGMwNTAwNDAxICAvKiBDaGlwIHNlbGVjdCBmb3IgSW50ZXJidXMgU3RhdHVzICg4IEJpdCwgR1BDTSkgKi8KLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0gIDB4ZmZmZjhkYjAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNICAweDAwMDAwMDgxICAvKiBDaGlwIHNlbGVjdCBmb3IgU0RSQU0gKDMyIEJpdCwgVVBNQSkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNICAweGZjMDAwYTAwCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTSAgMHg4MDAwMDAwMSAgLyogQ2hpcCBzZWxlY3QgZm9yIFNSQU0gKDMyIEJpdCwgR1BDTSkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNICAweGZmZjAwZDI0CisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTSAgMHg4MDYwMDQwMSAgLyogQ2hpcCBzZWxlY3QgZm9yIERpc3BsYXkgKDggQml0LCBHUENNKSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0gIDB4ZmZmZjhmNDQKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNICAweGMwNTEwOGMxICAvKiBDaGlwIHNlbGVjdCBmb3IgSW50ZXJidXMgTVBNICgxNiBCaXQsIFVQTUIpICovCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTSAgMHhmZmZmMDMwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0gIDB4YzA1MDA0MDEgIC8qIENoaXAgc2VsZWN0IGZvciBJbnRlcmJ1cyBTdGF0dXMgKDggQml0LCBHUENNKSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0gIDB4ZmZmZjhkYjAKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKQEAgLTQyOCwzOSArNDI4LDM5IEBACiAgKiAxMDAgTWh6ID0+IDEwMC4wMDAuMDAwIC8gRGl2aWRlciA9IDE5NQogICovCiAKLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk4CisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTk4CiAKIC8qCiAgKiBGb3IgMTYgTUJpdCwgcmVmcmVzaCByYXRlcyBjb3VsZCBiZSAzMS4zIHVzCiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKLSNkZWZpbmUJQ0ZHX01BTVJfVkFMCTB4MzA5MDQxMTQJLyogZm9yIFNEUkFNICovCi0jZGVmaW5lCUNGR19NQk1SX1ZBTAkweGZmMDAxMTExCS8qIGZvciBJbnRlcmJ1cy1NUE0gKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQU1SX1ZBTAkweDMwOTA0MTE0CS8qIGZvciBTRFJBTSAqLworI2RlZmluZQlDT05GSUdfU1lTX01CTVJfVkFMCTB4ZmYwMDExMTEJLyogZm9yIEludGVyYnVzLU1QTSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgc3R1ZmYKQEAgLTQ3MCw4ICs0NzAsOCBAQAogI3VuZGVmCUNPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUJQ09ORklHX1NPRlRfSTJDICAgICAgICAgMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk5MzAwMAkvKiA5MyBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk5MzAwMAkvKiA5MyBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhGRQogCiAjaWZkZWYgQ09ORklHX1NPRlRfSTJDCiAvKgpAQCAtNDk0LDEwICs0OTQsMTAgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQyBFRVBST00gKDI0QzE2NCkKICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTgJLyogRUVQUk9NIEFUMjRDMTY0CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiB0YWtlcyB1cCB0byAxMCBtc2VjCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1OAkvKiBFRVBST00gQVQyNEMxNjQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogdGFrZXMgdXAgdG8gMTAgbXNlYwkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKQEAgLTUxMSw2ICs1MTEsNiBAQAogI2RlZmluZSBGRUNfRU5FVAogI2RlZmluZSBDT05GSUdfTUlJCiAjZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQotI2RlZmluZSBDRkdfRElTQ09WRVJfUEhZCTEKKyNkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkJMQogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3VjMTAxLmggYi9pbmNsdWRlL2NvbmZpZ3MvdWMxMDEuaAppbmRleCBlOGRhYWUzLi41NTNlYjI1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvdWMxMDEuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvdWMxMDEuaApAQCAtMzMsNyArMzMsNyBAQAogI2RlZmluZSBDT05GSUdfTVBDNTIwMAkJMQkvKiAobW9yZSBwcmVjaXNlbHkgYW4gTVBDNTIwMCBDUFUpCSovCiAjZGVmaW5lIENPTkZJR19VQzEwMQkJMQkvKiBVQzEwMSBib2FyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6CQkqLworI2RlZmluZSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6CQkqLwogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0gJKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QJCQkqLwpAQCAtNDcsNyArNDcsNyBAQAogICovCiAjZGVmaW5lIENPTkZJR19QU0NfQ09OU09MRQkxCS8qIGNvbnNvbGUgaXMgb24gUFNDMQkqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAkvKiAuLi4gYXQgMTE1MjAwIGJwcwkqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qIFBhcnRpdGlvbnMgKi8KICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04KQEAgLTg0LDcgKzg0LDcgQEAKICNkZWZpbmUJQ09ORklHX1RJTUVTVEFNUAkxCS8qIFByaW50IGltYWdlIGluZm8gd2l0aCB0aW1lc3RhbXAgKi8KIAogI2lmIChURVhUX0JBU0UgPT0gMHhGRkYwMDAwMCkgLyogQm9vdCBsb3cgKi8KLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UCQkxCiAjZW5kaWYKIAogLyoKQEAgLTEyMCw1NiArMTIwLDU2IEBACiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jZGVmaW5lIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KIAogLyoKICAqIEkyQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIEVFUFJPTSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1OAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1OAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAogCiAvKgogICogUlRDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfUlRDX1BDRjg1NjMKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkJMHg1MQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkJMHg1MQogCiAvKiBJMkMgU1lTTU9OIChMTTc1KSAqLwogI2RlZmluZSBDT05GSUdfRFRUX0xNODEJCQkxCS8qIE9OIFNlbWkncyBMTTc1CQkqLwogI2RlZmluZSBDT05GSUdfRFRUX1NFTlNPUlMJCXswfQkvKiBTZW5zb3IgYWRkcmVzc2VzCQkqLwotI2RlZmluZSBDRkdfRFRUX01BWF9URU1QCQk3MAotI2RlZmluZSBDRkdfRFRUX0xPV19URU1QCQktMzAKLSNkZWZpbmUgQ0ZHX0RUVF9IWVNURVJFU0lTCQkzCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX01BWF9URU1QCQk3MAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9MT1dfVEVNUAkJLTMwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0hZU1RFUkVTSVMJCTMKIAogLyoKICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMDgwMDAwMCAvKiA4IE1CeXRlICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxNDAJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAgLyogOCBNQnl0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTE0MAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoVEVYVF9CQVNFKzB4NDAwMDApIC8qIHNlY29uZCBzZWN0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCiAJCQkJCSAgICg9IGNoaXAgc2VsZWN0cykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX0FNRF9SRVNFVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfQU1EX1JFU0VUCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwpAQCAtMTgzLDE0ICsxODMsMTQgQEAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NSQU1fQkFTRQkJMHg4MDEwMDAwMAkvKiBDUyAxICovCi0jZGVmaW5lIENGR19ESVNQTEFZX0JBU0UJMHg4MDYwMDAwMAkvKiBDUyAzICovCi0jZGVmaW5lCUNGR19JQl9NQVNURVIJCTB4YzA1MTAwMDAJLyogQ1MgNiAqLwotI2RlZmluZSBDRkdfSUJfRVBMRAkJMHhjMDUwMDAwMAkvKiBDUyA3ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fQkFTRQkJMHg4MDEwMDAwMAkvKiBDUyAxICovCisjZGVmaW5lIENPTkZJR19TWVNfRElTUExBWV9CQVNFCTB4ODA2MDAwMDAJLyogQ1MgMyAqLworI2RlZmluZQlDT05GSUdfU1lTX0lCX01BU1RFUgkJMHhjMDUxMDAwMAkvKiBDUyA2ICovCisjZGVmaW5lIENPTkZJR19TWVNfSUJfRVBMRAkJMHhjMDUwMDAwMAkvKiBDUyA3ICovCiAKIC8qIFNldHRpbmdzIGZvciBYTEIgPSAxMzIgTUh6ICovCiAjZGVmaW5lIFNEUkFNX0REUgkgMQpAQCAtMjAyLDMyICsyMDIsMzIgQEAKICNkZWZpbmUgU0RSQU1fVEFQREVMQVkgIDB4MTAwMDAwMDAKIAogLyogU1JBTSAqLwotI2RlZmluZSBTUkFNX0JBU0UJCUNGR19TUkFNX0JBU0UJLyogU1JBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgU1JBTV9CQVNFCQlDT05GSUdfU1lTX1NSQU1fQkFTRQkvKiBTUkFNIGJhc2UgYWRkcmVzcwkqLwogI2RlZmluZSBTUkFNX0xFTgkJMHgxZmZmZmYKICNkZWZpbmUgU1JBTV9FTkQJCShTUkFNX0JBU0UgKyBTUkFNX0xFTikKIAogLyogVXNlIE9OLUNoaXAgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KICNpZmRlZiBDT05GSUdfUE9TVAogLyogcHJlc2VydmUgc3BhY2UgZm9yIHRoZSBwb3N0X3dvcmQgYXQgZW5kIG9mIG9uLWNoaXAgU1JBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1BPU1RfU0laRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQogI2VuZGlmCiAKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMjM5LDcgKzIzOSw3IEBACiAvKgogICogR1BJTyBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDRkNTU4MDQ0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4NGQ1NTgwNDQKIAogLyp1c2UgIEhhcmR3YXJlIFdEVCAqLwogI2RlZmluZSBDT05GSUdfSFdfV0FUQ0hET0cKQEAgLTI0NywzMCArMjQ3LDMwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCiAvKiBFbmFibGUgYW4gYWx0ZXJuYXRlLCBtb3JlIGV4dGVuc2l2ZSBtZW1vcnkgdGVzdCAqLwotI2RlZmluZSBDRkdfQUxUX01FTVRFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVAogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAzMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMyAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDMwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMyAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MzAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDMwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKgpAQCAtMjgyLDQxICsyODIsNDEgQEAKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQotI2RlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKICNlbHNlCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCTAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQk9PVENTX1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19CT09UQ1NfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNDVEMDAKLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQlDRkdfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0NUQwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TVEFSVAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQogCiAvKiA4TWJpdCBTUkFNIEAweDgwMTAwMDAwICovCi0jZGVmaW5lIENGR19DUzFfU1RBUlQJCUNGR19TUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMV9TSVpFCQkweDAwMjAwMDAwCi0jZGVmaW5lIENGR19DUzFfQ0ZHCQkweDIxRDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUCQlDT05GSUdfU1lTX1NSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TSVpFCQkweDAwMjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NGRwkJMHgyMUQwMAogCiAvKiBEaXNwbGF5IEgxLCBTdGF0dXMgSW5wdXRzLCBFUExEIEAweDgwNjAwMDAwIDggQml0ICovCi0jZGVmaW5lIENGR19DUzNfU1RBUlQJCUNGR19ESVNQTEFZX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTM19TSVpFCQkweDAwMDAwMTAwCi0jZGVmaW5lIENGR19DUzNfQ0ZHCQkweDAwMDgxODAyCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX1NUQVJUCQlDT05GSUdfU1lTX0RJU1BMQVlfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTM19TSVpFCQkweDAwMDAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX0NGRwkJMHgwMDA4MTgwMgogCiAvKiBJbnRlcmJ1cyBNYXN0ZXIgMTYgQml0ICovCi0jZGVmaW5lIENGR19DUzZfU1RBUlQJCUNGR19JQl9NQVNURVIKLSNkZWZpbmUgQ0ZHX0NTNl9TSVpFCQkweDAwMDEwMDAwCi0jZGVmaW5lIENGR19DUzZfQ0ZHCQkweDAwRkYzNTAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1M2X1NUQVJUCQlDT05GSUdfU1lTX0lCX01BU1RFUgorI2RlZmluZSBDT05GSUdfU1lTX0NTNl9TSVpFCQkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1M2X0NGRwkJMHgwMEZGMzUwMAogCiAvKiBJbnRlcmJ1cyBFUExEIDggQml0ICovCi0jZGVmaW5lIENGR19DUzdfU1RBUlQJCUNGR19JQl9FUExECi0jZGVmaW5lIENGR19DUzdfU0laRQkJMHgwMDAxMDAwMAotI2RlZmluZSBDRkdfQ1M3X0NGRwkJMHgwMDA4MTgwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTN19TVEFSVAkJQ09ORklHX1NZU19JQl9FUExECisjZGVmaW5lIENPTkZJR19TWVNfQ1M3X1NJWkUJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzdfQ0ZHCQkweDAwMDgxODAwCiAKLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMworI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiBTdXBwb3J0cyBJREUgaGFyZGRpc2sKQEAgLTMyOCwzMyArMzI4LDMzIEBACiAjdW5kZWYJQ09ORklHX0lERV84eHhfRElSRUNUCQkvKiBEaXJlY3QgSURFICAgIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkyCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMgkvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzCSovCiAKICNkZWZpbmUgQ09ORklHX0lERV9QUkVJTklUCTEKIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfQVRBX0RBVEFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCiAKIC8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUgICAgICAgICAgNAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUgICAgICAgICAgNAogCiAjZGVmaW5lIENPTkZJR19BVEFQSSAgICAgICAgICAgIDEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogRGlzcGxheSBhZGRyZXNzZXMJCQkJCQkgICAgICAgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0RJU1BfQ0hSX1JBTQkoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4MzgpCi0jZGVmaW5lIENGR19ESVNQX0NXT1JECQkoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4MzApCisjZGVmaW5lIENPTkZJR19TWVNfRElTUF9DSFJfUkFNCShDT05GSUdfU1lTX0RJU1BMQVlfQkFTRSArIDB4MzgpCisjZGVmaW5lIENPTkZJR19TWVNfRElTUF9DV09SRAkJKENPTkZJR19TWVNfRElTUExBWV9CQVNFICsgMHgzMCkKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy91dHg4MjQ1LmggYi9pbmNsdWRlL2NvbmZpZ3MvdXR4ODI0NS5oCmluZGV4IDQzNTVlMWMuLjZlOWMyN2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy91dHg4MjQ1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3V0eDgyNDUuaApAQCAtNTUsNyArNTUsNyBAQAogCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk1NzYwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTIKICNkZWZpbmUgQ09ORklHX0FVVE9CT09UX1BST01QVAkiYXV0b2Jvb3QgaW4gJWQgc2Vjb25kc1xuIiwgYm9vdGRlbGF5CkBAIC02Myw3ICs2Myw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQVJHUwkJInJvb3Q9L2Rldi9yYW0gY29uc29sZT10dHlTMCw1NzYwMCIgLyogUkFNZGlzayAqLwogI2RlZmluZSBDT05GSUdfRVRIQUREUgkJMDA6QUE6MDA6MTQ6MDA6MDUJLyogVVRYNSAqLwogI2RlZmluZSBDT05GSUdfU0VSVkVSSVAJCTEwLjguMTcuMTA1CS8qIFNwcmVlICovCi0jZGVmaW5lIENGR19URlRQX0xPQURBRERSCTEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVEZUUF9MT0FEQUREUgkxMDAwMAogCiAjZGVmaW5lIENPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MgXAogCSJrZXJuZWxfYWRkcj1GRkEwMDAwMFwwIiBcCkBAIC0xMjEsMTYgKzEyMSwxNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCQkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KIAogLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCiAKLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE0Miw3ICsxNDIsNyBAQAogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4ICAgICAgICAgICAgICAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOCAgICAgICAgICAgICAgIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwX1NST01fV1JJVEUKIAogI2RlZmluZSBQQ0lfRU5FVDBfSU9BRERSCTB4RjAwMDAwMDAKQEAgLTE2MSw2MSArMTYxLDYxIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFICAgIDB4MTAwMDAwMDAJLyogMjU2TUIgICovCi0vKiNkZWZpbmUgQ0ZHX1ZFUllfQklHX1JBTQkxICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRSAgICAweDEwMDAwMDAwCS8qIDI1Nk1CICAqLworLyojZGVmaW5lIENPTkZJR19TWVNfVkVSWV9CSUdfUkFNCTEgKi8KIAogLyogRkxBU0hfQkFTRSBpcyBGRjgwMDAwMCwgd2l0aCA0TUIgb24gUkNTMCwgYnV0IHRoZSByZXNldCB2ZWN0b3IKICAqIGlzIGFjdHVhbGx5IGxvY2F0ZWQgYXQgRkZGMDAxMDAuICBUaGVyZWZvcmUsIFUtQm9vdCBpcwogICogcGh5c2ljYWxseSBsb2NhdGVkIGF0IDB4RkZCMF8wMDAwLCBidXQgaXMgYWxzbyBtaXJyb3JlZCBhdAogICogMHhGRkYwXzAwMDAuCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MgICAweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKIAotI2RlZmluZSBDRkdfRVVNQl9BRERSCSAgICAweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVVNQl9BRERSCSAgICAweEZDMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSAgICAoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JICAgICgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkgICAgKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKLS8qI2RlZmluZSBDRkdfRFJBTV9URVNUCQkxICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgMHgwMDAwMzAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCTAuLi4yNTYgTUIJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECSAgICAweDBmZjhmZmE3CS8qIGluIFNEUkFNLCBza2lwcyBleGNlcHRpb24gKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fVEVTVAkJMSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAweDAwMDAzMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JMC4uLjI1NiBNQgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECSAgICAweDBmZjhmZmE3CS8qIGluIFNEUkFNLCBza2lwcyBleGNlcHRpb24gKi8KIAkJCQkJCQkJCQkvKiB2ZWN0b3JzIGFuZCBVLUJvb3QgKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfREFUQV9TSVpFICAgIDEyOAkvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfREFUQV9TSVpFICAgIDEyOAkvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciAqLwogCQkJCQkJCQkJLyogaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgICAweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfREFUQV9PRkZTRVQgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0lOSVRfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9EQVRBX09GRlNFVCAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19JTklUX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQogCiAjaWYgKENPTkZJR19DT05TX0lOREVYID09IDEgfHwgQ09ORklHX0NPTlNfSU5ERVggPT0gMikKLSMJZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjCWRlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKICNlbHNlCi0jCWRlZmluZSBDRkdfTlMxNjU1MF9DTEsgMzMwMDAwMDAKKyMJZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsgMzMwMDAwMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19FVU1CX0FERFIgKyAweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19FVU1CX0FERFIgKyAweDQ2MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTMJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT000CTB4RkYwMDAwMDgKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19FVU1CX0FERFIgKyAweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00zCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTQJMHhGRjAwMDAwOAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjI1LDEwICsyMjUsMTAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRICAzMzAwMDAwMAotI2RlZmluZSBDRkdfSFoJCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJCTEwMDAKIAotLyojZGVmaW5lIENGR19FVEhfREVWX0ZOCSAgICAgMHg3ODAwICovCi0vKiNkZWZpbmUgQ0ZHX0VUSF9JT0JBU0UJICAgICAweDAwMTA0MDAwICovCisvKiNkZWZpbmUgQ09ORklHX1NZU19FVEhfREVWX0ZOCSAgICAgMHg3ODAwICovCisvKiNkZWZpbmUgQ09ORklHX1NZU19FVEhfSU9CQVNFCSAgICAgMHgwMDEwNDAwMCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgQ29uZmlndXJhdGlvbgpAQCAtMjM2LDEzICsyMzYsMTMgQEAKICNpZiAxCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkJLyogVG8gZW5hYmxlIEkyQyBzdXBwb3J0CSovCiAjdW5kZWYgIENPTkZJR19TT0ZUX0kyQwkJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19SVENfUENGODU2MwkxCQkvKiBlbmFibGUgSTJDIHN1cHBvcnQgZm9yICovCiAJCQkJCQkJCQkvKiBQaGlsaXBzIFBDRjg1NjMgUlRDICovCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg1MQkvKiBQaGlsaXBzIFBDRjg1NjMgUlRDIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg1MQkvKiBQaGlsaXBzIFBDRjg1NjMgUlRDIGFkZHJlc3MgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJTWVtb3J5IENvbnRyb2wgQ29uZmlndXJhdGlvbiBSZWdpc3RlciB2YWx1ZXMKQEAgLTI1MCw1OSArMjUwLDU5IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKIC8qKioqIE1DQ1IxICoqKiovCi0jZGVmaW5lIENGR19ST01OQUwJICAgIDAKLSNkZWZpbmUgQ0ZHX1JPTUZBTAkgICAgMTAJCS8qICh0YWNjPTcwbnMpKm1lbV9mcmVxIC0gMiwKKyNkZWZpbmUgQ09ORklHX1NZU19ST01OQUwJICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ST01GQUwJICAgIDEwCQkvKiAodGFjYz03MG5zKSptZW1fZnJlcSAtIDIsCiAJCQkJCQkJCQltZW1fZnJlcSA9IDEwME1IeiAqLwogCi0jZGVmaW5lIENGR19CQU5LN19ST1cJMAkJLyogU0RSQU0gYmFuayA3LTAgcm93IGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0JBTks2X1JPVwkwCQkvKgliaXQgY291bnQgKi8KLSNkZWZpbmUgQ0ZHX0JBTks1X1JPVwkwCi0jZGVmaW5lIENGR19CQU5LNF9ST1cJMAotI2RlZmluZSBDRkdfQkFOSzNfUk9XCTAKLSNkZWZpbmUgQ0ZHX0JBTksyX1JPVwkwCi0jZGVmaW5lIENGR19CQU5LMV9ST1cJMgotI2RlZmluZSBDRkdfQkFOSzBfUk9XCTIKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19ST1cJMAkJLyogU0RSQU0gYmFuayA3LTAgcm93IGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9ST1cJMAkJLyoJYml0IGNvdW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfUk9XCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9ST1cJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX1JPVwkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfUk9XCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9ST1cJMgorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX1JPVwkyCiAKIC8qKioqIE1DQ1IyLCByZWZyZXNoIGludGVydmFsIGNsb2NrIGN5Y2xlcyAqKioqLwotI2RlZmluZSBDRkdfUkVGSU5UCSAgICA0ODAJICAgIC8qIDMzIE1IeiBTRFJBTSBjbG9jayB3YXMgNDgwICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGSU5UCSAgICA0ODAJICAgIC8qIDMzIE1IeiBTRFJBTSBjbG9jayB3YXMgNDgwICovCiAKIC8qIEJ1cnN0IFRvIFByZWNoYXJnZS4gQml0cyBvZiB0aGlzIHZhbHVlIGdvIHRvIE1DQ1IzIGFuZCBNQ0NSNC4gKi8KLSNkZWZpbmUgQ0ZHX0JTVE9QUkUJICAgIDEwMjMJLyogYnVyc3QgdG8gcHJlY2hhcmdlWzAuLjldLCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JTVE9QUkUJICAgIDEwMjMJLyogYnVyc3QgdG8gcHJlY2hhcmdlWzAuLjldLCAqLwogCQkJCQkJCQkvKiBzZXRzIG9wZW4gcGFnZSBpbnRlcnZhbCAqLwogCiAvKioqKiBNQ0NSMyAqKioqLwotI2RlZmluZSBDRkdfUkVGUkVDCSAgICA3CSAgICAvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsLCB0cmMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUZSRUMJICAgIDcJICAgIC8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwsIHRyYyAqLwogCiAvKioqKiBNQ0NSNCAqKioqLwotI2RlZmluZSBDRkdfUFJFVE9BQ1QJICAgIDIJICAgIC8qIHRycCAqLwotI2RlZmluZSBDRkdfQUNUVE9QUkUJICAgIDcJICAgIC8qIHRyY2QgKyAoYnVyc3QgbGVuZ3RoIC0gMSkgKyB0cmRsICovCi0jZGVmaW5lIENGR19TRE1PREVfQ0FTX0xBVCAgMwkgICAgLyogU0RNT0RFIENBUyBsYXRhbmN5ICovCi0jZGVmaW5lIENGR19TRE1PREVfV1JBUAkgICAgMAkgICAgLyogU0RNT0RFIHdyYXAgdHlwZSwgc2VxdWVudGlhbCAqLwotI2RlZmluZSBDRkdfQUNUT1JXCQkyCQkvKiB0cmNkIG1pbiAqLwotI2RlZmluZSBDRkdfREJVU19TSVpFMgkJMQkJLyogc2V0IGZvciA4LWJpdCBSQ1MxLCBjbGVhciBmb3IgMzIsNjQgKi8KLSNkZWZpbmUgQ0ZHX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAxCi0jZGVmaW5lIENGR19FWFRST00JICAgIDAJCQkvKiB3ZSBkb24ndCBuZWVkIGV4dGVuZGVkIFJPTSBzcGFjZSAqLwotI2RlZmluZSBDRkdfUkVHRElNTQkgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1BSRVRPQUNUCSAgICAyCSAgICAvKiB0cnAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkgICAgNwkgICAgLyogdHJjZCArIChidXJzdCBsZW5ndGggLSAxKSArIHRyZGwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVCAgMwkgICAgLyogU0RNT0RFIENBUyBsYXRhbmN5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX1dSQVAJICAgIDAJICAgIC8qIFNETU9ERSB3cmFwIHR5cGUsIHNlcXVlbnRpYWwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RPUlcJCTIJCS8qIHRyY2QgbWluICovCisjZGVmaW5lIENPTkZJR19TWVNfREJVU19TSVpFMgkJMQkJLyogc2V0IGZvciA4LWJpdCBSQ1MxLCBjbGVhciBmb3IgMzIsNjQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQorI2RlZmluZSBDT05GSUdfU1lTX0VYVFJPTQkgICAgMAkJCS8qIHdlIGRvbid0IG5lZWQgZXh0ZW5kZWQgUk9NIHNwYWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVHRElNTQkgICAgMAogCiAvKiBjYWxjdWxhdGUgYWNjb3JkaW5nIHRvIGZvcm11bGEgaW4gc2VjLiA2LTIyIG9mIDgyNDUgVU0gKi8KLSNkZWZpbmUgQ0ZHX1BHTUFYICAgICAgICAgICA1MAkJLyogaG93IGxvbmcgdGhlIDgyNDUgcmV0YWlucyB0aGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QR01BWCAgICAgICAgICAgNTAJCS8qIGhvdyBsb25nIHRoZSA4MjQ1IHJldGFpbnMgdGhlICovCiAJCQkJCQkJCQkvKiBjdXJyZW50bHkgYWNjZXNzZWQgcGFnZSBpbiBtZW1vcnkgKi8KIAkJCQkJCQkJCS8qIHdhcyA0NSAqLwogCi0jZGVmaW5lIENGR19TRFJBTV9EU0NECTB4MjAJLyogU0RSQU0gZGF0YSBpbiBzYW1wbGUgY2xvY2sgZGVsYXkgLSBub3RlICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRFNDRAkweDIwCS8qIFNEUkFNIGRhdGEgaW4gc2FtcGxlIGNsb2NrIGRlbGF5IC0gbm90ZSAqLwogCQkJCQkJCQkvKiBiaXRzIDcsNiwgYW5kIDMtMCBNVVNUIGJlIDAgKi8KIAogI2lmIDAKLSNkZWZpbmUgQ0ZHX0RMTF9NQVhfREVMQVkJMHgwNAorI2RlZmluZSBDT05GSUdfU1lTX0RMTF9NQVhfREVMQVkJMHgwNAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0RMTF9NQVhfREVMQVkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RMTF9NQVhfREVMQVkJMAogI2VuZGlmCiAjaWYgMAkJCQkJCQkvKiBuZWVkIGZvciAzM01IeiBTRFJBTSAqLwotI2RlZmluZSBDRkdfRExMX0VYVEVORAkweDgwCisjZGVmaW5lIENPTkZJR19TWVNfRExMX0VYVEVORAkweDgwCiAjZWxzZQotI2RlZmluZSBDRkdfRExMX0VYVEVORAkwCisjZGVmaW5lIENPTkZJR19TWVNfRExMX0VYVEVORAkwCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BDSV9IT0xEX0RFTCAweDIwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0hPTERfREVMIDB4MjAKIAogCiAvKiBNZW1vcnkgYmFuayBzZXR0aW5ncy4KQEAgLTMxMiw5NCArMzEyLDk0IEBACiAgKiBhZGRyZXNzLiBSZWZlciB0byB0aGUgTVBDODI0NSB1c2VyIG1hbnVhbC4KICAqLwogCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVAkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5ECSAgICAoQ0ZHX01BWF9SQU1fU0laRS8yIC0gMSkKLSNkZWZpbmUgQ0ZHX0JBTkswX0VOQUJMRSAgICAxCi0jZGVmaW5lIENGR19CQU5LMV9TVEFSVAkgICAgQ0ZHX01BWF9SQU1fU0laRS8yCi0jZGVmaW5lIENGR19CQU5LMV9FTkQJICAgIChDRkdfTUFYX1JBTV9TSVpFIC0gMSkKLSNkZWZpbmUgQ0ZHX0JBTksxX0VOQUJMRSAgICAxCi0jZGVmaW5lIENGR19CQU5LMl9TVEFSVAkgICAgMHgzZmYwMDAwMAkJLyogbm90IGF2YWlsYWJsZSBpbiB0aGlzIGRlc2lnbiAqLwotI2RlZmluZSBDRkdfQkFOSzJfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMl9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzNfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkszX0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzNfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks0X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks0X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNV9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNV9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzZfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzZfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks3X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks3X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfU1RBUlQJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkQJICAgIChDT05GSUdfU1lTX01BWF9SQU1fU0laRS8yIC0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkFCTEUgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX1NUQVJUCSAgICBDT05GSUdfU1lTX01BWF9SQU1fU0laRS8yCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5ECSAgICAoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VOQUJMRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfU1RBUlQJICAgIDB4M2ZmMDAwMDAJCS8qIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBkZXNpZ24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VOQUJMRSAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogNC40IC0gT3V0cHV0IERyaXZlciBDb250cm9sIFJlZ2lzdGVyICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX09EQ1IJICAgIDB4ZTUKKyNkZWZpbmUgQ09ORklHX1NZU19PRENSCSAgICAweGU1CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogNC44IC0gRXJyb3IgSGFuZGxpbmcgUmVnaXN0ZXJzICovCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1DRkdfU0RNT0RFX0JVUlNUTEVOLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19FUlJFTlIxCTB4MTEJLyogZW5hYmxlIFNEUkFNIHJlZnJlc2ggb3ZlcmZsb3cgZXJyb3IgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUNPTkZJR19TWVNfU0RNT0RFX0JVUlNUTEVOLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjZGVmaW5lIENPTkZJR19TWVNfRVJSRU5SMQkweDExCS8qIGVuYWJsZSBTRFJBTSByZWZyZXNoIG92ZXJmbG93IGVycm9yICovCiAKIC8qIFNEUkFNIDAtMjU2IE1CICovCi0jZGVmaW5lIENGR19JQkFUMEwgIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLS8qI2RlZmluZSBDRkdfSUJBVDBMICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpICovCi0jZGVmaW5lIENGR19JQkFUMFUgIChDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKy8qI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogc3RhY2sgaW4gZGNhY2hlICovCi0jZGVmaW5lIENGR19JQkFUMUwgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVSAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVSAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAKLSNkZWZpbmUgQ0ZHX0lCQVQyTCAgKENGR19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQyVSAgKENGR19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMICAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogUENJIG1lbW9yeSAqLwotLyojZGVmaW5lIENGR19JQkFUMkwgICgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKSAqLwotLyojZGVmaW5lIENGR19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApICovCisvKiNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwgICgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKSAqLworLyojZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVICAoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKSAqLwogCiAvKkZsYXNoLCBjb25maWcgYWRkcnMsIGV0Yy4gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQzTCAgKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMICAoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAgQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVICBDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMICBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgIENGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVICBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMICBDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSAgQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAgQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgIENPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMICBDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSAgQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJICAgIDB4RkY4MDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgIDB4RkY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJCS8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MgKi8KIAogLyoJTk9URTogZW52aXJvbm1lbnQgaXMgbm90IEVNQkVEREVEIGluIHRoZSB1LWJvb3QgY29kZS4KIAlJdCdzIHN0b3JlZCBpbiBmbGFzaCBpbiBpdHMgb3duIHNlcGFyYXRlIHNlY3Rvci4gICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJICAgIDEKIAogI2lmIDEJLyogQU1EIEFNMjlMVjAzM0MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CQkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgaW4gb25lIGJhbmsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NAkJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rICovCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHhGRkJGMDAwMAkvKiBmbGFzaCBzZWN0b3IgU0E2MyAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkoNjQqMTAyNCkJLyogU2l6ZSBvZiB0aGUgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjZWxzZQkvKiBBTUQgQU0yOUxWMTE2RCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rICovCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHhGRjlGQTAwMAkvKiBmbGFzaCBzZWN0b3IgU0EzMyAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkoOCoxMDI0KQkvKiBTaXplIG9mIHRoZSBFbnZpcm9ubWVudCBTZWN0b3IgKi8KICNlbmRpZiAvKiAjaWYgKi8KQEAgLTQwNywyMiArNDA3LDIyIEBACiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJQ09ORklHX0VOVl9TRUNUX1NJWkUJCS8qIFNpemUgb2YgdGhlIEVudmlyb25tZW50ICovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkwCQkJLyogc3RhcnRpbmcgcmlnaHQgYXQgdGhlIGJlZ2lubmluZyAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQotI3VuZGVmIENGR19SQU1CT09UCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCisjdW5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3YzNy5oIGIvaW5jbHVkZS9jb25maWdzL3YzNy5oCmluZGV4IDc1MDRmYTMuLmE2YjBmMGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy92MzcuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvdjM3LmgKQEAgLTQ1LDcgKzQ1LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogI2RlZmluZSBDT05GSUdfSTJDICAgICAgICAgICAgICAxCi0jZGVmaW5lIENGR19JMkNfU0xBVkUgICAgICAgICAgIDB4MgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRSAgICAgICAgICAgMHgyCiAKICNkZWZpbmUJQ09ORklHXzh4eF9DT05TX1NNQzEJMQogI3VuZGVmCUNPTkZJR184eHhfQ09OU19TTUMyCQkvKiBDb25zb2xlIGlzIG9uIFNNQzIJCSovCkBAIC03MCw3ICs3MCw3IEBACiAJImJvb3RtIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMjIsMjUgKzEyMiwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNTAsNTAgKzE1MCw1MCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFMAkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRTEJCTB4NjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19GTEFTSF9CQVNFMQorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFMAkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UxCQkweDYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19GTEFTSF9CQVNFMQogCiAjaWYgZGVmaW5lZChERUJVRykKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UwCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFMAorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fTlZSQU0JMQogI2RlZmluZQlDT05GSUdfRU5WX0FERFIJCTB4ODAwMDAwMDAvKiBBZGRyZXNzIG9mIEVudmlyb25tZW50ICovCkBAIC0yMDQsOSArMjA0LDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjE2LDEwICsyMTYsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCTB4RkZGRkZGODgKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkweEZGRkZGRjg4CiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjI3LDMwICsyMjcsMzAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfRlJDIHwgU0lVTUNSX0dCNUUpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9GUkMgfCBTSVVNQ1JfR0I1RSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkUpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLS8qJSUlI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKSAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX1JURSkKKy8qJSUlI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUiAoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSIChQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAvKgotI2RlZmluZSBDRkdfUElTQ1IgKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjYyLDcgKzI2Miw3IEBACiAgKiBJZiB0aGlzIGlzIGEgODAgTUh6IENQVSwgc2V0IFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgdG8gNSAoNSoxNj04MCkhCiAgKi8KIC8qIHVwIHRvIDUwIE1IeiB3ZSB1c2UgYSAxOjEgY2xvY2sgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoICgxNTI0IDw8IFBMUFJDUl9NRl9TSElGVCkgfCBQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVE1JU1QgfCBQTFBSQ1JfVEVYUFMgKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoICgxNTI0IDw8IFBMUFJDUl9NRl9TSElGVCkgfCBQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVE1JU1QgfCBQTFBSQ1JfVEVYUFMgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMjcyLDIxICsyNzIsMjEgQEAKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKIC8qIHVwIHRvIDUwIE1IeiB3ZSB1c2UgYSAxOjEgY2xvY2sgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAgfCBTQ0NSX1RCUykKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwIHwgU0NDUl9UQlMpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0yOTksMjggKzI5OSwyOCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzMxLDIxICszMzEsMjEgQEAKICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4NDAwMDAwMDAJLyogRkxBU0ggYmFuayAjMAkqLwogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0JMHg2MDAwMDAwMAkvKiBGTEFTSCBiYW5rICMxCSovCiAKLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZFMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZFMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJMHhGNTYKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJMHhGNTYKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQogCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMzIgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX1YpCiAKIC8qCiAgKiBCUjEgYW5kIE9SMSAoQmF0dGVyeSBiYWNrZWQgU1JBTSkKICAqLwotI2RlZmluZQlDRkdfQlIxX1BSRUxJTQkweDgwMDAwNDAxCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCTB4RkZDMDA3MzYKKyNkZWZpbmUJQ09ORklHX1NZU19CUjFfUFJFTElNCTB4ODAwMDA0MDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCTB4RkZDMDA3MzYKIAogLyoKICAqIEJSMiBhbmQgT1IyIChTRFJBTSkKQEAgLTM1MywyMSArMzUzLDIxIEBACiAjZGVmaW5lIFNEUkFNX0JBU0VfUFJFTElNCTB4MDAwMDAwMDAJLyogU0RSQU0gYmFzZQkqLwogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgKi8KIAotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qIE1hcmVsIFYzNyBtZW0gc2V0dGluZyAqLwogCi0jZGVmaW5lCUNGR19CUjNfQ0FOCTB4QzAwMDA0MDEKLSNkZWZpbmUgQ0ZHX09SM19DQU4JMHhGRkZGMDcyNAorI2RlZmluZQlDT05GSUdfU1lTX0JSM19DQU4JMHhDMDAwMDQwMQorI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JMHhGRkZGMDcyNAogCiAvKgotI2RlZmluZQlDRkdfQlIzX1BSRUxJTQkweEZBNDAwMDAxCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCTB4RkZGRjg5MTAKLSNkZWZpbmUJQ0ZHX0JSNF9QUkVMSU0JMHhGQTAwMDQwMQotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkweEZGRkUwOTcwCisjZGVmaW5lCUNPTkZJR19TWVNfQlIzX1BSRUxJTQkweEZBNDAwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkweEZGRkY4OTEwCisjZGVmaW5lCUNPTkZJR19TWVNfQlI0X1BSRUxJTQkweEZBMDAwNDAxCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkweEZGRkUwOTcwCiAqLwogCiAvKgpAQCAtMzc1LDE5ICszNzUsMTkgQEAKICAqLwogCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTUFNUl9QVEEJOTcJCS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IegkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTk3CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KIAogLyoKICAqIFJlZnJlc2ggY2xvY2sgUHJlc2NhbGFyCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSCU1QVFBSX1BUUF9ESVYxNgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCU1QVFBSX1BUUF9ESVYxNgogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiAxMCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfMTBDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl8xMENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8yIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTIgfAlcCiAJCQkgTUFNUl9HUExfQTRESVMgfCBNQU1SX1JMRkFfNFggfCBNQU1SX1dMRkFfM1ggfCBNQU1SX1RMRkFfMTZYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvdjM4Yi5oIGIvaW5jbHVkZS9jb25maWdzL3YzOGIuaAppbmRleCAwZjhkNWE5Li4wMTU2Y2UxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvdjM4Yi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy92MzhiLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNkZWZpbmUgQ09ORklHX01QQzV4eHgJCQkxCS8qIFRoaXMgaXMgYW4gTVBDNXh4eCBDUFUgKi8KICNkZWZpbmUgQ09ORklHX01QQzUyMDAJCQkxCS8qIFRoaXMgaXMgYW4gTVBDNTIwMCBDUFUgKi8KICNkZWZpbmUgQ09ORklHX1YzOEIJCQkxCS8qIC4uLm9uIFYzOEIgYm9hcmQgKi8KLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAJLyogLi4ucnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwCS8qIC4uLnJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCiAKICNkZWZpbmUgQ09ORklHX1JUQ19QQ0Y4NTYzCQkxCS8qIGhhcyBQQ0Y4NTYzIFJUQyAqLwogI2RlZmluZSBDT05GSUdfTVBDNTIwMF9ERFIJCTEJLyogaGFzIEREUiBTRFJBTSAqLwpAQCAtNDEsNyArNDEsNyBAQAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9SCTEJLyogZG8gYm9hcmQtc3BlY2lmaWMgaW5pdCAqLwogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCTEJLyogZG8gYm9hcmQtc3BlY2lmaWMgaW5pdCAqLwogCi0jZGVmaW5lIENGR19YTEJfUElQRUxJTklORwkJMQkvKiBnaXZlcyBiZXR0ZXIgcGVyZm9ybWFuY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19YTEJfUElQRUxJTklORwkJMQkvKiBnaXZlcyBiZXR0ZXIgcGVyZm9ybWFuY2UgKi8KIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdCAqLwpAQCAtNTMsNyArNTMsNyBAQAogICovCiAjZGVmaW5lIENPTkZJR19QU0NfQ09OU09MRQkxCS8qIGNvbnNvbGUgaXMgb24gUFNDMSAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAkvKiAuLi4gYXQgMTE1MjAwIGJwcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qCiAgKiBERFIKQEAgLTEyMSw4ICsxMjEsOCBAQAogLyoKICAqIEJvb3QgbG93IHdpdGggMTYgTUIgRmxhc2gKICAqLwotI2RlZmluZSBDRkdfTE9XQk9PVAkJMQotI2RlZmluZSBDRkdfTE9XQk9PVDE2CQkxCisjZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QxNgkJMQogCiAvKgogICogQXV0b2Jvb3RpbmcKQEAgLTE3Myw0OCArMTczLDQ4IEBACiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jdW5kZWYgQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KICNlbmRpZgogCiAvKgogICogSTJDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIDEwMCBrSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIEVFUFJPTSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MAogCiAvKgogICogUlRDIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCQkweDUxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCQkweDUxCiAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uIC0gdXNlIENGSSBkcml2ZXIKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRklfQU1EX1JFU0VUCTEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMTAwMDAwMAkvKiAxNiBNaUIgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCS8qIGZsYXNoIHdyaXRlIHNwZWVkLXVwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX0FNRF9SRVNFVAkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMTAwMDAwMAkvKiAxNiBNaUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEJLyogZmxhc2ggd3JpdGUgc3BlZWQtdXAgKi8KIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDA0MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDA0MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQpAQCAtMjIyLDI2ICsyMjIsMjYgQEAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAogCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NmtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOGtCIGZvciBtYWxsb2MoKSAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogTGludXggaW5pdGlhbCBtZW1vcnkgbWFwICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2a0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOGtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIExpbnV4IGluaXRpYWwgbWVtb3J5IG1hcCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMjUzLDUwICsyNTMsNTAgQEAKIC8qCiAgKiBHUElPIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4OTAwMDE0MDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHg5MDAwMTQwNAogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0gKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKIAotI2RlZmluZSBDRkdfQk9PVENTX1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19CT09UQ1NfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNDc4MDEKLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQlDRkdfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0NzgwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TVEFSVAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQogCi0jZGVmaW5lIENGR19DU19CVVJTVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAogCiAvKgogICogSURFL0FUQSAoc3VwcG9ydHMgSURFIGhhcmRkaXNrKQpAQCAtMzA4LDIwICszMDgsMjAgQEAKICNkZWZpbmUgQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQgKi8KICNkZWZpbmUgQ09ORklHX0lERV9QUkVJTklUCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMgKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cyAqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQogCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkJLyogZGF0YSBJL08gb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCS8qIGRhdGEgSS9PIG9mZnNldCAqLwogCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoQ0ZHX0FUQV9EQVRBX09GRlNFVCkJLyogbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkJLyogbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzIG9mZnNldCAqLwogCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQkvKiBhbHRlcm5hdGUgcmVnaXN0ZXJzIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCS8qIGFsdGVybmF0ZSByZWdpc3RlcnMgb2Zmc2V0ICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUJCTQJCS8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJNAkJLyogSW50ZXJ2YWwgYmV0d2VlbiByZWdpc3RlcnMgKi8KIAogLyoKICAqIFN0YXR1cyBMRUQKQEAgLTMyOSwyNiArMzI5LDI2IEBACiAjZGVmaW5lICBDT05GSUdfU1RBVFVTX0xFRAkJLyogU3RhdHVzIExFRCBlbmFibGVkICovCiAjZGVmaW5lICBDT05GSUdfQk9BUkRfU1BFQ0lGSUNfTEVECS8qIHZlcnNpb24gaGFzIGJvYXJkIHNwZWNpZmljIGxlZHMgKi8KIAotI2RlZmluZSBDRkdfTEVEX0JBU0UJTVBDNVhYWF9HUFQ3X0VOQUJMRQkvKiBUaW1lciA3IEdQSU8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MRURfQkFTRQlNUEM1WFhYX0dQVDdfRU5BQkxFCS8qIFRpbWVyIDcgR1BJTyAqLwogI2lmbmRlZiBfX0FTU0VNQkxZX18KIHR5cGVkZWYgdW5zaWduZWQgaW50IGxlZF9pZF90OwogCiAjZGVmaW5lIF9fbGVkX3RvZ2dsZShfbXNrKSBcCiAJZG8geyBcCi0JCSooKHZvbGF0aWxlIGxvbmcgKikgKENGR19MRURfQkFTRSkpIF49IChfbXNrKTsgXAorCQkqKCh2b2xhdGlsZSBsb25nICopIChDT05GSUdfU1lTX0xFRF9CQVNFKSkgXj0gKF9tc2spOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIF9fbGVkX3NldChfbXNrLCBfc3QpIFwKIAlkbyB7IFwKIAkJaWYgKChfc3QpKSBcCi0JCQkqKCh2b2xhdGlsZSBsb25nICopIChDRkdfTEVEX0JBU0UpKSAmPSB+KF9tc2spOyBcCisJCQkqKCh2b2xhdGlsZSBsb25nICopIChDT05GSUdfU1lTX0xFRF9CQVNFKSkgJj0gfihfbXNrKTsgXAogCQllbHNlIFwKLQkJCSooKHZvbGF0aWxlIGxvbmcgKikgKENGR19MRURfQkFTRSkpIHw9IChfbXNrKTsgXAorCQkJKigodm9sYXRpbGUgbG9uZyAqKSAoQ09ORklHX1NZU19MRURfQkFTRSkpIHw9IChfbXNrKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBfX2xlZF9pbml0KF9tc2ssIHN0KSBcCiAJZG8geyBcCi0JCSooKHZvbGF0aWxlIGxvbmcgKikgKENGR19MRURfQkFTRSkpIHw9IDB4MzQ7IFwKKwkJKigodm9sYXRpbGUgbG9uZyAqKSAoQ09ORklHX1NZU19MRURfQkFTRSkpIHw9IDB4MzQ7IFwKIAl9IHdoaWxlKDApCiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy92NWZ4MzB0ZXZhbC5oIGIvaW5jbHVkZS9jb25maWdzL3Y1ZngzMHRldmFsLmgKaW5kZXggMTYzNmQ0Mi4uZDMwMGM0YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3Y1ZngzMHRldmFsLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3Y1ZngzMHRldmFsLmgKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlICIuLi9ib2FyZC9hdm5ldC92NWZ4MzB0ZXZhbC94cGFyYW1ldGVycy5oIgogCiAvKk1lbSBNYXAqLwotI2RlZmluZSBDRkdfU0RSQU1fU0laRV9NQgk2NAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkVfTUIJNjQKIAogLypFbnYqLwogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKQEAgLTM0LDEyICszNCwxMiBAQAogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShYUEFSX0ZMQVNIX01FTTBfQkFTRUFERFIrQ09ORklHX0VOVl9PRkZTRVQpCiAKIC8qTWlzYyovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJ2NWZ4MzB0Oi8jICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJInY1ZngzMHQ6LyMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICovCiAjZGVmaW5lIENPTkZJR19QUkVCT09UCQkiZWNobyBVLUJvb3QgaXMgdXAgYW5kIHJ1bm5pbmluZzsiCiAKIC8qRmxhc2gqLwotI2RlZmluZQlDRkdfRkxBU0hfU0laRQkJKDE2KjEwMjQqMTAyNCkKLSNkZWZpbmUJQ0ZHX01BWF9GTEFTSF9TRUNUCTEzMQorI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCSgxNioxMDI0KjEwMjQpCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTMxCiAjZGVmaW5lIE1URElEU19ERUZBVUxUCQkibm9yMD12NWZ4MzB0LWZsYXNoIgogI2RlZmluZSBNVERQQVJUU19ERUZBVUxUCSJtdGRwYXJ0cz12NWZ4MzB0LWZsYXNoOi0odXNlcikiCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy92ZXJzYXRpbGUuaCBiL2luY2x1ZGUvY29uZmlncy92ZXJzYXRpbGUuaAppbmRleCA2MDM0Y2I3Li5kODEyNDIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvdmVyc2F0aWxlLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3ZlcnNhdGlsZS5oCkBAIC00MCwxNCArNDAsMTQgQEAKICNkZWZpbmUgQ09ORklHX0FSQ0hfVkVSU0FUSUxFICAgMQkvKiBTcGVjaWZpY2FsbHksIGEgVmVyc2F0aWxlCSovCiAKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgICAgICAweDEwMDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgICAgICAgICAweDEwMDAwMDAwCi0jZGVmaW5lIENGR19IWiAgICAgICAgICAgICAgICAgICgxMDAwMDAwIC8gMjU2KQotI2RlZmluZSBDRkdfVElNRVJCQVNFICAgICAgICAgICAweDEwMUUyMDAwCS8qIFRpbWVyIDAgYW5kIDEgYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAgICAgMHgxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORCAgICAgICAgIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWiAgICAgICAgICAgICAgICAgICgxMDAwMDAwIC8gMjU2KQorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSQkFTRSAgICAgICAgICAgMHgxMDFFMjAwMAkvKiBUaW1lciAwIGFuZCAxIGJhc2UgKi8KIAotI2RlZmluZSBDRkdfVElNRVJfSU5URVJWQUwJMTAwMDAKLSNkZWZpbmUgQ0ZHX1RJTUVSX1JFTE9BRAkoQ0ZHX1RJTUVSX0lOVEVSVkFMID4+IDQpCS8qIERpdmlkZSBieSAxNiAqLwotI2RlZmluZSBDRkdfVElNRVJfQ1RSTCAgICAgICAgICAweDg0CQkJCS8qIEVuYWJsZSwgQ2xvY2sgLyAxNiAqLworI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSX0lOVEVSVkFMCTEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJfUkVMT0FECShDT05GSUdfU1lTX1RJTUVSX0lOVEVSVkFMID4+IDQpCS8qIERpdmlkZSBieSAxNiAqLworI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSX0NUUkwgICAgICAgICAgMHg4NAkJCQkvKiBFbmFibGUsIENsb2NrIC8gMTYgKi8KIAogLyoKICAqIGNvbnRyb2wgcmVnaXN0ZXJzCkBAIC03MSw4ICs3MSw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC04OCwxMyArODgsMTMgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUEwwMTFfU0VSSUFMCiAjZGVmaW5lIENPTkZJR19QTDAxMV9DTE9DSwkyNDAwMDAwMAotI2RlZmluZSBDT05GSUdfUEwwMXhfUE9SVFMJeyAodm9pZCAqKUNGR19TRVJJQUwwLCAodm9pZCAqKUNGR19TRVJJQUwxIH0KKyNkZWZpbmUgQ09ORklHX1BMMDF4X1BPUlRTCXsgKHZvaWQgKilDT05GSUdfU1lTX1NFUklBTDAsICh2b2lkICopQ09ORklHX1NZU19TRVJJQUwxIH0KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMAogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURSAgICAgICAgIDM4NDAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KLSNkZWZpbmUgQ0ZHX1NFUklBTDAJCTB4MTAxRjEwMDAKLSNkZWZpbmUgQ0ZHX1NFUklBTDEJCTB4MTAxRjIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19TRVJJQUwwCQkweDEwMUYxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0VSSUFMMQkJMHgxMDFGMjAwMAogCiAKIC8qCkBAIC0xMzYsMTYgKzEzNiwxNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJIlZlcnNhdGlsZSAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIlZlcnNhdGlsZSAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDdmYzAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHg3ZmMwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xNjUsNyArMTY1LDcgQEAKICNkZWZpbmUgUEhZU19TRFJBTV8xICAgICAgICAgICAgMHgwMDAwMDAwMAkvKiBTRFJBTSBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfU0RSQU1fMV9TSVpFICAgICAgIDB4MDgwMDAwMDAJLyogMTI4IE1CICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgICAgICAgICAgMHgzNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgICAgICAgICAgMHgzNDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCkBAIC0xNzYsMTkgKzE3NiwxOSBAQAogI2RlZmluZSBWRVJTQVRJTEVfRkxBU0hDVFJMCQkgICAgICAoVkVSU0FUSUxFX1NZU19CQVNFICsgVkVSU0FUSUxFX1NZU19GTEFTSF9PRkZTRVQpCiAjZGVmaW5lIFZFUlNBVElMRV9GTEFTSFBST0dfRkxWUFBFTgkgICAgICAoMSA8PCAwKQkvKiBFbmFibGUgd3JpdGluZyB0byBmbGFzaCAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFICAgICAgICAgMHgzNDAwMDAwMAkvKiA2NE1CICovCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIwKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIwKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgyNTYpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMjAqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyMCpDT05GSUdfU1lTX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgyNTYpCiAKLSNkZWZpbmUgUEhZU19GTEFTSF8xCQkoQ0ZHX0ZMQVNIX0JBU0UpCisjZGVmaW5lIFBIWVNfRkxBU0hfMQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSkKIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIICAgICAxICAgICAgICAgICAgICAgLyogZW52IGluIGZsYXNoIGluc3RlYWQgb2YgQ09ORklHX0VOVl9JU19OT1dIRVJFICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFICAgICAgIDB4MDAwMjAwMDAgICAgICAvKiAyNTYgS0Igc2VjdG9ycyAoeDIpICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRSAgICAgICAgICAgIDB4MTAwMDAgICAgICAgICAvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVCAgICAgICAgICAweDAxZjAwMDAwICAgICAgLyogZW52aXJvbm1lbnQgc3RhcnRzIGhlcmUgICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAgICAgICAgIChDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgICAgICAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAKICNlbmRpZgkJCQkJCQkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvdmlydGxhYjIuaCBiL2luY2x1ZGUvY29uZmlncy92aXJ0bGFiMi5oCmluZGV4IGYzZjQzYzMuLjM4YjBhNGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy92aXJ0bGFiMi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy92aXJ0bGFiMi5oCkBAIC04MSw3ICs4MSw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZsYXNoX3NlbGYiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTEzMiwzMiArMTMyLDMyIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCi0jZGVmaW5lCUNGR19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZQlDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjcsNDcgKzE2Nyw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UrZmxhc2hfaW5mb1swXS5zaXplIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4ODAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjE3LDcgKzIxNyw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQrQ09ORklHX0VOVl9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCQkvKiBNYWtlIHN1cmUgdG8gcmVtYXAgZmxhc2hlcyBjb3JyZWN0bHkgKi8KIApAQCAtMjM2LDE2ICsyMzYsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjU1LDEwICsyNTUsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2Nyw5ICsyNjcsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzcsMjAgKzI3NywyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI5OCw3ICsyOTgsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0CiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzA3LDcgKzMwNyw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKIApAQCAtMzE2LDE0ICszMTYsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzM2LDI4ICszMzYsMjggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM3MiwyMiArMzcyLDIyIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAogCQkJCSBPUl9TQ1lfM19DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTM5OCwxOSArMzk4LDE5IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lCUNPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lCUNGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUJQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTQ0MSwzNCArNDQxLDM0IEBACiAgKiA4MCBNaHogPT4gODAuMDAwLjAwMCAvIERpdmlkZXIgPSAxNTYKICAqLwogCi0jZGVmaW5lIENGR19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCi0jZGVmaW5lIENGR19NQU1SX1BUQQk5OAorI2RlZmluZSBDT05GSUdfU1lTX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5OAogCiAvKgogICogRm9yIDE2IE1CaXQsIHJlZnJlc2ggcmF0ZXMgY291bGQgYmUgMzEuMyB1cwogICogKD0gNjQgbXMgLyAySyA9IDEyNSAvIHF1YWQgYnVyc3RzKS4KICAqIEZvciBhIHNpbXBsZXIgaW5pdGlhbGl6YXRpb24sIDE1LjYgdXMgaXMgdXNlZCBpbnN0ZWFkLgogICoKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCi0gKiAjZGVmaW5lIENGR19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCkBAIC00ODIsMTAgKzQ4MiwxMCBAQAogI2RlZmluZSBCT09URkxBR19XQVJNCTB4MDIJCS8qIFNvZnR3YXJlIHJlYm9vdAkJCSovCiAKIC8qIE1hcCBwZXJpcGhlcmFsIGNvbnRyb2wgcmVnaXN0ZXJzIG9uIENTNCAqLwotI2RlZmluZSBDRkdfUEVSSVBIRVJBTF9CQVNFIDB4QTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfT1JfQU0gMHhGRkZGODAwMCAvKiAzMiBrQiBhZGRyZXNzIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0gKENGR19QRVJJUEhFUkFMX09SX0FNIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSAweEEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9PUl9BTSAweEZGRkY4MDAwIC8qIDMyIGtCIGFkZHJlc3MgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0gKENPTkZJR19TWVNfUEVSSVBIRVJBTF9PUl9BTSB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkJCU9SX1NDWV8yX0NMSykKLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0gKChDRkdfUEVSSVBIRVJBTF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WKQotI2RlZmluZSBQQ01DSUFfQ1RSTCAoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4QjAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0gKChDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKKyNkZWZpbmUgUENNQ0lBX0NUUkwgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHhCMDApCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3ZvaWNlYmx1ZS5oIGIvaW5jbHVkZS9jb25maWdzL3ZvaWNlYmx1ZS5oCmluZGV4IDMxMmY3MjAuLjg2NmI3MmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy92b2ljZWJsdWUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvdm9pY2VibHVlLmgKQEAgLTU0LDI4ICs1NCwyOCBAQAogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgwMDAwMDAwMAkvKiBGbGFzaCBCYW5rICMxICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJUEhZU19TRFJBTV8xICsgMHg0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCVBIWVNfU0RSQU1fMSArIDB4NDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKIC8qCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyogRklYTUU6IERvZXMgbm90IHdvcmsgb24gQU1EIGZsYXNoICovCi0vKiAjZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgKi8JLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggIyBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxICovCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCAjIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoUEhZU19GTEFTSF8xICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShQSFlTX0ZMQVNIXzEgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCSg4ICogMTAyNCkKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJKDY0ICogMTAyNCkKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ09ORklHX0VOVl9BRERSICsgQ09ORklHX0VOVl9TRUNUX1NJWkUpCkBAIC04NiwxMCArODYsMTAgQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wgYW5kIHN0YWNrCiAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDQgKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNCAqIDEwMjQgKiAxMDI0KQogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgxICogMTAyNCAqIDEwMjQpCi0jZGVmaW5lIFBIWVNfU0RSQU1fMV9SRVNFUlZFRAkoQ0ZHX01PTklUT1JfTEVOICsgQ0ZHX01BTExPQ19MRU4gKyBDT05GSUdfU1RBQ0tTSVpFKQorI2RlZmluZSBQSFlTX1NEUkFNXzFfUkVTRVJWRUQJKENPTkZJR19TWVNfTU9OSVRPUl9MRU4gKyBDT05GSUdfU1lTX01BTExPQ19MRU4gKyBDT05GSUdfU1RBQ0tTSVpFKQogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtOTgsMjUgKzk4LDI1IEBACiAjZGVmaW5lIENPTkZJR19TTUM5MTExMV9CQVNFCTB4MDgwMDAzMDAKIAogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMQogI2RlZmluZSBDT05GSUdfRFJJVkVSX09NQVAxNTEwX0kyQwogCiAjZGVmaW5lIENPTkZJR19SVENfRFMxMzA3Ci0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CiAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJKC00KQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCShDT05GSUdfWFRBTF9GUkVRKQkvKiBjYW4gYmUgMTJNLzMyS2h6IG9yIDQ4TWh6ICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCU9NQVAxNTEwX1VBUlQxX0JBU0UJLyogdWFydDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCSgtNCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJKENPTkZJR19YVEFMX0ZSRVEpCS8qIGNhbiBiZSAxMk0vMzJLaHogb3IgNDhNaHogICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCU9NQVAxNTEwX1VBUlQxX0JBU0UJLyogdWFydDEgKi8KIAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAKIC8qCkBAIC0xNTIsNyArMTUyLDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkzCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBhbGxvdyB0byBicmVhayBpbiBhbHdheXMgKi8KICN1bmRlZiAgQ09ORklHX0JPT1RBUkdTCQkvKiB0aGUgYm9vdCBjb21tYW5kIHdpbGwgc2V0IGJvb3RhcmdzKi8KLSNkZWZpbmUgQ0ZHX0FVVE9MT0FECQkibiIJCS8qIE5vIGF1dG9sb2FkICovCisjZGVmaW5lIENPTkZJR19TWVNfQVVUT0xPQUQJCSJuIgkJLyogTm8gYXV0b2xvYWQgKi8KICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gbmJvb3QiCiAjZGVmaW5lIENPTkZJR19QUkVCT09UCQkicnVuIHNldHVwIgogI2RlZmluZQlDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCQkJCVwKQEAgLTE5NywyNyArMTk3LDI3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIiMgIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiIyAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJUEhZU19TRFJBTV8xCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJUEhZU19TRFJBTV8xICsgUEhZU19TRFJBTV8xX1NJWkUgLSBQSFlTX1NEUkFNXzFfUkVTRVJWRUQKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCVBIWVNfU0RSQU1fMQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQlQSFlTX1NEUkFNXzEgKyBQSFlTX1NEUkFNXzFfU0laRSAtIFBIWVNfU0RSQU1fMV9SRVNFUlZFRAogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAogLyogVGhlIDE1MTAgaGFzIDMgdGltZXJzLCB0aGV5IGNhbiBiZSBkcml2ZW4gYnkgdGhlIFJlZkNsayAoMTJNaHopIG9yIGJ5IERQTEwxLgogICogVGhpcyB0aW1lIGlzIGZ1cnRoZXIgc3ViZGl2aWRlZCBieSBhIGxvY2FsIGRpdmlzb3IuCiAgKi8KLSNkZWZpbmUgQ0ZHX1RJTUVSQkFTRQkJT01BUDE1MTBfVElNRVIxX0JBU0UKLSNkZWZpbmUgQ0ZHX1BWVAkJCTcJCS8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLwotI2RlZmluZSBDRkdfSFoJCQkoKENPTkZJR19TWVNfQ0xLX0ZSRVEpLygyIDw8IENGR19QVlQpKQorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSQkFTRQkJT01BUDE1MTBfVElNRVIxX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QVlQJCQk3CQkvKiAyXihwdnQrMSksIGRpdmlkZSBieSAyNTYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCSgoQ09ORklHX1NZU19DTEtfRlJFUSkvKDIgPDwgQ09ORklHX1NZU19QVlQpKQogCiAjZGVmaW5lIE9NQVA1OTEwX0RQTExfRElWCTEKICNkZWZpbmUgT01BUDU5MTBfRFBMTF9NVUwJKChDT05GSUdfU1lTX0NMS19GUkVRICogXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3dhbG51dC5oIGIvaW5jbHVkZS9jb25maWdzL3dhbG51dC5oCmluZGV4IGQzZDA3OWEuLjYzMGMwZDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy93YWxudXQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvd2FsbnV0LmgKQEAgLTc2LDMwICs3NiwzMCBAQAogI2RlZmluZSBDT05GSUdfU1BEX0VFUFJPTSAgICAgIDEgICAgICAgLyogdXNlIFNQRCBFRVBST00gZm9yIHNldHVwICAgICovCiAKIC8qCi0gKiBJZiBDRkdfRVhUX1NFUklBTF9DTE9DSywgdGhlbiB0aGUgVUFSVCBkaXZpc29yIGlzIDEuCi0gKiBJZiBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5LCB0aGVuIFVBUlQgZGl2aXNvciBpcyAzMS4KLSAqIE90aGVyd2lzZSwgVUFSVCBkaXZpc29yIGlzIGRldGVybWluZWQgYnkgQ1BVIENsb2NrIGFuZCBDRkdfQkFTRV9CQVVEIHZhbHVlLgorICogSWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLLCB0aGVuIHRoZSBVQVJUIGRpdmlzb3IgaXMgMS4KKyAqIElmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5LCB0aGVuIFVBUlQgZGl2aXNvciBpcyAzMS4KKyAqIE90aGVyd2lzZSwgVUFSVCBkaXZpc29yIGlzIGRldGVybWluZWQgYnkgQ1BVIENsb2NrIGFuZCBDT05GSUdfU1lTX0JBU0VfQkFVRCB2YWx1ZS4KICAqIFRoZSBMaW51eCBCQVNFX0JBVUQgZGVmaW5lIHNob3VsZCBtYXRjaCB0aGlzIGNvbmZpZ3VyYXRpb24uCiAgKiAgICBiYXNlQmF1ZCA9IGNwdUNsb2NrLyh1YXJ0RGl2aXNvcioxNikKLSAqIElmIENGR180MDVfVUFSVF9FUlJBVEFfNTkgYW5kIDIwME1IeiBDUFUgY2xvY2ssCisgKiBJZiBDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OSBhbmQgMjAwTUh6IENQVSBjbG9jaywKICAqIHNldCBMaW51eCBCQVNFX0JBVUQgdG8gNDAzMjAwLgogICovCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLwotI3VuZGVmCUNGR180MDVfVUFSVF9FUlJBVEFfNTkJICAgICAgIC8qIDQwNUdQL0NSIFJldi4gRCBzaWxpY29uICovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCisjdW5kZWYJQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTkJICAgICAgIC8qIDQwNUdQL0NSIFJldi4gRCBzaWxpY29uICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECSAgICA2OTEyMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwogCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCSgweGE4Pj4xKQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJKDB4YTg+PjEpCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJIHN0dWZmCkBAIC0xMTUsMjAgKzExNSwyMCBAQAogCQkJCQkvKiByZXNvdXJjZSBjb25maWd1cmF0aW9uCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAJKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMJMHg4MDAwMDAwMQkvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkvKiBXaGF0ZXZlciAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4ODAwMDAwMDEJLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRjgwMDAwCiAKIC8qCiAgKiBEZWZpbmUgaGVyZSB0aGUgbG9jYXRpb24gb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyAoRkxBU0ggb3IgTlZSQU0pLgpAQCAtMTQ0LDI0ICsxNDQsMjQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCQkqLworI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJCSovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkwCQkvKiBGTEFTSCBiYW5rICMxCQkqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MmFhYQotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIGNoYXIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MmFhYQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAJCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xNzIsMTMgKzE3MiwxMyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTlZSQU0gb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweGYwMDAwMDAwCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMHgxZmY4CQkvKiBOVlJBTSBzaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4ZjAwMDAwMDAJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMHgxZmY4CQkvKiBOVlJBTSBzaXplCSovCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX05WUkFNCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwCQkvKiBTaXplIG9mIEVudmlyb25tZW50IHZhcnMJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlcCi0JKENGR19OVlJBTV9CQVNFX0FERFIrQ0ZHX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQkvKiBFbnYJKi8KKwkoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIrQ09ORklHX1NZU19OVlJBTV9TSVpFLUNPTkZJR19FTlZfU0laRSkJLyogRW52CSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTg2LDM5ICsxODYsMzkgQEAKICAqLwogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDApIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDlCMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZGMTgwMDAgIC8qIEJBUz0weEZGRixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4OUIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCTB4RkZGMTgwMDAgIC8qIEJBUz0weEZGRixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDAyODE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4MDI4MTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDA0ODE1QTgwCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4RjAxMTgwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDQ4MTVBODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4RjAxMTgwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDAxODE1MjgwCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RjAyMTgwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDE4MTUyODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCTB4RjAyMTgwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAotI2RlZmluZSBDRkdfRUJDX1BCN0FQCQkweDAxODE1MjgwCi0jZGVmaW5lIENGR19FQkNfUEI3Q1IJCTB4RjAzMTgwMDAgIC8qIEJBUz0weEYwMyxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI3QVAJCTB4MDE4MTUyODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI3Q1IJCTB4RjAzMTgwMDAgIC8qIEJBUz0weEYwMyxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXh0ZXJuYWwgcGVyaXBoZXJhbCBiYXNlIGFkZHJlc3MKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfS0VZX1JFR19CQVNFX0FERFIJMHhGMDEwMDAwMAotI2RlZmluZSBDRkdfSVJfUkVHX0JBU0VfQUREUgkweEYwMjAwMDAwCi0jZGVmaW5lIENGR19GUEdBX1JFR19CQVNFX0FERFIJMHhGMDMwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0tFWV9SRUdfQkFTRV9BRERSCTB4RjAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JUl9SRUdfQkFTRV9BRERSCTB4RjAyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1JFR19CQVNFX0FERFIJMHhGMDMwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEKICAqLwotI2RlZmluZSBDRkdfSU5JVF9EQ0FDSEVfQ1MJNAkvKiB1c2UgY3MgIyA0IGZvciBkYXRhIGNhY2hlIG1lbW9yeSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTCTQJLyogdXNlIGNzICMgNCBmb3IgZGF0YSBjYWNoZSBtZW1vcnkgICAgKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwICAvKiBpbnNpZGUgb2YgU0RSQU0JCQkgICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwICAvKiBpbnNpZGUgb2YgU0RSQU0JCQkgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgU2VyaWFsIFByZXNlbmNlIERldGVjdCBFRVBST00gYWRkcmVzcwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3dlcGVwMjUwLmggYi9pbmNsdWRlL2NvbmZpZ3Mvd2VwZXAyNTAuaAppbmRleCAyMDcyZjZlLi5iNzBhNTMxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvd2VwZXAyNTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvd2VwZXAyNTAuaApAQCAtNjksMjIgKzY5LDIyIEBACiAvKgogICogR2VuZXJhbCBvcHRpb25zIGZvciB1LWJvb3QuIE1vZGlmeSB0byBzYXZlIG1lbW9yeSBmb290IHByaW50CiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVuZGVmIHNhdmVzIG1lbW9yeSAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVCAgICAgICAgICAgICAgIldFUD4gIiAgICAgICAgICAgICAgIC8qIHByb21wdCBzdHJpbmcgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRSAgICAgICAgICAgICAgMjU2ICAgICAgICAgICAgICAgICAgIC8qIGNvbnNvbGUgSS9PIGJ1ZmZlciAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIHByaW50IGJ1ZmZlciBzaXplICAgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MgICAgICAgICAgICAgMTYgICAgICAgICAgICAgICAgICAgIC8qIG1heCBjb21tYW5kIGFyZ3MgICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFICAgICAgICAgICAgQ0ZHX0NCU0laRSAgICAgICAgICAgIC8qIGJvb3QgYXJncyBidWYgc2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB1bmRlZiBzYXZlcyBtZW1vcnkgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUICAgICAgICAgICAgICAiV0VQPiAiICAgICAgICAgICAgICAgLyogcHJvbXB0IHN0cmluZyAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRSAgICAgICAgICAgICAgMjU2ICAgICAgICAgICAgICAgICAgIC8qIGNvbnNvbGUgSS9PIGJ1ZmZlciAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIHByaW50IGJ1ZmZlciBzaXplICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTICAgICAgICAgICAgIDE2ICAgICAgICAgICAgICAgICAgICAvKiBtYXggY29tbWFuZCBhcmdzICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUgICAgICAgICAgICBDT05GSUdfU1lTX0NCU0laRSAgICAgICAgICAgIC8qIGJvb3QgYXJncyBidWYgc2l6ZSAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgICAgICAweGEwNDAwMDAwICAgICAgICAgICAgLyogbWVtdGVzdCB0ZXN0IGFyZWEgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgICAgICAgICAweGEwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCAgICAgICAweGEwNDAwMDAwICAgICAgICAgICAgLyogbWVtdGVzdCB0ZXN0IGFyZWEgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5EICAgICAgICAgMHhhMDgwMDAwMAogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haICAgICAgICAgICAgICAgICAgICAgICAvKiB1c2UgSFogZm9yIGZyZXEuIGRpc3BsYXkgICAgICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWiAgICAgICAgICAgICAgICAgICAgICAgLyogdXNlIEhaIGZvciBmcmVxLiBkaXNwbGF5ICAgICAqLwogCi0jZGVmaW5lIENGR19IWiAgICAgICAgICAgICAgICAgIDM2ODY0MDAgICAgICAvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCi0jZGVmaW5lIENGR19DUFVTUEVFRCAgICAgICAgICAgIDB4MTQxICAgICAgICAvKiBjb3JlIGNsb2NrIC0gcmVnaXN0ZXIgdmFsdWUgICovCisjZGVmaW5lIENPTkZJR19TWVNfSFogICAgICAgICAgICAgICAgICAzNjg2NDAwICAgICAgLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVVNQRUVEICAgICAgICAgICAgMHgxNDEgICAgICAgIC8qIGNvcmUgY2xvY2sgLSByZWdpc3RlciB2YWx1ZSAgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBEZWZpbml0aW9ucyByZWxhdGVkIHRvIHBhc3NpbmcgYXJndW1lbnRzIHRvIGtlcm5lbC4KQEAgLTk4LDggKzk4LDggQEAKIC8qCiAgKiBNYWxsb2MgcG9vbCBuZWVkIHRvIGhvc3QgZW52ICsgMTI4IEtiIHJlc2VydmUgZm9yIG90aGVyIGFsbG9jYXRpb25zLgogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSAgKENPTkZJR19FTlZfU0laRSArICgxMjg8PDEwKSApCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSAgKENPTkZJR19FTlZfU0laRSArICgxMjg8PDEwKSApCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKICNkZWZpbmUgQ09ORklHX1NUQUNLU0laRSAgICAgICAgKDEyMDw8MTApICAgICAgLyogc3RhY2sgc2l6ZSAqLwogCkBAIC0xMjEsOCArMTIxLDggQEAKICNkZWZpbmUgV0VQX1NEUkFNXzQgICAgICAgICAgICAweGFjMDAwMDAwICAgICAgICAvKiBTRFJBTSBiYW5rICM0ICAgICAgICAgICAqLwogI2RlZmluZSBXRVBfU0RSQU1fNF9TSVpFICAgICAgIDB4MDAwMDAwMDAgICAgICAgIC8qIDAgTUIgICAgICAgICAgICAgICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0RSQU1fQkFTRSAgICAgICAgICAgMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfRFJBTV9TSVpFICAgICAgICAgICAweDAyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFICAgICAgICAgICAweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFICAgICAgICAgICAweDAyMDAwMDAwCiAKIC8qIFVuY29tbWVudCB1c2VkIFNEUkFNIGNoaXAgKi8KICNkZWZpbmUgV0VQX1NEUkFNX0s0UzI4MTYzMwpAQCAtMTMyLDggKzEzMiw4IEBACiAvKgogICogQ29uZmlndXJhdGlvbiBmb3IgRkxBU0ggbWVtb3J5CiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIEZMQVNIIGJhbmtzIGNvdW50IChub3QgY2hpcCBjb3VudCkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG51bWJlciBvZiBzZWN0b3IgaW4gRkxBU0ggYmFuayAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIEZMQVNIIGJhbmtzIGNvdW50IChub3QgY2hpcCBjb3VudCkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBudW1iZXIgb2Ygc2VjdG9yIGluIEZMQVNIIGJhbmsgICAgKi8KICNkZWZpbmUgV0VQX0ZMQVNIX0JVU19XSURUSAk0CS8qIHdlIHVzZSAzMiBiaXQgRkxBU0ggbWVtb3J5Li4uICAgICAqLwogI2RlZmluZSBXRVBfRkxBU0hfSU5URVJMRUFWRQkyCS8qIC4uLiBtYWRlIG9mIDIgY2hpcHMgKi8KICNkZWZpbmUgV0VQX0ZMQVNIX0JBTktfU0laRSAgMHgyMDAwMDAwICAvKiBzaXplIG9mIG9uZSBmbGFzaCBiYW5rKi8KQEAgLTE0NiwxMiArMTQ2LDEyIEBACiAgICBpcyBub3Qgc28gY2xlYXIgdG8gbWUuIEluIG90aGVyIHdvcmRzIHdlIGNhbiBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb25zCiAgICB0byB1c2VyLCBidXQgdGhpcyBleHBlY3RzIG1vcmUgY29tcGxleCBmbGFzaCBoYW5kbGluZyB3ZSBkbyBub3QgcHJvdmlkZQogICAgbm93LiovCi0jdW5kZWYgIENGR19GTEFTSF9DRkkKKyN1bmRlZiAgQ09ORklHX1NZU19GTEFTSF9DRkkKIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVCAgICAoMipDRkdfSFopICAgIC8qIHRpbWVvdXQgZm9yIEVyYXNlIG9wZXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVCAgICAoMipDRkdfSFopICAgIC8qIHRpbWVvdXQgZm9yIFdyaXRlIG9wZXJhdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQgICAgKDIqQ09ORklHX1NZU19IWikgICAgLyogdGltZW91dCBmb3IgRXJhc2Ugb3BlcmF0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCAgICAoMipDT05GSUdfU1lTX0haKSAgICAvKiB0aW1lb3V0IGZvciBXcml0ZSBvcGVyYXRpb24gKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRSAgICAgICAgICBXRVBfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgICAgICAgICAgV0VQX0ZMQVNIX0JBU0UKIAogLyoKICAqIFRoaXMgaXMgc2V0dGluZyBmb3IgSkZGUzIgc3VwcG9ydCBpbiB1LWJvb3QuCkBAIC0xNjAsOSArMTYwLDkgQEAKICAqIGZvb3RwcmludC4KICAqIE5PVEU6IEVuYWJsZSBDT05GSUdfQ01EX0pGRlMyIGZvciBKRkZTMiBzdXBwb3J0LgogICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LCQkwCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9TRUNUT1IJCTUKLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9TRUNUT1IJCTUKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJCTEKIAogLyoKICAqIEVudmlyb25tZW50IHNldHVwLiBEZWZpbml0aW9ucyBvZiBtb25pdG9yIGxvY2F0aW9uIGFuZCBzaXplIHdpdGgKQEAgLTE3Niw4ICsxNzYsOCBAQAogICogZW52LiBoYXMgbm8gc2Vuc2UgdG8gdXMuCiAgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MjAwMDAJCS8qIDEyOGtiICggMSBmbGFzaCBzZWN0b3IgKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MjAwMDAJCS8qIDEyOGtiICggMSBmbGFzaCBzZWN0b3IgKSAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHgyMDAwMAkgICAgICAgIC8qIGFic29sdXRlIGFkZHJlc3MgZm9yIG5vdyAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKQEAgLTE4OSw2ICsxODksNiBAQAogICogb25lIG1heSBleHBlY3QuIEZvciBpbnN0YW5jZSBsb2FkYiBjb21tYW5kIGRvIG5vdCBjYXJlcyA6LSkKICAqIFNvIGFkdmljZSBpcyAtIGRvIG5vdCByZWxheSBvbiB0aGlzLi4uCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUiAgICAgICAgMHg0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUiAgICAgICAgMHg0MDAwMAogCiAjZW5kaWYgIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy94YWVuaWF4LmggYi9pbmNsdWRlL2NvbmZpZ3MveGFlbmlheC5oCmluZGV4IGVjNzMyMjQuLjMyNGYwM2UgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy94YWVuaWF4LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3hhZW5pYXguaApAQCAtNjIsNyArNjIsNyBAQAogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0gLyogdmFsaWQgYmF1ZHJhdGVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfSAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KIAogCiAvKgpAQCAtMTA5LDM3ICsxMDksMzcgQEAKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbDsgdGhpcyBsaXZlcyBiZWxvdyB0aGUgdXBwZXJtb3N0IDEyOCBLaUIgd2hpY2ggYXJlCiAgKiB1c2VkIGZvciB0aGUgUkFNIGNvcHkgb2YgdGhlIHVib290IGNvZGUKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCiAKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAotI2lmZGVmIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUCQkidS1ib290JCAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkidS1ib290JCAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNlbHNlCi0jZGVmaW5lIENGR19QUk9NUFQJCSJ1LWJvb3Q9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJ1LWJvb3Q9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4YTA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4YTA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweGEwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHhhMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCQkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4YTEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4YTEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCi0jZGVmaW5lIENGR19DUFVTUEVFRAkJMHgxNDEJCS8qIHNldCBjb3JlIGNsb2NrIHRvIDQwMC8yMDAvMTAwIE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMzY4NjQwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVVNQRUVECQkweDE0MQkJLyogc2V0IGNvcmUgY2xvY2sgdG8gNDAwLzIwMC8xMDAgTUh6ICovCiAKIC8qCiAgKiBQaHlzaWNhbCBNZW1vcnkgTWFwCkBAIC0xNjAsMjAgKzE2MCwyMCBAQAogI2RlZmluZSBQSFlTX0ZMQVNIX0JBTktfU0laRQkweDAyMDAwMDAwIC8qIDMyIE1CIEJhbmtzICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFCTB4MDAwNDAwMDAgLyogMjU2IEtCIHNlY3RvcnMgKHgyKSAqLwogCi0jZGVmaW5lIENGR19EUkFNX0JBU0UJCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RSQU1fU0laRQkJMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQkFTRQkJMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fU0laRQkJMHgwNDAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyoKICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEgICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjggIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOCAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMjUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMjUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDI1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMjUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogLyogRklYTUUgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCkBAIC0yMzUsOSArMjM1LDkgQEAKICAqIEdQODIgPT0gTlNTUFNGUk0gIGlzIDEKICAqIEdQODMgPT0gTlNTUFRYRCAgIGlzIDEKICAqLwotI2RlZmluZSBDRkdfR1BTUjBfVkFMCQkweDgzMjBFNDIwCi0jZGVmaW5lIENGR19HUFNSMV9WQUwJCTB4MDBGRkFBODIKLSNkZWZpbmUgQ0ZHX0dQU1IyX1ZBTAkJMHgwMDBEQzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IwX1ZBTAkJMHg4MzIwRTQyMAorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IxX1ZBTAkJMHgwMEZGQUE4MgorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IyX1ZBTAkJMHgwMDBEQzAwMAogCiAvKgogICogR1AwMyA9PSBMQU5SZXNldCAgaXMgMApAQCAtMjUwLDkgKzI1MCw5IEBACiAgKiBHUDMwID09IFNEQVRBX09VVCBpcyAwCiAgKiBHUDgxID09IE5TU1BDTEsgICBpcyAwCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQQ1IwX1ZBTAkJMHg0MEMzMTg0OAotI2RlZmluZSBDRkdfR1BDUjFfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUENSMl9WQUwJCTB4MDAwMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMF9WQUwJCTB4NDBDMzE4NDgKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMV9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMl9WQUwJCTB4MDAwMjAwMDAKIAogLyoKICAqIEdQMDAgPT0gQ1BVV2FrZVVwVVNCIGlzIGlucHV0CkBAIC0zNDAsOSArMzQwLDkgQEAKICAqIEdQODMgPT0gTlNTUFRYRCAgIGlzIG91dHB1dAogICogR1A4NCA9PSBOU1NQUlhEICAgaXMgaW5wdXQKICAqLwotI2RlZmluZSBDRkdfR1BEUjBfVkFMCQkweEQzRTNGQzY4Ci0jZGVmaW5lIENGR19HUERSMV9WQUwJCTB4RkNGRkFCODMKLSNkZWZpbmUgQ0ZHX0dQRFIyX1ZBTAkJMHgwMDBGRkZGRgorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIwX1ZBTAkJMHhEM0UzRkM2OAorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIxX1ZBTAkJMHhGQ0ZGQUI4MworI2RlZmluZSBDT05GSUdfU1lTX0dQRFIyX1ZBTAkJMHgwMDBGRkZGRgogCiAvKgogICogR1AwMSA9PSBHUCByZXNldCBpcyBBRjAxCkBAIC00MTMsMTIgKzQxMywxMiBAQAogICogR1A4MyA9PSBOU1NQVFhEICBpcyBBRjAxCiAgKiBHUDg0ID09IE5TU1BSWEQgIGlzIEFGMTAKICAqLwotI2RlZmluZSBDRkdfR0FGUjBfTF9WQUwJCTB4ODAwMDAwMDQKLSNkZWZpbmUgQ0ZHX0dBRlIwX1VfVkFMCQkweDU5NUE4MDFBCi0jZGVmaW5lIENGR19HQUZSMV9MX1ZBTAkJMHg2OTlBOTU1OQotI2RlZmluZSBDRkdfR0FGUjFfVV9WQUwJCTB4QUFBNUFBQUEKLSNkZWZpbmUgQ0ZHX0dBRlIyX0xfVkFMCQkweEFBQUFBQUFBCi0jZGVmaW5lIENGR19HQUZSMl9VX1ZBTAkJMHgwMDAwMDI1NgorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX0xfVkFMCQkweDgwMDAwMDA0CisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfVV9WQUwJCTB4NTk1QTgwMUEKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9MX1ZBTAkJMHg2OTlBOTU1OQorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX1VfVkFMCQkweEFBQTVBQUFBCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfTF9WQUwJCTB4QUFBQUFBQUEKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9VX1ZBTAkJMHgwMDAwMDI1NgogCiAvKgogICogY2xvY2sgc2V0dGluZ3MKQEAgLTQyOSwxMCArNDI5LDEwIEBACiAgKiBCRlMgPSAwCiAgKiBTU1MgPSAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1BTU1JfVkFMCQkweDAwMDAwMDMwCisjZGVmaW5lIENPTkZJR19TWVNfUFNTUl9WQUwJCTB4MDAwMDAwMzAKIAotI2RlZmluZSBDRkdfQ0tFTl9WQUwgICAgICAgICAgICAweDAwMDAwMDgwICAvKiAgKi8KLSNkZWZpbmUgQ0ZHX0lDTVJfVkFMICAgICAgICAgICAgMHgwMDAwMDAwMCAgLyogTm8gaW50ZXJydXB0cyBlbmFibGVkICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NLRU5fVkFMICAgICAgICAgICAgMHgwMDAwMDA4MCAgLyogICovCisjZGVmaW5lIENPTkZJR19TWVNfSUNNUl9WQUwgICAgICAgICAgICAweDAwMDAwMDAwICAvKiBObyBpbnRlcnJ1cHRzIGVuYWJsZWQgICAgICAgICovCiAKIAogLyoKQEAgLTQ1NCw3ICs0NTQsNyBAQAogICogWzAzXSAgICAwICAgIC0gMzIgQml0IGJ1cyB3aWR0aAogICogWzAyOjAwXSAwMTAgIC0gYnVyc3QgT0YgNCBST00gb3IgRkxBU0gKICovCi0jZGVmaW5lIENGR19NU0MwX1ZBTAkJMHgwMDAwMjNEMgorI2RlZmluZSBDT05GSUdfU1lTX01TQzBfVkFMCQkweDAwMDAyM0QyCiAKIC8qIFRoaXMgaXMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIG5DUzIvMyAtPiBVU0IgY29udHJvbGxlciwgTEFOCiAgKiBjb25maWd1cmF0aW9uIGZvciBuQ1MzOiBMQU4KQEAgLTQ3Miw3ICs0NzIsNyBAQAogICogWzAzXSAgICAxICAgIC0gMTYgQml0IGJ1cyB3aWR0aAogICogWzAyOjAwXSAxMDAgIC0gdmFyaWFibGUgbGF0ZW5jeSBJL08KICAqLwotI2RlZmluZSBDRkdfTVNDMV9WQUwJCTB4MTIyNEEyNkMKKyNkZWZpbmUgQ09ORklHX1NZU19NU0MxX1ZBTAkJMHgxMjI0QTI2QwogCiAvKiBUaGlzIGlzIHRoZSBjb25maWd1cmF0aW9uIGZvciBuQ1M0LzUgLT4gTEFOCiAgKiBjb25maWd1cmF0aW9uIGZvciBuQ1M1OgpAQCAtNDkwLDcgKzQ5MCw3IEBACiAgKiBbMDNdICAgIDAgICAgLSAzMiBCaXQgYnVzIHdpZHRoCiAgKiBbMDI6MDBdIDEwMCAgLSB2YXJpYWJsZSBsYXRlbmN5IEkvTwogICovCi0jZGVmaW5lIENGR19NU0MyX1ZBTAkJMHgwMDAwMTIyNAorI2RlZmluZSBDT05GSUdfU1lTX01TQzJfVkFMCQkweDAwMDAxMjI0CiAKIC8qIE1EQ05GRzogU0RSQU0gQ29uZmlndXJhdGlvbiBSZWdpc3RlcgogICoKQEAgLTUxOCw3ICs1MTgsNyBAQAogICogWzAwXSAgICAgIDEgICAtIGVuYWJsZSAgU0RSQU0gcGFydGl0aW9uIDAKICAqLwogLyogdXNlIHRoZSBjb25maWd1cmF0aW9uIGFib3ZlIGJ1dCBkaXNhYmxlIHBhcnRpdGlvbiAwICovCi0jZGVmaW5lIENGR19NRENORkdfVkFMCQkweDAwMDAwQUM5CisjZGVmaW5lIENPTkZJR19TWVNfTURDTkZHX1ZBTAkJMHgwMDAwMEFDOQogCiAvKiBNRFJFRlI6IFNEUkFNIFJlZnJlc2ggQ29udHJvbCBSZWdpc3RlcgogICoKQEAgLTUzOSw3ICs1MzksNyBAQAogICogWzEyXSAgICAwICAgICAtIEUwUElOOiBkaXNhYmxlIFNEQ0tFMAogICogWzExOjAwXSAwMDAwMDAwMTEwMDAgLSAoNjRtcy84MTkyKSpNZW1DbGtGcmVxLzMyID0gMjQKICAqLwotI2RlZmluZSBDRkdfTURSRUZSX1ZBTAkJMHgwMDEzODAxOCAvKiBtaDogd2FzIDB4MDAxMTgwMTggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRFJFRlJfVkFMCQkweDAwMTM4MDE4IC8qIG1oOiB3YXMgMHgwMDExODAxOCAqLwogCiAvKiBNRE1SUzogTW9kZSBSZWdpc3RlciBTZXQgQ29uZmlndXJhdGlvbiBSZWdpc3RlcgogICoKQEAgLTU1NCwxOCArNTU0LDE4IEBACiAgKiBbMDNdICAgICAgMCAgICAgICAtIE1EQUREMDogU0RSQU0wLzEgYnVyc3QgVHlwZS4gRml4ZWQgdG8gc2VxdWVudGlhbC4KICAqIFswMjowMF0gICAwMTAgICAgIC0gTURCTDA6ICBTRFJBTTAvMSBidXJzdCBMZW5ndGguIEZpeGVkIHRvIDQuCiAgKi8KLSNkZWZpbmUgQ0ZHX01ETVJTX1ZBTAkJMHgwMDMyMDAzMgorI2RlZmluZSBDT05GSUdfU1lTX01ETVJTX1ZBTAkJMHgwMDMyMDAzMgogCiAvKgogICogUENNQ0lBIGFuZCBDRiBJbnRlcmZhY2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX01FQ1JfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQ01FTTBfVkFMCQkweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ01FTTFfVkFMCQkweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0FUVDBfVkFMCQkweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0FUVDFfVkFMCQkweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0lPMF9WQUwJCTB4MDAwMDQ3MTUKLSNkZWZpbmUgQ0ZHX01DSU8xX1ZBTAkJMHgwMDAwNDcxNQorI2RlZmluZSBDT05GSUdfU1lTX01FQ1JfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0wX1ZBTAkJMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMV9WQUwJCTB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0FUVDBfVkFMCQkweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQxX1ZBTAkJMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DSU8wX1ZBTAkJMHgwMDAwNDcxNQorI2RlZmluZSBDT05GSUdfU1lTX01DSU8xX1ZBTAkJMHgwMDAwNDcxNQogCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MveGlsaW54LXBwYzQ0MC1nZW5lcmljLmggYi9pbmNsdWRlL2NvbmZpZ3MveGlsaW54LXBwYzQ0MC1nZW5lcmljLmgKaW5kZXggZTk2ODY1MS4uZmMwZjkzMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3hpbGlueC1wcGM0NDAtZ2VuZXJpYy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy94aWxpbngtcHBjNDQwLWdlbmVyaWMuaApAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIi4uL2JvYXJkL3hpbGlueC9wcGM0NDAtZ2VuZXJpYy94cGFyYW1ldGVycy5oIgogCiAvKk1lbSBNYXAqLwotI2RlZmluZSBDRkdfU0RSQU1fU0laRV9NQgkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFX01CCTI1NgogCiAvKkVudiovCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQpAQCAtMzQsMTIgKzM0LDEyIEBACiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKFhQQVJfRkxBU0hfTUVNMF9CQVNFQUREUitDT05GSUdfRU5WX09GRlNFVCkKIAogLypNaXNjKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJImJvYXJkOi8jICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJImJvYXJkOi8jICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAqLwogI2RlZmluZSBDT05GSUdfUFJFQk9PVAkJImVjaG8gVS1Cb290IGlzIHVwIGFuZCBydW5uaW5pbmc7IgogCiAvKkZsYXNoKi8KLSNkZWZpbmUJQ0ZHX0ZMQVNIX1NJWkUJCSgzMioxMDI0KjEwMjQpCi0jZGVmaW5lCUNGR19NQVhfRkxBU0hfU0VDVAkyNTkKKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoMzIqMTAyNCoxMDI0KQorI2RlZmluZQlDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1OQogI2RlZmluZSBNVERJRFNfREVGQVVMVAkJIm5vcjA9bWw1MDctZmxhc2giCiAjZGVmaW5lIE1URFBBUlRTX0RFRkFVTFQJIm10ZHBhcnRzPW1sNTA3LWZsYXNoOi0odXNlcikiCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy94aWxpbngtcHBjNDQwLmggYi9pbmNsdWRlL2NvbmZpZ3MveGlsaW54LXBwYzQ0MC5oCmluZGV4IDZjN2FiYjIuLmFjNzg0MjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy94aWxpbngtcHBjNDQwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3hpbGlueC1wcGM0NDAuaApAQCAtMjcsMTUgKzI3LDE1IEBACiAjZGVmaW5lIENPTkZJR180eHgJCTEKIAogLypNZW0gTWFwKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4ICogMTAyNCkKIAogLypVYXJ0Ki8KICNkZWZpbmUgQ09ORklHX1hJTElOWF9VQVJUTElURQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCVhQQVJfVUFSVExJVEVfMF9CQVVEUkFURQotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyBYUEFSX1VBUlRMSVRFXzBfQkFVRFJBVEUgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgWFBBUl9VQVJUTElURV8wX0JBVURSQVRFIH0KICNkZWZpbmUgQ09ORklHX1NFUklBTF9CQVNFCVhQQVJfVUFSVExJVEVfMF9CQVNFQUREUgogCiAvKkNtZCovCkBAIC01OSw0OCArNTksNDggQEAKIAogLypNaXNjKi8KICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcyAgICAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTSAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDQwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAgICAgICAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIEV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0gICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwNDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIEV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5ICAgICAqLwogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURQkJLyogYWRkIGF1dG9jb21wbGV0aW9uIHN1cHBvcnQgICAqLwogI2RlZmluZSBDT05GSUdfTE9PUFcJCQkvKiBlbmFibGUgbG9vcHcgY29tbWFuZCAgICAgICAgICovCiAjZGVmaW5lIENPTkZJR19NWF9DWUNMSUMJCS8qIGVuYWJsZSBtZGMvbXdjIGNvbW1hbmRzICAgICAgKi8KICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGNoZWNrIGZvciBrZXlwcmVzcyBvbiBib290ZGVsYXk9PTAgKi8KICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUJCS8qIGluY2x1ZGUgdmVyc2lvbiBlbnYgdmFyaWFibGUgKi8KLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkJLyogVXNlIHRoZSBIVVNIIHBhcnNlciAgICAgICAgICAqLwotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwICovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICAgICAgICAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgICAgICAgICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKlN0YWNrKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg4MDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAgICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4ODAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogLypTcGVlZCovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJWFBBUl9DT1JFX0NMT0NLX0ZSRVFfSFoKIAogLypGbGFzaCovCi0jZGVmaW5lCUNGR19GTEFTSF9CQVNFCQlYUEFSX0ZMQVNIX01FTTBfQkFTRUFERFIKLSNkZWZpbmUJQ0ZHX0ZMQVNIX0NGSQkJMQorI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVhQQVJfRkxBU0hfTUVNMF9CQVNFQUREUgorI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQogI2RlZmluZQlDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCi0jZGVmaW5lCUNGR19GTEFTSF9FTVBUWV9JTkZPCTEKLSNkZWZpbmUJQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCi0jZGVmaW5lCUNGR19GTEFTSF9QUk9URUNUSU9OCisjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkxCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEKKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAKICNlbmRpZgkJCQkJCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy94bTI1MC5oIGIvaW5jbHVkZS9jb25maWdzL3htMjUwLmgKaW5kZXggYWFjMDNhMS4uMTZhZjg0NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3htMjUwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3htMjUwLmgKQEAgLTQxLDggKzQxLDggQEAKICAqIHVzZWQgZm9yIHRoZSBSQU0gY29weSBvZiB0aGUgdWJvb3QgY29kZQogICoKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NioxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NioxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtNTgsMTggKzU4LDE4IEBACiAgKiBJMkMgYnVzCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJMQotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkJNTAwMDAKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJCTB4ZmUKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCQk1MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJCTB4ZmUKIAogI2RlZmluZSBDT05GSUdfUlRDX1BDRjg1NjMJCTEKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkJMHg1MQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkJMHg1MQogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTgJLyogQTAgPSAwIChoYXJkd2lyZWQpCQkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CS8qIDQgYml0cyA9IDE2IG9jdGV0cwkJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGJldHdlZW4gc3RvcCBhbmQgc3RhcnQJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTEJLyogbGVuZ3RoIG9mIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19FRVBST01fU0laRQkJCTIwNDgJLyogc2l6ZSBpbiBieXRlcwkJKi8KLSN1bmRlZglDRkdfSTJDX0lOSVRfQk9BUkQJCQkvKiBib2FyZCBoYXMgbm8gb3duIGluaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTgJLyogQTAgPSAwIChoYXJkd2lyZWQpCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAkvKiA0IGJpdHMgPSAxNiBvY3RldHMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYmV0d2VlbiBzdG9wIGFuZCBzdGFydAkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTEJLyogbGVuZ3RoIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1NJWkUJCQkyMDQ4CS8qIHNpemUgaW4gYnl0ZXMJCSovCisjdW5kZWYJQ09ORklHX1NZU19JMkNfSU5JVF9CT0FSRAkJCS8qIGJvYXJkIGhhcyBubyBvd24gaW5pdAkqLwogCiAvKgogICogc2VsZWN0IHNlcmlhbCBjb25zb2xlIGNvbmZpZ3VyYXRpb24KQEAgLTEwNywyNiArMTA3LDI2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweGEwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHhhMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweGEwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4YTA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCQkqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweGEzMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweGEzMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMzY4NjQwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLwotI2RlZmluZSBDRkdfQ1BVU1BFRUQJCTB4MTYxCQkvKiBzZXQgY29yZSBjbG9jayB0byA0MDAvNDAwLzEwMCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVTUEVFRAkJMHgxNjEJCS8qIHNldCBjb3JlIGNsb2NrIHRvIDQwMC80MDAvMTAwIE1IeiAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIERlZmluaXRpb25zIHJlbGF0ZWQgdG8gcGFzc2luZyBhcmd1bWVudHMgdG8ga2VybmVsLgpAQCAtMTY2LDI5ICsxNjYsMjkgQEAKICNkZWZpbmUgUEhZU19GTEFTSF9CQU5LX1NJWkUJMHgwMTAwMDAwMCAvKiAxNiBNQiBCYW5rcwkqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDQwMDAwIC8qIDI1NiBLQiBzZWN0b3JzICh4MikgKi8KIAotI2RlZmluZSBDRkdfRFJBTV9CQVNFCQkweGEwMDAwMDAwCi0jZGVmaW5lIENGR19EUkFNX1NJWkUJCTB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBU0UJCTB4YTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1NJWkUJCTB4MDQwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKIC8qCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOCAgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjggICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ0ZHX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZQkqLwotI2RlZmluZSBDRkdfRkxBU0hfTE9DS19UT1VUCSgyKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0ICovCi0jZGVmaW5lIENGR19GTEFTSF9VTkxPQ0tfVE9VVAkoMipDRkdfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkJCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyKkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTE9DS19UT1VUCSgyKkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFNldCBMb2NrIEJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCSgyKkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JCQkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoUEhZU19GTEFTSF8xICsgMHg0MDAwMCkJLyogQWRkciBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkJCQkvKiBTaXplIG9mIHRoZSBFbnZpcm9ubWVudCBTZWN0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDIwMDAwCQkJCS8qIDEyOCBLaUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgyMDAwMAkJCQkvKiAxMjggS2lCICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCkBAIC0yODcsMzggKzI4NywzOCBAQAogICoKICAqLwogLyogUGluIGRpcmVjdGlvbiBjb250cm9sICovCi0jZGVmaW5lIENGR19HUERSMF9WQUwJICAgIDB4ZDM4MDgwMDAKLSNkZWZpbmUgQ0ZHX0dQRFIxX1ZBTAkgICAgMHhmY2ZmYWI4MwotI2RlZmluZSBDRkdfR1BEUjJfVkFMCSAgICAweDAwMDFmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjBfVkFMCSAgICAweGQzODA4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjFfVkFMCSAgICAweGZjZmZhYjgzCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjJfVkFMCSAgICAweDAwMDFmZmZmCiAvKiBTZXQgYW5kIENsZWFyIHJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfR1BTUjBfVkFMCSAgICAweDAwMDA4MDAwCi0jZGVmaW5lIENGR19HUFNSMV9WQUwJICAgIDB4MDBmZjAwMDIKLSNkZWZpbmUgQ0ZHX0dQU1IyX1ZBTAkgICAgMHgwMDAxYzAwMAotI2RlZmluZSBDRkdfR1BDUjBfVkFMCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUENSMV9WQUwJICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IyX1ZBTAkgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IwX1ZBTAkgICAgMHgwMDAwODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IxX1ZBTAkgICAgMHgwMGZmMDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IyX1ZBTAkgICAgMHgwMDAxYzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IwX1ZBTAkgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IxX1ZBTAkgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IyX1ZBTAkgICAgMHgwMDAwMDAwMAogLyogRWRnZSBkZXRlY3QgcmVnaXN0ZXJzICh0aGVzZSBhcmUgc2V0IGJ5IHRoZSBrZXJuZWwpICovCi0jZGVmaW5lIENGR19HUkVSMF9WQUwJICAgIDB4MDAwMDIxODAKLSNkZWZpbmUgQ0ZHX0dSRVIxX1ZBTAkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1JFUjJfVkFMCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HRkVSMF9WQUwJICAgIDB4MDAwMDQzZTAKLSNkZWZpbmUgQ0ZHX0dGRVIxX1ZBTAkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR0ZFUjJfVkFMCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JFUjBfVkFMCSAgICAweDAwMDAyMTgwCisjZGVmaW5lIENPTkZJR19TWVNfR1JFUjFfVkFMCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JFUjJfVkFMCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0ZFUjBfVkFMCSAgICAweDAwMDA0M2UwCisjZGVmaW5lIENPTkZJR19TWVNfR0ZFUjFfVkFMCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0ZFUjJfVkFMCSAgICAweDAwMDAwMDAwCiAvKiBBbHRlcm5hdGUgZnVuY3Rpb24gcmVnaXN0ZXJzICovCi0jZGVmaW5lIENGR19HQUZSMF9MX1ZBTAkgICAgMHg4MDAwMDAwNAotI2RlZmluZSBDRkdfR0FGUjBfVV9WQUwJICAgIDB4NTk1YTgwMTAKLSNkZWZpbmUgQ0ZHX0dBRlIxX0xfVkFMCSAgICAweDY5OWE5NTU5Ci0jZGVmaW5lIENGR19HQUZSMV9VX1ZBTAkgICAgMHhhYWE1YWFhYQotI2RlZmluZSBDRkdfR0FGUjJfTF9WQUwJICAgIDB4YWFhYWFhYWEKLSNkZWZpbmUgQ0ZHX0dBRlIyX1VfVkFMCSAgICAweDAwMDAwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfTF9WQUwJICAgIDB4ODAwMDAwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9VX1ZBTAkgICAgMHg1OTVhODAxMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX0xfVkFMCSAgICAweDY5OWE5NTU5CisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfVV9WQUwJICAgIDB4YWFhNWFhYWEKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9MX1ZBTAkgICAgMHhhYWFhYWFhYQorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX1VfVkFMCSAgICAweDAwMDAwMDAyCiAKIC8qCiAgKiBDbG9ja3MsIHBvd2VyIGNvbnRyb2wgYW5kIGludGVycnVwdHMKICAqLwotI2RlZmluZSBDRkdfUFNTUl9WQUwJICAgIDB4MDAwMDAwMzAKLSNkZWZpbmUgQ0ZHX0NDQ1JfVkFMCSAgICAweDAwMDAwMTYxCS8qIDEwMCBNSHogbWVtb3J5LCA0MDAgTUh6IENQVSwgNDAwIFR1cmJvICAqLwotI2RlZmluZSBDRkdfQ0tFTl9WQUwJICAgIDB4MDAwMTQxZWMJLyogRkZVQVJUIGFuZCBTVFVBUlQgZW5hYmxlZAkqLwotI2RlZmluZSBDRkdfSUNNUl9WQUwJICAgIDB4MDAwMDAwMDAJLyogTm8gaW50ZXJydXB0cyBlbmFibGVkCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFNTUl9WQUwJICAgIDB4MDAwMDAwMzAKKyNkZWZpbmUgQ09ORklHX1NZU19DQ0NSX1ZBTAkgICAgMHgwMDAwMDE2MQkvKiAxMDAgTUh6IG1lbW9yeSwgNDAwIE1IeiBDUFUsIDQwMCBUdXJibyAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DS0VOX1ZBTAkgICAgMHgwMDAxNDFlYwkvKiBGRlVBUlQgYW5kIFNUVUFSVCBlbmFibGVkCSovCisjZGVmaW5lIENPTkZJR19TWVNfSUNNUl9WQUwJICAgIDB4MDAwMDAwMDAJLyogTm8gaW50ZXJydXB0cyBlbmFibGVkCSovCiAKIC8qIEZJWE1FCiAgKgpAQCAtMzMxLDIzICszMzEsMjMgQEAKICAqIE1lbW9yeSBzZXR0aW5ncwogICoKICAqLwotI2RlZmluZSBDRkdfTVNDMF9WQUwJICAgIDB4MTIyNDIzZjAJLyogRkxBU0ggICAvIExBTgkgICAgKGNzMCkvKGNTMSkJICAqLwotI2RlZmluZSBDRkdfTVNDMV9WQUwJICAgIDB4MzVmNGFhNGMJLyogVVNCCSAgIC8gU1QzK1NUNQkgICAgKGNzMikvKGNTMykJICAqLwotI2RlZmluZSBDRkdfTVNDMl9WQUwJICAgIDB4MzVmNDM1ZmMJLyogSURFCSAgIC8gQkNSICsgV2F0Y2hEb2cgKGNzNCkvKGNTNSkJICAqLwotI2RlZmluZSBDRkdfTURDTkZHX1ZBTAkgICAgMHgwMDAwMDljOQotI2RlZmluZSBDRkdfTURNUlNfVkFMCSAgICAweDAwMjIwMDIyCi0jZGVmaW5lIENGR19NRFJFRlJfVkFMCSAgICAweDAwMGRhMDE4CS8qIEluaXRpYWwgc2V0dGluZywgaW5kaXZpZHVhbCBiaXRzIHNldCBpbiBsb3dsZXZlbF9pbml0LlMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NU0MwX1ZBTAkgICAgMHgxMjI0MjNmMAkvKiBGTEFTSCAgIC8gTEFOCSAgICAoY3MwKS8oY1MxKQkgICovCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMV9WQUwJICAgIDB4MzVmNGFhNGMJLyogVVNCCSAgIC8gU1QzK1NUNQkgICAgKGNzMikvKGNTMykJICAqLworI2RlZmluZSBDT05GSUdfU1lTX01TQzJfVkFMCSAgICAweDM1ZjQzNWZjCS8qIElERQkgICAvIEJDUiArIFdhdGNoRG9nIChjczQpLyhjUzUpCSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRENORkdfVkFMCSAgICAweDAwMDAwOWM5CisjZGVmaW5lIENPTkZJR19TWVNfTURNUlNfVkFMCSAgICAweDAwMjIwMDIyCisjZGVmaW5lIENPTkZJR19TWVNfTURSRUZSX1ZBTAkgICAgMHgwMDBkYTAxOAkvKiBJbml0aWFsIHNldHRpbmcsIGluZGl2aWR1YWwgYml0cyBzZXQgaW4gbG93bGV2ZWxfaW5pdC5TICovCiAKIC8qCiAgKiBQQ01DSUEgYW5kIENGIEludGVyZmFjZXMgKE5PVCBVU0VELCB0aGVzZSB2YWx1ZXMgZnJvbSBsdWJib2NrIGluaXQpCiAgKi8KLSNkZWZpbmUgQ0ZHX01FQ1JfVkFMCSAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DTUVNMF9WQUwJICAgICAgMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNNRU0xX1ZBTAkgICAgICAweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0FUVDBfVkFMCSAgICAgIDB4MDAwMTA1MDQKLSNkZWZpbmUgQ0ZHX01DQVRUMV9WQUwJICAgICAgMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNJTzBfVkFMCSAgICAgIDB4MDAwMDQ3MTUKLSNkZWZpbmUgQ0ZHX01DSU8xX1ZBTAkgICAgICAweDAwMDA0NzE1CisjZGVmaW5lIENPTkZJR19TWVNfTUVDUl9WQUwJICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMF9WQUwJICAgICAgMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMV9WQUwJICAgICAgMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMF9WQUwJICAgICAgMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMV9WQUwJICAgICAgMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DSU8wX1ZBTAkgICAgICAweDAwMDA0NzE1CisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzFfVkFMCSAgICAgIDB4MDAwMDQ3MTUKIAogLyogQm9hcmQgc3BlY2lmaWMgZGVmaW5lcyAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MveHNlbmdpbmUuaCBiL2luY2x1ZGUvY29uZmlncy94c2VuZ2luZS5oCmluZGV4IDQ0MzM5MmYuLmI3Mjc0MTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy94c2VuZ2luZS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy94c2VuZ2luZS5oCkBAIC0zNSwxMSArMzUsMTEgQEAKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04JCTEKICNkZWZpbmUgQk9BUkRfTEFURV9JTklUCQkJMQogI3VuZGVmICBDT05GSUdfVVNFX0lSUQkJCQkJLyogd2UgZG9uJ3QgbmVlZCBJUlEvRklRIHN0dWZmICovCi0jZGVmaW5lIENGR19IWgkJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkJMzY4NjQwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLwogCiAjdW5kZWYgIENPTkZJR19VU0VfSVJRCQkJCQkvKiB3ZSBkb24ndCBuZWVkIElSUS9GSVEgc3R1ZmYgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVECQkJMHgxNjEgICAgICAgICAgIC8qIHNldCBjb3JlIGNsb2NrIHRvIDQwMC8yMDAvMTAwIE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVTUEVFRAkJCTB4MTYxICAgICAgICAgICAvKiBzZXQgY29yZSBjbG9jayB0byA0MDAvMjAwLzEwMCBNSHogKi8KIAogI2RlZmluZSBDT05GSUdfTlJfRFJBTV9CQU5LUwkJMQkJLyogd2UgaGF2ZSAxIGJhbmsgb2YgRFJBTSAqLwogI2RlZmluZSBQSFlTX1NEUkFNXzEJCQkweGEwMDAwMDAwCS8qIFNEUkFNIEJhbmsgIzEgKi8KQEAgLTUwLDE2ICs1MCwxNiBAQAogI2RlZmluZSBQSFlTX1NEUkFNXzNfU0laRQkJMHgwMDAwMDAwMAkvKiAwIE1CICovCiAjZGVmaW5lIFBIWVNfU0RSQU1fNAkJCTB4YWMwMDAwMDAJLyogU0RSQU0gQmFuayAjNCAqLwogI2RlZmluZSBQSFlTX1NEUkFNXzRfU0laRQkJMHgwMDAwMDAwMAkvKiAwIE1CICovCi0jZGVmaW5lIENGR19EUkFNX0JBU0UJCQkweGEwMDAwMDAwCi0jZGVmaW5lIENGR19EUkFNX1NJWkUJCQkweDA0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFCQkJMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fU0laRQkJCTB4MDQwMDAwMDAKIAogLyogRkxBU0ggb3JnYW5pemF0aW9uICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTEyOAkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJMTI4CQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KICNkZWZpbmUgUEhZU19GTEFTSF8xCQkJMHgwMDAwMDAwMAkvKiBGbGFzaCBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfMgkJCTB4MDAwMDAwMDAJLyogRmxhc2ggQmFuayAjMiAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkJMHgwMDAyMDAwMAkvKiAxMjcgS0Igc2VjdG9ycyAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKIAogLyoKICAqIEpGRlMyIHBhcnRpdGlvbnMKQEAgLTg2LDEyICs4NiwxMiBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUgICAgICAgICAgICAgICAgICAgIDB4NDAwMAkJCQkvKiAxNmtCIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkJKDc1KkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJCSg1MCpDRkdfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkJKDc1KkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkJKDUwKkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKIC8qIFNpemUgb2YgbWFsbG9jKCkgcG9vbCAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJCShDT05GSUdfRU5WX1NJWkUgKyAyNTYqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJCTEyOAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJCShDT05GSUdfRU5WX1NJWkUgKyAyNTYqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCQkxMjgJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKiBIYXJkd2FyZSBkcml2ZXJzICovCiAjZGVmaW5lIENPTkZJR19EUklWRVJfU01DOTExMTEKQEAgLTEzMywyMCArMTMzLDIwIEBACiAjZGVmaW5lIENPTkZJR19DTURMSU5FX1RBRwogCiAvKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJCTEKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkJIj4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QUk9NUFQJCQkiWFMtRW5naW5lIHUtYm9vdD4gIgkJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJCTI1NgkJCQkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCQkxNgkJCQkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQkJQ0ZHX0NCU0laRQkJCQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQkweEEwNDAwMDAwCQkJCS8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCTB4QTA4MDAwMDAJCQkJLyogNCAuLi4gOCBNQiBpbiBEUkFNICAgKi8KLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoJCQkJCQkJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfTU1DX0JBU0UJCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCQkweEEwMDAwMDAwCQkJCS8qIGxvYWQga2VybmVsIHRvIHRoaXMgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCQkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkJIlhTLUVuZ2luZSB1LWJvb3Q+ICIJCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkJMjU2CQkJCQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCQkxNgkJCQkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJCUNPTkZJR19TWVNfQ0JTSVpFCQkJCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQkweEEwNDAwMDAwCQkJCS8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQkweEEwODAwMDAwCQkJCS8qIDQgLi4uIDggTUIgaW4gRFJBTSAgICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJCQkJCQkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CS8qIHZhbGlkIGJhdWRyYXRlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01NQ19CQVNFCQkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJCTB4QTAwMDAwMDAJCQkJLyogbG9hZCBrZXJuZWwgdG8gdGhpcyBhZGRyZXNzICAgKi8KIAogLyogU3RhY2sgc2l6ZXMgLSBUaGUgc3RhY2sgc2l6ZXMgYXJlIHNldCB1cCBpbiBzdGFydC5TIHVzaW5nIHRoZSBzZXR0aW5ncyBiZWxvdyAqLwogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCQkoMTI4KjEwMjQpCS8qIHJlZ3VsYXIgc3RhY2sgKi8KQEAgLTE1Niw1MyArMTU2LDUzIEBACiAjZW5kaWYKIAogLyogR1Agc2V0IHJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19HUFNSMF9WQUwJCQkweDAwMDBBMDAwCS8qIENTMSwgUFJPRyhGUEdBKSAqLwotI2RlZmluZSBDRkdfR1BTUjFfVkFMCQkJMHgwMDAyMDAwMAkvKiBuUFdFICovCi0jZGVmaW5lIENGR19HUFNSMl9WQUwJCQkweDAwMDBDMDAwCS8qIENTMiwgQ1MzICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjBfVkFMCQkJMHgwMDAwQTAwMAkvKiBDUzEsIFBST0coRlBHQSkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMV9WQUwJCQkweDAwMDIwMDAwCS8qIG5QV0UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMl9WQUwJCQkweDAwMDBDMDAwCS8qIENTMiwgQ1MzICovCiAKIC8qIEdQIGNsZWFyIHJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19HUENSMF9WQUwJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUENSMV9WQUwJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUENSMl9WQUwJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjBfVkFMCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IxX1ZBTAkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMl9WQUwJCQkweDAwMDAwMDAwCiAKIC8qIEdQIGRpcmVjdGlvbiByZWdpc3RlciAqLwotI2RlZmluZSBDRkdfR1BEUjBfVkFMCQkJMHgwMDAwQTAwMAkvKiBDUzEsIFBST0coRlBHQSkgKi8KLSNkZWZpbmUgQ0ZHX0dQRFIxX1ZBTAkJCTB4MDAwMjJBODAJLyogblBXRSwgRkZVQVJUICsgQlRVQVJUIHBpbnMgKi8KLSNkZWZpbmUgQ0ZHX0dQRFIyX1ZBTAkJCTB4MDAwMEMwMDAJLyogQ1MyLCBDUzMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMF9WQUwJCQkweDAwMDBBMDAwCS8qIENTMSwgUFJPRyhGUEdBKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQRFIxX1ZBTAkJCTB4MDAwMjJBODAJLyogblBXRSwgRkZVQVJUICsgQlRVQVJUIHBpbnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMl9WQUwJCQkweDAwMDBDMDAwCS8qIENTMiwgQ1MzICovCiAKIC8qIEdQIHJpc2luZyBlZGdlIGRldGVjdCByZWdpc3RlciAqLwotI2RlZmluZSBDRkdfR1JFUjBfVkFMCQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1JFUjFfVkFMCQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1JFUjJfVkFMCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSRVIwX1ZBTAkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkVSMV9WQUwJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JFUjJfVkFMCQkJMHgwMDAwMDAwMAogCiAvKiBHUCBmYWxsaW5nIGVkZ2UgZGV0ZWN0IHJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19HRkVSMF9WQUwJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HRkVSMV9WQUwJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HRkVSMl9WQUwJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0ZFUjBfVkFMCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dGRVIxX1ZBTAkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HRkVSMl9WQUwJCQkweDAwMDAwMDAwCiAKIC8qIEdQIGFsdGVybmF0ZSBmdW5jdGlvbiByZWdpc3RlciAqLwotI2RlZmluZSBDRkdfR0FGUjBfTF9WQUwJCQkweDgwMDAwMDAwCS8qIENTMSAqLwotI2RlZmluZSBDRkdfR0FGUjBfVV9WQUwJCQkweDAwMDAwMDEwCS8qIFJEWSAqLwotI2RlZmluZSBDRkdfR0FGUjFfTF9WQUwJCQkweDA5OTg4MDUwCS8qIEZGVUFSVCArIEJUVUFSVCBwaW5zICovCi0jZGVmaW5lIENGR19HQUZSMV9VX1ZBTAkJCTB4MDAwMDAwMDgJLyogblBXRSAqLwotI2RlZmluZSBDRkdfR0FGUjJfTF9WQUwJCQkweEEwMDAwMDAwCS8qIENTMiwgQ1MzICovCi0jZGVmaW5lIENGR19HQUZSMl9VX1ZBTAkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9MX1ZBTAkJCTB4ODAwMDAwMDAJLyogQ1MxICovCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfVV9WQUwJCQkweDAwMDAwMDEwCS8qIFJEWSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX0xfVkFMCQkJMHgwOTk4ODA1MAkvKiBGRlVBUlQgKyBCVFVBUlQgcGlucyAqLworI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX1VfVkFMCQkJMHgwMDAwMDAwOAkvKiBuUFdFICovCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfTF9WQUwJCQkweEEwMDAwMDAwCS8qIENTMiwgQ1MzICovCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfVV9WQUwJCQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BTU1JfVkFMCQkJMHgwMDAwMDAyMAkvKiBQb3dlciBtYW5hZ2VyIHNsZWVwIHN0YXR1cyAqLwotI2RlZmluZSBDRkdfQ0NDUl9WQUwJCQkweDAwMDAwMTYxCS8qIDEwMCBNSHogbWVtb3J5LCA0MDAgTUh6IENQVSAgKi8KLSNkZWZpbmUgQ0ZHX0NLRU5fVkFMCQkJMHgwMDAwMDBDMAkvKiBCVFVBUlQgYW5kIEZGVUFSVCBlbmFibGVkICAgICovCi0jZGVmaW5lIENGR19JQ01SX1ZBTAkJCTB4MDAwMDAwMDAJLyogTm8gaW50ZXJydXB0cyBlbmFibGVkICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BTU1JfVkFMCQkJMHgwMDAwMDAyMAkvKiBQb3dlciBtYW5hZ2VyIHNsZWVwIHN0YXR1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDQ1JfVkFMCQkJMHgwMDAwMDE2MQkvKiAxMDAgTUh6IG1lbW9yeSwgNDAwIE1IeiBDUFUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0tFTl9WQUwJCQkweDAwMDAwMEMwCS8qIEJUVUFSVCBhbmQgRkZVQVJUIGVuYWJsZWQgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JQ01SX1ZBTAkJCTB4MDAwMDAwMDAJLyogTm8gaW50ZXJydXB0cyBlbmFibGVkICAgICAgICAqLwogCiAvKiBNZW1vcnkgc2V0dGluZ3MgKi8KLSNkZWZpbmUgQ0ZHX01TQzBfVkFMCQkJMHgyNUY0MjVGMAorI2RlZmluZSBDT05GSUdfU1lTX01TQzBfVkFMCQkJMHgyNUY0MjVGMAogCiAvKiBNRENORkc6IFNEUkFNIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX01EQ05GR19WQUwJCQkweDAwMDAwOUM5CisjZGVmaW5lIENPTkZJR19TWVNfTURDTkZHX1ZBTAkJCTB4MDAwMDA5QzkKIAogLyogTURSRUZSOiBTRFJBTSBSZWZyZXNoIENvbnRyb2wgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX01EUkVGUl9WQUwJCQkweDAwMDE4MDE4CisjZGVmaW5lIENPTkZJR19TWVNfTURSRUZSX1ZBTAkJCTB4MDAwMTgwMTgKIAogLyogTURNUlM6IE1vZGUgUmVnaXN0ZXIgU2V0IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX01ETVJTX1ZBTAkJCTB4MDAyMjAwMjIKKyNkZWZpbmUgQ09ORklHX1NZU19NRE1SU19WQUwJCQkweDAwMjIwMDIyCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MveHVwdjJwLmggYi9pbmNsdWRlL2NvbmZpZ3MveHVwdjJwLmgKaW5kZXggMGUzMzcxNC4uNmE5MjcwMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3h1cHYycC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy94dXB2MnAuaApAQCAtMzUsMTcgKzM1LDE3IEBACiAjZGVmaW5lCUNPTkZJR19YSUxJTlhfVUFSVExJVEUKICNkZWZpbmUJQ09ORklHX1NFUklBTF9CQVNFCVhJTElOWF9VQVJUTElURV9CQVNFQUREUgogI2RlZmluZQlDT05GSUdfQkFVRFJBVEUJCVhJTElOWF9VQVJUTElURV9CQVVEUkFURQotI2RlZmluZQlDRkdfQkFVRFJBVEVfVEFCTEUJeyBDT05GSUdfQkFVRFJBVEUgfQorI2RlZmluZQlDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgQ09ORklHX0JBVURSQVRFIH0KICNlbHNlCiAjaWZkZWYgWElMSU5YX1VBUlQxNjU1MF9CQVNFQUREUgotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJNAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJNAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJWElMSU5YX1VBUlQxNjU1MF9CQVNFQUREUgotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCVhJTElOWF9VQVJUMTY1NTBfQ0xPQ0tfSFoKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJWElMSU5YX1VBUlQxNjU1MF9CQVNFQUREUgorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlYSUxJTlhfVUFSVDE2NTUwX0NMT0NLX0haCiAjZGVmaW5lCUNPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lCUNGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDExNTIwMCB9CisjZGVmaW5lCUNPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxMTUyMDAgfQogI2VuZGlmCiAjZW5kaWYKIApAQCAtNTMsNDYgKzUzLDQ2IEBACiAgKiBzZXR0aW5nIHJlc2V0IGFkZHJlc3MKICAqCiAgKiBURVhUX0JBU0UgaXMgc2V0IHRvIHBsYWNlLCB3aGVyZSB0aGUgVS1CT09UIHJ1biBpbiBSQU0sIGJ1dAotICogaWYgeW91IHdhbnQgdG8gc3RvcmUgVS1CT09UIGluIGZsYXNoLCBzZXQgQ0ZHX1JFU0VUX0FERFJFU1MKKyAqIGlmIHlvdSB3YW50IHRvIHN0b3JlIFUtQk9PVCBpbiBmbGFzaCwgc2V0IENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwogICogdG8gRkxBU0ggbWVtb3J5IGFuZCBhZnRlciBsb2FkaW5nIGJpdHN0cmVhbSBqdW1wIHRvIEZMQVNILgogICogVS1CT09UIGF1dG8tcmVsb2NhdGUgdG8gVEVYVF9CQVNFLiBBZnRlciBSRVNFVCBjb21tYW5kIE1pY3JvYmxhemUKLSAqIGp1bXAgdG8gQ0ZHX1JFU0VUX0FERFJFU1Mgd2hlcmUgaXMgdGhlIG9yaWdpbmFsIFUtQk9PVCBjb2RlLgorICoganVtcCB0byBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1Mgd2hlcmUgaXMgdGhlIG9yaWdpbmFsIFUtQk9PVCBjb2RlLgogICovCi0vKiAjZGVmaW5lCUNGR19SRVNFVF9BRERSRVNTCTB4MzYwMDAwMDAgKi8KKy8qICNkZWZpbmUJQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4MzYwMDAwMDAgKi8KIAogLyogZXRoZXJuZXQgKi8KICNpZmRlZiBYSUxJTlhfRU1BQ19CQVNFQUREUgogI2RlZmluZSBDT05GSUdfWElMSU5YX0VNQUMJMQotI2RlZmluZSBDRkdfRU5FVAorI2RlZmluZSBDT05GSUdfU1lTX0VORVQKICNlbHNlCiAjaWZkZWYgWElMSU5YX0VNQUNMSVRFX0JBU0VBRERSCiAjZGVmaW5lIENPTkZJR19YSUxJTlhfRU1BQ0xJVEUJMQotI2RlZmluZSBDRkdfRU5FVAorI2RlZmluZSBDT05GSUdfU1lTX0VORVQKICNlbmRpZgogI2VuZGlmCiAjdW5kZWYgRVRfREVCVUcKIAogLyogZ3BpbyAqLwogI2lmZGVmIFhJTElOWF9HUElPX0JBU0VBRERSCi0jZGVmaW5lCUNGR19HUElPXzAJCTEKLSNkZWZpbmUJQ0ZHX0dQSU9fMF9BRERSCQlYSUxJTlhfR1BJT19CQVNFQUREUgorI2RlZmluZQlDT05GSUdfU1lTX0dQSU9fMAkJMQorI2RlZmluZQlDT05GSUdfU1lTX0dQSU9fMF9BRERSCQlYSUxJTlhfR1BJT19CQVNFQUREUgogI2VuZGlmCiAKIC8qIGludGVycnVwdCBjb250cm9sbGVyICovCiAjaWZkZWYgWElMSU5YX0lOVENfQkFTRUFERFIKLSNkZWZpbmUJQ0ZHX0lOVENfMAkJMQotI2RlZmluZQlDRkdfSU5UQ18wX0FERFIJCVhJTElOWF9JTlRDX0JBU0VBRERSCi0jZGVmaW5lCUNGR19JTlRDXzBfTlVNCQlYSUxJTlhfSU5UQ19OVU1fSU5UUl9JTlBVVFMKKyNkZWZpbmUJQ09ORklHX1NZU19JTlRDXzAJCTEKKyNkZWZpbmUJQ09ORklHX1NZU19JTlRDXzBfQUREUgkJWElMSU5YX0lOVENfQkFTRUFERFIKKyNkZWZpbmUJQ09ORklHX1NZU19JTlRDXzBfTlVNCQlYSUxJTlhfSU5UQ19OVU1fSU5UUl9JTlBVVFMKICNlbmRpZgogCiAvKiB0aW1lciAqLwogI2lmZGVmIFhJTElOWF9USU1FUl9CQVNFQUREUgogI2lmIChYSUxJTlhfVElNRVJfSVJRICE9IC0xKQotI2RlZmluZQlDRkdfVElNRVJfMAkJMQotI2RlZmluZQlDRkdfVElNRVJfMF9BRERSCVhJTElOWF9USU1FUl9CQVNFQUREUgotI2RlZmluZQlDRkdfVElNRVJfMF9JUlEJCVhJTElOWF9USU1FUl9JUlEKKyNkZWZpbmUJQ09ORklHX1NZU19USU1FUl8wCQkxCisjZGVmaW5lCUNPTkZJR19TWVNfVElNRVJfMF9BRERSCVhJTElOWF9USU1FUl9CQVNFQUREUgorI2RlZmluZQlDT05GSUdfU1lTX1RJTUVSXzBfSVJRCQlYSUxJTlhfVElNRVJfSVJRCiAjZGVmaW5lCUZSRVFVRU5DRQkJWElMSU5YX0NMT0NLX0ZSRVEKLSNkZWZpbmUJQ0ZHX1RJTUVSXzBfUFJFTE9BRAkoIEZSRVFVRU5DRS8xMDAwICkKKyNkZWZpbmUJQ09ORklHX1NZU19USU1FUl8wX1BSRUxPQUQJKCBGUkVRVUVOQ0UvMTAwMCApCiAjZW5kaWYKICNlbHNlCiAjaWZkZWYgWElMSU5YX0NMT0NLX0ZSRVEKQEAgLTEwNCwxNCArMTA0LDE0IEBACiAvKgogICogbWVtb3J5IGxheW91dCAtIEV4YW1wbGUKICAqIFRFWFRfQkFTRSA9IDB4MzYwMF8wMDAwOwotICogQ0ZHX1NSQU1fQkFTRSA9IDB4MzAwMF8wMDAwOwotICogQ0ZHX1NSQU1fU0laRSA9IDB4MTAwMF8wMDAwOworICogQ09ORklHX1NZU19TUkFNX0JBU0UgPSAweDMwMDBfMDAwMDsKKyAqIENPTkZJR19TWVNfU1JBTV9TSVpFID0gMHgxMDAwXzAwMDA7CiAgKgotICogQ0ZHX0dCTF9EQVRBX09GRlNFVCA9IDB4MzAwMF8wMDAwICsgMHgxMDAwXzAwMDAgLSAweDEwMDAgPSAweDNGRkZfRjAwMAotICogQ0ZHX01PTklUT1JfQkFTRSA9IDB4M0ZGRl9GMDAwIC0gMHg0MDAwMCA9IDB4M0ZGQl9GMDAwCi0gKiBDRkdfTUFMTE9DX0JBU0UgPSAweDNGRkJfRjAwMCAtIDB4NDAwMDAgPSAweDNGRjdfRjAwMAorICogQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgPSAweDMwMDBfMDAwMCArIDB4MTAwMF8wMDAwIC0gMHgxMDAwID0gMHgzRkZGX0YwMDAKKyAqIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID0gMHgzRkZGX0YwMDAgLSAweDQwMDAwID0gMHgzRkZCX0YwMDAKKyAqIENPTkZJR19TWVNfTUFMTE9DX0JBU0UgPSAweDNGRkJfRjAwMCAtIDB4NDAwMDAgPSAweDNGRjdfRjAwMAogICoKLSAqIDB4MzAwMF8wMDAwCUNGR19TRFJBTV9CQVNFCisgKiAweDMwMDBfMDAwMAlDT05GSUdfU1lTX1NEUkFNX0JBU0UKICAqCQkJCQlGUkVFCiAgKiAweDM2MDBfMDAwMAlURVhUX0JBU0UKICAqCQlVLUJPT1QgY29kZQpAQCAtMTE5LDQwICsxMTksNDAgQEAKICAqCQkJCQlGUkVFCiAgKgogICoJCQkJCVNUQUNLCi0gKiAweDNGRjdfRjAwMAlDRkdfTUFMTE9DX0JBU0UKKyAqIDB4M0ZGN19GMDAwCUNPTkZJR19TWVNfTUFMTE9DX0JBU0UKICAqCQkJCQlNQUxMT0NfQVJFQQkyNTZrQglBbGxvYwotICogMHgzRkZCX0YwMDAJQ0ZHX01PTklUT1JfQkFTRQorICogMHgzRkZCX0YwMDAJQ09ORklHX1NZU19NT05JVE9SX0JBU0UKICAqCQkJCQlNT05JVE9SX0NPREUJMjU2a0IJRW52Ci0gKiAweDNGRkZfRjAwMAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisgKiAweDNGRkZfRjAwMAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogICoJCQkJCUdMT0JBTF9EQVRBCTRrQgliZCwgZ2QKLSAqIDB4NDAwMF8wMDAwCUNGR19TRFJBTV9CQVNFICsgQ0ZHX1NEUkFNX1NJWkUKKyAqIDB4NDAwMF8wMDAwCUNPTkZJR19TWVNfU0RSQU1fQkFTRSArIENPTkZJR19TWVNfU0RSQU1fU0laRQogICovCiAKIC8qIGRkciBzZHJhbSAtIG1haW4gbWVtb3J5ICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQlYSUxJTlhfUkFNX1NUQVJUCi0jZGVmaW5lCUNGR19TRFJBTV9TSVpFCQlYSUxJTlhfUkFNX1NJWkUKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfRU5ECQkoQ0ZHX1NEUkFNX0JBU0UgKyAweDEwMDApCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJWElMSU5YX1JBTV9TVEFSVAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX1NJWkUJCVhJTElOWF9SQU1fU0laRQorI2RlZmluZQlDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUVNVEVTVF9FTkQJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDEwMDApCiAKIC8qIGdsb2JhbCBwb2ludGVyICovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTB4MTAwMAkvKiBzaXplIG9mIGdsb2JhbCBkYXRhICovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9PRkZTRVQgICAgIChDRkdfU0RSQU1fQkFTRSArIENGR19TRFJBTV9TSVpFIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpIC8qIHN0YXJ0IG9mIGdsb2JhbCBkYXRhICovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMDAJLyogc2l6ZSBvZiBnbG9iYWwgZGF0YSAqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIENPTkZJR19TWVNfU0RSQU1fU0laRSAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkgLyogc3RhcnQgb2YgZ2xvYmFsIGRhdGEgKi8KIAogLyogbW9uaXRvciBjb2RlICovCiAjZGVmaW5lCVNJWkUJCQkweDQwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJU0laRQotI2RlZmluZQlDRkdfTU9OSVRPUl9CQVNFCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gQ0ZHX01PTklUT1JfTEVOKQotI2RlZmluZQlDRkdfTU9OSVRPUl9FTkQJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJU0laRQotI2RlZmluZQlDRkdfTUFMTE9DX0JBU0UJCShDRkdfTU9OSVRPUl9CQVNFIC0gQ0ZHX01BTExPQ19MRU4pCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCVNJWkUKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gQ09ORklHX1NZU19NT05JVE9SX0xFTikKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0VORAkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQlTSVpFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTikKIAogLyogc3RhY2sgKi8KLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19NQUxMT0NfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfTUFMTE9DX0JBU0UKIAotI2RlZmluZQlDRkdfTk9fRkxBU0gJCTEKKyNkZWZpbmUJQ09ORklHX1NZU19OT19GTEFTSAkJMQogI2RlZmluZQlDT05GSUdfRU5WX0lTX05PV0hFUkUJMQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAotI2RlZmluZQlDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gQ09ORklHX0VOVl9TSVpFKQorI2RlZmluZQlDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19FTlZfU0laRSkKIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTE3NSw3ICsxNzUsNyBAQAogI2RlZmluZSBDT05GSUdfQ01EX0NBQ0hFCiAjZGVmaW5lIENPTkZJR19DTURfSVJRCiAKLSNpZm5kZWYgQ0ZHX0VORVQKKyNpZm5kZWYgQ09ORklHX1NZU19FTkVUCiAJI3VuZGVmIENPTkZJR19DTURfTkVUCiAjZWxzZQogCSNkZWZpbmUgQ09ORklHX0NNRF9QSU5HCkBAIC0xODcsMTIgKzE4NywxMiBAQAogI2VuZGlmCiAKIC8qIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMgKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiVS1Cb290LW1PTlN0Uj4gIgotI2RlZmluZQlDRkdfQ0JTSVpFCTUxMgkvKiBzaXplIG9mIGNvbnNvbGUgYnVmZmVyICovCi0jZGVmaW5lCUNGR19QQlNJWkUJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikgLyogcHJpbnQgYnVmZmVyIHNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTUJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJMHgxMjAwMDAwMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiVS1Cb290LW1PTlN0Uj4gIgorI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQk1MTIJLyogc2l6ZSBvZiBjb25zb2xlIGJ1ZmZlciAqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpIC8qIHByaW50IGJ1ZmZlciBzaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCTB4MTIwMDAwMDAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAogI2RlZmluZQlDT05GSUdfQk9PVERFTEFZCTMwCiAjZGVmaW5lCUNPTkZJR19CT09UQVJHUwkJInJvb3Q9cm9tZnMiCkBAIC0yMDQsOCArMjA0LDggQEAKICNkZWZpbmUJQ09ORklHX0VUSEFERFIJCTAwOkUwOjBDOjAwOjAwOkZECiAKIC8qIGFyY2hpdGVjdHVyZSBkZXBlbmRlbnQgY29kZSAqLwotI2RlZmluZQlDRkdfVVNSX0VYQ0VQCS8qIHVzZXIgZXhjZXB0aW9uICovCi0jZGVmaW5lIENGR19IWgkxMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfVVNSX0VYQ0VQCS8qIHVzZXIgZXhjZXB0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJMTAwMAogCiAjZGVmaW5lIENPTkZJR19QUkVCT09UCSJlY2hvIFUtQk9PVCBieSBtT05TdFI7IglcCiAJImJhc2UgMDsiIFwKQEAgLTIxNiw4ICsyMTYsOCBAQAogI2RlZmluZQlDT05GSUdfU1lTVEVNQUNFCiAvKiAjZGVmaW5lIERFQlVHX1NZU1RFTUFDRSAqLwogI2RlZmluZQlTWVNURU1BQ0VfQ09ORklHX0ZQR0EKLSNkZWZpbmUJQ0ZHX1NZU1RFTUFDRV9CQVNFCVhJTElOWF9TWVNBQ0VfQkFTRUFERFIKLSNkZWZpbmUJQ0ZHX1NZU1RFTUFDRV9XSURUSAlYSUxJTlhfU1lTQUNFX01FTV9XSURUSAorI2RlZmluZQlDT05GSUdfU1lTX1NZU1RFTUFDRV9CQVNFCVhJTElOWF9TWVNBQ0VfQkFTRUFERFIKKyNkZWZpbmUJQ09ORklHX1NZU19TWVNURU1BQ0VfV0lEVEgJWElMSU5YX1NZU0FDRV9NRU1fV0lEVEgKICNkZWZpbmUJQ09ORklHX0RPU19QQVJUSVRJT04KICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MveW9zZW1pdGUuaCBiL2luY2x1ZGUvY29uZmlncy95b3NlbWl0ZS5oCmluZGV4IDA2Mzg5ZjMuLmI2NmFiNTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy95b3NlbWl0ZS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy95b3NlbWl0ZS5oCkBAIC01NSwzNiArNTUsMzYgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkgICAgICAgIDB4ZmMwMDAwMDAJICAgIC8qIHN0YXJ0IG9mIEZMQVNICSovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRQkgICAgICAgIDB4YTAwMDAwMDAJICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5Ki8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMSAgICAgICAgQ0ZHX1BDSV9NRU1CQVNFICArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMiAgICAgICAgQ0ZHX1BDSV9NRU1CQVNFMSArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMyAgICAgICAgQ0ZHX1BDSV9NRU1CQVNFMiArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCSAgICAgICAgMHhmYzAwMDAwMAkgICAgLyogc3RhcnQgb2YgRkxBU0gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkgICAgICAgIDB4YTAwMDAwMDAJICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEgICAgICAgIENPTkZJR19TWVNfUENJX01FTUJBU0UgICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiAgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UzICAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiArIDB4MTAwMDAwMDAKIAogLypEb24ndCBjaGFuZ2UgZWl0aGVyIG9mIHRoZXNlKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRSAgICAgMHhlZjYwMDAwMAkgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMqLwotI2RlZmluZSBDRkdfUENJX0JBU0UJICAgICAgICAweGUwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBQQ0kgcmVncyovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICAgICAweGVmNjAwMDAwCSAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscyovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJICAgICAgICAweGUwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBQQ0kgcmVncyovCiAvKkRvbid0IGNoYW5nZSBlaXRoZXIgb2YgdGhlc2UqLwogCi0jZGVmaW5lIENGR19VU0JfREVWSUNFICAgICAgICAgIDB4NTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUiAgICAgMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfQkNTUl9CQVNFCSAgICAgICAgKENGR19OVlJBTV9CQVNFX0FERFIgfCAweDIwMDApCi0jZGVmaW5lIENGR19CT09UX0JBU0VfQUREUiAgICAgIDB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfREVWSUNFICAgICAgICAgIDB4NTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgICAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSX0JBU0UJICAgICAgICAoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgfCAweDIwMDApCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIgICAgICAweGYwMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlciAocGxhY2VkIGluIFNEUkFNKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0RDQUNIRQkxCQkvKiBkLWNhY2hlIGFzIGluaXQgcmFtCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NzAwMDAwMDAJCS8qIERDYWNoZSAgICAgICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYJCQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0RDQUNIRQkxCQkvKiBkLWNhY2hlIGFzIGluaXQgcmFtCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDcwMDAwMDAwCQkvKiBEQ2FjaGUgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJKDQgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkyNTYJCQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRVhUX1NFUklBTF9DTE9DSwkxMTA1OTIwMCAvKiB1c2UgZXh0ZXJuYWwgMTEuMDU5TUh6IGNsawkqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJMTEwNTkyMDAgLyogdXNlIGV4dGVybmFsIDExLjA1OU1IeiBjbGsJKi8KIC8qZGVmaW5lIHRoaXMgaWYgeW91IHdhbnQgY29uc29sZSBvbiBVQVJUMSovCiAjdW5kZWYgQ09ORklHX1VBUlQxX0NPTlNPTEUKIApAQCAtMTA0LDIzICsxMDQsMjMgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlcgkqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX0FNRF9SRVNFVCAxCQkvKiBBTUQgUkVTRVQgZm9yIFNUTSAyOVczMjBEQiEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfQU1EX1JFU0VUIDEJCS8qIEFNRCBSRVNFVCBmb3IgU1RNIDI5VzMyMERCIQkqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCQkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDIwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xMzIsMTkgKzEzMiwxOSBAQAogICogRERSIFNEUkFNCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI3VuZGVmIENPTkZJR19TUERfRUVQUk9NCSAgICAgICAvKiBEb24ndCB1c2UgU1BEIEVFUFJPTSBmb3Igc2V0dXAgICAgKi8KLSNkZWZpbmUgQ0ZHX0tCWVRFU19TRFJBTSAgICAgICAgKDEyOCAqIDEwMjQpICAgIC8qIDEyOE1CCQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBTktTCSAgICAgICAgKDIpCisjZGVmaW5lIENPTkZJR19TWVNfS0JZVEVTX1NEUkFNICAgICAgICAoMTI4ICogMTAyNCkgICAgLyogMTI4TUIJCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBTktTCSAgICAgICAgKDIpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwogCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCSgweGE4Pj4xKQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJKDB4YTg+PjEpCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAJICAgIC8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycyAqLwpAQCAtMTU1LDkgKzE1NSw5IEBACiAjZGVmaW5lIENPTkZJR19EVFRfTE03NQkJMQkJLyogT04gU2VtaSdzIExNNzUJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9BRDc0MTQJMQkJLyogdXNlIEFENzQxNAkJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTCXswfQkJLyogU2Vuc29yIGFkZHJlc3NlcwkqLwotI2RlZmluZSBDRkdfRFRUX01BWF9URU1QCTcwCi0jZGVmaW5lIENGR19EVFRfTE9XX1RFTVAJLTMwCi0jZGVmaW5lIENGR19EVFRfSFlTVEVSRVNJUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX01BWF9URU1QCTcwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0xPV19URU1QCS0zMAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9IWVNURVJFU0lTCTMKIAogLyoKICAqIERlZmF1bHQgZW52aXJvbm1lbnQgdmFyaWFibGVzCkBAIC0xODUsMTMgKzE4NSwxMyBAQAogLyogVVNCICovCiAjZGVmaW5lIENPTkZJR19VU0JfT0hDSV9ORVcKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCi0jZGVmaW5lIENGR19PSENJX0JFX0NPTlRST0xMRVIKKyNkZWZpbmUgQ09ORklHX1NZU19PSENJX0JFX0NPTlRST0xMRVIKIAotI3VuZGVmIENGR19VU0JfT0hDSV9CT0FSRF9JTklUCi0jZGVmaW5lIENGR19VU0JfT0hDSV9DUFVfSU5JVAkxCi0jZGVmaW5lIENGR19VU0JfT0hDSV9SRUdTX0JBU0UJKENGR19QRVJJUEhFUkFMX0JBU0UgfCAweDEwMDApCi0jZGVmaW5lIENGR19VU0JfT0hDSV9TTE9UX05BTUUJInBwYzQ0MCIKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1CisjdW5kZWYgQ09ORklHX1NZU19VU0JfT0hDSV9CT0FSRF9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1JFR1NfQkFTRQkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgfCAweDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCSJwcGM0NDAiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMTUKIAogLyogQ29tbWVudCB0aGlzIG91dCB0byBlbmFibGUgVVNCIDEuMSBkZXZpY2UgKi8KICNkZWZpbmUgVVNCXzJfMF9ERVZJQ0UKQEAgLTIyNSwyOSArMjI1LDI5IEBACiAjZGVmaW5lIENPTkZJR19QQ0kJCQkvKiBpbmNsdWRlIHBjaSBzdXBwb3J0CSAgICAgICAgKi8KICN1bmRlZiAgQ09ORklHX1BDSV9QTlAJCQkvKiBkbyAobm90KSBwY2kgcGx1Zy1hbmQtcGxheSAgICovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XICAgICAgICAgICAgLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdCQVNFICAgICAgICAweDgwMDAwMDAwIC8qIFBDSWFkZHIgbWFwcGVkIHRvIENGR19QQ0lfTUVNQkFTRSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdCQVNFICAgICAgICAweDgwMDAwMDAwIC8qIFBDSWFkZHIgbWFwcGVkIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UqLwogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAotI2RlZmluZSBDRkdfUENJX01BU1RFUl9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfSUQgICAgICAgMHhjYWZlCS8qIFdoYXRldmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSUQgICAgICAgMHhjYWZlCS8qIFdoYXRldmVyICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0gJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUExECQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NQTEQJCTB4ODAwMDAwMDAKIAogLyogTWVtb3J5IEJhbmsgMCAoTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwMzAxNzMwMAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkoQ0ZHX0ZMQVNIIHwgMHhkYTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDMwMTczMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShDT05GSUdfU1lTX0ZMQVNIIHwgMHhkYTAwMCkKIAogLyogTWVtb3J5IEJhbmsgMiAoQ1BMRCkgaW5pdGlhbGl6YXRpb24JCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDA0ODE0NTAwCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCShDRkdfQ1BMRCB8IDB4MTgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDA0ODE0NTAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkoQ09ORklHX1NZU19DUExEIHwgMHgxODAwMCkKIAotI2RlZmluZSBDRkdfQkNTUjVfUENJNjZFTgkweDgwCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUjVfUENJNjZFTgkweDgwCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MveXVjY2EuaCBiL2luY2x1ZGUvY29uZmlncy95dWNjYS5oCmluZGV4IDkyZDQ1ZDAuLmIxNjViZDcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy95dWNjYS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy95dWNjYS5oCkBAIC01OCw0OSArNTgsNDkgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZmYwMDAwMAkvKiBzdGFydCBvZiBGTEFTSAkqLwotI2RlZmluZSBDRkdfUEVSSVBIRVJBTF9CQVNFCTB4YTAwMDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KLSNkZWZpbmUgQ0ZHX0lTUkFNX0JBU0UJCTB4OTAwMDAwMDAJLyogaW50ZXJuYWwgU1JBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmZmMDAwMDAJLyogc3RhcnQgb2YgRkxBU0gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UJMHhhMDAwMDAwMAkvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lTUkFNX0JBU0UJCTB4OTAwMDAwMDAJLyogaW50ZXJuYWwgU1JBTQkqLwogCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgUENJIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUENJX0JBU0UJCTB4ZDAwMDAwMDAJLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHQkFTRQlDRkdfUENJX01FTUJBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgUENJIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVNFCQkweGQwMDAwMDAwCS8qIGludGVybmFsIFBDSSByZWdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdCQVNFCUNPTkZJR19TWVNfUENJX01FTUJBU0UKIAotI2RlZmluZSBDRkdfUENJRV9NRU1CQVNFCTB4YjAwMDAwMDAJLyogbWFwcGVkIFBDSWUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QQ0lFX01FTVNJWkUJMHgwODAwMDAwMAkvKiBzbWFsbGVzdCBpbmNyIGZvciBQQ0llIHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX1BDSUVfQkFTRQkJMHhlMDAwMDAwMAkvKiBQQ0llIFVUTCByZWdzICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9NRU1CQVNFCTB4YjAwMDAwMDAJLyogbWFwcGVkIFBDSWUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9NRU1TSVpFCTB4MDgwMDAwMDAJLyogc21hbGxlc3QgaW5jciBmb3IgUENJZSBwb3J0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9CQVNFCQkweGUwMDAwMDAwCS8qIFBDSWUgVVRMIHJlZ3MgKi8KIAotI2RlZmluZSBDRkdfUENJRTBfQ0ZHQkFTRQkweGMwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9DRkdCQVNFCTB4YzEwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUyX0NGR0JBU0UJMHhjMjAwMDAwMAotI2RlZmluZSBDRkdfUENJRTBfWENGR0JBU0UJMHhjMzAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfWENGR0JBU0UJMHhjMzAwMTAwMAotI2RlZmluZSBDRkdfUENJRTJfWENGR0JBU0UJMHhjMzAwMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUwX0NGR0JBU0UJMHhjMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0NGR0JBU0UJMHhjMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0NGR0JBU0UJMHhjMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUwX1hDRkdCQVNFCTB4YzMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9YQ0ZHQkFTRQkweGMzMDAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfWENGR0JBU0UJMHhjMzAwMjAwMAogCiAvKiBiYXNlIGFkZHJlc3Mgb2YgaW5ib3VuZCBQQ0llIHdpbmRvdyAqLwotI2RlZmluZSBDRkdfUENJRV9JTkJPVU5EX0JBU0UJMHgwMDAwMDAwNDAwMDAwMDAwVUxMCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9JTkJPVU5EX0JBU0UJMHgwMDAwMDAwNDAwMDAwMDAwVUxMCiAKIC8qIFN5c3RlbSBSQU0gbWFwcGVkIHRvIFBDSSBzcGFjZSAqLwotI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fQlVTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9QSFlTCUNGR19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9CVVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9QSFlTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQogI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fU0laRQkoMTAyNCAqIDEwMjQgKiAxMDI0KQogCi0jZGVmaW5lIENGR19GUEdBX0JBU0UJCTB4ZTIwMDAwMDAJLyogZXBsZAkJCSovCi0jZGVmaW5lIENGR19PUEVSX0ZMQVNICQkweGU3MDAwMDAwCS8qIFNSQU0gLSBPUEVSIEZsYXNoCSovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFCQkweGUyMDAwMDAwCS8qIGVwbGQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09QRVJfRkxBU0gJCTB4ZTcwMDAwMDAJLyogU1JBTSAtIE9QRVIgRmxhc2gJKi8KIAotLyogI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSIDB4MDgwMDAwMDAgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgMHgwODAwMDAwMCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyIChwbGFjZWQgaW4gaW50ZXJuYWwgU1JBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkxCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCUNGR19JU1JBTV9CQVNFCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JU1JBTV9CQVNFCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDIwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCUNPTkZJR19TWVNfSVNSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JU1JBTV9CQVNFCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfUE9TVF9XT1JEX0FERFIJKENGR19HQkxfREFUQV9PRkZTRVQgLSAweDQpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfUE9TVF9XT1JEX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CkBAIC0xMDgsOCArMTA4LDggQEAKICN1bmRlZiBDT05GSUdfVUFSVDFfQ09OU09MRQogCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jdW5kZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sKLS8qICNkZWZpbmUgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJKDE4NDMyMDAgKiA2KSAqLyAvKiBFeHQgY2xrIEAgMTEuMDU5IE1IeiAqLworI3VuZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSworLyogI2RlZmluZSBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJKDE4NDMyMDAgKiA2KSAqLyAvKiBFeHQgY2xrIEAgMTEuMDU5IE1IeiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBERFIgU0RSQU0KQEAgLTEyMSwyMyArMTIxLDIzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KIAogI2RlZmluZSBJSUMwX0JPT1RQUk9NX0FERFIJMHg1MAogI2RlZmluZSBJSUMwX0FMVF9CT09UUFJPTV9BRERSCTB4NTQKIAogLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7MHg1MCwgMHg1MiwgMHg1MywgMHg1NH0KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4NTAsIDB4NTIsIDB4NTMsIDB4NTR9CiAKIC8qICNpZiBkZWZpbmVkKENPTkZJR19DTURfRUVQUk9NKSAqLwotLyogI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAgKi8JLyogSTJDIGJvb3QgRUVQUk9NCQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkyCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAgKi8JLyogSTJDIGJvb3QgRUVQUk9NCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMgkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogI2VuZGlmICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVudmlyb25tZW50CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotLyogI2RlZmluZSBDRkdfTlZSQU1fU0laRQkoMHgyMDAwIC0gOCkgKi8JLyogTlZSQU0gc2l6ZSg4ayktIFJUQyByZWdzICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkoMHgyMDAwIC0gOCkgKi8JLyogTlZSQU0gc2l6ZSg4ayktIFJUQyByZWdzICovCiAKICN1bmRlZiAgQ09ORklHX0VOVl9JU19JTl9OVlJBTQkJLyogLi4uIG5vdCBpbiBOVlJBTQkJKi8KICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCS8qIEVudmlyb25tZW50IHVzZXMgZmxhc2gJKi8KQEAgLTE3NCwyNCArMTc0LDI0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCByZWxhdGVkCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTMJLyogbnVtYmVyIG9mIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIHNlY3RvcnMgcGVyIGRldmljZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMwkvKiBudW1iZXIgb2YgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIHNlY3RvcnMgcGVyIGRldmljZQkJKi8KIAotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1Ci0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyYWFhCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyYWFhCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIGNoYXIKIAotI2RlZmluZSBDRkdfRkxBU0hfMk5EXzE2QklUX0RFVgkxCS8qIGV2YjQ0MFNQZSBoYXMgOCBhbmQgMTZiaXQgZGV2aWNlICovCi0jZGVmaW5lIENGR19GTEFTSF8yTkRfQUREUgkweGU3YzAwMDAwIC8qIGV2YjQ0MFNQZSBoYXMgOCBhbmQgMTZiaXQgZGV2aWNlKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF8yTkRfMTZCSVRfREVWCTEJLyogZXZiNDQwU1BlIGhhcyA4IGFuZCAxNmJpdCBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF8yTkRfQUREUgkweGU3YzAwMDAwIC8qIGV2YjQ0MFNQZSBoYXMgOCBhbmQgMTZiaXQgZGV2aWNlKi8KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkweGZmZmEwMDAwCi0vKiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpICovCisvKiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKSAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMDAJLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzCSovCiAjZW5kaWYgLyogQ09ORklHX0VOVl9JU19JTl9GTEFTSCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjA1LDEyICsyMDUsMTIgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9DT05GSUdfSE9TVF9CUklER0UKIAogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQJCS8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQgICAgKi8KLSN1bmRlZglDRkdfUENJX01BU1RFUl9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCQkvKiBsZXQgYm9hcmQgaW5pdCBwY2kgdGFyZ2V0ICAgICovCisjdW5kZWYJQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQKIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwMTQJLyogSUJNCQkJCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkvKiBXaGF0ZXZlcgkJCSovCi0vKiAjZGVmaW5lIENGR19QQ0lfU1VCU1lTX0lECUNGR19QQ0lfU1VCU1lTX0RFVklDRUlEICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwMTQJLyogSUJNCQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIJCQkqLworLyogI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSUQJQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEICovCiAKIC8qCiAgKiAgTkVUV09SSyBTdXBwb3J0IChQQ0kpOgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3pldXMuaCBiL2luY2x1ZGUvY29uZmlncy96ZXVzLmgKaW5kZXggYWJmNmJkMy4uYjc1ZThhMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3pldXMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvemV1cy5oCkBAIC01MSw3ICs1MSw3IEBACiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQkJMQogI2RlZmluZSBDT05GSUdfUEhZMV9BRERSCTB4MTEJLyogRU1BQzEgUEhZIGFkZHJlc3MJCSovCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkxNgkvKiBOdW1iZXIgb2YgZXRoZXJuZXQgcnggYnVmZmVycyAmIGRlc2NyaXB0b3JzICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNgkvKiBOdW1iZXIgb2YgZXRoZXJuZXQgcnggYnVmZmVycyAmIGRlc2NyaXB0b3JzICovCiAjZGVmaW5lIENPTkZJR19QSFlfUkVTRVQJMQogI2RlZmluZSBDT05GSUdfUEhZX1JFU0VUX0RFTEFZCTMwMAkvKiBQSFkgUkVTRVQgcmVjb3ZlcnkgZGVsYXkJKi8KIApAQCAtODQsMjEgKzg0LDIxIEBACiAjZGVmaW5lIENPTkZJR19DTURfUkVHSU5GTwogCiAvKiBQT1NUIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9NRU1PUlkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfQ1BVCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9DQUNIRQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfVUFSVAkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfRVRIRVIpCisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX01FTU9SWSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ1BVCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ0FDSEUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9VQVJUCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRVRIRVIpCiAKLSNkZWZpbmUgQ0ZHX1BPU1RfRVRIRVJfRVhUX0xPT1BCQUNLCS8qIGV0aCBQT1NUIHVzaW5nIGV4dCBsb29wYWNrIGNvbm5lY3RvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfRVRIRVJfRVhUX0xPT1BCQUNLCS8qIGV0aCBQT1NUIHVzaW5nIGV4dCBsb29wYWNrIGNvbm5lY3RvcgkqLwogCiAvKiBEZWZpbmUgaGVyZSB0aGUgYmFzZS1hZGRyZXNzZXMgb2YgdGhlIFVBUlRzIHRvIHRlc3QgaW4gUE9TVCAqLwotI2RlZmluZSBDRkdfUE9TVF9VQVJUX1RBQkxFCXtVQVJUMF9CQVNFfQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfVUFSVF9UQUJMRQl7VUFSVDBfQkFTRX0KIAogI2RlZmluZSBDT05GSUdfTE9HQlVGRkVSCi0jZGVmaW5lIENGR19QT1NUX0NBQ0hFX0FERFIJMHgwMDgwMDAwMCAvKiBmcmVlIHZpcnR1YWwgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfQ0FDSEVfQUREUgkweDAwODAwMDAwIC8qIGZyZWUgdmlydHVhbCBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WIC8qIE90aGVyd2lzZSBpdCBjYXRjaGVzIGxvZ2J1ZmZlciBhcyBvdXRwdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOViAvKiBPdGhlcndpc2UgaXQgY2F0Y2hlcyBsb2didWZmZXIgYXMgb3V0cHV0ICovCiAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTEyLDQ4ICsxMTIsNDggQEAKICNkZWZpbmUgQ09ORklHX1NEUkFNX0JBTksxCTEJLyogaW5pdCBvbmJvYXJkIFNEUkFNIGJhbmsgMSAqLwogCiAvKiBTRFJBTSB0aW1pbmdzIHVzZWQgaW4gZGF0YXNoZWV0ICovCi0jZGVmaW5lIENGR19TRFJBTV9DTCAgICAgICAgICAgIDMJLyogQ0FTIGxhdGVuY3kgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX3RSUCAgICAgICAgICAgMjAJLyogUFJFQ0hBUkdFIGNvbW1hbmQgcGVyaW9kICovCi0jZGVmaW5lIENGR19TRFJBTV90UkMgICAgICAgICAgIDY2CS8qIEFDVElWRS10by1BQ1RJVkUgY29tbWFuZCBwZXJpb2QgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX3RSQ0QgICAgICAgICAgMjAJLyogQUNUSVZFLXRvLVJFQUQgZGVsYXkgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX3RSRkMJCTY2CS8qIEF1dG8gcmVmcmVzaCBwZXJpb2QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DTCAgICAgICAgICAgIDMJLyogQ0FTIGxhdGVuY3kgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV90UlAgICAgICAgICAgIDIwCS8qIFBSRUNIQVJHRSBjb21tYW5kIHBlcmlvZCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX3RSQyAgICAgICAgICAgNjYJLyogQUNUSVZFLXRvLUFDVElWRSBjb21tYW5kIHBlcmlvZCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX3RSQ0QgICAgICAgICAgMjAJLyogQUNUSVZFLXRvLVJFQUQgZGVsYXkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV90UkZDCQk2NgkvKiBBdXRvIHJlZnJlc2ggcGVyaW9kICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCQkJLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJCTY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkJCS8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkJNjkxMjAwCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAjZGVmaW5lIENPTkZJR19TRVJJQUxfTVVMVEkKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkgICAgICAgICI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkgICAgICAgICI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkgICAgICAgIDEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgICAxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgICAgMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCSAgICAgICAgMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAgICAgICAgICAgICAgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkgICAgICAgIENGR19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAgICAgICAgICAgICAgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJICAgICAgICBDT05GSUdfU1lTX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwIC8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KICNkZWZpbmUgQ09ORklHX0xPT1BXICAgICAgICAgICAgMSAgICAgICAvKiBlbmFibGUgbG9vcHcgY29tbWFuZCAgICAgICAgICovCkBAIC0xNjYsMTcgKzE2NiwxNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKiB0aGVzZSBhcmUgZm9yIHRoZSBTVCBNMjRDMDIgMmtiaXQgc2VyaWFsIGkyYyBlZXByb20gKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMQkJLyogYnl0ZXMgb2YgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTEJCS8qIGJ5dGVzIG9mIGFkZHJlc3MgKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiICAgICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CiAKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMwkvKiA4IGJ5dGUgd3JpdGUgcGFnZSBzaXplICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMwkvKiA4IGJ5dGUgd3JpdGUgcGFnZSBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyoKICAqIFRoZSBsYXlvdXQgb2YgdGhlIEkyQyBFRVBST00sIHVzZWQgZm9yIGJvb3RzdHJhcCBzZXR1cCBhbmQgZm9yIGJvYXJkLQpAQCAtMTkwLDQ0ICsxOTAsNDQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKC1DRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24JKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2gJKi8KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKCgtQ0ZHX01PTklUT1JfTEVOKS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoKC1DT05GSUdfU1lTX01PTklUT1JfTEVOKS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDIwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yMzksMzEgKzIzOSwzMSBAQAogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCiAvKiB1c2Ugb24gY2hpcCBtZW1vcnkgKE9DTSkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkxCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBPQ00JCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBPQ00JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIC8qIHJlc2VydmUgc29tZSBtZW1vcnkgZm9yIFBPU1QgYW5kIEJPT1QgbGltaXQgaW5mbyAqLwotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJKENGR19HQkxfREFUQV9PRkZTRVQgLSAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSAxNikKIAogLyogZXh0cmEgZGF0YSBpbiBPQ00gKi8KLSNkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gNCkKLSNkZWZpbmUgQ0ZHX1BPU1RfTUFHSUMJCShDRkdfT0NNX0RBVEFfQUREUiArIENGR19HQkxfREFUQV9PRkZTRVQgLSA4KQotI2RlZmluZSBDRkdfUE9TVF9WQUwJCShDRkdfT0NNX0RBVEFfQUREUiArIENGR19HQkxfREFUQV9PRkZTRVQgLSAxMikKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSA0KQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfTUFHSUMJCShDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDgpCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9WQUwJCShDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDEyKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIDE2TSkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4MDU4MTU2MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJMHhGRjA5QTAwMCAgLyogQkFTPTB4RkYwLEJTPTE2TUIsQlU9Ui9XLEJXPTE2Yml0ICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgwNTgxNTYwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRjA5QTAwMCAgLyogQkFTPTB4RkYwLEJTPTE2TUIsQlU9Ui9XLEJXPTE2Yml0ICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgR1BJTyBzZXR1cCAoUFBDNDA1RVAgc3BlY2lmaWMpCkBAIC0yNzcsMjMgKzI3NywyMyBAQAogICogR1BJTzBbMjgtMjldIC0gVUFSVDEgZGF0YSBzaWduYWwgaW5wdXQvb3V0cHV0CiAgKiBHUElPMFszMC0zMV0gLSBFTUFDMCBhbmQgRU1BQzEgcmVqZWN0IHBhY2tldCBpbnB1dHMKICAqLwotI2RlZmluZSBDRkdfR1BJTzBfT1NSSAkJMHgxNTU1NTU1MAkvKiBDaGlwIHNlbGVjdHMgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAJLyogVUFSVF9EVFItcGluIDI3IGFsdCBvdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFICQkweDEwMDAwMDQxCS8qIFBpbiAyLCAxMiBpcyBpbnB1dCAqLwotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUwJCTB4MTU1MDU0NDAJLyogT1VUOiBMRURzIDIyLzIzOyBJTjogcGluMTIsMiwgTlZBTElEIyAqLwotI2RlZmluZSBDRkdfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVENSCQkweEJGRjY4MzE3CS8qIDMtc3RhdGUgT1VUOiAyMi8yMy8yOTsgMTIsMiBpcyBub3QgMy1zdGF0ZSAqLwotI2RlZmluZSBDRkdfR1BJTzBfT0RSCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSSAkJMHgxNTU1NTU1MAkvKiBDaGlwIHNlbGVjdHMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JMCQkweDAwMDAwMTEwCS8qIFVBUlRfRFRSLXBpbiAyNyBhbHQgb3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUgJCTB4MTAwMDAwNDEJLyogUGluIDIsIDEyIGlzIGlucHV0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUwJCTB4MTU1MDU0NDAJLyogT1VUOiBMRURzIDIyLzIzOyBJTjogcGluMTIsMiwgTlZBTElEIyAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkgJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVENSCQkweEJGRjY4MzE3CS8qIDMtc3RhdGUgT1VUOiAyMi8yMy8yOTsgMTIsMiBpcyBub3QgMy1zdGF0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09EUgkJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19HUElPX1NXX1JFU0VUCTEKLSNkZWZpbmUgQ0ZHX0dQSU9fWkVVU19QRQkxMgotI2RlZmluZSBDRkdfR1BJT19MRURfUkVECTIyCi0jZGVmaW5lIENGR19HUElPX0xFRF9HUkVFTgkyMworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fU1dfUkVTRVQJMQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fWkVVU19QRQkxMgorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fTEVEX1JFRAkyMgorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fTEVEX0dSRUVOCTIzCiAKIC8qIFRpbWUgaW4gbWlsbGktc2Vjb25kcyAqLwotI2RlZmluZSBDRkdfVElNRV9QT1NUCQk1MDAwCi0jZGVmaW5lIENGR19USU1FX0ZBQ1RPUllfUkVTRVQJMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FX1BPU1QJCTUwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FX0ZBQ1RPUllfUkVTRVQJMTAwMDAKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvenlsb25pdGUuaCBiL2luY2x1ZGUvY29uZmlncy96eWxvbml0ZS5oCmluZGV4IDE0ODA3OWMuLjUzMzk3ZDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy96eWxvbml0ZS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy96eWxvbml0ZS5oCkBAIC01MCw4ICs1MCw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTEyMSwzOCArMTIxLDM4IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2lmZGVmIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUCQkiJCAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIiQgIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJMQorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDljMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDljNDAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHg5YzAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4OWM0MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmCUNPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJKENGR19EUkFNX0JBU0UgKyAweDgwMDApIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCShDT05GSUdfU1lTX0RSQU1fQkFTRSArIDB4ODAwMCkgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkzMjUwMDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjI1IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMzI1MDAwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy4yNSBNSHogKi8KIAogLyogTW9uYWhhbnMgQ29yZSBGcmVxdWVuY3kgKi8KLSNkZWZpbmUgQ0ZHX01PTkFIQU5TX1JVTl9NT0RFX09TQ19SQVRJTwkJMTYgLyogdmFsaWQgdmFsdWVzOiA4LCAxNiwgMjQsIDMxICovCi0jZGVmaW5lIENGR19NT05BSEFOU19UVVJCT19SVU5fTU9ERV9SQVRJTwkxICAvKiB2YWxpZCB2YWx1ZXM6IDEsIDIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05BSEFOU19SVU5fTU9ERV9PU0NfUkFUSU8JCTE2IC8qIHZhbGlkIHZhbHVlczogOCwgMTYsIDI0LCAzMSAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTkFIQU5TX1RVUkJPX1JVTl9NT0RFX1JBVElPCTEgIC8qIHZhbGlkIHZhbHVlczogMSwgMiAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKLS8qICNkZWZpbmUgQ0ZHX01NQ19CQVNFCQkweEYwMDAwMDAwICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfTU1DX0JBU0UJCTB4RjAwMDAwMDAgKi8KIAogLyoKICAqIFN0YWNrIHNpemVzCkBAIC0xNzgsMjYgKzE3OCwyNiBAQAogI2RlZmluZSBQSFlTX1NEUkFNXzQJCTB4YWMwMDAwMDAgLyogU0RSQU0gQmFuayAjNCAqLwogI2RlZmluZSBQSFlTX1NEUkFNXzRfU0laRQkweDAwMDAwMDAwIC8qIDAgTUIgKi8KIAotI2RlZmluZSBDRkdfRFJBTV9CQVNFCQkweDgwMDAwMDAwIC8qIGF0IENTMCAqLwotI2RlZmluZSBDRkdfRFJBTV9TSVpFCQkweDA0MDAwMDAwIC8qIDY0IE1CIFJhbSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQkFTRQkJMHg4MDAwMDAwMCAvKiBhdCBDUzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1NJWkUJCTB4MDQwMDAwMDAgLyogNjQgTUIgUmFtICovCiAKLSN1bmRlZiBDRkdfU0tJUF9EUkFNX1NDUlVCCisjdW5kZWYgQ09ORklHX1NZU19TS0lQX0RSQU1fU0NSVUIKIAogCiAvKgogICogTkFORCBGbGFzaAogICovCiAjZGVmaW5lIENPTkZJR19ORVdfTkFORF9DT0RFCi0jZGVmaW5lIENGR19OQU5EMF9CQVNFCQkweDAKLSN1bmRlZiBDRkdfTkFORDFfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX05BTkQwX0JBU0UJCTB4MAorI3VuZGVmIENPTkZJR19TWVNfTkFORDFfQkFTRQogCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7IENGR19OQU5EMF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFX0xJU1QJeyBDT05GSUdfU1lTX05BTkQwX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCiAKIC8qIG5hbmQgdGltZW91dCB2YWx1ZXMgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUFJPR19FUkFTRV9UTwkzMDAwCi0jZGVmaW5lIENGR19OQU5EX09USEVSX1RPCTEwMAotI2RlZmluZSBDRkdfTkFORF9TRU5EQ01EX1JFVFJZCTMKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1BST0dfRVJBU0VfVE8JMzAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfT1RIRVJfVE8JMTAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9TRU5EQ01EX1JFVFJZCTMKICN1bmRlZiBOQU5EX0FMTE9XX0VSQVNFX0FMTAkvKiBBbGxvdyBlcmFzaW5nIGJhZCBibG9ja3MgLSBkb24ndCB1c2UgKi8KIAogLyogTkFORCBUaW1pbmcgUGFyYW1ldGVycyAoaW4gbnMpICovCkBAIC0yMTQsOSArMjE0LDkgQEAKICNkZWZpbmUgTkFORF9USU1JTkdfdEFSCQkxMAogCiAvKiBOQU5EIGRlYnVnZ2luZyAqLwotI2RlZmluZSBDRkdfREZDX0RFQlVHMSAvKiB1c2VmdWxsICovCi0jdW5kZWYgQ0ZHX0RGQ19ERUJVRzIgIC8qIG5vaXN5ICovCi0jdW5kZWYgQ0ZHX0RGQ19ERUJVRzMgIC8qIGV4dHJlbWx5IG5vaXN5ICAqLworI2RlZmluZSBDT05GSUdfU1lTX0RGQ19ERUJVRzEgLyogdXNlZnVsbCAqLworI3VuZGVmIENPTkZJR19TWVNfREZDX0RFQlVHMiAgLyogbm9pc3kgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0RGQ19ERUJVRzMgIC8qIGV4dHJlbWx5IG5vaXN5ICAqLwogCiAjZGVmaW5lIENPTkZJR19NVERfREVCVUcKICNkZWZpbmUgQ09ORklHX01URF9ERUJVR19WRVJCT1NFIDEKQEAgLTIyOSw3ICsyMjksNyBAQAogI2RlZmluZSBOQU5EX01BWF9GTE9PUlMJCTEKICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCTEKIAotI2RlZmluZSBDRkdfTk9fRkxBU0gJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTkFORAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDQwMDAwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RhdGFmbGFzaC5oIGIvaW5jbHVkZS9kYXRhZmxhc2guaAppbmRleCBkZTA0MTM5Li42M2IzYmY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RhdGFmbGFzaC5oCisrKyBiL2luY2x1ZGUvZGF0YWZsYXNoLmgKQEAgLTQwLDcgKzQwLDcgQEAKIC8qbnVtYmVyIG9mIHByb3RlY3RlZCBhcmVhKi8KICNkZWZpbmUgTkJfREFUQUZMQVNIX0FSRUEJCTUKIAotI2lmZGVmIENGR19OT19GTEFTSAorI2lmZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogcmV0dXJuIGNvZGVzIGZyb20gZmxhc2hfd3JpdGUoKToKQEAgLTY2LDcgKzY2LDcgQEAKICAqIFNldCBFbnZpcm9ubWVudCBhY2NvcmRpbmcgdG8gbGFiZWw6CiAgKi8KICMgZGVmaW5lCUZMQUdfU0VURU5WCQkweDgwCi0jZW5kaWYgLyogQ0ZHX05PX0ZMQVNIICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OT19GTEFTSCAqLwogCiAvKmRlZmluZSB0aGUgYXJlYSBzdHJ1Y3R1cmUqLwogdHlwZWRlZiBzdHJ1Y3QgewpAQCAtMjEzLDcgKzIxMyw3IEBACiBleHRlcm4gdm9pZCBkYXRhZmxhc2hfcGVycm9yIChpbnQgZXJyKTsKIGV4dGVybiB2b2lkIEFUOTFGX0RhdGFmbGFzaFNldEVudiAodm9pZCk7CiAKLWV4dGVybiBzdHJ1Y3QgZGF0YWZsYXNoX2FkZHIgY3NbQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1NdOworZXh0ZXJuIHN0cnVjdCBkYXRhZmxhc2hfYWRkciBjc1tDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1NdOwogZXh0ZXJuIGRhdGFmbGFzaF9wcm90ZWN0X3QgYXJlYV9saXN0W05CX0RBVEFGTEFTSF9BUkVBXTsKIGV4dGVybiBBVDkxU19EQVRBRkxBU0hfSU5GTyBkYXRhZmxhc2hfaW5mb1tdOwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2R0dC5oIGIvaW5jbHVkZS9kdHQuaAppbmRleCA5NjVlODJlLi4zOTliNjRhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2R0dC5oCisrKyBiL2luY2x1ZGUvZHR0LmgKQEAgLTQzLDEyICs0MywxMiBAQAogI2RlZmluZSBEVFRfSU5EVVNUUklBTF9NQVhfVEVNUAk4NQkJLyogLTQwIC0gKzg1IEMgKi8KICNkZWZpbmUgRFRUX0FVVE9NT1RJVkVfTUFYX1RFTVAJMTA1CQkvKiAtNDAgLSArMTA1IEMgKi8KIAotI2lmbmRlZiBDRkdfRFRUX01BWF9URU1QCi0jZGVmaW5lIENGR19EVFRfTUFYX1RFTVAgRFRUX0NPTU1FUkNJQUxfTUFYX1RFTVAKKyNpZm5kZWYgQ09ORklHX1NZU19EVFRfTUFYX1RFTVAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTUFYX1RFTVAgRFRUX0NPTU1FUkNJQUxfTUFYX1RFTVAKICNlbmRpZgogCi0jaWZuZGVmIENGR19EVFRfSFlTVEVSRVNJUwotI2RlZmluZSBDRkdfRFRUX0hZU1RFUkVTSVMJNQkJLyogNSBDICovCisjaWZuZGVmIENPTkZJR19TWVNfRFRUX0hZU1RFUkVTSVMKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUwk1CQkvKiA1IEMgKi8KICNlbmRpZgogI2VuZGlmIC8qIENPTkZJR19EVFRfQURNMTAyMSAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2Vudmlyb25tZW50LmggYi9pbmNsdWRlL2Vudmlyb25tZW50LmgKaW5kZXggMTQ3OWViNi4uZWE2YjRkMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9lbnZpcm9ubWVudC5oCisrKyBiL2luY2x1ZGUvZW52aXJvbm1lbnQuaApAQCAtMzksMTMgKzM5LDEzIEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9PRkZTRVQKLSMgIGRlZmluZSBDT05GSUdfRU5WX09GRlNFVCAoQ09ORklHX0VOVl9BRERSIC0gQ0ZHX0ZMQVNIX0JBU0UpCisjICBkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQgKENPTkZJR19FTlZfQUREUiAtIENPTkZJR19TWVNfRkxBU0hfQkFTRSkKICMgZW5kaWYKICMgaWYgIWRlZmluZWQoQ09ORklHX0VOVl9BRERSX1JFRFVORCkgJiYgZGVmaW5lZChDT05GSUdfRU5WX09GRlNFVF9SRURVTkQpCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5EKQogIyBlbmRpZgogIyBpZiBkZWZpbmVkKENPTkZJR19FTlZfU0VDVF9TSVpFKSB8fCBkZWZpbmVkKENPTkZJR19FTlZfU0laRSkKICMgIGlmbmRlZiAgQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTYwLDEyICs2MCwxMiBAQAogIyBpZiBkZWZpbmVkKENPTkZJR19FTlZfQUREUl9SRURVTkQpICYmICFkZWZpbmVkKENPTkZJR19FTlZfU0laRV9SRURVTkQpCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAlDT05GSUdfRU5WX1NJWkUKICMgZW5kaWYKLSMgaWYgKENPTkZJR19FTlZfQUREUiA+PSBDRkdfTU9OSVRPUl9CQVNFKSAmJiBcCi0gICAgIChDT05GSUdfRU5WX0FERFIrQ09ORklHX0VOVl9TSVpFKSA8PSAoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyMgaWYgKENPTkZJR19FTlZfQUREUiA+PSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgJiYgXAorICAgICAoQ09ORklHX0VOVl9BRERSK0NPTkZJR19FTlZfU0laRSkgPD0gKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKICMgIGRlZmluZSBFTlZfSVNfRU1CRURERUQJMQogIyBlbmRpZgogIyBpZiBkZWZpbmVkKENPTkZJR19FTlZfQUREUl9SRURVTkQpIHx8IGRlZmluZWQoQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5EKQotIyAgZGVmaW5lIENGR19SRURVTkRBTkRfRU5WSVJPTk1FTlQJMQorIyAgZGVmaW5lIENPTkZJR19TWVNfUkVEVU5EQU5EX0VOVklST05NRU5UCTEKICMgZW5kaWYKICNlbmRpZgkvKiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIICovCiAKQEAgLTc3LDcgKzc3LDcgQEAKICMgIGVycm9yICJOZWVkIHRvIGRlZmluZSBDT05GSUdfRU5WX1NJWkUgd2hlbiB1c2luZyBDT05GSUdfRU5WX0lTX0lOX05BTkQiCiAjIGVuZGlmCiAjIGlmZGVmIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAotIyAgZGVmaW5lIENGR19SRURVTkRBTkRfRU5WSVJPTk1FTlQKKyMgIGRlZmluZSBDT05GSUdfU1lTX1JFRFVOREFORF9FTlZJUk9OTUVOVAogIyBlbmRpZgogIyBpZmRlZiBDT05GSUdfRU5WX0lTX0VNQkVEREVECiAjICBkZWZpbmUgRU5WX0lTX0VNQkVEREVECTEKQEAgLTkwLDcgKzkwLDcgQEAKICMgaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1JFRFVOREFORF9FTlZJUk9OTUVOVAorI2lmZGVmIENPTkZJR19TWVNfUkVEVU5EQU5EX0VOVklST05NRU5UCiAjIGRlZmluZSBFTlZfSEVBREVSX1NJWkUJKHNpemVvZih1aW50MzJfdCkgKyAxKQogI2Vsc2UKICMgZGVmaW5lIEVOVl9IRUFERVJfU0laRQkoc2l6ZW9mKHVpbnQzMl90KSkKQEAgLTEwMSw3ICsxMDEsNyBAQAogCiB0eXBlZGVmCXN0cnVjdCBlbnZpcm9ubWVudF9zIHsKIAl1aW50MzJfdAljcmM7CQkvKiBDUkMzMiBvdmVyIGRhdGEgYnl0ZXMJKi8KLSNpZmRlZiBDRkdfUkVEVU5EQU5EX0VOVklST05NRU5UCisjaWZkZWYgQ09ORklHX1NZU19SRURVTkRBTkRfRU5WSVJPTk1FTlQKIAl1bnNpZ25lZCBjaGFyCWZsYWdzOwkJLyogYWN0aXZlL29ic29sZXRlIGZsYWdzCSovCiAjZW5kaWYKIAl1bnNpZ25lZCBjaGFyCWRhdGFbRU5WX1NJWkVdOyAvKiBFbnZpcm9ubWVudCBkYXRhCQkqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9mbGFzaC5oIGIvaW5jbHVkZS9mbGFzaC5oCmluZGV4IDZmNWQ3ZDUuLmE2ZTkxYjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZmxhc2guaAorKysgYi9pbmNsdWRlL2ZsYXNoLmgKQEAgLTI0LDcgKzI0LDcgQEAKICNpZm5kZWYgX0ZMQVNIX0hfCiAjZGVmaW5lIF9GTEFTSF9IXwogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBJbmZvOiBjb250YWlucyBjaGlwIHNwZWNpZmljIGRhdGEsIHBlciBGTEFTSCBiYW5rCiAgKi8KQEAgLTMzLDkgKzMzLDkgQEAKIAl1bG9uZwlzaXplOwkJCS8qIHRvdGFsIGJhbmsgc2l6ZSBpbiBieXRlcwkJKi8KIAl1c2hvcnQJc2VjdG9yX2NvdW50OwkJLyogbnVtYmVyIG9mIGVyYXNlIHVuaXRzCQkqLwogCXVsb25nCWZsYXNoX2lkOwkJLyogY29tYmluZWQgZGV2aWNlICYgbWFudWZhY3R1cmVyIGNvZGUJKi8KLQl1bG9uZwlzdGFydFtDRkdfTUFYX0ZMQVNIX1NFQ1RdOyAgIC8qIHBoeXNpY2FsIHNlY3RvciBzdGFydCBhZGRyZXNzZXMgKi8KLQl1Y2hhcglwcm90ZWN0W0NGR19NQVhfRkxBU0hfU0VDVF07IC8qIHNlY3RvciBwcm90ZWN0aW9uIHN0YXR1cwkqLwotI2lmZGVmIENGR19GTEFTSF9DRkkKKwl1bG9uZwlzdGFydFtDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUXTsgICAvKiBwaHlzaWNhbCBzZWN0b3Igc3RhcnQgYWRkcmVzc2VzICovCisJdWNoYXIJcHJvdGVjdFtDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUXTsgLyogc2VjdG9yIHByb3RlY3Rpb24gc3RhdHVzCSovCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9DRkkKIAl1Y2hhcglwb3J0d2lkdGg7CQkvKiB0aGUgd2lkdGggb2YgdGhlIHBvcnQJCSovCiAJdWNoYXIJY2hpcHdpZHRoOwkJLyogdGhlIHdpZHRoIG9mIHRoZSBjaGlwCQkqLwogCXVzaG9ydAlidWZmZXJfc2l6ZTsJCS8qICMgb2YgYnl0ZXMgaW4gd3JpdGUgYnVmZmVyCQkqLwpAQCAtMTAwLDExICsxMDAsMTEgQEAKIGV4dGVybiBpbnQgd3JpdGVfYnVmZiAoZmxhc2hfaW5mb190ICppbmZvLCB1Y2hhciAqc3JjLCB1bG9uZyBhZGRyLCB1bG9uZyBjbnQpOwogCiAvKiBib2FyZC8/L2ZsYXNoLmMgKi8KLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogZXh0ZXJuIGludCBmbGFzaF9yZWFsX3Byb3RlY3QoZmxhc2hfaW5mb190ICppbmZvLCBsb25nIHNlY3RvciwgaW50IHByb3QpOwogZXh0ZXJuIHZvaWQgZmxhc2hfcmVhZF91c2VyX3NlcmlhbChmbGFzaF9pbmZvX3QgKiBpbmZvLCB2b2lkICogYnVmZmVyLCBpbnQgb2Zmc2V0LCBpbnQgbGVuKTsKIGV4dGVybiB2b2lkIGZsYXNoX3JlYWRfZmFjdG9yeV9zZXJpYWwoZmxhc2hfaW5mb190ICogaW5mbywgdm9pZCAqIGJ1ZmZlciwgaW50IG9mZnNldCwgaW50IGxlbik7Ci0jZW5kaWYJLyogQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gKi8KIAogI2lmZGVmIENPTkZJR19GTEFTSF9DRklfTEVHQUNZCiBleHRlcm4gdWxvbmcgYm9hcmRfZmxhc2hfZ2V0X2xlZ2FjeSh1bG9uZyBiYXNlLCBpbnQgYmFua251bSwgZmxhc2hfaW5mb190ICppbmZvKTsKQEAgLTQ4Niw2ICs0ODYsNiBAQAogI2RlZmluZSBGTEFTSF9FUkFTRV9USU1FT1VUCTEyMDAwMAkvKiB0aW1lb3V0IGZvciBlcmFzaW5nIGluIG1zCQkqLwogI2RlZmluZSBGTEFTSF9XUklURV9USU1FT1VUCTUwMAkvKiB0aW1lb3V0IGZvciB3cml0ZXMgIGluIG1zCQkqLwogCi0jZW5kaWYgLyogIUNGR19OT19GTEFTSCAqLworI2VuZGlmIC8qICFDT05GSUdfU1lTX05PX0ZMQVNIICovCiAKICNlbmRpZiAvKiBfRkxBU0hfSF8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZnBnYS5oIGIvaW5jbHVkZS9mcGdhLmgKaW5kZXggNTJkOTNiMS4uYTQ4Yjg5YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9mcGdhLmgKKysrIGIvaW5jbHVkZS9mcGdhLmgKQEAgLTQwLDEzICs0MCwxMyBAQAogI2VuZGlmCiAKIC8qIENPTkZJR19GUEdBIGJpdCBhc3NpZ25tZW50cyAqLwotI2RlZmluZSBDRkdfRlBHQV9NQU4oeCkJCSh4KQotI2RlZmluZSBDRkdfRlBHQV9ERVYoeCkJCSgoeCkgPDwgOCApCi0jZGVmaW5lIENGR19GUEdBX0lGKHgpCQkoKHgpIDw8IDE2ICkKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01BTih4KQkJKHgpCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9ERVYoeCkJCSgoeCkgPDwgOCApCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9JRih4KQkJKCh4KSA8PCAxNiApCiAKIC8qIEZQR0EgTWFudWZhY3R1cmVyIGJpdHMgaW4gQ09ORklHX0ZQR0EgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfWElMSU5YCQlDRkdfRlBHQV9NQU4oIDB4MSApCi0jZGVmaW5lIENGR19GUEdBX0FMVEVSQQkJQ0ZHX0ZQR0FfTUFOKCAweDIgKQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfWElMSU5YCQlDT05GSUdfU1lTX0ZQR0FfTUFOKCAweDEgKQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQUxURVJBCQlDT05GSUdfU1lTX0ZQR0FfTUFOKCAweDIgKQogCiAKIC8qIGZwZ2FfeHh4eCBmdW5jdGlvbiByZXR1cm4gdmFsdWUgZGVmaW5pdGlvbnMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ2FsaWxlby9jb3JlLmggYi9pbmNsdWRlL2dhbGlsZW8vY29yZS5oCmluZGV4IDQ5ZjRkZDIuLmMyNzc1MDkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZ2FsaWxlby9jb3JlLmgKKysrIGIvaW5jbHVkZS9nYWxpbGVvL2NvcmUuaApAQCAtMjMsMTMgKzIzLDEzIEBACiAjZGVmaW5lIEdUXzY0MjYwCTAgIC8qIGluY2x1ZGVzIGJvdGggNjQyNjBBIGFuZCA2NDI2MEIgKi8KICNkZWZpbmUgR1RfNjQyNjEJMQogCi0jaWYgKENGR19HVF82NDI2eCA9PSBHVF82NDI2MCkKKyNpZiAoQ09ORklHX1NZU19HVF82NDI2eCA9PSBHVF82NDI2MCkKICNpZmRlZiBDT05GSUdfRVRIRVJfUE9SVF9NSUkKICNkZWZpbmUgR0FMX0VUSF9ERVZTIDIKICNlbHNlCiAjZGVmaW5lIEdBTF9FVEhfREVWUyAzCiAjZW5kaWYKLSNlbGlmIChDRkdfR1RfNjQyNnggPT0gR1RfNjQyNjEpCisjZWxpZiAoQ09ORklHX1NZU19HVF82NDI2eCA9PSBHVF82NDI2MSkKICNkZWZpbmUgR0FMX0VUSF9ERVZTIDIKICNlbHNlCiAjZGVmaW5lIEdBTF9FVEhfREVWUyAzCS8qIGRlZmF1bHQgdG8gYSA2NDI2MCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9pMmMuaCBiL2luY2x1ZGUvaTJjLmgKaW5kZXggOWY3NzFkZC4uOGQ2Zjg2NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9pMmMuaAorKysgYi9pbmNsdWRlL2kyYy5oCkBAIC00NywzMSArNDcsMzEgQEAKICNkZWZpbmUgSTJDX1JYVFhfTEVOCTEyOAkvKiBtYXhpbXVtIHR4L3J4IGJ1ZmZlciBsZW5ndGggKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0kyQ19NVUxUSV9CVVMpCi0jZGVmaW5lIENGR19NQVhfSTJDX0JVUwkJMgorI2RlZmluZSBDT05GSUdfU1lTX01BWF9JMkNfQlVTCQkyCiAjZGVmaW5lIEkyQ19HRVRfQlVTKCkJCWkyY19nZXRfYnVzX251bSgpCiAjZGVmaW5lIEkyQ19TRVRfQlVTKGEpCQlpMmNfc2V0X2J1c19udW0oYSkKICNlbHNlCi0jZGVmaW5lIENGR19NQVhfSTJDX0JVUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9JMkNfQlVTCQkxCiAjZGVmaW5lIEkyQ19HRVRfQlVTKCkJCTAKICNkZWZpbmUgSTJDX1NFVF9CVVMoYSkKICNlbmRpZgogCiAvKiBkZWZpbmUgdGhlIEkyQyBidXMgbnVtYmVyIGZvciBSVEMgYW5kIERUVCBpZiBub3QgYWxyZWFkeSBkb25lICovCi0jaWYgIWRlZmluZWQoQ0ZHX1JUQ19CVVNfTlVNKQotI2RlZmluZSBDRkdfUlRDX0JVU19OVU0JCTAKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX1JUQ19CVVNfTlVNKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ19CVVNfTlVNCQkwCiAjZW5kaWYKLSNpZiAhZGVmaW5lZChDRkdfRFRUX0JVU19OVU0pCi0jZGVmaW5lIENGR19EVFRfQlVTX05VTQkJMAorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfRFRUX0JVU19OVU0pCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0JVU19OVU0JCTAKICNlbmRpZgotI2lmICFkZWZpbmVkKENGR19TUERfQlVTX05VTSkKLSNkZWZpbmUgQ0ZHX1NQRF9CVVNfTlVNCQkwCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19TUERfQlVTX05VTSkKKyNkZWZpbmUgQ09ORklHX1NZU19TUERfQlVTX05VTQkJMAogI2VuZGlmCiAKICNpZm5kZWYgSTJDX1NPRlRfREVDTEFSQVRJT05TCiAjIGlmIGRlZmluZWQoQ09ORklHX01QQzgyNjApCi0jICBkZWZpbmUgSTJDX1NPRlRfREVDTEFSQVRJT05TIHZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkcigoaW1tYXBfdCAqKUNGR19JTU1SLCBJMkNfUE9SVCk7CisjICBkZWZpbmUgSTJDX1NPRlRfREVDTEFSQVRJT05TIHZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkcigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiwgSTJDX1BPUlQpOwogIyBlbGlmIGRlZmluZWQoQ09ORklHXzh4eCkKLSMgIGRlZmluZSBJMkNfU09GVF9ERUNMQVJBVElPTlMJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisjICBkZWZpbmUgSTJDX1NPRlRfREVDTEFSQVRJT05TCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICMgZWxzZQogIyAgZGVmaW5lIEkyQ19TT0ZUX0RFQ0xBUkFUSU9OUwogIyBlbmRpZgpAQCAtODEsNyArODEsNyBAQAogICogcmVwZWF0ZWRseSB0byBjaGFuZ2UgdGhlIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzZXMuCiAgKi8KIHZvaWQgaTJjX2luaXQoaW50IHNwZWVkLCBpbnQgc2xhdmVhZGRyKTsKLSNpZmRlZiBDRkdfSTJDX0lOSVRfQk9BUkQKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19JTklUX0JPQVJECiB2b2lkIGkyY19pbml0X2JvYXJkKHZvaWQpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvaTgwNDIuaCBiL2luY2x1ZGUvaTgwNDIuaAppbmRleCBmNzcyMzlmLi4xMzk1Mjg5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2k4MDQyLmgKKysrIGIvaW5jbHVkZS9pODA0Mi5oCkBAIC0zNSw5ICszNSw5IEBACiAKIC8qIGRlZmluZXMgKi8KIAotI2RlZmluZSBJODA0Ml9EQVRBX1JFRyAgICAgIChDRkdfSVNBX0lPICsgMHgwMDYwKSAgICAvKiBrZXlib2FyZCBpL28gYnVmZmVyICovCi0jZGVmaW5lIEk4MDQyX1NUQVRVU19SRUcgICAgKENGR19JU0FfSU8gKyAweDAwNjQpICAgIC8qIGtleWJvYXJkIHN0YXR1cyByZWFkICovCi0jZGVmaW5lIEk4MDQyX0NPTU1BTkRfUkVHICAgKENGR19JU0FfSU8gKyAweDAwNjQpICAgIC8qIGtleWJvYXJkIGN0cmwgd3JpdGUgKi8KKyNkZWZpbmUgSTgwNDJfREFUQV9SRUcgICAgICAoQ09ORklHX1NZU19JU0FfSU8gKyAweDAwNjApICAgIC8qIGtleWJvYXJkIGkvbyBidWZmZXIgKi8KKyNkZWZpbmUgSTgwNDJfU1RBVFVTX1JFRyAgICAoQ09ORklHX1NZU19JU0FfSU8gKyAweDAwNjQpICAgIC8qIGtleWJvYXJkIHN0YXR1cyByZWFkICovCisjZGVmaW5lIEk4MDQyX0NPTU1BTkRfUkVHICAgKENPTkZJR19TWVNfSVNBX0lPICsgMHgwMDY0KSAgICAvKiBrZXlib2FyZCBjdHJsIHdyaXRlICovCiAKICNkZWZpbmUgS0JEX1VTICAgICAgICAgICAgICAwICAgICAgICAvKiBkZWZhdWx0IFVTIGxheW91dCAqLwogI2RlZmluZSBLQkRfR0VSICAgICAgICAgICAgIDEgICAgICAgIC8qIGdlcm1hbiBsYXlvdXQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvaWRlLmggYi9pbmNsdWRlL2lkZS5oCmluZGV4IDIyMmY0ZjguLmRkYjk1NzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvaWRlLmgKKysrIGIvaW5jbHVkZS9pZGUuaApAQCAtMjYsNyArMjYsNyBAQAogCiAjZGVmaW5lCUlERV9CVVMoZGV2KQkoZGV2ID4+IDEpCiAKLSNkZWZpbmUJQVRBX0NVUlJfQkFTRShkZXYpCShDRkdfQVRBX0JBU0VfQUREUitpZGVfYnVzX29mZnNldFtJREVfQlVTKGRldildKQorI2RlZmluZQlBVEFfQ1VSUl9CQVNFKGRldikJKENPTkZJR19TWVNfQVRBX0JBU0VfQUREUitpZGVfYnVzX29mZnNldFtJREVfQlVTKGRldildKQogCiAjaWZkZWYgQ09ORklHX0lERV9MRUQKIApAQCAtNDAsNyArNDAsNyBAQAogCiAjZW5kaWYgLyogQ09ORklHX0lERV9MRUQgKi8KIAotI2lmZGVmIENGR182NEJJVF9MQkEKKyNpZmRlZiBDT05GSUdfU1lTXzY0QklUX0xCQQogdHlwZWRlZiB1aW50NjRfdCBsYmFpbnRfdDsKICNlbHNlCiB0eXBlZGVmIHVsb25nIGxiYWludF90OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9sY2QuaCBiL2luY2x1ZGUvbGNkLmgKaW5kZXggNDRhYzhlZi4uMTVhZmZiOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9sY2QuaAorKysgYi9pbmNsdWRlL2xjZC5oCkBAIC0yMTEsOCArMjExLDggQEAKICAqICB0aGUgTENEIGNvbnRyb2xsZXIgYW5kIG1lbW9yeSBhbGxvY2F0aW9uLiBTb21lb25lIGhhcyB0byBrbm93IHdoYXQKICAqICBpcyBjb25uZWN0ZWQsIGFzIHdlIGNhbid0IGF1dG9kZXRlY3QgYW55dGhpbmcuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJR0gJMAkvKiBQaW5zIGFyZSBhY3RpdmUgaGlnaAkJCSovCi0jZGVmaW5lIENGR19MT1cJCTEJLyogUGlucyBhcmUgYWN0aXZlIGxvdwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSElHSAkwCS8qIFBpbnMgYXJlIGFjdGl2ZSBoaWdoCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT1cJCTEJLyogUGlucyBhcmUgYWN0aXZlIGxvdwkJCSovCiAKICNkZWZpbmUgTENEX01PTk9DSFJPTUUJMAogI2RlZmluZSBMQ0RfQ09MT1IyCTEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGg3YTQweC5oIGIvaW5jbHVkZS9saDdhNDB4LmgKaW5kZXggYzg5N2E3Yy4uMDlhNDYzYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saDdhNDB4LmgKKysrIGIvaW5jbHVkZS9saDdhNDB4LmgKQEAgLTI3Myw3ICsyNzMsNyBAQAogI2RlZmluZSBMSDdBNDBYX0dQSU9JTlRfUFRSICAgICAoKGxoN2E0MHhfZ3Bpb2ludF90KikgTEg3QTQwWF9HUElPSU5UX0JBU0UpCiAKIC8qIEVtYmVkZGVkIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX1NSQU1fQkFTRQkoMHhCMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1NSQU1fU0laRQkoODAqMTAyNCkJLyogODBrQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fQkFTRQkoMHhCMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX1NJWkUJKDgwKjEwMjQpCS8qIDgwa0IgKi8KIAogI2VuZGlmICAvKiBfX0xIN0E0MFhfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL21paXBoeS5oIGIvaW5jbHVkZS9taWlwaHkuaAppbmRleCA1NTE4YTBhLi4zMmYwYTYxIDEwMDY0NAotLS0gYS9pbmNsdWRlL21paXBoeS5oCisrKyBiL2luY2x1ZGUvbWlpcGh5LmgKQEAgLTQyLDcgKzQyLDcgQEAKIGludCBtaWlwaHlfc3BlZWQgKGNoYXIgKmRldm5hbWUsIHVuc2lnbmVkIGNoYXIgYWRkcik7CiBpbnQgbWlpcGh5X2R1cGxleCAoY2hhciAqZGV2bmFtZSwgdW5zaWduZWQgY2hhciBhZGRyKTsKIGludCBtaWlwaHlfaXNfMTAwMGJhc2VfeCAoY2hhciAqZGV2bmFtZSwgdW5zaWduZWQgY2hhciBhZGRyKTsKLSNpZmRlZiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KKyNpZmRlZiBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiBpbnQgbWlpcGh5X2xpbmsgKGNoYXIgKmRldm5hbWUsIHVuc2lnbmVkIGNoYXIgYWRkcik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tazQ4dDU5LmggYi9pbmNsdWRlL21rNDh0NTkuaAppbmRleCBhNDQ1OWMwLi5lMjEzZmI4IDEwMDY0NAotLS0gYS9pbmNsdWRlL21rNDh0NTkuaAorKysgYi9pbmNsdWRlL21rNDh0NTkuaApAQCAtMjgsOSArMjgsOSBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfUlRDX01LNDhUNTkpICYmIGRlZmluZWQoQ09ORklHX0NNRF9EQVRFKQogCi0jZGVmaW5lIFJUQ19QT1JUX0FERFIwCQlDRkdfSVNBX0lPICsgIDB4NzAKKyNkZWZpbmUgUlRDX1BPUlRfQUREUjAJCUNPTkZJR19TWVNfSVNBX0lPICsgIDB4NzAKICNkZWZpbmUgUlRDX1BPUlRfQUREUjEJCVJUQ19QT1JUX0FERFIwICsgIDB4MQotI2RlZmluZSBSVENfUE9SVF9EQVRBCQlDRkdfSVNBX0lPICsgIDB4NzYKKyNkZWZpbmUgUlRDX1BPUlRfREFUQQkJQ09ORklHX1NZU19JU0FfSU8gKyAgMHg3NgogCiAvKiBSVEMgT2Zmc2V0cyAqLwogI2RlZmluZSBSVENfU0VDT05EUyAgICAgICAgICAgICAweDFGRjkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbXBjMTA2LmggYi9pbmNsdWRlL21wYzEwNi5oCmluZGV4IDEwZWQwZjQuLmVmNWE5NWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbXBjMTA2LmgKKysrIGIvaW5jbHVkZS9tcGMxMDYuaApAQCAtMzUsNyArMzUsNyBAQAogICovCiAjZGVmaW5lCU1QQzEwNl9SRUcJCQkweDgwMDAwMDAwCiAKLSNpZmRlZiBDRkdfQUREUkVTU19NQVBfQQorI2lmZGVmIENPTkZJR19TWVNfQUREUkVTU19NQVBfQQogI2RlZmluZSBNUEMxMDZfUkVHX0FERFIJCQkweDgwMDAwY2Y4CiAjZGVmaW5lCU1QQzEwNl9SRUdfREFUQQkJCTB4ODAwMDBjZmMKICNkZWZpbmUgTVBDMTA2X0lTQV9JT19QSFlTCQkweDgwMDAwMDAwCmRpZmYgLS1naXQgYS9pbmNsdWRlL21wYzUxMnguaCBiL2luY2x1ZGUvbXBjNTEyeC5oCmluZGV4IGNiNDE4ZDEuLjA1YTIwNjMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbXBjNTEyeC5oCisrKyBiL2luY2x1ZGUvbXBjNTEyeC5oCkBAIC01NzIsNyArNTcyLDcgQEAKICNkZWZpbmUgSU9DVFJMX01VWF9ERFIJCTB4MDAwMDAwMzYKIAogIC8qIFJlZ2lzdGVyIE9mZnNldCBCYXNlICovCi0jZGVmaW5lIE1QQzUxMlhfRkVDCQkoQ0ZHX0lNTVIgKyAweDAyODAwKQorI2RlZmluZSBNUEM1MTJYX0ZFQwkJKENPTkZJR19TWVNfSU1NUiArIDB4MDI4MDApCiAKIC8qIE51bWJlciBvZiBJMkMgYnVzZXMgKi8KICNkZWZpbmUgSTJDX0JVU19DTlQJMwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tcGM1eHguaCBiL2luY2x1ZGUvbXBjNXh4LmgKaW5kZXggNDE0NjUxZi4uZGU2ZDIxNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9tcGM1eHguaAorKysgYi9pbmNsdWRlL21wYzV4eC5oCkBAIC00Miw3ICs0Miw3IEBACiAgKiBJU0IgYml0IGluIElNTVIgdG8gc2V0IGludGVybmFsIG1lbW9yeSBtYXAKICAqLwogCi0jZGVmaW5lIENGR19JU0IJCQkoKENGR19JTU1SIC8gMHgwMDQwMDAwMCkgPDwgMSkKKyNkZWZpbmUgQ09ORklHX1NZU19JU0IJCQkoKENPTkZJR19TWVNfSU1NUiAvIDB4MDA0MDAwMDApIDw8IDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNZUENSIC0gU3lzdGVtIFByb3RlY3Rpb24gQ29udHJvbCBSZWdpc3RlcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tcGM1eHh4LmggYi9pbmNsdWRlL21wYzV4eHguaAppbmRleCAwZjViZWU1Li4zYTMyODIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL21wYzV4eHguaAorKysgYi9pbmNsdWRlL21wYzV4eHguaApAQCAtNTIsNzUgKzUyLDc1IEBACiAKIC8qIEludGVybmFsIG1lbW9yeSBtYXAgKi8KIAotI2RlZmluZSBNUEM1WFhYX0NTMF9TVEFSVAkoQ0ZHX01CQVIgKyAweDAwMDQpCi0jZGVmaW5lIE1QQzVYWFhfQ1MwX1NUT1AJKENGR19NQkFSICsgMHgwMDA4KQotI2RlZmluZSBNUEM1WFhYX0NTMV9TVEFSVAkoQ0ZHX01CQVIgKyAweDAwMGMpCi0jZGVmaW5lIE1QQzVYWFhfQ1MxX1NUT1AJKENGR19NQkFSICsgMHgwMDEwKQotI2RlZmluZSBNUEM1WFhYX0NTMl9TVEFSVAkoQ0ZHX01CQVIgKyAweDAwMTQpCi0jZGVmaW5lIE1QQzVYWFhfQ1MyX1NUT1AJKENGR19NQkFSICsgMHgwMDE4KQotI2RlZmluZSBNUEM1WFhYX0NTM19TVEFSVAkoQ0ZHX01CQVIgKyAweDAwMWMpCi0jZGVmaW5lIE1QQzVYWFhfQ1MzX1NUT1AJKENGR19NQkFSICsgMHgwMDIwKQotI2RlZmluZSBNUEM1WFhYX0NTNF9TVEFSVAkoQ0ZHX01CQVIgKyAweDAwMjQpCi0jZGVmaW5lIE1QQzVYWFhfQ1M0X1NUT1AJKENGR19NQkFSICsgMHgwMDI4KQotI2RlZmluZSBNUEM1WFhYX0NTNV9TVEFSVAkoQ0ZHX01CQVIgKyAweDAwMmMpCi0jZGVmaW5lIE1QQzVYWFhfQ1M1X1NUT1AJKENGR19NQkFSICsgMHgwMDMwKQotI2RlZmluZSBNUEM1WFhYX0JPT1RDU19TVEFSVAkoQ0ZHX01CQVIgKyAweDAwNGMpCi0jZGVmaW5lIE1QQzVYWFhfQk9PVENTX1NUT1AJKENGR19NQkFSICsgMHgwMDUwKQotI2RlZmluZSBNUEM1WFhYX0FEREVDUgkJKENGR19NQkFSICsgMHgwMDU0KQorI2RlZmluZSBNUEM1WFhYX0NTMF9TVEFSVAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDA0KQorI2RlZmluZSBNUEM1WFhYX0NTMF9TVE9QCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDgpCisjZGVmaW5lIE1QQzVYWFhfQ1MxX1NUQVJUCShDT05GSUdfU1lTX01CQVIgKyAweDAwMGMpCisjZGVmaW5lIE1QQzVYWFhfQ1MxX1NUT1AJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxMCkKKyNkZWZpbmUgTVBDNVhYWF9DUzJfU1RBUlQJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxNCkKKyNkZWZpbmUgTVBDNVhYWF9DUzJfU1RPUAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE4KQorI2RlZmluZSBNUEM1WFhYX0NTM19TVEFSVAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDFjKQorI2RlZmluZSBNUEM1WFhYX0NTM19TVE9QCShDT05GSUdfU1lTX01CQVIgKyAweDAwMjApCisjZGVmaW5lIE1QQzVYWFhfQ1M0X1NUQVJUCShDT05GSUdfU1lTX01CQVIgKyAweDAwMjQpCisjZGVmaW5lIE1QQzVYWFhfQ1M0X1NUT1AJKENPTkZJR19TWVNfTUJBUiArIDB4MDAyOCkKKyNkZWZpbmUgTVBDNVhYWF9DUzVfU1RBUlQJKENPTkZJR19TWVNfTUJBUiArIDB4MDAyYykKKyNkZWZpbmUgTVBDNVhYWF9DUzVfU1RPUAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDMwKQorI2RlZmluZSBNUEM1WFhYX0JPT1RDU19TVEFSVAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDRjKQorI2RlZmluZSBNUEM1WFhYX0JPT1RDU19TVE9QCShDT05GSUdfU1lTX01CQVIgKyAweDAwNTApCisjZGVmaW5lIE1QQzVYWFhfQURERUNSCQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDU0KQogCiAjaWYgZGVmaW5lZChDT05GSUdfTUdUNTEwMCkKLSNkZWZpbmUgTVBDNVhYWF9TRFJBTV9TVEFSVAkoQ0ZHX01CQVIgKyAweDAwMzQpCi0jZGVmaW5lIE1QQzVYWFhfU0RSQU1fU1RPUAkoQ0ZHX01CQVIgKyAweDAwMzgpCi0jZGVmaW5lIE1QQzVYWFhfUENJMV9TVEFSVAkoQ0ZHX01CQVIgKyAweDAwM2MpCi0jZGVmaW5lIE1QQzVYWFhfUENJMV9TVE9QCShDRkdfTUJBUiArIDB4MDA0MCkKLSNkZWZpbmUgTVBDNVhYWF9QQ0kyX1NUQVJUCShDRkdfTUJBUiArIDB4MDA0NCkKLSNkZWZpbmUgTVBDNVhYWF9QQ0kyX1NUT1AJKENGR19NQkFSICsgMHgwMDQ4KQorI2RlZmluZSBNUEM1WFhYX1NEUkFNX1NUQVJUCShDT05GSUdfU1lTX01CQVIgKyAweDAwMzQpCisjZGVmaW5lIE1QQzVYWFhfU0RSQU1fU1RPUAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDM4KQorI2RlZmluZSBNUEM1WFhYX1BDSTFfU1RBUlQJKENPTkZJR19TWVNfTUJBUiArIDB4MDAzYykKKyNkZWZpbmUgTVBDNVhYWF9QQ0kxX1NUT1AJKENPTkZJR19TWVNfTUJBUiArIDB4MDA0MCkKKyNkZWZpbmUgTVBDNVhYWF9QQ0kyX1NUQVJUCShDT05GSUdfU1lTX01CQVIgKyAweDAwNDQpCisjZGVmaW5lIE1QQzVYWFhfUENJMl9TVE9QCShDT05GSUdfU1lTX01CQVIgKyAweDAwNDgpCiAjZWxpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQotI2RlZmluZSBNUEM1WFhYX0NTNl9TVEFSVAkoQ0ZHX01CQVIgKyAweDAwNTgpCi0jZGVmaW5lIE1QQzVYWFhfQ1M2X1NUT1AJKENGR19NQkFSICsgMHgwMDVjKQotI2RlZmluZSBNUEM1WFhYX0NTN19TVEFSVAkoQ0ZHX01CQVIgKyAweDAwNjApCi0jZGVmaW5lIE1QQzVYWFhfQ1M3X1NUT1AJKENGR19NQkFSICsgMHgwMDY0KQotI2RlZmluZSBNUEM1WFhYX1NEUkFNX0NTMENGRwkoQ0ZHX01CQVIgKyAweDAwMzQpCi0jZGVmaW5lIE1QQzVYWFhfU0RSQU1fQ1MxQ0ZHCShDRkdfTUJBUiArIDB4MDAzOCkKKyNkZWZpbmUgTVBDNVhYWF9DUzZfU1RBUlQJKENPTkZJR19TWVNfTUJBUiArIDB4MDA1OCkKKyNkZWZpbmUgTVBDNVhYWF9DUzZfU1RPUAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDVjKQorI2RlZmluZSBNUEM1WFhYX0NTN19TVEFSVAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDYwKQorI2RlZmluZSBNUEM1WFhYX0NTN19TVE9QCShDT05GSUdfU1lTX01CQVIgKyAweDAwNjQpCisjZGVmaW5lIE1QQzVYWFhfU0RSQU1fQ1MwQ0ZHCShDT05GSUdfU1lTX01CQVIgKyAweDAwMzQpCisjZGVmaW5lIE1QQzVYWFhfU0RSQU1fQ1MxQ0ZHCShDT05GSUdfU1lTX01CQVIgKyAweDAwMzgpCiAjZW5kaWYKIAotI2RlZmluZSBNUEM1WFhYX1NEUkFNCQkoQ0ZHX01CQVIgKyAweDAxMDApCi0jZGVmaW5lIE1QQzVYWFhfQ0RNCQkoQ0ZHX01CQVIgKyAweDAyMDApCi0jZGVmaW5lIE1QQzVYWFhfTFBCCQkoQ0ZHX01CQVIgKyAweDAzMDApCi0jZGVmaW5lIE1QQzVYWFhfSUNUTAkJKENGR19NQkFSICsgMHgwNTAwKQotI2RlZmluZSBNUEM1WFhYX0dQVAkJKENGR19NQkFSICsgMHgwNjAwKQotI2RlZmluZSBNUEM1WFhYX0dQSU8JCShDRkdfTUJBUiArIDB4MGIwMCkKLSNkZWZpbmUgTVBDNVhYWF9XVV9HUElPICAgICAgICAgKENGR19NQkFSICsgMHgwYzAwKQotI2RlZmluZSBNUEM1WFhYX1BDSQkJKENGR19NQkFSICsgMHgwZDAwKQotI2RlZmluZSBNUEM1WFhYX1NQSQkJKENGR19NQkFSICsgMHgwZjAwKQotI2RlZmluZSBNUEM1WFhYX1VTQgkJKENGR19NQkFSICsgMHgxMDAwKQotI2RlZmluZSBNUEM1WFhYX1NETUEJCShDRkdfTUJBUiArIDB4MTIwMCkKLSNkZWZpbmUgTVBDNVhYWF9YTEJBUkIJCShDRkdfTUJBUiArIDB4MWYwMCkKKyNkZWZpbmUgTVBDNVhYWF9TRFJBTQkJKENPTkZJR19TWVNfTUJBUiArIDB4MDEwMCkKKyNkZWZpbmUgTVBDNVhYWF9DRE0JCShDT05GSUdfU1lTX01CQVIgKyAweDAyMDApCisjZGVmaW5lIE1QQzVYWFhfTFBCCQkoQ09ORklHX1NZU19NQkFSICsgMHgwMzAwKQorI2RlZmluZSBNUEM1WFhYX0lDVEwJCShDT05GSUdfU1lTX01CQVIgKyAweDA1MDApCisjZGVmaW5lIE1QQzVYWFhfR1BUCQkoQ09ORklHX1NZU19NQkFSICsgMHgwNjAwKQorI2RlZmluZSBNUEM1WFhYX0dQSU8JCShDT05GSUdfU1lTX01CQVIgKyAweDBiMDApCisjZGVmaW5lIE1QQzVYWFhfV1VfR1BJTyAgICAgICAgIChDT05GSUdfU1lTX01CQVIgKyAweDBjMDApCisjZGVmaW5lIE1QQzVYWFhfUENJCQkoQ09ORklHX1NZU19NQkFSICsgMHgwZDAwKQorI2RlZmluZSBNUEM1WFhYX1NQSQkJKENPTkZJR19TWVNfTUJBUiArIDB4MGYwMCkKKyNkZWZpbmUgTVBDNVhYWF9VU0IJCShDT05GSUdfU1lTX01CQVIgKyAweDEwMDApCisjZGVmaW5lIE1QQzVYWFhfU0RNQQkJKENPTkZJR19TWVNfTUJBUiArIDB4MTIwMCkKKyNkZWZpbmUgTVBDNVhYWF9YTEJBUkIJCShDT05GSUdfU1lTX01CQVIgKyAweDFmMDApCiAKICNpZiBkZWZpbmVkKENPTkZJR19NR1Q1MTAwKQotI2RlZmluZQlNUEM1WFhYX1BTQzEJCShDRkdfTUJBUiArIDB4MjAwMCkKLSNkZWZpbmUJTVBDNVhYWF9QU0MyCQkoQ0ZHX01CQVIgKyAweDI0MDApCi0jZGVmaW5lCU1QQzVYWFhfUFNDMwkJKENGR19NQkFSICsgMHgyODAwKQorI2RlZmluZQlNUEM1WFhYX1BTQzEJCShDT05GSUdfU1lTX01CQVIgKyAweDIwMDApCisjZGVmaW5lCU1QQzVYWFhfUFNDMgkJKENPTkZJR19TWVNfTUJBUiArIDB4MjQwMCkKKyNkZWZpbmUJTVBDNVhYWF9QU0MzCQkoQ09ORklHX1NZU19NQkFSICsgMHgyODAwKQogI2VsaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKLSNkZWZpbmUJTVBDNVhYWF9QU0MxCQkoQ0ZHX01CQVIgKyAweDIwMDApCi0jZGVmaW5lCU1QQzVYWFhfUFNDMgkJKENGR19NQkFSICsgMHgyMjAwKQotI2RlZmluZQlNUEM1WFhYX1BTQzMJCShDRkdfTUJBUiArIDB4MjQwMCkKLSNkZWZpbmUJTVBDNVhYWF9QU0M0CQkoQ0ZHX01CQVIgKyAweDI2MDApCi0jZGVmaW5lCU1QQzVYWFhfUFNDNQkJKENGR19NQkFSICsgMHgyODAwKQotI2RlZmluZQlNUEM1WFhYX1BTQzYJCShDRkdfTUJBUiArIDB4MmMwMCkKKyNkZWZpbmUJTVBDNVhYWF9QU0MxCQkoQ09ORklHX1NZU19NQkFSICsgMHgyMDAwKQorI2RlZmluZQlNUEM1WFhYX1BTQzIJCShDT05GSUdfU1lTX01CQVIgKyAweDIyMDApCisjZGVmaW5lCU1QQzVYWFhfUFNDMwkJKENPTkZJR19TWVNfTUJBUiArIDB4MjQwMCkKKyNkZWZpbmUJTVBDNVhYWF9QU0M0CQkoQ09ORklHX1NZU19NQkFSICsgMHgyNjAwKQorI2RlZmluZQlNUEM1WFhYX1BTQzUJCShDT05GSUdfU1lTX01CQVIgKyAweDI4MDApCisjZGVmaW5lCU1QQzVYWFhfUFNDNgkJKENPTkZJR19TWVNfTUJBUiArIDB4MmMwMCkKICNlbmRpZgogCi0jZGVmaW5lCU1QQzVYWFhfRkVDCQkoQ0ZHX01CQVIgKyAweDMwMDApCi0jZGVmaW5lIE1QQzVYWFhfQVRBICAgICAgICAgICAgIChDRkdfTUJBUiArIDB4M0EwMCkKKyNkZWZpbmUJTVBDNVhYWF9GRUMJCShDT05GSUdfU1lTX01CQVIgKyAweDMwMDApCisjZGVmaW5lIE1QQzVYWFhfQVRBICAgICAgICAgICAgIChDT05GSUdfU1lTX01CQVIgKyAweDNBMDApCiAKLSNkZWZpbmUgTVBDNVhYWF9JMkMxCQkoQ0ZHX01CQVIgKyAweDNEMDApCi0jZGVmaW5lIE1QQzVYWFhfSTJDMgkJKENGR19NQkFSICsgMHgzRDQwKQorI2RlZmluZSBNUEM1WFhYX0kyQzEJCShDT05GSUdfU1lTX01CQVIgKyAweDNEMDApCisjZGVmaW5lIE1QQzVYWFhfSTJDMgkJKENPTkZJR19TWVNfTUJBUiArIDB4M0Q0MCkKIAogI2lmIGRlZmluZWQoQ09ORklHX01HVDUxMDApCi0jZGVmaW5lIE1QQzVYWFhfU1JBTQkJKENGR19NQkFSICsgMHg0MDAwKQorI2RlZmluZSBNUEM1WFhYX1NSQU0JCShDT05GSUdfU1lTX01CQVIgKyAweDQwMDApCiAjZGVmaW5lIE1QQzVYWFhfU1JBTV9TSVpFCSg4KjEwMjQpCiAjZWxpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQotI2RlZmluZSBNUEM1WFhYX1NSQU0JCShDRkdfTUJBUiArIDB4ODAwMCkKKyNkZWZpbmUgTVBDNVhYWF9TUkFNCQkoQ09ORklHX1NZU19NQkFSICsgMHg4MDAwKQogI2RlZmluZSBNUEM1WFhYX1NSQU1fU0laRQkoMTYqMTAyNCkKICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL21wYzgyMjAuaCBiL2luY2x1ZGUvbXBjODIyMC5oCmluZGV4IGQzYjE0NTcuLmM0OTAwYTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbXBjODIyMC5oCisrKyBiL2luY2x1ZGUvbXBjODIyMC5oCkBAIC0zOSwzNyArMzksMzcgQEAKIAogLyogSW50ZXJuYWwgbWVtb3J5IG1hcCAqLwogLyogTVBDODIyMCBJbnRlcm5hbCBSZWdpc3RlciBNTUFQICovCi0jZGVmaW5lIE1NQVBfTUJBUgkoQ0ZHX01CQVIgKyAweDAwMDAwMDAwKSAvKiBjaGlwIHNlbGVjdHMJCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9NRU1DVEwJKENGR19NQkFSICsgMHgwMDAwMDEwMCkgLyogc2RyYW0gY29udHJvbGxlcgkgICAgICovCi0jZGVmaW5lIE1NQVBfWExCQVJCCShDRkdfTUJBUiArIDB4MDAwMDAyMDApIC8qIHhsYiBhcmJpdHJhdGlvbiBjb250cm9sICAgKi8KLSNkZWZpbmUgTU1BUF9DRE0JKENGR19NQkFSICsgMHgwMDAwMDMwMCkgLyogY2xvY2sgZGlzdHJpYnV0aW9uIG1vZHVsZSAqLwotI2RlZmluZSBNTUFQX1ZET1BMTAkoQ0ZHX01CQVIgKyAweDAwMDAwNDAwKSAvKiB2aWRlbyBQTEwJCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9GQgkJKENGR19NQkFSICsgMHgwMDAwMDUwMCkgLyogZmxleCBidXMgY29udHJvbGxlcgkgICAgICovCi0jZGVmaW5lIE1NQVBfUENGRwkoQ0ZHX01CQVIgKyAweDAwMDAwNjAwKSAvKiBwb3J0IGNvbmZpZwkJICAgICAqLwotI2RlZmluZSBNTUFQX0lDVEwJKENGR19NQkFSICsgMHgwMDAwMDcwMCkgLyogaW50ZXJydXB0IGNvbnRyb2xsZXIJICAgICAqLwotI2RlZmluZSBNTUFQX0dQVE1SCShDRkdfTUJBUiArIDB4MDAwMDA4MDApIC8qIGdlbmVyYWwgcHVycG9zZSB0aW1lcnMgICAgKi8KLSNkZWZpbmUgTU1BUF9TTFRNUgkoQ0ZHX01CQVIgKyAweDAwMDAwOTAwKSAvKiBzbGljZSB0aW1lcnMJCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9HUElPCShDRkdfTUJBUiArIDB4MDAwMDBBMDApIC8qIGdwaW8gbW9kdWxlCQkgICAgICovCi0jZGVmaW5lIE1NQVBfWENQQ0kJKENGR19NQkFSICsgMHgwMDAwMEIwMCkgLyogcGNpIGNvbnRyb2xsZXIJICAgICAqLwotI2RlZmluZSBNTUFQX1BDSUFSQgkoQ0ZHX01CQVIgKyAweDAwMDAwQzAwKSAvKiBwY2kgYXJiaXRlcgkJICAgICAqLwotI2RlZmluZSBNTUFQX0VYVERNQTEJKENGR19NQkFSICsgMHgwMDAwMEQwMCkgLyogZXh0ZXJuYWwgZG1hMQkgICAgICovCi0jZGVmaW5lIE1NQVBfRVhURE1BMgkoQ0ZHX01CQVIgKyAweDAwMDAwRTAwKSAvKiBleHRlcm5hbCBkbWExCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9VU0JICShDRkdfTUJBUiArIDB4MDAwMDEwMDApIC8qIHVzYiBob3N0CQkgICAgICovCi0jZGVmaW5lIE1NQVBfQ01UTVIJKENGR19NQkFSICsgMHgwMDAwN2YwMCkgLyogY29tbSB0aW1lcnMJCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9ETUEJKENGR19NQkFSICsgMHgwMDAwODAwMCkgLyogZG1hCQkJICAgICAqLwotI2RlZmluZSBNTUFQX1VTQkQJKENGR19NQkFSICsgMHgwMDAwODIwMCkgLyogdXNiIGRldmljZQkJICAgICAqLwotI2RlZmluZSBNTUFQX0NPTU1QQ0kJKENGR19NQkFSICsgMHgwMDAwODQwMCkgLyogcGNpIGNvbW0gQnVzIHJlZ3MJICAgICAqLwotI2RlZmluZSBNTUFQXzEyODQJKENGR19NQkFSICsgMHgwMDAwODUwMCkgLyogMTI4NAkJCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9QRVYJKENGR19NQkFSICsgMHgwMDAwODYwMCkgLyogcHJpbnQgZW5naW5lIHZpZGVvCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9QU0MxCShDRkdfTUJBUiArIDB4MDAwMDg4MDApIC8qIHBzYzEgYmxvY2sJCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9JMkMJKENGR19NQkFSICsgMHgwMDAwOGYwMCkgLyogaTJjIGNvbnRyb2xsZXIJICAgICAqLwotI2RlZmluZSBNTUFQX0ZFQzEJKENGR19NQkFSICsgMHgwMDAwOTAwMCkgLyogZmFzdCBldGhlcm5ldCAxCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9GRUMyCShDRkdfTUJBUiArIDB4MDAwMDk4MDApIC8qIGZhc3QgZXRoZXJuZXQgMgkgICAgICovCi0jZGVmaW5lIE1NQVBfSkJJR1JBTQkoQ0ZHX01CQVIgKyAweDAwMDBhMDAwKSAvKiBqYmlnIFJBTQkJICAgICAqLwotI2RlZmluZSBNTUFQX0pCSUcJKENGR19NQkFSICsgMHgwMDAwYzAwMCkgLyogamJpZwkJCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9QRExBCShDRkdfTUJBUiArIDB4MDAwMTAwMDApIC8qCQkJICAgICAqLwotI2RlZmluZSBNTUFQX1NSQU1DRkcJKENGR19NQkFSICsgMHgwMDAxZmYwMCkgLyogU1JBTSBjb25maWcJCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9TUkFNCShDRkdfTUJBUiArIDB4MDAwMjAwMDApIC8qIFNSQU0JCQkgICAgICovCisjZGVmaW5lIE1NQVBfTUJBUgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDAwMCkgLyogY2hpcCBzZWxlY3RzCQkgICAgICovCisjZGVmaW5lIE1NQVBfTUVNQ1RMCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTAwKSAvKiBzZHJhbSBjb250cm9sbGVyCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9YTEJBUkIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAyMDApIC8qIHhsYiBhcmJpdHJhdGlvbiBjb250cm9sICAgKi8KKyNkZWZpbmUgTU1BUF9DRE0JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAzMDApIC8qIGNsb2NrIGRpc3RyaWJ1dGlvbiBtb2R1bGUgKi8KKyNkZWZpbmUgTU1BUF9WRE9QTEwJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDA0MDApIC8qIHZpZGVvIFBMTAkJICAgICAqLworI2RlZmluZSBNTUFQX0ZCCQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDUwMCkgLyogZmxleCBidXMgY29udHJvbGxlcgkgICAgICovCisjZGVmaW5lIE1NQVBfUENGRwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDYwMCkgLyogcG9ydCBjb25maWcJCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9JQ1RMCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNzAwKSAvKiBpbnRlcnJ1cHQgY29udHJvbGxlcgkgICAgICovCisjZGVmaW5lIE1NQVBfR1BUTVIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDA4MDApIC8qIGdlbmVyYWwgcHVycG9zZSB0aW1lcnMgICAgKi8KKyNkZWZpbmUgTU1BUF9TTFRNUgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDkwMCkgLyogc2xpY2UgdGltZXJzCQkgICAgICovCisjZGVmaW5lIE1NQVBfR1BJTwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMEEwMCkgLyogZ3BpbyBtb2R1bGUJCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9YQ1BDSQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMEIwMCkgLyogcGNpIGNvbnRyb2xsZXIJICAgICAqLworI2RlZmluZSBNTUFQX1BDSUFSQgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMEMwMCkgLyogcGNpIGFyYml0ZXIJCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9FWFRETUExCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwRDAwKSAvKiBleHRlcm5hbCBkbWExCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9FWFRETUEyCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwRTAwKSAvKiBleHRlcm5hbCBkbWExCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9VU0JICShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAxMDAwKSAvKiB1c2IgaG9zdAkJICAgICAqLworI2RlZmluZSBNTUFQX0NNVE1SCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA3ZjAwKSAvKiBjb21tIHRpbWVycwkJICAgICAqLworI2RlZmluZSBNTUFQX0RNQQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwODAwMCkgLyogZG1hCQkJICAgICAqLworI2RlZmluZSBNTUFQX1VTQkQJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDgyMDApIC8qIHVzYiBkZXZpY2UJCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9DT01NUENJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA4NDAwKSAvKiBwY2kgY29tbSBCdXMgcmVncwkgICAgICovCisjZGVmaW5lIE1NQVBfMTI4NAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwODUwMCkgLyogMTI4NAkJCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9QRVYJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDg2MDApIC8qIHByaW50IGVuZ2luZSB2aWRlbwkgICAgICovCisjZGVmaW5lIE1NQVBfUFNDMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwODgwMCkgLyogcHNjMSBibG9jawkJICAgICAqLworI2RlZmluZSBNTUFQX0kyQwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwOGYwMCkgLyogaTJjIGNvbnRyb2xsZXIJICAgICAqLworI2RlZmluZSBNTUFQX0ZFQzEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDkwMDApIC8qIGZhc3QgZXRoZXJuZXQgMQkgICAgICovCisjZGVmaW5lIE1NQVBfRkVDMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwOTgwMCkgLyogZmFzdCBldGhlcm5ldCAyCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9KQklHUkFNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDBhMDAwKSAvKiBqYmlnIFJBTQkJICAgICAqLworI2RlZmluZSBNTUFQX0pCSUcJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMGMwMDApIC8qIGpiaWcJCQkgICAgICovCisjZGVmaW5lIE1NQVBfUERMQQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAxMDAwMCkgLyoJCQkgICAgICovCisjZGVmaW5lIE1NQVBfU1JBTUNGRwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAxZmYwMCkgLyogU1JBTSBjb25maWcJCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9TUkFNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDIwMDAwKSAvKiBTUkFNCQkJICAgICAqLwogCiAjZGVmaW5lIFNSQU1fU0laRQkweDgwMDAJCQkvKiAzMiBLQiAqLwogCkBAIC0zMDEsMjMgKzMwMSwyMyBAQAogLyoKICAqIFBvcnQgY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19GRUMxX1BPUlQwX0NPTkZJRwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GRUMxX1BPUlQxX0NPTkZJRwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR18xMjg0X1BPUlQwX0NPTkZJRyAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfMTI4NF9QT1JUMV9DT05GSUcgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZFQzJfUE9SVDJfQ09ORklHCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BFVl9QT1JUMl9DT05GSUcgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUDBfUE9SVDBfQ09ORklHICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1AxX1BPUlQyX0NPTkZJRyAgIDB4YWFhYWFhYzAKLSNkZWZpbmUgQ0ZHX1BTQ19QT1JUM19DT05GSUcgICAweDAwMDIwMDAwCi0jZGVmaW5lIENGR19DUzFfUE9SVDNfQ09ORklHICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1MyX1BPUlQzX0NPTkZJRwkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19DUzNfUE9SVDNfQ09ORklHCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTNF9QT1JUM19DT05GSUcJMHgwMDAwMDQwMAotI2RlZmluZSBDRkdfQ1M1X1BPUlQzX0NPTkZJRwkweDAwMDAwMjAwCi0jZGVmaW5lIENGR19QQ0lfUE9SVDNfQ09ORklHICAgMHgwMTQwMDE4MAotI2RlZmluZSBDRkdfSTJDX1BPUlQzX0NPTkZJRyAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQMl9QT1JUM19DT05GSUcgICAweDAwMDIwMGEwCisjZGVmaW5lIENPTkZJR19TWVNfRkVDMV9QT1JUMF9DT05GSUcJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZFQzFfUE9SVDFfQ09ORklHCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU18xMjg0X1BPUlQwX0NPTkZJRyAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTXzEyODRfUE9SVDFfQ09ORklHICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkVDMl9QT1JUMl9DT05GSUcJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BFVl9QT1JUMl9DT05GSUcgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1AwX1BPUlQwX0NPTkZJRyAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUDFfUE9SVDJfQ09ORklHICAgMHhhYWFhYWFjMAorI2RlZmluZSBDT05GSUdfU1lTX1BTQ19QT1JUM19DT05GSUcgICAweDAwMDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1BPUlQzX0NPTkZJRyAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfUE9SVDNfQ09ORklHCTB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfUE9SVDNfQ09ORklHCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzRfUE9SVDNfQ09ORklHCTB4MDAwMDA0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzVfUE9SVDNfQ09ORklHCTB4MDAwMDAyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUE9SVDNfQ09ORklHICAgMHgwMTQwMDE4MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19QT1JUM19DT05GSUcgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1AyX1BPUlQzX0NPTkZJRyAgIDB4MDAwMjAwYTAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAvKgpAQCAtNTcxLDkgKzU3MSw5IEBACiAvKiBQQ0ktPlhMQiBzcGFjZSB0cmFuc2xhdGlvbiAoTVBDODIyMCB0YXJnZXQpLCByZWcwIGNhbiBhZGRyZXNzIG1heCAyNTZNQiwKICAgIHJlZzEgLSAxR0IgKi8KICNkZWZpbmUgUENJX0JBU0VfQUREUl9SRUcwCQkJMHg0MDAwMDAwMAotI2RlZmluZSBQQ0lfQkFTRV9BRERSX1JFRzEJCQkoQ0ZHX1NEUkFNX0JBU0UpCi0jZGVmaW5lIFBDSV9UQVJHRVRfQkFTRV9BRERSX1JFRzAJCShDRkdfTUJBUikKLSNkZWZpbmUgUENJX1RBUkdFVF9CQVNFX0FERFJfUkVHMQkJKENGR19TRFJBTV9CQVNFKQorI2RlZmluZSBQQ0lfQkFTRV9BRERSX1JFRzEJCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFKQorI2RlZmluZSBQQ0lfVEFSR0VUX0JBU0VfQUREUl9SRUcwCQkoQ09ORklHX1NZU19NQkFSKQorI2RlZmluZSBQQ0lfVEFSR0VUX0JBU0VfQUREUl9SRUcxCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFKQogI2RlZmluZSBQQ0lfVEFSR0VUX0JBU0VfQUREUl9FTgkJCTE8PDAKIAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL21wYzgyNHguaCBiL2luY2x1ZGUvbXBjODI0eC5oCmluZGV4IDMwZjAxZDUuLjVhYTkzNzAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbXBjODI0eC5oCisrKyBiL2luY2x1ZGUvbXBjODI0eC5oCkBAIC0xNTQsNyArMTU0LDcgQEAKICNkZWZpbmUgTUFQX0JfQ09ORklHX0RBVEFfTE9XCTB4MDAwMAkvKiBMb3dlciBoYWxmIG9mIENPTkZJR19EQVQgZm9yIE1hcCBCICovCiAKIAotI2lmIGRlZmluZWQoQ0ZHX0FERFJfTUFQX0EpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0FERFJfTUFQX0EpCiAjZGVmaW5lIENPTkZJR19BRERSX0hJR0ggICAgTUFQX0FfQ09ORklHX0FERFJfSElHSCAgLyogVXBwZXIgaGFsZiBvZiBDT05GSUdfQUREUiAqLwogI2RlZmluZSBDT05GSUdfQUREUl9MT1cJICAgIE1BUF9BX0NPTkZJR19BRERSX0xPVyAgIC8qIExvd2VyIGhhbGYgb2YgQ09ORklHX0FERFIgKi8KICNkZWZpbmUgQ09ORklHX0RBVEFfSElHSCAgICBNQVBfQV9DT05GSUdfREFUQV9ISUdIICAvKiBVcHBlciBoYWxmIG9mIENPTkZJR19EQVQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbXBjODZ4eC5oIGIvaW5jbHVkZS9tcGM4Nnh4LmgKaW5kZXggY2UzZDc4NC4uZjExOWQ1YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9tcGM4Nnh4LmgKKysrIGIvaW5jbHVkZS9tcGM4Nnh4LmgKQEAgLTE2LDkgKzE2LDkgQEAKICAqIHBsYXRmb3JtIHJlZ2lzdGVyIGFkZHJlc3NlcwogICovCiAKLSNkZWZpbmUgR1VUU19TVlIJKENGR19DQ1NSQkFSICsgMHhFMDBBNCkKLSNkZWZpbmUgTUNNX0FCQ1IJKENGR19DQ1NSQkFSICsgMHgwMTAwMCkKLSNkZWZpbmUgTUNNX0RCQ1IJKENGR19DQ1NSQkFSICsgMHgwMTAwOCkKKyNkZWZpbmUgR1VUU19TVlIJKENPTkZJR19TWVNfQ0NTUkJBUiArIDB4RTAwQTQpCisjZGVmaW5lIE1DTV9BQkNSCShDT05GSUdfU1lTX0NDU1JCQVIgKyAweDAxMDAwKQorI2RlZmluZSBNQ01fREJDUgkoQ09ORklHX1NZU19DQ1NSQkFSICsgMHgwMTAwOCkKIAogLyoKICAqIGwyY3IgdmFsdWVzLiAgTG9vayBpbiBjb25maWdfPEJPQVJEPi5oIGZvciB0aGUgYWN0dWFsIHNldHVwCmRpZmYgLS1naXQgYS9pbmNsdWRlL21wYzh4eF9pcnEuaCBiL2luY2x1ZGUvbXBjOHh4X2lycS5oCmluZGV4IGQyYTgxYzAuLjE1Y2Y2OTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbXBjOHh4X2lycS5oCisrKyBiL2luY2x1ZGUvbXBjOHh4X2lycS5oCkBAIC00NSw4ICs0NSw4IEBACiAgKiBNQlggUENJL0lTQS9JREUgaW50ZXJydXB0cy4KICAqLwogCi0jaWZkZWYgQ0ZHX0NQTV9JTlRFUlJVUFQKLSMgZGVmaW5lIENQTV9JTlRFUlJVUFQJCUNGR19DUE1fSU5URVJSVVBUCisjaWZkZWYgQ09ORklHX1NZU19DUE1fSU5URVJSVVBUCisjIGRlZmluZSBDUE1fSU5URVJSVVBUCQlDT05GSUdfU1lTX0NQTV9JTlRFUlJVUFQKICNlbHNlCiAjIGRlZmluZSBDUE1fSU5URVJSVVBUCQlTSVVfTEVWRUwyCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmFuZC5oIGIvaW5jbHVkZS9uYW5kLmgKaW5kZXggMzI5NmUxMC4uYjRmMzE2ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uYW5kLmgKKysrIGIvaW5jbHVkZS9uYW5kLmgKQEAgLTEyMiw3ICsxMjIsNyBAQAogaW50IG5hbmRfdW5sb2NrKCBuYW5kX2luZm9fdCAqbWVtaW5mbywgdWxvbmcgc3RhcnQsIHVsb25nIGxlbmd0aCApOwogaW50IG5hbmRfZ2V0X2xvY2tfc3RhdHVzKG5hbmRfaW5mb190ICptZW1pbmZvLCB1bG9uZyBvZmZzZXQpOwogCi0jaWZkZWYgQ0ZHX05BTkRfU0VMRUNUX0RFVklDRQorI2lmZGVmIENPTkZJR19TWVNfTkFORF9TRUxFQ1RfREVWSUNFCiB2b2lkIGJvYXJkX25hbmRfc2VsZWN0X2RldmljZShzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kLCBpbnQgY2hpcCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQuaCBiL2luY2x1ZGUvbmV0LmgKaW5kZXggNzlkZGZhMi4uYTVhMjU2YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQuaAorKysgYi9pbmNsdWRlL25ldC5oCkBAIC0zOCwxNiArMzgsMTYgQEAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQogI2lmIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMSkKICNkZWZpbmUJQ09ORklHX0VUSEVSX09OX0ZDQzEKLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSzEJQ0ZHX0NNWEZDUl9NQVNLCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFMQlDRkdfQ01YRkNSX1ZBTFVFCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLMQlDT05GSUdfU1lTX0NNWEZDUl9NQVNLCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTEJQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUKICNlbGlmIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMikKICNkZWZpbmUJQ09ORklHX0VUSEVSX09OX0ZDQzIKLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSzIJQ0ZHX0NNWEZDUl9NQVNLCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFMglDRkdfQ01YRkNSX1ZBTFVFCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLMglDT05GSUdfU1lTX0NNWEZDUl9NQVNLCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTIJQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUKICNlbGlmIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMykKICNkZWZpbmUJQ09ORklHX0VUSEVSX09OX0ZDQzMKLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSzMJQ0ZHX0NNWEZDUl9NQVNLCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFMwlDRkdfQ01YRkNSX1ZBTFVFCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLMwlDT05GSUdfU1lTX0NNWEZDUl9NQVNLCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTMJQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUKICNlbmRpZiAvKiBDT05GSUdfRVRIRVJfSU5ERVggKi8KICNlbmRpZiAvKiBDT05GSUdfRVRIRVJfT05fRkNDICovCiAjZW5kaWYgLyogIUNPTkZJR19ORVRfTVVMVEkgJiYgQ09ORklHXzgyNjAgKi8KQEAgLTYxLDggKzYxLDggQEAKICAqCiAgKi8KIAotI2lmZGVmIENGR19SWF9FVEhfQlVGRkVSCi0jIGRlZmluZSBQS1RCVUZTUlgJQ0ZHX1JYX0VUSF9CVUZGRVIKKyNpZmRlZiBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIKKyMgZGVmaW5lIFBLVEJVRlNSWAlDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIKICNlbHNlCiAjIGRlZmluZSBQS1RCVUZTUlgJNAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25zMTY1NTAuaCBiL2luY2x1ZGUvbnMxNjU1MC5oCmluZGV4IDM0ODg4YTEuLmU2YWRlNjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbnMxNjU1MC5oCisrKyBiL2luY2x1ZGUvbnMxNjU1MC5oCkBAIC0yLDcgKzIsNyBAQAogICogTlMxNjU1MCBTZXJpYWwgUG9ydAogICogb3JpZ2luYWxseSBmcm9tIGxpbnV4IHNvdXJjZSAoYXJjaC9wcGMvYm9vdC9uczE2NTUwLmgpCiAgKiBtb2RpZmllZCBzbGlnaHRseSB0bwotICogaGF2ZSBhZGRyZXNzZXMgYXMgb2Zmc2V0cyBmcm9tIENGR19JU0FfQkFTRQorICogaGF2ZSBhZGRyZXNzZXMgYXMgb2Zmc2V0cyBmcm9tIENPTkZJR19TWVNfSVNBX0JBU0UKICAqIGFkZGVkIGEgZmV3IG1vcmUgZGVmaW5pdGlvbnMKICAqIGFkZGVkIHByb3RvdHlwZXMgZm9yIG5zMTY1NTAuYwogICogcmVkdWNlZCBubyBvZiBjb20gcG9ydHMgdG8gMgpAQCAtMTIsNyArMTIsNyBAQAogICogYnkgUmljaGFyZCBEYW50ZXIgKHJpY2hhcmQuZGFudGVyQHdpbmRyaXZlci5jb20pLCAoQykgMjAwNSBXaW5kIFJpdmVyIFN5c3RlbXMKICAqLwogCi0jaWYgKENGR19OUzE2NTUwX1JFR19TSVpFID09IDEpCisjaWYgKENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSA9PSAxKQogc3RydWN0IE5TMTY1NTAgewogCXVuc2lnbmVkIGNoYXIgcmJyOwkJLyogMCAqLwogCXVuc2lnbmVkIGNoYXIgaWVyOwkJLyogMSAqLwpAQCAtMzUsNyArMzUsNyBAQAogCXVuc2lnbmVkIGNoYXIgc3NyOwkJLyogMTEqLwogI2VuZGlmCiB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKLSNlbGlmIChDRkdfTlMxNjU1MF9SRUdfU0laRSA9PSAyKQorI2VsaWYgKENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSA9PSAyKQogc3RydWN0IE5TMTY1NTAgewogCXVuc2lnbmVkIHNob3J0IHJicjsJCS8qIDAgKi8KIAl1bnNpZ25lZCBzaG9ydCBpZXI7CQkvKiAxICovCkBAIC00Niw3ICs0Niw3IEBACiAJdW5zaWduZWQgc2hvcnQgbXNyOwkJLyogNiAqLwogCXVuc2lnbmVkIHNob3J0IHNjcjsJCS8qIDcgKi8KIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwotI2VsaWYgKENGR19OUzE2NTUwX1JFR19TSVpFID09IDQpCisjZWxpZiAoQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFID09IDQpCiBzdHJ1Y3QgTlMxNjU1MCB7CiAJdW5zaWduZWQgbG9uZyByYnI7CQkvKiAwIHIgICovCiAJdW5zaWduZWQgbG9uZyBpZXI7CQkvKiAxIHJ3ICovCkBAIC01Nyw3ICs1Nyw3IEBACiAJdW5zaWduZWQgbG9uZyBtc3I7CQkvKiA2IHIgICovCiAJdW5zaWduZWQgbG9uZyBzY3I7CQkvKiA3IHJ3ICovCiB9OyAvKiBObyBuZWVkIHRvIHBhY2sgYW4gYWxyZWFkeSBhbGlnbmVkIHN0cnVjdCAqLwotI2VsaWYgKENGR19OUzE2NTUwX1JFR19TSVpFID09IC00KQorI2VsaWYgKENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSA9PSAtNCkKIHN0cnVjdCBOUzE2NTUwIHsKIAl1bnNpZ25lZCBjaGFyIHJicjsJCS8qIDAgKi8KIAlpbnQgcGFkMToyNDsKQEAgLTg1LDcgKzg1LDcgQEAKIAlpbnQgcGFkMTA6MjQ7CiAjZW5kaWYKIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwotI2VsaWYgKENGR19OUzE2NTUwX1JFR19TSVpFID09IC04KQorI2VsaWYgKENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSA9PSAtOCkKIHN0cnVjdCBOUzE2NTUwIHsKIAl1bnNpZ25lZCBjaGFyIHJicjsJCS8qIDAgKi8KIAl1bnNpZ25lZCBjaGFyIHBhZDBbN107CmRpZmYgLS1naXQgYS9pbmNsdWRlL25zODczMDguaCBiL2luY2x1ZGUvbnM4NzMwOC5oCmluZGV4IGZlZWI5NDAuLjYxNzdiYjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbnM4NzMwOC5oCisrKyBiL2luY2x1ZGUvbnM4NzMwOC5oCkBAIC03NCwxNSArNzQsMTUgQEAKICNkZWZpbmUgSU9fREFUQV9PRkZTRVRfMTAgIDB4MDE1RCAgLyogUG5QIG1vdGhlcmJvYXJkIG1vZGUgKi8KICNkZWZpbmUgSU9fREFUQV9PRkZTRVRfMTEgIDB4MDAyRiAgLyogUG5QIG1vdGhlcmJvYXJkIG1vZGUgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX05TODczMDhfQkFERFJfMHgpCi0jZGVmaW5lIElPX0lOREVYIChDRkdfSVNBX0lPICsgSU9fSU5ERVhfT0ZGU0VUXzB4KQotI2RlZmluZSBJT19EQVRBICAoQ0ZHX0lTQV9JTyArIElPX0RBVEFfT0ZGU0VUXzB4KQotI2VsaWYgZGVmaW5lZChDRkdfTlM4NzMwOF9CQUREUl8xMCkKLSNkZWZpbmUgSU9fSU5ERVggKENGR19JU0FfSU8gKyBJT19JTkRFWF9PRkZTRVRfMTApCi0jZGVmaW5lIElPX0RBVEEgIChDRkdfSVNBX0lPICsgSU9fREFUQV9PRkZTRVRfMTApCi0jZWxpZiBkZWZpbmVkKENGR19OUzg3MzA4X0JBRERSXzExKQotI2RlZmluZSBJT19JTkRFWCAoQ0ZHX0lTQV9JTyArIElPX0lOREVYX09GRlNFVF8xMSkKLSNkZWZpbmUgSU9fREFUQSAgKENGR19JU0FfSU8gKyBJT19EQVRBX09GRlNFVF8xMSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTlM4NzMwOF9CQUREUl8weCkKKyNkZWZpbmUgSU9fSU5ERVggKENPTkZJR19TWVNfSVNBX0lPICsgSU9fSU5ERVhfT0ZGU0VUXzB4KQorI2RlZmluZSBJT19EQVRBICAoQ09ORklHX1NZU19JU0FfSU8gKyBJT19EQVRBX09GRlNFVF8weCkKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19OUzg3MzA4X0JBRERSXzEwKQorI2RlZmluZSBJT19JTkRFWCAoQ09ORklHX1NZU19JU0FfSU8gKyBJT19JTkRFWF9PRkZTRVRfMTApCisjZGVmaW5lIElPX0RBVEEgIChDT05GSUdfU1lTX0lTQV9JTyArIElPX0RBVEFfT0ZGU0VUXzEwKQorI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTX05TODczMDhfQkFERFJfMTEpCisjZGVmaW5lIElPX0lOREVYIChDT05GSUdfU1lTX0lTQV9JTyArIElPX0lOREVYX09GRlNFVF8xMSkKKyNkZWZpbmUgSU9fREFUQSAgKENPTkZJR19TWVNfSVNBX0lPICsgSU9fREFUQV9PRkZTRVRfMTEpCiAjZW5kaWYKIAogLyogUG5QIHJlZ2lzdGVyIGRlZmluaXRpb25zICovCkBAIC0xMzIsMTYgKzEzMiwxNiBAQAogI2RlZmluZSBMREVWX0dQSU8gICAgICAgICAgIDB4MDcgICAgLypHZW5lcmFsIFB1cnBvc2UgSU8gYW5kIGNoaXAgc2VsZWN0IG91dHB1dCBzaWduYWxzKi8KICNkZWZpbmUgTERFVl9QT1dSTUFOICAgICAgICAweDA4ICAgIC8qUG93ZXIgTWFuYWdtZW50Ki8KIAotI2RlZmluZSBDRkdfTlM4NzMwOF9LQkMxCSgxIDw8IExERVZfS0JDMSkKLSNkZWZpbmUgQ0ZHX05TODczMDhfS0JDMgkoMSA8PCBMREVWX0tCQzIpCi0jZGVmaW5lIENGR19OUzg3MzA4X01PVVNFCSgxIDw8IExERVZfTU9VU0UpCi0jZGVmaW5lIENGR19OUzg3MzA4X1JUQ19BUEMJKDEgPDwgTERFVl9SVENfQVBDKQotI2RlZmluZSBDRkdfTlM4NzMwOF9GREMJCSgxIDw8IExERVZfRkRDKQotI2RlZmluZSBDRkdfTlM4NzMwOF9QQVJQCSgxIDw8IExERVZfUEFSUCkKLSNkZWZpbmUgQ0ZHX05TODczMDhfVUFSVDIJKDEgPDwgTERFVl9VQVJUMikKLSNkZWZpbmUgQ0ZHX05TODczMDhfVUFSVDEJKDEgPDwgTERFVl9VQVJUMSkKLSNkZWZpbmUgQ0ZHX05TODczMDhfR1BJTwkoMSA8PCBMREVWX0dQSU8pCi0jZGVmaW5lIENGR19OUzg3MzA4X1BPV1JNQU4JKDEgPDwgTERFVl9QT1dSTUFOKQorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfS0JDMQkoMSA8PCBMREVWX0tCQzEpCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9LQkMyCSgxIDw8IExERVZfS0JDMikKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X01PVVNFCSgxIDw8IExERVZfTU9VU0UpCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9SVENfQVBDCSgxIDw8IExERVZfUlRDX0FQQykKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0ZEQwkJKDEgPDwgTERFVl9GREMpCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9QQVJQCSgxIDw8IExERVZfUEFSUCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQyCSgxIDw8IExERVZfVUFSVDIpCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMQkoMSA8PCBMREVWX1VBUlQxKQorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfR1BJTwkoMSA8PCBMREVWX0dQSU8pCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9QT1dSTUFOCSgxIDw8IExERVZfUE9XUk1BTikKIAogLypzb21lIGZ1bmN0aW9ucyBhbmQgbWFjcm8ncyBmb3IgZG9pbmcgY29uZmlndXJhdGlvbiAqLwogCkBAIC0xNjQsOSArMTY0LDkgQEAKIAogc3RhdGljIGlubGluZSB2b2lkIHdyaXRlX3BtX3JlZyh1bnNpZ25lZCBzaG9ydCBiYXNlLCB1bnNpZ25lZCBjaGFyIGluZGV4LCB1bnNpZ25lZCBjaGFyIGRhdGEpCiB7Ci0gICAgcGNpX3dyaXRlYihpbmRleCwgQ0ZHX0lTQV9JTyArIGJhc2UpOworICAgIHBjaV93cml0ZWIoaW5kZXgsIENPTkZJR19TWVNfSVNBX0lPICsgYmFzZSk7CiAgICAgZWllaW8oKTsKLSAgICBwY2lfd3JpdGViKGRhdGEsIENGR19JU0FfSU8gKyBiYXNlICsgMSk7CisgICAgcGNpX3dyaXRlYihkYXRhLCBDT05GSUdfU1lTX0lTQV9JTyArIGJhc2UgKyAxKTsKIH0KIAogLyp2b2lkIHdyaXRlX3BucF9jb25maWcodW5zaWduZWQgY2hhciBpbmRleCwgdW5zaWduZWQgY2hhciBkYXRhKTsKQEAgLTIyOCwyMyArMjI4LDIzIEBACiAvKgogICogRGVmYXVsdCBOUzg3MzA4IGNvbmZpZ3VyYXRpb24KICAqLwotI2lmbmRlZiBDRkdfTlM4NzMwOF9LQkMxX0JBU0UKLSNkZWZpbmUgQ0ZHX05TODczMDhfS0JDMV9CQVNFCTB4MDA2MAorI2lmbmRlZiBDT05GSUdfU1lTX05TODczMDhfS0JDMV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9LQkMxX0JBU0UJMHgwMDYwCiAjZW5kaWYKLSNpZm5kZWYgQ0ZHX05TODczMDhfUlRDX0JBU0UKLSNkZWZpbmUgQ0ZHX05TODczMDhfUlRDX0JBU0UJMHgwMDcwCisjaWZuZGVmIENPTkZJR19TWVNfTlM4NzMwOF9SVENfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfUlRDX0JBU0UJMHgwMDcwCiAjZW5kaWYKLSNpZm5kZWYgQ0ZHX05TODczMDhfRkRDX0JBU0UKLSNkZWZpbmUgQ0ZHX05TODczMDhfRkRDX0JBU0UJMHgwM0YwCisjaWZuZGVmIENPTkZJR19TWVNfTlM4NzMwOF9GRENfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfRkRDX0JBU0UJMHgwM0YwCiAjZW5kaWYKLSNpZm5kZWYgQ0ZHX05TODczMDhfTFBUX0JBU0UKLSNkZWZpbmUgQ0ZHX05TODczMDhfTFBUX0JBU0UJMHgwMjc4CisjaWZuZGVmIENPTkZJR19TWVNfTlM4NzMwOF9MUFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfTFBUX0JBU0UJMHgwMjc4CiAjZW5kaWYKLSNpZm5kZWYgQ0ZHX05TODczMDhfVUFSVDFfQkFTRQotI2RlZmluZSBDRkdfTlM4NzMwOF9VQVJUMV9CQVNFCTB4MDNGOAorI2lmbmRlZiBDT05GSUdfU1lTX05TODczMDhfVUFSVDFfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfVUFSVDFfQkFTRQkweDAzRjgKICNlbmRpZgotI2lmbmRlZiBDRkdfTlM4NzMwOF9VQVJUMl9CQVNFCi0jZGVmaW5lIENGR19OUzg3MzA4X1VBUlQyX0JBU0UJMHgwMkY4CisjaWZuZGVmIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMl9CQVNFCTB4MDJGOAogI2VuZGlmCiAKICNlbmRpZiAvKl9OUzg3MzA4X0hfKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvcGNtY2lhLmggYi9pbmNsdWRlL3BjbWNpYS5oCmluZGV4IDczMDU4MDUuLmI2MDMyM2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcGNtY2lhLmgKKysrIGIvaW5jbHVkZS9wY21jaWEuaApAQCAtMTM4LDggKzEzOCw4IEBACiAgKglDb21tb24gTWVtb3J5IFNwYWNlCiAgKi8KIAotI2RlZmluZSBDRkdfUENNQ0lBX1BCUjAJCTB4RkUxMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9QT1IwCSAgICAoCVBDTUNJQV9CU0laRV8yCVwKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfUEJSMAkJMHhGRTEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9QT1IwCSAgICAoCVBDTUNJQV9CU0laRV8yCVwKIAkJCSAgICB8CVBDTUNJQV9QUFNfMTYJXAogCQkJICAgIHwJUENNQ0lBX1BSU19NRU0JXAogCQkJICAgIHwJUENNQ0lBX1NMT1RfeAlcCkBAIC0xNTMsOCArMTUzLDggQEAKICAqCUNvbW1vbiBNZW1vcnkgU3BhY2UKICAqLwogCi0jZGVmaW5lIENGR19QQ01DSUFfUEJSMQkJMHhGRTEwMDA4MAotI2RlZmluZSBDRkdfUENNQ0lBX1BPUjEJICAgICgJUENNQ0lBX0JTSVpFXzgJXAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9QQlIxCQkweEZFMTAwMDgwCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX1BPUjEJICAgICgJUENNQ0lBX0JTSVpFXzgJXAogCQkJICAgIHwJUENNQ0lBX1BQU184CVwKIAkJCSAgICB8CVBDTUNJQV9QUlNfTUVNCVwKIAkJCSAgICB8CVBDTUNJQV9TTE9UX3gJXApAQCAtMTY4LDggKzE2OCw4IEBACiAgKglDb21tb24gTWVtb3J5IFNwYWNlCiAgKi8KIAotI2RlZmluZSBDRkdfUENNQ0lBX1BCUjIJCTB4RkUxMDAxMDAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9QT1IyCSAgICAoCVBDTUNJQV9CU0laRV84CVwKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfUEJSMgkJMHhGRTEwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9QT1IyCSAgICAoCVBDTUNJQV9CU0laRV84CVwKIAkJCSAgICB8CVBDTUNJQV9QUFNfOAlcCiAJCQkgICAgfAlQQ01DSUFfUFJTX01FTQlcCiAJCQkgICAgfAlQQ01DSUFfU0xPVF94CVwKQEAgLTE3OSw4ICsxNzksOCBAQAogLyogV2luZG93IDM6CiAgKglub3QgdXNlZAogICovCi0jZGVmaW5lIENGR19QQ01DSUFfUEJSMwkJMAotI2RlZmluZSBDRkdfUENNQ0lBX1BPUjMJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfUEJSMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9QT1IzCQkwCiAKIC8qIFdpbmRvdyA0OgogICoJQmFzZTogMHhGRTEwMEMwMAlDUzEKQEAgLTE4OSw4ICsxODksOCBAQAogICoJQ29tbW9uIE1lbW9yeSBTcGFjZQogICovCiAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9QQlI0CQkweEZFMTAwQzAwCi0jZGVmaW5lIENGR19QQ01DSUFfUE9SNAkgICAgKAlQQ01DSUFfQlNJWkVfMglcCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX1BCUjQJCTB4RkUxMDBDMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfUE9SNAkgICAgKAlQQ01DSUFfQlNJWkVfMglcCiAJCQkgICAgfAlQQ01DSUFfUFBTXzE2CVwKIAkJCSAgICB8CVBDTUNJQV9QUlNfTUVNCVwKIAkJCSAgICB8CVBDTUNJQV9TTE9UX3gJXApAQCAtMjA0LDggKzIwNCw4IEBACiAgKglDb21tb24gTWVtb3J5IFNwYWNlCiAgKi8KIAotI2RlZmluZSBDRkdfUENNQ0lBX1BCUjUJCTB4RkUxMDBDODAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9QT1I1CSAgICAoCVBDTUNJQV9CU0laRV84CVwKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfUEJSNQkJMHhGRTEwMEM4MAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9QT1I1CSAgICAoCVBDTUNJQV9CU0laRV84CVwKIAkJCSAgICB8CVBDTUNJQV9QUFNfOAlcCiAJCQkgICAgfAlQQ01DSUFfUFJTX01FTQlcCiAJCQkgICAgfAlQQ01DSUFfU0xPVF94CVwKQEAgLTIxOSw4ICsyMTksOCBAQAogICoJQ29tbW9uIE1lbW9yeSBTcGFjZQogICovCiAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9QQlI2CQkweEZFMTAwRDAwCi0jZGVmaW5lIENGR19QQ01DSUFfUE9SNgkgICAgKAlQQ01DSUFfQlNJWkVfOAlcCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX1BCUjYJCTB4RkUxMDBEMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfUE9SNgkgICAgKAlQQ01DSUFfQlNJWkVfOAlcCiAJCQkgICAgfAlQQ01DSUFfUFBTXzgJXAogCQkJICAgIHwJUENNQ0lBX1BSU19NRU0JXAogCQkJICAgIHwJUENNQ0lBX1NMT1RfeAlcCkBAIC0yMzAsOCArMjMwLDggQEAKIC8qIFdpbmRvdyA3OgogICoJbm90IHVzZWQKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX1BCUjcJCTAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9QT1I3CQkwCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX1BCUjcJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfUE9SNwkJMAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wb3N0LmggYi9pbmNsdWRlL3Bvc3QuaAppbmRleCAxMjM2MjNmLi45NzU4M2I3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3Bvc3QuaAorKysgYi9pbmNsdWRlL3Bvc3QuaApAQCAtODIsMjggKzgyLDI4IEBACiAKICNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KIAotI2RlZmluZSBDRkdfUE9TVF9SVEMJCTB4MDAwMDAwMDEKLSNkZWZpbmUgQ0ZHX1BPU1RfV0FUQ0hET0cJMHgwMDAwMDAwMgotI2RlZmluZSBDRkdfUE9TVF9NRU1PUlkJCTB4MDAwMDAwMDQKLSNkZWZpbmUgQ0ZHX1BPU1RfQ1BVCQkweDAwMDAwMDA4Ci0jZGVmaW5lIENGR19QT1NUX0kyQwkJMHgwMDAwMDAxMAotI2RlZmluZSBDRkdfUE9TVF9DQUNIRQkJMHgwMDAwMDAyMAotI2RlZmluZSBDRkdfUE9TVF9VQVJUCQkweDAwMDAwMDQwCi0jZGVmaW5lIENGR19QT1NUX0VUSEVSCQkweDAwMDAwMDgwCi0jZGVmaW5lIENGR19QT1NUX1NQSQkJMHgwMDAwMDEwMAotI2RlZmluZSBDRkdfUE9TVF9VU0IJCTB4MDAwMDAyMDAKLSNkZWZpbmUgQ0ZHX1BPU1RfU1BSCQkweDAwMDAwNDAwCi0jZGVmaW5lIENGR19QT1NUX1NZU01PTgkJMHgwMDAwMDgwMAotI2RlZmluZSBDRkdfUE9TVF9EU1AJCTB4MDAwMDEwMDAKLSNkZWZpbmUgQ0ZHX1BPU1RfT0NNCQkweDAwMDAyMDAwCi0jZGVmaW5lIENGR19QT1NUX0ZQVQkJMHgwMDAwNDAwMAotI2RlZmluZSBDRkdfUE9TVF9FQ0MJCTB4MDAwMDgwMDAKLSNkZWZpbmUgQ0ZHX1BPU1RfQlNQRUMxCQkweDAwMDEwMDAwCi0jZGVmaW5lIENGR19QT1NUX0JTUEVDMgkJMHgwMDAyMDAwMAotI2RlZmluZSBDRkdfUE9TVF9CU1BFQzMJCTB4MDAwNDAwMDAKLSNkZWZpbmUgQ0ZHX1BPU1RfQlNQRUM0CQkweDAwMDgwMDAwCi0jZGVmaW5lIENGR19QT1NUX0JTUEVDNQkJMHgwMDEwMDAwMAotI2RlZmluZSBDRkdfUE9TVF9DT0RFQwkJMHgwMDIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfUlRDCQkweDAwMDAwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9XQVRDSERPRwkweDAwMDAwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9NRU1PUlkJCTB4MDAwMDAwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0NQVQkJMHgwMDAwMDAwOAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfSTJDCQkweDAwMDAwMDEwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9DQUNIRQkJMHgwMDAwMDAyMAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfVUFSVAkJMHgwMDAwMDA0MAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfRVRIRVIJCTB4MDAwMDAwODAKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1NQSQkJMHgwMDAwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfVVNCCQkweDAwMDAwMjAwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9TUFIJCTB4MDAwMDA0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1NZU01PTgkJMHgwMDAwMDgwMAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfRFNQCQkweDAwMDAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9PQ00JCTB4MDAwMDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0ZQVQkJMHgwMDAwNDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfRUNDCQkweDAwMDA4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9CU1BFQzEJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0JTUEVDMgkJMHgwMDAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfQlNQRUMzCQkweDAwMDQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9CU1BFQzQJCTB4MDAwODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0JTUEVDNQkJMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfQ09ERUMJCTB4MDAyMDAwMDAKIAogI2VuZGlmIC8qIENPTkZJR19QT1NUICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHBjNDA1LmggYi9pbmNsdWRlL3BwYzQwNS5oCmluZGV4IGYxOWI2N2YuLjkxN2FmZWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcHBjNDA1LmgKKysrIGIvaW5jbHVkZS9wcGM0MDUuaApAQCAtMjcsOSArMjcsOSBAQAogI2RlZmluZSBQUENfMTI4TUJfU0FDUl9WQUxVRShhZGRyKQlQUENfUkVHX1ZBTChQUENfMTI4TUJfU0FDUl9CSVQoYWRkciksMSkKIAogI2lmbmRlZiBDT05GSUdfSU9QNDgwCi0jZGVmaW5lIENGR19EQ0FDSEVfU0laRQkJKDE2IDw8IDEwKQkvKiBGb3IgQU1DQyA0MDUgQ1BVcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9TSVpFCQkoMTYgPDwgMTApCS8qIEZvciBBTUNDIDQwNSBDUFVzCSovCiAjZWxzZQotI2RlZmluZSBDRkdfRENBQ0hFX1NJWkUJCSgyIDw8IDEwKQkvKiBGb3IgUExYIElPUDQ4MCAoNDAzKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9TSVpFCQkoMiA8PCAxMCkJLyogRm9yIFBMWCBJT1A0ODAgKDQwMykJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wcGM0NDAuaCBiL2luY2x1ZGUvcHBjNDQwLmgKaW5kZXggYmU4ZDNmZi4uNjY0ZjgwMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wcGM0NDAuaAorKysgYi9pbmNsdWRlL3BwYzQ0MC5oCkBAIC00Niw3ICs0Niw3IEBACiAjaWZuZGVmIF9fUFBDNDQwX0hfXwogI2RlZmluZSBfX1BQQzQ0MF9IX18KIAotI2RlZmluZSBDRkdfRENBQ0hFX1NJWkUJCSgzMiA8PCAxMCkJLyogRm9yIEFNQ0MgNDQwIENQVXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EQ0FDSEVfU0laRQkJKDMyIDw8IDEwKQkvKiBGb3IgQU1DQyA0NDAgQ1BVcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogLyogU3BlY2lhbCBQdXJwb3NlIFJlZ2lzdGVycwkJCQkJCSovCkBAIC0xODg2LDE3ICsxODg2LDE3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB8IFBDSSBJbnRlcm5hbCBSZWdpc3RlcnMgZXQuIGFsLiAoYWNjZXNzZWQgdmlhIHBsYikKICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgUENJWDBfQ0ZHQURSCQkoQ0ZHX1BDSV9CQVNFICsgMHgwZWMwMDAwMCkKLSNkZWZpbmUgUENJWDBfQ0ZHREFUQQkJKENGR19QQ0lfQkFTRSArIDB4MGVjMDAwMDQpCi0jZGVmaW5lIFBDSVgwX0NGR0JBU0UJCShDRkdfUENJX0JBU0UgKyAweDBlYzgwMDAwKQotI2RlZmluZSBQQ0lYMF9JT0JBU0UJCShDRkdfUENJX0JBU0UgKyAweDA4MDAwMDAwKQorI2RlZmluZSBQQ0lYMF9DRkdBRFIJCShDT05GSUdfU1lTX1BDSV9CQVNFICsgMHgwZWMwMDAwMCkKKyNkZWZpbmUgUENJWDBfQ0ZHREFUQQkJKENPTkZJR19TWVNfUENJX0JBU0UgKyAweDBlYzAwMDA0KQorI2RlZmluZSBQQ0lYMF9DRkdCQVNFCQkoQ09ORklHX1NZU19QQ0lfQkFTRSArIDB4MGVjODAwMDApCisjZGVmaW5lIFBDSVgwX0lPQkFTRQkJKENPTkZJR19TWVNfUENJX0JBU0UgKyAweDA4MDAwMDAwKQogCiAjaWYgZGVmaW5lZChDT05GSUdfNDQwRVApIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfNDQwRVBYKSB8fCBkZWZpbmVkKENPTkZJR180NDBHUlgpCiAKIC8qIFBDSSBMb2NhbCBDb25maWd1cmF0aW9uIFJlZ2lzdGVycwogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0jZGVmaW5lIFBDSV9NTUlPX0xDUl9CQVNFIChDRkdfUENJX0JBU0UgKyAweDBmNDAwMDAwKSAgICAvKiBSZWFsID0+IDB4MEVGNDAwMDAwICovCisjZGVmaW5lIFBDSV9NTUlPX0xDUl9CQVNFIChDT05GSUdfU1lTX1BDSV9CQVNFICsgMHgwZjQwMDAwMCkgICAgLyogUmVhbCA9PiAweDBFRjQwMDAwMCAqLwogCiAvKiBQQ0kgTWFzdGVyIExvY2FsIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXJzICovCiAjZGVmaW5lIFBDSVgwX1BNTTBMQSAgICAgICAgIChQQ0lfTU1JT19MQ1JfQkFTRSArIDB4MDApIC8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLwpAQCAtMTk4MSw3ICsxOTgxLDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR180NDBFUFgpIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSWCkKIAogLyogVVNCMi4wIERldmljZSAqLwotI2RlZmluZSBVU0IyRDBfQkFTRSAgICAgICAgIENGR19VU0IyRDBfQkFTRQorI2RlZmluZSBVU0IyRDBfQkFTRSAgICAgICAgIENPTkZJR19TWVNfVVNCMkQwX0JBU0UKIAogI2RlZmluZSBVU0IyRDBfSU5UUklOICAgICAgIChVU0IyRDBfQkFTRSArIDB4MDAwMDAwMDApCiAKQEAgLTIwMTEsNyArMjAxMSw3IEBACiAjaWYgZGVmaW5lZChDT05GSUdfNDQwR1ApIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdYKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfNDQwU1ApIHx8IGRlZmluZWQoQ09ORklHXzQ0MFNQRSkgfHwgXAogICAgIGRlZmluZWQoQ09ORklHXzQ2MFNYKQotI2RlZmluZSBHUElPMF9CQVNFICAgICAgICAgICAgIChDRkdfUEVSSVBIRVJBTF9CQVNFKzB4MDAwMDA3MDApCisjZGVmaW5lIEdQSU8wX0JBU0UgICAgICAgICAgICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFKzB4MDAwMDA3MDApCiAKICNkZWZpbmUgR1BJTzBfT1IgICAgICAgICAgICAgICAoR1BJTzBfQkFTRSsweDApCiAjZGVmaW5lIEdQSU8wX1RDUiAgICAgICAgICAgICAgKEdQSU8wX0JBU0UrMHg0KQpAQCAtMjAyMiw4ICsyMDIyLDggQEAKICNpZiBkZWZpbmVkKENPTkZJR180NDBFUCkgfHwgZGVmaW5lZChDT05GSUdfNDQwR1IpIHx8IFwKICAgICBkZWZpbmVkKENPTkZJR180NDBFUFgpIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSWCkgfHwgXAogICAgIGRlZmluZWQoQ09ORklHXzQ2MEVYKSB8fCBkZWZpbmVkKENPTkZJR180NjBHVCkKLSNkZWZpbmUgR1BJTzBfQkFTRSAgICAgICAgICAgICAoQ0ZHX1BFUklQSEVSQUxfQkFTRSsweDAwMDAwQjAwKQotI2RlZmluZSBHUElPMV9CQVNFICAgICAgICAgICAgIChDRkdfUEVSSVBIRVJBTF9CQVNFKzB4MDAwMDBDMDApCisjZGVmaW5lIEdQSU8wX0JBU0UgICAgICAgICAgICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFKzB4MDAwMDBCMDApCisjZGVmaW5lIEdQSU8xX0JBU0UgICAgICAgICAgICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFKzB4MDAwMDBDMDApCiAKICNkZWZpbmUgR1BJTzBfT1IgICAgICAgICAgICAgICAoR1BJTzBfQkFTRSsweDApCiAjZGVmaW5lIEdQSU8wX1RDUiAgICAgICAgICAgICAgKEdQSU8wX0JBU0UrMHg0KQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wcGM0eHguaCBiL2luY2x1ZGUvcHBjNHh4LmgKaW5kZXggZTIxNjY2My4uY2U0YjI5YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wcGM0eHguaAorKysgYi9pbmNsdWRlL3BwYzR4eC5oCkBAIC0xMDcsOCArMTA3LDggQEAKICAqIEVuYWJsZSBsb25nIGxvbmcgKCVsbCAuLi4pIHByaW50ZiBmb3JtYXQgb24gNDQwIFBQQydzIHNpbmNlIG1vc3Qgb2YKICAqIHRoZW0gc3VwcG9ydCAzNmJpdCBwaHlzaWNhbCBhZGRyZXNzaW5nCiAgKi8KLSNkZWZpbmUgQ0ZHXzY0QklUX1ZTUFJJTlRGCi0jZGVmaW5lIENGR182NEJJVF9TVFJUT1VMCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYKKyNkZWZpbmUgQ09ORklHX1NZU182NEJJVF9TVFJUT1VMCiAjaW5jbHVkZSA8cHBjNDQwLmg+CiAjZWxzZQogI2luY2x1ZGUgPHBwYzQwNS5oPgpAQCAtMTQzLDcgKzE0Myw3IEBACiAjZGVmaW5lIF9TVEFSVF9PRkZTRVQJCShFWENfT0ZGX1NZU19SRVNFVCArIDB4MjAwMCkKIAogI2RlZmluZSBSRVNFVF9WRUNUT1IJMHhmZmZmZmZmYwotI2RlZmluZSBDQUNIRUxJTkVfTUFTSwkoQ0ZHX0NBQ0hFTElORV9TSVpFIC0gMSkgLyogQWRkcmVzcyBtYXNrIGZvciBjYWNoZQorI2RlZmluZSBDQUNIRUxJTkVfTUFTSwkoQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAtIDEpIC8qIEFkZHJlc3MgbWFzayBmb3IgY2FjaGUKIAkJCQkJCSAgICAgbGluZSBhbGlnbmVkIGRhdGEuICovCiAKICNkZWZpbmUgQ1BSMF9EQ1JfQkFTRQkweDBDCmRpZmYgLS1naXQgYS9pbmNsdWRlL3BwYzR4eF9lbmV0LmggYi9pbmNsdWRlL3BwYzR4eF9lbmV0LmgKaW5kZXggMDA2NjlhNy4uM2UxMDg4MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wcGM0eHhfZW5ldC5oCisrKyBiL2luY2x1ZGUvcHBjNHh4X2VuZXQuaApAQCAtMTcxLDkgKzE3MSw5IEBACiAjaWYgZGVmaW5lZChDT05GSUdfNDQwRVApIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfNDQwRVBYKSB8fCBkZWZpbmVkKENPTkZJR180NDBHUlgpIHx8IFwKICAgICBkZWZpbmVkKENPTkZJR180NjBFWCkgfHwgZGVmaW5lZChDT05GSUdfNDYwR1QpCi0jZGVmaW5lIFpNSUlfQkFTRQkJKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDBEMDApCisjZGVmaW5lIFpNSUlfQkFTRQkJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwRDAwKQogI2Vsc2UKLSNkZWZpbmUgWk1JSV9CQVNFCQkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDc4MCkKKyNkZWZpbmUgWk1JSV9CQVNFCQkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDA3ODApCiAjZW5kaWYKICNkZWZpbmUgWk1JSV9GRVIJCShaTUlJX0JBU0UpCiAjZGVmaW5lIFpNSUlfU1NSCQkoWk1JSV9CQVNFICsgNCkKQEAgLTIxNiwxMyArMjE2LDEzIEBACiAKIC8qIFJHTUlJIFJlZ2lzdGVyIEFkZHJlc3NlcyAqLwogI2lmIGRlZmluZWQoQ09ORklHXzQ0MEVQWCkgfHwgZGVmaW5lZChDT05GSUdfNDQwR1JYKQotI2RlZmluZSBSR01JSV9CQVNFCQkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MTAwMCkKKyNkZWZpbmUgUkdNSUlfQkFTRQkJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgxMDAwKQogI2VsaWYgZGVmaW5lZChDT05GSUdfNDYwRVgpIHx8IGRlZmluZWQoQ09ORklHXzQ2MEdUKQotI2RlZmluZSBSR01JSV9CQVNFCQkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MTUwMCkKKyNkZWZpbmUgUkdNSUlfQkFTRQkJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgxNTAwKQogI2VsaWYgZGVmaW5lZChDT05GSUdfNDA1RVgpCi0jZGVmaW5lIFJHTUlJX0JBU0UJCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHhCMDApCisjZGVmaW5lIFJHTUlJX0JBU0UJCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4QjAwKQogI2Vsc2UKLSNkZWZpbmUgUkdNSUlfQkFTRQkJKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA3OTApCisjZGVmaW5lIFJHTUlJX0JBU0UJCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDc5MCkKICNlbmRpZgogI2RlZmluZSBSR01JSV9GRVIJCShSR01JSV9CQVNFICsgMHgwMCkKICNkZWZpbmUgUkdNSUlfU1NSCQkoUkdNSUlfQkFTRSArIDB4MDQpCkBAIC0yNjAsNyArMjYwLDcgQEAKIHwgIFRDUC9JUCBBY2NlbGVyYXRpb24gSGFyZHdhcmUgKFRBSCkgNDQwR1ggT25seQogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjaWYgZGVmaW5lZChDT05GSUdfNDQwR1gpCi0jZGVmaW5lIFRBSF9CQVNFCQkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MEI1MCkKKyNkZWZpbmUgVEFIX0JBU0UJCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MEI1MCkKICNkZWZpbmUgVEFIX1JFVklECQkoVEFIX0JBU0UgKyAweDApICAgIC8qIFJldmlzaW9uIElEIChSTykqLwogI2RlZmluZSBUQUhfTVIJCQkoVEFIX0JBU0UgKyAweDEwKSAgIC8qIE1vZGUgUmVnaXN0ZXIgKFIvVykgKi8KICNkZWZpbmUgVEFIX1NTUjAJCShUQUhfQkFTRSArIDB4MTQpICAgLyogU2VnbWVudCBTaXplIFJlZyAwIChSL1cpICovCkBAIC0zMjYsOSArMzI2LDkgQEAKICNpZiBkZWZpbmVkKENPTkZJR180NDBFUCkgfHwgZGVmaW5lZChDT05GSUdfNDQwR1IpIHx8IFwKICAgICBkZWZpbmVkKENPTkZJR180NDBFUFgpIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSWCkgfHwgXAogICAgIGRlZmluZWQoQ09ORklHXzQ2MEVYKSB8fCBkZWZpbmVkKENPTkZJR180NjBHVCkKLSNkZWZpbmUgRU1BQ19CQVNFCQkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MEUwMCkKKyNkZWZpbmUgRU1BQ19CQVNFCQkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDBFMDApCiAjZWxzZQotI2RlZmluZSBFTUFDX0JBU0UJCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwODAwKQorI2RlZmluZSBFTUFDX0JBU0UJCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDgwMCkKICNlbmRpZgogI2Vsc2UKICNpZiBkZWZpbmVkKENPTkZJR180MDVFWikgfHwgZGVmaW5lZChDT05GSUdfNDA1RVgpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3BzMm11bHQuaCBiL2luY2x1ZGUvcHMybXVsdC5oCmluZGV4IGU2ODU4MTcuLjU5OWNiNmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcHMybXVsdC5oCisrKyBiL2luY2x1ZGUvcHMybXVsdC5oCkBAIC0yMiw3ICsyMiw3IEBACiAjZGVmaW5lCVBTMkJVRl9TSVpFCQkJNTEyCS8qIHBvd2VyIG9mIDIsIHBsZWFzZSAqLwogCiAjaWZuZGVmIENPTkZJR19QUzJNVUxUX0RFTEFZCi0jZGVmaW5lIENPTkZJR19QUzJNVUxUX0RFTEFZCShDRkdfSFovMikJLyogSW5pdGlhbCBkZWxheQkqLworI2RlZmluZSBDT05GSUdfUFMyTVVMVF9ERUxBWQkoQ09ORklHX1NZU19IWi8yKQkvKiBJbml0aWFsIGRlbGF5CSovCiAjZW5kaWYKIAogICAvKiBQUy8yIGNvbnRyb2xsZXIgaW50ZXJmYWNlIChpbmNsdWRlL2FzbS9rZXlib2FyZC5oKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9yYWRlb24uaCBiL2luY2x1ZGUvcmFkZW9uLmgKaW5kZXggMzU4NzVmMS4uZGE2YzI2YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yYWRlb24uaAorKysgYi9pbmNsdWRlL3JhZGVvbi5oCkBAIC01MTMsMTEgKzUxMywxMSBAQAogI2RlZmluZSBQTExfV1JfRU4JCQkweDAwMDAwMDgwCiAKIC8qIENPTkZJR19DTlRMIGJpdCBjb25zdGFudHMgKi8KLSNkZWZpbmUgQ0ZHX1ZHQV9SQU1fRU4JCQkweDAwMDAwMTAwCi0jZGVmaW5lIENGR19BVElfUkVWX0lEX01BU0sJCSgweGYgPDwgMTYpCi0jZGVmaW5lIENGR19BVElfUkVWX0ExMQkJCSgwIDw8IDE2KQotI2RlZmluZSBDRkdfQVRJX1JFVl9BMTIJCQkoMSA8PCAxNikKLSNkZWZpbmUgQ0ZHX0FUSV9SRVZfQTEzCQkJKDIgPDwgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfVkdBX1JBTV9FTgkJCTB4MDAwMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVElfUkVWX0lEX01BU0sJCSgweGYgPDwgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfQVRJX1JFVl9BMTEJCQkoMCA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19BVElfUkVWX0ExMgkJCSgxIDw8IDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0FUSV9SRVZfQTEzCQkJKDIgPDwgMTYpCiAKIC8qIENSVENfRVhUX0NOVEwgYml0IGNvbnN0YW50cyAqLwogI2RlZmluZSBWR0FfQVRJX0xJTkVBUgkJCTB4MDAwMDAwMDgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc2VyaWFsLmggYi9pbmNsdWRlL3NlcmlhbC5oCmluZGV4IDJiOTllNTMuLmUzZDhiMzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc2VyaWFsLmgKKysrIGIvaW5jbHVkZS9zZXJpYWwuaApAQCAtMjcsMTIgKzI3LDEyIEBACiAgICAgZGVmaW5lZChDT05GSUdfTVBDNXh4eCkKIGV4dGVybiBzdHJ1Y3Qgc2VyaWFsX2RldmljZSBzZXJpYWwwX2RldmljZTsKIGV4dGVybiBzdHJ1Y3Qgc2VyaWFsX2RldmljZSBzZXJpYWwxX2RldmljZTsKLSNpZiBkZWZpbmVkKENGR19OUzE2NTUwX1NFUklBTCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwpCiBleHRlcm4gc3RydWN0IHNlcmlhbF9kZXZpY2UgZXNlcmlhbDFfZGV2aWNlOwogZXh0ZXJuIHN0cnVjdCBzZXJpYWxfZGV2aWNlIGVzZXJpYWwyX2RldmljZTsKIGV4dGVybiBzdHJ1Y3Qgc2VyaWFsX2RldmljZSBlc2VyaWFsM19kZXZpY2U7CiBleHRlcm4gc3RydWN0IHNlcmlhbF9kZXZpY2UgZXNlcmlhbDRfZGV2aWNlOwotI2VuZGlmIC8qIENGR19OUzE2NTUwX1NFUklBTCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwgKi8KIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3RhdHVzX2xlZC5oIGIvaW5jbHVkZS9zdGF0dXNfbGVkLmgKaW5kZXggZDEyYmI2Ny4uNzliZTY5OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zdGF0dXNfbGVkLmgKKysrIGIvaW5jbHVkZS9zdGF0dXNfbGVkLmgKQEAgLTUwLDcgKzUwLDcgQEAKICMgZGVmaW5lIFNUQVRVU19MRURfREFUCQlpbV9jcG0uY3BfcGJkYXQKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4MDAwMDAwMDEKLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDRkdfSFogLyAyKQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENPTkZJR19TWVNfSFogLyAyKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAKICMgZGVmaW5lIFNUQVRVU19MRURfQUNUSVZFCTEJCS8qIExFRCBvbiBmb3IgYml0ID09IDEJKi8KQEAgLTY1LDcgKzY1LDcgQEAKICMgZGVmaW5lIFNUQVRVU19MRURfREFUCQlpbV9pb3BvcnQuaW9wX3BkZGF0CiAKICMgZGVmaW5lIFNUQVRVU19MRURfQklUCQkweDAwMDAwMDAxCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ0ZHX0haIC8gMikKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDT05GSUdfU1lTX0haIC8gMikKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJU1RBVFVTX0xFRF9CTElOS0lORwogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0FDVElWRQkxCQkvKiBMRUQgb24gZm9yIGJpdCA9PSAxCSovCkBAIC04MSw3ICs4MSw3IEBACiAjIGRlZmluZSBTVEFUVVNfTEVEX0RBVAkJaW1faW9wb3J0LmlvcF9wZGRhdAogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVAkJMHgwMDAwMDAwMQotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENGR19IWiAvIDIpCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ09ORklHX1NZU19IWiAvIDIpCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFCVNUQVRVU19MRURfQkxJTktJTkcKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMAkJLyogTEVEIG9uIGZvciBiaXQgPT0gMAkqLwpAQCAtOTcsMTYgKzk3LDE2IEBACiAjIGRlZmluZSBTVEFUVVNfTEVEX0RBVAkJCWltX2lvcG9ydC5pb3BfcGFkYXQKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCQkweDA4MDAJLyogUmVkIExFRCAwIGlzIG9uIFBBLjQJKi8KLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECQkoQ0ZHX0haIC8gNCkKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECQkoQ09ORklHX1NZU19IWiAvIDQpCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFCQlTVEFUVVNfTEVEX09GRgogIyBkZWZpbmUgU1RBVFVTX0xFRF9CSVQxCQkweDA0MDAJLyogR3JuIExFRCAxIGlzIG9uIFBBLjUJKi8KLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMQkJKENGR19IWiAvIDgpCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRDEJCShDT05GSUdfU1lTX0haIC8gOCkKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUxCQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVDIJCTB4MDA4MAkvKiBSZWQgTEVEIDIgaXMgb24gUEEuOAkqLwotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QyCQkoQ0ZHX0haIC8gNCkKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMgkJKENPTkZJR19TWVNfSFogLyA0KQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTIJCVNUQVRVU19MRURfT0ZGCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVDMJCTB4MDA0MAkvKiBHcm4gTEVEIDMgaXMgb24gUEEuOQkqLwotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QzCQkoQ0ZHX0haIC8gNCkKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMwkJKENPTkZJR19TWVNfSFogLyA0KQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTMJCVNUQVRVU19MRURfT0ZGCiAKICMgZGVmaW5lIFNUQVRVU19MRURfQUNUSVZFCQkxCS8qIExFRCBvbiBmb3IgYml0ID09IDEJKi8KQEAgLTEyMSwyMSArMTIxLDIxIEBACiAjIGRlZmluZSBTVEFUVVNfTEVEX0RBVAkJaW1fY3BtLmNwX3BiZGF0CiAKICMgZGVmaW5lIFNUQVRVU19MRURfQklUCQkweDAwMDAwMDEwCS8qIExFRCAwIGlzIG9uIFBCLjI3CSovCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoMSAqIENGR19IWikKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECSgxICogQ09ORklHX1NZU19IWikKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJU1RBVFVTX0xFRF9PRkYKICMgZGVmaW5lIFNUQVRVU19MRURfQklUMQkweDAwMDAwMDIwCS8qIExFRCAxIGlzIG9uIFBCLjI2CSovCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRDEJKDEgKiBDRkdfSFopCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRDEJKDEgKiBDT05GSUdfU1lTX0haKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTEJU1RBVFVTX0xFRF9PRkYKIC8qIElERSBMRUQgdXNhYmxlIGZvciBvdGhlciBwdXJwb3NlcywgdG9vICovCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVDIJMHgwMDAwMDAwOAkvKiBMRUQgMiBpcyBvbiBQQi4yOAkqLwotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QyCSgxICogQ0ZHX0haKQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QyCSgxICogQ09ORklHX1NZU19IWikKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUyCVNUQVRVU19MRURfT0ZGCiAKICMgZGVmaW5lIFNUQVRVU19MRURfQUNUSVZFCTEJCS8qIExFRCBvbiBmb3IgYml0ID09IDEJKi8KIAogIyBkZWZpbmUgU1RBVFVTX0lMT0NLX1NXSVRDSAkweDAwODAwMDAwCS8qIElMT0NLIHN3aXRjaCBpbiBJUlE0CSovCiAKLSMgZGVmaW5lIFNUQVRVU19JTE9DS19QRVJJT0QJKENGR19IWiAvIDEwKQkvKiBhYm91dCBldmVyeSAxMDAgbXMJKi8KKyMgZGVmaW5lIFNUQVRVU19JTE9DS19QRVJJT0QJKENPTkZJR19TWVNfSFogLyAxMCkJLyogYWJvdXQgZXZlcnkgMTAwIG1zCSovCiAKICMgZGVmaW5lIFNUQVRVU19MRURfWUVMTE9XCTAKICMgZGVmaW5lIFNUQVRVU19MRURfR1JFRU4JMQpAQCAtMTUwLDIxICsxNTAsMjEgQEAKICMgZGVmaW5lIFNUQVRVU19MRURfREFUCQlpbV9jcG0uY3BfcGJkYXQKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4MDAwMDAwMTAJLyogTEVEIDAgaXMgb24gUEIuMjcJKi8KLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECSgxICogQ0ZHX0haKQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKDEgKiBDT05GSUdfU1lTX0haKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQlTVEFUVVNfTEVEX09GRgogIyBkZWZpbmUgU1RBVFVTX0xFRF9CSVQxCTB4MDAwMDAwMjAJLyogTEVEIDEgaXMgb24gUEIuMjYJKi8KLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMQkoMSAqIENGR19IWikKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMQkoMSAqIENPTkZJR19TWVNfSFopCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFMQlTVEFUVVNfTEVEX09GRgogLyogSURFIExFRCB1c2FibGUgZm9yIG90aGVyIHB1cnBvc2VzLCB0b28gKi8KICMgZGVmaW5lIFNUQVRVU19MRURfQklUMgkweDAwMDAwMDA4CS8qIExFRCAyIGlzIG9uIFBCLjI4CSovCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRDIJKDEgKiBDRkdfSFopCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRDIJKDEgKiBDT05GSUdfU1lTX0haKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTIJU1RBVFVTX0xFRF9PRkYKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMQkJLyogTEVEIG9uIGZvciBiaXQgPT0gMQkqLwogCiAjIGRlZmluZSBTVEFUVVNfSUxPQ0tfU1dJVENICTB4MDAwMDQwMDAJLyogSUxPQ0sgaXMgb24gUEIuMTcJKi8KIAotIyBkZWZpbmUgU1RBVFVTX0lMT0NLX1BFUklPRAkoQ0ZHX0haIC8gMTApCS8qIGFib3V0IGV2ZXJ5IDEwMCBtcwkqLworIyBkZWZpbmUgU1RBVFVTX0lMT0NLX1BFUklPRAkoQ09ORklHX1NZU19IWiAvIDEwKQkvKiBhYm91dCBldmVyeSAxMDAgbXMJKi8KIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9ZRUxMT1cJMAogIyBkZWZpbmUgU1RBVFVTX0xFRF9HUkVFTgkxCkBAIC0xODMsNyArMTgzLDcgQEAKICMgZWxzZQogIyAgZGVmaW5lIFNUQVRVU19MRURfQklUCTB4MDgwMAogIyBlbmRpZgotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENGR19IWiAvIDIpCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ09ORklHX1NZU19IWiAvIDIpCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFCVNUQVRVU19MRURfQkxJTktJTkcKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMAkJLyogTEVEIG9uIGZvciBiaXQgPT0gMCAqLwpAQCAtMTk5LDcgKzE5OSw3IEBACiAjIGRlZmluZSBTVEFUVVNfTEVEX0RBVAkJaW1fY3BtLmNwX3BiZGF0CiAKICMgZGVmaW5lIFNUQVRVU19MRURfQklUCQkweDAwMDEwMDAwCS8qIGdyZWVuIExFRCBpcyBvbiBQQi4xNSAqLwotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENGR19IWiAvIDIpCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ09ORklHX1NZU19IWiAvIDIpCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFCVNUQVRVU19MRURfQkxJTktJTkcKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMQkJLyogTEVEIG9uIGZvciBiaXQgPT0gMSAqLwpAQCAtMjE1LDEwICsyMTUsMTAgQEAKICMgZGVmaW5lIFNUQVRVU19MRURfREFUCQlpbV9pb3BvcnQuaW9wX3BhZGF0CiAKICMgZGVmaW5lIFNUQVRVU19MRURfQklUCQkweDQwMDAJCS8qIExFRCAwIGlzIG9uIFBBLjEgKi8KLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDRkdfSFogLyAyKQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENPTkZJR19TWVNfSFogLyAyKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVDEJMHgxMDAwCQkvKiBMRUQgMSBpcyBvbiBQQS4zICovCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRDEJKENGR19IWikKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMQkoQ09ORklHX1NZU19IWikKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUxCVNUQVRVU19MRURfT0ZGCiAKICMgZGVmaW5lIFNUQVRVU19MRURfQUNUSVZFCTEJCS8qIExFRCBvbiBmb3IgYml0ID09IDEJKi8KQEAgLTI0NCwxMSArMjQ0LDExIEBACiAjZGVmaW5lIFNUQVRVU19MRURfREFUCQlpbV9pb3BvcnQuaW9wX3BkZGF0CiAKICMgZGVmaW5lIFNUQVRVU19MRURfQklUCQkweDAwODAJCQkvKiBQRC44ICovCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ0ZHX0haIC8gMikKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDT05GSUdfU1lTX0haIC8gMikKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJU1RBVFVTX0xFRF9CTElOS0lORwogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVDEJMHgwMDQwCQkJLyogUEQuOSAqLwotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QxCShDRkdfSFogLyAyKQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QxCShDT05GSUdfU1lTX0haIC8gMikKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUxCVNUQVRVU19MRURfT0ZGCiAKICMgZGVmaW5lIFNUQVRVU19MRURfQUNUSVZFCTAJCS8qIExFRCBvbiBmb3IgYml0ID09IDAJKi8KQEAgLTI2Myw3ICsyNjMsNyBAQAogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVAkJMHgyMDAwCQkvKiBTZWxlY3Qgb25lIG9mIHRoZSAxNiBwb3NzaWJsZSovCiAJCQkJCQkvKiBNSU9TIG91dHB1dHMgKi8KLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDRkdfSFogLyAyKQkvKiBCbGlua2luZyBwZXJpb2RlIGlzIDUwMCBtcyAqLworIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENPTkZJR19TWVNfSFogLyAyKQkvKiBCbGlua2luZyBwZXJpb2RlIGlzIDUwMCBtcyAqLwogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAKICMgZGVmaW5lIFNUQVRVU19MRURfQUNUSVZFCTEJCS8qIExFRCBvbiBmb3IgYml0ID09IDAJKi8KQEAgLTI3OCw3ICsyNzgsNyBAQAogIyBkZWZpbmUgU1RBVFVTX0xFRF9EQVQJCWltX2lvcG9ydC5pb3BfcGFkYXQKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4MDAwMDAzMDAgIC8qICBncmVlbiArIHJlZCAgICBQQVs4XT15ZWxsb3csICBQQVs3XT1yZWQsICBQQVs2XT1ncmVlbiAqLwotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENGR19IWiAvIDIpCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ09ORklHX1NZU19IWiAvIDIpCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFCVNUQVRVU19MRURfQkxJTktJTkcKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMQkJLyogTEVEIG9uIGZvciBiaXQgPT0gMQkqLwpAQCAtMjkyLDcgKzI5Miw3IEBACiAjIGRlZmluZSBTVEFUVVNfTEVEX0RBVCAgICAgICAgIGltX2NwbS5jcF9wYmRhdAogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVCAgICAgICAgIDB4MDAwMDAwMDEKLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EICAgICAgKENGR19IWiAvIDIpCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRCAgICAgIChDT05GSUdfU1lTX0haIC8gMikKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUgICAgICAgU1RBVFVTX0xFRF9CTElOS0lORwogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0FDVElWRSAgICAgIDEgICAgICAgICAgICAgICAvKiBMRUQgb24gZm9yIGJpdCA9PSAxICAqLwpAQCAtMzA4LDEwICszMDgsMTAgQEAKICMgZGVmaW5lIFNUQVRVU19MRURfREFUICAgICAgICAgaW1faW9wb3J0LmlvcF9wY2RhdAogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVCAgICAgICAgIDB4MDAwMiAgICAgICAgICAvKiBMRUQgMCBpcyBvbiBQQy4xNCAqLwotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QgICAgICAoQ0ZHX0haIC8gMikKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EICAgICAgKENPTkZJR19TWVNfSFogLyAyKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURSAgICAgICBTVEFUVVNfTEVEX0JMSU5LSU5HCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVDEgICAgICAgIDB4MDAwNCAgICAgICAgICAvKiBMRUQgMSBpcyBvbiBQQy4xMyAqLwotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QxICAgICAoQ0ZHX0haKQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QxICAgICAoQ09ORklHX1NZU19IWikKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUxICAgICAgU1RBVFVTX0xFRF9PRkYKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUgICAgICAxICAgICAgICAgICAgICAgLyogTEVEIG9uIGZvciBiaXQgPT0gMSAgKi8KQEAgLTMyNiw3ICszMjYsNyBAQAogIyBkZWZpbmUgU1RBVFVTX0xFRF9EQVQJCWltX2lvcG9ydC5pb3BfcGFkYXQKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4MDAwMDAwMDEJLyogTEVEIGlzIG9uIFBBMTUgKi8KLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDRkdfSFogLyAyKQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENPTkZJR19TWVNfSFogLyAyKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAKICMgZGVmaW5lIFNUQVRVU19MRURfQUNUSVZFCTEJCS8qIExFRCBvbiBmb3IgYml0ID09IDEJKi8KQEAgLTM0OSw3ICszNDksNyBAQAogI2VsaWYgZGVmaW5lZChDT05GSUdfVjM4QikKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4MDAxMAkJCS8qIFRpbWVyNyBHUElPICovCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ0ZHX0haIC8gMikKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDT05GSUdfU1lTX0haIC8gMikKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJU1RBVFVTX0xFRF9CTElOS0lORwogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0FDVElWRQkwCQkvKiBMRUQgb24gZm9yIGJpdCA9PSAwICovCkBAIC0zNTgsMTEgKzM1OCwxMSBAQAogI2VsaWYgZGVmaW5lZChDT05GSUdfTU9USU9OUFJPKQogCiAjZGVmaW5lIFNUQVRVU19MRURfQklUCQkoKHZ1X2xvbmcgKikgTVBDNVhYWF9HUFQ2X0VOQUJMRSkKLSNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENGR19IWiAvIDEwKQorI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ09ORklHX1NZU19IWiAvIDEwKQogI2RlZmluZSBTVEFUVVNfTEVEX1NUQVRFCVNUQVRVU19MRURfQkxJTktJTkcKIAogI2RlZmluZSBTVEFUVVNfTEVEX0JJVDEJCSgodnVfbG9uZyAqKSBNUEM1WFhYX0dQVDdfRU5BQkxFKQotI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRDEJKENGR19IWiAvIDEwKQorI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRDEJKENPTkZJR19TWVNfSFogLyAxMCkKICNkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTEJU1RBVFVTX0xFRF9PRkYKIAogI2RlZmluZSBTVEFUVVNfTEVEX0JPT1QJCTAJLyogTEVEIDAgdXNlZCBmb3IgYm9vdCBzdGF0dXMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdHNlYy5oIGIvaW5jbHVkZS90c2VjLmgKaW5kZXggZjdlNTg1Ny4uZDI5NTFmNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS90c2VjLmgKKysrIGIvaW5jbHVkZS90c2VjLmgKQEAgLTIwLDggKzIwLDggQEAKICNpbmNsdWRlIDxuZXQuaD4KICNpbmNsdWRlIDxjb25maWcuaD4KIAotI2lmbmRlZiBDRkdfVFNFQzFfT0ZGU0VUCi0gICAgI2RlZmluZSBDRkdfVFNFQzFfT0ZGU0VUCSgweDI0MDAwKQorI2lmbmRlZiBDT05GSUdfU1lTX1RTRUMxX09GRlNFVAorICAgICNkZWZpbmUgQ09ORklHX1NZU19UU0VDMV9PRkZTRVQJKDB4MjQwMDApCiAjZW5kaWYKIAogI2RlZmluZSBUU0VDX1NJWkUJMHgwMTAwMApAQCAtMjksNyArMjksNyBAQAogLyogRklYTUU6ICBTaG91bGQgdGhlc2UgYmUgcHVzaGVkIGJhY2sgdG8gODN4eCBhbmQgODV4eCBjb25maWcgZmlsZXM/ICovCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDODV4eCkgfHwgZGVmaW5lZChDT05GSUdfTVBDODZ4eCkgXAogCXx8IGRlZmluZWQoQ09ORklHX01QQzgzWFgpCi0gICAgI2RlZmluZSBUU0VDX0JBU0VfQUREUgkoQ0ZHX0lNTVIgKyBDRkdfVFNFQzFfT0ZGU0VUKQorICAgICNkZWZpbmUgVFNFQ19CQVNFX0FERFIJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfVFNFQzFfT0ZGU0VUKQogI2VuZGlmCiAKICNkZWZpbmUgU1REX1RTRUNfSU5GTyhudW0pIFwKQEAgLTEwNyw4ICsxMDcsOCBAQAogI2RlZmluZSBtaWltX2VuZCAtMgogI2RlZmluZSBtaWltX3JlYWQgLTEKIAotI2lmbmRlZiBDRkdfVEJJUEFfVkFMVUUKLSAgICAjZGVmaW5lIENGR19UQklQQV9WQUxVRQkweDFmCisjaWZuZGVmIENPTkZJR19TWVNfVEJJUEFfVkFMVUUKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfVEJJUEFfVkFMVUUJMHgxZgogI2VuZGlmCiAjZGVmaW5lIE1JSU1DRkdfSU5JVF9WQUxVRQkweDAwMDAwMDAzCiAjZGVmaW5lIE1JSU1DRkdfUkVTRVQJCTB4ODAwMDAwMDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdzgzYzU1M2YuaCBiL2luY2x1ZGUvdzgzYzU1M2YuaAppbmRleCA4OGVhOWRhLi42YTc2ZjVhIDEwMDY0NAotLS0gYS9pbmNsdWRlL3c4M2M1NTNmLmgKKysrIGIvaW5jbHVkZS93ODNjNTUzZi5oCkBAIC03MywzMCArNzMsMzAgQEAKIC8qCiAgKiBJbnRlcnJ1cHQgY29udHJvbGxlcgogICovCi0jZGVmaW5lIFc4M0M1NTNGX1BJQzFfSUNXMQlDRkdfSVNBX0lPICsgMHgyMAotI2RlZmluZSBXODNDNTUzRl9QSUMxX0lDVzIJQ0ZHX0lTQV9JTyArIDB4MjEKLSNkZWZpbmUgVzgzQzU1M0ZfUElDMV9JQ1czCUNGR19JU0FfSU8gKyAweDIxCi0jZGVmaW5lIFc4M0M1NTNGX1BJQzFfSUNXNAlDRkdfSVNBX0lPICsgMHgyMQotI2RlZmluZSBXODNDNTUzRl9QSUMxX09DVzEJQ0ZHX0lTQV9JTyArIDB4MjEKLSNkZWZpbmUgVzgzQzU1M0ZfUElDMV9PQ1cyCUNGR19JU0FfSU8gKyAweDIwCi0jZGVmaW5lIFc4M0M1NTNGX1BJQzFfT0NXMwlDRkdfSVNBX0lPICsgMHgyMAotI2RlZmluZSBXODNDNTUzRl9QSUMxX0VMQwlDRkdfSVNBX0lPICsgMHg0RDAKLSNkZWZpbmUgVzgzQzU1M0ZfUElDMl9JQ1cxCUNGR19JU0FfSU8gKyAweEEwCi0jZGVmaW5lIFc4M0M1NTNGX1BJQzJfSUNXMglDRkdfSVNBX0lPICsgMHhBMQotI2RlZmluZSBXODNDNTUzRl9QSUMyX0lDVzMJQ0ZHX0lTQV9JTyArIDB4QTEKLSNkZWZpbmUgVzgzQzU1M0ZfUElDMl9JQ1c0CUNGR19JU0FfSU8gKyAweEExCi0jZGVmaW5lIFc4M0M1NTNGX1BJQzJfT0NXMQlDRkdfSVNBX0lPICsgMHhBMQotI2RlZmluZSBXODNDNTUzRl9QSUMyX09DVzIJQ0ZHX0lTQV9JTyArIDB4QTAKLSNkZWZpbmUgVzgzQzU1M0ZfUElDMl9PQ1czCUNGR19JU0FfSU8gKyAweEEwCi0jZGVmaW5lIFc4M0M1NTNGX1BJQzJfRUxDCUNGR19JU0FfSU8gKyAweDREMQorI2RlZmluZSBXODNDNTUzRl9QSUMxX0lDVzEJQ09ORklHX1NZU19JU0FfSU8gKyAweDIwCisjZGVmaW5lIFc4M0M1NTNGX1BJQzFfSUNXMglDT05GSUdfU1lTX0lTQV9JTyArIDB4MjEKKyNkZWZpbmUgVzgzQzU1M0ZfUElDMV9JQ1czCUNPTkZJR19TWVNfSVNBX0lPICsgMHgyMQorI2RlZmluZSBXODNDNTUzRl9QSUMxX0lDVzQJQ09ORklHX1NZU19JU0FfSU8gKyAweDIxCisjZGVmaW5lIFc4M0M1NTNGX1BJQzFfT0NXMQlDT05GSUdfU1lTX0lTQV9JTyArIDB4MjEKKyNkZWZpbmUgVzgzQzU1M0ZfUElDMV9PQ1cyCUNPTkZJR19TWVNfSVNBX0lPICsgMHgyMAorI2RlZmluZSBXODNDNTUzRl9QSUMxX09DVzMJQ09ORklHX1NZU19JU0FfSU8gKyAweDIwCisjZGVmaW5lIFc4M0M1NTNGX1BJQzFfRUxDCUNPTkZJR19TWVNfSVNBX0lPICsgMHg0RDAKKyNkZWZpbmUgVzgzQzU1M0ZfUElDMl9JQ1cxCUNPTkZJR19TWVNfSVNBX0lPICsgMHhBMAorI2RlZmluZSBXODNDNTUzRl9QSUMyX0lDVzIJQ09ORklHX1NZU19JU0FfSU8gKyAweEExCisjZGVmaW5lIFc4M0M1NTNGX1BJQzJfSUNXMwlDT05GSUdfU1lTX0lTQV9JTyArIDB4QTEKKyNkZWZpbmUgVzgzQzU1M0ZfUElDMl9JQ1c0CUNPTkZJR19TWVNfSVNBX0lPICsgMHhBMQorI2RlZmluZSBXODNDNTUzRl9QSUMyX09DVzEJQ09ORklHX1NZU19JU0FfSU8gKyAweEExCisjZGVmaW5lIFc4M0M1NTNGX1BJQzJfT0NXMglDT05GSUdfU1lTX0lTQV9JTyArIDB4QTAKKyNkZWZpbmUgVzgzQzU1M0ZfUElDMl9PQ1czCUNPTkZJR19TWVNfSVNBX0lPICsgMHhBMAorI2RlZmluZSBXODNDNTUzRl9QSUMyX0VMQwlDT05GSUdfU1lTX0lTQV9JTyArIDB4NEQxCiAKLSNkZWZpbmUgVzgzQzU1M0ZfVE1SMV9DTU9ECUNGR19JU0FfSU8gKyAweDQzCisjZGVmaW5lIFc4M0M1NTNGX1RNUjFfQ01PRAlDT05GSUdfU1lTX0lTQV9JTyArIDB4NDMKIAogLyoKICAqIERNQSBjb250cm9sbGVyCiAgKi8KLSNkZWZpbmUgVzgzQzU1M0ZfRE1BMQlDRkdfSVNBX0lPICsgMHgwMDAJLyogY2hhbm5lbCAwIC0gMyAqLwotI2RlZmluZSBXODNDNTUzRl9ETUEyCUNGR19JU0FfSU8gKyAweDBDMAkvKiBjaGFubmVsIDQgLSA3ICovCisjZGVmaW5lIFc4M0M1NTNGX0RNQTEJQ09ORklHX1NZU19JU0FfSU8gKyAweDAwMAkvKiBjaGFubmVsIDAgLSAzICovCisjZGVmaW5lIFc4M0M1NTNGX0RNQTIJQ09ORklHX1NZU19JU0FfSU8gKyAweDBDMAkvKiBjaGFubmVsIDQgLSA3ICovCiAKIC8qIGNvbW1hbmQvc3RhdHVzIHJlZ2lzdGVyIGJpdCBkZWZpbml0aW9ucyAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hpbGlueC5oIGIvaW5jbHVkZS94aWxpbnguaAppbmRleCBhZDMzZTFmLi5mZGMzNTg3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3hpbGlueC5oCisrKyBiL2luY2x1ZGUveGlsaW54LmgKQEAgLTI5LDI1ICsyOSwyNSBAQAogCiAvKiBYaWxpbnggTW9kZWwgZGVmaW5pdGlvbnMKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIENGR19TUEFSVEFOMgkJCUNGR19GUEdBX0RFViggMHgxICkKLSNkZWZpbmUgQ0ZHX1ZJUlRFWF9FCQkJQ0ZHX0ZQR0FfREVWKCAweDIgKQotI2RlZmluZSBDRkdfVklSVEVYMgkJCUNGR19GUEdBX0RFViggMHg0ICkKLSNkZWZpbmUgQ0ZHX1NQQVJUQU4zCQkJQ0ZHX0ZQR0FfREVWKCAweDggKQotI2RlZmluZSBDRkdfWElMSU5YX1NQQVJUQU4yCShDRkdfRlBHQV9YSUxJTlggfCBDRkdfU1BBUlRBTjIpCi0jZGVmaW5lIENGR19YSUxJTlhfVklSVEVYX0UJKENGR19GUEdBX1hJTElOWCB8IENGR19WSVJURVhfRSkKLSNkZWZpbmUgQ0ZHX1hJTElOWF9WSVJURVgyCShDRkdfRlBHQV9YSUxJTlggfCBDRkdfVklSVEVYMikKLSNkZWZpbmUgQ0ZHX1hJTElOWF9TUEFSVEFOMwkoQ0ZHX0ZQR0FfWElMSU5YIHwgQ0ZHX1NQQVJUQU4zKQorI2RlZmluZSBDT05GSUdfU1lTX1NQQVJUQU4yCQkJQ09ORklHX1NZU19GUEdBX0RFViggMHgxICkKKyNkZWZpbmUgQ09ORklHX1NZU19WSVJURVhfRQkJCUNPTkZJR19TWVNfRlBHQV9ERVYoIDB4MiApCisjZGVmaW5lIENPTkZJR19TWVNfVklSVEVYMgkJCUNPTkZJR19TWVNfRlBHQV9ERVYoIDB4NCApCisjZGVmaW5lIENPTkZJR19TWVNfU1BBUlRBTjMJCQlDT05GSUdfU1lTX0ZQR0FfREVWKCAweDggKQorI2RlZmluZSBDT05GSUdfU1lTX1hJTElOWF9TUEFSVEFOMgkoQ09ORklHX1NZU19GUEdBX1hJTElOWCB8IENPTkZJR19TWVNfU1BBUlRBTjIpCisjZGVmaW5lIENPTkZJR19TWVNfWElMSU5YX1ZJUlRFWF9FCShDT05GSUdfU1lTX0ZQR0FfWElMSU5YIHwgQ09ORklHX1NZU19WSVJURVhfRSkKKyNkZWZpbmUgQ09ORklHX1NZU19YSUxJTlhfVklSVEVYMgkoQ09ORklHX1NZU19GUEdBX1hJTElOWCB8IENPTkZJR19TWVNfVklSVEVYMikKKyNkZWZpbmUgQ09ORklHX1NZU19YSUxJTlhfU1BBUlRBTjMJKENPTkZJR19TWVNfRlBHQV9YSUxJTlggfCBDT05GSUdfU1lTX1NQQVJUQU4zKQogLyogWFhYIC0gQWRkIG5ldyBtb2RlbHMgaGVyZSAqLwogCiAKIC8qIFhpbGlueCBJbnRlcmZhY2UgZGVmaW5pdGlvbnMKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIENGR19YSUxJTlhfSUZfU1MJQ0ZHX0ZQR0FfSUYoIDB4MSApCS8qIHNsYXZlIHNlcmlhbAkJKi8KLSNkZWZpbmUgQ0ZHX1hJTElOWF9JRl9NUwlDRkdfRlBHQV9JRiggMHgyICkJLyogbWFzdGVyIHNlcmlhbAkqLwotI2RlZmluZSBDRkdfWElMSU5YX0lGX1NQCUNGR19GUEdBX0lGKCAweDQgKQkvKiBzbGF2ZSBwYXJhbGxlbAkqLwotI2RlZmluZSBDRkdfWElMSU5YX0lGX0pUQUcJQ0ZHX0ZQR0FfSUYoIDB4OCApCS8qIGp0YWcJCQkqLwotI2RlZmluZSBDRkdfWElMSU5YX0lGX01TTQlDRkdfRlBHQV9JRiggMHgxMCApCS8qIG1hc3RlciBzZWxlY3RtYXAJKi8KLSNkZWZpbmUgQ0ZHX1hJTElOWF9JRl9TU00JQ0ZHX0ZQR0FfSUYoIDB4MjAgKQkvKiBzbGF2ZSBzZWxlY3RtYXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19YSUxJTlhfSUZfU1MJQ09ORklHX1NZU19GUEdBX0lGKCAweDEgKQkvKiBzbGF2ZSBzZXJpYWwJCSovCisjZGVmaW5lIENPTkZJR19TWVNfWElMSU5YX0lGX01TCUNPTkZJR19TWVNfRlBHQV9JRiggMHgyICkJLyogbWFzdGVyIHNlcmlhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX1hJTElOWF9JRl9TUAlDT05GSUdfU1lTX0ZQR0FfSUYoIDB4NCApCS8qIHNsYXZlIHBhcmFsbGVsCSovCisjZGVmaW5lIENPTkZJR19TWVNfWElMSU5YX0lGX0pUQUcJQ09ORklHX1NZU19GUEdBX0lGKCAweDggKQkvKiBqdGFnCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19YSUxJTlhfSUZfTVNNCUNPTkZJR19TWVNfRlBHQV9JRiggMHgxMCApCS8qIG1hc3RlciBzZWxlY3RtYXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19YSUxJTlhfSUZfU1NNCUNPTkZJR19TWVNfRlBHQV9JRiggMHgyMCApCS8qIHNsYXZlIHNlbGVjdG1hcAkqLwogCiAvKiBYaWxpbnggdHlwZXMKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCmRpZmYgLS1naXQgYS9saWJfYXJtL2JvYXJkLmMgYi9saWJfYXJtL2JvYXJkLmMKaW5kZXggZjAyZmRjOC4uNGJhMWY1ZSAxMDA2NDQKLS0tIGEvbGliX2FybS9ib2FyZC5jCisrKyBiL2xpYl9hcm0vYm9hcmQuYwpAQCAtOTUsNyArOTUsNyBAQAogdm9pZCBtZW1fbWFsbG9jX2luaXQgKHVsb25nIGRlc3RfYWRkcikKIHsKIAltZW1fbWFsbG9jX3N0YXJ0ID0gZGVzdF9hZGRyOwotCW1lbV9tYWxsb2NfZW5kID0gZGVzdF9hZGRyICsgQ0ZHX01BTExPQ19MRU47CisJbWVtX21hbGxvY19lbmQgPSBkZXN0X2FkZHIgKyBDT05GSUdfU1lTX01BTExPQ19MRU47CiAJbWVtX21hbGxvY19icmsgPSBtZW1fbWFsbG9jX3N0YXJ0OwogCiAJbWVtc2V0ICgodm9pZCAqKSBtZW1fbWFsbG9jX3N0YXJ0LCAwLApAQCAtMjAyLDE5ICsyMDIsMTkgQEAKIAlyZXR1cm4gKDApOwogfQogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiBzdGF0aWMgdm9pZCBkaXNwbGF5X2ZsYXNoX2NvbmZpZyAodWxvbmcgc2l6ZSkKIHsKIAlwdXRzICgiRmxhc2g6ICIpOwogCXByaW50X3NpemUgKHNpemUsICJcbiIpOwogfQotI2VuZGlmIC8qIENGR19OT19GTEFTSCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTk9fRkxBU0ggKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0hBUkRfSTJDKSB8fCBkZWZpbmVkKENPTkZJR19TT0ZUX0kyQykKIHN0YXRpYyBpbnQgaW5pdF9mdW5jX2kyYyAodm9pZCkKIHsKIAlwdXRzICgiSTJDOiAgICIpOwotCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAlwdXRzICgicmVhZHlcbiIpOwogCXJldHVybiAoMCk7CiB9CkBAIC0yNzQsNyArMjc0LDcgQEAKIHsKIAlpbml0X2ZuY190ICoqaW5pdF9mbmNfcHRyOwogCWNoYXIgKnM7Ci0jaWYgIWRlZmluZWQoQ0ZHX05PX0ZMQVNIKSB8fCBkZWZpbmVkIChDT05GSUdfVkZEKSB8fCBkZWZpbmVkKENPTkZJR19MQ0QpCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19OT19GTEFTSCkgfHwgZGVmaW5lZCAoQ09ORklHX1ZGRCkgfHwgZGVmaW5lZChDT05GSUdfTENEKQogCXVsb25nIHNpemU7CiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19WRkQpIHx8IGRlZmluZWQoQ09ORklHX0xDRCkKQEAgLTI4Miw3ICsyODIsNyBAQAogI2VuZGlmCiAKIAkvKiBQb2ludGVyIGlzIHdyaXRhYmxlIHNpbmNlIHdlIGFsbG9jYXRlZCBhIHJlZ2lzdGVyIGZvciBpdCAqLwotCWdkID0gKGdkX3QqKShfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOIC0gc2l6ZW9mKGdkX3QpKTsKKwlnZCA9IChnZF90KikoX2FybWJvb3Rfc3RhcnQgLSBDT05GSUdfU1lTX01BTExPQ19MRU4gLSBzaXplb2YoZ2RfdCkpOwogCS8qIGNvbXBpbGVyIG9wdGltaXphdGlvbiBiYXJyaWVyIG5lZWRlZCBmb3IgR0NDID49IDMuNCAqLwogCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiAKQEAgLTMwMCwxMSArMzAwLDExIEBACiAJCX0KIAl9CiAKLSNpZm5kZWYgQ0ZHX05PX0ZMQVNICisjaWZuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKIAkvKiBjb25maWd1cmUgYXZhaWxhYmxlIEZMQVNIIGJhbmtzICovCiAJc2l6ZSA9IGZsYXNoX2luaXQgKCk7CiAJZGlzcGxheV9mbGFzaF9jb25maWcgKHNpemUpOwotI2VuZGlmIC8qIENGR19OT19GTEFTSCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTk9fRkxBU0ggKi8KIAogI2lmZGVmIENPTkZJR19WRkQKICMJaWZuZGVmIFBBR0VfU0laRQpAQCAtMzM2LDcgKzMzNiw3IEBACiAjZW5kaWYgLyogQ09ORklHX0xDRCAqLwogCiAJLyogYXJtYm9vdF9zdGFydCBpcyBkZWZpbmVkIGluIHRoZSBib2FyZC1zcGVjaWZpYyBsaW5rZXIgc2NyaXB0ICovCi0JbWVtX21hbGxvY19pbml0IChfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOKTsKKwltZW1fbWFsbG9jX2luaXQgKF9hcm1ib290X3N0YXJ0IC0gQ09ORklHX1NZU19NQUxMT0NfTEVOKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9OQU5EKQogCXB1dHMgKCJOQU5EOiAgIik7CkBAIC00OTgsNyArNDk4LDcgQEAKIAkJCXNlcmlhbF9wdXRzKGluaXRfc3RyKTsKIAkJCXNlcmlhbF9wdXRzKCJcbiIpOwogCQkJZm9yKDs7KSB7Ci0JCQkJbWRtX3JlYWRsaW5lKGNvbnNvbGVfYnVmZmVyLCBDRkdfQ0JTSVpFKTsKKwkJCQltZG1fcmVhZGxpbmUoY29uc29sZV9idWZmZXIsIENPTkZJR19TWVNfQ0JTSVpFKTsKIAkJCQlkYmcoImluaSVkOiBbJXNdIiwgaSwgY29uc29sZV9idWZmZXIpOwogCiAJCQkJaWYgKChzdHJjbXAoY29uc29sZV9idWZmZXIsICJPSyIpID09IDApIHx8CkBAIC01MjIsNyArNTIyLDcgQEAKIAkvKiBmaW5hbCBzdGFnZSAtIHdhaXQgZm9yIGNvbm5lY3QgKi8KIAlmb3IoO2kgPiAxOykgeyAvKiBpZiAnaScgPiAxIC0gd2FpdCBmb3IgY29ubmVjdGlvbgogCQkJCSAgbWVzc2FnZSBmcm9tIG1vZGVtICovCi0JCW1kbV9yZWFkbGluZShjb25zb2xlX2J1ZmZlciwgQ0ZHX0NCU0laRSk7CisJCW1kbV9yZWFkbGluZShjb25zb2xlX2J1ZmZlciwgQ09ORklHX1NZU19DQlNJWkUpOwogCQlkYmcoImluaV9mOiBbJXNdIiwgY29uc29sZV9idWZmZXIpOwogCQlpZiAoc3RybmNtcChjb25zb2xlX2J1ZmZlciwgIkNPTk5FQ1QiLCA3KSA9PSAwKSB7CiAJCQlkYmcoImluaV9mOiBjb25uZWN0ZWQiKTsKZGlmZiAtLWdpdCBhL2xpYl9hdnIzMi9ib2FyZC5jIGIvbGliX2F2cjMyL2JvYXJkLmMKaW5kZXggZjNkMGM1Mi4uODc3MWRlOSAxMDA2NDQKLS0tIGEvbGliX2F2cjMyL2JvYXJkLmMKKysrIGIvbGliX2F2cjMyL2JvYXJkLmMKQEAgLTUyLDkgKzUyLDkgQEAKIHsKIAl1bnNpZ25lZCBsb25nIG1vbml0b3JfYWRkcjsKIAotCW1vbml0b3JfYWRkciA9IENGR19NT05JVE9SX0JBU0UgKyBnZC0+cmVsb2Nfb2ZmOworCW1vbml0b3JfYWRkciA9IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgZ2QtPnJlbG9jX29mZjsKIAltZW1fbWFsbG9jX2VuZCA9IG1vbml0b3JfYWRkcjsKLQltZW1fbWFsbG9jX3N0YXJ0ID0gbWVtX21hbGxvY19lbmQgLSBDRkdfTUFMTE9DX0xFTjsKKwltZW1fbWFsbG9jX3N0YXJ0ID0gbWVtX21hbGxvY19lbmQgLSBDT05GSUdfU1lTX01BTExPQ19MRU47CiAJbWVtX21hbGxvY19icmsgPSBtZW1fbWFsbG9jX3N0YXJ0OwogCiAJcHJpbnRmKCJtYWxsb2M6IFVzaW5nIG1lbW9yeSBmcm9tIDB4JTA4bHggdG8gMHglMDhseFxuIiwKQEAgLTc2LDcgKzc2LDcgQEAKIAlyZXR1cm4gKCh2b2lkICopb2xkKTsKIH0KIAotI2lmZGVmIENGR19ETUFfQUxMT0NfTEVOCisjaWZkZWYgQ09ORklHX1NZU19ETUFfQUxMT0NfTEVOCiAjaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KIApAQCAtODgsOSArODgsOSBAQAogewogCXVuc2lnbmVkIGxvbmcgbW9uaXRvcl9hZGRyOwogCi0JbW9uaXRvcl9hZGRyID0gQ0ZHX01PTklUT1JfQkFTRSArIGdkLT5yZWxvY19vZmY7Ci0JZG1hX2FsbG9jX2VuZCA9IG1vbml0b3JfYWRkciAtIENGR19NQUxMT0NfTEVOOwotCWRtYV9hbGxvY19zdGFydCA9IGRtYV9hbGxvY19lbmQgLSBDRkdfRE1BX0FMTE9DX0xFTjsKKwltb25pdG9yX2FkZHIgPSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIGdkLT5yZWxvY19vZmY7CisJZG1hX2FsbG9jX2VuZCA9IG1vbml0b3JfYWRkciAtIENPTkZJR19TWVNfTUFMTE9DX0xFTjsKKwlkbWFfYWxsb2Nfc3RhcnQgPSBkbWFfYWxsb2NfZW5kIC0gQ09ORklHX1NZU19ETUFfQUxMT0NfTEVOOwogCWRtYV9hbGxvY19icmsgPSBkbWFfYWxsb2Nfc3RhcnQ7CiAKIAlwcmludGYoIkRNQTogVXNpbmcgbWVtb3J5IGZyb20gMHglMDhseCB0byAweCUwOGx4XG4iLApAQCAtMTA3LDggKzEwNyw4IEBACiAJaWYgKGRtYV9hbGxvY19icmsgKyBsZW4gPiBkbWFfYWxsb2NfZW5kKQogCQlyZXR1cm4gTlVMTDsKIAotCWRtYV9hbGxvY19icmsgPSAoKHBhZGRyICsgbGVuICsgQ0ZHX0RDQUNIRV9MSU5FU1ogLSAxKQotCQkJICYgfihDRkdfRENBQ0hFX0xJTkVTWiAtIDEpKTsKKwlkbWFfYWxsb2NfYnJrID0gKChwYWRkciArIGxlbiArIENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWiAtIDEpCisJCQkgJiB+KENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWiAtIDEpKTsKIAogCSpoYW5kbGUgPSBwYWRkcjsKIAlyZXR1cm4gdW5jYWNoZWQocGFkZHIpOwpAQCAtMjA5LDcgKzIwOSw3IEBACiAJICogIC0gZ2xvYmFsIGRhdGEgc3RydWN0CiAJICogIC0gc3RhY2sKIAkgKi8KLQlhZGRyID0gQ0ZHX1NEUkFNX0JBU0UgKyBzZHJhbV9zaXplOworCWFkZHIgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBzZHJhbV9zaXplOwogCW1vbml0b3JfbGVuID0gX2VuZCAtIF90ZXh0OwogCiAJLyoKQEAgLTIyMSwxMiArMjIxLDEyIEBACiAJbW9uaXRvcl9hZGRyID0gYWRkcjsKIAogCS8qIFJlc2VydmUgbWVtb3J5IGZvciBtYWxsb2MoKSAqLwotCWFkZHIgLT0gQ0ZHX01BTExPQ19MRU47CisJYWRkciAtPSBDT05GSUdfU1lTX01BTExPQ19MRU47CiAKLSNpZmRlZiBDRkdfRE1BX0FMTE9DX0xFTgorI2lmZGVmIENPTkZJR19TWVNfRE1BX0FMTE9DX0xFTgogCS8qIFJlc2VydmUgRE1BIG1lbW9yeSAobXVzdCBiZSBjYWNoZSBhbGlnbmVkKSAqLwotCWFkZHIgJj0gfihDRkdfRENBQ0hFX0xJTkVTWiAtIDEpOwotCWFkZHIgLT0gQ0ZHX0RNQV9BTExPQ19MRU47CisJYWRkciAmPSB+KENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWiAtIDEpOworCWFkZHIgLT0gQ09ORklHX1NZU19ETUFfQUxMT0NfTEVOOwogI2VuZGlmCiAKIAkvKiBBbGxvY2F0ZSBhIEJvYXJkIEluZm8gc3RydWN0IG9uIGEgd29yZCBib3VuZGFyeSAqLwpAQCAtMjQ5LDcgKzI0OSw3IEBACiAJICogSW5pdGlhbGl6ZSB0aGUgYm9hcmQgaW5mb3JtYXRpb24gc3RydWN0IHdpdGggdGhlCiAJICogaW5mb3JtYXRpb24gd2UgaGF2ZS4KIAkgKi8KLQliZC0+YmlfZHJhbVswXS5zdGFydCA9IENGR19TRFJBTV9CQVNFOworCWJkLT5iaV9kcmFtWzBdLnN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOwogCWJkLT5iaV9kcmFtWzBdLnNpemUgPSBzZHJhbV9zaXplOwogCWJkLT5iaV9iYXVkcmF0ZSA9IGdkLT5iYXVkcmF0ZTsKIApAQCAtMjcyLDcgKzI3Miw3IEBACiAJYmQgPSBnZC0+YmQ7CiAKIAlnZC0+ZmxhZ3MgfD0gR0RfRkxHX1JFTE9DOwotCWdkLT5yZWxvY19vZmYgPSBkZXN0X2FkZHIgLSBDRkdfTU9OSVRPUl9CQVNFOworCWdkLT5yZWxvY19vZmYgPSBkZXN0X2FkZHIgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRTsKIAogCW1vbml0b3JfZmxhc2hfbGVuID0gX2VkYXRhIC0gX3RleHQ7CiAKQEAgLTI5Myw3ICsyOTMsNyBAQAogCQkJYWRkciA9ICh1bnNpZ25lZCBsb25nKWNtZHRwLT51c2FnZSArIGdkLT5yZWxvY19vZmY7CiAJCQljbWR0cC0+dXNhZ2UgPSAodHlwZW9mKGNtZHRwLT51c2FnZSkpYWRkcjsKIAkJfQotI2lmZGVmIENGR19MT05HSEVMUAorI2lmZGVmIENPTkZJR19TWVNfTE9OR0hFTFAKIAkJaWYgKGNtZHRwLT5oZWxwKSB7CiAJCQlhZGRyID0gKHVuc2lnbmVkIGxvbmcpY21kdHAtPmhlbHAgKyBnZC0+cmVsb2Nfb2ZmOwogCQkJY21kdHAtPmhlbHAgPSAodHlwZW9mKGNtZHRwLT5oZWxwKSlhZGRyOwpAQCAtMzE4LDggKzMxOCw4IEBACiAJYmQtPmJpX2ZsYXNoc2l6ZSA9IDA7CiAJYmQtPmJpX2ZsYXNob2Zmc2V0ID0gMDsKIAotI2lmbmRlZiBDRkdfTk9fRkxBU0gKLQliZC0+YmlfZmxhc2hzdGFydCA9IENGR19GTEFTSF9CQVNFOworI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICisJYmQtPmJpX2ZsYXNoc3RhcnQgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJYmQtPmJpX2ZsYXNoc2l6ZSA9IGZsYXNoX2luaXQoKTsKIAliZC0+YmlfZmxhc2hvZmZzZXQgPSAodW5zaWduZWQgbG9uZylfZWRhdGEgLSAodW5zaWduZWQgbG9uZylfdGV4dDsKIApAQCAtMzMwLDcgKzMzMCw3IEBACiAJaWYgKGJkLT5iaV9kcmFtWzBdLnNpemUpCiAJCWRpc3BsYXlfZHJhbV9jb25maWcoKTsKIAotCWdkLT5iZC0+YmlfYm9vdF9wYXJhbXMgPSBtYWxsb2MoQ0ZHX0JPT1RQQVJBTVNfTEVOKTsKKwlnZC0+YmQtPmJpX2Jvb3RfcGFyYW1zID0gbWFsbG9jKENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4pOwogCWlmICghZ2QtPmJkLT5iaV9ib290X3BhcmFtcykKIAkJcHV0cygiV0FSTklORzogQ2Fubm90IGFsbG9jYXRlIHNwYWNlIGZvciBib290IHBhcmFtZXRlcnNcbiIpOwogCmRpZmYgLS1naXQgYS9saWJfYmxhY2tmaW4vYm9hcmQuYyBiL2xpYl9ibGFja2Zpbi9ib2FyZC5jCmluZGV4IDBiOGU2NjQuLmJhNTczOTIgMTAwNjQ0Ci0tLSBhL2xpYl9ibGFja2Zpbi9ib2FyZC5jCisrKyBiL2xpYl9ibGFja2Zpbi9ib2FyZC5jCkBAIC05MSw4ICs5MSw4IEBACiAKIHN0YXRpYyB2b2lkIG1lbV9tYWxsb2NfaW5pdCh2b2lkKQogewotCW1lbV9tYWxsb2Nfc3RhcnQgPSAodm9pZCAqKUNGR19NQUxMT0NfQkFTRTsKLQltZW1fbWFsbG9jX2VuZCA9ICh2b2lkICopKENGR19NQUxMT0NfQkFTRSArIENGR19NQUxMT0NfTEVOKTsKKwltZW1fbWFsbG9jX3N0YXJ0ID0gKHZvaWQgKilDT05GSUdfU1lTX01BTExPQ19CQVNFOworCW1lbV9tYWxsb2NfZW5kID0gKHZvaWQgKikoQ09ORklHX1NZU19NQUxMT0NfQkFTRSArIENPTkZJR19TWVNfTUFMTE9DX0xFTik7CiAJbWVtX21hbGxvY19icmsgPSBtZW1fbWFsbG9jX3N0YXJ0OwogCW1lbXNldChtZW1fbWFsbG9jX3N0YXJ0LCAwLCBtZW1fbWFsbG9jX2VuZCAtIG1lbV9tYWxsb2Nfc3RhcnQpOwogfQpAQCAtMTkyLDE2ICsxOTIsMTYgQEAKIAlkY3BsYl9hZGQoMHhGRjgwMDAwMCwgTDFfRE1FTU9SWSk7CiAJKytpOwogCi0JaWNwbGJfYWRkKENGR19NT05JVE9SX0JBU0UgJiBDUExCX1BBR0VfTUFTSywgU0RSQU1fSUtFUk5FTCk7Ci0JZGNwbGJfYWRkKENGR19NT05JVE9SX0JBU0UgJiBDUExCX1BBR0VfTUFTSywgU0RSQU1fREtFUk5FTCk7CisJaWNwbGJfYWRkKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICYgQ1BMQl9QQUdFX01BU0ssIFNEUkFNX0lLRVJORUwpOworCWRjcGxiX2FkZChDT05GSUdfU1lTX01PTklUT1JfQkFTRSAmIENQTEJfUEFHRV9NQVNLLCBTRFJBTV9ES0VSTkVMKTsKIAkrK2k7CiAKIAkvKiBJZiB0aGUgbW9uaXRvciBjcm9zc2VzIGEgNCBtZWcgYm91bmRhcnksIHdlJ2xsIG5lZWQKIAkgKiB0byBsb2NrIHR3byBlbnRyaWVzIGZvciBpdC4KIAkgKi8KLQlpZiAoKENGR19NT05JVE9SX0JBU0UgJiBDUExCX1BBR0VfTUFTSykgIT0gKChDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKSAmIENQTEJfUEFHRV9NQVNLKSkgewotCQlpY3BsYl9hZGQoKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pICYgQ1BMQl9QQUdFX01BU0ssIFNEUkFNX0lLRVJORUwpOwotCQlkY3BsYl9hZGQoKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pICYgQ1BMQl9QQUdFX01BU0ssIFNEUkFNX0RLRVJORUwpOworCWlmICgoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgJiBDUExCX1BBR0VfTUFTSykgIT0gKChDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pICYgQ1BMQl9QQUdFX01BU0spKSB7CisJCWljcGxiX2FkZCgoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKSAmIENQTEJfUEFHRV9NQVNLLCBTRFJBTV9JS0VSTkVMKTsKKwkJZGNwbGJfYWRkKChDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pICYgQ1BMQl9QQUdFX01BU0ssIFNEUkFNX0RLRVJORUwpOwogCQkrK2k7CiAJfQogCkBAIC0yMjIsNyArMjIyLDcgQEAKIAkrK2k7CiAjZW5kaWYKIAotCXdoaWxlIChpIDwgMTYgJiYgZXh0ZXJuX21lbW9yeSA8IChDRkdfTU9OSVRPUl9CQVNFICYgQ1BMQl9QQUdFX01BU0spKSB7CisJd2hpbGUgKGkgPCAxNiAmJiBleHRlcm5fbWVtb3J5IDwgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICYgQ1BMQl9QQUdFX01BU0spKSB7CiAJCWljcGxiX2FkZChleHRlcm5fbWVtb3J5LCBTRFJBTV9JR0VORVJJQyk7CiAJCWRjcGxiX2FkZChleHRlcm5fbWVtb3J5LCBTRFJBTV9ER0VORVJJQyk7CiAJCWV4dGVybl9tZW1vcnkgKz0gQ1BMQl9QQUdFX1NJWkU7CkBAIC0yNzksMTEgKzI3OSwxMSBAQAogI2VuZGlmCiAKIAlzZXJpYWxfZWFybHlfcHV0cygiSW5pdCBnbG9iYWwgZGF0YVxuIik7Ci0JZ2QgPSAoZ2RfdCAqKSAoQ0ZHX0dCTF9EQVRBX0FERFIpOworCWdkID0gKGdkX3QgKikgKENPTkZJR19TWVNfR0JMX0RBVEFfQUREUik7CiAJbWVtc2V0KCh2b2lkICopZ2QsIDAsIHNpemVvZihnZF90KSk7CiAKIAkvKiBCb2FyZCBkYXRhIGluaXRpYWxpemF0aW9uICovCi0JYWRkciA9IChDRkdfR0JMX0RBVEFfQUREUiArIHNpemVvZihnZF90KSk7CisJYWRkciA9IChDT05GSUdfU1lTX0dCTF9EQVRBX0FERFIgKyBzaXplb2YoZ2RfdCkpOwogCiAJLyogQWxpZ24gdG8gNCBieXRlIGJvdW5kYXJ5ICovCiAJYWRkciAmPSB+KDQgLSAxKTsKQEAgLTMzNiw3ICszMzYsNyBAQAogc3RhdGljIGludCBpbml0X2Z1bmNfaTJjKHZvaWQpCiB7CiAJcHV0cygiSTJDOiAgICIpOwotCWkyY19pbml0KENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0KENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAJcHV0cygicmVhZHlcbiIpOwogCXJldHVybiAoMCk7CiB9CkBAIC0zNTYsMTYgKzM1NiwxNiBAQAogCXBvc3RfcmVsb2MoKTsKICNlbmRpZgogCi0jaWYJIWRlZmluZWQoQ0ZHX05PX0ZMQVNIKQorI2lmCSFkZWZpbmVkKENPTkZJR19TWVNfTk9fRkxBU0gpCiAJLyogVGhlcmUgYXJlIHNvbWUgb3RoZXIgcG9pbnRlciBjb25zdGFudHMgd2UgbXVzdCBkZWFsIHdpdGggKi8KIAkvKiBjb25maWd1cmUgYXZhaWxhYmxlIEZMQVNIIGJhbmtzICovCiAJZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW107CiAJdWxvbmcgc2l6ZSA9IGZsYXNoX2luaXQoKTsKIAlwdXRzKCJGbGFzaDogIik7CiAJcHJpbnRfc2l6ZShzaXplLCAiXG4iKTsKLQlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENGR19GTEFTSF9CQVNFLAotCQkgICAgICBDRkdfRkxBU0hfQkFTRSArIDB4MWZmZmYsICZmbGFzaF9pbmZvWzBdKTsKLQliZC0+YmlfZmxhc2hzdGFydCA9IENGR19GTEFTSF9CQVNFOworCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDFmZmZmLCAmZmxhc2hfaW5mb1swXSk7CisJYmQtPmJpX2ZsYXNoc3RhcnQgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJYmQtPmJpX2ZsYXNoc2l6ZSA9IHNpemU7CiAJYmQtPmJpX2ZsYXNob2Zmc2V0ID0gMDsKICNlbHNlCmRpZmYgLS1naXQgYS9saWJfYmxhY2tmaW4vcG9zdC5jIGIvbGliX2JsYWNrZmluL3Bvc3QuYwppbmRleCAzYzRkNWM1Li40YWI5ZThiIDEwMDY0NAotLS0gYS9saWJfYmxhY2tmaW4vcG9zdC5jCisrKyBiL2xpYl9ibGFja2Zpbi9wb3N0LmMKQEAgLTM0NSw3ICszNDUsNyBAQAogewogCXZhX2xpc3QgYXJnczsKIAl1aW50IGk7Ci0JY2hhciBwcmludGJ1ZmZlcltDRkdfUEJTSVpFXTsKKwljaGFyIHByaW50YnVmZmVyW0NPTkZJR19TWVNfUEJTSVpFXTsKIAogCXZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CiAKQEAgLTQxOSw3ICs0MTksNyBAQAogICovCiB1bnNpZ25lZCBsb25nIHBvc3RfdGltZV9tcyh1bnNpZ25lZCBsb25nIGJhc2UpCiB7Ci0JcmV0dXJuICh1bnNpZ25lZCBsb25nKWdldF90aWNrcygpIC8gKGdldF90YmNsaygpIC8gQ0ZHX0haKSAtIGJhc2U7CisJcmV0dXJuICh1bnNpZ25lZCBsb25nKWdldF90aWNrcygpIC8gKGdldF90YmNsaygpIC8gQ09ORklHX1NZU19IWikgLSBiYXNlOwogfQogCiAjZW5kaWYJCQkJLyogQ09ORklHX1BPU1QgKi8KZGlmZiAtLWdpdCBhL2xpYl9ibGFja2Zpbi90ZXN0cy5jIGIvbGliX2JsYWNrZmluL3Rlc3RzLmMKaW5kZXggMDUxNjQ5ZC4uYzIzMTllYyAxMDA2NDQKLS0tIGEvbGliX2JsYWNrZmluL3Rlc3RzLmMKKysrIGIvbGliX2JsYWNrZmluL3Rlc3RzLmMKQEAgLTIxLDcgKzIxLDcgQEAKICAqIE1BIDAyMTExLTEzMDcgVVNBCiAgKgogICogQmUgc3VyZSB0byBtYXJrIHRlc3RzIHRvIGJlIHJ1biBiZWZvcmUgcmVsb2NhdGlvbiBhcyBzdWNoIHdpdGggdGhlCi0gKiBDRkdfUE9TVF9QUkVSRUwgZmxhZyBzbyB0aGF0IGxvZ2dpbmcgaXMgZG9uZSBjb3JyZWN0bHkgaWYgdGhlCisgKiBDT05GSUdfU1lTX1BPU1RfUFJFUkVMIGZsYWcgc28gdGhhdCBsb2dnaW5nIGlzIGRvbmUgY29ycmVjdGx5IGlmIHRoZQogICogbG9nYnVmZmVyIHN1cHBvcnQgaXMgZW5hYmxlZC4KICAqLwogCkBAIC0zMCw5ICszMCw5IEBACiAjaWZkZWYgQ09ORklHX1BPU1QKIAogI2luY2x1ZGUgPHBvc3QuaD4KLSNkZWZpbmUgQ0ZHX1BPU1RfRkxBU0ggIDB4MDAwMDQwMDAKLSNkZWZpbmUgQ0ZHX1BPU1RfTEVEICAgIDB4MDAwMDgwMDAKLSNkZWZpbmUgQ0ZHX1BPU1RfQlVUVE9OIDB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0ZMQVNIICAweDAwMDA0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9MRUQgICAgMHgwMDAwODAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfQlVUVE9OIDB4MDAwMTAwMDAKIAogZXh0ZXJuIGludCBjYWNoZV9wb3N0X3Rlc3QoaW50IGZsYWdzKTsKIGV4dGVybiBpbnQgd2F0Y2hkb2dfcG9zdF90ZXN0KGludCBmbGFncyk7CkBAIC01OCw3ICs1OCw3IEBACiBleHRlcm4gaW50IGJ1dHRvbl9wb3N0X3Rlc3QoaW50IGZsYWdzKTsKIAogc3RydWN0IHBvc3RfdGVzdCBwb3N0X2xpc3RbXSA9IHsKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NBQ0hFCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ0FDSEUKIAl7CiAJICJDYWNoZSB0ZXN0IiwKIAkgImNhY2hlIiwKQEAgLTY3LDkgKzY3LDkgQEAKIAkgJmNhY2hlX3Bvc3RfdGVzdCwKIAkgTlVMTCwKIAkgTlVMTCwKLQkgQ0ZHX1BPU1RfQ0FDSEV9LAorCSBDT05GSUdfU1lTX1BPU1RfQ0FDSEV9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9XQVRDSERPRworI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX1dBVENIRE9HCiAJewogCSAiV2F0Y2hkb2cgdGltZXIgdGVzdCIsCiAJICJ3YXRjaGRvZyIsCkBAIC03OCw5ICs3OCw5IEBACiAJICZ3YXRjaGRvZ19wb3N0X3Rlc3QsCiAJIE5VTEwsCiAJIE5VTEwsCi0JIENGR19QT1NUX1dBVENIRE9HfSwKKwkgQ09ORklHX1NZU19QT1NUX1dBVENIRE9HfSwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfSTJDCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfSTJDCiAJewogCSAiSTJDIHRlc3QiLAogCSAiaTJjIiwKQEAgLTg5LDkgKzg5LDkgQEAKIAkgJmkyY19wb3N0X3Rlc3QsCiAJIE5VTEwsCiAJIE5VTEwsCi0JIENGR19QT1NUX0kyQ30sCisJIENPTkZJR19TWVNfUE9TVF9JMkN9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9SVEMKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9SVEMKIAl7CiAJICJSVEMgdGVzdCIsCiAJICJydGMiLApAQCAtMTAwLDkgKzEwMCw5IEBACiAJICZydGNfcG9zdF90ZXN0LAogCSBOVUxMLAogCSBOVUxMLAotCSBDRkdfUE9TVF9SVEN9LAorCSBDT05GSUdfU1lTX1BPU1RfUlRDfSwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfTUVNT1JZCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfTUVNT1JZCiAJewogCSAiTWVtb3J5IHRlc3QiLAogCSAibWVtb3J5IiwKQEAgLTExMSw5ICsxMTEsOSBAQAogCSAmbWVtb3J5X3Bvc3RfdGVzdCwKIAkgTlVMTCwKIAkgTlVMTCwKLQkgQ0ZHX1BPU1RfTUVNT1JZfSwKKwkgQ09ORklHX1NZU19QT1NUX01FTU9SWX0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCXsKIAkgIkNQVSB0ZXN0IiwKIAkgImNwdSIsCkBAIC0xMjIsOSArMTIyLDkgQEAKIAkgJmNwdV9wb3N0X3Rlc3QsCiAJIE5VTEwsCiAJIE5VTEwsCi0JIENGR19QT1NUX0NQVX0sCisJIENPTkZJR19TWVNfUE9TVF9DUFV9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9VQVJUCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfVUFSVAogCXsKIAkgIlVBUlQgdGVzdCIsCiAJICJ1YXJ0IiwKQEAgLTEzMyw5ICsxMzMsOSBAQAogCSAmdWFydF9wb3N0X3Rlc3QsCiAJIE5VTEwsCiAJIE5VTEwsCi0JIENGR19QT1NUX1VBUlR9LAorCSBDT05GSUdfU1lTX1BPU1RfVUFSVH0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0VUSEVSCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRVRIRVIKIAl7CiAJICJFVEhFUk5FVCB0ZXN0IiwKIAkgImV0aGVybmV0IiwKQEAgLTE0NCw5ICsxNDQsOSBAQAogCSAmZXRoZXJfcG9zdF90ZXN0LAogCSBOVUxMLAogCSBOVUxMLAotCSBDRkdfUE9TVF9FVEhFUn0sCisJIENPTkZJR19TWVNfUE9TVF9FVEhFUn0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1NQSQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX1NQSQogCXsKIAkgIlNQSSB0ZXN0IiwKIAkgInNwaSIsCkBAIC0xNTUsOSArMTU1LDkgQEAKIAkgJnNwaV9wb3N0X3Rlc3QsCiAJIE5VTEwsCiAJIE5VTEwsCi0JIENGR19QT1NUX1NQSX0sCisJIENPTkZJR19TWVNfUE9TVF9TUEl9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9VU0IKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9VU0IKIAl7CiAJICJVU0IgdGVzdCIsCiAJICJ1c2IiLApAQCAtMTY2LDkgKzE2Niw5IEBACiAJICZ1c2JfcG9zdF90ZXN0LAogCSBOVUxMLAogCSBOVUxMLAotCSBDRkdfUE9TVF9VU0J9LAorCSBDT05GSUdfU1lTX1BPU1RfVVNCfSwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfU1BSCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfU1BSCiAJewogCSAiU1BSIHRlc3QiLAogCSAic3ByIiwKQEAgLTE3Nyw5ICsxNzcsOSBAQAogCSAmc3ByX3Bvc3RfdGVzdCwKIAkgTlVMTCwKIAkgTlVMTCwKLQkgQ0ZHX1BPU1RfU1BSfSwKKwkgQ09ORklHX1NZU19QT1NUX1NQUn0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1NZU01PTgorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX1NZU01PTgogCXsKIAkgIlNZU01PTiB0ZXN0IiwKIAkgInN5c21vbiIsCkBAIC0xODgsOSArMTg4LDkgQEAKIAkgJnN5c21vbl9wb3N0X3Rlc3QsCiAJICZzeXNtb25faW5pdF9mLAogCSAmc3lzbW9uX3JlbG9jLAotCSBDRkdfUE9TVF9TWVNNT059LAorCSBDT05GSUdfU1lTX1BPU1RfU1lTTU9OfSwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRFNQCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRFNQCiAJewogCSAiRFNQIHRlc3QiLAogCSAiZHNwIiwKQEAgLTE5OSw5ICsxOTksOSBAQAogCSAmZHNwX3Bvc3RfdGVzdCwKIAkgTlVMTCwKIAkgTlVMTCwKLQkgQ0ZHX1BPU1RfRFNQfSwKKwkgQ09ORklHX1NZU19QT1NUX0RTUH0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NPREVDCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ09ERUMKIAl7CiAJICJDT0RFQyB0ZXN0IiwKIAkgImNvZGVjIiwKQEAgLTIxMCw5ICsyMTAsOSBAQAogCSAmY29kZWNfcG9zdF90ZXN0LAogCSBOVUxMLAogCSBOVUxMLAotCSBDRkdfUE9TVF9DT0RFQ30sCisJIENPTkZJR19TWVNfUE9TVF9DT0RFQ30sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0ZMQVNICisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRkxBU0gKIAl7CiAJICJGTEFTSCB0ZXN0IiwKIAkgImZsYXNoIiwKQEAgLTIyMSw5ICsyMjEsOSBAQAogCSAmZmxhc2hfcG9zdF90ZXN0LAogCSBOVUxMLAogCSBOVUxMLAotCSBDRkdfUE9TVF9GTEFTSH0sCisJIENPTkZJR19TWVNfUE9TVF9GTEFTSH0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0xFRAorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0xFRAogCXsKIAkgIkxFRCB0ZXN0IiwKIAkgIkxFRCIsCkBAIC0yMzIsOSArMjMyLDkgQEAKIAkgJmxlZF9wb3N0X3Rlc3QsCiAJIE5VTEwsCiAJIE5VTEwsCi0JIENGR19QT1NUX0xFRH0sCisJIENPTkZJR19TWVNfUE9TVF9MRUR9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9CVVRUT04KKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9CVVRUT04KIAl7CiAJICJCdXR0b24gdGVzdCIsCiAJICJidXR0b24iLApAQCAtMjQzLDcgKzI0Myw3IEBACiAJICZidXR0b25fcG9zdF90ZXN0LAogCSBOVUxMLAogCSBOVUxMLAotCSBDRkdfUE9TVF9CVVRUT059LAorCSBDT05GSUdfU1lTX1BPU1RfQlVUVE9OfSwKICNlbmRpZgogCiB9OwpkaWZmIC0tZ2l0IGEvbGliX2dlbmVyaWMvdnNwcmludGYuYyBiL2xpYl9nZW5lcmljL3ZzcHJpbnRmLmMKaW5kZXggN2M5Y2ZlMS4uNmU5MDNkYiAxMDA2NDQKLS0tIGEvbGliX2dlbmVyaWMvdnNwcmludGYuYworKysgYi9saWJfZ2VuZXJpYy92c3ByaW50Zi5jCkBAIC01NSw3ICs1NSw3IEBACiAJcmV0dXJuIHNpbXBsZV9zdHJ0b3VsKGNwLGVuZHAsYmFzZSk7CiB9CiAKLSNpZmRlZiBDRkdfNjRCSVRfU1RSVE9VTAorI2lmZGVmIENPTkZJR19TWVNfNjRCSVRfU1RSVE9VTAogdW5zaWduZWQgbG9uZyBsb25nIHNpbXBsZV9zdHJ0b3VsbCAoY29uc3QgY2hhciAqY3AsIGNoYXIgKiplbmRwLCB1bnNpZ25lZCBpbnQgYmFzZSkKIHsKIAl1bnNpZ25lZCBsb25nIGxvbmcgcmVzdWx0ID0gMCwgdmFsdWU7CkBAIC04Myw3ICs4Myw3IEBACiAJCSplbmRwID0gKGNoYXIgKikgY3A7CiAJcmV0dXJuIHJlc3VsdDsKIH0KLSNlbmRpZiAvKiBDRkdfNjRCSVRfU1RSVE9VTCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfNjRCSVRfU1RSVE9VTCAqLwogCiAvKiB3ZSB1c2UgdGhpcyBzbyB0aGF0IHdlIGNhbiBkbyB3aXRob3V0IHRoZSBjdHlwZSBsaWJyYXJ5ICovCiAjZGVmaW5lIGlzX2RpZ2l0KGMpCSgoYykgPj0gJzAnICYmIChjKSA8PSAnOScpCkBAIC0xMDUsNyArMTA1LDcgQEAKICNkZWZpbmUgU1BFQ0lBTAkzMgkJLyogMHggKi8KICNkZWZpbmUgTEFSR0UJNjQJCS8qIHVzZSAnQUJDREVGJyBpbnN0ZWFkIG9mICdhYmNkZWYnICovCiAKLSNpZmRlZiBDRkdfNjRCSVRfVlNQUklOVEYKKyNpZmRlZiBDT05GSUdfU1lTXzY0QklUX1ZTUFJJTlRGCiAjZGVmaW5lIGRvX2RpdihuLGJhc2UpICh7IFwKIAl1bnNpZ25lZCBpbnQgX19yZXM7IFwKIAlfX3JlcyA9ICgodW5zaWduZWQgbG9uZyBsb25nKSBuKSAlIGJhc2U7IFwKQEAgLTEyMSw3ICsxMjEsNyBAQAogfSkKICNlbmRpZgogCi0jaWZkZWYgQ0ZHXzY0QklUX1ZTUFJJTlRGCisjaWZkZWYgQ09ORklHX1NZU182NEJJVF9WU1BSSU5URgogc3RhdGljIGNoYXIgKiBudW1iZXIoY2hhciAqIHN0ciwgbG9uZyBsb25nIG51bSwgdW5zaWduZWQgaW50IGJhc2UsIGludCBzaXplLCBpbnQgcHJlY2lzaW9uICxpbnQgdHlwZSkKICNlbHNlCiBzdGF0aWMgY2hhciAqIG51bWJlcihjaGFyICogc3RyLCBsb25nIG51bSwgdW5zaWduZWQgaW50IGJhc2UsIGludCBzaXplLCBpbnQgcHJlY2lzaW9uICxpbnQgdHlwZSkKQEAgLTE5Nyw3ICsxOTcsNyBAQAogaW50IHZzcHJpbnRmKGNoYXIgKmJ1ZiwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpCiB7CiAJaW50IGxlbjsKLSNpZmRlZiBDRkdfNjRCSVRfVlNQUklOVEYKKyNpZmRlZiBDT05GSUdfU1lTXzY0QklUX1ZTUFJJTlRGCiAJdW5zaWduZWQgbG9uZyBsb25nIG51bTsKICNlbHNlCiAJdW5zaWduZWQgbG9uZyBudW07CkBAIC0zNTIsNyArMzUyLDcgQEAKIAkJCQktLWZtdDsKIAkJCWNvbnRpbnVlOwogCQl9Ci0jaWZkZWYgQ0ZHXzY0QklUX1ZTUFJJTlRGCisjaWZkZWYgQ09ORklHX1NZU182NEJJVF9WU1BSSU5URgogCQlpZiAocXVhbGlmaWVyID09ICdxJykgIC8qICJxdWFkIiBmb3IgNjQgYml0IHZhcmlhYmxlcyAqLwogCQkJbnVtID0gdmFfYXJnKGFyZ3MsIHVuc2lnbmVkIGxvbmcgbG9uZyk7CiAJCWVsc2UKZGlmZiAtLWdpdCBhL2xpYl9pMzg2L2JvYXJkLmMgYi9saWJfaTM4Ni9ib2FyZC5jCmluZGV4IGYzZGEwYTIuLjY1OWY5YTIgMTAwNjQ0Ci0tLSBhL2xpYl9pMzg2L2JvYXJkLmMKKysrIGIvbGliX2kzODYvYm9hcmQuYwpAQCAtODQsNyArODQsNyBAQAogewogCS8qIHN0YXJ0IG1hbGxvYyBhcmVhIHJpZ2h0IGFmdGVyIHRoZSBzdGFjayAqLwogCW1lbV9tYWxsb2Nfc3RhcnQgPSBpMzg2Ym9vdF9ic3Nfc3RhcnQgKwotCQlpMzg2Ym9vdF9ic3Nfc2l6ZSArIENGR19TVEFDS19TSVpFOworCQlpMzg2Ym9vdF9ic3Nfc2l6ZSArIENPTkZJR19TWVNfU1RBQ0tfU0laRTsKIAltZW1fbWFsbG9jX3N0YXJ0ID0gKG1lbV9tYWxsb2Nfc3RhcnQrMykmfjM7CiAKIAkvKiBVc2UgYWxsIGF2YWlsYWJsZSBSQU0gZm9yIG1hbGxvYygpICovCkBAIC0xMzcsNyArMTM3LDcgQEAKIAkJaTM4NmJvb3Rfcm9tZGF0YV9kZXN0LCBpMzg2Ym9vdF9yb21kYXRhX2Rlc3QraTM4NmJvb3Rfcm9tZGF0YV9zaXplLTEsCiAJCWkzODZib290X2Jzc19zdGFydCwgaTM4NmJvb3RfYnNzX3N0YXJ0K2kzODZib290X2Jzc19zaXplLTEsCiAJCWkzODZib290X2Jzc19zdGFydCtpMzg2Ym9vdF9ic3Nfc2l6ZSwKLQkJaTM4NmJvb3RfYnNzX3N0YXJ0K2kzODZib290X2Jzc19zaXplK0NGR19TVEFDS19TSVpFLTEpOworCQlpMzg2Ym9vdF9ic3Nfc3RhcnQraTM4NmJvb3RfYnNzX3NpemUrQ09ORklHX1NZU19TVEFDS19TSVpFLTEpOwogCiAKIAlyZXR1cm4gKDApOwpkaWZmIC0tZ2l0IGEvbGliX202OGsvYm9hcmQuYyBiL2xpYl9tNjhrL2JvYXJkLmMKaW5kZXggZmE2YWI2Yi4uNTgzY2UxMCAxMDA2NDQKLS0tIGEvbGliX202OGsvYm9hcmQuYworKysgYi9saWJfbTY4ay9ib2FyZC5jCkBAIC00OSw3ICs0OSw3IEBACiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0JFREJVRykKICNpbmNsdWRlIDxjbWRfYmVkYnVnLmg+CiAjZW5kaWYKLSNpZmRlZiBDRkdfQUxMT0NfRFBSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCiAjaW5jbHVkZSA8Y29tbXByb2MuaD4KICNlbmRpZgogI2luY2x1ZGUgPHZlcnNpb24uaD4KQEAgLTc1LDEyICs3NSwxMiBAQAogCiAjaW5jbHVkZSA8ZW52aXJvbm1lbnQuaD4KIAotI2lmICggKChDT05GSUdfRU5WX0FERFIrQ09ORklHX0VOVl9TSVpFKSA8IENGR19NT05JVE9SX0JBU0UpIHx8IFwKLSAgICAgIChDT05GSUdfRU5WX0FERFIgPj0gKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pKSApIHx8IFwKKyNpZiAoICgoQ09ORklHX0VOVl9BRERSK0NPTkZJR19FTlZfU0laRSkgPCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgfHwgXAorICAgICAgKENPTkZJR19FTlZfQUREUiA+PSAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKSkgKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX05WUkFNKQotI2RlZmluZQlUT1RBTF9NQUxMT0NfTEVOCShDRkdfTUFMTE9DX0xFTiArIENPTkZJR19FTlZfU0laRSkKKyNkZWZpbmUJVE9UQUxfTUFMTE9DX0xFTgkoQ09ORklHX1NZU19NQUxMT0NfTEVOICsgQ09ORklHX0VOVl9TSVpFKQogI2Vsc2UKLSNkZWZpbmUJVE9UQUxfTUFMTE9DX0xFTglDRkdfTUFMTE9DX0xFTgorI2RlZmluZQlUT1RBTF9NQUxMT0NfTEVOCUNPTkZJR19TWVNfTUFMTE9DX0xFTgogI2VuZGlmCiAKIGV4dGVybiB1bG9uZyBfX2luaXRfZW5kOwpAQCAtMTE4LDcgKzExOCw3IEBACiAgKi8KIHN0YXRpYyB2b2lkIG1lbV9tYWxsb2NfaW5pdCAodm9pZCkKIHsKLQl1bG9uZyBkZXN0X2FkZHIgPSBDRkdfTU9OSVRPUl9CQVNFICsgZ2QtPnJlbG9jX29mZjsKKwl1bG9uZyBkZXN0X2FkZHIgPSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIGdkLT5yZWxvY19vZmY7CiAKIAltZW1fbWFsbG9jX2VuZCA9IGRlc3RfYWRkcjsKIAltZW1fbWFsbG9jX3N0YXJ0ID0gZGVzdF9hZGRyIC0gVE9UQUxfTUFMTE9DX0xFTjsKQEAgLTE5NSw3ICsxOTUsNyBAQAogc3RhdGljIGludCBpbml0X2Z1bmNfaTJjICh2b2lkKQogewogCXB1dHMgKCJJMkM6ICAgIik7Ci0JaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCXB1dHMgKCJyZWFkeVxuIik7CiAJcmV0dXJuICgwKTsKIH0KQEAgLTIzNCw5ICsyMzQsOSBAQAogCWluaXRfZnVuY19zcGksCiAjZW5kaWYKIAlpbml0X2Z1bmNfcmFtLAotI2lmIGRlZmluZWQoQ0ZHX0RSQU1fVEVTVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRFJBTV9URVNUKQogCXRlc3RkcmFtLAotI2VuZGlmIC8qIENGR19EUkFNX1RFU1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVCAqLwogCUlOSVRfRlVOQ19XQVRDSERPR19JTklUCiAJTlVMTCwJCQkvKiBUZXJtaW5hdGUgdGhpcyBsaXN0ICovCiB9OwpAQCAtMjczLDcgKzI3Myw3IEBACiAjZW5kaWYKIAogCS8qIFBvaW50ZXIgaXMgd3JpdGFibGUgc2luY2Ugd2UgYWxsb2NhdGVkIGEgcmVnaXN0ZXIgZm9yIGl0ICovCi0JZ2QgPSAoZ2RfdCAqKSAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKKwlnZCA9IChnZF90ICopIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCk7CiAJLyogY29tcGlsZXIgb3B0aW1pemF0aW9uIGJhcnJpZXIgbmVlZGVkIGZvciBHQ0MgPj0gMy40ICovCiAJX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIApAQCAtMjk2LDkgKzI5Niw5IEBACiAJICoJLSBtb25pdG9yIGNvZGUKIAkgKgktIGJvYXJkIGluZm8gc3RydWN0CiAJICovCi0JbGVuID0gKHVsb25nKSZfZW5kIC0gQ0ZHX01PTklUT1JfQkFTRTsKKwlsZW4gPSAodWxvbmcpJl9lbmQgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRTsKIAotCWFkZHIgPSBDRkdfU0RSQU1fQkFTRSArIGdkLT5yYW1fc2l6ZTsKKwlhZGRyID0gQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZ2QtPnJhbV9zaXplOwogCiAjaWZkZWYgQ09ORklHX0xPR0JVRkZFUgogCS8qIHJlc2VydmUga2VybmVsIGxvZyBidWZmZXIgKi8KQEAgLTM1NywxMCArMzU3LDEwIEBACiAJCQlzaXplb2YgKGdkX3QpLCBhZGRyX3NwKTsKIAogCS8qIFJlc2VydmUgbWVtb3J5IGZvciBib290IHBhcmFtcy4gKi8KLQlhZGRyX3NwIC09IENGR19CT09UUEFSQU1TX0xFTjsKKwlhZGRyX3NwIC09IENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU47CiAJYmQtPmJpX2Jvb3RfcGFyYW1zID0gYWRkcl9zcDsKIAlkZWJ1ZyAoIlJlc2VydmluZyAlZGsgZm9yIGJvb3QgcGFyYW1ldGVycyBhdDogJTA4bHhcbiIsCi0JCQlDRkdfQk9PVFBBUkFNU19MRU4gPj4gMTAsIGFkZHJfc3ApOworCQkJQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTiA+PiAxMCwgYWRkcl9zcCk7CiAKIAkvKgogCSAqIEZpbmFsbHksIHdlIHNldCB1cCBhIG5ldyAoYmlnZ2VyKSBzdGFjay4KQEAgLTM4MSwxMyArMzgxLDEzIEBACiAJLyoKIAkgKiBTYXZlIGxvY2FsIHZhcmlhYmxlcyB0byBib2FyZCBpbmZvIHN0cnVjdAogCSAqLwotCWJkLT5iaV9tZW1zdGFydCAgPSBDRkdfU0RSQU1fQkFTRTsJLyogc3RhcnQgb2YgIERSQU0gbWVtb3J5ICAgICAgKi8KKwliZC0+YmlfbWVtc3RhcnQgID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOwkvKiBzdGFydCBvZiAgRFJBTSBtZW1vcnkgICAgICAqLwogCWJkLT5iaV9tZW1zaXplICAgPSBnZC0+cmFtX3NpemU7CS8qIHNpemUgIG9mICBEUkFNIG1lbW9yeSBpbiBieXRlcyAqLwotI2lmZGVmIENGR19JTklUX1JBTV9BRERSCi0JYmQtPmJpX3NyYW1zdGFydCA9IENGR19JTklUX1JBTV9BRERSOwkvKiBzdGFydCBvZiAgU1JBTSBtZW1vcnkJKi8KLQliZC0+Ymlfc3JhbXNpemUgID0gQ0ZHX0lOSVRfUkFNX0VORDsJLyogc2l6ZSAgb2YgIFNSQU0gbWVtb3J5CSovCisjaWZkZWYgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCisJYmQtPmJpX3NyYW1zdGFydCA9IENPTkZJR19TWVNfSU5JVF9SQU1fQUREUjsJLyogc3RhcnQgb2YgIFNSQU0gbWVtb3J5CSovCisJYmQtPmJpX3NyYW1zaXplICA9IENPTkZJR19TWVNfSU5JVF9SQU1fRU5EOwkvKiBzaXplICBvZiAgU1JBTSBtZW1vcnkJKi8KICNlbmRpZgotCWJkLT5iaV9tYmFyX2Jhc2UgPSBDRkdfTUJBUjsJCS8qIGJhc2Ugb2YgaW50ZXJuYWwgcmVnaXN0ZXJzICovCisJYmQtPmJpX21iYXJfYmFzZSA9IENPTkZJR19TWVNfTUJBUjsJCS8qIGJhc2Ugb2YgaW50ZXJuYWwgcmVnaXN0ZXJzICovCiAKIAliZC0+YmlfYm9vdGZsYWdzID0gYm9vdGZsYWc7CQkvKiBib290IC8gcmVib290IGZsYWcgKGZvciBMeW54T1MpICAgICovCiAKQEAgLTQwNCw3ICs0MDQsNyBAQAogI2VuZGlmCiAJYmQtPmJpX2JhdWRyYXRlID0gZ2QtPmJhdWRyYXRlOwkvKiBDb25zb2xlIEJhdWRyYXRlICAgICAqLwogCi0jaWZkZWYgQ0ZHX0VYVEJESU5GTworI2lmZGVmIENPTkZJR19TWVNfRVhUQkRJTkZPCiAJc3RybmNweSAoYmQtPmJpX3NfdmVyc2lvbiwgIjEuMiIsIHNpemVvZiAoYmQtPmJpX3NfdmVyc2lvbikpOwogCXN0cm5jcHkgKGJkLT5iaV9yX3ZlcnNpb24sIFVfQk9PVF9WRVJTSU9OLCBzaXplb2YgKGJkLT5iaV9yX3ZlcnNpb24pKTsKICNlbmRpZgpAQCAtNDIwLDcgKzQyMCw3IEBACiAKIAltZW1jcHkgKGlkLCAodm9pZCAqKWdkLCBzaXplb2YgKGdkX3QpKTsKIAotCWRlYnVnICgiU3RhcnQgcmVsb2NhdGUgb2YgY29kZSBmcm9tICUwOHggdG8gJTA4bHhcbiIsIENGR19NT05JVE9SX0JBU0UsIGFkZHIpOworCWRlYnVnICgiU3RhcnQgcmVsb2NhdGUgb2YgY29kZSBmcm9tICUwOHggdG8gJTA4bHhcbiIsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCBhZGRyKTsKIAlyZWxvY2F0ZV9jb2RlIChhZGRyX3NwLCBpZCwgYWRkcik7CiAKIAkvKiBOT1RSRUFDSEVEIC0ganVtcF90b19yYW0oKSBkb2VzIG5vdCByZXR1cm4gKi8KQEAgLTQ0Niw3ICs0NDYsNyBAQAogI2lmbmRlZiBDT05GSUdfRU5WX0lTX05PV0hFUkUKIAlleHRlcm4gY2hhciAqIGVudl9uYW1lX3NwZWM7CiAjZW5kaWYKLSNpZm5kZWYgQ0ZHX05PX0ZMQVNICisjaWZuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKIAl1bG9uZyBmbGFzaF9zaXplOwogI2VuZGlmCiAJZ2QgPSBpZDsJCS8qIGluaXRpYWxpemUgUkFNIHZlcnNpb24gb2YgZ2xvYmFsIGRhdGEgKi8KQEAgLTQ2Miw3ICs0NjIsNyBAQAogCiAJV0FUQ0hET0dfUkVTRVQgKCk7CiAKLQlnZC0+cmVsb2Nfb2ZmID0gIGRlc3RfYWRkciAtIENGR19NT05JVE9SX0JBU0U7CisJZ2QtPnJlbG9jX29mZiA9ICBkZXN0X2FkZHIgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRTsKIAogCW1vbml0b3JfZmxhc2hfbGVuID0gKHVsb25nKSZfX2luaXRfZW5kIC0gZGVzdF9hZGRyOwogCkBAIC00ODYsNyArNDg2LDcgQEAKIAkJCWFkZHIgPSAodWxvbmcpKGNtZHRwLT51c2FnZSkgKyBnZC0+cmVsb2Nfb2ZmOwogCQkJY21kdHAtPnVzYWdlID0gKGNoYXIgKilhZGRyOwogCQl9Ci0jaWZkZWYJQ0ZHX0xPTkdIRUxQCisjaWZkZWYJQ09ORklHX1NZU19MT05HSEVMUAogCQlpZiAoY21kdHAtPmhlbHApIHsKIAkJCWFkZHIgPSAodWxvbmcpKGNtZHRwLT5oZWxwKSArIGdkLT5yZWxvY19vZmY7CiAJCQljbWR0cC0+aGVscCA9IChjaGFyICopYWRkcjsKQEAgLTUxNywxMyArNTE3LDEzIEBACiAJLyoKIAkgKiBTZXR1cCB0cmFwIGhhbmRsZXJzCiAJICovCi0JdHJhcF9pbml0IChDRkdfU0RSQU1fQkFTRSk7CisJdHJhcF9pbml0IChDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCi0jaWYgIWRlZmluZWQoQ0ZHX05PX0ZMQVNIKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTk9fRkxBU0gpCiAJcHV0cyAoIkZMQVNIOiAiKTsKIAogCWlmICgoZmxhc2hfc2l6ZSA9IGZsYXNoX2luaXQgKCkpID4gMCkgewotIyBpZmRlZiBDRkdfRkxBU0hfQ0hFQ0tTVU0KKyMgaWZkZWYgQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQogCQlwcmludF9zaXplIChmbGFzaF9zaXplLCAiIik7CiAJCS8qCiAJCSAqIENvbXB1dGUgYW5kIHByaW50IGZsYXNoIENSQyBpZiBmbGFzaGNoZWNrc3VtIGlzIHNldCB0byAneScKQEAgLTUzNCwyNyArNTM0LDI3IEBACiAJCWlmIChzICYmICgqcyA9PSAneScpKSB7CiAJCQlwcmludGYgKCIgIENSQzogJTA4bFgiLAogCQkJCQljcmMzMiAoMCwKLQkJCQkJCSAgIChjb25zdCB1bnNpZ25lZCBjaGFyICopIENGR19GTEFTSF9CQVNFLAorCQkJCQkJICAgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkJCQkJICAgZmxhc2hfc2l6ZSkKIAkJCQkJKTsKIAkJfQogCQlwdXRjICgnXG4nKTsKLSMgZWxzZQkvKiAhQ0ZHX0ZMQVNIX0NIRUNLU1VNICovCisjIGVsc2UJLyogIUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0gKi8KIAkJcHJpbnRfc2l6ZSAoZmxhc2hfc2l6ZSwgIlxuIik7Ci0jIGVuZGlmIC8qIENGR19GTEFTSF9DSEVDS1NVTSAqLworIyBlbmRpZiAvKiBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNICovCiAJfSBlbHNlIHsKIAkJcHV0cyAoZmFpbGVkKTsKIAkJaGFuZyAoKTsKIAl9CiAKLQliZC0+YmlfZmxhc2hzdGFydCA9IENGR19GTEFTSF9CQVNFOwkvKiB1cGRhdGUgc3RhcnQgb2YgRkxBU0ggbWVtb3J5ICAgICovCisJYmQtPmJpX2ZsYXNoc3RhcnQgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CS8qIHVwZGF0ZSBzdGFydCBvZiBGTEFTSCBtZW1vcnkgICAgKi8KIAliZC0+YmlfZmxhc2hzaXplID0gZmxhc2hfc2l6ZTsJLyogc2l6ZSBvZiBGTEFTSCBtZW1vcnkgKGZpbmFsIHZhbHVlKSAqLwogCWJkLT5iaV9mbGFzaG9mZnNldCA9IDA7Ci0jZWxzZQkvKiBDRkdfTk9fRkxBU0ggKi8KKyNlbHNlCS8qIENPTkZJR19TWVNfTk9fRkxBU0ggKi8KIAliZC0+YmlfZmxhc2hzaXplID0gMDsKIAliZC0+YmlfZmxhc2hzdGFydCA9IDA7CiAJYmQtPmJpX2ZsYXNob2Zmc2V0ID0gMDsKLSNlbmRpZiAvKiAhQ0ZHX05PX0ZMQVNIICovCisjZW5kaWYgLyogIUNPTkZJR19TWVNfTk9fRkxBU0ggKi8KIAogCVdBVENIRE9HX1JFU0VUICgpOwogCmRpZmYgLS1naXQgYS9saWJfbTY4ay9ib290bS5jIGIvbGliX202OGsvYm9vdG0uYwppbmRleCA2NTA0Y2M5Li5hNzNmNmViIDEwMDY0NAotLS0gYS9saWJfbTY4ay9ib290bS5jCisrKyBiL2xpYl9tNjhrL2Jvb3RtLmMKQEAgLTY0LDcgKzY0LDcgQEAKIAkgKgogCSAqIEFsbG9jYXRlIHNwYWNlIGZvciBjb21tYW5kIGxpbmUgYW5kIGJvYXJkIGluZm8gLSB0aGUKIAkgKiBhZGRyZXNzIHNob3VsZCBiZSBhcyBoaWdoIGFzIHBvc3NpYmxlIHdpdGhpbiB0aGUgcmVhY2ggb2YKLQkgKiB0aGUga2VybmVsIChzZWUgQ0ZHX0JPT1RNQVBTWiBzZXR0aW5ncyksIGJ1dCBpbiB1bnVzZWQKKwkgKiB0aGUga2VybmVsIChzZWUgQ09ORklHX1NZU19CT09UTUFQU1ogc2V0dGluZ3MpLCBidXQgaW4gdW51c2VkCiAJICogbWVtb3J5LCB3aGljaCBtZWFucyBmYXIgZW5vdWdoIGJlbG93IHRoZSBjdXJyZW50IHN0YWNrCiAJICogcG9pbnRlci4KIAkgKi8KQEAgLTczLDcgKzczLDcgQEAKIAogCS8qIGFkanVzdCBzcCBieSAxSyB0byBiZSBzYWZlICovCiAJc3AgLT0gMTAyNDsKLQlsbWJfcmVzZXJ2ZShsbWIsIHNwLCAoQ0ZHX1NEUkFNX0JBU0UgKyBnZC0+cmFtX3NpemUgLSBzcCkpOworCWxtYl9yZXNlcnZlKGxtYiwgc3AsIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBnZC0+cmFtX3NpemUgLSBzcCkpOwogCiAJLyogYWxsb2NhdGUgc3BhY2UgYW5kIGluaXQgY29tbWFuZCBsaW5lICovCiAJcmV0ID0gYm9vdF9nZXRfY21kbGluZSAobG1iLCAmY21kX3N0YXJ0LCAmY21kX2VuZCwgYm9vdG1hcF9iYXNlKTsKZGlmZiAtLWdpdCBhL2xpYl9tNjhrL2ludGVycnVwdHMuYyBiL2xpYl9tNjhrL2ludGVycnVwdHMuYwppbmRleCAxNjM1ZDZmLi4yZGMwNzliIDEwMDY0NAotLS0gYS9saWJfbTY4ay9pbnRlcnJ1cHRzLmMKKysrIGIvbGliX202OGsvaW50ZXJydXB0cy5jCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9pbW1hcC5oPgogCi0jZGVmaW5lCU5SX0lSUVMJCShDRkdfTlVNX0lSUVMpCisjZGVmaW5lCU5SX0lSUVMJCShDT05GSUdfU1lTX05VTV9JUlFTKQogCiAvKgogICogSW50ZXJydXB0IHZlY3RvciBmdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9saWJfbTY4ay90aW1lLmMgYi9saWJfbTY4ay90aW1lLmMKaW5kZXggNmViYTc4NC4uNjk3ZDY3ZSAxMDA2NDQKLS0tIGEvbGliX202OGsvdGltZS5jCisrKyBiL2xpYl9tNjhrL3RpbWUuYwpAQCAtMzMsMTggKzMzLDE4IEBACiBzdGF0aWMgdWxvbmcgdGltZXN0YW1wOwogCiAjaWYgZGVmaW5lZChDT05GSUdfTUNGVE1SKQotI2lmbmRlZiBDRkdfVURFTEFZX0JBU0UKKyNpZm5kZWYgQ09ORklHX1NZU19VREVMQVlfQkFTRQogIwllcnJvcgkidURlbGF5IGJhc2Ugbm90IGRlZmluZWQhIgogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChDRkdfVE1SX0JBU0UpIHx8ICFkZWZpbmVkKENGR19JTlRSX0JBU0UpIHx8ICFkZWZpbmVkKENGR19UTVJJTlRSX05PKSB8fCAhZGVmaW5lZChDRkdfVE1SSU5UUl9NQVNLKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfVE1SX0JBU0UpIHx8ICFkZWZpbmVkKENPTkZJR19TWVNfSU5UUl9CQVNFKSB8fCAhZGVmaW5lZChDT05GSUdfU1lTX1RNUklOVFJfTk8pIHx8ICFkZWZpbmVkKENPTkZJR19TWVNfVE1SSU5UUl9NQVNLKQogIwllcnJvcgkiVE1SX0JBU0UsIElOVFJfQkFTRSwgVE1SSU5UUl9OTyBvciBUTVJJTlRSX01BU2sgbm90IGRlZmluZWQhIgogI2VuZGlmCiBleHRlcm4gdm9pZCBkdGltZXJfaW50cl9zZXR1cCh2b2lkKTsKIAogdm9pZCB1ZGVsYXkodW5zaWduZWQgbG9uZyB1c2VjKQogewotCXZvbGF0aWxlIGR0bXJfdCAqdGltZXJwID0gKGR0bXJfdCAqKSAoQ0ZHX1VERUxBWV9CQVNFKTsKKwl2b2xhdGlsZSBkdG1yX3QgKnRpbWVycCA9IChkdG1yX3QgKikgKENPTkZJR19TWVNfVURFTEFZX0JBU0UpOwogCXVpbnQgc3RhcnQsIG5vdywgdG1wOwogCiAJd2hpbGUgKHVzZWMgPiAwKSB7CkBAIC01OSw3ICs1OSw3IEBACiAJCXRpbWVycC0+dGNuID0gMDsKIAkJLyogc2V0IHBlcmlvZCB0byAxIHVzICovCiAJCXRpbWVycC0+dG1yID0KLQkJICAgIENGR19USU1FUl9QUkVTQ0FMRVIgfCBEVElNX0RUTVJfQ0xLX0RJVjEgfCBEVElNX0RUTVJfRlJSIHwKKwkJICAgIENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSIHwgRFRJTV9EVE1SX0NMS19ESVYxIHwgRFRJTV9EVE1SX0ZSUiB8CiAJCSAgICBEVElNX0RUTVJfUlNUX0VOOwogCiAJCXN0YXJ0ID0gbm93ID0gdGltZXJwLT50Y247CkBAIC03MCwxMCArNzAsMTAgQEAKIAogdm9pZCBkdGltZXJfaW50ZXJydXB0KHZvaWQgKm5vdF91c2VkKQogewotCXZvbGF0aWxlIGR0bXJfdCAqdGltZXJwID0gKGR0bXJfdCAqKSAoQ0ZHX1RNUl9CQVNFKTsKKwl2b2xhdGlsZSBkdG1yX3QgKnRpbWVycCA9IChkdG1yX3QgKikgKENPTkZJR19TWVNfVE1SX0JBU0UpOwogCiAJLyogY2hlY2sgZm9yIHRpbWVyIGludGVycnVwdCBhc3NlcnRlZCAqLwotCWlmICgoQ0ZHX1RNUlBORF9SRUcgJiBDRkdfVE1SSU5UUl9NQVNLKSA9PSBDRkdfVE1SSU5UUl9QRU5EKSB7CisJaWYgKChDT05GSUdfU1lTX1RNUlBORF9SRUcgJiBDT05GSUdfU1lTX1RNUklOVFJfTUFTSykgPT0gQ09ORklHX1NZU19UTVJJTlRSX1BFTkQpIHsKIAkJdGltZXJwLT50ZXIgPSAoRFRJTV9EVEVSX0NBUCB8IERUSU1fRFRFUl9SRUYpOwogCQl0aW1lc3RhbXArKzsKIAkJcmV0dXJuOwpAQCAtODIsNyArODIsNyBAQAogCiB2b2lkIHRpbWVyX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBkdG1yX3QgKnRpbWVycCA9IChkdG1yX3QgKikgKENGR19UTVJfQkFTRSk7CisJdm9sYXRpbGUgZHRtcl90ICp0aW1lcnAgPSAoZHRtcl90ICopIChDT05GSUdfU1lTX1RNUl9CQVNFKTsKIAogCXRpbWVzdGFtcCA9IDA7CiAKQEAgLTkzLDcgKzkzLDcgQEAKIAl0aW1lcnAtPnRtciA9IERUSU1fRFRNUl9SU1RfUlNUOwogCiAJLyogaW5pdGlhbGl6ZSBhbmQgZW5hYmxlIHRpbWVyIGludGVycnVwdCAqLwotCWlycV9pbnN0YWxsX2hhbmRsZXIoQ0ZHX1RNUklOVFJfTk8sIGR0aW1lcl9pbnRlcnJ1cHQsIDApOworCWlycV9pbnN0YWxsX2hhbmRsZXIoQ09ORklHX1NZU19UTVJJTlRSX05PLCBkdGltZXJfaW50ZXJydXB0LCAwKTsKIAogCXRpbWVycC0+dGNuID0gMDsKIAl0aW1lcnAtPnRyciA9IDEwMDA7CS8qIEludGVycnVwdCBldmVyeSBtcyAqLwpAQCAtMTAxLDcgKzEwMSw3IEBACiAJZHRpbWVyX2ludHJfc2V0dXAoKTsKIAogCS8qIHNldCBhIHBlcmlvZCBvZiAxdXMsIHNldCB0aW1lciBtb2RlIHRvIHJlc3RhcnQgYW5kIGVuYWJsZSB0aW1lciBhbmQgaW50ZXJydXB0ICovCi0JdGltZXJwLT50bXIgPSBDRkdfVElNRVJfUFJFU0NBTEVSIHwgRFRJTV9EVE1SX0NMS19ESVYxIHwKKwl0aW1lcnAtPnRtciA9IENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSIHwgRFRJTV9EVE1SX0NMS19ESVYxIHwKIAkgICAgRFRJTV9EVE1SX0ZSUiB8IERUSU1fRFRNUl9PUlJJIHwgRFRJTV9EVE1SX1JTVF9FTjsKIH0KIApAQCAtMTIyLDE1ICsxMjIsMTUgQEAKICNlbmRpZgkJCQkvKiBDT05GSUdfTUNGVE1SICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19NQ0ZQSVQpCi0jaWYgIWRlZmluZWQoQ0ZHX1BJVF9CQVNFKQotIwllcnJvcgkiQ0ZHX1BJVF9CQVNFIG5vdCBkZWZpbmVkISIKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX1BJVF9CQVNFKQorIwllcnJvcgkiQ09ORklHX1NZU19QSVRfQkFTRSBub3QgZGVmaW5lZCEiCiAjZW5kaWYKIAogc3RhdGljIHVuc2lnbmVkIHNob3J0IGxhc3RpbmM7CiAKIHZvaWQgdWRlbGF5KHVuc2lnbmVkIGxvbmcgdXNlYykKIHsKLQl2b2xhdGlsZSBwaXRfdCAqdGltZXJwID0gKHBpdF90ICopIChDRkdfVURFTEFZX0JBU0UpOworCXZvbGF0aWxlIHBpdF90ICp0aW1lcnAgPSAocGl0X3QgKikgKENPTkZJR19TWVNfVURFTEFZX0JBU0UpOwogCXVpbnQgdG1wOwogCiAJd2hpbGUgKHVzZWMgPiAwKSB7CkBAIC0xNDQsNyArMTQ0LDcgQEAKIAkJdGltZXJwLT5wY3NyID0gUElUX1BDU1JfT1ZXOwogCQl0aW1lcnAtPnBtciA9IDA7CiAJCS8qIHNldCBwZXJpb2QgdG8gMSB1cyAqLwotCQl0aW1lcnAtPnBjc3IgfD0gUElUX1BDU1JfUFJFKENGR19QSVRfUFJFU0NBTEUpIHwgUElUX1BDU1JfRU47CisJCXRpbWVycC0+cGNzciB8PSBQSVRfUENTUl9QUkUoQ09ORklHX1NZU19QSVRfUFJFU0NBTEUpIHwgUElUX1BDU1JfRU47CiAKIAkJdGltZXJwLT5wbXIgPSB0bXA7CiAJCXdoaWxlICh0aW1lcnAtPnBjbnRyID4gMCkgOwpAQCAtMTUzLDE4ICsxNTMsMTggQEAKIAogdm9pZCB0aW1lcl9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgcGl0X3QgKnRpbWVycCA9IChwaXRfdCAqKSAoQ0ZHX1BJVF9CQVNFKTsKKwl2b2xhdGlsZSBwaXRfdCAqdGltZXJwID0gKHBpdF90ICopIChDT05GSUdfU1lTX1BJVF9CQVNFKTsKIAl0aW1lc3RhbXAgPSAwOwogCiAJLyogU2V0IHVwIFRJTUVSIDQgYXMgcG9sbCBjbG9jayAqLwogCXRpbWVycC0+cGNzciA9IFBJVF9QQ1NSX09WVzsKIAl0aW1lcnAtPnBtciA9IGxhc3RpbmMgPSAwOwotCXRpbWVycC0+cGNzciB8PSBQSVRfUENTUl9QUkUoQ0ZHX1BJVF9QUkVTQ0FMRSkgfCBQSVRfUENTUl9FTjsKKwl0aW1lcnAtPnBjc3IgfD0gUElUX1BDU1JfUFJFKENPTkZJR19TWVNfUElUX1BSRVNDQUxFKSB8IFBJVF9QQ1NSX0VOOwogfQogCiB2b2lkIHNldF90aW1lcih1bG9uZyB0KQogewotCXZvbGF0aWxlIHBpdF90ICp0aW1lcnAgPSAocGl0X3QgKikgKENGR19QSVRfQkFTRSk7CisJdm9sYXRpbGUgcGl0X3QgKnRpbWVycCA9IChwaXRfdCAqKSAoQ09ORklHX1NZU19QSVRfQkFTRSk7CiAKIAl0aW1lc3RhbXAgPSAwOwogCXRpbWVycC0+cG1yID0gbGFzdGluYyA9IDA7CkBAIC0xNzMsNyArMTczLDcgQEAKIHVsb25nIGdldF90aW1lcih1bG9uZyBiYXNlKQogewogCXVuc2lnbmVkIHNob3J0IG5vdywgZGlmZjsKLQl2b2xhdGlsZSBwaXRfdCAqdGltZXJwID0gKHBpdF90ICopIChDRkdfUElUX0JBU0UpOworCXZvbGF0aWxlIHBpdF90ICp0aW1lcnAgPSAocGl0X3QgKikgKENPTkZJR19TWVNfUElUX0JBU0UpOwogCiAJbm93ID0gdGltZXJwLT5wY250cjsKIAlkaWZmID0gLShub3cgLSBsYXN0aW5jKTsKQEAgLTIxMSw2ICsyMTEsNiBAQAogdWxvbmcgZ2V0X3RiY2xrKHZvaWQpCiB7CiAJdWxvbmcgdGJjbGs7Ci0JdGJjbGsgPSBDRkdfSFo7CisJdGJjbGsgPSBDT05GSUdfU1lTX0haOwogCXJldHVybiB0YmNsazsKIH0KZGlmZiAtLWdpdCBhL2xpYl9taWNyb2JsYXplL2JvYXJkLmMgYi9saWJfbWljcm9ibGF6ZS9ib2FyZC5jCmluZGV4IDA5ZDRkOTQuLmNkNjE5MTggMTAwNjQ0Ci0tLSBhL2xpYl9taWNyb2JsYXplL2JvYXJkLmMKKysrIGIvbGliX21pY3JvYmxhemUvYm9hcmQuYwpAQCAtMzQsMTAgKzM0LDEwIEBACiAKIGNvbnN0IGNoYXIgdmVyc2lvbl9zdHJpbmdbXSA9IFVfQk9PVF9WRVJTSU9OICIgKCIgX19EQVRFX18gIiAtICIgX19USU1FX18gIikiOwogCi0jaWZkZWYgQ0ZHX0dQSU9fMAorI2lmZGVmIENPTkZJR19TWVNfR1BJT18wCiBleHRlcm4gaW50IGdwaW9faW5pdCAodm9pZCk7CiAjZW5kaWYKLSNpZmRlZiBDRkdfSU5UQ18wCisjaWZkZWYgQ09ORklHX1NZU19JTlRDXzAKIGV4dGVybiBpbnQgaW50ZXJydXB0c19pbml0ICh2b2lkKTsKICNlbmRpZgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9ORVQpCkBAIC01NCwxMyArNTQsMTMgQEAKIAogLyoKICAqIFRoZSBNYWxsb2MgYXJlYSBpcyBpbW1lZGlhdGVseSBiZWxvdyB0aGUgbW9uaXRvciBjb3B5IGluIERSQU0KLSAqIGFrYSBDRkdfTU9OSVRPUl9CQVNFIC0gTm90ZSB0aGVyZSBpcyBubyBuZWVkIGZvciByZWxvY19vZmYKKyAqIGFrYSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIE5vdGUgdGhlcmUgaXMgbm8gbmVlZCBmb3IgcmVsb2Nfb2ZmCiAgKiBhcyBvdXIgbW9uaXRvcnkgY29kZSBpcyBydW4gZnJvbSBTRFJBTQogICovCiBzdGF0aWMgdm9pZCBtZW1fbWFsbG9jX2luaXQgKHZvaWQpCiB7Ci0JbWVtX21hbGxvY19lbmQgPSAoQ0ZHX01BTExPQ19CQVNFICsgQ0ZHX01BTExPQ19MRU4pOwotCW1lbV9tYWxsb2Nfc3RhcnQgPSBDRkdfTUFMTE9DX0JBU0U7CisJbWVtX21hbGxvY19lbmQgPSAoQ09ORklHX1NZU19NQUxMT0NfQkFTRSArIENPTkZJR19TWVNfTUFMTE9DX0xFTik7CisJbWVtX21hbGxvY19zdGFydCA9IENPTkZJR19TWVNfTUFMTE9DX0JBU0U7CiAJbWVtX21hbGxvY19icmsgPSBtZW1fbWFsbG9jX3N0YXJ0OwogCW1lbXNldCAoKHZvaWQgKiltZW1fbWFsbG9jX3N0YXJ0LCAwLCBtZW1fbWFsbG9jX2VuZCAtIG1lbV9tYWxsb2Nfc3RhcnQpOwogfQpAQCAtOTQsMTAgKzk0LDEwIEBACiBpbml0X2ZuY190ICppbml0X3NlcXVlbmNlW10gPSB7CiAJZW52X2luaXQsCiAJc2VyaWFsX2luaXQsCi0jaWZkZWYgQ0ZHX0dQSU9fMAorI2lmZGVmIENPTkZJR19TWVNfR1BJT18wCiAJZ3Bpb19pbml0LAogI2VuZGlmCi0jaWZkZWYgQ0ZHX0lOVENfMAorI2lmZGVmIENPTkZJR19TWVNfSU5UQ18wCiAJaW50ZXJydXB0c19pbml0LAogI2VuZGlmCiAJTlVMTCwKQEAgLTEwNywxOCArMTA3LDE4IEBACiB7CiAJYmRfdCAqYmQ7CiAJaW5pdF9mbmNfdCAqKmluaXRfZm5jX3B0cjsKLQlnZCA9IChnZF90ICopIENGR19HQkxfREFUQV9PRkZTRVQ7CisJZ2QgPSAoZ2RfdCAqKSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVDsKICNpZiBkZWZpbmVkKENPTkZJR19DTURfRkxBU0gpCiAJdWxvbmcgZmxhc2hfc2l6ZSA9IDA7CiAjZW5kaWYKIAlhc20gKCJub3AiKTsJLyogRklYTUUgZ2QgaXMgbm90IGluaXRpYWxpemUgLSB3YWl0ICovCi0JbWVtc2V0ICgodm9pZCAqKWdkLCAwLCBDRkdfR0JMX0RBVEFfU0laRSk7CisJbWVtc2V0ICgodm9pZCAqKWdkLCAwLCBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpOwogCWdkLT5iZCA9IChiZF90ICopIChnZCArIDEpOwkvKiBBdCBlbmQgb2YgZ2xvYmFsIGRhdGEgKi8KIAlnZC0+YmF1ZHJhdGUgPSBDT05GSUdfQkFVRFJBVEU7CiAJYmQgPSBnZC0+YmQ7CiAJYmQtPmJpX2JhdWRyYXRlID0gQ09ORklHX0JBVURSQVRFOwotCWJkLT5iaV9tZW1zdGFydCA9IENGR19TRFJBTV9CQVNFOwotCWJkLT5iaV9tZW1zaXplID0gQ0ZHX1NEUkFNX1NJWkU7CisJYmQtPmJpX21lbXN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWJkLT5iaV9tZW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFOwogCiAJLyogSW5pdGlhbGlzZSBtYWxsb2MoKSBhcmVhICovCiAJbWVtX21hbGxvY19pbml0ICgpOwpAQCAtMTMxLDEwICsxMzEsMTAgQEAKIAl9CiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfRkxBU0gpCi0JYmQtPmJpX2ZsYXNoc3RhcnQgPSBDRkdfRkxBU0hfQkFTRTsKKwliZC0+YmlfZmxhc2hzdGFydCA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAlpZiAoMCA8IChmbGFzaF9zaXplID0gZmxhc2hfaW5pdCAoKSkpIHsKIAkJYmQtPmJpX2ZsYXNoc2l6ZSA9IGZsYXNoX3NpemU7Ci0JCWJkLT5iaV9mbGFzaG9mZnNldCA9IENGR19GTEFTSF9CQVNFICsgZmxhc2hfc2l6ZTsKKwkJYmQtPmJpX2ZsYXNob2Zmc2V0ID0gQ09ORklHX1NZU19GTEFTSF9CQVNFICsgZmxhc2hfc2l6ZTsKIAl9IGVsc2UgewogCQlwdXRzICgiRmxhc2ggaW5pdCBGQUlMRUQiKTsKIAkJYmQtPmJpX2ZsYXNoc3RhcnQgPSAwOwpkaWZmIC0tZ2l0IGEvbGliX21pY3JvYmxhemUvdGltZS5jIGIvbGliX21pY3JvYmxhemUvdGltZS5jCmluZGV4IGI1ZDhmMTkuLmNiYjQzNDEgMTAwNjQ0Ci0tLSBhL2xpYl9taWNyb2JsYXplL3RpbWUuYworKysgYi9saWJfbWljcm9ibGF6ZS90aW1lLmMKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWZkZWYgQ0ZHX1RJTUVSXzAKKyNpZmRlZiBDT05GSUdfU1lTX1RJTUVSXzAKIHZvaWQgdWRlbGF5ICh1bnNpZ25lZCBsb25nIHVzZWMpCiB7CiAJaW50IGk7CmRpZmYgLS1naXQgYS9saWJfbWlwcy9ib2FyZC5jIGIvbGliX21pcHMvYm9hcmQuYwppbmRleCA4YzFhZjc2Li43N2UxY2M4IDEwMDY0NAotLS0gYS9saWJfbWlwcy9ib2FyZC5jCisrKyBiL2xpYl9taXBzL2JvYXJkLmMKQEAgLTMzLDEyICszMywxMiBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotI2lmICggKChDT05GSUdfRU5WX0FERFIrQ09ORklHX0VOVl9TSVpFKSA8IENGR19NT05JVE9SX0JBU0UpIHx8IFwKLSAgICAgIChDT05GSUdfRU5WX0FERFIgPj0gKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pKSApIHx8IFwKKyNpZiAoICgoQ09ORklHX0VOVl9BRERSK0NPTkZJR19FTlZfU0laRSkgPCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgfHwgXAorICAgICAgKENPTkZJR19FTlZfQUREUiA+PSAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKSkgKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX05WUkFNKQotI2RlZmluZQlUT1RBTF9NQUxMT0NfTEVOCShDRkdfTUFMTE9DX0xFTiArIENPTkZJR19FTlZfU0laRSkKKyNkZWZpbmUJVE9UQUxfTUFMTE9DX0xFTgkoQ09ORklHX1NZU19NQUxMT0NfTEVOICsgQ09ORklHX0VOVl9TSVpFKQogI2Vsc2UKLSNkZWZpbmUJVE9UQUxfTUFMTE9DX0xFTglDRkdfTUFMTE9DX0xFTgorI2RlZmluZQlUT1RBTF9NQUxMT0NfTEVOCUNPTkZJR19TWVNfTUFMTE9DX0xFTgogI2VuZGlmCiAKICN1bmRlZiBERUJVRwpAQCAtNzUsNyArNzUsNyBAQAogICovCiBzdGF0aWMgdm9pZCBtZW1fbWFsbG9jX2luaXQgKHZvaWQpCiB7Ci0JdWxvbmcgZGVzdF9hZGRyID0gQ0ZHX01PTklUT1JfQkFTRSArIGdkLT5yZWxvY19vZmY7CisJdWxvbmcgZGVzdF9hZGRyID0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBnZC0+cmVsb2Nfb2ZmOwogCiAJbWVtX21hbGxvY19lbmQgPSBkZXN0X2FkZHI7CiAJbWVtX21hbGxvY19zdGFydCA9IGRlc3RfYWRkciAtIFRPVEFMX01BTExPQ19MRU47CkBAIC0xMjMsNyArMTIzLDcgQEAKIAlyZXR1cm4gKDApOwogfQogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiBzdGF0aWMgdm9pZCBkaXNwbGF5X2ZsYXNoX2NvbmZpZyh1bG9uZyBzaXplKQogewogCXB1dHMgKCJGbGFzaDogIik7CkBAIC0xODcsNyArMTg3LDcgQEAKIAlnZF90IGdkX2RhdGEsICppZDsKIAliZF90ICpiZDsKIAlpbml0X2ZuY190ICoqaW5pdF9mbmNfcHRyOwotCXVsb25nIGFkZHIsIGFkZHJfc3AsIGxlbiA9ICh1bG9uZykmdWJvb3RfZW5kIC0gQ0ZHX01PTklUT1JfQkFTRTsKKwl1bG9uZyBhZGRyLCBhZGRyX3NwLCBsZW4gPSAodWxvbmcpJnVib290X2VuZCAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFOwogCXVsb25nICpzOwogI2lmZGVmIENPTkZJR19QVVJQTEUKIAl2b2lkIGNvcHlfY29kZSAodWxvbmcpOwpAQCAtMjExLDcgKzIxMSw3IEBACiAJICogTm93IHRoYXQgd2UgaGF2ZSBEUkFNIG1hcHBlZCBhbmQgd29ya2luZywgd2UgY2FuCiAJICogcmVsb2NhdGUgdGhlIGNvZGUgYW5kIGNvbnRpbnVlIHJ1bm5pbmcgZnJvbSBEUkFNLgogCSAqLwotCWFkZHIgPSBDRkdfU0RSQU1fQkFTRSArIGdkLT5yYW1fc2l6ZTsKKwlhZGRyID0gQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZ2QtPnJhbV9zaXplOwogCiAJLyogV2UgY2FuIHJlc2VydmUgc29tZSBSQU0gIm9uIHRvcCIgaGVyZS4KIAkgKi8KQEAgLTI1MiwxMCArMjUyLDEwIEBACiAKIAkvKiBSZXNlcnZlIG1lbW9yeSBmb3IgYm9vdCBwYXJhbXMuCiAJICovCi0JYWRkcl9zcCAtPSBDRkdfQk9PVFBBUkFNU19MRU47CisJYWRkcl9zcCAtPSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOOwogCWJkLT5iaV9ib290X3BhcmFtcyA9IGFkZHJfc3A7CiAJZGVidWcgKCJSZXNlcnZpbmcgJWRrIGZvciBib290IHBhcmFtcygpIGF0OiAlMDhseFxuIiwKLQkJCUNGR19CT09UUEFSQU1TX0xFTiA+PiAxMCwgYWRkcl9zcCk7CisJCQlDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOID4+IDEwLCBhZGRyX3NwKTsKIAogCS8qCiAJICogRmluYWxseSwgd2Ugc2V0IHVwIGEgbmV3IChiaWdnZXIpIHN0YWNrLgpAQCAtMjc0LDcgKzI3NCw3IEBACiAJLyoKIAkgKiBTYXZlIGxvY2FsIHZhcmlhYmxlcyB0byBib2FyZCBpbmZvIHN0cnVjdAogCSAqLwotCWJkLT5iaV9tZW1zdGFydAk9IENGR19TRFJBTV9CQVNFOwkvKiBzdGFydCBvZiAgRFJBTSBtZW1vcnkgKi8KKwliZC0+YmlfbWVtc3RhcnQJPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CS8qIHN0YXJ0IG9mICBEUkFNIG1lbW9yeSAqLwogCWJkLT5iaV9tZW1zaXplCT0gZ2QtPnJhbV9zaXplOwkJLyogc2l6ZSAgb2YgIERSQU0gbWVtb3J5IGluIGJ5dGVzICovCiAJYmQtPmJpX2JhdWRyYXRlCT0gZ2QtPmJhdWRyYXRlOwkJLyogQ29uc29sZSBCYXVkcmF0ZSAqLwogCkBAIC0zMDQsNyArMzA0LDcgQEAKIHZvaWQgYm9hcmRfaW5pdF9yIChnZF90ICppZCwgdWxvbmcgZGVzdF9hZGRyKQogewogCWNtZF90YmxfdCAqY21kdHA7Ci0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAJdWxvbmcgc2l6ZTsKICNlbmRpZgogCWV4dGVybiB2b2lkIG1hbGxvY19iaW5fcmVsb2MgKHZvaWQpOwpAQCAtMzIwLDcgKzMyMCw3IEBACiAKIAlkZWJ1ZyAoIk5vdyBydW5uaW5nIGluIFJBTSAtIFUtQm9vdCBhdDogJTA4bHhcbiIsIGRlc3RfYWRkcik7CiAKLQlnZC0+cmVsb2Nfb2ZmID0gZGVzdF9hZGRyIC0gQ0ZHX01PTklUT1JfQkFTRTsKKwlnZC0+cmVsb2Nfb2ZmID0gZGVzdF9hZGRyIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0U7CiAKIAltb25pdG9yX2ZsYXNoX2xlbiA9ICh1bG9uZykmdWJvb3RfZW5kX2RhdGEgLSBkZXN0X2FkZHI7CiAKQEAgLTM0NSw3ICszNDUsNyBAQAogCQkJYWRkciA9ICh1bG9uZykoY21kdHAtPnVzYWdlKSArIGdkLT5yZWxvY19vZmY7CiAJCQljbWR0cC0+dXNhZ2UgPSAoY2hhciAqKWFkZHI7CiAJCX0KLSNpZmRlZglDRkdfTE9OR0hFTFAKKyNpZmRlZglDT05GSUdfU1lTX0xPTkdIRUxQCiAJCWlmIChjbWR0cC0+aGVscCkgewogCQkJYWRkciA9ICh1bG9uZykoY21kdHAtPmhlbHApICsgZ2QtPnJlbG9jX29mZjsKIAkJCWNtZHRwLT5oZWxwID0gKGNoYXIgKilhZGRyOwpAQCAtMzU5LDE1ICszNTksMTUgQEAKIAogCWJkID0gZ2QtPmJkOwogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAJLyogY29uZmlndXJlIGF2YWlsYWJsZSBGTEFTSCBiYW5rcyAqLwogCXNpemUgPSBmbGFzaF9pbml0KCk7CiAJZGlzcGxheV9mbGFzaF9jb25maWcgKHNpemUpOwogCWJkLT5iaV9mbGFzaHNpemUgPSBzaXplOwogI2VuZGlmCiAKLQliZC0+YmlfZmxhc2hzdGFydCA9IENGR19GTEFTSF9CQVNFOwotI2lmIENGR19NT05JVE9SX0JBU0UgPT0gQ0ZHX0ZMQVNIX0JBU0UKKwliZC0+YmlfZmxhc2hzdGFydCA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA9PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAliZC0+YmlfZmxhc2hvZmZzZXQgPSBtb25pdG9yX2ZsYXNoX2xlbjsJLyogcmVzZXJ2ZWQgYXJlYSBmb3IgVS1Cb290ICovCiAjZWxzZQogCWJkLT5iaV9mbGFzaG9mZnNldCA9IDA7CmRpZmYgLS1naXQgYS9saWJfbWlwcy90aW1lLmMgYi9saWJfbWlwcy90aW1lLmMKaW5kZXggMWU5Mjc4OS4uMDdlMzU2ZCAxMDA2NDQKLS0tIGEvbGliX21pcHMvdGltZS5jCisrKyBiL2xpYl9taXBzL3RpbWUuYwpAQCAtMjcsNyArMjcsNyBAQAogc3RhdGljIHVuc2lnbmVkIGxvbmcgdGltZXN0YW1wOwogCiAvKiBob3cgbWFueSBjb3VudGVyIGN5Y2xlcyBpbiBhIGppZmZ5ICovCi0jZGVmaW5lIENZQ0xFU19QRVJfSklGRlkJKENGR19NSVBTX1RJTUVSX0ZSRVEgKyBDRkdfSFogLyAyKSAvIENGR19IWgorI2RlZmluZSBDWUNMRVNfUEVSX0pJRkZZCShDT05GSUdfU1lTX01JUFNfVElNRVJfRlJFUSArIENPTkZJR19TWVNfSFogLyAyKSAvIENPTkZJR19TWVNfSFoKIAogLyoKICAqIHRpbWVyIHdpdGhvdXQgaW50ZXJydXB0cwpAQCAtNzQsNyArNzQsNyBAQAogewogCXVuc2lnbmVkIGludCB0bW87CiAKLQl0bW8gPSByZWFkX2MwX2NvdW50KCkgKyAodXNlYyAqIChDRkdfTUlQU19USU1FUl9GUkVRIC8gMTAwMDAwMCkpOworCXRtbyA9IHJlYWRfYzBfY291bnQoKSArICh1c2VjICogKENPTkZJR19TWVNfTUlQU19USU1FUl9GUkVRIC8gMTAwMDAwMCkpOwogCXdoaWxlICgodG1vIC0gcmVhZF9jMF9jb3VudCgpKSA8IDB4N2ZmZmZmZmYpCiAJCS8qTk9QKi87CiB9CkBAIC05NCw1ICs5NCw1IEBACiAgKi8KIHVsb25nIGdldF90YmNsayh2b2lkKQogewotCXJldHVybiBDRkdfSFo7CisJcmV0dXJuIENPTkZJR19TWVNfSFo7CiB9CmRpZmYgLS1naXQgYS9saWJfbmlvcy9ib2FyZC5jIGIvbGliX25pb3MvYm9hcmQuYwppbmRleCBjZGFmNzUzLi4wMjRiZWI1IDEwMDY0NAotLS0gYS9saWJfbmlvcy9ib2FyZC5jCisrKyBiL2xpYl9uaW9zL2JvYXJkLmMKQEAgLTYzLDggKzYzLDggQEAKICAqLwogc3RhdGljIHZvaWQgbWVtX21hbGxvY19pbml0ICh2b2lkKQogewotCW1lbV9tYWxsb2Nfc3RhcnQgPSBDRkdfTUFMTE9DX0JBU0U7Ci0JbWVtX21hbGxvY19lbmQgPSBtZW1fbWFsbG9jX3N0YXJ0ICsgQ0ZHX01BTExPQ19MRU47CisJbWVtX21hbGxvY19zdGFydCA9IENPTkZJR19TWVNfTUFMTE9DX0JBU0U7CisJbWVtX21hbGxvY19lbmQgPSBtZW1fbWFsbG9jX3N0YXJ0ICsgQ09ORklHX1NZU19NQUxMT0NfTEVOOwogCW1lbV9tYWxsb2NfYnJrID0gbWVtX21hbGxvY19zdGFydDsKIAltZW1zZXQgKCh2b2lkICopIG1lbV9tYWxsb2Nfc3RhcnQsCiAJCTAsCkBAIC0xMTMsMjUgKzExMywyNSBAQAogCWludCBpOwogCiAJLyogUG9pbnRlciBpcyB3cml0YWJsZSBzaW5jZSB3ZSBhbGxvY2F0ZWQgYSByZWdpc3RlciBmb3IgaXQuCi0JICogTmlvcyB0cmVhdHMgQ0ZHX0dCTF9EQVRBX09GRlNFVCBhcyBhbiBhZGRyZXNzLgorCSAqIE5pb3MgdHJlYXRzIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIGFzIGFuIGFkZHJlc3MuCiAJICovCi0JZ2QgPSAoZ2RfdCAqKUNGR19HQkxfREFUQV9PRkZTRVQ7CisJZ2QgPSAoZ2RfdCAqKUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUOwogCS8qIGNvbXBpbGVyIG9wdGltaXphdGlvbiBiYXJyaWVyIG5lZWRlZCBmb3IgR0NDID49IDMuNCAqLwogCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiAKLQltZW1zZXQoIGdkLCAwLCBDRkdfR0JMX0RBVEFfU0laRSApOworCW1lbXNldCggZ2QsIDAsIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSApOwogCiAJZ2QtPmJkID0gKGJkX3QgKikoZ2QrMSk7CS8qIEF0IGVuZCBvZiBnbG9iYWwgZGF0YSAqLwogCWdkLT5iYXVkcmF0ZSA9IENPTkZJR19CQVVEUkFURTsKIAlnZC0+Y3B1X2NsayA9IENPTkZJR19TWVNfQ0xLX0ZSRVE7CiAKIAliZCA9IGdkLT5iZDsKLQliZC0+YmlfbWVtc3RhcnQJPSBDRkdfU0RSQU1fQkFTRTsKLQliZC0+YmlfbWVtc2l6ZSA9IENGR19TRFJBTV9TSVpFOwotCWJkLT5iaV9mbGFzaHN0YXJ0ID0gQ0ZHX0ZMQVNIX0JBU0U7Ci0jaWYJZGVmaW5lZChDRkdfU1JBTV9CQVNFKSAmJiBkZWZpbmVkKENGR19TUkFNX1NJWkUpCi0JYmQtPmJpX3NyYW1zdGFydD0gQ0ZHX1NSQU1fQkFTRTsKLQliZC0+Ymlfc3JhbXNpemUJPSBDRkdfU1JBTV9TSVpFOworCWJkLT5iaV9tZW1zdGFydAk9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsKKwliZC0+YmlfbWVtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRTsKKwliZC0+YmlfZmxhc2hzdGFydCA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKKyNpZglkZWZpbmVkKENPTkZJR19TWVNfU1JBTV9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfU1JBTV9TSVpFKQorCWJkLT5iaV9zcmFtc3RhcnQ9IENPTkZJR19TWVNfU1JBTV9CQVNFOworCWJkLT5iaV9zcmFtc2l6ZQk9IENPTkZJR19TWVNfU1JBTV9TSVpFOwogI2VuZGlmCiAJYmQtPmJpX2JhdWRyYXRlCT0gQ09ORklHX0JBVURSQVRFOwogCmRpZmYgLS1naXQgYS9saWJfbmlvcy9tdWx0LmMgYi9saWJfbmlvcy9tdWx0LmMKaW5kZXggNjZiYjY0ZC4uZWM4MTM5ZSAxMDA2NDQKLS0tIGEvbGliX25pb3MvbXVsdC5jCisrKyBiL2xpYl9uaW9zL211bHQuYwpAQCAtMjAsNyArMjAsNyBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAKLSNpZiAhZGVmaW5lZChDRkdfTklPU19NVUxUX0hXKSAmJiAhZGVmaW5lZChDRkdfTklPU19NVUxUX01TVEVQKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTklPU19NVUxUX0hXKSAmJiAhZGVmaW5lZChDT05GSUdfU1lTX05JT1NfTVVMVF9NU1RFUCkKIAogI2luY2x1ZGUgIm1hdGguaCIKIApAQCAtNTMsNCArNTMsNCBAQAogCXJldHVybiBjOwogfQogCi0jZW5kaWYgLyohZGVmaW5lZChDRkdfTklPU19NVUxUX0hXKSAmJiAhZGVmaW5lZChDRkdfTklPU19NVUxUX01TVEVQKSAqLworI2VuZGlmIC8qIWRlZmluZWQoQ09ORklHX1NZU19OSU9TX01VTFRfSFcpICYmICFkZWZpbmVkKENPTkZJR19TWVNfTklPU19NVUxUX01TVEVQKSAqLwpkaWZmIC0tZ2l0IGEvbGliX25pb3MyL2JvYXJkLmMgYi9saWJfbmlvczIvYm9hcmQuYwppbmRleCA3ZmZiM2YwLi5kNzU5ZjBmIDEwMDY0NAotLS0gYS9saWJfbmlvczIvYm9hcmQuYworKysgYi9saWJfbmlvczIvYm9hcmQuYwpAQCAtMzEsNyArMzEsNyBAQAogI2lmZGVmIENPTkZJR19TVEFUVVNfTEVECiAjaW5jbHVkZSA8c3RhdHVzX2xlZC5oPgogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfTklPU19FUENTQkFTRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19FUENTQkFTRSkKICNpbmNsdWRlIDxuaW9zMi1lcGNzLmg+CiAjZW5kaWYKIApAQCAtNjYsOCArNjYsOCBAQAogICovCiBzdGF0aWMgdm9pZCBtZW1fbWFsbG9jX2luaXQgKHZvaWQpCiB7Ci0JbWVtX21hbGxvY19zdGFydCA9IENGR19NQUxMT0NfQkFTRTsKLQltZW1fbWFsbG9jX2VuZCA9IG1lbV9tYWxsb2Nfc3RhcnQgKyBDRkdfTUFMTE9DX0xFTjsKKwltZW1fbWFsbG9jX3N0YXJ0ID0gQ09ORklHX1NZU19NQUxMT0NfQkFTRTsKKwltZW1fbWFsbG9jX2VuZCA9IG1lbV9tYWxsb2Nfc3RhcnQgKyBDT05GSUdfU1lTX01BTExPQ19MRU47CiAJbWVtX21hbGxvY19icmsgPSBtZW1fbWFsbG9jX3N0YXJ0OwogCW1lbXNldCAoKHZvaWQgKikgbWVtX21hbGxvY19zdGFydCwKIAkJMCwKQEAgLTk2LDcgKzk2LDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YpCiAJYm9hcmRfZWFybHlfaW5pdF9mLAkvKiBDYWxsIGJvYXJkLXNwZWNpZmljIGluaXQgY29kZSBlYXJseS4qLwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfTklPU19FUENTQkFTRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19FUENTQkFTRSkKIAllcGNzX3Jlc2V0LAogI2VuZGlmCiAKQEAgLTExOSwyNSArMTE5LDI1IEBACiAJaW50IGk7CiAKIAkvKiBQb2ludGVyIGlzIHdyaXRhYmxlIHNpbmNlIHdlIGFsbG9jYXRlZCBhIHJlZ2lzdGVyIGZvciBpdC4KLQkgKiBOaW9zIHRyZWF0cyBDRkdfR0JMX0RBVEFfT0ZGU0VUIGFzIGFuIGFkZHJlc3MuCisJICogTmlvcyB0cmVhdHMgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgYXMgYW4gYWRkcmVzcy4KIAkgKi8KLQlnZCA9IChnZF90ICopQ0ZHX0dCTF9EQVRBX09GRlNFVDsKKwlnZCA9IChnZF90ICopQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQ7CiAJLyogY29tcGlsZXIgb3B0aW1pemF0aW9uIGJhcnJpZXIgbmVlZGVkIGZvciBHQ0MgPj0gMy40ICovCiAJX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIAotCW1lbXNldCggZ2QsIDAsIENGR19HQkxfREFUQV9TSVpFICk7CisJbWVtc2V0KCBnZCwgMCwgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICk7CiAKIAlnZC0+YmQgPSAoYmRfdCAqKShnZCsxKTsJLyogQXQgZW5kIG9mIGdsb2JhbCBkYXRhICovCiAJZ2QtPmJhdWRyYXRlID0gQ09ORklHX0JBVURSQVRFOwogCWdkLT5jcHVfY2xrID0gQ09ORklHX1NZU19DTEtfRlJFUTsKIAogCWJkID0gZ2QtPmJkOwotCWJkLT5iaV9tZW1zdGFydAk9IENGR19TRFJBTV9CQVNFOwotCWJkLT5iaV9tZW1zaXplID0gQ0ZHX1NEUkFNX1NJWkU7Ci0JYmQtPmJpX2ZsYXNoc3RhcnQgPSBDRkdfRkxBU0hfQkFTRTsKLSNpZglkZWZpbmVkKENGR19TUkFNX0JBU0UpICYmIGRlZmluZWQoQ0ZHX1NSQU1fU0laRSkKLQliZC0+Ymlfc3JhbXN0YXJ0PSBDRkdfU1JBTV9CQVNFOwotCWJkLT5iaV9zcmFtc2l6ZQk9IENGR19TUkFNX1NJWkU7CisJYmQtPmJpX21lbXN0YXJ0CT0gQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWJkLT5iaV9tZW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFOworCWJkLT5iaV9mbGFzaHN0YXJ0ID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOworI2lmCWRlZmluZWQoQ09ORklHX1NZU19TUkFNX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19TUkFNX1NJWkUpCisJYmQtPmJpX3NyYW1zdGFydD0gQ09ORklHX1NZU19TUkFNX0JBU0U7CisJYmQtPmJpX3NyYW1zaXplCT0gQ09ORklHX1NZU19TUkFNX1NJWkU7CiAjZW5kaWYKIAliZC0+YmlfYmF1ZHJhdGUJPSBDT05GSUdfQkFVRFJBVEU7CiAKZGlmZiAtLWdpdCBhL2xpYl9uaW9zMi9jYWNoZS5TIGIvbGliX25pb3MyL2NhY2hlLlMKaW5kZXggZWI3NzM1YS4uZWUzYjRiNyAxMDA2NDQKLS0tIGEvbGliX25pb3MyL2NhY2hlLlMKKysrIGIvbGliX25pb3MyL2NhY2hlLlMKQEAgLTI5LDggKzI5LDggQEAKIAogZmx1c2hfZGNhY2hlOgogCWFkZAlyNSwgcjUsIHI0Ci0JbW92aGkJcjgsICVoaShDRkdfRENBQ0hFTElORV9TSVpFKQotCW9yaQlyOCwgcjgsICVsbyhDRkdfRENBQ0hFTElORV9TSVpFKQorCW1vdmhpCXI4LCAlaGkoQ09ORklHX1NZU19EQ0FDSEVMSU5FX1NJWkUpCisJb3JpCXI4LCByOCwgJWxvKENPTkZJR19TWVNfRENBQ0hFTElORV9TSVpFKQogMDoJZmx1c2hkCTAocjQpCiAJYWRkCXI0LCByNCwgcjgKIAlibHR1CXI0LCByNSwgMGIKQEAgLTQxLDggKzQxLDggQEAKIAogZmx1c2hfaWNhY2hlOgogCWFkZAlyNSwgcjUsIHI0Ci0JbW92aGkJcjgsICVoaShDRkdfSUNBQ0hFTElORV9TSVpFKQotCW9yaQlyOCwgcjgsICVsbyhDRkdfSUNBQ0hFTElORV9TSVpFKQorCW1vdmhpCXI4LCAlaGkoQ09ORklHX1NZU19JQ0FDSEVMSU5FX1NJWkUpCisJb3JpCXI4LCByOCwgJWxvKENPTkZJR19TWVNfSUNBQ0hFTElORV9TSVpFKQogMToJZmx1c2hpCXI0CiAJYWRkCXI0LCByNCwgcjgKIAlibHR1CXI0LCByNSwgMWIKQEAgLTU1LDE2ICs1NSwxNiBAQAogCW1vdglyOSwgcjQKIAltb3YJcjEwLCByNQogCi0JbW92aGkJcjgsICVoaShDRkdfRENBQ0hFTElORV9TSVpFKQotCW9yaQlyOCwgcjgsICVsbyhDRkdfRENBQ0hFTElORV9TSVpFKQorCW1vdmhpCXI4LCAlaGkoQ09ORklHX1NZU19EQ0FDSEVMSU5FX1NJWkUpCisJb3JpCXI4LCByOCwgJWxvKENPTkZJR19TWVNfRENBQ0hFTElORV9TSVpFKQogMDoJZmx1c2hkCTAocjQpCiAJYWRkCXI0LCByNCwgcjgKIAlibHR1CXI0LCByNSwgMGIKIAogCW1vdglyNCwgcjkKIAltb3YJcjUsIHIxMAotCW1vdmhpCXI4LCAlaGkoQ0ZHX0lDQUNIRUxJTkVfU0laRSkKLQlvcmkJcjgsIHI4LCAlbG8oQ0ZHX0lDQUNIRUxJTkVfU0laRSkKKwltb3ZoaQlyOCwgJWhpKENPTkZJR19TWVNfSUNBQ0hFTElORV9TSVpFKQorCW9yaQlyOCwgcjgsICVsbyhDT05GSUdfU1lTX0lDQUNIRUxJTkVfU0laRSkKIDE6CWZsdXNoaQlyNAogCWFkZAlyNCwgcjQsIHI4CiAJYmx0dQlyNCwgcjUsIDFiCmRpZmYgLS1naXQgYS9saWJfbmlvczIvbXVsdC5jIGIvbGliX25pb3MyL211bHQuYwppbmRleCA2NmJiNjRkLi5lYzgxMzllIDEwMDY0NAotLS0gYS9saWJfbmlvczIvbXVsdC5jCisrKyBiL2xpYl9uaW9zMi9tdWx0LmMKQEAgLTIwLDcgKzIwLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWYgIWRlZmluZWQoQ0ZHX05JT1NfTVVMVF9IVykgJiYgIWRlZmluZWQoQ0ZHX05JT1NfTVVMVF9NU1RFUCkKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX05JT1NfTVVMVF9IVykgJiYgIWRlZmluZWQoQ09ORklHX1NZU19OSU9TX01VTFRfTVNURVApCiAKICNpbmNsdWRlICJtYXRoLmgiCiAKQEAgLTUzLDQgKzUzLDQgQEAKIAlyZXR1cm4gYzsKIH0KIAotI2VuZGlmIC8qIWRlZmluZWQoQ0ZHX05JT1NfTVVMVF9IVykgJiYgIWRlZmluZWQoQ0ZHX05JT1NfTVVMVF9NU1RFUCkgKi8KKyNlbmRpZiAvKiFkZWZpbmVkKENPTkZJR19TWVNfTklPU19NVUxUX0hXKSAmJiAhZGVmaW5lZChDT05GSUdfU1lTX05JT1NfTVVMVF9NU1RFUCkgKi8KZGlmZiAtLWdpdCBhL2xpYl9wcGMvYm9hcmQuYyBiL2xpYl9wcGMvYm9hcmQuYwppbmRleCAzZmRkOTRiLi5jZTA3YzRlIDEwMDY0NAotLS0gYS9saWJfcHBjL2JvYXJkLmMKKysrIGIvbGliX3BwYy9ib2FyZC5jCkBAIC01Miw3ICs1Miw3IEBACiAjZW5kaWYKICNpbmNsdWRlIDxuZXQuaD4KICNpbmNsdWRlIDxzZXJpYWwuaD4KLSNpZmRlZiBDRkdfQUxMT0NfRFBSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCiAjaWYgIWRlZmluZWQoQ09ORklHX0NQTTIpCiAjaW5jbHVkZSA8Y29tbXByb2MuaD4KICNlbmRpZgpAQCAtNjgsMTQgKzY4LDE0IEBACiAjaWYgZGVmaW5lZChDT05GSUdfTE9HQlVGRkVSKQogI2luY2x1ZGUgPGxvZ2J1ZmYuaD4KICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX0lOSVRfUkFNX0xPQ0spICYmIGRlZmluZWQoQ09ORklHX0U1MDApCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0spICYmIGRlZmluZWQoQ09ORklHX0U1MDApCiAjaW5jbHVkZSA8YXNtL2NhY2hlLmg+CiAjZW5kaWYKICNpZmRlZiBDT05GSUdfUFMyS0JECiAjaW5jbHVkZSA8a2V5Ym9hcmQuaD4KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1VQREFURV9GTEFTSF9TSVpFCisjaWZkZWYgQ09ORklHX1NZU19VUERBVEVfRkxBU0hfU0laRQogZXh0ZXJuIGludCB1cGRhdGVfZmxhc2hfc2l6ZSAoaW50IGZsYXNoX3NpemUpOwogI2VuZGlmCiAKQEAgLTEwNywxNyArMTA3LDE3IEBACiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19FTUJFRERFRCkKLSNkZWZpbmUgVE9UQUxfTUFMTE9DX0xFTglDRkdfTUFMTE9DX0xFTgotI2VsaWYgKCAoKENPTkZJR19FTlZfQUREUitDT05GSUdfRU5WX1NJWkUpIDwgQ0ZHX01PTklUT1JfQkFTRSkgfHwgXAotCShDT05GSUdfRU5WX0FERFIgPj0gKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pKSApIHx8IFwKKyNkZWZpbmUgVE9UQUxfTUFMTE9DX0xFTglDT05GSUdfU1lTX01BTExPQ19MRU4KKyNlbGlmICggKChDT05GSUdfRU5WX0FERFIrQ09ORklHX0VOVl9TSVpFKSA8IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSB8fCBcCisJKENPTkZJR19FTlZfQUREUiA+PSAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKSkgKSB8fCBcCiAgICAgICBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fTlZSQU0pCi0jZGVmaW5lCVRPVEFMX01BTExPQ19MRU4JKENGR19NQUxMT0NfTEVOICsgQ09ORklHX0VOVl9TSVpFKQorI2RlZmluZQlUT1RBTF9NQUxMT0NfTEVOCShDT05GSUdfU1lTX01BTExPQ19MRU4gKyBDT05GSUdfRU5WX1NJWkUpCiAjZWxzZQotI2RlZmluZQlUT1RBTF9NQUxMT0NfTEVOCUNGR19NQUxMT0NfTEVOCisjZGVmaW5lCVRPVEFMX01BTExPQ19MRU4JQ09ORklHX1NZU19NQUxMT0NfTEVOCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKENGR19NRU1fVE9QX0hJREUpCi0jZGVmaW5lIENGR19NRU1fVE9QX0hJREUJMAorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTUVNX1RPUF9ISURFKQorI2RlZmluZSBDT05GSUdfU1lTX01FTV9UT1BfSElERQkwCiAjZW5kaWYKIAogZXh0ZXJuIHVsb25nIF9faW5pdF9lbmQ7CkBAIC0xNDYsNyArMTQ2LDcgQEAKIHN0YXRpYyB2b2lkIG1lbV9tYWxsb2NfaW5pdCAodm9pZCkKIHsKICNpZiAhZGVmaW5lZChDT05GSUdfUkVMT0NfRklYVVBfV09SS1MpCi0JbWVtX21hbGxvY19lbmQgPSBDRkdfTU9OSVRPUl9CQVNFICsgZ2QtPnJlbG9jX29mZjsKKwltZW1fbWFsbG9jX2VuZCA9IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgZ2QtPnJlbG9jX29mZjsKICNlbmRpZgogCW1lbV9tYWxsb2Nfc3RhcnQgPSBtZW1fbWFsbG9jX2VuZCAtIFRPVEFMX01BTExPQ19MRU47CiAJbWVtX21hbGxvY19icmsgPSBtZW1fbWFsbG9jX3N0YXJ0OwpAQCAtMjM0LDcgKzIzNCw3IEBACiBzdGF0aWMgaW50IGluaXRfZnVuY19pMmMgKHZvaWQpCiB7CiAJcHV0cyAoIkkyQzogICAiKTsKLQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAJcHV0cyAoInJlYWR5XG4iKTsKIAlyZXR1cm4gKDApOwogfQpAQCAtMjkxLDcgKzI5MSw3IEBACiAjZW5kaWYKIAlpbml0X3RpbWViYXNlLAogI2VuZGlmCi0jaWZkZWYgQ0ZHX0FMTE9DX0RQUkFNCisjaWZkZWYgQ09ORklHX1NZU19BTExPQ19EUFJBTQogI2lmICFkZWZpbmVkKENPTkZJR19DUE0yKQogCWRwcmFtX2luaXQsCiAjZW5kaWYKQEAgLTM0Myw5ICszNDMsOSBAQAogI2VuZGlmCiAJSU5JVF9GVU5DX1dBVENIRE9HX1JFU0VUCiAJaW5pdF9mdW5jX3JhbSwKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIAl0ZXN0ZHJhbSwKLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1QgKi8KIAlJTklUX0ZVTkNfV0FUQ0hET0dfUkVTRVQKIAogCU5VTEwsCQkJLyogVGVybWluYXRlIHRoaXMgbGlzdCAqLwpAQCAtMzg0LDcgKzM4NCw3IEBACiAjaWZkZWYgQ09ORklHX0xPR0JVRkZFUgogdW5zaWduZWQgbG9uZyBsb2didWZmZXJfYmFzZSh2b2lkKQogewotCXJldHVybiBDRkdfU0RSQU1fQkFTRSArIGdldF9lZmZlY3RpdmVfbWVtc2l6ZSgpIC0gTE9HQlVGRl9MRU47CisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGdldF9lZmZlY3RpdmVfbWVtc2l6ZSgpIC0gTE9HQlVGRl9MRU47CiB9CiAjZW5kaWYKIApAQCAtNDAyLDcgKzQwMiw3IEBACiAjZW5kaWYKIAogCS8qIFBvaW50ZXIgaXMgd3JpdGFibGUgc2luY2Ugd2UgYWxsb2NhdGVkIGEgcmVnaXN0ZXIgZm9yIGl0ICovCi0JZ2QgPSAoZ2RfdCAqKSAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKKwlnZCA9IChnZF90ICopIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCk7CiAJLyogY29tcGlsZXIgb3B0aW1pemF0aW9uIGJhcnJpZXIgbmVlZGVkIGZvciBHQ0MgPj0gMy40ICovCiAJX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIApAQCAtNDMwLDcgKzQzMCw3IEBACiAJICogIC0gbW9uaXRvciBjb2RlCiAJICogIC0gYm9hcmQgaW5mbyBzdHJ1Y3QKIAkgKi8KLQlsZW4gPSAodWxvbmcpJl9lbmQgLSBDRkdfTU9OSVRPUl9CQVNFOworCWxlbiA9ICh1bG9uZykmX2VuZCAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFOwogCiAJLyoKIAkgKiBTdWJ0cmFjdCBzcGVjaWZpZWQgYW1vdW50IG9mIG1lbW9yeSB0byBoaWRlIHNvIHRoYXQgaXQgd29uJ3QKQEAgLTQ0Miw5ICs0NDIsOSBAQAogCSAqIG1lbW9yeSBzaXplIGZyb20gdGhlIFNEUkFNIGNvbnRyb2xsZXIgc2V0dXAgd2lsbCBoYXZlIHRvCiAJICogZ2V0IGZpeGVkLgogCSAqLwotCWdkLT5yYW1fc2l6ZSAtPSBDRkdfTUVNX1RPUF9ISURFOworCWdkLT5yYW1fc2l6ZSAtPSBDT05GSUdfU1lTX01FTV9UT1BfSElERTsKIAotCWFkZHIgPSBDRkdfU0RSQU1fQkFTRSArIGdldF9lZmZlY3RpdmVfbWVtc2l6ZSgpOworCWFkZHIgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBnZXRfZWZmZWN0aXZlX21lbXNpemUoKTsKIAogI2lmZGVmIENPTkZJR19MT0dCVUZGRVIKICNpZm5kZWYgQ09ORklHX0FMVF9MQl9BRERSCkBAIC01MzYsMTUgKzUzNiwxNSBAQAogCSAqIFNhdmUgbG9jYWwgdmFyaWFibGVzIHRvIGJvYXJkIGluZm8gc3RydWN0CiAJICovCiAKLQliZC0+YmlfbWVtc3RhcnQgID0gQ0ZHX1NEUkFNX0JBU0U7CS8qIHN0YXJ0IG9mICBEUkFNIG1lbW9yeQkqLworCWJkLT5iaV9tZW1zdGFydCAgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CS8qIHN0YXJ0IG9mICBEUkFNIG1lbW9yeQkqLwogCWJkLT5iaV9tZW1zaXplICAgPSBnZC0+cmFtX3NpemU7CS8qIHNpemUgIG9mICBEUkFNIG1lbW9yeSBpbiBieXRlcyAqLwogCiAjaWZkZWYgQ09ORklHX0lQODYwCiAJYmQtPmJpX3NyYW1zdGFydCA9IFNSQU1fQkFTRTsJLyogc3RhcnQgb2YgIFNSQU0gbWVtb3J5CSovCiAJYmQtPmJpX3NyYW1zaXplICA9IFNSQU1fU0laRTsJLyogc2l6ZSAgb2YgIFNSQU0gbWVtb3J5CSovCiAjZWxpZiBkZWZpbmVkIENPTkZJR19NUEM4MjIwCi0JYmQtPmJpX3NyYW1zdGFydCA9IENGR19TUkFNX0JBU0U7CS8qIHN0YXJ0IG9mICBTUkFNIG1lbW9yeQkqLwotCWJkLT5iaV9zcmFtc2l6ZSAgPSBDRkdfU1JBTV9TSVpFOwkvKiBzaXplICBvZiAgU1JBTSBtZW1vcnkJKi8KKwliZC0+Ymlfc3JhbXN0YXJ0ID0gQ09ORklHX1NZU19TUkFNX0JBU0U7CS8qIHN0YXJ0IG9mICBTUkFNIG1lbW9yeQkqLworCWJkLT5iaV9zcmFtc2l6ZSAgPSBDT05GSUdfU1lTX1NSQU1fU0laRTsJLyogc2l6ZSAgb2YgIFNSQU0gbWVtb3J5CSovCiAjZWxzZQogCWJkLT5iaV9zcmFtc3RhcnQgPSAwOwkJLyogRklYTUUgKi8gLyogc3RhcnQgb2YgIFNSQU0gbWVtb3J5CSovCiAJYmQtPmJpX3NyYW1zaXplICA9IDA7CQkvKiBGSVhNRSAqLyAvKiBzaXplICBvZiAgU1JBTSBtZW1vcnkJKi8KQEAgLTU1MiwxNiArNTUyLDE2IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR184eHgpIHx8IGRlZmluZWQoQ09ORklHXzgyNjApIHx8IGRlZmluZWQoQ09ORklHXzV4eCkgfHwgXAogICAgIGRlZmluZWQoQ09ORklHX0U1MDApIHx8IGRlZmluZWQoQ09ORklHX01QQzg2eHgpCi0JYmQtPmJpX2ltbXJfYmFzZSA9IENGR19JTU1SOwkvKiBiYXNlICBvZiBJTU1SIHJlZ2lzdGVyICAgICAqLworCWJkLT5iaV9pbW1yX2Jhc2UgPSBDT05GSUdfU1lTX0lNTVI7CS8qIGJhc2UgIG9mIElNTVIgcmVnaXN0ZXIgICAgICovCiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19NUEM1eHh4KQotCWJkLT5iaV9tYmFyX2Jhc2UgPSBDRkdfTUJBUjsJLyogYmFzZSBvZiBpbnRlcm5hbCByZWdpc3RlcnMgKi8KKwliZC0+YmlfbWJhcl9iYXNlID0gQ09ORklHX1NZU19NQkFSOwkvKiBiYXNlIG9mIGludGVybmFsIHJlZ2lzdGVycyAqLwogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDODNYWCkKLQliZC0+YmlfaW1tcmJhciA9IENGR19JTU1SOworCWJkLT5iaV9pbW1yYmFyID0gQ09ORklHX1NZU19JTU1SOwogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDODIyMCkKLQliZC0+YmlfbWJhcl9iYXNlID0gQ0ZHX01CQVI7CS8qIGJhc2Ugb2YgaW50ZXJuYWwgcmVnaXN0ZXJzICovCisJYmQtPmJpX21iYXJfYmFzZSA9IENPTkZJR19TWVNfTUJBUjsJLyogYmFzZSBvZiBpbnRlcm5hbCByZWdpc3RlcnMgKi8KIAliZC0+YmlfaW5wZnJlcSAgID0gZ2QtPmlucF9jbGs7CiAJYmQtPmJpX3BjaWZyZXEgICA9IGdkLT5wY2lfY2xrOwogCWJkLT5iaV92Y29mcmVxICAgPSBnZC0+dmNvX2NsazsKQEAgLTU3MCw3ICs1NzAsNyBAQAogCiAJLyogc3RvcmUgYm9vdHBhcmFtIHRvIHNyYW0gKGJhY2t3YXJkIGNvbXBhdGlibGUpLCBoZXJlPyAqLwogCXsKLQkJdTMyICpzcmFtID0gKHUzMiAqKUNGR19TUkFNX0JBU0U7CisJCXUzMiAqc3JhbSA9ICh1MzIgKilDT05GSUdfU1lTX1NSQU1fQkFTRTsKIAkJKnNyYW0rKyA9IGdkLT5yYW1fc2l6ZTsKIAkJKnNyYW0rKyA9IGdkLT5idXNfY2xrOwogCQkqc3JhbSsrID0gZ2QtPmlucF9jbGs7CkBAIC02MDEsNyArNjAxLDcgQEAKICNlbmRpZiAvKiBDT05GSUdfTVBDNXh4eCAqLwogCWJkLT5iaV9iYXVkcmF0ZSA9IGdkLT5iYXVkcmF0ZTsJLyogQ29uc29sZSBCYXVkcmF0ZSAgICAgKi8KIAotI2lmZGVmIENGR19FWFRCRElORk8KKyNpZmRlZiBDT05GSUdfU1lTX0VYVEJESU5GTwogCXN0cm5jcHkgKChjaGFyICopYmQtPmJpX3NfdmVyc2lvbiwgIjEuMiIsIHNpemVvZiAoYmQtPmJpX3NfdmVyc2lvbikpOwogCXN0cm5jcHkgKChjaGFyICopYmQtPmJpX3JfdmVyc2lvbiwgVV9CT09UX1ZFUlNJT04sIHNpemVvZiAoYmQtPmJpX3JfdmVyc2lvbikpOwogCkBAIC02NjUsNyArNjY1LDcgQEAKIAlleHRlcm4gY2hhciAqIGVudl9uYW1lX3NwZWM7CiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfTk9fRkxBU0gKKyNpZm5kZWYgQ09ORklHX1NZU19OT19GTEFTSAogCXVsb25nIGZsYXNoX3NpemU7CiAjZW5kaWYKIApAQCAtNjc4LDcgKzY3OCw3IEBACiAJZ2QtPnJlbG9jX29mZiA9IDA7CiAJbWVtX21hbGxvY19lbmQgPSBkZXN0X2FkZHI7CiAjZWxzZQotCWdkLT5yZWxvY19vZmYgPSBkZXN0X2FkZHIgLSBDRkdfTU9OSVRPUl9CQVNFOworCWdkLT5yZWxvY19vZmYgPSBkZXN0X2FkZHIgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRTsKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1NFUklBTF9NVUxUSQpAQCAtNzE1LDcgKzcxNSw3IEBACiAJCQlhZGRyID0gKHVsb25nKShjbWR0cC0+dXNhZ2UpICsgZ2QtPnJlbG9jX29mZjsKIAkJCWNtZHRwLT51c2FnZSA9IChjaGFyICopYWRkcjsKIAkJfQotI2lmZGVmCUNGR19MT05HSEVMUAorI2lmZGVmCUNPTkZJR19TWVNfTE9OR0hFTFAKIAkJaWYgKGNtZHRwLT5oZWxwKSB7CiAJCQlhZGRyID0gKHVsb25nKShjbWR0cC0+aGVscCkgKyBnZC0+cmVsb2Nfb2ZmOwogCQkJY21kdHAtPmhlbHAgPSAoY2hhciAqKWFkZHI7CkBAIC03NDQsNyArNzQ0LDcgQEAKIAlpY2FjaGVfZW5hYmxlICgpOwkvKiBpdCdzIHRpbWUgdG8gZW5hYmxlIHRoZSBpbnN0cnVjdGlvbiBjYWNoZSAqLwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19JTklUX1JBTV9MT0NLKSAmJiBkZWZpbmVkKENPTkZJR19FNTAwKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JTklUX1JBTV9MT0NLKSAmJiBkZWZpbmVkKENPTkZJR19FNTAwKQogCXVubG9ja19yYW1faW5fY2FjaGUoKTsJLyogaXQncyB0aW1lIHRvIHVubG9jayBELWNhY2hlIGluIGU1MDAgKi8KICNlbmRpZgogCkBAIC03NzAsMTEgKzc3MCwxMSBAQAogCSAqLwogCXRyYXBfaW5pdCAoZGVzdF9hZGRyKTsKIAotI2lmICFkZWZpbmVkKENGR19OT19GTEFTSCkKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX05PX0ZMQVNIKQogCXB1dHMgKCJGTEFTSDogIik7CiAKIAlpZiAoKGZsYXNoX3NpemUgPSBmbGFzaF9pbml0ICgpKSA+IDApIHsKLSMgaWZkZWYgQ0ZHX0ZMQVNIX0NIRUNLU1VNCisjIGlmZGVmIENPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KIAkJcHJpbnRfc2l6ZSAoZmxhc2hfc2l6ZSwgIiIpOwogCQkvKgogCQkgKiBDb21wdXRlIGFuZCBwcmludCBmbGFzaCBDUkMgaWYgZmxhc2hjaGVja3N1bSBpcyBzZXQgdG8gJ3knCkBAIC03ODQsMjIgKzc4NCwyMiBAQAogCQlzID0gZ2V0ZW52ICgiZmxhc2hjaGVja3N1bSIpOwogCQlpZiAocyAmJiAoKnMgPT0gJ3knKSkgewogCQkJcHJpbnRmICgiICBDUkM6ICUwOFgiLAotCQkJCWNyYzMyICgwLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBDRkdfRkxBU0hfQkFTRSwgZmxhc2hfc2l6ZSkKKwkJCQljcmMzMiAoMCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBmbGFzaF9zaXplKQogCQkJKTsKIAkJfQogCQlwdXRjICgnXG4nKTsKLSMgZWxzZQkvKiAhQ0ZHX0ZMQVNIX0NIRUNLU1VNICovCisjIGVsc2UJLyogIUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0gKi8KIAkJcHJpbnRfc2l6ZSAoZmxhc2hfc2l6ZSwgIlxuIik7Ci0jIGVuZGlmIC8qIENGR19GTEFTSF9DSEVDS1NVTSAqLworIyBlbmRpZiAvKiBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNICovCiAJfSBlbHNlIHsKIAkJcHV0cyAoZmFpbGVkKTsKIAkJaGFuZyAoKTsKIAl9CiAKLQliZC0+YmlfZmxhc2hzdGFydCA9IENGR19GTEFTSF9CQVNFOwkvKiB1cGRhdGUgc3RhcnQgb2YgRkxBU0ggbWVtb3J5ICAgICovCisJYmQtPmJpX2ZsYXNoc3RhcnQgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CS8qIHVwZGF0ZSBzdGFydCBvZiBGTEFTSCBtZW1vcnkgICAgKi8KIAliZC0+YmlfZmxhc2hzaXplID0gZmxhc2hfc2l6ZTsJLyogc2l6ZSBvZiBGTEFTSCBtZW1vcnkgKGZpbmFsIHZhbHVlKSAqLwogCi0jaWYgZGVmaW5lZChDRkdfVVBEQVRFX0ZMQVNIX1NJWkUpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1VQREFURV9GTEFTSF9TSVpFKQogCS8qIE1ha2UgYSB1cGRhdGUgb2YgdGhlIE1lbWN0cmwuICovCiAJdXBkYXRlX2ZsYXNoX3NpemUgKGZsYXNoX3NpemUpOwogI2VuZGlmCkBAIC04MDgsMTcgKzgwOCwxNyBAQAogIyBpZiBkZWZpbmVkKENPTkZJR19QQ1VfRSkgfHwgZGVmaW5lZChDT05GSUdfT1hDKSB8fCBkZWZpbmVkKENPTkZJR19STVUpCiAJLyogZmxhc2ggbWFwcGVkIGF0IGVuZCBvZiBtZW1vcnkgbWFwICovCiAJYmQtPmJpX2ZsYXNob2Zmc2V0ID0gVEVYVF9CQVNFICsgZmxhc2hfc2l6ZTsKLSMgZWxpZiBDRkdfTU9OSVRPUl9CQVNFID09IENGR19GTEFTSF9CQVNFCisjIGVsaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPT0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJYmQtPmJpX2ZsYXNob2Zmc2V0ID0gbW9uaXRvcl9mbGFzaF9sZW47CS8qIHJlc2VydmVkIGFyZWEgZm9yIHN0YXJ0dXAgbW9uaXRvciAgKi8KICMgZWxzZQogCWJkLT5iaV9mbGFzaG9mZnNldCA9IDA7CiAjIGVuZGlmCi0jZWxzZQkvKiBDRkdfTk9fRkxBU0ggKi8KKyNlbHNlCS8qIENPTkZJR19TWVNfTk9fRkxBU0ggKi8KIAogCWJkLT5iaV9mbGFzaHNpemUgPSAwOwogCWJkLT5iaV9mbGFzaHN0YXJ0ID0gMDsKIAliZC0+YmlfZmxhc2hvZmZzZXQgPSAwOwotI2VuZGlmIC8qICFDRkdfTk9fRkxBU0ggKi8KKyNlbmRpZiAvKiAhQ09ORklHX1NZU19OT19GTEFTSCAqLwogCiAJV0FUQ0hET0dfUkVTRVQgKCk7CiAKQEAgLTg1NSw3ICs4NTUsNyBAQAogCSAqIHRoZSBlbnZpcm9ubWVudCBpcyBpbiBFRVBST00uCiAJICovCiAKLSNpZiBkZWZpbmVkKENGR19FWFRCRElORk8pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VYVEJESU5GTykKICNpZiBkZWZpbmVkKENPTkZJR180MDVHUCkgfHwgZGVmaW5lZChDT05GSUdfNDA1RVApCiAjaWYgZGVmaW5lZChDT05GSUdfSTJDRkFTVCkKIAkvKgpAQCAtODc3LDEzICs4NzcsMTMgQEAKIAliZC0+YmlfaWljX2Zhc3RbMV0gPSAwOwogI2VuZGlmCS8qIENPTkZJR19JMkNGQVNUICovCiAjZW5kaWYJLyogQ09ORklHXzQwNUdQLCBDT05GSUdfNDA1RVAgKi8KLSNlbmRpZgkvKiBDRkdfRVhUQkRJTkZPICovCisjZW5kaWYJLyogQ09ORklHX1NZU19FWFRCRElORk8gKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1NDMykKIAlzYzNfcmVhZF9lZXByb20oKTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZCAoQ09ORklHX0lEX0VFUFJPTSkgfHwgZGVmaW5lZCAoQ0ZHX0kyQ19NQUNfT0ZGU0VUKQorI2lmIGRlZmluZWQgKENPTkZJR19JRF9FRVBST00pIHx8IGRlZmluZWQgKENPTkZJR19TWVNfSTJDX01BQ19PRkZTRVQpCiAJbWFjX3JlYWRfZnJvbV9lZXByb20oKTsKICNlbmRpZgogCkBAIC0xMjg3LDcgKzEyODcsNyBAQAogCQkJc2VyaWFsX3B1dHMoaW5pdF9zdHIpOwogCQkJc2VyaWFsX3B1dHMoIlxuIik7CiAJCQlmb3IoOzspIHsKLQkJCQltZG1fcmVhZGxpbmUoY29uc29sZV9idWZmZXIsIENGR19DQlNJWkUpOworCQkJCW1kbV9yZWFkbGluZShjb25zb2xlX2J1ZmZlciwgQ09ORklHX1NZU19DQlNJWkUpOwogCQkJCWRiZygiaW5pJWQ6IFslc10iLCBpLCBjb25zb2xlX2J1ZmZlcik7CiAKIAkJCQlpZiAoKHN0cmNtcChjb25zb2xlX2J1ZmZlciwgIk9LIikgPT0gMCkgfHwKQEAgLTEzMTEsNyArMTMxMSw3IEBACiAJLyogZmluYWwgc3RhZ2UgLSB3YWl0IGZvciBjb25uZWN0ICovCiAJZm9yKDtpID4gMTspIHsgLyogaWYgJ2knID4gMSAtIHdhaXQgZm9yIGNvbm5lY3Rpb24KIAkJCQkgIG1lc3NhZ2UgZnJvbSBtb2RlbSAqLwotCQltZG1fcmVhZGxpbmUoY29uc29sZV9idWZmZXIsIENGR19DQlNJWkUpOworCQltZG1fcmVhZGxpbmUoY29uc29sZV9idWZmZXIsIENPTkZJR19TWVNfQ0JTSVpFKTsKIAkJZGJnKCJpbmlfZjogWyVzXSIsIGNvbnNvbGVfYnVmZmVyKTsKIAkJaWYgKHN0cm5jbXAoY29uc29sZV9idWZmZXIsICJDT05ORUNUIiwgNykgPT0gMCkgewogCQkJZGJnKCJpbmlfZjogY29ubmVjdGVkIik7CkBAIC0xMzMyLDcgKzEzMzIsNyBAQAogICovCiAjdW5kZWYJWFRSTl9ERUNMQVJFX0dMT0JBTF9EQVRBX1BUUgogI2RlZmluZSBYVFJOX0RFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSCS8qIGVtcHR5ID0gYWxsb2NhdGUgaGVyZSAqLwotREVDTEFSRV9HTE9CQUxfREFUQV9QVFIgPSAoZ2RfdCAqKSAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKK0RFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSID0gKGdkX3QgKikgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKTsKICNlbmRpZiAgLyogMCAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpkaWZmIC0tZ2l0IGEvbGliX3BwYy9ib290bS5jIGIvbGliX3BwYy9ib290bS5jCmluZGV4IDVhZjI1ZGQuLmQ0OTg4MTggMTAwNjQ0Ci0tLSBhL2xpYl9wcGMvYm9vdG0uYworKysgYi9saWJfcHBjL2Jvb3RtLmMKQEAgLTQxLDcgKzQxLDcgQEAKIAogI2VuZGlmCiAKLSNpZmRlZiBDRkdfSU5JVF9SQU1fTE9DSworI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwogI2luY2x1ZGUgPGFzbS9jYWNoZS5oPgogI2VuZGlmCiAKQEAgLTUxLDggKzUxLDggQEAKIHN0YXRpYyB1bG9uZyBnZXRfc3AgKHZvaWQpOwogc3RhdGljIHZvaWQgc2V0X2Nsb2Nrc19pbl9taHogKGJkX3QgKmtiZCk7CiAKLSNpZm5kZWYgQ0ZHX0xJTlVYX0xPV01FTV9NQVhfU0laRQotI2RlZmluZSBDRkdfTElOVVhfTE9XTUVNX01BWF9TSVpFCSg3NjgqMTAyNCoxMDI0KQorI2lmbmRlZiBDT05GSUdfU1lTX0xJTlVYX0xPV01FTV9NQVhfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0xJTlVYX0xPV01FTV9NQVhfU0laRQkoNzY4KjEwMjQqMTAyNCkKICNlbmRpZgogCiBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCkBAIC04NSwxNCArODUsMTQgQEAKIAogI2lmZGVmIERFQlVHCiAJaWYgKCgodTY0KWJvb3RtYXBfYmFzZSArIGJvb3RtX3NpemUpID4KLQkgICAgKENGR19TRFJBTV9CQVNFICsgKHU2NClnZC0+cmFtX3NpemUpKQorCSAgICAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgKHU2NClnZC0+cmFtX3NpemUpKQogCQlwdXRzKCJXQVJOSU5HOiBib290bV9sb3cgKyBib290bV9zaXplIGV4Y2VlZCB0b3RhbCBtZW1vcnlcbiIpOwogCWlmICgoYm9vdG1hcF9iYXNlICsgYm9vdG1fc2l6ZSkgPiBnZXRfZWZmZWN0aXZlX21lbXNpemUoKSkKIAkJcHV0cygiV0FSTklORzogYm9vdG1fbG93ICsgYm9vdG1fc2l6ZSBleGNlZWQgZWZmLiBtZW1vcnlcbiIpOwogI2VuZGlmCiAKIAlzaXplID0gbWluKGJvb3RtX3NpemUsIGdldF9lZmZlY3RpdmVfbWVtc2l6ZSgpKTsKLQlzaXplID0gbWluKHNpemUsIENGR19MSU5VWF9MT1dNRU1fTUFYX1NJWkUpOworCXNpemUgPSBtaW4oc2l6ZSwgQ09ORklHX1NZU19MSU5VWF9MT1dNRU1fTUFYX1NJWkUpOwogCiAJaWYgKHNpemUgPCBib290bV9zaXplKSB7CiAJCXVsb25nIGJhc2UgPSBib290bWFwX2Jhc2UgKyBzaXplOwpAQCAtMTA1LDcgKzEwNSw3IEBACiAJICoKIAkgKiBBbGxvY2F0ZSBzcGFjZSBmb3IgY29tbWFuZCBsaW5lIGFuZCBib2FyZCBpbmZvIC0gdGhlCiAJICogYWRkcmVzcyBzaG91bGQgYmUgYXMgaGlnaCBhcyBwb3NzaWJsZSB3aXRoaW4gdGhlIHJlYWNoIG9mCi0JICogdGhlIGtlcm5lbCAoc2VlIENGR19CT09UTUFQU1ogc2V0dGluZ3MpLCBidXQgaW4gdW51c2VkCisJICogdGhlIGtlcm5lbCAoc2VlIENPTkZJR19TWVNfQk9PVE1BUFNaIHNldHRpbmdzKSwgYnV0IGluIHVudXNlZAogCSAqIG1lbW9yeSwgd2hpY2ggbWVhbnMgZmFyIGVub3VnaCBiZWxvdyB0aGUgY3VycmVudCBzdGFjawogCSAqIHBvaW50ZXIuCiAJICovCkBAIC0xMTQsNyArMTE0LDcgQEAKIAogCS8qIGFkanVzdCBzcCBieSAxSyB0byBiZSBzYWZlICovCiAJc3AgLT0gMTAyNDsKLQlsbWJfcmVzZXJ2ZShsbWIsIHNwLCAoQ0ZHX1NEUkFNX0JBU0UgKyBnZXRfZWZmZWN0aXZlX21lbXNpemUoKSAtIHNwKSk7CisJbG1iX3Jlc2VydmUobG1iLCBzcCwgKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGdldF9lZmZlY3RpdmVfbWVtc2l6ZSgpIC0gc3ApKTsKIAogCWlmICghb2Zfc2l6ZSkgewogCQkvKiBhbGxvY2F0ZSBzcGFjZSBhbmQgaW5pdCBjb21tYW5kIGxpbmUgKi8KQEAgLTE4OSw3ICsxODksNyBAQAogCiAJc2hvd19ib290X3Byb2dyZXNzICgxNSk7CiAKLSNpZiBkZWZpbmVkKENGR19JTklUX1JBTV9MT0NLKSAmJiAhZGVmaW5lZChDT05GSUdfRTUwMCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSykgJiYgIWRlZmluZWQoQ09ORklHX0U1MDApCiAJdW5sb2NrX3JhbV9pbl9jYWNoZSgpOwogI2VuZGlmCiAKQEAgLTIxMyw3ICsyMTMsNyBAQAogCiAJCWRlYnVnICgiICAgQm9vdGluZyB1c2luZyBPRiBmbGF0IHRyZWUuLi5cbiIpOwogCQkoKmtlcm5lbCkgKChiZF90ICopb2ZfZmxhdF90cmVlLCAwLCAwLCBFUEFQUl9NQUdJQywKLQkJCSAgIENGR19CT09UTUFQU1osIDAsIDApOworCQkJICAgQ09ORklHX1NZU19CT09UTUFQU1osIDAsIDApOwogCQkvKiBkb2VzIG5vdCByZXR1cm4gKi8KIAl9IGVsc2UKICNlbmRpZgpkaWZmIC0tZ2l0IGEvbGliX3BwYy9jYWNoZS5jIGIvbGliX3BwYy9jYWNoZS5jCmluZGV4IDViZmIyMjAuLjcyYzgzOGUgMTAwNjQ0Ci0tLSBhL2xpYl9wcGMvY2FjaGUuYworKysgYi9saWJfcHBjL2NhY2hlLmMKQEAgLTMwLDExICszMCwxMSBAQAogI2lmbmRlZiBDT05GSUdfNXh4CiAJdWxvbmcgYWRkciwgZW5kX2FkZHIgPSBzdGFydF9hZGRyICsgc2l6ZTsKIAotCWlmIChDRkdfQ0FDSEVMSU5FX1NJWkUpIHsKLQkJYWRkciA9IHN0YXJ0X2FkZHIgJiAoQ0ZHX0NBQ0hFTElORV9TSVpFIC0gMSk7CisJaWYgKENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUpIHsKKwkJYWRkciA9IHN0YXJ0X2FkZHIgJiAoQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAtIDEpOwogCQlmb3IgKGFkZHIgPSBzdGFydF9hZGRyOwogCQkgICAgIGFkZHIgPCBlbmRfYWRkcjsKLQkJICAgICBhZGRyICs9IENGR19DQUNIRUxJTkVfU0laRSkgeworCQkgICAgIGFkZHIgKz0gQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSkgewogCQkJYXNtICgiZGNic3QgMCwlMCI6IDoiciIgKGFkZHIpKTsKIAkJCVdBVENIRE9HX1JFU0VUKCk7CiAJCX0KQEAgLTQyLDcgKzQyLDcgQEAKIAogCQlmb3IgKGFkZHIgPSBzdGFydF9hZGRyOwogCQkgICAgIGFkZHIgPCBlbmRfYWRkcjsKLQkJICAgICBhZGRyICs9IENGR19DQUNIRUxJTkVfU0laRSkgeworCQkgICAgIGFkZHIgKz0gQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSkgewogCQkJYXNtICgiaWNiaSAwLCUwIjogOiJyIiAoYWRkcikpOwogCQkJV0FUQ0hET0dfUkVTRVQoKTsKIAkJfQpkaWZmIC0tZ2l0IGEvbGliX3BwYy9leHRhYmxlLmMgYi9saWJfcHBjL2V4dGFibGUuYwppbmRleCAyZDk5NWZhLi45MWUyYjNkIDEwMDY0NAotLS0gYS9saWJfcHBjL2V4dGFibGUuYworKysgYi9saWJfcHBjL2V4dGFibGUuYwpAQCAtNTMsNyArNTMsNyBAQAogCQkgdW5zaWduZWQgbG9uZyB2YWx1ZSkKIHsKIAlsb25nIGRpZmY7Ci0JaWYgKCh1bG9uZykgZmlyc3QgPiBDRkdfTU9OSVRPUl9CQVNFKSB7CisJaWYgKCh1bG9uZykgZmlyc3QgPiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgewogCQkvKiBleGNlcHRpb24gb2NjdXJzIGluIEZMQVNILCBiZWZvcmUgdS1ib290IHJlbG9jYXRpb24uCiAJCSAqIE5vIHJlbG9jYXRpb24gb2Zmc2V0IGlzIG5lZWRlZC4KIAkJICovCkBAIC04Nyw3ICs4Nyw3IEBACiAJLyogVGhlcmUgaXMgb25seSB0aGUga2VybmVsIHRvIHNlYXJjaC4gICovCiAJcmV0ID0gc2VhcmNoX29uZV90YWJsZShfX3N0YXJ0X19fZXhfdGFibGUsIF9fc3RvcF9fX2V4X3RhYmxlLTEsIGFkZHIpOwogCS8qIGlmIHRoZSBzZXJpYWwgcG9ydCBkb2VzIG5vdCBoYW5nIGluIGV4Y2VwdGlvbiwgcHJpbnRmIGNhbiBiZSB1c2VkICovCi0jaWYgIWRlZmluZWQoQ0ZHX1NFUklBTF9IQU5HX0lOX0VYQ0VQVElPTikKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX1NFUklBTF9IQU5HX0lOX0VYQ0VQVElPTikKIAlpZiAoZXhfdGFiX21lc3NhZ2UpCiAJCWRlYnVnKCJCdXMgRmF1bHQgQCAweCUwOGx4LCBmaXh1cCAweCUwOGx4XG4iLCBhZGRyLCByZXQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9saWJfcHBjL2ludGVycnVwdHMuYyBiL2xpYl9wcGMvaW50ZXJydXB0cy5jCmluZGV4IGM1OTUxZTkuLmY2MDMxNzAgMTAwNjQ0Ci0tLSBhL2xpYl9wcGMvaW50ZXJydXB0cy5jCisrKyBiL2xpYl9wcGMvaW50ZXJydXB0cy5jCkBAIC00MCw4ICs0MCw4IEBACiB9CiAjZW5kaWYgLyogQ09ORklHX1NIT1dfQUNUSVZJVFkgKi8KIAotI2lmbmRlZiBDRkdfV0FUQ0hET0dfRlJFUQotI2RlZmluZSBDRkdfV0FUQ0hET0dfRlJFUSAoQ0ZHX0haIC8gMikKKyNpZm5kZWYgQ09ORklHX1NZU19XQVRDSERPR19GUkVRCisjZGVmaW5lIENPTkZJR19TWVNfV0FUQ0hET0dfRlJFUSAoQ09ORklHX1NZU19IWiAvIDIpCiAjZW5kaWYKIAogZXh0ZXJuIGludCBpbnRlcnJ1cHRfaW5pdF9jcHUgKHVuc2lnbmVkICopOwpAQCAtMTI0LDcgKzEyNCw3IEBACiAJdGltZXN0YW1wKys7CiAKICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykgfHwgZGVmaW5lZCAoQ09ORklHX0hXX1dBVENIRE9HKQotCWlmICgodGltZXN0YW1wICUgKENGR19XQVRDSERPR19GUkVRKSkgPT0gMCkKKwlpZiAoKHRpbWVzdGFtcCAlIChDT05GSUdfU1lTX1dBVENIRE9HX0ZSRVEpKSA9PSAwKQogCQlXQVRDSERPR19SRVNFVCAoKTsKICNlbmRpZiAgICAvKiBDT05GSUdfV0FUQ0hET0cgfHwgQ09ORklHX0hXX1dBVENIRE9HICovCiAKZGlmZiAtLWdpdCBhL2xpYl9wcGMvdGltZS5jIGIvbGliX3BwYy90aW1lLmMKaW5kZXggZjA5M2E1Ny4uMTczZmZhYiAxMDA2NDQKLS0tIGEvbGliX3BwYy90aW1lLmMKKysrIGIvbGliX3BwYy90aW1lLmMKQEAgLTg5LDcgKzg5LDcgQEAKIGludCBpbml0X3RpbWViYXNlICh2b2lkKQogewogI2lmIGRlZmluZWQoQ09ORklHXzV4eCkgfHwgZGVmaW5lZChDT05GSUdfOHh4KQotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAkvKiB1bmxvY2sgKi8KIAlpbW1hcC0+aW1fc2l0ay5zaXRrX3RiayA9IEtBUFdSX0tFWTsKZGlmZiAtLWdpdCBhL2xpYl9zaC9ib2FyZC5jIGIvbGliX3NoL2JvYXJkLmMKaW5kZXggNmRmYWI0ZS4uYjZiZTIyZSAxMDA2NDQKLS0tIGEvbGliX3NoL2JvYXJkLmMKKysrIGIvbGliX3NoL2JvYXJkLmMKQEAgLTM1LDcgKzM1LDcgQEAKIAogY29uc3QgY2hhciB2ZXJzaW9uX3N0cmluZ1tdID0gVV9CT09UX1ZFUlNJT04iICgiIF9fREFURV9fICIgLSAiIF9fVElNRV9fICIpIjsKIAotdW5zaWduZWQgbG9uZyBtb25pdG9yX2ZsYXNoX2xlbiA9IENGR19NT05JVE9SX0xFTjsKK3Vuc2lnbmVkIGxvbmcgbW9uaXRvcl9mbGFzaF9sZW4gPSBDT05GSUdfU1lTX01PTklUT1JfTEVOOwogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBtZW1fbWFsbG9jX3N0YXJ0Owogc3RhdGljIHVuc2lnbmVkIGxvbmcgbWVtX21hbGxvY19lbmQ7CkBAIC00NCw4ICs0NCw4IEBACiBzdGF0aWMgdm9pZCBtZW1fbWFsbG9jX2luaXQodm9pZCkKIHsKIAotCW1lbV9tYWxsb2Nfc3RhcnQgPSAoVEVYVF9CQVNFIC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSBDRkdfTUFMTE9DX0xFTik7Ci0JbWVtX21hbGxvY19lbmQgPSAobWVtX21hbGxvY19zdGFydCArIENGR19NQUxMT0NfTEVOIC0gMTYpOworCW1lbV9tYWxsb2Nfc3RhcnQgPSAoVEVYVF9CQVNFIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gQ09ORklHX1NZU19NQUxMT0NfTEVOKTsKKwltZW1fbWFsbG9jX2VuZCA9IChtZW1fbWFsbG9jX3N0YXJ0ICsgQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gMTYpOwogCW1lbV9tYWxsb2NfYnJrID0gbWVtX21hbGxvY19zdGFydDsKIAltZW1zZXQoKHZvaWQgKikgbWVtX21hbGxvY19zdGFydCwgMCwKIAkJKG1lbV9tYWxsb2NfZW5kIC0gbWVtX21hbGxvY19zdGFydCkpOwpAQCAtMTc4LDcgKzE3OCw3IEBACiAJYmRfdCAqYmQ7CiAJaW5pdF9mbmNfdCAqKmluaXRfZm5jX3B0cjsKIAotCW1lbXNldChnZCwgMCwgQ0ZHX0dCTF9EQVRBX1NJWkUpOworCW1lbXNldChnZCwgMCwgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKTsKIAogCWdkLT5mbGFncyB8PSBHRF9GTEdfUkVMT0M7CS8qIHRlbGwgb3RoZXJzOiByZWxvY2F0aW9uIGRvbmUgKi8KIApAQCAtMTg4LDEyICsxODgsMTIgQEAKIAlnZC0+Y3B1X2NsayA9IENPTkZJR19TWVNfQ0xLX0ZSRVE7CiAKIAliZCA9IGdkLT5iZDsKLQliZC0+YmlfbWVtc3RhcnQJPSBDRkdfU0RSQU1fQkFTRTsKLQliZC0+YmlfbWVtc2l6ZSA9IENGR19TRFJBTV9TSVpFOwotCWJkLT5iaV9mbGFzaHN0YXJ0ID0gQ0ZHX0ZMQVNIX0JBU0U7Ci0jaWYgZGVmaW5lZChDRkdfU1JBTV9CQVNFKSAmJiBkZWZpbmVkKENGR19TUkFNX1NJWkUpCi0JYmQtPmJpX3NyYW1zdGFydCA9IENGR19TUkFNX0JBU0U7Ci0JYmQtPmJpX3NyYW1zaXplCT0gQ0ZHX1NSQU1fU0laRTsKKwliZC0+YmlfbWVtc3RhcnQJPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CisJYmQtPmJpX21lbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkU7CisJYmQtPmJpX2ZsYXNoc3RhcnQgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1NSQU1fQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1NSQU1fU0laRSkKKwliZC0+Ymlfc3JhbXN0YXJ0ID0gQ09ORklHX1NZU19TUkFNX0JBU0U7CisJYmQtPmJpX3NyYW1zaXplCT0gQ09ORklHX1NZU19TUkFNX1NJWkU7CiAjZW5kaWYKIAliZC0+YmlfYmF1ZHJhdGUJPSBDT05GSUdfQkFVRFJBVEU7CiAKZGlmZiAtLWdpdCBhL2xpYl9zaC9ib290bS5jIGIvbGliX3NoL2Jvb3RtLmMKaW5kZXggZTNkNDk4NS4uMDc4YTI0ZCAxMDA2NDQKLS0tIGEvbGliX3NoL2Jvb3RtLmMKKysrIGIvbGliX3NoL2Jvb3RtLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxjb21tYW5kLmg+CiAjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgogCi0jaWZkZWYgQ0ZHX0RFQlVHCisjaWZkZWYgQ09ORklHX1NZU19ERUJVRwogc3RhdGljIHZvaWQgaGV4ZHVtcCh1bnNpZ25lZCBjaGFyICpidWYsIGludCBsZW4pCiB7CiAJaW50IGk7CmRpZmYgLS1naXQgYS9saWJfc2gvdGltZS5jIGIvbGliX3NoL3RpbWUuYwppbmRleCA5YzFkYzUwLi5lNjM3ZTk1IDEwMDY0NAotLS0gYS9saWJfc2gvdGltZS5jCisrKyBiL2xpYl9zaC90aW1lLmMKQEAgLTYzLDcgKzYzLDcgQEAKIHZvaWQgdWRlbGF5ICh1bnNpZ25lZCBsb25nIHVzZWMpCiB7CiAJdW5zaWduZWQgaW50IHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKLQl1bnNpZ25lZCBpbnQgZW5kID0gc3RhcnQgKyAodXNlYyAqICgoQ0ZHX0haICsgNTAwMDAwKSAvIDEwMDAwMDApKTsKKwl1bnNpZ25lZCBpbnQgZW5kID0gc3RhcnQgKyAodXNlYyAqICgoQ09ORklHX1NZU19IWiArIDUwMDAwMCkgLyAxMDAwMDAwKSk7CiAKIAl3aGlsZSAoZ2V0X3RpbWVyICgwKSA8IGVuZCkKIAkJY29udGludWU7CkBAIC03MSw1ICs3MSw1IEBACiAKIHVuc2lnbmVkIGxvbmcgZ2V0X3RiY2xrICh2b2lkKQogewotCXJldHVybiBDRkdfSFo7CisJcmV0dXJuIENPTkZJR19TWVNfSFo7CiB9CmRpZmYgLS1naXQgYS9saWJfc3BhcmMvYm9hcmQuYyBiL2xpYl9zcGFyYy9ib2FyZC5jCmluZGV4IDk3ODBiZjIuLmU5NzJkM2UgMTAwNjQ0Ci0tLSBhL2xpYl9zcGFyYy9ib2FyZC5jCisrKyBiL2xpYl9zcGFyYy9ib2FyZC5jCkBAIC02Niw3ICs2Niw3IEBACiB2b2lkIGRvY19pbml0KHZvaWQpOwogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChDRkdfTk9fRkxBU0gpCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19OT19GTEFTSCkKIHN0YXRpYyBjaGFyICpmYWlsZWQgPSAiKioqIGZhaWxlZCAqKipcbiI7CiAjZW5kaWYKIApAQCAtOTEsOCArOTEsOCBAQAogICovCiBzdGF0aWMgdm9pZCBtZW1fbWFsbG9jX2luaXQodm9pZCkKIHsKLQltZW1fbWFsbG9jX3N0YXJ0ID0gQ0ZHX01BTExPQ19CQVNFOwotCW1lbV9tYWxsb2NfZW5kID0gQ0ZHX01BTExPQ19FTkQ7CisJbWVtX21hbGxvY19zdGFydCA9IENPTkZJR19TWVNfTUFMTE9DX0JBU0U7CisJbWVtX21hbGxvY19lbmQgPSBDT05GSUdfU1lTX01BTExPQ19FTkQ7CiAJbWVtX21hbGxvY19icmsgPSBtZW1fbWFsbG9jX3N0YXJ0OwogCW1lbXNldCgodm9pZCAqKW1lbV9tYWxsb2Nfc3RhcnQsIDAsIG1lbV9tYWxsb2NfZW5kIC0gbWVtX21hbGxvY19zdGFydCk7CiB9CkBAIC0yMTEsMTEgKzIxMSwxMSBAQAogCWludCBpOwogCWNoYXIgKmU7CiAKLSNpZm5kZWYgQ0ZHX05PX0ZMQVNICisjaWZuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKIAl1bG9uZyBmbGFzaF9zaXplOwogI2VuZGlmCiAKLQlnZCA9IChnZF90ICopIChDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKKwlnZCA9IChnZF90ICopIChDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCk7CiAKIAkvKiBDbGVhciBpbml0aWFsIGdsb2JhbCBkYXRhICovCiAJbWVtc2V0KCh2b2lkICopZ2QsIDAsIHNpemVvZihnZF90KSk7CkBAIC0yMjUsMTggKzIyNSwxOCBAQAogCWdkLT5jcHVfY2xrID0gQ09ORklHX1NZU19DTEtfRlJFUTsKIAogCWJkID0gZ2QtPmJkOwotCWJkLT5iaV9tZW1zdGFydCA9IENGR19SQU1fQkFTRTsKLQliZC0+YmlfbWVtc2l6ZSA9IENGR19SQU1fU0laRTsKLQliZC0+YmlfZmxhc2hzdGFydCA9IENGR19GTEFTSF9CQVNFOwotI2lmCWRlZmluZWQoQ0ZHX1NSQU1fQkFTRSkgJiYgZGVmaW5lZChDRkdfU1JBTV9TSVpFKQotCWJkLT5iaV9zcmFtc3RhcnQgPSBDRkdfU1JBTV9CQVNFOwotCWJkLT5iaV9zcmFtc2l6ZSA9IENGR19TUkFNX1NJWkU7CisJYmQtPmJpX21lbXN0YXJ0ID0gQ09ORklHX1NZU19SQU1fQkFTRTsKKwliZC0+YmlfbWVtc2l6ZSA9IENPTkZJR19TWVNfUkFNX1NJWkU7CisJYmQtPmJpX2ZsYXNoc3RhcnQgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CisjaWYJZGVmaW5lZChDT05GSUdfU1lTX1NSQU1fQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1NSQU1fU0laRSkKKwliZC0+Ymlfc3JhbXN0YXJ0ID0gQ09ORklHX1NZU19TUkFNX0JBU0U7CisJYmQtPmJpX3NyYW1zaXplID0gQ09ORklHX1NZU19TUkFNX1NJWkU7CiAjZW5kaWYKIAliZC0+YmlfYmF1ZHJhdGUgPSBDT05GSUdfQkFVRFJBVEU7CiAJYmQtPmJpX2Jvb3RmbGFncyA9IGJvb3RmbGFnOwkvKiBib290IC8gcmVib290IGZsYWcgKGZvciBMeW54T1MpICAgICovCiAKIAlnZC0+ZmxhZ3MgfD0gR0RfRkxHX1JFTE9DOwkvKiB0ZWxsIG90aGVyczogcmVsb2NhdGlvbiBkb25lICovCi0JZ2QtPnJlbG9jX29mZiA9IENGR19SRUxPQ19NT05JVE9SX0JBU0UgLSBDRkdfTU9OSVRPUl9CQVNFOworCWdkLT5yZWxvY19vZmYgPSBDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRSAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFOwogCiAJZm9yIChpbml0X2ZuY19wdHIgPSBpbml0X3NlcXVlbmNlLCBqID0gMDsgKmluaXRfZm5jX3B0cjsKIAkgICAgICsraW5pdF9mbmNfcHRyLCBqKyspIHsKQEAgLTI2NiwxOCArMjY2LDE4IEBACiAJICogIC0gYm9hcmQgaW5mbyBzdHJ1Y3QKIAkgKi8KICNpZmRlZiBERUJVR19NRU1fTEFZT1VUCi0JcHJpbnRmKCJDRkdfTU9OSVRPUl9CQVNFOiAgICAgICAweCVseFxuIiwgQ0ZHX01PTklUT1JfQkFTRSk7CisJcHJpbnRmKCJDT05GSUdfU1lTX01PTklUT1JfQkFTRTogICAgICAgMHglbHhcbiIsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKTsKIAlwcmludGYoIkNPTkZJR19FTlZfQUREUjogICAgICAgICAgIDB4JWx4XG4iLCBDT05GSUdfRU5WX0FERFIpOwotCXByaW50ZigiQ0ZHX1JFTE9DX01PTklUT1JfQkFTRTogMHglbHggKCVkKVxuIiwgQ0ZHX1JFTE9DX01PTklUT1JfQkFTRSwKLQkgICAgICAgQ0ZHX01PTklUT1JfTEVOKTsKLQlwcmludGYoIkNGR19NQUxMT0NfQkFTRTogICAgICAgIDB4JWx4ICglZClcbiIsIENGR19NQUxMT0NfQkFTRSwKLQkgICAgICAgQ0ZHX01BTExPQ19MRU4pOwotCXByaW50ZigiQ0ZHX0lOSVRfU1BfT0ZGU0VUOiAgICAgMHglbHggKCVkKVxuIiwgQ0ZHX0lOSVRfU1BfT0ZGU0VULAotCSAgICAgICBDRkdfU1RBQ0tfU0laRSk7Ci0JcHJpbnRmKCJDRkdfUFJPTV9PRkZTRVQ6ICAgICAgICAweCVseCAoJWQpXG4iLCBDRkdfUFJPTV9PRkZTRVQsCi0JICAgICAgIENGR19QUk9NX1NJWkUpOwotCXByaW50ZigiQ0ZHX0dCTF9EQVRBX09GRlNFVDogICAgMHglbHggKCVkKVxuIiwgQ0ZHX0dCTF9EQVRBX09GRlNFVCwKLQkgICAgICAgQ0ZHX0dCTF9EQVRBX1NJWkUpOworCXByaW50ZigiQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0U6IDB4JWx4ICglZClcbiIsIENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLAorCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfTEVOKTsKKwlwcmludGYoIkNPTkZJR19TWVNfTUFMTE9DX0JBU0U6ICAgICAgICAweCVseCAoJWQpXG4iLCBDT05GSUdfU1lTX01BTExPQ19CQVNFLAorCSAgICAgICBDT05GSUdfU1lTX01BTExPQ19MRU4pOworCXByaW50ZigiQ09ORklHX1NZU19JTklUX1NQX09GRlNFVDogICAgIDB4JWx4ICglZClcbiIsIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQsCisJICAgICAgIENPTkZJR19TWVNfU1RBQ0tfU0laRSk7CisJcHJpbnRmKCJDT05GSUdfU1lTX1BST01fT0ZGU0VUOiAgICAgICAgMHglbHggKCVkKVxuIiwgQ09ORklHX1NZU19QUk9NX09GRlNFVCwKKwkgICAgICAgQ09ORklHX1NZU19QUk9NX1NJWkUpOworCXByaW50ZigiQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQ6ICAgIDB4JWx4ICglZClcbiIsIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VULAorCSAgICAgICBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpOwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfUE9TVApAQCAtMzA1LDcgKzMwNSw3IEBACiAJCQlhZGRyID0gKHVsb25nKSAoY21kdHAtPnVzYWdlKSArIGdkLT5yZWxvY19vZmY7CiAJCQljbWR0cC0+dXNhZ2UgPSAoY2hhciAqKWFkZHI7CiAJCX0KLSNpZmRlZglDRkdfTE9OR0hFTFAKKyNpZmRlZglDT05GSUdfU1lTX0xPTkdIRUxQCiAJCWlmIChjbWR0cC0+aGVscCkgewogCQkJYWRkciA9ICh1bG9uZykgKGNtZHRwLT5oZWxwKSArIGdkLT5yZWxvY19vZmY7CiAJCQljbWR0cC0+aGVscCA9IChjaGFyICopYWRkcjsKQEAgLTMxMyw3ICszMTMsNyBAQAogI2VuZGlmCiAJfQogCi0jaWYgZGVmaW5lZChDT05GSUdfQ01EX0FNQkFQUCkgJiYgZGVmaW5lZChDRkdfQU1CQVBQX1BSSU5UX09OX1NUQVJUVVApCisjaWYgZGVmaW5lZChDT05GSUdfQ01EX0FNQkFQUCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0FNQkFQUF9QUklOVF9PTl9TVEFSVFVQKQogCXB1dHMoIkFNQkE6XG4iKTsKIAlkb19hbWJhcHBfcHJpbnQoTlVMTCwgMCwgMCwgTlVMTCk7CiAjZW5kaWYKQEAgLTMzMSwxMSArMzMxLDExIEBACiAJICovCiAJaW50ZXJydXB0X2luaXQoKTsKIAotI2lmICFkZWZpbmVkKENGR19OT19GTEFTSCkKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX05PX0ZMQVNIKQogCXB1dHMoIkZMQVNIOiAiKTsKIAogCWlmICgoZmxhc2hfc2l6ZSA9IGZsYXNoX2luaXQoKSkgPiAwKSB7Ci0jIGlmZGVmIENGR19GTEFTSF9DSEVDS1NVTQorIyBpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCiAJCXByaW50X3NpemUoZmxhc2hfc2l6ZSwgIiIpOwogCQkvKgogCQkgKiBDb21wdXRlIGFuZCBwcmludCBmbGFzaCBDUkMgaWYgZmxhc2hjaGVja3N1bSBpcyBzZXQgdG8gJ3knCkBAIC0zNDUsMzEgKzM0NSwzMSBAQAogCQlzID0gZ2V0ZW52KCJmbGFzaGNoZWNrc3VtIik7CiAJCWlmIChzICYmICgqcyA9PSAneScpKSB7CiAJCQlwcmludGYoIiAgQ1JDOiAlMDhsWCIsCi0JCQkgICAgICAgY3JjMzIoMCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilDRkdfRkxBU0hfQkFTRSwKKwkJCSAgICAgICBjcmMzMigwLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwKIAkJCQkgICAgIGZsYXNoX3NpemUpCiAJCQkgICAgKTsKIAkJfQogCQlwdXRjKCdcbicpOwotIyBlbHNlCQkJCS8qICFDRkdfRkxBU0hfQ0hFQ0tTVU0gKi8KKyMgZWxzZQkJCQkvKiAhQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTSAqLwogCQlwcmludF9zaXplKGZsYXNoX3NpemUsICJcbiIpOwotIyBlbmRpZgkJCQkvKiBDRkdfRkxBU0hfQ0hFQ0tTVU0gKi8KKyMgZW5kaWYJCQkJLyogQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTSAqLwogCX0gZWxzZSB7CiAJCXB1dHMoZmFpbGVkKTsKIAkJaGFuZygpOwogCX0KIAotCWJkLT5iaV9mbGFzaHN0YXJ0ID0gQ0ZHX0ZMQVNIX0JBU0U7CS8qIHVwZGF0ZSBzdGFydCBvZiBGTEFTSCBtZW1vcnkgICAgKi8KKwliZC0+YmlfZmxhc2hzdGFydCA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsJLyogdXBkYXRlIHN0YXJ0IG9mIEZMQVNIIG1lbW9yeSAgICAqLwogCWJkLT5iaV9mbGFzaHNpemUgPSBmbGFzaF9zaXplOwkvKiBzaXplIG9mIEZMQVNIIG1lbW9yeSAoZmluYWwgdmFsdWUpICovCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA9PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID09IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCWJkLT5iaV9mbGFzaG9mZnNldCA9IG1vbml0b3JfZmxhc2hfbGVuOwkvKiByZXNlcnZlZCBhcmVhIGZvciBzdGFydHVwIG1vbml0b3IgICovCiAjZWxzZQogCWJkLT5iaV9mbGFzaG9mZnNldCA9IDA7CiAjZW5kaWYKLSNlbHNlCQkJCS8qIENGR19OT19GTEFTSCAqLworI2Vsc2UJCQkJLyogQ09ORklHX1NZU19OT19GTEFTSCAqLwogCWJkLT5iaV9mbGFzaHNpemUgPSAwOwogCWJkLT5iaV9mbGFzaHN0YXJ0ID0gMDsKIAliZC0+YmlfZmxhc2hvZmZzZXQgPSAwOwotI2VuZGlmCQkJCS8qICFDRkdfTk9fRkxBU0ggKi8KKyNlbmRpZgkJCQkvKiAhQ09ORklHX1NZU19OT19GTEFTSCAqLwogCiAJLyogaW5pdGlhbGl6ZSBtYWxsb2MoKSBhcmVhICovCiAJbWVtX21hbGxvY19pbml0KCk7CmRpZmYgLS1naXQgYS9saWJfc3BhcmMvYm9vdG0uYyBiL2xpYl9zcGFyYy9ib290bS5jCmluZGV4IDRlOGM5MjAuLjJiYWFmY2MgMTAwNjQ0Ci0tLSBhL2xpYl9zcGFyYy9ib290bS5jCisrKyBiL2xpYl9zcGFyYy9ib290bS5jCkBAIC0xMjksNyArMTI5LDcgQEAKIAkJICogdG8gYXZvaWQgdGhhdCB0aGUgUkFNIGltYWdlIGlzIGNvcGllZCBvdmVyIHN0YWNrIG9yCiAJCSAqIFBST00uCiAJCSAqLwotCQlsbWJfcmVzZXJ2ZShsbWIsIENGR19SRUxPQ19NT05JVE9SX0JBU0UsIENGR19SQU1fRU5EKTsKKwkJbG1iX3Jlc2VydmUobG1iLCBDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRSwgQ09ORklHX1NZU19SQU1fRU5EKTsKIAogCQlyZXQgPSBib290X3JhbWRpc2tfaGlnaChsbWIsIGltYWdlcy0+cmRfc3RhcnQsIHJkX2xlbiwKIAkJCQkJJmluaXRyZF9zdGFydCwgJmluaXRyZF9lbmQpOwpAQCAtMTQ0LDcgKzE0NCw3IEBACiAJCSAqIFNldCBJTklUUkQgSW1hZ2UgYWRkcmVzcyByZWxhdGl2ZSB0byBSQU0gU3RhcnQKIAkJICovCiAJCWxpbnV4X2hkci0+aGRyX2lucHV0LnZlcl8wMjAzLnNwYXJjX3JhbWRpc2tfaW1hZ2UgPQotCQkgICAgaW5pdHJkX3N0YXJ0IC0gQ0ZHX1JBTV9CQVNFOworCQkgICAgaW5pdHJkX3N0YXJ0IC0gQ09ORklHX1NZU19SQU1fQkFTRTsKIAkJbGludXhfaGRyLT5oZHJfaW5wdXQudmVyXzAyMDMuc3BhcmNfcmFtZGlza19zaXplID0gcmRfbGVuOwogCQkvKiBDbGVhciBSRUFEIE9OTFkgZmxhZyBpZiBzZXQgdG8gbm9uLXplcm8gKi8KIAkJbGludXhfaGRyLT5oZHJfaW5wdXQudmVyXzAyMDMucm9vdF9mbGFncyA9IDE7CmRpZmYgLS1naXQgYS9uYW5kX3NwbC9ib2FyZC9hbWNjL2FjYWRpYS9jb25maWcubWsgYi9uYW5kX3NwbC9ib2FyZC9hbWNjL2FjYWRpYS9jb25maWcubWsKaW5kZXggM2IxNDBmYS4uZmNjODM4YSAxMDA2NDQKLS0tIGEvbmFuZF9zcGwvYm9hcmQvYW1jYy9hY2FkaWEvY29uZmlnLm1rCisrKyBiL25hbmRfc3BsL2JvYXJkL2FtY2MvYWNhZGlhL2NvbmZpZy5tawpAQCAtNDMsNSArNDMsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL25hbmRfc3BsL2JvYXJkL2FtY2MvYmFtYm9vL2NvbmZpZy5tayBiL25hbmRfc3BsL2JvYXJkL2FtY2MvYmFtYm9vL2NvbmZpZy5tawppbmRleCBmN2VjNzUxLi42Mzc3YjUyIDEwMDY0NAotLS0gYS9uYW5kX3NwbC9ib2FyZC9hbWNjL2JhbWJvby9jb25maWcubWsKKysrIGIvbmFuZF9zcGwvYm9hcmQvYW1jYy9iYW1ib28vY29uZmlnLm1rCkBAIC00NSw1ICs0NSw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvbmFuZF9zcGwvYm9hcmQvYW1jYy9iYW1ib28vc2RyYW0uYyBiL25hbmRfc3BsL2JvYXJkL2FtY2MvYmFtYm9vL3NkcmFtLmMKaW5kZXggYWRlZGU0NC4uNTRiZTI1NiAxMDA2NDQKLS0tIGEvbmFuZF9zcGwvYm9hcmQvYW1jYy9iYW1ib28vc2RyYW0uYworKysgYi9uYW5kX3NwbC9ib2FyZC9hbWNjL2JhbWJvby9zZHJhbS5jCkBAIC04OCw1ICs4OCw1IEBACiAJbXRzZHJhbShtZW1fY2ZnMCwgMHg4MDAwMDAwMCk7IC8qIERDRU49MSwgUE1VRD0wKi8KIAl3YWl0X2luaXRfY29tcGxldGUoKTsKIAotCXJldHVybiBDRkdfTUJZVEVTX1NEUkFNIDw8IDIwOworCXJldHVybiBDT05GSUdfU1lTX01CWVRFU19TRFJBTSA8PCAyMDsKIH0KZGlmZiAtLWdpdCBhL25hbmRfc3BsL2JvYXJkL2FtY2MvY2FueW9ubGFuZHMvY29uZmlnLm1rIGIvbmFuZF9zcGwvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9jb25maWcubWsKaW5kZXggYzhkN2MyMy4uNjg4YzkyYiAxMDA2NDQKLS0tIGEvbmFuZF9zcGwvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9jb25maWcubWsKKysrIGIvbmFuZF9zcGwvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9jb25maWcubWsKQEAgLTQ1LDUgKzQ1LDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9uYW5kX3NwbC9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2RkcjJfZml4ZWQuYyBiL25hbmRfc3BsL2JvYXJkL2FtY2MvY2FueW9ubGFuZHMvZGRyMl9maXhlZC5jCmluZGV4IDI5ZDdkM2YuLjM3MWJiYjMgMTAwNjQ0Ci0tLSBhL25hbmRfc3BsL2JvYXJkL2FtY2MvY2FueW9ubGFuZHMvZGRyMl9maXhlZC5jCisrKyBiL25hbmRfc3BsL2JvYXJkL2FtY2MvY2FueW9ubGFuZHMvZGRyMl9maXhlZC5jCkBAIC05NCw1ICs5NCw1IEBACiAJbXRzZHJhbShTRFJBTV9SUURDLCAweDgwMDAwMDM4KTsKIAltdHNkcmFtKFNEUkFNX1JGREMsIDB4MDAwMDAyNTcpOwogCi0JcmV0dXJuIENGR19NQllURVNfU0RSQU0gPDwgMjA7CisJcmV0dXJuIENPTkZJR19TWVNfTUJZVEVTX1NEUkFNIDw8IDIwOwogfQpkaWZmIC0tZ2l0IGEvbmFuZF9zcGwvYm9hcmQvYW1jYy9raWxhdWVhL2NvbmZpZy5tayBiL25hbmRfc3BsL2JvYXJkL2FtY2Mva2lsYXVlYS9jb25maWcubWsKaW5kZXggZDg5ZWQzZi4uZjZiY2QyMSAxMDA2NDQKLS0tIGEvbmFuZF9zcGwvYm9hcmQvYW1jYy9raWxhdWVhL2NvbmZpZy5taworKysgYi9uYW5kX3NwbC9ib2FyZC9hbWNjL2tpbGF1ZWEvY29uZmlnLm1rCkBAIC00NCw1ICs0NCw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvbmFuZF9zcGwvYm9hcmQvYW1jYy9zZXF1b2lhL2NvbmZpZy5tayBiL25hbmRfc3BsL2JvYXJkL2FtY2Mvc2VxdW9pYS9jb25maWcubWsKaW5kZXggYTI5YmE1Zi4uZThjNjMzMyAxMDA2NDQKLS0tIGEvbmFuZF9zcGwvYm9hcmQvYW1jYy9zZXF1b2lhL2NvbmZpZy5taworKysgYi9uYW5kX3NwbC9ib2FyZC9hbWNjL3NlcXVvaWEvY29uZmlnLm1rCkBAIC00NSw1ICs0NSw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvbmFuZF9zcGwvbmFuZF9ib290LmMgYi9uYW5kX3NwbC9uYW5kX2Jvb3QuYwppbmRleCAwYzA2ZTUzLi44N2M1MGUxIDEwMDY0NAotLS0gYS9uYW5kX3NwbC9uYW5kX2Jvb3QuYworKysgYi9uYW5kX3NwbC9uYW5kX2Jvb3QuYwpAQCAtMjIsMjcgKzIyLDI3IEBACiAjaW5jbHVkZSA8bmFuZC5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogCi0jZGVmaW5lIENGR19OQU5EX1JFQURfREVMQVkgXAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUkVBRF9ERUxBWSBcCiAJeyB2b2xhdGlsZSBpbnQgZHVtbXk7IGludCBpOyBmb3IgKGk9MDsgaTwxMDAwMDsgaSsrKSBkdW1teSA9IGk7IH0KIAotc3RhdGljIGludCBuYW5kX2VjY19wb3NbXSA9IENGR19OQU5EX0VDQ1BPUzsKK3N0YXRpYyBpbnQgbmFuZF9lY2NfcG9zW10gPSBDT05GSUdfU1lTX05BTkRfRUNDUE9TOwogCiBleHRlcm4gdm9pZCBib2FyZF9uYW5kX2luaXQoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCk7CiAKLSNpZiAoQ0ZHX05BTkRfUEFHRV9TSVpFIDw9IDUxMikKKyNpZiAoQ09ORklHX1NZU19OQU5EX1BBR0VfU0laRSA8PSA1MTIpCiAvKgogICogTkFORCBjb21tYW5kIGZvciBzbWFsbCBwYWdlIE5BTkQgZGV2aWNlcyAoNTEyKQogICovCiBzdGF0aWMgaW50IG5hbmRfY29tbWFuZChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgaW50IGJsb2NrLCBpbnQgcGFnZSwgaW50IG9mZnMsIHU4IGNtZCkKIHsKIAlzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzID0gbXRkLT5wcml2OwotCWludCBwYWdlX2FkZHIgPSBwYWdlICsgYmxvY2sgKiBDRkdfTkFORF9QQUdFX0NPVU5UOworCWludCBwYWdlX2FkZHIgPSBwYWdlICsgYmxvY2sgKiBDT05GSUdfU1lTX05BTkRfUEFHRV9DT1VOVDsKIAogCWlmICh0aGlzLT5kZXZfcmVhZHkpCiAJCXdoaWxlICghdGhpcy0+ZGV2X3JlYWR5KG10ZCkpCiAJCQk7CiAJZWxzZQotCQlDRkdfTkFORF9SRUFEX0RFTEFZOworCQlDT05GSUdfU1lTX05BTkRfUkVBRF9ERUxBWTsKIAogCS8qIEJlZ2luIGNvbW1hbmQgbGF0Y2ggY3ljbGUgKi8KIAl0aGlzLT5jbWRfY3RybChtdGQsIGNtZCwgTkFORF9DVFJMX0NMRSB8IE5BTkRfQ1RSTF9DSEFOR0UpOwpAQCAtNTEsNyArNTEsNyBAQAogCXRoaXMtPmNtZF9jdHJsKG10ZCwgb2ZmcywgTkFORF9DVFJMX0FMRSB8IE5BTkRfQ1RSTF9DSEFOR0UpOwogCXRoaXMtPmNtZF9jdHJsKG10ZCwgcGFnZV9hZGRyICYgMHhmZiwgMCk7IC8qIEFbMTY6OV0gKi8KIAl0aGlzLT5jbWRfY3RybChtdGQsIChwYWdlX2FkZHIgPj4gOCkgJiAweGZmLCAwKTsgLyogQVsyNDoxN10gKi8KLSNpZmRlZiBDRkdfTkFORF80X0FERFJfQ1lDTEUKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfNF9BRERSX0NZQ0xFCiAJLyogT25lIG1vcmUgYWRkcmVzcyBjeWNsZSBmb3IgZGV2aWNlcyA+IDMyTWlCICovCiAJdGhpcy0+Y21kX2N0cmwobXRkLCAocGFnZV9hZGRyID4+IDE2KSAmIDB4MGYsIDApOyAvKiBBWzI4OjI1XSAqLwogI2VuZGlmCkBAIC02NSw3ICs2NSw3IEBACiAJCXdoaWxlICghdGhpcy0+ZGV2X3JlYWR5KG10ZCkpCiAJCQk7CiAJZWxzZQotCQlDRkdfTkFORF9SRUFEX0RFTEFZOworCQlDT05GSUdfU1lTX05BTkRfUkVBRF9ERUxBWTsKIAogCXJldHVybiAwOwogfQpAQCAtNzYsMTcgKzc2LDE3IEBACiBzdGF0aWMgaW50IG5hbmRfY29tbWFuZChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgaW50IGJsb2NrLCBpbnQgcGFnZSwgaW50IG9mZnMsIHU4IGNtZCkKIHsKIAlzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzID0gbXRkLT5wcml2OwotCWludCBwYWdlX2FkZHIgPSBwYWdlICsgYmxvY2sgKiBDRkdfTkFORF9QQUdFX0NPVU5UOworCWludCBwYWdlX2FkZHIgPSBwYWdlICsgYmxvY2sgKiBDT05GSUdfU1lTX05BTkRfUEFHRV9DT1VOVDsKIAogCWlmICh0aGlzLT5kZXZfcmVhZHkpCiAJCXdoaWxlICghdGhpcy0+ZGV2X3JlYWR5KG10ZCkpCiAJCQk7CiAJZWxzZQotCQlDRkdfTkFORF9SRUFEX0RFTEFZOworCQlDT05GSUdfU1lTX05BTkRfUkVBRF9ERUxBWTsKIAogCS8qIEVtdWxhdGUgTkFORF9DTURfUkVBRE9PQiAqLwogCWlmIChjbWQgPT0gTkFORF9DTURfUkVBRE9PQikgewotCQlvZmZzICs9IENGR19OQU5EX1BBR0VfU0laRTsKKwkJb2ZmcyArPSBDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFOwogCQljbWQgPSBOQU5EX0NNRF9SRUFEMDsKIAl9CiAKQEAgLTEwMCw3ICsxMDAsNyBAQAogCS8qIFJvdyBhZGRyZXNzICovCiAJdGhpcy0+Y21kX2N0cmwobXRkLCAocGFnZV9hZGRyICYgMHhmZiksIDApOyAvKiBBWzE5OjEyXSAqLwogCXRoaXMtPmNtZF9jdHJsKG10ZCwgKChwYWdlX2FkZHIgPj4gOCkgJiAweGZmKSwgMCk7IC8qIEFbMjc6MjBdICovCi0jaWZkZWYgQ0ZHX05BTkRfNV9BRERSX0NZQ0xFCisjaWZkZWYgQ09ORklHX1NZU19OQU5EXzVfQUREUl9DWUNMRQogCS8qIE9uZSBtb3JlIGFkZHJlc3MgY3ljbGUgZm9yIGRldmljZXMgPiAxMjhNaUIgKi8KIAl0aGlzLT5jbWRfY3RybChtdGQsIChwYWdlX2FkZHIgPj4gMTYpICYgMHgwZiwgMCk7IC8qIEFbMzE6MjhdICovCiAjZW5kaWYKQEAgLTExNiw3ICsxMTYsNyBAQAogCQl3aGlsZSAoIXRoaXMtPmRldl9yZWFkeShtdGQpKQogCQkJOwogCWVsc2UKLQkJQ0ZHX05BTkRfUkVBRF9ERUxBWTsKKwkJQ09ORklHX1NZU19OQU5EX1JFQURfREVMQVk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTEyNiw3ICsxMjYsNyBAQAogewogCXN0cnVjdCBuYW5kX2NoaXAgKnRoaXMgPSBtdGQtPnByaXY7CiAKLQluYW5kX2NvbW1hbmQobXRkLCBibG9jaywgMCwgQ0ZHX05BTkRfQkFEX0JMT0NLX1BPUywgTkFORF9DTURfUkVBRE9PQik7CisJbmFuZF9jb21tYW5kKG10ZCwgYmxvY2ssIDAsIENPTkZJR19TWVNfTkFORF9CQURfQkxPQ0tfUE9TLCBOQU5EX0NNRF9SRUFET09CKTsKIAogCS8qCiAJICogUmVhZCBvbmUgYnl0ZQpAQCAtMTQ0LDkgKzE0NCw5IEBACiAJdV9jaGFyICplY2NfY29kZTsKIAl1X2NoYXIgKm9vYl9kYXRhOwogCWludCBpOwotCWludCBlY2NzaXplID0gQ0ZHX05BTkRfRUNDU0laRTsKLQlpbnQgZWNjYnl0ZXMgPSBDRkdfTkFORF9FQ0NCWVRFUzsKLQlpbnQgZWNjc3RlcHMgPSBDRkdfTkFORF9FQ0NTVEVQUzsKKwlpbnQgZWNjc2l6ZSA9IENPTkZJR19TWVNfTkFORF9FQ0NTSVpFOworCWludCBlY2NieXRlcyA9IENPTkZJR19TWVNfTkFORF9FQ0NCWVRFUzsKKwlpbnQgZWNjc3RlcHMgPSBDT05GSUdfU1lTX05BTkRfRUNDU1RFUFM7CiAJdWludDhfdCAqcCA9IGRzdDsKIAlpbnQgc3RhdDsKIApAQCAtMTU1LDcgKzE1NSw3IEBACiAJLyogTm8gbWFsbG9jIGF2YWlsYWJsZSBmb3Igbm93LCBqdXN0IHVzZSBzb21lIHRlbXBvcmFyeSBsb2NhdGlvbnMKIAkgKiBpbiBTRFJBTQogCSAqLwotCWVjY19jYWxjID0gKHVfY2hhciAqKShDRkdfU0RSQU1fQkFTRSArIDB4MTAwMDApOworCWVjY19jYWxjID0gKHVfY2hhciAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDEwMDAwKTsKIAllY2NfY29kZSA9IGVjY19jYWxjICsgMHgxMDA7CiAJb29iX2RhdGEgPSBlY2NfY2FsYyArIDB4MjAwOwogCkBAIC0xNjQsMTMgKzE2NCwxMyBAQAogCQl0aGlzLT5yZWFkX2J1ZihtdGQsIHAsIGVjY3NpemUpOwogCQl0aGlzLT5lY2MuY2FsY3VsYXRlKG10ZCwgcCwgJmVjY19jYWxjW2ldKTsKIAl9Ci0JdGhpcy0+cmVhZF9idWYobXRkLCBvb2JfZGF0YSwgQ0ZHX05BTkRfT09CU0laRSk7CisJdGhpcy0+cmVhZF9idWYobXRkLCBvb2JfZGF0YSwgQ09ORklHX1NZU19OQU5EX09PQlNJWkUpOwogCiAJLyogUGljayB0aGUgRUNDIGJ5dGVzIG91dCBvZiB0aGUgb29iIGRhdGEgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX05BTkRfRUNDVE9UQUw7IGkrKykKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19OQU5EX0VDQ1RPVEFMOyBpKyspCiAJCWVjY19jb2RlW2ldID0gb29iX2RhdGFbbmFuZF9lY2NfcG9zW2ldXTsKIAotCWVjY3N0ZXBzID0gQ0ZHX05BTkRfRUNDU1RFUFM7CisJZWNjc3RlcHMgPSBDT05GSUdfU1lTX05BTkRfRUNDU1RFUFM7CiAJcCA9IGRzdDsKIAogCWZvciAoaSA9IDAgOyBlY2NzdGVwczsgZWNjc3RlcHMtLSwgaSArPSBlY2NieXRlcywgcCArPSBlY2NzaXplKSB7CkBAIC0xOTMsMTggKzE5MywxOCBAQAogCS8qCiAJICogb2ZmcyBoYXMgdG8gYmUgYWxpZ25lZCB0byBhIHBhZ2UgYWRkcmVzcyEKIAkgKi8KLQlibG9jayA9IG9mZnMgLyBDRkdfTkFORF9CTE9DS19TSVpFOwotCWxhc3RibG9jayA9IChvZmZzICsgdWJvb3Rfc2l6ZSAtIDEpIC8gQ0ZHX05BTkRfQkxPQ0tfU0laRTsKLQlwYWdlID0gKG9mZnMgJSBDRkdfTkFORF9CTE9DS19TSVpFKSAvIENGR19OQU5EX1BBR0VfU0laRTsKKwlibG9jayA9IG9mZnMgLyBDT05GSUdfU1lTX05BTkRfQkxPQ0tfU0laRTsKKwlsYXN0YmxvY2sgPSAob2ZmcyArIHVib290X3NpemUgLSAxKSAvIENPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFOworCXBhZ2UgPSAob2ZmcyAlIENPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFKSAvIENPTkZJR19TWVNfTkFORF9QQUdFX1NJWkU7CiAKIAl3aGlsZSAoYmxvY2sgPD0gbGFzdGJsb2NrKSB7CiAJCWlmICghbmFuZF9pc19iYWRfYmxvY2sobXRkLCBibG9jaykpIHsKIAkJCS8qCiAJCQkgKiBTa2lwIGJhZCBibG9ja3MKIAkJCSAqLwotCQkJd2hpbGUgKHBhZ2UgPCBDRkdfTkFORF9QQUdFX0NPVU5UKSB7CisJCQl3aGlsZSAocGFnZSA8IENPTkZJR19TWVNfTkFORF9QQUdFX0NPVU5UKSB7CiAJCQkJbmFuZF9yZWFkX3BhZ2UobXRkLCBibG9jaywgcGFnZSwgZHN0KTsKLQkJCQlkc3QgKz0gQ0ZHX05BTkRfUEFHRV9TSVpFOworCQkJCWRzdCArPSBDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFOwogCQkJCXBhZ2UrKzsKIAkJCX0KIApAQCAtMjM1LDcgKzIzNSw3IEBACiAJICogSW5pdCBib2FyZCBzcGVjaWZpYyBuYW5kIHN1cHBvcnQKIAkgKi8KIAluYW5kX2luZm8ucHJpdiA9ICZuYW5kX2NoaXA7Ci0JbmFuZF9jaGlwLklPX0FERFJfUiA9IG5hbmRfY2hpcC5JT19BRERSX1cgPSAodm9pZCAgX19pb21lbSAqKUNGR19OQU5EX0JBU0U7CisJbmFuZF9jaGlwLklPX0FERFJfUiA9IG5hbmRfY2hpcC5JT19BRERSX1cgPSAodm9pZCAgX19pb21lbSAqKUNPTkZJR19TWVNfTkFORF9CQVNFOwogCW5hbmRfY2hpcC5kZXZfcmVhZHkgPSBOVUxMOwkvKiBwcmVzZXQgdG8gTlVMTCAqLwogCWJvYXJkX25hbmRfaW5pdCgmbmFuZF9jaGlwKTsKIApAQCAtMjQ1LDggKzI0NSw4IEBACiAJLyoKIAkgKiBMb2FkIFUtQm9vdCBpbWFnZSBmcm9tIE5BTkQgaW50byBSQU0KIAkgKi8KLQlyZXQgPSBuYW5kX2xvYWQoJm5hbmRfaW5mbywgQ0ZHX05BTkRfVV9CT09UX09GRlMsIENGR19OQU5EX1VfQk9PVF9TSVpFLAotCQkJKHVjaGFyICopQ0ZHX05BTkRfVV9CT09UX0RTVCk7CisJcmV0ID0gbmFuZF9sb2FkKCZuYW5kX2luZm8sIENPTkZJR19TWVNfTkFORF9VX0JPT1RfT0ZGUywgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9TSVpFLAorCQkJKHVjaGFyICopQ09ORklHX1NZU19OQU5EX1VfQk9PVF9EU1QpOwogCiAJaWYgKG5hbmRfY2hpcC5zZWxlY3RfY2hpcCkKIAkJbmFuZF9jaGlwLnNlbGVjdF9jaGlwKCZuYW5kX2luZm8sIC0xKTsKQEAgLTI1NCw2ICsyNTQsNiBAQAogCS8qCiAJICogSnVtcCB0byBVLUJvb3QgaW1hZ2UKIAkgKi8KLQl1Ym9vdCA9ICh2b2lkICopQ0ZHX05BTkRfVV9CT09UX1NUQVJUOworCXVib290ID0gKHZvaWQgKilDT05GSUdfU1lTX05BTkRfVV9CT09UX1NUQVJUOwogCSgqdWJvb3QpKCk7CiB9CmRpZmYgLS1naXQgYS9uYW5kX3NwbC9uYW5kX2Jvb3RfZnNsX2VsYmMuYyBiL25hbmRfc3BsL25hbmRfYm9vdF9mc2xfZWxiYy5jCmluZGV4IDUzMzkyMjQuLjI3MzQ3OGYgMTAwNjQ0Ci0tLSBhL25hbmRfc3BsL25hbmRfYm9vdF9mc2xfZWxiYy5jCisrKyBiL25hbmRfc3BsL25hbmRfYm9vdF9mc2xfZWxiYy5jCkBAIC0zMyw3ICszMyw3IEBACiAKIHN0YXRpYyB2b2lkIG5hbmRfd2FpdCh2b2lkKQogewotCWxidXM4M3h4X3QgKnJlZ3MgPSAobGJ1czgzeHhfdCAqKShDRkdfSU1NUiArIDB4NTAwMCk7CisJbGJ1czgzeHhfdCAqcmVncyA9IChsYnVzODN4eF90ICopKENPTkZJR19TWVNfSU1NUiArIDB4NTAwMCk7CiAKIAlmb3IgKDs7KSB7CiAJCXVpbnQzMl90IHN0YXR1cyA9IGluX2JlMzIoJnJlZ3MtPmx0ZXNyKTsKQEAgLTUwLDggKzUwLDggQEAKIAogc3RhdGljIHZvaWQgbmFuZF9sb2FkKHVuc2lnbmVkIGludCBvZmZzLCBpbnQgdWJvb3Rfc2l6ZSwgdWNoYXIgKmRzdCkKIHsKLQlsYnVzODN4eF90ICpyZWdzID0gKGxidXM4M3h4X3QgKikoQ0ZHX0lNTVIgKyAweDUwMDApOwotCXVjaGFyICpidWYgPSAodWNoYXIgKilDRkdfTkFORF9CQVNFOworCWxidXM4M3h4X3QgKnJlZ3MgPSAobGJ1czgzeHhfdCAqKShDT05GSUdfU1lTX0lNTVIgKyAweDUwMDApOworCXVjaGFyICpidWYgPSAodWNoYXIgKilDT05GSUdfU1lTX05BTkRfQkFTRTsKIAlpbnQgbGFyZ2UgPSBpbl9iZTMyKCZyZWdzLT5iYW5rWzBdLm9yKSAmIE9SX0ZDTV9QR1M7CiAJaW50IGJsb2NrX3NoaWZ0ID0gbGFyZ2UgPyAxNyA6IDE0OwogCWludCBibG9ja19zaXplID0gMSA8PCBibG9ja19zaGlmdDsKQEAgLTEzNiwxMyArMTM2LDEzIEBACiAJLyoKIAkgKiBMb2FkIFUtQm9vdCBpbWFnZSBmcm9tIE5BTkQgaW50byBSQU0KIAkgKi8KLQluYW5kX2xvYWQoQ0ZHX05BTkRfVV9CT09UX09GRlMsIENGR19OQU5EX1VfQk9PVF9TSVpFLAotCSAgICAgICAgICAodWNoYXIgKilDRkdfTkFORF9VX0JPT1RfRFNUKTsKKwluYW5kX2xvYWQoQ09ORklHX1NZU19OQU5EX1VfQk9PVF9PRkZTLCBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NJWkUsCisJICAgICAgICAgICh1Y2hhciAqKUNPTkZJR19TWVNfTkFORF9VX0JPT1RfRFNUKTsKIAogCS8qCiAJICogSnVtcCB0byBVLUJvb3QgaW1hZ2UKIAkgKi8KIAlwdXRzKCJ0cmFuc2ZlcmluZyBjb250cm9sXG4iKTsKLQl1Ym9vdCA9ICh2b2lkICopQ0ZHX05BTkRfVV9CT09UX1NUQVJUOworCXVib290ID0gKHZvaWQgKilDT05GSUdfU1lTX05BTkRfVV9CT09UX1NUQVJUOwogCXVib290KCk7CiB9CmRpZmYgLS1naXQgYS9uZXQvYm9vdHAuYyBiL25ldC9ib290cC5jCmluZGV4IGMyMDc4YzYuLjgzNDY1ZTQgMTAwNjQ0Ci0tLSBhL25ldC9ib290cC5jCisrKyBiL25ldC9ib290cC5jCkBAIC05MTIsMTEgKzkxMiwxMSBAQAogCQkgKiBPRkZFUiBmcm9tIGEgc2VydmVyIHdlIHdhbnQuCiAJCSAqLwogCQlkZWJ1ZyAoIkRIQ1A6IHN0YXRlPVNFTEVDVElORyBicF9maWxlOiBcIiVzXCJcbiIsIGJwLT5icF9maWxlKTsKLSNpZmRlZiBDRkdfQk9PVEZJTEVfUFJFRklYCisjaWZkZWYgQ09ORklHX1NZU19CT09URklMRV9QUkVGSVgKIAkJaWYgKHN0cm5jbXAoYnAtPmJwX2ZpbGUsCi0JCQkgICAgQ0ZHX0JPT1RGSUxFX1BSRUZJWCwKLQkJCSAgICBzdHJsZW4oQ0ZHX0JPT1RGSUxFX1BSRUZJWCkpID09IDAgKSB7Ci0jZW5kaWYJLyogQ0ZHX0JPT1RGSUxFX1BSRUZJWCAqLworCQkJICAgIENPTkZJR19TWVNfQk9PVEZJTEVfUFJFRklYLAorCQkJICAgIHN0cmxlbihDT05GSUdfU1lTX0JPT1RGSUxFX1BSRUZJWCkpID09IDAgKSB7CisjZW5kaWYJLyogQ09ORklHX1NZU19CT09URklMRV9QUkVGSVggKi8KIAogCQkJZGVidWcgKCJUUkFOU0lUSU9OSU5HIFRPIFJFUVVFU1RJTkcgU1RBVEVcbiIpOwogCQkJZGhjcF9zdGF0ZSA9IFJFUVVFU1RJTkc7CkBAIC05MjYsOSArOTI2LDkgQEAKIAogCQkJTmV0U2V0VGltZW91dChUSU1FT1VULCBCb290cFRpbWVvdXQpOwogCQkJRGhjcFNlbmRSZXF1ZXN0UGt0KGJwKTsKLSNpZmRlZiBDRkdfQk9PVEZJTEVfUFJFRklYCisjaWZkZWYgQ09ORklHX1NZU19CT09URklMRV9QUkVGSVgKIAkJfQotI2VuZGlmCS8qIENGR19CT09URklMRV9QUkVGSVggKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0JPT1RGSUxFX1BSRUZJWCAqLwogCiAJCXJldHVybjsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9uZXQvbmV0LmMgYi9uZXQvbmV0LmMKaW5kZXggODAyNjJiOS4uNzdlODNiNSAxMDA2NDQKLS0tIGEvbmV0L25ldC5jCisrKyBiL25ldC9uZXQuYwpAQCAtNDcyLDE2ICs0NzIsMTYgQEAKIAl9CiAKICNpZiBkZWZpbmVkKENPTkZJR19NSUkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCi0jaWYgZGVmaW5lZChDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04pICYmIGRlZmluZWQoQ09ORklHX1NUQVRVU19MRUQpICYmIGRlZmluZWQoU1RBVFVTX0xFRF9SRUQpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOKSAmJiBkZWZpbmVkKENPTkZJR19TVEFUVVNfTEVEKSAmJiBkZWZpbmVkKFNUQVRVU19MRURfUkVEKQogCS8qCiAJICogRWNobyB0aGUgaW52ZXJ0ZWQgbGluayBzdGF0ZSB0byB0aGUgZmF1bHQgTEVELgogCSAqLwotCWlmKG1paXBoeV9saW5rKGV0aF9nZXRfZGV2KCktPm5hbWUsIENGR19GQVVMVF9NSUlfQUREUikpIHsKKwlpZihtaWlwaHlfbGluayhldGhfZ2V0X2RldigpLT5uYW1lLCBDT05GSUdfU1lTX0ZBVUxUX01JSV9BRERSKSkgewogCQlzdGF0dXNfbGVkX3NldCAoU1RBVFVTX0xFRF9SRUQsIFNUQVRVU19MRURfT0ZGKTsKIAl9IGVsc2UgewogCQlzdGF0dXNfbGVkX3NldCAoU1RBVFVTX0xFRF9SRUQsIFNUQVRVU19MRURfT04pOwogCX0KLSNlbmRpZiAvKiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04sIC4uLiAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04sIC4uLiAqLwogI2VuZGlmIC8qIENPTkZJR19NSUksIC4uLiAqLwogCiAJLyoKQEAgLTUyMSwxOCArNTIxLDE4IEBACiAJCQl0aGFuZF9mICp4OwogCiAjaWYgZGVmaW5lZChDT05GSUdfTUlJKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQotIyAgaWYgZGVmaW5lZChDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04pICYmIFwKKyMgIGlmIGRlZmluZWQoQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTikgJiYgXAogICAgICAgZGVmaW5lZChDT05GSUdfU1RBVFVTX0xFRCkgJiYJICAgXAogICAgICAgZGVmaW5lZChTVEFUVVNfTEVEX1JFRCkKIAkJCS8qCiAJCQkgKiBFY2hvIHRoZSBpbnZlcnRlZCBsaW5rIHN0YXRlIHRvIHRoZSBmYXVsdCBMRUQuCiAJCQkgKi8KLQkJCWlmKG1paXBoeV9saW5rKGV0aF9nZXRfZGV2KCktPm5hbWUsIENGR19GQVVMVF9NSUlfQUREUikpIHsKKwkJCWlmKG1paXBoeV9saW5rKGV0aF9nZXRfZGV2KCktPm5hbWUsIENPTkZJR19TWVNfRkFVTFRfTUlJX0FERFIpKSB7CiAJCQkJc3RhdHVzX2xlZF9zZXQgKFNUQVRVU19MRURfUkVELCBTVEFUVVNfTEVEX09GRik7CiAJCQl9IGVsc2UgewogCQkJCXN0YXR1c19sZWRfc2V0IChTVEFUVVNfTEVEX1JFRCwgU1RBVFVTX0xFRF9PTik7CiAJCQl9Ci0jICBlbmRpZiAvKiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04sIC4uLiAqLworIyAgZW5kaWYgLyogQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTiwgLi4uICovCiAjZW5kaWYgLyogQ09ORklHX01JSSwgLi4uICovCiAJCQl4ID0gdGltZUhhbmRsZXI7CiAJCQl0aW1lSGFuZGxlciA9ICh0aGFuZF9mICopMDsKZGlmZiAtLWdpdCBhL25ldC9uZnMuYyBiL25ldC9uZnMuYwppbmRleCAwYzhmMDhjLi5mMjkwMDE0IDEwMDY0NAotLS0gYS9uZXQvbmZzLmMKKysrIGIvbmV0L25mcy5jCkBAIC02OSwxMCArNjksMTAgQEAKIHN0b3JlX2Jsb2NrICh1Y2hhciAqIHNyYywgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW4pCiB7CiAJdWxvbmcgbmV3c2l6ZSA9IG9mZnNldCArIGxlbjsKLSNpZmRlZiBDRkdfRElSRUNUX0ZMQVNIX05GUworI2lmZGVmIENPTkZJR19TWVNfRElSRUNUX0ZMQVNIX05GUwogCWludCBpLCByYyA9IDA7CiAKLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCS8qIHN0YXJ0IGFkZHJlc3MgaW4gZmxhc2g/ICovCiAJCWlmIChsb2FkX2FkZHIgKyBvZmZzZXQgPj0gZmxhc2hfaW5mb1tpXS5zdGFydFswXSkgewogCQkJcmMgPSAxOwpAQCAtODcsNyArODcsNyBAQAogCQkJcmV0dXJuIC0xOwogCQl9CiAJfSBlbHNlCi0jZW5kaWYgLyogQ0ZHX0RJUkVDVF9GTEFTSF9ORlMgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9ORlMgKi8KIAl7CiAJCSh2b2lkKW1lbWNweSAoKHZvaWQgKikobG9hZF9hZGRyICsgb2Zmc2V0KSwgc3JjLCBsZW4pOwogCX0KZGlmZiAtLWdpdCBhL25ldC90ZnRwLmMgYi9uZXQvdGZ0cC5jCmluZGV4IGY3Y2MxMTEuLmNlNmVhM2QgMTAwNjQ0Ci0tLSBhL25ldC90ZnRwLmMKKysrIGIvbmV0L3RmdHAuYwpAQCAtNzksNyArNzksNyBAQAogCiBzdGF0aWMgY2hhciB0ZnRwX2ZpbGVuYW1lW01BWF9MRU5dOwogCi0jaWZkZWYgQ0ZHX0RJUkVDVF9GTEFTSF9URlRQCisjaWZkZWYgQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAogZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW107CiAjZW5kaWYKIApAQCAtMTIxLDEwICsxMjEsMTAgQEAKIHsKIAl1bG9uZyBvZmZzZXQgPSBibG9jayAqIFRmdHBCbGtTaXplICsgVGZ0cEJsb2NrV3JhcE9mZnNldDsKIAl1bG9uZyBuZXdzaXplID0gb2Zmc2V0ICsgbGVuOwotI2lmZGVmIENGR19ESVJFQ1RfRkxBU0hfVEZUUAorI2lmZGVmIENPTkZJR19TWVNfRElSRUNUX0ZMQVNIX1RGVFAKIAlpbnQgaSwgcmMgPSAwOwogCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQkvKiBzdGFydCBhZGRyZXNzIGluIGZsYXNoPyAqLwogCQlpZiAoZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKQogCQkJY29udGludWU7CkBAIC0xNDMsNyArMTQzLDcgQEAKIAkJfQogCX0KIAllbHNlCi0jZW5kaWYgLyogQ0ZHX0RJUkVDVF9GTEFTSF9URlRQICovCisjZW5kaWYgLyogQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUCAqLwogCXsKIAkJKHZvaWQpbWVtY3B5KCh2b2lkICopKGxvYWRfYWRkciArIG9mZnNldCksIHNyYywgbGVuKTsKIAl9CmRpZmYgLS1naXQgYS9vbmVuYW5kX2lwbC9ib2FyZC9hcG9sbG9uL2Fwb2xsb24uYyBiL29uZW5hbmRfaXBsL2JvYXJkL2Fwb2xsb24vYXBvbGxvbi5jCmluZGV4IGFjZjVjMjkuLjQ5MzZlMDAgMTAwNjQ0Ci0tLSBhL29uZW5hbmRfaXBsL2JvYXJkL2Fwb2xsb24vYXBvbGxvbi5jCisrKyBiL29uZW5hbmRfaXBsL2JvYXJkL2Fwb2xsb24vYXBvbGxvbi5jCkBAIC0zNyw3ICszNyw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNpZmRlZiBDRkdfUFJJTlRGCisjaWZkZWYgQ09ORklHX1NZU19QUklOVEYKIC8qIFBpbiBNdXhpbmcgcmVnaXN0ZXJzIHVzZWQgZm9yIFVBUlQxICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogUm91dGluZTogbXV4U2V0dXBVQVJUMSAgKG9zdGJvb3QpCkBAIC02Myw3ICs2Myw3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGludCBzX2luaXQoaW50IHNraXApCiB7Ci0jaWZkZWYgQ0ZHX1BSSU5URgorI2lmZGVmIENPTkZJR19TWVNfUFJJTlRGCiAJbXV4U2V0dXBVQVJUMSgpOwogI2VuZGlmCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9vbmVuYW5kX2lwbC9vbmVuYW5kX2Jvb3QuYyBiL29uZW5hbmRfaXBsL29uZW5hbmRfYm9vdC5jCmluZGV4IDM1NjY4YWMuLmFmZjYyZDIgMTAwNjQ0Ci0tLSBhL29uZW5hbmRfaXBsL29uZW5hbmRfYm9vdC5jCisrKyBiL29uZW5hbmRfaXBsL29uZW5hbmRfYm9vdC5jCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJvbmVuYW5kX2lwbC5oIgogCi0jaWZkZWYgQ0ZHX1BSSU5URgorI2lmZGVmIENPTkZJR19TWVNfUFJJTlRGCiBpbnQgcHJpbnRfaW5mbyh2b2lkKQogewogCXByaW50ZihYTE9BREVSX1ZFUlNJT04pOwpAQCAtNDEsNyArNDEsNyBAQAogCiBpbml0X2ZuY190ICppbml0X3NlcXVlbmNlW10gPSB7CiAJYm9hcmRfaW5pdCwJCS8qIGJhc2ljIGJvYXJkIGRlcGVuZGVudCBzZXR1cCAqLwotI2lmZGVmIENGR19QUklOVEYKKyNpZmRlZiBDT05GSUdfU1lTX1BSSU5URgogCXNlcmlhbF9pbml0LAkJLyogc2VyaWFsIGNvbW11bmljYXRpb25zIHNldHVwICovCiAJcHJpbnRfaW5mbywKICNlbmRpZgpAQCAtNTgsMTcgKzU4LDE3IEBACiAJCQloYW5nKCk7CiAJfQogCi0JYnVmID0gKHVjaGFyICopIENGR19MT0FEX0FERFI7CisJYnVmID0gKHVjaGFyICopIENPTkZJR19TWVNfTE9BRF9BRERSOwogCiAJaWYgKCFvbmVuYW5kX3JlYWRfYmxvY2swKGJ1ZikpCiAJCWJ1ZiArPSBPTkVOQU5EX0JMT0NLX1NJWkU7CiAKLQlpZiAoYnVmID09ICh1Y2hhciAqKUNGR19MT0FEX0FERFIpCisJaWYgKGJ1ZiA9PSAodWNoYXIgKilDT05GSUdfU1lTX0xPQURfQUREUikKIAkJaGFuZygpOwogCiAJLyogZ28gcnVuIFUtQm9vdCBhbmQgbmV2ZXIgcmV0dXJuICovCiAJcHJpbnRmKCJTdGFydGluZyBPUyBCb290bG9hZGVyLi4uXG4iKTsKLQkoKGluaXRfZm5jX3QgKilDRkdfTE9BRF9BRERSKSgpOworCSgoaW5pdF9mbmNfdCAqKUNPTkZJR19TWVNfTE9BRF9BRERSKSgpOwogCiAJLyogc2hvdWxkIG5ldmVyIGNvbWUgaGVyZSAqLwogfQpkaWZmIC0tZ2l0IGEvb25lbmFuZF9pcGwvb25lbmFuZF9pcGwuaCBiL29uZW5hbmRfaXBsL29uZW5hbmRfaXBsLmgKaW5kZXggOTE4OGI5Ni4uMzM4Nzk5OCAxMDA2NDQKLS0tIGEvb25lbmFuZF9pcGwvb25lbmFuZF9pcGwuaAorKysgYi9vbmVuYW5kX2lwbC9vbmVuYW5kX2lwbC5oCkBAIC0yNSwxNCArMjUsMTQgQEAKIAogI2RlZmluZSBPTkVOQU5EX0JMT0NLX1NJWkUgICAgICAgICAgICAgIDIwNDgKIAotI2lmbmRlZiBDRkdfUFJJTlRGCisjaWZuZGVmIENPTkZJR19TWVNfUFJJTlRGCiAjZGVmaW5lIHByaW50Zihmb3JtYXQsIGFyZ3MuLi4pCiAjZW5kaWYKIAogI2RlZmluZSBvbmVuYW5kX3JlYWR3KGEpICAgICAgICByZWFkdyhhKQogI2RlZmluZSBvbmVuYW5kX3dyaXRldyh2LCBhKSAgICB3cml0ZXcodiwgYSkKIAotI2RlZmluZSBUSElTX09ORU5BTkQoYSkgICAgICAgICAoQ0ZHX09ORU5BTkRfQkFTRSArIChhKSkKKyNkZWZpbmUgVEhJU19PTkVOQU5EKGEpICAgICAgICAgKENPTkZJR19TWVNfT05FTkFORF9CQVNFICsgKGEpKQogCiAjZGVmaW5lIFJFQURfSU5URVJSVVBUKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAJb25lbmFuZF9yZWFkdyhUSElTX09ORU5BTkQoT05FTkFORF9SRUdfSU5URVJSVVBUKSkKZGlmZiAtLWdpdCBhL29uZW5hbmRfaXBsL29uZW5hbmRfcmVhZC5jIGIvb25lbmFuZF9pcGwvb25lbmFuZF9yZWFkLmMKaW5kZXggNjY5YjFlZi4uNmQwNDk0MyAxMDA2NDQKLS0tIGEvb25lbmFuZF9pcGwvb25lbmFuZF9yZWFkLmMKKysrIGIvb25lbmFuZF9pcGwvb25lbmFuZF9yZWFkLmMKQEAgLTY3LDcgKzY3LDcgQEAKICNpZm5kZWYgX19IQVZFX0FSQ0hfTUVNQ1BZMzIKIAlwID0gKHVuc2lnbmVkIGxvbmcgKikgYnVmOwogI2VuZGlmCi0JYmFzZSA9ICh1bnNpZ25lZCBsb25nICopIChDRkdfT05FTkFORF9CQVNFICsgT05FTkFORF9EQVRBUkFNKTsKKwliYXNlID0gKHVuc2lnbmVkIGxvbmcgKikgKENPTkZJR19TWVNfT05FTkFORF9CQVNFICsgT05FTkFORF9EQVRBUkFNKTsKIAogCXdoaWxlICghKFJFQURfSU5URVJSVVBUKCkgJiBPTkVOQU5EX0lOVF9SRUFEKSkKIAkJY29udGludWU7CmRpZmYgLS1naXQgYS9wb3N0L2JvYXJkL2x3bW9uL3N5c21vbi5jIGIvcG9zdC9ib2FyZC9sd21vbi9zeXNtb24uYwppbmRleCBlYThiNWE5Li43OWE1MTUxIDEwMDY0NAotLS0gYS9wb3N0L2JvYXJkL2x3bW9uL3N5c21vbi5jCisrKyBiL3Bvc3QvYm9hcmQvbHdtb24vc3lzbW9uLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKICNpbmNsdWRlIDx3YXRjaGRvZy5oPgogI2luY2x1ZGUgPGkyYy5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TWVNNT04KKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TWVNNT04KIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKQEAgLTc2LDExICs3NiwxMSBAQAogfTsKIAogc3RhdGljIHN5c21vbl90IHN5c21vbl9sbTg3ID0KLQl7Q0ZHX0kyQ19TWVNNT05fQUREUiwgc3lzbW9uX2xtODdfaW5pdCwgc3lzbW9uX2kyY19yZWFkfTsKKwl7Q09ORklHX1NZU19JMkNfU1lTTU9OX0FERFIsIHN5c21vbl9sbTg3X2luaXQsIHN5c21vbl9pMmNfcmVhZH07CiBzdGF0aWMgc3lzbW9uX3Qgc3lzbW9uX2xtODdfc2duID0KLQl7Q0ZHX0kyQ19TWVNNT05fQUREUiwgc3lzbW9uX2xtODdfaW5pdCwgc3lzbW9uX2kyY19yZWFkX3Nnbn07CisJe0NPTkZJR19TWVNfSTJDX1NZU01PTl9BRERSLCBzeXNtb25fbG04N19pbml0LCBzeXNtb25faTJjX3JlYWRfc2dufTsKIHN0YXRpYyBzeXNtb25fdCBzeXNtb25fcGljID0KLQl7Q0ZHX0kyQ19QSUNJT19BRERSLCBzeXNtb25fcGljX2luaXQsIHN5c21vbl9pMmNfcmVhZH07CisJe0NPTkZJR19TWVNfSTJDX1BJQ0lPX0FERFIsIHN5c21vbl9waWNfaW5pdCwgc3lzbW9uX2kyY19yZWFkfTsKIAogc3RhdGljIHN5c21vbl90ICogc3lzbW9uX2xpc3RbXSA9CiB7CkBAIC0zMjUsNCArMzI1LDQgQEAKIAlyZXR1cm4gcmVzOwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TWVNNT04gKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TWVNNT04gKi8KZGlmZiAtLWdpdCBhL3Bvc3QvYm9hcmQvbHdtb241L2RzcC5jIGIvcG9zdC9ib2FyZC9sd21vbjUvZHNwLmMKaW5kZXggYTk2YWM3ZC4uMGU2ZDkwOCAxMDA2NDQKLS0tIGEvcG9zdC9ib2FyZC9sd21vbjUvZHNwLmMKKysrIGIvcG9zdC9ib2FyZC9sd21vbjUvZHNwLmMKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRFNQCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRFNQCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKIC8qIFRoaXMgdGVzdCB2ZXJpZmllcyBEU1Agc3RhdHVzIGJpdHMgaW4gRlBHQSAqLwpAQCAtNTAsNCArNTAsNCBAQAogCXJldHVybiByZXQ7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0RTUCAqLworI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0RTUCAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9ib2FyZC9sd21vbjUvZHNwaWMuYyBiL3Bvc3QvYm9hcmQvbHdtb241L2RzcGljLmMKaW5kZXggZWIxYzMxYy4uZmYyZWQwNSAxMDA2NDQKLS0tIGEvcG9zdC9ib2FyZC9sd21vbjUvZHNwaWMuYworKysgYi9wb3N0L2JvYXJkL2x3bW9uNS9kc3BpYy5jCkBAIC00MCwxMiArNDAsMTIgQEAKICNkZWZpbmUgRFNQSUNfU1lTX0VSUk9SX1JFRwkweDgwMgogI2RlZmluZSBEU1BJQ19WRVJTSU9OX1JFRwkweDgwNAogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9CU1BFQzEKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9CU1BFQzEKIAogLyogVmVyaWZ5IHRoYXQgZHNQSUMgcmVhZHkgdGVzdCBkb25lIGVhcmx5IGF0IGh3IGluaXQgcGFzc2VkIG9rICovCiBpbnQgZHNwaWNfaW5pdF9wb3N0X3Rlc3QoaW50IGZsYWdzKQogewotCWlmIChpbl9iZTMyKCh2b2lkICopQ0ZHX0RTUElDX1RFU1RfQUREUikgJiBDRkdfRFNQSUNfVEVTVF9NQVNLKSB7CisJaWYgKGluX2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX0RTUElDX1RFU1RfQUREUikgJiBDT05GSUdfU1lTX0RTUElDX1RFU1RfTUFTSykgewogCQlwb3N0X2xvZygiZHNQSUMgaW5pdCB0ZXN0IGZhaWxlZFxuIik7CiAJCXJldHVybiAxOwogCX0KQEAgLTUzLDE1ICs1MywxNSBAQAogCXJldHVybiAwOwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9CU1BFQzEgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9CU1BFQzEgKi8KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQlNQRUMyCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQlNQRUMyCiAvKiBSZWFkIGEgcmVnaXN0ZXIgZnJvbSB0aGUgZHNQSUMuICovCiBpbnQgZHNwaWNfcmVhZCh1c2hvcnQgcmVnKQogewogCXVjaGFyIGJ1ZlsyXTsKIAotCWlmIChpMmNfcmVhZChDRkdfSTJDX0RTUElDX0lPX0FERFIsIHJlZywgMiwgYnVmLCAyKSkKKwlpZiAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfRFNQSUNfSU9fQUREUiwgcmVnLCAyLCBidWYsIDIpKQogCQlyZXR1cm4gLTE7CiAKIAlyZXR1cm4gKHVpbnQpKChidWZbMF0gPDwgOCkgfCBidWZbMV0pOwpAQCAtMTAyLDQgKzEwMiw0IEBACiAJcmV0dXJuIHJldDsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQlNQRUMyICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQlNQRUMyICovCmRpZmYgLS1naXQgYS9wb3N0L2JvYXJkL2x3bW9uNS9mcGdhLmMgYi9wb3N0L2JvYXJkL2x3bW9uNS9mcGdhLmMKaW5kZXggZWY2NDFkNy4uMmI4NDI5MCAxMDA2NDQKLS0tIGEvcG9zdC9ib2FyZC9sd21vbjUvZnBnYS5jCisrKyBiL3Bvc3QvYm9hcmQvbHdtb241L2ZwZ2EuYwpAQCAtMzksNyArMzksNyBAQAogI2RlZmluZSBGUEdBX1JBTV9FTkQJCTB4QzQyMDNGRkYKICNkZWZpbmUgRlBHQV9TVEFUCQkweEM0MDAwMDBDCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0JTUEVDMworI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0JTUEVDMwogCiAvKiBUZXN0cGF0dGVybiBmb3IgZnBnYSBtZW1vcnl0ZXN0ICovCiBzdGF0aWMgdWludCBwYXR0ZXJuW10gPSB7CkBAIC0xMjcsNyArMTI3LDcgQEAKIAkvKiBFbmFibGUgd3JpdGUgdG8gRlBHQSBSQU0gKi8KIAlvdXRfYmUzMigodm9pZCAqKUZQR0FfU1RBVCwgaW5fYmUzMigodm9pZCAqKUZQR0FfU1RBVCkgfCAweDEwMDApOwogCi0JcmVhZF92YWx1ZSA9IGdldF9yYW1fc2l6ZSgodm9pZCAqKUNGR19GUEdBX0JBU0VfMSwgMHg0MDAwKTsKKwlyZWFkX3ZhbHVlID0gZ2V0X3JhbV9zaXplKCh2b2lkICopQ09ORklHX1NZU19GUEdBX0JBU0VfMSwgMHg0MDAwKTsKIAlwb3N0X2xvZygiRlBHQSBSQU0gc2l6ZTogJWQgYnl0ZXNcbiIsIHJlYWRfdmFsdWUpOwogCiAJZm9yIChhZGRyZXNzID0gMDsgYWRkcmVzcyA8IDB4MTAwMDsgYWRkcmVzcysrKSB7CkBAIC0xNDEsNCArMTQxLDQgQEAKIAlyZXR1cm4gcmV0OwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9CU1BFQzMgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9CU1BFQzMgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvYm9hcmQvbHdtb241L2dkYy5jIGIvcG9zdC9ib2FyZC9sd21vbjUvZ2RjLmMKaW5kZXggYmMxNjY4NS4uZWIxNmUzNiAxMDA2NDQKLS0tIGEvcG9zdC9ib2FyZC9sd21vbjUvZ2RjLmMKKysrIGIvcG9zdC9ib2FyZC9sd21vbjUvZ2RjLmMKQEAgLTM4LDcgKzM4LDcgQEAKICNkZWZpbmUgR0RDX1JBTV9TVEFSVCAgIDB4QzAwMDAwMDAKICNkZWZpbmUgR0RDX1JBTV9FTkQgICAgIDB4QzIwMDAwMDAKIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQlNQRUM0CisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQlNQRUM0CiAKIHN0YXRpYyBpbnQgZ2RjX3Rlc3RfcmVnX29uZSh1aW50IHZhbHVlKQogewpAQCAtOTMsNCArOTMsNCBAQAogCiAJcmV0dXJuIHJldDsKIH0KLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0JTUEVDNCAqLworI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0JTUEVDNCAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9ib2FyZC9sd21vbjUvc3lzbW9uLmMgYi9wb3N0L2JvYXJkL2x3bW9uNS9zeXNtb24uYwppbmRleCAyNzY2MjI0Li5hZWY1YmQwIDEwMDY0NAotLS0gYS9wb3N0L2JvYXJkL2x3bW9uNS9zeXNtb24uYworKysgYi9wb3N0L2JvYXJkL2x3bW9uNS9zeXNtb24uYwpAQCAtNTEsNyArNTEsNyBAQAogI2luY2x1ZGUgPG1iODYyeHguaD4KICNlbmRpZgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TWVNNT04KKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TWVNNT04KIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKQEAgLTkwLDcgKzkwLDcgQEAKIH07CiAKIHN0YXRpYyBzeXNtb25fdCBzeXNtb25fZHNwaWMgPQotCXtDRkdfSTJDX0RTUElDX0lPX0FERFIsIHN5c21vbl9kc3BpY19pbml0LCBzeXNtb25fZHNwaWNfcmVhZH07CisJe0NPTkZJR19TWVNfSTJDX0RTUElDX0lPX0FERFIsIHN5c21vbl9kc3BpY19pbml0LCBzeXNtb25fZHNwaWNfcmVhZH07CiAKIHN0YXRpYyBzeXNtb25fdCAqIHN5c21vbl9saXN0W10gPQogewpAQCAtMjY3LDQgKzI2Nyw0IEBACiAKIAlyZXR1cm4gcmVzOwogfQotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfU1lTTU9OICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfU1lTTU9OICovCmRpZmYgLS1naXQgYS9wb3N0L2JvYXJkL2x3bW9uNS93YXRjaGRvZy5jIGIvcG9zdC9ib2FyZC9sd21vbjUvd2F0Y2hkb2cuYwppbmRleCAxMjQ2Mjc4Li40NGYwNDg4IDEwMDY0NAotLS0gYS9wb3N0L2JvYXJkL2x3bW9uNS93YXRjaGRvZy5jCisrKyBiL3Bvc3QvYm9hcmQvbHdtb241L3dhdGNoZG9nLmMKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfV0FUQ0hET0cKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9XQVRDSERPRwogCiAjaW5jbHVkZSA8d2F0Y2hkb2cuaD4KICNpbmNsdWRlIDxhc20vZ3Bpby5oPgpAQCAtMzksMjAgKzM5LDIwIEBACiAKIHN0YXRpYyB1aW50IHdhdGNoZG9nX21hZ2ljX3JlYWQodm9pZCkKIHsKLQlyZXR1cm4gaW5fYmUzMigodm9pZCAqKUNGR19XQVRDSERPR19GTEFHU19BRERSKSAmCi0JCUNGR19XQVRDSERPR19NQUdJQ19NQVNLOworCXJldHVybiBpbl9iZTMyKCh2b2lkICopQ09ORklHX1NZU19XQVRDSERPR19GTEFHU19BRERSKSAmCisJCUNPTkZJR19TWVNfV0FUQ0hET0dfTUFHSUNfTUFTSzsKIH0KIAogc3RhdGljIHZvaWQgd2F0Y2hkb2dfbWFnaWNfd3JpdGUodWludCB2YWx1ZSkKIHsKLQlvdXRfYmUzMigodm9pZCAqKUNGR19XQVRDSERPR19GTEFHU19BRERSLCB2YWx1ZSB8Ci0JCShpbl9iZTMyKCh2b2lkICopQ0ZHX1dBVENIRE9HX0ZMQUdTX0FERFIpICYKLQkJCX5DRkdfV0FUQ0hET0dfTUFHSUNfTUFTSykpOworCW91dF9iZTMyKCh2b2lkICopQ09ORklHX1NZU19XQVRDSERPR19GTEFHU19BRERSLCB2YWx1ZSB8CisJCShpbl9iZTMyKCh2b2lkICopQ09ORklHX1NZU19XQVRDSERPR19GTEFHU19BRERSKSAmCisJCQl+Q09ORklHX1NZU19XQVRDSERPR19NQUdJQ19NQVNLKSk7CiB9CiAKIGludCBzeXNtb24xX3Bvc3RfdGVzdChpbnQgZmxhZ3MpCiB7Ci0JaWYgKGdwaW9fcmVhZF9pbl9iaXQoQ0ZHX0dQSU9fU1lTTU9OX1NUQVRVUykgPT0gMCkgeworCWlmIChncGlvX3JlYWRfaW5fYml0KENPTkZJR19TWVNfR1BJT19TWVNNT05fU1RBVFVTKSA9PSAwKSB7CiAJCS8qCiAJCSAqIDMuMS4gR1BJTzYyIGlzIGxvdwogCQkgKiBBc3N1bWluZyBzeXN0ZW0gdm9sdGFnZSBmYWlsdXJlLgpAQCAtNzksNyArNzksNyBAQAogCQlyZXR1cm4gMTsKIAl9CiAKLQlpZiAod2F0Y2hkb2dfbWFnaWNfcmVhZCgpICE9IENGR19XQVRDSERPR19NQUdJQykgeworCWlmICh3YXRjaGRvZ19tYWdpY19yZWFkKCkgIT0gQ09ORklHX1NZU19XQVRDSERPR19NQUdJQykgewogCQkvKiAzLjIuIFNjcmF0Y2ggcmVnaXN0ZXIgMSBkaWZmZXJzIGZyb20gbWFnaWMgdmFsdWUgMHgxMjQ4eHh4eAogCQkgKiBBc3N1bWluZyBQb3dlck9uCiAJCSAqLwpAQCAtODgsMTggKzg4LDE4IEBACiAJCXVsb25nIHRpbWU7CiAKIAkJLyogMy4yLjEuIFNldCBtYWdpYyB2YWx1ZSB0byBzY3JhdGNoIHJlZ2lzdGVyICovCi0JCXdhdGNoZG9nX21hZ2ljX3dyaXRlKENGR19XQVRDSERPR19NQUdJQyk7CisJCXdhdGNoZG9nX21hZ2ljX3dyaXRlKENPTkZJR19TWVNfV0FUQ0hET0dfTUFHSUMpOwogCiAJCWludHMgPSBkaXNhYmxlX2ludGVycnVwdHMgKCk7CiAJCS8qIDMuMi4yLiBzdHJvYmUgd2F0Y2hkb2cgb25jZSAqLwogCQlXQVRDSERPR19SRVNFVCgpOwotCQlvdXRfYmUzMigodm9pZCAqKUNGR19XQVRDSERPR19USU1FX0FERFIsIDApOworCQlvdXRfYmUzMigodm9pZCAqKUNPTkZJR19TWVNfV0FUQ0hET0dfVElNRV9BRERSLCAwKTsKIAkJLyogMy4yLjMuIHNhdmUgdGltZSBvZiBzdHJvYmUgaW4gc2NyYXRjaCByZWdpc3RlciAyICovCiAJCWJhc2UgPSBwb3N0X3RpbWVfbXMgKDApOwogCiAJCS8qIDMuMi40LiBXYWl0IGZvciAxNTAgbXMgKGVub3VnaCBmb3IgcmVzZXQgdG8gaGFwcGVuKSAqLwogCQl3aGlsZSAoKHRpbWUgPSBwb3N0X3RpbWVfbXMgKGJhc2UpKSA8IDE1MCkKLQkJCW91dF9iZTMyKCh2b2lkICopQ0ZHX1dBVENIRE9HX1RJTUVfQUREUiwgdGltZSk7CisJCQlvdXRfYmUzMigodm9pZCAqKUNPTkZJR19TWVNfV0FUQ0hET0dfVElNRV9BRERSLCB0aW1lKTsKIAkJaWYgKGludHMpCiAJCQllbmFibGVfaW50ZXJydXB0cyAoKTsKIApAQCAtMTE2LDcgKzExNiw3IEBACiAJCSAqLwogCQl1bG9uZyB0aW1lOwogCQkvKiAzLjMuMS4gU28sIHRoZSB0ZXN0IHN1Y2NlZWQsIHNhdmUgbWVhc3VyZWQgdGltZSB0byBzeXNsb2cuICovCi0JCXRpbWUgPSBpbl9iZTMyKCh2b2lkICopQ0ZHX1dBVENIRE9HX1RJTUVfQUREUik7CisJCXRpbWUgPSBpbl9iZTMyKCh2b2lkICopQ09ORklHX1NZU19XQVRDSERPR19USU1FX0FERFIpOwogCQlwb3N0X2xvZygiaHcgd2F0Y2hkb2cgdGltZSA6ICV1IG1zLCBwYXNzZWQgIiwgdGltZSk7CiAJCS8qIDMuMy4yLiBTZXQgc2NyYXRjaCByZWdpc3RlciAxIHRvIDB4MDAwMHh4eHggKi8KIAkJd2F0Y2hkb2dfbWFnaWNfd3JpdGUoMCk7CkBAIC0xMjUsNCArMTI1LDQgQEAKIAlyZXR1cm4gLTE7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1dBVENIRE9HICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfV0FUQ0hET0cgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvYm9hcmQvbmV0dGEvY29kZWMuYyBiL3Bvc3QvYm9hcmQvbmV0dGEvY29kZWMuYwppbmRleCAxMTVlMzMxLi5hMDk1YTkxIDEwMDY0NAotLS0gYS9wb3N0L2JvYXJkL25ldHRhL2NvZGVjLmMKKysrIGIvcG9zdC9ib2FyZC9uZXR0YS9jb2RlYy5jCkBAIC0zMyw3ICszMyw3IEBACiAKICNpbmNsdWRlIDxwb3N0Lmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NPREVDCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ09ERUMKIAogZXh0ZXJuIGludCBib2FyZF9wb3N0X2NvZGVjKGludCBmbGFncyk7CiAKQEAgLTQyLDQgKzQyLDQgQEAKIAlyZXR1cm4gYm9hcmRfcG9zdF9jb2RlYyhmbGFncyk7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NPREVDICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ09ERUMgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvYm9hcmQvbmV0dGEvZHNwLmMgYi9wb3N0L2JvYXJkL25ldHRhL2RzcC5jCmluZGV4IGRjZWY0ZTguLjQzOGNlZDUgMTAwNjQ0Ci0tLSBhL3Bvc3QvYm9hcmQvbmV0dGEvZHNwLmMKKysrIGIvcG9zdC9ib2FyZC9uZXR0YS9kc3AuYwpAQCAtMzMsNyArMzMsNyBAQAogCiAjaW5jbHVkZSA8cG9zdC5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9EU1AKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9EU1AKIAogZXh0ZXJuIGludCBib2FyZF9wb3N0X2RzcChpbnQgZmxhZ3MpOwogCkBAIC00Miw0ICs0Miw0IEBACiAJcmV0dXJuIGJvYXJkX3Bvc3RfZHNwKGZsYWdzKTsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRFNQICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRFNQICovCmRpZmYgLS1naXQgYS9wb3N0L2NwdS9tcGM4eHgvY2FjaGUuYyBiL3Bvc3QvY3B1L21wYzh4eC9jYWNoZS5jCmluZGV4IDM2OTY1YTEuLjA2Y2I1MDEgMTAwNjQ0Ci0tLSBhL3Bvc3QvY3B1L21wYzh4eC9jYWNoZS5jCisrKyBiL3Bvc3QvY3B1L21wYzh4eC9jYWNoZS5jCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSA8cG9zdC5oPgogI2luY2x1ZGUgPHdhdGNoZG9nLmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NBQ0hFCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ0FDSEUKIAogI2RlZmluZSBDQUNIRV9QT1NUX1NJWkUJMTAyNAogCkBAIC03NSw0ICs3NSw0IEBACiAJcmV0dXJuIHJlczsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQ0FDSEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DQUNIRSAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9jcHUvbXBjOHh4L2NhY2hlXzh4eC5TIGIvcG9zdC9jcHUvbXBjOHh4L2NhY2hlXzh4eC5TCmluZGV4IGEzZmMzOWIuLjA5N2VlZGIgMTAwNjQ0Ci0tLSBhL3Bvc3QvY3B1L21wYzh4eC9jYWNoZV84eHguUworKysgYi9wb3N0L2NwdS9tcGM4eHgvY2FjaGVfOHh4LlMKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlIDxwcGNfZGVmcy5oPgogI2luY2x1ZGUgPGFzbS9jYWNoZS5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DQUNIRQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NBQ0hFCiAKIAkudGV4dAogCkBAIC00OTAsNCArNDkwLDQgQEAKIAlibHIKIAogI2VuZGlmIC8qIENPTkZJR19NUEM4MjMgfHwgTVBDODUwIHx8IE1QQzg1NSB8fCBNUEM4NjAgKi8KLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NBQ0hFICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ0FDSEUgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvY3B1L21wYzh4eC9ldGhlci5jIGIvcG9zdC9jcHUvbXBjOHh4L2V0aGVyLmMKaW5kZXggMmZhNWNmNC4uNTYyMmNiNyAxMDA2NDQKLS0tIGEvcG9zdC9jcHUvbXBjOHh4L2V0aGVyLmMKKysrIGIvcG9zdC9jcHUvbXBjOHh4L2V0aGVyLmMKQEAgLTM2LDcgKzM2LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8cG9zdC5oPgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRVRIRVIKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9FVEhFUgogI2lmIGRlZmluZWQoQ09ORklHXzh4eCkKICNpbmNsdWRlIDxjb21tcHJvYy5oPgogI2VsaWYgZGVmaW5lZChDT05GSUdfTVBDODI2MCkKQEAgLTEyMCw3ICsxMjAsNyBAQAogCWludCBpOwogCXNjY19lbmV0X3QgKnByYW1fcHRyOwogCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlpbW1yLT5pbV9jcG0uY3Bfc2NjW3NjY19pbmRleF0uc2NjX2dzbXJsICY9CiAJCQl+KFNDQ19HU01STF9FTlIgfCBTQ0NfR1NNUkxfRU5UKTsKQEAgLTE0Myw3ICsxNDMsNyBAQAogCXJ4SWR4ID0gMDsKIAl0eElkeCA9IDA7CiAKLSNpZmRlZiBDRkdfQUxMT0NfRFBSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCiAJcnR4ID0gKFJUWEJEICopIChpbW1yLT5pbV9jcG0uY3BfZHBtZW0gKwogCQkJCQkgZHByYW1fYWxsb2NfYWxpZ24gKHNpemVvZiAoUlRYQkQpLCA4KSk7CiAjZWxzZQpAQCAtNDUyLDcgKzQ1Miw3IEBACiAKIHN0YXRpYyB2b2lkIHNjY19oYWx0IChpbnQgc2NjX2luZGV4KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJaW1tci0+aW1fY3BtLmNwX3NjY1tzY2NfaW5kZXhdLnNjY19nc21ybCAmPQogCQkJfihTQ0NfR1NNUkxfRU5SIHwgU0NDX0dTTVJMX0VOVCk7CkBAIC02MjQsNCArNjI0LDQgQEAKIAlyZXR1cm4gcmVzOwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9FVEhFUiAqLworI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0VUSEVSICovCmRpZmYgLS1naXQgYS9wb3N0L2NwdS9tcGM4eHgvc3ByLmMgYi9wb3N0L2NwdS9tcGM4eHgvc3ByLmMKaW5kZXggODNmMDRkYS4uZGI4NGRiZSAxMDA2NDQKLS0tIGEvcG9zdC9jcHUvbXBjOHh4L3Nwci5jCisrKyBiL3Bvc3QvY3B1L21wYzh4eC9zcHIuYwpAQCAtMzUsNyArMzUsNyBAQAogCiAjaW5jbHVkZSA8cG9zdC5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TUFIKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TUFIKIAogc3RhdGljIHN0cnVjdAogewpAQCAtODAsNyArODAsNyBAQAogCXsxNTksCSJCQVIiLAkJMHgwMDAwMDAwMCwJMHgwMDAwMDAwMH0sCiAJezYzMCwJIkRQRFIiLAkJMHgwMDAwMDAwMCwJMHgwMDAwMDAwMH0sCiAJezYzMSwJIkRQSVIiLAkJMHgwMDAwMDAwMCwJMHgwMDAwMDAwMH0sCi0JezYzOCwJIklNTVIiLAkJMHhGRkZGMDAwMCwJQ0ZHX0lNTVIgIH0sCisJezYzOCwJIklNTVIiLAkJMHhGRkZGMDAwMCwJQ09ORklHX1NZU19JTU1SICB9LAogCXs1NjAsCSJJQ19DU1QiLAkweDhFMzgwMDAwLAkweDAwMDAwMDAwfSwKIAl7NTYxLAkiSUNfQURSIiwJMHgwMDAwMDAwMCwJMHgwMDAwMDAwMH0sCiAJezU2MiwJIklDX0RBVCIsCTB4MDAwMDAwMDAsCTB4MDAwMDAwMDB9LApAQCAtMTQ2LDQgKzE0Niw0IEBACiAKIAlyZXR1cm4gcmV0OwogfQotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfU1BSICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfU1BSICovCmRpZmYgLS1naXQgYS9wb3N0L2NwdS9tcGM4eHgvdWFydC5jIGIvcG9zdC9jcHUvbXBjOHh4L3VhcnQuYwppbmRleCA2MzVkZWJlLi5mMzUxYWMwIDEwMDY0NAotLS0gYS9wb3N0L2NwdS9tcGM4eHgvdWFydC5jCisrKyBiL3Bvc3QvY3B1L21wYzh4eC91YXJ0LmMKQEAgLTM3LDcgKzM3LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8cG9zdC5oPgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfVUFSVAorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX1VBUlQKICNpZiBkZWZpbmVkKENPTkZJR184eHgpCiAjaW5jbHVkZSA8Y29tbXByb2MuaD4KICNlbGlmIGRlZmluZWQoQ09ORklHX01QQzgyNjApCkBAIC04NCw3ICs4NCw3IEBACiB7CiAJc3RhdGljIGludCBjcG1fY3JfY2hbXSA9IHsgQ1BNX0NSX0NIX1NNQzEsIENQTV9DUl9DSF9TTUMyIH07CiAKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHNtY190ICpzcDsKIAl2b2xhdGlsZSBzbWNfdWFydF90ICp1cDsKIAl2b2xhdGlsZSBjYmRfdCAqdGJkZiwgKnJiZGY7CkBAIC0xMDUsMTUgKzEwNSwxNSBAQAogCWltLT5pbV9zaXVfY29uZi5zY19zZGNyID0gMTsKIAogCS8qIGNsZWFyIGVycm9yIGNvbmRpdGlvbnMgKi8KLSNpZmRlZglDRkdfU0RTUgotCWltLT5pbV9zZG1hLnNkbWFfc2RzciA9IENGR19TRFNSOworI2lmZGVmCUNPTkZJR19TWVNfU0RTUgorCWltLT5pbV9zZG1hLnNkbWFfc2RzciA9IENPTkZJR19TWVNfU0RTUjsKICNlbHNlCiAJaW0tPmltX3NkbWEuc2RtYV9zZHNyID0gMHg4MzsKICNlbmRpZgogCiAJLyogY2xlYXIgU0RNQSBpbnRlcnJ1cHQgbWFzayAqLwotI2lmZGVmCUNGR19TRE1SCi0JaW0tPmltX3NkbWEuc2RtYV9zZG1yID0gQ0ZHX1NETVI7CisjaWZkZWYJQ09ORklHX1NZU19TRE1SCisJaW0tPmltX3NkbWEuc2RtYV9zZG1yID0gQ09ORklHX1NZU19TRE1SOwogI2Vsc2UKIAlpbS0+aW1fc2RtYS5zZG1hX3NkbXIgPSAweDAwOwogI2VuZGlmCkBAIC0xMzMsNyArMTMzLDcgQEAKIAkgKiB0aGUgYnVmZmVyIGRlc2NyaXB0b3JzLgogCSAqLwogCi0jaWZkZWYgQ0ZHX0FMTE9DX0RQUkFNCisjaWZkZWYgQ09ORklHX1NZU19BTExPQ19EUFJBTQogCWRwYWRkciA9IGRwcmFtX2FsbG9jX2FsaWduIChzaXplb2YgKGNiZF90KSAqIDIgKyAyLCA4KTsKICNlbHNlCiAJZHBhZGRyID0gQ1BNX1BPU1RfQkFTRTsKQEAgLTIxOCw3ICsyMTgsNyBAQAogCXZvbGF0aWxlIGNiZF90ICp0YmRmOwogCXZvbGF0aWxlIGNoYXIgKmJ1ZjsKIAl2b2xhdGlsZSBzbWNfdWFydF90ICp1cDsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcG1wID0gJihpbS0+aW1fY3BtKTsKIAogCXVwID0gKHNtY191YXJ0X3QgKikgJiBjcG1wLT5jcF9kcGFyYW1bcHJvZmZfc21jW3NtY19pbmRleF1dOwpAQCAtMjUwLDcgKzI1MCw3IEBACiAJdm9sYXRpbGUgY2JkX3QgKnJiZGY7CiAJdm9sYXRpbGUgdW5zaWduZWQgY2hhciAqYnVmOwogCXZvbGF0aWxlIHNtY191YXJ0X3QgKnVwOwotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwbXAgPSAmKGltLT5pbV9jcG0pOwogCXVuc2lnbmVkIGNoYXIgYzsKIAlpbnQgaTsKQEAgLTI5Myw3ICsyOTMsNyBAQAogCQlDUE1fQ1JfQ0hfU0NDNCwKIAl9OwogCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBzY2NfdCAqc3A7CiAJdm9sYXRpbGUgc2NjX3VhcnRfdCAqdXA7CiAJdm9sYXRpbGUgY2JkX3QgKnRiZGYsICpyYmRmOwpAQCAtMzEzLDcgKzMxMyw3IEBACiAJLyogQWxsb2NhdGUgc3BhY2UgZm9yIHR3byBidWZmZXIgZGVzY3JpcHRvcnMgaW4gdGhlIERQIHJhbS4KIAkgKi8KIAotI2lmZGVmIENGR19BTExPQ19EUFJBTQorI2lmZGVmIENPTkZJR19TWVNfQUxMT0NfRFBSQU0KIAlkcGFkZHIgPSBkcHJhbV9hbGxvY19hbGlnbiAoc2l6ZW9mIChjYmRfdCkgKiAyICsgMiwgOCk7CiAjZWxzZQogCWRwYWRkciA9IENQTV9QT1NUX0JBU0U7CkBAIC00MjAsNyArNDIwLDcgQEAKIAogc3RhdGljIHZvaWQgc2NjX2hhbHQoaW50IHNjY19pbmRleCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcCA9ICYoaW0tPmltX2NwbSk7CiAJdm9sYXRpbGUgc2NjX3QgKnNwID0gKHNjY190ICopICYgKGNwLT5jcF9zY2Nbc2NjX2luZGV4XSk7CiAKQEAgLTQzMiw3ICs0MzIsNyBAQAogCXZvbGF0aWxlIGNiZF90ICp0YmRmOwogCXZvbGF0aWxlIGNoYXIgKmJ1ZjsKIAl2b2xhdGlsZSBzY2NfdWFydF90ICp1cDsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcG1wID0gJihpbS0+aW1fY3BtKTsKIAogCXVwID0gKHNjY191YXJ0X3QgKikgJiBjcG1wLT5jcF9kcGFyYW1bcHJvZmZfc2NjW3NjY19pbmRleF1dOwpAQCAtNDY0LDcgKzQ2NCw3IEBACiAJdm9sYXRpbGUgY2JkX3QgKnJiZGY7CiAJdm9sYXRpbGUgdW5zaWduZWQgY2hhciAqYnVmOwogCXZvbGF0aWxlIHNjY191YXJ0X3QgKnVwOwotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwbXAgPSAmKGltLT5pbV9jcG0pOwogCXVuc2lnbmVkIGNoYXIgYzsKIAlpbnQgaTsKQEAgLTU1Myw0ICs1NTMsNCBAQAogCXJldHVybiByZXM7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1VBUlQgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9VQVJUICovCmRpZmYgLS1naXQgYS9wb3N0L2NwdS9tcGM4eHgvdXNiLmMgYi9wb3N0L2NwdS9tcGM4eHgvdXNiLmMKaW5kZXggNTg3Nzk4MS4uZTNmZTA3NSAxMDA2NDQKLS0tIGEvcG9zdC9jcHUvbXBjOHh4L3VzYi5jCisrKyBiL3Bvc3QvY3B1L21wYzh4eC91c2IuYwpAQCAtMzYsNyArMzYsNyBAQAogCiAjaW5jbHVkZSA8cG9zdC5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9VU0IKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9VU0IKIAogI2luY2x1ZGUgPGNvbW1wcm9jLmg+CiAjaW5jbHVkZSA8Y29tbWFuZC5oPgpAQCAtMTA1LDcgKzEwNSw3IEBACiBpbnQgdXNiX3Bvc3RfdGVzdCAoaW50IGZsYWdzKQogewogCWludCByZXMgPSAtMTsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcCA9ICYoaW0tPmltX2NwbSk7CiAJdm9sYXRpbGUgdXNiX3BhcmFtX3QgKnByYW1fcHRyOwogCXVpbnQgZHByYW07CkBAIC0yNjIsNCArMjYyLDQgQEAKIAlyZXR1cm4gcmVzOwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9VU0IgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9VU0IgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvY3B1L21wYzh4eC93YXRjaGRvZy5jIGIvcG9zdC9jcHUvbXBjOHh4L3dhdGNoZG9nLmMKaW5kZXggZjk0MTU4YS4uZGExOTFjMiAxMDA2NDQKLS0tIGEvcG9zdC9jcHUvbXBjOHh4L3dhdGNoZG9nLmMKKysrIGIvcG9zdC9jcHUvbXBjOHh4L3dhdGNoZG9nLmMKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSA8d2F0Y2hkb2cuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfV0FUQ0hET0cKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9XQVRDSERPRwogCiBzdGF0aWMgdWxvbmcgZ2V0dGJsICh2b2lkKQogewpAQCAtNzIsNCArNzIsNCBAQAogCX0KIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfV0FUQ0hET0cgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9XQVRDSERPRyAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9jcHUvcHBjNHh4L2NhY2hlLmMgYi9wb3N0L2NwdS9wcGM0eHgvY2FjaGUuYwppbmRleCBiZTZhMmJmLi40ODJmODE5IDEwMDY0NAotLS0gYS9wb3N0L2NwdS9wcGM0eHgvY2FjaGUuYworKysgYi9wb3N0L2NwdS9wcGM0eHgvY2FjaGUuYwpAQCAtMzMsNyArMzMsNyBAQAogCiAjaW5jbHVkZSA8cG9zdC5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DQUNIRQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NBQ0hFCiAKICNpbmNsdWRlIDxhc20vbW11Lmg+CiAjaW5jbHVkZSA8d2F0Y2hkb2cuaD4KQEAgLTU0LDcgKzU0LDcgQEAKIAogaW50IGNhY2hlX3Bvc3RfdGVzdCAoaW50IGZsYWdzKQogewotCXZvaWQgKnZpcnQgPSAodm9pZCAqKUNGR19QT1NUX0NBQ0hFX0FERFI7CisJdm9pZCAqdmlydCA9ICh2b2lkICopQ09ORklHX1NZU19QT1NUX0NBQ0hFX0FERFI7CiAJaW50IGludHM7CiAJaW50IHJlcyA9IDA7CiAJaW50IHRsYiA9IC0xOwkJLyogaW5kZXggdG8gdGhlIHZpY3RpbSBUTEIgZW50cnkgKi8KQEAgLTExOSw0ICsxMTksNCBAQAogCXJldHVybiByZXM7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NBQ0hFICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ0FDSEUgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvY3B1L3BwYzR4eC9jYWNoZV80eHguUyBiL3Bvc3QvY3B1L3BwYzR4eC9jYWNoZV80eHguUwppbmRleCA0NTVmZmEwLi4zZjNlNTg1IDEwMDY0NAotLS0gYS9wb3N0L2NwdS9wcGM0eHgvY2FjaGVfNHh4LlMKKysrIGIvcG9zdC9jcHUvcHBjNHh4L2NhY2hlXzR4eC5TCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8YXNtL2NhY2hlLmg+CiAjaW5jbHVkZSA8YXNtL21tdS5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DQUNIRQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NBQ0hFCiAKIAkudGV4dAogCkBAIC0xMTUsOCArMTE1LDggQEAKICAqLwogY2FjaGVfcG9zdF9kaW52YWxpZGF0ZToKIAlkY2JpCXIwLCByMwotCWFkZGkJcjMsIHIzLCBDRkdfQ0FDSEVMSU5FX1NJWkUKLQlzdWJpYy4JcjQsIHI0LCBDRkdfQ0FDSEVMSU5FX1NJWkUKKwlhZGRpCXIzLCByMywgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQorCXN1YmljLglyNCwgcjQsIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKIAliZ3QJY2FjaGVfcG9zdF9kaW52YWxpZGF0ZQogCXN5bmMKIAlibHIKQEAgLTEyNSw4ICsxMjUsOCBAQAogICovCiBjYWNoZV9wb3N0X2RzdG9yZToKIAlkY2JzdAlyMCwgcjMKLQlhZGRpCXIzLCByMywgQ0ZHX0NBQ0hFTElORV9TSVpFCi0Jc3ViaWMuCXI0LCByNCwgQ0ZHX0NBQ0hFTElORV9TSVpFCisJYWRkaQlyMywgcjMsIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKKwlzdWJpYy4JcjQsIHI0LCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCiAJYmd0CWNhY2hlX3Bvc3RfZHN0b3JlCiAJc3luYwogCWJscgpAQCAtMTM1LDggKzEzNSw4IEBACiAgKi8KIGNhY2hlX3Bvc3RfZHRvdWNoOgogCWRjYnQJcjAsIHIzCi0JYWRkaQlyMywgcjMsIENGR19DQUNIRUxJTkVfU0laRQotCXN1YmljLglyNCwgcjQsIENGR19DQUNIRUxJTkVfU0laRQorCWFkZGkJcjMsIHIzLCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCisJc3ViaWMuCXI0LCByNCwgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQogCWJndAljYWNoZV9wb3N0X2R0b3VjaAogCXN5bmMKIAlibHIKQEAgLTQ4Niw0ICs0ODYsNCBAQAogCWxpCXIzLCAtMQogCWJscgogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DQUNIRSAqLworI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NBQ0hFICovCmRpZmYgLS1naXQgYS9wb3N0L2NwdS9wcGM0eHgvZGVuYWxpX2VjYy5jIGIvcG9zdC9jcHUvcHBjNHh4L2RlbmFsaV9lY2MuYwppbmRleCAxMmExYmJmLi42YWIxNTkzIDEwMDY0NAotLS0gYS9wb3N0L2NwdS9wcGM0eHgvZGVuYWxpX2VjYy5jCisrKyBiL3Bvc3QvY3B1L3BwYzR4eC9kZW5hbGlfZWNjLmMKQEAgLTM1LDcgKzM1LDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRUNDCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRUNDCiAKIC8qCiAgKiBNRU1PUlkgRUNDIHRlc3QKQEAgLTI2Nyw1ICsyNjcsNSBAQAogCWRlYnVnKCJlY2NfcG9zdF90ZXN0KCkgcmV0dXJuaW5nICVkXG4iLCByZXQpOwogCXJldHVybiByZXQ7CiB9Ci0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9FQ0MgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9FQ0MgKi8KICNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR180NDBFUFgpIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSWCkgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvY3B1L3BwYzR4eC9ldGhlci5jIGIvcG9zdC9jcHUvcHBjNHh4L2V0aGVyLmMKaW5kZXggY2NiZmNmOS4uZTQwZTE5YiAxMDA2NDQKLS0tIGEvcG9zdC9jcHUvcHBjNHh4L2V0aGVyLmMKKysrIGIvcG9zdC9jcHUvcHBjNHh4L2V0aGVyLmMKQEAgLTM5LDcgKzM5LDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRVRIRVIKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9FVEhFUgogCiAjaW5jbHVkZSA8YXNtL2NhY2hlLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC0yMDksNyArMjA5LDcgQEAKIAltdGRjciAobWFscnhjYXNyLCAoTUFMX1RYUlhfQ0FTUiA+PiBkZXZudW0pKTsKIAogCS8qIHNldCBpbnRlcm5hbCBsb29wYmFjayBtb2RlICovCi0jaWZkZWYgQ0ZHX1BPU1RfRVRIRVJfRVhUX0xPT1BCQUNLCisjaWZkZWYgQ09ORklHX1NZU19QT1NUX0VUSEVSX0VYVF9MT09QQkFDSwogCW91dF9iZTMyICgodm9pZCopKEVNQUNfTTEgKyBod19hZGRyKSwgRU1BQ19NMV9GREUgfCAwIHwKIAkJICBFTUFDX00xX1JGU180SyB8IEVNQUNfTTFfVFhfRklGT18ySyB8CiAJCSAgRU1BQ19NMV9NRl8xMDBNQlBTIHwgRU1BQ19NMV9JU1QgfApAQCAtNDA2LDggKzQwNiw4IEBACiAJaW50IGk7CiAKIAkvKiBBbGxvY2F0ZSB0eCAmIHJ4IHBhY2tldCBidWZmZXJzICovCi0JdHhfYnVmID0gbWFsbG9jIChQS1RTSVpFX0FMSUdOICsgQ0ZHX0NBQ0hFTElORV9TSVpFKTsKLQlyeF9idWYgPSBtYWxsb2MgKFBLVFNJWkVfQUxJR04gKyBDRkdfQ0FDSEVMSU5FX1NJWkUpOworCXR4X2J1ZiA9IG1hbGxvYyAoUEtUU0laRV9BTElHTiArIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUpOworCXJ4X2J1ZiA9IG1hbGxvYyAoUEtUU0laRV9BTElHTiArIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUpOwogCiAJaWYgKCF0eF9idWYgfHwgIXJ4X2J1ZikgewogCQlwcmludGYgKCJGYWlsZWQgdG8gYWxsb2NhdGUgcGFja2V0IGJ1ZmZlcnNcbiIpOwpAQCAtNDI3LDQgKzQyNyw0IEBACiAJcmV0dXJuIHJlczsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRVRIRVIgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9FVEhFUiAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9jcHUvcHBjNHh4L29jbS5jIGIvcG9zdC9jcHUvcHBjNHh4L29jbS5jCmluZGV4IDg4YWE5M2UuLjU4NGUzMGMgMTAwNjQ0Ci0tLSBhL3Bvc3QvY3B1L3BwYzR4eC9vY20uYworKysgYi9wb3N0L2NwdS9wcGM0eHgvb2NtLmMKQEAgLTM4LDE5ICszOCwxOSBAQAogI2RlZmluZSBPQ01fVEVTVF9QQVRURVJOMQkweDU1NTU1NTU1CiAjZGVmaW5lIE9DTV9URVNUX1BBVFRFUk4yCTB4QUFBQUFBQUEKIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfT0NNCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfT0NNCiAKIHN0YXRpYyB1aW50IG9jbV9zdGF0dXNfcmVhZCh2b2lkKQogewotCXJldHVybiBpbl9iZTMyKCh2b2lkICopQ0ZHX09DTV9TVEFUVVNfQUREUikgJgotCQlDRkdfT0NNX1NUQVRVU19NQVNLOworCXJldHVybiBpbl9iZTMyKCh2b2lkICopQ09ORklHX1NZU19PQ01fU1RBVFVTX0FERFIpICYKKwkJQ09ORklHX1NZU19PQ01fU1RBVFVTX01BU0s7CiB9CiAKIHN0YXRpYyB2b2lkIG9jbV9zdGF0dXNfd3JpdGUodWludCB2YWx1ZSkKIHsKLQlvdXRfYmUzMigodm9pZCAqKUNGR19PQ01fU1RBVFVTX0FERFIsIHZhbHVlIHwKLQkJKGluX2JlMzIoKHZvaWQgKilDRkdfT0NNX1NUQVRVU19BRERSKSAmCi0JCQl+Q0ZHX09DTV9TVEFUVVNfTUFTSykpOworCW91dF9iZTMyKCh2b2lkICopQ09ORklHX1NZU19PQ01fU1RBVFVTX0FERFIsIHZhbHVlIHwKKwkJKGluX2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX09DTV9TVEFUVVNfQUREUikgJgorCQkJfkNPTkZJR19TWVNfT0NNX1NUQVRVU19NQVNLKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IG9jbV90ZXN0X3dvcmQodWludCB2YWx1ZSwgdWludCAqYWRkcmVzcykKQEAgLTY4LDExICs2OCwxMSBAQAogewogCXVpbnQgICBvbGRfdmFsdWU7CiAJaW50ICAgIHJldCA9IDA7Ci0JdWludCAgKmFkZHJlc3MgPSAodWludCopQ0ZHX09DTV9CQVNFOworCXVpbnQgICphZGRyZXNzID0gKHVpbnQqKUNPTkZJR19TWVNfT0NNX0JBU0U7CiAKLQlpZiAob2NtX3N0YXR1c19yZWFkKCkgPT0gQ0ZHX09DTV9TVEFUVVNfT0spCisJaWYgKG9jbV9zdGF0dXNfcmVhZCgpID09IENPTkZJR19TWVNfT0NNX1NUQVRVU19PSykKIAkJcmV0dXJuIDA7Ci0JZm9yICg7IGFkZHJlc3MgPCAodWludCopKENGR19PQ01fQkFTRSArIENGR19PQ01fU0laRSk7IGFkZHJlc3MrKykgeworCWZvciAoOyBhZGRyZXNzIDwgKHVpbnQqKShDT05GSUdfU1lTX09DTV9CQVNFICsgQ09ORklHX1NZU19PQ01fU0laRSk7IGFkZHJlc3MrKykgewogCQlvbGRfdmFsdWUgPSAqYWRkcmVzczsKIAkJaWYgKG9jbV90ZXN0X3dvcmQoT0NNX1RFU1RfUEFUVEVSTjEsIGFkZHJlc3MpIHx8CiAJCQkJb2NtX3Rlc3Rfd29yZChPQ01fVEVTVF9QQVRURVJOMiwgYWRkcmVzcykpIHsKQEAgLTgzLDcgKzgzLDcgQEAKIAkJfQogCQkqYWRkcmVzcyA9IG9sZF92YWx1ZTsKIAl9Ci0Jb2NtX3N0YXR1c193cml0ZShyZXQgPyBDRkdfT0NNX1NUQVRVU19GQUlMIDogQ0ZHX09DTV9TVEFUVVNfT0spOworCW9jbV9zdGF0dXNfd3JpdGUocmV0ID8gQ09ORklHX1NZU19PQ01fU1RBVFVTX0ZBSUwgOiBDT05GSUdfU1lTX09DTV9TVEFUVVNfT0spOwogCXJldHVybiByZXQ7CiB9Ci0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9PQ00gKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9PQ00gKi8KZGlmZiAtLWdpdCBhL3Bvc3QvY3B1L3BwYzR4eC9zcHIuYyBiL3Bvc3QvY3B1L3BwYzR4eC9zcHIuYwppbmRleCAxMTBkZjZlLi5lY2I4N2I1IDEwMDY0NAotLS0gYS9wb3N0L2NwdS9wcGM0eHgvc3ByLmMKKysrIGIvcG9zdC9jcHUvcHBjNHh4L3Nwci5jCkBAIC0zNyw3ICszNyw3IEBACiAKICNpbmNsdWRlIDxwb3N0Lmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1NQUgorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX1NQUgogCiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogCkBAIC0xOTgsNCArMTk4LDQgQEAKIAlyZXR1cm4gcmV0OwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TUFIgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TUFIgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvY3B1L3BwYzR4eC91YXJ0LmMgYi9wb3N0L2NwdS9wcGM0eHgvdWFydC5jCmluZGV4IDFhNTdjM2QuLjg0YTRkMGEgMTAwNjQ0Ci0tLSBhL3Bvc3QvY3B1L3BwYzR4eC91YXJ0LmMKKysrIGIvcG9zdC9jcHUvcHBjNHh4L3VhcnQuYwpAQCAtMzQsMTQgKzM0LDE0IEBACiAKICNpbmNsdWRlIDxwb3N0Lmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1VBUlQKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9VQVJUCiAKIC8qCiAgKiBUaGlzIHRhYmxlIGRlZmluZXMgdGhlIFVBUlQncyB0aGF0IHNob3VsZCBiZSB0ZXN0ZWQgYW5kIGNhbgogICogYmUgb3ZlcnJpZGRlbiBpbiB0aGUgYm9hcmQgY29uZmlnIGZpbGUKICAqLwotI2lmbmRlZiBDRkdfUE9TVF9VQVJUX1RBQkxFCi0jZGVmaW5lIENGR19QT1NUX1VBUlRfVEFCTEUJe1VBUlQwX0JBU0UsIFVBUlQxX0JBU0UsIFVBUlQyX0JBU0UsIFVBUlQzX0JBU0V9CisjaWZuZGVmIENPTkZJR19TWVNfUE9TVF9VQVJUX1RBQkxFCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9VQVJUX1RBQkxFCXtVQVJUMF9CQVNFLCBVQVJUMV9CQVNFLCBVQVJUMl9CQVNFLCBVQVJUM19CQVNFfQogI2VuZGlmCiAKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CkBAIC01MCwxNyArNTAsMTcgQEAKICNpZiBkZWZpbmVkKENPTkZJR180NDApCiAjaWYgZGVmaW5lZChDT05GSUdfNDQwRVApIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfNDQwRVBYKSB8fCBkZWZpbmVkKENPTkZJR180NDBHUlgpCi0jZGVmaW5lIFVBUlQwX0JBU0UgIENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwMzAwCi0jZGVmaW5lIFVBUlQxX0JBU0UgIENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNDAwCi0jZGVmaW5lIFVBUlQyX0JBU0UgIENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNTAwCi0jZGVmaW5lIFVBUlQzX0JBU0UgIENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNjAwCisjZGVmaW5lIFVBUlQwX0JBU0UgIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDMwMAorI2RlZmluZSBVQVJUMV9CQVNFICBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDA0MDAKKyNkZWZpbmUgVUFSVDJfQkFTRSAgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNTAwCisjZGVmaW5lIFVBUlQzX0JBU0UgIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDYwMAogI2Vsc2UKLSNkZWZpbmUgVUFSVDBfQkFTRSAgQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDAyMDAKLSNkZWZpbmUgVUFSVDFfQkFTRSAgQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDAzMDAKKyNkZWZpbmUgVUFSVDBfQkFTRSAgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwMjAwCisjZGVmaW5lIFVBUlQxX0JBU0UgIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDMwMAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR180NDBTUCkgfHwgZGVmaW5lZChDT05GSUdfNDQwU1BFKQotI2RlZmluZSBVQVJUMl9CQVNFICBDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDYwMAorI2RlZmluZSBVQVJUMl9CQVNFICBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDA2MDAKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfNDQwR1ApCkBAIC0xNDcsNyArMTQ3LDcgQEAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCiAjaWYgZGVmaW5lZChDT05GSUdfNDQwKSB8fCBkZWZpbmVkKENPTkZJR180MDVFWCkKLSNpZiAhZGVmaW5lZChDRkdfRVhUX1NFUklBTF9DTE9DSykKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0spCiBzdGF0aWMgdm9pZCBzZXJpYWxfZGl2cyAoaW50IGJhdWRyYXRlLCB1bnNpZ25lZCBsb25nICpwdWRpdiwKIAkJCSB1bnNpZ25lZCBzaG9ydCAqcGJkaXYpCiB7CkBAIC0xOTYsNyArMTk2LDcgQEAKIAl1bnNpZ25lZCBsb25nIHVkaXY7CiAJdW5zaWduZWQgc2hvcnQgYmRpdjsKIAl2b2xhdGlsZSBjaGFyIHZhbDsKLSNpZmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSworI2lmZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwogCXVuc2lnbmVkIGxvbmcgdG1wOwogI2VuZGlmCiAJaW50IGk7CkBAIC0yMDksMTEgKzIwOSwxMSBAQAogCU1GUkVHKFVBUlQwX1NEUiwgcmVnKTsKIAlyZWcgJj0gfkNSMF9NQVNLOwogCi0jaWZkZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sKIAlyZWcgfD0gQ1IwX0VYVENMS19FTkE7CiAJdWRpdiA9IDE7CiAJdG1wICA9IGdkLT5iYXVkcmF0ZSAqIDE2OwotCWJkaXYgPSAoQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sgKyB0bXAgLyAyKSAvIHRtcDsKKwliZGl2ID0gKENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSyArIHRtcCAvIDIpIC8gdG1wOwogI2Vsc2UKIAkvKiBGb3IgNDQwLCB0aGUgY3B1IGNsb2NrIGlzIG9uIGRpdmlkZXIgY2hhaW4gQSwgVUFSVCBvbiBkaXZpZGVyCiAJICogY2hhaW4gQiAuLi4gc28gY3B1IGNsb2NrIGlzIGlycmVsZXZhbnQuIEdldCB0aGUgIm9wdGltaXplZCIKQEAgLTI3OCw3ICsyNzgsNyBAQAogI2lmZGVmIENPTkZJR180MDVFUAogCXJlZyA9IG1mZGNyKGNwYzBfdWNyKSAmIH4oVUNSMF9NQVNLIHwgVUNSMV9NQVNLKTsKIAljbGsgPSBnZC0+Y3B1X2NsazsKLQl0bXAgPSBDRkdfQkFTRV9CQVVEICogMTY7CisJdG1wID0gQ09ORklHX1NZU19CQVNFX0JBVUQgKiAxNjsKIAl1ZGl2ID0gKGNsayArIHRtcCAvIDIpIC8gdG1wOwogCWlmICh1ZGl2ID4gVURJVl9NQVgpICAgICAgICAgICAgICAgICAgICAvKiBtYXguIG4gYml0cyBmb3IgdWRpdiAqLwogCQl1ZGl2ID0gVURJVl9NQVg7CkBAIC0yODcsMTYgKzI4NywxNiBAQAogCW10ZGNyIChjcGMwX3VjciwgcmVnKTsKICNlbHNlIC8qIENPTkZJR180MDVFUCAqLwogCXJlZyA9IG1mZGNyKGNudHJsMCkgJiB+Q1IwX01BU0s7Ci0jaWZkZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sKLQljbGsgPSBDRkdfRVhUX1NFUklBTF9DTE9DSzsKKyNpZmRlZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sKKwljbGsgPSBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0s7CiAJdWRpdiA9IDE7CiAJcmVnIHw9IENSMF9FWFRDTEtfRU5BOwogI2Vsc2UKIAljbGsgPSBnZC0+Y3B1X2NsazsKLSNpZmRlZiBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5CisjaWZkZWYgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTkKIAl1ZGl2ID0gMzE7CQkJLyogRXJyYXRhIDU5OiBzdHVjayBhdCAzMSAqLwogI2Vsc2UKLQl0bXAgPSBDRkdfQkFTRV9CQVVEICogMTY7CisJdG1wID0gQ09ORklHX1NZU19CQVNFX0JBVUQgKiAxNjsKIAl1ZGl2ID0gKGNsayArIHRtcCAvIDIpIC8gdG1wOwogCWlmICh1ZGl2ID4gVURJVl9NQVgpICAgICAgICAgICAgICAgICAgICAvKiBtYXguIG4gYml0cyBmb3IgdWRpdiAqLwogCQl1ZGl2ID0gVURJVl9NQVg7CkBAIC0zNzUsNyArMzc1LDcgQEAKIGludCB1YXJ0X3Bvc3RfdGVzdCAoaW50IGZsYWdzKQogewogCWludCBpLCByZXMgPSAwOwotCXN0YXRpYyB1bnNpZ25lZCBsb25nIGJhc2VbXSA9IENGR19QT1NUX1VBUlRfVEFCTEU7CisJc3RhdGljIHVuc2lnbmVkIGxvbmcgYmFzZVtdID0gQ09ORklHX1NZU19QT1NUX1VBUlRfVEFCTEU7CiAKIAlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mIChiYXNlKSAvIHNpemVvZiAoYmFzZVswXSk7IGkrKykgewogCQlpZiAodGVzdF9jdGxyIChiYXNlW2ldLCBpKSkKQEAgLTM4Niw0ICszODYsNCBAQAogCXJldHVybiByZXM7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1VBUlQgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9VQVJUICovCmRpZmYgLS1naXQgYS9wb3N0L2NwdS9wcGM0eHgvd2F0Y2hkb2cuYyBiL3Bvc3QvY3B1L3BwYzR4eC93YXRjaGRvZy5jCmluZGV4IDdmZGVjYjQuLjIyMWFkZmMgMTAwNjQ0Ci0tLSBhL3Bvc3QvY3B1L3BwYzR4eC93YXRjaGRvZy5jCisrKyBiL3Bvc3QvY3B1L3BwYzR4eC93YXRjaGRvZy5jCkBAIC0zNyw3ICszNyw3IEBACiAKICNpbmNsdWRlIDxwb3N0Lmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1dBVENIRE9HCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfV0FUQ0hET0cKIAogI2luY2x1ZGUgPHdhdGNoZG9nLmg+CiAKQEAgLTY1LDQgKzY1LDQgQEAKIAl9CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1dBVENIRE9HICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfV0FUQ0hET0cgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvZHJpdmVycy9pMmMuYyBiL3Bvc3QvZHJpdmVycy9pMmMuYwppbmRleCBmNTRmZTk5Li5iMTUyZGVhIDEwMDY0NAotLS0gYS9wb3N0L2RyaXZlcnMvaTJjLmMKKysrIGIvcG9zdC9kcml2ZXJzL2kyYy5jCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSA8cG9zdC5oPgogI2luY2x1ZGUgPGkyYy5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9JMkMKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9JMkMKIAogaW50IGkyY19wb3N0X3Rlc3QgKGludCBmbGFncykKIHsKQEAgLTg4LDQgKzg4LDQgQEAKICNlbmRpZgogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9JMkMgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9JMkMgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvZHJpdmVycy9tZW1vcnkuYyBiL3Bvc3QvZHJpdmVycy9tZW1vcnkuYwppbmRleCBlMzIwMjBmLi4wMDYyMzYwIDEwMDY0NAotLS0gYS9wb3N0L2RyaXZlcnMvbWVtb3J5LmMKKysrIGIvcG9zdC9kcml2ZXJzL21lbW9yeS5jCkBAIC0xNTMsNyArMTUzLDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSA8d2F0Y2hkb2cuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfTUVNT1JZCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfTUVNT1JZCiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCkBAIC00NjAsMTEgKzQ2MCwxMSBAQAogCQkJCSAyNTYgPDwgMjAgOiBiZC0+YmlfbWVtc2l6ZSkgLSAoMSA8PCAyMCk7CiAKIAkvKiBMaW1pdCBhcmVhIHRvIGJlIHRlc3RlZCB3aXRoIHRoZSBib2FyZCBpbmZvIHN0cnVjdCAqLwotCWlmIChDRkdfU0RSQU1fQkFTRSArIG1lbXNpemUgPiAodWxvbmcpYmQpCi0JCW1lbXNpemUgPSAodWxvbmcpYmQgLSBDRkdfU0RSQU1fQkFTRTsKKwlpZiAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgbWVtc2l6ZSA+ICh1bG9uZyliZCkKKwkJbWVtc2l6ZSA9ICh1bG9uZyliZCAtIENPTkZJR19TWVNfU0RSQU1fQkFTRTsKIAogCWlmIChmbGFncyAmIFBPU1RfU0xPV1RFU1QpIHsKLQkJcmV0ID0gbWVtb3J5X3Bvc3RfdGVzdHMgKENGR19TRFJBTV9CQVNFLCBtZW1zaXplKTsKKwkJcmV0ID0gbWVtb3J5X3Bvc3RfdGVzdHMgKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgbWVtc2l6ZSk7CiAJfSBlbHNlIHsJCQkvKiBQT1NUX05PUk1BTCAqLwogCiAJCXVuc2lnbmVkIGxvbmcgaTsKQEAgLTQ4MCw0ICs0ODAsNCBAQAogCXJldHVybiByZXQ7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX01FTU9SWSAqLworI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX01FTU9SWSAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9kcml2ZXJzL3J0Yy5jIGIvcG9zdC9kcml2ZXJzL3J0Yy5jCmluZGV4IDY2ZTUyNjUuLjhiMGY0NjMgMTAwNjQ0Ci0tLSBhL3Bvc3QvZHJpdmVycy9ydGMuYworKysgYi9wb3N0L2RyaXZlcnMvcnRjLmMKQEAgLTQzLDcgKzQzLDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSA8cnRjLmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1JUQworI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX1JUQwogCiBzdGF0aWMgaW50IHJ0Y19wb3N0X3NraXAgKHVsb25nICogZGlmZikKIHsKQEAgLTE5Miw0ICsxOTIsNCBAQAogCXJldHVybiAwOwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9SVEMgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9SVEMgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9hbmRpLmMgYi9wb3N0L2xpYl9wcGMvYW5kaS5jCmluZGV4IDc1YmE3YTYuLjUyZWM3YzQgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9hbmRpLmMKKysrIGIvcG9zdC9saWJfcHBjL2FuZGkuYwpAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzIxICh1bG9uZyAqY29kZSwgdWxvbmcgKmNyLCB1bG9uZyAqcmVzLCB1bG9uZyBvcCk7CiBleHRlcm4gdWxvbmcgY3B1X3Bvc3RfbWFrZWNyIChsb25nIHYpOwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL2FzbS5TIGIvcG9zdC9saWJfcHBjL2FzbS5TCmluZGV4IDYyMjBlZDIuLmY2YjMyOWEgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9hc20uUworKysgYi9wb3N0L2xpYl9wcGMvYXNtLlMKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlIDxwcGNfZGVmcy5oPgogI2luY2x1ZGUgPGFzbS9jYWNoZS5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogLyogdm9pZCBjcHVfcG9zdF9leGVjXzAyICh1bG9uZyAqY29kZSwgdWxvbmcgb3AxLCB1bG9uZyBvcDIpOyAqLwogCS5nbG9iYWwJY3B1X3Bvc3RfZXhlY18wMgpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL2IuYyBiL3Bvc3QvbGliX3BwYy9iLmMKaW5kZXggN2EyNTgzZC4uNDkyZmJhNCAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL2IuYworKysgYi9wb3N0L2xpYl9wcGMvYi5jCkBAIC00MCw3ICs0MCw3IEBACiAjaW5jbHVkZSA8cG9zdC5oPgogI2luY2x1ZGUgImNwdV9hc20uaCIKIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQ1BVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ1BVCiAKIGV4dGVybiB2b2lkIGNwdV9wb3N0X2V4ZWNfMTEgKHVsb25nICpjb2RlLCB1bG9uZyAqcmVzLCB1bG9uZyBvcDEpOwogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18zMSAodWxvbmcgKmNvZGUsIHVsb25nICpjdHIsIHVsb25nICpsciwgdWxvbmcgKmp1bXAsCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvY21wLmMgYi9wb3N0L2xpYl9wcGMvY21wLmMKaW5kZXggMTM4MDlkNC4uNWY2YTNiOSAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL2NtcC5jCisrKyBiL3Bvc3QvbGliX3BwYy9jbXAuYwpAQCAtMzksNyArMzksNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzEyICh1bG9uZyAqY29kZSwgdWxvbmcgKnJlcywgdWxvbmcgb3AxLCB1bG9uZyBvcDIpOwogCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvY21waS5jIGIvcG9zdC9saWJfcHBjL2NtcGkuYwppbmRleCA1ZWNmZTg3Li4xYTJmYzNkIDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvY21waS5jCisrKyBiL3Bvc3QvbGliX3BwYy9jbXBpLmMKQEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSAiY3B1X2FzbS5oIgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18xMSAodWxvbmcgKmNvZGUsIHVsb25nICpyZXMsIHVsb25nIG9wMSk7CiAKZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9jb21wbGV4LmMgYi9wb3N0L2xpYl9wcGMvY29tcGxleC5jCmluZGV4IDQ5ODNjNTEuLjRhM2JjMDAgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9jb21wbGV4LmMKKysrIGIvcG9zdC9saWJfcHBjL2NvbXBsZXguYwpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gaW50IGNwdV9wb3N0X2NvbXBsZXhfMV9hc20gKGludCBhMSwgaW50IGEyLCBpbnQgYTMsIGludCBhNCwgaW50IG4pOwogZXh0ZXJuIGludCBjcHVfcG9zdF9jb21wbGV4XzJfYXNtIChpbnQgeCwgaW50IG4pOwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL2NwdS5jIGIvcG9zdC9saWJfcHBjL2NwdS5jCmluZGV4IDVjN2Y3NjEuLjM3OTNhNjAgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9jcHUuYworKysgYi9wb3N0L2xpYl9wcGMvY3B1LmMKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSA8YXNtL21tdS5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIGludCBjcHVfcG9zdF90ZXN0X2NtcCAodm9pZCk7CiBleHRlcm4gaW50IGNwdV9wb3N0X3Rlc3RfY21waSAodm9pZCk7CkBAIC0xNDQsNCArMTQ0LDQgQEAKIAlyZXR1cm4gcmV0OwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9jci5jIGIvcG9zdC9saWJfcHBjL2NyLmMKaW5kZXggMmM3OTc2YS4uZmJlZTZkNSAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL2NyLmMKKysrIGIvcG9zdC9saWJfcHBjL2NyLmMKQEAgLTQ5LDcgKzQ5LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSAiY3B1X2FzbS5oIgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18xMSAodWxvbmcgKmNvZGUsIHVsb25nICpyZXMsIHVsb25nIG9wMSk7CiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzIxeCAodWxvbmcgKmNvZGUsIHVsb25nICpvcDEsIHVsb25nICpvcDIsIHVsb25nIG9wMyk7CmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvZnB1LzIwMDAxMTIyLTEuYyBiL3Bvc3QvbGliX3BwYy9mcHUvMjAwMDExMjItMS5jCmluZGV4IGRlY2U2MTQuLmE4NTM3ZmEgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9mcHUvMjAwMDExMjItMS5jCisrKyBiL3Bvc3QvbGliX3BwYy9mcHUvMjAwMDExMjItMS5jCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlIDxwb3N0Lmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0ZQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0ZQVQogCiBpbnQgZnB1X3Bvc3RfdGVzdF9tYXRoMSAodm9pZCkKIHsKQEAgLTU2LDQgKzU2LDQgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVICovCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvZnB1LzIwMDEwMTE0LTIuYyBiL3Bvc3QvbGliX3BwYy9mcHUvMjAwMTAxMTQtMi5jCmluZGV4IDhhMTcyMTcuLjkxZTM2MzEgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9mcHUvMjAwMTAxMTQtMi5jCisrKyBiL3Bvc3QvbGliX3BwYy9mcHUvMjAwMTAxMTQtMi5jCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlIDxwb3N0Lmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0ZQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0ZQVQogCiBzdGF0aWMgZmxvYXQgcmludGYgKGZsb2F0IHgpCiB7CkBAIC02MCw0ICs2MCw0IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0ZQVSAqLworI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0ZQVSAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL2ZwdS8yMDAxMDIyNi0xLmMgYi9wb3N0L2xpYl9wcGMvZnB1LzIwMDEwMjI2LTEuYwppbmRleCBmMzY2MjUyLi5iMDAzODZiIDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvZnB1LzIwMDEwMjI2LTEuYworKysgYi9wb3N0L2xpYl9wcGMvZnB1LzIwMDEwMjI2LTEuYwpAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSA8cG9zdC5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9GUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9GUFUKIAogaW50IGZwdV9wb3N0X3Rlc3RfbWF0aDMgKHZvaWQpCiB7CkBAIC00OCw0ICs0OCw0IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0ZQVSAqLworI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0ZQVSAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL2ZwdS85ODA2MTktMS5jIGIvcG9zdC9saWJfcHBjL2ZwdS85ODA2MTktMS5jCmluZGV4IDdmMjY0ODIuLmNlYjJiNzYgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9mcHUvOTgwNjE5LTEuYworKysgYi9wb3N0L2xpYl9wcGMvZnB1Lzk4MDYxOS0xLmMKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVCiAKIGludCBmcHVfcG9zdF90ZXN0X21hdGg0ICh2b2lkKQogewpAQCAtNTQsNCArNTQsNCBAQAogCXJldHVybiAwOwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9GUFUgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9GUFUgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9mcHUvYWNjMS5jIGIvcG9zdC9saWJfcHBjL2ZwdS9hY2MxLmMKaW5kZXggOTIxMjgyZS4uOGE2NTE5MyAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL2ZwdS9hY2MxLmMKKysrIGIvcG9zdC9saWJfcHBjL2ZwdS9hY2MxLmMKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVCiAKIHN0YXRpYyBkb3VibGUgZnVuYyAoY29uc3QgZG91YmxlICphcnJheSkKIHsKQEAgLTUxLDQgKzUxLDQgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVICovCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvZnB1L2NvbXBhcmUtZnAtMS5jIGIvcG9zdC9saWJfcHBjL2ZwdS9jb21wYXJlLWZwLTEuYwppbmRleCBiZThmNjIwLi5hYjQ3NjU3IDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvZnB1L2NvbXBhcmUtZnAtMS5jCisrKyBiL3Bvc3QvbGliX3BwYy9mcHUvY29tcGFyZS1mcC0xLmMKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVCiAKIHN0YXRpYyBpbnQgZmFpbGVkOwogCkBAIC0yMTksNCArMjE5LDQgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVICovCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvZnB1L2ZwdS5jIGIvcG9zdC9saWJfcHBjL2ZwdS9mcHUuYwppbmRleCA5ZGRiNjdhLi44NDZiNzZkIDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvZnB1L2ZwdS5jCisrKyBiL3Bvc3QvbGliX3BwYy9mcHUvZnB1LmMKQEAgLTM2LDcgKzM2LDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVCiAKICNpbmNsdWRlIDx3YXRjaGRvZy5oPgogCkBAIC04Niw0ICs4Niw0IEBACiAJcmV0dXJuIHJldDsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVICovCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvZnB1L211bC1zdWJub3JtYWwtc2luZ2xlLTEuYyBiL3Bvc3QvbGliX3BwYy9mcHUvbXVsLXN1Ym5vcm1hbC1zaW5nbGUtMS5jCmluZGV4IDdlNmZlODcuLjljNTE0ZTEgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9mcHUvbXVsLXN1Ym5vcm1hbC1zaW5nbGUtMS5jCisrKyBiL3Bvc3QvbGliX3BwYy9mcHUvbXVsLXN1Ym5vcm1hbC1zaW5nbGUtMS5jCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRlIDxwb3N0Lmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0ZQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0ZQVQogCiB1bmlvbiB1ZgogewpAQCAtOTcsNCArOTcsNCBAQAogCXJldHVybiAwOwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9GUFUgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9GUFUgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9sb2FkLmMgYi9wb3N0L2xpYl9wcGMvbG9hZC5jCmluZGV4IGVjY2ViYjcuLjk4ZDQzNzMgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9sb2FkLmMKKysrIGIvcG9zdC9saWJfcHBjL2xvYWQuYwpAQCAtNDQsNyArNDQsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzIydyAodWxvbmcgKmNvZGUsIHVsb25nICpvcDEsIHVsb25nIG9wMiwgdWxvbmcgKm9wMyk7CiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzIxdyAodWxvbmcgKmNvZGUsIHVsb25nICpvcDEsIHVsb25nICpvcDIpOwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL211bHRpLmMgYi9wb3N0L2xpYl9wcGMvbXVsdGkuYwppbmRleCA0NzEzNWFiLi5lNDJhN2MwIDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvbXVsdGkuYworKysgYi9wb3N0L2xpYl9wcGMvbXVsdGkuYwpAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzAyICh1bG9uZyAqY29kZSwgdWxvbmcgb3AxLCB1bG9uZyBvcDIpOwogCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvcmx3aW1pLmMgYi9wb3N0L2xpYl9wcGMvcmx3aW1pLmMKaW5kZXggODY2MmRiMS4uZmQ2MjhiMyAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL3Jsd2ltaS5jCisrKyBiL3Bvc3QvbGliX3BwYy9ybHdpbWkuYwpAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzIyICh1bG9uZyAqY29kZSwgdWxvbmcgKmNyLCB1bG9uZyAqcmVzLCB1bG9uZyBvcDEsCiAgICAgdWxvbmcgb3AyKTsKZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9ybHdpbm0uYyBiL3Bvc3QvbGliX3BwYy9ybHdpbm0uYwppbmRleCA0Mzk4YTEwLi44OGEyOGM2IDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvcmx3aW5tLmMKKysrIGIvcG9zdC9saWJfcHBjL3Jsd2lubS5jCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSA8cG9zdC5oPgogI2luY2x1ZGUgImNwdV9hc20uaCIKIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQ1BVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ1BVCiAKIGV4dGVybiB2b2lkIGNwdV9wb3N0X2V4ZWNfMjEgKHVsb25nICpjb2RlLCB1bG9uZyAqY3IsIHVsb25nICpyZXMsIHVsb25nIG9wMSk7CiBleHRlcm4gdWxvbmcgY3B1X3Bvc3RfbWFrZWNyIChsb25nIHYpOwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL3Jsd25tLmMgYi9wb3N0L2xpYl9wcGMvcmx3bm0uYwppbmRleCBjNTQ3YmQ3Li42MGJjYjZkIDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvcmx3bm0uYworKysgYi9wb3N0L2xpYl9wcGMvcmx3bm0uYwpAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzIyICh1bG9uZyAqY29kZSwgdWxvbmcgKmNyLCB1bG9uZyAqcmVzLCB1bG9uZyBvcDEsCiAgICAgdWxvbmcgb3AyKTsKZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9zcmF3aS5jIGIvcG9zdC9saWJfcHBjL3NyYXdpLmMKaW5kZXggNGEzZGRkYi4uYmUxNTNhZCAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL3NyYXdpLmMKKysrIGIvcG9zdC9saWJfcHBjL3NyYXdpLmMKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSAiY3B1X2FzbS5oIgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18yMSAodWxvbmcgKmNvZGUsIHVsb25nICpjciwgdWxvbmcgKnJlcywgdWxvbmcgb3ApOwogZXh0ZXJuIHVsb25nIGNwdV9wb3N0X21ha2VjciAobG9uZyB2KTsKZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9zdG9yZS5jIGIvcG9zdC9saWJfcHBjL3N0b3JlLmMKaW5kZXggYzk2ZjI2My4uMTk1NmY2YiAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL3N0b3JlLmMKKysrIGIvcG9zdC9saWJfcHBjL3N0b3JlLmMKQEAgLTQ0LDcgKzQ0LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSAiY3B1X2FzbS5oIgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18xMncgKHVsb25nICpjb2RlLCB1bG9uZyAqb3AxLCB1bG9uZyBvcDIsIHVsb25nIG9wMyk7CiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzExdyAodWxvbmcgKmNvZGUsIHVsb25nICpvcDEsIHVsb25nIG9wMik7CmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvc3RyaW5nLmMgYi9wb3N0L2xpYl9wcGMvc3RyaW5nLmMKaW5kZXggMzY4M2FjOS4uYzBkZGVhZiAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL3N0cmluZy5jCisrKyBiL3Bvc3QvbGliX3BwYy9zdHJpbmcuYwpAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzAyICh1bG9uZyAqY29kZSwgdWxvbmcgb3AxLCB1bG9uZyBvcDIpOwogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18wNCAodWxvbmcgKmNvZGUsIHVsb25nIG9wMSwgdWxvbmcgb3AyLCB1bG9uZyBvcDMsCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvdGhyZWUuYyBiL3Bvc3QvbGliX3BwYy90aHJlZS5jCmluZGV4IDNmYTUxM2IuLjdmOGMxZTIgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy90aHJlZS5jCisrKyBiL3Bvc3QvbGliX3BwYy90aHJlZS5jCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8cG9zdC5oPgogI2luY2x1ZGUgImNwdV9hc20uaCIKIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQ1BVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ1BVCiAKIGV4dGVybiB2b2lkIGNwdV9wb3N0X2V4ZWNfMjIgKHVsb25nICpjb2RlLCB1bG9uZyAqY3IsIHVsb25nICpyZXMsIHVsb25nIG9wMSwKICAgICB1bG9uZyBvcDIpOwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL3RocmVlaS5jIGIvcG9zdC9saWJfcHBjL3RocmVlaS5jCmluZGV4IDg5ZjhmYzguLjMxOTUzZjkgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy90aHJlZWkuYworKysgYi9wb3N0L2xpYl9wcGMvdGhyZWVpLmMKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSAiY3B1X2FzbS5oIgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18yMSAodWxvbmcgKmNvZGUsIHVsb25nICpjciwgdWxvbmcgKnJlcywgdWxvbmcgb3ApOwogZXh0ZXJuIHVsb25nIGNwdV9wb3N0X21ha2VjciAobG9uZyB2KTsKZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy90aHJlZXguYyBiL3Bvc3QvbGliX3BwYy90aHJlZXguYwppbmRleCAxZGZjYzJjLi4zNTBhMTJhIDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvdGhyZWV4LmMKKysrIGIvcG9zdC9saWJfcHBjL3RocmVleC5jCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8cG9zdC5oPgogI2luY2x1ZGUgImNwdV9hc20uaCIKIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQ1BVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ1BVCiAKIGV4dGVybiB2b2lkIGNwdV9wb3N0X2V4ZWNfMjIgKHVsb25nICpjb2RlLCB1bG9uZyAqY3IsIHVsb25nICpyZXMsIHVsb25nIG9wMSwKICAgICB1bG9uZyBvcDIpOwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL3R3by5jIGIvcG9zdC9saWJfcHBjL3R3by5jCmluZGV4IDNkNmIzYzAuLjJiMTExNDcgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy90d28uYworKysgYi9wb3N0L2xpYl9wcGMvdHdvLmMKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSAiY3B1X2FzbS5oIgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18yMSAodWxvbmcgKmNvZGUsIHVsb25nICpjciwgdWxvbmcgKnJlcywgdWxvbmcgb3AxKTsKIGV4dGVybiB1bG9uZyBjcHVfcG9zdF9tYWtlY3IgKGxvbmcgdik7CmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvdHdveC5jIGIvcG9zdC9saWJfcHBjL3R3b3guYwppbmRleCA1MTliNDMyLi5kNjcxNGY5IDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvdHdveC5jCisrKyBiL3Bvc3QvbGliX3BwYy90d294LmMKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSAiY3B1X2FzbS5oIgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18yMSAodWxvbmcgKmNvZGUsIHVsb25nICpjciwgdWxvbmcgKnJlcywgdWxvbmcgb3AxKTsKIGV4dGVybiB1bG9uZyBjcHVfcG9zdF9tYWtlY3IgKGxvbmcgdik7CmRpZmYgLS1naXQgYS9wb3N0L3Bvc3QuYyBiL3Bvc3QvcG9zdC5jCmluZGV4IDk5ZGM4YzkuLmM5ODJlMjcgMTAwNjQ0Ci0tLSBhL3Bvc3QvcG9zdC5jCisrKyBiL3Bvc3QvcG9zdC5jCkBAIC0zNzIsNyArMzcyLDcgQEAKIHsKIAl2YV9saXN0IGFyZ3M7CiAJdWludCBpOwotCWNoYXIgcHJpbnRidWZmZXJbQ0ZHX1BCU0laRV07CisJY2hhciBwcmludGJ1ZmZlcltDT05GSUdfU1lTX1BCU0laRV07CiAKIAl2YV9zdGFydCAoYXJncywgZm9ybWF0KTsKIApAQCAtNDQ4LDcgKzQ0OCw3IEBACiB1bnNpZ25lZCBsb25nIHBvc3RfdGltZV9tcyAodW5zaWduZWQgbG9uZyBiYXNlKQogewogI2lmZGVmIENPTkZJR19QUEMKLQlyZXR1cm4gKHVuc2lnbmVkIGxvbmcpKGdldF90aWNrcyAoKSAvIChnZXRfdGJjbGsgKCkgLyBDRkdfSFopKSAtIGJhc2U7CisJcmV0dXJuICh1bnNpZ25lZCBsb25nKShnZXRfdGlja3MgKCkgLyAoZ2V0X3RiY2xrICgpIC8gQ09ORklHX1NZU19IWikpIC0gYmFzZTsKICNlbHNlCiAjd2FybmluZyAiTm90IGltcGxlbWVudGVkIHlldCIKIAlyZXR1cm4gMDsgLyogTm90IGltcGxlbWVudGVkIHlldCAqLwpkaWZmIC0tZ2l0IGEvcG9zdC90ZXN0cy5jIGIvcG9zdC90ZXN0cy5jCmluZGV4IGU4OGQ5MmUuLjMyMjRmMDAgMTAwNjQ0Ci0tLSBhL3Bvc3QvdGVzdHMuYworKysgYi9wb3N0L3Rlc3RzLmMKQEAgLTIxLDcgKzIxLDcgQEAKICAqIE1BIDAyMTExLTEzMDcgVVNBCiAgKgogICogQmUgc3VyZSB0byBtYXJrIHRlc3RzIHRvIGJlIHJ1biBiZWZvcmUgcmVsb2NhdGlvbiBhcyBzdWNoIHdpdGggdGhlCi0gKiBDRkdfUE9TVF9QUkVSRUwgZmxhZyBzbyB0aGF0IGxvZ2dpbmcgaXMgZG9uZSBjb3JyZWN0bHkgaWYgdGhlCisgKiBDT05GSUdfU1lTX1BPU1RfUFJFUkVMIGZsYWcgc28gdGhhdCBsb2dnaW5nIGlzIGRvbmUgY29ycmVjdGx5IGlmIHRoZQogICogbG9nYnVmZmVyIHN1cHBvcnQgaXMgZW5hYmxlZC4KICAqLwogCkBAIC02MSw3ICs2MSw3IEBACiAKIHN0cnVjdCBwb3N0X3Rlc3QgcG9zdF9saXN0W10gPQogewotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfT0NNCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfT0NNCiAgICAgewogCSJPQ00gdGVzdCIsCiAJIm9jbSIsCkBAIC03MCwxMCArNzAsMTAgQEAKIAkmb2NtX3Bvc3RfdGVzdCwKIAlOVUxMLAogCU5VTEwsCi0JQ0ZHX1BPU1RfT0NNCisJQ09ORklHX1NZU19QT1NUX09DTQogICAgIH0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NBQ0hFCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ0FDSEUKICAgICB7CiAJIkNhY2hlIHRlc3QiLAogCSJjYWNoZSIsCkBAIC04MiwxMCArODIsMTAgQEAKIAkmY2FjaGVfcG9zdF90ZXN0LAogCU5VTEwsCiAJTlVMTCwKLQlDRkdfUE9TVF9DQUNIRQorCUNPTkZJR19TWVNfUE9TVF9DQUNIRQogICAgIH0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1dBVENIRE9HCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfV0FUQ0hET0cKICNpZiBkZWZpbmVkKENPTkZJR19QT1NUX1dBVENIRE9HKQogCUNPTkZJR19QT1NUX1dBVENIRE9HLAogI2Vsc2UKQEAgLTk3LDExICs5NywxMSBAQAogCSZ3YXRjaGRvZ19wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX1dBVENIRE9HCisJQ09ORklHX1NZU19QT1NUX1dBVENIRE9HCiAgICAgfSwKICNlbmRpZgogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9JMkMKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9JMkMKICAgICB7CiAJIkkyQyB0ZXN0IiwKIAkiaTJjIiwKQEAgLTExMCwxMCArMTEwLDEwIEBACiAJJmkyY19wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX0kyQworCUNPTkZJR19TWVNfUE9TVF9JMkMKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9SVEMKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9SVEMKICAgICB7CiAJIlJUQyB0ZXN0IiwKIAkicnRjIiwKQEAgLTEyMiwxMCArMTIyLDEwIEBACiAJJnJ0Y19wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX1JUQworCUNPTkZJR19TWVNfUE9TVF9SVEMKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9NRU1PUlkKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9NRU1PUlkKICAgICB7CiAJIk1lbW9yeSB0ZXN0IiwKIAkibWVtb3J5IiwKQEAgLTEzNCwxMCArMTM0LDEwIEBACiAJJm1lbW9yeV9wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX01FTU9SWQorCUNPTkZJR19TWVNfUE9TVF9NRU1PUlkKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKICAgICB7CiAJIkNQVSB0ZXN0IiwKIAkiY3B1IiwKQEAgLTE0NywxMCArMTQ3LDEwIEBACiAJJmNwdV9wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX0NQVQorCUNPTkZJR19TWVNfUE9TVF9DUFUKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9GUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9GUFUKICAgICB7CiAJIkZQVSB0ZXN0IiwKIAkiZnB1IiwKQEAgLTE2MCwxMCArMTYwLDEwIEBACiAJJmZwdV9wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX0ZQVQorCUNPTkZJR19TWVNfUE9TVF9GUFUKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9VQVJUCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfVUFSVAogICAgIHsKIAkiVUFSVCB0ZXN0IiwKIAkidWFydCIsCkBAIC0xNzIsMTAgKzE3MiwxMCBAQAogCSZ1YXJ0X3Bvc3RfdGVzdCwKIAlOVUxMLAogCU5VTEwsCi0JQ0ZHX1BPU1RfVUFSVAorCUNPTkZJR19TWVNfUE9TVF9VQVJUCiAgICAgfSwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRVRIRVIKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9FVEhFUgogICAgIHsKIAkiRVRIRVJORVQgdGVzdCIsCiAJImV0aGVybmV0IiwKQEAgLTE4NCwxMCArMTg0LDEwIEBACiAJJmV0aGVyX3Bvc3RfdGVzdCwKIAlOVUxMLAogCU5VTEwsCi0JQ0ZHX1BPU1RfRVRIRVIKKwlDT05GSUdfU1lTX1BPU1RfRVRIRVIKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TUEkKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TUEkKICAgICB7CiAJIlNQSSB0ZXN0IiwKIAkic3BpIiwKQEAgLTE5NiwxMCArMTk2LDEwIEBACiAJJnNwaV9wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX1NQSQorCUNPTkZJR19TWVNfUE9TVF9TUEkKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9VU0IKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9VU0IKICAgICB7CiAJIlVTQiB0ZXN0IiwKIAkidXNiIiwKQEAgLTIwOCwxMCArMjA4LDEwIEBACiAJJnVzYl9wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX1VTQgorCUNPTkZJR19TWVNfUE9TVF9VU0IKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TUFIKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TUFIKICAgICB7CiAJIlNQUiB0ZXN0IiwKIAkic3ByIiwKQEAgLTIyMCwxMCArMjIwLDEwIEBACiAJJnNwcl9wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX1NQUgorCUNPTkZJR19TWVNfUE9TVF9TUFIKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TWVNNT04KKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TWVNNT04KICAgICB7CiAJIlNZU01PTiB0ZXN0IiwKIAkic3lzbW9uIiwKQEAgLTIzMiwxMCArMjMyLDEwIEBACiAJJnN5c21vbl9wb3N0X3Rlc3QsCiAJJnN5c21vbl9pbml0X2YsCiAJJnN5c21vbl9yZWxvYywKLQlDRkdfUE9TVF9TWVNNT04KKwlDT05GSUdfU1lTX1BPU1RfU1lTTU9OCiAgICAgfSwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRFNQCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRFNQCiAgICAgewogCSJEU1AgdGVzdCIsCiAJImRzcCIsCkBAIC0yNDQsMTAgKzI0NCwxMCBAQAogCSZkc3BfcG9zdF90ZXN0LAogCU5VTEwsCiAJTlVMTCwKLQlDRkdfUE9TVF9EU1AKKwlDT05GSUdfU1lTX1BPU1RfRFNQCiAgICAgfSwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQ09ERUMKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DT0RFQwogICAgIHsKIAkiQ09ERUMgdGVzdCIsCiAJImNvZGVjIiwKQEAgLTI1NiwxMCArMjU2LDEwIEBACiAJJmNvZGVjX3Bvc3RfdGVzdCwKIAlOVUxMLAogCU5VTEwsCi0JQ0ZHX1BPU1RfQ09ERUMKKwlDT05GSUdfU1lTX1BPU1RfQ09ERUMKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9FQ0MKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9FQ0MKICAgICB7CiAJIkVDQyB0ZXN0IiwKIAkiZWNjIiwKQEAgLTI2OCwyMiArMjY4LDIyIEBACiAJJmVjY19wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX0VDQworCUNPTkZJR19TWVNfUE9TVF9FQ0MKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9CU1BFQzEKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9CU1BFQzEKIAlDT05GSUdfUE9TVF9CU1BFQzEsCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0JTUEVDMgorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0JTUEVDMgogCUNPTkZJR19QT1NUX0JTUEVDMiwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQlNQRUMzCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQlNQRUMzCiAJQ09ORklHX1BPU1RfQlNQRUMzLAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9CU1BFQzQKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9CU1BFQzQKIAlDT05GSUdfUE9TVF9CU1BFQzQsCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0JTUEVDNQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0JTUEVDNQogCUNPTkZJR19QT1NUX0JTUEVDNSwKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2Vudi9md19lbnYuYyBiL3Rvb2xzL2Vudi9md19lbnYuYwppbmRleCA2ZTljMzRmLi5hNDYyMDVkIDEwMDY0NAotLS0gYS90b29scy9lbnYvZndfZW52LmMKKysrIGIvdG9vbHMvZW52L2Z3X2Vudi5jCkBAIC0xNzIsOCArMTcyLDggQEAKICNpZmRlZglDT05GSUdfU0VSVkVSSVAKIAkic2VydmVyaXA9IiBNS19TVFIgKENPTkZJR19TRVJWRVJJUCkgIlwwIgogI2VuZGlmCi0jaWZkZWYJQ0ZHX0FVVE9MT0FECi0JImF1dG9sb2FkPSIgQ0ZHX0FVVE9MT0FEICJcMCIKKyNpZmRlZglDT05GSUdfU1lTX0FVVE9MT0FECisJImF1dG9sb2FkPSIgQ09ORklHX1NZU19BVVRPTE9BRCAiXDAiCiAjZW5kaWYKICNpZmRlZglDT05GSUdfUk9PVFBBVEgKIAkicm9vdHBhdGg9IiBNS19TVFIgKENPTkZJR19ST09UUEFUSCkgIlwwIgpkaWZmIC0tZ2l0IGEvdG9vbHMvZW52Y3JjLmMgYi90b29scy9lbnZjcmMuYwppbmRleCBiYTI4ZmEwLi40MzM0Y2RmIDEwMDY0NAotLS0gYS90b29scy9lbnZjcmMuYworKysgYi90b29scy9lbnZjcmMuYwpAQCAtMzUsMTMgKzM1LDEzIEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9PRkZTRVQKLSMgIGRlZmluZSBDT05GSUdfRU5WX09GRlNFVCAoQ09ORklHX0VOVl9BRERSIC0gQ0ZHX0ZMQVNIX0JBU0UpCisjICBkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQgKENPTkZJR19FTlZfQUREUiAtIENPTkZJR19TWVNfRkxBU0hfQkFTRSkKICMgZW5kaWYKICMgaWYgIWRlZmluZWQoQ09ORklHX0VOVl9BRERSX1JFRFVORCkgJiYgZGVmaW5lZChDT05GSUdfRU5WX09GRlNFVF9SRURVTkQpCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5EKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNDksMTYgKzQ5LDE2IEBACiAjIGlmIGRlZmluZWQoQ09ORklHX0VOVl9BRERSX1JFRFVORCkgJiYgIWRlZmluZWQoQ09ORklHX0VOVl9TSVpFX1JFRFVORCkKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECUNPTkZJR19FTlZfU0laRQogIyBlbmRpZgotIyBpZiAoQ09ORklHX0VOVl9BRERSID49IENGR19NT05JVE9SX0JBU0UpICYmIFwKLSAgICAgKChDT05GSUdfRU5WX0FERFIgKyBDT05GSUdfRU5WX1NJWkUpIDw9IChDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKSkKKyMgaWYgKENPTkZJR19FTlZfQUREUiA+PSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgJiYgXAorICAgICAoKENPTkZJR19FTlZfQUREUiArIENPTkZJR19FTlZfU0laRSkgPD0gKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikpCiAjICBkZWZpbmUgRU5WX0lTX0VNQkVEREVECTEKICMgZW5kaWYKICMgaWYgZGVmaW5lZChDT05GSUdfRU5WX0FERFJfUkVEVU5EKSB8fCBkZWZpbmVkKENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORCkKLSMgIGRlZmluZSBDRkdfUkVEVU5EQU5EX0VOVklST05NRU5UCTEKKyMgIGRlZmluZSBDT05GSUdfU1lTX1JFRFVOREFORF9FTlZJUk9OTUVOVAkxCiAjIGVuZGlmCiAjZW5kaWYJLyogQ09ORklHX0VOVl9JU19JTl9GTEFTSCAqLwogCi0jaWZkZWYgQ0ZHX1JFRFVOREFORF9FTlZJUk9OTUVOVAorI2lmZGVmIENPTkZJR19TWVNfUkVEVU5EQU5EX0VOVklST05NRU5UCiAjIGRlZmluZSBFTlZfSEVBREVSX1NJWkUJKHNpemVvZih1aW50MzJfdCkgKyAxKQogI2Vsc2UKICMgZGVmaW5lIEVOVl9IRUFERVJfU0laRQkoc2l6ZW9mKHVpbnQzMl90KSkKZGlmZiAtLWdpdCBhL3Rvb2xzL3VwZGF0ZXIvY21kX2ZsYXNoLmMgYi90b29scy91cGRhdGVyL2NtZF9mbGFzaC5jCmluZGV4IDBmNmY2MmIuLjVmZjczMzYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3VwZGF0ZXIvY21kX2ZsYXNoLmMKKysrIGIvdG9vbHMvdXBkYXRlci9jbWRfZmxhc2guYwpAQCAtNjQsNyArNjQsNyBAQAogCiAgICAgYmFuayA9IHNpbXBsZV9zdHJ0b3VsKHN0ciwgJmVwLCAxMCk7CiAgICAgaWYgKGVwID09IHN0ciB8fCAqZXAgIT0gJ1wwJyB8fAotICAgICAgYmFuayA8IDEgfHwgYmFuayA+IENGR19NQVhfRkxBU0hfQkFOS1MgfHwKKyAgICAgIGJhbmsgPCAxIHx8IGJhbmsgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyB8fAogICAgICAgKGZwID0gJmZsYXNoX2luZm9bYmFuayAtIDFdKS0+Zmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTikKIAlyZXR1cm4gLTE7CiAKQEAgLTk2LDcgKzk2LDcgQEAKIAl1bG9uZyBiYW5rOwogCiAJaWYgKGFyZ2MgPT0gMSkgewkvKiBwcmludCBpbmZvIGZvciBhbGwgRkxBU0ggYmFua3MgKi8KLQkJZm9yIChiYW5rPTA7IGJhbmsgPENGR19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaykgeworCQlmb3IgKGJhbms9MDsgYmFuayA8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaykgewogCQkJcHJpbnRmICgiXG5CYW5rICMgJWxkOiAiLCBiYW5rKzEpOwogCiAJCQlmbGFzaF9wcmludF9pbmZvICgmZmxhc2hfaW5mb1tiYW5rXSk7CkBAIC0xMDUsOSArMTA1LDkgQEAKIAl9CiAKIAliYW5rID0gc2ltcGxlX3N0cnRvdWwoYXJndlsxXSwgTlVMTCwgMTYpOwotCWlmICgoYmFuayA8IDEpIHx8IChiYW5rID4gQ0ZHX01BWF9GTEFTSF9CQU5LUykpIHsKKwlpZiAoKGJhbmsgPCAxKSB8fCAoYmFuayA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKSkgewogCQlwcmludGYgKCJPbmx5IEZMQVNIIEJhbmtzICMgMSAuLi4gIyAlZCBzdXBwb3J0ZWRcbiIsCi0JCQlDRkdfTUFYX0ZMQVNIX0JBTktTKTsKKwkJCUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKTsKIAkJcmV0dXJuIDE7CiAJfQogCXByaW50ZiAoIlxuQmFuayAjICVsZDogIiwgYmFuayk7CkBAIC0xMjcsNyArMTI3LDcgQEAKIAl9CiAKIAlpZiAoc3RyY21wKGFyZ3ZbMV0sICJhbGwiKSA9PSAwKSB7Ci0JCWZvciAoYmFuaz0xOyBiYW5rPD1DRkdfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmspIHsKKwkJZm9yIChiYW5rPTE7IGJhbms8PUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmspIHsKIAkJCXByaW50ZiAoIkVyYXNlIEZsYXNoIEJhbmsgIyAlbGQgIiwgYmFuayk7CiAJCQlpbmZvID0gJmZsYXNoX2luZm9bYmFuay0xXTsKIAkJCXJjb2RlID0gZmxhc2hfZXJhc2UgKGluZm8sIDAsIGluZm8tPnNlY3Rvcl9jb3VudC0xKTsKQEAgLTE1Myw5ICsxNTMsOSBAQAogCiAJaWYgKHN0cmNtcChhcmd2WzFdLCAiYmFuayIpID09IDApIHsKIAkJYmFuayA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMl0sIE5VTEwsIDE2KTsKLQkJaWYgKChiYW5rIDwgMSkgfHwgKGJhbmsgPiBDRkdfTUFYX0ZMQVNIX0JBTktTKSkgeworCQlpZiAoKGJhbmsgPCAxKSB8fCAoYmFuayA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKSkgewogCQkJcHJpbnRmICgiT25seSBGTEFTSCBCYW5rcyAjIDEgLi4uICMgJWQgc3VwcG9ydGVkXG4iLAotCQkJCUNGR19NQVhfRkxBU0hfQkFOS1MpOworCQkJCUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKTsKIAkJCXJldHVybiAxOwogCQl9CiAJCXByaW50ZiAoIkVyYXNlIEZsYXNoIEJhbmsgIyAlbGQgIiwgYmFuayk7CkBAIC0xODcsNyArMTg3LDcgQEAKIAogCWVyYXNlZCA9IDA7CiAKLQlmb3IgKGJhbms9MCxpbmZvID0gJmZsYXNoX2luZm9bMF07IGJhbmsgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmssICsraW5mbykgeworCWZvciAoYmFuaz0wLGluZm8gPSAmZmxhc2hfaW5mb1swXTsgYmFuayA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmssICsraW5mbykgewogCQl1bG9uZyBiX2VuZDsKIAkJaW50IHNlY3Q7CiAKQEAgLTI1OCw3ICsyNTgsNyBAQAogCX0KIAogCWlmIChzdHJjbXAoYXJndlsyXSwgImFsbCIpID09IDApIHsKLQkJZm9yIChiYW5rPTE7IGJhbms8PUNGR19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaykgeworCQlmb3IgKGJhbms9MTsgYmFuazw9Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaykgewogCQkJaW5mbyA9ICZmbGFzaF9pbmZvW2JhbmstMV07CiAJCQlpZiAoaW5mby0+Zmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTikgewogCQkJCWNvbnRpbnVlOwpAQCAtMjY3LDE5ICsyNjcsMTkgQEAKIAkJCS8qCXAgPyAiIiA6ICJVbi0iLCBiYW5rKTsgKi8KIAogCQkJZm9yIChpPTA7IGk8aW5mby0+c2VjdG9yX2NvdW50OyArK2kpIHsKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQkJCWlmIChmbGFzaF9yZWFsX3Byb3RlY3QoaW5mbywgaSwgcCkpCiAJCQkJCXJjb2RlID0gMTsKIAkJCQlwdXRjICgnLicpOwogI2Vsc2UKIAkJCQlpbmZvLT5wcm90ZWN0W2ldID0gcDsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCQkJfQogCQl9CiAKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQlpZiAoIXJjb2RlKSBwdXRzICgiIGRvbmVcbiIpOwotI2VuZGlmCS8qIENGR19GTEFTSF9QUk9URUNUSU9OICovCisjZW5kaWYJLyogQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OICovCiAKIAkJcmV0dXJuIHJjb2RlOwogCX0KQEAgLTI5MywxOCArMjkzLDE4IEBACiAJCS8qCXAgPyAiIiA6ICJVbi0iLCBzZWN0X2ZpcnN0LCBzZWN0X2xhc3QsICovCiAJCS8qCShpbmZvLWZsYXNoX2luZm8pKzEpOyAqLwogCQlmb3IgKGkgPSBzZWN0X2ZpcnN0OyBpIDw9IHNlY3RfbGFzdDsgaSsrKSB7Ci0jaWYgZGVmaW5lZChDRkdfRkxBU0hfUFJPVEVDVElPTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTikKIAkJCWlmIChmbGFzaF9yZWFsX3Byb3RlY3QoaW5mbywgaSwgcCkpCiAJCQkJcmNvZGUgPSAgMTsKIAkJCXB1dGMgKCcuJyk7CiAjZWxzZQogCQkJaW5mby0+cHJvdGVjdFtpXSA9IHA7Ci0jZW5kaWYJLyogQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gKi8KIAkJfQogCi0jaWYgZGVmaW5lZChDRkdfRkxBU0hfUFJPVEVDVElPTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTikKIAkJaWYgKCFyY29kZSkgcHV0cyAoIiBkb25lXG4iKTsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCiAJCXJldHVybiByY29kZTsKIAl9CkBAIC0zMTYsOSArMzE2LDkgQEAKIAogCWlmIChzdHJjbXAoYXJndlsyXSwgImJhbmsiKSA9PSAwKSB7CiAJCWJhbmsgPSBzaW1wbGVfc3RydG91bChhcmd2WzNdLCBOVUxMLCAxNik7Ci0JCWlmICgoYmFuayA8IDEpIHx8IChiYW5rID4gQ0ZHX01BWF9GTEFTSF9CQU5LUykpIHsKKwkJaWYgKChiYW5rIDwgMSkgfHwgKGJhbmsgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUykpIHsKIAkJCXByaW50ZiAoIk9ubHkgRkxBU0ggQmFua3MgIyAxIC4uLiAjICVkIHN1cHBvcnRlZFxuIiwKLQkJCQlDRkdfTUFYX0ZMQVNIX0JBTktTKTsKKwkJCQlDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyk7CiAJCQlyZXR1cm4gMTsKIAkJfQogCQlwcmludGYgKCIlc1Byb3RlY3QgRmxhc2ggQmFuayAjICVsZFxuIiwKQEAgLTMzMCwxOCArMzMwLDE4IEBACiAJCQlyZXR1cm4gMTsKIAkJfQogCQlmb3IgKGk9MDsgaTxpbmZvLT5zZWN0b3JfY291bnQ7ICsraSkgewotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX1BST1RFQ1RJT04pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04pCiAJCQlpZiAoZmxhc2hfcmVhbF9wcm90ZWN0KGluZm8sIGksIHApKQogCQkJCXJjb2RlID0gIDE7CiAJCQlwdXRjICgnLicpOwogI2Vsc2UKIAkJCWluZm8tPnByb3RlY3RbaV0gPSBwOwotI2VuZGlmCS8qIENGR19GTEFTSF9QUk9URUNUSU9OICovCisjZW5kaWYJLyogQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OICovCiAJCX0KIAotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX1BST1RFQ1RJT04pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04pCiAJCWlmICghcmNvZGUpIHB1dHMgKCIgZG9uZVxuIik7Ci0jZW5kaWYJLyogQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gKi8KIAogCQlyZXR1cm4gcmNvZGU7CiAJfQpAQCAtMzY2LDcgKzM2Niw3IEBACiAKIAlwcm90ZWN0ZWQgPSAwOwogCi0JZm9yIChiYW5rPTAsaW5mbyA9ICZmbGFzaF9pbmZvWzBdOyBiYW5rIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytiYW5rLCArK2luZm8pIHsKKwlmb3IgKGJhbms9MCxpbmZvID0gJmZsYXNoX2luZm9bMF07IGJhbmsgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytiYW5rLCArK2luZm8pIHsKIAkJdWxvbmcgYl9lbmQ7CiAJCWludCBzZWN0OwogCkBAIC00MDIsMTggKzQwMiwxOCBAQAogCQlpZiAoc19maXJzdD49MCAmJiBzX2ZpcnN0PD1zX2xhc3QpIHsKIAkJCXByb3RlY3RlZCArPSBzX2xhc3QgLSBzX2ZpcnN0ICsgMTsKIAkJCWZvciAoaT1zX2ZpcnN0OyBpPD1zX2xhc3Q7ICsraSkgewotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX1BST1RFQ1RJT04pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04pCiAJCQkJaWYgKGZsYXNoX3JlYWxfcHJvdGVjdChpbmZvLCBpLCBwKSkKIAkJCQkJcmNvZGUgPSAxOwogCQkJCXB1dGMgKCcuJyk7CiAjZWxzZQogCQkJCWluZm8tPnByb3RlY3RbaV0gPSBwOwotI2VuZGlmCS8qIENGR19GTEFTSF9QUk9URUNUSU9OICovCisjZW5kaWYJLyogQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OICovCiAJCQl9CiAJCX0KLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQlpZiAoIXJjb2RlKSBwdXRjICgnXG4nKTsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCiAJfQogCWlmIChwcm90ZWN0ZWQpIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3VwZGF0ZXIvZmxhc2guYyBiL3Rvb2xzL3VwZGF0ZXIvZmxhc2guYwppbmRleCBhNzMxNTlmLi41YmU1ZjFiIDEwMDY0NAotLS0gYS90b29scy91cGRhdGVyL2ZsYXNoLmMKKysrIGIvdG9vbHMvdXBkYXRlci9mbGFzaC5jCkBAIC02NiwxOCArNjYsMTggQEAKIAkJICovCiAJCWlmIChmcm9tIDw9IGVuZCAmJiB0byA+PSBpbmZvLT5zdGFydFtpXSkgewogCQkJaWYgKGZsYWcgJiBGTEFHX1BST1RFQ1RfQ0xFQVIpIHsKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQkJCWZsYXNoX3JlYWxfcHJvdGVjdChpbmZvLCBpLCAwKTsKICNlbHNlCiAJCQkJaW5mby0+cHJvdGVjdFtpXSA9IDA7Ci0jZW5kaWYJLyogQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gKi8KIAkJCX0KIAkJCWVsc2UgaWYgKGZsYWcgJiBGTEFHX1BST1RFQ1RfU0VUKSB7Ci0jaWYgZGVmaW5lZChDRkdfRkxBU0hfUFJPVEVDVElPTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTikKIAkJCQlmbGFzaF9yZWFsX3Byb3RlY3QoaW5mbywgaSwgMSk7CiAjZWxzZQogCQkJCWluZm8tPnByb3RlY3RbaV0gPSAxOwotI2VuZGlmCS8qIENGR19GTEFTSF9QUk9URUNUSU9OICovCisjZW5kaWYJLyogQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OICovCiAJCQl9CiAJCX0KIAl9CkBAIC05Myw3ICs5Myw3IEBACiAJZmxhc2hfaW5mb190ICppbmZvOwogCWludCBpOwogCi0JZm9yIChpPTAsIGluZm8gPSAmZmxhc2hfaW5mb1swXTsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2ksICsraW5mbykgeworCWZvciAoaT0wLCBpbmZvID0gJmZsYXNoX2luZm9bMF07IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSwgKytpbmZvKSB7CiAJCWlmIChpbmZvLT5mbGFzaF9pZCAhPSBGTEFTSF9VTktOT1dOICYmCiAJCSAgICBhZGRyID49IGluZm8tPnN0YXJ0WzBdICYmCiAJCSAgICAvKiBXQVJOSU5HIC0gVGhlICctIDEnIGlzIG5lZWRlZCBpZiB0aGUgZmxhc2gKZGlmZiAtLWdpdCBhL3Rvb2xzL3VwZGF0ZXIvZmxhc2hfaHcuYyBiL3Rvb2xzL3VwZGF0ZXIvZmxhc2hfaHcuYwppbmRleCA2Mzg4NDRlLi44YWY0YjQ1IDEwMDY0NAotLS0gYS90b29scy91cGRhdGVyL2ZsYXNoX2h3LmMKKysrIGIvdG9vbHMvdXBkYXRlci9mbGFzaF9ody5jCkBAIC04MCw3ICs4MCw3IEBACiB7CiAgICAgaW50IGk7CiAKLSAgICBmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKQorICAgIGZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKQogICAgIHsKIAlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IDA7CkBAIC0xMDEsMjUgKzEwMSwyNSBAQAogCWZsYXNoX3RvX3hkKCk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSAwOwogCQlmbGFzaF9pbmZvW2ldLnNpemUgPSAwOwogCX0KIAotCURFQlVHRigiXG4jIyBHZXQgZmxhc2ggc2l6ZSBAIDB4JTA4eFxuIiwgQ0ZHX0ZMQVNIX0JBU0UpOworCURFQlVHRigiXG4jIyBHZXQgZmxhc2ggc2l6ZSBAIDB4JTA4eFxuIiwgQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKIAotCWZsYXNoX3NpemUgPSBmbGFzaF9nZXRfc2l6ZSAoQ0ZHX0ZMQVNIX0JBU0UsIGZsYXNoX2luZm8pOworCWZsYXNoX3NpemUgPSBmbGFzaF9nZXRfc2l6ZSAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCBmbGFzaF9pbmZvKTsKIAogCURFQlVHRigiIyMgRmxhc2ggYmFuayBzaXplOiAlMDhseFxuIiwgZmxhc2hfc2l6ZSk7CiAKIAlpZiAoZmxhc2hfc2l6ZSkgewotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UgJiYgXAotICAgIENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSArIENGR19GTEFTSF9NQVhfU0laRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSAmJiBcCisgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIX01BWF9TSVpFCiAJCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOIC0gMSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOIC0gMSwKIAkJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0yODYsMTAgKzI4NiwxMCBAQAogCiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlpZiAoISBmbGFzaF9nZXRfb2Zmc2V0cyAoYWRkciwgaW5mbykpIHsKQEAgLTQxOCwxMCArNDE4LDEwIEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gaW5mby0+c3RhcnRbbF9zZWN0XTsKIAotCURFQlVHRiAoIlN0YXJ0IGVyYXNlIHRpbWVvdXQ6ICVkXG4iLCBDRkdfRkxBU0hfRVJBU0VfVE9VVCk7CisJREVCVUdGICgiU3RhcnQgZXJhc2UgdGltZW91dDogJWRcbiIsIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCk7CiAKIAl3aGlsZSAoKGluOChhZGRyKSAmIDB4ODApICE9IDB4ODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJZmxhc2hfcmVzZXQgKGluZm8tPnN0YXJ0WzBdKTsKIAkJCWZsYXNoX3RvX21lbSgpOwpAQCAtNTcwLDcgKzU3MCw3IEBACiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCQl3aGlsZSAoKGluOChkZXN0K2kpICYgMHg4MCkgIT0gKGRhdGFfY2hbaV0gJiAweDgwKSkgewotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlmbGFzaF9yZXNldCAoYWRkcik7CiAJCQkJZmxhc2hfdG9fbWVtKCk7CiAJCQkJcmV0dXJuICgxKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3VwZGF0ZXIvdXRpbHMuYyBiL3Rvb2xzL3VwZGF0ZXIvdXRpbHMuYwppbmRleCAwMzA0Zjk0Li42MWE2MTE4IDEwMDY0NAotLS0gYS90b29scy91cGRhdGVyL3V0aWxzLmMKKysrIGIvdG9vbHMvdXBkYXRlci91dGlscy5jCkBAIC0xMzIsMTYgKzEzMiwxNiBAQAogCV9fYXNtX18gX192b2xhdGlsZV9fICgiaXN5bmMiKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAotI2lmZGVmIENGR19SRVNFVF9BRERSRVNTCi0JYWRkciA9IENGR19SRVNFVF9BRERSRVNTOworI2lmZGVmIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUworCWFkZHIgPSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1M7CiAjZWxzZQogCS8qCi0JICogbm90ZTogd2hlbiBDRkdfTU9OSVRPUl9CQVNFIHBvaW50cyB0byBhIFJBTSBhZGRyZXNzLAotCSAqIENGR19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKSBpcyB1c3VhbGx5IGEgdmFsaWQKKwkgKiBub3RlOiB3aGVuIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIHBvaW50cyB0byBhIFJBTSBhZGRyZXNzLAorCSAqIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZykgaXMgdXN1YWxseSBhIHZhbGlkCiAJICogYWRkcmVzcy4gQmV0dGVyIHBpY2sgYW4gYWRkcmVzcyBrbm93biB0byBiZSBpbnZhbGlkIG9uIHlvdXIKLQkgKiBzeXN0ZW0gYW5kIGFzc2lnbiBpdCB0byBDRkdfUkVTRVRfQUREUkVTUy4KKwkgKiBzeXN0ZW0gYW5kIGFzc2lnbiBpdCB0byBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MuCiAJICovCi0JYWRkciA9IENGR19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKTsKKwlhZGRyID0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKTsKICNlbmRpZgogCXNvZnRfcmVzdGFydChhZGRyKTsKIAl3aGlsZSgxKTsgICAgICAgLyogbm90IHJlYWNoZWQgKi8K